summaryrefslogtreecommitdiff
path: root/progs
diff options
context:
space:
mode:
Diffstat (limited to 'progs')
-rw-r--r--progs/SConscript1
-rw-r--r--progs/demos/.gitignore1
-rw-r--r--progs/demos/Makefile7
-rw-r--r--progs/demos/cubemap.c59
-rw-r--r--progs/demos/fbotexture.c136
-rw-r--r--progs/demos/fslight.c8
-rw-r--r--progs/demos/isosurf.c29
-rw-r--r--progs/demos/pointblast.c4
-rw-r--r--progs/demos/spriteblast.c4
-rw-r--r--progs/egl/.gitignore2
-rw-r--r--progs/egl/Makefile15
-rw-r--r--progs/egl/demo3.c2
-rw-r--r--progs/egl/xeglbindtex.c474
-rw-r--r--progs/egl/xeglthreads.c773
-rw-r--r--progs/fp/SConscript19
-rw-r--r--progs/fp/fp-tri.c2
-rw-r--r--progs/fp/point-position.c7
-rw-r--r--progs/fp/tri-depth.c9
-rw-r--r--progs/fp/tri-depth2.c7
-rw-r--r--progs/fp/tri-depthwrite.c6
-rw-r--r--progs/fp/tri-depthwrite2.c6
-rw-r--r--progs/fp/tri-inv.c6
-rw-r--r--progs/fp/tri-param.c8
-rw-r--r--progs/fp/tri-tex.c6
-rw-r--r--progs/glsl/.gitignore1
-rw-r--r--progs/glsl/Makefile168
-rw-r--r--progs/glsl/SConscript55
-rw-r--r--progs/glsl/array.c19
-rw-r--r--progs/glsl/bitmap.c29
-rw-r--r--progs/glsl/brick.c35
-rw-r--r--progs/glsl/brick.shtest8
-rw-r--r--progs/glsl/bump.c39
-rw-r--r--progs/glsl/convolutions.c4
-rw-r--r--progs/glsl/deriv.c22
-rw-r--r--progs/glsl/fragcoord.c22
-rw-r--r--progs/glsl/identity.c22
-rw-r--r--progs/glsl/linktest.c55
-rw-r--r--progs/glsl/mandelbrot.c45
-rw-r--r--progs/glsl/mandelbrot.shtest13
-rw-r--r--progs/glsl/multinoise.c42
-rw-r--r--progs/glsl/multitex.c67
-rw-r--r--progs/glsl/multitex.shtest6
-rw-r--r--progs/glsl/noise.c31
-rw-r--r--progs/glsl/noise2.c1
-rw-r--r--progs/glsl/pointcoord.c26
-rw-r--r--progs/glsl/points.c25
-rw-r--r--progs/glsl/reflect.vert1
-rw-r--r--progs/glsl/samplers.c27
-rw-r--r--progs/glsl/shadow_sampler.c52
-rw-r--r--progs/glsl/shtest.c709
-rw-r--r--progs/glsl/skinning.c29
-rw-r--r--progs/glsl/texaaline.c28
-rw-r--r--progs/glsl/texdemo1.c22
-rw-r--r--progs/glsl/toyball.c43
-rw-r--r--progs/glsl/toyball.shtest17
-rw-r--r--progs/glsl/trirast.c34
-rw-r--r--progs/glsl/twoside.c30
-rw-r--r--progs/glsl/vert-or-frag-only.c28
-rw-r--r--progs/glsl/vert-tex.c17
-rw-r--r--progs/openvg/demos/Makefile39
-rw-r--r--progs/openvg/demos/eglcommon.c288
-rw-r--r--progs/openvg/demos/eglcommon.h20
-rw-r--r--progs/openvg/demos/lion-render.c1573
-rw-r--r--progs/openvg/demos/lion-render.h16
-rw-r--r--progs/openvg/demos/lion.c288
-rw-r--r--progs/openvg/demos/sp.c537
-rw-r--r--progs/openvg/trivial/Makefile127
-rw-r--r--progs/openvg/trivial/arc.c139
-rw-r--r--progs/openvg/trivial/cap.c75
-rw-r--r--progs/openvg/trivial/clear.c42
-rw-r--r--progs/openvg/trivial/coord.c66
-rw-r--r--progs/openvg/trivial/dash.c95
-rw-r--r--progs/openvg/trivial/eglcommon.c288
-rw-r--r--progs/openvg/trivial/eglcommon.h20
-rw-r--r--progs/openvg/trivial/ellipse.c84
-rw-r--r--progs/openvg/trivial/filter.c107
-rw-r--r--progs/openvg/trivial/gradorigin.c98
-rw-r--r--progs/openvg/trivial/lineto.c56
-rw-r--r--progs/openvg/trivial/lingrad.c87
-rw-r--r--progs/openvg/trivial/lookup.c71
-rw-r--r--progs/openvg/trivial/mask.c58
-rw-r--r--progs/openvg/trivial/mask4.c132
-rw-r--r--progs/openvg/trivial/path3.c77
-rw-r--r--progs/openvg/trivial/radialgrad.c99
-rw-r--r--progs/openvg/trivial/readpixels.c75
-rw-r--r--progs/openvg/trivial/roundedrect.c67
-rw-r--r--progs/openvg/trivial/star-nonzero.c55
-rw-r--r--progs/openvg/trivial/star-oddeven.c102
-rw-r--r--progs/openvg/trivial/stroke.c116
-rw-r--r--progs/openvg/trivial/stroke2.c207
-rw-r--r--progs/openvg/trivial/vguarc.c74
-rw-r--r--progs/rbug/.gitignore3
-rw-r--r--progs/rbug/Makefile2
-rw-r--r--progs/rbug/bin_to_bmp.c110
-rw-r--r--progs/rbug/ctx_rule.c86
-rw-r--r--progs/slang/vstest.c24
-rw-r--r--progs/tests/.gitignore6
-rw-r--r--progs/tests/Makefile5
-rw-r--r--progs/tests/SConscript4
-rw-r--r--progs/tests/arbgpuprog.c230
-rw-r--r--progs/tests/bufferobj.c120
-rw-r--r--progs/tests/floattex.c4
-rw-r--r--progs/tests/getprocaddress.c3280
-rw-r--r--progs/tests/getprocaddress.py2
-rw-r--r--progs/tests/getteximage.c136
-rw-r--r--progs/tests/mapbufrange.c4
-rw-r--r--progs/tests/mapvbo.c4
-rw-r--r--progs/tests/mipmap_comp_tests.c318
-rw-r--r--progs/tests/persp_hint.c149
-rw-r--r--progs/tests/prim.c559
-rw-r--r--progs/tests/texcomp_image.h4100
-rw-r--r--progs/tests/texcompsub.c181
-rw-r--r--progs/tests/texwrap.c18
-rw-r--r--progs/tests/tkmap.c71
-rw-r--r--progs/tests/zreaddraw.c4
-rw-r--r--progs/trivial/.gitignore15
-rw-r--r--progs/trivial/Makefile15
-rw-r--r--progs/trivial/dlist-begin-call-end.c159
-rw-r--r--progs/trivial/dlist-flat-tri.c171
-rw-r--r--progs/trivial/dlist-mat-tri.c182
-rw-r--r--progs/trivial/dlist-recursive-call.c190
-rw-r--r--progs/trivial/dlist-tri-flat-tri.c171
-rw-r--r--progs/trivial/dlist-tri-mat-tri.c174
-rw-r--r--progs/trivial/tri-lit-material.c149
-rw-r--r--progs/util/extfuncs.h81
-rw-r--r--progs/util/shaderutil.c233
-rw-r--r--progs/util/shaderutil.h35
-rw-r--r--progs/vp/arl-static.txt2
-rw-r--r--progs/vp/arl-unused.txt2
-rw-r--r--progs/wgl/sharedtex_mt/sharedtex_mt.c30
-rw-r--r--progs/wgl/wglthreads/wglthreads.c64
-rw-r--r--progs/xdemos/.gitignore1
-rw-r--r--progs/xdemos/Makefile1
-rw-r--r--progs/xdemos/glthreads.c4
-rw-r--r--progs/xdemos/glxcontexts.c161
-rw-r--r--progs/xdemos/glxgears.c44
-rw-r--r--progs/xdemos/glxheads.c3
-rw-r--r--progs/xdemos/glxswapcontrol.c15
-rw-r--r--progs/xdemos/multictx.c585
-rw-r--r--progs/xdemos/opencloseopen.c2
140 files changed, 19401 insertions, 1049 deletions
diff --git a/progs/SConscript b/progs/SConscript
index 71ebe5e0f3..620dd30e69 100644
--- a/progs/SConscript
+++ b/progs/SConscript
@@ -1,6 +1,7 @@
SConscript([
'util/SConscript',
'demos/SConscript',
+ 'glsl/SConscript',
'redbook/SConscript',
'samples/SConscript',
'tests/SConscript',
diff --git a/progs/demos/.gitignore b/progs/demos/.gitignore
index f3c7091bcc..5dd974b63d 100644
--- a/progs/demos/.gitignore
+++ b/progs/demos/.gitignore
@@ -63,3 +63,4 @@ tunnel2
vao_demo
Windows
winpos
+*.rgb
diff --git a/progs/demos/Makefile b/progs/demos/Makefile
index c17595ec79..65fdbaaad8 100644
--- a/progs/demos/Makefile
+++ b/progs/demos/Makefile
@@ -145,6 +145,13 @@ engine.o: engine.c trackball.h
$(APP_CC) -c -I$(INCDIR) $(CFLAGS) engine.c
+fbotexture: fbotexture.o
+ $(APP_CC) $(CFLAGS) $(LDFLAGS) fbotexture.o $(LIBS) -o $@
+
+fbotexture.o: fbotexture.c extfuncs.h
+ $(APP_CC) -c -I$(INCDIR) $(CFLAGS) fbotexture.c
+
+
fslight: fslight.o
$(APP_CC) $(CFLAGS) $(LDFLAGS) fslight.o $(LIBS) -o $@
diff --git a/progs/demos/cubemap.c b/progs/demos/cubemap.c
index 26db42aed5..0df5ff09c3 100644
--- a/progs/demos/cubemap.c
+++ b/progs/demos/cubemap.c
@@ -43,6 +43,9 @@
#include "GL/glut.h"
#include "readtex.h"
+#ifndef GL_TEXTURE_CUBE_MAP_SEAMLESS
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#endif
static GLfloat Xrot = 0, Yrot = 0;
static GLfloat EyeDist = 10;
@@ -52,6 +55,9 @@ static GLboolean NoClear = GL_FALSE;
static GLint FrameParity = 0;
static GLenum FilterIndex = 0;
static GLint ClampIndex = 0;
+static GLboolean supportFBO = GL_FALSE;
+static GLboolean supportSeamless = GL_FALSE;
+static GLboolean seamless = GL_FALSE;
static struct {
@@ -90,7 +96,9 @@ static struct {
-#define eps1 0.99
+/* The effects of GL_ARB_seamless_cube_map don't show up unless eps1 is 1.0.
+ */
+#define eps1 1.0 /*0.99*/
#define br 20.0 /* box radius */
static const GLfloat tex_coords[] = {
@@ -230,6 +238,13 @@ static void draw( void )
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER,
FilterModes[FilterIndex].mag_mode);
+ if (supportSeamless) {
+ if (seamless) {
+ glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
+ } else {
+ glDisable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
+ }
+ }
wrap = ClampModes[ClampIndex].mode;
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, wrap);
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, wrap);
@@ -320,6 +335,11 @@ static void key(unsigned char k, int x, int y)
mode = !mode;
set_mode(mode);
break;
+ case 's':
+ seamless = ! seamless;
+ printf("Seamless cube map filtering is %sabled\n",
+ (seamless) ? "en" : "dis" );
+ break;
case 'v':
use_vertex_arrays = ! use_vertex_arrays;
printf( "Vertex arrays are %sabled\n",
@@ -403,6 +423,10 @@ static void init_checkers( void )
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ if (!supportFBO)
+ glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
+
+
/* make colored checkerboard cube faces */
for (f = 0; f < 6; f++) {
for (i = 0; i < CUBE_TEX_SIZE; i++) {
@@ -426,7 +450,8 @@ static void init_checkers( void )
GL_BGRA, GL_UNSIGNED_BYTE, image);
}
- glGenerateMipmapEXT(GL_TEXTURE_CUBE_MAP_ARB);
+ if (supportFBO)
+ glGenerateMipmapEXT(GL_TEXTURE_CUBE_MAP_ARB);
}
@@ -496,20 +521,26 @@ static void load_envmaps(void)
static void init( GLboolean useImageFiles )
{
/* check for extensions */
- {
- char *exten = (char *) glGetString(GL_EXTENSIONS);
- if (!strstr(exten, "GL_ARB_texture_cube_map")) {
- printf("Sorry, this demo requires GL_ARB_texture_cube_map\n");
- exit(0);
- }
+ if (!GLEW_ARB_texture_cube_map) {
+ printf("Sorry, this demo requires GL_ARB_texture_cube_map\n");
+ exit(0);
+ }
- /* Needed for glGenerateMipmapEXT
- */
- if (!strstr(exten, "GL_EXT_framebuffer_object")) {
- printf("Sorry, this demo requires GL_EXT_framebuffer_object\n");
- exit(0);
- }
+ /* Needed for glGenerateMipmapEXT / auto mipmapping
+ */
+ supportFBO = GLEW_EXT_framebuffer_object;
+
+ if (!supportFBO && !GLEW_SGIS_generate_mipmap) {
+ printf("Sorry, this demo requires GL_EXT_framebuffer_object or "
+ "GL_SGIS_generate_mipmap\n");
+ exit(0);
}
+
+ /* GLEW doesn't know about this extension yet, so use the old GLUT function
+ * to check for availability.
+ */
+ supportSeamless = glutExtensionSupported("GL_ARB_seamless_cube_map");
+
printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
if (useImageFiles) {
diff --git a/progs/demos/fbotexture.c b/progs/demos/fbotexture.c
index 50a4b00afc..56482663dc 100644
--- a/progs/demos/fbotexture.c
+++ b/progs/demos/fbotexture.c
@@ -9,13 +9,13 @@
*/
-#include <GL/glew.h>
#include <GL/glut.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
+#include "extfuncs.h"
/* For debug */
#define DEPTH 1
@@ -80,9 +80,9 @@ RenderTexture(void)
glTranslatef(0.0, 0.0, -15.0);
/* draw to texture image */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
+ glBindFramebuffer_func(GL_FRAMEBUFFER_EXT, MyFB);
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ status = glCheckFramebufferStatus_func(GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
printf("Framebuffer incomplete!!!\n");
}
@@ -171,7 +171,7 @@ RenderTexture(void)
#if DRAW
/* Bind normal framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+ glBindFramebuffer_func(GL_FRAMEBUFFER_EXT, 0);
#endif
CheckError(__LINE__);
@@ -252,12 +252,12 @@ static void
CleanUp(void)
{
#if DEPTH
- glDeleteRenderbuffersEXT(1, &DepthRB);
+ glDeleteRenderbuffers_func(1, &DepthRB);
#endif
#if STENCIL
- glDeleteRenderbuffersEXT(1, &StencilRB);
+ glDeleteRenderbuffers_func(1, &StencilRB);
#endif
- glDeleteFramebuffersEXT(1, &MyFB);
+ glDeleteFramebuffers_func(1, &MyFB);
glDeleteTextures(1, &TexObj);
@@ -318,14 +318,14 @@ AttachDepthAndStencilBuffers(GLuint fbo,
*depthRbOut = *stencilRbOut = 0;
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
+ glBindFramebuffer_func(GL_FRAMEBUFFER_EXT, fbo);
if (tryDepthStencil) {
GLuint rb;
- glGenRenderbuffersEXT(1, &rb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, rb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
+ glGenRenderbuffers_func(1, &rb);
+ glBindRenderbuffer_func(GL_RENDERBUFFER_EXT, rb);
+ glRenderbufferStorage_func(GL_RENDERBUFFER_EXT,
GL_DEPTH24_STENCIL8_EXT,
width, height);
if (glGetError())
@@ -333,7 +333,7 @@ AttachDepthAndStencilBuffers(GLuint fbo,
if (bindDepthStencil) {
/* attach to both depth and stencil at once */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
+ glFramebufferRenderbuffer_func(GL_FRAMEBUFFER_EXT,
GL_DEPTH_STENCIL_ATTACHMENT,
GL_RENDERBUFFER_EXT, rb);
if (glGetError())
@@ -341,21 +341,21 @@ AttachDepthAndStencilBuffers(GLuint fbo,
}
else {
/* attach to depth attachment point */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
+ glFramebufferRenderbuffer_func(GL_FRAMEBUFFER_EXT,
GL_DEPTH_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, rb);
if (glGetError())
return GL_FALSE;
/* and attach to stencil attachment point */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
+ glFramebufferRenderbuffer_func(GL_FRAMEBUFFER_EXT,
GL_STENCIL_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, rb);
if (glGetError())
return GL_FALSE;
}
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ status = glCheckFramebufferStatus_func(GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
return GL_FALSE;
@@ -367,22 +367,22 @@ AttachDepthAndStencilBuffers(GLuint fbo,
{
GLuint rb;
- glGenRenderbuffersEXT(1, &rb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, rb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
+ glGenRenderbuffers_func(1, &rb);
+ glBindRenderbuffer_func(GL_RENDERBUFFER_EXT, rb);
+ glRenderbufferStorage_func(GL_RENDERBUFFER_EXT,
GL_DEPTH_COMPONENT,
width, height);
if (glGetError())
return GL_FALSE;
/* attach to depth attachment point */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
+ glFramebufferRenderbuffer_func(GL_FRAMEBUFFER_EXT,
GL_DEPTH_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, rb);
if (glGetError())
return GL_FALSE;
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ status = glCheckFramebufferStatus_func(GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
return GL_FALSE;
@@ -393,26 +393,26 @@ AttachDepthAndStencilBuffers(GLuint fbo,
{
GLuint rb;
- glGenRenderbuffersEXT(1, &rb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, rb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
+ glGenRenderbuffers_func(1, &rb);
+ glBindRenderbuffer_func(GL_RENDERBUFFER_EXT, rb);
+ glRenderbufferStorage_func(GL_RENDERBUFFER_EXT,
GL_STENCIL_INDEX,
width, height);
if (glGetError())
return GL_FALSE;
/* attach to depth attachment point */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
+ glFramebufferRenderbuffer_func(GL_FRAMEBUFFER_EXT,
GL_STENCIL_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, rb);
if (glGetError())
return GL_FALSE;
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ status = glCheckFramebufferStatus_func(GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- glDeleteRenderbuffersEXT(1, depthRbOut);
+ glDeleteRenderbuffers_func(1, depthRbOut);
*depthRbOut = 0;
- glDeleteRenderbuffersEXT(1, &rb);
+ glDeleteRenderbuffers_func(1, &rb);
return GL_FALSE;
}
@@ -463,20 +463,51 @@ ParseArgs(int argc, char *argv[])
}
+static void
+SetupFunctionPointers(void)
+{
+ GetExtensionFuncs();
+
+ if (Use_ARB_fbo) {
+ /* no-op: use the ARB functions as-is */
+ }
+ else {
+ /* set the ARB-flavor function pointers to point to the EXT functions */
+ glIsRenderbuffer_func = glIsRenderbufferEXT_func;
+ glBindRenderbuffer_func = glBindRenderbufferEXT_func;
+ glDeleteRenderbuffers_func = glDeleteRenderbuffersEXT_func;
+ glGenRenderbuffers_func = glGenRenderbuffersEXT_func;
+ glRenderbufferStorage_func = glRenderbufferStorageEXT_func;
+ glGetRenderbufferParameteriv_func = glGetRenderbufferParameterivEXT_func;
+ glIsFramebuffer_func = glIsFramebufferEXT_func;
+ glBindFramebuffer_func = glBindFramebufferEXT_func;
+ glDeleteFramebuffers_func = glDeleteFramebuffersEXT_func;
+ glGenFramebuffers_func = glGenFramebuffersEXT_func;
+ glCheckFramebufferStatus_func = glCheckFramebufferStatusEXT_func;
+ glFramebufferTexture1D_func = glFramebufferTexture1DEXT_func;
+ glFramebufferTexture2D_func = glFramebufferTexture2DEXT_func;
+ glFramebufferTexture3D_func = glFramebufferTexture3DEXT_func;
+ glFramebufferRenderbuffer_func = glFramebufferRenderbufferEXT_func;
+ glGetFramebufferAttachmentParameteriv_func = glGetFramebufferAttachmentParameterivEXT_func;
+ glGenerateMipmap_func = glGenerateMipmapEXT_func;
+ }
+}
+
+
/*
* Make FBO to render into given texture.
*/
static GLuint
-MakeFBO_RenderTexture(GLuint TexObj)
+MakeFBO_RenderTexture(GLuint texObj)
{
GLuint fb;
GLint sizeFudge = 0;
- glGenFramebuffersEXT(1, &fb);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
+ glGenFramebuffers_func(1, &fb);
+ glBindFramebuffer_func(GL_FRAMEBUFFER_EXT, fb);
/* Render color to texture */
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- TexTarget, TexObj, TextureLevel);
+ glFramebufferTexture2D_func(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
+ TexTarget, texObj, TextureLevel);
if (Use_ARB_fbo) {
/* use a smaller depth buffer to see what happens */
@@ -510,28 +541,48 @@ MakeFBO_RenderTexture(GLuint TexObj)
/* queries */
{
- GLint bits, w, h;
+ GLint bits, w, h, name;
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRB);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
+ glBindRenderbuffer_func(GL_RENDERBUFFER_EXT, DepthRB);
+ glGetRenderbufferParameteriv_func(GL_RENDERBUFFER_EXT,
GL_RENDERBUFFER_WIDTH_EXT, &w);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
+ glGetRenderbufferParameteriv_func(GL_RENDERBUFFER_EXT,
GL_RENDERBUFFER_HEIGHT_EXT, &h);
printf("Color/Texture size: %d x %d\n", TexWidth, TexHeight);
printf("Depth buffer size: %d x %d\n", w, h);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
+ glGetRenderbufferParameteriv_func(GL_RENDERBUFFER_EXT,
GL_RENDERBUFFER_DEPTH_SIZE_EXT, &bits);
printf("Depth renderbuffer size = %d bits\n", bits);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, StencilRB);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
+ glBindRenderbuffer_func(GL_RENDERBUFFER_EXT, StencilRB);
+ glGetRenderbufferParameteriv_func(GL_RENDERBUFFER_EXT,
GL_RENDERBUFFER_STENCIL_SIZE_EXT, &bits);
printf("Stencil renderbuffer size = %d bits\n", bits);
- }
+ glGetFramebufferAttachmentParameteriv_func(GL_FRAMEBUFFER_EXT,
+ GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
+ &name);
+ printf("Render to texture name: %d\n", texObj);
+ printf("Color attachment[0] name: %d\n", name);
+ assert(texObj == name);
+
+ glGetFramebufferAttachmentParameteriv_func(GL_FRAMEBUFFER_EXT,
+ GL_STENCIL_ATTACHMENT,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
+ &name);
+ printf("Stencil attachment name: %d\n", name);
+
+ glGetFramebufferAttachmentParameteriv_func(GL_FRAMEBUFFER_EXT,
+ GL_DEPTH_ATTACHMENT,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
+ &name);
+ printf("Depth attachment name: %d\n", name);
+
+ }
/* bind the regular framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+ glBindFramebuffer_func(GL_FRAMEBUFFER_EXT, 0);
return fb;
}
@@ -547,6 +598,8 @@ Init(void)
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ SetupFunctionPointers();
+
/* lighting */
{
static const GLfloat mat[4] = { 1.0, 0.5, 0.5, 1.0 };
@@ -605,7 +658,6 @@ main(int argc, char *argv[])
glutInitWindowSize(Width, Height);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
Win = glutCreateWindow(argv[0]);
- glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Display);
diff --git a/progs/demos/fslight.c b/progs/demos/fslight.c
index 41a13cc9f4..f0d76a4a06 100644
--- a/progs/demos/fslight.c
+++ b/progs/demos/fslight.c
@@ -583,10 +583,14 @@ ParseOptions(int argc, char *argv[])
int i;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-fs") == 0) {
- FragProgFile = argv[i+1];
+ FragProgFile = argv[++i];
}
else if (strcmp(argv[i], "-vs") == 0) {
- VertProgFile = argv[i+1];
+ VertProgFile = argv[++i];
+ }
+ else {
+ fprintf(stderr, "unknown option %s\n", argv[i]);
+ break;
}
}
}
diff --git a/progs/demos/isosurf.c b/progs/demos/isosurf.c
index e280d8f507..2e9dff1726 100644
--- a/progs/demos/isosurf.c
+++ b/progs/demos/isosurf.c
@@ -514,12 +514,27 @@ static void draw_surface( unsigned int with_state )
break;
case (GLVERTEX|STRIPS):
- glBegin( GL_TRIANGLE_STRIP );
- for (i=0;i<numverts;i++) {
- glNormal3fv( &data[i][3] );
- glVertex3fv( &data[i][0] );
+ if (with_state & MATERIALS) {
+ glBegin( GL_TRIANGLE_STRIP );
+ for (i=0;i<numverts;i++) {
+ if (i % 600 == 0 && i != 0) {
+ unsigned j = i / 600;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col[j]);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col[j]);
+ }
+ glNormal3fv( &data[i][3] );
+ glVertex3fv( &data[i][0] );
+ }
+ glEnd();
+ }
+ else {
+ glBegin( GL_TRIANGLE_STRIP );
+ for (i=0;i<numverts;i++) {
+ glNormal3fv( &data[i][3] );
+ glVertex3fv( &data[i][0] );
+ }
+ glEnd();
}
- glEnd();
break;
default:
@@ -832,8 +847,8 @@ static void Init(int argc, char *argv[])
glClearColor(0.0, 0.0, 1.0, 0.0);
glEnable( GL_DEPTH_TEST );
- glEnable( GL_VERTEX_ARRAY_EXT );
- glEnable( GL_NORMAL_ARRAY_EXT );
+ glEnableClientState( GL_VERTEX_ARRAY );
+ glEnableClientState( GL_NORMAL_ARRAY );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
diff --git a/progs/demos/pointblast.c b/progs/demos/pointblast.c
index 2a91b76ad3..2d70b72589 100644
--- a/progs/demos/pointblast.c
+++ b/progs/demos/pointblast.c
@@ -194,11 +194,11 @@ redraw(void)
{
int i;
+ glDepthMask(GL_TRUE);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if (newModel)
recalcModelView();
- glDepthMask(GL_FALSE);
/* Draw the floor. */
/* glEnable(GL_TEXTURE_2D);*/
@@ -215,7 +215,7 @@ redraw(void)
glEnd();
/* Allow particles to blend with each other. */
- glDepthMask(GL_TRUE);
+ glDepthMask(GL_FALSE);
if (blend)
glEnable(GL_BLEND);
diff --git a/progs/demos/spriteblast.c b/progs/demos/spriteblast.c
index f6630c25d0..d73b680b79 100644
--- a/progs/demos/spriteblast.c
+++ b/progs/demos/spriteblast.c
@@ -209,13 +209,13 @@ redraw(void)
{
int i;
+ glDepthMask(GL_TRUE);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(15.0, 1.0, 0.0, 0.0);
glRotatef(angle, 0.0, 1.0, 0.0);
- glDepthMask(GL_FALSE);
/* Draw the floor. */
/* glEnable(GL_TEXTURE_2D);*/
@@ -232,7 +232,7 @@ redraw(void)
glEnd();
/* Allow particles to blend with each other. */
- glDepthMask(GL_TRUE);
+ glDepthMask(GL_FALSE);
if (blend)
glEnable(GL_BLEND);
diff --git a/progs/egl/.gitignore b/progs/egl/.gitignore
index 793c6c0f61..7a13d4686a 100644
--- a/progs/egl/.gitignore
+++ b/progs/egl/.gitignore
@@ -6,5 +6,7 @@ eglinfo
eglscreen
egltri
peglgears
+xeglbindtex
xeglgears
+xeglthreads
xegl_tri
diff --git a/progs/egl/Makefile b/progs/egl/Makefile
index e1fdb1ce63..fd72f540ca 100644
--- a/progs/egl/Makefile
+++ b/progs/egl/Makefile
@@ -17,7 +17,9 @@ PROGRAMS = \
eglgears \
eglscreen \
peglgears \
+ xeglbindtex \
xeglgears \
+ xeglthreads \
xegl_tri
@@ -83,6 +85,12 @@ peglgears.o: peglgears.c $(HEADERS)
$(CC) -c $(CFLAGS) -I$(TOP)/include peglgears.c
+xeglbindtex: xeglbindtex.o $(TOP)/$(LIB_DIR)/libEGL.so
+ $(CC) $(CFLAGS) xeglbindtex.o -L$(TOP)/$(LIB_DIR) -lEGL -lGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
+
+xeglbindtex.o: xeglbindtex.c $(HEADERS)
+ $(CC) -c $(CFLAGS) -I$(TOP)/include xeglbindtex.c
+
xeglgears: xeglgears.o $(TOP)/$(LIB_DIR)/libEGL.so
$(CC) $(CFLAGS) xeglgears.o -L$(TOP)/$(LIB_DIR) -lEGL -lGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
@@ -90,6 +98,13 @@ xeglgears.o: xeglgears.c $(HEADERS)
$(CC) -c $(CFLAGS) -I$(TOP)/include xeglgears.c
+xeglthreads: xeglthreads.o $(TOP)/$(LIB_DIR)/libEGL.so
+ $(CC) $(CFLAGS) xeglthreads.o -L$(TOP)/$(LIB_DIR) -lEGL -lGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
+
+xeglthreads.o: xeglthreads.c $(HEADERS)
+ $(CC) -c $(CFLAGS) -I$(TOP)/include xeglthreads.c
+
+
xegl_tri: xegl_tri.o $(TOP)/$(LIB_DIR)/libEGL.so
$(CC) $(CFLAGS) xegl_tri.o -L$(TOP)/$(LIB_DIR) -lEGL -lGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
diff --git a/progs/egl/demo3.c b/progs/egl/demo3.c
index a6096a257e..daab62d173 100644
--- a/progs/egl/demo3.c
+++ b/progs/egl/demo3.c
@@ -551,7 +551,7 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
}
}
-#include "../src/egl/main/egldisplay.h"
+#include "../../src/egl/main/egldisplay.h"
typedef struct fb_display
{
diff --git a/progs/egl/xeglbindtex.c b/progs/egl/xeglbindtex.c
new file mode 100644
index 0000000000..fdd9fe2b87
--- /dev/null
+++ b/progs/egl/xeglbindtex.c
@@ -0,0 +1,474 @@
+/*
+ * Simple demo for eglBindTexImage. Based on xegl_tri.c by
+ *
+ * Copyright (C) 2008 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The spec says that eglBindTexImage supports only OpenGL ES context, but this
+ * demo uses OpenGL context. Keep in mind that this is non-standard.
+ */
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <GL/gl.h>
+#include <EGL/egl.h>
+
+static EGLDisplay dpy;
+static EGLContext ctx_win, ctx_pbuf;
+static EGLSurface surf_win, surf_pbuf;
+static GLuint tex_pbuf;
+
+static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
+static GLboolean blend = GL_TRUE;
+static GLuint color_flow;
+
+static void
+make_pbuffer(int width, int height)
+{
+ static const EGLint config_attribs[] = {
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_BIND_TO_TEXTURE_RGB, EGL_TRUE,
+ EGL_NONE
+ };
+ EGLint pbuf_attribs[] = {
+ EGL_WIDTH, width,
+ EGL_HEIGHT, height,
+ EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB,
+ EGL_TEXTURE_TARGET, EGL_TEXTURE_2D,
+ EGL_NONE
+ };
+ EGLConfig config;
+ EGLint num_configs;
+
+ if (!eglChooseConfig(dpy, config_attribs, &config, 1, &num_configs)) {
+ printf("Error: couldn't get an EGL visual config for pbuffer\n");
+ exit(1);
+ }
+
+ eglBindAPI(EGL_OPENGL_API);
+ ctx_pbuf = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL );
+ surf_pbuf = eglCreatePbufferSurface(dpy, config, pbuf_attribs);
+ if (surf_pbuf == EGL_NO_SURFACE) {
+ printf("failed to allocate pbuffer\n");
+ exit(1);
+ }
+
+ glGenTextures(1, &tex_pbuf);
+}
+
+static void
+use_pbuffer(void)
+{
+ static int initialized;
+
+ eglMakeCurrent(dpy, surf_pbuf, surf_pbuf, ctx_pbuf);
+ if (!initialized) {
+ EGLint width, height;
+ GLfloat ar;
+
+ initialized = 1;
+
+ eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &width);
+ eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &height);
+ ar = (GLfloat) width / (GLfloat) height;
+
+ glViewport(0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-ar, ar, -1, 1, 1.0, 10.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ /* y-inverted */
+ glScalef(1.0, -1.0, 1.0);
+
+ glTranslatef(0.0, 0.0, -5.0);
+
+ glClearColor(0.2, 0.2, 0.2, 0.0);
+ }
+}
+
+static void
+make_window(Display *x_dpy, const char *name,
+ int x, int y, int width, int height,
+ Window *winRet)
+{
+ static const EGLint attribs[] = {
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_DEPTH_SIZE, 8,
+ EGL_NONE
+ };
+
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ Window win;
+ XVisualInfo *visInfo, visTemplate;
+ int num_visuals;
+ EGLConfig config;
+ EGLint num_configs, vid;
+
+ scrnum = DefaultScreen( x_dpy );
+ root = RootWindow( x_dpy, scrnum );
+
+ if (!eglChooseConfig(dpy, attribs, &config, 1, &num_configs)) {
+ printf("Error: couldn't get an EGL visual config\n");
+ exit(1);
+ }
+
+ if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
+ printf("Error: eglGetConfigAttrib() failed\n");
+ exit(1);
+ }
+
+ /* The X window visual must match the EGL config */
+ visTemplate.visualid = vid;
+ visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);
+ if (!visInfo) {
+ printf("Error: couldn't get X visual\n");
+ exit(1);
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ attr.override_redirect = 0;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect;
+
+ win = XCreateWindow( x_dpy, root, 0, 0, width, height,
+ 0, visInfo->depth, InputOutput,
+ visInfo->visual, mask, &attr );
+
+ /* set hints and properties */
+ {
+ XSizeHints sizehints;
+ sizehints.x = x;
+ sizehints.y = y;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(x_dpy, win, &sizehints);
+ XSetStandardProperties(x_dpy, win, name, name,
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ eglBindAPI(EGL_OPENGL_API);
+ ctx_win = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL );
+ if (!ctx_win) {
+ printf("Error: glXCreateContext failed\n");
+ exit(1);
+ }
+
+ surf_win = eglCreateWindowSurface(dpy, config, win, NULL);
+
+ XFree(visInfo);
+
+ *winRet = win;
+}
+
+static void
+use_window(void)
+{
+ static int initialized;
+
+ eglMakeCurrent(dpy, surf_win, surf_win, ctx_win);
+ if (!initialized) {
+ initialized = 1;
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, tex_pbuf);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+}
+
+static void
+draw_triangle(void)
+{
+ static const GLfloat verts[3][2] = {
+ { -3, -3 },
+ { 3, -3 },
+ { 0, 3 }
+ };
+ GLfloat colors[3][3] = {
+ { 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }
+ };
+ GLint i;
+
+ /* flow the color */
+ for (i = 0; i < 3; i++) {
+ GLint first = (i + color_flow / 256) % 3;
+ GLint second = (first + 1) % 3;
+ GLint third = (second + 1) % 3;
+ GLfloat c = (color_flow % 256) / 256.0f;
+
+ c = c * c * c;
+ colors[i][first] = 1.0f - c;
+ colors[i][second] = c;
+ colors[i][third] = 0.0f;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glVertexPointer(2, GL_FLOAT, 0, verts);
+ glColorPointer(3, GL_FLOAT, 0, colors);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_COLOR_ARRAY);
+
+ glDrawArrays(GL_TRIANGLES, 0, 3);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_COLOR_ARRAY);
+}
+
+static void
+draw_textured_cube(void)
+{
+ static const GLfloat verts[][2] = {
+ { -4, -4 },
+ { 4, -4 },
+ { 4, 4 },
+ { -4, 4 }
+ };
+ static const GLfloat colors[][4] = {
+ { 1, 1, 1, 0.5 },
+ { 1, 1, 1, 0.5 },
+ { 1, 1, 1, 0.5 },
+ { 1, 1, 1, 0.5 }
+ };
+ static const GLfloat texs[][2] = {
+ { 0, 0 },
+ { 1, 0 },
+ { 1, 1 },
+ { 0, 1 }
+ };
+ static const GLfloat xforms[6][4] = {
+ { 0, 0, 1, 0 },
+ { 90, 0, 1, 0 },
+ { 180, 0, 1, 0 },
+ { 270, 0, 1, 0 },
+ { 90, 1, 0, 0 },
+ { -90, 1, 0, 0 }
+ };
+ GLint i;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (blend) {
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_BLEND);
+ } else {
+ glEnable(GL_DEPTH_TEST);
+ glDisable(GL_BLEND);
+ }
+
+ glVertexPointer(2, GL_FLOAT, 0, verts);
+ glColorPointer(4, GL_FLOAT, 0, colors);
+ glTexCoordPointer(2, GL_FLOAT, 0, texs);
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_COLOR_ARRAY);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+
+ for (i = 0; i < 6; i++) {
+ glPushMatrix();
+ glRotatef(xforms[i][0], xforms[i][1], xforms[i][2], xforms[i][3]);
+ glTranslatef(0, 0, 4.1);
+ glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ glPopMatrix();
+ }
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_COLOR_ARRAY);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+}
+
+static void
+draw(void)
+{
+ use_pbuffer();
+ draw_triangle();
+
+ use_window();
+
+ eglBindTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER);
+
+ glPushMatrix();
+ glRotatef(view_rotx, 1, 0, 0);
+ glRotatef(view_roty, 0, 1, 0);
+ glRotatef(view_rotz, 0, 0, 1);
+
+ draw_textured_cube();
+
+ glPopMatrix();
+
+ eglReleaseTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER);
+}
+
+/* new window size or exposure */
+static void
+reshape(int width, int height)
+{
+ GLfloat ar = (GLfloat) width / (GLfloat) height;
+
+ use_window();
+
+ glViewport(0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-ar, ar, -1, 1, 5.0, 60.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -40.0);
+}
+
+static void
+event_loop(Display *x_dpy, Window win)
+{
+ while (1) {
+ int redraw = 1;
+
+ if (XPending(x_dpy) > 0) {
+ XEvent event;
+ XNextEvent(x_dpy, &event);
+
+ switch (event.type) {
+ case Expose:
+ redraw = 1;
+ break;
+ case ConfigureNotify:
+ reshape(event.xconfigure.width, event.xconfigure.height);
+ break;
+ case KeyPress:
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ if (code == XK_Left) {
+ view_roty += 5.0;
+ }
+ else if (code == XK_Right) {
+ view_roty -= 5.0;
+ }
+ else if (code == XK_Up) {
+ view_rotx += 5.0;
+ }
+ else if (code == XK_Down) {
+ view_rotx -= 5.0;
+ }
+ else if (code == XK_b) {
+ blend = !blend;
+ }
+ else {
+ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return;
+ }
+ }
+ }
+ redraw = 1;
+ break;
+ default:
+ ; /*no-op*/
+ }
+ }
+
+ if (redraw) {
+ view_rotx += 1.0;
+ view_roty += 2.0;
+ view_rotz += 1.5;
+ color_flow += 20;
+ draw();
+ eglSwapBuffers(dpy, surf_win);
+ }
+ }
+}
+
+int
+main(int argc, char *argv[])
+{
+ const int winWidth = 300, winHeight = 300;
+ Display *x_dpy;
+ Window win;
+ char *dpyName = NULL;
+ EGLint egl_major, egl_minor;
+ const char *s;
+
+ x_dpy = XOpenDisplay(dpyName);
+ if (!x_dpy) {
+ printf("Error: couldn't open display %s\n",
+ dpyName ? dpyName : getenv("DISPLAY"));
+ return -1;
+ }
+
+ dpy = eglGetDisplay(x_dpy);
+ if (!dpy) {
+ printf("Error: eglGetDisplay() failed\n");
+ return -1;
+ }
+
+ if (!eglInitialize(dpy, &egl_major, &egl_minor)) {
+ printf("Error: eglInitialize() failed\n");
+ return -1;
+ }
+
+ s = eglQueryString(dpy, EGL_VERSION);
+ printf("EGL_VERSION = %s\n", s);
+
+ make_window(x_dpy, "color flow", 0, 0, winWidth, winHeight, &win);
+ make_pbuffer(winWidth, winHeight);
+
+ XMapWindow(x_dpy, win);
+
+ reshape(winWidth, winHeight);
+ event_loop(x_dpy, win);
+
+ glDeleteTextures(1, &tex_pbuf);
+
+ eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ eglTerminate(dpy);
+
+ XDestroyWindow(x_dpy, win);
+ XCloseDisplay(x_dpy);
+
+ return 0;
+}
diff --git a/progs/egl/xeglthreads.c b/progs/egl/xeglthreads.c
new file mode 100644
index 0000000000..508dbc0943
--- /dev/null
+++ b/progs/egl/xeglthreads.c
@@ -0,0 +1,773 @@
+/*
+ * Copyright (C) 2000 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Ported to EGL by Chia-I Wu <olvaffe@gmail.com>
+ */
+
+
+/*
+ * This program tests EGL thread safety.
+ * Command line options:
+ * -p Open a display connection for each thread
+ * -l Enable application-side locking
+ * -n <num threads> Number of threads to create (default is 2)
+ * -display <display name> Specify X display (default is $DISPLAY)
+ * -t Use texture mapping
+ *
+ * Brian Paul 20 July 2000
+ */
+
+
+/*
+ * Notes:
+ * - Each thread gets its own EGL context.
+ *
+ * - The EGL contexts share texture objects.
+ *
+ * - When 't' is pressed to update the texture image, the window/thread which
+ * has input focus is signalled to change the texture. The other threads
+ * should see the updated texture the next time they call glBindTexture.
+ */
+
+
+#if defined(PTHREADS) /* defined by Mesa on Linux and other platforms */
+
+#include <assert.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <GL/gl.h>
+#include <EGL/egl.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthread.h>
+
+
+/*
+ * Each window/thread/context:
+ */
+struct winthread {
+ Display *Dpy;
+ int Index;
+ pthread_t Thread;
+ Window Win;
+ EGLDisplay Display;
+ EGLContext Context;
+ EGLSurface Surface;
+ float Angle;
+ int WinWidth, WinHeight;
+ GLboolean NewSize;
+ GLboolean Initialized;
+ GLboolean MakeNewTexture;
+};
+
+
+#define MAX_WINTHREADS 100
+static struct winthread WinThreads[MAX_WINTHREADS];
+static int NumWinThreads = 0;
+static volatile GLboolean ExitFlag = GL_FALSE;
+
+static GLboolean MultiDisplays = 0;
+static GLboolean Locking = 0;
+static GLboolean Texture = GL_FALSE;
+static GLuint TexObj = 12;
+static GLboolean Animate = GL_TRUE;
+
+static pthread_mutex_t Mutex;
+static pthread_cond_t CondVar;
+static pthread_mutex_t CondMutex;
+
+
+static void
+Error(const char *msg)
+{
+ fprintf(stderr, "Error: %s\n", msg);
+ exit(1);
+}
+
+
+static void
+signal_redraw(void)
+{
+ pthread_mutex_lock(&CondMutex);
+ pthread_cond_broadcast(&CondVar);
+ pthread_mutex_unlock(&CondMutex);
+}
+
+
+static void
+MakeNewTexture(struct winthread *wt)
+{
+#define TEX_SIZE 128
+ static float step = 0.0;
+ GLfloat image[TEX_SIZE][TEX_SIZE][4];
+ GLint width;
+ int i, j;
+
+ for (j = 0; j < TEX_SIZE; j++) {
+ for (i = 0; i < TEX_SIZE; i++) {
+ float dt = 5.0 * (j - 0.5 * TEX_SIZE) / TEX_SIZE;
+ float ds = 5.0 * (i - 0.5 * TEX_SIZE) / TEX_SIZE;
+ float r = dt * dt + ds * ds + step;
+ image[j][i][0] =
+ image[j][i][1] =
+ image[j][i][2] = 0.75 + 0.25 * cos(r);
+ image[j][i][3] = 1.0;
+ }
+ }
+
+ step += 0.5;
+
+ glBindTexture(GL_TEXTURE_2D, TexObj);
+
+ glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width);
+ if (width) {
+ assert(width == TEX_SIZE);
+ /* sub-tex replace */
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TEX_SIZE, TEX_SIZE,
+ GL_RGBA, GL_FLOAT, image);
+ }
+ else {
+ /* create new */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEX_SIZE, TEX_SIZE, 0,
+ GL_RGBA, GL_FLOAT, image);
+ }
+}
+
+
+
+/* draw a colored cube */
+static void
+draw_object(void)
+{
+ glPushMatrix();
+ glScalef(0.75, 0.75, 0.75);
+
+ glColor3f(1, 0, 0);
+
+ if (Texture) {
+ glBindTexture(GL_TEXTURE_2D, TexObj);
+ glEnable(GL_TEXTURE_2D);
+ }
+ else {
+ glDisable(GL_TEXTURE_2D);
+ }
+
+ glBegin(GL_QUADS);
+
+ /* -X */
+ glColor3f(0, 1, 1);
+ glTexCoord2f(0, 0); glVertex3f(-1, -1, -1);
+ glTexCoord2f(1, 0); glVertex3f(-1, 1, -1);
+ glTexCoord2f(1, 1); glVertex3f(-1, 1, 1);
+ glTexCoord2f(0, 1); glVertex3f(-1, -1, 1);
+
+ /* +X */
+ glColor3f(1, 0, 0);
+ glTexCoord2f(0, 0); glVertex3f(1, -1, -1);
+ glTexCoord2f(1, 0); glVertex3f(1, 1, -1);
+ glTexCoord2f(1, 1); glVertex3f(1, 1, 1);
+ glTexCoord2f(0, 1); glVertex3f(1, -1, 1);
+
+ /* -Y */
+ glColor3f(1, 0, 1);
+ glTexCoord2f(0, 0); glVertex3f(-1, -1, -1);
+ glTexCoord2f(1, 0); glVertex3f( 1, -1, -1);
+ glTexCoord2f(1, 1); glVertex3f( 1, -1, 1);
+ glTexCoord2f(0, 1); glVertex3f(-1, -1, 1);
+
+ /* +Y */
+ glColor3f(0, 1, 0);
+ glTexCoord2f(0, 0); glVertex3f(-1, 1, -1);
+ glTexCoord2f(1, 0); glVertex3f( 1, 1, -1);
+ glTexCoord2f(1, 1); glVertex3f( 1, 1, 1);
+ glTexCoord2f(0, 1); glVertex3f(-1, 1, 1);
+
+ /* -Z */
+ glColor3f(1, 1, 0);
+ glTexCoord2f(0, 0); glVertex3f(-1, -1, -1);
+ glTexCoord2f(1, 0); glVertex3f( 1, -1, -1);
+ glTexCoord2f(1, 1); glVertex3f( 1, 1, -1);
+ glTexCoord2f(0, 1); glVertex3f(-1, 1, -1);
+
+ /* +Y */
+ glColor3f(0, 0, 1);
+ glTexCoord2f(0, 0); glVertex3f(-1, -1, 1);
+ glTexCoord2f(1, 0); glVertex3f( 1, -1, 1);
+ glTexCoord2f(1, 1); glVertex3f( 1, 1, 1);
+ glTexCoord2f(0, 1); glVertex3f(-1, 1, 1);
+
+ glEnd();
+
+ glPopMatrix();
+}
+
+
+/* signal resize of given window */
+static void
+resize(struct winthread *wt, int w, int h)
+{
+ wt->NewSize = GL_TRUE;
+ wt->WinWidth = w;
+ wt->WinHeight = h;
+ if (!Animate)
+ signal_redraw();
+}
+
+
+/*
+ * We have an instance of this for each thread.
+ */
+static void
+draw_loop(struct winthread *wt)
+{
+ while (!ExitFlag) {
+
+ if (Locking)
+ pthread_mutex_lock(&Mutex);
+
+ if (!wt->Initialized) {
+ eglMakeCurrent(wt->Display, wt->Surface, wt->Surface, wt->Context);
+ printf("xeglthreads: %d: GL_RENDERER = %s\n", wt->Index,
+ (char *) glGetString(GL_RENDERER));
+ if (Texture /*&& wt->Index == 0*/) {
+ MakeNewTexture(wt);
+ }
+ wt->Initialized = GL_TRUE;
+ }
+
+ if (Locking)
+ pthread_mutex_unlock(&Mutex);
+
+ eglBindAPI(EGL_OPENGL_API);
+ if (eglGetCurrentContext() != wt->Context) {
+ printf("xeglthreads: current context %p != %p\n",
+ eglGetCurrentContext(), wt->Context);
+ }
+
+ glEnable(GL_DEPTH_TEST);
+
+ if (wt->NewSize) {
+ GLfloat w = (float) wt->WinWidth / (float) wt->WinHeight;
+ glViewport(0, 0, wt->WinWidth, wt->WinHeight);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-w, w, -1.0, 1.0, 1.5, 10);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0, 0, -2.5);
+ wt->NewSize = GL_FALSE;
+ }
+
+ if (wt->MakeNewTexture) {
+ MakeNewTexture(wt);
+ wt->MakeNewTexture = GL_FALSE;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(wt->Angle, 0, 1, 0);
+ glRotatef(wt->Angle, 1, 0, 0);
+ glScalef(0.7, 0.7, 0.7);
+ draw_object();
+ glPopMatrix();
+
+ if (Locking)
+ pthread_mutex_lock(&Mutex);
+
+ eglSwapBuffers(wt->Display, wt->Surface);
+
+ if (Locking)
+ pthread_mutex_unlock(&Mutex);
+
+ if (Animate) {
+ usleep(5000);
+ }
+ else {
+ /* wait for signal to draw */
+ pthread_mutex_lock(&CondMutex);
+ pthread_cond_wait(&CondVar, &CondMutex);
+ pthread_mutex_unlock(&CondMutex);
+ }
+ wt->Angle += 1.0;
+ }
+ eglMakeCurrent(wt->Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+}
+
+
+static void
+keypress(XEvent *event, struct winthread *wt)
+{
+ char buf[100];
+ KeySym keySym;
+ XComposeStatus stat;
+
+ XLookupString(&event->xkey, buf, sizeof(buf), &keySym, &stat);
+
+ switch (keySym) {
+ case XK_Escape:
+ /* tell all threads to exit */
+ if (!Animate) {
+ signal_redraw();
+ }
+ ExitFlag = GL_TRUE;
+ /*printf("exit draw_loop %d\n", wt->Index);*/
+ return;
+ case XK_t:
+ case XK_T:
+ if (Texture) {
+ wt->MakeNewTexture = GL_TRUE;
+ if (!Animate)
+ signal_redraw();
+ }
+ break;
+ case XK_a:
+ case XK_A:
+ Animate = !Animate;
+ if (Animate) /* yes, prev Animate state! */
+ signal_redraw();
+ break;
+ case XK_s:
+ case XK_S:
+ if (!Animate)
+ signal_redraw();
+ break;
+ default:
+ ; /* nop */
+ }
+}
+
+
+/*
+ * The main process thread runs this loop.
+ * Single display connection for all threads.
+ */
+static void
+event_loop(Display *dpy)
+{
+ XEvent event;
+ int i;
+
+ assert(!MultiDisplays);
+
+ while (!ExitFlag) {
+
+ if (Locking) {
+ while (1) {
+ int k;
+ pthread_mutex_lock(&Mutex);
+ k = XPending(dpy);
+ if (k) {
+ XNextEvent(dpy, &event);
+ pthread_mutex_unlock(&Mutex);
+ break;
+ }
+ pthread_mutex_unlock(&Mutex);
+ usleep(5000);
+ }
+ }
+ else {
+ XNextEvent(dpy, &event);
+ }
+
+ switch (event.type) {
+ case ConfigureNotify:
+ /* Find winthread for this event's window */
+ for (i = 0; i < NumWinThreads; i++) {
+ struct winthread *wt = &WinThreads[i];
+ if (event.xconfigure.window == wt->Win) {
+ resize(wt, event.xconfigure.width,
+ event.xconfigure.height);
+ break;
+ }
+ }
+ break;
+ case KeyPress:
+ for (i = 0; i < NumWinThreads; i++) {
+ struct winthread *wt = &WinThreads[i];
+ if (event.xkey.window == wt->Win) {
+ keypress(&event, wt);
+ break;
+ }
+ }
+ break;
+ default:
+ /*no-op*/ ;
+ }
+ }
+}
+
+
+/*
+ * Separate display connection for each thread.
+ */
+static void
+event_loop_multi(void)
+{
+ XEvent event;
+ int w = 0;
+
+ assert(MultiDisplays);
+
+ while (!ExitFlag) {
+ struct winthread *wt = &WinThreads[w];
+ if (XPending(wt->Dpy)) {
+ XNextEvent(wt->Dpy, &event);
+ switch (event.type) {
+ case ConfigureNotify:
+ resize(wt, event.xconfigure.width, event.xconfigure.height);
+ break;
+ case KeyPress:
+ keypress(&event, wt);
+ break;
+ default:
+ ; /* nop */
+ }
+ }
+ w = (w + 1) % NumWinThreads;
+ usleep(5000);
+ }
+}
+
+
+
+/*
+ * we'll call this once for each thread, before the threads are created.
+ */
+static void
+create_window(struct winthread *wt, EGLContext shareCtx)
+{
+ Window win;
+ EGLContext ctx;
+ EGLSurface surf;
+ EGLint attribs[] = { EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_DEPTH_SIZE, 1,
+ EGL_NONE };
+ EGLConfig config;
+ EGLint num_configs;
+ EGLint vid;
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ XVisualInfo *visinfo, visTemplate;
+ int num_visuals;
+ int width = 160, height = 160;
+ int xpos = (wt->Index % 8) * (width + 10);
+ int ypos = (wt->Index / 8) * (width + 20);
+
+ scrnum = DefaultScreen(wt->Dpy);
+ root = RootWindow(wt->Dpy, scrnum);
+
+ if (!eglChooseConfig(wt->Display, attribs, &config, 1, &num_configs)) {
+ Error("Unable to choose an EGL config");
+ }
+
+ assert(config);
+ assert(num_configs > 0);
+
+ if (!eglGetConfigAttrib(wt->Display, config, EGL_NATIVE_VISUAL_ID, &vid)) {
+ Error("Unable to get visual id of EGL config\n");
+ }
+
+ visTemplate.visualid = vid;
+ visinfo = XGetVisualInfo(wt->Dpy, VisualIDMask,
+ &visTemplate, &num_visuals);
+ if (!visinfo) {
+ Error("Unable to find RGB, Z, double-buffered visual");
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap(wt->Dpy, root, visinfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ win = XCreateWindow(wt->Dpy, root, xpos, ypos, width, height,
+ 0, visinfo->depth, InputOutput,
+ visinfo->visual, mask, &attr);
+ if (!win) {
+ Error("Couldn't create window");
+ }
+
+ XFree(visinfo);
+
+ {
+ XSizeHints sizehints;
+ sizehints.x = xpos;
+ sizehints.y = ypos;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(wt->Dpy, win, &sizehints);
+ XSetStandardProperties(wt->Dpy, win, "xeglthreads", "xeglthreads",
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ eglBindAPI(EGL_OPENGL_API);
+
+ ctx = eglCreateContext(wt->Display, config, shareCtx, NULL);
+ if (!ctx) {
+ Error("Couldn't create EGL context");
+ }
+ surf = eglCreateWindowSurface(wt->Display, config, win, NULL);
+ if (!surf) {
+ Error("Couldn't create EGL surface");
+ }
+
+ XMapWindow(wt->Dpy, win);
+ XSync(wt->Dpy, 0);
+
+ /* save the info for this window/context */
+ wt->Win = win;
+ wt->Context = ctx;
+ wt->Surface = surf;
+ wt->Angle = 0.0;
+ wt->WinWidth = width;
+ wt->WinHeight = height;
+ wt->NewSize = GL_TRUE;
+}
+
+
+/*
+ * Called by pthread_create()
+ */
+static void *
+thread_function(void *p)
+{
+ struct winthread *wt = (struct winthread *) p;
+ draw_loop(wt);
+ return NULL;
+}
+
+
+/*
+ * called before exit to wait for all threads to finish
+ */
+static void
+clean_up(void)
+{
+ int i;
+
+ /* wait for threads to finish */
+ for (i = 0; i < NumWinThreads; i++) {
+ pthread_join(WinThreads[i].Thread, NULL);
+ }
+
+ for (i = 0; i < NumWinThreads; i++) {
+ eglDestroyContext(WinThreads[i].Display, WinThreads[i].Context);
+ XDestroyWindow(WinThreads[i].Dpy, WinThreads[i].Win);
+ }
+}
+
+
+static void
+usage(void)
+{
+ printf("xeglthreads: test of EGL/GL thread safety (any key = exit)\n");
+ printf("Usage:\n");
+ printf(" xeglthreads [options]\n");
+ printf("Options:\n");
+ printf(" -display DISPLAYNAME Specify display string\n");
+ printf(" -n NUMTHREADS Number of threads to create\n");
+ printf(" -p Use a separate display connection for each thread\n");
+ printf(" -l Use application-side locking\n");
+ printf(" -t Enable texturing\n");
+ printf("Keyboard:\n");
+ printf(" Esc Exit\n");
+ printf(" t Change texture image (requires -t option)\n");
+ printf(" a Toggle animation\n");
+ printf(" s Step rotation (when not animating)\n");
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ char *displayName = NULL;
+ int numThreads = 2;
+ Display *dpy = NULL;
+ EGLDisplay *egl_dpy = NULL;
+ int i;
+ Status threadStat;
+
+ if (argc == 1) {
+ usage();
+ }
+ else {
+ int i;
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-display") == 0 && i + 1 < argc) {
+ displayName = argv[i + 1];
+ i++;
+ }
+ else if (strcmp(argv[i], "-p") == 0) {
+ MultiDisplays = 1;
+ }
+ else if (strcmp(argv[i], "-l") == 0) {
+ Locking = 1;
+ }
+ else if (strcmp(argv[i], "-t") == 0) {
+ Texture = 1;
+ }
+ else if (strcmp(argv[i], "-n") == 0 && i + 1 < argc) {
+ numThreads = atoi(argv[i + 1]);
+ if (numThreads < 1)
+ numThreads = 1;
+ else if (numThreads > MAX_WINTHREADS)
+ numThreads = MAX_WINTHREADS;
+ i++;
+ }
+ else {
+ usage();
+ exit(1);
+ }
+ }
+ }
+
+ if (Locking)
+ printf("xeglthreads: Using explicit locks around Xlib calls.\n");
+ else
+ printf("xeglthreads: No explict locking.\n");
+
+ if (MultiDisplays)
+ printf("xeglthreads: Per-thread display connections.\n");
+ else
+ printf("xeglthreads: Single display connection.\n");
+
+ /*
+ * VERY IMPORTANT: call XInitThreads() before any other Xlib functions.
+ */
+ if (!MultiDisplays) {
+ if (!Locking) {
+ threadStat = XInitThreads();
+ if (threadStat) {
+ printf("XInitThreads() returned %d (success)\n",
+ (int) threadStat);
+ }
+ else {
+ printf("XInitThreads() returned 0 "
+ "(failure- this program may fail)\n");
+ }
+ }
+
+ dpy = XOpenDisplay(displayName);
+ if (!dpy) {
+ fprintf(stderr, "Unable to open display %s\n",
+ XDisplayName(displayName));
+ return -1;
+ }
+ egl_dpy = eglGetDisplay(dpy);
+ if (!egl_dpy) {
+ fprintf(stderr, "Unable to get EGL display\n");
+ XCloseDisplay(dpy);
+ return -1;
+ }
+ if (!eglInitialize(egl_dpy, NULL, NULL)) {
+ fprintf(stderr, "Unable to initialize EGL display\n");
+ return -1;
+ }
+ }
+
+ pthread_mutex_init(&Mutex, NULL);
+ pthread_mutex_init(&CondMutex, NULL);
+ pthread_cond_init(&CondVar, NULL);
+
+ printf("xeglthreads: creating windows\n");
+
+ NumWinThreads = numThreads;
+
+ /* Create the EGL windows and contexts */
+ for (i = 0; i < numThreads; i++) {
+ EGLContext share;
+
+ if (MultiDisplays) {
+ WinThreads[i].Dpy = XOpenDisplay(displayName);
+ assert(WinThreads[i].Dpy);
+ WinThreads[i].Display = eglGetDisplay(WinThreads[i].Dpy);
+ assert(eglInitialize(WinThreads[i].Display, NULL, NULL));
+ }
+ else {
+ WinThreads[i].Dpy = dpy;
+ WinThreads[i].Display = egl_dpy;
+ }
+ WinThreads[i].Index = i;
+ WinThreads[i].Initialized = GL_FALSE;
+
+ share = (Texture && i > 0) ? WinThreads[0].Context : 0;
+
+ create_window(&WinThreads[i], share);
+ }
+
+ printf("xeglthreads: creating threads\n");
+
+ /* Create the threads */
+ for (i = 0; i < numThreads; i++) {
+ pthread_create(&WinThreads[i].Thread, NULL, thread_function,
+ (void*) &WinThreads[i]);
+ printf("xeglthreads: Created thread %p\n",
+ (void *) WinThreads[i].Thread);
+ }
+
+ if (MultiDisplays)
+ event_loop_multi();
+ else
+ event_loop(dpy);
+
+ clean_up();
+
+ if (MultiDisplays) {
+ for (i = 0; i < numThreads; i++) {
+ eglTerminate(WinThreads[i].Display);
+ XCloseDisplay(WinThreads[i].Dpy);
+ }
+ }
+ else {
+ eglTerminate(egl_dpy);
+ XCloseDisplay(dpy);
+ }
+
+ return 0;
+}
+
+
+#else /* PTHREADS */
+
+
+#include <stdio.h>
+
+int
+main(int argc, char *argv[])
+{
+ printf("Sorry, this program wasn't compiled with PTHREADS defined.\n");
+ return 0;
+}
+
+
+#endif /* PTHREADS */
diff --git a/progs/fp/SConscript b/progs/fp/SConscript
index 553799758b..a78318542c 100644
--- a/progs/fp/SConscript
+++ b/progs/fp/SConscript
@@ -11,7 +11,20 @@ env.Prepend(CPPPATH = [
env.Prepend(LIBS = ['$GLUT_LIB'])
-env.Program(
- target = 'fp-tri',
- source = ['fp-tri.c'],
+progs = [
+ 'fp-tri',
+ 'tri-depth',
+ 'tri-depth2',
+ 'tri-depthwrite',
+ 'tri-depthwrite2',
+ 'tri-inv',
+ 'tri-param',
+ 'tri-tex',
+ 'point-position',
+]
+
+for prog in progs:
+ env.Program(
+ target = prog,
+ source = [prog + '.c'],
)
diff --git a/progs/fp/fp-tri.c b/progs/fp/fp-tri.c
index 6c15540d38..52a8fcfc22 100644
--- a/progs/fp/fp-tri.c
+++ b/progs/fp/fp-tri.c
@@ -89,7 +89,7 @@ static void Init( void )
}
fprintf(stderr, "%.*s\n", sz, buf);
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
diff --git a/progs/fp/point-position.c b/progs/fp/point-position.c
index c352a939cb..c0963d7a0b 100644
--- a/progs/fp/point-position.c
+++ b/progs/fp/point-position.c
@@ -2,9 +2,8 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
-#include "GL/gl.h"
@@ -17,7 +16,7 @@ static void Init( void )
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -109,6 +108,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-depth.c b/progs/fp/tri-depth.c
index a1f0579c8e..5488469e80 100644
--- a/progs/fp/tri-depth.c
+++ b/progs/fp/tri-depth.c
@@ -2,9 +2,8 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
-#include "GL/gl.h"
@@ -19,7 +18,7 @@ static void Init( void )
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -89,8 +88,6 @@ int main(int argc, char **argv)
glutInit(&argc, argv);
-
-
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
type = GLUT_RGB;
@@ -101,6 +98,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-depth2.c b/progs/fp/tri-depth2.c
index f309628283..6ed2307115 100644
--- a/progs/fp/tri-depth2.c
+++ b/progs/fp/tri-depth2.c
@@ -2,9 +2,8 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
-#include "GL/gl.h"
@@ -21,7 +20,7 @@ static void Init( void )
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -106,6 +105,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-depthwrite.c b/progs/fp/tri-depthwrite.c
index fedeec4577..8e4f3e6245 100644
--- a/progs/fp/tri-depthwrite.c
+++ b/progs/fp/tri-depthwrite.c
@@ -2,7 +2,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
@@ -16,7 +16,7 @@ static void Init(void)
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -97,6 +97,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-depthwrite2.c b/progs/fp/tri-depthwrite2.c
index 5547092ec9..3c0b4d30c9 100644
--- a/progs/fp/tri-depthwrite2.c
+++ b/progs/fp/tri-depthwrite2.c
@@ -2,7 +2,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
@@ -16,7 +16,7 @@ static void Init(void)
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -97,6 +97,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-inv.c b/progs/fp/tri-inv.c
index e902332386..7e8d8c5ce2 100644
--- a/progs/fp/tri-inv.c
+++ b/progs/fp/tri-inv.c
@@ -2,7 +2,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
@@ -17,7 +17,7 @@ static void Init( void )
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -99,6 +99,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-param.c b/progs/fp/tri-param.c
index f3e55af3f1..57443d71bd 100644
--- a/progs/fp/tri-param.c
+++ b/progs/fp/tri-param.c
@@ -2,9 +2,9 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
-#include "GL/gl.h"
+
static void Init( void )
{
@@ -15,7 +15,7 @@ static void Init( void )
;
GLuint modulateProg;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -104,6 +104,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/fp/tri-tex.c b/progs/fp/tri-tex.c
index 87f63894ce..1dbbb201ce 100644
--- a/progs/fp/tri-tex.c
+++ b/progs/fp/tri-tex.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#define GL_GLEXT_PROTOTYPES
+#include <GL/glew.h>
#include <GL/glut.h>
#include "readtex.c"
@@ -23,7 +23,7 @@ static void Init( void )
GLuint modulateProg;
GLuint Texture;
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ if (!GLEW_ARB_fragment_program) {
printf("Error: GL_ARB_fragment_program not supported!\n");
exit(1);
}
@@ -120,6 +120,8 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
+
Init();
glutReshapeFunc(Reshape);
diff --git a/progs/glsl/.gitignore b/progs/glsl/.gitignore
index 39d90c23ac..986775bac2 100644
--- a/progs/glsl/.gitignore
+++ b/progs/glsl/.gitignore
@@ -22,6 +22,7 @@ samplers_array
shaderutil.c
shaderutil.h
shadow_sampler
+shtest
skinning
texaaline
texdemo1
diff --git a/progs/glsl/Makefile b/progs/glsl/Makefile
index f97cdb6942..8103a5cbca 100644
--- a/progs/glsl/Makefile
+++ b/progs/glsl/Makefile
@@ -10,10 +10,15 @@ LIB_DEP = \
$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) \
$(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
-LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS)
+LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLEW_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS)
INCLUDE_DIRS = -I$(TOP)/progs/util
+# using : to avoid APP_CC pointing to CC loop
+CC:=$(APP_CC)
+CFLAGS += -I$(INCDIR)
+LDLIBS=$(LIBS)
+
DEMO_SOURCES = \
array.c \
bitmap.c \
@@ -32,7 +37,9 @@ DEMO_SOURCES = \
pointcoord.c \
points.c \
samplers.c \
+ samplers_array.c \
shadow_sampler.c \
+ shtest.c \
skinning.c \
texaaline.c \
texdemo1.c \
@@ -52,28 +59,16 @@ UTIL_SOURCES = \
readtex.c
UTIL_OBJS = $(UTIL_SOURCES:.c=.o)
-
-
+PROG_OBJS = $(DEMO_SOURCES:.c=.o)
PROGS = $(DEMO_SOURCES:%.c=%)
-
-
-##### RULES #####
-
-# make .o file from .c file:
-.c.o:
- $(APP_CC) -c -I$(INCDIR) $(CFLAGS) $< -o $@
-
-
-# make executable from .o files
-.o:
- $(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $< $(UTIL_OBJS) $(LIBS) -o $@
-
-
##### TARGETS #####
default: $(PROGS)
+$(PROG_OBJS): $(UTIL_HEADERS)
+
+$(PROGS): $(UTIL_OBJS)
clean:
-rm -f $(PROGS)
@@ -83,9 +78,11 @@ clean:
-rm -f readtex.*
-
##### Extra dependencies
+samplers_array.o: samplers.c
+ $(APP_CC) $(CFLAGS) -DSAMPLERS_ARRAY $< -c -o $@
+
extfuncs.h: $(TOP)/progs/util/extfuncs.h
cp $< .
@@ -101,138 +98,3 @@ shaderutil.c: $(TOP)/progs/util/shaderutil.c
shaderutil.h: $(TOP)/progs/util/shaderutil.h
cp $< .
-
-
-array.o: $(UTIL_HEADERS)
-
-array: array.o $(UTIL_OBJS)
-
-
-bitmap.o: $(UTIL_HEADERS)
-
-bitmap: bitmap.o $(UTIL_OBJS)
-
-
-brick.o: $(UTIL_HEADERS)
-
-brick: brick.o $(UTIL_OBJS)
-
-
-bump.o: $(UTIL_HEADERS)
-
-bump: bump.o $(UTIL_OBJS)
-
-
-convolutions.o: $(UTIL_HEADERS)
-
-convolutions: convolutions.o $(UTIL_OBJS)
-
-
-deriv.o: deriv.c $(UTIL_HEADERS)
-
-deriv: deriv.o $(UTIL_OBJS)
-
-
-identity.o: $(UTIL_HEADERS)
-
-identity: identity.o $(UTIL_OBJS)
-
-
-fragcoord.o: $(UTIL_HEADERS)
-
-fragcoord: fragcoord.o $(UTIL_OBJS)
-
-
-linktest.o: $(UTIL_HEADERS)
-
-linktest: linktest.o $(UTIL_OBJS)
-
-
-mandelbrot.o: $(UTIL_HEADERS)
-
-mandelbrot: mandelbrot.o $(UTIL_OBJS)
-
-
-multinoise.o: $(UTIL_HEADERS)
-
-multinoise: multinoise.o $(UTIL_OBJS)
-
-
-multitex.o: $(UTIL_HEADERS)
-
-multitex: multitex.o $(UTIL_OBJS)
-
-
-noise.o: $(UTIL_HEADERS)
-
-noise: noise.o $(UTIL_OBJS)
-
-
-noise2.o: $(UTIL_HEADERS)
-
-noise2: noise2.o $(UTIL_OBJS)
-
-
-points.o: $(UTIL_HEADERS)
-
-points: points.o $(UTIL_OBJS)
-
-
-pointcoord.o: $(UTIL_HEADERS)
-
-pointcoord: pointcoord.o $(UTIL_OBJS)
-
-
-samplers.o: $(UTIL_HEADERS)
-
-samplers: samplers.o $(UTIL_OBJS)
-
-
-samplers_array.o: $(UTIL_HEADERS)
-
-samplers_array: samplers_array.o $(UTIL_OBJS)
-
-
-shadow_sampler.o: $(UTIL_HEADERS)
-
-shadow_sampler: shadow_sampler.o $(UTIL_OBJS)
-
-
-skinning.o: $(UTIL_HEADERS)
-
-skinning: skinning.o $(UTIL_OBJS)
-
-
-texaaline.o: $(UTIL_HEADERS)
-
-texaaline: texaaline.o $(UTIL_OBJS)
-
-
-texdemo1.o: $(UTIL_HEADERS)
-
-texdemo1: texdemo1.o $(UTIL_OBJS)
-
-
-toyball.o: $(UTIL_HEADERS)
-
-toyball: toyball.o $(UTIL_OBJS)
-
-
-twoside.o: $(UTIL_HEADERS)
-
-twoside: twoside.o $(UTIL_OBJS)
-
-
-trirast.o: $(UTIL_HEADERS)
-
-trirast: trirast.o $(UTIL_OBJS)
-
-
-vert-or-frag-only.o: $(UTIL_HEADERS)
-
-vert-or-frag-only: vert-or-frag-only.o $(UTIL_OBJS)
-
-
-vert-tex.o: $(UTIL_HEADERS)
-
-vert-tex: vert-tex.o $(UTIL_OBJS)
diff --git a/progs/glsl/SConscript b/progs/glsl/SConscript
new file mode 100644
index 0000000000..7a4549cd70
--- /dev/null
+++ b/progs/glsl/SConscript
@@ -0,0 +1,55 @@
+Import('*')
+
+if not env['GLUT']:
+ Return()
+
+env = env.Clone()
+
+env.Prepend(CPPPATH = [
+ '../util',
+])
+
+env.Prepend(LIBS = [
+ util,
+ '$GLUT_LIB'
+])
+
+if env['platform'] == 'windows':
+ env.Append(CPPDEFINES = ['NOMINMAX'])
+ env.Prepend(LIBS = ['winmm'])
+
+progs = [
+ 'array',
+ 'bitmap',
+ 'brick',
+ 'bump',
+ 'convolutions',
+ 'deriv',
+ 'fragcoord',
+ 'identity',
+ 'linktest',
+ 'mandelbrot',
+ 'multinoise',
+ 'multitex',
+ 'noise',
+ 'noise2',
+ 'pointcoord',
+ 'points',
+ 'samplers',
+ 'shadow_sampler',
+ 'skinning',
+ 'texaaline',
+ 'texdemo1',
+ 'toyball',
+ 'trirast',
+ 'twoside',
+ 'vert-or-frag-only',
+ 'vert-tex',
+]
+
+for prog in progs:
+ env.Program(
+ target = prog,
+ source = prog + '.c',
+ )
+
diff --git a/progs/glsl/array.c b/progs/glsl/array.c
index 46ef8043bc..4ed18485ea 100644
--- a/progs/glsl/array.c
+++ b/progs/glsl/array.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -144,9 +142,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -219,19 +217,17 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
/* Setup the HeightArray[] uniform */
for (i = 0; i < 20; i++)
HeightArray[i] = i / 20.0;
- u = glGetUniformLocation_func(program, "HeightArray");
- glUniform1fv_func(u, 20, HeightArray);
+ u = glGetUniformLocation(program, "HeightArray");
+ glUniform1fv(u, 20, HeightArray);
assert(glGetError() == 0);
@@ -248,6 +244,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 500);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/bitmap.c b/progs/glsl/bitmap.c
index d488ec6cb9..8b1853d9ab 100644
--- a/progs/glsl/bitmap.c
+++ b/progs/glsl/bitmap.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -78,11 +76,11 @@ Redisplay(void)
BitmapText("-X");
}
else {
- glUseProgram_func(Program);
+ glUseProgram(Program);
/* vertex positions (deltas) depend on texture size and window size */
if (uScale != -1) {
- glUniform2f_func(uScale,
+ glUniform2f(uScale,
2.0 * TEX_WIDTH / WinWidth,
2.0 * TEX_HEIGHT / WinHeight);
}
@@ -105,7 +103,7 @@ Redisplay(void)
glTexCoord2f(0, 1); glVertex3fv(nx);
glEnd();
- glUseProgram_func(0);
+ glUseProgram(0);
}
glPopMatrix();
@@ -160,9 +158,9 @@ Key(unsigned char key, int x, int y)
printf("Using billboard texture\n");
break;
case 27:
- glDeleteShader_func(FragShader);
- glDeleteShader_func(VertShader);
- glDeleteProgram_func(Program);
+ glDeleteShader(FragShader);
+ glDeleteShader(VertShader);
+ glDeleteProgram(Program);
glutDestroyWindow(Win);
exit(0);
}
@@ -277,21 +275,19 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
Program = LinkShaders(VertShader, FragShader);
- glUseProgram_func(Program);
+ glUseProgram(Program);
- uScale = glGetUniformLocation_func(Program, "scale");
- uTex = glGetUniformLocation_func(Program, "tex2d");
+ uScale = glGetUniformLocation(Program, "scale");
+ uTex = glGetUniformLocation(Program, "tex2d");
if (uTex != -1) {
- glUniform1i_func(uTex, 0); /* tex unit 0 */
+ glUniform1i(uTex, 0); /* tex unit 0 */
}
- glUseProgram_func(0);
+ glUseProgram(0);
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
glEnable(GL_DEPTH_TEST);
@@ -309,6 +305,7 @@ main(int argc, char *argv[])
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
Win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/brick.c b/progs/glsl/brick.c
index 526ef0e2e3..20417aa462 100644
--- a/progs/glsl/brick.c
+++ b/progs/glsl/brick.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -26,12 +24,12 @@ static GLuint program;
static struct uniform_info Uniforms[] = {
/* vert */
- { "LightPosition", 3, GL_FLOAT, { 0.1, 0.1, 9.0, 0}, -1 },
+ { "LightPosition", 1, GL_FLOAT_VEC3, { 0.1, 0.1, 9.0, 0}, -1 },
/* frag */
- { "BrickColor", 3, GL_FLOAT, { 0.8, 0.2, 0.2, 0 }, -1 },
- { "MortarColor", 3, GL_FLOAT, { 0.6, 0.6, 0.6, 0 }, -1 },
- { "BrickSize", 2, GL_FLOAT, { 1.0, 0.3, 0, 0 }, -1 },
- { "BrickPct", 2, GL_FLOAT, { 0.9, 0.8, 0, 0 }, -1 },
+ { "BrickColor", 1, GL_FLOAT_VEC3, { 0.8, 0.2, 0.2, 0 }, -1 },
+ { "MortarColor", 1, GL_FLOAT_VEC3, { 0.6, 0.6, 0.6, 0 }, -1 },
+ { "BrickSize", 1, GL_FLOAT_VEC2, { 1.0, 0.3, 0, 0 }, -1 },
+ { "BrickPct", 1, GL_FLOAT_VEC2, { 0.9, 0.8, 0, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -82,9 +80,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -144,15 +142,14 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
+ PrintUniforms(Uniforms);
assert(glGetError() == 0);
@@ -160,9 +157,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -187,10 +184,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/brick.shtest b/progs/glsl/brick.shtest
new file mode 100644
index 0000000000..8a2152692e
--- /dev/null
+++ b/progs/glsl/brick.shtest
@@ -0,0 +1,8 @@
+vs CH06-brick.vert
+fs CH06-brick.frag
+uniform LightPosition GL_FLOAT_VEC3 0.1 0.1 9.0
+uniform BrickColor GL_FLOAT_VEC3 0.8 0.2 0.2
+uniform MortarColor GL_FLOAT_VEC3 0.6 0.6 0.6
+uniform BrickSize GL_FLOAT_VEC2 1.0 0.3
+uniform BrickPct GL_FLOAT_VEC2 0.9 0.8
+
diff --git a/progs/glsl/bump.c b/progs/glsl/bump.c
index 0ea1f8331f..87669aec73 100644
--- a/progs/glsl/bump.c
+++ b/progs/glsl/bump.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glu.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -26,11 +24,11 @@ static GLuint program;
static struct uniform_info Uniforms[] = {
- { "LightPosition", 3, GL_FLOAT, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 },
- { "SurfaceColor", 3, GL_FLOAT, { 0.8, 0.8, 0.2, 0 }, -1 },
- { "BumpDensity", 1, GL_FLOAT, { 10.0, 0, 0, 0 }, -1 },
- { "BumpSize", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 },
- { "SpecularFactor", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 },
+ { "LightPosition", 1, GL_FLOAT_VEC3, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 },
+ { "SurfaceColor", 1, GL_FLOAT_VEC3, { 0.8, 0.8, 0.2, 0 }, -1 },
+ { "BumpDensity", 1, GL_FLOAT, { 10.0, 0, 0, 0 }, -1 },
+ { "BumpSize", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 },
+ { "SpecularFactor", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -60,7 +58,7 @@ static void
Square(GLfloat size)
{
glNormal3f(0, 0, 1);
- glVertexAttrib3f_func(tangentAttrib, 1, 0, 0);
+ glVertexAttrib3f(tangentAttrib, 1, 0, 0);
glBegin(GL_POLYGON);
glTexCoord2f(0, 0); glVertex2f(-size, -size);
glTexCoord2f(1, 0); glVertex2f( size, -size);
@@ -164,9 +162,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -230,27 +228,26 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
assert(glGetError() == 0);
CheckError(__LINE__);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
+ PrintUniforms(Uniforms);
CheckError(__LINE__);
- tangentAttrib = glGetAttribLocation_func(program, "Tangent");
+ tangentAttrib = glGetAttribLocation(program, "Tangent");
printf("Tangent Attrib: %d\n", tangentAttrib);
assert(tangentAttrib >= 0);
@@ -284,10 +281,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/convolutions.c b/progs/glsl/convolutions.c
index ac71c68235..c2fb76e1aa 100644
--- a/progs/glsl/convolutions.c
+++ b/progs/glsl/convolutions.c
@@ -5,6 +5,8 @@
* Author: Zack Rusin
*/
+#include <GL/glew.h>
+
#define GL_GLEXT_PROTOTYPES
#include "readtex.h"
@@ -446,7 +448,6 @@ int main(int argc, char **argv)
{
glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE);
@@ -455,6 +456,7 @@ int main(int argc, char **argv)
exit(1);
}
+ glewInit();
init();
glutReshapeFunc(reshape);
diff --git a/progs/glsl/deriv.c b/progs/glsl/deriv.c
index e69f0b82c4..265a515715 100644
--- a/progs/glsl/deriv.c
+++ b/progs/glsl/deriv.c
@@ -13,10 +13,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -70,9 +68,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -177,13 +175,11 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
/*assert(glGetError() == 0);*/
@@ -197,9 +193,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -224,10 +220,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(200, 200);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/fragcoord.c b/progs/glsl/fragcoord.c
index 0b7561f3e4..3dfcec87a5 100644
--- a/progs/glsl/fragcoord.c
+++ b/progs/glsl/fragcoord.c
@@ -12,10 +12,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -85,9 +83,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -129,13 +127,11 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
/*assert(glGetError() == 0);*/
@@ -143,9 +139,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -170,10 +166,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/identity.c b/progs/glsl/identity.c
index 37579eb346..526e9b82c1 100644
--- a/progs/glsl/identity.c
+++ b/progs/glsl/identity.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -69,9 +67,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -141,8 +139,6 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
if (FragProgFile)
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
else
@@ -155,7 +151,7 @@ Init(void)
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
/*assert(glGetError() == 0);*/
@@ -164,9 +160,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -191,10 +187,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(200, 200);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/linktest.c b/progs/glsl/linktest.c
index 988d082341..ec3fffbf9c 100644
--- a/progs/glsl/linktest.c
+++ b/progs/glsl/linktest.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -132,11 +130,11 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(VertShader1);
- glDeleteShader_func(VertShader2);
- glDeleteShader_func(FragShader1);
- glDeleteShader_func(FragShader2);
- glDeleteProgram_func(Program);
+ glDeleteShader(VertShader1);
+ glDeleteShader(VertShader2);
+ glDeleteShader(FragShader1);
+ glDeleteShader(FragShader2);
+ glDeleteProgram(Program);
glutDestroyWindow(Win);
}
@@ -175,11 +173,11 @@ static void
CheckLink(GLuint prog)
{
GLint stat;
- glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
+ glGetProgramiv(prog, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetProgramInfoLog_func(prog, 1000, &len, log);
+ glGetProgramInfoLog(prog, 1000, &len, log);
fprintf(stderr, "Linker error:\n%s\n", log);
}
}
@@ -191,8 +189,6 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
VertShader1 = CompileShaderText(GL_VERTEX_SHADER, VertShaderSource1);
@@ -200,26 +196,26 @@ Init(void)
FragShader1 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource1);
FragShader2 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource2);
- Program = glCreateProgram_func();
- glAttachShader_func(Program, VertShader1);
- glAttachShader_func(Program, VertShader2);
- glAttachShader_func(Program, FragShader1);
- glAttachShader_func(Program, FragShader2);
+ Program = glCreateProgram();
+ glAttachShader(Program, VertShader1);
+ glAttachShader(Program, VertShader2);
+ glAttachShader(Program, FragShader1);
+ glAttachShader(Program, FragShader2);
- glLinkProgram_func(Program);
+ glLinkProgram(Program);
CheckLink(Program);
- glUseProgram_func(Program);
+ glUseProgram(Program);
- uDiffuse = glGetUniformLocation_func(Program, "diffuse");
- uSpecular = glGetUniformLocation_func(Program, "specular");
- uTexture = glGetUniformLocation_func(Program, "texture");
+ uDiffuse = glGetUniformLocation(Program, "diffuse");
+ uSpecular = glGetUniformLocation(Program, "specular");
+ uTexture = glGetUniformLocation(Program, "texture");
printf("DiffusePos %d SpecularPos %d TexturePos %d\n",
uDiffuse, uSpecular, uTexture);
- glUniform4fv_func(uDiffuse, 1, diffuse);
- glUniform4fv_func(uSpecular, 1, specular);
+ glUniform4fv(uDiffuse, 1, diffuse);
+ glUniform4fv(uSpecular, 1, specular);
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
glEnable(GL_DEPTH_TEST);
@@ -228,11 +224,11 @@ Init(void)
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 10.0f);
- assert(glIsProgram_func(Program));
- assert(glIsShader_func(VertShader1));
- assert(glIsShader_func(VertShader2));
- assert(glIsShader_func(FragShader1));
- assert(glIsShader_func(FragShader2));
+ assert(glIsProgram(Program));
+ assert(glIsShader(VertShader1));
+ assert(glIsShader(VertShader2));
+ assert(glIsShader(FragShader1));
+ assert(glIsShader(FragShader2));
glColor3f(1, 0, 0);
}
@@ -245,6 +241,7 @@ main(int argc, char *argv[])
glutInitWindowSize(300, 300);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
Win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/mandelbrot.c b/progs/glsl/mandelbrot.c
index 24e1992665..b05ef37fae 100644
--- a/progs/glsl/mandelbrot.c
+++ b/progs/glsl/mandelbrot.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -27,7 +25,7 @@ static GLuint program;
static struct uniform_info Uniforms[] = {
/* vert */
- { "LightPosition", 3, GL_FLOAT, { 0.1, 0.1, 9.0, 0}, -1 },
+ { "LightPosition", 1, GL_FLOAT_VEC3, { 0.1, 0.1, 9.0, 0}, -1 },
{ "SpecularContribution", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 },
{ "DiffuseContribution", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 },
{ "Shininess", 1, GL_FLOAT, { 20.0, 0, 0, 0 }, -1 },
@@ -36,9 +34,9 @@ static struct uniform_info Uniforms[] = {
{ "Zoom", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 },
{ "Xcenter", 1, GL_FLOAT, { -1.5, 0, 0, 0 }, -1 },
{ "Ycenter", 1, GL_FLOAT, { .005, 0, 0, 0 }, -1 },
- { "InnerColor", 3, GL_FLOAT, { 1, 0, 0, 0 }, -1 },
- { "OuterColor1", 3, GL_FLOAT, { 0, 1, 0, 0 }, -1 },
- { "OuterColor2", 3, GL_FLOAT, { 0, 0, 1, 0 }, -1 },
+ { "InnerColor", 1, GL_FLOAT_VEC3, { 1, 0, 0, 0 }, -1 },
+ { "OuterColor1", 1, GL_FLOAT_VEC3, { 0, 1, 0, 0 }, -1 },
+ { "OuterColor2", 1, GL_FLOAT_VEC3, { 0, 0, 1, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -56,9 +54,9 @@ Redisplay(void)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/* set interactive uniform parameters */
- glUniform1fv_func(uZoom, 1, &zoom);
- glUniform1fv_func(uXcenter, 1, &xCenter);
- glUniform1fv_func(uYcenter, 1, &yCenter);
+ glUniform1fv(uZoom, 1, &zoom);
+ glUniform1fv(uXcenter, 1, &xCenter);
+ glUniform1fv(uYcenter, 1, &yCenter);
glPushMatrix();
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
@@ -94,9 +92,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -155,19 +153,18 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
+ PrintUniforms(Uniforms);
- uZoom = glGetUniformLocation_func(program, "Zoom");
- uXcenter = glGetUniformLocation_func(program, "Xcenter");
- uYcenter = glGetUniformLocation_func(program, "Ycenter");
+ uZoom = glGetUniformLocation(program, "Zoom");
+ uXcenter = glGetUniformLocation(program, "Xcenter");
+ uYcenter = glGetUniformLocation(program, "Ycenter");
assert(glGetError() == 0);
@@ -175,9 +172,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -202,10 +199,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/mandelbrot.shtest b/progs/glsl/mandelbrot.shtest
new file mode 100644
index 0000000000..4f4e5c747e
--- /dev/null
+++ b/progs/glsl/mandelbrot.shtest
@@ -0,0 +1,13 @@
+vs CH18-mandel.vert
+fs CH18-mandel.frag
+uniform LightPosition GL_FLOAT_VEC3 0.1 0.1 9.0
+uniform SpecularContribution GL_FLOAT 0.5
+uniform DiffuseContribution GL_FLOAT 0.5
+uniform Shininess GL_FLOAT 20.0
+uniform Iterations GL_FLOAT 12
+uniform Zoom GL_FLOAT 0.125
+uniform Xcenter GL_FLOAT -1.5
+uniform Ycenter GL_FLOAT .005
+uniform InnerColor GL_FLOAT_VEC3 1 0 0
+uniform OuterColor1 GL_FLOAT_VEC3 0 1 0
+uniform OuterColor2 GL_FLOAT_VEC3 0 0 1
diff --git a/progs/glsl/multinoise.c b/progs/glsl/multinoise.c
index 2351863aff..0d4026e29c 100644
--- a/progs/glsl/multinoise.c
+++ b/progs/glsl/multinoise.c
@@ -8,10 +8,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
static const char *VertShaderText =
"void main() {\n"
@@ -107,10 +105,10 @@ CleanUp(void)
{
GLint i;
- glDeleteShader_func(vertShader);
+ glDeleteShader(vertShader);
for( i = 0; i < 4; i++ ) {
- glDeleteShader_func(fragShader[ i ]);
- glDeleteProgram_func(program[ i ]);
+ glDeleteShader(fragShader[ i ]);
+ glDeleteProgram(program[ i ]);
}
glutDestroyWindow(win);
}
@@ -143,7 +141,7 @@ Key(unsigned char key, int x, int y)
case '2':
case '3':
case '4':
- glUseProgram_func(program[ key - '1' ]);
+ glUseProgram(program[ key - '1' ]);
break;
case 27:
CleanUp();
@@ -186,15 +184,15 @@ LoadAndCompileShader(GLuint shader, const char *text)
{
GLint stat;
- glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
+ glShaderSource(shader, 1, (const GLchar **) &text, NULL);
- glCompileShader_func(shader);
+ glCompileShader(shader);
- glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetShaderInfoLog_func(shader, 1000, &len, log);
+ glGetShaderInfoLog(shader, 1000, &len, log);
fprintf(stderr, "noise: problem compiling shader: %s\n", log);
exit(1);
}
@@ -208,11 +206,11 @@ static void
CheckLink(GLuint prog)
{
GLint stat;
- glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
+ glGetProgramiv(prog, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetProgramInfoLog_func(prog, 1000, &len, log);
+ glGetProgramInfoLog(prog, 1000, &len, log);
fprintf(stderr, "Linker error:\n%s\n", log);
}
else {
@@ -233,22 +231,20 @@ Init(void)
/*exit(1);*/
}
- GetExtensionFuncs();
-
- vertShader = glCreateShader_func(GL_VERTEX_SHADER);
+ vertShader = glCreateShader(GL_VERTEX_SHADER);
LoadAndCompileShader(vertShader, VertShaderText);
for( i = 0; i < 4; i++ ) {
- fragShader[ i ] = glCreateShader_func(GL_FRAGMENT_SHADER);
+ fragShader[ i ] = glCreateShader(GL_FRAGMENT_SHADER);
LoadAndCompileShader(fragShader[ i ], FragShaderText[ i ]);
- program[ i ] = glCreateProgram_func();
- glAttachShader_func(program[ i ], fragShader[ i ]);
- glAttachShader_func(program[ i ], vertShader);
- glLinkProgram_func(program[ i ]);
+ program[ i ] = glCreateProgram();
+ glAttachShader(program[ i ], fragShader[ i ]);
+ glAttachShader(program[ i ], vertShader);
+ glLinkProgram(program[ i ]);
CheckLink(program[ i ]);
}
- glUseProgram_func(program[ 0 ]);
+ glUseProgram(program[ 0 ]);
assert(glGetError() == 0);
@@ -266,10 +262,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c
index 1a1c63aaf4..bf46fd5210 100644
--- a/progs/glsl/multitex.c
+++ b/progs/glsl/multitex.c
@@ -28,9 +28,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <GL/glew.h>
#include "GL/glut.h"
#include "readtex.h"
-#include "extfuncs.h"
#include "shaderutil.h"
static const char *Demo = "multitex";
@@ -59,8 +59,8 @@ static GLint VertCoord_attr = -1, TexCoord0_attr = -1, TexCoord1_attr = -1;
/* value[0] = tex unit */
static struct uniform_info Uniforms[] = {
- { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 },
- { "tex2", 1, GL_INT, { 1, 0, 0, 0 }, -1 },
+ { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 },
+ { "tex2", 1, GL_SAMPLER_2D, { 1, 0, 0, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -82,10 +82,10 @@ static const GLfloat VertCoords[4][2] = {
static void
SetupVertexBuffer(void)
{
- glGenBuffersARB_func(1, &VBO);
- glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, VBO);
+ glGenBuffersARB(1, &VBO);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, VBO);
- glBufferDataARB_func(GL_ARRAY_BUFFER_ARB,
+ glBufferDataARB(GL_ARRAY_BUFFER_ARB,
sizeof(VertCoords) +
sizeof(Tex0Coords) +
sizeof(Tex1Coords),
@@ -94,23 +94,23 @@ SetupVertexBuffer(void)
/* non-interleaved vertex arrays */
- glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB,
+ glBufferSubDataARB(GL_ARRAY_BUFFER_ARB,
0, /* offset */
sizeof(VertCoords), /* size */
VertCoords); /* data */
- glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB,
+ glBufferSubDataARB(GL_ARRAY_BUFFER_ARB,
sizeof(VertCoords), /* offset */
sizeof(Tex0Coords), /* size */
Tex0Coords); /* data */
- glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB,
+ glBufferSubDataARB(GL_ARRAY_BUFFER_ARB,
sizeof(VertCoords) +
sizeof(Tex0Coords), /* offset */
sizeof(Tex1Coords), /* size */
Tex1Coords); /* data */
- glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
}
@@ -120,39 +120,39 @@ DrawPolygonArray(void)
void *vertPtr, *tex0Ptr, *tex1Ptr;
if (UseVBO) {
- glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, VBO);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, VBO);
vertPtr = (void *) 0;
tex0Ptr = (void *) sizeof(VertCoords);
tex1Ptr = (void *) (sizeof(VertCoords) + sizeof(Tex0Coords));
}
else {
- glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
vertPtr = VertCoords;
tex0Ptr = Tex0Coords;
tex1Ptr = Tex1Coords;
}
if (VertCoord_attr >= 0) {
- glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE,
+ glVertexAttribPointer(VertCoord_attr, 2, GL_FLOAT, GL_FALSE,
0, vertPtr);
- glEnableVertexAttribArray_func(VertCoord_attr);
+ glEnableVertexAttribArray(VertCoord_attr);
}
else {
glVertexPointer(2, GL_FLOAT, 0, vertPtr);
- glEnable(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
}
- glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE,
+ glVertexAttribPointer(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE,
0, tex0Ptr);
- glEnableVertexAttribArray_func(TexCoord0_attr);
+ glEnableVertexAttribArray(TexCoord0_attr);
- glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE,
+ glVertexAttribPointer(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE,
0, tex1Ptr);
- glEnableVertexAttribArray_func(TexCoord1_attr);
+ glEnableVertexAttribArray(TexCoord1_attr);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
- glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
}
@@ -164,11 +164,11 @@ DrawPolygonVert(void)
glBegin(GL_TRIANGLE_FAN);
for (i = 0; i < 4; i++) {
- glVertexAttrib2fv_func(TexCoord0_attr, Tex0Coords[i]);
- glVertexAttrib2fv_func(TexCoord1_attr, Tex1Coords[i]);
+ glVertexAttrib2fv(TexCoord0_attr, Tex0Coords[i]);
+ glVertexAttrib2fv(TexCoord1_attr, Tex1Coords[i]);
if (VertCoord_attr >= 0)
- glVertexAttrib2fv_func(VertCoord_attr, VertCoords[i]);
+ glVertexAttrib2fv(VertCoord_attr, VertCoords[i]);
else
glVertex2fv(VertCoords[i]);
}
@@ -326,27 +326,30 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile,
assert(vertShader);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, uniforms);
+ SetUniformValues(program, uniforms);
+ PrintUniforms(Uniforms);
- VertCoord_attr = glGetAttribLocation_func(program, "VertCoord");
+ assert(ValidateShaderProgram(program));
+
+ VertCoord_attr = glGetAttribLocation(program, "VertCoord");
if (VertCoord_attr > 0) {
/* We want the VertCoord attrib to have position zero so that
* the call to glVertexAttrib(0, xyz) triggers vertex processing.
* Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have
* to set that attribute last (which is a PITA to manage).
*/
- glBindAttribLocation_func(program, 0, "VertCoord");
+ glBindAttribLocation(program, 0, "VertCoord");
/* re-link */
- glLinkProgram_func(program);
+ glLinkProgram(program);
/* VertCoord_attr should be zero now */
- VertCoord_attr = glGetAttribLocation_func(program, "VertCoord");
+ VertCoord_attr = glGetAttribLocation(program, "VertCoord");
assert(VertCoord_attr == 0);
}
- TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0");
- TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1");
+ TexCoord0_attr = glGetAttribLocation(program, "TexCoord0");
+ TexCoord1_attr = glGetAttribLocation(program, "TexCoord1");
printf("TexCoord0_attr = %d\n", TexCoord0_attr);
printf("TexCoord1_attr = %d\n", TexCoord1_attr);
@@ -379,7 +382,6 @@ InitGL(void)
printf(" z/Z - change viewing distance\n");
printf(" SPACE - toggle animation\n");
printf(" Esc - exit\n");
- GetExtensionFuncs();
InitTextures();
InitPrograms();
@@ -400,6 +402,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(Demo);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(key);
glutSpecialFunc(specialkey);
diff --git a/progs/glsl/multitex.shtest b/progs/glsl/multitex.shtest
new file mode 100644
index 0000000000..4b7c3fd4a5
--- /dev/null
+++ b/progs/glsl/multitex.shtest
@@ -0,0 +1,6 @@
+vs multitex.vert
+fs multitex.frag
+texture 0 2D ../images/tile.rgb
+texture 1 2D ../images/tree2.rgba
+uniform tex1 GL_SAMPLER_2D 0
+uniform tex2 GL_SAMPLER_2D 1
diff --git a/progs/glsl/noise.c b/progs/glsl/noise.c
index bd8f50036b..fdab263ea6 100644
--- a/progs/glsl/noise.c
+++ b/progs/glsl/noise.c
@@ -8,10 +8,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -37,8 +35,8 @@ static const char *FragShaderText =
static struct uniform_info Uniforms[] = {
- { "Scale", 4, GL_FLOAT, { 0.5, 0.4, 0.0, 0}, -1 },
- { "Bias", 4, GL_FLOAT, { 0.5, 0.3, 0.0, 0}, -1 },
+ { "Scale", 1, GL_FLOAT_VEC4, { 0.5, 0.4, 0.0, 0}, -1 },
+ { "Bias", 1, GL_FLOAT_VEC4, { 0.5, 0.3, 0.0, 0}, -1 },
{ "Slice", 1, GL_FLOAT, { 0.5, 0, 0, 0}, -1 },
END_OF_UNIFORMS
};
@@ -67,7 +65,7 @@ Redisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glUniform1fv_func(Uniforms[2].location, 1, &Slice);
+ glUniform1fv(Uniforms[2].location, 1, &Slice);
glPushMatrix();
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
@@ -103,9 +101,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -175,15 +173,14 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
+ PrintUniforms(Uniforms);
assert(glGetError() == 0);
@@ -191,9 +188,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -203,10 +200,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/noise2.c b/progs/glsl/noise2.c
index e972b62673..7a28f09947 100644
--- a/progs/glsl/noise2.c
+++ b/progs/glsl/noise2.c
@@ -186,7 +186,6 @@ static void Init (void)
int main (int argc, char *argv[])
{
glutInit (&argc, argv);
- glutInitWindowPosition ( 0, 0);
glutInitWindowSize (200, 200);
glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow (argv[0]);
diff --git a/progs/glsl/pointcoord.c b/progs/glsl/pointcoord.c
index b240077c25..5dced6fac3 100644
--- a/progs/glsl/pointcoord.c
+++ b/progs/glsl/pointcoord.c
@@ -10,10 +10,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -64,9 +62,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -141,18 +139,16 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- tex0 = glGetUniformLocation_func(program, "tex0");
+ tex0 = glGetUniformLocation(program, "tex0");
printf("Uniforms: tex0: %d\n", tex0);
- glUniform1i_func(tex0, 0); /* tex unit 0 */
+ glUniform1i(tex0, 0); /* tex unit 0 */
/*assert(glGetError() == 0);*/
@@ -160,9 +156,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
MakeTexture();
@@ -191,10 +187,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/points.c b/progs/glsl/points.c
index 392dc4db85..e5ee38c449 100644
--- a/progs/glsl/points.c
+++ b/progs/glsl/points.c
@@ -10,10 +10,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -99,7 +97,7 @@ Redisplay(void)
*/
glPushMatrix();
glTranslatef(0, 1.2, 0);
- glUseProgram_func(0);
+ glUseProgram(0);
DrawPoints(GL_FALSE);
glPopMatrix();
@@ -108,9 +106,9 @@ Redisplay(void)
*/
glPushMatrix();
glTranslatef(0, -1.2, 0);
- glUseProgram_func(Program);
+ glUseProgram(Program);
if (uViewportInv != -1) {
- glUniform2f_func(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight);
+ glUniform2f(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight);
}
DrawPoints(GL_TRUE);
glPopMatrix();
@@ -150,9 +148,9 @@ Key(unsigned char key, int x, int y)
Smooth = !Smooth;
break;
case 27:
- glDeleteShader_func(FragShader);
- glDeleteShader_func(VertShader);
- glDeleteProgram_func(Program);
+ glDeleteShader(FragShader);
+ glDeleteShader(VertShader);
+ glDeleteProgram(Program);
glutDestroyWindow(Win);
exit(0);
}
@@ -225,17 +223,15 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
Program = LinkShaders(VertShader, FragShader);
- glUseProgram_func(Program);
+ glUseProgram(Program);
- uViewportInv = glGetUniformLocation_func(Program, "viewportInv");
+ uViewportInv = glGetUniformLocation(Program, "viewportInv");
- glUseProgram_func(0);
+ glUseProgram(0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
@@ -248,6 +244,7 @@ main(int argc, char *argv[])
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
Win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/reflect.vert b/progs/glsl/reflect.vert
index 402be38bf7..e1f22def33 100644
--- a/progs/glsl/reflect.vert
+++ b/progs/glsl/reflect.vert
@@ -11,6 +11,7 @@ void main()
float two_n_dot_u = 2.0 * dot(n, u);
vec4 f;
f.xyz = u - n * two_n_dot_u;
+ f.w = 1.0;
// outputs
normal = n;
diff --git a/progs/glsl/samplers.c b/progs/glsl/samplers.c
index 3fb8577d5e..87dad5d857 100644
--- a/progs/glsl/samplers.c
+++ b/progs/glsl/samplers.c
@@ -39,9 +39,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <GL/glew.h>
#include "GL/glut.h"
#include "readtex.h"
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -211,10 +211,18 @@ InitTextures(void)
for (y = 0; y < stripeSize; y++) {
for (x = 0; x < size; x++) {
GLint k = 4 * ((ypos + y) * size + x);
- texImage[k + 0] = intensity;
- texImage[k + 1] = intensity;
- texImage[k + 2] = 0;
- texImage[k + 3] = 255;
+ if (x < size / 2) {
+ texImage[k + 0] = intensity;
+ texImage[k + 1] = intensity;
+ texImage[k + 2] = 0;
+ texImage[k + 3] = 255;
+ }
+ else {
+ texImage[k + 0] = 255 - intensity;
+ texImage[k + 1] = 0;
+ texImage[k + 2] = 0;
+ texImage[k + 3] = 255;
+ }
}
}
@@ -290,7 +298,7 @@ CreateProgram(void)
assert(vertShader);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
free(fragShaderText);
@@ -315,10 +323,10 @@ InitProgram(void)
#else
sprintf(uname, "tex[%d]", s);
#endif
- loc = glGetUniformLocation_func(Program, uname);
+ loc = glGetUniformLocation(Program, uname);
assert(loc >= 0);
- glUniform1i_func(loc, s);
+ glUniform1i(loc, s);
}
}
@@ -333,8 +341,6 @@ InitGL(void)
printf("GL_RENDERER = %s\n", (const char *) glGetString(GL_RENDERER));
- GetExtensionFuncs();
-
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &NumSamplers);
if (NumSamplers > MAX_SAMPLERS)
NumSamplers = MAX_SAMPLERS;
@@ -357,6 +363,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(Demo);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(key);
glutSpecialFunc(specialkey);
diff --git a/progs/glsl/shadow_sampler.c b/progs/glsl/shadow_sampler.c
index 2902b53552..0adc9d88ba 100644
--- a/progs/glsl/shadow_sampler.c
+++ b/progs/glsl/shadow_sampler.c
@@ -10,10 +10,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
/** Use GL_RECTANGLE texture (with projective texcoords)? */
@@ -66,7 +64,7 @@ Redisplay(void)
glPushMatrix();
CheckError(__LINE__);
- glUseProgram_func(program);
+ glUseProgram(program);
CheckError(__LINE__);
glBegin(GL_POLYGON);
@@ -86,7 +84,7 @@ Redisplay(void)
glPopMatrix();
- glUseProgram_func(0);
+ glUseProgram(0);
glWindowPos2iARB(80, 20);
PrintString("white black white black");
@@ -110,9 +108,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -178,13 +176,13 @@ static void
LoadAndCompileShader(GLuint shader, const char *text)
{
GLint stat;
- glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
- glCompileShader_func(shader);
- glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
+ glShaderSource(shader, 1, (const GLchar **) &text, NULL);
+ glCompileShader(shader);
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetShaderInfoLog_func(shader, 1000, &len, log);
+ glGetShaderInfoLog(shader, 1000, &len, log);
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
exit(1);
}
@@ -222,11 +220,11 @@ static void
CheckLink(GLuint prog)
{
GLint stat;
- glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
+ glGetProgramiv(prog, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetProgramInfoLog_func(prog, 1000, &len, log);
+ glGetProgramInfoLog(prog, 1000, &len, log);
fprintf(stderr, "Linker error:\n%s\n", log);
}
}
@@ -266,35 +264,33 @@ Init(void)
}
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- GetExtensionFuncs();
-
- fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
+ fragShader = glCreateShader(GL_FRAGMENT_SHADER);
if (FragProgFile)
ReadShader(fragShader, FragProgFile);
else
LoadAndCompileShader(fragShader, fragShaderText);
- vertShader = glCreateShader_func(GL_VERTEX_SHADER);
+ vertShader = glCreateShader(GL_VERTEX_SHADER);
if (VertProgFile)
ReadShader(vertShader, VertProgFile);
else
LoadAndCompileShader(vertShader, vertShaderText);
- program = glCreateProgram_func();
- glAttachShader_func(program, fragShader);
- glAttachShader_func(program, vertShader);
- glLinkProgram_func(program);
+ program = glCreateProgram();
+ glAttachShader(program, fragShader);
+ glAttachShader(program, vertShader);
+ glLinkProgram(program);
CheckLink(program);
- glUseProgram_func(program);
+ glUseProgram(program);
- uTexture2D = glGetUniformLocation_func(program, "shadowTex2D");
- uTextureRect = glGetUniformLocation_func(program, "shadowTexRect");
+ uTexture2D = glGetUniformLocation(program, "shadowTex2D");
+ uTextureRect = glGetUniformLocation(program, "shadowTexRect");
printf("uTexture2D %d uTextureRect %d\n", uTexture2D, uTextureRect);
if (uTexture2D >= 0) {
- glUniform1i_func(uTexture2D, 0); /* use texture unit 0 */
+ glUniform1i(uTexture2D, 0); /* use texture unit 0 */
}
if (uTextureRect >= 0) {
- glUniform1i_func(uTextureRect, 1); /* use texture unit 0 */
+ glUniform1i(uTextureRect, 1); /* use texture unit 0 */
}
CheckError(__LINE__);
@@ -325,10 +321,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 300);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/shtest.c b/progs/glsl/shtest.c
new file mode 100644
index 0000000000..628a7dd5b9
--- /dev/null
+++ b/progs/glsl/shtest.c
@@ -0,0 +1,709 @@
+/*
+ * Simple shader test harness.
+ * Brian Paul
+ * 13 Aug 2009
+ *
+ * Usage:
+ * shtest --vs vertShaderFile --fs fragShaderFile
+ *
+ * In this case the given vertex/frag shaders are read and compiled.
+ * Random values are assigned to the uniforms.
+ *
+ * or:
+ * shtest configFile
+ *
+ * In this case a config file is read that specifies the file names
+ * of the shaders plus initial values for uniforms.
+ *
+ * Example config file:
+ *
+ * vs shader.vert
+ * fs shader.frag
+ * uniform pi 3.14159
+ * uniform v1 1.0 0.5 0.2 0.3
+ * texture 0 2D texture0.rgb
+ * texture 1 CUBE texture1.rgb
+ * texture 2 RECT texture2.rgb
+ *
+ */
+
+
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <GL/glew.h>
+#include <GL/glu.h>
+#include <GL/glut.h>
+#include "shaderutil.h"
+#include "readtex.h"
+
+
+typedef enum
+{
+ SPHERE,
+ CUBE,
+ NUM_SHAPES
+} shape;
+
+
+static char *FragShaderFile = NULL;
+static char *VertShaderFile = NULL;
+static char *ConfigFile = NULL;
+
+/* program/shader objects */
+static GLuint fragShader;
+static GLuint vertShader;
+static GLuint Program;
+
+
+#define MAX_UNIFORMS 100
+static struct uniform_info Uniforms[MAX_UNIFORMS];
+static GLuint NumUniforms = 0;
+
+
+#define MAX_ATTRIBS 100
+static struct attrib_info Attribs[MAX_ATTRIBS];
+static GLuint NumAttribs = 0;
+
+
+/**
+ * Config file info.
+ */
+struct config_file
+{
+ struct name_value
+ {
+ char name[100];
+ float value[4];
+ int type;
+ } uniforms[100];
+
+ int num_uniforms;
+};
+
+
+static GLint win = 0;
+static GLboolean Anim = GL_FALSE;
+static GLfloat TexRot = 0.0;
+static GLfloat xRot = 0.0f, yRot = 0.0f, zRot = 0.0f;
+static shape Object = SPHERE;
+
+
+static float
+RandomFloat(float min, float max)
+{
+ int k = rand() % 10000;
+ float x = min + (max - min) * k / 10000.0;
+ return x;
+}
+
+
+/** Set new random values for uniforms */
+static void
+RandomUniformValues(void)
+{
+ GLuint i;
+ for (i = 0; i < NumUniforms; i++) {
+ switch (Uniforms[i].type) {
+ case GL_FLOAT:
+ Uniforms[i].value[0] = RandomFloat(0.0, 1.0);
+ break;
+ case GL_SAMPLER_1D:
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_3D:
+ case GL_SAMPLER_CUBE:
+ case GL_SAMPLER_2D_RECT_ARB:
+ /* don't change sampler values - random values are bad */
+ break;
+ default:
+ Uniforms[i].value[0] = RandomFloat(-1.0, 2.0);
+ Uniforms[i].value[1] = RandomFloat(-1.0, 2.0);
+ Uniforms[i].value[2] = RandomFloat(-1.0, 2.0);
+ Uniforms[i].value[3] = RandomFloat(-1.0, 2.0);
+ }
+ }
+}
+
+
+static void
+Idle(void)
+{
+ yRot += 2.0;
+ if (yRot > 360.0)
+ yRot -= 360.0;
+ glutPostRedisplay();
+}
+
+
+
+static void
+SquareVertex(GLfloat s, GLfloat t, GLfloat size)
+{
+ GLfloat x = -size + s * 2.0 * size;
+ GLfloat y = -size + t * 2.0 * size;
+ GLuint i;
+
+ glMultiTexCoord2f(GL_TEXTURE0, s, t);
+ glMultiTexCoord2f(GL_TEXTURE1, s, t);
+ glMultiTexCoord2f(GL_TEXTURE2, s, t);
+ glMultiTexCoord2f(GL_TEXTURE3, s, t);
+
+ /* assign (s,t) to the generic attributes */
+ for (i = 0; i < NumAttribs; i++) {
+ if (Attribs[i].location >= 0) {
+ glVertexAttrib2f(Attribs[i].location, s, t);
+ }
+ }
+
+ glVertex2f(x, y);
+}
+
+
+/*
+ * Draw a square, specifying normal and tangent vectors.
+ */
+static void
+Square(GLfloat size)
+{
+ GLint tangentAttrib = 1;
+ glNormal3f(0, 0, 1);
+ glVertexAttrib3f(tangentAttrib, 1, 0, 0);
+ glBegin(GL_POLYGON);
+#if 1
+ SquareVertex(0, 0, size);
+ SquareVertex(1, 0, size);
+ SquareVertex(1, 1, size);
+ SquareVertex(0, 1, size);
+#else
+ glTexCoord2f(0, 0); glVertex2f(-size, -size);
+ glTexCoord2f(1, 0); glVertex2f( size, -size);
+ glTexCoord2f(1, 1); glVertex2f( size, size);
+ glTexCoord2f(0, 1); glVertex2f(-size, size);
+#endif
+ glEnd();
+}
+
+
+static void
+Cube(GLfloat size)
+{
+ /* +X */
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+
+ /* -X */
+ glPushMatrix();
+ glRotatef(-90, 0, 1, 0);
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+
+ /* +Y */
+ glPushMatrix();
+ glRotatef(90, 1, 0, 0);
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+
+ /* -Y */
+ glPushMatrix();
+ glRotatef(-90, 1, 0, 0);
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+
+
+ /* +Z */
+ glPushMatrix();
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+
+ /* -Z */
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glTranslatef(0, 0, size);
+ Square(size);
+ glPopMatrix();
+}
+
+
+static void
+Sphere(GLfloat radius, GLint slices, GLint stacks)
+{
+ static GLUquadricObj *q = NULL;
+
+ if (!q) {
+ q = gluNewQuadric();
+ gluQuadricDrawStyle(q, GLU_FILL);
+ gluQuadricNormals(q, GLU_SMOOTH);
+ gluQuadricTexture(q, GL_TRUE);
+ }
+
+ gluSphere(q, radius, slices, stacks);
+}
+
+
+static void
+Redisplay(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(xRot, 1.0f, 0.0f, 0.0f);
+ glRotatef(yRot, 0.0f, 1.0f, 0.0f);
+ glRotatef(zRot, 0.0f, 0.0f, 1.0f);
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glRotatef(TexRot, 0.0f, 1.0f, 0.0f);
+ glMatrixMode(GL_MODELVIEW);
+
+ if (Object == SPHERE) {
+ Sphere(2.5, 20, 10);
+ }
+ else if (Object == CUBE) {
+ Cube(2.0);
+ }
+
+ glPopMatrix();
+
+ glutSwapBuffers();
+}
+
+
+static void
+Reshape(int width, int height)
+{
+ glViewport(0, 0, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0f, 0.0f, -15.0f);
+}
+
+
+static void
+CleanUp(void)
+{
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(Program);
+ glutDestroyWindow(win);
+}
+
+
+static void
+Key(unsigned char key, int x, int y)
+{
+ const GLfloat step = 2.0;
+ (void) x;
+ (void) y;
+
+ switch(key) {
+ case 'a':
+ Anim = !Anim;
+ if (Anim)
+ glutIdleFunc(Idle);
+ else
+ glutIdleFunc(NULL);
+ break;
+ case 'z':
+ zRot += step;
+ break;
+ case 'Z':
+ zRot -= step;
+ break;
+ case 'o':
+ Object = (Object + 1) % NUM_SHAPES;
+ break;
+ case 'r':
+ RandomUniformValues();
+ SetUniformValues(Program, Uniforms);
+ PrintUniforms(Uniforms);
+ break;
+ case 27:
+ CleanUp();
+ exit(0);
+ break;
+ }
+ glutPostRedisplay();
+}
+
+
+static void
+SpecialKey(int key, int x, int y)
+{
+ const GLfloat step = 2.0;
+
+ (void) x;
+ (void) y;
+
+ switch(key) {
+ case GLUT_KEY_UP:
+ xRot += step;
+ break;
+ case GLUT_KEY_DOWN:
+ xRot -= step;
+ break;
+ case GLUT_KEY_LEFT:
+ yRot -= step;
+ break;
+ case GLUT_KEY_RIGHT:
+ yRot += step;
+ break;
+ }
+ glutPostRedisplay();
+}
+
+
+static void
+InitUniforms(const struct config_file *conf,
+ struct uniform_info uniforms[])
+{
+ int i;
+
+ for (i = 0; i < conf->num_uniforms; i++) {
+ int j;
+ for (j = 0; uniforms[j].name; j++) {
+ if (strcmp(uniforms[j].name, conf->uniforms[i].name) == 0) {
+ uniforms[j].type = conf->uniforms[i].type;
+ uniforms[j].value[0] = conf->uniforms[i].value[0];
+ uniforms[j].value[1] = conf->uniforms[i].value[1];
+ uniforms[j].value[2] = conf->uniforms[i].value[2];
+ uniforms[j].value[3] = conf->uniforms[i].value[3];
+ }
+ }
+ }
+}
+
+
+static void
+LoadTexture(GLint unit, GLenum target, const char *texFileName)
+{
+ GLint imgWidth, imgHeight;
+ GLenum imgFormat;
+ GLubyte *image = NULL;
+ GLuint tex;
+ GLenum filter = GL_LINEAR;
+ GLenum objTarget;
+
+ image = LoadRGBImage(texFileName, &imgWidth, &imgHeight, &imgFormat);
+ if (!image) {
+ printf("Couldn't read %s\n", texFileName);
+ exit(1);
+ }
+
+ printf("Load Texture: unit %d, target 0x%x: %s %d x %d\n",
+ unit, target, texFileName, imgWidth, imgHeight);
+
+ if (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X &&
+ target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z) {
+ objTarget = GL_TEXTURE_CUBE_MAP;
+ }
+ else {
+ objTarget = target;
+ }
+
+ glActiveTexture(GL_TEXTURE0 + unit);
+ glGenTextures(1, &tex);
+ glBindTexture(objTarget, tex);
+
+ if (target == GL_TEXTURE_3D) {
+ /* depth=1 */
+ gluBuild3DMipmaps(target, 4, imgWidth, imgHeight, 1,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ }
+ else if (target == GL_TEXTURE_1D) {
+ gluBuild1DMipmaps(target, 4, imgWidth,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ }
+ else {
+ gluBuild2DMipmaps(target, 4, imgWidth, imgHeight,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ }
+
+ free(image);
+
+ glTexParameteri(objTarget, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(objTarget, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(objTarget, GL_TEXTURE_MIN_FILTER, filter);
+ glTexParameteri(objTarget, GL_TEXTURE_MAG_FILTER, filter);
+}
+
+
+static GLenum
+TypeFromName(const char *n)
+{
+ static const struct {
+ const char *name;
+ GLenum type;
+ } types[] = {
+ { "GL_FLOAT", GL_FLOAT },
+ { "GL_FLOAT_VEC2", GL_FLOAT_VEC2 },
+ { "GL_FLOAT_VEC3", GL_FLOAT_VEC3 },
+ { "GL_FLOAT_VEC4", GL_FLOAT_VEC4 },
+ { "GL_INT", GL_INT },
+ { "GL_INT_VEC2", GL_INT_VEC2 },
+ { "GL_INT_VEC3", GL_INT_VEC3 },
+ { "GL_INT_VEC4", GL_INT_VEC4 },
+ { "GL_SAMPLER_1D", GL_SAMPLER_1D },
+ { "GL_SAMPLER_2D", GL_SAMPLER_2D },
+ { "GL_SAMPLER_3D", GL_SAMPLER_3D },
+ { "GL_SAMPLER_CUBE", GL_SAMPLER_CUBE },
+ { "GL_SAMPLER_2D_RECT", GL_SAMPLER_2D_RECT_ARB },
+ { NULL, 0 }
+ };
+ GLuint i;
+
+ for (i = 0; types[i].name; i++) {
+ if (strcmp(types[i].name, n) == 0)
+ return types[i].type;
+ }
+ abort();
+ return GL_NONE;
+}
+
+
+
+/**
+ * Read a config file.
+ */
+static void
+ReadConfigFile(const char *filename, struct config_file *conf)
+{
+ char line[1000];
+ FILE *f;
+
+ f = fopen(filename, "r");
+ if (!f) {
+ fprintf(stderr, "Unable to open config file %s\n", filename);
+ exit(1);
+ }
+
+ conf->num_uniforms = 0;
+
+ /* ugly but functional parser */
+ while (!feof(f)) {
+ fgets(line, sizeof(line), f);
+ if (!feof(f) && line[0]) {
+ if (strncmp(line, "vs ", 3) == 0) {
+ VertShaderFile = strdup(line + 3);
+ VertShaderFile[strlen(VertShaderFile) - 1] = 0;
+ }
+ else if (strncmp(line, "fs ", 3) == 0) {
+ FragShaderFile = strdup(line + 3);
+ FragShaderFile[strlen(FragShaderFile) - 1] = 0;
+ }
+ else if (strncmp(line, "texture ", 8) == 0) {
+ char target[100], texFileName[100];
+ int unit, k;
+ k = sscanf(line + 8, "%d %s %s", &unit, target, texFileName);
+ assert(k == 3 || k == 8);
+ if (strcmp(target, "CUBE") == 0) {
+ char texFileNames[6][100];
+ k = sscanf(line + 8, "%d %s %s %s %s %s %s %s",
+ &unit, target,
+ texFileNames[0],
+ texFileNames[1],
+ texFileNames[2],
+ texFileNames[3],
+ texFileNames[4],
+ texFileNames[5]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_POSITIVE_X, texFileNames[0]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, texFileNames[1]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, texFileNames[2]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, texFileNames[3]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, texFileNames[4]);
+ LoadTexture(unit, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, texFileNames[5]);
+ }
+ else if (!strcmp(target, "2D")) {
+ LoadTexture(unit, GL_TEXTURE_2D, texFileName);
+ }
+ else if (!strcmp(target, "3D")) {
+ LoadTexture(unit, GL_TEXTURE_3D, texFileName);
+ }
+ else if (!strcmp(target, "RECT")) {
+ LoadTexture(unit, GL_TEXTURE_RECTANGLE_ARB, texFileName);
+ }
+ else {
+ printf("Bad texture target: %s\n", target);
+ exit(1);
+ }
+ }
+ else if (strncmp(line, "uniform ", 8) == 0) {
+ char name[1000], typeName[100];
+ int k;
+ float v1 = 0.0F, v2 = 0.0F, v3 = 0.0F, v4 = 0.0F;
+ GLenum type;
+
+ k = sscanf(line + 8, "%s %s %f %f %f %f", name, typeName,
+ &v1, &v2, &v3, &v4);
+
+ type = TypeFromName(typeName);
+
+ strcpy(conf->uniforms[conf->num_uniforms].name, name);
+ conf->uniforms[conf->num_uniforms].value[0] = v1;
+ conf->uniforms[conf->num_uniforms].value[1] = v2;
+ conf->uniforms[conf->num_uniforms].value[2] = v3;
+ conf->uniforms[conf->num_uniforms].value[3] = v4;
+ conf->uniforms[conf->num_uniforms].type = type;
+ conf->num_uniforms++;
+ }
+ else {
+ if (strlen(line) > 1) {
+ fprintf(stderr, "syntax error in: %s\n", line);
+ break;
+ }
+ }
+ }
+ }
+
+ fclose(f);
+}
+
+
+static void
+Init(void)
+{
+ GLdouble vertTime, fragTime, linkTime;
+ struct config_file config;
+
+ memset(&config, 0, sizeof(config));
+
+ if (ConfigFile)
+ ReadConfigFile(ConfigFile, &config);
+
+ if (!VertShaderFile) {
+ fprintf(stderr, "Error: no vertex shader\n");
+ exit(1);
+ }
+
+ if (!FragShaderFile) {
+ fprintf(stderr, "Error: no fragment shader\n");
+ exit(1);
+ }
+
+ if (!ShadersSupported())
+ exit(1);
+
+ vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertShaderFile);
+ vertTime = GetShaderCompileTime();
+ fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragShaderFile);
+ fragTime = GetShaderCompileTime();
+
+ Program = LinkShaders(vertShader, fragShader);
+ linkTime = GetShaderLinkTime();
+
+ printf("Read vert shader %s\n", VertShaderFile);
+ printf("Read frag shader %s\n", FragShaderFile);
+
+ printf("Time to compile vertex shader: %fs\n", vertTime);
+ printf("Time to compile fragment shader: %fs\n", fragTime);
+ printf("Time to link shaders: %fs\n", linkTime);
+
+ assert(ValidateShaderProgram(Program));
+
+ glUseProgram(Program);
+
+ NumUniforms = GetUniforms(Program, Uniforms);
+ if (config.num_uniforms) {
+ InitUniforms(&config, Uniforms);
+ }
+ else {
+ RandomUniformValues();
+ }
+ SetUniformValues(Program, Uniforms);
+ PrintUniforms(Uniforms);
+
+ NumAttribs = GetAttribs(Program, Attribs);
+ PrintAttribs(Attribs);
+
+ //assert(glGetError() == 0);
+
+ glClearColor(0.4f, 0.4f, 0.8f, 0.0f);
+
+ glEnable(GL_DEPTH_TEST);
+
+ glColor3f(1, 0, 0);
+}
+
+
+static void
+Keys(void)
+{
+ printf("Keyboard:\n");
+ printf(" a Animation toggle\n");
+ printf(" r Randomize uniform values\n");
+ printf(" o Change object\n");
+ printf(" arrows Rotate object\n");
+ printf(" ESC Exit\n");
+}
+
+
+static void
+Usage(void)
+{
+ printf("Usage:\n");
+ printf(" shtest config.shtest\n");
+ printf(" Run w/ given config file.\n");
+ printf(" shtest --vs vertShader --fs fragShader\n");
+ printf(" Load/compile given shaders.\n");
+}
+
+
+static void
+ParseOptions(int argc, char *argv[])
+{
+ int i;
+
+ if (argc == 1) {
+ Usage();
+ exit(1);
+ }
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "--fs") == 0) {
+ FragShaderFile = argv[i+1];
+ i++;
+ }
+ else if (strcmp(argv[i], "--vs") == 0) {
+ VertShaderFile = argv[i+1];
+ i++;
+ }
+ else {
+ /* assume the arg is a config file */
+ ConfigFile = argv[i];
+ break;
+ }
+ }
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ glutInitWindowSize(400, 400);
+ glutInit(&argc, argv);
+ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
+ win = glutCreateWindow(argv[0]);
+ glewInit();
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutSpecialFunc(SpecialKey);
+ glutDisplayFunc(Redisplay);
+ ParseOptions(argc, argv);
+ Init();
+ Keys();
+ glutMainLoop();
+ return 0;
+}
+
diff --git a/progs/glsl/skinning.c b/progs/glsl/skinning.c
index 8a65d0667c..65ba98348b 100644
--- a/progs/glsl/skinning.c
+++ b/progs/glsl/skinning.c
@@ -12,10 +12,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -64,11 +62,11 @@ Cylinder(GLfloat length, GLfloat radius, GLint slices, GLint stacks)
float a = (float) i / (slices - 1) * M_PI * 2.0;
float x = radius * cos(a);
float y = radius * sin(a);
- glVertexAttrib1f_func(WeightAttr, w0);
+ glVertexAttrib1f(WeightAttr, w0);
glNormal3f(x, y, 0.0);
glVertex3f(x, y, z0);
- glVertexAttrib1f_func(WeightAttr, w0 + dw);
+ glVertexAttrib1f(WeightAttr, w0 + dw);
glNormal3f(x, y, 0.0);
glVertex3f(x, y, z0 + dz);
}
@@ -106,8 +104,8 @@ Redisplay(void)
{
UpdateMatrices();
- glUniformMatrix4fv_func(uMat0, 1, GL_FALSE, Matrices[0]);
- glUniformMatrix4fv_func(uMat1, 1, GL_FALSE, Matrices[1]);
+ glUniformMatrix4fv(uMat0, 1, GL_FALSE, Matrices[0]);
+ glUniformMatrix4fv(uMat1, 1, GL_FALSE, Matrices[1]);
if (WireFrame)
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
@@ -148,9 +146,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -221,18 +219,16 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- uMat0 = glGetUniformLocation_func(program, "mat0");
- uMat1 = glGetUniformLocation_func(program, "mat1");
+ uMat0 = glGetUniformLocation(program, "mat0");
+ uMat1 = glGetUniformLocation(program, "mat1");
- WeightAttr = glGetAttribLocation_func(program, "weight");
+ WeightAttr = glGetAttribLocation(program, "weight");
assert(glGetError() == 0);
@@ -266,6 +262,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 500);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/texaaline.c b/progs/glsl/texaaline.c
index 0b3cc84958..7a5ac405bb 100644
--- a/progs/glsl/texaaline.c
+++ b/progs/glsl/texaaline.c
@@ -11,10 +11,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
static GLint WinWidth = 300, WinHeight = 300;
@@ -105,6 +103,8 @@ static float Sin(float a)
static void
Redisplay(void)
{
+ float cx = 0.5 * WinWidth, cy = 0.5 * WinHeight;
+ float len = 0.5 * WinWidth - 20.0;
int i;
glClear(GL_COLOR_BUFFER_BIT);
@@ -116,20 +116,20 @@ Redisplay(void)
for (i = 0; i < 360; i+=5) {
float v0[2], v1[2];
- v0[0] = 150 + 40 * Cos(i);
- v0[1] = 150 + 40 * Sin(i);
- v1[0] = 150 + 130 * Cos(i);
- v1[1] = 150 + 130 * Sin(i);
+ v0[0] = cx + 40 * Cos(i);
+ v0[1] = cy + 40 * Sin(i);
+ v1[0] = cx + len * Cos(i);
+ v1[1] = cy + len * Sin(i);
QuadLine(v0, v1, Width);
}
{
float v0[2], v1[2], x;
for (x = 0; x < 1.0; x += 0.2) {
- v0[0] = 150 + x;
- v0[1] = 150 + x * 40 - 20;
- v1[0] = 150 + x + 5.0;
- v1[1] = 150 + x * 40 - 20;
+ v0[0] = cx + x;
+ v0[1] = cy + x * 40 - 20;
+ v1[0] = cx + x + 5.0;
+ v1[1] = cy + x * 40 - 20;
QuadLine(v0, v1, Width);
}
}
@@ -144,6 +144,8 @@ Redisplay(void)
static void
Reshape(int width, int height)
{
+ WinWidth = width;
+ WinHeight = height;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
@@ -328,8 +330,6 @@ Init(void)
exit(1);
}
- GetExtensionFuncs();
-
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
@@ -355,10 +355,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c
index 96ddca1f32..5b1913a722 100644
--- a/progs/glsl/texdemo1.c
+++ b/progs/glsl/texdemo1.c
@@ -28,9 +28,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <GL/glew.h>
#include "GL/glut.h"
#include "readtex.h"
-#include "extfuncs.h"
#include "shaderutil.h"
static const char *Demo = "texdemo1";
@@ -53,14 +53,14 @@ static int win = 0;
static struct uniform_info ReflectUniforms[] = {
- { "cubeTex", 1, GL_INT, { 0, 0, 0, 0 }, -1 },
- { "lightPos", 3, GL_FLOAT, { 10, 10, 20, 0 }, -1 },
+ { "cubeTex", 1, GL_SAMPLER_CUBE, { 0, 0, 0, 0 }, -1 },
+ { "lightPos", 1, GL_FLOAT_VEC3, { 10, 10, 20, 0 }, -1 },
END_OF_UNIFORMS
};
static struct uniform_info SimpleUniforms[] = {
- { "tex2d", 1, GL_INT, { 1, 0, 0, 0 }, -1 },
- { "lightPos", 3, GL_FLOAT, { 10, 10, 20, 0 }, -1 },
+ { "tex2d", 1, GL_SAMPLER_2D, { 1, 0, 0, 0 }, -1 },
+ { "lightPos", 1, GL_FLOAT_VEC3, { 10, 10, 20, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -97,7 +97,7 @@ draw(void)
/* sphere w/ reflection map */
glPushMatrix();
glTranslatef(0, 1, 0);
- glUseProgram_func(Program1);
+ glUseProgram(Program1);
/* setup texture matrix */
glActiveTexture(GL_TEXTURE0);
@@ -116,7 +116,7 @@ draw(void)
glPopMatrix();
/* ground */
- glUseProgram_func(Program2);
+ glUseProgram(Program2);
glTranslatef(0, -1.0, 0);
DrawGround(5);
@@ -380,9 +380,10 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile,
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, fragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, uniforms);
+ SetUniformValues(program, uniforms);
+ PrintUniforms(uniforms);
return program;
}
@@ -407,8 +408,6 @@ Init(GLboolean useImageFiles)
}
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- GetExtensionFuncs();
-
InitTextures(useImageFiles);
InitPrograms();
@@ -426,6 +425,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
win = glutCreateWindow(Demo);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(key);
glutSpecialFunc(specialkey);
diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c
index 37ad6bf291..c502f24077 100644
--- a/progs/glsl/toyball.c
+++ b/progs/glsl/toyball.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -26,18 +24,18 @@ static GLuint program;
static struct uniform_info Uniforms[] = {
- { "LightDir", 4, GL_FLOAT, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 },
- { "HVector", 4, GL_FLOAT, { 0.32506, 0.32506, 0.88808, 0.0 }, -1 },
- { "BallCenter", 4, GL_FLOAT, { 0.0, 0.0, 0.0, 1.0 }, -1 },
- { "SpecularColor", 4, GL_FLOAT, { 0.4, 0.4, 0.4, 60.0 }, -1 },
- { "Red", 4, GL_FLOAT, { 0.6, 0.0, 0.0, 1.0 }, -1 },
- { "Blue", 4, GL_FLOAT, { 0.0, 0.3, 0.6, 1.0 }, -1 },
- { "Yellow", 4, GL_FLOAT, { 0.6, 0.5, 0.0, 1.0 }, -1 },
- { "HalfSpace0", 4, GL_FLOAT, { 1.0, 0.0, 0.0, 0.2 }, -1 },
- { "HalfSpace1", 4, GL_FLOAT, { 0.309016994, 0.951056516, 0.0, 0.2 }, -1 },
- { "HalfSpace2", 4, GL_FLOAT, { -0.809016994, 0.587785252, 0.0, 0.2 }, -1 },
- { "HalfSpace3", 4, GL_FLOAT, { -0.809016994, -0.587785252, 0.0, 0.2 }, -1 },
- { "HalfSpace4", 4, GL_FLOAT, { 0.309116994, -0.951056516, 0.0, 0.2 }, -1 },
+ { "LightDir", 1, GL_FLOAT_VEC4, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 },
+ { "HVector", 1, GL_FLOAT_VEC4, { 0.32506, 0.32506, 0.88808, 0.0 }, -1 },
+ { "BallCenter", 1, GL_FLOAT_VEC4, { 0.0, 0.0, 0.0, 1.0 }, -1 },
+ { "SpecularColor", 1, GL_FLOAT_VEC4, { 0.4, 0.4, 0.4, 60.0 }, -1 },
+ { "Red", 1, GL_FLOAT_VEC4, { 0.6, 0.0, 0.0, 1.0 }, -1 },
+ { "Blue", 1, GL_FLOAT_VEC4, { 0.0, 0.3, 0.6, 1.0 }, -1 },
+ { "Yellow", 1, GL_FLOAT_VEC4, { 0.6, 0.5, 0.0, 1.0 }, -1 },
+ { "HalfSpace0", 1, GL_FLOAT_VEC4, { 1.0, 0.0, 0.0, 0.2 }, -1 },
+ { "HalfSpace1", 1, GL_FLOAT_VEC4, { 0.309016994, 0.951056516, 0.0, 0.2 }, -1 },
+ { "HalfSpace2", 1, GL_FLOAT_VEC4, { -0.809016994, 0.587785252, 0.0, 0.2 }, -1 },
+ { "HalfSpace3", 1, GL_FLOAT_VEC4, { -0.809016994, -0.587785252, 0.0, 0.2 }, -1 },
+ { "HalfSpace4", 1, GL_FLOAT_VEC4, { 0.309116994, -0.951056516, 0.0, 0.2 }, -1 },
{ "InOrOutInit", 1, GL_FLOAT, { -3.0, 0, 0, 0 }, -1 },
{ "StripeWidth", 1, GL_FLOAT, { 0.3, 0, 0, 0 }, -1 },
{ "FWidth", 1, GL_FLOAT, { 0.005, 0, 0, 0 }, -1 },
@@ -99,9 +97,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -169,15 +167,14 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
+ PrintUniforms(Uniforms);
assert(glGetError() == 0);
@@ -208,10 +205,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 400);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/glsl/toyball.shtest b/progs/glsl/toyball.shtest
new file mode 100644
index 0000000000..887663abd3
--- /dev/null
+++ b/progs/glsl/toyball.shtest
@@ -0,0 +1,17 @@
+vs CH11-toyball.vert
+fs CH11-toyball.frag
+uniform LightDir GL_FLOAT_VEC4 0.57737 0.57735 0.57735 0.0
+uniform HVector GL_FLOAT_VEC4 0.32506 0.32506 0.88808 0.0
+uniform BallCenter GL_FLOAT_VEC4 0.0 0.0 0.0 1.0
+uniform SpecularColor GL_FLOAT_VEC4 0.4 0.4 0.4 60.0
+uniform Red GL_FLOAT_VEC4 0.6 0.0 0.0 1.0
+uniform Blue GL_FLOAT_VEC4 0.0 0.3 0.6 1.0
+uniform Yellow GL_FLOAT_VEC4 0.6 0.5 0.0 1.0
+uniform HalfSpace0 GL_FLOAT_VEC4 1.0 0.0 0.0 0.2
+uniform HalfSpace1 GL_FLOAT_VEC4 .309016994 0.951056516 0.0 0.2
+uniform HalfSpace2 GL_FLOAT_VEC4 -0.809016994 0.587785252 0.0 0.2
+uniform HalfSpace3 GL_FLOAT_VEC4 -0.809016994 -0.587785252 0.0 0.2
+uniform HalfSpace4 GL_FLOAT_VEC4 .309116994 -0.951056516 0.0 0.2
+uniform InOrOutInit GL_FLOAT -3.0
+uniform StripeWidth GL_FLOAT 0.3
+uniform FWidth GL_FLOAT .005
diff --git a/progs/glsl/trirast.c b/progs/glsl/trirast.c
index 89df64fc71..53bd91ef97 100644
--- a/progs/glsl/trirast.c
+++ b/progs/glsl/trirast.c
@@ -15,10 +15,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -85,9 +83,9 @@ Redisplay(void)
RotateVerts(Zrot, 3, TriVerts, v);
ComputeBounds(3, v, &xmin, &ymin, &xmax, &ymax);
- glUniform2fv_func(uv0, 1, v[0]);
- glUniform2fv_func(uv1, 1, v[1]);
- glUniform2fv_func(uv2, 1, v[2]);
+ glUniform2fv(uv0, 1, v[0]);
+ glUniform2fv(uv1, 1, v[1]);
+ glUniform2fv(uv2, 1, v[2]);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -132,9 +130,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -196,17 +194,15 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- uv0 = glGetUniformLocation_func(program, "v0");
- uv1 = glGetUniformLocation_func(program, "v1");
- uv2 = glGetUniformLocation_func(program, "v2");
+ uv0 = glGetUniformLocation(program, "v0");
+ uv1 = glGetUniformLocation(program, "v1");
+ uv2 = glGetUniformLocation(program, "v2");
printf("Uniforms: %d %d %d\n", uv0, uv1, uv2);
/*assert(glGetError() == 0);*/
@@ -216,9 +212,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glColor3f(1, 0, 0);
}
@@ -243,10 +239,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/twoside.c b/progs/glsl/twoside.c
index 06488bd175..a57484f96c 100644
--- a/progs/glsl/twoside.c
+++ b/progs/glsl/twoside.c
@@ -12,10 +12,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -59,11 +57,11 @@ Redisplay(void)
glFrontFace(FrontWinding);
if (DetermineFacingInFragProg) {
- glUniform1i_func(u_fragface, 1);
+ glUniform1i(u_fragface, 1);
glDisable(GL_VERTEX_PROGRAM_TWO_SIDE);
}
else {
- glUniform1i_func(u_fragface, 0);
+ glUniform1i(u_fragface, 0);
glEnable(GL_VERTEX_PROGRAM_TWO_SIDE);
}
@@ -75,7 +73,7 @@ Redisplay(void)
/* Draw a tristrip ring */
glBegin(GL_TRIANGLE_STRIP);
glColor4fv(Red);
- glSecondaryColor3fv_func(Green);
+ glSecondaryColor3fv(Green);
for (i = 0; i <= sections; i++) {
float a = (float) i / (sections) * M_PI * 2.0;
float x = radius * cos(a);
@@ -125,9 +123,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -229,15 +227,13 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
- u_fragface = glGetUniformLocation_func(program, "fragface");
+ u_fragface = glGetUniformLocation(program, "fragface");
printf("Uniforms: %d\n", u_fragface);
/*assert(glGetError() == 0);*/
@@ -246,9 +242,9 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(program));
- assert(glIsShader_func(fragShader));
- assert(glIsShader_func(vertShader));
+ assert(glIsProgram(program));
+ assert(glIsShader(fragShader));
+ assert(glIsShader(vertShader));
glEnable(GL_DEPTH_TEST);
@@ -289,10 +285,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(WinWidth, WinHeight);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/vert-or-frag-only.c b/progs/glsl/vert-or-frag-only.c
index f6eedd8327..148991ca83 100644
--- a/progs/glsl/vert-or-frag-only.c
+++ b/progs/glsl/vert-or-frag-only.c
@@ -11,10 +11,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -58,14 +56,14 @@ Redisplay(void)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/* render with vertex shader only */
- glUseProgram_func(VertProgram);
+ glUseProgram(VertProgram);
glPushMatrix();
glTranslatef(-1.5, 0, 0);
DrawQuadTex();
glPopMatrix();
/* render with fragment shader only */
- glUseProgram_func(FragProgram);
+ glUseProgram(FragProgram);
glPushMatrix();
glTranslatef(+1.5, 0, 0);
DrawQuadColor();
@@ -90,10 +88,10 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(FragShader);
- glDeleteShader_func(VertShader);
- glDeleteProgram_func(VertProgram);
- glDeleteProgram_func(FragProgram);
+ glDeleteShader(FragShader);
+ glDeleteShader(VertShader);
+ glDeleteProgram(VertProgram);
+ glDeleteProgram(FragProgram);
glutDestroyWindow(Win);
}
@@ -129,8 +127,6 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
if (FragProgFile)
FragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
else
@@ -149,10 +145,10 @@ Init(void)
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
- assert(glIsProgram_func(VertProgram));
- assert(glIsProgram_func(FragProgram));
- assert(glIsShader_func(FragShader));
- assert(glIsShader_func(VertShader));
+ assert(glIsProgram(VertProgram));
+ assert(glIsProgram(FragProgram));
+ assert(glIsShader(FragShader));
+ assert(glIsShader(VertShader));
glColor3f(1, 0, 0);
}
@@ -177,10 +173,10 @@ int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
- glutInitWindowPosition( 0, 0);
glutInitWindowSize(400, 200);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
Win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Redisplay);
diff --git a/progs/glsl/vert-tex.c b/progs/glsl/vert-tex.c
index 9d00a61054..4c8bfa587a 100644
--- a/progs/glsl/vert-tex.c
+++ b/progs/glsl/vert-tex.c
@@ -9,10 +9,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-#include <GL/gl.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include <GL/glext.h>
-#include "extfuncs.h"
#include "shaderutil.h"
@@ -45,7 +43,7 @@ static GLfloat xRot = -70.0f, yRot = 0.0f, zRot = 0.0f;
/* value[0] = tex unit */
static struct uniform_info Uniforms[] = {
- { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 },
+ { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -133,9 +131,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- glDeleteShader_func(fragShader);
- glDeleteShader_func(vertShader);
- glDeleteProgram_func(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -239,13 +237,11 @@ Init(void)
if (!ShadersSupported())
exit(1);
- GetExtensionFuncs();
-
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
program = LinkShaders(vertShader, fragShader);
- glUseProgram_func(program);
+ glUseProgram(program);
assert(glGetError() == 0);
@@ -266,6 +262,7 @@ main(int argc, char *argv[])
glutInitWindowSize(500, 500);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
win = glutCreateWindow(argv[0]);
+ glewInit();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
diff --git a/progs/openvg/demos/Makefile b/progs/openvg/demos/Makefile
new file mode 100644
index 0000000000..6e15342c7f
--- /dev/null
+++ b/progs/openvg/demos/Makefile
@@ -0,0 +1,39 @@
+# progs/vg/Makefile
+
+TOP = ../../..
+include $(TOP)/configs/current
+
+VG_LIBS=-lm -pthread -lEGL -lOpenVG
+INCLUDE_DIRS = -I$(TOP)/include
+
+PROGRAMS = \
+ lion \
+ sp
+
+.c.o:
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+
+
+default: $(PROGRAMS)
+
+lion: lion.o lion-render.o
+ $(CC) $(CFLAGS) lion.o lion-render.o -L$(TOP)/$(LIB_DIR) $(VG_LIBS) -o $@
+
+lion.o: lion.c lion-render.h $(HEADERS)
+ $(CC) -c $(CFLAGS) -I$(TOP)/include lion.c
+lion-render.o: lion-render.c lion-render.h $(HEADERS)
+ $(CC) -c $(CFLAGS) -I$(TOP)/include lion-render.c
+
+
+sp: sp.c eglcommon.o
+ $(CC) $(INCLUDE_DIRS) $(CFLAGS) $^ -L$(TOP)/$(LIB_DIR) $(LIBS) $(VG_LIBS) $(APP_LIB_DEPS) -o $@
+
+eglcommon.o: eglcommon.c $(HEADERS)
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) eglcommon.c
+
+
+clean:
+ rm -f *.o *~
+ rm -f *.so
+ rm -f $(PROGRAMS)
diff --git a/progs/openvg/demos/eglcommon.c b/progs/openvg/demos/eglcommon.c
new file mode 100644
index 0000000000..bacd5685d7
--- /dev/null
+++ b/progs/openvg/demos/eglcommon.c
@@ -0,0 +1,288 @@
+#include "eglcommon.h"
+
+
+#include <assert.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <VG/openvg.h> /* using full OpenGL for now */
+#include <GLES/egl.h>
+
+
+static init_func init = 0;
+static draw_func draw = 0;
+static reshape_func reshape = 0;
+static key_func keyPress = 0;
+static VGint width = 300, height = 300;
+
+
+void set_window_size(int w, int h)
+{
+ width = w;
+ height = h;
+}
+
+/*
+ * Create an RGB, double-buffered X window.
+ * Return the window and context handles.
+ */
+static void
+make_x_window(Display *x_dpy, EGLDisplay egl_dpy,
+ const char *name,
+ int x, int y, int width, int height,
+ Window *winRet,
+ EGLContext *ctxRet,
+ EGLSurface *surfRet)
+{
+ static const EGLint attribs[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+ };
+
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ Window win;
+ XVisualInfo *visInfo, visTemplate;
+ int num_visuals;
+ EGLContext ctx;
+ EGLConfig config;
+ EGLint num_configs;
+ EGLint vid;
+
+ scrnum = DefaultScreen( x_dpy );
+ root = RootWindow( x_dpy, scrnum );
+
+ if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) {
+ printf("Error: couldn't get an EGL visual config\n");
+ exit(1);
+ }
+
+ assert(config);
+ assert(num_configs > 0);
+
+ if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
+ printf("Error: eglGetConfigAttrib() failed\n");
+ exit(1);
+ }
+
+ /* The X window visual must match the EGL config */
+ visTemplate.visualid = vid;
+ visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);
+ if (!visInfo) {
+ printf("Error: couldn't get X visual\n");
+ exit(1);
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ win = XCreateWindow( x_dpy, root, 0, 0, width, height,
+ 0, visInfo->depth, InputOutput,
+ visInfo->visual, mask, &attr );
+
+ /* set hints and properties */
+ {
+ XSizeHints sizehints;
+ sizehints.x = x;
+ sizehints.y = y;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(x_dpy, win, &sizehints);
+ XSetStandardProperties(x_dpy, win, name, name,
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ eglBindAPI(EGL_OPENVG_API);
+
+ ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL );
+ if (!ctx) {
+ printf("Error: eglCreateContext failed\n");
+ exit(1);
+ }
+
+ *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL);
+
+ if (!*surfRet) {
+ printf("Error: eglCreateWindowSurface failed\n");
+ exit(1);
+ }
+
+ XFree(visInfo);
+
+ *winRet = win;
+ *ctxRet = ctx;
+}
+
+static void
+event_loop(Display *dpy, Window win,
+ EGLDisplay egl_dpy, EGLSurface egl_surf)
+{
+ while (1) {
+ int redraw = 0;
+ XEvent event;
+
+ XNextEvent(dpy, &event);
+
+ switch (event.type) {
+ case Expose:
+ redraw = 1;
+ break;
+ case ConfigureNotify:
+ if (reshape) {
+ width = event.xconfigure.width;
+ height = event.xconfigure.height;
+ reshape(event.xconfigure.width, event.xconfigure.height);
+ }
+ break;
+ case KeyPress:
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ if (!keyPress || !keyPress(code)) {
+ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return;
+ }
+ }
+ }
+ redraw = 1;
+ break;
+ default:
+ ; /*no-op*/
+ }
+
+ if (redraw) {
+ draw();
+ eglSwapBuffers(egl_dpy, egl_surf);
+ }
+ }
+}
+
+int window_width(void)
+{
+ return width;
+}
+
+int window_height(void)
+{
+ return height;
+}
+
+static void
+usage(void)
+{
+ printf("Usage:\n");
+ printf(" -display <displayname> set the display to run on\n");
+ printf(" -info display OpenGL renderer info\n");
+}
+
+int run(int argc, char **argv,
+ init_func init_f,
+ reshape_func resh_f,
+ draw_func draw_f,
+ key_func key_f)
+{
+ const int winWidth = width, winHeight = height;
+ Display *x_dpy;
+ Window win;
+ EGLSurface egl_surf;
+ EGLContext egl_ctx;
+ EGLDisplay egl_dpy;
+ char *dpyName = NULL;
+ GLboolean printInfo = GL_FALSE;
+ EGLint egl_major, egl_minor;
+ int i;
+ const char *s;
+
+ init = init_f;
+ draw = draw_f;
+ reshape = resh_f;
+ keyPress = key_f;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-display") == 0) {
+ dpyName = argv[i+1];
+ i++;
+ }
+ else if (strcmp(argv[i], "-info") == 0) {
+ printInfo = GL_TRUE;
+ }
+ }
+
+ x_dpy = XOpenDisplay(dpyName);
+ if (!x_dpy) {
+ printf("Error: couldn't open display %s\n",
+ dpyName ? dpyName : getenv("DISPLAY"));
+ return -1;
+ }
+
+ egl_dpy = eglGetDisplay(x_dpy);
+ if (!egl_dpy) {
+ printf("Error: eglGetDisplay() failed\n");
+ return -1;
+ }
+
+ if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) {
+ printf("Error: eglInitialize() failed\n");
+ return -1;
+ }
+
+ s = eglQueryString(egl_dpy, EGL_VERSION);
+ printf("EGL_VERSION = %s\n", s);
+
+ make_x_window(x_dpy, egl_dpy,
+ "OpenVG Example", 0, 0, winWidth, winHeight,
+ &win, &egl_ctx, &egl_surf);
+
+ XMapWindow(x_dpy, win);
+ if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) {
+ printf("Error: eglMakeCurrent() failed\n");
+ return -1;
+ }
+
+ if (printInfo) {
+ printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER));
+ printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION));
+ printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR));
+ }
+
+ if (init)
+ init();
+
+ /* Set initial projection/viewing transformation.
+ * We can't be sure we'll get a ConfigureNotify event when the window
+ * first appears.
+ */
+ if (reshape)
+ reshape(winWidth, winHeight);
+
+ event_loop(x_dpy, win, egl_dpy, egl_surf);
+
+ eglMakeCurrent(egl_dpy, 0, 0, 0);
+ eglDestroyContext(egl_dpy, egl_ctx);
+ eglDestroySurface(egl_dpy, egl_surf);
+ eglTerminate(egl_dpy);
+
+
+ XDestroyWindow(x_dpy, win);
+ XCloseDisplay(x_dpy);
+
+ return 0;
+}
+
diff --git a/progs/openvg/demos/eglcommon.h b/progs/openvg/demos/eglcommon.h
new file mode 100644
index 0000000000..958dae9f98
--- /dev/null
+++ b/progs/openvg/demos/eglcommon.h
@@ -0,0 +1,20 @@
+#ifndef EGLCOMMON_H
+#define EGLCOMMON_H
+
+typedef void (*init_func)();
+typedef void (*reshape_func)(int, int);
+typedef void (*draw_func)();
+typedef int (*key_func)(unsigned key);
+
+
+void set_window_size(int width, int height);
+int window_width(void);
+int window_height(void);
+
+int run(int argc, char **argv,
+ init_func init,
+ reshape_func resh,
+ draw_func draw,
+ key_func key);
+
+#endif
diff --git a/progs/openvg/demos/lion-render.c b/progs/openvg/demos/lion-render.c
new file mode 100644
index 0000000000..f3f151f552
--- /dev/null
+++ b/progs/openvg/demos/lion-render.c
@@ -0,0 +1,1573 @@
+#include "lion-render.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0]))
+
+static void init(struct lion *l, int i, VGint hexColor, const VGfloat *coords, int elems)
+{
+ static VGubyte cmds[128];
+ VGfloat color[4];
+ VGint j;
+
+ color[0] = ((hexColor >> 16) & 0xff) / 255.f;
+ color[1] = ((hexColor >> 8) & 0xff) / 255.f;
+ color[2] = ((hexColor >> 0) & 0xff) / 255.f;
+ color[3] = 1.0;
+
+ l->paths[i] = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f,
+ 0, 0, (unsigned int)VG_PATH_CAPABILITY_ALL);
+ l->fills[i] = vgCreatePaint();
+ vgSetParameterfv(l->fills[i], VG_PAINT_COLOR, 4, color);
+
+ cmds[0] = VG_MOVE_TO_ABS;
+ for (j = 1; j < elems; ++j) {
+ cmds[j] = VG_LINE_TO_ABS;
+ }
+
+ vgAppendPathData(l->paths[i], elems, cmds, coords);
+}
+
+static void poly0(struct lion *l)
+{
+ VGfloat color = 0xf2cc99;
+ static const VGfloat coords[] = {69,18, 82,8, 99,3, 118,5, 135,12, 149,21, 156,13, 165,9, 177,13, 183,28,
+ 180,50, 164,91, 155,107, 154,114, 151,121, 141,127, 139,136, 155,206, 157,251, 126,342,
+ 133,357, 128,376, 83,376, 75,368, 67,350, 61,350, 53,369, 4,369, 2,361, 5,354,
+ 12,342, 16,321, 4,257, 4,244, 7,218, 9,179, 26,127, 43,93, 32,77, 30,70,
+ 24,67, 16,49, 17,35, 18,23, 30,12, 40,7, 53,7, 62,12
+ };
+
+ init(l, 0, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly1(struct lion *l)
+{
+ VGfloat color = 0xe5b27f;
+ static const VGfloat coords[] = {142,79, 136,74, 138,82, 133,78, 133,84, 127,78, 128,85,
+ 124,80, 125,87, 119,82, 119,90, 125,99, 125,96, 128,100, 128,94,
+ 131,98, 132,93, 135,97, 136,93, 138,97, 139,94, 141,98, 143,94,
+ 144,85
+ };
+
+ init(l, 1, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly2(struct lion *l)
+{
+ VGfloat color = 0xeb8080;
+ static const VGfloat coords[] = {127,101, 132,100, 137,99, 144,101, 143,105, 135,110
+ };
+
+ init(l, 2, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly3(struct lion *l)
+{
+ VGfloat color = 0xf2cc99;
+ static const VGfloat coords[] = {178,229, 157,248, 139,296, 126,349, 137,356,
+ 158,357, 183,342, 212,332, 235,288, 235,261,
+ 228,252, 212,250, 188,251
+ };
+
+ init(l, 3, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly4(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {56,229, 48,241, 48,250, 57,281, 63,325, 71,338,
+ 81,315, 76,321, 79,311, 83,301, 75,308, 80,298,
+ 73,303, 76,296, 71,298, 74,292, 69,293, 74,284,
+ 78,278, 71,278, 74,274, 68,273, 70,268, 66,267,
+ 68,261, 60,266, 62,259, 65,253, 57,258, 59,251,
+ 55,254, 55,248, 60,237, 54,240, 58,234, 54,236
+ };
+
+ init(l, 4, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly5(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {74,363, 79,368, 81,368, 85,362, 89,363, 92,370, 96,373,
+ 101,372, 108,361, 110,371, 113,373, 116,371, 120,358, 122,363,
+ 123,371, 126,371, 129,367, 132,357, 135,361, 130,376, 127,377,
+ 94,378, 84,376, 76,371
+ };
+
+ init(l, 5, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly6(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {212,250, 219,251, 228,258, 236,270, 235,287, 225,304,
+ 205,332, 177,343, 171,352, 158,357, 166,352, 168,346,
+ 168,339, 165,333, 155,327, 155,323, 161,320, 165,316,
+ 169,316, 167,312, 171,313, 168,308, 173,309, 170,306,
+ 177,306, 175,308, 177,311, 174,311, 176,316, 171,315,
+ 174,319, 168,320, 168,323, 175,327, 179,332, 183,326,
+ 184,332, 189,323, 190,328, 194,320, 194,325, 199,316,
+ 201,320, 204,313, 206,316, 208,310, 211,305, 219,298,
+ 226,288, 229,279, 228,266, 224,259, 217,253
+ };
+
+ init(l, 6, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly7(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {151,205, 151,238, 149,252, 141,268, 128,282, 121,301,
+ 130,300, 126,313, 118,324, 116,337, 120,346, 133,352,
+ 133,340, 137,333, 145,329, 156,327, 153,319, 153,291,
+ 157,271, 170,259, 178,277, 193,250, 174,216
+ };
+
+ init(l, 7, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly8(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {78,127, 90,142, 95,155, 108,164, 125,167, 139,175,
+ 150,206, 152,191, 141,140, 121,148, 100,136
+ };
+
+ init(l, 8, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly9(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {21,58, 35,63, 38,68, 32,69, 42,74, 40,79, 47,80, 54,83,
+ 45,94, 34,81, 32,73, 24,66
+ };
+
+ init(l, 9, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly10(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {71,34, 67,34, 66,27, 59,24, 54,17, 48,17, 39,22,
+ 30,26, 28,31, 31,39, 38,46, 29,45, 36,54, 41,61,
+ 41,70, 50,69, 54,71, 55,58, 67,52, 76,43, 76,39,
+ 68,44
+ };
+
+ init(l, 10, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly11(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {139,74, 141,83, 143,89, 144,104, 148,104, 155,106,
+ 154,86, 157,77, 155,72, 150,77, 144,77
+ };
+
+ init(l, 11, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly12(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {105,44, 102,53, 108,58, 111,62, 112,55
+ };
+
+ init(l, 12, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly13(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {141,48, 141,54, 144,58, 139,62, 137,66, 136,59, 137,52
+ };
+
+ init(l, 13, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly14(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {98,135, 104,130, 105,134, 108,132, 108,135, 112,134,
+ 113,137, 116,136, 116,139, 119,139, 124,141, 128,140,
+ 133,138, 140,133, 139,140, 126,146, 104,144
+ };
+
+ init(l, 14, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly15(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {97,116, 103,119, 103,116, 111,118, 116,117, 122,114,
+ 127,107, 135,111, 142,107, 141,114, 145,118, 149,121,
+ 145,125, 140,124, 127,121, 113,125, 100,124
+ };
+
+ init(l, 15, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly16(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {147,33, 152,35, 157,34, 153,31, 160,31, 156,28, 161,28,
+ 159,24, 163,25, 163,21, 165,22, 170,23, 167,17, 172,21,
+ 174,18, 175,23, 176,22, 177,28, 177,33, 174,37, 176,39,
+ 174,44, 171,49, 168,53, 164,57, 159,68, 156,70, 154,60,
+ 150,51, 146,43, 144,35
+ };
+
+ init(l, 16, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly17(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {85,72, 89,74, 93,75, 100,76, 105,75, 102,79, 94,79, 88,76
+ };
+
+ init(l, 17, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly18(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {86,214, 79,221, 76,232, 82,225, 78,239, 82,234, 78,245,
+ 81,243, 79,255, 84,250, 84,267, 87,254, 90,271, 90,257,
+ 95,271, 93,256, 95,249, 92,252, 93,243, 89,253, 89,241,
+ 86,250, 87,236, 83,245, 87,231, 82,231, 90,219, 84,221
+ };
+
+ init(l, 18, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly19(struct lion *l)
+{
+ VGfloat color = 0xffcc7f;
+ static const VGfloat coords[] = {93,68, 96,72, 100,73, 106,72, 108,66, 105,63, 100,62
+ };
+
+ init(l, 19, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly20(struct lion *l)
+{
+ VGfloat color = 0xffcc7f;
+ static const VGfloat coords[] = {144,64, 142,68, 142,73, 146,74, 150,73, 154,64, 149,62
+ };
+
+ init(l, 20, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly21(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {57,91, 42,111, 52,105, 41,117, 53,112, 46,120, 53,116,
+ 50,124, 57,119, 55,127, 61,122, 60,130, 67,126, 66,134,
+ 71,129, 72,136, 77,130, 76,137, 80,133, 82,138, 86,135,
+ 96,135, 94,129, 86,124, 83,117, 77,123, 79,117, 73,120,
+ 75,112, 68,116, 71,111, 65,114, 69,107, 63,110, 68,102,
+ 61,107, 66,98, 61,103, 63,97, 57,99
+ };
+
+ init(l, 21, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly22(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {83,79, 76,79, 67,82, 75,83, 65,88, 76,87, 65,92, 76,91,
+ 68,96, 77,95, 70,99, 80,98, 72,104, 80,102, 76,108, 85,103,
+ 92,101, 87,98, 93,96, 86,94, 91,93, 85,91, 93,89, 99,89, 105,93,
+ 107,85, 102,82, 92,80
+ };
+
+ init(l, 22, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly23(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {109,77, 111,83, 109,89, 113,94, 117,90, 117,81, 114,78
+ };
+
+ init(l, 23, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly24(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {122,128, 127,126, 134,127, 136,129, 134,130, 130,128, 124,129
+ };
+
+ init(l, 24, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly25(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {78,27, 82,32, 80,33, 82,36, 78,37, 82,40, 78,42, 81,46, 76,47,
+ 78,49, 74,50, 82,52, 87,50, 83,48, 91,46, 86,45, 91,42, 88,40,
+ 92,37, 86,34, 90,31, 86,29, 89,26
+ };
+
+ init(l, 25, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly26(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {82,17, 92,20, 79,21, 90,25, 81,25, 94,28, 93,26, 101,30,
+ 101,26, 107,33, 108,28, 111,40, 113,34, 115,45, 117,39,
+ 119,54, 121,46, 124,58, 126,47, 129,59, 130,49, 134,58,
+ 133,44, 137,48, 133,37, 137,40, 133,32, 126,20, 135,26,
+ 132,19, 138,23, 135,17, 142,18, 132,11, 116,6, 94,6, 78,11,
+ 92,12, 80,14, 90,16
+ };
+
+ init(l, 26, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly27(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {142,234, 132,227, 124,223, 115,220, 110,225, 118,224, 127,229,
+ 135,236, 122,234, 115,237, 113,242, 121,238, 139,243, 121,245,
+ 111,254, 95,254, 102,244, 104,235, 110,229, 100,231, 104,224,
+ 113,216, 122,215, 132,217, 141,224, 145,230, 149,240
+ };
+
+ init(l, 27, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly28(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {115,252, 125,248, 137,249, 143,258, 134,255, 125,254
+ };
+
+ init(l, 28, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly29(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {114,212, 130,213, 140,219, 147,225, 144,214, 137,209, 128,207
+ };
+
+ init(l, 29, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly30(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {102,263, 108,258, 117,257, 131,258, 116,260, 109,265
+ };
+
+ init(l, 30, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly31(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {51,241, 35,224, 40,238, 23,224, 31,242, 19,239, 28,247, 17,246,
+ 25,250, 37,254, 39,263, 44,271, 47,294, 48,317, 51,328, 60,351,
+ 60,323, 53,262, 47,246
+ };
+
+ init(l, 31, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly32(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {2,364, 9,367, 14,366, 18,355, 20,364, 26,366, 31,357, 35,364,
+ 39,364, 42,357, 47,363, 53,360, 59,357, 54,369, 7,373
+ };
+
+ init(l, 32, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly33(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {7,349, 19,345, 25,339, 18,341, 23,333, 28,326, 23,326, 27,320,
+ 23,316, 25,311, 20,298, 15,277, 12,264, 9,249, 10,223, 3,248,
+ 5,261, 15,307, 17,326, 11,343
+ };
+
+ init(l, 33, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly34(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {11,226, 15,231, 25,236, 18,227
+ };
+
+ init(l, 34, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly35(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {13,214, 19,217, 32,227, 23,214, 16,208, 15,190, 24,148,
+ 31,121, 24,137, 14,170, 8,189
+ };
+
+ init(l, 35, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly36(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {202,254, 195,258, 199,260, 193,263, 197,263, 190,268,
+ 196,268, 191,273, 188,282, 200,272, 194,272, 201,266,
+ 197,265, 204,262, 200,258, 204,256
+ };
+
+ init(l, 36, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly37(struct lion *l)
+{
+ VGfloat color = 0x845433;
+ static const VGfloat coords[] = {151,213, 165,212, 179,225, 189,246, 187,262, 179,275,
+ 176,263, 177,247, 171,233, 163,230, 165,251, 157,264,
+ 146,298, 145,321, 133,326, 143,285, 154,260, 153,240
+ };
+
+ init(l, 37, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly38(struct lion *l)
+{
+ VGfloat color = 0x845433;
+ static const VGfloat coords[] = {91,132, 95,145, 97,154, 104,148, 107,155, 109,150, 111,158,
+ 115,152, 118,159, 120,153, 125,161, 126,155, 133,164, 132,154,
+ 137,163, 137,152, 142,163, 147,186, 152,192, 148,167, 141,143,
+ 124,145, 105,143
+ };
+
+ init(l, 38, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly39(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {31,57, 23,52, 26,51, 20,44, 23,42, 21,36, 22,29, 25,23,
+ 24,32, 30,43, 26,41, 30,50, 26,48
+ };
+
+ init(l, 39, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly40(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {147,21, 149,28, 155,21, 161,16, 167,14, 175,15, 173,11, 161,9
+ };
+
+ init(l, 40, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly41(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {181,39, 175,51, 169,57, 171,65, 165,68, 165,75, 160,76,
+ 162,91, 171,71, 180,51
+ };
+
+ init(l, 41, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly42(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {132,346, 139,348, 141,346, 142,341, 147,342, 143,355, 133,350
+ };
+
+ init(l, 42, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly43(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {146,355, 151,352, 155,348, 157,343, 160,349, 151,356, 147,357
+ };
+
+ init(l, 43, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly44(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {99,266, 100,281, 94,305, 86,322, 78,332, 72,346, 73,331, 91,291
+ };
+
+ init(l, 44, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly45(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {20,347, 32,342, 45,340, 54,345, 45,350, 42,353, 38,350,
+ 31,353, 29,356, 23,350, 19,353, 15,349
+ };
+
+ init(l, 45, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly46(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {78,344, 86,344, 92,349, 88,358, 84,352
+ };
+
+ init(l, 46, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly47(struct lion *l)
+{
+ VGfloat color = 0x9c826b;
+ static const VGfloat coords[] = {93,347, 104,344, 117,345, 124,354, 121,357, 116,351,
+ 112,351, 108,355, 102,351
+ };
+
+ init(l, 47, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly48(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {105,12, 111,18, 113,24, 113,29, 119,34, 116,23, 112,16
+ };
+
+ init(l, 48, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly49(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {122,27, 125,34, 127,43, 128,34, 125,29
+ };
+
+ init(l, 49, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly50(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {115,13, 122,19, 122,15, 113,10
+ };
+
+ init(l, 50, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly51(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {116,172, 107,182, 98,193, 98,183, 90,199, 89,189, 84,207,
+ 88,206, 87,215, 95,206, 93,219, 91,230, 98,216, 97,226,
+ 104,214, 112,209, 104,208, 113,202, 126,200, 139,207, 132,198,
+ 142,203, 134,192, 142,195, 134,187, 140,185, 130,181, 136,177,
+ 126,177, 125,171, 116,180
+ };
+
+ init(l, 51, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly52(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {74,220, 67,230, 67,221, 59,235, 63,233, 60,248, 70,232, 65,249,
+ 71,243, 67,256, 73,250, 69,262, 73,259, 71,267, 76,262, 72,271,
+ 78,270, 76,275, 82,274, 78,290, 86,279, 86,289, 92,274, 88,275,
+ 87,264, 82,270, 82,258, 77,257, 78,247, 73,246, 77,233, 72,236
+ };
+
+ init(l, 52, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly53(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {133,230, 147,242, 148,250, 145,254, 138,247, 129,246, 142,245,
+ 138,241, 128,237, 137,238
+ };
+
+ init(l, 53, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly54(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {133,261, 125,261, 116,263, 111,267, 125,265
+ };
+
+ init(l, 54, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly55(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {121,271, 109,273, 103,279, 99,305, 92,316, 85,327, 83,335,
+ 89,340, 97,341, 94,336, 101,336, 96,331, 103,330, 97,327, 108,325,
+ 99,322, 109,321, 100,318, 110,317, 105,314, 110,312, 107,310, 113,308,
+ 105,306, 114,303, 105,301, 115,298, 107,295, 115,294, 108,293, 117,291,
+ 109,289, 117,286, 109,286, 118,283, 112,281, 118,279, 114,278,
+ 119,276, 115,274
+ };
+
+ init(l, 55, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly56(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {79,364, 74,359, 74,353, 76,347, 80,351, 83,356, 82,360
+ };
+
+ init(l, 56, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly57(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {91,363, 93,356, 97,353, 103,355, 105,360, 103,366, 99,371, 94,368
+ };
+
+ init(l, 57, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly58(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {110,355, 114,353, 118,357, 117,363, 113,369, 111,362
+ };
+
+ init(l, 58, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly59(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {126,354, 123,358, 124,367, 126,369, 129,361, 129,357
+ };
+
+ init(l, 59, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly60(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {30,154, 24,166, 20,182, 23,194, 29,208, 37,218, 41,210, 41,223,
+ 46,214, 46,227, 52,216, 52,227, 61,216, 59,225, 68,213, 73,219,
+ 70,207, 77,212, 69,200, 77,202, 70,194, 78,197, 68,187, 76,182,
+ 64,182, 58,175, 58,185, 53,177, 50,186, 46,171, 44,182, 39,167,
+ 36,172, 36,162, 30,166
+ };
+
+ init(l, 60, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly61(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {44,130, 41,137, 45,136, 43,150, 48,142, 48,157, 53,150,
+ 52,164, 60,156, 61,169, 64,165, 66,175, 70,167, 74,176,
+ 77,168, 80,183, 85,172, 90,182, 93,174, 98,181, 99,173,
+ 104,175, 105,169, 114,168, 102,163, 95,157, 94,166, 90,154,
+ 87,162, 82,149, 75,159, 72,148, 68,155, 67,143, 62,148, 62,138,
+ 58,145, 56,133, 52,142, 52,128, 49,134, 47,125
+ };
+
+ init(l, 61, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly62(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {13,216, 19,219, 36,231, 22,223, 16,222, 22,227, 12,224, 13,220, 16,220
+ };
+
+ init(l, 62, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly63(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {10,231, 14,236, 25,239, 27,237, 19,234
+ };
+
+ init(l, 63, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly64(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {9,245, 14,242, 25,245, 13,245
+ };
+
+ init(l, 64, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly65(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {33,255, 26,253, 18,254, 25,256, 18,258, 27,260, 18,263,
+ 27,265, 19,267, 29,270, 21,272, 29,276, 21,278, 30,281,
+ 22,283, 31,287, 24,288, 32,292, 23,293, 34,298, 26,299,
+ 37,303, 32,305, 39,309, 33,309, 39,314, 34,314, 40,318,
+ 34,317, 40,321, 34,321, 41,326, 33,326, 40,330, 33,332,
+ 39,333, 33,337, 42,337, 54,341, 49,337, 52,335, 47,330,
+ 50,330, 45,325, 49,325, 45,321, 48,321, 45,316, 46,306,
+ 45,286, 43,274, 36,261
+ };
+
+ init(l, 65, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly66(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {7,358, 9,351, 14,351, 17,359, 11,364
+ };
+
+ init(l, 66, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly67(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {44,354, 49,351, 52,355, 49,361
+ };
+
+ init(l, 67, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly68(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {32,357, 37,353, 40,358, 36,361
+ };
+
+ init(l, 68, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly69(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {139,334, 145,330, 154,330, 158,334, 154,341, 152,348,
+ 145,350, 149,340, 147,336, 141,339, 139,345, 136,342,
+ 136,339
+ };
+
+ init(l, 69, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly70(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {208,259, 215,259, 212,255, 220,259, 224,263, 225,274, 224,283,
+ 220,292, 208,300, 206,308, 203,304, 199,315, 197,309, 195,318,
+ 193,313, 190,322, 190,316, 185,325, 182,318, 180,325, 172,321,
+ 178,320, 176,313, 186,312, 180,307, 188,307, 184,303, 191,302,
+ 186,299, 195,294, 187,290, 197,288, 192,286, 201,283, 194,280,
+ 203,277, 198,275, 207,271, 200,269, 209,265, 204,265, 212,262
+ };
+
+ init(l, 70, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly71(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {106,126, 106,131, 109,132, 111,134, 115,132, 115,135, 119,133, 118,137,
+ 123,137, 128,137, 133,134, 136,130, 136,127, 132,124, 118,128, 112,128,
+ 106,126, 106,126, 106,126
+ };
+
+ init(l, 71, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly72(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {107,114, 101,110, 98,102, 105,97, 111,98, 119,102, 121,108, 118,112, 113,115
+ };
+
+ init(l, 72, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly73(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {148,106, 145,110, 146,116, 150,118, 152,111, 151,107
+ };
+
+ init(l, 73, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly74(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {80,55, 70,52, 75,58, 63,57, 72,61, 57,61, 67,66, 57,67, 62,69, 54,71,
+ 61,73, 54,77, 63,78, 53,85, 60,84, 56,90, 69,84, 63,82, 75,76, 70,75,
+ 77,72, 72,71, 78,69, 72,66, 81,67, 78,64, 82,63, 80,60, 86,62
+ };
+
+ init(l, 74, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly75(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {87,56, 91,52, 96,50, 102,56, 98,56, 92,60
+ };
+
+ init(l, 75, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly76(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {85,68, 89,73, 98,76, 106,74, 96,73, 91,70
+ };
+
+ init(l, 76, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly77(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {115,57, 114,64, 111,64, 115,75, 122,81, 122,74, 126,79,
+ 126,74, 131,78, 130,72, 133,77, 131,68, 126,61, 119,57
+ };
+
+ init(l, 77, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly78(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {145,48, 143,53, 147,59, 151,59, 150,55
+ };
+
+ init(l, 78, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly79(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {26,22, 34,15, 43,10, 52,10, 59,16, 47,15, 32,22
+ };
+
+ init(l, 79, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly80(struct lion *l)
+{
+ VGfloat color = 0xffe5b2;
+ static const VGfloat coords[] = {160,19, 152,26, 149,34, 154,33, 152,30, 157,30, 155,26, 158,27,
+ 157,23, 161,23
+ };
+
+ init(l, 80, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly81(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {98,117, 105,122, 109,122, 105,117, 113,120, 121,120, 130,112, 128,108,
+ 123,103, 123,99, 128,101, 132,106, 135,109, 142,105, 142,101, 145,101,
+ 145,91, 148,101, 145,105, 136,112, 135,116, 143,124, 148,120, 150,122,
+ 142,128, 133,122, 121,125, 112,126, 103,125, 100,129, 96,124
+ };
+
+ init(l, 81, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly82(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {146,118, 152,118, 152,115, 149,115
+ };
+
+ init(l, 82, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly83(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {148,112, 154,111, 154,109, 149,109
+ };
+
+ init(l, 83, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly84(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {106,112, 108,115, 114,116, 118,114
+ };
+
+ init(l, 84, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly85(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {108,108, 111,110, 116,110, 119,108
+ };
+
+ init(l, 85, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly86(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {106,104, 109,105, 117,106, 115,104
+ };
+
+ init(l, 86, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly87(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {50,25, 41,26, 34,33, 39,43, 49,58, 36,51, 47,68, 55,69, 54,59,
+ 61,57, 74,46, 60,52, 67,42, 57,48, 61,40, 54,45, 60,36, 59,29,
+ 48,38, 52,30, 47,32
+ };
+
+ init(l, 87, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly88(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {147,34, 152,41, 155,49, 161,53, 157,47, 164,47, 158,43, 168,44,
+ 159,40, 164,37, 169,37, 164,33, 169,34, 165,28, 170,30, 170,25,
+ 173,29, 175,27, 176,32, 173,36, 175,39, 172,42, 172,46, 168,49,
+ 170,55, 162,57, 158,63, 155,58, 153,50, 149,46
+ };
+
+ init(l, 88, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly89(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {155,71, 159,80, 157,93, 157,102, 155,108, 150,101, 149,93,
+ 154,101, 152,91, 151,83, 155,79
+ };
+
+ init(l, 89, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly90(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {112,78, 115,81, 114,91, 112,87, 113,82
+ };
+
+ init(l, 90, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly91(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {78,28, 64,17, 58,11, 47,9, 36,10, 28,16, 21,26, 18,41,
+ 20,51, 23,61, 33,65, 28,68, 37,74, 36,81, 43,87, 48,90,
+ 43,100, 40,98, 39,90, 31,80, 30,72, 22,71, 17,61, 14,46,
+ 16,28, 23,17, 33,9, 45,6, 54,6, 65,12
+ };
+
+ init(l, 91, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly92(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {67,18, 76,9, 87,5, 101,2, 118,3, 135,8, 149,20, 149,26,
+ 144,19, 132,12, 121,9, 105,7, 89,8, 76,14, 70,20
+ };
+
+ init(l, 92, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly93(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {56,98, 48,106, 56,103, 47,112, 56,110, 52,115, 57,113, 52,121, 62,115,
+ 58,123, 65,119, 63,125, 69,121, 68,127, 74,125, 74,129, 79,128, 83,132,
+ 94,135, 93,129, 85,127, 81,122, 76,126, 75,121, 71,124, 71,117, 66,121,
+ 66,117, 62,117, 64,112, 60,113, 60,110, 57,111, 61,105, 57,107, 60,101,
+ 55,102
+ };
+
+ init(l, 93, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly94(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {101,132, 103,138, 106,134, 106,139, 112,136, 111,142, 115,139,
+ 114,143, 119,142, 125,145, 131,142, 135,138, 140,134, 140,129,
+ 143,135, 145,149, 150,171, 149,184, 145,165, 141,150, 136,147,
+ 132,151, 131,149, 126,152, 125,150, 121,152, 117,148, 111,152,
+ 110,148, 105,149, 104,145, 98,150, 96,138, 94,132, 94,130, 98,132
+ };
+
+ init(l, 94, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly95(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {41,94, 32,110, 23,132, 12,163, 6,190, 7,217, 5,236,
+ 3,247, 9,230, 12,211, 12,185, 18,160, 26,134, 35,110,
+ 43,99
+ };
+
+ init(l, 95, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly96(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {32,246, 41,250, 50,257, 52,267, 53,295, 53,323, 59,350,
+ 54,363, 51,365, 44,366, 42,360, 40,372, 54,372, 59,366,
+ 62,353, 71,352, 75,335, 73,330, 66,318, 68,302, 64,294,
+ 67,288, 63,286, 63,279, 59,275, 58,267, 56,262, 50,247,
+ 42,235, 44,246, 32,236, 35,244
+ };
+
+ init(l, 96, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly97(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {134,324, 146,320, 159,322, 173,327, 179,337, 179,349,
+ 172,355, 158,357, 170,350, 174,343, 170,333, 163,328, 152,326,
+ 134,329
+ };
+
+ init(l, 97, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly98(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {173,339, 183,334, 184,338, 191,329, 194,332, 199,323, 202,325,
+ 206,318, 209,320, 213,309, 221,303, 228,296, 232,289, 234,279,
+ 233,269, 230,262, 225,256, 219,253, 208,252, 198,252, 210,249,
+ 223,250, 232,257, 237,265, 238,277, 238,291, 232,305, 221,323,
+ 218,335, 212,342, 200,349, 178,348
+ };
+
+ init(l, 98, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly99(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {165,296, 158,301, 156,310, 156,323, 162,324, 159,318,
+ 162,308, 162,304
+ };
+
+ init(l, 99, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly100(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {99,252, 105,244, 107,234, 115,228, 121,228, 131,235,
+ 122,233, 113,235, 109,246, 121,239, 133,243, 121,243,
+ 110,251
+ };
+
+ init(l, 100, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly101(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {117,252, 124,247, 134,249, 136,253, 126,252
+ };
+
+ init(l, 101, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly102(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {117,218, 132,224, 144,233, 140,225, 132,219, 117,218,
+ 117,218, 117,218
+ };
+
+ init(l, 102, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly103(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {122,212, 134,214, 143,221, 141,213, 132,210
+ };
+
+ init(l, 103, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly104(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {69,352, 70,363, 76,373, 86,378, 97,379, 108,379, 120,377,
+ 128,378, 132,373, 135,361, 133,358, 132,366, 127,375, 121,374,
+ 121,362, 119,367, 117,374, 110,376, 110,362, 107,357, 106,371,
+ 104,375, 97,376, 90,375, 90,368, 86,362, 83,364, 86,369, 85,373,
+ 78,370, 73,362, 71,351
+ };
+
+ init(l, 104, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly105(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {100,360, 96,363, 99,369, 102,364
+ };
+
+ init(l, 105, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly106(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {115,360, 112,363, 114,369, 117,364
+ };
+
+ init(l, 106, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly107(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {127,362, 125,364, 126,369, 128,365
+ };
+
+ init(l, 107, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly108(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {5,255, 7,276, 11,304, 15,320, 13,334, 6,348, 2,353, 0,363,
+ 5,372, 12,374, 25,372, 38,372, 44,369, 42,367, 36,368, 31,369,
+ 30,360, 27,368, 20,370, 16,361, 15,368, 10,369, 3,366, 3,359, 6,352,
+ 11,348, 17,331, 19,316, 12,291, 9,274
+ };
+
+ init(l, 108, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly109(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {10,358, 7,362, 10,366, 11,362
+ };
+
+ init(l, 109, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly110(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {25,357, 22,360, 24,366, 27,360
+ };
+
+ init(l, 110, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly111(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {37,357, 34,361, 36,365, 38,361
+ };
+
+ init(l, 111, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly112(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {49,356, 46,359, 47,364, 50,360
+ };
+
+ init(l, 112, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly113(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {130,101, 132,102, 135,101, 139,102, 143,103,
+ 142,101, 137,100, 133,100
+ };
+
+ init(l, 113, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly114(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {106,48, 105,52, 108,56, 109,52
+ };
+
+ init(l, 114, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly115(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {139,52, 139,56, 140,60, 142,58, 141,56
+ };
+
+ init(l, 115, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly116(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {25,349, 29,351, 30,355, 33,350, 37,348, 42,351, 45,347,
+ 49,345, 44,343, 36,345
+ };
+
+ init(l, 116, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly117(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {98,347, 105,351, 107,354, 109,349, 115,349, 120,353, 118,349,
+ 113,346, 104,346
+ };
+
+ init(l, 117, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly118(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {83,348, 87,352, 87,357, 89,351, 87,348
+ };
+
+ init(l, 118, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly119(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {155,107, 163,107, 170,107, 186,108, 175,109, 155,109
+ };
+
+ init(l, 119, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly120(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {153,114, 162,113, 175,112, 192,114, 173,114, 154,115
+ };
+
+ init(l, 120, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly121(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {152,118, 164,120, 180,123, 197,129, 169,123, 151,120
+ };
+
+ init(l, 121, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly122(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {68,109, 87,106, 107,106, 106,108, 88,108
+ };
+
+ init(l, 122, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly123(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {105,111, 95,112, 79,114, 71,116, 85,115, 102,113
+ };
+
+ init(l, 123, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly124(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {108,101, 98,99, 87,99, 78,99, 93,100, 105,102
+ };
+
+ init(l, 124, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly125(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {85,63, 91,63, 97,60, 104,60, 108,62, 111,69, 112,75,
+ 110,74, 108,71, 103,73, 106,69, 105,65, 103,64, 103,67,
+ 102,70, 99,70, 97,66, 94,67, 97,72, 88,67, 84,66
+ };
+
+ init(l, 125, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly126(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {140,74, 141,66, 144,61, 150,61, 156,62, 153,70, 150,73,
+ 152,65, 150,65, 151,68, 149,71, 146,71, 144,66, 143,70,
+ 143,74
+ };
+
+ init(l, 126, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly127(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {146,20, 156,11, 163,9, 172,9, 178,14, 182,18, 184,32, 182,42,
+ 182,52, 177,58, 176,67, 171,76, 165,90, 157,105, 160,92, 164,85,
+ 168,78, 167,73, 173,66, 172,62, 175,59, 174,55, 177,53, 180,46,
+ 181,29, 179,21, 173,13, 166,11, 159,13, 153,18, 148,23
+ };
+
+ init(l, 127, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly128(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {150,187, 148,211, 150,233, 153,247, 148,267, 135,283, 125,299,
+ 136,292, 131,313, 122,328, 122,345, 129,352, 133,359, 133,367,
+ 137,359, 148,356, 140,350, 131,347, 129,340, 132,332, 140,328,
+ 137,322, 140,304, 154,265, 157,244, 155,223, 161,220, 175,229,
+ 186,247, 185,260, 176,275, 178,287, 185,277, 188,261, 196,253,
+ 189,236, 174,213
+ };
+
+ init(l, 128, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly129(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {147,338, 142,341, 143,345, 141,354, 147,343
+ };
+
+ init(l, 129, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly130(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {157,342, 156,349, 150,356, 157,353, 163,346, 162,342
+ };
+
+ init(l, 130, color, coords, ELEMENTS(coords)/2);
+}
+
+static void poly131(struct lion *l)
+{
+ VGfloat color = 0x000000;
+ static const VGfloat coords[] = {99,265, 96,284, 92,299, 73,339, 73,333, 87,300
+ };
+
+ init(l, 131, color, coords, ELEMENTS(coords)/2);
+}
+
+
+struct lion * lion_create(void)
+{
+ struct lion *l = calloc(1, sizeof(struct lion));
+
+ poly0(l);
+ poly1(l);
+ poly2(l);
+ poly3(l);
+ poly4(l);
+ poly5(l);
+ poly6(l);
+ poly7(l);
+ poly8(l);
+ poly9(l);
+
+ poly10(l);
+ poly11(l);
+ poly12(l);
+ poly13(l);
+ poly14(l);
+ poly15(l);
+ poly16(l);
+ poly17(l);
+ poly18(l);
+ poly19(l);
+
+ poly20(l);
+ poly21(l);
+ poly22(l);
+ poly23(l);
+ poly24(l);
+ poly25(l);
+ poly26(l);
+ poly27(l);
+ poly28(l);
+ poly29(l);
+
+ poly30(l);
+ poly31(l);
+ poly32(l);
+ poly33(l);
+ poly34(l);
+ poly35(l);
+ poly36(l);
+ poly37(l);
+ poly38(l);
+ poly39(l);
+
+ poly40(l);
+ poly41(l);
+ poly42(l);
+ poly43(l);
+ poly44(l);
+ poly45(l);
+ poly46(l);
+ poly47(l);
+ poly48(l);
+ poly49(l);
+
+ poly50(l);
+ poly51(l);
+ poly52(l);
+ poly53(l);
+ poly54(l);
+ poly55(l);
+ poly56(l);
+ poly57(l);
+ poly58(l);
+ poly59(l);
+
+ poly60(l);
+ poly61(l);
+ poly62(l);
+ poly63(l);
+ poly64(l);
+ poly65(l);
+ poly66(l);
+ poly67(l);
+ poly68(l);
+ poly69(l);
+
+ poly70(l);
+ poly71(l);
+ poly72(l);
+ poly73(l);
+ poly74(l);
+ poly75(l);
+ poly76(l);
+ poly77(l);
+ poly78(l);
+ poly79(l);
+
+ poly80(l);
+ poly81(l);
+ poly82(l);
+ poly83(l);
+ poly84(l);
+ poly85(l);
+ poly86(l);
+ poly87(l);
+ poly88(l);
+ poly89(l);
+
+ poly90(l);
+ poly91(l);
+ poly92(l);
+ poly93(l);
+ poly94(l);
+ poly95(l);
+ poly96(l);
+ poly97(l);
+ poly98(l);
+ poly99(l);
+
+ poly100(l);
+ poly101(l);
+ poly102(l);
+ poly103(l);
+ poly104(l);
+ poly105(l);
+ poly106(l);
+ poly107(l);
+ poly108(l);
+ poly109(l);
+
+ poly110(l);
+ poly111(l);
+ poly112(l);
+ poly113(l);
+ poly114(l);
+ poly115(l);
+ poly116(l);
+ poly117(l);
+ poly118(l);
+ poly119(l);
+
+ poly120(l);
+ poly121(l);
+ poly122(l);
+ poly123(l);
+ poly124(l);
+ poly125(l);
+ poly126(l);
+ poly127(l);
+ poly128(l);
+ poly129(l);
+
+ poly130(l);
+ poly131(l);
+
+ return l;
+}
+
+void lion_render(struct lion *l)
+{
+ VGint i;
+
+ for (i = 0; i < LION_SIZE; ++i) {
+ vgSetPaint(l->fills[i], VG_FILL_PATH);
+ vgDrawPath(l->paths[i], VG_FILL_PATH);
+ }
+}
+
+void lion_destroy(struct lion *l)
+{
+ VGint i;
+ for (i = 0; i < LION_SIZE; ++i) {
+ vgDestroyPaint(l->fills[i]);
+ vgDestroyPath(l->paths[i]);
+ }
+ free(l);
+}
diff --git a/progs/openvg/demos/lion-render.h b/progs/openvg/demos/lion-render.h
new file mode 100644
index 0000000000..c4c020b7ed
--- /dev/null
+++ b/progs/openvg/demos/lion-render.h
@@ -0,0 +1,16 @@
+#ifndef LION_RENDER_H
+#define LION_RENDER_H
+
+#include <VG/openvg.h>
+
+#define LION_SIZE 132
+struct lion {
+ VGPath paths[LION_SIZE];
+ VGPaint fills[LION_SIZE];
+};
+
+struct lion *lion_create(void);
+void lion_render(struct lion *l);
+void lion_destroy(struct lion *l);
+
+#endif
diff --git a/progs/openvg/demos/lion.c b/progs/openvg/demos/lion.c
new file mode 100644
index 0000000000..7224fed399
--- /dev/null
+++ b/progs/openvg/demos/lion.c
@@ -0,0 +1,288 @@
+#include <assert.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <VG/openvg.h>
+#include <GLES/egl.h>
+
+#include "lion-render.h"
+
+static VGint width, height;
+struct lion *lion = 0;
+VGfloat angle = 0;
+
+static void
+draw(void)
+{
+ vgClear(0, 0, width, height);
+
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+ vgLoadIdentity();
+ vgTranslate(width/2, height/2);
+ vgRotate(angle);
+ vgTranslate(-width/2, -height/2);
+
+ lion_render(lion);
+
+ ++angle;
+}
+
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ width = w;
+ height = h;
+}
+
+
+static void
+init(void)
+{
+ float clear_color[4] = {1.0, 1.0, 1.0, 1.0};
+ vgSetfv(VG_CLEAR_COLOR, 4, clear_color);
+
+ lion = lion_create();
+}
+
+
+/*
+ * Create an RGB, double-buffered X window.
+ * Return the window and context handles.
+ */
+static void
+make_x_window(Display *x_dpy, EGLDisplay egl_dpy,
+ const char *name,
+ int x, int y, int width, int height,
+ Window *winRet,
+ EGLContext *ctxRet,
+ EGLSurface *surfRet)
+{
+ static const EGLint attribs[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+ };
+
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ Window win;
+ XVisualInfo *visInfo, visTemplate;
+ int num_visuals;
+ EGLContext ctx;
+ EGLConfig config;
+ EGLint num_configs;
+ EGLint vid;
+
+ scrnum = DefaultScreen( x_dpy );
+ root = RootWindow( x_dpy, scrnum );
+
+ if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) {
+ printf("Error: couldn't get an EGL visual config\n");
+ exit(1);
+ }
+
+ assert(config);
+ assert(num_configs > 0);
+
+ if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
+ printf("Error: eglGetConfigAttrib() failed\n");
+ exit(1);
+ }
+
+ /* The X window visual must match the EGL config */
+ visTemplate.visualid = vid;
+ visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);
+ if (!visInfo) {
+ printf("Error: couldn't get X visual\n");
+ exit(1);
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ win = XCreateWindow( x_dpy, root, 0, 0, width, height,
+ 0, visInfo->depth, InputOutput,
+ visInfo->visual, mask, &attr );
+
+ /* set hints and properties */
+ {
+ XSizeHints sizehints;
+ sizehints.x = x;
+ sizehints.y = y;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(x_dpy, win, &sizehints);
+ XSetStandardProperties(x_dpy, win, name, name,
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ eglBindAPI(EGL_OPENVG_API);
+
+ ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL );
+ if (!ctx) {
+ printf("Error: eglCreateContext failed\n");
+ exit(1);
+ }
+
+ *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL);
+
+ if (!*surfRet) {
+ printf("Error: eglCreateWindowSurface failed\n");
+ exit(1);
+ }
+
+ XFree(visInfo);
+
+ *winRet = win;
+ *ctxRet = ctx;
+}
+
+
+static void
+event_loop(Display *dpy, Window win,
+ EGLDisplay egl_dpy, EGLSurface egl_surf)
+{
+ while (1) {
+ XEvent event;
+
+ while (XPending(dpy) > 0) {
+ XNextEvent(dpy, &event);
+
+ switch (event.type) {
+ case Expose:
+ break;
+ case ConfigureNotify:
+ reshape(event.xconfigure.width, event.xconfigure.height);
+ break;
+ case KeyPress:
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return;
+ }
+ }
+ break;
+ default:
+ ; /*no-op*/
+ }
+ }
+
+ draw();
+ eglSwapBuffers(egl_dpy, egl_surf);
+ }
+}
+
+
+static void
+usage(void)
+{
+ printf("Usage:\n");
+ printf(" -display <displayname> set the display to run on\n");
+ printf(" -info display OpenGL renderer info\n");
+}
+
+int
+main(int argc, char *argv[])
+{
+ const int winWidth = 350, winHeight = 450;
+ Display *x_dpy;
+ Window win;
+ EGLSurface egl_surf;
+ EGLContext egl_ctx;
+ EGLDisplay egl_dpy;
+ char *dpyName = NULL;
+ GLboolean printInfo = GL_FALSE;
+ EGLint egl_major, egl_minor;
+ int i;
+ const char *s;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-display") == 0) {
+ dpyName = argv[i+1];
+ i++;
+ }
+ else if (strcmp(argv[i], "-info") == 0) {
+ printInfo = GL_TRUE;
+ }
+ else {
+ usage();
+ return -1;
+ }
+ }
+
+ x_dpy = XOpenDisplay(dpyName);
+ if (!x_dpy) {
+ printf("Error: couldn't open display %s\n",
+ dpyName ? dpyName : getenv("DISPLAY"));
+ return -1;
+ }
+
+ egl_dpy = eglGetDisplay(x_dpy);
+ if (!egl_dpy) {
+ printf("Error: eglGetDisplay() failed\n");
+ return -1;
+ }
+
+ if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) {
+ printf("Error: eglInitialize() failed\n");
+ return -1;
+ }
+
+ s = eglQueryString(egl_dpy, EGL_VERSION);
+ printf("EGL_VERSION = %s\n", s);
+
+ make_x_window(x_dpy, egl_dpy,
+ "Lion Example", 0, 0, winWidth, winHeight,
+ &win, &egl_ctx, &egl_surf);
+
+ XMapWindow(x_dpy, win);
+ if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) {
+ printf("Error: eglMakeCurrent() failed\n");
+ return -1;
+ }
+
+ if (printInfo) {
+ printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER));
+ printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION));
+ printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR));
+ }
+
+ init();
+
+ /* Set initial projection/viewing transformation.
+ * We can't be sure we'll get a ConfigureNotify event when the window
+ * first appears.
+ */
+ reshape(winWidth, winHeight);
+
+ event_loop(x_dpy, win, egl_dpy, egl_surf);
+
+ eglDestroyContext(egl_dpy, egl_ctx);
+ eglDestroySurface(egl_dpy, egl_surf);
+ eglTerminate(egl_dpy);
+
+
+ XDestroyWindow(x_dpy, win);
+ XCloseDisplay(x_dpy);
+
+ return 0;
+}
diff --git a/progs/openvg/demos/sp.c b/progs/openvg/demos/sp.c
new file mode 100644
index 0000000000..424ec47d69
--- /dev/null
+++ b/progs/openvg/demos/sp.c
@@ -0,0 +1,537 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/keysym.h>
+
+#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0]))
+
+struct object {
+ VGPath path;
+ VGPaint fill;
+ VGPaint stroke;
+ VGint draw_mode;
+ VGfloat matrix[9];
+ VGfloat stroke_width;
+};
+
+struct character {
+ struct object objects[32];
+ VGint num_objects;
+};
+VGfloat identity_matrix[] = {1, 0, 0, 0, 1, 0, 0, 0, 1};
+
+struct character cartman;
+
+static void add_object_fill(const VGubyte *segments, VGint num_segments,
+ const VGfloat *coords,
+ VGuint color)
+{
+ struct object object;
+
+ object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(object.path, num_segments, segments, coords);
+
+ object.fill = vgCreatePaint();
+ vgSetColor(object.fill, color);
+ memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat));
+ object.draw_mode = VG_FILL_PATH;
+
+ cartman.objects[cartman.num_objects] = object;
+ ++cartman.num_objects;
+}
+
+
+static void add_object_stroke(const VGubyte *segments, VGint num_segments,
+ const VGfloat *coords,
+ VGuint color, VGfloat width)
+{
+ struct object object;
+
+ object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(object.path, num_segments, segments, coords);
+
+ object.stroke = vgCreatePaint();
+ vgSetColor(object.stroke, color);
+ memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat));
+ object.draw_mode = VG_STROKE_PATH;
+ object.stroke_width = width;
+
+ cartman.objects[cartman.num_objects] = object;
+ ++cartman.num_objects;
+}
+
+
+static void add_object_fillm(const VGubyte *segments, VGint num_segments,
+ const VGfloat *coords,
+ VGuint color,
+ VGfloat *matrix)
+{
+ struct object object;
+
+ object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(object.path, num_segments, segments, coords);
+
+ object.fill = vgCreatePaint();
+ vgSetColor(object.fill, color);
+ memcpy(object.matrix, matrix, 9 * sizeof(VGfloat));
+ object.draw_mode = VG_FILL_PATH;
+
+ cartman.objects[cartman.num_objects] = object;
+ ++cartman.num_objects;
+}
+
+
+static void add_object_m(const VGubyte *segments, VGint num_segments,
+ const VGfloat *coords,
+ VGuint fill_color,
+ VGuint stroke_color, VGfloat stroke_width,
+ VGfloat *matrix)
+{
+ struct object object;
+
+ object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(object.path, num_segments, segments, coords);
+ memcpy(object.matrix, matrix, 9 * sizeof(VGfloat));
+
+ object.fill = vgCreatePaint();
+ vgSetColor(object.fill, fill_color);
+ object.draw_mode = VG_FILL_PATH | VG_STROKE_PATH;
+
+ object.stroke = vgCreatePaint();
+ vgSetColor(object.stroke, stroke_color);
+ object.stroke_width = stroke_width;
+
+ cartman.objects[cartman.num_objects] = object;
+ ++cartman.num_objects;
+}
+
+static void init_character()
+{
+ {
+ const VGubyte segments[] = {VG_MOVE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CLOSE_PATH};
+ const VGfloat coords[] = {181.83267, 102.60408,
+ 181.83267,102.60408, 185.53793,114.5749, 186.5355,115.00243,
+ 187.53306,115.42996, 286.0073,115.00243, 286.0073,115.00243,
+ 286.0073,115.00243, 292.70526,103.45914, 290.85263,101.03648,
+ 289.00001,98.61381, 181.54765,102.31906, 181.83267,102.60408
+ };
+ VGuint color = 0x7c4e32ff;
+ add_object_fill(segments, ELEMENTS(segments),
+ coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {188.62208,50.604156,
+ 188.62208,50.604156, 176.73127,60.479579, 170.68509,69.548844,
+ 164.63892,78.618109, 175.11895,79.827344, 175.11895,79.827344,
+ 176.52973,98.368952,
+ 176.52973,98.368952, 189.83131,110.05823, 208.97754,110.25976,
+ 228.12377,110.46131, 244.24691,111.67054, 247.06846,110.25976,
+ 249.89,108.849, 258.95927,106.8336, 260.16851,105.01975,
+ 261.37774,103.2059, 296.84865,106.43053, 297.05019,91.919698,
+ 297.25172,77.408874, 306.11945,64.308824, 282.13628,51.611853,
+ 258.15311,38.914882, 189.2267,49.999539, 188.62208,50.604156
+ };
+
+ VGuint color = 0xe30000ff;
+ add_object_fill(segments, ELEMENTS(segments),
+ coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 68.25, 78.875,
+ 68.25,93.296, 54.642,105, 37.875,105,
+ 21.108,105, 7.5,93.296, 7.5,78.875,
+ 7.5,64.454, 21.108,52.75, 37.875,52.75,
+ 54.642,52.75, 68.25,64.454, 68.25,78.875
+ };
+
+ VGuint color = 0xffe1c4ff;
+ VGfloat matrix[] = {
+ 1.6529, 0, 0,
+ 0, 1.582037, 0,
+ 172.9649,-90.0116, 1
+ };
+ add_object_fillm(segments, ELEMENTS(segments),
+ coords, color, matrix);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 170.14687,71.536958,
+ 173.53626,68.814326, 176.70232,68.971782, 180.55009,71.679467,
+ 184.39785,74.387153, 199.19294,80.036105, 191.52334,86.500482,
+ 189.02942,88.6025, 183.97032,85.787933, 180.26507,86.928011,
+ 178.8737,87.356121, 174.71827,89.783259, 171.8028,87.494856,
+ 166.95426,83.689139, 163.51779,76.861986, 170.14687,71.536958
+ };
+
+ VGuint color = 0xfff200ff;
+ add_object_fill(segments, ELEMENTS(segments),
+ coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 299.83075,66.834136,
+ 299.83075,66.834136, 287.85993,64.69649, 284.15467,72.962055,
+ 280.44942,81.227621, 280.1644,78.234916, 280.1644,79.374994,
+ 280.1644,80.515072, 278.16927,84.077816, 284.86722,83.792796,
+ 291.56518,83.507777, 291.99271,86.785501, 294.84291,86.642991,
+ 297.6931,86.500482, 303.536,85.645423, 303.67851,80.657582,
+ 303.82102,75.66974, 302.68094,65.551548, 299.83075,66.834136
+ };
+
+ VGuint color = 0xfff200ff;
+ add_object_fill(segments, ELEMENTS(segments),
+ coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS
+ };
+ const VGfloat coords[] = {
+ 240.83171,75.81225,
+ 240.83171,75.81225, 241.54426,88.495618, 242.25681,91.488323,
+ 242.96936,94.481028, 240.6892,108.01945, 240.83171,110.01459,
+ 240.97422,112.00973, 240.97422,111.01216, 240.97422,111.01216
+ };
+ VGuint color = 0x000000ff;
+ VGfloat swidth = 1.14007807;
+ add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 83.375, 95.5,
+ 83.375,96.121, 83.067,96.625, 82.6875,96.625,
+ 82.308,96.625, 82,96.121, 82,95.5,
+ 82,94.879, 82.308,94.375, 82.6875,94.375,
+ 83.066677,94.375, 83.374492,94.878024, 83.374999,95.498494,
+ 82.6875,95.5,
+ 83.375,95.5
+ };
+ VGuint fill_color = 0x000000ff;
+ VGuint stroke_color = 0x000000ff;
+ VGfloat swidth = 0.60000002;
+ VGfloat matrix1[] = {
+ 1.140078, 0, 0,
+ 0, 1.140078, 0,
+ 145.4927, -15.10897, 1
+ };
+ VGfloat matrix2[] = {
+ 1.140078,0, 0,
+ 0,1.140078, 0,
+ 144.2814,-27.93485, 1
+ };
+ VGfloat matrix3[] = {
+ 1.140078,0, 0,
+ 0,1.140078, 0,
+ 144.1388,-3.70819, 1
+ };
+ add_object_m(segments, ELEMENTS(segments), coords,
+ fill_color, stroke_color, swidth, matrix1);
+ add_object_m(segments, ELEMENTS(segments), coords,
+ fill_color, stroke_color, swidth, matrix2);
+ add_object_m(segments, ELEMENTS(segments), coords,
+ fill_color, stroke_color, swidth, matrix3);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 179.41001,115.28745,
+ 179.41001,115.28745, 207.48443,109.30204, 236.84144,115.14494,
+ 236.84144,115.14494, 274.74903,109.87208, 291.8502,115.42996,
+ 179.41001,115.28745
+ };
+
+ VGuint color = 0x000000ff;
+ add_object_fill(segments, ELEMENTS(segments),
+ coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 83.792156,68.157364,
+ 83.792156,69.669865, 82.72301,70.897403, 81.40567,70.897403,
+ 80.08833,70.897403, 79.019185,69.669865, 79.019185,68.157364,
+ 79.019185,66.644862, 80.08833,65.417325, 81.40567,65.417325,
+ 82.721887,65.417325, 83.790391,66.642485, 83.792153,68.153696,
+ 81.40567,68.157364,
+ 83.792156,68.157364
+ };
+ VGuint fill_color = 0x000000ff;
+ VGuint stroke_color = 0x000000ff;
+ VGfloat swidth = 0.52891117;
+ VGfloat matrix1[] = {
+ 1.140078,0, 0,
+ 0,1.140078, 0,
+ 145.2489,-15.58714, 1
+ };
+ add_object_m(segments, ELEMENTS(segments), coords,
+ fill_color, stroke_color, swidth, matrix1);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS
+ };
+ const VGfloat coords[] = {
+ 232.28113,66.976646,
+ 232.28113,66.976646, 237.98152,70.539389, 245.39202,66.549116
+ };
+ VGuint color = 0x000000ff;
+ VGfloat swidth = 0.60299999;
+ add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 185.96908,30.061986,
+ 185.96908,30.061986, 187.76995,14.508377, 203.23909,3.7427917,
+ 209.95028,-0.92779696, 219.37764,-4.9841866, 232.1078,-6.00046,
+ 246.13578,-7.1203411, 256.92106,-2.8560739, 264.81774,1.9451947,
+ 280.60485,11.543934, 284.31582,25.937274, 284.08015,26.526452,
+ 283.7266,27.410336, 240.83461,1.9346323, 185.96908,30.061986
+ };
+ VGuint color = 0x8ed8f8ff;
+ add_object_fill(segments, ELEMENTS(segments), coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 185.39542,32.061757,
+ 185.82295,29.211562,
+ 185.82295,29.211562, 234.70379,2.277219, 284.01217,25.078779,
+ 284.86722,27.643954,
+ 284.86722,27.643954, 236.69893,4.5573746, 185.39542,32.061757
+ };
+ VGuint color = 0xfff200ff;
+ add_object_fill(segments, ELEMENTS(segments), coords, color);
+ }
+
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 219.74027,-5.917093,
+ 220.49206,-8.44929, 225.15564,-10.904934, 230.21473,-11.189954,
+ 235.27383,-11.474973, 243.27521,-13.287236, 249.21385,-5.724198,
+ 249.89961,-4.850868, 249.28247,-4.332166, 248.62298,-3.971398,
+ 247.79117,-3.516361, 247.13703,-3.392737, 246.16222,-3.408047,
+ 243.63973,-3.447664, 242.54183,-3.850701, 242.54183,-3.850701,
+ 242.54183,-3.850701, 238.78367,-1.737343, 236.20014,-3.565682,
+ 233.88436,-5.204544, 234.27626,-4.56325, 234.27626,-4.56325,
+ 234.27626,-4.56325, 232.33303,-2.975658, 230.85603,-2.995643,
+ 228.59433,-3.025282, 227.73672,-4.501857, 227.21966,-4.93027,
+ 226.76318,-4.932008, 226.50948,-4.491995, 226.50948,-4.491995,
+ 226.50948,-4.491995, 224.53199,-2.085883, 222.51431,-2.467064,
+ 221.48814,-2.66093, 218.91968,-3.15318, 219.74027,-5.917093
+ };
+ VGuint color = 0xfff200ff;
+ add_object_fill(segments, ELEMENTS(segments), coords, color);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 178.97347,166.06432,
+ 178.97347,181.2154, 168.0245,193.51193, 154.53381,193.51193,
+ 141.04312,193.51193, 130.09416,181.2154, 130.09416,166.06432,
+ 130.09416,150.91323, 141.04312,138.6167, 154.53381,138.6167,
+ 168.0245,138.6167, 178.97347,150.91323, 178.97347,166.06432
+ };
+ VGuint color = 0xffffffff;
+ VGfloat matrix1[] = {
+ 0.466614,-0.23492, 0,
+ 0.108683,0.436638, 0,
+ 134.5504,-0.901632, 1
+ };
+ VGfloat matrix2[] = {
+ -0.466614,-0.23492, 0,
+ -0.108683,0.436638, 0,
+ 338.4496,-0.512182, 1
+ };
+ add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1);
+ add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS,
+ VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH
+ };
+ const VGfloat coords[] = {
+ 123.82758,165.06168,
+ 123.82758,166.79125, 122.59232,168.19497, 121.07029,168.19497,
+ 119.54826,168.19497, 118.313,166.79125, 118.313,165.06168,
+ 118.313,163.3321, 119.54826,161.92839, 121.07029,161.92839,
+ 122.59232,161.92839, 123.82758,163.3321, 123.82758,165.06168
+ };
+ VGuint color = 0x000000ff;
+ VGfloat matrix1[] = {
+ 0.525719,0, 0,
+ 0,0.479931, 0,
+ 178.9702,-43.3532, 1
+ };
+ VGfloat matrix2[] = {
+ 0.525719,0, 0,
+ 0,0.479931, 0,
+ 165.258,-43.46162, 1
+ };
+ add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1);
+ add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2);
+ }
+ {
+ const VGubyte segments[] = {
+ VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS
+ };
+ const VGfloat coords[] = {
+ 197.25,54.5,
+ 197.25,54.5, 211.75,71.5, 229.25,71.5,
+ 246.75,71.5, 261.74147,71.132714, 277.75,50.75
+ };
+ VGuint color = 0x000000ff;
+ VGfloat swidth = 0.60299999;
+ add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth);
+ }
+}
+
+
+static void
+init(void)
+{
+ float clear_color[4] = {1.0, 1.0, 1.0, 1.0};
+ vgSetfv(VG_CLEAR_COLOR, 4, clear_color);
+
+ init_character();
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static int
+key_press(unsigned key)
+{
+ switch(key) {
+ case XK_Right:
+
+ break;
+ case XK_Left:
+ break;
+ case XK_Up:
+ break;
+ case XK_Down:
+ break;
+ case 'a':
+ break;
+ case 's':
+ break;
+ default:
+ break;
+ }
+ return VG_FALSE;
+}
+
+static void
+draw(void)
+{
+ VGint i;
+ VGfloat save_matrix[9];
+
+ vgClear(0, 0, window_width(), window_height());
+
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+ vgLoadIdentity();
+ vgScale(2, 2);
+ vgTranslate(160, 60);
+ vgRotate(180);
+ vgTranslate(-160, -100);
+ vgGetMatrix(save_matrix);
+ for (i = 0; i < cartman.num_objects; ++i) {
+ struct object object = cartman.objects[i];
+ if ((object.draw_mode & VG_STROKE_PATH)) {
+ vgSetf(VG_STROKE_LINE_WIDTH, object.stroke_width);
+ vgSetPaint(object.stroke, VG_STROKE_PATH);
+ }
+ if ((object.draw_mode & VG_FILL_PATH))
+ vgSetPaint(object.fill, VG_FILL_PATH);
+ vgMultMatrix(object.matrix);
+ vgDrawPath(object.path, object.draw_mode);
+ vgLoadMatrix(save_matrix);
+ }
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(400, 400);
+ return run(argc, argv, init, reshape, draw, key_press);
+}
diff --git a/progs/openvg/trivial/Makefile b/progs/openvg/trivial/Makefile
new file mode 100644
index 0000000000..362360e596
--- /dev/null
+++ b/progs/openvg/trivial/Makefile
@@ -0,0 +1,127 @@
+# These programs aren't intended to be included with the normal distro.
+# They're not too interesting but they're good for testing.
+
+TOP = ../../../
+include $(TOP)/configs/current
+
+INCLUDES = -I. -I$(TOP)/include
+LIBS=-L$(TOP)/$(LIB_DIR) -lm -lEGL -lOpenVG -lpthread
+CFLAGS += $(INCLUDES)
+
+HEADERS=eglcommon.h
+
+PROGRAMS = \
+ arc \
+ cap \
+ clear \
+ coord \
+ dash \
+ ellipse \
+ filter \
+ gradorigin \
+ lineto \
+ lingrad \
+ lookup \
+ mask4 \
+ mask \
+ path3 \
+ radialgrad \
+ readpixels \
+ roundedrect \
+ star-nonzero \
+ star-oddeven \
+ stroke2 \
+ stroke \
+ vguarc
+
+
+.c.o:
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+
+
+default: $(PROGRAMS)
+
+
+arc: arc.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+cap: cap.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+clear: clear.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+coord: coord.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+dash: dash.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+ellipse: ellipse.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+filter: filter.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+gradorigin: gradorigin.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+image: image.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+lineto: lineto.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+lingrad: lingrad.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+lookup: lookup.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+mask: mask.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+mask4: mask4.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+path3: path3.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+pattern: pattern.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+radialgrad: radialgrad.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+readpixels: readpixels.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+roundedrect: roundedrect.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+star-nonzero: star-nonzero.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+star-oddeven: star-oddeven.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+stroke: stroke.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+stroke2: stroke2.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+vguarc: vguarc.c eglcommon.o
+ $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@
+
+
+
+eglcommon.o: eglcommon.c $(HEADERS)
+ $(CC) -c $(CFLAGS) eglcommon.c
+
+
+clean:
+ rm -f *.o *~
+ rm -f *.so
+ rm -f $(PROGRAMS)
diff --git a/progs/openvg/trivial/arc.c b/progs/openvg/trivial/arc.c
new file mode 100644
index 0000000000..db686bea6b
--- /dev/null
+++ b/progs/openvg/trivial/arc.c
@@ -0,0 +1,139 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <math.h>
+
+const VGfloat clear_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5};
+
+VGPath vgPath;
+
+static void ellipse(VGPath vgPath, VGfloat rx, VGfloat ry, VGfloat angle)
+{
+ static const VGubyte cmd[] =
+ { VG_MOVE_TO_ABS, VG_SCCWARC_TO_REL, VG_SCCWARC_TO_REL, VG_CLOSE_PATH };
+
+ VGfloat val[12];
+ VGfloat c = cos(angle) * rx;
+ VGfloat s = sin(angle) * rx;
+
+ val[0] = c;
+ val[1] = s;
+ val[2] = rx;
+ val[3] = ry;
+ val[4] = angle;
+ val[5] = -2.0f * c;
+ val[6] = -2.0f * s;
+ val[7] = rx;
+ val[8] = ry;
+ val[9] = angle;
+ val[10] = 2.0f * c;
+ val[11] = 2.0f * s;
+
+ vgClearPath(vgPath, VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(vgPath, sizeof(cmd), cmd, val);
+ vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH);
+}
+
+static void
+init(void)
+{
+ VGPaint vgPaint;
+
+ vgSetfv(VG_CLEAR_COLOR, 4, clear_color);
+ vgPath = vgCreatePath(VG_PATH_FORMAT_STANDARD,
+ VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0,
+ VG_PATH_CAPABILITY_ALL);
+
+ vgPaint = vgCreatePaint();
+ vgSetParameteri(vgPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+ vgSetColor(vgPaint, 0x00ff00ff);
+ vgSetPaint(vgPaint, VG_FILL_PATH);
+
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+ vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER);
+ vgSetf(VG_STROKE_LINE_WIDTH, 2.0f);
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_MITER);
+ vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+
+#if 0
+ vgLoadIdentity();
+ vgTranslate(40.0f, 24.0f);
+ vgScale(0.61804f, 0.61804f);
+ vgShear(-1.0f, 0.0f);
+ vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH);
+#else
+
+ /* row 1, col 1: Identity transform. */
+
+ vgLoadIdentity();
+ vgTranslate(8.0f, 8.0f);
+ ellipse(vgPath, 4.0f, 4.0f, 0.0f);
+
+ /* row 1, col 2: 10^3 horizontal squeeze. */
+
+ vgLoadIdentity();
+ vgTranslate(24.0f, 8.0f);
+ vgScale(1.0e-3f, 1.0f);
+ ellipse(vgPath, 4.0e3f, 4.0f, 0.0f);
+
+ /* row 1, col 3: 10^6 horizontal squeeze. */
+
+ vgLoadIdentity();
+ vgTranslate(40.0f, 8.0f);
+ vgScale(1.0e-6f, 1.0f);
+ ellipse(vgPath, 4.0e6f, 4.0f, 0.0f);
+
+ /* row 1, col 4: 10^9 horizontal squeeze. */
+
+ vgLoadIdentity();
+ vgTranslate(56.0f, 8.0f);
+ vgScale(1.0e-9f, 1.0f);
+ ellipse(vgPath, 4.0e9f, 4.0f, 0.0f);
+
+ /* row 2, col 1: 10^3 vertical squeeze. */
+
+ vgLoadIdentity();
+ vgTranslate(8.0f, 24.0f);
+ vgScale(1.0f, 1.0e-3f);
+ ellipse(vgPath, 4.0f, 4.0e3f, 0.0f);
+
+ /* row 2, col 2: Shear 0. */
+
+ vgLoadIdentity();
+ vgTranslate(24.0f, 24.0f);
+ vgShear(0.0f, 0.0f);
+ ellipse(vgPath, 4.0f, 4.0f, 0.0f);
+
+ /* row 2, col 3: Horizontal shear -1. */
+
+ vgLoadIdentity();
+ vgTranslate(40.0f, 24.0f);
+ vgScale(0.61804f, 0.61804f);
+ vgShear(-1.0f, 0.0f);
+ ellipse(vgPath, 10.47213f, 4.0f, 31.717f);
+#endif
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/cap.c b/progs/openvg/trivial/cap.c
new file mode 100644
index 0000000000..cd84fe3ac0
--- /dev/null
+++ b/progs/openvg/trivial/cap.c
@@ -0,0 +1,75 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+static void
+init(void)
+{
+
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+const int subtest = 0;
+static void
+draw(void)
+{
+ VGPath line;
+ VGPaint fillPaint;
+ VGubyte lineCommands[3] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS};
+ VGfloat lineCoords[] = {-2.0f,-1.0f, 0.0f,0.0f, -1.0f, -2.0f};
+ VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */
+ VGfloat fillColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */
+ //VGfloat testRadius = 60.0f;
+ VGfloat testRadius = 10.0f;
+ int WINDSIZEX = window_width();
+ int WINDSIZEY = window_height();
+
+ line = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+ fillPaint = vgCreatePaint();
+
+ vgSetf(VG_STROKE_LINE_WIDTH, 1.0f);
+ //vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_ROUND);
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
+ //vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL);
+
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_BETTER);
+
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+ vgLoadIdentity();
+ vgTranslate(60, 60);
+ vgScale(testRadius * 2, testRadius * 2);
+
+ vgAppendPathData(line, 3, lineCommands, lineCoords);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+
+ vgSetPaint(fillPaint, VG_STROKE_PATH);
+
+ vgSetParameterfv(fillPaint, VG_PAINT_COLOR, 4, fillColor);
+ vgSetParameteri( fillPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+
+ vgClear(0, 0, WINDSIZEX, WINDSIZEY);
+ vgDrawPath(line, VG_STROKE_PATH);
+
+ vgDestroyPath(line);
+ vgDestroyPaint(fillPaint);
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(100, 100);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/clear.c b/progs/openvg/trivial/clear.c
new file mode 100644
index 0000000000..efb6bf4182
--- /dev/null
+++ b/progs/openvg/trivial/clear.c
@@ -0,0 +1,42 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <stdio.h>
+
+float red_color[4] = {1.0, 0.0, 0.0, 1.0};
+float blue_color[4] = {0.0, 0.0, 1.0, 1.0};
+
+static void
+init(void)
+{
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ VGint scissor[4] = {100, 100, 25, 25};
+ vgSetfv(VG_CLEAR_COLOR, 4, red_color);
+ vgClear(0, 0, window_width(), window_height());
+
+ vgSetfv(VG_CLEAR_COLOR, 4, blue_color);
+ vgClear(50, 50, 50, 50);
+
+ //vgSetiv(VG_SCISSOR_RECTS, 4, scissor);
+ //vgSeti(VG_SCISSORING, VG_TRUE);
+ vgCopyPixels(100, 100, 50, 50, 50, 50);
+ vgClear(150, 150, 50, 50);
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/coord.c b/progs/openvg/trivial/coord.c
new file mode 100644
index 0000000000..81f7cb6fc9
--- /dev/null
+++ b/progs/openvg/trivial/coord.c
@@ -0,0 +1,66 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+
+static void
+init(void)
+{
+ /* Absent VG_CLOSE_PATH */
+ VGubyte commands[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS,
+ VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS};
+ VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */
+ VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */
+ VGfloat coords[] = {-16.0f, -16.0f, 0.0f, -16.0f, 0.0f, 0.0f, -16.0f, 0.0f,
+ 0.0f, 0.0f, 16.0f, 0.0f, 16.0f, 16.0f, 0.0f, 16.0f};
+
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+ vgLoadIdentity();
+ vgTranslate(32.0f, 32.0f);
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0,
+ VG_PATH_CAPABILITY_ALL);
+ if (path == VG_INVALID_HANDLE)
+ return;
+ fill = vgCreatePaint();
+ if (fill == VG_INVALID_HANDLE) {
+ vgDestroyPath(path);
+ return;
+ }
+ vgAppendPathData(path, 8, commands, coords);
+ vgSetPaint(fill, VG_FILL_PATH);
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, fillColor);
+ vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/dash.c b/progs/openvg/trivial/dash.c
new file mode 100644
index 0000000000..2e84ddbd4e
--- /dev/null
+++ b/progs/openvg/trivial/dash.c
@@ -0,0 +1,95 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <X11/keysym.h>
+#include <stdio.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+VGint cap_style = VG_CAP_BUTT;
+
+static void
+init(void)
+{
+ static const VGubyte cmds[] = {VG_MOVE_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_LINE_TO_ABS
+ };
+#if 1
+ static const VGfloat coords[] = {100, 100, 150, 100,
+ 150, 200
+ };
+#else
+ static const VGfloat coords[] = {100, 20, 100, 220,
+ };
+#endif
+ VGfloat dash_pattern[2] = { 20.f, 20.f };
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 3, cmds, coords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSetf(VG_STROKE_LINE_WIDTH, 20);
+ vgSeti(VG_STROKE_CAP_STYLE, cap_style);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
+ vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern);
+ vgSetf(VG_STROKE_DASH_PHASE, 0.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_STROKE_PATH);
+
+ vgFlush();
+}
+
+static int key_press(unsigned key)
+{
+ switch(key) {
+ case XK_c:
+ case XK_C:
+ ++cap_style;
+ if (cap_style > VG_CAP_SQUARE)
+ cap_style = VG_CAP_BUTT;
+ switch(cap_style) {
+ case VG_CAP_BUTT:
+ fprintf(stderr, "Cap style 'butt'\n");
+ break;
+ case VG_CAP_ROUND:
+ fprintf(stderr, "Cap style 'round'\n");
+ break;
+ case VG_CAP_SQUARE:
+ fprintf(stderr, "Cap style 'square'\n");
+ break;
+ }
+ vgSeti(VG_STROKE_CAP_STYLE, cap_style);
+ break;
+ default:
+ break;
+ }
+
+ return VG_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, key_press);
+}
diff --git a/progs/openvg/trivial/eglcommon.c b/progs/openvg/trivial/eglcommon.c
new file mode 100644
index 0000000000..bacd5685d7
--- /dev/null
+++ b/progs/openvg/trivial/eglcommon.c
@@ -0,0 +1,288 @@
+#include "eglcommon.h"
+
+
+#include <assert.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <VG/openvg.h> /* using full OpenGL for now */
+#include <GLES/egl.h>
+
+
+static init_func init = 0;
+static draw_func draw = 0;
+static reshape_func reshape = 0;
+static key_func keyPress = 0;
+static VGint width = 300, height = 300;
+
+
+void set_window_size(int w, int h)
+{
+ width = w;
+ height = h;
+}
+
+/*
+ * Create an RGB, double-buffered X window.
+ * Return the window and context handles.
+ */
+static void
+make_x_window(Display *x_dpy, EGLDisplay egl_dpy,
+ const char *name,
+ int x, int y, int width, int height,
+ Window *winRet,
+ EGLContext *ctxRet,
+ EGLSurface *surfRet)
+{
+ static const EGLint attribs[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+ };
+
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ Window win;
+ XVisualInfo *visInfo, visTemplate;
+ int num_visuals;
+ EGLContext ctx;
+ EGLConfig config;
+ EGLint num_configs;
+ EGLint vid;
+
+ scrnum = DefaultScreen( x_dpy );
+ root = RootWindow( x_dpy, scrnum );
+
+ if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) {
+ printf("Error: couldn't get an EGL visual config\n");
+ exit(1);
+ }
+
+ assert(config);
+ assert(num_configs > 0);
+
+ if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
+ printf("Error: eglGetConfigAttrib() failed\n");
+ exit(1);
+ }
+
+ /* The X window visual must match the EGL config */
+ visTemplate.visualid = vid;
+ visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);
+ if (!visInfo) {
+ printf("Error: couldn't get X visual\n");
+ exit(1);
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ win = XCreateWindow( x_dpy, root, 0, 0, width, height,
+ 0, visInfo->depth, InputOutput,
+ visInfo->visual, mask, &attr );
+
+ /* set hints and properties */
+ {
+ XSizeHints sizehints;
+ sizehints.x = x;
+ sizehints.y = y;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(x_dpy, win, &sizehints);
+ XSetStandardProperties(x_dpy, win, name, name,
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ eglBindAPI(EGL_OPENVG_API);
+
+ ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL );
+ if (!ctx) {
+ printf("Error: eglCreateContext failed\n");
+ exit(1);
+ }
+
+ *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL);
+
+ if (!*surfRet) {
+ printf("Error: eglCreateWindowSurface failed\n");
+ exit(1);
+ }
+
+ XFree(visInfo);
+
+ *winRet = win;
+ *ctxRet = ctx;
+}
+
+static void
+event_loop(Display *dpy, Window win,
+ EGLDisplay egl_dpy, EGLSurface egl_surf)
+{
+ while (1) {
+ int redraw = 0;
+ XEvent event;
+
+ XNextEvent(dpy, &event);
+
+ switch (event.type) {
+ case Expose:
+ redraw = 1;
+ break;
+ case ConfigureNotify:
+ if (reshape) {
+ width = event.xconfigure.width;
+ height = event.xconfigure.height;
+ reshape(event.xconfigure.width, event.xconfigure.height);
+ }
+ break;
+ case KeyPress:
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ if (!keyPress || !keyPress(code)) {
+ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return;
+ }
+ }
+ }
+ redraw = 1;
+ break;
+ default:
+ ; /*no-op*/
+ }
+
+ if (redraw) {
+ draw();
+ eglSwapBuffers(egl_dpy, egl_surf);
+ }
+ }
+}
+
+int window_width(void)
+{
+ return width;
+}
+
+int window_height(void)
+{
+ return height;
+}
+
+static void
+usage(void)
+{
+ printf("Usage:\n");
+ printf(" -display <displayname> set the display to run on\n");
+ printf(" -info display OpenGL renderer info\n");
+}
+
+int run(int argc, char **argv,
+ init_func init_f,
+ reshape_func resh_f,
+ draw_func draw_f,
+ key_func key_f)
+{
+ const int winWidth = width, winHeight = height;
+ Display *x_dpy;
+ Window win;
+ EGLSurface egl_surf;
+ EGLContext egl_ctx;
+ EGLDisplay egl_dpy;
+ char *dpyName = NULL;
+ GLboolean printInfo = GL_FALSE;
+ EGLint egl_major, egl_minor;
+ int i;
+ const char *s;
+
+ init = init_f;
+ draw = draw_f;
+ reshape = resh_f;
+ keyPress = key_f;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-display") == 0) {
+ dpyName = argv[i+1];
+ i++;
+ }
+ else if (strcmp(argv[i], "-info") == 0) {
+ printInfo = GL_TRUE;
+ }
+ }
+
+ x_dpy = XOpenDisplay(dpyName);
+ if (!x_dpy) {
+ printf("Error: couldn't open display %s\n",
+ dpyName ? dpyName : getenv("DISPLAY"));
+ return -1;
+ }
+
+ egl_dpy = eglGetDisplay(x_dpy);
+ if (!egl_dpy) {
+ printf("Error: eglGetDisplay() failed\n");
+ return -1;
+ }
+
+ if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) {
+ printf("Error: eglInitialize() failed\n");
+ return -1;
+ }
+
+ s = eglQueryString(egl_dpy, EGL_VERSION);
+ printf("EGL_VERSION = %s\n", s);
+
+ make_x_window(x_dpy, egl_dpy,
+ "OpenVG Example", 0, 0, winWidth, winHeight,
+ &win, &egl_ctx, &egl_surf);
+
+ XMapWindow(x_dpy, win);
+ if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) {
+ printf("Error: eglMakeCurrent() failed\n");
+ return -1;
+ }
+
+ if (printInfo) {
+ printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER));
+ printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION));
+ printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR));
+ }
+
+ if (init)
+ init();
+
+ /* Set initial projection/viewing transformation.
+ * We can't be sure we'll get a ConfigureNotify event when the window
+ * first appears.
+ */
+ if (reshape)
+ reshape(winWidth, winHeight);
+
+ event_loop(x_dpy, win, egl_dpy, egl_surf);
+
+ eglMakeCurrent(egl_dpy, 0, 0, 0);
+ eglDestroyContext(egl_dpy, egl_ctx);
+ eglDestroySurface(egl_dpy, egl_surf);
+ eglTerminate(egl_dpy);
+
+
+ XDestroyWindow(x_dpy, win);
+ XCloseDisplay(x_dpy);
+
+ return 0;
+}
+
diff --git a/progs/openvg/trivial/eglcommon.h b/progs/openvg/trivial/eglcommon.h
new file mode 100644
index 0000000000..958dae9f98
--- /dev/null
+++ b/progs/openvg/trivial/eglcommon.h
@@ -0,0 +1,20 @@
+#ifndef EGLCOMMON_H
+#define EGLCOMMON_H
+
+typedef void (*init_func)();
+typedef void (*reshape_func)(int, int);
+typedef void (*draw_func)();
+typedef int (*key_func)(unsigned key);
+
+
+void set_window_size(int width, int height);
+int window_width(void);
+int window_height(void);
+
+int run(int argc, char **argv,
+ init_func init,
+ reshape_func resh,
+ draw_func draw,
+ key_func key);
+
+#endif
diff --git a/progs/openvg/trivial/ellipse.c b/progs/openvg/trivial/ellipse.c
new file mode 100644
index 0000000000..4c7d4904f8
--- /dev/null
+++ b/progs/openvg/trivial/ellipse.c
@@ -0,0 +1,84 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <math.h>
+#include <stdlib.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.0, 0.0, 0.0, 1.0};
+
+VGPath path;
+VGPaint paint;
+
+static void
+init(void)
+{
+ VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */
+ VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */
+ static const VGubyte segments[4] = {VG_MOVE_TO_ABS,
+ VG_SCCWARC_TO_ABS,
+ VG_SCCWARC_TO_ABS,
+ VG_CLOSE_PATH};
+ VGfloat data[12];
+ const VGfloat cx = 0, cy=29, width=80, height=40;
+ const VGfloat hw = width * 0.5f;
+ const VGfloat hh = height * 0.5f;
+
+ data[0] = cx + hw;
+ data[1] = cy;
+ data[2] = hw;
+ data[3] = hh;
+ data[4] = 0;
+ data[5] = cx - hw;
+ data[6] = cy;
+ data[7] = hw;
+ data[8] = hh;
+ data[9] = 0;
+ data[10] = data[0];
+ data[11] = cy;
+
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+ if (path == VG_INVALID_HANDLE) {
+ return;
+ }
+ paint = vgCreatePaint();
+ if (paint == VG_INVALID_HANDLE) {
+ vgDestroyPath(path);
+ return;
+ }
+
+ vgAppendPathData(path, 4, segments, data);
+ vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor);
+ vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+ vgSetPaint(paint, VG_FILL_PATH);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgLoadIdentity();
+ vgTranslate(50, 21);
+ vgDrawPath(path, VG_FILL_PATH);
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(100, 100);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/filter.c b/progs/openvg/trivial/filter.c
new file mode 100644
index 0000000000..d96257a933
--- /dev/null
+++ b/progs/openvg/trivial/filter.c
@@ -0,0 +1,107 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5};
+
+VGImage srcImg;
+VGImage dstImg;
+
+VGPaint fill;
+
+VGfloat bgCol[4] = {0.906f, 0.914f, 0.761f, 1.0f};
+
+static void
+init(void)
+{
+ VGfloat red[4];
+ VGfloat grey[4];
+ VGfloat orange[4];
+ VGfloat blue[4];
+ VGfloat black[4];
+ VGfloat white[4];
+ VGshort transKernel[49] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+ red[0] = 0.6710f;
+ red[1] = 0.1060f;
+ red[2] = 0.1330f;
+ red[3] = 1.0f;
+
+ grey[0] = 0.6347f;
+ grey[1] = 0.6561f;
+ grey[2] = 0.6057f;
+ grey[3] = 1.0f;
+
+ orange[0] = 1.0000f;
+ orange[1] = 0.8227f;
+ orange[2] = 0.5057f;
+ orange[3] = 1.0f;
+
+ blue[0] = 0.0000f;
+ blue[1] = 0.6908f;
+ blue[2] = 0.8595f;
+ blue[3] = 1.0f;
+
+ black[0] = 0;
+ black[1] = 0;
+ black[2] = 0;
+ black[3] = 1.0f;
+
+ white[0] = 1;
+ white[1] = 1;
+ white[2] = 1;
+ white[3] = 1.0f;
+
+ vgSetfv(VG_TILE_FILL_COLOR, 4, blue);
+
+ vgSeti(VG_FILTER_CHANNEL_MASK, 14);
+
+ /* Setup images */
+ srcImg = vgCreateImage(VG_sRGBA_8888, 32, 32,
+ VG_IMAGE_QUALITY_NONANTIALIASED);
+ dstImg = vgCreateImage(VG_sRGBA_8888, 32, 32,
+ VG_IMAGE_QUALITY_NONANTIALIASED);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, black);
+ vgClearImage(srcImg, 0, 0, 32, 32);
+ vgSetfv(VG_CLEAR_COLOR, 4, red);
+ vgClearImage(srcImg, 3, 3, 27, 27);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, orange);
+ vgClearImage(dstImg, 0, 0, 32, 32);
+
+ transKernel[8] = 1;
+ vgConvolve(dstImg, srcImg, 3, 3, 3, 0, transKernel,
+ 1, 0, VG_TILE_FILL);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgSetfv(VG_CLEAR_COLOR, 4, bgCol);
+ vgClear(0, 0, window_width(), window_height());
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
+ vgLoadIdentity();
+ vgTranslate(10, 10);
+ vgDrawImage(dstImg);
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/gradorigin.c b/progs/openvg/trivial/gradorigin.c
new file mode 100644
index 0000000000..b376263fe5
--- /dev/null
+++ b/progs/openvg/trivial/gradorigin.c
@@ -0,0 +1,98 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <stdio.h>
+#include <string.h>
+
+static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+
+static VGPath path;
+static VGPaint fill;
+
+VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD;
+
+static void
+init(void)
+{
+ VGubyte commands[5] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH};
+ VGfloat coords[8] = {0.0f,0.0f, 32.0f,0.0f, 32.0f,32.0f, 0.0f,32.0f };
+
+ VGfloat rampStop[20] = {-0.5f, 1.0f, 1.0f, 1.0f, 1.0f,
+ 0.25f, 1.0f, 0.0f, 0.0f, 1.0f,
+ 0.75f, 0.0f, 0.0f, 1.0f, 1.0f,
+ 1.5f, 0.0f, 0.0f, 0.0f, 0.0f};
+
+ VGfloat defaultColor[] = {1.0f, 1.0f, 1.0f, 1.0f};
+ VGfloat linearGradient[4] = {0.0f, 0.0f, 0.0f, 32.0f};
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+ if (path == VG_INVALID_HANDLE)
+ return;
+
+ fill = vgCreatePaint();
+ if (fill == VG_INVALID_HANDLE) {
+ vgDestroyPath(path);
+ return;
+ }
+
+ vgSetfv(VG_CLEAR_COLOR, 4, defaultColor);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+
+ vgAppendPathData(path, 5, commands, coords);
+
+ vgSetPaint(fill, VG_FILL_PATH);
+ vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT);
+ vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE,
+ VG_COLOR_RAMP_SPREAD_REPEAT);
+ vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient);
+ vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ if (argc > 1) {
+ const char *arg = argv[1];
+ if (!strcmp("-pad", arg))
+ spread = VG_COLOR_RAMP_SPREAD_PAD;
+ else if (!strcmp("-repeat", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REPEAT;
+ else if (!strcmp("-reflect", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REFLECT;
+ }
+
+ switch(spread) {
+ case VG_COLOR_RAMP_SPREAD_PAD:
+ printf("Using spread mode: pad\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REPEAT:
+ printf("Using spread mode: repeat\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REFLECT:
+ printf("Using spread mode: reflect\n");
+ }
+
+ set_window_size(200, 200);
+
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/lineto.c b/progs/openvg/trivial/lineto.c
new file mode 100644
index 0000000000..94e2981811
--- /dev/null
+++ b/progs/openvg/trivial/lineto.c
@@ -0,0 +1,56 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+
+static void
+init(void)
+{
+ static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f};
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 5, sqrCmds, sqrCoords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSetf(VG_STROKE_LINE_WIDTH, 10);
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
+ vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_STROKE_PAINT_TO_USER);
+ vgLoadIdentity();
+ vgScale(2.25, 2.25);
+ vgDrawPath(path, VG_STROKE_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/lingrad.c b/progs/openvg/trivial/lingrad.c
new file mode 100644
index 0000000000..bcaad1f101
--- /dev/null
+++ b/progs/openvg/trivial/lingrad.c
@@ -0,0 +1,87 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <stdio.h>
+#include <string.h>
+
+static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+
+static VGPath path;
+static VGPaint fill;
+
+VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD;
+
+static void
+init(void)
+{
+ static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f};
+
+ VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f,
+ 0.33f, 1.0f, 0.0f, 0.0f, 1.0f,
+ 0.66f, 0.0f, 1.0f, 0.0f, 1.0f,
+ 1.00f, 0.0f, 0.0f, 1.0f, 1.0f};
+ VGfloat linearGradient[4] = {100.0f, 100.0f, 300.0f, 300.0f};
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 5, sqrCmds, sqrCoords);
+
+ fill = vgCreatePaint();
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT);
+ vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread);
+ vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient);
+ vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ if (argc > 1) {
+ const char *arg = argv[1];
+ if (!strcmp("-pad", arg))
+ spread = VG_COLOR_RAMP_SPREAD_PAD;
+ else if (!strcmp("-repeat", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REPEAT;
+ else if (!strcmp("-reflect", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REFLECT;
+ }
+
+ switch(spread) {
+ case VG_COLOR_RAMP_SPREAD_PAD:
+ printf("Using spread mode: pad\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REPEAT:
+ printf("Using spread mode: repeat\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REFLECT:
+ printf("Using spread mode: reflect\n");
+ }
+
+ set_window_size(400, 400);
+
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/lookup.c b/progs/openvg/trivial/lookup.c
new file mode 100644
index 0000000000..a103ba4488
--- /dev/null
+++ b/progs/openvg/trivial/lookup.c
@@ -0,0 +1,71 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5};
+VGfloat clearColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */
+VGImage parent;
+
+VGPaint fill;
+
+static void
+init(void)
+{
+ VGImage child1, child2;
+ VGubyte *data;
+ VGuint LUT[256];
+ VGint i;
+
+ data = (VGubyte *)malloc(sizeof(VGubyte)*window_width()*window_height());
+
+ for (i=0;i<window_width()*window_height();i++) {
+ data[i] = 0x00;
+ }
+
+ for (i=0; i<256; i++) {
+ if ( i == 0 )
+ LUT[0] = 0xFFFFFFFF;
+ else
+ LUT[i] = 0xFF00FFFF;
+ }
+
+ parent = vgCreateImage( VG_A_8, 64, 64, VG_IMAGE_QUALITY_NONANTIALIASED );
+
+ vgImageSubData(parent, data, window_width(), VG_A_8, 0, 0,
+ window_width(), window_height());
+ child1 = vgChildImage(parent, 0, 0, 32, 64);
+ child2 = vgChildImage(parent, 32, 0, 32, 64);
+
+ vgLookupSingle(child2, child1, LUT, VG_GREEN, VG_FALSE, VG_TRUE);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+ vgClear(0, 0, window_width(), window_height());
+ //vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
+ //vgLoadIdentity();
+ //vgTranslate(10, 10);
+ vgDrawImage(parent);
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/mask.c b/progs/openvg/trivial/mask.c
new file mode 100644
index 0000000000..e5c00c5699
--- /dev/null
+++ b/progs/openvg/trivial/mask.c
@@ -0,0 +1,58 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+
+static void
+init(void)
+{
+ static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f};
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 5, sqrCmds, sqrCoords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSetf(VG_STROKE_LINE_WIDTH, 10);
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
+ vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+
+ vgSeti(VG_MASKING, VG_TRUE);
+
+ vgMask(VG_INVALID_HANDLE, VG_CLEAR_MASK,
+ 25, 25, 100, 100);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/mask4.c b/progs/openvg/trivial/mask4.c
new file mode 100644
index 0000000000..fe6db39648
--- /dev/null
+++ b/progs/openvg/trivial/mask4.c
@@ -0,0 +1,132 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+
+#include <X11/keysym.h>
+
+//VGint x_pos = -10, y_pos = -10;
+VGint x_pos = 0, y_pos = 4;
+VGint img_width = 120, img_height = 120;
+
+static void RectToPath(VGPath path, VGfloat x, VGfloat y, VGfloat width, VGfloat height)
+{
+ static const VGubyte segments[5] = {VG_MOVE_TO_ABS,
+ VG_HLINE_TO_ABS,
+ VG_VLINE_TO_ABS,
+ VG_HLINE_TO_ABS,
+ VG_CLOSE_PATH};
+ VGfloat data[5];
+
+ data[0] = x;
+ data[1] = y;
+ data[2] = x + width;
+ data[3] = y + height;
+ data[4] = x;
+
+ vgAppendPathData(path, 5, segments, data);
+}
+
+static void
+init(void)
+{
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+int key_press(unsigned key)
+{
+ switch(key) {
+ case XK_Right:
+ x_pos +=1;
+ break;
+ case XK_Left:
+ x_pos -=1;
+ break;
+ case XK_Up:
+ y_pos +=1;
+ break;
+ case XK_Down:
+ y_pos -=1;
+ break;
+ case 'a':
+ img_width -= 5;
+ img_height -= 5;
+ break;
+ case 's':
+ img_width += 5;
+ img_height += 5;
+ break;
+ default:
+ break;
+ }
+ fprintf(stderr, "Posi = %dx%d\n", x_pos, y_pos);
+ fprintf(stderr, "Size = %dx%d\n", img_width, img_height);
+ return VG_FALSE;
+}
+
+static void
+draw(void)
+{
+ VGint WINDSIZEX = window_width();
+ VGint WINDSIZEY = window_height();
+
+ VGPaint fill;
+ VGPath box;
+ VGfloat color[4] = {1.f, 0.f, 0.f, 1.f};
+ VGfloat bgCol[4] = {0.7f, 0.7f, 0.7f, 1.0f};
+ VGfloat transCol[4] = {0.f, 0.f, 0.f, 0.f};
+ VGImage image = vgCreateImage(VG_sRGBA_8888, img_width, img_height,
+ VG_IMAGE_QUALITY_NONANTIALIASED);
+
+ /* Background clear */
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ box = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL);
+ /* Rectangle to cover completely 16x16 pixel area. */
+ RectToPath(box, 0, 0, 64, 64);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, transCol);
+ vgClearImage(image, 0, 0, img_width, img_height);
+ vgSetfv(VG_CLEAR_COLOR, 4, color);
+ vgClearImage(image, 10, 10, 12, 12);
+ //vgImageSubData(image, pukki_64x64_data, pukki_64x64_stride,
+ // VG_sRGBA_8888, 0, 0, 32, 32);
+ vgSeti(VG_MASKING, VG_TRUE);
+ vgLoadIdentity();
+
+ vgSetfv(VG_CLEAR_COLOR, 4, bgCol);
+ vgClear(0, 0, WINDSIZEX, WINDSIZEY);
+
+
+ vgMask(image, VG_FILL_MASK, 0, 0, window_width(), window_height());
+ vgMask(image, VG_SET_MASK, x_pos, y_pos, 100, 100);
+
+ vgDrawPath(box, VG_FILL_PATH);
+
+ //vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
+ //vgTranslate(-10, -10);
+ //vgDrawImage(image);
+
+
+ vgDestroyPaint(fill);
+ vgDestroyPath(box);
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, key_press);
+}
diff --git a/progs/openvg/trivial/path3.c b/progs/openvg/trivial/path3.c
new file mode 100644
index 0000000000..5ce600f65a
--- /dev/null
+++ b/progs/openvg/trivial/path3.c
@@ -0,0 +1,77 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+
+static void
+init(void)
+{
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+
+static void
+draw(void)
+{
+ VGint WINDSIZEX = window_width();
+ VGint WINDSIZEY = window_height();
+ VGPath path;
+ VGPaint paint;
+
+ VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 0.0f};/* white color */
+ VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */
+
+#if 1
+ VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_LCWARC_TO_ABS, VG_SCWARC_TO_ABS, VG_CLOSE_PATH};
+#else
+ VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_SCCWARC_TO_ABS, VG_LCCWARC_TO_ABS,VG_CLOSE_PATH};
+#endif
+ VGfloat coords[] = {32.0f, 0.0f,
+ -32.0f, -32.0f, 0.0f, 64.0f, 32.0f,
+ -32.0f, -32.0f, 0.0f, 32.0f, 0.0f};
+
+
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+ vgClear(0, 0, WINDSIZEX, WINDSIZEY);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+
+ vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+ vgLoadIdentity();
+ //vgTranslate(32.0f, 32.0f);
+
+ path = vgCreatePath( VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL );
+ if ( path == VG_INVALID_HANDLE ) {
+ return;
+ }
+ paint = vgCreatePaint();
+ if ( paint == VG_INVALID_HANDLE ) {
+ vgDestroyPath(path);
+ return;
+ }
+
+ vgAppendPathData(path, 4, commands, coords);
+ vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor);
+ vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+ vgSetPaint(paint, VG_FILL_PATH);
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgDestroyPath(path);
+ vgDestroyPaint(paint);
+}
+
+
+int main(int argc, char **argv)
+{
+ set_window_size(64, 64);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/radialgrad.c b/progs/openvg/trivial/radialgrad.c
new file mode 100644
index 0000000000..cf3b1d522d
--- /dev/null
+++ b/progs/openvg/trivial/radialgrad.c
@@ -0,0 +1,99 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <stdio.h>
+#include <string.h>
+
+static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+
+static VGPath path;
+static VGPaint fill;
+
+
+VGfloat centeredGradient[5] = {200.0f, 200.0f, 200.0f, 200.0f, 100};
+VGfloat noncenteredGradient[5] = {200.0f, 200.0f, 250.0f, 250.0f, 100};
+VGfloat *radialGradient = centeredGradient;
+
+VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD;
+
+static void
+init(void)
+{
+ static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f};
+
+ VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f,
+ 0.33f, 1.0f, 0.0f, 0.0f, 1.0f,
+ 0.66f, 0.0f, 1.0f, 0.0f, 1.0f,
+ 1.00f, 0.0f, 0.0f, 1.0f, 1.0f};
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 5, sqrCmds, sqrCoords);
+
+ fill = vgCreatePaint();
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_RADIAL_GRADIENT);
+ vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread);
+ vgSetParameterfv(fill, VG_PAINT_RADIAL_GRADIENT, 5, radialGradient);
+ vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ VGint i;
+ for (i = 1; i < argc; ++i) {
+ const char *arg = argv[i];
+ if (!strcmp("-pad", arg))
+ spread = VG_COLOR_RAMP_SPREAD_PAD;
+ else if (!strcmp("-repeat", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REPEAT;
+ else if (!strcmp("-reflect", arg))
+ spread = VG_COLOR_RAMP_SPREAD_REFLECT;
+ else if (!strcmp("-center", arg)) {
+ printf("Centered radial gradient\n");
+ radialGradient = centeredGradient;
+ } else if (!strcmp("-noncenter", arg)) {
+ printf("Non centered radial gradient\n");
+ radialGradient = noncenteredGradient;
+ }
+ }
+
+ switch(spread) {
+ case VG_COLOR_RAMP_SPREAD_PAD:
+ printf("Using spread mode: pad\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REPEAT:
+ printf("Using spread mode: repeat\n");
+ break;
+ case VG_COLOR_RAMP_SPREAD_REFLECT:
+ printf("Using spread mode: reflect\n");
+ }
+
+ set_window_size(400, 400);
+
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/readpixels.c b/progs/openvg/trivial/readpixels.c
new file mode 100644
index 0000000000..c8e286db9a
--- /dev/null
+++ b/progs/openvg/trivial/readpixels.c
@@ -0,0 +1,75 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+float red_color[4] = {1.0, 0.0, 0.0, 1.0};
+float blue_color[4] = {0.0, 0.0, 1.0, 1.0};
+VGint *data;
+
+static void
+init(void)
+{
+ data = malloc(sizeof(VGint)*2048*2048);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ static const VGint red_pixel = 255 << 24 | 255 << 16 | 0 << 8 | 0;
+ static const VGint blue_pixel = 255 << 24 | 0 << 16 | 0 << 8 | 255;
+ VGint i;
+
+ vgSetfv(VG_CLEAR_COLOR, 4, red_color);
+ vgClear(0, 0, window_width(), window_height());
+ vgFlush();
+
+ memset(data, 0, window_width() * window_height() * sizeof(VGint));
+
+ vgReadPixels(data, window_width() * sizeof(VGint),
+ VG_lARGB_8888,
+ 0, 0, window_width(), window_height());
+
+ fprintf(stderr, "Red 0 = 0x%x and at 600 = 0x%x\n",
+ data[0], data[600]);
+ for (i = 0; i < window_width() * window_height(); ++i) {
+ assert(data[i] == red_pixel);
+ }
+
+ vgSetfv(VG_CLEAR_COLOR, 4, blue_color);
+ vgClear(50, 50, 50, 50);
+ vgFlush();
+
+ memset(data, 0, window_width() * window_height() * sizeof(VGint));
+
+ vgReadPixels(data, 50 * sizeof(VGint),
+ VG_lARGB_8888,
+ 50, 50, 50, 50);
+
+ fprintf(stderr, "Blue 0 = 0x%x and at 100 = 0x%x\n",
+ data[0], data[100]);
+ for (i = 0; i < 50 * 50; ++i) {
+ assert(data[i] == blue_pixel);
+ }
+}
+
+
+int main(int argc, char **argv)
+{
+ int ret = run(argc, argv, init, reshape,
+ draw, 0);
+
+ free(data);
+ return ret;
+}
diff --git a/progs/openvg/trivial/roundedrect.c b/progs/openvg/trivial/roundedrect.c
new file mode 100644
index 0000000000..c80a4ed299
--- /dev/null
+++ b/progs/openvg/trivial/roundedrect.c
@@ -0,0 +1,67 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.9, 0.1, 0.1, 0.8};
+
+VGPath path;
+VGPaint fill;
+
+
+static void
+init(void)
+{
+ static const VGubyte sqrCmds[10] = {VG_MOVE_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ VG_CLOSE_PATH};
+ static const VGfloat sqrCoords[] = {
+ 45.885571, 62.857143,
+ 154.11442, 62.857143,
+ 162.1236, 62.857143, 168.57142, 70.260744, 168.57142, 79.457144,
+ 168.57142, 123.4,
+ 168.57142, 132.5964, 162.1236, 140, 154.11442, 140,
+ 45.885571, 140,
+ 37.876394, 140, 31.428572, 132.5964, 31.428572, 123.4,
+ 31.428572, 79.457144,
+ 31.428572, 70.260744, 37.876394,62.857143, 45.885571,62.857143
+ };
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 10, sqrCmds, sqrCoords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSetf(VG_STROKE_LINE_WIDTH, 6);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_STROKE_PATH);
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/star-nonzero.c b/progs/openvg/trivial/star-nonzero.c
new file mode 100644
index 0000000000..012fbd3929
--- /dev/null
+++ b/progs/openvg/trivial/star-nonzero.c
@@ -0,0 +1,55 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8};
+
+VGPath path;
+VGPaint fill;
+
+
+static void
+init(void)
+{
+ static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS,
+ VG_LINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat coords[] = { 0, 200,
+ 300, 200,
+ 50, 0,
+ 150, 300,
+ 250, 0};
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 6, cmds, coords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSeti(VG_FILL_RULE, VG_NON_ZERO);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/star-oddeven.c b/progs/openvg/trivial/star-oddeven.c
new file mode 100644
index 0000000000..17311cf720
--- /dev/null
+++ b/progs/openvg/trivial/star-oddeven.c
@@ -0,0 +1,102 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8};
+const VGfloat black_color[4] = {0.0, 0.0, 0.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+
+static void draw_point(VGfloat x, VGfloat y)
+{
+
+ static const VGubyte cmds[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS,
+ VG_LINE_TO_ABS, VG_CLOSE_PATH};
+ const VGfloat coords[] = { x - 2, y - 2,
+ x + 2, y - 2,
+ x + 2, y + 2,
+ x - 2, y + 2};
+ VGPath path;
+ VGPaint fill;
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(path, 5, cmds, coords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, black_color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgDrawPath(path, VG_FILL_PATH);
+
+ vgDestroyPath(path);
+ vgDestroyPaint(fill);
+}
+
+static void draw_marks(VGPath path)
+{
+ VGfloat point[2], tangent[2];
+ int i = 0;
+
+ for (i = 0; i < 1300; i += 50) {
+ vgPointAlongPath(path, 0, 6, i,
+ point + 0, point + 1,
+ tangent + 0, tangent + 1);
+ draw_point(point[0], point[1]);
+ }
+}
+
+static void
+init(void)
+{
+ static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS,
+ VG_LINE_TO_ABS, VG_CLOSE_PATH};
+ static const VGfloat coords[] = { 0, 200,
+ 300, 200,
+ 50, 0,
+ 150, 300,
+ 250, 0};
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_ALL);
+ vgAppendPathData(path, 6, cmds, coords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ VGfloat point[2], tangent[2];
+ int i = 0;
+
+ vgClear(0, 0, window_width(), window_height());
+
+ vgSetPaint(fill, VG_FILL_PATH);
+ vgDrawPath(path, VG_FILL_PATH);
+
+ draw_marks(path);
+
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/openvg/trivial/stroke.c b/progs/openvg/trivial/stroke.c
new file mode 100644
index 0000000000..58ae5b7bc8
--- /dev/null
+++ b/progs/openvg/trivial/stroke.c
@@ -0,0 +1,116 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <X11/keysym.h>
+#include <stdio.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint fill;
+
+VGint cap_style = VG_CAP_BUTT;
+VGint join_style = VG_JOIN_MITER;
+
+static void
+init(void)
+{
+#if 0
+ static const VGubyte cmds[] = {VG_MOVE_TO_ABS,
+ VG_CUBIC_TO_ABS,
+ };
+ static const VGfloat coords[] = {30, 30, 264, 0, 0, 264, 234, 234
+ };
+#else
+ static const VGubyte cmds[] = {VG_MOVE_TO_ABS,
+ VG_LINE_TO_ABS,
+ VG_LINE_TO_ABS
+ };
+ static const VGfloat coords[] = {30, 30, 202, 30, 150, 224
+ };
+#endif
+ VGfloat dash_pattern[2] = { 20.f, 20.f };
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO);
+ vgAppendPathData(path, 3, cmds, coords);
+
+ fill = vgCreatePaint();
+ vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
+ vgSetPaint(fill, VG_FILL_PATH);
+
+ vgSetfv(VG_CLEAR_COLOR, 4, white_color);
+ vgSetf(VG_STROKE_LINE_WIDTH, 20);
+ vgSeti(VG_STROKE_CAP_STYLE, cap_style);
+ vgSeti(VG_STROKE_JOIN_STYLE, join_style);
+ vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern);
+ vgSetf(VG_STROKE_DASH_PHASE, 0.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_STROKE_PATH);
+
+ vgFlush();
+}
+
+static int key_press(unsigned key)
+{
+ switch(key) {
+ case XK_c:
+ case XK_C:
+ ++cap_style;
+ if (cap_style > VG_CAP_SQUARE)
+ cap_style = VG_CAP_BUTT;
+ switch(cap_style) {
+ case VG_CAP_BUTT:
+ fprintf(stderr, "Cap style 'butt'\n");
+ break;
+ case VG_CAP_ROUND:
+ fprintf(stderr, "Cap style 'round'\n");
+ break;
+ case VG_CAP_SQUARE:
+ fprintf(stderr, "Cap style 'square'\n");
+ break;
+ }
+ vgSeti(VG_STROKE_CAP_STYLE, cap_style);
+ break;
+ case XK_j:
+ case XK_J:
+ ++join_style;
+ if (join_style > VG_JOIN_BEVEL)
+ join_style = VG_JOIN_MITER;
+ switch(join_style) {
+ case VG_JOIN_MITER:
+ fprintf(stderr, "Join style 'miter'\n");
+ break;
+ case VG_JOIN_ROUND:
+ fprintf(stderr, "Join style 'round'\n");
+ break;
+ case VG_JOIN_BEVEL:
+ fprintf(stderr, "Join style 'bevel'\n");
+ break;
+ }
+ vgSeti(VG_STROKE_JOIN_STYLE, join_style);
+ break;
+ default:
+ break;
+ }
+
+ return VG_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, key_press);
+}
diff --git a/progs/openvg/trivial/stroke2.c b/progs/openvg/trivial/stroke2.c
new file mode 100644
index 0000000000..ce950c1886
--- /dev/null
+++ b/progs/openvg/trivial/stroke2.c
@@ -0,0 +1,207 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <X11/keysym.h>
+#include <stdio.h>
+
+VGPaint stroke;
+VGPath target;
+VGPath lines;
+
+VGfloat xform[9];
+VGfloat color1[4];
+VGfloat color2[4];
+VGfloat bgCol[4];
+
+static void
+init(void)
+{
+ VGubyte lineCmds[6];
+ VGfloat lineCoords[8];
+ VGfloat arcCoords[5];
+ VGubyte sccCmd[1];
+ VGubyte scCmd[1];
+ VGubyte lccCmd[1];
+ VGubyte lcCmd[1];
+ VGubyte moveCmd[1];
+ VGfloat moveCoords[2];
+ VGint i;
+
+ bgCol[0] = 1.0f;
+ bgCol[1] = 1.0f;
+ bgCol[2] = 1.0f;
+ bgCol[3] = 1.0f;
+
+ vgSetfv(VG_CLEAR_COLOR, 4, bgCol);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+
+ stroke = vgCreatePaint();
+ /* Red */
+ color1[0] = 1.0f;
+ color1[1] = 0.0f;
+ color1[2] = 0.0f;
+ color1[3] = 1.0f;
+
+ /* Orange */
+ color2[0] = 1.0000f;
+ color2[1] = 1.0f;
+ color2[2] = 0.0f;
+ color2[3] = 1.0f;
+ vgSetPaint(stroke, VG_STROKE_PATH);
+
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE);
+
+ {
+ VGfloat temp[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+ for (i = 0; i < 9; i++)
+ {
+ xform[i] = temp[i];
+ }
+ }
+ vgGetMatrix(xform);
+
+ target = vgCreatePath(VG_PATH_FORMAT_STANDARD,
+ VG_PATH_DATATYPE_F, 1, 0, 0, 0, VG_PATH_CAPABILITY_TRANSFORM_TO);
+
+#if 0
+ /* Line path */
+ {
+ VGubyte temp[6] = {VG_MOVE_TO_ABS, VG_VLINE_TO_REL,
+ VG_MOVE_TO_ABS, VG_VLINE_TO_REL,
+ VG_HLINE_TO_REL, VG_VLINE_TO_REL};
+ for (i = 0; i < 6; i++)
+ {
+ lineCmds[i] = temp[i];
+ }
+ }
+ {
+ VGfloat temp[8] = {0.5f, 0.8f, -0.6f, 0.28f, 0.6f, -0.4f, 0.44f, 0.4f};
+ for (i = 0; i < 8; i++)
+ {
+ lineCoords[i] = temp[i] * window_width();
+ }
+ }
+#else
+ {
+ VGfloat temp[5] = {0.35f, 0.15f, 29, 0.3f, 0.4f};
+ for (i = 0; i < 5; i++)
+ {
+ arcCoords[i] = temp[i] * window_width();
+ }
+ arcCoords[2] = 29;
+ }
+
+ {
+ VGubyte temp[1] = {VG_SCCWARC_TO_ABS};
+ for (i = 0; i < 1; i++)
+ {
+ sccCmd[i] = temp[i];
+ }
+ }
+ {
+ VGubyte temp[1] = {VG_SCWARC_TO_ABS};
+ for (i = 0; i < 1; i++)
+ {
+ scCmd[i] = temp[i];
+ }
+ }
+ {
+ VGubyte temp[1] = {VG_LCCWARC_TO_ABS};
+ for (i = 0; i < 1; i++)
+ {
+ lccCmd[i] = temp[i];
+ }
+ }
+ {
+ VGubyte temp[1] = {VG_LCWARC_TO_ABS};
+ for (i = 0; i < 1; i++)
+ {
+ lcCmd[i] = temp[i];
+ }
+ }
+
+ {
+ VGubyte temp[1] = {VG_MOVE_TO_ABS};
+ for (i = 0; i < 1; i++)
+ {
+ moveCmd[i] = temp[i];
+ }
+ }
+ {
+ VGfloat temp[2] = {0.7f, 0.6f};
+ for (i = 0; i < 2; i++)
+ {
+ moveCoords[i] = temp[i] * window_width();
+ }
+ }
+#endif
+
+ lines = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1,
+ 0, 0, 0,
+ VG_PATH_CAPABILITY_APPEND_TO|
+ VG_PATH_CAPABILITY_TRANSFORM_FROM);
+#if 0
+ vgAppendPathData(lines, 6, lineCmds, lineCoords);
+#else
+ vgAppendPathData(lines, 1, moveCmd, moveCoords);
+ vgAppendPathData(lines, 1, sccCmd, arcCoords);
+ vgAppendPathData(lines, 1, moveCmd, moveCoords);
+ vgAppendPathData(lines, 1, scCmd, arcCoords);
+ vgAppendPathData(lines, 1, moveCmd, moveCoords);
+ vgAppendPathData(lines, 1, lccCmd, arcCoords);
+ vgAppendPathData(lines, 1, moveCmd, moveCoords);
+ vgAppendPathData(lines, 1, lcCmd, arcCoords);
+#endif
+
+ vgLoadIdentity();
+ vgTranslate(0.25f * window_width(), 0.25f * window_height());
+ vgRotate(30);
+ vgTranslate(-0.25f * window_width(), -0.25f * window_height());
+ vgTransformPath(target, lines);}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgLoadMatrix(xform);
+ vgLoadIdentity();
+ vgTranslate(0.25f * window_width(), 0.25f * window_height());
+ vgRotate(30);
+ vgTranslate(-0.25f * window_width(), -0.25f * window_height());
+ vgSetf(VG_STROKE_LINE_WIDTH, 7);
+ vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color1);
+ vgDrawPath(lines, VG_STROKE_PATH);
+
+ vgLoadMatrix(xform);
+ vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color2);
+ vgSetf(VG_STROKE_LINE_WIDTH, 3);
+ vgDrawPath(target, VG_STROKE_PATH);
+}
+
+static int key_press(unsigned key)
+{
+ switch(key) {
+ case XK_c:
+ case XK_C:
+ break;
+ case XK_j:
+ case XK_J:
+ break;
+ default:
+ break;
+ }
+
+ return VG_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ return run(argc, argv, init, reshape,
+ draw, key_press);
+}
diff --git a/progs/openvg/trivial/vguarc.c b/progs/openvg/trivial/vguarc.c
new file mode 100644
index 0000000000..8d971d5c09
--- /dev/null
+++ b/progs/openvg/trivial/vguarc.c
@@ -0,0 +1,74 @@
+#include "eglcommon.h"
+
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint paint;
+
+
+static void
+init(void)
+{
+ VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */
+ VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */
+ VGint arcType = VGU_ARC_OPEN;
+ VGfloat x, y, w, h, startAngle, angleExtent;
+
+ x = 150;
+ y = 150;
+ w = 150;
+ h = 150;
+#if 0
+ startAngle = -540.0f;
+ angleExtent = 270.0f;
+#else
+ startAngle = 270.0f;
+ angleExtent = 90.0f;
+#endif
+
+ paint = vgCreatePaint();
+
+ vgSetPaint(paint, VG_STROKE_PATH);
+ vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor);
+ vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+ vgSetf(VG_STROKE_LINE_WIDTH, 6.0f);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+
+ vguArc(path, x, y, w, h, startAngle, angleExtent, arcType);
+
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL);
+ vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, window_width(), window_height());
+ vgDrawPath(path, VG_STROKE_PATH);
+
+ vgFlush();
+}
+
+
+int main(int argc, char **argv)
+{
+ // set_window_size(64, 63);
+ return run(argc, argv, init, reshape,
+ draw, 0);
+}
diff --git a/progs/rbug/.gitignore b/progs/rbug/.gitignore
index 317290bbb3..174fe42aa7 100644
--- a/progs/rbug/.gitignore
+++ b/progs/rbug/.gitignore
@@ -1,9 +1,12 @@
+bin_to_bmp
simple_client
simple_server
shdr_info
shdr_dump
shdr_disable
ctx_info
+ctx_rule
tex_dump
tex_info
*.bmp
+*.bin
diff --git a/progs/rbug/Makefile b/progs/rbug/Makefile
index 8df03dd4e1..fb4e91d1af 100644
--- a/progs/rbug/Makefile
+++ b/progs/rbug/Makefile
@@ -15,12 +15,14 @@ LINKS = \
$(PROG_LINKS)
SOURCES = \
+ bin_to_bmp.c \
simple_client.c \
simple_server.c \
shdr_info.c \
shdr_dump.c \
shdr_disable.c \
ctx_info.c \
+ ctx_rule.c \
tex_info.c \
tex_dump.c
diff --git a/progs/rbug/bin_to_bmp.c b/progs/rbug/bin_to_bmp.c
new file mode 100644
index 0000000000..cdae3486ce
--- /dev/null
+++ b/progs/rbug/bin_to_bmp.c
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2009 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "pipe/p_compiler.h"
+#include "pipe/p_format.h"
+#include "pipe/p_state.h"
+#include "util/u_memory.h"
+#include "util/u_debug.h"
+#include "util/u_network.h"
+#include "util/u_tile.h"
+
+static uint8_t* read(const char *filename, unsigned size);
+static void dump(unsigned src_width, unsigned src_height,
+ unsigned src_stride, enum pipe_format src_format,
+ uint8_t *data, unsigned src_size);
+
+int main(int argc, char** argv)
+{
+ /* change these */
+ unsigned width = 64;
+ unsigned height = 64;
+ unsigned stride = width * 4;
+ unsigned size = stride * height;
+ const char *filename = "mybin.bin";
+ enum pipe_format format = PIPE_FORMAT_A8R8G8B8_UNORM;
+
+ dump(width, height, stride, format, read(filename, size), size);
+
+ return 0;
+}
+
+static void dump(unsigned width, unsigned height,
+ unsigned src_stride, enum pipe_format src_format,
+ uint8_t *data, unsigned src_size)
+{
+ struct pipe_format_block src_block;
+
+ enum pipe_format dst_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ struct pipe_format_block dst_block;
+ unsigned dst_stride;
+ unsigned dst_size;
+ float *rgba;
+ int i;
+ char filename[512];
+
+ {
+ pf_get_block(src_format, &src_block);
+ assert(src_stride >= pf_get_stride(&src_block, width));
+ assert(src_size >= pf_get_2d_size(&src_block, src_stride, width));
+ }
+ {
+ pf_get_block(dst_format, &dst_block);
+ dst_stride = pf_get_stride(&dst_block, width);
+ dst_size = pf_get_2d_size(&dst_block, dst_stride, width);
+ rgba = MALLOC(dst_size);
+ }
+
+ util_snprintf(filename, 512, "%s.bmp", pf_name(src_format));
+
+ if (pf_is_compressed(src_format)) {
+ debug_printf("skipping: %s\n", filename);
+ return;
+ }
+
+ debug_printf("saving: %s\n", filename);
+
+ for (i = 0; i < height; i++) {
+ pipe_tile_raw_to_rgba(src_format, data + src_stride * i,
+ width, 1,
+ &rgba[width*4*i], dst_stride);
+ }
+
+ debug_dump_float_rgba_bmp(filename, width, height, rgba, width);
+
+ FREE(rgba);
+}
+
+static uint8_t* read(const char *filename, unsigned size)
+{
+ uint8_t *data;
+ FILE *file = fopen(filename, "rb");
+
+ data = MALLOC(size);
+
+ fread(data, 1, size, file);
+ fclose(file);
+
+ return data;
+}
diff --git a/progs/rbug/ctx_rule.c b/progs/rbug/ctx_rule.c
new file mode 100644
index 0000000000..e38b7b4e9b
--- /dev/null
+++ b/progs/rbug/ctx_rule.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2009 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "pipe/p_compiler.h"
+#include "pipe/p_format.h"
+#include "util/u_memory.h"
+#include "util/u_debug.h"
+#include "util/u_network.h"
+
+#include "rbug/rbug.h"
+
+static void talk(rbug_context_t ctx, rbug_shader_t shdr)
+{
+ int c = u_socket_connect("localhost", 13370);
+ struct rbug_connection *con;
+ struct rbug_header *header;
+
+ if (c < 0)
+ c = u_socket_connect("localhost", 13370);
+
+ con = rbug_from_socket(c);
+ assert(c >= 0);
+ assert(con);
+ debug_printf("Connection get!\n");
+
+ rbug_send_context_draw_rule(con, ctx, 0, shdr, 0, 0, RBUG_BLOCK_AFTER, NULL);
+
+ rbug_send_ping(con, NULL);
+
+ debug_printf("Sent waiting for reply\n");
+ header = rbug_get_message(con, NULL);
+
+ if (header->opcode != RBUG_OP_PING_REPLY)
+ debug_printf("Error\n");
+ else
+ debug_printf("Ok!\n");
+
+ rbug_free_header(header);
+ rbug_disconnect(con);
+}
+
+static void print_usage()
+{
+ printf("Usage ctx_rule <context> <fragment>\n");
+ exit(-1);
+}
+
+int main(int argc, char** argv)
+{
+ long ctx;
+ long shdr;
+
+ if (argc < 3)
+ print_usage();
+
+ ctx = atol(argv[1]);
+ shdr = atol(argv[2]);
+
+ if (ctx <= 0 && ctx <= 0)
+ print_usage();
+
+ talk((uint64_t)ctx, (uint64_t)shdr);
+
+ return 0;
+}
diff --git a/progs/slang/vstest.c b/progs/slang/vstest.c
index 5108d15742..472ea9b62e 100644
--- a/progs/slang/vstest.c
+++ b/progs/slang/vstest.c
@@ -128,29 +128,29 @@ static void va_render ()
{
case C:
glColorPointer (4, GL_FLOAT, 0, att->data);
- glEnable (GL_COLOR_ARRAY);
+ glEnableClientState (GL_COLOR_ARRAY);
break;
case S:
glSecondaryColorPointerEXT (4, GL_FLOAT, 0, att->data);
- glEnable (GL_SECONDARY_COLOR_ARRAY_EXT);
+ glEnableClientState (GL_SECONDARY_COLOR_ARRAY_EXT);
break;
case N:
glNormalPointer (GL_FLOAT, 0, att->data);
- glEnable (GL_NORMAL_ARRAY);
+ glEnableClientState (GL_NORMAL_ARRAY);
break;
case V:
glVertexPointer (4, GL_FLOAT, 0, att->data);
- glEnable (GL_VERTEX_ARRAY);
+ glEnableClientState (GL_VERTEX_ARRAY);
break;
case T:
assert (att->index >= 0 && att->index < 8);
glClientActiveTextureARB (GL_TEXTURE0_ARB + att->index);
glTexCoordPointer (4, GL_FLOAT, 0, att->data);
- glEnable (GL_TEXTURE_COORD_ARRAY);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
break;
case F:
glFogCoordPointerEXT (GL_FLOAT, 0, att->data);
- glEnable (GL_FOG_COORDINATE_ARRAY_EXT);
+ glEnableClientState (GL_FOG_COORDINATE_ARRAY_EXT);
break;
case A:
assert (att->index > 0 && att->index < 16);
@@ -169,23 +169,23 @@ static void va_render ()
switch (att->dispatch)
{
case C:
- glDisable (GL_COLOR_ARRAY);
+ glDisableClientState (GL_COLOR_ARRAY);
break;
case S:
- glDisable (GL_SECONDARY_COLOR_ARRAY_EXT);
+ glDisableClientState (GL_SECONDARY_COLOR_ARRAY_EXT);
break;
case N:
- glDisable (GL_NORMAL_ARRAY);
+ glDisableClientState (GL_NORMAL_ARRAY);
break;
case V:
- glDisable (GL_VERTEX_ARRAY);
+ glDisableClientState (GL_VERTEX_ARRAY);
break;
case T:
glClientActiveTextureARB (GL_TEXTURE0_ARB + att->index);
- glDisable (GL_TEXTURE_COORD_ARRAY);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
break;
case F:
- glDisable (GL_FOG_COORDINATE_ARRAY_EXT);
+ glDisableClientState (GL_FOG_COORDINATE_ARRAY_EXT);
break;
case A:
glDisableVertexAttribArrayARB (att->index);
diff --git a/progs/tests/.gitignore b/progs/tests/.gitignore
index d6a8538767..3479ff8b33 100644
--- a/progs/tests/.gitignore
+++ b/progs/tests/.gitignore
@@ -5,6 +5,7 @@ arbfpspec
arbfptest1
arbfptexture
arbfptrig
+arbgpuprog
arbnpot
arbnpot-mipmap
arbvptest1
@@ -38,6 +39,7 @@ fptest1
fptexture
getprocaddress
getproclist.h
+getteximage
glutfx
interleave
invert
@@ -49,12 +51,15 @@ mapvbo
minmag
mipgen
mipmap_comp
+mipmap_comp_tests
mipmap_limits
mipmap_view
multipal
no_s3tc
packedpixels
+persp_hint
pbo
+prim
prog_parameter
quads
random
@@ -77,6 +82,7 @@ subtex
subtexrate
tex1d
texcompress2
+texcompsub
texdown
texfilt
texline
diff --git a/progs/tests/Makefile b/progs/tests/Makefile
index 5069817be3..4d9b4e8388 100644
--- a/progs/tests/Makefile
+++ b/progs/tests/Makefile
@@ -17,6 +17,7 @@ SOURCES = \
arbfptest1.c \
arbfptexture.c \
arbfptrig.c \
+ arbgpuprog.c \
arbnpot.c \
arbnpot-mipmap.c \
arbvptest1.c \
@@ -60,12 +61,15 @@ SOURCES = \
minmag.c \
mipgen.c \
mipmap_comp.c \
+ mipmap_comp_tests.c \
mipmap_limits.c \
mipmap_view.c \
multipal.c \
no_s3tc.c \
packedpixels.c \
pbo.c \
+ persp_hint.c \
+ prim.c \
prog_parameter.c \
quads.c \
random.c \
@@ -84,6 +88,7 @@ SOURCES = \
subtexrate.c \
tex1d.c \
texcompress2.c \
+ texcompsub.c \
texdown \
texfilt.c \
texline.c \
diff --git a/progs/tests/SConscript b/progs/tests/SConscript
index 9d89ff6a0d..bb6a1d2b8a 100644
--- a/progs/tests/SConscript
+++ b/progs/tests/SConscript
@@ -72,6 +72,7 @@ progs = [
'fogcoord',
'fptest1',
'fptexture',
+ 'getteximage',
'glutfx',
'interleave',
'invert',
@@ -82,6 +83,7 @@ progs = [
'minmag',
'mipgen',
'mipmap_comp',
+ 'mipmap_comp_tests',
'mipmap_limits',
'mipmap_view',
'multipal',
@@ -90,6 +92,7 @@ progs = [
'no_s3tc',
'packedpixels',
'pbo',
+ 'persp_hint',
'prog_parameter',
'quads',
'random',
@@ -108,6 +111,7 @@ progs = [
'tex1d',
'texcmp',
'texcompress2',
+ 'texcompsub',
'texdown',
'texfilt',
'texgenmix',
diff --git a/progs/tests/arbgpuprog.c b/progs/tests/arbgpuprog.c
new file mode 100644
index 0000000000..23aa899d96
--- /dev/null
+++ b/progs/tests/arbgpuprog.c
@@ -0,0 +1,230 @@
+/**
+ * Just compile ARB vert/frag program from named file(s).
+ */
+
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <GL/glut.h>
+
+
+static GLuint FragProg;
+static GLuint VertProg;
+static GLint Win;
+
+static PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB_func;
+static PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB_func;
+static PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB_func;
+static PFNGLGENPROGRAMSARBPROC glGenProgramsARB_func;
+static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB_func;
+static PFNGLBINDPROGRAMARBPROC glBindProgramARB_func;
+static PFNGLISPROGRAMARBPROC glIsProgramARB_func;
+static PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB_func;
+
+
+static void Redisplay( void )
+{
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+ glutSwapBuffers();
+ exit(0);
+}
+
+
+static void Reshape( int width, int height )
+{
+ glViewport( 0, 0, width, height );
+ glMatrixMode( GL_PROJECTION );
+ glLoadIdentity();
+ glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 25.0 );
+ glMatrixMode( GL_MODELVIEW );
+ glLoadIdentity();
+ glTranslatef( 0.0, 0.0, -15.0 );
+}
+
+
+static void Key( unsigned char key, int x, int y )
+{
+ (void) x;
+ (void) y;
+ switch (key) {
+ case 27:
+ glDeleteProgramsARB_func(1, &VertProg);
+ glDeleteProgramsARB_func(1, &FragProg);
+ glutDestroyWindow(Win);
+ exit(0);
+ break;
+ }
+ glutPostRedisplay();
+}
+
+
+/* A helper for finding errors in program strings */
+static int FindLine( const char *program, int position )
+{
+ int i, line = 1;
+ for (i = 0; i < position; i++) {
+ if (program[i] == '\n')
+ line++;
+ }
+ return line;
+}
+
+
+static void Init( const char *vertProgFile,
+ const char *fragProgFile )
+{
+ GLint errorPos;
+ char buf[10*1000];
+
+ if (!glutExtensionSupported("GL_ARB_vertex_program")) {
+ printf("Sorry, this demo requires GL_ARB_vertex_program\n");
+ exit(1);
+ }
+ if (!glutExtensionSupported("GL_ARB_fragment_program")) {
+ printf("Sorry, this demo requires GL_ARB_fragment_program\n");
+ exit(1);
+ }
+
+ printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+
+ /*
+ * Get extension function pointers.
+ */
+ glProgramLocalParameter4fvARB_func = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) glutGetProcAddress("glProgramLocalParameter4fvARB");
+ assert(glProgramLocalParameter4fvARB_func);
+
+ glProgramLocalParameter4dARB_func = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) glutGetProcAddress("glProgramLocalParameter4dARB");
+ assert(glProgramLocalParameter4dARB_func);
+
+ glGetProgramLocalParameterdvARB_func = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) glutGetProcAddress("glGetProgramLocalParameterdvARB");
+ assert(glGetProgramLocalParameterdvARB_func);
+
+ glGenProgramsARB_func = (PFNGLGENPROGRAMSARBPROC) glutGetProcAddress("glGenProgramsARB");
+ assert(glGenProgramsARB_func);
+
+ glProgramStringARB_func = (PFNGLPROGRAMSTRINGARBPROC) glutGetProcAddress("glProgramStringARB");
+ assert(glProgramStringARB_func);
+
+ glBindProgramARB_func = (PFNGLBINDPROGRAMARBPROC) glutGetProcAddress("glBindProgramARB");
+ assert(glBindProgramARB_func);
+
+ glIsProgramARB_func = (PFNGLISPROGRAMARBPROC) glutGetProcAddress("glIsProgramARB");
+ assert(glIsProgramARB_func);
+
+ glDeleteProgramsARB_func = (PFNGLDELETEPROGRAMSARBPROC) glutGetProcAddress("glDeleteProgramsARB");
+ assert(glDeleteProgramsARB_func);
+
+ /*
+ * Vertex program
+ */
+ if (vertProgFile) {
+ FILE *f;
+ int len;
+
+ glGenProgramsARB_func(1, &VertProg);
+ assert(VertProg > 0);
+ glBindProgramARB_func(GL_VERTEX_PROGRAM_ARB, VertProg);
+
+ f = fopen(vertProgFile, "r");
+ if (!f) {
+ printf("Unable to open %s\n", fragProgFile);
+ exit(1);
+ }
+
+ len = fread(buf, 1, 10*1000,f);
+ glProgramStringARB_func(GL_VERTEX_PROGRAM_ARB,
+ GL_PROGRAM_FORMAT_ASCII_ARB,
+ len,
+ (const GLubyte *) buf);
+
+ glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
+ if (glGetError() != GL_NO_ERROR || errorPos != -1) {
+ int l = FindLine(buf, errorPos);
+ printf("Vertex Program Error (pos=%d line=%d): %s\n", errorPos, l,
+ (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
+ exit(0);
+ }
+ else {
+ glEnable(GL_VERTEX_PROGRAM_ARB);
+ printf("Vertex Program OK\n");
+ }
+ }
+
+ /*
+ * Fragment program
+ */
+ if (fragProgFile) {
+ FILE *f;
+ int len;
+
+ glGenProgramsARB_func(1, &FragProg);
+ assert(FragProg > 0);
+ glBindProgramARB_func(GL_FRAGMENT_PROGRAM_ARB, FragProg);
+
+ f = fopen(fragProgFile, "r");
+ if (!f) {
+ printf("Unable to open %s\n", fragProgFile);
+ exit(1);
+ }
+
+ len = fread(buf, 1, 10*1000,f);
+ glProgramStringARB_func(GL_FRAGMENT_PROGRAM_ARB,
+ GL_PROGRAM_FORMAT_ASCII_ARB,
+ len,
+ (const GLubyte *) buf);
+
+ glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
+ if (glGetError() != GL_NO_ERROR || errorPos != -1) {
+ int l = FindLine(buf, errorPos);
+ printf("Fragment Program Error (pos=%d line=%d): %s\n", errorPos, l,
+ (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
+ exit(0);
+ }
+ else {
+ glEnable(GL_FRAGMENT_PROGRAM_ARB);
+ printf("Fragment Program OK\n");
+ }
+ }
+}
+
+
+int main( int argc, char *argv[] )
+{
+ const char *vertProgFile = NULL, *fragProgFile = NULL;
+ int i;
+
+ glutInit( &argc, argv );
+ glutInitWindowPosition( 0, 0 );
+ glutInitWindowSize( 200, 200 );
+ glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
+ Win = glutCreateWindow(argv[0]);
+ glutReshapeFunc( Reshape );
+ glutKeyboardFunc( Key );
+ glutDisplayFunc( Redisplay );
+
+ if (argc == 1) {
+ printf("arbgpuprog:\n");
+ printf(" Compile GL_ARB_vertex/fragment_programs, report any errors.\n");
+ printf("Usage:\n");
+ printf(" arbgpuprog [--vp vertprogfile] [--fp fragprogfile]\n");
+ exit(1);
+ }
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "--vp") == 0) {
+ vertProgFile = argv[i+1];
+ i++;
+ }
+ else if (strcmp(argv[i], "--fp") == 0) {
+ fragProgFile = argv[i+1];
+ i++;
+ }
+ }
+
+ Init(vertProgFile, fragProgFile);
+
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/tests/bufferobj.c b/progs/tests/bufferobj.c
index 1d97b060ef..d4ca270016 100644
--- a/progs/tests/bufferobj.c
+++ b/progs/tests/bufferobj.c
@@ -1,5 +1,6 @@
/*
* Test GL_ARB_vertex_buffer_object
+ * Also test GL_ARB_vertex_array_object if supported
*
* Brian Paul
* 16 Sep 2003
@@ -9,6 +10,7 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <math.h>
#include <GL/glew.h>
#include <GL/glut.h>
@@ -17,6 +19,7 @@
struct object
{
+ GLuint ArrayObjectID; /** GL_ARB_vertex_array_object */
GLuint VertexBufferID;
GLuint ColorBufferID;
GLuint ElementsBufferID;
@@ -35,6 +38,7 @@ static GLuint Win;
static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
static GLboolean Anim = GL_TRUE;
+static GLboolean Have_ARB_vertex_array_object = GL_FALSE;
static void CheckError(int line)
@@ -48,34 +52,54 @@ static void CheckError(int line)
static void DrawObject( const struct object *obj )
{
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
- glVertexPointer(3, GL_FLOAT, obj->VertexStride, (void *) obj->VertexOffset);
- glEnable(GL_VERTEX_ARRAY);
+ if (Have_ARB_vertex_array_object && obj->ArrayObjectID) {
+ glBindVertexArray(obj->ArrayObjectID);
+
+ if (obj->NumElements > 0) {
+ /* indexed arrays */
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, obj->ElementsBufferID);
+ glDrawElements(GL_LINE_LOOP, obj->NumElements, GL_UNSIGNED_INT, NULL);
+ }
+ else {
+ /* non-indexed arrays */
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ glDrawArrays(GL_LINE_LOOP, 0, obj->NumVerts);
+ }
+
+ glBindVertexArray(0);
+ }
+ else {
+ /* no vertex array objects, must set vertex/color pointers per draw */
+
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
+ glVertexPointer(3, GL_FLOAT, obj->VertexStride, (void *) obj->VertexOffset);
+ glEnableClientState(GL_VERTEX_ARRAY);
- /* test push/pop attrib */
- /* XXX this leads to a segfault with NVIDIA's 53.36 driver */
+ /* test push/pop attrib */
+ /* XXX this leads to a segfault with NVIDIA's 53.36 driver */
#if 0
- if (1)
- {
- glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
- /*glVertexPointer(3, GL_FLOAT, 0, (void *) (obj->VertexOffset + 10000));*/
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, 999999);
- glPopClientAttrib();
- }
+ if (1)
+ {
+ glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
+ /*glVertexPointer(3, GL_FLOAT, 0, (void *) (obj->VertexOffset + 10000));*/
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, 999999);
+ glPopClientAttrib();
+ }
#endif
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID);
- glColorPointer(3, GL_FLOAT, obj->ColorStride, (void *) obj->ColorOffset);
- glEnable(GL_COLOR_ARRAY);
-
- if (obj->NumElements > 0) {
- /* indexed arrays */
- glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, obj->ElementsBufferID);
- glDrawElements(GL_LINE_LOOP, obj->NumElements, GL_UNSIGNED_INT, NULL);
- }
- else {
- /* non-indexed arrays */
- glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
- glDrawArrays(GL_LINE_LOOP, 0, obj->NumVerts);
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID);
+ glColorPointer(3, GL_FLOAT, obj->ColorStride, (void *) obj->ColorOffset);
+ glEnableClientState(GL_COLOR_ARRAY);
+
+ if (obj->NumElements > 0) {
+ /* indexed arrays */
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, obj->ElementsBufferID);
+ glDrawElements(GL_LINE_LOOP, obj->NumElements, GL_UNSIGNED_INT, NULL);
+ }
+ else {
+ /* non-indexed arrays */
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ glDrawArrays(GL_LINE_LOOP, 0, obj->NumVerts);
+ }
}
}
@@ -187,6 +211,28 @@ static void SpecialKey( int key, int x, int y )
}
+/**
+ * If GL_ARB_vertex_array_object is supported, create an array object
+ * and set all the per-array state.
+ */
+static void
+CreateVertexArrayObject(struct object *obj)
+{
+ glGenVertexArrays(1, &obj->ArrayObjectID);
+ glBindVertexArray(obj->ArrayObjectID);
+
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
+ glVertexPointer(3, GL_FLOAT, obj->VertexStride, (void *) obj->VertexOffset);
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID);
+ glColorPointer(3, GL_FLOAT, obj->ColorStride, (void *) obj->ColorOffset);
+ glEnableClientState(GL_COLOR_ARRAY);
+
+ glBindVertexArray(0);
+}
+
+
/*
* Non-interleaved position/color data.
*/
@@ -262,6 +308,10 @@ static void MakeObject1(struct object *obj)
glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAPPED_ARB, &i);
assert(!i);
+
+ if (Have_ARB_vertex_array_object) {
+ CreateVertexArrayObject(obj);
+ }
}
@@ -297,6 +347,10 @@ static void MakeObject2(struct object *obj)
obj->NumElements = 0;
glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
+
+ if (Have_ARB_vertex_array_object) {
+ CreateVertexArrayObject(obj);
+ }
}
@@ -347,6 +401,10 @@ static void MakeObject3(struct object *obj)
i[3] = 3;
glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB);
obj->NumElements = 4;
+
+ if (Have_ARB_vertex_array_object) {
+ CreateVertexArrayObject(obj);
+ }
}
@@ -387,6 +445,10 @@ static void MakeObject4(struct object *obj)
/* Setup a buffer of indices to test the ELEMENTS path */
obj->ElementsBufferID = 0;
obj->NumElements = 0;
+
+ if (Have_ARB_vertex_array_object) {
+ CreateVertexArrayObject(obj);
+ }
}
@@ -399,6 +461,13 @@ static void Init( void )
}
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ Have_ARB_vertex_array_object =
+ glutExtensionSupported("GL_ARB_vertex_array_object");
+
+ printf("Using GL_ARB_vertex_array_object: %s\n",
+ (Have_ARB_vertex_array_object ? "yes" : "no"));
+
+
/* Test buffer object deletion */
if (1) {
static GLubyte data[1000];
@@ -413,6 +482,7 @@ static void Init( void )
assert(!glIsBufferARB(id));
}
+ memset(Objects, 0, sizeof(Objects));
MakeObject1(Objects + 0);
MakeObject2(Objects + 1);
MakeObject3(Objects + 2);
diff --git a/progs/tests/floattex.c b/progs/tests/floattex.c
index ad14cacdcb..39302ce3af 100644
--- a/progs/tests/floattex.c
+++ b/progs/tests/floattex.c
@@ -33,7 +33,7 @@ static const char *VertShaderText =
"} \n";
static struct uniform_info Uniforms[] = {
- { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 },
+ { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 },
END_OF_UNIFORMS
};
@@ -189,7 +189,7 @@ CreateProgram(void)
glUseProgram_func(program);
- InitUniforms(program, Uniforms);
+ SetUniformValues(program, Uniforms);
return program;
}
diff --git a/progs/tests/getprocaddress.c b/progs/tests/getprocaddress.c
index ca66025d2d..a09ea58e1d 100644
--- a/progs/tests/getprocaddress.c
+++ b/progs/tests/getprocaddress.c
@@ -39,13 +39,2600 @@ typedef void (*generic_func)();
#define EQUAL(X, Y) (fabs((X) - (Y)) < 0.001)
-/**
+/* This macro simplifies the task of querying an extension function
+ * pointer and checking to see whether it resolved.
+ */
+#define DECLARE_GLFUNC_PTR(name,type) \
+ type name = (type) glXGetProcAddressARB((const GLubyte *) "gl" #name)
+
+/********************************************************************
+ * Generic helper functions used by the test functions.
+ */
+
+static void CheckGLError(int line, const char *file, const char *function)
+{
+ int errorCode;
+ glFinish();
+ errorCode = glGetError();
+ if (errorCode == GL_NO_ERROR) return;
+ while (errorCode != GL_NO_ERROR) {
+ fprintf(stderr, "OpenGL error 0x%x (%s) at line %d of file %s in function %s()\n",
+ errorCode,
+ errorCode == GL_INVALID_VALUE? "GL_INVALID_VALUE":
+ errorCode == GL_INVALID_ENUM? "GL_INVALID_ENUM":
+ errorCode == GL_INVALID_OPERATION? "GL_INVALID_OPERATION":
+ errorCode == GL_STACK_OVERFLOW? "GL_STACK_OVERFLOW":
+ errorCode == GL_STACK_UNDERFLOW? "GL_STACK_UNDERFLOW":
+ errorCode == GL_OUT_OF_MEMORY? "GL_OUT_OF_MEMORY":
+ "unknown",
+ line, file, function);
+ errorCode = glGetError();
+ }
+ fflush(stderr);
+}
+
+static GLboolean
+compare_bytes(const char *errorLabel, GLuint expectedSize,
+ const GLubyte *expectedData, GLuint actualSize, const GLubyte *actualData)
+{
+ int i;
+
+ if (expectedSize == actualSize &&
+ memcmp(expectedData, actualData, actualSize) == 0) {
+ /* All is well */
+ return GL_TRUE;
+ }
+
+ /* Trouble; we don't match. Print out why. */
+ fprintf(stderr, "%s: actual data is not as expected\n", errorLabel);
+ for (i = 0; i <= 1; i++) {
+ const GLubyte *ptr;
+ int size;
+ char *label;
+ int j;
+
+ switch(i) {
+ case 0:
+ label = "expected";
+ size = expectedSize;
+ ptr = expectedData;
+ break;
+ case 1:
+ label = " actual";
+ size = actualSize;
+ ptr = actualData;
+ break;
+ }
+
+ fprintf(stderr, " %s: size %d: {", label, size);
+ for (j = 0; j < size; j++) {
+ fprintf(stderr, "%s0x%02x", j > 0 ? ", " : "", ptr[j]);
+ }
+ fprintf(stderr, "}\n");
+ }
+
+ /* We fail if the data is unexpected. */
+ return GL_FALSE;
+}
+
+
+static GLboolean
+compare_ints(const char *errorLabel, GLuint expectedSize,
+ const GLint *expectedData, GLuint actualSize, const GLint *actualData)
+{
+ int i;
+
+ if (expectedSize == actualSize &&
+ memcmp(expectedData, actualData, actualSize*sizeof(*expectedData)) == 0) {
+ /* All is well */
+ return GL_TRUE;
+ }
+
+ /* Trouble; we don't match. Print out why. */
+ fprintf(stderr, "%s: actual data is not as expected\n", errorLabel);
+ for (i = 0; i <= 1; i++) {
+ const GLint *ptr;
+ int size;
+ char *label;
+ int j;
+
+ switch(i) {
+ case 0:
+ label = "expected";
+ size = expectedSize;
+ ptr = expectedData;
+ break;
+ case 1:
+ label = " actual";
+ size = actualSize;
+ ptr = actualData;
+ break;
+ }
+
+ fprintf(stderr, " %s: size %d: {", label, size);
+ for (j = 0; j < size; j++) {
+ fprintf(stderr, "%s%d", j > 0 ? ", " : "", ptr[j]);
+ }
+ fprintf(stderr, "}\n");
+ }
+
+ /* We fail if the data is unexpected. */
+ return GL_FALSE;
+}
+
+#define MAX_CONVERTED_VALUES 4
+static GLboolean
+compare_shorts_to_ints(const char *errorLabel, GLuint expectedSize,
+ const GLshort *expectedData, GLuint actualSize, const GLint *actualData)
+{
+ int i;
+ GLint convertedValues[MAX_CONVERTED_VALUES];
+
+ if (expectedSize > MAX_CONVERTED_VALUES) {
+ fprintf(stderr, "%s: too much data [need %d values, have %d values]\n",
+ errorLabel, expectedSize, MAX_CONVERTED_VALUES);
+ return GL_FALSE;
+ }
+
+ for (i = 0; i < expectedSize; i++) {
+ convertedValues[i] = (GLint) expectedData[i];
+ }
+
+ return compare_ints(errorLabel, expectedSize, convertedValues,
+ actualSize, actualData);
+}
+
+static GLboolean
+compare_floats(const char *errorLabel, GLuint expectedSize,
+ const GLfloat *expectedData, GLuint actualSize, const GLfloat *actualData)
+{
+ int i;
+
+ if (expectedSize == actualSize &&
+ memcmp(expectedData, actualData, actualSize*sizeof(*expectedData)) == 0) {
+ /* All is well */
+ return GL_TRUE;
+ }
+
+ /* Trouble; we don't match. Print out why. */
+ fprintf(stderr, "%s: actual data is not as expected\n", errorLabel);
+ for (i = 0; i <= 1; i++) {
+ const GLfloat *ptr;
+ int size;
+ char *label;
+ int j;
+
+ switch(i) {
+ case 0:
+ label = "expected";
+ size = expectedSize;
+ ptr = expectedData;
+ break;
+ case 1:
+ label = " actual";
+ size = actualSize;
+ ptr = actualData;
+ break;
+ }
+
+ fprintf(stderr, " %s: size %d: {", label, size);
+ for (j = 0; j < size; j++) {
+ fprintf(stderr, "%s%f", j > 0 ? ", " : "", ptr[j]);
+ }
+ fprintf(stderr, "}\n");
+ }
+
+ /* We fail if the data is unexpected. */
+ return GL_FALSE;
+}
+
+static GLboolean
+compare_doubles(const char *errorLabel, GLuint expectedSize,
+ const GLdouble *expectedData, GLuint actualSize, const GLdouble *actualData)
+{
+ int i;
+
+ if (expectedSize == actualSize ||
+ memcmp(expectedData, actualData, actualSize*sizeof(*expectedData)) == 0) {
+ /* All is well */
+ return GL_TRUE;
+ }
+
+ /* Trouble; we don't match. Print out why. */
+ fprintf(stderr, "%s: actual data is not as expected\n", errorLabel);
+ for (i = 0; i <= 1; i++) {
+ const GLdouble *ptr;
+ int size;
+ char *label;
+ int j;
+
+ switch(i) {
+ case 0:
+ label = "expected";
+ size = expectedSize;
+ ptr = expectedData;
+ break;
+ case 1:
+ label = " actual";
+ size = actualSize;
+ ptr = actualData;
+ break;
+ }
+
+ fprintf(stderr, " %s: size %d: {", label, size);
+ for (j = 0; j < size; j++) {
+ fprintf(stderr, "%s%f", j > 0 ? ", " : "", ptr[j]);
+ }
+ fprintf(stderr, "}\n");
+ }
+
+ /* We fail if the data is unexpected. */
+ return GL_FALSE;
+}
+
+/********************************************************************
+ * Functions to assist with GL_ARB_texture_compressiong testing
+ */
+
+static GLboolean
+check_texture_format_supported(GLenum format)
+{
+ GLint numFormats;
+ GLint *formats;
+ register int i;
+
+ glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, &numFormats);
+ formats = malloc(numFormats * sizeof(GLint));
+ if (formats == NULL) {
+ fprintf(stderr, "check_texture_format_supported: could not allocate memory for %d GLints\n",
+ numFormats);
+ return GL_FALSE;
+ }
+
+ memset(formats, 0, numFormats * sizeof(GLint));
+ glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, formats);
+
+ for (i = 0; i < numFormats; i++) {
+ if (formats[i] == format) {
+ free(formats);
+ return GL_TRUE;
+ }
+ }
+
+ /* We didn't find the format we were looking for. Give an error. */
+#define FORMAT_NAME(x) (\
+ x == GL_COMPRESSED_RGB_FXT1_3DFX ? "GL_COMPRESSED_RGB_FXT1_3DFX" : \
+ x == GL_COMPRESSED_RGBA_FXT1_3DFX ? "GL_COMPRESSED_RGBA_FXT1_3DFX" : \
+ x == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ? "GL_COMPRESSED_RGB_S3TC_DXT1_EXT" : \
+ x == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT ? "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" : \
+ x == GL_COMPRESSED_RGBA_S3TC_DXT3_EXT ? "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT" : \
+ x == GL_COMPRESSED_RGBA_S3TC_DXT5_EXT ? "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT" : \
+ x == GL_RGB_S3TC ? "GL_RGB_S3TC" : \
+ x == GL_RGB4_S3TC ? "GL_RGB4_S3TC" : \
+ x == GL_RGBA_S3TC ? "GL_RGBA_S3TC" : \
+ x == GL_RGBA4_S3TC ? "GL_RGBA4_S3TC" : \
+ "unknown")
+ fprintf(stderr, "check_texture_format_supported: unsupported format 0x%04x [%s]\n",
+ format, FORMAT_NAME(format));
+ fprintf(stderr, "supported formats:");
+ for (i = 0; i < numFormats; i++) {
+ fprintf(stderr, " 0x%04x [%s]", formats[i], FORMAT_NAME(formats[i]));
+ }
+ fprintf(stderr, "\n");
+ return GL_FALSE;
+}
+
+/* This helper function compresses an RGBA texture and compares it
+ * against the expected compressed data. It returns GL_TRUE if all
+ * went as expected, or GL_FALSE in the case of error.
+ */
+static GLboolean
+check_texture_compression(const char *message, GLenum dimension,
+ GLint width, GLint height, GLint depth, const GLubyte *texture,
+ int expectedCompressedSize, const GLubyte *expectedCompressedData)
+{
+ /* These are the data we query about the texture. */
+ GLint isCompressed;
+ GLenum compressedFormat;
+ GLint compressedSize;
+ GLubyte *compressedData;
+
+ /* We need this function pointer to operate. */
+ DECLARE_GLFUNC_PTR(GetCompressedTexImageARB, PFNGLGETCOMPRESSEDTEXIMAGEARBPROC);
+ if (GetCompressedTexImageARB == NULL) {
+ fprintf(stderr,
+ "%s: could not query GetCompressedTexImageARB function pointer\n",
+ message);
+ return GL_FALSE;
+ }
+
+ /* Verify that we actually have the GL_COMPRESSED_RGBA_S3TC_DXT3_EXT format available. */
+ if (!check_texture_format_supported(GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)) {
+ return GL_FALSE;
+ }
+
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ /* Set up the base image, requesting that the GL library compress it. */
+ switch(dimension) {
+ case GL_TEXTURE_1D:
+ glTexImage1D(GL_TEXTURE_1D, 0, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ width, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, texture);
+ break;
+ case GL_TEXTURE_2D:
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ width, height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, texture);
+ break;
+ case GL_TEXTURE_3D:
+ glTexImage3D(GL_TEXTURE_3D, 0, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ width, height, depth, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, texture);
+ break;
+ default:
+ fprintf(stderr, "%s: unknown dimension 0x%04x.\n", message, dimension);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Make sure the texture is compressed, and pull it out if it is. */
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_COMPRESSED_ARB,
+ &isCompressed);
+ if (!isCompressed) {
+ fprintf(stderr, "%s: could not compress GL_COMPRESSED_RGBA_S3TC_DXT3_EXT texture\n",
+ message);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_INTERNAL_FORMAT,
+ (GLint *)&compressedFormat);
+ if (compressedFormat != GL_COMPRESSED_RGBA_S3TC_DXT3_EXT) {
+ fprintf(stderr, "%s: got internal format 0x%04x, expected GL_COMPRESSED_RGBA_S3TC_DXT3_EXT [0x%04x]\n",
+ __FUNCTION__, compressedFormat, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB, &compressedSize);
+ compressedData = malloc(compressedSize);
+ if (compressedData == NULL) {
+ fprintf(stderr, "%s: could not malloc %d bytes for compressed texture\n",
+ message, compressedSize);
+ return GL_FALSE;
+ }
+ memset(compressedData, 0, compressedSize);
+ (*GetCompressedTexImageARB)(dimension, 0, compressedData);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Compare it to the expected compressed data. The compare_bytes()
+ * call will print out diagnostics in the case of failure.
+ */
+ if (!compare_bytes(message,
+ expectedCompressedSize, expectedCompressedData,
+ compressedSize, compressedData)) {
+
+ free(compressedData);
+ return GL_FALSE;
+ }
+
+ /* All done. Free our allocated data and return success. */
+ free(compressedData);
+ return GL_TRUE;
+}
+
+/* We'll use one function to exercise 1D, 2D, and 3D textures. */
+
+/* The test function for compressed 3D texture images requires several
+ * different function pointers that have to be queried. This function
+ * gets all the function pointers it needs itself, and so is suitable for
+ * use to test any and all of the incorporated functions.
+ */
+
+static GLboolean
+exercise_CompressedTextures(GLenum dimension)
+{
+ /* Set up a basic (uncompressed) texture. We're doing a blue/yellow
+ * checkerboard. The 8x4/32-pixel board is well-suited to S3TC
+ * compression, which works on 4x4 blocks of pixels.
+ */
+#define B 0,0,255,255
+#define Y 255,255,0,255
+#define TEXTURE_WIDTH 16
+#define TEXTURE_HEIGHT 4
+#define TEXTURE_DEPTH 1
+ static GLubyte texture[TEXTURE_WIDTH*TEXTURE_HEIGHT*TEXTURE_DEPTH*4] = {
+ B, B, Y, Y, B, B, Y, Y, B, B, Y, Y, B, B, Y, Y,
+ B, B, Y, Y, B, B, Y, Y, B, B, Y, Y, B, B, Y, Y,
+ Y, Y, B, B, Y, Y, B, B, Y, Y, B, B, Y, Y, B, B,
+ Y, Y, B, B, Y, Y, B, B, Y, Y, B, B, Y, Y, B, B,
+ };
+#undef B
+#undef Y
+ GLubyte uncompressedTexture[TEXTURE_WIDTH*TEXTURE_HEIGHT*TEXTURE_DEPTH*4];
+
+ /* We'll use this as a texture subimage. */
+#define R 255,0,0,255
+#define G 0,255,0,255
+#define SUBTEXTURE_WIDTH 4
+#define SUBTEXTURE_HEIGHT 4
+#define SUBTEXTURE_DEPTH 1
+ static GLubyte subtexture[SUBTEXTURE_WIDTH*SUBTEXTURE_HEIGHT*SUBTEXTURE_DEPTH*4] = {
+ G, G, R, R,
+ G, G, R, R,
+ R, R, G, G,
+ R, R, G, G,
+ };
+#undef R
+#undef G
+
+ /* These are the expected compressed textures. (In the case of
+ * a failed comparison, the test program will print out the
+ * actual compressed data in a format that can be directly used
+ * here, if desired.) The brave of heart can calculate the compression
+ * themselves based on the formulae described at:
+ * http://en.wikipedia.org/wiki/S3_Texture_Compression
+ * In a nutshell, each group of 16 bytes encodes a 4x4 texture block.
+ * The first eight bytes of each group are 4-bit alpha values
+ * for each of the 16 pixels in the texture block.
+ * The next four bytes in each group are LSB-first RGB565 colors; the
+ * first two bytes are identified as the color C0, and the next two
+ * are the color C1. (Two more colors C2 and C3 will be calculated
+ * from these, but do not appear in the compression data.) The
+ * last 4 bytes of the group are sixteen 2-bit indices that, for
+ * each of the 16 pixels in the texture block, select one of the
+ * colors C0, C1, C2, or C3.
+ *
+ * For example, our blue/yellow checkerboard is made up of
+ * four identical 4x4 blocks. Each of those blocks will
+ * be encoded as: eight bytes of 0xff (16 alpha values, each 0xf),
+ * C0 as the RGB565 color yellow (0xffe0), encoded LSB-first;
+ * C1 as the RGB565 color blue (0x001f), encoded LSB-first;
+ * and 4 bytes of 16 2-bit color indices reflecting the
+ * choice of color for each of the 16 pixels:
+ * 00, 00, 01, 01, = 0x05
+ * 00, 00, 01, 01, = 0x05
+ * 01, 01, 00, 00, = 0x50
+ * 01, 01, 00, 00, = 0x50
+ */
+ static GLubyte compressedTexture[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50
+ };
+
+ /* The similar calculations for the 4x4 subtexture are left
+ * as an exercise for the reader.
+ */
+ static GLubyte compressedSubTexture[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0xf8, 0xe0, 0x07, 0x05, 0x05, 0x50, 0x50,
+ };
+
+ /* The combined texture replaces the initial blue/yellow
+ * block with the green/red block. (I'd wanted to do
+ * the more interesting exercise of putting the
+ * green/red block in the middle of the blue/yellow
+ * texture, which is a non-trivial replacement, but
+ * the attempt produces GL_INVALID_OPERATION, showing
+ * that you can only replace whole blocks of
+ * subimages with S3TC.) The combined texture looks
+ * like:
+ * G G R R B B Y Y B B Y Y B B Y Y
+ * G G R R B B Y Y B B Y Y B B Y Y
+ * R R G G Y Y B B Y Y B B Y Y B B
+ * R R G G Y Y B B Y Y B B Y Y B B
+ * which encodes just like the green/red block followed
+ * by 3 copies of the yellow/blue block.
+ */
+ static GLubyte compressedCombinedTexture[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0xf8, 0xe0, 0x07, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0xff, 0x1f, 0x00, 0x05, 0x05, 0x50, 0x50
+ };
+
+ /* These are the data we query about the texture. */
+ GLint queryIsCompressed;
+ GLenum queryCompressedFormat;
+ GLint queryCompressedSize;
+ GLubyte queryCompressedData[sizeof(compressedTexture)];
+
+ /* Query the function pointers we need. We actually won't need most
+ * of these (the "dimension" parameter dictates whether we're testing
+ * 1D, 2D, or 3D textures), but we'll have them all ready just in case.
+ */
+ DECLARE_GLFUNC_PTR(GetCompressedTexImageARB, PFNGLGETCOMPRESSEDTEXIMAGEARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexImage3DARB, PFNGLCOMPRESSEDTEXIMAGE3DARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexSubImage3DARB, PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexImage2DARB, PFNGLCOMPRESSEDTEXIMAGE2DARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexSubImage2DARB, PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexImage1DARB, PFNGLCOMPRESSEDTEXIMAGE1DARBPROC);
+ DECLARE_GLFUNC_PTR(CompressedTexSubImage1DARB, PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC);
+
+ /* If the necessary functions are missing, we can't continue */
+ if (GetCompressedTexImageARB == NULL) {
+ fprintf(stderr, "%s: GetCompressedTexImageARB function is missing\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ }
+ switch (dimension) {
+ case GL_TEXTURE_1D:
+ if (CompressedTexImage1DARB == NULL || CompressedTexSubImage1DARB == NULL) {
+ fprintf(stderr, "%s: 1D compressed texture functions are missing\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ };
+ break;
+ case GL_TEXTURE_2D:
+ if (CompressedTexImage2DARB == NULL || CompressedTexSubImage2DARB == NULL) {
+ fprintf(stderr, "%s: 2D compressed texture functions are missing\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ };
+ break;
+ case GL_TEXTURE_3D:
+ if (CompressedTexImage3DARB == NULL || CompressedTexSubImage3DARB == NULL) {
+ fprintf(stderr, "%s: 3D compressed texture functions are missing\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ };
+ break;
+ default:
+ fprintf(stderr, "%s: unknown texture dimension 0x%04x passed.\n",
+ __FUNCTION__, dimension);
+ return GL_FALSE;
+ }
+
+ /* Check the compression of our base texture image. */
+ if (!check_texture_compression("texture compression", dimension,
+ TEXTURE_WIDTH, TEXTURE_HEIGHT, TEXTURE_DEPTH, texture,
+ sizeof(compressedTexture), compressedTexture)) {
+
+ /* Something's wrong with texture compression. The function
+ * above will have printed an appropriate error.
+ */
+ return GL_FALSE;
+ }
+
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Do the same for our texture subimage */
+ if (!check_texture_compression("subtexture compression", dimension,
+ SUBTEXTURE_WIDTH, SUBTEXTURE_HEIGHT, SUBTEXTURE_DEPTH, subtexture,
+ sizeof(compressedSubTexture), compressedSubTexture)) {
+
+ /* Something's wrong with texture compression. The function
+ * above will have printed an appropriate error.
+ */
+ return GL_FALSE;
+ }
+
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Send the base compressed texture down to the hardware. */
+ switch(dimension) {
+ case GL_TEXTURE_3D:
+ (*CompressedTexImage3DARB)(GL_TEXTURE_3D, 0,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ TEXTURE_WIDTH, TEXTURE_HEIGHT, TEXTURE_DEPTH, 0,
+ sizeof(compressedTexture), compressedTexture);
+ break;
+
+ case GL_TEXTURE_2D:
+ (*CompressedTexImage2DARB)(GL_TEXTURE_2D, 0,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ TEXTURE_WIDTH, TEXTURE_HEIGHT, 0,
+ sizeof(compressedTexture), compressedTexture);
+ break;
+
+ case GL_TEXTURE_1D:
+ (*CompressedTexImage1DARB)(GL_TEXTURE_1D, 0,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ TEXTURE_WIDTH, 0,
+ sizeof(compressedTexture), compressedTexture);
+ break;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* For grins, query it to make sure it is as expected. */
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_COMPRESSED_ARB,
+ &queryIsCompressed);
+ if (!queryIsCompressed) {
+ fprintf(stderr, "%s: compressed texture did not come back as compressed\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ }
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_INTERNAL_FORMAT,
+ (GLint *)&queryCompressedFormat);
+ if (queryCompressedFormat != GL_COMPRESSED_RGBA_S3TC_DXT3_EXT) {
+ fprintf(stderr, "%s: got internal format 0x%04x, expected GL_COMPRESSED_RGBA_S3TC_DXT3_EXT [0x%04x]\n",
+ __FUNCTION__, queryCompressedFormat, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT);
+ return GL_FALSE;
+ }
+ glGetTexLevelParameteriv(dimension, 0, GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB,
+ &queryCompressedSize);
+ if (queryCompressedSize != sizeof(compressedTexture)) {
+ fprintf(stderr, "%s: compressed 3D texture changed size: expected %d, actual %d\n",
+ __FUNCTION__, sizeof(compressedTexture), queryCompressedSize);
+ return GL_FALSE;
+ }
+ (*GetCompressedTexImageARB)(dimension, 0, queryCompressedData);
+ if (!compare_bytes(
+ "exercise_CompressedTextures:doublechecking compressed texture",
+ sizeof(compressedTexture), compressedTexture,
+ queryCompressedSize, queryCompressedData)) {
+ return GL_FALSE;
+ }
+
+ /* Now apply the texture subimage. The current implementation of
+ * S3TC requires that subimages be only applied to whole blocks.
+ */
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ switch(dimension) {
+ case GL_TEXTURE_3D:
+ (*CompressedTexSubImage3DARB)(GL_TEXTURE_3D, 0,
+ 0, 0, 0, /* offsets */
+ SUBTEXTURE_WIDTH, SUBTEXTURE_HEIGHT, SUBTEXTURE_DEPTH,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ sizeof(compressedSubTexture), compressedSubTexture);
+ break;
+ case GL_TEXTURE_2D:
+ (*CompressedTexSubImage2DARB)(GL_TEXTURE_2D, 0,
+ 0, 0, /* offsets */
+ SUBTEXTURE_WIDTH, SUBTEXTURE_HEIGHT,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ sizeof(compressedSubTexture), compressedSubTexture);
+ break;
+ case GL_TEXTURE_1D:
+ (*CompressedTexSubImage2DARB)(GL_TEXTURE_2D, 0,
+ 0, 0, /* offsets */
+ SUBTEXTURE_WIDTH, SUBTEXTURE_HEIGHT,
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ sizeof(compressedSubTexture), compressedSubTexture);
+ break;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query the compressed texture back now, and see that it
+ * is as expected.
+ */
+ (*GetCompressedTexImageARB)(dimension, 0, queryCompressedData);
+ if (!compare_bytes("exercise_CompressedTextures:combined texture",
+ sizeof(compressedCombinedTexture), compressedCombinedTexture,
+ queryCompressedSize, queryCompressedData)) {
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Just for the exercise, uncompress the texture and pull it out.
+ * We don't check it because the compression is lossy, so it won't
+ * compare exactly to the source texture; we just
+ * want to exercise the code paths that convert it.
+ */
+ glGetTexImage(dimension, 0, GL_RGBA, GL_UNSIGNED_BYTE, uncompressedTexture);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* If we survived this far, we pass. */
+ return GL_TRUE;
+}
+
+/**************************************************************************
+ * Functions to assist with GL_EXT_framebuffer_object and
+ * GL_EXT_framebuffer_blit testing.
+ */
+
+#define FB_STATUS_NAME(x) (\
+ x == GL_FRAMEBUFFER_COMPLETE_EXT ? "GL_FRAMEBUFFER_COMPLETE_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT" : \
+ x == GL_FRAMEBUFFER_UNSUPPORTED_EXT ? "GL_FRAMEBUFFER_UNSUPPORTED_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT" : \
+ x == GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT ? "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT" : \
+ "unknown")
+
+static GLboolean
+exercise_framebuffer(void)
+{
+ GLuint framebufferID = 0;
+ GLuint renderbufferID = 0;
+
+ /* Dimensions of the framebuffer and renderbuffers are arbitrary.
+ * Since they won't be shown on-screen, we can use whatever we want.
+ */
+ const GLint Width = 100;
+ const GLint Height = 100;
+
+ /* Every function we use will be referenced through function pointers.
+ * This will allow this test program to run on OpenGL implementations
+ * that *don't* implement these extensions (though the implementation
+ * used to compile them must have up-to-date header files).
+ */
+ DECLARE_GLFUNC_PTR(GenFramebuffersEXT, PFNGLGENFRAMEBUFFERSEXTPROC);
+ DECLARE_GLFUNC_PTR(IsFramebufferEXT, PFNGLISFRAMEBUFFEREXTPROC);
+ DECLARE_GLFUNC_PTR(DeleteFramebuffersEXT, PFNGLDELETEFRAMEBUFFERSEXTPROC);
+ DECLARE_GLFUNC_PTR(BindFramebufferEXT, PFNGLBINDFRAMEBUFFEREXTPROC);
+ DECLARE_GLFUNC_PTR(GenRenderbuffersEXT, PFNGLGENRENDERBUFFERSEXTPROC);
+ DECLARE_GLFUNC_PTR(IsRenderbufferEXT, PFNGLISRENDERBUFFEREXTPROC);
+ DECLARE_GLFUNC_PTR(DeleteRenderbuffersEXT, PFNGLDELETERENDERBUFFERSEXTPROC);
+ DECLARE_GLFUNC_PTR(BindRenderbufferEXT, PFNGLBINDRENDERBUFFEREXTPROC);
+ DECLARE_GLFUNC_PTR(FramebufferRenderbufferEXT, PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC);
+ DECLARE_GLFUNC_PTR(RenderbufferStorageEXT, PFNGLRENDERBUFFERSTORAGEEXTPROC);
+ DECLARE_GLFUNC_PTR(CheckFramebufferStatusEXT, PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC);
+
+ /* The BlitFramebuffer function comes from a different extension.
+ * It's possible for an implementation to implement all the above,
+ * but not BlitFramebuffer; so it's okay if this one comes back
+ * NULL, as we can still test the rest.
+ */
+ DECLARE_GLFUNC_PTR(BlitFramebufferEXT, PFNGLBLITFRAMEBUFFEREXTPROC);
+
+ /* We cannot test unless we have all the function pointers. */
+ if (
+ GenFramebuffersEXT == NULL ||
+ IsFramebufferEXT == NULL ||
+ DeleteFramebuffersEXT == NULL ||
+ BindFramebufferEXT == NULL ||
+ GenRenderbuffersEXT == NULL ||
+ IsRenderbufferEXT == NULL ||
+ DeleteRenderbuffersEXT == NULL ||
+ BindRenderbufferEXT == NULL ||
+ FramebufferRenderbufferEXT == NULL ||
+ RenderbufferStorageEXT == NULL ||
+ CheckFramebufferStatusEXT == NULL
+ ) {
+ fprintf(stderr, "%s: could not locate all framebuffer functions\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ }
+
+ /* Generate a framebuffer for us to play with. */
+ (*GenFramebuffersEXT)(1, &framebufferID);
+ if (framebufferID == 0) {
+ fprintf(stderr, "%s: failed to generate a frame buffer ID.\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ }
+ /* The generated name is not a framebuffer object until bound. */
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, framebufferID);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ if (!(*IsFramebufferEXT)(framebufferID)) {
+ fprintf(stderr, "%s: generated a frame buffer ID 0x%x that wasn't a framebuffer\n",
+ __FUNCTION__, framebufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ {
+ GLint queriedFramebufferID;
+ glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &queriedFramebufferID);
+ if (queriedFramebufferID != framebufferID) {
+ fprintf(stderr, "%s: bound frame buffer 0x%x, but queried 0x%x\n",
+ __FUNCTION__, framebufferID, queriedFramebufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Create a color buffer to attach to the frame buffer object, so
+ * we can actually operate on it. We go through the same basic checks
+ * with the renderbuffer that we do with the framebuffer.
+ */
+ (*GenRenderbuffersEXT)(1, &renderbufferID);
+ if (renderbufferID == 0) {
+ fprintf(stderr, "%s: could not generate a renderbuffer ID\n",
+ __FUNCTION__);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ (*BindRenderbufferEXT)(GL_RENDERBUFFER_EXT, renderbufferID);
+ if (!(*IsRenderbufferEXT)(renderbufferID)) {
+ fprintf(stderr, "%s: generated renderbuffer 0x%x is not a renderbuffer\n",
+ __FUNCTION__, renderbufferID);
+ (*BindRenderbufferEXT)(GL_RENDERBUFFER_EXT, 0);
+ (*DeleteRenderbuffersEXT)(1, &renderbufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ {
+ GLint queriedRenderbufferID = 0;
+ glGetIntegerv(GL_RENDERBUFFER_BINDING_EXT, &queriedRenderbufferID);
+ if (renderbufferID != queriedRenderbufferID) {
+ fprintf(stderr, "%s: bound renderbuffer 0x%x, but got 0x%x\n",
+ __FUNCTION__, renderbufferID, queriedRenderbufferID);
+ (*BindRenderbufferEXT)(GL_RENDERBUFFER_EXT, 0);
+ (*DeleteRenderbuffersEXT)(1, &renderbufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Add the renderbuffer as a color attachment to the current
+ * framebuffer (which is our generated framebuffer).
+ */
+ (*FramebufferRenderbufferEXT)(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT,
+ GL_RENDERBUFFER_EXT, renderbufferID);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* The renderbuffer will need some dimensions and storage space. */
+ (*RenderbufferStorageEXT)(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* That should be everything we need. If we set up to draw and to
+ * read from our color attachment, we should be "framebuffer complete",
+ * meaning the framebuffer is ready to go.
+ */
+ glDrawBuffer(GL_COLOR_ATTACHMENT1_EXT);
+ glReadBuffer(GL_COLOR_ATTACHMENT1_EXT);
+ {
+ GLenum status = (*CheckFramebufferStatusEXT)(GL_FRAMEBUFFER_EXT);
+ if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
+ fprintf(stderr, "%s: framebuffer not complete; status = %s [0x%x]\n",
+ __FUNCTION__, FB_STATUS_NAME(status), status);
+ glReadBuffer(0);
+ glDrawBuffer(0);
+ (*BindRenderbufferEXT)(GL_RENDERBUFFER_EXT, 0);
+ (*DeleteRenderbuffersEXT)(1, &renderbufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ return GL_FALSE;
+ }
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Define the contents of the frame buffer */
+ glClearColor(0.5, 0.5, 0.5, 0.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ /* If the GL_EXT_framebuffer_blit is supported, attempt a framebuffer
+ * blit from (5,5)-(10,10) to (90,90)-(95,95). This is *not* an
+ * error if framebuffer_blit is *not* supported (as we can still
+ * effectively test the other functions).
+ */
+ if (BlitFramebufferEXT != NULL) {
+ (*BlitFramebufferEXT)(5, 5, 10, 10, 90, 90, 95, 95,
+ GL_COLOR_BUFFER_BIT, GL_NEAREST);
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* We could now test to see whether the framebuffer had the desired
+ * contents. As this is just a touch test, we'll leave that for now.
+ * Clean up and go home.
+ */
+ glReadBuffer(0);
+ glDrawBuffer(0);
+ (*BindRenderbufferEXT)(GL_RENDERBUFFER_EXT, 0);
+ (*DeleteRenderbuffersEXT)(1, &renderbufferID);
+ (*BindFramebufferEXT)(GL_FRAMEBUFFER_EXT, 0);
+ (*DeleteFramebuffersEXT)(1, &framebufferID);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ return GL_TRUE;
+}
+
+/**************************************************************************
+ * Functions to assist with GL_ARB_shader_objects testing.
+ */
+
+static void
+print_info_log(const char *message, GLhandleARB object)
+{
+ DECLARE_GLFUNC_PTR(GetObjectParameterivARB, PFNGLGETOBJECTPARAMETERIVARBPROC);
+ DECLARE_GLFUNC_PTR(GetInfoLogARB, PFNGLGETINFOLOGARBPROC);
+ int logLength, queryLength;
+ char *log;
+
+ if (GetObjectParameterivARB == NULL) {
+ fprintf(stderr, "%s: could not get GetObjectParameterivARB address\n",
+ message);
+ return;
+ }
+ if (GetInfoLogARB == NULL) {
+ fprintf(stderr, "%s: could not get GetInfoLogARB address\n",
+ message);
+ return;
+ }
+
+ (*GetObjectParameterivARB)(object, GL_OBJECT_INFO_LOG_LENGTH_ARB,
+ &logLength);
+ if (logLength == 0) {
+ fprintf(stderr, "%s: info log length is 0\n", message);
+ return;
+ }
+ log = malloc(logLength);
+ if (log == NULL) {
+ fprintf(stderr, "%s: could not malloc %d bytes for info log\n",
+ message, logLength);
+ }
+ else {
+ (*GetInfoLogARB)(object, logLength, &queryLength, log);
+ fprintf(stderr, "%s: info log says '%s'\n",
+ message, log);
+ }
+ free(log);
+}
+
+static GLboolean
+exercise_uniform_start(const char *fragmentShaderText, const char *uniformName,
+ GLhandleARB *returnProgram, GLint *returnUniformLocation)
+{
+ DECLARE_GLFUNC_PTR(CreateShaderObjectARB, PFNGLCREATESHADEROBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(ShaderSourceARB, PFNGLSHADERSOURCEARBPROC);
+ DECLARE_GLFUNC_PTR(CompileShaderARB, PFNGLCOMPILESHADERARBPROC);
+ DECLARE_GLFUNC_PTR(CreateProgramObjectARB, PFNGLCREATEPROGRAMOBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(AttachObjectARB, PFNGLATTACHOBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(LinkProgramARB, PFNGLLINKPROGRAMARBPROC);
+ DECLARE_GLFUNC_PTR(UseProgramObjectARB, PFNGLUSEPROGRAMOBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(ValidateProgramARB, PFNGLVALIDATEPROGRAMARBPROC);
+ DECLARE_GLFUNC_PTR(GetUniformLocationARB, PFNGLGETUNIFORMLOCATIONARBPROC);
+ DECLARE_GLFUNC_PTR(DeleteObjectARB, PFNGLDELETEOBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(GetObjectParameterivARB, PFNGLGETOBJECTPARAMETERIVARBPROC);
+ GLhandleARB fs, program;
+ GLint uniformLocation;
+ GLint shaderCompiled, programValidated;
+
+ if (CreateShaderObjectARB == NULL ||
+ ShaderSourceARB == NULL ||
+ CompileShaderARB == NULL ||
+ CreateProgramObjectARB == NULL ||
+ AttachObjectARB == NULL ||
+ LinkProgramARB == NULL ||
+ UseProgramObjectARB == NULL ||
+ ValidateProgramARB == NULL ||
+ GetUniformLocationARB == NULL ||
+ DeleteObjectARB == NULL ||
+ GetObjectParameterivARB == NULL ||
+ 0) {
+ return GL_FALSE;
+ }
+
+ /* Create the trivial fragment shader and program. For safety
+ * we'll check to make sure they compile and link correctly.
+ */
+ fs = (*CreateShaderObjectARB)(GL_FRAGMENT_SHADER_ARB);
+ (*ShaderSourceARB)(fs, 1, &fragmentShaderText, NULL);
+ (*CompileShaderARB)(fs);
+ (*GetObjectParameterivARB)(fs, GL_OBJECT_COMPILE_STATUS_ARB,
+ &shaderCompiled);
+ if (!shaderCompiled) {
+ print_info_log("shader did not compile", fs);
+ (*DeleteObjectARB)(fs);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ program = (*CreateProgramObjectARB)();
+ (*AttachObjectARB)(program, fs);
+ (*LinkProgramARB)(program);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Make sure we're going to run successfully */
+ (*ValidateProgramARB)(program);
+ (*GetObjectParameterivARB)(program, GL_OBJECT_VALIDATE_STATUS_ARB,
+ &programValidated);
+ if (!programValidated) {;
+ print_info_log("program did not validate", program);
+ (*DeleteObjectARB)(program);
+ (*DeleteObjectARB)(fs);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ return GL_FALSE;
+ }
+
+ /* Put the program in place. We're not allowed to assign to uniform
+ * variables used by the program until the program is put into use.
+ */
+ (*UseProgramObjectARB)(program);
+
+ /* Once the shader is in place, we're free to delete it; this
+ * won't affect the copy that's part of the program.
+ */
+ (*DeleteObjectARB)(fs);
+
+ /* Find the location index of the uniform variable we declared;
+ * the caller will ned that to set the value.
+ */
+ uniformLocation = (*GetUniformLocationARB)(program, uniformName);
+ if (uniformLocation == -1) {
+ fprintf(stderr, "%s: could not determine uniform location\n",
+ __FUNCTION__);
+ (*DeleteObjectARB)(program);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ return GL_FALSE;
+ }
+
+ /* All done with what we're supposed to do - return the program
+ * handle and the uniform location to the caller.
+ */
+ *returnProgram = program;
+ *returnUniformLocation = uniformLocation;
+ return GL_TRUE;
+}
+
+static void
+exercise_uniform_end(GLhandleARB program)
+{
+ DECLARE_GLFUNC_PTR(UseProgramObjectARB, PFNGLUSEPROGRAMOBJECTARBPROC);
+ DECLARE_GLFUNC_PTR(DeleteObjectARB, PFNGLDELETEOBJECTARBPROC);
+ if (UseProgramObjectARB == NULL || DeleteObjectARB == NULL) {
+ return;
+ }
+
+ /* Turn off our program by setting the special value 0, and
+ * then delete the program object.
+ */
+ (*UseProgramObjectARB)(0);
+ (*DeleteObjectARB)(program);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+}
+
+/**************************************************************************
+ * Exercises for fences
+ */
+static GLboolean
+exercise_fences(void)
+{
+ DECLARE_GLFUNC_PTR(DeleteFencesNV, PFNGLDELETEFENCESNVPROC);
+ DECLARE_GLFUNC_PTR(FinishFenceNV, PFNGLFINISHFENCENVPROC);
+ DECLARE_GLFUNC_PTR(GenFencesNV, PFNGLGENFENCESNVPROC);
+ DECLARE_GLFUNC_PTR(GetFenceivNV, PFNGLGETFENCEIVNVPROC);
+ DECLARE_GLFUNC_PTR(IsFenceNV, PFNGLISFENCENVPROC);
+ DECLARE_GLFUNC_PTR(SetFenceNV, PFNGLSETFENCENVPROC);
+ DECLARE_GLFUNC_PTR(TestFenceNV, PFNGLTESTFENCENVPROC);
+ GLuint fence;
+ GLint fenceStatus, fenceCondition;
+ int count;
+
+ /* Make sure we have all the function pointers we need. */
+ if (GenFencesNV == NULL ||
+ SetFenceNV == NULL ||
+ IsFenceNV == NULL ||
+ GetFenceivNV == NULL ||
+ TestFenceNV == NULL ||
+ FinishFenceNV == NULL ||
+ DeleteFencesNV == NULL) {
+ fprintf(stderr, "%s: don't have all the fence functions\n",
+ __FUNCTION__);
+ return GL_FALSE;
+ }
+
+ /* Create and set a simple fence. */
+ (*GenFencesNV)(1, &fence);
+ (*SetFenceNV)(fence, GL_ALL_COMPLETED_NV);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Make sure it reads as a fence. */
+ if (!(*IsFenceNV)(fence)) {
+ fprintf(stderr, "%s: set fence is not a fence\n", __FUNCTION__);
+ (*DeleteFencesNV)(1, &fence);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Try to read back its current status and condition. */
+ (*GetFenceivNV)(fence, GL_FENCE_CONDITION_NV, &fenceCondition);
+ if (fenceCondition != GL_ALL_COMPLETED_NV) {
+ fprintf(stderr, "%s: expected fence condition 0x%x, got 0x%x\n",
+ __FUNCTION__, GL_ALL_COMPLETED_NV, fenceCondition);
+ (*DeleteFencesNV)(1, &fence);
+ return GL_FALSE;
+ }
+ (*GetFenceivNV)(fence, GL_FENCE_STATUS_NV, &fenceStatus);
+ if (fenceStatus != GL_TRUE && fenceStatus != GL_FALSE) {
+ fprintf(stderr,"%s: fence status should be GL_TRUE or GL_FALSE, got 0x%x\n",
+ __FUNCTION__, fenceStatus);
+ (*DeleteFencesNV)(1, &fence);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Set the fence again, query its status, and wait for it to finish
+ * two different ways: once by looping on TestFence(), and a
+ * second time by a simple call to FinishFence();
+ */
+ (*SetFenceNV)(fence, GL_ALL_COMPLETED_NV);
+ glFlush();
+ count = 1;
+ while (!(*TestFenceNV)(fence)) {
+ count++;
+ if (count == 0) {
+ break;
+ }
+ }
+ if (count == 0) {
+ fprintf(stderr, "%s: fence never returned true\n", __FUNCTION__);
+ (*DeleteFencesNV)(1, &fence);
+ return GL_FALSE;
+ }
+ (*SetFenceNV)(fence, GL_ALL_COMPLETED_NV);
+ (*FinishFenceNV)(fence);
+ if ((*TestFenceNV)(fence) != GL_TRUE) {
+ fprintf(stderr, "%s: finished fence does not have status GL_TRUE\n",
+ __FUNCTION__);
+ (*DeleteFencesNV)(1, &fence);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* All done. Delete the fence and return. */
+ (*DeleteFencesNV)(1, &fence);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ return GL_TRUE;
+}
+
+/**************************************************************************
+ * Exercises for buffer objects
+ */
+enum Map_Buffer_Usage{ Use_Map_Buffer, Use_Map_Buffer_Range};
+static GLboolean
+exercise_buffer_objects(enum Map_Buffer_Usage usage)
+{
+#define BUFFER_DATA_SIZE 1024
+ GLuint bufferID;
+ GLint bufferMapped;
+ static GLubyte data[BUFFER_DATA_SIZE] = {0};
+ float *dataPtr;
+
+ /* Get the function pointers we need. These are from
+ * GL_ARB_vertex_buffer_object and are required in all
+ * cases.
+ */
+ DECLARE_GLFUNC_PTR(GenBuffersARB, PFNGLGENBUFFERSARBPROC);
+ DECLARE_GLFUNC_PTR(BindBufferARB, PFNGLBINDBUFFERARBPROC);
+ DECLARE_GLFUNC_PTR(BufferDataARB, PFNGLBUFFERDATAARBPROC);
+ DECLARE_GLFUNC_PTR(MapBufferARB, PFNGLMAPBUFFERARBPROC);
+ DECLARE_GLFUNC_PTR(UnmapBufferARB, PFNGLUNMAPBUFFERARBPROC);
+ DECLARE_GLFUNC_PTR(DeleteBuffersARB, PFNGLDELETEBUFFERSARBPROC);
+ DECLARE_GLFUNC_PTR(GetBufferParameterivARB, PFNGLGETBUFFERPARAMETERIVARBPROC);
+
+ /* These are from GL_ARB_map_buffer_range, and are optional
+ * unless we're given Use_Map_Buffer_Range. Note that they do *not*
+ * have the standard "ARB" suffixes; this is because the extension
+ * was introduced *after* a superset was standardized in OpenGL 3.0.
+ * (The extension really only exists to allow the functionality on
+ * devices that cannot implement a full OpenGL 3.0 driver.)
+ */
+ DECLARE_GLFUNC_PTR(FlushMappedBufferRange, PFNGLFLUSHMAPPEDBUFFERRANGEPROC);
+ DECLARE_GLFUNC_PTR(MapBufferRange, PFNGLMAPBUFFERRANGEPROC);
+
+ /* This is from APPLE_flush_buffer_range, and is optional even if
+ * we're given Use_Map_Buffer_Range. Test it before using it.
+ */
+ DECLARE_GLFUNC_PTR(BufferParameteriAPPLE, PFNGLBUFFERPARAMETERIAPPLEPROC);
+
+ /* Make sure we have all the function pointers we need. */
+ if (GenBuffersARB == NULL ||
+ BindBufferARB == NULL ||
+ BufferDataARB == NULL ||
+ MapBufferARB == NULL ||
+ UnmapBufferARB == NULL ||
+ DeleteBuffersARB == NULL ||
+ GetBufferParameterivARB == NULL) {
+ fprintf(stderr, "%s: missing basic MapBuffer functions\n", __FUNCTION__);
+ return GL_FALSE;
+ }
+ if (usage == Use_Map_Buffer_Range) {
+ if (FlushMappedBufferRange == NULL || MapBufferRange == NULL) {
+ fprintf(stderr, "%s: missing MapBufferRange functions\n", __FUNCTION__);
+ return GL_FALSE;
+ }
+ }
+
+ /* Create and define a buffer */
+ (*GenBuffersARB)(1, &bufferID);
+ (*BindBufferARB)(GL_ARRAY_BUFFER_ARB, bufferID);
+ (*BufferDataARB)(GL_ARRAY_BUFFER_ARB, BUFFER_DATA_SIZE, data,
+ GL_DYNAMIC_DRAW_ARB);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* If we're using MapBufferRange, and if the BufferParameteriAPPLE
+ * function is present, use it before mapping. This particular
+ * use is a no-op, intended just to exercise the entry point.
+ */
+ if (usage == Use_Map_Buffer_Range && BufferParameteriAPPLE != NULL) {
+ (*BufferParameteriAPPLE)(GL_ARRAY_BUFFER_ARB,
+ GL_BUFFER_SERIALIZED_MODIFY_APPLE, GL_TRUE);
+ }
+
+ /* Map it, and make sure it's mapped. */
+ switch(usage) {
+ case Use_Map_Buffer:
+ dataPtr = (float *) (*MapBufferARB)(
+ GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
+ break;
+ case Use_Map_Buffer_Range:
+ dataPtr = (float *)(*MapBufferRange)(GL_ARRAY_BUFFER_ARB,
+ 4, 16, GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
+ break;
+ }
+ if (dataPtr == NULL) {
+ fprintf(stderr, "%s: %s returned NULL\n", __FUNCTION__,
+ usage == Use_Map_Buffer ? "MapBuffer" : "MapBufferRange");
+ (*BindBufferARB)(GL_ARRAY_BUFFER_ARB, 0);
+ (*DeleteBuffersARB)(1, &bufferID);
+ return GL_FALSE;
+ }
+ (*GetBufferParameterivARB)(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAPPED_ARB,
+ &bufferMapped);
+ if (!bufferMapped) {
+ fprintf(stderr, "%s: buffer should be mapped but isn't\n", __FUNCTION__);
+ (*BindBufferARB)(GL_ARRAY_BUFFER_ARB, 0);
+ (*DeleteBuffersARB)(1, &bufferID);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Write something to it, just to make sure we don't segfault. */
+ *dataPtr = 1.5;
+
+ /* Unmap to show we're finished with the buffer. Note that if we're
+ * using MapBufferRange, we first have to flush the range we modified.
+ */
+ if (usage == Use_Map_Buffer_Range) {
+ (*FlushMappedBufferRange)(GL_ARRAY_BUFFER_ARB, 4, 16);
+ }
+ if (!(*UnmapBufferARB)(GL_ARRAY_BUFFER_ARB)) {
+ fprintf(stderr, "%s: UnmapBuffer failed\n", __FUNCTION__);
+ (*BindBufferARB)(GL_ARRAY_BUFFER_ARB, 0);
+ (*DeleteBuffersARB)(1, &bufferID);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* All done. */
+ (*BindBufferARB)(GL_ARRAY_BUFFER_ARB, 0);
+ (*DeleteBuffersARB)(1, &bufferID);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+ return GL_TRUE;
+
+#undef BUFFER_DATA_SIZE
+}
+
+/**************************************************************************
+ * Exercises for occlusion query
+ */
+static GLboolean
+exercise_occlusion_query(void)
+{
+ GLuint queryObject;
+ GLint queryReady;
+ GLuint querySampleCount;
+ GLint queryCurrent;
+ GLint queryCounterBits;
+
+ /* Get the function pointers we need. These are from
+ * GL_ARB_vertex_buffer_object and are required in all
+ * cases.
+ */
+ DECLARE_GLFUNC_PTR(GenQueriesARB, PFNGLGENQUERIESARBPROC);
+ DECLARE_GLFUNC_PTR(BeginQueryARB, PFNGLBEGINQUERYARBPROC);
+ DECLARE_GLFUNC_PTR(GetQueryivARB, PFNGLGETQUERYIVARBPROC);
+ DECLARE_GLFUNC_PTR(EndQueryARB, PFNGLENDQUERYARBPROC);
+ DECLARE_GLFUNC_PTR(IsQueryARB, PFNGLISQUERYARBPROC);
+ DECLARE_GLFUNC_PTR(GetQueryObjectivARB, PFNGLGETQUERYOBJECTIVARBPROC);
+ DECLARE_GLFUNC_PTR(GetQueryObjectuivARB, PFNGLGETQUERYOBJECTUIVARBPROC);
+ DECLARE_GLFUNC_PTR(DeleteQueriesARB, PFNGLDELETEQUERIESARBPROC);
+
+ /* Make sure we have all the function pointers we need. */
+ if (GenQueriesARB == NULL ||
+ BeginQueryARB == NULL ||
+ GetQueryivARB == NULL ||
+ EndQueryARB == NULL ||
+ IsQueryARB == NULL ||
+ GetQueryObjectivARB == NULL ||
+ GetQueryObjectuivARB == NULL ||
+ DeleteQueriesARB == NULL) {
+ fprintf(stderr, "%s: don't have all the Query functions\n", __FUNCTION__);
+ return GL_FALSE;
+ }
+
+ /* Create a query object, and start a query. */
+ (*GenQueriesARB)(1, &queryObject);
+ (*BeginQueryARB)(GL_SAMPLES_PASSED_ARB, queryObject);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* While we're in the query, check the functions that are supposed
+ * to return which query we're in and how many bits of resolution
+ * we get.
+ */
+ (*GetQueryivARB)(GL_SAMPLES_PASSED_ARB, GL_CURRENT_QUERY_ARB, &queryCurrent);
+ if (queryCurrent != queryObject) {
+ fprintf(stderr, "%s: current query 0x%x != set query 0x%x\n",
+ __FUNCTION__, queryCurrent, queryObject);
+ (*EndQueryARB)(GL_SAMPLES_PASSED_ARB);
+ (*DeleteQueriesARB)(1, &queryObject);
+ return GL_FALSE;
+ }
+ (*GetQueryivARB)(GL_SAMPLES_PASSED_ARB, GL_QUERY_COUNTER_BITS_ARB,
+ &queryCounterBits);
+ if (queryCounterBits < 1) {
+ fprintf(stderr, "%s: query counter bits is too small (%d)\n",
+ __FUNCTION__, queryCounterBits);
+ (*EndQueryARB)(GL_SAMPLES_PASSED_ARB);
+ (*DeleteQueriesARB)(1, &queryObject);
+ return GL_FALSE;
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Finish up the query. Since we didn't draw anything, the result
+ * should be 0 passed samples.
+ */
+ (*EndQueryARB)(GL_SAMPLES_PASSED_ARB);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Routine existence test */
+ if (!(*IsQueryARB)(queryObject)) {
+ fprintf(stderr, "%s: query object 0x%x fails existence test\n",
+ __FUNCTION__, queryObject);
+ (*DeleteQueriesARB)(1, &queryObject);
+ return GL_FALSE;
+ }
+
+ /* Loop until the query is ready, then get back the result. We use
+ * the signed query for the boolean value of whether the result is
+ * available, but the unsigned query to actually pull the result;
+ * this is just to test both entrypoints, but in a real query you may
+ * need the extra bit of resolution.
+ */
+ queryReady = GL_FALSE;
+ do {
+ (*GetQueryObjectivARB)(queryObject, GL_QUERY_RESULT_AVAILABLE_ARB,
+ &queryReady);
+ } while (!queryReady);
+ (*GetQueryObjectuivARB)(queryObject, GL_QUERY_RESULT_ARB, &querySampleCount);
+ (*DeleteQueriesARB)(1, &queryObject);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* If sample count isn't 0, something's funny. */
+ if (querySampleCount > 0) {
+ fprintf(stderr, "%s: expected query result of 0, got %ud\n",
+ __FUNCTION__, querySampleCount);
+ return GL_FALSE;
+ }
+
+ /* Here, all is well. */
+ return GL_TRUE;
+}
+
+/**************************************************************************
* The following functions are used to check that the named OpenGL function
* actually does what it's supposed to do.
- * The naming of these functions is signficant. The getprocaddress.py script
+ * The naming of these functions is significant. The getprocaddress.py script
* scans this file and extracts these function names.
*/
+static GLboolean
+test_WeightPointerARB(generic_func func)
+{
+ /* Assume we have at least 2 vertex units (or this extension makes
+ * no sense), and establish a set of 2-element vector weights.
+ * We use floats that can be represented exactly in binary
+ * floating point formats so we can compare correctly later.
+ * We also make sure the 0th entry matches the default weights,
+ * so we can restore the default easily.
+ */
+#define USE_VERTEX_UNITS 2
+#define USE_WEIGHT_INDEX 3
+ static GLfloat weights[] = {
+ 1.0, 0.0,
+ 0.875, 0.125,
+ 0.75, 0.25,
+ 0.625, 0.375,
+ 0.5, 0.5,
+ 0.375, 0.625,
+ 0.25, 0.75,
+ 0.125, 0.875,
+ 0.0, 1.0,
+ };
+ GLint numVertexUnits;
+ GLfloat *currentWeights;
+ int i;
+ int errorCount = 0;
+
+ PFNGLWEIGHTPOINTERARBPROC WeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC) func;
+
+ /* Make sure we have at least two vertex units */
+ glGetIntegerv(GL_MAX_VERTEX_UNITS_ARB, &numVertexUnits);
+ if (numVertexUnits < USE_VERTEX_UNITS) {
+ fprintf(stderr, "%s: need %d vertex units, got %d\n",
+ __FUNCTION__, USE_VERTEX_UNITS, numVertexUnits);
+ return GL_FALSE;
+ }
+
+ /* Make sure we allocate enough room to query all the current weights */
+ currentWeights = (GLfloat *)malloc(numVertexUnits * sizeof(GLfloat));
+ if (currentWeights == NULL) {
+ fprintf(stderr, "%s: couldn't allocate room for %d floats\n",
+ __FUNCTION__, numVertexUnits);
+ return GL_FALSE;
+ }
+
+ /* Set up the pointer, enable the state, and try to send down a
+ * weight vector (we'll arbitrarily send index 2).
+ */
+ (*WeightPointerARB)(USE_VERTEX_UNITS, GL_FLOAT, 0, weights);
+ glEnableClientState(GL_WEIGHT_ARRAY_ARB);
+ glArrayElement(USE_WEIGHT_INDEX);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Verify that it changed the current state. */
+ glGetFloatv(GL_CURRENT_WEIGHT_ARB, currentWeights);
+ for (i = 0; i < numVertexUnits; i++) {
+ if (i < USE_VERTEX_UNITS) {
+ /* This is one of the units we explicitly set. */
+ if (currentWeights[i] != weights[USE_VERTEX_UNITS*USE_WEIGHT_INDEX + i]) {
+ fprintf(stderr, "%s: current weight at index %d is %f, should be %f\n",
+ __FUNCTION__, i, currentWeights[i],
+ weights[USE_VERTEX_UNITS*USE_WEIGHT_INDEX + i]);
+ errorCount++;
+ }
+ }
+ else {
+ /* All other weights should be 0. */
+ if (currentWeights[i] != 0.0) {
+ fprintf(stderr, "%s: current weight at index %d is %f, should be %f\n",
+ __FUNCTION__, i, 0.0,
+ weights[USE_VERTEX_UNITS*USE_WEIGHT_INDEX + i]);
+ errorCount++;
+ }
+ }
+ }
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Restore the old state. We know the default set of weights is in
+ * index 0.
+ */
+ glArrayElement(0);
+ glDisableClientState(GL_WEIGHT_ARRAY_ARB);
+ (*WeightPointerARB)(0, GL_FLOAT, 0, NULL);
+ free(currentWeights);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* We're fine if we didn't get any mismatches. */
+ if (errorCount == 0) {
+ return GL_TRUE;
+ }
+ else {
+ return GL_FALSE;
+ }
+}
+
+/* Wrappers on the exercise_occlusion_query function */
+static GLboolean
+test_GenQueriesARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_BeginQueryARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_GetQueryivARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_EndQueryARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_IsQueryARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_GetQueryObjectivARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_GetQueryObjectuivARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+static GLboolean
+test_DeleteQueriesARB(generic_func func)
+{
+ (void) func;
+ return exercise_occlusion_query();
+}
+
+/* Wrappers on the exercise_buffer_objects() function */
+static GLboolean
+test_GenBuffersARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_BindBufferARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_BufferDataARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_MapBufferARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_UnmapBufferARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_DeleteBuffersARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_GetBufferParameterivARB(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer);
+}
+static GLboolean
+test_FlushMappedBufferRange(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer_Range);
+}
+static GLboolean
+test_MapBufferRange(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer_Range);
+}
+static GLboolean
+test_BufferParameteriAPPLE(generic_func func)
+{
+ (void) func;
+ return exercise_buffer_objects(Use_Map_Buffer_Range);
+}
+
+/* Wrappers on the exercise_framebuffer() function */
+static GLboolean
+test_BindFramebufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_BindRenderbufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_CheckFramebufferStatusEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_DeleteFramebuffersEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_DeleteRenderbuffersEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_FramebufferRenderbufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_GenFramebuffersEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_GenRenderbuffersEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_IsFramebufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_IsRenderbufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_RenderbufferStorageEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+static GLboolean
+test_BlitFramebufferEXT(generic_func func)
+{
+ (void) func;
+ return exercise_framebuffer();
+}
+
+/* These are wrappers on the exercise_CompressedTextures function.
+ * Unfortunately, we cannot test the 1D counterparts, because the
+ * texture compressions available all support 2D and higher only.
+ */
+static GLboolean
+test_CompressedTexImage2DARB(generic_func func)
+{
+ (void) func;
+ return exercise_CompressedTextures(GL_TEXTURE_2D);
+}
+static GLboolean
+test_CompressedTexSubImage2DARB(generic_func func)
+{
+ (void) func;
+ return exercise_CompressedTextures(GL_TEXTURE_2D);
+}
+static GLboolean
+test_CompressedTexImage3DARB(generic_func func)
+{
+ (void) func;
+ return exercise_CompressedTextures(GL_TEXTURE_3D);
+}
+static GLboolean
+test_CompressedTexSubImage3DARB(generic_func func)
+{
+ (void) func;
+ return exercise_CompressedTextures(GL_TEXTURE_3D);
+}
+static GLboolean
+test_GetCompressedTexImageARB(generic_func func)
+{
+ (void) func;
+ return exercise_CompressedTextures(GL_TEXTURE_3D);
+}
+
+/* Wrappers on exercise_fences(). */
+static GLboolean
+test_DeleteFencesNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_GenFencesNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_SetFenceNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_TestFenceNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_FinishFenceNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_GetFenceivNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+static GLboolean
+test_IsFenceNV(generic_func func)
+{
+ (void) func;
+ return exercise_fences();
+}
+
+/* A bunch of glUniform*() tests */
+static GLboolean
+test_Uniform1iv(generic_func func)
+{
+ PFNGLUNIFORM1IVARBPROC Uniform1ivARB = (PFNGLUNIFORM1IVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform int uniformColor;"
+ "void main() {gl_FragColor.r = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[1] = {1};
+ GLint queriedUniform[1];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * so we must set it using integer versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform1ivARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 1, uniform, 1, queriedUniform);
+}
+
+static GLboolean
+test_Uniform1i(generic_func func)
+{
+ PFNGLUNIFORM1IARBPROC Uniform1iARB = (PFNGLUNIFORM1IARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform int uniformColor;"
+ "void main() {gl_FragColor.r = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[1] = {1};
+ GLint queriedUniform[4];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * so we must set it using integer versions
+ * of the Uniform* functions.
+ */
+ (*Uniform1iARB)(uniformLocation, uniform[0]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 1, uniform, 1, queriedUniform);
+}
+
+static GLboolean
+test_Uniform1fv(generic_func func)
+{
+ PFNGLUNIFORM1FVARBPROC Uniform1fvARB = (PFNGLUNIFORM1FVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform float uniformColor;"
+ "void main() {gl_FragColor.r = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[1] = {1.1};
+ GLfloat queriedUniform[1];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * so we must set it using float versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform1fvARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 1, uniform, 1, queriedUniform);
+}
+
+static GLboolean
+test_Uniform1f(generic_func func)
+{
+ PFNGLUNIFORM1FARBPROC Uniform1fARB = (PFNGLUNIFORM1FARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform float uniformColor;"
+ "void main() {gl_FragColor.r = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[1] = {1.1};
+ GLfloat queriedUniform[1];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * so we must set it using float versions
+ * of the Uniform* functions.
+ */
+ (*Uniform1fARB)(uniformLocation, uniform[0]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 1, uniform, 1, queriedUniform);
+}
+
+static GLboolean
+test_Uniform2iv(generic_func func)
+{
+ PFNGLUNIFORM2IVARBPROC Uniform2ivARB = (PFNGLUNIFORM2IVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec2 uniformColor;"
+ "void main() {gl_FragColor.rg = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[2] = {1,2};
+ GLint queriedUniform[2];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector 2 (ivec2), so we must set it using integer versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform2ivARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 2, uniform, 2, queriedUniform);
+}
+
+static GLboolean
+test_Uniform2i(generic_func func)
+{
+ PFNGLUNIFORM2IARBPROC Uniform2iARB = (PFNGLUNIFORM2IARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec2 uniformColor;"
+ "void main() {gl_FragColor.rg = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[2] = {1,2};
+ GLint queriedUniform[4];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector 2 (ivec2), so we must set it using integer versions
+ * of the Uniform* functions.
+ */
+ (*Uniform2iARB)(uniformLocation, uniform[0], uniform[1]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 2, uniform, 2, queriedUniform);
+}
+
+static GLboolean
+test_Uniform2fv(generic_func func)
+{
+ PFNGLUNIFORM2FVARBPROC Uniform2fvARB = (PFNGLUNIFORM2FVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec2 uniformColor;"
+ "void main() {gl_FragColor.rg = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[2] = {1.1,2.2};
+ GLfloat queriedUniform[2];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * vector 2 (vec2), so we must set it using float versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform2fvARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 2, uniform, 2, queriedUniform);
+}
+
+static GLboolean
+test_Uniform2f(generic_func func)
+{
+ PFNGLUNIFORM2FARBPROC Uniform2fARB = (PFNGLUNIFORM2FARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec2 uniformColor;"
+ "void main() {gl_FragColor.rg = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[2] = {1.1,2.2};
+ GLfloat queriedUniform[2];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * vector 2 (vec2), so we must set it using float versions
+ * of the Uniform* functions.
+ */
+ (*Uniform2fARB)(uniformLocation, uniform[0], uniform[1]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 2, uniform, 2, queriedUniform);
+}
+
+static GLboolean
+test_Uniform3iv(generic_func func)
+{
+ PFNGLUNIFORM3IVARBPROC Uniform3ivARB = (PFNGLUNIFORM3IVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec3 uniformColor;"
+ "void main() {gl_FragColor.rgb = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[3] = {1,2,3};
+ GLint queriedUniform[3];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector 3 (ivec3), so we must set it using integer versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform3ivARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 3, uniform, 3, queriedUniform);
+}
+
+static GLboolean
+test_Uniform3i(generic_func func)
+{
+ PFNGLUNIFORM3IARBPROC Uniform3iARB = (PFNGLUNIFORM3IARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec3 uniformColor;"
+ "void main() {gl_FragColor.rgb = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[3] = {1,2,3};
+ GLint queriedUniform[4];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector 3 (ivec3), so we must set it using integer versions
+ * of the Uniform* functions.
+ */
+ (*Uniform3iARB)(uniformLocation, uniform[0], uniform[1], uniform[2]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 3, uniform, 3, queriedUniform);
+}
+
+static GLboolean
+test_Uniform3fv(generic_func func)
+{
+ PFNGLUNIFORM3FVARBPROC Uniform3fvARB = (PFNGLUNIFORM3FVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec3 uniformColor;"
+ "void main() {gl_FragColor.rgb = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[3] = {1.1,2.2,3.3};
+ GLfloat queriedUniform[3];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * vector 3 (vec3), so we must set it using float versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform3fvARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 3, uniform, 3, queriedUniform);
+}
+
+static GLboolean
+test_Uniform3f(generic_func func)
+{
+ PFNGLUNIFORM3FARBPROC Uniform3fARB = (PFNGLUNIFORM3FARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec3 uniformColor;"
+ "void main() {gl_FragColor.rgb = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[3] = {1.1,2.2,3.3};
+ GLfloat queriedUniform[3];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * vector 3 (vec3), so we must set it using float versions
+ * of the Uniform* functions.
+ */
+ (*Uniform3fARB)(uniformLocation, uniform[0], uniform[1], uniform[2]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 3, uniform, 3, queriedUniform);
+}
+
+static GLboolean
+test_Uniform4iv(generic_func func)
+{
+ PFNGLUNIFORM4IVARBPROC Uniform4ivARB = (PFNGLUNIFORM4IVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec4 uniformColor; void main() {gl_FragColor = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[4] = {1,2,3,4};
+ GLint queriedUniform[4];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector (ivec4), so we must set it using integer versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform4ivARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 4, uniform, 4, queriedUniform);
+}
+
+static GLboolean
+test_Uniform4i(generic_func func)
+{
+ PFNGLUNIFORM4IARBPROC Uniform4iARB = (PFNGLUNIFORM4IARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformivARB, PFNGLGETUNIFORMIVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform ivec4 uniformColor; void main() {gl_FragColor = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLint uniform[4] = {1,2,3,4};
+ GLint queriedUniform[4];
+
+ if (GetUniformivARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector (ivec4), so we must set it using integer versions
+ * of the Uniform* functions.
+ */
+ (*Uniform4iARB)(uniformLocation, uniform[0], uniform[1], uniform[2],
+ uniform[3]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformivARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_ints(__FUNCTION__, 4, uniform, 4, queriedUniform);
+}
+
+static GLboolean
+test_Uniform4fv(generic_func func)
+{
+ PFNGLUNIFORM4FVARBPROC Uniform4fvARB = (PFNGLUNIFORM4FVARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec4 uniformColor; void main() {gl_FragColor = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[4] = {1.1,2.2,3.3,4.4};
+ GLfloat queriedUniform[4];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is a float
+ * vector (vec4), so we must set it using float versions
+ * of the Uniform* functions. The "1" means we're setting
+ * one vector's worth of information.
+ */
+ (*Uniform4fvARB)(uniformLocation, 1, uniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 4, uniform, 4, queriedUniform);
+}
+
+static GLboolean
+test_Uniform4f(generic_func func)
+{
+ PFNGLUNIFORM4FARBPROC Uniform4fARB = (PFNGLUNIFORM4FARBPROC) func;
+ DECLARE_GLFUNC_PTR(GetUniformfvARB, PFNGLGETUNIFORMFVARBPROC);
+
+ /* This is a trivial fragment shader that sets the color of the
+ * fragment to the uniform value passed in.
+ */
+ static const char *fragmentShaderText =
+ "uniform vec4 uniformColor; void main() {gl_FragColor = uniformColor;}";
+ static const char *uniformName = "uniformColor";
+
+ GLhandleARB program;
+ GLint uniformLocation;
+ const GLfloat uniform[4] = {1.1,2.2,3.3,4.4};
+ GLfloat queriedUniform[4];
+
+ if (GetUniformfvARB == NULL) {
+ return GL_FALSE;
+ }
+
+ /* Call a helper function to compile up the shader and give
+ * us back the validated program and uniform location.
+ * If it fails, something's wrong and we can't continue.
+ */
+ if (!exercise_uniform_start(fragmentShaderText, uniformName,
+ &program, &uniformLocation)) {
+ return GL_FALSE;
+ }
+
+ /* Set the value of the program uniform. Note that you must
+ * use a compatible type. Our uniform above is an integer
+ * vector (ivec4), so we must set it using integer versions
+ * of the Uniform* functions.
+ */
+ (*Uniform4fARB)(uniformLocation, uniform[0], uniform[1], uniform[2],
+ uniform[3]);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Query it back */
+ (*GetUniformfvARB)(program, uniformLocation, queriedUniform);
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
+
+ /* Clean up before we check to see whether it came back unscathed */
+ exercise_uniform_end(program);
+
+ /* Now check to see whether the uniform came back as expected. This
+ * will return GL_TRUE if all is well, or GL_FALSE if the comparison failed.
+ */
+ return compare_floats(__FUNCTION__, 4, uniform, 4, queriedUniform);
+}
static GLboolean
test_ActiveTextureARB(generic_func func)
@@ -107,6 +2694,40 @@ test_VertexAttrib1fvARB(generic_func func)
}
static GLboolean
+test_VertexAttrib1dvARB(generic_func func)
+{
+ PFNGLVERTEXATTRIB1DVARBPROC vertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) func;
+ PFNGLGETVERTEXATTRIBDVARBPROC getVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvARB");
+
+ const GLdouble v[1] = {25.0};
+ const GLdouble def[1] = {0};
+ GLdouble res[4];
+ GLboolean pass;
+ (*vertexAttrib1dvARB)(6, v);
+ (*getVertexAttribdvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
+ pass = (res[0] == 25.0 && res[1] == 0.0 && res[2] == 0.0 && res[3] == 1.0);
+ (*vertexAttrib1dvARB)(6, def);
+ return pass;
+}
+
+static GLboolean
+test_VertexAttrib1svARB(generic_func func)
+{
+ PFNGLVERTEXATTRIB1SVARBPROC vertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) func;
+ PFNGLGETVERTEXATTRIBIVARBPROC getVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivARB");
+
+ const GLshort v[1] = {25.0};
+ const GLshort def[1] = {0};
+ GLint res[4];
+ GLboolean pass;
+ (*vertexAttrib1svARB)(6, v);
+ (*getVertexAttribivARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
+ pass = (res[0] == 25 && res[1] == 0 && res[2] == 0 && res[3] == 1);
+ (*vertexAttrib1svARB)(6, def);
+ return pass;
+}
+
+static GLboolean
test_VertexAttrib4NubvARB(generic_func func)
{
PFNGLVERTEXATTRIB4NUBVARBPROC vertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) func;
@@ -177,7 +2798,6 @@ test_VertexAttrib4NsvARB(generic_func func)
return pass;
}
-
static GLboolean
test_VertexAttrib4NusvARB(generic_func func)
{
@@ -195,42 +2815,110 @@ test_VertexAttrib4NusvARB(generic_func func)
return pass;
}
+static GLboolean
+test_VertexAttrib1sNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB1SNVPROC vertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 0, 0, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib1sNV)(6, v[0]);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib1sNV)(6, def[0]);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
static GLboolean
-test_VertexAttrib4ubNV(generic_func func)
+test_VertexAttrib1fNV(generic_func func)
{
- PFNGLVERTEXATTRIB4UBNVPROC vertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC) func;
+ PFNGLVERTEXATTRIB1FNVPROC vertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC) func;
PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
- const GLubyte v[4] = {255, 0, 255, 0};
- const GLubyte def[4] = {0, 0, 0, 255};
+ const GLfloat v[4] = {2.5, 0.0, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4ubNV)(6, v[0], v[1], v[2], v[3]);
+ (*vertexAttrib1fNV)(6, v[0]);
(*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- pass = (res[0] == 1.0 && res[1] == 0.0 && res[2] == 1.0 && res[3] == 0.0);
- (*vertexAttrib4ubNV)(6, def[0], def[1], def[2], def[3]);
- return pass;
+ (*vertexAttrib1fNV)(6, def[0]);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
}
+static GLboolean
+test_VertexAttrib1dNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB1DNVPROC vertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 0.0, 0.0, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib1dNV)(6, v[0]);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib1dNV)(6, def[0]);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
static GLboolean
test_VertexAttrib2sNV(generic_func func)
{
PFNGLVERTEXATTRIB2SNVPROC vertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 0, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib2sNV)(6, v[0], v[1]);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib2sNV)(6, def[0], def[1]);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib2fNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB2FNVPROC vertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC) func;
PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
- const GLshort v[2] = {2, -4,};
- const GLshort def[2] = {0, 0};
+ const GLfloat v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib2sNV)(6, v[0], v[1]);
+ (*vertexAttrib2fNV)(6, v[0], v[1]);
(*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- pass = (EQUAL(res[0], 2) && EQUAL(res[1], -4) && EQUAL(res[2], 0) && res[3] == 1.0);
- (*vertexAttrib2sNV)(6, def[0], def[1]);
- return pass;
+ (*vertexAttrib2fNV)(6, def[0], def[1]);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib2dNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB2DNVPROC vertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib2dNV)(6, v[0], v[1]);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib2dNV)(6, def[0], def[1]);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
}
+static GLboolean
+test_VertexAttrib3sNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB3SNVPROC vertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib3sNV)(6, v[0], v[1], v[2]);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib3sNV)(6, def[0], def[1], def[2]);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
static GLboolean
test_VertexAttrib3fNV(generic_func func)
@@ -238,35 +2926,467 @@ test_VertexAttrib3fNV(generic_func func)
PFNGLVERTEXATTRIB3FNVPROC vertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC) func;
PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
- const GLfloat v[3] = {0.2, 0.4, 0.8};
- const GLfloat def[3] = {0, 0, 0};
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
GLfloat res[4];
- GLboolean pass;
(*vertexAttrib3fNV)(6, v[0], v[1], v[2]);
(*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- pass = (EQUAL(res[0], 0.2) && EQUAL(res[1], 0.4) && EQUAL(res[2], 0.8) && res[3] == 1.0);
(*vertexAttrib3fNV)(6, def[0], def[1], def[2]);
- return pass;
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
}
+static GLboolean
+test_VertexAttrib3dNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB3DNVPROC vertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib3dNV)(6, v[0], v[1], v[2]);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib3dNV)(6, def[0], def[1], def[2]);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4sNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4SNVPROC vertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 5};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib4sNV)(6, v[0], v[1], v[2], v[3]);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4sNV)(6, def[0], def[1], def[2], def[3]);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4fNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4FNVPROC vertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttrib4fNV)(6, v[0], v[1], v[2], v[3]);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4fNV)(6, def[0], def[1], def[2], def[3]);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4dNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4DNVPROC vertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib4dNV)(6, v[0], v[1], v[2], v[3]);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4dNV)(6, def[0], def[1], def[2], def[3]);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4ubNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4UBNVPROC vertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLubyte v[4] = {255, 0, 255, 0};
+ const GLubyte def[4] = {0, 0, 0, 255};
+ GLfloat res[4];
+ /* There's no byte-value query; so we use the float-value query.
+ * Bytes are interpreted as steps between 0 and 1, so the
+ * expected float values will be 0.0 for byte value 0 and 1.0 for
+ * byte value 255.
+ */
+ GLfloat expectedResults[4] = {1.0, 0.0, 1.0, 0.0};
+ (*vertexAttrib4ubNV)(6, v[0], v[1], v[2], v[3]);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4ubNV)(6, def[0], def[1], def[2], def[3]);
+ return compare_floats(__FUNCTION__, 4, expectedResults, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib1fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB1FVNVPROC vertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 0.0, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttrib1fvNV)(6, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib1fvNV)(6, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib1dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB1DVNVPROC vertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 0.0, 0.0, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib1dvNV)(6, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib1dvNV)(6, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib2svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB2SVNVPROC vertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 0, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib2svNV)(6, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib2svNV)(6, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib2fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB2FVNVPROC vertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttrib2fvNV)(6, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib2fvNV)(6, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib2dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB2DVNVPROC vertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib2dvNV)(6, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib2dvNV)(6, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib3svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB3SVNVPROC vertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib3svNV)(6, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib3svNV)(6, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib3fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB3FVNVPROC vertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttrib3fvNV)(6, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib3fvNV)(6, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib3dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB3DVNVPROC vertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib3dvNV)(6, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib3dvNV)(6, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4SVNVPROC vertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 5};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttrib4svNV)(6, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4svNV)(6, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4FVNVPROC vertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttrib4fvNV)(6, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4fvNV)(6, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
static GLboolean
test_VertexAttrib4dvNV(generic_func func)
{
PFNGLVERTEXATTRIB4DVNVPROC vertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttrib4dvNV)(6, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4dvNV)(6, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttrib4ubvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIB4UBVNVPROC vertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLubyte v[4] = {255, 0, 255, 0};
+ const GLubyte def[4] = {0, 0, 0, 255};
+ GLfloat res[4];
+ /* There's no byte-value query; so we use the float-value query.
+ * Bytes are interpreted as steps between 0 and 1, so the
+ * expected float values will be 0.0 for byte value 0 and 1.0 for
+ * byte value 255.
+ */
+ GLfloat expectedResults[4] = {1.0, 0.0, 1.0, 0.0};
+ (*vertexAttrib4ubvNV)(6, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttrib4ubvNV)(6, def);
+ return compare_floats(__FUNCTION__, 4, expectedResults, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs1fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS1FVNVPROC vertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC) func;
PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
- const GLdouble v[4] = {0.2, 0.4, 0.8, 1.2};
+ const GLfloat v[4] = {2.5, 0.0, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttribs1fvNV)(6, 1, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs1fvNV)(6, 1, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs1dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS1DVNVPROC vertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 0.0, 0.0, 1.0};
const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttribs1dvNV)(6, 1, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs1dvNV)(6, 1, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs2svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS2SVNVPROC vertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 0, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttribs2svNV)(6, 1, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs2svNV)(6, 1, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs2fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS2FVNVPROC vertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4dvNV)(6, v);
+ (*vertexAttribs2fvNV)(6, 1, v);
(*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- pass = (EQUAL(res[0], 0.2) && EQUAL(res[1], 0.4) && EQUAL(res[2], 0.8) && EQUAL(res[3], 1.2));
- (*vertexAttrib4dvNV)(6, def);
- return pass;
+ (*vertexAttribs2fvNV)(6, 1, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs2dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS2DVNVPROC vertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 0.0, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttribs2dvNV)(6, 1, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs2dvNV)(6, 1, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
}
+static GLboolean
+test_VertexAttribs3svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS3SVNVPROC vertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 1};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttribs3svNV)(6, 1, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs3svNV)(6, 1, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs3fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS3FVNVPROC vertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttribs3fvNV)(6, 1, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs3fvNV)(6, 1, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs3dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS3DVNVPROC vertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 1.0};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttribs3dvNV)(6, 1, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs3dvNV)(6, 1, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs4svNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS4SVNVPROC vertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC) func;
+ PFNGLGETVERTEXATTRIBIVNVPROC getVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribivNV");
+
+ const GLshort v[4] = {2, 4, 7, 5};
+ const GLshort def[4] = {0, 0, 0, 1};
+ GLint res[4];
+ (*vertexAttribs4svNV)(6, 1, v);
+ (*getVertexAttribivNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs4svNV)(6, 1, def);
+ return compare_shorts_to_ints(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs4fvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS4FVNVPROC vertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLfloat v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLfloat def[4] = {0, 0, 0, 1};
+ GLfloat res[4];
+ (*vertexAttribs4fvNV)(6, 1, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs4fvNV)(6, 1, def);
+ return compare_floats(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs4dvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS4DVNVPROC vertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC) func;
+ PFNGLGETVERTEXATTRIBDVNVPROC getVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribdvNV");
+
+ const GLdouble v[4] = {2.5, 4.25, 7.125, 5.0625};
+ const GLdouble def[4] = {0, 0, 0, 1};
+ GLdouble res[4];
+ (*vertexAttribs4dvNV)(6, 1, v);
+ (*getVertexAttribdvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs4dvNV)(6, 1, def);
+ return compare_doubles(__FUNCTION__, 4, v, 4, res);
+}
+
+static GLboolean
+test_VertexAttribs4ubvNV(generic_func func)
+{
+ PFNGLVERTEXATTRIBS4UBVNVPROC vertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC) func;
+ PFNGLGETVERTEXATTRIBFVNVPROC getVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvNV");
+
+ const GLubyte v[4] = {255, 0, 255, 0};
+ const GLubyte def[4] = {0, 0, 0, 255};
+ GLfloat res[4];
+ /* There's no byte-value query; so we use the float-value query.
+ * Bytes are interpreted as steps between 0 and 1, so the
+ * expected float values will be 0.0 for byte value 0 and 1.0 for
+ * byte value 255.
+ */
+ GLfloat expectedResults[4] = {1.0, 0.0, 1.0, 0.0};
+ (*vertexAttribs4ubvNV)(6, 1, v);
+ (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
+ (*vertexAttribs4ubvNV)(6, 1, def);
+ return compare_floats(__FUNCTION__, 4, expectedResults, 4, res);
+}
static GLboolean
test_StencilFuncSeparateATI(generic_func func)
@@ -387,17 +3507,32 @@ extension_supported(const char *haystack, const char *needle)
}
-static void
+/* Run all the known extension function tests, if the extension is supported.
+ * Return a count of how many failed.
+ */
+static int
check_functions( const char *extensions )
{
struct name_test_pair *entry;
- int failures = 0, passes = 0;
- int totalFail = 0, totalPass = 0;
+ int failures = 0, passes = 0, untested = 0;
+ int totalFail = 0, totalPass = 0, totalUntested = 0, totalUnsupported = 0;
int doTests;
-
+ const char *version = (const char *) glGetString(GL_VERSION);
+
+ /* The functions list will have "real" entries (consisting of
+ * a GL function name and a pointer to an exercise function for
+ * that GL function), and "group" entries (indicated as
+ * such by having a "-" as the first character of the name).
+ * "Group" names always start with the "-" character, and can
+ * be numeric (e.g. "-1.0", "-2.1"), indicating that a particular
+ * OpenGL version is required for the following functions; or can be
+ * an extension name (e.g. "-GL_ARB_multitexture") that means
+ * that the named extension is required for the following functions.
+ */
for (entry = functions; entry->name; entry++) {
+ /* Check if this is a group indicator */
if (entry->name[0] == '-') {
- const char *version = (const char *) glGetString(GL_VERSION);
+ /* A group indicator; check if it's an OpenGL version group */
if (entry->name[1] == '1') {
/* check GL version 1.x */
if (version[0] == '1' &&
@@ -419,14 +3554,27 @@ check_functions( const char *extensions )
/* check if the named extension is available */
doTests = extension_supported(extensions, entry->name+1);
}
+
+ /* doTests is now set if we're starting an OpenGL version
+ * group, and the running OpenGL version is at least the
+ * version required; or if we're starting an OpenGL extension
+ * group, and the extension is supported.
+ */
if (doTests)
printf("Testing %s functions\n", entry->name + 1);
- totalFail += failures;
- totalPass += passes;
+
+ /* Each time we hit a title function, reset the function
+ * counts.
+ */
failures = 0;
passes = 0;
+ untested = 0;
}
else if (doTests) {
+ /* Here, we know we're trying to exercise a function for
+ * a supported extension. See whether we have a test for
+ * it, and try to run it.
+ */
generic_func funcPtr = (generic_func) glXGetProcAddressARB((const GLubyte *) entry->name);
if (funcPtr) {
if (entry->test) {
@@ -436,21 +3584,36 @@ check_functions( const char *extensions )
if (b) {
printf(" Pass\n");
passes++;
+ totalPass++;
}
else {
printf(" FAIL!!!\n");
failures++;
+ totalFail++;
}
}
else {
- passes++;
+ untested++;
+ totalUntested++;
}
}
else {
printf(" glXGetProcAddress(%s) failed!\n", entry->name);
failures++;
+ totalFail++;
}
}
+ else {
+ /* Here, we have a function that belongs to a group that
+ * is known to be unsupported.
+ */
+ totalUnsupported++;
+ }
+
+ /* Make sure a poor test case doesn't leave any lingering
+ * OpenGL errors.
+ */
+ CheckGLError(__LINE__, __FILE__, __FUNCTION__);
if (doTests && (!(entry+1)->name || (entry+1)->name[0] == '-')) {
if (failures > 0) {
@@ -459,18 +3622,29 @@ check_functions( const char *extensions )
if (passes > 0) {
printf(" %d passed.\n", passes);
}
+ if (untested > 0) {
+ printf(" %d untested.\n", untested);
+ }
}
}
- totalFail += failures;
- totalPass += passes;
printf("-----------------------------\n");
- printf("Total: %d pass %d fail\n", totalPass, totalFail);
+ printf("Total: %d pass %d fail %d untested %d unsupported %d total\n",
+ totalPass, totalFail, totalUntested, totalUnsupported,
+ totalPass + totalFail + totalUntested + totalUnsupported);
+
+ return totalFail;
}
+/* Return an error code */
+#define ERROR_NONE 0
+#define ERROR_NO_VISUAL 1
+#define ERROR_NO_CONTEXT 2
+#define ERROR_NO_MAKECURRENT 3
+#define ERROR_FAILED 4
-static void
+static int
print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
{
Window win;
@@ -496,6 +3670,7 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
GLXContext ctx;
XVisualInfo *visinfo;
int width = 100, height = 100;
+ int failures;
root = RootWindow(dpy, scrnum);
@@ -504,7 +3679,7 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
visinfo = glXChooseVisual(dpy, scrnum, attribDouble);
if (!visinfo) {
fprintf(stderr, "Error: couldn't find RGB GLX visual\n");
- return;
+ return ERROR_NO_VISUAL;
}
}
@@ -521,26 +3696,29 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
if (!ctx) {
fprintf(stderr, "Error: glXCreateContext failed\n");
XDestroyWindow(dpy, win);
- return;
+ return ERROR_NO_CONTEXT;
}
- if (glXMakeCurrent(dpy, win, ctx)) {
- check_functions( (const char *) glGetString(GL_EXTENSIONS) );
- }
- else {
+ if (!glXMakeCurrent(dpy, win, ctx)) {
fprintf(stderr, "Error: glXMakeCurrent failed\n");
+ glXDestroyContext(dpy, ctx);
+ XDestroyWindow(dpy, win);
+ return ERROR_NO_MAKECURRENT;
}
+ failures = check_functions( (const char *) glGetString(GL_EXTENSIONS) );
glXDestroyContext(dpy, ctx);
XDestroyWindow(dpy, win);
-}
+ return (failures == 0 ? ERROR_NONE : ERROR_FAILED);
+}
int
main(int argc, char *argv[])
{
char *displayName = NULL;
Display *dpy;
+ int returnCode;
dpy = XOpenDisplay(displayName);
if (!dpy) {
@@ -548,9 +3726,9 @@ main(int argc, char *argv[])
return -1;
}
- print_screen_info(dpy, 0, GL_TRUE);
+ returnCode = print_screen_info(dpy, 0, GL_TRUE);
XCloseDisplay(dpy);
- return 0;
+ return returnCode;
}
diff --git a/progs/tests/getprocaddress.py b/progs/tests/getprocaddress.py
index 8adfc51bd6..699195bd48 100644
--- a/progs/tests/getprocaddress.py
+++ b/progs/tests/getprocaddress.py
@@ -52,7 +52,7 @@ static struct name_test_pair functions[] = {"""
prev_category = None
- for f in api.functionIterateByOffset():
+ for f in api.functionIterateByCategory():
[category, num] = api.get_category_for_name( f.name )
if category != prev_category:
print ' { "-%s", NULL},' % category
diff --git a/progs/tests/getteximage.c b/progs/tests/getteximage.c
index e4818a8fab..71f29b4ac8 100644
--- a/progs/tests/getteximage.c
+++ b/progs/tests/getteximage.c
@@ -15,7 +15,7 @@ static int Win;
static void
-TestGetTexImage(void)
+TestGetTexImage(GLboolean npot)
{
GLuint iter;
GLubyte *data = (GLubyte *) malloc(1024 * 1024 * 4);
@@ -27,8 +27,8 @@ TestGetTexImage(void)
for (iter = 0; iter < 8; iter++) {
GLint p = (iter % 8) + 3;
- GLint w = (1 << p);
- GLint h = (1 << p);
+ GLint w = npot ? (p * 20) : (1 << p);
+ GLint h = npot ? (p * 10) : (1 << p);
GLuint i;
GLint level = 0;
@@ -83,63 +83,94 @@ ColorsEqual(const GLubyte ref[4], const GLubyte act[4])
static void
-TestGetTexImageRTT(void)
+TestGetTexImageRTT(GLboolean npot)
{
GLuint iter;
- GLuint fb, tex;
- GLint w = 512;
- GLint h = 256;
- GLint level = 0;
-
- glGenTextures(1, &tex);
- glGenFramebuffersEXT(1, &fb);
-
- glBindTexture(GL_TEXTURE_2D, tex);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
-
- glBindFramebuffer(GL_FRAMEBUFFER_EXT, fb);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_TEXTURE_2D, tex, level);
printf("Render to texture + glGetTexImage:\n");
- printf(" Testing %d x %d tex image\n", w, h);
+
for (iter = 0; iter < 8; iter++) {
- GLubyte color[4];
- GLubyte *data2 = (GLubyte *) malloc(w * h * 4);
- GLuint i;
- /* random clear color */
- for (i = 0; i < 4; i++) {
- color[i] = rand() % 256;
+ GLuint fb, tex;
+ GLint w, h;
+ GLint level = 0;
+
+ if (npot) {
+ w = 200 + iter * 40;
+ h = 200 + iter * 12;
+ }
+ else {
+ w = 4 << iter;
+ h = 4 << iter;
}
- glClearColor(color[0] / 255.0,
- color[1] / 255.0,
- color[2] / 255.0,
- color[3] / 255.0);
+ glGenTextures(1, &tex);
+ glGenFramebuffersEXT(1, &fb);
- glClear(GL_COLOR_BUFFER_BIT);
+ glBindTexture(GL_TEXTURE_2D, tex);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- /* get */
- glGetTexImage(GL_TEXTURE_2D, level, GL_RGBA, GL_UNSIGNED_BYTE, data2);
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
+ glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
+ GL_TEXTURE_2D, tex, level);
- /* compare */
- for (i = 0; i < w * h; i += 4) {
- if (!ColorsEqual(color, data2 + i * 4)) {
- printf("Render to texture failure!\n");
- abort();
+ glViewport(0, 0, w, h);
+
+ printf(" Testing %d x %d tex image\n", w, h);
+ {
+ static const GLubyte blue[4] = {0, 0, 255, 255};
+ GLubyte color[4];
+ GLubyte *data2 = (GLubyte *) malloc(w * h * 4);
+ GLuint i;
+
+ /* random clear color */
+ for (i = 0; i < 4; i++) {
+ color[i] = rand() % 256;
+ }
+
+ glClearColor(color[0] / 255.0,
+ color[1] / 255.0,
+ color[2] / 255.0,
+ color[3] / 255.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ /* draw polygon over top half, in blue */
+ glColor4ubv(blue);
+ glRectf(0, 0.5, 1.0, 1.0);
+
+ /* get */
+ glGetTexImage(GL_TEXTURE_2D, level, GL_RGBA, GL_UNSIGNED_BYTE, data2);
+
+ /* compare */
+ for (i = 0; i < w * h; i += 4) {
+ if (i < w * h / 2) {
+ /* lower half */
+ if (!ColorsEqual(color, data2 + i * 4)) {
+ printf("Render to texture failure (expected clear color)!\n");
+ abort();
+ }
+ }
+ else {
+ /* upper half */
+ if (!ColorsEqual(blue, data2 + i * 4)) {
+ printf("Render to texture failure (expected blue)!\n");
+ abort();
+ }
+ }
}
+
+ free(data2);
}
- free(data2);
- }
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+ glDeleteFramebuffersEXT(1, &fb);
+ glDeleteTextures(1, &tex);
- glBindFramebuffer(GL_FRAMEBUFFER_EXT, 0);
- glDeleteFramebuffersEXT(1, &fb);
- glDeleteTextures(1, &tex);
+ }
printf("Passed\n");
}
@@ -152,11 +183,16 @@ Draw(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- TestGetTexImage();
+ TestGetTexImage(GL_FALSE);
+ if (glutExtensionSupported("GL_ARB_texture_non_power_of_two"))
+ TestGetTexImage(GL_TRUE);
if (glutExtensionSupported("GL_EXT_framebuffer_object") ||
- glutExtensionSupported("GL_ARB_framebuffer_object"))
- TestGetTexImageRTT();
+ glutExtensionSupported("GL_ARB_framebuffer_object")) {
+ TestGetTexImageRTT(GL_FALSE);
+ if (glutExtensionSupported("GL_ARB_texture_non_power_of_two"))
+ TestGetTexImageRTT(GL_TRUE);
+ }
glutDestroyWindow(Win);
exit(0);
@@ -171,10 +207,10 @@ Reshape(int width, int height)
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
- glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
+ glOrtho(0, 1, 0, 1, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
- glTranslatef(0.0, 0.0, -15.0);
+ glTranslatef(0.0, 0.0, 0.0);
}
diff --git a/progs/tests/mapbufrange.c b/progs/tests/mapbufrange.c
index 0021bb2607..76e02dd406 100644
--- a/progs/tests/mapbufrange.c
+++ b/progs/tests/mapbufrange.c
@@ -98,10 +98,10 @@ Draw(void)
{
glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
glVertexPointer(3, GL_FLOAT, 24, 0);
- glEnable(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(3, GL_FLOAT, 24, (void*) 12);
- glEnable(GL_COLOR_ARRAY);
+ glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(GL_QUADS, 0, NumRects * 4);
diff --git a/progs/tests/mapvbo.c b/progs/tests/mapvbo.c
index c392e76835..52a22a5e79 100644
--- a/progs/tests/mapvbo.c
+++ b/progs/tests/mapvbo.c
@@ -54,10 +54,10 @@ Draw(void)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
glVertexPointer(3, GL_FLOAT, 24, 0);
- glEnable(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(3, GL_FLOAT, 24, (void*) 12);
- glEnable(GL_COLOR_ARRAY);
+ glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
diff --git a/progs/tests/mipmap_comp_tests.c b/progs/tests/mipmap_comp_tests.c
new file mode 100644
index 0000000000..e865b30ad0
--- /dev/null
+++ b/progs/tests/mipmap_comp_tests.c
@@ -0,0 +1,318 @@
+/* Copyright (c) Mark J. Kilgard, 1994. */
+/*
+ * (c) Copyright 1993, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+/* mipmap_comp
+ * Test compressed texture mipmaps
+ *
+ * Based on mipmap_limits
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <GL/glew.h>
+#include <GL/glut.h>
+
+#include "readtex.h"
+
+#define SIZE 16 /* not larger then 16 */
+
+static GLint BaseLevel = 0, MaxLevel ;
+static GLfloat MinLod, MaxLod;
+static GLfloat LodBias;
+static GLboolean NearestFilter;
+static GLuint texImage;
+static GLuint View;
+
+struct view {
+ GLfloat minLod;
+ GLfloat maxLod;
+ const char *string;
+};
+
+static struct view views[] =
+{
+ { 0, 0, "Green" },
+ { 0, 1, "Green, Red" },
+ { 0, 2, "Green, Red, Blue" },
+ { 0, 3, "Green, Red, Blue, Black" },
+ { 0, 4, "Green, Red, Blue, Black, White" },
+ { 1, 4, "Red, Blue, Black, White" },
+ { 2, 4, "Blue, Black, White" },
+ { 3, 4, "Black, White" },
+ { 4, 4, "White" },
+ { 3, 3, "Black" },
+ { 2, 2, "Blue" },
+ { 1, 1, "Red" },
+ { 1, 3, "Red, Blue, Black" },
+ { 1, 2, "Red, Blue" },
+ { 2, 3, "Blue, Black" },
+ { 0, 0, NULL },
+};
+
+static void
+initValues(void)
+{
+ View = 12;
+ BaseLevel = 0;
+ MaxLevel = 9;
+ MinLod = views[View].minLod;
+ MaxLod = views[View].maxLod;
+ LodBias = 5.0;
+ NearestFilter = GL_TRUE;
+}
+
+
+static void
+changeView(void)
+{
+ if (views[++View].string == NULL)
+ View = 0;
+
+ MinLod = views[View].minLod;
+ MaxLod = views[View].maxLod;
+}
+
+
+static void
+makeImage(int level, int width, int height)
+{
+ GLubyte img[SIZE*SIZE*3];
+ GLubyte color[5][3] = {
+ { 0, 255, 0 },
+ { 255, 0, 0 },
+ { 0, 0, 255 },
+ { 0, 0, 0 },
+ { 255, 255, 255 },
+ };
+ int i, j;
+
+ for (i = 0; i < height; i++) {
+ for (j = 0; j < width; j++) {
+ int k = (i * width + j) * 3;
+ img[k + 0] = color[level][0];
+ img[k + 1] = color[level][1];
+ img[k + 2] = color[level][2];
+ }
+ }
+
+ glTexImage2D(GL_TEXTURE_2D, level,
+ GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
+ width, height, 0,
+ GL_RGB, GL_UNSIGNED_BYTE, img);
+}
+
+
+static void
+makeImages(void)
+{
+ int i, sz;
+
+ for (i = 0, sz = SIZE; sz >= 1; i++, sz /= 2) {
+ makeImage(i, sz, sz);
+ printf("Level %d size: %d x %d\n", i, sz, sz);
+ }
+}
+
+
+static void
+myInit(void)
+{
+
+ initValues();
+
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glShadeModel(GL_FLAT);
+
+ glTranslatef(0.0, 0.0, -3.6);
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ glGenTextures(1, &texImage);
+ glBindTexture(GL_TEXTURE_2D, texImage);
+ makeImages();
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+ glEnable(GL_TEXTURE_2D);
+}
+
+
+static void
+display(void)
+{
+ GLfloat tcm = 1.0;
+ glBindTexture(GL_TEXTURE_2D, texImage);
+
+ printf("BASE_LEVEL=%d MAX_LEVEL=%d MIN_LOD=%.2g MAX_LOD=%.2g Bias=%.2g Filter=%s\n",
+ BaseLevel, MaxLevel, MinLod, MaxLod, LodBias,
+ NearestFilter ? "NEAREST" : "LINEAR");
+ printf("You should see: %s\n", views[View].string );
+ fflush(stdout);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, BaseLevel);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, MaxLevel);
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, MinLod);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, MaxLod);
+
+ if (NearestFilter) {
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_NEAREST_MIPMAP_NEAREST);
+ }
+ else {
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR_MIPMAP_LINEAR);
+ }
+
+ glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, LodBias);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
+ glTexCoord2f(0.0, tcm); glVertex3f(-2.0, 1.0, 0.0);
+ glTexCoord2f(tcm * 3000.0, tcm); glVertex3f(3000.0, 1.0, -6000.0);
+ glTexCoord2f(tcm * 3000.0, 0.0); glVertex3f(3000.0, -1.0, -6000.0);
+ glEnd();
+ glFlush();
+}
+
+
+static void
+myReshape(int w, int h)
+{
+ glViewport(0, 0, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30000.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+
+static void
+key(unsigned char k, int x, int y)
+{
+ (void) x;
+ (void) y;
+ switch (k) {
+#if 0
+ case 'b':
+ BaseLevel--;
+ if (BaseLevel < 0)
+ BaseLevel = 0;
+ break;
+ case 'B':
+ BaseLevel++;
+ if (BaseLevel > 10)
+ BaseLevel = 10;
+ break;
+ case 'm':
+ MaxLevel--;
+ if (MaxLevel < 0)
+ MaxLevel = 0;
+ break;
+ case 'M':
+ MaxLevel++;
+ if (MaxLevel > 10)
+ MaxLevel = 10;
+ break;
+ case 'l':
+ LodBias -= 0.25;
+ break;
+ case 'L':
+ LodBias += 0.25;
+ break;
+ case 'n':
+ MinLod -= 0.25;
+ break;
+ case 'N':
+ MinLod += 0.25;
+ break;
+ case 'x':
+ MaxLod -= 0.25;
+ break;
+ case 'X':
+ MaxLod += 0.25;
+ break;
+ case 'f':
+ NearestFilter = !NearestFilter;
+ break;
+#endif
+ case ' ':
+ initValues();
+ break;
+ case 27: /* Escape */
+ exit(0);
+ break;
+ default:
+ changeView();
+ break;
+ }
+ glutPostRedisplay();
+}
+
+
+static void
+usage(void)
+{
+ printf("usage:\n");
+ printf(" Any Change view\n");
+ printf(" SPACE reset values\n");
+}
+
+
+int
+main(int argc, char** argv)
+{
+ glutInit(&argc, argv);
+ glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
+ glutInitWindowSize (600, 600);
+ glutCreateWindow (argv[0]);
+ glewInit();
+ myInit();
+ glutReshapeFunc (myReshape);
+ glutDisplayFunc(display);
+ glutKeyboardFunc(key);
+ usage();
+ glutMainLoop();
+ return 0; /* ANSI C requires main to return int. */
+}
diff --git a/progs/tests/persp_hint.c b/progs/tests/persp_hint.c
new file mode 100644
index 0000000000..27140d1f56
--- /dev/null
+++ b/progs/tests/persp_hint.c
@@ -0,0 +1,149 @@
+/*
+ * Test the GL_PERSPECTIVE_CORRECTION_HINT setting and its effect on
+ * color interpolation.
+ *
+ * Press 'i' to toggle between GL_NICEST/GL_FASTEST/GL_DONT_CARE.
+ *
+ * Depending on the driver, the hint may make a difference, or not.
+ */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <GL/glut.h>
+
+
+static GLenum PerspHint = GL_DONT_CARE;
+
+
+static void
+init(void)
+{
+ GLubyte image[256][256][4];
+ GLuint i, j;
+ for (i = 0; i < 256; i++) {
+ for (j = 0; j < 256; j++) {
+ image[i][j][0] = j;
+ image[i][j][1] = j;
+ image[i][j][2] = j;
+ image[i][j][3] = 255;
+ }
+ }
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, 256, 256, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+
+ printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+}
+
+
+static void
+display(void)
+{
+ switch (PerspHint) {
+ case GL_NICEST:
+ printf("hint = GL_NICEST\n");
+ break;
+ case GL_FASTEST:
+ printf("hint = GL_FASTEST\n");
+ break;
+ case GL_DONT_CARE:
+ printf("hint = GL_DONT_CARE\n");
+ break;
+ default:
+ ;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+#if 1
+ glBegin(GL_QUADS);
+ /* exercise perspective interpolation */
+ glColor3f(0.0, 0.0, 0.0); glVertex3f(-1.0, -1.0, -1.0);
+ glColor3f(0.0, 0.0, 0.0); glVertex3f(-1.0, 1.0, -1.0);
+ glColor3f(0.0, 1.0, 0.0); glVertex3f( 7.0, 1.0, -7.0);
+ glColor3f(0.0, 1.0, 0.0); glVertex3f( 7.0, -1.0, -7.0);
+
+ /* stripe of linear interpolation */
+ glColor3f(0.0, 0.0, 0.0); glVertex3f(-1.0, -0.1, -1.001);
+ glColor3f(0.0, 0.0, 0.0); glVertex3f(-1.0, 0.1, -1.001);
+ glColor3f(0.0, 1.0, 0.0); glVertex3f( 1.0, 0.1, -1.001);
+ glColor3f(0.0, 1.0, 0.0); glVertex3f( 1.0, -0.1, -1.001);
+ glEnd();
+#else
+ glEnable(GL_TEXTURE_2D);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, 0.0, -1.0);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, -1.0);
+ glTexCoord2f(1.0, 1.0); glVertex3f( 5.0, 1.0, -7.0);
+ glTexCoord2f(1.0, 0.0); glVertex3f( 5.0, 0.0, -7.0);
+
+ glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, -1.001);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 0.0, -1.001);
+ glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 0.0, -1.001);
+ glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, -1.001);
+ glEnd();
+#endif
+
+ glFlush();
+}
+
+
+static void
+reshape(int w, int h)
+{
+ glViewport(0, 0, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(90.0, (GLfloat) w / h, 1.0, 300.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+
+static void
+key(unsigned char k, int x, int y)
+{
+ switch (k) {
+ case 27: /* Escape */
+ exit(0);
+ break;
+ case 'i':
+ if (PerspHint == GL_FASTEST)
+ PerspHint = GL_NICEST;
+ else if (PerspHint == GL_NICEST)
+ PerspHint = GL_DONT_CARE;
+ else
+ PerspHint = GL_FASTEST;
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, PerspHint);
+ break;
+ default:
+ return;
+ }
+ glutPostRedisplay();
+}
+
+
+int
+main(int argc, char** argv)
+{
+ glutInit(&argc, argv);
+ glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
+ glutInitWindowSize (500, 500);
+ glutCreateWindow (argv[0]);
+ glutReshapeFunc (reshape);
+ glutDisplayFunc(display);
+ glutKeyboardFunc(key);
+
+ printf("Main quad: perspective projection\n");
+ printf("Middle stripe: linear interpolation\n");
+ printf("Press 'i' to toggle interpolation hint\n");
+ init();
+
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/tests/prim.c b/progs/tests/prim.c
new file mode 100644
index 0000000000..3e006e823d
--- /dev/null
+++ b/progs/tests/prim.c
@@ -0,0 +1,559 @@
+#define GL_GLEXT_PROTOTYPES
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define PIXEL_CENTER(x) ((long)(x) + 0.5)
+
+#define GAP 10
+#define ROWS 3
+#define COLS 4
+
+#define OPENGL_WIDTH 48
+#define OPENGL_HEIGHT 13
+
+
+GLenum provoking = GL_LAST_VERTEX_CONVENTION_EXT;
+GLenum rgb, doubleBuffer, windType;
+GLint windW, windH;
+
+GLenum mode1, mode2;
+GLint boxW, boxH;
+GLubyte OpenGL_bits[] = {
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
+ 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01,
+ 0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00,
+ 0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00,
+ 0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00,
+ 0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00,
+ 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a,
+ 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e,
+ 0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e,
+ 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00,
+};
+
+
+#include "tkmap.c"
+
+static void Init(void)
+{
+
+ mode1 = GL_TRUE;
+ mode2 = GL_TRUE;
+}
+
+static void Reshape(int width, int height)
+{
+
+ windW = (GLint)width;
+ windH = (GLint)height;
+}
+
+static void RotateColorMask(void)
+{
+ static GLint rotation = 0;
+
+ rotation = (rotation + 1) & 0x3;
+ switch (rotation) {
+ case 0:
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glIndexMask( 0xff );
+ break;
+ case 1:
+ glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glIndexMask(0xFE);
+ break;
+ case 2:
+ glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
+ glIndexMask(0xFD);
+ break;
+ case 3:
+ glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE);
+ glIndexMask(0xFB);
+ break;
+ }
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ case '1':
+ mode1 = !mode1;
+ break;
+ case '2':
+ mode2 = !mode2;
+ break;
+ case '3':
+ RotateColorMask();
+ break;
+ case 'p':
+ if (provoking == GL_FIRST_VERTEX_CONVENTION_EXT) {
+ printf("provoke last\n");
+ provoking = GL_LAST_VERTEX_CONVENTION_EXT;
+ }
+ else {
+ printf("provoke first\n");
+ provoking = GL_FIRST_VERTEX_CONVENTION_EXT;
+ }
+ glProvokingVertexEXT(provoking);
+ break;
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+static void Viewport(GLint row, GLint column)
+{
+ GLint x, y;
+
+ boxW = (windW - (COLS + 1) * GAP) / COLS;
+ boxH = (windH - (ROWS + 1) * GAP) / ROWS;
+
+ x = GAP + column * (boxW + GAP);
+ y = GAP + row * (boxH + GAP);
+
+ glViewport(x, y, boxW, boxH);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0);
+ glMatrixMode(GL_MODELVIEW);
+
+ glEnable(GL_SCISSOR_TEST);
+ glScissor(x, y, boxW, boxH);
+}
+
+static void Point(void)
+{
+ GLint i;
+
+ glBegin(GL_POINTS);
+ SetColor(COLOR_WHITE);
+ glVertex2i(0, 0);
+ for (i = 1; i < 8; i++) {
+ GLint j = i * 2;
+ SetColor(COLOR_BLACK+i);
+ glVertex2i(-j, -j);
+ glVertex2i(-j, 0);
+ glVertex2i(-j, j);
+ glVertex2i(0, j);
+ glVertex2i(j, j);
+ glVertex2i(j, 0);
+ glVertex2i(j, -j);
+ glVertex2i(0, -j);
+ }
+ glEnd();
+}
+
+static void Lines(void)
+{
+ GLint i;
+
+ glPushMatrix();
+
+ glTranslatef(-12, 0, 0);
+ for (i = 1; i < 8; i++) {
+ glBegin(GL_LINES);
+ SetColor(COLOR_BLACK+i);
+ glVertex2i(-boxW/4, -boxH/4);
+ SetColor(COLOR_BLACK+i+1);
+ glVertex2i(boxW/4, boxH/4);
+ glEnd();
+ glTranslatef(4, 0, 0);
+ }
+
+ glPopMatrix();
+
+ glBegin(GL_LINES);
+ glVertex2i(0, 0);
+ glEnd();
+}
+
+static void LineStrip(void)
+{
+
+ glBegin(GL_LINE_STRIP);
+ SetColor(COLOR_RED);
+ glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
+ SetColor(COLOR_GREEN);
+ glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
+ SetColor(COLOR_BLUE);
+ glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
+ SetColor(COLOR_WHITE);
+ glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
+ glEnd();
+
+ glBegin(GL_LINE_STRIP);
+ glVertex2i(0, 0);
+ glEnd();
+}
+
+static void LineLoop(void)
+{
+
+ glBegin(GL_LINE_LOOP);
+ SetColor(COLOR_RED);
+ glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
+ SetColor(COLOR_GREEN);
+ glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
+ SetColor(COLOR_BLUE);
+ glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
+ SetColor(COLOR_WHITE);
+ glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
+ glEnd();
+
+ glEnable(GL_LOGIC_OP);
+ glLogicOp(GL_XOR);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_ONE, GL_ONE);
+
+ SetColor(COLOR_MAGENTA);
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8));
+ glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8));
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5));
+ glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5));
+ glEnd();
+ glDisable(GL_LOGIC_OP);
+ glDisable(GL_BLEND);
+
+ SetColor(COLOR_GREEN);
+ glBegin(GL_POINTS);
+ glVertex2i(0, 0);
+ glEnd();
+
+ glBegin(GL_LINE_LOOP);
+ glVertex2i(0, 0);
+ glEnd();
+}
+
+static void Bitmap(void)
+{
+
+ glBegin(GL_LINES);
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/2, 0);
+ glVertex2i(boxW/2, 0);
+ glVertex2i(0, -boxH/2);
+ glVertex2i(0, boxH/2);
+ SetColor(COLOR_RED);
+ glVertex2i(0, -3);
+ glVertex2i(0, -3+OPENGL_HEIGHT);
+ SetColor(COLOR_BLUE);
+ glVertex2i(0, -3);
+ glVertex2i(OPENGL_WIDTH, -3);
+ glEnd();
+
+ SetColor(COLOR_GREEN);
+
+ glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+ glRasterPos2i(0, 0);
+ glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits);
+}
+
+static void Triangles(void)
+{
+
+ glBegin(GL_TRIANGLES);
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, -boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/8, -boxH/16);
+ SetColor(COLOR_BLUE);
+ glVertex2i(boxW/8, -boxH/16);
+
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/8, boxH/16);
+ SetColor(COLOR_BLUE);
+ glVertex2i(boxW/8, boxH/16);
+ glEnd();
+
+ glBegin(GL_TRIANGLES);
+ glVertex2i(0, 0);
+ glVertex2i(-100, 100);
+ glEnd();
+}
+
+static void TriangleStrip(void)
+{
+
+ glBegin(GL_TRIANGLE_STRIP);
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, -boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/4, boxH/4);
+ SetColor(COLOR_BLUE);
+ glVertex2i(0, -boxH/4);
+ SetColor(COLOR_WHITE);
+ glVertex2i(0, boxH/4);
+ SetColor(COLOR_CYAN);
+ glVertex2i(boxW/4, -boxH/4);
+ SetColor(COLOR_YELLOW);
+ glVertex2i(boxW/4, boxH/4);
+ glEnd();
+
+ glBegin(GL_TRIANGLE_STRIP);
+ glVertex2i(0, 0);
+ glVertex2i(-100, 100);
+ glEnd();
+}
+
+static void TriangleFan(void)
+{
+ GLint vx[8][2];
+ GLint x0, y0, x1, y1, x2, y2, x3, y3;
+ GLint i;
+
+ y0 = -boxH/4;
+ y1 = y0 + boxH/2/3;
+ y2 = y1 + boxH/2/3;
+ y3 = boxH/4;
+ x0 = -boxW/4;
+ x1 = x0 + boxW/2/3;
+ x2 = x1 + boxW/2/3;
+ x3 = boxW/4;
+
+ vx[0][0] = x0; vx[0][1] = y1;
+ vx[1][0] = x0; vx[1][1] = y2;
+ vx[2][0] = x1; vx[2][1] = y3;
+ vx[3][0] = x2; vx[3][1] = y3;
+ vx[4][0] = x3; vx[4][1] = y2;
+ vx[5][0] = x3; vx[5][1] = y1;
+ vx[6][0] = x2; vx[6][1] = y0;
+ vx[7][0] = x1; vx[7][1] = y0;
+
+ glBegin(GL_TRIANGLE_FAN);
+ SetColor(COLOR_WHITE);
+ glVertex2i(0, 0);
+ for (i = 0; i < 8; i++) {
+ SetColor(COLOR_WHITE-i);
+ glVertex2iv(vx[i]);
+ }
+ glEnd();
+
+ glBegin(GL_TRIANGLE_FAN);
+ glVertex2i(0, 0);
+ glVertex2i(-100, 100);
+ glEnd();
+}
+
+static void Rect(void)
+{
+
+ SetColor(COLOR_GREEN);
+ glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4);
+}
+
+static void PolygonFunc(void)
+{
+ GLint vx[8][2];
+ GLint x0, y0, x1, y1, x2, y2, x3, y3;
+ GLint i;
+
+ y0 = -boxH/4;
+ y1 = y0 + boxH/2/3;
+ y2 = y1 + boxH/2/3;
+ y3 = boxH/4;
+ x0 = -boxW/4;
+ x1 = x0 + boxW/2/3;
+ x2 = x1 + boxW/2/3;
+ x3 = boxW/4;
+
+ vx[0][0] = x0; vx[0][1] = y1;
+ vx[1][0] = x0; vx[1][1] = y2;
+ vx[2][0] = x1; vx[2][1] = y3;
+ vx[3][0] = x2; vx[3][1] = y3;
+ vx[4][0] = x3; vx[4][1] = y2;
+ vx[5][0] = x3; vx[5][1] = y1;
+ vx[6][0] = x2; vx[6][1] = y0;
+ vx[7][0] = x1; vx[7][1] = y0;
+
+ glBegin(GL_POLYGON);
+ for (i = 0; i < 8; i++) {
+ SetColor(COLOR_WHITE-i);
+ glVertex2iv(vx[i]);
+ }
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glVertex2i(0, 0);
+ glVertex2i(100, 100);
+ glEnd();
+}
+
+static void Quads(void)
+{
+
+ glBegin(GL_QUADS);
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, -boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/8, -boxH/16);
+ SetColor(COLOR_BLUE);
+ glVertex2i(boxW/8, -boxH/16);
+ SetColor(COLOR_WHITE);
+ glVertex2i(boxW/4, -boxH/4);
+
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/8, boxH/16);
+ SetColor(COLOR_BLUE);
+ glVertex2i(boxW/8, boxH/16);
+ SetColor(COLOR_WHITE);
+ glVertex2i(boxW/4, boxH/4);
+ glEnd();
+
+ glBegin(GL_QUADS);
+ glVertex2i(0, 0);
+ glVertex2i(100, 100);
+ glVertex2i(-100, 100);
+ glEnd();
+}
+
+static void QuadStrip(void)
+{
+
+ glBegin(GL_QUAD_STRIP);
+ SetColor(COLOR_GREEN);
+ glVertex2i(-boxW/4, -boxH/4);
+ SetColor(COLOR_RED);
+ glVertex2i(-boxW/4, boxH/4);
+ SetColor(COLOR_BLUE);
+ glVertex2i(0, -boxH/4);
+ SetColor(COLOR_WHITE);
+ glVertex2i(0, boxH/4);
+ SetColor(COLOR_CYAN);
+ glVertex2i(boxW/4, -boxH/4);
+ SetColor(COLOR_YELLOW);
+ glVertex2i(boxW/4, boxH/4);
+ glEnd();
+
+ glBegin(GL_QUAD_STRIP);
+ glVertex2i(0, 0);
+ glVertex2i(100, 100);
+ glVertex2i(-100, 100);
+ glEnd();
+}
+
+static void Draw(void)
+{
+
+ glViewport(0, 0, windW, windH);
+ glDisable(GL_SCISSOR_TEST);
+
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+
+ glColorMask(1, 1, 1, 1);
+ glIndexMask(~0);
+
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glPopAttrib();
+
+ if (mode1) {
+ glShadeModel(GL_SMOOTH);
+ } else {
+ glShadeModel(GL_FLAT);
+ }
+
+ if (mode2) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ } else {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ }
+
+ Viewport(0, 0); Point();
+ Viewport(0, 1); Lines();
+ Viewport(0, 2); LineStrip();
+ Viewport(0, 3); LineLoop();
+
+ Viewport(1, 0); Bitmap();
+ Viewport(1, 1); TriangleFan();
+ Viewport(1, 2); Triangles();
+ Viewport(1, 3); TriangleStrip();
+
+ Viewport(2, 0); Rect();
+ Viewport(2, 1); PolygonFunc();
+ Viewport(2, 2); Quads();
+ Viewport(2, 3); QuadStrip();
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ rgb = GL_TRUE;
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-ci") == 0) {
+ rgb = GL_FALSE;
+ } else if (strcmp(argv[i], "-rgb") == 0) {
+ rgb = GL_TRUE;
+ } else if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ printf("%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ windW = 600;
+ windH = 300;
+ glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH);
+
+ windType = (rgb) ? GLUT_RGB : GLUT_INDEX;
+ windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(windType);
+
+ if (glutCreateWindow("Primitive Test") == GL_FALSE) {
+ exit(1);
+ }
+
+ InitMap();
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/tests/texcomp_image.h b/progs/tests/texcomp_image.h
new file mode 100644
index 0000000000..e63a56774f
--- /dev/null
+++ b/progs/tests/texcomp_image.h
@@ -0,0 +1,4100 @@
+static int ImgSize = 131072;
+static unsigned char ImgData[131072] =
+{
+ 0x4d, 0xbc, 0x0b, 0xb4, 0xda, 0x0a, 0x78, 0xa8, 0x8d, 0xbc, 0x0c, 0xac, 0x8b, 0x7f, 0xeb, 0xf7, 0x8d, 0xbc, 0xeb, 0xab, 0xba, 0xb7, 0x82, 0xa2, 0x8d, 0xbc, 0x2b, 0xb4, 0xa2, 0xfd, 0xee, 0x2f,
+ 0x6d, 0xbc, 0x0b, 0xac, 0xd6, 0x03, 0x0a, 0x80, 0x8c, 0xbc, 0x6a, 0x9b, 0x00, 0xb8, 0xad, 0x0a, 0x6c, 0xbc, 0xeb, 0xab, 0x00, 0x09, 0x0a, 0xaa, 0x8d, 0xc4, 0x4b, 0xb4, 0xbf, 0xfe, 0xfe, 0xfb,
+ 0x6d, 0xc4, 0x4b, 0xb4, 0xaa, 0xfa, 0xea, 0xfb, 0x8d, 0xc4, 0x4b, 0xb4, 0xa6, 0xaa, 0xea, 0xa6, 0x8d, 0xc4, 0x6c, 0xbc, 0xfa, 0xba, 0xab, 0xe7, 0x8d, 0xc4, 0x6c, 0xbc, 0xd9, 0x76, 0x2b, 0x6b,
+ 0xee, 0xcc, 0x6c, 0xbc, 0xdf, 0xfd, 0x72, 0x55, 0xee, 0xcc, 0x6c, 0xbc, 0x55, 0x55, 0x73, 0xd5, 0xad, 0xbc, 0x6c, 0xbc, 0xdd, 0xb7, 0xff, 0x57, 0xad, 0xc4, 0x6c, 0xbc, 0x37, 0x9b, 0xb5, 0xd7,
+ 0xad, 0xbc, 0x6c, 0xbc, 0xfc, 0xea, 0xd7, 0xea, 0xad, 0xc4, 0x6c, 0xbc, 0xa2, 0xab, 0xfb, 0x25, 0xad, 0xc4, 0x6c, 0xbc, 0xad, 0xae, 0xfe, 0x5e, 0x8d, 0xbc, 0x6c, 0xbc, 0xba, 0xba, 0xad, 0xaa,
+ 0xad, 0xc4, 0x8c, 0xb4, 0xff, 0xfa, 0xbf, 0xab, 0xad, 0xc4, 0x6c, 0xb4, 0xfd, 0xaf, 0xaf, 0xeb, 0x8d, 0xc4, 0x6c, 0xbc, 0xe7, 0x79, 0x6e, 0x7f, 0x8c, 0xc4, 0xad, 0xbc, 0xe0, 0xaf, 0xc0, 0xee,
+ 0xae, 0xc4, 0x8c, 0xbc, 0xda, 0xb4, 0x27, 0xab, 0x8c, 0xc4, 0xce, 0xbc, 0xeb, 0xaf, 0xaa, 0xba, 0x8c, 0xc4, 0xad, 0xbc, 0xbd, 0xff, 0xaa, 0xff, 0xce, 0xcc, 0x8c, 0xc4, 0xa9, 0x0f, 0xaf, 0xa7,
+ 0xcd, 0xcc, 0xac, 0xc4, 0xfb, 0x8b, 0x8b, 0xda, 0xad, 0xcc, 0x8c, 0xc4, 0xf2, 0xfe, 0xd7, 0x55, 0xad, 0xc4, 0x4b, 0xbc, 0xf0, 0xda, 0xf6, 0xa8, 0xad, 0xc4, 0x6c, 0xbc, 0x7d, 0x2e, 0xab, 0x0e,
+ 0xad, 0xc4, 0x2b, 0xb4, 0xea, 0xeb, 0xd8, 0xae, 0xad, 0xc4, 0x4c, 0xbc, 0x35, 0x7d, 0xeb, 0xbf, 0x8d, 0xc4, 0x2b, 0xb4, 0x7a, 0x2a, 0xaa, 0x80, 0x8c, 0xc4, 0x2b, 0xb4, 0xad, 0x28, 0xa0, 0xd6,
+ 0x8d, 0xc4, 0x4c, 0xbc, 0xaf, 0xab, 0xf7, 0xea, 0x8d, 0xc4, 0x4b, 0xbc, 0xea, 0xb2, 0x6a, 0x5b, 0x8c, 0xc4, 0xca, 0xab, 0x00, 0x80, 0xaa, 0xd7, 0x6c, 0xbc, 0x4b, 0xb4, 0x03, 0xdf, 0xfd, 0xe3,
+ 0x8d, 0xc4, 0x2b, 0xb4, 0xfa, 0xdb, 0xaf, 0x8a, 0x8d, 0xc4, 0x2b, 0xbc, 0xad, 0xaa, 0xa8, 0xfa, 0x6c, 0xbc, 0x2b, 0xb4, 0x78, 0xda, 0x8c, 0xe0, 0x6c, 0xbc, 0xea, 0xab, 0xd7, 0xbb, 0xaa, 0x2a,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x5f, 0xaa, 0xa2, 0xbc, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0x23, 0xbf, 0xb8, 0x6b, 0xbc, 0x2c, 0xb4, 0xbf, 0xa8, 0xef, 0xff, 0x6c, 0xbc, 0x2b, 0xb4, 0x08, 0xa8, 0xd7, 0xba,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x28, 0xea, 0x75, 0xfe, 0x6c, 0xbc, 0x0b, 0xb4, 0xe0, 0xdf, 0x79, 0xef, 0x6c, 0xbc, 0x0b, 0xb4, 0xf3, 0xfe, 0x3d, 0xae, 0x6c, 0xbc, 0x2b, 0xb4, 0x7a, 0xab, 0xdf, 0xde,
+ 0x6c, 0xc4, 0x4c, 0xb4, 0xf7, 0xaf, 0x2f, 0xaf, 0x6c, 0xc4, 0x4b, 0xb4, 0xef, 0xff, 0xfe, 0xea, 0x6c, 0xbc, 0x2b, 0xb4, 0x8b, 0xaa, 0xbc, 0x78, 0x4c, 0xbc, 0x0b, 0xb4, 0x70, 0xd8, 0xe6, 0xab,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xad, 0xaf, 0x8a, 0x02, 0x4c, 0xbc, 0x2b, 0xb4, 0xb9, 0x2b, 0xa2, 0x02, 0x6d, 0xbc, 0x2b, 0xb4, 0x2f, 0x2b, 0x2e, 0xba, 0x8c, 0xc4, 0x4b, 0xbc, 0x3d, 0xbd, 0x55, 0x5d,
+ 0x6c, 0xc4, 0x0b, 0xb4, 0x5c, 0xea, 0xaa, 0xaf, 0x6c, 0xc4, 0x2b, 0xb4, 0xab, 0xab, 0x6e, 0x7b, 0x4c, 0xbc, 0xea, 0xab, 0xa8, 0xfc, 0xde, 0x2a, 0x6c, 0xbc, 0xca, 0xa3, 0xaa, 0xa9, 0x4a, 0xe0,
+ 0x6c, 0xbc, 0x28, 0x9b, 0x28, 0x00, 0xa9, 0x22, 0x6c, 0xbc, 0xca, 0xab, 0xd0, 0xbc, 0xa2, 0x8a, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0xde, 0x7d, 0xbd, 0x6c, 0xbc, 0x2b, 0xb4, 0xaf, 0xba, 0x6f, 0xa5,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x0a, 0xb7, 0xff, 0x7f, 0x4c, 0xb4, 0xeb, 0xab, 0x7e, 0xa0, 0xe0, 0xa2, 0x4c, 0xbc, 0x0b, 0xac, 0xbf, 0xeb, 0xfb, 0xaa, 0x4c, 0xb4, 0x0b, 0xac, 0xca, 0xf2, 0xde, 0xba,
+ 0x4c, 0xb4, 0x0a, 0xac, 0xd7, 0xf5, 0xec, 0xfb, 0x2c, 0xb4, 0x0a, 0xac, 0x9d, 0xf7, 0xb5, 0xae, 0x2c, 0xb4, 0xea, 0xab, 0x22, 0xa2, 0xea, 0x5e, 0x2b, 0xb4, 0xea, 0xa3, 0xae, 0xfe, 0xff, 0xab,
+ 0x2b, 0xac, 0xca, 0xa3, 0xaa, 0x09, 0xaa, 0x00, 0x4c, 0xb4, 0xea, 0xab, 0xaf, 0xe2, 0x7a, 0xf6, 0x4c, 0xb4, 0xea, 0xa3, 0x7e, 0xff, 0x4d, 0xfe, 0x0b, 0xac, 0xea, 0xa3, 0x30, 0x2c, 0x2a, 0xaa,
+ 0x4c, 0xb4, 0xea, 0xa3, 0xaa, 0xba, 0xff, 0xab, 0x4c, 0xb4, 0x0b, 0xac, 0xaf, 0xbf, 0xc2, 0xad, 0x8d, 0xbc, 0x0b, 0xac, 0xeb, 0xa2, 0xf9, 0xd7, 0x90, 0xdd, 0x0b, 0xac, 0x3f, 0xf7, 0x55, 0x55,
+ 0xac, 0xbc, 0x0b, 0xac, 0xe8, 0xff, 0x7f, 0x57, 0x6c, 0xb4, 0xeb, 0xab, 0x0a, 0xfb, 0x5f, 0x55, 0x6c, 0xb4, 0xeb, 0xab, 0x8e, 0xbe, 0x5d, 0xdd, 0xac, 0xc4, 0x0b, 0xac, 0x0b, 0xfd, 0x55, 0x5b,
+ 0xcc, 0xc4, 0xca, 0xa3, 0x80, 0x7f, 0xff, 0xd5, 0xed, 0xc4, 0xca, 0xa3, 0xff, 0x21, 0xde, 0x55, 0xed, 0xc4, 0xca, 0xa3, 0xbd, 0xbc, 0xf7, 0x57, 0xcd, 0xc4, 0x0c, 0xac, 0xe0, 0xaf, 0xad, 0xbd,
+ 0x8d, 0xbc, 0x0b, 0xac, 0x05, 0x6d, 0x6a, 0xc2, 0x6c, 0xbc, 0xca, 0xa3, 0xf8, 0xfe, 0x57, 0xdb, 0x4c, 0xac, 0x49, 0x8b, 0xa8, 0xab, 0x93, 0xaa, 0x6c, 0xb4, 0x28, 0x8b, 0x2a, 0x21, 0xaa, 0xaa,
+ 0x0b, 0xac, 0x49, 0x93, 0xb6, 0x28, 0x00, 0xa2, 0x0b, 0xac, 0x89, 0x9b, 0xa0, 0xe0, 0x60, 0xbe, 0x4b, 0xb4, 0x8a, 0x9b, 0xff, 0xff, 0x5d, 0x0a, 0xeb, 0xa3, 0x48, 0x93, 0xfa, 0xf9, 0xba, 0xc8,
+ 0xeb, 0xab, 0xa9, 0x9b, 0xe9, 0x2f, 0xa2, 0xe1, 0x0b, 0xac, 0xca, 0x9b, 0xdd, 0xba, 0xa5, 0xff, 0x6a, 0xbc, 0xcb, 0xa3, 0x57, 0x55, 0xf7, 0x3f, 0x6a, 0xbc, 0xeb, 0xa3, 0xdd, 0xf5, 0xbf, 0x2a,
+ 0x8b, 0xbc, 0xea, 0xab, 0xbd, 0x8a, 0xea, 0xba, 0xee, 0xc4, 0xc8, 0xb3, 0xa0, 0xaa, 0xef, 0x7f, 0xad, 0xbc, 0xc6, 0x92, 0x00, 0x00, 0x8a, 0xad, 0x6c, 0xbc, 0xea, 0xab, 0xac, 0xfe, 0x7f, 0x57,
+ 0x4b, 0xb4, 0xea, 0xab, 0xae, 0x2a, 0xd5, 0xfd, 0x6b, 0xbc, 0xaa, 0xa3, 0xa2, 0xda, 0xab, 0xea, 0x2b, 0xb4, 0xaa, 0xa3, 0x7f, 0xea, 0xbe, 0x02, 0x2b, 0xac, 0xaa, 0xa3, 0x57, 0xad, 0x80, 0xf8,
+ 0x2b, 0xac, 0x89, 0x9b, 0x8b, 0xaa, 0xfe, 0xdf, 0x2b, 0xac, 0x89, 0x9b, 0xe8, 0x5e, 0xf5, 0xf7, 0xea, 0xab, 0x89, 0x9b, 0xbd, 0xae, 0x8a, 0xd8, 0xea, 0xa3, 0x89, 0x9b, 0x8a, 0xda, 0xff, 0xff,
+ 0xeb, 0xab, 0x89, 0x9b, 0xab, 0xaa, 0x2e, 0xaf, 0xeb, 0xa3, 0xa9, 0x9b, 0xb5, 0x83, 0xef, 0xb7, 0xca, 0xab, 0x8a, 0x9b, 0xaa, 0xea, 0x80, 0xbe, 0xeb, 0xab, 0x8a, 0x9b, 0xaa, 0xab, 0xaa, 0x7f,
+ 0x0b, 0xac, 0x89, 0x9b, 0xbf, 0xe2, 0x5b, 0x5f, 0xcb, 0xa3, 0x89, 0x9b, 0xa8, 0x2c, 0x35, 0x00, 0xeb, 0xa3, 0xaa, 0x9b, 0x29, 0xf8, 0xfb, 0xaa, 0xeb, 0xab, 0xaa, 0xa3, 0xab, 0xba, 0x9e, 0x7a,
+ 0xeb, 0xa3, 0x8a, 0x9b, 0x0a, 0xe2, 0xbe, 0xab, 0xeb, 0xa3, 0x69, 0x9b, 0xa8, 0xaf, 0x36, 0x80, 0x0b, 0xac, 0x8a, 0x9b, 0xad, 0xa2, 0xe8, 0xfd, 0xeb, 0xab, 0xaa, 0x9b, 0xab, 0x8a, 0xde, 0xfb,
+ 0x6d, 0xbc, 0x0b, 0xb4, 0x8a, 0x08, 0xe9, 0xaa, 0x6d, 0xbc, 0x2b, 0xb4, 0xca, 0xaa, 0xbd, 0x82, 0x8c, 0xbc, 0x2b, 0xb4, 0x2b, 0xfe, 0x5f, 0xf5, 0x8c, 0xbc, 0x0b, 0xb4, 0xa2, 0x25, 0xff, 0xfb,
+ 0x6d, 0xbc, 0x4b, 0xb4, 0x38, 0x3a, 0x23, 0xfe, 0x8c, 0xc4, 0x0b, 0xb4, 0xeb, 0xfa, 0xde, 0xa8, 0x6d, 0xbc, 0x2b, 0xb4, 0xf9, 0xaf, 0x3f, 0x0e, 0x8d, 0xc4, 0x4c, 0xb4, 0xff, 0xff, 0xdb, 0xfe,
+ 0x8d, 0xc4, 0x4c, 0xbc, 0xfb, 0xe7, 0x2f, 0xaf, 0x8d, 0xc4, 0x4c, 0xbc, 0xc5, 0xeb, 0xfe, 0x9f, 0x8d, 0xc4, 0x4c, 0xb4, 0xee, 0xed, 0xaa, 0xaa, 0x8d, 0xc4, 0x6c, 0xbc, 0xf9, 0x59, 0x7e, 0x57,
+ 0xad, 0xbc, 0x6c, 0xb4, 0xff, 0xaf, 0xd6, 0xfb, 0x8d, 0xc4, 0x6c, 0xb4, 0xea, 0xff, 0xea, 0xeb, 0xad, 0xc4, 0x4c, 0xb4, 0xfa, 0xee, 0xfb, 0x2f, 0x8d, 0xbc, 0x4c, 0xbc, 0xab, 0xae, 0xe8, 0x2a,
+ 0xad, 0xbc, 0x4c, 0xb4, 0xff, 0xeb, 0xee, 0x72, 0xad, 0xbc, 0x6c, 0xb4, 0xff, 0xb5, 0xf5, 0xb7, 0x8d, 0xc4, 0x6c, 0xb4, 0xfe, 0xaf, 0xfb, 0xae, 0xae, 0xc4, 0x6c, 0xbc, 0xe5, 0x3f, 0xf0, 0xa0,
+ 0x2f, 0xcd, 0x6d, 0xbc, 0xf5, 0xaf, 0x03, 0xbf, 0x4f, 0xcd, 0x6d, 0xbc, 0xff, 0xf2, 0x78, 0x5f, 0xac, 0xc4, 0x6d, 0xbc, 0x5f, 0xee, 0xef, 0xeb, 0xad, 0xc4, 0x6c, 0xbc, 0xfb, 0xea, 0x7f, 0xbf,
+ 0xae, 0xc4, 0x6c, 0xbc, 0xbf, 0x8f, 0x3a, 0x2a, 0xae, 0xc4, 0x8c, 0xbc, 0x0e, 0xea, 0xea, 0xaa, 0xce, 0xc4, 0x8c, 0xbc, 0x5d, 0xbb, 0xef, 0xea, 0xce, 0xc4, 0xac, 0xbc, 0x83, 0x8b, 0xae, 0xff,
+ 0xcd, 0xc4, 0x8c, 0xbc, 0xe0, 0x62, 0xd8, 0x54, 0xad, 0xc4, 0x2c, 0xbc, 0x5f, 0x0a, 0xee, 0xaa, 0xad, 0xc4, 0x2c, 0xbc, 0xab, 0xbe, 0xf5, 0xa2, 0x8c, 0xc4, 0x2b, 0xb4, 0x00, 0xea, 0xb6, 0xb5,
+ 0x8c, 0xc4, 0x4b, 0xb4, 0xaa, 0x7f, 0x2c, 0xf0, 0xac, 0xc4, 0x0b, 0xb4, 0xea, 0x8a, 0x62, 0xe8, 0xad, 0xc4, 0x0b, 0xb4, 0xff, 0xd8, 0xaf, 0xab, 0x8d, 0xbc, 0x0b, 0xb4, 0xd5, 0x00, 0xaa, 0x8a,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xbb, 0xa8, 0x83, 0x78, 0x6c, 0xbc, 0xcb, 0xab, 0xa0, 0x88, 0x60, 0xa0, 0x6c, 0xbc, 0x2b, 0xb4, 0xa5, 0x03, 0xf3, 0xfb, 0x6c, 0xbc, 0x2b, 0xb4, 0x20, 0x08, 0xe7, 0xeb,
+ 0x8c, 0xbc, 0x2b, 0xb4, 0xe2, 0xfe, 0xd7, 0xff, 0x4c, 0xbc, 0x2b, 0xb4, 0x0a, 0xee, 0xf9, 0x7b, 0x4c, 0xbc, 0x0b, 0xb4, 0x80, 0xde, 0xba, 0xba, 0x4c, 0xbc, 0x0b, 0xb4, 0x8a, 0xa2, 0x9e, 0x80,
+ 0x2b, 0xbc, 0x4c, 0xb4, 0xaa, 0xff, 0xeb, 0xb7, 0x4c, 0xb4, 0x0b, 0xb4, 0xdc, 0xbe, 0x2b, 0x8a, 0x6c, 0xbc, 0x0b, 0xb4, 0xf7, 0x7a, 0xbf, 0xef, 0x4c, 0xbc, 0x2b, 0xb4, 0xba, 0xfd, 0xcb, 0xce,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0x83, 0xef, 0x9d, 0xbe, 0x4c, 0xbc, 0x2b, 0xb4, 0xc8, 0xf7, 0x9f, 0xff, 0x6c, 0xbc, 0x2b, 0xb4, 0xad, 0xfb, 0xff, 0xae, 0x6d, 0xbc, 0x2b, 0xb4, 0xff, 0xab, 0xab, 0x0a,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xef, 0xab, 0xfc, 0xe8, 0x6d, 0xbc, 0x2b, 0xb4, 0xab, 0xbe, 0xcf, 0xaa, 0x6d, 0xbc, 0x2b, 0xb4, 0xfa, 0xa0, 0xae, 0xae, 0x6c, 0xbc, 0x0b, 0xb4, 0xf7, 0xbe, 0xba, 0x0a,
+ 0x6d, 0xbc, 0x2b, 0xb4, 0xfd, 0xaf, 0xba, 0xae, 0x8c, 0xbc, 0x4b, 0xb4, 0xfd, 0xf5, 0x8b, 0xaf, 0x6d, 0xbc, 0x4b, 0xb4, 0xe7, 0xae, 0x02, 0x02, 0x6d, 0xbc, 0x4b, 0xb4, 0xfa, 0xea, 0x2b, 0xae,
+ 0x4d, 0xbc, 0x2b, 0xb4, 0x6a, 0xc0, 0xaa, 0xc0, 0x4c, 0xbc, 0x0b, 0xb4, 0xe2, 0xe8, 0xa9, 0x82, 0x6c, 0xbc, 0x0b, 0xb4, 0x2f, 0xab, 0xbd, 0xaa, 0x8c, 0xc4, 0x2b, 0xb4, 0xf8, 0x7e, 0x7f, 0xff,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x9f, 0x3b, 0xff, 0xff, 0x4c, 0xbc, 0xcb, 0xab, 0x2c, 0xbe, 0xa6, 0x8b, 0x4c, 0xb4, 0x0a, 0xac, 0xaf, 0xea, 0xba, 0x09, 0x6c, 0xbc, 0x0b, 0xac, 0xef, 0xab, 0xfa, 0xb7,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xf7, 0xd6, 0xfb, 0xeb, 0x4c, 0xbc, 0x0b, 0xac, 0xbb, 0xbe, 0x6d, 0xca, 0x4c, 0xb4, 0x0b, 0xac, 0x2a, 0x2a, 0xa9, 0xba, 0x8d, 0xbc, 0x0b, 0xb4, 0x5f, 0xfb, 0x6f, 0xcf,
+ 0x4c, 0xb4, 0xeb, 0xab, 0xf6, 0xfc, 0xea, 0xa8, 0x2b, 0xb4, 0xea, 0xa3, 0xab, 0xbb, 0x7a, 0xaa, 0x2c, 0xb4, 0xea, 0xa3, 0xfe, 0xfe, 0xff, 0x2b, 0x2c, 0xb4, 0xea, 0xa3, 0xeb, 0xab, 0xaf, 0xd8,
+ 0x2b, 0xb4, 0xca, 0xab, 0xaa, 0xa2, 0xaa, 0x7a, 0x2b, 0xac, 0xca, 0xa3, 0xe8, 0x2e, 0xbf, 0xb7, 0x4c, 0xb4, 0xcb, 0xa3, 0xdf, 0xf6, 0x1f, 0xbd, 0x8c, 0xbc, 0x8a, 0x9b, 0xee, 0xdf, 0xaa, 0x2a,
+ 0xcd, 0xc4, 0x0b, 0xac, 0x55, 0x55, 0x77, 0xc0, 0x6c, 0xb4, 0x0b, 0xac, 0xbd, 0x2b, 0xee, 0xff, 0x4c, 0xb4, 0x0b, 0xac, 0xfe, 0xee, 0x77, 0x57, 0x4c, 0xb4, 0xea, 0xab, 0x62, 0x5b, 0x7f, 0xdd,
+ 0x0c, 0xac, 0xca, 0xa3, 0xa0, 0xac, 0xeb, 0x8a, 0x2b, 0xac, 0xea, 0xa3, 0xe7, 0xef, 0x2f, 0xae, 0x8c, 0xbc, 0xeb, 0xa3, 0xf7, 0x57, 0x7b, 0x8e, 0x6c, 0xb4, 0xca, 0xa3, 0x5d, 0xfb, 0xf2, 0xfe,
+ 0x4d, 0xb4, 0xa9, 0xa3, 0xfd, 0xd7, 0xff, 0xe2, 0x4c, 0xac, 0xaa, 0x9b, 0xf7, 0xfa, 0xbb, 0xa2, 0x2c, 0xac, 0xaa, 0x9b, 0xd7, 0x3f, 0x2e, 0x02, 0x2e, 0xcd, 0x4c, 0xb4, 0x0f, 0xed, 0x5d, 0x55,
+ 0xce, 0xc4, 0x4c, 0xb4, 0x56, 0xa7, 0x38, 0x2a, 0xce, 0xc4, 0x0b, 0xac, 0x7f, 0xff, 0xe8, 0x88, 0xad, 0xbc, 0xcb, 0xa3, 0x55, 0xff, 0xbe, 0xf8, 0x4c, 0xb4, 0x29, 0x9b, 0xaa, 0xa8, 0xa8, 0x60,
+ 0xea, 0xab, 0x08, 0x8b, 0x20, 0x80, 0x72, 0xfb, 0x0b, 0xac, 0xa7, 0x7a, 0xa8, 0xaa, 0xad, 0x0a, 0x6c, 0xb4, 0x28, 0x93, 0x5e, 0xfd, 0xbf, 0xa8, 0x2c, 0xac, 0x69, 0x93, 0xa9, 0xeb, 0x28, 0xaa,
+ 0x6d, 0xbc, 0x69, 0x93, 0xff, 0x57, 0xbf, 0xa2, 0x4d, 0xb4, 0xaa, 0x9b, 0x57, 0xd5, 0xfe, 0xa8, 0x2b, 0xac, 0x26, 0x6a, 0x7a, 0xa0, 0x00, 0x00, 0x2c, 0xac, 0xa5, 0x59, 0x55, 0x00, 0x00, 0x00,
+ 0x4c, 0xb4, 0xa5, 0x59, 0xf5, 0x00, 0x82, 0x82, 0x2b, 0xac, 0x87, 0x82, 0xd7, 0x0a, 0xa8, 0xa8, 0x4b, 0xbc, 0xaa, 0x9b, 0x82, 0xaf, 0x6d, 0xd5, 0x0b, 0xac, 0x69, 0xa3, 0xaa, 0xa6, 0x2b, 0xfc,
+ 0x2b, 0xb4, 0xa9, 0xa3, 0xcb, 0xfb, 0xff, 0xdd, 0x2b, 0xb4, 0xa9, 0xa3, 0x0a, 0xeb, 0x7f, 0x5f, 0x2b, 0xac, 0x68, 0x9b, 0x80, 0xea, 0xff, 0x5d, 0xca, 0xa3, 0xe8, 0x92, 0x00, 0x00, 0xf8, 0x81,
+ 0xeb, 0xa3, 0x29, 0x8b, 0xa8, 0x2e, 0xd5, 0xba, 0xca, 0xa3, 0x89, 0x93, 0x6b, 0xb5, 0xad, 0xaa, 0xca, 0xa3, 0x69, 0x93, 0x7d, 0xa8, 0x0a, 0x28, 0xcb, 0xab, 0x69, 0x9b, 0x2d, 0x9a, 0xba, 0x28,
+ 0x0b, 0xac, 0x8a, 0x9b, 0xaf, 0xff, 0x7e, 0xcb, 0xcb, 0xab, 0x89, 0x9b, 0x2e, 0x5f, 0xd7, 0xff, 0xeb, 0xab, 0x8a, 0x9b, 0xe8, 0xb7, 0xbf, 0xab, 0xeb, 0xab, 0x8a, 0xa3, 0x8f, 0xa2, 0xff, 0x9f,
+ 0xea, 0xab, 0xab, 0x9b, 0xff, 0xbf, 0x77, 0xff, 0xcb, 0xa3, 0xaa, 0xa3, 0xbb, 0x80, 0x01, 0xc0, 0xcb, 0xab, 0xaa, 0x9b, 0xaa, 0xfa, 0xfe, 0xef, 0xcb, 0xa3, 0xaa, 0x9b, 0xb8, 0x28, 0x03, 0x22,
+ 0xeb, 0xab, 0x8a, 0x9b, 0xaa, 0x2a, 0x6a, 0x0a, 0x0b, 0xa4, 0x6a, 0x9b, 0x7a, 0xdf, 0xaf, 0xa8, 0xeb, 0xa3, 0xaa, 0x9b, 0xad, 0xaa, 0xcc, 0xfe, 0xeb, 0xab, 0xaa, 0x9b, 0xaa, 0xae, 0xea, 0xf7,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xa2, 0xde, 0x7f, 0xeb, 0x6c, 0xbc, 0x2b, 0xb4, 0xc9, 0xae, 0x09, 0x83, 0xcd, 0xcc, 0x2b, 0xb4, 0xff, 0xf7, 0xb5, 0x63, 0x6d, 0xbc, 0x2b, 0xb4, 0x42, 0xfa, 0xe0, 0xf3,
+ 0x6d, 0xbc, 0x2b, 0xb4, 0xfd, 0xdf, 0x35, 0xab, 0x6c, 0xbc, 0x2b, 0xb4, 0xa2, 0xf3, 0xfe, 0x7e, 0x8d, 0xbc, 0x2b, 0xb4, 0x8a, 0xae, 0xaf, 0xbf, 0x8d, 0xc4, 0x4c, 0xbc, 0xd7, 0xff, 0xbf, 0x3f,
+ 0xad, 0xc4, 0x6c, 0xbc, 0x55, 0xe5, 0xab, 0xd2, 0xad, 0xc4, 0x0b, 0xac, 0xaa, 0xbd, 0x80, 0xa8, 0xce, 0xc4, 0x2b, 0xb4, 0xbe, 0x0f, 0xba, 0x7a, 0x90, 0xd5, 0xeb, 0xab, 0xff, 0xfa, 0x0f, 0xbd,
+ 0x0e, 0xcd, 0x2c, 0xb4, 0xdf, 0xaf, 0xfc, 0xe8, 0x0e, 0xcd, 0x4c, 0xbc, 0xd5, 0xcb, 0xff, 0xd7, 0xee, 0xc4, 0x6c, 0xbc, 0xcb, 0x7d, 0xff, 0x5e, 0x8d, 0xbc, 0x4c, 0xb4, 0xaa, 0xaa, 0x2f, 0xaa,
+ 0xee, 0xcc, 0x6c, 0xbc, 0xee, 0x3d, 0x89, 0xed, 0xee, 0xc4, 0x4c, 0xb4, 0xfe, 0xaa, 0xe0, 0xf9, 0xce, 0xc4, 0x8c, 0xbc, 0xfd, 0xf7, 0xe9, 0x78, 0xce, 0xc4, 0x8c, 0xbc, 0x0f, 0xaf, 0xfd, 0xb8,
+ 0xee, 0xc4, 0x8d, 0xbc, 0x7d, 0xaf, 0xff, 0xa2, 0xce, 0xc4, 0x8c, 0xbc, 0x57, 0xaa, 0xde, 0x50, 0xad, 0xc4, 0x8c, 0xbc, 0xd5, 0xde, 0xeb, 0xff, 0x8e, 0xc4, 0xac, 0xbc, 0xff, 0xff, 0x82, 0xdf,
+ 0x8c, 0xc4, 0xce, 0xbc, 0xba, 0xaa, 0xb8, 0xaf, 0x8d, 0xc4, 0xce, 0xbc, 0xaa, 0xfa, 0xba, 0xfa, 0xce, 0xc4, 0xac, 0xbc, 0xaf, 0xb9, 0xe5, 0x43, 0xcd, 0xc4, 0x8c, 0xbc, 0xba, 0x0e, 0x2a, 0x6b,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xfc, 0xd0, 0xfe, 0xea, 0xad, 0xc4, 0x4c, 0xbc, 0x3f, 0xea, 0xde, 0x5f, 0xad, 0xc4, 0x4b, 0xb4, 0xe8, 0xff, 0x7f, 0xbf, 0x8d, 0xbc, 0x2b, 0xb4, 0xfe, 0xf7, 0xef, 0x88,
+ 0x6d, 0xbc, 0x4b, 0xb4, 0xff, 0xb7, 0x08, 0xba, 0x6d, 0xbc, 0x4c, 0xb4, 0x88, 0x20, 0xba, 0x00, 0x8d, 0xbc, 0x4c, 0xbc, 0xaa, 0x2f, 0x5f, 0xaa, 0x8d, 0xc4, 0x4b, 0xb4, 0xfe, 0x7e, 0xff, 0xaa,
+ 0x8d, 0xbc, 0x2c, 0xb4, 0x5d, 0xfa, 0xab, 0x00, 0x8d, 0xbc, 0x2b, 0xb4, 0xf7, 0xaf, 0xa0, 0x8a, 0x8d, 0xbc, 0x4c, 0xb4, 0x55, 0xff, 0xa0, 0xfe, 0x8d, 0xbc, 0x2c, 0xb4, 0x7f, 0xfe, 0xaa, 0xa8,
+ 0x6d, 0xbc, 0x2c, 0xb4, 0xff, 0xaa, 0x82, 0xa2, 0x8d, 0xbc, 0x2c, 0xb4, 0x55, 0xeb, 0xaa, 0xa8, 0x8c, 0xbc, 0x2c, 0xb4, 0xd5, 0xbb, 0x8a, 0xea, 0x8d, 0xbc, 0x2b, 0xb4, 0xef, 0x7a, 0xe8, 0xae,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xf5, 0x77, 0x8a, 0x00, 0x6c, 0xbc, 0x2b, 0xb4, 0xf7, 0xab, 0x88, 0x00, 0x6d, 0xbc, 0x4b, 0xb4, 0xf5, 0xaf, 0xbf, 0xb8, 0x6d, 0xbc, 0x2b, 0xb4, 0xfe, 0xae, 0xca, 0xa8,
+ 0x6d, 0xbc, 0x2b, 0xb4, 0xb7, 0xaa, 0xaf, 0x8a, 0x6c, 0xbc, 0x4b, 0xb4, 0x3b, 0xf9, 0x8a, 0x82, 0x8d, 0xbc, 0x2b, 0xb4, 0xee, 0xaa, 0xef, 0x8a, 0x6d, 0xbc, 0x2b, 0xb4, 0xea, 0xaa, 0x22, 0x20,
+ 0x6d, 0xbc, 0x4c, 0xb4, 0x7f, 0xaa, 0xc2, 0x20, 0x8d, 0xbc, 0x4c, 0xb4, 0xff, 0xa3, 0x0b, 0xa8, 0x6d, 0xbc, 0x2b, 0xb4, 0x7a, 0x22, 0x00, 0x8a, 0x8d, 0xbc, 0x4c, 0xb4, 0x8f, 0xf2, 0x07, 0x0a,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0xd5, 0xab, 0x7a, 0xae, 0x8c, 0xbc, 0x2b, 0xb4, 0x2a, 0x8a, 0xbf, 0x7b, 0x8d, 0xbc, 0x4b, 0xb4, 0x3f, 0x2e, 0xe5, 0x39, 0x8d, 0xbc, 0x2b, 0xb4, 0x7a, 0xbe, 0x22, 0x88,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0xbf, 0x3f, 0x2f, 0x08, 0x6c, 0xbc, 0x2b, 0xb4, 0x2b, 0xa8, 0x2c, 0xec, 0x8d, 0xbc, 0x4b, 0xb4, 0xd5, 0x2b, 0xee, 0xd5, 0x6c, 0xbc, 0x2b, 0xb4, 0xcb, 0xe8, 0xaf, 0xff,
+ 0x4c, 0xb4, 0x2b, 0xb4, 0x5d, 0x7e, 0xc0, 0xdf, 0x4c, 0xbc, 0x0b, 0xb4, 0xdf, 0xeb, 0xaa, 0xae, 0xad, 0xbc, 0xeb, 0xab, 0x7f, 0xff, 0x8a, 0xfb, 0xad, 0xc4, 0x0b, 0xac, 0xd5, 0xcf, 0xfe, 0xbe,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x7e, 0x7d, 0xfa, 0xc2, 0x4c, 0xb4, 0x0b, 0xac, 0xfb, 0x2a, 0x88, 0x72, 0x4c, 0xb4, 0x69, 0x9b, 0x00, 0x08, 0xa8, 0xa6, 0x4c, 0xb4, 0xeb, 0xab, 0x08, 0x8e, 0x7d, 0xc9,
+ 0x4c, 0xb4, 0xea, 0xab, 0xba, 0xf7, 0x2f, 0xe2, 0x6c, 0xbc, 0xa9, 0xa3, 0xab, 0xaa, 0xd2, 0x5e, 0x2b, 0xac, 0x69, 0x9b, 0x00, 0xab, 0xeb, 0x5d, 0xea, 0xab, 0x49, 0x9b, 0x00, 0x00, 0xbb, 0x5f,
+ 0x2a, 0xb4, 0x49, 0x9b, 0xa0, 0x68, 0x7f, 0xd5, 0xeb, 0xab, 0x69, 0x93, 0x88, 0x29, 0x2a, 0xab, 0x2b, 0xb4, 0xea, 0xa3, 0x2d, 0xef, 0xaf, 0xfd, 0x4b, 0xb4, 0xe7, 0x8a, 0xa0, 0x29, 0x02, 0x80,
+ 0x4c, 0xb4, 0xeb, 0xab, 0xa2, 0xde, 0xed, 0xff, 0x4c, 0xb4, 0xeb, 0xab, 0xee, 0x2b, 0x7f, 0x57, 0x2c, 0xb4, 0x0b, 0xa4, 0xfa, 0xea, 0xab, 0xef, 0xee, 0xc4, 0x0b, 0xac, 0x5d, 0xd5, 0x55, 0x73,
+ 0x6d, 0xb4, 0x0b, 0xac, 0x55, 0xde, 0x3f, 0x2f, 0xce, 0xc4, 0xeb, 0xa3, 0xd7, 0xff, 0xaa, 0x2f, 0xce, 0xbc, 0x0c, 0xac, 0x57, 0x7f, 0x3f, 0x28, 0xcd, 0xbc, 0xcb, 0xa3, 0xff, 0xfd, 0xeb, 0xf8,
+ 0xee, 0xc4, 0xeb, 0xa3, 0xf3, 0x55, 0xaf, 0xea, 0xef, 0xc4, 0x0b, 0xac, 0x5d, 0xe5, 0xd5, 0x8f, 0xcd, 0xbc, 0x2c, 0xb4, 0x75, 0xef, 0x8b, 0xff, 0x8d, 0xbc, 0x2b, 0xb4, 0x96, 0xfa, 0x3f, 0x2b,
+ 0xce, 0xc4, 0x2c, 0xb4, 0xaa, 0x03, 0x07, 0x2b, 0x0e, 0xcd, 0x6c, 0xb4, 0x5c, 0xdd, 0x3a, 0xda, 0x0e, 0xc5, 0x4c, 0xb4, 0x7e, 0x7a, 0xf8, 0xff, 0x8d, 0xbc, 0x0b, 0xac, 0xda, 0xc8, 0x9e, 0xdc,
+ 0x6c, 0xb4, 0xab, 0x9b, 0xf6, 0xf8, 0x7e, 0xa2, 0x6d, 0xb4, 0xcb, 0x9b, 0xef, 0xc7, 0xbf, 0xaa, 0x4c, 0xac, 0xaa, 0xa3, 0xf7, 0xfe, 0xb4, 0xa8, 0x4c, 0xb4, 0xca, 0xa3, 0x1f, 0xfb, 0xf0, 0xae,
+ 0x8c, 0xbc, 0xaa, 0xa3, 0x83, 0xbf, 0xa5, 0xbf, 0xad, 0xbc, 0x0b, 0xac, 0xb7, 0xaa, 0xad, 0xf8, 0x6c, 0xb4, 0xeb, 0xa3, 0xf4, 0xee, 0xef, 0xca, 0x8d, 0xb4, 0xea, 0xa3, 0x55, 0xd5, 0x74, 0xdf,
+ 0xeb, 0xa3, 0xa9, 0x9b, 0x92, 0x5a, 0x56, 0x83, 0x0b, 0xa4, 0x8a, 0x9b, 0x68, 0xa7, 0x09, 0xab, 0x2b, 0xac, 0x8a, 0x93, 0xdf, 0xf3, 0xfe, 0xff, 0xeb, 0xa3, 0xe9, 0x7a, 0x6a, 0xa8, 0x80, 0x82,
+ 0x0b, 0xac, 0x87, 0x72, 0xb7, 0x0a, 0x02, 0x00, 0x0a, 0xac, 0xe9, 0x8a, 0xaa, 0xea, 0x76, 0x02, 0x0b, 0xa4, 0x88, 0x82, 0xaa, 0xaa, 0xf5, 0x80, 0xea, 0xa3, 0x49, 0x93, 0x02, 0xab, 0x0d, 0xaa,
+ 0xeb, 0xab, 0xaa, 0x9b, 0x97, 0xa7, 0x8b, 0x0e, 0xeb, 0xab, 0xaa, 0xa3, 0xf8, 0xd7, 0xfc, 0xfe, 0xea, 0xa3, 0xaa, 0x9b, 0xfb, 0xce, 0x7a, 0x5f, 0x2c, 0xb4, 0x89, 0x9b, 0xf7, 0xff, 0xef, 0x2f,
+ 0x0b, 0xac, 0x8a, 0x9b, 0xaf, 0x6a, 0xeb, 0xca, 0xeb, 0xa3, 0x8a, 0x9b, 0xbf, 0xa9, 0xaf, 0x22, 0xea, 0xa3, 0xcb, 0x9b, 0xfe, 0xef, 0xbd, 0x00, 0xeb, 0xab, 0xca, 0x9b, 0xaf, 0xff, 0xea, 0xfe,
+ 0xec, 0xa3, 0xaa, 0x9b, 0xbe, 0xaa, 0x2b, 0xae, 0xeb, 0xa3, 0xcb, 0x9b, 0xbb, 0xdd, 0xbe, 0xa2, 0xcb, 0xa3, 0xaa, 0x9b, 0xa6, 0xac, 0x60, 0x0e, 0xcb, 0xa3, 0xaa, 0x9b, 0x0e, 0xab, 0x03, 0x28,
+ 0xeb, 0xa3, 0xaa, 0x9b, 0x0a, 0x72, 0xfe, 0x6d, 0xcb, 0xa3, 0x8a, 0x9b, 0x02, 0xbc, 0x6c, 0xbf, 0xcb, 0xa3, 0x8a, 0x9b, 0xe2, 0xdf, 0x5d, 0xb7, 0x89, 0xa3, 0xab, 0x9b, 0xde, 0xff, 0x82, 0x2d,
+ 0x8d, 0xc4, 0xeb, 0xb3, 0xf2, 0xf7, 0xff, 0xff, 0xad, 0xc4, 0x2b, 0xbc, 0xed, 0xfd, 0x3d, 0xbd, 0xac, 0xc4, 0x0b, 0xb4, 0xea, 0x7a, 0xdc, 0xaa, 0x8d, 0xc4, 0x2b, 0xb4, 0xf5, 0xef, 0x80, 0xda,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x6b, 0x5f, 0x65, 0xbd, 0x6c, 0xbc, 0x0b, 0xb4, 0xba, 0x82, 0xb9, 0x2a, 0x6c, 0xbc, 0x0b, 0xb4, 0x2b, 0x89, 0xaa, 0x28, 0x8d, 0xc4, 0x4b, 0xb4, 0xbb, 0xed, 0xff, 0xbf,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xbe, 0xbb, 0xff, 0xf8, 0xee, 0xcc, 0x4c, 0xb4, 0xef, 0xff, 0x0d, 0xad, 0x6d, 0xbc, 0x2b, 0xb4, 0x80, 0xce, 0xe0, 0xbe, 0x8d, 0xbc, 0xca, 0xab, 0x38, 0x1f, 0xea, 0x0a,
+ 0xce, 0xc4, 0x6c, 0xbc, 0x7a, 0x3f, 0xf7, 0xfc, 0x0e, 0xcd, 0x4c, 0xbc, 0xd7, 0xec, 0xff, 0xff, 0xac, 0xc4, 0x6d, 0xbc, 0x79, 0xfa, 0xbf, 0xa3, 0xcd, 0xc4, 0x2c, 0xb4, 0xbf, 0x8a, 0x01, 0x0a,
+ 0x0e, 0xcd, 0x8d, 0xbc, 0x59, 0xf9, 0x60, 0x5d, 0x0e, 0xc5, 0x6d, 0xbc, 0x57, 0xaa, 0xaf, 0x8b, 0x0e, 0xcd, 0x6d, 0xbc, 0xfd, 0xea, 0x7e, 0xf0, 0xad, 0xc4, 0x6c, 0xbc, 0x70, 0xaa, 0xeb, 0xab,
+ 0xad, 0xc4, 0x6c, 0xbc, 0x25, 0xa2, 0xfe, 0xab, 0x8c, 0xc4, 0xad, 0xbc, 0xb2, 0x7f, 0xaf, 0xd7, 0xae, 0xc4, 0x8c, 0xbc, 0xea, 0x8e, 0xda, 0xbf, 0xad, 0xc4, 0x8d, 0xbc, 0xab, 0xaa, 0xaa, 0x7e,
+ 0xad, 0xc4, 0x8c, 0xbc, 0xae, 0xef, 0xa9, 0xab, 0xce, 0xc4, 0xad, 0xbc, 0xf5, 0xdd, 0xbd, 0xcb, 0xce, 0xc4, 0x8c, 0xbc, 0xdc, 0xde, 0xee, 0xe2, 0xcd, 0xc4, 0x2b, 0xb4, 0xa0, 0xa8, 0xfe, 0x7f,
+ 0xad, 0xc4, 0x4c, 0xb4, 0xa8, 0xea, 0xf5, 0xf5, 0xad, 0xc4, 0x4c, 0xb4, 0x7f, 0xff, 0xb5, 0xbb, 0xad, 0xc4, 0x4c, 0xb4, 0x5d, 0xfd, 0x2a, 0x82, 0xad, 0xc4, 0x4c, 0xb4, 0xfd, 0xaa, 0x00, 0xaa,
+ 0xad, 0xc4, 0x6c, 0xbc, 0x7f, 0x8f, 0xfb, 0xca, 0xad, 0xc4, 0x6c, 0xb4, 0xff, 0xea, 0xfa, 0xff, 0x8d, 0xc4, 0x4c, 0xb4, 0xa8, 0xbe, 0xeb, 0xef, 0xad, 0xc4, 0x6c, 0xb4, 0xfa, 0xdf, 0xfd, 0xfd,
+ 0x8d, 0xc4, 0x6c, 0xb4, 0xfb, 0xaa, 0xaa, 0xbb, 0x8d, 0xc4, 0x4c, 0xb4, 0xff, 0x0f, 0xaa, 0xaa, 0x8d, 0xc4, 0x6c, 0xbc, 0xd7, 0xfe, 0xf5, 0x77, 0x8d, 0xc4, 0x4b, 0xbc, 0xaa, 0xea, 0x7e, 0xff,
+ 0x8d, 0xbc, 0x4c, 0xbc, 0xfe, 0xaa, 0xd7, 0xfe, 0x8d, 0xbc, 0x4c, 0xb4, 0xa2, 0xee, 0xba, 0xaf, 0x8d, 0xbc, 0x4c, 0xb4, 0xfe, 0xfe, 0xff, 0xbe, 0x8d, 0xbc, 0x4c, 0xb4, 0xbf, 0xae, 0xbf, 0xba,
+ 0x8d, 0xc4, 0x6c, 0xb4, 0x7e, 0xee, 0xff, 0xbf, 0x8d, 0xbc, 0x4c, 0xb4, 0xfe, 0xfa, 0xeb, 0xbb, 0x8d, 0xbc, 0x4c, 0xb4, 0xff, 0xbb, 0x1e, 0x2a, 0x8d, 0xbc, 0x4c, 0xb4, 0x7e, 0xae, 0xa8, 0x28,
+ 0x8d, 0xc4, 0x6c, 0xb4, 0xef, 0xfb, 0xab, 0xaa, 0x8d, 0xc4, 0x6c, 0xb4, 0xfe, 0xaa, 0xaa, 0xba, 0xad, 0xc4, 0x6c, 0xb4, 0xfa, 0xae, 0xfe, 0xff, 0x8d, 0xc4, 0x4c, 0xb4, 0xea, 0xfa, 0xbf, 0xea,
+ 0x8c, 0xbc, 0x4c, 0xbc, 0xfb, 0xff, 0xfb, 0xaa, 0x8d, 0xc4, 0x4c, 0xbc, 0xfb, 0xef, 0xfe, 0xbb, 0x8d, 0xc4, 0x4c, 0xb4, 0xaa, 0xbf, 0xea, 0xaa, 0x8d, 0xc4, 0x2c, 0xb4, 0xaa, 0xaa, 0xef, 0xfa,
+ 0x6d, 0xbc, 0x4b, 0xb4, 0xfc, 0x64, 0xed, 0x2f, 0x8d, 0xbc, 0x4b, 0xb4, 0x5d, 0xab, 0x8a, 0xdb, 0x8d, 0xbc, 0x4c, 0xb4, 0xff, 0xbe, 0x9b, 0x8a, 0xad, 0xc4, 0x6c, 0xbc, 0x69, 0x45, 0xed, 0xeb,
+ 0xad, 0xc4, 0x6c, 0xbc, 0x2d, 0x80, 0x7e, 0xeb, 0x8d, 0xc4, 0x2b, 0xb4, 0x7c, 0xde, 0xfe, 0xfe, 0x2b, 0xbc, 0x6c, 0xb4, 0xaa, 0xfd, 0x8b, 0x8b, 0x6c, 0xbc, 0x2b, 0xb4, 0xfe, 0xfa, 0xb8, 0x20,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0x5d, 0x7b, 0x3e, 0x5b, 0x4c, 0xb4, 0x0a, 0xac, 0xaa, 0xf0, 0xa2, 0xa8, 0x4c, 0xb4, 0x0a, 0xac, 0xea, 0x22, 0xda, 0xfb, 0x4c, 0xb4, 0xea, 0xab, 0x2b, 0xab, 0xff, 0xdf,
+ 0x4c, 0xb4, 0xeb, 0xab, 0xb6, 0x4a, 0xfb, 0x3f, 0x4c, 0xbc, 0xaa, 0xa3, 0xba, 0xaa, 0xa2, 0x70, 0x0b, 0xb4, 0xca, 0xab, 0x0c, 0xaa, 0xb2, 0x79, 0x2b, 0xb4, 0xaa, 0xa3, 0xa8, 0xaa, 0xde, 0x5f,
+ 0x2b, 0xb4, 0x89, 0x9b, 0xf8, 0xfa, 0x7e, 0x7f, 0xcb, 0xa3, 0x89, 0x9b, 0x24, 0xef, 0x99, 0xab, 0x2b, 0xac, 0x85, 0x59, 0xa0, 0x9e, 0xa8, 0xa0, 0xaa, 0xa3, 0x49, 0x93, 0x2d, 0xad, 0x2a, 0xaa,
+ 0xca, 0xa3, 0x69, 0x9b, 0xbf, 0xab, 0x29, 0x0a, 0xeb, 0xab, 0xaa, 0x9b, 0xaf, 0xfb, 0xbf, 0x2e, 0x0c, 0xac, 0xca, 0xa3, 0xbd, 0xaf, 0x29, 0x2b, 0x2c, 0xac, 0xea, 0xa3, 0xb7, 0x57, 0xfd, 0xbe,
+ 0x2c, 0xb4, 0xca, 0xa3, 0xea, 0xff, 0xf7, 0x8e, 0x0c, 0xac, 0xca, 0xa3, 0x39, 0x23, 0xea, 0xaa, 0x0b, 0xb4, 0xca, 0xa3, 0xbe, 0xa3, 0xaf, 0xab, 0xad, 0xc4, 0xeb, 0xab, 0xfd, 0x55, 0x55, 0x3d,
+ 0x70, 0xd5, 0xea, 0xab, 0xab, 0xeb, 0xd5, 0x54, 0xee, 0xc4, 0x2c, 0xb4, 0x3f, 0x1a, 0xaa, 0xeb, 0xee, 0xc4, 0xeb, 0xa3, 0x7e, 0x5e, 0xef, 0xa2, 0xee, 0xbc, 0xeb, 0xa3, 0x9f, 0xa9, 0xa9, 0xac,
+ 0x0f, 0xc5, 0x4c, 0xac, 0x6d, 0xf7, 0x8b, 0x8d, 0xee, 0xc4, 0x2c, 0xac, 0xa5, 0xa3, 0x6a, 0xfb, 0xce, 0xc4, 0x4c, 0xac, 0x72, 0xfb, 0xfb, 0xff, 0x8d, 0xbc, 0x2c, 0xac, 0xd9, 0xfa, 0xd8, 0x03,
+ 0xcd, 0xc4, 0x4c, 0xb4, 0xbf, 0x8b, 0x7e, 0x7b, 0xcd, 0xbc, 0x4c, 0xb4, 0xaa, 0x6e, 0x27, 0x2f, 0xcd, 0xc4, 0x2b, 0xb4, 0xaa, 0xe3, 0x8a, 0x1e, 0xad, 0xbc, 0x2c, 0xac, 0x52, 0xa0, 0x8a, 0x08,
+ 0xad, 0xbc, 0xeb, 0xab, 0xff, 0xdf, 0xbe, 0x80, 0xad, 0xbc, 0x0b, 0xac, 0xeb, 0x7f, 0xda, 0x37, 0x4c, 0xb4, 0xeb, 0xa3, 0x97, 0xae, 0xba, 0xa0, 0x8c, 0xbc, 0x0b, 0xac, 0xeb, 0xfd, 0xac, 0xad,
+ 0xad, 0xc4, 0xeb, 0xab, 0xd6, 0xfa, 0xe8, 0xe2, 0x8c, 0xbc, 0x0b, 0xac, 0xf7, 0xff, 0xfc, 0x5d, 0xac, 0xbc, 0xeb, 0xa3, 0xe2, 0xff, 0xdf, 0xfd, 0x2c, 0xac, 0xca, 0x9b, 0xcf, 0xfc, 0xf6, 0xbe,
+ 0x4c, 0xac, 0xaa, 0x9b, 0x7d, 0x5f, 0xab, 0xe2, 0xeb, 0xa3, 0xaa, 0x9b, 0xad, 0x8b, 0xa2, 0xf2, 0x2c, 0xac, 0x8a, 0x9b, 0xfe, 0x7f, 0x3f, 0x3d, 0x2c, 0xac, 0xca, 0xa3, 0xd8, 0x29, 0x8c, 0x2e,
+ 0x4c, 0xb4, 0xca, 0xa3, 0x5e, 0xda, 0x2a, 0x8a, 0x2b, 0xb4, 0xaa, 0x9b, 0x7f, 0x5f, 0xe0, 0xa0, 0x0b, 0xac, 0xaa, 0x9b, 0xdd, 0x03, 0xbf, 0xaa, 0x2c, 0xb4, 0xaa, 0x9b, 0xf5, 0xfe, 0x2b, 0xfa,
+ 0x0b, 0xac, 0xca, 0xa3, 0xbf, 0x22, 0xf8, 0xae, 0xeb, 0xab, 0xca, 0xa3, 0xf2, 0x22, 0xab, 0xfa, 0x0b, 0xac, 0xca, 0xa3, 0xd7, 0xfe, 0xed, 0xa2, 0x0b, 0xac, 0xaa, 0xa3, 0x2a, 0x6a, 0xab, 0x0a,
+ 0x2c, 0xb4, 0xca, 0xa3, 0x7f, 0xb5, 0xe7, 0x3f, 0x0b, 0xac, 0xaa, 0x9b, 0xa9, 0x20, 0xa2, 0x82, 0x0c, 0xac, 0xca, 0xa3, 0xaf, 0x2b, 0xea, 0xf8, 0xec, 0xab, 0xca, 0xa3, 0xfe, 0x88, 0xec, 0xf9,
+ 0xeb, 0xab, 0xcb, 0x9b, 0xdf, 0x7a, 0xfa, 0xfa, 0xeb, 0xa3, 0xaa, 0x9b, 0xa8, 0xbe, 0xfb, 0x2a, 0xeb, 0xab, 0xaa, 0x9b, 0xeb, 0xfb, 0xfa, 0xaa, 0xcb, 0xa3, 0xaa, 0x9b, 0x58, 0xb4, 0xfd, 0xe8,
+ 0xcb, 0xa3, 0x8a, 0x9b, 0xfa, 0xff, 0x0a, 0x00, 0xea, 0xa3, 0x8a, 0x9b, 0xfd, 0xef, 0x8a, 0xe0, 0xeb, 0xa3, 0xaa, 0x9b, 0x7f, 0x7b, 0xdf, 0x8a, 0x2c, 0xac, 0xaa, 0xa3, 0x5f, 0x55, 0x75, 0x02,
+ 0x4c, 0xbc, 0x0b, 0xac, 0xaa, 0xaf, 0xbb, 0xaa, 0x6b, 0xbc, 0x8a, 0xa3, 0x2a, 0x8a, 0x6a, 0x80, 0xac, 0xc4, 0x49, 0x93, 0xa2, 0xad, 0xab, 0xaa, 0x8c, 0xbc, 0xeb, 0xab, 0xff, 0x8d, 0xaf, 0xaa,
+ 0x8c, 0xbc, 0xeb, 0xab, 0xeb, 0xa8, 0xea, 0x9e, 0x8d, 0xc4, 0x2c, 0xb4, 0x2d, 0xaf, 0xa9, 0xaf, 0x8c, 0xc4, 0x4b, 0xbc, 0xfb, 0xde, 0xbb, 0x72, 0xcd, 0xc4, 0x2b, 0xb4, 0xbf, 0xf7, 0x2d, 0x3f,
+ 0x2e, 0xcd, 0x6d, 0xbc, 0x55, 0x3d, 0xfb, 0x7f, 0x4e, 0xd5, 0x0b, 0xac, 0x7f, 0x78, 0xff, 0xff, 0xce, 0xc4, 0xeb, 0xab, 0xab, 0xa1, 0xfb, 0xaf, 0xee, 0xc4, 0x6c, 0xb4, 0x3c, 0xe7, 0xff, 0xbf,
+ 0xcd, 0xc4, 0x4c, 0xb4, 0xae, 0xaf, 0xaf, 0x7c, 0xee, 0xcc, 0x0b, 0xac, 0xea, 0xab, 0xa0, 0xd7, 0xad, 0xc4, 0x6c, 0xbc, 0x83, 0xeb, 0xa5, 0xa9, 0xce, 0xc4, 0x4c, 0xbc, 0xaf, 0x09, 0xbf, 0xbf,
+ 0xed, 0xc4, 0x6c, 0xbc, 0xaf, 0xfc, 0x7f, 0xef, 0xce, 0xc4, 0x8c, 0xbc, 0xc2, 0xfc, 0xfb, 0x55, 0x0e, 0xcd, 0x8d, 0xbc, 0xf5, 0xd7, 0x55, 0xcf, 0xce, 0xc4, 0x8d, 0xbc, 0xea, 0xae, 0xce, 0xfb,
+ 0xce, 0xc4, 0x8c, 0xbc, 0xfa, 0xba, 0xfa, 0x6a, 0xcd, 0xc4, 0x8d, 0xbc, 0xff, 0xef, 0xfd, 0xe2, 0xad, 0xc4, 0x8c, 0xbc, 0xea, 0xea, 0x6b, 0xbe, 0xcd, 0xc4, 0x8c, 0xbc, 0x5f, 0xfe, 0x6a, 0x69,
+ 0xce, 0xc4, 0x8c, 0xbc, 0xad, 0x2a, 0x5f, 0xd5, 0xad, 0xc4, 0x6c, 0xbc, 0x80, 0xa8, 0xef, 0x2a, 0xad, 0xc4, 0x4c, 0xb4, 0x7a, 0x5e, 0xaa, 0x08, 0xad, 0xc4, 0x4c, 0xbc, 0xfd, 0x8a, 0x0a, 0xa8,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xad, 0x00, 0xe8, 0x5e, 0xae, 0xc4, 0x4c, 0xbc, 0x20, 0xea, 0x57, 0xbf, 0x8d, 0xbc, 0x4c, 0xb4, 0x00, 0xaa, 0xfb, 0xf0, 0x8d, 0xc4, 0x4c, 0xb4, 0xe8, 0xab, 0x5b, 0xbd,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xfe, 0xee, 0xae, 0xaa, 0x8d, 0xc4, 0x6c, 0xb4, 0x7f, 0xbf, 0xae, 0xfe, 0x8d, 0xbc, 0x4c, 0xbc, 0xdf, 0xaa, 0xbb, 0x82, 0x8d, 0xbc, 0x6c, 0xb4, 0x0a, 0x82, 0xaa, 0x9a,
+ 0x8d, 0xbc, 0x6c, 0xbc, 0x95, 0xda, 0x65, 0xba, 0x8d, 0xc4, 0x6c, 0xb4, 0xaa, 0xea, 0xaa, 0xff, 0x8d, 0xc4, 0x4c, 0xb4, 0xfa, 0x8e, 0xea, 0xfa, 0x6d, 0xbc, 0x4c, 0xb4, 0xee, 0xf6, 0xf8, 0x82,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0x7e, 0xfb, 0x7a, 0xd2, 0x8d, 0xbc, 0x4c, 0xb4, 0xad, 0x3f, 0xef, 0x0b, 0xad, 0xbc, 0x4c, 0xb4, 0xfd, 0xaf, 0xaf, 0x82, 0xad, 0xc4, 0x6c, 0xb4, 0xff, 0xdf, 0xbf, 0xae,
+ 0xcd, 0xc4, 0x6c, 0xbc, 0x7f, 0x57, 0x7f, 0x74, 0x8d, 0xbc, 0x4b, 0xb4, 0xbb, 0x7b, 0xd8, 0xaf, 0x6d, 0xbc, 0x2b, 0xb4, 0x80, 0x0d, 0x02, 0x02, 0x8d, 0xbc, 0x6c, 0xb4, 0xba, 0xaa, 0x76, 0x9d,
+ 0xad, 0xc4, 0x4c, 0xb4, 0xbe, 0xea, 0xff, 0xff, 0x8d, 0xc4, 0x4c, 0xbc, 0xaa, 0xaa, 0x9f, 0xae, 0x8c, 0xc4, 0x4d, 0xbc, 0xf6, 0x2b, 0xfc, 0x2a, 0x8d, 0xc4, 0x4b, 0xbc, 0x7f, 0xab, 0xa8, 0xda,
+ 0x8d, 0xc4, 0x2a, 0xb4, 0xaa, 0x0a, 0xea, 0xf5, 0x6c, 0xbc, 0x2b, 0xb4, 0x00, 0x00, 0xaa, 0x6b, 0x6d, 0xbc, 0x2b, 0xb4, 0xf0, 0x8a, 0xfa, 0xa9, 0x6c, 0xbc, 0x4c, 0xb4, 0xfd, 0x63, 0xf7, 0x32,
+ 0x8d, 0xbc, 0x2b, 0xb4, 0x8b, 0x3d, 0xef, 0xfb, 0xad, 0xbc, 0x4c, 0xb4, 0xef, 0x36, 0xab, 0x2f, 0xad, 0xc4, 0x6c, 0xbc, 0xbf, 0xd8, 0xad, 0xfb, 0xad, 0xbc, 0x4c, 0xb4, 0x2a, 0xae, 0xab, 0x09,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xef, 0x7a, 0xd0, 0x50, 0x8d, 0xbc, 0x0b, 0xb4, 0xa8, 0x80, 0x78, 0xfa, 0x6c, 0xbc, 0xcb, 0xab, 0xa0, 0xe0, 0xf7, 0xaa, 0x6c, 0xbc, 0xeb, 0xab, 0x60, 0xd7, 0xff, 0xaa,
+ 0x6d, 0xbc, 0xca, 0xab, 0xed, 0xbb, 0xbb, 0x35, 0x4b, 0xb4, 0xea, 0xab, 0xe8, 0x78, 0x5e, 0x5e, 0x2b, 0xb4, 0xca, 0xa3, 0x8e, 0xf7, 0xa5, 0xb8, 0x2c, 0xb4, 0xca, 0xa3, 0xb5, 0xab, 0xa0, 0x88,
+ 0x4b, 0xb4, 0xec, 0xab, 0xdf, 0xae, 0x8e, 0x22, 0x2b, 0xb4, 0xa9, 0xa3, 0xf0, 0x80, 0x7c, 0x4c, 0x2b, 0xb4, 0xc6, 0x82, 0xa0, 0xa0, 0xaa, 0x5f, 0x0a, 0xac, 0x09, 0x8b, 0x08, 0xa2, 0xa0, 0xad,
+ 0x4c, 0xb4, 0x69, 0x9b, 0x2b, 0x82, 0xff, 0x57, 0x4a, 0xb4, 0x28, 0x8b, 0xa8, 0xdf, 0x56, 0x5f, 0xe9, 0xa3, 0x28, 0x93, 0x80, 0xfe, 0x55, 0x55, 0xaa, 0x9b, 0x28, 0x93, 0x20, 0x29, 0x0f, 0xaf,
+ 0xeb, 0xa3, 0x8a, 0x9b, 0x8b, 0xaf, 0x3d, 0xab, 0x0c, 0xac, 0xea, 0xa3, 0x9d, 0x3d, 0xff, 0xab, 0x2c, 0xac, 0xeb, 0xa3, 0xe1, 0xca, 0xab, 0xfb, 0x2c, 0xac, 0xeb, 0xa3, 0xfd, 0x9f, 0xba, 0x2b,
+ 0x2c, 0xb4, 0xeb, 0xa3, 0xbb, 0xaf, 0xbf, 0xaa, 0x4c, 0xac, 0xea, 0xa3, 0x5f, 0xff, 0xaf, 0xa3, 0xcd, 0xc4, 0x0b, 0xac, 0xd5, 0x55, 0x7d, 0x1f, 0x4c, 0xb4, 0xeb, 0xab, 0xeb, 0x77, 0xfb, 0xa2,
+ 0xad, 0xbc, 0xcb, 0xa3, 0x7d, 0xf3, 0xf0, 0xbf, 0xcd, 0xbc, 0x0b, 0xac, 0xf9, 0x5a, 0xbb, 0x26, 0xce, 0xbc, 0x0b, 0xac, 0xdb, 0xff, 0xfe, 0x08, 0xad, 0xbc, 0xeb, 0xa3, 0x82, 0x29, 0x9f, 0x0a,
+ 0xcd, 0xbc, 0x0b, 0xac, 0x7a, 0xa0, 0x88, 0xaa, 0xcd, 0xbc, 0x4b, 0xac, 0xaa, 0x3e, 0xa8, 0x9b, 0xcd, 0xbc, 0x2b, 0xb4, 0x8a, 0xb6, 0xad, 0x90, 0xad, 0xbc, 0x2b, 0xac, 0xa0, 0xe0, 0x90, 0xfa,
+ 0xcd, 0xbc, 0x6c, 0xb4, 0xfe, 0xbb, 0xb5, 0x25, 0xad, 0xbc, 0x2b, 0xac, 0xac, 0xe8, 0x60, 0xe0, 0xad, 0xbc, 0xeb, 0xa3, 0xa8, 0xae, 0x07, 0x0f, 0xcd, 0xc4, 0x8c, 0xb4, 0xeb, 0x9d, 0x2d, 0xfb,
+ 0xcd, 0xc4, 0x4c, 0xb4, 0x48, 0xfe, 0xfe, 0xea, 0x0f, 0xcd, 0x0c, 0xac, 0xe5, 0xd5, 0xf5, 0x3a, 0xad, 0xbc, 0xeb, 0xab, 0x7b, 0xf2, 0xfa, 0xfa, 0xcd, 0xbc, 0x2b, 0xac, 0xf7, 0x3d, 0x55, 0xff,
+ 0xce, 0xc4, 0x4b, 0xb4, 0x57, 0x7d, 0x53, 0xdf, 0x4c, 0xb4, 0xeb, 0xa3, 0x7a, 0xee, 0xea, 0x8a, 0x6d, 0xb4, 0xeb, 0xa3, 0xf7, 0xba, 0x8a, 0xaa, 0x8d, 0xbc, 0xca, 0x9b, 0xdd, 0xff, 0xff, 0xf8,
+ 0x4c, 0xac, 0xea, 0xa3, 0x2d, 0x9d, 0xad, 0x9b, 0x6c, 0xb4, 0xcb, 0x9b, 0x7b, 0xaa, 0xbe, 0xac, 0x8c, 0xbc, 0xcb, 0x9b, 0xd5, 0xff, 0x88, 0x8a, 0x2b, 0xac, 0xec, 0xa3, 0xfa, 0xf0, 0x56, 0xfe,
+ 0x2c, 0xb4, 0xeb, 0xa3, 0xef, 0xab, 0xe7, 0xff, 0x0b, 0xac, 0xaa, 0xa3, 0x88, 0xa0, 0x7e, 0xaf, 0x0b, 0xac, 0xca, 0xa3, 0xf6, 0xd7, 0xb5, 0x7f, 0xeb, 0xab, 0xab, 0x9b, 0xca, 0xaa, 0xfe, 0xab,
+ 0x0c, 0xac, 0xca, 0xa3, 0xfa, 0xaf, 0xf5, 0xab, 0x2c, 0xac, 0xcb, 0xa3, 0xd2, 0xff, 0xad, 0xbe, 0x6c, 0xb4, 0xcb, 0xa3, 0xdd, 0xde, 0xba, 0xe3, 0x0b, 0xac, 0xea, 0xa3, 0xfe, 0x82, 0xa0, 0x80,
+ 0x0c, 0xac, 0xea, 0xa3, 0xeb, 0xe8, 0xab, 0x84, 0x0c, 0xb4, 0xca, 0xa3, 0xba, 0xfe, 0xa2, 0xab, 0x2c, 0xac, 0xca, 0xa3, 0xfe, 0xb7, 0xfe, 0xa2, 0x0b, 0xac, 0xea, 0xa3, 0xff, 0xdb, 0x5a, 0xee,
+ 0xeb, 0xab, 0xca, 0xa3, 0xf7, 0x6c, 0xd5, 0x6c, 0xeb, 0xab, 0xca, 0xa3, 0x77, 0x5d, 0xf5, 0x6f, 0x0b, 0xac, 0xaa, 0xa3, 0x7e, 0x77, 0xff, 0xa8, 0x6d, 0xb4, 0xaa, 0xa3, 0x55, 0x55, 0xf7, 0x2b,
+ 0xae, 0xbc, 0xaa, 0xa3, 0x55, 0x55, 0xad, 0xb2, 0x6d, 0xbc, 0xca, 0xa3, 0xd5, 0xdf, 0xbe, 0xa8, 0xad, 0xbc, 0x0c, 0xac, 0x37, 0x7e, 0xff, 0xff, 0x8d, 0xbc, 0x2c, 0xac, 0x54, 0xf5, 0xd5, 0xab,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0x27, 0x27, 0xce, 0x2a, 0x6c, 0xbc, 0x0b, 0xb4, 0x2a, 0xaa, 0xdf, 0xef, 0x4b, 0xbc, 0x05, 0x6a, 0x00, 0x00, 0x00, 0x40, 0xad, 0xc4, 0x87, 0x7a, 0xa8, 0xa8, 0xaf, 0xa9,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0xad, 0x79, 0x95, 0xc3, 0x6c, 0xbc, 0x0a, 0xb4, 0x0a, 0xaf, 0xbb, 0xd8, 0x6c, 0xbc, 0x2b, 0xb4, 0xb8, 0x2b, 0xaf, 0xe1, 0x6c, 0xbc, 0xa6, 0x82, 0x00, 0x00, 0x80, 0xb4,
+ 0x8c, 0xbc, 0xcb, 0xab, 0x8a, 0xa8, 0x29, 0x7a, 0x8c, 0xc4, 0x0b, 0xb4, 0xea, 0xb8, 0xd7, 0xfd, 0x8d, 0xc4, 0x4b, 0xbc, 0xd5, 0x5e, 0x5f, 0x63, 0xad, 0xc4, 0x2c, 0xb4, 0xbe, 0xd5, 0x85, 0xb7,
+ 0x8d, 0xbc, 0x2c, 0xb4, 0xf7, 0x8a, 0x2e, 0xbc, 0xce, 0xc4, 0x4c, 0xb4, 0x85, 0xfd, 0xf5, 0xe5, 0xad, 0xbc, 0x2c, 0xb4, 0x2e, 0xaa, 0xaa, 0xbd, 0x8d, 0xc4, 0x4c, 0xb4, 0x8b, 0xaa, 0x2a, 0xfa,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xea, 0xbb, 0x57, 0xd5, 0xad, 0xc4, 0x6c, 0xbc, 0xf7, 0xae, 0x7f, 0xaf, 0xcd, 0xc4, 0x8c, 0xbc, 0xa3, 0xbc, 0x89, 0x7b, 0xce, 0xc4, 0x6c, 0xbc, 0xa0, 0xf8, 0x6b, 0xfd,
+ 0xad, 0xc4, 0x6c, 0xbc, 0x22, 0x60, 0xb5, 0xaa, 0xcd, 0xc4, 0x4c, 0xbc, 0xc0, 0xf5, 0xea, 0xaa, 0xad, 0xc4, 0x6c, 0xb4, 0xd5, 0xef, 0x2e, 0xaa, 0xae, 0xc4, 0x8c, 0xbc, 0x5d, 0x8b, 0x9e, 0xcb,
+ 0xcd, 0xc4, 0x8c, 0xbc, 0xa9, 0xe9, 0x59, 0xfa, 0xae, 0xc4, 0x8c, 0xbc, 0x2e, 0xf8, 0x2d, 0x7e, 0xcd, 0xc4, 0x6c, 0xbc, 0xe8, 0xbd, 0x5b, 0x55, 0xad, 0xc4, 0x6c, 0xbc, 0xfb, 0xac, 0xff, 0xd7,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xa8, 0xaa, 0xbd, 0xa0, 0xad, 0xc4, 0x4c, 0xb4, 0xaf, 0xff, 0xfa, 0xa2, 0x8d, 0xc4, 0x6c, 0xb4, 0xff, 0xfa, 0xef, 0xee, 0xad, 0xc4, 0x6c, 0xb4, 0xff, 0xfd, 0xff, 0xfb,
+ 0xcd, 0xc4, 0x6c, 0xbc, 0x55, 0x55, 0x1f, 0xa3, 0xad, 0xc4, 0x4c, 0xb4, 0xf7, 0xfe, 0xaa, 0x2a, 0x8d, 0xc4, 0x4c, 0xb4, 0xea, 0xaa, 0xfb, 0xaa, 0xad, 0xbc, 0x6c, 0xb4, 0x57, 0xff, 0xfb, 0xeb,
+ 0x8d, 0xc4, 0x2b, 0xb4, 0xba, 0xaa, 0x8a, 0x8d, 0x8d, 0xc4, 0x6c, 0xb4, 0xef, 0xfb, 0xaa, 0xaf, 0x8d, 0xc4, 0x6c, 0xb4, 0xfa, 0xab, 0xea, 0xaa, 0xad, 0xc4, 0x4c, 0xbc, 0xff, 0x7a, 0xab, 0x80,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xbf, 0x75, 0xae, 0xe8, 0x8d, 0xbc, 0x4c, 0xb4, 0xdc, 0xbf, 0xaa, 0x00, 0x8d, 0xc4, 0x4c, 0xb4, 0x8a, 0xfe, 0xfa, 0x77, 0x8d, 0xc4, 0x6c, 0xb4, 0xfa, 0xff, 0xb9, 0x7f,
+ 0x6d, 0xbc, 0xea, 0xa3, 0x80, 0x00, 0x2a, 0x9c, 0x6d, 0xbc, 0x2b, 0xb4, 0x22, 0xbc, 0xce, 0x82, 0xad, 0xbc, 0x2c, 0xb4, 0xee, 0xff, 0xf5, 0x8a, 0x8d, 0xbc, 0x4c, 0xb4, 0x29, 0xee, 0x27, 0x1e,
+ 0x8d, 0xc4, 0x6c, 0xb4, 0xfe, 0xaf, 0xaf, 0xcb, 0x8d, 0xc4, 0x4b, 0xbc, 0xee, 0xeb, 0x76, 0x0a, 0x6c, 0xbc, 0xeb, 0xb3, 0xaa, 0x2e, 0xb7, 0xa0, 0x6d, 0xbc, 0x48, 0x9b, 0xa4, 0x08, 0x00, 0x00,
+ 0x8c, 0xc4, 0xe8, 0x8a, 0x2a, 0x02, 0xa0, 0xa4, 0x8c, 0xbc, 0x0b, 0xac, 0xfa, 0xb8, 0x75, 0xad, 0x6c, 0xbc, 0x2b, 0xb4, 0xeb, 0xda, 0x9d, 0x82, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0xad, 0xfa, 0xaf,
+ 0x8d, 0xbc, 0x2c, 0xb4, 0xbb, 0xaa, 0xad, 0x2e, 0xad, 0xbc, 0x2b, 0xb4, 0x0f, 0xa7, 0x2a, 0xfa, 0xad, 0xc4, 0xca, 0xab, 0xa0, 0xa0, 0xb6, 0x2a, 0x4f, 0xd5, 0x0b, 0xb4, 0xe3, 0x57, 0xff, 0xdd,
+ 0x6c, 0xbc, 0xca, 0xa3, 0xb6, 0xaa, 0xa8, 0xaa, 0x6c, 0xbc, 0x0b, 0xb4, 0xda, 0xee, 0xad, 0xa8, 0x6c, 0xbc, 0xea, 0xab, 0x8a, 0xed, 0xbe, 0xfa, 0x4c, 0xb4, 0xaa, 0xa3, 0xa8, 0xaa, 0x8a, 0x5a,
+ 0x2b, 0xb4, 0xaa, 0xa3, 0xea, 0x00, 0xe8, 0xe5, 0x2b, 0xb4, 0x8a, 0xa3, 0xaa, 0xe0, 0x5f, 0xab, 0x0b, 0xb4, 0xea, 0xa3, 0xaa, 0xdf, 0xfb, 0xef, 0x4c, 0xbc, 0xca, 0xa3, 0xe2, 0x76, 0xfb, 0x7e,
+ 0xea, 0xab, 0x49, 0x93, 0x78, 0xbe, 0xa8, 0x80, 0x0a, 0xac, 0xc7, 0x82, 0x55, 0xaa, 0x80, 0xc0, 0x0b, 0xac, 0x24, 0x72, 0xab, 0x2a, 0x00, 0x7f, 0xc9, 0xa3, 0x04, 0x6a, 0x00, 0x00, 0xfc, 0xf5,
+ 0x0a, 0xac, 0x62, 0x59, 0xaa, 0x02, 0x57, 0xff, 0x88, 0x9b, 0xe4, 0x61, 0x20, 0xa0, 0xd7, 0xf7, 0xca, 0x9b, 0x63, 0x59, 0x80, 0x57, 0xbf, 0xab, 0xaa, 0x9b, 0x46, 0x72, 0x2a, 0x29, 0x02, 0x0a,
+ 0xeb, 0xa3, 0x89, 0x9b, 0xad, 0xad, 0x0a, 0xaa, 0x4b, 0xac, 0xca, 0xa3, 0x3d, 0xf5, 0x75, 0xf5, 0x2b, 0xac, 0xca, 0xa3, 0xe6, 0xad, 0xf7, 0xaf, 0x0b, 0xac, 0xca, 0xa3, 0x2a, 0x2a, 0xef, 0xf7,
+ 0x0b, 0xac, 0xca, 0xa3, 0x80, 0xb8, 0xb7, 0xe7, 0x4b, 0xb4, 0xea, 0xa3, 0xed, 0xcf, 0x57, 0x55, 0x2b, 0xac, 0xca, 0xa3, 0x00, 0x9e, 0xd7, 0xaf, 0x0e, 0xc5, 0xeb, 0xab, 0x7f, 0x73, 0x55, 0xd7,
+ 0x6d, 0xbc, 0xeb, 0xab, 0x7d, 0xf1, 0x3b, 0xda, 0xad, 0xbc, 0xea, 0xa3, 0x2e, 0x8d, 0x5d, 0x5f, 0xad, 0xbc, 0xea, 0xa3, 0xe0, 0xba, 0x2d, 0x29, 0xad, 0xbc, 0xea, 0xa3, 0x6a, 0x8a, 0xb8, 0xfa,
+ 0xad, 0xbc, 0x0b, 0xac, 0xa9, 0x82, 0xa2, 0x8b, 0xad, 0xbc, 0x0b, 0xac, 0x01, 0x0a, 0xfa, 0xee, 0xcd, 0xbc, 0xeb, 0xa3, 0xa6, 0xa0, 0x88, 0xaa, 0xad, 0xbc, 0x6c, 0xb4, 0x46, 0xbe, 0xa3, 0x3f,
+ 0xcd, 0xbc, 0x0b, 0xac, 0xfa, 0x72, 0x70, 0x8a, 0x8c, 0xbc, 0x0b, 0xac, 0xa9, 0xa9, 0x29, 0x88, 0xad, 0xc4, 0xeb, 0xa3, 0xb7, 0xd5, 0xf8, 0x8b, 0xcd, 0xc4, 0x2b, 0xac, 0xaa, 0xa7, 0x7a, 0xf3,
+ 0xed, 0xc4, 0x4c, 0xb4, 0x6b, 0xe2, 0xb5, 0x8d, 0xed, 0xc4, 0x2c, 0xac, 0x9e, 0x5f, 0xfa, 0xca, 0x8c, 0xbc, 0x0b, 0xac, 0xa0, 0x8b, 0x8a, 0x6a, 0xad, 0xbc, 0x2b, 0xac, 0x5f, 0x7f, 0xfc, 0xab,
+ 0xce, 0xc4, 0x4c, 0xb4, 0xfd, 0xdf, 0x95, 0xd0, 0xcd, 0xc4, 0xcb, 0xa3, 0xfe, 0xdf, 0xfa, 0xb8, 0xce, 0xbc, 0xeb, 0xab, 0xe3, 0xab, 0x7a, 0xee, 0x6d, 0xb4, 0x0b, 0xa4, 0x5c, 0xdf, 0xcf, 0xaf,
+ 0x6d, 0xb4, 0x0b, 0xa4, 0x9e, 0x9b, 0xbb, 0x28, 0xad, 0xbc, 0x2c, 0xac, 0x3b, 0x9a, 0x8a, 0xea, 0x8d, 0xbc, 0xeb, 0xab, 0x88, 0x08, 0xa6, 0xeb, 0x4c, 0xb4, 0x0b, 0xac, 0x5e, 0xd6, 0xd8, 0x52,
+ 0x2c, 0xb4, 0xea, 0xab, 0x7c, 0xe8, 0xee, 0xab, 0x0c, 0xb4, 0xea, 0xa3, 0xbf, 0xff, 0xab, 0xab, 0x0c, 0xb4, 0xcb, 0xa3, 0xf3, 0xf7, 0xa8, 0x8a, 0x2c, 0xb4, 0xeb, 0xa3, 0xbf, 0xfb, 0xff, 0xae,
+ 0x2b, 0xb4, 0xca, 0xa3, 0xab, 0xef, 0xfa, 0xb2, 0x2c, 0xb4, 0xea, 0xa3, 0xff, 0xff, 0x5d, 0xfa, 0x0c, 0xb4, 0xca, 0xa3, 0xae, 0xfa, 0xa7, 0xfa, 0x2c, 0xac, 0xca, 0xa3, 0xaf, 0xaf, 0x7a, 0xe2,
+ 0x2c, 0xb4, 0xea, 0xab, 0xab, 0xaf, 0x7f, 0xfe, 0x4c, 0xb4, 0xeb, 0xab, 0x7d, 0x8b, 0xef, 0xdf, 0x4c, 0xb4, 0xeb, 0xab, 0xdf, 0xbf, 0x2a, 0xf8, 0x4c, 0xb4, 0xcb, 0xab, 0xfe, 0x9a, 0xaa, 0xa0,
+ 0x4c, 0xb4, 0xeb, 0xab, 0x5d, 0xff, 0xa9, 0x40, 0x6d, 0xb4, 0xeb, 0xab, 0x57, 0x77, 0xeb, 0x89, 0x4c, 0xb4, 0x0b, 0xac, 0x37, 0x2d, 0xa3, 0x80, 0xce, 0xc4, 0xeb, 0xab, 0xff, 0x97, 0x05, 0xab,
+ 0xce, 0xc4, 0x0b, 0xac, 0x8d, 0xba, 0xfe, 0xff, 0x6c, 0xb4, 0xeb, 0xab, 0xa0, 0xa2, 0x0a, 0xa5, 0x6d, 0xbc, 0x2c, 0xac, 0xab, 0xaa, 0x0a, 0xa9, 0x8e, 0xbc, 0x6c, 0xb4, 0x05, 0x83, 0x20, 0x80,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0xbb, 0xaf, 0x2f, 0xda, 0x4c, 0xbc, 0x0b, 0xb4, 0x23, 0x80, 0x60, 0x00, 0x6b, 0xbc, 0xec, 0xab, 0x7a, 0xaa, 0xaa, 0xa2, 0x4c, 0xbc, 0xca, 0xab, 0x0b, 0xa8, 0xd0, 0x80,
+ 0x6c, 0xbc, 0xea, 0xb3, 0x6a, 0xf0, 0xdf, 0xfa, 0x4c, 0xbc, 0xa7, 0x82, 0xad, 0x02, 0x02, 0x00, 0x4b, 0xbc, 0x03, 0x51, 0x80, 0x70, 0xbc, 0x00, 0x2c, 0xb4, 0x26, 0x72, 0x2d, 0x0b, 0x00, 0x00,
+ 0x8b, 0xc4, 0xcc, 0xa3, 0xaa, 0x2b, 0x2f, 0x6a, 0xcc, 0xcc, 0x64, 0x51, 0x80, 0xd8, 0xb6, 0xab, 0x4c, 0xbc, 0xca, 0xa3, 0x2d, 0xff, 0x2b, 0x02, 0xad, 0xbc, 0x0b, 0xac, 0x0f, 0x89, 0xaf, 0xae,
+ 0x8c, 0xc4, 0x0b, 0xb4, 0x00, 0x00, 0x7a, 0xff, 0xce, 0xc4, 0x0b, 0xac, 0xea, 0xcf, 0xfd, 0xff, 0x8d, 0xbc, 0x2b, 0xb4, 0x27, 0xa8, 0x5f, 0xdd, 0x6d, 0xbc, 0x4b, 0xb4, 0x28, 0xef, 0xb5, 0x7d,
+ 0x8d, 0xbc, 0x2b, 0xb4, 0xaa, 0xba, 0xab, 0x05, 0x8d, 0xbc, 0x4c, 0xb4, 0x2f, 0xa8, 0xa0, 0x98, 0xad, 0xc4, 0x6c, 0xb4, 0xbf, 0xbf, 0xab, 0xaa, 0xac, 0xc4, 0x6d, 0xbc, 0x8b, 0x0b, 0xbe, 0xe2,
+ 0xad, 0xc4, 0x8c, 0xbc, 0xaf, 0xae, 0xbf, 0x8f, 0xad, 0xc4, 0x8c, 0xbc, 0xaf, 0xab, 0x8b, 0x65, 0xcd, 0xc4, 0x4c, 0xbc, 0xaa, 0xa0, 0xff, 0xf5, 0xad, 0xc4, 0x2c, 0xb4, 0xa0, 0xb6, 0xaa, 0xaa,
+ 0x8d, 0xc4, 0x2c, 0xb4, 0x27, 0x82, 0x82, 0xaa, 0xad, 0xc4, 0x6c, 0xbc, 0xdf, 0xcf, 0xf5, 0xd5, 0xad, 0xc4, 0x4c, 0xbc, 0xa2, 0xca, 0xdf, 0xfd, 0xcd, 0xc4, 0x4c, 0xbc, 0x2f, 0x7d, 0x55, 0x55,
+ 0xee, 0xcc, 0x4c, 0xb4, 0x3e, 0xdd, 0x55, 0xd5, 0xad, 0xc4, 0x4c, 0xb4, 0xa8, 0xb5, 0xff, 0xff, 0x8c, 0xc4, 0x4c, 0xb4, 0xa8, 0x8e, 0xff, 0xba, 0x8d, 0xc4, 0x4b, 0xb4, 0xeb, 0xef, 0xae, 0xff,
+ 0x8d, 0xc4, 0x6c, 0xbc, 0xd5, 0x55, 0x63, 0xd5, 0xad, 0xc4, 0x6c, 0xbc, 0xd7, 0x5d, 0x5f, 0x8a, 0x8d, 0xc4, 0x6c, 0xb4, 0xaa, 0xbf, 0xff, 0xbf, 0xad, 0xc4, 0x0b, 0xb4, 0x6a, 0xfe, 0xff, 0x8a,
+ 0x8c, 0xbc, 0x2b, 0xb4, 0xd5, 0xaf, 0x2b, 0xea, 0xcd, 0xc4, 0x2c, 0xb4, 0xad, 0x2b, 0xfe, 0xff, 0xed, 0xc4, 0x4c, 0xbc, 0xff, 0xe2, 0x5d, 0xfd, 0xad, 0xc4, 0x4c, 0xb4, 0x82, 0xfb, 0xeb, 0x7e,
+ 0x8d, 0xbc, 0x2c, 0xb4, 0xa0, 0x2a, 0xd8, 0xba, 0x8c, 0xbc, 0x0b, 0xb4, 0xdc, 0xa2, 0xfe, 0xa8, 0x8d, 0xbc, 0x4c, 0xb4, 0xbb, 0x83, 0xfd, 0xa8, 0x6d, 0xbc, 0x4c, 0xb4, 0x7a, 0x97, 0x2a, 0x20,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0xbf, 0xbe, 0x8a, 0xcf, 0x8c, 0xbc, 0x6d, 0xb4, 0xed, 0xae, 0xae, 0xe2, 0x8d, 0xbc, 0x4b, 0xb4, 0x63, 0x60, 0xb0, 0xea, 0x8d, 0xc4, 0x6c, 0xb4, 0xae, 0xbe, 0xaf, 0xab,
+ 0x8d, 0xbc, 0x2b, 0xb4, 0xf6, 0x08, 0x00, 0x22, 0x8d, 0xc4, 0x4c, 0xb4, 0x6a, 0x82, 0xaa, 0xaa, 0xad, 0xc4, 0x2b, 0xb4, 0xfd, 0xf2, 0xaa, 0xaa, 0x8d, 0xc4, 0x4c, 0xbc, 0xdf, 0xbb, 0xbb, 0xaf,
+ 0x8c, 0xbc, 0xab, 0xab, 0xaa, 0xad, 0xa8, 0xa8, 0x6c, 0xbc, 0x0b, 0xb4, 0xaf, 0xe8, 0xff, 0xb7, 0x8c, 0xbc, 0x2b, 0xb4, 0xdf, 0xad, 0xf5, 0xb3, 0x6c, 0xbc, 0x0b, 0xac, 0xaa, 0x26, 0x88, 0xee,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x2f, 0xaa, 0xf5, 0xab, 0x6c, 0xbc, 0x0b, 0xb4, 0xa8, 0xff, 0x78, 0xfa, 0x6c, 0xb4, 0x0a, 0xac, 0x72, 0xfe, 0xae, 0xed, 0x6b, 0xbc, 0x69, 0x9b, 0xaa, 0x82, 0x78, 0xaa,
+ 0x4b, 0xbc, 0x89, 0x9b, 0x00, 0x60, 0xbd, 0xe8, 0x2b, 0xb4, 0x25, 0x93, 0x00, 0x02, 0x82, 0x7b, 0x4b, 0xb4, 0x66, 0x7a, 0x00, 0x00, 0x00, 0xd7, 0x2a, 0xb4, 0xc8, 0x82, 0x80, 0x20, 0x00, 0xf5,
+ 0xea, 0xab, 0x08, 0x8b, 0x00, 0x00, 0xaa, 0x55, 0x6b, 0xb4, 0x65, 0x7a, 0xaa, 0x0a, 0x5f, 0x7f, 0x8a, 0xbc, 0x66, 0x72, 0xaa, 0xa0, 0x75, 0xf7, 0x29, 0xac, 0x47, 0x72, 0x00, 0x5f, 0xf5, 0xff,
+ 0xa9, 0xa3, 0x47, 0x6a, 0xe8, 0xbd, 0xaa, 0xaa, 0x49, 0x93, 0x45, 0x72, 0x55, 0xaa, 0x22, 0xa2, 0x27, 0x8b, 0x46, 0x7a, 0xf5, 0x82, 0xa8, 0xaa, 0xe7, 0x82, 0xe3, 0x61, 0x7a, 0xf8, 0xac, 0x08,
+ 0x29, 0x8b, 0xc4, 0x61, 0x55, 0xff, 0xaa, 0x2a, 0x69, 0x9b, 0xe5, 0x61, 0xbd, 0xab, 0x0a, 0x0a, 0xaa, 0x9b, 0xe8, 0x82, 0xb5, 0xaf, 0x2a, 0x0a, 0x4c, 0xac, 0x69, 0x9b, 0xf5, 0xf5, 0x2f, 0xaf,
+ 0xeb, 0xab, 0xaa, 0x9b, 0xa9, 0x5f, 0xbc, 0xf8, 0xeb, 0xab, 0xaa, 0x9b, 0x2e, 0xab, 0xeb, 0xea, 0xeb, 0xab, 0xaa, 0x9b, 0xe2, 0xbe, 0xab, 0xfa, 0xeb, 0xab, 0xaa, 0x9b, 0xbf, 0xae, 0xff, 0xaf,
+ 0xeb, 0xab, 0xaa, 0x9b, 0x28, 0xbb, 0xe7, 0xff, 0xeb, 0xab, 0xaa, 0x9b, 0xaa, 0xaa, 0x9e, 0xab, 0xce, 0xc4, 0xca, 0xa3, 0x3d, 0x27, 0xd5, 0x55, 0xad, 0xbc, 0xcb, 0xa3, 0x2e, 0xf6, 0xa7, 0x2b,
+ 0x70, 0xd5, 0xeb, 0xa3, 0x57, 0x75, 0xd5, 0x7c, 0x4c, 0xb4, 0xaa, 0x9b, 0x7e, 0xaa, 0x28, 0xef, 0xee, 0xc4, 0x0b, 0xac, 0xfd, 0xbd, 0xff, 0xcd, 0xad, 0xbc, 0xeb, 0xa3, 0xf8, 0xa8, 0x96, 0xa1,
+ 0xac, 0xbc, 0x0b, 0xac, 0xfd, 0x25, 0x2f, 0xee, 0xad, 0xbc, 0x0b, 0xac, 0xf8, 0xe2, 0x7e, 0x1e, 0xed, 0xbc, 0xeb, 0xab, 0x2e, 0xa5, 0xae, 0xae, 0xed, 0xbc, 0x0b, 0xac, 0x0a, 0x7a, 0x7e, 0x7d,
+ 0x8c, 0xbc, 0x0b, 0xac, 0x03, 0xbf, 0xd5, 0xbb, 0x8c, 0xbc, 0xeb, 0x9b, 0xf8, 0xfa, 0x57, 0xff, 0x8c, 0xb4, 0xeb, 0xa3, 0xcb, 0xbf, 0x3f, 0xd5, 0x6c, 0xb4, 0x0a, 0xa4, 0x89, 0x0f, 0xb8, 0x7f,
+ 0x6c, 0xb4, 0x0b, 0xac, 0xf8, 0xff, 0xdb, 0xfb, 0xad, 0xbc, 0x0b, 0xb4, 0xfd, 0x3a, 0xff, 0xea, 0xad, 0xbc, 0x0b, 0xac, 0x2a, 0xaf, 0xdd, 0x55, 0xad, 0xbc, 0x2b, 0xac, 0xab, 0x62, 0x8a, 0xdf,
+ 0xad, 0xc4, 0x0b, 0xac, 0xe0, 0xb5, 0xbf, 0xd7, 0xce, 0xbc, 0x4c, 0xb4, 0x55, 0xdf, 0x96, 0xa8, 0xcd, 0xc4, 0x0b, 0xac, 0x7b, 0x3d, 0xef, 0xeb, 0xad, 0xbc, 0x2c, 0xac, 0xf7, 0x2f, 0x2d, 0x02,
+ 0xcd, 0xc4, 0x4c, 0xb4, 0xf5, 0xff, 0xf0, 0x68, 0xcd, 0xc4, 0x4b, 0xb4, 0xde, 0xaa, 0xfc, 0x5d, 0x8c, 0xbc, 0x0b, 0xac, 0xfb, 0xe8, 0xf8, 0x5f, 0x2b, 0xb4, 0xeb, 0xab, 0xb6, 0xf2, 0xff, 0x57,
+ 0x0b, 0xb4, 0xeb, 0xa3, 0xaa, 0xba, 0xfe, 0xbb, 0x4c, 0xb4, 0xca, 0xa3, 0xbe, 0xba, 0xa8, 0x77, 0x2b, 0xb4, 0xca, 0xa3, 0x82, 0xab, 0xb7, 0xa1, 0x4c, 0xb4, 0xca, 0xa3, 0xa2, 0x22, 0x77, 0xba,
+ 0x2c, 0xb4, 0xaa, 0xa3, 0xae, 0xaf, 0x29, 0x22, 0x2c, 0xb4, 0xeb, 0xa3, 0x8a, 0xae, 0x58, 0x08, 0x4c, 0xb4, 0xaa, 0xa3, 0xfa, 0xde, 0xfe, 0x82, 0x4c, 0xb4, 0xeb, 0xab, 0xff, 0xfd, 0xfd, 0x8b,
+ 0x4c, 0xb4, 0xca, 0xa3, 0xaa, 0xb7, 0x8a, 0xcb, 0x4c, 0xb4, 0xcb, 0xa3, 0xaa, 0x80, 0xab, 0xf6, 0x6d, 0xb4, 0xca, 0xa3, 0xaa, 0x82, 0xde, 0xa9, 0x4b, 0xb4, 0x0c, 0xac, 0x0a, 0xfb, 0x2d, 0x8f,
+ 0x4c, 0xb4, 0xeb, 0xab, 0x1a, 0xa0, 0xba, 0x89, 0x6d, 0xb4, 0x0b, 0xac, 0x0a, 0x2f, 0xaa, 0x95, 0x6d, 0xb4, 0x87, 0x9b, 0x00, 0x00, 0xa0, 0x78, 0x6c, 0xb4, 0x44, 0x7a, 0x00, 0x80, 0xaa, 0x5e,
+ 0x8a, 0xb4, 0x46, 0x7a, 0xa0, 0xa5, 0x57, 0xd5, 0x6c, 0xb4, 0xc6, 0x7a, 0x22, 0x25, 0x29, 0x2f, 0x6c, 0xbc, 0xeb, 0xab, 0xaa, 0xbd, 0xfe, 0x25, 0x8d, 0xbc, 0xeb, 0xab, 0xae, 0xea, 0xed, 0xe8,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xaa, 0xaa, 0xfd, 0x37, 0x4c, 0xbc, 0x2b, 0xb4, 0xba, 0xb6, 0xcc, 0xb0, 0x4c, 0xbc, 0xeb, 0xb3, 0xb6, 0xa2, 0xea, 0xea, 0x4c, 0xbc, 0x0b, 0xb4, 0xe2, 0xbb, 0x6a, 0xea,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x5f, 0xd7, 0x3d, 0xab, 0x6c, 0xbc, 0x0b, 0xb4, 0x3f, 0xb2, 0xf6, 0xbf, 0x4c, 0xbc, 0x0b, 0xb4, 0x5e, 0xb0, 0xa3, 0x82, 0x4c, 0xbc, 0x2b, 0xb4, 0xdd, 0xe1, 0xfa, 0x7f,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xe8, 0xfa, 0xbb, 0xea, 0x4b, 0xbc, 0x0c, 0xb4, 0xf7, 0xef, 0xff, 0x2f, 0x4c, 0xbc, 0x2b, 0xb4, 0xcb, 0xbf, 0x2d, 0x03, 0x8b, 0xc4, 0x44, 0x51, 0x00, 0xa0, 0x78, 0xfc,
+ 0x6b, 0xbc, 0xa9, 0x7a, 0x28, 0xaa, 0x09, 0x02, 0x4c, 0xbc, 0x09, 0xac, 0x80, 0x8a, 0xf0, 0x74, 0x8c, 0xbc, 0xca, 0xa3, 0xbf, 0x2d, 0xae, 0xb5, 0x6c, 0xbc, 0x0b, 0xac, 0xfe, 0x37, 0x0a, 0x00,
+ 0x8d, 0xbc, 0x4b, 0xb4, 0xa5, 0xbb, 0x8b, 0xef, 0x8d, 0xbc, 0x2c, 0xb4, 0x88, 0xa0, 0xa2, 0x7a, 0x8d, 0xc4, 0x6c, 0xbc, 0x61, 0x55, 0x6b, 0x7d, 0x8d, 0xc4, 0x6c, 0xbc, 0x0b, 0xeb, 0xef, 0x27,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xde, 0xce, 0xdd, 0x7e, 0x8d, 0xc4, 0x6c, 0xbc, 0xd8, 0x8f, 0xf7, 0xad, 0xad, 0xc4, 0x6c, 0xbc, 0x7a, 0x7e, 0xff, 0x7a, 0x8d, 0xc4, 0x4c, 0xbc, 0xbe, 0xfb, 0xfe, 0xf6,
+ 0xad, 0xc4, 0x4c, 0xb4, 0xea, 0xbf, 0xf5, 0xbf, 0x8d, 0xc4, 0x4b, 0xb4, 0xfa, 0xfa, 0xbf, 0xea, 0x8d, 0xc4, 0x4b, 0xb4, 0x7f, 0xfe, 0xee, 0xaa, 0x8d, 0xbc, 0x4b, 0xb4, 0x37, 0xbe, 0xf7, 0x2f,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xbb, 0xaf, 0xab, 0xab, 0xcd, 0xc4, 0x6c, 0xbc, 0xd5, 0x7d, 0x75, 0x8b, 0xed, 0xc4, 0x4c, 0xbc, 0x5b, 0x7f, 0xff, 0xb8, 0xad, 0xc4, 0x4c, 0xb4, 0xfd, 0xff, 0xf7, 0xfc,
+ 0x8d, 0xc4, 0x4b, 0xb4, 0xf7, 0xfe, 0x6b, 0x9e, 0xee, 0xcc, 0x4c, 0xbc, 0x3d, 0xfd, 0xf5, 0x55, 0xad, 0xc4, 0x4b, 0xbc, 0x2c, 0x5e, 0x7f, 0xf5, 0x6c, 0xbc, 0x0b, 0xb4, 0xb4, 0x80, 0xe2, 0xaa,
+ 0x8d, 0xbc, 0x2b, 0xb4, 0xde, 0xaf, 0xff, 0xa3, 0x8d, 0xbc, 0x2b, 0xb4, 0x9a, 0xaa, 0xac, 0x8c, 0x8d, 0xc4, 0x4c, 0xb4, 0xff, 0xbf, 0xc2, 0xff, 0x8d, 0xbc, 0x4b, 0xb4, 0xa9, 0xea, 0x7f, 0xee,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xef, 0xa3, 0xbb, 0xaa, 0xcd, 0xc4, 0x4c, 0xb4, 0xff, 0xf8, 0x5f, 0x7f, 0x8d, 0xc4, 0x4c, 0xbc, 0xff, 0x8f, 0xfd, 0xea, 0x8d, 0xbc, 0x2c, 0xb4, 0xa2, 0x07, 0xbb, 0x08,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0xaa, 0xf6, 0xff, 0xa0, 0x8d, 0xc4, 0x4b, 0xb4, 0xaa, 0xa3, 0xab, 0xff, 0x8d, 0xbc, 0x4b, 0xb4, 0x28, 0x28, 0x6a, 0xff, 0x8c, 0xbc, 0x2b, 0xb4, 0x0a, 0x20, 0xe9, 0x98,
+ 0x8d, 0xbc, 0x4b, 0xb4, 0x22, 0xbc, 0xff, 0x57, 0x8c, 0xbc, 0x4b, 0xb4, 0xe8, 0x3f, 0xab, 0x6a, 0x8c, 0xbc, 0x2b, 0xb4, 0xea, 0x2a, 0x7a, 0xfd, 0x8c, 0xbc, 0x2b, 0xb4, 0xea, 0xf7, 0x29, 0x7f,
+ 0x8c, 0xbc, 0x0b, 0xac, 0xff, 0x8a, 0xd6, 0xff, 0x8c, 0xbc, 0xcb, 0xab, 0xaa, 0xb7, 0xef, 0x2a, 0x4c, 0xb4, 0x0a, 0xac, 0xd4, 0x3a, 0x8f, 0xeb, 0x6d, 0xbc, 0x0b, 0xb4, 0x2f, 0x6b, 0x7f, 0x7d,
+ 0x4b, 0xbc, 0x6a, 0x9b, 0x80, 0xd7, 0xaa, 0xaa, 0x0a, 0xb4, 0x6a, 0x9b, 0x82, 0x55, 0xaa, 0xa2, 0x2a, 0xac, 0x49, 0x9b, 0x7e, 0xff, 0xaa, 0x0a, 0x09, 0xa4, 0xa7, 0x8a, 0x7f, 0xaa, 0xaa, 0xa8,
+ 0x89, 0x9b, 0xa6, 0x82, 0xf5, 0x28, 0x20, 0xa8, 0xca, 0xa3, 0x07, 0x8b, 0xfd, 0x0a, 0xaa, 0x5d, 0xc9, 0xa3, 0xc7, 0x82, 0xeb, 0xa0, 0xaa, 0xde, 0xea, 0xa3, 0xe5, 0x71, 0xaa, 0xa0, 0x00, 0x5e,
+ 0xa9, 0x9b, 0x45, 0x7a, 0xaa, 0x00, 0x00, 0x9f, 0xa9, 0xa3, 0xc7, 0x82, 0xbf, 0xa2, 0x08, 0x57, 0xea, 0xa3, 0xc7, 0x8a, 0xff, 0xaa, 0x20, 0xdd, 0xca, 0xa3, 0xc7, 0x82, 0xaa, 0xaa, 0x20, 0xd7,
+ 0x8a, 0x9b, 0xc5, 0x82, 0xa0, 0xa8, 0x08, 0xf7, 0x69, 0x93, 0x02, 0x6a, 0xa0, 0x00, 0x80, 0x7a, 0x28, 0x8b, 0x23, 0x49, 0x00, 0x80, 0xf0, 0xb7, 0xab, 0xa3, 0xc8, 0x82, 0x75, 0xfd, 0xbd, 0x2b,
+ 0x4c, 0xac, 0x66, 0x7a, 0xff, 0xaa, 0xae, 0x4a, 0xcb, 0xa3, 0xe7, 0x82, 0xef, 0x0a, 0x00, 0x01, 0xeb, 0xa3, 0x8a, 0x9b, 0xa5, 0xab, 0x2a, 0x0b, 0xce, 0xbc, 0xaa, 0x9b, 0xe5, 0x37, 0x57, 0xf5,
+ 0x0b, 0xa4, 0xaa, 0x9b, 0xeb, 0x26, 0x8a, 0xa0, 0xeb, 0xab, 0xca, 0x9b, 0xfa, 0xfa, 0xaa, 0xe2, 0x0c, 0xac, 0xca, 0xa3, 0xd5, 0xd5, 0xf7, 0x3d, 0x0b, 0xac, 0xaa, 0xa3, 0x6f, 0x5a, 0x6a, 0xa8,
+ 0xcb, 0xa3, 0x8a, 0x9b, 0x00, 0x80, 0x07, 0x02, 0x2b, 0xac, 0xca, 0xa3, 0x5d, 0xb3, 0xe5, 0xd7, 0xef, 0xc4, 0xca, 0xa3, 0x55, 0x57, 0x55, 0xcd, 0x2b, 0xb4, 0xca, 0xa3, 0x3d, 0x97, 0x2f, 0xe8,
+ 0x4c, 0xb4, 0xca, 0xa3, 0xaa, 0x4a, 0xaa, 0xaf, 0x2b, 0xac, 0xca, 0xa3, 0x3c, 0xde, 0x6b, 0x5e, 0x8d, 0xbc, 0xeb, 0xa3, 0x0a, 0x8b, 0xa3, 0xf5, 0xae, 0xb4, 0xeb, 0xab, 0x7b, 0xab, 0x02, 0x20,
+ 0xad, 0xbc, 0xeb, 0xa3, 0x8a, 0x2e, 0x7f, 0xab, 0xce, 0xc4, 0x2c, 0xac, 0x5d, 0xf4, 0x5d, 0xfe, 0x8d, 0xbc, 0x0b, 0xac, 0x8b, 0xfe, 0x7d, 0xff, 0xcd, 0xc4, 0xca, 0xa3, 0xde, 0xf5, 0xff, 0x89,
+ 0x8c, 0xbc, 0xeb, 0xa3, 0xe8, 0x59, 0x7e, 0x5f, 0x6c, 0xac, 0xaa, 0x9b, 0x3f, 0xeb, 0xeb, 0xe7, 0x2b, 0xac, 0xaa, 0xa3, 0x2c, 0x9e, 0xeb, 0x7a, 0x0b, 0xac, 0xaa, 0xa3, 0x28, 0xea, 0xa9, 0xab,
+ 0x4b, 0xb4, 0xca, 0xa3, 0x09, 0xed, 0x7f, 0xfd, 0x2b, 0xac, 0x8a, 0x9b, 0x80, 0xa8, 0xa7, 0x8a, 0x4c, 0xb4, 0x89, 0x9b, 0xfa, 0xfe, 0xfc, 0x7f, 0x8d, 0xb4, 0xaa, 0x9b, 0xe7, 0x43, 0xa3, 0xa7,
+ 0xcd, 0xc4, 0x0b, 0xac, 0x3d, 0xbd, 0xf5, 0xff, 0xad, 0xbc, 0xea, 0xab, 0xe0, 0xa0, 0xf8, 0x7f, 0xac, 0xbc, 0xeb, 0xa3, 0x22, 0x8a, 0xf7, 0x55, 0xac, 0xbc, 0xeb, 0xa3, 0xa0, 0x75, 0xd5, 0xf5,
+ 0x6c, 0xbc, 0xeb, 0xab, 0x80, 0x2d, 0xff, 0x55, 0x4c, 0xb4, 0xca, 0xab, 0xf8, 0x8a, 0xdf, 0xfe, 0x2c, 0xb4, 0xea, 0xab, 0xbf, 0xe8, 0xd6, 0xd5, 0x2b, 0xb4, 0xca, 0xa3, 0xa0, 0xef, 0xbb, 0xaf,
+ 0x2c, 0xb4, 0xca, 0xa3, 0xe2, 0xff, 0x5e, 0xff, 0x0b, 0xac, 0x69, 0x9b, 0x00, 0x00, 0x9e, 0x26, 0x2b, 0xb4, 0xaa, 0xab, 0x03, 0xbd, 0xff, 0xaa, 0x2c, 0xb4, 0xea, 0xab, 0xad, 0xbd, 0x5f, 0xba,
+ 0x2c, 0xb4, 0xcb, 0xab, 0x02, 0xc2, 0x6b, 0xae, 0x4c, 0xb4, 0xaa, 0xa3, 0x82, 0xa9, 0x7e, 0x3d, 0x2c, 0xb4, 0xaa, 0xa3, 0x08, 0xad, 0x0f, 0xaa, 0x4c, 0xb4, 0xeb, 0xab, 0xe2, 0xfa, 0x76, 0xff,
+ 0x4c, 0xb4, 0xab, 0xa3, 0xb2, 0xea, 0xfe, 0xd7, 0x2c, 0xac, 0x29, 0x93, 0x20, 0x8a, 0x0a, 0x9a, 0x2c, 0xac, 0xea, 0xa3, 0x08, 0xa2, 0xff, 0x7f, 0xab, 0xbc, 0xcb, 0xa3, 0xef, 0x55, 0xf7, 0x0b,
+ 0xac, 0xc4, 0xe1, 0x50, 0x2a, 0x02, 0x80, 0x56, 0x8c, 0xc4, 0x42, 0x51, 0x00, 0xea, 0x57, 0xd5, 0x09, 0xac, 0x23, 0x49, 0xe8, 0xd5, 0xf5, 0xaf, 0x8a, 0x9b, 0x43, 0x59, 0xa2, 0x57, 0xab, 0x00,
+ 0x2c, 0xac, 0x46, 0x72, 0xf5, 0xbd, 0x2a, 0x00, 0xad, 0xc4, 0x89, 0x9b, 0xad, 0xeb, 0xea, 0x4a, 0x6c, 0xbc, 0x89, 0xa3, 0x29, 0x29, 0x8b, 0x83, 0x6c, 0xbc, 0xe2, 0x69, 0x00, 0x88, 0x20, 0x70,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xaa, 0xe8, 0x7a, 0xff, 0x4c, 0xbc, 0x0b, 0xb4, 0x82, 0x8e, 0xad, 0x82, 0x4c, 0xbc, 0x2b, 0xb4, 0xe2, 0xf7, 0x3f, 0xba, 0x4c, 0xbc, 0x2b, 0xb4, 0xee, 0x00, 0x22, 0xf0,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xfe, 0xb5, 0x6f, 0xe0, 0x4c, 0xbc, 0x2b, 0xb4, 0xbe, 0x30, 0xe0, 0x7e, 0x6c, 0xbc, 0x86, 0xab, 0xa8, 0xaa, 0x2a, 0x6a, 0x4b, 0xbc, 0xa3, 0x61, 0x00, 0x00, 0xa8, 0xad,
+ 0x6b, 0xbc, 0xca, 0xa3, 0xe0, 0xff, 0xad, 0xbb, 0x4c, 0xbc, 0x0a, 0xb4, 0xfd, 0xed, 0x5f, 0xff, 0x4c, 0xbc, 0x0b, 0xb4, 0x8a, 0x40, 0x6b, 0x23, 0x2b, 0xbc, 0xec, 0xab, 0x78, 0x8a, 0x82, 0x28,
+ 0x2b, 0xbc, 0xc7, 0x92, 0x80, 0x60, 0x80, 0x00, 0x2c, 0xb4, 0x43, 0x59, 0xf5, 0xb7, 0x2a, 0x0a, 0x6c, 0xbc, 0x6b, 0x93, 0xad, 0x02, 0x0a, 0x02, 0x6c, 0xbc, 0x2b, 0xb4, 0x2a, 0x0b, 0xaa, 0xc3,
+ 0xad, 0xc4, 0x2b, 0xb4, 0xab, 0xc2, 0xef, 0xfd, 0xad, 0xc4, 0x6c, 0xbc, 0x55, 0x89, 0xf5, 0xbd, 0x0e, 0xcd, 0x4c, 0xbc, 0xff, 0x55, 0xff, 0xdc, 0xad, 0xc4, 0x4c, 0xb4, 0xef, 0xef, 0xbd, 0x2d,
+ 0xcd, 0xc4, 0x6c, 0xbc, 0xfd, 0xab, 0xfb, 0xa8, 0xee, 0xcc, 0x2c, 0xb4, 0xfb, 0xf3, 0xaa, 0x7a, 0xcd, 0xc4, 0x4c, 0xb4, 0xee, 0xff, 0xa8, 0x7b, 0x8d, 0xc4, 0x6c, 0xbc, 0xf6, 0x7d, 0xfd, 0xf7,
+ 0xcd, 0xc4, 0x6c, 0xbc, 0xd5, 0x8f, 0xff, 0xff, 0xad, 0xc4, 0x6c, 0xbc, 0x57, 0x58, 0xdd, 0xdf, 0x8d, 0xc4, 0x4c, 0xbc, 0xba, 0xa8, 0x6a, 0xab, 0x8c, 0xc4, 0x6c, 0xb4, 0xea, 0xfb, 0xae, 0xeb,
+ 0xad, 0xc4, 0x6c, 0xbc, 0xbe, 0x9b, 0x65, 0xff, 0xad, 0xc4, 0x6c, 0xbc, 0x20, 0xf3, 0xbb, 0x55, 0xad, 0xc4, 0x2b, 0xb4, 0xa0, 0xaa, 0x5e, 0xfe, 0x8d, 0xc4, 0x2b, 0xb4, 0xb8, 0xee, 0x75, 0xef,
+ 0x6d, 0xbc, 0x2b, 0xb4, 0x78, 0xa0, 0xe8, 0xba, 0x6c, 0xbc, 0x0b, 0xb4, 0x02, 0x0e, 0xa9, 0x3a, 0x6c, 0xbc, 0x2b, 0xb4, 0xce, 0xea, 0x7a, 0xf8, 0x6c, 0xbc, 0x2b, 0xb4, 0xa9, 0xeb, 0xba, 0xff,
+ 0x6c, 0xbc, 0x2c, 0xb4, 0x22, 0xba, 0xbd, 0xee, 0x8d, 0xc4, 0x4b, 0xb4, 0xab, 0xbe, 0x7f, 0xff, 0x6c, 0xbc, 0x2c, 0xb4, 0xb0, 0x02, 0xaf, 0x02, 0x8d, 0xbc, 0x4b, 0xb4, 0xff, 0xbf, 0xff, 0xab,
+ 0x8c, 0xc4, 0x4b, 0xb4, 0xde, 0xde, 0xfe, 0x2a, 0x8c, 0xc4, 0x4c, 0xb4, 0xbe, 0xab, 0x2f, 0xb8, 0x8d, 0xc4, 0x4c, 0xb4, 0xaf, 0x8a, 0xea, 0xa2, 0x8d, 0xbc, 0x4c, 0xb4, 0x5e, 0xd7, 0x0b, 0x20,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xa2, 0x82, 0xa8, 0x4e, 0x8c, 0xbc, 0x2b, 0xb4, 0xf8, 0x7f, 0x7f, 0xf5, 0x6c, 0xbc, 0x0b, 0xac, 0xaa, 0xaa, 0xed, 0xbf, 0x6c, 0xbc, 0x2b, 0xb4, 0x9f, 0xad, 0xff, 0x3f,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xfe, 0xfc, 0xbb, 0x7c, 0x6c, 0xbc, 0x66, 0x9b, 0x08, 0x22, 0xa0, 0x6a, 0x6b, 0xbc, 0x84, 0x61, 0x20, 0x00, 0x00, 0x6a, 0x4b, 0xbc, 0xc5, 0x69, 0x00, 0x00, 0xa8, 0xad,
+ 0x8c, 0xbc, 0xc3, 0x69, 0x00, 0x02, 0x7a, 0xaa, 0x4a, 0xb4, 0x46, 0x7a, 0x00, 0x80, 0xfd, 0xfb, 0x4b, 0xb4, 0x45, 0x72, 0x00, 0x6a, 0xef, 0xab, 0x0a, 0xac, 0x85, 0x7a, 0x00, 0xf3, 0x6e, 0xfe,
+ 0x2a, 0xb4, 0xe5, 0x69, 0x00, 0xdb, 0xff, 0xaa, 0x49, 0xb4, 0xc3, 0x48, 0x00, 0x5f, 0xfe, 0xaa, 0x08, 0xac, 0x24, 0x41, 0xf8, 0xfd, 0xaf, 0xaa, 0x29, 0x93, 0xa3, 0x61, 0xe7, 0xae, 0x8a, 0x00,
+ 0x89, 0x9b, 0x87, 0x7a, 0x75, 0xfe, 0xaa, 0x80, 0x6a, 0x9b, 0xa6, 0x7a, 0xff, 0x7e, 0xa2, 0xa0, 0x69, 0x93, 0xe7, 0x82, 0x1f, 0x39, 0xff, 0x2a, 0x89, 0x9b, 0xc7, 0x8a, 0x57, 0xef, 0xab, 0x08,
+ 0x89, 0x93, 0xc7, 0x8a, 0xd5, 0xab, 0xef, 0x00, 0x8a, 0x9b, 0xa7, 0x82, 0xdf, 0xbf, 0xef, 0xa0, 0x89, 0x9b, 0xa7, 0x8a, 0xba, 0x57, 0x3e, 0x2a, 0xca, 0xa3, 0xa6, 0x82, 0x7f, 0x5d, 0xfe, 0xa0,
+ 0x69, 0x93, 0x86, 0x82, 0x55, 0x7f, 0xfa, 0xa0, 0xaa, 0x93, 0x46, 0x72, 0x55, 0xff, 0xaa, 0x0a, 0xca, 0xa3, 0xa9, 0x82, 0xad, 0xaa, 0xab, 0x0a, 0xeb, 0xa3, 0x89, 0x9b, 0xf5, 0xbb, 0xef, 0x20,
+ 0x0b, 0xa4, 0xaa, 0x9b, 0x7e, 0x7f, 0x2b, 0xae, 0x2b, 0xac, 0x8a, 0xa3, 0x8d, 0xad, 0xfd, 0xff, 0x2b, 0xac, 0xca, 0xa3, 0xca, 0xab, 0x9d, 0xf9, 0x2c, 0xac, 0xca, 0xa3, 0x6b, 0x80, 0xa8, 0xba,
+ 0x4c, 0xb4, 0xeb, 0xa3, 0xdf, 0xf5, 0x8b, 0xff, 0x2c, 0xac, 0xca, 0x9b, 0xaa, 0xf8, 0xd8, 0xee, 0x8d, 0xb4, 0xeb, 0xab, 0xd5, 0xcd, 0xfd, 0xf5, 0x2c, 0xac, 0xca, 0xa3, 0xdf, 0xa0, 0xa2, 0x2a,
+ 0x2c, 0xac, 0xeb, 0xa3, 0x57, 0xd7, 0xbc, 0xec, 0xad, 0xbc, 0xeb, 0xa3, 0x75, 0xa5, 0xdf, 0x37, 0xae, 0xbc, 0xea, 0xab, 0xfd, 0xf5, 0xfd, 0x28, 0xce, 0xbc, 0xca, 0xa3, 0xfe, 0xbd, 0xe2, 0x2a,
+ 0x6c, 0xb4, 0xea, 0xa3, 0xf5, 0xa2, 0x7f, 0x6e, 0x8d, 0xb4, 0xcb, 0xa3, 0xdc, 0x2c, 0xaf, 0xab, 0xad, 0xbc, 0x0c, 0xac, 0xfe, 0xff, 0x69, 0x8b, 0x0e, 0xc5, 0xeb, 0xa3, 0xe2, 0xf5, 0xf9, 0xab,
+ 0xad, 0xbc, 0x2b, 0xac, 0x5f, 0x54, 0xd6, 0x37, 0xee, 0xc4, 0xeb, 0xa3, 0xe3, 0xeb, 0xfe, 0xf7, 0xcd, 0xbc, 0x0b, 0xa4, 0xe2, 0x5f, 0x5a, 0xd7, 0xad, 0xbc, 0x8a, 0x9b, 0xea, 0x2b, 0xbe, 0xde,
+ 0x2c, 0xac, 0xca, 0xa3, 0xeb, 0x78, 0xb8, 0x56, 0x2b, 0xac, 0x8a, 0x9b, 0xc2, 0x0a, 0x7f, 0xde, 0x8c, 0xb4, 0x69, 0x9b, 0xdc, 0xff, 0xfb, 0xff, 0xeb, 0xab, 0xaa, 0xa3, 0x2b, 0x2f, 0xff, 0x8a,
+ 0x6c, 0xb4, 0x8a, 0x9b, 0xff, 0x08, 0x5f, 0xff, 0x6c, 0xb4, 0xaa, 0x9b, 0x8d, 0x57, 0x75, 0xdf, 0x2b, 0xac, 0xaa, 0xa3, 0x2b, 0x29, 0xab, 0xea, 0x2b, 0xac, 0xca, 0xa3, 0xe2, 0xfe, 0x7b, 0xeb,
+ 0x2c, 0xac, 0xeb, 0xa3, 0xfe, 0xf7, 0xfd, 0x0a, 0x2b, 0xb4, 0xca, 0x9b, 0xfe, 0xff, 0xab, 0x2d, 0x2b, 0xb4, 0xca, 0xa3, 0xad, 0xab, 0x82, 0xfa, 0x4b, 0xb4, 0xaa, 0xa3, 0xf0, 0xd7, 0xb7, 0xff,
+ 0x4c, 0xb4, 0xab, 0xa3, 0xbd, 0xaa, 0xaa, 0x2a, 0x2c, 0xb4, 0x0b, 0xac, 0x5f, 0xa2, 0x42, 0xea, 0x2c, 0xb4, 0xeb, 0xab, 0x7f, 0xab, 0xf9, 0x0e, 0x2b, 0xb4, 0xeb, 0xab, 0xeb, 0x7a, 0xff, 0xba,
+ 0x2c, 0xb4, 0xca, 0xab, 0x7f, 0x5e, 0x2e, 0xab, 0x6d, 0xbc, 0x89, 0x9b, 0xab, 0xaa, 0x3a, 0x07, 0x4c, 0xbc, 0x2b, 0xac, 0xff, 0xaf, 0xaa, 0xea, 0x4c, 0xbc, 0x0b, 0xac, 0xfd, 0xeb, 0xfe, 0xd7,
+ 0x2c, 0xb4, 0xca, 0xa3, 0xa0, 0xb8, 0x7a, 0xba, 0x2c, 0xb4, 0xeb, 0xab, 0xae, 0x85, 0xc1, 0xfa, 0x2c, 0xb4, 0xcb, 0xa3, 0xa7, 0xab, 0x80, 0xea, 0xac, 0xc4, 0x4a, 0x93, 0xea, 0xfe, 0xb7, 0x2b,
+ 0x8d, 0xbc, 0xe1, 0x69, 0xaa, 0xaa, 0x0a, 0x78, 0xac, 0xc4, 0x60, 0x38, 0xaa, 0x02, 0xe0, 0x55, 0x8a, 0xbc, 0xa1, 0x38, 0x00, 0x78, 0x55, 0x55, 0x44, 0xa3, 0x61, 0x28, 0xf8, 0xff, 0x55, 0xf5,
+ 0x83, 0x59, 0xc2, 0x40, 0xaa, 0x97, 0xd7, 0x2f, 0xa5, 0x72, 0x22, 0x51, 0x2a, 0xb5, 0xd5, 0xab, 0xc9, 0x9b, 0xc2, 0x50, 0x02, 0x5b, 0xff, 0x2b, 0xeb, 0xab, 0x82, 0x38, 0xa8, 0xad, 0x0a, 0x00,
+ 0x2c, 0xb4, 0x28, 0x93, 0x8d, 0xe1, 0x2a, 0x03, 0x6c, 0xbc, 0x80, 0x40, 0xb0, 0x96, 0xbe, 0x00, 0x8b, 0xc4, 0xe2, 0x38, 0xe0, 0x58, 0x56, 0x57, 0xa4, 0x51, 0x45, 0x41, 0x6c, 0x7b, 0x5e, 0xad,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xa8, 0xff, 0xed, 0xbb, 0x6c, 0xbc, 0x2b, 0xb4, 0xdb, 0xfb, 0xeb, 0xa2, 0x6c, 0xbc, 0x0a, 0xb4, 0xaa, 0xaa, 0xaa, 0x72, 0x6c, 0xbc, 0x0b, 0xb4, 0xfa, 0xd4, 0xf8, 0x7f,
+ 0x4c, 0xbc, 0xcb, 0xb3, 0x02, 0xaa, 0xe0, 0x9e, 0x6c, 0xbc, 0x0b, 0xb4, 0xba, 0xeb, 0x2d, 0xea, 0x6c, 0xbc, 0x05, 0x72, 0x60, 0xa0, 0x20, 0x00, 0x4c, 0xb4, 0xe7, 0x61, 0xa9, 0x02, 0x00, 0x00,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0x55, 0x73, 0xbf, 0xab, 0x4c, 0xbc, 0x2b, 0xb4, 0xe5, 0x55, 0x4d, 0xed, 0x4c, 0xbc, 0x2b, 0xb4, 0xc3, 0xd9, 0xf5, 0xe7, 0x4c, 0xbc, 0x0a, 0xb4, 0xee, 0xba, 0xee, 0xda,
+ 0x6c, 0xbc, 0xcb, 0xab, 0x6a, 0xaa, 0x0a, 0x02, 0x4c, 0xbc, 0xca, 0xab, 0xe9, 0x80, 0xe0, 0xc0, 0x4c, 0xb4, 0xaa, 0xa3, 0xab, 0x0b, 0x2b, 0xa9, 0x6c, 0xbc, 0x2b, 0xb4, 0xaa, 0xfe, 0xf6, 0xa9,
+ 0x8c, 0xbc, 0x0b, 0xb4, 0xa2, 0x2a, 0xa9, 0xbf, 0x8d, 0xc4, 0x4c, 0xbc, 0xef, 0x0e, 0xd5, 0xeb, 0xad, 0xc4, 0x0b, 0xb4, 0xaa, 0xa0, 0x0a, 0x7a, 0x2e, 0xcd, 0x4c, 0xbc, 0xdd, 0xe3, 0xff, 0xfd,
+ 0xcd, 0xc4, 0x4c, 0xbc, 0xea, 0xbf, 0x5e, 0xf2, 0x90, 0xd5, 0x4c, 0xb4, 0x15, 0xfa, 0x5d, 0xfb, 0xd1, 0xdd, 0x4b, 0xbc, 0xe8, 0x55, 0x5d, 0x55, 0xad, 0xc4, 0xcb, 0xa3, 0x2a, 0xa2, 0x70, 0xba,
+ 0x0e, 0xcd, 0x2c, 0xb4, 0xa8, 0xab, 0xbd, 0xfb, 0xcd, 0xc4, 0x0b, 0xac, 0xca, 0xaa, 0xa2, 0xb5, 0xcd, 0xc4, 0x4c, 0xbc, 0xff, 0xfe, 0xfd, 0xfc, 0x6d, 0xbc, 0x4c, 0xb4, 0x20, 0x0a, 0xc8, 0xfe,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0x2a, 0x0a, 0x28, 0xbf, 0x8c, 0xbc, 0x4c, 0xb4, 0xaa, 0xea, 0xae, 0xba, 0x8c, 0xc4, 0x4d, 0xb4, 0xae, 0xfb, 0xeb, 0xaa, 0x4c, 0xbc, 0x6c, 0xb4, 0xaa, 0x77, 0x58, 0x7f,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x82, 0xaa, 0x6f, 0xe0, 0x8c, 0xbc, 0x2b, 0xb4, 0xfb, 0x7f, 0xff, 0x8b, 0x8d, 0xbc, 0x2b, 0xb4, 0xf5, 0xd5, 0x25, 0x77, 0x6c, 0xb4, 0xeb, 0xab, 0xa8, 0xa0, 0x58, 0x2a,
+ 0x8c, 0xbc, 0x2b, 0xb4, 0xab, 0xa5, 0xa9, 0x2a, 0x8d, 0xbc, 0x4c, 0xb4, 0xb3, 0x8a, 0x8a, 0x20, 0x0e, 0xcd, 0x4c, 0xb4, 0xff, 0xf1, 0xff, 0xff, 0xad, 0xc4, 0x2b, 0xb4, 0xa8, 0xf7, 0xea, 0xaa,
+ 0xcd, 0xc4, 0x4c, 0xbc, 0xf7, 0xb7, 0x8b, 0xea, 0x8d, 0xbc, 0x4a, 0xb4, 0x2a, 0xaa, 0xb8, 0xdf, 0x8d, 0xbc, 0xe8, 0xab, 0x00, 0x08, 0xaa, 0x5e, 0x8c, 0xbc, 0xa8, 0xa3, 0x88, 0xa0, 0xea, 0x57,
+ 0x6b, 0xbc, 0x69, 0xa3, 0x00, 0x00, 0x7f, 0x55, 0x8b, 0xc4, 0x28, 0x93, 0xaa, 0xa8, 0xf5, 0xff, 0x2a, 0xb4, 0x08, 0x93, 0x00, 0x78, 0xef, 0xba, 0x0a, 0xb4, 0x29, 0x93, 0x80, 0x5d, 0xbf, 0xaa,
+ 0xea, 0xab, 0xc6, 0x8a, 0xa6, 0xaa, 0x88, 0x0a, 0xcb, 0xa3, 0x08, 0x8b, 0xd7, 0xba, 0xaa, 0x08, 0xea, 0xab, 0x49, 0x93, 0xd7, 0xaf, 0xaa, 0xa0, 0xeb, 0xab, 0x49, 0x93, 0x75, 0xbe, 0xba, 0x2a,
+ 0xeb, 0xab, 0x09, 0x8b, 0xfd, 0xaa, 0xa8, 0x8a, 0xcb, 0xa3, 0x69, 0x93, 0xd5, 0xeb, 0xaa, 0x00, 0xeb, 0xa3, 0x69, 0x9b, 0xd5, 0xdf, 0xde, 0xa2, 0xea, 0xa3, 0x69, 0x9b, 0x75, 0xeb, 0xae, 0x28,
+ 0xea, 0xa3, 0x69, 0x9b, 0x5d, 0xaa, 0xaa, 0x80, 0xca, 0xa3, 0x49, 0x93, 0xde, 0xaa, 0x2a, 0xa0, 0xea, 0xa3, 0x49, 0x9b, 0x7a, 0xfe, 0xaa, 0x2a, 0x0b, 0xa4, 0x49, 0x9b, 0xd5, 0xfb, 0xea, 0xa8,
+ 0xea, 0xa3, 0x49, 0x9b, 0x6a, 0xeb, 0xa2, 0xab, 0xca, 0xa3, 0x69, 0x93, 0x77, 0x8a, 0x08, 0xaa, 0xeb, 0xa3, 0x48, 0x93, 0xed, 0xeb, 0x82, 0x88, 0xcb, 0xa3, 0x69, 0x9b, 0xbf, 0xfd, 0x02, 0x20,
+ 0xca, 0xa3, 0x69, 0x93, 0xfe, 0xb5, 0x02, 0x00, 0xeb, 0xa3, 0x89, 0x9b, 0x5d, 0x7f, 0xaa, 0x82, 0xeb, 0xab, 0x69, 0x93, 0x5f, 0xaf, 0x2a, 0x02, 0x0b, 0xac, 0x89, 0x9b, 0xd5, 0xff, 0xab, 0x82,
+ 0xeb, 0xab, 0x69, 0x93, 0x5e, 0xaa, 0x22, 0x28, 0x0b, 0xac, 0xaa, 0x9b, 0xd5, 0xfa, 0xaa, 0x0a, 0x0c, 0xac, 0xca, 0xa3, 0xd5, 0xfe, 0xfe, 0xe3, 0x6c, 0xb4, 0xca, 0xa3, 0xdd, 0x7d, 0x57, 0x37,
+ 0x8e, 0xbc, 0xcb, 0xa3, 0xe7, 0x8f, 0x3b, 0xfb, 0xce, 0xc4, 0xaa, 0x9b, 0x3e, 0x85, 0xff, 0xff, 0x4c, 0xb4, 0xeb, 0xa3, 0xff, 0xda, 0x7e, 0xff, 0x0c, 0xac, 0xea, 0xa3, 0x1b, 0x2f, 0x1a, 0x3f,
+ 0x4d, 0xb4, 0xca, 0xa3, 0xfa, 0xdf, 0xdf, 0x2f, 0x6c, 0xb4, 0xeb, 0xa3, 0xcd, 0xbd, 0xab, 0xab, 0x2c, 0xb4, 0x0b, 0xac, 0xad, 0xba, 0xfe, 0x8b, 0x4c, 0xb4, 0x0b, 0xac, 0xfe, 0xf7, 0x2d, 0xca,
+ 0x4c, 0xb4, 0x0b, 0xac, 0x57, 0x7c, 0xdf, 0x2f, 0xcd, 0xbc, 0xeb, 0xab, 0x15, 0x95, 0xb5, 0xf7, 0xad, 0xbc, 0x2b, 0xac, 0xff, 0xa1, 0xec, 0x67, 0x2e, 0xc5, 0x4c, 0xb4, 0x55, 0xbb, 0x2f, 0x75,
+ 0x0f, 0xc5, 0xeb, 0xa3, 0x7f, 0x7f, 0xbc, 0xaa, 0xee, 0xc4, 0x0b, 0xac, 0xe9, 0xef, 0xfe, 0x8e, 0x0f, 0xc5, 0x0b, 0xac, 0x7f, 0x7b, 0xdc, 0xd7, 0xcd, 0xbc, 0x0b, 0xac, 0xaa, 0x0f, 0x5a, 0xd6,
+ 0x0e, 0xc5, 0xca, 0xa3, 0xaa, 0xe8, 0xd5, 0xfc, 0xad, 0xbc, 0xeb, 0xab, 0x8c, 0x5a, 0xde, 0x0f, 0x6c, 0xb4, 0xeb, 0xab, 0xad, 0x2d, 0x83, 0xaa, 0x6d, 0xb4, 0xaa, 0xa3, 0xea, 0x7f, 0xf8, 0xfa,
+ 0x2c, 0xb4, 0xaa, 0x9b, 0xff, 0xf7, 0xbb, 0x82, 0x2c, 0xac, 0xaa, 0xa3, 0x5f, 0xbb, 0xff, 0x28, 0x4c, 0xb4, 0xaa, 0xa3, 0xf7, 0xf7, 0x3a, 0x2a, 0x4c, 0xb4, 0xca, 0xa3, 0xdd, 0x7f, 0x20, 0x80,
+ 0x2b, 0xac, 0xaa, 0xa3, 0x69, 0xab, 0xa2, 0x20, 0x2c, 0xac, 0xea, 0xa3, 0xa9, 0xfb, 0xfa, 0xa3, 0x0b, 0xac, 0xca, 0xa3, 0xa9, 0xa2, 0x28, 0x00, 0x4c, 0xb4, 0xca, 0xa3, 0xff, 0x57, 0x57, 0x2f,
+ 0x2c, 0xb4, 0x8a, 0x9b, 0xca, 0xdd, 0xaa, 0x00, 0x2c, 0xb4, 0xca, 0x9b, 0x09, 0xaa, 0x2a, 0x00, 0x4b, 0xb4, 0x6a, 0x9b, 0xaa, 0xaa, 0x72, 0xbe, 0x2c, 0xb4, 0xaa, 0xa3, 0x0a, 0x2b, 0x82, 0x7f,
+ 0x2c, 0xb4, 0xaa, 0xa3, 0x00, 0xaa, 0xbb, 0x99, 0x0b, 0xb4, 0x88, 0x9b, 0x08, 0xa8, 0xea, 0x6a, 0x6c, 0xbc, 0xaa, 0xa3, 0x8a, 0xdf, 0x75, 0xf5, 0x2c, 0xb4, 0x48, 0x93, 0x28, 0xea, 0x6a, 0xe2,
+ 0x6c, 0xb4, 0xe7, 0x82, 0xaa, 0xaf, 0x2d, 0x02, 0x6d, 0xbc, 0x69, 0x9b, 0xa9, 0xa0, 0x82, 0xa8, 0x2b, 0xb4, 0xa9, 0xa3, 0x0d, 0x6b, 0xae, 0x8e, 0x4c, 0xb4, 0x46, 0x82, 0x00, 0x82, 0x9e, 0x02,
+ 0x4c, 0xb4, 0x8a, 0xa3, 0xaa, 0xef, 0x2d, 0x00, 0x8c, 0xbc, 0xa4, 0x61, 0xa2, 0x02, 0x80, 0x5c, 0xac, 0xc4, 0x01, 0x51, 0x0a, 0xa0, 0xb7, 0xab, 0x4d, 0xbc, 0xc2, 0x48, 0x7a, 0x62, 0xc2, 0xa0,
+ 0x65, 0x59, 0xa1, 0x38, 0xf5, 0xff, 0xbf, 0x2a, 0x85, 0x59, 0xa2, 0x38, 0x55, 0xff, 0xfe, 0x80, 0x23, 0x41, 0xc2, 0x38, 0xbd, 0xea, 0xfa, 0x2a, 0xc2, 0x40, 0x44, 0x39, 0xfa, 0x8a, 0xff, 0x5a,
+ 0x46, 0x6a, 0x03, 0x39, 0xff, 0xf5, 0xad, 0x2b, 0xcb, 0x9b, 0xa4, 0x59, 0xf5, 0xfd, 0xbf, 0x2f, 0x0c, 0xac, 0x87, 0x7a, 0xbd, 0xab, 0x02, 0x02, 0x2c, 0xb4, 0xab, 0xa3, 0xad, 0xaa, 0x8a, 0xe8,
+ 0x6c, 0xb4, 0x0b, 0xac, 0xbd, 0xad, 0x2f, 0xb6, 0x8d, 0xc4, 0x23, 0x41, 0x00, 0xc0, 0x60, 0x50, 0x43, 0x49, 0x04, 0x29, 0xf8, 0xf5, 0xff, 0xf7, 0xc5, 0x49, 0xe3, 0x28, 0x0b, 0xab, 0xaf, 0xdd,
+ 0xab, 0xc4, 0x0b, 0xb4, 0xff, 0xff, 0x2b, 0x4b, 0xca, 0xcc, 0xc1, 0x40, 0x00, 0xe0, 0x5c, 0x55, 0x2b, 0xb4, 0x45, 0x51, 0x20, 0xa9, 0x29, 0x0b, 0x6c, 0xbc, 0x0b, 0xac, 0x7d, 0x79, 0x2d, 0xab,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0x09, 0x8a, 0x0a, 0xba, 0x2b, 0xbc, 0x6c, 0xb4, 0xea, 0x8a, 0xe2, 0xef, 0x6c, 0xbc, 0x0b, 0xb4, 0xb7, 0xba, 0xaa, 0x0a, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0xe2, 0x5f, 0x57,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xe0, 0xea, 0xe3, 0xfb, 0x4c, 0xbc, 0x0b, 0xb4, 0xcb, 0x9f, 0xff, 0x2f, 0x4c, 0xbc, 0xeb, 0xb3, 0x6a, 0x8f, 0xaa, 0x00, 0x4c, 0xbc, 0x0b, 0xb4, 0x7f, 0x3a, 0x3f, 0x3b,
+ 0x6c, 0xc4, 0x2b, 0xb4, 0xff, 0xee, 0xab, 0xfa, 0x6b, 0xbc, 0x6a, 0xa3, 0x9e, 0xba, 0x80, 0x00, 0x4c, 0xbc, 0xca, 0xab, 0xa8, 0x26, 0x90, 0xe0, 0x6c, 0xc4, 0xeb, 0xb3, 0xdf, 0xef, 0x8b, 0xef,
+ 0x4c, 0xbc, 0xea, 0xab, 0x02, 0x89, 0xae, 0x00, 0x8d, 0xc4, 0x2b, 0xb4, 0x0b, 0xab, 0xfd, 0xfd, 0x8c, 0xc4, 0x0b, 0xac, 0x70, 0x50, 0x82, 0xaa, 0xad, 0xc4, 0xeb, 0xab, 0x0b, 0x82, 0x9f, 0xaa,
+ 0x8d, 0xc4, 0x4c, 0xb4, 0xaa, 0x23, 0xff, 0xdb, 0xad, 0xc4, 0x0b, 0xb4, 0xaa, 0x00, 0xaa, 0x7a, 0x8c, 0xc4, 0x4b, 0xb4, 0xfe, 0xfe, 0xe2, 0xff, 0xee, 0xcc, 0x4b, 0xb4, 0xa3, 0x7b, 0x5f, 0x55,
+ 0x8d, 0xc4, 0x2b, 0xb4, 0x7a, 0x3f, 0xfb, 0xff, 0x6c, 0xbc, 0xeb, 0xab, 0xaf, 0xa0, 0x5e, 0xa8, 0x6d, 0xbc, 0x2b, 0xac, 0x03, 0xbb, 0x8d, 0xbf, 0xad, 0xc4, 0xea, 0xab, 0xbb, 0xfa, 0xcf, 0xdf,
+ 0x8c, 0xbc, 0x0b, 0xac, 0x0a, 0xaa, 0x5f, 0x8b, 0x8c, 0xbc, 0x2b, 0xb4, 0xaa, 0x0a, 0xa9, 0xff, 0x50, 0xd5, 0x4b, 0xb4, 0xfd, 0x83, 0x55, 0x55, 0x0d, 0xc5, 0x4c, 0xb4, 0xff, 0x7c, 0x75, 0xe9,
+ 0x6c, 0xbc, 0x4b, 0xb4, 0xa2, 0x23, 0xac, 0xd7, 0x6c, 0xbc, 0x2b, 0xb4, 0x2e, 0xaa, 0x7e, 0xff, 0x6c, 0xbc, 0x2b, 0xb4, 0xb6, 0xbf, 0xfd, 0x2a, 0x6b, 0xbc, 0x4c, 0xb4, 0x2b, 0xed, 0xea, 0x0a,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x00, 0x28, 0x82, 0x7e, 0x8c, 0xbc, 0x2b, 0xb4, 0x8a, 0xab, 0xfd, 0x75, 0x8c, 0xbc, 0x4b, 0xb4, 0xa3, 0xbf, 0xbd, 0xd5, 0x8c, 0xbc, 0xca, 0xab, 0x80, 0x5a, 0xfa, 0xaa,
+ 0x6b, 0xbc, 0xcb, 0xa3, 0xa8, 0xfd, 0xfa, 0xfa, 0x2b, 0xac, 0x49, 0x9b, 0x7a, 0x2a, 0x20, 0x00, 0x4b, 0xb4, 0x8a, 0xa3, 0x7d, 0xfe, 0xaa, 0x88, 0x2b, 0xac, 0x89, 0xa3, 0xf5, 0xbf, 0xaa, 0xa8,
+ 0x0b, 0xb4, 0xaa, 0xa3, 0xb5, 0xbb, 0x0a, 0x2a, 0x2b, 0xb4, 0xaa, 0xa3, 0x7f, 0xaa, 0xa2, 0x88, 0x0b, 0xb4, 0xca, 0xab, 0xa5, 0xae, 0x82, 0xb8, 0x0b, 0xb4, 0xea, 0xa3, 0x7f, 0xba, 0xba, 0xd7,
+ 0x2b, 0xac, 0xca, 0xa3, 0xff, 0x8a, 0x77, 0xef, 0x0b, 0xac, 0xca, 0xa3, 0xab, 0x08, 0xff, 0xfe, 0x0b, 0xac, 0xca, 0xa3, 0xbe, 0xa8, 0xb2, 0xff, 0x0b, 0xac, 0xaa, 0xa3, 0xca, 0xe8, 0xda, 0xa2,
+ 0x0b, 0xac, 0xaa, 0xa3, 0xbe, 0xa7, 0xa8, 0x00, 0xeb, 0xab, 0xca, 0xa3, 0xef, 0x25, 0xdc, 0xf8, 0xeb, 0xab, 0xaa, 0xa3, 0xdb, 0x88, 0xae, 0x88, 0x0b, 0xac, 0xaa, 0xa3, 0xd7, 0xbf, 0xaa, 0x82,
+ 0x0b, 0xac, 0x89, 0x9b, 0x7a, 0xaa, 0xaa, 0xb8, 0xeb, 0xab, 0xca, 0x9b, 0xfe, 0xaa, 0x2b, 0xea, 0x0b, 0xac, 0xca, 0xa3, 0x75, 0xeb, 0xa3, 0x3f, 0x0b, 0xac, 0xaa, 0x9b, 0x57, 0x8a, 0x08, 0x00,
+ 0x2b, 0xac, 0xaa, 0x9b, 0xfd, 0xbb, 0x2b, 0xde, 0xad, 0xb4, 0xcb, 0xa3, 0x55, 0xfd, 0x3a, 0x7f, 0x4c, 0xac, 0x8a, 0x9b, 0xf7, 0xa0, 0xf8, 0xef, 0x4c, 0xb4, 0xca, 0xa3, 0x55, 0x5f, 0xfd, 0xcb,
+ 0x0c, 0xac, 0xca, 0xa3, 0x79, 0xff, 0x1f, 0x8a, 0xae, 0xbc, 0xca, 0xa3, 0x55, 0x5f, 0x7f, 0xf0, 0x4b, 0xb4, 0xca, 0xa3, 0xff, 0xea, 0xfd, 0x78, 0x6c, 0xb4, 0xcb, 0xa3, 0x3f, 0x3e, 0x5f, 0xaf,
+ 0x4b, 0xac, 0x8a, 0x9b, 0xf8, 0xa8, 0xe9, 0x80, 0x4c, 0xb4, 0x69, 0x93, 0xaa, 0xa8, 0xea, 0xd7, 0xad, 0xbc, 0x8a, 0x9b, 0xde, 0x0b, 0xff, 0xfd, 0x4c, 0xac, 0xcb, 0xa3, 0xa7, 0x8b, 0x3a, 0x2f,
+ 0xad, 0xbc, 0x0b, 0xac, 0xf3, 0xd5, 0xdf, 0x5f, 0xad, 0xbc, 0xeb, 0xab, 0xd7, 0x37, 0xd5, 0xff, 0xad, 0xbc, 0x0b, 0xac, 0xd6, 0x94, 0x7f, 0xe7, 0x6d, 0xb4, 0xeb, 0xa3, 0xfc, 0xd1, 0xaf, 0xaa,
+ 0x6c, 0xb4, 0xeb, 0xab, 0xad, 0xff, 0x7a, 0xb8, 0xcd, 0xbc, 0x0b, 0xac, 0x5f, 0x55, 0x75, 0xc9, 0x4c, 0xb4, 0xca, 0xa3, 0x8a, 0x0a, 0x7a, 0xaa, 0xac, 0xbc, 0xeb, 0xab, 0xff, 0xd7, 0x0d, 0xff,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xeb, 0xde, 0xa4, 0x7d, 0x0e, 0xc5, 0x0b, 0xac, 0xcd, 0xfd, 0x5a, 0xfd, 0x4b, 0xb4, 0xca, 0xa3, 0xb8, 0xa0, 0xab, 0x7e, 0xad, 0xbc, 0x0b, 0xac, 0x27, 0xd7, 0xef, 0x73,
+ 0xcd, 0xbc, 0xeb, 0xa3, 0xc0, 0xfe, 0xff, 0x5d, 0x6d, 0xb4, 0xcb, 0xa3, 0xde, 0xe2, 0xa8, 0xbf, 0xcd, 0xbc, 0xcb, 0xa3, 0xfd, 0xaf, 0x2b, 0xef, 0x0f, 0xc5, 0xeb, 0xa3, 0xcf, 0xbf, 0xdf, 0xf5,
+ 0xed, 0xc4, 0x0b, 0xac, 0xe7, 0x7c, 0x55, 0x7d, 0x8c, 0xb4, 0x0b, 0xac, 0x8a, 0xeb, 0x5f, 0xdf, 0x0e, 0xcd, 0x2c, 0xb4, 0x55, 0x55, 0x71, 0xf5, 0x6c, 0xbc, 0x0b, 0xac, 0x72, 0x5d, 0x5f, 0x5e,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xfb, 0x57, 0xa5, 0xca, 0x6c, 0xb4, 0x0b, 0xac, 0x4b, 0xa2, 0xfd, 0xa3, 0x4b, 0xb4, 0xca, 0xab, 0x80, 0xe2, 0x78, 0x9a, 0x4c, 0xb4, 0xea, 0xab, 0xc0, 0x8b, 0xbd, 0xbb,
+ 0x4c, 0xb4, 0xcb, 0xa3, 0xab, 0xfa, 0x78, 0xfe, 0x2b, 0xac, 0xca, 0xa3, 0xaa, 0xa8, 0xdf, 0xaa, 0x4c, 0xb4, 0xaa, 0x9b, 0xa0, 0x8a, 0xdf, 0xff, 0x2c, 0xb4, 0xaa, 0x9b, 0xaa, 0xe3, 0xeb, 0xed,
+ 0x4b, 0xb4, 0x6a, 0x93, 0x22, 0xea, 0xaf, 0xa7, 0x0b, 0xb4, 0xca, 0xa3, 0xa2, 0xdf, 0xaf, 0x7f, 0x0b, 0xac, 0xaa, 0xa3, 0x88, 0x5f, 0xab, 0xf6, 0x2b, 0xac, 0x69, 0x9b, 0xfd, 0x8a, 0x8b, 0xaa,
+ 0x2b, 0xb4, 0x8a, 0x9b, 0x8a, 0xe2, 0x5e, 0xd6, 0x0b, 0xac, 0xaa, 0x9b, 0x4b, 0x89, 0x81, 0xe9, 0x4b, 0xb4, 0x89, 0x93, 0x8b, 0xfb, 0xd7, 0xff, 0x6c, 0xbc, 0x69, 0x93, 0xf7, 0x2b, 0xaf, 0x8b,
+ 0x8c, 0xbc, 0xcb, 0xab, 0x96, 0x88, 0xaf, 0xa9, 0xac, 0xc4, 0xeb, 0xab, 0xff, 0x2a, 0xd5, 0xf7, 0x8d, 0xbc, 0x2c, 0xb4, 0xd7, 0x29, 0x2d, 0xff, 0x8d, 0xc4, 0xc5, 0x8a, 0x00, 0x00, 0xc8, 0x7a,
+ 0x6b, 0xb4, 0x22, 0x59, 0x80, 0xf8, 0xf5, 0xaa, 0x28, 0x8b, 0x45, 0x72, 0xae, 0xad, 0x02, 0x00, 0x4c, 0xbc, 0xe7, 0x8a, 0x3d, 0xad, 0x0f, 0x8d, 0x4c, 0xbc, 0x20, 0x51, 0xa0, 0x80, 0x40, 0x70,
+ 0x24, 0x72, 0x02, 0x49, 0xab, 0xe0, 0x5d, 0x5f, 0x45, 0x72, 0x02, 0x49, 0x62, 0x63, 0xfb, 0xf5, 0xe7, 0x82, 0xe2, 0x38, 0x55, 0x55, 0xd5, 0x2d, 0xc6, 0x82, 0x64, 0x41, 0xd5, 0xbf, 0x0b, 0x00,
+ 0x0c, 0xac, 0x05, 0x62, 0xfd, 0xff, 0xab, 0x2b, 0x2c, 0xb4, 0xa8, 0x72, 0xad, 0x02, 0x02, 0x00, 0x2c, 0xb4, 0xeb, 0xab, 0x2b, 0x36, 0x08, 0x88, 0x2c, 0xb4, 0x0b, 0xac, 0xea, 0x08, 0xaa, 0x2d,
+ 0xad, 0xc4, 0xc1, 0x30, 0x00, 0x00, 0x60, 0x58, 0x2b, 0xc4, 0xe3, 0x28, 0x5c, 0x57, 0x55, 0x55, 0x64, 0x39, 0xe3, 0x20, 0xaf, 0x3f, 0xfd, 0xef, 0x45, 0x41, 0x03, 0x31, 0xef, 0x26, 0x95, 0xd5,
+ 0x6c, 0xbc, 0x21, 0x51, 0x60, 0x80, 0x00, 0x00, 0x6c, 0xbc, 0xc5, 0x40, 0xd5, 0x0a, 0x00, 0x00, 0x4c, 0xbc, 0xcb, 0xa3, 0xeb, 0xdc, 0x8a, 0x88, 0x6c, 0xbc, 0x0b, 0xb4, 0xfd, 0xff, 0xaf, 0xaa,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xab, 0xa3, 0x6b, 0xfc, 0x6b, 0xbc, 0x45, 0x7a, 0x00, 0x00, 0x40, 0xb0, 0x4b, 0xb4, 0xa7, 0x82, 0x80, 0xb6, 0x29, 0x00, 0x4c, 0xbc, 0x0b, 0xac, 0xfd, 0x2d, 0x2b, 0xea,
+ 0x6c, 0xbc, 0x49, 0x93, 0xa2, 0xa8, 0x4a, 0x98, 0x6c, 0xbc, 0x29, 0x93, 0x02, 0x00, 0x29, 0x00, 0x6c, 0xbc, 0x2b, 0xb4, 0x8f, 0xaf, 0xa7, 0xb7, 0x6c, 0xc4, 0x2b, 0xb4, 0xff, 0xfb, 0xfa, 0xfa,
+ 0x4b, 0xbc, 0x2c, 0xb4, 0xa2, 0x80, 0xbd, 0xbe, 0x4c, 0xbc, 0xeb, 0xb3, 0xae, 0xb8, 0x98, 0xa2, 0x4b, 0xbc, 0x2c, 0xb4, 0xeb, 0x7e, 0xda, 0xaf, 0x6c, 0xbc, 0x2b, 0xb4, 0x5d, 0x1f, 0x83, 0xdf,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xf8, 0xbe, 0xe3, 0xaa, 0x6c, 0xc4, 0x2b, 0xb4, 0xdf, 0xf7, 0xeb, 0xea, 0x6c, 0xbc, 0x2b, 0xb4, 0xbf, 0xea, 0xcb, 0xea, 0x4c, 0xbc, 0xeb, 0xab, 0x0e, 0xb7, 0xaa, 0x2a,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xa2, 0xc2, 0xff, 0xa9, 0x6b, 0xbc, 0x2c, 0xb4, 0xfb, 0xeb, 0xff, 0xea, 0x6c, 0xbc, 0xeb, 0xab, 0x2a, 0xa8, 0xfb, 0x57, 0x4c, 0xbc, 0x0b, 0xac, 0x38, 0xe8, 0xad, 0x7d,
+ 0x6c, 0xbc, 0xa9, 0x9b, 0x02, 0xaa, 0xaa, 0x7a, 0x8c, 0xbc, 0xca, 0xa3, 0xac, 0xa8, 0xaf, 0xbd, 0x4c, 0xbc, 0xea, 0xab, 0x0a, 0xae, 0xaa, 0x09, 0x6c, 0xbc, 0xca, 0xa3, 0x22, 0xaa, 0xa6, 0xac,
+ 0x6c, 0xbc, 0xea, 0xab, 0x72, 0x2b, 0xbb, 0xaf, 0x6c, 0xbc, 0x2b, 0xb4, 0xd5, 0x8f, 0x55, 0xb7, 0x6b, 0xbc, 0x2c, 0xb4, 0x7f, 0x7b, 0x3d, 0x3b, 0x8c, 0xbc, 0x0b, 0xac, 0xe9, 0xaa, 0xe0, 0xaa,
+ 0xcd, 0xc4, 0xaa, 0xa3, 0xee, 0x2a, 0xbd, 0xaa, 0x6c, 0xbc, 0xeb, 0xab, 0xcb, 0xea, 0x7e, 0xb8, 0xcd, 0xc4, 0xeb, 0xab, 0x0f, 0x5f, 0xfd, 0xff, 0x4b, 0xbc, 0x0c, 0xac, 0xfa, 0xf7, 0xaa, 0x80,
+ 0x6c, 0xbc, 0xca, 0xab, 0xd5, 0x0a, 0xfb, 0xf8, 0x8c, 0xbc, 0xaa, 0xab, 0xaa, 0xa7, 0x8a, 0xf7, 0x6c, 0xbc, 0x2b, 0xac, 0xfb, 0xed, 0x05, 0xaf, 0x4b, 0xb4, 0xea, 0xab, 0xa0, 0xaa, 0xe0, 0x5e,
+ 0x4c, 0xb4, 0xa9, 0xa3, 0xaa, 0xa8, 0xe7, 0xab, 0x4c, 0xb4, 0x49, 0x9b, 0x0a, 0x02, 0x37, 0x0a, 0x4b, 0xb4, 0xca, 0xab, 0xa8, 0x62, 0xff, 0xaa, 0xee, 0xc4, 0xca, 0xa3, 0x5f, 0xf5, 0x83, 0xff,
+ 0x6c, 0xb4, 0x0b, 0xac, 0x55, 0xff, 0x2a, 0xfa, 0x2e, 0xcd, 0xeb, 0xab, 0xf5, 0x5d, 0x3f, 0xff, 0x2e, 0xcd, 0x0b, 0xac, 0x55, 0x55, 0x58, 0x57, 0x4c, 0xb4, 0xcb, 0xa3, 0x7f, 0xaa, 0xa0, 0xa2,
+ 0x0d, 0xc5, 0xca, 0xa3, 0x55, 0xbf, 0xfc, 0xff, 0xcd, 0xbc, 0x69, 0x9b, 0xbf, 0x0a, 0xdf, 0xff, 0xcd, 0xc4, 0xca, 0xa3, 0xdd, 0xfc, 0x5f, 0xf7, 0x2b, 0xb4, 0x6a, 0x9b, 0xaa, 0x8a, 0xdf, 0xaa,
+ 0x2c, 0xb4, 0xaa, 0xa3, 0xfa, 0x95, 0xbd, 0x2e, 0xad, 0xbc, 0x8a, 0x9b, 0xfd, 0x2f, 0xff, 0xaf, 0x8d, 0xbc, 0xca, 0xa3, 0x35, 0xfb, 0xff, 0xfb, 0x6d, 0xb4, 0xaa, 0xa3, 0xfa, 0xd5, 0xf7, 0x02,
+ 0x2c, 0xac, 0x28, 0x8b, 0xaa, 0x7a, 0xe8, 0x00, 0x2b, 0xac, 0x8a, 0xa3, 0x82, 0x7a, 0xaa, 0x2a, 0x2b, 0xac, 0xca, 0x9b, 0xa8, 0xfd, 0xe3, 0xe9, 0x2c, 0xac, 0x89, 0x9b, 0x60, 0xfe, 0xa3, 0x80,
+ 0x4c, 0xb4, 0x29, 0x8b, 0xa5, 0x2a, 0xaa, 0x00, 0x4c, 0xb4, 0xeb, 0xa3, 0xb5, 0xaf, 0xab, 0xa8, 0x6d, 0xbc, 0x0b, 0xac, 0x79, 0xdd, 0xa3, 0xeb, 0x6c, 0xb4, 0x8a, 0xa3, 0xaa, 0x88, 0x5e, 0x00,
+ 0x6c, 0xbc, 0xeb, 0xa3, 0xd2, 0xb2, 0xef, 0xba, 0x6c, 0xb4, 0xcb, 0xa3, 0xfa, 0xaa, 0x07, 0xca, 0xad, 0xbc, 0xab, 0x9b, 0xde, 0x82, 0xaa, 0xbf, 0x4c, 0xb4, 0xaa, 0x9b, 0x9d, 0xa8, 0x20, 0x0e,
+ 0x8c, 0xb4, 0xeb, 0xa3, 0xff, 0x2b, 0x5f, 0xeb, 0x6c, 0xb4, 0xeb, 0xa3, 0xbe, 0xbc, 0x29, 0x7f, 0x4c, 0xb4, 0x8a, 0x9b, 0xaa, 0x02, 0xaa, 0x0d, 0x4c, 0xb4, 0xcb, 0x9b, 0xaa, 0xba, 0x7e, 0xb0,
+ 0x6d, 0xb4, 0xeb, 0xab, 0xdc, 0xeb, 0xe2, 0xbd, 0xac, 0xbc, 0xeb, 0xab, 0xff, 0x37, 0x77, 0xf7, 0x6c, 0xb4, 0xaa, 0xa3, 0xaf, 0xe0, 0xaa, 0x5a, 0x8c, 0xbc, 0xca, 0xa3, 0x3a, 0xa5, 0xea, 0xaf,
+ 0xee, 0xc4, 0xea, 0xab, 0xdc, 0xf7, 0xff, 0x5f, 0x4c, 0xb4, 0xeb, 0xab, 0xfd, 0xf0, 0xfe, 0xbd, 0x6c, 0xbc, 0x0b, 0xac, 0xd5, 0xbb, 0x2f, 0x73, 0x4c, 0xb4, 0xeb, 0xab, 0x7a, 0x08, 0xae, 0xae,
+ 0x6c, 0xb4, 0xeb, 0xab, 0x2b, 0xf2, 0xfe, 0x7a, 0xce, 0xbc, 0xeb, 0xab, 0xf8, 0xff, 0xd5, 0xdd, 0x2c, 0xb4, 0xeb, 0xa3, 0xaf, 0xba, 0x2e, 0xea, 0x4c, 0xb4, 0xea, 0xab, 0xb8, 0xf6, 0x0b, 0x2f,
+ 0x4c, 0xb4, 0x0b, 0xac, 0x2b, 0x7a, 0xa2, 0x6f, 0x6c, 0xb4, 0xeb, 0xab, 0x3c, 0xff, 0x5f, 0xf7, 0x6c, 0xb4, 0xca, 0xa3, 0xbe, 0xa8, 0xbd, 0xaf, 0x6c, 0xb4, 0x0b, 0xac, 0xfd, 0x6c, 0xdf, 0xf7,
+ 0x6c, 0xb4, 0x0b, 0xac, 0xac, 0xf5, 0xe7, 0xfb, 0x4c, 0xb4, 0xca, 0xa3, 0x82, 0x78, 0xae, 0xfa, 0xac, 0xbc, 0xeb, 0xab, 0x2f, 0xf5, 0xd7, 0xf5, 0x4c, 0xb4, 0xa9, 0x9b, 0x08, 0x08, 0x6a, 0x2b,
+ 0x4c, 0xb4, 0xeb, 0xa3, 0xa8, 0x7a, 0xbf, 0x0b, 0x4c, 0xb4, 0xeb, 0xab, 0xe9, 0xfe, 0xfa, 0x80, 0x6c, 0xbc, 0x8a, 0x9b, 0xdf, 0x37, 0xaa, 0xaa, 0x4c, 0xb4, 0xaa, 0xa3, 0x0a, 0x8a, 0xfa, 0x5e,
+ 0x4b, 0xb4, 0xaa, 0x9b, 0xb0, 0xe0, 0xa5, 0xfd, 0x2b, 0xac, 0x89, 0xa3, 0x88, 0xb7, 0xcf, 0xba, 0x4c, 0xb4, 0x60, 0x59, 0x00, 0x00, 0xa8, 0x90, 0x0b, 0xac, 0xaa, 0xa3, 0xaa, 0x82, 0xa7, 0x69,
+ 0x0b, 0xac, 0xaa, 0x9b, 0xae, 0xff, 0x08, 0x0d, 0x2b, 0xac, 0x8a, 0x9b, 0xfa, 0x27, 0xaa, 0x28, 0x0b, 0xac, 0x8a, 0x9b, 0xca, 0xa2, 0xaa, 0x5e, 0xeb, 0xa3, 0x8a, 0x9b, 0x0b, 0xbe, 0xa5, 0xc3,
+ 0x0b, 0xa4, 0x8a, 0x9b, 0xb6, 0x55, 0xbe, 0x0f, 0x2c, 0xac, 0xaa, 0xa3, 0x4f, 0xfa, 0xfa, 0xa8, 0x2c, 0xac, 0xca, 0xa3, 0x9b, 0xad, 0xea, 0xa0, 0x4c, 0xb4, 0xab, 0xa3, 0xe0, 0xba, 0x2d, 0x2a,
+ 0x4c, 0xb4, 0xcb, 0xab, 0xad, 0x8a, 0xa2, 0x0a, 0x4c, 0xbc, 0xe6, 0x8a, 0x0a, 0x00, 0x00, 0x40, 0xac, 0xc4, 0xa3, 0x69, 0x80, 0xe8, 0x7a, 0x5a, 0x47, 0x9b, 0x83, 0x61, 0x00, 0x00, 0x57, 0xad,
+ 0x48, 0x9b, 0x25, 0x72, 0x00, 0xf8, 0x95, 0x2a, 0x89, 0x9b, 0xa6, 0x82, 0x2e, 0x09, 0xea, 0xaf, 0x2b, 0xb4, 0xe1, 0x48, 0x82, 0xc2, 0x42, 0x62, 0x63, 0x8a, 0xc2, 0x38, 0xfc, 0xdf, 0xdf, 0x55,
+ 0x43, 0x51, 0xe2, 0x40, 0xe0, 0xee, 0x6f, 0xeb, 0x63, 0x51, 0xe2, 0x40, 0x05, 0xb9, 0xdf, 0x2b, 0xc6, 0x82, 0x02, 0x51, 0x8d, 0xeb, 0x7f, 0xff, 0x47, 0x8b, 0x42, 0x51, 0xaf, 0xaf, 0xf5, 0x0b,
+ 0x4b, 0xb4, 0x07, 0x8b, 0x09, 0x09, 0x81, 0x8b, 0x4b, 0xb4, 0x06, 0x93, 0x00, 0xa0, 0xaa, 0x72, 0x2b, 0xac, 0x24, 0x7a, 0x00, 0x80, 0xaa, 0xad, 0xad, 0xc4, 0xe2, 0x38, 0x02, 0x80, 0x70, 0x5c,
+ 0xaa, 0xa3, 0xc2, 0x20, 0x54, 0x55, 0x55, 0x55, 0x44, 0x31, 0xe3, 0x20, 0xbb, 0x2b, 0x8f, 0xa9, 0x24, 0x31, 0xc3, 0x20, 0x02, 0xca, 0xc2, 0x56, 0x04, 0x29, 0xc3, 0x20, 0x08, 0x00, 0xa0, 0x75,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xfe, 0x0a, 0xa2, 0xbf, 0x6c, 0xbc, 0x2b, 0xb4, 0xfa, 0xfe, 0xfa, 0xe0, 0x6c, 0xbc, 0x0b, 0xb4, 0xad, 0xfe, 0xaa, 0x8a, 0x6c, 0xbc, 0x2b, 0xb4, 0x3f, 0x6b, 0x7f, 0xeb,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xbf, 0xad, 0xae, 0x6f, 0x6c, 0xbc, 0x48, 0x93, 0x20, 0x00, 0x00, 0x42, 0x6c, 0xbc, 0x87, 0x7a, 0x00, 0x00, 0x28, 0x09, 0x4c, 0xbc, 0xeb, 0xb3, 0xba, 0xaa, 0xae, 0x39,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0xbc, 0x0e, 0x0f, 0x01, 0x6c, 0xbc, 0x2b, 0xb4, 0xc0, 0xaa, 0x76, 0x62, 0x6c, 0xbc, 0x2b, 0xb4, 0x2d, 0xda, 0xbf, 0xa5, 0x4c, 0xbc, 0x0b, 0xb4, 0x00, 0xfc, 0x3a, 0x0e,
+ 0x6c, 0xc4, 0x2b, 0xb4, 0xfe, 0xf7, 0xba, 0xab, 0x6b, 0xc4, 0x2c, 0xb4, 0xff, 0xba, 0xbb, 0xaa, 0x8c, 0xbc, 0x2b, 0xb4, 0xfd, 0xfe, 0xfa, 0xec, 0x8d, 0xc4, 0x4b, 0xb4, 0xff, 0xff, 0xfd, 0xeb,
+ 0x8d, 0xc4, 0x2b, 0xb4, 0xff, 0xba, 0xb7, 0x8b, 0x8c, 0xc4, 0x2b, 0xb4, 0xab, 0xaa, 0xef, 0xee, 0x4c, 0xbc, 0x0b, 0xb4, 0xb8, 0x5c, 0x02, 0x0b, 0x6c, 0xbc, 0x2b, 0xb4, 0x0d, 0xaf, 0xab, 0xaa,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x50, 0xa0, 0xa2, 0x08, 0x6c, 0xc4, 0xca, 0xa3, 0xde, 0xa2, 0xaa, 0xaa, 0x4c, 0xbc, 0xca, 0xa3, 0xaf, 0xfd, 0xfa, 0xa8, 0x2b, 0xb4, 0x48, 0x9b, 0x62, 0x9a, 0xa2, 0x80,
+ 0x2b, 0xb4, 0x8a, 0xa3, 0xf5, 0xbf, 0x3f, 0x2a, 0x6c, 0xbc, 0xeb, 0xab, 0xfd, 0x8f, 0xf7, 0xf7, 0x6c, 0xbc, 0xeb, 0xab, 0x8b, 0xfe, 0xff, 0xf7, 0x4c, 0xb4, 0xea, 0xab, 0xe5, 0x0f, 0xcd, 0xb2,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xe5, 0xaa, 0xcb, 0xe2, 0x4c, 0xbc, 0x0a, 0xac, 0xfa, 0xbe, 0x5e, 0xde, 0x6c, 0xbc, 0x0b, 0xb4, 0x4a, 0xa5, 0xff, 0xfa, 0x4c, 0xbc, 0x0a, 0xac, 0x06, 0xba, 0xfe, 0xfe,
+ 0x4c, 0xbc, 0x0b, 0xac, 0x96, 0xbf, 0xde, 0xdf, 0x6c, 0xbc, 0xea, 0xab, 0xa2, 0xfa, 0xfd, 0xab, 0x4c, 0xbc, 0xea, 0xab, 0x8b, 0xab, 0x22, 0xdc, 0x4c, 0xbc, 0x0a, 0xac, 0xaa, 0xde, 0xfe, 0xb7,
+ 0x4c, 0xbc, 0xea, 0xa3, 0x7e, 0xbe, 0xca, 0xbb, 0x4c, 0xb4, 0x0a, 0xac, 0xbb, 0xbb, 0xa0, 0xd5, 0x6c, 0xbc, 0x0a, 0xac, 0x8b, 0xfb, 0x7d, 0x77, 0x4c, 0xb4, 0xea, 0xab, 0xae, 0x22, 0xfd, 0xfd,
+ 0x6c, 0xbc, 0x0b, 0xac, 0x2f, 0xbf, 0x57, 0xbf, 0x6c, 0xbc, 0x0a, 0xac, 0xd5, 0x2e, 0xff, 0x57, 0x6c, 0xbc, 0xeb, 0xab, 0xee, 0xf8, 0xd7, 0xbf, 0x6c, 0xbc, 0xeb, 0xab, 0xc3, 0xff, 0xaf, 0x7f,
+ 0x6d, 0xbc, 0xeb, 0xab, 0xde, 0xaf, 0xaf, 0xb3, 0x6c, 0xb4, 0xeb, 0xab, 0xdf, 0xab, 0xfe, 0xa8, 0x6c, 0xb4, 0x0b, 0xac, 0x39, 0xff, 0xab, 0xff, 0x8d, 0xbc, 0x0b, 0xac, 0xfa, 0x1c, 0xaf, 0xfe,
+ 0x8c, 0xbc, 0xaa, 0xa3, 0xaa, 0xee, 0xde, 0x8b, 0x4c, 0xb4, 0xeb, 0xa3, 0xfd, 0xab, 0xe2, 0xb3, 0x6c, 0xb4, 0x0b, 0xac, 0xcd, 0x6f, 0xb7, 0x5f, 0x4c, 0xb4, 0x0a, 0xac, 0xc7, 0xef, 0x57, 0x55,
+ 0x4c, 0xb4, 0xeb, 0xab, 0xae, 0xac, 0xf5, 0x69, 0x8d, 0xbc, 0xca, 0xa3, 0xea, 0xca, 0xff, 0xdf, 0x6c, 0xb4, 0xa9, 0x9b, 0xaa, 0xaa, 0x7e, 0x2f, 0x6b, 0xb4, 0x68, 0x9b, 0xaa, 0xca, 0x55, 0x5a,
+ 0x0a, 0xac, 0xa6, 0x7a, 0x80, 0xaf, 0xea, 0x7e, 0x2c, 0xac, 0x46, 0x7a, 0x02, 0x9e, 0xad, 0x02, 0x2b, 0xb4, 0x8a, 0x9b, 0x0b, 0x89, 0xaa, 0x2a, 0x2b, 0xb4, 0xaa, 0xa3, 0x8a, 0xad, 0x8a, 0xaa,
+ 0x8c, 0xb4, 0x0b, 0xac, 0x5d, 0x5c, 0xf5, 0xff, 0x4c, 0xb4, 0xea, 0xab, 0x3f, 0x2b, 0x2e, 0x75, 0xac, 0xbc, 0x83, 0x61, 0x00, 0xa8, 0x00, 0xde, 0x8b, 0xbc, 0x02, 0x51, 0x00, 0x00, 0x00, 0x5f,
+ 0x8b, 0xbc, 0x22, 0x59, 0x00, 0x02, 0x00, 0x5d, 0x6b, 0xb4, 0xa2, 0x61, 0x00, 0x00, 0x00, 0xf5, 0x6b, 0xb4, 0x05, 0x6a, 0x00, 0x82, 0x00, 0xd5, 0x2b, 0xb4, 0x65, 0x82, 0x20, 0x02, 0x7e, 0x7f,
+ 0x8c, 0xbc, 0x82, 0x61, 0x08, 0x0a, 0xd7, 0xff, 0x6c, 0xb4, 0x66, 0x7a, 0x02, 0xa0, 0xb5, 0xbd, 0x6c, 0xb4, 0xe3, 0x69, 0x00, 0x00, 0x7f, 0xff, 0x4b, 0xb4, 0x63, 0x59, 0x00, 0x00, 0x95, 0xaa,
+ 0x4b, 0xb4, 0xe7, 0x8a, 0x00, 0xaa, 0x2f, 0x7a, 0x4b, 0xb4, 0xa7, 0x82, 0x80, 0xa8, 0xfa, 0xd5, 0x8c, 0xb4, 0x25, 0x72, 0x0a, 0xa2, 0xd7, 0xff, 0x4b, 0xb4, 0x66, 0x7a, 0x00, 0x00, 0xd5, 0xfe,
+ 0x6b, 0xb4, 0xe8, 0x8a, 0x20, 0xba, 0xd7, 0xaf, 0x4b, 0xac, 0xc8, 0x82, 0x00, 0x6a, 0x2b, 0x00, 0x4c, 0xb4, 0x6a, 0x9b, 0xa8, 0x09, 0x28, 0x22, 0xcd, 0xc4, 0xa8, 0x9b, 0xab, 0xbe, 0xff, 0x78,
+ 0x4b, 0xb4, 0xe0, 0x71, 0x00, 0x00, 0x00, 0x5e, 0x2b, 0xac, 0xa0, 0x69, 0x00, 0x00, 0x00, 0x75, 0x8b, 0xb4, 0xc0, 0x58, 0x00, 0x00, 0x00, 0x7f, 0x8b, 0xbc, 0xa2, 0x50, 0x00, 0x80, 0x00, 0x55,
+ 0x2a, 0xb4, 0x42, 0x51, 0x00, 0x00, 0x80, 0x75, 0x2a, 0xb4, 0x22, 0x51, 0x00, 0x20, 0xbe, 0x55, 0x4a, 0xb4, 0x21, 0x59, 0x00, 0x00, 0x7f, 0x55, 0x2a, 0xb4, 0xe1, 0x50, 0x00, 0x00, 0x55, 0x5d,
+ 0x09, 0xb4, 0x21, 0x51, 0xa0, 0x00, 0x55, 0xd5, 0x49, 0xb4, 0x03, 0x49, 0xaa, 0x00, 0xf5, 0xff, 0x08, 0xac, 0x87, 0x7a, 0xab, 0x08, 0x55, 0xd5, 0x6c, 0xb4, 0xe4, 0x69, 0x02, 0x56, 0xdf, 0xaf,
+ 0x6b, 0xb4, 0xa4, 0x61, 0x00, 0xfd, 0xab, 0xaa, 0x6b, 0xb4, 0xe7, 0x8a, 0xa0, 0xb7, 0xff, 0xaf, 0x0a, 0xac, 0x47, 0x93, 0x00, 0xfa, 0x5f, 0xff, 0x2b, 0xb4, 0xe4, 0x69, 0x00, 0xdf, 0x96, 0xaa,
+ 0x4a, 0xb4, 0xa3, 0x61, 0x20, 0xff, 0xa7, 0xa7, 0xea, 0xa3, 0xa4, 0x61, 0x28, 0x25, 0xaa, 0x38, 0xeb, 0xab, 0xe4, 0x69, 0x9c, 0x2a, 0x2a, 0x0a, 0x0b, 0xac, 0x69, 0x9b, 0xd6, 0x3a, 0xbe, 0xbc,
+ 0x2b, 0xac, 0x69, 0x9b, 0x8b, 0xaa, 0x62, 0xa0, 0x2b, 0xb4, 0x69, 0x9b, 0xae, 0x82, 0x29, 0xaa, 0x4c, 0xb4, 0xa6, 0x82, 0xaa, 0xaa, 0xa0, 0x66, 0xc9, 0xa3, 0x61, 0x61, 0x00, 0x00, 0xba, 0xd5,
+ 0x6b, 0xb4, 0xc4, 0x50, 0x02, 0x02, 0x02, 0xdf, 0x2b, 0xb4, 0x27, 0x8b, 0xaa, 0xaa, 0xa8, 0xdf, 0x4c, 0xb4, 0x01, 0x7a, 0x0a, 0xaa, 0x02, 0x5e, 0x8d, 0xbc, 0x27, 0x93, 0xaa, 0xaa, 0xaa, 0x13,
+ 0x8c, 0xbc, 0x23, 0x72, 0x00, 0xaa, 0x9c, 0x87, 0x0b, 0xb4, 0xa7, 0x82, 0x70, 0xfa, 0xa0, 0xae, 0x89, 0x9b, 0x05, 0x72, 0xd8, 0x8b, 0xab, 0x8a, 0x28, 0x93, 0xe7, 0x82, 0xd9, 0xea, 0x73, 0x79,
+ 0x28, 0x93, 0xa6, 0x82, 0x2a, 0x2a, 0x7e, 0xfb, 0x69, 0x9b, 0x04, 0x72, 0xca, 0x72, 0x5a, 0xba, 0x6c, 0xbc, 0xa1, 0x48, 0x72, 0x50, 0x50, 0xd8, 0x43, 0x59, 0xa2, 0x30, 0xb5, 0xaf, 0x20, 0x28,
+ 0x43, 0x59, 0xe2, 0x48, 0x97, 0x3a, 0x2a, 0xa8, 0x67, 0x72, 0x03, 0x51, 0x55, 0x9f, 0xa5, 0x0b, 0x4a, 0x8b, 0x64, 0x59, 0xd5, 0xbf, 0xaf, 0x02, 0xca, 0xa3, 0x67, 0x72, 0xa5, 0xbb, 0xaf, 0x0a,
+ 0x2c, 0xb4, 0x49, 0x93, 0xc9, 0xaf, 0x2a, 0xaa, 0x2c, 0xb4, 0x05, 0x7a, 0xb7, 0xaa, 0x80, 0x00, 0x8c, 0xbc, 0x22, 0x49, 0x2f, 0x83, 0xc2, 0x50, 0x29, 0x8b, 0x23, 0x39, 0x54, 0x57, 0xff, 0x55,
+ 0x85, 0x49, 0x24, 0x31, 0x55, 0xde, 0x8a, 0xaf, 0x65, 0x41, 0xe4, 0x28, 0xb7, 0xa3, 0xe0, 0x7a, 0x24, 0x31, 0xa2, 0x10, 0xf8, 0x78, 0x7e, 0x7f, 0xc3, 0x20, 0x82, 0x10, 0x0a, 0xb7, 0xff, 0x7e,
+ 0x6c, 0xbc, 0xeb, 0xb3, 0x0a, 0x02, 0xaa, 0x37, 0x8c, 0xbc, 0x4b, 0xb4, 0x7f, 0x57, 0xeb, 0x2a, 0x6c, 0xbc, 0x2b, 0xb4, 0x7f, 0x53, 0xe9, 0x80, 0x6c, 0xbc, 0x0b, 0xb4, 0xab, 0x22, 0x8a, 0xad,
+ 0x6c, 0xbc, 0xcb, 0xab, 0xaa, 0xa8, 0xb6, 0x2a, 0x6c, 0xbc, 0x69, 0x9b, 0xda, 0x20, 0xa8, 0x00, 0x6c, 0xbc, 0xca, 0xa3, 0x2b, 0xa0, 0x6a, 0xc2, 0x6c, 0xbc, 0x0b, 0xac, 0xaa, 0x82, 0xa9, 0xa9,
+ 0x8c, 0xc4, 0x48, 0x9b, 0xaa, 0x6a, 0xd2, 0xaa, 0x4c, 0xbc, 0xaa, 0xa3, 0xaa, 0xad, 0x83, 0x00, 0x6c, 0xbc, 0x2b, 0xb4, 0xfd, 0x2f, 0xa7, 0xbb, 0x6c, 0xbc, 0xeb, 0xab, 0x8a, 0x8a, 0x28, 0x16,
+ 0x6c, 0xbc, 0xa9, 0xa3, 0x00, 0x00, 0x40, 0x60, 0x8c, 0xbc, 0x63, 0x59, 0x80, 0xba, 0xa5, 0x0a, 0x6c, 0xbc, 0xcb, 0xab, 0xad, 0xab, 0x0a, 0x20, 0x6d, 0xc4, 0x2b, 0xb4, 0xaa, 0x37, 0x8b, 0xaa,
+ 0x8c, 0xc4, 0x4b, 0xbc, 0xba, 0xaa, 0x7f, 0xff, 0x6b, 0xc4, 0x4c, 0xb4, 0xef, 0xae, 0xbf, 0x8a, 0x6c, 0xbc, 0x0b, 0xb4, 0x2a, 0x2d, 0x20, 0x00, 0x6c, 0xc4, 0x4b, 0xb4, 0xeb, 0xeb, 0xfa, 0xaa,
+ 0x6b, 0xc4, 0x2c, 0xb4, 0xff, 0x2a, 0xba, 0xaf, 0x8c, 0xc4, 0x69, 0x9b, 0x82, 0x02, 0xb8, 0x9e, 0x8c, 0xc4, 0x83, 0x61, 0x00, 0x80, 0xa0, 0xdc, 0x2b, 0xb4, 0x48, 0x93, 0xa8, 0x02, 0x8a, 0x7f,
+ 0x4b, 0xb4, 0xaa, 0xab, 0xea, 0xea, 0xb7, 0x2f, 0x4b, 0xb4, 0xea, 0xab, 0xfd, 0xff, 0x3a, 0xee, 0x4b, 0xb4, 0x68, 0xa3, 0xaa, 0x88, 0x80, 0x6a, 0x2b, 0xb4, 0x68, 0x9b, 0x00, 0x02, 0x0a, 0x75,
+ 0x4b, 0xb4, 0x81, 0x61, 0x00, 0x00, 0x00, 0xd7, 0x4b, 0xb4, 0x65, 0x7a, 0x00, 0x00, 0x2a, 0xed, 0x2b, 0xb4, 0xe3, 0x71, 0x00, 0x00, 0x00, 0x7a, 0x4b, 0xb4, 0x45, 0x7a, 0x08, 0x80, 0x2a, 0x5d,
+ 0x2b, 0xb4, 0x43, 0x7a, 0x00, 0x00, 0x00, 0xfd, 0x4b, 0xb4, 0x42, 0x59, 0x00, 0x00, 0x00, 0xa5, 0x2b, 0xb4, 0x28, 0x9b, 0x00, 0x00, 0xa0, 0xad, 0x6a, 0xbc, 0x84, 0x61, 0x00, 0x40, 0xff, 0xaa,
+ 0x4a, 0xb4, 0xe3, 0x48, 0x20, 0xa5, 0xaa, 0x8a, 0x0a, 0xb4, 0x49, 0x8b, 0x02, 0x7b, 0xaa, 0xea, 0x0a, 0xac, 0xc7, 0x82, 0x0a, 0xbb, 0xa6, 0x2b, 0x2a, 0xac, 0x49, 0x9b, 0x0a, 0x7f, 0x2c, 0xa2,
+ 0x2b, 0xb4, 0xe3, 0x69, 0x80, 0x0b, 0x00, 0xa7, 0x2b, 0xb4, 0xe8, 0x92, 0x82, 0x02, 0x20, 0xb5, 0x4b, 0xbc, 0x46, 0x7a, 0x00, 0x00, 0x80, 0xb7, 0x2b, 0xb4, 0xc6, 0x8a, 0x00, 0x00, 0xaa, 0x6b,
+ 0x2a, 0xb4, 0xa7, 0x82, 0x00, 0x00, 0x00, 0x95, 0x4b, 0xb4, 0x07, 0x8b, 0x0a, 0x00, 0xaa, 0xfd, 0x6c, 0xbc, 0x27, 0x93, 0x2a, 0xaa, 0xef, 0x5f, 0xac, 0xc4, 0x28, 0x93, 0xaa, 0xf2, 0x5f, 0xf7,
+ 0x6c, 0xbc, 0xe7, 0x8a, 0xa0, 0x8a, 0x7f, 0xff, 0x4a, 0xb4, 0x07, 0x93, 0x08, 0xff, 0x55, 0x7f, 0x0a, 0xac, 0x08, 0x8b, 0x08, 0xff, 0xff, 0xdf, 0x2a, 0xb4, 0xa7, 0x82, 0x0a, 0x5e, 0xff, 0xbf,
+ 0x2a, 0xac, 0x24, 0x72, 0x00, 0xd7, 0xff, 0xaa, 0x0a, 0xac, 0x63, 0x59, 0x00, 0x7f, 0xff, 0xaa, 0x4a, 0xb4, 0xe5, 0x69, 0xf8, 0xfd, 0xaf, 0xaa, 0xcb, 0xa3, 0x45, 0x72, 0xad, 0xaf, 0x2a, 0x02,
+ 0x4c, 0xb4, 0x09, 0x8b, 0xd7, 0xaf, 0xaa, 0x0a, 0x4c, 0xb4, 0x26, 0x93, 0x8a, 0x8a, 0xa0, 0x68, 0x2b, 0xb4, 0x06, 0x8b, 0x82, 0x00, 0xe0, 0x5f, 0xac, 0xc4, 0x23, 0x72, 0x0a, 0x82, 0x5f, 0x7f,
+ 0x49, 0xb4, 0xe1, 0x50, 0x80, 0xfe, 0xea, 0x5f, 0x46, 0x9b, 0x22, 0x51, 0xf0, 0xae, 0xff, 0xd5, 0x07, 0x8b, 0xc4, 0x69, 0x03, 0xaa, 0xb7, 0xbf, 0x07, 0x8b, 0x25, 0x72, 0x54, 0xba, 0xfd, 0x20,
+ 0x07, 0x8b, 0x26, 0x72, 0x7a, 0xaf, 0xaa, 0xa0, 0x48, 0x93, 0x06, 0x72, 0xb5, 0xbf, 0xaf, 0x0a, 0x48, 0x93, 0x45, 0x72, 0x2f, 0xa7, 0xea, 0x00, 0x48, 0x93, 0x04, 0x6a, 0x20, 0xaa, 0x7b, 0x00,
+ 0x47, 0x93, 0xe5, 0x69, 0xa8, 0xaa, 0xf5, 0x00, 0xa9, 0xa3, 0xc5, 0x61, 0x2a, 0xab, 0xbd, 0x8a, 0xa8, 0xa3, 0x64, 0x59, 0x80, 0x2b, 0x5e, 0x00, 0xa7, 0x9b, 0x45, 0x59, 0x00, 0x0a, 0xf5, 0xa2,
+ 0xa7, 0x9b, 0x05, 0x72, 0x08, 0x7a, 0xff, 0xbf, 0xa8, 0x9b, 0xa2, 0x40, 0x00, 0x55, 0x7e, 0xaa, 0x66, 0x93, 0xe2, 0x40, 0x00, 0x2d, 0x55, 0xaa, 0x08, 0xac, 0x03, 0x51, 0x0a, 0xe8, 0xd5, 0xff,
+ 0x8a, 0xb4, 0xa2, 0x48, 0x00, 0x57, 0xff, 0xbf, 0x27, 0xb4, 0xa3, 0x40, 0xa0, 0x55, 0xbf, 0xab, 0x46, 0x9b, 0x24, 0x51, 0xe0, 0x75, 0xfe, 0xaa, 0xe9, 0x82, 0xa0, 0x40, 0xf5, 0xeb, 0xba, 0x02,
+ 0x48, 0x8b, 0x03, 0x49, 0x55, 0x7f, 0xbb, 0x0a, 0x48, 0x93, 0x44, 0x51, 0xd5, 0xab, 0x22, 0x00, 0x28, 0x93, 0xe5, 0x69, 0x7b, 0xfa, 0xa8, 0x00, 0x69, 0x93, 0x63, 0x59, 0x7f, 0xfe, 0xaa, 0x00,
+ 0x69, 0x9b, 0x64, 0x59, 0xf5, 0xaf, 0x0a, 0x00, 0x69, 0x9b, 0xc5, 0x61, 0xd5, 0xaa, 0xaa, 0x08, 0x69, 0x93, 0xe5, 0x69, 0x5f, 0xba, 0x0a, 0x00, 0x89, 0x9b, 0xe5, 0x61, 0x5f, 0xaa, 0x00, 0x00,
+ 0x69, 0x9b, 0x06, 0x6a, 0xfd, 0xaa, 0x28, 0x00, 0x8a, 0x9b, 0x26, 0x6a, 0xad, 0xaa, 0x00, 0x02, 0xca, 0xa3, 0x08, 0x8b, 0xf5, 0xa3, 0xaa, 0x0a, 0xa9, 0xa3, 0x28, 0x93, 0x7f, 0xa8, 0xbc, 0xae,
+ 0xa9, 0xa3, 0x28, 0x93, 0xbe, 0x7f, 0xeb, 0xb0, 0xaa, 0xa3, 0xc7, 0x82, 0x22, 0x2d, 0x00, 0x0a, 0xca, 0xa3, 0x86, 0x82, 0x8a, 0x80, 0x28, 0xa6, 0xca, 0xa3, 0xe8, 0x92, 0x7f, 0xba, 0x02, 0x0a,
+ 0xca, 0xa3, 0x67, 0x7a, 0xa6, 0x00, 0x00, 0x00, 0x0c, 0xac, 0xe7, 0x8a, 0x9e, 0xbe, 0xbe, 0x2a, 0x0b, 0xac, 0xaa, 0xa3, 0x05, 0xe9, 0x0b, 0x00, 0x2b, 0xb4, 0x69, 0x9b, 0x06, 0x02, 0x08, 0xa0,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xbf, 0xc3, 0xf0, 0xfd, 0x6c, 0xbc, 0x0a, 0xac, 0xf9, 0xba, 0x98, 0x6e, 0x2b, 0xbc, 0x01, 0x51, 0x50, 0x5c, 0xd6, 0x57, 0x69, 0x9b, 0xa4, 0x61, 0xbd, 0x2b, 0x2b, 0x2b,
+ 0xad, 0xc4, 0xe8, 0x8a, 0x8d, 0x8b, 0xab, 0x8b, 0x2c, 0xbc, 0xe0, 0x50, 0x40, 0x40, 0x40, 0x60, 0x86, 0x82, 0x63, 0x59, 0x5f, 0xfb, 0xab, 0x83, 0x8d, 0xbc, 0x04, 0x72, 0xf7, 0xfa, 0x8b, 0x8b,
+ 0x2c, 0xac, 0xa6, 0x82, 0x81, 0xa3, 0xa4, 0xbb, 0x0b, 0xac, 0x69, 0x9b, 0x8b, 0xf6, 0x55, 0xd5, 0x89, 0xa3, 0x62, 0x61, 0xa8, 0xdc, 0xb6, 0xa7, 0x07, 0x93, 0xa6, 0x82, 0xfb, 0xea, 0xfc, 0xf4,
+ 0x48, 0x93, 0x65, 0x7a, 0xbe, 0x17, 0x27, 0x57, 0x0b, 0xb4, 0x24, 0x72, 0xbf, 0x3f, 0x3f, 0xc7, 0x6d, 0xc4, 0x22, 0x59, 0x54, 0x56, 0x57, 0x55, 0xc8, 0x7a, 0x03, 0x51, 0x55, 0xd5, 0xad, 0x0a,
+ 0x69, 0x93, 0x44, 0x51, 0xd5, 0xab, 0x2a, 0x02, 0xaa, 0xa3, 0x67, 0x72, 0xd5, 0x8b, 0x2a, 0x02, 0x0b, 0xac, 0x29, 0x93, 0xbd, 0xfb, 0xaa, 0x0a, 0x2c, 0xac, 0xaa, 0x9b, 0xfd, 0xbf, 0xaa, 0x2a,
+ 0x4b, 0xb4, 0xec, 0xab, 0xad, 0x2b, 0xaa, 0x08, 0x8c, 0xc4, 0xc1, 0x30, 0x00, 0x80, 0x70, 0x57, 0x88, 0xa3, 0xa3, 0x20, 0xfc, 0xd7, 0x57, 0x55, 0x85, 0x41, 0xc3, 0x28, 0xe8, 0xea, 0xff, 0xd5,
+ 0x24, 0x39, 0xa2, 0x18, 0x00, 0xaa, 0xfa, 0x5e, 0x24, 0x31, 0xc3, 0x18, 0xe0, 0xe8, 0xef, 0xf5, 0xe3, 0x20, 0x82, 0x10, 0x7f, 0xfe, 0xfb, 0xfa, 0xc3, 0x18, 0x82, 0x10, 0xfa, 0xf9, 0xcc, 0x80,
+ 0x8d, 0xbc, 0x4b, 0xb4, 0xbd, 0x17, 0xf5, 0xaf, 0x8c, 0xbc, 0x4b, 0xb4, 0x8f, 0xbc, 0xae, 0x7f, 0x6c, 0xbc, 0x6a, 0x9b, 0x80, 0x60, 0xa8, 0x20, 0x8c, 0xc4, 0x0b, 0xac, 0xff, 0xa1, 0x0a, 0x8a,
+ 0x8d, 0xc4, 0x0b, 0xac, 0xab, 0xf6, 0xe8, 0xaa, 0x6c, 0xbc, 0x0b, 0xac, 0x02, 0x2b, 0x29, 0xa0, 0x6c, 0xbc, 0x89, 0xa3, 0x80, 0xad, 0x2a, 0x8a, 0x4c, 0xbc, 0x2b, 0xb4, 0x2d, 0x82, 0x20, 0x0b,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x9b, 0x3a, 0xae, 0xea, 0x6c, 0xbc, 0xaa, 0xa3, 0x20, 0x98, 0xa8, 0xaf, 0x6c, 0xbc, 0xca, 0xa3, 0xa2, 0x2d, 0x0b, 0x80, 0x8c, 0xc4, 0x4b, 0xb4, 0x6b, 0x5f, 0xba, 0xff,
+ 0xac, 0xc4, 0x45, 0x7a, 0x82, 0x00, 0x00, 0x40, 0x6b, 0xbc, 0x85, 0x59, 0x00, 0x00, 0x28, 0x2d, 0x6c, 0xbc, 0x29, 0x93, 0x00, 0x02, 0xa2, 0x24, 0x6c, 0xbc, 0x2b, 0xb4, 0x08, 0x2f, 0x2f, 0x83,
+ 0x6c, 0xbc, 0x2a, 0xb4, 0xa8, 0x00, 0xc8, 0xff, 0x6c, 0xbc, 0x2b, 0xb4, 0x00, 0xe0, 0x28, 0x9b, 0x6c, 0xbc, 0x2b, 0xb4, 0x00, 0x0a, 0x2a, 0xae, 0x4c, 0xbc, 0x2b, 0xb4, 0xd0, 0x20, 0x08, 0x02,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x02, 0xf8, 0xe2, 0xee, 0x4c, 0xbc, 0x0b, 0xb4, 0x5c, 0xa8, 0xa8, 0x8e, 0x4b, 0xb4, 0x6a, 0x9b, 0x7a, 0xa0, 0x80, 0x00, 0x0b, 0xb4, 0x29, 0x93, 0x7b, 0xa8, 0xa0, 0x00,
+ 0x0b, 0xac, 0x48, 0x93, 0xd7, 0xfa, 0xaa, 0x00, 0xea, 0xb3, 0xc7, 0x82, 0x77, 0xba, 0x20, 0x00, 0xea, 0xab, 0x07, 0x93, 0xa9, 0xaa, 0xa2, 0x00, 0x0b, 0xac, 0x49, 0x9b, 0xfd, 0xff, 0xaa, 0x0a,
+ 0x4a, 0xbc, 0xe8, 0x82, 0xd5, 0xbf, 0xaa, 0xa0, 0xca, 0xa3, 0x48, 0x93, 0xe5, 0xee, 0x88, 0x00, 0xca, 0xa3, 0xe8, 0x8a, 0x7e, 0xa8, 0xa8, 0x00, 0xca, 0xa3, 0xe8, 0x8a, 0x7f, 0xea, 0xe2, 0x88,
+ 0xaa, 0xa3, 0xa7, 0x82, 0x7f, 0xaa, 0x2a, 0x00, 0xa9, 0xab, 0xca, 0x82, 0x29, 0xaa, 0x88, 0x00, 0xa9, 0xa3, 0x48, 0x9b, 0xd0, 0x97, 0x7a, 0x28, 0x2b, 0xb4, 0x89, 0xa3, 0x55, 0x55, 0xd5, 0xcb,
+ 0x0b, 0xac, 0x69, 0x9b, 0xeb, 0x7b, 0xeb, 0x0a, 0x2b, 0xb4, 0xaa, 0xa3, 0x7d, 0x5d, 0xd7, 0x3a, 0x2b, 0xb4, 0xaa, 0xa3, 0xa5, 0xbb, 0xaa, 0xa0, 0x0b, 0xb4, 0xc9, 0xa3, 0x7e, 0xfe, 0xea, 0xf0,
+ 0xea, 0xab, 0x89, 0x9b, 0xdf, 0xaa, 0xa2, 0x20, 0xeb, 0xab, 0x68, 0x9b, 0x7e, 0xfa, 0xfa, 0x20, 0xeb, 0xa3, 0x48, 0x93, 0xd7, 0xaf, 0xaa, 0x00, 0x0b, 0xac, 0x69, 0x9b, 0x7d, 0xfb, 0xff, 0x00,
+ 0x0b, 0xac, 0x48, 0x93, 0xff, 0x5f, 0xfe, 0xa0, 0xeb, 0xa3, 0x28, 0x93, 0x7f, 0xf7, 0xba, 0x00, 0xca, 0xa3, 0x28, 0x93, 0xde, 0xda, 0x2a, 0x20, 0xca, 0xa3, 0x48, 0x93, 0x57, 0xdf, 0xaa, 0x2a,
+ 0xca, 0xa3, 0x48, 0x9b, 0x7d, 0xfb, 0x0a, 0x02, 0xea, 0xab, 0x49, 0x9b, 0x5f, 0xfa, 0xea, 0x80, 0x4b, 0xb4, 0x08, 0x8b, 0xff, 0xdf, 0xea, 0xa2, 0xeb, 0xab, 0x08, 0x8b, 0x7b, 0xab, 0xa2, 0x00,
+ 0x0b, 0xac, 0x09, 0x93, 0x77, 0xbf, 0x2a, 0x02, 0x0b, 0xac, 0x29, 0x8b, 0xd5, 0x2a, 0x8a, 0xa0, 0x0b, 0xac, 0x6a, 0x9b, 0xe9, 0xaa, 0xba, 0x0b, 0x4b, 0xb4, 0xca, 0xa3, 0xfd, 0x0b, 0x82, 0x2b,
+ 0x4b, 0xbc, 0x04, 0x72, 0x00, 0x80, 0x7a, 0xf8, 0x4a, 0xbc, 0xc6, 0x82, 0xf8, 0xf5, 0xd5, 0x55, 0x68, 0x93, 0x25, 0x72, 0x78, 0xf8, 0xa2, 0xa8, 0xaa, 0xa3, 0xa4, 0x61, 0x5d, 0xea, 0xba, 0x00,
+ 0xa9, 0x9b, 0xc5, 0x61, 0x55, 0xfe, 0xaa, 0x80, 0x8a, 0x9b, 0x05, 0x62, 0xfd, 0xbf, 0xaa, 0x02, 0xa9, 0xa3, 0xc7, 0x82, 0xfd, 0xb7, 0xae, 0x00, 0xa9, 0xa3, 0x08, 0x8b, 0x6e, 0x7e, 0x7a, 0xe8,
+ 0xaa, 0xa3, 0xa7, 0x7a, 0xff, 0xa9, 0xa2, 0x0a, 0xc9, 0xa3, 0x08, 0x93, 0xdf, 0xff, 0xaf, 0xa8, 0xaa, 0xa3, 0x49, 0x93, 0xab, 0x2b, 0x8b, 0x6a, 0xca, 0xa3, 0x48, 0x93, 0x73, 0xba, 0xab, 0x0a,
+ 0xca, 0xab, 0x28, 0x8b, 0xfd, 0x82, 0xa8, 0xa2, 0xca, 0xa3, 0x08, 0x93, 0xeb, 0xaa, 0x89, 0xef, 0xeb, 0xab, 0x48, 0x93, 0xd7, 0xb5, 0xbb, 0x2e, 0x6c, 0xbc, 0x83, 0x59, 0xba, 0xa4, 0xba, 0xa8,
+ 0xaa, 0xa3, 0x08, 0x8b, 0xf5, 0x82, 0x22, 0x8a, 0xaa, 0xa3, 0xc7, 0x82, 0xba, 0x6e, 0x08, 0x8a, 0xc9, 0xa3, 0x87, 0x7a, 0x5e, 0x95, 0x0a, 0x2a, 0xc9, 0xa3, 0x28, 0x8b, 0x55, 0xfa, 0xe8, 0xa8,
+ 0x69, 0x9b, 0x08, 0x8b, 0xed, 0x81, 0x62, 0x60, 0x69, 0x93, 0xe7, 0x8a, 0x3b, 0x7f, 0xbd, 0xa2, 0x68, 0x9b, 0xa6, 0x82, 0x7a, 0xff, 0xa0, 0xa0, 0x89, 0x9b, 0xe7, 0x82, 0xab, 0x78, 0xde, 0x2a,
+ 0xca, 0xa3, 0xa7, 0x7a, 0xb5, 0xaf, 0x2a, 0x0a, 0xa9, 0xa3, 0x08, 0x8b, 0x77, 0xbe, 0xa8, 0xe8, 0xca, 0xa3, 0x08, 0x8b, 0xd6, 0xbe, 0x02, 0xaa, 0x0b, 0xac, 0x68, 0x93, 0xfe, 0x6f, 0xbf, 0x2f,
+ 0x4b, 0xac, 0x29, 0x93, 0xdf, 0xbf, 0xaa, 0x00, 0x4b, 0xac, 0x49, 0x9b, 0xd5, 0xff, 0xa0, 0xe4, 0x0a, 0xac, 0x69, 0x9b, 0xd5, 0xed, 0x8a, 0xff, 0x0b, 0xac, 0x48, 0x93, 0xf5, 0xab, 0x0a, 0xab,
+ 0x4c, 0xac, 0x89, 0x9b, 0x55, 0xff, 0xa0, 0xaf, 0x6b, 0xb4, 0x41, 0x61, 0xaa, 0x0a, 0xc0, 0x58, 0x8c, 0xbc, 0xa2, 0x61, 0xaa, 0xf8, 0xed, 0xff, 0xc9, 0xa3, 0x26, 0x72, 0x00, 0x5d, 0xbd, 0xab,
+ 0xc9, 0xa3, 0x28, 0x8b, 0x28, 0xd5, 0xaf, 0x0b, 0xca, 0xa3, 0x48, 0x9b, 0x7d, 0xdf, 0xaa, 0x20, 0xeb, 0xa3, 0x49, 0x9b, 0xa5, 0xab, 0x2a, 0x28, 0x2b, 0xac, 0x8a, 0x9b, 0xfb, 0xdf, 0x3a, 0xa0,
+ 0x6c, 0xbc, 0xaa, 0x9b, 0xff, 0x6b, 0xaa, 0xa0, 0xad, 0xc4, 0x2b, 0xac, 0xdf, 0xdc, 0xfd, 0xc7, 0x8d, 0xbc, 0x0b, 0xac, 0xaf, 0x8f, 0xee, 0x55, 0x4c, 0xb4, 0x89, 0x9b, 0x98, 0x9e, 0x2e, 0x2e,
+ 0x4c, 0xb4, 0xaa, 0xa3, 0x03, 0x20, 0x89, 0x62, 0x2b, 0xb4, 0x21, 0x51, 0xc0, 0x60, 0x50, 0x58, 0x49, 0x8b, 0xe2, 0x50, 0xfd, 0xbd, 0x2f, 0x2a, 0x0b, 0xac, 0xe7, 0x82, 0xad, 0xaf, 0x2b, 0x0a,
+ 0x8d, 0xc4, 0xeb, 0xa3, 0x8d, 0xa9, 0xad, 0xa7, 0x8d, 0xc4, 0x01, 0x51, 0x70, 0x50, 0xd0, 0xd0, 0xeb, 0xa3, 0xe4, 0x69, 0xfd, 0xad, 0x2b, 0x0a, 0x8d, 0xbc, 0x28, 0x8b, 0xc9, 0x8b, 0xaa, 0x8a,
+ 0x0a, 0xac, 0xc2, 0x69, 0xa2, 0xa8, 0xf7, 0xd5, 0x89, 0x9b, 0xa6, 0x8a, 0x20, 0x0a, 0xe9, 0xef, 0x28, 0x93, 0x24, 0x72, 0x8d, 0x09, 0x82, 0x8a, 0x48, 0x93, 0xa6, 0x82, 0xf6, 0x6e, 0xf2, 0xaf,
+ 0x0b, 0xac, 0xe4, 0x69, 0x9f, 0xff, 0x2f, 0x0b, 0x4c, 0xb4, 0x84, 0x61, 0x4b, 0xf2, 0xb8, 0x08, 0x0c, 0xac, 0xc6, 0x59, 0xad, 0xab, 0x02, 0x00, 0x2c, 0xac, 0xe9, 0x82, 0xf5, 0xae, 0xaa, 0x00,
+ 0x2c, 0xb4, 0x8a, 0x9b, 0xf5, 0xe9, 0xaa, 0xa0, 0x2c, 0xb4, 0xcb, 0xa3, 0x55, 0xab, 0x0f, 0x0a, 0x6b, 0xbc, 0x0c, 0xac, 0x75, 0x75, 0xbf, 0x4b, 0x8d, 0xc4, 0x23, 0x41, 0x00, 0x00, 0xe0, 0x57,
+ 0x8a, 0xcc, 0xc3, 0x28, 0xe0, 0x5e, 0x55, 0x55, 0x24, 0x31, 0xc3, 0x18, 0xb8, 0x7e, 0x77, 0xff, 0x04, 0x21, 0xc3, 0x18, 0x5f, 0x5f, 0xde, 0xb0, 0x24, 0x29, 0xc3, 0x20, 0xbd, 0xf5, 0x2f, 0xff,
+ 0x04, 0x21, 0xc3, 0x18, 0x54, 0xfe, 0xae, 0x2e, 0x04, 0x21, 0xa3, 0x18, 0x2e, 0xee, 0x8b, 0xb4, 0x04, 0x21, 0xc3, 0x18, 0xfb, 0xd5, 0xd7, 0x0d, 0xe4, 0x20, 0xa3, 0x18, 0xb6, 0x8a, 0xbe, 0xe8,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x80, 0x08, 0x09, 0x3a, 0x8c, 0xbc, 0x4b, 0xb4, 0x7f, 0x39, 0xae, 0x6b, 0x6c, 0xbc, 0x2b, 0xb4, 0xfa, 0xde, 0x26, 0xae, 0x6c, 0xbc, 0x2b, 0xb4, 0x2b, 0xe9, 0xea, 0xba,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x02, 0xef, 0x2b, 0x97, 0x8c, 0xbc, 0x0b, 0xac, 0xaa, 0xeb, 0x5e, 0xe8, 0x6d, 0xbc, 0x2b, 0xb4, 0xf2, 0xaf, 0x81, 0xb0, 0x6c, 0xc4, 0xeb, 0xab, 0x7b, 0xf0, 0xba, 0xe0,
+ 0x6c, 0xbc, 0x0b, 0xac, 0x73, 0xd7, 0xad, 0xaa, 0x6c, 0xbc, 0x0b, 0xb4, 0x2f, 0xeb, 0xb6, 0xae, 0x6c, 0xbc, 0x2b, 0xb4, 0xbf, 0x2b, 0x2e, 0x2e, 0x6c, 0xbc, 0x0b, 0xb4, 0x27, 0x00, 0x88, 0x20,
+ 0x6c, 0xc4, 0xa8, 0x7a, 0xd0, 0x80, 0x00, 0x00, 0x6c, 0xbc, 0x8c, 0x93, 0x2d, 0x82, 0xa0, 0x02, 0x6c, 0xbc, 0x2b, 0xb4, 0xeb, 0x29, 0xaa, 0xb2, 0xac, 0xc4, 0x84, 0x61, 0x80, 0x70, 0x00, 0x00,
+ 0x4c, 0xbc, 0x25, 0x72, 0x09, 0x03, 0x00, 0x00, 0x6c, 0xbc, 0x2b, 0xb4, 0xf5, 0xff, 0xdf, 0xaf, 0x6c, 0xbc, 0x2b, 0xb4, 0x2b, 0xaa, 0xaa, 0x7e, 0x4c, 0xbc, 0xeb, 0xab, 0x00, 0x80, 0xa8, 0xf5,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0x7d, 0xe9, 0xad, 0x8f, 0x4c, 0xbc, 0x0b, 0xb4, 0xa2, 0x2f, 0xba, 0xaa, 0x4c, 0xbc, 0x0a, 0xb4, 0xf8, 0xde, 0xff, 0xa8, 0x2b, 0xb4, 0xea, 0xab, 0x3a, 0xc8, 0xa2, 0x20,
+ 0x4c, 0xbc, 0xea, 0xb3, 0x77, 0xe6, 0xdb, 0xca, 0x2b, 0xb4, 0xaa, 0xa3, 0xda, 0xaa, 0xba, 0xa8, 0xea, 0xb3, 0x0b, 0xac, 0xaa, 0xfd, 0xba, 0x7f, 0x6c, 0xbc, 0xca, 0xab, 0x35, 0xbf, 0xf7, 0xbf,
+ 0x4c, 0xb4, 0xe2, 0x48, 0xaf, 0xa9, 0x00, 0x80, 0x2b, 0xb4, 0xaa, 0xa3, 0xf5, 0x2f, 0xab, 0x2b, 0x0b, 0xb4, 0xa9, 0xa3, 0x7f, 0xe7, 0xa8, 0xa8, 0x2b, 0xb4, 0xc9, 0xa3, 0x75, 0xfb, 0xaa, 0x02,
+ 0x0b, 0xac, 0x89, 0x9b, 0xf7, 0xef, 0xa0, 0x00, 0x2b, 0xac, 0xaa, 0xa3, 0x55, 0xdf, 0xaa, 0x02, 0x2b, 0xb4, 0x8a, 0xa3, 0xfd, 0xba, 0x2a, 0x0a, 0x2b, 0xb4, 0xaa, 0xa3, 0xea, 0x2a, 0xa6, 0x02,
+ 0x2b, 0xbc, 0xea, 0xab, 0xee, 0xeb, 0xff, 0xde, 0x6b, 0xbc, 0xea, 0xab, 0x8d, 0xef, 0xbf, 0xff, 0x0b, 0xb4, 0xea, 0xab, 0x00, 0xa0, 0xd6, 0x3f, 0x0b, 0xb4, 0xca, 0xa3, 0xe6, 0xa8, 0xa0, 0x00,
+ 0x2a, 0xb4, 0xcb, 0xab, 0xb6, 0x0a, 0xae, 0xff, 0x4b, 0xbc, 0xaa, 0xa3, 0xa2, 0x8a, 0xff, 0xdf, 0x4b, 0xbc, 0xea, 0xab, 0x8a, 0x5b, 0x5d, 0x57, 0x2b, 0xb4, 0x48, 0x93, 0x28, 0x78, 0xeb, 0xaa,
+ 0x2b, 0xac, 0x89, 0xa3, 0xa8, 0xfd, 0xed, 0xfe, 0x2b, 0xb4, 0x89, 0xa3, 0xa0, 0xf7, 0xed, 0xe9, 0x2b, 0xb4, 0x8a, 0x9b, 0xbe, 0xd5, 0xbf, 0x0b, 0x6b, 0xbc, 0xaa, 0xa3, 0xf7, 0xff, 0x2a, 0x62,
+ 0x4b, 0xb4, 0x63, 0x69, 0x00, 0x00, 0x00, 0x7a, 0x4b, 0xb4, 0x06, 0x6a, 0x08, 0x00, 0x80, 0xdd, 0x2b, 0xac, 0xc7, 0x8a, 0x00, 0x00, 0x57, 0xdd, 0x4b, 0xb4, 0x25, 0x72, 0xaa, 0x00, 0xd7, 0xff,
+ 0x8a, 0xbc, 0xc4, 0x61, 0x0a, 0x80, 0xd5, 0xff, 0x09, 0xac, 0x67, 0x72, 0x00, 0xa0, 0x5d, 0xef, 0x8a, 0xb4, 0x85, 0x61, 0x02, 0x7f, 0xfe, 0xaf, 0x09, 0xb4, 0xc7, 0x59, 0xa0, 0xf5, 0xae, 0xaa,
+ 0xca, 0xa3, 0xa4, 0x61, 0xb7, 0xa2, 0x00, 0x2a, 0xc9, 0xab, 0xa8, 0x72, 0xf5, 0x82, 0x80, 0x08, 0xca, 0xab, 0x28, 0x8b, 0xad, 0x82, 0xea, 0xea, 0xa9, 0xa3, 0xe7, 0x8a, 0x80, 0xa8, 0xe2, 0x5a,
+ 0x89, 0x9b, 0x07, 0x8b, 0xa0, 0xaf, 0xfd, 0xfd, 0x4a, 0xb4, 0x67, 0x7a, 0x0a, 0xda, 0xbb, 0xab, 0x0a, 0xa4, 0xa7, 0x82, 0xa8, 0x6a, 0xfe, 0xaa, 0xea, 0xa3, 0xe8, 0x8a, 0x8a, 0x7d, 0xff, 0x88,
+ 0xca, 0xa3, 0x07, 0x8b, 0x0b, 0xa9, 0xab, 0x00, 0xeb, 0xa3, 0x89, 0x9b, 0xb7, 0xf7, 0x77, 0x82, 0xcb, 0xa3, 0x49, 0x93, 0xde, 0x2c, 0xab, 0x0a, 0x2b, 0xac, 0x89, 0x9b, 0xbf, 0xdf, 0x8b, 0xea,
+ 0x4c, 0xb4, 0x08, 0x8b, 0x7e, 0xaa, 0x2a, 0x22, 0x2b, 0xac, 0x6a, 0x93, 0xad, 0x0a, 0x2a, 0x2a, 0x0b, 0xac, 0x89, 0x9b, 0xaa, 0x5c, 0xa0, 0x08, 0x2b, 0xac, 0x8a, 0xa3, 0x5e, 0xfb, 0x78, 0x68,
+ 0x0c, 0xa4, 0x48, 0x9b, 0xff, 0xb7, 0xab, 0x82, 0x2c, 0xac, 0x69, 0x93, 0x57, 0x5b, 0xd5, 0x83, 0x2b, 0xb4, 0x89, 0x9b, 0xd5, 0xfd, 0xeb, 0x22, 0x0b, 0xac, 0x89, 0x9b, 0x57, 0x6b, 0xe0, 0xe0,
+ 0xeb, 0xab, 0x48, 0x93, 0xdd, 0xbf, 0xaa, 0x20, 0x0b, 0xac, 0x49, 0x93, 0xd7, 0xee, 0xa2, 0x20, 0x0b, 0xac, 0x6a, 0x9b, 0x5d, 0xeb, 0xaa, 0xe8, 0xea, 0xab, 0x89, 0x9b, 0x5d, 0xd6, 0x8a, 0xaa,
+ 0x2c, 0xac, 0x8a, 0x9b, 0x7b, 0xef, 0xe8, 0xe2, 0x2b, 0xac, 0x49, 0x93, 0xf7, 0xaa, 0xb8, 0xaa, 0x0b, 0xac, 0xaa, 0xa3, 0x5d, 0x2e, 0xff, 0xc3, 0x0b, 0xac, 0x89, 0x9b, 0x8b, 0xaa, 0x62, 0xbf,
+ 0x6c, 0xbc, 0x48, 0x93, 0xe2, 0x7a, 0xfa, 0xa2, 0x2b, 0xac, 0xc7, 0x82, 0x50, 0xbf, 0xfb, 0xaa, 0xaa, 0xa3, 0xe8, 0x82, 0xb7, 0x2b, 0x82, 0x28, 0xea, 0xa3, 0xc7, 0x82, 0x9a, 0x2a, 0x2a, 0xae,
+ 0x6b, 0xbc, 0xc5, 0x69, 0x22, 0x60, 0x7a, 0xee, 0x8a, 0x9b, 0xa3, 0x61, 0xd4, 0xa5, 0xaf, 0x0a, 0x8a, 0x9b, 0x87, 0x7a, 0xf7, 0xad, 0x2a, 0x00, 0xaa, 0xa3, 0x49, 0x93, 0xc5, 0xcb, 0xaa, 0x0a,
+ 0x0b, 0xac, 0x49, 0x9b, 0x29, 0xa9, 0xbe, 0x82, 0xea, 0xa3, 0x89, 0x9b, 0x8c, 0x02, 0x57, 0x09, 0x0b, 0xac, 0x89, 0x9b, 0x3e, 0x37, 0xa7, 0x0b, 0x4c, 0xb4, 0xca, 0xa3, 0x1e, 0x9f, 0xbb, 0xb8,
+ 0x4c, 0xb4, 0xeb, 0xab, 0x4c, 0x6a, 0xfe, 0x0f, 0x4c, 0xbc, 0xaa, 0xa3, 0xde, 0xe8, 0xe8, 0x8a, 0x8c, 0xbc, 0x07, 0x8b, 0xaa, 0xee, 0x6a, 0x2a, 0x2b, 0xb4, 0xc6, 0x82, 0x0a, 0x2a, 0x24, 0x02,
+ 0x8c, 0xbc, 0x65, 0x82, 0xa0, 0x2e, 0xaa, 0x40, 0x6d, 0xb4, 0x82, 0x59, 0xd4, 0xf7, 0xfd, 0xaf, 0xeb, 0xa3, 0x46, 0x6a, 0xad, 0x2b, 0x0a, 0x0a, 0x2c, 0xb4, 0xca, 0xa3, 0xad, 0xaf, 0x0b, 0x02,
+ 0xce, 0xc4, 0x0b, 0xac, 0xc5, 0xed, 0xaf, 0xeb, 0xae, 0xc4, 0x21, 0x51, 0xd8, 0x9c, 0xb4, 0xa4, 0x4c, 0xb4, 0x49, 0x93, 0x2d, 0x2f, 0x89, 0x0b, 0xae, 0xc4, 0x69, 0xa3, 0xaa, 0x2a, 0xca, 0x62,
+ 0xea, 0xab, 0x06, 0x72, 0xd7, 0x82, 0xaa, 0x0a, 0x0d, 0xac, 0xe7, 0x8a, 0x75, 0x5f, 0xfe, 0x00, 0x0c, 0xac, 0xe7, 0x8a, 0xf7, 0x55, 0xf7, 0x20, 0x6c, 0xb4, 0xc6, 0x82, 0xff, 0x95, 0x2b, 0x00,
+ 0x8d, 0xbc, 0x8a, 0x9b, 0xa9, 0x8a, 0x82, 0xa0, 0x4d, 0xb4, 0x0b, 0xac, 0xd7, 0x7e, 0xfc, 0xba, 0x6d, 0xb4, 0xeb, 0xab, 0xd7, 0xff, 0xaf, 0x0a, 0x8c, 0xbc, 0x0b, 0xac, 0xfd, 0x55, 0xf7, 0x0f,
+ 0x8c, 0xc4, 0x42, 0x49, 0x20, 0x00, 0x00, 0x5c, 0x4b, 0xbc, 0xe3, 0x30, 0x00, 0xc0, 0x5e, 0x55, 0x28, 0xbc, 0xe3, 0x28, 0x78, 0x55, 0x55, 0x55, 0x65, 0x41, 0x23, 0x29, 0xe2, 0xaa, 0x73, 0xe5,
+ 0x85, 0x39, 0xe4, 0x20, 0xfe, 0xfe, 0xfa, 0x62, 0x24, 0x31, 0xa3, 0x20, 0xf8, 0x7c, 0xfa, 0xcb, 0x04, 0x29, 0xa3, 0x18, 0xaa, 0xda, 0xf3, 0xe0, 0xc4, 0x20, 0x82, 0x10, 0x88, 0x2a, 0x28, 0x9c,
+ 0x04, 0x21, 0xc3, 0x18, 0xe5, 0xf3, 0xe0, 0xe8, 0xe4, 0x20, 0xa2, 0x18, 0xfb, 0xae, 0xea, 0xaa, 0xe4, 0x28, 0xa3, 0x18, 0xef, 0xaf, 0xad, 0x8e, 0x04, 0x21, 0xa3, 0x18, 0x98, 0xed, 0xfa, 0xff,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0x52, 0xad, 0xf7, 0xd5, 0x6c, 0xbc, 0x2b, 0xb4, 0x2a, 0xab, 0x22, 0xea, 0x6c, 0xbc, 0x4b, 0xb4, 0xdb, 0x3d, 0xd5, 0xe5, 0x6d, 0xbc, 0x2b, 0xb4, 0x3f, 0xc3, 0xbe, 0xeb,
+ 0x0f, 0xcd, 0x2c, 0xb4, 0xff, 0x7f, 0x0f, 0xd5, 0xad, 0xbc, 0x4c, 0xb4, 0xf5, 0xfd, 0xd4, 0x55, 0x8c, 0xbc, 0x0b, 0xac, 0xa2, 0x9e, 0xbf, 0xff, 0x6c, 0xbc, 0x2b, 0xb4, 0xa8, 0xde, 0xe2, 0x89,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xaf, 0x9a, 0xef, 0x9b, 0x6c, 0xbc, 0x0b, 0xb4, 0xa8, 0x27, 0xab, 0x02, 0xad, 0xc4, 0x2c, 0xb4, 0xff, 0xff, 0xd7, 0xfc, 0x8c, 0xc4, 0x2b, 0xb4, 0xaa, 0xa8, 0xa9, 0xff,
+ 0xad, 0xc4, 0x0b, 0xb4, 0x7e, 0xf7, 0x25, 0xbf, 0x6c, 0xbc, 0x2b, 0xb4, 0xbf, 0x2b, 0xbe, 0xe0, 0x6c, 0xbc, 0x2b, 0xb4, 0x02, 0xa8, 0x8b, 0xda, 0x6c, 0xbc, 0x0b, 0xb4, 0xae, 0x28, 0x58, 0xfa,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xba, 0x2a, 0x89, 0x08, 0x6c, 0xbc, 0x2b, 0xb4, 0x0a, 0xab, 0xf3, 0x5e, 0x6c, 0xbc, 0x0b, 0xb4, 0xaa, 0xa0, 0x6a, 0x2e, 0x6b, 0xbc, 0x2c, 0xb4, 0xf6, 0x8b, 0xbb, 0xe2,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xaa, 0x28, 0xec, 0xf7, 0x6c, 0xbc, 0x2b, 0xb4, 0xde, 0xca, 0x22, 0xfb, 0x6c, 0xbc, 0x2b, 0xb4, 0x7f, 0xeb, 0xbb, 0xf8, 0x4c, 0xbc, 0x2b, 0xb4, 0xc9, 0xb8, 0x00, 0xa8,
+ 0x6c, 0xbc, 0x0b, 0xac, 0x7f, 0xaa, 0xaf, 0xa3, 0x4c, 0xbc, 0x0a, 0xac, 0xdf, 0xff, 0xaa, 0x8a, 0x4c, 0xb4, 0x0b, 0xac, 0xf5, 0xab, 0x0a, 0x22, 0x4c, 0xb4, 0xaa, 0xab, 0xba, 0x68, 0xa8, 0x80,
+ 0x4b, 0xb4, 0xca, 0xab, 0xdf, 0xbb, 0x02, 0x20, 0x4c, 0xbc, 0x0a, 0xac, 0xdf, 0xaa, 0x0a, 0x8e, 0x4c, 0xbc, 0x0a, 0xac, 0xbd, 0xba, 0xb7, 0xab, 0x4c, 0xb4, 0x0a, 0xac, 0x32, 0xde, 0xdc, 0xaf,
+ 0x4c, 0xb4, 0x0a, 0xac, 0xa7, 0xbb, 0x2a, 0xaa, 0x4c, 0xbc, 0x0a, 0xac, 0xff, 0xfe, 0xbf, 0xaa, 0x6c, 0xbc, 0x0b, 0xb4, 0x7d, 0x5b, 0xbe, 0x8f, 0x6b, 0xbc, 0x66, 0x7a, 0x00, 0x00, 0x6a, 0x00,
+ 0x6c, 0xbc, 0x46, 0x72, 0x00, 0xa0, 0x09, 0xa8, 0x4c, 0xb4, 0x0a, 0xac, 0x7e, 0x77, 0xdf, 0xcb, 0x2c, 0xb4, 0xea, 0xab, 0xf7, 0xba, 0xea, 0x80, 0x2b, 0xb4, 0xea, 0xab, 0xae, 0xee, 0xeb, 0x08,
+ 0x2c, 0xb4, 0xca, 0xab, 0xf5, 0xae, 0xab, 0x0a, 0x2b, 0xb4, 0xea, 0xab, 0x55, 0xfa, 0xbe, 0xa8, 0x2b, 0xb4, 0xca, 0xa3, 0xfe, 0xfa, 0xba, 0x2b, 0xad, 0xc4, 0x04, 0x6a, 0xaa, 0xaa, 0x4a, 0x42,
+ 0x2b, 0xb4, 0x4a, 0x93, 0xaa, 0x08, 0x29, 0x09, 0x4c, 0xb4, 0xea, 0xab, 0x55, 0xc2, 0x7a, 0x5e, 0x2b, 0xb4, 0x89, 0x9b, 0xa8, 0xa8, 0x7a, 0x5e, 0xeb, 0xa3, 0x28, 0x93, 0xb6, 0xaa, 0xab, 0x0a,
+ 0x2b, 0xac, 0x69, 0x9b, 0xf7, 0x7e, 0xff, 0x8a, 0xee, 0xc4, 0x48, 0x93, 0x55, 0x75, 0x7d, 0xcf, 0x2c, 0xac, 0x08, 0x8b, 0x57, 0x77, 0xff, 0x2a, 0xeb, 0xa3, 0xe8, 0x82, 0xff, 0xad, 0x0b, 0x00,
+ 0xca, 0xa3, 0xe8, 0x82, 0xfd, 0x82, 0x82, 0x00, 0xcb, 0xa3, 0x08, 0x8b, 0x7f, 0x7a, 0xaa, 0xa0, 0xca, 0xa3, 0xa7, 0x7a, 0xe7, 0xaa, 0xaa, 0x00, 0xca, 0xa3, 0x08, 0x8b, 0xde, 0x3e, 0xae, 0xa0,
+ 0xeb, 0xa3, 0x49, 0x93, 0x55, 0xe7, 0x0a, 0x00, 0x6d, 0xb4, 0xc7, 0x82, 0x97, 0x3e, 0xaa, 0xaa, 0x0b, 0xa4, 0x08, 0x8b, 0xaa, 0xee, 0xda, 0x22, 0xcb, 0xa3, 0x29, 0x8b, 0x7a, 0xfe, 0x2f, 0x28,
+ 0x0b, 0xac, 0x09, 0x83, 0xb5, 0xaa, 0xa3, 0x00, 0x0b, 0xac, 0x8a, 0x9b, 0xfd, 0xaa, 0xa8, 0xe0, 0x4c, 0xb4, 0x8a, 0x9b, 0x5f, 0xbf, 0x0a, 0x2d, 0x4c, 0xb4, 0xaa, 0x9b, 0xbd, 0xa2, 0xaa, 0x88,
+ 0x2c, 0xb4, 0xea, 0xa3, 0xad, 0x8b, 0xef, 0x7a, 0xee, 0xbc, 0xca, 0xa3, 0x7f, 0x5f, 0x55, 0x3f, 0x4c, 0xb4, 0xcb, 0xa3, 0xd5, 0xff, 0xaf, 0xe0, 0x2c, 0xac, 0xea, 0xa3, 0xe4, 0xe8, 0x8e, 0xa8,
+ 0x8d, 0xb4, 0xea, 0xa3, 0xf7, 0x5c, 0xeb, 0xca, 0x2c, 0xb4, 0xea, 0xa3, 0xff, 0xfe, 0xea, 0xfb, 0x4c, 0xb4, 0xea, 0xa3, 0xff, 0xbf, 0xbf, 0x2d, 0x2b, 0xac, 0xca, 0xa3, 0x32, 0xf8, 0xee, 0x5e,
+ 0x6c, 0xb4, 0xca, 0xa3, 0xf2, 0x5d, 0xdd, 0xbd, 0x4c, 0xb4, 0xca, 0xa3, 0xff, 0xfd, 0x7f, 0x5c, 0x2b, 0xac, 0x8a, 0x9b, 0xea, 0xaa, 0x0d, 0xaa, 0x4c, 0xb4, 0xca, 0xa3, 0xf2, 0x6b, 0x7b, 0x7e,
+ 0x0b, 0xac, 0xaa, 0xa3, 0x8a, 0xd3, 0xbf, 0x82, 0x0b, 0xac, 0xca, 0xa3, 0x78, 0xa7, 0xbb, 0xc6, 0x2b, 0xac, 0xaa, 0xa3, 0xaf, 0xaa, 0xb8, 0x9d, 0x2b, 0xac, 0xaa, 0xa3, 0x25, 0xbb, 0xe8, 0xea,
+ 0x2b, 0xac, 0xca, 0xa3, 0xec, 0x6a, 0x7d, 0xed, 0x0b, 0xac, 0xca, 0xa3, 0xfc, 0x6a, 0x7d, 0x25, 0x0b, 0xac, 0xaa, 0xa3, 0xa2, 0xab, 0xea, 0xb4, 0x0b, 0xac, 0x69, 0x9b, 0xa0, 0xa8, 0xa5, 0x2a,
+ 0x2c, 0xb4, 0xa9, 0x9b, 0xf2, 0x73, 0xff, 0xde, 0xeb, 0xa3, 0x89, 0x9b, 0xdf, 0xaa, 0xe2, 0x3a, 0x0b, 0xac, 0x49, 0x9b, 0xf9, 0xe3, 0xab, 0xa0, 0x0b, 0xac, 0xaa, 0x9b, 0x55, 0x5d, 0xab, 0x23,
+ 0x4b, 0xb4, 0x89, 0x9b, 0x7b, 0x7d, 0xff, 0xf8, 0xea, 0xa3, 0xe7, 0x8a, 0x2a, 0x00, 0x00, 0x70, 0xea, 0xab, 0xe8, 0x8a, 0x8a, 0xaa, 0xaa, 0x09, 0x2b, 0xac, 0x8a, 0x9b, 0xbf, 0xaf, 0x29, 0x82,
+ 0x0b, 0xac, 0x28, 0x93, 0xe8, 0xe8, 0xa8, 0xb5, 0x0b, 0xac, 0xe8, 0x8a, 0x82, 0xa2, 0x80, 0x7e, 0x2b, 0xb4, 0x89, 0x9b, 0xaa, 0x2a, 0x02, 0x72, 0x4c, 0xb4, 0x69, 0x9b, 0xa8, 0x80, 0xa8, 0xf7,
+ 0x4c, 0xb4, 0x28, 0x93, 0x00, 0x00, 0xde, 0xeb, 0x4c, 0xb4, 0xa6, 0x82, 0x10, 0xa0, 0x0a, 0x02, 0x6c, 0xbc, 0xea, 0xab, 0xaf, 0xea, 0xa4, 0x8f, 0x6c, 0xbc, 0xeb, 0xab, 0xed, 0x8f, 0x8a, 0xa0,
+ 0xcd, 0xcc, 0xc4, 0x69, 0x6a, 0x52, 0xf8, 0xfa, 0x0b, 0xac, 0xa7, 0x82, 0xfd, 0xad, 0x2b, 0x0a, 0x4c, 0xb4, 0xaa, 0x9b, 0xf5, 0xae, 0xaa, 0x0a, 0x4c, 0xbc, 0x0b, 0xac, 0xbf, 0xbe, 0xee, 0xaa,
+ 0xee, 0xcc, 0x04, 0x72, 0x2a, 0xaa, 0x4a, 0x4a, 0x0b, 0xac, 0xe3, 0x69, 0x2f, 0x29, 0x2a, 0x0a, 0x8d, 0xc4, 0xeb, 0xa3, 0xad, 0xbf, 0x2b, 0x2b, 0xce, 0xc4, 0x28, 0x93, 0xd2, 0xfc, 0xb6, 0xaf,
+ 0x4c, 0xb4, 0x6a, 0x93, 0x29, 0x02, 0x88, 0x00, 0x4c, 0xbc, 0x0b, 0xac, 0xaa, 0xaa, 0x9e, 0x8f, 0x6c, 0xbc, 0x2b, 0xb4, 0xb9, 0xaa, 0xff, 0xeb, 0xad, 0xc4, 0x42, 0x59, 0x00, 0x00, 0x00, 0x60,
+ 0x8c, 0xc4, 0xc2, 0x38, 0x00, 0x00, 0x00, 0x55, 0xab, 0xc4, 0xe2, 0x30, 0x00, 0x00, 0x5e, 0x55, 0xaa, 0xc4, 0x03, 0x31, 0x00, 0x78, 0x55, 0x55, 0xaa, 0xcc, 0x03, 0x31, 0x78, 0x55, 0x55, 0x55,
+ 0xa6, 0x41, 0x04, 0x31, 0xad, 0x8d, 0xdd, 0x2b, 0x65, 0x41, 0x03, 0x21, 0x57, 0xbe, 0x5e, 0xe2, 0x44, 0x29, 0xc3, 0x20, 0x56, 0x5a, 0xfa, 0xe2, 0x44, 0x29, 0xc3, 0x20, 0xa9, 0xfd, 0xaa, 0x00,
+ 0x44, 0x31, 0xc3, 0x20, 0x72, 0xeb, 0xfb, 0x78, 0x04, 0x29, 0xc3, 0x10, 0x8a, 0xbf, 0xb6, 0xbf, 0x24, 0x21, 0xa3, 0x18, 0x7f, 0xff, 0x7b, 0x8a, 0xe4, 0x20, 0xa2, 0x10, 0xb6, 0xfa, 0xf2, 0x60,
+ 0x04, 0x21, 0xa2, 0x10, 0xef, 0xef, 0xff, 0xbf, 0x24, 0x29, 0xa3, 0x10, 0xff, 0xff, 0xaa, 0x2d, 0x24, 0x31, 0xa3, 0x18, 0x3f, 0x2d, 0xa0, 0xaa, 0x24, 0x29, 0xa3, 0x18, 0xee, 0xf2, 0x60, 0xf7,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xaf, 0x0b, 0xaf, 0xb2, 0x4c, 0xbc, 0x0b, 0xac, 0xa0, 0xbf, 0xaf, 0xbf, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0xcf, 0x5a, 0xef, 0x4c, 0xbc, 0x2b, 0xac, 0xa2, 0xad, 0xbf, 0xaa,
+ 0x4c, 0xbc, 0x0b, 0xac, 0x88, 0x2e, 0x0a, 0x68, 0x6c, 0xbc, 0x0b, 0xac, 0xd7, 0xe8, 0xba, 0xbf, 0x6c, 0xbc, 0xcb, 0xa3, 0x82, 0xa8, 0x7a, 0xaa, 0xcc, 0xc4, 0x0b, 0xac, 0xef, 0xff, 0x2d, 0x77,
+ 0x8c, 0xbc, 0x2b, 0xac, 0x0d, 0x82, 0xea, 0xb5, 0xad, 0xc4, 0x2b, 0xb4, 0xf2, 0xfd, 0xf7, 0x5f, 0x8c, 0xbc, 0x2b, 0xb4, 0xcb, 0xfa, 0x57, 0xbb, 0x8c, 0xbc, 0x2b, 0xb4, 0xff, 0x5f, 0xad, 0x02,
+ 0x6d, 0xbc, 0x2b, 0xb4, 0xbf, 0x2f, 0xae, 0xb6, 0x6c, 0xbc, 0x4b, 0xb4, 0x88, 0xba, 0xba, 0x5d, 0x6c, 0xbc, 0x2b, 0xb4, 0xca, 0xab, 0xda, 0xda, 0x6c, 0xbc, 0xeb, 0xab, 0xa8, 0xa9, 0x8a, 0x0a,
+ 0x4c, 0xbc, 0x2b, 0xac, 0xba, 0xf2, 0xab, 0xf8, 0x4c, 0xbc, 0x2b, 0xb4, 0xee, 0x7f, 0x73, 0xe2, 0x6c, 0xbc, 0x2b, 0xb4, 0xab, 0xf9, 0xf9, 0xa3, 0x6c, 0xbc, 0xca, 0xab, 0x28, 0xa2, 0xb7, 0x00,
+ 0x4c, 0xbc, 0x0b, 0xac, 0x2a, 0x00, 0x88, 0x78, 0x6c, 0xbc, 0xca, 0xa3, 0xaa, 0xa2, 0xaa, 0xa9, 0x8c, 0xbc, 0x0b, 0xac, 0xef, 0xfb, 0xdd, 0xef, 0x6c, 0xbc, 0x0b, 0xb4, 0x27, 0xaf, 0xeb, 0xbf,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xfe, 0xbe, 0x72, 0xde, 0x6b, 0xbc, 0x2c, 0xb4, 0xbf, 0x7a, 0x57, 0xbd, 0x4c, 0xbc, 0x0b, 0xac, 0xea, 0xba, 0xca, 0xfa, 0x6c, 0xbc, 0x2b, 0xac, 0xab, 0xee, 0xef, 0xfd,
+ 0x4c, 0xbc, 0x0b, 0xb4, 0xca, 0x62, 0xbe, 0xe2, 0x6c, 0xbc, 0x2b, 0xb4, 0x7d, 0xf7, 0xfd, 0xf0, 0x6c, 0xb4, 0x0b, 0xac, 0xff, 0xf2, 0xbe, 0xb7, 0x4c, 0xbc, 0x2b, 0xac, 0xef, 0xbe, 0xea, 0xae,
+ 0x6c, 0xbc, 0x0a, 0xb4, 0xf7, 0x8e, 0xef, 0xbf, 0x6c, 0xbc, 0x0a, 0xb4, 0xba, 0x9e, 0x9f, 0x3f, 0x6c, 0xbc, 0x0b, 0xb4, 0x2e, 0x7f, 0xbf, 0xbe, 0x2c, 0xbc, 0x0b, 0xac, 0xbe, 0xfa, 0xea, 0xfa,
+ 0x2c, 0xbc, 0xea, 0xab, 0x9e, 0xaf, 0xaf, 0xeb, 0x6c, 0xbc, 0x0a, 0xac, 0xfb, 0xbf, 0x16, 0x7e, 0x4c, 0xb4, 0x0b, 0xac, 0xab, 0x20, 0x3e, 0x27, 0x4c, 0xb4, 0xc6, 0x8a, 0x60, 0x00, 0xa0, 0x00,
+ 0x4b, 0xb4, 0x8a, 0xa3, 0xad, 0xab, 0x28, 0xaa, 0x2b, 0xb4, 0x8a, 0x9b, 0x29, 0x00, 0xa0, 0x00, 0x4c, 0xb4, 0x0b, 0xac, 0xc1, 0x23, 0xf1, 0xb2, 0x4c, 0xb4, 0xca, 0xab, 0x88, 0xa8, 0xeb, 0xdb,
+ 0x6c, 0xb4, 0xea, 0xab, 0x1f, 0xff, 0x75, 0xde, 0x2b, 0xb4, 0xaa, 0xa3, 0xcc, 0xa6, 0xea, 0xf0, 0x2b, 0xac, 0x8a, 0xa3, 0x2d, 0xa0, 0xae, 0x8a, 0x4b, 0xb4, 0xaa, 0x9b, 0xfd, 0xa8, 0xaf, 0xfa,
+ 0x2b, 0xac, 0xca, 0xa3, 0xee, 0xfe, 0xf4, 0xa9, 0x2b, 0xac, 0xca, 0xa3, 0xdf, 0xfb, 0x2e, 0x5f, 0x6c, 0xb4, 0xca, 0xa3, 0xff, 0xf7, 0xf4, 0x7d, 0x2b, 0xac, 0xca, 0xa3, 0xff, 0xff, 0xa7, 0xf8,
+ 0xeb, 0xab, 0xaa, 0xa3, 0x5e, 0x57, 0x1c, 0x5e, 0x0b, 0xac, 0x8a, 0x9b, 0xff, 0xbf, 0x8d, 0x8b, 0x6c, 0xb4, 0xca, 0xa3, 0x75, 0x7b, 0xfc, 0xed, 0x2b, 0xb4, 0xaa, 0x9b, 0xf5, 0xab, 0x36, 0x0a,
+ 0x2b, 0xac, 0xaa, 0x9b, 0x37, 0x8b, 0x0b, 0xba, 0x6d, 0xb4, 0xca, 0xa3, 0x37, 0xff, 0xea, 0xff, 0x0f, 0xc5, 0xca, 0xa3, 0x73, 0x7f, 0x7f, 0xd5, 0x2c, 0xb4, 0xca, 0x9b, 0x2b, 0x09, 0xac, 0xde,
+ 0x2b, 0xac, 0xca, 0xa3, 0xac, 0xee, 0xd7, 0x7c, 0x4c, 0xb4, 0xaa, 0x9b, 0xfe, 0xff, 0xfc, 0xbd, 0x4c, 0xb4, 0xcb, 0xa3, 0x8d, 0xf2, 0xa3, 0x22, 0x2c, 0xac, 0xeb, 0xa3, 0x80, 0x7e, 0x83, 0x21,
+ 0x2c, 0xb4, 0xeb, 0xab, 0xdd, 0xcb, 0x5f, 0xfb, 0x4c, 0xb4, 0xea, 0xa3, 0xbf, 0xed, 0xa3, 0xef, 0x6c, 0xb4, 0xcb, 0xab, 0xea, 0xd8, 0x78, 0xbf, 0x6c, 0xb4, 0xea, 0xab, 0x5f, 0x7f, 0x57, 0x73,
+ 0x2c, 0xac, 0xca, 0xa3, 0x8a, 0x6d, 0xfb, 0x6b, 0x0b, 0xac, 0xca, 0xa3, 0x82, 0xba, 0xa6, 0x99, 0x4c, 0xb4, 0xaa, 0x9b, 0xb2, 0xde, 0xb7, 0xbf, 0x0b, 0xac, 0xca, 0xa3, 0xcf, 0xcb, 0x7a, 0x8a,
+ 0x0c, 0xac, 0xca, 0xa3, 0xfa, 0x97, 0xff, 0xe2, 0x4c, 0xac, 0xca, 0xa3, 0xd5, 0x5f, 0xb7, 0x58, 0x4c, 0xac, 0xca, 0xa3, 0x8d, 0xfb, 0xcb, 0xf7, 0x2b, 0xac, 0x48, 0x93, 0xaa, 0xaa, 0x00, 0xd7,
+ 0x4b, 0xb4, 0xc7, 0x82, 0xaa, 0x22, 0x6a, 0xaa, 0x6b, 0xb4, 0x67, 0x72, 0xaa, 0xa8, 0xad, 0xaa, 0x0a, 0xac, 0xe5, 0x71, 0x00, 0x00, 0x80, 0x5e, 0xea, 0xab, 0x06, 0x6a, 0x00, 0x00, 0xd6, 0xa9,
+ 0xea, 0xab, 0x26, 0x62, 0x00, 0xa0, 0xd5, 0x02, 0x2a, 0xac, 0x08, 0x8b, 0xaa, 0xb7, 0xaf, 0x4b, 0x2b, 0xac, 0xc8, 0x82, 0x0a, 0xa0, 0xde, 0xab, 0x2a, 0xac, 0x28, 0x93, 0xaa, 0xd7, 0xbf, 0x02,
+ 0xeb, 0xa3, 0xc5, 0x82, 0x20, 0xf0, 0x0a, 0x58, 0x0b, 0xac, 0x86, 0x82, 0x08, 0xaa, 0xea, 0xdd, 0xea, 0xab, 0x26, 0x8b, 0x08, 0xfa, 0xff, 0x6a, 0x2a, 0xac, 0x20, 0x59, 0xa8, 0xaa, 0x02, 0x5f,
+ 0xca, 0xa3, 0xa3, 0x61, 0x00, 0x0a, 0xc8, 0x7d, 0xe9, 0xa3, 0xe1, 0x50, 0x00, 0xa0, 0x55, 0x57, 0x6a, 0xb4, 0x42, 0x59, 0x82, 0x9f, 0xb5, 0xf5, 0xea, 0xab, 0xc6, 0x8a, 0x28, 0x29, 0x03, 0xc9,
+ 0x6b, 0xbc, 0xe1, 0x48, 0x8a, 0xaa, 0x80, 0x57, 0x6b, 0xbc, 0x41, 0x59, 0x2a, 0x00, 0xf7, 0xd5, 0x0a, 0xac, 0xe2, 0x69, 0x00, 0xa0, 0xea, 0x7a, 0x2a, 0xb4, 0xe4, 0x71, 0x00, 0xb9, 0xaa, 0xb7,
+ 0x2b, 0xb4, 0xa7, 0x82, 0xc2, 0xda, 0xaa, 0xaa, 0xad, 0xc4, 0x63, 0x7a, 0xaa, 0x2a, 0x0a, 0x7b, 0xad, 0xc4, 0x85, 0x82, 0xaa, 0xaa, 0x0a, 0xb7, 0x8d, 0xc4, 0xca, 0xab, 0x2a, 0xe8, 0xe0, 0x9f,
+ 0x4c, 0xbc, 0x86, 0x7a, 0x9a, 0xaa, 0xa8, 0x00, 0x2b, 0xb4, 0xc9, 0xa3, 0x2b, 0xad, 0xea, 0xa0, 0x4b, 0xbc, 0xca, 0xab, 0x88, 0xab, 0xb9, 0xfd, 0x4c, 0xb4, 0x68, 0x9b, 0x80, 0xbd, 0xab, 0x8a,
+ 0xee, 0xcc, 0x45, 0x72, 0xd2, 0xde, 0xbe, 0xbe, 0x4b, 0xbc, 0x6a, 0x93, 0xa9, 0xaf, 0x2a, 0x0a, 0x8d, 0xc4, 0xc6, 0x8a, 0x82, 0x42, 0xa8, 0xaa, 0x8c, 0xbc, 0x88, 0xa3, 0xad, 0x0a, 0x8a, 0xbd,
+ 0x6c, 0xbc, 0xc9, 0xab, 0xaa, 0xaa, 0x28, 0xa9, 0x6d, 0xbc, 0x2a, 0xb4, 0xab, 0x2a, 0x02, 0x85, 0xad, 0xc4, 0x4c, 0xb4, 0xfd, 0xee, 0x3f, 0xbb, 0x6c, 0xc4, 0xe3, 0x30, 0x70, 0x5c, 0x56, 0x55,
+ 0x65, 0x41, 0xc3, 0x18, 0x70, 0x7a, 0xee, 0xef, 0x44, 0x29, 0xc3, 0x18, 0x2f, 0xaf, 0xdf, 0xff, 0x45, 0x39, 0xc3, 0x18, 0xe0, 0xfe, 0xde, 0x5f, 0x24, 0x31, 0xa3, 0x18, 0x82, 0xf2, 0xff, 0xdf,
+ 0xe6, 0x49, 0xa3, 0x18, 0x0b, 0xff, 0xff, 0xf5, 0x85, 0x41, 0x04, 0x29, 0x8a, 0x9e, 0x7b, 0x7a, 0xa5, 0x41, 0xe4, 0x20, 0xf7, 0xdc, 0xaf, 0x8b, 0x45, 0x31, 0xe4, 0x20, 0x7b, 0xdf, 0xe8, 0x82,
+ 0xe4, 0x20, 0xc3, 0x18, 0xe2, 0xde, 0x76, 0x38, 0x45, 0x29, 0xe3, 0x20, 0xb5, 0xd5, 0xdd, 0x2d, 0x65, 0x39, 0xe3, 0x20, 0x8f, 0xeb, 0xba, 0x56, 0x04, 0x31, 0xc3, 0x18, 0xd8, 0xa8, 0xa8, 0x7f,
+ 0x04, 0x21, 0xc3, 0x18, 0x66, 0xa8, 0x00, 0xe2, 0x24, 0x21, 0xa3, 0x10, 0xdd, 0x7f, 0x7a, 0xe2, 0xe4, 0x20, 0xa3, 0x18, 0x89, 0x89, 0xfe, 0x2a, 0x04, 0x21, 0xc3, 0x18, 0xbd, 0xfe, 0xff, 0x2a,
+ 0x4c, 0xbc, 0xca, 0xa3, 0xab, 0x2a, 0xae, 0x5f, 0x8c, 0xbc, 0x0b, 0xb4, 0xfb, 0xff, 0xff, 0xcd, 0x6c, 0xbc, 0x2b, 0xb4, 0xee, 0x7f, 0x6c, 0x55, 0x6c, 0xbc, 0x0b, 0xac, 0xaf, 0x16, 0x8b, 0xba,
+ 0x6c, 0xbc, 0xeb, 0xab, 0x7a, 0xaa, 0x0a, 0xba, 0x6c, 0xbc, 0x0b, 0xac, 0x08, 0xaa, 0xef, 0x5f, 0x6c, 0xbc, 0xeb, 0xab, 0xe8, 0x9b, 0xf7, 0xff, 0x4c, 0xb4, 0xca, 0xa3, 0xab, 0xfd, 0x7f, 0x3b,
+ 0x4c, 0xb4, 0xeb, 0xab, 0xbf, 0xa8, 0x0e, 0xb6, 0x4c, 0xb4, 0xea, 0xab, 0xe8, 0x2d, 0xe8, 0xaf, 0x6c, 0xbc, 0x0b, 0xb4, 0x2f, 0xfb, 0xd5, 0xbf, 0xac, 0xc4, 0x0b, 0xac, 0xa8, 0x5f, 0x7f, 0xbf,
+ 0x6d, 0xbc, 0x4b, 0xb4, 0x9e, 0xf9, 0x69, 0x7d, 0x8c, 0xbc, 0x0b, 0xb4, 0xb8, 0xaa, 0xd7, 0x2f, 0x8c, 0xbc, 0x0b, 0xb4, 0xfa, 0xde, 0x7a, 0xb8, 0x4c, 0xbc, 0x0b, 0xb4, 0x0b, 0x8a, 0xab, 0x07,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0xbf, 0xaa, 0xaa, 0x78, 0x4c, 0xbc, 0xeb, 0xa3, 0x28, 0x0a, 0x2f, 0x77, 0x6c, 0xbc, 0x0b, 0xac, 0xa0, 0xb8, 0xaa, 0xf9, 0x6c, 0xbc, 0xeb, 0xab, 0xa0, 0xea, 0xaa, 0x6a,
+ 0x2b, 0xb4, 0xea, 0xab, 0x00, 0x00, 0x00, 0x7a, 0x4c, 0xbc, 0xea, 0xab, 0xab, 0x80, 0x0a, 0x7f, 0x4c, 0xbc, 0xea, 0xab, 0x02, 0x2b, 0x28, 0x07, 0x4c, 0xbc, 0xe7, 0x82, 0x70, 0x00, 0x00, 0x28,
+ 0x4c, 0xbc, 0xeb, 0xa3, 0xbd, 0xb8, 0xaa, 0x8a, 0x4c, 0xb4, 0x0b, 0xac, 0x2e, 0x60, 0x80, 0xab, 0x6c, 0xbc, 0x0b, 0xac, 0xb7, 0xed, 0xaf, 0x7c, 0x8c, 0xbc, 0x2b, 0xb4, 0x9f, 0xcd, 0xf7, 0x5d,
+ 0x6c, 0xbc, 0x0b, 0xb4, 0x2a, 0xab, 0x2a, 0x7b, 0x4c, 0xbc, 0x0b, 0xac, 0xa0, 0xee, 0xb2, 0xb7, 0x4c, 0xbc, 0x2b, 0xb4, 0x77, 0xe3, 0x74, 0xdf, 0x4c, 0xbc, 0x0b, 0xac, 0xf8, 0xaa, 0x9b, 0xdb,
+ 0x4c, 0xbc, 0x2b, 0xb4, 0xe5, 0x78, 0x2f, 0xe5, 0x6c, 0xbc, 0x0a, 0xb4, 0xbf, 0xbc, 0x85, 0xea, 0x4c, 0xb4, 0xeb, 0xab, 0xb8, 0x00, 0xa6, 0x2a, 0x6d, 0xbc, 0x0b, 0xac, 0x3e, 0xff, 0x97, 0x7f,
+ 0xce, 0xc4, 0x0b, 0xac, 0xff, 0xf2, 0xdd, 0x5f, 0x4c, 0xb4, 0xca, 0xab, 0x28, 0x00, 0x76, 0xef, 0x4c, 0xbc, 0x0b, 0xac, 0xab, 0xae, 0x0f, 0xff, 0x2b, 0xb4, 0x89, 0xa3, 0x00, 0x80, 0x26, 0x00,
+ 0x4b, 0xb4, 0xca, 0xa3, 0x4a, 0x0b, 0xaa, 0xc2, 0x6c, 0xbc, 0xca, 0xab, 0xba, 0xe2, 0xd7, 0xf7, 0x2b, 0xb4, 0xaa, 0xa3, 0x22, 0xba, 0xad, 0xaf, 0x4b, 0xb4, 0xaa, 0xa3, 0xa2, 0xa8, 0xdf, 0xde,
+ 0x4b, 0xb4, 0xca, 0xa3, 0xaa, 0x2a, 0xd5, 0xfb, 0x6c, 0xbc, 0xca, 0xa3, 0xf7, 0xe0, 0x6f, 0xfb, 0x8d, 0xbc, 0xaa, 0xa3, 0xeb, 0xcb, 0xdf, 0x7f, 0x2b, 0xac, 0xaa, 0xa3, 0xe8, 0xd6, 0xff, 0xa9,
+ 0x2b, 0xac, 0x8a, 0x9b, 0xf2, 0xd7, 0xbf, 0xaf, 0x4c, 0xac, 0xcb, 0xa3, 0xed, 0xff, 0x82, 0x2a, 0x2b, 0xac, 0xca, 0xa3, 0xab, 0xf7, 0x8a, 0x98, 0x6c, 0xb4, 0x8a, 0x9b, 0x8a, 0xff, 0xfd, 0xdf,
+ 0x2b, 0xac, 0x8a, 0x9b, 0x97, 0xab, 0x82, 0x0a, 0xce, 0xbc, 0xca, 0xa3, 0x57, 0x55, 0x3d, 0xf7, 0x4c, 0xac, 0xcb, 0xa3, 0xef, 0xad, 0x3c, 0xb6, 0x6c, 0xb4, 0xeb, 0xab, 0x75, 0xa2, 0xba, 0x0b,
+ 0x4c, 0xb4, 0xaa, 0xa3, 0xff, 0x80, 0xe9, 0x00, 0x6c, 0xb4, 0xcb, 0xa3, 0xfe, 0x27, 0x8b, 0xea, 0x6c, 0xb4, 0x8a, 0x9b, 0xaa, 0x82, 0xfa, 0xf7, 0x2b, 0xa4, 0x08, 0x8b, 0xa0, 0xb6, 0xaf, 0xba,
+ 0x2b, 0xac, 0xa9, 0x9b, 0xf9, 0xab, 0x2d, 0x5d, 0x4c, 0xb4, 0x89, 0x93, 0x2f, 0x82, 0xaa, 0xdf, 0x4c, 0xb4, 0xcb, 0xa3, 0xfa, 0x5c, 0xae, 0x88, 0x4c, 0xb4, 0xea, 0xa3, 0x02, 0xb9, 0x6f, 0x7b,
+ 0x6c, 0xb4, 0x49, 0x93, 0xbe, 0x82, 0x7a, 0x3a, 0x6d, 0xb4, 0x68, 0x93, 0xa2, 0xba, 0xf5, 0x7e, 0x2b, 0xac, 0x07, 0x8b, 0x02, 0xfa, 0xdd, 0xe5, 0x4b, 0xac, 0x86, 0x7a, 0xae, 0xfa, 0x2a, 0x6a,
+ 0x2c, 0xac, 0xe8, 0x8a, 0x0a, 0x8f, 0xe8, 0xdd, 0x4b, 0xb4, 0x08, 0x8b, 0x82, 0x2a, 0xdd, 0xe3, 0x0b, 0xac, 0x65, 0x7a, 0xaa, 0xa0, 0x2a, 0x5a, 0x2b, 0xac, 0xe7, 0x8a, 0x02, 0xb6, 0xaa, 0xfd,
+ 0x2b, 0xac, 0xe7, 0x92, 0x58, 0xaf, 0x82, 0x7f, 0x2a, 0xac, 0xa7, 0x82, 0xfb, 0xaa, 0x02, 0x7e, 0x0a, 0xac, 0xc9, 0x82, 0xfa, 0x80, 0x82, 0xf5, 0xca, 0xa3, 0x65, 0x7a, 0x2a, 0xe2, 0x5a, 0xfe,
+ 0x2a, 0xac, 0x46, 0x72, 0xe0, 0xbf, 0x5d, 0xab, 0x4b, 0xac, 0xc4, 0x61, 0xff, 0xfa, 0xf5, 0x0a, 0x2c, 0xac, 0x05, 0x6a, 0x2b, 0x56, 0xb5, 0xa8, 0xeb, 0xa3, 0x02, 0x59, 0x00, 0x57, 0x02, 0x00,
+ 0x2a, 0xac, 0x03, 0x51, 0x00, 0x55, 0x00, 0xaa, 0x4b, 0xac, 0x22, 0x51, 0xba, 0x57, 0x00, 0xaa, 0x8a, 0xbc, 0x23, 0x51, 0x00, 0x55, 0x80, 0x5f, 0x2a, 0xac, 0xe2, 0x40, 0x60, 0x8b, 0x7f, 0x55,
+ 0xa9, 0x9b, 0xc2, 0x38, 0x2d, 0xfe, 0xd5, 0x75, 0x88, 0xa3, 0x23, 0x49, 0xc0, 0x55, 0x55, 0x55, 0x83, 0x59, 0x02, 0x41, 0x0c, 0xee, 0xcb, 0x9a, 0x85, 0x7a, 0x03, 0x49, 0xd7, 0x3f, 0xd5, 0xff,
+ 0x24, 0x72, 0x23, 0x59, 0xa0, 0xea, 0x75, 0x2b, 0x66, 0x7a, 0x63, 0x59, 0xf8, 0x55, 0x5f, 0x7f, 0x25, 0x72, 0x42, 0x51, 0xf7, 0x37, 0xbf, 0x3f, 0x68, 0x93, 0xe4, 0x71, 0x5b, 0xaa, 0x8b, 0x02,
+ 0x69, 0x9b, 0x23, 0x59, 0x5f, 0xfa, 0xe0, 0x00, 0x48, 0x93, 0x23, 0x51, 0xbd, 0x2f, 0x0a, 0x00, 0x27, 0x93, 0x25, 0x72, 0xdf, 0xa2, 0x00, 0x00, 0x89, 0xa3, 0x07, 0x8b, 0x27, 0xbb, 0xed, 0xea,
+ 0x0a, 0xb4, 0x28, 0x93, 0x8f, 0x8f, 0xad, 0xa9, 0xea, 0xab, 0xe8, 0x92, 0x48, 0xa0, 0xa0, 0x00, 0x8d, 0xbc, 0x24, 0x72, 0xaf, 0x0a, 0x6a, 0x2a, 0xab, 0xc4, 0x62, 0x59, 0xaa, 0x88, 0xfb, 0xd7,
+ 0x4b, 0xbc, 0xc5, 0x8a, 0x0a, 0x02, 0x00, 0x9a, 0x4b, 0xbc, 0x29, 0x8b, 0xa2, 0xde, 0xa2, 0x2a, 0x2b, 0xb4, 0xa8, 0xa3, 0x29, 0xab, 0x0a, 0xab, 0x8c, 0xc4, 0xca, 0xa3, 0xf7, 0xaf, 0xaf, 0x8b,
+ 0xc9, 0xa3, 0xa2, 0x69, 0x2a, 0x29, 0x0b, 0xab, 0x8d, 0xc4, 0x48, 0x9b, 0xbf, 0x2a, 0xaa, 0x6b, 0x4c, 0xbc, 0xaa, 0xa3, 0x3b, 0xed, 0x03, 0xa2, 0x6d, 0xbc, 0x20, 0x59, 0xc2, 0xe0, 0xd0, 0xb0,
+ 0x4c, 0xbc, 0x48, 0x9b, 0xfd, 0xfd, 0xbe, 0x2e, 0x6c, 0xbc, 0xea, 0xab, 0x77, 0xff, 0xea, 0xa8, 0x8d, 0xc4, 0x02, 0x41, 0xca, 0x4a, 0x4a, 0x42, 0x24, 0x39, 0xc3, 0x20, 0xf8, 0xaf, 0x7e, 0xea,
+ 0x24, 0x29, 0xc3, 0x20, 0xaa, 0xd4, 0xf5, 0xfc, 0x45, 0x29, 0xe3, 0x20, 0xaf, 0xff, 0xa7, 0x25, 0x25, 0x29, 0xc3, 0x18, 0x5e, 0x76, 0x76, 0x70, 0x04, 0x21, 0xa3, 0x18, 0xfe, 0xfe, 0xb7, 0x2a,
+ 0x24, 0x31, 0xc3, 0x18, 0x35, 0x35, 0xb7, 0xff, 0xc7, 0x49, 0xe3, 0x20, 0xe2, 0xea, 0xff, 0x55, 0x45, 0x31, 0xa3, 0x20, 0x8a, 0xfe, 0xdf, 0x28, 0x45, 0x29, 0xc3, 0x18, 0xf7, 0xbd, 0xbd, 0x00,
+ 0x45, 0x31, 0xc3, 0x18, 0xdf, 0xfe, 0xfe, 0x78, 0x04, 0x29, 0xc3, 0x18, 0xab, 0xbb, 0xb5, 0x29, 0x24, 0x29, 0xc3, 0x18, 0xff, 0xaf, 0xde, 0x68, 0x24, 0x29, 0xc3, 0x20, 0xaf, 0x2e, 0x5f, 0xdd,
+ 0x24, 0x29, 0xe3, 0x20, 0xa5, 0xe2, 0xb5, 0x45, 0x24, 0x31, 0xc3, 0x18, 0x7e, 0x7a, 0x58, 0xff, 0x04, 0x21, 0xc3, 0x18, 0x2f, 0xad, 0x89, 0x2f, 0x24, 0x29, 0xe3, 0x20, 0xba, 0x77, 0x7e, 0xfc,
+ 0x2c, 0xb4, 0xaa, 0xa3, 0xaa, 0xf8, 0x57, 0x8a, 0x0b, 0xac, 0xaa, 0xa3, 0x2b, 0x7a, 0xae, 0x22, 0x2b, 0xb4, 0xca, 0xa3, 0x88, 0x09, 0x2a, 0xea, 0x2c, 0xb4, 0xca, 0xa3, 0x29, 0x82, 0xda, 0xbf,
+ 0x4b, 0xb4, 0xca, 0xa3, 0xa8, 0xbf, 0xb7, 0x3f, 0x4c, 0xb4, 0xca, 0xa3, 0xe2, 0xde, 0x8a, 0x2e, 0x4c, 0xbc, 0xeb, 0xab, 0xff, 0xae, 0xbe, 0x00, 0x4c, 0xbc, 0x0b, 0xac, 0x2b, 0xea, 0xdb, 0xbe,
+ 0x4c, 0xbc, 0xca, 0xab, 0xf8, 0xaa, 0xa7, 0x2e, 0x4b, 0xbc, 0xaa, 0xa3, 0xae, 0x82, 0x5e, 0xae, 0x4c, 0xbc, 0xeb, 0xab, 0x2d, 0x3f, 0x75, 0xaa, 0x6c, 0xbc, 0xca, 0xab, 0xf8, 0xaa, 0xaa, 0x7a,
+ 0x4b, 0xb4, 0x6a, 0xa3, 0x82, 0x02, 0x9e, 0x2a, 0x4c, 0xbc, 0x0b, 0xb4, 0xaf, 0xff, 0x2f, 0x6a, 0x8c, 0xbc, 0x0b, 0xb4, 0xe3, 0xff, 0xed, 0xfd, 0x4b, 0xb4, 0xca, 0xab, 0x08, 0x02, 0xa2, 0xd0,
+ 0x4c, 0xbc, 0xca, 0xab, 0x02, 0xaa, 0x6a, 0xab, 0x2c, 0xb4, 0xca, 0xab, 0x00, 0x00, 0xe9, 0x8a, 0x4b, 0xb4, 0xaa, 0xa3, 0x8a, 0xad, 0xa2, 0x82, 0x4c, 0xbc, 0x8a, 0xa3, 0xba, 0x42, 0x02, 0x28,
+ 0x6c, 0xbc, 0x6a, 0xa3, 0xf8, 0xa9, 0xaa, 0x20, 0x4c, 0xbc, 0xeb, 0xab, 0xdb, 0xad, 0x9c, 0xa8, 0x8c, 0xbc, 0x2b, 0xac, 0x62, 0x5d, 0xaf, 0xa2, 0x4e, 0xcd, 0x0b, 0xac, 0xf7, 0x57, 0xff, 0xe3,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xff, 0xdb, 0xf8, 0xea, 0x8d, 0xbc, 0x0b, 0xb4, 0x85, 0xea, 0xef, 0x57, 0x4c, 0xbc, 0xea, 0xab, 0xf8, 0xca, 0xe2, 0x75, 0x6c, 0xbc, 0x0b, 0xb4, 0xff, 0xed, 0xca, 0x89,
+ 0x6c, 0xbc, 0x0b, 0xac, 0x7e, 0x5f, 0xff, 0x28, 0xce, 0xc4, 0x0b, 0xac, 0xfd, 0xb3, 0xf7, 0xff, 0x8d, 0xbc, 0x0b, 0xac, 0x7f, 0xa3, 0xfe, 0xf7, 0x6c, 0xbc, 0x0b, 0xac, 0xff, 0xaa, 0xb5, 0x96,
+ 0x6c, 0xbc, 0xea, 0xa3, 0xff, 0x77, 0xa8, 0xaa, 0xad, 0xc4, 0x0b, 0xac, 0x7f, 0xbd, 0x3f, 0xef, 0x4c, 0xb4, 0xea, 0xa3, 0xaa, 0xb0, 0x94, 0x00, 0x4c, 0xb4, 0xea, 0xab, 0x65, 0x0b, 0x8b, 0xa8,
+ 0x4c, 0xb4, 0xea, 0xab, 0xbd, 0xae, 0xba, 0x22, 0x4c, 0xb4, 0xeb, 0xab, 0x7f, 0xae, 0x38, 0x80, 0xee, 0xc4, 0xeb, 0xab, 0xfc, 0xff, 0xf5, 0xff, 0x6c, 0xb4, 0x89, 0xa3, 0xfe, 0xf6, 0xaa, 0x82,
+ 0x6c, 0xbc, 0xeb, 0xab, 0xfd, 0xfd, 0xe3, 0x3b, 0x2b, 0xb4, 0xea, 0xab, 0x6d, 0x5e, 0xdb, 0x72, 0x2b, 0xb4, 0xea, 0xab, 0xf9, 0x7f, 0xb8, 0xcb, 0x2c, 0xb4, 0xea, 0xa3, 0xa5, 0xef, 0xaa, 0x03,
+ 0x4b, 0xb4, 0xca, 0xa3, 0x6b, 0xf2, 0xab, 0x3b, 0x0b, 0xb4, 0xca, 0xa3, 0xb8, 0x2a, 0xff, 0xeb, 0x2c, 0xac, 0xaa, 0x9b, 0xef, 0xc0, 0xbc, 0xf7, 0x2b, 0xac, 0x49, 0x93, 0x02, 0xa2, 0x7a, 0xff,
+ 0x2b, 0xac, 0x49, 0x8b, 0x22, 0x2a, 0xdd, 0xaa, 0x2c, 0xac, 0xaa, 0x9b, 0x0a, 0x3f, 0xe1, 0xdf, 0x2c, 0xac, 0x89, 0x9b, 0xa0, 0x0e, 0xaf, 0xdf, 0x2b, 0xac, 0x89, 0x9b, 0x0a, 0x00, 0xab, 0x5f,
+ 0x2b, 0xac, 0x49, 0x93, 0xa8, 0x08, 0x7a, 0xf7, 0x6c, 0xb4, 0x29, 0x93, 0x22, 0xaa, 0xb5, 0xaa, 0x4b, 0xb4, 0xa9, 0x9b, 0xa8, 0x82, 0x7f, 0x5e, 0x2b, 0xac, 0xe7, 0x8a, 0x00, 0x8a, 0xab, 0xdf,
+ 0x2a, 0xb4, 0x08, 0x8b, 0x00, 0xea, 0xba, 0x7f, 0x0a, 0xac, 0x07, 0x8b, 0x08, 0x5f, 0xfa, 0xff, 0x2a, 0xac, 0xc6, 0x69, 0x00, 0xaf, 0x5e, 0xaa, 0x0a, 0xac, 0x47, 0x72, 0xea, 0xaa, 0xd7, 0x0a,
+ 0xc9, 0x9b, 0xe8, 0x8a, 0xaf, 0xc0, 0xf5, 0xea, 0xea, 0xa3, 0x29, 0x8b, 0xbf, 0xff, 0xde, 0x09, 0xad, 0xbc, 0x89, 0x93, 0xcb, 0xad, 0xfd, 0xdf, 0x2a, 0xac, 0xa6, 0x82, 0x80, 0x80, 0xd6, 0xaa,
+ 0xea, 0xa3, 0xe5, 0x8a, 0xa0, 0xea, 0xfe, 0x7b, 0x0a, 0xac, 0x64, 0x7a, 0x00, 0xff, 0xeb, 0xd5, 0xea, 0xab, 0x03, 0x6a, 0x02, 0xaa, 0xfa, 0xd7, 0xa9, 0xa3, 0x24, 0x6a, 0x88, 0xbb, 0xbf, 0x57,
+ 0xca, 0xa3, 0xc3, 0x61, 0xad, 0x0a, 0x7e, 0xff, 0xc9, 0x9b, 0xe3, 0x61, 0xad, 0x22, 0x5a, 0xfa, 0xa9, 0xa3, 0x45, 0x72, 0xaa, 0x08, 0xad, 0xa9, 0xc9, 0xa3, 0x04, 0x72, 0x00, 0x00, 0xef, 0x7f,
+ 0xe9, 0xa3, 0x05, 0x6a, 0xaa, 0xaa, 0x2b, 0x3d, 0xe9, 0xa3, 0xa2, 0x61, 0x00, 0xba, 0xa0, 0xbd, 0xc9, 0xa3, 0x85, 0x7a, 0xa0, 0xae, 0xff, 0xb5, 0xc9, 0xa3, 0xa4, 0x61, 0x22, 0xa8, 0x57, 0x00,
+ 0xc9, 0xa3, 0x65, 0x72, 0x00, 0xba, 0xbd, 0xfe, 0x4a, 0xb4, 0xc5, 0x82, 0x80, 0x7f, 0xdf, 0x5d, 0xe9, 0xab, 0x66, 0x7a, 0xea, 0xe2, 0xde, 0x2a, 0xe9, 0xa3, 0x24, 0x72, 0xbf, 0xab, 0xaa, 0x7c,
+ 0xe9, 0xa3, 0xa4, 0x69, 0xae, 0xea, 0xe0, 0x55, 0x27, 0x8b, 0x43, 0x51, 0xf8, 0x58, 0xfa, 0x7b, 0xc5, 0x59, 0x23, 0x49, 0x7f, 0xeb, 0x7c, 0xfa, 0x43, 0x49, 0xc2, 0x28, 0xaa, 0xe0, 0x7e, 0x88,
+ 0x63, 0x51, 0xa2, 0x28, 0xbf, 0x9f, 0x35, 0x37, 0x84, 0x59, 0x22, 0x51, 0x5f, 0x7d, 0xeb, 0x8b, 0x83, 0x59, 0x22, 0x51, 0xff, 0xa5, 0x7f, 0xab, 0x84, 0x59, 0x42, 0x59, 0xad, 0x25, 0x29, 0xa2,
+ 0x45, 0x7a, 0x83, 0x59, 0xfd, 0x0b, 0x23, 0xf5, 0x05, 0x6a, 0x43, 0x59, 0x7e, 0xf8, 0xa0, 0xab, 0x27, 0x83, 0x64, 0x59, 0xb5, 0xbd, 0x2f, 0xaa, 0x68, 0x9b, 0x66, 0x7a, 0xab, 0x2a, 0xb2, 0xdf,
+ 0x89, 0x9b, 0x07, 0x8b, 0xea, 0xa1, 0xad, 0xeb, 0x89, 0x9b, 0xc7, 0x82, 0xfa, 0xfa, 0xbf, 0x4a, 0xaa, 0x9b, 0xc7, 0x82, 0xdf, 0xbf, 0xbd, 0x03, 0xa9, 0x9b, 0x48, 0x93, 0xd7, 0xb5, 0x3b, 0x80,
+ 0xca, 0xa3, 0x89, 0x93, 0x01, 0xe5, 0x3f, 0x2f, 0xaa, 0xab, 0x89, 0xa3, 0xa2, 0xaa, 0xb5, 0x7d, 0x2b, 0xb4, 0x89, 0xa3, 0xab, 0xbf, 0xaf, 0x3d, 0x4c, 0xb4, 0xa7, 0x82, 0xda, 0xaa, 0xa2, 0xa0,
+ 0x2a, 0xb4, 0xa7, 0x8a, 0x98, 0xa0, 0xa0, 0xa0, 0x0a, 0xb4, 0xe3, 0x71, 0xe8, 0x7a, 0xfe, 0xee, 0x4a, 0xb4, 0x64, 0x82, 0x02, 0x7f, 0xab, 0x5f, 0x4b, 0xb4, 0x21, 0x51, 0x60, 0xbe, 0xae, 0x2b,
+ 0xea, 0xab, 0x42, 0x51, 0x2d, 0x08, 0x00, 0x2c, 0x4c, 0xbc, 0x89, 0xa3, 0xeb, 0x0b, 0x0a, 0x62, 0xcc, 0xc4, 0x01, 0x61, 0x08, 0xe8, 0x5c, 0x54, 0xa9, 0xa3, 0x81, 0x61, 0xb0, 0xbf, 0x39, 0x93,
+ 0x0a, 0xb4, 0xa2, 0x69, 0x02, 0xae, 0xba, 0xb6, 0xea, 0xb3, 0xa5, 0x8a, 0x28, 0x2b, 0xdf, 0xd7, 0x2c, 0xbc, 0x44, 0x41, 0x62, 0x72, 0x70, 0x7a, 0x85, 0x41, 0x24, 0x29, 0x7b, 0xfc, 0xef, 0xeb,
+ 0x45, 0x39, 0xe3, 0x20, 0x5d, 0xfe, 0xfc, 0x8a, 0xa6, 0x41, 0xe3, 0x20, 0x2f, 0xef, 0x55, 0xff, 0xc6, 0x39, 0xc4, 0x20, 0xf0, 0x55, 0xff, 0xff, 0x05, 0x29, 0xe3, 0x20, 0x55, 0x9b, 0x67, 0xda,
+ 0x04, 0x29, 0xc3, 0x18, 0xd7, 0x9f, 0x2c, 0x00, 0x24, 0x29, 0xc3, 0x18, 0xbd, 0xba, 0x27, 0xba, 0x85, 0x39, 0xe4, 0x20, 0xba, 0xf0, 0xe8, 0x5f, 0xa6, 0x39, 0xc3, 0x20, 0xf8, 0xfe, 0xf5, 0x55,
+ 0x25, 0x29, 0xc3, 0x20, 0x94, 0xd7, 0xe9, 0xba, 0x04, 0x31, 0xe3, 0x20, 0x35, 0x57, 0x57, 0x56, 0x24, 0x29, 0xc3, 0x18, 0xf0, 0xfe, 0x5a, 0xff, 0x04, 0x31, 0xa3, 0x20, 0xbf, 0xef, 0x5f, 0x00,
+ 0x24, 0x29, 0xc3, 0x20, 0x62, 0xb5, 0xa5, 0x0e, 0x25, 0x29, 0xe3, 0x20, 0xdd, 0x2b, 0x7a, 0x80, 0x24, 0x31, 0xc3, 0x18, 0x57, 0xe8, 0xff, 0xae, 0x05, 0x31, 0xc3, 0x18, 0xf5, 0x55, 0xbb, 0xa2,
+ 0x4b, 0xbc, 0xea, 0xa3, 0x8a, 0xd7, 0x57, 0xd7, 0x2c, 0xb4, 0xea, 0xab, 0xa0, 0xfb, 0x0f, 0xdd, 0x2c, 0xb4, 0xca, 0xa3, 0xa7, 0xd0, 0x02, 0xfe, 0x2b, 0xb4, 0xaa, 0x9b, 0xf7, 0x8b, 0xa0, 0xab,
+ 0x2b, 0xb4, 0xaa, 0x9b, 0xb7, 0xff, 0x8a, 0x00, 0x2c, 0xb4, 0xca, 0xa3, 0xeb, 0xfd, 0xa0, 0xe0, 0x4c, 0xbc, 0xca, 0xa3, 0x02, 0xab, 0x6f, 0xd7, 0x2b, 0xb4, 0x68, 0x93, 0x00, 0x60, 0x2a, 0xaa,
+ 0x4c, 0xb4, 0x8a, 0x9b, 0xa2, 0xbd, 0xa2, 0x0a, 0x4c, 0xb4, 0xca, 0xab, 0xc2, 0xa2, 0x60, 0x28, 0x6b, 0xb4, 0x6a, 0x9b, 0x83, 0xe0, 0xfa, 0xb6, 0x6c, 0xb4, 0xaa, 0xa3, 0xdc, 0xbf, 0x6d, 0xab,
+ 0x6c, 0xbc, 0xcb, 0xab, 0x2a, 0xfa, 0x6f, 0xa8, 0x6c, 0xbc, 0xea, 0xab, 0xa8, 0xaa, 0xfb, 0x5e, 0x6c, 0xbc, 0xcb, 0xa3, 0xaa, 0xa8, 0xd7, 0xef, 0x4c, 0xbc, 0x0b, 0xac, 0xb3, 0xbb, 0xfa, 0xde,
+ 0x4c, 0xb4, 0xca, 0xab, 0x56, 0xfa, 0xef, 0x80, 0x6c, 0xbc, 0x8a, 0x9b, 0xaa, 0xab, 0xaa, 0x58, 0x4c, 0xb4, 0xcb, 0xab, 0xaa, 0x2a, 0x82, 0xd6, 0x6c, 0xbc, 0xca, 0xab, 0x8a, 0xaa, 0xaa, 0x5b,
+ 0x6c, 0xbc, 0xeb, 0xa3, 0x8a, 0xba, 0x7e, 0xfd, 0x8c, 0xbc, 0x0b, 0xac, 0x9f, 0x8d, 0x6a, 0xdd, 0xcd, 0xc4, 0xeb, 0xab, 0xfb, 0xe8, 0x7f, 0xff, 0x6c, 0xbc, 0x0b, 0xac, 0xae, 0xa7, 0xcb, 0x9e,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xfe, 0xde, 0xfb, 0x98, 0x4b, 0xb4, 0xa9, 0xa3, 0x5a, 0xfa, 0xa0, 0x20, 0x4b, 0xb4, 0xca, 0xab, 0xff, 0xd5, 0xad, 0xa8, 0x4c, 0xbc, 0xea, 0xab, 0x2f, 0x27, 0xa7, 0xaf,
+ 0x8c, 0xbc, 0x0b, 0xac, 0xa2, 0x28, 0xbf, 0x97, 0x6c, 0xbc, 0xeb, 0xab, 0xa2, 0xa2, 0x6a, 0xd7, 0x8d, 0xc4, 0x08, 0x8b, 0xb4, 0xa4, 0xaa, 0xaa, 0x2c, 0xb4, 0xea, 0xa3, 0xbf, 0xbf, 0xda, 0xbc,
+ 0x6c, 0xb4, 0x0b, 0xac, 0xdf, 0x2f, 0xfd, 0xa7, 0x8d, 0xbc, 0x0a, 0xac, 0xe2, 0xea, 0x57, 0xff, 0x8c, 0xbc, 0xeb, 0xab, 0xf8, 0xfd, 0x77, 0x7f, 0x4c, 0xb4, 0xea, 0xa3, 0xaa, 0xa0, 0xab, 0x75,
+ 0x6c, 0xb4, 0xca, 0xab, 0x8f, 0x2f, 0x3d, 0xab, 0x4c, 0xb4, 0xeb, 0xab, 0x8b, 0xac, 0x78, 0xbe, 0x4c, 0xbc, 0xc8, 0xa3, 0x0b, 0xaa, 0xa8, 0x7e, 0x4c, 0xb4, 0x26, 0x93, 0x00, 0xa8, 0xae, 0x5f,
+ 0x2c, 0xb4, 0xe5, 0x82, 0x00, 0x0a, 0x80, 0x7a, 0x4b, 0xb4, 0xa7, 0x82, 0xa8, 0x80, 0x8a, 0xd7, 0x2b, 0xac, 0xc7, 0x8a, 0x00, 0x80, 0xb7, 0xaa, 0x4b, 0xb4, 0x89, 0x9b, 0x02, 0x6a, 0x5f, 0x5f,
+ 0x2b, 0xb4, 0x29, 0x93, 0xb8, 0x2f, 0x5d, 0xff, 0x0a, 0xac, 0xa7, 0x7a, 0x00, 0x00, 0xf5, 0x02, 0x6b, 0xb4, 0x09, 0x8b, 0xaa, 0xf8, 0x55, 0x2a, 0x8c, 0xb4, 0x86, 0x82, 0x80, 0xdf, 0xaf, 0xaa,
+ 0x0a, 0xac, 0x09, 0x8b, 0xa8, 0x5f, 0xfb, 0x28, 0xaa, 0xa3, 0x69, 0x93, 0xfd, 0x89, 0x2a, 0xa2, 0x0b, 0xac, 0x07, 0x8b, 0xaa, 0xaa, 0xa8, 0xbd, 0x2b, 0xac, 0x69, 0x93, 0x7d, 0xef, 0x8a, 0xe8,
+ 0x4c, 0xb4, 0x08, 0x8b, 0xaf, 0xaa, 0x82, 0xd5, 0xea, 0xab, 0x06, 0x83, 0x08, 0x02, 0xea, 0x7a, 0x2b, 0xac, 0xa6, 0x82, 0xaa, 0x00, 0xf7, 0x77, 0x0a, 0xac, 0x82, 0x59, 0x22, 0x00, 0xaa, 0x5e,
+ 0xc9, 0xa3, 0xe5, 0x69, 0x00, 0x82, 0xf0, 0xbd, 0x2a, 0xac, 0x85, 0x7a, 0x82, 0xfd, 0xfd, 0x5f, 0xc9, 0xa3, 0xc1, 0x48, 0x00, 0x22, 0x57, 0xea, 0xa7, 0x9b, 0xe3, 0x48, 0xea, 0xa0, 0xf5, 0xaf,
+ 0x49, 0x93, 0x23, 0x6a, 0x28, 0xfd, 0xaf, 0x8b, 0x0a, 0xa4, 0x03, 0x51, 0x02, 0x5e, 0xea, 0xaa, 0x67, 0x9b, 0x04, 0x41, 0xa0, 0xd5, 0xaa, 0xaa, 0x08, 0x8b, 0x43, 0x51, 0x7a, 0xf5, 0x22, 0x02,
+ 0x6a, 0x8b, 0x22, 0x59, 0x55, 0xea, 0xaa, 0x0a, 0xaa, 0x9b, 0x84, 0x59, 0x75, 0xbf, 0xaa, 0x00, 0xca, 0x9b, 0x85, 0x59, 0xd6, 0xaa, 0xaa, 0x00, 0xeb, 0xa3, 0x45, 0x72, 0xff, 0x5f, 0x2a, 0xa8,
+ 0xeb, 0xa3, 0x66, 0x72, 0x7f, 0x57, 0xa0, 0x02, 0x2c, 0xac, 0xe5, 0x61, 0xff, 0xfd, 0x28, 0x02, 0x0b, 0xa4, 0x87, 0x7a, 0xf5, 0xfd, 0xa0, 0x00, 0x0b, 0xac, 0x66, 0x72, 0x5f, 0xe7, 0x80, 0x80,
+ 0x2b, 0xac, 0x86, 0x7a, 0x55, 0xef, 0x02, 0xaa, 0xca, 0xa3, 0x64, 0x59, 0x5f, 0x2e, 0x00, 0x00, 0xea, 0xa3, 0xc6, 0x59, 0xd5, 0x00, 0x00, 0x20, 0xca, 0xa3, 0xe5, 0x61, 0xde, 0x00, 0xa8, 0xa8,
+ 0xea, 0xa3, 0x85, 0x61, 0x5f, 0x20, 0xaa, 0xa2, 0xaa, 0x9b, 0x45, 0x51, 0xd5, 0x00, 0x00, 0x00, 0xca, 0x9b, 0x03, 0x49, 0x57, 0x00, 0x00, 0x00, 0xca, 0xa3, 0xa6, 0x59, 0xad, 0xa0, 0x00, 0x00,
+ 0xea, 0xa3, 0x67, 0x7a, 0x6f, 0xdf, 0x00, 0x08, 0xca, 0xa3, 0x47, 0x72, 0x7d, 0x0a, 0xa0, 0x00, 0x25, 0x72, 0x02, 0x41, 0xea, 0xf8, 0xea, 0x78, 0x64, 0x51, 0xa2, 0x28, 0xe8, 0x78, 0x7e, 0xaf,
+ 0x63, 0x51, 0x82, 0x20, 0x37, 0x37, 0x27, 0x0f, 0x84, 0x59, 0x43, 0x51, 0x2a, 0x8d, 0xfd, 0x7b, 0x83, 0x59, 0x22, 0x51, 0xfc, 0xde, 0x2b, 0x28, 0xe4, 0x59, 0x43, 0x51, 0xd5, 0xb7, 0xff, 0x2f,
+ 0x45, 0x72, 0x63, 0x59, 0xfd, 0xb9, 0x2d, 0x0a, 0xc7, 0x7a, 0x04, 0x6a, 0xd5, 0xfd, 0xab, 0x2b, 0x48, 0x8b, 0xe5, 0x61, 0xbf, 0xa7, 0x2f, 0x2a, 0x69, 0x93, 0xa7, 0x7a, 0xa5, 0xab, 0x8a, 0x00,
+ 0x8a, 0x9b, 0x48, 0x8b, 0xb7, 0xb3, 0xab, 0xaa, 0x89, 0x93, 0x48, 0x8b, 0x72, 0xba, 0x48, 0x5e, 0xa9, 0x93, 0x48, 0x8b, 0x80, 0xa8, 0xff, 0xed, 0x89, 0x9b, 0x48, 0x93, 0xa0, 0x27, 0x8a, 0x6e,
+ 0xca, 0x9b, 0x69, 0x93, 0xab, 0xff, 0xbf, 0x2d, 0xcb, 0xa3, 0x89, 0x9b, 0xff, 0xed, 0xab, 0x0a, 0x0b, 0xb4, 0xaa, 0x9b, 0x0b, 0xad, 0xaa, 0xbe, 0x2b, 0xb4, 0xaa, 0xa3, 0xf8, 0xea, 0xfb, 0xf7,
+ 0x2b, 0xb4, 0xc7, 0x8a, 0xf0, 0xf0, 0xd2, 0x0a, 0x2a, 0xb4, 0x08, 0x93, 0xf5, 0x7f, 0xea, 0xb8, 0x48, 0x9b, 0xa2, 0x69, 0xa0, 0xa0, 0xf8, 0xd0, 0xea, 0xab, 0x65, 0x82, 0xaf, 0x0d, 0xad, 0x8e,
+ 0x8c, 0xc4, 0x04, 0x6a, 0x3e, 0x1a, 0xaa, 0x2a, 0x8b, 0xbc, 0xc5, 0x82, 0x40, 0x63, 0xe2, 0xe8, 0x8d, 0xc4, 0x62, 0x69, 0x5c, 0xd8, 0xd8, 0xdf, 0xca, 0xab, 0x21, 0x59, 0xae, 0xaf, 0x87, 0xaf,
+ 0x2a, 0x8b, 0xa3, 0x69, 0x5e, 0xb4, 0x2f, 0x02, 0x6a, 0x93, 0x65, 0x82, 0xbd, 0xbc, 0x2a, 0x2a, 0xeb, 0xab, 0x03, 0x31, 0x50, 0x58, 0x58, 0x5c, 0x85, 0x39, 0xe3, 0x20, 0xfb, 0x73, 0x63, 0xfd,
+ 0x24, 0x29, 0xc3, 0x20, 0xaf, 0xdf, 0xbd, 0xe0, 0x25, 0x29, 0xc3, 0x28, 0x9f, 0xaa, 0xa2, 0xa8, 0x45, 0x29, 0xe3, 0x20, 0xff, 0x6e, 0x3b, 0xfa, 0x45, 0x29, 0xe4, 0x20, 0xdf, 0xd7, 0xe8, 0x3e,
+ 0x65, 0x31, 0xc3, 0x20, 0xff, 0x9f, 0xea, 0xe2, 0x45, 0x31, 0xe4, 0x20, 0x57, 0xde, 0xd6, 0x2a, 0x85, 0x31, 0x04, 0x21, 0xdd, 0x55, 0x7d, 0xa0, 0x65, 0x31, 0xc3, 0x18, 0xbf, 0xde, 0xaa, 0x20,
+ 0x25, 0x31, 0xc3, 0x18, 0xe0, 0x5f, 0xba, 0x00, 0x45, 0x31, 0xc4, 0x20, 0x55, 0xdf, 0x22, 0x00, 0x65, 0x39, 0xe3, 0x20, 0xbd, 0xab, 0x8a, 0xea, 0x45, 0x39, 0x04, 0x29, 0xb8, 0xff, 0xf7, 0x6b,
+ 0x44, 0x31, 0xe3, 0x28, 0xbf, 0xdf, 0x57, 0xea, 0x24, 0x29, 0xc3, 0x20, 0xa0, 0xa4, 0x8a, 0xaa, 0x45, 0x31, 0xe4, 0x28, 0xfb, 0x2f, 0xbd, 0xf5, 0x45, 0x31, 0x04, 0x29, 0xff, 0xf2, 0x73, 0x7d,
+ 0x4c, 0xb4, 0xcb, 0xa3, 0x22, 0xa0, 0x2a, 0xbd, 0x2b, 0xb4, 0xea, 0xab, 0x42, 0x72, 0xf0, 0x03, 0x2b, 0xb4, 0xca, 0xab, 0xd7, 0x3d, 0xa2, 0x7a, 0x2c, 0xb4, 0xca, 0xa3, 0xb7, 0xfa, 0x60, 0xeb,
+ 0x4c, 0xbc, 0xeb, 0xa3, 0x82, 0xeb, 0x75, 0x7f, 0x4c, 0xb4, 0xaa, 0x9b, 0xbc, 0xfd, 0xaf, 0xaa, 0x2c, 0xb4, 0xcb, 0xab, 0xe2, 0x9b, 0xa2, 0x2a, 0x6c, 0xbc, 0xaa, 0x9b, 0xfb, 0xa2, 0x9a, 0xfe,
+ 0x2c, 0xb4, 0xeb, 0xab, 0x01, 0xd0, 0xac, 0x75, 0x4c, 0xbc, 0xca, 0xa3, 0xda, 0xee, 0xab, 0xe2, 0x6c, 0xbc, 0xcb, 0xa3, 0x7b, 0x8b, 0xaa, 0xb7, 0x4c, 0xb4, 0x0b, 0xac, 0x0f, 0x9d, 0xb5, 0xaa,
+ 0x4c, 0xb4, 0xcb, 0xab, 0xe0, 0x2a, 0xea, 0x8d, 0x4c, 0xb4, 0xcb, 0xa3, 0xf5, 0xaf, 0xe3, 0xea, 0x2c, 0xb4, 0xca, 0xa3, 0xeb, 0xa9, 0x8a, 0xe0, 0x4c, 0xbc, 0xcb, 0xa3, 0x9f, 0x3e, 0x2a, 0xaf,
+ 0x8c, 0xbc, 0x0b, 0xb4, 0xef, 0xef, 0x2b, 0x7f, 0x4c, 0xbc, 0xaa, 0xa3, 0xae, 0xfe, 0x58, 0xfe, 0x4c, 0xb4, 0xaa, 0xa3, 0xe2, 0xfb, 0xfd, 0xaf, 0x6c, 0xb4, 0xea, 0xab, 0x55, 0x2f, 0x7b, 0xf7,
+ 0x4c, 0xb4, 0x8a, 0xa3, 0x6a, 0xbc, 0xbf, 0xaa, 0x2b, 0xb4, 0xca, 0xa3, 0x2a, 0xd0, 0xf6, 0x82, 0x2b, 0xb4, 0xca, 0xa3, 0x3a, 0x0f, 0x9c, 0xab, 0x4c, 0xb4, 0xea, 0xab, 0x2a, 0x0a, 0xa5, 0xed,
+ 0x4c, 0xbc, 0xea, 0xab, 0x88, 0x00, 0x7f, 0xde, 0x4b, 0xb4, 0x28, 0x8b, 0xa8, 0xaa, 0xa7, 0x08, 0x2b, 0xb4, 0xaa, 0xa3, 0x4f, 0x6b, 0x2a, 0xaa, 0x2c, 0xb4, 0xca, 0xa3, 0x2d, 0x2b, 0xaa, 0x0a,
+ 0x4b, 0xb4, 0xea, 0xa3, 0x00, 0x8a, 0xe9, 0x72, 0x4c, 0xb4, 0xeb, 0xab, 0xad, 0xf2, 0xbb, 0xaa, 0x4c, 0xb4, 0xeb, 0xab, 0x9d, 0x35, 0xdf, 0x3a, 0x4c, 0xb4, 0xca, 0xa3, 0x4a, 0x2a, 0x8a, 0x68,
+ 0x6c, 0xbc, 0xaa, 0xa3, 0xab, 0xea, 0xaa, 0x58, 0x8c, 0xbc, 0x89, 0xa3, 0xa7, 0xbd, 0xa0, 0x5f, 0x6b, 0xb4, 0xaa, 0xa3, 0xfe, 0x28, 0x7f, 0xf5, 0x6c, 0xbc, 0x49, 0x9b, 0xa8, 0xa0, 0x55, 0xa2,
+ 0x2b, 0xb4, 0x69, 0x9b, 0x20, 0x56, 0xd7, 0x7a, 0x0a, 0xac, 0x08, 0x8b, 0xe8, 0xfd, 0xfe, 0xaf, 0x0a, 0xac, 0x87, 0x7a, 0xb7, 0x8a, 0xaa, 0xa8, 0xeb, 0xab, 0xc7, 0x82, 0x5f, 0xaa, 0xaa, 0x02,
+ 0x0b, 0xac, 0x09, 0x8b, 0x5d, 0xee, 0xdf, 0x02, 0x4b, 0xb4, 0x09, 0x8b, 0xff, 0xaa, 0xd7, 0x28, 0x0a, 0xac, 0x89, 0x9b, 0x57, 0x6a, 0xf6, 0xfc, 0x2b, 0xb4, 0x28, 0x93, 0x8a, 0xf9, 0xbe, 0xf8,
+ 0x2b, 0xac, 0x85, 0x7a, 0x02, 0x3a, 0x2a, 0x5e, 0xc9, 0xab, 0x88, 0x72, 0x08, 0xaa, 0xe0, 0xd7, 0x4c, 0xac, 0xa6, 0x82, 0xee, 0x7a, 0xff, 0x2f, 0x4b, 0xb4, 0xa8, 0x82, 0xea, 0x57, 0xef, 0x22,
+ 0x6c, 0xb4, 0x87, 0x7a, 0xff, 0xfb, 0xfd, 0xa0, 0x4b, 0xb4, 0xe6, 0x61, 0xaa, 0xb7, 0x2a, 0xaa, 0x2b, 0xac, 0x66, 0x7a, 0xfb, 0x0a, 0x68, 0x60, 0x6c, 0xb4, 0xc4, 0x61, 0xab, 0xf8, 0xfd, 0xeb,
+ 0xea, 0xa3, 0x05, 0x6a, 0x82, 0xdf, 0xea, 0xbe, 0x89, 0x93, 0x05, 0x6a, 0xd7, 0xbf, 0x89, 0x02, 0xeb, 0xa3, 0xa7, 0x7a, 0xfd, 0x75, 0xea, 0x20, 0x2d, 0xa4, 0x87, 0x82, 0x55, 0xff, 0xef, 0x08,
+ 0x0b, 0xa4, 0xc7, 0x82, 0x55, 0xbf, 0xae, 0x82, 0xeb, 0x9b, 0x66, 0x7a, 0x55, 0xfb, 0xaf, 0x3a, 0x0b, 0xa4, 0x67, 0x72, 0xfd, 0xaa, 0x82, 0x00, 0x2a, 0xac, 0xa8, 0x7a, 0xf5, 0xae, 0x2a, 0xfa,
+ 0x2b, 0xac, 0x09, 0x83, 0xfd, 0xa2, 0xae, 0x8e, 0xeb, 0xa3, 0x08, 0x8b, 0x5f, 0xbb, 0x22, 0x7f, 0x2b, 0xa4, 0x09, 0x83, 0xd5, 0xad, 0x02, 0xab, 0x6c, 0xb4, 0x28, 0x8b, 0xff, 0xf5, 0xfc, 0xea,
+ 0xea, 0x9b, 0x28, 0x8b, 0x2f, 0xf6, 0x2a, 0xe2, 0x0b, 0xac, 0x49, 0x93, 0xfa, 0x5d, 0x8f, 0xb7, 0xea, 0xa3, 0x29, 0x8b, 0xba, 0xad, 0x0a, 0x2a, 0xea, 0xa3, 0x69, 0x93, 0xb0, 0xea, 0x77, 0xa2,
+ 0x0b, 0xa4, 0x49, 0x93, 0xa8, 0xbf, 0x7f, 0xbe, 0x2a, 0xac, 0x28, 0x93, 0x2b, 0x7e, 0xdf, 0xbe, 0xea, 0xa3, 0x68, 0x93, 0x88, 0xed, 0xcb, 0xf9, 0x0b, 0xa4, 0x68, 0x9b, 0xdd, 0xff, 0x2b, 0x7d,
+ 0x0a, 0xac, 0x89, 0x9b, 0xf0, 0x3d, 0xbf, 0x95, 0x0a, 0xac, 0x69, 0x9b, 0x72, 0xbe, 0x6d, 0xb8, 0xca, 0xa3, 0x69, 0x9b, 0xaa, 0xf0, 0x6f, 0x58, 0xaa, 0xa3, 0x48, 0x93, 0x20, 0xdf, 0x5a, 0xef,
+ 0xaa, 0xa3, 0x69, 0x93, 0xbe, 0xff, 0xd5, 0xb1, 0xaa, 0x9b, 0x49, 0x93, 0x18, 0xfa, 0xef, 0xf7, 0xaa, 0xa3, 0x49, 0x8b, 0xb8, 0x7e, 0x8b, 0xbd, 0xc9, 0xa3, 0x8a, 0x93, 0xff, 0xe5, 0xaf, 0xee,
+ 0xc9, 0xa3, 0xa2, 0x61, 0x00, 0x00, 0xe0, 0x70, 0xea, 0xab, 0x02, 0x49, 0xe0, 0xfe, 0xd7, 0x0d, 0xeb, 0xa3, 0xe3, 0x40, 0x57, 0xed, 0xc0, 0x80, 0xe5, 0x61, 0xe2, 0x38, 0x7a, 0x78, 0xf8, 0xde,
+ 0x63, 0x59, 0xe2, 0x40, 0x0d, 0x0b, 0x2b, 0xab, 0x84, 0x59, 0x42, 0x51, 0xf5, 0x0e, 0x8e, 0x0b, 0xc5, 0x61, 0x43, 0x51, 0xb7, 0x7f, 0x79, 0x1f, 0xc8, 0x7a, 0x63, 0x51, 0xf5, 0xf5, 0xb5, 0x0a,
+ 0xe8, 0x82, 0xe5, 0x61, 0xb5, 0xab, 0xaa, 0x00, 0x48, 0x8b, 0x87, 0x7a, 0xf5, 0xff, 0xab, 0x22, 0x89, 0x8b, 0x08, 0x83, 0xf5, 0x95, 0x27, 0xae, 0x89, 0x93, 0x48, 0x8b, 0x25, 0x83, 0x7b, 0x5f,
+ 0x89, 0x93, 0x28, 0x8b, 0xe0, 0xbd, 0xad, 0xa5, 0x69, 0x93, 0x28, 0x8b, 0x47, 0xa3, 0x83, 0xea, 0xaa, 0x93, 0x28, 0x8b, 0xff, 0xf9, 0xbd, 0x2d, 0xaa, 0x9b, 0x69, 0x93, 0xdb, 0x9f, 0x30, 0x2a,
+ 0xca, 0xa3, 0x89, 0x9b, 0x23, 0x8b, 0xfa, 0xef, 0xca, 0xa3, 0x89, 0x9b, 0x08, 0xae, 0xff, 0xad, 0xcb, 0xab, 0xa9, 0x9b, 0x8a, 0x2d, 0x2b, 0xbf, 0x0b, 0xac, 0xca, 0xa3, 0xff, 0x1f, 0x27, 0xeb,
+ 0x4b, 0xbc, 0xca, 0xa3, 0x8d, 0x2b, 0x2f, 0x2f, 0x6c, 0xbc, 0xa6, 0x82, 0xac, 0xf8, 0xd8, 0x78, 0xaa, 0xab, 0x04, 0x6a, 0xda, 0xf8, 0xa2, 0xa8, 0x2d, 0xa4, 0x67, 0x82, 0xb6, 0x0a, 0x2a, 0x28,
+ 0x90, 0xa4, 0x29, 0x9b, 0x7d, 0x5f, 0x2a, 0x0a, 0xb0, 0xac, 0x05, 0x7a, 0x75, 0xab, 0x80, 0xf8, 0xed, 0xa3, 0x41, 0x59, 0xd7, 0xdc, 0xde, 0x9a, 0x4a, 0x8b, 0x46, 0x7a, 0x9f, 0x09, 0x2a, 0x02,
+ 0x8b, 0x8b, 0xea, 0x82, 0xf7, 0xa0, 0xa6, 0xaf, 0x8e, 0xbc, 0x09, 0x83, 0xd5, 0x95, 0xb5, 0x35, 0xab, 0xa3, 0xe3, 0x28, 0x5c, 0x54, 0x56, 0x57, 0xa6, 0x49, 0xe3, 0x20, 0xf5, 0xf5, 0x3d, 0xf7,
+ 0x08, 0x52, 0x04, 0x29, 0x55, 0xd5, 0xeb, 0x0b, 0x86, 0x39, 0x25, 0x29, 0xfd, 0xbf, 0xc2, 0xe0, 0xa6, 0x39, 0x25, 0x31, 0xfd, 0x8f, 0x37, 0x83, 0xa6, 0x39, 0x45, 0x31, 0x7b, 0xa2, 0x88, 0xfb,
+ 0xe6, 0x49, 0x65, 0x31, 0xfd, 0xfb, 0xe1, 0xe9, 0xa5, 0x39, 0x03, 0x29, 0xa5, 0xb6, 0xde, 0x58, 0xa6, 0x41, 0x24, 0x31, 0x5e, 0xbe, 0x8b, 0x5d, 0x65, 0x31, 0x04, 0x29, 0x67, 0xa8, 0xa7, 0xa7,
+ 0x65, 0x39, 0x04, 0x29, 0xeb, 0xa8, 0xea, 0x5f, 0x65, 0x39, 0x04, 0x29, 0xb7, 0xce, 0x7d, 0x55, 0x45, 0x31, 0xe3, 0x20, 0x3a, 0xba, 0xbf, 0x5f, 0x45, 0x31, 0xe3, 0x20, 0xe2, 0xbf, 0xff, 0xad,
+ 0x45, 0x29, 0xe3, 0x20, 0x3b, 0x2e, 0xb8, 0xb7, 0x45, 0x31, 0xe4, 0x20, 0xa8, 0xba, 0xfe, 0xdf, 0x25, 0x29, 0xe3, 0x20, 0x00, 0xa8, 0x97, 0x1a, 0x45, 0x31, 0xe3, 0x28, 0xaf, 0x8b, 0xf7, 0xfb,
+ 0x4c, 0xb4, 0x8a, 0x9b, 0x20, 0xae, 0x7a, 0x8a, 0x6c, 0xb4, 0xaa, 0x9b, 0x0a, 0xde, 0x2b, 0xaa, 0x4c, 0xb4, 0xea, 0xa3, 0x97, 0xaf, 0xf0, 0xea, 0x4c, 0xb4, 0xeb, 0xab, 0x78, 0xff, 0xa7, 0x15,
+ 0x4c, 0xb4, 0xea, 0xab, 0xfb, 0x7b, 0xbb, 0x89, 0x4c, 0xb4, 0xcb, 0xa3, 0xdf, 0x8b, 0x02, 0xbc, 0x2c, 0xb4, 0x8a, 0x9b, 0xa2, 0xa8, 0x98, 0xfa, 0x4c, 0xb4, 0xcb, 0xa3, 0x6a, 0x8a, 0x2e, 0xbf,
+ 0x4c, 0xb4, 0xaa, 0xa3, 0xff, 0x2a, 0x72, 0xa0, 0x6c, 0xbc, 0xeb, 0xab, 0xd5, 0x82, 0xfd, 0xdf, 0x4c, 0xb4, 0xeb, 0xa3, 0xfb, 0xf0, 0xd7, 0x83, 0x4c, 0xb4, 0xaa, 0x9b, 0x0a, 0x28, 0xaa, 0xf6,
+ 0x4c, 0xb4, 0xeb, 0xa3, 0xfa, 0xa0, 0xeb, 0xf5, 0x2c, 0xb4, 0xca, 0xa3, 0x0a, 0x7a, 0xf7, 0x8a, 0x4c, 0xb4, 0xca, 0xa3, 0x2a, 0x8d, 0xff, 0xae, 0x2c, 0xb4, 0xeb, 0xab, 0xc0, 0xfe, 0x93, 0x8f,
+ 0x4c, 0xb4, 0xca, 0xa3, 0x01, 0xaa, 0x8a, 0xfa, 0x2b, 0xb4, 0xeb, 0xa3, 0xfc, 0xdf, 0xbd, 0xeb, 0x2c, 0xb4, 0x8a, 0x9b, 0xe2, 0x20, 0xb6, 0xea, 0x4c, 0xb4, 0xaa, 0x9b, 0xab, 0xaf, 0x78, 0xf7,
+ 0x2b, 0xb4, 0xaa, 0x9b, 0x00, 0x97, 0xeb, 0xec, 0x0c, 0xb4, 0xca, 0xa3, 0xe8, 0xdb, 0xeb, 0x2e, 0x0b, 0xac, 0x8a, 0x9b, 0xe1, 0x82, 0x2f, 0x80, 0x4b, 0xb4, 0xaa, 0xa3, 0xc9, 0xa7, 0xae, 0xba,
+ 0x6c, 0xb4, 0xeb, 0xa3, 0xff, 0xae, 0xdd, 0x22, 0x2b, 0xb4, 0xcb, 0xa3, 0x00, 0xfa, 0xd7, 0x88, 0x2b, 0xb4, 0xa9, 0xa3, 0x2a, 0x1a, 0x2a, 0xf8, 0x4c, 0xb4, 0xa9, 0xa3, 0xfe, 0xfe, 0x28, 0xf5,
+ 0x4c, 0xb4, 0x27, 0x93, 0xa8, 0xaa, 0xa0, 0x7a, 0x4c, 0xb4, 0xa6, 0x7a, 0x02, 0x00, 0x08, 0xbd, 0x4c, 0xb4, 0xa5, 0x82, 0x00, 0xa8, 0x88, 0xdc, 0x6c, 0xb4, 0xe7, 0x8a, 0x00, 0xaa, 0xea, 0x57,
+ 0x6b, 0xbc, 0xa7, 0x82, 0x00, 0x80, 0xaf, 0xad, 0x4b, 0xbc, 0x68, 0x93, 0xe0, 0xff, 0xd7, 0xf5, 0x0b, 0xac, 0x69, 0x93, 0x3b, 0xa8, 0x6f, 0xa2, 0x0a, 0xac, 0xe8, 0x82, 0x00, 0xae, 0xfd, 0xaa,
+ 0xea, 0xab, 0xc6, 0x7a, 0xa8, 0x2f, 0xa9, 0x00, 0xeb, 0xa3, 0x48, 0x93, 0xff, 0xdf, 0xff, 0x00, 0x2b, 0xac, 0x28, 0x8b, 0xad, 0xf9, 0x2b, 0xea, 0x2b, 0xb4, 0x69, 0x9b, 0xa2, 0x7f, 0xf2, 0x88,
+ 0x8d, 0xb4, 0x49, 0x93, 0xd7, 0x8d, 0xf7, 0x2f, 0x4c, 0xb4, 0x49, 0x93, 0xff, 0x5c, 0x57, 0xaa, 0x8b, 0xb4, 0x08, 0x8b, 0xff, 0x55, 0xfd, 0x8a, 0x4b, 0xac, 0xe8, 0x82, 0xaf, 0xcf, 0x55, 0x02,
+ 0x6c, 0xac, 0x29, 0x8b, 0xfd, 0xf5, 0xbf, 0x2f, 0x8d, 0xb4, 0x8a, 0x93, 0xf5, 0x7f, 0xd4, 0xb8, 0xce, 0xbc, 0x49, 0x93, 0xf7, 0xff, 0xb2, 0xe8, 0x4c, 0xb4, 0xa6, 0x7a, 0x82, 0x02, 0x0a, 0x6a,
+ 0x2a, 0xb4, 0xc8, 0x7a, 0xe2, 0xa8, 0xf8, 0x5f, 0xad, 0xbc, 0x26, 0x6a, 0x0a, 0x60, 0xb5, 0xea, 0x4b, 0xb4, 0x06, 0x6a, 0xbc, 0xbd, 0xab, 0xf7, 0xc9, 0xa3, 0x87, 0x7a, 0xfe, 0x2a, 0xf2, 0xf5,
+ 0xca, 0x9b, 0x67, 0x7a, 0xbd, 0x8c, 0x7f, 0xb5, 0x0a, 0xa4, 0xa7, 0x82, 0x0a, 0xef, 0xfd, 0xef, 0x4b, 0xac, 0x04, 0x72, 0xa0, 0xab, 0xdf, 0xfe, 0xea, 0xab, 0xa4, 0x59, 0x00, 0x08, 0xaa, 0x55,
+ 0xa9, 0x9b, 0x64, 0x51, 0x80, 0xa0, 0xba, 0xb5, 0xca, 0x9b, 0x66, 0x72, 0xa9, 0xbf, 0x2d, 0x83, 0xca, 0x9b, 0xe7, 0x82, 0x20, 0x02, 0x80, 0x7e, 0x0b, 0xa4, 0x47, 0x72, 0xa7, 0x08, 0xaa, 0x0b,
+ 0x2b, 0xac, 0x49, 0x8b, 0xd5, 0xe3, 0xab, 0xba, 0x2b, 0xa4, 0xe8, 0x8a, 0x22, 0xed, 0xfe, 0x82, 0x2a, 0xac, 0x28, 0x8b, 0x8a, 0xdf, 0xad, 0xaf, 0xea, 0xa3, 0x29, 0x8b, 0xa8, 0xdf, 0xab, 0x7e,
+ 0x0a, 0xa4, 0x48, 0x93, 0xee, 0x2b, 0xb0, 0xd5, 0x2b, 0xac, 0x28, 0x8b, 0x37, 0xaa, 0xfb, 0xf7, 0xea, 0xa3, 0x49, 0x93, 0x8a, 0xa8, 0x5f, 0x8b, 0x0a, 0xa4, 0x69, 0x93, 0x2f, 0xf5, 0xf5, 0x7f,
+ 0xea, 0xa3, 0x48, 0x93, 0xfe, 0x97, 0xf8, 0xdf, 0xa9, 0x9b, 0x28, 0x93, 0xed, 0x82, 0xe8, 0xe3, 0xca, 0x9b, 0x48, 0x93, 0xfd, 0xfc, 0xfd, 0xff, 0xca, 0xa3, 0x68, 0x93, 0x8a, 0xdf, 0xaa, 0xea,
+ 0xa9, 0x9b, 0x28, 0x8b, 0x80, 0xab, 0x00, 0x36, 0xaa, 0xa3, 0x68, 0x93, 0xaf, 0xaa, 0xba, 0xee, 0xca, 0xa3, 0x69, 0x9b, 0x6c, 0x6a, 0xfa, 0xfe, 0xa9, 0xa3, 0x68, 0x93, 0x3a, 0x7c, 0x27, 0x5f,
+ 0xea, 0xa3, 0x28, 0x8b, 0x7f, 0xf7, 0xf7, 0x0d, 0xca, 0xa3, 0x49, 0x8b, 0xd5, 0x0e, 0x0e, 0xfe, 0xca, 0xa3, 0x48, 0x8b, 0x2b, 0xea, 0xac, 0x7f, 0x89, 0x9b, 0xe2, 0x69, 0x00, 0xa8, 0xe8, 0x7a,
+ 0x68, 0x93, 0x22, 0x49, 0x7c, 0x97, 0x27, 0x0d, 0xca, 0xa3, 0x44, 0x7a, 0xa3, 0xa8, 0xaa, 0x7b, 0xa9, 0x9b, 0x82, 0x61, 0x80, 0x08, 0xa0, 0x57, 0xc4, 0x59, 0x22, 0x41, 0xd8, 0xf6, 0xde, 0x5e,
+ 0x84, 0x51, 0x43, 0x49, 0x87, 0x3a, 0x0e, 0xa5, 0xe8, 0x7a, 0x44, 0x51, 0x7d, 0xb5, 0x2f, 0x2f, 0x28, 0x8b, 0xe6, 0x59, 0xad, 0xfa, 0xaa, 0xe8, 0xe8, 0x82, 0x66, 0x72, 0x36, 0xab, 0xf9, 0x0d,
+ 0x69, 0x8b, 0xc7, 0x7a, 0xf7, 0xbd, 0x3b, 0xab, 0x69, 0x93, 0xe8, 0x7a, 0x35, 0x8b, 0x28, 0xaa, 0x89, 0x93, 0x08, 0x8b, 0x0a, 0xea, 0x7f, 0xaf, 0x69, 0x93, 0xe8, 0x82, 0xa0, 0xaa, 0xf9, 0xa8,
+ 0x69, 0x93, 0x08, 0x83, 0x0e, 0xac, 0xb9, 0xaa, 0xaa, 0x9b, 0x28, 0x8b, 0xfd, 0xaf, 0x2b, 0xea, 0xaa, 0x9b, 0x48, 0x8b, 0xaf, 0x8b, 0x7b, 0xff, 0x8a, 0x9b, 0x48, 0x93, 0x82, 0xaa, 0x9d, 0x2b,
+ 0xaa, 0x9b, 0x68, 0x93, 0xb2, 0x67, 0xad, 0x2a, 0xca, 0x9b, 0x69, 0x93, 0x89, 0xea, 0xaa, 0xca, 0xea, 0xa3, 0x89, 0x9b, 0x2d, 0x83, 0xea, 0x2f, 0xeb, 0xab, 0xaa, 0x9b, 0xaa, 0x2f, 0x38, 0xaa,
+ 0x4b, 0xb4, 0xea, 0xa3, 0x2b, 0xbf, 0x3d, 0x35, 0x6c, 0xbc, 0x24, 0x72, 0x60, 0x40, 0xe0, 0x80, 0x4b, 0xb4, 0x24, 0x72, 0xe8, 0x68, 0xfc, 0x38, 0x2c, 0xac, 0x49, 0x8b, 0xaa, 0xaa, 0xf8, 0x73,
+ 0x2d, 0x9c, 0x66, 0x7a, 0x00, 0xaa, 0xfa, 0x7f, 0x8a, 0x8b, 0x67, 0x72, 0xb8, 0xff, 0xf5, 0x75, 0x08, 0x83, 0xa4, 0x59, 0x90, 0xb0, 0xa8, 0xaa, 0x8b, 0x8b, 0xc8, 0x7a, 0xbd, 0xbf, 0xad, 0x09,
+ 0xeb, 0xab, 0x2a, 0x83, 0x55, 0xd5, 0x35, 0x0d, 0x4c, 0xbc, 0x85, 0x51, 0xaa, 0x40, 0x40, 0xe0, 0x07, 0x4a, 0xc3, 0x28, 0x57, 0xff, 0xfe, 0xa8, 0xc6, 0x39, 0xe4, 0x20, 0xf5, 0x5f, 0x0a, 0x02,
+ 0xc6, 0x39, 0x05, 0x21, 0x0b, 0xad, 0xfa, 0xa0, 0xe6, 0x41, 0x24, 0x31, 0xa8, 0xab, 0x5e, 0x6b, 0x06, 0x4a, 0x24, 0x31, 0xbe, 0xdf, 0xb5, 0x35, 0xe6, 0x49, 0x04, 0x31, 0xea, 0xa7, 0x82, 0x02,
+ 0xe6, 0x49, 0x65, 0x31, 0xfd, 0xfd, 0xca, 0x7e, 0xc6, 0x41, 0xe4, 0x20, 0x4a, 0xa8, 0x8a, 0xaa, 0x45, 0x31, 0xe4, 0x28, 0x81, 0xa9, 0xad, 0xbf, 0x45, 0x31, 0x04, 0x29, 0x8b, 0x68, 0xca, 0x2a,
+ 0x45, 0x31, 0x04, 0x29, 0x56, 0xf7, 0xff, 0xec, 0x24, 0x29, 0xe3, 0x18, 0x9a, 0xc0, 0xe2, 0x88, 0x24, 0x31, 0xe3, 0x18, 0xef, 0xbf, 0x29, 0xaa, 0x45, 0x29, 0xc3, 0x20, 0x7e, 0xae, 0x2a, 0x3a,
+ 0x44, 0x29, 0xe3, 0x20, 0x7f, 0xc2, 0x6a, 0xff, 0x24, 0x31, 0xe3, 0x20, 0xa7, 0xab, 0xbd, 0x6b, 0x65, 0x31, 0xe4, 0x28, 0xbb, 0x57, 0x55, 0x0d, 0xe3, 0x30, 0x45, 0x29, 0xff, 0x97, 0xaa, 0x0b,
+ 0x4c, 0xb4, 0xaa, 0xa3, 0xaf, 0xff, 0xdf, 0x2f, 0x4b, 0xb4, 0xca, 0xa3, 0x5f, 0xbf, 0x55, 0x88, 0x6c, 0xbc, 0x69, 0x9b, 0x2a, 0xaa, 0xb6, 0xbe, 0x4c, 0xbc, 0xea, 0xa3, 0x7f, 0xff, 0xb7, 0x3e,
+ 0x4a, 0xbc, 0xcb, 0xa3, 0xfd, 0x7f, 0x57, 0xe0, 0x2c, 0xb4, 0xca, 0xa3, 0xef, 0xe3, 0xdf, 0x2e, 0x2c, 0xb4, 0xea, 0xa3, 0xea, 0xff, 0xfb, 0x8a, 0x6c, 0xbc, 0xeb, 0xab, 0x75, 0xf7, 0xfd, 0x3f,
+ 0x4c, 0xb4, 0xca, 0xa3, 0x7d, 0xcb, 0x3f, 0x02, 0x4b, 0xb4, 0xca, 0xab, 0xff, 0xaa, 0xb8, 0x5e, 0x2b, 0xb4, 0xea, 0xab, 0xda, 0xb5, 0xff, 0xc9, 0x4b, 0xac, 0x89, 0xa3, 0xca, 0xae, 0xea, 0x77,
+ 0x2b, 0xac, 0x69, 0x9b, 0x2a, 0xaa, 0xfe, 0x7f, 0x2b, 0xb4, 0x6a, 0x9b, 0x98, 0xa0, 0xff, 0xfd, 0x4b, 0xbc, 0x07, 0x8b, 0x80, 0x82, 0xf5, 0xff, 0x0b, 0xac, 0x48, 0x93, 0x00, 0x02, 0xdf, 0x2b,
+ 0x4c, 0xb4, 0xa9, 0x9b, 0xc2, 0xf6, 0x6f, 0xe2, 0x2b, 0xb4, 0xca, 0xa3, 0xe2, 0xff, 0x7d, 0xe3, 0x0a, 0xa4, 0x89, 0x9b, 0xcd, 0xea, 0xf5, 0x80, 0x2b, 0xac, 0xe8, 0x8a, 0x80, 0x2b, 0x7a, 0xaa,
+ 0x0a, 0xac, 0x08, 0x8b, 0x00, 0xba, 0xf5, 0xaa, 0xeb, 0xa3, 0x48, 0x93, 0x38, 0x5b, 0xfe, 0x02, 0x0b, 0xa4, 0x49, 0x9b, 0xea, 0x7f, 0x82, 0xaa, 0x2b, 0xac, 0x69, 0x93, 0x2a, 0x7f, 0xbf, 0x0a,
+ 0x8c, 0xb4, 0x49, 0x93, 0xf7, 0x8b, 0xaa, 0xab, 0x2b, 0xb4, 0xca, 0xa3, 0xa9, 0x42, 0x60, 0x7f, 0xeb, 0xa3, 0x49, 0x93, 0x78, 0xff, 0xaa, 0x2a, 0xeb, 0xa3, 0x69, 0x9b, 0xdf, 0x57, 0xf7, 0x20,
+ 0xca, 0xa3, 0x48, 0x93, 0x5a, 0xf7, 0xb2, 0x08, 0x2b, 0xa4, 0xc8, 0x82, 0xf5, 0xad, 0xaf, 0x02, 0x2b, 0xac, 0x29, 0x8b, 0xb7, 0xaa, 0xaa, 0x02, 0x2c, 0xac, 0xa9, 0x9b, 0x57, 0xfe, 0xaa, 0x00,
+ 0xae, 0xbc, 0x89, 0x93, 0x55, 0xff, 0xbf, 0x0a, 0x4c, 0xb4, 0x8a, 0x93, 0xfd, 0xaf, 0x0a, 0x00, 0xee, 0xc4, 0xeb, 0xa3, 0x55, 0xef, 0x02, 0xaa, 0xee, 0xc4, 0xca, 0xa3, 0x55, 0x02, 0x78, 0xd7,
+ 0x8d, 0xbc, 0x69, 0x93, 0xbf, 0x2b, 0xc2, 0xde, 0x8d, 0xbc, 0xaa, 0x9b, 0xf8, 0xff, 0xef, 0xad, 0x8c, 0xbc, 0xaa, 0xa3, 0xd5, 0xff, 0xaf, 0x00, 0x0b, 0xb4, 0x48, 0x8b, 0x2a, 0x0a, 0xa0, 0xde,
+ 0x6c, 0xb4, 0x28, 0x93, 0x2a, 0xea, 0xff, 0x7f, 0x0a, 0xb4, 0x69, 0x93, 0x80, 0xff, 0x56, 0xff, 0xea, 0xa3, 0xe8, 0x8a, 0x5e, 0x0a, 0xae, 0xaa, 0xeb, 0xa3, 0x05, 0x6a, 0x58, 0xad, 0xa8, 0x00,
+ 0xeb, 0xa3, 0x6a, 0x93, 0x0d, 0xab, 0xff, 0xad, 0x8d, 0xb4, 0x89, 0x9b, 0xb2, 0xd5, 0x7d, 0x57, 0xea, 0xa3, 0x48, 0x93, 0x86, 0x5f, 0xfe, 0xde, 0xca, 0xa3, 0xc7, 0x82, 0xb6, 0x3f, 0xaa, 0xaa,
+ 0x2c, 0xa4, 0x48, 0x93, 0x0a, 0x27, 0xff, 0xd7, 0x2c, 0xac, 0x49, 0x93, 0x5a, 0xfe, 0x3f, 0xbf, 0x2c, 0xa4, 0x28, 0x93, 0x55, 0x97, 0x3e, 0xe3, 0x8d, 0xac, 0xe8, 0x8a, 0x5f, 0xdc, 0xf0, 0xfa,
+ 0x0f, 0xbd, 0x6a, 0x93, 0x75, 0xfd, 0xfd, 0xc9, 0xeb, 0xa3, 0x08, 0x8b, 0x7f, 0xe8, 0xa8, 0xaa, 0xeb, 0x9b, 0xa7, 0x82, 0x7b, 0xa8, 0xaa, 0x08, 0x2c, 0xa4, 0xc8, 0x7a, 0x75, 0xf5, 0x83, 0x80,
+ 0xcb, 0x9b, 0xa7, 0x72, 0xdd, 0xff, 0xab, 0x02, 0x0c, 0xa4, 0x48, 0x8b, 0x75, 0xb7, 0xfc, 0x0b, 0x8c, 0xb4, 0x09, 0x8b, 0xdf, 0xb8, 0xaa, 0xfe, 0x0b, 0xa4, 0x29, 0x8b, 0x0a, 0xa8, 0xa6, 0x22,
+ 0x2b, 0xac, 0x69, 0x93, 0xa8, 0x97, 0x6b, 0x82, 0x0a, 0xa4, 0x49, 0x93, 0xa8, 0xf6, 0x9e, 0x7a, 0xeb, 0xa3, 0x29, 0x8b, 0xff, 0xa2, 0x02, 0x3d, 0x2c, 0xac, 0x28, 0x8b, 0x5f, 0xfb, 0xfe, 0x22,
+ 0x0a, 0xa4, 0x49, 0x93, 0xf5, 0x7b, 0xa0, 0xb8, 0xca, 0x9b, 0x48, 0x93, 0xde, 0xdb, 0x88, 0xfe, 0xca, 0xa3, 0x28, 0x8b, 0x5f, 0xff, 0xaa, 0x2a, 0xca, 0xa3, 0x28, 0x8b, 0xf7, 0xef, 0x8a, 0xe2,
+ 0xa9, 0x9b, 0x48, 0x8b, 0x8b, 0x90, 0x00, 0x20, 0xca, 0x9b, 0x49, 0x8b, 0x85, 0x2a, 0xe0, 0x26, 0x0b, 0xa4, 0x69, 0x93, 0x5d, 0xff, 0x5f, 0xc3, 0x0b, 0xa4, 0x69, 0x93, 0xff, 0xff, 0x63, 0x7b,
+ 0xea, 0x9b, 0x48, 0x93, 0xca, 0xe9, 0xe3, 0xaa, 0xca, 0xa3, 0x28, 0x8b, 0x2a, 0x9b, 0xbb, 0x2e, 0xea, 0xa3, 0x29, 0x93, 0xfe, 0x7f, 0xef, 0x2f, 0xca, 0x9b, 0x49, 0x93, 0xaf, 0x8f, 0xa2, 0xc9,
+ 0xca, 0x9b, 0x08, 0x83, 0xc2, 0xda, 0xda, 0x8a, 0x89, 0x93, 0xe7, 0x82, 0xa8, 0x8a, 0xe8, 0x68, 0x68, 0x93, 0x25, 0x72, 0x20, 0xea, 0x7a, 0x7f, 0xc6, 0x82, 0x83, 0x61, 0x78, 0x5b, 0xfb, 0xa9,
+ 0xe7, 0x8a, 0x63, 0x51, 0x09, 0x03, 0xea, 0x2a, 0xe7, 0x8a, 0x22, 0x51, 0xfc, 0x56, 0x7c, 0x78, 0xc4, 0x61, 0x22, 0x51, 0x70, 0xd7, 0x35, 0xaf, 0xe8, 0x82, 0xc1, 0x40, 0x7f, 0xc3, 0xbf, 0xff,
+ 0x25, 0x6a, 0xa2, 0x38, 0xfd, 0xbf, 0xb4, 0xfa, 0xaa, 0x93, 0x84, 0x51, 0xad, 0xad, 0x29, 0x2d, 0xaa, 0x9b, 0x26, 0x6a, 0xaa, 0xaa, 0x00, 0x60, 0xe8, 0x7a, 0x05, 0x62, 0x08, 0x00, 0xfc, 0xad,
+ 0x28, 0x83, 0x66, 0x72, 0x02, 0xaa, 0xbd, 0x75, 0x28, 0x8b, 0xa7, 0x7a, 0x2a, 0x0a, 0xbe, 0x89, 0x8a, 0x93, 0x08, 0x83, 0xff, 0xf7, 0xfb, 0xc9, 0x89, 0x93, 0x28, 0x8b, 0xf9, 0xad, 0xe8, 0x77,
+ 0x8a, 0x93, 0x28, 0x8b, 0x82, 0x78, 0xdf, 0xbb, 0x89, 0x93, 0x28, 0x8b, 0xee, 0x6f, 0xb6, 0x3e, 0x8a, 0x93, 0x48, 0x8b, 0x95, 0xad, 0x37, 0x0a, 0x8a, 0x9b, 0x69, 0x93, 0xbf, 0x2d, 0x02, 0x28,
+ 0xca, 0x9b, 0x89, 0x93, 0xeb, 0xbd, 0x9f, 0x28, 0xca, 0xa3, 0x89, 0x93, 0xbc, 0xbe, 0xea, 0xba, 0x0b, 0xa4, 0xa9, 0x9b, 0xff, 0xf5, 0x35, 0xa5, 0xeb, 0xab, 0xca, 0x9b, 0x2f, 0xaa, 0xff, 0xab,
+ 0x2b, 0xb4, 0xea, 0xa3, 0x37, 0xbf, 0xd5, 0xd7, 0x4b, 0xbc, 0xea, 0xab, 0xe2, 0xea, 0xbb, 0xfd, 0x4c, 0xbc, 0x85, 0x7a, 0x1e, 0xf8, 0xf8, 0xb8, 0x0a, 0xac, 0x48, 0x93, 0x79, 0xe8, 0xb8, 0xfb,
+ 0x69, 0x9b, 0x87, 0x7a, 0x7e, 0x7a, 0x6a, 0xe8, 0xa7, 0x7a, 0x46, 0x72, 0xee, 0xa8, 0x1a, 0xa0, 0x6a, 0x8b, 0x87, 0x7a, 0x75, 0xfd, 0x8f, 0x2f, 0xee, 0xcc, 0x09, 0x83, 0x55, 0xd5, 0x2d, 0x0f,
+ 0xad, 0xc4, 0x6a, 0x93, 0xbd, 0xa2, 0xa0, 0x80, 0x8d, 0xbc, 0x23, 0x39, 0xf0, 0x50, 0x5c, 0x54, 0xa6, 0x41, 0x44, 0x31, 0x38, 0x95, 0x22, 0xe3, 0xc6, 0x41, 0x03, 0x29, 0x2a, 0x02, 0x7e, 0xb7,
+ 0x06, 0x52, 0x24, 0x31, 0xff, 0x8f, 0xfd, 0xf7, 0xe6, 0x49, 0x24, 0x39, 0xeb, 0x2e, 0xf2, 0x57, 0xe6, 0x41, 0x24, 0x29, 0x9f, 0x5c, 0xf7, 0xdf, 0xc6, 0x41, 0x24, 0x31, 0xfe, 0x72, 0x29, 0xfa,
+ 0xa6, 0x41, 0x24, 0x31, 0x38, 0x6d, 0xae, 0xea, 0x66, 0x41, 0x24, 0x29, 0xa8, 0xaa, 0xdf, 0x55, 0x85, 0x39, 0xe3, 0x28, 0xd6, 0x58, 0x78, 0xa8, 0x65, 0x31, 0xe4, 0x20, 0x2a, 0xbb, 0xbf, 0xfd,
+ 0x65, 0x31, 0x04, 0x29, 0x7e, 0xfb, 0xaa, 0xe8, 0x65, 0x31, 0x04, 0x29, 0x97, 0x7d, 0xab, 0xf8, 0xe5, 0x30, 0x44, 0x29, 0xe2, 0xbf, 0xea, 0xf7, 0x45, 0x31, 0x04, 0x29, 0x5d, 0xab, 0x67, 0xaf,
+ 0x65, 0x31, 0xe4, 0x20, 0xe2, 0xde, 0xfb, 0xbe, 0x65, 0x31, 0xe3, 0x28, 0xef, 0xbd, 0x00, 0xee, 0x24, 0x39, 0xe3, 0x28, 0xa2, 0x9a, 0xfb, 0xe2, 0x24, 0x39, 0xc3, 0x28, 0x7a, 0x5a, 0xf0, 0x5d,
+ 0x4c, 0xbc, 0xea, 0xab, 0xd2, 0xa0, 0xaa, 0xbe, 0x4c, 0xb4, 0xea, 0xab, 0x7a, 0xfa, 0xf8, 0xea, 0x4c, 0xb4, 0xca, 0xab, 0x95, 0x8f, 0x2a, 0x2a, 0x6c, 0xc4, 0x2a, 0xb4, 0x25, 0x37, 0xdf, 0x55,
+ 0x6b, 0xc4, 0x2a, 0xb4, 0x7a, 0xe8, 0xfa, 0xff, 0x4b, 0xb4, 0xea, 0xab, 0xe7, 0x8b, 0x80, 0xa0, 0x4c, 0xb4, 0xea, 0xab, 0xa9, 0x0a, 0xaa, 0xaa, 0x4c, 0xb4, 0x0a, 0xac, 0xff, 0xbb, 0xae, 0xa2,
+ 0x4c, 0xb4, 0x0a, 0xac, 0x6b, 0xaf, 0xf5, 0xb0, 0x2b, 0xb4, 0xea, 0xab, 0x5a, 0xbe, 0x28, 0xa0, 0x2b, 0xb4, 0xaa, 0xab, 0x7b, 0xaa, 0x80, 0x80, 0x4b, 0xb4, 0xca, 0xab, 0x55, 0xff, 0xea, 0x8a,
+ 0x4b, 0xb4, 0xaa, 0x9b, 0xdd, 0xee, 0xaa, 0x02, 0x4b, 0xb4, 0xca, 0xa3, 0x55, 0xbf, 0xab, 0x00, 0x4c, 0xb4, 0xeb, 0xa3, 0x37, 0xef, 0xaa, 0xa8, 0x4c, 0xb4, 0x0b, 0xac, 0xac, 0x8a, 0xff, 0xab,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xfe, 0xac, 0xf6, 0x77, 0x4c, 0xb4, 0xea, 0xab, 0xde, 0xa0, 0x0f, 0xbf, 0x4c, 0xb4, 0xeb, 0xab, 0x55, 0xfa, 0x20, 0x2e, 0xcd, 0xbc, 0xeb, 0xa3, 0x7f, 0xf7, 0xbb, 0xa2,
+ 0x6c, 0xb4, 0xeb, 0xa3, 0xf5, 0xab, 0xe8, 0x2c, 0x6c, 0xb4, 0x0b, 0xa4, 0xd5, 0xbf, 0x0b, 0xda, 0x4c, 0xac, 0xeb, 0xa3, 0xfd, 0xc8, 0xde, 0xe2, 0xae, 0xb4, 0xea, 0xa3, 0x5d, 0x55, 0xff, 0x8f,
+ 0x4c, 0xac, 0xea, 0xa3, 0x75, 0xbf, 0xaa, 0x00, 0x4c, 0xb4, 0xeb, 0xa3, 0xd7, 0xff, 0xaa, 0x08, 0x4c, 0xb4, 0xeb, 0xab, 0x5d, 0xeb, 0xba, 0x00, 0x8d, 0xb4, 0xca, 0xa3, 0x57, 0xff, 0xbb, 0x2a,
+ 0xce, 0xbc, 0xeb, 0xa3, 0x55, 0xdf, 0xaa, 0x80, 0xae, 0xb4, 0x0b, 0xac, 0x55, 0xff, 0x82, 0x4b, 0x2f, 0xcd, 0x0b, 0xa4, 0xd5, 0xff, 0x33, 0xf5, 0xce, 0xbc, 0x2c, 0xac, 0x5b, 0xe8, 0x28, 0xe7,
+ 0xad, 0xbc, 0x0b, 0xac, 0xdb, 0xee, 0xf4, 0xdf, 0x6c, 0xb4, 0xeb, 0xa3, 0xb8, 0xaf, 0x2a, 0x6e, 0x2f, 0xcd, 0xca, 0xa3, 0xff, 0xff, 0x7f, 0xcf, 0xad, 0xbc, 0xca, 0xa3, 0xff, 0xfc, 0x55, 0x75,
+ 0x0e, 0xc5, 0xaa, 0x9b, 0xb5, 0x37, 0x7f, 0xff, 0x0d, 0xc5, 0x8a, 0x9b, 0xa0, 0x7f, 0x5d, 0x7f, 0x2c, 0xac, 0x28, 0x8b, 0x78, 0xee, 0xaa, 0xea, 0xce, 0xbc, 0x28, 0x93, 0xfd, 0x7f, 0xff, 0x8a,
+ 0x0b, 0xac, 0x08, 0x8b, 0xb9, 0xaa, 0xaa, 0x82, 0x0c, 0xac, 0x48, 0x93, 0xfb, 0x9c, 0xfe, 0xfc, 0x2b, 0xac, 0x29, 0x8b, 0x8a, 0x5f, 0xa2, 0xaa, 0x2b, 0xac, 0x28, 0x8b, 0x6a, 0x2f, 0x20, 0x0a,
+ 0x4c, 0xb4, 0xab, 0x9b, 0x7b, 0xa2, 0xa2, 0x82, 0x0b, 0xac, 0x07, 0x83, 0xea, 0xb8, 0x60, 0xa0, 0xca, 0x9b, 0x03, 0x6a, 0x00, 0x00, 0x02, 0x2d, 0xca, 0x9b, 0x89, 0x93, 0x56, 0xf6, 0xa8, 0x22,
+ 0xcb, 0xa3, 0x8a, 0x93, 0xd5, 0x7a, 0x0a, 0x02, 0x4c, 0xac, 0x6a, 0x93, 0xd7, 0xb5, 0xae, 0x82, 0x0e, 0xbd, 0x29, 0x93, 0xdf, 0xff, 0x0a, 0xaa, 0xee, 0xbc, 0xaa, 0x93, 0x7e, 0x2d, 0xfc, 0x55,
+ 0x6d, 0xac, 0xaa, 0x9b, 0x82, 0xfa, 0x7f, 0xf2, 0xcf, 0xbc, 0x8a, 0x93, 0x5f, 0xff, 0x53, 0xff, 0xae, 0xb4, 0x8a, 0x93, 0xff, 0x2e, 0x05, 0xae, 0x8d, 0xac, 0xaa, 0x9b, 0xdf, 0x9e, 0xda, 0xf3,
+ 0xac, 0xb4, 0x8a, 0x93, 0xf5, 0xe8, 0x55, 0xf3, 0x4c, 0xac, 0xaa, 0x93, 0x2a, 0xa2, 0xda, 0x4a, 0x2c, 0xa4, 0x69, 0x93, 0xe7, 0xca, 0xe2, 0xfd, 0x2c, 0xa4, 0x08, 0x8b, 0x2b, 0x7f, 0xaa, 0x00,
+ 0x2b, 0xac, 0x49, 0x8b, 0x1a, 0xbd, 0x97, 0xba, 0x0b, 0xa4, 0x89, 0x93, 0x3c, 0xad, 0x0d, 0x29, 0x0b, 0xa4, 0x89, 0x93, 0xbe, 0xf2, 0x62, 0xfc, 0x4c, 0xac, 0x89, 0x93, 0xff, 0x2f, 0x3d, 0xbf,
+ 0x4c, 0xac, 0x69, 0x93, 0xbf, 0xfc, 0xfe, 0xd5, 0x2c, 0xa4, 0x89, 0x93, 0xdf, 0xba, 0x78, 0xfb, 0x2b, 0xa4, 0x69, 0x9b, 0xdf, 0x82, 0xaf, 0x7f, 0xca, 0x9b, 0x48, 0x93, 0x3a, 0x88, 0x3e, 0xd7,
+ 0xea, 0xa3, 0x48, 0x93, 0xa8, 0x7d, 0xf7, 0xdc, 0xea, 0xa3, 0x48, 0x93, 0xe2, 0x67, 0xbd, 0xeb, 0xaa, 0x9b, 0x28, 0x8b, 0xae, 0x89, 0xa0, 0xeb, 0xaa, 0x9b, 0x28, 0x8b, 0x0f, 0xaf, 0xf6, 0xab,
+ 0xa9, 0x9b, 0x48, 0x93, 0x9b, 0xb8, 0xcb, 0x3d, 0x2b, 0xac, 0x69, 0x8b, 0x77, 0xd7, 0xbd, 0x3c, 0xea, 0xa3, 0x69, 0x93, 0xbd, 0xc8, 0x8f, 0x7e, 0xca, 0x9b, 0x08, 0x83, 0x8a, 0xa2, 0xca, 0x7a,
+ 0xc9, 0xa3, 0xc7, 0x72, 0x0a, 0xfa, 0x7f, 0x7f, 0x49, 0x8b, 0x45, 0x6a, 0xa4, 0xb8, 0xf8, 0x6f, 0x48, 0x8b, 0xa3, 0x59, 0x6a, 0x7a, 0x3f, 0x8d, 0x07, 0x83, 0x66, 0x72, 0x7f, 0xea, 0xec, 0xb6,
+ 0x89, 0x93, 0x04, 0x72, 0xaa, 0xaa, 0x8a, 0x6a, 0xc6, 0x82, 0xa3, 0x61, 0x6c, 0x5e, 0x9f, 0x0d, 0xe7, 0x7a, 0x22, 0x51, 0xb5, 0x3e, 0xbe, 0x0b, 0x28, 0x8b, 0x05, 0x62, 0x75, 0xcb, 0x8a, 0x00,
+ 0x69, 0x93, 0xa4, 0x51, 0x79, 0xaa, 0x02, 0xc0, 0xca, 0x9b, 0xe4, 0x61, 0xa9, 0xff, 0x7f, 0x8b, 0xad, 0xb4, 0x63, 0x59, 0xaf, 0xab, 0x2a, 0x5e, 0xad, 0xbc, 0x25, 0x6a, 0x5e, 0xfa, 0xa0, 0xd5,
+ 0x28, 0x83, 0xa4, 0x59, 0xaa, 0x0a, 0xa0, 0x58, 0x48, 0x8b, 0xc5, 0x61, 0x0a, 0x08, 0xaa, 0xad, 0xca, 0x9b, 0xa7, 0x7a, 0xaa, 0xfe, 0xb5, 0x8d, 0x89, 0x93, 0xe8, 0x82, 0xd7, 0x2b, 0xbb, 0xaa,
+ 0xca, 0x9b, 0x48, 0x8b, 0xfd, 0xff, 0xeb, 0xa3, 0xaa, 0x9b, 0x08, 0x83, 0xa8, 0x9e, 0xa8, 0x27, 0xaa, 0x9b, 0x69, 0x93, 0x9f, 0xad, 0xbf, 0xf0, 0xca, 0x9b, 0x89, 0x93, 0xac, 0xbb, 0x0a, 0xff,
+ 0xeb, 0xa3, 0x89, 0x93, 0x3f, 0xbe, 0xaf, 0xfd, 0xeb, 0xa3, 0xa9, 0x93, 0xfe, 0xaa, 0xaf, 0xf5, 0xeb, 0xa3, 0xaa, 0x9b, 0x2b, 0xaf, 0xbb, 0x5f, 0xea, 0xa3, 0x89, 0x9b, 0xa2, 0xa8, 0xff, 0xad,
+ 0xea, 0xab, 0xa9, 0x9b, 0xab, 0xff, 0xbb, 0xbf, 0x0a, 0xac, 0xca, 0xa3, 0x02, 0x0b, 0xaf, 0xef, 0x2b, 0xb4, 0xa9, 0xa3, 0x58, 0xfa, 0xfe, 0xdf, 0xc9, 0xa3, 0xc6, 0x82, 0xc2, 0x21, 0xe2, 0x68,
+ 0xa9, 0xa3, 0xc8, 0x7a, 0x7e, 0x7a, 0x7b, 0xf0, 0x2a, 0x83, 0x66, 0x72, 0xff, 0x7a, 0x0a, 0x82, 0x0c, 0xa4, 0xa3, 0x59, 0xaa, 0xaa, 0x08, 0x29, 0xcd, 0xc4, 0x89, 0x9b, 0x0d, 0x0b, 0xab, 0x22,
+ 0x2f, 0xd5, 0x84, 0x51, 0x20, 0x08, 0xc0, 0x62, 0x46, 0x6a, 0x04, 0x29, 0x74, 0x7f, 0x5f, 0xff, 0x86, 0x39, 0xe3, 0x28, 0xff, 0x7f, 0xf5, 0x82, 0x86, 0x39, 0xc3, 0x20, 0xbf, 0xb7, 0x2e, 0x0a,
+ 0xa6, 0x41, 0x04, 0x31, 0xb7, 0xac, 0xaa, 0xaa, 0xa6, 0x41, 0x24, 0x31, 0xda, 0xea, 0xba, 0xaf, 0xa5, 0x41, 0x24, 0x31, 0xff, 0x57, 0xd7, 0x0b, 0x85, 0x41, 0xe4, 0x30, 0x82, 0x0b, 0x7f, 0x50,
+ 0xc6, 0x49, 0xc3, 0x28, 0xfa, 0xea, 0x8b, 0xb5, 0x85, 0x41, 0x04, 0x29, 0xdf, 0xfe, 0xff, 0x0a, 0xa6, 0x39, 0x45, 0x31, 0xe8, 0xfe, 0xdf, 0xe2, 0x65, 0x39, 0xc3, 0x28, 0xdf, 0x7e, 0xd0, 0xe0,
+ 0x45, 0x39, 0xe3, 0x20, 0x28, 0xea, 0xff, 0x55, 0x64, 0x31, 0xc3, 0x20, 0xa8, 0xff, 0x77, 0x77, 0x44, 0x31, 0xa3, 0x20, 0x00, 0xfa, 0xbf, 0x7d, 0x24, 0x31, 0xc3, 0x20, 0x82, 0x5a, 0xe8, 0x57,
+ 0x24, 0x31, 0xe3, 0x20, 0xd6, 0xf5, 0xf8, 0x75, 0x04, 0x39, 0xc3, 0x20, 0xad, 0x25, 0x0b, 0xed, 0x24, 0x39, 0xe3, 0x30, 0x7c, 0xec, 0x94, 0x0b, 0x24, 0x39, 0x03, 0x31, 0x75, 0x33, 0x5a, 0xf2,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xf5, 0xfa, 0xff, 0xfa, 0x6c, 0xbc, 0x2b, 0xac, 0xff, 0xfa, 0xae, 0xbe, 0x6c, 0xb4, 0x2b, 0xac, 0x39, 0x8a, 0x82, 0xaa, 0x6d, 0xbc, 0x4b, 0xb4, 0x55, 0x5d, 0xaf, 0xdc,
+ 0x6c, 0xbc, 0x2b, 0xac, 0xbb, 0xaa, 0xaa, 0xaa, 0x6c, 0xbc, 0x4b, 0xb4, 0x5d, 0xfd, 0xfb, 0xd7, 0x6d, 0xbc, 0x2b, 0xb4, 0xdf, 0xfe, 0x3a, 0xee, 0x6c, 0xbc, 0x2b, 0xac, 0xed, 0xeb, 0xba, 0xbe,
+ 0x6c, 0xbc, 0x2b, 0xac, 0xff, 0xee, 0xaa, 0xba, 0x6c, 0xbc, 0x2b, 0xac, 0x55, 0xff, 0xbf, 0xaa, 0x4c, 0xbc, 0x2b, 0xac, 0xda, 0xaf, 0xfa, 0xbe, 0x4b, 0xbc, 0x0c, 0xac, 0xaf, 0xef, 0xbf, 0xaa,
+ 0x4c, 0xbc, 0x0b, 0xac, 0xbe, 0xfe, 0xaf, 0xaa, 0x6c, 0xbc, 0x2b, 0xb4, 0xf5, 0x7f, 0x55, 0xb6, 0x4b, 0xbc, 0x0b, 0xac, 0xaa, 0xa3, 0xff, 0xbb, 0x4c, 0xb4, 0x0b, 0xac, 0xea, 0xbe, 0xfb, 0xeb,
+ 0x2c, 0xb4, 0x0b, 0xac, 0xd7, 0xcf, 0x23, 0x28, 0x2c, 0xb4, 0x0b, 0xac, 0xef, 0xff, 0xa2, 0xe2, 0x6c, 0xb4, 0x0b, 0xac, 0xf5, 0x9d, 0xdc, 0xaf, 0x4c, 0xb4, 0x0b, 0xac, 0x57, 0xfe, 0x58, 0xe3,
+ 0xad, 0xbc, 0xeb, 0xab, 0xb3, 0xdf, 0x57, 0x77, 0x0e, 0xc5, 0x0b, 0xac, 0xe8, 0xb3, 0xff, 0x55, 0xad, 0xbc, 0xeb, 0xab, 0xff, 0xf0, 0x57, 0x55, 0xed, 0xc4, 0xeb, 0xa3, 0xa8, 0xbf, 0xff, 0xf5,
+ 0x4c, 0xb4, 0xcb, 0xa3, 0xa0, 0xa0, 0x57, 0xae, 0xad, 0xbc, 0xcb, 0xa3, 0xab, 0xff, 0xb5, 0xc8, 0x0f, 0xc5, 0xcb, 0x9b, 0x82, 0x7f, 0xc3, 0xbf, 0xad, 0xbc, 0xec, 0xab, 0xfa, 0xbd, 0xef, 0x2f,
+ 0x8d, 0xb4, 0xcb, 0xa3, 0xdf, 0x02, 0xeb, 0x6e, 0x2f, 0xc5, 0x0c, 0xac, 0xaf, 0x8f, 0xf7, 0x5d, 0xcd, 0xbc, 0x2c, 0xac, 0xf7, 0xac, 0xff, 0xeb, 0xce, 0xbc, 0x89, 0x9b, 0xa8, 0x78, 0x3b, 0xee,
+ 0x8d, 0xbc, 0xaa, 0xa3, 0xde, 0x90, 0xe8, 0xaa, 0x8d, 0xbc, 0xca, 0xa3, 0xfb, 0xcd, 0xb5, 0xeb, 0x6c, 0xb4, 0xca, 0xa3, 0xef, 0xfd, 0x43, 0xaa, 0x8c, 0xbc, 0xca, 0xa3, 0xfb, 0x57, 0x0d, 0x57,
+ 0x8c, 0xb4, 0xaa, 0x9b, 0xaa, 0xad, 0xff, 0xcf, 0xee, 0xc4, 0xca, 0xa3, 0xc3, 0x55, 0x5d, 0xfd, 0xad, 0xbc, 0xaa, 0x9b, 0xe2, 0x7e, 0xa7, 0xf2, 0x8d, 0xbc, 0xaa, 0x9b, 0xcf, 0x7f, 0xf8, 0xcb,
+ 0x6d, 0xb4, 0xca, 0x9b, 0xc3, 0x41, 0x12, 0xaa, 0xcd, 0xc4, 0x6a, 0x93, 0xfa, 0xed, 0xe2, 0xea, 0x2b, 0xac, 0x69, 0x93, 0xfd, 0xf8, 0xeb, 0x80, 0x2c, 0xac, 0xaa, 0x9b, 0x3f, 0xde, 0x5f, 0xaf,
+ 0x8d, 0xb4, 0xea, 0xa3, 0xa8, 0xfd, 0xa3, 0x55, 0x4c, 0xb4, 0xea, 0xa3, 0x7c, 0x58, 0xfa, 0x8b, 0x4c, 0xb4, 0x63, 0x59, 0xbe, 0xb4, 0xd8, 0xd8, 0xca, 0x9b, 0xe8, 0x82, 0x02, 0x0a, 0xab, 0xad,
+ 0xeb, 0xa3, 0x89, 0x93, 0xa2, 0xaa, 0x7d, 0xfd, 0x0b, 0xac, 0x8a, 0x93, 0x2b, 0xaf, 0xbd, 0xbe, 0x0b, 0xa4, 0x69, 0x93, 0x7e, 0x76, 0xab, 0x02, 0x6c, 0xb4, 0xaa, 0x9b, 0x55, 0xcf, 0xdf, 0xef,
+ 0x2b, 0xac, 0xaa, 0x9b, 0x2b, 0x77, 0x5f, 0xef, 0xae, 0xb4, 0x89, 0x9b, 0xa2, 0xfd, 0xff, 0xff, 0x8d, 0xb4, 0xca, 0xa3, 0x7e, 0x7c, 0x57, 0xd5, 0x4c, 0xac, 0xaa, 0xa3, 0x89, 0xf5, 0xf7, 0xf7,
+ 0x6d, 0xb4, 0xaa, 0x9b, 0xae, 0x8f, 0x57, 0xf5, 0x0b, 0xa4, 0x8a, 0x9b, 0x78, 0x7e, 0xaf, 0xbe, 0x0b, 0xa4, 0x8a, 0x9b, 0x7b, 0xaa, 0xba, 0x22, 0x6d, 0xb4, 0xa9, 0x9b, 0x44, 0xfb, 0xff, 0x7f,
+ 0xeb, 0xa3, 0x8a, 0x9b, 0x2b, 0x02, 0xea, 0xdc, 0x0b, 0xac, 0xaa, 0x9b, 0x37, 0xfa, 0xeb, 0x9f, 0x0b, 0xa4, 0x49, 0x93, 0xa9, 0xa0, 0xea, 0xaa, 0x0b, 0xa4, 0x69, 0x93, 0xf7, 0x5f, 0xfb, 0x3e,
+ 0x4c, 0xac, 0x89, 0x93, 0x73, 0x5d, 0xfb, 0xfa, 0x0c, 0xa4, 0x69, 0x93, 0x9f, 0xd5, 0x6a, 0xa8, 0x4c, 0xac, 0xe8, 0x82, 0xfe, 0xdf, 0x3f, 0x0a, 0x0b, 0xa4, 0x69, 0x93, 0x5e, 0xbe, 0x2b, 0xa0,
+ 0xea, 0xa3, 0x69, 0x93, 0xaf, 0xab, 0x72, 0xfe, 0xca, 0x9b, 0x69, 0x93, 0xe8, 0x78, 0xd7, 0x57, 0xca, 0x9b, 0x48, 0x8b, 0xa5, 0xe2, 0x7a, 0xef, 0xca, 0x93, 0x49, 0x8b, 0xde, 0x3f, 0x7b, 0xb7,
+ 0xaa, 0x9b, 0x68, 0x8b, 0xff, 0xd4, 0xe7, 0xff, 0xca, 0x9b, 0x48, 0x8b, 0xfb, 0x73, 0xfb, 0x7d, 0xca, 0x9b, 0x08, 0x7b, 0xe2, 0xfe, 0xde, 0x76, 0x69, 0x8b, 0xe8, 0x7a, 0x3e, 0xb8, 0xdf, 0x0b,
+ 0x68, 0x93, 0xa6, 0x7a, 0xde, 0xa7, 0xfe, 0x4e, 0x28, 0x83, 0xc4, 0x59, 0x68, 0xd8, 0xb6, 0x2f, 0x08, 0x83, 0xa7, 0x7a, 0xb5, 0xf9, 0x6e, 0x0e, 0x49, 0x8b, 0x65, 0x6a, 0xff, 0xfb, 0x9f, 0x3e,
+ 0x69, 0x93, 0x83, 0x59, 0x72, 0x78, 0x58, 0x7c, 0x49, 0x8b, 0x43, 0x51, 0xbd, 0x21, 0x0a, 0x08, 0x49, 0x93, 0xa7, 0x72, 0xcd, 0xb8, 0x82, 0x23, 0x89, 0x93, 0xe7, 0x82, 0xa5, 0xeb, 0x23, 0x2a,
+ 0xaa, 0x9b, 0x05, 0x62, 0x9a, 0x0a, 0x00, 0xa0, 0x0b, 0xa4, 0x68, 0x93, 0x07, 0x2d, 0xaf, 0xf5, 0xea, 0xa3, 0x82, 0x59, 0xa0, 0xe0, 0x98, 0xb6, 0x68, 0x93, 0xa3, 0x59, 0x78, 0xaf, 0x7e, 0x7a,
+ 0x28, 0x83, 0x44, 0x51, 0x75, 0xe8, 0x57, 0x75, 0xe7, 0x7a, 0x04, 0x41, 0x0b, 0xaa, 0xf5, 0x7b, 0xa9, 0x93, 0x64, 0x51, 0xaa, 0x0a, 0xab, 0xf5, 0x0a, 0x9c, 0x26, 0x6a, 0xaa, 0xa8, 0xf7, 0xbf,
+ 0xaa, 0x93, 0x47, 0x72, 0x00, 0xaa, 0x9f, 0x2a, 0x2b, 0xac, 0x49, 0x8b, 0x3f, 0xf5, 0x75, 0xff, 0x89, 0x93, 0xa6, 0x7a, 0x27, 0x0d, 0x08, 0x88, 0xca, 0x9b, 0x49, 0x8b, 0xae, 0x8a, 0x82, 0x6b,
+ 0xaa, 0x9b, 0x69, 0x93, 0x2e, 0x00, 0xae, 0xe5, 0xca, 0xa3, 0x89, 0x93, 0x7f, 0x22, 0x55, 0xfd, 0xeb, 0xa3, 0x89, 0x9b, 0xaf, 0x0a, 0x8d, 0xae, 0xeb, 0xab, 0xaa, 0x9b, 0xab, 0xaa, 0xfa, 0xff,
+ 0x0b, 0xac, 0xaa, 0x9b, 0xbf, 0xab, 0xeb, 0x57, 0x0b, 0xac, 0xaa, 0x9b, 0xaa, 0x0a, 0xaf, 0xa9, 0x0b, 0xac, 0xaa, 0xa3, 0xf0, 0xe0, 0xff, 0xff, 0xca, 0xab, 0x07, 0x93, 0x80, 0x00, 0x00, 0x48,
+ 0xca, 0xa3, 0x24, 0x72, 0x82, 0xab, 0xa1, 0x0b, 0xea, 0xa3, 0x67, 0x72, 0x7f, 0xfa, 0xaa, 0xb0, 0x6c, 0xb4, 0x27, 0x6a, 0xad, 0x2f, 0x0a, 0x0a, 0xee, 0xcc, 0x4c, 0xb4, 0xad, 0x2f, 0xaa, 0x3a,
+ 0x2f, 0xd5, 0x43, 0x41, 0x50, 0x58, 0x5c, 0x57, 0xe6, 0x49, 0x85, 0x39, 0xfe, 0x7e, 0xf7, 0xa8, 0xa6, 0x41, 0x45, 0x31, 0x02, 0x8e, 0x2e, 0xde, 0xe7, 0x41, 0x45, 0x31, 0xf8, 0x0a, 0xbb, 0x55,
+ 0xc6, 0x41, 0x04, 0x31, 0xaa, 0x00, 0xa0, 0xb5, 0xc6, 0x39, 0x24, 0x31, 0xa8, 0x78, 0x7b, 0xfa, 0x65, 0x39, 0x24, 0x29, 0x00, 0x3e, 0x3f, 0xd5, 0xe6, 0x49, 0xe3, 0x30, 0xca, 0xea, 0xff, 0xd5,
+ 0x44, 0x39, 0xc3, 0x28, 0xb5, 0xaa, 0x28, 0xa2, 0x44, 0x41, 0xc3, 0x20, 0xa8, 0x5e, 0xac, 0xff, 0x24, 0x31, 0xc3, 0x20, 0xaa, 0x6a, 0x40, 0xba, 0x04, 0x29, 0xc3, 0x18, 0xa0, 0x57, 0xbb, 0x5a,
+ 0x04, 0x29, 0xa3, 0x18, 0x20, 0xbf, 0xfb, 0x77, 0x04, 0x29, 0xa3, 0x18, 0x7e, 0xee, 0xbb, 0xbf, 0x04, 0x31, 0xa3, 0x18, 0x5f, 0xff, 0xe8, 0x2a, 0x24, 0x31, 0xa3, 0x18, 0x7d, 0xff, 0xaf, 0x02,
+ 0x04, 0x29, 0xa2, 0x18, 0x8d, 0xb5, 0xfa, 0xaa, 0x04, 0x29, 0xa3, 0x20, 0xae, 0xb6, 0xad, 0xae, 0x24, 0x39, 0xa3, 0x20, 0xa2, 0xea, 0x7a, 0x5e, 0x04, 0x39, 0xc2, 0x18, 0x2a, 0xaa, 0xbd, 0xbf,
+ 0x8d, 0xbc, 0x2b, 0xb4, 0xbf, 0xbe, 0x7f, 0xe3, 0x6c, 0xbc, 0x4b, 0xb4, 0xee, 0x6d, 0xf7, 0xfa, 0x6d, 0xbc, 0x4b, 0xb4, 0xae, 0xae, 0x9d, 0xb8, 0x6c, 0xbc, 0x4c, 0xb4, 0xf7, 0x3e, 0xdf, 0x7a,
+ 0x6c, 0xbc, 0x2b, 0xb4, 0xee, 0xba, 0xae, 0xeb, 0x6c, 0xbc, 0x4b, 0xb4, 0x5b, 0xbd, 0xfb, 0x73, 0x6c, 0xbc, 0x2b, 0xac, 0xfe, 0xba, 0xbb, 0xef, 0x6c, 0xbc, 0x2b, 0xac, 0xee, 0xab, 0xfa, 0xfe,
+ 0x6c, 0xbc, 0x4b, 0xac, 0xfa, 0xfe, 0xff, 0xfa, 0x4c, 0xbc, 0x2b, 0xac, 0xfa, 0xaa, 0xaa, 0xaa, 0x6c, 0xbc, 0x2b, 0xb4, 0xff, 0xff, 0x6f, 0xdc, 0x6c, 0xbc, 0x2b, 0xac, 0xeb, 0xff, 0xff, 0xb7,
+ 0x4c, 0xbc, 0x2b, 0xac, 0xbb, 0xae, 0xff, 0xaf, 0x6c, 0xb4, 0x2b, 0xac, 0xbf, 0x2b, 0xdf, 0x75, 0x4c, 0xb4, 0x0b, 0xac, 0xa8, 0x20, 0x0a, 0xfa, 0x4c, 0xb4, 0x0b, 0xac, 0xab, 0x02, 0x3a, 0xb9,
+ 0x6b, 0xb4, 0x0c, 0xac, 0xd7, 0xe2, 0xfe, 0xbf, 0x4c, 0xb4, 0x0b, 0xac, 0xaf, 0xaf, 0xbb, 0xbe, 0x4c, 0xb4, 0xeb, 0xab, 0xa8, 0xba, 0x7e, 0xba, 0x0c, 0xb4, 0xeb, 0xa3, 0xaa, 0xfe, 0xbb, 0xea,
+ 0x2c, 0xb4, 0xea, 0xa3, 0xee, 0xba, 0xff, 0xfe, 0x2b, 0xb4, 0xea, 0xa3, 0xaa, 0x8a, 0xfa, 0xff, 0x4c, 0xb4, 0xea, 0xa3, 0xd7, 0xf7, 0x3f, 0xff, 0x4b, 0xb4, 0xca, 0xa3, 0x3b, 0x7f, 0x7f, 0x7f,
+ 0x8c, 0xb4, 0xaa, 0xa3, 0xac, 0xbf, 0xff, 0x7f, 0x8d, 0xb4, 0xeb, 0xab, 0x0f, 0xee, 0xfd, 0xfe, 0x0f, 0xc5, 0x0b, 0xa4, 0xff, 0xf9, 0x2d, 0x55, 0x8e, 0xb4, 0x0b, 0xac, 0xae, 0xe9, 0x22, 0xad,
+ 0xcd, 0xbc, 0x2c, 0xac, 0x67, 0x5f, 0xa8, 0x5e, 0xce, 0xbc, 0x2c, 0xac, 0xdd, 0xff, 0xf4, 0xdd, 0x6d, 0xb4, 0xaa, 0xa3, 0x6a, 0x80, 0x08, 0xa0, 0x6d, 0xb4, 0xeb, 0xa3, 0xe5, 0xa2, 0xd8, 0xcb,
+ 0x30, 0xc5, 0xaa, 0x9b, 0xff, 0x3f, 0x7f, 0xff, 0xcd, 0xbc, 0xca, 0xa3, 0x7f, 0xe8, 0xfa, 0xfe, 0x8c, 0xb4, 0xca, 0xa3, 0xd5, 0x33, 0xfb, 0xeb, 0xee, 0xbc, 0xca, 0xa3, 0x5b, 0x5c, 0x75, 0xeb,
+ 0xcd, 0xc4, 0x8a, 0x9b, 0xf7, 0xff, 0xff, 0xfc, 0x8c, 0xb4, 0xca, 0x9b, 0x73, 0xfb, 0xa7, 0x2f, 0xae, 0xbc, 0xaa, 0x9b, 0x2a, 0xfa, 0x2d, 0xfa, 0x6d, 0xb4, 0xaa, 0x9b, 0xf3, 0xff, 0x82, 0x7a,
+ 0x6d, 0xb4, 0x0b, 0xa4, 0x43, 0xf5, 0x3a, 0x9a, 0x8d, 0xb4, 0x0b, 0xac, 0x5f, 0xf5, 0xb9, 0xa2, 0x6d, 0xb4, 0xeb, 0xa3, 0x57, 0xef, 0xae, 0x80, 0x6c, 0xb4, 0xca, 0xa3, 0x75, 0xb6, 0xaf, 0xf0,
+ 0x2c, 0xac, 0x89, 0x93, 0x2a, 0x20, 0x90, 0xae, 0x2b, 0xac, 0xca, 0xa3, 0x0f, 0x3e, 0x70, 0x5d, 0xea, 0xa3, 0xa4, 0x59, 0xd0, 0x70, 0xd0, 0xd0, 0xcb, 0x9b, 0xa8, 0x72, 0x2f, 0x29, 0x09, 0x0b,
+ 0xec, 0xa3, 0xaa, 0x9b, 0xbd, 0x8b, 0x0b, 0x0a, 0x2c, 0xac, 0xcb, 0xa3, 0xd7, 0xde, 0xae, 0x80, 0x4c, 0xb4, 0xeb, 0xa3, 0x55, 0x57, 0x77, 0xf1, 0x4c, 0xac, 0xaa, 0x9b, 0xea, 0xea, 0x5f, 0x2b,
+ 0x69, 0xb4, 0xab, 0x9b, 0xdf, 0xf7, 0xf5, 0x8a, 0x2b, 0xac, 0xa4, 0x82, 0x82, 0x88, 0x00, 0x60, 0xac, 0xbc, 0x41, 0x59, 0xaa, 0xaa, 0x80, 0x57, 0x0a, 0xac, 0x62, 0x59, 0x00, 0x00, 0xfa, 0x55,
+ 0x6b, 0xb4, 0x82, 0x59, 0xaa, 0x00, 0xd7, 0x55, 0x4a, 0xac, 0xa3, 0x61, 0x00, 0x80, 0x5f, 0x55, 0x8a, 0xb4, 0x83, 0x59, 0x00, 0xfa, 0x55, 0x55, 0x8b, 0xb4, 0xc4, 0x61, 0x00, 0x7f, 0xdd, 0xbf,
+ 0x2b, 0xa4, 0xa7, 0x7a, 0x20, 0xfd, 0xfd, 0x2b, 0x4a, 0xac, 0xa7, 0x7a, 0x82, 0x55, 0xee, 0xb8, 0xea, 0xa3, 0xa7, 0x7a, 0x28, 0xff, 0xbf, 0x76, 0x2a, 0xac, 0x47, 0x72, 0x2a, 0xaa, 0xfa, 0x55,
+ 0x09, 0xac, 0xa7, 0x7a, 0x80, 0x7f, 0xff, 0xaf, 0xca, 0x9b, 0xc7, 0x7a, 0x00, 0xaf, 0x77, 0xba, 0x0a, 0xa4, 0x05, 0x62, 0x2a, 0x0a, 0x77, 0xaa, 0xea, 0xa3, 0x45, 0x6a, 0xa8, 0x00, 0xa5, 0xaa,
+ 0xca, 0xa3, 0x28, 0x8b, 0x8b, 0xa2, 0x0b, 0xf5, 0x4c, 0xac, 0xe7, 0x82, 0xff, 0xff, 0xff, 0x4f, 0x89, 0x93, 0xe7, 0x82, 0xf0, 0xa2, 0xf7, 0xbf, 0xaa, 0x93, 0x08, 0x8b, 0xe2, 0xfe, 0x9e, 0xbf,
+ 0xa9, 0x93, 0x08, 0x83, 0xea, 0x61, 0xef, 0xb7, 0x89, 0x93, 0x08, 0x7b, 0x2f, 0xae, 0x2d, 0xfb, 0xaa, 0x93, 0xe8, 0x7a, 0xde, 0xb8, 0xea, 0x02, 0x49, 0x83, 0xe3, 0x69, 0x80, 0x80, 0x00, 0x68,
+ 0x29, 0x8b, 0xc5, 0x59, 0x6a, 0xda, 0x3c, 0x0b, 0x69, 0x8b, 0x47, 0x62, 0xa9, 0xaa, 0xaa, 0x02, 0x69, 0x8b, 0xa7, 0x72, 0xb7, 0x8e, 0x7e, 0xe0, 0x69, 0x8b, 0x45, 0x72, 0x28, 0xae, 0x82, 0x78,
+ 0x8a, 0x8b, 0x83, 0x59, 0xde, 0xb6, 0x2f, 0x8b, 0x69, 0x8b, 0xa7, 0x7a, 0x7a, 0x3e, 0x2e, 0xb7, 0x4c, 0xac, 0xe7, 0x82, 0xdd, 0x2e, 0xff, 0x57, 0xa9, 0x93, 0x28, 0x8b, 0xec, 0x97, 0xbe, 0xd7,
+ 0xca, 0x9b, 0x04, 0x6a, 0xaa, 0x80, 0xea, 0x7a, 0x09, 0xa4, 0x42, 0x51, 0x8a, 0x7a, 0xd7, 0xad, 0x69, 0x93, 0x62, 0x59, 0xa1, 0xfb, 0xaa, 0x00, 0x8a, 0x93, 0x83, 0x59, 0xb5, 0xab, 0x0a, 0x00,
+ 0xa9, 0x9b, 0x28, 0x93, 0xfe, 0xb5, 0xfe, 0x8a, 0xc9, 0xa3, 0x88, 0x6a, 0x7f, 0x0a, 0x0a, 0x2a, 0xe7, 0x82, 0x03, 0x41, 0xaf, 0xfc, 0x5c, 0x5c, 0x88, 0x93, 0xc1, 0x38, 0x2a, 0xaa, 0xfd, 0xd5,
+ 0x69, 0x93, 0xa4, 0x59, 0x00, 0xaa, 0x2d, 0xd5, 0x89, 0x93, 0x66, 0x72, 0xa2, 0x8a, 0xea, 0xfd, 0x89, 0x93, 0xa7, 0x7a, 0x2a, 0xaa, 0xd5, 0x2b, 0x89, 0x93, 0x08, 0x8b, 0xa0, 0xdf, 0xa9, 0xca,
+ 0x89, 0x93, 0x08, 0x8b, 0x2a, 0xed, 0x93, 0x2d, 0xaa, 0x9b, 0x48, 0x8b, 0x2a, 0xb5, 0x2e, 0x0a, 0xea, 0xa3, 0x69, 0x93, 0xab, 0xa7, 0x0a, 0xaf, 0x0b, 0xac, 0x8a, 0x9b, 0xdd, 0xa2, 0xaa, 0xbf,
+ 0x0b, 0xa4, 0xaa, 0x9b, 0xb1, 0xbf, 0xaf, 0x36, 0x0b, 0xac, 0xca, 0x9b, 0x29, 0xaa, 0xff, 0xfe, 0x2b, 0xac, 0x68, 0x9b, 0xa8, 0xea, 0xfa, 0x7f, 0x4b, 0xb4, 0x69, 0x93, 0xd7, 0xa9, 0x2b, 0xab,
+ 0x6c, 0xbc, 0x07, 0x8b, 0xaa, 0xae, 0x8a, 0x86, 0x2c, 0xac, 0x86, 0x72, 0x1a, 0x2a, 0xa2, 0x82, 0x6c, 0xbc, 0xab, 0x9b, 0xaf, 0x2f, 0x09, 0x29, 0x90, 0xdd, 0x83, 0x51, 0x2a, 0x8a, 0x4a, 0x48,
+ 0xe5, 0x59, 0x24, 0x29, 0xa2, 0xfa, 0xfa, 0x77, 0xc6, 0x49, 0x03, 0x19, 0xaa, 0x28, 0xfe, 0xf7, 0xe6, 0x49, 0xe4, 0x20, 0xa0, 0x7e, 0xd7, 0x5f, 0x85, 0x41, 0x04, 0x21, 0xe0, 0xad, 0x83, 0xa2,
+ 0x64, 0x39, 0x05, 0x21, 0xbf, 0xab, 0x0d, 0xab, 0x85, 0x41, 0x04, 0x31, 0xfd, 0x62, 0x7e, 0xd5, 0x45, 0x39, 0x03, 0x31, 0x5f, 0x5d, 0x52, 0x60, 0xe4, 0x38, 0x03, 0x29, 0xab, 0xbf, 0x97, 0x8a,
+ 0x44, 0x39, 0xc3, 0x28, 0xfc, 0x7a, 0xd2, 0x6a, 0x24, 0x31, 0xc3, 0x20, 0x8a, 0x7f, 0xf3, 0x2a, 0x04, 0x29, 0xc3, 0x20, 0xd0, 0xb3, 0x02, 0x50, 0x44, 0x31, 0xc3, 0x20, 0xaa, 0x37, 0xab, 0xa2,
+ 0x45, 0x39, 0xc3, 0x20, 0xd7, 0x80, 0xa8, 0xaa, 0x45, 0x31, 0xa3, 0x18, 0xff, 0xde, 0x78, 0xf0, 0x45, 0x31, 0xa3, 0x18, 0xa3, 0xea, 0x5d, 0xfa, 0x04, 0x29, 0xa3, 0x18, 0xb0, 0x55, 0xe7, 0x2b,
+ 0x24, 0x29, 0x82, 0x10, 0xbf, 0xdf, 0xff, 0x00, 0x24, 0x39, 0xa3, 0x18, 0xbf, 0x25, 0xb7, 0xfe, 0x44, 0x39, 0xa3, 0x20, 0x76, 0xde, 0xb7, 0x0f, 0x85, 0x39, 0xe4, 0x30, 0x0d, 0x20, 0xea, 0xff,
+ 0x8d, 0xbc, 0x2c, 0xb4, 0xed, 0xbe, 0xab, 0x8a, 0x6d, 0xbc, 0x4b, 0xb4, 0xfb, 0xab, 0xab, 0xe8, 0x4b, 0xbc, 0x8d, 0xb4, 0xe0, 0xaa, 0xa2, 0xbe, 0x6d, 0xbc, 0x2b, 0xb4, 0x7e, 0xaf, 0x8a, 0xea,
+ 0x6d, 0xbc, 0x4b, 0xb4, 0xd7, 0xff, 0xf7, 0xcd, 0x6c, 0xbc, 0x2b, 0xb4, 0xfd, 0xff, 0xdf, 0xba, 0x6d, 0xbc, 0x2b, 0xb4, 0xbb, 0xdc, 0xff, 0xfe, 0x4c, 0xb4, 0x2b, 0xac, 0x00, 0xaa, 0xb8, 0xa2,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xa8, 0xe8, 0x3e, 0xfe, 0x4c, 0xb4, 0x0a, 0xac, 0x8a, 0xa2, 0xfe, 0xdd, 0x2c, 0xb4, 0x0a, 0xac, 0x00, 0x88, 0x88, 0x6c, 0x6c, 0xb4, 0x0a, 0xac, 0x3f, 0xfe, 0xfb, 0xdf,
+ 0x4c, 0xb4, 0x0b, 0xac, 0x20, 0x38, 0xfe, 0xbf, 0x4c, 0xb4, 0x0b, 0xac, 0x8a, 0xa8, 0xd5, 0xfe, 0x4c, 0xb4, 0x0b, 0xac, 0x78, 0xfe, 0xab, 0x5e, 0x8e, 0xbc, 0x2b, 0xac, 0x55, 0xc5, 0xff, 0x55,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xbe, 0xda, 0xff, 0xe8, 0x2c, 0xac, 0xca, 0xa3, 0x00, 0xa8, 0xa8, 0xd8, 0x2c, 0xb4, 0xeb, 0xa3, 0xaa, 0xab, 0xfb, 0xeb, 0x2c, 0xac, 0xeb, 0xa3, 0xaa, 0x02, 0xe8, 0xcb,
+ 0x2c, 0xb4, 0xeb, 0xa3, 0xeb, 0xf0, 0xff, 0xf7, 0x4c, 0xac, 0xaa, 0xa3, 0xbb, 0xaa, 0x22, 0x7e, 0x2c, 0xac, 0xea, 0xa3, 0xd3, 0x7f, 0xf7, 0xbf, 0x2c, 0xac, 0xcb, 0xa3, 0xff, 0x29, 0x2a, 0x02,
+ 0x2c, 0xac, 0xca, 0x9b, 0x76, 0x2a, 0xa8, 0xa0, 0x2c, 0xac, 0xeb, 0xa3, 0xaa, 0x2a, 0xbe, 0xee, 0x2c, 0xac, 0xea, 0xa3, 0xf9, 0x42, 0xeb, 0xbb, 0x4c, 0xb4, 0xca, 0xa3, 0xbf, 0xfd, 0x2f, 0xbe,
+ 0x6c, 0xb4, 0xca, 0xa3, 0xff, 0xbf, 0xfd, 0xf8, 0x6c, 0xb4, 0xeb, 0xa3, 0xff, 0xbe, 0xff, 0x73, 0x4c, 0xac, 0xca, 0xa3, 0xe8, 0xba, 0xad, 0x62, 0x6c, 0xb4, 0x0b, 0xac, 0xce, 0x0f, 0x7f, 0x25,
+ 0x6d, 0xb4, 0xea, 0xa3, 0xf3, 0xfe, 0xff, 0xed, 0xce, 0xbc, 0x0b, 0xac, 0x5d, 0x7d, 0xd5, 0x83, 0x8d, 0xb4, 0x49, 0x8b, 0xa6, 0x2e, 0xa2, 0x80, 0xce, 0xbc, 0x0b, 0xac, 0xb7, 0x37, 0x8f, 0xb0,
+ 0xce, 0xbc, 0x0b, 0xac, 0xdd, 0x5d, 0x72, 0x2c, 0x2e, 0xcd, 0xcb, 0x9b, 0x5f, 0x8f, 0xff, 0xaf, 0xce, 0xbc, 0xeb, 0xa3, 0xd8, 0xcb, 0xbd, 0xff, 0xce, 0xbc, 0x0b, 0xa4, 0x2d, 0xdf, 0xae, 0xef,
+ 0xce, 0xbc, 0x2c, 0xac, 0x86, 0x7e, 0xd5, 0x77, 0xcd, 0xbc, 0xab, 0xa3, 0xa2, 0xfe, 0x7f, 0x2a, 0xce, 0xc4, 0x68, 0x93, 0xaa, 0x8f, 0xff, 0x5c, 0xad, 0xbc, 0x43, 0x7a, 0xaa, 0x82, 0xfa, 0x7b,
+ 0x0a, 0xac, 0x82, 0x61, 0x00, 0xa0, 0xfa, 0x57, 0x0a, 0xac, 0x83, 0x59, 0x00, 0xa8, 0x7f, 0x5d, 0xa9, 0xa3, 0x05, 0x5a, 0xbc, 0xaf, 0xf5, 0xfd, 0x6b, 0xac, 0xe5, 0x69, 0x0a, 0x7e, 0xdf, 0xff,
+ 0x8c, 0xbc, 0x66, 0x72, 0x00, 0xfd, 0xff, 0xff, 0x0a, 0xac, 0xe8, 0x82, 0xe0, 0x57, 0xd5, 0xaf, 0x2b, 0xac, 0x86, 0x7a, 0xaf, 0xbf, 0x2a, 0x42, 0x0a, 0xac, 0x62, 0x59, 0x02, 0xc0, 0x58, 0x5d,
+ 0x08, 0xac, 0x22, 0x51, 0x78, 0x57, 0x55, 0xdf, 0x68, 0x72, 0x43, 0x59, 0xd5, 0xf5, 0xff, 0x2b, 0xe9, 0x7a, 0x63, 0x59, 0x5f, 0xff, 0xaf, 0x0a, 0xc8, 0x7a, 0x84, 0x59, 0x55, 0xff, 0xaa, 0x28,
+ 0xab, 0x8b, 0x84, 0x59, 0xd5, 0xff, 0xaf, 0x0a, 0xeb, 0x9b, 0x26, 0x6a, 0x55, 0xff, 0xaa, 0x00, 0x0b, 0xa4, 0x88, 0x72, 0xb5, 0x2f, 0x8a, 0x80, 0x2c, 0xa4, 0x6a, 0x93, 0xd6, 0xa7, 0x2f, 0x0e,
+ 0x4c, 0xac, 0x4a, 0x93, 0xab, 0xe8, 0xde, 0x80, 0x2c, 0xa4, 0x25, 0x6a, 0xd7, 0x0b, 0x80, 0x80, 0x0b, 0xa4, 0xe9, 0x72, 0xad, 0x20, 0x20, 0x22, 0xeb, 0x9b, 0x6a, 0x8b, 0xf5, 0x42, 0x73, 0x22,
+ 0xeb, 0x9b, 0x49, 0x8b, 0xf6, 0x77, 0x01, 0xf8, 0x0b, 0xa4, 0x08, 0x83, 0xdf, 0x9d, 0xba, 0xa3, 0xcb, 0x9b, 0x08, 0x83, 0x7f, 0xea, 0x2a, 0xa0, 0xea, 0x9b, 0x08, 0x83, 0xfd, 0xea, 0x80, 0xea,
+ 0x6a, 0x93, 0x43, 0x6a, 0xa8, 0x00, 0x00, 0xd7, 0xc9, 0x9b, 0xa3, 0x59, 0x0a, 0xaa, 0x00, 0x57, 0x68, 0x8b, 0x05, 0x6a, 0x88, 0x00, 0x6f, 0x2d, 0xea, 0x9b, 0xa4, 0x51, 0xaa, 0xa8, 0x5f, 0xaf,
+ 0x69, 0x8b, 0x23, 0x51, 0x00, 0x5a, 0x2b, 0x02, 0x89, 0x93, 0xa5, 0x59, 0x00, 0xf5, 0x00, 0xea, 0x69, 0x8b, 0xc5, 0x59, 0x5a, 0xae, 0x80, 0xaf, 0x69, 0x8b, 0x06, 0x62, 0xe5, 0x8a, 0x7f, 0x02,
+ 0xa9, 0x93, 0x88, 0x72, 0xaa, 0xaa, 0xad, 0xa0, 0x69, 0x8b, 0x45, 0x6a, 0xa8, 0xff, 0xa0, 0xde, 0x69, 0x8b, 0xc4, 0x61, 0xaa, 0x02, 0xe8, 0x7a, 0x08, 0x83, 0xe4, 0x61, 0xe8, 0x60, 0x9e, 0x09,
+ 0x69, 0x93, 0x25, 0x6a, 0x81, 0x83, 0x80, 0x00, 0xa9, 0x9b, 0x08, 0x83, 0xbd, 0xad, 0x8f, 0x7c, 0x89, 0x93, 0xc3, 0x61, 0x80, 0x0c, 0xc2, 0x7a, 0x68, 0x93, 0x42, 0x51, 0x82, 0xaa, 0x7f, 0xb5,
+ 0x47, 0x8b, 0x23, 0x51, 0xe0, 0xbe, 0xad, 0xaa, 0x69, 0x93, 0x04, 0x62, 0x09, 0x22, 0xfb, 0xae, 0xaa, 0x9b, 0x04, 0x62, 0x02, 0x6a, 0xab, 0xaa, 0xa9, 0x93, 0xa5, 0x61, 0x00, 0x9d, 0x2a, 0x2a,
+ 0x89, 0x9b, 0xc7, 0x82, 0xd6, 0x2f, 0x00, 0x00, 0xa9, 0xa3, 0x28, 0x93, 0x6f, 0x2a, 0x5c, 0x3e, 0xaa, 0xa3, 0x23, 0x49, 0x5e, 0x7c, 0x5c, 0x56, 0x83, 0x59, 0xa2, 0x30, 0x3b, 0xbf, 0xd7, 0xde,
+ 0x85, 0x72, 0x43, 0x51, 0x2b, 0x03, 0xf5, 0xf5, 0x48, 0x8b, 0x42, 0x51, 0x8a, 0xd7, 0xdf, 0xff, 0x48, 0x8b, 0x25, 0x6a, 0xb2, 0xd5, 0xd5, 0xfd, 0x28, 0x8b, 0x66, 0x7a, 0x8a, 0x7e, 0x8a, 0x8a,
+ 0x69, 0x93, 0xe4, 0x69, 0x09, 0x2b, 0x02, 0x02, 0xaa, 0x9b, 0x28, 0x8b, 0xff, 0xbd, 0xe3, 0x60, 0xaa, 0x9b, 0x69, 0x93, 0x01, 0xa8, 0xf9, 0xfd, 0x0b, 0xac, 0x89, 0x9b, 0xbf, 0xeb, 0x8d, 0x8b,
+ 0xeb, 0xab, 0xa9, 0x9b, 0xaa, 0xfe, 0x3c, 0x0a, 0xea, 0xa3, 0x69, 0x93, 0xfa, 0xb2, 0xaa, 0x92, 0xca, 0xa3, 0x48, 0x93, 0xb6, 0xe8, 0x3c, 0x32, 0x4b, 0xb4, 0x68, 0x9b, 0xa3, 0xa3, 0xbb, 0x6b,
+ 0x4c, 0xb4, 0x86, 0x7a, 0x04, 0x0c, 0x8a, 0x02, 0x6c, 0xbc, 0x69, 0x9b, 0xea, 0x2a, 0x6a, 0x6c, 0x70, 0xd5, 0x23, 0x72, 0xab, 0x29, 0x29, 0xa3, 0x2f, 0xd5, 0x64, 0x49, 0x60, 0x60, 0x70, 0x50,
+ 0x85, 0x41, 0x24, 0x39, 0xe1, 0xe3, 0x28, 0x96, 0x64, 0x31, 0xe3, 0x20, 0xfe, 0xfe, 0x9a, 0xd8, 0x44, 0x39, 0xe3, 0x20, 0x79, 0x7e, 0x28, 0xff, 0x65, 0x39, 0xc3, 0x18, 0xfe, 0x7f, 0xdf, 0x2a,
+ 0x65, 0x39, 0x04, 0x21, 0xff, 0x35, 0x9d, 0xb8, 0x65, 0x39, 0x04, 0x29, 0x35, 0x7e, 0xa2, 0xf8, 0x85, 0x39, 0x03, 0x31, 0xb8, 0xa9, 0x7a, 0xff, 0x24, 0x39, 0xc3, 0x30, 0xf4, 0xbe, 0x4f, 0x8b,
+ 0x04, 0x39, 0xc3, 0x28, 0xb8, 0x5c, 0xac, 0xbe, 0x45, 0x39, 0xa3, 0x20, 0x82, 0x5b, 0xfa, 0xfc, 0x65, 0x31, 0xa3, 0x18, 0xff, 0x57, 0x56, 0x8b, 0x44, 0x31, 0xc3, 0x18, 0x9e, 0xb5, 0x8b, 0xea,
+ 0x44, 0x39, 0xc3, 0x28, 0xaf, 0x0d, 0xa0, 0xab, 0x85, 0x39, 0x24, 0x31, 0xf5, 0x83, 0xe1, 0x75, 0x85, 0x39, 0x24, 0x29, 0xee, 0xf2, 0x3d, 0x5f, 0x85, 0x39, 0x24, 0x29, 0xf5, 0x8a, 0x7d, 0x55,
+ 0x65, 0x31, 0x24, 0x29, 0xf6, 0xba, 0x64, 0xa6, 0x65, 0x39, 0x04, 0x21, 0xf7, 0x3b, 0xff, 0x9f, 0x24, 0x31, 0xc3, 0x28, 0xb7, 0x96, 0xe7, 0xbe, 0x65, 0x41, 0xc3, 0x20, 0x02, 0x8b, 0xd5, 0x7f,
+ 0x6d, 0xbc, 0x4c, 0xac, 0xfb, 0xeb, 0xaa, 0xab, 0x6d, 0xbc, 0x4b, 0xac, 0xca, 0xab, 0xab, 0xaa, 0x8c, 0xbc, 0x4c, 0xb4, 0xff, 0x7f, 0xe5, 0x7d, 0x6c, 0xbc, 0x4b, 0xb4, 0xff, 0xbf, 0xbe, 0xa7,
+ 0x6c, 0xb4, 0x4c, 0xb4, 0xca, 0xd5, 0xe2, 0xad, 0x6c, 0xbc, 0x2b, 0xac, 0xbe, 0xea, 0xab, 0xfe, 0x6c, 0xbc, 0x2b, 0xac, 0xfa, 0x7f, 0xff, 0xdf, 0x4c, 0xb4, 0x0a, 0xac, 0xa8, 0xea, 0x2a, 0x9a,
+ 0x4c, 0xb4, 0x0b, 0xac, 0xfb, 0x75, 0xf7, 0xa2, 0x2c, 0xb4, 0xea, 0xab, 0xea, 0x0b, 0xfa, 0xa2, 0x0c, 0xb4, 0x2a, 0xac, 0xde, 0xeb, 0x5e, 0xd7, 0x2b, 0xb4, 0xea, 0xab, 0xba, 0xa6, 0xde, 0x7f,
+ 0x2b, 0xb4, 0x0a, 0xa4, 0xea, 0xfa, 0xbf, 0xf7, 0x2b, 0xac, 0x0b, 0xac, 0x83, 0xd5, 0x58, 0x9f, 0x2b, 0xb4, 0xea, 0xa3, 0xab, 0x8e, 0xfa, 0xea, 0x4c, 0xb4, 0xea, 0xa3, 0xaa, 0xfe, 0x7d, 0xfd,
+ 0x2b, 0xac, 0xea, 0xa3, 0x2a, 0xa2, 0xff, 0x5f, 0x2b, 0xac, 0xea, 0xa3, 0xae, 0xea, 0xba, 0xf5, 0x4c, 0xac, 0xea, 0xa3, 0xaa, 0xde, 0xff, 0xcf, 0x0b, 0xac, 0xea, 0xa3, 0x80, 0xa2, 0xbe, 0xfd,
+ 0x2b, 0xac, 0xea, 0xa3, 0x8b, 0xbf, 0xbd, 0x5e, 0x2c, 0xac, 0xea, 0xa3, 0xab, 0x6e, 0xea, 0xbd, 0xad, 0xbc, 0x0b, 0xa4, 0x55, 0x55, 0xd7, 0xf8, 0xee, 0xc4, 0x0b, 0xac, 0x75, 0x55, 0x55, 0x78,
+ 0x2c, 0xb4, 0x0b, 0xa4, 0xfa, 0xea, 0xab, 0xff, 0x2c, 0xb4, 0xea, 0xa3, 0xf2, 0xea, 0x0a, 0xef, 0x6c, 0xb4, 0xeb, 0xab, 0x55, 0xeb, 0x77, 0x2f, 0x2c, 0xac, 0xea, 0xa3, 0x7a, 0x7b, 0xff, 0x7a,
+ 0x0b, 0xac, 0xca, 0xa3, 0xcb, 0xac, 0xf9, 0xab, 0x2b, 0xac, 0xaa, 0x9b, 0xea, 0x7e, 0xce, 0x5f, 0xeb, 0xa3, 0xa9, 0x9b, 0x0d, 0xab, 0xef, 0x5d, 0x0b, 0xac, 0x48, 0x93, 0xaa, 0x8a, 0xea, 0xdf,
+ 0x4c, 0xac, 0x69, 0x93, 0x08, 0x0a, 0xa9, 0xfd, 0x6d, 0xb4, 0xca, 0xa3, 0xb8, 0x2a, 0xeb, 0x55, 0x8d, 0xb4, 0x89, 0x9b, 0xa8, 0x22, 0xab, 0xf7, 0x30, 0xcd, 0x89, 0x9b, 0xff, 0x8b, 0xbf, 0x55,
+ 0xce, 0xbc, 0xca, 0xa3, 0x08, 0xa0, 0xff, 0x7d, 0x8d, 0xbc, 0xca, 0x9b, 0x82, 0xbf, 0x30, 0xbd, 0x4b, 0xac, 0xca, 0xa3, 0xa2, 0x82, 0xef, 0xf7, 0x6c, 0xb4, 0xeb, 0xab, 0x7b, 0x57, 0xbf, 0xcb,
+ 0x0e, 0xc5, 0x0b, 0xac, 0xfd, 0xfd, 0x3d, 0x7f, 0x8c, 0xbc, 0xc2, 0x69, 0x00, 0xa0, 0xc8, 0x58, 0xe9, 0xab, 0x63, 0x59, 0xc0, 0x58, 0x55, 0x55, 0x46, 0x6a, 0x63, 0x51, 0x7e, 0x57, 0xd5, 0x2f,
+ 0x08, 0x7b, 0x64, 0x51, 0x75, 0xf5, 0xab, 0x00, 0x49, 0x8b, 0xe5, 0x61, 0xfd, 0xaf, 0xaa, 0x0a, 0x69, 0x8b, 0x87, 0x72, 0xb5, 0xaf, 0xaa, 0x00, 0xca, 0x9b, 0x08, 0x8b, 0xd5, 0xff, 0xaf, 0x2a,
+ 0x0a, 0xa4, 0x29, 0x8b, 0xff, 0x0b, 0xa2, 0x5a, 0x2b, 0xac, 0xe4, 0x69, 0x02, 0x60, 0xe8, 0xfe, 0xca, 0x9b, 0xe4, 0x69, 0x5c, 0x55, 0xfe, 0xab, 0x6a, 0x8b, 0xc4, 0x61, 0xf5, 0xbf, 0xaa, 0x02,
+ 0xaa, 0x93, 0x06, 0x62, 0xfd, 0xab, 0xaa, 0x00, 0xaa, 0x9b, 0xa8, 0x7a, 0xf5, 0xbf, 0x2a, 0x00, 0xcb, 0x9b, 0x09, 0x83, 0x55, 0xfe, 0xaa, 0x02, 0xec, 0xa3, 0xe8, 0x7a, 0x5d, 0xbe, 0x2a, 0x02,
+ 0xeb, 0xa3, 0x6a, 0x8b, 0xad, 0x0a, 0x22, 0x80, 0x4c, 0xac, 0x89, 0x93, 0xaf, 0xa8, 0xee, 0x75, 0x6c, 0xb4, 0x8a, 0x93, 0xab, 0xa0, 0xff, 0xd5, 0x4c, 0xac, 0xaa, 0x9b, 0x2b, 0xfa, 0x25, 0x2f,
+ 0x6c, 0xac, 0xca, 0x9b, 0xb0, 0xea, 0x7a, 0x78, 0x4c, 0xac, 0xca, 0x9b, 0x76, 0x37, 0x5e, 0xfe, 0x2c, 0xac, 0x8a, 0x93, 0xa2, 0xee, 0xda, 0x1f, 0xae, 0xb4, 0x28, 0x8b, 0xff, 0xaf, 0x2a, 0x5f,
+ 0x4c, 0xac, 0xc7, 0x7a, 0x0a, 0x20, 0xe8, 0xfd, 0x0b, 0xa4, 0x06, 0x6a, 0x80, 0x00, 0xf8, 0xd7, 0x2b, 0xa4, 0x64, 0x51, 0x0a, 0xf8, 0xb5, 0xaa, 0xaa, 0x93, 0x05, 0x62, 0xdc, 0x2d, 0xe0, 0xaa,
+ 0xeb, 0x9b, 0xa7, 0x72, 0xff, 0xfe, 0xbd, 0xdc, 0x89, 0x93, 0x68, 0x6a, 0xd7, 0x0a, 0xa0, 0x28, 0x69, 0x93, 0xa7, 0x72, 0xfd, 0xae, 0x00, 0xe0, 0xaa, 0x9b, 0xe7, 0x7a, 0x15, 0xff, 0xdb, 0xff,
+ 0xaa, 0x93, 0xe7, 0x82, 0xe3, 0xd6, 0x98, 0xcd, 0xaa, 0x93, 0xc6, 0x7a, 0xad, 0xef, 0x2b, 0x5e, 0xca, 0x93, 0x26, 0x6a, 0x80, 0xaf, 0xa0, 0x5e, 0x88, 0x93, 0xe5, 0x61, 0x00, 0xfa, 0x7a, 0x7d,
+ 0x27, 0x8b, 0x63, 0x51, 0xf8, 0x5f, 0xbf, 0x2d, 0xca, 0x93, 0x83, 0x59, 0xf5, 0xaf, 0xaa, 0xa2, 0x89, 0x93, 0xe5, 0x61, 0xd7, 0xaf, 0xaa, 0x20, 0x68, 0x93, 0x46, 0x6a, 0xea, 0x7e, 0xef, 0xe8,
+ 0xe7, 0x82, 0x25, 0x6a, 0x2c, 0xb5, 0x0a, 0xbe, 0x29, 0x83, 0x04, 0x6a, 0x7a, 0xff, 0x28, 0x0a, 0x69, 0x8b, 0xc3, 0x61, 0xd5, 0x2f, 0xfa, 0xaa, 0xeb, 0x9b, 0xe4, 0x59, 0xa5, 0xab, 0xbb, 0x0b,
+ 0xaa, 0x9b, 0x08, 0x7b, 0x5f, 0xea, 0x8b, 0x82, 0xa9, 0x9b, 0xe8, 0x72, 0xe5, 0xaa, 0x80, 0xaa, 0x4c, 0xb4, 0xe7, 0x82, 0xd7, 0xff, 0x3f, 0xae, 0xea, 0xa3, 0x08, 0x83, 0xd7, 0xaa, 0xa0, 0xa8,
+ 0xca, 0xa3, 0x69, 0x93, 0xfe, 0xec, 0x6b, 0xae, 0xcb, 0x9b, 0x68, 0x93, 0xdf, 0xdf, 0xfb, 0xa8, 0x0b, 0xac, 0x43, 0x51, 0x56, 0x5e, 0x5c, 0x5e, 0x43, 0x51, 0xe2, 0x40, 0xd4, 0x1e, 0xa6, 0x0a,
+ 0xc5, 0x61, 0x02, 0x51, 0xad, 0x2f, 0xbf, 0xee, 0x66, 0x6a, 0xa4, 0x59, 0xbf, 0xc3, 0x7d, 0xa2, 0x48, 0x8b, 0x66, 0x6a, 0xbf, 0xaf, 0xad, 0x02, 0x69, 0x93, 0xc8, 0x7a, 0xd5, 0xa7, 0x2f, 0x02,
+ 0xca, 0x9b, 0x29, 0x8b, 0xbd, 0xaf, 0x8a, 0xaa, 0xeb, 0xa3, 0x28, 0x8b, 0xff, 0x2d, 0x82, 0x8a, 0xcb, 0xa3, 0xa9, 0x9b, 0x97, 0x95, 0xf7, 0x55, 0x0b, 0xac, 0xca, 0xa3, 0x83, 0xe3, 0xad, 0xc9,
+ 0x0b, 0xac, 0xc9, 0xa3, 0xef, 0xdf, 0x2a, 0xae, 0x0b, 0xac, 0xaa, 0xa3, 0x7f, 0xe8, 0xe8, 0xaa, 0x0b, 0xac, 0x69, 0x9b, 0xdb, 0x32, 0xae, 0x0a, 0x6c, 0xbc, 0x89, 0x9b, 0xce, 0x1e, 0x9b, 0xbb,
+ 0xad, 0xbc, 0xc9, 0xab, 0x22, 0xba, 0xba, 0x6a, 0x8c, 0xbc, 0x68, 0xa3, 0x00, 0xfe, 0x2a, 0x9f, 0xce, 0xc4, 0x2b, 0xb4, 0x1a, 0xbd, 0x90, 0xe9, 0x8d, 0xc4, 0x04, 0x39, 0x58, 0x5c, 0xdc, 0x57,
+ 0xa6, 0x41, 0x44, 0x39, 0xdf, 0xea, 0x78, 0x7e, 0xa6, 0x41, 0xc3, 0x20, 0xf2, 0x0b, 0xf7, 0x57, 0x65, 0x41, 0xc3, 0x20, 0x2f, 0x8a, 0x7f, 0xdd, 0xa5, 0x39, 0xa3, 0x20, 0xa0, 0xfa, 0xfd, 0xeb,
+ 0x65, 0x31, 0xe4, 0x28, 0x5f, 0xf9, 0xea, 0x03, 0x65, 0x39, 0x04, 0x29, 0xf2, 0x5d, 0x75, 0xfa, 0x24, 0x31, 0xc3, 0x20, 0x8a, 0x57, 0x3f, 0x3e, 0x44, 0x39, 0xe3, 0x28, 0x89, 0x2b, 0xf8, 0xfe,
+ 0x44, 0x39, 0xe3, 0x30, 0xd0, 0xaa, 0xab, 0xfd, 0x65, 0x39, 0xc3, 0x20, 0x97, 0xbb, 0xa2, 0xca, 0x65, 0x39, 0xa3, 0x20, 0xa0, 0xba, 0x36, 0xd7, 0x84, 0x31, 0xc3, 0x20, 0x75, 0xab, 0x8a, 0x0f,
+ 0x85, 0x39, 0xe3, 0x28, 0x2d, 0x5e, 0xa0, 0x8a, 0x65, 0x31, 0xe4, 0x28, 0xb4, 0x7d, 0xfe, 0x00, 0x65, 0x31, 0xc4, 0x20, 0xa0, 0xb7, 0x5f, 0xab, 0x84, 0x29, 0xc3, 0x18, 0x0a, 0x5a, 0x5f, 0xfb,
+ 0x44, 0x31, 0xc3, 0x20, 0x28, 0xab, 0xe9, 0xa5, 0x44, 0x39, 0xe3, 0x20, 0x9a, 0xf7, 0x3d, 0x37, 0x65, 0x41, 0xe3, 0x30, 0x5a, 0xfa, 0xfe, 0x9c, 0x45, 0x39, 0xe3, 0x30, 0xd7, 0xae, 0xe9, 0xe2,
+ 0x8d, 0xbc, 0x4c, 0xb4, 0xfb, 0x5f, 0x5f, 0x2e, 0x8d, 0xbc, 0x4b, 0xac, 0xfb, 0xab, 0xff, 0xfa, 0x6d, 0xbc, 0x4b, 0xb4, 0xef, 0xa2, 0xfb, 0xa9, 0x6c, 0xbc, 0x2b, 0xac, 0xa2, 0xaa, 0xea, 0xee,
+ 0x6b, 0xbc, 0x2c, 0xac, 0xba, 0xea, 0xbf, 0xeb, 0x6c, 0xb4, 0x2b, 0xac, 0xda, 0xbf, 0x5c, 0xff, 0x6b, 0xb4, 0x0c, 0xac, 0xfa, 0xf8, 0x7f, 0xff, 0x4b, 0xb4, 0x0b, 0xac, 0xb8, 0xeb, 0xff, 0xff,
+ 0x4b, 0xb4, 0x0a, 0xac, 0xfa, 0xdf, 0xff, 0x5d, 0x8c, 0xb4, 0x0b, 0xac, 0xc9, 0x75, 0x55, 0x57, 0x2c, 0xb4, 0xea, 0xa3, 0xaa, 0xbe, 0xef, 0x77, 0x4c, 0xb4, 0xeb, 0xab, 0xe7, 0xfa, 0xff, 0x2d,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xf5, 0xf5, 0xca, 0xae, 0xad, 0xbc, 0x0b, 0xac, 0x57, 0x7d, 0x7f, 0x58, 0x2b, 0xac, 0xea, 0xa3, 0xe3, 0x3a, 0x20, 0xf2, 0x6c, 0xb4, 0xeb, 0xa3, 0xff, 0xd7, 0x8b, 0xd5,
+ 0x2c, 0xb4, 0xeb, 0xa3, 0xff, 0xff, 0xe0, 0xa6, 0x2b, 0xb4, 0xca, 0xa3, 0xff, 0xff, 0xde, 0x82, 0x4b, 0xac, 0xaa, 0xa3, 0xff, 0xbd, 0xbc, 0xf8, 0x2b, 0xac, 0x47, 0x93, 0xaa, 0xaa, 0x88, 0x5f,
+ 0x0b, 0xac, 0x28, 0x93, 0x80, 0x2a, 0xac, 0xf5, 0x8d, 0xb4, 0x89, 0x9b, 0xeb, 0xa0, 0xbd, 0xfd, 0x4b, 0xb4, 0xca, 0xa3, 0xbf, 0x2a, 0xae, 0xd7, 0x8c, 0xb4, 0x68, 0x9b, 0x00, 0xa0, 0xfa, 0x7f,
+ 0x6c, 0xb4, 0x28, 0x93, 0xa0, 0xaa, 0xff, 0x75, 0x0b, 0xac, 0xe7, 0x8a, 0x00, 0x00, 0xfa, 0x55, 0x0a, 0xac, 0x86, 0x82, 0x00, 0x00, 0xea, 0x57, 0x2a, 0xb4, 0x86, 0x7a, 0xa0, 0xaa, 0x5f, 0x55,
+ 0xe9, 0xab, 0x25, 0x6a, 0x00, 0xa8, 0x55, 0xff, 0xea, 0xa3, 0x04, 0x6a, 0x80, 0x57, 0xf5, 0xaf, 0xc9, 0x9b, 0x47, 0x72, 0xa8, 0xd5, 0xf5, 0x2a, 0x2c, 0xac, 0x66, 0x72, 0xf5, 0xbd, 0xaa, 0xa2,
+ 0xea, 0xa3, 0xe7, 0x82, 0xab, 0x82, 0xe2, 0xd8, 0xca, 0xa3, 0x69, 0x93, 0xb6, 0xab, 0x29, 0x2f, 0xca, 0xa3, 0x89, 0x9b, 0x8f, 0xcf, 0xf7, 0x3e, 0x50, 0xcd, 0x69, 0x9b, 0xd7, 0xfd, 0xff, 0x3f,
+ 0x8e, 0xbc, 0x86, 0x9b, 0xf8, 0xaf, 0xaa, 0x5a, 0x2c, 0xb4, 0xca, 0xa3, 0x6b, 0x1e, 0xbe, 0x9f, 0x8d, 0xb4, 0xea, 0xa3, 0xfd, 0x3e, 0xae, 0x4a, 0x6c, 0xb4, 0xc2, 0x61, 0x00, 0x00, 0xa0, 0x5e,
+ 0xca, 0xc4, 0xe4, 0x61, 0xa8, 0x7a, 0x57, 0xff, 0x87, 0x72, 0x63, 0x59, 0xf6, 0xfe, 0xaa, 0x80, 0x29, 0x83, 0x64, 0x59, 0xd5, 0xbf, 0x2b, 0x02, 0x8a, 0x93, 0xe6, 0x59, 0xad, 0xab, 0x02, 0x00,
+ 0xaa, 0x9b, 0x08, 0x83, 0xd5, 0x2f, 0xa2, 0xa8, 0xaa, 0x9b, 0x29, 0x8b, 0x5f, 0x68, 0xff, 0x2f, 0xca, 0x9b, 0x49, 0x8b, 0xff, 0x35, 0x0d, 0xa8, 0xeb, 0x9b, 0x8a, 0x93, 0x7f, 0x38, 0x77, 0xa2,
+ 0xeb, 0xa3, 0x29, 0x8b, 0x7a, 0xdc, 0xae, 0xaa, 0x0b, 0xa4, 0x09, 0x83, 0x5f, 0xff, 0xaa, 0x2a, 0x0b, 0xac, 0x09, 0x8b, 0xf5, 0xaa, 0xaa, 0x00, 0xeb, 0xa3, 0x47, 0x8b, 0xbb, 0xa8, 0x22, 0x78,
+ 0xeb, 0xa3, 0xa6, 0x82, 0xaa, 0x00, 0x80, 0x5f, 0x0b, 0xa4, 0xc7, 0x7a, 0xa0, 0x00, 0xaa, 0x55, 0xeb, 0xa3, 0x87, 0x72, 0x02, 0x02, 0xa8, 0x55, 0xeb, 0xa3, 0x87, 0x72, 0x00, 0x00, 0xea, 0x55,
+ 0x0a, 0xac, 0x67, 0x72, 0xaa, 0x02, 0xfe, 0x55, 0xca, 0x9b, 0x67, 0x72, 0x80, 0x00, 0xff, 0x5d, 0x2b, 0xac, 0x66, 0x6a, 0x22, 0x00, 0xff, 0x55, 0x8c, 0xbc, 0x45, 0x72, 0x0a, 0xaa, 0xff, 0x55,
+ 0x8c, 0xb4, 0x45, 0x6a, 0xa0, 0xba, 0xab, 0x55, 0x0b, 0xa4, 0x45, 0x72, 0x2a, 0xa0, 0x00, 0x55, 0x6c, 0xac, 0x25, 0x72, 0x8a, 0xfe, 0xa8, 0x55, 0x0c, 0xa4, 0xa6, 0x7a, 0xab, 0x02, 0xab, 0xad,
+ 0x0b, 0xa4, 0x2a, 0x8b, 0xd5, 0x8a, 0xfe, 0xfb, 0xeb, 0x9b, 0x08, 0x8b, 0xea, 0xea, 0x77, 0x22, 0xeb, 0x9b, 0x29, 0x8b, 0xaf, 0x8a, 0x7e, 0x8a, 0xab, 0x9b, 0x25, 0x6a, 0xbb, 0xbe, 0xaa, 0x04,
+ 0xcb, 0x9b, 0x86, 0x7a, 0xd6, 0x2b, 0xfb, 0x02, 0x0c, 0x9c, 0x08, 0x83, 0xff, 0x7f, 0xbf, 0x8a, 0x8a, 0x93, 0xc7, 0x7a, 0xba, 0x77, 0x2a, 0x08, 0xab, 0x93, 0xc7, 0x7a, 0x7e, 0x7d, 0x82, 0x88,
+ 0x69, 0x8b, 0x66, 0x6a, 0x89, 0x08, 0xa9, 0xa2, 0xeb, 0x9b, 0x05, 0x6a, 0x3e, 0xaa, 0x7a, 0x7f, 0x28, 0x83, 0xc5, 0x59, 0x28, 0xe8, 0xd6, 0x0b, 0x6a, 0x8b, 0xe5, 0x59, 0x7a, 0xbf, 0xab, 0x0a,
+ 0xea, 0x9b, 0x06, 0x62, 0xad, 0xbf, 0xaa, 0x8a, 0x69, 0x93, 0xc7, 0x7a, 0xba, 0x8b, 0xc9, 0xe0, 0x48, 0x8b, 0x46, 0x6a, 0xf2, 0xa0, 0x1c, 0xc0, 0x48, 0x8b, 0x46, 0x72, 0xab, 0xfa, 0x8f, 0x2d,
+ 0x89, 0x93, 0x87, 0x7a, 0xdf, 0xbf, 0xad, 0x02, 0xaa, 0x93, 0xa7, 0x7a, 0xd7, 0xff, 0xaf, 0x00, 0xea, 0x9b, 0x66, 0x72, 0xae, 0xbf, 0x4a, 0x62, 0x0b, 0xa4, 0xc7, 0x7a, 0xa1, 0xa9, 0x82, 0xa3,
+ 0xeb, 0x9b, 0x28, 0x8b, 0xd5, 0xa0, 0xba, 0xea, 0xea, 0xa3, 0x69, 0x93, 0xc7, 0xf9, 0x00, 0xd9, 0xea, 0xa3, 0x69, 0x93, 0x89, 0xa3, 0x2a, 0xda, 0xca, 0xa3, 0x69, 0x8b, 0xac, 0xba, 0x2c, 0xbd,
+ 0x0a, 0xa4, 0x48, 0x8b, 0x7a, 0xbe, 0x2a, 0x6a, 0xeb, 0x9b, 0x48, 0x93, 0x2e, 0x82, 0x82, 0x7a, 0xa9, 0x9b, 0x23, 0x49, 0x7c, 0x7c, 0x7e, 0x5f, 0x84, 0x59, 0x22, 0x49, 0xad, 0xad, 0x8d, 0x02,
+ 0x67, 0x72, 0x83, 0x51, 0xd5, 0xf5, 0xb5, 0x0f, 0x08, 0x83, 0x46, 0x6a, 0xbf, 0x0b, 0xb5, 0xab, 0x49, 0x8b, 0xa7, 0x7a, 0x0a, 0x02, 0x7d, 0xbf, 0x89, 0x93, 0x08, 0x83, 0xbf, 0xbf, 0x95, 0x8a,
+ 0xa9, 0x93, 0x08, 0x8b, 0x32, 0x2a, 0xb3, 0x5e, 0x4b, 0xac, 0x08, 0x8b, 0x8a, 0xf8, 0x57, 0xfd, 0xaa, 0x9b, 0x49, 0x93, 0x2a, 0x5f, 0x8f, 0x0a, 0xeb, 0xa3, 0x89, 0x9b, 0x02, 0x75, 0xed, 0x57,
+ 0xea, 0xab, 0x89, 0x9b, 0xa8, 0x5f, 0xf7, 0xd7, 0xca, 0xa3, 0x69, 0x9b, 0x8a, 0xef, 0xe8, 0xf7, 0xea, 0xa3, 0x89, 0x9b, 0x2e, 0xab, 0x89, 0x0b, 0x0b, 0xac, 0x89, 0xa3, 0x9f, 0x0a, 0x0c, 0x00,
+ 0x4b, 0xb4, 0xca, 0xab, 0x74, 0xae, 0xa3, 0xbb, 0xcd, 0xc4, 0xea, 0xab, 0xdd, 0x3f, 0x2d, 0xad, 0x4f, 0xd5, 0x22, 0x49, 0x02, 0x00, 0xc0, 0x48, 0xc5, 0x49, 0x24, 0x39, 0x7a, 0xff, 0xbe, 0x82,
+ 0xc6, 0x49, 0x04, 0x39, 0xd7, 0x7f, 0x02, 0x88, 0xc6, 0x49, 0xc4, 0x20, 0x57, 0xaf, 0x88, 0x00, 0xe6, 0x49, 0x04, 0x21, 0xbd, 0xaa, 0xe2, 0x00, 0xa6, 0x41, 0x45, 0x31, 0xab, 0xf8, 0xfe, 0x8a,
+ 0xa5, 0x39, 0x04, 0x31, 0xe8, 0xfe, 0x5f, 0x7f, 0x45, 0x31, 0xc3, 0x28, 0xa0, 0xaa, 0x82, 0x9a, 0x64, 0x41, 0xe3, 0x28, 0xd5, 0xf5, 0x37, 0x77, 0x86, 0x41, 0xe3, 0x28, 0x5f, 0x5f, 0xae, 0x01,
+ 0xa7, 0x41, 0x03, 0x29, 0x7d, 0xd7, 0xfe, 0xe0, 0x86, 0x39, 0xc3, 0x20, 0xff, 0xdf, 0xfe, 0x02, 0xa6, 0x39, 0xe4, 0x28, 0xfd, 0xf5, 0xef, 0x0b, 0x07, 0x4a, 0xe3, 0x28, 0x55, 0xf5, 0xaf, 0xa2,
+ 0x89, 0x5a, 0x03, 0x29, 0xf5, 0xff, 0xae, 0x8a, 0x68, 0x5a, 0x45, 0x31, 0x5d, 0xff, 0x8a, 0xaa, 0xc6, 0x49, 0x65, 0x29, 0x5f, 0xfe, 0xaa, 0xf2, 0x85, 0x39, 0x24, 0x29, 0xf7, 0x7a, 0x62, 0xfe,
+ 0x86, 0x39, 0xe3, 0x20, 0xff, 0x5f, 0xbf, 0x88, 0x65, 0x39, 0xe3, 0x30, 0xff, 0xfd, 0xdf, 0xca, 0x07, 0x4a, 0x04, 0x39, 0xad, 0xb5, 0x55, 0xe2, 0x06, 0x4a, 0x25, 0x39, 0x5e, 0xde, 0x7b, 0x29,
+ 0xad, 0xbc, 0x4b, 0xb4, 0x2b, 0xb3, 0x38, 0x7f, 0xce, 0xbc, 0x4c, 0xb4, 0xff, 0x3b, 0x0b, 0xe9, 0x0f, 0xc5, 0x4b, 0xb4, 0xff, 0xaa, 0x23, 0xfd, 0xee, 0xc4, 0x4c, 0xb4, 0xf5, 0xba, 0x82, 0x7f,
+ 0x4e, 0xc5, 0x6d, 0xb4, 0x55, 0x7f, 0xfd, 0x89, 0x2e, 0xcd, 0x4c, 0xac, 0x5f, 0x7f, 0xf6, 0x78, 0x8d, 0xbc, 0x2c, 0xac, 0xeb, 0x62, 0xf8, 0x2d, 0xae, 0xbc, 0x0b, 0xac, 0xff, 0x2e, 0x5d, 0x87,
+ 0x6c, 0xb4, 0xeb, 0x9b, 0xba, 0x58, 0x3b, 0xab, 0x6c, 0xb4, 0xea, 0xa3, 0x3a, 0x5f, 0x77, 0x57, 0x4c, 0xb4, 0xeb, 0xa3, 0xff, 0xff, 0x3b, 0xad, 0x6c, 0xbc, 0xea, 0xab, 0xbd, 0xcb, 0xfa, 0x57,
+ 0x4c, 0xb4, 0x68, 0x9b, 0x20, 0x2a, 0xfc, 0x7a, 0x2b, 0xb4, 0x89, 0x9b, 0xa8, 0x08, 0x57, 0x55, 0x2b, 0xb4, 0x28, 0x8b, 0x00, 0x80, 0x5f, 0xff, 0xac, 0xbc, 0x08, 0x8b, 0x00, 0xdf, 0xd5, 0xff,
+ 0x8b, 0xbc, 0x49, 0x93, 0xe0, 0x55, 0x57, 0xff, 0xca, 0x9b, 0x28, 0x8b, 0x7a, 0xf7, 0xaa, 0x20, 0xca, 0x9b, 0x28, 0x8b, 0xff, 0x7f, 0xaa, 0x00, 0x0b, 0xa4, 0x28, 0x8b, 0x57, 0xf5, 0xab, 0x00,
+ 0x4c, 0xac, 0x29, 0x8b, 0xfd, 0xaf, 0xaa, 0x08, 0x6c, 0xb4, 0xab, 0x9b, 0xd9, 0xbb, 0x0a, 0x22, 0xce, 0xbc, 0xcb, 0xa3, 0x55, 0xfe, 0xbe, 0xe2, 0x6c, 0xb4, 0xaa, 0x9b, 0x57, 0x37, 0xfe, 0xfa,
+ 0x0b, 0xa4, 0x69, 0x9b, 0x7f, 0xfe, 0xff, 0x22, 0x0b, 0xa4, 0x48, 0x93, 0x55, 0xef, 0xaa, 0x82, 0xeb, 0xa3, 0x29, 0x8b, 0x55, 0xfa, 0xaa, 0x00, 0xca, 0xa3, 0x08, 0x83, 0x55, 0xfa, 0xaa, 0x00,
+ 0x0b, 0xa4, 0xe9, 0x82, 0xd5, 0xab, 0x2a, 0x80, 0x0b, 0xa4, 0x4a, 0x93, 0xd7, 0xb8, 0xab, 0x2a, 0x2b, 0xac, 0x8a, 0x9b, 0x5d, 0xab, 0x8a, 0x6a, 0x2b, 0xac, 0x49, 0x93, 0xab, 0x72, 0xde, 0xd5,
+ 0x0b, 0xac, 0xc8, 0x7a, 0xb7, 0x2f, 0x8a, 0x82, 0x6b, 0xb4, 0x49, 0x93, 0xff, 0xf8, 0xb5, 0xab, 0x0b, 0xac, 0xaa, 0xa3, 0xa7, 0x2a, 0x68, 0x7c, 0x6d, 0xb4, 0xaa, 0xa3, 0x8b, 0xfe, 0x5f, 0xf5,
+ 0x4c, 0xb4, 0x25, 0x6a, 0x40, 0xa2, 0x02, 0x02, 0x0b, 0xa4, 0x44, 0x49, 0x2d, 0x0a, 0x00, 0x00, 0x0b, 0xa4, 0x69, 0x9b, 0x7e, 0xeb, 0xef, 0xf3, 0xca, 0x9b, 0x66, 0x72, 0x36, 0xaa, 0xa8, 0x00,
+ 0xaa, 0x9b, 0xa7, 0x7a, 0x56, 0xff, 0xa8, 0x80, 0xca, 0x9b, 0xe8, 0x82, 0xb5, 0xab, 0xa2, 0x02, 0xca, 0x9b, 0xe8, 0x82, 0xfd, 0x09, 0x02, 0x80, 0xca, 0x9b, 0x69, 0x93, 0xf5, 0xa2, 0x38, 0x7f,
+ 0xeb, 0xa3, 0x86, 0x7a, 0xaa, 0x00, 0x8a, 0x5e, 0x0a, 0xa4, 0x66, 0x72, 0x02, 0x00, 0xfa, 0x55, 0xaa, 0x9b, 0x46, 0x72, 0x00, 0x80, 0x5f, 0x55, 0x0a, 0xa4, 0x46, 0x6a, 0x80, 0xab, 0x55, 0x55,
+ 0x0a, 0xa4, 0x46, 0x6a, 0x00, 0xea, 0x55, 0x55, 0x2b, 0xac, 0x46, 0x6a, 0x80, 0x5f, 0x55, 0x55, 0x48, 0x9b, 0x47, 0x6a, 0xf8, 0x5d, 0x55, 0x55, 0xa7, 0x72, 0x46, 0x6a, 0xad, 0xfe, 0xff, 0xbe,
+ 0x88, 0x6a, 0x46, 0x62, 0x8b, 0x24, 0x82, 0xa0, 0x88, 0x6a, 0x46, 0x62, 0x02, 0xb0, 0x2e, 0x0a, 0xa8, 0x72, 0x67, 0x6a, 0xee, 0xaf, 0xae, 0x7d, 0x88, 0x72, 0x67, 0x6a, 0x88, 0x07, 0xfd, 0xd5,
+ 0x88, 0x72, 0x67, 0x6a, 0xbb, 0x50, 0x75, 0xfa, 0xa8, 0x72, 0x27, 0x62, 0xea, 0xab, 0xf5, 0x02, 0xa8, 0x6a, 0xe5, 0x59, 0x68, 0x56, 0xaa, 0xa0, 0x68, 0x6a, 0x84, 0x51, 0xf5, 0xab, 0x00, 0x00,
+ 0x47, 0x6a, 0xc6, 0x59, 0xab, 0x22, 0x5e, 0x28, 0x87, 0x6a, 0x06, 0x5a, 0xfb, 0x7f, 0xff, 0xf3, 0x68, 0x6a, 0x06, 0x62, 0xbe, 0xfd, 0x20, 0x0a, 0x66, 0x7a, 0x47, 0x62, 0x23, 0xff, 0x7f, 0xfd,
+ 0x27, 0x93, 0x46, 0x62, 0x0b, 0x55, 0x55, 0x57, 0x68, 0x9b, 0x26, 0x62, 0x00, 0xf5, 0x55, 0x55, 0x89, 0x9b, 0x26, 0x62, 0x00, 0xaa, 0x55, 0x55, 0x4b, 0xac, 0x26, 0x62, 0x2e, 0x0b, 0x55, 0x55,
+ 0x4b, 0xac, 0x26, 0x62, 0x00, 0x80, 0x55, 0x55, 0x0b, 0xa4, 0x05, 0x62, 0x00, 0x00, 0xff, 0x57, 0x0b, 0xa4, 0xe4, 0x61, 0x00, 0x00, 0x5f, 0x55, 0x0a, 0xa4, 0xc4, 0x59, 0xaa, 0xa0, 0x55, 0xaf,
+ 0xc9, 0x93, 0xe5, 0x61, 0xa0, 0x57, 0xaf, 0xaa, 0x69, 0x93, 0xe8, 0x82, 0xdd, 0x3d, 0x2b, 0x8d, 0xaa, 0x9b, 0xe8, 0x82, 0xfd, 0x0a, 0xaa, 0x0b, 0xa9, 0x9b, 0x28, 0x8b, 0xff, 0x7f, 0xb2, 0x5f,
+ 0xeb, 0x9b, 0xe8, 0x82, 0xef, 0x8c, 0xea, 0x7e, 0xaa, 0x93, 0xe8, 0x82, 0x7b, 0x20, 0x0b, 0xca, 0xaa, 0x93, 0x24, 0x62, 0xaa, 0x9f, 0xaf, 0xe0, 0xca, 0x9b, 0x08, 0x83, 0xa3, 0x3f, 0xff, 0xdf,
+ 0xaa, 0x93, 0xc7, 0x7a, 0x82, 0xf2, 0x55, 0xba, 0xa9, 0x9b, 0xa7, 0x7a, 0x22, 0x7a, 0xfe, 0x2a, 0xeb, 0x9b, 0x05, 0x62, 0xfe, 0xad, 0xa2, 0x02, 0xca, 0x9b, 0xc7, 0x7a, 0x22, 0xaa, 0xb0, 0x6a,
+ 0x2b, 0xac, 0x48, 0x8b, 0xff, 0xf3, 0xfd, 0xfd, 0xca, 0xa3, 0x29, 0x8b, 0xb6, 0xa0, 0xe3, 0xb2, 0xeb, 0xa3, 0x29, 0x8b, 0x82, 0x5e, 0xff, 0xea, 0xca, 0x9b, 0xc8, 0x7a, 0xac, 0xff, 0x0a, 0x10,
+ 0xaa, 0x9b, 0x49, 0x8b, 0x97, 0x55, 0xf3, 0x80, 0xa9, 0x9b, 0xc7, 0x82, 0xa0, 0xa0, 0xa8, 0x68, 0x04, 0x6a, 0x23, 0x49, 0x68, 0x78, 0xea, 0x68, 0xa4, 0x59, 0x23, 0x49, 0x02, 0xa9, 0xab, 0xeb,
+ 0x86, 0x72, 0x84, 0x51, 0x0a, 0x2f, 0x2d, 0x0d, 0xe8, 0x82, 0x66, 0x72, 0x8a, 0xbf, 0x2d, 0x9f, 0x89, 0x93, 0xe8, 0x82, 0xfd, 0xb5, 0x7d, 0x3d, 0xaa, 0x93, 0x08, 0x83, 0xbf, 0x3d, 0x89, 0x70,
+ 0xca, 0x9b, 0xe9, 0x82, 0xef, 0xdf, 0x2b, 0xaa, 0xea, 0xa3, 0x49, 0x8b, 0xd5, 0xdf, 0x2a, 0xfb, 0xeb, 0xa3, 0x89, 0x93, 0x5f, 0xbf, 0xb8, 0xb5, 0x0b, 0xa4, 0x69, 0x93, 0x57, 0x0a, 0xae, 0xfe,
+ 0x0b, 0xac, 0xa9, 0x9b, 0xbd, 0xa8, 0xbf, 0xdf, 0x0b, 0xa4, 0x89, 0x9b, 0xae, 0x0a, 0xea, 0xf5, 0xeb, 0xa3, 0x89, 0x9b, 0x02, 0xa0, 0x9f, 0x9f, 0x2b, 0xac, 0xaa, 0xa3, 0x82, 0xba, 0xfe, 0x77,
+ 0x2b, 0xb4, 0xca, 0xa3, 0xa0, 0xea, 0xd5, 0xad, 0xce, 0xcc, 0xea, 0xab, 0xad, 0x2d, 0x2d, 0xaf, 0x30, 0xd5, 0x63, 0x41, 0x60, 0x70, 0x58, 0x54, 0xe6, 0x49, 0x44, 0x39, 0x0b, 0xae, 0xb6, 0xff,
+ 0xe7, 0x49, 0x24, 0x39, 0x80, 0xaa, 0xf7, 0xa2, 0xc6, 0x49, 0x65, 0x39, 0x0a, 0xd6, 0x4d, 0xf6, 0xa6, 0x49, 0x65, 0x39, 0x00, 0x5b, 0x6f, 0xbf, 0xa6, 0x41, 0x45, 0x31, 0x78, 0xa2, 0xc3, 0x7f,
+ 0xe6, 0x41, 0x24, 0x29, 0x5e, 0xbf, 0xf7, 0x3f, 0xa5, 0x39, 0xe4, 0x28, 0xdf, 0x5a, 0xae, 0xa0, 0xc7, 0x49, 0x03, 0x29, 0xa5, 0xad, 0x0d, 0x0a, 0x48, 0x5a, 0x65, 0x39, 0xdd, 0xff, 0xeb, 0x02,
+ 0xa9, 0x6a, 0xc6, 0x41, 0x5d, 0xd7, 0xcb, 0xee, 0xa9, 0x62, 0x85, 0x41, 0xeb, 0x72, 0x55, 0x57, 0x07, 0x4a, 0x85, 0x39, 0xf7, 0x25, 0x07, 0xbb, 0x89, 0x5a, 0xa5, 0x41, 0x95, 0xbd, 0xab, 0x8f,
+ 0xe8, 0x6a, 0xc7, 0x49, 0xaa, 0xe7, 0xf2, 0x3e, 0xa8, 0x62, 0xa6, 0x49, 0xbe, 0x62, 0xfa, 0xe0, 0xc9, 0x62, 0x65, 0x39, 0x7f, 0xff, 0xeb, 0x8b, 0xe7, 0x49, 0x44, 0x31, 0xf8, 0x5a, 0xde, 0xf7,
+ 0xc9, 0x72, 0x86, 0x39, 0x55, 0x57, 0x0d, 0x7d, 0xaa, 0x83, 0x25, 0x31, 0x95, 0xfd, 0x20, 0xfd, 0x6b, 0x7b, 0x45, 0x39, 0x70, 0x5f, 0xb8, 0xff, 0xa9, 0x62, 0x44, 0x39, 0xff, 0xff, 0x58, 0xac,
+ 0x6c, 0xbc, 0x0b, 0xac, 0xaa, 0xe3, 0xfd, 0xff, 0x4c, 0xb4, 0x0b, 0xac, 0x02, 0xab, 0xef, 0x75, 0x6c, 0xbc, 0x0b, 0xac, 0xe8, 0xba, 0xff, 0xdf, 0xad, 0xbc, 0xea, 0xab, 0x1e, 0xfa, 0x5f, 0x7f,
+ 0xcd, 0xbc, 0x27, 0x93, 0x80, 0xab, 0xba, 0x5e, 0x4b, 0xb4, 0x08, 0x8b, 0x0a, 0xa0, 0xaa, 0xad, 0x4c, 0xb4, 0xeb, 0xa3, 0x42, 0xa7, 0x25, 0x3f, 0x2b, 0xac, 0xca, 0x9b, 0xa2, 0x82, 0x7d, 0x00,
+ 0x4b, 0xb4, 0x89, 0x9b, 0xfa, 0x6a, 0x2a, 0x4a, 0xeb, 0xa3, 0x46, 0x72, 0x08, 0x02, 0x2e, 0x25, 0x4c, 0xac, 0xea, 0xa3, 0xfd, 0x37, 0xfd, 0x5d, 0x4c, 0xbc, 0xaa, 0x9b, 0x0a, 0x6a, 0xff, 0xfd,
+ 0x2c, 0xb4, 0x89, 0x93, 0xf6, 0xf5, 0xeb, 0x82, 0x0b, 0xac, 0x6a, 0x93, 0xbe, 0xa5, 0xa2, 0x00, 0x0b, 0xa4, 0xaa, 0x9b, 0xfd, 0x0a, 0x82, 0x80, 0x2c, 0xac, 0xaa, 0x9b, 0x7f, 0xbe, 0x8b, 0x3e,
+ 0xcd, 0xbc, 0xca, 0x9b, 0x55, 0x4b, 0xff, 0xff, 0x4c, 0xb4, 0xcb, 0x9b, 0x5e, 0xaf, 0xbb, 0x8f, 0x6c, 0xb4, 0xea, 0xa3, 0x7d, 0xbc, 0xff, 0x77, 0x4c, 0xb4, 0xea, 0xa3, 0xbd, 0xda, 0xd7, 0x0b,
+ 0xae, 0xbc, 0x0b, 0xac, 0xcf, 0xad, 0x6f, 0x78, 0xcd, 0xc4, 0x49, 0x93, 0x6a, 0xfc, 0xff, 0xaa, 0x4c, 0xb4, 0xaa, 0x9b, 0xa9, 0xaf, 0xbb, 0x82, 0x4c, 0xb4, 0xeb, 0xa3, 0x78, 0xcb, 0xb5, 0xfb,
+ 0x2b, 0xac, 0xca, 0xa3, 0xaa, 0xc2, 0xea, 0x5f, 0x0b, 0xac, 0xca, 0xa3, 0xac, 0x77, 0xf5, 0x75, 0x2b, 0xac, 0xaa, 0x9b, 0x6b, 0x7b, 0xf7, 0xa2, 0x0b, 0xac, 0xaa, 0x9b, 0x2d, 0xab, 0xef, 0xbf,
+ 0x2c, 0xac, 0x69, 0x93, 0xde, 0x20, 0xe8, 0xaa, 0xeb, 0xa3, 0x89, 0x9b, 0xa8, 0x6e, 0x75, 0xd7, 0x2b, 0xa4, 0x49, 0x93, 0xd6, 0xbd, 0xab, 0x82, 0x2c, 0xac, 0xca, 0x9b, 0x75, 0xe1, 0x5f, 0x8f,
+ 0xeb, 0xa3, 0xca, 0x9b, 0xf7, 0x28, 0xa1, 0x82, 0x2b, 0xac, 0x89, 0x93, 0xaa, 0xe8, 0x62, 0xbc, 0x6c, 0xac, 0x8a, 0x9b, 0xff, 0xfd, 0xbd, 0xe8, 0x2c, 0xac, 0x47, 0x8b, 0xaa, 0x2a, 0x2a, 0x7a,
+ 0xad, 0xbc, 0xa6, 0x7a, 0x8a, 0xaa, 0xfa, 0x55, 0xea, 0xa3, 0x66, 0x72, 0x20, 0x00, 0xfa, 0x55, 0xca, 0xa3, 0x66, 0x72, 0x00, 0x00, 0xff, 0x55, 0xe9, 0xa3, 0x26, 0x6a, 0xa0, 0xfa, 0x57, 0x55,
+ 0xa9, 0x9b, 0x46, 0x6a, 0x08, 0xfa, 0xd5, 0xd5, 0xa9, 0x9b, 0x26, 0x6a, 0x08, 0x7f, 0xd7, 0x55, 0x48, 0x8b, 0x46, 0x6a, 0xa0, 0xf7, 0xd5, 0x5d, 0x87, 0x7a, 0x26, 0x62, 0x00, 0xae, 0xad, 0xab,
+ 0x87, 0x72, 0x26, 0x6a, 0xee, 0xea, 0x5f, 0x00, 0x87, 0x72, 0x46, 0x6a, 0xf7, 0xd6, 0xfd, 0x68, 0x88, 0x72, 0x47, 0x6a, 0x7a, 0xaf, 0xaa, 0xeb, 0x88, 0x72, 0x27, 0x62, 0xfa, 0xba, 0xff, 0xaa,
+ 0x88, 0x72, 0x46, 0x62, 0xab, 0x78, 0xaa, 0xfa, 0x88, 0x72, 0x47, 0x6a, 0xc2, 0xf5, 0xaa, 0x88, 0xa8, 0x72, 0x47, 0x6a, 0xa7, 0x8a, 0xf7, 0xfb, 0xa8, 0x72, 0x47, 0x6a, 0x27, 0xde, 0xb7, 0x29,
+ 0xa9, 0x72, 0x48, 0x6a, 0xaa, 0xdf, 0xaa, 0x08, 0xc9, 0x72, 0x88, 0x6a, 0x5f, 0xb5, 0x0a, 0x8a, 0xc9, 0x72, 0x68, 0x6a, 0xbd, 0x22, 0x2a, 0xd8, 0xe9, 0x72, 0x88, 0x6a, 0xb3, 0xbb, 0xfe, 0xbf,
+ 0xe9, 0x72, 0x07, 0x62, 0xaa, 0xaa, 0x5e, 0x00, 0x0b, 0x7b, 0x68, 0x62, 0xfe, 0xf7, 0xf5, 0x3e, 0xec, 0x93, 0x07, 0x5a, 0xff, 0x5f, 0xff, 0x80, 0xe9, 0x72, 0x44, 0x41, 0xaa, 0xab, 0x00, 0x5e,
+ 0xc8, 0x72, 0x24, 0x31, 0xaa, 0x00, 0xe0, 0x55, 0x88, 0x6a, 0x04, 0x29, 0x00, 0x80, 0xaf, 0xf5, 0xa8, 0x72, 0x86, 0x41, 0x02, 0xaa, 0xaa, 0xf5, 0x88, 0x6a, 0xe6, 0x59, 0xa8, 0xef, 0xa8, 0xad,
+ 0x88, 0x6a, 0xe6, 0x59, 0xaa, 0x7f, 0x57, 0x28, 0x47, 0x62, 0xc6, 0x59, 0x02, 0x37, 0xfe, 0xa8, 0x47, 0x6a, 0xe6, 0x61, 0xb5, 0xaa, 0xab, 0x2a, 0x47, 0x6a, 0xe5, 0x59, 0xe2, 0xde, 0xfa, 0xfb,
+ 0x26, 0x62, 0xc5, 0x59, 0xd8, 0x2a, 0x70, 0xc0, 0x26, 0x62, 0xc5, 0x59, 0xa2, 0xea, 0xdb, 0xef, 0x26, 0x62, 0xc5, 0x59, 0x2e, 0xaf, 0xbd, 0x83, 0x46, 0x6a, 0xe5, 0x59, 0x2e, 0xfb, 0xbf, 0x55,
+ 0xc7, 0x82, 0xe5, 0x61, 0x02, 0xbf, 0x75, 0x55, 0x28, 0x8b, 0x04, 0x62, 0x02, 0x0a, 0xf5, 0x55, 0x69, 0x93, 0x06, 0x62, 0x00, 0x02, 0x8a, 0xd5, 0x89, 0x93, 0x24, 0x72, 0x20, 0x00, 0x08, 0xfd,
+ 0xcb, 0x9b, 0xa6, 0x7a, 0xaa, 0xa0, 0xea, 0xf5, 0x89, 0x93, 0xa7, 0x7a, 0x00, 0x60, 0x2a, 0x0a, 0x8a, 0x93, 0xa7, 0x7a, 0xa5, 0x2a, 0x00, 0xfe, 0xca, 0x9b, 0xe7, 0x82, 0xad, 0x02, 0xaa, 0xff,
+ 0xca, 0x9b, 0xe8, 0x82, 0x0a, 0xfb, 0x88, 0xbd, 0xca, 0x9b, 0x28, 0x8b, 0xaf, 0xe9, 0x0a, 0xb7, 0x0b, 0xa4, 0x28, 0x8b, 0x97, 0xef, 0x2a, 0xf3, 0xeb, 0xa3, 0xc7, 0x7a, 0x9b, 0xb9, 0xa0, 0xbb,
+ 0x2c, 0xac, 0x08, 0x8b, 0xef, 0xaf, 0xeb, 0x63, 0x2c, 0xa4, 0x85, 0x7a, 0xba, 0x02, 0x2a, 0x55, 0xea, 0xa3, 0xe4, 0x69, 0x00, 0x80, 0xe8, 0x55, 0xea, 0xa3, 0xc4, 0x61, 0x80, 0x20, 0x5f, 0x55,
+ 0xc9, 0x9b, 0xc4, 0x61, 0x20, 0x80, 0xdd, 0x55, 0xc9, 0x9b, 0xa3, 0x61, 0xc8, 0xc2, 0x5f, 0x55, 0xe4, 0x61, 0x23, 0x49, 0x78, 0x78, 0x7e, 0x77, 0xe4, 0x59, 0x23, 0x51, 0xff, 0xbd, 0xbb, 0x2b,
+ 0xe7, 0x82, 0xa4, 0x59, 0xaf, 0xb7, 0xab, 0x2a, 0x49, 0x8b, 0x46, 0x72, 0x2a, 0x2d, 0xaa, 0xaa, 0xaa, 0x9b, 0xc6, 0x7a, 0xaa, 0xbe, 0xbf, 0x01, 0xa9, 0x9b, 0x08, 0x83, 0xa2, 0xfa, 0x6b, 0x5e,
+ 0x0b, 0xa4, 0xe7, 0x82, 0xea, 0xff, 0x3d, 0x08, 0xa9, 0x9b, 0x08, 0x8b, 0xaa, 0x9e, 0xaa, 0x00, 0x0b, 0xac, 0x69, 0x93, 0x57, 0xdd, 0xa5, 0xa2, 0x0b, 0xb4, 0x49, 0x93, 0xff, 0x75, 0x80, 0xa2,
+ 0xeb, 0xab, 0x89, 0x9b, 0x77, 0xfd, 0xe8, 0x3a, 0x0b, 0xac, 0x89, 0x9b, 0xf7, 0xbf, 0xab, 0x0a, 0x4c, 0xb4, 0xa9, 0x9b, 0xf5, 0xab, 0xaa, 0xf8, 0x0b, 0xb4, 0xca, 0xa3, 0xb5, 0xe1, 0xeb, 0xef,
+ 0x2c, 0xb4, 0x89, 0xa3, 0xbe, 0x2b, 0x2d, 0x02, 0x2f, 0xd5, 0xc3, 0x59, 0x0a, 0x02, 0x8a, 0x4a, 0x4d, 0xbc, 0xe3, 0x28, 0x54, 0x5f, 0x55, 0x55, 0x85, 0x41, 0xc4, 0x20, 0xe0, 0xfc, 0xd7, 0xaa,
+ 0x45, 0x39, 0x04, 0x21, 0x22, 0x75, 0x5a, 0xba, 0x85, 0x41, 0xc4, 0x18, 0x8a, 0x5f, 0xf7, 0xaa, 0xa6, 0x41, 0xe3, 0x20, 0x55, 0x7d, 0x83, 0x02, 0xc6, 0x41, 0xc3, 0x20, 0xfd, 0x2f, 0xaa, 0x02,
+ 0x27, 0x5a, 0x65, 0x31, 0xd5, 0xb9, 0xaf, 0x02, 0x47, 0x5a, 0x45, 0x31, 0x55, 0xfa, 0xe2, 0xa8, 0x8e, 0x9c, 0x65, 0x41, 0xd5, 0x5d, 0x2d, 0x75, 0x8f, 0xa4, 0x24, 0x39, 0xff, 0xff, 0x80, 0xb5,
+ 0x4e, 0x9c, 0xe3, 0x30, 0xff, 0x0a, 0x5e, 0x7a, 0x4d, 0x9c, 0x23, 0x31, 0xff, 0x00, 0xb5, 0xff, 0x6d, 0x9c, 0x66, 0x39, 0xaa, 0x00, 0x56, 0xea, 0x2b, 0x94, 0xa7, 0x49, 0xaa, 0x00, 0xb5, 0xff,
+ 0xaa, 0x83, 0xc6, 0x41, 0x7a, 0x80, 0xff, 0x9d, 0xeb, 0x93, 0x28, 0x52, 0xe9, 0x00, 0x72, 0x6b, 0x6c, 0x7b, 0x44, 0x31, 0x70, 0xde, 0xa2, 0x0b, 0x6b, 0x83, 0xc6, 0x49, 0xf5, 0xff, 0x8b, 0xb4,
+ 0xcd, 0x93, 0xe5, 0x49, 0xff, 0x2a, 0xea, 0x54, 0x4b, 0x73, 0xe5, 0x49, 0x5f, 0x2c, 0x0e, 0x5b, 0xcc, 0x8b, 0x03, 0x29, 0xff, 0xfa, 0x80, 0x75, 0x2c, 0x94, 0xe3, 0x28, 0xab, 0xff, 0x0a, 0x7d,
+ 0x2b, 0xac, 0x8a, 0x9b, 0x88, 0x80, 0x95, 0xaa, 0x6b, 0xb4, 0x8a, 0xa3, 0xaa, 0x5a, 0x0e, 0xaa, 0x2b, 0xb4, 0xe7, 0x8a, 0x8a, 0x20, 0x60, 0xb6, 0x6c, 0xb4, 0x87, 0x7a, 0xc8, 0x5c, 0xbd, 0xaa,
+ 0x0b, 0xa4, 0xa7, 0x7a, 0xbd, 0xab, 0x02, 0x00, 0xad, 0xbc, 0xaa, 0x9b, 0xfd, 0xf2, 0xaf, 0xff, 0x8d, 0xbc, 0xeb, 0xab, 0xfd, 0xaa, 0xad, 0x47, 0xcd, 0xc4, 0x48, 0x93, 0xaa, 0xe0, 0x78, 0x7a,
+ 0x8b, 0xb4, 0x06, 0x6a, 0x60, 0xde, 0xff, 0xaa, 0xcb, 0x9b, 0x26, 0x6a, 0x2d, 0x8a, 0x02, 0x00, 0x2b, 0xac, 0xaa, 0x93, 0xe0, 0x75, 0xef, 0xaf, 0x4c, 0xac, 0xca, 0x9b, 0xf5, 0xf5, 0xb1, 0xbb,
+ 0x2c, 0xac, 0xea, 0xa3, 0xdb, 0xe7, 0xb5, 0x8f, 0x0c, 0xac, 0xea, 0x9b, 0x8b, 0xaa, 0xf8, 0xff, 0xad, 0xb4, 0xca, 0x9b, 0xff, 0xfc, 0x2f, 0x5f, 0xae, 0xb4, 0x0b, 0xa4, 0x8d, 0xe4, 0x55, 0x57,
+ 0x4c, 0xac, 0xca, 0xa3, 0xb8, 0xa2, 0x7f, 0xaf, 0x4c, 0xb4, 0xea, 0x9b, 0xfe, 0x7e, 0x57, 0x83, 0xae, 0xb4, 0xeb, 0xa3, 0x3d, 0xfd, 0x7d, 0x77, 0x2f, 0xc5, 0xeb, 0xa3, 0xbe, 0xf3, 0x75, 0xfd,
+ 0xcd, 0xbc, 0x0b, 0xac, 0xff, 0xd5, 0xf8, 0xbf, 0xcc, 0xbc, 0x0b, 0xa4, 0xb7, 0xcb, 0xff, 0xe0, 0x6c, 0xb4, 0xa4, 0x82, 0x80, 0x2a, 0x00, 0x7e, 0x4b, 0xac, 0x04, 0x6a, 0x00, 0x00, 0x00, 0x55,
+ 0x8c, 0xb4, 0x05, 0x6a, 0x00, 0xaa, 0xfa, 0x55, 0x0a, 0xac, 0x04, 0x62, 0x00, 0x20, 0xff, 0x55, 0x2a, 0xac, 0xe4, 0x61, 0x00, 0xa8, 0x57, 0x55, 0x2a, 0xac, 0xe4, 0x61, 0x00, 0xea, 0x75, 0x55,
+ 0x0a, 0xa4, 0x05, 0x6a, 0x00, 0xff, 0x55, 0x55, 0xca, 0xa3, 0x45, 0x6a, 0x20, 0xbf, 0xd5, 0x55, 0x2b, 0xac, 0x25, 0x6a, 0x00, 0xaa, 0x57, 0x55, 0xea, 0xa3, 0xe5, 0x59, 0x00, 0xba, 0xff, 0xf5,
+ 0xe9, 0xa3, 0x46, 0x6a, 0x80, 0xff, 0x55, 0x55, 0x88, 0x93, 0x47, 0x6a, 0x00, 0xf5, 0x55, 0x5d, 0x48, 0x93, 0x46, 0x6a, 0x78, 0xff, 0x55, 0x55, 0xe7, 0x82, 0x46, 0x6a, 0xa2, 0x7f, 0x57, 0xfd,
+ 0xc7, 0x7a, 0x27, 0x6a, 0xa0, 0xff, 0xff, 0xd7, 0xc8, 0x72, 0x27, 0x6a, 0x7f, 0xef, 0xbd, 0xa8, 0xe8, 0x72, 0x47, 0x6a, 0x55, 0xea, 0xef, 0xf8, 0xa9, 0x72, 0xe5, 0x61, 0xab, 0x0a, 0x7a, 0xef,
+ 0x47, 0x6a, 0x26, 0x62, 0x24, 0x0c, 0xcb, 0x20, 0x67, 0x72, 0x26, 0x62, 0x22, 0x03, 0xaf, 0x28, 0x88, 0x72, 0x26, 0x6a, 0x20, 0xaf, 0x26, 0xea, 0x67, 0x6a, 0x46, 0x62, 0x00, 0xa0, 0xf2, 0xac,
+ 0x88, 0x72, 0x46, 0x62, 0xef, 0xf9, 0xaf, 0xaa, 0x88, 0x72, 0x46, 0x6a, 0xde, 0x0b, 0xea, 0x7e, 0x88, 0x72, 0x46, 0x6a, 0x3d, 0xea, 0xd5, 0xdd, 0x88, 0x72, 0x47, 0x62, 0xfa, 0xbf, 0x8b, 0x2a,
+ 0xa8, 0x72, 0x47, 0x6a, 0xfb, 0xfa, 0x0b, 0xac, 0xc9, 0x72, 0x67, 0x6a, 0xf5, 0xff, 0x8f, 0xbb, 0xe9, 0x72, 0x67, 0x6a, 0x5f, 0xfd, 0xbb, 0x0a, 0x0a, 0x7b, 0x88, 0x6a, 0xf5, 0xaf, 0xbf, 0x2a,
+ 0x0b, 0x7b, 0x88, 0x72, 0xf7, 0xfa, 0xf2, 0xa2, 0xaf, 0xac, 0xc9, 0x72, 0x55, 0x55, 0x55, 0x2d, 0x0f, 0xbd, 0x65, 0x49, 0xff, 0xff, 0x2b, 0x78, 0xce, 0xbc, 0x64, 0x41, 0xff, 0xaf, 0x78, 0x55,
+ 0xcd, 0xb4, 0x03, 0x31, 0x2b, 0xe0, 0x5d, 0x55, 0xce, 0xc4, 0x04, 0x31, 0xe0, 0x55, 0x55, 0x55, 0x64, 0x49, 0x03, 0x21, 0x7c, 0xff, 0xdf, 0xff, 0xe6, 0x41, 0x04, 0x29, 0x15, 0xff, 0x5f, 0xf5,
+ 0x07, 0x42, 0x25, 0x31, 0x40, 0x5a, 0xfd, 0xeb, 0xe7, 0x49, 0x24, 0x29, 0x35, 0xbd, 0xef, 0xab, 0xe7, 0x51, 0x44, 0x31, 0x02, 0xaa, 0xb5, 0xff, 0xe6, 0x51, 0x45, 0x39, 0x80, 0xe5, 0xea, 0x75,
+ 0x06, 0x52, 0xc3, 0x28, 0x3a, 0x96, 0xa7, 0xef, 0x68, 0x6a, 0x25, 0x39, 0x02, 0xb7, 0xfd, 0xff, 0x48, 0x62, 0x44, 0x29, 0x00, 0x00, 0xae, 0x7a, 0x88, 0x72, 0xe3, 0x30, 0x82, 0x00, 0xb5, 0xf5,
+ 0x47, 0x6a, 0xc6, 0x59, 0xea, 0x68, 0xfa, 0xa3, 0x25, 0x62, 0xe6, 0x59, 0xfb, 0xe8, 0x7f, 0x9a, 0x26, 0x62, 0xc5, 0x59, 0x2d, 0xdb, 0xff, 0x58, 0x26, 0x62, 0x85, 0x59, 0x00, 0xea, 0xfe, 0x7f,
+ 0x06, 0x62, 0xa4, 0x59, 0xf8, 0xfd, 0xdb, 0xb5, 0x25, 0x62, 0xa4, 0x59, 0x0a, 0xaf, 0xd7, 0x5f, 0x25, 0x62, 0xa4, 0x59, 0x20, 0xae, 0xbb, 0x7f, 0x46, 0x6a, 0xa5, 0x59, 0x2a, 0xdf, 0xfe, 0x3f,
+ 0x46, 0x6a, 0xe5, 0x59, 0xaa, 0xfb, 0x5d, 0x60, 0x46, 0x72, 0xe5, 0x59, 0x8f, 0x5f, 0xbb, 0xfd, 0xc6, 0x7a, 0x05, 0x62, 0x8b, 0xd5, 0xf9, 0x57, 0x89, 0x9b, 0x26, 0x62, 0x8a, 0xfd, 0xd5, 0x55,
+ 0x88, 0x93, 0x06, 0x62, 0x08, 0xfe, 0x55, 0x55, 0xea, 0x9b, 0x05, 0x62, 0x0a, 0x5d, 0x55, 0x55, 0x67, 0x93, 0xc5, 0x59, 0x20, 0xff, 0xfd, 0x77, 0x47, 0x93, 0xc5, 0x59, 0x80, 0xf7, 0x7d, 0x75,
+ 0xa6, 0x82, 0xe5, 0x59, 0xfc, 0xf7, 0x5d, 0x55, 0x25, 0x6a, 0x84, 0x51, 0x00, 0x28, 0xb9, 0xeb, 0x25, 0x6a, 0x63, 0x59, 0x8a, 0xaa, 0x7e, 0x7f, 0x04, 0x62, 0x63, 0x59, 0x00, 0xab, 0x7f, 0xff,
+ 0x05, 0x62, 0x63, 0x59, 0x08, 0xeb, 0xf5, 0xff, 0xe4, 0x61, 0x63, 0x59, 0xf2, 0xff, 0x77, 0x57, 0x83, 0x59, 0xe2, 0x48, 0xf0, 0xf8, 0x70, 0x60, 0xa6, 0x7a, 0x43, 0x51, 0xbd, 0xbd, 0x2d, 0xfd,
+ 0xa8, 0x9b, 0xe5, 0x61, 0xaf, 0xaa, 0xab, 0x2d, 0xea, 0xab, 0xe8, 0x82, 0xb5, 0xff, 0xff, 0xa2, 0xa9, 0xa3, 0x48, 0x93, 0x77, 0x5d, 0xab, 0x82, 0xc9, 0xa3, 0x48, 0x93, 0x95, 0x2f, 0x2b, 0x3f,
+ 0xca, 0xa3, 0x27, 0x93, 0xf0, 0xa0, 0xfe, 0x5e, 0xca, 0xa3, 0x64, 0x82, 0x00, 0xaa, 0xfb, 0xd7, 0xc9, 0xab, 0x64, 0x7a, 0x2a, 0xea, 0x80, 0x57, 0x4a, 0xb4, 0x66, 0x7a, 0x00, 0xb5, 0xff, 0x55,
+ 0x2a, 0xb4, 0xa6, 0x82, 0x02, 0xff, 0x7e, 0x55, 0xc9, 0xa3, 0x24, 0x7a, 0x00, 0xaa, 0xff, 0xfd, 0xc9, 0xab, 0x24, 0x72, 0xa8, 0xfa, 0xf5, 0xff, 0xea, 0xb3, 0xa5, 0x8a, 0x0b, 0xbf, 0xbd, 0xaf,
+ 0x2c, 0xbc, 0x88, 0xa3, 0x0a, 0x2d, 0x0d, 0xab, 0x6d, 0xc4, 0x24, 0x39, 0x70, 0x58, 0x7e, 0xf8, 0x27, 0x52, 0x24, 0x31, 0xfd, 0x7b, 0xe0, 0x00, 0xa8, 0x62, 0x04, 0x29, 0x7f, 0xbf, 0xaf, 0x27,
+ 0xc9, 0x6a, 0x66, 0x31, 0xb5, 0xa2, 0xea, 0xa8, 0xeb, 0x72, 0x44, 0x31, 0xfb, 0xff, 0xfd, 0x7c, 0x27, 0x52, 0x65, 0x39, 0x7d, 0xa0, 0x5c, 0xaa, 0xa7, 0x6a, 0xc6, 0x41, 0xf5, 0xdf, 0xfd, 0x09,
+ 0x27, 0x52, 0x84, 0x39, 0x28, 0xaa, 0xd6, 0xfc, 0x8b, 0x7b, 0x65, 0x41, 0x5f, 0xaf, 0x55, 0x2f, 0x2b, 0x73, 0xa5, 0x49, 0xfd, 0x27, 0xfa, 0x2a, 0x6c, 0x83, 0x26, 0x5a, 0x7d, 0x6e, 0x2f, 0x30,
+ 0x6e, 0xa4, 0x44, 0x31, 0x5f, 0x75, 0x5e, 0xe0, 0xab, 0x8b, 0xa5, 0x39, 0x3d, 0xf7, 0xa9, 0xab, 0xeb, 0x9b, 0xa6, 0x41, 0xea, 0xb7, 0x82, 0x5e, 0xef, 0xac, 0x43, 0x31, 0xeb, 0x82, 0x5f, 0xff,
+ 0xca, 0x83, 0x03, 0x21, 0x0a, 0xa0, 0xf5, 0x57, 0x2e, 0x9c, 0x43, 0x31, 0xf8, 0xdf, 0x57, 0xf5, 0x6a, 0x7b, 0xa5, 0x41, 0x7f, 0x5f, 0xb9, 0xa2, 0xaa, 0x83, 0x86, 0x39, 0xff, 0x5f, 0xe2, 0x02,
+ 0xe9, 0x6a, 0x85, 0x31, 0xff, 0x7f, 0x60, 0x68, 0x45, 0x4a, 0xe3, 0x20, 0x57, 0x3f, 0x2d, 0xaf, 0x2a, 0x73, 0xc3, 0x18, 0x7f, 0x5f, 0x70, 0x7e, 0x05, 0x42, 0xc3, 0x18, 0xbf, 0xb5, 0x3d, 0x2d,
+ 0x4c, 0xac, 0xea, 0xa3, 0xf5, 0xf7, 0xc7, 0xb2, 0x4c, 0xb4, 0x89, 0x93, 0xfa, 0x8a, 0x92, 0x00, 0xce, 0xbc, 0xaa, 0x9b, 0x57, 0xeb, 0x2b, 0xff, 0xce, 0xbc, 0xca, 0xa3, 0xd5, 0xcb, 0x5e, 0xf8,
+ 0x4c, 0xac, 0xcb, 0xa3, 0xdf, 0xd7, 0xbd, 0x82, 0x4c, 0xac, 0xcb, 0xa3, 0xc3, 0xe8, 0xda, 0xff, 0x6c, 0xb4, 0xea, 0xa3, 0x0f, 0xed, 0xd5, 0x7d, 0x6c, 0xb4, 0xaa, 0x9b, 0xce, 0xfb, 0xff, 0x7f,
+ 0x6c, 0xb4, 0xaa, 0x9b, 0x78, 0x5f, 0xff, 0xff, 0x0b, 0xac, 0xaa, 0x9b, 0xf5, 0x37, 0xbe, 0xf8, 0x2b, 0xac, 0xaa, 0xa3, 0x2a, 0xaf, 0xf7, 0xef, 0x2b, 0xac, 0xca, 0xa3, 0xb8, 0xb6, 0xed, 0xb2,
+ 0x0b, 0xac, 0xca, 0xa3, 0x8a, 0x5d, 0x89, 0x8b, 0x0b, 0xac, 0xca, 0x9b, 0xaf, 0xaa, 0xb8, 0xba, 0x2c, 0xac, 0xeb, 0xa3, 0x2b, 0xab, 0xfd, 0x17, 0x4b, 0xac, 0xea, 0xa3, 0xfd, 0xef, 0xca, 0x79,
+ 0x2c, 0xb4, 0xea, 0xa3, 0x37, 0x2b, 0xa5, 0x75, 0x2b, 0xb4, 0x27, 0x8b, 0x00, 0x20, 0xaa, 0x5e, 0x6c, 0xb4, 0xc6, 0x82, 0x0a, 0x0a, 0xaa, 0x57, 0xac, 0xbc, 0xa6, 0x7a, 0x0a, 0xa8, 0x8a, 0x57,
+ 0x2b, 0xb4, 0xa6, 0x7a, 0xa0, 0xaa, 0xaa, 0x55, 0xa8, 0x9b, 0x45, 0x72, 0xa8, 0xe0, 0x7a, 0x5d, 0xe7, 0x8a, 0x25, 0x6a, 0xe0, 0x7a, 0x57, 0x57, 0x87, 0x72, 0x05, 0x6a, 0xbf, 0xd7, 0x0e, 0xaf,
+ 0x46, 0x6a, 0x05, 0x62, 0xbe, 0xd5, 0x20, 0x28, 0xa7, 0x72, 0xe5, 0x61, 0xff, 0x6f, 0x2b, 0x8a, 0x46, 0x6a, 0xe5, 0x61, 0xae, 0xb7, 0xa8, 0xaa, 0x46, 0x6a, 0x05, 0x5a, 0xfd, 0x30, 0x02, 0xa2,
+ 0x67, 0x72, 0x06, 0x62, 0xfd, 0x7b, 0xfe, 0xfb, 0x87, 0x72, 0x25, 0x6a, 0xe9, 0x43, 0xde, 0xb5, 0xa7, 0x72, 0xc5, 0x59, 0x5e, 0xff, 0xe0, 0xaa, 0x88, 0x72, 0xe5, 0x59, 0xfd, 0xef, 0x2b, 0xaa,
+ 0x29, 0x7b, 0x47, 0x6a, 0x55, 0x8d, 0xff, 0xf5, 0xe8, 0x72, 0x46, 0x6a, 0x7d, 0x8f, 0xfe, 0x57, 0xe8, 0x72, 0x27, 0x62, 0xad, 0x82, 0xd7, 0xed, 0xc9, 0x72, 0x26, 0x62, 0x2a, 0xaf, 0x77, 0xff,
+ 0xe8, 0x7a, 0x06, 0x62, 0x78, 0xbd, 0x7f, 0xff, 0x67, 0x6a, 0x26, 0x62, 0x43, 0x7a, 0x35, 0x88, 0x47, 0x6a, 0xe6, 0x61, 0xf2, 0x8d, 0x00, 0xba, 0xc9, 0x72, 0x06, 0x62, 0xfd, 0xfd, 0xf0, 0xff,
+ 0x67, 0x72, 0x26, 0x62, 0xeb, 0x27, 0xab, 0xff, 0xa8, 0x72, 0x46, 0x6a, 0x7f, 0x27, 0x77, 0xb5, 0x88, 0x72, 0x26, 0x62, 0xe7, 0xa0, 0xe1, 0x02, 0xa8, 0x72, 0x47, 0x6a, 0xcf, 0xdf, 0xd7, 0xae,
+ 0x88, 0x72, 0x47, 0x6a, 0xaa, 0x9f, 0x2f, 0x88, 0x88, 0x72, 0x67, 0x6a, 0x55, 0xde, 0x0e, 0x20, 0xa8, 0x72, 0x67, 0x6a, 0xd5, 0xb9, 0x88, 0x2b, 0xe9, 0x7a, 0x88, 0x6a, 0x75, 0xd7, 0xd7, 0xaa,
+ 0x0a, 0x7b, 0x88, 0x6a, 0x55, 0xfd, 0xab, 0xe8, 0x10, 0x9c, 0x88, 0x6a, 0x55, 0x55, 0xf5, 0x3d, 0xef, 0xc4, 0xaa, 0x72, 0x55, 0x55, 0x2d, 0x00, 0x4f, 0xd5, 0x65, 0x49, 0xff, 0x2b, 0x00, 0x70,
+ 0x0e, 0xcd, 0x44, 0x39, 0x0b, 0xc0, 0x5c, 0x55, 0x2d, 0xcd, 0x24, 0x39, 0xe0, 0x57, 0x55, 0x55, 0xc6, 0x49, 0xe4, 0x28, 0x82, 0xeb, 0xd7, 0xff, 0xa6, 0x41, 0x24, 0x39, 0xdf, 0xb5, 0x8f, 0xa7,
+ 0xc7, 0x41, 0x04, 0x39, 0x5a, 0xfb, 0xeb, 0x22, 0x85, 0x39, 0xe3, 0x20, 0x6a, 0xe0, 0x3f, 0x2a, 0x07, 0x4a, 0xe4, 0x28, 0xf5, 0xaf, 0xaa, 0x02, 0xc6, 0x41, 0x25, 0x31, 0xbd, 0xf8, 0xde, 0xf0,
+ 0xe6, 0x51, 0x24, 0x31, 0xab, 0xab, 0xa3, 0xad, 0xe6, 0x51, 0x44, 0x41, 0xe2, 0x63, 0xa2, 0xfe, 0xa5, 0x49, 0x04, 0x39, 0xae, 0xfa, 0xde, 0xf0, 0x86, 0x51, 0x44, 0x31, 0xde, 0x5a, 0x2b, 0x0a,
+ 0xe6, 0x59, 0x25, 0x31, 0xf5, 0xff, 0xaa, 0xa2, 0x06, 0x4a, 0x25, 0x41, 0x8a, 0xaa, 0xdf, 0x2f, 0x47, 0x52, 0xe4, 0x30, 0x5a, 0xfa, 0xe0, 0xfe, 0xa6, 0x51, 0x25, 0x31, 0x0d, 0xbd, 0x0b, 0x00,
+ 0x26, 0x62, 0x85, 0x49, 0x87, 0xdf, 0xef, 0x7b, 0x05, 0x62, 0x44, 0x41, 0x20, 0xaa, 0xaa, 0xb7, 0xe5, 0x61, 0x63, 0x59, 0x00, 0xa8, 0xfa, 0x5d, 0xc5, 0x61, 0x43, 0x51, 0x22, 0x00, 0xaa, 0xff,
+ 0xe5, 0x59, 0x84, 0x51, 0xa8, 0xec, 0xfb, 0xd5, 0xe4, 0x59, 0xa5, 0x51, 0xf3, 0xa9, 0xb7, 0xa1, 0xe5, 0x59, 0x84, 0x51, 0xa2, 0x3f, 0xa6, 0x9f, 0x66, 0x6a, 0x84, 0x51, 0x2f, 0xae, 0xfb, 0x57,
+ 0x66, 0x6a, 0x84, 0x51, 0x22, 0xfa, 0xfb, 0xd5, 0x46, 0x62, 0x83, 0x51, 0xe8, 0xa2, 0xab, 0x7f, 0x87, 0x6a, 0x84, 0x59, 0xaf, 0x2a, 0xff, 0xf5, 0x46, 0x6a, 0xa4, 0x59, 0x82, 0xfe, 0xff, 0x55,
+ 0x26, 0x62, 0x83, 0x59, 0x2a, 0xbe, 0xfe, 0x5f, 0x25, 0x62, 0x83, 0x59, 0x08, 0xab, 0xd5, 0x55, 0x25, 0x62, 0x43, 0x51, 0x88, 0xa8, 0x5e, 0x7f, 0x05, 0x6a, 0x23, 0x41, 0x82, 0xe8, 0xef, 0xd7,
+ 0xe5, 0x61, 0x23, 0x49, 0x80, 0xfe, 0x57, 0x5f, 0xa4, 0x59, 0x23, 0x49, 0x82, 0xde, 0xdf, 0x5f, 0xa4, 0x59, 0x03, 0x49, 0xa2, 0xfe, 0x6b, 0x5f, 0x63, 0x59, 0x23, 0x49, 0x0a, 0xbe, 0xa9, 0xfd,
+ 0x83, 0x59, 0x43, 0x51, 0x2b, 0x7d, 0x7b, 0xd7, 0x64, 0x59, 0x23, 0x49, 0x02, 0xa2, 0xae, 0x2b, 0x84, 0x59, 0x23, 0x51, 0x37, 0xb7, 0xea, 0xae, 0xc4, 0x61, 0x23, 0x51, 0xa2, 0xfd, 0xfd, 0xdf,
+ 0xc4, 0x61, 0x43, 0x59, 0x0a, 0xf5, 0x77, 0x7d, 0x43, 0x7a, 0x42, 0x51, 0x2f, 0xff, 0xd7, 0x7d, 0x06, 0x9b, 0x43, 0x59, 0x0a, 0x55, 0x55, 0x55, 0x44, 0x82, 0x42, 0x59, 0x88, 0x5d, 0xd5, 0x77,
+ 0xe3, 0x69, 0x62, 0x61, 0x94, 0x55, 0xd5, 0x55, 0xa4, 0x61, 0x22, 0x59, 0x88, 0x9a, 0x0a, 0xef, 0x04, 0x6a, 0x43, 0x61, 0x2e, 0xdd, 0xfd, 0x7f, 0x65, 0x82, 0x83, 0x61, 0x2b, 0x2d, 0x0b, 0xaf,
+ 0xa6, 0x8a, 0xc3, 0x71, 0x2e, 0x0a, 0x02, 0xa7, 0x07, 0x93, 0x66, 0x82, 0xbf, 0xa7, 0x8f, 0xaf, 0x48, 0x9b, 0x86, 0x82, 0xbd, 0x0a, 0x2f, 0x22, 0xca, 0xab, 0x28, 0x9b, 0xa9, 0x3d, 0xb5, 0x0d,
+ 0x4b, 0xbc, 0xc7, 0x8a, 0x0a, 0x02, 0xe2, 0x42, 0x2c, 0xac, 0x65, 0x39, 0x50, 0x78, 0x80, 0xbe, 0x2b, 0x7b, 0x85, 0x39, 0xf5, 0xf5, 0x80, 0xd0, 0x2a, 0x7b, 0xc6, 0x41, 0xaf, 0xff, 0x02, 0x4f,
+ 0x4c, 0x9c, 0x85, 0x41, 0xfa, 0xff, 0xaa, 0x89, 0x8b, 0x83, 0x22, 0x39, 0xa2, 0xaa, 0xaa, 0x7a, 0x2c, 0x94, 0xe4, 0x28, 0xaa, 0xbf, 0x00, 0x55, 0x8b, 0x83, 0x64, 0x31, 0xbf, 0x02, 0xf8, 0xd5,
+ 0x6b, 0x83, 0x84, 0x31, 0xaa, 0x02, 0xb7, 0x57, 0xcb, 0x8b, 0xe4, 0x41, 0xaa, 0x80, 0xd5, 0x55, 0x4d, 0x9c, 0xe5, 0x51, 0x0a, 0xef, 0xfb, 0xd5, 0x0c, 0x94, 0x85, 0x41, 0xe0, 0x7f, 0x77, 0x7a,
+ 0x45, 0x52, 0x23, 0x29, 0x2f, 0xaf, 0x2a, 0xad, 0x0c, 0x94, 0x46, 0x5a, 0xaf, 0x59, 0x62, 0xeb, 0xcd, 0x93, 0x85, 0x39, 0xdc, 0x7a, 0x7f, 0x7f, 0x67, 0x52, 0xa5, 0x39, 0x02, 0x7f, 0xff, 0x73,
+ 0x68, 0x52, 0x85, 0x39, 0xf4, 0x43, 0x7a, 0x77, 0x06, 0x4a, 0x64, 0x31, 0x27, 0x2b, 0xa2, 0x3b, 0x2a, 0x73, 0xa6, 0x41, 0x0a, 0xbf, 0x7f, 0x5a, 0xee, 0x8b, 0x85, 0x39, 0xff, 0xfe, 0x09, 0xaf,
+ 0x4f, 0x9c, 0xc7, 0x39, 0x57, 0xff, 0x80, 0x82, 0xac, 0x83, 0xa6, 0x41, 0x7f, 0x55, 0x80, 0x20, 0x0d, 0x94, 0xa6, 0x39, 0x7f, 0xd5, 0xaa, 0x00, 0x6f, 0xa4, 0x24, 0x29, 0xd5, 0xf5, 0x7a, 0xc0,
+ 0x6d, 0xb4, 0xeb, 0xa3, 0x2b, 0xb7, 0x25, 0x7d, 0xae, 0xbc, 0xea, 0xa3, 0x0a, 0xff, 0x33, 0x55, 0x6c, 0xb4, 0xc9, 0xa3, 0xea, 0xaa, 0xf8, 0xdd, 0x4d, 0xb4, 0xa8, 0x9b, 0xae, 0x2a, 0xfa, 0x7d,
+ 0x2c, 0xac, 0x89, 0x93, 0x80, 0xb8, 0xab, 0xfd, 0x2b, 0xac, 0x89, 0x9b, 0xfc, 0xaa, 0xfe, 0x5f, 0x0b, 0xac, 0x8a, 0x93, 0xba, 0xec, 0xb5, 0x0f, 0x2b, 0xac, 0xa9, 0x9b, 0xf8, 0xbb, 0xec, 0x56,
+ 0xeb, 0xa3, 0x89, 0x9b, 0x00, 0xee, 0x8b, 0xbd, 0x0b, 0xac, 0x88, 0x93, 0xa8, 0xab, 0xba, 0x56, 0x0b, 0xac, 0x89, 0x9b, 0xba, 0xaa, 0xeb, 0x2d, 0x2b, 0xac, 0x8a, 0x9b, 0xa2, 0xaa, 0x7a, 0x2a,
+ 0x0b, 0xa4, 0x68, 0x9b, 0x00, 0xae, 0xae, 0xde, 0xeb, 0xa3, 0x65, 0x72, 0x00, 0x00, 0x88, 0x5f, 0x0a, 0xac, 0x66, 0x6a, 0x00, 0x0a, 0xf2, 0x55, 0xea, 0xab, 0x66, 0x6a, 0x00, 0xfa, 0x55, 0x55,
+ 0xe8, 0xa3, 0x46, 0x6a, 0xe0, 0x57, 0x57, 0x55, 0xe7, 0x82, 0x46, 0x62, 0xf8, 0xff, 0xed, 0x57, 0x87, 0x72, 0x46, 0x62, 0x20, 0xaf, 0xef, 0xfd, 0x87, 0x72, 0x26, 0x62, 0xb0, 0xae, 0xa8, 0x7f,
+ 0x87, 0x72, 0x26, 0x62, 0xa2, 0xae, 0xf5, 0xbf, 0x87, 0x72, 0x26, 0x6a, 0xf2, 0x7e, 0x73, 0xfd, 0x67, 0x6a, 0x25, 0x62, 0xfd, 0x94, 0xfd, 0xdc, 0x87, 0x72, 0x26, 0x62, 0xef, 0x7b, 0xbd, 0xaa,
+ 0x87, 0x72, 0x26, 0x62, 0xff, 0xf5, 0xfe, 0x8a, 0x67, 0x72, 0x26, 0x62, 0xfe, 0x6b, 0xeb, 0xf0, 0x67, 0x72, 0x26, 0x62, 0xf7, 0xfa, 0xff, 0xbf, 0x87, 0x6a, 0x26, 0x62, 0xfd, 0xab, 0xe2, 0xba,
+ 0x87, 0x6a, 0xe4, 0x59, 0xaa, 0x08, 0x02, 0x7a, 0x87, 0x72, 0xc5, 0x59, 0x22, 0x88, 0xa8, 0xf5, 0x87, 0x72, 0xe5, 0x61, 0x2a, 0x80, 0xa8, 0x55, 0x87, 0x72, 0x05, 0x5a, 0x82, 0x82, 0xea, 0x75,
+ 0xa8, 0x72, 0x84, 0x59, 0x02, 0xaa, 0xaa, 0xfd, 0x86, 0x72, 0xe5, 0x61, 0xe8, 0xa8, 0x7a, 0x55, 0x67, 0x6a, 0xc4, 0x59, 0x02, 0xaa, 0x97, 0xaa, 0x67, 0x72, 0xe4, 0x59, 0x02, 0xea, 0x7f, 0xef,
+ 0x66, 0x6a, 0xe5, 0x59, 0x88, 0x55, 0xfd, 0xba, 0x46, 0x6a, 0xc5, 0x59, 0xa8, 0xb7, 0xaa, 0x2e, 0x67, 0x6a, 0x06, 0x62, 0xb5, 0xb5, 0x2f, 0x03, 0x87, 0x6a, 0x26, 0x62, 0xff, 0xbf, 0x08, 0x0b,
+ 0x88, 0x72, 0x46, 0x6a, 0x8d, 0x2b, 0x26, 0x02, 0xa8, 0x72, 0x67, 0x6a, 0xfe, 0xfa, 0xfe, 0x00, 0xc8, 0x72, 0x27, 0x6a, 0x57, 0x8a, 0xaa, 0xa0, 0xa8, 0x72, 0x47, 0x6a, 0xbd, 0x28, 0xef, 0x0a,
+ 0xc9, 0x72, 0x47, 0x6a, 0xda, 0xae, 0xbd, 0x00, 0x2c, 0x83, 0x67, 0x6a, 0xf5, 0xf7, 0xbf, 0x2a, 0xd0, 0xbc, 0xa9, 0x72, 0x55, 0x55, 0x95, 0x0b, 0x2f, 0xcd, 0xcb, 0x72, 0x55, 0xbd, 0x00, 0x20,
+ 0x4f, 0xd5, 0x65, 0x49, 0xaf, 0x02, 0x80, 0x5e, 0x2e, 0xcd, 0x24, 0x39, 0x00, 0x80, 0x57, 0x55, 0x4d, 0xd5, 0x24, 0x31, 0x80, 0x57, 0x55, 0x55, 0xc4, 0x51, 0x05, 0x21, 0x68, 0x78, 0x57, 0xf5,
+ 0xe7, 0x41, 0x04, 0x29, 0x3b, 0x35, 0xfd, 0xbb, 0x89, 0x5a, 0x66, 0x39, 0x57, 0xff, 0x0b, 0xaf, 0x48, 0x5a, 0x25, 0x29, 0x57, 0x5e, 0xb8, 0xe8, 0xa6, 0x41, 0x45, 0x31, 0xde, 0x86, 0xf4, 0x0c,
+ 0x27, 0x4a, 0x45, 0x31, 0x8a, 0xf7, 0xab, 0x55, 0xe7, 0x41, 0x44, 0x31, 0x78, 0x0b, 0xb5, 0xbf, 0x07, 0x4a, 0x65, 0x39, 0xad, 0xe8, 0xf7, 0x8f, 0xe7, 0x49, 0x65, 0x41, 0x68, 0x5b, 0x03, 0xad,
+ 0xc6, 0x41, 0x45, 0x39, 0xe7, 0x17, 0xb8, 0xf2, 0xc6, 0x49, 0x04, 0x39, 0xeb, 0xbc, 0xbe, 0xde, 0xa5, 0x49, 0x44, 0x41, 0x27, 0xfb, 0xeb, 0xf5, 0xa5, 0x51, 0x44, 0x41, 0xaf, 0x3f, 0xab, 0xee,
+ 0x07, 0x5a, 0x03, 0x39, 0xeb, 0x25, 0xbe, 0x7f, 0x06, 0x52, 0x65, 0x41, 0x6d, 0xa2, 0xfb, 0xad, 0xe6, 0x51, 0x44, 0x41, 0xb5, 0xf8, 0xbe, 0xea, 0xc6, 0x51, 0x24, 0x41, 0x88, 0xf8, 0xe2, 0x7b,
+ 0xa5, 0x51, 0x44, 0x41, 0xbf, 0x8b, 0x7b, 0xdf, 0xc5, 0x51, 0x23, 0x49, 0xaa, 0x8a, 0xff, 0x7e, 0x83, 0x59, 0x02, 0x51, 0x22, 0x8a, 0xaf, 0xfd, 0x84, 0x59, 0x23, 0x49, 0xe8, 0xfa, 0xd5, 0xf7,
+ 0xa4, 0x59, 0x43, 0x51, 0x23, 0xbd, 0xdd, 0x57, 0xc4, 0x61, 0x23, 0x49, 0x0a, 0xeb, 0xff, 0x7d, 0xc4, 0x59, 0x43, 0x51, 0xa2, 0xea, 0xd7, 0x75, 0xc5, 0x59, 0x23, 0x51, 0x3a, 0xfa, 0xbf, 0x7f,
+ 0xa4, 0x59, 0x23, 0x51, 0xa8, 0x8a, 0xab, 0x7f, 0xa4, 0x59, 0x23, 0x49, 0xbc, 0xfa, 0x7f, 0x55, 0x84, 0x59, 0x23, 0x51, 0xaa, 0xf5, 0xe9, 0x2f, 0xa4, 0x59, 0x23, 0x51, 0xa8, 0xff, 0xf5, 0xfe,
+ 0x83, 0x59, 0x23, 0x51, 0xe0, 0x5f, 0xf5, 0xd5, 0xa4, 0x59, 0x23, 0x51, 0xe2, 0xdd, 0xfd, 0xdf, 0x63, 0x51, 0x22, 0x49, 0x8d, 0x0b, 0xfb, 0x6b, 0x64, 0x51, 0x02, 0x49, 0xa0, 0xa8, 0xfb, 0x7a,
+ 0x63, 0x51, 0x03, 0x49, 0xfc, 0xde, 0xef, 0xad, 0x44, 0x59, 0x23, 0x41, 0xb8, 0xff, 0xd7, 0xa8, 0x64, 0x51, 0x23, 0x49, 0xa7, 0xf7, 0x7a, 0x12, 0x64, 0x59, 0x22, 0x49, 0xef, 0xb9, 0x8f, 0x0a,
+ 0x64, 0x59, 0x22, 0x51, 0x8a, 0xae, 0x9b, 0xca, 0x64, 0x59, 0x23, 0x51, 0xf0, 0x33, 0xfe, 0xbb, 0x84, 0x59, 0x22, 0x51, 0x6a, 0xeb, 0xfa, 0xaf, 0x63, 0x61, 0x22, 0x59, 0x0a, 0xee, 0xb1, 0x32,
+ 0x63, 0x61, 0x22, 0x59, 0xee, 0x7e, 0xea, 0x03, 0x84, 0x61, 0x42, 0x59, 0xba, 0xfd, 0xab, 0x8a, 0x84, 0x61, 0x22, 0x59, 0xbf, 0xad, 0x82, 0x82, 0x84, 0x61, 0x42, 0x59, 0xf5, 0xe4, 0x7a, 0xe2,
+ 0x83, 0x61, 0x42, 0x59, 0xdf, 0xae, 0x22, 0xa2, 0xa4, 0x69, 0x63, 0x59, 0x5d, 0xba, 0x2f, 0xbf, 0x25, 0x72, 0x43, 0x61, 0x57, 0xf7, 0xbf, 0x20, 0x85, 0x7a, 0x84, 0x69, 0x5d, 0xfd, 0xef, 0x0a,
+ 0x68, 0x9b, 0xa4, 0x69, 0xfd, 0xbd, 0xab, 0x2a, 0x89, 0x9b, 0x46, 0x7a, 0xf5, 0xab, 0x0a, 0x22, 0xa9, 0xa3, 0x08, 0x93, 0xb5, 0x2b, 0x2a, 0x2e, 0x6c, 0xbc, 0x89, 0xa3, 0xf5, 0xb5, 0x35, 0x45,
+ 0x4c, 0xbc, 0x25, 0x5a, 0x80, 0x80, 0x62, 0x78, 0xcc, 0x93, 0x06, 0x52, 0xe2, 0xff, 0xf5, 0xff, 0x0a, 0x73, 0x84, 0x39, 0xf6, 0x5e, 0x7a, 0x82, 0x0a, 0x63, 0x84, 0x31, 0x7f, 0x55, 0xfd, 0x2f,
+ 0x4b, 0x73, 0xe6, 0x41, 0x5d, 0xff, 0x5a, 0x90, 0xeb, 0x6a, 0x03, 0x29, 0x57, 0x5e, 0xaa, 0x2a, 0x47, 0x4a, 0x43, 0x29, 0xf5, 0xf5, 0x97, 0x28, 0x6c, 0x6b, 0x84, 0x39, 0xf5, 0xfd, 0x55, 0x7c,
+ 0x67, 0x52, 0xe4, 0x20, 0xb8, 0xa8, 0xfa, 0xb5, 0x06, 0x4a, 0x45, 0x31, 0xa8, 0xf0, 0xfd, 0xa8, 0xe8, 0x49, 0x64, 0x31, 0xf8, 0xbf, 0xd7, 0x02, 0xe6, 0x51, 0x24, 0x21, 0x02, 0xfe, 0x7f, 0x5e,
+ 0x4c, 0x73, 0x64, 0x31, 0xdf, 0xf5, 0xfd, 0x2d, 0xec, 0x8b, 0x24, 0x31, 0xff, 0x77, 0xbf, 0x80, 0x2e, 0x8c, 0x24, 0x31, 0x7f, 0xb5, 0x2a, 0xab, 0xed, 0x8b, 0xc6, 0x39, 0x55, 0xfe, 0xa0, 0xff,
+ 0x0d, 0x94, 0xe7, 0x49, 0x55, 0x02, 0xff, 0x5d, 0x4e, 0x94, 0xe6, 0x41, 0xff, 0xdc, 0xdd, 0xfd, 0xae, 0xa4, 0xa8, 0x5a, 0xab, 0x00, 0x55, 0x55, 0xec, 0x8b, 0x48, 0x52, 0x00, 0x08, 0xd7, 0x5f,
+ 0xec, 0x93, 0x47, 0x52, 0x20, 0xaa, 0xd5, 0x55, 0x8e, 0xa4, 0x47, 0x52, 0xa8, 0x7f, 0x77, 0x57, 0x2c, 0x94, 0x88, 0x5a, 0x00, 0x57, 0x55, 0x55, 0x8a, 0x83, 0x88, 0x52, 0xfc, 0xff, 0x7d, 0x5d,
+ 0xc9, 0xa3, 0x25, 0x6a, 0xa0, 0x7f, 0x55, 0x55, 0x88, 0x9b, 0xe5, 0x59, 0x80, 0xff, 0xff, 0x55, 0xe7, 0x82, 0xc5, 0x59, 0x00, 0xbe, 0xff, 0x55, 0xc7, 0x82, 0xe6, 0x59, 0x00, 0xee, 0x7f, 0xf5,
+ 0xe7, 0x8a, 0xe6, 0x59, 0x28, 0xff, 0xd5, 0xff, 0xe7, 0x8a, 0x46, 0x6a, 0x00, 0x75, 0x55, 0x55, 0x08, 0x8b, 0x26, 0x62, 0x00, 0xf7, 0xb7, 0x35, 0x48, 0x8b, 0x26, 0x6a, 0x0a, 0x7f, 0x55, 0x54,
+ 0x27, 0x93, 0x26, 0x6a, 0x00, 0xdf, 0x55, 0x55, 0xe7, 0x82, 0x46, 0x6a, 0xa0, 0x7f, 0x3d, 0x5d, 0x28, 0x8b, 0x26, 0x62, 0x0a, 0xff, 0x5e, 0x5f, 0x48, 0x9b, 0x46, 0x62, 0x8a, 0xf5, 0xfd, 0x55,
+ 0xc6, 0x7a, 0x47, 0x6a, 0xf0, 0xff, 0x57, 0xdd, 0xa7, 0x72, 0x26, 0x6a, 0x02, 0xaa, 0xef, 0xd5, 0x87, 0x72, 0x26, 0x62, 0xe2, 0xba, 0x6a, 0xfa, 0x87, 0x6a, 0x46, 0x62, 0xbe, 0xfe, 0x37, 0xd5,
+ 0x87, 0x6a, 0x46, 0x62, 0xdf, 0xbb, 0xec, 0x55, 0x67, 0x72, 0x26, 0x62, 0xfe, 0xee, 0xe3, 0x2a, 0x67, 0x6a, 0x26, 0x62, 0x80, 0x88, 0x6e, 0x70, 0x67, 0x6a, 0x26, 0x62, 0x2e, 0x0a, 0xfe, 0x5a,
+ 0x87, 0x6a, 0x25, 0x62, 0xe3, 0xe2, 0x5f, 0x55, 0x66, 0x6a, 0xe7, 0x59, 0xaa, 0x7f, 0x8a, 0xae, 0x66, 0x6a, 0x07, 0x62, 0xae, 0xad, 0x8a, 0xfa, 0xa7, 0x72, 0x26, 0x62, 0x2f, 0xbf, 0x7b, 0x7f,
+ 0x87, 0x6a, 0xe5, 0x61, 0xe0, 0xa8, 0x55, 0xff, 0x66, 0x6a, 0xe5, 0x59, 0xaa, 0xe8, 0xd5, 0xca, 0x67, 0x6a, 0x85, 0x59, 0x8a, 0x5f, 0x82, 0xaa, 0x67, 0x6a, 0xc6, 0x61, 0xea, 0xb5, 0xaf, 0x2a,
+ 0x66, 0x6a, 0x85, 0x59, 0xd5, 0xba, 0x2b, 0x80, 0x67, 0x6a, 0xe5, 0x61, 0xbd, 0xae, 0xb8, 0xa8, 0x87, 0x72, 0x05, 0x62, 0xbd, 0xbf, 0xf9, 0xdc, 0x67, 0x6a, 0x25, 0x62, 0x66, 0x3e, 0xbb, 0x67,
+ 0x87, 0x6a, 0x26, 0x62, 0x55, 0x5e, 0xd7, 0xaf, 0xc8, 0x72, 0x06, 0x62, 0x7f, 0x55, 0xe3, 0xdf, 0x67, 0x6a, 0x06, 0x62, 0xf7, 0xed, 0xb9, 0x03, 0x87, 0x6a, 0x06, 0x62, 0xbd, 0x2a, 0xaf, 0xbe,
+ 0x67, 0x6a, 0x26, 0x62, 0xce, 0xcf, 0x7a, 0xab, 0x67, 0x6a, 0x07, 0x6a, 0x1b, 0x00, 0x2a, 0x00, 0xa8, 0x72, 0x27, 0x62, 0xbf, 0xf7, 0xba, 0x2a, 0xc8, 0x72, 0x67, 0x6a, 0x5d, 0xfd, 0xfb, 0x2f,
+ 0xa8, 0x72, 0x67, 0x6a, 0x5b, 0xaf, 0xa8, 0x3a, 0x0a, 0x7b, 0x87, 0x6a, 0x77, 0xff, 0xbf, 0x2b, 0xb0, 0xb4, 0xa8, 0x72, 0x55, 0x55, 0x55, 0x2b, 0xef, 0xc4, 0xa9, 0x6a, 0x55, 0x55, 0x2f, 0x80,
+ 0xce, 0xc4, 0xca, 0x72, 0x55, 0x2d, 0xa0, 0x0a, 0x6f, 0xdd, 0x2c, 0x83, 0xad, 0xaa, 0xaa, 0x2a, 0x2e, 0xd5, 0x63, 0x41, 0x02, 0x00, 0xe0, 0x5e, 0xec, 0xcc, 0x24, 0x39, 0xe0, 0x5e, 0x55, 0x55,
+ 0x27, 0x42, 0xe4, 0x38, 0xbd, 0xab, 0xe2, 0xeb, 0x28, 0x4a, 0x45, 0x31, 0xbb, 0x00, 0xa3, 0xa5, 0x07, 0x4a, 0xe4, 0x28, 0x02, 0xa0, 0xfa, 0x7a, 0xe7, 0x41, 0xe4, 0x20, 0xe0, 0x8a, 0xeb, 0xfd,
+ 0xa6, 0x39, 0x04, 0x29, 0x3f, 0xa2, 0x7d, 0x8d, 0xe6, 0x49, 0xe4, 0x28, 0xa8, 0xef, 0xf5, 0xaa, 0x85, 0x39, 0xc4, 0x20, 0x88, 0xbf, 0x97, 0xe8, 0x86, 0x39, 0xe4, 0x20, 0xff, 0x97, 0x6f, 0x0b,
+ 0xc6, 0x41, 0x04, 0x29, 0xfd, 0xbf, 0xf5, 0xa2, 0xa6, 0x41, 0x04, 0x31, 0xab, 0x9f, 0x2f, 0x2e, 0xc6, 0x49, 0x24, 0x39, 0x7f, 0xff, 0xac, 0x5c, 0xa5, 0x51, 0xe4, 0x28, 0x3e, 0xbf, 0xd7, 0xd5,
+ 0x06, 0x52, 0xc3, 0x30, 0xaa, 0xa8, 0xe2, 0xad, 0xc6, 0x49, 0x04, 0x31, 0x52, 0x7b, 0xef, 0xaf, 0x65, 0x41, 0x03, 0x29, 0x09, 0xad, 0x3f, 0xf2, 0x85, 0x41, 0x24, 0x39, 0xe0, 0xc9, 0xa3, 0x55,
+ 0xc6, 0x51, 0xc3, 0x28, 0x2f, 0xbf, 0x5f, 0xff, 0xa4, 0x51, 0x05, 0x31, 0x02, 0xb7, 0xbf, 0xaf, 0xa5, 0x49, 0x04, 0x41, 0x5e, 0x2a, 0xaa, 0xa2, 0xa5, 0x51, 0xe4, 0x28, 0xaa, 0xf8, 0xf8, 0x5a,
+ 0xa5, 0x41, 0x03, 0x31, 0xba, 0xee, 0x55, 0xcd, 0x63, 0x59, 0x02, 0x51, 0xfe, 0xbe, 0x9f, 0x2e, 0x84, 0x59, 0xe2, 0x50, 0xfe, 0xf7, 0xff, 0xe8, 0x43, 0x51, 0xe2, 0x48, 0xab, 0xbd, 0xec, 0x2a,
+ 0x63, 0x51, 0xe2, 0x48, 0xec, 0xff, 0xf7, 0xb6, 0x64, 0x59, 0x03, 0x49, 0xab, 0xaf, 0xad, 0xbf, 0x64, 0x59, 0x23, 0x51, 0xb8, 0x7f, 0xef, 0xed, 0x43, 0x51, 0xe2, 0x40, 0x8a, 0x68, 0x70, 0x98,
+ 0x24, 0x59, 0xe3, 0x38, 0x22, 0xaf, 0x5d, 0xf7, 0x64, 0x51, 0xe2, 0x40, 0x8b, 0xfb, 0x5d, 0xdd, 0x84, 0x59, 0xe2, 0x40, 0x28, 0xa2, 0xb5, 0xdd, 0x64, 0x59, 0x02, 0x41, 0x00, 0x8a, 0xaa, 0xd7,
+ 0x44, 0x51, 0x03, 0x49, 0x2c, 0xe0, 0x3e, 0xa7, 0x64, 0x59, 0x23, 0x49, 0x7d, 0xff, 0x7f, 0x8a, 0x64, 0x51, 0x03, 0x49, 0xfb, 0xdf, 0x8a, 0x00, 0x63, 0x59, 0x24, 0x49, 0x7f, 0xeb, 0xe9, 0x02,
+ 0x84, 0x59, 0x23, 0x49, 0xfd, 0xfd, 0xaf, 0x32, 0x84, 0x61, 0x43, 0x51, 0xb5, 0xdf, 0xb7, 0x0a, 0x84, 0x61, 0x43, 0x51, 0x5f, 0xef, 0xf0, 0xfa, 0xc3, 0x61, 0x23, 0x59, 0xfd, 0xba, 0xab, 0x8a,
+ 0xa4, 0x61, 0x62, 0x59, 0x75, 0xfe, 0xb7, 0xf7, 0xa3, 0x61, 0x44, 0x59, 0xde, 0xfa, 0xfc, 0xdf, 0x83, 0x61, 0x23, 0x59, 0xe1, 0x0a, 0xba, 0xa0, 0xa4, 0x61, 0x63, 0x59, 0xef, 0xdf, 0xff, 0xb9,
+ 0xa4, 0x61, 0x43, 0x59, 0x8a, 0xfb, 0xf0, 0xae, 0xa4, 0x61, 0x43, 0x61, 0x03, 0x80, 0xdd, 0x8a, 0xa4, 0x61, 0x63, 0x61, 0xdf, 0xde, 0x1e, 0x8a, 0xa4, 0x61, 0x43, 0x59, 0xbb, 0xeb, 0x88, 0xb8,
+ 0x84, 0x61, 0x63, 0x59, 0x45, 0xb6, 0x5b, 0x97, 0x83, 0x61, 0x44, 0x59, 0xae, 0xa8, 0x7f, 0x7a, 0x25, 0x7a, 0x63, 0x59, 0x0b, 0xb5, 0xd5, 0xd5, 0x07, 0x93, 0xa3, 0x61, 0xbf, 0xab, 0x2b, 0x95,
+ 0xea, 0xab, 0xe7, 0x8a, 0xbd, 0xb7, 0xbf, 0x0f, 0x6c, 0xbc, 0x89, 0xa3, 0xd5, 0xfd, 0xff, 0xf8, 0x4b, 0xb4, 0xa9, 0xa3, 0x75, 0xef, 0xbf, 0x2a, 0x6d, 0xbc, 0xe6, 0x51, 0x22, 0x88, 0xa0, 0x54,
+ 0x0c, 0x94, 0x27, 0x5a, 0x5f, 0x8a, 0xaa, 0xd5, 0x8f, 0xa4, 0x28, 0x5a, 0xbe, 0x5e, 0xeb, 0x09, 0x8f, 0xa4, 0xa9, 0x62, 0x57, 0xfd, 0xbf, 0x58, 0xaf, 0xa4, 0x88, 0x62, 0x57, 0xfb, 0x02, 0xff,
+ 0x8e, 0xa4, 0xe9, 0x62, 0xd5, 0xab, 0x00, 0xd5, 0x0f, 0xb5, 0x0a, 0x6b, 0x7f, 0x2a, 0x7a, 0x5f, 0x0f, 0xad, 0x89, 0x5a, 0xaf, 0xe0, 0x55, 0x57, 0xd1, 0x9c, 0x26, 0x52, 0x02, 0xd5, 0xfd, 0xff,
+ 0x6f, 0x9c, 0x69, 0x52, 0x08, 0x5f, 0xff, 0x7f, 0x6e, 0x9c, 0x08, 0x42, 0x30, 0x55, 0xff, 0xbf, 0x4d, 0x9c, 0x48, 0x4a, 0x20, 0x55, 0x5f, 0xff, 0xad, 0x83, 0x45, 0x29, 0x58, 0x7f, 0xff, 0xaa,
+ 0xea, 0x6a, 0xc5, 0x39, 0x0d, 0xb5, 0xf5, 0xfa, 0xe9, 0x6a, 0x07, 0x42, 0xa8, 0xaa, 0xae, 0xbd, 0xc9, 0x62, 0x48, 0x52, 0x0b, 0xbf, 0xde, 0x5a, 0xc9, 0x62, 0x48, 0x4a, 0x6a, 0xf8, 0x7a, 0x72,
+ 0xa9, 0x5a, 0x28, 0x4a, 0xd5, 0xc3, 0xbe, 0x77, 0xc9, 0x5a, 0x07, 0x4a, 0xb1, 0xb7, 0xbf, 0x55, 0xa9, 0x5a, 0x48, 0x4a, 0x42, 0x2d, 0xbf, 0xfd, 0xa9, 0x5a, 0x07, 0x42, 0x52, 0xdc, 0x7a, 0xae,
+ 0xa9, 0x5a, 0x27, 0x4a, 0xe5, 0x7d, 0x8f, 0xff, 0x89, 0x5a, 0x27, 0x4a, 0x82, 0x50, 0x2a, 0x2b, 0xc9, 0x62, 0x48, 0x4a, 0xaf, 0x7a, 0x2a, 0xff, 0xa9, 0x5a, 0x07, 0x4a, 0xaa, 0x5e, 0x0a, 0x88,
+ 0xc8, 0x72, 0xa5, 0x51, 0xff, 0xed, 0x20, 0xaa, 0xc8, 0x72, 0xc5, 0x59, 0xb7, 0xeb, 0xac, 0xfa, 0x09, 0x83, 0x06, 0x62, 0x55, 0x0f, 0x5f, 0xd5, 0xe8, 0x7a, 0xe5, 0x61, 0xad, 0xc8, 0xfd, 0xff,
+ 0xc8, 0x72, 0x06, 0x62, 0x2a, 0xbf, 0xf7, 0xd7, 0x67, 0x6a, 0x25, 0x62, 0x62, 0x66, 0x2f, 0xd7, 0x47, 0x6a, 0xe5, 0x61, 0x0b, 0x0b, 0xa0, 0x6a, 0x47, 0x6a, 0x06, 0x62, 0xea, 0x02, 0xe9, 0x7f,
+ 0x47, 0x6a, 0x05, 0x62, 0x2e, 0x2a, 0x7e, 0xdb, 0x66, 0x6a, 0x07, 0x62, 0x0e, 0xaa, 0xaf, 0xf6, 0x67, 0x6a, 0x26, 0x62, 0xba, 0x7e, 0xc3, 0xab, 0x67, 0x6a, 0x06, 0x62, 0x2a, 0xdb, 0xff, 0xde,
+ 0x66, 0x6a, 0x07, 0x62, 0xa2, 0xf5, 0xab, 0x02, 0x87, 0x6a, 0x26, 0x62, 0x8b, 0xff, 0xdf, 0xe0, 0x47, 0x6a, 0x26, 0x62, 0x56, 0x82, 0xc2, 0xae, 0x86, 0x6a, 0x05, 0x5a, 0x2a, 0xa0, 0x7f, 0xff,
+ 0x87, 0x6a, 0x84, 0x51, 0x82, 0x7e, 0xaa, 0xaa, 0x26, 0x62, 0xa5, 0x59, 0x80, 0xf7, 0xb2, 0x80, 0x47, 0x6a, 0x83, 0x51, 0xf7, 0xbf, 0xaa, 0xa2, 0x46, 0x62, 0x85, 0x59, 0x97, 0x8a, 0x88, 0x82,
+ 0x06, 0x62, 0x25, 0x5a, 0xa8, 0xf6, 0x2b, 0xf9, 0x47, 0x6a, 0x05, 0x62, 0x9f, 0x37, 0xa1, 0x79, 0x67, 0x6a, 0x06, 0x62, 0xa2, 0x9f, 0xb5, 0xdf, 0x67, 0x6a, 0x06, 0x62, 0xbe, 0x0a, 0x26, 0xe2,
+ 0x67, 0x6a, 0x26, 0x62, 0xef, 0xae, 0x08, 0x3e, 0x87, 0x6a, 0x26, 0x62, 0x6a, 0xab, 0xf5, 0x88, 0x67, 0x6a, 0x26, 0x62, 0xeb, 0xce, 0xbd, 0xb5, 0xa8, 0x6a, 0x06, 0x62, 0xa3, 0x75, 0xff, 0x7f,
+ 0xa8, 0x72, 0x06, 0x62, 0xa8, 0xfe, 0xdf, 0xdf, 0x47, 0x6a, 0x05, 0x62, 0xde, 0xff, 0x62, 0x9f, 0x67, 0x6a, 0x05, 0x62, 0x8d, 0xbf, 0xed, 0xdf, 0x66, 0x72, 0x07, 0x62, 0xbf, 0xaa, 0xad, 0xce,
+ 0x67, 0x6a, 0x26, 0x62, 0x5d, 0x8f, 0x2a, 0xf2, 0x67, 0x6a, 0x26, 0x62, 0x34, 0xf8, 0xea, 0xb2, 0x67, 0x6a, 0x26, 0x62, 0x2e, 0xba, 0x0b, 0x22, 0xa8, 0x72, 0x26, 0x62, 0xdf, 0x7f, 0xeb, 0x2b,
+ 0xa8, 0x72, 0x47, 0x6a, 0xd5, 0xd5, 0xd6, 0x0b, 0xa8, 0x72, 0x47, 0x6a, 0xa5, 0xee, 0xaf, 0x00, 0xac, 0x93, 0x88, 0x72, 0x55, 0x55, 0xd5, 0x2d, 0x8d, 0xb4, 0x68, 0x72, 0x55, 0xd5, 0x0d, 0x02,
+ 0xad, 0xbc, 0xca, 0x72, 0x55, 0x2f, 0x00, 0x00, 0xad, 0xbc, 0x2c, 0x7b, 0x2d, 0x00, 0x00, 0x00, 0xce, 0xc4, 0x6d, 0xbc, 0xa0, 0xab, 0x02, 0x57, 0xee, 0xcc, 0x0b, 0xac, 0xd8, 0xaa, 0xa8, 0x2a,
+ 0x4f, 0xdd, 0x42, 0x51, 0xa2, 0x08, 0x80, 0x58, 0x4d, 0xdd, 0x64, 0x41, 0xc0, 0x5c, 0x55, 0x55, 0xa6, 0x41, 0x24, 0x31, 0x74, 0xaf, 0x2b, 0xc2, 0x65, 0x31, 0xe3, 0x20, 0x20, 0x78, 0x57, 0xd7,
+ 0xa6, 0x39, 0x04, 0x29, 0xa3, 0xb9, 0xb5, 0x25, 0xc6, 0x49, 0x24, 0x29, 0x2f, 0xa5, 0x2f, 0x2a, 0xc6, 0x49, 0x04, 0x21, 0x7e, 0x5e, 0xf8, 0x9e, 0xc6, 0x41, 0x25, 0x29, 0xf5, 0xff, 0x8a, 0x0a,
+ 0xe7, 0x41, 0x24, 0x21, 0xaf, 0x37, 0xaa, 0x28, 0xe7, 0x41, 0x45, 0x39, 0xfe, 0xfe, 0x57, 0x40, 0x28, 0x52, 0x25, 0x31, 0x97, 0xbd, 0x0f, 0xfd, 0x07, 0x4a, 0x85, 0x39, 0xea, 0x0f, 0x76, 0x7d,
+ 0xe6, 0x41, 0x24, 0x31, 0xce, 0xa0, 0x99, 0xbb, 0xc6, 0x41, 0x24, 0x31, 0x7b, 0x5f, 0xa8, 0xff, 0xa6, 0x49, 0xe4, 0x30, 0xf0, 0xb6, 0x97, 0xff, 0x65, 0x41, 0x04, 0x39, 0x90, 0xe2, 0xbf, 0xed,
+ 0x44, 0x41, 0xe3, 0x28, 0xb7, 0xa3, 0x0a, 0xaa, 0x85, 0x49, 0xe3, 0x30, 0x6a, 0xaf, 0x8f, 0x09, 0xa5, 0x49, 0x04, 0x39, 0xad, 0x8a, 0xda, 0xa2, 0xc6, 0x49, 0x23, 0x39, 0xae, 0x2f, 0xaa, 0x95,
+ 0xa6, 0x41, 0xc3, 0x28, 0xff, 0xff, 0x78, 0x78, 0x64, 0x41, 0x83, 0x20, 0x0a, 0xbe, 0xff, 0x7f, 0x65, 0x49, 0xe3, 0x28, 0x20, 0xbb, 0xfd, 0xfd, 0x65, 0x39, 0xe3, 0x28, 0x78, 0x7d, 0x29, 0x09,
+ 0x65, 0x51, 0xe3, 0x30, 0x33, 0x97, 0xbf, 0xbe, 0x63, 0x59, 0x03, 0x51, 0x88, 0xae, 0xff, 0xf6, 0x64, 0x59, 0x22, 0x51, 0x2f, 0xbf, 0xab, 0x02, 0x84, 0x61, 0x22, 0x51, 0xd7, 0x5d, 0xeb, 0xa2,
+ 0x63, 0x61, 0x03, 0x49, 0xd5, 0xff, 0xaa, 0x80, 0xa4, 0x61, 0x23, 0x49, 0xd5, 0x75, 0x88, 0xea, 0x84, 0x61, 0x23, 0x51, 0xf5, 0xfd, 0xa8, 0x8e, 0x64, 0x59, 0xe3, 0x48, 0x77, 0xab, 0x80, 0x80,
+ 0x64, 0x59, 0x02, 0x41, 0x55, 0xaa, 0x2a, 0xa8, 0x64, 0x59, 0x03, 0x41, 0x77, 0xaa, 0x08, 0x00, 0x84, 0x59, 0x23, 0x41, 0xd5, 0xaa, 0x88, 0x20, 0x64, 0x59, 0x43, 0x41, 0xfd, 0x02, 0xa2, 0x00,
+ 0xa3, 0x59, 0x24, 0x49, 0x57, 0xee, 0xef, 0x2e, 0xa4, 0x61, 0x23, 0x49, 0xfd, 0xba, 0x2a, 0x20, 0xa4, 0x61, 0x43, 0x59, 0xd7, 0x7b, 0xab, 0x2e, 0xa4, 0x61, 0x43, 0x51, 0xff, 0x97, 0x83, 0xf8,
+ 0x84, 0x61, 0x43, 0x51, 0xab, 0x29, 0xaa, 0xff, 0xa4, 0x61, 0x43, 0x59, 0x38, 0xcb, 0x1f, 0x03, 0xa3, 0x61, 0x64, 0x59, 0xde, 0xa3, 0xeb, 0xff, 0x84, 0x61, 0x42, 0x51, 0x8a, 0x8a, 0xbf, 0xda,
+ 0x83, 0x61, 0x64, 0x51, 0x2b, 0x02, 0xaa, 0xad, 0x64, 0x61, 0xa3, 0x59, 0x20, 0xaa, 0xfe, 0xb7, 0x84, 0x61, 0x43, 0x59, 0xff, 0x6b, 0xde, 0xbc, 0xe3, 0x69, 0x64, 0x59, 0xf5, 0xbf, 0xdf, 0xcf,
+ 0xa3, 0x61, 0x44, 0x59, 0xb7, 0xac, 0x70, 0xa2, 0xa4, 0x61, 0x63, 0x59, 0xe3, 0xfc, 0x75, 0x5d, 0x84, 0x61, 0x42, 0x49, 0x00, 0xa0, 0xaa, 0xdf, 0x84, 0x61, 0x02, 0x49, 0xa0, 0x02, 0xa8, 0x5f,
+ 0x83, 0x59, 0xc2, 0x38, 0xa2, 0x88, 0x80, 0xdf, 0x84, 0x59, 0xc2, 0x40, 0xa0, 0x28, 0xa8, 0x5f, 0xa3, 0x59, 0xc2, 0x40, 0x2a, 0x02, 0xbe, 0xd5, 0xa3, 0x59, 0xc1, 0x40, 0x20, 0x20, 0x7f, 0xff,
+ 0xa3, 0x61, 0xa1, 0x38, 0x00, 0xea, 0x55, 0xfb, 0x63, 0x8a, 0xa1, 0x38, 0x0a, 0xff, 0x55, 0xff, 0x47, 0xa3, 0xc1, 0x48, 0x02, 0x95, 0x55, 0xfd, 0xaf, 0x9c, 0x00, 0x59, 0xaa, 0x00, 0xb5, 0x55,
+ 0xaf, 0xa4, 0xe4, 0x51, 0x0a, 0x80, 0xfe, 0xfd, 0xef, 0xac, 0xe7, 0x41, 0x80, 0x57, 0x5f, 0xff, 0x0c, 0x9c, 0xe7, 0x39, 0xf8, 0x55, 0x55, 0x55, 0x89, 0x5a, 0x07, 0x42, 0x0a, 0xbd, 0xb5, 0x2d,
+ 0x6b, 0x73, 0x89, 0x52, 0xb5, 0xfd, 0xad, 0x83, 0x8c, 0x7b, 0x0a, 0x63, 0xff, 0x5b, 0x83, 0xab, 0xcd, 0x83, 0x69, 0x52, 0xd7, 0xaf, 0x02, 0xae, 0xac, 0x7b, 0x2b, 0x63, 0xb9, 0x02, 0xa8, 0x02,
+ 0x2d, 0x8c, 0x4b, 0x73, 0xa2, 0xfd, 0xfb, 0xbf, 0xcd, 0x83, 0x4b, 0x73, 0x54, 0xef, 0xa0, 0xa8, 0xcd, 0x83, 0x2a, 0x63, 0x77, 0xea, 0xa8, 0x80, 0xcd, 0x83, 0xea, 0x5a, 0x57, 0xff, 0xa0, 0x2a,
+ 0xcd, 0x83, 0xa9, 0x5a, 0x55, 0xaa, 0x02, 0x00, 0xed, 0x83, 0xaa, 0x5a, 0x55, 0xab, 0x0a, 0xaa, 0xed, 0x83, 0xaa, 0x5a, 0x55, 0xab, 0x80, 0xaa, 0xcd, 0x83, 0x89, 0x52, 0x57, 0xfe, 0x00, 0xaa,
+ 0xcd, 0x83, 0x08, 0x42, 0x7d, 0xfe, 0x00, 0x00, 0xcd, 0x83, 0x28, 0x42, 0x55, 0x5d, 0x80, 0x00, 0x6c, 0x73, 0x07, 0x42, 0x75, 0xff, 0x20, 0x00, 0x4b, 0x73, 0x28, 0x4a, 0xd5, 0xff, 0xa0, 0x00,
+ 0x2b, 0x73, 0x48, 0x4a, 0x55, 0xd5, 0xaa, 0x80, 0x2a, 0x73, 0x68, 0x52, 0x55, 0xf5, 0xef, 0x8a, 0xc9, 0x5a, 0x68, 0x52, 0xee, 0xd6, 0x00, 0x08, 0x0b, 0x6b, 0x68, 0x52, 0x55, 0x77, 0xff, 0x0a,
+ 0x05, 0x6a, 0x47, 0x62, 0xaa, 0x0f, 0xfa, 0x5f, 0x67, 0x6a, 0x05, 0x62, 0xff, 0xde, 0xff, 0xfc, 0x46, 0x6a, 0x07, 0x62, 0xba, 0xee, 0xa3, 0x28, 0x67, 0x6a, 0x26, 0x62, 0xd6, 0xf3, 0xff, 0xfe,
+ 0x47, 0x6a, 0x06, 0x62, 0xff, 0x82, 0xdc, 0xaf, 0x67, 0x6a, 0x06, 0x62, 0xed, 0xbe, 0xaf, 0xb8, 0x67, 0x6a, 0xe6, 0x59, 0xff, 0xa0, 0xaa, 0xde, 0x67, 0x6a, 0x06, 0x62, 0xd9, 0xab, 0xe2, 0xaf,
+ 0x67, 0x6a, 0x26, 0x62, 0xdd, 0xdb, 0x2e, 0xa2, 0x86, 0x6a, 0x27, 0x62, 0xf5, 0xd5, 0xbe, 0xaf, 0x68, 0x6a, 0x27, 0x62, 0x0a, 0xc3, 0xc8, 0x3e, 0x26, 0x6a, 0x68, 0x62, 0x2a, 0x0a, 0xbf, 0xfd,
+ 0x67, 0x6a, 0x06, 0x62, 0x83, 0xff, 0x37, 0xae, 0x67, 0x6a, 0x26, 0x62, 0xe7, 0xbb, 0xcc, 0xbb, 0x67, 0x6a, 0x26, 0x62, 0xed, 0xac, 0x5f, 0x6d, 0x47, 0x6a, 0x06, 0x5a, 0x20, 0xae, 0xfa, 0xa3,
+ 0x67, 0x6a, 0xe5, 0x59, 0xaa, 0xa0, 0x60, 0xaa, 0x47, 0x62, 0xc6, 0x59, 0xa8, 0x38, 0xa9, 0xa8, 0x88, 0x6a, 0x26, 0x62, 0x7d, 0x3e, 0xd5, 0xfd, 0x47, 0x6a, 0x05, 0x5a, 0x8b, 0xba, 0xda, 0x7a,
+ 0x47, 0x6a, 0x06, 0x5a, 0xfd, 0xaa, 0xfa, 0xab, 0x67, 0x6a, 0x06, 0x62, 0xaf, 0xf5, 0x8d, 0x0f, 0x67, 0x6a, 0xe6, 0x59, 0xfe, 0xaf, 0x02, 0x9a, 0x87, 0x6a, 0x06, 0x62, 0xff, 0xf3, 0x2a, 0x5f,
+ 0x87, 0x6a, 0x06, 0x62, 0x7f, 0x82, 0xfa, 0xdf, 0x67, 0x6a, 0x06, 0x62, 0xea, 0x82, 0xd5, 0xae, 0x67, 0x6a, 0x26, 0x62, 0xdc, 0x2a, 0xe9, 0x5f, 0x67, 0x6a, 0x26, 0x62, 0xb7, 0x3b, 0xb8, 0x8e,
+ 0x67, 0x6a, 0x26, 0x62, 0x65, 0xb0, 0xc8, 0xba, 0x67, 0x6a, 0x26, 0x62, 0xfd, 0xe2, 0x0e, 0xab, 0x67, 0x72, 0x26, 0x62, 0xfa, 0xba, 0xab, 0xaa, 0x87, 0x72, 0x26, 0x62, 0xfd, 0x8a, 0xba, 0xbf,
+ 0x67, 0x6a, 0x46, 0x62, 0x47, 0xf7, 0x38, 0x3e, 0x68, 0x72, 0x27, 0x62, 0xee, 0xbf, 0x28, 0x22, 0xcd, 0x9b, 0x47, 0x6a, 0x55, 0x55, 0x55, 0x2b, 0x0c, 0xa4, 0x27, 0x62, 0xd5, 0xff, 0xff, 0x00,
+ 0x6c, 0xb4, 0x67, 0x6a, 0x55, 0xd5, 0x2b, 0x00, 0x4c, 0xb4, 0x68, 0x72, 0x55, 0x0b, 0x00, 0x00, 0x8c, 0xbc, 0x6b, 0x8b, 0xad, 0x0a, 0x28, 0xaa, 0x8d, 0xbc, 0xea, 0xab, 0x0a, 0xaa, 0xf8, 0xde,
+ 0x8d, 0xbc, 0xc9, 0xab, 0x00, 0x82, 0xf7, 0x57, 0x6c, 0xbc, 0xa9, 0xa3, 0x00, 0x00, 0xfd, 0x72, 0xad, 0xc4, 0xa8, 0xab, 0xaa, 0x0a, 0xfe, 0x7d, 0xed, 0xcc, 0x68, 0xa3, 0xa2, 0x2a, 0x97, 0xd5,
+ 0x2c, 0xb4, 0x03, 0x31, 0x55, 0x57, 0x56, 0x54, 0x86, 0x39, 0x25, 0x29, 0xdf, 0xde, 0xd6, 0x3e, 0xc6, 0x41, 0xe4, 0x20, 0x8b, 0xea, 0xdf, 0xaf, 0x86, 0x39, 0x04, 0x21, 0x77, 0x75, 0x8b, 0xe2,
+ 0xc6, 0x41, 0x25, 0x29, 0xfd, 0xad, 0xaf, 0x0d, 0xe7, 0x49, 0x45, 0x31, 0xf5, 0xe8, 0x02, 0xea, 0xc7, 0x41, 0x24, 0x31, 0xdb, 0x2e, 0xc8, 0x2a, 0xe7, 0x41, 0x45, 0x39, 0x0d, 0xea, 0xb9, 0xea,
+ 0xe7, 0x41, 0x45, 0x39, 0x88, 0xbd, 0xbe, 0x7f, 0xc6, 0x41, 0x45, 0x39, 0x7e, 0xf8, 0xfc, 0x55, 0x65, 0x39, 0x04, 0x29, 0xa0, 0xb8, 0x7c, 0x6c, 0xc6, 0x41, 0x04, 0x31, 0x82, 0xfe, 0x7b, 0x8b,
+ 0x85, 0x41, 0x44, 0x31, 0x5d, 0x28, 0x7b, 0xda, 0x65, 0x39, 0xe3, 0x28, 0xea, 0x7c, 0x56, 0x2a, 0x06, 0x52, 0x25, 0x39, 0xfd, 0x7b, 0x7b, 0x82, 0xa5, 0x49, 0x03, 0x31, 0x6a, 0x6a, 0xa3, 0x22,
+ 0x65, 0x41, 0xe4, 0x30, 0xdf, 0xdf, 0xdf, 0xdc, 0xc6, 0x49, 0xe3, 0x28, 0x0b, 0xa1, 0xa9, 0xbd, 0xa5, 0x51, 0x44, 0x41, 0xca, 0xe0, 0xa6, 0x5f, 0x44, 0x41, 0xc3, 0x28, 0xae, 0xa4, 0xec, 0xfe,
+ 0xa5, 0x49, 0xc3, 0x20, 0x7b, 0xff, 0xed, 0x0b, 0xa6, 0x49, 0xe4, 0x28, 0xe5, 0x29, 0x2a, 0x00, 0x65, 0x49, 0x04, 0x31, 0x5e, 0x70, 0xfa, 0x57, 0x65, 0x39, 0xe4, 0x28, 0x09, 0x8f, 0x3a, 0x2f,
+ 0xe7, 0x51, 0x04, 0x39, 0xd6, 0xb5, 0xff, 0x2a, 0xa5, 0x59, 0x43, 0x59, 0x3d, 0xfb, 0x5f, 0xfc, 0xa4, 0x61, 0x43, 0x59, 0xbf, 0x8a, 0xf5, 0x83, 0x43, 0x61, 0xa4, 0x59, 0xaa, 0xaa, 0x99, 0xa7,
+ 0x64, 0x61, 0x83, 0x59, 0xc8, 0x5b, 0x88, 0xf0, 0x84, 0x61, 0x63, 0x59, 0xed, 0xd5, 0x3a, 0x82, 0x84, 0x61, 0x42, 0x59, 0xf5, 0xe2, 0x2a, 0xa0, 0xa4, 0x61, 0x63, 0x59, 0x77, 0xa3, 0xf7, 0x2b,
+ 0xa4, 0x61, 0x23, 0x59, 0xb7, 0x9e, 0xbf, 0xe8, 0x84, 0x61, 0x43, 0x59, 0x8b, 0xa8, 0x2b, 0x16, 0x83, 0x61, 0x64, 0x59, 0xa2, 0x6e, 0x9e, 0xd6, 0xa4, 0x61, 0x63, 0x59, 0x87, 0xb6, 0xea, 0x55,
+ 0xa4, 0x61, 0x23, 0x51, 0xae, 0xe8, 0xaf, 0xd7, 0xa4, 0x59, 0x23, 0x51, 0x8a, 0xaa, 0xbf, 0xdf, 0x84, 0x59, 0x22, 0x49, 0x28, 0x28, 0xee, 0x75, 0x63, 0x59, 0xc2, 0x40, 0x00, 0xa8, 0xfb, 0x57,
+ 0x64, 0x59, 0xc1, 0x38, 0x00, 0x8a, 0xbf, 0x7d, 0x83, 0x59, 0xa2, 0x30, 0x00, 0xaa, 0xaa, 0x57, 0xc4, 0x61, 0x82, 0x38, 0xa0, 0xaa, 0xbf, 0x57, 0x84, 0x59, 0xc2, 0x40, 0x00, 0x20, 0xea, 0xd5,
+ 0x83, 0x59, 0xa1, 0x30, 0x00, 0x80, 0x7e, 0xaa, 0x83, 0x61, 0x82, 0x30, 0x00, 0xaa, 0xd5, 0xaa, 0x83, 0x61, 0xc1, 0x48, 0x2a, 0x37, 0xbf, 0xaa, 0xc4, 0x61, 0x01, 0x59, 0x0a, 0xdf, 0xff, 0xbf,
+ 0x83, 0x61, 0xc2, 0x50, 0x0a, 0xa7, 0xea, 0xa0, 0x63, 0x69, 0x02, 0x49, 0x5f, 0xaa, 0x2a, 0x00, 0x82, 0x69, 0x61, 0x28, 0x7a, 0xaa, 0x00, 0x00, 0x83, 0x71, 0xa2, 0x30, 0xd5, 0xaa, 0x02, 0x08,
+ 0xa3, 0x71, 0xe1, 0x50, 0xf5, 0xfb, 0xaa, 0x28, 0x83, 0x69, 0x21, 0x59, 0x5d, 0xfa, 0x02, 0x80, 0x82, 0x69, 0x01, 0x59, 0xf5, 0x79, 0xa8, 0xa2, 0x82, 0x69, 0x21, 0x59, 0x55, 0xff, 0xee, 0x2a,
+ 0x63, 0x69, 0x21, 0x61, 0x55, 0xff, 0xec, 0xe8, 0x42, 0x69, 0x21, 0x61, 0x9b, 0x8a, 0xfa, 0x49, 0x63, 0x69, 0x01, 0x61, 0x2f, 0x3b, 0x2d, 0x2a, 0xe3, 0x71, 0x22, 0x61, 0x37, 0xff, 0xff, 0xae,
+ 0x8a, 0x83, 0x62, 0x61, 0xfd, 0xb5, 0x35, 0x3d, 0xcd, 0x83, 0xa9, 0x5a, 0xf5, 0xbf, 0xaa, 0x00, 0xcd, 0x83, 0x49, 0x4a, 0x5e, 0xaa, 0x00, 0x00, 0xcd, 0x83, 0x28, 0x4a, 0xb5, 0x0a, 0x00, 0x00,
+ 0xed, 0x83, 0x4b, 0x73, 0xb5, 0xff, 0xaa, 0x0a, 0xcd, 0x83, 0x6b, 0x73, 0x4a, 0x57, 0xfe, 0xda, 0x8c, 0x7b, 0xca, 0x62, 0x01, 0xa0, 0xb8, 0xaa, 0xac, 0x83, 0x2a, 0x6b, 0x2a, 0xff, 0x5d, 0x55,
+ 0xcc, 0x83, 0x2b, 0x6b, 0xa8, 0xff, 0xff, 0x7d, 0x0d, 0x84, 0x4b, 0x73, 0x2b, 0xff, 0x55, 0x5d, 0xcd, 0x83, 0x2b, 0x63, 0xe0, 0xea, 0x7f, 0x7f, 0x8c, 0x7b, 0x0a, 0x63, 0x02, 0x2b, 0xd5, 0xff,
+ 0xad, 0x7b, 0x4b, 0x73, 0x2e, 0xaa, 0xf5, 0xfd, 0x8c, 0x7b, 0x2b, 0x6b, 0x8a, 0xea, 0x6a, 0x22, 0xad, 0x7b, 0x4b, 0x6b, 0xfa, 0xf5, 0xa7, 0x28, 0xad, 0x7b, 0x4b, 0x73, 0xb5, 0xaa, 0x2a, 0xa8,
+ 0xac, 0x7b, 0x4b, 0x73, 0x2e, 0xd7, 0xff, 0xff, 0xac, 0x7b, 0x4b, 0x73, 0xe8, 0x7b, 0xf5, 0xdf, 0x6b, 0x7b, 0x0a, 0x73, 0x70, 0x7a, 0xff, 0xde, 0x6b, 0x7b, 0xea, 0x6a, 0x5e, 0x77, 0x77, 0x2f,
+ 0x6b, 0x7b, 0xaa, 0x62, 0x57, 0xff, 0x2a, 0x00, 0x6b, 0x7b, 0xa9, 0x62, 0xd7, 0xaa, 0x00, 0x00, 0x6b, 0x7b, 0x89, 0x5a, 0xfd, 0x00, 0xa8, 0xaa, 0x6b, 0x7b, 0xe9, 0x6a, 0x09, 0xe8, 0xa8, 0xaa,
+ 0x47, 0x6a, 0xe6, 0x61, 0x8f, 0x00, 0x20, 0xde, 0x67, 0x6a, 0x06, 0x62, 0xa7, 0x7a, 0xe8, 0xf7, 0x47, 0x6a, 0x06, 0x62, 0xee, 0xa2, 0x8a, 0xfd, 0x47, 0x6a, 0xa6, 0x59, 0x22, 0x80, 0xde, 0x08,
+ 0x47, 0x6a, 0xe6, 0x61, 0x0a, 0xd7, 0xdd, 0x2a, 0x67, 0x6a, 0xe5, 0x61, 0xea, 0x57, 0xff, 0xa8, 0x88, 0x6a, 0x06, 0x62, 0x55, 0xd5, 0xf7, 0x3b, 0x67, 0x6a, 0x06, 0x62, 0xff, 0xff, 0xe5, 0x22,
+ 0x47, 0x6a, 0xe6, 0x61, 0xda, 0xa8, 0x2a, 0x00, 0x87, 0x6a, 0x06, 0x62, 0xaf, 0xbd, 0x7f, 0x2a, 0x87, 0x6a, 0x06, 0x5a, 0xaa, 0xfa, 0xad, 0xa2, 0x67, 0x6a, 0x06, 0x5a, 0xb8, 0x6b, 0xa2, 0xe3,
+ 0xc8, 0x6a, 0x27, 0x62, 0xcd, 0xfd, 0xf5, 0x55, 0x88, 0x6a, 0x26, 0x62, 0xdb, 0xfa, 0x8a, 0xba, 0x67, 0x6a, 0x26, 0x62, 0x76, 0x6c, 0x9a, 0xab, 0x66, 0x6a, 0x27, 0x62, 0xad, 0xf9, 0x56, 0x7c,
+ 0x87, 0x6a, 0x06, 0x62, 0xff, 0xb8, 0xd5, 0x62, 0x66, 0x6a, 0x07, 0x5a, 0xaa, 0xfa, 0x7f, 0xa9, 0x47, 0x6a, 0xe6, 0x59, 0x80, 0x9c, 0x82, 0xbe, 0x47, 0x6a, 0x06, 0x5a, 0xbb, 0xaa, 0xee, 0xfa,
+ 0x47, 0x6a, 0x26, 0x5a, 0xfa, 0xbf, 0x8b, 0xeb, 0x46, 0x6a, 0x07, 0x62, 0x75, 0x2a, 0xfa, 0x9d, 0x87, 0x6a, 0xe5, 0x59, 0xcd, 0xee, 0xaa, 0xff, 0x67, 0x6a, 0x25, 0x62, 0x57, 0xcd, 0x7d, 0x5d,
+ 0x47, 0x6a, 0x06, 0x62, 0x20, 0xa0, 0xff, 0x57, 0x66, 0x6a, 0xe5, 0x61, 0xaa, 0xae, 0x89, 0x7f, 0x47, 0x6a, 0xe5, 0x61, 0xa2, 0xea, 0xba, 0x76, 0x67, 0x72, 0x06, 0x62, 0x7e, 0xff, 0xae, 0x0e,
+ 0xe8, 0x82, 0x26, 0x62, 0x7f, 0x55, 0xaf, 0x2a, 0xaa, 0x9b, 0x27, 0x62, 0x55, 0x75, 0x0a, 0xaa, 0xea, 0xab, 0x27, 0x62, 0x55, 0xfd, 0xaa, 0x82, 0xcb, 0xa3, 0x68, 0x6a, 0x55, 0x2a, 0x80, 0x02,
+ 0xca, 0xa3, 0x69, 0x6a, 0x95, 0x28, 0x02, 0x02, 0xcb, 0xa3, 0x07, 0x8b, 0x8b, 0xa2, 0xa0, 0x7e, 0x0b, 0xac, 0xa7, 0x82, 0x02, 0xaa, 0xaa, 0xdd, 0x2b, 0xb4, 0xa6, 0x8a, 0x82, 0xbf, 0xfa, 0xed,
+ 0x0b, 0xac, 0xe7, 0x8a, 0xa8, 0xaa, 0xdf, 0xaf, 0xeb, 0xab, 0xa6, 0x8a, 0x0f, 0x0a, 0x8b, 0xa6, 0x4b, 0xb4, 0x48, 0xa3, 0x82, 0xfa, 0xff, 0x5d, 0x0b, 0xb4, 0x47, 0x9b, 0x00, 0xaa, 0xeb, 0x7f,
+ 0x0a, 0xb4, 0x64, 0x8a, 0xa0, 0xaa, 0xaa, 0x7a, 0xc9, 0xab, 0x43, 0x82, 0x00, 0xaa, 0x7a, 0x55, 0xea, 0xb3, 0x46, 0x82, 0x00, 0x2a, 0xad, 0xad, 0x6c, 0xc4, 0x69, 0xa3, 0xbf, 0xbf, 0x2d, 0x2f,
+ 0x8c, 0xc4, 0xe3, 0x28, 0x58, 0x58, 0x56, 0x57, 0xe7, 0x41, 0x04, 0x29, 0x0f, 0xaf, 0xed, 0xb5, 0xa7, 0x41, 0x65, 0x39, 0x0a, 0xe0, 0xf7, 0xf2, 0xa6, 0x41, 0x45, 0x31, 0x7c, 0x2a, 0x2e, 0xae,
+ 0xe6, 0x41, 0x25, 0x31, 0xf5, 0x0a, 0xef, 0xab, 0xc6, 0x41, 0x45, 0x39, 0xaf, 0xe8, 0x75, 0x56, 0x06, 0x4a, 0x45, 0x31, 0xff, 0xfd, 0xbf, 0xa1, 0xe6, 0x49, 0x04, 0x29, 0xff, 0x82, 0x62, 0x5e,
+ 0x65, 0x41, 0xe3, 0x28, 0x08, 0xf7, 0xd5, 0xaf, 0xa5, 0x49, 0x04, 0x31, 0xde, 0xd5, 0x25, 0x6a, 0xa6, 0x49, 0x04, 0x29, 0xb7, 0xba, 0xf2, 0xff, 0xa6, 0x49, 0xe4, 0x30, 0x02, 0x80, 0x89, 0x89,
+ 0x85, 0x49, 0x04, 0x39, 0xb7, 0x36, 0xde, 0xdc, 0x85, 0x41, 0x04, 0x31, 0x2e, 0x78, 0xde, 0xba, 0x26, 0x52, 0x03, 0x29, 0xc3, 0xa9, 0xfd, 0xd5, 0x27, 0x52, 0x44, 0x39, 0xeb, 0xab, 0xf3, 0x79,
+ 0xe6, 0x51, 0x04, 0x31, 0x57, 0x58, 0x7e, 0x7f, 0xc6, 0x49, 0xe3, 0x30, 0xf5, 0xa5, 0x17, 0x55, 0xc6, 0x49, 0x04, 0x39, 0x0b, 0xed, 0xfe, 0x7f, 0x85, 0x49, 0x04, 0x39, 0xd6, 0x70, 0xff, 0xbe,
+ 0xe6, 0x59, 0x24, 0x39, 0xa5, 0x29, 0xad, 0x75, 0x06, 0x52, 0xe4, 0x28, 0x2a, 0x80, 0x5f, 0xbf, 0x0a, 0x6b, 0xe3, 0x30, 0xfe, 0x7f, 0x55, 0x3f, 0x6a, 0x83, 0x25, 0x31, 0x57, 0x55, 0x2d, 0x80,
+ 0xcc, 0x8b, 0x64, 0x41, 0x35, 0xa9, 0xf8, 0x75, 0x46, 0x6a, 0x63, 0x51, 0x54, 0xd6, 0x57, 0x55, 0xc4, 0x61, 0x63, 0x59, 0xff, 0x09, 0xab, 0x7b, 0xc4, 0x61, 0x83, 0x59, 0xb9, 0xa8, 0xf2, 0xaf,
+ 0xc4, 0x61, 0x43, 0x51, 0xe2, 0xaa, 0x7a, 0x7a, 0xa4, 0x61, 0xe2, 0x48, 0x0a, 0x88, 0xaa, 0xdf, 0xa3, 0x61, 0xa1, 0x40, 0x00, 0x88, 0xaa, 0x5f, 0x83, 0x61, 0x81, 0x30, 0x80, 0x20, 0xaa, 0xf5,
+ 0x63, 0x59, 0xc1, 0x40, 0x00, 0x00, 0xab, 0xd5, 0x63, 0x59, 0x81, 0x38, 0x00, 0x08, 0x7f, 0xff, 0x63, 0x61, 0x61, 0x28, 0xa0, 0xaa, 0xd5, 0xea, 0x63, 0x59, 0xa2, 0x38, 0x00, 0x7e, 0xd5, 0xff,
+ 0x23, 0x51, 0xa1, 0x30, 0x20, 0x75, 0xaa, 0xa2, 0x03, 0x51, 0x81, 0x38, 0xa0, 0xd5, 0xaf, 0x2b, 0x03, 0x59, 0xa1, 0x30, 0x7b, 0xef, 0xea, 0x22, 0x03, 0x59, 0xa1, 0x30, 0x55, 0xaa, 0x2a, 0x00,
+ 0x23, 0x59, 0x81, 0x28, 0xfd, 0x82, 0x00, 0x80, 0x43, 0x61, 0xc1, 0x48, 0xfd, 0xbf, 0x2a, 0x82, 0xa3, 0x69, 0xe2, 0x58, 0xfd, 0xaf, 0xaf, 0x0f, 0x83, 0x69, 0x02, 0x59, 0xfd, 0x2a, 0xaa, 0x2a,
+ 0xa3, 0x69, 0x42, 0x59, 0xcf, 0xaa, 0xea, 0x7f, 0xa3, 0x69, 0x42, 0x61, 0xf5, 0x28, 0x25, 0xbf, 0xa3, 0x69, 0x42, 0x61, 0xfd, 0xa8, 0xb8, 0x7e, 0xc4, 0x69, 0x22, 0x59, 0xbe, 0xaa, 0x5c, 0xfb,
+ 0xa3, 0x69, 0x62, 0x61, 0xa6, 0x0a, 0x8d, 0x3e, 0xa3, 0x69, 0x62, 0x61, 0xa8, 0xd8, 0x3e, 0x20, 0xa3, 0x69, 0x42, 0x59, 0xea, 0x6a, 0x7a, 0xb8, 0x83, 0x69, 0x22, 0x61, 0x0a, 0xdf, 0xbb, 0x8a,
+ 0xa3, 0x69, 0x22, 0x59, 0x00, 0x2d, 0xed, 0xaf, 0xc3, 0x71, 0x62, 0x61, 0xaf, 0xaf, 0x2f, 0xaf, 0xa2, 0x71, 0x42, 0x61, 0x7e, 0xff, 0xa8, 0xea, 0xa2, 0x69, 0x43, 0x61, 0x5f, 0x6f, 0x8a, 0x6a,
+ 0x83, 0x69, 0x42, 0x61, 0xe6, 0x74, 0xac, 0x1c, 0xc4, 0x69, 0x42, 0x61, 0xd7, 0xf7, 0xbd, 0x0f, 0x25, 0x72, 0x42, 0x69, 0x55, 0xbf, 0xaf, 0x0a, 0x49, 0x9b, 0x82, 0x69, 0xfd, 0xab, 0xbf, 0x2b,
+ 0x2c, 0xac, 0x24, 0x7a, 0x3d, 0xbd, 0xad, 0xab, 0xac, 0x83, 0x0b, 0x63, 0xa0, 0xe8, 0x7f, 0xfc, 0xad, 0x7b, 0x0b, 0x6b, 0xa8, 0xef, 0xfd, 0xbf, 0xad, 0x7b, 0x2b, 0x6b, 0x2b, 0xbd, 0x8f, 0xe8,
+ 0xcd, 0x7b, 0x4c, 0x73, 0xa8, 0xff, 0x3d, 0xf5, 0x0e, 0x8c, 0x6b, 0x73, 0xff, 0x7d, 0x0f, 0xff, 0x0d, 0x8c, 0x4b, 0x73, 0x77, 0xff, 0xf8, 0x7d, 0x8c, 0x7b, 0x4b, 0x6b, 0x7d, 0x7b, 0xf0, 0xa2,
+ 0x8c, 0x7b, 0x4b, 0x6b, 0xf9, 0xad, 0xbf, 0x2a, 0xed, 0x83, 0x4c, 0x73, 0x5d, 0xf5, 0xaf, 0x2f, 0xcd, 0x83, 0x6b, 0x73, 0x55, 0xaf, 0xea, 0xa0, 0xcc, 0x83, 0x4b, 0x73, 0xf7, 0xaa, 0xaa, 0xa8,
+ 0xcd, 0x83, 0x8c, 0x73, 0xf5, 0xf7, 0x7e, 0xa3, 0xac, 0x7b, 0x4b, 0x73, 0x00, 0x8a, 0xeb, 0x5c, 0xac, 0x7b, 0x2b, 0x73, 0xa2, 0xfc, 0xff, 0x5f, 0x8c, 0x73, 0x0b, 0x6b, 0xa8, 0xdf, 0xaa, 0xbf,
+ 0xed, 0x83, 0x4b, 0x73, 0xd5, 0x55, 0xab, 0xa2, 0xec, 0x83, 0x4b, 0x6b, 0x75, 0x57, 0xa2, 0xff, 0x8c, 0x7b, 0xca, 0x62, 0xaa, 0x27, 0x82, 0x00, 0xcc, 0x83, 0x2b, 0x73, 0xf5, 0xe2, 0x57, 0xf7,
+ 0x8c, 0x7b, 0xea, 0x72, 0x00, 0xfe, 0x5d, 0xec, 0x4b, 0x7b, 0x89, 0x62, 0x20, 0x00, 0x27, 0xaa, 0x6b, 0x7b, 0x2a, 0x73, 0x8d, 0x97, 0xf5, 0x5d, 0x6b, 0x7b, 0xe9, 0x62, 0x3b, 0x0a, 0xa2, 0x5f,
+ 0x68, 0x6a, 0x06, 0x62, 0xdf, 0x80, 0x0a, 0x2a, 0x67, 0x6a, 0x26, 0x62, 0x4f, 0x37, 0x02, 0x8b, 0x68, 0x6a, 0x27, 0x62, 0xb5, 0x2e, 0x80, 0xab, 0x87, 0x6a, 0x47, 0x62, 0xfd, 0xb2, 0xef, 0xf6,
+ 0x68, 0x6a, 0x26, 0x62, 0xf7, 0x3e, 0x78, 0xb2, 0x68, 0x6a, 0x26, 0x62, 0x2e, 0xf0, 0x7b, 0x5e, 0x68, 0x6a, 0x06, 0x62, 0xa0, 0xe0, 0xbe, 0x7a, 0x88, 0x6a, 0x06, 0x62, 0x5f, 0xf2, 0x5f, 0xb5,
+ 0x68, 0x6a, 0x27, 0x62, 0xa5, 0xeb, 0x7b, 0xe5, 0x67, 0x6a, 0xe6, 0x59, 0x7e, 0xa2, 0xaf, 0xba, 0x67, 0x6a, 0x06, 0x62, 0xd5, 0x82, 0xff, 0xaa, 0x68, 0x6a, 0x27, 0x62, 0xa5, 0x49, 0x57, 0xda,
+ 0x68, 0x6a, 0xe6, 0x59, 0xaa, 0xa8, 0xaa, 0xfe, 0x47, 0x6a, 0xe6, 0x59, 0xa8, 0xa0, 0xaa, 0x75, 0x47, 0x62, 0xc6, 0x51, 0x80, 0xba, 0xaa, 0xf7, 0x27, 0x62, 0xa6, 0x49, 0x00, 0x20, 0xab, 0x7f,
+ 0x47, 0x6a, 0xa5, 0x51, 0xa2, 0xba, 0xfe, 0x55, 0x27, 0x62, 0x03, 0x41, 0x00, 0x00, 0xea, 0x5f, 0x06, 0x62, 0x03, 0x41, 0x00, 0xa2, 0xba, 0xd7, 0x26, 0x62, 0x03, 0x41, 0x00, 0x2a, 0xfa, 0x55,
+ 0x46, 0x6a, 0x03, 0x39, 0xaa, 0x8a, 0x55, 0x55, 0x05, 0x62, 0xe2, 0x38, 0x00, 0xa0, 0x75, 0x5d, 0xc4, 0x59, 0xa2, 0x30, 0xa0, 0x5f, 0x55, 0xd5, 0x07, 0x5a, 0x03, 0x39, 0x7b, 0x57, 0x5d, 0xac,
+ 0xa7, 0x82, 0xc3, 0x38, 0xfb, 0xfd, 0xaf, 0x0b, 0xe8, 0x8a, 0x43, 0x51, 0x75, 0xf7, 0xaa, 0x00, 0x08, 0x8b, 0x64, 0x51, 0xf5, 0x0a, 0x9a, 0x08, 0x28, 0x8b, 0x05, 0x72, 0xab, 0xaa, 0x0a, 0x9f,
+ 0xaa, 0xa3, 0xc7, 0x82, 0xbf, 0x95, 0x2f, 0xff, 0x89, 0x9b, 0xa6, 0x82, 0x2f, 0x2a, 0xa5, 0x8b, 0x89, 0xa3, 0x28, 0x93, 0xf8, 0x1a, 0xf5, 0xe5, 0xa9, 0xa3, 0x48, 0x93, 0xbd, 0xf8, 0xd5, 0x77,
+ 0x89, 0xa3, 0xe7, 0x8a, 0xa0, 0x6a, 0xa8, 0x0b, 0xa9, 0x9b, 0xc8, 0x8a, 0xff, 0xad, 0x0a, 0x2e, 0x89, 0x9b, 0x28, 0x8b, 0xf6, 0xba, 0x7a, 0xa1, 0x69, 0x9b, 0x07, 0x93, 0xb2, 0xfc, 0xa9, 0x74,
+ 0xaa, 0xa3, 0xe6, 0x92, 0xaa, 0xab, 0xe8, 0x55, 0xa9, 0xa3, 0xc4, 0x71, 0x02, 0xba, 0x2a, 0xd7, 0x68, 0xa3, 0xa4, 0x69, 0x20, 0x28, 0xa8, 0x57, 0x88, 0xa3, 0xc4, 0x69, 0x80, 0xa0, 0xaa, 0x75,
+ 0xe7, 0x92, 0xc3, 0x69, 0x77, 0xa8, 0x0a, 0x0a, 0x07, 0x93, 0xc5, 0x71, 0xd5, 0xab, 0xaa, 0x08, 0x0b, 0xb4, 0x86, 0x82, 0xad, 0xab, 0x2d, 0x2b, 0xad, 0xc4, 0x89, 0xa3, 0x3d, 0x2f, 0x2b, 0x4a,
+ 0x63, 0x49, 0x04, 0x29, 0x5c, 0xe8, 0x5e, 0xda, 0x86, 0x39, 0xe4, 0x28, 0x0b, 0x7f, 0x75, 0xfa, 0x44, 0x31, 0xc3, 0x20, 0x00, 0xff, 0xf7, 0xa0, 0x24, 0x39, 0xe3, 0x28, 0xf2, 0x5f, 0x76, 0x5a,
+ 0x45, 0x39, 0xc4, 0x20, 0x0a, 0x5f, 0xfd, 0x7d, 0x04, 0x29, 0xc3, 0x20, 0x3c, 0xbd, 0xd5, 0x9f, 0x85, 0x49, 0xc3, 0x20, 0x8b, 0x2d, 0xf5, 0xf5, 0x25, 0x39, 0xe3, 0x28, 0xd7, 0xfc, 0xf9, 0xe0,
+ 0xa6, 0x51, 0x04, 0x31, 0xed, 0xb9, 0xbf, 0xb8, 0x85, 0x49, 0x03, 0x39, 0x2e, 0x88, 0x68, 0x5e, 0x85, 0x41, 0xc3, 0x28, 0xfc, 0xfe, 0xf7, 0xf7, 0xe6, 0x49, 0xc3, 0x28, 0x0d, 0x3f, 0xfd, 0xd5,
+ 0xa6, 0x49, 0x04, 0x29, 0xf8, 0xe8, 0xeb, 0xb5, 0x86, 0x59, 0x65, 0x31, 0xa2, 0xbd, 0xbd, 0xfd, 0xa5, 0x49, 0x04, 0x31, 0x5a, 0x7c, 0x78, 0x60, 0xa6, 0x49, 0x04, 0x31, 0x35, 0xa7, 0xed, 0xad,
+ 0x85, 0x49, 0x24, 0x39, 0x70, 0x5e, 0x7f, 0x7f, 0x25, 0x39, 0xc3, 0x20, 0x7f, 0xec, 0xde, 0xbe, 0x07, 0x52, 0xe3, 0x28, 0xfd, 0xfd, 0xfd, 0x3d, 0xa9, 0x62, 0x24, 0x39, 0x5f, 0x55, 0x7f, 0x2c,
+ 0x0b, 0x73, 0xe4, 0x28, 0xf5, 0xe5, 0xff, 0x2a, 0x2c, 0x9c, 0x86, 0x41, 0x55, 0xab, 0x8f, 0xae, 0x4d, 0x9c, 0x84, 0x41, 0x2a, 0xcb, 0x7e, 0x57, 0xea, 0x9b, 0x24, 0x31, 0x78, 0xdd, 0x5f, 0x55,
+ 0x6b, 0x83, 0x65, 0x39, 0x5f, 0xd7, 0xff, 0x0b, 0xa9, 0x62, 0x63, 0x49, 0xbf, 0xcb, 0xd6, 0x78, 0x43, 0x61, 0x02, 0x41, 0x2f, 0xf7, 0xa2, 0x08, 0x83, 0x61, 0x02, 0x51, 0xa0, 0xfd, 0xad, 0xaa,
+ 0x63, 0x61, 0xe1, 0x48, 0x66, 0x8a, 0x00, 0x00, 0x83, 0x69, 0xc2, 0x48, 0x55, 0xbf, 0x2a, 0xaa, 0x63, 0x61, 0xe2, 0x50, 0x55, 0xaa, 0x80, 0x80, 0x63, 0x61, 0xe2, 0x50, 0xfd, 0xaa, 0xb2, 0x82,
+ 0x43, 0x59, 0xe1, 0x50, 0x7b, 0xa2, 0x00, 0x28, 0x43, 0x61, 0x01, 0x51, 0x55, 0xea, 0xea, 0xf8, 0x23, 0x59, 0xc2, 0x50, 0x9e, 0xa8, 0x0b, 0x20, 0x43, 0x59, 0xe1, 0x50, 0xff, 0xbe, 0x20, 0x8a,
+ 0x23, 0x61, 0xe1, 0x50, 0xeb, 0xaa, 0xa0, 0xf8, 0x23, 0x59, 0xc1, 0x50, 0xba, 0xab, 0xea, 0x72, 0xe2, 0x58, 0x23, 0x51, 0xfa, 0xba, 0x28, 0xfe, 0x23, 0x59, 0x02, 0x51, 0x8a, 0x01, 0x40, 0x55,
+ 0x43, 0x59, 0xe1, 0x50, 0xba, 0xfb, 0x7f, 0x7b, 0x23, 0x59, 0xe1, 0x50, 0xf7, 0x8f, 0xbf, 0xbb, 0x43, 0x59, 0xe1, 0x48, 0xa3, 0xff, 0xbd, 0xbb, 0x43, 0x61, 0x02, 0x51, 0xaf, 0x7d, 0x75, 0x55,
+ 0x43, 0x61, 0x01, 0x51, 0x2e, 0xaf, 0xf5, 0x7f, 0x63, 0x69, 0x02, 0x51, 0x2a, 0xad, 0xd7, 0x55, 0x63, 0x69, 0xe1, 0x50, 0xa8, 0xfe, 0x5f, 0xfd, 0x83, 0x69, 0xe2, 0x50, 0x80, 0xff, 0x77, 0x55,
+ 0xe3, 0x71, 0x42, 0x59, 0xf3, 0xa9, 0xa9, 0xad, 0xa3, 0x71, 0x62, 0x61, 0xbb, 0xe8, 0xd8, 0xe6, 0xa3, 0x69, 0x42, 0x59, 0xe2, 0xfa, 0x7a, 0xee, 0x83, 0x61, 0x22, 0x59, 0xae, 0x7f, 0x0b, 0xa8,
+ 0xa3, 0x69, 0x02, 0x59, 0xaf, 0x8d, 0xbf, 0x0b, 0xc3, 0x71, 0x62, 0x61, 0x3f, 0xe7, 0xff, 0x7f, 0xc3, 0x69, 0x42, 0x61, 0xbe, 0xf8, 0xea, 0xdd, 0xa3, 0x69, 0x42, 0x61, 0xaf, 0xea, 0x3d, 0xee,
+ 0xc4, 0x69, 0x62, 0x61, 0xb9, 0x5d, 0xf5, 0x3d, 0x85, 0x82, 0x83, 0x61, 0xfd, 0xaf, 0x0b, 0x0a, 0x89, 0x9b, 0x25, 0x7a, 0xbd, 0xbf, 0x29, 0x2a, 0xea, 0xab, 0xc7, 0x8a, 0xbd, 0xaf, 0xab, 0x2a,
+ 0x8d, 0xb4, 0x69, 0xa3, 0xb5, 0x2f, 0x2b, 0x2f, 0xed, 0x8b, 0x4b, 0x73, 0xb7, 0xe8, 0x7f, 0xfa, 0xcd, 0x83, 0x4b, 0x73, 0xa8, 0xab, 0xb5, 0x02, 0xee, 0x8b, 0x6c, 0x73, 0x7f, 0xbf, 0xaa, 0x0a,
+ 0xcd, 0x83, 0x6c, 0x7b, 0xbf, 0xb5, 0x27, 0xac, 0xcd, 0x83, 0x8c, 0x7b, 0x76, 0x0a, 0x00, 0x0a, 0xed, 0x83, 0x6c, 0x7b, 0xd5, 0xf7, 0x82, 0xbf, 0xcd, 0x83, 0x4b, 0x73, 0xdf, 0xfe, 0xaa, 0xca,
+ 0xad, 0x83, 0x2a, 0x73, 0xd7, 0x7f, 0xa0, 0x5f, 0x8c, 0x7b, 0x0b, 0x6b, 0x2a, 0xf5, 0xbe, 0x2f, 0xac, 0x83, 0x0a, 0x6b, 0x80, 0x25, 0x0a, 0xea, 0xed, 0x83, 0x4b, 0x73, 0xaa, 0x02, 0xa2, 0xf5,
+ 0x4e, 0x9c, 0x0a, 0x6b, 0xff, 0xca, 0x57, 0xff, 0xac, 0x7b, 0x0a, 0x73, 0x2a, 0x7e, 0x55, 0x5f, 0xec, 0x83, 0xca, 0x62, 0xe8, 0xff, 0xd7, 0x57, 0x6b, 0x73, 0x0a, 0x6b, 0x7a, 0x7f, 0x80, 0xcd,
+ 0xac, 0x7b, 0xea, 0x62, 0x5f, 0x5f, 0x0b, 0xbf, 0xcd, 0x83, 0xca, 0x62, 0xf5, 0xad, 0x00, 0xaa, 0xcd, 0x83, 0x2b, 0x6b, 0x75, 0xaa, 0x80, 0xfa, 0xac, 0x7b, 0x2b, 0x73, 0xd5, 0x78, 0xc0, 0x23,
+ 0xac, 0x7b, 0x4b, 0x73, 0x57, 0x97, 0xa8, 0x7a, 0x8c, 0x7b, 0x0a, 0x73, 0x70, 0xf8, 0x68, 0xeb, 0x6b, 0x73, 0xea, 0x6a, 0x27, 0xfd, 0xab, 0xfa, 0x6c, 0x7b, 0xea, 0x62, 0x7e, 0x8a, 0x22, 0x20,
+ 0x68, 0x6a, 0x26, 0x62, 0x7a, 0x3b, 0xf5, 0xdb, 0x68, 0x6a, 0x06, 0x5a, 0xa2, 0x0a, 0xea, 0xdf, 0x67, 0x6a, 0x06, 0x62, 0x0a, 0xed, 0xbf, 0xdf, 0x88, 0x6a, 0x06, 0x62, 0xa2, 0xfb, 0xeb, 0x57,
+ 0x47, 0x6a, 0xe6, 0x59, 0x68, 0x88, 0xff, 0xab, 0x88, 0x62, 0xe6, 0x59, 0x7d, 0xaa, 0x2d, 0xdf, 0x88, 0x6a, 0xc5, 0x59, 0xab, 0xaa, 0x02, 0xfd, 0xe8, 0x7a, 0xe6, 0x59, 0xd7, 0xf5, 0x00, 0xdf,
+ 0xc9, 0x7a, 0xe5, 0x51, 0xff, 0x2b, 0x7a, 0xf7, 0x4a, 0x8b, 0xc5, 0x51, 0xff, 0x02, 0x5d, 0x5f, 0xaa, 0x93, 0xa6, 0x51, 0xbf, 0x02, 0x57, 0x55, 0x08, 0x7b, 0xc6, 0x59, 0xf8, 0x7c, 0x55, 0xfd,
+ 0x27, 0x5a, 0x85, 0x49, 0xa0, 0xba, 0xae, 0x7a, 0x27, 0x5a, 0xa6, 0x49, 0xee, 0x9e, 0x0a, 0xdd, 0x06, 0x5a, 0x65, 0x39, 0x82, 0xa8, 0x88, 0x5f, 0xe5, 0x51, 0xe3, 0x30, 0xaa, 0x78, 0x7a, 0xff,
+ 0x64, 0x51, 0xc2, 0x28, 0xf8, 0x55, 0xf5, 0xea, 0x24, 0x49, 0xc2, 0x30, 0x8f, 0x2d, 0x02, 0x00, 0x44, 0x51, 0x03, 0x49, 0xef, 0x98, 0xca, 0x8f, 0x64, 0x51, 0x03, 0x49, 0x7f, 0x6f, 0x5f, 0xaf,
+ 0x44, 0x51, 0xe3, 0x40, 0x6f, 0xe2, 0xfe, 0x23, 0xc5, 0x59, 0xe2, 0x40, 0x55, 0xff, 0x2f, 0xf7, 0x05, 0x6a, 0xc3, 0x40, 0x55, 0xbf, 0x00, 0xd5, 0xc8, 0x82, 0x23, 0x49, 0xb6, 0xbe, 0xa2, 0xd7,
+ 0x07, 0x93, 0x02, 0x49, 0x8a, 0x02, 0xe0, 0x55, 0x27, 0x93, 0xe2, 0x48, 0xaa, 0x00, 0xff, 0xd5, 0x48, 0x93, 0x42, 0x59, 0xaa, 0x02, 0x55, 0x57, 0x69, 0x9b, 0x42, 0x59, 0xaa, 0x00, 0x69, 0xd9,
+ 0x48, 0x93, 0xc5, 0x61, 0x00, 0x00, 0x2d, 0x29, 0xa9, 0xa3, 0xa7, 0x82, 0xaa, 0xa0, 0xda, 0xde, 0xa9, 0x9b, 0xe7, 0x8a, 0xa0, 0xf7, 0xd5, 0xad, 0x89, 0x9b, 0x28, 0x93, 0x2e, 0xb2, 0x7d, 0xff,
+ 0x89, 0xa3, 0xa5, 0x8a, 0x80, 0xaa, 0xfe, 0x7a, 0x88, 0xa3, 0x62, 0x59, 0xa0, 0xa8, 0x7a, 0x57, 0xe5, 0x8a, 0x43, 0x51, 0xa8, 0x5e, 0x57, 0x55, 0xc4, 0x69, 0x23, 0x49, 0x80, 0xfe, 0x7f, 0xf5,
+ 0x04, 0x7a, 0x23, 0x49, 0x82, 0x7d, 0x55, 0xf5, 0x85, 0x7a, 0x03, 0x49, 0x2f, 0x57, 0x55, 0x57, 0x45, 0x72, 0x02, 0x49, 0x28, 0x2d, 0x55, 0x55, 0x86, 0x7a, 0x22, 0x51, 0x82, 0xe0, 0xfd, 0x55,
+ 0xa6, 0x82, 0x43, 0x59, 0xa9, 0x2b, 0x3a, 0xd5, 0x89, 0xa3, 0x25, 0x72, 0xad, 0x2b, 0x2b, 0xab, 0x2b, 0xb4, 0x89, 0xa3, 0x2d, 0x8b, 0xee, 0xe5, 0xee, 0xd4, 0x63, 0x49, 0xc2, 0x4a, 0x72, 0x72,
+ 0xc6, 0x49, 0x24, 0x29, 0xaf, 0xe8, 0x8a, 0x78, 0x85, 0x41, 0xc3, 0x20, 0xba, 0xa0, 0x78, 0xd7, 0x85, 0x39, 0xc3, 0x20, 0x7c, 0xbf, 0xff, 0xff, 0x86, 0x31, 0xc3, 0x28, 0x5f, 0x5f, 0xfd, 0x0a,
+ 0xc6, 0x39, 0xc4, 0x20, 0x55, 0x75, 0xab, 0xa8, 0x45, 0x29, 0xc3, 0x20, 0xf5, 0xd5, 0xef, 0x2a, 0x45, 0x31, 0xc3, 0x20, 0xf5, 0xa2, 0xab, 0xaa, 0x25, 0x39, 0xe3, 0x28, 0xaf, 0xee, 0xad, 0xab,
+ 0x44, 0x39, 0xe3, 0x28, 0x2f, 0xef, 0x6a, 0x6b, 0x44, 0x39, 0xc3, 0x28, 0xe8, 0xab, 0xcf, 0xe9, 0x04, 0x31, 0xc3, 0x20, 0x8e, 0x04, 0xb6, 0xa7, 0x24, 0x31, 0xc3, 0x20, 0xb4, 0xae, 0xb7, 0xcf,
+ 0x24, 0x31, 0xc3, 0x20, 0x3f, 0x76, 0x5d, 0x75, 0xa6, 0x41, 0xc3, 0x18, 0x2a, 0x2b, 0x2f, 0x35, 0xc6, 0x49, 0x04, 0x31, 0x57, 0xfc, 0xf0, 0x2e, 0xc6, 0x49, 0xe3, 0x28, 0x8d, 0xbf, 0xff, 0xa8,
+ 0x48, 0x5a, 0x04, 0x31, 0x57, 0x7f, 0xeb, 0x25, 0xe6, 0x51, 0x05, 0x31, 0xf5, 0xbf, 0x80, 0xf0, 0x49, 0x52, 0x24, 0x31, 0xff, 0xfb, 0xf7, 0x3f, 0x2d, 0x94, 0x24, 0x31, 0x55, 0x55, 0xdf, 0x82,
+ 0xec, 0x8b, 0x44, 0x31, 0xff, 0xd5, 0x8b, 0xbe, 0x4a, 0x73, 0x24, 0x39, 0x7d, 0xf2, 0xbf, 0xa8, 0xed, 0x8b, 0x45, 0x31, 0x55, 0xd7, 0x8a, 0xdf, 0x8a, 0x83, 0x66, 0x39, 0xbd, 0x0a, 0xf7, 0x2e,
+ 0x2d, 0x9c, 0x07, 0x52, 0x6b, 0xdf, 0x2b, 0x02, 0xe8, 0x7a, 0x22, 0x59, 0xfe, 0xfe, 0x7c, 0x7c, 0xa3, 0x61, 0x22, 0x59, 0x9f, 0x27, 0xae, 0xa3, 0xa3, 0x69, 0x42, 0x61, 0xff, 0xbe, 0xe7, 0xfd,
+ 0x83, 0x61, 0x42, 0x59, 0xba, 0xf2, 0xfe, 0xaa, 0x83, 0x61, 0x02, 0x59, 0x6a, 0x22, 0x0a, 0xb8, 0x44, 0x61, 0x42, 0x59, 0x80, 0xd8, 0xd6, 0xbd, 0x84, 0x61, 0x02, 0x59, 0xdf, 0xea, 0xe0, 0xa2,
+ 0x83, 0x61, 0x02, 0x59, 0xed, 0xff, 0xff, 0x28, 0x63, 0x59, 0x22, 0x59, 0x59, 0xb5, 0xc8, 0xde, 0x43, 0x61, 0x02, 0x51, 0x57, 0xee, 0xfb, 0x53, 0x23, 0x59, 0xe2, 0x50, 0x3e, 0xfe, 0xa0, 0xec,
+ 0x43, 0x59, 0x02, 0x51, 0x5e, 0x5b, 0x28, 0xff, 0x63, 0x59, 0xe2, 0x50, 0x5f, 0xcf, 0x56, 0xde, 0x23, 0x59, 0xe2, 0x50, 0xaf, 0x88, 0xfa, 0xb2, 0x23, 0x59, 0xe1, 0x50, 0xfa, 0xe9, 0xeb, 0xe6,
+ 0x23, 0x59, 0xe1, 0x48, 0xbe, 0x8a, 0xc3, 0xe9, 0xe1, 0x58, 0x23, 0x51, 0xf7, 0xff, 0xdd, 0x27, 0x43, 0x61, 0xe2, 0x50, 0xdf, 0xed, 0xff, 0x02, 0x23, 0x59, 0xe1, 0x50, 0x0e, 0xab, 0xae, 0x08,
+ 0x23, 0x59, 0x01, 0x51, 0x7e, 0x9c, 0xbe, 0xa8, 0x63, 0x69, 0xe2, 0x48, 0x5f, 0xaf, 0xff, 0x2f, 0x83, 0x61, 0x02, 0x51, 0xd7, 0xf7, 0x55, 0x8b, 0xc3, 0x69, 0xe2, 0x50, 0xd7, 0x2d, 0x8b, 0x82,
+ 0xc3, 0x69, 0x83, 0x69, 0x7e, 0xf2, 0xbb, 0xed, 0xe4, 0x71, 0xa3, 0x69, 0x7d, 0x7c, 0xaa, 0xb5, 0xc4, 0x69, 0x62, 0x61, 0xd7, 0x00, 0xa0, 0xef, 0xa4, 0x69, 0x62, 0x61, 0x2a, 0x20, 0x6a, 0xdf,
+ 0xa4, 0x69, 0x62, 0x61, 0x8b, 0xa2, 0x7a, 0x7a, 0xa4, 0x69, 0x42, 0x61, 0xe0, 0xbf, 0x6b, 0xea, 0xa3, 0x69, 0x43, 0x59, 0xfe, 0xab, 0xb5, 0xff, 0x82, 0x69, 0x43, 0x61, 0xa2, 0x2c, 0xfb, 0xf7,
+ 0x45, 0x72, 0x62, 0x61, 0xbf, 0xaf, 0x75, 0x2b, 0x08, 0x93, 0xe4, 0x69, 0x2b, 0x09, 0x09, 0xab, 0xea, 0xab, 0x07, 0x93, 0x35, 0x2d, 0x0d, 0x2b, 0x0b, 0xb4, 0xaa, 0xa3, 0xb5, 0xaa, 0xca, 0xca,
+ 0x6c, 0xbc, 0x29, 0x8b, 0xea, 0xca, 0x6e, 0xca, 0xac, 0x83, 0x2b, 0x73, 0xaa, 0xe0, 0x8a, 0x7f, 0xac, 0x83, 0x0a, 0x6b, 0x0b, 0xaa, 0xbe, 0x77, 0xcc, 0x8b, 0x2b, 0x73, 0x80, 0xff, 0x75, 0x75,
+ 0x8b, 0x7b, 0x0a, 0x73, 0xa0, 0xff, 0x5f, 0x0b, 0xac, 0x7b, 0xea, 0x6a, 0xaa, 0xd5, 0x75, 0xa0, 0xac, 0x7b, 0x2a, 0x73, 0xaa, 0x5d, 0x0a, 0xaa, 0xac, 0x7b, 0x2b, 0x73, 0x7c, 0xad, 0xa8, 0xf0,
+ 0xac, 0x7b, 0x4b, 0x73, 0x55, 0x2a, 0x02, 0x57, 0xac, 0x7b, 0x0a, 0x6b, 0x2a, 0x00, 0xfa, 0x7f, 0xac, 0x7b, 0x2b, 0x6b, 0xd8, 0x02, 0xbb, 0xff, 0x8c, 0x7b, 0x4a, 0x73, 0x5e, 0xbe, 0x02, 0xd5,
+ 0x8c, 0x7b, 0x0a, 0x6b, 0x77, 0x78, 0xea, 0x20, 0x8b, 0x7b, 0xaa, 0x5a, 0xaa, 0x5f, 0x7e, 0xa8, 0x2b, 0x73, 0x49, 0x52, 0xaa, 0x7b, 0xff, 0xe0, 0x8b, 0x7b, 0x69, 0x5a, 0xbf, 0xfd, 0xb5, 0x0f,
+ 0x6c, 0x83, 0xea, 0x6a, 0xbd, 0xad, 0xfe, 0x80, 0xed, 0x8b, 0xe9, 0x72, 0xe3, 0xfe, 0xbd, 0xaf, 0xed, 0x83, 0x2b, 0x73, 0xfd, 0xe2, 0xfe, 0xbf, 0xac, 0x83, 0xeb, 0x6a, 0xbe, 0xab, 0xa2, 0x78,
+ 0xab, 0x83, 0xe9, 0x62, 0xbe, 0x70, 0xd5, 0xad, 0x8b, 0x7b, 0xc9, 0x62, 0xe8, 0x85, 0xab, 0x82, 0x8b, 0x83, 0x0a, 0x6b, 0xf7, 0xfb, 0xaa, 0xe0, 0x6b, 0x7b, 0x0a, 0x6b, 0xab, 0xff, 0xea, 0x58,
+ 0xeb, 0x7a, 0x06, 0x5a, 0x5d, 0x7f, 0x75, 0x82, 0xa9, 0x72, 0x07, 0x5a, 0xff, 0x5d, 0xef, 0x00, 0xa8, 0x6a, 0xc6, 0x59, 0xaf, 0xfe, 0x7b, 0x2e, 0x88, 0x6a, 0xe6, 0x59, 0x5f, 0xff, 0xab, 0x00,
+ 0x0a, 0x73, 0xe6, 0x59, 0x55, 0xf5, 0xab, 0x0a, 0x69, 0x8b, 0xe7, 0x59, 0x55, 0xfd, 0xaa, 0xe2, 0x88, 0x6a, 0x65, 0x49, 0xbe, 0xea, 0x78, 0x7a, 0x67, 0x5a, 0x66, 0x41, 0x8a, 0xfb, 0xfd, 0x8b,
+ 0x27, 0x62, 0xc6, 0x51, 0x7c, 0x55, 0x55, 0x55, 0xe7, 0x59, 0xa5, 0x49, 0x28, 0x0d, 0x8f, 0x77, 0x07, 0x5a, 0x85, 0x49, 0xee, 0xf8, 0x5e, 0x7f, 0xc6, 0x51, 0x85, 0x49, 0xaa, 0x96, 0xf7, 0xf6,
+ 0xc6, 0x51, 0x85, 0x41, 0xaa, 0xfa, 0x7e, 0xbb, 0xc6, 0x49, 0x65, 0x39, 0x8a, 0xfb, 0xf2, 0x7a, 0xa6, 0x39, 0x04, 0x29, 0xe8, 0xfe, 0xf7, 0xf7, 0xc6, 0x49, 0x04, 0x31, 0xff, 0x2b, 0x6b, 0x2f,
+ 0xc6, 0x51, 0x24, 0x41, 0x7f, 0x28, 0x0b, 0x94, 0xa5, 0x51, 0x43, 0x49, 0x79, 0xa0, 0xd6, 0xbf, 0x85, 0x59, 0x43, 0x49, 0xff, 0xea, 0xca, 0xfe, 0x84, 0x51, 0x23, 0x49, 0x8b, 0xff, 0x7e, 0xee,
+ 0x23, 0x49, 0xc2, 0x40, 0xfa, 0x6f, 0x5f, 0x70, 0x03, 0x41, 0xa2, 0x30, 0xaa, 0xb6, 0xf7, 0xa7, 0x8b, 0x6a, 0xc2, 0x38, 0xd5, 0xd5, 0xd5, 0x35, 0xae, 0x83, 0x24, 0x51, 0xd7, 0x97, 0xbf, 0x22,
+ 0x06, 0x6a, 0xe2, 0x48, 0xd6, 0xac, 0xb6, 0xb4, 0x45, 0x72, 0x43, 0x59, 0xfd, 0x02, 0xaa, 0xee, 0x86, 0x82, 0x84, 0x59, 0xf5, 0x0a, 0xaa, 0xad, 0xc7, 0x8a, 0x05, 0x6a, 0x09, 0x2f, 0x26, 0xae,
+ 0xeb, 0xab, 0x85, 0x7a, 0xfd, 0xbd, 0xfd, 0xf3, 0x69, 0x9b, 0xa6, 0x82, 0xbf, 0xb7, 0x8e, 0x2a, 0xca, 0xa3, 0xc3, 0x69, 0xaa, 0xaa, 0x0a, 0x72, 0x89, 0xa3, 0x64, 0x59, 0xa0, 0x80, 0x78, 0x55,
+ 0x46, 0x93, 0x43, 0x49, 0xe0, 0x7e, 0x55, 0x55, 0x84, 0x59, 0x43, 0x49, 0xea, 0xfc, 0xd7, 0xff, 0x64, 0x51, 0x23, 0x49, 0xeb, 0x5e, 0x6b, 0x5a, 0x64, 0x59, 0x03, 0x51, 0xf7, 0xae, 0x2f, 0x22,
+ 0x84, 0x59, 0x23, 0x51, 0xaf, 0x8d, 0xac, 0x8e, 0x84, 0x59, 0x03, 0x51, 0x7e, 0x60, 0xea, 0x00, 0x64, 0x59, 0x22, 0x51, 0xdd, 0xbd, 0xd5, 0x3a, 0x43, 0x51, 0x02, 0x51, 0x8a, 0x0b, 0xab, 0x78,
+ 0x85, 0x7a, 0xc2, 0x40, 0x3f, 0xff, 0xdf, 0x5d, 0x88, 0x9b, 0xc1, 0x40, 0x00, 0xff, 0x55, 0x55, 0xcd, 0xcc, 0xa1, 0x40, 0xaa, 0x22, 0x35, 0xd5, 0xcd, 0xd4, 0x85, 0x41, 0x58, 0x56, 0x57, 0x55,
+ 0xe7, 0x49, 0x05, 0x31, 0x7a, 0xaa, 0x0b, 0xa8, 0xa6, 0x41, 0xc4, 0x28, 0xf7, 0xa8, 0x00, 0x00, 0xc6, 0x49, 0x65, 0x31, 0xdf, 0x36, 0xb6, 0x0f, 0xc6, 0x49, 0x44, 0x31, 0xdb, 0x61, 0x63, 0x5f,
+ 0xc6, 0x41, 0x45, 0x31, 0x77, 0xdd, 0x5f, 0x02, 0xa6, 0x41, 0xe4, 0x20, 0xbf, 0xb7, 0x8b, 0xaa, 0xc6, 0x41, 0x04, 0x31, 0xa5, 0xc3, 0x5f, 0x75, 0x44, 0x31, 0xc3, 0x28, 0xa8, 0xfe, 0x7b, 0xfe,
+ 0x24, 0x31, 0xc3, 0x28, 0xb0, 0xb2, 0x93, 0xef, 0x45, 0x31, 0xc3, 0x28, 0x63, 0xb2, 0xff, 0xfa, 0xc7, 0x41, 0xc3, 0x20, 0x55, 0xd7, 0xb5, 0x2d, 0x07, 0x4a, 0xc4, 0x28, 0x55, 0xff, 0x7a, 0x00,
+ 0xe8, 0x49, 0xe4, 0x28, 0x55, 0x57, 0x57, 0xf8, 0x86, 0x41, 0xe4, 0x20, 0xf5, 0xf5, 0x8b, 0x2b, 0xe8, 0x51, 0x24, 0x29, 0x3f, 0xfd, 0xff, 0xa2, 0x0a, 0x73, 0x45, 0x31, 0x8b, 0xd5, 0xb5, 0x7f,
+ 0x6c, 0x7b, 0x65, 0x39, 0x7f, 0x2f, 0x5f, 0x2d, 0x8b, 0x83, 0x66, 0x39, 0xaf, 0x08, 0xad, 0x0f, 0x0d, 0x94, 0xa6, 0x49, 0x82, 0xb7, 0x8a, 0xd7, 0x2c, 0x94, 0x86, 0x41, 0xb5, 0xe2, 0xf7, 0x0a,
+ 0xed, 0x8b, 0x64, 0x39, 0xa8, 0xfd, 0xa3, 0x2a, 0x8e, 0xa4, 0x47, 0x5a, 0x7d, 0x09, 0xff, 0xb7, 0x8e, 0x9c, 0x27, 0x4a, 0x0a, 0xf8, 0xff, 0x7a, 0x6d, 0x9c, 0xc7, 0x41, 0xe0, 0x57, 0xeb, 0xff,
+ 0x6b, 0x7b, 0x88, 0x52, 0xa1, 0x2d, 0x89, 0xab, 0x6b, 0x7b, 0x22, 0x51, 0x56, 0x54, 0x5e, 0x7a, 0x83, 0x61, 0x02, 0x59, 0x82, 0xaa, 0xe2, 0xda, 0x63, 0x61, 0x02, 0x59, 0xac, 0x3d, 0xad, 0xbb,
+ 0xa3, 0x61, 0x42, 0x59, 0x2a, 0x5b, 0x73, 0xff, 0x84, 0x69, 0x42, 0x59, 0xf8, 0x3f, 0xae, 0xaa, 0xc4, 0x69, 0x43, 0x61, 0x7d, 0x57, 0xae, 0x2a, 0xc3, 0x69, 0x42, 0x61, 0xf5, 0xff, 0xfa, 0xe0,
+ 0x83, 0x69, 0x42, 0x59, 0x7a, 0xef, 0xbe, 0xc2, 0x84, 0x61, 0x42, 0x59, 0xef, 0x5e, 0x6e, 0xe8, 0x83, 0x61, 0x22, 0x51, 0x78, 0x7e, 0x32, 0x90, 0x23, 0x59, 0x02, 0x51, 0x16, 0x1c, 0xa5, 0x0f,
+ 0x43, 0x61, 0x02, 0x51, 0xbf, 0x2e, 0xe6, 0xd7, 0x63, 0x59, 0xe2, 0x50, 0xe8, 0x7f, 0xff, 0xa5, 0x23, 0x59, 0xe2, 0x50, 0xf2, 0x69, 0xff, 0x7f, 0x43, 0x59, 0xe2, 0x48, 0xee, 0xbf, 0xad, 0xbb,
+ 0xa3, 0x59, 0x02, 0x51, 0x5d, 0xd5, 0xd5, 0x8b, 0xa3, 0x61, 0x02, 0x51, 0xf5, 0x55, 0xfb, 0x08, 0xa3, 0x61, 0x02, 0x51, 0x55, 0xef, 0xab, 0x08, 0xc4, 0x69, 0x02, 0x59, 0x75, 0x3f, 0xaa, 0x0a,
+ 0xc3, 0x69, 0x42, 0x51, 0xad, 0xaa, 0xa2, 0x28, 0xc4, 0x69, 0x83, 0x61, 0x9d, 0xa2, 0x7e, 0xbb, 0xc4, 0x69, 0x62, 0x61, 0xe0, 0xa0, 0xbd, 0xfa, 0xa4, 0x69, 0x82, 0x61, 0xcc, 0xde, 0xa2, 0x22,
+ 0xa4, 0x69, 0x83, 0x61, 0x37, 0xab, 0xb8, 0xc3, 0xa4, 0x69, 0x62, 0x61, 0x9a, 0x0b, 0x2b, 0x86, 0xc3, 0x69, 0x63, 0x61, 0xff, 0xcb, 0x7f, 0xae, 0xa3, 0x69, 0x63, 0x61, 0xaf, 0xe2, 0xfd, 0x8e,
+ 0xa4, 0x69, 0x42, 0x61, 0xbf, 0xda, 0xf6, 0xa8, 0x83, 0x69, 0x43, 0x59, 0xaa, 0x6a, 0xaa, 0x2a, 0x83, 0x61, 0x42, 0x59, 0x7b, 0xed, 0xb2, 0x6f, 0xe4, 0x69, 0x42, 0x59, 0xf7, 0x3f, 0xff, 0x5f,
+ 0x65, 0x7a, 0x43, 0x61, 0x2f, 0x0b, 0x2b, 0xf5, 0x69, 0x9b, 0x65, 0x7a, 0x29, 0x0b, 0x2a, 0x0a, 0x0b, 0xb4, 0x89, 0xa3, 0xf5, 0x35, 0x2d, 0x09, 0x2c, 0xb4, 0x89, 0xa3, 0xa2, 0xaa, 0xaa, 0x92,
+ 0x6c, 0xbc, 0x0a, 0x73, 0x40, 0x6a, 0xea, 0xfa, 0xcc, 0x83, 0x0a, 0x6b, 0xfd, 0x8b, 0xaf, 0x28, 0xec, 0x83, 0xca, 0x62, 0xfa, 0xaa, 0x8a, 0x72, 0xcd, 0x83, 0x2b, 0x6b, 0xaa, 0xfa, 0xfd, 0x37,
+ 0x0d, 0x8c, 0x4b, 0x73, 0xbf, 0x57, 0x8a, 0xae, 0xcc, 0x83, 0x0b, 0x63, 0xa8, 0xea, 0xaa, 0x68, 0x8c, 0x7b, 0x0a, 0x63, 0xa0, 0x7e, 0xaa, 0x29, 0xac, 0x7b, 0x2b, 0x73, 0xfb, 0xfd, 0xef, 0x3e,
+ 0xad, 0x7b, 0x4b, 0x6b, 0xff, 0xff, 0x5f, 0xe8, 0x6c, 0x7b, 0x0a, 0x63, 0x5f, 0xe0, 0xaa, 0xfe, 0x0e, 0x84, 0x0a, 0x6b, 0xf5, 0x0b, 0xff, 0x55, 0xcd, 0x83, 0xea, 0x6a, 0xaa, 0xf8, 0xde, 0xdf,
+ 0xac, 0x7b, 0xa9, 0x62, 0xb0, 0xba, 0x7e, 0x7f, 0x6b, 0x7b, 0x8a, 0x62, 0x00, 0xaa, 0xab, 0x89, 0x6b, 0x7b, 0xa9, 0x5a, 0x80, 0xab, 0xfd, 0x2e, 0x8c, 0x83, 0x0a, 0x73, 0x0f, 0xa5, 0x2b, 0xab,
+ 0x8b, 0x8b, 0x4a, 0x7b, 0xba, 0x2a, 0xeb, 0xe5, 0xac, 0x8b, 0xea, 0x72, 0x8a, 0xdf, 0xaa, 0x0a, 0xcc, 0x8b, 0xea, 0x6a, 0xfe, 0xaa, 0xea, 0x7c, 0x6b, 0x7b, 0xaa, 0x62, 0xde, 0xa8, 0x72, 0xea,
+ 0x8c, 0x83, 0x48, 0x52, 0xab, 0x7a, 0x2f, 0x0a, 0xac, 0x83, 0x0a, 0x73, 0xa9, 0xfd, 0xfa, 0x82, 0x8c, 0x83, 0x2a, 0x7b, 0x97, 0xab, 0x8e, 0xa8, 0x8b, 0x83, 0x4a, 0x7b, 0x5f, 0x2f, 0x76, 0xdb,
+ 0xaa, 0xa3, 0xc7, 0x49, 0xa0, 0xfd, 0xff, 0x55, 0xc8, 0x72, 0xe6, 0x51, 0x7c, 0xaa, 0x2a, 0xed, 0xe9, 0x72, 0x27, 0x62, 0xab, 0xaf, 0xaa, 0x8d, 0x6a, 0x8b, 0x88, 0x6a, 0x5f, 0x77, 0xb7, 0x2f,
+ 0xaa, 0x93, 0xa4, 0x51, 0xaa, 0x82, 0xc0, 0x57, 0x8a, 0x93, 0x64, 0x39, 0xf8, 0xff, 0x7a, 0x55, 0xc6, 0x49, 0x24, 0x31, 0xa8, 0x0f, 0x89, 0x0b, 0xe7, 0x51, 0x85, 0x41, 0x0a, 0xad, 0x1d, 0xf7,
+ 0x06, 0x52, 0xa5, 0x49, 0xfa, 0xaa, 0x8a, 0x7b, 0xe7, 0x51, 0x85, 0x49, 0xa2, 0x22, 0x82, 0x3d, 0xe6, 0x51, 0x85, 0x49, 0x2a, 0x6e, 0xfa, 0x02, 0x47, 0x52, 0x65, 0x41, 0xff, 0xbd, 0xbd, 0x8b,
+ 0xe6, 0x51, 0x85, 0x41, 0xeb, 0xe2, 0xfa, 0x9e, 0xc6, 0x41, 0x04, 0x31, 0x78, 0xfa, 0x2e, 0x80, 0xc6, 0x49, 0x05, 0x31, 0xfd, 0xab, 0xa8, 0x02, 0xc6, 0x51, 0x45, 0x41, 0xf7, 0x2a, 0xab, 0x2b,
+ 0x06, 0x52, 0x45, 0x39, 0xfb, 0x5e, 0x2a, 0x5a, 0x06, 0x62, 0x04, 0x31, 0xaa, 0x8a, 0xae, 0x57, 0xe7, 0x59, 0x44, 0x49, 0x5f, 0xfa, 0x7c, 0xe2, 0x85, 0x51, 0x23, 0x49, 0xfe, 0xab, 0x4a, 0xa8,
+ 0x64, 0x51, 0x03, 0x41, 0xee, 0xa4, 0x37, 0xdf, 0x64, 0x51, 0xc2, 0x40, 0x5f, 0xfa, 0xa0, 0xa0, 0x03, 0x49, 0xc8, 0x20, 0x6a, 0x7e, 0xda, 0x78, 0xce, 0x8b, 0xa5, 0x18, 0x20, 0x5e, 0x55, 0x55,
+ 0x43, 0x51, 0xe4, 0x30, 0x2c, 0x2b, 0xbd, 0xa9, 0x05, 0x6a, 0x23, 0x51, 0x8b, 0xdf, 0xb5, 0xbd, 0x66, 0x7a, 0xc5, 0x69, 0xad, 0xed, 0xe9, 0x3f, 0xcb, 0xa3, 0x46, 0x72, 0xf5, 0xad, 0xa9, 0x22,
+ 0xca, 0xab, 0x61, 0x59, 0xa0, 0x20, 0x00, 0x60, 0xe9, 0xab, 0xe2, 0x40, 0x22, 0xc0, 0x78, 0x55, 0x06, 0x9b, 0x03, 0x41, 0xfc, 0x7f, 0x57, 0x55, 0x84, 0x51, 0xe2, 0x30, 0x88, 0xaa, 0xaa, 0x57,
+ 0x64, 0x51, 0xc2, 0x30, 0x00, 0xaa, 0xfe, 0x55, 0x44, 0x49, 0xa2, 0x30, 0x00, 0xa0, 0xae, 0x7f, 0x44, 0x49, 0xa2, 0x30, 0x00, 0x0a, 0x8a, 0x55, 0x63, 0x51, 0x82, 0x38, 0x00, 0xa0, 0xfe, 0xf5,
+ 0x83, 0x59, 0x61, 0x30, 0x02, 0xaa, 0x7f, 0xab, 0x83, 0x59, 0x81, 0x38, 0xa0, 0x7f, 0xd5, 0xaa, 0x63, 0x59, 0x82, 0x30, 0x00, 0x75, 0xff, 0xaa, 0x22, 0x59, 0xa2, 0x28, 0xe8, 0xd5, 0xae, 0x00,
+ 0x42, 0x61, 0x82, 0x38, 0x5f, 0xff, 0xaa, 0x00, 0x43, 0x61, 0xa1, 0x30, 0x75, 0x0a, 0x00, 0x00, 0x05, 0x7a, 0xe1, 0x48, 0xf5, 0x2f, 0x2f, 0x2b, 0xc7, 0x92, 0x84, 0x59, 0x55, 0xaf, 0x0a, 0x02,
+ 0x69, 0xa3, 0x85, 0x39, 0x55, 0x7f, 0x7e, 0x62, 0xe6, 0x49, 0x24, 0x29, 0xff, 0x7a, 0x72, 0x83, 0xa5, 0x41, 0x04, 0x31, 0xe2, 0x5f, 0xde, 0xfa, 0xc6, 0x49, 0xe3, 0x28, 0xea, 0x7f, 0x7f, 0x37,
+ 0xe6, 0x41, 0x04, 0x29, 0x7d, 0x55, 0xf5, 0xdc, 0x85, 0x39, 0x04, 0x31, 0xed, 0x7b, 0x7b, 0x78, 0x66, 0x41, 0x04, 0x29, 0xdb, 0xfa, 0x63, 0xfb, 0x45, 0x39, 0xe3, 0x28, 0xf7, 0xfd, 0xdd, 0x3b,
+ 0x87, 0x41, 0xc3, 0x20, 0x5f, 0xd5, 0xff, 0xa8, 0x6c, 0x7b, 0xc4, 0x20, 0x55, 0xd5, 0xb5, 0x02, 0x4e, 0x9c, 0x25, 0x29, 0xbd, 0xff, 0xaa, 0x02, 0x0e, 0x94, 0x27, 0x52, 0x56, 0xfc, 0xdc, 0xfe,
+ 0x8f, 0xa4, 0xc7, 0x49, 0xf7, 0xaa, 0x5f, 0x02, 0x0c, 0x94, 0xaa, 0x62, 0xef, 0x17, 0x23, 0xa8, 0xae, 0xac, 0x86, 0x41, 0xd5, 0x02, 0xd6, 0x82, 0x6d, 0xa4, 0x28, 0x52, 0x6b, 0xa0, 0xa2, 0xa8,
+ 0xae, 0xa4, 0xe7, 0x49, 0xfd, 0x0b, 0x78, 0x5f, 0xeb, 0x93, 0x07, 0x4a, 0x2b, 0xf8, 0x55, 0x55, 0xec, 0x93, 0x07, 0x4a, 0xa8, 0xfd, 0xf5, 0xf5, 0xcb, 0x8b, 0x09, 0x6b, 0xd5, 0xb5, 0x8d, 0xa2,
+ 0xcc, 0x83, 0x4a, 0x73, 0xfb, 0xa6, 0x02, 0xea, 0x0c, 0x8c, 0x2a, 0x6b, 0xab, 0xea, 0x4e, 0x7f, 0xed, 0x83, 0xea, 0x62, 0x7e, 0xbb, 0xab, 0x2b, 0xed, 0x83, 0x29, 0x52, 0xfd, 0xa0, 0xa8, 0x00,
+ 0xec, 0x83, 0xea, 0x6a, 0xfd, 0xef, 0xa6, 0x28, 0xcc, 0x83, 0x43, 0x59, 0x7a, 0x7a, 0x70, 0x70, 0x62, 0x61, 0x23, 0x59, 0xef, 0xf8, 0x7f, 0xbb, 0x83, 0x69, 0x22, 0x59, 0xe5, 0x37, 0x37, 0xff,
+ 0xa4, 0x69, 0x43, 0x59, 0xbe, 0x2a, 0x2b, 0xdf, 0xc3, 0x69, 0x62, 0x59, 0xea, 0x28, 0xab, 0x75, 0xc4, 0x69, 0x63, 0x61, 0xbb, 0xa2, 0x3e, 0xf7, 0xe4, 0x69, 0x63, 0x61, 0xf6, 0xfe, 0xf8, 0x55,
+ 0xc3, 0x69, 0x22, 0x61, 0xe2, 0x8b, 0xfa, 0xf7, 0x83, 0x61, 0x22, 0x51, 0x70, 0xb8, 0xa2, 0xe8, 0x83, 0x61, 0x22, 0x59, 0xfb, 0x70, 0x5a, 0x7f, 0x43, 0x59, 0x02, 0x51, 0x7a, 0xbf, 0xfd, 0x96,
+ 0x42, 0x59, 0x03, 0x51, 0xfb, 0x5e, 0x7a, 0x5a, 0x63, 0x59, 0x02, 0x51, 0x5f, 0x5f, 0x55, 0x41, 0x63, 0x59, 0xe2, 0x50, 0xdf, 0xd7, 0xf5, 0x3f, 0xc3, 0x61, 0x22, 0x59, 0x55, 0xff, 0xa7, 0x0a,
+ 0xc4, 0x69, 0x42, 0x59, 0x29, 0x8a, 0xaf, 0x0a, 0xc4, 0x69, 0xa2, 0x61, 0x0a, 0x53, 0x6e, 0x02, 0xc4, 0x69, 0x83, 0x61, 0x8b, 0x96, 0x6f, 0x08, 0xc3, 0x71, 0x63, 0x61, 0xba, 0xfb, 0xa0, 0xbd,
+ 0xc4, 0x69, 0x82, 0x61, 0xa7, 0x4a, 0x6e, 0xba, 0xe3, 0x69, 0x42, 0x61, 0xaf, 0xad, 0x3b, 0xaf, 0xc3, 0x69, 0x82, 0x61, 0xf8, 0xaa, 0x82, 0xe7, 0xc4, 0x69, 0x83, 0x61, 0x8b, 0x3b, 0x76, 0xa3,
+ 0xc4, 0x69, 0x82, 0x61, 0xc2, 0xf4, 0xf9, 0xfe, 0xc4, 0x69, 0x83, 0x61, 0xfb, 0x3e, 0xfd, 0xb7, 0xa3, 0x69, 0x42, 0x61, 0xae, 0x70, 0xf0, 0x6c, 0xc4, 0x69, 0x43, 0x59, 0xaf, 0x8f, 0xbf, 0xfb,
+ 0xa3, 0x69, 0x42, 0x61, 0x9e, 0x82, 0xb8, 0x6f, 0x83, 0x69, 0x42, 0x61, 0x3f, 0xba, 0x98, 0xb0, 0xa4, 0x61, 0x22, 0x61, 0xa8, 0xff, 0xff, 0xde, 0xa4, 0x69, 0x43, 0x59, 0xb7, 0x5f, 0xaf, 0x2f,
+ 0x07, 0x8b, 0x42, 0x59, 0xbf, 0x35, 0x2d, 0x2f, 0xca, 0xab, 0xc6, 0x8a, 0xad, 0x6b, 0xab, 0x0a, 0x2b, 0xb4, 0x69, 0xa3, 0xab, 0xeb, 0xfa, 0x92, 0x4c, 0xb4, 0x48, 0x9b, 0xba, 0xde, 0xaf, 0x2b,
+ 0x2c, 0xb4, 0x4b, 0x6b, 0xe0, 0xb8, 0x78, 0x78, 0xec, 0x83, 0x2b, 0x6b, 0x8a, 0x78, 0xd7, 0xfd, 0xcc, 0x7b, 0x2b, 0x6b, 0xef, 0xe2, 0x5e, 0xba, 0xec, 0x83, 0x0b, 0x6b, 0x0a, 0xff, 0x2f, 0xb7,
+ 0xac, 0x7b, 0x0b, 0x6b, 0x08, 0xe2, 0x5e, 0xfe, 0x8c, 0x7b, 0x0a, 0x63, 0x58, 0xdf, 0xff, 0xfa, 0x4c, 0x6b, 0xca, 0x62, 0xff, 0xa2, 0x37, 0xea, 0xad, 0x7b, 0xe9, 0x5a, 0x0b, 0xab, 0xab, 0xb7,
+ 0xac, 0x7b, 0x2b, 0x6b, 0x5e, 0x2f, 0xbf, 0x82, 0xac, 0x7b, 0x2b, 0x6b, 0x5d, 0x5e, 0xdc, 0xaa, 0xcd, 0x83, 0x0a, 0x6b, 0x5f, 0xfd, 0xff, 0x02, 0xac, 0x83, 0x0a, 0x6b, 0xb2, 0x8b, 0xa7, 0xa0,
+ 0x8b, 0x83, 0x2a, 0x73, 0x6b, 0x22, 0x0b, 0xb6, 0xab, 0x8b, 0x2a, 0x73, 0xfd, 0xa0, 0x00, 0xce, 0x8b, 0x83, 0x0a, 0x6b, 0xd7, 0xe8, 0x88, 0xba, 0xcc, 0x8b, 0xea, 0x72, 0xbe, 0xaf, 0x0a, 0xd7,
+ 0xed, 0x93, 0x68, 0x62, 0xaa, 0x80, 0xd6, 0xaf, 0x8b, 0x83, 0xa9, 0x62, 0xe0, 0x56, 0x2b, 0xa8, 0xcc, 0x83, 0xa9, 0x6a, 0x7f, 0x0b, 0xa8, 0xfa, 0xcc, 0x8b, 0x28, 0x52, 0xf5, 0x00, 0xaa, 0xa2,
+ 0xec, 0x8b, 0x0a, 0x73, 0xff, 0xfa, 0x2a, 0xf5, 0xac, 0x83, 0x4b, 0x73, 0xb5, 0x22, 0x88, 0x3d, 0xcc, 0x83, 0x6b, 0x7b, 0xb5, 0xaa, 0xf0, 0x2b, 0xcd, 0x8b, 0x8b, 0x83, 0xdb, 0x23, 0xee, 0x9a,
+ 0xe6, 0x49, 0x85, 0x41, 0x3f, 0xef, 0xe7, 0xdf, 0xe7, 0x51, 0xa5, 0x41, 0x3f, 0x2f, 0xb7, 0xf9, 0x46, 0x6a, 0x44, 0x31, 0x28, 0xea, 0xea, 0x77, 0x46, 0x6a, 0x04, 0x21, 0xa8, 0xaa, 0xff, 0x55,
+ 0xa5, 0x41, 0x04, 0x29, 0x2b, 0x2a, 0xd5, 0x55, 0x27, 0x5a, 0x45, 0x31, 0xdd, 0xd5, 0xfd, 0x8d, 0xe7, 0x51, 0x65, 0x39, 0xbd, 0x35, 0xbf, 0x2a, 0x48, 0x5a, 0x86, 0x41, 0xdd, 0xd7, 0xd7, 0xfc,
+ 0x28, 0x52, 0x86, 0x49, 0x7f, 0xfd, 0x2f, 0x0b, 0x68, 0x5a, 0x86, 0x49, 0xfd, 0xbb, 0x0a, 0xea, 0x48, 0x5a, 0x65, 0x39, 0xae, 0xaa, 0xf0, 0x5e, 0x07, 0x52, 0x65, 0x49, 0xa0, 0xfa, 0xff, 0x55,
+ 0xe6, 0x51, 0x04, 0x31, 0x82, 0xaa, 0xff, 0x5f, 0xe7, 0x49, 0x04, 0x31, 0x82, 0xda, 0xeb, 0x2b, 0xe6, 0x49, 0x24, 0x31, 0xfa, 0x75, 0xfd, 0x08, 0x07, 0x4a, 0x45, 0x39, 0xef, 0xf5, 0xd7, 0x80,
+ 0x27, 0x4a, 0x24, 0x31, 0xdf, 0xea, 0xaa, 0x80, 0xe7, 0x49, 0x45, 0x31, 0x55, 0x52, 0x2e, 0x20, 0xe6, 0x51, 0x25, 0x31, 0x09, 0xff, 0xa2, 0xfa, 0xc5, 0x59, 0x24, 0x39, 0xea, 0x83, 0x0f, 0x7b,
+ 0x84, 0x49, 0x23, 0x41, 0x7f, 0x58, 0x58, 0x7f, 0x44, 0x49, 0xe2, 0x40, 0x00, 0xa3, 0x7b, 0x77, 0x44, 0x49, 0xa7, 0x28, 0x58, 0xd0, 0x5b, 0x5f, 0x28, 0x62, 0x87, 0x20, 0x0b, 0xfe, 0x75, 0x7d,
+ 0x26, 0x6a, 0x84, 0x20, 0xba, 0xb2, 0xb9, 0x55, 0x8a, 0x9b, 0x81, 0x30, 0xbf, 0x0b, 0x5f, 0x55, 0xea, 0xa3, 0xa1, 0x40, 0x0a, 0xa0, 0x55, 0x55, 0xe8, 0xb3, 0x81, 0x28, 0x28, 0xe8, 0x55, 0x7f,
+ 0xa4, 0x8a, 0x62, 0x20, 0xfc, 0x55, 0x55, 0x55, 0x03, 0x39, 0x82, 0x20, 0xa0, 0x57, 0xf5, 0xf5, 0xe3, 0x38, 0x82, 0x20, 0xfa, 0x5d, 0xbf, 0x2a, 0x03, 0x49, 0x62, 0x18, 0xd5, 0xbf, 0x2b, 0x02,
+ 0x23, 0x51, 0xa2, 0x30, 0x5d, 0xff, 0xbe, 0x2b, 0x23, 0x59, 0xa1, 0x38, 0xd5, 0xef, 0x8a, 0x82, 0x23, 0x59, 0xa1, 0x40, 0xfd, 0xaf, 0xaa, 0x82, 0x63, 0x59, 0xc1, 0x48, 0xfd, 0xbf, 0xaf, 0x03,
+ 0x43, 0x59, 0x02, 0x51, 0x9f, 0x1b, 0x00, 0xbe, 0x43, 0x59, 0x02, 0x51, 0xbc, 0x8c, 0x00, 0xca, 0x63, 0x61, 0x23, 0x51, 0xfb, 0xbe, 0xe9, 0xfd, 0x63, 0x61, 0x22, 0x59, 0x77, 0xbd, 0x0b, 0xad,
+ 0x83, 0x61, 0x22, 0x59, 0xff, 0xb7, 0x8b, 0xbf, 0x25, 0x72, 0x43, 0x59, 0xbd, 0xa5, 0xab, 0xa2, 0x68, 0x9b, 0xa4, 0x61, 0xbd, 0xaf, 0x2f, 0x0b, 0xea, 0xb3, 0x48, 0x9b, 0x75, 0xd7, 0x3f, 0xaa,
+ 0xed, 0xd4, 0xa7, 0x82, 0x7b, 0xab, 0x2a, 0x2a, 0x06, 0x5a, 0x24, 0x31, 0xfb, 0xe0, 0xbc, 0xdc, 0x68, 0x5a, 0x24, 0x31, 0x75, 0x6d, 0xbe, 0x81, 0xe9, 0x6a, 0x25, 0x31, 0xb5, 0xfb, 0xfb, 0xe0,
+ 0x87, 0x62, 0xc6, 0x41, 0xd5, 0xef, 0x8b, 0xdf, 0xe9, 0x6a, 0x65, 0x39, 0x5f, 0x8a, 0xff, 0x7a, 0x4f, 0x8c, 0x25, 0x31, 0x55, 0xaf, 0x7d, 0x2f, 0x10, 0xad, 0x26, 0x39, 0xd5, 0x8a, 0x2d, 0xe0,
+ 0xce, 0xb4, 0xc8, 0x49, 0xbd, 0x8a, 0xde, 0xaf, 0x4d, 0x9c, 0xc6, 0x49, 0x02, 0xd7, 0xab, 0x00, 0x8e, 0xac, 0x47, 0x5a, 0xd7, 0xab, 0x0a, 0xfa, 0xae, 0xb4, 0x0a, 0x6b, 0xaf, 0x82, 0xa0, 0xfd,
+ 0x4d, 0xa4, 0xc9, 0x6a, 0x80, 0x80, 0x77, 0xdf, 0x6d, 0xac, 0xa9, 0x62, 0x80, 0xbf, 0xff, 0xf7, 0xcc, 0x8b, 0xa9, 0x6a, 0x1c, 0xaa, 0x2a, 0xaa, 0xcc, 0x8b, 0x0a, 0x73, 0xe0, 0x80, 0xab, 0xdd,
+ 0xec, 0x8b, 0xea, 0x6a, 0x7a, 0xae, 0x2b, 0x9f, 0xac, 0x83, 0x29, 0x4a, 0x55, 0xa8, 0x00, 0x00, 0xac, 0x83, 0x49, 0x52, 0x95, 0x2e, 0x08, 0xc2, 0x4e, 0x94, 0xe9, 0x6a, 0xaa, 0x2a, 0xaf, 0x5f,
+ 0x4e, 0x94, 0x0a, 0x6b, 0xff, 0x7e, 0x2e, 0xd5, 0x0d, 0x8c, 0x27, 0x4a, 0xee, 0x0a, 0x56, 0x5a, 0x0d, 0x8c, 0x48, 0x4a, 0x00, 0x80, 0x8b, 0xb5, 0xec, 0x8b, 0x4b, 0x73, 0x22, 0xbb, 0xfe, 0x35,
+ 0xcc, 0x83, 0xa9, 0x5a, 0xa0, 0xa0, 0x5a, 0xd6, 0xed, 0x83, 0x83, 0x51, 0x6a, 0x42, 0x6a, 0x6a, 0x84, 0x61, 0x22, 0x59, 0xbf, 0xb8, 0xb5, 0xd6, 0xa3, 0x61, 0x42, 0x59, 0xeb, 0xe2, 0xba, 0xad,
+ 0x83, 0x69, 0x22, 0x59, 0xeb, 0xae, 0xe8, 0x0a, 0xa3, 0x61, 0x42, 0x59, 0xad, 0xbf, 0xfd, 0x2a, 0x84, 0x69, 0x42, 0x59, 0xab, 0xea, 0xef, 0xbb, 0x83, 0x69, 0x62, 0x59, 0xbb, 0xaa, 0xbe, 0xbe,
+ 0xa3, 0x61, 0x22, 0x61, 0xaa, 0x6f, 0x80, 0x28, 0x84, 0x61, 0x43, 0x59, 0xe8, 0x7f, 0x2a, 0xee, 0x84, 0x61, 0x42, 0x59, 0x5d, 0x6f, 0x54, 0x95, 0x43, 0x59, 0x02, 0x51, 0xad, 0x6a, 0x2f, 0x94,
+ 0x83, 0x69, 0x22, 0x59, 0x55, 0xdd, 0xa9, 0xa8, 0x83, 0x61, 0x02, 0x51, 0x7f, 0xf6, 0x2a, 0x02, 0xa3, 0x69, 0x02, 0x51, 0x35, 0xad, 0xee, 0x28, 0xc4, 0x69, 0x62, 0x61, 0xa3, 0xdf, 0xfd, 0x9d,
+ 0xc3, 0x71, 0x62, 0x61, 0x28, 0xad, 0xab, 0xbd, 0xc3, 0x69, 0x82, 0x61, 0xf2, 0xef, 0xad, 0x7f, 0xc3, 0x69, 0x82, 0x61, 0xbb, 0x0b, 0xee, 0xff, 0xc3, 0x69, 0x62, 0x61, 0x5c, 0xae, 0xeb, 0xab,
+ 0xa3, 0x69, 0x62, 0x61, 0xe8, 0xce, 0x68, 0xf3, 0xc4, 0x69, 0x62, 0x61, 0x25, 0x77, 0xed, 0xfd, 0xc3, 0x69, 0x62, 0x61, 0xc2, 0xe6, 0x2a, 0xa8, 0xc3, 0x71, 0x63, 0x61, 0x6a, 0xae, 0xfe, 0xab,
+ 0xc4, 0x69, 0x82, 0x61, 0x5a, 0x56, 0xb5, 0x82, 0xc4, 0x69, 0x62, 0x61, 0xfe, 0x7f, 0xf8, 0xae, 0xc4, 0x69, 0x62, 0x61, 0xb7, 0xdf, 0xb8, 0xfa, 0xc4, 0x69, 0x62, 0x61, 0x5f, 0xbb, 0xff, 0x2f,
+ 0xa4, 0x69, 0x43, 0x61, 0xed, 0xb8, 0xaa, 0xaa, 0xa4, 0x69, 0x62, 0x61, 0xe2, 0x4f, 0xba, 0xde, 0xa4, 0x69, 0x22, 0x59, 0xea, 0x8a, 0xa2, 0xf6, 0x24, 0x72, 0x62, 0x61, 0xb5, 0xfd, 0x35, 0xb5,
+ 0x48, 0x9b, 0x04, 0x72, 0xbd, 0xbd, 0x95, 0x2d, 0x0b, 0xb4, 0x48, 0x9b, 0xa9, 0x29, 0xa9, 0x03, 0x4c, 0xbc, 0xaa, 0xa3, 0xdf, 0xab, 0x2b, 0xa2, 0x2c, 0xb4, 0xcb, 0xa3, 0x0d, 0x08, 0xec, 0xc8,
+ 0x0c, 0xac, 0x4b, 0x6b, 0x58, 0x7e, 0xfe, 0xfe, 0xac, 0x7b, 0x4b, 0x73, 0x5f, 0x77, 0x20, 0x76, 0xac, 0x7b, 0xca, 0x62, 0xae, 0x2a, 0x6a, 0xeb, 0xcc, 0x83, 0xca, 0x62, 0x0a, 0x58, 0x7f, 0xff,
+ 0x8b, 0x73, 0xaa, 0x5a, 0xe8, 0xff, 0x55, 0x5f, 0xcd, 0x7b, 0xca, 0x5a, 0xdf, 0xfd, 0x2f, 0x2f, 0xed, 0x8b, 0x2b, 0x6b, 0x55, 0xbd, 0x82, 0xa8, 0xcc, 0x83, 0x0b, 0x6b, 0xd5, 0x00, 0xc0, 0xfa,
+ 0xcc, 0x7b, 0x0b, 0x73, 0x0b, 0xba, 0xf5, 0xb7, 0xac, 0x83, 0x89, 0x62, 0xa0, 0xaa, 0xd6, 0xee, 0x8b, 0x83, 0xaa, 0x5a, 0x02, 0xe8, 0x57, 0xbf, 0x8c, 0x83, 0x28, 0x4a, 0xa0, 0x5f, 0xff, 0xfa,
+ 0x6c, 0x7b, 0x89, 0x52, 0xde, 0xa9, 0xf5, 0x2f, 0x8c, 0x7b, 0x0a, 0x6b, 0xd5, 0x8b, 0x0b, 0xaa, 0x8c, 0x7b, 0x0a, 0x73, 0xf5, 0xdf, 0xaa, 0x2b, 0xcc, 0x8b, 0x6b, 0x7b, 0xd5, 0xf2, 0xdd, 0xbd,
+ 0xcc, 0x93, 0x6b, 0x73, 0xf3, 0xfb, 0xf5, 0xdf, 0xcc, 0x83, 0x0a, 0x73, 0xf6, 0xa2, 0x57, 0x7f, 0x8b, 0x7b, 0xea, 0x72, 0xa2, 0xbe, 0x2a, 0xb7, 0xcc, 0x83, 0x2b, 0x73, 0xd5, 0xf7, 0xbf, 0x07,
+ 0xcd, 0x83, 0x4b, 0x73, 0xbd, 0xab, 0xa0, 0xa0, 0xed, 0x83, 0x6b, 0x73, 0xef, 0xff, 0x75, 0x3f, 0x0e, 0x8c, 0x6b, 0x73, 0xff, 0x55, 0x7d, 0x78, 0xed, 0x8b, 0x0a, 0x6b, 0x7e, 0x8a, 0xf5, 0x2e,
+ 0xa9, 0x62, 0xa6, 0x41, 0xdf, 0x5e, 0x28, 0x7f, 0xc9, 0x62, 0x65, 0x31, 0x5f, 0x7f, 0xa0, 0xeb, 0x27, 0x52, 0x25, 0x29, 0x5f, 0xef, 0x0a, 0xa8, 0xc7, 0x41, 0x25, 0x29, 0x55, 0x5f, 0x58, 0xcd,
+ 0x86, 0x39, 0x24, 0x29, 0x97, 0x3b, 0x31, 0x6a, 0x08, 0x52, 0x25, 0x39, 0xaf, 0x2b, 0x0a, 0xd5, 0x28, 0x52, 0xc6, 0x49, 0x0d, 0xe8, 0x26, 0xa9, 0x28, 0x5a, 0xa5, 0x41, 0xf8, 0xfa, 0x7a, 0xe9,
+ 0x27, 0x52, 0x85, 0x41, 0x2a, 0x88, 0xa5, 0xaa, 0x47, 0x52, 0x86, 0x49, 0xb8, 0x7e, 0x2a, 0xaa, 0x67, 0x5a, 0x65, 0x39, 0xfa, 0xbb, 0xdc, 0x7f, 0x28, 0x52, 0x66, 0x39, 0xbd, 0xa2, 0x02, 0x5d,
+ 0x07, 0x52, 0x65, 0x39, 0x5f, 0xf0, 0x3e, 0xad, 0x47, 0x52, 0xa6, 0x41, 0xd5, 0xff, 0xab, 0x3f, 0x48, 0x4a, 0x86, 0x41, 0xa9, 0xa0, 0xe8, 0xd6, 0x48, 0x52, 0x65, 0x39, 0x82, 0xfa, 0xb5, 0xfd,
+ 0x27, 0x4a, 0x65, 0x39, 0xea, 0xff, 0xe0, 0x7b, 0xc7, 0x49, 0x24, 0x29, 0xaa, 0x82, 0xba, 0xf7, 0x07, 0x4a, 0x44, 0x39, 0xff, 0xf8, 0xde, 0xdd, 0xc5, 0x49, 0x04, 0x31, 0xdf, 0xbe, 0xba, 0x07,
+ 0x03, 0x49, 0xa5, 0x41, 0xbf, 0x3f, 0x2f, 0xbd, 0x03, 0x49, 0x62, 0x28, 0x5e, 0xea, 0xa0, 0xa0, 0xe3, 0x40, 0x84, 0x20, 0xf5, 0xff, 0x7a, 0xf8, 0xa5, 0x61, 0xa6, 0x18, 0x55, 0x77, 0x8d, 0xad,
+ 0xa1, 0x40, 0x06, 0x21, 0xbd, 0xad, 0xaf, 0xa0, 0x23, 0x51, 0xc2, 0x38, 0xad, 0x0b, 0xab, 0x2a, 0x83, 0x61, 0xe2, 0x58, 0xcb, 0x7f, 0xd5, 0xff, 0xc6, 0x69, 0x02, 0x59, 0x55, 0x95, 0xd5, 0x35,
+ 0x49, 0x9b, 0x61, 0x30, 0x57, 0x7f, 0xfe, 0xc2, 0x03, 0x49, 0x82, 0x28, 0xbd, 0xbf, 0x0b, 0x2b, 0x44, 0x51, 0xe3, 0x38, 0xf5, 0xaf, 0xaa, 0xaa, 0x63, 0x51, 0x02, 0x49, 0x77, 0x3d, 0xd7, 0xad,
+ 0x63, 0x51, 0xe2, 0x48, 0xbd, 0x22, 0x22, 0xba, 0x43, 0x59, 0x02, 0x49, 0xea, 0xdb, 0xcf, 0xaa, 0x23, 0x59, 0x02, 0x49, 0x6e, 0xab, 0xfe, 0x8a, 0x23, 0x51, 0x02, 0x49, 0x01, 0xcb, 0x03, 0x90,
+ 0x63, 0x59, 0x02, 0x51, 0x8d, 0x7e, 0xfb, 0xff, 0x63, 0x59, 0x02, 0x49, 0x8a, 0xfb, 0xea, 0x5d, 0x43, 0x61, 0xc2, 0x38, 0x00, 0xaa, 0x7f, 0xff, 0x63, 0x59, 0xe2, 0x40, 0xa8, 0xea, 0x09, 0x8d,
+ 0x64, 0x59, 0x03, 0x49, 0xbe, 0x0a, 0xde, 0x22, 0x45, 0x7a, 0x43, 0x59, 0xab, 0xf3, 0x9b, 0x3a, 0xea, 0xab, 0x05, 0x6a, 0xaf, 0x2d, 0x2b, 0x0b, 0xc9, 0xab, 0x27, 0x9b, 0x20, 0xea, 0xa8, 0xde,
+ 0xad, 0xc4, 0x89, 0xa3, 0xaf, 0x2d, 0x2f, 0x2d, 0x87, 0x72, 0xa6, 0x41, 0xd6, 0xfc, 0x38, 0x18, 0x0f, 0x94, 0x66, 0x39, 0x55, 0xff, 0xbe, 0x0a, 0xf0, 0xb4, 0x25, 0x29, 0x55, 0xbf, 0xaa, 0x02,
+ 0xcf, 0xb4, 0x28, 0x4a, 0xd5, 0xae, 0x0a, 0xa0, 0xef, 0xb4, 0xaa, 0x62, 0xb7, 0x82, 0xf8, 0x82, 0x8d, 0xa4, 0x43, 0x39, 0xa0, 0xf7, 0x79, 0xfe, 0x0d, 0x94, 0x47, 0x52, 0x37, 0x22, 0x7d, 0x75,
+ 0x2c, 0x9c, 0xa7, 0x41, 0x2a, 0x80, 0xb7, 0xd7, 0x2d, 0x94, 0x68, 0x52, 0x40, 0x8b, 0x8b, 0x8d, 0x0d, 0x84, 0x68, 0x52, 0xad, 0xaa, 0x2a, 0x0b, 0x4e, 0x94, 0x2b, 0x6b, 0x77, 0xef, 0x0a, 0xc2,
+ 0x8f, 0x9c, 0xc9, 0x62, 0x7b, 0xdc, 0xde, 0xfd, 0xac, 0x83, 0x8a, 0x62, 0x2d, 0xaa, 0x00, 0x28, 0x0d, 0x94, 0x48, 0x5a, 0xf8, 0x6a, 0x2a, 0x80, 0xac, 0x83, 0x68, 0x52, 0xab, 0xa9, 0x78, 0xab,
+ 0xcc, 0x83, 0xe7, 0x49, 0x0a, 0xbf, 0xff, 0x5a, 0xac, 0x7b, 0x48, 0x4a, 0x00, 0xe2, 0x58, 0x79, 0xcc, 0x83, 0x28, 0x42, 0x02, 0xff, 0x55, 0x55, 0xac, 0x7b, 0xe8, 0x41, 0xe0, 0xea, 0xff, 0xdf,
+ 0x8a, 0x52, 0x48, 0x4a, 0x28, 0x74, 0x5c, 0x6a, 0x89, 0x52, 0x08, 0x42, 0xa0, 0x5e, 0xbd, 0x7e, 0x6b, 0x7b, 0x08, 0x42, 0xaf, 0x3f, 0xf5, 0x55, 0x6b, 0x7b, 0x28, 0x4a, 0x00, 0x80, 0xaf, 0xd5,
+ 0x4a, 0x73, 0x89, 0x5a, 0xfc, 0xfe, 0xf7, 0x8b, 0x2a, 0x6b, 0x27, 0x62, 0x6a, 0xea, 0xea, 0x80, 0x84, 0x59, 0x22, 0x59, 0xd6, 0x76, 0xdc, 0xf8, 0x83, 0x69, 0x22, 0x51, 0xab, 0x22, 0xbf, 0xad,
+ 0x83, 0x69, 0x22, 0x59, 0x3e, 0xfa, 0x7e, 0xea, 0xa3, 0x69, 0x22, 0x59, 0x0a, 0xbb, 0xeb, 0x55, 0x83, 0x61, 0x22, 0x59, 0x88, 0xea, 0xf2, 0xaf, 0xc4, 0x69, 0x42, 0x59, 0xff, 0xff, 0x2d, 0xb5,
+ 0x83, 0x61, 0x22, 0x59, 0xee, 0xa0, 0xe0, 0x5b, 0x63, 0x61, 0x02, 0x59, 0xea, 0xf8, 0xea, 0xdd, 0x63, 0x61, 0x22, 0x59, 0xe9, 0x0e, 0xfb, 0xbb, 0x83, 0x61, 0x02, 0x51, 0xaf, 0xde, 0xbe, 0x82,
+ 0x63, 0x69, 0x42, 0x59, 0xaa, 0x7b, 0xff, 0x60, 0x83, 0x61, 0x42, 0x61, 0xef, 0x7e, 0xb7, 0xfc, 0x83, 0x61, 0x22, 0x59, 0x2a, 0xe8, 0xf7, 0x57, 0x83, 0x69, 0x02, 0x59, 0x08, 0xaa, 0x6b, 0x95,
+ 0xc3, 0x71, 0x42, 0x61, 0xea, 0xeb, 0xa9, 0xa2, 0xc4, 0x71, 0x62, 0x61, 0xbd, 0xbd, 0x18, 0xab, 0xc4, 0x69, 0x62, 0x61, 0xea, 0x0a, 0x8b, 0x7b, 0xc3, 0x71, 0x62, 0x61, 0x2e, 0xa2, 0xf8, 0xf7,
+ 0xc3, 0x69, 0x62, 0x61, 0xc2, 0xae, 0x6e, 0xea, 0xc3, 0x69, 0x62, 0x61, 0xf5, 0x2f, 0x3d, 0x2f, 0xe4, 0x71, 0x83, 0x61, 0xff, 0xca, 0xff, 0xfb, 0xa4, 0x69, 0x83, 0x61, 0x8b, 0x33, 0x70, 0xae,
+ 0xe4, 0x69, 0x62, 0x61, 0xaf, 0x7f, 0xa2, 0xee, 0xe4, 0x69, 0x63, 0x61, 0xfe, 0x35, 0xfe, 0xbb, 0xc4, 0x69, 0x63, 0x61, 0xfe, 0xa8, 0xfa, 0xd6, 0xa3, 0x69, 0x63, 0x61, 0xeb, 0x02, 0x8f, 0x7e,
+ 0xa4, 0x69, 0x62, 0x61, 0xfd, 0xb6, 0xd4, 0xda, 0xc4, 0x69, 0x63, 0x61, 0x3f, 0xbf, 0xd7, 0x7e, 0xa4, 0x69, 0x62, 0x61, 0x60, 0xfb, 0x76, 0x97, 0x45, 0x7a, 0x63, 0x61, 0x95, 0x35, 0x35, 0x27,
+ 0xaa, 0xa3, 0x85, 0x82, 0xbd, 0x1f, 0x2d, 0x29, 0x2b, 0xb4, 0x8a, 0xa3, 0xad, 0xab, 0x0b, 0xa9, 0x4c, 0xbc, 0x89, 0xa3, 0xaa, 0x10, 0xb8, 0x0a, 0x4c, 0xbc, 0xab, 0x9b, 0x2a, 0x8a, 0x80, 0x42,
+ 0x0c, 0x94, 0x6b, 0x7b, 0xf0, 0x5e, 0xff, 0x95, 0xcc, 0x83, 0x2a, 0x73, 0xf7, 0x7b, 0x3a, 0x68, 0x0d, 0x8c, 0xca, 0x62, 0x83, 0xbf, 0x68, 0xb7, 0xac, 0x83, 0xea, 0x6a, 0x7c, 0xa8, 0x01, 0x02,
+ 0xcc, 0x7b, 0xca, 0x62, 0xaa, 0x6a, 0x20, 0x28, 0xcc, 0x83, 0xc9, 0x62, 0xe2, 0xad, 0x0a, 0xaa, 0xac, 0x83, 0x2b, 0x73, 0xd7, 0xa8, 0xaa, 0xff, 0xac, 0x83, 0x4b, 0x73, 0x75, 0xfb, 0xa0, 0x5d,
+ 0x8c, 0x83, 0x0a, 0x63, 0x8a, 0xa0, 0xde, 0x7f, 0x8c, 0x7b, 0xea, 0x62, 0xd7, 0x2a, 0xba, 0xbb, 0xed, 0x8b, 0xea, 0x6a, 0x5f, 0xa8, 0x75, 0xff, 0xac, 0x83, 0x28, 0x52, 0x8a, 0xa0, 0x60, 0xeb,
+ 0xac, 0x83, 0x27, 0x52, 0xa0, 0xae, 0xbd, 0xf5, 0x8c, 0x7b, 0x2a, 0x6b, 0xf5, 0xbd, 0x03, 0x8d, 0xac, 0x7b, 0xaa, 0x6a, 0x02, 0x08, 0x0a, 0x68, 0xcc, 0x83, 0x0a, 0x6b, 0xea, 0x2a, 0xd6, 0xf7,
+ 0xed, 0x83, 0xc9, 0x62, 0xa2, 0xde, 0x2f, 0xaa, 0x8c, 0x7b, 0x08, 0x4a, 0x8a, 0xaa, 0xf7, 0xa0, 0x4b, 0x7b, 0x89, 0x62, 0x89, 0xdb, 0x0a, 0x82, 0x6b, 0x7b, 0x27, 0x4a, 0x8a, 0xb8, 0x22, 0x60,
+ 0x8c, 0x83, 0x48, 0x4a, 0xaa, 0x02, 0xe0, 0xfd, 0xed, 0x8b, 0x8a, 0x52, 0x82, 0xf8, 0xf5, 0xab, 0x6c, 0x73, 0x48, 0x52, 0xfa, 0xd5, 0x82, 0x00, 0xad, 0x7b, 0xa9, 0x52, 0x7a, 0xa9, 0x03, 0x2e,
+ 0x48, 0x62, 0x64, 0x41, 0x62, 0xba, 0xea, 0xea, 0x07, 0x52, 0x65, 0x41, 0xd7, 0xa0, 0x0d, 0x09, 0x48, 0x5a, 0xc6, 0x51, 0xa7, 0x57, 0x8a, 0x08, 0x47, 0x5a, 0x85, 0x41, 0x5f, 0xbf, 0xda, 0xf8,
+ 0x26, 0x52, 0x65, 0x39, 0xd5, 0xfe, 0xa0, 0xbb, 0xe6, 0x59, 0x65, 0x41, 0xb9, 0x1d, 0x2f, 0xe3, 0x88, 0x62, 0x44, 0x39, 0x0b, 0xea, 0xfe, 0x5f, 0x67, 0x5a, 0x44, 0x39, 0xa3, 0xa5, 0xff, 0x55,
+ 0x27, 0x52, 0x44, 0x39, 0x80, 0xf2, 0xa9, 0x5f, 0x48, 0x52, 0x65, 0x39, 0xf7, 0x23, 0x7f, 0xf5, 0x27, 0x5a, 0x65, 0x39, 0xfa, 0x58, 0x5f, 0xeb, 0xc6, 0x41, 0x45, 0x39, 0xb7, 0xad, 0x4a, 0x5a,
+ 0xe6, 0x49, 0x45, 0x31, 0xf0, 0xa8, 0xed, 0xad, 0xe7, 0x41, 0x65, 0x31, 0xd6, 0xeb, 0xdd, 0x82, 0xc5, 0x39, 0x04, 0x31, 0xeb, 0xd7, 0xa8, 0x5c, 0x24, 0x39, 0xa6, 0x31, 0x56, 0xf9, 0xaa, 0xa8,
+ 0x85, 0x39, 0x04, 0x31, 0xa8, 0x98, 0x23, 0xf0, 0xc6, 0x49, 0xe4, 0x28, 0xae, 0x3e, 0x5e, 0x77, 0xc6, 0x49, 0xe4, 0x28, 0xaa, 0xba, 0x2f, 0x09, 0x06, 0x4a, 0x24, 0x41, 0xb6, 0xf7, 0xfe, 0x8a,
+ 0x47, 0x62, 0x24, 0x49, 0x57, 0xff, 0x0b, 0xaf, 0x27, 0x6a, 0x02, 0x49, 0x5d, 0xdf, 0x82, 0x82, 0xa9, 0x72, 0x02, 0x49, 0x55, 0xff, 0xbe, 0x00, 0x26, 0x6a, 0x03, 0x49, 0x55, 0xaf, 0xaa, 0x20,
+ 0x46, 0x6a, 0x03, 0x49, 0xd5, 0xff, 0xaa, 0x2a, 0x67, 0x7a, 0x63, 0x51, 0x55, 0xff, 0xfe, 0x28, 0x6a, 0x93, 0x84, 0x59, 0xd5, 0xff, 0xbf, 0x2a, 0xea, 0xab, 0xe6, 0x61, 0x0d, 0xab, 0x0b, 0x02,
+ 0x4a, 0xbc, 0x02, 0x49, 0x60, 0x7a, 0x70, 0x58, 0x24, 0x49, 0xe2, 0x38, 0x25, 0x29, 0xaf, 0x0b, 0x44, 0x51, 0x03, 0x41, 0x2f, 0xbe, 0xb7, 0x38, 0x64, 0x59, 0x02, 0x49, 0x8a, 0x5f, 0x7e, 0xfe,
+ 0x63, 0x51, 0x23, 0x49, 0x7a, 0x7f, 0xb9, 0xfe, 0x43, 0x51, 0xe3, 0x48, 0x72, 0xf2, 0x0c, 0xba, 0x42, 0x51, 0xe3, 0x48, 0xbd, 0xba, 0x28, 0xfa, 0x43, 0x51, 0x02, 0x49, 0xb9, 0xa2, 0x4a, 0x7b,
+ 0x22, 0x51, 0xe3, 0x48, 0xfe, 0xaa, 0xcb, 0x7f, 0x23, 0x51, 0xe2, 0x40, 0xa0, 0x9e, 0xee, 0xef, 0x23, 0x49, 0xe2, 0x40, 0xeb, 0xef, 0x4f, 0xed, 0xa4, 0x61, 0xe2, 0x40, 0xa5, 0xa5, 0x35, 0x2d,
+ 0xc4, 0x61, 0x43, 0x59, 0xdf, 0xf3, 0x7f, 0xfb, 0x49, 0x9b, 0xe4, 0x69, 0xdd, 0xb5, 0x35, 0x2d, 0xc9, 0xab, 0x27, 0x93, 0x89, 0xab, 0xab, 0xf8, 0xa9, 0xa3, 0x65, 0x8a, 0x28, 0xa8, 0xb8, 0xd7,
+ 0x6d, 0xbc, 0x28, 0x9b, 0x8a, 0xab, 0x2b, 0x55, 0xae, 0xac, 0x48, 0x5a, 0xaf, 0x02, 0xf8, 0x5d, 0xce, 0xb4, 0xa9, 0x62, 0x00, 0x80, 0xd7, 0xd5, 0x6d, 0xac, 0x48, 0x52, 0xa0, 0xe2, 0x7f, 0x5f,
+ 0x8d, 0xac, 0xe7, 0x41, 0xa0, 0xff, 0x7f, 0x57, 0x8a, 0x83, 0x48, 0x52, 0xa0, 0xaf, 0x5d, 0x6b, 0x4b, 0x73, 0x07, 0x42, 0xaa, 0x2a, 0x0b, 0x7f, 0x6b, 0x7b, 0x28, 0x52, 0x7a, 0x8f, 0x2a, 0x03,
+ 0x6b, 0x7b, 0x29, 0x42, 0xd5, 0x57, 0xf0, 0xa0, 0xca, 0x62, 0xc7, 0x39, 0x22, 0x97, 0xfa, 0x78, 0xab, 0x7b, 0x66, 0x31, 0x0a, 0xaa, 0xff, 0xed, 0x2d, 0x8c, 0x48, 0x52, 0xa2, 0x7f, 0x7d, 0x55,
+ 0x6a, 0x73, 0xe7, 0x41, 0x0a, 0xaa, 0xb5, 0xf5, 0x0d, 0x8c, 0xc9, 0x62, 0x22, 0xaf, 0xab, 0xbd, 0xed, 0x8b, 0x27, 0x52, 0x80, 0xa0, 0xda, 0xaa, 0x8c, 0x83, 0x07, 0x4a, 0x68, 0xa9, 0xa2, 0x8a,
+ 0xac, 0x8b, 0x66, 0x31, 0xfd, 0xeb, 0x0a, 0xe2, 0xc9, 0x62, 0xa7, 0x39, 0xa9, 0xf7, 0x78, 0x7f, 0x69, 0x4a, 0x66, 0x29, 0xa0, 0x20, 0x2b, 0x25, 0x8a, 0x52, 0x28, 0x42, 0x5d, 0xdd, 0x5f, 0x78,
+ 0x89, 0x52, 0x08, 0x42, 0x8b, 0xab, 0xb7, 0xbf, 0xcb, 0x5a, 0x28, 0x42, 0x7f, 0xf5, 0x7d, 0x74, 0x49, 0x4a, 0x65, 0x29, 0x2a, 0xa8, 0x60, 0x60, 0x49, 0x52, 0xa6, 0x31, 0x3a, 0xea, 0xfd, 0xb9,
+ 0x0a, 0x6b, 0xa7, 0x31, 0x0a, 0xbd, 0xf5, 0xfd, 0x4a, 0x7b, 0x48, 0x4a, 0x02, 0xff, 0x75, 0x55, 0x27, 0x5a, 0x22, 0x51, 0x5f, 0x5c, 0x56, 0x7c, 0x43, 0x59, 0x02, 0x59, 0xbe, 0xaf, 0x30, 0xf9,
+ 0x63, 0x61, 0x22, 0x59, 0xea, 0x36, 0x0b, 0xae, 0x63, 0x61, 0x02, 0x59, 0xfa, 0xdf, 0xf8, 0x7e, 0x83, 0x61, 0x21, 0x59, 0xfd, 0x5d, 0x8b, 0xa5, 0x83, 0x69, 0x02, 0x59, 0xed, 0x2d, 0xea, 0xba,
+ 0x63, 0x61, 0x02, 0x59, 0x9c, 0xf0, 0xbe, 0xca, 0x63, 0x61, 0x02, 0x59, 0xe0, 0xba, 0xd7, 0xd5, 0x83, 0x61, 0x22, 0x59, 0xf7, 0xa7, 0xaf, 0xa2, 0x83, 0x61, 0x42, 0x59, 0xf2, 0x68, 0xea, 0xbf,
+ 0x64, 0x61, 0x22, 0x59, 0x2e, 0xfb, 0xbb, 0x30, 0x83, 0x61, 0x42, 0x59, 0xe5, 0xaf, 0x72, 0xe3, 0x83, 0x69, 0x22, 0x51, 0x7f, 0x2a, 0xaa, 0x2a, 0xc4, 0x69, 0x03, 0x51, 0xad, 0xab, 0x8a, 0xa2,
+ 0xe4, 0x69, 0x63, 0x61, 0xdf, 0x6b, 0xe9, 0xe3, 0xc4, 0x69, 0x63, 0x59, 0xd8, 0xee, 0xaa, 0x8a, 0xc4, 0x69, 0x62, 0x61, 0xbd, 0xaa, 0x8b, 0xea, 0xc4, 0x69, 0x63, 0x61, 0x9e, 0xa3, 0xeb, 0xbb,
+ 0xc4, 0x69, 0x63, 0x61, 0xba, 0x6a, 0xaf, 0xf2, 0xa4, 0x69, 0x63, 0x61, 0x87, 0xaf, 0xeb, 0x3f, 0xa4, 0x69, 0x63, 0x61, 0xbf, 0xfe, 0xca, 0xe9, 0xa4, 0x69, 0x83, 0x61, 0x04, 0xa8, 0xf0, 0xc7,
+ 0xe4, 0x69, 0x63, 0x61, 0x2e, 0xfb, 0xef, 0x5d, 0xa4, 0x69, 0x83, 0x59, 0xba, 0x8a, 0xab, 0xaa, 0xc4, 0x69, 0x63, 0x61, 0x9e, 0x8b, 0xae, 0xaf, 0xa4, 0x69, 0x82, 0x61, 0xd7, 0xae, 0x55, 0xdf,
+ 0xc4, 0x69, 0x43, 0x59, 0xb8, 0x7a, 0xba, 0xfe, 0xa4, 0x69, 0x63, 0x61, 0xaa, 0x5d, 0x6a, 0xb3, 0xa4, 0x69, 0x43, 0x61, 0x7e, 0xdf, 0x22, 0x8a, 0xa6, 0x82, 0x84, 0x61, 0xad, 0xa9, 0xad, 0x2f,
+ 0x89, 0xa3, 0xa6, 0x82, 0x2d, 0x29, 0x2f, 0xcb, 0x2b, 0xb4, 0xa9, 0xa3, 0x2d, 0xad, 0xab, 0xaf, 0x4c, 0xb4, 0xca, 0xab, 0x83, 0xe9, 0xab, 0x02, 0x8d, 0xc4, 0x6b, 0x83, 0xea, 0x6a, 0x6a, 0x52,
+ 0x2d, 0x94, 0x2b, 0x73, 0x7d, 0xff, 0xab, 0xe2, 0xac, 0x83, 0x68, 0x52, 0xa2, 0xe0, 0xdc, 0x9f, 0xac, 0x7b, 0xea, 0x6a, 0x0b, 0xad, 0xbd, 0xfd, 0xac, 0x7b, 0x0b, 0x6b, 0xa8, 0xea, 0xfb, 0x0d,
+ 0xcc, 0x83, 0x2b, 0x63, 0xaa, 0xdb, 0xfd, 0x88, 0xac, 0x83, 0xca, 0x5a, 0xff, 0x5f, 0xff, 0xa0, 0xcc, 0x7b, 0x69, 0x52, 0xab, 0xef, 0xaa, 0x01, 0xed, 0x83, 0xea, 0x62, 0xfd, 0x7d, 0x3a, 0x98,
+ 0x0e, 0x94, 0x0b, 0x63, 0x55, 0xff, 0x38, 0x22, 0x0d, 0x8c, 0x2a, 0x6b, 0xf5, 0xaf, 0x8c, 0xe0, 0xcd, 0x83, 0xea, 0x6a, 0xaa, 0xe0, 0xda, 0xff, 0x8c, 0x7b, 0x0b, 0x6b, 0x62, 0xab, 0x8b, 0x89,
+ 0xcc, 0x83, 0x08, 0x4a, 0x72, 0xaa, 0xa8, 0xaa, 0xac, 0x83, 0x88, 0x5a, 0xbd, 0x8f, 0xe8, 0xbe, 0xac, 0x7b, 0x0a, 0x73, 0xff, 0xfe, 0x2d, 0xea, 0x6c, 0x7b, 0x2b, 0x6b, 0x0a, 0x82, 0x40, 0xde,
+ 0xac, 0x83, 0x0b, 0x63, 0x0a, 0xa0, 0x77, 0xbf, 0x8c, 0x7b, 0xa9, 0x62, 0x00, 0xab, 0xdf, 0x5a, 0x4b, 0x7b, 0x88, 0x62, 0x38, 0x08, 0xa8, 0x7b, 0x2b, 0x73, 0x29, 0x52, 0x58, 0x5e, 0xf6, 0x57,
+ 0xcc, 0x7b, 0x89, 0x52, 0xb5, 0xb5, 0x25, 0x2d, 0xcc, 0x83, 0x0a, 0x63, 0xea, 0x2a, 0xa8, 0x70, 0xac, 0x7b, 0xa9, 0x5a, 0x8a, 0xaa, 0xe0, 0xad, 0x0a, 0x6b, 0x89, 0x52, 0xd2, 0x74, 0x5f, 0xf8,
+ 0x06, 0x5a, 0x85, 0x49, 0xa2, 0xb8, 0xf8, 0x58, 0x47, 0x62, 0x64, 0x41, 0x80, 0xea, 0xff, 0x55, 0x27, 0x52, 0x25, 0x41, 0x2e, 0xab, 0xff, 0x35, 0x26, 0x5a, 0x45, 0x39, 0xf8, 0xfa, 0x7b, 0x68,
+ 0xc6, 0x49, 0x65, 0x41, 0x82, 0x21, 0x01, 0x29, 0xe6, 0x51, 0x24, 0x39, 0xea, 0xe8, 0x4a, 0x60, 0x06, 0x52, 0x24, 0x39, 0x5f, 0x77, 0x89, 0x7d, 0xe7, 0x49, 0x04, 0x39, 0xb7, 0x3f, 0x03, 0x01,
+ 0x07, 0x52, 0x24, 0x39, 0x78, 0xf8, 0x76, 0xfe, 0xc7, 0x49, 0x25, 0x39, 0xfd, 0xe7, 0x55, 0x3c, 0x68, 0x5a, 0x45, 0x39, 0xf5, 0xd5, 0x8b, 0xa2, 0xe6, 0x51, 0x03, 0x31, 0xe0, 0x78, 0x7c, 0xf8,
+ 0x88, 0x62, 0x24, 0x31, 0xfd, 0x55, 0xf5, 0x25, 0x07, 0x4a, 0x45, 0x39, 0xa5, 0xad, 0x80, 0x54, 0x07, 0x52, 0x25, 0x31, 0xf6, 0xea, 0xbf, 0x2b, 0x28, 0x52, 0x25, 0x39, 0xfd, 0x5f, 0xfa, 0x00,
+ 0x07, 0x52, 0x24, 0x31, 0x5b, 0xd5, 0xd5, 0xb8, 0xe6, 0x49, 0xe4, 0x30, 0x7f, 0xfe, 0xab, 0x22, 0xe6, 0x49, 0xe4, 0x30, 0x0d, 0xaf, 0x82, 0xa8, 0x48, 0x5a, 0x64, 0x31, 0xab, 0x82, 0xb5, 0xf7,
+ 0x07, 0x4a, 0x85, 0x39, 0xb8, 0xe8, 0x8f, 0x65, 0xc7, 0x72, 0xa6, 0x41, 0x2f, 0x5f, 0xff, 0xd5, 0xe6, 0x82, 0x65, 0x49, 0xe0, 0xff, 0xbf, 0xd7, 0xc9, 0x7a, 0x64, 0x51, 0x7f, 0xf5, 0x2a, 0x2a,
+ 0xe8, 0x8a, 0xa5, 0x59, 0x95, 0xab, 0x08, 0x80, 0xea, 0xab, 0x47, 0x72, 0xe5, 0xff, 0xaf, 0xc2, 0x0b, 0xac, 0xe1, 0x50, 0x2a, 0x02, 0x00, 0x57, 0x4a, 0xbc, 0xe2, 0x40, 0x22, 0xe0, 0x5e, 0x55,
+ 0x87, 0xab, 0xe3, 0x38, 0x5c, 0x55, 0x55, 0x55, 0x64, 0x51, 0x03, 0x39, 0xbd, 0xab, 0x2a, 0x22, 0x44, 0x51, 0x22, 0x49, 0xdf, 0xda, 0x1e, 0x2c, 0x84, 0x59, 0x03, 0x49, 0xeb, 0x8d, 0x8b, 0xb8,
+ 0x83, 0x59, 0x23, 0x51, 0xe7, 0xff, 0xca, 0xff, 0x43, 0x51, 0xe2, 0x48, 0xfc, 0x58, 0xfe, 0xf6, 0x44, 0x59, 0x02, 0x49, 0x5e, 0xf7, 0x35, 0x2a, 0x44, 0x59, 0xe2, 0x48, 0xdd, 0x83, 0xa8, 0x00,
+ 0x43, 0x59, 0xc2, 0x40, 0xff, 0x5e, 0xf8, 0xa0, 0x23, 0x51, 0xc2, 0x38, 0xfb, 0xfd, 0xaa, 0xf8, 0x23, 0x49, 0xc2, 0x38, 0x8a, 0xf6, 0x5e, 0xfa, 0xa3, 0x69, 0xc2, 0x38, 0x2b, 0xab, 0xa9, 0xbd,
+ 0x05, 0x72, 0x23, 0x59, 0xef, 0xb5, 0xbd, 0x2d, 0x28, 0x9b, 0x05, 0x72, 0x09, 0x2d, 0x2b, 0x2b, 0x68, 0x9b, 0x45, 0x82, 0x78, 0xa8, 0x02, 0xe8, 0x28, 0x9b, 0xa2, 0x69, 0xaf, 0x20, 0xaa, 0xad,
+ 0x0b, 0xac, 0xe8, 0x8a, 0xbf, 0xcf, 0x49, 0x7d, 0xc9, 0x62, 0x08, 0x4a, 0x08, 0xeb, 0xff, 0xd7, 0xea, 0x6a, 0x48, 0x52, 0xb4, 0xff, 0xb5, 0x1d, 0x2b, 0x6b, 0x28, 0x52, 0xfb, 0xf7, 0xab, 0x80,
+ 0x4b, 0x73, 0x08, 0x42, 0xd7, 0xae, 0x2a, 0xa8, 0x4b, 0x7b, 0x48, 0x52, 0x60, 0x70, 0x40, 0x68, 0xa9, 0x5a, 0xe8, 0x41, 0x7f, 0x2f, 0x2f, 0x3f, 0xec, 0x8b, 0xa6, 0x41, 0xab, 0x01, 0x02, 0xa2,
+ 0x8b, 0x7b, 0xa9, 0x62, 0xea, 0xe8, 0x78, 0xb0, 0x8c, 0x7b, 0xc7, 0x41, 0x7b, 0xe2, 0xca, 0xf8, 0x0b, 0x63, 0x87, 0x39, 0x95, 0xdf, 0xf8, 0x2a, 0xea, 0x62, 0xe7, 0x41, 0xaa, 0x0f, 0xb5, 0xd7,
+ 0x2a, 0x73, 0xe8, 0x49, 0xf5, 0xf8, 0xe0, 0x02, 0x4b, 0x7b, 0x48, 0x5a, 0x0d, 0x2d, 0xbf, 0xb6, 0x4a, 0x7b, 0x28, 0x62, 0xa8, 0xb8, 0x6c, 0xae, 0xab, 0x8b, 0x27, 0x62, 0x0a, 0x02, 0x29, 0xaf,
+ 0xec, 0x93, 0x28, 0x5a, 0x70, 0xfa, 0xfa, 0xd7, 0xca, 0x6a, 0xc6, 0x41, 0xbd, 0xb0, 0xde, 0x78, 0xaa, 0x6a, 0xa6, 0x41, 0x6a, 0xcc, 0xeb, 0xed, 0x8a, 0x5a, 0x66, 0x39, 0x82, 0x85, 0xdd, 0xbe,
+ 0x6a, 0x4a, 0xe7, 0x41, 0xfb, 0x7a, 0xe3, 0x83, 0xaa, 0x5a, 0xe8, 0x39, 0x72, 0x6b, 0x7d, 0xeb, 0x29, 0x4a, 0xa7, 0x39, 0x6f, 0xf9, 0xed, 0x0b, 0x28, 0x4a, 0xa7, 0x39, 0xdb, 0xcb, 0x17, 0x36,
+ 0x8a, 0x5a, 0x87, 0x31, 0xef, 0xff, 0xff, 0x5c, 0x69, 0x4a, 0xa7, 0x39, 0xf8, 0x2b, 0x27, 0x75, 0x43, 0x59, 0x69, 0x52, 0x09, 0x0b, 0x0f, 0x2f, 0x43, 0x59, 0xe2, 0x50, 0xff, 0x38, 0x68, 0xb8,
+ 0x84, 0x61, 0x22, 0x59, 0xf5, 0xcf, 0xfd, 0x55, 0x43, 0x59, 0x02, 0x51, 0x38, 0x98, 0xf0, 0xcd, 0x83, 0x61, 0x02, 0x59, 0xaf, 0x8b, 0x89, 0xe5, 0x63, 0x61, 0x02, 0x51, 0xc2, 0xea, 0xfa, 0x6f,
+ 0x43, 0x61, 0x02, 0x51, 0xa0, 0xba, 0x0e, 0xeb, 0x44, 0x59, 0x02, 0x51, 0x1f, 0x8a, 0x8e, 0x22, 0x84, 0x69, 0x22, 0x59, 0x0e, 0xbb, 0xed, 0xd7, 0x63, 0x61, 0x22, 0x59, 0x02, 0x82, 0xaa, 0x57,
+ 0x63, 0x61, 0x02, 0x59, 0x08, 0x0a, 0x28, 0xd6, 0x83, 0x61, 0x22, 0x59, 0x02, 0xe8, 0x20, 0x7d, 0x64, 0x61, 0x22, 0x59, 0xe7, 0x02, 0x3f, 0x09, 0x84, 0x69, 0x62, 0x59, 0x8b, 0xef, 0x57, 0xef,
+ 0xa4, 0x69, 0x63, 0x59, 0xbb, 0xe9, 0xbf, 0x0f, 0xa4, 0x69, 0x63, 0x59, 0x2a, 0xbf, 0xaf, 0xae, 0xc4, 0x69, 0x63, 0x61, 0x23, 0xff, 0xa5, 0xf7, 0xa4, 0x69, 0x63, 0x59, 0xab, 0xb9, 0xea, 0xaa,
+ 0xa4, 0x61, 0x62, 0x61, 0xb7, 0xef, 0xfa, 0xe8, 0xa4, 0x69, 0x63, 0x59, 0x3f, 0x2a, 0xcb, 0xaf, 0xa4, 0x69, 0x83, 0x59, 0x2e, 0xa9, 0xbe, 0xb9, 0xc4, 0x69, 0x63, 0x61, 0xde, 0x58, 0xdd, 0xba,
+ 0xe4, 0x69, 0x83, 0x61, 0xbf, 0x3d, 0x55, 0x79, 0xc4, 0x69, 0x82, 0x59, 0xfe, 0xba, 0xea, 0x2a, 0xc4, 0x71, 0x63, 0x61, 0xf7, 0xd7, 0xea, 0xe8, 0xc4, 0x69, 0x63, 0x61, 0xe9, 0xbb, 0x8a, 0x2b,
+ 0xc4, 0x69, 0x62, 0x61, 0xde, 0xfe, 0x3e, 0xfa, 0xc4, 0x69, 0x63, 0x61, 0xaf, 0x37, 0x80, 0xfe, 0xc4, 0x69, 0x63, 0x61, 0xba, 0xf2, 0xda, 0x55, 0xe7, 0x8a, 0xe4, 0x69, 0x35, 0x2d, 0xbd, 0x2d,
+ 0xa9, 0xa3, 0x86, 0x82, 0x4b, 0x0b, 0x2f, 0x0b, 0x2b, 0xb4, 0x89, 0xa3, 0xaf, 0x9b, 0xab, 0x26, 0x6c, 0xbc, 0x0b, 0xb4, 0x2b, 0xe7, 0x29, 0xdd, 0x8e, 0xc4, 0x68, 0x62, 0xb8, 0x7a, 0x54, 0x5c,
+ 0x2b, 0x73, 0xa6, 0x39, 0x94, 0x2d, 0xde, 0xcb, 0x2b, 0x6b, 0xe7, 0x41, 0x00, 0x0a, 0xab, 0x29, 0x4b, 0x73, 0xaa, 0x62, 0x5a, 0x2f, 0x2b, 0x2b, 0x8c, 0x7b, 0xea, 0x6a, 0xad, 0xa2, 0xab, 0x88,
+ 0xac, 0x7b, 0x69, 0x62, 0x07, 0xc2, 0x22, 0xaa, 0xac, 0x83, 0x47, 0x52, 0x80, 0x1e, 0xde, 0xff, 0xaf, 0x9c, 0x68, 0x5a, 0xb7, 0x20, 0x0a, 0x7f, 0x4e, 0x94, 0x06, 0x4a, 0xaa, 0x00, 0xa8, 0xfd,
+ 0x0d, 0x8c, 0xea, 0x62, 0x00, 0xe0, 0xf7, 0xd5, 0x8c, 0x7b, 0x48, 0x52, 0x00, 0x22, 0x02, 0x60, 0x8f, 0x9c, 0xa6, 0x41, 0xaa, 0xaa, 0x8a, 0xfd, 0x6f, 0x8c, 0x2a, 0x73, 0xfb, 0xf5, 0x5f, 0x0f,
+ 0xac, 0x83, 0x07, 0x4a, 0xaa, 0x68, 0x2a, 0xf8, 0xab, 0x83, 0xc8, 0x49, 0xb7, 0xa9, 0x80, 0xab, 0xed, 0x8b, 0x88, 0x5a, 0xab, 0xfb, 0xbf, 0x71, 0xcc, 0x83, 0x27, 0x52, 0x00, 0xab, 0xa8, 0xfd,
+ 0xac, 0x83, 0x08, 0x4a, 0x80, 0x78, 0xa3, 0xaa, 0xab, 0x7b, 0x28, 0x4a, 0xc2, 0x57, 0x57, 0x54, 0x0a, 0x63, 0x49, 0x4a, 0xd8, 0xf9, 0xab, 0x2f, 0xec, 0x83, 0x69, 0x4a, 0x55, 0xb5, 0x03, 0x02,
+ 0xed, 0x8b, 0xca, 0x5a, 0xe9, 0xfa, 0xe8, 0xa8, 0x8c, 0x73, 0xe7, 0x41, 0xff, 0xfe, 0xfa, 0x68, 0xac, 0x7b, 0x89, 0x52, 0x8b, 0x8b, 0x83, 0x29, 0x8c, 0x7b, 0xe9, 0x62, 0x7e, 0xfe, 0xea, 0x80,
+ 0xc9, 0x62, 0x04, 0x39, 0xf5, 0xf5, 0xb7, 0x27, 0x8a, 0x83, 0x25, 0x39, 0x55, 0xfd, 0xa2, 0xe0, 0xe9, 0x6a, 0xa6, 0x41, 0x7d, 0xff, 0xaa, 0xa2, 0x27, 0x52, 0x85, 0x39, 0x42, 0xf8, 0xf8, 0xfc,
+ 0xe6, 0x51, 0x64, 0x41, 0x75, 0xde, 0xe8, 0xa8, 0x27, 0x52, 0x65, 0x41, 0x6b, 0x2b, 0x3b, 0xab, 0x27, 0x5a, 0x04, 0x29, 0xfd, 0xfe, 0xbc, 0xa8, 0x27, 0x5a, 0x24, 0x31, 0x0f, 0x2d, 0xdd, 0x57,
+ 0x27, 0x52, 0x45, 0x39, 0x70, 0xa0, 0xa8, 0x6b, 0x26, 0x52, 0x45, 0x39, 0x0d, 0xaa, 0xfa, 0xad, 0xcd, 0x93, 0x23, 0x31, 0x7f, 0x57, 0x5d, 0x4f, 0xcd, 0x83, 0x45, 0x39, 0x55, 0xd5, 0xd5, 0x35,
+ 0xab, 0x83, 0xa6, 0x41, 0xd5, 0xb5, 0x83, 0x78, 0x2d, 0x9c, 0x64, 0x31, 0x5f, 0x02, 0x7f, 0x7f, 0xcb, 0x93, 0x65, 0x39, 0x7d, 0xf8, 0xf7, 0xfd, 0x0a, 0x73, 0x24, 0x31, 0x0b, 0xfa, 0xf5, 0xf7,
+ 0xe9, 0x62, 0x24, 0x29, 0x2c, 0x57, 0xff, 0xaf, 0xc9, 0x6a, 0x85, 0x31, 0x50, 0xb5, 0x57, 0xd7, 0x8c, 0x7b, 0x24, 0x31, 0xdd, 0xa8, 0xbd, 0x5f, 0xeb, 0x8b, 0xa6, 0x41, 0x55, 0xff, 0x8a, 0xdf,
+ 0x6a, 0x8b, 0xa6, 0x41, 0x55, 0xdf, 0x70, 0xff, 0xcc, 0x7b, 0xa6, 0x41, 0x55, 0xf7, 0xc2, 0x5f, 0xa8, 0x62, 0xc7, 0x49, 0x97, 0xfa, 0xe0, 0xfd, 0xed, 0x8b, 0x85, 0x41, 0x72, 0xf7, 0xfd, 0xbf,
+ 0x09, 0x7b, 0x44, 0x49, 0xff, 0x57, 0x57, 0x54, 0xa4, 0x59, 0x23, 0x41, 0xdc, 0x77, 0x7f, 0xf7, 0x44, 0x49, 0xc3, 0x38, 0xa0, 0x82, 0x78, 0x7a, 0x64, 0x49, 0x03, 0x41, 0xfd, 0xf9, 0x8f, 0xff,
+ 0x44, 0x51, 0x03, 0x41, 0xe7, 0xb7, 0xe0, 0x8e, 0x84, 0x51, 0x23, 0x49, 0xfb, 0x8b, 0xfe, 0xa8, 0x64, 0x59, 0x23, 0x49, 0xf2, 0x23, 0x9f, 0xfa, 0x64, 0x59, 0x23, 0x51, 0x7f, 0xca, 0xa2, 0x65,
+ 0xa4, 0x59, 0x03, 0x51, 0x2f, 0xb7, 0xff, 0xfd, 0x63, 0x59, 0x02, 0x49, 0xd8, 0x6a, 0xfe, 0xfa, 0x44, 0x51, 0x23, 0x49, 0x98, 0x58, 0xfe, 0x28, 0x44, 0x59, 0x03, 0x51, 0x80, 0x2e, 0x83, 0xe9,
+ 0x44, 0x59, 0x03, 0x51, 0x9e, 0x4a, 0xfa, 0xad, 0x23, 0x51, 0xe2, 0x40, 0x98, 0x37, 0xb8, 0xa0, 0x22, 0x51, 0xe3, 0x38, 0x5e, 0x7e, 0xd8, 0xfe, 0x64, 0x61, 0xe3, 0x40, 0xbd, 0x2f, 0xab, 0x83,
+ 0x46, 0x7a, 0x63, 0x59, 0xad, 0xbf, 0xbd, 0x3f, 0x07, 0x93, 0x66, 0x7a, 0x0b, 0xaf, 0xe9, 0xbd, 0x06, 0x93, 0x63, 0x69, 0xf8, 0xa0, 0x78, 0x7a, 0xc6, 0x8a, 0x23, 0x59, 0x2d, 0x2a, 0xa5, 0xbd,
+ 0x6e, 0xbc, 0x65, 0x82, 0x3f, 0x95, 0xf5, 0xf5, 0xab, 0x9b, 0x07, 0x42, 0x57, 0x77, 0x7e, 0x7c, 0xca, 0x62, 0xc8, 0x41, 0x0a, 0x5e, 0xaf, 0xbd, 0x0a, 0x73, 0x48, 0x52, 0x82, 0x89, 0x0f, 0x7b,
+ 0x0a, 0x6b, 0x07, 0x4a, 0xa0, 0xb0, 0xe2, 0x55, 0x0a, 0x6b, 0x89, 0x5a, 0xf3, 0xf2, 0x5b, 0xb9, 0x2b, 0x6b, 0xe8, 0x49, 0x97, 0xff, 0xa2, 0x02, 0xeb, 0x8b, 0x8a, 0x5a, 0xb2, 0x5f, 0xff, 0xdf,
+ 0x8c, 0x83, 0x28, 0x4a, 0xa8, 0x5c, 0x7c, 0x5f, 0x2b, 0x6b, 0x28, 0x4a, 0xff, 0x55, 0x15, 0x07, 0x2e, 0x94, 0xe8, 0x41, 0x5d, 0x5f, 0xa8, 0xaa, 0x2b, 0x73, 0xe8, 0x49, 0xdf, 0xab, 0xa0, 0x6b,
+ 0xac, 0x83, 0xc6, 0x41, 0xab, 0x0b, 0x02, 0xf5, 0xac, 0x83, 0x07, 0x52, 0xae, 0x8a, 0xd8, 0xef, 0x4b, 0x7b, 0x65, 0x39, 0xfa, 0x80, 0x2f, 0x5a, 0xea, 0x72, 0xc7, 0x41, 0xc0, 0xfb, 0xe0, 0x5a,
+ 0x89, 0x5a, 0x08, 0x52, 0x97, 0x3d, 0xce, 0xad, 0x0a, 0x73, 0xe7, 0x49, 0x7e, 0x7b, 0xa3, 0xda, 0x0a, 0x6b, 0x86, 0x39, 0xab, 0xbd, 0x02, 0x37, 0xaa, 0x62, 0xa7, 0x49, 0x1e, 0xcf, 0xee, 0xba,
+ 0xaa, 0x62, 0x86, 0x39, 0xa7, 0xba, 0x7f, 0x4b, 0x69, 0x4a, 0x87, 0x41, 0x88, 0x02, 0x8a, 0x9d, 0xaa, 0x5a, 0xc7, 0x39, 0xad, 0x8a, 0x0f, 0x0b, 0x0b, 0x6b, 0x08, 0x42, 0xf5, 0xe3, 0x2f, 0x8a,
+ 0x8c, 0x7b, 0x28, 0x4a, 0x5f, 0xfb, 0xe2, 0x83, 0x4c, 0x6b, 0xe7, 0x41, 0xd5, 0x5e, 0x0a, 0x52, 0x2c, 0x6b, 0x63, 0x59, 0x7a, 0x72, 0x7a, 0x7a, 0x43, 0x61, 0x02, 0x51, 0xfc, 0x5e, 0x5e, 0x5a,
+ 0x44, 0x59, 0x02, 0x49, 0x8f, 0xed, 0xa5, 0xa7, 0x03, 0x59, 0x43, 0x51, 0xf7, 0x85, 0xdf, 0xaa, 0x43, 0x59, 0x03, 0x51, 0xda, 0xbd, 0x0a, 0x0f, 0x43, 0x59, 0x02, 0x51, 0x68, 0xbf, 0xe0, 0xe0,
+ 0x63, 0x59, 0x22, 0x51, 0x7d, 0xfb, 0x23, 0xf9, 0x63, 0x61, 0x22, 0x51, 0xeb, 0xff, 0xbf, 0xdd, 0x64, 0x61, 0x02, 0x59, 0xaa, 0x2d, 0x2b, 0xbf, 0x62, 0x59, 0x03, 0x51, 0x7a, 0x7c, 0xfe, 0xae,
+ 0x43, 0x59, 0x02, 0x49, 0x7a, 0xff, 0xf0, 0x5e, 0x43, 0x59, 0x02, 0x51, 0x37, 0xff, 0xd7, 0xfd, 0xa3, 0x61, 0x02, 0x51, 0x2f, 0x2b, 0xf5, 0xd5, 0xa4, 0x69, 0x42, 0x59, 0xdf, 0xae, 0xae, 0xbf,
+ 0xa4, 0x69, 0x43, 0x59, 0x7f, 0xaa, 0x2a, 0x8b, 0xc3, 0x69, 0x64, 0x61, 0x7f, 0xbf, 0x22, 0x2a, 0xa4, 0x69, 0x83, 0x61, 0x5d, 0xb4, 0x00, 0xd3, 0xc4, 0x69, 0x83, 0x61, 0xef, 0xff, 0x3f, 0x5f,
+ 0xa4, 0x69, 0x63, 0x61, 0x68, 0xe2, 0xba, 0x7c, 0xc4, 0x69, 0x82, 0x61, 0x6f, 0x29, 0xe9, 0x85, 0xc4, 0x69, 0x62, 0x61, 0xf8, 0xf2, 0x7e, 0xff, 0x62, 0x69, 0xc4, 0x61, 0xfe, 0x2a, 0xff, 0xbe,
+ 0xc4, 0x69, 0x83, 0x61, 0xaf, 0x6b, 0x75, 0xd6, 0xc4, 0x69, 0x62, 0x61, 0xe8, 0x3f, 0xb7, 0xfe, 0xa4, 0x69, 0x63, 0x61, 0x3b, 0xab, 0xb8, 0xd5, 0xa3, 0x69, 0x42, 0x61, 0xa0, 0xde, 0xa2, 0xfb,
+ 0x83, 0x69, 0x62, 0x59, 0xbe, 0xbc, 0xfa, 0xbf, 0xa4, 0x69, 0x63, 0x61, 0xa7, 0x2c, 0x89, 0xb7, 0xa7, 0x7a, 0x63, 0x61, 0x55, 0x55, 0xf5, 0x8b, 0xe8, 0x8a, 0xe4, 0x69, 0x8f, 0xf5, 0xaf, 0x20,
+ 0xeb, 0xab, 0x86, 0x82, 0xaf, 0xd5, 0x2f, 0x03, 0x6c, 0xb4, 0x28, 0x93, 0xbf, 0xa9, 0x2a, 0x2a, 0xce, 0xc4, 0x89, 0xa3, 0x2b, 0x2a, 0x2a, 0xd2, 0x6e, 0xac, 0x66, 0x41, 0xfc, 0xfe, 0x5f, 0xfd,
+ 0xca, 0x6a, 0x46, 0x31, 0x70, 0xde, 0x55, 0x56, 0xea, 0x62, 0x46, 0x39, 0x2f, 0x2d, 0xd5, 0xd5, 0x6b, 0x73, 0x49, 0x5a, 0x0a, 0xab, 0xad, 0xf5, 0x6b, 0x7b, 0xc6, 0x41, 0x00, 0x5a, 0xfe, 0xba,
+ 0x0a, 0x7b, 0xc7, 0x41, 0xa0, 0x0b, 0xfa, 0xf6, 0x0b, 0x73, 0x66, 0x39, 0xa8, 0xfe, 0x77, 0xae, 0xa9, 0x62, 0x46, 0x31, 0x00, 0xaa, 0x7f, 0xff, 0xa9, 0x5a, 0x67, 0x31, 0x2c, 0xe2, 0x2d, 0x2f,
+ 0x2a, 0x73, 0xe7, 0x41, 0x82, 0xf5, 0xde, 0x57, 0xe9, 0x6a, 0x87, 0x39, 0x0b, 0x2b, 0x5f, 0xeb, 0x4a, 0x6b, 0xc7, 0x41, 0x82, 0xab, 0xbf, 0xfd, 0x0a, 0x6b, 0x08, 0x4a, 0x0a, 0xee, 0xab, 0xf7,
+ 0x2b, 0x73, 0x28, 0x52, 0x68, 0xae, 0x8f, 0xa7, 0x2b, 0x73, 0x88, 0x5a, 0x1f, 0xa0, 0xea, 0x92, 0x4b, 0x73, 0xe7, 0x49, 0x56, 0xfe, 0xfe, 0x82, 0x6b, 0x83, 0x89, 0x62, 0xad, 0x22, 0x2d, 0x67,
+ 0x6b, 0x7b, 0xe6, 0x41, 0x00, 0xa0, 0xda, 0xad, 0xc9, 0x62, 0xa6, 0x39, 0xf8, 0xfc, 0xf8, 0x58, 0x6b, 0x73, 0xe7, 0x41, 0xaf, 0x0b, 0x2d, 0x2d, 0xec, 0x83, 0xea, 0x62, 0x0b, 0x0a, 0x7a, 0x5f,
+ 0xcc, 0x83, 0xa9, 0x5a, 0x80, 0xf8, 0xad, 0xef, 0x2b, 0x6b, 0x28, 0x4a, 0x86, 0xb8, 0xb4, 0xd6, 0x8b, 0x7b, 0x28, 0x4a, 0x2f, 0xba, 0x7a, 0xd7, 0xec, 0x83, 0x89, 0x5a, 0xa8, 0xaa, 0xed, 0xd5,
+ 0x29, 0x83, 0x85, 0x49, 0xd7, 0xf5, 0x83, 0x8b, 0xed, 0x93, 0x45, 0x39, 0x5f, 0xff, 0xfe, 0xb4, 0x8f, 0xa4, 0x64, 0x39, 0xed, 0x8b, 0xca, 0x58, 0x27, 0x5a, 0x85, 0x39, 0xee, 0x72, 0x57, 0x2d,
+ 0x28, 0x52, 0xa5, 0x41, 0xf6, 0x3d, 0xa3, 0x89, 0x28, 0x52, 0xc6, 0x41, 0x7a, 0x7f, 0x80, 0xa2, 0xca, 0x6a, 0x44, 0x39, 0xff, 0xff, 0xfd, 0x0d, 0x6b, 0x83, 0x44, 0x39, 0x55, 0x7d, 0xcb, 0x20,
+ 0xe9, 0x72, 0x24, 0x39, 0xd5, 0xdd, 0x9f, 0x88, 0xed, 0x8b, 0x64, 0x39, 0xf5, 0xbd, 0xf0, 0x55, 0xcb, 0x83, 0x23, 0x31, 0xeb, 0x82, 0xf7, 0xff, 0x8a, 0x83, 0x64, 0x31, 0x62, 0x57, 0xd7, 0xdf,
+ 0xe9, 0x6a, 0x85, 0x31, 0xff, 0xdd, 0xff, 0xa2, 0x2a, 0x6b, 0x64, 0x31, 0xba, 0xaa, 0x02, 0xd7, 0xa8, 0x5a, 0x65, 0x31, 0xbf, 0x2d, 0xb6, 0xf7, 0xe9, 0x6a, 0x85, 0x31, 0x82, 0xba, 0x2f, 0xd5,
+ 0xca, 0x62, 0xe7, 0x41, 0x5f, 0x8a, 0x6d, 0xab, 0xcd, 0x7b, 0xc6, 0x41, 0x55, 0xff, 0xdf, 0x27, 0x70, 0x94, 0x68, 0x52, 0xfd, 0x5d, 0xfd, 0x2a, 0xed, 0x8b, 0x07, 0x4a, 0x5f, 0xef, 0xdf, 0xb0,
+ 0x4d, 0x9c, 0xc7, 0x39, 0x5f, 0xaf, 0x0a, 0x02, 0x6d, 0xa4, 0x28, 0x52, 0x7d, 0xca, 0x5f, 0x60, 0x6e, 0xa4, 0xca, 0x62, 0xfd, 0xfb, 0x23, 0x5d, 0x2d, 0x94, 0x0a, 0x6b, 0xaf, 0xbd, 0xb8, 0xa2,
+ 0x4d, 0x9c, 0x23, 0x49, 0x5e, 0x58, 0x7a, 0x00, 0xc6, 0x59, 0x24, 0x49, 0x5f, 0xfb, 0xdf, 0xf0, 0x65, 0x51, 0xc3, 0x40, 0x6c, 0xea, 0xe0, 0xf8, 0x64, 0x51, 0x23, 0x49, 0x9d, 0xc8, 0xfe, 0xde,
+ 0x64, 0x59, 0x23, 0x49, 0xf3, 0xba, 0xbb, 0xbe, 0x63, 0x59, 0x44, 0x51, 0x7d, 0x55, 0x0f, 0x26, 0xa4, 0x59, 0x03, 0x49, 0x7f, 0xeb, 0xf2, 0xae, 0x64, 0x59, 0x23, 0x49, 0x95, 0xad, 0xb2, 0xab,
+ 0x63, 0x59, 0x04, 0x51, 0xad, 0xaa, 0xbd, 0x28, 0x64, 0x59, 0x23, 0x51, 0x76, 0xd1, 0xa7, 0xee, 0x64, 0x59, 0x23, 0x51, 0x7f, 0x7b, 0x96, 0x33, 0x63, 0x59, 0x23, 0x49, 0xfa, 0xbd, 0xaf, 0xa8,
+ 0x63, 0x59, 0x23, 0x51, 0xfd, 0xfd, 0xee, 0xe2, 0x64, 0x61, 0xc2, 0x40, 0x6a, 0xfa, 0xaa, 0x82, 0xa4, 0x61, 0xe3, 0x40, 0x55, 0x55, 0xbe, 0x0a, 0x25, 0x72, 0x03, 0x51, 0xf9, 0xbd, 0xab, 0x02,
+ 0xa6, 0x82, 0xa4, 0x61, 0xb5, 0xbd, 0x2b, 0x23, 0x86, 0x82, 0x04, 0x7a, 0xa2, 0x82, 0x00, 0x7f, 0x65, 0x82, 0x43, 0x61, 0x78, 0xa8, 0x80, 0x8a, 0x07, 0x93, 0x84, 0x61, 0x25, 0xaf, 0xaf, 0x2e,
+ 0x8a, 0xa3, 0xc6, 0x8a, 0x35, 0x35, 0xbf, 0x0f, 0x8e, 0xbc, 0x27, 0x52, 0xf4, 0xfe, 0xf6, 0xb4, 0xac, 0x7b, 0x08, 0x4a, 0x57, 0x57, 0xfa, 0xa0, 0x0b, 0x63, 0x28, 0x4a, 0x7d, 0xbb, 0xb7, 0xa8,
+ 0x2b, 0x6b, 0x08, 0x42, 0xd7, 0xf6, 0xaa, 0x00, 0x2b, 0x6b, 0x86, 0x39, 0xad, 0x7a, 0x82, 0x38, 0x0a, 0x73, 0x07, 0x4a, 0x8a, 0x09, 0xa2, 0xe0, 0x6b, 0x73, 0x89, 0x5a, 0xa2, 0x80, 0xbf, 0x4d,
+ 0xcc, 0x83, 0x68, 0x52, 0xfa, 0xaa, 0xaa, 0x09, 0xec, 0x8b, 0x08, 0x52, 0xbf, 0xea, 0x82, 0xdc, 0x4b, 0x7b, 0x27, 0x4a, 0xa0, 0x70, 0x7b, 0xee, 0x2a, 0x73, 0x66, 0x31, 0xe2, 0xab, 0xde, 0xaa,
+ 0xaa, 0x62, 0x86, 0x39, 0x17, 0xbf, 0xca, 0xb0, 0xea, 0x72, 0xc7, 0x41, 0x02, 0xfb, 0x8b, 0x97, 0x0a, 0x73, 0xe7, 0x41, 0x6a, 0x9f, 0xfe, 0xf8, 0xea, 0x72, 0xe7, 0x41, 0x63, 0x8b, 0xab, 0xdd,
+ 0x2a, 0x73, 0xc7, 0x41, 0x6f, 0xae, 0xe0, 0x37, 0xea, 0x6a, 0xc7, 0x41, 0x7c, 0xee, 0x37, 0xef, 0xca, 0x62, 0xa6, 0x39, 0xfc, 0xdd, 0xba, 0xff, 0xea, 0x6a, 0x08, 0x4a, 0xff, 0xbf, 0x2f, 0xfd,
+ 0xaa, 0x62, 0xa6, 0x39, 0xd7, 0xce, 0xfc, 0xe0, 0x49, 0x52, 0x66, 0x39, 0xfa, 0x2a, 0xaa, 0xd8, 0xa9, 0x5a, 0xc7, 0x39, 0x2d, 0xaa, 0xfa, 0xfb, 0x0b, 0x6b, 0x28, 0x4a, 0xb2, 0xb7, 0x0d, 0xd5,
+ 0x2b, 0x73, 0xe7, 0x41, 0x2e, 0x7a, 0xa0, 0x8b, 0x4f, 0x9c, 0xa6, 0x39, 0xde, 0xa3, 0xbe, 0xfa, 0xed, 0x7b, 0x64, 0x51, 0x7f, 0x7a, 0xf8, 0x7e, 0xa4, 0x61, 0x22, 0x59, 0x7a, 0x5e, 0xe2, 0xfa,
+ 0x44, 0x59, 0x02, 0x49, 0xbf, 0xe8, 0xb8, 0x98, 0x64, 0x61, 0x23, 0x51, 0x7f, 0xff, 0x27, 0x17, 0xa4, 0x61, 0x23, 0x51, 0xd5, 0xfd, 0xe8, 0xca, 0x64, 0x61, 0x02, 0x51, 0x7e, 0xfa, 0xf8, 0xfe,
+ 0x43, 0x59, 0x22, 0x49, 0xaa, 0x9a, 0x8f, 0x2a, 0x43, 0x59, 0x02, 0x49, 0x7e, 0xaa, 0x2a, 0x0c, 0x64, 0x59, 0x02, 0x51, 0x89, 0x0b, 0xae, 0x28, 0x84, 0x59, 0x03, 0x51, 0xff, 0x7f, 0x57, 0x78,
+ 0x64, 0x59, 0x03, 0x49, 0xff, 0x77, 0xb5, 0x35, 0x64, 0x51, 0xe2, 0x48, 0xf7, 0xff, 0xf6, 0x8a, 0x84, 0x61, 0x02, 0x49, 0xd5, 0xf5, 0xfd, 0x0a, 0xa4, 0x69, 0x23, 0x51, 0xfd, 0xa9, 0x02, 0x82,
+ 0xa3, 0x69, 0x64, 0x59, 0xed, 0xf7, 0xa8, 0x22, 0xa4, 0x69, 0x63, 0x61, 0xae, 0xca, 0xf2, 0x6e, 0xc4, 0x69, 0x43, 0x59, 0xae, 0xfb, 0xb7, 0xb3, 0xc4, 0x69, 0x43, 0x61, 0xab, 0xaa, 0xb7, 0x0e,
+ 0xc4, 0x69, 0x43, 0x61, 0xa8, 0xde, 0xfc, 0x7a, 0x83, 0x69, 0x63, 0x59, 0xaa, 0xb7, 0x0b, 0xaa, 0xc3, 0x69, 0x42, 0x61, 0xa2, 0xf5, 0xaa, 0xea, 0xa4, 0x69, 0x62, 0x61, 0x34, 0x88, 0xea, 0xbd,
+ 0xc4, 0x69, 0x62, 0x59, 0xfa, 0x8a, 0xb8, 0x7f, 0xc4, 0x69, 0x62, 0x61, 0x7e, 0xaf, 0xaa, 0xff, 0xc4, 0x69, 0x42, 0x61, 0xba, 0xfa, 0x28, 0xde, 0xc3, 0x69, 0x62, 0x61, 0xef, 0xeb, 0xfc, 0x7f,
+ 0xa4, 0x69, 0x63, 0x59, 0xae, 0xd7, 0xd7, 0x7f, 0xc7, 0x7a, 0x43, 0x59, 0xd5, 0xbf, 0xad, 0x8d, 0x69, 0x93, 0x25, 0x6a, 0xb5, 0x07, 0x81, 0xa8, 0x48, 0x93, 0xa6, 0x82, 0xdc, 0xbe, 0x3f, 0x17,
+ 0x2c, 0xb4, 0xc7, 0x8a, 0x29, 0x2b, 0xaa, 0x62, 0xad, 0xbc, 0x86, 0x82, 0x2a, 0x2a, 0x82, 0x25, 0xae, 0xc4, 0x64, 0x49, 0xd0, 0xf8, 0xff, 0xe8, 0xaa, 0x6a, 0xe7, 0x49, 0xfe, 0xef, 0xab, 0x68,
+ 0xeb, 0x72, 0x87, 0x39, 0x5f, 0xfd, 0x0b, 0x0b, 0x0b, 0x73, 0x66, 0x39, 0x95, 0xb7, 0xbc, 0xa8, 0x4c, 0x7b, 0x48, 0x5a, 0xfd, 0x7f, 0x5a, 0x37, 0xea, 0x72, 0xc8, 0x49, 0x8a, 0xeb, 0xf7, 0x9f,
+ 0xeb, 0x72, 0xa6, 0x41, 0x7b, 0x25, 0xa7, 0xfc, 0xca, 0x62, 0x87, 0x41, 0xbb, 0x2c, 0x37, 0xfd, 0x8a, 0x62, 0xa7, 0x41, 0x7e, 0x5e, 0x78, 0xff, 0x69, 0x5a, 0x66, 0x31, 0x0a, 0xbf, 0xbf, 0x7f,
+ 0x49, 0x52, 0xa7, 0x41, 0xda, 0x7f, 0x5e, 0x3b, 0xaa, 0x6a, 0xa7, 0x39, 0xff, 0xd5, 0x5d, 0xa0, 0xaa, 0x6a, 0xe8, 0x51, 0xfb, 0xbe, 0x58, 0xde, 0xaa, 0x6a, 0xc7, 0x49, 0xaa, 0xa8, 0x8b, 0xd7,
+ 0x0a, 0x6b, 0x08, 0x52, 0x8b, 0xdf, 0x5f, 0xf7, 0x0a, 0x73, 0xa7, 0x39, 0x2a, 0xfe, 0xfd, 0xf7, 0x6b, 0x7b, 0x27, 0x52, 0xa0, 0x85, 0xaf, 0x2d, 0x6c, 0x83, 0x08, 0x4a, 0xfa, 0x8a, 0x5a, 0x7e,
+ 0xca, 0x62, 0xc7, 0x41, 0xbc, 0xf7, 0xfb, 0xf0, 0x28, 0x4a, 0x87, 0x39, 0x6c, 0xdf, 0x5f, 0x54, 0xe9, 0x62, 0xa7, 0x41, 0x3d, 0xb5, 0xd5, 0xd5, 0x0a, 0x6b, 0x07, 0x4a, 0x00, 0xa2, 0xa9, 0x2d,
+ 0x4b, 0x73, 0x28, 0x52, 0xc2, 0x72, 0xde, 0xde, 0xca, 0x62, 0x49, 0x52, 0xb7, 0xab, 0x2b, 0x85, 0x8a, 0x62, 0xc7, 0x41, 0xb8, 0xe6, 0x58, 0x7e, 0xa9, 0x5a, 0x66, 0x39, 0xf2, 0x7f, 0xff, 0xf9,
+ 0x4d, 0xa4, 0xc8, 0x7a, 0xad, 0xab, 0x0b, 0x00, 0x0b, 0x9c, 0x84, 0x49, 0x2c, 0x5c, 0x5c, 0x58, 0x4a, 0x73, 0x86, 0x39, 0xf8, 0xdd, 0x55, 0x2d, 0xef, 0xac, 0xc7, 0x41, 0x55, 0xd5, 0xb5, 0x82,
+ 0xce, 0xa4, 0xc6, 0x41, 0xf5, 0xab, 0x60, 0x5f, 0xae, 0x9c, 0x04, 0x31, 0xbe, 0x02, 0x55, 0xd7, 0x8d, 0xa4, 0x44, 0x29, 0xa8, 0xe0, 0x55, 0x55, 0x89, 0x83, 0x44, 0x31, 0xe0, 0xfd, 0xff, 0xfd,
+ 0x67, 0x5a, 0x85, 0x39, 0xe8, 0x7a, 0xdf, 0xf5, 0xe7, 0x49, 0x24, 0x29, 0xde, 0x77, 0xf0, 0xa0, 0x28, 0x4a, 0x04, 0x29, 0x5f, 0xea, 0xbf, 0x62, 0x4c, 0x6b, 0x65, 0x31, 0xd7, 0xf5, 0xff, 0x21,
+ 0xad, 0x83, 0x65, 0x31, 0x5d, 0xd5, 0x2b, 0x00, 0xed, 0x8b, 0x66, 0x31, 0xf5, 0xef, 0xb8, 0x0a, 0x8f, 0xa4, 0x46, 0x29, 0x57, 0xbb, 0xaa, 0x02, 0xae, 0xb4, 0xa7, 0x39, 0x55, 0xfa, 0x2a, 0xab,
+ 0xaf, 0xb4, 0xe7, 0x39, 0xad, 0xae, 0xac, 0x02, 0x0e, 0xbd, 0x2b, 0x73, 0x75, 0x5e, 0x0a, 0xf8, 0x6e, 0xa4, 0x47, 0x62, 0xe3, 0x02, 0x00, 0x70, 0xae, 0xac, 0x86, 0x39, 0x02, 0xaa, 0x80, 0x55,
+ 0x0b, 0x9c, 0xa6, 0x31, 0x80, 0x28, 0xea, 0x55, 0x8e, 0xa4, 0xc7, 0x39, 0xad, 0x80, 0xd7, 0x55, 0x8e, 0xac, 0xe8, 0x41, 0x0a, 0x5f, 0x5d, 0x75, 0x2b, 0xa4, 0xe8, 0x39, 0xe8, 0x5d, 0xff, 0x77,
+ 0x6a, 0x4a, 0xc7, 0x39, 0x78, 0x7b, 0xe8, 0x80, 0x0b, 0x63, 0x67, 0x31, 0x2f, 0x57, 0x57, 0xdf, 0x49, 0x52, 0x86, 0x31, 0xe8, 0xe5, 0xf7, 0x5b, 0xa4, 0x59, 0x23, 0x49, 0xd5, 0xfd, 0xaa, 0xe2,
+ 0x64, 0x59, 0x42, 0x51, 0xdb, 0xd7, 0xde, 0x6f, 0xc4, 0x61, 0x22, 0x49, 0xbf, 0xbf, 0x2f, 0xb5, 0xa4, 0x61, 0x43, 0x51, 0x76, 0xfa, 0xa8, 0xf5, 0xa4, 0x61, 0x23, 0x59, 0x95, 0xaf, 0x02, 0xfa,
+ 0x84, 0x61, 0x42, 0x59, 0xa7, 0x2e, 0xdb, 0x7d, 0xa4, 0x61, 0x42, 0x59, 0xfe, 0xb0, 0x77, 0x55, 0x84, 0x59, 0x43, 0x51, 0x7e, 0x5a, 0xfa, 0xff, 0x64, 0x59, 0x03, 0x51, 0x2c, 0xfa, 0x02, 0x2b,
+ 0x63, 0x59, 0x03, 0x51, 0x0a, 0xad, 0xfe, 0xa8, 0x64, 0x59, 0x23, 0x51, 0xa2, 0xb7, 0xfa, 0xd0, 0x25, 0x72, 0x43, 0x51, 0x2d, 0xa9, 0xb5, 0x75, 0x04, 0x72, 0x43, 0x59, 0x20, 0xbe, 0xb7, 0xb7,
+ 0x85, 0x7a, 0x43, 0x61, 0x0a, 0x6f, 0x7e, 0x7f, 0x24, 0x72, 0x22, 0x59, 0xf0, 0xd5, 0x55, 0xb7, 0xe7, 0x92, 0xc3, 0x69, 0xb5, 0xbd, 0xb5, 0x2f, 0xe6, 0x8a, 0x45, 0x7a, 0xa5, 0xfb, 0x5f, 0xac,
+ 0xea, 0xab, 0x86, 0x82, 0x2f, 0x2d, 0x2d, 0x2b, 0x8d, 0xbc, 0x27, 0x52, 0x54, 0x54, 0x54, 0xfc, 0x0a, 0x6b, 0xe7, 0x41, 0x23, 0x7f, 0xad, 0x15, 0x8b, 0x7b, 0x08, 0x4a, 0xa8, 0xad, 0xff, 0x82,
+ 0x4b, 0x7b, 0x89, 0x5a, 0xfa, 0x2a, 0xbb, 0x52, 0x6c, 0x7b, 0xe7, 0x51, 0xba, 0xaa, 0xa2, 0x77, 0x4b, 0x73, 0x28, 0x62, 0x82, 0x2a, 0x00, 0xfd, 0xac, 0x83, 0x07, 0x4a, 0x2a, 0x2a, 0xe2, 0x5f,
+ 0x0c, 0x94, 0xe8, 0x49, 0xe0, 0x5f, 0x7d, 0xed, 0xea, 0x72, 0x48, 0x5a, 0xaf, 0xad, 0xad, 0x2b, 0x2b, 0x7b, 0x07, 0x5a, 0x62, 0x3a, 0xaa, 0xf0, 0x88, 0x62, 0xe7, 0x49, 0x09, 0xd6, 0x88, 0xef,
+ 0x4c, 0x83, 0x86, 0x41, 0xf8, 0xdf, 0x7a, 0xfb, 0xca, 0x62, 0xe7, 0x41, 0x2b, 0xfb, 0xad, 0xdf, 0x89, 0x6a, 0xa7, 0x39, 0xdc, 0xf8, 0xaa, 0xaf, 0xca, 0x62, 0x08, 0x4a, 0xc7, 0xeb, 0xdf, 0xbd,
+ 0xca, 0x62, 0x08, 0x42, 0xbf, 0xbd, 0x5f, 0xf0, 0xea, 0x6a, 0xc7, 0x41, 0xda, 0x2b, 0xb9, 0x3f, 0x0a, 0x6b, 0xe7, 0x41, 0xd7, 0x56, 0xbb, 0xe0, 0x48, 0x4a, 0xa7, 0x39, 0xaa, 0xfe, 0xec, 0xf7,
+ 0xc9, 0x6a, 0xc7, 0x39, 0x8b, 0xdd, 0xb9, 0xdd, 0x0b, 0x73, 0x86, 0x41, 0xdf, 0x5a, 0x58, 0x72, 0x69, 0x5a, 0x66, 0x39, 0xb2, 0x00, 0x17, 0xfe, 0x28, 0x52, 0xa7, 0x39, 0x38, 0x5e, 0x72, 0xaf,
+ 0xa9, 0x6a, 0x87, 0x31, 0x2b, 0xb7, 0x95, 0x57, 0x2a, 0x73, 0xa7, 0x41, 0xfe, 0xab, 0x2b, 0xfd, 0x2b, 0x73, 0x65, 0x51, 0x5e, 0x78, 0xfe, 0xee, 0x23, 0x61, 0x84, 0x59, 0xbf, 0xef, 0xfd, 0x29,
+ 0x84, 0x69, 0x22, 0x51, 0x57, 0xfb, 0x02, 0xaa, 0x84, 0x61, 0x02, 0x49, 0xd7, 0x20, 0x00, 0x82, 0x63, 0x61, 0x02, 0x51, 0xcb, 0xda, 0xd8, 0xa0, 0x63, 0x59, 0x02, 0x51, 0x55, 0x5f, 0xde, 0x00,
+ 0x63, 0x59, 0x02, 0x51, 0x2d, 0x2b, 0xea, 0xa2, 0x64, 0x59, 0x22, 0x51, 0x83, 0xb7, 0xda, 0xda, 0x64, 0x61, 0x22, 0x51, 0xa2, 0xbf, 0x3d, 0xb5, 0x84, 0x61, 0x23, 0x59, 0x3e, 0xa3, 0x9f, 0xbf,
+ 0x84, 0x61, 0x42, 0x59, 0xaf, 0x68, 0xeb, 0xcb, 0x83, 0x61, 0x22, 0x59, 0xae, 0x29, 0xba, 0xfa, 0xa4, 0x69, 0x42, 0x59, 0xef, 0xea, 0xa3, 0xaf, 0xc3, 0x69, 0x83, 0x61, 0xc8, 0x89, 0x2a, 0x7d,
+ 0x04, 0x6a, 0x83, 0x61, 0xbd, 0xab, 0x8a, 0xbb, 0xe4, 0x71, 0x62, 0x61, 0x7f, 0x68, 0xe0, 0xfe, 0xa3, 0x71, 0x64, 0x61, 0x2f, 0xbb, 0xef, 0x55, 0xa3, 0x69, 0x43, 0x59, 0x82, 0xa8, 0xea, 0xfd,
+ 0x84, 0x61, 0x43, 0x59, 0x80, 0xaa, 0x1a, 0x1b, 0xa4, 0x69, 0x63, 0x59, 0x8f, 0x8b, 0xaf, 0xa7, 0xa3, 0x61, 0x44, 0x59, 0xc0, 0xee, 0xf8, 0x6e, 0xa4, 0x61, 0x43, 0x59, 0x2d, 0x2a, 0xaa, 0xd5,
+ 0xc4, 0x61, 0x03, 0x51, 0xaa, 0x8a, 0xaa, 0xfd, 0x84, 0x61, 0x22, 0x59, 0x8a, 0x8a, 0xf6, 0xe3, 0x83, 0x61, 0xe2, 0x48, 0x80, 0x02, 0xde, 0xaa, 0x84, 0x59, 0x02, 0x51, 0x2a, 0x2a, 0xbd, 0x2e,
+ 0x45, 0x72, 0x63, 0x59, 0x55, 0xd5, 0x3d, 0x02, 0x69, 0x9b, 0xa4, 0x61, 0x2d, 0xdf, 0xa7, 0x0b, 0xaa, 0x9b, 0x65, 0x7a, 0x76, 0xf9, 0xaa, 0x08, 0x2c, 0xb4, 0x86, 0x7a, 0xb5, 0x0b, 0x0a, 0x02,
+ 0x4c, 0xb4, 0x8a, 0x9b, 0xbd, 0xaa, 0x20, 0x80, 0x0f, 0xcd, 0xeb, 0xab, 0xb5, 0xbf, 0xab, 0x2b, 0x50, 0xdd, 0xe7, 0x59, 0xfa, 0xf8, 0x7c, 0x57, 0x6a, 0x5a, 0xa7, 0x49, 0xbe, 0x97, 0xff, 0xe3,
+ 0xa9, 0x62, 0xc7, 0x51, 0xeb, 0x2b, 0xbd, 0xf5, 0xea, 0x72, 0xe8, 0x49, 0xfa, 0x7e, 0xaf, 0x2f, 0xaa, 0x6a, 0xe7, 0x49, 0x87, 0x73, 0xe8, 0x08, 0x4c, 0x83, 0x86, 0x41, 0xab, 0x8d, 0xab, 0xbb,
+ 0x2c, 0x7b, 0x86, 0x41, 0xe2, 0xfe, 0xf0, 0x78, 0xaa, 0x6a, 0x67, 0x39, 0x7f, 0xfb, 0xba, 0x0f, 0x4b, 0x73, 0x87, 0x41, 0xfd, 0xfd, 0xaf, 0x80, 0xca, 0x6a, 0xc7, 0x41, 0x65, 0xcf, 0xe8, 0x72,
+ 0x69, 0x52, 0xa7, 0x39, 0xbd, 0x3a, 0x9f, 0xfd, 0xa9, 0x62, 0xc6, 0x31, 0x20, 0x9b, 0xfe, 0xbf, 0x49, 0x62, 0xa6, 0x31, 0xaa, 0xea, 0x8a, 0x37, 0xca, 0x6a, 0x08, 0x52, 0xb7, 0xa9, 0x89, 0xc8,
+ 0xeb, 0x6a, 0x24, 0x29, 0xa0, 0xbe, 0x08, 0x9a, 0xaa, 0x62, 0x65, 0x31, 0x82, 0x2b, 0xad, 0xef, 0x6c, 0x83, 0xe7, 0x41, 0xa2, 0xf7, 0xf5, 0xd5, 0xca, 0x6a, 0x08, 0x4a, 0xf8, 0x29, 0x0e, 0x27,
+ 0xaa, 0x6a, 0x66, 0x31, 0xfa, 0x7a, 0xfe, 0xf8, 0xc8, 0x41, 0x66, 0x31, 0xff, 0x7d, 0xa7, 0xf0, 0xc7, 0x41, 0x66, 0x31, 0x8b, 0xfa, 0xbe, 0xb5, 0x69, 0x5a, 0xa7, 0x39, 0x25, 0x2d, 0xd5, 0xf5,
+ 0x89, 0x62, 0xa8, 0x49, 0xe8, 0x5e, 0xde, 0xaf, 0x49, 0x5a, 0xa7, 0x41, 0xe2, 0x9a, 0x88, 0xe0, 0x08, 0x4a, 0x87, 0x39, 0x2f, 0x96, 0xae, 0xb7, 0xaa, 0x62, 0xe7, 0x41, 0x7f, 0xed, 0x8b, 0x83,
+ 0x0f, 0xbd, 0x48, 0x52, 0x8a, 0x5f, 0xf7, 0xff, 0x0f, 0xad, 0xc6, 0x49, 0xf7, 0xaf, 0xe2, 0x55, 0xef, 0xac, 0x44, 0x39, 0x2b, 0xe0, 0xf5, 0x75, 0x8b, 0xac, 0x45, 0x31, 0x5c, 0x55, 0x57, 0xf5,
+ 0x28, 0x42, 0x24, 0x31, 0xd5, 0xff, 0xbb, 0x22, 0x4c, 0x7b, 0x65, 0x31, 0xdd, 0x55, 0xdf, 0x2b, 0xac, 0x83, 0xa6, 0x39, 0x55, 0x75, 0x7f, 0x28, 0x2d, 0x94, 0x86, 0x39, 0x55, 0x57, 0xff, 0x00,
+ 0x0d, 0x94, 0xa6, 0x39, 0x55, 0xd5, 0x23, 0x78, 0x8f, 0xa4, 0x85, 0x39, 0x55, 0xf5, 0x00, 0xa5, 0x8e, 0xa4, 0xc7, 0x41, 0xa5, 0xaf, 0xba, 0x82, 0xcf, 0xb4, 0x2c, 0x7b, 0xd7, 0xaa, 0xbe, 0x0b,
+ 0xae, 0xb4, 0xaa, 0x72, 0xaf, 0xaa, 0x02, 0x78, 0xae, 0xb4, 0xc5, 0x49, 0x0a, 0x00, 0xf8, 0x55, 0xce, 0xb4, 0x66, 0x39, 0xbe, 0xa0, 0x5f, 0x55, 0x8e, 0xb4, 0xc7, 0x41, 0x08, 0x7a, 0x55, 0x55,
+ 0xcd, 0xbc, 0x87, 0x39, 0x80, 0x55, 0x55, 0x55, 0x28, 0x83, 0x47, 0x31, 0xfc, 0x55, 0x57, 0x55, 0xe8, 0x49, 0x67, 0x29, 0xd0, 0xaf, 0xb5, 0xed, 0xe8, 0x41, 0x87, 0x31, 0x37, 0xe7, 0x3f, 0xef,
+ 0x29, 0x42, 0x87, 0x31, 0x0a, 0xdd, 0xd7, 0xe2, 0x09, 0x42, 0x87, 0x31, 0xbe, 0xb8, 0xb4, 0xe9, 0x08, 0x42, 0x66, 0x31, 0x82, 0xc0, 0x8b, 0x27, 0x6a, 0x52, 0x66, 0x29, 0x2b, 0xf5, 0x5f, 0x77,
+ 0x8a, 0x52, 0x87, 0x29, 0x80, 0x0b, 0xad, 0xdd, 0x4a, 0x4a, 0x47, 0x29, 0x8a, 0xa8, 0xa8, 0xd8, 0x29, 0x4a, 0x86, 0x39, 0x78, 0x6b, 0xf7, 0xea, 0x84, 0x51, 0x23, 0x49, 0xfc, 0x7e, 0x7e, 0xbe,
+ 0x64, 0x59, 0x23, 0x49, 0xdb, 0x6f, 0xab, 0x88, 0x64, 0x59, 0x23, 0x49, 0xaf, 0xff, 0xaf, 0xbe, 0xa4, 0x59, 0x23, 0x51, 0x55, 0xd5, 0xff, 0x2f, 0x84, 0x59, 0x43, 0x51, 0xdf, 0x7b, 0x7e, 0x6c,
+ 0x83, 0x61, 0x22, 0x51, 0xea, 0xbe, 0xaf, 0xc9, 0x63, 0x59, 0x23, 0x59, 0x2a, 0xff, 0xfb, 0xa8, 0x64, 0x61, 0x02, 0x59, 0x88, 0xab, 0xb0, 0xda, 0x43, 0x61, 0x22, 0x59, 0xbf, 0x05, 0x8e, 0x97,
+ 0x64, 0x59, 0x02, 0x51, 0x8b, 0xa8, 0xaa, 0xef, 0x63, 0x59, 0x02, 0x51, 0xae, 0x8a, 0x08, 0x6e, 0x63, 0x59, 0x22, 0x51, 0xbd, 0xda, 0xbf, 0xd0, 0x64, 0x61, 0x22, 0x51, 0x02, 0xeb, 0xaa, 0xea,
+ 0x84, 0x61, 0x43, 0x59, 0xec, 0x57, 0xd5, 0x57, 0x45, 0x7a, 0x43, 0x59, 0x27, 0xb5, 0xbd, 0xa5, 0xc6, 0x8a, 0xe5, 0x71, 0x8a, 0xed, 0xbf, 0xbf, 0xe7, 0x8a, 0x45, 0x7a, 0xfc, 0xbf, 0x2a, 0x09,
+ 0x2b, 0xb4, 0xe7, 0x8a, 0xbd, 0x2f, 0x2f, 0x2f, 0xce, 0xc4, 0x07, 0x52, 0x5c, 0x54, 0xf6, 0x56, 0xc9, 0x62, 0xa6, 0x41, 0xb8, 0xed, 0xbe, 0xeb, 0x0a, 0x6b, 0xc7, 0x41, 0x55, 0x2f, 0xfe, 0xaf,
+ 0xea, 0x6a, 0xe7, 0x49, 0xa9, 0x0a, 0xe2, 0xde, 0xea, 0x72, 0x27, 0x52, 0xfe, 0xfb, 0xed, 0x2a, 0x0a, 0x73, 0xe7, 0x49, 0xbe, 0xb7, 0x2d, 0xc8, 0xea, 0x72, 0xa6, 0x49, 0xc0, 0xd7, 0x80, 0xb9,
+ 0xca, 0x6a, 0xc7, 0x41, 0x75, 0x2a, 0x88, 0xb2, 0x0b, 0x73, 0xe7, 0x49, 0xed, 0x27, 0xd7, 0xff, 0x2b, 0x83, 0xe6, 0x51, 0x2a, 0x7a, 0xea, 0xa8, 0x0b, 0x83, 0x87, 0x41, 0xfc, 0xf6, 0x57, 0x57,
+ 0xa9, 0x72, 0x87, 0x39, 0xf2, 0xe2, 0x7b, 0xbf, 0x48, 0x52, 0x87, 0x39, 0xa3, 0xba, 0xe9, 0xae, 0xea, 0x72, 0x87, 0x41, 0xa3, 0xfa, 0x7d, 0x57, 0x28, 0x52, 0x66, 0x31, 0x06, 0xea, 0xae, 0xb5,
+ 0xe8, 0x49, 0x45, 0x21, 0x2a, 0xda, 0xfa, 0xae, 0x08, 0x4a, 0xa7, 0x39, 0x96, 0x57, 0xcb, 0xab, 0xca, 0x62, 0x67, 0x31, 0x2a, 0xfd, 0xbf, 0x5f, 0xaa, 0x62, 0xe7, 0x39, 0xbe, 0xe2, 0xd5, 0xff,
+ 0x28, 0x52, 0xc6, 0x39, 0x0e, 0x3a, 0xe2, 0x7a, 0xaa, 0x62, 0xc7, 0x41, 0xa0, 0xbe, 0xad, 0xbd, 0x49, 0x5a, 0xa7, 0x41, 0xad, 0xe0, 0xa2, 0x98, 0x48, 0x5a, 0xa7, 0x41, 0xee, 0x3f, 0x98, 0x34,
+ 0x89, 0x6a, 0x87, 0x39, 0x57, 0x70, 0xfa, 0xea, 0x49, 0x52, 0x66, 0x39, 0xbf, 0xfd, 0xf7, 0xfc, 0x28, 0x5a, 0x66, 0x31, 0xab, 0xdf, 0xbf, 0x2f, 0x42, 0x69, 0x06, 0x52, 0x0b, 0xab, 0xad, 0xbd,
+ 0xa4, 0x69, 0x63, 0x61, 0x6e, 0xde, 0x81, 0x5b, 0x83, 0x69, 0x22, 0x59, 0xc8, 0xf2, 0xe8, 0x7f, 0x63, 0x69, 0x02, 0x51, 0xa2, 0xbe, 0xfa, 0xf5, 0x63, 0x61, 0x22, 0x51, 0xa8, 0xf2, 0xbf, 0xf7,
+ 0x63, 0x59, 0x22, 0x51, 0x9f, 0xe6, 0xe2, 0xf9, 0x64, 0x59, 0x22, 0x51, 0x72, 0xf9, 0x78, 0xfa, 0x43, 0x59, 0x03, 0x49, 0x0a, 0xa2, 0xbe, 0xda, 0x84, 0x61, 0x03, 0x51, 0xab, 0x0b, 0xf5, 0xd7,
+ 0x63, 0x61, 0x02, 0x51, 0x08, 0xae, 0xff, 0xf7, 0x43, 0x59, 0x22, 0x51, 0x82, 0xe0, 0x75, 0xdb, 0x83, 0x61, 0x02, 0x49, 0x2b, 0x95, 0x55, 0xff, 0xc4, 0x69, 0x23, 0x59, 0xa2, 0xaa, 0x7f, 0xff,
+ 0xe4, 0x69, 0x23, 0x59, 0x8a, 0x8b, 0x77, 0xff, 0xc4, 0x69, 0x02, 0x51, 0xa8, 0xfe, 0xd7, 0xff, 0xe5, 0x69, 0x22, 0x51, 0xbf, 0x54, 0x57, 0x57, 0xa4, 0x61, 0x23, 0x59, 0xa8, 0xef, 0xf5, 0x9f,
+ 0x84, 0x61, 0x23, 0x59, 0x88, 0x7b, 0xaf, 0xf8, 0x84, 0x61, 0x23, 0x59, 0xff, 0xee, 0xb6, 0x8a, 0x84, 0x61, 0x43, 0x59, 0xb3, 0x0a, 0xa7, 0xaa, 0xa4, 0x61, 0x63, 0x59, 0x0f, 0xba, 0xf9, 0x8d,
+ 0xc4, 0x69, 0x63, 0x59, 0xe8, 0xea, 0xff, 0x5f, 0x84, 0x61, 0x23, 0x59, 0xb8, 0xf8, 0xd0, 0xa1, 0xc4, 0x61, 0x23, 0x59, 0xfe, 0xdf, 0xba, 0x2f, 0x86, 0x72, 0x43, 0x59, 0xd5, 0x35, 0x0b, 0x0a,
+ 0xe7, 0x82, 0x46, 0x72, 0xbd, 0x2b, 0x8b, 0x83, 0xaa, 0x9b, 0x48, 0x93, 0xfb, 0x2a, 0x0d, 0x2a, 0x0b, 0xac, 0x89, 0x9b, 0xb7, 0x2f, 0x2f, 0x2a, 0x4c, 0xb4, 0xeb, 0xa3, 0x0d, 0xaf, 0xab, 0x2b,
+ 0xce, 0xc4, 0x0b, 0xac, 0xdf, 0xb5, 0xbf, 0x2b, 0x50, 0xdd, 0xa5, 0x51, 0x8a, 0x42, 0x72, 0x58, 0x48, 0x62, 0xa7, 0x41, 0xa8, 0xd5, 0xfe, 0x7e, 0x08, 0x5a, 0x87, 0x41, 0xa8, 0xa2, 0xba, 0xb7,
+ 0xea, 0x7a, 0xc7, 0x49, 0xb5, 0xad, 0xad, 0x2d, 0xea, 0x82, 0x29, 0x62, 0x5f, 0xeb, 0xea, 0xe0, 0xeb, 0x7a, 0x27, 0x52, 0x9f, 0xab, 0x02, 0x0d, 0x6c, 0x8b, 0x48, 0x62, 0xcb, 0xfb, 0xfe, 0x57,
+ 0xea, 0x7a, 0x87, 0x39, 0xea, 0x7a, 0x70, 0x7e, 0xca, 0x7a, 0xa7, 0x41, 0x0f, 0x0b, 0x85, 0xed, 0xea, 0x7a, 0xa7, 0x41, 0x60, 0xa8, 0xfe, 0x7d, 0xaa, 0x62, 0x87, 0x41, 0xf8, 0xff, 0xd5, 0x2b,
+ 0x28, 0x52, 0x67, 0x31, 0x7f, 0x5e, 0x7e, 0xe8, 0x48, 0x4a, 0x46, 0x31, 0x2f, 0x9d, 0xf5, 0xfe, 0x68, 0x5a, 0xa7, 0x39, 0x8a, 0xff, 0x5f, 0xdd, 0xea, 0x6a, 0x86, 0x39, 0xb5, 0x2f, 0xaf, 0x2f,
+ 0xaa, 0x72, 0xe7, 0x41, 0xa8, 0xca, 0x7e, 0x5d, 0x49, 0x52, 0xc8, 0x41, 0x50, 0xaa, 0xd7, 0xe3, 0x89, 0x5a, 0xc8, 0x49, 0x21, 0xa7, 0x7f, 0xaa, 0xeb, 0x72, 0xc7, 0x49, 0xa8, 0xaf, 0xf5, 0xca,
+ 0x49, 0x5a, 0x87, 0x39, 0xd6, 0x7c, 0x57, 0xfa, 0xc8, 0x41, 0x86, 0x39, 0x7d, 0x57, 0xbd, 0x7a, 0xa7, 0x39, 0x66, 0x31, 0xd7, 0xbe, 0xab, 0x05, 0x08, 0x4a, 0x87, 0x39, 0xbd, 0x5b, 0x8b, 0xad,
+ 0x89, 0x5a, 0xa7, 0x39, 0xef, 0xfd, 0xbd, 0x0f, 0xaa, 0x6a, 0x87, 0x39, 0xaa, 0x77, 0x2a, 0x80, 0xaa, 0x62, 0xa7, 0x41, 0x55, 0x5d, 0xfc, 0x8b, 0x89, 0x5a, 0xa7, 0x41, 0xcd, 0x8b, 0xfa, 0xa7,
+ 0x4b, 0x7b, 0xc6, 0x41, 0x57, 0x75, 0x2f, 0xbf, 0x2c, 0x94, 0xa6, 0x39, 0x55, 0xbf, 0xe0, 0x5e, 0x0b, 0x9c, 0xa6, 0x41, 0xe9, 0xe0, 0x57, 0xd5, 0x8f, 0x9c, 0xa6, 0x39, 0xaf, 0xf5, 0xb5, 0x2a,
+ 0xce, 0xb4, 0xe6, 0x49, 0xff, 0xd5, 0x22, 0xe8, 0xcf, 0xb4, 0xa7, 0x41, 0xff, 0xad, 0x80, 0x55, 0x4d, 0x9c, 0xa7, 0x41, 0xd7, 0x08, 0x7a, 0x55, 0xec, 0x9b, 0xa7, 0x39, 0xd7, 0x80, 0x55, 0x55,
+ 0xaf, 0xa4, 0x66, 0x31, 0xc2, 0x57, 0x57, 0x55, 0x8a, 0x83, 0x67, 0x31, 0x2f, 0x7d, 0xf7, 0x55, 0xa7, 0x72, 0xa8, 0x31, 0x82, 0x55, 0x7d, 0x55, 0x29, 0x7b, 0xa8, 0x31, 0xc2, 0xbd, 0x55, 0xfd,
+ 0x0b, 0x63, 0xa7, 0x39, 0xef, 0x78, 0xff, 0xd7, 0x69, 0x52, 0xa7, 0x31, 0x58, 0x5f, 0xbf, 0xbf, 0x29, 0x42, 0x67, 0x31, 0x69, 0x7f, 0xea, 0x88, 0x08, 0x42, 0x87, 0x39, 0x2d, 0xb5, 0x9d, 0xfc,
+ 0xc8, 0x39, 0x26, 0x29, 0x00, 0xa8, 0x08, 0xdc, 0xa8, 0x39, 0x47, 0x29, 0x80, 0x08, 0x80, 0xa7, 0xc8, 0x39, 0x67, 0x31, 0x2a, 0xa5, 0x5f, 0xfc, 0xe8, 0x41, 0x87, 0x31, 0xe7, 0xaf, 0x3d, 0xd9,
+ 0x08, 0x42, 0x87, 0x31, 0xab, 0xb7, 0x3a, 0x56, 0x29, 0x42, 0xa7, 0x31, 0xff, 0x27, 0xba, 0xd7, 0x29, 0x42, 0x87, 0x39, 0xbf, 0xe0, 0xbe, 0x5f, 0x09, 0x42, 0x67, 0x31, 0xb7, 0xdf, 0x3a, 0xfa,
+ 0xe8, 0x41, 0x87, 0x31, 0xaf, 0xae, 0xef, 0xef, 0x08, 0x3a, 0x87, 0x31, 0xa3, 0x9d, 0xfd, 0xe2, 0x49, 0x4a, 0x86, 0x41, 0x6a, 0xe8, 0xa8, 0xaf, 0x23, 0x51, 0xa5, 0x49, 0x2b, 0xab, 0xa3, 0x2d,
+ 0x83, 0x59, 0x44, 0x51, 0x7d, 0xee, 0xe9, 0xa3, 0x64, 0x59, 0x43, 0x51, 0x58, 0x7d, 0x2a, 0x82, 0xa4, 0x61, 0x43, 0x51, 0xbb, 0xed, 0xfb, 0xfe, 0x63, 0x61, 0x22, 0x49, 0x68, 0x60, 0x42, 0xe0,
+ 0x63, 0x59, 0xe2, 0x48, 0xe0, 0xaa, 0x7e, 0x7f, 0x63, 0x59, 0xe2, 0x48, 0x0a, 0xaa, 0xf6, 0x57, 0x43, 0x59, 0xe2, 0x40, 0x00, 0xbe, 0xbf, 0x75, 0x43, 0x59, 0xe2, 0x48, 0x2a, 0xa8, 0xaa, 0xc9,
+ 0x83, 0x59, 0x02, 0x51, 0xaa, 0xa0, 0xfb, 0xa7, 0x43, 0x59, 0x42, 0x51, 0x02, 0x28, 0x97, 0xf8, 0x84, 0x61, 0x03, 0x51, 0x57, 0xff, 0xaf, 0x8b, 0xa4, 0x61, 0x22, 0x51, 0xff, 0xdd, 0xaf, 0x2f,
+ 0x04, 0x6a, 0x23, 0x59, 0x55, 0xfd, 0xd8, 0xff, 0xa6, 0x82, 0x63, 0x61, 0xb5, 0xbd, 0x2a, 0xfb, 0xc7, 0x92, 0xa3, 0x69, 0xab, 0xfa, 0xa8, 0x77, 0x07, 0x93, 0x24, 0x7a, 0x2f, 0x0b, 0xbb, 0xfd,
+ 0x0b, 0xb4, 0xe6, 0x8a, 0x2f, 0x2f, 0x3d, 0x2d, 0x0c, 0xac, 0xc7, 0x41, 0x5c, 0x74, 0xd4, 0xd4, 0xa9, 0x5a, 0xa7, 0x39, 0xaa, 0x0a, 0x0a, 0xfd, 0x89, 0x5a, 0xc7, 0x41, 0xac, 0xde, 0x50, 0xa3,
+ 0xaa, 0x62, 0xc7, 0x49, 0xb0, 0xae, 0xa9, 0xf7, 0xca, 0x62, 0xe8, 0x49, 0x3e, 0x5e, 0x88, 0x02, 0xaa, 0x6a, 0x07, 0x4a, 0x02, 0x9d, 0xf7, 0xa0, 0xaa, 0x6a, 0x08, 0x4a, 0xa0, 0x78, 0xae, 0xaa,
+ 0xea, 0x7a, 0x28, 0x5a, 0xea, 0xfa, 0x70, 0xea, 0x89, 0x62, 0xe7, 0x49, 0xaf, 0xfc, 0xda, 0x42, 0xea, 0x7a, 0xe7, 0x51, 0x7a, 0x62, 0xea, 0x7d, 0x08, 0x4a, 0xa7, 0x39, 0x7f, 0x57, 0x5e, 0x87,
+ 0xe8, 0x41, 0x26, 0x39, 0x82, 0x82, 0x7e, 0x80, 0x08, 0x4a, 0x46, 0x39, 0xab, 0x8a, 0xbd, 0x3e, 0x29, 0x5a, 0xa7, 0x39, 0xeb, 0x7a, 0x5d, 0xf8, 0x08, 0x42, 0xa7, 0x39, 0x37, 0x15, 0xbd, 0xfe,
+ 0x08, 0x42, 0x87, 0x39, 0x82, 0x60, 0xaa, 0xad, 0xe8, 0x49, 0x87, 0x39, 0xcf, 0xa0, 0x80, 0x2d, 0xc8, 0x41, 0x86, 0x29, 0xdf, 0x20, 0x00, 0x00, 0x69, 0x52, 0x46, 0x29, 0x28, 0xff, 0xdf, 0xff,
+ 0x68, 0x52, 0x66, 0x31, 0x28, 0xbb, 0xfe, 0x55, 0x48, 0x52, 0xc7, 0x41, 0x8f, 0xfd, 0xee, 0xbf, 0x49, 0x5a, 0xe7, 0x39, 0xaa, 0xff, 0x3f, 0x57, 0x48, 0x52, 0xa7, 0x41, 0x78, 0x5e, 0xdc, 0x7f,
+ 0x48, 0x5a, 0xa7, 0x41, 0x09, 0x5e, 0xd7, 0xd2, 0x89, 0x62, 0x86, 0x39, 0x8a, 0x7e, 0x82, 0xe8, 0x69, 0x5a, 0x67, 0x39, 0x2b, 0xe0, 0xd8, 0x5e, 0x26, 0x6a, 0x65, 0x49, 0xf8, 0xeb, 0xed, 0xed,
+ 0x84, 0x69, 0x43, 0x59, 0xa2, 0xfa, 0xee, 0xab, 0x63, 0x61, 0x22, 0x51, 0xf8, 0x5f, 0xd7, 0xda, 0x84, 0x59, 0x02, 0x51, 0xdf, 0xfd, 0xfd, 0x8a, 0x24, 0x59, 0x02, 0x49, 0x48, 0xaa, 0xf7, 0xee,
+ 0x64, 0x59, 0x03, 0x49, 0xb9, 0x77, 0xee, 0xa2, 0x44, 0x59, 0x02, 0x51, 0xdf, 0xa9, 0xa0, 0x80, 0x43, 0x59, 0xe2, 0x50, 0xd7, 0xbf, 0xbf, 0xa2, 0x63, 0x59, 0x02, 0x51, 0xe3, 0xff, 0xbe, 0xf5,
+ 0x43, 0x59, 0x02, 0x51, 0xbf, 0xba, 0xc2, 0xf8, 0x43, 0x59, 0x02, 0x51, 0x7a, 0xe0, 0x2a, 0x2b, 0x44, 0x59, 0x22, 0x49, 0x5f, 0xfa, 0x02, 0xa2, 0x84, 0x61, 0x23, 0x51, 0xa9, 0x87, 0xff, 0xaf,
+ 0x84, 0x61, 0x42, 0x59, 0x8a, 0xba, 0xbe, 0xad, 0x84, 0x61, 0x43, 0x59, 0x58, 0xee, 0x2d, 0x7e, 0x83, 0x61, 0x42, 0x51, 0xa0, 0xe2, 0x8a, 0xd6, 0xa4, 0x61, 0x63, 0x59, 0x59, 0xdb, 0xff, 0xf9,
+ 0xa4, 0x61, 0x42, 0x51, 0xff, 0x3f, 0xb8, 0xba, 0x43, 0x61, 0x84, 0x59, 0x9e, 0xe9, 0xa2, 0xf5, 0x84, 0x61, 0x62, 0x51, 0xaa, 0x88, 0xa3, 0xde, 0x25, 0x6a, 0x63, 0x59, 0xfd, 0x7d, 0xf3, 0xee,
+ 0xc4, 0x61, 0x63, 0x59, 0x57, 0x57, 0xfa, 0x2a, 0x25, 0x6a, 0x63, 0x59, 0xd5, 0xff, 0xff, 0xa0, 0xc8, 0x82, 0xc4, 0x59, 0xd5, 0xfb, 0x2d, 0x89, 0xa7, 0x7a, 0x05, 0x62, 0x3c, 0x3d, 0x2f, 0x0f,
+ 0xec, 0x9b, 0xc7, 0x7a, 0xdd, 0xf5, 0xfd, 0x0d, 0xaf, 0xbc, 0x69, 0x93, 0xf5, 0xfd, 0xa5, 0x00, 0x4c, 0xb4, 0xca, 0xa3, 0xb5, 0xbf, 0x22, 0x08, 0xcf, 0xc4, 0xeb, 0xab, 0xdf, 0xbf, 0x2b, 0x02,
+ 0x71, 0xd5, 0xc6, 0x59, 0x0a, 0x02, 0x82, 0x40, 0x50, 0xd5, 0x86, 0x39, 0xfc, 0xf7, 0xd5, 0x55, 0x48, 0x5a, 0xa7, 0x49, 0xd6, 0x78, 0x80, 0xbe, 0x69, 0x62, 0x67, 0x41, 0x5d, 0xf7, 0x0a, 0x22,
+ 0xa9, 0x72, 0xa7, 0x51, 0x25, 0xef, 0x0a, 0x8a, 0x0a, 0x83, 0xa6, 0x49, 0xba, 0xff, 0xdf, 0x35, 0x2b, 0x83, 0x28, 0x62, 0xb7, 0xb9, 0xeb, 0x58, 0xcd, 0x8b, 0x08, 0x52, 0x7f, 0xff, 0x3f, 0xfd,
+ 0xcb, 0x72, 0x86, 0x31, 0xfa, 0x58, 0x5e, 0xdf, 0x89, 0x62, 0xa7, 0x39, 0x83, 0xe3, 0xcb, 0xf5, 0x6a, 0x5a, 0xe7, 0x41, 0xe0, 0x03, 0xa5, 0x8d, 0xeb, 0x72, 0xc8, 0x49, 0xaf, 0xa3, 0x5e, 0xe2,
+ 0xaa, 0x62, 0x67, 0x39, 0x5c, 0xf7, 0xfe, 0xd7, 0xc7, 0x39, 0x66, 0x31, 0x38, 0xa4, 0xed, 0x8a, 0x28, 0x52, 0x46, 0x31, 0xbe, 0x2d, 0xbd, 0xff, 0x89, 0x62, 0xc7, 0x41, 0xf5, 0x26, 0x6a, 0x89,
+ 0xaa, 0x62, 0xa7, 0x41, 0x97, 0xbe, 0xfb, 0xf2, 0xaa, 0x5a, 0xa7, 0x39, 0x7a, 0x07, 0xad, 0xbb, 0x8a, 0x62, 0xc7, 0x41, 0xea, 0x29, 0x8d, 0xea, 0x69, 0x5a, 0xa7, 0x49, 0xa8, 0x98, 0x2a, 0x9f,
+ 0x89, 0x62, 0xe8, 0x49, 0x6f, 0x8a, 0x70, 0x5e, 0x28, 0x52, 0x46, 0x29, 0xf8, 0x5e, 0xff, 0x57, 0xc8, 0x41, 0x66, 0x39, 0xef, 0xef, 0x73, 0x82, 0xc8, 0x41, 0x47, 0x39, 0xaf, 0xa8, 0x8d, 0xbf,
+ 0x89, 0x62, 0x86, 0x31, 0x2b, 0xbf, 0xf7, 0xbf, 0xa9, 0x6a, 0x28, 0x5a, 0xf8, 0x2b, 0xf9, 0xa9, 0x89, 0x6a, 0x48, 0x5a, 0xff, 0x82, 0x68, 0xa2, 0x8a, 0x6a, 0x86, 0x31, 0xfe, 0xf8, 0x7a, 0xfa,
+ 0x8e, 0xa4, 0xa7, 0x41, 0xff, 0x80, 0x55, 0x55, 0x8b, 0x83, 0xe8, 0x41, 0x2a, 0x7a, 0xff, 0x55, 0x6e, 0x9c, 0x08, 0x42, 0x02, 0x55, 0x55, 0x55, 0x29, 0x7b, 0xc8, 0x39, 0x78, 0xff, 0xff, 0xd7,
+ 0x49, 0x4a, 0x87, 0x31, 0xab, 0xab, 0xe9, 0xac, 0x29, 0x42, 0xa7, 0x39, 0x2d, 0x97, 0xb7, 0x8f, 0x49, 0x4a, 0xa7, 0x39, 0xea, 0xd8, 0x77, 0xff, 0xe8, 0x41, 0x67, 0x31, 0xf2, 0xda, 0x2b, 0xaf,
+ 0xc8, 0x41, 0x87, 0x31, 0x79, 0xbf, 0xe0, 0x0d, 0x09, 0x42, 0x87, 0x39, 0xa6, 0xab, 0x29, 0xef, 0x29, 0x42, 0x87, 0x39, 0xbd, 0xa1, 0xfe, 0xfe, 0xe8, 0x39, 0x87, 0x31, 0x0c, 0xc0, 0x34, 0xa0,
+ 0xe8, 0x41, 0x67, 0x39, 0x28, 0x0a, 0x8a, 0x9a, 0x09, 0x4a, 0xa7, 0x39, 0xef, 0x0a, 0xfe, 0xd5, 0x49, 0x4a, 0xa8, 0x39, 0xfd, 0xfa, 0x3e, 0xad, 0x49, 0x4a, 0xa8, 0x39, 0xfe, 0xd7, 0xde, 0xe2,
+ 0x29, 0x4a, 0xa7, 0x39, 0x08, 0xbf, 0xdd, 0xff, 0x08, 0x42, 0xa7, 0x39, 0xe2, 0x5b, 0xef, 0xe5, 0xe8, 0x41, 0x67, 0x31, 0x7f, 0xca, 0x9c, 0xf0, 0x49, 0x4a, 0x67, 0x31, 0x5d, 0x8a, 0xff, 0xff,
+ 0x28, 0x42, 0x87, 0x29, 0xfa, 0x7f, 0xbc, 0xfd, 0x08, 0x42, 0x67, 0x31, 0x2e, 0xfa, 0x5f, 0xa8, 0x29, 0x4a, 0x87, 0x39, 0xda, 0x2f, 0xab, 0xfd, 0x29, 0x4a, 0x67, 0x31, 0xe7, 0x2a, 0x0a, 0xdb,
+ 0x69, 0x4a, 0x87, 0x39, 0x5d, 0xde, 0xe8, 0xf3, 0xe8, 0x41, 0x86, 0x31, 0x8a, 0x2a, 0x06, 0xae, 0x08, 0x42, 0x67, 0x39, 0xaa, 0xdf, 0xaa, 0x80, 0x43, 0x59, 0xc5, 0x49, 0x0b, 0x29, 0x0b, 0x89,
+ 0x84, 0x61, 0x23, 0x51, 0xf9, 0xeb, 0xab, 0xa8, 0x84, 0x61, 0x23, 0x51, 0x82, 0xaf, 0xbf, 0xdf, 0x64, 0x61, 0x23, 0x41, 0x2a, 0x02, 0xea, 0x7f, 0x84, 0x61, 0xe3, 0x40, 0xc8, 0xea, 0xff, 0xed,
+ 0x24, 0x51, 0xc2, 0x40, 0xfe, 0xfa, 0xb8, 0x83, 0xe3, 0x48, 0x23, 0x41, 0xaa, 0xeb, 0xbe, 0xfb, 0x02, 0x49, 0xe3, 0x40, 0xb7, 0x99, 0xef, 0xb7, 0xa4, 0x61, 0xe2, 0x40, 0x89, 0xad, 0xed, 0xff,
+ 0x63, 0x59, 0x03, 0x49, 0x27, 0xeb, 0xaa, 0xab, 0x83, 0x59, 0x22, 0x51, 0xb7, 0x6d, 0xf0, 0x55, 0x64, 0x59, 0x23, 0x51, 0xda, 0xed, 0x82, 0x57, 0x64, 0x59, 0x02, 0x51, 0xe2, 0x0e, 0xfa, 0xad,
+ 0xa4, 0x61, 0x02, 0x51, 0x2f, 0xab, 0xf7, 0xff, 0xe3, 0x71, 0x02, 0x51, 0x20, 0xff, 0x57, 0xff, 0x65, 0x7a, 0x22, 0x51, 0x2a, 0x3f, 0x3d, 0x2b, 0xaa, 0xa3, 0x05, 0x72, 0xd5, 0x95, 0x35, 0x27,
+ 0x8d, 0xc4, 0x87, 0x82, 0x2f, 0x2f, 0x8a, 0x42, 0xc8, 0x7a, 0x66, 0x31, 0xfc, 0xff, 0x55, 0xfe, 0x89, 0x5a, 0x86, 0x39, 0xe2, 0xef, 0xbd, 0xff, 0x49, 0x4a, 0xe7, 0x41, 0x3d, 0x30, 0xbb, 0x7e,
+ 0x69, 0x5a, 0x07, 0x42, 0xdc, 0xa3, 0xf1, 0xdd, 0xca, 0x6a, 0x28, 0x52, 0x89, 0xb7, 0x2a, 0xa9, 0xca, 0x6a, 0x27, 0x4a, 0xaa, 0xa8, 0xbc, 0x97, 0x0a, 0x73, 0x69, 0x5a, 0xdd, 0xbf, 0xbe, 0x37,
+ 0x0a, 0x7b, 0x28, 0x52, 0x58, 0x7e, 0xfe, 0xfe, 0xaa, 0x62, 0x07, 0x4a, 0x43, 0xd7, 0xb2, 0xf3, 0xca, 0x72, 0xc7, 0x49, 0x03, 0x35, 0xad, 0xff, 0x49, 0x62, 0xc7, 0x39, 0xd6, 0xf8, 0xff, 0xfe,
+ 0x08, 0x4a, 0xa7, 0x41, 0xa4, 0x62, 0xba, 0xa0, 0x08, 0x4a, 0xa7, 0x41, 0x9e, 0xd6, 0x8a, 0xba, 0x29, 0x52, 0xc7, 0x41, 0x78, 0xdc, 0xfa, 0xfe, 0x08, 0x4a, 0x87, 0x31, 0xbb, 0xb2, 0x2a, 0xda,
+ 0xe8, 0x49, 0x87, 0x31, 0xa7, 0xbe, 0xd8, 0xa8, 0x08, 0x4a, 0x87, 0x41, 0xfe, 0xaf, 0xbc, 0xd6, 0xe8, 0x49, 0x66, 0x31, 0x6a, 0xa2, 0x82, 0xaa, 0xc7, 0x41, 0x46, 0x29, 0xbe, 0xbe, 0x9e, 0x28,
+ 0xe8, 0x49, 0x66, 0x31, 0xf7, 0xe2, 0x7a, 0x7e, 0x08, 0x42, 0x67, 0x31, 0x0b, 0xd7, 0xf5, 0x55, 0x29, 0x4a, 0x66, 0x31, 0xa8, 0xaa, 0x8b, 0xd7, 0x28, 0x52, 0xa7, 0x41, 0xdf, 0xe2, 0x36, 0xaf,
+ 0x28, 0x62, 0x87, 0x41, 0x9f, 0xf3, 0x8a, 0x8f, 0xa9, 0x62, 0xa7, 0x39, 0x0a, 0x2f, 0xf7, 0xff, 0x89, 0x62, 0x86, 0x41, 0x5c, 0xf8, 0x5f, 0xdf, 0xe4, 0x69, 0xa7, 0x41, 0x0d, 0x8d, 0xad, 0xa5,
+ 0x84, 0x69, 0x42, 0x51, 0xac, 0x78, 0xdf, 0x7e, 0x64, 0x59, 0x42, 0x51, 0x9d, 0xfd, 0xbe, 0x37, 0x84, 0x59, 0x02, 0x51, 0xae, 0xf5, 0xaf, 0x0a, 0x84, 0x59, 0x22, 0x51, 0xde, 0x95, 0x2e, 0xca,
+ 0xa4, 0x61, 0x43, 0x51, 0x6b, 0xff, 0xf2, 0xff, 0x84, 0x59, 0xe3, 0x50, 0xa8, 0x2e, 0xaa, 0x70, 0x64, 0x59, 0x23, 0x51, 0x0b, 0xaa, 0xa2, 0xff, 0x43, 0x59, 0x02, 0x49, 0x3e, 0x80, 0x26, 0x55,
+ 0x63, 0x59, 0x02, 0x51, 0xe8, 0xaf, 0x8a, 0x0f, 0x44, 0x59, 0x22, 0x51, 0xf3, 0xba, 0xb6, 0x73, 0x43, 0x59, 0x22, 0x49, 0x92, 0x88, 0xba, 0x25, 0x63, 0x59, 0x23, 0x51, 0x3a, 0xaf, 0xe7, 0xdf,
+ 0x84, 0x59, 0x22, 0x51, 0xfe, 0xee, 0x8b, 0xbe, 0x84, 0x61, 0x43, 0x51, 0x7f, 0x6b, 0xea, 0xa2, 0xa4, 0x59, 0x43, 0x51, 0xaf, 0x2b, 0x7f, 0xa7, 0xa4, 0x59, 0x43, 0x59, 0xff, 0xe2, 0x2b, 0xbd,
+ 0x26, 0x62, 0x43, 0x59, 0x55, 0xff, 0x57, 0xc3, 0x47, 0x62, 0x43, 0x51, 0x57, 0xff, 0xbd, 0x2b, 0x4a, 0x8b, 0x64, 0x51, 0xd5, 0x95, 0x0f, 0xae, 0xa8, 0x72, 0xc5, 0x61, 0x7f, 0xef, 0xb0, 0xeb,
+ 0x67, 0x6a, 0x83, 0x59, 0xd7, 0xd5, 0xff, 0x0a, 0x46, 0x6a, 0x83, 0x59, 0x5d, 0xd5, 0xbf, 0x0a, 0xe9, 0x82, 0xc4, 0x61, 0xf1, 0xfa, 0xf8, 0x00, 0x0d, 0xa4, 0x25, 0x6a, 0xf5, 0xb5, 0x29, 0x02,
+ 0x8e, 0xb4, 0x08, 0x83, 0xad, 0xed, 0xae, 0x0a, 0xae, 0xbc, 0xeb, 0xa3, 0xa9, 0xaa, 0xaa, 0x02, 0xef, 0xbc, 0x4d, 0xb4, 0xd5, 0xbe, 0xbe, 0x25, 0xb2, 0xd5, 0xae, 0xbc, 0xf5, 0xbf, 0xaf, 0x2f,
+ 0x13, 0xe6, 0x66, 0x41, 0x70, 0x58, 0x54, 0x56, 0x48, 0x52, 0x47, 0x31, 0x2e, 0x2f, 0xf7, 0xff, 0xa9, 0x6a, 0xc8, 0x41, 0xff, 0xe8, 0xfb, 0xb5, 0x0a, 0x73, 0xa7, 0x41, 0xff, 0x5e, 0x0b, 0xaa,
+ 0x0b, 0x7b, 0x07, 0x52, 0xf5, 0x55, 0xb8, 0xa8, 0x0a, 0x7b, 0x08, 0x52, 0x2f, 0x7a, 0xaa, 0xfe, 0xaa, 0x72, 0x08, 0x4a, 0xf8, 0xde, 0xb6, 0xbf, 0x2b, 0x7b, 0x08, 0x5a, 0x6d, 0x72, 0x58, 0x7b,
+ 0x28, 0x5a, 0x87, 0x39, 0xfb, 0xd6, 0xdc, 0x5f, 0x08, 0x4a, 0x86, 0x39, 0xbd, 0xe3, 0xaa, 0xae, 0x89, 0x62, 0xa7, 0x41, 0x3f, 0xbd, 0xbd, 0x2d, 0xeb, 0x7a, 0xc7, 0x49, 0xae, 0xfb, 0x5f, 0x2a,
+ 0xeb, 0x7a, 0x87, 0x41, 0x5f, 0xfb, 0x4a, 0xfe, 0xa8, 0x49, 0x46, 0x31, 0xfe, 0x7e, 0xfe, 0xb8, 0xa7, 0x41, 0x66, 0x39, 0x06, 0xa9, 0xcb, 0xa9, 0x8a, 0x62, 0x86, 0x39, 0xad, 0xaf, 0x89, 0x2b,
+ 0x69, 0x62, 0xa7, 0x41, 0xf7, 0xfd, 0x7e, 0x22, 0x69, 0x62, 0x87, 0x39, 0xab, 0xab, 0xbd, 0x5c, 0xca, 0x62, 0xa7, 0x41, 0x57, 0x3f, 0xee, 0xbf, 0xea, 0x72, 0xc7, 0x41, 0xbb, 0x8a, 0x89, 0x7e,
+ 0x49, 0x5a, 0x46, 0x29, 0xec, 0xea, 0x5e, 0xff, 0xa7, 0x39, 0x46, 0x31, 0x77, 0x3a, 0xaa, 0xb0, 0xa7, 0x41, 0x46, 0x31, 0xed, 0xef, 0x0a, 0xed, 0xc8, 0x41, 0x26, 0x31, 0xee, 0x7f, 0x20, 0x22,
+ 0xaa, 0x6a, 0x66, 0x39, 0xf5, 0xf5, 0x09, 0xbf, 0xa9, 0x6a, 0xa7, 0x49, 0xaf, 0xa2, 0xa2, 0x78, 0xca, 0x72, 0xa7, 0x49, 0xee, 0xea, 0xc2, 0x79, 0x29, 0x5a, 0x66, 0x31, 0xe8, 0xf8, 0x7e, 0xff,
+ 0x29, 0x42, 0xa7, 0x31, 0x29, 0x95, 0xfd, 0x9e, 0x28, 0x42, 0xa7, 0x31, 0x00, 0xf7, 0x65, 0xbd, 0x49, 0x4a, 0x88, 0x39, 0x02, 0x2f, 0x8d, 0xfe, 0xca, 0x5a, 0xc8, 0x39, 0x2f, 0xba, 0xb7, 0x7f,
+ 0xca, 0x5a, 0xa7, 0x39, 0x7c, 0xaa, 0xff, 0xeb, 0x29, 0x4a, 0xc8, 0x41, 0xb2, 0xde, 0xf9, 0x0b, 0x8a, 0x5a, 0xa7, 0x39, 0x5f, 0x77, 0xfb, 0xec, 0xe8, 0x41, 0x67, 0x39, 0xbf, 0x2b, 0x88, 0xa9,
+ 0x09, 0x42, 0x87, 0x39, 0x0b, 0xaa, 0xf5, 0x27, 0xe8, 0x41, 0x87, 0x39, 0x98, 0xeb, 0xd9, 0xf0, 0xe8, 0x41, 0x67, 0x39, 0x02, 0xfa, 0x8e, 0x37, 0xe8, 0x41, 0x87, 0x39, 0xef, 0x03, 0x58, 0x68,
+ 0xe8, 0x41, 0x87, 0x39, 0x5b, 0xea, 0xab, 0xa3, 0x08, 0x42, 0x87, 0x39, 0xff, 0xe5, 0x0c, 0xeb, 0xe8, 0x41, 0x87, 0x39, 0xe2, 0xa0, 0xac, 0xfe, 0x29, 0x4a, 0x87, 0x39, 0xad, 0xae, 0xbf, 0xc2,
+ 0x69, 0x5a, 0xc8, 0x39, 0x55, 0xff, 0x8a, 0xbc, 0xeb, 0x6a, 0xa7, 0x39, 0x75, 0xdf, 0xdf, 0x8b, 0x28, 0x4a, 0xa7, 0x31, 0x7d, 0xfe, 0xf8, 0x7a, 0xe8, 0x39, 0x87, 0x31, 0x76, 0xf6, 0xaa, 0x29,
+ 0xe8, 0x41, 0x67, 0x31, 0xff, 0x5f, 0xae, 0x08, 0xc8, 0x41, 0x87, 0x39, 0x8b, 0x56, 0x90, 0xa6, 0x29, 0x4a, 0x87, 0x31, 0x4b, 0xaf, 0xf5, 0x7e, 0x09, 0x42, 0xa7, 0x31, 0x9f, 0x6e, 0x62, 0xf7,
+ 0x49, 0x4a, 0xa7, 0x39, 0x2f, 0xd5, 0xe3, 0xfd, 0x29, 0x42, 0x86, 0x31, 0xf7, 0xbb, 0xa2, 0xbb, 0x08, 0x42, 0xa7, 0x31, 0xca, 0xff, 0x9a, 0x35, 0x62, 0x59, 0x85, 0x41, 0x03, 0x03, 0x09, 0xad,
+ 0x84, 0x59, 0x22, 0x51, 0xea, 0x2a, 0xba, 0x9d, 0x84, 0x59, 0x02, 0x51, 0x7b, 0xea, 0xf8, 0xb0, 0x64, 0x51, 0x22, 0x49, 0x6f, 0xaa, 0x5e, 0x2a, 0x62, 0x59, 0x04, 0x49, 0xf7, 0xca, 0xff, 0xfa,
+ 0x43, 0x59, 0x02, 0x49, 0xed, 0xab, 0x0f, 0x2a, 0x43, 0x59, 0x02, 0x49, 0xba, 0xda, 0xea, 0x0a, 0x02, 0x51, 0x43, 0x49, 0xa9, 0xe2, 0x5e, 0x27, 0x44, 0x59, 0xe3, 0x40, 0xe8, 0x5c, 0xff, 0xfe,
+ 0x24, 0x51, 0xe3, 0x38, 0x2e, 0xaa, 0xee, 0xfa, 0x23, 0x59, 0x02, 0x39, 0xa0, 0xab, 0xb5, 0xb7, 0x64, 0x59, 0x02, 0x51, 0xf5, 0xab, 0xae, 0x2d, 0x63, 0x61, 0x42, 0x51, 0xaf, 0xaa, 0xde, 0xff,
+ 0x84, 0x61, 0x02, 0x49, 0xaa, 0xba, 0x2f, 0xb5, 0x85, 0x7a, 0x63, 0x59, 0xf5, 0xad, 0x8a, 0xab, 0x49, 0x93, 0xc4, 0x61, 0x95, 0xbd, 0x2b, 0x2f, 0x4c, 0xb4, 0xc8, 0x82, 0x25, 0xaf, 0x2b, 0x8a,
+ 0xce, 0xcc, 0xa6, 0x49, 0x62, 0x50, 0x5c, 0x57, 0x08, 0x4a, 0x66, 0x31, 0xe0, 0x7f, 0x7e, 0xea, 0x28, 0x4a, 0xa7, 0x39, 0x89, 0xad, 0x75, 0x57, 0x28, 0x4a, 0xa7, 0x41, 0x2b, 0x0a, 0xdb, 0x7f,
+ 0x28, 0x4a, 0xa7, 0x39, 0x0a, 0xab, 0xdf, 0xd7, 0x69, 0x52, 0xc8, 0x39, 0x2e, 0xff, 0xfd, 0x55, 0x49, 0x4a, 0xa7, 0x41, 0x08, 0xba, 0xef, 0xfd, 0xea, 0x6a, 0xa7, 0x39, 0x2a, 0xf7, 0xdf, 0xaf,
+ 0x89, 0x62, 0xc7, 0x49, 0xfa, 0x2b, 0xaf, 0x58, 0x89, 0x5a, 0xe8, 0x49, 0x7a, 0xa0, 0x0a, 0x55, 0x89, 0x5a, 0xa7, 0x39, 0xbb, 0xfb, 0x78, 0xff, 0x08, 0x4a, 0xe8, 0x39, 0xfa, 0xfc, 0xe2, 0xa0,
+ 0x08, 0x4a, 0xa7, 0x39, 0xa6, 0xaa, 0xfc, 0xfe, 0x08, 0x4a, 0xa7, 0x41, 0xbc, 0xfa, 0xe3, 0x7f, 0x08, 0x4a, 0x87, 0x41, 0x82, 0xaa, 0xe0, 0x5b, 0xe8, 0x49, 0x87, 0x41, 0x32, 0xba, 0x7e, 0xf7,
+ 0xe8, 0x49, 0x66, 0x31, 0xdc, 0xaa, 0xfe, 0xeb, 0xc8, 0x49, 0x86, 0x39, 0xbe, 0x8f, 0x7f, 0xfa, 0xc8, 0x49, 0x67, 0x39, 0xea, 0x42, 0x3b, 0xef, 0xc8, 0x41, 0x46, 0x39, 0x82, 0xb7, 0x00, 0xdb,
+ 0xe8, 0x41, 0x46, 0x31, 0xfb, 0x1e, 0xba, 0xaa, 0x08, 0x4a, 0x67, 0x31, 0xd7, 0xff, 0xef, 0xe0, 0xc8, 0x39, 0x46, 0x31, 0x5c, 0xab, 0xfa, 0xbf, 0x08, 0x42, 0x67, 0x31, 0xa9, 0x82, 0x2d, 0xf8,
+ 0x08, 0x4a, 0x67, 0x41, 0x7e, 0xa2, 0x00, 0xa2, 0x08, 0x4a, 0x87, 0x39, 0xab, 0xd7, 0xf8, 0xaa, 0x08, 0x4a, 0x46, 0x41, 0xba, 0x7e, 0xff, 0xa2, 0xc5, 0x61, 0x87, 0x39, 0x2d, 0xbf, 0x35, 0x2d,
+ 0x84, 0x61, 0x43, 0x51, 0xfe, 0x52, 0x72, 0xf8, 0x84, 0x59, 0x03, 0x59, 0x2e, 0xa6, 0xaa, 0x00, 0x84, 0x61, 0x63, 0x51, 0xbf, 0xef, 0xbb, 0xcf, 0x84, 0x59, 0x23, 0x51, 0xa6, 0xea, 0xee, 0x68,
+ 0x83, 0x59, 0x02, 0x49, 0xba, 0x77, 0xd8, 0x5b, 0x84, 0x59, 0x02, 0x49, 0x80, 0xaf, 0x5f, 0x7f, 0x63, 0x51, 0xe2, 0x48, 0xca, 0xeb, 0x7f, 0xaa, 0x43, 0x59, 0x02, 0x49, 0x9c, 0xac, 0xe9, 0x3e,
+ 0x62, 0x59, 0x23, 0x51, 0xaa, 0xfb, 0x0a, 0x2f, 0x63, 0x61, 0x02, 0x51, 0xb8, 0xfb, 0xba, 0xaa, 0x84, 0x59, 0x22, 0x51, 0xff, 0xed, 0x6f, 0x8e, 0x64, 0x59, 0x02, 0x51, 0xaf, 0xa3, 0x34, 0xbb,
+ 0xc4, 0x61, 0x43, 0x59, 0xb5, 0x7d, 0x27, 0x0d, 0x05, 0x62, 0x43, 0x59, 0xff, 0xf7, 0xff, 0x2a, 0x46, 0x62, 0x43, 0x59, 0x57, 0xf7, 0xbf, 0x02, 0x87, 0x72, 0x84, 0x51, 0x55, 0xb5, 0x0a, 0xab,
+ 0x67, 0x72, 0xe6, 0x69, 0x08, 0xa2, 0x78, 0xbb, 0x08, 0x83, 0x06, 0x62, 0x09, 0xeb, 0xfd, 0xf7, 0x6a, 0x8b, 0x05, 0x62, 0xe8, 0x7f, 0x55, 0x5d, 0xc8, 0x7a, 0xe5, 0x59, 0xa8, 0x5e, 0xfe, 0x8a,
+ 0x87, 0x6a, 0x05, 0x62, 0x0d, 0xf5, 0xf5, 0xce, 0xcc, 0x93, 0x26, 0x6a, 0xd5, 0xd5, 0xdf, 0x3d, 0x51, 0xc5, 0xa7, 0x72, 0xbf, 0xaf, 0xcb, 0x62, 0x30, 0xbd, 0xc7, 0x7a, 0xae, 0xad, 0xa9, 0x0a,
+ 0xb2, 0xcd, 0x87, 0x72, 0xbe, 0xe7, 0x29, 0x0f, 0x31, 0xc5, 0x2c, 0x9c, 0xf6, 0x22, 0x90, 0xf4, 0xd2, 0xd5, 0x6d, 0xac, 0xb5, 0x8b, 0x2e, 0xab, 0x53, 0xee, 0x07, 0x62, 0x8a, 0x0a, 0xe2, 0x6a,
+ 0x6b, 0x8b, 0x66, 0x39, 0x5c, 0x5f, 0x57, 0x57, 0xa8, 0x41, 0x66, 0x31, 0xee, 0xab, 0xaf, 0xfb, 0x08, 0x4a, 0x66, 0x39, 0x0a, 0xff, 0xad, 0xd5, 0xa9, 0x6a, 0xa7, 0x39, 0x2a, 0xbd, 0xbe, 0xff,
+ 0xa9, 0x72, 0xe8, 0x51, 0x20, 0x2d, 0xab, 0xaf, 0xa9, 0x72, 0xc8, 0x49, 0xde, 0x72, 0x2d, 0x0a, 0xea, 0x72, 0x08, 0x5a, 0xaf, 0xed, 0x8e, 0xa0, 0x89, 0x6a, 0x87, 0x41, 0x88, 0xe3, 0xf7, 0x78,
+ 0xa8, 0x49, 0x87, 0x39, 0xfc, 0x7a, 0x6c, 0x7c, 0x09, 0x52, 0x87, 0x39, 0xff, 0xed, 0xb3, 0xfd, 0x49, 0x52, 0x86, 0x41, 0x55, 0xdf, 0xbf, 0x2b, 0x89, 0x6a, 0x87, 0x49, 0xb5, 0x2d, 0x0b, 0x28,
+ 0xaa, 0x6a, 0x66, 0x39, 0x7f, 0x6e, 0x78, 0x57, 0xc7, 0x39, 0x66, 0x31, 0x9f, 0x6a, 0xca, 0x7a, 0xe8, 0x49, 0x66, 0x39, 0xbf, 0x3f, 0xad, 0xaf, 0xaa, 0x62, 0xa7, 0x41, 0x2d, 0x2d, 0x2b, 0x0b,
+ 0xca, 0x6a, 0xa7, 0x39, 0xfe, 0xf8, 0x5f, 0xfd, 0xa9, 0x62, 0xe8, 0x41, 0xf5, 0xbf, 0x3d, 0x8e, 0xea, 0x6a, 0xc7, 0x41, 0xe7, 0xe2, 0x7e, 0xfe, 0x69, 0x5a, 0x46, 0x31, 0x7a, 0xfe, 0xff, 0xe0,
+ 0x08, 0x42, 0x46, 0x31, 0xff, 0xd7, 0xff, 0x2a, 0x89, 0x5a, 0x67, 0x31, 0x55, 0x55, 0xd5, 0xc2, 0x48, 0x5a, 0x46, 0x31, 0x57, 0x57, 0xaa, 0x2a, 0x09, 0x4a, 0x46, 0x31, 0xfd, 0xd5, 0xfe, 0xf8,
+ 0x69, 0x6a, 0xa7, 0x39, 0xad, 0x7d, 0xaf, 0x0a, 0xa9, 0x6a, 0xa8, 0x49, 0xfa, 0xc2, 0x5f, 0xfa, 0x89, 0x62, 0x66, 0x39, 0x5f, 0xf7, 0x57, 0x8a, 0x69, 0x5a, 0x66, 0x31, 0x55, 0x55, 0x5f, 0x8a,
+ 0x29, 0x42, 0xa8, 0x39, 0xd7, 0x55, 0xd8, 0xbe, 0x09, 0x42, 0xa8, 0x39, 0xba, 0xff, 0xf8, 0x55, 0x09, 0x42, 0xa7, 0x39, 0xad, 0xa0, 0xeb, 0x20, 0xec, 0x6a, 0xe8, 0x39, 0x55, 0xf5, 0x3d, 0xf5,
+ 0xaa, 0x5a, 0x08, 0x42, 0xdd, 0x3e, 0x2e, 0xeb, 0xca, 0x62, 0x08, 0x42, 0xad, 0xaa, 0xae, 0x88, 0xaa, 0x62, 0xc8, 0x39, 0x7e, 0x57, 0x72, 0x62, 0xe8, 0x41, 0xa7, 0x31, 0x6e, 0xee, 0xa2, 0xfa,
+ 0xc8, 0x39, 0x87, 0x31, 0xfa, 0xe8, 0x57, 0x0e, 0x09, 0x4a, 0x88, 0x31, 0xff, 0x5f, 0xbf, 0x28, 0xe9, 0x41, 0x67, 0x31, 0xb7, 0xba, 0x2a, 0x0a, 0x08, 0x42, 0x87, 0x31, 0xba, 0x5f, 0xe0, 0xaa,
+ 0x09, 0x4a, 0xa8, 0x39, 0x6f, 0x9f, 0xdb, 0xbc, 0x08, 0x42, 0xa7, 0x39, 0xbb, 0xdf, 0x7a, 0x2d, 0x29, 0x4a, 0xa7, 0x39, 0xf9, 0xb8, 0xfb, 0xfb, 0x29, 0x4a, 0xa8, 0x39, 0xab, 0x0b, 0x2b, 0x97,
+ 0xea, 0x62, 0xa7, 0x39, 0xbf, 0x97, 0x02, 0xdf, 0xeb, 0x72, 0xc7, 0x41, 0x7f, 0x0f, 0x28, 0xf5, 0x49, 0x5a, 0xa7, 0x31, 0xff, 0xfe, 0x78, 0x5f, 0xe8, 0x41, 0xa7, 0x39, 0xb2, 0x74, 0x55, 0x82,
+ 0x08, 0x42, 0xa7, 0x31, 0xca, 0xfb, 0xfb, 0x5d, 0x09, 0x42, 0x87, 0x39, 0xba, 0x8a, 0xa5, 0xba, 0xe8, 0x41, 0x87, 0x31, 0xba, 0xe2, 0x9e, 0xbf, 0x29, 0x42, 0xa7, 0x39, 0x77, 0x09, 0xbd, 0xf5,
+ 0x08, 0x42, 0xa7, 0x31, 0xea, 0xb6, 0xd8, 0xea, 0x08, 0x42, 0xa7, 0x39, 0xb2, 0xb7, 0x7e, 0xbb, 0xe8, 0x49, 0xa7, 0x31, 0xeb, 0x2e, 0xb5, 0xea, 0x63, 0x59, 0xa6, 0x41, 0x09, 0xad, 0x0b, 0x0d,
+ 0x84, 0x59, 0x23, 0x51, 0xfd, 0xab, 0xa2, 0xf8, 0x84, 0x59, 0x22, 0x51, 0xb6, 0xea, 0xeb, 0xea, 0x64, 0x59, 0x03, 0x51, 0x88, 0xa8, 0xfe, 0xde, 0x64, 0x59, 0x03, 0x49, 0xaa, 0xaf, 0x67, 0x6f,
+ 0x44, 0x59, 0xe3, 0x48, 0x80, 0x7e, 0x77, 0xde, 0x24, 0x59, 0xe2, 0x38, 0x82, 0xfb, 0xff, 0x7f, 0x24, 0x49, 0x02, 0x39, 0xb0, 0xbe, 0xde, 0xd7, 0x24, 0x41, 0xe3, 0x38, 0xa8, 0x6f, 0x5e, 0xeb,
+ 0x04, 0x41, 0xe3, 0x38, 0x22, 0xd7, 0x5f, 0x34, 0x44, 0x49, 0xe3, 0x38, 0x0a, 0x7e, 0x5f, 0xdf, 0x63, 0x51, 0xc2, 0x38, 0x08, 0x8a, 0xff, 0xdd, 0x44, 0x59, 0xe3, 0x40, 0x80, 0xaa, 0xfe, 0xf5,
+ 0x46, 0x72, 0xe3, 0x40, 0x35, 0xdd, 0xf5, 0xb5, 0xa7, 0x82, 0xa3, 0x61, 0xae, 0x9d, 0xb9, 0x28, 0x4c, 0xb4, 0x45, 0x72, 0xf5, 0xb5, 0x3d, 0x2d, 0x8d, 0xc4, 0xc6, 0x49, 0x8a, 0x62, 0x58, 0x5c,
+ 0x49, 0x62, 0xc8, 0x39, 0xf8, 0xff, 0xff, 0x77, 0x29, 0x4a, 0xc7, 0x41, 0x7b, 0xe8, 0xfa, 0x5f, 0x29, 0x4a, 0x87, 0x41, 0x5f, 0xae, 0x2a, 0xa9, 0x29, 0x4a, 0x87, 0x39, 0x6b, 0xaf, 0xb8, 0x9f,
+ 0x29, 0x4a, 0x67, 0x39, 0xf6, 0x0a, 0xae, 0xfc, 0x49, 0x52, 0xa7, 0x39, 0xdf, 0x0f, 0xbb, 0xdf, 0x89, 0x52, 0xa7, 0x41, 0x75, 0x8b, 0xef, 0x7f, 0xca, 0x62, 0x87, 0x39, 0xff, 0xff, 0x0b, 0x3d,
+ 0xea, 0x6a, 0xa7, 0x41, 0x55, 0x55, 0xc2, 0x20, 0x2c, 0x73, 0xa7, 0x41, 0xf5, 0x55, 0xea, 0xe2, 0x69, 0x52, 0x87, 0x39, 0xd7, 0xd7, 0x9f, 0x2b, 0xaa, 0x5a, 0x67, 0x39, 0xd7, 0x7f, 0xff, 0xa8,
+ 0x08, 0x42, 0x87, 0x39, 0xeb, 0xba, 0x77, 0xa2, 0x08, 0x42, 0x67, 0x39, 0xae, 0xab, 0xb7, 0xa8, 0xe8, 0x41, 0x67, 0x39, 0xa8, 0xae, 0xaa, 0x05, 0xe8, 0x41, 0x87, 0x39, 0xa6, 0x96, 0xe8, 0x70,
+ 0xe8, 0x41, 0x67, 0x39, 0xa8, 0xd6, 0xfe, 0x2b, 0xe8, 0x49, 0x66, 0x39, 0xeb, 0x5e, 0x7f, 0xf8, 0xc8, 0x41, 0x46, 0x39, 0xe2, 0xbe, 0x3d, 0xaa, 0xc7, 0x41, 0x46, 0x39, 0xb7, 0xaf, 0x28, 0x2a,
+ 0xe8, 0x41, 0x66, 0x39, 0x2f, 0xb5, 0xea, 0x57, 0x49, 0x52, 0x87, 0x41, 0xf2, 0xf5, 0x5d, 0xfd, 0xc8, 0x39, 0x47, 0x29, 0x5e, 0xbe, 0xbf, 0x3f, 0xc8, 0x41, 0x46, 0x29, 0x8e, 0xab, 0xba, 0xdf,
+ 0x09, 0x4a, 0x87, 0x31, 0x8a, 0x2b, 0xae, 0x7d, 0xe8, 0x49, 0x87, 0x41, 0x8b, 0x02, 0x25, 0xa2, 0xe8, 0x51, 0x67, 0x41, 0x5f, 0x7a, 0x82, 0xa8, 0xe6, 0x61, 0xa8, 0x39, 0x2f, 0x3d, 0x2f, 0x3d,
+ 0xc4, 0x61, 0x63, 0x59, 0x7e, 0x5a, 0x9f, 0x3f, 0xe6, 0x61, 0x63, 0x59, 0x57, 0x55, 0x5b, 0x00, 0xc4, 0x61, 0x43, 0x59, 0xbb, 0xab, 0x2d, 0x8e, 0xa4, 0x61, 0x43, 0x51, 0x62, 0xee, 0xea, 0x6b,
+ 0x64, 0x59, 0xe3, 0x40, 0xde, 0xa8, 0xa2, 0xa2, 0x64, 0x59, 0x23, 0x51, 0x75, 0xd5, 0xe8, 0xde, 0x44, 0x59, 0x02, 0x41, 0x7a, 0xfa, 0x8a, 0xfa, 0x44, 0x59, 0xc2, 0x38, 0x8b, 0x02, 0x8a, 0xd7,
+ 0x43, 0x59, 0xe2, 0x40, 0x00, 0x22, 0x20, 0xf7, 0x83, 0x61, 0x02, 0x49, 0xea, 0xaf, 0x0f, 0xfd, 0xa4, 0x61, 0x43, 0x59, 0xff, 0xf7, 0x7b, 0x2e, 0x05, 0x6a, 0x43, 0x59, 0x57, 0xf9, 0x35, 0x29,
+ 0x45, 0x6a, 0x84, 0x61, 0xed, 0x0b, 0x0a, 0x02, 0x46, 0x6a, 0xc5, 0x61, 0x5f, 0x2a, 0xa0, 0x00, 0x87, 0x72, 0xe4, 0x69, 0xfd, 0xd7, 0xb5, 0x0b, 0xa7, 0x72, 0xe5, 0x61, 0x7d, 0x55, 0xfe, 0x80,
+ 0xa8, 0x72, 0x26, 0x6a, 0xdd, 0x7f, 0xea, 0x80, 0x87, 0x72, 0x26, 0x6a, 0xf5, 0x75, 0xff, 0xec, 0x87, 0x72, 0x05, 0x62, 0x6b, 0xaf, 0x0b, 0x0a, 0xab, 0x8b, 0x26, 0x6a, 0xf5, 0xff, 0xff, 0x3f,
+ 0x6d, 0xa4, 0x47, 0x6a, 0x55, 0x3f, 0xfb, 0x1a, 0xae, 0xac, 0xc8, 0x72, 0xaf, 0x2d, 0xa9, 0x9f, 0x30, 0xbd, 0x08, 0x7b, 0xe0, 0x6a, 0xfa, 0xba, 0xef, 0xbc, 0xa7, 0x7a, 0xee, 0xe8, 0x9c, 0xe7,
+ 0x30, 0xbd, 0x66, 0x6a, 0x83, 0xa2, 0xc2, 0x52, 0xef, 0xbc, 0x28, 0x7b, 0x07, 0xad, 0xaf, 0x83, 0x71, 0xd5, 0x6c, 0xac, 0xa3, 0xad, 0xaf, 0xab, 0x91, 0xdd, 0xc7, 0x51, 0xf0, 0x50, 0x5c, 0x56,
+ 0xaa, 0x6a, 0xc7, 0x41, 0x9a, 0x78, 0x7b, 0xaf, 0x48, 0x52, 0xa7, 0x41, 0x5c, 0xfe, 0xa6, 0xf6, 0xe8, 0x41, 0x67, 0x39, 0xb6, 0x82, 0xb2, 0x8a, 0x08, 0x4a, 0x87, 0x41, 0xdd, 0x0b, 0x32, 0x20,
+ 0x89, 0x6a, 0xc7, 0x41, 0xaf, 0x35, 0xa9, 0xac, 0xaa, 0x6a, 0xa6, 0x51, 0xa0, 0x7b, 0xaa, 0x02, 0x69, 0x6a, 0xa7, 0x41, 0xf0, 0x7e, 0xc0, 0x00, 0x49, 0x5a, 0x67, 0x39, 0xdf, 0x7e, 0xaa, 0x28,
+ 0xaa, 0x6a, 0x67, 0x39, 0x57, 0x57, 0x2a, 0xfa, 0xaa, 0x6a, 0x67, 0x39, 0x75, 0x55, 0x2a, 0x0a, 0xca, 0x72, 0x87, 0x41, 0xff, 0xf5, 0xc2, 0xea, 0x29, 0x5a, 0xa7, 0x41, 0xc0, 0xe2, 0x7c, 0x65,
+ 0x08, 0x5a, 0x87, 0x31, 0x78, 0x7e, 0xff, 0x55, 0xe8, 0x41, 0x87, 0x39, 0xc9, 0x90, 0xa2, 0x29, 0x69, 0x52, 0x87, 0x39, 0xf5, 0xef, 0xbf, 0x3f, 0x49, 0x52, 0xa7, 0x39, 0xbb, 0x01, 0x80, 0x8c,
+ 0xaa, 0x62, 0xc7, 0x41, 0xbf, 0x5f, 0x0b, 0x2d, 0x89, 0x62, 0xe8, 0x49, 0xe8, 0xda, 0xfb, 0xf2, 0xca, 0x6a, 0x28, 0x4a, 0x5f, 0xed, 0xed, 0xf2, 0x69, 0x62, 0xa7, 0x39, 0xd6, 0x7e, 0xaa, 0xe8,
+ 0x08, 0x42, 0x87, 0x31, 0xaf, 0x30, 0x2e, 0x7a, 0x48, 0x4a, 0x46, 0x31, 0x8a, 0xaa, 0x28, 0x7a, 0xe7, 0x49, 0x66, 0x39, 0x3e, 0xa8, 0x2f, 0x75, 0x69, 0x52, 0xa7, 0x39, 0x7a, 0x03, 0x9c, 0xa9,
+ 0x69, 0x5a, 0xa7, 0x39, 0x7a, 0xe0, 0xa0, 0xaf, 0x69, 0x52, 0x87, 0x41, 0xb7, 0xe2, 0xfe, 0xe0, 0x89, 0x5a, 0xa7, 0x41, 0xfb, 0xc5, 0xaf, 0xaf, 0xca, 0x62, 0xa7, 0x41, 0xfd, 0x8f, 0xaf, 0x00,
+ 0xe8, 0x39, 0x87, 0x31, 0xa5, 0x78, 0x3b, 0xe7, 0xe9, 0x41, 0x87, 0x29, 0x7e, 0xaa, 0xe2, 0xeb, 0x08, 0x42, 0xa7, 0x31, 0x27, 0x57, 0x75, 0x6a, 0x6a, 0x52, 0x87, 0x31, 0x3b, 0xbd, 0xff, 0x37,
+ 0xea, 0x62, 0xe8, 0x41, 0x97, 0xd7, 0x95, 0x3f, 0x2b, 0x6b, 0xe7, 0x49, 0x2a, 0xab, 0x5f, 0xbf, 0x0a, 0x73, 0xa7, 0x39, 0xe2, 0xf8, 0x7a, 0x5c, 0x49, 0x4a, 0x87, 0x39, 0x7c, 0x7a, 0xd5, 0xed,
+ 0xe8, 0x39, 0x87, 0x31, 0xdd, 0x59, 0xd2, 0x03, 0x09, 0x4a, 0x87, 0x39, 0xdf, 0x5d, 0x5f, 0x2f, 0x09, 0x4a, 0x67, 0x31, 0xdf, 0xdf, 0xff, 0x8a, 0x08, 0x42, 0x87, 0x39, 0x7b, 0xfb, 0xcb, 0x00,
+ 0x29, 0x42, 0x67, 0x39, 0x7d, 0x7b, 0xfb, 0xa8, 0xe9, 0x41, 0xa7, 0x31, 0x17, 0xaf, 0x7a, 0x82, 0xe9, 0x41, 0xa8, 0x39, 0x34, 0xf8, 0x7b, 0xff, 0x08, 0x42, 0x87, 0x39, 0xef, 0xfc, 0x9f, 0x8b,
+ 0xaa, 0x62, 0xa7, 0x39, 0xf7, 0x2d, 0xf5, 0xed, 0x0b, 0x73, 0x67, 0x39, 0x22, 0xaa, 0xff, 0xf7, 0xaa, 0x5a, 0xa7, 0x41, 0x7c, 0xce, 0x75, 0x57, 0x8a, 0x5a, 0x87, 0x39, 0x5f, 0xfa, 0x73, 0xfd,
+ 0x08, 0x42, 0x87, 0x39, 0xe7, 0x8a, 0xfa, 0x6b, 0xe9, 0x41, 0x67, 0x31, 0x7a, 0xb0, 0xaa, 0xaa, 0xa8, 0x41, 0xe8, 0x39, 0xdf, 0x0b, 0xf7, 0xff, 0xc8, 0x39, 0x67, 0x31, 0xa0, 0x4a, 0x82, 0x82,
+ 0xe8, 0x41, 0x87, 0x31, 0xc2, 0x8d, 0x8f, 0xf5, 0xe9, 0x41, 0xa7, 0x31, 0x25, 0xab, 0xfb, 0xe6, 0x09, 0x4a, 0xc7, 0x39, 0x2f, 0x2a, 0xd7, 0x55, 0x43, 0x59, 0xe7, 0x41, 0x09, 0x09, 0xbd, 0x2d,
+ 0x84, 0x59, 0x23, 0x51, 0xf2, 0xfd, 0xae, 0xb8, 0xa4, 0x61, 0x23, 0x51, 0x7d, 0x57, 0xf8, 0xfe, 0x64, 0x51, 0x03, 0x49, 0x7b, 0x5e, 0xfb, 0x00, 0x64, 0x51, 0x03, 0x49, 0x55, 0x5f, 0x7d, 0xc0,
+ 0x44, 0x51, 0xe2, 0x40, 0x5f, 0xfa, 0xf0, 0xf0, 0x24, 0x49, 0xe2, 0x38, 0xff, 0xee, 0x80, 0x02, 0x23, 0x41, 0x02, 0x41, 0xdf, 0x7f, 0x75, 0xad, 0xc3, 0x40, 0x22, 0x31, 0xef, 0xf7, 0xf8, 0xbb,
+ 0x23, 0x41, 0xe2, 0x38, 0xde, 0xa7, 0x56, 0x35, 0x24, 0x41, 0xe3, 0x38, 0x2f, 0xcf, 0x47, 0x2b, 0x44, 0x51, 0xe2, 0x30, 0xfe, 0xff, 0xfd, 0x2b, 0x44, 0x51, 0xc3, 0x30, 0x2f, 0xb6, 0x2a, 0x0a,
+ 0x45, 0x72, 0x23, 0x51, 0xb5, 0x2d, 0x2d, 0x35, 0xc8, 0x82, 0x24, 0x72, 0x7f, 0xed, 0xad, 0x17, 0xae, 0xc4, 0xa5, 0x51, 0x8b, 0xca, 0x73, 0x52, 0x47, 0x62, 0xa8, 0x39, 0xfc, 0xfb, 0xf5, 0xf7,
+ 0x09, 0x4a, 0x86, 0x31, 0x5e, 0xf2, 0xfe, 0xba, 0x08, 0x42, 0x87, 0x31, 0xbf, 0xfd, 0x88, 0x6a, 0xe8, 0x39, 0xa7, 0x31, 0xca, 0xb4, 0xef, 0xef, 0x09, 0x4a, 0xa7, 0x39, 0xd3, 0xd5, 0xeb, 0xcf,
+ 0x09, 0x4a, 0xa7, 0x31, 0xfe, 0x76, 0x0a, 0xa2, 0x48, 0x42, 0x46, 0x31, 0xab, 0x5f, 0xa2, 0xbe, 0x6a, 0x52, 0x87, 0x39, 0x0b, 0xb5, 0xfd, 0xbf, 0x6c, 0x73, 0xc7, 0x39, 0xa9, 0xa3, 0xf5, 0xd5,
+ 0x0a, 0x6b, 0x67, 0x31, 0x2e, 0x88, 0xf7, 0xee, 0x2a, 0x73, 0xa7, 0x39, 0xf0, 0xff, 0xf5, 0xdd, 0x48, 0x4a, 0xa7, 0x41, 0xf7, 0xa8, 0x57, 0xa3, 0xea, 0x6a, 0xc7, 0x41, 0xe2, 0x6d, 0x75, 0xff,
+ 0x28, 0x4a, 0xa7, 0x39, 0xff, 0xb3, 0x5f, 0x7f, 0x08, 0x4a, 0x87, 0x31, 0x00, 0x08, 0xfb, 0x5e, 0x08, 0x4a, 0xa7, 0x39, 0xbb, 0xe2, 0x57, 0xf5, 0x09, 0x4a, 0xc8, 0x39, 0xad, 0xaa, 0xf7, 0x21,
+ 0x08, 0x4a, 0xc7, 0x39, 0xe2, 0x75, 0x77, 0x28, 0x49, 0x4a, 0x87, 0x39, 0xaa, 0xaa, 0xde, 0x2e, 0x29, 0x4a, 0x66, 0x39, 0x7c, 0xe0, 0x77, 0x7c, 0xc8, 0x49, 0x86, 0x31, 0xff, 0xf7, 0xa7, 0xac,
+ 0xc8, 0x41, 0x46, 0x31, 0xa6, 0xdf, 0xf2, 0xab, 0xc8, 0x49, 0x46, 0x31, 0x22, 0xeb, 0xf7, 0xaf, 0xc8, 0x39, 0x67, 0x31, 0xbe, 0xe7, 0xd7, 0xfb, 0x08, 0x42, 0x67, 0x31, 0xeb, 0xf3, 0xf5, 0x5d,
+ 0xc8, 0x39, 0x66, 0x31, 0x8a, 0x2c, 0x6f, 0xd7, 0xe8, 0x41, 0x66, 0x31, 0x0e, 0xa3, 0x09, 0xbd, 0xc8, 0x49, 0x87, 0x39, 0x72, 0xee, 0x7e, 0xf8, 0xc4, 0x61, 0xa7, 0x39, 0x3d, 0xbd, 0xb5, 0xff,
+ 0xe4, 0x61, 0x43, 0x59, 0x28, 0x3f, 0xff, 0xfd, 0x25, 0x6a, 0x23, 0x59, 0x8a, 0xaa, 0x7e, 0x7d, 0xa4, 0x61, 0x23, 0x51, 0x0c, 0x8a, 0x8b, 0xe5, 0x84, 0x61, 0x23, 0x51, 0x7b, 0xfe, 0xf7, 0x78,
+ 0x44, 0x59, 0x23, 0x49, 0xa0, 0x7f, 0xef, 0xde, 0x44, 0x59, 0x03, 0x49, 0xd7, 0xdf, 0xad, 0x2b, 0x64, 0x59, 0x03, 0x49, 0x5f, 0xdf, 0xaa, 0x28, 0x43, 0x59, 0x02, 0x41, 0xbd, 0xea, 0xa0, 0xa8,
+ 0x63, 0x59, 0x03, 0x41, 0x7f, 0xff, 0xa0, 0x0a, 0x43, 0x51, 0x02, 0x49, 0x17, 0xf8, 0xb8, 0xf8, 0x45, 0x72, 0x43, 0x59, 0xff, 0x05, 0x0f, 0x2f, 0xa7, 0x72, 0xc5, 0x61, 0xfd, 0xab, 0x2a, 0xff,
+ 0xa7, 0x72, 0x05, 0x6a, 0xbf, 0x3a, 0xf8, 0x5d, 0xa7, 0x72, 0xe4, 0x69, 0xa8, 0xa8, 0xeb, 0xf5, 0xe9, 0x7a, 0x04, 0x62, 0xaa, 0xa3, 0xbd, 0x35, 0x08, 0x7b, 0x25, 0x62, 0xfa, 0x7a, 0x5c, 0x5e,
+ 0xc8, 0x72, 0x05, 0x62, 0x83, 0x79, 0xfb, 0xff, 0x67, 0x72, 0x05, 0x6a, 0x5e, 0xfd, 0xaa, 0xa8, 0x66, 0x72, 0x05, 0x62, 0x88, 0xab, 0xeb, 0xeb, 0x08, 0x83, 0x25, 0x6a, 0xef, 0xfd, 0xad, 0x2d,
+ 0x4d, 0xac, 0x66, 0x72, 0xf1, 0xad, 0x0b, 0x03, 0x6e, 0xac, 0x86, 0x72, 0xff, 0xad, 0x2a, 0x82, 0x8e, 0xb4, 0x25, 0x6a, 0x80, 0x68, 0x9a, 0x8e, 0x30, 0xc5, 0x08, 0x83, 0xfd, 0x3f, 0xcf, 0xe9,
+ 0x30, 0xc5, 0xe8, 0x7a, 0xbc, 0xe7, 0xbf, 0xab, 0x30, 0xcd, 0x49, 0x8b, 0xa9, 0xaf, 0x2a, 0x22, 0x91, 0xd5, 0xc6, 0x59, 0x00, 0x8a, 0x40, 0x52, 0xa9, 0x72, 0xc7, 0x41, 0xe8, 0xae, 0xb7, 0xf5,
+ 0xa9, 0x62, 0x86, 0x39, 0x2b, 0x9e, 0xfc, 0xff, 0x69, 0x5a, 0xc7, 0x39, 0xfc, 0xb4, 0xf7, 0xaf, 0x48, 0x4a, 0xa7, 0x39, 0x96, 0x60, 0x6b, 0x7a, 0x28, 0x4a, 0x87, 0x39, 0xe8, 0x0b, 0x29, 0x2b,
+ 0xa9, 0x6a, 0xa6, 0x39, 0xe9, 0x0b, 0x3f, 0xbf, 0xc9, 0x72, 0xc7, 0x49, 0x7f, 0xfa, 0xb8, 0xf7, 0x89, 0x62, 0xc8, 0x51, 0xfd, 0x8a, 0x78, 0xbf, 0x69, 0x62, 0xe8, 0x49, 0xd7, 0xe2, 0x89, 0x22,
+ 0xaa, 0x62, 0xe7, 0x41, 0xf7, 0xa9, 0xa3, 0x9c, 0xaa, 0x72, 0xa7, 0x41, 0xfb, 0x78, 0x57, 0x57, 0x49, 0x52, 0x66, 0x39, 0xf0, 0xd6, 0x57, 0xff, 0x08, 0x5a, 0x67, 0x39, 0xc1, 0xed, 0xfd, 0x9f,
+ 0xc8, 0x41, 0x66, 0x31, 0xaa, 0xaf, 0x7d, 0x70, 0xe8, 0x41, 0x87, 0x31, 0xab, 0xa8, 0xaf, 0x35, 0x49, 0x5a, 0xa7, 0x39, 0x3f, 0xf5, 0xfd, 0xd7, 0xaa, 0x5a, 0xc7, 0x39, 0x8a, 0xa5, 0xd7, 0xbf,
+ 0x89, 0x5a, 0xa6, 0x39, 0x87, 0xbb, 0xfa, 0xaa, 0xc9, 0x5a, 0x87, 0x39, 0x02, 0x7a, 0xde, 0xff, 0xc9, 0x6a, 0xa7, 0x39, 0x2a, 0xfd, 0xdf, 0x7d, 0x69, 0x52, 0x87, 0x31, 0xf8, 0xdf, 0x7f, 0x5f,
+ 0xe8, 0x41, 0x87, 0x31, 0xbf, 0xf3, 0x87, 0x3a, 0xc8, 0x41, 0x67, 0x31, 0x7f, 0xdf, 0xee, 0xbc, 0xa8, 0x41, 0x67, 0x39, 0xdb, 0x5d, 0x09, 0xc2, 0x69, 0x52, 0x67, 0x31, 0x25, 0xf7, 0xff, 0xaf,
+ 0xaa, 0x5a, 0x87, 0x39, 0xf8, 0xff, 0x55, 0xdf, 0x89, 0x5a, 0x87, 0x39, 0x02, 0x2b, 0x7d, 0x55, 0xaa, 0x5a, 0xa8, 0x41, 0x5e, 0xfa, 0x2b, 0xa9, 0xaa, 0x62, 0xa7, 0x39, 0x2a, 0xad, 0xbb, 0xaa,
+ 0x29, 0x42, 0x88, 0x39, 0xff, 0x8b, 0xae, 0xd5, 0x49, 0x4a, 0xa7, 0x39, 0xff, 0xaa, 0x15, 0x5d, 0xca, 0x62, 0x87, 0x31, 0x7f, 0xab, 0xa0, 0xff, 0x89, 0x5a, 0xa7, 0x29, 0xf5, 0xaf, 0x2a, 0xaa,
+ 0x2b, 0x6b, 0x09, 0x4a, 0xbd, 0x2a, 0xaa, 0xfd, 0x2b, 0x6b, 0xe7, 0x49, 0xba, 0x28, 0xb6, 0x2a, 0xae, 0x83, 0xc7, 0x41, 0x4f, 0xaa, 0xfd, 0x7e, 0x89, 0x52, 0xc8, 0x39, 0xfd, 0xfe, 0x78, 0x75,
+ 0x09, 0x42, 0xa7, 0x31, 0x83, 0xaf, 0xef, 0x7a, 0x29, 0x4a, 0x88, 0x31, 0x0a, 0xff, 0xd7, 0xfa, 0x09, 0x42, 0x67, 0x29, 0xa0, 0xba, 0x5e, 0xfa, 0x29, 0x4a, 0xa8, 0x31, 0xff, 0x77, 0x7d, 0xc3,
+ 0x09, 0x42, 0x87, 0x31, 0xae, 0x2d, 0xbf, 0xaa, 0x29, 0x42, 0xa8, 0x39, 0xaa, 0xda, 0x7f, 0xeb, 0x8a, 0x52, 0x88, 0x31, 0x0f, 0xaf, 0xed, 0xbf, 0x6a, 0x52, 0xe8, 0x39, 0xae, 0xe3, 0x39, 0xf5,
+ 0x2b, 0x63, 0xc8, 0x39, 0xff, 0x2f, 0xd7, 0xdf, 0xca, 0x6a, 0xc7, 0x39, 0x0a, 0xa8, 0xbf, 0x5f, 0xeb, 0x6a, 0xe8, 0x41, 0xec, 0xc2, 0xfa, 0xd5, 0xca, 0x62, 0xc8, 0x41, 0x15, 0xaf, 0xaa, 0xff,
+ 0x8a, 0x5a, 0xa7, 0x41, 0x75, 0xf0, 0x8e, 0x60, 0x49, 0x4a, 0xa8, 0x39, 0xdf, 0xde, 0x28, 0x2a, 0x8a, 0x52, 0x67, 0x39, 0x7f, 0xff, 0xa0, 0xe8, 0x89, 0x52, 0xa8, 0x39, 0xd5, 0x57, 0xfe, 0xf2,
+ 0x08, 0x42, 0xa7, 0x39, 0x75, 0x57, 0x62, 0xf2, 0xe8, 0x41, 0x67, 0x39, 0x8d, 0x09, 0xae, 0x2a, 0xe8, 0x41, 0x87, 0x31, 0xbe, 0x0f, 0x6e, 0xae, 0x64, 0x59, 0xe8, 0x39, 0x2d, 0x0d, 0xbd, 0xbf,
+ 0xc4, 0x61, 0x43, 0x51, 0x5f, 0x7e, 0xe8, 0xf2, 0x84, 0x59, 0x43, 0x49, 0xae, 0xf6, 0xc0, 0x00, 0x63, 0x59, 0x23, 0x51, 0x92, 0x60, 0xfa, 0xe0, 0x64, 0x59, 0x23, 0x49, 0x8a, 0x29, 0xbd, 0xb7,
+ 0x64, 0x59, 0xe3, 0x48, 0x79, 0x2e, 0x28, 0xa0, 0x64, 0x51, 0x03, 0x41, 0xd5, 0x5f, 0x70, 0xbf, 0x44, 0x49, 0xe2, 0x40, 0xff, 0xbe, 0xfe, 0xe8, 0x44, 0x49, 0xe2, 0x40, 0xad, 0xbf, 0x7d, 0xc2,
+ 0x23, 0x49, 0xe2, 0x40, 0xef, 0x5e, 0xe1, 0x3e, 0x44, 0x49, 0xe2, 0x40, 0xe3, 0x7f, 0xf3, 0x7d, 0x24, 0x49, 0xe3, 0x38, 0xff, 0xff, 0xeb, 0xaf, 0x64, 0x51, 0xe3, 0x38, 0xa5, 0x07, 0x27, 0x0d,
+ 0xc5, 0x69, 0x03, 0x41, 0xa5, 0x2d, 0xad, 0x2d, 0x2a, 0x83, 0xc4, 0x61, 0xb5, 0x7d, 0xdf, 0x37, 0xf0, 0xcc, 0xc7, 0x41, 0x5c, 0x56, 0x57, 0x55, 0x29, 0x4a, 0xa7, 0x39, 0xac, 0xbb, 0xda, 0x82,
+ 0x29, 0x4a, 0xa7, 0x39, 0xb8, 0xae, 0x5f, 0xfb, 0x29, 0x42, 0xc7, 0x39, 0x3b, 0x82, 0xd8, 0x6a, 0x29, 0x4a, 0xa7, 0x39, 0xf7, 0xe2, 0xab, 0xb7, 0x28, 0x42, 0x67, 0x31, 0xaa, 0xee, 0x27, 0x8a,
+ 0x29, 0x4a, 0xa7, 0x31, 0xe8, 0x08, 0xa8, 0x5b, 0x6a, 0x5a, 0xc7, 0x39, 0xfd, 0x2a, 0xff, 0xff, 0xaa, 0x5a, 0xe8, 0x41, 0x7f, 0x8a, 0x8a, 0xfd, 0xa9, 0x5a, 0xe8, 0x41, 0xdf, 0x2f, 0x02, 0xab,
+ 0x2c, 0x73, 0xe8, 0x41, 0x75, 0x87, 0xe2, 0xee, 0xea, 0x6a, 0x08, 0x4a, 0xaf, 0x8b, 0x6f, 0x7f, 0x89, 0x5a, 0xc7, 0x41, 0x2e, 0x7f, 0xf5, 0x7b, 0xaa, 0x5a, 0xc8, 0x41, 0xfc, 0x5f, 0xff, 0x57,
+ 0x08, 0x4a, 0x87, 0x39, 0xae, 0xba, 0x00, 0x05, 0xe8, 0x41, 0xa7, 0x31, 0x42, 0xa8, 0x00, 0xa8, 0x08, 0x42, 0x87, 0x31, 0xa9, 0x02, 0x0a, 0x3a, 0x29, 0x4a, 0xa7, 0x39, 0xff, 0xa2, 0xb9, 0xd6,
+ 0x08, 0x4a, 0x87, 0x39, 0x7a, 0xab, 0x2b, 0x8a, 0xa7, 0x49, 0x08, 0x42, 0xfa, 0x8b, 0x6f, 0xed, 0x28, 0x4a, 0xa7, 0x41, 0xb8, 0x5e, 0xb2, 0xe7, 0xe8, 0x49, 0x87, 0x41, 0x8c, 0xaf, 0x58, 0xaa,
+ 0xe8, 0x41, 0x86, 0x39, 0x7e, 0x00, 0xba, 0xc2, 0xe8, 0x41, 0x46, 0x31, 0xbf, 0xe2, 0xc0, 0x6a, 0xa8, 0x39, 0x47, 0x31, 0xdf, 0xfa, 0xc0, 0xfa, 0xc8, 0x41, 0x67, 0x31, 0xbf, 0xd5, 0x8a, 0x3b,
+ 0xe8, 0x41, 0x46, 0x31, 0xff, 0xfd, 0x2e, 0x82, 0xe8, 0x41, 0x67, 0x31, 0xfd, 0xff, 0xa3, 0x23, 0xe8, 0x41, 0x67, 0x39, 0xa8, 0x22, 0x0d, 0x9f, 0xe8, 0x49, 0x86, 0x41, 0xd7, 0x70, 0xa0, 0xcb,
+ 0x84, 0x51, 0x03, 0x49, 0x8b, 0xe3, 0xda, 0x7e, 0x84, 0x59, 0x03, 0x49, 0xe2, 0xa3, 0xc3, 0xfd, 0xa4, 0x59, 0x03, 0x49, 0xcb, 0xcb, 0x75, 0xdd, 0x84, 0x59, 0x03, 0x49, 0xe0, 0xa0, 0xef, 0xe5,
+ 0x64, 0x59, 0x23, 0x51, 0xef, 0xba, 0xd5, 0xff, 0x64, 0x51, 0xe3, 0x48, 0xaa, 0x9e, 0xba, 0xa8, 0x84, 0x59, 0x02, 0x49, 0xa2, 0x7b, 0xde, 0xff, 0x44, 0x49, 0xe3, 0x40, 0xaa, 0x57, 0x3e, 0x5f,
+ 0x43, 0x51, 0x03, 0x41, 0x0a, 0xb5, 0xa7, 0xbf, 0xc4, 0x59, 0xe3, 0x50, 0xff, 0xdf, 0xbf, 0x2f, 0x05, 0x6a, 0x83, 0x61, 0x2d, 0xe5, 0x02, 0xe2, 0x04, 0x6a, 0x83, 0x61, 0xbe, 0x7f, 0x80, 0xa8,
+ 0xe4, 0x69, 0x83, 0x59, 0xaa, 0x63, 0x82, 0x0a, 0x05, 0x6a, 0xa4, 0x59, 0x0a, 0x09, 0x02, 0xaa, 0x49, 0x8b, 0xc4, 0x61, 0xb5, 0x2f, 0xef, 0x29, 0x6a, 0x93, 0xa4, 0x59, 0x5f, 0xf1, 0xbf, 0xea,
+ 0x66, 0x6a, 0xa5, 0x59, 0xaa, 0xa9, 0x88, 0x88, 0xe8, 0x82, 0xe5, 0x61, 0xff, 0x7f, 0x7f, 0x63, 0x49, 0x8b, 0xe5, 0x61, 0x5d, 0xd5, 0x35, 0x2d, 0xcb, 0x9b, 0x46, 0x6a, 0xfd, 0xfa, 0xbe, 0x3f,
+ 0xce, 0xbc, 0x08, 0x83, 0xbf, 0xad, 0xa2, 0x8a, 0x6d, 0xb4, 0x87, 0x72, 0x70, 0xd8, 0xaa, 0xa8, 0x8d, 0xb4, 0x86, 0x7a, 0xa9, 0x32, 0xaa, 0xbe, 0xee, 0xc4, 0x8a, 0x93, 0xad, 0x6f, 0x8f, 0xfa,
+ 0x0f, 0xc5, 0xca, 0x9b, 0xa6, 0xbf, 0x0d, 0x02, 0x50, 0xcd, 0xeb, 0xab, 0xa2, 0xe8, 0x60, 0x98, 0x10, 0xcd, 0xc7, 0x51, 0x5c, 0x56, 0x54, 0x54, 0x49, 0x5a, 0x87, 0x49, 0x9e, 0xaa, 0x28, 0xaa,
+ 0xaa, 0x62, 0xc7, 0x49, 0x5f, 0xf7, 0xfe, 0x62, 0x49, 0x52, 0xa7, 0x41, 0x8f, 0xd6, 0xaa, 0xea, 0x29, 0x52, 0xa7, 0x41, 0xff, 0x7d, 0xb2, 0x6f, 0x48, 0x52, 0x86, 0x39, 0x9d, 0x7d, 0xcf, 0xab,
+ 0x89, 0x62, 0xa7, 0x41, 0x2b, 0xbd, 0xdf, 0xb8, 0xaa, 0x6a, 0xa7, 0x49, 0x9a, 0x02, 0xb2, 0xbf, 0xc9, 0x6a, 0x28, 0x5a, 0xd7, 0x36, 0xad, 0xeb, 0xa9, 0x62, 0xc7, 0x41, 0xc0, 0x76, 0x6a, 0x8a,
+ 0x89, 0x5a, 0x67, 0x39, 0xf7, 0xff, 0xd7, 0x2e, 0x89, 0x62, 0x87, 0x41, 0x55, 0xff, 0xff, 0xe0, 0xe8, 0x51, 0x66, 0x39, 0x95, 0x3a, 0x95, 0xee, 0xe8, 0x49, 0x67, 0x39, 0xaa, 0x62, 0x22, 0x22,
+ 0xe8, 0x49, 0x67, 0x31, 0xed, 0xea, 0xb8, 0x03, 0xc8, 0x41, 0x87, 0x29, 0xef, 0x35, 0xaa, 0xf8, 0xe8, 0x41, 0x87, 0x39, 0x0d, 0xa5, 0xae, 0xaa, 0x49, 0x52, 0xc8, 0x41, 0x6b, 0xc1, 0xe5, 0xa5,
+ 0x08, 0x4a, 0x87, 0x39, 0xb2, 0xfc, 0xef, 0x50, 0xe8, 0x49, 0xa7, 0x39, 0xed, 0x4b, 0xa3, 0x23, 0x08, 0x4a, 0x87, 0x31, 0xf2, 0xbb, 0xda, 0xb6, 0xe8, 0x41, 0x66, 0x29, 0xa7, 0x0a, 0xa2, 0xfa,
+ 0xe8, 0x41, 0x86, 0x39, 0xad, 0x9a, 0x0a, 0xfb, 0x08, 0x42, 0x67, 0x39, 0xf6, 0xda, 0xdf, 0x27, 0xc8, 0x49, 0x86, 0x39, 0x95, 0xb7, 0x0a, 0x8f, 0x08, 0x42, 0x87, 0x39, 0x0f, 0xff, 0xb5, 0xed,
+ 0x08, 0x4a, 0xa7, 0x41, 0x7e, 0xcb, 0xad, 0xef, 0xe8, 0x41, 0x67, 0x39, 0xaf, 0xb7, 0xaa, 0x8a, 0x49, 0x4a, 0xa7, 0x41, 0x2d, 0xb5, 0xfd, 0xfe, 0x69, 0x52, 0xe8, 0x41, 0x2e, 0xaa, 0xff, 0x6b,
+ 0xe9, 0x41, 0x67, 0x31, 0xb7, 0xf3, 0xab, 0xaa, 0xe8, 0x39, 0x87, 0x31, 0xe8, 0xaa, 0x5b, 0xde, 0x29, 0x42, 0xa8, 0x31, 0x77, 0xc3, 0xe9, 0x7e, 0x29, 0x4a, 0xa8, 0x31, 0xfa, 0x0b, 0xd5, 0x55,
+ 0x29, 0x4a, 0xc8, 0x39, 0xbf, 0x2a, 0xe8, 0x9d, 0xeb, 0x62, 0xe8, 0x41, 0xfd, 0xde, 0xc9, 0x95, 0x4c, 0x73, 0x09, 0x4a, 0xf7, 0xeb, 0x61, 0x7e, 0xaa, 0x5a, 0xa8, 0x39, 0xd6, 0xfe, 0x62, 0x88,
+ 0x49, 0x4a, 0x88, 0x39, 0x2f, 0x9e, 0x7d, 0xea, 0x28, 0x42, 0x87, 0x31, 0x7c, 0x78, 0x77, 0xfe, 0xe8, 0x41, 0x87, 0x31, 0xab, 0xba, 0x8d, 0xaa, 0x29, 0x42, 0xa8, 0x39, 0xb2, 0x7f, 0xff, 0x9b,
+ 0x09, 0x42, 0xa7, 0x39, 0xbb, 0x57, 0x5e, 0xe8, 0x09, 0x42, 0xa8, 0x31, 0x96, 0x7a, 0x2a, 0xaa, 0x29, 0x42, 0xa7, 0x31, 0xbc, 0x79, 0x68, 0xbb, 0x29, 0x42, 0x67, 0x31, 0x8a, 0x2a, 0x6f, 0xaa,
+ 0x6a, 0x52, 0x87, 0x31, 0xa2, 0xbe, 0xb7, 0x7f, 0x69, 0x5a, 0xc8, 0x39, 0xea, 0x2b, 0xa5, 0x55, 0xaa, 0x5a, 0xc7, 0x41, 0x8b, 0xbe, 0xbe, 0xf7, 0xea, 0x6a, 0xa7, 0x41, 0xcb, 0xfa, 0xeb, 0xd7,
+ 0x49, 0x4a, 0xc8, 0x41, 0xf0, 0x83, 0xc0, 0xdd, 0xaa, 0x52, 0xe8, 0x39, 0xd7, 0x0f, 0xfd, 0x5d, 0x8a, 0x52, 0xa7, 0x39, 0xef, 0xa8, 0xaa, 0x7e, 0x49, 0x4a, 0xa8, 0x39, 0xde, 0xde, 0xdc, 0xff,
+ 0x29, 0x4a, 0xc8, 0x39, 0x6f, 0x9d, 0xbb, 0x2f, 0x29, 0x42, 0x87, 0x31, 0xdf, 0xfb, 0x6a, 0xa8, 0x09, 0x42, 0x67, 0x31, 0x2a, 0x02, 0xf5, 0xbe, 0xc6, 0x59, 0xe8, 0x39, 0x2f, 0x2b, 0x3d, 0xd5,
+ 0x26, 0x6a, 0x83, 0x59, 0x5f, 0xff, 0xfa, 0xf8, 0xe4, 0x59, 0x43, 0x51, 0x7f, 0xef, 0xfe, 0xf8, 0xa3, 0x59, 0x22, 0x49, 0xef, 0x68, 0x7b, 0x7e, 0x64, 0x51, 0x03, 0x49, 0xbf, 0xfb, 0xb7, 0xff,
+ 0x64, 0x59, 0x23, 0x49, 0xab, 0xea, 0x27, 0xf5, 0x63, 0x51, 0xe2, 0x48, 0xfe, 0xfa, 0xd8, 0xe0, 0x23, 0x49, 0xe2, 0x40, 0xbe, 0xba, 0xaa, 0xf8, 0x04, 0x51, 0x02, 0x41, 0x55, 0xff, 0xa2, 0xd7,
+ 0xe3, 0x48, 0x23, 0x41, 0x77, 0xad, 0xdb, 0xfa, 0x44, 0x49, 0xe2, 0x40, 0xf2, 0x28, 0x7e, 0xd2, 0x24, 0x51, 0xe3, 0x38, 0x5f, 0xaf, 0xb7, 0x0e, 0x64, 0x51, 0x02, 0x41, 0x8d, 0xb5, 0xa5, 0xb8,
+ 0xc8, 0x7a, 0xe3, 0x48, 0xf7, 0xf5, 0xf5, 0x35, 0xb0, 0xbc, 0x85, 0x49, 0xc5, 0x49, 0x73, 0x5c, 0x29, 0x4a, 0xe7, 0x41, 0x5f, 0xe1, 0xa5, 0xe5, 0x29, 0x4a, 0xa7, 0x39, 0x8a, 0x8a, 0xaa, 0x9a,
+ 0x29, 0x4a, 0xc7, 0x39, 0xa8, 0x0b, 0xa2, 0x79, 0x29, 0x4a, 0xa7, 0x39, 0xb6, 0xe0, 0x26, 0xcd, 0x49, 0x4a, 0xc7, 0x39, 0xe3, 0x79, 0xf6, 0x5e, 0xe8, 0x41, 0x87, 0x31, 0xae, 0xfe, 0x0e, 0x24,
+ 0x08, 0x42, 0xa7, 0x31, 0xe9, 0xa9, 0xa7, 0xa8, 0x09, 0x42, 0x87, 0x39, 0x42, 0x2f, 0x3a, 0xac, 0x28, 0x4a, 0xc7, 0x41, 0x2d, 0xb2, 0x48, 0xf8, 0xaa, 0x62, 0xc7, 0x39, 0x5f, 0x2a, 0xbd, 0xfd,
+ 0xaa, 0x5a, 0xe7, 0x41, 0xff, 0x2e, 0xeb, 0xfd, 0xca, 0x62, 0xa7, 0x39, 0xe2, 0xf8, 0xfa, 0x57, 0x49, 0x52, 0xc7, 0x39, 0xba, 0xb9, 0xe8, 0xfd, 0x29, 0x4a, 0xc7, 0x39, 0xff, 0xd5, 0xea, 0x8a,
+ 0x49, 0x4a, 0xa7, 0x39, 0x7f, 0xb5, 0x9f, 0x3e, 0x08, 0x4a, 0xa7, 0x39, 0xf6, 0x2a, 0xea, 0xae, 0x08, 0x4a, 0xa7, 0x31, 0xf4, 0xfa, 0x3e, 0x2b, 0x08, 0x4a, 0x87, 0x41, 0x8b, 0x32, 0xd3, 0xe0,
+ 0x08, 0x42, 0xa7, 0x39, 0x2e, 0xba, 0x7b, 0xb2, 0x28, 0x4a, 0xc7, 0x41, 0xfa, 0xeb, 0xb7, 0xf5, 0x08, 0x4a, 0xa7, 0x41, 0x5e, 0xeb, 0xeb, 0xcb, 0x08, 0x42, 0x87, 0x39, 0x82, 0xad, 0x3b, 0x8a,
+ 0x28, 0x4a, 0xa7, 0x39, 0xba, 0x6b, 0x54, 0x77, 0xe8, 0x41, 0x47, 0x31, 0xaa, 0x28, 0xe2, 0x6a, 0xe8, 0x41, 0x67, 0x31, 0xa0, 0xfe, 0xfd, 0xa9, 0xe8, 0x41, 0x67, 0x39, 0xbe, 0x2a, 0xaf, 0xf5,
+ 0xe8, 0x41, 0x67, 0x39, 0xff, 0xbe, 0x7b, 0xc2, 0xe8, 0x41, 0x87, 0x39, 0xed, 0xa3, 0xea, 0x4f, 0x08, 0x4a, 0x66, 0x31, 0x79, 0x0e, 0xba, 0x8a, 0x08, 0x4a, 0xa7, 0x41, 0x9f, 0x5f, 0xe0, 0xeb,
+ 0x84, 0x51, 0x23, 0x49, 0x5c, 0x56, 0xbc, 0xe8, 0x44, 0x59, 0x23, 0x41, 0xef, 0x8d, 0x7e, 0xee, 0x44, 0x51, 0x03, 0x41, 0x2a, 0xae, 0x67, 0xf8, 0x44, 0x51, 0x03, 0x41, 0xae, 0x0c, 0xf7, 0xf8,
+ 0x44, 0x51, 0xe2, 0x40, 0x0a, 0xa2, 0x2a, 0x2d, 0x44, 0x59, 0x23, 0x49, 0x99, 0x2a, 0xfe, 0xff, 0x64, 0x59, 0x23, 0x51, 0xdd, 0xdc, 0x5d, 0xf7, 0x24, 0x51, 0x03, 0x49, 0xfe, 0x7c, 0xda, 0x62,
+ 0xc5, 0x61, 0x02, 0x49, 0x7f, 0xfd, 0xdd, 0x2d, 0x25, 0x6a, 0x23, 0x51, 0x2d, 0x09, 0x8a, 0x80, 0x25, 0x6a, 0xa4, 0x61, 0xce, 0xbe, 0xbf, 0x79, 0x25, 0x6a, 0xa4, 0x61, 0x62, 0xea, 0x2f, 0xaf,
+ 0x86, 0x72, 0xa4, 0x59, 0xf5, 0xfd, 0x3f, 0xef, 0xe8, 0x7a, 0x05, 0x62, 0x5d, 0xd4, 0xbf, 0x2d, 0xeb, 0x9b, 0x25, 0x6a, 0x2d, 0xab, 0xa8, 0xf9, 0x69, 0x8b, 0x25, 0x6a, 0xe2, 0xe3, 0x74, 0x55,
+ 0x86, 0x6a, 0xe4, 0x61, 0xe8, 0xaf, 0xe0, 0xf7, 0x46, 0x6a, 0xe4, 0x61, 0xcf, 0x27, 0x07, 0x7a, 0xe8, 0x7a, 0xc4, 0x61, 0x2f, 0x2f, 0x2f, 0xf5, 0x4b, 0xa4, 0x83, 0x59, 0x2b, 0x02, 0xfe, 0x55,
+ 0x8d, 0xbc, 0xc3, 0x61, 0xa2, 0xfc, 0x5f, 0x55, 0xaa, 0xa3, 0xe3, 0x69, 0xbe, 0x8e, 0xbd, 0x25, 0x4c, 0xac, 0x66, 0x7a, 0xaf, 0x02, 0x32, 0x56, 0x0e, 0xc5, 0x65, 0x7a, 0x0a, 0xea, 0xda, 0xbb,
+ 0xad, 0xc4, 0x69, 0x93, 0x28, 0x95, 0xbd, 0xaf, 0x2f, 0xcd, 0x49, 0x93, 0x0a, 0xaa, 0x1a, 0xfa, 0x6a, 0x93, 0xa7, 0x41, 0x5c, 0x56, 0x57, 0x55, 0x48, 0x62, 0xa7, 0x41, 0x8a, 0x7f, 0xdf, 0xfd,
+ 0x08, 0x52, 0xa7, 0x41, 0xe8, 0x2d, 0x7e, 0xf7, 0x08, 0x4a, 0x87, 0x41, 0xa2, 0xeb, 0x57, 0x7f, 0x28, 0x4a, 0xa7, 0x41, 0x2f, 0xff, 0x55, 0x5f, 0x28, 0x4a, 0xa7, 0x39, 0xb6, 0x2b, 0xa7, 0xb5,
+ 0x49, 0x5a, 0xa7, 0x41, 0xea, 0xf2, 0xe3, 0xbd, 0x8a, 0x6a, 0xa6, 0x49, 0x33, 0xab, 0x02, 0xde, 0xca, 0x6a, 0xa6, 0x41, 0x22, 0xa2, 0x7a, 0x5f, 0xaa, 0x72, 0x86, 0x39, 0xc0, 0xe0, 0x7b, 0x77,
+ 0x49, 0x5a, 0xa7, 0x39, 0x8a, 0x0d, 0xbd, 0xb5, 0x28, 0x5a, 0xa7, 0x39, 0xa0, 0xb8, 0xfe, 0x7d, 0x08, 0x4a, 0xa7, 0x41, 0x4f, 0xad, 0xa8, 0xdd, 0x28, 0x4a, 0xa7, 0x41, 0x3d, 0xaf, 0xfe, 0xff,
+ 0x08, 0x4a, 0x67, 0x39, 0xa0, 0xb8, 0x7b, 0xfe, 0xc8, 0x41, 0x67, 0x31, 0x68, 0x8b, 0xa1, 0x8b, 0x08, 0x42, 0x87, 0x39, 0x7b, 0xef, 0x0b, 0xdf, 0x08, 0x42, 0x87, 0x39, 0x03, 0xf2, 0xe2, 0x7a,
+ 0x09, 0x4a, 0xa7, 0x39, 0x9a, 0x2b, 0x2e, 0xea, 0x29, 0x4a, 0xa7, 0x41, 0xea, 0x7a, 0x0f, 0x6b, 0xe8, 0x41, 0x67, 0x39, 0xca, 0xc0, 0x70, 0xff, 0xc7, 0x39, 0x46, 0x31, 0x78, 0xaa, 0x8a, 0xae,
+ 0xc8, 0x41, 0x66, 0x31, 0xae, 0xae, 0x7a, 0xea, 0x08, 0x4a, 0x67, 0x39, 0x2d, 0xff, 0xfd, 0xbf, 0xe8, 0x49, 0x66, 0x39, 0x3f, 0xff, 0x5f, 0xff, 0xe7, 0x41, 0x66, 0x39, 0x8b, 0xae, 0x2d, 0x5b,
+ 0xe8, 0x41, 0x87, 0x39, 0x8a, 0x08, 0xae, 0xa7, 0xe8, 0x49, 0x87, 0x41, 0xfa, 0x88, 0xea, 0x55, 0xe8, 0x41, 0x87, 0x39, 0x00, 0x2a, 0x2f, 0xf5, 0x08, 0x42, 0x87, 0x39, 0xa2, 0x8b, 0xad, 0xb7,
+ 0x29, 0x42, 0xa7, 0x39, 0x7d, 0xaa, 0x2a, 0x7c, 0x09, 0x42, 0xa8, 0x31, 0x5f, 0xee, 0xb7, 0x3b, 0x09, 0x4a, 0x66, 0x29, 0xaa, 0x80, 0x22, 0x7e, 0x29, 0x4a, 0xa8, 0x39, 0xff, 0xee, 0x98, 0x7e,
+ 0x29, 0x4a, 0x88, 0x39, 0xbf, 0x3f, 0xaa, 0xdf, 0xaa, 0x5a, 0xe8, 0x41, 0x5f, 0x80, 0xdf, 0x75, 0x69, 0x52, 0xc8, 0x41, 0x38, 0x3e, 0xfa, 0x97, 0x0b, 0x6b, 0x08, 0x4a, 0xef, 0xb2, 0xe9, 0xd5,
+ 0x8a, 0x5a, 0xe8, 0x41, 0xde, 0x82, 0x6a, 0xb5, 0x29, 0x4a, 0xa8, 0x39, 0xbb, 0x5c, 0x5e, 0x28, 0x08, 0x42, 0x87, 0x39, 0x28, 0xdd, 0xf5, 0xaa, 0x09, 0x42, 0xa8, 0x39, 0xb2, 0xbf, 0xdd, 0xca,
+ 0xe9, 0x41, 0xa7, 0x31, 0xab, 0x6a, 0xc2, 0xca, 0x29, 0x42, 0xa8, 0x39, 0xa2, 0xe5, 0xff, 0xe5, 0x09, 0x42, 0xa7, 0x39, 0xd8, 0x1e, 0xfa, 0xe3, 0x09, 0x42, 0xa7, 0x39, 0xc2, 0xca, 0x22, 0xbd,
+ 0x49, 0x4a, 0xa8, 0x39, 0xaf, 0xa9, 0xde, 0xa8, 0x09, 0x42, 0xa8, 0x39, 0x02, 0xe8, 0xe2, 0x24, 0x49, 0x52, 0xa8, 0x41, 0xa9, 0xaa, 0xfd, 0x8a, 0xaa, 0x62, 0xe8, 0x41, 0x70, 0x2b, 0x2f, 0x75,
+ 0x69, 0x52, 0x87, 0x31, 0xff, 0x5e, 0xfc, 0xfe, 0x09, 0x42, 0x87, 0x31, 0xfb, 0x0a, 0xad, 0xae, 0xe9, 0x41, 0xa7, 0x39, 0xf2, 0xa0, 0x30, 0x63, 0x29, 0x42, 0xa7, 0x39, 0xbd, 0xff, 0x6b, 0xf8,
+ 0x29, 0x4a, 0xa7, 0x39, 0xa0, 0x55, 0xfd, 0xbe, 0x09, 0x42, 0xa7, 0x39, 0xea, 0xed, 0xe8, 0x1f, 0xe8, 0x41, 0x87, 0x31, 0xd4, 0x82, 0xed, 0xa2, 0x06, 0x5a, 0x88, 0x31, 0x3f, 0x37, 0xb5, 0xd7,
+ 0x26, 0x6a, 0xe4, 0x61, 0xd2, 0xc8, 0x2e, 0x7b, 0x05, 0x6a, 0xa4, 0x61, 0x5e, 0x56, 0x7a, 0x68, 0xa4, 0x61, 0x43, 0x51, 0x7a, 0x7a, 0x58, 0xe8, 0x44, 0x51, 0x03, 0x49, 0xbe, 0xc0, 0x88, 0xc8,
+ 0x64, 0x51, 0x02, 0x41, 0x2b, 0x2a, 0x22, 0xa7, 0x84, 0x59, 0x03, 0x41, 0xba, 0xe2, 0x8b, 0xa9, 0x44, 0x51, 0x02, 0x49, 0xdf, 0xb9, 0x5f, 0xb7, 0x43, 0x49, 0xe2, 0x40, 0x83, 0x2b, 0xff, 0x7f,
+ 0x44, 0x51, 0x03, 0x41, 0x87, 0xff, 0x55, 0xd5, 0x63, 0x51, 0xe3, 0x38, 0x00, 0xfe, 0xdf, 0x7f, 0x23, 0x51, 0xc2, 0x30, 0x80, 0xfb, 0xfd, 0xda, 0x24, 0x41, 0xc2, 0x30, 0x0a, 0xeb, 0xda, 0x3d,
+ 0x6c, 0x8b, 0x03, 0x39, 0x25, 0xad, 0xcd, 0xe3, 0x28, 0x52, 0x87, 0x39, 0xaa, 0xca, 0x2b, 0x7d, 0x29, 0x4a, 0xa7, 0x41, 0xfb, 0xa9, 0xef, 0x73, 0x29, 0x4a, 0xa7, 0x39, 0xea, 0xa5, 0xaa, 0xa2,
+ 0x28, 0x42, 0xa7, 0x39, 0xe3, 0xb7, 0xde, 0xba, 0x49, 0x4a, 0x67, 0x39, 0xab, 0xba, 0x8a, 0x5e, 0xe8, 0x49, 0xa7, 0x31, 0xed, 0x83, 0x0a, 0x2c, 0x29, 0x52, 0xa8, 0x39, 0x75, 0x64, 0xff, 0x7a,
+ 0x08, 0x42, 0x87, 0x39, 0x2f, 0xb5, 0xbb, 0xab, 0x29, 0x4a, 0xa7, 0x41, 0xad, 0xff, 0xaf, 0x8b, 0x28, 0x4a, 0xa7, 0x31, 0x02, 0xa7, 0xfb, 0xbe, 0x29, 0x4a, 0xa7, 0x39, 0x88, 0xb6, 0xeb, 0x2a,
+ 0x49, 0x52, 0xa7, 0x39, 0xe9, 0x23, 0xbc, 0xef, 0x8a, 0x5a, 0xa7, 0x39, 0xa7, 0xcb, 0x7f, 0xff, 0x49, 0x4a, 0xa7, 0x41, 0xf4, 0x0b, 0xa7, 0xea, 0x49, 0x4a, 0xa7, 0x41, 0xaf, 0xf8, 0xaa, 0xad,
+ 0x29, 0x4a, 0xc7, 0x41, 0xa2, 0x7b, 0xae, 0x9e, 0x29, 0x4a, 0xc7, 0x41, 0xfa, 0xb7, 0xee, 0xcf, 0x09, 0x4a, 0xc7, 0x41, 0xb6, 0x95, 0xb1, 0x6c, 0x29, 0x4a, 0xa8, 0x41, 0x62, 0xeb, 0x8e, 0xbe,
+ 0x29, 0x4a, 0xc7, 0x41, 0xfb, 0xff, 0x26, 0xb7, 0x49, 0x52, 0xe8, 0x41, 0x66, 0x8b, 0xfe, 0xdd, 0x8a, 0x5a, 0xe7, 0x41, 0xfd, 0xca, 0xaf, 0xff, 0x69, 0x52, 0xa7, 0x41, 0xf7, 0xea, 0xf4, 0x5e,
+ 0x08, 0x4a, 0x87, 0x39, 0xf6, 0x2a, 0xaf, 0xff, 0x08, 0x4a, 0x86, 0x31, 0xea, 0xc8, 0xfe, 0x57, 0x09, 0x42, 0xa7, 0x39, 0xad, 0xaf, 0xa0, 0xee, 0x08, 0x42, 0x87, 0x39, 0xd6, 0xdf, 0xb2, 0xa6,
+ 0x08, 0x52, 0x87, 0x39, 0xdd, 0xed, 0x0f, 0xae, 0xe8, 0x41, 0x87, 0x39, 0xac, 0xba, 0xf6, 0x5e, 0xe8, 0x49, 0x87, 0x39, 0xd5, 0xeb, 0xaa, 0x0b, 0x09, 0x4a, 0xa7, 0x41, 0xf9, 0x2d, 0x6f, 0x9f,
+ 0x23, 0x51, 0x08, 0x4a, 0x02, 0x8b, 0xad, 0xb5, 0x64, 0x59, 0x23, 0x51, 0x55, 0xfd, 0xbe, 0xa4, 0xe6, 0x61, 0x03, 0x49, 0x5d, 0x57, 0xff, 0x3f, 0xe5, 0x69, 0xe3, 0x38, 0x5f, 0x5f, 0x7a, 0xe0,
+ 0xe5, 0x59, 0xe3, 0x38, 0x5f, 0xfd, 0xfd, 0x2b, 0xc5, 0x61, 0x03, 0x49, 0xf5, 0xdf, 0xff, 0xa8, 0xa4, 0x59, 0x23, 0x51, 0x75, 0x5f, 0xf6, 0xbc, 0xa4, 0x61, 0x23, 0x49, 0xf5, 0xf5, 0x2f, 0x0a,
+ 0x05, 0x6a, 0x44, 0x51, 0x2d, 0x0b, 0x7f, 0xff, 0x66, 0x72, 0xa4, 0x59, 0xfe, 0xcb, 0xab, 0xed, 0x25, 0x62, 0x83, 0x59, 0x7b, 0xeb, 0xa2, 0x22, 0x66, 0x6a, 0xa4, 0x61, 0xd7, 0xff, 0xe0, 0xda,
+ 0x05, 0x6a, 0xa4, 0x59, 0xaf, 0xb8, 0x28, 0x7c, 0x67, 0x6a, 0x83, 0x59, 0x82, 0xe2, 0xfe, 0x7b, 0x66, 0x72, 0x43, 0x51, 0x82, 0xaa, 0xff, 0x55, 0x05, 0x6a, 0x43, 0x51, 0x02, 0xaa, 0xeb, 0xfd,
+ 0x05, 0x6a, 0x63, 0x51, 0x80, 0x88, 0xfd, 0xfd, 0x05, 0x62, 0x43, 0x51, 0x82, 0xea, 0x7f, 0xe2, 0xc7, 0x7a, 0x83, 0x51, 0xff, 0xd7, 0xb5, 0x0b, 0x28, 0x8b, 0xe4, 0x61, 0xfd, 0x2d, 0x0a, 0x02,
+ 0x69, 0x8b, 0x86, 0x72, 0xad, 0xef, 0x0b, 0x82, 0xca, 0xa3, 0x66, 0x72, 0x8b, 0xe9, 0xaa, 0xaa, 0x2c, 0xb4, 0xc7, 0x7a, 0xd4, 0xff, 0xbf, 0xaa, 0x0b, 0xac, 0x49, 0x93, 0x82, 0x23, 0x8b, 0x09,
+ 0x8c, 0xbc, 0xea, 0xab, 0x3d, 0xa7, 0x25, 0x95, 0xef, 0xcc, 0xc6, 0x51, 0x48, 0x68, 0x50, 0x50, 0x49, 0x52, 0xc8, 0x41, 0x7f, 0xf8, 0x79, 0x7a, 0x29, 0x4a, 0xc8, 0x41, 0xed, 0xc8, 0x79, 0x57,
+ 0x29, 0x4a, 0xa7, 0x41, 0x5f, 0x2b, 0x3f, 0x24, 0x28, 0x4a, 0xc7, 0x41, 0x5c, 0x56, 0x7d, 0xfa, 0x8a, 0x52, 0xa7, 0x41, 0x5f, 0xfd, 0x7f, 0x8f, 0x49, 0x52, 0xa7, 0x41, 0x57, 0xff, 0xe9, 0x8a,
+ 0x69, 0x52, 0xc8, 0x49, 0x5d, 0xf5, 0xfb, 0xa8, 0x8a, 0x5a, 0xc7, 0x49, 0x5f, 0xb3, 0x77, 0x7e, 0x49, 0x52, 0x87, 0x41, 0xfd, 0x88, 0xfa, 0xea, 0x29, 0x52, 0x87, 0x39, 0x6a, 0xe0, 0xff, 0x22,
+ 0x29, 0x52, 0x87, 0x39, 0xb5, 0xef, 0xef, 0x0a, 0x08, 0x4a, 0xc7, 0x39, 0xbb, 0x62, 0xeb, 0xe3, 0x28, 0x4a, 0xc7, 0x41, 0xeb, 0xfd, 0xeb, 0xb1, 0x29, 0x4a, 0xa7, 0x41, 0xfd, 0xfe, 0xba, 0x2a,
+ 0x08, 0x4a, 0xa7, 0x39, 0x5e, 0x5b, 0x8c, 0xf8, 0x08, 0x4a, 0x67, 0x39, 0xfd, 0xaf, 0xea, 0x78, 0xc8, 0x41, 0x87, 0x39, 0xff, 0x8e, 0x0a, 0x79, 0x08, 0x42, 0x46, 0x31, 0xaa, 0x9a, 0x02, 0x0b,
+ 0x09, 0x4a, 0xc7, 0x41, 0x5a, 0xdb, 0xbc, 0xa0, 0x29, 0x4a, 0xa7, 0x39, 0x7b, 0xeb, 0xfe, 0xa8, 0xc8, 0x41, 0x66, 0x31, 0xa8, 0x6c, 0xb8, 0xfa, 0xe8, 0x41, 0x67, 0x39, 0xea, 0xa9, 0x1f, 0xaf,
+ 0x08, 0x42, 0x67, 0x39, 0xff, 0x7a, 0x2e, 0xbe, 0xe8, 0x49, 0x86, 0x39, 0xca, 0xfd, 0xba, 0xbf, 0xa8, 0x49, 0xe7, 0x39, 0xee, 0xa2, 0xfe, 0x5f, 0xc8, 0x49, 0xa6, 0x31, 0xa8, 0xfa, 0xaa, 0xd7,
+ 0xe8, 0x49, 0x86, 0x39, 0x2b, 0xdb, 0x7e, 0x3f, 0xe8, 0x49, 0x87, 0x39, 0xdf, 0xb7, 0xe7, 0x2e, 0xe8, 0x41, 0x86, 0x39, 0x9d, 0xdf, 0xeb, 0x88, 0xc8, 0x41, 0x86, 0x39, 0xf5, 0xe8, 0x95, 0x8b,
+ 0x6d, 0x6b, 0x87, 0x39, 0x5f, 0xea, 0x5f, 0xa2, 0x4d, 0x73, 0xc8, 0x39, 0x55, 0x7f, 0x7d, 0xe0, 0x49, 0x4a, 0xc8, 0x39, 0xbc, 0xff, 0xdf, 0x5b, 0x29, 0x4a, 0xc8, 0x39, 0x35, 0x8a, 0x5f, 0xfd,
+ 0x29, 0x4a, 0xc8, 0x39, 0x2a, 0xfe, 0xde, 0xde, 0xcb, 0x5a, 0x87, 0x31, 0x8a, 0xdf, 0xf7, 0xaa, 0x49, 0x52, 0x46, 0x31, 0xaa, 0xfe, 0xed, 0xa8, 0x29, 0x52, 0x87, 0x31, 0xae, 0xd7, 0xbd, 0x29,
+ 0xaa, 0x62, 0x87, 0x31, 0x4e, 0xd7, 0xae, 0x20, 0x0b, 0x73, 0xa8, 0x39, 0xf5, 0x95, 0x2f, 0xa2, 0x4b, 0x7b, 0x67, 0x31, 0x57, 0xea, 0xaa, 0xa0, 0xea, 0x6a, 0x88, 0x31, 0xf5, 0xf5, 0xea, 0xa8,
+ 0x2b, 0x6b, 0xc8, 0x41, 0x55, 0x7d, 0x0f, 0xab, 0xca, 0x5a, 0xa7, 0x31, 0xd5, 0xfd, 0x2a, 0x80, 0x6c, 0x73, 0xc8, 0x41, 0x75, 0xd5, 0x0b, 0xaa, 0xaa, 0x5a, 0xc8, 0x39, 0x55, 0xdd, 0xf8, 0xa8,
+ 0x49, 0x52, 0xa8, 0x39, 0xef, 0x55, 0x77, 0xe8, 0x29, 0x4a, 0xa8, 0x39, 0xfe, 0x3d, 0x37, 0x8a, 0x49, 0x52, 0x87, 0x39, 0xbf, 0xde, 0x0a, 0xfa, 0xea, 0x62, 0xa8, 0x39, 0xd7, 0x35, 0xff, 0x83,
+ 0x2b, 0x7b, 0xc8, 0x39, 0x77, 0x70, 0xaa, 0xbb, 0xaa, 0x5a, 0x67, 0x29, 0xfd, 0xff, 0xdf, 0x88, 0x09, 0x42, 0xa8, 0x39, 0xbc, 0xaa, 0x9f, 0x5a, 0x8b, 0x5a, 0xc8, 0x39, 0xf5, 0xd5, 0xdd, 0x2d,
+ 0xab, 0x5a, 0xc8, 0x39, 0x5d, 0x57, 0xfd, 0x2b, 0x89, 0x5a, 0xa8, 0x39, 0x25, 0x8d, 0xff, 0xbe, 0x49, 0x52, 0xe8, 0x41, 0x57, 0x94, 0xdd, 0xd8, 0x29, 0x4a, 0xa7, 0x39, 0xdb, 0xb8, 0xea, 0xe8,
+ 0x26, 0x62, 0x02, 0x49, 0xd8, 0xda, 0xba, 0x0a, 0xe5, 0x69, 0xa3, 0x61, 0x6f, 0x7e, 0x72, 0xe0, 0xc4, 0x61, 0x23, 0x51, 0xfe, 0xde, 0xde, 0xfc, 0x84, 0x59, 0x23, 0x49, 0xef, 0xff, 0x75, 0xfb,
+ 0x44, 0x49, 0x03, 0x41, 0x8e, 0xe7, 0xbe, 0xfc, 0xc4, 0x61, 0x03, 0x41, 0xaa, 0x0d, 0x2d, 0xbd, 0x84, 0x59, 0x02, 0x41, 0x7f, 0x5e, 0x58, 0x78, 0x24, 0x51, 0xe2, 0x38, 0xff, 0xfe, 0xff, 0xfd,
+ 0x24, 0x49, 0xe2, 0x38, 0x2b, 0xbe, 0xae, 0xbf, 0x23, 0x41, 0xe2, 0x38, 0x5a, 0x7a, 0x77, 0x7f, 0x03, 0x39, 0xc2, 0x30, 0xcb, 0xa8, 0xd8, 0xaa, 0x0d, 0xac, 0xe3, 0x38, 0x55, 0x55, 0xd5, 0x35,
+ 0x52, 0xd5, 0x86, 0x41, 0x73, 0x5a, 0x5c, 0x56, 0x08, 0x42, 0x86, 0x31, 0xaa, 0xae, 0xe0, 0x1b, 0x08, 0x42, 0xa7, 0x39, 0x40, 0x8d, 0x27, 0x20, 0x29, 0x4a, 0xe8, 0x41, 0x29, 0x52, 0x06, 0x28,
+ 0x49, 0x4a, 0xa7, 0x39, 0x8e, 0xde, 0xaf, 0xab, 0x69, 0x52, 0xa7, 0x39, 0x8f, 0x7a, 0xef, 0x88, 0x28, 0x42, 0x87, 0x39, 0xae, 0xab, 0xa7, 0xa0, 0x49, 0x4a, 0x66, 0x29, 0xa7, 0xaa, 0x0a, 0xae,
+ 0x49, 0x52, 0x87, 0x31, 0xb5, 0xab, 0xa8, 0xeb, 0x29, 0x4a, 0xc7, 0x39, 0xd7, 0xb6, 0xb4, 0xfb, 0x28, 0x4a, 0x87, 0x39, 0xae, 0xa7, 0xfa, 0xb0, 0x49, 0x5a, 0xc7, 0x41, 0xdd, 0xfd, 0xad, 0xcf,
+ 0xaa, 0x62, 0xc7, 0x41, 0xdf, 0xff, 0xeb, 0xa2, 0xca, 0x62, 0xc8, 0x41, 0xf7, 0x5f, 0x5f, 0xf2, 0x28, 0x4a, 0xa7, 0x39, 0xfa, 0xdf, 0xad, 0x2e, 0x28, 0x4a, 0x87, 0x39, 0x29, 0xaf, 0x7e, 0x02,
+ 0x49, 0x52, 0xa7, 0x39, 0x7a, 0xaf, 0xf5, 0xc8, 0x29, 0x4a, 0x87, 0x39, 0x25, 0xab, 0x83, 0x8a, 0x29, 0x4a, 0xa7, 0x39, 0xf8, 0xaa, 0xad, 0xa8, 0x28, 0x4a, 0xc7, 0x41, 0xeb, 0xa9, 0x03, 0xba,
+ 0x29, 0x52, 0xe8, 0x49, 0xb5, 0x0f, 0x43, 0x6e, 0x69, 0x52, 0xa7, 0x41, 0x7f, 0xfb, 0xfb, 0xb2, 0xaa, 0x62, 0x87, 0x31, 0xb5, 0xbf, 0xbf, 0x2a, 0x89, 0x52, 0xa7, 0x41, 0x55, 0xff, 0xae, 0x3a,
+ 0x69, 0x5a, 0x87, 0x39, 0xff, 0xff, 0x7a, 0xf4, 0xe8, 0x41, 0x87, 0x31, 0xdc, 0x6f, 0xfe, 0x96, 0x08, 0x42, 0x87, 0x39, 0xaf, 0x2a, 0x9a, 0xbf, 0x08, 0x42, 0x87, 0x39, 0x7a, 0xa4, 0x2a, 0xeb,
+ 0xe8, 0x49, 0xa7, 0x39, 0xc9, 0x7e, 0xff, 0x57, 0xe8, 0x41, 0x67, 0x39, 0x78, 0xfa, 0x0c, 0xf2, 0x08, 0x4a, 0x67, 0x39, 0x2a, 0xad, 0xaa, 0x0b, 0xe8, 0x49, 0xa7, 0x39, 0xf4, 0xee, 0xfa, 0xef,
+ 0x85, 0x51, 0x08, 0x4a, 0x37, 0xb7, 0xb5, 0xfd, 0xa5, 0x59, 0x63, 0x51, 0x6e, 0xfc, 0xc7, 0x86, 0xa5, 0x61, 0x43, 0x51, 0x17, 0xb6, 0xef, 0xef, 0xe5, 0x61, 0x63, 0x51, 0x80, 0x2a, 0xf5, 0xfd,
+ 0xc5, 0x61, 0x43, 0x51, 0x28, 0xf7, 0xff, 0xfb, 0xa4, 0x59, 0x23, 0x49, 0x5c, 0xff, 0xbf, 0xa3, 0x84, 0x59, 0x23, 0x51, 0x29, 0x2e, 0x9e, 0xbf, 0xc4, 0x61, 0x43, 0x51, 0x00, 0xff, 0xeb, 0xad,
+ 0xc4, 0x61, 0x63, 0x51, 0xbe, 0x3b, 0x6d, 0x5a, 0xc5, 0x61, 0x83, 0x51, 0xe8, 0x57, 0xe5, 0xfd, 0xe4, 0x61, 0x63, 0x49, 0xe2, 0x5f, 0xfe, 0xbe, 0x05, 0x5a, 0x63, 0x51, 0x7d, 0xdd, 0xb3, 0xab,
+ 0xc5, 0x59, 0x63, 0x49, 0xff, 0x6f, 0xb8, 0xa0, 0xc4, 0x61, 0x43, 0x49, 0xc2, 0xf7, 0xbb, 0x8a, 0xc4, 0x61, 0x43, 0x49, 0xff, 0xa7, 0xba, 0x0a, 0xe5, 0x69, 0x43, 0x49, 0x7d, 0xfe, 0xef, 0x2a,
+ 0xe4, 0x61, 0x83, 0x51, 0x2d, 0xeb, 0x2c, 0x02, 0xc8, 0x7a, 0xc4, 0x61, 0x7f, 0x0f, 0xf5, 0x55, 0x29, 0x8b, 0xc3, 0x69, 0x8b, 0xee, 0xf5, 0x55, 0xca, 0x9b, 0xa3, 0x61, 0x0a, 0x57, 0xff, 0x55,
+ 0xa9, 0xa3, 0xc3, 0x69, 0x80, 0xf5, 0x55, 0x55, 0x48, 0x9b, 0xe4, 0x69, 0x2a, 0xab, 0xff, 0xd5, 0x8a, 0x9b, 0x25, 0x72, 0x02, 0x2e, 0x3f, 0x35, 0x2b, 0xb4, 0x69, 0x9b, 0xe9, 0xeb, 0xaa, 0x2a,
+ 0x71, 0xd5, 0xc6, 0x82, 0x9b, 0xaf, 0xa6, 0x29, 0x8d, 0xbc, 0xa6, 0x41, 0x58, 0x5c, 0x56, 0x55, 0x29, 0x4a, 0xa7, 0x41, 0x2b, 0xbf, 0xfa, 0x5c, 0x8a, 0x5a, 0xc7, 0x41, 0xfe, 0x2f, 0x95, 0x79,
+ 0x6a, 0x52, 0xc7, 0x41, 0xea, 0xdc, 0xf7, 0xd7, 0x69, 0x52, 0x66, 0x39, 0xec, 0xae, 0xf7, 0xaa, 0x49, 0x52, 0xc7, 0x41, 0xbf, 0x8a, 0xed, 0xfe, 0x69, 0x52, 0xc8, 0x39, 0x8a, 0x2a, 0xd7, 0xd7,
+ 0x8a, 0x5a, 0xc7, 0x41, 0xef, 0x88, 0xbd, 0xfd, 0x49, 0x52, 0xe8, 0x49, 0x77, 0x2b, 0x30, 0x37, 0xca, 0x62, 0x87, 0x41, 0x87, 0x08, 0x2e, 0xa0, 0xaa, 0x5a, 0xa7, 0x41, 0xd6, 0x88, 0xee, 0x7a,
+ 0x69, 0x52, 0x86, 0x39, 0xf7, 0xaa, 0x02, 0xc3, 0x28, 0x4a, 0xa7, 0x39, 0xbf, 0xec, 0xb9, 0xdd, 0x08, 0x4a, 0xa7, 0x39, 0xaf, 0xab, 0xb8, 0xb6, 0x08, 0x4a, 0x87, 0x39, 0xbc, 0x7e, 0xfe, 0x7e,
+ 0xe8, 0x41, 0x46, 0x39, 0x82, 0xea, 0xae, 0xb6, 0x29, 0x4a, 0x86, 0x39, 0x57, 0xfd, 0x2a, 0xff, 0x08, 0x4a, 0x67, 0x31, 0x7b, 0xfa, 0xc8, 0x7a, 0x08, 0x42, 0x87, 0x31, 0x9d, 0xaa, 0x8a, 0xbd,
+ 0xc8, 0x49, 0xa7, 0x31, 0xa8, 0x2e, 0xef, 0x3d, 0x29, 0x52, 0x87, 0x39, 0xff, 0x57, 0xd5, 0xe8, 0xc8, 0x41, 0x46, 0x39, 0x5e, 0xaf, 0x88, 0x8a, 0x87, 0x41, 0xc8, 0x39, 0xb0, 0xc0, 0x55, 0xaf,
+ 0xe8, 0x41, 0xa7, 0x39, 0xd5, 0xfb, 0xd5, 0x5a, 0xe8, 0x41, 0x87, 0x31, 0x0f, 0xa3, 0x95, 0x9f, 0xe8, 0x41, 0x87, 0x39, 0x88, 0x06, 0xaa, 0xde, 0xe8, 0x41, 0xa7, 0x39, 0xa6, 0x72, 0x56, 0xf5,
+ 0x08, 0x42, 0xa7, 0x39, 0x9a, 0x3a, 0xff, 0x55, 0x08, 0x42, 0xa7, 0x39, 0xba, 0x3f, 0xef, 0xf7, 0x87, 0x41, 0xe8, 0x39, 0xab, 0x55, 0x2b, 0xff, 0x28, 0x4a, 0xa7, 0x39, 0x7d, 0xf2, 0xbf, 0xb7,
+ 0x8a, 0x52, 0xe8, 0x49, 0x22, 0x55, 0x88, 0x7f, 0x8a, 0x5a, 0x08, 0x4a, 0x5a, 0x3d, 0xaa, 0x66, 0xeb, 0x62, 0xa8, 0x39, 0x5f, 0xfc, 0xff, 0xd7, 0x49, 0x42, 0xa8, 0x39, 0x27, 0x2e, 0x0a, 0xeb,
+ 0xcb, 0x5a, 0xc8, 0x39, 0xd7, 0x8b, 0xbf, 0xd6, 0x0c, 0x63, 0xe8, 0x39, 0xb3, 0xf6, 0xff, 0xf5, 0x8a, 0x5a, 0xe8, 0x41, 0xfe, 0xd7, 0xef, 0x2d, 0xeb, 0x62, 0x08, 0x42, 0x0b, 0x5f, 0x3e, 0xa2,
+ 0x0b, 0x6b, 0x09, 0x4a, 0xa8, 0x2a, 0xd6, 0xa0, 0x4b, 0x7b, 0x49, 0x52, 0xfa, 0x7e, 0xef, 0x25, 0x4b, 0x73, 0x69, 0x5a, 0xed, 0x55, 0x2a, 0x82, 0x6c, 0x7b, 0x28, 0x4a, 0xbd, 0xfe, 0x28, 0xa8,
+ 0x2b, 0x73, 0x28, 0x4a, 0x57, 0xf0, 0xf0, 0x7a, 0x0b, 0x6b, 0x29, 0x4a, 0xfd, 0x3f, 0xaf, 0xf5, 0xeb, 0x6a, 0x69, 0x5a, 0x5f, 0x82, 0x37, 0xfd, 0x0b, 0x6b, 0x29, 0x4a, 0xef, 0x7a, 0x00, 0x08,
+ 0x2b, 0x73, 0x8a, 0x52, 0x7f, 0x29, 0xf8, 0xfa, 0x2b, 0x6b, 0xc8, 0x41, 0xfd, 0x5e, 0x20, 0x22, 0x8c, 0x7b, 0x69, 0x5a, 0xb5, 0xfd, 0xfc, 0xfe, 0x2b, 0x73, 0xaa, 0x5a, 0x7b, 0xff, 0x9e, 0xa2,
+ 0x2b, 0x73, 0x69, 0x52, 0xad, 0xff, 0xbf, 0xb0, 0x0c, 0x73, 0x69, 0x52, 0xdf, 0xf7, 0xff, 0xf2, 0x6d, 0x6b, 0x69, 0x52, 0x3f, 0xff, 0xdf, 0xff, 0xab, 0x5a, 0x49, 0x4a, 0x99, 0x20, 0x6a, 0x68,
+ 0x0c, 0x6b, 0x29, 0x4a, 0x5d, 0x7f, 0x7b, 0x3f, 0x4c, 0x7b, 0x49, 0x4a, 0xf7, 0x55, 0xf5, 0xfc, 0x0b, 0x6b, 0x29, 0x4a, 0xf0, 0xbd, 0xdf, 0xea, 0x2c, 0x73, 0xe8, 0x41, 0x56, 0x7f, 0xf8, 0xfe,
+ 0xe5, 0x69, 0x68, 0x52, 0x8b, 0x0b, 0x0b, 0x29, 0x25, 0x6a, 0xa4, 0x61, 0x7f, 0xfe, 0xb6, 0xf3, 0xe4, 0x69, 0x43, 0x51, 0xfa, 0x7e, 0xf8, 0xfa, 0xa5, 0x59, 0x22, 0x49, 0x7e, 0xff, 0xfa, 0xa8,
+ 0x64, 0x51, 0x23, 0x41, 0xf7, 0xd9, 0xbf, 0x2a, 0x64, 0x59, 0x03, 0x49, 0x2f, 0xeb, 0xf8, 0x76, 0xa4, 0x61, 0x03, 0x49, 0xfa, 0x8f, 0xbd, 0xd5, 0x44, 0x51, 0xe2, 0x38, 0xde, 0xfe, 0xf8, 0xe8,
+ 0x23, 0x41, 0xe2, 0x38, 0xad, 0x88, 0xe8, 0x8b, 0xe2, 0x40, 0x04, 0x39, 0xfe, 0xbf, 0x55, 0x5e, 0xe7, 0x59, 0xe3, 0x38, 0x55, 0xd5, 0xb5, 0x37, 0x51, 0xcd, 0x25, 0x41, 0x25, 0x0d, 0x03, 0x82,
+ 0x2a, 0x83, 0xe8, 0x49, 0x54, 0x57, 0x75, 0x57, 0x08, 0x4a, 0xa7, 0x31, 0x9f, 0xfe, 0xc8, 0xe8, 0x49, 0x4a, 0xa7, 0x39, 0xea, 0xdb, 0xbf, 0x8b, 0x29, 0x42, 0x87, 0x31, 0xa5, 0xae, 0xe6, 0xe0,
+ 0x29, 0x42, 0xc8, 0x39, 0x9b, 0x38, 0x2b, 0xff, 0x69, 0x52, 0x08, 0x42, 0x3b, 0xfd, 0xbb, 0xdf, 0x69, 0x52, 0xc8, 0x41, 0xf8, 0x5e, 0xa2, 0xfd, 0x49, 0x52, 0x87, 0x31, 0xb6, 0xab, 0x2a, 0xfa,
+ 0x49, 0x4a, 0xa7, 0x31, 0xf7, 0xaf, 0xaa, 0x8a, 0x29, 0x4a, 0xa7, 0x31, 0xda, 0xfa, 0x2f, 0xbf, 0x49, 0x4a, 0xc8, 0x41, 0xbe, 0xd5, 0xac, 0xbf, 0x29, 0x42, 0xc8, 0x39, 0x28, 0x52, 0x24, 0xb7,
+ 0x29, 0x4a, 0xe8, 0x41, 0x0b, 0xab, 0xb9, 0xf3, 0x6a, 0x5a, 0xe8, 0x41, 0xe3, 0xa2, 0xff, 0xdf, 0x69, 0x52, 0x08, 0x42, 0x25, 0xdf, 0xae, 0xad, 0xea, 0x62, 0xc7, 0x41, 0xe8, 0x5f, 0xdf, 0xff,
+ 0xaa, 0x62, 0x08, 0x4a, 0xec, 0xd5, 0x5a, 0x7f, 0x8a, 0x5a, 0xe8, 0x41, 0x5f, 0xe8, 0xf9, 0xfe, 0x69, 0x52, 0xc7, 0x39, 0xab, 0xff, 0x35, 0xbf, 0x2c, 0x73, 0xe8, 0x41, 0xd7, 0xfd, 0x8d, 0xeb,
+ 0x8a, 0x62, 0x09, 0x4a, 0x7b, 0xda, 0x8a, 0xfa, 0xaa, 0x62, 0xe8, 0x41, 0x9f, 0x10, 0xeb, 0xac, 0xea, 0x6a, 0x08, 0x52, 0x7f, 0x28, 0x85, 0xfa, 0x89, 0x5a, 0xc7, 0x49, 0xaa, 0x60, 0xfe, 0xfb,
+ 0x29, 0x52, 0xc8, 0x41, 0xb4, 0xfe, 0xbe, 0xae, 0x69, 0x52, 0xa8, 0x41, 0xd5, 0xe5, 0xfe, 0xa2, 0x28, 0x4a, 0xa7, 0x39, 0xbf, 0xad, 0xba, 0xa0, 0x09, 0x52, 0xa7, 0x39, 0xeb, 0xff, 0xa7, 0x2a,
+ 0xe8, 0x49, 0x87, 0x39, 0x7a, 0x0b, 0x02, 0xa8, 0x09, 0x4a, 0xa7, 0x41, 0x5a, 0xd6, 0x83, 0x7f, 0xe8, 0x49, 0x67, 0x31, 0xaa, 0xea, 0xe8, 0x09, 0xe8, 0x49, 0x87, 0x39, 0x8f, 0xaa, 0xc8, 0x2a,
+ 0x29, 0x4a, 0xa7, 0x41, 0xdf, 0x6f, 0xfa, 0x2e, 0x26, 0x62, 0x64, 0x59, 0x5f, 0x7f, 0xaa, 0xa2, 0xe5, 0x69, 0x23, 0x51, 0xf9, 0xbf, 0xaa, 0xa8, 0x05, 0x6a, 0x83, 0x59, 0xed, 0x7f, 0xef, 0x0f,
+ 0xe5, 0x69, 0x84, 0x59, 0x57, 0xa2, 0xaa, 0x28, 0xe5, 0x69, 0x63, 0x59, 0xd5, 0xaf, 0xe0, 0xa0, 0xc5, 0x69, 0x43, 0x51, 0xd7, 0xfe, 0xe0, 0xea, 0x84, 0x61, 0x23, 0x51, 0x03, 0xbf, 0xb7, 0xbe,
+ 0xa4, 0x61, 0x43, 0x51, 0xf7, 0x2f, 0x3f, 0x3e, 0xe5, 0x69, 0x83, 0x59, 0x77, 0xad, 0x3a, 0xa8, 0xe5, 0x69, 0x84, 0x59, 0x5d, 0xbe, 0x2a, 0x00, 0x05, 0x6a, 0x83, 0x59, 0xfd, 0x2e, 0x2a, 0x8b,
+ 0xe5, 0x69, 0xa4, 0x61, 0xb7, 0xa0, 0xdc, 0xec, 0x05, 0x72, 0xa4, 0x61, 0xdf, 0xaa, 0xfe, 0xba, 0x05, 0x72, 0xc4, 0x61, 0xff, 0xae, 0xfe, 0xfa, 0x04, 0x6a, 0xa3, 0x61, 0x2b, 0xae, 0x3e, 0xbf,
+ 0x04, 0x72, 0xc3, 0x61, 0xca, 0xd7, 0xf7, 0xfa, 0x04, 0x72, 0x83, 0x61, 0xfa, 0x5c, 0x7b, 0xea, 0xe4, 0x69, 0x83, 0x61, 0xdf, 0xdd, 0xbe, 0x22, 0x86, 0x7a, 0xa3, 0x61, 0xf5, 0xf5, 0xbd, 0x0b,
+ 0x86, 0x7a, 0xc3, 0x69, 0x55, 0xff, 0xab, 0xa0, 0x45, 0x72, 0xe3, 0x69, 0x55, 0xff, 0xda, 0x38, 0x0b, 0xa4, 0x04, 0x6a, 0x35, 0x15, 0x2d, 0x0b, 0xce, 0xc4, 0x07, 0x8b, 0x0a, 0x84, 0x2e, 0x0a,
+ 0x70, 0xd5, 0x27, 0x62, 0xab, 0x42, 0x42, 0x4a, 0x89, 0x62, 0x88, 0x39, 0xdf, 0x82, 0xaa, 0xfe, 0x8a, 0x5a, 0xa7, 0x39, 0x52, 0xaa, 0xfe, 0xff, 0x49, 0x52, 0xa7, 0x39, 0xf9, 0xfe, 0xaf, 0x2a,
+ 0x69, 0x52, 0xc8, 0x41, 0x9f, 0x5f, 0xff, 0xa0, 0x49, 0x52, 0xa7, 0x31, 0x00, 0xf7, 0xfa, 0xa0, 0x8a, 0x52, 0xa7, 0x41, 0x77, 0xc7, 0x57, 0x7f, 0x29, 0x4a, 0xa7, 0x41, 0xf9, 0x39, 0xff, 0x96,
+ 0x29, 0x4a, 0xa7, 0x41, 0xa7, 0xea, 0x57, 0xa3, 0x08, 0x42, 0x87, 0x39, 0xbf, 0xa2, 0x5f, 0x3c, 0x28, 0x4a, 0xa7, 0x41, 0x23, 0xaf, 0xd5, 0x7a, 0x08, 0x4a, 0x86, 0x39, 0xa0, 0x82, 0x7d, 0x6a,
+ 0x28, 0x4a, 0xa7, 0x39, 0xda, 0xea, 0x57, 0xdf, 0xe8, 0x49, 0x87, 0x39, 0x3b, 0xeb, 0x8d, 0xbb, 0xe8, 0x49, 0x87, 0x31, 0x8a, 0xa0, 0x56, 0xfe, 0xe8, 0x41, 0x47, 0x31, 0x2a, 0x2a, 0xf7, 0xaa,
+ 0x09, 0x42, 0x87, 0x31, 0xab, 0xba, 0xbd, 0x88, 0x08, 0x4a, 0x67, 0x31, 0xa2, 0xfa, 0x5f, 0xfe, 0x08, 0x42, 0x67, 0x31, 0xbe, 0xfe, 0x7e, 0x0b, 0xe8, 0x41, 0x47, 0x29, 0xa8, 0x80, 0xf5, 0xa0,
+ 0x29, 0x52, 0x87, 0x31, 0xbf, 0xb7, 0x15, 0xf5, 0x29, 0x52, 0xa7, 0x39, 0x7f, 0x5a, 0x5c, 0xde, 0xe8, 0x41, 0x67, 0x31, 0xe2, 0x7a, 0xff, 0xa8, 0xe8, 0x41, 0x26, 0x29, 0xaa, 0xe2, 0x6f, 0x2a,
+ 0x08, 0x4a, 0x67, 0x39, 0xbf, 0x7d, 0xd5, 0x2a, 0x08, 0x42, 0x67, 0x31, 0xff, 0x75, 0xd7, 0x2c, 0xe8, 0x41, 0x66, 0x29, 0xbf, 0xe9, 0xab, 0xa8, 0xc8, 0x41, 0x66, 0x29, 0xaa, 0xf7, 0xdc, 0x00,
+ 0xe8, 0x39, 0x87, 0x31, 0xff, 0xa2, 0xd7, 0xef, 0xe7, 0x39, 0x68, 0x31, 0x81, 0xaa, 0xea, 0xeb, 0xe8, 0x41, 0x87, 0x31, 0xea, 0x0b, 0xbf, 0x5d, 0xe8, 0x41, 0x87, 0x31, 0xf5, 0x2a, 0xf7, 0x57,
+ 0x8a, 0x5a, 0xc9, 0x39, 0x9f, 0x0f, 0xab, 0x57, 0xcb, 0x62, 0xe9, 0x41, 0xfe, 0x8f, 0xef, 0x55, 0xcb, 0x5a, 0xc8, 0x41, 0x0a, 0xff, 0x8b, 0x59, 0x69, 0x4a, 0xe8, 0x41, 0xb2, 0x7f, 0x75, 0x5b,
+ 0x49, 0x4a, 0xc8, 0x39, 0xa0, 0xaa, 0xff, 0x35, 0x8a, 0x52, 0xe8, 0x39, 0x2a, 0xbf, 0xfd, 0xed, 0xaa, 0x5a, 0xc8, 0x39, 0xac, 0xea, 0x5d, 0xff, 0xaa, 0x5a, 0xc9, 0x39, 0x00, 0x02, 0x2b, 0xa5,
+ 0xce, 0x83, 0xa9, 0x5a, 0x7d, 0xfd, 0x2e, 0xff, 0x4e, 0x9c, 0x48, 0x52, 0xff, 0x7f, 0xf8, 0xff, 0x2b, 0x7b, 0x89, 0x5a, 0xfa, 0x3b, 0x29, 0x2d, 0x4c, 0x73, 0x48, 0x52, 0xd5, 0x8e, 0x8b, 0xac,
+ 0x0c, 0x6b, 0xa7, 0x39, 0xea, 0x5a, 0xfd, 0xca, 0x8a, 0x52, 0xc9, 0x39, 0x28, 0xff, 0x75, 0x22, 0xeb, 0x62, 0xe9, 0x41, 0xa2, 0xbf, 0xf5, 0xaa, 0xcb, 0x5a, 0x29, 0x42, 0x1e, 0xfc, 0xdd, 0x78,
+ 0xcb, 0x62, 0x09, 0x4a, 0xa8, 0xaa, 0xae, 0x17, 0x0c, 0x6b, 0x8a, 0x52, 0xab, 0xc1, 0xad, 0xad, 0x2c, 0x6b, 0x8a, 0x5a, 0x0b, 0xfa, 0xbd, 0xdf, 0xee, 0x8b, 0x69, 0x52, 0xfe, 0x7d, 0x8f, 0xef,
+ 0x6c, 0x7b, 0x8a, 0x5a, 0xbe, 0xfc, 0xb8, 0x57, 0xee, 0x8b, 0x49, 0x52, 0xfe, 0xff, 0x5e, 0xfc, 0x0b, 0x6b, 0xe8, 0x41, 0x00, 0x80, 0xa5, 0xf8, 0x0c, 0x6b, 0x8a, 0x52, 0x7e, 0xea, 0x86, 0xf5,
+ 0x0b, 0x6b, 0x6a, 0x52, 0x62, 0xf7, 0xde, 0x0e, 0x0b, 0x63, 0x29, 0x4a, 0xb6, 0xee, 0xeb, 0xa8, 0xaa, 0x5a, 0x08, 0x42, 0x00, 0x7f, 0xdf, 0xa0, 0xea, 0x5a, 0x29, 0x4a, 0x3a, 0xbd, 0x75, 0xfb,
+ 0xc8, 0x72, 0xe7, 0x51, 0xec, 0xbe, 0xf5, 0xff, 0x46, 0x6a, 0xc4, 0x61, 0xdf, 0xbe, 0x7f, 0xd4, 0xe5, 0x69, 0xa4, 0x59, 0xa0, 0xfe, 0xfe, 0x6a, 0xa5, 0x61, 0x43, 0x51, 0x5c, 0xd6, 0xba, 0xfe,
+ 0x84, 0x59, 0x23, 0x49, 0xee, 0xdf, 0x7c, 0xfa, 0x63, 0x49, 0xe4, 0x40, 0xb7, 0xfb, 0xab, 0x2a, 0x64, 0x51, 0x03, 0x49, 0xdd, 0xdd, 0x9f, 0x20, 0xa4, 0x59, 0x03, 0x49, 0xff, 0x75, 0xef, 0xe8,
+ 0x64, 0x51, 0x23, 0x41, 0xdd, 0xd5, 0x7e, 0xf2, 0xa5, 0x59, 0x03, 0x41, 0x55, 0xd5, 0xf5, 0x2f, 0x0c, 0xa4, 0xe3, 0x40, 0xb5, 0xbd, 0x2d, 0x2f, 0x50, 0xd5, 0x85, 0x49, 0xc0, 0xea, 0x72, 0x52,
+ 0x29, 0x52, 0xc8, 0x39, 0x90, 0xb6, 0xae, 0xff, 0x69, 0x4a, 0xc8, 0x41, 0x7e, 0xae, 0xa8, 0xef, 0x49, 0x52, 0x87, 0x31, 0x6f, 0xeb, 0x28, 0x9a, 0x49, 0x4a, 0xa8, 0x39, 0xa9, 0xbd, 0x8a, 0x37,
+ 0x6a, 0x5a, 0xc8, 0x39, 0xf5, 0xaf, 0x8a, 0xbf, 0x8a, 0x5a, 0x08, 0x42, 0xf5, 0xf9, 0x2b, 0xaa, 0x8a, 0x52, 0xa7, 0x39, 0x7e, 0xa8, 0x80, 0x98, 0x69, 0x52, 0xc7, 0x39, 0x2b, 0xbb, 0x78, 0xd8,
+ 0x69, 0x52, 0xe8, 0x41, 0x0b, 0xdf, 0xa9, 0xe0, 0x09, 0x4a, 0xc7, 0x39, 0x76, 0xff, 0xfa, 0xe8, 0x29, 0x4a, 0xa7, 0x31, 0xff, 0x79, 0xff, 0xc2, 0x29, 0x4a, 0x87, 0x31, 0xaf, 0xfd, 0x27, 0x27,
+ 0x29, 0x4a, 0xc8, 0x41, 0x2d, 0xab, 0x7f, 0xfb, 0x28, 0x42, 0xa7, 0x39, 0x8a, 0x88, 0xe9, 0xaa, 0x8a, 0x5a, 0x87, 0x31, 0xfa, 0x82, 0xaf, 0xdf, 0x49, 0x52, 0x87, 0x39, 0x22, 0x8b, 0xe2, 0xed,
+ 0x49, 0x4a, 0xa7, 0x39, 0x80, 0x2a, 0xeb, 0xed, 0x29, 0x4a, 0xc7, 0x39, 0x68, 0x8a, 0xcb, 0x0b, 0x89, 0x52, 0xa7, 0x39, 0xed, 0xfb, 0x22, 0x2a, 0xcb, 0x62, 0x08, 0x4a, 0xd5, 0xbd, 0x95, 0xb0,
+ 0xaa, 0x62, 0x08, 0x4a, 0x7b, 0xaa, 0xb2, 0xc2, 0x0b, 0x73, 0x28, 0x52, 0x8d, 0xbd, 0x73, 0xfd, 0xeb, 0x6a, 0xe8, 0x49, 0xff, 0xf0, 0xed, 0xfa, 0xaa, 0x62, 0xe7, 0x49, 0xc7, 0xaa, 0xf7, 0xa0,
+ 0x6a, 0x52, 0xe8, 0x49, 0xea, 0x20, 0xfd, 0x2a, 0xeb, 0x5a, 0xa7, 0x41, 0xfd, 0xfa, 0x75, 0x8a, 0x49, 0x52, 0xa8, 0x41, 0x8b, 0xba, 0xa9, 0x00, 0x09, 0x4a, 0xc8, 0x41, 0x07, 0xf7, 0x26, 0xe0,
+ 0x69, 0x4a, 0xc8, 0x41, 0x5d, 0x5d, 0xe3, 0x5f, 0x09, 0x52, 0xa7, 0x39, 0xaf, 0xe2, 0xda, 0x55, 0x28, 0x4a, 0x67, 0x39, 0xff, 0x5e, 0xaa, 0x0f, 0x08, 0x4a, 0xc7, 0x39, 0xff, 0xed, 0x8a, 0xdf,
+ 0x06, 0x5a, 0xc8, 0x39, 0xde, 0xff, 0xf6, 0x27, 0x04, 0x72, 0xc6, 0x51, 0xa9, 0x0b, 0xab, 0x02, 0xe4, 0x69, 0x63, 0x61, 0xaa, 0xf8, 0xdc, 0x70, 0x05, 0x72, 0x63, 0x61, 0x8b, 0xfa, 0xdf, 0xbf,
+ 0xe3, 0x69, 0x84, 0x61, 0x20, 0xbf, 0xda, 0xbe, 0xe4, 0x69, 0x83, 0x61, 0xa2, 0xfb, 0xd7, 0x5a, 0xc4, 0x69, 0x63, 0x61, 0xb8, 0xf9, 0xbb, 0xa8, 0xe4, 0x69, 0x63, 0x59, 0x5f, 0xbf, 0x2a, 0xab,
+ 0xe4, 0x69, 0x83, 0x59, 0xbd, 0xaf, 0x8a, 0x0a, 0x05, 0x6a, 0x84, 0x61, 0xff, 0xde, 0xbf, 0x2e, 0x24, 0x6a, 0xa3, 0x61, 0x77, 0xfb, 0xeb, 0x8a, 0x04, 0x6a, 0xa3, 0x61, 0xf9, 0xdf, 0x88, 0x80,
+ 0x05, 0x72, 0xa4, 0x61, 0xfe, 0xe3, 0xae, 0xf7, 0x26, 0x72, 0xc4, 0x61, 0xfd, 0xab, 0xbd, 0xf5, 0x05, 0x6a, 0xc4, 0x61, 0x38, 0xfb, 0xb9, 0xf8, 0x05, 0x72, 0xc4, 0x61, 0xe8, 0xff, 0xdf, 0x5f,
+ 0x88, 0x6a, 0xc4, 0x61, 0xd7, 0xdd, 0xbd, 0x0f, 0x49, 0x83, 0xe5, 0x69, 0x55, 0xad, 0x3b, 0xaa, 0x2b, 0xa4, 0xc5, 0x61, 0x55, 0x2b, 0xa8, 0xab, 0xaa, 0xa3, 0x05, 0x6a, 0xfb, 0x58, 0xd6, 0xd7,
+ 0xaa, 0x93, 0x46, 0x72, 0x57, 0x5f, 0xf7, 0x2f, 0x0b, 0xa4, 0x05, 0x6a, 0x37, 0xaf, 0x02, 0x00, 0x6c, 0xac, 0xcb, 0xa3, 0xb1, 0xbd, 0xfe, 0x3e, 0xee, 0xc4, 0x4c, 0xb4, 0xb5, 0x8b, 0xab, 0x2b,
+ 0x50, 0xd5, 0x08, 0x5a, 0x70, 0x52, 0x50, 0x58, 0x29, 0x52, 0xc8, 0x41, 0x77, 0xe8, 0xa0, 0x20, 0x49, 0x52, 0xa7, 0x41, 0x75, 0xaf, 0x2a, 0xf8, 0x09, 0x52, 0xe8, 0x41, 0x2d, 0x57, 0xee, 0xad,
+ 0x29, 0x4a, 0xe7, 0x41, 0x36, 0x7b, 0x7b, 0x78, 0x09, 0x52, 0xa7, 0x39, 0xa0, 0xd7, 0x09, 0x02, 0x49, 0x5a, 0xc7, 0x41, 0xfd, 0x8b, 0x77, 0xf7, 0xca, 0x62, 0xc7, 0x39, 0xba, 0xac, 0x7f, 0xf5,
+ 0x6a, 0x52, 0xa7, 0x39, 0xea, 0xc8, 0xdd, 0xda, 0x29, 0x4a, 0xa8, 0x39, 0x20, 0x0f, 0x7f, 0xa2, 0x89, 0x5a, 0xc7, 0x39, 0x22, 0xfe, 0x55, 0xfd, 0x89, 0x5a, 0xc8, 0x41, 0xa8, 0xdb, 0x65, 0x5f,
+ 0x8a, 0x5a, 0xc8, 0x41, 0xf8, 0xb9, 0x7b, 0xd5, 0xca, 0x62, 0xe8, 0x41, 0x5d, 0xf5, 0x75, 0x4b, 0x49, 0x4a, 0xc8, 0x41, 0xe8, 0x76, 0xff, 0x57, 0x29, 0x4a, 0x87, 0x39, 0xe8, 0x97, 0xfe, 0xed,
+ 0x08, 0x4a, 0xa7, 0x39, 0xac, 0xde, 0xae, 0xaf, 0xe8, 0x41, 0xa7, 0x31, 0x02, 0x72, 0xfe, 0x80, 0xe8, 0x41, 0xa7, 0x39, 0x22, 0x1d, 0x8a, 0x7a, 0x08, 0x42, 0xa7, 0x39, 0x3a, 0x8e, 0x39, 0xa1,
+ 0x08, 0x4a, 0xa7, 0x39, 0xea, 0x6a, 0x2e, 0x28, 0x29, 0x4a, 0xa7, 0x39, 0xed, 0xf9, 0xbe, 0xca, 0x09, 0x4a, 0xa7, 0x39, 0x0a, 0x17, 0xfb, 0x7a, 0x08, 0x42, 0xa7, 0x39, 0xa2, 0xaa, 0x17, 0xbb,
+ 0x08, 0x4a, 0xa8, 0x39, 0xab, 0x6b, 0xe8, 0xde, 0xc8, 0x41, 0xa7, 0x31, 0x27, 0x9b, 0x2a, 0x00, 0x08, 0x4a, 0xa7, 0x39, 0x1d, 0xff, 0xfe, 0xba, 0xe8, 0x49, 0xa7, 0x39, 0x8b, 0x77, 0x0a, 0x28,
+ 0x08, 0x4a, 0x87, 0x41, 0xee, 0x57, 0x2e, 0xa8, 0x08, 0x4a, 0x87, 0x39, 0xef, 0xa9, 0x2a, 0x2a, 0x29, 0x4a, 0x87, 0x39, 0xab, 0x0b, 0xea, 0x7a, 0x09, 0x4a, 0xa7, 0x41, 0x0a, 0xae, 0x75, 0x63,
+ 0x53, 0x7c, 0xa7, 0x41, 0xd5, 0xff, 0xbf, 0xa8, 0x33, 0x7c, 0x69, 0x5a, 0xf5, 0xef, 0x57, 0x02, 0x73, 0x7c, 0x69, 0x5a, 0xf5, 0xff, 0x7f, 0x80, 0x6e, 0x73, 0x49, 0x4a, 0x7f, 0xaa, 0xa2, 0x3a,
+ 0x90, 0x73, 0x49, 0x4a, 0x5f, 0xae, 0xae, 0x28, 0xf2, 0x73, 0x69, 0x52, 0xfd, 0xbf, 0xfd, 0x80, 0x33, 0x7c, 0xaa, 0x5a, 0x55, 0xf5, 0x5f, 0x80, 0xf2, 0x7b, 0xe7, 0x41, 0x57, 0xae, 0xeb, 0x00,
+ 0x33, 0x7c, 0x89, 0x5a, 0x7d, 0xff, 0xff, 0x20, 0x12, 0x74, 0xaa, 0x5a, 0xdd, 0xff, 0xff, 0x00, 0x13, 0x74, 0x89, 0x5a, 0xde, 0xdf, 0xf5, 0x00, 0x32, 0x74, 0xca, 0x62, 0x59, 0xff, 0xf5, 0x00,
+ 0xf1, 0x73, 0x69, 0x52, 0x77, 0xfe, 0xfb, 0x00, 0x4e, 0x73, 0x4a, 0x4a, 0xf5, 0x0a, 0xa7, 0xa8, 0x6f, 0x73, 0x49, 0x52, 0x7d, 0x8a, 0xba, 0xaa, 0x8d, 0x7b, 0x4a, 0x4a, 0xd5, 0xaa, 0x80, 0xaa,
+ 0x4d, 0x73, 0xab, 0x5a, 0xf7, 0x8a, 0xaa, 0xb6, 0x6f, 0x73, 0x69, 0x52, 0x0f, 0xff, 0x7a, 0x00, 0x90, 0x73, 0xaa, 0x62, 0xff, 0xfd, 0xff, 0x03, 0x8f, 0x73, 0xcb, 0x6a, 0x5f, 0x97, 0xff, 0xe8,
+ 0xae, 0x8b, 0x8a, 0x5a, 0x7d, 0xea, 0x3a, 0x7a, 0x0f, 0x94, 0xaa, 0x6a, 0x7f, 0xfc, 0xb9, 0xad, 0x4c, 0x7b, 0xaa, 0x5a, 0x9d, 0xaa, 0x2a, 0xe0, 0x6c, 0x73, 0xcb, 0x62, 0x64, 0xb3, 0xb2, 0xfd,
+ 0x4c, 0x7b, 0x49, 0x4a, 0x95, 0xae, 0x60, 0x80, 0x4c, 0x7b, 0xab, 0x62, 0x7f, 0x8a, 0xaa, 0x81, 0x50, 0x8c, 0x29, 0x52, 0xd5, 0xff, 0x37, 0xff, 0x0c, 0x6b, 0xc8, 0x41, 0xaf, 0x7a, 0xa8, 0x2a,
+ 0xeb, 0x6a, 0x09, 0x4a, 0xea, 0xa9, 0x57, 0x80, 0x4d, 0x7b, 0xc5, 0x59, 0x5f, 0x5e, 0xfd, 0xf8, 0x46, 0x6a, 0xa4, 0x59, 0xdb, 0x7f, 0xe2, 0xfa, 0xe5, 0x61, 0x84, 0x59, 0x5a, 0x77, 0xf0, 0x80,
+ 0xa5, 0x61, 0x23, 0x49, 0xdf, 0xfa, 0xfe, 0xa8, 0xe5, 0x59, 0x23, 0x49, 0xd5, 0xdf, 0xbf, 0x2f, 0xe5, 0x61, 0x43, 0x51, 0xd5, 0xf5, 0x28, 0xa0, 0xe5, 0x61, 0x84, 0x51, 0x7a, 0x80, 0x2a, 0x88,
+ 0x05, 0x6a, 0x63, 0x51, 0x55, 0xe8, 0xea, 0xaa, 0x26, 0x72, 0x64, 0x51, 0x2d, 0x0b, 0x0b, 0x0a, 0x4c, 0xbc, 0x46, 0x72, 0x35, 0xb5, 0x2d, 0xad, 0xae, 0xc4, 0xe7, 0x49, 0x50, 0x5c, 0x5c, 0xd4,
+ 0xaa, 0x5a, 0xe8, 0x41, 0x55, 0x55, 0x5d, 0x30, 0xaa, 0x52, 0x68, 0x31, 0xff, 0xdf, 0xfe, 0xe8, 0x8a, 0x5a, 0xe8, 0x41, 0x55, 0x55, 0xfd, 0x29, 0x6a, 0x52, 0xe8, 0x41, 0xf7, 0xe5, 0x5e, 0x7c,
+ 0x49, 0x4a, 0xe8, 0x41, 0xd8, 0x0b, 0xa5, 0x9b, 0xaa, 0x5a, 0xc8, 0x39, 0x2b, 0xbe, 0xba, 0xf5, 0xaa, 0x5a, 0x29, 0x4a, 0x6a, 0xf2, 0xff, 0x99, 0x6a, 0x52, 0xe8, 0x49, 0x12, 0xef, 0x9a, 0xc9,
+ 0x49, 0x52, 0xe8, 0x41, 0xfc, 0xac, 0xac, 0xd7, 0x69, 0x52, 0xe8, 0x41, 0xed, 0xf5, 0x2a, 0xff, 0x49, 0x52, 0x88, 0x39, 0x2a, 0x3f, 0x5a, 0xba, 0x49, 0x52, 0xa8, 0x39, 0x20, 0xaa, 0xdf, 0xae,
+ 0x69, 0x52, 0xc8, 0x41, 0xe0, 0xa3, 0xa5, 0xa2, 0x6a, 0x52, 0xe8, 0x49, 0x7d, 0xea, 0x52, 0x2a, 0x49, 0x52, 0xe8, 0x41, 0xd7, 0x80, 0xef, 0xb8, 0x29, 0x52, 0x87, 0x31, 0x0a, 0xa6, 0xa8, 0x08,
+ 0x49, 0x52, 0x08, 0x4a, 0x57, 0xcb, 0xae, 0xec, 0x29, 0x4a, 0xa8, 0x41, 0xae, 0xa8, 0x6b, 0xbb, 0x29, 0x4a, 0xc8, 0x39, 0x25, 0xfe, 0xa2, 0xa3, 0x49, 0x52, 0xe8, 0x41, 0xa8, 0xf9, 0xf7, 0xbd,
+ 0xea, 0x62, 0xe8, 0x49, 0x3f, 0x77, 0x57, 0xff, 0x4b, 0x7b, 0xc8, 0x49, 0xbe, 0xd5, 0xb5, 0x8f, 0x69, 0x5a, 0xe7, 0x39, 0x20, 0x27, 0xdc, 0x5c, 0x2b, 0x73, 0xe7, 0x41, 0x89, 0x7f, 0xfd, 0xdd,
+ 0xcb, 0x6a, 0xe8, 0x49, 0xba, 0x8d, 0x73, 0xff, 0x89, 0x5a, 0xe8, 0x41, 0xe2, 0xf7, 0xf9, 0xf0, 0x49, 0x4a, 0xe8, 0x41, 0xdb, 0xbf, 0xfa, 0x2e, 0x49, 0x52, 0xe8, 0x41, 0x5d, 0xfd, 0xfe, 0x0a,
+ 0x49, 0x52, 0xa7, 0x39, 0xf7, 0xef, 0x7f, 0xe2, 0x09, 0x42, 0x87, 0x39, 0x5f, 0xf0, 0xfa, 0x00, 0x29, 0x4a, 0x68, 0x39, 0xb5, 0xff, 0xaf, 0xa0, 0x07, 0x52, 0xc9, 0x39, 0xfe, 0x6b, 0xfd, 0x2a,
+ 0x04, 0x72, 0xc7, 0x41, 0x35, 0x2f, 0x2b, 0x0a, 0x45, 0x72, 0xa4, 0x61, 0xe8, 0x5e, 0xf8, 0xe8, 0xa4, 0x69, 0x63, 0x51, 0x88, 0xaa, 0x3e, 0x56, 0xa3, 0x69, 0xe4, 0x61, 0x00, 0xa2, 0xac, 0xbe,
+ 0xc4, 0x71, 0xa3, 0x61, 0xff, 0x9a, 0xf2, 0xe7, 0xe5, 0x69, 0xa3, 0x61, 0xfd, 0xff, 0x2e, 0xc0, 0x04, 0x6a, 0x83, 0x61, 0xff, 0xf0, 0xa8, 0x6a, 0xc4, 0x69, 0x83, 0x59, 0x62, 0x7a, 0xff, 0xa9,
+ 0x05, 0x6a, 0x63, 0x59, 0x8b, 0xa5, 0x2d, 0xdf, 0x04, 0x6a, 0xc5, 0x61, 0x8a, 0xb9, 0xaa, 0xa3, 0x05, 0x6a, 0xc4, 0x61, 0xfb, 0xe2, 0xfa, 0xed, 0x05, 0x6a, 0xc4, 0x59, 0xbb, 0xee, 0xef, 0x7a,
+ 0x06, 0x6a, 0xc4, 0x59, 0x6f, 0xca, 0xab, 0xab, 0x26, 0x6a, 0xc5, 0x59, 0x0f, 0x2b, 0xae, 0xaf, 0x46, 0x6a, 0xe5, 0x61, 0x5a, 0x7e, 0xfc, 0xb0, 0x06, 0x62, 0xc4, 0x59, 0xa1, 0xb9, 0x68, 0xd7,
+ 0xe8, 0x82, 0xe4, 0x61, 0xad, 0xad, 0xad, 0x2d, 0x08, 0x83, 0x46, 0x72, 0x27, 0x7e, 0x56, 0xac, 0xc8, 0x7a, 0x46, 0x6a, 0x82, 0x59, 0xdf, 0x5c, 0xc8, 0x7a, 0x25, 0x6a, 0xd5, 0x95, 0xaf, 0x2a,
+ 0x4d, 0xac, 0x87, 0x72, 0x0d, 0x0f, 0x0d, 0x0b, 0x2c, 0xac, 0xcb, 0x9b, 0x37, 0xb7, 0xa0, 0xff, 0xce, 0xbc, 0xcb, 0xa3, 0xd7, 0x25, 0x29, 0xa5, 0x0f, 0xcd, 0xea, 0x82, 0x0a, 0x00, 0x00, 0x42,
+ 0xb2, 0xdd, 0xc7, 0x41, 0x5c, 0x54, 0x55, 0x55, 0x49, 0x52, 0xc8, 0x41, 0xab, 0xb7, 0xad, 0x35, 0x69, 0x5a, 0xe8, 0x41, 0x8b, 0xf6, 0xff, 0xfe, 0x6a, 0x5a, 0xe8, 0x41, 0x2b, 0xf7, 0xad, 0xdf,
+ 0x69, 0x5a, 0xc8, 0x39, 0xe8, 0xa0, 0xea, 0x5f, 0x8a, 0x5a, 0xc7, 0x41, 0xfd, 0xca, 0xfd, 0xf9, 0xaa, 0x5a, 0xc8, 0x41, 0xfe, 0xa3, 0xd7, 0xf7, 0x4a, 0x52, 0xc7, 0x39, 0xbf, 0x0a, 0x6b, 0x9f,
+ 0xaa, 0x62, 0xe8, 0x41, 0xff, 0xbb, 0x2b, 0xf5, 0xeb, 0x62, 0xa7, 0x39, 0xb2, 0xba, 0xfe, 0xd7, 0xaa, 0x62, 0xe7, 0x41, 0x7e, 0x22, 0xfb, 0xd5, 0xcb, 0x6a, 0xa7, 0x39, 0xde, 0xb8, 0xba, 0xff,
+ 0x8a, 0x5a, 0xc7, 0x41, 0x97, 0x80, 0xfa, 0x57, 0x09, 0x52, 0xa7, 0x39, 0xfa, 0x82, 0x50, 0xfb, 0x49, 0x4a, 0xa8, 0x41, 0x7e, 0x2e, 0x6a, 0xff, 0x29, 0x4a, 0x87, 0x39, 0x7f, 0xba, 0xab, 0x8b,
+ 0x28, 0x4a, 0x67, 0x39, 0xaa, 0xe2, 0xf6, 0xaa, 0x29, 0x52, 0xa7, 0x31, 0xef, 0x3a, 0x7f, 0x77, 0x29, 0x4a, 0xa7, 0x39, 0xad, 0x28, 0xbb, 0xaa, 0x09, 0x4a, 0xc8, 0x41, 0x57, 0xbc, 0x8f, 0x89,
+ 0x08, 0x4a, 0xa7, 0x39, 0xb9, 0x5a, 0xf6, 0x88, 0x09, 0x4a, 0xc7, 0x39, 0xfb, 0xba, 0xa7, 0xeb, 0x09, 0x52, 0xa7, 0x39, 0xef, 0x8e, 0xee, 0x7b, 0xe8, 0x41, 0xa7, 0x39, 0x87, 0x23, 0xbb, 0x1a,
+ 0x08, 0x42, 0x87, 0x39, 0x7f, 0xab, 0x0f, 0x2c, 0x08, 0x42, 0xa7, 0x39, 0x67, 0xa8, 0xa8, 0x2b, 0x28, 0x42, 0xa7, 0x39, 0xbd, 0x8b, 0xaa, 0xf7, 0x09, 0x42, 0xc7, 0x39, 0x6c, 0xb6, 0xff, 0xae,
+ 0x09, 0x4a, 0xa8, 0x39, 0x7f, 0xaa, 0xea, 0xaa, 0x08, 0x42, 0xa7, 0x41, 0xaa, 0xa6, 0x9e, 0xe8, 0x08, 0x4a, 0xa7, 0x41, 0xbb, 0xae, 0x18, 0xe8, 0x49, 0x5a, 0xc7, 0x41, 0x55, 0xff, 0x82, 0xae,
+ 0x94, 0x8c, 0x34, 0x74, 0x55, 0xff, 0xff, 0xa0, 0xb5, 0x94, 0x33, 0x74, 0x5d, 0xe5, 0xd7, 0x80, 0x75, 0x84, 0x13, 0x6c, 0xde, 0xff, 0xfa, 0x08, 0xb5, 0x84, 0x13, 0x74, 0x57, 0x5e, 0x7f, 0x82,
+ 0x94, 0x84, 0xf3, 0x73, 0xfd, 0x7f, 0xeb, 0x80, 0x74, 0x84, 0xf3, 0x73, 0x57, 0xfd, 0xff, 0x0a, 0x74, 0x84, 0xf3, 0x6b, 0xfd, 0xff, 0xaf, 0x28, 0x74, 0x84, 0xf3, 0x6b, 0xdf, 0xff, 0x88, 0xaa,
+ 0x74, 0x7c, 0xf3, 0x73, 0x55, 0xff, 0xa0, 0xaa, 0x74, 0x84, 0xf3, 0x73, 0x5d, 0xee, 0xba, 0xa8, 0x54, 0x7c, 0xf3, 0x73, 0x75, 0xa2, 0x00, 0x02, 0xf5, 0x9c, 0xf3, 0x6b, 0x55, 0x55, 0xff, 0x2b,
+ 0x15, 0xad, 0xf2, 0x6b, 0x55, 0x55, 0x5f, 0x8b, 0x74, 0x8c, 0xf2, 0x6b, 0x5d, 0x55, 0xd5, 0x82, 0xb4, 0x8c, 0xd2, 0x6b, 0x55, 0x55, 0xfd, 0x0b, 0xd5, 0x94, 0xb2, 0x6b, 0xdd, 0x55, 0xff, 0x88,
+ 0xd5, 0x94, 0xb2, 0x6b, 0x55, 0x57, 0x7f, 0x7c, 0xb2, 0x73, 0xf3, 0x6b, 0xbf, 0x0b, 0xae, 0xdf, 0xd3, 0x73, 0xb2, 0x6b, 0x5b, 0xf2, 0xa8, 0x3e, 0xf3, 0x73, 0xb1, 0x6b, 0x5d, 0x5f, 0xeb, 0xab,
+ 0xf2, 0x73, 0x91, 0x6b, 0xaa, 0xde, 0xae, 0x8e, 0xd2, 0x83, 0xb1, 0x6b, 0xbf, 0xbd, 0xb5, 0xbf, 0xf2, 0x73, 0x70, 0x6b, 0xf5, 0xba, 0xb8, 0xa8, 0xd2, 0x73, 0x0d, 0x63, 0x63, 0x0a, 0x02, 0x00,
+ 0x34, 0x7c, 0xcb, 0x62, 0xbd, 0xaa, 0xaa, 0x2a, 0x33, 0x7c, 0x2e, 0x6b, 0x5e, 0xaf, 0xee, 0xa8, 0xf2, 0x73, 0x2e, 0x6b, 0xfd, 0xaa, 0x88, 0x00, 0xb2, 0x73, 0x2d, 0x6b, 0x6f, 0x2a, 0x02, 0x80,
+ 0xb2, 0x73, 0x49, 0x52, 0xb7, 0x20, 0x00, 0x00, 0xb2, 0x73, 0xa9, 0x5a, 0xf7, 0xaa, 0x20, 0xa0, 0x91, 0x6b, 0xa6, 0x59, 0x57, 0x78, 0x00, 0x00, 0xb1, 0x73, 0xa4, 0x59, 0x55, 0x55, 0x58, 0x60,
+ 0xe5, 0x69, 0x84, 0x59, 0x5f, 0xa0, 0xab, 0xaa, 0xe4, 0x61, 0x43, 0x49, 0x0a, 0x82, 0xe2, 0x70, 0xe4, 0x69, 0x43, 0x51, 0x20, 0xaa, 0x2d, 0x25, 0xe5, 0x69, 0xc4, 0x61, 0x8a, 0xef, 0x8d, 0x4a,
+ 0x04, 0x6a, 0x83, 0x61, 0x8b, 0xef, 0x6a, 0xfd, 0x45, 0x72, 0x02, 0x51, 0x2a, 0x2a, 0xef, 0xd7, 0x2b, 0xac, 0x02, 0x49, 0x0a, 0x83, 0xbd, 0xf5, 0x6b, 0x83, 0xc7, 0x41, 0x74, 0xfa, 0xfb, 0xe7,
+ 0xab, 0x5a, 0xa7, 0x39, 0x3f, 0xdd, 0xf7, 0xfa, 0xea, 0x62, 0xc8, 0x31, 0x0a, 0xff, 0x5d, 0x55, 0x8a, 0x5a, 0xc8, 0x31, 0x00, 0xbf, 0x75, 0x57, 0xeb, 0x62, 0xc8, 0x39, 0xba, 0xe3, 0x7d, 0x55,
+ 0x8a, 0x52, 0xa8, 0x39, 0xa2, 0xba, 0xb5, 0xff, 0xca, 0x62, 0xe8, 0x39, 0xd7, 0x8a, 0x0b, 0x7d, 0xea, 0x62, 0xe9, 0x41, 0x5f, 0xfa, 0x2a, 0xbf, 0xaa, 0x5a, 0xa8, 0x41, 0xfb, 0x5f, 0xa0, 0x8b,
+ 0xaa, 0x5a, 0xe8, 0x41, 0x7e, 0xd5, 0x2e, 0xaa, 0x0a, 0x63, 0x28, 0x4a, 0x55, 0x57, 0xfd, 0x2a, 0x0b, 0x6b, 0xa7, 0x39, 0xff, 0xeb, 0x7f, 0xa0, 0x6a, 0x52, 0xc8, 0x41, 0x79, 0xba, 0xfd, 0xa0,
+ 0x49, 0x52, 0x08, 0x42, 0xf6, 0xf7, 0xe8, 0x78, 0x69, 0x52, 0xc8, 0x41, 0x7b, 0xd7, 0xab, 0x0e, 0x0c, 0x63, 0xc7, 0x41, 0x7f, 0xff, 0xf7, 0x2f, 0xcb, 0x6a, 0xe8, 0x49, 0xad, 0xdf, 0xfa, 0x2c,
+ 0xad, 0x83, 0x08, 0x4a, 0x7d, 0x7d, 0x7d, 0xc8, 0x0b, 0x6b, 0xa7, 0x39, 0xff, 0xdf, 0xfb, 0x00, 0x2b, 0x6b, 0xe7, 0x41, 0x57, 0x57, 0xff, 0x80, 0xaa, 0x5a, 0x09, 0x4a, 0xff, 0xf5, 0x27, 0x30,
+ 0xeb, 0x62, 0x28, 0x52, 0x5d, 0x7d, 0xaa, 0x88, 0x0b, 0x6b, 0x49, 0x5a, 0x69, 0x7d, 0xcf, 0xba, 0xeb, 0x62, 0x08, 0x4a, 0x5e, 0x79, 0x28, 0x28, 0xcb, 0x62, 0x29, 0x4a, 0xf9, 0xbd, 0x20, 0xa8,
+ 0xea, 0x6a, 0x08, 0x4a, 0xb7, 0x7f, 0xea, 0xe2, 0x2c, 0x73, 0x08, 0x42, 0x9c, 0xff, 0xff, 0xf5, 0x49, 0x52, 0xc8, 0x41, 0x20, 0x00, 0xe8, 0x7e, 0xcb, 0x62, 0xc7, 0x39, 0xab, 0x2b, 0xbb, 0xd5,
+ 0xeb, 0x62, 0xe8, 0x41, 0xfb, 0x2e, 0x57, 0xbd, 0x8a, 0x5a, 0xe8, 0x41, 0x57, 0xff, 0x7c, 0xf4, 0x29, 0x4a, 0x87, 0x41, 0xba, 0x22, 0x70, 0xa0, 0xa4, 0x69, 0xe8, 0x41, 0xb5, 0xad, 0x0b, 0x0b,
+ 0x45, 0x72, 0x83, 0x61, 0x8f, 0xab, 0x57, 0xab, 0x24, 0x72, 0xa3, 0x61, 0xa8, 0x70, 0x6b, 0xeb, 0xc4, 0x61, 0x63, 0x51, 0xfc, 0x5c, 0x78, 0x9a, 0x04, 0x6a, 0x63, 0x59, 0xab, 0xad, 0x2b, 0xef,
+ 0x05, 0x6a, 0xc4, 0x61, 0xab, 0x83, 0x7b, 0x6f, 0x05, 0x6a, 0xa4, 0x61, 0xaa, 0x8e, 0xb7, 0xff, 0x05, 0x6a, 0x63, 0x59, 0xfa, 0xa0, 0xf8, 0xd7, 0xe4, 0x61, 0x63, 0x59, 0xea, 0x8f, 0xb5, 0xeb,
+ 0xc5, 0x61, 0x63, 0x51, 0xff, 0xfa, 0x27, 0xf7, 0x05, 0x62, 0xa4, 0x59, 0x0b, 0xdd, 0xbb, 0x29, 0x05, 0x6a, 0xc4, 0x61, 0xdc, 0x89, 0xcf, 0x7f, 0x04, 0x62, 0xa5, 0x59, 0xef, 0xaa, 0x22, 0x28,
+ 0x05, 0x6a, 0xc4, 0x61, 0xa9, 0x9a, 0xba, 0xff, 0x25, 0x6a, 0xc4, 0x61, 0xbe, 0x2a, 0x2a, 0xed, 0x26, 0x6a, 0xc5, 0x61, 0xc8, 0x60, 0x78, 0xd6, 0x05, 0x62, 0xa4, 0x59, 0xde, 0xbe, 0x02, 0x8a,
+ 0xc7, 0x7a, 0x05, 0x62, 0x6d, 0x0b, 0xab, 0x2b, 0x29, 0x8b, 0xe5, 0x61, 0xad, 0x0a, 0x0f, 0x0a, 0xea, 0x9b, 0x26, 0x62, 0xf7, 0xf5, 0x0a, 0xaa, 0xeb, 0x9b, 0xa7, 0x72, 0x3d, 0xa1, 0x60, 0xbe,
+ 0x2c, 0xa4, 0x28, 0x83, 0xdf, 0xe3, 0xa9, 0xbf, 0x6d, 0xb4, 0xaa, 0x93, 0xf5, 0xad, 0xad, 0x8b, 0x0f, 0xcd, 0x69, 0x93, 0x2f, 0xab, 0x42, 0x0a, 0x30, 0xd5, 0xa6, 0x49, 0x42, 0x72, 0x50, 0x5c,
+ 0x29, 0x4a, 0xa7, 0x41, 0x2b, 0x8a, 0xed, 0xff, 0x29, 0x4a, 0xa6, 0x39, 0xe8, 0xa0, 0xc9, 0x2f, 0x29, 0x4a, 0xa7, 0x41, 0xe2, 0xea, 0xab, 0xb7, 0x29, 0x52, 0xe8, 0x41, 0xda, 0x7f, 0xfb, 0xcb,
+ 0x49, 0x4a, 0xe8, 0x41, 0xbd, 0x52, 0xaf, 0xe2, 0x69, 0x4a, 0xc8, 0x41, 0xfe, 0x2b, 0xbf, 0xf7, 0x69, 0x52, 0xc8, 0x41, 0xee, 0x2a, 0xff, 0xdf, 0x49, 0x4a, 0xe8, 0x41, 0xbf, 0xbe, 0x2b, 0xdf,
+ 0x09, 0x4a, 0xe8, 0x39, 0x00, 0xf8, 0xaf, 0x02, 0x29, 0x4a, 0xc7, 0x41, 0xb5, 0xe0, 0xb3, 0x9b, 0x49, 0x4a, 0xc8, 0x41, 0xa7, 0x3f, 0xed, 0x7e, 0x29, 0x4a, 0xa7, 0x39, 0xea, 0xe0, 0x6e, 0xeb,
+ 0x29, 0x4a, 0xa7, 0x39, 0x0b, 0x77, 0xaf, 0x9d, 0x29, 0x4a, 0x88, 0x39, 0xaa, 0xa9, 0x2b, 0xac, 0x29, 0x52, 0xc8, 0x41, 0xae, 0xfe, 0x68, 0xbe, 0x09, 0x4a, 0xa7, 0x39, 0x28, 0xee, 0xbb, 0xaf,
+ 0x09, 0x42, 0xc7, 0x39, 0x68, 0x1f, 0xa8, 0xcf, 0x28, 0x42, 0xa7, 0x39, 0x7a, 0xfe, 0xa0, 0x35, 0x28, 0x4a, 0xa7, 0x39, 0xff, 0xfb, 0x87, 0xee, 0x08, 0x4a, 0xa7, 0x39, 0xde, 0x9b, 0xa2, 0xee,
+ 0x08, 0x42, 0xc7, 0x39, 0x0c, 0x7e, 0x6b, 0xbd, 0x08, 0x4a, 0xc7, 0x39, 0x2f, 0x6a, 0x65, 0x2a, 0x08, 0x4a, 0xa7, 0x39, 0xeb, 0xfb, 0xeb, 0xaa, 0xe8, 0x41, 0xa7, 0x39, 0x2a, 0x9d, 0xb7, 0x78,
+ 0xe8, 0x49, 0x87, 0x31, 0x02, 0x96, 0xff, 0xaa, 0xe8, 0x41, 0xa7, 0x39, 0xbb, 0xcf, 0xda, 0x58, 0x08, 0x4a, 0xa7, 0x31, 0xaa, 0xfb, 0xca, 0xf7, 0xe8, 0x41, 0xa7, 0x39, 0x8a, 0xfa, 0x02, 0xa0,
+ 0x08, 0x4a, 0xc7, 0x39, 0xbf, 0xf5, 0xda, 0xfa, 0x08, 0x42, 0x87, 0x39, 0x00, 0xbd, 0xad, 0x8a, 0xe9, 0x41, 0xc7, 0x39, 0x0c, 0xc0, 0x2a, 0x62, 0x69, 0x5a, 0xe8, 0x39, 0xb9, 0x2d, 0xbd, 0xff,
+ 0xd7, 0xb5, 0x54, 0x84, 0x55, 0xff, 0x0a, 0xa8, 0x58, 0xc6, 0x74, 0x8c, 0x57, 0xfd, 0xe0, 0xeb, 0x5a, 0xc6, 0x74, 0x84, 0x55, 0xff, 0xaf, 0x3e, 0x79, 0xce, 0x94, 0x84, 0x55, 0xf7, 0xfe, 0x08,
+ 0xba, 0xce, 0x94, 0x84, 0x55, 0x57, 0xfd, 0x00, 0xba, 0xce, 0x54, 0x84, 0x55, 0xff, 0xff, 0x88, 0xba, 0xce, 0x74, 0x84, 0x55, 0xff, 0xff, 0x00, 0x38, 0xc6, 0x54, 0x7c, 0x55, 0xff, 0xff, 0xa8,
+ 0x36, 0xa5, 0x53, 0x7c, 0x55, 0xff, 0xaa, 0x08, 0xb7, 0xad, 0x54, 0x7c, 0x55, 0xff, 0x2b, 0x08, 0x39, 0xbe, 0x54, 0x84, 0xd5, 0x55, 0xbe, 0x8a, 0xd8, 0xb5, 0x54, 0x84, 0x55, 0x55, 0xaa, 0x08,
+ 0x18, 0xb6, 0x14, 0x84, 0x55, 0xff, 0xaa, 0xa0, 0x76, 0xa5, 0x14, 0x7c, 0x7d, 0xff, 0xaa, 0xa0, 0xf6, 0x94, 0x54, 0x7c, 0xdf, 0xeb, 0xa8, 0x2a, 0x37, 0x9d, 0x33, 0x84, 0xfe, 0xf9, 0xcb, 0xaa,
+ 0x36, 0x9d, 0x33, 0x84, 0x55, 0xea, 0x3f, 0x0a, 0x57, 0xa5, 0xd2, 0x6b, 0x57, 0xfe, 0xa8, 0x82, 0x97, 0xa5, 0xd3, 0x6b, 0x55, 0xff, 0xaa, 0x0a, 0x36, 0x9d, 0xd3, 0x6b, 0x55, 0xff, 0xa2, 0x00,
+ 0x16, 0x95, 0xb2, 0x6b, 0x5d, 0xae, 0x80, 0x00, 0x16, 0x95, 0xb2, 0x6b, 0x55, 0xff, 0x02, 0x00, 0x98, 0x9d, 0xb2, 0x6b, 0x55, 0xff, 0x2a, 0xaa, 0xf8, 0xad, 0xd2, 0x6b, 0x55, 0xff, 0xa0, 0xaa,
+ 0xd8, 0xad, 0xd2, 0x6b, 0x55, 0x7f, 0xaa, 0x00, 0xf8, 0xb5, 0xf2, 0x73, 0x55, 0xf5, 0x00, 0xaa, 0xb8, 0xad, 0x12, 0x7c, 0x55, 0x55, 0x00, 0xfe, 0xb8, 0xad, 0xb2, 0x6b, 0x57, 0xff, 0x0a, 0x00,
+ 0x19, 0xb6, 0x92, 0x6b, 0x55, 0xff, 0x08, 0xaa, 0xd7, 0xb5, 0x71, 0x6b, 0x57, 0x7f, 0x0a, 0xaa, 0x93, 0x84, 0xc4, 0x61, 0xaa, 0xe2, 0x54, 0x57, 0x8f, 0x6b, 0x84, 0x61, 0xc0, 0x5e, 0x55, 0x55,
+ 0xa4, 0x69, 0x63, 0x51, 0xde, 0xfa, 0xfe, 0x98, 0xa3, 0x61, 0xc2, 0x40, 0xd8, 0xe2, 0x2a, 0x2a, 0x04, 0x72, 0x03, 0x51, 0xb5, 0x2d, 0xaa, 0xac, 0x04, 0x6a, 0xa3, 0x61, 0x77, 0xaf, 0xb5, 0x05,
+ 0x04, 0x6a, 0x83, 0x61, 0xdd, 0x78, 0xe8, 0xea, 0xe4, 0x69, 0x63, 0x61, 0x5f, 0xae, 0x29, 0xaa, 0x05, 0x6a, 0x83, 0x61, 0xe5, 0xfa, 0x2a, 0xba, 0x8e, 0x8b, 0x83, 0x61, 0xb5, 0x3f, 0x55, 0x75,
+ 0x57, 0xa5, 0x09, 0x4a, 0x57, 0x60, 0x02, 0x0b, 0x57, 0x9d, 0x87, 0x31, 0x55, 0x57, 0x7e, 0x00, 0x4e, 0x63, 0xa8, 0x39, 0xd5, 0x55, 0x5d, 0xfc, 0x29, 0x42, 0xc8, 0x39, 0x55, 0x2b, 0x7b, 0xaa,
+ 0x29, 0x42, 0xa8, 0x39, 0x8e, 0xbf, 0xef, 0x72, 0x2a, 0x4a, 0xc7, 0x39, 0xfd, 0x8e, 0x97, 0xaf, 0x2a, 0x4a, 0xa7, 0x39, 0x3a, 0xe0, 0xd8, 0xf0, 0x49, 0x52, 0x88, 0x39, 0x02, 0xe5, 0xeb, 0xdf,
+ 0x49, 0x4a, 0xa8, 0x39, 0xa0, 0x2b, 0xab, 0xf6, 0x8a, 0x5a, 0x09, 0x4a, 0x22, 0x3f, 0x85, 0xd7, 0x8a, 0x5a, 0x08, 0x4a, 0x00, 0xb9, 0xf7, 0xff, 0xca, 0x5a, 0x29, 0x4a, 0x33, 0xa5, 0x7f, 0xe2,
+ 0x4d, 0x6b, 0x49, 0x52, 0x68, 0xff, 0xfd, 0xd5, 0x0c, 0x6b, 0x08, 0x42, 0xfa, 0x2e, 0xf2, 0xdf, 0xcb, 0x62, 0xe8, 0x39, 0xfe, 0xc8, 0xb7, 0xaf, 0x0b, 0x6b, 0xa7, 0x41, 0x0d, 0xaa, 0xa8, 0xfa,
+ 0xeb, 0x6a, 0xe8, 0x41, 0xa2, 0x8a, 0x7b, 0xef, 0xeb, 0x62, 0xc8, 0x41, 0x00, 0x82, 0xfd, 0xff, 0x2b, 0x6b, 0xe8, 0x41, 0xa8, 0xaa, 0xb5, 0x7e, 0xca, 0x62, 0x69, 0x52, 0xeb, 0xfe, 0xd6, 0x3f,
+ 0xca, 0x62, 0x29, 0x52, 0x00, 0xaa, 0x62, 0xf4, 0xcb, 0x62, 0x08, 0x42, 0xea, 0xab, 0x5b, 0x7c, 0x0b, 0x6b, 0x08, 0x42, 0x8b, 0xeb, 0xfd, 0x57, 0xeb, 0x62, 0x29, 0x4a, 0xa2, 0xff, 0xfd, 0x55,
+ 0xca, 0x62, 0xe7, 0x41, 0x00, 0x5f, 0xfb, 0xba, 0x2c, 0x6b, 0xe8, 0x41, 0xe2, 0xb5, 0xab, 0xfe, 0xcb, 0x62, 0xe8, 0x49, 0x4f, 0xab, 0xbb, 0xbe, 0xeb, 0x62, 0x28, 0x4a, 0x65, 0xae, 0x87, 0xbe,
+ 0x0b, 0x6b, 0x08, 0x4a, 0x35, 0x77, 0xfa, 0xba, 0xca, 0x5a, 0xa7, 0x41, 0xbe, 0xdf, 0x88, 0xa8, 0xca, 0x5a, 0xc7, 0x41, 0x7e, 0x55, 0xf2, 0x20, 0xa3, 0x69, 0x27, 0x5a, 0x8a, 0x09, 0x39, 0xad,
+ 0x04, 0x72, 0x82, 0x69, 0x2a, 0xef, 0xdf, 0x7a, 0xe5, 0x71, 0xa3, 0x61, 0x88, 0x4a, 0x7f, 0xff, 0xc5, 0x61, 0x44, 0x51, 0x9c, 0x28, 0xba, 0x3c, 0xe5, 0x61, 0x84, 0x59, 0xb5, 0x2a, 0x0b, 0x3d,
+ 0x05, 0x6a, 0xc4, 0x61, 0x32, 0xdd, 0xa6, 0x79, 0xe5, 0x69, 0xa4, 0x61, 0xee, 0xfa, 0xe2, 0x02, 0x05, 0x6a, 0x84, 0x59, 0xfa, 0xfa, 0x6a, 0x78, 0x05, 0x6a, 0x84, 0x61, 0xff, 0x8b, 0xa2, 0xf5,
+ 0xc4, 0x61, 0x63, 0x51, 0xbf, 0xb6, 0x0a, 0xaa, 0x05, 0x6a, 0xa4, 0x59, 0xa0, 0x8a, 0x2e, 0x27, 0x25, 0x6a, 0xc4, 0x61, 0xff, 0x57, 0x8b, 0xab, 0xc4, 0x69, 0x06, 0x62, 0xfc, 0xf6, 0x56, 0xdb,
+ 0x25, 0x6a, 0xc6, 0x61, 0xd7, 0xaf, 0xaa, 0xe2, 0x26, 0x6a, 0xe5, 0x61, 0xd7, 0x37, 0xf6, 0xcf, 0x25, 0x6a, 0xe5, 0x61, 0x99, 0x6e, 0x5d, 0x6f, 0x46, 0x6a, 0xe5, 0x61, 0xff, 0xed, 0xbf, 0x3f,
+ 0x87, 0x72, 0xe5, 0x61, 0x2a, 0x2f, 0xf7, 0xff, 0x48, 0x8b, 0x25, 0x72, 0xaf, 0x0f, 0xf5, 0x55, 0x89, 0x9b, 0x25, 0x72, 0x0a, 0x0a, 0x5f, 0x55, 0x89, 0x9b, 0x26, 0x72, 0x00, 0xaa, 0x55, 0xf5,
+ 0xeb, 0xa3, 0x65, 0x72, 0xea, 0x0a, 0x09, 0xd5, 0xce, 0xc4, 0xe3, 0x69, 0x02, 0xa2, 0xba, 0x7f, 0x8d, 0xbc, 0xe3, 0x69, 0x00, 0x08, 0xae, 0x8d, 0xab, 0x9b, 0xc7, 0x49, 0x7c, 0xfc, 0xd7, 0x57,
+ 0x69, 0x52, 0xc8, 0x41, 0xd7, 0x9f, 0x82, 0xff, 0x69, 0x52, 0xc7, 0x49, 0xf5, 0xea, 0x2e, 0x0f, 0x49, 0x52, 0xe8, 0x49, 0x5f, 0x2d, 0xde, 0xac, 0x0b, 0x6b, 0xc7, 0x41, 0x7d, 0x4f, 0xef, 0xef,
+ 0x8a, 0x5a, 0xa8, 0x41, 0x7f, 0xbf, 0x7b, 0xe2, 0x09, 0x4a, 0xe8, 0x41, 0x7f, 0x05, 0xcd, 0x0b, 0x09, 0x4a, 0xc8, 0x41, 0x31, 0x52, 0x82, 0xec, 0x29, 0x52, 0xe8, 0x41, 0xe9, 0xfa, 0x6a, 0xd0,
+ 0x29, 0x52, 0xc8, 0x41, 0x7f, 0xea, 0xf8, 0xfc, 0x29, 0x4a, 0xc8, 0x41, 0x6e, 0x7a, 0x2e, 0xac, 0x6a, 0x52, 0xa7, 0x39, 0xf7, 0x6b, 0xf8, 0xea, 0x29, 0x4a, 0xc7, 0x41, 0x79, 0x75, 0x2a, 0xaf,
+ 0x29, 0x4a, 0xa7, 0x39, 0x95, 0xbd, 0x80, 0xaa, 0x8a, 0x5a, 0xa7, 0x39, 0xd7, 0xff, 0xfe, 0x3e, 0x49, 0x52, 0xc8, 0x41, 0xd5, 0x5f, 0x7d, 0x80, 0xe9, 0x51, 0xc7, 0x39, 0xf7, 0xe2, 0xfb, 0xfb,
+ 0x69, 0x5a, 0xc8, 0x41, 0xf7, 0xf7, 0x5f, 0xbc, 0x09, 0x4a, 0xa7, 0x41, 0xa8, 0x78, 0x80, 0x23, 0x09, 0x4a, 0x87, 0x39, 0xdb, 0xae, 0xaa, 0x0a, 0x28, 0x4a, 0xa7, 0x41, 0xaf, 0xff, 0x53, 0x78,
+ 0x09, 0x4a, 0xa7, 0x39, 0x2e, 0x3a, 0xb7, 0xd7, 0x09, 0x4a, 0xa7, 0x41, 0xca, 0xe8, 0x07, 0xef, 0x09, 0x4a, 0xc7, 0x39, 0x1f, 0xde, 0xea, 0xff, 0x09, 0x4a, 0xc7, 0x39, 0x8b, 0xe9, 0x80, 0x1f,
+ 0x08, 0x4a, 0xa7, 0x41, 0xfb, 0xfe, 0xcf, 0x63, 0x29, 0x4a, 0xa8, 0x41, 0x99, 0x7d, 0x3a, 0xa6, 0x09, 0x52, 0xc7, 0x41, 0x57, 0x57, 0x6f, 0xfc, 0xe8, 0x49, 0x86, 0x31, 0xa6, 0xab, 0x8a, 0x08,
+ 0xe8, 0x49, 0xa7, 0x39, 0x2a, 0x6b, 0xfa, 0xa0, 0x08, 0x4a, 0xc7, 0x39, 0xed, 0xdf, 0xbf, 0xbe, 0x08, 0x42, 0x87, 0x39, 0xa2, 0x92, 0xa8, 0x00, 0x29, 0x52, 0xe7, 0x41, 0x0b, 0x3f, 0x5b, 0xfa,
+ 0x59, 0xce, 0xb5, 0x8c, 0xaa, 0xaa, 0x8a, 0x55, 0x99, 0xd6, 0xd5, 0x8c, 0x2a, 0xbf, 0xff, 0x55, 0x79, 0xce, 0xb5, 0x8c, 0xf8, 0x2a, 0x5f, 0x5d, 0x9a, 0xce, 0x95, 0x84, 0xaa, 0x00, 0x55, 0x55,
+ 0x78, 0xce, 0xd6, 0x8c, 0xea, 0xb8, 0x55, 0x55, 0x18, 0xbe, 0xd5, 0x8c, 0xfb, 0x80, 0x55, 0x55, 0xb7, 0xb5, 0xd5, 0x8c, 0x2e, 0x7e, 0xff, 0xd5, 0x59, 0xce, 0xd6, 0x8c, 0xf8, 0x0b, 0xd7, 0x55,
+ 0x39, 0xce, 0xd6, 0x8c, 0xfd, 0xf8, 0x5d, 0x55, 0xf7, 0xbd, 0xd6, 0x8c, 0xaf, 0x8f, 0xff, 0x55, 0x18, 0xc6, 0xb5, 0x8c, 0xea, 0x28, 0xff, 0xdd, 0x38, 0xc6, 0xd5, 0x8c, 0x7f, 0xf8, 0x55, 0xd6,
+ 0x35, 0xa5, 0xd6, 0x8c, 0x8a, 0xdf, 0x55, 0xe7, 0xf5, 0x9c, 0xd6, 0x84, 0x02, 0x5a, 0xd5, 0xd7, 0x19, 0xbe, 0x95, 0x84, 0xff, 0xd5, 0xf5, 0xfc, 0xd8, 0xb5, 0xd6, 0x8c, 0x0a, 0xf5, 0xfd, 0xfd,
+ 0x39, 0xbe, 0x16, 0x95, 0xff, 0xf5, 0xfd, 0xcd, 0xb7, 0xb5, 0xd5, 0x8c, 0xaa, 0x2a, 0x78, 0x5a, 0xfa, 0xd6, 0x94, 0x8c, 0xfe, 0x57, 0x80, 0x5d, 0x99, 0xc6, 0xb6, 0x84, 0x57, 0x55, 0x78, 0xff,
+ 0xd8, 0xad, 0xd6, 0x8c, 0x75, 0x57, 0x83, 0xfe, 0x98, 0x9d, 0xd6, 0x8c, 0xff, 0x75, 0xfe, 0xd3, 0x37, 0x95, 0xf6, 0x8c, 0x76, 0xb5, 0xbe, 0xab, 0x37, 0x95, 0xd6, 0x8c, 0x35, 0xaa, 0xab, 0xaa,
+ 0x97, 0xa5, 0xf6, 0x8c, 0x70, 0xf5, 0xff, 0xd7, 0x37, 0x95, 0x16, 0x8d, 0x22, 0x09, 0xd5, 0x2f, 0x18, 0xbe, 0x16, 0x95, 0x0b, 0xf9, 0xbd, 0x55, 0xf8, 0xbd, 0x16, 0x95, 0xea, 0xff, 0xfc, 0x5f,
+ 0x57, 0xa5, 0x16, 0x95, 0xa2, 0xec, 0x5f, 0xe7, 0x98, 0xd6, 0x15, 0x95, 0xfd, 0xd5, 0xd5, 0x29, 0x46, 0x62, 0xa4, 0x59, 0xea, 0x78, 0x7c, 0xfc, 0xc5, 0x61, 0xa4, 0x59, 0x2c, 0x83, 0x96, 0x08,
+ 0xc4, 0x69, 0xa4, 0x59, 0xea, 0xaf, 0xef, 0xfe, 0xa4, 0x61, 0x63, 0x59, 0xb7, 0x02, 0x00, 0xfa, 0xa4, 0x61, 0x63, 0x59, 0xa4, 0x02, 0x8a, 0x7f, 0x04, 0x6a, 0xa3, 0x59, 0x8d, 0xab, 0xf5, 0xfd,
+ 0x25, 0x6a, 0xc4, 0x61, 0xeb, 0xdb, 0xaa, 0x78, 0x05, 0x6a, 0xa4, 0x61, 0xd6, 0xe7, 0xff, 0xaa, 0x05, 0x6a, 0xa4, 0x61, 0x82, 0xbe, 0x6f, 0x06, 0x05, 0x6a, 0xc4, 0x61, 0x2f, 0xa7, 0xd9, 0x20,
+ 0x9a, 0xd6, 0xa4, 0x61, 0x39, 0x35, 0xf5, 0xd5, 0xba, 0xce, 0xd3, 0x9c, 0x60, 0x00, 0xa8, 0xa1, 0x9a, 0xc6, 0xeb, 0x39, 0x7e, 0x2a, 0x00, 0x00, 0xdb, 0xce, 0x09, 0x42, 0x55, 0x55, 0xc0, 0x00,
+ 0x51, 0x8c, 0xe8, 0x39, 0x55, 0x55, 0x55, 0xdc, 0x4a, 0x4a, 0xe8, 0x41, 0xff, 0x7e, 0x9a, 0x70, 0x29, 0x4a, 0xc8, 0x41, 0xfe, 0xfd, 0xee, 0xbb, 0x49, 0x52, 0xc8, 0x39, 0xff, 0x7b, 0xea, 0x22,
+ 0x4a, 0x52, 0xa7, 0x31, 0x7f, 0xe9, 0xaf, 0xa8, 0x29, 0x4a, 0xc8, 0x39, 0x0f, 0xf5, 0xb8, 0x80, 0x49, 0x52, 0xc8, 0x39, 0xab, 0xdf, 0x8d, 0x8b, 0x8b, 0x5a, 0x08, 0x42, 0x9d, 0xfb, 0xb5, 0xa3,
+ 0x8a, 0x5a, 0xc8, 0x41, 0x0e, 0x3e, 0xdf, 0x0b, 0xca, 0x5a, 0xe8, 0x41, 0xff, 0xf0, 0xdf, 0xe7, 0xaa, 0x5a, 0xe8, 0x41, 0x2f, 0xba, 0x7f, 0x75, 0x8a, 0x5a, 0xc8, 0x39, 0x2a, 0xbe, 0xff, 0xb7,
+ 0xaa, 0x62, 0x08, 0x4a, 0xaf, 0x87, 0x63, 0xb9, 0x69, 0x52, 0xe8, 0x41, 0xf8, 0xf5, 0xa2, 0x78, 0x6a, 0x52, 0xe8, 0x41, 0xfd, 0x25, 0x3f, 0xf5, 0xaa, 0x5a, 0xc8, 0x49, 0xef, 0x8a, 0x78, 0xd7,
+ 0xeb, 0x62, 0xe9, 0x49, 0x2a, 0xaa, 0xfd, 0x57, 0x0b, 0x6b, 0xe8, 0x41, 0x5e, 0xca, 0xff, 0x6f, 0x69, 0x52, 0xc8, 0x41, 0xaa, 0xfc, 0xfb, 0xd5, 0x8a, 0x52, 0xe8, 0x41, 0xf5, 0xaf, 0xf5, 0x3d,
+ 0xab, 0x5a, 0xe9, 0x41, 0xd7, 0xaa, 0xfd, 0xf3, 0xea, 0x62, 0x09, 0x4a, 0xdd, 0xef, 0x2b, 0xff, 0xea, 0x6a, 0x29, 0x52, 0xdd, 0xf7, 0xe8, 0xff, 0xeb, 0x6a, 0x29, 0x4a, 0x5d, 0x2f, 0x97, 0xfd,
+ 0x8a, 0x5a, 0xe8, 0x41, 0x28, 0x70, 0x5f, 0xd7, 0x8a, 0x5a, 0xc8, 0x39, 0xa0, 0xdf, 0xff, 0x7f, 0x89, 0x5a, 0xa6, 0x31, 0xa0, 0x79, 0xaf, 0x5f, 0xe4, 0x69, 0x07, 0x4a, 0x0b, 0xab, 0x0b, 0x09,
+ 0x25, 0x72, 0xc4, 0x61, 0x7c, 0xff, 0x7b, 0xdf, 0x25, 0x6a, 0xc4, 0x61, 0x7f, 0xdf, 0xfb, 0xa2, 0xe4, 0x69, 0x84, 0x59, 0xee, 0xae, 0x22, 0x22, 0x05, 0x6a, 0xa4, 0x59, 0xfd, 0xfd, 0xba, 0x0d,
+ 0x05, 0x6a, 0xc4, 0x61, 0xac, 0xb9, 0xaa, 0xa8, 0xe5, 0x69, 0x04, 0x62, 0x6e, 0x97, 0x3a, 0x00, 0x05, 0x6a, 0x84, 0x59, 0x7e, 0x7a, 0xc2, 0xba, 0xe5, 0x61, 0x43, 0x51, 0xdf, 0xab, 0xa2, 0x00,
+ 0xe5, 0x61, 0xa4, 0x59, 0x9f, 0xbf, 0xfa, 0x00, 0x05, 0x6a, 0xa4, 0x59, 0xad, 0xaa, 0xa2, 0x2b, 0x05, 0x72, 0xc4, 0x69, 0xaf, 0xf6, 0x7b, 0xf0, 0x25, 0x6a, 0xe4, 0x61, 0xab, 0xea, 0xfb, 0x2f,
+ 0x45, 0x72, 0x05, 0x6a, 0xd5, 0x55, 0x7e, 0xdb, 0x25, 0x72, 0xc4, 0x61, 0xbf, 0xb7, 0xab, 0xea, 0x44, 0x7a, 0xe5, 0x61, 0xd7, 0xef, 0xca, 0xea, 0x44, 0x72, 0xc3, 0x69, 0xfe, 0x7a, 0xbc, 0xde,
+ 0x05, 0x72, 0xa3, 0x61, 0x0a, 0xbf, 0xaa, 0xda, 0x45, 0x72, 0xa4, 0x69, 0x02, 0x2b, 0xb7, 0xaf, 0x45, 0x72, 0xc4, 0x69, 0xa2, 0xaf, 0xfb, 0x6a, 0xa7, 0x7a, 0xe5, 0x69, 0xab, 0xab, 0x7d, 0x71,
+ 0xe8, 0x82, 0x02, 0x49, 0xea, 0x5e, 0x2f, 0x02, 0x0b, 0xa4, 0x63, 0x59, 0xf5, 0xbd, 0x32, 0x2a, 0xae, 0xb4, 0x66, 0x72, 0xa9, 0xab, 0xa8, 0x0a, 0xaa, 0x9b, 0xc7, 0x41, 0x7b, 0x5c, 0x57, 0x57,
+ 0x09, 0x4a, 0xc8, 0x39, 0xaa, 0x08, 0xfa, 0x6c, 0x29, 0x4a, 0x87, 0x39, 0xc2, 0xaa, 0xaf, 0x25, 0x29, 0x4a, 0xa7, 0x31, 0xea, 0xa8, 0xa5, 0x8f, 0x49, 0x4a, 0xa8, 0x39, 0x22, 0x2b, 0xab, 0xb7,
+ 0xcb, 0x62, 0xc8, 0x41, 0xa2, 0x8a, 0xdf, 0x57, 0x8a, 0x5a, 0xc7, 0x41, 0xeb, 0xe8, 0xde, 0xaf, 0x49, 0x52, 0xe8, 0x41, 0x9f, 0x95, 0xba, 0x20, 0x8a, 0x5a, 0x09, 0x4a, 0xf5, 0x77, 0xd5, 0xf2,
+ 0x8a, 0x5a, 0xe8, 0x49, 0x33, 0xcf, 0x7d, 0x6e, 0xca, 0x62, 0xe8, 0x49, 0xda, 0xbf, 0x37, 0xa9, 0x89, 0x5a, 0xe8, 0x41, 0x5f, 0x5a, 0xf8, 0x6a, 0x89, 0x52, 0xc8, 0x41, 0xdf, 0xdb, 0x22, 0xdf,
+ 0x6a, 0x5a, 0xe7, 0x41, 0x6b, 0xda, 0xbc, 0xfc, 0xaa, 0x62, 0xe8, 0x49, 0x8d, 0xeb, 0xbb, 0xf7, 0x69, 0x5a, 0xe8, 0x41, 0x70, 0xee, 0x62, 0x55, 0x6a, 0x52, 0xe8, 0x41, 0xe7, 0x3f, 0xdf, 0xbb,
+ 0xcb, 0x6a, 0xa7, 0x41, 0xfe, 0xfb, 0xf5, 0xc3, 0x09, 0x52, 0xe8, 0x41, 0x55, 0x55, 0x77, 0xe8, 0xaa, 0x5a, 0xc8, 0x41, 0xfd, 0xbf, 0xbd, 0x2b, 0x69, 0x52, 0xe8, 0x49, 0x55, 0xf8, 0xe8, 0xf8,
+ 0x69, 0x52, 0xc8, 0x41, 0xd7, 0xff, 0x2b, 0x0f, 0xec, 0x62, 0xc7, 0x41, 0x55, 0x77, 0x3f, 0xff, 0x8b, 0x5a, 0xa7, 0x39, 0xff, 0x7f, 0xa8, 0xaa, 0x6a, 0x52, 0xc8, 0x49, 0x7f, 0xfd, 0x88, 0x7a,
+ 0x8a, 0x5a, 0xe8, 0x41, 0x5d, 0xe3, 0xfa, 0x89, 0x8a, 0x5a, 0xc8, 0x39, 0xdd, 0xfe, 0xa0, 0xba, 0xaa, 0x62, 0xe8, 0x41, 0x57, 0x55, 0xe2, 0xff, 0x8a, 0x5a, 0xc8, 0x41, 0x55, 0xff, 0x02, 0xfa,
+ 0xaa, 0x5a, 0xc8, 0x41, 0x5d, 0xf4, 0x8a, 0xae, 0xaa, 0x5a, 0xc7, 0x41, 0x55, 0xff, 0x00, 0x8a, 0x8a, 0x52, 0xc8, 0x41, 0xdd, 0xf5, 0x88, 0x08, 0xaa, 0x5a, 0xe8, 0x41, 0xfd, 0xfd, 0x0a, 0x00,
+ 0x59, 0xbe, 0xb6, 0x84, 0x55, 0x55, 0x70, 0xc0, 0xd6, 0x8c, 0xf7, 0x84, 0xe5, 0xa8, 0x02, 0x8b, 0x17, 0x8d, 0xd6, 0x84, 0xff, 0xef, 0xb9, 0x2b, 0x17, 0x8d, 0xd6, 0x84, 0x9f, 0xfe, 0xbe, 0xab,
+ 0x37, 0x95, 0xd6, 0x8c, 0xe7, 0x3d, 0xaf, 0x76, 0x3c, 0xdf, 0x75, 0x7c, 0x57, 0xff, 0x57, 0x03, 0x99, 0xc6, 0xb6, 0x84, 0xf5, 0x75, 0xbd, 0x80, 0xba, 0xce, 0xb6, 0x8c, 0x55, 0x57, 0x2c, 0x2a,
+ 0xda, 0xd6, 0xd6, 0x8c, 0x55, 0xfd, 0x82, 0x00, 0xfa, 0xd6, 0xf6, 0x8c, 0xd5, 0x5f, 0xf9, 0xe0, 0x39, 0xbe, 0xd6, 0x8c, 0x75, 0x37, 0xff, 0xfe, 0x5a, 0xbe, 0xb5, 0x84, 0x7d, 0x23, 0x9e, 0x62,
+ 0xf9, 0xb5, 0xf6, 0x8c, 0x0a, 0xca, 0x26, 0x9f, 0x7a, 0xc6, 0xd5, 0x8c, 0x50, 0x0a, 0xaa, 0x2a, 0xdb, 0xd6, 0xb5, 0x84, 0x55, 0x62, 0x5a, 0xa0, 0x77, 0x9d, 0xd6, 0x8c, 0xfd, 0xbf, 0xf2, 0xaa,
+ 0x37, 0x9d, 0xf6, 0x84, 0xf8, 0xf9, 0xff, 0xff, 0x77, 0x9d, 0xd6, 0x8c, 0x50, 0x5a, 0xdf, 0x5f, 0x3a, 0xb6, 0xf6, 0x8c, 0x71, 0x5d, 0xdd, 0x55, 0x59, 0xbe, 0xf6, 0x8c, 0xdd, 0x95, 0x35, 0x89,
+ 0x7a, 0xc6, 0x16, 0x95, 0x55, 0x26, 0x23, 0x0a, 0x59, 0xc6, 0x39, 0xb6, 0xc1, 0x2a, 0xaa, 0xef, 0x9a, 0xce, 0xf6, 0x8c, 0x57, 0x50, 0x82, 0xaa, 0x39, 0xbe, 0x17, 0x8d, 0x55, 0x5f, 0xeb, 0xf0,
+ 0xdb, 0xce, 0x16, 0x95, 0x4d, 0x7b, 0x55, 0x55, 0x7a, 0xc6, 0x17, 0x95, 0x55, 0xd5, 0xf3, 0xbf, 0x9a, 0xc6, 0xf6, 0x94, 0xd5, 0xf5, 0xe0, 0xfe, 0x5a, 0xbe, 0xf6, 0x8c, 0xe4, 0x7b, 0xfa, 0xea,
+ 0x7a, 0xc6, 0x37, 0x95, 0xd5, 0x35, 0xf7, 0xab, 0xfa, 0xde, 0xf7, 0xb5, 0xb3, 0x8b, 0x9f, 0x55, 0x49, 0x73, 0xc5, 0x59, 0x57, 0x5f, 0x7f, 0x74, 0xe5, 0x61, 0xa4, 0x59, 0x56, 0x3e, 0xe7, 0x7a,
+ 0xe5, 0x61, 0xa4, 0x59, 0xf6, 0xf5, 0xbd, 0xf9, 0xe5, 0x61, 0x84, 0x59, 0x77, 0x00, 0x42, 0xaa, 0xa5, 0x61, 0x63, 0x51, 0xe7, 0x9f, 0x1f, 0x3f, 0xe5, 0x61, 0x84, 0x59, 0xbd, 0x9e, 0x16, 0xa2,
+ 0x05, 0x6a, 0xc4, 0x59, 0xaf, 0xbf, 0xdb, 0xba, 0x04, 0x6a, 0xc5, 0x61, 0xaf, 0xf5, 0xfb, 0xf7, 0x05, 0x6a, 0xc4, 0x61, 0xf9, 0x2a, 0x2a, 0xf7, 0x05, 0x6a, 0xe4, 0x61, 0xec, 0x24, 0xa8, 0xef,
+ 0x67, 0x7a, 0x05, 0x6a, 0x15, 0x15, 0xd5, 0xd5, 0x9a, 0xd6, 0xe5, 0x71, 0x0b, 0x2d, 0xbf, 0xf5, 0x9a, 0xce, 0xf4, 0xac, 0x00, 0x00, 0x00, 0x21, 0x7a, 0xce, 0x58, 0xc6, 0x4a, 0xa2, 0x8a, 0xed,
+ 0xdb, 0xd6, 0x6a, 0x4a, 0x60, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0x29, 0x42, 0x55, 0x55, 0x5c, 0xc0, 0x93, 0x8c, 0x08, 0x4a, 0x5f, 0xf7, 0xff, 0xa2, 0xec, 0x62, 0xe8, 0x39, 0xfd, 0xde, 0xa2, 0xf8,
+ 0x4d, 0x6b, 0xc8, 0x39, 0x5f, 0xff, 0xff, 0x8a, 0xab, 0x52, 0xe8, 0x41, 0xf7, 0xbf, 0x73, 0xac, 0x6a, 0x52, 0xe9, 0x49, 0xeb, 0x02, 0xbd, 0xa8, 0xca, 0x5a, 0xe9, 0x41, 0xdd, 0xf8, 0x2a, 0xef,
+ 0x8a, 0x5a, 0x09, 0x42, 0xbd, 0x2b, 0x57, 0x0b, 0xab, 0x62, 0x09, 0x42, 0x5f, 0xfe, 0xff, 0x0e, 0xab, 0x5a, 0x09, 0x42, 0xd9, 0xfe, 0xea, 0x82, 0xcb, 0x5a, 0x09, 0x42, 0xde, 0x7d, 0xf5, 0x0f,
+ 0x0b, 0x63, 0xe8, 0x41, 0xfd, 0xb0, 0xbf, 0x8a, 0xeb, 0x62, 0x29, 0x4a, 0x57, 0x7f, 0xad, 0xa3, 0xaa, 0x62, 0x09, 0x42, 0xdf, 0x7f, 0xa0, 0xec, 0x8a, 0x52, 0x09, 0x4a, 0xe7, 0xa3, 0xe4, 0xa7,
+ 0xcb, 0x62, 0xe9, 0x49, 0x55, 0xc3, 0x3e, 0x2a, 0xeb, 0x62, 0xe8, 0x49, 0x5f, 0xbb, 0xaa, 0xe2, 0xab, 0x5a, 0xe8, 0x41, 0x5d, 0xc8, 0x3a, 0x7d, 0xaa, 0x5a, 0xc8, 0x41, 0x57, 0xb7, 0xa8, 0xef,
+ 0xab, 0x62, 0xc8, 0x41, 0xa9, 0x28, 0xaa, 0xaf, 0x0c, 0x6b, 0x08, 0x4a, 0x57, 0xf7, 0xae, 0xa3, 0xeb, 0x62, 0x08, 0x4a, 0xcd, 0xaa, 0x07, 0xe0, 0xab, 0x62, 0xe8, 0x41, 0xfd, 0xa2, 0xed, 0x7f,
+ 0x8a, 0x52, 0xe9, 0x41, 0xd7, 0x88, 0xda, 0xfe, 0x6a, 0x5a, 0xa7, 0x39, 0x5f, 0x00, 0x8b, 0xbf, 0x6a, 0x5a, 0x09, 0x42, 0x75, 0x2a, 0xaa, 0xbf, 0xe4, 0x69, 0x48, 0x52, 0x0b, 0x29, 0x09, 0x8b,
+ 0x26, 0x6a, 0xc4, 0x61, 0xf7, 0xaf, 0xaf, 0xf8, 0x45, 0x72, 0xc4, 0x61, 0xab, 0xdf, 0xeb, 0xe2, 0x05, 0x6a, 0xa4, 0x61, 0x7a, 0xaf, 0x20, 0xa3, 0x26, 0x72, 0xc4, 0x69, 0x35, 0xd7, 0x17, 0xae,
+ 0x46, 0x72, 0xe4, 0x69, 0x7f, 0xb5, 0xa8, 0xef, 0x25, 0x72, 0xe4, 0x69, 0x5d, 0x77, 0x68, 0x7f, 0xe5, 0x69, 0xa3, 0x61, 0x6f, 0xe8, 0x7c, 0x5e, 0x05, 0x6a, 0x83, 0x59, 0xbb, 0x3b, 0x2e, 0xa7,
+ 0x05, 0x6a, 0xa3, 0x61, 0x68, 0xee, 0xd8, 0x5c, 0x05, 0x6a, 0xa3, 0x61, 0xae, 0x09, 0x87, 0xa5, 0x04, 0x72, 0xa5, 0x61, 0x72, 0xea, 0xab, 0xea, 0x05, 0x6a, 0xc4, 0x61, 0x8a, 0xba, 0x25, 0xaf,
+ 0x05, 0x72, 0xc4, 0x69, 0x20, 0xa2, 0xf7, 0x95, 0x06, 0x72, 0xe4, 0x61, 0x82, 0x81, 0xbe, 0xdf, 0x05, 0x72, 0xe4, 0x61, 0xaa, 0x82, 0x5a, 0xfb, 0x04, 0x72, 0xc5, 0x61, 0x28, 0xa2, 0xaf, 0x5e,
+ 0x25, 0x6a, 0x63, 0x49, 0x80, 0xe2, 0xda, 0x52, 0x29, 0x83, 0x83, 0x51, 0x5f, 0x35, 0x35, 0xb5, 0x49, 0x83, 0x63, 0x51, 0xf5, 0x8c, 0xea, 0x3e, 0x0c, 0x94, 0x05, 0x62, 0x7b, 0x7b, 0xba, 0x02,
+ 0x6c, 0xa4, 0x86, 0x72, 0xd9, 0xf5, 0xbf, 0x88, 0x30, 0xc5, 0x44, 0x6a, 0xff, 0xab, 0xda, 0x0a, 0xef, 0xc4, 0xe8, 0x51, 0x0a, 0x60, 0x70, 0x50, 0x49, 0x52, 0xc7, 0x49, 0xe9, 0xd5, 0x82, 0xfa,
+ 0x29, 0x52, 0xe8, 0x41, 0x4a, 0x3a, 0xc3, 0xff, 0x29, 0x4a, 0xc8, 0x41, 0x95, 0xf8, 0x82, 0x0b, 0x6a, 0x52, 0xc8, 0x41, 0x7f, 0xeb, 0xb9, 0xa2, 0x29, 0x52, 0xc8, 0x39, 0xde, 0xaa, 0xb8, 0xfa,
+ 0x49, 0x52, 0xe8, 0x41, 0x56, 0xfb, 0x3b, 0xb6, 0x29, 0x5a, 0xc8, 0x41, 0xfd, 0xff, 0xaa, 0xf0, 0x29, 0x52, 0xc7, 0x39, 0xee, 0xa6, 0xa8, 0xaa, 0x49, 0x52, 0xe8, 0x41, 0x0f, 0xbd, 0x7a, 0x57,
+ 0x8a, 0x5a, 0xe8, 0x41, 0xad, 0x2f, 0x5d, 0xd5, 0xaa, 0x62, 0xe8, 0x49, 0xa2, 0x20, 0x75, 0xdf, 0xeb, 0x6a, 0x08, 0x4a, 0xca, 0xea, 0xf5, 0x54, 0x69, 0x52, 0xe8, 0x49, 0xba, 0xf8, 0xb7, 0x55,
+ 0x69, 0x5a, 0xe8, 0x41, 0xb8, 0x0a, 0x9f, 0xf7, 0x29, 0x4a, 0xe8, 0x41, 0x50, 0xc0, 0x20, 0x57, 0x0c, 0x6b, 0xc8, 0x41, 0x57, 0xcb, 0x57, 0xd5, 0x49, 0x52, 0xc8, 0x31, 0x38, 0xfd, 0xd5, 0xae,
+ 0x69, 0x5a, 0xc8, 0x41, 0xbe, 0x0a, 0x55, 0xd5, 0x69, 0x52, 0xc8, 0x41, 0xf7, 0xe2, 0xa7, 0xff, 0xea, 0x5a, 0xe8, 0x49, 0x5d, 0xdd, 0xf3, 0xef, 0x69, 0x52, 0xa7, 0x41, 0x9f, 0x08, 0x00, 0xba,
+ 0xaa, 0x62, 0x08, 0x42, 0xfd, 0x6f, 0xeb, 0x70, 0x89, 0x5a, 0x08, 0x42, 0xe0, 0xed, 0xaf, 0x97, 0xaa, 0x62, 0xe8, 0x49, 0xf7, 0xba, 0x8b, 0xe0, 0x4c, 0x73, 0xe7, 0x41, 0xcf, 0x7f, 0xf5, 0xfb,
+ 0x8a, 0x5a, 0xe8, 0x41, 0xca, 0xab, 0x02, 0x45, 0x8a, 0x5a, 0xc7, 0x41, 0xba, 0xaf, 0xbf, 0xe1, 0xeb, 0x6a, 0x08, 0x42, 0xdf, 0xf9, 0xff, 0x0d, 0xaa, 0x62, 0x09, 0x4a, 0x23, 0xb5, 0x7f, 0xf8,
+ 0x69, 0x52, 0xc8, 0x49, 0xc0, 0xa0, 0x02, 0x37, 0x8a, 0x5a, 0xe8, 0x49, 0x0a, 0xb6, 0xba, 0x34, 0xaa, 0x62, 0x28, 0x4a, 0xea, 0xfb, 0xea, 0x78, 0xeb, 0x6a, 0x09, 0x4a, 0x5a, 0xfb, 0x58, 0xb7,
+ 0x79, 0xc6, 0x97, 0xad, 0x2a, 0xda, 0x6a, 0x02, 0x39, 0xbe, 0xb5, 0x84, 0x57, 0x58, 0x0a, 0x28, 0xda, 0xd6, 0xb6, 0x84, 0x55, 0x5d, 0x20, 0x00, 0x1a, 0xdf, 0xd6, 0x84, 0x55, 0x3d, 0xf8, 0xea,
+ 0x3b, 0xdf, 0xf5, 0x94, 0x95, 0x0a, 0xff, 0xea, 0x3b, 0xe7, 0x76, 0xa5, 0xa0, 0xaa, 0xb5, 0x77, 0xfa, 0xde, 0x56, 0xa5, 0xa0, 0xeb, 0xea, 0x97, 0xbb, 0xce, 0x15, 0x9d, 0x1a, 0xaa, 0xab, 0xfc,
+ 0x3b, 0xe7, 0xd7, 0xb5, 0x02, 0xa7, 0x7e, 0xf9, 0x1b, 0xdf, 0x18, 0xbe, 0xfe, 0x62, 0xfd, 0x6d, 0x79, 0xc6, 0x16, 0x95, 0xd7, 0xb0, 0x08, 0xa2, 0x7a, 0xce, 0xb7, 0xad, 0x7b, 0xc0, 0x2c, 0xcb,
+ 0x19, 0xb6, 0x16, 0x8d, 0x57, 0xfc, 0x50, 0x40, 0xdb, 0xce, 0x16, 0x95, 0xf0, 0xdd, 0xdd, 0xc2, 0x7a, 0xc6, 0x74, 0x84, 0xbf, 0x22, 0xa0, 0x5d, 0x1c, 0xd7, 0xb5, 0x84, 0xff, 0xea, 0x5f, 0x2d,
+ 0xfa, 0xde, 0xf6, 0x8c, 0x55, 0xd5, 0xe9, 0xe8, 0x79, 0xc6, 0xd6, 0x8c, 0x55, 0xbe, 0x2a, 0x02, 0x5a, 0xc6, 0x16, 0x95, 0xd4, 0x2e, 0x00, 0x00, 0x5a, 0xbe, 0x18, 0xb6, 0xad, 0xbf, 0xff, 0x62,
+ 0x59, 0xc6, 0x18, 0xb6, 0xaa, 0xae, 0xeb, 0xfb, 0x38, 0xc6, 0x59, 0xbe, 0xba, 0x8f, 0xfe, 0x9e, 0x5a, 0xc6, 0x38, 0xbe, 0xfd, 0x7d, 0xfa, 0xea, 0x7a, 0xc6, 0x18, 0xbe, 0xbf, 0xff, 0x2b, 0xaa,
+ 0x7a, 0xc6, 0xf8, 0xb5, 0x27, 0xba, 0xaa, 0xaa, 0x59, 0xc6, 0xd8, 0xad, 0x5e, 0x88, 0x88, 0x00, 0x59, 0xc6, 0xf8, 0xb5, 0xd3, 0x6f, 0xfe, 0x00, 0x9a, 0xce, 0xd8, 0xad, 0x9e, 0x2f, 0x97, 0x8a,
+ 0xda, 0xd6, 0x38, 0xbe, 0x70, 0xaa, 0xff, 0xff, 0xda, 0xd6, 0xd7, 0xad, 0x89, 0xba, 0xaf, 0xba, 0xb8, 0xd6, 0xc5, 0x59, 0x56, 0x56, 0x54, 0x54, 0x46, 0x6a, 0xa5, 0x59, 0xfa, 0x73, 0xf2, 0x7b,
+ 0xe5, 0x61, 0x84, 0x51, 0xea, 0xef, 0x28, 0x7f, 0xc5, 0x61, 0x84, 0x51, 0x0a, 0xb2, 0x0a, 0xb7, 0x05, 0x62, 0x84, 0x59, 0xef, 0x57, 0xe8, 0x7f, 0x05, 0x62, 0xa4, 0x59, 0x09, 0x39, 0xab, 0xbf,
+ 0x25, 0x6a, 0xc4, 0x61, 0xfa, 0x7f, 0x7e, 0xfd, 0x05, 0x6a, 0xa4, 0x61, 0xa2, 0xff, 0xab, 0xf6, 0xe5, 0x69, 0xa4, 0x61, 0x6a, 0xe0, 0xe6, 0x57, 0xe5, 0x69, 0xa4, 0x61, 0x3f, 0xe5, 0x8f, 0xa9,
+ 0x05, 0x6a, 0xa3, 0x61, 0xec, 0xbe, 0xef, 0x6f, 0x4b, 0x93, 0xc4, 0x69, 0x15, 0x55, 0x55, 0x55, 0xba, 0xd6, 0xc5, 0x69, 0x0b, 0x0f, 0x3d, 0x75, 0x9a, 0xd6, 0x59, 0xc6, 0xff, 0xff, 0xff, 0xf4,
+ 0x7a, 0xce, 0x59, 0xc6, 0x7f, 0xae, 0x2a, 0xbf, 0x9a, 0xce, 0x58, 0xc6, 0x95, 0xeb, 0xfa, 0x7f, 0xbb, 0xce, 0x59, 0xc6, 0x3c, 0x7d, 0xff, 0xfd, 0x99, 0xce, 0xd5, 0x94, 0x7f, 0x00, 0x00, 0x00,
+ 0x9a, 0xce, 0x50, 0x6b, 0xde, 0x00, 0x00, 0x00, 0xda, 0xd6, 0x70, 0x6b, 0x77, 0x00, 0x00, 0x00, 0xdb, 0xce, 0x6a, 0x52, 0x55, 0x50, 0x00, 0x00, 0xfc, 0xd6, 0x4a, 0x52, 0x55, 0x55, 0xe8, 0x00,
+ 0xbb, 0xc6, 0x29, 0x4a, 0x7d, 0xff, 0x55, 0x80, 0xaf, 0x73, 0x29, 0x4a, 0xff, 0xae, 0xed, 0xfc, 0x2c, 0x6b, 0x6a, 0x52, 0x6f, 0xb8, 0x00, 0xf7, 0x2c, 0x6b, 0x8a, 0x52, 0x5d, 0xec, 0xe0, 0xa2,
+ 0x4d, 0x6b, 0xaa, 0x5a, 0xdd, 0x35, 0x98, 0x5f, 0x0b, 0x63, 0x6a, 0x5a, 0x6e, 0xaf, 0x20, 0x8a, 0x0b, 0x63, 0x09, 0x4a, 0xdd, 0xaa, 0x00, 0x2a, 0x2c, 0x6b, 0x28, 0x4a, 0xef, 0x00, 0xd6, 0xbe,
+ 0xeb, 0x62, 0xe8, 0x41, 0x2a, 0xf8, 0xde, 0xaa, 0xab, 0x5a, 0x29, 0x4a, 0xff, 0x8f, 0x15, 0x20, 0x0b, 0x63, 0x09, 0x4a, 0xd7, 0xdf, 0x2a, 0xfe, 0xeb, 0x5a, 0x09, 0x4a, 0xdf, 0xe7, 0x7c, 0x7d,
+ 0xcb, 0x62, 0xe9, 0x41, 0xab, 0x2a, 0x7f, 0xff, 0xeb, 0x6a, 0xe8, 0x41, 0xee, 0x3a, 0xf7, 0xaa, 0x2d, 0x73, 0xe8, 0x41, 0x55, 0x2a, 0xff, 0xfa, 0xeb, 0x6a, 0xe8, 0x41, 0xd5, 0x2b, 0xdc, 0xea,
+ 0x8a, 0x62, 0xe8, 0x41, 0x7d, 0x2f, 0x57, 0xbf, 0x69, 0x5a, 0xc8, 0x41, 0x95, 0x2c, 0xfb, 0xa0, 0x49, 0x52, 0xc7, 0x41, 0x5f, 0xf8, 0x4e, 0xaa, 0x05, 0x72, 0xe7, 0x49, 0x09, 0x0b, 0x29, 0x2b,
+ 0x26, 0x72, 0xe4, 0x69, 0xbf, 0xb9, 0x8f, 0xaa, 0x46, 0x72, 0xe5, 0x69, 0x5f, 0xfb, 0x8a, 0xeb, 0x26, 0x72, 0xc5, 0x61, 0xee, 0xa8, 0xab, 0xbf, 0x46, 0x72, 0x05, 0x6a, 0x7f, 0xfb, 0x5f, 0xed,
+ 0x45, 0x72, 0xa4, 0x59, 0xba, 0xba, 0xf2, 0x56, 0x04, 0x6a, 0x83, 0x59, 0xf0, 0xee, 0x57, 0xf7, 0xe5, 0x61, 0x83, 0x59, 0xf3, 0xfd, 0xfd, 0xe9, 0xe5, 0x69, 0x83, 0x51, 0x2a, 0x2f, 0xae, 0x57,
+ 0xe5, 0x69, 0x84, 0x51, 0xa8, 0xe0, 0x55, 0xdf, 0xe5, 0x61, 0xa4, 0x59, 0x0d, 0x82, 0x95, 0x2f, 0x05, 0x62, 0x84, 0x51, 0x7e, 0x7a, 0xea, 0x88, 0xe5, 0x61, 0x64, 0x49, 0xe2, 0xab, 0xee, 0x78,
+ 0xe5, 0x61, 0xa4, 0x59, 0x36, 0xaa, 0x75, 0xad, 0xa7, 0x6a, 0xa4, 0x59, 0xdf, 0xb7, 0xd5, 0x0a, 0x29, 0x7b, 0xc4, 0x59, 0x5f, 0xdf, 0xcd, 0x7f, 0x87, 0x6a, 0xc4, 0x59, 0xd5, 0x97, 0x2a, 0x4f,
+ 0xeb, 0x93, 0xc4, 0x51, 0x5f, 0xdd, 0xfe, 0x78, 0x6c, 0xa4, 0x85, 0x49, 0xb5, 0xeb, 0x2a, 0x8a, 0x8d, 0xac, 0x86, 0x6a, 0x8f, 0x0a, 0xaa, 0x7b, 0xf0, 0xb4, 0xaa, 0x93, 0xfb, 0xbf, 0xfd, 0x9c,
+ 0xce, 0xb4, 0x08, 0x7b, 0xa7, 0xaa, 0x8e, 0x00, 0xae, 0xb4, 0x4a, 0x8b, 0x82, 0xb2, 0x2b, 0x68, 0xcf, 0xbc, 0xc7, 0x41, 0xd8, 0x5c, 0x56, 0x55, 0x29, 0x4a, 0xa8, 0x39, 0x2a, 0xfb, 0x78, 0x0a,
+ 0x69, 0x52, 0xc8, 0x39, 0xa2, 0x0b, 0x5d, 0xea, 0x69, 0x52, 0xa8, 0x39, 0xab, 0x82, 0xff, 0x77, 0x49, 0x52, 0xa8, 0x41, 0xea, 0xaa, 0x8a, 0x55, 0x09, 0x52, 0xe8, 0x41, 0xbd, 0x8b, 0xae, 0x7d,
+ 0x29, 0x52, 0xe8, 0x41, 0x83, 0x8f, 0x82, 0x55, 0x4a, 0x52, 0xc7, 0x39, 0x08, 0x82, 0xae, 0xdf, 0x69, 0x5a, 0xa7, 0x41, 0xba, 0x7f, 0xc3, 0xd7, 0xaa, 0x62, 0xe8, 0x49, 0xf7, 0x39, 0x95, 0x97,
+ 0x49, 0x52, 0xe8, 0x49, 0xd7, 0xa8, 0xbf, 0xb8, 0xaa, 0x5a, 0xe8, 0x41, 0xff, 0x7e, 0xd5, 0xcf, 0x8a, 0x5a, 0x08, 0x4a, 0x7f, 0x55, 0x75, 0x15, 0x49, 0x52, 0xc8, 0x41, 0x75, 0xfb, 0x2b, 0xab,
+ 0x49, 0x52, 0xa8, 0x39, 0x62, 0xaa, 0xe8, 0x80, 0x29, 0x4a, 0xc8, 0x41, 0x01, 0x08, 0xac, 0x4e, 0x49, 0x4a, 0xe8, 0x41, 0x62, 0xfd, 0xab, 0x7d, 0x29, 0x4a, 0xc8, 0x39, 0x7e, 0xeb, 0x83, 0x83,
+ 0x29, 0x4a, 0xc7, 0x39, 0x2e, 0x2b, 0xe2, 0x2d, 0x49, 0x4a, 0xe8, 0x41, 0xcf, 0x57, 0xbf, 0x7b, 0x29, 0x52, 0xe8, 0x39, 0xbe, 0x5e, 0x17, 0xaf, 0xaa, 0x62, 0xc8, 0x41, 0xd7, 0x8b, 0xf7, 0x7f,
+ 0xaa, 0x62, 0xe8, 0x41, 0xbd, 0xa8, 0xaf, 0xad, 0x69, 0x5a, 0x08, 0x4a, 0x25, 0x8f, 0xa0, 0xaf, 0x6a, 0x5a, 0xc8, 0x49, 0x56, 0xaa, 0x08, 0x2e, 0x6a, 0x52, 0xc8, 0x41, 0xd5, 0x27, 0x88, 0xaa,
+ 0x69, 0x52, 0xe8, 0x49, 0x6b, 0xa8, 0xa8, 0x7e, 0x69, 0x52, 0xe8, 0x49, 0x2b, 0x7b, 0x2f, 0x8d, 0x69, 0x52, 0xe8, 0x49, 0xd4, 0xd5, 0x2a, 0xa3, 0x8a, 0x52, 0xc8, 0x49, 0x7d, 0xff, 0xa8, 0xaa,
+ 0x8a, 0x5a, 0xc8, 0x41, 0xdf, 0x6f, 0x2a, 0x23, 0x4c, 0x7b, 0x87, 0x39, 0xd7, 0xeb, 0x3e, 0xab, 0x8a, 0x62, 0xc8, 0x49, 0x6a, 0xa3, 0xde, 0xa0, 0xab, 0x62, 0x28, 0x52, 0xd6, 0xa9, 0x37, 0xd8,
+ 0xda, 0xde, 0x97, 0xad, 0x2a, 0xaa, 0xd5, 0xaa, 0xda, 0xd6, 0xd8, 0xb5, 0xc0, 0xab, 0x5d, 0xbe, 0x9a, 0xce, 0x97, 0xad, 0xaa, 0xa0, 0xfd, 0x2a, 0xba, 0xd6, 0xf8, 0xad, 0x8a, 0x20, 0xad, 0xaa,
+ 0xda, 0xd6, 0x79, 0xce, 0x0a, 0x55, 0x55, 0x55, 0x1b, 0xdf, 0x79, 0xc6, 0xe0, 0x5d, 0x57, 0x55, 0x9a, 0xce, 0x79, 0xc6, 0xfd, 0x9b, 0x2e, 0x8b, 0x9a, 0xce, 0x59, 0xc6, 0xce, 0xbe, 0xaa, 0x8a,
+ 0x99, 0xce, 0x97, 0xad, 0x7a, 0x00, 0x00, 0x00, 0xfa, 0xde, 0x97, 0xad, 0x2d, 0xaa, 0xaa, 0xaa, 0x99, 0xce, 0x76, 0xa5, 0xde, 0x80, 0x00, 0x00, 0x99, 0xce, 0xd8, 0xad, 0xfd, 0xe5, 0x80, 0x00,
+ 0xfb, 0xd6, 0x56, 0xa5, 0x27, 0xeb, 0x7f, 0xfa, 0xda, 0xde, 0x77, 0xa5, 0x00, 0xaa, 0xa5, 0xf8, 0x3b, 0xdf, 0xf7, 0xbd, 0x88, 0xff, 0x57, 0xf5, 0xda, 0xd6, 0xd7, 0xb5, 0x0f, 0x49, 0xbb, 0xae,
+ 0x9a, 0xce, 0xb7, 0xb5, 0xb7, 0x2a, 0x02, 0x00, 0x9a, 0xce, 0x58, 0xc6, 0xf5, 0x7b, 0xaa, 0xaa, 0x7a, 0xce, 0x59, 0xc6, 0x55, 0xea, 0xa0, 0x00, 0x7a, 0xce, 0x58, 0xbe, 0xff, 0xaa, 0x00, 0x00,
+ 0x9a, 0xce, 0x59, 0xbe, 0x7d, 0xaa, 0xaa, 0xa8, 0x9a, 0xce, 0x59, 0xc6, 0x55, 0xee, 0xaa, 0x8a, 0x7a, 0xce, 0x58, 0xc6, 0x55, 0xfb, 0x80, 0x00, 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xfa, 0xea, 0x8a,
+ 0x9a, 0xce, 0x58, 0xc6, 0xd5, 0x7f, 0xba, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x55, 0x55, 0x7e, 0xe8, 0x9a, 0xce, 0x59, 0xc6, 0x55, 0xd7, 0xd5, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xfd, 0x57, 0xfa, 0xaa,
+ 0x7a, 0xce, 0x59, 0xc6, 0x55, 0xd5, 0xb7, 0x8d, 0x7a, 0xce, 0x38, 0xbe, 0xee, 0xaa, 0x08, 0x7e, 0xda, 0xd6, 0xc5, 0x59, 0x5c, 0x50, 0x70, 0x70, 0x05, 0x62, 0xc4, 0x59, 0x58, 0x7e, 0xb6, 0xdc,
+ 0xe4, 0x59, 0x43, 0x51, 0xf2, 0xaa, 0xfe, 0x56, 0xc5, 0x61, 0x84, 0x59, 0x3b, 0x2a, 0xa9, 0x05, 0x05, 0x6a, 0xa4, 0x59, 0x7f, 0xcf, 0xff, 0xbd, 0x05, 0x6a, 0xa4, 0x61, 0x23, 0xeb, 0x7f, 0xaa,
+ 0x05, 0x6a, 0xa4, 0x61, 0x8e, 0x7b, 0xeb, 0xae, 0xe5, 0x69, 0xa3, 0x61, 0xff, 0xbb, 0x38, 0x2e, 0xc5, 0x69, 0xa4, 0x61, 0x93, 0xee, 0xb3, 0x39, 0xe4, 0x69, 0xa4, 0x61, 0xfd, 0x22, 0xf0, 0x2b,
+ 0xe5, 0x71, 0xc4, 0x61, 0xff, 0xcd, 0xae, 0x8a, 0x25, 0x72, 0xa3, 0x61, 0x29, 0xef, 0xff, 0xde, 0x2b, 0x83, 0xc4, 0x69, 0x3f, 0xd5, 0x55, 0x55, 0x9a, 0xce, 0xc7, 0x61, 0x03, 0x03, 0x03, 0x0d,
+ 0x7a, 0xce, 0x59, 0xbe, 0xfa, 0xaa, 0xaa, 0xeb, 0x7a, 0xce, 0x59, 0xc6, 0xdd, 0xff, 0xaa, 0xff, 0x7a, 0xce, 0x39, 0xbe, 0xab, 0xa8, 0x0a, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xaf, 0xef, 0xaf,
+ 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xbf, 0xab, 0xae, 0x9a, 0xce, 0x59, 0xc6, 0xff, 0xef, 0xea, 0xaa, 0x7a, 0xce, 0x59, 0xc6, 0xff, 0xaa, 0x02, 0x00, 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xbe, 0xaa, 0xa8,
+ 0x9a, 0xce, 0x58, 0xc6, 0xfa, 0xfb, 0xae, 0xa8, 0xda, 0xd6, 0x79, 0xc6, 0x2b, 0x55, 0xfd, 0xdf, 0xfb, 0xd6, 0x79, 0xc6, 0x8b, 0x55, 0xfd, 0xf5, 0xdb, 0xd6, 0xed, 0x5a, 0x58, 0x00, 0x00, 0x00,
+ 0xfb, 0xd6, 0x8b, 0x52, 0x55, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0x8b, 0x52, 0x55, 0xf0, 0x00, 0x00, 0xdb, 0xd6, 0x8a, 0x52, 0x55, 0x55, 0x30, 0x00, 0xdb, 0xd6, 0xcb, 0x5a, 0x55, 0x55, 0x7e, 0x00,
+ 0x1c, 0xdf, 0x6a, 0x52, 0x55, 0x55, 0x55, 0x00, 0xfb, 0xce, 0x49, 0x52, 0x55, 0x55, 0x55, 0xf0, 0xb3, 0x8c, 0x29, 0x4a, 0x55, 0xff, 0x7f, 0xf8, 0xec, 0x62, 0x49, 0x4a, 0xf5, 0xeb, 0xa5, 0x82,
+ 0xec, 0x62, 0xe8, 0x41, 0x7f, 0xaa, 0xae, 0xa0, 0xeb, 0x62, 0x09, 0x42, 0xff, 0x56, 0x02, 0xaa, 0x0b, 0x63, 0x29, 0x4a, 0xbd, 0xd5, 0x80, 0x7e, 0xeb, 0x62, 0x6a, 0x52, 0x7f, 0xfd, 0xe2, 0xb5,
+ 0xeb, 0x62, 0x09, 0x4a, 0xfe, 0xb9, 0xe0, 0xfa, 0xeb, 0x62, 0x08, 0x4a, 0xfe, 0x83, 0xaa, 0x5f, 0xaa, 0x62, 0x28, 0x52, 0xf7, 0xb8, 0x5e, 0xea, 0x25, 0x72, 0x67, 0x6a, 0x2a, 0x0b, 0xa9, 0x0a,
+ 0x46, 0x72, 0x05, 0x6a, 0xb5, 0x7e, 0x52, 0xff, 0x25, 0x72, 0xe4, 0x61, 0xa0, 0xc3, 0xf2, 0xe7, 0x25, 0x6a, 0xc4, 0x61, 0xef, 0xa9, 0x80, 0xe2, 0x25, 0x72, 0xc4, 0x61, 0xba, 0xa2, 0xd8, 0xf7,
+ 0x25, 0x6a, 0xa4, 0x59, 0xe8, 0x7a, 0x5f, 0xfa, 0xc5, 0x61, 0x84, 0x59, 0xb0, 0xbe, 0x2e, 0xd2, 0xc5, 0x59, 0x43, 0x49, 0xef, 0x5c, 0xf0, 0xd8, 0x05, 0x6a, 0x84, 0x51, 0xf5, 0x7f, 0xdd, 0x2f,
+ 0x25, 0x6a, 0x84, 0x59, 0x5f, 0xbf, 0xea, 0x28, 0x67, 0x6a, 0xc5, 0x59, 0x55, 0xb5, 0xfb, 0x02, 0x46, 0x6a, 0xa5, 0x51, 0xb5, 0x82, 0x03, 0x00, 0x66, 0x6a, 0xe5, 0x59, 0xfd, 0xff, 0xbf, 0xbf,
+ 0x87, 0x72, 0x06, 0x62, 0xc5, 0xf5, 0x57, 0xdd, 0x87, 0x72, 0x05, 0x62, 0x68, 0x55, 0xf7, 0xab, 0xc8, 0x72, 0xc4, 0x59, 0xf7, 0xfd, 0xdf, 0x2e, 0x4c, 0xa4, 0x06, 0x5a, 0xf5, 0xff, 0x2d, 0x2a,
+ 0x8d, 0xac, 0x05, 0x62, 0xfe, 0xd6, 0xba, 0x00, 0xad, 0xb4, 0x87, 0x72, 0xf7, 0xbb, 0x0a, 0x02, 0x0f, 0xc5, 0x4a, 0x83, 0x3d, 0x0a, 0x02, 0x00, 0x6f, 0xcd, 0x0c, 0x9c, 0xf7, 0xa5, 0xe2, 0xaa,
+ 0xb2, 0xd5, 0x45, 0x6a, 0xaa, 0xb6, 0xb7, 0x27, 0x30, 0xc5, 0x49, 0x52, 0x78, 0x58, 0x54, 0x57, 0xcb, 0x62, 0xe8, 0x41, 0xfb, 0x7e, 0x38, 0xeb, 0x0c, 0x63, 0xe8, 0x41, 0xdf, 0x55, 0x0f, 0xfb,
+ 0x8a, 0x52, 0xa8, 0x39, 0xbf, 0xe9, 0x00, 0xaa, 0x8a, 0x5a, 0xe8, 0x41, 0xdf, 0x75, 0xf8, 0x00, 0x8a, 0x52, 0x88, 0x39, 0x5f, 0xaf, 0xbe, 0xac, 0x4a, 0x4a, 0xa7, 0x39, 0x75, 0xb7, 0xff, 0x3f,
+ 0x8a, 0x52, 0xa8, 0x39, 0x7d, 0xef, 0xeb, 0x74, 0x09, 0x42, 0x68, 0x31, 0xa9, 0xab, 0x00, 0x0a, 0x4a, 0x4a, 0xa8, 0x39, 0xd8, 0xdf, 0xaa, 0x0e, 0x49, 0x4a, 0xc8, 0x39, 0xd7, 0x79, 0xbf, 0x8f,
+ 0xab, 0x62, 0xc8, 0x41, 0xff, 0x7f, 0x7b, 0xf2, 0x49, 0x52, 0x88, 0x39, 0xa0, 0xde, 0xda, 0x22, 0x6a, 0x5a, 0xa8, 0x39, 0xbe, 0x55, 0xfb, 0xa0, 0x49, 0x52, 0xa8, 0x41, 0x8c, 0xac, 0xa7, 0xe8,
+ 0x29, 0x4a, 0xa8, 0x39, 0x05, 0xb8, 0xae, 0x02, 0x4a, 0x52, 0xc8, 0x39, 0x86, 0xef, 0x57, 0xee, 0x69, 0x5a, 0xc8, 0x39, 0x8a, 0xff, 0x7f, 0xfb, 0x6a, 0x4a, 0xa8, 0x39, 0xa2, 0x0f, 0x75, 0xf6,
+ 0x49, 0x4a, 0xc8, 0x39, 0xaf, 0x7a, 0x75, 0x2a, 0x49, 0x4a, 0xc8, 0x39, 0xee, 0xbd, 0xa9, 0x08, 0x6a, 0x52, 0xc8, 0x41, 0xab, 0xa9, 0xf7, 0x00, 0xcb, 0x62, 0xe8, 0x41, 0x7f, 0xfb, 0x97, 0x1e,
+ 0xab, 0x62, 0xe8, 0x49, 0xf5, 0x2e, 0xa1, 0xb6, 0x2c, 0x73, 0x08, 0x4a, 0x77, 0x2c, 0xff, 0xcf, 0x8a, 0x52, 0xc8, 0x41, 0xff, 0xf6, 0xc8, 0xbd, 0xec, 0x62, 0xe8, 0x41, 0xd5, 0xcd, 0xff, 0x77,
+ 0xca, 0x5a, 0xa8, 0x39, 0xbf, 0x57, 0xe2, 0xd5, 0x6a, 0x52, 0xe8, 0x41, 0xaa, 0x7d, 0x2d, 0xb2, 0x6a, 0x5a, 0x08, 0x42, 0x82, 0xfb, 0x9e, 0xfd, 0x6a, 0x52, 0x09, 0x4a, 0xbe, 0x55, 0x78, 0xb7,
+ 0xcb, 0x62, 0x28, 0x4a, 0xba, 0xfd, 0x7b, 0x0e, 0xca, 0x62, 0xa8, 0x41, 0xaa, 0x2a, 0x7a, 0xa8, 0x2b, 0x6b, 0xc8, 0x41, 0xff, 0xff, 0xf5, 0xe2, 0x8a, 0x5a, 0x08, 0x4a, 0x5a, 0x22, 0x9f, 0x7d,
+ 0x7a, 0xce, 0x58, 0xc6, 0x55, 0x5d, 0xef, 0x20, 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xf5, 0xfa, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xfb, 0x7d, 0xff, 0xaa, 0x7a, 0xce, 0x59, 0xbe, 0xaa, 0xfb, 0xea, 0xaa,
+ 0x9a, 0xce, 0x59, 0xc6, 0xae, 0xfd, 0xdd, 0xdf, 0x9a, 0xce, 0x59, 0xc6, 0xaa, 0xff, 0xff, 0xff, 0x7a, 0xce, 0x59, 0xc6, 0x28, 0xaa, 0x22, 0xef, 0x9a, 0xce, 0x79, 0xc6, 0xbf, 0xff, 0x5f, 0xdd,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xef, 0xfd, 0xd5, 0x9a, 0xce, 0x79, 0xc6, 0xba, 0xbf, 0xff, 0xff, 0x7a, 0xce, 0x99, 0xc6, 0x0b, 0x8a, 0xbf, 0xfe, 0x9a, 0xce, 0x79, 0xc6, 0xa2, 0xba, 0xfe, 0xfd,
+ 0x99, 0xce, 0x18, 0xbe, 0x40, 0x00, 0x28, 0xaa, 0xda, 0xd6, 0xd7, 0xb5, 0x8b, 0xa6, 0xaa, 0xaa, 0xfb, 0xd6, 0xf8, 0xb5, 0xcf, 0xa7, 0xaa, 0xab, 0x9a, 0xce, 0x79, 0xc6, 0xab, 0xba, 0xef, 0xef,
+ 0x9a, 0xce, 0x79, 0xce, 0xb6, 0x6d, 0xad, 0xae, 0x99, 0xce, 0x7a, 0xce, 0xb8, 0xeb, 0x68, 0xfe, 0x9a, 0xce, 0x79, 0xc6, 0xa0, 0xaa, 0xae, 0xea, 0x9a, 0xce, 0x79, 0xce, 0xa8, 0xbe, 0x2f, 0x8b,
+ 0x9a, 0xce, 0x79, 0xc6, 0x2a, 0xa0, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xce, 0x87, 0xfb, 0xf0, 0xfa, 0x9a, 0xce, 0x79, 0xce, 0xea, 0xe8, 0x3a, 0x3f, 0x7a, 0xd6, 0x99, 0xc6, 0xea, 0xff, 0xeb, 0xbe,
+ 0x9a, 0xd6, 0x79, 0xc6, 0xba, 0xaf, 0xbe, 0xfa, 0x9a, 0xd6, 0x79, 0xc6, 0xaa, 0xba, 0xea, 0xff, 0x9a, 0xd6, 0x79, 0xc6, 0xea, 0xaa, 0xfa, 0xff, 0x9a, 0xd6, 0x79, 0xce, 0xff, 0xbe, 0xff, 0x5f,
+ 0x9a, 0xce, 0x79, 0xce, 0xaa, 0xa2, 0xf8, 0xf5, 0x9a, 0xce, 0x59, 0xbe, 0x5e, 0xa0, 0x80, 0x08, 0xd9, 0xd6, 0xe4, 0x61, 0x70, 0x70, 0x70, 0x50, 0x05, 0x62, 0xa4, 0x59, 0x72, 0xb2, 0xfb, 0xca,
+ 0xe4, 0x61, 0x03, 0x49, 0xda, 0xd8, 0xa8, 0xe0, 0xe5, 0x69, 0x64, 0x59, 0x27, 0xad, 0x2b, 0x79, 0x05, 0x62, 0x43, 0x51, 0xaa, 0xaf, 0x2a, 0xb9, 0x05, 0x6a, 0x64, 0x51, 0x02, 0x80, 0xa2, 0xd6,
+ 0x05, 0x6a, 0xc5, 0x59, 0xaa, 0xab, 0xa8, 0x55, 0x05, 0x6a, 0xc4, 0x61, 0xf7, 0xec, 0xec, 0x4c, 0x25, 0x6a, 0xa4, 0x61, 0xd7, 0x15, 0xfd, 0x2f, 0x25, 0x6a, 0xa4, 0x61, 0xdf, 0xef, 0xb5, 0x8a,
+ 0x05, 0x6a, 0xa4, 0x61, 0x83, 0x78, 0xfa, 0xab, 0x05, 0x6a, 0xa4, 0x59, 0x5e, 0x55, 0xef, 0x2a, 0x46, 0x6a, 0xa4, 0x59, 0xf7, 0x57, 0xb7, 0x2a, 0xdc, 0xde, 0xe6, 0x59, 0x05, 0x35, 0x15, 0x95,
+ 0x9a, 0xce, 0x59, 0xc6, 0x75, 0xfb, 0xaa, 0xa8, 0x9a, 0xce, 0x79, 0xc6, 0xd5, 0x5e, 0xbe, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0x7f, 0xf6, 0xaa, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xff, 0xff, 0xaa, 0xaa,
+ 0x7a, 0xce, 0x59, 0xc6, 0x00, 0xea, 0x20, 0x00, 0x9a, 0xce, 0x59, 0xc6, 0xea, 0xba, 0xaf, 0xae, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xfe, 0xff, 0xff, 0x9a, 0xce, 0x59, 0xc6, 0xaa, 0xaa, 0xff, 0xea,
+ 0x9a, 0xce, 0x59, 0xc6, 0x80, 0xaa, 0xff, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0x20, 0xa0, 0xff, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xff, 0x7f, 0x9a, 0xce, 0x59, 0xc6, 0x80, 0x2a, 0xba, 0xff,
+ 0x9a, 0xce, 0x59, 0xc6, 0x0a, 0xaa, 0xfa, 0xdd, 0x9a, 0xce, 0x59, 0xc6, 0x00, 0x82, 0xaa, 0xd7, 0x9a, 0xce, 0x59, 0xc6, 0x28, 0x08, 0xaa, 0xff, 0x9a, 0xce, 0x59, 0xc6, 0x80, 0x82, 0xae, 0xbe,
+ 0x9a, 0xce, 0x79, 0xc6, 0x08, 0x0a, 0xfa, 0xff, 0xba, 0xd6, 0x79, 0xce, 0x2f, 0xff, 0x55, 0x55, 0xfb, 0xde, 0x18, 0xbe, 0x4a, 0xaa, 0xff, 0xff, 0xfb, 0xd6, 0xac, 0x52, 0x5b, 0x00, 0x00, 0x00,
+ 0x1c, 0xdf, 0x8b, 0x52, 0x55, 0x00, 0x00, 0x00, 0x1c, 0xdf, 0x29, 0x4a, 0x55, 0x80, 0x00, 0x00, 0xdb, 0xd6, 0xab, 0x52, 0x55, 0x5f, 0x00, 0x00, 0xdb, 0xd6, 0x8a, 0x52, 0x55, 0x55, 0x80, 0x00,
+ 0xfc, 0xd6, 0x4a, 0x52, 0x55, 0xd5, 0x0b, 0x00, 0xfb, 0xd6, 0xcb, 0x62, 0x55, 0x0b, 0x00, 0x00, 0xda, 0xd6, 0x47, 0x62, 0x77, 0x60, 0x70, 0x50, 0x87, 0x72, 0x05, 0x6a, 0x57, 0x57, 0x54, 0xd4,
+ 0x25, 0x6a, 0xc4, 0x61, 0xf2, 0xf0, 0x5b, 0xef, 0x05, 0x6a, 0xc4, 0x61, 0xdf, 0xa6, 0x0a, 0xe2, 0x66, 0x6a, 0xc5, 0x61, 0x7f, 0xee, 0xff, 0x2f, 0x46, 0x6a, 0xe5, 0x59, 0xeb, 0x7f, 0xbf, 0x02,
+ 0x87, 0x72, 0xa4, 0x51, 0xfb, 0xed, 0xaa, 0x80, 0x25, 0x6a, 0x84, 0x51, 0x5f, 0xad, 0xbe, 0xa8, 0xe5, 0x61, 0xa3, 0x59, 0xad, 0x22, 0x22, 0x27, 0x46, 0x6a, 0xc4, 0x61, 0xff, 0xb5, 0xb7, 0x2b,
+ 0x66, 0x72, 0xe5, 0x61, 0x8d, 0xfb, 0x2a, 0x02, 0x87, 0x72, 0x26, 0x6a, 0xb7, 0xab, 0x82, 0x8a, 0x87, 0x72, 0x46, 0x6a, 0x7d, 0xea, 0x6e, 0x0a, 0x87, 0x72, 0x25, 0x6a, 0xdf, 0x8b, 0xfb, 0xa2,
+ 0x67, 0x72, 0x26, 0x62, 0x36, 0x82, 0x20, 0xa8, 0xa7, 0x7a, 0x45, 0x6a, 0xaa, 0xaa, 0xad, 0xb7, 0x29, 0x83, 0x26, 0x6a, 0x3f, 0xbf, 0xbf, 0xb5, 0x8d, 0xac, 0x65, 0x72, 0x2f, 0x2f, 0x2b, 0x27,
+ 0xad, 0xb4, 0x0b, 0x9c, 0x94, 0x8f, 0x0a, 0x83, 0x0f, 0xbd, 0x2c, 0xa4, 0x6d, 0x83, 0xfa, 0xfa, 0x0f, 0xc5, 0x6c, 0xac, 0x88, 0xca, 0xdd, 0xd5, 0x4f, 0xcd, 0xa3, 0x59, 0xc0, 0x7c, 0x5c, 0x5e,
+ 0xaf, 0xac, 0xc4, 0x51, 0x8f, 0xf5, 0x75, 0x7b, 0xaa, 0x5a, 0x29, 0x4a, 0x3c, 0xfb, 0xea, 0x79, 0xcb, 0x62, 0x29, 0x4a, 0xa8, 0xd7, 0xea, 0x55, 0xaa, 0x5a, 0x29, 0x4a, 0xa0, 0x7a, 0x5f, 0x7d,
+ 0xca, 0x5a, 0xe9, 0x41, 0xa0, 0xaa, 0xff, 0x5f, 0x8a, 0x5a, 0x09, 0x42, 0xa0, 0x02, 0xf7, 0x75, 0xaa, 0x52, 0x09, 0x42, 0xfa, 0xae, 0x0a, 0xdd, 0xcb, 0x5a, 0x29, 0x4a, 0xee, 0x6b, 0xef, 0x39,
+ 0xcb, 0x62, 0xe9, 0x41, 0x5b, 0x2a, 0x7a, 0x2a, 0xcb, 0x62, 0x29, 0x4a, 0xbe, 0x82, 0xf5, 0xf6, 0xeb, 0x62, 0x08, 0x4a, 0xaf, 0x2a, 0xb9, 0xaf, 0xeb, 0x62, 0xc9, 0x41, 0x7a, 0xb8, 0xaa, 0xaa,
+ 0xeb, 0x62, 0x2a, 0x52, 0x55, 0x0a, 0x02, 0xaa, 0x2c, 0x6b, 0x09, 0x4a, 0x5d, 0xe8, 0xab, 0xaa, 0xeb, 0x62, 0xe8, 0x49, 0x57, 0x32, 0xb8, 0x2a, 0x4d, 0x6b, 0xe8, 0x41, 0xd7, 0xec, 0xae, 0xfa,
+ 0xeb, 0x62, 0x87, 0x31, 0xff, 0x55, 0x02, 0xaa, 0x8d, 0x73, 0xe9, 0x41, 0x57, 0x5f, 0x0a, 0xff, 0x2b, 0x6b, 0xe8, 0x41, 0xd5, 0x55, 0xa8, 0xaa, 0xee, 0x7b, 0xc8, 0x39, 0x55, 0x55, 0x2a, 0xff,
+ 0x2f, 0x8c, 0xa7, 0x39, 0xd5, 0x55, 0x38, 0xff, 0x4f, 0x8c, 0x08, 0x42, 0x55, 0x55, 0xec, 0xfd, 0x2c, 0x6b, 0xc7, 0x41, 0x1e, 0xba, 0xab, 0xaa, 0x6c, 0x7b, 0x29, 0x4a, 0x57, 0x7e, 0xaa, 0x0b,
+ 0x0c, 0x6b, 0x09, 0x4a, 0x55, 0xaf, 0xbc, 0x88, 0xab, 0x5a, 0xc8, 0x41, 0x6a, 0x00, 0x28, 0x8a, 0x0c, 0x63, 0xc8, 0x41, 0x55, 0xfc, 0xaa, 0xfa, 0xaa, 0x5a, 0x08, 0x42, 0x75, 0xab, 0x0b, 0xef,
+ 0x8a, 0x52, 0xc8, 0x39, 0x55, 0xa8, 0xe8, 0xeb, 0x8a, 0x52, 0xc8, 0x39, 0xff, 0x6a, 0x0e, 0x8a, 0x6a, 0x52, 0xa8, 0x39, 0xff, 0x5d, 0x0a, 0x20, 0x8b, 0x5a, 0xe8, 0x41, 0xcf, 0xd9, 0xea, 0xae,
+ 0xab, 0x62, 0x28, 0x4a, 0x2d, 0xa5, 0xfd, 0xbf, 0xca, 0x62, 0x08, 0x42, 0x8a, 0xe0, 0x7f, 0x7e, 0x8a, 0x5a, 0xc8, 0x39, 0xa0, 0xfe, 0xff, 0x57, 0xaa, 0x5a, 0xc8, 0x39, 0xa0, 0x7f, 0xff, 0x8f,
+ 0x79, 0xce, 0x9a, 0xc6, 0xaa, 0xf2, 0xaa, 0xea, 0x99, 0xce, 0x7a, 0xc6, 0xfe, 0xfe, 0xfe, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xfe, 0xeb, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xfb, 0xff, 0xff, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xff, 0xff, 0xad, 0x9a, 0xce, 0x59, 0xc6, 0xfb, 0xba, 0xaa, 0xaa, 0x79, 0xce, 0x9a, 0xc6, 0xae, 0x2e, 0xba, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x77, 0xff, 0xfa, 0xef,
+ 0x9a, 0xce, 0x79, 0xc6, 0x7f, 0xfb, 0xef, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x5d, 0xff, 0xfe, 0xee, 0x7a, 0xce, 0x99, 0xc6, 0x2b, 0x2f, 0xaa, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0xf7, 0xff, 0xaf, 0xea,
+ 0x59, 0xce, 0x9a, 0xc6, 0xa2, 0xbb, 0xff, 0xfe, 0x9a, 0xce, 0x79, 0xc6, 0xd5, 0xd5, 0xfe, 0xff, 0x9a, 0xce, 0x59, 0xc6, 0xab, 0xaa, 0xbf, 0xae, 0x9a, 0xce, 0x79, 0xc6, 0xbf, 0xbf, 0xff, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xea, 0xfb, 0xff, 0xea, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xfe, 0xab, 0xef, 0x9a, 0xce, 0x79, 0xc6, 0xab, 0xea, 0xea, 0x82, 0x99, 0xce, 0x7a, 0xc6, 0xfb, 0xfb, 0xfa, 0xea,
+ 0x9a, 0xce, 0x79, 0xc6, 0x2a, 0xbb, 0xba, 0xaf, 0x79, 0xce, 0x9a, 0xc6, 0xa0, 0x2b, 0xea, 0xfe, 0x9a, 0xce, 0x79, 0xc6, 0x82, 0xfa, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x2a, 0xab, 0xaa, 0xea,
+ 0x99, 0xce, 0x7a, 0xc6, 0xa2, 0xbf, 0xaa, 0xaa, 0x7a, 0xce, 0x99, 0xc6, 0xae, 0x2e, 0xbe, 0xba, 0x99, 0xce, 0x7a, 0xc6, 0xea, 0xfa, 0xfa, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xeb, 0xff,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xea, 0xfe, 0xfb, 0x9a, 0xce, 0x59, 0xc6, 0xa2, 0xee, 0xeb, 0xaa, 0x1b, 0xdf, 0xc4, 0x51, 0x70, 0x40, 0xc0, 0x80, 0x87, 0x6a, 0x84, 0x59, 0xf5, 0xff, 0xfe, 0xe8,
+ 0x26, 0x6a, 0x64, 0x51, 0x76, 0xff, 0xba, 0x2a, 0x26, 0x6a, 0x84, 0x51, 0xf7, 0xd7, 0xf7, 0x80, 0xe5, 0x61, 0x64, 0x51, 0x3f, 0xb7, 0xbf, 0xbf, 0x46, 0x72, 0x84, 0x59, 0x7e, 0x5f, 0xff, 0x2a,
+ 0x25, 0x6a, 0xa4, 0x61, 0xad, 0x77, 0xbb, 0xa0, 0x04, 0x6a, 0xa5, 0x61, 0xe0, 0xeb, 0x7e, 0xa0, 0x06, 0x6a, 0xa4, 0x59, 0x2f, 0xce, 0xeb, 0xb6, 0x45, 0x72, 0xa4, 0x61, 0xfb, 0xaf, 0x0a, 0xad,
+ 0x46, 0x72, 0xc4, 0x69, 0xf7, 0xa3, 0xaa, 0xb6, 0x26, 0x72, 0xe4, 0x61, 0x0f, 0xab, 0xff, 0xfe, 0x66, 0x72, 0xc4, 0x61, 0xa2, 0xbf, 0xeb, 0x5f, 0xca, 0x72, 0xc5, 0x69, 0x2a, 0xfa, 0xff, 0xd5,
+ 0xdb, 0xd6, 0x09, 0x5a, 0x00, 0x00, 0x03, 0x01, 0x9a, 0xce, 0x79, 0xce, 0x8a, 0xcf, 0xef, 0x02, 0x9a, 0xce, 0x79, 0xce, 0xae, 0x0f, 0x8b, 0x82, 0xb9, 0xd6, 0x7a, 0xc6, 0xff, 0xfe, 0xfa, 0xff,
+ 0x99, 0xce, 0x7a, 0xce, 0x2a, 0x0b, 0x80, 0xa0, 0x99, 0xd6, 0x7a, 0xce, 0xf7, 0xaf, 0xff, 0xff, 0x99, 0xd6, 0x7a, 0xc6, 0xbf, 0xaf, 0xee, 0xef, 0x9a, 0xd6, 0x79, 0xc6, 0xfe, 0xea, 0xea, 0xab,
+ 0x9a, 0xce, 0x79, 0xc6, 0xfe, 0xaa, 0xaa, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xff, 0xea, 0xa2, 0x80, 0x9a, 0xce, 0x79, 0xc6, 0x77, 0x5f, 0xfb, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xaf, 0xff, 0xef, 0xea,
+ 0x7a, 0xce, 0x59, 0xc6, 0xaf, 0xff, 0xfe, 0xeb, 0x9a, 0xce, 0x59, 0xbe, 0xfa, 0xea, 0xff, 0xff, 0x59, 0xce, 0x7a, 0xc6, 0xf5, 0xc7, 0x75, 0x5e, 0x9a, 0xce, 0x59, 0xc6, 0x7f, 0xfb, 0x57, 0xf5,
+ 0x79, 0xc6, 0x5a, 0xc6, 0x8f, 0x93, 0xff, 0xe8, 0x7a, 0xce, 0x59, 0xbe, 0xab, 0xaa, 0xab, 0xfa, 0x7a, 0xce, 0x59, 0xc6, 0xff, 0xff, 0x2b, 0x75, 0x9a, 0xce, 0x59, 0xc6, 0xff, 0xff, 0xae, 0xbf,
+ 0x9a, 0xce, 0x59, 0xc6, 0xfa, 0xff, 0x82, 0xff, 0x9a, 0xce, 0x59, 0xc6, 0xaa, 0xff, 0xba, 0xba, 0x9a, 0xce, 0x59, 0xc6, 0xea, 0xef, 0xfe, 0xba, 0x7a, 0xce, 0x99, 0xc6, 0xaa, 0x6a, 0xab, 0xab,
+ 0x59, 0xce, 0x9a, 0xc6, 0xaa, 0xaa, 0xbf, 0xfb, 0x9a, 0xce, 0x59, 0xc6, 0xba, 0xef, 0xff, 0xef, 0xda, 0xde, 0x26, 0x62, 0x50, 0x50, 0x50, 0x5c, 0x46, 0x72, 0x05, 0x6a, 0xf3, 0xb6, 0xd7, 0x9f,
+ 0x46, 0x6a, 0x05, 0x62, 0xff, 0xba, 0xaf, 0x82, 0x67, 0x72, 0x06, 0x62, 0xd7, 0xea, 0xbf, 0xee, 0x46, 0x72, 0x05, 0x62, 0xaf, 0xa0, 0x2e, 0xaf, 0x66, 0x72, 0x05, 0x6a, 0x2b, 0xe2, 0xfa, 0xb7,
+ 0x87, 0x7a, 0x66, 0x6a, 0xae, 0xea, 0xaa, 0xfb, 0x66, 0x72, 0xc4, 0x61, 0x5e, 0xfe, 0xb8, 0xea, 0x25, 0x72, 0xc4, 0x69, 0xfd, 0x9f, 0x2c, 0x8a, 0x86, 0x72, 0x05, 0x6a, 0xbd, 0xa9, 0x2f, 0xad,
+ 0x86, 0x72, 0x25, 0x6a, 0xe8, 0xfe, 0xf7, 0x5e, 0x66, 0x72, 0x05, 0x6a, 0x0a, 0x80, 0xfa, 0xd9, 0x66, 0x72, 0xc4, 0x61, 0x00, 0x88, 0xa8, 0x77, 0xa7, 0x7a, 0x22, 0x41, 0x00, 0x08, 0xfa, 0x5f,
+ 0x86, 0x72, 0x62, 0x51, 0x00, 0x00, 0xa2, 0x79, 0x86, 0x72, 0x43, 0x51, 0x00, 0x00, 0xe2, 0x57, 0xa7, 0x7a, 0x83, 0x59, 0x2e, 0x2a, 0xfd, 0xdd, 0xad, 0xb4, 0xe4, 0x61, 0x8b, 0x2f, 0xb5, 0xad,
+ 0x8d, 0xb4, 0x25, 0x6a, 0x80, 0xfe, 0x57, 0xd7, 0x2c, 0xa4, 0x25, 0x6a, 0xaf, 0xff, 0x7f, 0x4a, 0xca, 0xa3, 0x25, 0x6a, 0x2f, 0x5f, 0x55, 0x55, 0x2c, 0xac, 0x04, 0x6a, 0x5c, 0xbd, 0xdd, 0x55,
+ 0xb1, 0xa4, 0x28, 0x52, 0x53, 0x5c, 0x74, 0xad, 0x39, 0xae, 0x29, 0x4a, 0x55, 0x55, 0x55, 0x2a, 0x1c, 0xcf, 0x29, 0x4a, 0x55, 0x55, 0x55, 0x8a, 0x3d, 0xd7, 0x09, 0x42, 0x55, 0x55, 0x55, 0x80,
+ 0x3a, 0xb6, 0x09, 0x42, 0x55, 0x55, 0x75, 0xe0, 0xf4, 0x84, 0xe9, 0x41, 0x55, 0x5d, 0xff, 0x20, 0xf1, 0x73, 0x09, 0x4a, 0x55, 0x55, 0xf7, 0xfc, 0xcc, 0x5a, 0x09, 0x42, 0x7f, 0xf5, 0xff, 0xa0,
+ 0x8b, 0x52, 0x29, 0x4a, 0x5e, 0xfe, 0xf5, 0xd8, 0x8b, 0x52, 0x29, 0x4a, 0xcd, 0xca, 0xb2, 0x30, 0xcb, 0x62, 0x09, 0x4a, 0xf5, 0x5d, 0x02, 0x2a, 0xeb, 0x62, 0x49, 0x52, 0xdd, 0xd5, 0xee, 0xa0,
+ 0xec, 0x62, 0x6a, 0x52, 0x87, 0xdf, 0x5e, 0xbf, 0xcb, 0x62, 0x4a, 0x52, 0xa2, 0xe9, 0x02, 0xea, 0xec, 0x6a, 0x4a, 0x52, 0xbf, 0xa8, 0x76, 0xbe, 0x2d, 0x6b, 0x49, 0x52, 0xff, 0xdf, 0xd3, 0xd5,
+ 0xaa, 0x5a, 0x29, 0x4a, 0xeb, 0x76, 0xf7, 0xa2, 0xab, 0x5a, 0x49, 0x52, 0x0b, 0x2f, 0x26, 0xae, 0xcb, 0x62, 0x4a, 0x4a, 0x2b, 0xd6, 0xfa, 0x9f, 0x0b, 0x63, 0x29, 0x4a, 0xe7, 0x7b, 0x2b, 0xff,
+ 0xcb, 0x62, 0x29, 0x4a, 0xf2, 0xe5, 0x02, 0xae, 0xec, 0x6a, 0x49, 0x4a, 0xaa, 0xff, 0xac, 0x75, 0xeb, 0x62, 0x29, 0x4a, 0xaa, 0xc8, 0xfe, 0x7f, 0xcb, 0x5a, 0x29, 0x42, 0x20, 0xee, 0x7b, 0xf5,
+ 0xeb, 0x62, 0x09, 0x42, 0x80, 0xff, 0xfd, 0xb7, 0xab, 0x5a, 0x29, 0x4a, 0xac, 0xfe, 0xe5, 0x82, 0xaa, 0x5a, 0x09, 0x4a, 0xa8, 0xa6, 0xaa, 0xa2, 0xeb, 0x62, 0x49, 0x4a, 0x55, 0xff, 0xbb, 0x2e,
+ 0xcb, 0x5a, 0x09, 0x42, 0xf7, 0x02, 0xea, 0x80, 0xcb, 0x5a, 0x29, 0x42, 0x75, 0x98, 0x23, 0x22, 0xca, 0x5a, 0x29, 0x42, 0xf5, 0xfa, 0x20, 0x2a, 0xeb, 0x5a, 0xe9, 0x41, 0x5f, 0xbf, 0xaa, 0xa0,
+ 0xcb, 0x5a, 0x29, 0x4a, 0xf5, 0xbf, 0x88, 0xfa, 0xcb, 0x5a, 0x29, 0x4a, 0x55, 0xae, 0x0a, 0xfb, 0xaa, 0x52, 0x09, 0x42, 0x95, 0xef, 0x2a, 0xbe, 0xcb, 0x5a, 0x09, 0x4a, 0xf0, 0xe7, 0x0b, 0x9e,
+ 0x9a, 0xce, 0x59, 0xbe, 0xab, 0xff, 0xff, 0xff, 0x9a, 0xc6, 0x59, 0xbe, 0xaa, 0xab, 0xaa, 0xbb, 0x99, 0xce, 0x7a, 0xbe, 0x22, 0xaa, 0xff, 0xd7, 0x9a, 0xce, 0x59, 0xbe, 0xaa, 0xaa, 0xff, 0xdf,
+ 0x9a, 0xce, 0x79, 0xbe, 0xa2, 0x0a, 0xbf, 0x7d, 0x9a, 0xce, 0x79, 0xbe, 0xa8, 0x00, 0xaa, 0x7f, 0x99, 0xce, 0x7a, 0xbe, 0xaa, 0xaa, 0xab, 0x9f, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x22, 0xba, 0xff,
+ 0x99, 0xce, 0x7a, 0xc6, 0x2a, 0xaa, 0x2a, 0xbf, 0x79, 0xce, 0x9a, 0xc6, 0xa0, 0xb8, 0xad, 0xbb, 0x9a, 0xce, 0x79, 0xc6, 0xea, 0xab, 0x8e, 0xff, 0x7a, 0xce, 0x99, 0xc6, 0x0a, 0xaa, 0xbb, 0xff,
+ 0x79, 0xce, 0x9a, 0xc6, 0xa2, 0xa8, 0xfe, 0xff, 0x79, 0xce, 0x9a, 0xc6, 0xaa, 0xbf, 0xef, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xfe, 0xae, 0xaf, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xae, 0xab, 0x2a, 0x02,
+ 0x9a, 0xce, 0x79, 0xc6, 0xfe, 0xaa, 0xa0, 0xaa, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xbf, 0xff, 0xae, 0xba, 0xce, 0x79, 0xc6, 0xaf, 0xae, 0xab, 0xaa, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xfa, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xbe, 0xaa, 0xa2, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xaa, 0x22, 0x99, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0x80, 0x9a, 0xce, 0x79, 0xc6, 0xb8, 0x8a, 0x82, 0x2a,
+ 0x7a, 0xce, 0x99, 0xc6, 0xbe, 0xae, 0xca, 0xe3, 0x9a, 0xce, 0x79, 0xc6, 0xea, 0xea, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xfa, 0xbe, 0xea, 0x8a, 0x79, 0xce, 0x9a, 0xc6, 0xbe, 0xa3, 0xbf, 0xb9,
+ 0x7a, 0xce, 0x99, 0xc6, 0xae, 0xea, 0x8a, 0xba, 0x79, 0xce, 0x7a, 0xc6, 0xf2, 0xaa, 0xf0, 0xff, 0xb9, 0xd6, 0xf6, 0xc5, 0x6a, 0xaa, 0x2a, 0xaa, 0xa7, 0x72, 0x04, 0x6a, 0x72, 0x7f, 0x7c, 0x5a,
+ 0x25, 0x6a, 0xe4, 0x61, 0xb5, 0xb0, 0x20, 0xfc, 0x66, 0x72, 0x05, 0x6a, 0xcd, 0x77, 0x65, 0xd5, 0x25, 0x6a, 0x84, 0x59, 0xde, 0xff, 0x2a, 0x2a, 0x66, 0x7a, 0x05, 0x6a, 0xf5, 0xfd, 0xad, 0x02,
+ 0x86, 0x72, 0xc3, 0x69, 0x7e, 0x5e, 0xfa, 0xf8, 0x24, 0x72, 0x83, 0x61, 0xfa, 0xaa, 0xf2, 0x70, 0x25, 0x6a, 0xa3, 0x61, 0xdf, 0xe0, 0x8d, 0x89, 0x24, 0x72, 0xa3, 0x61, 0xf7, 0xff, 0xaf, 0x29,
+ 0x45, 0x7a, 0xc3, 0x61, 0xfd, 0x7f, 0xfb, 0x8a, 0x04, 0x72, 0xa3, 0x61, 0x5f, 0xff, 0x7e, 0x50, 0xe4, 0x69, 0xa2, 0x61, 0xa9, 0xeb, 0x29, 0xab, 0x04, 0x72, 0xa3, 0x61, 0xab, 0xa6, 0xbf, 0xaf,
+ 0xdb, 0xd6, 0x84, 0x59, 0x0d, 0x05, 0xd5, 0x55, 0xba, 0xd6, 0x09, 0x5a, 0x00, 0x00, 0x00, 0x01, 0x9a, 0xce, 0x79, 0xc6, 0x8a, 0xaa, 0xa8, 0xe9, 0x7a, 0xce, 0x99, 0xc6, 0x88, 0xfe, 0xfe, 0x8b,
+ 0x9a, 0xce, 0x79, 0xce, 0xeb, 0x2d, 0x0c, 0xeb, 0x9a, 0xd6, 0x79, 0xce, 0xfe, 0xfe, 0xbf, 0xfd, 0x9a, 0xd6, 0x79, 0xc6, 0xab, 0xaf, 0xaa, 0xaf, 0x9a, 0xd6, 0x79, 0xc6, 0xbf, 0xea, 0xaa, 0xba,
+ 0x9a, 0xce, 0x79, 0xce, 0xa9, 0xa8, 0x02, 0x28, 0x9a, 0xce, 0x79, 0xce, 0x03, 0x0a, 0xa0, 0xc0, 0x9a, 0xce, 0x79, 0xce, 0xb0, 0xbb, 0x83, 0xa2, 0x9a, 0xce, 0x79, 0xc6, 0xe3, 0xaa, 0xaa, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xbb, 0xfe, 0xbe, 0x7a, 0xce, 0x59, 0xc6, 0xba, 0xe8, 0xa2, 0x20, 0x79, 0xce, 0x5a, 0xbe, 0xbe, 0xaa, 0xa8, 0x2a, 0x7a, 0xce, 0x59, 0xbe, 0xbe, 0xae, 0x88, 0x88,
+ 0x79, 0xce, 0x5a, 0xc6, 0x9d, 0xff, 0xe8, 0x2a, 0x9a, 0xce, 0x59, 0xbe, 0xff, 0xfb, 0xaa, 0xaa, 0x7a, 0xce, 0x59, 0xbe, 0xaf, 0xaa, 0xaa, 0xaa, 0x9a, 0xce, 0x59, 0xbe, 0x7f, 0xfa, 0xfe, 0xea,
+ 0x7a, 0xce, 0x59, 0xbe, 0xff, 0xef, 0xaa, 0xae, 0x7a, 0xce, 0x59, 0xbe, 0xbe, 0xfa, 0xea, 0xaa, 0x9a, 0xce, 0x59, 0xbe, 0xef, 0xff, 0xfe, 0xea, 0x7a, 0xce, 0x59, 0xbe, 0x8e, 0xaa, 0xff, 0xae,
+ 0x7a, 0xce, 0x59, 0xbe, 0xab, 0xaa, 0xfb, 0xef, 0xba, 0xce, 0x05, 0x62, 0x00, 0x00, 0xc0, 0x70, 0xb8, 0xde, 0xc4, 0x61, 0x54, 0x57, 0x55, 0x55, 0x66, 0x6a, 0xe4, 0x61, 0xab, 0x7c, 0xf6, 0xd6,
+ 0x46, 0x72, 0x04, 0x6a, 0xab, 0x3d, 0xcd, 0xe9, 0x66, 0x72, 0xc4, 0x61, 0x88, 0xe8, 0xfa, 0x7b, 0x46, 0x6a, 0xc4, 0x61, 0x0a, 0xbe, 0xbf, 0xb5, 0x25, 0x6a, 0xc3, 0x61, 0x20, 0x20, 0xba, 0x5a,
+ 0x65, 0x72, 0xc4, 0x61, 0x8a, 0xfa, 0xfa, 0x77, 0x25, 0x6a, 0xa3, 0x61, 0x20, 0xa8, 0xfe, 0x5f, 0x25, 0x72, 0x83, 0x59, 0x02, 0x02, 0xfb, 0x57, 0xa7, 0x7a, 0xa4, 0x61, 0xab, 0xff, 0xfd, 0xa3,
+ 0x45, 0x6a, 0xc3, 0x61, 0x78, 0xfe, 0x7f, 0xaa, 0x45, 0x6a, 0xc4, 0x61, 0xfa, 0xf5, 0x35, 0x3e, 0x66, 0x72, 0xa4, 0x61, 0x7e, 0xfe, 0x3a, 0xf8, 0x86, 0x72, 0x63, 0x59, 0x55, 0xff, 0x8a, 0xca,
+ 0x86, 0x72, 0x83, 0x59, 0x5d, 0xfd, 0xab, 0x22, 0x6a, 0x8b, 0x63, 0x51, 0x5d, 0x5f, 0xff, 0xe2, 0xcc, 0x93, 0xa3, 0x59, 0x55, 0xbd, 0x03, 0xff, 0x0b, 0xa4, 0xc4, 0x61, 0xeb, 0xf8, 0xfb, 0x5f,
+ 0x86, 0x72, 0xe4, 0x61, 0xaa, 0x28, 0x7d, 0x7b, 0x6a, 0x8b, 0xc4, 0x61, 0x8f, 0xff, 0xff, 0xf9, 0xab, 0x8b, 0xc4, 0x59, 0xff, 0x5d, 0x57, 0xc8, 0xdb, 0xce, 0x05, 0x5a, 0x55, 0xf5, 0xd5, 0x2d,
+ 0xba, 0xce, 0x88, 0x5a, 0x01, 0x00, 0x00, 0x00, 0x9a, 0xce, 0x59, 0xbe, 0xbf, 0xaa, 0xea, 0xea, 0x9a, 0xce, 0x59, 0xc6, 0xba, 0xab, 0xdf, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0x8b, 0x02, 0xd5, 0x57,
+ 0x9a, 0xd6, 0x79, 0xc6, 0xf8, 0xa2, 0xdf, 0x5d, 0x99, 0xce, 0x7a, 0xc6, 0xe8, 0x00, 0xbf, 0x7f, 0xfb, 0xd6, 0x79, 0xc6, 0x4b, 0x7f, 0xff, 0xd5, 0xba, 0xce, 0xee, 0x62, 0x70, 0x80, 0x00, 0x00,
+ 0xbb, 0xce, 0xce, 0x5a, 0xf5, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0x6c, 0x4a, 0x57, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0x6a, 0x52, 0x55, 0x02, 0x00, 0x00, 0xfb, 0xd6, 0x8a, 0x52, 0x55, 0x30, 0x00, 0x00,
+ 0x1c, 0xd7, 0x6a, 0x52, 0xd5, 0x20, 0x00, 0x00, 0xfc, 0xd6, 0xab, 0x62, 0x55, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0xac, 0x5a, 0x55, 0xf0, 0x00, 0x00, 0x3c, 0xdf, 0x4a, 0x52, 0x55, 0xd5, 0x00, 0x00,
+ 0xfb, 0xd6, 0x2a, 0x4a, 0x55, 0x55, 0x00, 0x00, 0x1c, 0xd7, 0x09, 0x42, 0x55, 0x55, 0x00, 0x00, 0xbb, 0xce, 0x2a, 0x4a, 0x55, 0x55, 0xee, 0x00, 0x1c, 0xcf, 0x29, 0x4a, 0x55, 0x55, 0x55, 0x00,
+ 0xfc, 0xd6, 0x4a, 0x52, 0x55, 0x55, 0x5d, 0x00, 0xbb, 0xce, 0x09, 0x4a, 0x57, 0x55, 0x2a, 0x00, 0xbb, 0xce, 0x08, 0x4a, 0x75, 0x55, 0x02, 0x00, 0xfc, 0xce, 0x4a, 0x4a, 0x55, 0x55, 0x78, 0x00,
+ 0xfc, 0xce, 0x4a, 0x52, 0x55, 0x55, 0x55, 0x00, 0xdc, 0xce, 0x6a, 0x52, 0x55, 0x55, 0x7f, 0x00, 0xdc, 0xc6, 0x8a, 0x5a, 0x55, 0x55, 0x55, 0x08, 0xdc, 0xce, 0x69, 0x52, 0x55, 0x55, 0x55, 0x20,
+ 0xdc, 0xce, 0x4a, 0x52, 0x55, 0x55, 0x55, 0x00, 0xdc, 0xc6, 0x49, 0x4a, 0x55, 0x55, 0x55, 0x00, 0xdc, 0xce, 0x29, 0x4a, 0x55, 0x55, 0x55, 0x00, 0xfc, 0xc6, 0x6a, 0x52, 0x55, 0x55, 0x55, 0x00,
+ 0xfc, 0xc6, 0x6a, 0x52, 0x55, 0x55, 0x55, 0x08, 0xdc, 0xce, 0x6a, 0x52, 0x55, 0x55, 0xbd, 0x00, 0xdc, 0xce, 0xab, 0x52, 0x55, 0x55, 0xff, 0x00, 0xdc, 0xce, 0x8b, 0x52, 0x55, 0x55, 0x0b, 0x00,
+ 0x9a, 0xce, 0x79, 0xbe, 0xff, 0xff, 0xaa, 0xaa, 0x7a, 0xc6, 0x59, 0xbe, 0x4b, 0x20, 0x00, 0x88, 0x9a, 0xc6, 0x79, 0xbe, 0xd5, 0xfe, 0x38, 0xeb, 0x9a, 0xc6, 0x79, 0xbe, 0x55, 0x7d, 0xe2, 0x0a,
+ 0x9a, 0xc6, 0x79, 0xbe, 0x55, 0x9f, 0xa2, 0x80, 0x9a, 0xc6, 0x59, 0xbe, 0xaf, 0xfa, 0xaa, 0x8a, 0x9a, 0xc6, 0x59, 0xbe, 0xaa, 0xaf, 0xaa, 0xaa, 0x9a, 0xc6, 0x79, 0xc6, 0xfa, 0x5f, 0xfe, 0xf6,
+ 0x9a, 0xc6, 0x79, 0xbe, 0xad, 0xd1, 0xec, 0xeb, 0x9a, 0xc6, 0x79, 0xbe, 0xfa, 0xfa, 0xbb, 0xbe, 0x9a, 0xce, 0x79, 0xbe, 0xff, 0xaf, 0xef, 0xbf, 0x9a, 0xce, 0x79, 0xbe, 0xbb, 0xff, 0xff, 0xbf,
+ 0x9a, 0xce, 0x79, 0xbe, 0xba, 0xaf, 0xfe, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xdf, 0x7f, 0xef, 0xef, 0x7a, 0xce, 0x99, 0xc6, 0xeb, 0x7f, 0xfd, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0xbf, 0xef, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0xff, 0xba, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x02, 0xa2, 0xaa, 0xfa, 0xba, 0xce, 0x79, 0xc6, 0xaa, 0xae, 0xfb, 0xbb, 0x9a, 0xce, 0x79, 0xc6, 0x00, 0xa0, 0xb2, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0x28, 0x28, 0xef, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x20, 0x8b, 0xaf, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0x82, 0xaa, 0xae, 0xbf, 0x9a, 0xce, 0x79, 0xc6, 0x22, 0xba, 0xeb, 0xfb,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xaf, 0xfb, 0xba, 0xce, 0x79, 0xc6, 0xba, 0xea, 0xff, 0xfb, 0x7a, 0xce, 0x99, 0xc6, 0xaf, 0xaa, 0xff, 0xff, 0x79, 0xce, 0x9a, 0xc6, 0xde, 0xfb, 0xfe, 0xbf,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xff, 0xba, 0x2a, 0x9a, 0xce, 0x79, 0xc6, 0x77, 0xb7, 0xaa, 0xaa, 0xfa, 0xd6, 0xcb, 0x8b, 0x80, 0x40, 0xc0, 0x00, 0xa6, 0x72, 0xa4, 0x59, 0xaa, 0xe2, 0x75, 0x5c,
+ 0x45, 0x72, 0x83, 0x59, 0xa0, 0x55, 0xff, 0x4f, 0x25, 0x6a, 0x42, 0x51, 0x2a, 0x8a, 0xef, 0x7a, 0x24, 0x72, 0x43, 0x51, 0x2a, 0x2a, 0x2a, 0x2d, 0x86, 0x7a, 0x03, 0x6a, 0x22, 0xff, 0xde, 0xfd,
+ 0x44, 0x72, 0x83, 0x61, 0xa0, 0xea, 0xbf, 0x97, 0x24, 0x72, 0x42, 0x59, 0x70, 0xd8, 0xfe, 0x7e, 0xe4, 0x69, 0x63, 0x61, 0xcb, 0xed, 0x8d, 0xf3, 0xe4, 0x69, 0x83, 0x61, 0x3f, 0x09, 0x35, 0x8d,
+ 0x44, 0x72, 0xc3, 0x69, 0xa2, 0x8a, 0xad, 0xaf, 0x04, 0x72, 0xa2, 0x69, 0xea, 0xdf, 0xea, 0xe8, 0xe4, 0x71, 0xa3, 0x61, 0x7e, 0xae, 0x2a, 0xab, 0x04, 0x72, 0xa3, 0x69, 0x8d, 0xbf, 0x9e, 0xe6,
+ 0x05, 0x72, 0xc3, 0x69, 0xaa, 0xaa, 0xa2, 0xa9, 0x9b, 0xd6, 0xc5, 0x69, 0x05, 0x15, 0x55, 0x55, 0xbb, 0xce, 0x69, 0x62, 0x00, 0x00, 0x00, 0x01, 0x9a, 0xce, 0x79, 0xc6, 0xf7, 0xff, 0xef, 0xba,
+ 0x59, 0xce, 0x9a, 0xc6, 0xef, 0xfb, 0xff, 0xff, 0x7a, 0xce, 0x99, 0xc6, 0xab, 0xab, 0xaa, 0x80, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xea, 0xba, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xab, 0xbe, 0x2a,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xbe, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xea, 0xaa, 0x8a, 0x9a, 0xce, 0x79, 0xce, 0xa0, 0x7f, 0xfb, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xee, 0xef, 0xaa,
+ 0x7a, 0xce, 0x99, 0xc6, 0xaa, 0xb0, 0xb0, 0xfa, 0x79, 0xce, 0x9a, 0xc6, 0xab, 0xde, 0xaa, 0xea, 0x79, 0xce, 0x9a, 0xc6, 0xae, 0xb6, 0xaa, 0x2f, 0x9a, 0xce, 0x79, 0xc6, 0xfd, 0xf7, 0xff, 0xe7,
+ 0x9a, 0xce, 0x79, 0xc6, 0xfd, 0xff, 0xff, 0xdf, 0x9a, 0xce, 0x59, 0xc6, 0xfb, 0xbf, 0xba, 0xae, 0x79, 0xce, 0x9a, 0xc6, 0xff, 0xae, 0xfe, 0xba, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xae, 0xaa, 0xbf,
+ 0x79, 0xce, 0x9a, 0xc6, 0xef, 0x02, 0xfa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xef, 0xaa, 0xbb, 0x9a, 0xce, 0x79, 0xc6, 0xf7, 0xbe, 0xea, 0xbb, 0x9a, 0xce, 0x79, 0xc6, 0x5b, 0xfb, 0xba, 0xfe,
+ 0xba, 0xd6, 0xe9, 0x72, 0x00, 0x00, 0x00, 0x40, 0xb9, 0xde, 0xa4, 0x59, 0x5c, 0x56, 0x55, 0x55, 0x05, 0x6a, 0x64, 0x51, 0x06, 0xa7, 0xe5, 0x7f, 0x25, 0x6a, 0x84, 0x59, 0x28, 0xae, 0xb7, 0xbf,
+ 0x46, 0x72, 0xc4, 0x69, 0x0a, 0xcb, 0xeb, 0x7b, 0x25, 0x72, 0xc3, 0x69, 0x7c, 0x76, 0x77, 0x5d, 0x05, 0x6a, 0xa4, 0x61, 0x3e, 0xff, 0xb7, 0x2e, 0x05, 0x6a, 0xa3, 0x61, 0x78, 0xe0, 0x6b, 0xef,
+ 0x05, 0x6a, 0xa4, 0x61, 0x83, 0x21, 0x8a, 0xbe, 0xe5, 0x71, 0xa3, 0x61, 0xfa, 0x9c, 0x28, 0x22, 0x04, 0x72, 0x63, 0x59, 0x2d, 0x2a, 0xaa, 0xb7, 0x66, 0x72, 0xc4, 0x61, 0xa3, 0x03, 0xf3, 0x7d,
+ 0xc7, 0x82, 0xe4, 0x69, 0xff, 0xd7, 0xcd, 0x4d, 0xa7, 0x7a, 0xc4, 0x61, 0xf5, 0xfd, 0xd7, 0x54, 0x88, 0x72, 0xa4, 0x61, 0xbe, 0xf7, 0xbf, 0x3f, 0x6a, 0x8b, 0x63, 0x51, 0xbe, 0xff, 0x5f, 0x70,
+ 0x6a, 0x8b, 0xa4, 0x59, 0xfe, 0x7f, 0xc5, 0xd7, 0xc8, 0x7a, 0xe5, 0x59, 0xda, 0xf3, 0x72, 0x1f, 0xeb, 0x9b, 0x84, 0x51, 0xfd, 0xdf, 0x35, 0x0f, 0x0c, 0x9c, 0x04, 0x5a, 0x33, 0x9a, 0xec, 0x20,
+ 0xcf, 0xbc, 0xa4, 0x59, 0x5f, 0xd5, 0x8b, 0x00, 0x30, 0xcd, 0x26, 0x62, 0xdd, 0xe2, 0x3a, 0xaf, 0x30, 0xbd, 0x45, 0x72, 0x23, 0xe2, 0x97, 0x27, 0xba, 0xd6, 0x8f, 0xa4, 0x09, 0x01, 0x02, 0x00,
+ 0x9a, 0xce, 0x79, 0xce, 0xa7, 0x2f, 0x28, 0x0b, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x0a, 0x0a, 0x02, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xfe, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xef, 0xff, 0xaa, 0x80,
+ 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xbf, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xdf, 0x77, 0xba, 0x2a, 0x9a, 0xce, 0x79, 0xc6, 0xd5, 0xff, 0xff, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xeb, 0x7d, 0xfd, 0xba,
+ 0x79, 0xce, 0x9a, 0xc6, 0xfe, 0xea, 0xa2, 0xaa, 0x79, 0xce, 0x9a, 0xc6, 0xe2, 0x2f, 0xef, 0xba, 0x9a, 0xce, 0x59, 0xc6, 0xbe, 0xff, 0xff, 0xab, 0x7a, 0xce, 0x99, 0xc6, 0x08, 0xef, 0xf7, 0xab,
+ 0x9a, 0xce, 0x79, 0xc6, 0xba, 0xfd, 0x75, 0xd5, 0x99, 0xce, 0x7a, 0xc6, 0xef, 0xfd, 0xd7, 0xdf, 0x79, 0xce, 0x9a, 0xc6, 0xcb, 0xaa, 0x7a, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xba, 0xa7, 0xf5, 0x57,
+ 0x9a, 0xce, 0x79, 0xc6, 0xab, 0xff, 0xf5, 0x55, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xee, 0x7b, 0x55, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xab, 0xff, 0x57, 0x9a, 0xce, 0x79, 0xc6, 0x8b, 0xf9, 0xfa, 0x55,
+ 0x9a, 0xce, 0x79, 0xc6, 0x7a, 0xbf, 0x7f, 0x75, 0x9a, 0xce, 0x79, 0xc6, 0xef, 0x7a, 0xdd, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0x5f, 0xf9, 0xff, 0xfe, 0x9a, 0xc6, 0x79, 0xc6, 0xff, 0xb8, 0xaf, 0xb9,
+ 0x9a, 0xce, 0x79, 0xc6, 0x55, 0x5f, 0xbf, 0xbe, 0x9a, 0xce, 0x59, 0xc6, 0x5f, 0xae, 0xba, 0xaa, 0x9a, 0xce, 0x79, 0xbe, 0xff, 0xae, 0xae, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xfd, 0xfe, 0xaa, 0xaa,
+ 0x9b, 0xce, 0x79, 0xc6, 0x55, 0xfd, 0xdf, 0xef, 0x9a, 0xce, 0x59, 0xc6, 0x76, 0xfb, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x7f, 0xdb, 0xef, 0xea, 0x9a, 0xce, 0x59, 0xbe, 0xff, 0xef, 0xea, 0xaa,
+ 0x9a, 0xce, 0x59, 0xbe, 0xff, 0xee, 0xaa, 0xaa, 0x7a, 0xce, 0x59, 0xc6, 0x5f, 0xff, 0xaa, 0x08, 0x9a, 0xce, 0x59, 0xc6, 0x7d, 0xff, 0xbf, 0x8a, 0x9a, 0xce, 0x59, 0xc6, 0xdf, 0xfe, 0xea, 0x8a,
+ 0x7a, 0xc6, 0x59, 0xbe, 0x20, 0xbb, 0xbf, 0xfb, 0x7a, 0xc6, 0x59, 0xbe, 0x2e, 0x8a, 0xeb, 0xf7, 0x9a, 0xc6, 0x59, 0xbe, 0xab, 0xff, 0x77, 0xfd, 0x9a, 0xc6, 0x59, 0xbe, 0xea, 0xaf, 0xab, 0xaf,
+ 0x9a, 0xc6, 0x79, 0xbe, 0xee, 0xad, 0xfa, 0xfb, 0x9a, 0xc6, 0x59, 0xbe, 0xa2, 0xab, 0xfa, 0xba, 0x7a, 0xc6, 0x59, 0xbe, 0x00, 0x02, 0x8b, 0x2a, 0x9a, 0xc6, 0x79, 0xbe, 0xae, 0xfe, 0xeb, 0xbe,
+ 0x9a, 0xc6, 0x59, 0xbe, 0xea, 0xfb, 0xaa, 0x2a, 0x99, 0xce, 0x7a, 0xc6, 0x55, 0xfd, 0xaa, 0x0a, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xff, 0xea, 0xf8, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xbf, 0xb7, 0xff,
+ 0x79, 0xce, 0x9a, 0xc6, 0x9f, 0xfa, 0xbb, 0xfa, 0x79, 0xce, 0x9a, 0xc6, 0xbe, 0x7a, 0xef, 0xea, 0x79, 0xce, 0x9a, 0xc6, 0xfe, 0xfe, 0xff, 0xeb, 0xba, 0xce, 0x79, 0xc6, 0xea, 0x7f, 0xff, 0xfe,
+ 0x9a, 0xce, 0x79, 0xbe, 0xaa, 0xff, 0xff, 0xbe, 0x9a, 0xce, 0x7a, 0xc6, 0xfa, 0xff, 0x77, 0x75, 0x9a, 0xce, 0x7a, 0xbe, 0xaa, 0xba, 0xbf, 0xef, 0x9a, 0xce, 0x79, 0xbe, 0xaa, 0xaa, 0xef, 0xff,
+ 0x9a, 0xce, 0x79, 0xc6, 0xba, 0xef, 0xbf, 0xab, 0x9a, 0xc6, 0x79, 0xc6, 0xae, 0x0f, 0xeb, 0xe0, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x7a, 0xbb, 0xaf, 0xbb, 0xce, 0x79, 0xc6, 0xff, 0xfd, 0xff, 0xbb,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x9e, 0xbe, 0xab, 0x9a, 0xce, 0x7a, 0xc6, 0xae, 0x2a, 0x00, 0x00, 0xba, 0xce, 0x79, 0xce, 0xbe, 0xaa, 0xaa, 0xea, 0xba, 0xce, 0x79, 0xce, 0xaf, 0xba, 0xaa, 0x2a,
+ 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xef, 0xab, 0xaa, 0x9a, 0xd6, 0x79, 0xc6, 0xeb, 0xbf, 0xee, 0xea, 0xd9, 0xd6, 0xa3, 0x59, 0xc0, 0x40, 0x60, 0x50, 0x44, 0x6a, 0x23, 0x59, 0xf8, 0xfa, 0x7f, 0xff,
+ 0x04, 0x6a, 0x43, 0x59, 0xea, 0x2f, 0xbd, 0x55, 0xe4, 0x61, 0x42, 0x59, 0xfc, 0xdf, 0xff, 0x7d, 0x65, 0x7a, 0x62, 0x59, 0x2d, 0x0d, 0x09, 0x09, 0x44, 0x7a, 0x62, 0x61, 0xa0, 0xe0, 0xe8, 0x68,
+ 0xc3, 0x69, 0x42, 0x59, 0x96, 0xce, 0xe9, 0xf2, 0xc3, 0x69, 0x62, 0x61, 0xbd, 0xfb, 0xbc, 0xde, 0xe3, 0x69, 0x82, 0x61, 0x51, 0x61, 0x68, 0x58, 0xe4, 0x69, 0x83, 0x61, 0xae, 0x29, 0xab, 0x39,
+ 0x25, 0x72, 0xc3, 0x69, 0x2b, 0x9f, 0xbb, 0xba, 0x44, 0x72, 0xa3, 0x69, 0xde, 0x78, 0x78, 0x7e, 0xe4, 0x71, 0xa3, 0x69, 0x93, 0xf5, 0xae, 0xed, 0xc4, 0x71, 0xe3, 0x69, 0x09, 0xf7, 0x7a, 0xae,
+ 0x24, 0x72, 0xa3, 0x69, 0xad, 0x2f, 0xbf, 0xdf, 0x05, 0x72, 0xe3, 0x69, 0x3b, 0x32, 0xd6, 0xde, 0xdc, 0xd6, 0xe6, 0x61, 0x05, 0x35, 0x15, 0x55, 0xfc, 0xe6, 0x79, 0xce, 0x55, 0x55, 0x77, 0xfc,
+ 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xba, 0xaa, 0xaa, 0xba, 0xce, 0x99, 0xce, 0xd5, 0xd6, 0xfd, 0xff, 0xba, 0xd6, 0x99, 0xce, 0x55, 0xdd, 0xbf, 0xff, 0xba, 0xd6, 0x79, 0xce, 0x7f, 0xff, 0xaf, 0xae,
+ 0xba, 0xd6, 0x99, 0xce, 0x55, 0xd5, 0xfd, 0x7f, 0xba, 0xd6, 0x99, 0xce, 0xd5, 0xd5, 0x5f, 0xff, 0xba, 0xd6, 0x79, 0xce, 0xff, 0xbb, 0xfb, 0xff, 0xba, 0xd6, 0x99, 0xce, 0x55, 0xff, 0xff, 0xff,
+ 0xba, 0xd6, 0x79, 0xce, 0xff, 0xff, 0xbf, 0xbf, 0xba, 0xd6, 0x99, 0xc6, 0xff, 0xfe, 0xaf, 0xea, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xfa, 0xaa, 0xaa, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xaa, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xbf, 0x00, 0x00, 0x00, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xab, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xea, 0x00, 0x00, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0xae, 0xa2, 0xa0, 0x80,
+ 0x79, 0xce, 0x9a, 0xc6, 0xab, 0xae, 0xaf, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0xef, 0xea, 0x2a, 0x8a, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0x7a, 0xaa, 0xaa, 0xdb, 0xd6, 0xf2, 0xb4, 0xaa, 0x2a, 0x2a, 0x4a,
+ 0xb9, 0xde, 0x63, 0x51, 0x60, 0x54, 0x56, 0x55, 0x25, 0x72, 0x43, 0x51, 0xf8, 0xaa, 0xb5, 0xef, 0x45, 0x72, 0x43, 0x49, 0x76, 0xe5, 0xe3, 0xe2, 0x05, 0x72, 0x83, 0x51, 0x2e, 0xaf, 0xef, 0xb9,
+ 0x04, 0x6a, 0x85, 0x51, 0x88, 0xbe, 0xfd, 0x26, 0xe4, 0x61, 0x83, 0x59, 0xbb, 0xbe, 0xea, 0x85, 0x05, 0x6a, 0xa4, 0x59, 0xfe, 0xd5, 0x72, 0xe8, 0x04, 0x6a, 0x63, 0x59, 0xbb, 0x9f, 0xfa, 0x8a,
+ 0xe4, 0x69, 0x63, 0x61, 0xa8, 0xe8, 0xaa, 0xfd, 0x04, 0x6a, 0x63, 0x59, 0x0b, 0xad, 0xee, 0xef, 0x25, 0x72, 0x83, 0x59, 0xf6, 0xe5, 0x5f, 0x35, 0x4c, 0xb4, 0x84, 0x59, 0x55, 0xd5, 0x2b, 0x28,
+ 0x6d, 0xb4, 0xe4, 0x61, 0xa5, 0xeb, 0xfe, 0x02, 0x0b, 0xac, 0x26, 0x62, 0x55, 0xab, 0xb8, 0xa0, 0xec, 0x9b, 0xa7, 0x72, 0x3d, 0x83, 0xaa, 0x88, 0x0c, 0x9c, 0x05, 0x62, 0x54, 0x5e, 0xfa, 0xaa,
+ 0x6d, 0xa4, 0xc5, 0x59, 0xf5, 0xb7, 0x2b, 0x2a, 0xad, 0xb4, 0x29, 0x83, 0x5e, 0xaf, 0x2c, 0x0a, 0xee, 0xbc, 0x28, 0x83, 0x9d, 0x8a, 0xf2, 0xfe, 0x2f, 0xc5, 0x86, 0x7a, 0xaa, 0x2a, 0xe2, 0x5a,
+ 0x0f, 0xcd, 0x45, 0x72, 0xe0, 0x5c, 0x55, 0x55, 0x6d, 0xb4, 0xa7, 0x7a, 0x2d, 0xad, 0x2b, 0x83, 0xb9, 0xd6, 0x85, 0x82, 0x3d, 0x2f, 0x0b, 0x0a, 0x9a, 0xce, 0x79, 0xce, 0x26, 0x00, 0xa0, 0x00,
+ 0xba, 0xce, 0x99, 0xce, 0x57, 0x5f, 0xd5, 0xaf, 0xba, 0xce, 0x79, 0xce, 0xbe, 0xbf, 0xea, 0xea, 0xba, 0xce, 0x79, 0xce, 0xff, 0xff, 0xbe, 0xea, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xfe, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0xaa, 0xa2, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0xea, 0xea, 0xa2, 0x79, 0xce, 0x9a, 0xc6, 0x0a, 0x22, 0x65, 0xae, 0x9a, 0xce, 0x79, 0xc6, 0xaf, 0xfb, 0x7f, 0xaa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xbe, 0xae, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xef, 0xaa, 0xa8, 0x79, 0xce, 0x9a, 0xc6, 0xae, 0x2d, 0x8a, 0xae, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xfd, 0xdf, 0xaf,
+ 0x9a, 0xce, 0x79, 0xc6, 0xff, 0x7f, 0xff, 0xfb, 0x7a, 0xce, 0x99, 0xc6, 0xe9, 0xbe, 0xff, 0xab, 0x9a, 0xc6, 0x59, 0xc6, 0xfa, 0xfa, 0xaa, 0xbb, 0x9b, 0xce, 0x59, 0xc6, 0xfb, 0xee, 0xea, 0xfb,
+ 0x9a, 0xce, 0x79, 0xc6, 0x55, 0x5f, 0x55, 0xdf, 0x9a, 0xce, 0x59, 0xbe, 0xeb, 0xaa, 0xaa, 0xaa, 0x9a, 0xce, 0x59, 0xc6, 0xff, 0xff, 0xba, 0xeb, 0x9a, 0xce, 0x79, 0xc6, 0xf5, 0xbd, 0xf7, 0xff,
+ 0x9a, 0xce, 0x79, 0xc6, 0xfd, 0xab, 0xaa, 0xa2, 0x79, 0xce, 0x9a, 0xc6, 0xfe, 0xb9, 0x8a, 0xeb, 0x9a, 0xce, 0x79, 0xc6, 0x9e, 0xae, 0x0a, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaf, 0xab, 0x88, 0x00,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xa8, 0xaa, 0xe8, 0x79, 0xce, 0x9a, 0xc6, 0xfb, 0xbb, 0x6a, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0xab, 0xab, 0xee, 0xea, 0x9a, 0xce, 0x79, 0xc6, 0xfe, 0xaa, 0x2a, 0xae,
+ 0x9a, 0xce, 0x79, 0xc6, 0xab, 0xaa, 0x0a, 0xbe, 0x79, 0xce, 0x9b, 0xc6, 0xea, 0xea, 0xaa, 0xfa, 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0xa0, 0x22, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xee, 0xa8, 0xaa, 0x8a,
+ 0x9a, 0xce, 0x79, 0xc6, 0xea, 0xba, 0x28, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x2a, 0xa8, 0xea, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xaa, 0xae, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xa8, 0x20, 0xa8,
+ 0x7a, 0xc6, 0x59, 0xbe, 0xfa, 0x5f, 0x55, 0xd5, 0x7b, 0xc6, 0x59, 0xb6, 0xab, 0xea, 0xff, 0xff, 0x9b, 0xc6, 0x59, 0xb6, 0xa3, 0xfe, 0xff, 0xeb, 0x9a, 0xce, 0x59, 0xbe, 0xff, 0x89, 0x0b, 0x0b,
+ 0x9a, 0xce, 0x79, 0xc6, 0x55, 0xaa, 0x00, 0x0b, 0x9a, 0xd6, 0x79, 0xc6, 0x55, 0xff, 0xfe, 0xfc, 0x9a, 0xce, 0x79, 0xbe, 0x77, 0xfa, 0xe8, 0xf8, 0x7a, 0xc6, 0x59, 0xbe, 0x82, 0xfa, 0xbc, 0xfd,
+ 0x9a, 0xce, 0x59, 0xbe, 0x2f, 0xf7, 0x57, 0x7f, 0x99, 0xce, 0x5a, 0xbe, 0x00, 0xff, 0x55, 0xd5, 0x9a, 0xce, 0x59, 0xbe, 0xfe, 0xdf, 0x75, 0x5d, 0x7a, 0xc6, 0x59, 0xbe, 0x00, 0xea, 0xab, 0xdd,
+ 0x9a, 0xc6, 0x59, 0xbe, 0x08, 0xae, 0xad, 0xff, 0x9a, 0xce, 0x79, 0xbe, 0xa8, 0xea, 0xd7, 0xf7, 0x9a, 0xc6, 0x79, 0xbe, 0x00, 0x2a, 0xd5, 0xde, 0x9a, 0xc6, 0x79, 0xbe, 0x80, 0x8a, 0xcd, 0x55,
+ 0x9b, 0xc6, 0x79, 0xbe, 0xea, 0xfa, 0x76, 0x75, 0x9a, 0xc6, 0x59, 0xbe, 0xaa, 0xab, 0xba, 0xff, 0x9b, 0xc6, 0x59, 0xbe, 0xaa, 0xab, 0xfb, 0xff, 0x9a, 0xc6, 0x59, 0xbe, 0xaa, 0x8a, 0xaa, 0xbf,
+ 0x7b, 0xc6, 0x99, 0xbe, 0x02, 0x00, 0xe2, 0x2f, 0x9a, 0xce, 0x5a, 0xbe, 0xaa, 0x8a, 0xab, 0xfd, 0x9a, 0xce, 0x7a, 0xbe, 0xaa, 0xba, 0xff, 0x5f, 0x9b, 0xc6, 0x79, 0xbe, 0x2a, 0xaa, 0x8a, 0xb9,
+ 0x9a, 0xce, 0x7a, 0xc6, 0x2b, 0xab, 0x57, 0x57, 0x9a, 0xce, 0x7a, 0xbe, 0x2a, 0x2a, 0xea, 0xff, 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0x8a, 0xff, 0x55, 0x9a, 0xce, 0x7a, 0xc6, 0x02, 0x2e, 0xab, 0xf7,
+ 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0x0a, 0xbb, 0x6f, 0xba, 0xce, 0x79, 0xc6, 0xaa, 0xee, 0xff, 0x5f, 0xf9, 0xde, 0xa4, 0x59, 0x50, 0x50, 0x50, 0x58, 0xe4, 0x69, 0x63, 0x61, 0xfa, 0x6a, 0x40, 0x60,
+ 0xc4, 0x61, 0x43, 0x59, 0xdf, 0xff, 0xdf, 0xcb, 0xe4, 0x69, 0x42, 0x59, 0x57, 0x55, 0x3d, 0xaf, 0x64, 0x7a, 0x83, 0x61, 0x09, 0x8b, 0x0b, 0xaa, 0x24, 0x7a, 0x43, 0x61, 0x78, 0xfe, 0x97, 0x35,
+ 0xe4, 0x71, 0x42, 0x59, 0xd8, 0xf8, 0x94, 0x3e, 0x05, 0x72, 0x83, 0x61, 0xd7, 0xf7, 0xa6, 0x27, 0xe4, 0x71, 0x62, 0x59, 0x7e, 0xea, 0xf8, 0xb8, 0x04, 0x72, 0x63, 0x61, 0xbd, 0xaf, 0x2a, 0x2a,
+ 0x24, 0x72, 0xa3, 0x69, 0xeb, 0x6f, 0xac, 0xe8, 0x04, 0x7a, 0xa2, 0x69, 0x7a, 0xfa, 0x72, 0xeb, 0xc4, 0x71, 0x83, 0x69, 0x8a, 0xaa, 0xfe, 0x9b, 0xe4, 0x71, 0x83, 0x69, 0xe8, 0xad, 0xa2, 0xa9,
+ 0x24, 0x7a, 0x83, 0x69, 0x2f, 0xb5, 0xf5, 0xdf, 0x04, 0x7a, 0xa3, 0x69, 0xe8, 0xfa, 0xfe, 0xd7, 0x26, 0x6a, 0x83, 0x61, 0x00, 0x2b, 0x89, 0x2e, 0xdb, 0xd6, 0x09, 0x62, 0x02, 0x01, 0x01, 0x05,
+ 0xba, 0xd6, 0x9a, 0xc6, 0xab, 0xbe, 0xef, 0xfd, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xfd, 0x7f, 0x55, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xf7, 0xff, 0x55, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xe7, 0x77, 0xfd,
+ 0xba, 0xce, 0x99, 0xce, 0xeb, 0xfd, 0xff, 0x8f, 0xba, 0xce, 0x99, 0xce, 0x5d, 0x5f, 0x25, 0x70, 0xba, 0xd6, 0x79, 0xc6, 0xbe, 0xab, 0xea, 0xaa, 0xba, 0xd6, 0x99, 0xce, 0xf7, 0xff, 0xff, 0xff,
+ 0xba, 0xd6, 0x99, 0xce, 0xbf, 0xff, 0xbf, 0xbf, 0x99, 0xd6, 0xba, 0xce, 0xfd, 0xbf, 0xbe, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xef, 0x9f, 0xff, 0xea, 0xba, 0xd6, 0x99, 0xce, 0xbf, 0xbf, 0xee, 0xff,
+ 0xba, 0xd6, 0x99, 0xce, 0xef, 0xdb, 0xff, 0x7f, 0x9a, 0xd6, 0xb9, 0xc6, 0xaa, 0xaa, 0xaa, 0xab, 0xba, 0xce, 0x99, 0xce, 0xde, 0xff, 0xab, 0xf5, 0xba, 0xce, 0x99, 0xc6, 0xfa, 0x88, 0xaa, 0xfa,
+ 0x9a, 0xd6, 0x7a, 0xc6, 0xaa, 0xaa, 0xaf, 0xff, 0xba, 0xce, 0x79, 0xc6, 0xea, 0xa8, 0xae, 0xba, 0xb9, 0xde, 0x9a, 0xce, 0x55, 0x55, 0x55, 0x15, 0xda, 0xde, 0x84, 0x51, 0x40, 0x50, 0x5c, 0x57,
+ 0xc5, 0x61, 0x63, 0x51, 0x5e, 0xff, 0xef, 0xfb, 0xe4, 0x69, 0x63, 0x59, 0xb5, 0x15, 0x2d, 0x2b, 0x24, 0x7a, 0x42, 0x51, 0x70, 0x78, 0xaa, 0xaa, 0x05, 0x72, 0x43, 0x51, 0x01, 0xa9, 0x7a, 0xe8,
+ 0x05, 0x72, 0x84, 0x59, 0x0a, 0x23, 0xa9, 0xab, 0x05, 0x72, 0xa3, 0x61, 0x6f, 0xaa, 0xe3, 0xea, 0x04, 0x6a, 0x83, 0x59, 0xfa, 0xae, 0x2f, 0x09, 0x24, 0x72, 0x63, 0x59, 0xea, 0x7a, 0xfa, 0x78,
+ 0xa4, 0x61, 0x63, 0x51, 0xb7, 0x3f, 0x8f, 0xee, 0xe4, 0x61, 0x63, 0x59, 0xbd, 0xbf, 0x37, 0xa5, 0x0c, 0xac, 0xa3, 0x59, 0xf5, 0x25, 0xad, 0xfd, 0xae, 0xc4, 0x03, 0x72, 0xb8, 0x54, 0x96, 0x35,
+ 0x6d, 0xb4, 0x45, 0x72, 0x3e, 0xae, 0xc6, 0xc4, 0xeb, 0xa3, 0x4a, 0x93, 0xf8, 0xdf, 0x5f, 0xe9, 0xab, 0x9b, 0x87, 0x7a, 0x80, 0xc8, 0x62, 0x6a, 0xab, 0x93, 0x66, 0x72, 0x9f, 0x3a, 0x17, 0x55,
+ 0x6d, 0xac, 0x46, 0x6a, 0x2e, 0x02, 0xaa, 0x2d, 0xad, 0xb4, 0x26, 0x6a, 0x80, 0xf8, 0x5e, 0xbe, 0x30, 0xcd, 0x86, 0x72, 0x8d, 0x69, 0xab, 0x7a, 0xef, 0xbc, 0x46, 0x72, 0x56, 0xf5, 0xbd, 0xa0,
+ 0xec, 0x9b, 0x26, 0x6a, 0xd7, 0xb5, 0xf5, 0x2c, 0x98, 0xde, 0x48, 0x93, 0xf9, 0x7f, 0xbf, 0x2e, 0xba, 0xce, 0x2d, 0xa4, 0x01, 0x02, 0x00, 0x00, 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0xa0, 0xfb, 0xff,
+ 0x9a, 0xce, 0x7a, 0xc6, 0x08, 0xaa, 0xbe, 0xeb, 0xba, 0xce, 0x9a, 0xc6, 0xaa, 0xb3, 0xff, 0x5d, 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0x00, 0xbc, 0xfe, 0xba, 0xce, 0x7a, 0xc6, 0xaa, 0xab, 0xfb, 0xab,
+ 0x7a, 0xce, 0xba, 0xc6, 0xbf, 0xaf, 0xfe, 0xae, 0x9b, 0xce, 0x79, 0xc6, 0x80, 0xaa, 0x00, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0x28, 0x8b, 0x02, 0x00, 0xbb, 0xce, 0x99, 0xc6, 0x7f, 0xfe, 0xbf, 0xfa,
+ 0xba, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xaa, 0xab, 0x9a, 0xce, 0x9a, 0xc6, 0x0a, 0x8a, 0xaa, 0xfa, 0x79, 0xce, 0xbb, 0xc6, 0xaa, 0xaa, 0xbe, 0xbe, 0x99, 0xce, 0xba, 0xc6, 0xa8, 0xa0, 0xbe, 0x28,
+ 0x9a, 0xce, 0x99, 0xc6, 0xdf, 0x8a, 0x00, 0x20, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xaf, 0xaa, 0xba, 0xce, 0x79, 0xc6, 0x7f, 0xee, 0xa8, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0xf7, 0xa8, 0x00, 0x00,
+ 0xba, 0xce, 0x7a, 0xc6, 0x75, 0xff, 0xaa, 0xa0, 0xba, 0xce, 0x79, 0xc6, 0xf7, 0xee, 0xaa, 0x20, 0xba, 0xce, 0x99, 0xc6, 0xdd, 0xff, 0xaa, 0x02, 0xba, 0xce, 0x79, 0xc6, 0xd7, 0xfb, 0xa8, 0xa0,
+ 0x9b, 0xd6, 0x79, 0xc6, 0xff, 0xae, 0xaa, 0x82, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xbf, 0xba, 0xaa, 0x9a, 0xd6, 0x99, 0xc6, 0xff, 0xef, 0xfa, 0xea, 0xba, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xff, 0xfa,
+ 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xae, 0xae, 0xab, 0xba, 0xce, 0x99, 0xc6, 0xff, 0xbb, 0xb8, 0xaa, 0xba, 0xce, 0x99, 0xc6, 0xff, 0xfa, 0xaf, 0xaa, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xea, 0xae,
+ 0xba, 0xce, 0x79, 0xc6, 0xff, 0xff, 0xea, 0xae, 0x9a, 0xce, 0x7a, 0xc6, 0xea, 0xeb, 0x00, 0x00, 0x9a, 0xce, 0x79, 0xc6, 0x2b, 0x22, 0x28, 0x80, 0x79, 0xce, 0x9a, 0xc6, 0xbb, 0xfa, 0xaa, 0xde,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xaa, 0x0a, 0x79, 0xce, 0x9a, 0xc6, 0xa7, 0xaf, 0x3a, 0xaf, 0x9a, 0xce, 0x79, 0xce, 0x20, 0xca, 0xf0, 0x00, 0x9a, 0xce, 0x79, 0xce, 0x0a, 0x00, 0x03, 0x00,
+ 0x5a, 0xb6, 0x1a, 0xae, 0x02, 0xaa, 0xab, 0xff, 0x5a, 0xbe, 0x1a, 0xae, 0x00, 0x02, 0xff, 0xff, 0x7b, 0xc6, 0x39, 0xae, 0x00, 0xaa, 0xff, 0xd5, 0x7a, 0xc6, 0x3a, 0xb6, 0x00, 0xaa, 0xf5, 0x55,
+ 0x7a, 0xce, 0x59, 0xb6, 0x02, 0xea, 0xff, 0xd5, 0x99, 0xce, 0x5a, 0xbe, 0xfa, 0x5d, 0x5f, 0x5d, 0x7b, 0xc6, 0x59, 0xb6, 0xb8, 0xff, 0xba, 0xbf, 0x7a, 0xbe, 0x59, 0xb6, 0x2e, 0x8e, 0xab, 0x0a,
+ 0x7b, 0xc6, 0x59, 0xb6, 0xfa, 0xef, 0xbb, 0xea, 0x7a, 0xbe, 0x5a, 0xbe, 0x09, 0x26, 0xe0, 0x28, 0x7b, 0xc6, 0x59, 0xbe, 0xfa, 0x7d, 0xff, 0x2a, 0x7b, 0xc6, 0x5a, 0xb6, 0xba, 0xee, 0xaa, 0xa2,
+ 0x9b, 0xc6, 0x59, 0xbe, 0xfe, 0xff, 0xbf, 0xaf, 0x9a, 0xc6, 0x5a, 0xbe, 0xfa, 0xff, 0xfb, 0xaa, 0x9a, 0xc6, 0x5a, 0xbe, 0xab, 0xff, 0xfa, 0xaa, 0x9a, 0xc6, 0x59, 0xbe, 0xcb, 0xbe, 0xeb, 0xaf,
+ 0x59, 0xc6, 0x7a, 0xbe, 0xbf, 0xbf, 0x7d, 0x75, 0x7a, 0xc6, 0x59, 0xbe, 0x7a, 0xa2, 0xa8, 0xa8, 0x9b, 0xc6, 0x59, 0xbe, 0xff, 0xff, 0xae, 0xaa, 0x9b, 0xc6, 0x59, 0xbe, 0xaf, 0xbf, 0xeb, 0xa8,
+ 0x9b, 0xc6, 0x59, 0xbe, 0xea, 0xeb, 0xef, 0xab, 0x9a, 0xc6, 0x59, 0xbe, 0xba, 0xaf, 0xeb, 0xba, 0x9b, 0xc6, 0x79, 0xbe, 0xef, 0xab, 0xbd, 0xbe, 0x9b, 0xc6, 0x7a, 0xbe, 0xff, 0xab, 0xaa, 0xe2,
+ 0x9b, 0xce, 0x7a, 0xbe, 0xff, 0xff, 0xbf, 0xbb, 0x9b, 0xc6, 0x7a, 0xbe, 0xd6, 0xfa, 0xa2, 0xa8, 0x9b, 0xc6, 0x7a, 0xbe, 0xfe, 0xeb, 0xa8, 0x2a, 0x9a, 0xc6, 0x7a, 0xbe, 0xb7, 0xfd, 0xaa, 0x0a,
+ 0x9a, 0xc6, 0x7a, 0xbe, 0xeb, 0xfd, 0xaa, 0xa8, 0x9a, 0xc6, 0x5a, 0xbe, 0xbe, 0xab, 0xaa, 0xaa, 0x98, 0xce, 0x25, 0x6a, 0x58, 0x58, 0x58, 0x50, 0x46, 0x72, 0xa3, 0x61, 0x7e, 0x7e, 0xe8, 0xe8,
+ 0xa4, 0x69, 0x63, 0x59, 0xcb, 0x8e, 0x98, 0xb4, 0xc4, 0x69, 0x63, 0x61, 0x2e, 0x82, 0xa2, 0x21, 0x25, 0x7a, 0x42, 0x51, 0xe2, 0x73, 0xfa, 0x7a, 0x45, 0x7a, 0x42, 0x59, 0xad, 0x8b, 0x83, 0xea,
+ 0xe4, 0x69, 0x43, 0x61, 0x26, 0xb7, 0x57, 0xd5, 0x24, 0x7a, 0x82, 0x61, 0x2f, 0x0d, 0x0d, 0x83, 0x44, 0x72, 0x62, 0x61, 0xbc, 0xde, 0xf6, 0x77, 0x04, 0x72, 0x82, 0x61, 0x2a, 0x0f, 0x8d, 0xe5,
+ 0x24, 0x72, 0xc3, 0x69, 0xba, 0x7f, 0xde, 0xa8, 0x24, 0x72, 0xa3, 0x69, 0x7b, 0x78, 0xaa, 0xaa, 0x24, 0x7a, 0x83, 0x69, 0xf7, 0x7f, 0xde, 0xe8, 0xe4, 0x71, 0x83, 0x69, 0x0b, 0xad, 0x8b, 0xed,
+ 0xe4, 0x69, 0xa3, 0x61, 0x2a, 0x2a, 0xb7, 0x2a, 0x25, 0x72, 0xc3, 0x69, 0xf5, 0xaa, 0xea, 0xce, 0x05, 0x72, 0xa4, 0x61, 0xa8, 0xbe, 0xae, 0xbe, 0xfc, 0xde, 0xe6, 0x61, 0x05, 0x25, 0x15, 0x15,
+ 0x9a, 0xce, 0x79, 0xc6, 0x2a, 0xaa, 0x09, 0x00, 0xba, 0xce, 0x7a, 0xc6, 0xaa, 0xff, 0xea, 0xaa, 0xba, 0xd6, 0x79, 0xc6, 0xfa, 0xff, 0xef, 0xaa, 0xba, 0xd6, 0x7a, 0xc6, 0xff, 0xff, 0xeb, 0xaa,
+ 0xba, 0xce, 0x99, 0xc6, 0x8a, 0xff, 0xe3, 0xa0, 0xbb, 0xd6, 0x99, 0xc6, 0xbf, 0xff, 0xbb, 0xbb, 0xba, 0xd6, 0x99, 0xc6, 0xfe, 0xfe, 0xff, 0xfa, 0x9a, 0xd6, 0xb9, 0xc6, 0xba, 0xff, 0xab, 0xaa,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xbf, 0xbf, 0xbb, 0xd6, 0x99, 0xce, 0xea, 0xfb, 0xab, 0xaa, 0xba, 0xd6, 0x99, 0xce, 0xea, 0xff, 0xfa, 0xbf, 0xba, 0xd6, 0x99, 0xce, 0xdf, 0xf7, 0xfb, 0xaa,
+ 0xba, 0xd6, 0x9a, 0xc6, 0xff, 0xea, 0xaa, 0xaa, 0xba, 0xd6, 0x9a, 0xc6, 0xdf, 0xdf, 0xfa, 0xea, 0xbb, 0xd6, 0x9a, 0xc6, 0xfd, 0xff, 0xfe, 0xaa, 0xba, 0xce, 0x9a, 0xc6, 0x77, 0xdf, 0xfe, 0xe8,
+ 0xba, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0xfa, 0xaa, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xdf, 0xff, 0x3b, 0xba, 0xd6, 0xc5, 0x59, 0x80, 0x60, 0x50, 0x5c, 0x05, 0x62, 0x24, 0x49, 0xa8, 0xa8, 0x7e, 0x7f,
+ 0xc4, 0x69, 0x23, 0x49, 0x2e, 0x0a, 0x55, 0x77, 0xe4, 0x71, 0x43, 0x49, 0x2a, 0xe2, 0xd5, 0x95, 0x25, 0x72, 0xa3, 0x61, 0xf0, 0xfa, 0x7e, 0xfe, 0x05, 0x72, 0x63, 0x51, 0xe8, 0xea, 0xaa, 0x9e,
+ 0x04, 0x6a, 0x63, 0x51, 0x0b, 0x09, 0xae, 0x8a, 0x05, 0x72, 0x83, 0x61, 0xa0, 0xf0, 0x6a, 0xfa, 0x65, 0x7a, 0x83, 0x59, 0xb9, 0xa1, 0xe9, 0xad, 0xe4, 0x69, 0x84, 0x59, 0x5a, 0xea, 0xe2, 0xa8,
+ 0xc5, 0x69, 0x43, 0x51, 0xf6, 0xf7, 0xbe, 0x0e, 0xe5, 0x69, 0x63, 0x51, 0xef, 0xf5, 0x2f, 0xa2, 0xa6, 0x82, 0xc4, 0x61, 0x7d, 0xf5, 0xfd, 0x2b, 0x2f, 0xcd, 0x87, 0x7a, 0x89, 0x8b, 0xab, 0xeb,
+ 0xef, 0xc4, 0x04, 0x6a, 0xa6, 0xce, 0xcf, 0x8f, 0x0c, 0xac, 0x29, 0x8b, 0xe9, 0xfd, 0xeb, 0x83, 0xcb, 0xa3, 0xa7, 0x7a, 0x6b, 0x83, 0x02, 0x82, 0xae, 0xb4, 0x46, 0x6a, 0xd5, 0xb5, 0x2d, 0xab,
+ 0xae, 0xbc, 0x29, 0x8b, 0xeb, 0x6a, 0xf8, 0xff, 0x8e, 0xbc, 0x49, 0x8b, 0xa5, 0xad, 0x8b, 0x82, 0xef, 0xbc, 0x8b, 0x9b, 0xbf, 0x8b, 0xea, 0x56, 0x92, 0xd5, 0xa7, 0x7a, 0xde, 0xa7, 0x2d, 0x8f,
+ 0x14, 0xde, 0xa7, 0x7a, 0xfa, 0x9c, 0xad, 0x2a, 0x9a, 0xc6, 0xae, 0xb4, 0x0d, 0x0b, 0x02, 0x00, 0x9b, 0xc6, 0x7a, 0xc6, 0x2a, 0x06, 0x80, 0x80, 0x9b, 0xce, 0x7a, 0xc6, 0xe7, 0xee, 0xbb, 0xfb,
+ 0xbb, 0xc6, 0x7a, 0xc6, 0xee, 0xff, 0xff, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xfe, 0xff, 0xff, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0xfd, 0x5d, 0xef, 0xfd, 0xbb, 0xce, 0x7a, 0xc6, 0xaf, 0xfa, 0xef, 0xae,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xba, 0xba, 0x7a, 0xce, 0xbb, 0xc6, 0xfa, 0xeb, 0xee, 0xef, 0xba, 0xce, 0x9a, 0xc6, 0xff, 0xbf, 0xbb, 0xff, 0xbb, 0xce, 0x9a, 0xc6, 0xef, 0xfa, 0xbe, 0xbf,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xff, 0xaa, 0xaa, 0xaa, 0xbb, 0xce, 0x9a, 0xc6, 0xdf, 0xdb, 0xaf, 0xaa, 0xba, 0xce, 0x7a, 0xc6, 0xbf, 0xab, 0xaa, 0x28, 0xba, 0xce, 0x9a, 0xc6, 0xad, 0x2a, 0x00, 0x82,
+ 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x99, 0xce, 0xbd, 0xbb, 0xaa, 0xab, 0xbb, 0xd6, 0x99, 0xce, 0xaf, 0xba, 0xea, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0xaa, 0xff, 0x5f,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xfb, 0xfe, 0x55, 0xba, 0xce, 0x99, 0xce, 0xdf, 0xeb, 0xea, 0xfb, 0xba, 0xd6, 0x79, 0xc6, 0xaa, 0xaa, 0xaa, 0xeb, 0xba, 0xd6, 0x99, 0xc6, 0xfa, 0xbf, 0xff, 0xff,
+ 0xbb, 0xce, 0x99, 0xce, 0xd6, 0x7f, 0xef, 0xbe, 0xba, 0xce, 0x9a, 0xc6, 0x8a, 0xae, 0xff, 0xaa, 0xba, 0xce, 0x99, 0xc6, 0x82, 0xa8, 0xbb, 0x0e, 0xbb, 0xce, 0x99, 0xce, 0x95, 0xfe, 0xff, 0xfe,
+ 0xba, 0xd6, 0x79, 0xce, 0xbe, 0xaf, 0xee, 0xaa, 0xba, 0xd6, 0x99, 0xce, 0xf7, 0xdf, 0xff, 0xef, 0xba, 0xce, 0x99, 0xce, 0x5f, 0x57, 0xdf, 0xd8, 0xba, 0xd6, 0x99, 0xce, 0xd5, 0xff, 0xff, 0xf5,
+ 0x99, 0xd6, 0xba, 0xce, 0xee, 0xbd, 0xe2, 0xff, 0xba, 0xce, 0x7a, 0xce, 0xf7, 0xaa, 0xaa, 0xfe, 0x9a, 0xce, 0x79, 0xc6, 0x00, 0xc0, 0x02, 0x82, 0x9a, 0xce, 0x7a, 0xce, 0xe2, 0x28, 0xde, 0x0a,
+ 0x9b, 0xce, 0x79, 0xc6, 0xea, 0xaa, 0xaa, 0x8a, 0x7a, 0xce, 0x9a, 0xc6, 0xaa, 0xa7, 0xbe, 0xea, 0x9a, 0xce, 0x79, 0xc6, 0xae, 0xea, 0xaa, 0x8a, 0x7a, 0xce, 0x9a, 0xc6, 0xab, 0x7a, 0xff, 0xaa,
+ 0x1a, 0xb6, 0x3b, 0xae, 0xdf, 0xbc, 0xff, 0xfb, 0x5b, 0xb6, 0x1a, 0xae, 0xff, 0xbf, 0xab, 0xba, 0x5a, 0xbe, 0x1a, 0xae, 0xef, 0xaf, 0xeb, 0xae, 0x7b, 0xbe, 0x39, 0xae, 0xff, 0xff, 0xab, 0xfa,
+ 0x7a, 0xbe, 0x5a, 0xb6, 0xfd, 0xbf, 0xbb, 0xad, 0x7a, 0xc6, 0x5a, 0xbe, 0xb5, 0x15, 0x2f, 0x02, 0x9a, 0xc6, 0x5a, 0xbe, 0x7f, 0xaf, 0xaa, 0xea, 0x7b, 0xc6, 0x59, 0xbe, 0xf5, 0x7f, 0xea, 0x7f,
+ 0x5a, 0xc6, 0x7a, 0xbe, 0xf5, 0xbd, 0x7d, 0xa5, 0x9a, 0xc6, 0x59, 0xbe, 0xfe, 0xba, 0xaa, 0xef, 0x59, 0xc6, 0x9b, 0xbe, 0xff, 0xab, 0xab, 0xaa, 0x9b, 0xc6, 0x5a, 0xbe, 0xea, 0xee, 0xaa, 0xaa,
+ 0x7a, 0xc6, 0x9a, 0xbe, 0xaa, 0xb0, 0x2c, 0xaa, 0x9a, 0xc6, 0x5a, 0xbe, 0xae, 0xaa, 0xaa, 0xaa, 0x7b, 0xc6, 0x99, 0xbe, 0xaa, 0x8b, 0x2e, 0xbe, 0x9b, 0xce, 0x7a, 0xbe, 0xeb, 0xfb, 0xfe, 0xdf,
+ 0x9a, 0xc6, 0x7a, 0xbe, 0xaa, 0xab, 0xbe, 0xd7, 0x9a, 0xc6, 0x5a, 0xbe, 0xa2, 0xaa, 0x2a, 0xeb, 0x59, 0xc6, 0x9b, 0xbe, 0xff, 0xff, 0xaf, 0xcf, 0x5a, 0xc6, 0x9b, 0xbe, 0xbf, 0xb7, 0xbe, 0xbf,
+ 0x5a, 0xc6, 0x9b, 0xbe, 0xf7, 0xbf, 0xea, 0xea, 0x9b, 0xc6, 0x5a, 0xbe, 0xba, 0xee, 0xab, 0xfe, 0x9a, 0xc6, 0x7a, 0xbe, 0xa3, 0xe7, 0x5f, 0xfd, 0x9b, 0xc6, 0x59, 0xbe, 0xaa, 0xbe, 0xfb, 0xaa,
+ 0x9b, 0xc6, 0x59, 0xbe, 0xa8, 0xbf, 0xff, 0xbe, 0x9b, 0xc6, 0x7a, 0xbe, 0xaa, 0x5f, 0x77, 0x55, 0x9b, 0xc6, 0x7a, 0xbe, 0xba, 0xea, 0x5d, 0x55, 0x7b, 0xc6, 0x79, 0xbe, 0x88, 0xfa, 0xad, 0xff,
+ 0x9a, 0xc6, 0x5a, 0xbe, 0x2a, 0xff, 0x7f, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0x28, 0x2e, 0x7f, 0xfa, 0xfa, 0xd6, 0xe5, 0x59, 0x50, 0x50, 0x50, 0x70, 0x67, 0x72, 0x83, 0x61, 0xfa, 0x7a, 0xf8, 0xf8,
+ 0xa3, 0x69, 0x42, 0x51, 0xb8, 0xea, 0xf8, 0x5e, 0xa4, 0x61, 0x42, 0x59, 0x0f, 0xd5, 0x97, 0x75, 0xe5, 0x69, 0x42, 0x59, 0x7c, 0x7e, 0x7f, 0xf7, 0x04, 0x7a, 0x02, 0x49, 0xe8, 0xfb, 0x5f, 0xfe,
+ 0xa3, 0x69, 0x22, 0x51, 0x2b, 0x2d, 0xad, 0x2f, 0xe4, 0x71, 0x42, 0x59, 0xe0, 0xbe, 0xbf, 0x97, 0xe3, 0x69, 0x62, 0x61, 0x8a, 0x6a, 0xaa, 0xba, 0x04, 0x72, 0x82, 0x61, 0xa7, 0x8f, 0xad, 0xad,
+ 0x24, 0x72, 0xa3, 0x69, 0x2c, 0xff, 0x2d, 0xab, 0x04, 0x72, 0xa3, 0x69, 0xa0, 0xfb, 0xf8, 0x78, 0xe4, 0x71, 0x83, 0x69, 0xc0, 0x2a, 0xe3, 0x52, 0xe4, 0x71, 0x83, 0x61, 0x22, 0xaf, 0xbb, 0xed,
+ 0x05, 0x72, 0xa3, 0x61, 0x2e, 0xef, 0xff, 0xd7, 0x05, 0x72, 0xc4, 0x69, 0xaa, 0x8b, 0xbd, 0xfd, 0xa3, 0x69, 0xe4, 0x61, 0xe9, 0x6a, 0xe0, 0xd6, 0xd5, 0xac, 0xe5, 0x69, 0x15, 0x55, 0x55, 0x55,
+ 0xbb, 0xce, 0xd4, 0x9c, 0x00, 0x00, 0x00, 0x01, 0x9a, 0xce, 0x7a, 0xbe, 0x00, 0x02, 0xee, 0x77, 0x9a, 0xce, 0x7a, 0xbe, 0x00, 0x0a, 0xaa, 0xf7, 0x9a, 0xce, 0x7a, 0xbe, 0x00, 0x80, 0xaa, 0xff,
+ 0xba, 0xce, 0x7a, 0xc6, 0xaa, 0xff, 0xef, 0xd5, 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0xa8, 0xfe, 0xdf, 0xba, 0xce, 0x7a, 0xc6, 0xaa, 0xff, 0xef, 0xdd, 0xba, 0xce, 0x9a, 0xc6, 0xa2, 0xef, 0xff, 0x55,
+ 0xba, 0xce, 0x7a, 0xc6, 0x0a, 0xea, 0xbf, 0xff, 0xbb, 0xce, 0x9a, 0xc6, 0x20, 0xaa, 0xff, 0xd7, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0x7b, 0x55, 0x55, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xff, 0xd7,
+ 0xba, 0xce, 0x9a, 0xc6, 0x20, 0x2a, 0x2a, 0xf7, 0xba, 0xd6, 0x9a, 0xc6, 0xaa, 0xba, 0xff, 0x7f, 0xbb, 0xce, 0x99, 0xc6, 0xc2, 0xaa, 0xaa, 0xdf, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xfa,
+ 0xba, 0xce, 0x99, 0xc6, 0xaa, 0xce, 0x2e, 0xff, 0xda, 0xd6, 0xa4, 0x51, 0x00, 0xc0, 0x70, 0x58, 0x47, 0x6a, 0x64, 0x49, 0xfc, 0xfe, 0xff, 0x75, 0xa4, 0x51, 0x23, 0x49, 0xfe, 0xe0, 0xfe, 0x9e,
+ 0x84, 0x59, 0x23, 0x49, 0xfa, 0xa2, 0x6a, 0xfe, 0x04, 0x72, 0x23, 0x51, 0xb5, 0x3d, 0x25, 0x2d, 0x05, 0x6a, 0xa4, 0x61, 0xbe, 0xff, 0x17, 0x95, 0x25, 0x72, 0x63, 0x59, 0xb6, 0x2e, 0x2e, 0x2a,
+ 0x45, 0x72, 0xc4, 0x69, 0xff, 0xfc, 0x7c, 0x7a, 0xe5, 0x69, 0xa4, 0x61, 0xfa, 0x5a, 0x72, 0x7a, 0x25, 0x72, 0xa3, 0x61, 0x29, 0x2b, 0xf9, 0xad, 0xe5, 0x69, 0xa3, 0x61, 0xec, 0x78, 0xa0, 0x80,
+ 0xe5, 0x71, 0x83, 0x59, 0xff, 0xfe, 0x5e, 0xd8, 0xa4, 0x61, 0x63, 0x51, 0xa8, 0x9f, 0xbe, 0xae, 0xca, 0x9b, 0x84, 0x61, 0xbd, 0xbd, 0x2d, 0x2f, 0x4d, 0xbc, 0x8a, 0x9b, 0xe7, 0xc3, 0x8e, 0xca,
+ 0xce, 0xbc, 0x04, 0x6a, 0x8c, 0x04, 0x04, 0x8e, 0x2c, 0xac, 0x25, 0x72, 0x82, 0xa2, 0xaa, 0x5c, 0xeb, 0xa3, 0x66, 0x7a, 0x02, 0x08, 0xe8, 0x55, 0x8d, 0xb4, 0x06, 0x6a, 0x02, 0xaa, 0xaf, 0xb5,
+ 0x6d, 0xb4, 0xe5, 0x69, 0xaa, 0x2b, 0x0a, 0x7a, 0xef, 0xc4, 0xa7, 0x72, 0xaa, 0x82, 0x7a, 0x1b, 0x92, 0xd5, 0x26, 0x6a, 0xaa, 0xaa, 0x8d, 0x00, 0xd9, 0xd6, 0x08, 0x83, 0xfa, 0xaf, 0x0e, 0x01,
+ 0xbb, 0xce, 0x31, 0xbd, 0x09, 0x02, 0x00, 0x00, 0xba, 0xd6, 0x9a, 0xc6, 0x55, 0x77, 0xba, 0xaa, 0xba, 0xce, 0x7a, 0xc6, 0xff, 0xba, 0x08, 0xaa, 0xbb, 0xce, 0x9a, 0xc6, 0xf5, 0xfe, 0x0a, 0x80,
+ 0xba, 0xce, 0x9a, 0xc6, 0x7f, 0xae, 0x00, 0x00, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xfb, 0xaa, 0xaa, 0xba, 0xce, 0x99, 0xc6, 0xef, 0x2a, 0x00, 0x00, 0xbb, 0xce, 0x99, 0xc6, 0xfa, 0xa0, 0xa2, 0x02,
+ 0xba, 0xd6, 0x9a, 0xc6, 0xff, 0xfe, 0xfe, 0xaa, 0xba, 0xce, 0x9a, 0xc6, 0xff, 0xef, 0xaa, 0x00, 0xba, 0xce, 0x9a, 0xc6, 0xfb, 0x7b, 0xaa, 0x00, 0xba, 0xce, 0x9a, 0xc6, 0xff, 0xef, 0xaa, 0x02,
+ 0xbb, 0xce, 0x9a, 0xc6, 0xdb, 0xee, 0xaa, 0x00, 0xbb, 0xd6, 0x9a, 0xc6, 0xbf, 0xff, 0xff, 0xba, 0xba, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xff, 0xaa, 0xbb, 0xce, 0x99, 0xce, 0x7f, 0xfd, 0x7e, 0xd6,
+ 0xbb, 0xce, 0x9a, 0xce, 0x55, 0xde, 0x55, 0xdd, 0xbb, 0xd6, 0x99, 0xc6, 0xba, 0xff, 0xff, 0xfb, 0xbb, 0xce, 0x99, 0xce, 0xef, 0x7f, 0x5b, 0xff, 0xbb, 0xce, 0x9a, 0xc6, 0xaa, 0xfe, 0xfa, 0xaf,
+ 0xbb, 0xce, 0x9a, 0xce, 0x75, 0x7a, 0x75, 0x5d, 0xba, 0xce, 0x7a, 0xce, 0xaa, 0xea, 0xaa, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0x57, 0xea, 0xf5, 0x5d, 0xbb, 0xce, 0x99, 0xce, 0x7f, 0xde, 0x7f, 0x7b,
+ 0xba, 0xce, 0x9a, 0xce, 0xdd, 0x55, 0x75, 0xb5, 0xba, 0xce, 0x99, 0xce, 0x77, 0xfd, 0xdd, 0xee, 0xba, 0xce, 0x99, 0xce, 0x7b, 0x4b, 0xfd, 0xfe, 0xba, 0xce, 0x99, 0xce, 0x7f, 0xff, 0xff, 0x7b,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0x7f, 0xff, 0xdf, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xf5, 0xff, 0xdf, 0xba, 0xce, 0x9a, 0xce, 0xee, 0xe5, 0xff, 0x5a, 0xba, 0xd6, 0x99, 0xce, 0xfd, 0xff, 0xff, 0xbf,
+ 0xba, 0xd6, 0x99, 0xce, 0x7f, 0xff, 0xfe, 0xfe, 0x9a, 0xd6, 0xb9, 0xce, 0x7b, 0xf6, 0xbf, 0xeb, 0xba, 0xd6, 0x79, 0xc6, 0xfe, 0xfa, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xa2, 0xa2, 0x00, 0x00,
+ 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xea, 0xea, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xfb, 0xff, 0xba, 0xce, 0x79, 0xc6, 0xee, 0xee, 0xba, 0xeb, 0x9a, 0xce, 0x79, 0xc6, 0x2a, 0x20, 0x88, 0x00,
+ 0x5a, 0xae, 0x1a, 0xae, 0xfe, 0xaf, 0xff, 0xff, 0x3b, 0xb6, 0x1a, 0xae, 0xbb, 0xa5, 0xe8, 0xb2, 0x5b, 0xb6, 0x19, 0xae, 0xab, 0xbf, 0xbf, 0xff, 0x5b, 0xbe, 0x3a, 0xae, 0xba, 0xff, 0xfd, 0xff,
+ 0x7a, 0xbe, 0x39, 0xb6, 0x2b, 0xfd, 0xdf, 0x55, 0x7b, 0xc6, 0x39, 0xb6, 0x02, 0x0a, 0xff, 0xf5, 0x7b, 0xbe, 0x39, 0xb6, 0x00, 0x00, 0x02, 0xbb, 0x7a, 0xbe, 0x39, 0xb6, 0xa0, 0xaa, 0xfa, 0xff,
+ 0x7b, 0xbe, 0x3a, 0xb6, 0x8a, 0xba, 0xae, 0xf7, 0x7b, 0xbe, 0x59, 0xb6, 0xea, 0xfb, 0xaa, 0xd5, 0x7b, 0xc6, 0x59, 0xb6, 0x8a, 0xf5, 0xdf, 0xdf, 0x7a, 0xc6, 0x5a, 0xb6, 0x00, 0x8f, 0xfd, 0xd5,
+ 0x7b, 0xc6, 0x5a, 0xb6, 0xa8, 0x2a, 0xaf, 0xf5, 0x7b, 0xc6, 0x59, 0xb6, 0x00, 0xa8, 0xee, 0xf5, 0x9b, 0xc6, 0x59, 0xb6, 0xaa, 0xaa, 0xdf, 0xf5, 0x7b, 0xc6, 0x59, 0xbe, 0x8a, 0xaa, 0x7f, 0x55,
+ 0x9b, 0xc6, 0x5a, 0xb6, 0xaa, 0x8b, 0xff, 0x7d, 0x9a, 0xc6, 0x5a, 0xb6, 0x2a, 0xaa, 0xeb, 0xfd, 0x7b, 0xc6, 0x59, 0xb6, 0xa8, 0x08, 0xaa, 0xff, 0x9a, 0xc6, 0x5a, 0xbe, 0xaa, 0xab, 0xae, 0xbf,
+ 0x9b, 0xc6, 0x5a, 0xbe, 0xaa, 0xaa, 0xeb, 0xbb, 0x9b, 0xc6, 0x79, 0xbe, 0xdf, 0xbb, 0xea, 0xab, 0x9a, 0xc6, 0x7a, 0xbe, 0xf7, 0x5f, 0x88, 0xa2, 0x9a, 0xce, 0x7a, 0xbe, 0x55, 0xff, 0xaa, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xbe, 0x55, 0xff, 0xaa, 0xaa, 0x9a, 0xce, 0x7a, 0xbe, 0x55, 0xab, 0x88, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0x55, 0x7f, 0xff, 0x2a, 0x9b, 0xce, 0x7a, 0xbe, 0xff, 0xfe, 0xf7, 0xaa,
+ 0x9b, 0xc6, 0x7a, 0xbe, 0xab, 0xfb, 0x9a, 0xaa, 0x9b, 0xc6, 0x59, 0xbe, 0x6e, 0xff, 0xee, 0xba, 0xdb, 0xce, 0x67, 0x6a, 0x60, 0x40, 0xc0, 0x80, 0x87, 0x72, 0xc4, 0x69, 0x6a, 0xdc, 0x7a, 0xa2,
+ 0xc4, 0x71, 0x43, 0x51, 0x5e, 0x7e, 0x5e, 0x5c, 0x63, 0x61, 0x23, 0x51, 0xef, 0xaf, 0xaa, 0x3b, 0xa3, 0x69, 0x43, 0x59, 0xb5, 0xaf, 0xab, 0x02, 0xa3, 0x69, 0x41, 0x51, 0x7c, 0xaa, 0x28, 0x80,
+ 0xe4, 0x69, 0x63, 0x61, 0x2d, 0xaa, 0xaf, 0x8a, 0xe4, 0x69, 0x43, 0x51, 0x3e, 0xbe, 0x3f, 0x26, 0x04, 0x72, 0x83, 0x61, 0xf7, 0x96, 0x3e, 0xb4, 0x04, 0x72, 0x83, 0x61, 0xad, 0xab, 0xa8, 0xea,
+ 0x04, 0x72, 0xc3, 0x69, 0xa7, 0xed, 0x75, 0x57, 0x24, 0x72, 0xa3, 0x69, 0xe2, 0x7e, 0x5b, 0xfd, 0xe4, 0x71, 0xa3, 0x61, 0xda, 0x9d, 0xef, 0xa3, 0xe4, 0x71, 0xa3, 0x61, 0xe6, 0xef, 0xaa, 0xbf,
+ 0xe4, 0x69, 0x83, 0x61, 0xbd, 0x7e, 0xfe, 0xe8, 0xe4, 0x71, 0xa3, 0x69, 0xcb, 0x83, 0x02, 0x09, 0x24, 0x72, 0xc3, 0x69, 0xb5, 0xad, 0xf7, 0x75, 0x05, 0x72, 0xc3, 0x69, 0x20, 0xb0, 0xbc, 0x3d,
+ 0xdc, 0xce, 0xc7, 0x61, 0x01, 0x0d, 0x05, 0x25, 0x9b, 0xc6, 0x7a, 0xbe, 0xff, 0xbb, 0x2a, 0x08, 0x9b, 0xc6, 0x7a, 0xbe, 0xaf, 0xec, 0x82, 0x00, 0x9b, 0xce, 0x7a, 0xc6, 0x55, 0x55, 0xff, 0xfb,
+ 0x9b, 0xce, 0x5a, 0xbe, 0x9a, 0xae, 0xaa, 0xaa, 0x9a, 0xce, 0x7a, 0xbe, 0xff, 0xbe, 0xff, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xf5, 0xf7, 0xff, 0xaa, 0x9b, 0xce, 0x7a, 0xbe, 0xfa, 0xff, 0xfe, 0xaa,
+ 0x9b, 0xc6, 0x7a, 0xc6, 0xae, 0xd6, 0x8b, 0xa8, 0x9b, 0xc6, 0x7a, 0xbe, 0x8a, 0xad, 0x8a, 0x28, 0x9b, 0xc6, 0x7a, 0xc6, 0xeb, 0x78, 0xa8, 0x83, 0x9b, 0xc6, 0x7a, 0xc6, 0x2f, 0x8b, 0xbe, 0xde,
+ 0x9b, 0xc6, 0x7a, 0xc6, 0x0a, 0xe2, 0xf8, 0xcd, 0x9b, 0xc6, 0x7a, 0xc6, 0x2e, 0x9e, 0xfa, 0x26, 0x1b, 0xd7, 0x7a, 0xc6, 0x55, 0x55, 0x55, 0x2b, 0xdb, 0xce, 0x68, 0x72, 0x00, 0x00, 0x00, 0x78,
+ 0xfc, 0xd6, 0x64, 0x51, 0x00, 0x00, 0xc0, 0x55, 0x37, 0xce, 0x44, 0x51, 0x54, 0x55, 0x55, 0x55, 0xa5, 0x59, 0x43, 0x49, 0xef, 0x7b, 0xe2, 0xaa, 0xa4, 0x59, 0x43, 0x51, 0x95, 0x3d, 0x6d, 0x62,
+ 0x64, 0x59, 0x23, 0x49, 0xbf, 0xea, 0xbe, 0x2e, 0x45, 0x7a, 0x43, 0x51, 0xad, 0x2b, 0x8b, 0xc2, 0xe4, 0x69, 0xa3, 0x61, 0x1d, 0x29, 0x21, 0xc9, 0x66, 0x7a, 0xa3, 0x61, 0x9f, 0x3f, 0x3f, 0x26,
+ 0x25, 0x72, 0xc4, 0x69, 0xa8, 0xfa, 0xeb, 0x6e, 0x05, 0x6a, 0xa4, 0x61, 0xfa, 0xfe, 0x9e, 0xea, 0xe5, 0x69, 0xa4, 0x61, 0x2b, 0x0b, 0xa4, 0xa0, 0x05, 0x72, 0xa4, 0x61, 0xfa, 0x8b, 0xda, 0xa8,
+ 0x04, 0x6a, 0x83, 0x59, 0x5a, 0xea, 0xab, 0x88, 0x45, 0x72, 0x83, 0x59, 0xd5, 0xf5, 0xb5, 0x3f, 0x6c, 0xb4, 0x87, 0x7a, 0xbd, 0xbf, 0x2e, 0x2f, 0x6d, 0xbc, 0x28, 0x93, 0xea, 0xca, 0x62, 0xf2,
+ 0x6d, 0xb4, 0x66, 0x72, 0x2f, 0x17, 0x1e, 0xae, 0x6d, 0xac, 0xc5, 0x59, 0xd8, 0xa2, 0x28, 0x38, 0xcf, 0xbc, 0xa4, 0x59, 0x2b, 0xa8, 0xfe, 0xf5, 0x70, 0xd5, 0x84, 0x59, 0x80, 0xf7, 0x57, 0xff,
+ 0xae, 0xbc, 0x84, 0x51, 0xc0, 0xdf, 0x55, 0xee, 0xfa, 0xe6, 0xe5, 0x61, 0xe9, 0x5f, 0xb5, 0x0b, 0x1b, 0xdf, 0x06, 0x62, 0x5e, 0x2d, 0x00, 0x00, 0xfb, 0xd6, 0x50, 0x94, 0x01, 0x00, 0x00, 0x00,
+ 0xba, 0xd6, 0x99, 0xce, 0xba, 0xea, 0xfa, 0xfa, 0x99, 0xd6, 0xba, 0xce, 0xda, 0xff, 0x7f, 0xba, 0xba, 0xd6, 0x9a, 0xce, 0x7b, 0xbb, 0xea, 0xaa, 0xba, 0xd6, 0x99, 0xce, 0xaf, 0xba, 0xea, 0xab,
+ 0xba, 0xd6, 0x99, 0xce, 0xab, 0xaa, 0xae, 0xab, 0xba, 0xd6, 0x99, 0xce, 0xea, 0xaa, 0xab, 0xbb, 0xba, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xba, 0xaa, 0x99, 0xd6, 0xbb, 0xce, 0xbe, 0xff, 0xee, 0xbe,
+ 0x99, 0xd6, 0xba, 0xce, 0xfa, 0xf7, 0xeb, 0xae, 0xbb, 0xd6, 0x99, 0xce, 0xfb, 0xfa, 0xfa, 0xab, 0x99, 0xd6, 0xba, 0xce, 0xfc, 0xea, 0xdf, 0xff, 0x99, 0xd6, 0xbb, 0xce, 0xbb, 0xef, 0xbd, 0xab,
+ 0x99, 0xd6, 0xba, 0xce, 0xef, 0xfa, 0xff, 0xae, 0x9b, 0xd6, 0xb9, 0xce, 0xff, 0xff, 0xfa, 0xaf, 0xba, 0xd6, 0x99, 0xce, 0xfb, 0xff, 0xaf, 0xfb, 0xbb, 0xd6, 0x99, 0xce, 0xfe, 0xfa, 0x7f, 0xfb,
+ 0xba, 0xd6, 0x79, 0xce, 0xfa, 0xfa, 0xfb, 0xfa, 0xbb, 0xce, 0x9a, 0xce, 0x5d, 0x95, 0x5d, 0x59, 0xba, 0xd6, 0x79, 0xce, 0xaf, 0xbe, 0xff, 0xff, 0xbb, 0xd6, 0x79, 0xc6, 0xfa, 0xab, 0xaa, 0xbf,
+ 0xbb, 0xce, 0x99, 0xce, 0xf5, 0xfe, 0xff, 0x7f, 0x9a, 0xd6, 0x99, 0xc6, 0xae, 0xaf, 0xbf, 0xff, 0xba, 0xd6, 0x99, 0xc6, 0xea, 0xaf, 0xbf, 0xff, 0xbb, 0xce, 0x79, 0xce, 0xea, 0xba, 0xff, 0xbf,
+ 0xba, 0xce, 0x79, 0xce, 0xaf, 0xaf, 0xaa, 0xff, 0xba, 0xce, 0x79, 0xce, 0xab, 0xef, 0xbe, 0xff, 0xba, 0xd6, 0x79, 0xc6, 0xfe, 0xaa, 0xbf, 0xaf, 0x9a, 0xd6, 0x99, 0xc6, 0xaa, 0xeb, 0xfe, 0xfe,
+ 0x9a, 0xd6, 0xb9, 0xc6, 0xab, 0xba, 0xae, 0xaa, 0xbb, 0xd6, 0x99, 0xce, 0xfd, 0xfb, 0x5f, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xfe, 0xff, 0xff, 0xfd, 0xba, 0xd6, 0x99, 0xce, 0xbf, 0xff, 0xbf, 0xff,
+ 0x9a, 0xd6, 0xb9, 0xce, 0xeb, 0xfb, 0xff, 0xff, 0x99, 0xd6, 0xba, 0xce, 0xfe, 0xae, 0xff, 0xfd, 0xba, 0xd6, 0x99, 0xce, 0xfa, 0xef, 0xfe, 0xfe, 0x9a, 0xd6, 0xb9, 0xc6, 0xaa, 0xfa, 0xaa, 0xaa,
+ 0xba, 0xce, 0x9a, 0xce, 0xd5, 0x55, 0x55, 0x56, 0x9a, 0xd6, 0x99, 0xc6, 0xff, 0xea, 0xaa, 0xea, 0x9a, 0xd6, 0x99, 0xc6, 0xff, 0xfa, 0xff, 0xaa, 0x9a, 0xce, 0x79, 0xce, 0x20, 0x02, 0xe0, 0x00,
+ 0x3a, 0xb6, 0x1a, 0xae, 0xa8, 0xef, 0xae, 0xa8, 0x3a, 0xb6, 0x3a, 0xae, 0xaa, 0x85, 0xc0, 0x0a, 0x5b, 0xbe, 0x39, 0xae, 0xf5, 0xff, 0xbf, 0xfb, 0x5b, 0xbe, 0x19, 0xae, 0xbf, 0xff, 0xaa, 0xab,
+ 0x5b, 0xbe, 0x39, 0xae, 0xfd, 0xff, 0xaf, 0xaa, 0x5b, 0xbe, 0x19, 0xae, 0xff, 0xaa, 0xae, 0xaa, 0x5b, 0xbe, 0x39, 0xae, 0xbe, 0xaf, 0xaa, 0xab, 0x5b, 0xb6, 0x39, 0xb6, 0xb5, 0x81, 0xff, 0xef,
+ 0x5b, 0xbe, 0x3a, 0xb6, 0xdd, 0xf7, 0xba, 0xef, 0x5b, 0xbe, 0x3a, 0xb6, 0x5f, 0x6d, 0x2f, 0xab, 0x5b, 0xbe, 0x39, 0xae, 0xfe, 0xbe, 0xaa, 0xaa, 0x5b, 0xbe, 0x3a, 0xae, 0xff, 0xef, 0xaa, 0xaa,
+ 0x5b, 0xbe, 0x39, 0xb6, 0xf9, 0x7f, 0xbf, 0xfa, 0x5b, 0xbe, 0x39, 0xb6, 0xbe, 0x77, 0x8b, 0xae, 0x5a, 0xbe, 0x3a, 0xb6, 0xff, 0xf7, 0x02, 0xa2, 0x7b, 0xbe, 0x39, 0xb6, 0x7e, 0xfd, 0x8b, 0xba,
+ 0x7b, 0xbe, 0x3a, 0xb6, 0xff, 0xff, 0xab, 0xaa, 0x5b, 0xbe, 0x3a, 0xb6, 0xab, 0xa9, 0x2a, 0xa8, 0x3a, 0xbe, 0x7a, 0xb6, 0x7a, 0x3a, 0xfe, 0xaa, 0x7b, 0xbe, 0x5a, 0xb6, 0xae, 0x8b, 0x2b, 0x2a,
+ 0x7b, 0xc6, 0x59, 0xbe, 0x3b, 0xbf, 0xfa, 0xdd, 0x9b, 0xc6, 0x5a, 0xbe, 0xaa, 0x6e, 0xbd, 0xff, 0x7b, 0xc6, 0x59, 0xbe, 0x00, 0xaa, 0xbb, 0xfd, 0x9b, 0xc6, 0x5a, 0xbe, 0x28, 0xba, 0xea, 0xbd,
+ 0x9a, 0xc6, 0x5a, 0xbe, 0xa0, 0xba, 0xbf, 0xbb, 0x9b, 0xce, 0x7a, 0xc6, 0xbb, 0x5d, 0x55, 0x57, 0x9b, 0xc6, 0x5a, 0xbe, 0x8a, 0xa8, 0xae, 0xbf, 0x7b, 0xce, 0x7a, 0xbe, 0xaa, 0xbb, 0xff, 0xf5,
+ 0x9b, 0xce, 0x7a, 0xbe, 0xea, 0xff, 0xff, 0xf7, 0x9b, 0xc6, 0x5a, 0xbe, 0xba, 0xee, 0xea, 0xaa, 0xb8, 0xd6, 0x7a, 0xbe, 0x95, 0x35, 0x95, 0xd5, 0x98, 0xd6, 0xc4, 0x61, 0x55, 0x56, 0x54, 0x54,
+ 0xe4, 0x69, 0x62, 0x59, 0x5c, 0x78, 0xfa, 0xa8, 0xc4, 0x69, 0x42, 0x59, 0x5b, 0x5b, 0xae, 0x08, 0x04, 0x72, 0x63, 0x59, 0xab, 0x2d, 0xbf, 0xee, 0xe4, 0x69, 0x62, 0x61, 0xf7, 0xd6, 0xfa, 0x2b,
+ 0xe4, 0x69, 0x42, 0x59, 0x8b, 0x60, 0xfa, 0xe2, 0xe4, 0x69, 0xe2, 0x48, 0x2f, 0xad, 0xbe, 0x82, 0xe4, 0x69, 0x42, 0x51, 0x1e, 0xd7, 0xbf, 0x3e, 0x04, 0x72, 0x83, 0x69, 0xfb, 0xaf, 0xad, 0x2f,
+ 0x04, 0x6a, 0xa3, 0x61, 0xfd, 0xb6, 0xff, 0xaa, 0x04, 0x6a, 0xa3, 0x61, 0x7b, 0xed, 0x5e, 0x70, 0x04, 0x6a, 0x83, 0x61, 0xfd, 0xaa, 0xeb, 0x8e, 0x05, 0x72, 0xa3, 0x61, 0xbf, 0xbb, 0xeb, 0xbb,
+ 0x04, 0x72, 0xa3, 0x69, 0xfb, 0xfa, 0xab, 0xd6, 0x25, 0x72, 0xa3, 0x61, 0x2d, 0x3d, 0xaf, 0x2f, 0x44, 0x72, 0xa3, 0x69, 0x5b, 0xfa, 0xf0, 0x7e, 0xe4, 0x69, 0x83, 0x61, 0x02, 0x0f, 0x37, 0x2f,
+ 0xdc, 0xd6, 0x07, 0x6a, 0x25, 0x35, 0x15, 0x95, 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0x0a, 0x08, 0x0a, 0xba, 0xd6, 0x7a, 0xc6, 0xeb, 0xaa, 0xbe, 0xbf, 0xba, 0xce, 0x99, 0xc6, 0xef, 0x8b, 0xbf, 0xaa,
+ 0xba, 0xce, 0x7a, 0xce, 0xbe, 0xaa, 0xaa, 0xaa, 0x9a, 0xd6, 0x9a, 0xc6, 0xff, 0xfa, 0xaa, 0xab, 0xba, 0xd6, 0x7a, 0xc6, 0xbf, 0xea, 0xaa, 0xaa, 0x9a, 0xd6, 0x99, 0xc6, 0xff, 0xfe, 0xbe, 0xea,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xfb, 0xff, 0xaa, 0xaa, 0xba, 0xce, 0x7a, 0xc6, 0xaf, 0xab, 0xaa, 0xaa, 0xba, 0xd6, 0x9a, 0xc6, 0xdf, 0xfd, 0xbf, 0xff, 0xb9, 0xde, 0x9a, 0xce, 0x55, 0x55, 0x55, 0x35,
+ 0xdb, 0xd6, 0x65, 0x7a, 0x00, 0x80, 0x58, 0x56, 0xda, 0xde, 0x04, 0x72, 0x80, 0x55, 0x55, 0x55, 0x69, 0x8b, 0xe4, 0x69, 0x54, 0x7f, 0xff, 0x77, 0x65, 0x72, 0xe3, 0x69, 0xc1, 0xef, 0xd4, 0xfe,
+ 0x25, 0x72, 0x43, 0x51, 0xea, 0xf0, 0x7c, 0x57, 0xa4, 0x59, 0x23, 0x51, 0xbe, 0xbe, 0x27, 0x8d, 0xa4, 0x59, 0x03, 0x49, 0xe8, 0xfa, 0xba, 0x9f, 0xa4, 0x59, 0x23, 0x51, 0xd3, 0xba, 0xbf, 0xed,
+ 0x25, 0x72, 0x43, 0x59, 0xd5, 0xb5, 0x2d, 0x2d, 0x25, 0x72, 0x84, 0x61, 0xc0, 0x72, 0xf2, 0xfe, 0x46, 0x72, 0x83, 0x59, 0x7f, 0x7a, 0x62, 0x62, 0x45, 0x72, 0x43, 0x51, 0x0e, 0xa6, 0xa6, 0xa6,
+ 0x25, 0x72, 0xe4, 0x69, 0xff, 0x6f, 0x73, 0xfb, 0x25, 0x6a, 0xa4, 0x61, 0xa3, 0x6b, 0xe8, 0xfb, 0x87, 0x72, 0xc4, 0x61, 0xf5, 0x7f, 0x7f, 0xf2, 0x25, 0x6a, 0xc4, 0x61, 0x5a, 0xfa, 0xde, 0x4b,
+ 0x46, 0x6a, 0xc4, 0x61, 0xff, 0x7f, 0xa8, 0xfa, 0xeb, 0xa3, 0xa4, 0x59, 0xd5, 0x35, 0x3d, 0xbe, 0x4c, 0xb4, 0x29, 0x8b, 0xa9, 0xa8, 0xae, 0xef, 0x2f, 0xcd, 0x85, 0x72, 0xf2, 0x7a, 0x79, 0xfb,
+ 0x0f, 0xcd, 0xa6, 0x72, 0xef, 0xed, 0x2b, 0x3a, 0xae, 0xbc, 0x28, 0x8b, 0xff, 0xa9, 0x82, 0xa9, 0x32, 0xbd, 0x67, 0x72, 0xd7, 0xa4, 0xb6, 0xa0, 0xfb, 0xd6, 0x66, 0x72, 0x57, 0xf5, 0xff, 0x0a,
+ 0xfb, 0xd6, 0xa8, 0x7a, 0xbd, 0xb7, 0x02, 0x00, 0xba, 0xd6, 0x12, 0xb5, 0x01, 0x00, 0x00, 0x00, 0x99, 0xd6, 0xba, 0xce, 0xaf, 0xb6, 0xfb, 0xff, 0x99, 0xd6, 0xba, 0xce, 0xbe, 0xfe, 0x7b, 0x7f,
+ 0xda, 0xd6, 0x99, 0xce, 0xff, 0xbf, 0xff, 0xff, 0xba, 0xd6, 0x9a, 0xce, 0xbf, 0x6a, 0xab, 0xfe, 0xba, 0xd6, 0x99, 0xce, 0xbb, 0xba, 0xfe, 0xab, 0xba, 0xd6, 0x99, 0xce, 0xae, 0xee, 0xfb, 0xbb,
+ 0x99, 0xd6, 0xba, 0xce, 0xfe, 0xaf, 0xaa, 0xaf, 0xbb, 0xd6, 0x99, 0xce, 0xeb, 0xbf, 0xff, 0xea, 0x99, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xff, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xae, 0xae, 0xff, 0x7f,
+ 0x9a, 0xd6, 0xba, 0xce, 0xfe, 0xee, 0xaa, 0xff, 0x99, 0xd6, 0xba, 0xce, 0xfb, 0xab, 0xff, 0xaf, 0x99, 0xd6, 0xbb, 0xce, 0xeb, 0xeb, 0xaa, 0xaf, 0x99, 0xd6, 0xbb, 0xce, 0xbf, 0xaa, 0xaf, 0xbb,
+ 0x99, 0xd6, 0xba, 0xce, 0xfa, 0xae, 0xfa, 0xbe, 0xbb, 0xd6, 0x99, 0xce, 0xfa, 0xbe, 0xff, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xbf, 0xbe, 0xba, 0xef, 0x99, 0xd6, 0xba, 0xce, 0xfa, 0xff, 0xab, 0xfa,
+ 0x9a, 0xd6, 0xba, 0xce, 0xaa, 0xca, 0xfe, 0xaf, 0xba, 0xd6, 0x99, 0xce, 0xfb, 0x7b, 0xff, 0x77, 0xba, 0xd6, 0x7a, 0xce, 0xff, 0xfa, 0xfe, 0xff, 0x9b, 0xd6, 0x99, 0xc6, 0xbb, 0xee, 0xaa, 0xaa,
+ 0xba, 0xce, 0x99, 0xce, 0x67, 0x7f, 0xdf, 0xf5, 0xba, 0xce, 0x99, 0xc6, 0xfb, 0xe8, 0xae, 0xae, 0xba, 0xce, 0x99, 0xce, 0x5f, 0xef, 0x5d, 0xfc, 0x9a, 0xce, 0x79, 0xce, 0x00, 0x30, 0x20, 0x00,
+ 0xbb, 0xd6, 0x79, 0xc6, 0xeb, 0xff, 0xae, 0xba, 0xbb, 0xd6, 0x79, 0xc6, 0xfe, 0xfe, 0xfb, 0xfa, 0xbb, 0xce, 0x79, 0xce, 0xeb, 0xef, 0xff, 0xeb, 0xba, 0xce, 0x7a, 0xce, 0xab, 0xbf, 0xaf, 0xef,
+ 0xba, 0xce, 0x9a, 0xc6, 0xfb, 0xae, 0xaf, 0xa8, 0xba, 0xd6, 0x9a, 0xce, 0x55, 0x75, 0x57, 0xdf, 0x9a, 0xd6, 0xb9, 0xc6, 0xaa, 0xea, 0xba, 0xba, 0xba, 0xd6, 0x99, 0xce, 0xfe, 0xff, 0xf5, 0xfd,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xfd, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0xff, 0x77, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xf7, 0xff, 0xbf, 0xfb, 0x9a, 0xd6, 0xb9, 0xce, 0xea, 0xff, 0x7a, 0xbe,
+ 0xba, 0xd6, 0x99, 0xce, 0x7f, 0x6f, 0xdf, 0xf7, 0xba, 0xce, 0x9a, 0xce, 0x55, 0xa5, 0x55, 0xe7, 0xbb, 0xce, 0x99, 0xce, 0x75, 0xf6, 0xff, 0xff, 0x9a, 0xce, 0x7a, 0xce, 0x20, 0x00, 0xb0, 0x00,
+ 0x3a, 0xb6, 0x1a, 0xae, 0x00, 0x5f, 0xd5, 0xdf, 0x3b, 0xb6, 0xf9, 0xa5, 0x0a, 0xaa, 0xea, 0xaa, 0x3a, 0xb6, 0x1a, 0xae, 0x00, 0xfa, 0xf7, 0xdd, 0x3b, 0xb6, 0x1a, 0xae, 0x08, 0xfd, 0x75, 0x75,
+ 0x3b, 0xb6, 0x1a, 0xae, 0x08, 0xae, 0xdf, 0xfa, 0x5b, 0xb6, 0x19, 0xae, 0x2e, 0xff, 0xdf, 0xb7, 0x3b, 0xb6, 0x19, 0xae, 0x02, 0xab, 0xbf, 0xab, 0x5a, 0xbe, 0x1a, 0xae, 0x2a, 0xef, 0x7f, 0xdf,
+ 0x5a, 0xb6, 0x3a, 0xae, 0xc0, 0xe8, 0xbd, 0xa9, 0x5b, 0xbe, 0x39, 0xae, 0xaa, 0xbb, 0xff, 0xff, 0x5b, 0xbe, 0x39, 0xb6, 0xfc, 0xaf, 0xbf, 0xee, 0x5b, 0xbe, 0x39, 0xb6, 0xbf, 0x9e, 0xbf, 0xff,
+ 0x5b, 0xb6, 0x3a, 0xb6, 0x6b, 0x79, 0x86, 0xbd, 0x5b, 0xbe, 0x3a, 0xb6, 0xdd, 0xdd, 0xbb, 0xef, 0x7a, 0xbe, 0x3a, 0xb6, 0xbe, 0xef, 0xff, 0xab, 0x7b, 0xbe, 0x5a, 0xb6, 0x5d, 0x5f, 0x5d, 0xae,
+ 0x7b, 0xbe, 0x5a, 0xb6, 0xb5, 0xbf, 0xbf, 0x02, 0x7b, 0xc6, 0x59, 0xb6, 0xff, 0xff, 0xfb, 0xaa, 0x7b, 0xbe, 0x5a, 0xb6, 0x76, 0xae, 0x2a, 0x8a, 0x7b, 0xc6, 0x59, 0xb6, 0xff, 0xff, 0xaf, 0xaa,
+ 0x7b, 0xbe, 0x39, 0xb6, 0x0a, 0xad, 0x8a, 0xa2, 0x7b, 0xc6, 0x5a, 0xbe, 0xf7, 0xc3, 0xf7, 0x55, 0x7b, 0xc6, 0x59, 0xbe, 0xec, 0xfa, 0x77, 0x7f, 0x7b, 0xbe, 0x5a, 0xb6, 0x2b, 0xab, 0x6b, 0xfe,
+ 0x7a, 0xbe, 0x5a, 0xb6, 0x80, 0xeb, 0xbf, 0xab, 0x7b, 0xbe, 0x5a, 0xb6, 0x00, 0x83, 0x8a, 0xda, 0x7b, 0xbe, 0x5a, 0xbe, 0x1c, 0xaa, 0xa3, 0xe6, 0x7b, 0xc6, 0x5a, 0xbe, 0xba, 0xaf, 0xb5, 0x0b,
+ 0x9b, 0xc6, 0x5a, 0xbe, 0xab, 0xef, 0xbe, 0xae, 0x9b, 0xc6, 0x59, 0xbe, 0xbe, 0xff, 0xee, 0xa8, 0x9a, 0xc6, 0x7a, 0xbe, 0xed, 0xd5, 0xff, 0x8a, 0xfa, 0xd6, 0x46, 0x62, 0x5c, 0x58, 0x50, 0x50,
+ 0x46, 0x72, 0x83, 0x61, 0x5e, 0x7e, 0xfa, 0xe8, 0xe5, 0x69, 0x64, 0x59, 0x28, 0xaa, 0xa6, 0x00, 0xe4, 0x69, 0x43, 0x59, 0xe0, 0xf8, 0xf8, 0x78, 0xc4, 0x69, 0x42, 0x51, 0x0a, 0x02, 0xab, 0xfd,
+ 0xe4, 0x71, 0x83, 0x61, 0xea, 0xa0, 0xab, 0x2d, 0x25, 0x72, 0xc4, 0x61, 0xfd, 0x7f, 0x62, 0x42, 0x25, 0x72, 0xa4, 0x61, 0xbf, 0x37, 0xaf, 0x0d, 0x05, 0x72, 0xc4, 0x61, 0x0a, 0x2a, 0xac, 0x68,
+ 0x05, 0x72, 0xa3, 0x69, 0xf7, 0xfc, 0xdd, 0xa6, 0x04, 0x72, 0xc3, 0x61, 0xeb, 0xff, 0xff, 0xfe, 0xe4, 0x71, 0xa3, 0x69, 0xa3, 0xbf, 0xfc, 0x37, 0xe4, 0x71, 0xa3, 0x61, 0xaa, 0xf8, 0xfa, 0x7e,
+ 0xe4, 0x71, 0x63, 0x61, 0xa0, 0xaa, 0xfa, 0x5e, 0x65, 0x7a, 0x62, 0x61, 0xaf, 0x2f, 0x2d, 0xa7, 0x25, 0x72, 0x83, 0x61, 0xf8, 0xfc, 0xfe, 0xf6, 0x05, 0x6a, 0xa3, 0x61, 0x3d, 0x35, 0x9d, 0xaf,
+ 0x4e, 0x7b, 0xc4, 0x61, 0x3d, 0xfd, 0xff, 0x55, 0xfc, 0xde, 0x08, 0x62, 0x00, 0x00, 0x01, 0x25, 0xba, 0xce, 0x79, 0xce, 0xaa, 0xbf, 0xab, 0xab, 0xba, 0xce, 0x99, 0xce, 0xe9, 0xff, 0x7e, 0x7d,
+ 0xbb, 0xd6, 0x99, 0xce, 0x7f, 0xff, 0x7f, 0xff, 0xba, 0xd6, 0x79, 0xce, 0xba, 0xfe, 0xef, 0xba, 0xbb, 0xd6, 0x99, 0xce, 0xbf, 0xfb, 0xff, 0xfd, 0x99, 0xd6, 0xba, 0xce, 0xbe, 0xff, 0xba, 0xfa,
+ 0x99, 0xd6, 0xba, 0xce, 0xaf, 0xab, 0xff, 0xaf, 0x99, 0xd6, 0xba, 0xce, 0xeb, 0xaa, 0xd6, 0xfe, 0x99, 0xd6, 0xba, 0xce, 0xbe, 0xfe, 0x8b, 0xaf, 0xda, 0xde, 0x86, 0x7a, 0x60, 0x50, 0x5c, 0x54,
+ 0xa6, 0x82, 0x45, 0x72, 0xa8, 0xea, 0xfe, 0xde, 0xa6, 0x82, 0x45, 0x7a, 0x8b, 0xbb, 0x7f, 0x7f, 0xa6, 0x82, 0x45, 0x7a, 0x52, 0x7f, 0x75, 0xfd, 0x24, 0x7a, 0x43, 0x51, 0xa0, 0xfc, 0xfe, 0x5e,
+ 0xa4, 0x59, 0x23, 0x51, 0x78, 0xfa, 0xea, 0xd7, 0xc4, 0x61, 0x43, 0x51, 0xcd, 0x79, 0x5f, 0x96, 0xa4, 0x61, 0x03, 0x49, 0xdf, 0x8b, 0xb7, 0xaa, 0xa4, 0x69, 0x23, 0x49, 0x77, 0xdf, 0xff, 0x22,
+ 0x25, 0x72, 0x23, 0x49, 0x2f, 0xaf, 0x0d, 0x82, 0x05, 0x72, 0x83, 0x61, 0xb4, 0xf6, 0xaa, 0xab, 0x05, 0x6a, 0x84, 0x61, 0xaa, 0xa8, 0xad, 0x2a, 0x46, 0x6a, 0x43, 0x51, 0x26, 0xbe, 0xdf, 0xda,
+ 0x06, 0x6a, 0xc4, 0x51, 0xa8, 0x5f, 0x8a, 0x02, 0x05, 0x6a, 0x84, 0x49, 0x7e, 0x7f, 0x20, 0x28, 0x25, 0x6a, 0xc4, 0x51, 0xf8, 0x6f, 0x00, 0x00, 0x25, 0x6a, 0xa3, 0x59, 0x5e, 0xdf, 0xe8, 0xfa,
+ 0x25, 0x6a, 0xc4, 0x61, 0x6d, 0x27, 0x3d, 0xeb, 0x8a, 0x93, 0xe5, 0x69, 0x89, 0x2b, 0x29, 0x2b, 0x2c, 0xac, 0xe7, 0x8a, 0xe2, 0x96, 0x24, 0x26, 0x8e, 0xbc, 0x28, 0x8b, 0x4a, 0x48, 0x48, 0x62,
+ 0x4c, 0xac, 0xc7, 0x82, 0x10, 0x3a, 0xb8, 0x98, 0x50, 0xcd, 0x8a, 0x93, 0x89, 0xeb, 0xaf, 0x7f, 0xba, 0xd6, 0x6e, 0xac, 0x0b, 0x0f, 0x05, 0x05, 0xba, 0xd6, 0x99, 0xce, 0xfb, 0xbb, 0xba, 0xaa,
+ 0x9a, 0xd6, 0xba, 0xce, 0xb6, 0xeb, 0xab, 0xfb, 0x9a, 0xd6, 0xba, 0xce, 0xea, 0xba, 0xfe, 0xfe, 0xba, 0xd6, 0x99, 0xce, 0xea, 0xaa, 0xba, 0xae, 0xba, 0xd6, 0x99, 0xce, 0xae, 0xaa, 0xab, 0xaa,
+ 0x99, 0xd6, 0xba, 0xce, 0xfb, 0xfd, 0xab, 0xab, 0x99, 0xd6, 0xba, 0xce, 0xaf, 0xff, 0xba, 0xfe, 0x9a, 0xd6, 0xba, 0xce, 0xff, 0xab, 0xfa, 0xbe, 0x9a, 0xd6, 0xba, 0xce, 0xf8, 0xaf, 0xbf, 0xba,
+ 0x9a, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xfe, 0xbe, 0x99, 0xd6, 0xba, 0xce, 0xbf, 0xff, 0xeb, 0xaa, 0xbb, 0xd6, 0x99, 0xce, 0xfe, 0xbf, 0xfb, 0xee, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xfd, 0xef,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xfa, 0xff, 0xba, 0xce, 0x99, 0xce, 0x3f, 0xff, 0xef, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xbf, 0xff, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xfb, 0xef, 0xfb, 0xf7,
+ 0xbb, 0xce, 0x99, 0xce, 0xbf, 0x77, 0xef, 0xfa, 0x9b, 0xd6, 0xb9, 0xce, 0xad, 0xfe, 0xfb, 0x0f, 0xba, 0xce, 0x79, 0xce, 0xea, 0xbe, 0xaa, 0xab, 0xba, 0xce, 0x9a, 0xce, 0xe7, 0xd7, 0x75, 0x15,
+ 0xba, 0xce, 0x99, 0xce, 0xdd, 0xcd, 0x7f, 0xfe, 0xbb, 0xce, 0x99, 0xce, 0xff, 0xff, 0xff, 0x7e, 0xbb, 0xd6, 0x79, 0xce, 0xbf, 0xff, 0xff, 0xff, 0xba, 0xce, 0x9a, 0xce, 0x57, 0xdd, 0xb5, 0x55,
+ 0xba, 0xd6, 0x7a, 0xce, 0xaf, 0xfe, 0xff, 0xff, 0xba, 0xce, 0x99, 0xce, 0x5d, 0x55, 0xfb, 0xd5, 0xbb, 0xd6, 0x79, 0xc6, 0xea, 0xbb, 0xee, 0xfb, 0xbb, 0xd6, 0x79, 0xce, 0xef, 0xbf, 0xff, 0xff,
+ 0xba, 0xce, 0x9a, 0xce, 0xb5, 0xd5, 0x55, 0x55, 0xba, 0xce, 0x79, 0xce, 0xfa, 0xba, 0xea, 0xbe, 0xbb, 0xce, 0x79, 0xce, 0xee, 0xbb, 0xef, 0xaa, 0x9a, 0xd6, 0x7a, 0xc6, 0xba, 0xaa, 0xea, 0xfa,
+ 0xba, 0xd6, 0x79, 0xc6, 0xbe, 0xae, 0xef, 0xab, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xce, 0x99, 0xc6, 0xea, 0xab, 0xaf, 0xbf, 0xba, 0xce, 0x99, 0xce, 0xff, 0xff, 0xfa, 0xbf,
+ 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xaf, 0xff, 0xff, 0xba, 0xd6, 0x99, 0xce, 0x77, 0xff, 0xff, 0xd7, 0xba, 0xce, 0x99, 0xce, 0x55, 0x7b, 0xbd, 0x7d,
+ 0xbb, 0xd6, 0x99, 0xce, 0x7f, 0xfd, 0xf7, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0x7f, 0xff, 0x7f, 0xff, 0xbb, 0xce, 0x79, 0xce, 0xae, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x99, 0xc6, 0xbf, 0xaf, 0xee, 0xfb,
+ 0x1a, 0xb6, 0xfa, 0xad, 0x2f, 0xfb, 0xaf, 0x0a, 0x3b, 0xb6, 0x1a, 0xae, 0x76, 0xdd, 0x95, 0xab, 0x3b, 0xb6, 0x19, 0xae, 0xfd, 0xff, 0xab, 0xa8, 0x3b, 0xb6, 0x1a, 0xae, 0xfb, 0xef, 0x8a, 0x00,
+ 0x5b, 0xb6, 0x19, 0xae, 0x7d, 0xbf, 0xbb, 0x28, 0x5b, 0xb6, 0x19, 0xae, 0xe5, 0xee, 0xab, 0xa8, 0x5b, 0xbe, 0x3a, 0xae, 0xdf, 0xff, 0xbf, 0xaa, 0x5b, 0xbe, 0x39, 0xae, 0xff, 0xff, 0xaf, 0xab,
+ 0x3a, 0xbe, 0x5a, 0xb6, 0xfe, 0xff, 0xaa, 0xde, 0x5b, 0xbe, 0x39, 0xb6, 0xff, 0xbf, 0xae, 0x88, 0x5b, 0xbe, 0x3a, 0xb6, 0xeb, 0x8f, 0x28, 0x00, 0x7a, 0xbe, 0x3a, 0xb6, 0xdf, 0x7f, 0xbb, 0xa2,
+ 0x7a, 0xbe, 0x3a, 0xb6, 0x5f, 0xff, 0xaa, 0x00, 0x7a, 0xbe, 0x5a, 0xb6, 0x7d, 0x57, 0xaf, 0x80, 0x7b, 0xc6, 0x3a, 0xb6, 0xbb, 0x9f, 0xab, 0xaa, 0x7b, 0xc6, 0x59, 0xb6, 0xbf, 0xbf, 0xbb, 0x2a,
+ 0x9b, 0xc6, 0x59, 0xbe, 0xff, 0xeb, 0xbf, 0x2a, 0x9b, 0xc6, 0x79, 0xbe, 0xef, 0xab, 0x8a, 0x2a, 0x9b, 0xce, 0x7a, 0xbe, 0x7f, 0xde, 0xeb, 0xaa, 0x9b, 0xc6, 0x7a, 0xbe, 0x75, 0xfa, 0x88, 0x08,
+ 0x9b, 0xc6, 0x5a, 0xbe, 0xf5, 0xba, 0xa2, 0x00, 0x9a, 0xce, 0x5a, 0xbe, 0xdd, 0xae, 0xaa, 0x02, 0x9b, 0xce, 0x7a, 0xc6, 0x55, 0xeb, 0xee, 0xab, 0x9b, 0xce, 0x7a, 0xbe, 0x7f, 0xfa, 0xaa, 0x2a,
+ 0x9b, 0xce, 0x5a, 0xbe, 0x7f, 0xbe, 0xaa, 0xaa, 0x9b, 0xc6, 0x59, 0xbe, 0xf7, 0xaa, 0x88, 0x00, 0x9b, 0xce, 0x7a, 0xbe, 0xdf, 0xaf, 0xaa, 0xaa, 0x9a, 0xce, 0x7b, 0xc6, 0xdd, 0xbf, 0xff, 0xbb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0x8f, 0xee, 0x2a, 0x9a, 0xce, 0x9a, 0xc6, 0xfb, 0xab, 0xa2, 0xa2, 0xba, 0xce, 0x7a, 0xc6, 0xff, 0xfb, 0xba, 0xae, 0xfb, 0xd6, 0x66, 0x6a, 0x40, 0x40, 0xc0, 0x80,
+ 0x87, 0x72, 0xc4, 0x69, 0xba, 0xf8, 0x78, 0xa8, 0x25, 0x6a, 0xa4, 0x61, 0x70, 0xa8, 0x98, 0xfa, 0x05, 0x72, 0x63, 0x59, 0x7e, 0x7a, 0xaa, 0x88, 0xe4, 0x61, 0x43, 0x59, 0x7d, 0xab, 0xaa, 0x82,
+ 0xa4, 0x61, 0x43, 0x59, 0x09, 0x2a, 0xc0, 0x2a, 0x25, 0x72, 0x83, 0x61, 0xaa, 0x83, 0xaf, 0xf7, 0x66, 0x72, 0xa4, 0x69, 0xaf, 0x2f, 0xbd, 0x55, 0x45, 0x72, 0xc4, 0x61, 0xae, 0x2c, 0xed, 0x75,
+ 0x25, 0x72, 0xa3, 0x61, 0xff, 0xec, 0x5f, 0xff, 0xe4, 0x69, 0x83, 0x61, 0xee, 0x3a, 0xda, 0xfe, 0x04, 0x72, 0xa3, 0x69, 0xaf, 0xb3, 0x57, 0xa7, 0xe4, 0x69, 0x63, 0x61, 0xbc, 0x3a, 0x2d, 0x55,
+ 0x04, 0x72, 0x63, 0x59, 0xfe, 0xf8, 0x5a, 0x7d, 0x05, 0x72, 0x83, 0x59, 0x3f, 0xf5, 0xd5, 0xbf, 0xe4, 0x69, 0x63, 0x59, 0x28, 0xee, 0x71, 0x82, 0x04, 0x6a, 0x43, 0x59, 0xa0, 0xfd, 0xbd, 0xaf,
+ 0x05, 0x6a, 0xa4, 0x61, 0xdb, 0x95, 0xfb, 0x3f, 0x6d, 0x83, 0xa3, 0x61, 0x3d, 0xfd, 0xfd, 0xff, 0xfc, 0xde, 0x07, 0x6a, 0x00, 0x09, 0x15, 0x55, 0xda, 0xd6, 0xd8, 0xc5, 0xaa, 0xaa, 0xa8, 0xa1,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xff, 0xbf, 0x9a, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0xfa, 0xbf, 0x9a, 0xd6, 0xb9, 0xce, 0xfb, 0xaa, 0xff, 0xfa, 0xba, 0xd6, 0x99, 0xce, 0xed, 0xfe, 0xbf, 0xff,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xaf, 0xef, 0xff, 0x99, 0xd6, 0xba, 0xce, 0xeb, 0xff, 0xff, 0xaa, 0x99, 0xd6, 0xba, 0xce, 0xaf, 0x8b, 0xaf, 0xbe, 0xfa, 0xe6, 0x66, 0x72, 0x54, 0x54, 0x54, 0x54,
+ 0x86, 0x82, 0x25, 0x72, 0xbf, 0xbe, 0x2b, 0xeb, 0x66, 0x7a, 0xe5, 0x69, 0xa0, 0xe2, 0xf8, 0x7a, 0x45, 0x7a, 0x43, 0x51, 0x80, 0xea, 0x7a, 0x5e, 0x64, 0x59, 0x03, 0x49, 0x88, 0xe0, 0x7a, 0x7a,
+ 0x64, 0x51, 0xe3, 0x48, 0xbe, 0x2f, 0x89, 0xab, 0x64, 0x51, 0x23, 0x41, 0x2c, 0xfe, 0x7d, 0x77, 0xc4, 0x69, 0x23, 0x49, 0xbf, 0x8d, 0x2d, 0xad, 0xe3, 0x69, 0xa4, 0x61, 0xef, 0xd7, 0x2f, 0xa7,
+ 0xe4, 0x71, 0xa3, 0x61, 0xeb, 0x5b, 0xff, 0xfd, 0x04, 0x6a, 0xc4, 0x61, 0x01, 0xfb, 0x75, 0xb5, 0x05, 0x6a, 0xc4, 0x61, 0xe8, 0x7f, 0x73, 0x2a, 0x05, 0x6a, 0x23, 0x49, 0xba, 0xf0, 0x7a, 0x68,
+ 0x26, 0x6a, 0xa4, 0x61, 0xea, 0xfa, 0x63, 0x7b, 0x05, 0x6a, 0xa4, 0x61, 0x2a, 0x2f, 0x1a, 0xfb, 0x46, 0x72, 0xe5, 0x69, 0x89, 0x43, 0x5d, 0x55, 0x04, 0x6a, 0x83, 0x61, 0xe8, 0x6a, 0xaa, 0x02,
+ 0xc7, 0x72, 0xa4, 0x61, 0xfd, 0xff, 0xab, 0x2b, 0x8a, 0x9b, 0x66, 0x72, 0x39, 0x3f, 0x2a, 0x0a, 0x4c, 0xac, 0x8a, 0x9b, 0x25, 0x2d, 0x29, 0x2b, 0xef, 0xc4, 0xc7, 0x82, 0x4a, 0xe8, 0xca, 0x4a,
+ 0x0c, 0xac, 0xc7, 0x82, 0x9c, 0xba, 0xb3, 0xb1, 0xef, 0xc4, 0xcb, 0x9b, 0xf7, 0xfe, 0xf4, 0xec, 0xda, 0xd6, 0x4e, 0xa4, 0x09, 0x09, 0x01, 0x01, 0xbb, 0xd6, 0x99, 0xce, 0xaa, 0xaa, 0xa0, 0x80,
+ 0xda, 0xd6, 0x9a, 0xce, 0xfb, 0xea, 0xaf, 0xaf, 0x9a, 0xd6, 0xba, 0xce, 0xef, 0xaa, 0xff, 0xfe, 0x99, 0xd6, 0xbb, 0xce, 0xbf, 0xff, 0xea, 0xff, 0x9b, 0xd6, 0xb9, 0xce, 0xbf, 0xde, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x99, 0xce, 0xea, 0xab, 0xaa, 0xaa, 0x9a, 0xd6, 0xba, 0xce, 0xda, 0xd5, 0xba, 0xff, 0x9a, 0xd6, 0xba, 0xce, 0xfa, 0xab, 0x2b, 0xad, 0xba, 0xd6, 0x9a, 0xce, 0xff, 0x8b, 0xae, 0x8a,
+ 0x99, 0xd6, 0xbb, 0xce, 0xaf, 0xeb, 0xfa, 0xbf, 0x99, 0xd6, 0xba, 0xce, 0xba, 0xbf, 0xaf, 0x7e, 0x99, 0xd6, 0xbb, 0xce, 0xfe, 0xfe, 0xfe, 0xeb, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xfa, 0xfe, 0xff,
+ 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xfb, 0xfa, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xef, 0xef, 0xdb, 0xbb, 0xd6, 0x99, 0xce, 0x7f, 0xf7, 0xff, 0xfe, 0xba, 0xd6, 0x79, 0xce, 0xbe, 0xbf, 0xef, 0xfa,
+ 0xba, 0xce, 0x9a, 0xce, 0x5e, 0x7f, 0x57, 0xb7, 0xba, 0xd6, 0x9a, 0xce, 0xd7, 0x55, 0xf5, 0x57, 0xba, 0xd6, 0x9a, 0xce, 0x55, 0x55, 0xf5, 0xbf, 0xba, 0xce, 0x9a, 0xce, 0xd5, 0xfb, 0x5f, 0x57,
+ 0xba, 0xce, 0x9a, 0xce, 0xdc, 0xd7, 0x57, 0x75, 0xbb, 0xd6, 0x9a, 0xc6, 0xfe, 0xbf, 0xef, 0xff, 0xba, 0xce, 0x7a, 0xce, 0xae, 0xab, 0xea, 0xaa, 0xbb, 0xce, 0x79, 0xce, 0xee, 0xab, 0xaa, 0xea,
+ 0x9b, 0xd6, 0x79, 0xce, 0xef, 0xfe, 0xef, 0xaa, 0xbb, 0xd6, 0x79, 0xc6, 0xff, 0xea, 0xff, 0xab, 0x9a, 0xce, 0x7a, 0xce, 0x02, 0x58, 0x00, 0x00, 0xba, 0xce, 0x7a, 0xce, 0xea, 0xbf, 0xea, 0xff,
+ 0xbb, 0xd6, 0x79, 0xc6, 0xaf, 0xbb, 0xff, 0xee, 0x9b, 0xd6, 0x99, 0xc6, 0xeb, 0xaa, 0xea, 0xfb, 0xbb, 0xce, 0x9a, 0xce, 0x6d, 0x55, 0x55, 0x95, 0xbb, 0xce, 0x9a, 0xce, 0xed, 0x6d, 0x55, 0x5f,
+ 0xba, 0xd6, 0x79, 0xce, 0xff, 0xbf, 0xee, 0xff, 0xba, 0xd6, 0x99, 0xc6, 0xbf, 0xff, 0xff, 0xff, 0xba, 0xce, 0x79, 0xce, 0xbe, 0xbf, 0xaa, 0xea, 0xba, 0xce, 0x7a, 0xce, 0xfe, 0xaa, 0xbe, 0xaa,
+ 0xbb, 0xd6, 0x99, 0xc6, 0xfe, 0xbb, 0xff, 0xbf, 0x7a, 0xd6, 0xba, 0xce, 0xeb, 0xfe, 0xbf, 0xf7, 0xba, 0xd6, 0x9a, 0xce, 0x77, 0x55, 0x75, 0xdd, 0xbb, 0xd6, 0x7a, 0xce, 0xff, 0xff, 0xef, 0xee,
+ 0xba, 0xd6, 0x9a, 0xce, 0x5d, 0x5d, 0x55, 0xf5, 0xbb, 0xd6, 0x79, 0xc6, 0xab, 0xba, 0xba, 0xea, 0xba, 0xce, 0x9a, 0xce, 0x77, 0x55, 0xbf, 0xdf, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x7e, 0xde, 0x65,
+ 0x5b, 0xb6, 0x19, 0xae, 0x7f, 0xef, 0xab, 0x82, 0x5b, 0xbe, 0x19, 0xae, 0xbf, 0xab, 0xaa, 0x02, 0x5b, 0xbe, 0x1a, 0xb6, 0xbf, 0xaf, 0xaa, 0x02, 0x5a, 0xbe, 0x39, 0xb6, 0xb1, 0xaa, 0x20, 0x00,
+ 0x7b, 0xbe, 0x3a, 0xb6, 0xaf, 0x8b, 0xa2, 0x80, 0x7a, 0xc6, 0x59, 0xbe, 0x5d, 0xfd, 0xaa, 0xaa, 0x9a, 0xc6, 0x59, 0xbe, 0x55, 0x7f, 0xfb, 0xaa, 0x7a, 0xc6, 0x5a, 0xbe, 0x7d, 0xfd, 0xef, 0x00,
+ 0x7a, 0xc6, 0x5a, 0xbe, 0xd5, 0xbf, 0x8a, 0x00, 0x7b, 0xc6, 0x59, 0xbe, 0x19, 0xfe, 0xaa, 0x00, 0x7b, 0xc6, 0x5a, 0xbe, 0xbe, 0x2a, 0x00, 0x00, 0x9a, 0xc6, 0x5a, 0xbe, 0xbf, 0xbe, 0xa8, 0xaa,
+ 0x9a, 0xce, 0x5a, 0xc6, 0xff, 0xff, 0xea, 0xba, 0x9b, 0xce, 0x79, 0xbe, 0x7f, 0xef, 0xaa, 0xea, 0x9a, 0xce, 0x7a, 0xc6, 0x55, 0x57, 0xae, 0xae, 0x9a, 0xce, 0x79, 0xc6, 0x75, 0xff, 0xfb, 0xbb,
+ 0x79, 0xce, 0x9b, 0xc6, 0x6a, 0xff, 0xb2, 0xaa, 0x79, 0xce, 0x9b, 0xc6, 0xf6, 0xaf, 0xbb, 0xba, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xff, 0xaa, 0x3a, 0x9a, 0xce, 0x7a, 0xc6, 0xff, 0xae, 0xa8, 0xaa,
+ 0x9a, 0xce, 0x7a, 0xce, 0xfd, 0x5e, 0xaa, 0x20, 0x79, 0xce, 0x9a, 0xc6, 0xf7, 0x3e, 0x8b, 0xaf, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x20, 0xa2, 0xa8, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0x8a, 0x00, 0x80,
+ 0x9a, 0xce, 0x7a, 0xc6, 0x8a, 0x8a, 0x2a, 0x02, 0xba, 0xce, 0x79, 0xc6, 0xfe, 0xab, 0xab, 0xba, 0xba, 0xce, 0x79, 0xc6, 0xfe, 0xba, 0xbe, 0xae, 0xba, 0xce, 0x79, 0xc6, 0xfb, 0xaa, 0xaa, 0xaa,
+ 0xba, 0xce, 0x99, 0xc6, 0xef, 0xff, 0xfe, 0xbf, 0xbb, 0xd6, 0x79, 0xc6, 0xbf, 0xff, 0xbe, 0xae, 0xba, 0xce, 0x79, 0xc6, 0xea, 0xba, 0xaa, 0xae, 0xf8, 0xe6, 0x9a, 0xce, 0x95, 0x95, 0x15, 0x95,
+ 0xa8, 0x72, 0x06, 0x6a, 0xed, 0xfa, 0x5a, 0x70, 0x05, 0x72, 0xc4, 0x59, 0x8a, 0x7a, 0x00, 0xea, 0x26, 0x6a, 0xc4, 0x61, 0x7d, 0x75, 0x3a, 0xa6, 0x45, 0x6a, 0x83, 0x59, 0x7f, 0x7e, 0x78, 0x7b,
+ 0xc4, 0x61, 0x83, 0x59, 0x6e, 0xeb, 0x9e, 0x2e, 0x05, 0x6a, 0x63, 0x59, 0xbf, 0x0f, 0x37, 0x7f, 0xc4, 0x69, 0x83, 0x61, 0xb3, 0xf1, 0x4f, 0xa5, 0x45, 0x72, 0xa3, 0x61, 0xfb, 0x5d, 0xde, 0xf2,
+ 0x25, 0x72, 0x83, 0x61, 0x9c, 0xff, 0x7e, 0xfe, 0x66, 0x7a, 0xa4, 0x61, 0xff, 0xfd, 0xe1, 0xc3, 0x86, 0x7a, 0xa3, 0x61, 0x7f, 0x5f, 0x2b, 0x82, 0x45, 0x7a, 0x83, 0x61, 0xd5, 0xa5, 0x8a, 0xaa,
+ 0xe4, 0x71, 0x83, 0x61, 0x5a, 0xaa, 0xea, 0x60, 0xa4, 0x69, 0x43, 0x51, 0x0a, 0xa0, 0xfe, 0x57, 0x04, 0x6a, 0x23, 0x51, 0x82, 0x82, 0xcb, 0x89, 0xc4, 0x61, 0x63, 0x59, 0x3e, 0xb7, 0xdd, 0x5f,
+ 0xe4, 0x69, 0x63, 0x61, 0xa0, 0xea, 0xb9, 0x0b, 0xe5, 0x69, 0xa3, 0x61, 0x02, 0x03, 0x8d, 0xca, 0x25, 0x6a, 0xa4, 0x61, 0x02, 0xbe, 0xaa, 0xa9, 0xdc, 0xde, 0xc6, 0x61, 0x09, 0x25, 0xd5, 0x55,
+ 0x1c, 0xdf, 0x31, 0x9c, 0x2a, 0x22, 0x88, 0x81, 0xbb, 0xd6, 0x99, 0xce, 0xef, 0xff, 0xff, 0x3e, 0xbb, 0xd6, 0x99, 0xce, 0xaf, 0xea, 0xef, 0xa2, 0xbb, 0xd6, 0x99, 0xce, 0xbe, 0xee, 0xff, 0xbb,
+ 0x99, 0xd6, 0xba, 0xce, 0xbf, 0xfa, 0xbe, 0xba, 0x99, 0xd6, 0xba, 0xce, 0xfe, 0x8b, 0xbe, 0xba, 0x99, 0xd6, 0xba, 0xce, 0x2e, 0x2b, 0x2a, 0xa6, 0xfa, 0xee, 0x25, 0x72, 0x54, 0x56, 0x56, 0x54,
+ 0x65, 0x7a, 0x26, 0x72, 0x82, 0x8a, 0x7e, 0xef, 0x45, 0x72, 0x84, 0x59, 0xa0, 0xa0, 0x78, 0x6c, 0xc4, 0x61, 0x23, 0x49, 0x5c, 0xde, 0x57, 0x5d, 0x64, 0x51, 0x03, 0x49, 0x7f, 0xec, 0x55, 0x55,
+ 0x64, 0x51, 0x03, 0x49, 0xeb, 0x5b, 0xfc, 0x5a, 0x24, 0x49, 0x02, 0x41, 0xf2, 0x30, 0xee, 0xbe, 0xa4, 0x61, 0x23, 0x49, 0x2d, 0x3d, 0xb5, 0x95, 0xe4, 0x69, 0x63, 0x61, 0xcb, 0xfd, 0xd5, 0xff,
+ 0xc4, 0x69, 0x83, 0x61, 0xba, 0x6a, 0x3a, 0xfa, 0xe5, 0x69, 0xa4, 0x61, 0x20, 0x2d, 0x26, 0x8f, 0x26, 0x72, 0xe4, 0x69, 0xf9, 0xbd, 0xdf, 0x29, 0x05, 0x6a, 0x02, 0x39, 0xe0, 0x60, 0x60, 0x68,
+ 0x05, 0x62, 0x63, 0x51, 0x62, 0xc2, 0xe2, 0xe2, 0xc4, 0x69, 0x05, 0x62, 0xa8, 0xaf, 0xfa, 0x7b, 0x25, 0x6a, 0xe6, 0x61, 0xbb, 0x9f, 0xff, 0x2f, 0x26, 0x6a, 0xe5, 0x61, 0x0f, 0x37, 0x3e, 0xaa,
+ 0x09, 0x83, 0x06, 0x6a, 0x3d, 0xbd, 0x3d, 0xbd, 0xaa, 0x93, 0xe8, 0x82, 0xad, 0x89, 0x0f, 0xa5, 0x4d, 0xac, 0x8a, 0x93, 0x2f, 0x0b, 0xe9, 0xdd, 0x30, 0xcd, 0xa7, 0x7a, 0x6a, 0xea, 0xaa, 0x2b,
+ 0x0f, 0xbd, 0x46, 0x6a, 0xb9, 0xbd, 0xad, 0x2d, 0xef, 0xc4, 0x4d, 0xac, 0x57, 0xfe, 0x5f, 0x64, 0xda, 0xde, 0x8f, 0xb4, 0x01, 0x09, 0x09, 0x0d, 0xda, 0xde, 0x9a, 0xce, 0xef, 0xef, 0xea, 0xab,
+ 0xba, 0xd6, 0x9a, 0xce, 0x08, 0x00, 0x00, 0x00, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xea, 0xab, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xbb, 0xbe, 0xaa, 0xda, 0xd6, 0x99, 0xce, 0xaf, 0xaa, 0xab, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xfe, 0xeb, 0xee, 0xda, 0xd6, 0x9a, 0xce, 0xff, 0xea, 0xba, 0xa8, 0xbb, 0xd6, 0xb9, 0xce, 0xbe, 0xf8, 0xae, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xff, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xab, 0xa0, 0x9a, 0xd6, 0xba, 0xce, 0x7f, 0xfe, 0xfb, 0xf7, 0xba, 0xd6, 0x99, 0xce, 0xaa, 0xae, 0xbe, 0xae, 0x9a, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xff, 0xff,
+ 0x99, 0xd6, 0xba, 0xce, 0xfe, 0x7e, 0xfe, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0xbb, 0xeb, 0xaa, 0xba, 0xd6, 0x9a, 0xce, 0x7f, 0xfb, 0xae, 0xaa, 0xba, 0xd6, 0x9a, 0xce, 0xfd, 0xff, 0xaa, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x57, 0xff, 0xf7, 0xff, 0xba, 0xd6, 0x9a, 0xce, 0x77, 0xdf, 0xf6, 0xfe, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xff, 0xfb, 0x7b, 0xbb, 0xd6, 0x99, 0xce, 0xf7, 0xbf, 0xee, 0xab,
+ 0xbb, 0xd6, 0x99, 0xce, 0xdf, 0xff, 0xee, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0x7f, 0xff, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xd5, 0x7d, 0xaf, 0xff, 0xba, 0xd6, 0x99, 0xce, 0xff, 0xbf, 0xef, 0xef,
+ 0xbb, 0xd6, 0x99, 0xce, 0x57, 0xdf, 0xee, 0xff, 0xbb, 0xd6, 0x7a, 0xc6, 0xef, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x99, 0xc6, 0xfb, 0xaf, 0xff, 0xfe, 0x9a, 0xd6, 0x79, 0xc6, 0xaa, 0xae, 0xaa, 0xaa,
+ 0xba, 0xce, 0x9a, 0xce, 0x65, 0x55, 0x95, 0xd7, 0xba, 0xd6, 0x7a, 0xce, 0xff, 0xff, 0xfe, 0xff, 0xba, 0xce, 0x9a, 0xce, 0x55, 0x79, 0x55, 0x55, 0x9b, 0xd6, 0x9a, 0xce, 0x55, 0x75, 0x75, 0x75,
+ 0xba, 0xd6, 0x9a, 0xce, 0x55, 0x55, 0xf5, 0xf5, 0xbb, 0xd6, 0x9a, 0xce, 0x5f, 0x57, 0x55, 0xdd, 0xbb, 0xd6, 0x79, 0xce, 0xf7, 0xff, 0xff, 0xef, 0xba, 0xce, 0x9a, 0xce, 0x75, 0x55, 0x57, 0xdd,
+ 0xbb, 0xd6, 0x99, 0xce, 0x55, 0xff, 0xdd, 0xfb, 0xbb, 0xd6, 0x79, 0xce, 0xfb, 0xff, 0xff, 0xeb, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xbf, 0xbf, 0xbf, 0x9a, 0xd6, 0x9a, 0xce, 0xb5, 0x95, 0xe5, 0xe5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x55, 0x5f, 0x77, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0x57, 0x5f, 0x75, 0xbf, 0xbb, 0xd6, 0x99, 0xce, 0x55, 0x9f, 0xef, 0xff, 0xba, 0xd6, 0x7a, 0xce, 0xff, 0xea, 0xfe, 0xbf,
+ 0x7a, 0xc6, 0x59, 0xbe, 0x55, 0xfd, 0xea, 0x82, 0x7b, 0xc6, 0x59, 0xbe, 0xf5, 0xae, 0xa8, 0x02, 0x7a, 0xc6, 0x59, 0xbe, 0x6b, 0xee, 0x82, 0x02, 0x9a, 0xc6, 0x59, 0xbe, 0xf7, 0xbf, 0xbf, 0xaa,
+ 0x9b, 0xce, 0x59, 0xbe, 0xf5, 0xbe, 0xab, 0xaa, 0x9a, 0xc6, 0x5a, 0xc6, 0xab, 0xaf, 0xba, 0xaa, 0x79, 0xce, 0x9a, 0xc6, 0xdf, 0x3f, 0xe2, 0xe5, 0x9a, 0xce, 0x5a, 0xc6, 0xfb, 0xff, 0xaa, 0xaa,
+ 0x9a, 0xce, 0x7a, 0xc6, 0x75, 0xdf, 0xfe, 0xaa, 0x9a, 0xce, 0x7a, 0xc6, 0xdf, 0xff, 0xfe, 0x2e, 0x7b, 0xce, 0x99, 0xc6, 0x7a, 0xfe, 0xba, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xfe, 0xba, 0x8b,
+ 0x7a, 0xce, 0x99, 0xc6, 0xf7, 0x2a, 0xa3, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xaa, 0xaa, 0x88, 0x9a, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xba, 0xaa, 0x9a, 0xce, 0x7a, 0xce, 0x8b, 0x09, 0x0a, 0xab,
+ 0x9a, 0xce, 0x79, 0xc6, 0xaf, 0x2a, 0x08, 0xaa, 0x9b, 0xce, 0x79, 0xc6, 0xab, 0xa2, 0xa8, 0x28, 0x7a, 0xce, 0xba, 0xc6, 0xaa, 0xaf, 0xaa, 0xef, 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0x20, 0x2a,
+ 0x9a, 0xce, 0x7a, 0xce, 0x24, 0x08, 0x08, 0x00, 0x9a, 0xce, 0x79, 0xce, 0x08, 0x8c, 0x22, 0x0a, 0x9a, 0xce, 0x79, 0xc6, 0x00, 0x00, 0x20, 0x82, 0xba, 0xce, 0x79, 0xc6, 0xab, 0xbb, 0xff, 0xfa,
+ 0xba, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xeb, 0xaf, 0x9a, 0xce, 0x79, 0xc6, 0x00, 0x02, 0x0a, 0xa2, 0xba, 0xd6, 0x79, 0xc6, 0xab, 0xaf, 0xff, 0xff, 0x9a, 0xce, 0x7a, 0xc6, 0x00, 0x2c, 0x08, 0x28,
+ 0x9a, 0xce, 0x79, 0xc6, 0x00, 0x80, 0x28, 0x08, 0xba, 0xce, 0x79, 0xc6, 0xab, 0xae, 0xef, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0x00, 0x82, 0x2a, 0xaa, 0xd8, 0xde, 0x7a, 0xce, 0x37, 0xd5, 0xd5, 0xf7,
+ 0xf9, 0xe6, 0x46, 0x6a, 0x57, 0x56, 0x54, 0x54, 0x66, 0x72, 0xe5, 0x69, 0xfe, 0x5a, 0x7e, 0xe0, 0x25, 0x6a, 0xa4, 0x61, 0xdb, 0x77, 0xfe, 0xb8, 0xe5, 0x69, 0x83, 0x61, 0x7a, 0xef, 0xc3, 0xe8,
+ 0xc4, 0x69, 0x83, 0x59, 0xef, 0xae, 0xea, 0xba, 0xc4, 0x61, 0x62, 0x59, 0x98, 0xf4, 0xe2, 0xba, 0xe4, 0x61, 0x43, 0x59, 0xf7, 0x1f, 0x2f, 0x2b, 0x04, 0x6a, 0xc5, 0x61, 0xdb, 0xa8, 0xbf, 0xbf,
+ 0x46, 0x72, 0xe5, 0x69, 0xd5, 0x35, 0xdf, 0x55, 0x26, 0x72, 0xc5, 0x69, 0xeb, 0x2e, 0x0a, 0x2d, 0x46, 0x72, 0xe5, 0x69, 0x23, 0xab, 0x56, 0x7f, 0x46, 0x72, 0xa4, 0x61, 0x20, 0x42, 0x7b, 0xab,
+ 0x04, 0x72, 0x63, 0x51, 0xe8, 0xaf, 0x95, 0xee, 0xc4, 0x69, 0x23, 0x51, 0xdf, 0xff, 0xae, 0x2a, 0xe5, 0x71, 0x63, 0x51, 0xa9, 0x8f, 0x2d, 0x9f, 0x05, 0x6a, 0x83, 0x61, 0x55, 0x57, 0xca, 0x02,
+ 0xc4, 0x61, 0x63, 0x59, 0x8a, 0xb7, 0xf7, 0xdc, 0xe4, 0x69, 0x83, 0x61, 0x2f, 0x2b, 0xb9, 0x2e, 0x05, 0x72, 0xc4, 0x61, 0xc9, 0xaf, 0x37, 0xbb, 0x25, 0x72, 0xc3, 0x69, 0x59, 0xfa, 0x9a, 0x63,
+ 0xb3, 0xb4, 0x83, 0x61, 0x35, 0xf5, 0xd5, 0x55, 0x1b, 0xe7, 0x83, 0x61, 0x02, 0x55, 0x55, 0x55, 0x3c, 0xe7, 0xc3, 0x69, 0x00, 0x0b, 0x55, 0x55, 0x1c, 0xdf, 0xc6, 0x61, 0x00, 0x00, 0xd5, 0x55,
+ 0x1c, 0xdf, 0x66, 0x6a, 0x00, 0x00, 0x00, 0x40, 0x1c, 0xdf, 0x25, 0x72, 0x00, 0x00, 0x7e, 0x55, 0x1b, 0xe7, 0xa3, 0x61, 0x00, 0x60, 0x55, 0x55, 0x08, 0x8b, 0x04, 0x72, 0x54, 0xff, 0xff, 0xf7,
+ 0x45, 0x7a, 0xc4, 0x61, 0xa3, 0xa3, 0x48, 0x5e, 0xe5, 0x69, 0x23, 0x49, 0xf0, 0x78, 0x5c, 0x5f, 0x43, 0x51, 0x04, 0x41, 0xef, 0x5c, 0xf5, 0xea, 0x44, 0x49, 0xe3, 0x40, 0xaf, 0xf7, 0x27, 0xba,
+ 0x64, 0x51, 0xe3, 0x48, 0xde, 0xca, 0xdf, 0xd7, 0x43, 0x49, 0xe2, 0x40, 0xfa, 0x36, 0x8f, 0xca, 0xa4, 0x61, 0x03, 0x49, 0x37, 0x17, 0x35, 0x2f, 0xe5, 0x69, 0x83, 0x59, 0xbd, 0xaa, 0xaf, 0x80,
+ 0x25, 0x72, 0x84, 0x61, 0xf7, 0xfd, 0xee, 0x0a, 0x66, 0x72, 0xa4, 0x61, 0xfd, 0xf5, 0x3b, 0x2a, 0x46, 0x72, 0x05, 0x6a, 0xab, 0x5e, 0x5a, 0xfc, 0x46, 0x6a, 0x23, 0x41, 0x78, 0x62, 0x6a, 0x70,
+ 0x26, 0x62, 0x85, 0x49, 0x23, 0xa2, 0x32, 0xda, 0x46, 0x6a, 0x44, 0x49, 0xa0, 0x08, 0x2f, 0xad, 0x46, 0x6a, 0xc5, 0x61, 0xfe, 0x7f, 0x2b, 0xbd, 0x87, 0x72, 0xa4, 0x61, 0xeb, 0xba, 0xf8, 0x7f,
+ 0x87, 0x6a, 0xc4, 0x61, 0x2b, 0xab, 0xaa, 0xad, 0x8a, 0x93, 0x25, 0x62, 0x0a, 0xaa, 0x97, 0x8b, 0xec, 0xa3, 0xa7, 0x7a, 0x8a, 0x9a, 0x7b, 0xf5, 0xcf, 0xbc, 0x08, 0x83, 0xfb, 0x17, 0xbd, 0xaf,
+ 0xcf, 0xc4, 0x63, 0x51, 0xad, 0xaa, 0xaa, 0xb8, 0xf0, 0xc4, 0x8a, 0x9b, 0x09, 0x3f, 0x2b, 0x8b, 0xda, 0xd6, 0xec, 0x9b, 0x0d, 0x0b, 0x01, 0x00, 0xda, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xea, 0xaa,
+ 0xda, 0xd6, 0x99, 0xd6, 0xaa, 0xbe, 0xae, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xd5, 0x5d, 0x9f, 0xdd, 0xdb, 0xde, 0x99, 0xce, 0xaf, 0xbe, 0xbe, 0xaa, 0xbb, 0xde, 0xd9, 0xce, 0xfb, 0xab, 0xaa, 0xaa,
+ 0xda, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x2e, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xef, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xba, 0xfa, 0xae,
+ 0x99, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xaa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0x2a, 0xa2, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xb2, 0x28, 0xa2, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0x2a, 0xaa, 0xaa,
+ 0xba, 0xd6, 0x9a, 0xce, 0xa2, 0xaa, 0xbe, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xae, 0xaa, 0xff, 0x9b, 0xd6, 0xba, 0xce, 0xae, 0xae, 0xfe, 0xfe, 0x99, 0xd6, 0xbb, 0xce, 0xfe, 0xbb, 0xfe, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xee, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xde, 0xfd, 0xf7, 0xbb, 0xd6, 0x99, 0xce, 0xfa, 0xfb, 0xfe, 0xff, 0xbb, 0xd6, 0x99, 0xce, 0xae, 0xfe, 0xff, 0xf7,
+ 0xbb, 0xd6, 0x99, 0xce, 0xba, 0xeb, 0xdf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xfb, 0xd7, 0x57, 0xbb, 0xd6, 0x99, 0xce, 0x7a, 0xd7, 0xdf, 0x55, 0xba, 0xce, 0x9a, 0xce, 0x59, 0x55, 0x55, 0x5b,
+ 0xba, 0xd6, 0x9a, 0xce, 0xdf, 0x57, 0x55, 0x55, 0xba, 0xd6, 0x7a, 0xce, 0xfe, 0xfe, 0xff, 0xef, 0xbb, 0xd6, 0x99, 0xce, 0x75, 0xd5, 0xf7, 0xf5, 0xba, 0xd6, 0x9a, 0xce, 0x5d, 0x5d, 0xd7, 0x79,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xfa, 0xbc, 0xbe, 0xb7, 0xbb, 0xd6, 0x9a, 0xce, 0x7d, 0xdd, 0x9b, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x5d, 0x7f, 0xdf, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0x5d, 0xff, 0xff, 0xef,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x5f, 0xd7, 0xff, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xb7, 0xea, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xde, 0xff, 0xfb, 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xaf, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xba, 0xae, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xf9, 0xfb, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xab, 0xb8, 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0x6f, 0xff, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xf6, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xae, 0xab, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xef, 0xae, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xe6, 0xaa, 0xca,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xdd, 0x57, 0xef, 0x7a, 0x9a, 0xce, 0x7a, 0xc6, 0x5d, 0xfd, 0xff, 0xfb, 0x9a, 0xce, 0x79, 0xc6, 0x5f, 0xe5, 0xff, 0xf7, 0x7a, 0xce, 0x9a, 0xc6, 0xaa, 0xaa, 0xea, 0xfa,
+ 0x9a, 0xce, 0x79, 0xc6, 0xbd, 0x6d, 0xea, 0xaa, 0x9a, 0xce, 0x7a, 0xc6, 0xbf, 0xaf, 0xbe, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x9e, 0xab, 0xaf, 0xae, 0x9a, 0xce, 0x7a, 0xc6, 0xab, 0xab, 0xaa, 0xaa,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xea, 0xea, 0xab, 0xaa, 0x79, 0xce, 0x9a, 0xc6, 0xb7, 0xbe, 0xf5, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0x22, 0xaa, 0x79, 0xce, 0xba, 0xc6, 0xae, 0xae, 0xaa, 0xaa,
+ 0x9a, 0xce, 0x7a, 0xce, 0x84, 0xaa, 0xf2, 0xf2, 0x9a, 0xce, 0x7a, 0xc6, 0xab, 0xae, 0x20, 0x22, 0x9a, 0xce, 0x7a, 0xc6, 0x88, 0xaa, 0xaa, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0x80, 0xa0, 0xab, 0xa8,
+ 0x9b, 0xce, 0x79, 0xc6, 0x0a, 0xa8, 0x80, 0xa0, 0x9a, 0xce, 0x79, 0xc6, 0x8e, 0xaa, 0xc2, 0xa8, 0x9a, 0xce, 0x79, 0xc6, 0x08, 0x8a, 0x0a, 0xaa, 0x9b, 0xce, 0x7a, 0xce, 0x0b, 0xb2, 0x5e, 0xa8,
+ 0x79, 0xce, 0x9b, 0xc6, 0xff, 0xaa, 0xea, 0xba, 0x7a, 0xce, 0x99, 0xc6, 0xaf, 0x82, 0xff, 0xea, 0x9a, 0xce, 0x7a, 0xc6, 0x02, 0xa8, 0xe2, 0xaa, 0x79, 0xce, 0x9a, 0xc6, 0xde, 0xbe, 0xbf, 0xff,
+ 0x9a, 0xce, 0x7a, 0xce, 0x2b, 0xec, 0x36, 0x22, 0x9a, 0xce, 0x7a, 0xc6, 0x82, 0xaa, 0xab, 0x8a, 0x9a, 0xce, 0x79, 0xc6, 0x8a, 0x88, 0x22, 0x80, 0xba, 0xce, 0x79, 0xc6, 0xff, 0xef, 0xea, 0x2a,
+ 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xff, 0xbe, 0xff, 0x9a, 0xce, 0x7a, 0xce, 0x8d, 0x02, 0x00, 0x80, 0xba, 0xd6, 0x79, 0xc6, 0xff, 0xfb, 0xef, 0xbb, 0xba, 0xce, 0x79, 0xce, 0xab, 0xfa, 0xea, 0xea,
+ 0xfa, 0xde, 0x05, 0x5a, 0x54, 0x58, 0x50, 0x60, 0x67, 0x6a, 0xe5, 0x61, 0x28, 0xc8, 0xd8, 0xd8, 0x46, 0x72, 0xa4, 0x59, 0x2a, 0xaa, 0xea, 0x6a, 0x46, 0x6a, 0x43, 0x51, 0xf8, 0x7e, 0xea, 0xba,
+ 0xa4, 0x61, 0x63, 0x51, 0x2f, 0xbd, 0xad, 0xe6, 0xa4, 0x61, 0x23, 0x51, 0x20, 0x7f, 0xfb, 0xdb, 0xe5, 0x61, 0x84, 0x59, 0x0f, 0x2f, 0xdd, 0x0b, 0x05, 0x6a, 0x84, 0x59, 0xb0, 0xaa, 0xd5, 0x5b,
+ 0x25, 0x6a, 0x83, 0x59, 0x20, 0x02, 0x8b, 0xdf, 0x47, 0x6a, 0xc4, 0x61, 0xde, 0xe2, 0xed, 0xff, 0x25, 0x6a, 0xa5, 0x61, 0xe2, 0xa9, 0x8b, 0xaa, 0x26, 0x72, 0x05, 0x62, 0x8f, 0xab, 0xd7, 0xdd,
+ 0x26, 0x72, 0xc5, 0x61, 0x50, 0xca, 0xaf, 0xea, 0x25, 0x6a, 0xa4, 0x61, 0x5b, 0xbd, 0xfc, 0x7a, 0x05, 0x6a, 0x63, 0x59, 0xfa, 0xe8, 0xaa, 0x7a, 0x05, 0x6a, 0x63, 0x59, 0x00, 0xaa, 0xdf, 0x55,
+ 0xe5, 0x69, 0x43, 0x59, 0xf8, 0x00, 0x8a, 0xdd, 0x04, 0x6a, 0x63, 0x59, 0xeb, 0xe2, 0x0a, 0xd5, 0x05, 0x6a, 0x43, 0x49, 0xa0, 0x7a, 0xfc, 0xaa, 0xe5, 0x69, 0x63, 0x59, 0x60, 0x7d, 0x79, 0x7e,
+ 0x25, 0x72, 0x63, 0x59, 0x8b, 0xef, 0x5d, 0xff, 0xe4, 0x69, 0x83, 0x51, 0xa0, 0xeb, 0xa9, 0x2a, 0x25, 0x72, 0x63, 0x59, 0x2f, 0xb5, 0x5f, 0xea, 0x25, 0x72, 0x43, 0x49, 0xf0, 0xf8, 0xbf, 0xb6,
+ 0x45, 0x72, 0x64, 0x59, 0x35, 0xa2, 0x2a, 0xfd, 0x24, 0x7a, 0xa3, 0x69, 0x80, 0x6a, 0xe8, 0xeb, 0x25, 0x72, 0xe3, 0x69, 0xad, 0x01, 0x6d, 0x30, 0x45, 0x7a, 0x82, 0x59, 0x02, 0xa2, 0xba, 0x7e,
+ 0x04, 0x72, 0x43, 0x49, 0xe8, 0x7e, 0xff, 0x5d, 0x64, 0x51, 0x03, 0x49, 0x6e, 0x7b, 0xfa, 0xfd, 0x24, 0x49, 0x03, 0x41, 0x3b, 0x10, 0x90, 0xce, 0x84, 0x51, 0xe3, 0x40, 0xff, 0xff, 0xf7, 0x8b,
+ 0xc4, 0x61, 0x03, 0x41, 0xd5, 0xd5, 0xbe, 0x02, 0x26, 0x72, 0x24, 0x49, 0xd5, 0x37, 0xaf, 0x82, 0x25, 0x6a, 0x44, 0x51, 0xf7, 0xb8, 0xb8, 0x02, 0x66, 0x6a, 0xc5, 0x61, 0x2b, 0xbf, 0x57, 0xea,
+ 0x67, 0x72, 0xc4, 0x59, 0x0b, 0xab, 0xf5, 0xae, 0x67, 0x72, 0x84, 0x59, 0x88, 0x7a, 0xab, 0xb2, 0x46, 0x6a, 0xe5, 0x61, 0x0f, 0x7f, 0xff, 0xda, 0x26, 0x6a, 0x23, 0x41, 0x50, 0xda, 0xd8, 0xda,
+ 0xc5, 0x59, 0x23, 0x49, 0xae, 0x2e, 0x87, 0x8e, 0xe5, 0x61, 0x22, 0x49, 0x29, 0x0b, 0x0a, 0x2a, 0x26, 0x6a, 0xa4, 0x59, 0x77, 0x8a, 0x0b, 0x2e, 0xc8, 0x7a, 0xc5, 0x61, 0xfd, 0xaf, 0xff, 0x3f,
+ 0x47, 0x72, 0xe5, 0x61, 0xbe, 0x2a, 0x6b, 0x20, 0x29, 0x83, 0x26, 0x6a, 0xbd, 0xbd, 0xb5, 0x3d, 0xaf, 0xac, 0xe8, 0x7a, 0xf5, 0xdd, 0xbf, 0xb3, 0x50, 0xc5, 0xaa, 0x9b, 0xf5, 0xf5, 0x75, 0x89,
+ 0x51, 0xcd, 0x49, 0x8b, 0xba, 0xae, 0x96, 0xf4, 0xdb, 0xde, 0x6e, 0xac, 0x3d, 0x2f, 0x0b, 0x01, 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xff, 0xee, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x80, 0x80, 0x02, 0x2a, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xbf, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xff, 0xbe, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0xff, 0xfe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0x9a, 0xce, 0xbb, 0xfa, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xee, 0xef, 0xee, 0xdb, 0xde, 0x9a, 0xce, 0xfb, 0xfe, 0xff, 0xeb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xbf, 0xab, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xff, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xea, 0xea, 0xea, 0x9a, 0xd6, 0xda, 0xce, 0xaa, 0xab, 0xaa, 0xaa,
+ 0xbb, 0xd6, 0x99, 0xce, 0xae, 0xee, 0xea, 0x8a, 0xbb, 0xd6, 0x99, 0xce, 0xfd, 0xff, 0xfe, 0xba, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0xbb, 0xba, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0x57, 0xf7, 0x5f, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xff, 0xfd, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0x95, 0x5f, 0x55, 0xd5, 0x7a, 0xd6, 0x9a, 0xce, 0x56, 0x7d, 0xd5, 0x55, 0xbb, 0xd6, 0x7a, 0xce, 0xfe, 0xff, 0xff, 0xff,
+ 0xbb, 0xd6, 0x7a, 0xce, 0xfb, 0xfb, 0xff, 0xff, 0xba, 0xd6, 0x7a, 0xc6, 0xaa, 0xab, 0xfa, 0xfe, 0x9a, 0xd6, 0x7a, 0xce, 0xea, 0xea, 0x7a, 0xee, 0xba, 0xce, 0x9a, 0xce, 0x35, 0xf9, 0x55, 0x5d,
+ 0x9a, 0xce, 0x7a, 0xce, 0xc0, 0x00, 0x00, 0x00, 0xba, 0xce, 0x7a, 0xce, 0xfb, 0xff, 0xaf, 0xaa, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0x5f, 0xd7, 0xff, 0x7a, 0xd6, 0xbb, 0xce, 0xfb, 0xfe, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0xe7, 0xff, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xad, 0xae, 0xff, 0xea, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xeb, 0xff, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xfa, 0xaf, 0xff, 0xfb,
+ 0x99, 0xd6, 0xbb, 0xce, 0x6f, 0xff, 0xbe, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xab, 0x8a, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xab, 0xaa, 0x2a, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xa8, 0xae,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0x8b, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xbe, 0xee, 0xbe, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xba, 0xef, 0xfa, 0xbb, 0xd6, 0x99, 0xce, 0xa2, 0xa2, 0xaa, 0x0a,
+ 0xbb, 0xd6, 0xba, 0xce, 0x2f, 0x8a, 0x0a, 0xa0, 0xbb, 0xd6, 0x9a, 0xce, 0x8a, 0x20, 0x88, 0x00, 0xdb, 0xde, 0x9a, 0xce, 0xff, 0xfa, 0xef, 0xbf, 0xdb, 0xde, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xae,
+ 0x7a, 0xce, 0x9a, 0xc6, 0xfa, 0xbe, 0xfa, 0xaf, 0x79, 0xce, 0x9a, 0xc6, 0xbc, 0xae, 0xff, 0xe2, 0x9b, 0xce, 0x79, 0xc6, 0xfe, 0xfe, 0xbe, 0xff, 0x7b, 0xce, 0x99, 0xc6, 0xeb, 0xab, 0x8a, 0xaa,
+ 0x7a, 0xce, 0x9a, 0xc6, 0xab, 0xea, 0xea, 0xff, 0x9a, 0xce, 0x7a, 0xc6, 0xbe, 0x9a, 0xfa, 0xba, 0x7a, 0xce, 0x9a, 0xc6, 0xef, 0xeb, 0xbb, 0xab, 0x9a, 0xce, 0x79, 0xc6, 0xaa, 0xaa, 0xbb, 0xfb,
+ 0x7a, 0xce, 0x9a, 0xc6, 0xed, 0xaa, 0xa9, 0xbf, 0x7a, 0xce, 0x9a, 0xc6, 0x5f, 0xaa, 0xaa, 0xb8, 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0xac, 0xaa, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0x22, 0xa8, 0xaa, 0xa8,
+ 0x9a, 0xce, 0x79, 0xc6, 0x22, 0x88, 0xa2, 0x88, 0x9a, 0xce, 0x79, 0xc6, 0x8a, 0x82, 0xaa, 0xaa, 0x7a, 0xce, 0xba, 0xc6, 0xea, 0xee, 0xaa, 0xea, 0x79, 0xce, 0x9a, 0xc6, 0xbd, 0xb8, 0xbf, 0xab,
+ 0xba, 0xce, 0x79, 0xc6, 0xfa, 0xeb, 0xef, 0xfb, 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0x8a, 0xea, 0xea, 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0xa8, 0x8a, 0x22, 0x9a, 0xce, 0x79, 0xc6, 0xa2, 0xea, 0x20, 0x82,
+ 0x79, 0xce, 0xba, 0xc6, 0xaa, 0x82, 0xfa, 0xba, 0x9b, 0xce, 0x79, 0xc6, 0xa8, 0xa8, 0x82, 0x00, 0xba, 0xce, 0x7a, 0xc6, 0xff, 0xea, 0xab, 0xaa, 0x9a, 0xd6, 0x79, 0xc6, 0xff, 0xbb, 0xee, 0xab,
+ 0x9a, 0xce, 0x79, 0xce, 0xf2, 0x20, 0x00, 0x00, 0xbb, 0xd6, 0x79, 0xc6, 0xef, 0xfb, 0xbe, 0xea, 0xbb, 0xd6, 0x7a, 0xc6, 0xff, 0xff, 0xea, 0xba, 0xbb, 0xd6, 0x99, 0xce, 0xd5, 0xd7, 0x5d, 0xf7,
+ 0xba, 0xd6, 0x99, 0xce, 0xfd, 0x7d, 0xff, 0xde, 0xbb, 0xd6, 0x99, 0xce, 0x7f, 0xdf, 0x5f, 0xfd, 0xbb, 0xd6, 0x99, 0xc6, 0xbe, 0xfe, 0xab, 0xaa, 0x9a, 0xd6, 0xba, 0xce, 0xbd, 0xbb, 0xab, 0xbf,
+ 0x1b, 0xdf, 0x66, 0x5a, 0x40, 0x40, 0x80, 0x00, 0xa8, 0x6a, 0xe5, 0x61, 0x58, 0xb0, 0xea, 0xfa, 0x46, 0x72, 0x63, 0x51, 0x7a, 0x0a, 0xa2, 0xfb, 0x46, 0x72, 0x43, 0x51, 0xb7, 0xa8, 0x8a, 0x9e,
+ 0x25, 0x72, 0x64, 0x59, 0x7f, 0xaa, 0x22, 0xea, 0xe4, 0x61, 0x43, 0x51, 0xd7, 0xfe, 0xe8, 0xea, 0x25, 0x62, 0x84, 0x59, 0x0b, 0xa8, 0x7b, 0x77, 0x05, 0x6a, 0x84, 0x51, 0xaa, 0xab, 0xfd, 0x0b,
+ 0x05, 0x62, 0x44, 0x59, 0xaa, 0xfe, 0x7e, 0x80, 0xe5, 0x69, 0x63, 0x59, 0xaa, 0x55, 0xf5, 0xb8, 0xe5, 0x69, 0x63, 0x59, 0xa0, 0x7f, 0x7f, 0xef, 0x05, 0x62, 0x64, 0x59, 0x02, 0x97, 0xf5, 0xae,
+ 0x05, 0x6a, 0xa4, 0x59, 0xe2, 0x69, 0x8a, 0x7a, 0xe5, 0x69, 0x64, 0x59, 0x7f, 0x2b, 0xfa, 0xdf, 0xa4, 0x61, 0x63, 0x51, 0xaf, 0x00, 0x0c, 0xef, 0xa4, 0x61, 0x03, 0x41, 0x0a, 0x00, 0x9c, 0xf6,
+ 0x84, 0x61, 0x42, 0x49, 0x88, 0xaa, 0xab, 0xfd, 0xe5, 0x61, 0x23, 0x51, 0x0a, 0xeb, 0xeb, 0xd5, 0xc5, 0x69, 0x43, 0x51, 0xa0, 0xeb, 0xa5, 0xab, 0xe5, 0x61, 0x64, 0x59, 0xc9, 0xad, 0xef, 0x2a,
+ 0xc4, 0x61, 0x43, 0x51, 0xba, 0x7a, 0x8a, 0x28, 0xc5, 0x61, 0x43, 0x51, 0x0a, 0xad, 0x8b, 0x2f, 0x05, 0x6a, 0xa3, 0x61, 0x2c, 0x2f, 0x3d, 0xbb, 0xc5, 0x61, 0x03, 0x41, 0x0c, 0x2c, 0xb7, 0xf7,
+ 0xe5, 0x61, 0x44, 0x49, 0x2a, 0xa2, 0xa2, 0xed, 0x45, 0x72, 0x43, 0x51, 0x2a, 0x3f, 0x2b, 0xa5, 0x25, 0x72, 0x83, 0x61, 0x80, 0xc8, 0x7a, 0xda, 0xc4, 0x61, 0x43, 0x59, 0xfa, 0x5e, 0xf7, 0xc2,
+ 0x64, 0x59, 0x23, 0x49, 0x78, 0x5c, 0xfe, 0x7e, 0x24, 0x49, 0x03, 0x41, 0xfc, 0x80, 0xc0, 0xcc, 0xc4, 0x61, 0xe3, 0x40, 0xdf, 0xf7, 0xbf, 0x8d, 0xa5, 0x61, 0x43, 0x51, 0xbd, 0xbe, 0xfe, 0x02,
+ 0x26, 0x6a, 0x64, 0x59, 0xad, 0xe5, 0xa5, 0x0b, 0x26, 0x6a, 0xa5, 0x59, 0xfa, 0x57, 0xfe, 0xb0, 0x87, 0x6a, 0xc4, 0x59, 0xf5, 0xff, 0xbd, 0x2e, 0xc8, 0x72, 0xc5, 0x59, 0xff, 0x5f, 0x7f, 0x8a,
+ 0xc8, 0x72, 0xe5, 0x61, 0xdf, 0x55, 0x75, 0x0a, 0xea, 0x72, 0xc5, 0x59, 0x55, 0xdf, 0xaf, 0xc0, 0xa8, 0x6a, 0xc5, 0x59, 0xff, 0xab, 0xa8, 0x7f, 0x88, 0x6a, 0x23, 0x41, 0xde, 0xfc, 0x77, 0xd7,
+ 0xe6, 0x61, 0x44, 0x49, 0xed, 0xa9, 0xaa, 0xa0, 0x26, 0x6a, 0xa4, 0x51, 0x95, 0x8a, 0x2a, 0xab, 0x67, 0x6a, 0x05, 0x62, 0x77, 0xba, 0xbd, 0xac, 0xa8, 0x72, 0x26, 0x62, 0x15, 0xb5, 0xeb, 0xbf,
+ 0x4a, 0x83, 0x46, 0x6a, 0x5f, 0xd5, 0x15, 0x85, 0xec, 0x9b, 0x47, 0x6a, 0xb5, 0x2f, 0x2d, 0xed, 0x31, 0xc5, 0xe8, 0x7a, 0xeb, 0xe2, 0x58, 0xf9, 0xb2, 0xd5, 0xab, 0x93, 0xab, 0xa3, 0xfd, 0xd5,
+ 0x51, 0xcd, 0x25, 0x6a, 0xe4, 0x70, 0xd6, 0xbe, 0x5d, 0xe7, 0xc8, 0x72, 0x00, 0x01, 0x03, 0x03, 0x9a, 0xd6, 0xbb, 0xce, 0x7b, 0xfe, 0xff, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xbf, 0xea, 0xaa,
+ 0xba, 0xd6, 0xdb, 0xce, 0x00, 0x88, 0xc2, 0x28, 0xba, 0xd6, 0xdb, 0xce, 0x20, 0x02, 0x0b, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xfb, 0xff, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xee, 0xab, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xfb, 0xef, 0xbb, 0xbb, 0xd6, 0x9a, 0xd6, 0x0a, 0xca, 0x08, 0x80, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xfb, 0xfb, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xef, 0xaa, 0xba, 0x8b,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xba, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x82, 0x02, 0x02, 0x2a, 0xbb, 0xd6, 0x9a, 0xce, 0x8e, 0xea, 0xa0, 0xa2,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xee, 0xef, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xea, 0x2f, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfa, 0xee, 0xfb, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0x7e, 0xfb, 0xfa, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xfe, 0xde, 0x7f, 0xba, 0xd6, 0x9a, 0xce, 0x5f, 0xfd, 0x7d, 0xfe, 0xba, 0xce, 0x9a, 0xce, 0x55, 0x69, 0xbd, 0x55, 0x9b, 0xd6, 0x9a, 0xce, 0x55, 0x5f, 0x57, 0xb6,
+ 0xbb, 0xce, 0x9a, 0xce, 0xd5, 0x55, 0xde, 0xd5, 0xbb, 0xd6, 0x9a, 0xce, 0x55, 0x55, 0xdf, 0xbd, 0xbb, 0xd6, 0x7a, 0xce, 0xff, 0xff, 0xbf, 0xba, 0xba, 0xd6, 0x9a, 0xce, 0x5d, 0x75, 0x7f, 0xef,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x75, 0x76, 0xf7, 0xfe, 0xbb, 0xd6, 0x99, 0xce, 0xfd, 0xbf, 0xfb, 0xae, 0xbb, 0xd6, 0x99, 0xce, 0xff, 0xbe, 0xfa, 0xab, 0x9b, 0xd6, 0xba, 0xce, 0xdf, 0xaf, 0xaa, 0xfe,
+ 0x9b, 0xd6, 0xba, 0xce, 0xeb, 0xab, 0xff, 0xeb, 0xbb, 0xd6, 0xba, 0xce, 0xd7, 0xbf, 0xeb, 0xe3, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xa2, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0xfb, 0xbb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbb, 0xbf, 0xeb, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xbb, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xeb, 0xaf, 0xaa, 0xdb, 0xde, 0x9a, 0xce, 0xff, 0xff, 0xfa, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xab, 0xaa, 0xda, 0xd6, 0x9a, 0xce, 0xeb, 0xaa, 0xab, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xea, 0xab, 0xee, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xbf, 0xea, 0xba, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xba, 0xbf, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xbf, 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xff, 0xfe, 0xab,
+ 0x9b, 0xce, 0x79, 0xc6, 0xe9, 0xee, 0xff, 0xe2, 0x9a, 0xce, 0x79, 0xc6, 0x9e, 0xfe, 0xaf, 0xff, 0x7a, 0xce, 0x9a, 0xc6, 0xe8, 0xe8, 0xba, 0xbb, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xfb, 0xfe, 0xff,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0xff, 0xff, 0xef, 0x9b, 0xce, 0x79, 0xc6, 0xfb, 0x7f, 0xdf, 0xde, 0x9a, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0x7f, 0xeb, 0x7b, 0xce, 0x99, 0xc6, 0xbe, 0xae, 0xe2, 0xfe,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xfa, 0xff, 0xff, 0xff, 0x7a, 0xce, 0x9a, 0xc6, 0xde, 0xfa, 0xaa, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xbf, 0xbf, 0xff, 0x7a, 0xce, 0x9a, 0xc6, 0xab, 0xaa, 0xa7, 0xff,
+ 0x7a, 0xce, 0x9a, 0xc6, 0xbd, 0xae, 0xaa, 0xae, 0x9a, 0xce, 0x7a, 0xc6, 0xaa, 0x8b, 0x28, 0xa2, 0x79, 0xce, 0xba, 0xc6, 0xbe, 0xbf, 0xea, 0xbf, 0x9a, 0xce, 0x7a, 0xc6, 0x23, 0x8a, 0x00, 0x0a,
+ 0xba, 0xce, 0x7a, 0xce, 0xfe, 0xfb, 0xeb, 0xea, 0x9a, 0xce, 0x7a, 0xce, 0x83, 0x0a, 0x00, 0x00, 0xba, 0xce, 0x99, 0xce, 0x37, 0xef, 0xff, 0xff, 0xba, 0xce, 0x99, 0xce, 0x57, 0xff, 0xbf, 0xff,
+ 0xba, 0xce, 0x9a, 0xce, 0x55, 0x55, 0xdc, 0x15, 0xba, 0xce, 0x7a, 0xce, 0xff, 0xaa, 0xea, 0xaa, 0xbb, 0xce, 0x99, 0xce, 0xef, 0xff, 0xdd, 0x7f, 0xbb, 0xd6, 0x99, 0xc6, 0xef, 0xbb, 0xaa, 0xba,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0x57, 0xff, 0xff, 0xbb, 0xd6, 0x99, 0xc6, 0xfa, 0xea, 0xaa, 0xaa, 0x9b, 0xd6, 0xb9, 0xce, 0xff, 0xeb, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xff, 0xdf, 0xa7,
+ 0xba, 0xd6, 0x9a, 0xce, 0xf7, 0x7f, 0xbb, 0xf7, 0x9a, 0xd6, 0xba, 0xce, 0xff, 0xff, 0x5d, 0xef, 0x9a, 0xd6, 0xba, 0xce, 0xf7, 0xff, 0xaf, 0xb5, 0x9b, 0xd6, 0xba, 0xce, 0xfa, 0xfa, 0xff, 0xfb,
+ 0xf9, 0xde, 0x9a, 0xce, 0x3d, 0xf5, 0xd7, 0x5d, 0x1a, 0xe7, 0xe5, 0x51, 0x57, 0x56, 0x54, 0x58, 0x87, 0x62, 0xe5, 0x59, 0x5d, 0x57, 0x5e, 0xd8, 0x25, 0x62, 0xa4, 0x59, 0xee, 0x28, 0x42, 0xf8,
+ 0x26, 0x6a, 0xc4, 0x59, 0xef, 0x8a, 0xfe, 0xd5, 0x05, 0x6a, 0x23, 0x49, 0xfa, 0x78, 0x5a, 0xba, 0xe5, 0x61, 0xa4, 0x51, 0xa2, 0xe9, 0x6d, 0xbf, 0x05, 0x62, 0xa4, 0x59, 0x27, 0xb5, 0xa9, 0xc2,
+ 0x05, 0x6a, 0xa4, 0x61, 0xea, 0xde, 0x7b, 0x5c, 0xc4, 0x61, 0x64, 0x51, 0xa0, 0x6b, 0x7a, 0xf6, 0x05, 0x62, 0x43, 0x51, 0xfa, 0xaf, 0xaf, 0x0d, 0x26, 0x62, 0x84, 0x59, 0xdd, 0xed, 0xeb, 0x22,
+ 0x06, 0x62, 0x85, 0x59, 0x5a, 0xfa, 0x0a, 0xa0, 0x05, 0x62, 0x43, 0x49, 0xbf, 0xde, 0xa8, 0x0a, 0x04, 0x62, 0x85, 0x59, 0x5f, 0xdd, 0xee, 0x8c, 0xe4, 0x61, 0x03, 0x41, 0xd7, 0xd7, 0xae, 0x88,
+ 0xa4, 0x61, 0x43, 0x51, 0xf5, 0x75, 0xab, 0xa0, 0x05, 0x6a, 0x64, 0x51, 0x7d, 0xb7, 0xaf, 0x0f, 0x05, 0x6a, 0xa4, 0x59, 0xbd, 0x7f, 0x0e, 0x0a, 0x25, 0x6a, 0x84, 0x59, 0x2b, 0xaa, 0xba, 0xde,
+ 0x25, 0x72, 0x23, 0x49, 0xa0, 0x20, 0xaa, 0x7a, 0xc5, 0x69, 0x43, 0x49, 0x2a, 0xa2, 0xfa, 0xad, 0xe4, 0x69, 0x23, 0x49, 0x80, 0xe8, 0x7b, 0x7a, 0xa4, 0x51, 0xe3, 0x40, 0xe5, 0x09, 0x2d, 0xaf,
+ 0xe3, 0x69, 0x24, 0x49, 0xed, 0xaa, 0xaa, 0x3f, 0x04, 0x72, 0x23, 0x49, 0xb7, 0xb7, 0x2a, 0x80, 0x25, 0x72, 0x83, 0x61, 0xb5, 0x5e, 0xfc, 0xd5, 0x05, 0x6a, 0x63, 0x51, 0xe0, 0xe8, 0x6a, 0x7b,
+ 0xe5, 0x59, 0x23, 0x49, 0x7f, 0xd7, 0xf5, 0x8a, 0xc5, 0x61, 0x23, 0x49, 0xf5, 0xad, 0xab, 0x00, 0x06, 0x6a, 0x63, 0x51, 0xed, 0xbe, 0x8a, 0x8a, 0x26, 0x6a, 0x83, 0x59, 0xfd, 0x2e, 0x2f, 0xff,
+ 0x47, 0x6a, 0xa4, 0x59, 0xa0, 0x22, 0xbc, 0xa7, 0x67, 0x6a, 0xc6, 0x51, 0xaa, 0xaa, 0x0a, 0xdf, 0x88, 0x6a, 0x64, 0x51, 0x02, 0x22, 0x20, 0x7a, 0x4a, 0x83, 0x64, 0x49, 0xfa, 0xf8, 0xff, 0xfd,
+ 0x0a, 0x7b, 0x43, 0x41, 0x8b, 0xab, 0xa2, 0xdf, 0xc8, 0x6a, 0x24, 0x41, 0xa0, 0xaa, 0x7a, 0xfe, 0x67, 0x62, 0xe3, 0x38, 0xa8, 0xff, 0x55, 0xbf, 0x05, 0x62, 0x23, 0x39, 0xbd, 0x95, 0xad, 0x02,
+ 0x47, 0x6a, 0x44, 0x41, 0x9e, 0xd7, 0xbe, 0x27, 0x46, 0x6a, 0xa4, 0x59, 0xa2, 0xb5, 0xad, 0x82, 0x46, 0x6a, 0xe5, 0x59, 0xee, 0x7a, 0xda, 0x3d, 0x67, 0x6a, 0x05, 0x5a, 0x00, 0xf9, 0x7f, 0xbf,
+ 0x67, 0x6a, 0xe5, 0x59, 0xdf, 0x5e, 0x8b, 0xe0, 0x4c, 0x9c, 0xe5, 0x59, 0xaf, 0xd5, 0xaf, 0x0d, 0x10, 0xbd, 0x87, 0x6a, 0x75, 0xeb, 0xab, 0xa2, 0xce, 0xbc, 0xe8, 0x7a, 0xad, 0x83, 0xb8, 0x82,
+ 0xfa, 0xde, 0x86, 0x72, 0xf6, 0xb7, 0x2e, 0x2e, 0xda, 0xde, 0xba, 0xd6, 0x56, 0x56, 0x55, 0x75, 0xbb, 0xd6, 0x99, 0xce, 0x8a, 0xa2, 0xa8, 0xa0, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xff, 0xbb,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xba, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0x20, 0x82, 0x08, 0x00, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xff, 0xbf, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xab, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xeb, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0x80, 0x02, 0x02, 0x00, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xff, 0xba, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0x82, 0x0a,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xfb, 0xfe, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xaa, 0xba, 0xaf, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xef, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xaa, 0xbb, 0xab, 0xda, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xfa, 0x7b, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xbe, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xaf, 0xfa, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0xf0, 0xaf, 0xff, 0xb7, 0xbb, 0xd6, 0x9a, 0xce, 0xe5, 0xbd, 0xbd, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xbe, 0xee, 0xfb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xd5, 0xef, 0xab, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xaa, 0xff, 0xbe, 0x9a, 0xd6, 0xba, 0xce, 0xf7, 0xaf, 0xf7, 0xff, 0x9b, 0xd6, 0xba, 0xce, 0x7b, 0xbb, 0xfd, 0xbf,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xfb, 0xfa, 0xbf, 0xfa, 0xbb, 0xd6, 0x99, 0xce, 0xab, 0x2a, 0x8a, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xfa, 0xab, 0xee, 0x8a, 0x9a, 0xd6, 0xbb, 0xce, 0xba, 0xee, 0xf7, 0xbf,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xeb, 0xff, 0xff, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0xfa, 0xff, 0xbf, 0xae, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xbe, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xa8, 0x22, 0x2a, 0x22,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x0a, 0x02, 0x00, 0x00, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xea, 0xba, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0x55, 0x55, 0x56, 0x5e, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xfe, 0xae, 0xa8,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xe5, 0x7f, 0xf7, 0xef, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xfa, 0xae, 0xac, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xaf, 0xaa, 0x8e, 0xdb, 0xde, 0xba, 0xce, 0xeb, 0xeb, 0xff, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xff, 0xbb, 0xee, 0xdb, 0xde, 0xba, 0xd6, 0xdf, 0xff, 0xff, 0xff,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xbe, 0xf5, 0xff, 0xff, 0x9a, 0xce, 0x79, 0xc6, 0xef, 0xf7, 0xff, 0xea, 0x7a, 0xce, 0x9a, 0xc6, 0xaa, 0xba, 0xaf, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xdf, 0xfe, 0xaf,
+ 0x9a, 0xce, 0x79, 0xc6, 0xff, 0xff, 0x7f, 0x7e, 0x7a, 0xce, 0x9a, 0xc6, 0xe8, 0xf6, 0xfa, 0xa2, 0x7a, 0xce, 0x9a, 0xc6, 0xf0, 0x7f, 0xfe, 0xaa, 0x9b, 0xce, 0x79, 0xc6, 0x75, 0xd7, 0xff, 0x3f,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xff, 0xbf, 0xfe, 0xab, 0x7a, 0xce, 0x9a, 0xc6, 0xaf, 0x8d, 0xeb, 0xef, 0x7a, 0xce, 0x9a, 0xc6, 0xba, 0xab, 0xab, 0xf7, 0x9a, 0xce, 0x7a, 0xc6, 0xfb, 0xaa, 0xaa, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x3a, 0xaa, 0x22, 0xa8, 0xba, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xaa, 0xab, 0xbb, 0xce, 0x79, 0xce, 0xff, 0xbb, 0xaa, 0xea, 0xbb, 0xce, 0x79, 0xce, 0xab, 0xaa, 0xbf, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xd5, 0xfd, 0xf5, 0xff, 0x9b, 0xd6, 0xba, 0xce, 0xbe, 0xef, 0xea, 0x9f, 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0x7f, 0xfa, 0xaf, 0xba, 0xd6, 0x9a, 0xce, 0xf7, 0xfd, 0x7f, 0xbf,
+ 0xba, 0xd6, 0x9a, 0xce, 0x7f, 0xfa, 0xfe, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xfd, 0xee, 0xbe, 0x99, 0xd6, 0xbb, 0xce, 0xea, 0xfd, 0xbf, 0xfb, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0xf7, 0xbe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xff, 0xbb, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbb, 0xfb, 0xfe, 0xba, 0xd6, 0x9a, 0xce, 0xff, 0xae, 0xff, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xba, 0xaa, 0xba,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xef, 0xef, 0xae, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xbf, 0xfa, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0xfe, 0xfb, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xbb, 0xff, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xbb, 0x6f, 0xfb, 0xde, 0xe8, 0x62, 0x40, 0x00, 0x00, 0x00, 0xaf, 0xa4, 0xc4, 0x51, 0x5f, 0xff, 0xfc, 0xfe, 0x67, 0x62, 0xc5, 0x51, 0xd5, 0xa2, 0xe2, 0x82,
+ 0x26, 0x62, 0xc5, 0x51, 0x27, 0x0a, 0xaa, 0x9d, 0x67, 0x6a, 0xe5, 0x59, 0xd7, 0x2b, 0x3b, 0xff, 0x45, 0x6a, 0xc4, 0x61, 0x7e, 0xfe, 0x7c, 0xea, 0x05, 0x6a, 0xc4, 0x61, 0x57, 0xfe, 0xaa, 0x2b,
+ 0x05, 0x6a, 0x43, 0x51, 0xaa, 0xea, 0xfe, 0x58, 0xe5, 0x61, 0x63, 0x51, 0xaf, 0x03, 0x83, 0xfd, 0x26, 0x62, 0x43, 0x49, 0x2a, 0xa2, 0xae, 0x75, 0x26, 0x5a, 0x02, 0x49, 0x28, 0x00, 0xaa, 0xf5,
+ 0x26, 0x62, 0x23, 0x49, 0xa0, 0xaa, 0xfb, 0xad, 0x25, 0x62, 0x84, 0x59, 0x2a, 0xaa, 0xdd, 0x95, 0x05, 0x6a, 0x44, 0x51, 0xa8, 0xd6, 0xde, 0xa8, 0x05, 0x62, 0x63, 0x51, 0x03, 0x29, 0xaf, 0xaa,
+ 0xe4, 0x69, 0xa3, 0x59, 0x7e, 0x77, 0xfa, 0xf8, 0xe4, 0x69, 0x63, 0x51, 0x0f, 0x5f, 0xef, 0xa8, 0xe5, 0x69, 0x23, 0x51, 0xa0, 0xf5, 0x8a, 0xfb, 0xe5, 0x61, 0x44, 0x49, 0xdf, 0x00, 0x82, 0xba,
+ 0xe4, 0x61, 0xe3, 0x38, 0x8a, 0x80, 0xea, 0x7a, 0xc5, 0x61, 0xe3, 0x30, 0x00, 0xa2, 0x7a, 0xfd, 0xa5, 0x59, 0xc3, 0x30, 0xe8, 0xff, 0xdd, 0xd6, 0xc4, 0x69, 0xa2, 0x38, 0xaf, 0xab, 0x3f, 0x37,
+ 0x04, 0x72, 0x63, 0x51, 0x2d, 0x83, 0xa2, 0xa2, 0x45, 0x72, 0xa3, 0x61, 0x6d, 0xe1, 0xfe, 0xfe, 0xe5, 0x69, 0xa4, 0x61, 0x30, 0xae, 0x6e, 0xc2, 0xe4, 0x69, 0x23, 0x49, 0xe8, 0x7c, 0x7e, 0x57,
+ 0xc4, 0x61, 0x23, 0x49, 0x2b, 0xb7, 0xad, 0xad, 0x05, 0x6a, 0x83, 0x61, 0xfe, 0xbd, 0xed, 0x0b, 0x26, 0x6a, 0x63, 0x51, 0x5f, 0x0a, 0xaa, 0x20, 0x26, 0x6a, 0x84, 0x51, 0x5f, 0x0a, 0x8a, 0xa8,
+ 0x26, 0x6a, 0x63, 0x49, 0xe7, 0x00, 0x02, 0xea, 0x05, 0x6a, 0x63, 0x49, 0x57, 0x0f, 0xaa, 0xeb, 0x05, 0x62, 0x24, 0x49, 0xde, 0x02, 0x00, 0x00, 0xe8, 0x7a, 0x84, 0x51, 0x55, 0x8b, 0x22, 0x2f,
+ 0x69, 0x8b, 0xc5, 0x59, 0xd7, 0x5e, 0xff, 0x82, 0x67, 0x6a, 0x23, 0x49, 0xaa, 0xab, 0xa0, 0x60, 0xe6, 0x59, 0xe3, 0x38, 0xae, 0x2f, 0x2f, 0xb5, 0x46, 0x62, 0x85, 0x51, 0xff, 0xe8, 0xf2, 0x7b,
+ 0x26, 0x62, 0x03, 0x39, 0x0f, 0x07, 0x0d, 0x0d, 0x26, 0x62, 0xe5, 0x59, 0x8f, 0x8a, 0x8b, 0x6d, 0x26, 0x62, 0xe5, 0x59, 0x2b, 0x02, 0x2e, 0x21, 0x87, 0x6a, 0xe5, 0x61, 0xba, 0x37, 0xab, 0x0a,
+ 0xf0, 0xb4, 0xc5, 0x59, 0xff, 0x5f, 0x35, 0x2f, 0xaf, 0xac, 0x68, 0x6a, 0xa9, 0x29, 0x0a, 0xf8, 0x0f, 0xbd, 0xcc, 0x93, 0x0a, 0xb8, 0x7a, 0x8d, 0x93, 0xcd, 0x8a, 0x93, 0xab, 0xed, 0xa9, 0x3a,
+ 0xdb, 0xd6, 0xf1, 0xa4, 0x09, 0x00, 0x00, 0x00, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xbb, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xea, 0xfe, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xaf, 0x8b, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xae, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xbf, 0xfb, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xea, 0xaa,
+ 0xbb, 0xde, 0xba, 0xce, 0xff, 0xeb, 0xaa, 0xbb, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xaa, 0xaa, 0xbb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xfb, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xeb, 0xbf, 0xea, 0xba, 0xd6, 0xdb, 0xce, 0x82, 0xeb, 0xaa, 0x82, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xfb, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xaa, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0xbf, 0x2a, 0x2a, 0x20, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xff, 0xba, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xaf, 0xab, 0xea,
+ 0xbb, 0xd6, 0x99, 0xce, 0xea, 0x8a, 0xa2, 0x82, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xbf, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0xfb, 0xaa, 0xbb, 0xd6, 0x99, 0xce, 0xee, 0x8a, 0xa0, 0x08,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xea, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xab, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xfb, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xfb, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x2a, 0xab, 0x22, 0x00, 0xbb, 0xd6, 0xba, 0xce, 0xa0, 0x0a, 0x00, 0x8a, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xbe, 0xbb, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xea, 0xae, 0xab,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xbf, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbe, 0xaa, 0xae, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xab, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xfe, 0xea, 0xea,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xfe, 0xba, 0xae, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xbe, 0xaa, 0xdb, 0xd6, 0x9a, 0xd6, 0xae, 0xea, 0xaa, 0xee,
+ 0xdb, 0xde, 0xba, 0xce, 0xba, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xaf, 0xbf, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xab, 0xba,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xab, 0xfa, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xbe, 0xae, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xfe, 0xfe, 0xef, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xfb, 0xbb, 0xfe,
+ 0x79, 0xce, 0x9a, 0xc6, 0xaa, 0xaf, 0xf7, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xbb, 0xaf, 0x0a, 0x8a, 0x7a, 0xce, 0x9a, 0xc6, 0xaa, 0xaa, 0xb5, 0xaa, 0x9a, 0xce, 0x79, 0xc6, 0xeb, 0x28, 0x0a, 0x2a,
+ 0x9a, 0xce, 0x7a, 0xc6, 0xbe, 0xaa, 0xe8, 0x22, 0x79, 0xce, 0x9a, 0xc6, 0xee, 0xd7, 0xb8, 0xfd, 0x9a, 0xce, 0x79, 0xc6, 0xa8, 0x8a, 0xaa, 0x88, 0x7a, 0xce, 0x9a, 0xc6, 0xb6, 0xaa, 0xff, 0xea,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa3, 0x8a, 0xaa, 0x8a, 0x9b, 0xce, 0x79, 0xc6, 0xab, 0xea, 0xa8, 0x0a, 0x9a, 0xce, 0x7a, 0xc6, 0x0a, 0xa2, 0x0e, 0x00, 0xba, 0xce, 0x7a, 0xc6, 0xaf, 0xbf, 0xaa, 0xba,
+ 0xba, 0xce, 0x9a, 0xce, 0x57, 0x55, 0x5b, 0x76, 0xba, 0xce, 0x9a, 0xce, 0x55, 0xed, 0xa4, 0xb5, 0xbb, 0xd6, 0x99, 0xce, 0xd5, 0xfd, 0xfd, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0x7d, 0xff, 0xff, 0xeb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xee, 0xfb, 0x88, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xfe, 0xf5, 0xbf, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xfd, 0xbf, 0xba, 0x9a, 0xd6, 0xbb, 0xce, 0xf8, 0xee, 0xf5, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xe2, 0xaa, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xbb, 0xea, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0x9e, 0xfa, 0xfe, 0x8e, 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xab, 0xeb, 0x88,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xb3, 0xbe, 0xfb, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xab, 0xaf, 0xfe, 0xef, 0x9a, 0xd6, 0xbb, 0xce, 0xfc, 0xe2, 0xff, 0xbf, 0x9a, 0xd6, 0xbb, 0xce, 0xee, 0xbf, 0xaa, 0x72,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x66, 0xfa, 0xbb, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xaa, 0x8b, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0x9a, 0xaa, 0xab, 0x99, 0xd6, 0xbb, 0xce, 0x5f, 0xfe, 0xff, 0xfa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf9, 0xf9, 0xbf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xeb, 0xfd, 0xef, 0x3b, 0xe7, 0xc5, 0x51, 0x5c, 0x58, 0x50, 0xc0, 0xa8, 0x6a, 0xa6, 0x49, 0x0b, 0xd5, 0xfc, 0xc0,
+ 0x47, 0x62, 0xe6, 0x51, 0xf4, 0xb7, 0xa8, 0x03, 0x87, 0x62, 0xc5, 0x51, 0xff, 0xd5, 0xab, 0xe8, 0x67, 0x6a, 0x64, 0x41, 0xaa, 0x7a, 0x80, 0x02, 0x25, 0x62, 0x43, 0x41, 0xaa, 0xf5, 0x00, 0xa8,
+ 0xe5, 0x61, 0x84, 0x51, 0x48, 0xfd, 0xf8, 0xb2, 0xe4, 0x61, 0x43, 0x49, 0xde, 0x2a, 0x82, 0xaa, 0xe4, 0x61, 0x03, 0x49, 0xbf, 0xe8, 0x5a, 0xaa, 0x84, 0x59, 0x02, 0x41, 0x70, 0x7e, 0x55, 0xb8,
+ 0xe4, 0x61, 0x23, 0x41, 0x0d, 0x25, 0xd7, 0xff, 0x05, 0x62, 0x64, 0x51, 0x02, 0x8a, 0xaf, 0xe5, 0xe5, 0x61, 0x84, 0x59, 0xe8, 0x2a, 0x2c, 0x77, 0xe5, 0x61, 0x43, 0x59, 0xae, 0xa0, 0xa6, 0x5d,
+ 0x05, 0x62, 0x83, 0x59, 0x57, 0xbe, 0x2b, 0x2b, 0x05, 0x62, 0x64, 0x59, 0x57, 0x7b, 0xa0, 0x2a, 0x25, 0x6a, 0x44, 0x51, 0x7f, 0x6f, 0x82, 0xaa, 0xc5, 0x59, 0x24, 0x49, 0x57, 0xf7, 0xbe, 0x22,
+ 0xa4, 0x59, 0x03, 0x39, 0x7f, 0x7f, 0x7a, 0x58, 0x44, 0x51, 0xe2, 0x30, 0x5f, 0xed, 0xfe, 0x3f, 0x03, 0x6a, 0xc2, 0x30, 0xd7, 0xbf, 0x2b, 0x02, 0x25, 0x72, 0x83, 0x59, 0xd5, 0x7e, 0xaa, 0x82,
+ 0xe4, 0x69, 0x23, 0x49, 0x08, 0x97, 0xa8, 0xaa, 0xc4, 0x61, 0x62, 0x59, 0x80, 0x02, 0x6e, 0x68, 0xe4, 0x69, 0x23, 0x49, 0xaa, 0xe8, 0xd7, 0xba, 0xa4, 0x69, 0x43, 0x51, 0x75, 0xdf, 0xff, 0xa8,
+ 0xc5, 0x61, 0x43, 0x49, 0xaf, 0x2a, 0xff, 0x6a, 0x06, 0x6a, 0x23, 0x41, 0x0a, 0xaa, 0xff, 0x57, 0x26, 0x6a, 0x44, 0x49, 0x00, 0xbf, 0x5f, 0x2b, 0x46, 0x6a, 0x64, 0x51, 0xa8, 0xaa, 0x55, 0xea,
+ 0xe5, 0x61, 0xe2, 0x30, 0x78, 0xda, 0xaa, 0xa8, 0xe5, 0x61, 0x64, 0x51, 0x83, 0xdd, 0xaa, 0xdd, 0xc8, 0x6a, 0xa5, 0x59, 0xfd, 0x5d, 0xe5, 0x83, 0x6e, 0x9c, 0x84, 0x51, 0x7b, 0xfb, 0x5f, 0x3a,
+ 0x2d, 0xa4, 0x66, 0x6a, 0x5d, 0xd7, 0xef, 0x0a, 0x09, 0x7b, 0xc2, 0x38, 0x7a, 0xaa, 0xa0, 0xa8, 0x67, 0x62, 0xe3, 0x38, 0xf5, 0xaa, 0x20, 0x80, 0x26, 0x62, 0x44, 0x41, 0xea, 0x68, 0xe8, 0x68,
+ 0x47, 0x6a, 0x44, 0x49, 0xbd, 0xab, 0xab, 0x0a, 0xa9, 0x6a, 0xc5, 0x59, 0x7d, 0x2a, 0x8a, 0xa8, 0xcb, 0x8b, 0xe6, 0x59, 0x5d, 0xf7, 0xef, 0xe2, 0x0d, 0x9c, 0x47, 0x62, 0xd5, 0x5d, 0xbd, 0x3f,
+ 0xcf, 0xb4, 0xc9, 0x72, 0xbd, 0x07, 0x09, 0x0b, 0xef, 0xbc, 0xec, 0x9b, 0xf4, 0x58, 0x37, 0x8a, 0xd9, 0xe6, 0x2c, 0xa4, 0xfd, 0xff, 0x5f, 0x17, 0xdb, 0xd6, 0x11, 0xbd, 0x35, 0x0d, 0x02, 0x00,
+ 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xbf, 0xae, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xb7, 0x7d, 0x7f, 0xdf, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xab, 0xbb, 0xa2, 0xdb, 0xd6, 0xba, 0xd6, 0xfe, 0xe5, 0xae, 0x6f,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x7d, 0x57, 0xb6, 0x9f, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xae, 0xaf, 0xae, 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xff, 0xfb, 0xfa, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xef, 0xff, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xaa, 0x2a, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x6f, 0xbb, 0xae, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xef, 0xfe, 0xff, 0xaf, 0xda, 0xd6, 0xba, 0xce, 0xea, 0xa0, 0xa0, 0x00,
+ 0xdb, 0xde, 0xba, 0xce, 0xef, 0xff, 0xaa, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0x56, 0x8b, 0xea, 0xfe, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xea, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xfe, 0xab, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xdb, 0xeb, 0xab, 0x99, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xae, 0xab, 0xab, 0xdb, 0xde, 0xba, 0xce, 0xef, 0xfb, 0xba, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xab, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfd, 0xfd, 0xfa, 0xeb, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xba, 0xba, 0xeb, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xef, 0xee, 0xea, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xff, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0x5f, 0x7d, 0xbe, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xef, 0xab, 0xae, 0xdb, 0xde, 0xba, 0xd6, 0xd7, 0xff, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xea, 0xab,
+ 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xeb, 0xa2, 0x28, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xfa, 0xff, 0xaa, 0xba, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xbf, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xfe, 0xea, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xfe, 0xeb, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xef, 0xfb, 0xea, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xdf, 0xaf,
+ 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xab, 0xae, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xef, 0xaf, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xd7, 0xff, 0xff, 0xea, 0xdb, 0xde, 0xba, 0xce, 0xea, 0xbf, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfd, 0xdd, 0xff, 0xee, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xab, 0xaa, 0xaa, 0xda, 0xde, 0xbb, 0xce, 0xfe, 0xba, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xa7, 0xf6, 0xaf, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x6e, 0xef, 0xef, 0xb8, 0xdb, 0xde, 0x9a, 0xce, 0xaa, 0xae, 0xea, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xef, 0xfe, 0xff, 0xbf, 0xda, 0xd6, 0xbb, 0xd6, 0x7e, 0x7e, 0xbf, 0xf3,
+ 0x9b, 0xce, 0x79, 0xc6, 0xca, 0x02, 0xa2, 0x00, 0x79, 0xce, 0x9a, 0xc6, 0xfe, 0xda, 0xa8, 0xba, 0x9a, 0xce, 0x79, 0xc6, 0x0a, 0xa0, 0x20, 0x08, 0x9a, 0xd6, 0x79, 0xc6, 0xbf, 0xaa, 0xaa, 0xaa,
+ 0xbb, 0xce, 0x79, 0xc6, 0xef, 0xae, 0xae, 0xaa, 0xba, 0xce, 0x7a, 0xce, 0xbf, 0xbe, 0xba, 0xea, 0xbb, 0xd6, 0x79, 0xc6, 0xef, 0xef, 0xfa, 0xaa, 0xba, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xbf, 0xba,
+ 0xba, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xff, 0xab, 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xfb, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0x55, 0x55, 0xdd, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xdf, 0xf7, 0xbb,
+ 0xbb, 0xd6, 0x99, 0xce, 0xdd, 0xff, 0xfb, 0x9f, 0xbb, 0xd6, 0x99, 0xce, 0xfd, 0xbf, 0xaf, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xbb, 0xdf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xbb, 0xea, 0xea,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbf, 0xaa, 0xae, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xea, 0xaf, 0xbb, 0xd6, 0x99, 0xce, 0xaa, 0xa3, 0xaa, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xba, 0xaf, 0xab,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xab, 0xaa, 0xfa, 0xfe, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xae, 0xea, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xaf, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xff, 0xff, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0xee, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xeb, 0xab, 0xbe, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xbf, 0xbf, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xfe, 0xff, 0xf7,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xbf, 0xaf, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xf6, 0xfb, 0xff, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xbf, 0xee, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xba, 0xe9, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0x7f, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbf, 0xbb, 0xab, 0xfb, 0xde, 0xad, 0x83, 0x40, 0x00, 0x00, 0x00, 0xf5, 0xc5, 0x06, 0x5a, 0x55, 0x55, 0x55, 0x54,
+ 0x88, 0x62, 0xe3, 0x38, 0x82, 0xaf, 0xb6, 0xb0, 0x68, 0x62, 0xe4, 0x51, 0x20, 0xf9, 0xfd, 0x97, 0x67, 0x62, 0xc4, 0x51, 0x0a, 0xaf, 0xd7, 0x82, 0x26, 0x6a, 0xa4, 0x51, 0xfe, 0x5e, 0xb7, 0x08,
+ 0x45, 0x6a, 0x84, 0x59, 0x5a, 0x5d, 0xba, 0xa8, 0xe4, 0x61, 0x43, 0x49, 0xfb, 0xde, 0x78, 0x54, 0xe5, 0x59, 0x03, 0x41, 0xfb, 0xaa, 0xd7, 0x2e, 0xe4, 0x61, 0xe2, 0x38, 0xea, 0x5e, 0xae, 0x80,
+ 0xe5, 0x61, 0x43, 0x51, 0xf5, 0x8a, 0x0a, 0x02, 0xc4, 0x61, 0x03, 0x49, 0xad, 0xaa, 0xa8, 0x80, 0xe5, 0x61, 0x63, 0x59, 0xa2, 0x02, 0x22, 0x29, 0x04, 0x62, 0x63, 0x51, 0x7d, 0x7c, 0x62, 0xca,
+ 0x06, 0x6a, 0x23, 0x49, 0xad, 0x2f, 0xbf, 0xff, 0x05, 0x6a, 0xc4, 0x59, 0xb5, 0xae, 0xaa, 0xed, 0x05, 0x62, 0xa4, 0x59, 0x7c, 0xb0, 0xd8, 0x5a, 0xe5, 0x61, 0x43, 0x51, 0x7e, 0xa8, 0xa8, 0xef,
+ 0x84, 0x51, 0x82, 0x20, 0xfc, 0xfc, 0xd6, 0x7e, 0xc4, 0x61, 0x82, 0x20, 0x2f, 0x2f, 0x2f, 0x2d, 0xe4, 0x71, 0x83, 0x59, 0x0b, 0xaa, 0xab, 0x37, 0x04, 0x72, 0x62, 0x59, 0x62, 0xfa, 0x5e, 0xf0,
+ 0xc4, 0x61, 0x63, 0x59, 0xfb, 0xbf, 0x2f, 0xfb, 0xa4, 0x61, 0x23, 0x51, 0xe0, 0x7e, 0x7c, 0xf7, 0x44, 0x51, 0x02, 0x41, 0x2d, 0x2a, 0xa8, 0x0a, 0x84, 0x61, 0x22, 0x49, 0x82, 0xab, 0xf7, 0x0f,
+ 0xc3, 0x61, 0x84, 0x59, 0xbd, 0xe3, 0x97, 0xbd, 0x25, 0x72, 0x64, 0x59, 0xba, 0x3b, 0x7b, 0x6a, 0x66, 0x72, 0x64, 0x59, 0xfe, 0xb8, 0x7f, 0x7d, 0x05, 0x6a, 0x84, 0x59, 0x54, 0x7c, 0xeb, 0xab,
+ 0x87, 0x6a, 0xa4, 0x61, 0xfd, 0xbd, 0xad, 0x0b, 0x0d, 0x9c, 0x06, 0x62, 0xf5, 0xf5, 0x2f, 0x8b, 0xab, 0x93, 0x46, 0x62, 0xff, 0xf5, 0x0b, 0xed, 0xef, 0xb4, 0xc5, 0x61, 0x03, 0x5f, 0xfa, 0xbf,
+ 0xae, 0xb4, 0xa4, 0x59, 0xe0, 0x75, 0xeb, 0xea, 0xe9, 0x7a, 0x03, 0x49, 0x8a, 0xbf, 0xa8, 0x7a, 0x68, 0x6a, 0x23, 0x49, 0xa0, 0xea, 0xfa, 0xd5, 0x06, 0x5a, 0xc2, 0x30, 0xf0, 0x9e, 0x9f, 0x9e,
+ 0x88, 0x6a, 0xc6, 0x51, 0xf5, 0x2e, 0xbb, 0xaf, 0x0a, 0x7b, 0x06, 0x5a, 0xb7, 0x8a, 0x3d, 0xb5, 0xcc, 0x93, 0x47, 0x62, 0x5c, 0xf8, 0x8f, 0xad, 0x30, 0xbd, 0x05, 0x5a, 0xfe, 0xab, 0xa8, 0xde,
+ 0x30, 0xc5, 0x09, 0x7b, 0xa3, 0xbf, 0x5a, 0xaf, 0x76, 0xde, 0x66, 0x6a, 0xbf, 0xea, 0x5b, 0x3e, 0xfb, 0xde, 0xa8, 0x6a, 0x36, 0x01, 0x02, 0x00, 0xdb, 0xd6, 0xba, 0xd6, 0x7d, 0xde, 0x5e, 0x7d,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xbe, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0xff, 0x55, 0x75, 0x69, 0xdb, 0xd6, 0xba, 0xd6, 0xbd, 0x55, 0xdd, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xae, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xef, 0xee, 0xaf, 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xfb, 0xfa, 0xaf, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xeb, 0xff, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0xbb, 0xc2, 0x6a,
+ 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xef, 0xaf, 0xaa, 0xda, 0xd6, 0xbb, 0xd6, 0x8a, 0x6a, 0xfa, 0xab, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xdf, 0xfb, 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xba, 0xef, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xaa, 0xfe, 0xff, 0xda, 0xd6, 0xbb, 0xd6, 0x2a, 0xbc, 0x0a, 0x20, 0xdb, 0xde, 0xba, 0xce, 0xbe, 0xaa, 0xaa, 0xa8,
+ 0xdb, 0xde, 0xba, 0xd6, 0xb7, 0xbf, 0xbf, 0xaa, 0xfb, 0xd6, 0xba, 0xd6, 0xfb, 0xfa, 0xfe, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xba, 0xaf, 0xaa, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xee, 0xbe, 0xba,
+ 0xfb, 0xde, 0xda, 0xd6, 0x57, 0xff, 0xff, 0xf7, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xbe, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xfa, 0xef, 0xab, 0xee, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xea, 0xea, 0xaa,
+ 0xfb, 0xde, 0xda, 0xd6, 0x57, 0xd7, 0xd7, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0xff, 0xff, 0xf5, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xef, 0xab, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xfb, 0xee, 0xab,
+ 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x57, 0xff, 0xff, 0xda, 0xde, 0xbb, 0xd6, 0xff, 0xaa, 0xa0, 0x20, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x77, 0xf5, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xfe, 0xaa, 0xb2, 0x88,
+ 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xab, 0xeb, 0xab, 0xdb, 0xde, 0xba, 0xd6, 0xab, 0xba, 0xa8, 0x2a, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x5d, 0xff, 0xef, 0xfa, 0xde, 0xbb, 0xd6, 0xff, 0xbe, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xbe, 0xaa, 0xa2, 0xfb, 0xde, 0xba, 0xd6, 0xfb, 0xbf, 0xab, 0xaf, 0xdb, 0xde, 0xba, 0xd6, 0xee, 0xe8, 0xaa, 0x08, 0xdb, 0xde, 0xba, 0xd6, 0xab, 0xaa, 0x8a, 0x22,
+ 0xfa, 0xde, 0xdb, 0xd6, 0x7d, 0x5f, 0xff, 0x6d, 0xdb, 0xde, 0xba, 0xd6, 0xee, 0xaf, 0x2a, 0x82, 0xda, 0xde, 0xbb, 0xd6, 0x7e, 0xab, 0xbe, 0x8a, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xfa, 0xee, 0xa2,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfd, 0xff, 0xba, 0x2a, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xef, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xef, 0xfb, 0xfe,
+ 0xbb, 0xce, 0x99, 0xce, 0xf5, 0xff, 0xdb, 0x7b, 0x9a, 0xce, 0x7a, 0xc6, 0x08, 0x00, 0x00, 0x00, 0xba, 0xce, 0x9a, 0xce, 0x55, 0xe5, 0xf5, 0x55, 0x9b, 0xd6, 0xba, 0xc6, 0xaf, 0xef, 0xaf, 0xaa,
+ 0xba, 0xd6, 0x9a, 0xce, 0xdd, 0x55, 0x7d, 0xfd, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x95, 0x59, 0xdd, 0xbb, 0xce, 0x9a, 0xce, 0x5d, 0x75, 0x59, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0xc3, 0xf9, 0x79, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xaf, 0xaa, 0xaa, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xef, 0xef, 0xff, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0x7f, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xbb, 0xfe, 0x2e,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xe6, 0xaf, 0xba, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xaa, 0xbc, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xbf, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xfa, 0xbf, 0xaf,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xfa, 0xeb, 0xeb, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xef, 0xbb, 0x9a, 0xd6, 0xbb, 0xce, 0xad, 0xed, 0xde, 0xfa, 0x9a, 0xd6, 0xbb, 0xce, 0xfa, 0xef, 0xfd, 0xf7,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaf, 0xff, 0xba, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xeb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0x0b, 0x0a, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0x8a, 0xab, 0x2a,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xee, 0xbe, 0xff, 0xfe, 0x9a, 0xd6, 0xdb, 0xce, 0xbf, 0xaa, 0xbf, 0xfe, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xab, 0xee, 0xea, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xab, 0xfe, 0xba,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0x3a, 0xaa, 0x20, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xeb, 0xfa, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xaf, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xfe, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xff, 0xfa, 0xfd, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xff, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0x6c, 0xff, 0xff, 0x7f, 0x1a, 0xdf, 0x26, 0x5a, 0x54, 0x5c, 0x70, 0xc0,
+ 0xa9, 0x6a, 0x43, 0x51, 0x6e, 0xaa, 0xa0, 0xa2, 0x47, 0x62, 0x85, 0x51, 0x0b, 0x2b, 0x06, 0xf8, 0x87, 0x6a, 0x27, 0x5a, 0xff, 0xf7, 0xaf, 0x77, 0x67, 0x6a, 0x06, 0x62, 0x57, 0x7a, 0xc2, 0x2e,
+ 0x46, 0x72, 0xe5, 0x61, 0xf7, 0xff, 0x7f, 0xe0, 0x25, 0x6a, 0x84, 0x59, 0x72, 0xa6, 0xae, 0x82, 0x05, 0x62, 0x64, 0x59, 0xaa, 0xa8, 0x2a, 0x7e, 0x05, 0x6a, 0x44, 0x59, 0xa0, 0x0a, 0x00, 0xa9,
+ 0x05, 0x6a, 0x84, 0x61, 0x8a, 0xf2, 0xf8, 0x7a, 0xc4, 0x61, 0x43, 0x51, 0x60, 0xf8, 0xf0, 0xe8, 0x84, 0x59, 0x03, 0x41, 0x97, 0x56, 0xa8, 0x0e, 0xa4, 0x61, 0x03, 0x41, 0x2a, 0x95, 0xbf, 0xa0,
+ 0xe5, 0x61, 0x63, 0x59, 0x7f, 0xfa, 0xee, 0xa2, 0x05, 0x62, 0x43, 0x59, 0x8b, 0xad, 0xbf, 0xfa, 0xa4, 0x59, 0xa2, 0x28, 0xa8, 0xf8, 0x5a, 0xfa, 0x44, 0x51, 0xe3, 0x30, 0xae, 0xab, 0x29, 0x2a,
+ 0x63, 0x51, 0xc2, 0x38, 0x6a, 0xe2, 0xaa, 0xe8, 0x83, 0x59, 0xc2, 0x30, 0xad, 0xa9, 0x2b, 0x03, 0xe4, 0x69, 0x23, 0x49, 0x0d, 0x8a, 0x82, 0xa0, 0xa3, 0x61, 0x22, 0x51, 0xa8, 0x0d, 0xaa, 0xa2,
+ 0xa3, 0x61, 0x42, 0x51, 0xfe, 0x62, 0x5d, 0x2b, 0xc4, 0x61, 0x43, 0x51, 0xd7, 0xf5, 0x5f, 0xa8, 0xc4, 0x61, 0x43, 0x51, 0x5d, 0xe3, 0xa7, 0xba, 0xa4, 0x61, 0x43, 0x59, 0xe5, 0xbf, 0x2a, 0x08,
+ 0x05, 0x62, 0x84, 0x59, 0x9d, 0x3b, 0x2a, 0xeb, 0x25, 0x6a, 0x43, 0x49, 0xfa, 0xe8, 0x58, 0xde, 0xc4, 0x61, 0x83, 0x51, 0xa2, 0x8b, 0xbf, 0x8b, 0xe9, 0x7a, 0xa4, 0x61, 0xf5, 0x55, 0xbf, 0x37,
+ 0xe9, 0x7a, 0x05, 0x62, 0xfd, 0xaf, 0xfc, 0x5e, 0x09, 0x83, 0xc4, 0x59, 0x7a, 0xf2, 0xce, 0x7f, 0xc8, 0x72, 0x43, 0x49, 0xcb, 0xe2, 0xda, 0xf5, 0x6b, 0x8b, 0xc4, 0x59, 0xf3, 0xff, 0xf5, 0x2d,
+ 0x29, 0x8b, 0xc1, 0x40, 0x7b, 0xf3, 0xfa, 0xf8, 0xe4, 0x61, 0xe3, 0x40, 0xbd, 0xaf, 0x0a, 0x00, 0x88, 0x6a, 0x64, 0x51, 0x5d, 0xad, 0xbf, 0xa3, 0x06, 0x5a, 0xe3, 0x38, 0x9c, 0x96, 0xb4, 0xb4,
+ 0x29, 0x7b, 0xc5, 0x59, 0xfd, 0x5d, 0xd5, 0x2d, 0x2c, 0x9c, 0x67, 0x62, 0x7d, 0xd5, 0xbf, 0xf8, 0x8e, 0xac, 0x67, 0x6a, 0xf5, 0x7f, 0x3e, 0x2f, 0xef, 0xbc, 0x25, 0x5a, 0xaf, 0xae, 0x2a, 0xd0,
+ 0xd4, 0xc5, 0x69, 0x8b, 0xaf, 0xbb, 0xad, 0x3f, 0xfb, 0xd6, 0x8f, 0xa4, 0x03, 0x01, 0x02, 0x00, 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xa8, 0xea, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xff, 0xfb, 0xab,
+ 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xaf, 0xbe, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x23, 0xab, 0xfe, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xeb, 0xab, 0xea, 0xaa, 0xda, 0xd6, 0xbb, 0xd6, 0xa3, 0x00, 0x20, 0xfa,
+ 0xda, 0xde, 0xbb, 0xd6, 0xfb, 0xee, 0xaf, 0xfa, 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xfb, 0xaa, 0xaa, 0xfb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xea, 0xbe, 0xdb, 0xde, 0xda, 0xce, 0xff, 0xaa, 0xea, 0xba,
+ 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xfe, 0xfa, 0xfb, 0xde, 0xba, 0xce, 0xee, 0xba, 0xef, 0xbb, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xff, 0xfb, 0xff, 0xda, 0xde, 0xbb, 0xd6, 0xea, 0xff, 0xef, 0xff,
+ 0xdb, 0xde, 0xba, 0xd6, 0xae, 0xea, 0xff, 0xbb, 0xfb, 0xde, 0xba, 0xce, 0xbb, 0xaf, 0xaa, 0xaf, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xa8, 0xae, 0xfa, 0xde, 0xbb, 0xd6, 0xbe, 0xae, 0xbf, 0xfb,
+ 0xfb, 0xde, 0xda, 0xd6, 0xd5, 0x9d, 0xd7, 0xbd, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xbf, 0xdf, 0xdf, 0xfa, 0xde, 0xdb, 0xd6, 0xdf, 0xf7, 0xff, 0x77, 0xfb, 0xde, 0xba, 0xd6, 0xaf, 0xae, 0xae, 0xaa,
+ 0xfb, 0xde, 0xda, 0xd6, 0xed, 0xfb, 0xd7, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xf6, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xae, 0xbf, 0xab, 0xfb, 0xde, 0xda, 0xd6, 0xbb, 0xeb, 0xab, 0xea,
+ 0xfb, 0xde, 0xda, 0xd6, 0xbf, 0xfb, 0xea, 0xae, 0xfa, 0xde, 0xdb, 0xd6, 0xea, 0xae, 0xaf, 0xfb, 0xda, 0xde, 0xfb, 0xd6, 0xaa, 0xaa, 0xaf, 0xa8, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xbf, 0xfb, 0xff,
+ 0xdb, 0xde, 0xfa, 0xd6, 0x2f, 0xab, 0xee, 0xba, 0xfb, 0xde, 0xda, 0xd6, 0xef, 0xee, 0xff, 0xfa, 0xfb, 0xde, 0xda, 0xd6, 0xbe, 0xfa, 0xfe, 0x7b, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xaa, 0xea, 0xaa,
+ 0xbb, 0xde, 0xfa, 0xd6, 0xfb, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xba, 0xaa, 0xaa, 0xab, 0xfb, 0xde, 0xda, 0xd6, 0xfb, 0xef, 0xfb, 0xf5, 0xdb, 0xde, 0xfa, 0xd6, 0xa8, 0xfa, 0xaa, 0xaa,
+ 0xda, 0xde, 0xfb, 0xd6, 0xea, 0xaa, 0xaa, 0xfa, 0xfb, 0xde, 0xda, 0xd6, 0xfe, 0xff, 0xff, 0xaf, 0xda, 0xde, 0xfb, 0xd6, 0xab, 0xbe, 0xaa, 0xba, 0xda, 0xde, 0xfb, 0xd6, 0xea, 0xaa, 0xaf, 0xaa,
+ 0xfb, 0xde, 0xda, 0xd6, 0xbe, 0xee, 0xfb, 0xef, 0xfa, 0xde, 0xdb, 0xd6, 0xdf, 0xab, 0xbe, 0xbb, 0xfa, 0xde, 0xdb, 0xd6, 0xfd, 0xee, 0xea, 0xaa, 0xfb, 0xde, 0xda, 0xd6, 0x7b, 0x6f, 0xef, 0xfa,
+ 0xdb, 0xde, 0xfa, 0xd6, 0x8a, 0xaa, 0xaf, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xfe, 0xaa, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xbe, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xff, 0xff,
+ 0xbb, 0xd6, 0x99, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xba, 0xce, 0x99, 0xce, 0xfe, 0xff, 0xff, 0xfa, 0xba, 0xce, 0x9a, 0xce, 0xb5, 0xd5, 0x55, 0xdf, 0xbb, 0xce, 0x9a, 0xce, 0x5e, 0xb5, 0xdd, 0x2b,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x75, 0xfd, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0x9f, 0xb7, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0x6f, 0xff, 0xef, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xdf, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xba, 0xba, 0x6a, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfa, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xef, 0xfe, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xeb, 0xef, 0xeb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xbf, 0xff, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xba, 0x9a, 0xd6, 0xbb, 0xce, 0xdd, 0xff, 0xbe, 0xf7, 0x9a, 0xd6, 0xbb, 0xce, 0x9f, 0x97, 0xfe, 0xef,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xba, 0xbe, 0xbb, 0xef, 0x9a, 0xd6, 0xdb, 0xce, 0xbe, 0xbe, 0xfa, 0xeb, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xef, 0xbb, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xae, 0xa8, 0xa8,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xeb, 0xaf, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xd7, 0x7d, 0x77, 0x7f, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xff, 0xea, 0xbf, 0xba, 0xd6, 0xdb, 0xce, 0x2e, 0x2a, 0xaa, 0x80,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xeb, 0x7f, 0xdf, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xfa, 0xff, 0xfe, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xbe, 0xbb, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xbf, 0xfb, 0xbe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xae, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x28, 0x2e, 0x2a, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xaf, 0xaf, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xbe, 0xa8, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xbf, 0xbf, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xff, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xef, 0xaa, 0xaa, 0xaa, 0x3b, 0xdf, 0xba, 0xce, 0x15, 0x55, 0x55, 0x55,
+ 0xfa, 0xde, 0xe5, 0x51, 0x54, 0x70, 0xc0, 0x80, 0x06, 0x5a, 0x44, 0x41, 0x70, 0xe2, 0x8a, 0x9e, 0x46, 0x6a, 0x42, 0x39, 0x00, 0xed, 0xbd, 0xaf, 0x26, 0x62, 0x83, 0x49, 0xfc, 0x0b, 0x82, 0xd7,
+ 0x26, 0x62, 0x63, 0x49, 0xa8, 0xaa, 0xb6, 0x5f, 0x26, 0x6a, 0xa4, 0x51, 0xfa, 0xca, 0xf5, 0xfd, 0xe5, 0x61, 0x83, 0x59, 0xf2, 0x2d, 0x21, 0xc2, 0xc4, 0x61, 0x83, 0x59, 0x5f, 0xdc, 0x3e, 0xfc,
+ 0xe5, 0x61, 0x02, 0x51, 0x8a, 0xae, 0xaa, 0x7e, 0xc4, 0x61, 0xc3, 0x48, 0xa0, 0xa0, 0x62, 0xab, 0xc4, 0x61, 0xe3, 0x40, 0xbf, 0xab, 0xb5, 0x07, 0xc4, 0x61, 0x43, 0x59, 0x3b, 0x0a, 0x75, 0x00,
+ 0xe4, 0x61, 0x84, 0x59, 0xa0, 0xaf, 0xbf, 0x82, 0xc4, 0x61, 0x22, 0x49, 0xa0, 0x7e, 0xfe, 0xea, 0x83, 0x51, 0xe2, 0x40, 0xa7, 0x8d, 0xfe, 0x2f, 0x64, 0x61, 0x02, 0x41, 0x5f, 0xef, 0xff, 0x0a,
+ 0x84, 0x61, 0xe2, 0x48, 0xa5, 0x2b, 0xff, 0x2a, 0xe5, 0x69, 0x02, 0x41, 0xbf, 0xbf, 0x27, 0x2e, 0xe4, 0x69, 0x43, 0x51, 0xa8, 0xea, 0x7a, 0xfe, 0xa4, 0x61, 0x62, 0x51, 0xfa, 0x7b, 0x76, 0xbb,
+ 0xc4, 0x69, 0x83, 0x59, 0xab, 0xad, 0xfa, 0xf0, 0xc4, 0x61, 0x63, 0x59, 0xb0, 0xab, 0xbe, 0xbd, 0xa4, 0x69, 0xc4, 0x51, 0x80, 0x7a, 0xea, 0xff, 0x05, 0x62, 0x84, 0x51, 0xdf, 0xef, 0xfe, 0xa2,
+ 0xe5, 0x61, 0xa4, 0x59, 0x7b, 0xf8, 0xaa, 0x80, 0xc4, 0x59, 0x03, 0x41, 0x36, 0xa7, 0x3f, 0x2b, 0x05, 0x62, 0x84, 0x59, 0xff, 0xb5, 0x95, 0x25, 0x08, 0x73, 0xe5, 0x61, 0xbd, 0xbf, 0x23, 0x7a,
+ 0xe8, 0x7a, 0xc5, 0x51, 0x3e, 0x7e, 0xa0, 0x7a, 0x47, 0x62, 0x43, 0x49, 0x60, 0xf8, 0xf4, 0xad, 0xc8, 0x7a, 0x42, 0x49, 0xfd, 0xaf, 0xff, 0x2f, 0xca, 0x93, 0xe5, 0x59, 0x85, 0xff, 0xf5, 0xf7,
+ 0xab, 0x93, 0x05, 0x62, 0x57, 0xdf, 0x0b, 0xba, 0x6d, 0xac, 0xe5, 0x61, 0xfd, 0xbd, 0xab, 0x0b, 0xce, 0xbc, 0x84, 0x49, 0xfa, 0xe2, 0x60, 0x60, 0x46, 0x62, 0xc3, 0x38, 0xb6, 0xbf, 0xbd, 0x2f,
+ 0xae, 0xac, 0xe6, 0x51, 0xd5, 0xf5, 0x25, 0x0a, 0x0f, 0xbd, 0x67, 0x62, 0xbd, 0xbd, 0x80, 0x6a, 0xcf, 0xb4, 0x64, 0x49, 0x88, 0x62, 0x56, 0xef, 0x8e, 0xa4, 0xc5, 0x51, 0x35, 0xad, 0x2f, 0x0b,
+ 0xba, 0xd6, 0x6e, 0xa4, 0x35, 0x05, 0x15, 0x0f, 0xdb, 0xd6, 0xba, 0xd6, 0xdb, 0x9e, 0x27, 0xfe, 0xdb, 0xd6, 0xba, 0xd6, 0x27, 0x82, 0xac, 0xae, 0xda, 0xde, 0xbb, 0xce, 0xba, 0xaa, 0xab, 0xef,
+ 0xda, 0xd6, 0xbb, 0xd6, 0xfb, 0x00, 0x20, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xaf, 0xaf, 0xff, 0xfe, 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xbe, 0xae, 0xe7, 0xda, 0xde, 0xbb, 0xd6, 0xbe, 0xba, 0xaf, 0xff,
+ 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xbf, 0xfe, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xff, 0xfe, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xff, 0xfd, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x2a, 0xfe, 0x28, 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0xaa, 0x30, 0x28, 0xdb, 0xde, 0xba, 0xd6, 0xf7, 0xff, 0xfe, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xbb, 0xff, 0xfe, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x0a, 0x2a, 0xb0, 0xda, 0xd6, 0xbb, 0xd6, 0xe8, 0x2a, 0x2a, 0x82, 0xda, 0xde, 0xbb, 0xd6, 0xeb, 0xaa, 0xab, 0xaf, 0xfb, 0xde, 0xba, 0xd6, 0xfb, 0xef, 0xff, 0xaf,
+ 0xfb, 0xde, 0xda, 0xd6, 0xf5, 0x57, 0x5d, 0x5f, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xfb, 0xff, 0xef, 0xfb, 0xde, 0xba, 0xd6, 0xaf, 0xaa, 0xea, 0xfb, 0xfb, 0xde, 0xba, 0xd6, 0xba, 0xbe, 0xbf, 0xbf,
+ 0xdb, 0xde, 0xba, 0xd6, 0x0a, 0x2a, 0xee, 0xaf, 0xfa, 0xde, 0xbb, 0xd6, 0xaa, 0xae, 0xbf, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xaa, 0xab, 0xfa, 0xfe, 0xda, 0xde, 0xfb, 0xd6, 0xae, 0xbf, 0xaa, 0xaa,
+ 0xfa, 0xde, 0xdb, 0xd6, 0xaa, 0xff, 0xff, 0xf5, 0xfa, 0xde, 0xdb, 0xd6, 0xfa, 0xfa, 0xbf, 0x77, 0xfb, 0xde, 0xda, 0xd6, 0xae, 0xff, 0xee, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xf9, 0xea, 0xaa, 0xbf,
+ 0xda, 0xde, 0xfb, 0xd6, 0xaa, 0xaa, 0xfb, 0xfe, 0xfb, 0xde, 0xda, 0xd6, 0xaa, 0xaf, 0xeb, 0xfd, 0xda, 0xde, 0xfb, 0xd6, 0xaa, 0xea, 0xaa, 0xbf, 0xfb, 0xde, 0xda, 0xd6, 0xaa, 0xfe, 0xbb, 0xff,
+ 0xdb, 0xde, 0xfa, 0xd6, 0xaa, 0xaa, 0xfa, 0xea, 0xfa, 0xde, 0xdb, 0xd6, 0xfb, 0xfa, 0xef, 0xfe, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xff, 0xbf, 0xf7, 0xfb, 0xde, 0xda, 0xd6, 0xfb, 0xff, 0xff, 0xdf,
+ 0xda, 0xde, 0xfb, 0xd6, 0xaa, 0xaa, 0xaa, 0xff, 0xdb, 0xde, 0xfa, 0xd6, 0xaa, 0xbb, 0xaf, 0xae, 0xfb, 0xde, 0xda, 0xd6, 0xae, 0xde, 0xff, 0xff, 0xdb, 0xde, 0xfa, 0xd6, 0xaa, 0xbf, 0xba, 0xbe,
+ 0xfb, 0xde, 0xda, 0xd6, 0xaa, 0xea, 0xba, 0xdf, 0xfa, 0xde, 0xdb, 0xd6, 0xea, 0xab, 0x77, 0xfe, 0xfb, 0xde, 0xda, 0xd6, 0xae, 0xda, 0xbb, 0xfb, 0xdb, 0xde, 0xfa, 0xd6, 0x2a, 0xaa, 0xfa, 0xea,
+ 0xfb, 0xde, 0xda, 0xd6, 0xfe, 0xee, 0xfe, 0x75, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xf7, 0xfa, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xfa, 0xaa, 0xaa, 0xfe, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xfb, 0xba, 0xff,
+ 0xba, 0xce, 0x7a, 0xce, 0xff, 0xfa, 0xba, 0xba, 0xba, 0xce, 0x9a, 0xce, 0xdd, 0xf5, 0xf5, 0x35, 0xbb, 0xce, 0x9a, 0xce, 0x57, 0xf5, 0xdd, 0x65, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0x7f, 0xd7, 0x97,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xfd, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xbf, 0xff, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xee, 0xbb, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xe5, 0xef, 0xfe, 0x8e,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xae, 0xbf, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xba, 0xaa, 0xae, 0x9a, 0xd6, 0xbb, 0xce, 0xae, 0xef, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xaf, 0xba, 0xaf,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0xbb, 0xf7, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xba, 0xaa, 0xbf, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xab, 0xfb, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xfd, 0xff, 0xf7, 0xd5,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xaf, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0x8b, 0x08, 0x22, 0x8a, 0xba, 0xd6, 0xdb, 0xce, 0x8b, 0xab, 0xaa, 0x8a, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xaa, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xef, 0xfb, 0xab, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0x7f, 0x7f, 0xff, 0xbb, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xaa, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0xab, 0xaa, 0x8a, 0xab,
+ 0xba, 0xd6, 0xdb, 0xce, 0x8b, 0xa8, 0xaa, 0xee, 0x9a, 0xd6, 0xdb, 0xce, 0xab, 0xaa, 0xbf, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xfa, 0xfe, 0xeb, 0x9a, 0xd6, 0xbb, 0xce, 0xde, 0x5b, 0xff, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xfa, 0xae, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xfa, 0xaa, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xfa, 0xff, 0x7f, 0x9b, 0xd6, 0xba, 0xce, 0x7f, 0xf5, 0xd7, 0xb5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xca, 0xef, 0xbb, 0x9a, 0xd6, 0xbb, 0xce, 0xaf, 0xaf, 0xff, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xe3, 0xaa, 0xaa, 0xe8, 0x9b, 0xd6, 0xba, 0xce, 0x5f, 0xed, 0x55, 0xbf,
+ 0x1b, 0xdf, 0x26, 0x5a, 0x40, 0x40, 0xc0, 0x00, 0xe9, 0x6a, 0xc5, 0x51, 0x55, 0x7f, 0x7e, 0xa0, 0x46, 0x62, 0xa4, 0x49, 0xd5, 0xef, 0xff, 0xa0, 0x26, 0x62, 0xa4, 0x49, 0x6e, 0x62, 0xfa, 0xaa,
+ 0x26, 0x62, 0xa5, 0x51, 0x7d, 0xa0, 0x89, 0x2a, 0x05, 0x62, 0xa5, 0x59, 0xab, 0xbd, 0x2a, 0xb0, 0x25, 0x6a, 0xa4, 0x59, 0x57, 0xbf, 0xa0, 0xb2, 0xe5, 0x61, 0x43, 0x51, 0xdf, 0x5a, 0xea, 0xc0,
+ 0xe5, 0x69, 0x84, 0x59, 0xa3, 0x8f, 0xa9, 0xeb, 0xe4, 0x61, 0x63, 0x59, 0xe2, 0x6a, 0x5a, 0xab, 0xe5, 0x69, 0xe2, 0x48, 0x0f, 0xa9, 0xab, 0xad, 0xe4, 0x61, 0x43, 0x51, 0x08, 0x02, 0x8b, 0xdd,
+ 0xc5, 0x61, 0x43, 0x51, 0x00, 0x02, 0x32, 0xad, 0xc4, 0x59, 0xe2, 0x48, 0xe0, 0xe0, 0xe8, 0x7f, 0x83, 0x59, 0x22, 0x51, 0x2b, 0xab, 0xf9, 0xbd, 0xa3, 0x61, 0x02, 0x59, 0xaa, 0xff, 0xf7, 0x22,
+ 0xa3, 0x61, 0x22, 0x59, 0xab, 0xa3, 0xd7, 0x2e, 0xe4, 0x61, 0x42, 0x59, 0x2f, 0x2f, 0xe7, 0xff, 0xc4, 0x69, 0x63, 0x59, 0xd0, 0xf8, 0xeb, 0xd4, 0xe4, 0x69, 0x83, 0x59, 0xbf, 0x39, 0xb7, 0xda,
+ 0xc4, 0x69, 0x83, 0x59, 0xa8, 0xe0, 0xc8, 0xdf, 0xe5, 0x61, 0x83, 0x59, 0xa2, 0xfe, 0xba, 0x5f, 0xe5, 0x61, 0x63, 0x59, 0xaa, 0x2a, 0xac, 0xa5, 0x26, 0x6a, 0x84, 0x59, 0xff, 0xb8, 0xff, 0xd7,
+ 0x25, 0x62, 0x64, 0x51, 0xba, 0xa8, 0xff, 0xd7, 0xc5, 0x61, 0x02, 0x49, 0x2a, 0x82, 0x29, 0xba, 0x46, 0x6a, 0x63, 0x51, 0x0a, 0x2a, 0x8a, 0xf5, 0x8b, 0x93, 0x06, 0x62, 0x1a, 0xfb, 0xd5, 0x7d,
+ 0x09, 0x83, 0x43, 0x49, 0x78, 0x7a, 0x7e, 0xdf, 0x05, 0x62, 0x84, 0x51, 0xad, 0xab, 0x2b, 0x02, 0x49, 0x83, 0xc5, 0x59, 0xf5, 0xcb, 0xeb, 0x5f, 0x2c, 0x9c, 0xc5, 0x51, 0xa9, 0xaf, 0x2f, 0xf5,
+ 0x8e, 0xb4, 0x29, 0x83, 0xd7, 0xbf, 0xeb, 0x89, 0xee, 0xbc, 0x29, 0x8b, 0xab, 0xa2, 0xf7, 0xaa, 0x8d, 0xb4, 0x22, 0x49, 0x60, 0xea, 0xe0, 0xea, 0x8f, 0xa4, 0x64, 0x49, 0xb5, 0x87, 0x87, 0x57,
+ 0x0f, 0xbd, 0x64, 0x51, 0x02, 0xe0, 0x5e, 0x55, 0x8e, 0xac, 0x84, 0x49, 0xf8, 0xf5, 0x55, 0xf5, 0x4d, 0xa4, 0xa5, 0x51, 0x3f, 0x2f, 0x0b, 0x58, 0x72, 0xc5, 0x22, 0x49, 0x2a, 0xa2, 0xd7, 0xd5,
+ 0xfb, 0xde, 0x07, 0x5a, 0x00, 0x03, 0x09, 0x35, 0xda, 0xd6, 0xbb, 0xd6, 0xdd, 0xcb, 0x6f, 0x77, 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0xbe, 0xeb, 0x96, 0xda, 0xde, 0xbb, 0xd6, 0xee, 0xff, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x8e, 0xfa, 0xba, 0xb6, 0xdb, 0xd6, 0xba, 0xd6, 0xa8, 0xe2, 0x08, 0xe6, 0xdb, 0xd6, 0xba, 0xd6, 0xa8, 0xaf, 0xa3, 0xe8, 0xdb, 0xd6, 0xba, 0xd6, 0x82, 0x3a, 0x2a, 0xe2,
+ 0xdb, 0xde, 0xba, 0xce, 0xea, 0xbe, 0xba, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0x0b, 0x00, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xa2, 0x28, 0x80, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0x29, 0x0a, 0x28, 0x28,
+ 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xba, 0xaf, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x8a, 0x80, 0xf0, 0xb0, 0xfa, 0xd6, 0xbb, 0xd6, 0xfa, 0xff, 0xff, 0xba, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xfb, 0xfd, 0xff,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfe, 0xbf, 0xee, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x0c, 0xfe, 0x82, 0x83, 0xdb, 0xde, 0xba, 0xd6, 0xfa, 0xff, 0xff, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xab, 0xff, 0xff, 0xff,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xae, 0xfb, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x88, 0x0a, 0x8a, 0xae, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0xac, 0xa0, 0x8a, 0xdb, 0xd6, 0xba, 0xd6, 0x0e, 0x03, 0xe8, 0x00,
+ 0xdb, 0xde, 0xba, 0xd6, 0x9b, 0xff, 0xff, 0xbb, 0xda, 0xde, 0xbb, 0xd6, 0xea, 0xff, 0xff, 0x7f, 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xab, 0xab, 0xee, 0xfb, 0xde, 0xda, 0xd6, 0x7d, 0x55, 0x5d, 0x55,
+ 0xfb, 0xde, 0xda, 0xd6, 0xdf, 0xfd, 0xd5, 0x57, 0xfb, 0xd6, 0xda, 0xd6, 0x79, 0xf5, 0x57, 0x96, 0xfb, 0xd6, 0xda, 0xd6, 0x5a, 0x7f, 0xdd, 0x7e, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xfd, 0xfd, 0xfd,
+ 0xfb, 0xde, 0xba, 0xd6, 0xae, 0xaf, 0xba, 0xbe, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xff, 0x7d, 0x57, 0xfb, 0xde, 0xda, 0xd6, 0xbf, 0xf7, 0xf5, 0xf5, 0xfb, 0xde, 0xda, 0xd6, 0xdf, 0x5f, 0xff, 0xff,
+ 0xfc, 0xde, 0xda, 0xd6, 0x9f, 0xdf, 0x5f, 0x55, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xff, 0xfe, 0xef, 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xaf, 0xfa, 0xfb, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xbf, 0xba, 0xff,
+ 0xfb, 0xde, 0xda, 0xd6, 0xbf, 0xdd, 0xd5, 0x55, 0xfa, 0xde, 0xdb, 0xd6, 0xdf, 0x7f, 0x5d, 0x75, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xee, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0x7f, 0xdf, 0xf5,
+ 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xfb, 0xff, 0xfd, 0xba, 0xde, 0xfb, 0xd6, 0xfe, 0xae, 0xea, 0xaf, 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xff, 0xbf, 0xbf, 0xfb, 0xd6, 0xba, 0xd6, 0xaf, 0xff, 0xae, 0xff,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfa, 0xbe, 0xaf, 0xea, 0xfb, 0xd6, 0xba, 0xd6, 0xeb, 0xfe, 0xfa, 0xfa, 0xfb, 0xde, 0xda, 0xd6, 0x77, 0x55, 0x65, 0xd7, 0xfb, 0xd6, 0xba, 0xd6, 0xee, 0xfa, 0xff, 0xee,
+ 0xbb, 0xd6, 0x79, 0xce, 0xff, 0xff, 0xeb, 0xbe, 0xba, 0xd6, 0x9a, 0xce, 0x55, 0xd7, 0xdf, 0xff, 0xbb, 0xd6, 0x99, 0xc6, 0xbf, 0xff, 0xaf, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xfd, 0xdf, 0xff,
+ 0xbb, 0xce, 0x9a, 0xce, 0xfe, 0xf5, 0xf7, 0xd6, 0xbb, 0xce, 0x9a, 0xce, 0x6b, 0xef, 0xef, 0x6a, 0xba, 0xd6, 0x9a, 0xce, 0xbf, 0xef, 0xfe, 0xaf, 0xbb, 0xd6, 0xb9, 0xce, 0xff, 0x97, 0xbf, 0xfb,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x6f, 0xfa, 0xff, 0xb5, 0x9a, 0xd6, 0xbb, 0xce, 0xfb, 0xff, 0xeb, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xef, 0xf5, 0x5a, 0x9a, 0xd6, 0xbb, 0xce, 0x8a, 0x7f, 0xff, 0xf5,
+ 0x9b, 0xd6, 0xba, 0xce, 0xbf, 0x5d, 0xff, 0x7f, 0xbb, 0xd6, 0xba, 0xce, 0xde, 0xaa, 0xab, 0x8a, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xee, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xae, 0xac,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xae, 0xeb, 0xfb, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xaa, 0xab, 0xba, 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xab, 0xbf, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0xff, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xfb, 0xba, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xbf, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xef, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xea, 0xaf, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0x28, 0xea, 0xa8, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xea, 0xfe, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xfe, 0xfe, 0xab, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xae, 0xaa, 0xef,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xaf, 0xff, 0xfb, 0x9a, 0xd6, 0xdb, 0xce, 0xba, 0xaf, 0xfe, 0xea, 0x9a, 0xd6, 0xbb, 0xce, 0xef, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0x57, 0xef, 0x7f, 0xde,
+ 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xe8, 0xaa, 0xea, 0x9a, 0xd6, 0xbb, 0xce, 0xee, 0xbd, 0xff, 0x75, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbb, 0xef, 0xeb, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfa, 0xea, 0xfa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaf, 0xba, 0xfa, 0xfb, 0xde, 0x27, 0x5a, 0x5c, 0x60, 0x80, 0x00, 0x1a, 0xdf, 0xc6, 0x51, 0x55, 0x55, 0x55, 0x58, 0x46, 0x62, 0xe5, 0x59, 0x2d, 0x0d, 0x78, 0xfa,
+ 0x26, 0x6a, 0xc4, 0x59, 0x28, 0xbc, 0xf6, 0xbb, 0x05, 0x62, 0xa4, 0x59, 0xf8, 0xfb, 0xdb, 0xf0, 0xe6, 0x61, 0xc4, 0x59, 0x88, 0xbd, 0x3d, 0xcb, 0xe5, 0x69, 0x43, 0x59, 0xe0, 0xe8, 0x6a, 0xe2,
+ 0xc4, 0x61, 0x22, 0x51, 0x0a, 0xbf, 0xfd, 0xa2, 0xc5, 0x61, 0x02, 0x51, 0xaa, 0x5e, 0x82, 0xae, 0xc4, 0x61, 0xc2, 0x40, 0x0d, 0x03, 0xab, 0xbf, 0xa4, 0x61, 0x63, 0x51, 0x54, 0xa0, 0x7b, 0xee,
+ 0xc4, 0x61, 0xc2, 0x38, 0x82, 0xa8, 0xaa, 0x7a, 0xa4, 0x61, 0x61, 0x20, 0x28, 0x0a, 0x0a, 0x25, 0x04, 0x6a, 0x63, 0x59, 0xbb, 0xa5, 0x2a, 0xef, 0x24, 0x72, 0xc3, 0x61, 0xf5, 0xab, 0xea, 0xef,
+ 0xe4, 0x69, 0x63, 0x51, 0xa8, 0xa0, 0x78, 0xf4, 0xc4, 0x61, 0x63, 0x59, 0xe6, 0xb0, 0xef, 0x82, 0x04, 0x6a, 0x43, 0x59, 0xbf, 0x8b, 0xd7, 0x0a, 0xe5, 0x69, 0x83, 0x49, 0xa2, 0xa8, 0x6a, 0xea,
+ 0xe5, 0x61, 0x23, 0x41, 0x28, 0x2a, 0x2f, 0x29, 0x05, 0x6a, 0x83, 0x51, 0xfa, 0x6a, 0xaa, 0x00, 0xe5, 0x69, 0x83, 0x51, 0x2f, 0xa9, 0x08, 0xa2, 0x05, 0x62, 0xa4, 0x59, 0xba, 0xf2, 0xa0, 0x7e,
+ 0xc5, 0x61, 0x63, 0x51, 0x09, 0xe9, 0x83, 0x83, 0x46, 0x62, 0xa4, 0x59, 0xbf, 0xbd, 0x29, 0xab, 0x87, 0x72, 0xe5, 0x61, 0xed, 0xe7, 0x83, 0x8b, 0x87, 0x72, 0x05, 0x62, 0xf0, 0xfd, 0xba, 0xf0,
+ 0x08, 0x83, 0xc2, 0x40, 0x57, 0xbf, 0xaa, 0x2a, 0x29, 0x83, 0xe2, 0x38, 0xbd, 0x2f, 0xaa, 0x20, 0x4d, 0xa4, 0xc4, 0x59, 0xd5, 0xf7, 0x2b, 0xaa, 0xae, 0xb4, 0x63, 0x51, 0xab, 0x2a, 0xa2, 0x7e,
+ 0x6d, 0xb4, 0x23, 0x49, 0x00, 0x88, 0xea, 0x55, 0x4c, 0xac, 0x83, 0x51, 0x20, 0xaa, 0x7f, 0xdb, 0xaa, 0x9b, 0x23, 0x41, 0x60, 0x5a, 0x5a, 0x5a, 0xa4, 0x51, 0x24, 0x49, 0xa0, 0xeb, 0xb5, 0xfb,
+ 0xc5, 0x51, 0x44, 0x49, 0xeb, 0x77, 0xbb, 0x3f, 0xcc, 0x9b, 0x64, 0x41, 0x25, 0xed, 0x8f, 0x9f, 0x8a, 0x93, 0x03, 0x39, 0x5c, 0x57, 0xf5, 0xf5, 0xcc, 0x9b, 0x43, 0x51, 0xf5, 0xf5, 0x9d, 0x0d,
+ 0xfb, 0xde, 0xe5, 0x61, 0x35, 0x1d, 0x2d, 0x2d, 0xda, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xab, 0xa8, 0x2a, 0x8b, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xaa, 0xab,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xbe, 0x26, 0xd6, 0xbd, 0xdb, 0xd6, 0xba, 0xd6, 0x7e, 0xbe, 0xfa, 0xf2, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0xeb, 0xea, 0xda, 0xd6, 0xbb, 0xce, 0xaa, 0xea, 0xee, 0x6b,
+ 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xae, 0xaa, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xab, 0xaf, 0xaa, 0xbb, 0xd6, 0xda, 0xce, 0x02, 0x8a, 0xaf, 0xab, 0xdb, 0xde, 0xba, 0xce, 0xeb, 0xfe, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xa2, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xef, 0xfb, 0xfe, 0xef, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xaf, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xef, 0x82, 0x88, 0xa6, 0xbb, 0xde, 0xda, 0xce, 0xfa, 0xfb, 0xff, 0xef, 0xdb, 0xd6, 0xba, 0xd6, 0xfa, 0xa8, 0x20, 0x88, 0xdb, 0xde, 0xba, 0xce, 0xbe, 0xbe, 0xfb, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x2b, 0x3a, 0x82, 0x8a, 0xdb, 0xde, 0xba, 0xd6, 0xfd, 0xff, 0xbf, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xc2, 0x80, 0x80, 0xb0, 0xdb, 0xde, 0xba, 0xce, 0xea, 0xfe, 0xaa, 0xaf,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x18, 0x00, 0x30, 0x2b, 0xdb, 0xd6, 0xba, 0xd6, 0xf2, 0x02, 0xa2, 0x08, 0xdb, 0xd6, 0xba, 0xd6, 0x82, 0x22, 0x2e, 0xa4, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x03, 0x2e, 0x08,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x80, 0x03, 0x00, 0x00, 0xda, 0xd6, 0xbb, 0xd6, 0x00, 0xa0, 0x82, 0x38, 0xfb, 0xde, 0xba, 0xce, 0xae, 0xea, 0xef, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x02, 0x30, 0x88,
+ 0xdb, 0xde, 0xba, 0xd6, 0xae, 0xaf, 0xff, 0xbe, 0xfb, 0xde, 0xba, 0xce, 0xba, 0xef, 0xfe, 0xfb, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xae, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xff, 0xfb, 0xff,
+ 0xfb, 0xde, 0xba, 0xce, 0xab, 0xaf, 0xfb, 0xff, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xaf, 0xfb, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xba, 0xaf, 0xdb, 0xde, 0xda, 0xce, 0xea, 0xaa, 0xfa, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xa8, 0xaa, 0xaa, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xfb, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xef, 0xba, 0xea, 0xda, 0xde, 0xbb, 0xd6, 0xeb, 0xfa, 0xff, 0xbf,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xfb, 0xeb, 0xff, 0xfb, 0xd6, 0xda, 0xd6, 0x65, 0x65, 0x55, 0x55, 0xfb, 0xd6, 0xba, 0xd6, 0xef, 0xab, 0xfe, 0xfb, 0xfb, 0xd6, 0xba, 0xd6, 0xea, 0xfa, 0xfe, 0xbe,
+ 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xaf, 0xeb, 0xae, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xce, 0xaf, 0xef, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xdf, 0xff, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0x7b, 0xff, 0xef, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0xfe, 0xfb, 0xbe, 0x9a, 0xd6, 0xbb, 0xce, 0xba, 0xff, 0xf7, 0xf5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xab, 0xaa, 0x8f, 0x9a, 0xd6, 0xbb, 0xce, 0x6f, 0xfd, 0xbf, 0xfd, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xff, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0x2a, 0xea, 0xac,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xbf, 0xbb, 0xbf, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xef, 0xff, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xaf, 0xea, 0xfe, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xff, 0xee,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xba, 0xff, 0xbf, 0xbe, 0xba, 0xd6, 0xdb, 0xce, 0xea, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xfd, 0xff, 0xff, 0xfb, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xaa, 0x2e,
+ 0xba, 0xd6, 0xdb, 0xce, 0xe8, 0xaa, 0xba, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xdf, 0xbf, 0xff, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xaa, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xd7, 0xfd, 0xf7,
+ 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0x0a, 0xae, 0xba, 0xd6, 0xdb, 0xce, 0xeb, 0xa8, 0xba, 0xee, 0xba, 0xd6, 0xdb, 0xce, 0xbf, 0xea, 0xea, 0x2e, 0xdb, 0xd6, 0xba, 0xce, 0x7f, 0xd7, 0xff, 0xd7,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xfd, 0xf7, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xe2, 0xeb, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xeb, 0xef, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0xf9, 0xbf, 0xdd, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xaa, 0x2f, 0xbb, 0xd6, 0xba, 0xce, 0x7e, 0xff, 0xfd, 0x7a, 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xfb, 0xbf, 0xaf, 0xbb, 0xd6, 0xba, 0xce, 0xeb, 0xeb, 0x7a, 0xfe,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xab, 0xbb, 0xfe, 0x9b, 0xd6, 0xba, 0xce, 0xbb, 0xb5, 0x7b, 0xeb, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xbf, 0xeb, 0xfb, 0xbb, 0xd6, 0xba, 0xce, 0x0b, 0x7e, 0xbf, 0xfd,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xee, 0xeb, 0xfa, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xff, 0xfb, 0xaa, 0x1a, 0xe7, 0xba, 0xce, 0xcd, 0x15, 0x15, 0x9d, 0x87, 0x6a, 0x06, 0x5a, 0xfb, 0xf8, 0x62, 0x5b,
+ 0x47, 0x62, 0xe6, 0x59, 0xef, 0xff, 0xfe, 0xf2, 0x26, 0x62, 0xa4, 0x59, 0x7a, 0xfa, 0x2b, 0x8a, 0x05, 0x62, 0xa4, 0x59, 0xff, 0xfe, 0xba, 0x5c, 0xe5, 0x61, 0x43, 0x51, 0xe0, 0xa1, 0x82, 0x5b,
+ 0x25, 0x72, 0x02, 0x49, 0xea, 0xaa, 0xa7, 0x2f, 0xc4, 0x69, 0xc2, 0x38, 0x0a, 0x57, 0xff, 0xe0, 0xc4, 0x61, 0xc2, 0x38, 0xef, 0xad, 0xaf, 0x2b, 0x04, 0x6a, 0x43, 0x51, 0xd5, 0xba, 0xba, 0xa0,
+ 0xa3, 0x69, 0x22, 0x51, 0x5e, 0xe0, 0x80, 0xe0, 0x05, 0x72, 0xe2, 0x40, 0xb7, 0x09, 0x0b, 0x02, 0x25, 0x72, 0xa4, 0x61, 0x5a, 0x2a, 0xab, 0xaa, 0x24, 0x72, 0xa3, 0x61, 0xeb, 0x7c, 0x7f, 0x5f,
+ 0xe4, 0x61, 0x83, 0x59, 0xf5, 0xa4, 0xa2, 0x5f, 0x83, 0x69, 0xe5, 0x51, 0x2a, 0xff, 0x5d, 0x5f, 0x05, 0x62, 0x64, 0x41, 0x2a, 0xaa, 0xd7, 0xaa, 0x05, 0x62, 0x84, 0x49, 0xe8, 0xe7, 0x7d, 0xee,
+ 0xe5, 0x59, 0x64, 0x41, 0x81, 0xbb, 0x2d, 0xaf, 0x04, 0x62, 0x83, 0x51, 0xaa, 0x7c, 0xbe, 0xaa, 0x05, 0x62, 0x84, 0x51, 0xbb, 0x7d, 0x7c, 0xfe, 0x05, 0x5a, 0x43, 0x41, 0x58, 0x7f, 0xf5, 0xdf,
+ 0x05, 0x52, 0x44, 0x49, 0x5d, 0xf5, 0x8d, 0xab, 0x29, 0x7b, 0xa5, 0x51, 0xf7, 0xf7, 0x85, 0x8b, 0xa7, 0x72, 0xa5, 0x59, 0xe2, 0x7e, 0xd8, 0xa8, 0x09, 0x7b, 0xa5, 0x59, 0xff, 0x55, 0x2b, 0x00,
+ 0xe9, 0x7a, 0xc5, 0x59, 0x3d, 0xfa, 0xfc, 0x97, 0x2c, 0xa4, 0x84, 0x51, 0xaf, 0x2f, 0xea, 0x78, 0xab, 0x93, 0x43, 0x49, 0xa8, 0xfe, 0x5f, 0xd5, 0x25, 0x6a, 0x03, 0x41, 0x78, 0xbf, 0xff, 0xfa,
+ 0x09, 0x83, 0x03, 0x49, 0xf5, 0xab, 0x2d, 0xad, 0x6a, 0x93, 0x43, 0x49, 0x72, 0x70, 0x58, 0x5e, 0x29, 0x83, 0x03, 0x39, 0x52, 0x57, 0x57, 0x57, 0x85, 0x49, 0x23, 0x39, 0xfa, 0x3b, 0x3e, 0x17,
+ 0xc5, 0x59, 0xe3, 0x38, 0xb5, 0xaa, 0x2a, 0xf8, 0xc8, 0x7a, 0xc2, 0x30, 0xfb, 0x5b, 0x5c, 0xfe, 0xa7, 0x7a, 0x03, 0x39, 0xd5, 0x55, 0xf5, 0x8b, 0x2c, 0xac, 0x63, 0x51, 0xad, 0x8d, 0xf5, 0xe2,
+ 0xfb, 0xde, 0x87, 0x72, 0x3d, 0x1d, 0x35, 0x1d, 0xbb, 0xd6, 0xda, 0xce, 0xea, 0xaa, 0xca, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xba, 0xaa, 0x6a, 0xba, 0xd6, 0xdb, 0xce, 0xfa, 0xaa, 0x8a, 0x8b,
+ 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xeb, 0xef, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xaa, 0xeb, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xae, 0xaa, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xfa, 0xbe, 0xea,
+ 0xba, 0xd6, 0xdb, 0xce, 0x00, 0x2a, 0xbf, 0xa8, 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xaa, 0xae, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xbe, 0xea, 0xaf, 0xdb, 0xd6, 0xba, 0xd6, 0xd6, 0x96, 0xf6, 0xd5,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xef, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xef, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xae, 0xab, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xbe, 0xee,
+ 0xbb, 0xd6, 0xda, 0xce, 0x80, 0xaa, 0xfe, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xba, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xfa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xab, 0xee,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xb3, 0xaa, 0xaf, 0x77, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0x0b, 0xa0, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0x08, 0x2a, 0xaa, 0xaf, 0xdb, 0xde, 0xba, 0xce, 0xae, 0xef, 0xbe, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0x08, 0xaa, 0xaa, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0x88, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x00, 0xaa, 0xaa, 0xae,
+ 0xda, 0xd6, 0xbb, 0xd6, 0xa0, 0x88, 0x82, 0x82, 0xdb, 0xd6, 0xba, 0xce, 0x82, 0xaa, 0xaa, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0x8a, 0x8a, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x0b, 0xaa, 0x9f,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xbc, 0xfa, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xce, 0xae, 0x0a, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0x28, 0xaa, 0x8a, 0xaa, 0xda, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xa0, 0xe8, 0xb8, 0x02, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0x0a, 0xaa, 0x08, 0xdb, 0xd6, 0xba, 0xd6, 0x02, 0x80, 0x88, 0x83, 0xfb, 0xd6, 0xba, 0xd6, 0xab, 0xbf, 0xef, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x2c, 0x82, 0x2a, 0xae, 0xdb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xff, 0xef, 0xdb, 0xd6, 0xba, 0xd6, 0x0e, 0x28, 0x00, 0x82, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xff, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x30, 0x08, 0x20, 0xdb, 0xd6, 0xba, 0xd6, 0x2a, 0x03, 0x00, 0x38, 0xfb, 0xde, 0xda, 0xce, 0xbb, 0xff, 0xfb, 0xbf, 0xdb, 0xde, 0xda, 0xce, 0xeb, 0xaa, 0xaa, 0xab,
+ 0xfb, 0xde, 0xda, 0xd6, 0x5f, 0xd5, 0x55, 0x55, 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xff, 0xfa, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xfa, 0xfb, 0xff, 0xfe, 0xdb, 0xde, 0xba, 0xd6, 0xbe, 0xaf, 0xfb, 0xfa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xbe, 0xeb, 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0xdf, 0xff, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xef, 0xfa, 0xff, 0x77, 0x9a, 0xd6, 0xbb, 0xce, 0xaf, 0xff, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbe, 0xa2, 0xab, 0x9a, 0xd6, 0xbb, 0xce, 0xfa, 0x5f, 0xff, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xae, 0xfa, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xa0,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xfa, 0xea, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xe2, 0x2a, 0xa2, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0x8a, 0xff, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xf7, 0xff, 0xfb,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xff, 0xaf, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0x77, 0x75, 0xed, 0xbb, 0xd6, 0xba, 0xce, 0xa2, 0xba, 0xeb, 0xa3, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xaa, 0xfb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xba, 0xee, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xff, 0xae, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xab, 0xef, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0x2a, 0xea, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xce, 0xf5, 0xfb, 0xfe, 0xfd, 0xba, 0xd6, 0xdb, 0xce, 0x8a, 0xaf, 0xea, 0xba, 0x9a, 0xd6, 0xdb, 0xce, 0xbf, 0xea, 0xff, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xbe, 0xab, 0xef,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xfe, 0xff, 0xff, 0xb7, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xeb, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xbf, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xff,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xaf, 0xaa, 0xef, 0x9a, 0xd6, 0xbb, 0xce, 0xbe, 0xff, 0xab, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xff, 0xaf, 0xeb, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0xaa, 0x2f,
+ 0xba, 0xd6, 0xdb, 0xce, 0x2b, 0xaa, 0xaa, 0x0a, 0xba, 0xd6, 0xdb, 0xce, 0xe8, 0xaa, 0x0f, 0xe0, 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xaf, 0xee, 0xbb, 0xda, 0xd6, 0x9b, 0xce, 0xae, 0xaa, 0xaa, 0xaa,
+ 0xba, 0xd6, 0x9b, 0xce, 0x20, 0xaa, 0x28, 0xa8, 0x9b, 0xd6, 0xda, 0xce, 0xff, 0xbe, 0xaa, 0xee, 0xfb, 0xd6, 0x9a, 0xce, 0x3f, 0x6b, 0xff, 0xff, 0x3b, 0xdf, 0xc5, 0x49, 0x5e, 0x50, 0x50, 0x00,
+ 0xac, 0x83, 0xa4, 0x51, 0x55, 0x5f, 0xff, 0xfc, 0x46, 0x62, 0xc5, 0x51, 0x55, 0x7e, 0xb8, 0x28, 0x25, 0x62, 0x63, 0x51, 0xf5, 0xaa, 0xa8, 0xe0, 0x05, 0x6a, 0x84, 0x59, 0x75, 0xeb, 0xaa, 0x2b,
+ 0xe5, 0x69, 0x63, 0x59, 0xfa, 0xaf, 0xae, 0x78, 0xc4, 0x61, 0x02, 0x49, 0xc0, 0xea, 0x7e, 0xaf, 0xa4, 0x61, 0x82, 0x30, 0x2f, 0x7f, 0xb5, 0x2e, 0xe4, 0x69, 0xc2, 0x38, 0xaa, 0xb5, 0x0a, 0x00,
+ 0xe3, 0x69, 0x22, 0x51, 0x5b, 0x0a, 0x2a, 0xa8, 0x24, 0x72, 0x63, 0x61, 0xfd, 0x82, 0xfc, 0xfe, 0x05, 0x6a, 0x63, 0x61, 0xb7, 0x7f, 0xbb, 0x2a, 0x83, 0x61, 0x05, 0x5a, 0xa2, 0xe8, 0xdb, 0xad,
+ 0x47, 0x62, 0xa4, 0x51, 0xfd, 0xa7, 0xbf, 0x3a, 0x88, 0x6a, 0xa4, 0x51, 0xff, 0x7f, 0xd6, 0xfc, 0x26, 0x5a, 0x84, 0x51, 0x82, 0xf7, 0x2b, 0xaa, 0x06, 0x62, 0x84, 0x49, 0xde, 0xba, 0xfc, 0xfe,
+ 0xe5, 0x59, 0x24, 0x41, 0xae, 0x2c, 0xb6, 0xba, 0x05, 0x5a, 0x64, 0x49, 0xbf, 0x8a, 0xf5, 0xa8, 0xe5, 0x59, 0x44, 0x51, 0x20, 0xaa, 0xd7, 0xaa, 0xc5, 0x51, 0x44, 0x49, 0x88, 0xc2, 0x5e, 0xae,
+ 0x06, 0x5a, 0x65, 0x49, 0x2d, 0xbf, 0xf5, 0xf3, 0x47, 0x62, 0x84, 0x51, 0x0a, 0xab, 0xfd, 0x75, 0x46, 0x62, 0x83, 0x49, 0x88, 0xbe, 0x6e, 0xff, 0xa8, 0x72, 0xa5, 0x51, 0xca, 0xeb, 0xd5, 0xab,
+ 0x09, 0x7b, 0xa5, 0x49, 0x3f, 0x3f, 0x37, 0xb5, 0x69, 0x83, 0xa4, 0x51, 0x54, 0x56, 0xfe, 0xaa, 0x29, 0x7b, 0x84, 0x51, 0x55, 0xdf, 0x8a, 0xf8, 0xe8, 0x72, 0x43, 0x49, 0x57, 0x7f, 0x28, 0xbf,
+ 0x0c, 0x9c, 0x63, 0x49, 0xfd, 0xab, 0xd8, 0xd7, 0x8b, 0x93, 0xe2, 0x38, 0xfc, 0x5e, 0x5e, 0xf8, 0xe4, 0x61, 0xa2, 0x30, 0xf7, 0x2d, 0x82, 0x08, 0xc7, 0x7a, 0x02, 0x49, 0xf5, 0xff, 0x2f, 0x3f,
+ 0xcb, 0x9b, 0x43, 0x51, 0xf5, 0xf5, 0x2a, 0x38, 0xec, 0xa3, 0x63, 0x51, 0xd6, 0xfa, 0xbe, 0x58, 0x6d, 0xb4, 0x23, 0x49, 0xa2, 0xaf, 0xfe, 0x2d, 0x4c, 0xac, 0x25, 0x6a, 0x2d, 0xaa, 0xed, 0xfe,
+ 0xdb, 0xd6, 0x87, 0x72, 0x35, 0x2d, 0x3d, 0x2d, 0x9a, 0xd6, 0xbb, 0xce, 0xf5, 0xde, 0xff, 0xf7, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0x7f, 0x7b, 0xf7, 0xbb, 0xd6, 0xba, 0xce, 0xba, 0x0a, 0xaa, 0xaa,
+ 0xbb, 0xd6, 0xda, 0xce, 0x0a, 0xaa, 0xa3, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xbe, 0xdf, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xaa, 0xbe, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xfa, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xef, 0x7f, 0xf7, 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xa2, 0xb8, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xfa, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xfd, 0x7f, 0xfd,
+ 0xbb, 0xd6, 0xba, 0xce, 0x8b, 0xe2, 0xea, 0xb7, 0xbb, 0xd6, 0xda, 0xce, 0x20, 0xcb, 0xaf, 0xba, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xbf, 0xab, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xbb, 0xaf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xeb, 0xae, 0xbb, 0xd6, 0xda, 0xce, 0x80, 0x2e, 0xa8, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xbf, 0xe7, 0xfd, 0xdb, 0xd6, 0xba, 0xce, 0x76, 0xbf, 0xbe, 0x7f,
+ 0xbb, 0xd6, 0xba, 0xce, 0x22, 0xae, 0xee, 0xea, 0xbb, 0xd6, 0xba, 0xce, 0xa0, 0xaa, 0xaa, 0xff, 0xda, 0xd6, 0xbb, 0xce, 0xfb, 0xff, 0xf5, 0xfb, 0xbb, 0xd6, 0xba, 0xce, 0xa0, 0x2f, 0x2a, 0x8a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xd5, 0xfe, 0x5f, 0x25, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xea, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xab, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xa8,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xaf, 0xdb, 0xd6, 0xba, 0xd6, 0x6b, 0xf6, 0xe6, 0x02, 0xdb, 0xd6, 0xba, 0xd6, 0xca, 0xe0, 0x7f, 0xa0, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0x0a, 0x02,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x0b, 0xc3, 0xbc, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xba, 0x02, 0x00, 0x80, 0xda, 0xd6, 0xbb, 0xd6, 0xaa, 0x02, 0xea, 0x00, 0xdb, 0xde, 0xba, 0xce, 0xfb, 0xfe, 0xae, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xab, 0xef, 0xea, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x2f, 0xbc, 0x20, 0x08, 0xfb, 0xd6, 0xba, 0xd6, 0xaa, 0xbf, 0xbe, 0xaf, 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xfe, 0xff, 0xef,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xc0, 0xc0, 0x02, 0x02, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0x77, 0x55, 0xd5, 0x55,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xeb, 0xfa, 0xfe, 0xfb, 0xd6, 0xda, 0xd6, 0x55, 0x57, 0x59, 0x55, 0xdb, 0xde, 0xba, 0xce, 0x2a, 0xaa, 0xae, 0xaa, 0xfb, 0xde, 0xba, 0xce, 0xfa, 0xfb, 0xaf, 0xfe,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0xa3, 0x8a, 0x08, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x5d, 0x55, 0x57, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xaf, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xea, 0xaa, 0xaa, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfa, 0xff, 0xea, 0x9a, 0xd6, 0xbb, 0xce, 0x7d, 0xf7, 0xff, 0xfa, 0x9a, 0xd6, 0xbb, 0xce, 0x5b, 0x7f, 0xff, 0xdf, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfa, 0xab, 0xbf,
+ 0xba, 0xd6, 0xdb, 0xce, 0xa2, 0xaf, 0xaa, 0x0a, 0xba, 0xd6, 0xdb, 0xce, 0x80, 0xaa, 0x2a, 0xae, 0xba, 0xd6, 0xdb, 0xce, 0x82, 0xab, 0x82, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xa8, 0xae,
+ 0xba, 0xd6, 0xdb, 0xce, 0xa2, 0x00, 0xbc, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xef, 0xfa, 0xfe, 0xee, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xea, 0xeb, 0xab, 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xfb, 0xab, 0xfa,
+ 0x9b, 0xd6, 0xba, 0xce, 0xfd, 0xfd, 0xff, 0xeb, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xef, 0xbb, 0xea, 0xba, 0xd6, 0xdb, 0xce, 0xc2, 0xa2, 0xba, 0xaa, 0x9b, 0xd6, 0xda, 0xce, 0xaa, 0xbb, 0xee, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xee, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xbb, 0xfe, 0xbe, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xff, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xaf, 0xbb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xff, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0x80, 0xaa, 0xaa, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xa8, 0xaa, 0xef, 0x9a, 0xd6, 0xbb, 0xce, 0xfe, 0xd7, 0x6f, 0xff,
+ 0x9b, 0xd6, 0xda, 0xce, 0xba, 0xaf, 0xab, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xbf, 0xaa, 0xe8, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xbe, 0xff, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xab, 0xfa, 0xfb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xeb, 0xff, 0xff, 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xad, 0x5f, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0x5e, 0x55, 0x75, 0xdb, 0xd6, 0xba, 0xce, 0xdb, 0x55, 0xe5, 0x5f,
+ 0x9b, 0xd6, 0xba, 0xce, 0xbf, 0xfd, 0x55, 0xd5, 0xbb, 0xd6, 0x9a, 0xce, 0xe2, 0x8a, 0x2a, 0xeb, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xfe, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xeb, 0xbf,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xfb, 0xff, 0xfb, 0xbb, 0xd6, 0xba, 0xce, 0x0a, 0xdf, 0xa2, 0xe0, 0xbb, 0xd6, 0xba, 0xce, 0x62, 0xaf, 0xfe, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xee, 0xef, 0xeb,
+ 0x1b, 0xdf, 0xe5, 0x49, 0x58, 0x70, 0x40, 0xc0, 0x67, 0x6a, 0x06, 0x52, 0xff, 0xfd, 0x55, 0x78, 0x26, 0x5a, 0x84, 0x51, 0xa0, 0x7a, 0xfe, 0x82, 0xc4, 0x61, 0x63, 0x51, 0xa2, 0xbf, 0xd5, 0x6a,
+ 0xa4, 0x59, 0x23, 0x49, 0xb0, 0x80, 0x8a, 0x57, 0xe5, 0x69, 0x23, 0x49, 0x6a, 0x7f, 0xbf, 0x02, 0x05, 0x6a, 0xa2, 0x38, 0xad, 0x8a, 0x00, 0x00, 0x24, 0x6a, 0x83, 0x59, 0xaf, 0x7e, 0xef, 0xa3,
+ 0x24, 0x6a, 0x63, 0x59, 0xff, 0xfd, 0xea, 0xa0, 0xe5, 0x69, 0x83, 0x51, 0xae, 0xf5, 0xfc, 0x5f, 0x05, 0x62, 0x84, 0x51, 0xa2, 0xff, 0xfe, 0xad, 0x25, 0x62, 0x64, 0x41, 0x7e, 0x0b, 0xaa, 0x82,
+ 0x46, 0x62, 0xe3, 0x40, 0xaa, 0xe8, 0xaa, 0x78, 0x0a, 0x7b, 0xe2, 0x40, 0xf8, 0xff, 0xff, 0xfd, 0xe5, 0x59, 0xa4, 0x51, 0xc8, 0xbe, 0xd8, 0x16, 0x26, 0x62, 0xc5, 0x59, 0x5d, 0x5f, 0xdd, 0x50,
+ 0x05, 0x62, 0x64, 0x49, 0x6f, 0xbe, 0x2a, 0x2f, 0x05, 0x62, 0x84, 0x51, 0xfd, 0xfc, 0xfa, 0x5f, 0xc6, 0x59, 0x83, 0x49, 0x20, 0x88, 0xb8, 0x6f, 0x46, 0x62, 0x23, 0x41, 0xbe, 0xfe, 0xaa, 0x3d,
+ 0xec, 0x8b, 0x43, 0x41, 0x57, 0xd5, 0xf5, 0xe0, 0x68, 0x62, 0xa5, 0x51, 0xfd, 0xff, 0xad, 0x2b, 0x87, 0x6a, 0x43, 0x41, 0xa3, 0xaf, 0xfe, 0xd8, 0x47, 0x62, 0x43, 0x41, 0x88, 0xaa, 0xbf, 0xb6,
+ 0x67, 0x62, 0x64, 0x49, 0x03, 0xaa, 0xaa, 0xd6, 0x47, 0x6a, 0x64, 0x51, 0x88, 0x8a, 0x5f, 0xfd, 0x06, 0x62, 0x64, 0x51, 0x78, 0xd5, 0xb7, 0xb5, 0x49, 0x8b, 0x23, 0x39, 0x35, 0x2f, 0x8b, 0x2f,
+ 0x87, 0x72, 0x43, 0x41, 0xdc, 0xd4, 0xf7, 0xbe, 0x26, 0x6a, 0xa4, 0x51, 0xa2, 0xee, 0xbe, 0xde, 0x66, 0x72, 0x03, 0x49, 0xaa, 0x0a, 0x8a, 0x7e, 0x49, 0x8b, 0x02, 0x41, 0xab, 0x00, 0xfb, 0xb9,
+ 0x4d, 0xac, 0xe4, 0x61, 0xc2, 0x7d, 0xc3, 0xe2, 0x4e, 0xac, 0x22, 0x49, 0xb6, 0xfc, 0xfe, 0xb7, 0xeb, 0xa3, 0xe5, 0x61, 0xe8, 0xfa, 0xbd, 0x22, 0x8d, 0xb4, 0xe5, 0x61, 0xaf, 0xbe, 0x0b, 0x78,
+ 0xfb, 0xde, 0xc8, 0x82, 0x27, 0x0f, 0x0f, 0x09, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xbe, 0xeb, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0xbf, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xf7, 0xff, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x2c, 0xaa, 0x28, 0x08, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xfe, 0xbf, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0x7e, 0xfd, 0x6f, 0xfa, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xfe, 0xbf, 0xfb,
+ 0xba, 0xd6, 0xdb, 0xce, 0xa2, 0x8a, 0xb8, 0x8b, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xaf, 0xee, 0xfa, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xee, 0xbf, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xae, 0xba,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xab, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xdf, 0xff, 0xdf, 0xfe, 0xba, 0xd6, 0xdb, 0xce, 0xb2, 0xa0, 0x02, 0x8a, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xab, 0xaf, 0xab,
+ 0xdb, 0xd6, 0xba, 0xce, 0xae, 0x7a, 0xff, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0x32, 0x0a, 0x02, 0x00, 0xda, 0xd6, 0xbb, 0xce, 0x9e, 0xeb, 0xea, 0xba, 0xba, 0xd6, 0xdb, 0xce, 0x78, 0xaa, 0x0a, 0xe2,
+ 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xbf, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0x7f, 0xb2, 0xa5, 0xee, 0xda, 0xd6, 0xbb, 0xd6, 0x67, 0x2f, 0x0e, 0x21,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xbf, 0xfb, 0xaf, 0xdb, 0xd6, 0xba, 0xd6, 0x04, 0xab, 0xf2, 0x00, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x02, 0x0a, 0x02, 0xfb, 0xd6, 0xba, 0xd6, 0xee, 0xfe, 0xfa, 0xba,
+ 0xfb, 0xde, 0xda, 0xd6, 0x75, 0x55, 0x75, 0x75, 0xfb, 0xd6, 0xda, 0xd6, 0x9d, 0x55, 0xd5, 0x5f, 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xff, 0xff, 0xbb, 0xfb, 0xd6, 0xda, 0xd6, 0x57, 0x55, 0x65, 0xad,
+ 0xfb, 0xd6, 0xda, 0xd6, 0xd5, 0x57, 0x55, 0xb7, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x55, 0xf5, 0xd7, 0xfb, 0xde, 0xda, 0xd6, 0xd5, 0x5f, 0x75, 0x7d, 0xfb, 0xde, 0xda, 0xd6, 0x5d, 0x5d, 0x77, 0xff,
+ 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x7e, 0x7d, 0x75, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xee, 0xea, 0xeb, 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xfe, 0xff, 0xef, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xae, 0xaa, 0xba,
+ 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xff, 0xff, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xab, 0xbe, 0xfb, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xef, 0xfb, 0xde, 0xba, 0xce, 0xea, 0xfe, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x02, 0x82, 0xc0, 0xb2, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xaa, 0xaf, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0xa8, 0xc2, 0xac, 0x08, 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0x0b, 0x2b, 0xec,
+ 0xdb, 0xde, 0xba, 0xce, 0xea, 0xab, 0xaa, 0xbe, 0xfb, 0xde, 0xba, 0xce, 0xfa, 0xff, 0xee, 0xff, 0xbb, 0xde, 0xda, 0xce, 0xaa, 0xff, 0xff, 0xfe, 0xdb, 0xd6, 0xba, 0xd6, 0xc0, 0xeb, 0x8f, 0xfd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfa, 0xef, 0xff, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xfb, 0xab, 0xb7, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0x7b, 0xaf, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0x2a, 0xef, 0xeb, 0xbf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xef, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xea, 0xbb, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xfe, 0xff, 0xbb, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xbf, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xbf, 0xaa, 0x9b, 0xd6, 0xda, 0xce, 0xea, 0xba, 0xea, 0xaa, 0x9b, 0xd6, 0xba, 0xce, 0xf5, 0xd5, 0xd5, 0xae,
+ 0x9b, 0xd6, 0xba, 0xce, 0xfb, 0xde, 0xf5, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xef, 0xba, 0xff, 0xbb, 0xd6, 0xba, 0xce, 0xea, 0xef, 0x6e, 0x5f, 0xbb, 0xd6, 0xba, 0xce, 0xfb, 0xab, 0x6a, 0x77,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0x0e, 0xbb, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xe7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xef, 0xff, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xfa, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xfa, 0xfb, 0xfa, 0x9b, 0xd6, 0xba, 0xce, 0xf7, 0xba, 0xed, 0xdd, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xba, 0xaa, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xad, 0xff, 0xd5, 0xb7,
+ 0xba, 0xd6, 0x9b, 0xce, 0xea, 0xea, 0xae, 0xe7, 0x9a, 0xd6, 0xbb, 0xce, 0x7b, 0x7d, 0x7f, 0x57, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbb, 0xaf, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0x57, 0x77, 0xff, 0x55,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xbf, 0xab, 0xfe, 0xbe, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xbf, 0xff, 0x7b, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xaf, 0xfb, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xef, 0xfe,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xee, 0xfb, 0xab, 0xaa, 0x9b, 0xd6, 0xda, 0xce, 0xeb, 0xeb, 0xea, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0x22, 0xaa, 0xaa, 0x3a, 0xbb, 0xd6, 0xba, 0xce, 0x88, 0xef, 0xdd, 0xbe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xbf, 0xee, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xbf, 0xaa, 0xba, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xff, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xab, 0xfb,
+ 0x3c, 0xdf, 0xf7, 0xbd, 0x6a, 0x2a, 0xaa, 0xaa, 0xf9, 0xde, 0xc5, 0x51, 0x55, 0x57, 0x54, 0x58, 0x26, 0x62, 0x64, 0x49, 0x7f, 0x82, 0xea, 0xf6, 0xe5, 0x59, 0x43, 0x49, 0xa7, 0xfa, 0xaa, 0x00,
+ 0xc5, 0x59, 0x84, 0x51, 0x85, 0xab, 0x0f, 0x08, 0x06, 0x62, 0xa4, 0x59, 0xae, 0x03, 0xae, 0xa6, 0x26, 0x6a, 0xc4, 0x61, 0xfa, 0xc2, 0xff, 0x89, 0x06, 0x6a, 0xc4, 0x61, 0x2b, 0xea, 0xcb, 0x42,
+ 0x05, 0x6a, 0x43, 0x51, 0xa0, 0xaa, 0xaa, 0xc1, 0x05, 0x62, 0x43, 0x49, 0xea, 0xa2, 0xaa, 0x2d, 0x47, 0x62, 0x84, 0x51, 0xf5, 0xdf, 0xab, 0x2e, 0x47, 0x62, 0x84, 0x51, 0xfb, 0x5a, 0xb7, 0x80,
+ 0xa8, 0x6a, 0x02, 0x41, 0x7f, 0xaf, 0xaa, 0x2a, 0x87, 0x6a, 0x23, 0x51, 0xad, 0xea, 0xaa, 0xf8, 0x05, 0x62, 0xa4, 0x59, 0xbe, 0x1f, 0xbc, 0x17, 0x05, 0x62, 0x64, 0x41, 0xf8, 0xf8, 0x7e, 0xf7,
+ 0x26, 0x5a, 0x23, 0x49, 0xae, 0xef, 0xf7, 0xe2, 0x47, 0x62, 0x44, 0x41, 0xff, 0xff, 0x0b, 0x7f, 0x88, 0x62, 0x64, 0x41, 0xef, 0xbf, 0x82, 0xf5, 0xa8, 0x62, 0x64, 0x49, 0xfd, 0x02, 0x7e, 0x7f,
+ 0xea, 0x72, 0x43, 0x41, 0x2f, 0xfa, 0x57, 0xfd, 0x68, 0x6a, 0x23, 0x39, 0x78, 0x57, 0xff, 0x7f, 0xc5, 0x51, 0x03, 0x39, 0x71, 0x02, 0x02, 0xdf, 0x06, 0x5a, 0x23, 0x41, 0xd7, 0xbf, 0xa8, 0x0f,
+ 0x27, 0x5a, 0x83, 0x51, 0xfd, 0xfa, 0xd7, 0xe0, 0x26, 0x62, 0x23, 0x41, 0xaa, 0xba, 0x22, 0x7f, 0x06, 0x62, 0x24, 0x41, 0xaa, 0x80, 0x7a, 0xd7, 0x09, 0x83, 0x23, 0x41, 0xbf, 0x6f, 0x0d, 0xff,
+ 0xe6, 0x61, 0x43, 0x41, 0x2c, 0x2d, 0xab, 0xa2, 0xe6, 0x59, 0x64, 0x51, 0x97, 0x80, 0xab, 0x0a, 0xa7, 0x72, 0x64, 0x49, 0x2a, 0x57, 0xfd, 0xff, 0x6b, 0x93, 0xa4, 0x59, 0x37, 0x35, 0x35, 0x02,
+ 0xad, 0xbc, 0x63, 0x59, 0xaa, 0x02, 0x58, 0x57, 0xcb, 0xa3, 0x23, 0x49, 0x28, 0x7a, 0xf5, 0xd5, 0xec, 0xab, 0x23, 0x51, 0x7c, 0x95, 0xea, 0xe3, 0xb0, 0xbc, 0xc4, 0x61, 0xed, 0xda, 0x35, 0xff,
+ 0x1c, 0xdf, 0x89, 0x6a, 0x0d, 0x01, 0x01, 0x03, 0xbb, 0xd6, 0xba, 0xce, 0xba, 0xe8, 0x0a, 0x20, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0x9a, 0xce, 0xef, 0xbf, 0xaf, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xfe, 0xaa, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xba, 0xba, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xba, 0xbe, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xfe, 0xae, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xbf, 0xaa, 0xaa, 0xbb, 0xd6, 0xda, 0xce, 0xa2, 0xab, 0xea, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xb5, 0x66, 0xfe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xfe, 0xba, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xf9, 0xea, 0xba, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xed, 0xae, 0xba, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x5d, 0x5f, 0x6f, 0x57,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xb7, 0xf0, 0xbe, 0x3a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xbe, 0xe0, 0x22, 0x70, 0xdb, 0xd6, 0xba, 0xd6, 0xa2, 0x2a, 0x3e, 0x03, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xae, 0xae, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xea, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xaf, 0xee, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xef, 0xdb, 0xde, 0xba, 0xd6, 0xef, 0xfa, 0xaa, 0xaa, 0xfb, 0xd6, 0xba, 0xd6, 0xab, 0xaa, 0xba, 0xea,
+ 0xfb, 0xde, 0xda, 0xd6, 0x57, 0xdd, 0xfd, 0xfd, 0xfb, 0xde, 0xba, 0xd6, 0xea, 0xae, 0xaf, 0xfe, 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xaa, 0xba, 0xaa, 0xfb, 0xd6, 0xda, 0xd6, 0x75, 0x75, 0x76, 0x55,
+ 0xfb, 0xde, 0xda, 0xd6, 0x7f, 0xf5, 0x75, 0xf7, 0xfb, 0xde, 0xda, 0xd6, 0xb5, 0xd5, 0x55, 0x7d, 0xfb, 0xde, 0xda, 0xd6, 0x7d, 0x7f, 0x55, 0xb5, 0xfb, 0xde, 0xda, 0xd6, 0x7d, 0x75, 0xd5, 0x77,
+ 0xfb, 0xde, 0xda, 0xd6, 0x75, 0xd5, 0x5f, 0x5d, 0xdb, 0xde, 0xba, 0xd6, 0xaa, 0xfa, 0xba, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xff, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xab, 0xae, 0xab, 0xaf,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xfb, 0xfb, 0xbf, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaf, 0xba, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x02, 0x80, 0x00, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0x02, 0x3a, 0xe0, 0xdb, 0xd6, 0xba, 0xd6, 0xe8, 0x2a, 0xaa, 0xde, 0xdb, 0xd6, 0xba, 0xd6, 0x3b, 0x82, 0x92, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x88, 0xea, 0x2e, 0x76,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xef, 0x80, 0xc2, 0x2e, 0xdb, 0xd6, 0xba, 0xd6, 0xe0, 0xa0, 0x08, 0xa2, 0xdb, 0xd6, 0xba, 0xd6, 0xfd, 0x8f, 0x23, 0x88, 0xda, 0xd6, 0xbb, 0xce, 0xa2, 0xaa, 0x0a, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0xff, 0x7f, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0xb7, 0xf7, 0xfd, 0xbb, 0xce, 0x9a, 0xce, 0x5a, 0xaa, 0x7d, 0xdf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0x75, 0xfe,
+ 0xbb, 0xce, 0x9a, 0xce, 0xed, 0xfa, 0x7e, 0xa9, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xff, 0xfb, 0xed, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xaa, 0x57, 0xad, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xab, 0xfe, 0xab,
+ 0xba, 0xd6, 0x9b, 0xce, 0xb8, 0xfa, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xff, 0xaf, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbe, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xef, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xfb, 0xff, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xfe, 0xff, 0xff, 0xdb, 0xce, 0x9a, 0xce, 0xff, 0xff, 0x3f, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xef, 0xab, 0xfa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xfd, 0xff, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xfe, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xff, 0xfd, 0x7d, 0xbb, 0xce, 0x9a, 0xce, 0xec, 0xbd, 0x5f, 0x5a,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xf9, 0xff, 0xf5, 0x9b, 0xd6, 0xba, 0xce, 0x7b, 0x7b, 0x77, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xfa, 0xef, 0xfd, 0xbf, 0x9b, 0xd6, 0xba, 0xce, 0xfe, 0x5e, 0xbd, 0xfe,
+ 0xba, 0xd6, 0x9b, 0xce, 0xea, 0xeb, 0xab, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xeb, 0xaa, 0xbb, 0xda, 0xd6, 0x9b, 0xce, 0xfe, 0xff, 0xff, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xbe, 0xfa, 0xf3,
+ 0xbb, 0xd6, 0xda, 0xce, 0x2a, 0xaa, 0xfa, 0xa6, 0x9b, 0xd6, 0xba, 0xce, 0xf7, 0x55, 0xaf, 0x55, 0xba, 0xd6, 0x9b, 0xce, 0xab, 0xaa, 0xaa, 0xaf, 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xa7, 0xff, 0x7e,
+ 0xda, 0xd6, 0xbb, 0xce, 0xd5, 0xf5, 0xfd, 0xf5, 0x9a, 0xd6, 0xbb, 0xce, 0x7f, 0xab, 0xff, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0xad, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0x5b, 0xfd, 0xad, 0xff,
+ 0x9b, 0xd6, 0xda, 0xce, 0xbb, 0xfb, 0xfe, 0xfa, 0xbb, 0xd6, 0xda, 0xce, 0xba, 0xb0, 0x2f, 0xab, 0xda, 0xd6, 0xbb, 0xce, 0xfd, 0xef, 0xfb, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xbb, 0xaf, 0xfe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xfe, 0xaf, 0xbe, 0x1b, 0xdf, 0x26, 0x5a, 0x50, 0x60, 0x40, 0x00, 0xc9, 0x6a, 0x44, 0x41, 0xae, 0xea, 0xaa, 0x78, 0x47, 0x5a, 0xa5, 0x49, 0x7a, 0xa2, 0xe8, 0xad,
+ 0x47, 0x5a, 0x63, 0x49, 0xef, 0xca, 0xad, 0x8a, 0x27, 0x62, 0x43, 0x49, 0x8b, 0x9e, 0xaa, 0x8a, 0x67, 0x62, 0xc4, 0x59, 0x7f, 0x57, 0xd5, 0x71, 0x05, 0x62, 0x84, 0x51, 0xde, 0xfe, 0xb6, 0x2f,
+ 0x26, 0x62, 0x84, 0x51, 0xb6, 0xaf, 0x0a, 0xaa, 0x26, 0x62, 0x23, 0x41, 0x82, 0x0a, 0x00, 0x6a, 0x67, 0x62, 0xa5, 0x51, 0x22, 0x8a, 0x6a, 0x7d, 0x67, 0x62, 0x03, 0x41, 0x00, 0xe0, 0xab, 0x5f,
+ 0xea, 0x72, 0xe3, 0x38, 0x2a, 0xf5, 0xd7, 0xbf, 0xea, 0x72, 0xc3, 0x30, 0xfe, 0xff, 0xeb, 0x5c, 0xa5, 0x59, 0x82, 0x18, 0xa0, 0xae, 0xaa, 0x55, 0x85, 0x49, 0xa2, 0x18, 0x00, 0x00, 0x0a, 0x55,
+ 0xc5, 0x51, 0xe3, 0x38, 0xaa, 0xa2, 0xaa, 0xd5, 0xe5, 0x59, 0x44, 0x49, 0xef, 0xf2, 0x7d, 0x7f, 0xa5, 0x51, 0xc3, 0x28, 0x02, 0x00, 0xea, 0x7a, 0xe6, 0x59, 0xa2, 0x20, 0x82, 0x00, 0x2f, 0xd5,
+ 0x06, 0x52, 0x03, 0x41, 0xea, 0x2a, 0xe2, 0x5f, 0xc5, 0x49, 0xa2, 0x28, 0x0b, 0xa8, 0x55, 0xff, 0x06, 0x5a, 0xe3, 0x30, 0x80, 0x82, 0xfd, 0x5f, 0x06, 0x5a, 0xc3, 0x30, 0x00, 0x2a, 0xd5, 0xd5,
+ 0x06, 0x5a, 0x03, 0x39, 0x08, 0xfa, 0x57, 0x5d, 0x26, 0x5a, 0xe3, 0x40, 0xa0, 0xf7, 0xd7, 0xf5, 0xa6, 0x59, 0xc2, 0x30, 0x0a, 0xff, 0x5f, 0xbf, 0xa5, 0x61, 0x23, 0x41, 0xab, 0x55, 0xd7, 0x2f,
+ 0xa4, 0x61, 0x43, 0x49, 0x3a, 0xad, 0xf5, 0x0a, 0xa4, 0x59, 0x03, 0x39, 0xea, 0xfe, 0x7f, 0x08, 0xe5, 0x69, 0xc3, 0x30, 0xd7, 0xf7, 0xaa, 0x00, 0x05, 0x62, 0x03, 0x41, 0xeb, 0x5f, 0xab, 0x22,
+ 0x0d, 0xac, 0xe2, 0x40, 0xfe, 0xbd, 0x0b, 0x72, 0xae, 0xc4, 0x03, 0x49, 0xbf, 0x8b, 0x7e, 0xd5, 0xcf, 0xb4, 0xe2, 0x38, 0x2a, 0x5b, 0xb5, 0x0b, 0xfa, 0xde, 0xa3, 0x59, 0xba, 0x2d, 0x0a, 0x00,
+ 0xdb, 0xd6, 0x95, 0xbd, 0x01, 0x00, 0x00, 0x00, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xfe, 0xeb, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x8a, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xae, 0x22,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0x8a, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x5d, 0xbf, 0xaa, 0x8a, 0xdb, 0xd6, 0xba, 0xd6, 0x7c, 0x3e, 0xaf, 0x82, 0xdb, 0xd6, 0xba, 0xd6, 0xce, 0xba, 0xa8, 0x2d,
+ 0xda, 0xd6, 0xbb, 0xd6, 0x0b, 0xea, 0x26, 0xea, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xbf, 0xef, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0x7b, 0x2b, 0xf8, 0x3e, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xbe, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xff, 0xfb, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xaa, 0xaa, 0xa8, 0xdb, 0xd6, 0xba, 0xd6, 0x77, 0xa2, 0x0e, 0x03, 0xdb, 0xde, 0xba, 0xce, 0xea, 0xff, 0xff, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xb2, 0xca, 0xeb, 0x00, 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0x0f, 0x03, 0x2a, 0xfb, 0xd6, 0xba, 0xce, 0xae, 0xaa, 0xea, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xaa, 0xbe,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0x2e, 0x00, 0xb0, 0xdb, 0xde, 0xba, 0xd6, 0xfe, 0xaf, 0xef, 0xee, 0xdb, 0xde, 0xba, 0xd6, 0xaf, 0xbe, 0xab, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0x57, 0x55, 0x57, 0xdf,
+ 0xfb, 0xde, 0xda, 0xd6, 0xed, 0x55, 0x55, 0xd7, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xbf, 0xbe, 0xbf, 0xdb, 0xde, 0xda, 0xd6, 0x55, 0xfe, 0xab, 0xfe, 0xfb, 0xde, 0xba, 0xd6, 0xae, 0xff, 0xaa, 0xaa,
+ 0xfb, 0xde, 0xba, 0xd6, 0xab, 0xef, 0xff, 0xee, 0xba, 0xde, 0xfb, 0xd6, 0xff, 0xff, 0xaf, 0xbf, 0xfb, 0xde, 0xba, 0xd6, 0xea, 0xff, 0xfb, 0xbf, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xbb, 0xef,
+ 0xfb, 0xde, 0xda, 0xd6, 0x5f, 0xf5, 0xdd, 0xe5, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0x55, 0xd5, 0x9d, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xff, 0xbf, 0xef, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xef, 0xbe, 0xfe,
+ 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xff, 0xfa, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xaf, 0xff, 0xfe, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x00, 0xc0, 0x80, 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xbf, 0xf7, 0xff,
+ 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xfe, 0xfe, 0xfb, 0xdb, 0xd6, 0xba, 0xce, 0x08, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0xee, 0x89, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0x88, 0x22, 0xae, 0x8a,
+ 0xdc, 0xde, 0xba, 0xce, 0xfa, 0xff, 0xbf, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xff, 0x2a, 0x3a, 0x9c, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0xaa, 0xa2, 0x88, 0xdb, 0xd6, 0xba, 0xd6, 0x42, 0xbf, 0x3a, 0x77,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xbf, 0x3e, 0xac, 0x03, 0xda, 0xd6, 0xbb, 0xd6, 0xae, 0xbe, 0xfa, 0x82, 0xdb, 0xd6, 0xba, 0xd6, 0x0e, 0x2a, 0x0b, 0x2b, 0xdb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xef, 0xae,
+ 0xbb, 0xce, 0x9a, 0xce, 0x67, 0xeb, 0xb7, 0x57, 0xbb, 0xce, 0x9a, 0xce, 0xdd, 0xef, 0x56, 0x55, 0xbb, 0xce, 0x9a, 0xc6, 0xa3, 0xea, 0xc3, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xd5, 0xfd, 0x5f, 0xfd,
+ 0xbb, 0xce, 0x9a, 0xce, 0x2b, 0xfd, 0xf5, 0xb5, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xeb, 0xff, 0x77, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xd7, 0x7f,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0x7b, 0x77, 0xfd, 0xbb, 0xd6, 0x9a, 0xc6, 0xba, 0xfa, 0xef, 0xea, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0xdf, 0xff, 0xfd, 0xba, 0xd6, 0x9b, 0xce, 0xdf, 0x7f, 0xd7, 0xd7,
+ 0xba, 0xd6, 0x7b, 0xce, 0xab, 0xae, 0xfb, 0xfa, 0xbb, 0xd6, 0x9a, 0xc6, 0xfa, 0xbe, 0xff, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xd5, 0x55, 0x55, 0xbb, 0xce, 0x9a, 0xce, 0x7d, 0xf5, 0x75, 0x56,
+ 0xbb, 0xce, 0x9a, 0xce, 0x57, 0x55, 0x75, 0x59, 0xba, 0xce, 0x7b, 0xce, 0xea, 0xab, 0xaa, 0xba, 0xba, 0xd6, 0x7b, 0xc6, 0xae, 0xaa, 0xfb, 0xbf, 0xbb, 0xd6, 0x7a, 0xc6, 0xae, 0xae, 0xaf, 0xab,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xfa, 0xbe, 0xfe, 0xbf, 0xbb, 0xd6, 0x9a, 0xc6, 0xba, 0xef, 0xaa, 0xaf, 0xba, 0xd6, 0x9b, 0xce, 0xde, 0xff, 0xf7, 0x5f, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0xdf, 0x7d,
+ 0x9b, 0xd6, 0xba, 0xc6, 0xaa, 0xea, 0xea, 0xff, 0x9b, 0xd6, 0xba, 0xc6, 0xaa, 0xab, 0xaf, 0xfa, 0xbb, 0xce, 0x9a, 0xce, 0x77, 0xaa, 0xaa, 0xbe, 0xba, 0xce, 0x9b, 0xce, 0x83, 0x8e, 0x55, 0xd8,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xba, 0xfa, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xef, 0xfd, 0xff, 0x9b, 0xd6, 0xba, 0xce, 0xaf, 0xeb, 0xb5, 0xdf, 0xba, 0xd6, 0x9b, 0xce, 0xbf, 0xbf, 0x6f, 0xfd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xaa, 0xea, 0xff, 0xfe, 0x9b, 0xd6, 0xba, 0xce, 0xfb, 0x57, 0xd7, 0xed, 0xba, 0xd6, 0x9b, 0xce, 0x82, 0xaf, 0xfb, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xff, 0xfe, 0x9b, 0xd6, 0xba, 0xce, 0xad, 0xf5, 0x5f, 0xd5, 0x9a, 0xd6, 0xdb, 0xce, 0xeb, 0xef, 0xab, 0xaf, 0xda, 0xd6, 0x9b, 0xce, 0xfb, 0xff, 0xff, 0xff,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0x7f, 0x7f, 0x9f, 0x1b, 0xdf, 0x66, 0x6a, 0x00, 0x40, 0x60, 0x70, 0x4f, 0xa4, 0x64, 0x51, 0xfc, 0x57, 0x57, 0x7f, 0x06, 0x5a, 0x03, 0x41, 0x88, 0xaa, 0xaf, 0x5e,
+ 0x27, 0x62, 0x44, 0x49, 0x80, 0xa0, 0xaf, 0x55, 0x27, 0x5a, 0x24, 0x49, 0x8a, 0x28, 0x8a, 0x5f, 0xa8, 0x6a, 0xe3, 0x30, 0xf3, 0xaa, 0xff, 0x57, 0x06, 0x62, 0x44, 0x41, 0x6d, 0x28, 0xff, 0xdd,
+ 0x46, 0x62, 0x03, 0x41, 0xab, 0x80, 0xff, 0x5f, 0x47, 0x6a, 0xa2, 0x30, 0x00, 0xa8, 0x57, 0x5f, 0x06, 0x62, 0xc2, 0x30, 0x80, 0xfa, 0xd5, 0xd5, 0x28, 0x62, 0xc3, 0x30, 0x8a, 0x7f, 0xd5, 0xff,
+ 0x84, 0x59, 0xa2, 0x20, 0xfa, 0xd7, 0xaa, 0x2b, 0x64, 0x59, 0x82, 0x18, 0x57, 0xff, 0xaa, 0x00, 0x84, 0x59, 0x82, 0x18, 0x55, 0xff, 0x02, 0x00, 0x84, 0x61, 0x82, 0x18, 0xd5, 0xef, 0x2a, 0x00,
+ 0x64, 0x59, 0xc2, 0x20, 0xd5, 0xaa, 0x02, 0xa2, 0x84, 0x59, 0x03, 0x31, 0x7f, 0x02, 0x00, 0x2a, 0xc4, 0x69, 0xc2, 0x30, 0x55, 0xaa, 0x80, 0x82, 0x84, 0x59, 0xe2, 0x38, 0xd5, 0xba, 0xa8, 0xa8,
+ 0x45, 0x6a, 0x02, 0x41, 0x55, 0xff, 0xff, 0x2b, 0x05, 0x62, 0x02, 0x41, 0x55, 0xfe, 0x8a, 0x08, 0xc5, 0x59, 0xc2, 0x30, 0x5f, 0xd2, 0xa8, 0xa0, 0x05, 0x62, 0xe2, 0x40, 0xf5, 0xfd, 0xaa, 0x0a,
+ 0x29, 0x83, 0x23, 0x51, 0x5d, 0x55, 0xff, 0xe2, 0xe5, 0x61, 0x43, 0x51, 0xf5, 0xff, 0x20, 0xfe, 0x06, 0x5a, 0x23, 0x49, 0xd5, 0xff, 0x20, 0xfe, 0x06, 0x62, 0x64, 0x51, 0x3d, 0x2b, 0x2a, 0xbf,
+ 0x8b, 0x8b, 0x84, 0x59, 0x5f, 0xbd, 0x0f, 0x95, 0xaf, 0xac, 0xe5, 0x61, 0xf5, 0x4f, 0x6a, 0xb2, 0x4d, 0xa4, 0xe2, 0x40, 0x8f, 0x5f, 0x02, 0x0b, 0xd0, 0xb4, 0xa5, 0x51, 0x2d, 0x7d, 0xec, 0xfb,
+ 0x12, 0x9d, 0xe1, 0x48, 0xd7, 0xba, 0xff, 0x2f, 0x1c, 0xdf, 0xe4, 0x61, 0xf5, 0xfe, 0x29, 0x00, 0xfb, 0xd6, 0xe8, 0x72, 0x2d, 0x03, 0x00, 0x00, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0x8a, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa0, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xfb, 0xfe, 0x8a, 0x0a, 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0xa2, 0xa6, 0x08, 0xdb, 0xde, 0xba, 0xce, 0xee, 0xae, 0xbb, 0xff,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xf8, 0xa8, 0x80, 0x82, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xeb, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xfa, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xef, 0xef,
+ 0xdb, 0xde, 0xba, 0xce, 0xbb, 0xab, 0xeb, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xb8, 0x03, 0x00, 0x00, 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x00, 0xf2, 0xe0, 0xdb, 0xde, 0xba, 0xce, 0xba, 0xbe, 0xaa, 0xea,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xfe, 0xef, 0xfe, 0xdb, 0xd6, 0xba, 0xd6, 0x3a, 0xc8, 0x80, 0xa8, 0xfb, 0xd6, 0xba, 0xd6, 0xee, 0xfa, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0xc0, 0x20, 0x00,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xf0, 0x00, 0x20, 0x02, 0xdb, 0xde, 0xba, 0xd6, 0xef, 0xbb, 0xbb, 0xef, 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xbf, 0xea, 0xaa, 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xaa, 0xea, 0xaa,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xef, 0xbe, 0xaa, 0xae, 0xdb, 0xde, 0xda, 0xd6, 0x5a, 0xfd, 0xad, 0xaf, 0xdb, 0xde, 0xda, 0xd6, 0x59, 0xff, 0xad, 0xaa, 0xfb, 0xde, 0xda, 0xd6, 0xdf, 0x57, 0xb5, 0xdf,
+ 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x5f, 0xf7, 0x7b, 0xfc, 0xde, 0xda, 0xd6, 0x7d, 0xf7, 0xff, 0xfa, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xbb, 0xef, 0x77, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xff, 0xf7, 0xff,
+ 0xfb, 0xde, 0xda, 0xd6, 0x5f, 0x5d, 0x57, 0xfd, 0xfb, 0xde, 0xda, 0xd6, 0x7f, 0xf5, 0xd5, 0x5f, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xaa, 0xfb, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xaa, 0xea, 0xef, 0xbf,
+ 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xff, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xea, 0xaa, 0xfb, 0xaf, 0xfb, 0xd6, 0xba, 0xd6, 0xfb, 0xfb, 0xef, 0xbf, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xfe, 0xff, 0xab,
+ 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xfa, 0xfa, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0x00, 0x22, 0xa8, 0x08, 0xdb, 0xd6, 0xba, 0xd6, 0xf0, 0x02, 0x2f, 0x82, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0xaa, 0xa8,
+ 0xbb, 0xd6, 0xda, 0xce, 0xa0, 0xaa, 0xba, 0xfb, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xea, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xef, 0xaa, 0xaa, 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0x82, 0xa8, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x8a, 0xdb, 0xd6, 0xba, 0xd6, 0x09, 0xa8, 0xba, 0x20, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xab, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xbe, 0xae, 0xae,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xe0, 0x2a, 0xb0, 0x00, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xaf, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xaf, 0xaa, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xbf, 0xfa, 0xaa, 0xaa,
+ 0xbb, 0xd6, 0x99, 0xc6, 0xef, 0xff, 0xff, 0xff, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xff, 0xaa, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xea, 0xaf, 0xba, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0xf5, 0x55, 0xed,
+ 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xaa, 0xbf, 0xaa, 0xbb, 0xd6, 0x9a, 0xc6, 0xfa, 0xee, 0xbf, 0xab, 0xbb, 0xd6, 0x9a, 0xc6, 0xfb, 0xfa, 0xeb, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x5e, 0x5b, 0x5b,
+ 0xbb, 0xce, 0x9a, 0xce, 0x59, 0x7d, 0x55, 0x65, 0xbb, 0xce, 0x7a, 0xc6, 0xca, 0xaa, 0xaa, 0xab, 0xbb, 0xd6, 0x9a, 0xc6, 0xfa, 0xef, 0xbf, 0xef, 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xeb, 0xfe, 0xaf,
+ 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xba, 0xfa, 0xae, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xbe, 0xae, 0xaa, 0x9b, 0xce, 0xba, 0xc6, 0x00, 0x8a, 0xaa, 0xb2, 0x9a, 0xce, 0x7b, 0xce, 0x03, 0x00, 0x00, 0x20,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xff, 0xbf, 0xeb, 0xfe, 0xbb, 0xce, 0x7a, 0xce, 0xef, 0xea, 0xab, 0xaa, 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xfb, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x56, 0x5d, 0x5d, 0x9f,
+ 0xbb, 0xce, 0x7a, 0xce, 0xea, 0xaf, 0xaa, 0xbe, 0xba, 0xce, 0x9b, 0xce, 0xf8, 0xb7, 0x55, 0xf7, 0xbb, 0xce, 0x9a, 0xce, 0xd3, 0xfd, 0x55, 0x56, 0xba, 0xce, 0x9b, 0xce, 0x2f, 0xaf, 0x6d, 0x75,
+ 0xba, 0xce, 0x9b, 0xce, 0x2a, 0x25, 0xbf, 0x57, 0x9b, 0xce, 0xba, 0xc6, 0x02, 0x02, 0xc2, 0x2a, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xd7, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xd7, 0xdf, 0xf7, 0xf7,
+ 0xba, 0xd6, 0x9b, 0xce, 0xfd, 0xff, 0xff, 0xbf, 0xba, 0xce, 0x9b, 0xce, 0xe5, 0x0a, 0x83, 0xfc, 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0xff, 0x6f, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xff, 0xfb, 0x6e,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xd7, 0xff, 0x7d, 0x7f, 0xba, 0xd6, 0x9b, 0xce, 0xfd, 0xdf, 0x7d, 0xff, 0xba, 0xce, 0x9b, 0xce, 0x2a, 0xfe, 0x0a, 0xa7, 0xba, 0xd6, 0x9b, 0xce, 0xaf, 0xbe, 0xff, 0xaf,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xaf, 0xaa, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xff, 0xfe, 0xf5, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfa, 0xff, 0xff, 0xba, 0xd6, 0xdb, 0xce, 0x2b, 0xea, 0x7a, 0x82,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xab, 0xaf, 0xaa, 0x1c, 0xdf, 0x8c, 0x83, 0x40, 0x00, 0x00, 0x00, 0x97, 0xd6, 0x84, 0x51, 0x57, 0x57, 0x57, 0x7c, 0x47, 0x62, 0x63, 0x51, 0x5e, 0x08, 0x80, 0xbb,
+ 0x26, 0x62, 0xe3, 0x38, 0x5f, 0x68, 0x78, 0x80, 0x06, 0x62, 0x03, 0x41, 0x76, 0xfc, 0x83, 0x03, 0xe4, 0x61, 0xa2, 0x30, 0x57, 0xaf, 0xba, 0x80, 0xa5, 0x59, 0xe2, 0x38, 0xa9, 0x8a, 0xfa, 0x2a,
+ 0x06, 0x62, 0xe2, 0x38, 0x57, 0xff, 0xbf, 0x22, 0xc5, 0x59, 0xe2, 0x38, 0xf5, 0xfb, 0xa2, 0xbc, 0xa4, 0x59, 0x03, 0x49, 0xb5, 0xaa, 0xa8, 0xfb, 0x64, 0x59, 0x22, 0x41, 0xe2, 0xa8, 0x7a, 0xe8,
+ 0x84, 0x59, 0x43, 0x49, 0x3b, 0xba, 0xf5, 0xca, 0xa4, 0x59, 0x02, 0x51, 0x7c, 0x7a, 0xfa, 0x2a, 0xc4, 0x61, 0x03, 0x49, 0xf7, 0x55, 0xbf, 0x20, 0xe4, 0x61, 0x03, 0x49, 0xfd, 0xd5, 0xbf, 0xa0,
+ 0x26, 0x62, 0xe2, 0x50, 0x7f, 0xbf, 0xff, 0x2a, 0x49, 0x83, 0xe2, 0x48, 0xd5, 0x5f, 0xff, 0x02, 0xab, 0x8b, 0x22, 0x51, 0x55, 0x55, 0xf5, 0x00, 0xe8, 0x72, 0x43, 0x49, 0x55, 0xf5, 0xfa, 0xa0,
+ 0xeb, 0x93, 0xa4, 0x51, 0x55, 0xb5, 0xfd, 0x00, 0x6b, 0x8b, 0x84, 0x51, 0x55, 0xff, 0xa0, 0xf8, 0x2d, 0x9c, 0x43, 0x49, 0x55, 0xcf, 0xca, 0xcb, 0x6e, 0xa4, 0x44, 0x41, 0x75, 0xea, 0x02, 0x5d,
+ 0xab, 0x93, 0x84, 0x49, 0xd5, 0xbb, 0xa0, 0xad, 0xcb, 0x93, 0xc5, 0x59, 0xf5, 0x80, 0xab, 0xe0, 0x8b, 0x8b, 0x25, 0x62, 0x6b, 0x8b, 0x08, 0x8b, 0x0d, 0x9c, 0xe5, 0x51, 0xb7, 0x2e, 0xf0, 0xb7,
+ 0xfb, 0xde, 0x08, 0x7b, 0xff, 0xbf, 0x2d, 0x0b, 0x3c, 0xdf, 0x67, 0x6a, 0x57, 0xb8, 0x00, 0x00, 0x7d, 0xdf, 0x07, 0x62, 0x55, 0x00, 0x00, 0x00, 0x3c, 0xdf, 0xee, 0x7b, 0x09, 0x00, 0x00, 0x00,
+ 0x1c, 0xdf, 0xba, 0xd6, 0x78, 0xd5, 0x5f, 0xf7, 0xdb, 0xd6, 0xba, 0xd6, 0x8d, 0xad, 0x02, 0x88, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0x08, 0x02, 0xdb, 0xd6, 0xba, 0xd6, 0xa7, 0x36, 0xa8, 0x03,
+ 0xfb, 0xde, 0xba, 0xce, 0xbf, 0xff, 0xff, 0xbb, 0xdb, 0xde, 0xba, 0xd6, 0xfe, 0xdf, 0xfb, 0xfb, 0xdb, 0xde, 0xba, 0xd6, 0x9f, 0xfe, 0xfa, 0xbe, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xaa, 0xff, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xf8, 0x00, 0x22, 0xc0, 0xdb, 0xde, 0xba, 0xd6, 0xae, 0xaf, 0xfa, 0xfb, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xba, 0xea, 0xee, 0xfc, 0xde, 0xda, 0xd6, 0x65, 0x55, 0x5d, 0x57,
+ 0xfc, 0xd6, 0xba, 0xd6, 0xfb, 0xef, 0xfb, 0xbf, 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0x02, 0x00, 0x00, 0xfb, 0xd6, 0xba, 0xd6, 0xdf, 0xff, 0xaa, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xeb, 0xbf, 0xe3,
+ 0xdb, 0xde, 0xba, 0xd6, 0xbd, 0xab, 0xef, 0xbf, 0xdb, 0xd6, 0xba, 0xd6, 0x88, 0x08, 0xc0, 0x8a, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xef, 0xdb, 0xde, 0xba, 0xd6, 0xfe, 0xff, 0xbe, 0xee,
+ 0xdb, 0xde, 0xda, 0xd6, 0x7e, 0xef, 0xef, 0xfd, 0xdb, 0xde, 0xba, 0xd6, 0xab, 0xbb, 0xaa, 0xaf, 0xfc, 0xde, 0xda, 0xd6, 0x9f, 0xff, 0xfd, 0xfd, 0xda, 0xde, 0xfb, 0xd6, 0xc0, 0xab, 0xbe, 0xfe,
+ 0xfb, 0xde, 0xda, 0xd6, 0x7a, 0xff, 0xff, 0xfd, 0xfc, 0xde, 0xda, 0xd6, 0xff, 0xf5, 0x9f, 0xfd, 0xfb, 0xde, 0xda, 0xd6, 0xd6, 0xeb, 0xbf, 0xfd, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xe7, 0xdf, 0xaf,
+ 0xfb, 0xde, 0xda, 0xd6, 0xef, 0x5f, 0xff, 0x7f, 0xfb, 0xde, 0xba, 0xd6, 0xaa, 0xff, 0xee, 0xab, 0xfb, 0xde, 0xda, 0xd6, 0xdd, 0x5f, 0xff, 0xd7, 0xfb, 0xde, 0xba, 0xd6, 0xaa, 0xea, 0xea, 0xfa,
+ 0xfb, 0xde, 0xda, 0xd6, 0xd7, 0x6f, 0xf7, 0x55, 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xfe, 0xfe, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xfb, 0xff, 0xfb, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xdf, 0xee, 0xff,
+ 0xdb, 0xde, 0xda, 0xce, 0xae, 0xaa, 0xaa, 0xab, 0xfb, 0xde, 0xba, 0xce, 0xef, 0xaf, 0xef, 0xbf, 0xfb, 0xd6, 0xda, 0xd6, 0x5d, 0x55, 0x55, 0xd9, 0xfb, 0xd6, 0xda, 0xd6, 0xd7, 0x55, 0x77, 0x79,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0xb0, 0x82, 0x08, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xbf, 0xfe, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0xe3, 0x22, 0x00, 0x20, 0xdb, 0xd6, 0xba, 0xd6, 0xb0, 0x0a, 0x80, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x80, 0xaa, 0xa8, 0xdb, 0xd6, 0xba, 0xd6, 0x0e, 0x7a, 0x2f, 0xa2, 0xdb, 0xde, 0xba, 0xce, 0xee, 0xaf, 0xff, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xaa, 0x28,
+ 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xae, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xf9, 0xef, 0xaf, 0xbf, 0xfb, 0xd6, 0xda, 0xd6, 0x69, 0x95, 0x7d, 0x5d, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xbe, 0xea, 0xaa,
+ 0xfb, 0xde, 0xda, 0xd6, 0xd7, 0x95, 0xed, 0xff, 0xda, 0xde, 0xfb, 0xd6, 0xea, 0xaa, 0xff, 0xaa, 0xfb, 0xde, 0xda, 0xd6, 0xfd, 0xee, 0xeb, 0xbd, 0xfc, 0xde, 0xda, 0xd6, 0xbe, 0xfe, 0xff, 0xff,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xff, 0xea, 0xff, 0xbf, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xab, 0xbb, 0xd6, 0x7a, 0xc6, 0xea, 0xfb, 0xaf, 0xfb, 0xbb, 0xce, 0x9a, 0xce, 0x75, 0x5d, 0x5b, 0x55,
+ 0xbb, 0xce, 0x9a, 0xc6, 0xaa, 0xab, 0xbf, 0xfe, 0xba, 0xce, 0x7b, 0xc6, 0xa8, 0xaa, 0xff, 0xee, 0xbb, 0xd6, 0x7a, 0xc6, 0xea, 0xea, 0xbf, 0xaf, 0xbb, 0xce, 0x7a, 0xce, 0xee, 0xfa, 0xea, 0xff,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xea, 0xfe, 0xff, 0xff, 0xbb, 0xd6, 0x7a, 0xc6, 0xfa, 0xfa, 0xbf, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xfa, 0xff, 0xbe, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xab, 0xaf, 0xfb,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xae, 0xab, 0xbe, 0xba, 0xce, 0x9b, 0xc6, 0xbf, 0xfe, 0xfe, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xef, 0xeb, 0xae, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0x82, 0x08, 0x28,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xff, 0xbf, 0xef, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xeb, 0xae, 0xeb, 0x9b, 0xd6, 0x9a, 0xc6, 0xea, 0xfb, 0xef, 0xae, 0xba, 0xd6, 0x7b, 0xc6, 0xbf, 0xea, 0xfa, 0xea,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xfb, 0xbb, 0xaa, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xff, 0xaa, 0x8f, 0x9b, 0xd6, 0x9a, 0xc6, 0xae, 0xfb, 0xff, 0xab, 0xba, 0xce, 0x9b, 0xce, 0x5f, 0xd5, 0x95, 0x6d,
+ 0x9b, 0xce, 0xba, 0xc6, 0x28, 0x82, 0xba, 0x28, 0xba, 0xce, 0x9b, 0xc6, 0xaa, 0xab, 0xbf, 0xfe, 0xba, 0xce, 0x9b, 0xce, 0xde, 0xfd, 0x5f, 0xfb, 0xbb, 0xd6, 0x9a, 0xc6, 0xbb, 0xaf, 0xbf, 0xff,
+ 0xbb, 0xce, 0x9a, 0xce, 0x37, 0xef, 0xfd, 0xff, 0xba, 0xce, 0x9b, 0xce, 0x0f, 0xfb, 0xaf, 0xfa, 0x9b, 0xd6, 0xba, 0xce, 0xab, 0x5f, 0xbf, 0x5b, 0xba, 0xce, 0x9b, 0xce, 0xb5, 0xed, 0xdb, 0x9a,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xd7, 0xb7, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0xeb, 0xff, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xdf, 0xef, 0xbb, 0xba, 0xd6, 0x9b, 0xce, 0xbe, 0xff, 0xff, 0xab,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xef, 0xff, 0x7b, 0x9b, 0xd6, 0xba, 0xce, 0xd7, 0x5f, 0x5e, 0xf5, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xef, 0xea, 0x2a, 0x9b, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0xab, 0xef,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xbf, 0xff, 0x9b, 0xd6, 0xda, 0xce, 0xbe, 0xba, 0xaa, 0xeb, 0x7d, 0xe7, 0xc6, 0x49, 0x58, 0x00, 0x00, 0x00, 0x7d, 0xe7, 0xc5, 0x51, 0x55, 0x50, 0x00, 0x00,
+ 0xda, 0xd6, 0xe6, 0x51, 0x55, 0x55, 0x7a, 0xc0, 0x12, 0x9d, 0x44, 0x41, 0xf5, 0xf7, 0xff, 0x0a, 0xa9, 0x6a, 0x43, 0x49, 0x7f, 0xff, 0x20, 0x28, 0x4e, 0x94, 0xc5, 0x59, 0x55, 0x55, 0xaf, 0xe2,
+ 0x2a, 0x7b, 0x44, 0x49, 0x5f, 0x2b, 0x0a, 0xfa, 0xab, 0x83, 0x23, 0x41, 0x55, 0xfc, 0xba, 0x5f, 0x29, 0x7b, 0x64, 0x49, 0x55, 0xaa, 0xf8, 0x75, 0x47, 0x62, 0x23, 0x49, 0xaf, 0x80, 0xaa, 0x77,
+ 0x06, 0x5a, 0x84, 0x49, 0x2a, 0xab, 0x02, 0xe9, 0x67, 0x6a, 0x63, 0x51, 0xd7, 0x2b, 0x2a, 0xd5, 0xa7, 0x72, 0x43, 0x49, 0xff, 0xea, 0x58, 0xbb, 0xc9, 0x7a, 0xa4, 0x51, 0xbd, 0x2f, 0xdd, 0xff,
+ 0x0c, 0x9c, 0xe5, 0x59, 0x22, 0x5f, 0xfd, 0xf5, 0x6b, 0x8b, 0x64, 0x49, 0xea, 0x5f, 0xfa, 0x2a, 0xab, 0x8b, 0x64, 0x49, 0xfe, 0x55, 0x02, 0x88, 0x0c, 0x9c, 0xe6, 0x51, 0x0f, 0xad, 0xfa, 0xff,
+ 0x2c, 0x9c, 0x27, 0x62, 0x6a, 0xe0, 0x55, 0x55, 0x2e, 0x94, 0xc5, 0x51, 0x5d, 0xff, 0xef, 0x0b, 0x37, 0xce, 0x25, 0x5a, 0xfd, 0xbf, 0xbd, 0x2f, 0xfb, 0xde, 0xc4, 0x51, 0xf5, 0xfd, 0xfe, 0x00,
+ 0x1b, 0xdf, 0xc5, 0x59, 0x5f, 0xf7, 0x2b, 0x00, 0x3c, 0xdf, 0x26, 0x5a, 0xd5, 0x2f, 0x00, 0x00, 0x5d, 0xe7, 0x4b, 0x7b, 0xd5, 0x00, 0x00, 0x00, 0x3c, 0xdf, 0x38, 0xc6, 0x09, 0xaa, 0xaa, 0xaa,
+ 0xfb, 0xde, 0xba, 0xd6, 0xf4, 0xec, 0xef, 0xff, 0xfb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xaf, 0xab, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xaf, 0xff, 0xfb, 0xde, 0xba, 0xce, 0xbf, 0xee, 0xff, 0xff,
+ 0xfb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xbb, 0xbf, 0xfb, 0xd6, 0xba, 0xd6, 0xbf, 0xff, 0xbb, 0xfe, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xee, 0xaf, 0xdb, 0xde, 0xba, 0xd6, 0xbf, 0xbe, 0xff, 0xfb,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x03, 0x2c, 0x02, 0xfb, 0xd6, 0xba, 0xd6, 0xaf, 0xbb, 0xff, 0xbe, 0xdb, 0xd6, 0xba, 0xd6, 0x86, 0xa8, 0x02, 0x00, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xff, 0xfe, 0xfa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xdf, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xa0, 0x08, 0xae, 0x22, 0xdb, 0xd6, 0xba, 0xd6, 0xa0, 0xc8, 0xb8, 0x20, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xab, 0xaa, 0xaa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xbe, 0xff, 0xef, 0xbe, 0xfb, 0xde, 0xba, 0xce, 0xfa, 0xbf, 0xaf, 0xef, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x0b, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xbf, 0xee, 0xfe,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xbf, 0xbf, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xbf, 0xfd, 0xdb, 0xde, 0xba, 0xd6, 0xbe, 0xae, 0xaa, 0xaa, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xea, 0xab, 0xff,
+ 0xfb, 0xde, 0xba, 0xce, 0xfa, 0x8f, 0xeb, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xff, 0xab, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xab, 0xfa, 0xfb, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xaf, 0xab, 0xef, 0xbf,
+ 0xfc, 0xde, 0xda, 0xd6, 0x7f, 0xff, 0x7f, 0xfd, 0xda, 0xde, 0xfb, 0xd6, 0xaa, 0xbf, 0xff, 0xb7, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xff, 0xff, 0x7f, 0xda, 0xde, 0xfb, 0xd6, 0xfa, 0xe8, 0xfe, 0xee,
+ 0xba, 0xde, 0xfb, 0xd6, 0xbf, 0xff, 0xfe, 0xff, 0xfb, 0xde, 0xdb, 0xd6, 0xfd, 0x5d, 0xfd, 0xdf, 0xbb, 0xde, 0xfb, 0xd6, 0xfe, 0xfe, 0xff, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xdd, 0x55, 0x77, 0xd5,
+ 0xfb, 0xd6, 0xda, 0xd6, 0x7c, 0x57, 0xf5, 0x55, 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xaa, 0xea, 0xaa, 0xfb, 0xde, 0xba, 0xce, 0xef, 0xfb, 0xae, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xfe, 0xba,
+ 0xfb, 0xde, 0xba, 0xce, 0xbf, 0xef, 0xaa, 0xaa, 0xfb, 0xd6, 0xda, 0xd6, 0x55, 0xeb, 0x7f, 0xf5, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x03, 0x0f, 0x00, 0xfb, 0xd6, 0xba, 0xd6, 0xaa, 0xfa, 0xaa, 0xae,
+ 0xfb, 0xde, 0xba, 0xd6, 0xfe, 0xbf, 0xba, 0xbf, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xfa, 0xfb, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xab, 0xdb, 0xde, 0xda, 0xce, 0xfe, 0xfe, 0xbe, 0xfa,
+ 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xfe, 0xaf, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0x02, 0x00, 0x80, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xee, 0xab, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xe0, 0x28, 0xa8, 0x00,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xbf, 0xea, 0xeb, 0xea, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xaf, 0xff, 0xbf, 0xfb, 0xde, 0xda, 0xd6, 0xdd, 0x7f, 0xf5, 0xfb, 0xfb, 0xde, 0xda, 0xd6, 0xf6, 0xdd, 0xd7, 0x75,
+ 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0xf6, 0x5d, 0xd7, 0xfc, 0xde, 0xda, 0xd6, 0xff, 0x7e, 0x57, 0x57, 0xfb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xbb, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xfa, 0xfa, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xce, 0x50, 0x00, 0x80, 0x00, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0xa0, 0xa2, 0x8a, 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0x08, 0x82, 0xaa, 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xbe, 0xaa, 0xba,
+ 0xbb, 0xce, 0x9a, 0xc6, 0xe7, 0xff, 0xfb, 0xef, 0xba, 0xce, 0x9a, 0xc6, 0xef, 0xea, 0xff, 0xff, 0x9b, 0xd6, 0x7a, 0xc6, 0xae, 0xea, 0xab, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xff, 0xee, 0xeb,
+ 0xba, 0xce, 0x9a, 0xc6, 0xff, 0xff, 0xef, 0x6b, 0xba, 0xce, 0x7b, 0xc6, 0xef, 0xfe, 0xfe, 0xab, 0xbb, 0xce, 0x9a, 0xc6, 0xf7, 0xff, 0xba, 0xab, 0xbb, 0xce, 0x9a, 0xc6, 0xdf, 0xfa, 0xbb, 0xba,
+ 0xbb, 0xce, 0x9a, 0xc6, 0xde, 0xff, 0xdf, 0xae, 0xbb, 0xd6, 0x7a, 0xc6, 0xff, 0xff, 0xaf, 0xfe, 0xbb, 0xce, 0x9a, 0xc6, 0xef, 0xff, 0xff, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xbb, 0xaf, 0xae,
+ 0xbb, 0xce, 0x7a, 0xce, 0xff, 0xbf, 0xee, 0xaf, 0xba, 0xce, 0x9b, 0xce, 0x5d, 0x57, 0x6d, 0x5d, 0xbb, 0xd6, 0x7a, 0xc6, 0xea, 0xfe, 0xfa, 0xff, 0x9b, 0xd6, 0x9a, 0xc6, 0xfe, 0xaf, 0xfa, 0xfb,
+ 0xba, 0xce, 0x7b, 0xce, 0xee, 0xfa, 0xaa, 0xea, 0xbb, 0xd6, 0x7a, 0xce, 0xfa, 0xbf, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xff, 0xbe, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xba, 0xaa, 0xaa,
+ 0xbb, 0xce, 0x9a, 0xce, 0xd5, 0xf6, 0x7f, 0xd7, 0xba, 0xce, 0x9b, 0xce, 0xd5, 0xcd, 0xfd, 0x1a, 0xba, 0xce, 0x9b, 0xce, 0x2f, 0x5f, 0xdb, 0xf0, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0xfd, 0xff, 0xff,
+ 0xbb, 0xce, 0x9a, 0xce, 0xcf, 0x37, 0xd7, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xd7, 0xaf, 0xff, 0xdf, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xbf, 0x2b, 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0xef, 0xbf, 0xa8,
+ 0xba, 0xd6, 0x9b, 0xce, 0xfe, 0xba, 0xea, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xed, 0xde, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xeb, 0xea, 0xaf, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xaa, 0xaa, 0xaa,
+ 0xda, 0xd6, 0x9b, 0xce, 0xbf, 0xef, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xfa, 0xfb, 0xea, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xfe, 0xfa, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xdf, 0xdf, 0xef, 0xaf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xba, 0xea, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0x3e, 0x3e, 0x8a, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xaa, 0xea, 0x9b, 0xd6, 0xda, 0xce, 0xef, 0xff, 0xef, 0xab,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xaa, 0xab, 0xaa, 0x1b, 0xdf, 0xba, 0xce, 0x20, 0x55, 0x7d, 0x5f, 0x7d, 0xe7, 0x06, 0x52, 0x57, 0x00, 0x00, 0x00, 0x5d, 0xe7, 0x84, 0x41, 0x55, 0x80, 0x00, 0x00,
+ 0x7c, 0xe7, 0xe6, 0x51, 0x55, 0x57, 0x00, 0x00, 0x5c, 0xe7, 0xc5, 0x51, 0x55, 0x55, 0xfe, 0x00, 0x5c, 0xe7, 0xe5, 0x51, 0x55, 0x55, 0xf5, 0x00, 0x7c, 0xdf, 0xe6, 0x51, 0x55, 0x55, 0x77, 0x00,
+ 0x5b, 0xdf, 0xe5, 0x51, 0x55, 0x55, 0x55, 0xc0, 0xed, 0x7b, 0xe6, 0x59, 0xd5, 0xff, 0xbf, 0x2f, 0x5b, 0xdf, 0x26, 0x62, 0x55, 0x57, 0x5f, 0x03, 0x5b, 0xdf, 0x06, 0x62, 0x55, 0xd5, 0xdf, 0x00,
+ 0x5c, 0xe7, 0x47, 0x62, 0x55, 0xdf, 0xd5, 0x00, 0xfb, 0xd6, 0x67, 0x6a, 0xd7, 0xd5, 0x2b, 0x00, 0x5c, 0xdf, 0x09, 0x7b, 0x55, 0xf5, 0x00, 0x00, 0x1b, 0xdf, 0x09, 0x73, 0x57, 0x3f, 0x00, 0x00,
+ 0x3c, 0xdf, 0x0a, 0x6b, 0xad, 0x00, 0x00, 0x00, 0x3b, 0xdf, 0xba, 0xd6, 0x0b, 0x5d, 0x75, 0xf7, 0x3c, 0xdf, 0xbb, 0xd6, 0xd8, 0x55, 0x57, 0xf5, 0xdb, 0xde, 0xba, 0xd6, 0xa7, 0xff, 0xff, 0xff,
+ 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xbe, 0xaf, 0xaf, 0xdb, 0xde, 0xba, 0xd6, 0xef, 0xbb, 0xdf, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0x00, 0x08, 0x82, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x0c, 0x88, 0xef,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x9c, 0x00, 0x20, 0xeb, 0xdb, 0xd6, 0xba, 0xd6, 0x02, 0xf2, 0x80, 0x12, 0xbb, 0xde, 0xda, 0xce, 0xeb, 0xaf, 0xaf, 0xef, 0xdb, 0xd6, 0xba, 0xd6, 0x0b, 0x00, 0x82, 0x00,
+ 0xdb, 0xd6, 0xbb, 0xd6, 0x08, 0x00, 0xab, 0x2f, 0xfb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xba, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xff, 0xef, 0xfb, 0xde, 0xda, 0xce, 0xff, 0xff, 0xff, 0xef,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xab, 0xbb, 0xab, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x20, 0x08, 0x88, 0x30, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xee, 0xab, 0xbe, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xff, 0xff, 0xfe,
+ 0xdb, 0xde, 0xba, 0xd6, 0xbe, 0xba, 0xff, 0xba, 0xfb, 0xd6, 0xbb, 0xd6, 0xab, 0xaf, 0xae, 0xfa, 0xfb, 0xd6, 0xba, 0xd6, 0xf7, 0xfb, 0xaa, 0xff, 0xfb, 0xde, 0xdb, 0xd6, 0x55, 0x55, 0x55, 0xff,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xeb, 0xff, 0xfa, 0xbf, 0xdb, 0xd6, 0xba, 0xd6, 0x38, 0xc0, 0xa8, 0x02, 0xdb, 0xde, 0xbb, 0xd6, 0x7f, 0xba, 0xfb, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x82, 0x80, 0x83,
+ 0xfb, 0xde, 0xba, 0xd6, 0xed, 0xff, 0xff, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xfa, 0xbf, 0xbf, 0xfa, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0xdb, 0xf5, 0x55, 0xdb, 0xde, 0xba, 0xd6, 0xeb, 0xae, 0xeb, 0xaa,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xaa, 0xea, 0xae, 0xdb, 0xde, 0xba, 0xd6, 0xba, 0xae, 0xaa, 0xaa, 0xfb, 0xd6, 0xda, 0xd6, 0xfd, 0x57, 0xfd, 0x51, 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xaa, 0xab, 0xaa,
+ 0xdb, 0xde, 0xfb, 0xd6, 0xcf, 0xf8, 0xbf, 0xbf, 0xfc, 0xde, 0xda, 0xd6, 0xd5, 0xdf, 0xff, 0xdf, 0xfb, 0xde, 0xdb, 0xd6, 0xdf, 0xfd, 0xff, 0xfb, 0xfb, 0xde, 0xdb, 0xd6, 0x7f, 0xfd, 0xff, 0x77,
+ 0xfc, 0xde, 0xda, 0xd6, 0xdf, 0xf7, 0xff, 0xbf, 0xfc, 0xde, 0xda, 0xd6, 0x7f, 0x7f, 0xff, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xff, 0xef, 0x7d, 0xd7, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xee, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0xe0, 0x00, 0x02, 0xfc, 0xd6, 0xda, 0xd6, 0xfd, 0xbd, 0xdf, 0x57, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xff, 0xef, 0xfb, 0xfb, 0xde, 0xda, 0xd6, 0xd5, 0xfd, 0xff, 0x95,
+ 0xfb, 0xd6, 0xda, 0xd6, 0x47, 0x75, 0xd2, 0x57, 0xfb, 0xd6, 0xda, 0xd6, 0xf8, 0x5f, 0xd5, 0xd7, 0xfb, 0xde, 0xba, 0xd6, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xbe, 0xff, 0xeb, 0xfb,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xbf, 0xea, 0xea, 0xab, 0xfb, 0xde, 0xda, 0xd6, 0x5d, 0x55, 0xdf, 0x5e, 0xfb, 0xde, 0xda, 0xd6, 0xf9, 0xff, 0x5f, 0xf5, 0xfb, 0xd6, 0xda, 0xd6, 0xed, 0xf3, 0xd5, 0xf5,
+ 0xfb, 0xd6, 0xda, 0xd6, 0x75, 0x55, 0x5e, 0x57, 0xfb, 0xd6, 0xda, 0xd6, 0x5f, 0xdd, 0xfa, 0x5f, 0xfb, 0xd6, 0xba, 0xd6, 0xfe, 0xee, 0xbe, 0xae, 0xfc, 0xde, 0xda, 0xd6, 0xd5, 0xfd, 0xfd, 0x5f,
+ 0xfb, 0xde, 0xda, 0xd6, 0xfb, 0xd7, 0xd5, 0xdf, 0xfb, 0xde, 0xba, 0xd6, 0xbb, 0xba, 0xff, 0xfd, 0xfb, 0xde, 0xda, 0xd6, 0x5f, 0xd5, 0x55, 0xf5, 0xdb, 0xde, 0xba, 0xd6, 0xea, 0xeb, 0xbe, 0xff,
+ 0xfb, 0xd6, 0xda, 0xd6, 0x55, 0xbd, 0x55, 0xd7, 0xdb, 0xde, 0xba, 0xd6, 0xea, 0xea, 0xfe, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xbf, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xe8, 0x2b, 0x88, 0xba,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0xaf, 0xaa, 0xdf, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xa8, 0xba, 0xa2, 0x9b, 0xce, 0x79, 0xc6, 0x88, 0xaa, 0x3a, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x0a, 0xaa, 0x88, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0x8a, 0x8a, 0x02, 0xbb, 0xce, 0x7a, 0xc6, 0xbe, 0xff, 0xef, 0xab, 0xbb, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xff, 0xae, 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xef, 0xff,
+ 0xbb, 0xce, 0x7a, 0xce, 0xae, 0xfa, 0xeb, 0xef, 0xbb, 0xce, 0x9a, 0xc6, 0xaf, 0xaa, 0xaa, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x55, 0x55, 0x95, 0xbb, 0xce, 0x9a, 0xce, 0x5b, 0x7f, 0x55, 0x65,
+ 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xae, 0xaa, 0xea, 0xbb, 0xce, 0x9a, 0xce, 0x57, 0x65, 0x55, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0x55, 0x55, 0xfd, 0x5f, 0x9b, 0xce, 0x7a, 0xce, 0xc2, 0x00, 0x20, 0x00,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xfe, 0xff, 0xfb, 0xba, 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xeb, 0xbf, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x7f, 0x7f, 0xa9, 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xef, 0xaa, 0xbf,
+ 0xbb, 0xce, 0x9a, 0xc6, 0xfa, 0xab, 0xbe, 0xae, 0xba, 0xd6, 0x9b, 0xc6, 0xff, 0xef, 0xfb, 0xaa, 0x9b, 0xd6, 0x9a, 0xce, 0x7d, 0xd5, 0x5d, 0x6a, 0xba, 0xd6, 0x9b, 0xc6, 0xef, 0xfa, 0xfa, 0xaa,
+ 0xbb, 0xce, 0x9a, 0xce, 0x75, 0x3e, 0xb6, 0x8b, 0xbb, 0xd6, 0x9a, 0xce, 0x77, 0xff, 0xff, 0xf9, 0xba, 0xd6, 0x9b, 0xce, 0xfd, 0xff, 0xff, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xeb, 0xfb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xbf, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xf2, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0x55, 0xf7, 0xf7, 0xaf, 0xbb, 0xd6, 0xba, 0xce, 0xaf, 0xfd, 0xff, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0x55, 0xf7, 0x6f, 0xb7, 0xdb, 0xd6, 0xba, 0xce, 0xf5, 0x65, 0xfd, 0x76, 0x9b, 0xd6, 0xda, 0xce, 0xab, 0xfe, 0xfe, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0x57, 0xbf, 0xff, 0xbe,
+ 0xdb, 0xd6, 0xba, 0xce, 0x75, 0xfb, 0xae, 0xaf, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xaa, 0xea, 0xaa, 0xda, 0xd6, 0x9b, 0xce, 0xef, 0xab, 0xfa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xea, 0xaf, 0xee,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xa9, 0xef, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xae, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x6e, 0x6a, 0xab, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xbe, 0xab, 0xaa,
+ 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0xf2, 0x0a, 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xfa, 0xae, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xee, 0xae, 0xaa, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xaa, 0xab, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x2a, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x77, 0xca, 0x02, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0x8a, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x36, 0x02, 0x8a, 0xaa, 0x1b, 0xdf, 0xba, 0xd6, 0xe2, 0xff, 0x55, 0xf7, 0xdb, 0xd6, 0xba, 0xd6, 0xb4, 0x02, 0x8a, 0x86, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xa8, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xbe, 0x8f, 0xba, 0x20, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0x02, 0x88, 0x0a, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0x80, 0x2a, 0xdb, 0xd6, 0xba, 0xd6, 0x3f, 0xc2, 0xa0, 0xec,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xa2, 0x02, 0x8a, 0xdb, 0xd6, 0xba, 0xd6, 0x78, 0x08, 0x02, 0x2a, 0xdb, 0xd6, 0xba, 0xd6, 0x82, 0x8a, 0xbf, 0x00, 0xdb, 0xd6, 0xba, 0xce, 0x82, 0x00, 0x2a, 0xa8,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x02, 0x0c, 0x20, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xba, 0xfb, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0x2a, 0x3c, 0xae, 0x80, 0xdb, 0xd6, 0xba, 0xd6, 0xf8, 0xf8, 0x8a, 0xa0,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0x82, 0x02, 0x8a, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xba, 0xfb, 0xfe, 0xdb, 0xd6, 0xba, 0xd6, 0x3a, 0xad, 0x82, 0x2a, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xaa, 0xaa, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xee, 0x88, 0xea, 0xa8, 0xfb, 0xde, 0xba, 0xce, 0xbb, 0xff, 0xff, 0xbf, 0xdb, 0xde, 0xba, 0xce, 0xaf, 0xbb, 0xba, 0xae, 0xdb, 0xde, 0xda, 0xce, 0xaa, 0xfe, 0xfe, 0xff,
+ 0xdb, 0xde, 0xba, 0xce, 0xea, 0xaa, 0xae, 0xea, 0xfb, 0xd6, 0xba, 0xd6, 0xaa, 0xbf, 0xff, 0xfd, 0xdc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xea, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x98, 0x80, 0x00,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xfe, 0xef, 0xff, 0xab, 0xfb, 0xde, 0xba, 0xce, 0xeb, 0xfe, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x8a, 0xb0, 0x0a, 0xdb, 0xde, 0xba, 0xce, 0xeb, 0xae, 0xae, 0xea,
+ 0xfb, 0xd6, 0xba, 0xce, 0xfa, 0xae, 0xea, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x22, 0xa2, 0xa0, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0xae, 0x8a, 0xa8, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xe8, 0xaa, 0xea,
+ 0xdb, 0xde, 0xba, 0xce, 0xfe, 0xbf, 0xff, 0xfa, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xaa, 0xba, 0xeb, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xeb, 0xbf, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xff, 0xfb, 0xeb,
+ 0xfc, 0xde, 0xba, 0xce, 0xbf, 0xeb, 0xeb, 0xef, 0xfc, 0xde, 0xba, 0xce, 0xeb, 0xab, 0xbb, 0xba, 0xfc, 0xde, 0xba, 0xce, 0xba, 0xba, 0xaa, 0xae, 0xfc, 0xde, 0xda, 0xd6, 0xf7, 0xff, 0x75, 0x7d,
+ 0xdb, 0xde, 0xda, 0xd6, 0xaf, 0x5f, 0x5d, 0x55, 0xfb, 0xde, 0xda, 0xd6, 0xf7, 0x57, 0x75, 0x55, 0xfc, 0xde, 0xba, 0xd6, 0xbf, 0xaa, 0xaf, 0xbf, 0xfc, 0xde, 0xda, 0xd6, 0xef, 0xe7, 0xff, 0xaf,
+ 0xfb, 0xde, 0xda, 0xd6, 0x5f, 0xff, 0xfa, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0xf5, 0xfd, 0x77, 0xff, 0xfc, 0xde, 0xda, 0xd6, 0xdb, 0xd5, 0x77, 0x57, 0xfc, 0xde, 0xda, 0xd6, 0xff, 0xfb, 0xff, 0xd7,
+ 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x55, 0x77, 0xed, 0xfb, 0xd6, 0xda, 0xd6, 0x95, 0xff, 0x77, 0xf7, 0xfb, 0xde, 0xba, 0xce, 0xfa, 0xea, 0xea, 0xae, 0xfb, 0xde, 0xda, 0xd6, 0x95, 0xf5, 0x7d, 0xd7,
+ 0xdb, 0xde, 0xba, 0xd6, 0xfb, 0xaa, 0xaa, 0xef, 0xfb, 0xde, 0xda, 0xd6, 0xb5, 0x77, 0x5d, 0x55, 0xfb, 0xde, 0xdb, 0xd6, 0x7d, 0x7d, 0xd5, 0x55, 0xfc, 0xde, 0xba, 0xd6, 0xfe, 0xeb, 0xfe, 0xfe,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xaa, 0xab, 0xab, 0xeb, 0xfb, 0xde, 0xba, 0xce, 0xbb, 0xaa, 0xfe, 0xfb, 0xfb, 0xde, 0xba, 0xd6, 0xaa, 0xeb, 0xff, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0xfb, 0xff, 0xff, 0xff,
+ 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xee, 0xae, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x00, 0x0a, 0x3e, 0xdb, 0xd6, 0xba, 0xd6, 0x08, 0x8e, 0xa3, 0xae, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xea, 0xea, 0xfe,
+ 0xfc, 0xde, 0xba, 0xce, 0xfb, 0xff, 0xff, 0xef, 0xba, 0xd6, 0xdb, 0xce, 0x08, 0xae, 0xaa, 0x2b, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xab, 0xeb, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0x8a, 0xaa, 0x2a,
+ 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xfb, 0xfe, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xa0, 0x2a, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xa2, 0xba, 0xdb, 0xde, 0xba, 0xce, 0xbf, 0xff, 0xfa, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0x2a, 0x82, 0x08, 0xbb, 0xce, 0x7a, 0xc6, 0xfe, 0xaa, 0xab, 0xba, 0xbb, 0xce, 0x7a, 0xc6, 0xf8, 0x8f, 0x2a, 0xab, 0xbb, 0xce, 0x7a, 0xc6, 0xef, 0xba, 0xaa, 0xee,
+ 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x75, 0xf5, 0x65, 0xbb, 0xce, 0x7a, 0xc6, 0xfa, 0xaa, 0xae, 0xaa, 0xbb, 0xce, 0x7a, 0xce, 0xfb, 0xbe, 0xaa, 0xaf, 0xbb, 0xce, 0x9a, 0xce, 0x5a, 0x55, 0x55, 0x7d,
+ 0xba, 0xce, 0x9b, 0xce, 0xf5, 0x5f, 0x5e, 0x75, 0xbb, 0xd6, 0x9a, 0xc6, 0xef, 0xfa, 0xfe, 0xea, 0xbb, 0xce, 0x9a, 0xce, 0x57, 0x9d, 0x56, 0x28, 0xbb, 0xce, 0x9a, 0xce, 0xb5, 0x3f, 0x77, 0xdf,
+ 0xba, 0xce, 0x9b, 0xce, 0x8d, 0xed, 0x7d, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xdf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfd, 0xff, 0x7e, 0xba, 0xce, 0x9b, 0xce, 0x69, 0xf5, 0xcf, 0xd5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0x7f, 0xfe, 0xdb, 0x9b, 0xd6, 0xba, 0xce, 0xad, 0xab, 0xd7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0x6f, 0xab, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0x5f, 0xff, 0xef, 0xab,
+ 0x9b, 0xd6, 0xba, 0xce, 0xaf, 0xff, 0xdb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0xed, 0xb5, 0xeb, 0x9b, 0xd6, 0xba, 0xce, 0xd5, 0xaa, 0xff, 0xd5, 0x9b, 0xd6, 0xba, 0xce, 0xfb, 0xfe, 0xff, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xff, 0xfe, 0xab, 0xba, 0xce, 0x9b, 0xce, 0x3e, 0x2b, 0x00, 0x28, 0xda, 0xd6, 0x9b, 0xce, 0xff, 0xfb, 0xbf, 0xfb, 0xda, 0xd6, 0x9b, 0xce, 0xaf, 0xfe, 0xfe, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xaa, 0x80, 0x9a, 0xd6, 0xdb, 0xce, 0xeb, 0xea, 0xaa, 0xff, 0x9b, 0xd6, 0xda, 0xce, 0xaa, 0xbf, 0xeb, 0xbe, 0xba, 0xd6, 0xdb, 0xce, 0xa2, 0xaa, 0xaf, 0xe2,
+ 0xdb, 0xd6, 0xba, 0xce, 0xf7, 0xff, 0xfb, 0x5a, 0xda, 0xd6, 0xbb, 0xce, 0xdd, 0xbf, 0xe7, 0xb7, 0xdb, 0xd6, 0xba, 0xce, 0x5f, 0xfa, 0xab, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xae, 0xaa, 0xba,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xae, 0xaa, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xfa, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x6b, 0xaa, 0xaa, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0x2b, 0x8a, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xaa, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xbf, 0xff, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xaa, 0xa8, 0x88, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0x8a, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0xaa, 0xa0, 0xdb, 0xd6, 0xba, 0xce, 0x2e, 0xaa, 0xb2, 0xa2, 0xdb, 0xd6, 0xba, 0xd6, 0xab, 0xaa, 0x2b, 0xa6, 0xdb, 0xd6, 0xba, 0xd6, 0xac, 0xad, 0x0f, 0x2b,
+ 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0x8a, 0xaf, 0xab, 0xbb, 0xd6, 0xda, 0xce, 0xac, 0xab, 0xa8, 0x2a, 0xdb, 0xd6, 0xba, 0xd6, 0x3f, 0xb6, 0x2a, 0xa3, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xee, 0xeb, 0xbb,
+ 0xdb, 0xde, 0xba, 0xce, 0xbb, 0xff, 0xae, 0xbe, 0xbb, 0xde, 0xda, 0xce, 0xaa, 0xbf, 0xff, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0x82, 0x82, 0x0a, 0x22, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0x88, 0x80,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa8, 0x22, 0xa2, 0xfb, 0xd6, 0xba, 0xce, 0xae, 0xab, 0xea, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0x28, 0xa8, 0x20, 0xdc, 0xde, 0xba, 0xce, 0xfe, 0xbb, 0xab, 0xab,
+ 0xdc, 0xde, 0xba, 0xce, 0xbf, 0xfa, 0xba, 0xfb, 0xdb, 0xd6, 0xba, 0xd6, 0xdc, 0x02, 0x20, 0x8e, 0xfb, 0xde, 0xba, 0xce, 0xfb, 0xff, 0xbe, 0xbf, 0xdb, 0xde, 0xba, 0xce, 0xea, 0xfa, 0xba, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xa0, 0xf0, 0xb2, 0xa8, 0xdb, 0xd6, 0xbb, 0xd6, 0x08, 0x03, 0xaf, 0xa6, 0xdb, 0xd6, 0xba, 0xce, 0x02, 0x82, 0x8a, 0xaa, 0xfb, 0xd6, 0xba, 0xd6, 0xfe, 0xef, 0xeb, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x80, 0x82, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x8a, 0xaa, 0xa2, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xa2, 0xa8, 0xbf, 0xbb, 0xde, 0xda, 0xce, 0xff, 0xaf, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0x0a, 0xaa, 0x02, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xab, 0xeb, 0xfa, 0xdb, 0xd6, 0xba, 0xd6, 0xe0, 0xa0, 0xbe, 0x00, 0xdb, 0xd6, 0xba, 0xd6, 0x3c, 0xe0, 0xaa, 0x0a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x2a, 0x2f, 0x22, 0xa1, 0xdb, 0xd6, 0xba, 0xce, 0x02, 0xaa, 0xaa, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xa2, 0x0a, 0xa2, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xef, 0xfb, 0xba,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x0c, 0x3a, 0x02, 0xb3, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa0, 0xa8, 0x8a, 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xaf, 0xff, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0x08, 0x8a, 0xa2, 0x28,
+ 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xa2, 0xaa, 0xaa, 0xdb, 0xd6, 0xbb, 0xd6, 0x9a, 0x5f, 0xfd, 0xb3, 0xdb, 0xd6, 0xbb, 0xd6, 0xfa, 0x63, 0x25, 0x75, 0xdb, 0xd6, 0xba, 0xd6, 0xe1, 0xfd, 0xfa, 0xd2,
+ 0xdb, 0xd6, 0xbb, 0xce, 0x82, 0x3a, 0x8a, 0xbb, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xae, 0xff, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x55, 0x55, 0x7d,
+ 0xfc, 0xde, 0xba, 0xce, 0xee, 0xaf, 0xea, 0xaa, 0xfc, 0xde, 0xba, 0xd6, 0xbf, 0xff, 0xff, 0xeb, 0xfb, 0xde, 0xda, 0xd6, 0x55, 0x75, 0xd5, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xaa, 0xaa, 0xaa, 0xaf,
+ 0xfc, 0xd6, 0xda, 0xd6, 0xd9, 0xef, 0x7b, 0xff, 0xdc, 0xde, 0xda, 0xd6, 0xd5, 0xff, 0xff, 0xfe, 0xfb, 0xde, 0xbb, 0xd6, 0xfe, 0xff, 0xfa, 0xff, 0xfb, 0xde, 0xda, 0xd6, 0x77, 0xd5, 0xd5, 0xfb,
+ 0xdb, 0xde, 0xfb, 0xd6, 0xaf, 0xfe, 0xdf, 0xff, 0xdb, 0xde, 0xfb, 0xd6, 0xff, 0x2a, 0xbf, 0xff, 0xfb, 0xde, 0xba, 0xd6, 0x6e, 0xab, 0xaa, 0xbe, 0xfb, 0xd6, 0xdb, 0xd6, 0x55, 0xcb, 0x7e, 0x55,
+ 0xdc, 0xde, 0xba, 0xd6, 0xeb, 0xea, 0xab, 0xee, 0xdb, 0xd6, 0xbb, 0xd6, 0x2e, 0x08, 0x00, 0x00, 0xfb, 0xde, 0xda, 0xce, 0xff, 0xff, 0xee, 0xff, 0xdb, 0xde, 0xba, 0xd6, 0xaf, 0xae, 0xeb, 0xff,
+ 0xfb, 0xde, 0xba, 0xce, 0xea, 0xef, 0xeb, 0xff, 0xdc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xab, 0xae, 0xfc, 0xde, 0xba, 0xce, 0xae, 0xbb, 0xab, 0xaf, 0xfb, 0xde, 0xda, 0xd6, 0x5d, 0x55, 0xd5, 0xff,
+ 0xdb, 0xde, 0xba, 0xce, 0xba, 0xfe, 0xea, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0xe8, 0xaa, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0xa2, 0x8a, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0xaa, 0xaa, 0x2a,
+ 0xdb, 0xde, 0xba, 0xce, 0xee, 0xfe, 0xeb, 0xfb, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xeb, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xef, 0xaa, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xba, 0xbb,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xfa, 0xbf, 0xdf, 0x97, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xab, 0xae, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xa8, 0xae, 0xeb, 0xdb, 0xd6, 0xbb, 0xce, 0xa2, 0xbe, 0xee, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xba, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xbb, 0xab, 0x3a, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xef,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xff, 0xea, 0xba, 0xaa, 0xbb, 0xce, 0x7a, 0xce, 0xeb, 0xff, 0xaa, 0xaf, 0xbb, 0xce, 0x7a, 0xce, 0xeb, 0xfb, 0xff, 0xaf, 0xbb, 0xd6, 0x7a, 0xc6, 0xab, 0xaf, 0xae, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xfe, 0xfe, 0xea, 0xab, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x5d, 0xfd, 0xeb, 0xbb, 0xce, 0x9a, 0xce, 0xe5, 0xd5, 0xff, 0xa7, 0xbb, 0xd6, 0x9a, 0xce, 0xd5, 0xdf, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xff, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0xbf, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xaf, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xae, 0xab, 0xbb,
+ 0x9b, 0xd6, 0xba, 0xce, 0x5f, 0xfb, 0xfb, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xaf, 0xaf, 0xae, 0xda, 0xd6, 0x9b, 0xce, 0xff, 0xff, 0xff, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xab, 0xee, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xff, 0xbe, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xb7, 0x5e, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xae, 0xeb, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xaf, 0xbb, 0xae,
+ 0xbb, 0xd6, 0xba, 0xce, 0xf5, 0xad, 0xee, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xbb, 0xae, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xbf, 0x6b, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xaa, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xfb, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xae, 0xab, 0x9b, 0xd6, 0xda, 0xce, 0xab, 0xff, 0xaa, 0xfe, 0xbb, 0xd6, 0xba, 0xce, 0xbf, 0xf7, 0xea, 0xab,
+ 0xda, 0xd6, 0x9b, 0xce, 0xfe, 0xbf, 0xea, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xfe, 0xaa, 0xfa, 0xda, 0xd6, 0xbb, 0xce, 0xd7, 0xbf, 0xb9, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xf7, 0xab, 0xbb, 0x7a,
+ 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xab, 0xbe, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa9, 0xae, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x2e, 0xbe, 0xba, 0x2e, 0xda, 0xd6, 0xbb, 0xce, 0xaa, 0xab, 0xab, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xae, 0xbf, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xaa, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x8a, 0xaa, 0x8a, 0xe3, 0xdb, 0xd6, 0xba, 0xce, 0x88, 0xa2, 0xa8, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xea, 0xc0, 0x00, 0x83, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xa8, 0x88,
+ 0xdb, 0xde, 0xba, 0xce, 0xea, 0xbe, 0xbb, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0x20, 0x2a, 0xaa, 0x2a, 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0x0f, 0xaf, 0xb8, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0x2a, 0xaa,
+ 0xbb, 0xde, 0xda, 0xce, 0xbe, 0xff, 0xeb, 0xfa, 0xdb, 0xd6, 0xba, 0xd6, 0x8e, 0xbe, 0x8f, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0x88, 0xa2, 0xe7, 0x42, 0xdb, 0xd6, 0xba, 0xd6, 0xf6, 0x00, 0x02, 0xbb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0xae, 0xa8, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa2, 0xae, 0x2a, 0xba, 0xd6, 0xdb, 0xce, 0xab, 0x0a, 0xba, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0x0a, 0xba, 0xaf, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xff, 0xbf, 0xbf, 0xdb, 0xd6, 0xba, 0xd6, 0xae, 0x3f, 0xbe, 0x1e,
+ 0xdb, 0xd6, 0xba, 0xce, 0x88, 0xaa, 0xa2, 0x8a, 0xbb, 0xd6, 0xda, 0xce, 0x2a, 0xaa, 0x8b, 0xbc, 0xdb, 0xd6, 0xba, 0xd6, 0xcf, 0xab, 0x5e, 0x0b, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xea, 0xaf, 0xfa, 0xba, 0xd6, 0xdb, 0xce, 0x0a, 0xaa, 0xea, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xbb, 0xee, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xbb, 0x2a, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xbe, 0xdb, 0xd6, 0xba, 0xd6, 0x82, 0x7f, 0xd5, 0xdb, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xaf, 0xfa, 0xdb, 0xd6, 0xbb, 0xce, 0xab, 0xbb, 0xfa, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xea, 0xaa, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xa2, 0x2a, 0xbc, 0xde, 0xda, 0xce, 0xff, 0xbf, 0xbf, 0xfa, 0xdb, 0xd6, 0xba, 0xd6, 0x2f, 0xba, 0x50, 0x80,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xe2, 0x20, 0xe3, 0xea, 0xdb, 0xd6, 0xba, 0xd6, 0xeb, 0xab, 0x2b, 0xde, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x88, 0x8a, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x2a, 0xa2, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xaa, 0xa8, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0x0e, 0xaa, 0x88, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0xb2, 0xac, 0x2a, 0xae, 0xdb, 0xde, 0xba, 0xce, 0xbe, 0xbf, 0xbf, 0xbb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xa2, 0x22, 0xdc, 0xde, 0xba, 0xce, 0xff, 0xff, 0xab, 0xee, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x0a, 0xaa, 0xa2, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaf, 0xae, 0xee,
+ 0xdc, 0xde, 0xba, 0xce, 0xae, 0xaa, 0xae, 0xaa, 0xfc, 0xde, 0xba, 0xce, 0xeb, 0xfb, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xae, 0xaa, 0xae, 0xaa, 0xfc, 0xde, 0xba, 0xd6, 0xfe, 0xbf, 0xff, 0xbf,
+ 0xfc, 0xde, 0xbb, 0xd6, 0xff, 0xef, 0xfe, 0xef, 0xfc, 0xde, 0xbb, 0xd6, 0xeb, 0xaf, 0xfb, 0xab, 0xdb, 0xde, 0xfb, 0xd6, 0x8a, 0xbf, 0xbe, 0xeb, 0xfc, 0xde, 0xba, 0xd6, 0xff, 0xef, 0xfe, 0xea,
+ 0xdc, 0xde, 0xda, 0xd6, 0xef, 0xef, 0xeb, 0x5f, 0xdb, 0xde, 0xfa, 0xce, 0xba, 0xaa, 0xaa, 0xaa, 0xfb, 0xde, 0xdb, 0xd6, 0xdd, 0xdf, 0xd7, 0x5d, 0xfb, 0xde, 0xda, 0xd6, 0xbd, 0xf7, 0xbf, 0xfd,
+ 0xfc, 0xde, 0xdb, 0xd6, 0xff, 0x7f, 0xff, 0xf5, 0xfc, 0xde, 0xda, 0xd6, 0xef, 0xdf, 0x7f, 0xff, 0xfb, 0xd6, 0xbb, 0xd6, 0xab, 0xeb, 0xaa, 0xfe, 0xdb, 0xde, 0xbb, 0xce, 0xee, 0xaa, 0xaa, 0xea,
+ 0xdb, 0xde, 0xba, 0xce, 0xab, 0xab, 0xbe, 0xff, 0xdb, 0xd6, 0xbb, 0xce, 0x00, 0x80, 0xa8, 0x82, 0xdb, 0xd6, 0xbb, 0xce, 0x88, 0x82, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa8, 0x88, 0xaa,
+ 0xdb, 0xd6, 0xbb, 0xce, 0x0a, 0xa0, 0xaa, 0xea, 0xdb, 0xd6, 0xba, 0xd6, 0x2e, 0x80, 0x53, 0xeb, 0xba, 0xd6, 0xdb, 0xce, 0x82, 0xaa, 0xaa, 0xa9, 0xfb, 0xd6, 0xba, 0xd6, 0xbe, 0xbb, 0xfb, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x80, 0x80, 0x20, 0xa0, 0xdb, 0xd6, 0xbb, 0xce, 0xfe, 0xba, 0xaa, 0xff, 0xbb, 0xd6, 0xda, 0xce, 0x80, 0xba, 0x82, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xbb, 0xeb, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xbb, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xaa, 0xae, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xfa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xfe, 0xea, 0xb7,
+ 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xbf, 0xff, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xab, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xfa, 0xaa, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xeb, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xae, 0xaf, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0xbe, 0xef, 0xf5, 0x7f, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xef, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0xab, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x5d, 0xf7, 0xff, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0x77, 0xed, 0xf7, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xf5, 0xff, 0xff, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xf5, 0xfe, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xef, 0xab, 0xbf, 0xbb, 0xce, 0x9a, 0xce, 0xda, 0xb2, 0x2b, 0xea, 0x9b, 0xd6, 0xba, 0xce, 0xea, 0xff, 0xf5, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xef, 0xeb,
+ 0xba, 0xd6, 0x9b, 0xce, 0xbe, 0xfe, 0xbf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xaf, 0x8b, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xaf, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xfb,
+ 0x9b, 0xd6, 0xba, 0xce, 0xf6, 0xfb, 0xfd, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xbe, 0xba, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xfe, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xde, 0xf6, 0xee, 0xeb,
+ 0xba, 0xd6, 0x9b, 0xce, 0xea, 0x7e, 0xbd, 0xce, 0xba, 0xd6, 0x9b, 0xce, 0xaf, 0xff, 0xef, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xef, 0xaf, 0xab, 0x9b, 0xd6, 0xba, 0xce, 0xb7, 0xff, 0x7d, 0x5f,
+ 0x9b, 0xd6, 0xda, 0xce, 0xbb, 0xee, 0xff, 0xfe, 0xbb, 0xd6, 0xba, 0xce, 0xfa, 0xeb, 0xef, 0x25, 0x9a, 0xd6, 0xbb, 0xce, 0xf5, 0xeb, 0xeb, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xeb, 0xea, 0xff, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x38, 0xa2, 0x0a, 0x0c, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xee, 0xfb, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xf7, 0xfe, 0xab, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xfa, 0xff, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xfb, 0xee, 0xb9, 0xba, 0xd6, 0xdb, 0xce, 0xb2, 0x20, 0xea, 0x80, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xfa, 0xea, 0xbb, 0xbb, 0xd6, 0xda, 0xce, 0xab, 0xaa, 0xbf, 0xa8,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xaa, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xea, 0xbe, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xbe, 0x8a, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xbe, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xe8, 0xaa, 0xaa, 0x0a, 0xdb, 0xd6, 0xba, 0xd6, 0xce, 0x2a, 0xbe, 0xf8, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0x2a, 0x82, 0xfb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xef, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x2a, 0x80, 0x20, 0xdb, 0xde, 0xba, 0xce, 0xaf, 0xea, 0xfe, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0xaa, 0xa2, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0x28, 0xa2, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa0, 0xa8, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xaa, 0xaa, 0x2a, 0xdb, 0xd6, 0xba, 0xce, 0x28, 0xa0, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xaa, 0xbb, 0xa2,
+ 0xbb, 0xd6, 0xda, 0xce, 0xea, 0x82, 0xaa, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0x0a, 0xaa, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xaa, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xbe, 0xbe, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x7f, 0x9e, 0xaa, 0x66, 0xbb, 0xd6, 0xda, 0xce, 0x2a, 0xfa, 0x2a, 0xba, 0xba, 0xd6, 0xdb, 0xce, 0xba, 0xea, 0xee, 0xf2, 0xba, 0xd6, 0xdb, 0xce, 0xe0, 0xba, 0xba, 0xa9,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xf8, 0xfa, 0xfa, 0xba, 0xd6, 0xdb, 0xce, 0xba, 0xa0, 0x2a, 0xa8, 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xa8, 0xfe, 0xac, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xa8, 0xcb, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaf, 0xeb, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xa3, 0xae, 0xba, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xb8, 0xaa, 0xba, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xea, 0xba, 0xba,
+ 0xdb, 0xd6, 0xba, 0xce, 0x6b, 0xbb, 0xbe, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xfa, 0xba, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xaa, 0x2a, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0x2b, 0xba, 0xaa, 0xfa,
+ 0xba, 0xd6, 0xdb, 0xce, 0xa4, 0xaa, 0xaa, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xab, 0xbe, 0xbf, 0xbb, 0xd6, 0xdb, 0xce, 0x2a, 0x8b, 0xfe, 0x8a, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xab, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xaa, 0x8a, 0xa0, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x8a, 0xbb, 0xd6, 0xda, 0xce, 0xa0, 0xaa, 0xaa, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0x80, 0x22, 0x2b, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xe8, 0xb2, 0xdb, 0xd6, 0xba, 0xd6, 0xfc, 0xeb, 0x4a, 0xdb, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0xaa, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0x8a, 0x2e, 0xa8,
+ 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xaa, 0xfa, 0xdc, 0xd6, 0xba, 0xce, 0xac, 0xbf, 0xaa, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x82, 0xaa, 0x8a, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x8a, 0x2a, 0x2a, 0xdb, 0xd6, 0xbb, 0xd6, 0x60, 0xac, 0x02, 0x39, 0xdb, 0xd6, 0xba, 0xd6, 0x21, 0x88, 0xa8, 0x02, 0xdb, 0xd6, 0xba, 0xd6, 0x03, 0x83, 0x2c, 0xa0,
+ 0xfc, 0xde, 0xba, 0xce, 0xab, 0xfa, 0xfe, 0xbb, 0xfb, 0xd6, 0xbb, 0xd6, 0xeb, 0xea, 0xff, 0xfb, 0xfc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xab, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0xc0, 0x00, 0x00, 0x80,
+ 0xba, 0xde, 0xdb, 0xd6, 0x5f, 0x57, 0x57, 0xff, 0xfc, 0xde, 0xba, 0xd6, 0xae, 0xea, 0xae, 0xbf, 0xfc, 0xde, 0xba, 0xd6, 0xfb, 0xaa, 0xbe, 0xbb, 0xfb, 0xd6, 0xdb, 0xd6, 0xdd, 0xcf, 0x55, 0x55,
+ 0xfb, 0xd6, 0xdb, 0xd6, 0xd9, 0x55, 0x57, 0x55, 0xfc, 0xde, 0xba, 0xce, 0xea, 0xaf, 0xfb, 0xff, 0xfb, 0xde, 0xbb, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd6, 0xba, 0xd6, 0xef, 0xee, 0xfa, 0xff,
+ 0xdc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xae, 0xdc, 0xde, 0xbb, 0xd6, 0xea, 0xbf, 0xd7, 0xff, 0xdc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaf, 0xfb, 0xd6, 0xbb, 0xd6, 0xff, 0xee, 0xfe, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xa8, 0xa0, 0x82, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0xa8, 0xaa, 0x8a, 0xdb, 0xd6, 0xbb, 0xce, 0xa2, 0x2a, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xae, 0xff, 0xda, 0xf7,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0x3a, 0xab, 0xae, 0xdb, 0xd6, 0xbb, 0xce, 0xfa, 0x2a, 0xba, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0x28, 0xaa, 0xaa, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0x23, 0xaa, 0xaa, 0xbf,
+ 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xaa, 0xfa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xfe, 0xfa, 0xeb, 0xba, 0xd6, 0xdb, 0xce, 0xba, 0xeb, 0xaa, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xae, 0xea, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xaa, 0xab, 0xa2, 0xba, 0xd6, 0xdb, 0xce, 0xda, 0xaa, 0xae, 0xab, 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0x23, 0xaa, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xaa, 0x9a, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0xba, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xbe, 0xae, 0xfb, 0xdb, 0xd6, 0xba, 0xce, 0xe2, 0xaa, 0xaa, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xef, 0xef, 0xba,
+ 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xaa, 0xaa, 0xba, 0xdb, 0xd6, 0xba, 0xd6, 0x63, 0xdf, 0x27, 0xad, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0xa2, 0xa8, 0xdb, 0xd6, 0xba, 0xd6, 0xf0, 0x57, 0x20, 0x02,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfd, 0xf7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xef, 0xff, 0xfe, 0x9a, 0xd6, 0xbb, 0xce, 0x5f, 0xad, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfe, 0xff, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xff, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xab, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xbe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xba, 0xff, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xbf, 0xee, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xbe, 0xbb, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xef, 0xff, 0xef,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xa2, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xff, 0x5e, 0xff, 0x9b, 0xd6, 0xba, 0xce, 0xeb, 0xff, 0xbd, 0xfd, 0x9a, 0xd6, 0xbb, 0xce, 0xaf, 0x7d, 0xf7, 0x7f,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xab, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xae, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xbf, 0xba, 0x9a, 0xd6, 0xdb, 0xce, 0xfa, 0xfa, 0xff, 0xeb,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xaa, 0xaa, 0xeb, 0x9b, 0xd6, 0xba, 0xce, 0xf7, 0xde, 0xfe, 0xef, 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xaa, 0x2c, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xf9, 0x7e, 0xfe, 0x5f,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xda, 0x7f, 0xfd, 0xba, 0xd6, 0xdb, 0xce, 0xab, 0xaa, 0x2f, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xee, 0x9f, 0xfe, 0xbf, 0xba, 0xd6, 0xbb, 0xce, 0xab, 0xaa, 0x0a, 0xaa,
+ 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0xfa, 0xfa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0x2f, 0xad, 0xba, 0xd6, 0xdb, 0xce, 0xaf, 0xae, 0x2a, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xaa, 0xab, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x7f, 0xff, 0xf5, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xbe, 0xba, 0xbe, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xff, 0xfe, 0xb7, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xab, 0xab,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2b, 0x8a, 0x2a, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xae, 0x22, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0xa2, 0x8a, 0xa2, 0xfb, 0xd6, 0xba, 0xce, 0xfa, 0xfa, 0xbb, 0xfa,
+ 0xdb, 0xde, 0xba, 0xce, 0xba, 0xea, 0xff, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xa8, 0xaa, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xfe, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xee, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xae, 0xaf, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xff, 0xb6, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xb6, 0xfd, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xae, 0xfb, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xa6, 0xab, 0xfe, 0xef, 0x9a, 0xd6, 0xdb, 0xce, 0xbf, 0xff, 0xfe, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xff, 0xf5,
+ 0xba, 0xd6, 0xdb, 0xce, 0xab, 0x2a, 0x2b, 0xca, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xa0, 0x8a, 0xba, 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0x28, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xee, 0x7f, 0xdf,
+ 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xff, 0xfe, 0xdf, 0xba, 0xd6, 0xdb, 0xce, 0xbf, 0xea, 0xaa, 0x0a, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xae, 0xfb, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0x6e, 0xd2, 0xfb, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x82, 0xa8, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xea, 0xaf, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x83, 0xaa, 0xaa, 0xeb, 0xdb, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xfa, 0xff,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xea, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xae, 0xbe, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaf, 0xae, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xeb, 0xff, 0xff,
+ 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0xa8, 0xbe, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xfb, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xeb, 0xaa, 0xa8, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xa2, 0xaa, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xe2, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0x2a, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x7b, 0xab, 0xab, 0xaa, 0xdc, 0xd6, 0xba, 0xce, 0x8b, 0xae, 0xa8, 0xaa,
+ 0xdb, 0xde, 0xba, 0xce, 0xab, 0xea, 0xff, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xaa, 0xaa, 0xba, 0xba, 0xd6, 0xdb, 0xce, 0xea, 0xaa, 0xba, 0x8a, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xae, 0xfa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xab, 0xaa, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xf7, 0x8b, 0xab, 0xbd, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xeb, 0xab, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xfa, 0xb8, 0xbf, 0xae, 0xdb, 0xd6, 0xbb, 0xd6, 0xcb, 0x2b, 0x37, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0x08, 0x2a, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x28, 0xba, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x22, 0xaa, 0x8a, 0xbc, 0xde, 0xda, 0xce, 0xbe, 0xff, 0xef, 0xaf, 0xdb, 0xde, 0xbb, 0xd6, 0xaf, 0xef, 0x7f, 0xf7, 0xdc, 0xde, 0xba, 0xd6, 0x7b, 0xeb, 0xf9, 0xff,
+ 0xdb, 0xd6, 0xbb, 0xd6, 0x2a, 0x00, 0x87, 0x80, 0xfc, 0xde, 0xda, 0xce, 0xff, 0xbf, 0xff, 0xff, 0xfc, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xea, 0xaf, 0xfb, 0xd6, 0xdb, 0xd6, 0x55, 0x57, 0xd5, 0x79,
+ 0xdb, 0xd6, 0xbb, 0xd6, 0x98, 0xc0, 0xe2, 0x22, 0xdb, 0xd6, 0xbb, 0xd6, 0xb2, 0xeb, 0x3e, 0xb8, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xaf, 0xea, 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xfa, 0xfb, 0xbf,
+ 0xdb, 0xd6, 0xba, 0xce, 0x20, 0xa0, 0x3a, 0xa0, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x28, 0xaa, 0xba, 0xdc, 0xd6, 0xba, 0xce, 0x8a, 0x8b, 0xe8, 0xbb, 0xdb, 0xd6, 0xba, 0xd6, 0xa2, 0xc2, 0xbf, 0xb9,
+ 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x8a, 0xae, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xac, 0x80, 0xa2, 0x8a, 0xdc, 0xd6, 0xba, 0xd6, 0xaa, 0xfb, 0xbb, 0xab, 0xdb, 0xd6, 0xbb, 0xce, 0xba, 0xbe, 0xaa, 0xea,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xba, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xae, 0xfe, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xff, 0xaf, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xbf, 0xff, 0xfb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xff, 0xfb, 0xff, 0xda, 0xd6, 0xbb, 0xce, 0xab, 0xfa, 0xff, 0xff, 0xdb, 0xd6, 0x9b, 0xce, 0xbe, 0xaa, 0xab, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xff, 0xbe, 0xba,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xe7, 0xfa, 0xae, 0xba, 0xd6, 0xdb, 0xce, 0xef, 0xaf, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xef, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xfa, 0xbf, 0xbb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xeb, 0xbb, 0xaf, 0xb8, 0xdb, 0xd6, 0xba, 0xce, 0xee, 0xeb, 0xab, 0xaa, 0xda, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x0a, 0x2a, 0xaa, 0xe8,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xa0, 0x0a, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x8a, 0x8a, 0x82, 0xdb, 0xd6, 0xba, 0xd6, 0x0e, 0xb8, 0xa0, 0x00, 0xdb, 0xd6, 0xba, 0xd6, 0x8d, 0x22, 0x80, 0x82,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xff, 0xff, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xba, 0xad, 0x9b, 0xd6, 0xba, 0xce, 0xbd, 0xdb, 0x6e, 0xf5, 0x9a, 0xd6, 0xbb, 0xce, 0xbb, 0xf6, 0xf5, 0xba,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xff, 0xef, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xba, 0xbe, 0xce, 0xbb, 0xd6, 0x9a, 0xce, 0xfa, 0xa2, 0xaa, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xaa, 0xff, 0xff,
+ 0xba, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xaa, 0xff, 0xda, 0xd6, 0x9b, 0xce, 0xff, 0xfb, 0xff, 0xbf, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xff, 0xbf, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xfa, 0xae, 0xea,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xeb, 0xff, 0xaa, 0xaf, 0xbb, 0xd6, 0xba, 0xce, 0xea, 0xa8, 0x75, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xaf, 0xff, 0xea, 0x9b, 0xd6, 0xba, 0xce, 0xeb, 0xff, 0x7f, 0xfd,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xfe, 0xef, 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xf7, 0xd7, 0xad, 0x9b, 0xd6, 0xda, 0xce, 0xae, 0xbe, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0x7e, 0x7f, 0xff, 0xdf,
+ 0xbb, 0xd6, 0xda, 0xce, 0x02, 0xa8, 0xaa, 0xad, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xfb, 0xef, 0xf5, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xee, 0xab, 0xba, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xbb, 0xbe, 0xfa,
+ 0xbb, 0xd6, 0xda, 0xce, 0xca, 0xaa, 0xa2, 0xbe, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0xa2, 0xbf, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0x7e, 0xfe, 0xeb, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xb6, 0xbe, 0xfa, 0xeb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xea, 0xbe, 0xaa, 0xbb, 0xd6, 0xda, 0xce, 0xeb, 0xa2, 0x2a, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x8f, 0xee, 0xfb, 0xb7, 0xba, 0xd6, 0xdb, 0xce, 0xfa, 0xa2, 0xaa, 0xee,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xba, 0xff, 0xa6, 0xdb, 0xd6, 0xba, 0xce, 0x2a, 0xea, 0xee, 0xee, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xa9, 0xbd, 0xed, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xbf, 0xbb,
+ 0xbb, 0xd6, 0xda, 0xce, 0xa8, 0xaa, 0xea, 0xea, 0xbb, 0xd6, 0xda, 0xce, 0xab, 0xaa, 0xbf, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xea, 0xab, 0xa2, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xaa, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xaa, 0xea, 0xee, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaf, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xff, 0xfe, 0xf6, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xef, 0x5d, 0x55,
+ 0xda, 0xd6, 0x9b, 0xce, 0xfe, 0xfa, 0xfa, 0xfb, 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xab, 0xff, 0xfb, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xef, 0xab, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0x2a, 0xab, 0xe9,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x8a, 0x2a, 0xaa, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xfe, 0xbf, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xef, 0xff, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0x7b, 0xfe, 0xff, 0xff,
+ 0x9b, 0xd6, 0xba, 0xce, 0xfb, 0xff, 0xf7, 0xff, 0xbb, 0xd6, 0xba, 0xce, 0xa4, 0xea, 0xff, 0xfa, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xff, 0xfb, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xd5, 0x7a, 0xdf,
+ 0x9b, 0xd6, 0xbb, 0xce, 0x37, 0xfd, 0x55, 0xf7, 0x9a, 0xd6, 0xbb, 0xce, 0xea, 0xf7, 0xff, 0x57, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0xa8, 0xf8, 0x2a, 0x9a, 0xd6, 0xbb, 0xce, 0x5f, 0xff, 0xd5, 0xfe,
+ 0xba, 0xd6, 0xdb, 0xce, 0x83, 0x3e, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xff, 0xeb, 0xbd, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xbf, 0x28, 0xef, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xa8, 0x25,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xab, 0xab, 0xbb, 0xbb, 0xd6, 0xdb, 0xce, 0xa2, 0xa2, 0xba, 0x2e, 0xdb, 0xd6, 0xba, 0xce, 0x7f, 0x7f, 0xbb, 0xbe, 0xba, 0xd6, 0xdb, 0xce, 0xea, 0x8a, 0xea, 0x22,
+ 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xba, 0xea, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xeb, 0xeb, 0xfb, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xa2, 0x8a, 0xbb, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa8, 0xab, 0xfa,
+ 0xdc, 0xde, 0xba, 0xce, 0xfa, 0xef, 0xff, 0xff, 0xdb, 0xd6, 0xbb, 0xd6, 0xbb, 0xf9, 0xb5, 0x5f, 0xdb, 0xd6, 0xba, 0xd6, 0xff, 0xaf, 0xf7, 0x59, 0xba, 0xd6, 0xdb, 0xce, 0xa2, 0xaa, 0xbe, 0xae,
+ 0xbc, 0xd6, 0xda, 0xce, 0xaf, 0xaa, 0xea, 0xe8, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0x22, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xba, 0x8a, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xa2, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xa8, 0xee, 0xee, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0x2a, 0xaa, 0x8b, 0xdc, 0xd6, 0xba, 0xce, 0xbe, 0xfb, 0xae, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xff, 0xaa, 0x73,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xbe, 0xfa, 0xab, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xab, 0xff, 0xff, 0xdb, 0xd6, 0xbb, 0xce, 0xeb, 0xee, 0xfa, 0xf7, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xba, 0xab, 0xbb,
+ 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xa2, 0x5a, 0xfb, 0xdc, 0xd6, 0xbb, 0xd6, 0x27, 0x95, 0xfa, 0xa7, 0xdb, 0xd6, 0xba, 0xce, 0xa0, 0xaa, 0xe2, 0xba, 0xdc, 0xd6, 0xba, 0xce, 0xaa, 0xeb, 0xaa, 0xee,
+ 0xdb, 0xd6, 0xba, 0xce, 0xb0, 0x0a, 0x2b, 0xa8, 0xdb, 0xd6, 0xbb, 0xd6, 0xeb, 0x22, 0x38, 0x60, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaa, 0xbb, 0xab, 0xfc, 0xde, 0xbb, 0xce, 0xba, 0xfe, 0xfe, 0xaf,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x20, 0x20, 0xa8, 0xcf, 0xdb, 0xd6, 0xbb, 0xd6, 0x7e, 0xff, 0xfe, 0x7a, 0xdc, 0xd6, 0xbb, 0xce, 0xa8, 0xba, 0x2f, 0xef, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0x22, 0xaa, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x08, 0x2a, 0xa2, 0xaa, 0xbb, 0xd6, 0xdb, 0xce, 0xab, 0x2b, 0xea, 0xaa, 0xdc, 0xd6, 0x9b, 0xce, 0xaa, 0xea, 0xbe, 0xfa, 0xdb, 0xd6, 0xbb, 0xce, 0xa2, 0xea, 0xbe, 0xef,
+ 0xdb, 0xd6, 0xbb, 0xce, 0x2a, 0xae, 0xaa, 0xab, 0xdb, 0xd6, 0xbb, 0xd6, 0xaf, 0xe9, 0x7b, 0x7a, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0xbf, 0xaa, 0xfa, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xae, 0xfa, 0xfb, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xbe, 0xaf, 0xff, 0xdc, 0xd6, 0xba, 0xce, 0xba, 0xfb, 0xff, 0xef, 0x9a, 0xd6, 0xdb, 0xce, 0xbe, 0xef, 0xff, 0xef,
+ 0xba, 0xd6, 0xdb, 0xce, 0x68, 0xaa, 0xaa, 0x2b, 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xae, 0xef, 0xee, 0xba, 0xd6, 0xdb, 0xce, 0x0f, 0x2a, 0xaa, 0xa8, 0xba, 0xd6, 0xdb, 0xce, 0xa0, 0xe0, 0xa2, 0xa2,
+ 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xa0, 0xda, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xab, 0xee, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xab, 0xba, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0x2e, 0xaa, 0xba, 0xea,
+ 0xdb, 0xd6, 0xba, 0xd6, 0xa5, 0xbe, 0x39, 0x6b, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0x3a, 0xa3, 0xdb, 0xd6, 0xba, 0xd6, 0x82, 0xab, 0xf8, 0x02, 0xdb, 0xd6, 0xba, 0xd6, 0xe9, 0xa8, 0x7a, 0x00,
+ 0xdc, 0xde, 0xba, 0xce, 0xab, 0xfa, 0xab, 0xba, 0xdb, 0xd6, 0xbb, 0xd6, 0x80, 0x8f, 0x7e, 0x82, 0xdb, 0xde, 0xba, 0xce, 0xfa, 0xba, 0xab, 0xaa, 0xdb, 0xd6, 0xbb, 0xd6, 0x00, 0x08, 0xae, 0x00,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xff, 0xf7, 0xbb, 0xce, 0x9a, 0xce, 0xae, 0x47, 0xfe, 0xae,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xfe, 0xfe, 0x9b, 0xd6, 0xba, 0xce, 0xeb, 0xab, 0xaa, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xef, 0xff, 0xfb, 0xba, 0xd6, 0x9b, 0xce, 0xbf, 0xef, 0xaf, 0xf7,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0xbf, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xba, 0xef, 0xfe, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0x6a, 0xaf, 0xfb, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xea, 0xee, 0xeb,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xfd, 0x5f, 0xa7, 0xba, 0xd6, 0x9b, 0xce, 0xaf, 0xea, 0xfe, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xbf, 0xab, 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0xfe, 0x7f, 0xdf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xff, 0xdf, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xfe, 0xfe, 0xdf, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xef, 0xea, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xba, 0xba,
+ 0xda, 0xd6, 0x9b, 0xce, 0xfb, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xa2, 0xaa, 0xfa, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xa8, 0xaa, 0xaa, 0xae, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xfe, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xaf, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xb9, 0xfd, 0x7d, 0xfd, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xfe, 0xea, 0xea, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0x9f, 0x9f,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xae, 0xfb, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0x0b, 0x20, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x8a, 0xbe, 0xbe, 0x2a, 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0x5f, 0xfd, 0xb7,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x82, 0x0b, 0xaa, 0xee, 0x9b, 0xd6, 0xba, 0xce, 0xff, 0x5f, 0xeb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xa2, 0xab, 0xbe, 0xfb, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xff, 0xff, 0xff,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xff, 0xeb, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xaa, 0xab, 0xba, 0xd6, 0xdb, 0xce, 0xa0, 0xa2, 0xae, 0x0a, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xfb, 0xaf, 0xbf,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xbe, 0xea, 0xbb, 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0xff, 0xfd, 0xeb, 0x9a, 0xd6, 0xbb, 0xce, 0xdf, 0xfd, 0xff, 0xbf, 0xba, 0xd6, 0x9b, 0xce, 0xaa, 0xfa, 0xaa, 0xef,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x7a, 0xff, 0x7f, 0x5f, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xfa, 0xbf, 0xff, 0x9b, 0xd6, 0xba, 0xc6, 0xfa, 0xef, 0xff, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xfe, 0xef, 0x7f,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xae, 0xab, 0xaa, 0xda, 0xd6, 0x9b, 0xce, 0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xbf, 0xfe, 0xbf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xab, 0xaa, 0xaf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xaf, 0xfb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xba, 0xae, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xfe, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xfb, 0xbf, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xef, 0xea, 0xff, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0xea, 0xb8, 0xea, 0xba, 0xd6, 0xdb, 0xce, 0xa0, 0x82, 0x2a, 0x8b,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xba, 0xaa, 0xba, 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0xbf, 0xba, 0xa8, 0xdb, 0xd6, 0xbb, 0xce, 0xbf, 0xbf, 0xbe, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaf, 0xbf, 0x82,
+ 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xea, 0xee, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0xa3, 0xba, 0x8a, 0xdc, 0xd6, 0xba, 0xce, 0xeb, 0xbe, 0xba, 0xae, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0xba, 0xa2,
+ 0xba, 0xd6, 0xdb, 0xce, 0x88, 0xee, 0xaa, 0x8a, 0xba, 0xd6, 0xdb, 0xce, 0xba, 0xa2, 0xa2, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xaf, 0xeb, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xea, 0xee, 0xfe,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfa, 0xeb, 0xbf, 0xfe, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xba, 0xea, 0xba, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xfe, 0xaf, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xbe, 0x2a, 0xef,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xbe, 0xaa, 0xea, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xbe, 0xba, 0xeb, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xbb, 0xce, 0xea, 0xaa, 0xea, 0xfe,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xfa, 0xab, 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0xbf, 0xa2, 0xa7, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xff, 0xfe, 0xff, 0xdc, 0xd6, 0x9a, 0xce, 0xee, 0xab, 0xfa, 0xbe,
+ 0xbb, 0xd6, 0xdb, 0xce, 0x2a, 0x2c, 0xaa, 0xaa, 0xba, 0xd6, 0xdb, 0xce, 0x2a, 0xa8, 0xea, 0xea, 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0x82, 0xaa, 0xff, 0xbb, 0xd6, 0xdb, 0xce, 0xaa, 0xea, 0xae, 0x2b,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xca, 0xbe, 0xea, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xab, 0xea, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x3e, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xea, 0xae, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2b, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xaf, 0xdc, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xab, 0xab, 0xdc, 0xd6, 0xbb, 0xd6, 0xaa, 0xa2, 0x89, 0xca,
+ 0xdc, 0xd6, 0xba, 0xce, 0xae, 0xfa, 0x7b, 0xfe, 0xbb, 0xd6, 0xdb, 0xce, 0x0a, 0xaa, 0xaa, 0xea, 0xdc, 0xd6, 0xba, 0xce, 0xba, 0xba, 0xee, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xbf, 0xaa, 0xde,
+ 0xba, 0xd6, 0xdb, 0xce, 0xfe, 0x88, 0xea, 0xba, 0xdc, 0xd6, 0xbb, 0xd6, 0xde, 0xaf, 0x57, 0xed, 0xdc, 0xd6, 0xba, 0xce, 0xfa, 0xbf, 0xff, 0xde, 0xba, 0xd6, 0xdb, 0xce, 0x2e, 0xea, 0xea, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xbf, 0xbe, 0xff, 0xdc, 0xd6, 0xbb, 0xce, 0xeb, 0xbf, 0xbf, 0xbb, 0xba, 0xd6, 0xdb, 0xce, 0x8f, 0xaf, 0xaa, 0x0b, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0xaf, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0x7b, 0xeb, 0xea, 0xaf, 0xba, 0xd6, 0xdb, 0xce, 0x0a, 0xaa, 0xaf, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xab, 0xea, 0xaf, 0xea, 0x9a, 0xd6, 0xdb, 0xce, 0xae, 0xff, 0xfa, 0xbe,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xbf, 0xbd, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xbb, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xff, 0xaa, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xae, 0xba, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xef, 0xaa, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0x2a, 0xfa, 0xaa, 0xbc, 0xd6, 0xda, 0xce, 0xab, 0xaa, 0xa2, 0x0a, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x2a,
+ 0xdb, 0xd6, 0xba, 0xd6, 0x8b, 0xce, 0xba, 0x3c, 0xdb, 0xde, 0xba, 0xce, 0xba, 0xff, 0xff, 0xaa, 0xdb, 0xde, 0xba, 0xce, 0xff, 0xaf, 0xbf, 0xaa, 0xdb, 0xd6, 0xba, 0xd6, 0xaf, 0x82, 0x28, 0x02,
+ 0xfb, 0xd6, 0xba, 0xd6, 0xff, 0xbf, 0xff, 0xbf, 0xfb, 0xd6, 0xda, 0xd6, 0x55, 0x55, 0x5d, 0xd6, 0xfb, 0xde, 0xba, 0xce, 0xbf, 0xea, 0xab, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xee,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xeb, 0xbb, 0xfa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xf7, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xe7, 0x7f, 0xdd, 0x7d, 0xbb, 0xce, 0x9a, 0xce, 0xfe, 0x65, 0xed, 0x6d,
+ 0xba, 0xd6, 0x9b, 0xce, 0xfa, 0xd5, 0x55, 0xd5, 0xbb, 0xce, 0x9a, 0xce, 0x8f, 0xb7, 0x3f, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xba, 0xff, 0xae, 0xbb, 0xce, 0x9a, 0xce, 0xde, 0x7f, 0xfd, 0xd7,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xbf, 0xbe, 0xbe, 0xfe, 0xba, 0xce, 0x9b, 0xce, 0xd6, 0x5e, 0x0d, 0xf2, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0x7f, 0xf7, 0x7f, 0xba, 0xd6, 0x9b, 0xce, 0x5f, 0xf5, 0xff, 0xef,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xaa, 0xff, 0x5e, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xb5, 0xed, 0x55, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0x5b, 0xff, 0xdf, 0xf6, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xff, 0xfd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xff, 0xff, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xfe, 0xff, 0xff, 0xba, 0xce, 0x9b, 0xce, 0xed, 0xc0, 0xa0, 0xbf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xea, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xe8, 0xbb, 0xba, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbb, 0xeb, 0xae, 0xda, 0xd6, 0x9b, 0xce, 0xff, 0xff, 0xff, 0xef,
+ 0x9b, 0xd6, 0xba, 0xce, 0x7f, 0xf5, 0xef, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0x97, 0xd7, 0xff, 0xff, 0xbb, 0xd6, 0xba, 0xce, 0xf8, 0xfe, 0xab, 0xb7, 0x9a, 0xd6, 0xdb, 0xce, 0xfd, 0xfa, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xfa, 0xea, 0xfb, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xfb, 0xbb, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xea, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xbf, 0xff, 0xff,
+ 0x9b, 0xd6, 0xba, 0xce, 0xed, 0xff, 0x57, 0x7f, 0xba, 0xce, 0x9b, 0xce, 0x36, 0x82, 0xf8, 0x28, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbf, 0xff, 0xdb, 0x9b, 0xd6, 0xba, 0xce, 0xe2, 0x5f, 0xfe, 0xbf,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x7f, 0x5f, 0xf5, 0xde, 0x9a, 0xd6, 0xbb, 0xce, 0x7b, 0xfd, 0xfe, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xfa, 0xeb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x8a, 0xaa, 0xa2, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xfa, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0x6a, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbe, 0xff, 0xef, 0xba, 0xce, 0x9b, 0xce, 0xfe, 0x0a, 0x3e, 0xaa,
+ 0x9b, 0xd6, 0xba, 0xc6, 0xff, 0xaa, 0xbf, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xff, 0xfe, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xff, 0xbf, 0xaf, 0x9b, 0xd6, 0xba, 0xce, 0xfa, 0x7f, 0xff, 0x7f,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0x7f, 0xff, 0xff, 0x9b, 0xd6, 0xda, 0xce, 0xa8, 0x2a, 0xeb, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xbe, 0xbf, 0xba, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xab, 0xaa, 0xae,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xed, 0x7d, 0x57, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xaa, 0x8a, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0x8a, 0xea, 0xaa, 0x28,
+ 0xdb, 0xd6, 0xba, 0xce, 0xff, 0x7b, 0xff, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xff, 0xff, 0xea, 0xbc, 0xd6, 0xba, 0xce, 0xea, 0xfa, 0xfa, 0xb2, 0x9a, 0xd6, 0xdb, 0xce, 0xab, 0xff, 0xff, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xba, 0xba, 0xaa, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xff, 0xb6, 0xef, 0xee, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xaf, 0xeb, 0xbb, 0xba, 0xd6, 0xdb, 0xce, 0x0a, 0xea, 0x28, 0xaa,
+ 0xbb, 0xd6, 0xda, 0xce, 0xa8, 0xeb, 0xab, 0xfa, 0xbb, 0xd6, 0xdb, 0xce, 0xeb, 0xbb, 0xab, 0xa8, 0xdb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xa8, 0xbe, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xfa, 0xbe, 0xff,
+ 0x9b, 0xd6, 0xdb, 0xce, 0xcf, 0xaf, 0xff, 0xaf, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xff, 0xee, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0x82, 0xa8, 0x8a, 0xaa, 0xbc, 0xd6, 0xba, 0xce, 0xff, 0xfa, 0xfe, 0xff,
+ 0xbb, 0xd6, 0xba, 0xce, 0xaf, 0xf5, 0xf5, 0xeb, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xaa, 0xba, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xbe, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xaf, 0xff, 0xdf,
+ 0xdb, 0xd6, 0xba, 0xce, 0xe8, 0xaa, 0xba, 0xaf, 0xdb, 0xd6, 0xbb, 0xce, 0xbf, 0x0a, 0xbf, 0xae, 0xdc, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0x8f, 0xdb, 0xd6, 0x9b, 0xce, 0xea, 0xfa, 0xea, 0xae,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xfe, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xba, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xf5, 0x55, 0x7b, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xb3,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xbf, 0xee, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xbb, 0xab, 0xba, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xaf, 0xbf, 0xfa, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xbb, 0xbf, 0xbe, 0xff,
+ 0xbb, 0xd6, 0xdb, 0xce, 0x2a, 0xaa, 0xae, 0xea, 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0xa2, 0xae, 0xbf, 0xdc, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xae, 0xff, 0xdc, 0xd6, 0xba, 0xce, 0xf8, 0xea, 0xaa, 0xff,
+ 0xbc, 0xd6, 0xba, 0xce, 0x0a, 0xaa, 0xfa, 0xfa, 0xdc, 0xd6, 0xba, 0xce, 0xab, 0xed, 0xfd, 0xff, 0xdc, 0xd6, 0xba, 0xce, 0xfe, 0xfa, 0xff, 0xfe, 0xdc, 0xd6, 0xbb, 0xce, 0xab, 0xab, 0xbe, 0xff,
+ 0xdc, 0xd6, 0xba, 0xce, 0xbf, 0xfa, 0xfa, 0xef, 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xfe, 0xfa, 0xef, 0xba, 0xd6, 0xdb, 0xce, 0xaf, 0x0a, 0xba, 0xbe, 0xbb, 0xd6, 0xdb, 0xce, 0xfa, 0xaa, 0x2a, 0xaa,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xea, 0xbf, 0xbf, 0xfd, 0xba, 0xd6, 0xdc, 0xce, 0xfa, 0xaa, 0xaa, 0xaa, 0xba, 0xd6, 0xdc, 0xce, 0x8a, 0xab, 0xa0, 0x2a, 0xbb, 0xd6, 0xdc, 0xce, 0xae, 0x80, 0xaa, 0x80,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xeb, 0xbf, 0xbf, 0xfe, 0xdb, 0xd6, 0xbb, 0xce, 0x3a, 0xab, 0xba, 0x2b, 0xdc, 0xd6, 0xba, 0xce, 0xfa, 0xaf, 0xba, 0xef, 0xdb, 0xd6, 0xbb, 0xce, 0xbf, 0xbb, 0xfa, 0xaf,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xea, 0xae, 0xaa, 0xaf, 0xbb, 0xd6, 0xdb, 0xce, 0xa0, 0xae, 0xa0, 0xe2, 0xdc, 0xd6, 0xba, 0xce, 0xfa, 0xfe, 0xef, 0xfb, 0xba, 0xd6, 0xdb, 0xce, 0xae, 0x00, 0x82, 0xaa,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2b, 0xbf, 0xff, 0xbe, 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xfa, 0xea, 0xdc, 0xd6, 0xba, 0xce, 0xab, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xff, 0xae, 0xfb,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xae, 0xaf, 0xeb, 0xbe, 0xdb, 0xd6, 0xbb, 0xce, 0x8a, 0xaa, 0x2a, 0xea, 0xdb, 0xd6, 0xba, 0xd6, 0xba, 0xf5, 0xa8, 0xfa, 0xdb, 0xd6, 0xba, 0xd6, 0xaa, 0xaa, 0x8e, 0x9e,
+ 0xdc, 0xd6, 0xba, 0xd6, 0xaa, 0xab, 0xaf, 0x88, 0xdb, 0xd6, 0xbb, 0xd6, 0x01, 0xa8, 0x00, 0x88, 0xdb, 0xde, 0xba, 0xce, 0xab, 0xaa, 0xae, 0xeb, 0xdc, 0xde, 0xba, 0xd6, 0xef, 0xbf, 0xf7, 0xff,
+ 0xdb, 0xd6, 0xbb, 0xd6, 0x98, 0x00, 0x00, 0x00, 0xfb, 0xd6, 0xba, 0xd6, 0xef, 0xab, 0xef, 0xbb, 0xfc, 0xde, 0xba, 0xce, 0xae, 0xba, 0xef, 0xfb, 0xfb, 0xde, 0xba, 0xd6, 0xfb, 0xff, 0xef, 0xfb,
+ 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x7b, 0x55, 0x55, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xee, 0xae, 0xaf, 0xbb, 0xce, 0x7a, 0xce, 0xaf, 0xfa, 0xea, 0xff, 0xbb, 0xce, 0x7a, 0xce, 0xbe, 0xaf, 0xbb, 0xaa,
+ 0xbb, 0xce, 0x7a, 0xce, 0xba, 0xeb, 0xfa, 0xfe, 0xbb, 0xce, 0x9a, 0xce, 0x95, 0x95, 0xf5, 0x55, 0xbb, 0xce, 0x9a, 0xce, 0x9d, 0x55, 0x55, 0xd5, 0xbb, 0xd6, 0x9a, 0xc6, 0xbe, 0xbe, 0xbb, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfd, 0xfd, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xf7, 0xdf, 0x75, 0xba, 0xce, 0x9b, 0xce, 0x5f, 0x5f, 0xf4, 0x57, 0xbb, 0xd6, 0x7a, 0xce, 0xaa, 0xab, 0xba, 0xab,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xdf, 0xff, 0x7d, 0x9b, 0xd6, 0xba, 0xc6, 0xea, 0xaa, 0xfe, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xee, 0xeb, 0xff, 0xbe, 0xbb, 0xd6, 0x9a, 0xc6, 0xab, 0xff, 0xfe, 0xef,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xbf, 0xee, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xbf, 0xf7, 0x7f, 0xba, 0xce, 0x9b, 0xce, 0xb5, 0xf8, 0xb5, 0x37, 0xba, 0xce, 0x9b, 0xce, 0xea, 0x6b, 0xf8, 0xb8,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xfe, 0xff, 0xfd, 0x9b, 0xd6, 0xba, 0xce, 0x7d, 0xfa, 0xda, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xaf, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xee, 0xfe, 0xee,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xe6, 0xff, 0xef, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xbf, 0xaf, 0xef, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xfe, 0xfe, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xea, 0xbb, 0xff,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xfe, 0xff, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xae, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xbf, 0x7f, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xef, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xab, 0xaa, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xba, 0xab, 0xae, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xef, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xbb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xbb, 0xab, 0xe9,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xfa, 0xba, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xfb, 0xaf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x7b, 0xfa, 0xf7, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xd7, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xaf, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xfb, 0xff, 0xfa, 0x9b, 0xd6, 0xba, 0xc6, 0xfa, 0xbf, 0xfa, 0xaf, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0xbb, 0xff, 0xfe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x6f, 0xb7, 0xae, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbb, 0xef, 0xbe, 0xdb, 0xce, 0xba, 0xce, 0x57, 0x55, 0x67, 0x55, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xd5, 0xd5, 0x55, 0xd7, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xfe, 0xff, 0xfe, 0xbb, 0xd6, 0xbb, 0xce, 0xbf, 0xeb, 0xae, 0xa9, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xba, 0xaa, 0xbf,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xeb, 0xaf, 0x9a, 0xd6, 0xdc, 0xce, 0xab, 0xea, 0xaa, 0xbf, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xff, 0x7f, 0xd7, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xae, 0xfb, 0xfa,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0x9f, 0xff, 0xee, 0xba, 0xd6, 0xdc, 0xce, 0x2a, 0xaa, 0xa8, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xae, 0xfa, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xaa, 0xab, 0xaa,
+ 0xba, 0xd6, 0xdb, 0xce, 0x8b, 0xaa, 0x0a, 0xaa, 0xbb, 0xd6, 0xdb, 0xce, 0xa2, 0xfe, 0xfa, 0x22, 0xdc, 0xd6, 0xba, 0xce, 0xff, 0xff, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xe0, 0xae, 0xaa, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xae, 0xef, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0xbe, 0xaa, 0xfa, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xfe, 0xbf, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0x7f, 0xff, 0xed, 0xff,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xf9, 0xf7, 0xf5, 0x55, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xac, 0xba, 0xea, 0x9b, 0xd6, 0xdb, 0xce, 0xae, 0xaa, 0xea, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0xff, 0xfe,
+ 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xdf, 0xfd, 0xba, 0xd6, 0xdb, 0xce, 0xaa, 0xaa, 0xca, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xe2, 0xa2, 0xfa, 0x7a, 0xdb, 0xd6, 0x9a, 0xce, 0xfe, 0xfe, 0xff, 0xeb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xae, 0xba, 0xaa, 0xbb, 0xd6, 0xba, 0xce, 0xaf, 0xff, 0xfd, 0xfd,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x57, 0x7b, 0x7f, 0xfd, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xae, 0xfb, 0xff, 0x9a, 0xd6, 0xdb, 0xce, 0xeb, 0xff, 0xef, 0xaf, 0xdb, 0xd6, 0x9b, 0xce, 0xee, 0xaa, 0xbf, 0xef,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xbb, 0xf7, 0xdf, 0xb7, 0xbb, 0xd6, 0xdb, 0xce, 0xa0, 0xa2, 0x8a, 0xaf, 0xdb, 0xd6, 0x9a, 0xce, 0xee, 0xbf, 0xab, 0xaf, 0xbc, 0xd6, 0xba, 0xce, 0xae, 0xdd, 0xaf, 0xbf,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xeb, 0xfe, 0xba, 0x9b, 0xd6, 0xdb, 0xce, 0xfa, 0xaa, 0xeb, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xa8, 0xae, 0xa2, 0xaa, 0x9b, 0xd6, 0xdc, 0xce, 0xfe, 0xaa, 0xba, 0xee,
+ 0xbb, 0xd6, 0xdb, 0xce, 0x82, 0xaa, 0xa8, 0xbe, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xae, 0xbb, 0xfb, 0xdc, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0xff, 0xff, 0xdb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xaa, 0xba,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xae, 0xeb, 0xdb, 0xd6, 0xbb, 0xce, 0xef, 0xaf, 0xb7, 0xfa, 0xbc, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0x2a, 0xab, 0xdc, 0xd6, 0x9b, 0xce, 0xbe, 0xab, 0xaa, 0xba,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xff, 0xef, 0xff, 0xae, 0xdc, 0xd6, 0xba, 0xce, 0xab, 0xab, 0x9a, 0xea, 0xdb, 0xd6, 0xbb, 0xd6, 0xaf, 0xfd, 0x57, 0xf7, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xbe, 0xef, 0xef,
+ 0xbc, 0xd6, 0xba, 0xce, 0x2a, 0xaa, 0x8b, 0xba, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xbf, 0xfa, 0xab, 0x9a, 0xd6, 0xdb, 0xce, 0xaa, 0xbf, 0xbf, 0xbb, 0xdc, 0xd6, 0x9a, 0xce, 0xfe, 0xbe, 0xaa, 0xff,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xfa, 0xff, 0xfb, 0xdb, 0xd6, 0x9b, 0xce, 0xaa, 0xab, 0xaa, 0xab, 0xdb, 0xd6, 0x9b, 0xce, 0xab, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaf, 0xea, 0xea,
+ 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xaa, 0xab, 0x2a, 0xbb, 0xd6, 0xda, 0xce, 0xaa, 0xaa, 0x0b, 0x20, 0xdb, 0xd6, 0xba, 0xd6, 0xec, 0x22, 0xab, 0xcb, 0xdb, 0xd6, 0xba, 0xd6, 0xaf, 0x18, 0xb0, 0x82,
+ 0xdc, 0xde, 0xba, 0xce, 0xab, 0xba, 0xab, 0xaa, 0xdb, 0xde, 0xba, 0xd6, 0xef, 0xfd, 0xff, 0xff, 0xdb, 0xde, 0xba, 0xce, 0xee, 0xaa, 0xab, 0xaa, 0xfc, 0xde, 0xba, 0xce, 0xfa, 0xff, 0xab, 0xfa,
+ 0xdb, 0xde, 0xba, 0xd6, 0xff, 0xbf, 0xaf, 0xab, 0xba, 0xde, 0xdb, 0xd6, 0xf7, 0x55, 0x55, 0x5f, 0xdc, 0xde, 0xda, 0xce, 0xaa, 0xaf, 0xaa, 0xaa, 0xfb, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x02, 0x08, 0xaa, 0x0a, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x03, 0x80, 0xe0, 0xbb, 0xce, 0x7a, 0xce, 0xeb, 0xbf, 0xfb, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0x02, 0x22, 0xa0,
+ 0x9b, 0xce, 0x7a, 0xce, 0x02, 0x2b, 0x82, 0x2e, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x00, 0x82, 0xc1, 0xba, 0xce, 0x7b, 0xce, 0xab, 0xef, 0xbe, 0xbf, 0xba, 0xce, 0x7b, 0xce, 0xfe, 0xaa, 0xfe, 0xee,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xab, 0xbe, 0xfe, 0xba, 0xce, 0x9b, 0xce, 0x57, 0xf5, 0x55, 0xed, 0xbb, 0xce, 0x9a, 0xce, 0x55, 0x6d, 0x55, 0x7d, 0xbb, 0xce, 0x7a, 0xce, 0xae, 0xaa, 0xfa, 0xaa,
+ 0xba, 0xce, 0x9b, 0xce, 0x57, 0xc5, 0x75, 0xd7, 0xbb, 0xd6, 0x9a, 0xc6, 0xee, 0xfe, 0xff, 0xff, 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xeb, 0xef, 0xbb, 0xce, 0x9a, 0xce, 0xe1, 0xf5, 0xb5, 0xa9,
+ 0xba, 0xd6, 0x9b, 0xce, 0xdf, 0xfd, 0xdd, 0xfd, 0xba, 0xd6, 0x9b, 0xce, 0x7f, 0x7f, 0x7f, 0x67, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xdf, 0xd7, 0x9b, 0xd6, 0xba, 0xce, 0xdf, 0xfe, 0xff, 0xaa,
+ 0xba, 0xd6, 0x9b, 0xce, 0xfd, 0xff, 0xef, 0xdf, 0x9b, 0xd6, 0xba, 0xce, 0x97, 0xaa, 0xfa, 0xba, 0x9a, 0xd6, 0xbb, 0xc6, 0xfa, 0xfe, 0xaa, 0xea, 0xbb, 0xce, 0x9a, 0xce, 0x78, 0xe3, 0xbb, 0x9e,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xff, 0x7d, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xfb, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x26, 0xb8, 0x62, 0x40, 0xba, 0xd6, 0x9b, 0xce, 0xf5, 0xff, 0xaf, 0xef,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xba, 0xff, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x7a, 0x00, 0x0f, 0xb7, 0xbb, 0xd6, 0x9a, 0xc6, 0xae, 0xea, 0xaa, 0xeb, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0x5b, 0x97, 0x77,
+ 0xbb, 0xce, 0x9a, 0xce, 0x55, 0xd9, 0xf7, 0xdf, 0xba, 0xce, 0x9b, 0xce, 0x71, 0x57, 0xd5, 0xd7, 0xbb, 0xce, 0x9a, 0xce, 0xee, 0x57, 0xfa, 0x59, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xf5, 0xf7, 0xfd,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xb5, 0xdf, 0xef, 0xff, 0xba, 0xce, 0x9b, 0xce, 0x5a, 0x5e, 0xb2, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0x65, 0xef, 0x9b, 0xd6, 0xba, 0xce, 0xff, 0xaf, 0xbf, 0xfa,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xeb, 0xdb, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xeb, 0xff, 0x6a, 0xbb, 0xce, 0x9a, 0xce, 0x83, 0x0e, 0xaa, 0x28, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xbe, 0xef, 0xae,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xbf, 0x55, 0x75, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xab, 0xaa, 0xaf, 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xaf, 0xfb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xea, 0xee, 0xef,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0x57, 0xff, 0x5e, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xbb, 0xbe, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0xa2, 0xaa, 0xaa, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xaa, 0xba,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xee, 0xaf, 0xfa, 0xfa, 0x9a, 0xd6, 0xdb, 0xce, 0xee, 0xfe, 0xae, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xf7, 0xd7, 0xff, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xab, 0xff,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xff, 0xbf, 0xfd, 0x9d, 0xbb, 0xd6, 0xdb, 0xce, 0x2a, 0xab, 0x2a, 0xaf, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xba, 0xab, 0xea, 0xbb, 0xd6, 0xbb, 0xce, 0xbf, 0x2a, 0xfa, 0x7e,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xab, 0xab, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xee, 0xef, 0xfb, 0xfd, 0xdb, 0xd6, 0xba, 0xce, 0xaf, 0xfa, 0xfe, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xaf, 0xaa, 0xef,
+ 0xbb, 0xd6, 0xba, 0xce, 0xaf, 0xaa, 0xaf, 0x7a, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xaa, 0x3a, 0xdc, 0xd6, 0x9a, 0xce, 0xaf, 0xeb, 0xeb, 0xee, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xeb, 0xaa,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xbf, 0xbe, 0xff, 0xbb, 0x9a, 0xd6, 0xdc, 0xce, 0xff, 0xaf, 0xab, 0xea, 0xba, 0xd6, 0xdc, 0xce, 0xa0, 0x02, 0xe2, 0xe8, 0xdb, 0xd6, 0x9b, 0xce, 0xfa, 0xff, 0xab, 0xee,
+ 0xbc, 0xd6, 0x9a, 0xce, 0x8c, 0xaa, 0xaa, 0xeb, 0xbb, 0xd6, 0xba, 0xce, 0xa8, 0xfa, 0xed, 0x7f, 0x9b, 0xd6, 0xdb, 0xce, 0xfa, 0xfa, 0xfa, 0xbb, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xfe, 0xfb, 0xff,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xba, 0xfe, 0xaf, 0xba, 0xdc, 0xd6, 0x9a, 0xce, 0xaf, 0xef, 0xbf, 0xbf, 0xbc, 0xd6, 0x9a, 0xce, 0xa0, 0xaa, 0xaa, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xff, 0xff,
+ 0xbb, 0xd6, 0xba, 0xce, 0xeb, 0xbb, 0xff, 0xdd, 0xdb, 0xd6, 0x9a, 0xce, 0xeb, 0xff, 0xef, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0x5f, 0xfd, 0x7a, 0x57, 0xbc, 0xd6, 0xba, 0xce, 0xf7, 0xee, 0xff, 0xef,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xea, 0xfb, 0xeb, 0xbb, 0xd6, 0xba, 0xce, 0xe8, 0xbe, 0xaf, 0xa5, 0x9a, 0xd6, 0xbb, 0xce, 0x6d, 0xff, 0x57, 0x7f, 0xbc, 0xd6, 0xba, 0xce, 0xae, 0xaa, 0xff, 0xe7,
+ 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xbb, 0xfb, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0x7e, 0xef, 0xeb, 0xbb, 0xbc, 0xd6, 0xba, 0xce, 0x8b, 0xab, 0xa3, 0xab, 0xbc, 0xd6, 0xba, 0xce, 0xea, 0xb8, 0xbd, 0xea,
+ 0xbb, 0xd6, 0xdb, 0xce, 0xa8, 0xa0, 0xbe, 0x0a, 0xbb, 0xd6, 0xdb, 0xce, 0xaa, 0xa2, 0xbe, 0xac, 0xdc, 0xd6, 0x9a, 0xce, 0xbb, 0xfa, 0xbf, 0xfa, 0x9a, 0xd6, 0xdc, 0xce, 0xfa, 0xeb, 0xff, 0xfe,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x7b, 0xdf, 0xd5, 0xef, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xfa, 0xab, 0xfa, 0xdc, 0xd6, 0x9a, 0xce, 0xea, 0xaf, 0xfe, 0xaa, 0xbb, 0xd6, 0xdc, 0xce, 0x3a, 0xea, 0xa0, 0x22,
+ 0x9b, 0xd6, 0xdb, 0xce, 0xf8, 0xfb, 0xbf, 0xfa, 0x9b, 0xd6, 0xdb, 0xce, 0xaa, 0xff, 0xfa, 0xff, 0xbc, 0xd6, 0xba, 0xce, 0xae, 0xba, 0xeb, 0xfe, 0xbb, 0xd6, 0xdb, 0xce, 0x8a, 0x3e, 0x2a, 0xaa,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xbe, 0xbf, 0xdc, 0xd6, 0xba, 0xce, 0xba, 0xef, 0xfb, 0xff, 0xdc, 0xd6, 0xba, 0xce, 0xea, 0xef, 0xef, 0xef, 0x9a, 0xd6, 0xbc, 0xce, 0xaf, 0xf7, 0xfa, 0x7e,
+ 0xbb, 0xd6, 0xdb, 0xce, 0x2e, 0x2a, 0xaf, 0xaa, 0x9b, 0xd6, 0xdc, 0xce, 0xaf, 0xae, 0xef, 0xbb, 0xdc, 0xd6, 0xba, 0xce, 0xf7, 0xff, 0xfe, 0xeb, 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xaa, 0xfa,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaf, 0xab, 0xab, 0xea, 0xbb, 0xd6, 0xbb, 0xce, 0xaa, 0x2a, 0xea, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xab, 0xeb, 0xab, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0x0a, 0xaa, 0xae, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x82, 0x2a, 0xa2, 0xca, 0xdb, 0xd6, 0xbb, 0xd6, 0x0e, 0x00, 0x30, 0xa1, 0xdb, 0xde, 0xba, 0xce, 0xaa, 0xaf, 0xbe, 0xaa,
+ 0xfc, 0xde, 0xba, 0xce, 0xee, 0xbb, 0xeb, 0xab, 0xdb, 0xd6, 0xba, 0xd6, 0x00, 0x2c, 0xa0, 0x00, 0xfb, 0xd6, 0xbb, 0xd6, 0xeb, 0xaa, 0xbf, 0xab, 0xfb, 0xde, 0xba, 0xd6, 0xef, 0xff, 0xbf, 0xff,
+ 0xfb, 0xde, 0xda, 0xd6, 0xf5, 0x55, 0x7d, 0x55, 0xfc, 0xde, 0xda, 0xd6, 0x7f, 0x7f, 0x7f, 0xff, 0xdb, 0xde, 0xfb, 0xd6, 0x7a, 0xaa, 0x2a, 0x8a, 0xfc, 0xde, 0xda, 0xd6, 0x7f, 0x5f, 0xed, 0x77,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa0, 0x8a, 0x28, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x02, 0xaa, 0xaa, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0xaa, 0xaa, 0x8e, 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0xa2, 0xaa, 0xab,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xbe, 0x2a, 0xba, 0xed, 0x7a, 0xce, 0x9b, 0xc6, 0xbe, 0xef, 0xfe, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0x8a, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x08, 0x08, 0x28, 0xaa,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xba, 0xfe, 0xea, 0xef, 0xba, 0xd6, 0x7b, 0xc6, 0xaf, 0xae, 0xbf, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x82, 0x20, 0x2a, 0xaa, 0x9b, 0xd6, 0x9a, 0xc6, 0xea, 0xbe, 0xaf, 0xfb,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xfe, 0xfb, 0xbb, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xeb, 0xfb, 0xea, 0x9a, 0xce, 0x7b, 0xce, 0x20, 0x0a, 0x00, 0x40, 0xbb, 0xce, 0x7a, 0xce, 0xba, 0xff, 0xeb, 0xef,
+ 0xba, 0xd6, 0x7b, 0xce, 0xae, 0xff, 0xff, 0xff, 0xba, 0xd6, 0x9b, 0xce, 0xff, 0x77, 0x75, 0x75, 0xba, 0xce, 0x9b, 0xce, 0xad, 0x6d, 0xf9, 0xfb, 0x9b, 0xd6, 0x9a, 0xce, 0x95, 0x7d, 0xfd, 0x75,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xeb, 0xee, 0xfa, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0xfe, 0xef, 0xfb, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0x57, 0xff, 0x7f, 0x7f, 0xbb, 0xd6, 0x7a, 0xc6, 0xfa, 0xaa, 0xea, 0xba,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xff, 0xbf, 0xaf, 0xff, 0x9b, 0xd6, 0xba, 0xc6, 0xff, 0xaa, 0xab, 0xea, 0xba, 0xce, 0x9b, 0xce, 0xe0, 0xb7, 0xd6, 0xb8, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xff, 0xde,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0x7f, 0xde, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xf7, 0x77, 0xfb, 0xdf, 0x9b, 0xd6, 0x9a, 0xce, 0xd7, 0x5f, 0x55, 0xfd, 0xbb, 0xce, 0x9a, 0xce, 0xf6, 0xdb, 0x55, 0x55,
+ 0xbb, 0xce, 0x9a, 0xce, 0x7f, 0xe9, 0x7d, 0x7f, 0xbb, 0xce, 0x9a, 0xce, 0xfd, 0xff, 0xb5, 0xed, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0xf7, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xeb, 0xaa, 0xab, 0xaa,
+ 0xbb, 0xce, 0x9a, 0xce, 0xfe, 0xd8, 0xaf, 0xef, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0x8b, 0xbf, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xfe, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xeb, 0xfb, 0xab,
+ 0x9b, 0xd6, 0xba, 0xc6, 0xeb, 0xaf, 0xeb, 0xea, 0xbb, 0xd6, 0x9a, 0xc6, 0xab, 0xaa, 0xaa, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0xfa, 0x80, 0x03, 0xc0, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xfb, 0xaf, 0xfb,
+ 0x9a, 0xd6, 0xbb, 0xce, 0x5f, 0xab, 0xf5, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xbe, 0xbe, 0xbe, 0xdb, 0xce, 0x9a, 0xce, 0xfb, 0xcf, 0xbe, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xaa, 0xaf, 0xeb,
+ 0xbb, 0xce, 0x9a, 0xce, 0x0b, 0x00, 0x00, 0x0a, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xaf, 0xee, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xab, 0xba, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xfa, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xfe, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xab, 0xab, 0xbb, 0xd6, 0xba, 0xce, 0xaf, 0xff, 0x7f, 0xde, 0x9b, 0xd6, 0xba, 0xce, 0xbf, 0x7f, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x2a, 0xe2, 0xaa, 0xaa, 0x9b, 0xd6, 0xba, 0xce, 0xde, 0xff, 0x7f, 0xbd, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xae, 0xae, 0x9b, 0xd6, 0xdb, 0xce, 0xfe, 0xaa, 0xaa, 0xfe,
+ 0x9b, 0xd6, 0xba, 0xce, 0xad, 0xff, 0xbf, 0xff, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xff, 0xbb, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xbf, 0xfe, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xfe, 0xfe, 0xfa, 0x9a, 0xd6, 0xbb, 0xce, 0xbd, 0xf5, 0xff, 0x7f, 0x9a, 0xd6, 0xbb, 0xce, 0xf6, 0xff, 0x7f, 0xf5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x2a, 0xa3, 0xa2, 0xea, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xff, 0xbf, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xea, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xeb, 0xfb,
+ 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xaa, 0xed, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xfa, 0xfd, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xff, 0xfb,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xea, 0xfb, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xeb, 0xbb, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xfb, 0xfe, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xfb, 0xfe, 0xdf,
+ 0xbb, 0xce, 0x9a, 0xce, 0xbf, 0xff, 0x23, 0x28, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xff, 0xef, 0xfa, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xae, 0xaf, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xbe, 0xbf,
+ 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xba, 0xfa, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xaa, 0xbe, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0x2a, 0xaa, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0x8a, 0xae,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xab, 0xbf, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xfb, 0xea, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xfb, 0xbf, 0xbb, 0xd6, 0xba, 0xce, 0xab, 0xbb, 0xff, 0xed,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xea, 0xab, 0xaf, 0xff, 0xdb, 0xd6, 0xbb, 0xce, 0xbf, 0xf7, 0xdd, 0x55, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xff, 0xfb, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x28, 0xaa, 0xae, 0xbe,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x8a, 0x3a, 0xaa, 0xeb, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xea, 0xea, 0xea, 0xbb, 0xd6, 0x9a, 0xce, 0x2a, 0xa2, 0xea, 0xeb, 0xdb, 0xd6, 0x9a, 0xce, 0xaa, 0xfe, 0xff, 0xff,
+ 0xba, 0xd6, 0xdb, 0xce, 0xfe, 0xaa, 0x20, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xfe, 0xfa, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xa2, 0x2b, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xeb, 0xfb, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xaa, 0xaa, 0xdb, 0xd6, 0x9a, 0xce, 0xbe, 0xae, 0xbf, 0xab, 0x9a, 0xd6, 0xdb, 0xce, 0xff, 0xff, 0xfa, 0xab, 0xdb, 0xd6, 0x9a, 0xce, 0xae, 0xab, 0xab, 0xbb,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xea, 0xfb, 0xaa, 0xbe, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0x2a, 0xaa, 0x2e, 0xdc, 0xd6, 0x9a, 0xce, 0xff, 0xbe, 0xaa, 0xae, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xff, 0xbf, 0xfa,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xef, 0xab, 0xaf, 0xfb, 0xdc, 0xd6, 0xba, 0xce, 0xfa, 0xfa, 0xfb, 0xbb, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xff, 0xaa, 0xee, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xaa, 0xa2,
+ 0xdb, 0xd6, 0xba, 0xce, 0xa2, 0xee, 0xa8, 0x8a, 0xdb, 0xd6, 0xbb, 0xce, 0x2a, 0x82, 0x8a, 0x0a, 0xdb, 0xde, 0xba, 0xce, 0xee, 0xae, 0xba, 0xaa, 0xdc, 0xde, 0xba, 0xce, 0xaa, 0xfa, 0xae, 0xaa,
+ 0xfc, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xbf, 0xbe, 0xfb, 0xd6, 0xba, 0xd6, 0xfe, 0xab, 0xbe, 0xba, 0xfc, 0xde, 0xba, 0xce, 0xab, 0xaa, 0xaa, 0xab, 0xfc, 0xde, 0xda, 0xd6, 0xdd, 0xdf, 0xf7, 0xd7,
+ 0xfb, 0xde, 0xdb, 0xd6, 0xd5, 0xff, 0x5f, 0xdd, 0xfc, 0xde, 0xda, 0xd6, 0xff, 0x7f, 0xff, 0xdf, 0xfc, 0xde, 0xba, 0xd6, 0xeb, 0xef, 0xbb, 0xeb, 0xbb, 0xde, 0xfb, 0xd6, 0xfb, 0xff, 0xeb, 0xfe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xeb, 0xaa, 0xee, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xef, 0xea, 0xff, 0xe8, 0x9a, 0xce, 0x7b, 0xc6, 0xaa, 0xea, 0xab, 0xab, 0x7b, 0xce, 0x9a, 0xc6, 0xfe, 0xa8, 0xfb, 0xea,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xf8, 0xfb, 0xef, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0x8c, 0xba, 0xb9, 0xae, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xeb, 0xeb, 0xaf, 0x7a, 0xce, 0x9b, 0xc6, 0xfe, 0xfa, 0xaa, 0xbf,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xea, 0xde, 0xca, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xbe, 0xde, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xeb, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xea, 0xba, 0xfb,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xab, 0xba, 0xba, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0xeb, 0xaa, 0xef, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xbe, 0xfe, 0xef, 0x9a, 0xce, 0x9b, 0xc6, 0x28, 0xa8, 0xac, 0xb7,
+ 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xae, 0xef, 0xaa, 0x9b, 0xce, 0x7a, 0xce, 0xc0, 0x00, 0x80, 0x80, 0xbb, 0xd6, 0x9a, 0xce, 0xf5, 0xf5, 0xfd, 0xf7, 0x9b, 0xd6, 0x9a, 0xce, 0xde, 0x75, 0x7d, 0x5f,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xba, 0xbb, 0xff, 0xf8, 0xbb, 0xce, 0x9a, 0xce, 0x7f, 0x77, 0xef, 0xdb, 0x7a, 0xd6, 0xbb, 0xce, 0x7d, 0xdf, 0xff, 0xfb, 0xba, 0xce, 0x9b, 0xce, 0x95, 0xd7, 0x75, 0x5d,
+ 0xba, 0xd6, 0x9b, 0xc6, 0xbf, 0xef, 0xaa, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xbf, 0xbf, 0xbb, 0xd6, 0x9a, 0xc6, 0xae, 0xaf, 0xea, 0xaf, 0x9b, 0xd6, 0x9a, 0xce, 0xdf, 0x5a, 0x55, 0x5f,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xee, 0xfa, 0xaf, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xeb, 0xaf, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0xd6, 0xf5, 0xfd, 0x21, 0xba, 0xce, 0x9b, 0xce, 0x55, 0xb7, 0xdd, 0x7c,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x7d, 0x7f, 0xfd, 0xef, 0xba, 0xce, 0x9b, 0xce, 0xb5, 0xda, 0x83, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xfd, 0x9f, 0xfd, 0x7f, 0xbb, 0xd6, 0x9a, 0xc6, 0xab, 0xae, 0xef, 0xaa,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xea, 0xba, 0xea, 0xfa, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xad, 0xde, 0xbf, 0xbb, 0xce, 0x9a, 0xce, 0xee, 0xff, 0xeb, 0xae, 0x9a, 0xd6, 0xbb, 0xce, 0x7a, 0xff, 0xbd, 0x7c,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xf7, 0xeb, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xda, 0xfb, 0x7e, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0x7f, 0xff, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xdd, 0x57,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfb, 0x7f, 0xd6, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xfd, 0xb7, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xce, 0x9a, 0xce, 0xce, 0x8f, 0xfa, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xaf, 0xff, 0xb7, 0xbb, 0xd6, 0x9a, 0xce, 0xeb, 0xef, 0xef, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0x9f, 0xef, 0xab, 0xef, 0x9b, 0xd6, 0xba, 0xce, 0xfa, 0xfa, 0xef, 0xba,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xea, 0xee, 0xf7, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xaa, 0xee, 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xfb, 0xbf, 0xee, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xbb, 0xff, 0xbf,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xaf, 0xa7, 0xf7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xfa, 0xbf, 0x9b, 0xd6, 0xba, 0xce, 0x7b, 0xff, 0xf7, 0x7f, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xfe, 0xaa, 0xae,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xae, 0xff, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xbf, 0xea, 0x00, 0x0f, 0x9a, 0xd6, 0xdb, 0xce, 0xfb, 0xaa, 0xff, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xaa, 0x2a, 0xaa,
+ 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0xa8, 0xaa, 0xae, 0xaa, 0x9a, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0x5f, 0x5e, 0x9b, 0xd6, 0xbb, 0xce, 0xab, 0x7d, 0xfd, 0xf5,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xaa, 0xaa, 0xaf, 0x9a, 0xd6, 0xbb, 0xce, 0x5c, 0x5f, 0x57, 0xaf, 0xbb, 0xd6, 0x9a, 0xce, 0xf6, 0xff, 0xaf, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xda, 0xbf, 0xbd, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xbf, 0xef, 0xbb, 0xbb, 0xce, 0x9a, 0xce, 0xc0, 0xea, 0xef, 0xbc, 0xbb, 0xd6, 0x9a, 0xce, 0x9f, 0xef, 0xeb, 0x7f,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbe, 0xff, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xef, 0xae, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xbf, 0xef, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xae, 0xef, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xb6, 0xee, 0xfe, 0x7d, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbd, 0xff, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xe7, 0xff, 0x5f, 0xf7, 0xbb, 0xd6, 0x9a, 0xc6, 0xae, 0xbb, 0xeb, 0xff,
+ 0xbb, 0xce, 0x9a, 0xce, 0xbb, 0x0e, 0xfe, 0xbe, 0xbb, 0xd6, 0x9a, 0xc6, 0xeb, 0xaa, 0xaf, 0xee, 0xbc, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xfe, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xfb, 0xff, 0xfb,
+ 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xef, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xef, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xaa, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xbf, 0xf7, 0x77,
+ 0xbc, 0xd6, 0x9a, 0xce, 0xfe, 0xfb, 0xfb, 0xdf, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xeb, 0x7f, 0xfd, 0xbc, 0xce, 0x9a, 0xce, 0xaa, 0xfb, 0xeb, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xef, 0xe9, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xff, 0xfb, 0xd7, 0xbb, 0xd6, 0x9b, 0xc6, 0xba, 0xaa, 0xaa, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xbb, 0xbf, 0xfe, 0x9b, 0xd6, 0xbb, 0xce, 0x7b, 0xfa, 0xef, 0xfb,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaf, 0xee, 0xff, 0xff, 0x9b, 0xd6, 0xbb, 0xce, 0xad, 0xef, 0x7d, 0xfb, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xab, 0xaa, 0x9b, 0xd6, 0xbb, 0xce, 0xfb, 0xff, 0xf7, 0xfd,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xef, 0xf7, 0xff, 0xfd, 0xbb, 0xd6, 0x9b, 0xce, 0xa8, 0x88, 0xaa, 0xea, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xaa, 0xbf, 0xfe, 0xdb, 0xd6, 0x9a, 0xce, 0xaf, 0xfa, 0xff, 0xff,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xbd, 0xef, 0x7f, 0xed, 0xba, 0xd6, 0xdc, 0xce, 0x80, 0x8a, 0xa0, 0xe8, 0xdb, 0xd6, 0xba, 0xce, 0xbe, 0xaf, 0xaf, 0xea, 0xdb, 0xd6, 0xbb, 0xce, 0xbf, 0xbf, 0xbb, 0xbf,
+ 0xdb, 0xd6, 0xbb, 0xce, 0x8a, 0xba, 0xae, 0xab, 0xdb, 0xd6, 0xba, 0xce, 0xba, 0xab, 0xab, 0xa8, 0xdc, 0xd6, 0xbb, 0xd6, 0xaf, 0xbb, 0xeb, 0xb5, 0xdc, 0xd6, 0xbb, 0xd6, 0xaf, 0xaa, 0xba, 0xae,
+ 0xdb, 0xde, 0xbb, 0xce, 0xba, 0xab, 0xaa, 0xaa, 0xfc, 0xde, 0xba, 0xce, 0xaf, 0xeb, 0xae, 0xab, 0xdb, 0xd6, 0xbb, 0xd6, 0x0c, 0x00, 0x02, 0x30, 0xfc, 0xde, 0xba, 0xce, 0xeb, 0xaa, 0xae, 0xaa,
+ 0xfc, 0xde, 0xbb, 0xd6, 0xbf, 0xfe, 0xff, 0xfe, 0xfb, 0xde, 0xbb, 0xd6, 0xaf, 0xfb, 0xbf, 0xeb, 0xfb, 0xd6, 0xdb, 0xd6, 0xdd, 0x55, 0x61, 0x5f, 0xfb, 0xde, 0xba, 0xce, 0xab, 0xae, 0xae, 0xfe,
+ 0xfc, 0xde, 0xba, 0xd6, 0xab, 0xff, 0xef, 0xff, 0xfc, 0xde, 0xbb, 0xd6, 0xbe, 0xeb, 0xfe, 0xff, 0xfb, 0xde, 0xbb, 0xd6, 0xfb, 0xfe, 0xab, 0xdf, 0xfc, 0xde, 0xda, 0xd6, 0xff, 0xff, 0x7f, 0xf7,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xb7, 0xfd, 0xf7, 0xff, 0x5a, 0xce, 0x9b, 0xc6, 0xbe, 0xbf, 0xaa, 0xfa, 0x5a, 0xce, 0x9b, 0xc6, 0x7a, 0xef, 0xaf, 0xae, 0x9b, 0xce, 0x5a, 0xc6, 0xae, 0xaa, 0xfa, 0xff,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xfb, 0xfa, 0xbf, 0x0a, 0x5a, 0xce, 0x9b, 0xc6, 0xf7, 0xef, 0xea, 0xbe, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xba, 0xfb, 0xef, 0x7a, 0xce, 0x9b, 0xc6, 0xfa, 0xab, 0xaa, 0x8a,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xef, 0xaf, 0xff, 0xfd, 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xfe, 0xff, 0xdf, 0x7a, 0xce, 0x9b, 0xc6, 0xbe, 0xba, 0xaa, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0xee, 0xae, 0xef, 0x7f,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xfb, 0xaf, 0xff, 0xdf, 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xab, 0xfb, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xba, 0xab, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xbf, 0xaa, 0xbf,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xe2, 0xfa, 0xea, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x0a, 0xaa, 0xae, 0xae, 0x9b, 0xd6, 0x7a, 0xc6, 0xaa, 0xae, 0xff, 0xbf, 0xbb, 0xd6, 0x7a, 0xce, 0xee, 0xff, 0xff, 0xff,
+ 0xba, 0xce, 0x7b, 0xce, 0xea, 0xaf, 0xde, 0xee, 0x9b, 0xce, 0x9a, 0xc6, 0x08, 0x00, 0xa2, 0x2f, 0x9b, 0xd6, 0x7a, 0xc6, 0xaa, 0xba, 0xfe, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xbe, 0xbb,
+ 0xbb, 0xd6, 0x7a, 0xce, 0xbf, 0xaf, 0xff, 0xff, 0xba, 0xce, 0x9b, 0xce, 0xcb, 0x7f, 0x55, 0x55, 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xfe, 0xbe, 0xbf, 0xbb, 0xce, 0x7a, 0xce, 0xbb, 0xaf, 0xff, 0xfb,
+ 0xba, 0xce, 0x9b, 0xce, 0x55, 0x55, 0x55, 0xed, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xab, 0xea, 0xbb, 0xce, 0x9a, 0xce, 0x77, 0x1f, 0xf5, 0xdd, 0xbb, 0xd6, 0x9a, 0xc6, 0xef, 0xaf, 0xff, 0xff,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xaa, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xba, 0xea, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaf, 0xfb, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0x7f, 0x7f, 0x55, 0xff, 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xae, 0xbe, 0xaa, 0x9b, 0xd6, 0xba, 0xc6, 0xfa, 0xef, 0xaf, 0xff,
+ 0x9b, 0xd6, 0x9a, 0xce, 0x69, 0xdd, 0xf7, 0x55, 0xbb, 0xd6, 0x7a, 0xce, 0xaf, 0xff, 0xeb, 0xff, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xea, 0xfe, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0xf7, 0xd5, 0xf5, 0x67,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf5, 0xd5, 0xd7, 0xdf, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0xdf, 0xdd, 0x7f, 0xbb, 0xce, 0x9a, 0xce, 0xbf, 0x2f, 0xfb, 0x7c, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xdf, 0xff, 0xfd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xf7, 0xf7, 0xfd, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xa2, 0xfb, 0xed, 0x28, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0x7f, 0xdf,
+ 0xbb, 0xd6, 0x7a, 0xce, 0xaa, 0xab, 0xae, 0xfe, 0xbb, 0xce, 0x9b, 0xce, 0x9f, 0x7b, 0xcb, 0x57, 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0x7f, 0x7f, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xfe, 0xff, 0xdd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xfe, 0xff, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0x6b, 0xfb, 0xf7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xff, 0xf7, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbd, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xaf, 0xfb, 0xef, 0xbc, 0xd6, 0x9a, 0xce, 0xea, 0xfe, 0xfa, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xdf, 0x9f, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaf, 0xab,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xae, 0xaa, 0xea, 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0x57, 0xaf, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xef, 0xeb, 0xbf, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xba, 0xba, 0xbc,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaf, 0xaa, 0xba, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xae, 0xeb, 0xae, 0xbb, 0xd6, 0x9a, 0xce, 0xee, 0xaa, 0xea, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xff, 0xfa, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xea, 0xea, 0xaa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0x7b, 0xff, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xf7, 0x55, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xee, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xae, 0xbf, 0xff, 0xff, 0xbb, 0xce, 0x9a, 0xc6, 0xea, 0xfb, 0xff, 0xff, 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xfb, 0xfe, 0xff, 0xbb, 0xce, 0x9b, 0xc6, 0xaa, 0xaa, 0xff, 0xff,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xeb, 0xae, 0xaf, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0x7f, 0xff, 0xe5, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0xff, 0xbf, 0x7b, 0xbb, 0xd6, 0x9b, 0xc6, 0xff, 0xbf, 0xab, 0xee,
+ 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xaa, 0xab, 0xaa, 0xbb, 0xce, 0x9a, 0xce, 0x6d, 0x95, 0xef, 0xbf, 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xff, 0xbb, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xf7, 0xd7,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xf5, 0x77, 0xbb, 0xd6, 0x9b, 0xc6, 0xee, 0xef, 0xff, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0x8f, 0x5c, 0xfd, 0xbb, 0xce, 0x9a, 0xce, 0xdf, 0x5f, 0xed, 0x5e,
+ 0xbb, 0xce, 0x9a, 0xce, 0xf5, 0xe7, 0xd5, 0x5d, 0xbb, 0xce, 0x7a, 0xce, 0xae, 0xff, 0xae, 0xaa, 0xbb, 0xd6, 0x9b, 0xce, 0x5d, 0xd7, 0xe5, 0xd5, 0xbb, 0xce, 0x9a, 0xce, 0xbf, 0xfa, 0xfc, 0x7f,
+ 0xbb, 0xce, 0x9a, 0xce, 0xaf, 0xbf, 0xfb, 0x5d, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xfa, 0xea, 0xbb, 0xce, 0x9a, 0xce, 0x00, 0x6f, 0xbb, 0x5d, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xb5, 0x7d, 0x9d,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaf, 0xae, 0xaf, 0xaa, 0x9c, 0xd6, 0xba, 0xce, 0xff, 0xbd, 0xbf, 0x7f, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0x9a, 0xce, 0xff, 0xef, 0xef, 0xbf,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xba, 0xaa, 0xaa, 0xaa, 0x9a, 0xd6, 0xdb, 0xce, 0xfe, 0xfb, 0xab, 0xfa, 0xdb, 0xd6, 0x9a, 0xce, 0xfa, 0xfe, 0xeb, 0xbb, 0xdc, 0xd6, 0x9a, 0xce, 0xaf, 0xbf, 0xeb, 0xbb,
+ 0xdb, 0xd6, 0xba, 0xce, 0xfb, 0xaf, 0xef, 0xaf, 0xdc, 0xd6, 0xba, 0xce, 0xef, 0xee, 0xfb, 0xaf, 0xdb, 0xd6, 0x9b, 0xd6, 0xaa, 0xaa, 0xbe, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0xee, 0xbb, 0xaa, 0xea,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xab, 0xaa, 0xea, 0xaa, 0xdc, 0xd6, 0xbb, 0xd6, 0xb6, 0xbb, 0x7b, 0x6a, 0xdb, 0xd6, 0xbb, 0xd6, 0x38, 0x02, 0x0b, 0x0a, 0xdc, 0xde, 0xba, 0xce, 0xae, 0xea, 0xaa, 0xba,
+ 0xfc, 0xde, 0xba, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xd6, 0xba, 0xd6, 0xfb, 0xff, 0xff, 0xee, 0xfc, 0xde, 0xbb, 0xd6, 0xbe, 0xff, 0xff, 0xff, 0xfc, 0xde, 0xba, 0xd6, 0xff, 0xfa, 0xfe, 0xff,
+ 0xfb, 0xd6, 0xbb, 0xd6, 0xab, 0xab, 0xff, 0xab, 0xfc, 0xde, 0xbb, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xde, 0xba, 0xce, 0xfe, 0xaa, 0xaf, 0xff, 0xdb, 0xd6, 0xba, 0xd6, 0xb8, 0x80, 0xab, 0x82,
+ 0xdb, 0xd6, 0xbb, 0xd6, 0x03, 0xbc, 0xe7, 0xaf, 0xdc, 0xde, 0xbb, 0xd6, 0x7a, 0xf9, 0xdd, 0xfb, 0xdb, 0xde, 0xbb, 0xd6, 0xee, 0xff, 0xdf, 0xf7, 0xdc, 0xde, 0xbb, 0xd6, 0xaa, 0xf7, 0xba, 0xf7,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0x82, 0xbe, 0xff, 0x7b, 0xce, 0x59, 0xbe, 0xaa, 0xea, 0xbf, 0xff, 0x7a, 0xce, 0x5a, 0xbe, 0xaa, 0xba, 0xff, 0xff, 0x9b, 0xc6, 0x5a, 0xc6, 0xaa, 0xaf, 0xaa, 0xff,
+ 0x9b, 0xce, 0x5a, 0xbe, 0xfe, 0xab, 0xbb, 0xff, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xaa, 0xbe, 0x7b, 0xce, 0x5a, 0xc6, 0xba, 0xaa, 0xea, 0xef, 0x9b, 0xc6, 0x7a, 0xc6, 0xd9, 0x55, 0x57, 0x5b,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0x7f, 0xff, 0x55, 0x9b, 0xce, 0x5a, 0xc6, 0xab, 0xff, 0xf6, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xee, 0xff, 0x5d, 0xfd, 0x9b, 0xce, 0x5a, 0xc6, 0xce, 0xbf, 0xba, 0xff,
+ 0x5a, 0xce, 0x9b, 0xc6, 0xfb, 0xbf, 0xaf, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0x7f, 0xdd, 0x5b, 0xce, 0x9a, 0xc6, 0xff, 0xff, 0xfe, 0xaf, 0x9a, 0xce, 0x7b, 0xc6, 0xfb, 0xef, 0xfd, 0xf5,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xfe, 0xbf, 0xf7, 0x7a, 0xce, 0x9b, 0xc6, 0xfa, 0x2b, 0xea, 0xac, 0x9b, 0xce, 0x7a, 0xc6, 0xe2, 0xab, 0xbf, 0xff, 0x7b, 0xce, 0x9a, 0xc6, 0xfe, 0xab, 0xbb, 0xbe,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xff, 0xfd, 0xfe, 0xf8, 0x9a, 0xce, 0x7b, 0xce, 0x73, 0xe7, 0x1b, 0x88, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xa2, 0xaa, 0xe2, 0xba, 0xce, 0x7b, 0xc6, 0xfe, 0xff, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0x8a, 0xaa, 0xbf, 0xbb, 0xce, 0x7a, 0xc6, 0xae, 0xbb, 0xfb, 0xaf, 0xbb, 0xce, 0x7a, 0xc6, 0xae, 0xbf, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0x80, 0xaa, 0x8a,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xaf, 0xae, 0xaa, 0xfb, 0xba, 0xd6, 0x7b, 0xc6, 0xbe, 0xff, 0xfa, 0xfb, 0x9b, 0xd6, 0x7a, 0xc6, 0xae, 0xaa, 0xba, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xff, 0xbe, 0xbf,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xbb, 0xaa, 0xaf, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xee, 0xeb, 0xea, 0x9b, 0xd6, 0x9a, 0xc6, 0xaf, 0xbf, 0xfb, 0xbb, 0xbb, 0xce, 0x7a, 0xce, 0xff, 0xab, 0xea, 0xaf,
+ 0x9b, 0xce, 0x7a, 0xce, 0xc2, 0x00, 0x28, 0x00, 0x9b, 0xce, 0x7a, 0xce, 0x20, 0x28, 0x02, 0x83, 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xeb, 0xef, 0xbb, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x80, 0x00, 0xc0,
+ 0x9b, 0xd6, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xaf, 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xfa, 0xea, 0x9b, 0xd6, 0x9a, 0xc6, 0xbe, 0xaa, 0xab, 0xbf, 0xba, 0xce, 0x9b, 0xce, 0x55, 0x1d, 0xd5, 0x55,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xea, 0xba, 0xea, 0xbf, 0xbb, 0xce, 0x9a, 0xce, 0xf7, 0xf5, 0x5e, 0x6d, 0xbb, 0xce, 0x9a, 0xce, 0xdd, 0x5d, 0xdd, 0x2f, 0xbb, 0xce, 0x9a, 0xce, 0x82, 0xff, 0xeb, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xfe, 0xf7, 0x7f, 0xd7, 0xbb, 0xce, 0x9a, 0xce, 0x61, 0xef, 0x5f, 0x75, 0xbb, 0xd6, 0x9a, 0xce, 0xdf, 0x57, 0xd7, 0xf5, 0xbb, 0xce, 0x7a, 0xce, 0xff, 0xab, 0xaf, 0xaf,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xfb, 0xfb, 0xff, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x75, 0xff, 0xfd, 0x79, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xfe, 0xeb, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0xd5, 0xed, 0xdd, 0x7d,
+ 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xaa, 0xaa, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xdd, 0x7d, 0xdf, 0x5d, 0xbb, 0xce, 0x9a, 0xce, 0xb7, 0xf9, 0xff, 0xd7, 0xbc, 0xd6, 0x9a, 0xce, 0xbf, 0xdf, 0x7f, 0xfd,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0x77, 0xff, 0xbc, 0xd6, 0x9a, 0xce, 0xff, 0xff, 0xfa, 0xd7, 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xbf, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xea, 0xaf, 0xbb, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xaa, 0xaa, 0xaa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xa6, 0xaa, 0xff, 0xff, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xee, 0xfe, 0x75, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xfa, 0x7f, 0xd7,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xef, 0xff, 0xf7, 0x5f, 0xbb, 0xd6, 0x9a, 0xce, 0xfb, 0xd7, 0xd5, 0x55, 0xbb, 0xce, 0x7b, 0xce, 0xea, 0xef, 0xaf, 0xaf, 0xbb, 0xd6, 0x7a, 0xc6, 0xae, 0xff, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xce, 0x20, 0xb0, 0x80, 0xe0, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0xaa, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0x02, 0x2a, 0xe2, 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xef, 0xbf, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xce, 0x00, 0xe0, 0x8a, 0x00, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xaa, 0x8a, 0x8e, 0x9c, 0xd6, 0x9a, 0xc6, 0xab, 0xeb, 0xaf, 0xef, 0xbb, 0xce, 0x7a, 0xce, 0xfb, 0xbf, 0xbf, 0xbe,
+ 0xbb, 0xce, 0x7a, 0xce, 0xef, 0xfb, 0xea, 0xea, 0xbc, 0xd6, 0x9a, 0xc6, 0xef, 0xff, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xc6, 0xef, 0xfb, 0xfe, 0xff, 0x9b, 0xd6, 0x9a, 0xc6, 0xeb, 0xfe, 0xaf, 0xff,
+ 0xbb, 0xce, 0x9a, 0xc6, 0x22, 0xfe, 0xff, 0xff, 0xbc, 0xce, 0x9a, 0xc6, 0xa3, 0xaf, 0xff, 0xff, 0xbc, 0xd6, 0x7a, 0xc6, 0xaa, 0xff, 0xef, 0xff, 0xbb, 0xd6, 0x7a, 0xc6, 0xab, 0xff, 0xff, 0xff,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xeb, 0xaa, 0xae, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0xc0, 0x80, 0x2a, 0xa0, 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xbf, 0xff, 0xae, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x0b, 0x00, 0x00,
+ 0xbb, 0xce, 0x7a, 0xce, 0xff, 0xff, 0xaa, 0x2e, 0xbb, 0xce, 0x9b, 0xce, 0x55, 0x5d, 0xb7, 0x5e, 0xbb, 0xce, 0x9a, 0xce, 0xff, 0xfe, 0xf7, 0xdd, 0xbb, 0xce, 0x9a, 0xce, 0xd7, 0xfe, 0x3f, 0xff,
+ 0xbb, 0xce, 0x9a, 0xce, 0xfd, 0xbf, 0xef, 0x7f, 0xbc, 0xce, 0x9a, 0xce, 0xaa, 0xbe, 0xff, 0xa5, 0xbb, 0xce, 0x9a, 0xce, 0x75, 0xf3, 0xb8, 0xff, 0x9a, 0xd6, 0xbb, 0xce, 0xea, 0xfe, 0x5f, 0xd9,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xbb, 0xae, 0xab, 0xbb, 0xd6, 0x9b, 0xce, 0xae, 0xaa, 0xaa, 0xaa, 0x9a, 0xd6, 0xbc, 0xce, 0xb7, 0xeb, 0x6f, 0xab, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xd7, 0xff, 0xfe,
+ 0xdb, 0xd6, 0x9b, 0xce, 0xfe, 0xff, 0xea, 0xff, 0x9b, 0xd6, 0xbb, 0xce, 0xed, 0x7d, 0xfe, 0x7f, 0x9a, 0xd6, 0xbc, 0xce, 0xbe, 0xfd, 0xff, 0xdf, 0xdc, 0xd6, 0xbb, 0xce, 0xef, 0xfe, 0xff, 0xff,
+ 0xdb, 0xd6, 0x9b, 0xce, 0xea, 0xee, 0xaa, 0xfe, 0xdb, 0xd6, 0xbb, 0xce, 0xba, 0xfe, 0xae, 0xfe, 0xdb, 0xd6, 0xba, 0xce, 0xa8, 0xaa, 0xaa, 0xbe, 0xdc, 0xd6, 0xbb, 0xd6, 0xaa, 0xff, 0xe6, 0x99,
+ 0xdc, 0xd6, 0xbb, 0xce, 0x2e, 0xa8, 0xaa, 0xaa, 0xdb, 0xd6, 0xba, 0xce, 0x22, 0x22, 0xaa, 0x22, 0xdc, 0xd6, 0xbb, 0xd6, 0xaa, 0xab, 0xaa, 0xfa, 0xdc, 0xde, 0xba, 0xce, 0xba, 0xae, 0xaa, 0xab,
+ 0xdc, 0xde, 0xbb, 0xd6, 0xee, 0xba, 0xfe, 0xbf, 0xfc, 0xde, 0xba, 0xce, 0xfa, 0xae, 0xfb, 0xbe, 0xdb, 0xd6, 0xbb, 0xd6, 0xbc, 0x03, 0xa0, 0xa0, 0xdc, 0xde, 0xba, 0xd6, 0xee, 0xfe, 0xf7, 0xff,
+ 0xdc, 0xd6, 0xbb, 0xd6, 0xab, 0xa8, 0x2a, 0xe8, 0xdb, 0xde, 0xbb, 0xce, 0xae, 0xfa, 0xae, 0xff, 0xdc, 0xde, 0xbb, 0xce, 0xaa, 0xef, 0xff, 0xff, 0xdc, 0xd6, 0xba, 0xd6, 0xef, 0xbf, 0xff, 0xab,
+ 0xdc, 0xd6, 0xba, 0xce, 0xaa, 0xab, 0xaa, 0x8a, 0xdc, 0xde, 0xbb, 0xce, 0xaa, 0xfa, 0xae, 0xab, 0xdb, 0xde, 0xbb, 0xce, 0xaa, 0xae, 0xaa, 0xef, 0xdc, 0xde, 0xbb, 0xd6, 0x7a, 0xbf, 0xf7, 0x5f,
+ 0x59, 0xc6, 0x7b, 0xbe, 0xea, 0x80, 0x0b, 0x8a, 0x59, 0xc6, 0x7a, 0xbe, 0xe2, 0x02, 0xa8, 0xaa, 0x5a, 0xc6, 0x7b, 0xbe, 0xae, 0x02, 0xab, 0xe2, 0x7b, 0xc6, 0x5a, 0xbe, 0xbe, 0xa8, 0xff, 0xff,
+ 0x7b, 0xc6, 0x59, 0xbe, 0x28, 0xae, 0xaf, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xeb, 0xff, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xea, 0xfe, 0xff, 0xff, 0x7b, 0xce, 0x59, 0xbe, 0xaa, 0xbf, 0xff, 0xff,
+ 0x7b, 0xce, 0x59, 0xbe, 0xaa, 0xaf, 0xbe, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0x22, 0x8a, 0xab, 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0x20, 0x08, 0x2e, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xee, 0xaf, 0xbe,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xab, 0xff, 0xdf, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0xbb, 0xf7, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xbe, 0xea, 0xff, 0x5b, 0xce, 0x9a, 0xc6, 0xea, 0xeb, 0xb7, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x7f, 0xdf, 0xf5, 0x57, 0x9a, 0xce, 0x5b, 0xc6, 0xbf, 0xff, 0xfe, 0xae, 0x9a, 0xce, 0x7b, 0xc6, 0xfb, 0xff, 0x5b, 0x75, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xff, 0xff, 0xbf,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xfb, 0xfb, 0xed, 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0x6a, 0xbf, 0xb5, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xab, 0xab, 0xfb, 0x9a, 0xce, 0x7b, 0xc6, 0xaa, 0xea, 0xaf, 0xfb,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xab, 0xfe, 0xee, 0xee, 0x7a, 0xce, 0x9b, 0xc6, 0xe2, 0xeb, 0xab, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0xaa, 0xaa, 0xe6,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0xba, 0xba, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xab, 0xaa, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0x28, 0xaa, 0xaa, 0xbb,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xbe, 0xfe, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xea, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0xaa, 0xae, 0xaa, 0x9b, 0xd6, 0x7a, 0xc6, 0xfe, 0xff, 0xff, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xa2, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0xaa, 0xab, 0xa8, 0xbb, 0xce, 0x7a, 0xc6, 0xba, 0xfb, 0xfb, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xa8, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0xaa, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0x28, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xce, 0x80, 0xc0, 0x00, 0x80, 0xba, 0xce, 0x7b, 0xce, 0xab, 0xbf, 0xff, 0xbf,
+ 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xaf, 0xab, 0xfa, 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xbf, 0xaf, 0xfb, 0x9b, 0xd6, 0x7a, 0xc6, 0xaa, 0xaa, 0xee, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xbf, 0xab,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x02, 0x28, 0xaa, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0xa2, 0xaa, 0xaa, 0xbb, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xaf, 0xff, 0x9b, 0xce, 0x7a, 0xce, 0xaa, 0x01, 0x00, 0x0a,
+ 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xfa, 0xeb, 0xfa, 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xeb, 0xff, 0xaf, 0x7b, 0xd6, 0x9a, 0xc6, 0xff, 0xfa, 0xfa, 0xff, 0x9b, 0xd6, 0x7a, 0xc6, 0xab, 0xea, 0xfa, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x0a, 0x08, 0x8a, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x80, 0x2a, 0xaa, 0xbb, 0xd6, 0x7a, 0xc6, 0xba, 0xef, 0xff, 0xff, 0x9b, 0xd6, 0x7a, 0xc6, 0xaa, 0xab, 0xea, 0xea,
+ 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xaa, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x00, 0xa8, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x08, 0xaa, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x88, 0xa8, 0xab,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xfa, 0xff, 0xff, 0xff, 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xef, 0xaf, 0xaa, 0xbb, 0xd6, 0x7a, 0xc6, 0xef, 0xbf, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x00, 0x80, 0x00,
+ 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x00, 0x80, 0xb8, 0x9b, 0xce, 0x7a, 0xc6, 0x08, 0x00, 0xba, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0x82, 0xa8, 0xc2, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x8a, 0xa2, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xeb, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xfa, 0xaa, 0xee, 0x7b, 0xce, 0x9b, 0xc6, 0xea, 0xbf, 0xff, 0xef,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xea, 0xfb, 0xbf, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0x8e, 0xbb, 0xea, 0xa8, 0x9b, 0xce, 0x7a, 0xce, 0xa0, 0x0a, 0x02, 0xc2, 0xbb, 0xce, 0x7a, 0xc6, 0xaf, 0xba, 0xbb, 0xbb,
+ 0xbb, 0xce, 0x7a, 0xce, 0xee, 0xea, 0xff, 0xfb, 0xbb, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xfe, 0xab, 0xbb, 0xd6, 0x7a, 0xc6, 0xfb, 0xff, 0xff, 0xff, 0xbb, 0xce, 0x7a, 0xc6, 0xaf, 0xae, 0xbe, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xce, 0x2c, 0x00, 0x02, 0x02, 0x9b, 0xce, 0x7a, 0xce, 0x08, 0x22, 0xb0, 0x00, 0x9b, 0xd6, 0x9a, 0xc6, 0xbf, 0xeb, 0xfb, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0x03, 0x82, 0xaa,
+ 0xbb, 0xce, 0x7a, 0xce, 0xaa, 0xaf, 0xab, 0xff, 0xbb, 0xce, 0x7a, 0xce, 0xfa, 0xeb, 0xff, 0xfb, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xfa, 0xab, 0xba, 0xbb, 0xce, 0x7a, 0xce, 0xba, 0xaa, 0xfb, 0xfa,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xbe, 0xaa, 0xaa, 0xaa, 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xaa, 0xfa, 0xaa, 0xbb, 0xce, 0x9a, 0xc6, 0xbe, 0xfa, 0xef, 0xff, 0xbb, 0xce, 0x9a, 0xce, 0x7d, 0xed, 0x57, 0xd7,
+ 0x9b, 0xd6, 0x9a, 0xc6, 0xaa, 0xaf, 0xab, 0xfb, 0xbb, 0xd6, 0x7a, 0xce, 0xef, 0xbf, 0xfb, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0x7f, 0xd5, 0xfd, 0xbb, 0xd6, 0x9a, 0xce, 0xed, 0x6f, 0xff, 0xbf,
+ 0xbb, 0xce, 0x9a, 0xce, 0xaf, 0x2a, 0x82, 0x0a, 0x9b, 0xd6, 0xbb, 0xce, 0x5b, 0xf9, 0xbf, 0xa5, 0x9a, 0xd6, 0xbb, 0xce, 0xd7, 0xef, 0x6f, 0xf7, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0xff, 0xb7,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xd7, 0xff, 0x6f, 0xde, 0xbb, 0xd6, 0xba, 0xce, 0xaa, 0xba, 0x2b, 0xff, 0xdb, 0xd6, 0x9b, 0xce, 0xba, 0xeb, 0xbf, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0x2a, 0x08, 0x22, 0xa2,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xab, 0x7a, 0xff, 0xba, 0xdc, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xfb, 0xaa, 0xdc, 0xd6, 0x9b, 0xd6, 0xaa, 0xeb, 0xaf, 0xaa, 0xbb, 0xd6, 0xdb, 0xce, 0xbe, 0xaa, 0xaa, 0x8a,
+ 0xdb, 0xd6, 0xba, 0xce, 0x2b, 0xaa, 0xea, 0xba, 0xdc, 0xd6, 0xba, 0xd6, 0xfe, 0xab, 0xff, 0xab, 0xdb, 0xd6, 0xbb, 0xd6, 0x2b, 0x37, 0xb5, 0xed, 0xdb, 0xd6, 0xbb, 0xce, 0xb8, 0xa2, 0x8a, 0xaa,
+ 0xdc, 0xde, 0xbb, 0xce, 0xbb, 0xee, 0xaf, 0xef, 0xdc, 0xde, 0xbb, 0xce, 0xaa, 0xaa, 0xff, 0xff, 0xdb, 0xd6, 0xbb, 0xce, 0xa0, 0xa8, 0x80, 0xaa, 0xdc, 0xd6, 0xba, 0xd6, 0xfa, 0x9e, 0xff, 0xff,
+ 0xbc, 0xde, 0xba, 0xce, 0xaf, 0xeb, 0xff, 0xeb, 0xdb, 0xd6, 0xba, 0xce, 0xef, 0xaa, 0xbf, 0xff, 0xdb, 0xd6, 0xba, 0xce, 0xfe, 0xaa, 0xeb, 0xfa, 0xdb, 0xd6, 0xba, 0xce, 0xae, 0xfb, 0xaa, 0xae,
+ 0xdb, 0xd6, 0xba, 0xce, 0x8a, 0xba, 0xea, 0x3b, 0xdb, 0xde, 0xbb, 0xce, 0xaf, 0xea, 0xff, 0xbf, 0xdb, 0xd6, 0xbb, 0xce, 0xae, 0xaa, 0xaa, 0xaa, 0xdc, 0xd6, 0xbb, 0xd6, 0xf7, 0x76, 0xd5, 0xfb,
+ 0x5a, 0xc6, 0x19, 0xb6, 0xaa, 0xaa, 0xea, 0xff, 0x5b, 0xc6, 0x19, 0xbe, 0x23, 0xae, 0xad, 0xff, 0x5b, 0xc6, 0x39, 0xbe, 0xaa, 0xff, 0xb9, 0x27, 0x5b, 0xc6, 0x39, 0xbe, 0x88, 0xaa, 0xa9, 0x7f,
+ 0x39, 0xc6, 0x7b, 0xbe, 0xee, 0xfe, 0xab, 0xab, 0x7b, 0xc6, 0x39, 0xbe, 0xbb, 0xef, 0xf6, 0xff, 0x5b, 0xc6, 0x3a, 0xbe, 0xc8, 0x8a, 0x02, 0xa8, 0x7b, 0xc6, 0x3a, 0xbe, 0x3b, 0xab, 0xde, 0xff,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xaa, 0xbe, 0xba, 0xfa, 0x7b, 0xc6, 0x3a, 0xbe, 0x2a, 0x2a, 0xaa, 0xbf, 0x7b, 0xc6, 0x3a, 0xbe, 0xaa, 0x2b, 0xfa, 0xaf, 0x7b, 0xc6, 0x59, 0xbe, 0xca, 0xfa, 0xff, 0xbb,
+ 0x5b, 0xc6, 0x79, 0xbe, 0x20, 0xae, 0xaf, 0xa2, 0x7b, 0xce, 0x3a, 0xbe, 0xae, 0xaa, 0xae, 0xae, 0x7b, 0xc6, 0x5a, 0xc6, 0xaf, 0x00, 0x20, 0x0c, 0x5a, 0xce, 0x7b, 0xc6, 0x7e, 0x5f, 0xcd, 0x5d,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xab, 0xee, 0xa7, 0xee, 0x7b, 0xce, 0x5a, 0xc6, 0xe2, 0xbe, 0xbf, 0xab, 0x9b, 0xce, 0x5a, 0xc6, 0xba, 0xff, 0xef, 0xfb, 0x7a, 0xce, 0x9b, 0xc6, 0xef, 0xba, 0xab, 0xd8,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xf7, 0x7f, 0xff, 0xff, 0x7b, 0xce, 0x9a, 0xc6, 0x2a, 0xaa, 0xe0, 0x2a, 0x7b, 0xce, 0x7a, 0xc6, 0xa8, 0xca, 0xbf, 0xee, 0x7b, 0xce, 0x9a, 0xc6, 0xba, 0xea, 0xaa, 0x82,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xca, 0xbf, 0xab, 0xeb, 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0xbf, 0xaa, 0xab, 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xae, 0xeb, 0x2b, 0x7a, 0xce, 0x9b, 0xc6, 0xa2, 0xfb, 0x02, 0x2e,
+ 0x7a, 0xce, 0x9b, 0xc6, 0x8a, 0xa8, 0xfa, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0xa0, 0xfe, 0xae, 0xae, 0x7b, 0xce, 0x9a, 0xc6, 0x08, 0x2b, 0xef, 0xef, 0x7b, 0xce, 0x9a, 0xc6, 0x2a, 0x2a, 0xfb, 0xea,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xea, 0xbe, 0x7d, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xeb, 0xf7, 0x7a, 0xce, 0x9b, 0xc6, 0xee, 0xaf, 0xfa, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xbf, 0xdf,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xaa, 0xae, 0xfb, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xbb, 0x7b, 0x7d, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xfa, 0xad, 0x95, 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xaf, 0x7f, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x32, 0xab, 0xeb, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xae, 0xab, 0x9a, 0xce, 0x7b, 0xc6, 0x2a, 0x8a, 0xaa, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xea, 0xee,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xa8, 0xfa, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaa, 0x2a, 0xfe, 0x9a, 0xce, 0x7b, 0xc6, 0xaa, 0xa8, 0xaa, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xa3, 0x9e, 0xfa,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0x7a, 0xaa, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0x8a, 0xaa, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0x0a, 0xaa, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xa8, 0xba, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x28, 0xaa, 0xaa, 0xef, 0x7b, 0xce, 0x9a, 0xc6, 0x2a, 0xba, 0x2a, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xba, 0xfe, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0xc8, 0xea, 0xfe, 0xdf,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xff, 0x9f, 0xfb, 0x7a, 0xce, 0x9b, 0xc6, 0xc2, 0xba, 0xef, 0xa2, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xef, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xff, 0xdf, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xea, 0xfb, 0x7f, 0xbb, 0xce, 0x7a, 0xc6, 0xef, 0xff, 0xff, 0xd5, 0x9b, 0xce, 0x7a, 0xc6, 0x2e, 0xeb, 0xba, 0xfd,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xbb, 0xff, 0xeb, 0xab, 0x7a, 0xce, 0x9b, 0xc6, 0xba, 0xaf, 0xb5, 0xe8, 0x9b, 0xce, 0x7a, 0xce, 0xb0, 0x3b, 0x28, 0x0e, 0x9b, 0xce, 0x7b, 0xce, 0x09, 0xaa, 0x80, 0xe8,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xeb, 0xeb, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xa3, 0xea, 0xba, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xee, 0xa8, 0xa3, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xef, 0xa2, 0xaa,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xba, 0xff, 0xdf, 0xfa, 0x7a, 0xce, 0xbb, 0xc6, 0xa0, 0xba, 0xfb, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xa2, 0x88, 0x82, 0x9b, 0xce, 0x7a, 0xc6, 0x2c, 0xaa, 0xab, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x2b, 0xa2, 0xc8, 0x0a, 0xbb, 0xce, 0x7a, 0xc6, 0xba, 0xae, 0xef, 0xab, 0xbb, 0xce, 0x7a, 0xc6, 0xba, 0xaa, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0xaf, 0xbf, 0xa0,
+ 0x9b, 0xd6, 0x7a, 0xc6, 0xfa, 0xef, 0xfe, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0xa2, 0xaa, 0xfb, 0x9b, 0xd6, 0x7a, 0xc6, 0xaf, 0xaf, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0x00, 0x0a, 0x02, 0xea,
+ 0x9b, 0xce, 0x7b, 0xc6, 0x00, 0x82, 0xaa, 0x8e, 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0x8a, 0x8a, 0xe2, 0x9b, 0xce, 0x7a, 0xce, 0x20, 0xc8, 0xc8, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xbb, 0xce, 0x7a, 0xc6, 0xef, 0xbf, 0xea, 0xee, 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0x02, 0x2a, 0x08, 0x9b, 0xd6, 0x9a, 0xc6, 0xff, 0xbb, 0xab, 0xff, 0x9b, 0xd6, 0x7a, 0xc6, 0xea, 0xfa, 0xaa, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xce, 0x00, 0xbb, 0xb8, 0xf0, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x02, 0x03, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0x02, 0x0a, 0x82, 0x88, 0xbb, 0xce, 0x7a, 0xc6, 0xaa, 0xae, 0xab, 0xbf,
+ 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xae, 0xeb, 0xef, 0xbb, 0xce, 0x7a, 0xce, 0xbb, 0xba, 0xfe, 0xab, 0xbc, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xff, 0xff, 0xbb, 0xd6, 0x7a, 0xce, 0xaf, 0xaa, 0xae, 0xab,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xa5, 0xff, 0xff, 0x8b, 0xbb, 0xd6, 0x9b, 0xce, 0xff, 0x7e, 0xdd, 0xd7, 0xbb, 0xce, 0x9a, 0xce, 0xa3, 0xff, 0xbf, 0xf3, 0x9a, 0xd6, 0xbc, 0xce, 0xeb, 0x6a, 0xbf, 0xff,
+ 0x9a, 0xd6, 0xbb, 0xce, 0xfd, 0xed, 0xff, 0x7f, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0x8e, 0xaa, 0xaf, 0xbc, 0xd6, 0x9a, 0xce, 0x8a, 0xaa, 0xae, 0xbb, 0xbc, 0xd6, 0x9b, 0xce, 0x8a, 0x82, 0xaa, 0x9e,
+ 0xbc, 0xd6, 0xba, 0xce, 0xb8, 0xa2, 0xee, 0xbd, 0x9b, 0xd6, 0xbb, 0xce, 0xdf, 0xad, 0x9f, 0xff, 0xdc, 0xd6, 0xba, 0xce, 0xbb, 0xea, 0xf9, 0xdb, 0xbb, 0xd6, 0xdb, 0xce, 0x00, 0xa2, 0x00, 0xca,
+ 0xdb, 0xd6, 0xbb, 0xce, 0xab, 0xff, 0xea, 0xfa, 0xdc, 0xd6, 0xbb, 0xce, 0xa8, 0xfa, 0xff, 0xfb, 0xdc, 0xd6, 0xba, 0xce, 0xba, 0xab, 0xea, 0xff, 0xdb, 0xd6, 0xbb, 0xd6, 0x77, 0xdf, 0xe7, 0x99,
+ 0xdc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xae, 0xdc, 0xd6, 0xbb, 0xce, 0xaa, 0x2a, 0xae, 0xbf, 0xdc, 0xd6, 0xbb, 0xd6, 0xb5, 0xd6, 0x65, 0x5d, 0xdb, 0xd6, 0xba, 0xce, 0xea, 0xea, 0xfb, 0xff,
+ 0xba, 0xd6, 0xdc, 0xce, 0x8b, 0xa8, 0x08, 0x2a, 0xba, 0xd6, 0xdc, 0xce, 0xa8, 0xb8, 0x02, 0xc0, 0xdb, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xea, 0xbf, 0xdb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xab, 0xab,
+ 0xdc, 0xde, 0xba, 0xce, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xd6, 0xbb, 0xce, 0xa8, 0xae, 0xea, 0x8a, 0xdb, 0xd6, 0xbb, 0xce, 0xae, 0xea, 0xaa, 0xbe, 0xdc, 0xd6, 0xbb, 0xce, 0xea, 0xfa, 0xaa, 0xfa,
+ 0x3a, 0xc6, 0x19, 0xb6, 0xaa, 0xfa, 0xfa, 0xbf, 0x3b, 0xc6, 0x1a, 0xbe, 0xbf, 0xb9, 0xdd, 0xff, 0x5b, 0xc6, 0x19, 0xb6, 0xba, 0xeb, 0xff, 0xff, 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xab, 0xef, 0xb9,
+ 0x5a, 0xbe, 0x3a, 0xbe, 0x3e, 0xf5, 0x2b, 0x56, 0x5a, 0xc6, 0x39, 0xbe, 0xef, 0xf7, 0xb7, 0xa5, 0x3a, 0xc6, 0x5a, 0xbe, 0xbe, 0xbf, 0xfd, 0x6d, 0x5b, 0xc6, 0x39, 0xbe, 0xea, 0xbf, 0xaf, 0xee,
+ 0x5b, 0xc6, 0x39, 0xbe, 0xab, 0xaa, 0xbe, 0xab, 0x5a, 0xc6, 0x39, 0xbe, 0xea, 0xaa, 0xad, 0xa7, 0x39, 0xc6, 0x5b, 0xbe, 0xfa, 0xff, 0xb5, 0xff, 0x3a, 0xc6, 0x5b, 0xbe, 0xfa, 0xff, 0xaf, 0xf5,
+ 0x3a, 0xc6, 0x7b, 0xbe, 0xff, 0xab, 0xee, 0xfb, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xae, 0xfb, 0xff, 0x7b, 0xc6, 0x5a, 0xc6, 0xd5, 0x5f, 0x7f, 0xfc, 0x7b, 0xc6, 0x5a, 0xbe, 0xa3, 0xaa, 0x8b, 0x2e,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x20, 0x2a, 0xa2, 0x80, 0x7b, 0xc6, 0x5a, 0xc6, 0xfa, 0xfd, 0x9e, 0x00, 0x7b, 0xce, 0x5a, 0xc6, 0xfb, 0xf6, 0xff, 0xfd, 0x7b, 0xce, 0x5a, 0xc6, 0xbf, 0xff, 0xdf, 0xef,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0x22, 0xab, 0xbb, 0x5a, 0xce, 0x7b, 0xc6, 0x6b, 0xdf, 0x7f, 0x5f, 0x7a, 0xce, 0x5b, 0xc6, 0xaa, 0xaa, 0xea, 0xe2, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xfe, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfd, 0xff, 0xf5, 0x77, 0x9b, 0xce, 0x5a, 0xc6, 0xab, 0xfb, 0xbf, 0xff, 0x7b, 0xce, 0x7a, 0xc6, 0xab, 0xfe, 0xf6, 0x55, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xa2, 0xaa, 0xab,
+ 0x9b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xae, 0xfa, 0x7b, 0xce, 0x5a, 0xc6, 0x00, 0xaa, 0xff, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xea, 0xfa, 0xbe, 0xff, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xaa, 0xfa,
+ 0x7b, 0xce, 0x5a, 0xbe, 0x8a, 0xaa, 0xae, 0xef, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0xad, 0xf7, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xae, 0xa7, 0xbb, 0x9b, 0xc6, 0x5a, 0xc6, 0xfe, 0xea, 0xaa, 0xb8,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xfa, 0xff, 0xff, 0xeb, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xef, 0x2a, 0xaa, 0x9a, 0xce, 0x5b, 0xc6, 0xfb, 0xef, 0xab, 0xfa, 0x7b, 0xce, 0x7a, 0xc6, 0xff, 0xfa, 0xf7, 0xf7,
+ 0x5a, 0xce, 0x9b, 0xc6, 0xbe, 0xff, 0xaf, 0xef, 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0x77, 0xdf, 0xfd, 0x7b, 0xce, 0x9a, 0xc6, 0xb8, 0xab, 0xba, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xea, 0xfe, 0xef,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xea, 0xaf, 0x00, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xfa, 0x7e, 0x7f, 0x9b, 0xce, 0x7a, 0xc6, 0xef, 0xaf, 0xf7, 0x7f, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xf6, 0xfd, 0xf7,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xee, 0xbe, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xff, 0xff, 0x9b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xba, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xa8, 0xaa, 0xaa, 0xef,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xa8, 0xaa, 0xaa, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xa0, 0xba, 0xff, 0xf7, 0x7b, 0xce, 0x5a, 0xbe, 0x80, 0xaa, 0xea, 0xbf, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xba, 0xae, 0xbb,
+ 0x7a, 0xc6, 0x5b, 0xc6, 0x3a, 0x02, 0x00, 0x0e, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xae, 0xeb, 0xff, 0x9b, 0xce, 0x5a, 0xc6, 0xfa, 0xbf, 0xaf, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xaf, 0xff,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xee, 0xff, 0xff, 0xff, 0x5a, 0xce, 0x9b, 0xc6, 0xff, 0xfb, 0xaf, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xab, 0xf0, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xbf, 0xbf, 0xaf,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xab, 0xfa, 0xfb, 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xba, 0xfb, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xaa, 0xeb, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xa2, 0xae, 0xaf,
+ 0x9b, 0xce, 0x7a, 0xce, 0xbb, 0x2e, 0xbb, 0xa2, 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0xff, 0xab, 0xaa, 0x7b, 0xce, 0x9a, 0xc6, 0xf8, 0xaa, 0x2a, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0xa0, 0x22, 0x82,
+ 0x9b, 0xce, 0x7a, 0xce, 0x0a, 0x00, 0xe0, 0xa8, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xae, 0xaa, 0xea, 0x9b, 0xce, 0x7b, 0xce, 0x2e, 0xb0, 0xa3, 0x8e, 0xbb, 0xce, 0x7a, 0xc6, 0xfe, 0xbf, 0xff, 0xef,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xe2, 0xa0, 0xae, 0x9b, 0xce, 0x7a, 0xc6, 0x28, 0xba, 0xaa, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xbf, 0xbe, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0xfe, 0xfa, 0xae, 0xab,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xbe, 0xfa, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xae, 0xef, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xce, 0x2f, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xfa, 0xaa, 0xae,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0x8a, 0xaa, 0xae, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0x2e, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xae, 0xee, 0x7a, 0xce, 0x9b, 0xc6, 0xa9, 0xea, 0xeb, 0xfe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xfe, 0xfa, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0xaa, 0xba, 0xef, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0xaa, 0xfa, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xab, 0xff, 0xff, 0xa3,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xaa, 0xfa, 0xab, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xaa, 0xfb, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xba, 0xb7, 0xae, 0x7b, 0xd6, 0x9a, 0xc6, 0xff, 0xff, 0xff, 0xfe,
+ 0x9b, 0xce, 0x7b, 0xce, 0xa0, 0x02, 0x03, 0x0f, 0x9b, 0xd6, 0x9a, 0xc6, 0xaf, 0xab, 0xbf, 0xbf, 0xbb, 0xce, 0x9a, 0xce, 0xfb, 0xf5, 0xff, 0x5d, 0xbb, 0xd6, 0x7b, 0xce, 0xfb, 0xfa, 0xfa, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xc6, 0xab, 0xab, 0xfb, 0xff, 0xbb, 0xd6, 0x7a, 0xc6, 0xaa, 0xae, 0xab, 0xfe, 0xbb, 0xd6, 0x9b, 0xce, 0xf5, 0x55, 0x55, 0xf5, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xfd, 0xff, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xbf, 0xbf, 0xf7, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xef, 0xaf, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xfb, 0xaf, 0xfb, 0xbc, 0xd6, 0x9a, 0xce, 0xbb, 0xae, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xba, 0xae, 0xaa, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xbf, 0xeb, 0xbc, 0xd6, 0x9b, 0xce, 0xaa, 0xeb, 0xfe, 0xae, 0xdb, 0xd6, 0x9b, 0xce, 0xbb, 0xfb, 0xff, 0xef,
+ 0xbb, 0xd6, 0xdb, 0xce, 0xe0, 0xa8, 0x02, 0xa8, 0xdc, 0xd6, 0x9b, 0xce, 0xab, 0xfb, 0xbf, 0xbe, 0xdc, 0xd6, 0x9b, 0xce, 0xbb, 0xaa, 0xaa, 0xaf, 0xbb, 0xd6, 0xdb, 0xce, 0x0a, 0x8a, 0xaa, 0xbe,
+ 0x9a, 0xd6, 0xbc, 0xce, 0x7a, 0x5f, 0xaf, 0xff, 0xdc, 0xd6, 0x9b, 0xce, 0xfb, 0xee, 0xae, 0xef, 0xbb, 0xd6, 0x9a, 0xce, 0x00, 0x2e, 0xa8, 0xaa, 0x9b, 0xd6, 0xdb, 0xce, 0xaa, 0xaf, 0xab, 0xff,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0xef, 0xfd, 0x9a, 0xd6, 0xbb, 0xce, 0x7f, 0xf6, 0xb7, 0xff, 0xbb, 0xd6, 0xdc, 0xce, 0x2b, 0x00, 0x20, 0x02, 0xdb, 0xd6, 0xba, 0xce, 0xbf, 0xff, 0xfd, 0xfd,
+ 0xdb, 0xd6, 0x9b, 0xce, 0xaa, 0xab, 0xab, 0xbe, 0xba, 0xd6, 0xdb, 0xce, 0xa8, 0x2a, 0x82, 0xab, 0xdc, 0xd6, 0xbb, 0xce, 0xae, 0xae, 0xfa, 0xbb, 0xdc, 0xd6, 0x9b, 0xd6, 0xaa, 0xaa, 0xaf, 0xaa,
+ 0x3a, 0xbe, 0x19, 0xb6, 0xad, 0x20, 0x2a, 0xea, 0x3a, 0xbe, 0x19, 0xbe, 0x00, 0xfe, 0x2d, 0x38, 0x5a, 0xbe, 0x19, 0xbe, 0x5f, 0xf5, 0xbf, 0xab, 0x3a, 0xbe, 0x1a, 0xb6, 0x82, 0xac, 0x00, 0x80,
+ 0x5b, 0xc6, 0x39, 0xbe, 0xb7, 0xff, 0xfd, 0x55, 0x5a, 0xc6, 0x3a, 0xbe, 0xfb, 0xee, 0x67, 0x7d, 0x5a, 0xc6, 0x1a, 0xb6, 0xaa, 0xba, 0xaa, 0xba, 0x5a, 0xc6, 0x3a, 0xbe, 0xaf, 0x7f, 0x5f, 0xff,
+ 0x5a, 0xc6, 0x39, 0xbe, 0xab, 0xe9, 0xef, 0x7d, 0x5a, 0xc6, 0x3a, 0xbe, 0xab, 0xab, 0xef, 0xfb, 0x7b, 0xc6, 0x3a, 0xbe, 0xee, 0x3d, 0xbd, 0x7e, 0x39, 0xc6, 0x7a, 0xbe, 0xab, 0xfa, 0xfa, 0xaf,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xbf, 0xbf, 0xaa, 0x8b, 0x7b, 0xc6, 0x3a, 0xbe, 0xee, 0xaf, 0xaa, 0x0a, 0x7b, 0xc6, 0x5a, 0xc6, 0xda, 0xed, 0xaf, 0x16, 0x7b, 0xc6, 0x3a, 0xc6, 0xaa, 0xa2, 0xa2, 0xc2,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0x73, 0x56, 0xa3, 0x95, 0x7b, 0xc6, 0x39, 0xbe, 0xaa, 0xa8, 0xaa, 0xea, 0x7b, 0xc6, 0x3a, 0xbe, 0x82, 0xaa, 0xfa, 0xea, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xa3, 0xfe, 0xbf,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x2b, 0xaa, 0xff, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0x80, 0xaa, 0x8b, 0xbb, 0x7b, 0xc6, 0x5a, 0xbe, 0xa2, 0x0a, 0x28, 0xeb, 0x7b, 0xc6, 0x5a, 0xc6, 0x02, 0x00, 0xfa, 0xcb,
+ 0x5a, 0xce, 0x7b, 0xc6, 0x8b, 0x55, 0xfe, 0xd7, 0x7b, 0xce, 0x5a, 0xc6, 0xcd, 0x5f, 0x57, 0x5d, 0x7b, 0xc6, 0x5a, 0xbe, 0x82, 0x2a, 0x2e, 0x2a, 0x7a, 0xce, 0x5b, 0xbe, 0xaa, 0xba, 0xff, 0xff,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0xaa, 0xaa, 0xfa, 0x7b, 0xc6, 0x5a, 0xbe, 0x28, 0x88, 0x2a, 0x22, 0x7b, 0xc6, 0x5a, 0xbe, 0x80, 0xaa, 0xa2, 0x20, 0x7b, 0xce, 0x5a, 0xc6, 0x9f, 0x7d, 0xff, 0xff,
+ 0x7a, 0xce, 0x5b, 0xc6, 0xdf, 0xff, 0xbf, 0xbf, 0x7b, 0xce, 0x5a, 0xc6, 0xfb, 0xbf, 0xba, 0xaa, 0x5a, 0xce, 0x7b, 0xc6, 0x56, 0x77, 0xff, 0xf6, 0x7b, 0xce, 0x9a, 0xc6, 0xfa, 0xaa, 0xfe, 0x8a,
+ 0x9a, 0xce, 0x5b, 0xc6, 0xea, 0xfe, 0xaa, 0xef, 0x5b, 0xce, 0x9a, 0xc6, 0xae, 0xdf, 0xea, 0xaf, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xba, 0xa7, 0x7b, 0xce, 0x7a, 0xc6, 0xee, 0x7f, 0xf7, 0x55,
+ 0x7b, 0xce, 0x5a, 0xc6, 0x0a, 0xba, 0x7e, 0x7e, 0x7b, 0xce, 0x5a, 0xbe, 0xa2, 0xaa, 0xea, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xaa, 0xfb, 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0x00, 0xe2, 0xde,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0x22, 0xff, 0xe7, 0x9b, 0xce, 0x5a, 0xbe, 0xef, 0xfb, 0xef, 0x55, 0x7b, 0xc6, 0x58, 0xad, 0x00, 0x00, 0x00, 0x24, 0x7b, 0xc6, 0x3a, 0xbe, 0x00, 0xaa, 0xff, 0xff,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xa0, 0xaa, 0x7f, 0xbd, 0x7b, 0xc6, 0x3a, 0xbe, 0xaa, 0xbe, 0xbf, 0xde, 0x7b, 0xc6, 0x3a, 0xbe, 0x22, 0xaa, 0xff, 0x7d, 0x3a, 0xc6, 0x7b, 0xbe, 0xef, 0xaf, 0xbe, 0xca,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xea, 0xaf, 0xff, 0xb7, 0x7b, 0xc6, 0x5a, 0xbe, 0xfe, 0xdd, 0xff, 0xa7, 0x5b, 0xc6, 0x7a, 0xbe, 0xe2, 0x8a, 0xaf, 0xa2, 0x7b, 0xc6, 0x3a, 0xbe, 0x80, 0xaa, 0xeb, 0xa9,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xa0, 0xaa, 0xae, 0x8b, 0x7b, 0xc6, 0x5a, 0xbe, 0xac, 0x8a, 0xa0, 0x2d, 0x7a, 0xc6, 0x5b, 0xbe, 0xae, 0x0a, 0x88, 0xb2, 0x7a, 0xc6, 0x5b, 0xc6, 0x80, 0x00, 0x01, 0x83,
+ 0x9a, 0xce, 0x7b, 0xc6, 0x57, 0xff, 0xd5, 0x5f, 0x9a, 0xce, 0x5b, 0xc6, 0xff, 0xff, 0xae, 0xef, 0x9b, 0xce, 0x7a, 0xc6, 0xdf, 0xd7, 0xff, 0x9d, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xeb, 0xea, 0xfe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xa0, 0xa2, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaa, 0xaa, 0xab, 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xae, 0xbf, 0x78, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xaa, 0xfe, 0x37,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xea, 0x9b, 0xce, 0x7a, 0xce, 0xaa, 0x0a, 0x88, 0x0e, 0x7a, 0xce, 0x9b, 0xc6, 0x2f, 0xfa, 0xef, 0xab, 0x9b, 0xd6, 0x7a, 0xc6, 0xbe, 0xee, 0xef, 0xbf,
+ 0x9b, 0xce, 0x7b, 0xc6, 0xe8, 0xe2, 0x8a, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0x8b, 0xea, 0xbe, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaf, 0xfa, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xfa, 0x6b, 0xef,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xea, 0xfb, 0xed, 0x9b, 0xce, 0x7a, 0xc6, 0xfe, 0x9e, 0xff, 0xdf, 0x7b, 0xce, 0x5a, 0xc6, 0xa0, 0xa8, 0xa8, 0xba, 0x7a, 0xce, 0x9b, 0xc6, 0xa2, 0xaa, 0xff, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfe, 0xff, 0xbf, 0xde, 0x9b, 0xce, 0x7a, 0xc6, 0xeb, 0xfa, 0x7f, 0xf7, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xff, 0xff, 0xf7, 0x7a, 0xce, 0x9b, 0xc6, 0xb8, 0xaa, 0xab, 0x8f,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xf2, 0xab, 0xff, 0x7f, 0x9b, 0xce, 0x7a, 0xc6, 0xbb, 0xfe, 0xff, 0x7f, 0x5b, 0xce, 0x9b, 0xc6, 0xdd, 0xff, 0xff, 0xfe, 0x7a, 0xce, 0x9b, 0xc6, 0x0e, 0xaa, 0xaa, 0xff,
+ 0x9c, 0xce, 0x7a, 0xc6, 0xfb, 0xf7, 0xfe, 0xfe, 0x7a, 0xce, 0x9b, 0xc6, 0xa0, 0xba, 0xaf, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xef, 0xeb, 0xf7, 0xf7, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0x96, 0xfd, 0x2a,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xfa, 0xa8, 0xaf, 0xda, 0x7b, 0xce, 0x9b, 0xc6, 0xc2, 0xaa, 0xee, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xaa, 0xab, 0xaa, 0x9b, 0xce, 0x7b, 0xce, 0x09, 0x02, 0xc8, 0x82,
+ 0x9b, 0xce, 0x7a, 0xce, 0x30, 0x02, 0x0b, 0x28, 0xbb, 0xce, 0x9a, 0xc6, 0xbf, 0xff, 0xff, 0xbf, 0xbb, 0xce, 0x9a, 0xc6, 0x8b, 0xff, 0xae, 0xef, 0xbb, 0xce, 0x7a, 0xc6, 0xae, 0xeb, 0xea, 0xea,
+ 0xbc, 0xce, 0x9a, 0xce, 0x55, 0xd5, 0xd5, 0xb7, 0xbb, 0xd6, 0x7a, 0xc6, 0xee, 0xbf, 0xfe, 0xfb, 0x9c, 0xd6, 0x9a, 0xc6, 0xbe, 0xaa, 0xbe, 0xaa, 0xbc, 0xce, 0x7a, 0xce, 0xea, 0xab, 0xab, 0xab,
+ 0xbb, 0xd6, 0x7a, 0xce, 0xbf, 0xab, 0xbf, 0xab, 0xbb, 0xd6, 0x9a, 0xce, 0xbb, 0xff, 0xf5, 0x7b, 0xbc, 0xd6, 0x9a, 0xce, 0x7e, 0xff, 0xdf, 0xff, 0xbc, 0xd6, 0x9a, 0xce, 0xaf, 0xff, 0xeb, 0xe6,
+ 0x9b, 0xd6, 0xbb, 0xce, 0x5a, 0xeb, 0xff, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xeb, 0xaa, 0xbe, 0x9a, 0xd6, 0xbc, 0xce, 0xff, 0xff, 0xff, 0xfe, 0x9b, 0xd6, 0xbb, 0xce, 0xf7, 0xdf, 0xb7, 0xef,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xab, 0xab, 0xbb, 0xaa, 0xbc, 0xd6, 0x9b, 0xce, 0xa2, 0x3e, 0xea, 0xbf, 0xbc, 0xd6, 0xba, 0xce, 0x0a, 0x8a, 0xae, 0xaa, 0xbc, 0xd6, 0x9a, 0xce, 0x80, 0x8a, 0xa2, 0x28,
+ 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xa8, 0xa2, 0xae, 0xdc, 0xd6, 0x9a, 0xce, 0xbf, 0xef, 0xaf, 0xbf, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0xaa, 0xab, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xea, 0xaa,
+ 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xea, 0xaa, 0xba, 0x9b, 0xd6, 0xbc, 0xce, 0xff, 0xaf, 0xfd, 0xfd, 0xdc, 0xd6, 0x9a, 0xce, 0xab, 0xee, 0xaa, 0xaa, 0xdb, 0xd6, 0x9b, 0xce, 0xfa, 0xba, 0xab, 0xea,
+ 0xdc, 0xd6, 0xbb, 0xce, 0xea, 0xbf, 0xbf, 0xff, 0xbc, 0xd6, 0xdb, 0xce, 0xab, 0x02, 0x8a, 0x2a, 0xdb, 0xd6, 0xbb, 0xce, 0xaf, 0xaf, 0xff, 0xef, 0xdc, 0xd6, 0xbb, 0xd6, 0x7a, 0xb7, 0xef, 0x5d,
+ 0x3a, 0xbe, 0x19, 0xbe, 0x8f, 0xbb, 0x2f, 0xdf, 0x5a, 0xc6, 0xf9, 0xb5, 0xab, 0xaa, 0xb9, 0xaa, 0x3a, 0xc6, 0x1a, 0xb6, 0xbb, 0xba, 0xaf, 0xaf, 0x3b, 0xc6, 0x19, 0xb6, 0xaa, 0xaa, 0xfb, 0xbf,
+ 0x3a, 0xc6, 0x19, 0xb6, 0xaa, 0xae, 0xab, 0xea, 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xfe, 0xbf, 0xeb, 0x5a, 0xbe, 0x19, 0xbe, 0xea, 0xff, 0xdf, 0xbf, 0x5a, 0xc6, 0x19, 0xb6, 0xaf, 0xfb, 0xff, 0xee,
+ 0x5b, 0xc6, 0x19, 0xbe, 0x8f, 0xbb, 0xbb, 0xbf, 0x5a, 0xc6, 0x39, 0xbe, 0xdb, 0xe7, 0x55, 0x7b, 0x5b, 0xc6, 0x19, 0xbe, 0xa8, 0x6f, 0xab, 0xab, 0x5b, 0xc6, 0x3a, 0xbe, 0xbe, 0xda, 0xbd, 0xab,
+ 0x7b, 0xc6, 0x39, 0xbe, 0x8e, 0xaf, 0xff, 0x55, 0x7b, 0xc6, 0x3a, 0xbe, 0x8a, 0xba, 0xfb, 0xf7, 0x7b, 0xc6, 0x59, 0xbe, 0xae, 0xfe, 0xef, 0xfe, 0x5b, 0xc6, 0x3a, 0xbe, 0xa0, 0x0a, 0x02, 0xfc,
+ 0x7b, 0xc6, 0x39, 0xbe, 0xab, 0xff, 0xbf, 0x7f, 0x5b, 0xc6, 0x3a, 0xbe, 0xa0, 0xab, 0xfe, 0xfb, 0x5b, 0xc6, 0x39, 0xbe, 0xa8, 0xae, 0xff, 0xbf, 0x5b, 0xc6, 0x3a, 0xbe, 0xeb, 0xff, 0xdf, 0xd7,
+ 0x5b, 0xc6, 0x3a, 0xbe, 0x8e, 0xea, 0xff, 0xfe, 0x5b, 0xc6, 0x3a, 0xbe, 0x38, 0xba, 0xeb, 0xf5, 0x5b, 0xc6, 0x3a, 0xbe, 0x22, 0x28, 0xeb, 0xe5, 0x7b, 0xc6, 0x39, 0xbe, 0xea, 0x8a, 0xfa, 0xef,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xab, 0xaa, 0xab, 0x7f, 0x7b, 0xc6, 0x3a, 0xbe, 0xaa, 0xaa, 0xa2, 0xaf, 0x7b, 0xc6, 0x3a, 0xbe, 0xea, 0xaa, 0xae, 0x2b, 0x7b, 0xc6, 0x5a, 0xbe, 0xfb, 0x2b, 0x8b, 0xaf,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xbb, 0xab, 0xaf, 0xff, 0x7a, 0xc6, 0x5b, 0xc6, 0x02, 0x83, 0x80, 0xef, 0x7b, 0xce, 0x5a, 0xbe, 0xba, 0xab, 0xaa, 0xaa, 0x5b, 0xce, 0x7a, 0xc6, 0xb7, 0xff, 0xd7, 0xd5,
+ 0x5b, 0xce, 0x7a, 0xc6, 0xde, 0x57, 0xf5, 0x55, 0x9b, 0xc6, 0x5a, 0xc6, 0xfb, 0xef, 0xef, 0xbf, 0x7b, 0xc6, 0x5a, 0xc6, 0xbb, 0x3a, 0x00, 0x00, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xea, 0xaa, 0xaa,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xfa, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xfb, 0xef, 0x7b, 0xc6, 0x3a, 0xbe, 0x22, 0x82, 0xe8, 0xee, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xae, 0xaf, 0x5d,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xba, 0xfd, 0xdf, 0x5b, 0xc6, 0x3a, 0xbe, 0x88, 0x3a, 0xfe, 0x7b, 0x5b, 0xc6, 0x3a, 0xbe, 0xea, 0xfa, 0xfd, 0x7f, 0x5b, 0xc6, 0x1a, 0xbe, 0xaa, 0xaa, 0xab, 0xe5,
+ 0x7b, 0xc6, 0x3a, 0xb6, 0xaa, 0xbb, 0xff, 0xde, 0x5b, 0xc6, 0x3a, 0xb6, 0xe2, 0xea, 0xff, 0xff, 0x5b, 0xc6, 0x3a, 0xb6, 0xba, 0xfb, 0xfd, 0xff, 0x5b, 0xc6, 0x3a, 0xb6, 0xae, 0xaf, 0xff, 0xfb,
+ 0x5b, 0xbe, 0x1a, 0xb6, 0xea, 0xe0, 0xfa, 0xab, 0x5b, 0xc6, 0x3a, 0xb6, 0xef, 0xfb, 0xff, 0xbf, 0x5b, 0xc6, 0x3a, 0xb6, 0xab, 0xaf, 0xab, 0xba, 0x5b, 0xc6, 0x3a, 0xbe, 0xf7, 0xd9, 0x7f, 0xdd,
+ 0x3a, 0xc6, 0x5b, 0xbe, 0xa9, 0x79, 0x6a, 0xaa, 0x5b, 0xc6, 0x3a, 0xbe, 0x8b, 0xaf, 0xeb, 0xb7, 0x3b, 0xc6, 0x7a, 0xbe, 0x2a, 0xfa, 0xaa, 0xea, 0x7b, 0xc6, 0x3a, 0xbe, 0xfb, 0xfa, 0xbb, 0xeb,
+ 0x5b, 0xc6, 0x7a, 0xbe, 0x2a, 0xf0, 0x8a, 0xaa, 0x7b, 0xc6, 0x5a, 0xbe, 0xae, 0xbf, 0xab, 0xbf, 0x7b, 0xc6, 0x5a, 0xbe, 0x0a, 0xab, 0xba, 0xeb, 0x7a, 0xc6, 0x5b, 0xbe, 0x80, 0x2a, 0xae, 0xa0,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0x0f, 0x30, 0xa2, 0x03, 0x9b, 0xce, 0x7a, 0xc6, 0x55, 0xfd, 0xd5, 0xdd, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xdf, 0xff, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xef, 0xef, 0xbf, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xea, 0xaa, 0x8a, 0x9b, 0xce, 0x7a, 0xce, 0xbb, 0x88, 0x00, 0x08, 0xbb, 0xce, 0x7a, 0xc6, 0xfe, 0xff, 0xea, 0xee, 0x9b, 0xce, 0x7a, 0xc6, 0x8e, 0x88, 0xa8, 0xa8,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0x8a, 0x8a, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xfe, 0xfe, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0x2a, 0xfa, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xee, 0xee, 0xea, 0xaa,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xae, 0xaa, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0x2a, 0xf8, 0xaa, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xbf, 0xbf, 0xfb, 0xae, 0x7b, 0xce, 0x9a, 0xc6, 0x02, 0xeb, 0xab, 0xc2,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xa8, 0xbb, 0xb8, 0xa6, 0x9b, 0xce, 0x5a, 0xc6, 0xef, 0xba, 0xea, 0xfe, 0x7b, 0xce, 0x9b, 0xc6, 0xbf, 0xe8, 0xea, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xd7, 0xf7, 0xfd,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xbe, 0x6a, 0xfa, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0x7e, 0x75, 0x7d, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0x5f, 0xd7, 0xf5, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0xdf, 0x55,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xee, 0xee, 0xbe, 0xbe, 0x5a, 0xce, 0x9b, 0xc6, 0xff, 0xfe, 0xef, 0xfe, 0x9b, 0xce, 0x5a, 0xc6, 0xbe, 0xeb, 0xae, 0xbb, 0x9b, 0xce, 0x7a, 0xc6, 0x7f, 0x5f, 0x7f, 0x7d,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x6f, 0xfd, 0xfd, 0xfd, 0x9b, 0xce, 0x7a, 0xc6, 0x7f, 0xff, 0x7f, 0xff, 0x7b, 0xce, 0x7a, 0xc6, 0xb7, 0xaf, 0xff, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xae, 0xaf, 0xfe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xeb, 0xff, 0xbb, 0xeb, 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xbe, 0x2f, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xae, 0xab, 0x9c, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xea, 0xae,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x32, 0x22, 0xa2, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xa0, 0x02, 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0x08, 0xa2, 0xa0, 0x9b, 0xd6, 0x7a, 0xc6, 0xab, 0xee, 0xbe, 0xfb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0xa8, 0x08, 0x88, 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0x28, 0x80, 0x20, 0x9b, 0xce, 0x7a, 0xc6, 0x02, 0x02, 0x08, 0x0c, 0x7c, 0xd6, 0x9a, 0xc6, 0xbe, 0xbf, 0xff, 0xfe,
+ 0xbb, 0xce, 0x9a, 0xce, 0x7d, 0x55, 0x7d, 0x95, 0xbb, 0xce, 0x9b, 0xce, 0x15, 0x75, 0x57, 0x57, 0xbb, 0xce, 0x9b, 0xce, 0x34, 0x75, 0xa5, 0xfa, 0xbb, 0xd6, 0x9b, 0xce, 0xff, 0xdb, 0xf5, 0x9f,
+ 0x9b, 0xd6, 0xba, 0xce, 0xff, 0xfe, 0xfa, 0xff, 0xbb, 0xd6, 0x9a, 0xce, 0xab, 0xfa, 0xaa, 0xfb, 0x9b, 0xd6, 0xbb, 0xce, 0xf5, 0xff, 0xea, 0xff, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xed, 0xfd, 0xfe,
+ 0x9b, 0xd6, 0xbc, 0xce, 0xbf, 0xff, 0x7f, 0xff, 0x9b, 0xd6, 0xbc, 0xce, 0xfe, 0xaf, 0xdf, 0xeb, 0xdb, 0xd6, 0x9b, 0xce, 0xeb, 0xff, 0xbf, 0xff, 0x9b, 0xd6, 0xbc, 0xce, 0x7b, 0xeb, 0xff, 0xff,
+ 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaa, 0xba, 0x9b, 0xd6, 0xbc, 0xce, 0xdf, 0xff, 0xbe, 0xff, 0xbc, 0xd6, 0x9b, 0xce, 0xea, 0xfa, 0xfa, 0xba, 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xef, 0xf7,
+ 0x9c, 0xd6, 0xba, 0xce, 0xab, 0xeb, 0xeb, 0xaa, 0xbb, 0xd6, 0x9b, 0xce, 0x82, 0xaa, 0xaa, 0xaa, 0xdc, 0xd6, 0x9b, 0xce, 0xbf, 0xea, 0xef, 0xaa, 0xdc, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xab, 0xba,
+ 0xdc, 0xd6, 0x9b, 0xce, 0xea, 0xab, 0xaa, 0xaa, 0xdc, 0xd6, 0xbb, 0xce, 0xbb, 0xfe, 0xbb, 0xaa, 0xdc, 0xd6, 0xbb, 0xce, 0xaa, 0xea, 0xeb, 0xa2, 0xdc, 0xd6, 0xbb, 0xce, 0xeb, 0xfe, 0xaa, 0xea,
+ 0x3a, 0xbe, 0x19, 0xbe, 0x8b, 0xb8, 0xff, 0xe8, 0x3a, 0xbe, 0x1a, 0xb6, 0xe2, 0xe0, 0x2a, 0x08, 0x3b, 0xbe, 0xf9, 0xb5, 0xea, 0xaa, 0x8a, 0xca, 0x3b, 0xc6, 0x19, 0xb6, 0xfa, 0xaf, 0xfe, 0xfb,
+ 0x3b, 0xbe, 0x19, 0xb6, 0x28, 0x8b, 0x8a, 0xaa, 0x3a, 0xc6, 0x19, 0xb6, 0xea, 0xbe, 0xee, 0xee, 0x3b, 0xbe, 0x19, 0xbe, 0x76, 0xdc, 0xa3, 0xef, 0x3a, 0xbe, 0x19, 0xb6, 0x2f, 0x82, 0xaa, 0x8a,
+ 0x3b, 0xc6, 0x19, 0xb6, 0xab, 0xab, 0xeb, 0xff, 0x5a, 0xc6, 0x19, 0xb6, 0xea, 0xfe, 0xef, 0xff, 0x3b, 0xc6, 0x19, 0xb6, 0xac, 0xaa, 0xaa, 0xba, 0x5a, 0xc6, 0x19, 0xb6, 0xaa, 0xaa, 0xbe, 0xda,
+ 0x3b, 0xc6, 0x19, 0xb6, 0xea, 0xea, 0xfe, 0xff, 0x5b, 0xc6, 0xf9, 0xb5, 0xaa, 0xaa, 0xbf, 0x7f, 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xba, 0xbe, 0xdf, 0x5b, 0xc6, 0x19, 0xb6, 0x2a, 0xaa, 0xaa, 0xfe,
+ 0x5b, 0xc6, 0x19, 0xbe, 0xea, 0xfa, 0xeb, 0xee, 0x5b, 0xc6, 0x19, 0xbe, 0xab, 0xaa, 0xee, 0xfb, 0x1a, 0xc6, 0x5a, 0xbe, 0xff, 0x8b, 0xfa, 0xfb, 0x5a, 0xbe, 0x19, 0xbe, 0xfa, 0xff, 0xbe, 0xaa,
+ 0x1b, 0xc6, 0x39, 0xb6, 0xaa, 0xff, 0xff, 0xfb, 0x5b, 0xc6, 0x1a, 0xb6, 0xaa, 0xbf, 0xff, 0xba, 0x5b, 0xc6, 0x39, 0xbe, 0xbf, 0xdd, 0x75, 0xd5, 0x3a, 0xc6, 0x5b, 0xbe, 0xbe, 0x8b, 0x7f, 0x7e,
+ 0x7b, 0xc6, 0x39, 0xbe, 0xbb, 0xff, 0x5f, 0x7f, 0x5b, 0xc6, 0x39, 0xbe, 0x02, 0xaa, 0xab, 0xba, 0x5b, 0xc6, 0x5a, 0xbe, 0xab, 0x88, 0xb9, 0x94, 0x5b, 0xc6, 0x3a, 0xbe, 0x88, 0xaf, 0xfa, 0xaa,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaf, 0xff, 0xff, 0xff, 0x7b, 0xce, 0x5a, 0xbe, 0xaf, 0xaa, 0xfb, 0xfb, 0x7b, 0xc6, 0x5a, 0xbe, 0x00, 0xa8, 0xfa, 0x35, 0x9b, 0xce, 0x5a, 0xbe, 0xbb, 0xff, 0xf7, 0xfd,
+ 0x7a, 0xc6, 0x5b, 0xc6, 0xeb, 0xfb, 0xb3, 0x22, 0x9b, 0xc6, 0x5a, 0xc6, 0xdf, 0x75, 0xff, 0xde, 0x5b, 0xc6, 0x3a, 0xbe, 0x00, 0x00, 0x2c, 0xe8, 0x7b, 0xc6, 0x3a, 0xbe, 0x82, 0xfa, 0xff, 0x5f,
+ 0x5b, 0xc6, 0x1a, 0xbe, 0xaa, 0x22, 0xaa, 0xfe, 0x5b, 0xc6, 0x19, 0xbe, 0x00, 0xa0, 0xaa, 0xfd, 0x5b, 0xc6, 0x3a, 0xbe, 0x7e, 0xff, 0xf7, 0xb5, 0x5b, 0xc6, 0x3a, 0xbe, 0xe5, 0xf7, 0xfd, 0x5d,
+ 0x5b, 0xbe, 0x3a, 0xbe, 0xde, 0xdd, 0xf9, 0xfd, 0x5b, 0xc6, 0x3a, 0xbe, 0xdd, 0xeb, 0x75, 0xfd, 0x5b, 0xbe, 0x3a, 0xbe, 0x57, 0xf7, 0x67, 0x7d, 0x3b, 0xbe, 0x5a, 0xb6, 0xc0, 0x20, 0xa2, 0xe8,
+ 0x5b, 0xbe, 0x1a, 0xb6, 0xea, 0xbe, 0xaa, 0xf2, 0x5b, 0xc6, 0x19, 0xb6, 0xef, 0xfb, 0xef, 0xff, 0x1a, 0xbe, 0x3b, 0xb6, 0xdc, 0x7f, 0xf7, 0xb6, 0x5b, 0xbe, 0x1a, 0xb6, 0xee, 0xfb, 0xaa, 0xab,
+ 0x3b, 0xc6, 0x1a, 0xb6, 0xae, 0xae, 0xab, 0xaa, 0x5b, 0xbe, 0x3a, 0xbe, 0xfd, 0x55, 0xb7, 0x55, 0x5b, 0xc6, 0x3a, 0xbe, 0x5d, 0x7f, 0xdf, 0x7f, 0x5b, 0xc6, 0x3a, 0xbe, 0xdd, 0x9f, 0xbb, 0xef,
+ 0x3a, 0xc6, 0x5b, 0xbe, 0x6b, 0x7e, 0x2b, 0x7d, 0x7b, 0xc6, 0x3a, 0xbe, 0x77, 0xdf, 0x7d, 0xaf, 0x5b, 0xc6, 0x3a, 0xbe, 0xee, 0x3f, 0xee, 0xb2, 0x3a, 0xc6, 0x5b, 0xbe, 0xde, 0xff, 0x7d, 0x7f,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xff, 0xfb, 0xab, 0xbb, 0x7b, 0xc6, 0x5a, 0xbe, 0xbf, 0xbf, 0x2b, 0x0b, 0x9b, 0xce, 0x5a, 0xc6, 0x55, 0xff, 0xff, 0xab, 0x9b, 0xce, 0x5a, 0xc6, 0xbd, 0xfe, 0xab, 0x2a,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xdf, 0xf7, 0xab, 0x08, 0x9b, 0xce, 0x7a, 0xc6, 0xdf, 0xaa, 0x02, 0x28, 0x9b, 0xd6, 0x7a, 0xc6, 0xff, 0xfb, 0xba, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0x0a, 0x00, 0x00,
+ 0xbb, 0xce, 0x7a, 0xce, 0xeb, 0xba, 0xae, 0xbe, 0xbb, 0xd6, 0x7a, 0xc6, 0xaf, 0xfb, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xce, 0x0b, 0xaa, 0x00, 0xf2, 0x9b, 0xce, 0x7a, 0xce, 0x73, 0xea, 0x80, 0x33,
+ 0x9b, 0xce, 0x7a, 0xce, 0xe1, 0xff, 0x2a, 0xfa, 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xaa, 0xab, 0xae, 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xea, 0xe8, 0xaa, 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xfa, 0xff, 0xab,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xaf, 0xbf, 0xf6, 0x7a, 0xce, 0x9b, 0xc6, 0x2b, 0xbe, 0xaa, 0xfa, 0x7b, 0xce, 0x9a, 0xc6, 0x2a, 0x0a, 0xbe, 0x2b, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xab, 0xfe,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xae, 0xb8, 0x2e, 0xba, 0x7b, 0xce, 0x5a, 0xc6, 0x92, 0xaa, 0xae, 0xba, 0x9b, 0xce, 0x5a, 0xc6, 0xef, 0xfe, 0xaf, 0xfe, 0x7b, 0xce, 0x5a, 0xc6, 0x88, 0xa8, 0xaa, 0xfe,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xaf, 0xbf, 0xba, 0xff, 0x9b, 0xce, 0x5a, 0xc6, 0xaf, 0xfe, 0xfe, 0xbb, 0x7b, 0xc6, 0x5a, 0xc6, 0x0e, 0x28, 0x38, 0x00, 0x5a, 0xce, 0x9b, 0xc6, 0xbf, 0xeb, 0xff, 0xef,
+ 0x9b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xfe, 0xfe, 0x9b, 0xce, 0x5a, 0xc6, 0xfb, 0xbb, 0xbf, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0xbe, 0xaa, 0x9b, 0xc6, 0x5a, 0xc6, 0xaa, 0xaf, 0xea, 0xeb,
+ 0x5a, 0xce, 0x7b, 0xc6, 0x5f, 0xf9, 0x57, 0x55, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xfd, 0xff, 0x6d, 0x7a, 0xce, 0x9b, 0xc6, 0x2e, 0xbf, 0xe2, 0xba, 0x7b, 0xce, 0x7a, 0xc6, 0xf8, 0xfa, 0xbf, 0x2e,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xfa, 0xff, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xbe, 0xb7, 0xbd, 0x7a, 0xce, 0x9b, 0xc6, 0xae, 0xeb, 0x0a, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xae, 0x2a, 0xab,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xfd, 0xaa, 0xea, 0x9b, 0xce, 0x7b, 0xc6, 0x8a, 0xaa, 0x0a, 0x2a, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x0f, 0xca, 0x02, 0x9b, 0xd6, 0x7a, 0xc6, 0xfe, 0xef, 0xfe, 0xbf,
+ 0x7c, 0xd6, 0x9a, 0xc6, 0xef, 0xef, 0xff, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0x20, 0x0a, 0xba, 0xaa, 0xbb, 0xce, 0x7a, 0xce, 0xfb, 0xef, 0xff, 0xff, 0x9c, 0xce, 0x7b, 0xce, 0xa6, 0xa2, 0xae, 0xaa,
+ 0xbb, 0xce, 0x9a, 0xce, 0xf5, 0x55, 0xed, 0x55, 0x9b, 0xd6, 0x9a, 0xce, 0x55, 0xf9, 0x7d, 0xed, 0xbb, 0xce, 0x7b, 0xce, 0xbb, 0xbb, 0xfa, 0xfb, 0x9b, 0xd6, 0xbb, 0xce, 0xdd, 0xff, 0xfb, 0xea,
+ 0xbb, 0xd6, 0x9b, 0xce, 0xfe, 0xbf, 0xab, 0x7b, 0xbc, 0xd6, 0x9a, 0xce, 0xeb, 0xaf, 0xae, 0xaf, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xaa, 0xea, 0xfe, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xab, 0xab, 0xba,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xbb, 0xbe, 0xbf, 0xee, 0x9b, 0xd6, 0xbb, 0xce, 0xfe, 0xef, 0xb7, 0x97, 0x9b, 0xd6, 0xbb, 0xce, 0x7f, 0xff, 0xaa, 0xd6, 0x9c, 0xd6, 0xbb, 0xce, 0xef, 0xf7, 0xd7, 0xf8,
+ 0x9a, 0xd6, 0xbc, 0xce, 0xbd, 0xff, 0xfa, 0xab, 0xbb, 0xd6, 0x9b, 0xce, 0xae, 0xaa, 0xfa, 0xea, 0x9b, 0xd6, 0xbc, 0xce, 0xeb, 0xee, 0xae, 0xfb, 0xbb, 0xd6, 0x9a, 0xce, 0xae, 0xaa, 0x2a, 0xa2,
+ 0x9b, 0xd6, 0xbc, 0xce, 0xfb, 0xee, 0xbf, 0x7e, 0xdc, 0xd6, 0x9a, 0xce, 0xab, 0xee, 0x2b, 0xee, 0xdc, 0xd6, 0x9b, 0xd6, 0xea, 0xfa, 0xaa, 0xaa, 0xdc, 0xd6, 0xbb, 0xd6, 0xe5, 0x75, 0x95, 0x7f,
+ 0xdc, 0xd6, 0xbb, 0xd6, 0x6d, 0xe3, 0xf7, 0xa7, 0xdc, 0xde, 0xbb, 0xce, 0xff, 0xbf, 0xaf, 0xea, 0xdb, 0xd6, 0xbb, 0xd6, 0xdf, 0x0f, 0xff, 0x8b, 0xdc, 0xd6, 0xbb, 0xce, 0xee, 0xfa, 0xea, 0xa8,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xa0, 0xab, 0xaa, 0xff, 0x3b, 0xbe, 0xf9, 0xb5, 0xaa, 0xaa, 0xf2, 0xaf, 0x3a, 0xbe, 0xf9, 0xb5, 0xaa, 0xa2, 0xfb, 0xfb, 0x3a, 0xbe, 0x19, 0xb6, 0xce, 0xab, 0x77, 0xff,
+ 0xf9, 0xbd, 0x3a, 0xb6, 0xab, 0xaf, 0xff, 0xea, 0x3a, 0xbe, 0xf9, 0xb5, 0xab, 0x8a, 0xaf, 0xfe, 0x19, 0xbe, 0x3a, 0xb6, 0x00, 0xaa, 0x8a, 0xfc, 0x3a, 0xbe, 0x19, 0xb6, 0xaf, 0x5e, 0xff, 0xff,
+ 0x1a, 0xbe, 0xf9, 0xb5, 0x00, 0x82, 0xaf, 0x0e, 0x3b, 0xbe, 0xf9, 0xb5, 0xaa, 0xab, 0xaf, 0xfb, 0x3b, 0xbe, 0xf9, 0xb5, 0x0a, 0xaa, 0xba, 0xfa, 0x3a, 0xbe, 0xf9, 0xb5, 0x2b, 0xb8, 0xb9, 0xdf,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xa8, 0xfa, 0xfa, 0x5f, 0x1a, 0xbe, 0xf9, 0xb5, 0xa2, 0x3a, 0xaf, 0xa6, 0x3a, 0xbe, 0xf9, 0xb5, 0xb8, 0xbf, 0xbf, 0x5f, 0x3a, 0xbe, 0xf9, 0xb5, 0x2a, 0xaf, 0x77, 0x5d,
+ 0x3b, 0xbe, 0xf9, 0xb5, 0xa2, 0x2e, 0xaf, 0xbf, 0x3b, 0xbe, 0xf9, 0xb5, 0x02, 0x02, 0x0a, 0xbe, 0x3b, 0xc6, 0x19, 0xb6, 0xaa, 0xaa, 0xea, 0xff, 0x3b, 0xc6, 0x19, 0xb6, 0xfb, 0xaf, 0xff, 0xbf,
+ 0x3b, 0xbe, 0x19, 0xb6, 0xa0, 0x22, 0x8a, 0x0a, 0x3b, 0xbe, 0x19, 0xbe, 0xf0, 0x80, 0x22, 0x26, 0x5b, 0xbe, 0x3a, 0xbe, 0x55, 0xdf, 0x67, 0x55, 0x5a, 0xc6, 0x3a, 0xbe, 0xb5, 0xae, 0xe7, 0xff,
+ 0x5a, 0xc6, 0x3a, 0xbe, 0xe7, 0xff, 0xff, 0xd5, 0x5b, 0xc6, 0x3a, 0xbe, 0xbf, 0xeb, 0xaa, 0xe3, 0x5b, 0xc6, 0x3a, 0xbe, 0xbe, 0xf9, 0xea, 0x0a, 0x5b, 0xc6, 0x3a, 0xbe, 0xab, 0x20, 0xbe, 0x7b,
+ 0x5b, 0xc6, 0x3a, 0xbe, 0x38, 0xba, 0xab, 0xda, 0x5b, 0xc6, 0x1a, 0xbe, 0x80, 0xaa, 0xea, 0xff, 0x5b, 0xc6, 0x1a, 0xbe, 0xea, 0x8a, 0xae, 0xfd, 0x5b, 0xc6, 0x19, 0xb6, 0x02, 0x8a, 0xae, 0xb6,
+ 0x7b, 0xc6, 0x1a, 0xbe, 0x2a, 0xaa, 0x7f, 0xff, 0x7b, 0xc6, 0x1a, 0xbe, 0x80, 0xaa, 0xff, 0xf7, 0x5b, 0xc6, 0x1a, 0xbe, 0xa8, 0xfb, 0x7f, 0x57, 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xae, 0x6f, 0xff,
+ 0x3b, 0xc6, 0x1a, 0xb6, 0xea, 0xfa, 0xbf, 0xff, 0x3b, 0xbe, 0x19, 0xb6, 0x0b, 0x88, 0x7a, 0xff, 0x3b, 0xbe, 0xfa, 0xb5, 0xa2, 0xea, 0xbf, 0xff, 0x5b, 0xbe, 0x1a, 0xb6, 0xfa, 0xca, 0xfd, 0x77,
+ 0x3a, 0xc6, 0x1a, 0xb6, 0xab, 0xbf, 0xff, 0xff, 0x3b, 0xbe, 0x1a, 0xb6, 0x00, 0x38, 0x02, 0xc8, 0x5b, 0xbe, 0x1a, 0xbe, 0xff, 0xfa, 0xaa, 0xef, 0x3b, 0xbe, 0x1a, 0xb6, 0xa0, 0x28, 0x82, 0x00,
+ 0x5b, 0xc6, 0x1a, 0xb6, 0xff, 0xbf, 0xfa, 0xba, 0x3b, 0xbe, 0x1a, 0xbe, 0x7e, 0xe0, 0x80, 0x2f, 0x3b, 0xc6, 0x1a, 0xb6, 0xbf, 0xef, 0xfb, 0xea, 0x3a, 0xbe, 0x1a, 0xb6, 0xa2, 0x0a, 0x00, 0xaa,
+ 0x3b, 0xc6, 0x19, 0xb6, 0xae, 0xab, 0xfa, 0xfb, 0x5b, 0xc6, 0x1a, 0xb6, 0xaa, 0x2a, 0xaf, 0xab, 0x5b, 0xc6, 0x3a, 0xbe, 0xff, 0x2b, 0xdb, 0x7b, 0x7b, 0xc6, 0x3a, 0xbe, 0xeb, 0xbb, 0xaf, 0x0b,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xfe, 0xaa, 0x0a, 0x00, 0x7b, 0xce, 0x5a, 0xbe, 0xff, 0xaa, 0xab, 0xaa, 0x7b, 0xce, 0x5a, 0xbe, 0xff, 0xaa, 0xaa, 0xaa, 0x7b, 0xce, 0x5a, 0xc6, 0x7d, 0xab, 0x32, 0x2a,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xfd, 0xef, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xfb, 0xea, 0xae, 0x7a, 0xce, 0x9b, 0xc6, 0x2b, 0xaa, 0xab, 0xa2, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0x02, 0x2a, 0x8a,
+ 0x9b, 0xd6, 0x7a, 0xce, 0xbf, 0xbf, 0xfe, 0x7f, 0x9b, 0xce, 0x7a, 0xce, 0x00, 0x02, 0x02, 0xfa, 0xbb, 0xce, 0x7a, 0xce, 0xfb, 0xea, 0xff, 0xff, 0x9b, 0xd6, 0x9a, 0xc6, 0xaf, 0xea, 0xaa, 0xbe,
+ 0x9b, 0xd6, 0x7a, 0xc6, 0xba, 0xeb, 0xaa, 0xff, 0x9b, 0xd6, 0x7b, 0xc6, 0xbe, 0xab, 0xaf, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0x8a, 0xa0, 0xaa, 0x9b, 0xce, 0x7a, 0xce, 0xef, 0x80, 0xb0, 0xfd,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xbf, 0xae, 0xbe, 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0x22, 0xaa, 0xaa, 0x7b, 0xd6, 0x9a, 0xc6, 0xff, 0xfe, 0xaf, 0xef, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xbf, 0x2a, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xad, 0xea, 0xae, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xbf, 0xeb, 0xfe, 0xbb, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0xff, 0xee, 0x7a, 0xce, 0x9b, 0xc6, 0x3a, 0xbf, 0xfa, 0xb0,
+ 0x7b, 0xce, 0x7a, 0xc6, 0xba, 0xdf, 0xff, 0x2c, 0x7b, 0xce, 0x5a, 0xc6, 0xee, 0xab, 0xaa, 0x88, 0x7b, 0xce, 0x7a, 0xc6, 0x7d, 0xfe, 0xff, 0xea, 0x7b, 0xce, 0x5a, 0xc6, 0xae, 0xeb, 0xdf, 0xaa,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xae, 0xbe, 0xae, 0x7b, 0xc6, 0x5a, 0xc6, 0x88, 0x00, 0xff, 0x8a, 0x7b, 0xce, 0x5a, 0xbe, 0xba, 0xfe, 0xaa, 0xaa, 0x7b, 0xc6, 0x5a, 0xc6, 0x0a, 0x0a, 0x02, 0xae,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x75, 0x5d, 0xff, 0xd5, 0x7b, 0xce, 0x5a, 0xc6, 0xbe, 0xbf, 0xa8, 0xbb, 0x7b, 0xce, 0x5a, 0xc6, 0x8b, 0x8b, 0xaa, 0xbe, 0x7b, 0xce, 0x7a, 0xc6, 0xfe, 0xdf, 0xfb, 0x7b,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xab, 0xaf, 0xff, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xca, 0xaa, 0xeb, 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0x02, 0xaa, 0xaa, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xab, 0xba, 0xaf,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xff, 0xbb, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xef, 0xff, 0xa7, 0x7a, 0xce, 0x9b, 0xc6, 0xbe, 0x22, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xaf, 0x2f, 0xcb,
+ 0x7a, 0xce, 0xbb, 0xc6, 0xba, 0xea, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xff, 0xea, 0xfa, 0x9c, 0xd6, 0x7a, 0xc6, 0xff, 0xff, 0xfe, 0xfb, 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0x2a, 0xae,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaa, 0xaa, 0xae, 0x9b, 0xd6, 0x7b, 0xc6, 0xff, 0xef, 0xef, 0xbf, 0x9b, 0xce, 0x7a, 0xce, 0xa8, 0x83, 0xa8, 0x00, 0x9c, 0xce, 0x7a, 0xc6, 0x0a, 0x22, 0x80, 0xa0,
+ 0x9c, 0xd6, 0x7a, 0xc6, 0xba, 0xbf, 0xaa, 0xbb, 0xbb, 0xd6, 0x7b, 0xce, 0xbf, 0xff, 0xff, 0xbf, 0xbc, 0xd6, 0x9a, 0xce, 0xdd, 0xd5, 0xff, 0x6f, 0xbb, 0xd6, 0x9b, 0xce, 0x7d, 0x5d, 0xb5, 0xdd,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xdd, 0x79, 0x5d, 0xdd, 0xbb, 0xd6, 0x9b, 0xce, 0xdd, 0xff, 0xdd, 0xdd, 0xbc, 0xd6, 0x9b, 0xce, 0xff, 0xff, 0xff, 0xe5, 0xbb, 0xd6, 0x9b, 0xce, 0xea, 0xab, 0xf5, 0x7d,
+ 0xbb, 0xd6, 0x9b, 0xce, 0xeb, 0xff, 0xfb, 0xad, 0x9a, 0xd6, 0xbc, 0xce, 0xaa, 0xef, 0xff, 0xaa, 0xbc, 0xd6, 0x9b, 0xce, 0xeb, 0xab, 0xab, 0xeb, 0x9b, 0xd6, 0xbc, 0xce, 0xf5, 0xfa, 0xbf, 0xaa,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xfa, 0xbf, 0xaf, 0xaa, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xae, 0xaa, 0xa2, 0xbc, 0xd6, 0x9b, 0xce, 0xeb, 0xaf, 0xa8, 0xaa, 0xbc, 0xde, 0x9a, 0xce, 0xff, 0xbf, 0xbf, 0xbe,
+ 0xdc, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0xbf, 0xae, 0xdc, 0xd6, 0xbb, 0xd6, 0x75, 0x5d, 0x7d, 0x5e, 0xdc, 0xd6, 0xbb, 0xd6, 0x56, 0x57, 0xbd, 0xad, 0xdc, 0xd6, 0xbb, 0xd6, 0x75, 0xad, 0xbf, 0xbb,
+ 0xdc, 0xde, 0xbb, 0xce, 0xaf, 0xab, 0xea, 0xae, 0xdc, 0xd6, 0xbb, 0xd6, 0xb9, 0xb6, 0xa8, 0xaa, 0xdc, 0xd6, 0xbb, 0xd6, 0xaf, 0xab, 0xef, 0xa2, 0xdc, 0xde, 0xbb, 0xd6, 0xf7, 0xff, 0xaf, 0xef,
+ 0xf9, 0xbd, 0x3a, 0xb6, 0xa8, 0x28, 0xeb, 0xaf, 0xf9, 0xbd, 0x1a, 0xb6, 0x7f, 0xee, 0xef, 0xa9, 0x1a, 0xbe, 0xf9, 0xb5, 0xbc, 0xbe, 0xaf, 0xfc, 0x1a, 0xbe, 0xf9, 0xb5, 0xb2, 0xb8, 0xe9, 0xfa,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xbe, 0xfb, 0xff, 0x77, 0x1a, 0xbe, 0xf9, 0xb5, 0x22, 0xb8, 0xf4, 0xf7, 0x3a, 0xbe, 0xf9, 0xb5, 0xab, 0xfe, 0xdd, 0x75, 0x1a, 0xbe, 0xf9, 0xb5, 0xec, 0xaa, 0xab, 0x77,
+ 0x1a, 0xbe, 0xd9, 0xb5, 0x22, 0xa8, 0xab, 0x7e, 0x1a, 0xbe, 0xd9, 0xb5, 0xaa, 0x0a, 0xa2, 0xfe, 0x1a, 0xbe, 0xd9, 0xad, 0xaa, 0xaa, 0xfa, 0xfd, 0x1a, 0xbe, 0xd9, 0xad, 0xaa, 0xaa, 0xff, 0x7d,
+ 0x19, 0xb6, 0xda, 0xad, 0x8e, 0xea, 0xff, 0xfb, 0x1a, 0xb6, 0xd9, 0xad, 0x2a, 0xaa, 0xba, 0xff, 0x1a, 0xb6, 0xd9, 0xb5, 0xca, 0x7e, 0xef, 0xbf, 0x1a, 0xbe, 0xd9, 0xad, 0xaf, 0xab, 0xaa, 0xba,
+ 0x1a, 0xbe, 0xf9, 0xad, 0xbb, 0xec, 0xbe, 0xff, 0x1a, 0xbe, 0xf9, 0xb5, 0xab, 0xb9, 0x8f, 0x8f, 0x19, 0xbe, 0x3a, 0xb6, 0x2f, 0x83, 0x00, 0xaf, 0x3a, 0xbe, 0x19, 0xb6, 0xea, 0xaa, 0xaa, 0xea,
+ 0x3b, 0xbe, 0xf9, 0xb5, 0x0f, 0x82, 0x8a, 0x88, 0x3a, 0xbe, 0x1a, 0xbe, 0xce, 0x48, 0x02, 0x27, 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xff, 0xfd, 0xbd, 0x5b, 0xc6, 0x1a, 0xbe, 0xbf, 0xf5, 0xfe, 0x7c,
+ 0x5b, 0xc6, 0x19, 0xbe, 0xfc, 0xea, 0xdf, 0x55, 0x5a, 0xbe, 0xfa, 0xb5, 0x80, 0xaa, 0xaa, 0xff, 0x5b, 0xc6, 0x19, 0xb6, 0x0a, 0xaf, 0xf7, 0xdd, 0x3b, 0xc6, 0xf9, 0xb5, 0x00, 0xaa, 0xfe, 0x7f,
+ 0x5b, 0xc6, 0x1a, 0xb6, 0xea, 0xfe, 0xf5, 0x7d, 0x3b, 0xbe, 0x1a, 0xb6, 0x02, 0x0a, 0xb2, 0xff, 0x3b, 0xbe, 0x1a, 0xb6, 0xea, 0x2e, 0xaa, 0xd5, 0x3b, 0xbe, 0xf9, 0xb5, 0x0a, 0x88, 0xb9, 0xfe,
+ 0x3b, 0xbe, 0x19, 0xb6, 0x8c, 0xeb, 0xbe, 0x7d, 0x3a, 0xbe, 0xfa, 0xb5, 0xa2, 0xaa, 0x8b, 0xdf, 0x1b, 0xbe, 0xfa, 0xb5, 0xa0, 0xa0, 0xba, 0x5a, 0x3b, 0xbe, 0xf9, 0xb5, 0xba, 0xfe, 0xbb, 0xbb,
+ 0x3b, 0xbe, 0xfa, 0xb5, 0xaa, 0xff, 0xef, 0xb8, 0x1a, 0xbe, 0x19, 0xb6, 0xf0, 0x00, 0xaa, 0xf0, 0x3a, 0xbe, 0x19, 0xb6, 0x6e, 0xbb, 0xae, 0x2f, 0x3b, 0xbe, 0x19, 0xb6, 0xaf, 0xa9, 0xfa, 0xab,
+ 0x3b, 0xbe, 0x1a, 0xb6, 0xbf, 0xab, 0xe2, 0xee, 0x1b, 0xbe, 0x39, 0xb6, 0xb6, 0xaa, 0x20, 0x8b, 0x3b, 0xbe, 0x1a, 0xb6, 0x0a, 0x08, 0x08, 0x3e, 0x3b, 0xbe, 0x1a, 0xb6, 0x00, 0x00, 0x02, 0xb8,
+ 0x5b, 0xc6, 0x19, 0xb6, 0xaa, 0xaa, 0xff, 0xff, 0x5b, 0xc6, 0x1a, 0xb6, 0xba, 0xfe, 0xbf, 0xb7, 0x3b, 0xc6, 0x19, 0xb6, 0xee, 0xeb, 0xaf, 0xaa, 0x5b, 0xc6, 0x1a, 0xbe, 0x5f, 0x57, 0xfe, 0x2a,
+ 0x5b, 0xc6, 0x1a, 0xbe, 0xe5, 0xff, 0xaf, 0x00, 0x7b, 0xc6, 0x3a, 0xbe, 0xf5, 0xaf, 0x2a, 0x02, 0x7b, 0xc6, 0x5a, 0xbe, 0xb5, 0x02, 0x00, 0x00, 0x5b, 0xce, 0x7a, 0xc6, 0xb5, 0xae, 0xd7, 0xff,
+ 0x7b, 0xce, 0x7a, 0xc6, 0xea, 0x7f, 0xaa, 0xbc, 0x9b, 0xce, 0x7a, 0xc6, 0x7f, 0x5f, 0xff, 0xeb, 0x7b, 0xce, 0x7a, 0xc6, 0xf9, 0xba, 0x2b, 0xff, 0x9b, 0xce, 0x5a, 0xce, 0xea, 0xea, 0xaf, 0xae,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xaa, 0xaa, 0xeb, 0x20, 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xff, 0xaa, 0xbb, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xaa, 0xea, 0xaa, 0x9b, 0xd6, 0x7a, 0xc6, 0xbf, 0xef, 0xfb, 0xbf,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaa, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xce, 0x3e, 0x8f, 0xc2, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xa8, 0xa2, 0x9b, 0xce, 0x7a, 0xc6, 0xa8, 0xaa, 0xaa, 0xf2,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xaa, 0xba, 0xea, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xba, 0x8b, 0x7a, 0xce, 0x9b, 0xc6, 0x82, 0xaa, 0xe0, 0xbe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xae, 0xaa, 0xaa, 0xbe, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xaa, 0xee, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xbe, 0xaa, 0xf7, 0x7b, 0xce, 0x7a, 0xc6, 0xaa, 0xa8, 0xbe, 0xfe,
+ 0x7a, 0xce, 0x9b, 0xc6, 0x8a, 0x0e, 0x08, 0x2a, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xdb, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xe6, 0xff, 0xff, 0xdf, 0x9b, 0xce, 0x5a, 0xc6, 0xba, 0xaf, 0xbf, 0xaf,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xff, 0xf7, 0x55, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xfe, 0x5f, 0xfd, 0x9b, 0xce, 0x5a, 0xc6, 0xab, 0xfa, 0xfa, 0xff, 0x9b, 0xce, 0x5a, 0xc6, 0xfe, 0xff, 0xfe, 0xff,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0xef, 0xa8, 0x03, 0x20, 0x7b, 0xce, 0x5a, 0xc6, 0x7b, 0xff, 0xfa, 0x6b, 0x7a, 0xce, 0x5b, 0xc6, 0xfb, 0xbf, 0xf7, 0x7b, 0x7b, 0xce, 0x5a, 0xc6, 0xea, 0xff, 0xee, 0xff,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xae, 0x7e, 0xff, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xae, 0xbf, 0xfa, 0x7b, 0xce, 0x5a, 0xc6, 0xef, 0xbe, 0xfa, 0xdf, 0x7b, 0xce, 0x5a, 0xc6, 0xbf, 0xab, 0xbf, 0xab,
+ 0x9b, 0xc6, 0x5a, 0xbe, 0xfa, 0xaa, 0xaa, 0xfb, 0x7b, 0xce, 0x5a, 0xc6, 0xab, 0xab, 0xae, 0xba, 0x9b, 0xce, 0x5a, 0xc6, 0xff, 0xfa, 0xfb, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xff, 0xdf, 0xfd,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xab, 0xf8, 0xa2, 0xa2, 0x7b, 0xce, 0x9a, 0xc6, 0xa0, 0x23, 0xf8, 0x3e, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xaa, 0xab, 0xfe, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xbb, 0xaa, 0xab,
+ 0x9b, 0xce, 0x7b, 0xc6, 0x3a, 0xea, 0xef, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaf, 0xfe, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0xbb, 0xbb, 0xae, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0xaa, 0xaa, 0xf8,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xee, 0xae, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0x8a, 0x2a, 0xaa, 0xa8, 0x9b, 0xce, 0x7a, 0xce, 0x3c, 0x3f, 0x30, 0x02, 0xbb, 0xce, 0x7a, 0xce, 0xab, 0xfe, 0xff, 0xaf,
+ 0xbc, 0xd6, 0x7a, 0xce, 0xff, 0xff, 0xff, 0xee, 0xbb, 0xd6, 0x9b, 0xce, 0xed, 0x55, 0x55, 0x5d, 0xbc, 0xd6, 0x7a, 0xce, 0xee, 0xae, 0xff, 0xff, 0xbb, 0xd6, 0x7b, 0xce, 0xae, 0xea, 0xeb, 0xff,
+ 0x9b, 0xd6, 0x7b, 0xce, 0xee, 0xba, 0xbb, 0xff, 0xbb, 0xd6, 0x7b, 0xce, 0xff, 0xff, 0xef, 0xbf, 0x9b, 0xd6, 0xbb, 0xce, 0x80, 0xaa, 0xaa, 0xbe, 0xbb, 0xd6, 0x9a, 0xce, 0xff, 0xbf, 0xbf, 0xbf,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xff, 0xff, 0xff, 0xaa, 0x9b, 0xd6, 0xbb, 0xce, 0xeb, 0xaa, 0xef, 0xeb, 0x9a, 0xd6, 0xbb, 0xce, 0xbf, 0xff, 0xbf, 0xbf, 0xbc, 0xd6, 0x9b, 0xce, 0xea, 0xff, 0xba, 0xaa,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xaa, 0xab, 0xaa, 0xab, 0xdc, 0xde, 0x9b, 0xce, 0xff, 0xff, 0xff, 0xef, 0xdc, 0xd6, 0x9b, 0xce, 0xfe, 0xab, 0xaa, 0xeb, 0xdc, 0xd6, 0xbb, 0xd6, 0x7e, 0xd5, 0xf5, 0x95,
+ 0xdb, 0xd6, 0xbc, 0xd6, 0xfe, 0xff, 0xd7, 0x6b, 0xdc, 0xde, 0xbb, 0xce, 0xbf, 0xaa, 0xbf, 0xaa, 0xdc, 0xde, 0xbb, 0xd6, 0xfd, 0xff, 0xfb, 0xc9, 0xdc, 0xde, 0xbb, 0xd6, 0xe9, 0xef, 0xbf, 0xab,
+ 0xdc, 0xde, 0xbb, 0xd6, 0xbd, 0xaf, 0xaf, 0xaf, 0xfc, 0xde, 0xbb, 0xd6, 0xff, 0xbf, 0xbf, 0xef, 0xdc, 0xde, 0xbb, 0xd6, 0xab, 0xfa, 0xba, 0xbe, 0xfc, 0xde, 0xbb, 0xd6, 0xfe, 0xeb, 0xff, 0x7e,
+ 0x1a, 0xbe, 0xd9, 0xad, 0xfa, 0xff, 0xdf, 0x7f, 0x1a, 0xb6, 0xd9, 0xad, 0x82, 0xfb, 0xfd, 0x57, 0x1a, 0xb6, 0xd9, 0xad, 0xff, 0xe3, 0xff, 0x7e, 0xfa, 0xbd, 0xd9, 0xad, 0xaa, 0xbe, 0xff, 0xff,
+ 0xfa, 0xb5, 0xd9, 0xb5, 0xe0, 0xf2, 0xcb, 0xcf, 0xf9, 0xbd, 0xda, 0xad, 0xba, 0xfe, 0xfe, 0xff, 0xfa, 0xb5, 0xd9, 0xad, 0x0a, 0xc2, 0xa8, 0xae, 0xfa, 0xb5, 0xd9, 0xad, 0x80, 0xa2, 0xfb, 0xbe,
+ 0xfa, 0xb5, 0xb9, 0xad, 0x82, 0xa2, 0xa8, 0xaf, 0xda, 0xb5, 0xd9, 0xad, 0xa0, 0xed, 0xfb, 0x55, 0xb9, 0xb5, 0xfa, 0xad, 0xff, 0xaa, 0xaa, 0xfe, 0xfa, 0xb5, 0xd9, 0xad, 0xa2, 0xfa, 0xff, 0x7f,
+ 0xda, 0xb5, 0xf9, 0xad, 0x80, 0xb0, 0xb2, 0x20, 0xfa, 0xbd, 0xb9, 0xad, 0xeb, 0xab, 0x8b, 0x2a, 0xfa, 0xb5, 0xd9, 0xad, 0x0e, 0x02, 0x08, 0x00, 0x1a, 0xbe, 0xd9, 0xb5, 0xeb, 0xfd, 0xaf, 0xaa,
+ 0x1a, 0xbe, 0xd9, 0xb5, 0xfd, 0x2a, 0x2a, 0x02, 0x3b, 0xbe, 0x19, 0xb6, 0xd5, 0xff, 0xbf, 0x23, 0x3b, 0xbe, 0x19, 0xb6, 0xfe, 0xee, 0xba, 0x83, 0x3b, 0xbe, 0xf9, 0xb5, 0x2a, 0xab, 0xaf, 0x28,
+ 0x3b, 0xbe, 0x19, 0xbe, 0xb7, 0xbb, 0x3b, 0xaf, 0x3a, 0xc6, 0x1a, 0xb6, 0xab, 0xae, 0xeb, 0xff, 0x3a, 0xbe, 0xf9, 0xb5, 0x0a, 0x2a, 0x88, 0x6b, 0x3b, 0xbe, 0xf9, 0xb5, 0x88, 0xfa, 0xfe, 0x7f,
+ 0x1a, 0xbe, 0xf9, 0xb5, 0xa8, 0xfa, 0xaf, 0xf5, 0x1a, 0xbe, 0xf9, 0xb5, 0xaa, 0xee, 0xfa, 0xf7, 0x1a, 0xbe, 0xf9, 0xb5, 0xbf, 0xaa, 0xb2, 0x8b, 0xf9, 0xbd, 0x1a, 0xb6, 0x5f, 0xd7, 0xab, 0x8d,
+ 0x1a, 0xbe, 0xf9, 0xb5, 0xa2, 0xfe, 0xec, 0xfd, 0x1a, 0xbe, 0xfa, 0xb5, 0xaa, 0x6e, 0xaa, 0xf8, 0x1a, 0xbe, 0xf9, 0xb5, 0xba, 0xa7, 0xfb, 0x7b, 0x1a, 0xbe, 0xf9, 0xb5, 0xbe, 0xfe, 0xd7, 0x55,
+ 0x1b, 0xbe, 0xda, 0xb5, 0xaa, 0xaa, 0xae, 0xba, 0x1b, 0xbe, 0xf9, 0xad, 0xef, 0xeb, 0xaa, 0xae, 0x1a, 0xbe, 0xfa, 0xb5, 0x5b, 0xad, 0x2f, 0xba, 0x1b, 0xbe, 0xf9, 0xb5, 0x2e, 0x3f, 0x2a, 0xa2,
+ 0x3b, 0xc6, 0x1a, 0xb6, 0xff, 0xef, 0xff, 0xff, 0x1b, 0xbe, 0xf9, 0xb5, 0x28, 0x8b, 0xaa, 0x00, 0x1b, 0xbe, 0xf9, 0xb5, 0xaa, 0xa8, 0xa8, 0x08, 0xfa, 0xbd, 0x3a, 0xb6, 0xa2, 0xbf, 0xfd, 0xfa,
+ 0x3b, 0xbe, 0xf9, 0xb5, 0xaa, 0xfa, 0xaa, 0x82, 0x3b, 0xbe, 0x19, 0xb6, 0xfa, 0xbf, 0xb7, 0x8a, 0x3b, 0xc6, 0x19, 0xb6, 0xff, 0xfb, 0xba, 0xaa, 0x5b, 0xc6, 0x1a, 0xbe, 0x7d, 0xdd, 0xab, 0x00,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0x55, 0xf7, 0xba, 0x2a, 0x7b, 0xc6, 0x3a, 0xbe, 0xd5, 0xfb, 0xaf, 0x20, 0x7b, 0xc6, 0x3a, 0xbe, 0xf7, 0x8f, 0x0a, 0x00, 0x7b, 0xce, 0x5a, 0xc6, 0x5d, 0xfd, 0xab, 0xaa,
+ 0x7b, 0xce, 0x5a, 0xc6, 0x5d, 0xba, 0xaa, 0x0a, 0x9b, 0xce, 0x5a, 0xc6, 0xff, 0xaf, 0xab, 0xab, 0x5b, 0xce, 0x9a, 0xc6, 0xaa, 0xea, 0xfe, 0xab, 0x9b, 0xce, 0x5a, 0xc6, 0xff, 0xee, 0xff, 0xaf,
+ 0x5b, 0xce, 0x9a, 0xc6, 0xfb, 0xea, 0xbf, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xfb, 0xfb, 0xff, 0xff, 0x7b, 0xce, 0x9a, 0xc6, 0x22, 0x0a, 0xaa, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0x6b, 0xff, 0xff,
+ 0x7a, 0xce, 0x9b, 0xc6, 0x0a, 0xba, 0x0a, 0xeb, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xfe, 0xbb, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xea, 0xab, 0xfe, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xba, 0xea,
+ 0x7b, 0xd6, 0x9a, 0xc6, 0xbf, 0xbf, 0xfe, 0xfb, 0x9a, 0xce, 0x7b, 0xce, 0x8b, 0xad, 0x2a, 0xb6, 0x7b, 0xd6, 0x9a, 0xc6, 0xfa, 0xff, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xce, 0x0f, 0xa0, 0xe0, 0x8a,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xea, 0xae, 0xae, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0x9e, 0xea, 0x2e, 0x7b, 0xce, 0x9a, 0xc6, 0xaf, 0x82, 0xab, 0xf8, 0x9b, 0xce, 0x7a, 0xc6, 0xbe, 0xfe, 0xff, 0xdf,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xaa, 0xbe, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0xeb, 0xfe, 0x7b, 0xce, 0x5a, 0xc6, 0x2a, 0xab, 0xee, 0xfb, 0x5a, 0xce, 0x7b, 0xc6, 0x5f, 0x77, 0xe5, 0x5f,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xba, 0xaf, 0xfe, 0xfe, 0x7b, 0xce, 0x7a, 0xc6, 0xbf, 0x7f, 0x5b, 0xf5, 0x7b, 0xc6, 0x3a, 0xc6, 0xaa, 0xea, 0x88, 0xea, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaf, 0xbb, 0xab,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xae, 0xfb, 0xff, 0x7f, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xfa, 0xeb, 0xfe, 0x7b, 0xc6, 0x5a, 0xbe, 0x82, 0xa8, 0xaa, 0x2a, 0x7b, 0xce, 0x5a, 0xc6, 0xff, 0xff, 0xed, 0xdd,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0xb0, 0xc0, 0x0e, 0xa8, 0x7b, 0xc6, 0x5a, 0xc6, 0xa3, 0x3f, 0xef, 0xf3, 0x7b, 0xc6, 0x5a, 0xbe, 0x80, 0xa6, 0x8a, 0xbe, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xff, 0xff, 0xff,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x03, 0x8a, 0x02, 0x82, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0x0a, 0x8a, 0x2a, 0x7b, 0xc6, 0x5a, 0xc6, 0x8c, 0x88, 0x2b, 0xb2, 0x9b, 0xce, 0x5a, 0xbe, 0xfe, 0xff, 0xfe, 0xfa,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0x20, 0xea, 0xa8, 0x82, 0x7b, 0xce, 0x5a, 0xc6, 0xef, 0xfa, 0xae, 0xbe, 0x9b, 0xce, 0x5a, 0xc6, 0xef, 0xff, 0xff, 0xff, 0x7b, 0xce, 0x7a, 0xc6, 0xbd, 0xaf, 0xab, 0xff,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xae, 0x08, 0xfe, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xbf, 0xbc, 0xea, 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xaf, 0xa0, 0xeb, 0x7a, 0xce, 0x9b, 0xc6, 0xbf, 0xaa, 0xbf, 0xfe,
+ 0x5a, 0xce, 0x9b, 0xc6, 0xff, 0xff, 0xfb, 0xbf, 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xaa, 0xeb, 0xa0, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xef, 0xeb, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0x8b, 0xfe, 0xfe, 0xee,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xaa, 0xaa, 0xa8, 0x7b, 0xd6, 0x9a, 0xc6, 0xbe, 0xaf, 0xff, 0xfa, 0x7c, 0xd6, 0x9a, 0xc6, 0xfe, 0xbe, 0xaa, 0xff, 0x9b, 0xce, 0x7b, 0xce, 0x80, 0x0a, 0x0c, 0xfe,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x80, 0x02, 0xa2, 0x82, 0x9b, 0xd6, 0x7b, 0xc6, 0xea, 0xeb, 0xaa, 0xbe, 0xbc, 0xce, 0x9a, 0xce, 0x57, 0x75, 0xe5, 0x55, 0x9b, 0xce, 0x7a, 0xce, 0x0b, 0x02, 0x0a, 0x0a,
+ 0xbb, 0xd6, 0x7b, 0xce, 0xff, 0xff, 0xef, 0xfb, 0x7b, 0xd6, 0xbb, 0xce, 0xff, 0xaf, 0xaf, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0xdd, 0xfd, 0xfd, 0xfd, 0xbb, 0xd6, 0x9b, 0xce, 0xbb, 0xff, 0xbb, 0xfd,
+ 0x9b, 0xd6, 0xbc, 0xce, 0xe3, 0xbe, 0xab, 0xe2, 0xbb, 0xd6, 0x9a, 0xce, 0xaa, 0xaa, 0xaf, 0xaa, 0xbb, 0xd6, 0x9b, 0xce, 0xea, 0xab, 0xaa, 0xab, 0xbb, 0xd6, 0x9b, 0xce, 0x2a, 0xe2, 0xaa, 0xaa,
+ 0xbc, 0xd6, 0x9b, 0xd6, 0x2b, 0x8a, 0xaa, 0xaa, 0xdc, 0xde, 0x9b, 0xce, 0xef, 0xfb, 0xaa, 0xbf, 0xdc, 0xd6, 0x9b, 0xd6, 0xfe, 0xab, 0xaa, 0xaf, 0xdc, 0xd6, 0xbb, 0xd6, 0x95, 0x9d, 0xe5, 0xed,
+ 0xdc, 0xde, 0xbb, 0xd6, 0xd7, 0xff, 0xef, 0xfe, 0xdc, 0xde, 0xbb, 0xd6, 0x7f, 0xf5, 0xef, 0xbe, 0xfc, 0xde, 0xbb, 0xd6, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xde, 0xbb, 0xd6, 0xfb, 0xbf, 0xff, 0xff,
+ 0xdc, 0xde, 0xdb, 0xd6, 0xbd, 0x57, 0xd9, 0xaf, 0xfc, 0xde, 0xbb, 0xd6, 0xbb, 0xff, 0xef, 0xff, 0xfc, 0xde, 0xbb, 0xd6, 0xbf, 0xff, 0xeb, 0xbf, 0xdc, 0xde, 0xbb, 0xd6, 0xee, 0xef, 0xff, 0xff,
+ 0xb9, 0xb5, 0xda, 0xad, 0xaa, 0x5a, 0x7f, 0x7f, 0xda, 0xb5, 0xd9, 0xad, 0x68, 0xfd, 0xff, 0xf7, 0xd9, 0xb5, 0xd9, 0xad, 0xae, 0xb2, 0x2b, 0x3d, 0xb9, 0xb5, 0xfa, 0xad, 0xe9, 0xfd, 0xaa, 0xff,
+ 0xda, 0xb5, 0xd9, 0xad, 0xe8, 0xfa, 0xfd, 0xc2, 0xb9, 0xb5, 0x1a, 0xae, 0xaa, 0xaa, 0x5f, 0xeb, 0xda, 0xb5, 0xf9, 0xad, 0x02, 0xb8, 0xff, 0xb9, 0xf9, 0xb5, 0xba, 0xad, 0xfa, 0xa8, 0xaa, 0xba,
+ 0xf9, 0xb5, 0xba, 0xad, 0xaf, 0xba, 0x22, 0xee, 0xd9, 0xb5, 0xfa, 0xad, 0xab, 0xeb, 0xff, 0xea, 0xfa, 0xb5, 0xb9, 0xad, 0xac, 0xaa, 0x28, 0x0a, 0xda, 0xb5, 0xf9, 0xad, 0xaf, 0xaa, 0x3d, 0x8f,
+ 0xf9, 0xb5, 0xda, 0xad, 0x2f, 0xba, 0xaa, 0x0a, 0x1a, 0xbe, 0xd9, 0xb5, 0xd7, 0xef, 0xef, 0x0a, 0x1a, 0xbe, 0xd9, 0xb5, 0xff, 0xff, 0x2a, 0x82, 0x3a, 0xbe, 0xd9, 0xb5, 0xfb, 0xff, 0xae, 0x8a,
+ 0x1a, 0xbe, 0x19, 0xb6, 0xeb, 0x7a, 0x97, 0xb9, 0x19, 0xbe, 0x3a, 0xb6, 0x80, 0x2b, 0xbf, 0xea, 0x19, 0xbe, 0x3b, 0xb6, 0xbd, 0x02, 0xa2, 0x02, 0x5a, 0xbe, 0xfa, 0xb5, 0x8a, 0xaa, 0xfe, 0xd5,
+ 0x3b, 0xbe, 0xf9, 0xb5, 0xba, 0xe2, 0xee, 0xdf, 0x3b, 0xbe, 0xf9, 0xb5, 0xfe, 0xf7, 0xfb, 0xf7, 0x1a, 0xbe, 0xf9, 0xb5, 0xde, 0xff, 0xdb, 0xef, 0x1a, 0xbe, 0xd9, 0xad, 0xba, 0xfa, 0xea, 0xee,
+ 0xfa, 0xb5, 0xd9, 0xad, 0xb3, 0xb8, 0xaf, 0xbc, 0x1a, 0xb6, 0xda, 0xb5, 0xbe, 0xdf, 0xbf, 0xf8, 0x1b, 0xbe, 0xf9, 0xb5, 0x8b, 0xa5, 0x55, 0xd5, 0xd9, 0xbd, 0x1a, 0xb6, 0x9b, 0x5d, 0x7d, 0xff,
+ 0xf9, 0xbd, 0x1a, 0xb6, 0xa8, 0xef, 0x7a, 0x55, 0x1a, 0xbe, 0xf9, 0xb5, 0x7e, 0xee, 0xff, 0x77, 0x19, 0xbe, 0xda, 0xad, 0xff, 0xfa, 0xfa, 0xab, 0x3a, 0xbe, 0xf9, 0xad, 0xff, 0xff, 0xbf, 0x2f,
+ 0x3a, 0xbe, 0xd9, 0xb5, 0xfd, 0xaa, 0xea, 0xa2, 0x1b, 0xbe, 0xf9, 0xb5, 0xbb, 0xee, 0x8a, 0x88, 0x3a, 0xbe, 0xfa, 0xb5, 0xbf, 0xbe, 0xee, 0xab, 0x3b, 0xbe, 0x19, 0xb6, 0xfa, 0xf6, 0xeb, 0xea,
+ 0x3a, 0xbe, 0x19, 0xb6, 0xeb, 0x3d, 0xeb, 0xaf, 0x1a, 0xbe, 0x3b, 0xb6, 0x22, 0x82, 0x00, 0xaf, 0x3a, 0xbe, 0x1a, 0xb6, 0xfd, 0xae, 0xb2, 0x2f, 0x5b, 0xc6, 0x1a, 0xb6, 0xbf, 0xff, 0xff, 0xfb,
+ 0x7b, 0xc6, 0x1a, 0xb6, 0xb7, 0xff, 0xbf, 0x29, 0x7b, 0xc6, 0x39, 0xbe, 0x55, 0xf5, 0xfe, 0x02, 0x7b, 0xc6, 0x3a, 0xbe, 0xbd, 0xab, 0x2a, 0x00, 0x9b, 0xce, 0x5a, 0xc6, 0x55, 0x7f, 0xeb, 0x8b,
+ 0x9a, 0xce, 0x5b, 0xc6, 0xd5, 0xff, 0xaa, 0x2a, 0x9b, 0xce, 0x5a, 0xc6, 0xff, 0xab, 0xaa, 0x00, 0x9a, 0xce, 0x7b, 0xc6, 0xf7, 0xef, 0xbb, 0xaa, 0x7a, 0xce, 0x9b, 0xc6, 0x00, 0xab, 0xfa, 0xfb,
+ 0x7a, 0xce, 0x9b, 0xc6, 0x0a, 0xab, 0xaf, 0xaa, 0x5a, 0xce, 0x7b, 0xc6, 0xbe, 0xff, 0xbd, 0xd7, 0x5b, 0xce, 0x9a, 0xc6, 0xaa, 0xee, 0xbe, 0xbe, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xae, 0xaa,
+ 0x7b, 0xce, 0x9a, 0xc6, 0xf8, 0x82, 0xe8, 0x8a, 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xaa, 0xab, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xe0, 0xfa, 0x00, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0x02, 0xe0, 0xb0, 0x22,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xea, 0xfb, 0xea, 0x7b, 0x7b, 0xce, 0x9a, 0xc6, 0xf8, 0xbf, 0xab, 0x00, 0x5a, 0xce, 0x9b, 0xc6, 0xb5, 0xaf, 0xeb, 0xfe, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xba, 0xfb, 0x67,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x2a, 0xaa, 0xff, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xa2, 0xba, 0xef, 0xf7, 0x7b, 0xce, 0x9a, 0xc6, 0xab, 0x82, 0xa8, 0xeb, 0x7b, 0xce, 0x9a, 0xc6, 0xa2, 0xbe, 0x2a, 0x98,
+ 0x7b, 0xce, 0x7a, 0xc6, 0xe2, 0xea, 0xff, 0xfe, 0x5a, 0xce, 0x9b, 0xc6, 0xda, 0xaa, 0xab, 0xaa, 0x7b, 0xce, 0x7a, 0xc6, 0xfa, 0xfa, 0x7e, 0x55, 0x5a, 0xce, 0x7b, 0xc6, 0x75, 0xbf, 0x57, 0xa5,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xbb, 0xef, 0xff, 0xff, 0x5b, 0xce, 0x7a, 0xc6, 0xfb, 0x7f, 0x57, 0x7a, 0x7a, 0xc6, 0x5b, 0xc6, 0xfa, 0xf0, 0x8a, 0x8c, 0x7b, 0xce, 0x5a, 0xbe, 0x8a, 0xae, 0xea, 0xfb,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xfe, 0xf5, 0x55, 0x75, 0x7b, 0xce, 0x5a, 0xbe, 0xba, 0xae, 0xaf, 0xbf, 0x7b, 0xc6, 0x5a, 0xbe, 0xa8, 0x23, 0xa3, 0x2b, 0x7b, 0xce, 0x5a, 0xbe, 0xfb, 0xee, 0xff, 0xaa,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xba, 0x2a, 0x80, 0xaa, 0x7b, 0xc6, 0x5a, 0xc6, 0x1f, 0x7f, 0x02, 0x23, 0x7b, 0xc6, 0x5a, 0xc6, 0x7d, 0xa9, 0x0a, 0x3c, 0x7b, 0xce, 0x5a, 0xbe, 0xfa, 0xfa, 0xee, 0xeb,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0x37, 0xbf, 0x3f, 0xdf, 0x7b, 0xc6, 0x5a, 0xc6, 0xef, 0xa8, 0x00, 0xf0, 0x7b, 0xc6, 0x5a, 0xc6, 0xe7, 0x7f, 0x38, 0x2e, 0x7a, 0xc6, 0x5b, 0xc6, 0xe2, 0xe0, 0x38, 0x8a,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0x22, 0xab, 0x88, 0xa6, 0x7a, 0xc6, 0x5b, 0xbe, 0xba, 0xbb, 0x28, 0xa2, 0x7b, 0xc6, 0x5a, 0xbe, 0x0a, 0x0a, 0x08, 0x00, 0x9b, 0xc6, 0x5a, 0xc6, 0xeb, 0x7f, 0xbe, 0xaa,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xff, 0xff, 0xea, 0xfe, 0x9b, 0xce, 0x5a, 0xc6, 0xf7, 0xff, 0xfa, 0xfe, 0x5a, 0xce, 0x9b, 0xc6, 0xfa, 0xab, 0xeb, 0xbf, 0x7a, 0xce, 0x9b, 0xc6, 0xbe, 0x0a, 0xab, 0xea,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xc8, 0xfe, 0xab, 0x7a, 0xce, 0x9b, 0xc6, 0x82, 0xaa, 0xfa, 0xbe, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xbf, 0x2b, 0x2a, 0x5a, 0xce, 0x9b, 0xc6, 0xea, 0xfb, 0xbe, 0xfe,
+ 0x7a, 0xce, 0x9b, 0xc6, 0x0a, 0xef, 0xba, 0x7a, 0x7a, 0xce, 0x9b, 0xc6, 0xaa, 0xeb, 0xae, 0xf2, 0x9b, 0xce, 0x7a, 0xc6, 0xeb, 0xaf, 0xea, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xee, 0xaf, 0xaa, 0x2a,
+ 0x7b, 0xce, 0x9b, 0xc6, 0x2a, 0x2a, 0xbf, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0xa0, 0xa8, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xbe, 0xbf, 0xfb, 0x9b, 0xd6, 0x7a, 0xc6, 0xea, 0xff, 0xff, 0xff,
+ 0x9b, 0xd6, 0x7a, 0xc6, 0xbf, 0xef, 0xff, 0xbf, 0x9b, 0xce, 0x7a, 0xce, 0x3a, 0x3e, 0x28, 0xc2, 0xbb, 0xce, 0x7a, 0xce, 0xff, 0xea, 0xfa, 0xee, 0xbc, 0xd6, 0x7a, 0xc6, 0xeb, 0xaf, 0xaf, 0xfe,
+ 0xbb, 0xd6, 0x7b, 0xce, 0xaf, 0xbf, 0xff, 0xfb, 0xbc, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xff, 0xf5, 0xbc, 0xd6, 0x9a, 0xce, 0xbf, 0xff, 0xbf, 0x7b, 0x9b, 0xd6, 0xbb, 0xce, 0xaf, 0xab, 0xba, 0x2f,
+ 0x9b, 0xd6, 0xbb, 0xce, 0xaa, 0xbf, 0xfa, 0xb6, 0x9b, 0xd6, 0xbb, 0xce, 0xaf, 0xea, 0xaf, 0x76, 0x9b, 0xd6, 0xbb, 0xce, 0xfe, 0xbe, 0xde, 0xdf, 0x9b, 0xd6, 0xbb, 0xce, 0xaf, 0xff, 0xe7, 0xab,
+ 0xbc, 0xd6, 0x9b, 0xd6, 0x8e, 0xaa, 0xa0, 0x02, 0xdc, 0xde, 0xbb, 0xce, 0xff, 0xff, 0xff, 0xaf, 0xbc, 0xde, 0xdb, 0xce, 0xfb, 0xaf, 0xae, 0xbf, 0xdc, 0xd6, 0xbb, 0xd6, 0xaf, 0xbf, 0x8a, 0xbd,
+ 0xdc, 0xde, 0xbb, 0xd6, 0x7f, 0xef, 0xbf, 0xdf, 0xdc, 0xde, 0xbb, 0xd6, 0xbf, 0xff, 0xfb, 0xff, 0xdc, 0xde, 0xbb, 0xd6, 0xfb, 0x3f, 0xff, 0xff, 0xdc, 0xde, 0xbb, 0xd6, 0xeb, 0xfb, 0xff, 0xff,
+ 0xbb, 0xde, 0xdc, 0xd6, 0x5b, 0xfa, 0xdf, 0xef, 0xdc, 0xde, 0xbb, 0xd6, 0xbe, 0xfb, 0xbf, 0xff, 0xdc, 0xd6, 0xbb, 0xd6, 0x22, 0xab, 0x0a, 0x2f, 0xdc, 0xde, 0xbb, 0xd6, 0x7f, 0xfa, 0xff, 0xff,
+ 0xb9, 0xb5, 0xda, 0xad, 0x5f, 0xb5, 0xd5, 0xe7, 0xfa, 0xb5, 0xb9, 0xad, 0xab, 0xaa, 0xbb, 0xff, 0xfa, 0xb5, 0xd9, 0xa5, 0x2b, 0xab, 0xbe, 0xab, 0xfa, 0xb5, 0xb9, 0xad, 0xca, 0xea, 0xfe, 0xf7,
+ 0xda, 0xb5, 0xb8, 0xa5, 0x22, 0xab, 0xfa, 0xef, 0xda, 0xb5, 0xb9, 0xad, 0xa0, 0xba, 0xff, 0xd5, 0xfa, 0xad, 0xb9, 0xad, 0xef, 0xad, 0xb7, 0x7b, 0xda, 0xb5, 0xb9, 0xad, 0xaa, 0xba, 0x9f, 0xab,
+ 0xfa, 0xb5, 0xd9, 0xad, 0xb5, 0x55, 0xf5, 0xef, 0xfa, 0xb5, 0xd9, 0xad, 0x7d, 0xf5, 0xff, 0x2e, 0xfa, 0xb5, 0xd9, 0xad, 0xab, 0xfe, 0xbb, 0x80, 0x1a, 0xbe, 0xf9, 0xb5, 0xd5, 0x95, 0x8f, 0x0a,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xf5, 0xab, 0xaa, 0xea, 0x3a, 0xbe, 0x19, 0xb6, 0xaf, 0xab, 0xd5, 0x55, 0x3a, 0xbe, 0xf9, 0xb5, 0xb8, 0xfe, 0x7b, 0xd5, 0x1a, 0xbe, 0xf9, 0xb5, 0xb8, 0xab, 0x3f, 0xd7,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xcb, 0xff, 0xd5, 0x55, 0x1a, 0xbe, 0xd9, 0xb5, 0xa0, 0xfa, 0x7f, 0xff, 0xfa, 0xb5, 0xd9, 0xad, 0x08, 0x28, 0xbe, 0xff, 0xfa, 0xb5, 0xb9, 0xad, 0x00, 0x88, 0xea, 0xa9,
+ 0xfa, 0xb5, 0xd9, 0xad, 0x20, 0xaf, 0x77, 0xfd, 0xfa, 0xb5, 0xd9, 0xad, 0x20, 0xcf, 0xd5, 0xff, 0x1a, 0xb6, 0xd9, 0xad, 0x20, 0xea, 0xed, 0xff, 0xf9, 0xb5, 0xda, 0xad, 0x80, 0x8b, 0xaa, 0x8a,
+ 0x1a, 0xb6, 0xd9, 0xad, 0xbf, 0xbf, 0xbf, 0x2a, 0x1a, 0xb6, 0xd9, 0xad, 0x8b, 0x89, 0xaf, 0x00, 0x19, 0xbe, 0xfa, 0xad, 0xfe, 0xbf, 0xba, 0xaa, 0x1a, 0xbe, 0xf9, 0xb5, 0xf7, 0xfe, 0xdf, 0xbe,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xdf, 0x7f, 0xd7, 0xeb, 0x3a, 0xbe, 0xf9, 0xb5, 0xd5, 0xf7, 0xaf, 0x00, 0x3b, 0xbe, 0x19, 0xb6, 0xdd, 0x0a, 0x82, 0xea, 0x3a, 0xbe, 0x19, 0xb6, 0xff, 0x2e, 0xff, 0x5a,
+ 0x3a, 0xbe, 0xf9, 0xb5, 0xa2, 0xaa, 0xe7, 0xba, 0x3a, 0xbe, 0x1a, 0xb6, 0xff, 0x55, 0x5f, 0xab, 0x3a, 0xbe, 0xfa, 0xb5, 0xee, 0xae, 0xaa, 0x8a, 0x5a, 0xbe, 0xf9, 0xb5, 0xfd, 0xff, 0xab, 0x0a,
+ 0x7b, 0xbe, 0x19, 0xb6, 0xf5, 0x7f, 0xfd, 0x0a, 0x7b, 0xc6, 0x19, 0xbe, 0xd7, 0xff, 0xaa, 0x02, 0x7b, 0xc6, 0x19, 0xbe, 0xd5, 0xff, 0x2a, 0x2a, 0x9b, 0xce, 0x39, 0xbe, 0xf5, 0xaf, 0xab, 0x82,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xfd, 0xff, 0xae, 0xba, 0x9b, 0xce, 0x7a, 0xc6, 0x55, 0xff, 0xaf, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0xaf, 0xab, 0xae, 0xfa, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xaa, 0xeb,
+ 0x9a, 0xce, 0x7b, 0xc6, 0xa8, 0xaa, 0xaa, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xfa, 0xff, 0x6e, 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xaa, 0xfa, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xeb, 0xfa, 0xeb,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xfa, 0xef, 0xbb, 0x7b, 0xce, 0x5a, 0xc6, 0xba, 0xde, 0xf7, 0xb5, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xae, 0xaa, 0xfe, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0x7d, 0xd5,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xaf, 0xfb, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xea, 0xbf, 0xbf, 0x7b, 0xce, 0x5a, 0xc6, 0x2a, 0x2e, 0xbd, 0xd5, 0x7b, 0xce, 0x5a, 0xc6, 0x22, 0xaa, 0xab, 0xbd,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xaa, 0xae, 0xfb, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0x2a, 0xaa, 0xea, 0xaf, 0x9b, 0xce, 0x7a, 0xc6, 0x7f, 0x5f, 0xdd, 0xf7, 0x9b, 0xce, 0x5a, 0xc6, 0xae, 0xaf, 0xfb, 0xee,
+ 0x7b, 0xce, 0x5a, 0xc6, 0x2a, 0xa0, 0xaa, 0xaa, 0x9b, 0xce, 0x7a, 0xc6, 0xfd, 0xd5, 0xde, 0xd5, 0x5a, 0xce, 0x9b, 0xc6, 0xfa, 0xaf, 0xff, 0xaf, 0x7b, 0xce, 0x5a, 0xc6, 0xa0, 0xaa, 0xfb, 0xff,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0xfc, 0x0a, 0x80, 0xff, 0x7b, 0xc6, 0x5a, 0xc6, 0xeb, 0x0c, 0x8d, 0xa3, 0x7b, 0xc6, 0x5a, 0xbe, 0x22, 0xb0, 0xae, 0xef, 0x7a, 0xc6, 0x5b, 0xbe, 0x8a, 0xaa, 0xf2, 0xfd,
+ 0x7a, 0xc6, 0x3b, 0xbe, 0xf8, 0x88, 0x9f, 0xff, 0x7b, 0xc6, 0x1a, 0xbe, 0xa2, 0xaa, 0xeb, 0xfa, 0x7b, 0xc6, 0x3a, 0xbe, 0x22, 0xbb, 0xbf, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0x29, 0x5f, 0xd7,
+ 0x7a, 0xc6, 0x5b, 0xbe, 0xfa, 0xfb, 0xeb, 0xbd, 0x7b, 0xc6, 0x3a, 0xbe, 0xaa, 0xea, 0xa3, 0xee, 0x7b, 0xc6, 0x3a, 0xbe, 0x0a, 0xab, 0xed, 0xff, 0x7b, 0xc6, 0x5a, 0xbe, 0x80, 0x2b, 0xa5, 0xeb,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0x00, 0x20, 0x82, 0x0b, 0x7b, 0xce, 0x5a, 0xc6, 0xee, 0xdf, 0xff, 0x75, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xab, 0xfa, 0xbf, 0x7b, 0xc6, 0x5a, 0xbe, 0x2a, 0x20, 0x30, 0xaa,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0xa0, 0xba, 0xea, 0x7b, 0xce, 0x5a, 0xbe, 0xfe, 0xae, 0xff, 0xff, 0x7b, 0xce, 0x5a, 0xbe, 0xae, 0xba, 0xfb, 0xaf, 0x7a, 0xc6, 0x5b, 0xbe, 0xa2, 0xab, 0xfe, 0xea,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xab, 0xaa, 0xee, 0x02, 0x7b, 0xc6, 0x5a, 0xbe, 0xaa, 0x28, 0x88, 0x88, 0x7b, 0xc6, 0x5a, 0xc6, 0x03, 0x02, 0x83, 0xc2, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xab, 0xbf, 0xff,
+ 0x5a, 0xce, 0x7b, 0xc6, 0xd5, 0x57, 0x55, 0xf6, 0x7b, 0xce, 0x5a, 0xc6, 0xee, 0xea, 0xea, 0xab, 0x7b, 0xce, 0x7a, 0xc6, 0xaf, 0xdf, 0x55, 0x7f, 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0xea, 0xfa, 0xeb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfd, 0xf7, 0xf5, 0x75, 0x5a, 0xce, 0x9b, 0xc6, 0xeb, 0xff, 0xff, 0xee, 0x7b, 0xce, 0x5a, 0xc6, 0x2a, 0xb8, 0x8c, 0x2a, 0x7a, 0xce, 0x9b, 0xc6, 0xa0, 0xa8, 0xfb, 0x3a,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xe7, 0xaa, 0xaa, 0xf0, 0x7a, 0xce, 0x9b, 0xc6, 0xaf, 0xaa, 0xea, 0xff, 0x9b, 0xce, 0x7a, 0xce, 0x7f, 0xaf, 0xef, 0xfe, 0x7b, 0xce, 0x9b, 0xc6, 0xa8, 0xfa, 0xba, 0x2a,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xaa, 0xee, 0xff, 0xff, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xaa, 0xfa, 0xa0, 0x9b, 0xce, 0x7a, 0xc6, 0xba, 0xff, 0xef, 0xbf, 0x9b, 0xce, 0x7a, 0xc6, 0xff, 0xfb, 0xeb, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xe2, 0xab, 0xaa, 0x80, 0xbb, 0xce, 0x7a, 0xce, 0xbb, 0xbf, 0xbf, 0xef, 0xbc, 0xce, 0x7a, 0xce, 0xba, 0xaf, 0xfe, 0xff, 0x7c, 0xd6, 0x9a, 0xc6, 0xaf, 0xfb, 0xff, 0xff,
+ 0x9c, 0xd6, 0x7a, 0xce, 0xbf, 0xfa, 0xff, 0xfb, 0x9b, 0xd6, 0x9a, 0xc6, 0xab, 0xab, 0xba, 0xab, 0xbb, 0xce, 0x7a, 0xce, 0xbf, 0xaa, 0xfa, 0xea, 0xbb, 0xd6, 0x7b, 0xce, 0xfb, 0xff, 0xbf, 0xff,
+ 0xbb, 0xd6, 0x9a, 0xce, 0xed, 0xff, 0xf7, 0xfd, 0xbc, 0xd6, 0x9a, 0xce, 0xab, 0xae, 0xee, 0xef, 0x9c, 0xd6, 0xba, 0xce, 0xbf, 0xff, 0xff, 0xff, 0xbc, 0xd6, 0x9a, 0xce, 0xaa, 0x2a, 0xaa, 0xa0,
+ 0xbc, 0xd6, 0x9b, 0xce, 0x02, 0x28, 0x20, 0xb0, 0xbc, 0xde, 0xbb, 0xce, 0xfe, 0xff, 0xab, 0xff, 0xdc, 0xd6, 0xbb, 0xd6, 0x56, 0x75, 0x55, 0x55, 0xdc, 0xde, 0xbb, 0xce, 0xbf, 0xff, 0xef, 0xbf,
+ 0xdc, 0xd6, 0xbb, 0xd6, 0x9d, 0xae, 0xaa, 0xba, 0xdc, 0xd6, 0xbb, 0xd6, 0xaa, 0xa8, 0xe8, 0x7a, 0xdc, 0xde, 0xbb, 0xd6, 0xff, 0xff, 0xf7, 0xdb, 0xdc, 0xde, 0xbb, 0xd6, 0xbd, 0xfb, 0x7f, 0xdd,
+ 0xdc, 0xde, 0xbb, 0xd6, 0xff, 0xf5, 0xff, 0xf5, 0xdc, 0xd6, 0xbb, 0xd6, 0xeb, 0xa5, 0xbb, 0xd6, 0xfc, 0xd6, 0xbb, 0xd6, 0xbf, 0xff, 0xbf, 0xff, 0xdc, 0xde, 0xbb, 0xd6, 0xdf, 0x7f, 0xef, 0x9f,
+ 0xda, 0xb5, 0xb8, 0xa5, 0xaa, 0xea, 0xbb, 0xbf, 0xda, 0xb5, 0xb9, 0xa5, 0xbe, 0x8b, 0xab, 0xab, 0xfa, 0xb5, 0xb8, 0xa5, 0xfa, 0xfb, 0xbf, 0xff, 0x98, 0xad, 0xd9, 0xa5, 0xf5, 0xf7, 0xae, 0x2f,
+ 0xd9, 0xb5, 0xb9, 0xa5, 0xf7, 0xaf, 0xaf, 0xba, 0xda, 0xb5, 0xb9, 0xad, 0xd7, 0xf7, 0xaa, 0x22, 0xfa, 0xb5, 0xb8, 0xad, 0xf7, 0xeb, 0xa3, 0x03, 0x1a, 0xbe, 0xd9, 0xad, 0xdf, 0xad, 0xae, 0xfb,
+ 0x1a, 0xbe, 0xd9, 0xad, 0xfb, 0xfa, 0xfa, 0xff, 0xfa, 0xb5, 0xd9, 0xad, 0xa8, 0x82, 0xea, 0xfa, 0x1a, 0xb6, 0xd9, 0xad, 0x2a, 0xba, 0xff, 0xff, 0x1a, 0xbe, 0xd9, 0xad, 0x0a, 0xbf, 0xdf, 0xfd,
+ 0x1a, 0xbe, 0xd9, 0xad, 0xaa, 0xea, 0xef, 0xe7, 0xfa, 0xb5, 0xd9, 0xad, 0x00, 0x2c, 0x00, 0xad, 0xfa, 0xbd, 0xd9, 0xad, 0xef, 0xfa, 0xeb, 0xff, 0xfa, 0xb5, 0xd9, 0xb5, 0x8d, 0x8c, 0x33, 0x21,
+ 0x1a, 0xb6, 0xd9, 0xb5, 0xb3, 0xae, 0xea, 0xff, 0xfa, 0xb5, 0xd9, 0xad, 0xee, 0xee, 0x22, 0x88, 0xfa, 0xb5, 0xb9, 0xad, 0xab, 0x22, 0x2a, 0xa8, 0xfa, 0xb5, 0xb9, 0xad, 0xee, 0xaa, 0x08, 0x00,
+ 0x1a, 0xb6, 0xd9, 0xad, 0xff, 0xfa, 0x0a, 0xa0, 0x1a, 0xbe, 0xb9, 0xad, 0xff, 0xff, 0xaa, 0x8a, 0x1a, 0xbe, 0xd9, 0xad, 0xff, 0xbf, 0xaa, 0x2a, 0x1a, 0xbe, 0xd9, 0xb5, 0xbd, 0xaf, 0x02, 0x00,
+ 0x1a, 0xbe, 0xf9, 0xb5, 0xf7, 0x02, 0x28, 0x38, 0x3a, 0xbe, 0xf9, 0xb5, 0xff, 0x6f, 0xaa, 0xae, 0xf9, 0xbd, 0x3a, 0xb6, 0xbf, 0xfe, 0xbe, 0xba, 0x3a, 0xbe, 0xf9, 0xb5, 0xbf, 0xaf, 0xa8, 0xae,
+ 0x3a, 0xbe, 0x19, 0xb6, 0x8b, 0x2a, 0xca, 0x02, 0x5a, 0xc6, 0x19, 0xb6, 0xef, 0xeb, 0xab, 0xae, 0x5b, 0xc6, 0x19, 0xb6, 0xbf, 0xee, 0xef, 0xac, 0x5a, 0xc6, 0x19, 0xb6, 0xdf, 0xbb, 0xaf, 0xaa,
+ 0x5b, 0xc6, 0x39, 0xbe, 0x55, 0xd5, 0x0b, 0x22, 0x7b, 0xc6, 0x3a, 0xbe, 0x55, 0xaf, 0x8b, 0x23, 0x9b, 0xce, 0x3a, 0xbe, 0x55, 0xff, 0xaa, 0xa2, 0x7b, 0xc6, 0x59, 0xbe, 0xf9, 0x0a, 0x00, 0x02,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xbf, 0xaa, 0xae, 0xaa, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xab, 0xae, 0x9b, 0xce, 0x5a, 0xc6, 0xff, 0xbb, 0xff, 0x7f, 0x7b, 0xce, 0x5a, 0xc6, 0x82, 0x7a, 0xbd, 0xab,
+ 0x7a, 0xce, 0x9b, 0xc6, 0xea, 0xaf, 0xa0, 0x02, 0x7a, 0xce, 0x9b, 0xc6, 0x8f, 0xaa, 0xaa, 0x00, 0x7a, 0xce, 0x9b, 0xc6, 0xeb, 0xfe, 0x0a, 0xa8, 0x5a, 0xce, 0x9b, 0xc6, 0xaf, 0xbf, 0xfe, 0xea,
+ 0x7b, 0xce, 0x5a, 0xc6, 0xaa, 0x2c, 0xa0, 0xe8, 0x9b, 0xce, 0x5a, 0xc6, 0xea, 0xfe, 0xfa, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xbe, 0xfa, 0xeb, 0xa5, 0x7b, 0xce, 0x5a, 0xc6, 0xaf, 0xae, 0xfe, 0xe7,
+ 0x7b, 0xc6, 0x5a, 0xc6, 0x0a, 0x38, 0x20, 0xbb, 0x7b, 0xc6, 0x5a, 0xc6, 0xfe, 0x03, 0xb8, 0x2d, 0x9b, 0xc6, 0x5a, 0xc6, 0x7b, 0x7e, 0xeb, 0x7f, 0x5b, 0xc6, 0x3a, 0xbe, 0x28, 0x08, 0x80, 0xe0,
+ 0x7b, 0xc6, 0x59, 0xbe, 0xea, 0xef, 0xfe, 0x77, 0x5b, 0xc6, 0x39, 0xbe, 0xa0, 0xba, 0x9b, 0xff, 0x3a, 0xc6, 0x7b, 0xbe, 0xff, 0xfb, 0xbf, 0xea, 0x7b, 0xc6, 0x3a, 0xbe, 0x8a, 0xaf, 0xee, 0x7f,
+ 0x7b, 0xc6, 0x3a, 0xbe, 0xa8, 0xaa, 0xae, 0xd5, 0x7b, 0xce, 0x3a, 0xbe, 0xaa, 0xaa, 0xff, 0xff, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaf, 0xbf, 0xff, 0x7a, 0xce, 0x3b, 0xbe, 0x2a, 0xaa, 0xea, 0xfa,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaa, 0xba, 0xff, 0x7a, 0xce, 0x5b, 0xbe, 0xaa, 0xbb, 0xeb, 0xbf, 0x7a, 0xc6, 0x3b, 0xbe, 0x88, 0x88, 0xaa, 0xab, 0x7b, 0xce, 0x5a, 0xbe, 0xaa, 0xaf, 0xab, 0xef,
+ 0x7b, 0xc6, 0x5a, 0xbe, 0xa0, 0x8f, 0xaf, 0xae, 0x3a, 0xc6, 0x7b, 0xbe, 0xa2, 0xef, 0xfa, 0xba, 0x5a, 0xc6, 0x3b, 0xbe, 0x8a, 0xbf, 0xbe, 0xba, 0x3a, 0xc6, 0x5b, 0xbe, 0xea, 0x77, 0x7f, 0xff,
+ 0x7b, 0xc6, 0x1a, 0xbe, 0xfe, 0xee, 0xaf, 0x1b, 0x5b, 0xc6, 0x3a, 0xbe, 0xff, 0xf7, 0xfb, 0x77, 0x5b, 0xc6, 0x1a, 0xbe, 0xcb, 0xba, 0xa6, 0xfb, 0x5b, 0xc6, 0x1a, 0xbe, 0xbe, 0x2b, 0xaa, 0xee,
+ 0x5b, 0xc6, 0x1a, 0xbe, 0x28, 0xaa, 0xfb, 0xff, 0x5b, 0xc6, 0x3a, 0xb6, 0xaa, 0xaa, 0xbb, 0xfb, 0x7b, 0xc6, 0x3a, 0xbe, 0xe8, 0xbf, 0xff, 0xe7, 0x5b, 0xc6, 0x3a, 0xbe, 0xa8, 0xaa, 0xea, 0xe6,
+ 0x3a, 0xc6, 0x5b, 0xbe, 0xde, 0xea, 0xaa, 0xde, 0x3a, 0xc6, 0x9b, 0xbe, 0x6a, 0xaa, 0xaa, 0xaa, 0x3a, 0xc6, 0x7b, 0xbe, 0xa9, 0xaf, 0xfe, 0x88, 0x5b, 0xc6, 0x3a, 0xbe, 0x00, 0xc8, 0x80, 0xea,
+ 0x3b, 0xc6, 0x7a, 0xbe, 0xfb, 0xaa, 0xef, 0xfe, 0x7b, 0xc6, 0x3a, 0xbe, 0x8a, 0xaf, 0xbe, 0xfe, 0x7b, 0xce, 0x5a, 0xbe, 0xaf, 0xff, 0xff, 0xff, 0x7b, 0xc6, 0x3a, 0xbe, 0xa2, 0x2a, 0xba, 0xa8,
+ 0x7b, 0xce, 0x5a, 0xbe, 0xbb, 0xff, 0xff, 0xfb, 0x7b, 0xc6, 0x5a, 0xbe, 0xa2, 0xb9, 0xbf, 0xf6, 0x7b, 0xce, 0x5a, 0xbe, 0xbf, 0xab, 0xba, 0xab, 0x7b, 0xc6, 0x5a, 0xc6, 0x35, 0x2a, 0x82, 0xad,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xef, 0x7f, 0xf7, 0x7d, 0x5b, 0xce, 0x9a, 0xc6, 0xaf, 0x9e, 0xaf, 0xff, 0x7b, 0xce, 0x5a, 0xc6, 0xeb, 0xbe, 0xab, 0xee, 0x9b, 0xc6, 0x7a, 0xc6, 0xe5, 0xfd, 0xff, 0x75,
+ 0x9b, 0xce, 0x5a, 0xc6, 0xef, 0xbb, 0xef, 0xef, 0x7a, 0xce, 0x9b, 0xc6, 0xe8, 0x2a, 0xcb, 0xba, 0x7a, 0xce, 0x9b, 0xc6, 0xab, 0xbe, 0xbe, 0x56, 0x9c, 0xce, 0x7a, 0xc6, 0xbf, 0xf7, 0xff, 0xbb,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfa, 0xff, 0x7f, 0xff, 0x7b, 0xce, 0x9a, 0xc6, 0xa2, 0x0a, 0xaa, 0xff, 0x9b, 0xce, 0x7a, 0xc6, 0xca, 0xfe, 0x5f, 0x7b, 0x9b, 0xce, 0x7a, 0xc6, 0xfe, 0xf5, 0xff, 0xff,
+ 0x9b, 0xce, 0x7a, 0xc6, 0xfe, 0xf6, 0xff, 0x5f, 0x7a, 0xce, 0x9b, 0xc6, 0x8a, 0xaa, 0xaf, 0xf8, 0x9b, 0xce, 0x7a, 0xc6, 0xab, 0xaa, 0xae, 0xab, 0x9c, 0xce, 0x7a, 0xc6, 0x2a, 0xaa, 0xaa, 0xaa,
+ 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0x02, 0xaa, 0xab, 0x9b, 0xce, 0x7a, 0xc6, 0x22, 0xea, 0xae, 0xb2, 0x9b, 0xce, 0x7b, 0xce, 0x03, 0xaa, 0x7a, 0xe3, 0x9c, 0xd6, 0x7a, 0xce, 0xeb, 0xff, 0xff, 0xdd,
+ 0x9b, 0xce, 0x7b, 0xce, 0x38, 0x82, 0x0b, 0x07, 0xbb, 0xce, 0x7a, 0xce, 0xfe, 0xff, 0xaa, 0xff, 0x9c, 0xd6, 0x7a, 0xc6, 0xba, 0xaa, 0xaa, 0x3a, 0xba, 0xce, 0x9b, 0xce, 0x15, 0x5f, 0x55, 0x55,
+ 0xbc, 0xd6, 0x9b, 0xce, 0xb7, 0xf7, 0x7d, 0xd5, 0xbb, 0xd6, 0x9a, 0xce, 0xb9, 0xfe, 0xff, 0xff, 0xbb, 0xd6, 0x9b, 0xce, 0xaa, 0xab, 0xaa, 0xaa, 0xbc, 0xd6, 0x9b, 0xce, 0xea, 0xca, 0xaa, 0xaa,
+ 0x9a, 0xd6, 0xbc, 0xce, 0xaf, 0x7f, 0xfb, 0xab, 0xbc, 0xd6, 0x9b, 0xce, 0xa8, 0xaa, 0x2a, 0xaa, 0xdc, 0xd6, 0xbb, 0xd6, 0xd5, 0xdb, 0x79, 0x75, 0xdc, 0xd6, 0xbb, 0xd6, 0xd5, 0xef, 0x56, 0x5a,
+ 0xdc, 0xd6, 0xbb, 0xd6, 0x69, 0xeb, 0xdd, 0x55, 0xdc, 0xd6, 0xbb, 0xce, 0xaa, 0xaa, 0xba, 0xbe, 0xdc, 0xd6, 0xbb, 0xd6, 0xad, 0x5e, 0x57, 0xf5, 0xdc, 0xd6, 0xbb, 0xd6, 0xea, 0xbf, 0xfd, 0x77,
+ 0xdc, 0xde, 0xbb, 0xce, 0xee, 0xfb, 0xef, 0xeb, 0xdc, 0xde, 0xbb, 0xce, 0xea, 0xae, 0xfb, 0xee, 0xdc, 0xde, 0xbb, 0xce, 0xaa, 0xaf, 0xef, 0xef, 0xdc, 0xd6, 0xbb, 0xd6, 0x6b, 0xba, 0x6a, 0xe3,
+};
diff --git a/progs/tests/texcompsub.c b/progs/tests/texcompsub.c
new file mode 100644
index 0000000000..50106bf1e2
--- /dev/null
+++ b/progs/tests/texcompsub.c
@@ -0,0 +1,181 @@
+/*
+ * Test texture compression.
+ */
+
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <GL/glew.h>
+#include <GL/glut.h>
+
+#include "texcomp_image.h"
+
+static int ImgWidth = 512;
+static int ImgHeight = 512;
+static GLenum CompFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
+static GLfloat EyeDist = 5.0;
+static GLfloat Rot = 0.0;
+const GLenum Target = GL_TEXTURE_2D;
+
+
+static void
+CheckError(int line)
+{
+ GLenum err = glGetError();
+ if (err) {
+ printf("GL Error %d at line %d\n", (int) err, line);
+ }
+}
+
+static void
+LoadCompressedImage(void)
+{
+ unsigned char ImgDataTemp[ImgSize / 4];
+ unsigned i;
+ const GLenum filter = GL_LINEAR;
+ glTexImage2D(Target, 0, CompFormat, ImgWidth, ImgHeight, 0,
+ GL_RGB, GL_UNSIGNED_BYTE, NULL);
+
+ /* bottom half */
+ glCompressedTexSubImage2DARB(Target, 0,
+ 0, 0, /* pos */
+ ImgWidth, ImgHeight / 2,
+ CompFormat, ImgSize / 2, ImgData + ImgSize / 2);
+
+ /* top left */
+ for (i = 0; i < ImgHeight / 8; i++) {
+ memcpy(&ImgDataTemp[i * ImgWidth], &ImgData[i * 2 * ImgWidth], ImgWidth);
+ }
+ glCompressedTexSubImage2DARB(Target, 0,
+ 0, ImgHeight / 2, /* pos */
+ ImgWidth / 2, ImgHeight / 2,
+ CompFormat, ImgSize / 4, ImgDataTemp);
+
+ /* top right */
+ for (i = 0; i < ImgHeight / 8; i++) {
+ memcpy(&ImgDataTemp[i * ImgWidth], &ImgData[i * 2 * ImgWidth + ImgWidth], ImgWidth);
+ }
+ glCompressedTexSubImage2DARB(Target, 0,
+ ImgWidth / 2, ImgHeight / 2, /* pos */
+ ImgWidth / 2, ImgHeight / 2,
+ CompFormat, ImgSize / 4, ImgDataTemp);
+
+ glTexParameteri(Target, GL_TEXTURE_MIN_FILTER, filter);
+ glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, filter);
+}
+
+static void
+Init()
+{
+ GLint numFormats, formats[100];
+ GLint p;
+
+ if (!glutExtensionSupported("GL_ARB_texture_compression")) {
+ printf("Sorry, GL_ARB_texture_compression is required.\n");
+ exit(1);
+ }
+ if (!glutExtensionSupported("GL_EXT_texture_compression_s3tc")) {
+ printf("Sorry, GL_EXT_texture_compression_s3tc is required.\n");
+ exit(1);
+ }
+
+ printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+
+ glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, &numFormats);
+ glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, formats);
+ printf("%d supported compression formats: ", numFormats);
+ for (p = 0; p < numFormats; p++)
+ printf("0x%x ", formats[p]);
+ printf("\n");
+
+ glEnable(GL_TEXTURE_2D);
+
+ LoadCompressedImage();
+}
+
+
+static void
+Reshape( int width, int height )
+{
+ glViewport( 0, 0, width, height );
+ glMatrixMode( GL_PROJECTION );
+ glLoadIdentity();
+ glFrustum(-1, 1, -1, 1, 4, 100);
+ glMatrixMode( GL_MODELVIEW );
+ glLoadIdentity();
+}
+
+
+static void
+Key( unsigned char key, int x, int y )
+{
+ (void) x;
+ (void) y;
+ switch (key) {
+ case 'd':
+ EyeDist -= 1.0;
+ if (EyeDist < 4.0)
+ EyeDist = 4.0;
+ break;
+ case 'D':
+ EyeDist += 1.0;
+ break;
+ case 'z':
+ Rot += 5.0;
+ break;
+ case 'Z':
+ Rot -= 5.0;
+ break;
+ case 27:
+ exit(0);
+ break;
+ }
+ glutPostRedisplay();
+}
+
+
+static void
+Draw( void )
+{
+ glClearColor(0.3, 0.3, .8, 0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ CheckError(__LINE__);
+ glPushMatrix();
+ glTranslatef(0, 0, -(EyeDist+0.01));
+ glRotatef(Rot, 0, 0, 1);
+ glBegin(GL_POLYGON);
+ glTexCoord2f(0, 0); glVertex2f(-1, -1);
+ glTexCoord2f(1, 0); glVertex2f( 1, -1);
+ glTexCoord2f(1, 1); glVertex2f( 1, 1);
+ glTexCoord2f(0, 1); glVertex2f(-1, 1);
+ glEnd();
+ glPopMatrix();
+
+ glutSwapBuffers();
+}
+
+
+int
+main( int argc, char *argv[] )
+{
+ glutInit( &argc, argv );
+ glutInitWindowSize( 600, 600 );
+
+ glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE);
+
+ glutCreateWindow(argv[0]);
+ glewInit();
+
+ glutReshapeFunc( Reshape );
+ glutKeyboardFunc( Key );
+ glutDisplayFunc( Draw );
+
+ Init();
+
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/tests/texwrap.c b/progs/tests/texwrap.c
index 12f045b72e..92c8a2f14c 100644
--- a/progs/tests/texwrap.c
+++ b/progs/tests/texwrap.c
@@ -258,8 +258,26 @@ static void Init( void )
}
glBindTexture(GL_TEXTURE_2D, BORDER_TEXTURE);
+#ifdef TEST_PBO_DLIST
+ /* test fetching teximage from PBO in display list */
+ {
+ GLuint b = 42, l = 10;
+
+ glBindBufferARB(GL_PIXEL_UNPACK_BUFFER, b);
+ glBufferDataARB(GL_PIXEL_UNPACK_BUFFER, sizeof(BorderImage),
+ BorderImage, GL_STREAM_DRAW);
+
+ glNewList(l, GL_COMPILE);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE+2, SIZE+2, 1,
+ GL_RGBA, GL_UNSIGNED_BYTE, (void *) 0/* BorderImage*/);
+ glEndList();
+ glCallList(l);
+ glBindBufferARB(GL_PIXEL_UNPACK_BUFFER, 0);
+ }
+#else
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE+2, SIZE+2, 1,
GL_RGBA, GL_UNSIGNED_BYTE, (void *) BorderImage);
+#endif
for (i = 0; i < SIZE; i++) {
for (j = 0; j < SIZE; j++) {
diff --git a/progs/tests/tkmap.c b/progs/tests/tkmap.c
new file mode 100644
index 0000000000..3ded79caca
--- /dev/null
+++ b/progs/tests/tkmap.c
@@ -0,0 +1,71 @@
+
+enum {
+ COLOR_BLACK = 0,
+ COLOR_RED,
+ COLOR_GREEN,
+ COLOR_YELLOW,
+ COLOR_BLUE,
+ COLOR_MAGENTA,
+ COLOR_CYAN,
+ COLOR_WHITE
+};
+
+static float RGBMap[9][3] = {
+ {0, 0, 0},
+ {1, 0, 0},
+ {0, 1, 0},
+ {1, 1, 0},
+ {0, 0, 1},
+ {1, 0, 1},
+ {0, 1, 1},
+ {1, 1, 1},
+ {0.5, 0.5, 0.5}
+};
+
+static void SetColor(int c)
+{
+ if (glutGet(GLUT_WINDOW_RGBA))
+ glColor3fv(RGBMap[c]);
+ else
+ glIndexf(c);
+}
+
+static void InitMap(void)
+{
+ int i;
+
+ if (rgb)
+ return;
+
+ for (i = 0; i < 9; i++)
+ glutSetColor(i, RGBMap[i][0], RGBMap[i][1], RGBMap[i][2]);
+}
+
+static void SetFogRamp(int density, int startIndex)
+{
+ int fogValues, colorValues;
+ int i, j, k;
+ float intensity;
+
+ fogValues = 1 << density;
+ colorValues = 1 << startIndex;
+ for (i = 0; i < colorValues; i++) {
+ for (j = 0; j < fogValues; j++) {
+ k = i * fogValues + j;
+ intensity = (i * fogValues + j * colorValues) / 255.0;
+ glutSetColor(k, intensity, intensity, intensity);
+ }
+ }
+}
+
+static void SetGreyRamp(void)
+{
+ int i;
+ float intensity;
+
+ for (i = 0; i < 255; i++) {
+ intensity = i / 255.0;
+ glutSetColor(i, intensity, intensity, intensity);
+ }
+}
+
diff --git a/progs/tests/zreaddraw.c b/progs/tests/zreaddraw.c
index 3d8c557b37..2cbfeb6ff1 100644
--- a/progs/tests/zreaddraw.c
+++ b/progs/tests/zreaddraw.c
@@ -21,7 +21,7 @@ static void Display(void)
GLfloat min, max;
int i;
- glClearColor(0.5, 0.5, 0.5, 0);
+ glClearColor(0.5, 0.5, 0.5, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/* draw a sphere */
@@ -82,7 +82,7 @@ static void Key(unsigned char key, int x, int y)
static void Init(void)
{
- const GLfloat blue[4] = {.1, .1, 1.0, 0.0};
+ const GLfloat blue[4] = {.1, .1, 1.0, 1.0};
const GLfloat gray[4] = {0.2, 0.2, 0.2, 1.0};
const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0};
const GLfloat pos[4] = {0, 0, 10, 0};
diff --git a/progs/trivial/.gitignore b/progs/trivial/.gitignore
index dce733a70a..4d6e405c50 100644
--- a/progs/trivial/.gitignore
+++ b/progs/trivial/.gitignore
@@ -5,10 +5,17 @@ clear-random
clear-repeat
clear-scissor
clear-undefined
+createwin
+dlist-begin-call-end
dlist-dangling
dlist-degenerate
dlist-edgeflag
dlist-edgeflag-dangling
+dlist-flat-tri
+dlist-mat-tri
+dlist-recursive-call
+dlist-tri-flat-tri
+dlist-tri-mat-tri
draw2arrays
drawarrays
drawelements
@@ -31,6 +38,7 @@ lineloop
lineloop-clip
lineloop-elts
linestrip
+linestrip-clip
linestrip-flat-stipple
linestrip-stipple
linestrip-stipple-wide
@@ -71,8 +79,10 @@ quadstrip-cont
quadstrip-flat
readtex.c
readtex.h
+readpixels
tri
tri-alpha
+tri-alpha-tex
tri-array-interleaved
tri-blend
tri-blend-color
@@ -80,6 +90,7 @@ tri-blend-max
tri-blend-min
tri-blend-revsub
tri-blend-sub
+tri-clear
tri-clip
tri-cull
tri-cull-both
@@ -94,6 +105,7 @@ tri-fog
tri-fp
tri-fp-const-imm
tri-lit
+tri-lit-material
tri-logicop-none
tri-logicop-xor
tri-mask-tri
@@ -102,6 +114,7 @@ tri-orig
tri-query
tri-repeat
tri-scissor-tri
+tri-square
tri-stencil
tri-stipple
tri-tex
@@ -111,6 +124,7 @@ tri-unfilled
tri-unfilled-clip
tri-unfilled-edgeflag
tri-unfilled-fog
+tri-unfilled-point
tri-unfilled-smooth
tri-unfilled-tri
tri-unfilled-tri-lit
@@ -119,6 +133,7 @@ tri-unfilled-userclip-stip
tri-userclip
tri-viewport
tri-z
+tri-z-9
tri-z-eq
trifan
trifan-flat
diff --git a/progs/trivial/Makefile b/progs/trivial/Makefile
index 22de83fa79..70728616d2 100644
--- a/progs/trivial/Makefile
+++ b/progs/trivial/Makefile
@@ -18,7 +18,14 @@ SOURCES = \
clear-repeat.c \
clear-random.c \
clear.c \
+ createwin.c \
dlist-dangling.c \
+ dlist-flat-tri.c \
+ dlist-mat-tri.c \
+ dlist-tri-flat-tri.c \
+ dlist-tri-mat-tri.c \
+ dlist-recursive-call.c \
+ dlist-begin-call-end.c \
dlist-edgeflag-dangling.c \
dlist-edgeflag.c \
dlist-degenerate.c \
@@ -42,6 +49,7 @@ SOURCES = \
lineloop-clip.c \
lineloop-elts.c \
lineloop.c \
+ linestrip-clip.c \
linestrip-flat-stipple.c \
linestrip-stipple-wide.c \
linestrip-stipple.c \
@@ -81,7 +89,9 @@ SOURCES = \
quadstrip-cont.c \
quadstrip-flat.c \
quadstrip.c \
+ readpixels.c \
tri-alpha.c \
+ tri-alpha-tex.c \
tri-array-interleaved.c \
tri-blend-color.c \
tri-blend-max.c \
@@ -89,6 +99,7 @@ SOURCES = \
tri-blend-revsub.c \
tri-blend-sub.c \
tri-blend.c \
+ tri-clear.c \
tri-clip.c \
tri-cull-both.c \
tri-cull.c \
@@ -105,11 +116,13 @@ SOURCES = \
tri-fp.c \
tri-fp-const-imm.c \
tri-lit.c \
+ tri-lit-material.c \
tri-mask-tri.c \
tri-orig.c \
tri-query.c \
tri-repeat.c \
tri-scissor-tri.c \
+ tri-square.c \
tri-stencil.c \
tri-stipple.c \
tri-multitex-vbo.c \
@@ -119,6 +132,7 @@ SOURCES = \
tri-unfilled-fog.c \
tri-unfilled-edgeflag.c \
tri-unfilled-clip.c \
+ tri-unfilled-point.c \
tri-unfilled-smooth.c \
tri-unfilled-tri.c \
tri-unfilled-tri-lit.c \
@@ -127,6 +141,7 @@ SOURCES = \
tri-unfilled.c \
tri-userclip.c \
tri-viewport.c \
+ tri-z-9.c \
tri-z-eq.c \
tri-z.c \
tri.c \
diff --git a/progs/trivial/dlist-begin-call-end.c b/progs/trivial/dlist-begin-call-end.c
new file mode 100644
index 0000000000..0d0aed7c72
--- /dev/null
+++ b/progs/trivial/dlist-begin-call-end.c
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint first_list, list;
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ /* First list will disrupt state which might potentially be
+ * short-circuited in calling list:
+ */
+ first_list = glGenLists(1);
+ glNewList(first_list, GL_COMPILE);
+// glColor3f(0,1,0);
+ glEndList();
+
+
+ /* List that looks like it might have redundant state:
+ */
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ glShadeModel(GL_FLAT);
+ glBegin(GL_TRIANGLES);
+ glColor3f(1,0,0);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glCallList( first_list );
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/dlist-flat-tri.c b/progs/trivial/dlist-flat-tri.c
new file mode 100644
index 0000000000..c3dd7921e3
--- /dev/null
+++ b/progs/trivial/dlist-flat-tri.c
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint list;
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ /* XXX: this state-change will only be executed if list is called
+ * from outside a begin/end pair:
+ */
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,0,.7);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glColor3f(0,.9,0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glColor3f(.8,0,0);
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+
+ /* This statechange is potentially NOT redundant:
+ */
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,1,0);
+ glVertex3f( -0.5, 0.5, -30.0);
+ glColor3f(0,0,1);
+ glVertex3f( -0.5, -0.5, -30.0);
+ glColor3f(1,0,0);
+ glVertex3f( 0.5, 0.0, -30.0);
+ glEnd();
+
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+
+ glBegin(GL_TRIANGLES);
+
+ /* Note: call the list from inside a begin/end pair. The end is
+ * provided by the display list...
+ */
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/dlist-mat-tri.c b/progs/trivial/dlist-mat-tri.c
new file mode 100644
index 0000000000..ed3a4c5981
--- /dev/null
+++ b/progs/trivial/dlist-mat-tri.c
@@ -0,0 +1,182 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint list;
+
+static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0};
+static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0};
+/*static GLfloat blue[4] = {0.2, 0.2, .7, 1.0};*/
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ /* XXX: this state-change will be executed regardless of whether
+ * the list is called from outside a begin/end pair:
+ */
+ glMaterialfv(GL_FRONT, GL_AMBIENT, red);
+ glBegin(GL_TRIANGLES);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, red);
+ glBegin(GL_TRIANGLES);
+ glVertex3f( -0.7, 0.7, -30.0);
+ glVertex3f( -0.7, -0.7, -30.0);
+ glVertex3f( 0.7, 0.0, -30.0);
+ glEnd();
+
+ /* This statechange is redundant:
+ */
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
+ glBegin(GL_TRIANGLES);
+ glVertex3f( -0.5, 0.5, -30.0);
+ glVertex3f( -0.5, -0.5, -30.0);
+ glVertex3f( 0.5, 0.0, -30.0);
+ glEnd();
+
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
+
+ glBegin(GL_TRIANGLES);
+
+ /* Note: call the list from inside a begin/end pair. The end is
+ * provided by the display list...
+ */
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/dlist-recursive-call.c b/progs/trivial/dlist-recursive-call.c
new file mode 100644
index 0000000000..fe06b2bbd7
--- /dev/null
+++ b/progs/trivial/dlist-recursive-call.c
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint first_list, list;
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ /* First list will disrupt state which might potentially be
+ * short-circuited in calling list:
+ */
+ first_list = glGenLists(1);
+ glNewList(first_list, GL_COMPILE);
+ glShadeModel( GL_SMOOTH );
+ glEndList();
+
+
+ /* List that looks like it might have redundant state:
+ */
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,0,.7);
+ glVertex3f( 0.9, -0.9, -30.0);
+ glColor3f(.8,0,0);
+ glVertex3f( 0.9, 0.9, -30.0);
+ glColor3f(0,.9,0);
+ glVertex3f(-0.9, 0.0, -30.0);
+ glEnd();
+
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,0,.7);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glColor3f(0,.9,0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glColor3f(.8,0,0);
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+
+ glCallList( first_list );
+
+ /* Do a quick begin/end to ensure we are not inside a dangling
+ * primitive from the called list:
+ */
+ glBegin( GL_POINTS );
+ glEnd();
+
+ /* This statechange is NOT redundant:
+ */
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(1,0,0);
+ glVertex3f( -0.5, 0.5, -30.0);
+ glColor3f(0,1,0);
+ glVertex3f( -0.5, -0.5, -30.0);
+ glColor3f(0,0,1);
+ glVertex3f( 0.5, 0.0, -30.0);
+ glEnd();
+
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/dlist-tri-flat-tri.c b/progs/trivial/dlist-tri-flat-tri.c
new file mode 100644
index 0000000000..4dbb788486
--- /dev/null
+++ b/progs/trivial/dlist-tri-flat-tri.c
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint list;
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,0,.7);
+ glVertex3f( 0.9, -0.9, -30.0);
+ glColor3f(.8,0,0);
+ glVertex3f( 0.9, 0.9, -30.0);
+ glColor3f(0,.9,0);
+ glVertex3f(-0.9, 0.0, -30.0);
+ glEnd();
+
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(0,0,.7);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glColor3f(0,.9,0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glColor3f(.8,0,0);
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+
+ /* This statechange is redundant:
+ */
+ glShadeModel( GL_FLAT );
+ glBegin(GL_TRIANGLES);
+ glColor3f(1,0,0);
+ glVertex3f( -0.5, 0.5, -30.0);
+ glColor3f(0,1,0);
+ glVertex3f( -0.5, -0.5, -30.0);
+ glColor3f(0,0,1);
+ glVertex3f( 0.5, 0.0, -30.0);
+ glEnd();
+
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/dlist-tri-mat-tri.c b/progs/trivial/dlist-tri-mat-tri.c
new file mode 100644
index 0000000000..f69854ae58
--- /dev/null
+++ b/progs/trivial/dlist-tri-mat-tri.c
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+GLint list;
+
+static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0};
+static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0};
+static GLfloat blue[4] = {0.2, 0.2, .9, 1.0};
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+
+ list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
+
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0,0,.7);
+ glVertex3f( 0.9, -0.9, -30.0);
+ glVertex3f( 0.9, 0.9, -30.0);
+ glVertex3f(-0.9, 0.0, -30.0);
+ glEnd();
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+
+ glBegin(GL_TRIANGLES);
+ glVertex3f( -0.9, 0.9, -30.0);
+ glVertex3f( -0.9, -0.9, -30.0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
+ glVertex3f( 0.9, 0.0, -30.0);
+ glEnd();
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+ glBegin(GL_TRIANGLES);
+ glVertex3f( -0.5, 0.5, -30.0);
+ glVertex3f( -0.5, -0.5, -30.0);
+ glVertex3f( 0.5, 0.0, -30.0);
+ glEnd();
+
+ glEndList();
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+
+
+
+static void Draw(void)
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glShadeModel( GL_SMOOTH );
+ glCallList(list);
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/trivial/tri-lit-material.c b/progs/trivial/tri-lit-material.c
new file mode 100644
index 0000000000..ff9fb2c4dd
--- /dev/null
+++ b/progs/trivial/tri-lit-material.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/glut.h>
+
+
+#define CI_OFFSET_1 16
+#define CI_OFFSET_2 32
+
+
+GLenum doubleBuffer;
+
+static void Init(void)
+{
+ fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ fflush(stderr);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glClearColor(0.0, 0.0, 1.0, 0.0);
+}
+
+static void Reshape(int width, int height)
+{
+
+ glViewport(0, 0, (GLint)width, (GLint)height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void Key(unsigned char key, int x, int y)
+{
+
+ switch (key) {
+ case 27:
+ exit(1);
+ default:
+ return;
+ }
+
+ glutPostRedisplay();
+}
+
+static void Draw(void)
+{
+ static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0};
+ static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0};
+ static GLfloat blue[4] = {0.2, 0.2, .9, 1.0};
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glBegin(GL_TRIANGLES);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+ glNormal3f(0,0,.7);
+ glVertex3f( 0.9, -0.9, -0.0);
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
+ glNormal3f(0,0,.8);
+ glVertex3f( 0.9, 0.9, -0.0);
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
+ glNormal3f(0,0,.9);
+ glVertex3f(-0.9, 0.0, -0.0);
+ glEnd();
+
+ glFlush();
+
+ if (doubleBuffer) {
+ glutSwapBuffers();
+ }
+}
+
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else {
+ fprintf(stderr, "%s (Bad option).\n", argv[i]);
+ return GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+int main(int argc, char **argv)
+{
+ GLenum type;
+
+ glutInit(&argc, argv);
+
+ if (Args(argc, argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
+
+ type = GLUT_RGB | GLUT_ALPHA;
+ type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
+ glutInitDisplayMode(type);
+
+ if (glutCreateWindow(*argv) == GL_FALSE) {
+ exit(1);
+ }
+
+ Init();
+
+ glutReshapeFunc(Reshape);
+ glutKeyboardFunc(Key);
+ glutDisplayFunc(Draw);
+ glutMainLoop();
+ return 0;
+}
diff --git a/progs/util/extfuncs.h b/progs/util/extfuncs.h
index 238794d55a..2bb57030a8 100644
--- a/progs/util/extfuncs.h
+++ b/progs/util/extfuncs.h
@@ -95,6 +95,47 @@ static PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB_func = NULL;
static PFNGLMAPBUFFERARBPROC glMapBufferARB_func = NULL;
static PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB_func = NULL;
+/* GL_EXT_framebuffer_object */
+static PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT_func = NULL;
+static PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT_func = NULL;
+static PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT_func = NULL;
+static PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT_func = NULL;
+static PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT_func = NULL;
+static PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT_func = NULL;
+static PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT_func = NULL;
+static PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT_func = NULL;
+static PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT_func = NULL;
+static PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT_func = NULL;
+static PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT_func = NULL;
+static PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT_func = NULL;
+static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT_func = NULL;
+static PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT_func = NULL;
+
+/* GL_ARB_framebuffer_object */
+static PFNGLISRENDERBUFFERPROC glIsRenderbuffer_func = NULL;
+static PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer_func = NULL;
+static PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers_func = NULL;
+static PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers_func = NULL;
+static PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage_func = NULL;
+static PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv_func = NULL;
+static PFNGLISFRAMEBUFFERPROC glIsFramebuffer_func = NULL;
+static PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer_func = NULL;
+static PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers_func = NULL;
+static PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers_func = NULL;
+static PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D_func = NULL;
+static PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer_func = NULL;
+static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv_func = NULL;
+static PFNGLGENERATEMIPMAPPROC glGenerateMipmap_func = NULL;
+static PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer_func = NULL;
+static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample_func = NULL;
+static PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer_func = NULL;
+
static void
GetExtensionFuncs(void)
@@ -192,5 +233,45 @@ GetExtensionFuncs(void)
glMapBufferARB_func = (PFNGLMAPBUFFERARBPROC) glutGetProcAddress("glMapBufferARB");
glUnmapBufferARB_func = (PFNGLUNMAPBUFFERARBPROC) glutGetProcAddress("glUnmapBufferARB");
+ /* GL_EXT_framebuffer_object */
+ glIsRenderbufferEXT_func = (PFNGLISRENDERBUFFEREXTPROC) glutGetProcAddress("glIsRenderbufferEXT");
+ glBindRenderbufferEXT_func = (PFNGLBINDRENDERBUFFEREXTPROC) glutGetProcAddress("glBindRenderbufferEXT");
+ glDeleteRenderbuffersEXT_func = (PFNGLDELETERENDERBUFFERSEXTPROC) glutGetProcAddress("glDeleteRenderbuffersEXT");
+ glGenRenderbuffersEXT_func = (PFNGLGENRENDERBUFFERSEXTPROC) glutGetProcAddress("glGenRenderbuffersEXT");
+ glRenderbufferStorageEXT_func = (PFNGLRENDERBUFFERSTORAGEEXTPROC) glutGetProcAddress("glRenderbufferStorageEXT");
+ glGetRenderbufferParameterivEXT_func = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) glutGetProcAddress("glGetRenderbufferParameterivEXT");
+ glIsFramebufferEXT_func = (PFNGLISFRAMEBUFFEREXTPROC) glutGetProcAddress("glIsFramebufferEXT");
+ glBindFramebufferEXT_func = (PFNGLBINDFRAMEBUFFEREXTPROC) glutGetProcAddress("glBindFramebufferEXT");
+ glDeleteFramebuffersEXT_func = (PFNGLDELETEFRAMEBUFFERSEXTPROC) glutGetProcAddress("glDeleteFramebuffersEXT");
+ glGenFramebuffersEXT_func = (PFNGLGENFRAMEBUFFERSEXTPROC) glutGetProcAddress("glGenFramebuffersEXT");
+ glCheckFramebufferStatusEXT_func = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) glutGetProcAddress("glCheckFramebufferStatusEXT");
+ glFramebufferTexture1DEXT_func = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) glutGetProcAddress("glFramebufferTexture1DEXT");
+ glFramebufferTexture2DEXT_func = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) glutGetProcAddress("glFramebufferTexture2DEXT");
+ glFramebufferTexture3DEXT_func = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) glutGetProcAddress("glFramebufferTexture3DEXT");
+ glFramebufferRenderbufferEXT_func = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) glutGetProcAddress("glFramebufferRenderbufferEXT");
+ glGetFramebufferAttachmentParameterivEXT_func = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) glutGetProcAddress("glGetFramebufferAttachmentParameterivEXT");
+ glGenerateMipmapEXT_func = (PFNGLGENERATEMIPMAPEXTPROC) glutGetProcAddress("glGenerateMipmapEXT");
+
+ /* GL_ARB_framebuffer_object */
+ glIsRenderbuffer_func = (PFNGLISRENDERBUFFERPROC) glutGetProcAddress("glIsRenderbuffer");
+ glBindRenderbuffer_func = (PFNGLBINDRENDERBUFFERPROC) glutGetProcAddress("glBindRenderbuffer");
+ glDeleteRenderbuffers_func = (PFNGLDELETERENDERBUFFERSPROC) glutGetProcAddress("glDeleteRenderbuffers");
+ glGenRenderbuffers_func = (PFNGLGENRENDERBUFFERSPROC) glutGetProcAddress("glGenRenderbuffers");
+ glRenderbufferStorage_func = (PFNGLRENDERBUFFERSTORAGEPROC) glutGetProcAddress("glRenderbufferStorage");
+ glGetRenderbufferParameteriv_func = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) glutGetProcAddress("glGetRenderbufferParameteriv");
+ glIsFramebuffer_func = (PFNGLISFRAMEBUFFERPROC) glutGetProcAddress("glIsFramebuffer");
+ glBindFramebuffer_func = (PFNGLBINDFRAMEBUFFERPROC) glutGetProcAddress("glBindFramebuffer");
+ glDeleteFramebuffers_func = (PFNGLDELETEFRAMEBUFFERSPROC) glutGetProcAddress("glDeleteFramebuffers");
+ glGenFramebuffers_func = (PFNGLGENFRAMEBUFFERSPROC) glutGetProcAddress("glGenFramebuffers");
+ glCheckFramebufferStatus_func = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) glutGetProcAddress("glCheckFramebufferStatus");
+ glFramebufferTexture1D_func = (PFNGLFRAMEBUFFERTEXTURE1DPROC) glutGetProcAddress("glFramebufferTexture1D");
+ glFramebufferTexture2D_func = (PFNGLFRAMEBUFFERTEXTURE2DPROC) glutGetProcAddress("glFramebufferTexture2D");
+ glFramebufferTexture3D_func = (PFNGLFRAMEBUFFERTEXTURE3DPROC) glutGetProcAddress("glFramebufferTexture3D");
+ glFramebufferRenderbuffer_func = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) glutGetProcAddress("glFramebufferRenderbuffer");
+ glGetFramebufferAttachmentParameteriv_func = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) glutGetProcAddress("glGetFramebufferAttachmentParameteriv");
+ glGenerateMipmap_func = (PFNGLGENERATEMIPMAPPROC) glutGetProcAddress("glGenerateMipmap");
+ glBlitFramebuffer_func = (PFNGLBLITFRAMEBUFFERPROC) glutGetProcAddress("glBlitFramebuffer");
+ glRenderbufferStorageMultisample_func = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) glutGetProcAddress("glRenderbufferStorageMultisample");
+ glFramebufferTextureLayer_func = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) glutGetProcAddress("glFramebufferTextureLayer");
}
diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c
index 2f1c4e38b3..4db950016b 100644
--- a/progs/util/shaderutil.c
+++ b/progs/util/shaderutil.c
@@ -9,20 +9,16 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+#include <GL/glew.h>
#include <GL/glut.h>
-#include "extfuncs.h"
#include "shaderutil.h"
+/** time to compile previous shader */
+static GLdouble CompileTime = 0.0;
-static void
-Init(void)
-{
- static GLboolean firstCall = GL_TRUE;
- if (firstCall) {
- GetExtensionFuncs();
- firstCall = GL_FALSE;
- }
-}
+/** time to linke previous program */
+static GLdouble LinkTime = 0.0;
GLboolean
@@ -47,17 +43,22 @@ CompileShaderText(GLenum shaderType, const char *text)
{
GLuint shader;
GLint stat;
+ GLdouble t0, t1;
+
+ shader = glCreateShader(shaderType);
+ glShaderSource(shader, 1, (const GLchar **) &text, NULL);
+
+ t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
+ glCompileShader(shader);
+ t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- Init();
+ CompileTime = t1 - t0;
- shader = glCreateShader_func(shaderType);
- glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
- glCompileShader_func(shader);
- glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetShaderInfoLog_func(shader, 1000, &len, log);
+ glGetShaderInfoLog(shader, 1000, &len, log);
fprintf(stderr, "Error: problem compiling shader: %s\n", log);
exit(1);
}
@@ -78,8 +79,9 @@ CompileShaderFile(GLenum shaderType, const char *filename)
int n;
char *buffer = (char*) malloc(max);
GLuint shader;
+ FILE *f;
- FILE *f = fopen(filename, "r");
+ f = fopen(filename, "r");
if (!f) {
fprintf(stderr, "Unable to open shader file %s\n", filename);
return 0;
@@ -105,24 +107,30 @@ CompileShaderFile(GLenum shaderType, const char *filename)
GLuint
LinkShaders(GLuint vertShader, GLuint fragShader)
{
- GLuint program = glCreateProgram_func();
+ GLuint program = glCreateProgram();
+ GLdouble t0, t1;
assert(vertShader || fragShader);
if (fragShader)
- glAttachShader_func(program, fragShader);
+ glAttachShader(program, fragShader);
if (vertShader)
- glAttachShader_func(program, vertShader);
- glLinkProgram_func(program);
+ glAttachShader(program, vertShader);
+
+ t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
+ glLinkProgram(program);
+ t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
+
+ LinkTime = t1 - t0;
/* check link */
{
GLint stat;
- glGetProgramiv_func(program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- glGetProgramInfoLog_func(program, 1000, &len, log);
+ glGetProgramInfoLog(program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
return 0;
}
@@ -132,37 +140,176 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
}
+GLboolean
+ValidateShaderProgram(GLuint program)
+{
+ GLint stat;
+ glValidateProgramARB(program);
+ glGetProgramiv(program, GL_VALIDATE_STATUS, &stat);
+
+ if (!stat) {
+ GLchar log[1000];
+ GLsizei len;
+ glGetProgramInfoLog(program, 1000, &len, log);
+ fprintf(stderr, "Program validation error:\n%s\n", log);
+ return 0;
+ }
+
+ return (GLboolean) stat;
+}
+
+
+GLdouble
+GetShaderCompileTime(void)
+{
+ return CompileTime;
+}
+
+
+GLdouble
+GetShaderLinkTime(void)
+{
+ return LinkTime;
+}
+
+
void
-InitUniforms(GLuint program, struct uniform_info uniforms[])
+SetUniformValues(GLuint program, struct uniform_info uniforms[])
{
GLuint i;
for (i = 0; uniforms[i].name; i++) {
uniforms[i].location
- = glGetUniformLocation_func(program, uniforms[i].name);
-
- printf("Uniform %s location: %d\n", uniforms[i].name,
- uniforms[i].location);
-
- switch (uniforms[i].size) {
- case 1:
- if (uniforms[i].type == GL_INT)
- glUniform1i_func(uniforms[i].location,
- (GLint) uniforms[i].value[0]);
- else
- glUniform1fv_func(uniforms[i].location, 1, uniforms[i].value);
+ = glGetUniformLocation(program, uniforms[i].name);
+
+ switch (uniforms[i].type) {
+ case GL_INT:
+ case GL_SAMPLER_1D:
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_3D:
+ case GL_SAMPLER_CUBE:
+ case GL_SAMPLER_2D_RECT_ARB:
+ assert(uniforms[i].value[0] >= 0.0F);
+ glUniform1i(uniforms[i].location,
+ (GLint) uniforms[i].value[0]);
+ break;
+ case GL_FLOAT:
+ glUniform1fv(uniforms[i].location, 1, uniforms[i].value);
break;
- case 2:
- glUniform2fv_func(uniforms[i].location, 1, uniforms[i].value);
+ case GL_FLOAT_VEC2:
+ glUniform2fv(uniforms[i].location, 1, uniforms[i].value);
break;
- case 3:
- glUniform3fv_func(uniforms[i].location, 1, uniforms[i].value);
+ case GL_FLOAT_VEC3:
+ glUniform3fv(uniforms[i].location, 1, uniforms[i].value);
break;
- case 4:
- glUniform4fv_func(uniforms[i].location, 1, uniforms[i].value);
+ case GL_FLOAT_VEC4:
+ glUniform4fv(uniforms[i].location, 1, uniforms[i].value);
break;
default:
- abort();
+ if (strncmp(uniforms[i].name, "gl_", 3) == 0) {
+ /* built-in uniform: ignore */
+ }
+ else {
+ fprintf(stderr,
+ "Unexpected uniform data type in SetUniformValues\n");
+ abort();
+ }
}
}
}
+
+
+/** Get list of uniforms used in the program */
+GLuint
+GetUniforms(GLuint program, struct uniform_info uniforms[])
+{
+ GLint n, max, i;
+
+ glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &n);
+ glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &max);
+
+ for (i = 0; i < n; i++) {
+ GLint size, len;
+ GLenum type;
+ char name[100];
+
+ glGetActiveUniform(program, i, 100, &len, &size, &type, name);
+
+ uniforms[i].name = strdup(name);
+ uniforms[i].size = size;
+ uniforms[i].type = type;
+ uniforms[i].location = glGetUniformLocation(program, name);
+ }
+
+ uniforms[i].name = NULL; /* end of list */
+
+ return n;
+}
+
+
+void
+PrintUniforms(const struct uniform_info uniforms[])
+{
+ GLint i;
+
+ printf("Uniforms:\n");
+
+ for (i = 0; uniforms[i].name; i++) {
+ printf(" %d: %s size=%d type=0x%x loc=%d value=%g, %g, %g, %g\n",
+ i,
+ uniforms[i].name,
+ uniforms[i].size,
+ uniforms[i].type,
+ uniforms[i].location,
+ uniforms[i].value[0],
+ uniforms[i].value[1],
+ uniforms[i].value[2],
+ uniforms[i].value[3]);
+ }
+}
+
+
+/** Get list of attribs used in the program */
+GLuint
+GetAttribs(GLuint program, struct attrib_info attribs[])
+{
+ GLint n, max, i;
+
+ glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &n);
+ glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &max);
+
+ for (i = 0; i < n; i++) {
+ GLint size, len;
+ GLenum type;
+ char name[100];
+
+ glGetActiveAttrib(program, i, 100, &len, &size, &type, name);
+
+ attribs[i].name = strdup(name);
+ attribs[i].size = size;
+ attribs[i].type = type;
+ attribs[i].location = glGetAttribLocation(program, name);
+ }
+
+ attribs[i].name = NULL; /* end of list */
+
+ return n;
+}
+
+
+void
+PrintAttribs(const struct attrib_info attribs[])
+{
+ GLint i;
+
+ printf("Attribs:\n");
+
+ for (i = 0; attribs[i].name; i++) {
+ printf(" %d: %s size=%d type=0x%x loc=%d\n",
+ i,
+ attribs[i].name,
+ attribs[i].size,
+ attribs[i].type,
+ attribs[i].location);
+ }
+}
diff --git a/progs/util/shaderutil.h b/progs/util/shaderutil.h
index cfb8c1f3b0..98c7181156 100644
--- a/progs/util/shaderutil.h
+++ b/progs/util/shaderutil.h
@@ -6,8 +6,8 @@
struct uniform_info
{
const char *name;
- GLuint size;
- GLenum type; /**< GL_FLOAT or GL_INT */
+ GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */
+ GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
GLfloat value[4];
GLint location; /**< filled in by InitUniforms() */
};
@@ -15,6 +15,15 @@ struct uniform_info
#define END_OF_UNIFORMS { NULL, 0, GL_NONE, { 0, 0, 0, 0 }, -1 }
+struct attrib_info
+{
+ const char *name;
+ GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */
+ GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
+ GLint location;
+};
+
+
extern GLboolean
ShadersSupported(void);
@@ -27,8 +36,28 @@ CompileShaderFile(GLenum shaderType, const char *filename);
extern GLuint
LinkShaders(GLuint vertShader, GLuint fragShader);
+extern GLboolean
+ValidateShaderProgram(GLuint program);
+
+extern GLdouble
+GetShaderCompileTime(void);
+
+extern GLdouble
+GetShaderLinkTime(void);
+
+extern void
+SetUniformValues(GLuint program, struct uniform_info uniforms[]);
+
+extern GLuint
+GetUniforms(GLuint program, struct uniform_info uniforms[]);
+
extern void
-InitUniforms(GLuint program, struct uniform_info uniforms[]);
+PrintUniforms(const struct uniform_info uniforms[]);
+
+extern GLuint
+GetAttribs(GLuint program, struct attrib_info attribs[]);
+extern void
+PrintAttribs(const struct attrib_info attribs[]);
#endif /* SHADER_UTIL_H */
diff --git a/progs/vp/arl-static.txt b/progs/vp/arl-static.txt
index aea87b79a4..83aebf689e 100644
--- a/progs/vp/arl-static.txt
+++ b/progs/vp/arl-static.txt
@@ -1,5 +1,5 @@
!!ARBvp1.0
-PARAM arr[5] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}};
+PARAM arr[7] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}};
ADDRESS addr;
ARL addr.x, {3}.x;
MOV result.color, arr[addr.x];
diff --git a/progs/vp/arl-unused.txt b/progs/vp/arl-unused.txt
index 7bdbb8e86c..c2afe3c092 100644
--- a/progs/vp/arl-unused.txt
+++ b/progs/vp/arl-unused.txt
@@ -1,5 +1,5 @@
!!ARBvp1.0
-PARAM arr[5] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}};
+PARAM arr[7] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}};
ADDRESS addr;
ARL addr.x, {3}.x; # not actually used
MOV result.color, arr[3];
diff --git a/progs/wgl/sharedtex_mt/sharedtex_mt.c b/progs/wgl/sharedtex_mt/sharedtex_mt.c
index 010eb873b8..779e15001d 100644
--- a/progs/wgl/sharedtex_mt/sharedtex_mt.c
+++ b/progs/wgl/sharedtex_mt/sharedtex_mt.c
@@ -50,6 +50,7 @@ struct window {
float Angle;
int Id;
HGLRC sharedContext;
+ HANDLE hEventInitialised;
};
@@ -414,6 +415,10 @@ threadRunner (void *arg)
Error("Couldn't obtain HDC");
}
+ /* Wait for the previous thread */
+ if(tia->id > 0)
+ WaitForSingleObject(Windows[tia->id - 1].hEventInitialised, INFINITE);
+
pfd.cColorBits = 24;
pfd.cDepthBits = 24;
pfd.dwFlags = PFD_DOUBLEBUFFER | PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
@@ -434,9 +439,16 @@ threadRunner (void *arg)
}
if (win->sharedContext) {
- wglShareLists(win->sharedContext, win->Context);
+ if(!wglShareLists(win->sharedContext, win->Context))
+ Error("Couldn't share WGL context lists");
}
+ SetEvent(win->hEventInitialised);
+
+ /* Wait for all threads to initialize otherwise wglShareLists will fail */
+ if(tia->id < NumWindows - 1)
+ WaitForSingleObject(Windows[NumWindows - 1].hEventInitialised, INFINITE);
+
SendMessage(win->Win, WM_SIZE, 0, 0);
while (1) {
@@ -511,20 +523,26 @@ main(int argc, char *argv[])
h[2] = AddWindow( 10, 350, gCtx);
h[3] = AddWindow(330, 350, gCtx);
- if (!wglMakeCurrent(gHDC, gCtx)) {
- Error("wglMakeCurrent failed for init thread.");
- return -1;
+ for (i = 0; i < NumWindows; i++) {
+ Windows[i].hEventInitialised = CreateEvent(NULL, TRUE, FALSE, NULL);
}
- InitGLstuff();
-
for (i = 0; i < NumWindows; i++) {
DWORD id;
tia[i].id = i;
threads[i] = CreateThread(NULL, 0, threadRunner, &tia[i], 0, &id);
+
+ WaitForSingleObject(Windows[i].hEventInitialised, INFINITE);
+ }
+
+ if (!wglMakeCurrent(gHDC, gCtx)) {
+ Error("wglMakeCurrent failed for init thread.");
+ return -1;
}
+ InitGLstuff();
+
while (1) {
MSG msg;
diff --git a/progs/wgl/wglthreads/wglthreads.c b/progs/wgl/wglthreads/wglthreads.c
index 9ca7f025dc..27dca10f2a 100644
--- a/progs/wgl/wglthreads/wglthreads.c
+++ b/progs/wgl/wglthreads/wglthreads.c
@@ -72,6 +72,7 @@ struct winthread {
int WinWidth, WinHeight;
GLboolean NewSize;
HANDLE hEventInitialised;
+ GLboolean Initialized;
GLboolean MakeNewTexture;
HANDLE hEventRedraw;
};
@@ -114,20 +115,20 @@ static void
MakeNewTexture(struct winthread *wt)
{
#define TEX_SIZE 128
- static float step = 0.0;
+ static float step = 0.0f;
GLfloat image[TEX_SIZE][TEX_SIZE][4];
GLint width;
int i, j;
for (j = 0; j < TEX_SIZE; j++) {
for (i = 0; i < TEX_SIZE; i++) {
- float dt = 5.0 * (j - 0.5 * TEX_SIZE) / TEX_SIZE;
- float ds = 5.0 * (i - 0.5 * TEX_SIZE) / TEX_SIZE;
+ float dt = 5.0f * (j - 0.5f * TEX_SIZE) / TEX_SIZE;
+ float ds = 5.0f * (i - 0.5f * TEX_SIZE) / TEX_SIZE;
float r = dt * dt + ds * ds + step;
image[j][i][0] =
image[j][i][1] =
- image[j][i][2] = 0.75 + 0.25 * cos(r);
- image[j][i][3] = 1.0;
+ image[j][i][2] = 0.75f + 0.25f * (float) cos(r);
+ image[j][i][3] = 1.0f;
}
}
@@ -159,7 +160,7 @@ static void
draw_object(void)
{
glPushMatrix();
- glScalef(0.75, 0.75, 0.75);
+ glScalef(0.75f, 0.75f, 0.75f);
glColor3f(1, 0, 0);
@@ -288,6 +289,15 @@ draw_loop(struct winthread *wt)
wglMakeCurrent(wt->hDC, wt->Context);
+ if (!wt->Initialized) {
+ printf("wglthreads: %d: GL_RENDERER = %s\n", wt->Index,
+ (char *) glGetString(GL_RENDERER));
+ if (Texture /*&& wt->Index == 0*/) {
+ MakeNewTexture(wt);
+ }
+ wt->Initialized = GL_TRUE;
+ }
+
if (Locking)
LeaveCriticalSection(&Mutex);
@@ -315,13 +325,15 @@ draw_loop(struct winthread *wt)
glPushMatrix();
glRotatef(wt->Angle, 0, 1, 0);
glRotatef(wt->Angle, 1, 0, 0);
- glScalef(0.7, 0.7, 0.7);
+ glScalef(0.7f, 0.7f, 0.7f);
draw_object();
glPopMatrix();
if (Locking)
EnterCriticalSection(&Mutex);
+
SwapBuffers(wt->hDC);
+
if (Locking)
LeaveCriticalSection(&Mutex);
@@ -433,7 +445,7 @@ create_window(struct winthread *wt, HGLRC shareCtx)
win = CreateWindowEx(0,
wc.lpszClassName,
"wglthreads",
- WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+ WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TILEDWINDOW,
xpos,
ypos,
width,
@@ -471,7 +483,8 @@ create_window(struct winthread *wt, HGLRC shareCtx)
}
if (shareCtx) {
- wglShareLists(shareCtx, ctx);
+ if(!wglShareLists(shareCtx, ctx))
+ Error("Couldn't share WGL context lists");
}
/* save the info for this window/context */
@@ -482,14 +495,6 @@ create_window(struct winthread *wt, HGLRC shareCtx)
wt->WinWidth = width;
wt->WinHeight = height;
wt->NewSize = GL_TRUE;
-
- wglMakeCurrent(hdc, ctx);
- printf("wglthreads: %d: GL_RENDERER = %s\n", wt->Index, (char *) glGetString(GL_RENDERER));
- wglMakeCurrent(NULL, NULL);
-
- if (Texture/* && wt->Index == 0*/) {
- MakeNewTexture(wt);
- }
}
@@ -502,10 +507,22 @@ ThreadProc(void *p)
struct winthread *wt = (struct winthread *) p;
HGLRC share;
+ /* Wait for the previous thread */
+ if(Texture && wt->Index > 0) {
+ WaitForSingleObject(WinThreads[wt->Index - 1].hEventInitialised, INFINITE);
+ share = WinThreads[0].Context;
+ }
+ else
+ share = 0;
+
share = (Texture && wt->Index > 0) ? WinThreads[0].Context : 0;
create_window(wt, share);
SetEvent(wt->hEventInitialised);
+ /* Wait for all threads to initialize otherwise wglShareLists will fail */
+ if(wt->Index < NumWinThreads - 1)
+ WaitForSingleObject(WinThreads[NumWinThreads - 1].hEventInitialised, INFINITE);
+
draw_loop(wt);
return 0;
}
@@ -539,6 +556,7 @@ main(int argc, char *argv[])
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-h") == 0) {
usage();
+ exit(0);
}
else if (strcmp(argv[i], "-l") == 0) {
Locking = 1;
@@ -588,13 +606,17 @@ main(int argc, char *argv[])
printf("wglthreads: creating threads\n");
- /* Create the threads */
+ /* Create the events */
for (i = 0; i < NumWinThreads; i++) {
- DWORD id;
-
WinThreads[i].Index = i;
WinThreads[i].hEventInitialised = CreateEvent(NULL, TRUE, FALSE, NULL);
WinThreads[i].hEventRedraw = CreateEvent(NULL, FALSE, FALSE, NULL);
+ }
+
+ /* Create the threads */
+ for (i = 0; i < NumWinThreads; i++) {
+ DWORD id;
+
WinThreads[i].Thread = CreateThread(NULL,
0,
ThreadProc,
@@ -603,8 +625,6 @@ main(int argc, char *argv[])
&id);
printf("wglthreads: Created thread %p\n", (void *) WinThreads[i].Thread);
- WaitForSingleObject(WinThreads[i].hEventInitialised, INFINITE);
-
threads[i] = WinThreads[i].Thread;
}
diff --git a/progs/xdemos/.gitignore b/progs/xdemos/.gitignore
index 92446dd9fc..1b9b3a87c0 100644
--- a/progs/xdemos/.gitignore
+++ b/progs/xdemos/.gitignore
@@ -13,6 +13,7 @@ glxpixmap
glxsnoop
glxswapcontrol
manywin
+multictx
offset
overlay
pbdemo
diff --git a/progs/xdemos/Makefile b/progs/xdemos/Makefile
index 6581df8039..53e1c54ef3 100644
--- a/progs/xdemos/Makefile
+++ b/progs/xdemos/Makefile
@@ -26,6 +26,7 @@ PROGS = \
glxsnoop \
glxswapcontrol \
manywin \
+ multictx \
offset \
overlay \
pbinfo \
diff --git a/progs/xdemos/glthreads.c b/progs/xdemos/glthreads.c
index b90e6b4f31..ea5474870b 100644
--- a/progs/xdemos/glthreads.c
+++ b/progs/xdemos/glthreads.c
@@ -26,7 +26,7 @@
* -p Open a display connection for each thread
* -l Enable application-side locking
* -n <num threads> Number of threads to create (default is 2)
- * -display <display name> Specify X display (default is :0.0)
+ * -display <display name> Specify X display (default is $DISPLAY)
* -t Use texture mapping
*
* Brian Paul 20 July 2000
@@ -573,7 +573,7 @@ usage(void)
int
main(int argc, char *argv[])
{
- char *displayName = ":0.0";
+ char *displayName = NULL;
int numThreads = 2;
Display *dpy = NULL;
int i;
diff --git a/progs/xdemos/glxcontexts.c b/progs/xdemos/glxcontexts.c
index a97b62a908..9f83679acd 100644
--- a/progs/xdemos/glxcontexts.c
+++ b/progs/xdemos/glxcontexts.c
@@ -20,16 +20,17 @@
*/
/*
- * This is a port of the infamous "gears" demo to straight GLX (i.e. no GLUT)
- * Port by Brian Paul 23 March 2001
+ * Version of glxgears that creates/destroys the rendering context for each
+ * frame. Also periodically destroy/recreate the window.
+ * Good for finding memory leaks, etc.
*
* Command line options:
* -info print GL implementation information
- * -stereo use stereo enabled GLX visual
*
*/
+#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
@@ -92,13 +93,8 @@ static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
static GLint gear1, gear2, gear3;
static GLfloat angle = 0.0;
-static GLboolean fullscreen = GL_FALSE; /* Create a single fullscreen window */
-static GLboolean stereo = GL_FALSE; /* Enable stereo. */
-static GLfloat eyesep = 5.0; /* Eye separation. */
-static GLfloat fix_point = 40.0; /* Fixation point distance. */
-static GLfloat left, right, asp; /* Stereo frustum params. */
-
- XVisualInfo *visinfo;
+static XVisualInfo *visinfo = NULL;
+static int WinWidth = 300, WinHeight = 300;
/*
@@ -272,22 +268,13 @@ do_draw(void)
}
-
/* new window size or exposure */
static void
reshape(int width, int height)
{
glViewport(0, 0, (GLint) width, (GLint) height);
- if (stereo) {
- GLfloat w;
-
- asp = (GLfloat) height / (GLfloat) width;
- w = fix_point * (1.0 / 5.0);
-
- left = -5.0 * ((w - 0.5 * eyesep) / fix_point);
- right = 5.0 * ((w + 0.5 * eyesep) / fix_point);
- } else {
+ {
GLfloat h = (GLfloat) height / (GLfloat) width;
glMatrixMode(GL_PROJECTION);
@@ -299,7 +286,6 @@ reshape(int width, int height)
glLoadIdentity();
glTranslatef(0.0, 0.0, -40.0);
}
-
static void
@@ -337,7 +323,7 @@ init(void)
glEnable(GL_NORMALIZE);
}
-
+
static void
draw( Display *dpy, Window win )
@@ -354,36 +340,9 @@ draw( Display *dpy, Window win )
init();
- if (stereo) {
- /* First left eye. */
- glDrawBuffer(GL_BACK_LEFT);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(left, right, -asp, asp, 5.0, 60.0);
-
- glMatrixMode(GL_MODELVIEW);
-
- glPushMatrix();
- glTranslated(+0.5 * eyesep, 0.0, 0.0);
- do_draw();
- glPopMatrix();
+ reshape(WinWidth, WinHeight);
- /* Then right eye. */
- glDrawBuffer(GL_BACK_RIGHT);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-right, -left, -asp, asp, 5.0, 60.0);
-
- glMatrixMode(GL_MODELVIEW);
-
- glPushMatrix();
- glTranslated(-0.5 * eyesep, 0.0, 0.0);
- do_draw();
- glPopMatrix();
- } else
- do_draw();
+ do_draw();
glDeleteLists(gear1, 1);
glDeleteLists(gear2, 1);
@@ -410,14 +369,6 @@ make_window( Display *dpy, const char *name,
GLX_DOUBLEBUFFER,
GLX_DEPTH_SIZE, 1,
None };
- int stereoAttribs[] = { GLX_RGBA,
- GLX_RED_SIZE, 1,
- GLX_GREEN_SIZE, 1,
- GLX_BLUE_SIZE, 1,
- GLX_DOUBLEBUFFER,
- GLX_DEPTH_SIZE, 1,
- GLX_STEREO,
- None };
int scrnum;
XSetWindowAttributes attr;
unsigned long mask;
@@ -427,22 +378,12 @@ make_window( Display *dpy, const char *name,
scrnum = DefaultScreen( dpy );
root = RootWindow( dpy, scrnum );
- if (fullscreen) {
- x = 0; y = 0;
- width = DisplayWidth( dpy, scrnum );
- height = DisplayHeight( dpy, scrnum );
- }
+ if (visinfo)
+ XFree(visinfo);
- if (stereo)
- visinfo = glXChooseVisual( dpy, scrnum, stereoAttribs );
- else
- visinfo = glXChooseVisual( dpy, scrnum, attribs );
+ visinfo = glXChooseVisual( dpy, scrnum, attribs );
if (!visinfo) {
- if (stereo) {
- printf("Error: couldn't get an RGB, "
- "Double-buffered, Stereo visual\n");
- } else
- printf("Error: couldn't get an RGB, Double-buffered visual\n");
+ printf("Error: couldn't get an RGB, Double-buffered visual\n");
exit(1);
}
@@ -451,7 +392,7 @@ make_window( Display *dpy, const char *name,
attr.border_pixel = 0;
attr.colormap = XCreateColormap( dpy, root, visinfo->visual, AllocNone);
attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
- attr.override_redirect = fullscreen;
+ attr.override_redirect = 0;
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect;
win = XCreateWindow( dpy, root, x, y, width, height,
@@ -479,10 +420,9 @@ static void
event_loop(Display *dpy)
{
Window win;
- make_window(dpy, "glxgears", 0, 0, 300, 300, &win);
+ make_window(dpy, "glxgears", 0, 0, WinWidth, WinHeight, &win);
XMapWindow(dpy, win);
-
while (1) {
while (XPending(dpy) > 0) {
XEvent event;
@@ -492,34 +432,35 @@ event_loop(Display *dpy)
/* we'll redraw below */
break;
case ConfigureNotify:
- reshape(event.xconfigure.width, event.xconfigure.height);
+ WinWidth = event.xconfigure.width;
+ WinHeight = event.xconfigure.height;
break;
case KeyPress:
- {
- char buffer[10];
- int r, code;
- code = XLookupKeysym(&event.xkey, 0);
- if (code == XK_Left) {
- view_roty += 5.0;
- }
- else if (code == XK_Right) {
- view_roty -= 5.0;
- }
- else if (code == XK_Up) {
- view_rotx += 5.0;
- }
- else if (code == XK_Down) {
- view_rotx -= 5.0;
- }
- else {
- r = XLookupString(&event.xkey, buffer, sizeof(buffer),
- NULL, NULL);
- if (buffer[0] == 27) {
- /* escape */
- return;
- }
- }
- }
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ if (code == XK_Left) {
+ view_roty += 5.0;
+ }
+ else if (code == XK_Right) {
+ view_roty -= 5.0;
+ }
+ else if (code == XK_Up) {
+ view_rotx += 5.0;
+ }
+ else if (code == XK_Down) {
+ view_rotx -= 5.0;
+ }
+ else {
+ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return;
+ }
+ }
+ }
}
}
@@ -550,9 +491,12 @@ event_loop(Display *dpy)
printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds,
fps);
tRate0 = t;
-
+
+ /* Destroy window and create new one */
XDestroyWindow(dpy, win);
- make_window(dpy, "glxgears", (int)(fps * 100) % 100, (int)(fps * 100) % 100, 300, 300, &win);
+ make_window(dpy, "glxgears",
+ (int)(fps * 100) % 100, (int)(fps * 100) % 100, /* x,y */
+ WinWidth, WinHeight, &win);
XMapWindow(dpy, win);
frames = 0;
@@ -562,7 +506,6 @@ event_loop(Display *dpy)
}
-
int
main(int argc, char *argv[])
{
@@ -579,12 +522,6 @@ main(int argc, char *argv[])
else if (strcmp(argv[i], "-info") == 0) {
printInfo = GL_TRUE;
}
- else if (strcmp(argv[i], "-stereo") == 0) {
- stereo = GL_TRUE;
- }
- else if (strcmp(argv[i], "-fullscreen") == 0) {
- fullscreen = GL_TRUE;
- }
else
printf("Warrning: unknown parameter: %s\n", argv[i]);
}
@@ -596,7 +533,6 @@ main(int argc, char *argv[])
return -1;
}
-
if (printInfo) {
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
@@ -604,7 +540,6 @@ main(int argc, char *argv[])
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
}
-
event_loop(dpy);
XCloseDisplay(dpy);
diff --git a/progs/xdemos/glxgears.c b/progs/xdemos/glxgears.c
index 2dc157a890..088f25a357 100644
--- a/progs/xdemos/glxgears.c
+++ b/progs/xdemos/glxgears.c
@@ -23,10 +23,7 @@
* This is a port of the infamous "gears" demo to straight GLX (i.e. no GLUT)
* Port by Brian Paul 23 March 2001
*
- * Command line options:
- * -info print GL implementation information
- * -stereo use stereo enabled GLX visual
- *
+ * See usage() below for command line options.
*/
@@ -39,9 +36,11 @@
#include <GL/gl.h>
#include <GL/glx.h>
-static int is_glx_extension_supported(Display *dpy, const char *query);
+#ifndef GLX_MESA_swap_control
+#define GLX_MESA_swap_control 1
+typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void);
+#endif
-static void query_vsync(Display *dpy);
#define BENCHMARK
@@ -566,7 +565,7 @@ make_window( Display *dpy, const char *name,
/**
* Determine whether or not a GLX extension is supported.
*/
-int
+static int
is_glx_extension_supported(Display *dpy, const char *query)
{
const int scrnum = DefaultScreen(dpy);
@@ -586,37 +585,28 @@ is_glx_extension_supported(Display *dpy, const char *query)
/**
* Attempt to determine whether or not the display is synched to vblank.
*/
-void
+static void
query_vsync(Display *dpy)
{
int interval = 0;
-#ifdef GLX_MESA_swap_control
- if ((interval <= 0)
- && is_glx_extension_supported(dpy, "GLX_MESA_swap_control")) {
+ if (is_glx_extension_supported(dpy, "GLX_MESA_swap_control")) {
PFNGLXGETSWAPINTERVALMESAPROC pglXGetSwapIntervalMESA =
(PFNGLXGETSWAPINTERVALMESAPROC)
glXGetProcAddressARB((const GLubyte *) "glXGetSwapIntervalMESA");
interval = (*pglXGetSwapIntervalMESA)();
+ } else if (is_glx_extension_supported(dpy, "GLX_SGI_swap_control")) {
+ /* The default swap interval with this extension is 1. Assume that it
+ * is set to the default.
+ *
+ * Many Mesa-based drivers default to 0, but all of these drivers also
+ * export GLX_MESA_swap_control. In that case, this branch will never
+ * be taken, and the correct result should be reported.
+ */
+ interval = 1;
}
-#endif
-
-
-#ifdef GLX_SGI_video_sync
- if ((interval <= 0)
- && is_glx_extension_supported(dpy, "GLX_SGI_video_sync")) {
- PFNGLXGETVIDEOSYNCSGIPROC pglXGetVideoSyncSGI =
- (PFNGLXGETVIDEOSYNCSGIPROC)
- glXGetProcAddressARB((const GLubyte *) "glXGetVideoSyncSGI");
- unsigned count;
-
- if ((*pglXGetVideoSyncSGI)(& count) == 0) {
- interval = (int) count;
- }
- }
-#endif
if (interval > 0) {
diff --git a/progs/xdemos/glxheads.c b/progs/xdemos/glxheads.c
index b3290e90d5..b1a63d3d50 100644
--- a/progs/xdemos/glxheads.c
+++ b/progs/xdemos/glxheads.c
@@ -267,7 +267,8 @@ main(int argc, char *argv[])
printf(" glxheads xdisplayname ...\n");
printf("Example:\n");
printf(" glxheads :0 mars:0 venus:1\n");
- h = AddHead(":0");
+
+ h = AddHead(XDisplayName(NULL));
if (h)
PrintInfo(h);
}
diff --git a/progs/xdemos/glxswapcontrol.c b/progs/xdemos/glxswapcontrol.c
index 2c51801989..cd60d460a0 100644
--- a/progs/xdemos/glxswapcontrol.c
+++ b/progs/xdemos/glxswapcontrol.c
@@ -303,13 +303,13 @@ draw(void)
glDisable(GL_LIGHTING);
glShadeModel(GL_SMOOTH);
- glEnable( GL_VERTEX_ARRAY );
- glEnable( GL_COLOR_ARRAY );
+ glEnableClientState( GL_VERTEX_ARRAY );
+ glEnableClientState( GL_COLOR_ARRAY );
glVertexPointer( 3, GL_FLOAT, 0, vert );
glColorPointer( 3, GL_FLOAT, 0, col );
glDrawArrays( GL_POLYGON, 0, 4 );
- glDisable( GL_COLOR_ARRAY );
- glDisable( GL_VERTEX_ARRAY );
+ glDisableClientState( GL_COLOR_ARRAY );
+ glDisableClientState( GL_VERTEX_ARRAY );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
@@ -587,6 +587,9 @@ event_loop(Display *dpy, Window win)
angle += 2.0;
draw();
+
+ glXSwapBuffers(dpy, win);
+
if ( get_frame_usage != NULL ) {
GLfloat temp;
@@ -594,8 +597,6 @@ event_loop(Display *dpy, Window win)
frame_usage += temp;
}
- glXSwapBuffers(dpy, win);
-
/* calc framerate */
{
static int t0 = -1;
@@ -759,7 +760,7 @@ main(int argc, char *argv[])
Display *dpy;
Window win;
GLXContext ctx;
- char *dpyName = ":0";
+ char *dpyName = NULL;
int swap_interval = 1;
GLboolean do_swap_interval = GL_FALSE;
GLboolean force_get_rate = GL_FALSE;
diff --git a/progs/xdemos/multictx.c b/progs/xdemos/multictx.c
new file mode 100644
index 0000000000..75255b2860
--- /dev/null
+++ b/progs/xdemos/multictx.c
@@ -0,0 +1,585 @@
+/*
+ * Copyright (C) 2009 VMware, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Test rendering with two contexts into one window.
+ * Setup different rendering state for each context to check that
+ * context switching is handled properly.
+ *
+ * Brian Paul
+ * 6 Aug 2009
+ */
+
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+
+
+#ifndef M_PI
+#define M_PI 3.14159265
+#endif
+
+
+/** Event handler results: */
+#define NOP 0
+#define EXIT 1
+#define DRAW 2
+
+static GLfloat view_rotx = 0.0, view_roty = 210.0, view_rotz = 0.0;
+static GLint gear1, gear2;
+static GLfloat angle = 0.0;
+
+static GLboolean animate = GL_TRUE; /* Animation */
+
+
+static double
+current_time(void)
+{
+ struct timeval tv;
+#ifdef __VMS
+ (void) gettimeofday(&tv, NULL );
+#else
+ struct timezone tz;
+ (void) gettimeofday(&tv, &tz);
+#endif
+ return (double) tv.tv_sec + tv.tv_usec / 1000000.0;
+}
+
+
+/*
+ *
+ * Draw a gear wheel. You'll probably want to call this function when
+ * building a display list since we do a lot of trig here.
+ *
+ * Input: inner_radius - radius of hole at center
+ * outer_radius - radius at center of teeth
+ * width - width of gear
+ * teeth - number of teeth
+ * tooth_depth - depth of tooth
+ */
+static void
+gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
+ GLint teeth, GLfloat tooth_depth)
+{
+ GLint i;
+ GLfloat r0, r1, r2;
+ GLfloat angle, da;
+ GLfloat u, v, len;
+
+ r0 = inner_radius;
+ r1 = outer_radius - tooth_depth / 2.0;
+ r2 = outer_radius + tooth_depth / 2.0;
+
+ da = 2.0 * M_PI / teeth / 4.0;
+
+ glShadeModel(GL_FLAT);
+
+ glNormal3f(0.0, 0.0, 1.0);
+
+ /* draw front face */
+ glBegin(GL_QUAD_STRIP);
+ for (i = 0; i <= teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
+ if (i < teeth) {
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ width * 0.5);
+ }
+ }
+ glEnd();
+
+ /* draw front sides of teeth */
+ glBegin(GL_QUADS);
+ da = 2.0 * M_PI / teeth / 4.0;
+ for (i = 0; i < teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
+ glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
+ glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
+ width * 0.5);
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ width * 0.5);
+ }
+ glEnd();
+
+ glNormal3f(0.0, 0.0, -1.0);
+
+ /* draw back face */
+ glBegin(GL_QUAD_STRIP);
+ for (i = 0; i <= teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
+ if (i < teeth) {
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ -width * 0.5);
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
+ }
+ }
+ glEnd();
+
+ /* draw back sides of teeth */
+ glBegin(GL_QUADS);
+ da = 2.0 * M_PI / teeth / 4.0;
+ for (i = 0; i < teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ -width * 0.5);
+ glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
+ -width * 0.5);
+ glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
+ }
+ glEnd();
+
+ /* draw outward faces of teeth */
+ glBegin(GL_QUAD_STRIP);
+ for (i = 0; i < teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
+ glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
+ u = r2 * cos(angle + da) - r1 * cos(angle);
+ v = r2 * sin(angle + da) - r1 * sin(angle);
+ len = sqrt(u * u + v * v);
+ u /= len;
+ v /= len;
+ glNormal3f(v, -u, 0.0);
+ glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
+ glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
+ glNormal3f(cos(angle), sin(angle), 0.0);
+ glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
+ width * 0.5);
+ glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
+ -width * 0.5);
+ u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da);
+ v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da);
+ glNormal3f(v, -u, 0.0);
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ width * 0.5);
+ glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
+ -width * 0.5);
+ glNormal3f(cos(angle), sin(angle), 0.0);
+ }
+
+ glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5);
+ glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5);
+
+ glEnd();
+
+ glShadeModel(GL_SMOOTH);
+
+ /* draw inside radius cylinder */
+ glBegin(GL_QUAD_STRIP);
+ for (i = 0; i <= teeth; i++) {
+ angle = i * 2.0 * M_PI / teeth;
+ glNormal3f(-cos(angle), -sin(angle), 0.0);
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
+ glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
+ }
+ glEnd();
+}
+
+
+static void
+draw(int ctx)
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(view_rotx, 1.0, 0.0, 0.0);
+ glRotatef(view_roty + angle, 0.0, 1.0, 0.0);
+ glRotatef(view_rotz, 0.0, 0.0, 1.0);
+
+ if (ctx == 0) {
+ glDisable(GL_CULL_FACE);
+ glPushMatrix();
+ glRotatef(angle, 0.0, 0.0, 1.0);
+ glCallList(gear1);
+ glPopMatrix();
+ /* This should not effect the other context's rendering */
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_FRONT_AND_BACK);
+ }
+ else {
+ glPushMatrix();
+ glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0);
+ glCallList(gear2);
+ glPopMatrix();
+ }
+
+ glPopMatrix();
+
+ /* this flush is important since we'll be switching contexts next */
+ glFlush();
+}
+
+
+
+static void
+draw_frame(Display *dpy, Window win, GLXContext ctx1, GLXContext ctx2)
+{
+ static double tRot0 = -1.0;
+ double dt, t = current_time();
+
+ if (tRot0 < 0.0)
+ tRot0 = t;
+ dt = t - tRot0;
+ tRot0 = t;
+
+ if (animate) {
+ /* advance rotation for next frame */
+ angle += 70.0 * dt; /* 70 degrees per second */
+ if (angle > 3600.0)
+ angle -= 3600.0;
+ }
+
+ glXMakeCurrent(dpy, (GLXDrawable) win, ctx1);
+ draw(0);
+
+ glXMakeCurrent(dpy, (GLXDrawable) win, ctx2);
+ draw(1);
+
+ glXSwapBuffers(dpy, win);
+}
+
+
+/* new window size or exposure */
+static void
+reshape(Display *dpy, Window win,
+ GLXContext ctx1, GLXContext ctx2, int width, int height)
+{
+ int i;
+
+ width /= 2;
+
+ /* loop: left half of window, right half of window */
+ for (i = 0; i < 2; i++) {
+ if (i == 0)
+ glXMakeCurrent(dpy, win, ctx1);
+ else
+ glXMakeCurrent(dpy, win, ctx2);
+
+ glViewport(width * i, 0, width, height);
+ glScissor(width * i, 0, width, height);
+
+ {
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
+ }
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -30.0);
+ }
+}
+
+
+
+static void
+init(Display *dpy, Window win, GLXContext ctx1, GLXContext ctx2)
+{
+ static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 };
+ static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 };
+ static GLfloat green[4] = { 0.0, 0.8, 0.2, 0.5 };
+ /*static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 };*/
+
+ /* first ctx */
+ {
+ static GLuint stipple[32] = {
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+
+ 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00,
+ 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00,
+
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+
+ 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00,
+ 0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00
+ };
+
+ glXMakeCurrent(dpy, win, ctx1);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+
+ gear1 = glGenLists(1);
+ glNewList(gear1, GL_COMPILE);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
+ gear(1.0, 4.0, 1.0, 20, 0.7);
+ glEndList();
+
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_SCISSOR_TEST);
+ glClearColor(0.4, 0.4, 0.4, 1.0);
+
+ glPolygonStipple((GLubyte *) stipple);
+ glEnable(GL_POLYGON_STIPPLE);
+ }
+
+ /* second ctx */
+ {
+ glXMakeCurrent(dpy, win, ctx2);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+
+ gear2 = glGenLists(1);
+ glNewList(gear2, GL_COMPILE);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
+ gear(1.5, 3.0, 1.5, 16, 0.7);
+ glEndList();
+
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_SCISSOR_TEST);
+ glClearColor(0.6, 0.6, 0.6, 1.0);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+}
+
+
+/**
+ * Create an RGB, double-buffered window.
+ * Return the window and two context handles.
+ */
+static void
+make_window_and_contexts( Display *dpy, const char *name,
+ int x, int y, int width, int height,
+ Window *winRet,
+ GLXContext *ctxRet1,
+ GLXContext *ctxRet2)
+{
+ int attribs[] = { GLX_RGBA,
+ GLX_RED_SIZE, 1,
+ GLX_GREEN_SIZE, 1,
+ GLX_BLUE_SIZE, 1,
+ GLX_DOUBLEBUFFER,
+ GLX_DEPTH_SIZE, 1,
+ None };
+ int scrnum;
+ XSetWindowAttributes attr;
+ unsigned long mask;
+ Window root;
+ Window win;
+ XVisualInfo *visinfo;
+
+ scrnum = DefaultScreen( dpy );
+ root = RootWindow( dpy, scrnum );
+
+ visinfo = glXChooseVisual( dpy, scrnum, attribs );
+ if (!visinfo) {
+ printf("Error: couldn't get an RGB, Double-buffered visual\n");
+ exit(1);
+ }
+
+ /* window attributes */
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap( dpy, root, visinfo->visual, AllocNone);
+ attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ win = XCreateWindow( dpy, root, x, y, width, height,
+ 0, visinfo->depth, InputOutput,
+ visinfo->visual, mask, &attr );
+
+ /* set hints and properties */
+ {
+ XSizeHints sizehints;
+ sizehints.x = x;
+ sizehints.y = y;
+ sizehints.width = width;
+ sizehints.height = height;
+ sizehints.flags = USSize | USPosition;
+ XSetNormalHints(dpy, win, &sizehints);
+ XSetStandardProperties(dpy, win, name, name,
+ None, (char **)NULL, 0, &sizehints);
+ }
+
+ *winRet = win;
+ *ctxRet1 = glXCreateContext( dpy, visinfo, NULL, True );
+ *ctxRet2 = glXCreateContext( dpy, visinfo, NULL, True );
+
+ if (!*ctxRet1 || !*ctxRet2) {
+ printf("Error: glXCreateContext failed\n");
+ exit(1);
+ }
+
+ XFree(visinfo);
+}
+
+
+/**
+ * Handle one X event.
+ * \return NOP, EXIT or DRAW
+ */
+static int
+handle_event(Display *dpy, Window win, GLXContext ctx1, GLXContext ctx2,
+ XEvent *event)
+{
+ (void) dpy;
+ (void) win;
+
+ switch (event->type) {
+ case Expose:
+ return DRAW;
+ case ConfigureNotify:
+ reshape(dpy, win, ctx1, ctx2,
+ event->xconfigure.width, event->xconfigure.height);
+ break;
+ case KeyPress:
+ {
+ char buffer[10];
+ int r, code;
+ code = XLookupKeysym(&event->xkey, 0);
+ if (code == XK_Left) {
+ view_roty += 5.0;
+ }
+ else if (code == XK_Right) {
+ view_roty -= 5.0;
+ }
+ else if (code == XK_Up) {
+ view_rotx += 5.0;
+ }
+ else if (code == XK_Down) {
+ view_rotx -= 5.0;
+ }
+ else {
+ r = XLookupString(&event->xkey, buffer, sizeof(buffer),
+ NULL, NULL);
+ if (buffer[0] == 27) {
+ /* escape */
+ return EXIT;
+ }
+ else if (buffer[0] == 'a' || buffer[0] == 'A') {
+ animate = !animate;
+ }
+ }
+ return DRAW;
+ }
+ }
+ return NOP;
+}
+
+
+static void
+event_loop(Display *dpy, Window win, GLXContext ctx1, GLXContext ctx2)
+{
+ while (1) {
+ int op;
+ while (!animate || XPending(dpy) > 0) {
+ XEvent event;
+ XNextEvent(dpy, &event);
+ op = handle_event(dpy, win, ctx1, ctx2, &event);
+ if (op == EXIT)
+ return;
+ else if (op == DRAW)
+ break;
+ }
+
+ draw_frame(dpy, win, ctx1, ctx2);
+ }
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ unsigned int winWidth = 800, winHeight = 400;
+ int x = 0, y = 0;
+ Display *dpy;
+ Window win;
+ GLXContext ctx1, ctx2;
+ char *dpyName = NULL;
+ GLboolean printInfo = GL_FALSE;
+ int i;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-display") == 0) {
+ dpyName = argv[i+1];
+ i++;
+ }
+ else {
+ return 1;
+ }
+ }
+
+ dpy = XOpenDisplay(dpyName);
+ if (!dpy) {
+ printf("Error: couldn't open display %s\n",
+ dpyName ? dpyName : getenv("DISPLAY"));
+ return -1;
+ }
+
+ make_window_and_contexts(dpy, "multictx", x, y, winWidth, winHeight,
+ &win, &ctx1, &ctx2);
+ XMapWindow(dpy, win);
+
+ if (printInfo) {
+ printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
+ printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
+ printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
+ printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
+ }
+
+ init(dpy, win, ctx1, ctx2);
+
+ /* Set initial projection/viewing transformation.
+ * We can't be sure we'll get a ConfigureNotify event when the window
+ * first appears.
+ */
+ reshape(dpy, win, ctx1, ctx2, winWidth, winHeight);
+
+ event_loop(dpy, win, ctx1, ctx2);
+
+ glDeleteLists(gear1, 1);
+ glDeleteLists(gear2, 1);
+ glXDestroyContext(dpy, ctx1);
+ glXDestroyContext(dpy, ctx2);
+ XDestroyWindow(dpy, win);
+ XCloseDisplay(dpy);
+
+ return 0;
+}
diff --git a/progs/xdemos/opencloseopen.c b/progs/xdemos/opencloseopen.c
index 0b8d061843..756096095e 100644
--- a/progs/xdemos/opencloseopen.c
+++ b/progs/xdemos/opencloseopen.c
@@ -158,7 +158,7 @@ main(int argc, char *argv[])
Display *dpy;
Window win;
GLXContext ctx;
- char *dpyName = ":0";
+ char *dpyName = NULL;
int i;
for (i = 1; i < argc; i++) {