summaryrefslogtreecommitdiff
path: root/progs/tests
diff options
context:
space:
mode:
Diffstat (limited to 'progs/tests')
-rw-r--r--progs/tests/.gitignore121
-rw-r--r--progs/tests/Makefile268
-rw-r--r--progs/tests/Makefile.win43
-rw-r--r--progs/tests/SConscript132
-rw-r--r--progs/tests/afsmultiarb.c470
-rw-r--r--progs/tests/antialias.c231
-rw-r--r--progs/tests/api_speed.c145
-rwxr-xr-xprogs/tests/api_speed.py143
-rw-r--r--progs/tests/arbfpspec.c193
-rw-r--r--progs/tests/arbfptest1.c211
-rw-r--r--progs/tests/arbfptexture.c154
-rw-r--r--progs/tests/arbfptrig.c157
-rw-r--r--progs/tests/arbgpuprog.c234
-rw-r--r--progs/tests/arbnpot-mipmap.c186
-rw-r--r--progs/tests/arbnpot.c199
-rw-r--r--progs/tests/arbvptest1.c165
-rw-r--r--progs/tests/arbvptest3.c128
-rw-r--r--progs/tests/arbvptorus.c187
-rw-r--r--progs/tests/arbvpwarpmesh.c247
-rw-r--r--progs/tests/arraytexture.c329
-rw-r--r--progs/tests/auxbuffer.c499
-rw-r--r--progs/tests/blendminmax.c211
-rw-r--r--progs/tests/blendsquare.c180
-rw-r--r--progs/tests/blendxor.c197
-rw-r--r--progs/tests/blitfb.c259
-rw-r--r--progs/tests/bufferobj.c517
-rw-r--r--progs/tests/bug_3050.c164
-rw-r--r--progs/tests/bug_3101.c130
-rw-r--r--progs/tests/bug_3195.c276
-rw-r--r--progs/tests/bug_texstore_i8.c196
-rw-r--r--progs/tests/bumpmap.c208
-rw-r--r--progs/tests/calibrate_rast.c397
-rw-r--r--progs/tests/condrender.c242
-rw-r--r--progs/tests/copypixrate.c278
-rw-r--r--progs/tests/crossbar.c237
-rw-r--r--progs/tests/cva.c160
-rw-r--r--progs/tests/cva_huge.c232
-rw-r--r--progs/tests/cylwrap.c259
-rw-r--r--progs/tests/debugger.c735
-rw-r--r--progs/tests/drawbuffers.c311
-rw-r--r--progs/tests/drawbuffers2.c364
-rw-r--r--progs/tests/exactrast.c202
-rw-r--r--progs/tests/ext422square.c259
-rw-r--r--progs/tests/fbotest1.c212
-rw-r--r--progs/tests/fbotest2.c231
-rw-r--r--progs/tests/fbotest3.c231
-rw-r--r--progs/tests/fillrate.c204
-rw-r--r--progs/tests/floattex.c238
-rw-r--r--progs/tests/fog.c200
-rw-r--r--progs/tests/fogcoord.c103
-rw-r--r--progs/tests/fptest1.c228
-rw-r--r--progs/tests/fptexture.c152
-rw-r--r--progs/tests/getprocaddress.c3741
-rw-r--r--progs/tests/getprocaddress.py94
-rw-r--r--progs/tests/getteximage.c273
-rw-r--r--progs/tests/glutfx.c189
-rw-r--r--progs/tests/interleave.c408
-rw-r--r--progs/tests/invert.c197
-rw-r--r--progs/tests/jkrahntest.c180
-rw-r--r--progs/tests/lineclip.c177
-rw-r--r--progs/tests/manytex.c395
-rw-r--r--progs/tests/mapbufrange.c205
-rw-r--r--progs/tests/mapvbo.c139
-rw-r--r--progs/tests/minmag.c199
-rw-r--r--progs/tests/mipgen.c205
-rw-r--r--progs/tests/mipmap_comp.c299
-rw-r--r--progs/tests/mipmap_comp_tests.c316
-rw-r--r--progs/tests/mipmap_limits.c352
-rw-r--r--progs/tests/mipmap_view.c434
-rw-r--r--progs/tests/multipal.c374
-rw-r--r--progs/tests/multitexarray.c240
-rw-r--r--progs/tests/multiwindow.c170
-rw-r--r--progs/tests/no_s3tc.c98
-rw-r--r--progs/tests/occlude.c234
-rw-r--r--progs/tests/packedpixels.c377
-rw-r--r--progs/tests/pbo.c297
-rw-r--r--progs/tests/persp_hint.c149
-rw-r--r--progs/tests/prim.c559
-rw-r--r--progs/tests/prog_parameter.c292
-rw-r--r--progs/tests/quads.c262
-rw-r--r--progs/tests/random.c458
-rw-r--r--progs/tests/readrate.c286
-rw-r--r--progs/tests/rubberband.c246
-rw-r--r--progs/tests/scissor-viewport.c138
-rw-r--r--progs/tests/scissor.c168
-rw-r--r--progs/tests/seccolor.c146
-rw-r--r--progs/tests/shader_api.c350
-rw-r--r--progs/tests/sharedtex.c439
-rw-r--r--progs/tests/stencil_twoside.c350
-rw-r--r--progs/tests/stencil_wrap.c259
-rw-r--r--progs/tests/stencilreaddraw.c187
-rw-r--r--progs/tests/stencilwrap.c283
-rw-r--r--progs/tests/streaming_rect.c325
-rw-r--r--progs/tests/subtex.c225
-rw-r--r--progs/tests/subtexrate.c351
-rw-r--r--progs/tests/tex1d.c143
-rw-r--r--progs/tests/texcmp.c438
-rw-r--r--progs/tests/texcomp_image.h4100
-rw-r--r--progs/tests/texcompress2.c292
-rw-r--r--progs/tests/texcompsub.c183
-rw-r--r--progs/tests/texdown.c478
-rw-r--r--progs/tests/texfilt.c400
-rw-r--r--progs/tests/texgenmix.c642
-rw-r--r--progs/tests/texleak.c140
-rw-r--r--progs/tests/texline.c280
-rw-r--r--progs/tests/texobj.c284
-rw-r--r--progs/tests/texobjshare.c219
-rw-r--r--progs/tests/texrect.c360
-rw-r--r--progs/tests/texwrap.c354
-rw-r--r--progs/tests/tkmap.c71
-rw-r--r--progs/tests/unfilledclip.c209
-rw-r--r--progs/tests/vao-01.c179
-rw-r--r--progs/tests/vao-02.c207
-rw-r--r--progs/tests/vparray.c297
-rw-r--r--progs/tests/vpeval.c237
-rw-r--r--progs/tests/vptest1.c176
-rw-r--r--progs/tests/vptest2.c158
-rw-r--r--progs/tests/vptest3.c126
-rw-r--r--progs/tests/vptorus.c175
-rw-r--r--progs/tests/vpwarpmesh.c237
-rw-r--r--progs/tests/yuvrect.c194
-rw-r--r--progs/tests/yuvsquare.c233
-rw-r--r--progs/tests/zbitmap.c127
-rw-r--r--progs/tests/zcomp.c223
-rw-r--r--progs/tests/zdrawpix.c193
-rw-r--r--progs/tests/zreaddraw.c219
126 files changed, 0 insertions, 38895 deletions
diff --git a/progs/tests/.gitignore b/progs/tests/.gitignore
deleted file mode 100644
index 37be27fff2..0000000000
--- a/progs/tests/.gitignore
+++ /dev/null
@@ -1,121 +0,0 @@
-afsmultiarb
-antialias
-arbfpspec
-arbfptest1
-arbfptexture
-arbfptrig
-arbgpuprog
-arbnpot
-arbnpot-mipmap
-arbvptest1
-arbvptest3
-arbvptorus
-arbvpwarpmesh
-arraytexture
-auxbuffer
-blendminmax
-blendsquare
-blendxor
-blitfb
-bufferobj
-bug_3050
-bug_3101
-bug_3195
-bug_texstore_i8
-bumpmap
-calibrate_rast
-condrender
-copypixrate
-crossbar
-cva
-cva_huge
-cylwrap
-drawbuffers
-drawbuffers2
-exactrast
-ext422square
-extfuncs.h
-fbotest1
-fbotest2
-fbotest3
-fillrate
-floattex
-fog
-fogcoord
-fptest1
-fptexture
-getprocaddress
-getproclist.h
-getteximage
-glutfx
-interleave
-invert
-jkrahntest
-lineclip
-manytex
-mapbufrange
-mapvbo
-minmag
-mipgen
-mipmap_comp
-mipmap_comp_tests
-mipmap_limits
-mipmap_view
-multipal
-multitexarray
-multiwindow
-no_s3tc
-packedpixels
-pbo
-persp_hint
-prim
-prog_parameter
-quads
-random
-readrate
-readtex.c
-readtex.h
-rubberband
-scissor
-scissor-viewport
-seccolor
-shader_api
-shaderutil.c
-shaderutil.h
-sharedtex
-stencilreaddraw
-stencil_twoside
-stencilwrap
-stencil_wrap
-streaming_rect
-subtex
-subtexrate
-tex1d
-texcmp
-texcompress2
-texcompsub
-texdown
-texfilt
-texgenmix
-texleak
-texline
-texobj
-texobjshare
-texrect
-texwrap
-unfilledclip
-vao-01
-vao-02
-vparray
-vpeval
-vptest1
-vptest2
-vptest3
-vptorus
-vpwarpmesh
-yuvrect
-yuvsquare
-zbitmap
-zcomp
-zdrawpix
-zreaddraw
diff --git a/progs/tests/Makefile b/progs/tests/Makefile
deleted file mode 100644
index f8473e64e2..0000000000
--- a/progs/tests/Makefile
+++ /dev/null
@@ -1,268 +0,0 @@
-# progs/tests/Makefile
-
-
-# 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
-
-
-LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLEW_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS)
-
-SOURCES = \
- afsmultiarb.c \
- antialias.c \
- arbfpspec.c \
- arbfptest1.c \
- arbfptexture.c \
- arbfptrig.c \
- arbgpuprog.c \
- arbnpot.c \
- arbnpot-mipmap.c \
- arbvptest1.c \
- arbvptest3.c \
- arbvptorus.c \
- arbvpwarpmesh.c \
- arraytexture.c \
- auxbuffer.c \
- blendminmax.c \
- blendsquare.c \
- blendxor.c \
- blitfb.c \
- bufferobj.c \
- bumpmap.c \
- bug_3050.c \
- bug_3101.c \
- bug_3195.c \
- bug_texstore_i8.c \
- calibrate_rast.c \
- condrender.c \
- copypixrate.c \
- crossbar.c \
- cva.c \
- cva_huge.c \
- cylwrap.c \
- drawbuffers.c \
- drawbuffers2.c \
- exactrast.c \
- ext422square.c \
- floattex.c \
- fbotest1.c \
- fbotest2.c \
- fbotest3.c \
- fillrate.c \
- fog.c \
- fogcoord.c \
- fptest1.c \
- fptexture.c \
- getprocaddress.c \
- getteximage.c \
- glutfx.c \
- interleave.c \
- invert.c \
- jkrahntest.c \
- lineclip.c \
- manytex.c \
- mapbufrange.c \
- mapvbo.c \
- minmag.c \
- mipgen.c \
- mipmap_comp.c \
- mipmap_comp_tests.c \
- mipmap_limits.c \
- mipmap_view.c \
- multipal.c \
- multitexarray.c \
- multiwindow.c \
- no_s3tc.c \
- packedpixels.c \
- pbo.c \
- persp_hint.c \
- prim.c \
- prog_parameter.c \
- quads.c \
- random.c \
- readrate.c \
- rubberband.c \
- scissor.c \
- scissor-viewport.c \
- seccolor.c \
- shader_api.c \
- sharedtex.c \
- stencilreaddraw.c \
- stencil_twoside.c \
- stencilwrap.c \
- stencil_wrap.c \
- streaming_rect \
- subtex \
- subtexrate.c \
- tex1d.c \
- texcmp.c \
- texcompress2.c \
- texcompsub.c \
- texdown \
- texfilt.c \
- texgenmix.c \
- texleak.c \
- texline.c \
- texobj.c \
- texobjshare.c \
- texrect.c \
- texwrap.c \
- unfilledclip.c \
- vao-01.c \
- vao-02.c \
- vparray.c \
- vpeval.c \
- vptest1.c \
- vptest2.c \
- vptest3.c \
- vptorus.c \
- vpwarpmesh.c \
- yuvrect.c \
- yuvsquare.c \
- zbitmap.c \
- zcomp.c \
- zdrawpix.c \
- zreaddraw.c
-
-PROGS = $(SOURCES:%.c=%)
-
-INCLUDES = -I. -I$(TOP)/include
-
-UTIL_FILES = readtex.h readtex.c
-
-
-GL_API_XML = $(TOP)/src/mapi/glapi/gen/gl_API.xml
-
-
-##### TARGETS #####
-
-default: $(UTIL_FILES) $(PROGS)
-
-clean:
- -rm -f $(PROGS)
- -rm -f *.o
- -rm -f getproclist.h
-
-##### RULES #####
-
-.SUFFIXES:
-.SUFFIXES: .c
-
-.c:
- $(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@
-
-.c.o:
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
-
-# auto code generation
-getprocaddress: getprocaddress.c getproclist.h
-
-getproclist.h: $(GL_API_XML) getprocaddress.c getprocaddress.py
- python getprocaddress.py > getproclist.h
-
-arraytexture: arraytexture.o readtex.o
- $(APP_CC) $(CFLAGS) arraytexture.o readtex.o $(LIBS) -o $@
-
-arraytexture.o: arraytexture.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) arraytexture.c -o $@
-
-afsmultiarb: afsmultiarb.o readtex.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) afsmultiarb.o readtex.o $(LIBS) -o $@
-
-afsmultiarb.o: afsmultiarb.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) afsmultiarb.c -o $@
-
-bumpmap: bumpmap.o readtex.o
- $(CC) $(CFLAGS) $(LDFLAGS) bumpmap.o readtex.o $(LIBS) -o $@
-
-bumpmap.o: bumpmap.c readtex.h
- $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) bumpmap.c -o $@
-
-drawbuffers: drawbuffers.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) drawbuffers.o $(LIBS) -o $@
-
-drawbuffers.o: drawbuffers.c extfuncs.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) drawbuffers.c -o $@
-
-texrect: texrect.o readtex.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) texrect.o readtex.o $(LIBS) -o $@
-
-texrect.o: texrect.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) texrect.c -o $@
-
-bug_3195: bug_3195.o readtex.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) bug_3195.o readtex.o $(LIBS) -o $@
-
-bug_3195.o: bug_3195.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) bug_3195.c -o $@
-
-invert: invert.o readtex.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) invert.o readtex.o $(LIBS) -o $@
-
-invert.o: invert.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) invert.c -o $@
-
-mipmap_view: mipmap_view.o readtex.o
- $(APP_CC) $(CFLAGS) mipmap_view.o readtex.o $(LIBS) -o $@
-
-mipmap_view.o: mipmap_view.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
-
-mipmap_limits: mipmap_limits.o readtex.o
- $(APP_CC) $(CFLAGS) mipmap_limits.o readtex.o $(LIBS) -o $@
-
-mipmap_limits.o: mipmap_limits.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
-
-fillrate: fillrate.o readtex.o
- $(APP_CC) $(CFLAGS) fillrate.o readtex.o $(LIBS) -o $@
-
-fillrate.o: fillrate.c readtex.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-
-
-floattex: floattex.o readtex.o shaderutil.o
- $(APP_CC) $(CFLAGS) $(LDFLAGS) floattex.o readtex.o shaderutil.o $(LIBS) -o $@
-
-floattex.o: floattex.c readtex.h shaderutil.h
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) floattex.c -o $@
-
-
-readtex.o: readtex.c
- $(APP_CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) readtex.c -o $@
-
-readtex.h: $(TOP)/progs/util/readtex.h
- ln -s $(TOP)/progs/util/readtex.h .
-
-readtex.c: $(TOP)/progs/util/readtex.c
- ln -s $(TOP)/progs/util/readtex.c .
-
-
-
-extfuncs.h: $(TOP)/progs/util/extfuncs.h
- ln -s $(TOP)/progs/util/extfuncs.h .
-
-
-
-shaderutil.c: $(TOP)/progs/util/shaderutil.c
- cp $< .
-
-shaderutil.h: $(TOP)/progs/util/shaderutil.h
- cp $< .
-
-shaderutil.o: shaderutil.c shaderutil.h
- $(APP_CC) -c -I$(INCDIR) $(INCLUDES) $(CFLAGS) shaderutil.c
-
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
diff --git a/progs/tests/Makefile.win b/progs/tests/Makefile.win
deleted file mode 100644
index d42e3cb654..0000000000
--- a/progs/tests/Makefile.win
+++ /dev/null
@@ -1,43 +0,0 @@
-
-# Mesa 3-D graphics library
-# Version: 3.5
-# Copyright (C) 1995-2001 Brian Paul
-
-# Makefile for GLUT-based demo programs for Windows
-
-!include <win32.mak>
-
-##### MACROS #####
-
-TOP = ..
-INCDIR = ..\include
-LIBDIR = ..\lib
-
-SRCS = cva.c \
- dinoshade.c \
- fogcoord.c \
- manytex.c \
- multipal.c \
- projtex.c \
- seccolor.c \
-# sharedtex.c \
- texline.c \
- texwrap.c \
- vptest1.c \
- vptest2.c \
- vptest3.c \
- vptorus.c \
- vpwarpmesh.c
-
-!include "../mesawin32.mak"
-
-##### TARGETS #####
-
-clean::
-
-clobber::
- @del readtex.c readtex.h
-
-$(EXES) :$*.obj
- @echo $@
- $(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)
diff --git a/progs/tests/SConscript b/progs/tests/SConscript
deleted file mode 100644
index 429d3bb957..0000000000
--- a/progs/tests/SConscript
+++ /dev/null
@@ -1,132 +0,0 @@
-Import('*')
-
-linux_progs = [
- 'api_speed',
-]
-
-glx_progs = [
- 'auxbuffer',
- 'getprocaddress',
- 'jkrahntest',
- 'sharedtex',
- 'texobjshare',
-]
-
-mesa_progs = [
- 'debugger',
-]
-
-progs = [
- 'afsmultiarb',
- 'antialias',
- 'arbfpspec',
- 'arbfptest1',
- 'arbfptexture',
- 'arbfptrig',
- 'arbnpot',
- 'arbnpot-mipmap',
- 'arbvptest1',
- 'arbvptest3',
- 'arbvptorus',
- 'arbvpwarpmesh',
- 'arraytexture',
- 'blendminmax',
- 'blendsquare',
- 'blendxor',
- 'blitfb',
- 'bufferobj',
- 'bug_3050',
- 'bug_3101',
- 'bug_3195',
- 'bug_texstore_i8',
- 'calibrate_rast',
- 'condrender',
- 'copypixrate',
- 'crossbar',
- 'cva',
- 'cva_huge',
- 'cylwrap',
- 'drawbuffers',
- 'drawbuffers2',
- 'exactrast',
- 'ext422square',
- 'fbotest1',
- 'fbotest2',
- 'fbotest3',
- 'fillrate',
- 'floattex',
- 'fog',
- 'fogcoord',
- 'fptest1',
- 'fptexture',
- 'getteximage',
- 'glutfx',
- 'interleave',
- 'invert',
- 'lineclip',
- 'manytex',
- 'mapbufrange',
- 'mapvbo',
- 'minmag',
- 'mipgen',
- 'mipmap_comp',
- 'mipmap_comp_tests',
- 'mipmap_limits',
- 'mipmap_view',
- 'multipal',
- 'multitexarray',
- 'multiwindow',
- 'no_s3tc',
- 'packedpixels',
- 'pbo',
- 'persp_hint',
- 'prog_parameter',
- 'quads',
- 'random',
- 'readrate',
- 'rubberband',
- 'scissor',
- 'scissor-viewport',
- 'seccolor',
- 'shader_api',
- 'stencilreaddraw',
- 'stencil_twoside',
- 'stencil_wrap',
- 'stencilwrap',
- 'streaming_rect',
- 'subtex',
- 'subtexrate',
- 'tex1d',
- 'texcmp',
- 'texcompress2',
- 'texcompsub',
- 'texdown',
- 'texfilt',
- 'texgenmix',
- 'texline',
- 'texobj',
- 'texrect',
- 'texwrap',
- 'unfilledclip',
- 'vao-01',
- 'vao-02',
- 'vparray',
- 'vpeval',
- 'vptest1',
- 'vptest2',
- 'vptest3',
- 'vptorus',
- 'vpwarpmesh',
- 'yuvrect',
- 'yuvsquare',
- 'zbitmap',
- 'zcomp',
- 'zdrawpix',
- 'zreaddraw',
-]
-
-for prog in progs:
- progs_env.Program(
- target = prog,
- source = prog + '.c',
- )
diff --git a/progs/tests/afsmultiarb.c b/progs/tests/afsmultiarb.c
deleted file mode 100644
index ca25a4d75b..0000000000
--- a/progs/tests/afsmultiarb.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * GL_ATI_fragment_shader test
- * Roland Scheidegger
- *
- * Command line options:
- * -info print GL implementation information
- */
-
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-#define TEXTURE_1_FILE "../images/girl.rgb"
-#define TEXTURE_2_FILE "../images/reflect.rgb"
-
-#define TEX0 1
-#define TEX7 8
-#define ANIMATE 10
-#define SHADER 20
-#define QUIT 100
-
-static GLboolean Animate = GL_TRUE;
-static GLint NumUnits = 6;
-static GLboolean TexEnabled[8];
-static GLuint boringshaderID = 0;
-static GLuint boring2passID = 0;
-static GLboolean Shader = GL_FALSE;
-
-static GLfloat Drift = 0.0;
-static GLfloat drift_increment = 0.005;
-static GLfloat Xrot = 20.0, Yrot = 30.0, Zrot = 0.0;
-static GLfloat shaderconstant[4] = {0.5, 0.0, 0.0, 0.0};
-
-static void Idle( void )
-{
- if (Animate) {
- GLint i;
-
- Drift += drift_increment;
- if (Drift >= 1.0)
- Drift = 0.0;
-
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glMatrixMode(GL_TEXTURE);
- glLoadIdentity();
- if (i == 0) {
- glTranslatef(Drift, 0.0, 0.0);
- glScalef(2, 2, 1);
- }
- else if (i == 1) {
- glTranslatef(0.0, Drift, 0.0);
- }
- else {
- glTranslatef(0.5, 0.5, 0.0);
- glRotatef(180.0 * Drift, 0, 0, 1);
- glScalef(1.0/i, 1.0/i, 1.0/i);
- glTranslatef(-0.5, -0.5, 0.0);
- }
- }
- glMatrixMode(GL_MODELVIEW);
-
- glutPostRedisplay();
- }
-}
-
-
-static void DrawObject(void)
-{
- GLint i;
- GLint j;
- static const GLfloat tex_coords[] = { 0.0, 0.0, 1.0, 1.0, 0.0 };
- static const GLfloat vtx_coords[] = { -1.0, -1.0, 1.0, 1.0, -1.0 };
-
- if (!TexEnabled[0] && !TexEnabled[1])
- glColor3f(0.1, 0.1, 0.1); /* add onto this */
- else
- glColor3f(1, 1, 1); /* modulate this */
-
- glBegin(GL_QUADS);
-
- /* Toggle between the vector and scalar entry points. This is done purely
- * to hit multiple paths in the driver.
- */
- if ( Drift > 0.49 ) {
- for (j = 0; j < 4; j++ ) {
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i,
- tex_coords[j], tex_coords[j+1]);
- glVertex2f( vtx_coords[j], vtx_coords[j+1] );
- }
- }
- else {
- for (j = 0; j < 4; j++ ) {
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fvARB(GL_TEXTURE0_ARB + i, & tex_coords[j]);
- glVertex2fv( & vtx_coords[j] );
- }
- }
-
- glEnd();
-}
-
-
-
-static void Display( void )
-{
- static GLint T0 = 0;
- static GLint Frames = 0;
- GLint t;
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glScalef(5.0, 5.0, 5.0);
- DrawObject();
- glPopMatrix();
-
- glutSwapBuffers();
-
- Frames++;
-
- t = glutGet(GLUT_ELAPSED_TIME);
- if (t - T0 >= 2500) {
- GLfloat seconds = (t - T0) / 1000.0;
- GLfloat fps = Frames / seconds;
- drift_increment = 2.2 * seconds / Frames;
- printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
- T0 = t;
- Frames = 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, 10.0, 100.0 );
- /*glOrtho( -6.0, 6.0, -6.0, 6.0, 10.0, 100.0 );*/
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -70.0 );
-}
-
-
-static void ModeMenu(int entry)
-{
- if (entry >= TEX0 && entry <= TEX7) {
- /* toggle */
- GLint i = entry - TEX0;
- TexEnabled[i] = !TexEnabled[i];
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- if (TexEnabled[i])
- glEnable(GL_TEXTURE_2D);
- else
- glDisable(GL_TEXTURE_2D);
- printf("Enabled: ");
- for (i = 0; i < NumUnits; i++)
- printf("%d ", (int) TexEnabled[i]);
- printf("\n");
- }
- else if (entry==ANIMATE) {
- Animate = !Animate;
- }
- else if (entry==SHADER) {
- Shader = !Shader;
- if (Shader) {
- fprintf(stderr, "using 2-pass shader\n");
- glBindFragmentShaderATI(boring2passID);
- }
- else {
- fprintf(stderr, "using 1-pass shader\n");
- glBindFragmentShaderATI(boringshaderID);
- }
- }
- else if (entry==QUIT) {
- exit(0);
- }
-
- glutPostRedisplay();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Init( int argc, char *argv[] )
-{
- GLuint texObj[8];
- GLint size, i;
-
- const char *exten = (const char *) glGetString(GL_EXTENSIONS);
- if (!strstr(exten, "GL_ATI_fragment_shader")) {
- printf("Sorry, GL_ATI_fragment_shader not supported by this renderer.\n");
- exit(1);
- }
-
-
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size);
- printf("%d x %d max texture size\n", size, size);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- for (i = 0; i < NumUnits; i++) {
- if (i < 6)
- TexEnabled[i] = GL_TRUE;
- else
- TexEnabled[i] = GL_FALSE;
- }
-
- /* allocate two texture objects */
- glGenTextures(NumUnits, texObj);
-
- /* setup the texture objects */
- for (i = 0; i < NumUnits; i++) {
-
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glBindTexture(GL_TEXTURE_2D, texObj[i]);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
- if (i == 0) {
- if (!LoadRGBMipmaps(TEXTURE_1_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
- }
- else if (i == 1) {
- if (!LoadRGBMipmaps(TEXTURE_2_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
- }
- else {
- /* checker */
- GLubyte image[8][8][3];
- GLint i, j;
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 8; j++) {
- if ((i + j) & 1) {
- image[i][j][0] = 50;
- image[i][j][1] = 50;
- image[i][j][2] = 50;
- }
- else {
- image[i][j][0] = 25;
- image[i][j][1] = 25;
- image[i][j][2] = 25;
- }
- }
- }
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 8, 8, 0,
- GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *) image);
- }
-
- /* Bind texObj[i] to ith texture unit */
-/* if (i < 2)
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- else
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);*/
-
- if (TexEnabled[i])
- glEnable(GL_TEXTURE_2D);
- }
-
- boringshaderID = glGenFragmentShadersATI(1);
- boring2passID = glGenFragmentShadersATI(1);
- if (boring2passID == 0)
- {
- fprintf(stderr, "couldn't get frag shader id\n");
- exit(1);
- }
- glBindFragmentShaderATI(boringshaderID);
-/* maybe not the most creative shader but at least I know how it should look like! */
- glBeginFragmentShaderATI();
- glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE0_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_1_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_2_ATI, GL_TEXTURE2_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_3_ATI, GL_TEXTURE3_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_4_ATI, GL_TEXTURE4_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_5_ATI, GL_TEXTURE5_ARB, GL_SWIZZLE_STR_ATI);
- glColorFragmentOp2ATI(GL_MUL_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_PRIMARY_COLOR, GL_NONE, GL_NONE);
- glAlphaFragmentOp1ATI(GL_MOV_ATI,
- GL_REG_0_ATI, GL_NONE,
- GL_PRIMARY_COLOR, GL_NONE, GL_NONE);
- glColorFragmentOp3ATI(GL_MAD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_1_ATI, GL_NONE, GL_NONE,
- GL_REG_2_ATI, GL_NONE, GL_NONE);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_3_ATI, GL_NONE, GL_NONE);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_4_ATI, GL_NONE, GL_NONE);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_5_ATI, GL_NONE, GL_NONE);
- glEndFragmentShaderATI();
-
-/* mathematically equivalent to first shader but using 2 passes together with
- some tex coord rerouting */
- glBindFragmentShaderATI(boring2passID);
- glBeginFragmentShaderATI();
- glPassTexCoordATI(GL_REG_1_ATI, GL_TEXTURE0_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_2_ATI, GL_TEXTURE2_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_3_ATI, GL_TEXTURE3_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_4_ATI, GL_TEXTURE4_ARB, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_5_ATI, GL_TEXTURE5_ARB, GL_SWIZZLE_STR_ATI);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_2_ATI, GL_NONE, GL_NONE,
- GL_REG_3_ATI, GL_NONE, GL_NONE);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_4_ATI, GL_NONE, GL_NONE);
- glColorFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_5_ATI, GL_NONE, GL_NONE);
- /* not really a dependant read */
- glSampleMapATI(GL_REG_0_ATI, GL_REG_1_ATI, GL_SWIZZLE_STR_ATI);
- glSampleMapATI(GL_REG_1_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
- glPassTexCoordATI(GL_REG_5_ATI, GL_REG_0_ATI, GL_SWIZZLE_STR_ATI);
- glColorFragmentOp2ATI(GL_MUL_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_PRIMARY_COLOR, GL_NONE, GL_NONE);
- glAlphaFragmentOp1ATI(GL_MOV_ATI,
- GL_REG_0_ATI, GL_NONE,
- GL_PRIMARY_COLOR, GL_NONE, GL_NONE);
- glColorFragmentOp3ATI(GL_MAD_ATI,
- GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_1_ATI, GL_NONE, GL_NONE,
- GL_REG_5_ATI, GL_NONE, GL_NONE);
- /* in principle we're finished here, but to test a bit more
- we do some fun with dot ops, replication et al. */
- glSetFragmentShaderConstantATI(GL_CON_3_ATI, shaderconstant);
- glColorFragmentOp2ATI(GL_DOT4_ATI,
- GL_REG_3_ATI, GL_GREEN_BIT_ATI, GL_EIGHTH_BIT_ATI,
- GL_ZERO, GL_NONE, GL_COMP_BIT_ATI | GL_NEGATE_BIT_ATI,
- GL_CON_3_ATI, GL_RED, GL_2X_BIT_ATI);
- /* those args must get ignored, except dstReg */
- glAlphaFragmentOp2ATI(GL_DOT4_ATI,
- GL_REG_4_ATI, GL_NONE,
- GL_ZERO, GL_NONE, GL_NONE,
- GL_ZERO, GL_NONE, GL_NONE);
- /* -> reg3 g = reg4 alpha = -0.5 */
- glAlphaFragmentOp2ATI(GL_ADD_ATI,
- GL_REG_5_ATI, GL_NONE,
- GL_REG_3_ATI, GL_GREEN, GL_NONE,
- GL_REG_4_ATI, GL_NONE, GL_NONE);
- /* -> reg5 a = -1 */
- glColorFragmentOp3ATI(GL_DOT2_ADD_ATI,
- GL_REG_4_ATI, GL_BLUE_BIT_ATI, GL_HALF_BIT_ATI,
- GL_REG_5_ATI, GL_ALPHA, GL_NEGATE_BIT_ATI,
- GL_ONE, GL_NONE, GL_BIAS_BIT_ATI,
- GL_ONE, GL_ALPHA, GL_2X_BIT_ATI | GL_NEGATE_BIT_ATI);
- /* -> reg 4 b = -0.5 */
- glColorFragmentOp2ATI(GL_MUL_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE,
- GL_REG_4_ATI, GL_BLUE, GL_NEGATE_BIT_ATI | GL_2X_BIT_ATI,
- GL_REG_0_ATI, GL_NONE, GL_NONE);
- glEndFragmentShaderATI();
-
- glBindFragmentShaderATI(boringshaderID);
- glEnable(GL_FRAGMENT_SHADER_ATI);
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
- printf("output should be identical with both shaders to multiarb demo when 6 textures are enabled\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
-/* GLint i;*/
-
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutIdleFunc( Idle );
-
- glutCreateMenu(ModeMenu);
-
-/* for (i = 0; i < NumUnits; i++) {
- char s[100];
- sprintf(s, "Toggle Texture %d", i);
- glutAddMenuEntry(s, TEX0 + i);
- }*/
- glutAddMenuEntry("Toggle 1/2 Pass Shader", SHADER);
- glutAddMenuEntry("Toggle Animation", ANIMATE);
- glutAddMenuEntry("Quit", QUIT);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/antialias.c b/progs/tests/antialias.c
deleted file mode 100644
index a6456a5218..0000000000
--- a/progs/tests/antialias.c
+++ /dev/null
@@ -1,231 +0,0 @@
-
-/*
- * Test multisampling and polygon smoothing.
- *
- * Brian Paul
- * 4 November 2002
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLfloat Zrot = 0;
-static GLboolean Anim = GL_TRUE;
-static GLboolean HaveMultisample = GL_TRUE;
-static GLboolean DoMultisample = GL_TRUE;
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-doPolygon( GLenum mode, GLint verts, GLfloat radius, GLfloat z )
-{
- int i;
- glBegin(mode);
- for (i = 0; i < verts; i++) {
- float a = (i * 2.0 * 3.14159) / verts;
- float x = radius * cos(a);
- float y = radius * sin(a);
- glVertex3f(x, y, z);
- }
- glEnd();
-}
-
-
-static void
-DrawObject( void )
-{
- glLineWidth(3.0);
- glColor3f(1, 1, 1);
- doPolygon(GL_LINE_LOOP, 12, 1.2, 0);
-
- glLineWidth(1.0);
- glColor3f(1, 1, 1);
- doPolygon(GL_LINE_LOOP, 12, 1.1, 0);
-
- glColor3f(1, 0, 0);
- doPolygon(GL_POLYGON, 12, 0.4, 0.3);
-
- glColor3f(0, 1, 0);
- doPolygon(GL_POLYGON, 12, 0.6, 0.2);
-
- glColor3f(0, 0, 1);
- doPolygon(GL_POLYGON, 12, 0.8, 0.1);
-
- glColor3f(1, 1, 1);
- doPolygon(GL_POLYGON, 12, 1.0, 0);
-}
-
-
-static void
-Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glColor3f(1, 1, 1);
-
- glRasterPos2f(-3.1, -1.6);
- PrintString("No antialiasing");
-
- glRasterPos2f(-0.8, -1.6);
- if (HaveMultisample) {
- if (DoMultisample)
- PrintString(" MULTISAMPLE");
- else
- PrintString("MULTISAMPLE (off)");
- }
- else
- PrintString("MULTISAMPLE (N/A)");
-
- glRasterPos2f(1.6, -1.6);
- PrintString("GL_POLYGON_SMOOTH");
-
- /* non-aa */
- glEnable(GL_DEPTH_TEST);
- glPushMatrix();
- glTranslatef(-2.5, 0, 0);
- glPushMatrix();
- glRotatef(Zrot, 0, 0, 1);
- DrawObject();
- glPopMatrix();
- glPopMatrix();
- glDisable(GL_DEPTH_TEST);
-
- /* multisample */
- glEnable(GL_DEPTH_TEST);
- if (HaveMultisample && DoMultisample)
- glEnable(GL_MULTISAMPLE_ARB);
- glPushMatrix();
- glTranslatef(0, 0, 0);
- glPushMatrix();
- glRotatef(Zrot, 0, 0, 1);
- DrawObject();
- glPopMatrix();
- glPopMatrix();
- glDisable(GL_MULTISAMPLE_ARB);
- glDisable(GL_DEPTH_TEST);
-
- /* polygon smooth */
- glEnable(GL_POLYGON_SMOOTH);
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_BLEND);
- glPushMatrix();
- glTranslatef(2.5, 0, 0);
- glPushMatrix();
- glRotatef(Zrot, 0, 0, 1);
- DrawObject();
- glPopMatrix();
- glPopMatrix();
- glDisable(GL_LINE_SMOOTH);
- glDisable(GL_POLYGON_SMOOTH);
- glDisable(GL_BLEND);
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(-2.0*ar, 2.0*ar, -2.0, 2.0, -1.0, 1.0);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void
-Idle( void )
-{
- Zrot = 0.01 * glutGet(GLUT_ELAPSED_TIME);
- glutPostRedisplay();
-}
-
-
-static void
-Key( unsigned char key, int x, int y )
-{
- const GLfloat step = 1.0;
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'm':
- DoMultisample = !DoMultisample;
- break;
- case 'z':
- Zrot = (int) (Zrot - step);
- break;
- case 'Z':
- Zrot = (int) (Zrot + step);
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init( void )
-{
- /* GLUT imposes the four samples/pixel requirement */
- int s;
- glGetIntegerv(GL_SAMPLES_ARB, &s);
- if (!glutExtensionSupported("GL_ARB_multisample") || s < 1) {
- printf("Warning: multisample antialiasing not supported.\n");
- HaveMultisample = GL_FALSE;
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_SAMPLES_ARB = %d\n", s);
-
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);
-
- glGetIntegerv(GL_MULTISAMPLE_ARB, &s);
- printf("GL_MULTISAMPLE_ARB = %d\n", s);
-}
-
-
-int
-main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 600, 300 );
- glutInitDisplayMode( GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE |
- GLUT_DEPTH | GLUT_MULTISAMPLE );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc( Idle );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/api_speed.c b/progs/tests/api_speed.c
deleted file mode 100644
index 28e28e61d8..0000000000
--- a/progs/tests/api_speed.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2002
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file api_speed.c
- * Simple test to measure the overhead of making GL calls.
- *
- * The main purpose of this test is to measure the difference in calling
- * overhead of different dispatch methods. Since it uses asm/timex.h to
- * access the Pentium's cycle counters, it will probably only compile on
- * Linux (though most architectures have a get_cycles function in timex.h).
- * That is why it isn't in the default Makefile.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#define inline __inline__
-#include <asm/timex.h>
-
-static float Width = 400;
-static float Height = 400;
-static unsigned count = 1000000;
-
-
-static void Idle( void )
-{
- glutPostRedisplay();
-}
-
-#define DO_FUNC(f,p) \
- do { \
- t0 = get_cycles(); \
- for ( i = 0 ; i < count ; i++ ) { \
- f p ; \
- } \
- t1 = get_cycles(); \
- printf("%u calls to % 20s required %llu cycles.\n", count, # f, t1 - t0); \
- } while( 0 )
-
-/**
- * Main display function. This is the place to add more API calls.
- */
-static void Display( void )
-{
- int i;
- const float v[3] = { 1.0, 0.0, 0.0 };
- cycles_t t0;
- cycles_t t1;
-
- glBegin(GL_TRIANGLE_STRIP);
-
- DO_FUNC( glColor3fv, (v) );
- DO_FUNC( glNormal3fv, (v) );
- DO_FUNC( glTexCoord2fv, (v) );
- DO_FUNC( glTexCoord3fv, (v) );
- DO_FUNC( glMultiTexCoord2fv, (GL_TEXTURE0, v) );
- DO_FUNC( glMultiTexCoord2f, (GL_TEXTURE0, 0.0, 0.0) );
- DO_FUNC( glFogCoordfvEXT, (v) );
- DO_FUNC( glFogCoordfEXT, (0.5) );
-
- glEnd();
-
- exit(0);
-}
-
-
-static void Reshape( int width, int height )
-{
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0.0, width, 0.0, height, -1.0, 1.0);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( (int) Width, (int) Height );
- glutInitWindowPosition( 0, 0 );
-
- glutInitDisplayMode( GLUT_RGB );
-
- glutCreateWindow( argv[0] );
- glewInit();
-
- if ( argc > 1 ) {
- count = strtoul( argv[1], NULL, 0 );
- if ( count == 0 ) {
- fprintf( stderr, "Usage: %s [iterations]\n", argv[0] );
- exit(1);
- }
- }
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutIdleFunc( Idle );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/api_speed.py b/progs/tests/api_speed.py
deleted file mode 100755
index 0ddaf5836c..0000000000
--- a/progs/tests/api_speed.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python2
-
-# (C) Copyright IBM Corporation 2004
-# 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
-# IBM AND/OR ITS 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.
-#
-# Authors:
-# Ian Romanick <idr@us.ibm.com>
-
-
-# This script is used to run api_speed against several different libGL
-# libraries and compare the results. See the show_usage function for more
-# details on how to use it.
-
-
-import re, os, sys, getopt
-
-class results:
- def process_file(self, f):
- self.cycles = {}
- self.iterations = -1
-
- for line in f.readlines():
- m = re.match("(\d+) calls to (.{20}) required (\d+) cycles.", line)
-
- if self.iterations != -1 and int(m.group(1)) != self.iterations:
- raise
-
- # This could be done with lstrip, but the version of
- # the Python library on my system doesn't have it.
- # The installed version of Python is quite old. :(
-
- temp = m.group(2)
- function_name = None
- for i in range(len(temp)):
- if temp[i] != ' ':
- function_name = temp[i:]
- break
-
- if function_name == None:
- raise
-
- self.cycles[ function_name ] = int(m.group(3))
- self.iterations = int(m.group(1))
-
-
- def show_results(self):
- for name in self.cycles:
- print "%s -> %f" % (name, float(self.cycles[name]) / self.iterations)
-
-
- def compare_results(self, other):
- for name in self.cycles:
- if other.cycles.has_key(name):
- a = float(self.cycles[name]) / float(self.iterations)
- b = float(other.cycles[name]) / float(other.iterations)
- if abs( a ) < 0.000001:
- print "a = %f, b = %f" % (a, b)
- else:
- p = (100.0 * b / a) - 100.0
- print "%- 20s %7.2f - %7.2f = % -6.2f (%+.1f%%)" % (name, a, b, a - b, p)
- return
-
-
-def make_execution_string(lib, iterations):
- if lib == None:
- return "./api_speed %u" % (iterations)
- else:
- return "LD_PRELOAD=%s ./api_speed %u" % (lib, iterations)
-
-
-def show_usage():
- print """Usage: %s [-i iterations] {library ...}
-
-The full path to one or more libGL libraries (including the full name of the
-library) can be included on the command-line. Each library will be tested,
-and the results compared. The first library listed will be used as the
-"base line" for all comparisons.""" % (sys.argv[0])
- sys.exit(1)
-
-
-if __name__ == '__main__':
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "i:")
- except Exception,e:
- show_usage()
-
- iterations = 1000000
- try:
- for (arg,val) in args:
- if arg == "-i":
- iterations = int(val)
- except Exception,e:
- show_usage()
-
-
- # If no libraries were specifically named, just run the test against
- # the default system libGL.
-
- if len(trail) == 0:
- trail.append(None)
-
-
- result_array = []
- names = []
-
- for lib in trail:
- s = make_execution_string( lib, iterations )
- r = results()
- r.process_file( os.popen(s) )
- names.append(lib)
- result_array.append(r)
-
-
- # If the test was only run against one library, just show the results
- # of the test run. Otherwise, compare each successive run against
- # the first run.
-
- if len( result_array ) == 1:
- result_array[0].show_results()
- else:
- for i in range(1, len( result_array )):
- print "%s vs. %s" % (names[0], names[i])
- result_array[0].compare_results( result_array[i] )
- print ""
diff --git a/progs/tests/arbfpspec.c b/progs/tests/arbfpspec.c
deleted file mode 100644
index 550e954340..0000000000
--- a/progs/tests/arbfpspec.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * To demo that specular color gets lost someplace after vertex
- * program completion and fragment program startup
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-static GLboolean Anim = GL_TRUE;
-
-
-static void Idle( void )
-{
- Xrot += .3;
- Yrot += .4;
- Zrot += .2;
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
- glutSolidTorus(0.75, 2.0, 10, 20);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case ' ':
- Xrot = Yrot = Zrot = 0;
- break;
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- GLint errno;
- GLuint prognum, fprognum;
-
- static const char prog[] =
- "!!ARBvp1.0\n"
- "DP4 result.position.x, state.matrix.mvp.row[0], vertex.position ;\n"
- "DP4 result.position.y, state.matrix.mvp.row[1], vertex.position ;\n"
- "DP4 result.position.z, state.matrix.mvp.row[2], vertex.position ;\n"
- "DP4 result.position.w, state.matrix.mvp.row[3], vertex.position ;\n"
- "MOV result.color.front.primary, {.5, .5, .5, 1};\n"
- "MOV result.color.front.secondary, {1, 1, 1, 1};\n"
- "END";
-
- static const char fprog[] =
- "!!ARBfp1.0\n"
- "MOV result.color, fragment.color.secondary;\n"
- "END";
-
- if (!glutExtensionSupported("GL_ARB_vertex_program")) {
- printf("Sorry, this program requires GL_ARB_vertex_program");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
- printf("Sorry, this program requires GL_ARB_fragment_program");
- exit(1);
- }
-
- glGenProgramsARB(1, &prognum);
- glGenProgramsARB(1, &fprognum);
-
- glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *) prog);
-
- assert(glIsProgramARB(prognum));
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- GLint errorpos;
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- }
-
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, fprognum);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(fprog), (const GLubyte *) fprog);
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- GLint errorpos;
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- }
-
- glEnable(GL_VERTEX_PROGRAM_ARB);
- glEnable(GL_FRAGMENT_PROGRAM_ARB);
- glEnable(GL_DEPTH_TEST);
- glClearColor(0.3, 0.3, 0.3, 1);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbfptest1.c b/progs/tests/arbfptest1.c
deleted file mode 100644
index e7237b76a8..0000000000
--- a/progs/tests/arbfptest1.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Test GL_ARB_fragment_program */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
-
- glColor4f(0, 0.5, 0, 1);
- glColor4f(0, 1, 0, 1);
- glBegin(GL_POLYGON);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 0, 1);
- glEnd();
-
- 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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-static void load_program(const char *prog, GLuint prognum)
-{
- int a;
- GLint errorpos, errno;
-
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *) prog);
-
- assert(glIsProgramARB(prognum));
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
-
- for (a=-10; a<10; a++)
- {
- if ((errorpos+a < 0) || (errorpos+a >= strlen(prog))) continue;
- printf("%c", prog[errorpos+a]);
- }
- printf("\n");
- exit(1);
- }
-}
-
-static void Init( void )
-{
- static const char *prog0 =
- "!!ARBfp1.0\n"
- "TEMP R0, RC, HC, H0, H1, H2, H3, H30 ;\n"
- "MUL result.color, R0, fragment.position; \n"
- "ADD result.color, H3, fragment.texcoord; \n"
- "ADD_SAT result.color, H3, fragment.texcoord; \n"
- "MUL result.color.xy, R0.wzyx, fragment.position; \n"
- "MUL result.color, H0, fragment.position; \n"
- "MUL result.color, -H0, fragment.position; \n"
- "MOV RC, H1; \n"
- "MOV HC, H2; \n"
- "END \n"
- ;
- /* masked updates, defines, declarations */
- static const char *prog1 =
- "!!ARBfp1.0\n"
- "PARAM foo = {1., 2., 3., 4.}; \n"
- "PARAM foo2 = 5.; \n"
- "PARAM foo3 = {5., 6., 7., 8.}; \n"
- "PARAM bar = 3.; \n"
- "TEMP R0, R1, RC, EQ, NE, bar2; \n"
- "ALIAS bar3 = bar; \n"
- "MOV result.color.xy, R0; \n"
- "MOV result.color, R0; \n"
- "MOV result.color.xyzw, R0; \n"
- "MOV result.color.xy, R0; \n"
- "MOV RC.x, R1.x; \n"
- "KIL NE; \n"
- "KIL EQ.xyxy; \n"
- "END \n"
- ;
-
- /* texture instructions */
- static const char *prog2 =
- "!!ARBfp1.0\n"
- "TEMP R0, R1, R2, R3;\n"
- "TEX R0, fragment.texcoord, texture[0], 2D; \n"
- "TEX R1, fragment.texcoord[1], texture[1], CUBE; \n"
- "TEX R2, fragment.texcoord[2], texture[2], 3D; \n"
- "TXP R3, fragment.texcoord[3], texture[3], RECT; \n"
- "MUL result.color, R0, fragment.color; \n"
- "END \n"
- ;
-
- /* test negation, absolute value */
- static const char *prog3 =
- "!!ARBfp1.0\n"
- "TEMP R0, R1;\n"
- "MOV R0, R1; \n"
- "MOV R0, -R1; \n"
- "MOV result.color, R0; \n"
- "END \n"
- ;
-
- /* literal constant sources */
- static const char *prog4 =
- "!!ARBfp1.0\n"
- "TEMP R0, R1;\n"
- "PARAM Pi = 3.14159; \n"
- "MOV R0, {1., -2., +3., 4.}; \n"
- "MOV R0, 5.; \n"
- "MOV R0, -5.; \n"
- "MOV R0, 5.; \n"
- "MOV R0, Pi; \n"
- "MOV result.color, R0; \n"
- "END \n"
- ;
-
- /* change the fragment color in a simple way */
- static const char *prog10 =
- "!!ARBfp1.0\n"
- "PARAM blue = {0., 0., 1., 0.};\n"
- "PARAM color = {1., 0., 0., 1.};\n"
- "TEMP R0; \n"
- "MOV R0, fragment.color; \n"
- "#ADD result.color, R0, fragment.color; \n"
- "#ADD result.color, blue, fragment.color; \n"
- "#ADD result.color, {1., 0., 0., 0.}, fragment.color; \n"
- "ADD result.color, color, fragment.color; \n"
- "END \n"
- ;
-
- GLuint progs[20];
-
- glGenProgramsARB(20, progs);
- assert(progs[0]);
- assert(progs[1]);
- assert(progs[0] != progs[1]);
-
-
- printf("program 0:\n");
- load_program(prog0, progs[0]);
- printf("program 1:\n");
- load_program(prog1, progs[1]);
- printf("program 2:\n");
- load_program(prog2, progs[2]);
- printf("program 3:\n");
- load_program(prog3, progs[3]);
- printf("program 4:\n");
- load_program(prog4, progs[4]);
- printf("program 10:\n");
- load_program(prog10, progs[5]);
-
-
- glEnable(GL_FRAGMENT_PROGRAM_ARB);
- glEnable(GL_ALPHA_TEST);
- glAlphaFunc(GL_ALWAYS, 0.0);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbfptexture.c b/progs/tests/arbfptexture.c
deleted file mode 100644
index f66b060cbb..0000000000
--- a/progs/tests/arbfptexture.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* GL_ARB_fragment_program texture test */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.c"
-
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLfloat Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
-
- glBegin(GL_POLYGON);
-#define Q 2
- glColor4f(1.0, 1.0, 1.0, 1); glTexCoord4f(0, 0, 0, Q); glVertex2f(-1, -1);
- glColor4f(0.2, 0.2, 1.0, 1); glTexCoord4f(1, 0, 0, Q); glVertex2f( 1, -1);
- glColor4f(0.2, 1.0, 0.2, 1); glTexCoord4f(1, 1, 0, Q); glVertex2f( 1, 1);
- glColor4f(1.0, 0.2, 0.2, 1); glTexCoord4f(0, 1, 0, Q); glVertex2f(-1, 1);
- glEnd();
-
- 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.0, 0.0, -8.0 );
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const char *modulate2D =
- "!!ARBfp1.0\n"
- "TEMP R0;\n"
- "TEX R0, fragment.texcoord[0], texture[0], 2D; \n"
- "MUL result.color, R0, fragment.color; \n"
- "END"
- ;
- GLuint modulateProg;
- GLuint Texture;
-
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
- printf("Error: GL_ARB_fragment_program not supported!\n");
- exit(1);
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- /* Setup the fragment program */
- glGenProgramsARB(1, &modulateProg);
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(modulate2D), (const GLubyte *)modulate2D);
-
- printf("glGetError = 0x%x\n", (int) glGetError());
- printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
- (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- assert(glIsProgramARB(modulateProg));
-
- glEnable(GL_FRAGMENT_PROGRAM_ARB);
-
- /* Load texture */
- glGenTextures(1, &Texture);
- glBindTexture(GL_TEXTURE_2D, Texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image file %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* XXX this enable shouldn't really be needed!!! */
- glEnable(GL_TEXTURE_2D);
-
- glClearColor(.3, .3, .3, 0);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbfptrig.c b/progs/tests/arbfptrig.c
deleted file mode 100644
index 95f008a078..0000000000
--- a/progs/tests/arbfptrig.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* GL_ARB_fragment_program texture test */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.c"
-
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLfloat Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-
-#define PI 3.141592
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
-
- glBegin(GL_POLYGON);
- glTexCoord2f(-PI, 0); glVertex2f(-1, -1);
- glTexCoord2f(PI, 0); glVertex2f( 1, -1);
- glTexCoord2f(PI, 1); glVertex2f( 1, 1);
- glTexCoord2f(-PI, 1); glVertex2f(-1, 1);
- glEnd();
-
- 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.0, 0.0, -8.0 );
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const char *modulate2D =
- "!!ARBfp1.0\n"
- "TEMP R0;\n"
- "MOV R0, {0,0,0,1};\n"
- "SCS R0, fragment.texcoord[0].x; \n"
- "ADD R0, R0, {1.0}.x;\n"
- "MUL R0, R0, {0.5}.x;\n"
- "MOV result.color, R0; \n"
- "END"
- ;
- GLuint modulateProg;
- GLuint Texture;
-
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
- printf("Error: GL_ARB_fragment_program not supported!\n");
- exit(1);
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- /* Setup the fragment program */
- glGenProgramsARB(1, &modulateProg);
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(modulate2D), (const GLubyte *)modulate2D);
-
- printf("glGetError = 0x%x\n", (int) glGetError());
- printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
- (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- assert(glIsProgramARB(modulateProg));
-
- glEnable(GL_FRAGMENT_PROGRAM_ARB);
-
- /* Load texture */
- glGenTextures(1, &Texture);
- glBindTexture(GL_TEXTURE_2D, Texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image file %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* XXX this enable shouldn't really be needed!!! */
- glEnable(GL_TEXTURE_2D);
-
- glClearColor(.3, .3, .3, 0);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbgpuprog.c b/progs/tests/arbgpuprog.c
deleted file mode 100644
index 6098dca787..0000000000
--- a/progs/tests/arbgpuprog.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * 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);
- fclose(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);
- fclose(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/arbnpot-mipmap.c b/progs/tests/arbnpot-mipmap.c
deleted file mode 100644
index 700ec0b09d..0000000000
--- a/progs/tests/arbnpot-mipmap.c
+++ /dev/null
@@ -1,186 +0,0 @@
-
-/* 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.c
- * This program demonstrates using mipmaps for texture maps.
- * To overtly show the effect of mipmaps, each mipmap reduction
- * level has a solidly colored, contrasting texture image.
- * Thus, the quadrilateral which is drawn is drawn with several
- * different colors.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-GLubyte mipmapImage32[40][46][3];
-GLubyte mipmapImage16[20][23][3];
-GLubyte mipmapImage8[10][11][3];
-GLubyte mipmapImage4[5][5][3];
-GLubyte mipmapImage2[2][2][3];
-GLubyte mipmapImage1[1][1][3];
-
-static void makeImages(void)
-{
- int i, j;
-
- for (i = 0; i < 40; i++) {
- for (j = 0; j < 46; j++) {
- mipmapImage32[i][j][0] = 255;
- mipmapImage32[i][j][1] = 255;
- mipmapImage32[i][j][2] = 0;
- }
- }
- for (i = 0; i < 20; i++) {
- for (j = 0; j < 23; j++) {
- mipmapImage16[i][j][0] = 255;
- mipmapImage16[i][j][1] = 0;
- mipmapImage16[i][j][2] = 255;
- }
- }
- for (i = 0; i < 10; i++) {
- for (j = 0; j < 11; j++) {
- mipmapImage8[i][j][0] = 255;
- mipmapImage8[i][j][1] = 0;
- mipmapImage8[i][j][2] = 0;
- }
- }
- for (i = 0; i < 5; i++) {
- for (j = 0; j < 5; j++) {
- mipmapImage4[i][j][0] = 0;
- mipmapImage4[i][j][1] = 255;
- mipmapImage4[i][j][2] = 0;
- }
- }
- for (i = 0; i < 2; i++) {
- for (j = 0; j < 2; j++) {
- mipmapImage2[i][j][0] = 0;
- mipmapImage2[i][j][1] = 0;
- mipmapImage2[i][j][2] = 255;
- }
- }
- mipmapImage1[0][0][0] = 255;
- mipmapImage1[0][0][1] = 255;
- mipmapImage1[0][0][2] = 255;
-}
-
-static void myinit(void)
-{
- if (!glutExtensionSupported("GL_ARB_texture_non_power_of_two")) {
- printf("Sorry, this program requires GL_ARB_texture_non_power_of_two\n");
- exit(1);
- }
-
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glShadeModel(GL_FLAT);
-
- glTranslatef(0.0, 0.0, -3.6);
- makeImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, 3, 40, 46, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage32[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 1, 3, 20, 23, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage16[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 2, 3, 10, 11, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage8[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 3, 3, 5, 5, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage4[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 4, 3, 2, 2, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage2[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 5, 3, 1, 1, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage1[0][0][0]);
- 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_MIPMAP_NEAREST);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glEnable(GL_TEXTURE_2D);
-}
-
-static void display(void)
-{
- 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, 8.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(8.0, 8.0); glVertex3f(2000.0, 1.0, -6000.0);
- glTexCoord2f(8.0, 0.0); glVertex3f(2000.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)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- glewInit();
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/tests/arbnpot.c b/progs/tests/arbnpot.c
deleted file mode 100644
index c51a541641..0000000000
--- a/progs/tests/arbnpot.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Test NPOT textures with the GL_ARB_texture_non_power_of_two extension.
- * Brian Paul
- * 2 July 2003
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "../util/readtex.c"
-
-#define IMAGE_FILE "../images/girl.rgb"
-
-static GLfloat Zrot = 0;
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Zrot, 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();
-}
-
-
-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, -7.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'z':
- Zrot -= 1.0;
- break;
- case 'Z':
- Zrot += 1.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- GLubyte *image;
- int imgWidth, imgHeight, minDim, w;
- GLenum imgFormat;
-
- if (!glutExtensionSupported("GL_ARB_texture_non_power_of_two")) {
- printf("Sorry, this program requires GL_ARB_texture_non_power_of_two\n");
- exit(1);
- }
-
-#if 1
- image = LoadRGBImage( IMAGE_FILE, &imgWidth, &imgHeight, &imgFormat );
- if (!image) {
- printf("Couldn't read %s\n", IMAGE_FILE);
- exit(0);
- }
-#else
- int i, j;
- imgFormat = GL_RGB;
- imgWidth = 3;
- imgHeight = 3;
- image = malloc(imgWidth * imgHeight * 3);
- for (i = 0; i < imgHeight; i++) {
- for (j = 0; j < imgWidth; j++) {
- int k = (i * imgWidth + j) * 3;
- if ((i + j) & 1) {
- image[k+0] = 255;
- image[k+1] = 0;
- image[k+2] = 0;
- }
- else {
- image[k+0] = 0;
- image[k+1] = 255;
- image[k+2] = 0;
- }
- }
- }
-#endif
-
- printf("Read %d x %d\n", imgWidth, imgHeight);
-
- minDim = imgWidth < imgHeight ? imgWidth : imgHeight;
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- /*
- * 1D Texture. Test proxy first, if that works, test non-proxy target.
- */
- glTexImage1D(GL_PROXY_TEXTURE_1D, 0, GL_RGB, imgWidth, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_1D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth || w == 0);
-
- if (w) {
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB, imgWidth, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
- }
-
-
- /*
- * 2D Texture
- */
- glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGB, imgWidth, imgHeight, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth || w == 0);
-
- if (w) {
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, imgWidth, imgHeight, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
- }
-
-
- /*
- * 3D Texture
- */
- glTexImage3D(GL_PROXY_TEXTURE_3D, 0, GL_RGB, imgWidth, imgHeight, 1, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_3D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth || w == 0);
-
- if (w) {
- glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, imgWidth, imgHeight, 1, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
- }
-
-
- /*
- * Cube Texture
- */
- glTexImage2D(GL_PROXY_TEXTURE_CUBE_MAP, 0, GL_RGB,
- minDim, minDim, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_CUBE_MAP, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == minDim || w == 0);
-
- if (w) {
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB,
- minDim, minDim, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
- }
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glEnable(GL_TEXTURE_2D);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbvptest1.c b/progs/tests/arbvptest1.c
deleted file mode 100644
index 3a6d71a42b..0000000000
--- a/progs/tests/arbvptest1.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Test glGenProgramsARB(), glIsProgramARB(), glLoadProgramARB() */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
-
- glBegin(GL_POLYGON);
- glVertexAttrib2fARB(0, -1, -1);
- glVertexAttrib2fARB(0, 1, -1);
- glVertexAttrib2fARB(0, 0, 1);
- glEnd();
-
- 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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-static void load_program(const char *prog, GLuint prognum)
-{
- int a;
- GLint errorpos, errno;
-
- glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *) prog);
-
- assert(glIsProgramARB(prognum));
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
-
- for (a=-10; a<10; a++)
- {
- if ((errorpos+a < 0) || (errorpos+a >= strlen(prog))) continue;
- printf("%c", prog[errorpos+a]);
- }
- printf("\n");
- exit(1);
- }
-}
-
-static void Init( void )
-{
- GLuint prognum[4];
-
- static const char *prog1 =
- "!!ARBvp1.0\n"
- "TEMP R0;\n"
- "MUL result.color.primary.xyz, R0, program.local[35]; \n"
- "END\n";
- static const char *prog2 =
- "!!ARBvp1.0\n"
- "#\n"
- "# c[0-3] = modelview projection (composite) matrix\n"
- "# c[32] = normalized light direction in object-space\n"
- "# c[35] = yellow diffuse material, (1.0, 1.0, 0.0, 1.0)\n"
- "# c[64].x = 0.0\n"
- "# c[64].z = 0.125, a scaling factor\n"
- "TEMP R0, R1;\n"
- "#\n"
- "# outputs diffuse illumination for color and perturbed position\n"
- "#\n"
- "DP3 R0, program.local[32], vertex.normal; # light direction DOT normal\n"
- "MUL result.color.primary.xyz, R0, program.local[35]; \n"
- "MAX R0, program.local[64].x, R0; \n"
- "MUL R0, R0, vertex.normal; \n"
- "MUL R0, R0, program.local[64].z; \n"
- "ADD R1, vertex.position, -R0; # perturb object space position\n"
- "DP4 result.position.x, state.matrix.mvp.row[3], R1; \n"
- "DP4 result.position.y, state.matrix.mvp.row[1], R1; \n"
- "DP4 result.position.z, state.matrix.mvp.row[2], R1; \n"
- "DP4 result.position.w, state.matrix.mvp.row[3], R1; \n"
- "END\n";
- static const char *prog3 =
- "!!ARBvp1.0\n"
- "TEMP R0, R1, R2, R3;\n"
- "DP4 result.position.x, state.matrix.mvp.row[0], vertex.position;\n"
- "DP4 result.position.y, state.matrix.mvp.row[1], vertex.position;\n"
- "DP4 result.position.z, state.matrix.mvp.row[2], vertex.position;\n"
- "DP4 result.position.w, state.matrix.mvp.row[3], vertex.position;\n"
- "DP3 R0.x, state.matrix.modelview.inverse.row[0], vertex.normal;\n"
- "DP3 R0.y, state.matrix.modelview.inverse.row[1], vertex.normal;\n"
- "DP3 R0.z, state.matrix.modelview.inverse.row[2], vertex.normal;\n"
- "DP3 R1.x, program.env[32], R0; # R1.x = Lpos DOT n'\n"
- "DP3 R1.y, program.env[33], R0; # R1.y = hHat DOT n'\n"
- "MOV R1.w, program.local[38].x; # R1.w = specular power\n"
- "LIT R2, R1; # Compute lighting values\n"
- "MAD R3, program.env[35].x, R2.y, program.env[35].y; # diffuse + emissive\n"
- "MAD result.color.primary.xyz, program.env[36], R2.z, R3; # + specular\n"
- "END\n";
- static const char *prog4 =
- "!!ARBvp1.0\n"
- "TEMP R2, R3;\n"
- "PARAM foo = {0., 0., 0., 1.};\n"
- "PARAM blah[] = { program.local[0..8] };\n"
- "ADDRESS A0;\n"
- "ARL A0.x, foo.x;\n"
- "DP4 R2, R3, blah[A0.x].x;\n"
- "DP4 R2, R3, blah[A0.x + 5];\n"
- "DP4 result.position, R3, blah[A0.x - 4];\n"
- "END\n";
-
- glGenProgramsARB(4, prognum);
-
- load_program(prog1, prognum[0]);
- load_program(prog2, prognum[1]);
- load_program(prog3, prognum[2]);
- load_program(prog4, prognum[3]);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbvptest3.c b/progs/tests/arbvptest3.c
deleted file mode 100644
index 56de7b4696..0000000000
--- a/progs/tests/arbvptest3.c
+++ /dev/null
@@ -1,128 +0,0 @@
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Zrot = 0.0;
-
-
-static void Display( void )
-{
- glClearColor(0.3, 0.3, 0.3, 1);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_VERTEX_PROGRAM_ARB);
-
- glLoadIdentity();
- glRotatef(Zrot, 0, 0, 1);
-
- glPushMatrix();
-
- glVertexAttrib3fARB(3, 1, 0.5, 0.25);
- glBegin(GL_TRIANGLES);
-#if 1
- glVertexAttrib3fARB(3, 1.0, 0.0, 0.0);
- glVertexAttrib2fARB(0, -0.5, -0.5);
- glVertexAttrib3fARB(3, 0.0, 1.0, 0.0);
- glVertexAttrib2fARB(0, 0.5, -0.5);
- glVertexAttrib3fARB(3, 0.0, 0.0, 1.0);
- glVertexAttrib2fARB(0, 0, 0.5);
-#else
- glVertex2f( -1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 0, 1);
-#endif
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- /* glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );*/
- glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.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 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- GLint errno;
- GLuint prognum;
-
- static const char *prog1 =
- "!!ARBvp1.0\n"
- "MOV result.color, vertex.attrib[3];\n"
-
- "DP4 result.position.x, vertex.position, state.matrix.modelview.row[0];\n"
- "DP4 result.position.y, vertex.position, state.matrix.modelview.row[1];\n"
- "DP4 result.position.z, vertex.position, state.matrix.modelview.row[2];\n"
- "DP4 result.position.w, vertex.position, state.matrix.modelview.row[3];\n"
- "END\n";
-
- glGenProgramsARB(1, &prognum);
-
- glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog1), (const GLubyte *) prog1);
-
- assert(glIsProgramARB(prognum));
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- GLint errorpos;
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbvptorus.c b/progs/tests/arbvptorus.c
deleted file mode 100644
index f1f84d8774..0000000000
--- a/progs/tests/arbvptorus.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * A lit, rotating torus via vertex program
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-static GLboolean Anim = GL_TRUE;
-
-
-static void Idle( void )
-{
- Xrot += .3;
- Yrot += .4;
- Zrot += .2;
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
- glutSolidTorus(0.75, 2.0, 10, 20);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case ' ':
- Xrot = Yrot = Zrot = 0;
- break;
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- GLint errno;
- GLuint prognum;
-
- /* borrowed from an nvidia demo:
- * c[0..3] = modelview matrix
- * c[4..7] = invtrans modelview matrix
- * c[32] = light pos
- * c[35] = diffuse color
- */
- static const char prog[] =
- "!!ARBvp1.0\n"
- "OPTION ARB_position_invariant ;"
- "TEMP R0, R1; \n"
-
- "# normal x MV-1T -> lighting normal\n"
- "DP3 R1.x, state.matrix.modelview.invtrans.row[0], vertex.normal ;\n"
- "DP3 R1.y, state.matrix.modelview.invtrans.row[1], vertex.normal;\n"
- "DP3 R1.z, state.matrix.modelview.invtrans.row[2], vertex.normal;\n"
-
- "DP3 R0, program.local[32], R1; # L.N\n"
-#if 0
- "MUL result.color.xyz, R0, program.local[35] ; # col = L.N * diffuse\n"
-#else
- "MUL result.color.primary.xyz, R0, program.local[35] ; # col = L.N * diffuse\n"
-#endif
- "MOV result.texcoord, vertex.texcoord;\n"
- "END";
-
- if (!glutExtensionSupported("GL_ARB_vertex_program")) {
- printf("Sorry, this program requires GL_ARB_vertex_program");
- exit(1);
- }
-
-
- glGenProgramsARB(1, &prognum);
-
- glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *) prog);
-
- assert(glIsProgramARB(prognum));
- errno = glGetError();
- printf("glGetError = %d\n", errno);
- if (errno != GL_NO_ERROR)
- {
- GLint errorpos;
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- }
-
- /* Light position */
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 32, 2, 2, 4, 1);
- /* Diffuse material color */
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 35, 0.25, 0, 0.25, 1);
-
- glEnable(GL_VERTEX_PROGRAM_ARB);
- glEnable(GL_DEPTH_TEST);
- glClearColor(0.3, 0.3, 0.3, 1);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arbvpwarpmesh.c b/progs/tests/arbvpwarpmesh.c
deleted file mode 100644
index 973a157409..0000000000
--- a/progs/tests/arbvpwarpmesh.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Warp a triangle mesh with a vertex program.
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Xrot = -60.0, Yrot = 0.0, Zrot = 0.0;
-static GLboolean Anim = GL_TRUE;
-static GLfloat Phi = 0.0;
-
-
-static void Idle( void )
-{
- Phi += 0.01;
- glutPostRedisplay();
-}
-
-
-static void DrawMesh( int rows, int cols )
-{
- static const GLfloat colorA[3] = { 0, 1, 0 };
- static const GLfloat colorB[3] = { 0, 0, 1 };
- const float dx = 2.0 / (cols - 1);
- const float dy = 2.0 / (rows - 1);
- float x, y;
- int i, j;
-
-#if 1
-#define COLOR3FV(c) glVertexAttrib3fvARB(3, c)
-#define VERTEX2F(x, y) glVertexAttrib2fARB(0, x, y)
-#else
-#define COLOR3FV(c) glColor3fv(c)
-#define VERTEX2F(x, y) glVertex2f(x, y)
-#endif
-
- y = -1.0;
- for (i = 0; i < rows - 1; i++) {
- glBegin(GL_QUAD_STRIP);
- x = -1.0;
- for (j = 0; j < cols; j++) {
- if ((i + j) & 1)
- COLOR3FV(colorA);
- else
- COLOR3FV(colorB);
- VERTEX2F(x, y);
- VERTEX2F(x, y + dy);
- x += dx;
- }
- glEnd();
- y += dy;
- }
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- /* Position the gravity source */
- {
- GLfloat x, y, z, r = 0.5;
- x = r * cos(Phi);
- y = r * sin(Phi);
- z = 1.0;
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 30, x, y, z, 1);
- glDisable(GL_VERTEX_PROGRAM_ARB);
- glBegin(GL_POINTS);
- glColor3f(1,1,1);
- glVertex3f(x, y, z);
- glEnd();
- }
-
- glEnable(GL_VERTEX_PROGRAM_ARB);
- DrawMesh(8, 8);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -1.0 * ar, 1.0 * ar, -1.0, 1.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
- glScalef(2, 2, 2);
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'p':
- Phi += 0.2;
- break;
- case 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- GLuint prognum;
- GLint errno;
-
- /*
- * c[0..3] = modelview matrix
- * c[4..7] = inverse modelview matrix
- * c[30] = gravity source location
- * c[31] = gravity source strength
- * c[32] = light pos
- * c[35] = diffuse color
- */
- static const char prog[] =
- "!!ARBvp1.0\n"
- "TEMP R1, R2, R3; "
-
- "# Compute distance from vertex to gravity source\n"
- "ADD R1, program.local[30], -vertex.position; # vector from vertex to gravity\n"
- "DP3 R2, R1, R1; # dot product\n"
- "RSQ R2, R2.x; # square root = distance\n"
- "MUL R2, R2, program.local[31].xxxx; # scale by the gravity factor\n"
-
- "# Displace vertex by gravity factor along R1 vector\n"
- "MAD R3, R1, R2, vertex.position;\n"
-
- "# Continue with typical modelview/projection\n"
- "DP4 result.position.x, state.matrix.mvp.row[0], R3 ; # object x MVP -> clip\n"
- "DP4 result.position.y, state.matrix.mvp.row[1], R3 ;\n"
- "DP4 result.position.z, state.matrix.mvp.row[2], R3 ;\n"
- "DP4 result.position.w, state.matrix.mvp.row[3], R3 ;\n"
-
- "MOV result.color, vertex.attrib[3];\n # copy input color to output color\n"
-
- "END";
-
- if (!glutExtensionSupported("GL_ARB_vertex_program")) {
- printf("Sorry, this program requires GL_ARB_vertex_program\n");
- exit(1);
- }
-
- glGenProgramsARB(1, &prognum);
- glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
- glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *)prog);
- errno = glGetError();
- printf("glGetError = %d\n", errno);
-
- if (errno != GL_NO_ERROR)
- {
- GLint errorpos;
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
- printf("errorpos: %d\n", errorpos);
- printf("%s\n", glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- }
-
- /* Light position */
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 32, 2, 2, 4, 1);
- /* Diffuse material color */
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 35, 0.25, 0, 0.25, 1);
-
- /* Gravity strength */
- glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, 31, .5, 0, 0, 0);
-
- glEnable(GL_DEPTH_TEST);
- glClearColor(0.3, 0.3, 0.3, 1);
- glShadeModel(GL_FLAT);
- glPointSize(3);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/arraytexture.c b/progs/tests/arraytexture.c
deleted file mode 100644
index 94adf478d9..0000000000
--- a/progs/tests/arraytexture.c
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2007
- * 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
- * IBM AND/OR ITS 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.
- */
-
-/**
- * \file arraytexture.c
- *
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#if !defined(GL_EXT_texture_array) && !defined(GL_MESA_texture_array)
-# error "This demo requires enums for either GL_EXT_texture_array or GL_MESA_texture_array to build."
-#endif
-
-#include "readtex.h"
-
-#define GL_CHECK_ERROR() \
- do { \
- GLenum err = glGetError(); \
- if (err) { \
- printf("%s:%u: %s (0x%04x)\n", __FILE__, __LINE__, \
- gluErrorString(err), err); \
- } \
- } while (0)
-
-static const char *const textures[] = {
- "../images/girl.rgb",
- "../images/girl2.rgb",
- "../images/arch.rgb",
- "../images/s128.rgb",
-
- "../images/tree3.rgb",
- "../images/bw.rgb",
- "../images/reflect.rgb",
- "../images/wrs_logo.rgb",
- NULL
-};
-
-static const char frag_prog[] =
- "!!ARBfp1.0\n"
- "OPTION MESA_texture_array;\n"
- "TEX result.color, fragment.texcoord[0], texture[0], ARRAY2D;\n"
- "END\n";
-
-static GLfloat Xrot = 0, Yrot = -30, Zrot = 0;
-static GLfloat texZ = 0.0;
-static GLfloat texZ_dir = 0.01;
-static GLint num_layers;
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void Idle(void)
-{
- static int lastTime = 0;
- int t = glutGet(GLUT_ELAPSED_TIME);
-
- if (lastTime == 0)
- lastTime = t;
- else if (t - lastTime < 10)
- return;
-
- lastTime = t;
-
- texZ += texZ_dir;
- if ((texZ < 0.0) || ((GLint) texZ > num_layers)) {
- texZ_dir = -texZ_dir;
- }
-
- glutPostRedisplay();
-}
-
-
-static void Display(void)
-{
- char str[100];
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-1, 1, -1, 1, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0);
- glColor3f(1,1,1);
- glRasterPos3f(-0.9, -0.9, 0.0);
- sprintf(str, "Texture Z coordinate = %4.1f", texZ);
- PrintString(str);
-
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 1);
- GL_CHECK_ERROR();
- glEnable(GL_TEXTURE_2D_ARRAY_EXT);
- GL_CHECK_ERROR();
-
- 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, -8.0);
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- glBegin(GL_QUADS);
- glTexCoord3f(0.0, 0.0, texZ); glVertex2f(-1.0, -1.0);
- glTexCoord3f(2.0, 0.0, texZ); glVertex2f(1.0, -1.0);
- glTexCoord3f(2.0, 2.0, texZ); glVertex2f(1.0, 1.0);
- glTexCoord3f(0.0, 2.0, texZ); glVertex2f(-1.0, 1.0);
- glEnd();
-
- glPopMatrix();
-
- glDisable(GL_TEXTURE_2D_ARRAY_EXT);
- GL_CHECK_ERROR();
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0);
- GL_CHECK_ERROR();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
-}
-
-
-static void Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey(int key, int x, int y)
-{
- const GLfloat step = 3.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 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
-compile_fragment_program(GLuint id, const char *prog)
-{
- int errorPos;
- int err;
-
- err = glGetError();
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, id);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(prog), (const GLubyte *) prog);
-
- glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
- err = glGetError();
- if (err != GL_NO_ERROR || errorPos != -1) {
- int l = FindLine(prog, errorPos);
-
- printf("Fragment Program Error (err=%d, pos=%d line=%d): %s\n",
- err, errorPos, l,
- (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- exit(0);
- }
-}
-
-
-static void require_extension(const char *ext)
-{
- if (!glutExtensionSupported(ext)) {
- printf("Sorry, %s not supported by this renderer.\n", ext);
- exit(1);
- }
-}
-
-
-static void Init(void)
-{
- const char *const ver_string = (const char *) glGetString(GL_VERSION);
- unsigned i;
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- require_extension("GL_ARB_fragment_program");
- require_extension("GL_MESA_texture_array");
- require_extension("GL_SGIS_generate_mipmap");
-
- for (num_layers = 0; textures[num_layers] != NULL; num_layers++)
- /* empty */ ;
-
- glBindTexture(GL_TEXTURE_2D_ARRAY_EXT, 1);
- glTexImage3D(GL_TEXTURE_2D_ARRAY_EXT, 0, GL_RGB8,
- 256, 256, num_layers, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
- GL_CHECK_ERROR();
-
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_GENERATE_MIPMAP_SGIS,
- GL_TRUE);
-
- for (i = 0; textures[i] != NULL; i++) {
- GLint width, height;
- GLenum format;
-
- GLubyte *image = LoadRGBImage(textures[i], &width, &height, &format);
- if (!image) {
- printf("Error: could not load texture image %s\n", textures[i]);
- exit(1);
- }
-
- /* resize to 256 x 256 */
- if (width != 256 || height != 256) {
- GLubyte *newImage = malloc(256 * 256 * 4);
- gluScaleImage(format, width, height, GL_UNSIGNED_BYTE, image,
- 256, 256, GL_UNSIGNED_BYTE, newImage);
- free(image);
- image = newImage;
- }
-
- glTexSubImage3D(GL_TEXTURE_2D_ARRAY_EXT, 0,
- 0, 0, i, 256, 256, 1,
- format, GL_UNSIGNED_BYTE, image);
- free(image);
- }
- GL_CHECK_ERROR();
-
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
-
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- GL_CHECK_ERROR();
- glTexParameteri(GL_TEXTURE_2D_ARRAY_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- GL_CHECK_ERROR();
-
- compile_fragment_program(1, frag_prog);
- GL_CHECK_ERROR();
-}
-
-
-int main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(350, 350);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- glutCreateWindow("Array texture test");
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Display);
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/auxbuffer.c b/progs/tests/auxbuffer.c
deleted file mode 100644
index 70f0b73910..0000000000
--- a/progs/tests/auxbuffer.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * Test AUX buffer rendering
- * Use GLX since GLUT doesn't support AUX buffers
- */
-
-
-/*
- * Copyright (C) 1999-2001 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.
- */
-
-/*
- * 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
- *
- */
-
-
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <X11/Xlib.h>
-#include <X11/keysym.h>
-#include <GL/gl.h>
-#include <GL/glx.h>
-
-
-static int
-current_time(void)
-{
- return 0;
-}
-
-
-
-
-#ifndef M_PI
-#define M_PI 3.14159265
-#endif
-
-static int WinWidth = 300, WinHeight = 300;
-static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
-static GLint gear1, gear2, gear3;
-static GLfloat angle = 0.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(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(view_rotx, 1.0, 0.0, 0.0);
- glRotatef(view_roty, 0.0, 1.0, 0.0);
- glRotatef(view_rotz, 0.0, 0.0, 1.0);
-
- glPushMatrix();
- glTranslatef(-3.0, -2.0, 0.0);
- glRotatef(angle, 0.0, 0.0, 1.0);
- glCallList(gear1);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(3.1, -2.0, 0.0);
- glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0);
- glCallList(gear2);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(-3.1, 4.2, 0.0);
- glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0);
- glCallList(gear3);
- glPopMatrix();
-
- glPopMatrix();
-}
-
-
-/* new window size or exposure */
-static void
-reshape(int width, int height)
-{
- GLfloat h = (GLfloat) height / (GLfloat) width;
-
- WinWidth = width;
- WinHeight = height;
- glViewport(0, 0, (GLint) width, (GLint) height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -40.0);
-}
-
-
-static void
-init(void)
-{
- 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, 1.0 };
- static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 };
- int i;
-
- glGetIntegerv(GL_AUX_BUFFERS, &i);
- printf("AUX BUFFERS: %d\n", i);
-
- glLightfv(GL_LIGHT0, GL_POSITION, pos);
- glEnable(GL_CULL_FACE);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-
- /* make the gears */
- 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();
-
- gear2 = glGenLists(1);
- glNewList(gear2, GL_COMPILE);
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
- gear(0.5, 2.0, 2.0, 10, 0.7);
- glEndList();
-
- gear3 = glGenLists(1);
- glNewList(gear3, GL_COMPILE);
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
- gear(1.3, 2.0, 0.5, 10, 0.7);
- glEndList();
-
- glEnable(GL_NORMALIZE);
-}
-
-
-/*
- * Create an RGB, double-buffered window.
- * Return the window and context handles.
- */
-static void
-make_window( Display *dpy, const char *name,
- int x, int y, int width, int height,
- Window *winRet, GLXContext *ctxRet)
-{
- int attrib[] = { GLX_RGBA,
- GLX_RED_SIZE, 1,
- GLX_GREEN_SIZE, 1,
- GLX_BLUE_SIZE, 1,
- GLX_DOUBLEBUFFER,
- GLX_DEPTH_SIZE, 1,
- GLX_AUX_BUFFERS, 1,
- None };
- int scrnum;
- XSetWindowAttributes attr;
- unsigned long mask;
- Window root;
- Window win;
- GLXContext ctx;
- XVisualInfo *visinfo;
-
- scrnum = DefaultScreen( dpy );
- root = RootWindow( dpy, scrnum );
-
- visinfo = glXChooseVisual( dpy, scrnum, attrib );
- 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, 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(dpy, win, &sizehints);
- XSetStandardProperties(dpy, win, name, name,
- None, (char **)NULL, 0, &sizehints);
- }
-
- ctx = glXCreateContext( dpy, visinfo, NULL, True );
- if (!ctx) {
- printf("Error: glXCreateContext failed\n");
- exit(1);
- }
-
- XFree(visinfo);
-
- *winRet = win;
- *ctxRet = ctx;
-}
-
-
-static void
-event_loop(Display *dpy, Window win)
-{
- while (1) {
- while (XPending(dpy) > 0) {
- XEvent event;
- XNextEvent(dpy, &event);
- switch (event.type) {
- case Expose:
- /* we'll redraw below */
- 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 {
- r = XLookupString(&event.xkey, buffer, sizeof(buffer),
- NULL, NULL);
- if (buffer[0] == 27) {
- /* escape */
- return;
- }
- }
- }
- }
- }
-
- /* next frame */
- angle += 2.0;
-
- /* draw to aux buffer */
- glDrawBuffer(GL_AUX0);
-
- draw();
-
- /* Copy aux buffer image to back color buffer */
- glReadBuffer(GL_AUX0);
- glDrawBuffer(GL_BACK);
- glWindowPos2iARB(0, 0);
- glDisable(GL_DEPTH_TEST);
- glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR);
- glEnable(GL_DEPTH_TEST);
-
- glXSwapBuffers(dpy, win);
-
- /* calc framerate */
- {
- static int t0 = -1;
- static int frames = 0;
- int t = current_time();
-
- if (t0 < 0)
- t0 = t;
-
- frames++;
-
- if (t - t0 >= 5.0) {
- GLfloat seconds = t - t0;
- GLfloat fps = frames / seconds;
- printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds,
- fps);
- t0 = t;
- frames = 0;
- }
- }
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- Display *dpy;
- Window win;
- GLXContext ctx;
- char *dpyName = ":0";
- GLboolean printInfo = GL_FALSE;
- int i;
-
- 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;
- }
- }
-
- dpy = XOpenDisplay(dpyName);
- if (!dpy) {
- printf("Error: couldn't open display %s\n", dpyName);
- return -1;
- }
-
- make_window(dpy, "glxgears", 0, 0, WinWidth, WinHeight, &win, &ctx);
- XMapWindow(dpy, win);
- glXMakeCurrent(dpy, win, ctx);
-
- 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();
-
- event_loop(dpy, win);
-
- glXDestroyContext(dpy, ctx);
- XDestroyWindow(dpy, win);
- XCloseDisplay(dpy);
-
- return 0;
-}
diff --git a/progs/tests/blendminmax.c b/progs/tests/blendminmax.c
deleted file mode 100644
index b33839cc87..0000000000
--- a/progs/tests/blendminmax.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file blendminmax.c
- *
- * Simple test of GL_EXT_blend_minmax functionality. Four squares are drawn
- * with different blending modes, but all should be rendered with the same
- * final color.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- /* This is the "reference" square.
- */
-
- glTranslatef(-4.5, 0, 0);
- glBlendEquation( GL_FUNC_ADD );
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- /* GL_MIN and GL_MAX are supposed to ignore the blend function setting.
- * To test that, we set the blend function to GL_ZERO for both color and
- * alpha each time GL_MIN or GL_MAX is used.
- *
- * Apple ships an extension called GL_ATI_blend_weighted_minmax (supported
- * on Mac OS X 10.2 and later). I believe the difference with that
- * extension is that it uses the blend function. However, I have no idea
- * what the enums are for it. The extension is listed at Apple's developer
- * site, but there is no documentation.
- *
- * http://developer.apple.com/opengl/extensions.html
- */
-
- glTranslatef(3.0, 0, 0);
- glBlendEquation( GL_FUNC_ADD );
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glBlendEquation( GL_MAX );
- glBlendFunc( GL_ZERO, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.2, 0.2, 0.2 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
- glBlendEquation( GL_FUNC_ADD );
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glBlendEquation( GL_MIN );
- glBlendFunc( GL_ZERO, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.8, 0.8, 0.8 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
- glBlendEquation( GL_FUNC_ADD );
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.8, 0.8, 0.8 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glBlendEquation( GL_MIN );
- glBlendFunc( GL_ZERO, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( !glutExtensionSupported("GL_ARB_imaging") && !glutExtensionSupported("GL_EXT_blend_minmax")) {
- printf("Sorry, this program requires either GL_ARB_imaging or GL_EXT_blend_minmax.\n");
- exit(1);
- }
-
- printf("\nAll 4 squares should be the same color.\n");
- glEnable( GL_BLEND );
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "GL_EXT_blend_minmax test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/blendsquare.c b/progs/tests/blendsquare.c
deleted file mode 100644
index 07806fc758..0000000000
--- a/progs/tests/blendsquare.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file blendsquare.c
- *
- * Simple test of GL_NV_blend_square functionality. Four squares are drawn
- * with different blending modes, but all should be rendered with the same
- * final color.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- glTranslatef(-4.5, 0, 0);
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5 * 0.5, 0.5 * 0.5, 0.5 * 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glBlendFunc( GL_DST_COLOR, GL_ZERO );
- glBegin(GL_QUADS);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
- glBlendFunc( GL_SRC_COLOR, GL_ZERO );
- glBegin(GL_QUADS);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glBlendFunc( GL_ZERO, GL_DST_COLOR );
- glBegin(GL_QUADS);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- const double version = strtod( ver_string, NULL );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( (version < 1.4) && !glutExtensionSupported("GL_NV_blend_square")) {
- printf("Sorry, this program requires either OpenGL 1.4 or GL_NV_blend_square\n");
- exit(1);
- }
-
- printf("\nAll 4 squares should be the same color. The two on the left are drawn\n"
- "without NV_blend_square functionality, and the two on the right are drawn\n"
- "with NV_blend_square functionality. If the two on the left are dark, but\n"
- "the two on the right are not, then NV_blend_square is broken.\n");
- glEnable( GL_BLEND );
- glBlendEquation( GL_FUNC_ADD );
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "GL_NV_blend_square test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/blendxor.c b/progs/tests/blendxor.c
deleted file mode 100644
index d6dcb8b848..0000000000
--- a/progs/tests/blendxor.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Test XOR emulation with blending.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "readtex.c"
-
-#define IMAGE_FILE "../images/arch.rgb"
-
-static int ImgWidth, ImgHeight;
-static GLenum ImgFormat;
-static GLubyte *Image = NULL;
-
-static int Win;
-static int Width = 600, Height = 600;
-
-struct rect
-{
- int x0, y0, x1, y1;
-};
-
-static struct rect OldRect, NewRect;
-
-static GLboolean ButtonDown = GL_FALSE;
-static GLboolean LogicOp = 0*GL_TRUE;
-
-
-static const GLfloat red[4] = {1.0, 0.2, 0.2, 1.0};
-static const GLfloat green[4] = {0.2, 1.0, 0.2, 1.0};
-static const GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0};
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glWindowPos2i((Width - ImgWidth) / 2, (Height - ImgHeight) / 2);
- glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
-
- /*
- * Draw 2D XOR rects
- */
- glColor3f(1, 1, 1);
-
- glWindowPos2i(100, Height - 20);
- PrintString("XOR LogicOp:");
- glLogicOp(GL_XOR);
- glEnable(GL_COLOR_LOGIC_OP);
- glRecti(100, 30, 250, Height - 30);
- glDisable(GL_COLOR_LOGIC_OP);
-
- glWindowPos2i(Width/2 + 10, Height - 20);
- PrintString("Invert Blending:");
- glBlendFunc(GL_ONE, GL_ONE);
- glBlendEquation(GL_FUNC_SUBTRACT);
- glEnable(GL_BLEND);
- glRecti(Width / 2, 30, Width / 2 + 150, Height - 30);
- glDisable(GL_BLEND);
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- Width = width;
- Height = height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, Width, 0, Height, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- case 'B':
- LogicOp = GL_FALSE;
- break;
- case 'l':
- case 'L':
- LogicOp = GL_TRUE;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-MouseMotion(int x, int y)
-{
- if (ButtonDown) {
- NewRect.x1 = x;
- NewRect.y1 = y;
- glutPostRedisplay();
- }
-}
-
-
-static void
-MouseButton(int button, int state, int x, int y)
-{
- if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
- ButtonDown = GL_TRUE;
- NewRect.x0 = NewRect.x1 = x;
- NewRect.y0 = NewRect.y1 = y;
- OldRect = NewRect;
- }
- else if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
- ButtonDown = GL_FALSE;
- }
-}
-
-
-static void
-Init(void)
-{
- /*
- * Load image and scale if needed.
- */
- Image = LoadRGBImage(IMAGE_FILE, &ImgWidth, &ImgHeight, &ImgFormat);
- if (!Image) {
- printf("Couldn't read %s\n", IMAGE_FILE);
- exit(0);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutMotionFunc(MouseMotion);
- glutMouseFunc(MouseButton);
- glutDisplayFunc(Draw);
- Init();
- glutPostRedisplay();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/blitfb.c b/progs/tests/blitfb.c
deleted file mode 100644
index 18c8380a5e..0000000000
--- a/progs/tests/blitfb.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/**
- * Test glFramebufferBlit()
- * Brian Paul
- * 27 Oct 2009
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static int Win;
-static int WinWidth = 1100, WinHeight = 600;
-
-static int SrcWidth = 512, SrcHeight = 512;
-static int DstWidth = 512, DstHeight = 512;
-
-static GLuint SrcFB, DstFB;
-static GLuint SrcTex, DstTex;
-
-#if 0
-static GLenum SrcTexTarget = GL_TEXTURE_2D, SrcTexFace = GL_TEXTURE_2D;
-#else
-static GLenum SrcTexTarget = GL_TEXTURE_CUBE_MAP, SrcTexFace = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
-#endif
-
-static GLenum DstTexTarget = GL_TEXTURE_2D, DstTexFace = GL_TEXTURE_2D;
-
-static GLuint SrcTexLevel = 01, DstTexLevel = 0;
-
-
-static void
-Draw(void)
-{
- GLboolean rp = GL_FALSE;
- GLubyte *buf;
- GLint srcWidth = SrcWidth >> SrcTexLevel;
- GLint srcHeight = SrcHeight >> SrcTexLevel;
- GLint dstWidth = DstWidth >> DstTexLevel;
- GLint dstHeight = DstHeight >> DstTexLevel;
- GLenum status;
-
- /* clear window */
- glBindFramebufferEXT(GL_FRAMEBUFFER, 0);
- glClearColor(0.5, 0.5, 0.5, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
-
- /* clear src buf */
- glBindFramebufferEXT(GL_FRAMEBUFFER, SrcFB);
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- assert(status == GL_FRAMEBUFFER_COMPLETE_EXT);
- glClearColor(0, 1, 0, 0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- /* clear dst buf */
- glBindFramebufferEXT(GL_FRAMEBUFFER, DstFB);
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- assert(status == GL_FRAMEBUFFER_COMPLETE_EXT);
- glClearColor(1, 0, 0, 0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- /* blit src -> dst */
- glBindFramebufferEXT(GL_READ_FRAMEBUFFER, SrcFB);
- glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER, DstFB);
- glBlitFramebufferEXT(0, 0, srcWidth, srcHeight,
- 0, 0, dstWidth, dstHeight,
- GL_COLOR_BUFFER_BIT, GL_NEAREST);
-
-#if 01
- /* read src results */
- buf = malloc(4 * srcWidth * srcHeight);
- memset(buf, 0x88, 4 * srcWidth * srcHeight);
- glBindFramebufferEXT(GL_FRAMEBUFFER, SrcFB);
- if (rp)
- glReadPixels(0, 0, srcWidth, srcHeight, GL_RGBA, GL_UNSIGNED_BYTE, buf);
- else {
- glBindTexture(SrcTexTarget, SrcTex);
- glGetTexImage(SrcTexFace, SrcTexLevel, GL_RGBA, GL_UNSIGNED_BYTE, buf);
- }
-
- /* draw dst in window */
- glBindFramebufferEXT(GL_FRAMEBUFFER, 0);
- glWindowPos2i(0, 0);
- glDrawPixels(srcWidth, srcHeight, GL_RGBA, GL_UNSIGNED_BYTE, buf);
-
- printf("Src Pix[0] = %d %d %d %d\n", buf[0], buf[1], buf[2], buf[3]);
- free(buf);
-#endif
-
- glFinish();
-
- /* read dst results */
- buf = malloc(4 * dstWidth * dstHeight);
- memset(buf, 0x88, 4 * dstWidth * dstHeight);
- glBindFramebufferEXT(GL_FRAMEBUFFER, DstFB);
- if (rp)
- glReadPixels(0, 0, dstWidth, dstHeight, GL_RGBA, GL_UNSIGNED_BYTE, buf);
- else {
- glBindTexture(DstTexTarget, DstTex);
- glGetTexImage(DstTexFace, DstTexLevel, GL_RGBA, GL_UNSIGNED_BYTE, buf);
- }
-
- /* draw dst in window */
- glBindFramebufferEXT(GL_FRAMEBUFFER, 0);
- glWindowPos2i(srcWidth + 2, 0);
- glDrawPixels(dstWidth, dstHeight, GL_RGBA, GL_UNSIGNED_BYTE, buf);
-
- printf("Dst Pix[0] = %d %d %d %d\n", buf[0], buf[1], buf[2], buf[3]);
- free(buf);
-
- glFinish();
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- WinWidth = width;
- WinHeight = 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:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- }
- glutPostRedisplay();
-}
-
-
-static void
-InitFBOs(void)
-{
- GLuint w, h, lvl;
-
- /* Src */
- glGenTextures(1, &SrcTex);
- glBindTexture(SrcTexTarget, SrcTex);
- w = SrcWidth;
- h = SrcHeight;
- lvl = 0;
- for (lvl = 0; ; lvl++) {
- if (SrcTexTarget == GL_TEXTURE_CUBE_MAP) {
- GLuint f;
- for (f = 0; f < 6; f++) {
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + f, lvl, GL_RGBA8,
- w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- }
- }
- else {
- /* single face */
- glTexImage2D(SrcTexFace, lvl, GL_RGBA8, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- }
- if (w == 1 && h == 1)
- break;
- if (w > 1)
- w /= 2;
- if (h > 1)
- h /= 2;
- }
-
- glGenFramebuffersEXT(1, &SrcFB);
- glBindFramebufferEXT(GL_FRAMEBUFFER, SrcFB);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- SrcTexFace, SrcTex, SrcTexLevel);
-
- /* Dst */
- glGenTextures(1, &DstTex);
- glBindTexture(DstTexTarget, DstTex);
- w = DstWidth;
- h = DstHeight;
- lvl = 0;
- for (lvl = 0; ; lvl++) {
- glTexImage2D(DstTexFace, lvl, GL_RGBA8, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- if (w == 1 && h == 1)
- break;
- if (w > 1)
- w /= 2;
- if (h > 1)
- h /= 2;
- }
-
- glGenFramebuffersEXT(1, &DstFB);
- glBindFramebufferEXT(GL_FRAMEBUFFER, DstFB);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- DstTexFace, DstTex, DstTexLevel);
-}
-
-
-static void
-Init(void)
-{
- if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
- fprintf(stderr, "This test requires GL_EXT_framebuffer_object\n");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_EXT_framebuffer_blit")) {
- fprintf(stderr, "This test requires GL_EXT_framebuffer_blit,\n");
- exit(1);
- }
-
- InitFBOs();
-
- printf("Left rect = src FBO, Right rect = dst FBO.\n");
- printf("Both should be green.\n");
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/bufferobj.c b/progs/tests/bufferobj.c
deleted file mode 100644
index dc479af045..0000000000
--- a/progs/tests/bufferobj.c
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * Test GL_ARB_vertex_buffer_object
- * Also test GL_ARB_vertex_array_object if supported
- *
- * Brian Paul
- * 16 Sep 2003
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#define NUM_OBJECTS 10
-
-struct object
-{
- GLuint ArrayObjectID; /** GL_ARB_vertex_array_object */
- GLuint VertexBufferID;
- GLuint ColorBufferID;
- GLuint ElementsBufferID;
- GLuint NumVerts;
- GLuint VertexOffset;
- GLuint ColorOffset;
- GLuint VertexStride;
- GLuint ColorStride;
- GLuint NumElements;
- GLuint MaxElement;
-};
-
-static struct object Objects[NUM_OBJECTS];
-static GLuint NumObjects;
-
-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)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void DrawObject( const struct object *obj )
-{
- 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);
- glDrawRangeElements(GL_LINE_LOOP, 0, obj->MaxElement,
- 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 */
-#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();
- }
-#endif
- 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);
- }
- }
-}
-
-
-static void Idle( void )
-{
- Zrot = 0.05 * glutGet(GLUT_ELAPSED_TIME);
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- int i;
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- for (i = 0; i < NumObjects; i++) {
- float x = 7.0 * ((float) i / (NumObjects-1) - 0.5);
- glPushMatrix();
- glTranslatef(x, 0, 0);
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- DrawObject(Objects + i);
-
- glPopMatrix();
- }
-
- CheckError(__LINE__);
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -15.0 );
-}
-
-
-static void FreeBuffers(void)
-{
- int i;
- for (i = 0; i < NUM_OBJECTS; i++) {
- glDeleteBuffersARB(1, &Objects[i].VertexBufferID);
- glDeleteBuffersARB(1, &Objects[i].ColorBufferID);
- glDeleteBuffersARB(1, &Objects[i].ElementsBufferID);
- }
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- const GLfloat step = 3.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 27:
- FreeBuffers();
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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();
-}
-
-
-/**
- * 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.
- */
-static void MakeObject1(struct object *obj)
-{
- GLfloat *v, *c;
- void *p;
- int i;
- GLubyte buffer[500];
-
- for (i = 0; i < 500; i++)
- buffer[i] = i & 0xff;
-
- obj->VertexBufferID = 0;
- glGenBuffersARB(1, &obj->VertexBufferID);
- obj->ColorBufferID = obj->VertexBufferID;
- assert(obj->VertexBufferID != 0);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, 500, buffer, GL_STATIC_DRAW_ARB);
-
- for (i = 0; i < 500; i++)
- buffer[i] = 0;
-
- glGetBufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, 500, buffer);
-
- for (i = 0; i < 500; i++)
- assert(buffer[i] == (i & 0xff));
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAPPED_ARB, &i);
- assert(!i);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_USAGE_ARB, &i);
-
- v = (GLfloat *) glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
-
- /* do some sanity tests */
- glGetBufferPointervARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAP_POINTER_ARB, &p);
- assert(p == v);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_SIZE_ARB, &i);
- assert(i == 500);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_USAGE_ARB, &i);
- assert(i == GL_STATIC_DRAW_ARB);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_ACCESS_ARB, &i);
- assert(i == GL_WRITE_ONLY_ARB);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAPPED_ARB, &i);
- assert(i);
-
- /* Make rectangle */
- v[0] = -1; v[1] = -1; v[2] = 0;
- v[3] = 1; v[4] = -1; v[5] = 0;
- v[6] = 1; v[7] = 1; v[8] = 0;
- v[9] = -1; v[10] = 1; v[11] = 0;
- c = v + 12;
- c[0] = 1; c[1] = 0; c[2] = 0;
- c[3] = 1; c[4] = 0; c[5] = 0;
- c[6] = 1; c[7] = 0; c[8] = 1;
- c[9] = 1; c[10] = 0; c[11] = 1;
- obj->NumVerts = 4;
- obj->VertexOffset = 0;
- obj->ColorOffset = 3 * sizeof(GLfloat) * obj->NumVerts;
- obj->VertexStride = 0;
- obj->ColorStride = 0;
- obj->NumElements = 0;
- obj->MaxElement = 0;
-
- glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
-
- glGetBufferPointervARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAP_POINTER_ARB, &p);
- assert(!p);
-
- glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_MAPPED_ARB, &i);
- assert(!i);
-
- if (Have_ARB_vertex_array_object) {
- CreateVertexArrayObject(obj);
- }
-}
-
-
-/*
- * Interleaved position/color data.
- */
-static void MakeObject2(struct object *obj)
-{
- GLfloat *v;
- int start = 40; /* bytes, to test non-zero array offsets */
-
- glGenBuffersARB(1, &obj->VertexBufferID);
- obj->ColorBufferID = obj->VertexBufferID;
-
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, 1000, NULL, GL_STATIC_DRAW_ARB);
- v = (GLfloat *) glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
-
- v += start / sizeof(GLfloat);
-
- /* Make triangle: interleaved colors, then positions */
- /* R G B X Y Z */
- v[0] = 0; v[1] = 1; v[2] = 0; v[3] = -1; v[4] = -1; v[5] = 0;
- v[6] = 0; v[7] = 1; v[8] = 0; v[9] = 1; v[10] = -1; v[11] = 0;
- v[12] = 1; v[13] = 1; v[14] = 0; v[15] = 0; v[16] = 1; v[17] = 0;
-
- obj->NumVerts = 3;
- obj->VertexOffset = start + 3 * sizeof(GLfloat);
- obj->ColorOffset = start;
- obj->VertexStride = 6 * sizeof(GLfloat);
- obj->ColorStride = 6 * sizeof(GLfloat);
-
- obj->NumElements = 0;
- obj->MaxElement = 0;
-
- glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
-
- if (Have_ARB_vertex_array_object) {
- CreateVertexArrayObject(obj);
- }
-}
-
-
-/*
- * Use an index buffer and glDrawElements().
- */
-static void MakeObject3(struct object *obj)
-{
- GLfloat vertexData[1000];
- GLfloat *v, *c;
- GLuint *i;
- int bytes;
-
- /* Make rectangle */
- v = vertexData;
- v[0] = -1; v[1] = -0.5; v[2] = 0;
- v[3] = 1; v[4] = -0.5; v[5] = 0;
- v[6] = 1; v[7] = 0.5; v[8] = 0;
- v[9] = -1; v[10] = 0.5; v[11] = 0;
- c = vertexData + 12;
- c[0] = 0; c[1] = 0; c[2] = 1;
- c[3] = 0; c[4] = 0; c[5] = 1;
- c[6] = 0; c[7] = 1; c[8] = 1;
- c[9] = 0; c[10] = 1; c[11] = 1;
- obj->NumVerts = 4;
- obj->VertexOffset = 0;
- obj->ColorOffset = 3 * sizeof(GLfloat) * obj->NumVerts;
- obj->VertexStride = 0;
- obj->ColorStride = 0;
-
- bytes = obj->NumVerts * (3 + 3) * sizeof(GLfloat);
-
- /* Don't use glMap/UnmapBuffer for this object */
- glGenBuffersARB(1, &obj->VertexBufferID);
- obj->ColorBufferID = obj->VertexBufferID;
-
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, bytes, vertexData, GL_STATIC_DRAW_ARB);
-
- /* Setup a buffer of indices to test the ELEMENTS path */
- glGenBuffersARB(1, &obj->ElementsBufferID);
- glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, obj->ElementsBufferID);
- glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 100, NULL, GL_STATIC_DRAW_ARB);
- i = (GLuint *) glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_READ_WRITE_ARB);
- i[0] = 0;
- i[1] = 1;
- i[2] = 2;
- i[3] = 3;
- glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB);
- obj->NumElements = 4;
- obj->MaxElement = 3;
-
- if (Have_ARB_vertex_array_object) {
- CreateVertexArrayObject(obj);
- }
-}
-
-
-/*
- * Vertex and color data in different buffers.
- */
-static void MakeObject4(struct object *obj)
-{
- static const GLfloat vertexData[] = {
- 0, -1, 0,
- 0.5, 0, 0,
- 0, 1, 0,
- -0.5, 0, 0
- };
- static const GLfloat colorData[] = {
- 1, 1, 1,
- 1, 1, 0,
- .5, .5, 0,
- 1, 1, 0
- };
-
- obj->VertexOffset = 0;
- obj->VertexStride = 0;
- obj->ColorOffset = 0;
- obj->ColorStride = 0;
- obj->NumVerts = 4;
-
- glGenBuffersARB(1, &obj->VertexBufferID);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(vertexData), vertexData,
- GL_STATIC_DRAW_ARB);
-
- glGenBuffersARB(1, &obj->ColorBufferID);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(colorData), colorData,
- GL_STATIC_DRAW_ARB);
-
- /* Setup a buffer of indices to test the ELEMENTS path */
- obj->ElementsBufferID = 0;
- obj->NumElements = 0;
- obj->MaxElement = 0;
-
- if (Have_ARB_vertex_array_object) {
- CreateVertexArrayObject(obj);
- }
-}
-
-
-
-static void Init( void )
-{
- if (!glutExtensionSupported("GL_ARB_vertex_buffer_object")) {
- printf("GL_ARB_vertex_buffer_object not found!\n");
- exit(0);
- }
- 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];
- GLuint id = 999;
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, id);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, 1000, data, GL_STATIC_DRAW_ARB);
- glVertexPointer(3, GL_FLOAT, 0, (void *) 0);
- glDeleteBuffersARB(1, &id);
- assert(!glIsBufferARB(id));
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
- glVertexPointer(3, GL_FLOAT, 0, (void *) 0);
- assert(!glIsBufferARB(id));
- }
-
- memset(Objects, 0, sizeof(Objects));
- MakeObject1(Objects + 0);
- MakeObject2(Objects + 1);
- MakeObject3(Objects + 2);
- MakeObject4(Objects + 3);
- NumObjects = 4;
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 600, 300 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/bug_3050.c b/progs/tests/bug_3050.c
deleted file mode 100644
index a04e40eaf6..0000000000
--- a/progs/tests/bug_3050.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2006
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file bug_3050.c
- *
- * Simple regression test for bug #3050. Create a texture and make a few
- * calls to \c glGetTexLevelParameteriv. If the bug still exists, trying
- * to get \c GL_TEXTURE_WITDH will cause a protocol error.
- *
- * This test \b only applies to indirect-rendering. This may mean that the
- * test needs to be run with the environment variable \c LIBGL_ALWAYS_INDIRECT
- * set to a non-zero value.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
-}
-
-
-static void Reshape( int width, int height )
-{
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- unsigned i;
- static const GLenum pnames[] = {
- GL_TEXTURE_RED_SIZE,
- GL_TEXTURE_GREEN_SIZE,
- GL_TEXTURE_BLUE_SIZE,
- GL_TEXTURE_ALPHA_SIZE,
- GL_TEXTURE_LUMINANCE_SIZE,
- GL_TEXTURE_INTENSITY_SIZE,
- GL_TEXTURE_BORDER,
- GL_TEXTURE_INTERNAL_FORMAT,
- GL_TEXTURE_WIDTH,
- GL_TEXTURE_HEIGHT,
- GL_TEXTURE_DEPTH,
- ~0
- };
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
-
- printf("\nThis program should log some data about a texture and exit.\n");
- printf("This is a regression test for bug #3050. If the bug still\n");
- printf("exists, a GLX protocol error will be generated.\n");
- printf("https://bugs.freedesktop.org/show_bug.cgi?id=3050\n\n");
-
-
- if ( ! glutExtensionSupported( "GL_NV_texture_rectangle" )
- && ! glutExtensionSupported( "GL_EXT_texture_rectangle" )
- && ! glutExtensionSupported( "GL_ARB_texture_rectangle" ) ) {
- printf( "This test requires one of GL_ARB_texture_rectangle, GL_EXT_texture_rectangle,\n"
- "or GL_NV_texture_rectangle be supported\n." );
- exit( 1 );
- }
-
-
- glBindTexture( GL_TEXTURE_RECTANGLE_NV, 1 );
- glTexImage2D( GL_PROXY_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, 8, 8, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL );
-
- for ( i = 0 ; pnames[i] != ~0 ; i++ ) {
- GLint param_i;
- GLfloat param_f;
- GLenum err;
-
- glGetTexLevelParameteriv( GL_PROXY_TEXTURE_RECTANGLE_NV, 0, pnames[i], & param_i );
- err = glGetError();
-
- if ( err ) {
- printf("glGetTexLevelParameteriv(GL_PROXY_TEXTURE_RECTANGLE_NV, 0, 0x%04x, & param) generated a GL\n"
- "error of 0x%04x!",
- pnames[i], err );
- exit( 1 );
- }
- else {
- printf("glGetTexLevelParameteriv(GL_PROXY_TEXTURE_RECTANGLE_NV, 0, 0x%04x, & param) = 0x%04x\n",
- pnames[i], param_i );
- }
-
-
- glGetTexLevelParameterfv( GL_PROXY_TEXTURE_RECTANGLE_NV, 0, pnames[i], & param_f );
- err = glGetError();
-
- if ( err ) {
- printf("glGetTexLevelParameterfv(GL_PROXY_TEXTURE_RECTANGLE_NV, 0, 0x%04x, & param) generated a GL\n"
- "error of 0x%04x!\n",
- pnames[i], err );
- exit( 1 );
- }
- else {
- printf("glGetTexLevelParameterfv(GL_PROXY_TEXTURE_RECTANGLE_NV, 0, 0x%04x, & param) = %.1f (0x%04x)\n",
- pnames[i], param_f, (GLint) param_f );
- }
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "Bug #3050 Test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- return 0;
-}
diff --git a/progs/tests/bug_3101.c b/progs/tests/bug_3101.c
deleted file mode 100644
index 796377186b..0000000000
--- a/progs/tests/bug_3101.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2005
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file bug_3101.c
- *
- * Simple regression test for bug #3101. Attempt to draw a single square.
- * After emiting the first vertex, call \c glEdgeFlag to change the vertex
- * format. If the bug still exists, this will cause a segfault.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- /* This is the "reference" square.
- */
-
- glTranslatef(-4.5, 0, 0);
- glBlendEquation( GL_FUNC_ADD );
- glBlendFunc( GL_ONE, GL_ZERO );
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glEdgeFlag(GL_TRUE);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- printf("\nThis program should draw a single square, but not crash.\n");
- printf("This is a regression test for bug #3101.\n");
- printf("https://bugs.freedesktop.org/show_bug.cgi?id=3101\n");
- glEnable( GL_BLEND );
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "Bug #3101 Test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/bug_3195.c b/progs/tests/bug_3195.c
deleted file mode 100644
index 10481c2232..0000000000
--- a/progs/tests/bug_3195.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * \file bug_3195.c
- *
- * Simple regression test for bug #3195. A bug in the i180 driver caused
- * a segfault (inside the driver) when the LOD bias is adjusted and no texture
- * is enabled. This test, which is based on progs/demos/lodbias.c, sets up
- * all the texturing, disables all textures, adjusts the LOD bias, then
- * re-enables \c GL_TEXTURE_2D.
- *
- * \author Brian Paul
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLfloat Xrot = 0, Yrot = -30, Zrot = 0;
-static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */
-static GLint BiasMin = -400, BiasMax = 400;
-
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-static void Idle( void )
-{
- static int lastTime = 0;
- int time = glutGet(GLUT_ELAPSED_TIME);
- int step;
-
- if (lastTime == 0)
- lastTime = time;
- else if (time - lastTime < 10)
- return;
-
- step = (time - lastTime) / 10 * BiasStepSign;
- lastTime = time;
-
- Bias += step;
- if (Bias < BiasMin) {
- exit(0);
- }
- else if (Bias > BiasMax) {
- Bias = BiasMax;
- BiasStepSign = -1;
- }
-
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- char str[100];
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(-1, 1, -1, 1, -1, 1);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-
- glDisable(GL_TEXTURE_2D);
- glColor3f(1,1,1);
- glRasterPos3f(-0.9, -0.9, 0.0);
- sprintf(str, "Texture LOD Bias = %4.1f", Bias * 0.01);
- PrintString(str);
-
- 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, -8.0 );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, 0.01 * Bias);
- glEnable(GL_TEXTURE_2D);
-
- glBegin(GL_POLYGON);
- glTexCoord2f(0, 0); glVertex2f(-1, -1);
- glTexCoord2f(2, 0); glVertex2f( 1, -1);
- glTexCoord2f(2, 2); glVertex2f( 1, 1);
- glTexCoord2f(0, 2); glVertex2f(-1, 1);
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- GLfloat maxBias;
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- printf("\nThis program should function nearly identically to Mesa's lodbias demo.\n"
- "It should cycle through the complet LOD bias range once and exit. If bug\n"
- "#3195 still exists, the demo should crash almost immediatly.\n");
- printf("This is a regression test for bug #3195.\n");
- printf("https://bugs.freedesktop.org/show_bug.cgi?id=3195\n");
-
- if (!glutExtensionSupported("GL_EXT_texture_lod_bias")) {
- printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- if (glutExtensionSupported("GL_SGIS_generate_mipmap")) {
- /* test auto mipmap generation */
- GLint width, height, i;
- GLenum format;
- GLubyte *image = LoadRGBImage(TEXTURE_FILE, &width, &height, &format);
- if (!image) {
- printf("Error: could not load texture image %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* resize to 256 x 256 */
- if (width != 256 || height != 256) {
- GLubyte *newImage = malloc(256 * 256 * 4);
- gluScaleImage(format, width, height, GL_UNSIGNED_BYTE, image,
- 256, 256, GL_UNSIGNED_BYTE, newImage);
- free(image);
- image = newImage;
- }
- printf("Using GL_SGIS_generate_mipmap\n");
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
- glTexImage2D(GL_TEXTURE_2D, 0, format, 256, 256, 0,
- format, GL_UNSIGNED_BYTE, image);
- free(image);
-
- /* make sure mipmap was really generated correctly */
- width = height = 256;
- for (i = 0; i < 9; i++) {
- GLint w, h;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_WIDTH, &w);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_HEIGHT, &h);
- printf("Level %d size: %d x %d\n", i, w, h);
- assert(w == width);
- assert(h == height);
- width /= 2;
- height /= 2;
- }
-
- }
- else if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
- printf("Error: could not load texture image %s\n", TEXTURE_FILE);
- exit(1);
- }
-
- /* mipmapping required for this extension */
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &maxBias);
- printf("LOD bias range: [%g, %g]\n", -maxBias, maxBias);
- BiasMin = -100 * maxBias;
- BiasMax = 100 * maxBias;
-
- /* Since we have (about) 8 mipmap levels, no need to bias beyond
- * the range [-1, +8].
- */
- if (BiasMin < -100)
- BiasMin = -100;
- if (BiasMax > 800)
- BiasMax = 800;
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 350, 350 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "Bug #3195 Test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/bug_texstore_i8.c b/progs/tests/bug_texstore_i8.c
deleted file mode 100644
index b070011bd2..0000000000
--- a/progs/tests/bug_texstore_i8.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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.
- */
-/*
- * Based on the trivial/quad-tex-2d program.
- * Modified by Jakob Bornecrantz <jakob@tungstengraphics.com>
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLenum Target = GL_TEXTURE_2D;
-static GLenum Filter = GL_NEAREST;
-GLenum doubleBuffer;
-static float Rot = 0;
-static int win = 0;
-
-static void Init(void)
-{
- int internalFormat;
- int sourceFormat;
-
- 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));
-
- glClearColor(0.0, 0.0, 1.0, 0.0);
-
-#define SIZE 16
- {
- GLubyte tex2d[SIZE][SIZE][4];
- GLint s, t;
-
- for (s = 0; s < SIZE; s++) {
- for (t = 0; t < SIZE; t++) {
- tex2d[t][s][0] = 0xff;
- tex2d[t][s][1] = 0xff;
- tex2d[t][s][2] = 0xff;
- tex2d[t][s][3] = 0xff;
- }
- }
-
- internalFormat = GL_LUMINANCE8;
- sourceFormat = GL_RGBA;
-
- glTexImage2D(Target,
- 0,
- internalFormat,
- SIZE, SIZE,
- 0,
- sourceFormat,
- GL_UNSIGNED_BYTE,
- /* GL_UNSIGNED_INT, */
- tex2d);
-
- glEnable(Target);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- glTexParameterf(Target, GL_TEXTURE_WRAP_R, GL_REPEAT);
- glTexParameterf(Target, GL_TEXTURE_MIN_FILTER, Filter);
- glTexParameterf(Target, GL_TEXTURE_MAG_FILTER, Filter);
- }
-}
-
-static void Reshape(int width, int height)
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
-#if 0
- glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
-#else
- glFrustum(-1, 1, -1, 1, 10, 20);
-#endif
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0, 0, -15);
-}
-
-static void Key(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'r':
- Rot += 10.0;
- break;
- case 'R':
- Rot -= 10.0;
- break;
- case 27:
- glutDestroyWindow(win);
- exit(0);
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-static void Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(Rot, 0, 1, 0);
-
- glBegin(GL_QUADS);
- glTexCoord2f(1,0);
- glVertex3f( 0.9, -0.9, 0.0);
- glTexCoord2f(1,1);
- glVertex3f( 0.9, 0.9, 0.0);
- glTexCoord2f(0,1);
- glVertex3f(-0.9, 0.9, 0.0);
- glTexCoord2f(0,0);
- glVertex3f(-0.9, -0.9, 0.0);
- glEnd();
-
- glPopMatrix();
-
- 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;
- type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
- glutInitDisplayMode(type);
-
- win = glutCreateWindow("Tex test");
- glewInit();
- if (!win) {
- exit(1);
- }
-
- Init();
-
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/bumpmap.c b/progs/tests/bumpmap.c
deleted file mode 100644
index 1b7ec2c135..0000000000
--- a/progs/tests/bumpmap.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * 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
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * Simple test for testing ATI_envmap_bumpmap support.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-static PFNGLGETTEXBUMPPARAMETERFVATIPROC glGetTexBumpParameterfvATI_func = NULL;
-static PFNGLGETTEXBUMPPARAMETERIVATIPROC glGetTexBumpParameterivATI_func = NULL;
-static PFNGLTEXBUMPPARAMETERFVATIPROC glTexBumpParameterfvATI_func = NULL;
-
-static const char *TexFile = "../images/arch.rgb";
-
-static const GLfloat Near = 5.0, Far = 25.0;
-
-static void Display( void )
-{
- /* together with the construction of dudv map, do fixed translation
- in y direction (up), some cosine deformation in x and more
- deformation in y dir */
- GLfloat bumpMatrix[4] = {0.1, 0.0, 0.2, 0.1};
-
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- /* this is the base map */
- glActiveTexture( GL_TEXTURE0 );
- glEnable( GL_TEXTURE_2D );
- glBindTexture( GL_TEXTURE_2D, 1 );
- glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
- glTexEnvf( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE );
- glTexEnvf( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE );
-
- /* bump map */
- glActiveTexture( GL_TEXTURE1 );
- glEnable( GL_TEXTURE_2D );
- glBindTexture( GL_TEXTURE_2D, 2 );
- glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
- glTexEnvf( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_BUMP_ENVMAP_ATI );
- glTexEnvf( GL_TEXTURE_ENV, GL_BUMP_TARGET_ATI, GL_TEXTURE0);
-
- glTexBumpParameterfvATI_func(GL_BUMP_ROT_MATRIX_ATI, bumpMatrix);
-
- glCallList(1);
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -6.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char * const)
- glGetString( GL_VERSION );
- GLfloat temp[16][16][2];
- GLubyte *image = NULL;
- GLint imgWidth, imgHeight;
- GLenum imgFormat;
- GLint i,j;
- GLint param, paramArray[16];
- GLfloat paramMat[4];
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( !glutExtensionSupported("GL_ATI_envmap_bumpmap")) {
- printf("\nSorry, this program requires GL_ATI_envmap_bumpmap\n");
- exit(1);
- }
-
- glGetTexBumpParameterfvATI_func = glutGetProcAddress("glGetTexBumpParameterfvATI");
- glGetTexBumpParameterivATI_func = glutGetProcAddress("glGetTexBumpParameterivATI");
- glTexBumpParameterfvATI_func = glutGetProcAddress("glTexBumpParameterfvATI");
-
- glGetTexBumpParameterivATI_func(GL_BUMP_ROT_MATRIX_SIZE_ATI, &param);
- printf("BUMP_ROT_MATRIX_SIZE_ATI = %d\n", param);
- glGetTexBumpParameterivATI_func(GL_BUMP_NUM_TEX_UNITS_ATI, &param);
- printf("BUMP_NUM_TEX_UNITS_ATI = %d\n", param);
- glGetTexBumpParameterfvATI_func(GL_BUMP_ROT_MATRIX_ATI, paramMat);
- printf("initial rot matrix %f %f %f %f\n", paramMat[0], paramMat[1], paramMat[2], paramMat[3]);
- glGetTexBumpParameterivATI_func(GL_BUMP_TEX_UNITS_ATI, paramArray);
- printf("units supporting bump mapping: ");
- for (i = 0; i < param; i++)
- printf("%d ", paramArray[i] - GL_TEXTURE0);
- printf("\n");
-
- image = LoadRGBImage(TexFile, &imgWidth, &imgHeight, &imgFormat);
- if (!image) {
- printf("Couldn't read %s\n", TexFile);
- exit(0);
- }
-
- glBindTexture( GL_TEXTURE_2D, 1 );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
- glTexImage2D( GL_TEXTURE_2D, 0, imgFormat, imgWidth, imgHeight, 0,
- imgFormat, GL_UNSIGNED_BYTE, image );
-
- for (j = 0; j < 16; j++) {
- for (i = 0; i < 16; i++) {
- temp[j][i][0] = cos((float)(i) * 3.1415 / 16.0);
- temp[j][i][1] = -0.5;
- }
- }
- glBindTexture( GL_TEXTURE_2D, 2 );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
- glTexImage2D( GL_TEXTURE_2D, 0, GL_DU8DV8_ATI, 16, 16, 0,
- GL_DUDV_ATI, GL_FLOAT, temp );
-
-
- glNewList( 1, GL_COMPILE );
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.0, 0.0 );
- glMultiTexCoord2f( GL_TEXTURE0, 0.0, 0.0 );
- glMultiTexCoord2f( GL_TEXTURE1, 0.0, 0.0 );
- glVertex2f(-1, -1);
- glMultiTexCoord2f( GL_TEXTURE0, 1.0, 0.0 );
- glMultiTexCoord2f( GL_TEXTURE1, 1.0, 0.0 );
- glVertex2f( 1, -1);
- glMultiTexCoord2f( GL_TEXTURE0, 1.0, 1.0 );
- glMultiTexCoord2f( GL_TEXTURE1, 1.0, 1.0 );
- glVertex2f( 1, 1);
- glMultiTexCoord2f( GL_TEXTURE0, 0.0, 1.0 );
- glMultiTexCoord2f( GL_TEXTURE1, 0.0, 1.0 );
- glVertex2f(-1, 1);
- glEnd();
- glEndList();
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "GL_ATI_envmap_bumpmap test" );
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/calibrate_rast.c b/progs/tests/calibrate_rast.c
deleted file mode 100644
index 5d89ff79c5..0000000000
--- a/progs/tests/calibrate_rast.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * Automatic primitive rasterization precision test.
- *
- * Draw prims at various sub-pixel offsets and examine where the quad is
- * actually drawn.
- * Check if the range of offsets which paint the right pixels falls within
- * OpenGL's specification.
- * In case of failures, report the coordinate bias needed to fix the problem.
- *
- * Note that even Mesa/swrast fails some line tests. This is because some
- * window coordinates wind up as 53.9999 instead of 54, for example. Enabling
- * the small translation factor below fixes that. Revisit someday...
- *
- * Brian Paul
- * 28 Feb 2008
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static int Width = 100, Height = 100;
-static int Win;
-static float Step = 0.125;
-#if 0
-/* This tiny offset fixes errors in Mesa/Xlib */
-static float Xtrans = 0.5 * 0.125;
-static float Ytrans = 0.5 * 0.125;
-#else
-static float Xtrans = 0.0;
-static float Ytrans = 0.0;
-#endif
-
-
-static void
-PointCalibrate(int xpos, int ypos)
-{
- GLfloat rgba[4];
- float x, y;
- float xmin, ymin, xmax, ymax;
-
- xmin = ymin = 1000.0;
- xmax = ymax = -1000.0;
-
- for (y = -1.0; y <= 1.0; y += Step) {
- for (x = -1.0; x <= 1.0; x += Step) {
- glClear(GL_COLOR_BUFFER_BIT);
- glBegin(GL_POINTS);
- glVertex2f(xpos + x, ypos + y);
- glEnd();
- glReadPixels(xpos, ypos, 1, 1, GL_RGBA, GL_FLOAT, rgba);
- if (rgba[0] == 1.0 && rgba[1] == 1.0 && rgba[2] == 1.0) {
- /* hit */
- if (x < xmin)
- xmin = x;
- if (y < ymin)
- ymin = y;
- if (x > xmax)
- xmax = x;
- if (y > ymax)
- ymax = y;
- }
- }
- }
-
- printf("Point at (%2d, %2d) drawn for x in [%6.3f, %6.3f] and y in [%6.3f, %6.3f]\n",
- xpos, ypos,
- xpos + xmin, xpos + xmax,
- ypos + ymin, ypos + ymax);
-
- if (xmax - xmin != 1.0 - Step) {
- printf(" => Inconsistant X-axis rasterization!\n");
- }
- if (ymax - ymin != 1.0 - Step) {
- printf(" => Inconsistant Y-axis rasterization!\n");
- }
- if (xmin < 0.0) {
- printf(" => Points should be X biased by about %f\n", xmin);
- }
- if (ymin < 0.0) {
- printf(" => Points should be Y biased by about %f\n", ymin);
- }
- if (xmax > 1.0) {
- printf(" => Points should be X biased by about %f\n", 1.0 - xmax);
- }
- if (ymax > 1.0) {
- printf(" => Points should be Y biased by about %f\n", 1.0 - ymax);
- }
-
-}
-
-
-/**
- * XXX Implement VLineCalibrate() someday
- */
-static void
-HLineCalibrate(int xpos, int ypos, int len)
-{
- GLfloat rgba[2][4];
- float x, y;
- float ymin, ymax;
- float xmin_left, xmax_left, xmin_right, xmax_right;
-
- xmin_left = xmin_right = 1000.0;
- xmax_left = xmax_right = -1000.0;
- ymin = 1000;
- ymax = -1000.0;
-
- /*
- * First, check vertical positioning of the horizontal line
- */
- for (y = -1.0; y <= 1.0; y += Step) {
- glClear(GL_COLOR_BUFFER_BIT);
- glBegin(GL_LINES);
- glVertex2f(xpos, ypos + y);
- glVertex2f(xpos + len, ypos + y);
- glEnd();
-
- glReadPixels(xpos + len / 2, ypos, 1, 1, GL_RGBA, GL_FLOAT, rgba);
- if (rgba[0][0] == 1.0) {
- /* hit */
- if (y < ymin)
- ymin = y;
- if (y > ymax)
- ymax = y;
- }
- }
-
- printf("H-line at Y=%2d drawn for y in [%6.3f, %6.3f]\n",
- ypos,
- ypos + ymin, ypos + ymax);
-
- if (ymax - ymin != 1.0 - Step) {
- printf(" => Inconsistant Y-axis rasterization!\n");
- }
-
- if (ymin > 0.5 ) {
- printf(" => Lines should be Y biased by about %f\n", ymin - 0.5);
- }
-
- if (ymax < 0.5 ) {
- printf(" => Lines should be Y biased by about %f\n", 0.5 - ymax);
- }
-
- /*
- * Second, check endpoints (for Y at 1/2 pixel)
- */
- for (x = -1.0; x <= 1.0; x += Step) {
- glClear(GL_COLOR_BUFFER_BIT);
- glBegin(GL_LINES);
- glVertex2f(xpos + x, ypos + 0.5f);
- glVertex2f(xpos + x + len, ypos + 0.5f);
- glEnd();
-
- /* left end */
- glReadPixels(xpos - 1, ypos, 2, 1, GL_RGBA, GL_FLOAT, rgba);
- if (rgba[0][0] == 0.0 && rgba[1][0] == 1.0) {
- /* hit */
- if (x < xmin_left)
- xmin_left = x;
- if (x > xmax_left)
- xmax_left = x;
- }
-
- /* right end */
- glReadPixels(xpos + len - 1, ypos, 2, 1, GL_RGBA, GL_FLOAT, rgba);
- if (rgba[0][0] == 1.0 && rgba[1][0] == 0.0) {
- /* hit */
- if (x < xmin_right)
- xmin_right = x;
- if (x > xmax_right)
- xmax_right = x;
- }
- }
-
- printf("H-line [%d..%d) hit left end for x in [%6.3f, %6.3f] "
- "hit right end for x in [%6.3f, %6.3f]\n",
- xpos, xpos + len,
- xpos + xmin_left, xpos + xmax_left,
- xpos + len + xmin_right, xpos + len + xmax_right);
-
- if (xmax_left - xmin_left > 1.0 - Step) {
- printf(" => Inconsistant left-end rasterization!\n");
- }
- if (xmax_right - xmin_right > 1.0 - Step) {
- printf(" => Inconsistant right-end rasterization!\n");
- }
-
- if (xmin_left != xmin_right ||
- xmax_left != xmax_right) {
- printf(" => Inconsistant length!\n");
- }
-
- if (xmin_left < 0.0) {
- printf(" => Coords should be X biased by about %f\n", xmin_left );
- }
- if (xmin_right < 0.0) {
- printf(" => Coords should be X biased by about %f\n", xmin_right );
- }
- if (xmax_left >= 1.0) {
- printf(" => Coords should be X biased by about %f\n", -xmax_right + 1.0);
- }
- if (xmax_right >= 1.0) {
- printf(" => Coords should be X biased by about %f\n", -xmax_right + 1.0);
- }
-
-}
-
-
-static void
-QuadCalibrate(int xpos, int ypos, int width, int height)
-{
- GLfloat rgba1[2][4];
- GLfloat rgba2[2][4];
- float x, y;
- float xmin, ymin, xmax, ymax;
-
- xmin = ymin = 1000.0;
- xmax = ymax = -1000.0;
-
- for (y = -1.0; y <= 1.0; y += Step) {
- for (x = -1.0; x <= 1.0; x += Step) {
- glClear(GL_COLOR_BUFFER_BIT);
- glBegin(GL_QUADS);
- glVertex2f(xpos + x, ypos + y);
- glVertex2f(xpos + x + width, ypos + y);
- glVertex2f(xpos + x + width, ypos + y + height);
- glVertex2f(xpos + x, ypos + y + height);
- glEnd();
-
- /* horizontal measurement */
- glReadPixels(xpos - 1, ypos + 2, 2, 1, GL_RGBA, GL_FLOAT, rgba1);
- glReadPixels(xpos + width - 1, ypos + 2, 2, 1, GL_RGBA, GL_FLOAT, rgba2);
- if (rgba1[0][0] == 0.0 && rgba1[1][0] == 1.0 &&
- rgba2[0][0] == 1.0 && rgba2[1][0] == 0.0) {
- if (x < xmin)
- xmin = x;
- if (x > xmax)
- xmax = x;
- }
-
- /* vertical measurement */
- glReadPixels(xpos + 2, ypos - 1, 1, 2, GL_RGBA, GL_FLOAT, rgba1);
- glReadPixels(xpos + 2, ypos + height - 1, 1, 2, GL_RGBA, GL_FLOAT, rgba2);
- if (rgba1[0][0] == 0.0 && rgba1[1][0] == 1.0 &&
- rgba2[0][0] == 1.0 && rgba2[1][0] == 0.0) {
- if (y < ymin)
- ymin = y;
- if (y > ymax)
- ymax = y;
- }
- }
- }
-
- printf("Quad at (%2d, %2d)..(%2d, %2d) drawn"
- " for x in [%6.3f, %6.3f] and y in [%6.3f, %6.3f]\n",
- xpos, ypos,
- xpos + width, ypos + height,
- xpos + xmin, xpos + xmax,
- ypos + ymin, ypos + ymax);
-
- if (xmax - xmin != 1.0 - Step) {
- printf(" => Inconsistant X-axis rasterization/size!\n");
- }
- if (ymax - ymin != 1.0 - Step) {
- printf(" => Inconsistant Y-axis rasterization/size!\n");
- }
-
- if (xmin < -0.5) {
- printf(" => Coords should be X biased by about %f\n", 0.5 + xmin );
- }
- if (ymin < -0.5) {
- printf(" => Coords should be Y biased by about %f\n", 0.5 + ymin);
- }
- if (xmax > 0.5) {
- printf(" => Coords should be X biased by about %f\n", -xmax + 0.5);
- }
- if (ymax > 0.5) {
- printf(" => Coords should be Y biased by about %f\n", -ymax + 0.5);
- }
-}
-
-
-/**
- * Misc/disabled code for debugging.
- */
-static void
-DebugTest(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE);
-
- glColor3f(.5, .5, .5);
-
- glBegin(GL_LINES);
- glVertex2f(30, 35.5);
- glVertex2f(54, 35.5);
- glVertex2f(54, 35.5);
- glVertex2f(66, 35.5);
- glEnd();
-
- glDisable(GL_BLEND);
- glColor3f(1,1,1);
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glPushMatrix();
- glTranslatef(Xtrans, Ytrans, 0);
-
- PointCalibrate(1, 1);
- PointCalibrate(50, 50);
- PointCalibrate(28, 17);
- PointCalibrate(17, 18);
- printf("\n");
-
- HLineCalibrate(5, 10, 10);
- HLineCalibrate(25, 22, 12);
- HLineCalibrate(54, 33, 12);
- HLineCalibrate(54+12, 33, 12);
- printf("\n");
-
- QuadCalibrate(2, 2, 10, 10);
- QuadCalibrate(50, 50, 10, 10);
- QuadCalibrate(28, 17, 12, 12);
- QuadCalibrate(17, 28, 12, 12);
-
- (void) DebugTest;
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- Width = width;
- Height = height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- printf("Measurement/callibration for basic prim rasterization...\n");
- printf("GL_RENDERER: %s\n", (char*) glGetString(GL_RENDERER));
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/condrender.c b/progs/tests/condrender.c
deleted file mode 100644
index 1db8a7c15a..0000000000
--- a/progs/tests/condrender.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Test GL_NV_conditional_render
- *
- * Brian Paul
- * 30 Dec 2009
- *
- * 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
- * THE AUTHORS 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 <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#define TEST_DISPLAY_LISTS 0
-
-static GLboolean Anim = GL_TRUE;
-static GLfloat Xpos = 0;
-static GLuint OccQuery;
-static GLint Win = 0;
-
-
-static void Idle(void)
-{
- static int lastTime = 0;
- static int sign = +1;
- int time = glutGet(GLUT_ELAPSED_TIME);
- float step;
-
- if (lastTime == 0)
- lastTime = time;
- else if (time - lastTime < 20) /* 50Hz update */
- return;
-
- step = (time - lastTime) / 1000.0 * sign;
- lastTime = time;
-
- Xpos += step;
-
- if (Xpos > 2.5) {
- Xpos = 2.5;
- sign = -1;
- }
- else if (Xpos < -2.5) {
- Xpos = -2.5;
- sign = +1;
- }
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_DEPTH_TEST);
-
- 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 );
-
- /* draw the occluding polygons */
- glColor3f(0, 0.6, 0.8);
- glBegin(GL_QUADS);
- glVertex2f(-1.6, -1.5);
- glVertex2f(-0.4, -1.5);
- glVertex2f(-0.4, 1.5);
- glVertex2f(-1.6, 1.5);
-
- glVertex2f( 0.4, -1.5);
- glVertex2f( 1.6, -1.5);
- glVertex2f( 1.6, 1.5);
- glVertex2f( 0.4, 1.5);
- glEnd();
-
- /* draw the test polygon with occlusion testing */
- glPushMatrix();
- glTranslatef(Xpos, 0, -0.5);
- glScalef(0.3, 0.3, 1.0);
- glRotatef(-90.0 * Xpos, 0, 0, 1);
-
-#if TEST_DISPLAY_LISTS
- glNewList(10, GL_COMPILE);
- glBeginQueryARB(GL_SAMPLES_PASSED_ARB, OccQuery);
- glEndList();
- glCallList(10);
-#else
- glBeginQueryARB(GL_SAMPLES_PASSED_ARB, OccQuery);
-#endif
-
- glColorMask(0, 0, 0, 0);
- glDepthMask(GL_FALSE);
-
- glBegin(GL_POLYGON);
- glVertex3f(-1, -1, 0);
- glVertex3f( 1, -1, 0);
- glVertex3f( 1, 1, 0);
- glVertex3f(-1, 1, 0);
- glEnd();
-
-#if TEST_DISPLAY_LISTS
- glNewList(11, GL_COMPILE);
- glEndQueryARB(GL_SAMPLES_PASSED_ARB);
- glEndList();
- glCallList(11);
-#else
- glEndQueryARB(GL_SAMPLES_PASSED_ARB);
-#endif
-
- glColorMask(1, 1, 1, 1);
- glDepthMask(GL_TRUE);
-
- /* Note: disable depth test here so that we'll always see the orange
- * box, except when it's totally culled.
- */
- glDisable(GL_DEPTH_TEST);
-
- glBeginConditionalRenderNV(OccQuery, GL_QUERY_WAIT_NV);
- /* draw the orange rect, so we can see what's going on */
- glColor3f(0.8, 0.5, 0);
- glBegin(GL_POLYGON);
- glVertex3f(-1, -1, 0);
- glVertex3f( 1, -1, 0);
- glVertex3f( 1, 1, 0);
- glVertex3f(-1, 1, 0);
- glEnd();
- glEndConditionalRenderNV();
-
- /* always draw white outline around orange box */
- glColor3f(1.0, 1.0, 1.0);
- glBegin(GL_LINE_LOOP);
- glVertex3f(-1, -1, 0);
- glVertex3f( 1, -1, 0);
- glVertex3f( 1, 1, 0);
- glVertex3f(-1, 1, 0);
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- glDeleteQueriesARB(1, &OccQuery);
- glutDestroyWindow(Win);
- exit(0);
- break;
- case ' ':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 0.1;
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_LEFT:
- Xpos -= step;
- break;
- case GLUT_KEY_RIGHT:
- Xpos += step;
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- if (!glutExtensionSupported("GL_ARB_occlusion_query") ||
- !glutExtensionSupported("GL_NV_conditional_render")) {
- printf("Sorry, this demo requires the extensions:\n");
- printf(" GL_ARB_occlusion_query\n");
- printf(" GL_NV_conditional_render\n");
- exit(-1);
- }
-
- glGenQueriesARB(1, &OccQuery);
- assert(OccQuery > 0);
-}
-
-
-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 );
- glutIdleFunc( Idle );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/copypixrate.c b/progs/tests/copypixrate.c
deleted file mode 100644
index e7d8343721..0000000000
--- a/progs/tests/copypixrate.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Measure glCopyPixels speed
- *
- * Brian Paul
- * 26 Jan 2006
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLint WinWidth = 1000, WinHeight = 800;
-static GLint ImgWidth, ImgHeight;
-
-static GLenum Buffer = GL_FRONT;
-static GLenum AlphaTest = GL_FALSE;
-static GLboolean UseBlit = GL_FALSE;
-
-static PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT_func = NULL;
-
-
-/**
- * draw teapot in lower-left corner of window
- */
-static void
-DrawTestImage(void)
-{
- GLfloat ar;
-
- ImgWidth = WinWidth / 3;
- ImgHeight = WinHeight / 3;
-
- glViewport(0, 0, ImgWidth, ImgHeight);
- glScissor(0, 0, ImgWidth, ImgHeight);
- glEnable(GL_SCISSOR_TEST);
-
- glClearColor(0.5, 0.5, 0.5, 0.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- ar = (float) WinWidth / WinHeight;
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 25.0);
- glMatrixMode(GL_MODELVIEW);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
- glFrontFace(GL_CW);
- glPushMatrix();
- glRotatef(45, 1, 0, 0);
- glutSolidTeapot(2.0);
- glPopMatrix();
- glFrontFace(GL_CCW);
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_LIGHTING);
-
- glDisable(GL_SCISSOR_TEST);
-
- glViewport(0, 0, WinWidth, WinHeight);
- glFinish();
-}
-
-
-static int
-Rand(int max)
-{
- return ((int) rand()) % max;
-}
-
-
-static void
-BlitOne(void)
-{
- int x, y;
-
- do {
- x = Rand(WinWidth);
- y = Rand(WinHeight);
- } while (x <= ImgWidth && y <= ImgHeight);
-
-#ifdef GL_EXT_framebuffer_blit
- if (UseBlit)
- {
- glBlitFramebufferEXT_func(0, 0, ImgWidth, ImgHeight,
- x, y, x + ImgWidth, y + ImgHeight,
- GL_COLOR_BUFFER_BIT, GL_LINEAR);
- }
- else
-#endif
- {
- glWindowPos2iARB(x, y);
- glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR);
- }
-}
-
-
-/**
- * Measure glCopyPixels rate
- */
-static void
-RunTest(void)
-{
- double t1, t0 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
- int iters = 0;
- float copyRate, mbRate;
- int r, g, b, a, bpp;
-
- if (AlphaTest) {
- glEnable(GL_ALPHA_TEST);
- glAlphaFunc(GL_GREATER, 0.0);
- }
-
- glGetIntegerv(GL_RED_BITS, &r);
- glGetIntegerv(GL_GREEN_BITS, &g);
- glGetIntegerv(GL_BLUE_BITS, &b);
- glGetIntegerv(GL_ALPHA_BITS, &a);
- bpp = (r + g + b + a) / 8;
-
- do {
- BlitOne();
-
- if (Buffer == GL_FRONT)
- glFinish(); /* XXX to view progress */
-
- iters++;
-
- t1 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
- } while (t1 - t0 < 5.0);
-
- glDisable(GL_ALPHA_TEST);
-
- copyRate = iters / (t1 - t0);
- mbRate = ImgWidth * ImgHeight * bpp * copyRate / (1024 * 1024);
-
- printf("Image size: %d x %d, %d Bpp\n", ImgWidth, ImgHeight, bpp);
- printf("%d copies in %.2f = %.2f copies/sec, %.2f MB/s\n",
- iters, t1-t0, copyRate, mbRate);
-}
-
-
-static void
-Draw(void)
-{
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClearColor(0.2, 0.2, 0.8, 0);
- glReadBuffer(Buffer);
- glDrawBuffer(Buffer);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- DrawTestImage();
-
- RunTest();
-
- if (Buffer == GL_FRONT)
- glFinish();
- else
- glutSwapBuffers();
-
-#if 1
- printf("exiting\n");
- exit(0);
-#endif
-}
-
-
-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 'b':
- BlitOne();
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-ParseArgs(int argc, char *argv[])
-{
- int i;
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-back") == 0)
- Buffer = GL_BACK;
- else if (strcmp(argv[i], "-alpha") == 0)
- AlphaTest = GL_TRUE;
- else if (strcmp(argv[i], "-blit") == 0)
- UseBlit = GL_TRUE;
- }
-}
-
-
-static void
-Init(void)
-{
- if (glutExtensionSupported("GL_EXT_framebuffer_blit")) {
- glBlitFramebufferEXT_func = (PFNGLBLITFRAMEBUFFEREXTPROC)
- glutGetProcAddress("glBlitFramebufferEXT");
- }
- else if (UseBlit) {
- printf("Warning: GL_EXT_framebuffer_blit not supported.\n");
- UseBlit = GL_FALSE;
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- GLint mode = GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE | GLUT_DEPTH;
- glutInit(&argc, argv);
-
- ParseArgs(argc, argv);
- if (AlphaTest)
- mode |= GLUT_ALPHA;
-
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(mode);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
-
- printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
- printf("Draw Buffer: %s\n", (Buffer == GL_BACK) ? "Back" : "Front");
- Init();
-
- printf("Mode: %s\n", (UseBlit ? "glBlitFramebuffer" : "glCopyPixels"));
- printf("Alpha Test: %s\n", (AlphaTest ? "yes" : "no"));
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/crossbar.c b/progs/tests/crossbar.c
deleted file mode 100644
index ac9a8eae3b..0000000000
--- a/progs/tests/crossbar.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2005
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file crossbar.c
- *
- * Simple test of GL_ARB_texture_env_crossbar functionality. Several squares
- * are drawn with different texture combine modes, but all should be rendered
- * with the same final color.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static const GLint tests[][8] = {
- { 1, GL_REPLACE, GL_PRIMARY_COLOR, GL_PRIMARY_COLOR,
- 2, GL_REPLACE, GL_TEXTURE, GL_PRIMARY_COLOR },
- { 3, GL_REPLACE, GL_PRIMARY_COLOR, GL_PRIMARY_COLOR,
- 2, GL_SUBTRACT, GL_TEXTURE0, GL_TEXTURE1 },
- { 2, GL_REPLACE, GL_PRIMARY_COLOR, GL_PRIMARY_COLOR,
- 2, GL_REPLACE, GL_TEXTURE0, GL_TEXTURE0 },
- { 2, GL_REPLACE, GL_PRIMARY_COLOR, GL_PRIMARY_COLOR,
- 1, GL_SUBTRACT, GL_TEXTURE0, GL_TEXTURE1 },
- { 3, GL_ADD, GL_TEXTURE1, GL_TEXTURE1,
- 2, GL_MODULATE, GL_TEXTURE1, GL_PREVIOUS },
- { 3, GL_ADD, GL_TEXTURE1, GL_TEXTURE1,
- 4, GL_MODULATE, GL_TEXTURE0, GL_PREVIOUS },
-};
-
-#define NUM_TESTS (sizeof(tests) / sizeof(tests[0]))
-
-static int Width = 100 * (NUM_TESTS + 1);
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- unsigned i;
-
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- /* This is the "reference" square.
- */
-
- glActiveTexture( GL_TEXTURE0 );
- glDisable( GL_TEXTURE_2D );
- glActiveTexture( GL_TEXTURE1 );
- glDisable( GL_TEXTURE_2D );
-
- glTranslatef(-(NUM_TESTS * 1.5), 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- for ( i = 0 ; i < NUM_TESTS ; i++ ) {
- glActiveTexture( GL_TEXTURE0 );
- glEnable( GL_TEXTURE_2D );
- glBindTexture( GL_TEXTURE_2D, tests[i][0] );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
- glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, tests[i][1] );
- glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, tests[i][2] );
- glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, tests[i][3] );
-
- glActiveTexture( GL_TEXTURE1 );
- glEnable( GL_TEXTURE_2D );
- glBindTexture( GL_TEXTURE_2D, tests[i][4] );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
- glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, tests[i][5] );
- glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, tests[i][6] );
- glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, tests[i][7] );
-
- glCallList(1);
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- float ver = strtod( ver_string, NULL );
- GLint tex_units;
- GLint temp[ 256 ];
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( (!glutExtensionSupported("GL_ARB_multitexture")
- && (ver < 1.3))
- || (!glutExtensionSupported("GL_ARB_texture_env_combine")
- && !glutExtensionSupported("GL_EXT_texture_env_combine")
- && (ver < 1.3))
- || (!glutExtensionSupported("GL_ARB_texture_env_crossbar")
- && !glutExtensionSupported("GL_NV_texture_env_combine4")
- && (ver < 1.4)) ) {
- printf("\nSorry, this program requires GL_ARB_multitexture and either\n"
- "GL_ARB_texture_env_combine or GL_EXT_texture_env_combine (or OpenGL 1.3).\n"
- "Either GL_ARB_texture_env_crossbar or GL_NV_texture_env_combine4 (or\n"
- "OpenGL 1.4) are also required.\n");
- exit(1);
- }
-
- glGetIntegerv( GL_MAX_TEXTURE_UNITS, & tex_units );
- if ( tex_units < 2 ) {
- printf("\nSorry, this program requires at least 2 texture units.\n");
- exit(1);
- }
-
- printf("\nAll %lu squares should be the same color.\n", (unsigned long) NUM_TESTS + 1);
-
- (void) memset( temp, 0x00, sizeof( temp ) );
- glBindTexture( GL_TEXTURE_2D, 1 );
- 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, 8, 8, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, temp );
-
- (void) memset( temp, 0x7f, sizeof( temp ) );
- glBindTexture( GL_TEXTURE_2D, 2 );
- 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, 8, 8, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, temp );
-
- (void) memset( temp, 0xff, sizeof( temp ) );
- glBindTexture( GL_TEXTURE_2D, 3 );
- 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, 8, 8, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, temp );
-
- (void) memset( temp, 0x3f, sizeof( temp ) );
- glBindTexture( GL_TEXTURE_2D, 4 );
- 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, 8, 8, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, temp );
-
-
- glNewList( 1, GL_COMPILE );
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.0, 0.0 );
- glMultiTexCoord2f( GL_TEXTURE0, 0.5, 0.5 );
- glMultiTexCoord2f( GL_TEXTURE1, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
- glEndList();
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "GL_ARB_texture_env_crossbar test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/cva.c b/progs/tests/cva.c
deleted file mode 100644
index b3e041c21e..0000000000
--- a/progs/tests/cva.c
+++ /dev/null
@@ -1,160 +0,0 @@
-
-/*
- * Trivial CVA test, good for testing driver fastpaths (especially
- * indexed vertex buffers if they are supported).
- *
- * Gareth Hughes
- * November 2000
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stddef.h> /* for ptrdiff_t, referenced by GL.h when GL_GLEXT_LEGACY defined */
-#ifdef _WIN32
-#include <windows.h>
-#endif
-#define GL_GLEXT_LEGACY
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-GLfloat verts[][4] = {
- { -0.5, -0.5, -2.0, 0.0 },
- { 0.5, -0.5, -2.0, 0.0 },
- { -0.5, 0.5, -2.0, 0.0 },
- { 0.5, 0.5, -2.0, 0.0 },
-};
-
-GLubyte color[][4] = {
- { 0xff, 0x00, 0x00, 0x00 },
- { 0x00, 0xff, 0x00, 0x00 },
- { 0x00, 0x00, 0xff, 0x00 },
- { 0xff, 0xff, 0xff, 0x00 },
-};
-
-GLuint indices[] = { 0, 1, 2, 3 };
-
-GLboolean compiled = GL_TRUE;
-GLboolean doubleBuffer = GL_TRUE;
-
-
-static void init( void )
-{
- glClearColor( 0.0, 0.0, 0.0, 0.0 );
- glShadeModel( GL_SMOOTH );
-
- glFrontFace( GL_CCW );
- glCullFace( GL_BACK );
- glEnable( GL_CULL_FACE );
-
- glEnable( GL_DEPTH_TEST );
-
- glEnableClientState( GL_VERTEX_ARRAY );
- glEnableClientState( GL_COLOR_ARRAY );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -1.0, 1.0, -1.0, 1.0, 2.0, 10.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-
- glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), verts );
- glColorPointer( 4, GL_UNSIGNED_BYTE, 0, color );
-
-#ifdef GL_EXT_compiled_vertex_array
- if ( compiled ) {
- glLockArraysEXT( 0, 4 );
- }
-#endif
-}
-
-static void display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glDrawElements( GL_TRIANGLES, 3, GL_UNSIGNED_INT, indices );
-
- glFlush();
- if ( doubleBuffer ) {
- glutSwapBuffers();
- }
-}
-
-static void keyboard( unsigned char key, int x, int y )
-{
- switch ( key ) {
- case 27:
- exit( 0 );
- break;
- }
-
- glutPostRedisplay();
-}
-
-static GLboolean args( int argc, char **argv )
-{
- GLint i;
-
- doubleBuffer = GL_TRUE;
-
- 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;
- char *string;
- double version;
-
- glutInit( &argc, argv );
-
- if ( args( argc, argv ) == GL_FALSE ) {
- exit( 1 );
- }
-
- type = GLUT_RGB | GLUT_DEPTH;
- type |= ( doubleBuffer ) ? GLUT_DOUBLE : GLUT_SINGLE;
-
- glutInitDisplayMode( type );
- glutInitWindowSize( 250, 250 );
- glutInitWindowPosition( 100, 100 );
- glutCreateWindow( "CVA Test" );
- glewInit();
-
- /* Make sure the server supports GL 1.2 vertex arrays.
- */
- string = (char *) glGetString( GL_VERSION );
-
- version = atof(string);
- if ( version < 1.2 ) {
- fprintf( stderr, "This program requires OpenGL 1.2 vertex arrays.\n" );
- exit( -1 );
- }
-
- /* See if the server supports compiled vertex arrays.
- */
- string = (char *) glGetString( GL_EXTENSIONS );
-
- if ( !strstr( string, "GL_EXT_compiled_vertex_array" ) ) {
- fprintf( stderr, "Compiled vertex arrays not supported by this renderer.\n" );
- compiled = GL_FALSE;
- }
-
- init();
-
- glutDisplayFunc( display );
- glutKeyboardFunc( keyboard );
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/tests/cva_huge.c b/progs/tests/cva_huge.c
deleted file mode 100644
index 88ec2af2a8..0000000000
--- a/progs/tests/cva_huge.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright © 2010 Pauli Nieminen
- *
- * 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 (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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-/*
- * Test case for huge cva arrays. Mesa code has to split this to multiple VBOs
- * which had memory access error.
- * This test case doesn't render incorrectly but valgrind showed the memory
- * access error.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stddef.h> /* for ptrdiff_t, referenced by GL.h when GL_GLEXT_LEGACY defined */
-#ifdef _WIN32
-#include <windows.h>
-#endif
-#define GL_GLEXT_LEGACY
-#include <GL/glut.h>
-
-GLfloat *verts;
-
-GLubyte *color;
-
-GLuint *indices;
-
-#define rows 1000 /* Create 1000x1000 vertex grid */
-#define row_width 5000.0
-#define grid_depth -50.0
-GLuint nr_verts_in_row = rows;
-GLuint nr_indices_in_strip = rows * 2;
-
-GLboolean double_buffer;
-GLboolean compiled = GL_TRUE;
-
-static void generate_verts( void )
-{
- unsigned x, y;
- GLfloat step = row_width /(GLfloat)(nr_verts_in_row - 1);
- verts = malloc(sizeof(verts[0]) * 4 * nr_verts_in_row * nr_verts_in_row);
-
- for (y = 0; y < nr_verts_in_row; ++y) {
- for (x = 0; x < nr_verts_in_row; ++x) {
- unsigned idx = 4*(x + y * nr_verts_in_row);
- verts[idx + 0] = step * x - row_width/2.0;
- verts[idx + 1] = step * y - row_width/2.0;
- /* deep enough not to be vissible */
- verts[idx + 2] = grid_depth;
- verts[idx + 3] = 0.0;
- }
- }
- glVertexPointer( 3, GL_FLOAT, sizeof(verts[0])*4, verts );
-}
-
-static void generate_colors( void )
-{
- unsigned x, y;
- GLfloat step = 255.0/(GLfloat)(nr_verts_in_row - 1);
- color = malloc(sizeof(color[0]) * 4 * nr_verts_in_row * nr_verts_in_row);
-
- for (y = 0; y < nr_verts_in_row; ++y) {
- for (x = 0; x < nr_verts_in_row; ++x) {
- unsigned idx = 4*(x + y * nr_verts_in_row);
- color[idx + 0] = (GLubyte)(step * x);
- color[idx + 1] = 0x00;
- color[idx + 2] = (GLubyte)(step * y);
- color[idx + 3] = 0x00;
- }
- }
- glColorPointer( 4, GL_UNSIGNED_BYTE, 0, color );
-}
-
-static void generate_indices( void )
-{
- unsigned strip, i;
-
- /* indice size * number of strips * number of indices in strip */
- indices = malloc(sizeof(indices[0]) * (nr_verts_in_row - 1) *
- (nr_indices_in_strip));
-
- for (strip = 0; strip < nr_verts_in_row - 1; strip += 2) {
- for (i = 0; i < nr_indices_in_strip; i+=2) {
- unsigned idx = i + strip * nr_indices_in_strip;
- unsigned idx2 = (nr_indices_in_strip - i - 2) + (strip +
- 1) * (nr_indices_in_strip);
- indices[idx + 1] = i/2 + strip*nr_verts_in_row;
- indices[idx] = i/2 + (strip + 1)*nr_verts_in_row;
- if (strip + 1 < nr_verts_in_row - 1) {
- indices[idx2] = i/2 + (strip + 1)*nr_verts_in_row;
- indices[idx2 + 1] = i/2 + (strip + 2)*nr_verts_in_row;
- }
- }
- }
-}
-
-static void init( void )
-{
-
-
- generate_verts();
- generate_colors();
- generate_indices();
-
- glClearColor( 0.0, 0.0, 0.0, 0.0 );
- glShadeModel( GL_SMOOTH );
-
- glEnableClientState( GL_VERTEX_ARRAY );
- glEnableClientState( GL_COLOR_ARRAY );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -100.0, 100.0, -100.0, 100.0, 1.0, 100.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-
-#ifdef GL_EXT_compiled_vertex_array
- if ( compiled ) {
- glLockArraysEXT( 0, rows * rows );
- }
-#endif
-}
-
-static void display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glDrawElements( GL_TRIANGLE_STRIP, nr_indices_in_strip * (nr_verts_in_row - 1) , GL_UNSIGNED_INT, indices );
-
- if ( double_buffer )
- glutSwapBuffers();
- else
- glFlush();
-}
-
-static void keyboard( unsigned char key, int x, int y )
-{
- switch ( key ) {
- case 27:
- exit( 0 );
- break;
- }
-
- glutPostRedisplay();
-}
-
-static GLboolean args( int argc, char **argv )
-{
- GLint i;
-
- double_buffer = GL_TRUE;
-
- for ( i = 1 ; i < argc ; i++ ) {
- if ( strcmp( argv[i], "-sb" ) == 0 ) {
- double_buffer = GL_FALSE;
- } else if ( strcmp( argv[i], "-db" ) == 0 ) {
- double_buffer = 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;
- char *string;
- double version;
-
- glutInit( &argc, argv );
-
- if ( args( argc, argv ) == GL_FALSE ) {
- exit( 1 );
- }
-
- type = GLUT_RGB | GLUT_DEPTH;
- type |= ( double_buffer ) ? GLUT_DOUBLE : GLUT_SINGLE;
-
- glutInitDisplayMode( type );
- glutInitWindowSize( 250, 250 );
- glutInitWindowPosition( 100, 100 );
- glutCreateWindow( "CVA Test" );
-
- /* Make sure the server supports GL 1.2 vertex arrays.
- */
- string = (char *) glGetString( GL_VERSION );
-
- version = atof(string);
- if ( version < 1.2 ) {
- fprintf( stderr, "This program requires OpenGL 1.2 vertex arrays.\n" );
- exit( -1 );
- }
-
- /* See if the server supports compiled vertex arrays.
- */
- string = (char *) glGetString( GL_EXTENSIONS );
-
- if ( !strstr( string, "GL_EXT_compiled_vertex_array" ) ) {
- fprintf( stderr, "Compiled vertex arrays not supported by this renderer.\n" );
- compiled = GL_FALSE;
- }
-
- init();
-
- glutDisplayFunc( display );
- glutKeyboardFunc( keyboard );
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/tests/cylwrap.c b/progs/tests/cylwrap.c
deleted file mode 100644
index 2b32f11541..0000000000
--- a/progs/tests/cylwrap.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Test cylindrical texcoord wrapping
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-
-static int Win;
-static int WinWidth = 600, WinHeight = 400;
-static GLfloat Xrot = 0, Yrot = 0;
-static GLboolean CylWrap = GL_TRUE;
-static GLboolean Lines = GL_FALSE;
-
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-DrawSample(GLboolean wrap)
-{
- float p;
-
- glEnable(GL_TEXTURE_2D);
-
- if (Lines) {
- /* texured lines */
- float t;
- for (t = 0; t <= 1.0; t += 0.125) {
- float y = -1.0 + 2.0 * t;
- glBegin(GL_LINE_STRIP);
- for (p = 0.0; p <= 1.001; p += 0.05) {
- float x = -2.0 + p * 4.0;
- float s = p + 0.5;
- if (wrap && s > 1.0)
- s -= 1.0;
- glTexCoord2f(s, t); glVertex2f(x, y);
- }
- glEnd();
- }
- }
- else {
- /* texured quads */
- glBegin(GL_QUAD_STRIP);
- for (p = 0.0; p <= 1.001; p += 0.1) {
- float x = -2.0 + p * 4.0;
- float s = p + 0.5;
- if (wrap && s > 1.0)
- s -= 1.0;
- glTexCoord2f(s, 0); glVertex2f(x, -1);
- glTexCoord2f(s, 1); glVertex2f(x, +1);
- }
- glEnd();
- }
-
- glDisable(GL_TEXTURE_2D);
-
- /* hash marks */
- glColor3f(0,0,0);
- glBegin(GL_LINES);
- for (p = 0.0; p <= 1.001; p += 0.1) {
- float x = -2.0 + p * 4.0;
- glVertex2f(x, -1.1);
- glVertex2f(x, -0.8);
- }
- glEnd();
-
- /* labels */
- glColor3f(1,1,1);
- for (p = 0.0; p <= 1.001; p += 0.1) {
- char str[100];
- float x = -2.0 + p * 4.0;
- float s = p + 0.5;
-
- if (wrap && s > 1.0)
- s -= 1.0;
-
- sprintf(str, "%3.1f", s);
- glRasterPos2f(x, -1.2);
- glBitmap(0, 0, 0, 0, -11, 0, NULL);
- PrintString(str);
- if (p == 0.0) {
- glBitmap(0, 0, 0, 0, -55, 0, NULL);
- PrintString("s =");
- }
- }
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
-
- glPushMatrix();
- glTranslatef(0, +1.2, 0);
- DrawSample(GL_FALSE);
- glPopMatrix();
-
- /* set Mesa back-door state for testing cylindrical wrap mode */
- if (CylWrap)
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 0.125);
-
- glPushMatrix();
- glTranslatef(0, -1.2, 0);
- DrawSample(GL_TRUE);
- glPopMatrix();
-
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0);
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- WinWidth = width;
- WinHeight = height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1.0, 1.0, -1.0, 1.0, 3.0, 25.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -10.0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'c':
- case 'C':
- CylWrap = !CylWrap;
- if (CylWrap)
- printf("Cylindrical wrap on.\n");
- else
- printf("Cylindrical wrap off.\n");
- break;
- case 'l':
- case 'L':
- Lines = !Lines;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- const GLfloat step = 3.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
-MakeSineWaveTexture(void)
-{
- GLubyte tex[128][512][4];
- int i, j;
-
- for (j = 0; j < 128; j++) {
- for (i = 0; i < 512; i++) {
- float x = i / 511.0 * 2.0 * M_PI + M_PI * 0.5;
- float y0 = sin(x) * 0.5 + 0.5;
- int jy0 = y0 * 128;
- float y1 = sin(x + M_PI) * 0.5 + 0.5;
- int jy1 = y1 * 128;
- if (j < jy0)
- tex[j][i][0] = 0xff;
- else
- tex[j][i][0] = 0;
- if (j < jy1)
- tex[j][i][1] = 0xff;
- else
- tex[j][i][1] = 0;
- tex[j][i][2] = 0;
- tex[j][i][3] = 0xff;
- }
- }
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 128, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, tex);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-}
-
-
-static void
-Init(void)
-{
- glBindTexture(GL_TEXTURE_2D, 5);
- MakeSineWaveTexture();
-
- glClearColor(0.5, 0.5, 0.5, 0.0);
- glPointSize(3.0);
-
- printf("Press 'c' to toggle cylindrical wrap mode.\n");
- printf("Press 'l' to toggle line / quad drawing.\n");
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glutReshapeFunc(Reshape);
- glutSpecialFunc(SpecialKey);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/debugger.c b/progs/tests/debugger.c
deleted file mode 100644
index 1c2f9bebca..0000000000
--- a/progs/tests/debugger.c
+++ /dev/null
@@ -1,735 +0,0 @@
-/*
- * Test the GL_MESA_program_debug extension
- */
-
-
-#include <assert.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-/*
- * Print the string with line numbers
- */
-static void list_program(const GLubyte *string, GLsizei len)
-{
- const char *c = (const char *) string;
- int i, line = 1, printNumber = 1;
-
- for (i = 0; i < len; i++) {
- if (printNumber) {
- printf("%3d ", line);
- printNumber = 0;
- }
- if (*c == '\n') {
- line++;
- printNumber = 1;
- }
- putchar(*c);
- c++;
- }
- putchar('\n');
-}
-
-
-/*
- * Return the line number and column number that corresponds to the
- * given program position. Also return a null-terminated copy of that
- * line of the program string.
- */
-static const GLubyte *
-find_line_column(const GLubyte *string, const GLubyte *pos,
- GLint *line, GLint *col)
-{
- const GLubyte *lineStart = string;
- const GLubyte *p = string;
- GLubyte *s;
- int len;
-
- *line = 1;
-
- while (p != pos) {
- if (*p == (GLubyte) '\n') {
- (*line)++;
- lineStart = p + 1;
- }
- p++;
- }
-
- *col = (pos - lineStart) + 1;
-
- /* return copy of this line */
- while (*p != 0 && *p != '\n')
- p++;
- len = p - lineStart;
- s = (GLubyte *) malloc(len + 1);
- memcpy(s, lineStart, len);
- s[len] = 0;
-
- return s;
-}
-
-
-#define ARB_VERTEX_PROGRAM 1
-#define ARB_FRAGMENT_PROGRAM 2
-#define NV_VERTEX_PROGRAM 3
-#define NV_FRAGMENT_PROGRAM 4
-
-
-
-struct breakpoint {
- enum {PIXEL, LINE} type;
- int x, y;
- int line;
- GLboolean enabled;
-};
-
-#define MAX_BREAKPOINTS 100
-static struct breakpoint Breakpoints[MAX_BREAKPOINTS];
-static int NumBreakpoints = 0;
-
-
-
-/*
- * Interactive debugger
- */
-static void Debugger2(GLenum target, GLvoid *data)
-{
- static GLuint skipCount = 0;
- const GLubyte *ln;
- GLint pos = 0, line, column;
- GLint id;
- int progType;
- GLint len;
- GLubyte *program;
- GLboolean stop;
- int i;
-
- /* Sigh, GL_VERTEX_PROGRAM_ARB == GL_VERTEX_PROGRAM_NV so it's a bit
- * hard to distinguish between them.
- */
- if (target == GL_FRAGMENT_PROGRAM_ARB)
- progType = ARB_FRAGMENT_PROGRAM;
- else if (target == GL_FRAGMENT_PROGRAM_NV)
- progType = NV_FRAGMENT_PROGRAM;
- else
- progType = NV_VERTEX_PROGRAM;
-
- /* Until we hit zero, continue rendering */
- if (skipCount > 0) {
- skipCount--;
- return;
- }
-
- /* Get id of the program and current position */
- switch (progType) {
- case ARB_FRAGMENT_PROGRAM:
- glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_BINDING_ARB, &id);
- glGetIntegerv(GL_FRAGMENT_PROGRAM_POSITION_MESA, &pos);
- break;
- case NV_FRAGMENT_PROGRAM:
- glGetIntegerv(GL_FRAGMENT_PROGRAM_BINDING_NV, &id);
- glGetIntegerv(GL_FRAGMENT_PROGRAM_POSITION_MESA, &pos);
- break;
- case ARB_VERTEX_PROGRAM:
- glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_BINDING_ARB, &id);
- glGetIntegerv(GL_VERTEX_PROGRAM_POSITION_MESA, &pos);
- break;
- case NV_VERTEX_PROGRAM:
- glGetIntegerv(GL_VERTEX_PROGRAM_BINDING_NV, &id);
- glGetIntegerv(GL_VERTEX_PROGRAM_POSITION_MESA, &pos);
- break;
- default:
- abort();
- }
-
- /* get program string */
- if (progType == ARB_VERTEX_PROGRAM ||
- progType == ARB_FRAGMENT_PROGRAM)
- glGetProgramivARB(target, GL_PROGRAM_LENGTH_ARB, &len);
- else
- glGetProgramivNV(id, GL_PROGRAM_LENGTH_NV, &len);
- program = malloc(len + 1);
- if (progType == ARB_VERTEX_PROGRAM ||
- progType == ARB_FRAGMENT_PROGRAM)
- glGetProgramStringARB(target, GL_PROGRAM_STRING_ARB, program);
- else
- glGetProgramStringNV(id, GL_PROGRAM_STRING_NV, program);
-
-
- /* Get current line number, column, line string */
- ln = find_line_column(program, program + pos, &line, &column);
-
- /* test breakpoints */
- if (NumBreakpoints > 0)
- stop = GL_FALSE;
- else
- stop = GL_TRUE;
- for (i = 0; i < NumBreakpoints; i++) {
- if (Breakpoints[i].enabled) {
- switch (Breakpoints[i].type) {
- case PIXEL:
- if (progType == ARB_FRAGMENT_PROGRAM) {
-
- }
- else if (progType == NV_FRAGMENT_PROGRAM) {
- GLfloat pos[4];
- int px, py;
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- 6, (GLubyte *) "f[WPOS]", pos);
- px = (int) pos[0];
- py = (int) pos[1];
- printf("%d, %d\n", px, py);
- if (px == Breakpoints[i].x &&
- py == Breakpoints[i].y) {
- printf("Break at pixel (%d, %d)\n", px, py);
- stop = GL_TRUE;
- }
- }
- break;
- case LINE:
- if (line == Breakpoints[i].line) {
- /* hit a breakpoint! */
- printf("Break at line %d\n", line);
- stop = GL_TRUE;
- }
- break;
- }
- }
- }
- if (!stop) {
- free(program);
- return;
- }
-
- printf("%d: %s\n", line, ln);
-
- /* get commands from stdin */
- while (1) {
- char command[1000], *cmd;
-
- /* print prompt and get command */
- printf("(%s %d) ", (target == GL_VERTEX_PROGRAM_ARB ? "vert" : "frag"),
- line);
- fgets(command, 999, stdin);
-
- /* skip leading whitespace */
- for (cmd = command; cmd[0] == ' '; cmd++)
- ;
-
- if (!cmd[0])
- /* nothing (repeat the previous cmd?) */
- continue;
-
- switch (cmd[0]) {
- case 's':
- /* skip N instructions */
- i = atoi(cmd + 2);
- skipCount = i;
- printf("Skipping %d instructions\n", i);
- return;
- case 'n':
- /* next */
- return;
- case 'c':
- return;
- case 'd':
- /* dump machine state */
- if (progType == NV_FRAGMENT_PROGRAM) {
- static const char *inRegs[] = {
- "f[WPOS]", "f[COL0]", "f[COL1]", "f[FOGC]",
- "f[TEX0]", "f[TEX1]", "f[TEX2]", "f[TEX3]",
- NULL
- };
- static const char *outRegs[] = {
- "o[COLR]", "o[COLH]", "o[DEPR]", NULL
- };
- GLfloat v[4];
- int i;
- printf("Fragment input attributes:\n");
- for (i = 0; inRegs[i]; i++) {
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- strlen(inRegs[i]),
- (const GLubyte *) inRegs[i], v);
- printf(" %s: %g, %g, %g, %g\n", inRegs[i],
- v[0], v[1], v[2], v[3]);
- }
- printf("Fragment output attributes:\n");
- for (i = 0; outRegs[i]; i++) {
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- strlen(outRegs[i]),
- (const GLubyte *) outRegs[i], v);
- printf(" %s: %g, %g, %g, %g\n", outRegs[i],
- v[0], v[1], v[2], v[3]);
- }
- printf("Temporaries:\n");
- for (i = 0; i < 4; i++) {
- char temp[100];
- GLfloat v[4];
- sprintf(temp, "R%d", i);
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- strlen(temp),
- (const GLubyte *) temp, v);
- printf(" %s: %g, %g, %g, %g\n", temp, v[0],v[1],v[2],v[3]);
- }
- }
- else if (progType == NV_VERTEX_PROGRAM) {
- GLfloat v[4];
- int i;
- static const char *inRegs[] = {
- "v[OPOS]", "v[WGHT]", "v[NRML]", "v[COL0]",
- "v[COL1]", "v[FOGC]", "v[6]", "v[7]",
- "v[TEX0]", "v[TEX1]", "v[TEX2]", "v[TEX3]",
- "v[TEX4]", "v[TEX5]", "v[TEX6]", "v[TEX7]",
- NULL
- };
- static const char *outRegs[] = {
- "o[HPOS]", "o[COL0]", "o[COL1]", "o[BFC0]",
- "o[BFC1]", "o[FOGC]", "o[PSIZ]",
- "o[TEX0]", "o[TEX1]", "o[TEX2]", "o[TEX3]",
- "o[TEX4]", "o[TEX5]", "o[TEX6]", "o[TEX7]",
- NULL
- };
- printf("Vertex input attributes:\n");
- for (i = 0; inRegs[i]; i++) {
- glGetProgramRegisterfvMESA(GL_VERTEX_PROGRAM_NV,
- strlen(inRegs[i]),
- (const GLubyte *) inRegs[i], v);
- printf(" %s: %g, %g, %g, %g\n", inRegs[i],
- v[0], v[1], v[2], v[3]);
- }
- printf("Vertex output attributes:\n");
- for (i = 0; outRegs[i]; i++) {
- glGetProgramRegisterfvMESA(GL_VERTEX_PROGRAM_NV,
- strlen(outRegs[i]),
- (const GLubyte *) outRegs[i], v);
- printf(" %s: %g, %g, %g, %g\n", outRegs[i],
- v[0], v[1], v[2], v[3]);
- }
- printf("Temporaries:\n");
- for (i = 0; i < 4; i++) {
- char temp[100];
- GLfloat v[4];
- sprintf(temp, "R%d", i);
- glGetProgramRegisterfvMESA(GL_VERTEX_PROGRAM_NV,
- strlen(temp),
- (const GLubyte *) temp, v);
- printf(" %s: %g, %g, %g, %g\n", temp, v[0],v[1],v[2],v[3]);
- }
- }
- break;
- case 'l':
- /* list */
- list_program(program, len);
- break;
- case 'p':
- /* print */
- {
- GLfloat v[4];
- char *c;
- cmd++;
- while (*cmd == ' ')
- cmd++;
- c = cmd;
- while (*c) {
- if (*c == '\n' || *c == '\r')
- *c = 0;
- else
- c++;
- }
- glGetProgramRegisterfvMESA(target, strlen(cmd),
- (const GLubyte *) cmd, v);
- if (glGetError() == GL_NO_ERROR)
- printf("%s = %g, %g, %g, %g\n", cmd, v[0], v[1], v[2], v[3]);
- else
- printf("Invalid expression\n");
- }
- break;
- case 'b':
- if (cmd[1] == ' ' && isdigit(cmd[2])) {
- char *comma = strchr(cmd, ',');
- if (comma) {
- /* break at pixel */
- int x = atoi(cmd + 2);
- int y = atoi(comma + 1);
- if (NumBreakpoints < MAX_BREAKPOINTS) {
- Breakpoints[NumBreakpoints].type = PIXEL;
- Breakpoints[NumBreakpoints].x = x;
- Breakpoints[NumBreakpoints].y = y;
- Breakpoints[NumBreakpoints].enabled = GL_TRUE;
- NumBreakpoints++;
- printf("Breakpoint %d: break at pixel (%d, %d)\n",
- NumBreakpoints, x, y);
- }
- }
- else {
- /* break at line */
- int l = atoi(cmd + 2);
- if (l && NumBreakpoints < MAX_BREAKPOINTS) {
- Breakpoints[NumBreakpoints].type = LINE;
- Breakpoints[NumBreakpoints].line = l;
- Breakpoints[NumBreakpoints].enabled = GL_TRUE;
- NumBreakpoints++;
- printf("Breakpoint %d: break at line %d\n",
- NumBreakpoints, l);
- }
- }
- }
- else {
- /* list breakpoints */
- printf("Breakpoints:\n");
- for (i = 0; i < NumBreakpoints; i++) {
- switch (Breakpoints[i].type) {
- case LINE:
- printf(" %d: break at line %d\n",
- i + 1, Breakpoints[i].line);
- break;
- case PIXEL:
- printf(" %d: break at pixel (%d, %d)\n",
- i + 1, Breakpoints[i].x, Breakpoints[i].y);
- break;
- }
- }
- }
- break;
- case 'h':
- /* help */
- printf("Debugger commands:\n");
- printf(" b list breakpoints\n");
- printf(" b N break at line N\n");
- printf(" b x,y break at pixel x,y\n");
- printf(" c continue execution\n");
- printf(" d display register values\n");
- printf(" h help\n");
- printf(" l list program\n");
- printf(" n next instruction\n");
- printf(" p V print value V\n");
- printf(" s N skip N instructions\n");
- break;
- default:
- printf("Unknown command: %c\n", cmd[0]);
- }
- }
-}
-
-
-/*
- * Print current line, some registers, and continue.
- */
-static void Debugger(GLenum target, GLvoid *data)
-{
- GLint pos;
- const GLubyte *ln;
- GLint line, column;
- GLfloat v[4];
-
- assert(target == GL_FRAGMENT_PROGRAM_NV);
-
- glGetIntegerv(GL_FRAGMENT_PROGRAM_POSITION_MESA, &pos);
-
- ln = find_line_column((const GLubyte *) data, (const GLubyte *) data + pos,
- &line, &column);
- printf("%d:%d: %s\n", line, column, (char *) ln);
-
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- 2, (const GLubyte *) "R0", v);
- printf(" R0 = %g, %g, %g, %g\n", v[0], v[1], v[2], v[3]);
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- 7, (const GLubyte *) "f[WPOS]", v);
- printf(" o[WPOS] = %g, %g, %g, %g\n", v[0], v[1], v[2], v[3]);
- glGetProgramRegisterfvMESA(GL_FRAGMENT_PROGRAM_NV,
- 7, (const GLubyte *) "o[COLR]", v);
- printf(" o[COLR] = %g, %g, %g, %g\n", v[0], v[1], v[2], v[3]);
-
- free((void *) ln);
-}
-
-
-
-
-/**********************************************************************/
-
-static GLfloat Diffuse[4] = { 0.5, 0.5, 1.0, 1.0 };
-static GLfloat Specular[4] = { 0.8, 0.8, 0.8, 1.0 };
-static GLfloat LightPos[4] = { 0.0, 10.0, 20.0, 1.0 };
-static GLfloat Delta = 1.0;
-
-static GLuint FragProg;
-static GLuint VertProg;
-static GLboolean Anim = GL_TRUE;
-static GLboolean Wire = GL_FALSE;
-static GLboolean PixelLight = GL_TRUE;
-
-static GLfloat Xrot = 0, Yrot = 0;
-
-
-#define NAMED_PARAMETER4FV(prog, name, v) \
- glProgramNamedParameter4fvNV(prog, strlen(name), (const GLubyte *) name, v)
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- if (PixelLight) {
- NAMED_PARAMETER4FV(FragProg, "LightPos", LightPos);
- glEnable(GL_FRAGMENT_PROGRAM_NV);
- glEnable(GL_VERTEX_PROGRAM_NV);
- glDisable(GL_LIGHTING);
- }
- else {
- glLightfv(GL_LIGHT0, GL_POSITION, LightPos);
- glDisable(GL_FRAGMENT_PROGRAM_NV);
- glDisable(GL_VERTEX_PROGRAM_NV);
- glEnable(GL_LIGHTING);
- }
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
-
-#if 1
- glutSolidSphere(2.0, 10, 5);
-#else
- {
- GLUquadricObj *q = gluNewQuadric();
- gluQuadricNormals(q, GL_SMOOTH);
- gluQuadricTexture(q, GL_TRUE);
- glRotatef(90, 1, 0, 0);
- glTranslatef(0, 0, -1);
- gluCylinder(q, 1.0, 1.0, 2.0, 24, 1);
- gluDeleteQuadric(q);
- }
-#endif
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Idle(void)
-{
- LightPos[0] += Delta;
- if (LightPos[0] > 25.0)
- Delta = -1.0;
- else if (LightPos[0] <- 25.0)
- Delta = 1.0;
- glutPostRedisplay();
-}
-
-
-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 );
- /*glOrtho( -2.0, 2.0, -2.0, 2.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 ' ':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'x':
- LightPos[0] -= 1.0;
- break;
- case 'X':
- LightPos[0] += 1.0;
- break;
- case 'w':
- Wire = !Wire;
- if (Wire)
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- else
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- break;
- case 'p':
- PixelLight = !PixelLight;
- if (PixelLight) {
- printf("Per-pixel lighting\n");
- }
- else {
- printf("Conventional lighting\n");
- }
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( int argc, char *argv[] )
-{
- static const char *fragProgramText =
- "!!FP1.0\n"
- "DECLARE Diffuse; \n"
- "DECLARE Specular; \n"
- "DECLARE LightPos; \n"
-
- "# Compute normalized LightPos, put it in R0\n"
- "DP3 R0.x, LightPos, LightPos;\n"
- "RSQ R0.y, R0.x;\n"
- "MUL R0, LightPos, R0.y;\n"
-
- "# Compute normalized normal, put it in R1\n"
- "DP3 R1, f[TEX0], f[TEX0]; \n"
- "RSQ R1.y, R1.x;\n"
- "MUL R1, f[TEX0], R1.y;\n"
-
- "# Compute dot product of light direction and normal vector\n"
- "DP3 R2, R0, R1;\n"
-
- "MUL R3, Diffuse, R2; # diffuse attenuation\n"
-
- "POW R4, R2.x, {20.0}.x; # specular exponent\n"
-
- "MUL R5, Specular, R4; # specular attenuation\n"
-
- "ADD o[COLR], R3, R5; # add diffuse and specular colors\n"
- "END \n"
- ;
-
- static const char *vertProgramText =
- "!!VP1.0\n"
- "# typical modelview/projection transform\n"
- "DP4 o[HPOS].x, c[0], v[OPOS] ;\n"
- "DP4 o[HPOS].y, c[1], v[OPOS] ;\n"
- "DP4 o[HPOS].z, c[2], v[OPOS] ;\n"
- "DP4 o[HPOS].w, c[3], v[OPOS] ;\n"
- "# transform normal by inv transpose of modelview, put in tex0\n"
- "DP4 o[TEX0].x, c[4], v[NRML] ;\n"
- "DP4 o[TEX0].y, c[5], v[NRML] ;\n"
- "DP4 o[TEX0].z, c[6], v[NRML] ;\n"
- "DP4 o[TEX0].w, c[7], v[NRML] ;\n"
- "END\n";
- ;
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this demo requires GL_NV_vertex_program\n");
- exit(1);
- }
- if (!glutExtensionSupported("GL_NV_fragment_program")) {
- printf("Sorry, this demo requires GL_NV_fragment_program\n");
- exit(1);
- }
-
- glGenProgramsNV(1, &FragProg);
- assert(FragProg > 0);
- glGenProgramsNV(1, &VertProg);
- assert(VertProg > 0);
-
- /*
- * Fragment program
- */
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, FragProg,
- strlen(fragProgramText),
- (const GLubyte *) fragProgramText);
- assert(glIsProgramNV(FragProg));
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, FragProg);
-
- NAMED_PARAMETER4FV(FragProg, "Diffuse", Diffuse);
- NAMED_PARAMETER4FV(FragProg, "Specular", Specular);
-
- /*
- * Vertex program
- */
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, VertProg,
- strlen(vertProgramText),
- (const GLubyte *) vertProgramText);
- assert(glIsProgramNV(VertProg));
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, VertProg);
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
-
- /*
- * Misc init
- */
- glClearColor(0.3, 0.3, 0.3, 0.0);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHTING);
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Diffuse);
- glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, Specular);
- glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 20.0);
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("Press p to toggle between per-pixel and per-vertex lighting\n");
-
-#ifdef GL_MESA_program_debug
- if (argc > 1 && strcmp(argv[1], "fragment") == 0) {
- printf(">> Debugging fragment program\n");
- glProgramCallbackMESA(GL_FRAGMENT_PROGRAM_ARB, Debugger2,
- (GLvoid *) fragProgramText);
- glEnable(GL_FRAGMENT_PROGRAM_CALLBACK_MESA);
- }
- else {
- printf(">> Debugging vertex program\n");
- glProgramCallbackMESA(GL_VERTEX_PROGRAM_ARB, Debugger2,
- (GLvoid *) fragProgramText);
- glEnable(GL_VERTEX_PROGRAM_CALLBACK_MESA);
- }
-#endif
-}
-
-
-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]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init(argc, argv);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/drawbuffers.c b/progs/tests/drawbuffers.c
deleted file mode 100644
index 7a19933e62..0000000000
--- a/progs/tests/drawbuffers.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Test GL_ARB_draw_buffers, GL_EXT_framebuffer_object
- * and GLSL's gl_FragData[].
- *
- * Brian Paul
- * 11 March 2007
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "extfuncs.h"
-
-static int Win;
-static int Width = 400, Height = 400;
-static GLuint FBobject, RBobjects[3];
-static GLfloat Xrot = 0.0, Yrot = 0.0;
-static GLuint Program;
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Display(void)
-{
- GLubyte *buffer = malloc(Width * Height * 4);
- static const GLenum buffers[2] = {
- GL_COLOR_ATTACHMENT0_EXT,
- GL_COLOR_ATTACHMENT1_EXT
- };
-
- glUseProgram_func(Program);
-
- glEnable(GL_DEPTH_TEST);
-
- /* draw to user framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBobject);
-
- /* Clear color buffer 0 (blue) */
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glClearColor(0.5, 0.5, 1.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- /* Clear color buffer 1 (1 - blue) */
- glDrawBuffer(GL_COLOR_ATTACHMENT1_EXT);
- glClearColor(0.5, 0.5, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- glClear(GL_DEPTH_BUFFER_BIT);
-
- /* draw to two buffers w/ fragment shader */
- glDrawBuffersARB(2, buffers);
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glutSolidTorus(0.75, 2.0, 10, 20);
- glPopMatrix();
-
- /* read from user framebuffer */
- /* left half = colorbuffer 0 */
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glPixelStorei(GL_PACK_ROW_LENGTH, Width);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
- glReadPixels(0, 0, Width / 2, Height, GL_RGBA, GL_UNSIGNED_BYTE,
- buffer);
-
- /* right half = colorbuffer 1 */
- glReadBuffer(GL_COLOR_ATTACHMENT1_EXT);
- glPixelStorei(GL_PACK_SKIP_PIXELS, Width / 2);
- glReadPixels(Width / 2, 0, Width - Width / 2, Height,
- GL_RGBA, GL_UNSIGNED_BYTE,
- buffer);
-
- /* draw to window */
- glUseProgram_func(0);
- glDisable(GL_DEPTH_TEST);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glWindowPos2iARB(0, 0);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- free(buffer);
- glutSwapBuffers();
- CheckError(__LINE__);
-}
-
-
-static void
-Reshape(int width, int height)
-{
- float ar = (float) width / (float) height;
-
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 35.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -20.0);
-
- Width = width;
- Height = height;
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[0]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[1]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[2]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT,
- Width, Height);
-}
-
-
-static void
-CleanUp(void)
-{
- glDeleteFramebuffersEXT(1, &FBobject);
- glDeleteRenderbuffersEXT(3, RBobjects);
- glutDestroyWindow(Win);
- exit(0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'x':
- Xrot += 5.0;
- break;
- case 'y':
- Yrot += 5.0;
- break;
- case 27:
- CleanUp();
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-CheckExtensions(void)
-{
- const char *version = (const char *) glGetString(GL_VERSION);
- GLint numBuf;
-
- if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
- printf("Sorry, GL_EXT_framebuffer_object is required!\n");
- exit(1);
- }
- if (!glutExtensionSupported("GL_ARB_draw_buffers")) {
- printf("Sorry, GL_ARB_draw_buffers is required!\n");
- exit(1);
- }
- if (version[0] != '2') {
- printf("Sorry, OpenGL 2.0 is required!\n");
- exit(1);
- }
-
- glGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &numBuf);
- printf("GL_MAX_DRAW_BUFFERS_ARB = %d\n", numBuf);
- if (numBuf < 2) {
- printf("Sorry, GL_MAX_DRAW_BUFFERS_ARB needs to be >= 2\n");
- exit(1);
- }
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-}
-
-
-static void
-SetupRenderbuffers(void)
-{
- glGenFramebuffersEXT(1, &FBobject);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBobject);
-
- glGenRenderbuffersEXT(3, RBobjects);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[0]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[1]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[2]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT,
- Width, Height);
-
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[0]);
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[1]);
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[2]);
-
- CheckError(__LINE__);
-}
-
-
-static GLuint
-LoadAndCompileShader(GLenum target, const char *text)
-{
- GLint stat;
- GLuint shader = glCreateShader_func(target);
- glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
- glCompileShader_func(shader);
- glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
- if (!stat) {
- GLchar log[1000];
- GLsizei len;
- glGetShaderInfoLog_func(shader, 1000, &len, log);
- fprintf(stderr, "drawbuffers: problem compiling shader:\n%s\n", log);
- exit(1);
- }
- return shader;
-}
-
-
-static void
-CheckLink(GLuint prog)
-{
- GLint stat;
- glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
- if (!stat) {
- GLchar log[1000];
- GLsizei len;
- glGetProgramInfoLog_func(prog, 1000, &len, log);
- fprintf(stderr, "drawbuffers: shader link error:\n%s\n", log);
- }
-}
-
-
-static void
-SetupShaders(void)
-{
- /* second color output = 1 - first color */
- static const char *fragShaderText =
- "void main() {\n"
- " gl_FragData[0] = gl_Color; \n"
- " gl_FragData[1] = vec4(1.0) - gl_Color; \n"
- "}\n";
-
- GLuint fragShader;
-
- fragShader = LoadAndCompileShader(GL_FRAGMENT_SHADER, fragShaderText);
- Program = glCreateProgram_func();
-
- glAttachShader_func(Program, fragShader);
- glLinkProgram_func(Program);
- CheckLink(Program);
- glUseProgram_func(Program);
-}
-
-
-static void
-SetupLighting(void)
-{
- static const GLfloat frontMat[4] = { 1.0, 0.5, 0.5, 1.0 };
- static const GLfloat backMat[4] = { 1.0, 0.5, 0.5, 1.0 };
-
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, frontMat);
- glMaterialfv(GL_BACK, GL_AMBIENT_AND_DIFFUSE, backMat);
- glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1);
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHTING);
-}
-
-
-static void
-Init(void)
-{
- CheckExtensions();
- GetExtensionFuncs();
- SetupRenderbuffers();
- SetupShaders();
- SetupLighting();
- glEnable(GL_DEPTH_TEST);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Display);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/drawbuffers2.c b/progs/tests/drawbuffers2.c
deleted file mode 100644
index 7b8cc5ca6a..0000000000
--- a/progs/tests/drawbuffers2.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Test GL_ARB_draw_buffers2, GL_ARB_draw_buffers, GL_EXT_framebuffer_object
- * and GLSL's gl_FragData[].
- *
- * We draw to two color buffers and show the left half of the first
- * color buffer on the left side of the window, and show the right
- * half of the second color buffer on the right side of the window.
- *
- * Different color masks are used for the two color buffers.
- * Blending is enabled for the second buffer only.
- *
- * Brian Paul
- * 31 Dec 2009
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "extfuncs.h"
-
-static int Win;
-static int Width = 400, Height = 400;
-static GLuint FBobject, RBobjects[3];
-static GLfloat Xrot = 0.0, Yrot = 0.0;
-static GLuint Program;
-static GLboolean Anim = GL_TRUE;
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Display(void)
-{
- GLubyte *buffer = malloc(Width * Height * 4);
- static const GLenum buffers[2] = {
- GL_COLOR_ATTACHMENT0_EXT,
- GL_COLOR_ATTACHMENT1_EXT
- };
-
- glUseProgram_func(Program);
-
- glEnable(GL_DEPTH_TEST);
-
- /* draw to user framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBobject);
-
- /* Clear color buffer 0 (blue) */
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glClear(GL_COLOR_BUFFER_BIT);
-
- /* Clear color buffer 1 (1 - blue) */
- glDrawBuffer(GL_COLOR_ATTACHMENT1_EXT);
- glClear(GL_COLOR_BUFFER_BIT);
-
- glClear(GL_DEPTH_BUFFER_BIT);
-
- /* draw to two buffers w/ fragment shader */
- glDrawBuffersARB(2, buffers);
-
- /* different color masks for each buffer */
- if (1) {
- glColorMaskIndexedEXT(0, GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE);
- glColorMaskIndexedEXT(1, GL_FALSE, GL_TRUE, GL_FALSE, GL_FALSE);
- }
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glPushMatrix();
- glTranslatef(1, 0, 0);
- glutSolidTorus(1.0, 2.0, 10, 20);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(-1, 0, 0);
- glRotatef(90, 1, 0, 0);
- glutSolidTorus(1.0, 2.0, 10, 20);
- glPopMatrix();
- glPopMatrix();
-
- /* restore default color masks */
- glColorMaskIndexedEXT(0, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
- glColorMaskIndexedEXT(1, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
-
- /* read from user framebuffer */
- /* left half = colorbuffer 0 */
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glPixelStorei(GL_PACK_ROW_LENGTH, Width);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
- glReadPixels(0, 0, Width / 2, Height, GL_RGBA, GL_UNSIGNED_BYTE,
- buffer);
-
- /* right half = colorbuffer 1 */
- glReadBuffer(GL_COLOR_ATTACHMENT1_EXT);
- glPixelStorei(GL_PACK_SKIP_PIXELS, Width / 2);
- glReadPixels(Width / 2, 0, Width - Width / 2, Height,
- GL_RGBA, GL_UNSIGNED_BYTE,
- buffer);
-
- /* draw to window */
- glUseProgram_func(0);
- glDisable(GL_DEPTH_TEST);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glWindowPos2iARB(0, 0);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- free(buffer);
- glutSwapBuffers();
- CheckError(__LINE__);
-}
-
-
-static void
-Idle(void)
-{
- Xrot = glutGet(GLUT_ELAPSED_TIME) * 0.05;
- glutPostRedisplay();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- float ar = (float) width / (float) height;
-
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 35.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -20.0);
-
- Width = width;
- Height = height;
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[0]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[1]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[2]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT,
- Width, Height);
-}
-
-
-static void
-CleanUp(void)
-{
- glDeleteFramebuffersEXT(1, &FBobject);
- glDeleteRenderbuffersEXT(3, RBobjects);
- glutDestroyWindow(Win);
- exit(0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case ' ':
- Anim = !Anim;
- glutIdleFunc(Anim ? Idle : NULL);
- break;
- case 'x':
- Xrot += 5.0;
- break;
- case 'X':
- Xrot -= 5.0;
- break;
- case 'y':
- Yrot += 5.0;
- break;
- case 'Y':
- Yrot -= 5.0;
- break;
- case 27:
- CleanUp();
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-CheckExtensions(void)
-{
- const char *req[] = {
- "GL_EXT_framebuffer_object",
- "GL_ARB_draw_buffers",
- "GL_EXT_draw_buffers2"
- };
-
- const char *version = (const char *) glGetString(GL_VERSION);
- GLint numBuf;
- GLint i;
-
- for (i = 0; i < 3; i++) {
- if (!glutExtensionSupported(req[i])) {
- printf("Sorry, %s extension is required!\n", req[i]);
- exit(1);
- }
- }
- if (version[0] != '2') {
- printf("Sorry, OpenGL 2.0 is required!\n");
- exit(1);
- }
-
- glGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &numBuf);
- printf("GL_MAX_DRAW_BUFFERS_ARB = %d\n", numBuf);
- if (numBuf < 2) {
- printf("Sorry, GL_MAX_DRAW_BUFFERS_ARB needs to be >= 2\n");
- exit(1);
- }
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-}
-
-
-static void
-SetupRenderbuffers(void)
-{
- glGenFramebuffersEXT(1, &FBobject);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBobject);
-
- glGenRenderbuffersEXT(3, RBobjects);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[0]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[1]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBobjects[2]);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT,
- Width, Height);
-
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[0]);
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[1]);
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_RENDERBUFFER_EXT, RBobjects[2]);
-
- CheckError(__LINE__);
-}
-
-
-static GLuint
-LoadAndCompileShader(GLenum target, const char *text)
-{
- GLint stat;
- GLuint shader = glCreateShader_func(target);
- glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
- glCompileShader_func(shader);
- glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
- if (!stat) {
- GLchar log[1000];
- GLsizei len;
- glGetShaderInfoLog_func(shader, 1000, &len, log);
- fprintf(stderr, "drawbuffers: problem compiling shader:\n%s\n", log);
- exit(1);
- }
- return shader;
-}
-
-
-static void
-CheckLink(GLuint prog)
-{
- GLint stat;
- glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
- if (!stat) {
- GLchar log[1000];
- GLsizei len;
- glGetProgramInfoLog_func(prog, 1000, &len, log);
- fprintf(stderr, "drawbuffers: shader link error:\n%s\n", log);
- }
-}
-
-
-static void
-SetupShaders(void)
-{
- /* emit same color to both draw buffers */
- static const char *fragShaderText =
- "void main() {\n"
- " gl_FragData[0] = gl_Color; \n"
- " gl_FragData[1] = gl_Color; \n"
- "}\n";
-
- GLuint fragShader;
-
- fragShader = LoadAndCompileShader(GL_FRAGMENT_SHADER, fragShaderText);
- Program = glCreateProgram_func();
-
- glAttachShader_func(Program, fragShader);
- glLinkProgram_func(Program);
- CheckLink(Program);
- glUseProgram_func(Program);
-}
-
-
-static void
-SetupLighting(void)
-{
- static const GLfloat ambient[4] = { 0.0, 0.0, 0.0, 0.0 };
- static const GLfloat diffuse[4] = { 1.0, 1.0, 1.0, 0.75 };
-
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient);
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse);
-
- glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHTING);
-}
-
-
-static void
-Init(void)
-{
- CheckExtensions();
- GetExtensionFuncs();
- SetupRenderbuffers();
- SetupShaders();
- SetupLighting();
- glEnable(GL_DEPTH_TEST);
-
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnableIndexedEXT(GL_BLEND, 1);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutIdleFunc(Anim ? Idle : NULL);
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Display);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/exactrast.c b/progs/tests/exactrast.c
deleted file mode 100644
index 63b8336d97..0000000000
--- a/progs/tests/exactrast.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
- * Test for exact point/line/polygon rasterization, or at least rasterization
- * that fits the tolerance of the OpenGL spec.
- *
- * Brian Paul
- * 9 Nov 2007
- */
-
-/*
- * Notes:
- * - 'm' to cycle through point, hline, vline and quad drawing
- * - Use cursor keys to translate coordinates (z to reset)
- * - Resize window to check for proper rasterization
- * - Make sure your LCD is running in its native resolution
- *
- * If translation is (0,0):
- * a point will be drawn where x%2==0 and y%2==0,
- * a horizontal line will be drawn where x%2==0,
- * a vertical line will be drawn where y%2==0,
- * for quads, pixels will be set where (x%4)!=3 and (y%4)!=3
- *
- * XXX todo: do glReadPixels and test that the results are what's expected.
- * Upon failure, iterate over sub-pixel translations to find the ideal offset.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400, Height = 400;
-static int Win;
-static float Xtrans = 0, Ytrans = 0;
-static float Step = 0.125;
-
-enum {
- MODE_POINTS,
- MODE_HLINES,
- MODE_VLINES,
- MODE_QUADS,
- NUM_MODES
-};
-
-static int Mode = MODE_POINTS;
-
-
-static void
-Draw(void)
-{
- /* See the OpenGL Programming Guide, Appendix H, "OpenGL Correctness Tips"
- * for information about the 0.375 translation factor.
- */
- float tx = 0.375, ty = 0.375;
- int i, j;
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glTranslatef(tx + Xtrans, ty + Ytrans, 0);
-
- if (Mode == MODE_POINTS) {
- glBegin(GL_POINTS);
- for (j = 0; j < Height; j += 2) {
- for (i = 0; i < Width; i += 2) {
- glVertex2f(i, j);
- }
- }
- glEnd();
- }
- else if (Mode == MODE_HLINES) {
- glBegin(GL_LINES);
- for (i = 0; i < Height; i += 2) {
- glVertex2f(0, i);
- glVertex2f(Width, i);
- }
- glEnd();
- }
- else if (Mode == MODE_VLINES) {
- glBegin(GL_LINES);
- for (i = 0; i < Width; i += 2) {
- glVertex2f(i, 0 );
- glVertex2f(i, Height);
- }
- glEnd();
- }
- else if (Mode == MODE_QUADS) {
- glBegin(GL_QUADS);
- for (j = 0; j < Height; j += 4) {
- for (i = 0; i < Width; i += 4) {
- glVertex2f(i, j );
- glVertex2f(i + 3, j );
- glVertex2f(i + 3, j + 3);
- glVertex2f(i, j + 3);
- }
- }
- glEnd();
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- Width = width;
- Height = height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'm':
- case 'M':
- Mode = (Mode + 1) % NUM_MODES;
- break;
- case 'z':
- case 'Z':
- Xtrans = Ytrans = 0;
- printf("Translation: %f, %f\n", Xtrans, Ytrans);
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- Ytrans += Step;
- break;
- case GLUT_KEY_DOWN:
- Ytrans -= Step;
- break;
- case GLUT_KEY_LEFT:
- Xtrans -= Step;
- break;
- case GLUT_KEY_RIGHT:
- Xtrans += Step;
- break;
- }
- glutPostRedisplay();
- printf("Translation: %f, %f\n", Xtrans, Ytrans);
-}
-
-
-static void
-Init(void)
-{
-}
-
-
-static void
-Usage(void)
-{
- printf("Keys:\n");
- printf(" up/down/left/right - translate by %f\n", Step);
- printf(" z - reset translation to zero\n");
- printf(" m - change rendering mode (points, hlines, vlines, quads)\n");
- printf(" Esc - exit\n");
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
- Init();
- Usage();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/ext422square.c b/progs/tests/ext422square.c
deleted file mode 100644
index 89e99f0292..0000000000
--- a/progs/tests/ext422square.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Exercise the EXT_422_pixels extension, a less convenient
- * alternative to MESA_ycbcr_texture. Requires ARB_fragment_program
- * to perform the final YUV->RGB conversion.
- *
- * Brian Paul 13 September 2002
- * Keith Whitwell 30 November 2004
- */
-
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <assert.h>
-
-#include "../util/readtex.c" /* I know, this is a hack. */
-
-#define TEXTURE_FILE "../images/tile.rgb"
-
-static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
-static GLint ImgWidth, ImgHeight;
-static GLushort *ImageYUV = NULL;
-static const GLuint yuvObj = 100;
-static const GLuint rgbObj = 101;
-
-static void Init( int argc, char *argv[] );
-
-static void DrawObject(void)
-{
- glBegin(GL_QUADS);
-
- glTexCoord2f(0, 0);
- glVertex2f(-1.0, -1.0);
-
- glTexCoord2f(1, 0);
- glVertex2f(1.0, -1.0);
-
- glTexCoord2f(1, 1);
- glVertex2f(1.0, 1.0);
-
- glTexCoord2f(0, 1);
- glVertex2f(-1.0, 1.0);
-
- glEnd();
-}
-
-static void Display( void )
-{
- static int firsttime = 1;
-
- if (firsttime) {
- firsttime = 0;
- Init( 0, 0 ); /* don't ask */
- }
-
- glClear( GL_COLOR_BUFFER_BIT );
- glBindTexture(GL_TEXTURE_2D, yuvObj);
-
- glPushMatrix();
- glEnable(GL_FRAGMENT_PROGRAM_ARB);
- glTranslatef( -1.1, 0.0, -15.0 );
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glBindTexture(GL_TEXTURE_2D, yuvObj);
- DrawObject();
- glPopMatrix();
-
- glPushMatrix();
- glDisable(GL_FRAGMENT_PROGRAM_ARB);
- glTranslatef( 1.1, 0.0, -15.0 );
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glBindTexture(GL_TEXTURE_2D, rgbObj);
- DrawObject();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -1.1, 1.1, -1.1, 1.1, 10.0, 100.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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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();
-}
-
-
-
-
-/* #define LINEAR_FILTER */
-
-static void Init( int argc, char *argv[] )
-{
- const char *file;
- const GLfloat yuvtorgb[16] = {
- 1.164, 1.164, 1.164, 0,
- 0, -.391, 2.018, 0,
- 1.596, -.813, 0.0, 0,
- (-.0625*1.164 + -.5*1.596), (-.0625*1.164 + -.5*-.813 + -.5*-.391), (-.0625*1.164 + -.5*2.018), 1
- };
-
- if (!glutExtensionSupported("GL_ARB_fragment_program")) {
- printf("Error: GL_ARB_fragment_program not supported!\n");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_EXT_422_pixels")) {
- printf("Error: GL_EXT_422_pixels not supported!\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- file = TEXTURE_FILE;
-
- /* Load the texture as YCbCr.
- */
- glBindTexture(GL_TEXTURE_2D, yuvObj);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- ImageYUV = LoadYUVImage(file, &ImgWidth, &ImgHeight );
- if (!ImageYUV) {
- printf("Couldn't read %s\n", TEXTURE_FILE);
- exit(0);
- }
-
- glTexImage2D(GL_TEXTURE_2D, 0,
- GL_RGB,
- ImgWidth, ImgHeight, 0,
- GL_422_EXT,
- GL_UNSIGNED_BYTE, ImageYUV);
-
- glEnable(GL_TEXTURE_2D);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- {
- static const char *modulateYUV =
- "!!ARBfp1.0\n"
- "TEMP R0;\n"
- "TEX R0, fragment.texcoord[0], texture[0], 2D; \n"
-
- "ADD R0, R0, {-0.0625, -0.5, -0.5, 0.0}; \n"
- "DP3 result.color.x, R0, {1.164, 1.596, 0.0}; \n"
- "DP3 result.color.y, R0, {1.164, -0.813, -0.391}; \n"
- "DP3 result.color.z, R0, {1.164, 0.0, 2.018}; \n"
- "MOV result.color.w, R0.w; \n"
-
- "END"
- ;
-
- GLuint modulateProg;
-
-
- /* Setup the fragment program */
- glGenProgramsARB(1, &modulateProg);
- glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
- glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
- strlen(modulateYUV), (const GLubyte *)modulateYUV);
-
- printf("glGetError = 0x%x\n", (int) glGetError());
- printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
- (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
- assert(glIsProgramARB(modulateProg));
-
- }
-
- /* Now the same, but use a color matrix to do the conversion at
- * upload time:
- */
- glBindTexture(GL_TEXTURE_2D, rgbObj);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- glMatrixMode( GL_COLOR_MATRIX );
- glLoadMatrixf( yuvtorgb );
-
- glTexImage2D(GL_TEXTURE_2D, 0,
- GL_RGB,
- ImgWidth, ImgHeight, 0,
- GL_422_EXT,
- GL_UNSIGNED_BYTE, ImageYUV);
-
- glLoadIdentity();
- glMatrixMode( GL_MODELVIEW );
-
- glEnable(GL_TEXTURE_2D);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fbotest1.c b/progs/tests/fbotest1.c
deleted file mode 100644
index a95fdff74c..0000000000
--- a/progs/tests/fbotest1.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Test GL_EXT_framebuffer_object
- *
- * Brian Paul
- * 7 Feb 2005
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Win;
-static int Width = 400, Height = 400;
-static GLuint MyFB, MyRB;
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Display( void )
-{
- GLubyte *buffer = malloc(Width * Height * 4);
- GLenum status;
-
- /* draw to user framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
-
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- printf("Framebuffer incomplete!!!\n");
- }
-
- glClearColor(0.5, 0.5, 1.0, 0.0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glBegin(GL_POLYGON);
- glColor3f(1, 0, 0);
- glVertex2f(-1, -1);
- glColor3f(0, 1, 0);
- glVertex2f(1, -1);
- glColor3f(0, 0, 1);
- glVertex2f(0, 1);
- glEnd();
-
- /* read from user framebuffer */
- glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- /* draw to window */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glWindowPos2iARB(0, 0);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- free(buffer);
- glutSwapBuffers();
- CheckError(__LINE__);
-}
-
-
-static void
-Reshape( int width, int height )
-{
-#if 0
- float ar = (float) width / (float) height;
-#endif
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
-#if 0
- glFrustum( -ar, ar, -1.0, 1.0, 5.0, 25.0 );
-#else
- glOrtho(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0 );
-#endif
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -15.0 );
- Width = width;
- Height = height;
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-}
-
-
-static void
-CleanUp(void)
-{
- glDeleteFramebuffersEXT(1, &MyFB);
- glDeleteRenderbuffersEXT(1, &MyRB);
- assert(!glIsFramebufferEXT(MyFB));
- assert(!glIsRenderbufferEXT(MyRB));
- glutDestroyWindow(Win);
- exit(0);
-}
-
-
-static void
-Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- CleanUp();
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init( void )
-{
- GLboolean ARB_fbo = glutExtensionSupported("GL_ARB_framebuffer_object");
- GLint i;
-
- if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
- printf("GL_EXT_framebuffer_object not found!\n");
- exit(0);
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- glGenFramebuffersEXT(1, &MyFB);
- assert(MyFB);
- assert(!glIsFramebufferEXT(MyFB));
- if (!ARB_fbo) {
- glDeleteFramebuffersEXT(1, &MyFB);
- assert(!glIsFramebufferEXT(MyFB));
- }
- /* Note, continue to use MyFB below */
-
- glGenRenderbuffersEXT(1, &MyRB);
- assert(MyRB);
- assert(!glIsRenderbufferEXT(MyRB));
- if (!ARB_fbo) {
- glDeleteRenderbuffersEXT(1, &MyRB);
- assert(!glIsRenderbufferEXT(MyRB));
- MyRB = 42; /* an arbitrary ID */
- }
-
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- assert(glIsFramebufferEXT(MyFB));
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, MyRB);
- assert(glIsRenderbufferEXT(MyRB));
-
- glGetIntegerv(GL_RENDERBUFFER_BINDING_EXT, &i);
- assert(i == MyRB);
-
- glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &i);
- assert(i == MyFB);
-
- CheckError(__LINE__);
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_RENDERBUFFER_EXT, MyRB);
-
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- CheckError(__LINE__);
-
- {
- GLint r, g, b, a;
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_RED_SIZE_EXT, &r);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_GREEN_SIZE_EXT, &g);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_BLUE_SIZE_EXT, &b);
- glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_ALPHA_SIZE_EXT, &a);
- CheckError(__LINE__);
- printf("renderbuffer RGBA sizes = %d %d %d %d\n", r, g, b, a);
-
- glGetIntegerv(GL_RED_BITS, &r);
- glGetIntegerv(GL_GREEN_BITS, &g);
- glGetIntegerv(GL_BLUE_BITS, &b);
- glGetIntegerv(GL_ALPHA_BITS, &a);
- printf("Visual RGBA sizes = %d %d %d %d\n", r, g, b, a);
- }
-
- /* restore to default */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- CheckError(__LINE__);
-}
-
-
-int
-main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fbotest2.c b/progs/tests/fbotest2.c
deleted file mode 100644
index faf0dd8748..0000000000
--- a/progs/tests/fbotest2.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Test GL_EXT_framebuffer_object
- *
- * Brian Paul
- * 19 Mar 2006
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Win = 0;
-static int Width = 400, Height = 400;
-static GLuint MyFB, ColorRb, DepthRb;
-static GLboolean Animate = GL_TRUE;
-static GLfloat Rotation = 0.0;
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("fbotest2: GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Display( void )
-{
- GLboolean copyPix = GL_FALSE;
- GLboolean blitPix = GL_FALSE;
- GLenum status;
-
- CheckError(__LINE__);
-
- /* draw to user framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
-
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- printf("fbotest2: Error: Framebuffer is incomplete!!!\n");
- }
-
- CheckError(__LINE__);
-
- glClearColor(0.5, 0.5, 1.0, 0.0);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glPushMatrix();
- glRotatef(30.0, 1, 0, 0);
- glRotatef(Rotation, 0, 1, 0);
- glutSolidTeapot(2.0);
- glPopMatrix();
-
- if (copyPix) {
- glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, MyFB);
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0);
- glDrawBuffer(GL_BACK);
-
- glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
-
- glWindowPos2iARB(0, 0);
- glCopyPixels(0, 0, Width, Height, GL_COLOR);
- }
- else if (blitPix) {
- glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, MyFB);
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0);
- glDrawBuffer(GL_BACK);
-
- glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
-
- glBlitFramebufferEXT(0, 0, Width, Height,
- 0, 0, Width, Height,
- GL_COLOR_BUFFER_BIT, GL_NEAREST);
- }
- else {
- GLubyte *buffer = malloc(Width * Height * 4);
- /* read from user framebuffer */
- glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- /* draw to window */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
- glWindowPos2iARB(0, 0);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- free(buffer);
- }
-
- glutSwapBuffers();
- CheckError(__LINE__);
-}
-
-
-static void
-Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
-
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, 5.0, 25.0 );
-
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -15.0 );
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, ColorRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, width, height);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT,
- width, height);
-
- Width = width;
- Height = height;
-}
-
-
-static void
-CleanUp(void)
-{
- glDeleteFramebuffersEXT(1, &MyFB);
- glDeleteRenderbuffersEXT(1, &ColorRb);
- glDeleteRenderbuffersEXT(1, &DepthRb);
- assert(!glIsFramebufferEXT(MyFB));
- assert(!glIsRenderbufferEXT(ColorRb));
- assert(!glIsRenderbufferEXT(DepthRb));
- glutDestroyWindow(Win);
- exit(0);
-}
-
-
-static void
-Idle(void)
-{
- Rotation = glutGet(GLUT_ELAPSED_TIME) * 0.1;
- glutPostRedisplay();
-}
-
-
-static void
-Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Animate = !Animate;
- if (Animate)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 27:
- CleanUp();
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init( void )
-{
- if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
- printf("fbotest2: GL_EXT_framebuffer_object not found!\n");
- exit(0);
- }
- printf("fbotest2: GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- glGenFramebuffersEXT(1, &MyFB);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- assert(glIsFramebufferEXT(MyFB));
-
- /* set color buffer */
- glGenRenderbuffersEXT(1, &ColorRb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, ColorRb);
- assert(glIsRenderbufferEXT(ColorRb));
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_RENDERBUFFER_EXT, ColorRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- /* setup depth buffer */
- glGenRenderbuffersEXT(1, &DepthRb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRb);
- assert(glIsRenderbufferEXT(DepthRb));
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_RENDERBUFFER_EXT, DepthRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, Width, Height);
-
- CheckError(__LINE__);
-
- /* restore to default */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- CheckError(__LINE__);
-}
-
-
-int
-main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- if (Animate)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fbotest3.c b/progs/tests/fbotest3.c
deleted file mode 100644
index c176f82d2b..0000000000
--- a/progs/tests/fbotest3.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Test GL_EXT_framebuffer_object
- * Like fbotest2.c but use a texture for the Z buffer / renderbuffer.
- * Note: the Z texture is never resized so that limits what can be
- * rendered if the window is resized.
- *
- * This tests a bug reported by Christoph Bumiller on 1 Feb 2010
- * on mesa3d-dev.
- *
- * XXX this should be made into a piglit test.
- *
- * Brian Paul
- * 1 Feb 2010
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static int Win = 0;
-static int Width = 400, Height = 400;
-static GLuint Tex = 0;
-static GLuint MyFB, ColorRb, DepthRb;
-static GLboolean Animate = GL_FALSE;
-static GLfloat Rotation = 0.0;
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("fbotest3: GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Display( void )
-{
- GLubyte *buffer = malloc(Width * Height * 4);
- GLenum status;
-
- CheckError(__LINE__);
-
- /* draw to user framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
-
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- printf("fbotest3: Error: Framebuffer is incomplete!!!\n");
- }
-
- CheckError(__LINE__);
-
- glClearColor(0.5, 0.5, 1.0, 0.0);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glPushMatrix();
- glRotatef(30.0, 1, 0, 0);
- glRotatef(Rotation, 0, 1, 0);
- glutSolidTeapot(2.0);
- glPopMatrix();
-
- /* read from user framebuffer */
- glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- /* draw to window */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
- glWindowPos2iARB(0, 0);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
-
- free(buffer);
- glutSwapBuffers();
- CheckError(__LINE__);
-}
-
-
-static void
-Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
-
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, 5.0, 25.0 );
-
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -15.0 );
-
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, ColorRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, width, height);
-
- Width = width;
- Height = height;
-}
-
-
-static void
-CleanUp(void)
-{
- glDeleteFramebuffersEXT(1, &MyFB);
- glDeleteRenderbuffersEXT(1, &ColorRb);
- glDeleteRenderbuffersEXT(1, &DepthRb);
- glDeleteTextures(1, &Tex);
- assert(!glIsFramebufferEXT(MyFB));
- assert(!glIsRenderbufferEXT(ColorRb));
- assert(!glIsRenderbufferEXT(DepthRb));
- glutDestroyWindow(Win);
- exit(0);
-}
-
-
-static void
-Idle(void)
-{
- Rotation = glutGet(GLUT_ELAPSED_TIME) * 0.1;
- glutPostRedisplay();
-}
-
-
-static void
-Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Animate = !Animate;
- if (Animate)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 27:
- CleanUp();
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init( void )
-{
- if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
- printf("fbotest3: GL_EXT_framebuffer_object not found!\n");
- exit(0);
- }
- printf("fbotest3: GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- /* create initial tex obj as an RGBA texture */
- glGenTextures(1, &Tex);
- glBindTexture(GL_TEXTURE_2D, Tex);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glEnable(GL_TEXTURE_2D);
-
- /* draw something to make sure the texture is used */
- glBegin(GL_POINTS);
- glVertex2f(0, 0);
- glEnd();
-
- /* done w/ texturing */
- glDisable(GL_TEXTURE_2D);
-
- /* Create my Framebuffer Object */
- glGenFramebuffersEXT(1, &MyFB);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- assert(glIsFramebufferEXT(MyFB));
-
- /* Setup color renderbuffer */
- glGenRenderbuffersEXT(1, &ColorRb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, ColorRb);
- assert(glIsRenderbufferEXT(ColorRb));
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_RENDERBUFFER_EXT, ColorRb);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
-
- /* Setup depth renderbuffer (a texture) */
- glGenRenderbuffersEXT(1, &DepthRb);
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRb);
- assert(glIsRenderbufferEXT(DepthRb));
- /* replace RGBA texture with Z texture */
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, Width, Height, 0,
- GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_TEXTURE_2D, Tex, 0);
-
- CheckError(__LINE__);
-
- /* restore to default */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- CheckError(__LINE__);
-}
-
-
-int
-main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- if (Animate)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fillrate.c b/progs/tests/fillrate.c
deleted file mode 100644
index 1e58df281e..0000000000
--- a/progs/tests/fillrate.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- * Measure fill rates for basic shading/texturing modes.
- *
- * Brian Paul
- * 1 April 2008
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "readtex.h"
-
-#define TEXTURE_1_FILE "../images/tile.rgb"
-#define TEXTURE_2_FILE "../images/reflect.rgb"
-
-static int Win;
-static int Width = 1010, Height = 1010;
-static GLuint Textures[2];
-
-
-/**
- * Draw quad 10 pixels shorter, narrower than window size.
- */
-static void
-DrawQuad(void)
-{
- glBegin(GL_POLYGON);
-
- glColor3f(1.0, 0.5, 0.5);
- glMultiTexCoord2f(GL_TEXTURE0, 0, 0);
- glMultiTexCoord2f(GL_TEXTURE1, 0, 0);
- glVertex2f(5, 5);
-
- glColor3f(0.5, 1.0, 0.5);
- glMultiTexCoord2f(GL_TEXTURE0, 1, 0);
- glMultiTexCoord2f(GL_TEXTURE1, 1, 0);
- glVertex2f(Width - 5, 5);
-
- glColor3f(0.5, 0.5, 1.0);
- glMultiTexCoord2f(GL_TEXTURE0, 1, 1);
- glMultiTexCoord2f(GL_TEXTURE1, 1, 1);
- glVertex2f(Width - 5, Height - 5);
-
- glColor3f(1.0, 0.5, 1.0);
- glMultiTexCoord2f(GL_TEXTURE0, 0, 1);
- glMultiTexCoord2f(GL_TEXTURE1, 0, 1);
- glVertex2f(5, Height - 5);
-
- glEnd();
-}
-
-
-/**
- * Compute rate for drawing large quad with given shading/texture state.
- */
-static void
-RunTest(GLenum shading, GLuint numTextures, GLenum texFilter)
-{
- const GLdouble minPeriod = 2.0;
- GLdouble t0, t1;
- GLdouble pixels, rate;
- GLint i, iters;
-
- glActiveTexture(GL_TEXTURE0);
- if (numTextures > 0) {
- glBindTexture(GL_TEXTURE_2D, Textures[0]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, texFilter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, texFilter);
- glEnable(GL_TEXTURE_2D);
- }
- else {
- glDisable(GL_TEXTURE_2D);
- }
-
- glActiveTexture(GL_TEXTURE1);
- if (numTextures > 1) {
- glBindTexture(GL_TEXTURE_2D, Textures[1]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, texFilter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, texFilter);
- glEnable(GL_TEXTURE_2D);
- }
- else {
- glDisable(GL_TEXTURE_2D);
- }
-
- glShadeModel(shading);
-
-
- glFinish();
-
- iters = 1;
- do {
- iters *= 4;
- t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- for (i = 0; i < iters; i++) {
- DrawQuad();
- }
- glFinish();
- t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- } while (t1 - t0 < minPeriod);
-
- glutSwapBuffers();
-
- pixels = (double) iters * (Width - 10) * (Height - 10);
- rate = pixels / (t1 - t0);
- rate /= 1000000.0; /* megapixels/second */
-
- printf("%s ", shading == GL_FLAT ? "GL_FLAT" : "GL_SMOOTH");
- printf("Textures=%u ", numTextures);
- printf("Filter=%s: ", texFilter == GL_LINEAR ? "GL_LINEAR" : "GL_NEAREST");
- printf("%g MPixels/sec\n", rate);
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- RunTest(GL_FLAT, 0, GL_NEAREST);
- RunTest(GL_SMOOTH, 0, GL_NEAREST);
- RunTest(GL_SMOOTH, 1, GL_NEAREST);
- RunTest(GL_SMOOTH, 1, GL_LINEAR);
- RunTest(GL_SMOOTH, 2, GL_NEAREST);
- RunTest(GL_SMOOTH, 2, GL_LINEAR);
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- Width = width;
- Height = height;
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- glGenTextures(2, Textures);
-
- glBindTexture(GL_TEXTURE_2D, Textures[0]);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- if (!LoadRGBMipmaps(TEXTURE_1_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
-
- glBindTexture(GL_TEXTURE_2D, Textures[1]);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- if (!LoadRGBMipmaps(TEXTURE_2_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
-
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/floattex.c b/progs/tests/floattex.c
deleted file mode 100644
index 39302ce3af..0000000000
--- a/progs/tests/floattex.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Test floating point textures.
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "extfuncs.h"
-#include "readtex.h"
-#include "shaderutil.h"
-
-
-static const char *TexFile = "../images/arch.rgb";
-
-static const char *FragShaderText =
- "uniform sampler2D tex1; \n"
- "void main() \n"
- "{ \n"
- " vec4 t = texture2D(tex1, gl_TexCoord[0].xy); \n"
- " // convert from [-255,0] to [0,1] \n"
- " gl_FragColor = t * (-1.0 / 255.0); \n"
- "} \n";
-
-static const char *VertShaderText =
- "void main() \n"
- "{ \n"
- " gl_TexCoord[0] = gl_MultiTexCoord0; \n"
- " gl_Position = ftransform(); \n"
- "} \n";
-
-static struct uniform_info Uniforms[] = {
- { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 },
- END_OF_UNIFORMS
-};
-
-
-static GLuint Program;
-
-
-
-static GLboolean
-CheckError( int line )
-{
- GLenum error = glGetError();
- if (error) {
- char *err = (char *) gluErrorString( error );
- fprintf( stderr, "GL Error: %s at line %d\n", err, line );
- return GL_TRUE;
- }
- return GL_FALSE;
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
-
- glBegin(GL_POLYGON);
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
-
- 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.0, 0.0, -8.0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-InitTexture(void)
-{
- GLenum filter = GL_LINEAR;
- GLint imgWidth, imgHeight;
- GLenum imgFormat;
- GLubyte *image = NULL;
- GLfloat *ftex;
- GLint i, t;
-
- image = LoadRGBImage(TexFile, &imgWidth, &imgHeight, &imgFormat);
- if (!image) {
- printf("Couldn't read %s\n", TexFile);
- exit(0);
- }
-
- assert(imgFormat == GL_RGB);
-
- ftex = (float *) malloc(imgWidth * imgHeight * 4 * sizeof(float));
- if (!ftex) {
- printf("out of memory\n");
- exit(0);
- }
-
- /* convert ubytes to floats, negated */
- for (i = 0; i < imgWidth * imgHeight * 3; i++) {
- ftex[i] = -1.0f * image[i];
- }
-
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, 42);
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F_ARB,
- imgWidth, imgHeight, 0,
- GL_RGB, GL_FLOAT, ftex);
-
-
- CheckError(__LINE__);
-
- /* sanity checks */
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_RED_TYPE_ARB, &t);
- assert(t == GL_FLOAT);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_TYPE_ARB, &t);
- assert(t == GL_FLOAT);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_TYPE_ARB, &t);
- assert(t == GL_FLOAT);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_ALPHA_TYPE_ARB, &t);
- assert(t == GL_FLOAT);
-
- free(image);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
-
- if (1) {
- /* read back the texture and make sure values are correct */
- GLfloat *tex2 = (GLfloat *)
- malloc(imgWidth * imgHeight * 4 * sizeof(GLfloat));
- glGetTexImage(GL_TEXTURE_2D, 0, imgFormat, GL_FLOAT, tex2);
- CheckError(__LINE__);
- for (i = 0; i < imgWidth * imgHeight * 4; i++) {
- if (ftex[i] != tex2[i]) {
- printf("tex[%d] %g != tex2[%d] %g\n",
- i, ftex[i], i, tex2[i]);
- }
- }
- }
-
- free(ftex);
-}
-
-
-static GLuint
-CreateProgram(void)
-{
- GLuint fragShader, vertShader, program;
-
- vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
- fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
- assert(vertShader);
- program = LinkShaders(vertShader, fragShader);
-
- assert(program);
-
- glUseProgram_func(program);
-
- SetUniformValues(program, Uniforms);
-
- return program;
-}
-
-
-static void
-Init(void)
-{
- glClearColor(0.25, 0.25, 0.25, 0.0);
-
- GetExtensionFuncs();
-
- if (!ShadersSupported()) {
- printf("Sorry, this test requires GLSL\n");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_MESAX_texture_float") &&
- !glutExtensionSupported("GL_ARB_texture_float")) {
- printf("Sorry, this test requires GL_MESAX/ARB_texture_float\n");
- exit(1);
- }
-
- InitTexture();
-
- Program = CreateProgram();
- glUseProgram_func(Program);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(400, 400);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fog.c b/progs/tests/fog.c
deleted file mode 100644
index b6cea8c080..0000000000
--- a/progs/tests/fog.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright 2005 Eric Anholt
- * 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 (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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- * Eric Anholt <anholt@FreeBSD.org>
- * Brian Paul (fogcoord.c used as a skeleton)
- */
-
-/*
- * Test to exercise fog modes and for comparison with GL_EXT_fog_coord.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 600;
-static int Height = 600;
-static GLfloat Near = 0.0, Far = 1.0;
-GLboolean has_fogcoord;
-
-static void drawString( const char *string )
-{
- glRasterPos2f(0, .5);
- while ( *string ) {
- glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_10, *string );
- string++;
- }
-}
-
-static void Display( void )
-{
- GLint i, depthi;
- GLfloat fogcolor[4] = {1, 1, 1, 1};
-
- glEnable(GL_FOG);
- glFogfv(GL_FOG_COLOR, fogcolor);
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- for (i = 0; i < 6; i++) {
- if (i >= 3 && !has_fogcoord)
- break;
-
- glPushMatrix();
- for (depthi = 0; depthi < 5; depthi++) {
- GLfloat depth = Near + (Far - Near) * depthi / 4;
-
- switch (i % 3) {
- case 0:
- glFogi(GL_FOG_MODE, GL_LINEAR);
- glFogf(GL_FOG_START, Near);
- glFogf(GL_FOG_END, Far);
- break;
- case 1:
- glFogi(GL_FOG_MODE, GL_EXP);
- glFogf(GL_FOG_DENSITY, 2);
- break;
- case 2:
- glFogi(GL_FOG_MODE, GL_EXP2);
- glFogf(GL_FOG_DENSITY, 2);
- break;
- }
-
- glColor4f(0, 0, 0, 0);
- if (i < 3) {
- if (has_fogcoord)
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
-
- glBegin(GL_POLYGON);
- glVertex3f(0, 0, depth);
- glVertex3f(1, 0, depth);
- glVertex3f(1, 1, depth);
- glVertex3f(0, 1, depth);
- glEnd();
- } else {
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
- glFogCoordfEXT(depth);
-
- glBegin(GL_POLYGON);
- glVertex3f(0, 0, (Near + Far) / 2);
- glVertex3f(1, 0, (Near + Far) / 2);
- glVertex3f(1, 1, (Near + Far) / 2);
- glVertex3f(0, 1, (Near + Far) / 2);
- glEnd();
- }
- glTranslatef(1.5, 0, 0);
- }
-
- glTranslatef(.1, 0, 0);
- switch (i) {
- case 0:
- drawString("GL_LINEAR");
- break;
- case 1:
- drawString("GL_EXP");
- break;
- case 2:
- drawString("GL_EXP2");
- break;
- case 3:
- drawString("GL_FOGCOORD GL_LINEAR");
- break;
- case 4:
- drawString("GL_FOGCOORD GL_EXP");
- break;
- case 5:
- drawString("GL_FOGCOORD GL_EXP2");
- break;
- }
-
- glPopMatrix();
- glTranslatef(0, 1.5, 0);
- }
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( 0, 11, 9, 0, -Near, -Far );
-
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef(.25, .25, 0);
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- /* setup lighting, etc */
- has_fogcoord = glutExtensionSupported("GL_EXT_fog_coord");
- if (!has_fogcoord) {
- printf("Some output of this program requires GL_EXT_fog_coord\n");
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fogcoord.c b/progs/tests/fogcoord.c
deleted file mode 100644
index 7822d33b09..0000000000
--- a/progs/tests/fogcoord.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Exercise GL_EXT_fog_coord
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 600;
-static int Height = 200;
-static GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- GLfloat t;
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- for (t = 0.0; t <= 1.0; t += 0.25) {
- GLfloat f = Near + t * (Far - Near);
- printf("glFogCoord(%4.1f)\n", f);
- glFogCoordfEXT(f);
-
- glPushMatrix();
- glTranslatef(t * 10.0 - 5.0, 0, 0);
- glBegin(GL_POLYGON);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
- glPopMatrix();
- }
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- /* setup lighting, etc */
- if (!glutExtensionSupported("GL_EXT_fog_coord")) {
- printf("Sorry, this program requires GL_EXT_fog_coord\n");
- exit(1);
- }
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
- glFogi(GL_FOG_MODE, GL_LINEAR);
- glFogf(GL_FOG_START, Near);
- glFogf(GL_FOG_END, Far);
- glEnable(GL_FOG);
- printf("Squares should be colored from white -> gray -> black.\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fptest1.c b/progs/tests/fptest1.c
deleted file mode 100644
index 1f30d5733e..0000000000
--- a/progs/tests/fptest1.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/* Test GL_NV_fragment_program */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
-
- glColor4f(0, 0.5, 0, 1);
- glColor4f(0, 1, 0, 1);
- glBegin(GL_POLYGON);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 0, 1);
- glEnd();
-
- 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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
-#if 0
- static const char *prog0 =
- "!!FP1.0\n"
- "MUL o[COLR], R0, f[WPOS]; \n"
- "ADD o[COLH], H3, f[TEX0]; \n"
- "ADD_SAT o[COLH], H3, f[TEX0]; \n"
- "ADDX o[COLH], H3, f[TEX0]; \n"
- "ADDHC o[COLH], H3, f[TEX0]; \n"
- "ADDXC o[COLH], H3, f[TEX0]; \n"
- "ADDXC_SAT o[COLH], H30, f[TEX0]; \n"
- "MUL o[COLR].xy, R0.wzyx, f[WPOS]; \n"
- "MUL o[COLR], H0, f[WPOS]; \n"
- "MUL o[COLR], -H0, f[WPOS]; \n"
- "MOV RC, H1; \n"
- "MOV HC, H2; \n"
- "END \n"
- ;
-#endif
-
- /* masked updates, defines, declarations */
- static const char *prog1 =
- "!!FP1.0\n"
- "DEFINE foo = {1, 2, 3, 4}; \n"
- "DEFINE foo2 = 5; \n"
- "DECLARE foo3 = {5, 6, 7, 8}; \n"
- "DECLARE bar = 3; \n"
- "DECLARE bar2; \n"
- "DECLARE bar3 = bar; \n"
- "#DECLARE bar4 = { a, b, c, d }; \n"
- "MOV o[COLR].xy, R0; \n"
- "MOV o[COLR] (NE), R0; \n"
- "MOV o[COLR] (NE.wzyx), R0; \n"
- "MOV o[COLR].xy (NE.wzyx), R0; \n"
- "MOV RC.x (EQ), R1.x; \n"
- "KIL NE; \n"
- "KIL EQ.xyxy; \n"
- "END \n"
- ;
-
- /* texture instructions */
- static const char *prog2 =
- "!!FP1.0\n"
- "TEX R0, f[TEX0], TEX0, 2D; \n"
- "TEX R1, f[TEX1], TEX1, CUBE; \n"
- "TEX R2, f[TEX2], TEX2, 3D; \n"
- "TXP R3, f[TEX3], TEX3, RECT; \n"
- "TXD R3, R2, R1, f[TEX3], TEX3, RECT; \n"
- "MUL o[COLR], R0, f[COL0]; \n"
- "END \n"
- ;
-
- /* test negation, absolute value */
- static const char *prog3 =
- "!!FP1.0\n"
- "MOV R0, -R1; \n"
- "MOV R0, +R1; \n"
- "MOV R0, |-R1|; \n"
- "MOV R0, |+R1|; \n"
- "MOV R0, -|R1|; \n"
- "MOV R0, +|R1|; \n"
- "MOV R0, -|-R1|; \n"
- "MOV R0, -|+R1|; \n"
- "MOV o[COLR], R0; \n"
- "END \n"
- ;
-
- /* literal constant sources */
- static const char *prog4 =
- "!!FP1.0\n"
- "DEFINE Pi = 3.14159; \n"
- "MOV R0, {1, -2, +3, 4}; \n"
- "MOV R0, 5; \n"
- "MOV R0, -5; \n"
- "MOV R0, +5; \n"
- "MOV R0, Pi; \n"
- "MOV o[COLR], R0; \n"
- "END \n"
- ;
-
- /* change the fragment color in a simple way */
- static const char *prog10 =
- "!!FP1.0\n"
- "DEFINE blue = {0, 0, 1, 0};\n"
- "DECLARE color; \n"
- "MOV R0, f[COL0]; \n"
- "#ADD o[COLR], R0, f[COL0]; \n"
- "#ADD o[COLR], blue, f[COL0]; \n"
- "#ADD o[COLR], {1, 0, 0, 0}, f[COL0]; \n"
- "ADD o[COLR], color, f[COL0]; \n"
- "END \n"
- ;
-
- GLuint progs[20];
-
- if (!glutExtensionSupported ("GL_NV_fragment_program")) {
- printf("Sorry, this program requires GL_NV_fragment_program\n");
- exit(1);
- }
-
- glGenProgramsNV(20, progs);
- assert(progs[0]);
- assert(progs[1]);
- assert(progs[0] != progs[1]);
-
-#if 0
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[0],
- strlen(prog0),
- (const GLubyte *) prog0);
- assert(glIsProgramNV(progs[0]));
-#endif
-
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[1],
- strlen(prog1),
- (const GLubyte *) prog1);
- assert(glIsProgramNV(progs[1]));
-
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[2],
- strlen(prog2),
- (const GLubyte *) prog2);
- assert(glIsProgramNV(progs[2]));
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[2]);
-
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[3],
- strlen(prog3),
- (const GLubyte *) prog3);
- assert(glIsProgramNV(progs[3]));
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[3]);
-
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[4],
- strlen(prog4),
- (const GLubyte *) prog4);
- assert(glIsProgramNV(progs[4]));
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[4]);
-
-
- /* a real program */
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[10],
- strlen(prog10),
- (const GLubyte *) prog10);
- assert(glIsProgramNV(progs[10]));
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, progs[10]);
-
- glProgramNamedParameter4fNV(progs[10],
- strlen("color"), (const GLubyte *) "color",
- 1, 0, 0, 1);
-
- glEnable(GL_FRAGMENT_PROGRAM_NV);
- glEnable(GL_ALPHA_TEST);
- glAlphaFunc(GL_ALWAYS, 0.0);
-
- printf("glGetError = %d\n", (int) glGetError());
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/fptexture.c b/progs/tests/fptexture.c
deleted file mode 100644
index 332e07182d..0000000000
--- a/progs/tests/fptexture.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* GL_NV_fragment_program texture test */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "../util/readtex.c"
-
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLfloat Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
-
- glBegin(GL_POLYGON);
- glColor4f(1.0, 1.0, 1.0, 1); glTexCoord2f(0, 0); glVertex2f(-1, -1);
- glColor4f(0.2, 0.2, 1.0, 1); glTexCoord2f(1, 0); glVertex2f( 1, -1);
- glColor4f(0.2, 1.0, 0.2, 1); glTexCoord2f(1, 1); glVertex2f( 1, 1);
- glColor4f(1.0, 0.2, 0.2, 1); glTexCoord2f(0, 1); glVertex2f(-1, 1);
- glEnd();
-
- 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.0, 0.0, -8.0 );
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const char *modulate2D =
- "!!FP1.0\n"
- "TEX R0, f[TEX0], TEX0, 2D; \n"
- "MUL o[COLR], R0, f[COL0]; \n"
- "END"
- ;
- GLuint modulateProg;
- GLuint Texture;
-
- if (!glutExtensionSupported("GL_NV_fragment_program")) {
- printf("Error: GL_NV_fragment_program not supported!\n");
- exit(1);
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- /* Setup the fragment program */
- glGenProgramsNV(1, &modulateProg);
- glLoadProgramNV(GL_FRAGMENT_PROGRAM_NV, modulateProg,
- strlen(modulate2D),
- (const GLubyte *) modulate2D);
- printf("glGetError = 0x%x\n", (int) glGetError());
- printf("glError(GL_PROGRAM_ERROR_STRING_NV) = %s\n",
- (char *) glGetString(GL_PROGRAM_ERROR_STRING_NV));
- assert(glIsProgramNV(modulateProg));
-
- glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, modulateProg);
- glEnable(GL_FRAGMENT_PROGRAM_NV);
-
- /* Load texture */
- glGenTextures(1, &Texture);
- glBindTexture(GL_TEXTURE_2D, Texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image file %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* XXX this enable shouldn't really be needed!!! */
- glEnable(GL_TEXTURE_2D);
-
- glClearColor(.3, .3, .3, 0);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/getprocaddress.c b/progs/tests/getprocaddress.c
deleted file mode 100644
index f7903d2bf8..0000000000
--- a/progs/tests/getprocaddress.c
+++ /dev/null
@@ -1,3741 +0,0 @@
-/*
- * Copyright (C) 1999-2002 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.
- */
-
-/*
- * Test that glXGetProcAddress works.
- */
-
-#define GLX_GLXEXT_PROTOTYPES
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <GL/gl.h>
-#include <GL/glx.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-
-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 %lu, actual %d\n",
- __FUNCTION__, (unsigned long) 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 = NULL;
- const char *extensions = (const char *) glGetString(GL_EXTENSIONS);
-
- /* 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);
- if (!strstr("GL_APPLE_flush_buffer_range", extensions)) {
- BufferParameteriAPPLE = NULL;
- }
-
- /* 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, 0, 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 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);*/
- return GL_TRUE;
-}
-static GLboolean
-test_CompressedTexSubImage3DARB(generic_func func)
-{
- (void) func;
- /*return exercise_CompressedTextures(GL_TEXTURE_3D);*/
- return GL_TRUE;
-}
-static GLboolean
-test_GetCompressedTexImageARB(generic_func func)
-{
- (void) func;
- /*return exercise_CompressedTextures(GL_TEXTURE_3D);*/
- return GL_TRUE;
-}
-
-/* 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)
-{
- PFNGLACTIVETEXTUREARBPROC activeTexture = (PFNGLACTIVETEXTUREARBPROC) func;
- GLint t;
- GLboolean pass;
- (*activeTexture)(GL_TEXTURE1_ARB);
- glGetIntegerv(GL_ACTIVE_TEXTURE_ARB, &t);
- pass = (t == GL_TEXTURE1_ARB);
- (*activeTexture)(GL_TEXTURE0_ARB); /* restore default */
- return pass;
-}
-
-
-static GLboolean
-test_SecondaryColor3fEXT(generic_func func)
-{
- PFNGLSECONDARYCOLOR3FEXTPROC secColor3f = (PFNGLSECONDARYCOLOR3FEXTPROC) func;
- GLfloat color[4];
- GLboolean pass;
- (*secColor3f)(1.0, 1.0, 0.0);
- glGetFloatv(GL_CURRENT_SECONDARY_COLOR_EXT, color);
- pass = (color[0] == 1.0 && color[1] == 1.0 && color[2] == 0.0);
- (*secColor3f)(0.0, 0.0, 0.0); /* restore default */
- return pass;
-}
-
-
-static GLboolean
-test_ActiveStencilFaceEXT(generic_func func)
-{
- PFNGLACTIVESTENCILFACEEXTPROC activeFace = (PFNGLACTIVESTENCILFACEEXTPROC) func;
- GLint face;
- GLboolean pass;
- (*activeFace)(GL_BACK);
- glGetIntegerv(GL_ACTIVE_STENCIL_FACE_EXT, &face);
- pass = (face == GL_BACK);
- (*activeFace)(GL_FRONT); /* restore default */
- return pass;
-}
-
-
-static GLboolean
-test_VertexAttrib1fvARB(generic_func func)
-{
- PFNGLVERTEXATTRIB1FVARBPROC vertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) func;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLfloat v[1] = {25.0};
- const GLfloat def[1] = {0};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib1fvARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (res[0] == 25.0 && res[1] == 0.0 && res[2] == 0.0 && res[3] == 1.0);
- (*vertexAttrib1fvARB)(6, def);
- return pass;
-}
-
-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;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLubyte v[4] = {255, 0, 255, 0};
- const GLubyte def[4] = {0, 0, 0, 255};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4NubvARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (res[0] == 1.0 && res[1] == 0.0 && res[2] == 1.0 && res[3] == 0.0);
- (*vertexAttrib4NubvARB)(6, def);
- return pass;
-}
-
-
-static GLboolean
-test_VertexAttrib4NuivARB(generic_func func)
-{
- PFNGLVERTEXATTRIB4NUIVARBPROC vertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) func;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLuint v[4] = {0xffffffff, 0, 0xffffffff, 0};
- const GLuint def[4] = {0, 0, 0, 0xffffffff};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4NuivARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (EQUAL(res[0], 1.0) && EQUAL(res[1], 0.0) && EQUAL(res[2], 1.0) && EQUAL(res[3], 0.0));
- (*vertexAttrib4NuivARB)(6, def);
- return pass;
-}
-
-
-static GLboolean
-test_VertexAttrib4ivARB(generic_func func)
-{
- PFNGLVERTEXATTRIB4IVARBPROC vertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) func;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLint v[4] = {1, 2, -3, 4};
- const GLint def[4] = {0, 0, 0, 1};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4ivARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (EQUAL(res[0], 1.0) && EQUAL(res[1], 2.0) && EQUAL(res[2], -3.0) && EQUAL(res[3], 4.0));
- (*vertexAttrib4ivARB)(6, def);
- return pass;
-}
-
-
-static GLboolean
-test_VertexAttrib4NsvARB(generic_func func)
-{
- PFNGLVERTEXATTRIB4NSVARBPROC vertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) func;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLshort v[4] = {0, 32767, 32767, 0};
- const GLshort def[4] = {0, 0, 0, 32767};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4NsvARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (EQUAL(res[0], 0.0) && EQUAL(res[1], 1.0) && EQUAL(res[2], 1.0) && EQUAL(res[3], 0.0));
- (*vertexAttrib4NsvARB)(6, def);
- return pass;
-}
-
-static GLboolean
-test_VertexAttrib4NusvARB(generic_func func)
-{
- PFNGLVERTEXATTRIB4NUSVARBPROC vertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) func;
- PFNGLGETVERTEXATTRIBFVARBPROC getVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glXGetProcAddressARB((const GLubyte *) "glGetVertexAttribfvARB");
-
- const GLushort v[4] = {0xffff, 0, 0xffff, 0};
- const GLushort def[4] = {0, 0, 0, 0xffff};
- GLfloat res[4];
- GLboolean pass;
- (*vertexAttrib4NusvARB)(6, v);
- (*getVertexAttribfvARB)(6, GL_CURRENT_VERTEX_ATTRIB_ARB, res);
- pass = (EQUAL(res[0], 1.0) && EQUAL(res[1], 0.0) && EQUAL(res[2], 1.0) && EQUAL(res[3], 0.0));
- (*vertexAttrib4NusvARB)(6, def);
- 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_VertexAttrib1fNV(generic_func func)
-{
- PFNGLVERTEXATTRIB1FNVPROC vertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC) 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];
- (*vertexAttrib1fNV)(6, v[0]);
- (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- (*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 GLfloat v[4] = {2.5, 4.25, 0.0, 1.0};
- const GLfloat def[4] = {0, 0, 0, 1};
- GLfloat res[4];
- (*vertexAttrib2fNV)(6, v[0], v[1]);
- (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- (*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)
-{
- PFNGLVERTEXATTRIB3FNVPROC vertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC) 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];
- (*vertexAttrib3fNV)(6, v[0], v[1], v[2]);
- (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- (*vertexAttrib3fNV)(6, def[0], def[1], def[2]);
- 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 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];
- (*vertexAttribs2fvNV)(6, 1, v);
- (*getVertexAttribfvNV)(6, GL_CURRENT_ATTRIB_NV, res);
- (*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)
-{
-#ifdef GL_ATI_separate_stencil
- PFNGLSTENCILFUNCSEPARATEATIPROC stencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC) func;
- GLint frontFunc, backFunc;
- GLint frontRef, backRef;
- GLint frontMask, backMask;
- (*stencilFuncSeparateATI)(GL_LESS, GL_GREATER, 2, 0xa);
- glGetIntegerv(GL_STENCIL_FUNC, &frontFunc);
- glGetIntegerv(GL_STENCIL_BACK_FUNC, &backFunc);
- glGetIntegerv(GL_STENCIL_REF, &frontRef);
- glGetIntegerv(GL_STENCIL_BACK_REF, &backRef);
- glGetIntegerv(GL_STENCIL_VALUE_MASK, &frontMask);
- glGetIntegerv(GL_STENCIL_BACK_VALUE_MASK, &backMask);
- if (frontFunc != GL_LESS ||
- backFunc != GL_GREATER ||
- frontRef != 2 ||
- backRef != 2 ||
- frontMask != 0xa ||
- backMask != 0xa)
- return GL_FALSE;
-#endif
- return GL_TRUE;
-}
-
-static GLboolean
-test_StencilFuncSeparate(generic_func func)
-{
-#ifdef GL_VERSION_2_0
- PFNGLSTENCILFUNCSEPARATEPROC stencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) func;
- GLint frontFunc, backFunc;
- GLint frontRef, backRef;
- GLint frontMask, backMask;
- (*stencilFuncSeparate)(GL_BACK, GL_GREATER, 2, 0xa);
- glGetIntegerv(GL_STENCIL_FUNC, &frontFunc);
- glGetIntegerv(GL_STENCIL_BACK_FUNC, &backFunc);
- glGetIntegerv(GL_STENCIL_REF, &frontRef);
- glGetIntegerv(GL_STENCIL_BACK_REF, &backRef);
- glGetIntegerv(GL_STENCIL_VALUE_MASK, &frontMask);
- glGetIntegerv(GL_STENCIL_BACK_VALUE_MASK, &backMask);
- if (frontFunc != GL_ALWAYS ||
- backFunc != GL_GREATER ||
- frontRef != 0 ||
- backRef != 2 ||
- frontMask == 0xa || /* might be 0xff or ~0 */
- backMask != 0xa)
- return GL_FALSE;
-#endif
- return GL_TRUE;
-}
-
-static GLboolean
-test_StencilOpSeparate(generic_func func)
-{
-#ifdef GL_VERSION_2_0
- PFNGLSTENCILOPSEPARATEPROC stencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) func;
- GLint frontFail, backFail;
- GLint frontZFail, backZFail;
- GLint frontZPass, backZPass;
- (*stencilOpSeparate)(GL_BACK, GL_INCR, GL_DECR, GL_INVERT);
- glGetIntegerv(GL_STENCIL_FAIL, &frontFail);
- glGetIntegerv(GL_STENCIL_BACK_FAIL, &backFail);
- glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL, &frontZFail);
- glGetIntegerv(GL_STENCIL_BACK_PASS_DEPTH_FAIL, &backZFail);
- glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS, &frontZPass);
- glGetIntegerv(GL_STENCIL_BACK_PASS_DEPTH_PASS, &backZPass);
- if (frontFail != GL_KEEP ||
- backFail != GL_INCR ||
- frontZFail != GL_KEEP ||
- backZFail != GL_DECR ||
- frontZPass != GL_KEEP ||
- backZPass != GL_INVERT)
- return GL_FALSE;
-#endif
- return GL_TRUE;
-}
-
-static GLboolean
-test_StencilMaskSeparate(generic_func func)
-{
-#ifdef GL_VERSION_2_0
- PFNGLSTENCILMASKSEPARATEPROC stencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) func;
- GLint frontMask, backMask;
- (*stencilMaskSeparate)(GL_BACK, 0x1b);
- glGetIntegerv(GL_STENCIL_WRITEMASK, &frontMask);
- glGetIntegerv(GL_STENCIL_BACK_WRITEMASK, &backMask);
- if (frontMask == 0x1b ||
- backMask != 0x1b)
- return GL_FALSE;
-#endif
- return GL_TRUE;
-}
-
-
-/*
- * The following file is auto-generated with Python.
- */
-#include "getproclist.h"
-
-
-
-static int
-extension_supported(const char *haystack, const char *needle)
-{
- const char *p = strstr(haystack, needle);
- if (p) {
- /* found string, make sure next char is space or zero */
- const int len = strlen(needle);
- if (p[len] == ' ' || p[len] == 0)
- return 1;
- else
- return 0;
- }
- else
- return 0;
-}
-
-
-/* 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, untested = 0;
- int totalFail = 0, totalPass = 0, totalUntested = 0, totalUnsupported = 0;
- int doTests = 0;
- 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] == '-') {
- /* 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' &&
- version[1] == '.' &&
- version[2] >= entry->name[3])
- doTests = 1;
- else
- doTests = 0;
- }
- else if (entry->name[1] == '2') {
- if (version[0] == '2' &&
- version[1] == '.' &&
- version[2] >= entry->name[3])
- doTests = 1;
- else
- doTests = 0;
- }
- else {
- /* 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);
-
- /* 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) {
- GLboolean b;
- printf(" Validating %s:", entry->name);
- b = (*entry->test)(funcPtr);
- if (b) {
- printf(" Pass\n");
- passes++;
- totalPass++;
- }
- else {
- printf(" FAIL!!!\n");
- failures++;
- totalFail++;
- }
- }
- else {
- 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) {
- printf(" %d failed.\n", failures);
- }
- if (passes > 0) {
- printf(" %d passed.\n", passes);
- }
- if (untested > 0) {
- printf(" %d untested.\n", untested);
- }
- }
- }
-
- printf("-----------------------------\n");
- 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 int
-print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
-{
- Window win;
- int attribSingle[] = {
- GLX_RGBA,
- GLX_RED_SIZE, 1,
- GLX_GREEN_SIZE, 1,
- GLX_BLUE_SIZE, 1,
- GLX_STENCIL_SIZE, 1,
- None };
- int attribDouble[] = {
- GLX_RGBA,
- GLX_RED_SIZE, 1,
- GLX_GREEN_SIZE, 1,
- GLX_BLUE_SIZE, 1,
- GLX_STENCIL_SIZE, 1,
- GLX_DOUBLEBUFFER,
- None };
-
- XSetWindowAttributes attr;
- unsigned long mask;
- Window root;
- GLXContext ctx;
- XVisualInfo *visinfo;
- int width = 100, height = 100;
- int failures;
-
- root = RootWindow(dpy, scrnum);
-
- visinfo = glXChooseVisual(dpy, scrnum, attribSingle);
- if (!visinfo) {
- visinfo = glXChooseVisual(dpy, scrnum, attribDouble);
- if (!visinfo) {
- fprintf(stderr, "Error: couldn't find RGB GLX visual\n");
- return ERROR_NO_VISUAL;
- }
- }
-
- attr.background_pixel = 0;
- attr.border_pixel = 0;
- attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);
- attr.event_mask = StructureNotifyMask | ExposureMask;
- mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
- win = XCreateWindow(dpy, root, 0, 0, width, height,
- 0, visinfo->depth, InputOutput,
- visinfo->visual, mask, &attr);
-
- ctx = glXCreateContext( dpy, visinfo, NULL, allowDirect );
- if (!ctx) {
- fprintf(stderr, "Error: glXCreateContext failed\n");
- XDestroyWindow(dpy, win);
- return ERROR_NO_CONTEXT;
- }
-
- 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) {
- fprintf(stderr, "Error: unable to open display %s\n", displayName);
- return -1;
- }
-
- returnCode = print_screen_info(dpy, 0, GL_TRUE);
-
- XCloseDisplay(dpy);
-
- return returnCode;
-}
diff --git a/progs/tests/getprocaddress.py b/progs/tests/getprocaddress.py
deleted file mode 100644
index c421f90cb6..0000000000
--- a/progs/tests/getprocaddress.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python
-
-
-# Helper for the getprocaddress.c test.
-
-glapi_xml_path = "../../src/mapi/glapi/gen/"
-
-import sys, getopt, re
-sys.path.append(glapi_xml_path)
-import gl_XML
-import license
-
-
-def FindTestFunctions():
- """Scan getprocaddress.c for lines that start with "test_" to find
- extension function tests. Return a list of names found."""
- functions = []
- f = open("getprocaddress.c")
- if not f:
- return functions
- for line in f.readlines():
- v = re.search("^test_([a-zA-Z0-9]+)", line)
- if v:
- func = v.group(1)
- functions.append(func)
- f.close
- return functions
-
-
-class PrintExports(gl_XML.gl_print_base):
- def __init__(self):
- gl_XML.gl_print_base.__init__(self)
-
- self.name = "getprocaddress.py (from Mesa)"
- self.license = license.bsd_license_template % ( \
-"""Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
-(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
-
- self.tests = FindTestFunctions()
- self.prevCategory = ""
- return
-
-
- def printRealHeader(self):
- print """
-struct name_test_pair {
- const char *name;
- GLboolean (*test)(generic_func);
-};
-
-static struct name_test_pair functions[] = {"""
-
- def printBody(self, api):
- prev_category = None
-
-
- for f in api.functionIterateByCategory():
- [category, num] = api.get_category_for_name( f.name )
- if category != prev_category:
- print ' { "-%s", NULL},' % category
- prev_category = category
-
- test = "NULL"
- for name in f.entry_points:
- if name in self.tests:
- test = "test_%s" % name
- break
-
- print ' { "gl%s", %s },' % (f.name, test)
-
- print ''
- print ' { NULL, NULL }'
- print '};'
- print ''
- return
-
-
-if __name__ == '__main__':
- file_name = glapi_xml_path + "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
-
- printer = PrintExports()
-
- api = gl_XML.parse_GL_API( file_name, gl_XML.gl_item_factory() )
-
- printer.Print( api )
diff --git a/progs/tests/getteximage.c b/progs/tests/getteximage.c
deleted file mode 100644
index e4053b8de1..0000000000
--- a/progs/tests/getteximage.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- * Test glGetTexImage()
- * Brian Paul
- * 9 June 2009
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Win;
-
-
-static void
-TestGetTexImage(GLboolean npot)
-{
- GLuint iter;
- GLubyte *data = (GLubyte *) malloc(1024 * 1024 * 4);
- GLubyte *data2 = (GLubyte *) malloc(1024 * 1024 * 4);
-
- glEnable(GL_TEXTURE_2D);
-
- printf("glTexImage2D + glGetTexImage:\n");
-
- for (iter = 0; iter < 8; iter++) {
- GLint p = (iter % 8) + 3;
- GLint w = npot ? (p * 20) : (1 << p);
- GLint h = npot ? (p * 10) : (1 << p);
- GLuint i;
- GLint level = 0;
-
- printf(" Testing %d x %d tex image\n", w, h);
-
- /* fill data */
- for (i = 0; i < w * h * 4; i++) {
- data[i] = i & 0xff;
- data2[i] = 0;
- }
-
- glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, data);
-
- glBegin(GL_POINTS);
- glVertex2f(0, 0);
- glEnd();
-
- /* get */
- glGetTexImage(GL_TEXTURE_2D, level, GL_RGBA, GL_UNSIGNED_BYTE, data2);
-
- /* compare */
- for (i = 0; i < w * h * 4; i++) {
- if (data2[i] != data[i]) {
- printf("glTexImage + glGetTexImage failure!\n");
- printf("Expected value %d, found %d\n", data[i], data2[i]);
- abort();
- }
- }
-
- /* get as BGRA */
- glGetTexImage(GL_TEXTURE_2D, level, GL_BGRA, GL_UNSIGNED_BYTE, data2);
-
- /* compare */
- {
- const GLubyte *rgba = (GLubyte *) data;
- const GLubyte *bgra = (GLubyte *) data2;
- for (i = 0; i < w * h; i += 4) {
- if (rgba[i+0] != bgra[i+2] ||
- rgba[i+1] != bgra[i+1] ||
- rgba[i+2] != bgra[i+0] ||
- rgba[i+3] != bgra[i+3]) {
- printf("glTexImage + glGetTexImage(GL_BGRA) failure!\n");
- printf("Expected value %d, found %d\n", data[i], data2[i]);
- abort();
- }
- }
- }
-
- }
-
- printf("Passed\n");
- glDisable(GL_TEXTURE_2D);
- free(data);
- free(data2);
-}
-
-
-static GLboolean
-ColorsEqual(const GLubyte ref[4], const GLubyte act[4])
-{
- if (abs((int) ref[0] - (int) act[0]) > 1 ||
- abs((int) ref[1] - (int) act[1]) > 1 ||
- abs((int) ref[2] - (int) act[2]) > 1 ||
- abs((int) ref[3] - (int) act[3]) > 1) {
- printf("expected %d %d %d %d\n", ref[0], ref[1], ref[2], ref[3]);
- printf("found %d %d %d %d\n", act[0], act[1], act[2], act[3]);
- return GL_FALSE;
- }
- return GL_TRUE;
-}
-
-
-static void
-TestGetTexImageRTT(GLboolean npot)
-{
- GLuint iter;
-
- printf("Render to texture + glGetTexImage:\n");
-
- for (iter = 0; iter < 8; iter++) {
-
- 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;
- }
-
- 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);
-
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
- GL_TEXTURE_2D, tex, level);
-
- 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);
- }
-
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- glDeleteFramebuffersEXT(1, &fb);
- glDeleteTextures(1, &tex);
-
- }
-
- printf("Passed\n");
-}
-
-
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- 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(GL_FALSE);
- if (glutExtensionSupported("GL_ARB_texture_non_power_of_two"))
- TestGetTexImageRTT(GL_TRUE);
- }
-
- glutDestroyWindow(Win);
- exit(0);
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, 1, 0, 1, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, 0.0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
-}
-
-
-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);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/glutfx.c b/progs/tests/glutfx.c
deleted file mode 100644
index 8bf5582389..0000000000
--- a/progs/tests/glutfx.c
+++ /dev/null
@@ -1,189 +0,0 @@
-
-/*
- * Example of how one might use GLUT with the 3Dfx driver in full-screen mode.
- * Note: this only works with X since we're using Mesa's GLX "hack" for
- * using Glide.
- *
- * Goals:
- * easy setup and input event handling with GLUT
- * use 3Dfx hardware
- * automatically set MESA environment variables
- * don't lose mouse input focus
- *
- * Brian Paul This file is in the public domain.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-
-
-#define WIDTH 640
-#define HEIGHT 480
-
-
-static int Window = 0;
-static int ScreenWidth, ScreenHeight;
-static GLuint Torus = 0;
-static GLfloat Xrot = 0.0, Yrot = 0.0;
-
-
-
-static void Display( void )
-{
- static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0};
- static GLfloat red[4] = {1.0, 0.2, 0.2, 1.0};
- static GLfloat green[4] = {0.2, 1.0, 0.2, 1.0};
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue);
- glCallList(Torus);
-
- glRotatef(90.0, 1, 0, 0);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red);
- glCallList(Torus);
-
- glRotatef(90.0, 0, 1, 0);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green);
- glCallList(Torus);
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- float ratio = (float) width / (float) height;
-
- ScreenWidth = width;
- ScreenHeight = height;
-
- /*
- * The 3Dfx driver is limited to 640 x 480 but the X window may be larger.
- * Enforce that here.
- */
- if (width > WIDTH)
- width = WIDTH;
- if (height > HEIGHT)
- height = HEIGHT;
-
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ratio, ratio, -1.0, 1.0, 5.0, 30.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -20.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- glutDestroyWindow(Window);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void MouseMove( int x, int y )
-{
- Xrot = y - ScreenWidth / 2;
- Yrot = x - ScreenHeight / 2;
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- Torus = glGenLists(1);
- glNewList(Torus, GL_COMPILE);
- glutSolidTorus(0.5, 2.0, 10, 20);
- glEndList();
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_CULL_FACE);
-}
-
-
-int main( int argc, char *argv[] )
-{
-#ifndef _WIN32
- printf("NOTE: if you've got 3Dfx VooDoo hardware you must run this");
- printf(" program as root.\n\n");
- printf("Move the mouse. Press ESC to exit.\n\n");
-#endif
-
- /* Tell Mesa GLX to use 3Dfx driver in fullscreen mode. */
- putenv("MESA_GLX_FX=fullscreen");
-
- /* Disable 3Dfx Glide splash screen */
- putenv("FX_GLIDE_NO_SPLASH=");
-
- /* Give an initial size and position so user doesn't have to place window */
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(WIDTH, HEIGHT);
- glutInit( &argc, argv );
-
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
-
- Window = glutCreateWindow(argv[0]);
- if (!Window) {
- printf("Error, couldn't open window\n");
- exit(1);
- }
-
- /*
- * Want the X window to fill the screen so that we don't have to
- * worry about losing the mouse input focus.
- * Note that we won't actually see the X window since we never draw
- * to it, hence, the original X screen's contents aren't disturbed.
- */
- glutFullScreen();
-
- Init();
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutPassiveMotionFunc( MouseMove );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/interleave.c b/progs/tests/interleave.c
deleted file mode 100644
index c60ddde1f1..0000000000
--- a/progs/tests/interleave.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2005
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file interleave.c
- *
- * Simple test of glInterleavedArrays functionality. For each mode, two
- * meshes are drawn. One is drawn using interleaved arrays and the othe is
- * drawn using immediate mode. Both should look identical.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 400;
-static int Height = 300;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-static const GLfloat t[][4] = {
- { 0.5, 0.0, 0.0, 1.0 },
-
- { 0.25, 0.5, 0.0, 1.0 },
- { 0.75, 0.5, 0.0, 1.0 },
-
- { 0.0, 1.0, 0.0, 1.0 },
- { 0.5, 1.0, 0.0, 1.0 },
- { 1.0, 1.0, 0.0, 1.0 },
-};
-
-static const GLfloat c_f[][4] = {
- { 1.0, 0.0, 0.0, 1.0 },
-
- { 0.0, 1.0, 0.0, 1.0 },
- { 0.0, 1.0, 0.0, 1.0 },
-
- { 0.0, 0.0, 1.0, 1.0 },
- { 1.0, 0.0, 1.0, 1.0 },
- { 0.0, 0.0, 1.0, 1.0 },
-};
-
-static const GLubyte c_ub[][4] = {
- { 0xff, 0x00, 0x00, 0xff },
-
- { 0x00, 0xff, 0x00, 0xff },
- { 0x00, 0xff, 0x00, 0xff },
-
- { 0x00, 0x00, 0xff, 0xff },
- { 0xff, 0x00, 0xff, 0xff },
- { 0x00, 0x00, 0xff, 0xff },
-};
-
-static const GLfloat n[][3] = {
- { 0.0, 0.0, -1.0 },
-
- { 0.0, 0.0, -1.0 },
- { 0.0, 0.0, -1.0 },
-
- { 0.0, 0.0, -1.0 },
- { 0.0, 0.0, -1.0 },
- { 0.0, 0.0, -1.0 },
-};
-
-static const GLfloat v[][4] = {
- { 0.0, 1.0, 0.0, 1.0, },
-
- { -0.5, 0.0, 0.0, 1.0, },
- { 0.5, 0.0, 0.0, 1.0, },
-
- { -1.0, -1.0, 0.0, 1.0, },
- { 0.0, -1.0, 0.0, 1.0, },
- { 1.0, -1.0, 0.0, 1.0, },
-};
-
-static const unsigned indicies[12] = {
- 0, 1, 2,
- 1, 3, 4,
- 2, 4, 5,
- 1, 4, 2
-};
-
-#define NONE { NULL, 0, 0, 0, sizeof( NULL ) }
-#define V2F { v, 2, 2 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
-#define V3F { v, 3, 3 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
-#define V4F { v, 4, 4 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
-
-#define C4UB { c_ub, 4, 4 * sizeof( GLubyte ), GL_UNSIGNED_BYTE, sizeof( c_ub[0] ) }
-#define C3F { c_f, 3, 3 * sizeof( GLfloat ), GL_FLOAT, sizeof( c_f[0] ) }
-#define C4F { c_f, 4, 4 * sizeof( GLfloat ), GL_FLOAT, sizeof( c_f[0] ) }
-
-#define T2F { t, 2, 2 * sizeof( GLfloat ), GL_FLOAT, sizeof( t[0] ) }
-#define T4F { t, 4, 4 * sizeof( GLfloat ), GL_FLOAT, sizeof( t[0] ) }
-
-#define N3F { n, 3, 3 * sizeof( GLfloat ), GL_FLOAT, sizeof( n[0] ) }
-
-struct interleave_info {
- const void * data;
- unsigned count;
- unsigned size;
- GLenum type;
- unsigned stride;
-};
-
-#define NUM_MODES 14
-#define INVALID_MODE 14
-#define INVALID_STRIDE 15
-
-struct interleave_info info[ NUM_MODES ][4] = {
- { NONE, NONE, NONE, V2F },
- { NONE, NONE, NONE, V3F },
- { NONE, C4UB, NONE, V2F },
- { NONE, C4UB, NONE, V3F },
- { NONE, C3F, NONE, V3F },
-
- { NONE, NONE, N3F, V3F },
- { NONE, C4F, N3F, V3F },
-
- { T2F, NONE, NONE, V3F },
- { T4F, NONE, NONE, V4F },
-
- { T2F, C4UB, NONE, V3F },
- { T2F, C3F, NONE, V3F },
- { T2F, NONE, N3F, V3F },
- { T2F, C4F, N3F, V3F },
- { T4F, C4F, N3F, V4F },
-};
-
-const char * const mode_names[ NUM_MODES ] = {
- "GL_V2F",
- "GL_V3F",
- "GL_C4UB_V2F",
- "GL_C4UB_V3F",
- "GL_C3F_V3F",
- "GL_N3F_V3F",
- "GL_C4F_N3F_V3F",
- "GL_T2F_V3F",
- "GL_T4F_V4F",
- "GL_T2F_C4UB_V3F",
- "GL_T2F_C3F_V3F",
- "GL_T2F_N3F_V3F",
- "GL_T2F_C4F_N3F_V3F",
- "GL_T4F_C4F_N3F_V4F",
-};
-
-static unsigned interleave_mode = 0;
-static GLboolean use_invalid_mode = GL_FALSE;
-static GLboolean use_invalid_stride = GL_FALSE;
-
-#define DEREF(item,idx) (void *) & ((char *)curr_info[item].data)[idx * curr_info[item].stride]
-
-static void Display( void )
-{
- const struct interleave_info * const curr_info = info[ interleave_mode ];
-
- /* 4 floats for 12 verticies for 4 data elements.
- */
- char data[ (sizeof( GLfloat ) * 4) * 12 * 4 ];
-
- unsigned i;
- unsigned offset;
- GLenum err;
- GLenum format;
- GLsizei stride;
-
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
-
- glTranslatef(-1.5, 0, 0);
-
- glColor3fv( c_f[0] );
-
- if ( curr_info[0].data != NULL ) {
- glEnable( GL_TEXTURE_2D );
- }
- else {
- glDisable( GL_TEXTURE_2D );
- }
-
-
- offset = 0;
- glBegin(GL_TRIANGLES);
- for ( i = 0 ; i < 12 ; i++ ) {
- const unsigned index = indicies[i];
-
-
- /* Handle the vertex texture coordinate.
- */
- if ( curr_info[0].data != NULL ) {
- if ( curr_info[0].count == 2 ) {
- glTexCoord2fv( DEREF(0, index) );
- }
- else {
- glTexCoord4fv( DEREF(0, index) );
- }
-
- (void) memcpy( & data[ offset ], DEREF(0, index),
- curr_info[0].size );
- offset += curr_info[0].size;
- }
-
-
- /* Handle the vertex color.
- */
- if ( curr_info[1].data != NULL ) {
- if ( curr_info[1].type == GL_FLOAT ) {
- if ( curr_info[1].count == 3 ) {
- glColor3fv( DEREF(1, index) );
- }
- else {
- glColor4fv( DEREF(1, index) );
- }
- }
- else {
- glColor4ubv( DEREF(1, index) );
- }
-
- (void) memcpy( & data[ offset ], DEREF(1, index),
- curr_info[1].size );
- offset += curr_info[1].size;
- }
-
-
- /* Handle the vertex normal.
- */
- if ( curr_info[2].data != NULL ) {
- glNormal3fv( DEREF(2, index) );
-
- (void) memcpy( & data[ offset ], DEREF(2, index),
- curr_info[2].size );
- offset += curr_info[2].size;
- }
-
-
- switch( curr_info[3].count ) {
- case 2:
- glVertex2fv( DEREF(3, index) );
- break;
- case 3:
- glVertex3fv( DEREF(3, index) );
- break;
- case 4:
- glVertex4fv( DEREF(3, index) );
- break;
- }
-
- (void) memcpy( & data[ offset ], DEREF(3, index),
- curr_info[3].size );
- offset += curr_info[3].size;
- }
- glEnd();
-
-
- glTranslatef(3.0, 0, 0);
-
- /* The masking with ~0x2A00 is a bit of a hack to make sure that format
- * ends up with an invalid value no matter what rand() returns.
- */
- format = (use_invalid_mode)
- ? (rand() & ~0x2A00) : GL_V2F + interleave_mode;
- stride = (use_invalid_stride) ? -abs(rand()) : 0;
-
- (void) glGetError();
- glInterleavedArrays( format, stride, data );
- err = glGetError();
- if ( err ) {
- printf("glInterleavedArrays(0x%04x, %d, %p) generated the error 0x%04x\n",
- format, stride, data, err );
- }
- else {
- glDrawArrays( GL_TRIANGLES, 0, 12 );
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void ModeMenu( int entry )
-{
- if ( entry == INVALID_MODE ) {
- use_invalid_mode = GL_TRUE;
- use_invalid_stride = GL_FALSE;
- }
- else if ( entry == INVALID_STRIDE ) {
- use_invalid_mode = GL_FALSE;
- use_invalid_stride = GL_TRUE;
- }
- else {
- use_invalid_mode = GL_FALSE;
- use_invalid_stride = GL_FALSE;
- interleave_mode = entry;
- }
-}
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- const GLubyte tex[16] = {
- 0xff, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0xff,
- 0xff, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0xff,
- };
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
- glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 0,
- GL_LUMINANCE, GL_UNSIGNED_BYTE, tex );
-
- printf("Use the context menu (right click) to select the interleaved array mode.\n");
- printf("Press ESCAPE to exit.\n\n");
- printf("NOTE: This is *NOT* a very good test of the modes that use normals.\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- unsigned i;
-
- srand( time( NULL ) );
-
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "glInterleavedArrays test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
-
- glutCreateMenu( ModeMenu );
- for ( i = 0 ; i < NUM_MODES ; i++ ) {
- glutAddMenuEntry( mode_names[i], i);
- }
-
- glutAddMenuEntry( "Random invalid mode", INVALID_MODE);
- glutAddMenuEntry( "Random invalid stride", INVALID_STRIDE);
-
- glutAttachMenu(GLUT_RIGHT_BUTTON);
-
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/invert.c b/progs/tests/invert.c
deleted file mode 100644
index be55472656..0000000000
--- a/progs/tests/invert.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2005
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file invert.c
- *
- * Simple test of GL_MESA_pack_invert functionality. Three squares are
- * drawn. The first two should look the same, and the third one should
- * look inverted.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-#define IMAGE_FILE "../images/tree3.rgb"
-
-static int Width = 420;
-static int Height = 150;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-static GLubyte * image = NULL;
-static GLubyte * temp_image = NULL;
-static GLuint img_width = 0;
-static GLuint img_height = 0;
-static GLuint img_format = 0;
-
-PFNGLWINDOWPOS2IPROC win_pos_2i = NULL;
-
-
-static void Display( void )
-{
- GLint err;
-
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT );
-
-
- /* This is the "reference" square.
- */
-
- (*win_pos_2i)( 5, 5 );
- glDrawPixels( img_width, img_height, img_format, GL_UNSIGNED_BYTE, image );
-
- glPixelStorei( GL_PACK_INVERT_MESA, GL_FALSE );
- err = glGetError();
- if ( err != GL_NO_ERROR ) {
- printf( "Setting PACK_INVERT_MESA to false generated an error (0x%04x).\n",
- err );
- }
-
- glReadPixels( 5, 5, img_width, img_height, img_format, GL_UNSIGNED_BYTE, temp_image );
- (*win_pos_2i)( 5 + 1 * (10 + img_width), 5 );
- glDrawPixels( img_width, img_height, img_format, GL_UNSIGNED_BYTE, temp_image );
-
- glPixelStorei( GL_PACK_INVERT_MESA, GL_TRUE );
- err = glGetError();
- if ( err != GL_NO_ERROR ) {
- printf( "Setting PACK_INVERT_MESA to true generated an error (0x%04x).\n",
- err );
- }
-
- glReadPixels( 5, 5, img_width, img_height, img_format, GL_UNSIGNED_BYTE, temp_image );
- (*win_pos_2i)( 5 + 2 * (10 + img_width), 5 );
- glDrawPixels( img_width, img_height, img_format, GL_UNSIGNED_BYTE, temp_image );
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- const float ver = strtod( ver_string, NULL );
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( !glutExtensionSupported("GL_MESA_pack_invert") ) {
- printf("\nSorry, this program requires GL_MESA_pack_invert.\n");
- exit(1);
- }
-
- if ( ver >= 1.4 ) {
- win_pos_2i = (PFNGLWINDOWPOS2IPROC) glutGetProcAddress( "glWindowPos2i" );
- }
- else if ( glutExtensionSupported("GL_ARB_window_pos") ) {
- win_pos_2i = (PFNGLWINDOWPOS2IPROC) glutGetProcAddress( "glWindowPos2iARB" );
- }
- else if ( glutExtensionSupported("GL_MESA_window_pos") ) {
- win_pos_2i = (PFNGLWINDOWPOS2IPROC) glutGetProcAddress( "glWindowPos2iMESA" );
- }
-
-
- /* Do this check as a separate if-statement instead of as an else in case
- * one of the required extensions is supported but glutGetProcAddress
- * returns NULL.
- */
-
- if ( win_pos_2i == NULL ) {
- printf("\nSorry, this program requires either GL 1.4 (or higher),\n"
- "GL_ARB_window_pos, or GL_MESA_window_pos.\n");
- exit(1);
- }
-
- printf("\nThe left 2 squares should be the same color, and the right\n"
- "square should look upside-down.\n");
-
-
- image = LoadRGBImage( IMAGE_FILE, (GLint *) & img_width, (GLint *) & img_height,
- & img_format );
- if ( image == NULL ) {
- printf( "Could not open image file \"%s\".\n", IMAGE_FILE );
- exit(1);
- }
-
- temp_image = malloc( 3 * img_height * img_width );
- if ( temp_image == NULL ) {
- printf( "Could not allocate memory for temporary image.\n" );
- exit(1);
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "GL_MESA_pack_invert test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/jkrahntest.c b/progs/tests/jkrahntest.c
deleted file mode 100644
index 3fef105fc2..0000000000
--- a/progs/tests/jkrahntest.c
+++ /dev/null
@@ -1,180 +0,0 @@
-
-/* This is a good test for glXSwapBuffers on non-current windows,
- * and the glXCopyContext function. Fixed several Mesa/DRI bugs with
- * this program on 15 June 2002.
- *
- * Joe's comments follow:
- *
- * I have tried some different approaches for being able to
- * draw to multiple windows using one context, or a copied
- * context. Mesa/indirect rendering works to use one context
- * for multiple windows, but crashes with glXCopyContext.
- * DRI is badly broken, at least for ATI.
- *
- * I also noticed that glXMakeCurrent allows a window and context
- * from different visuals to be attached (haven't tested recently).
- *
- * Joe Krahn <jkrahn@nc.rr.com>
- */
-
-#include <GL/glx.h>
-#include <GL/gl.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <math.h>
-
-#ifndef M_PI
-#define M_PI 3.14159
-#endif
-
-#define DEGTOR (M_PI/180.0)
-
-static int AttributeList[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None };
-
-int main(int argc, char **argv)
-{
- Window win1, win2;
- XVisualInfo *vi;
- XSetWindowAttributes swa;
- Display *dpy;
- GLXContext ctx1, ctx2;
- float angle;
- int test;
-
- if (argc < 2) {
- fprintf(stderr, "This program tests GLX context switching.\n");
- fprintf(stderr, "Usage: jkrahntest <n>\n");
- fprintf(stderr, "Where n is:\n");
- fprintf(stderr, "\t1) Use two contexts and swap only when the context is current (typical case).\n");
- fprintf(stderr, "\t2) Use two contexts and swap at the same time.\n");
- fprintf(stderr, "\t\t Used to crash Mesa & nVidia, and DRI artifacts. Seems OK now.\n");
- fprintf(stderr, "\t3) Use one context, but only swap when a context is current.\n");
- fprintf(stderr, "\t\t Serious artifacts for DRI at least with ATI.\n");
- fprintf(stderr, "\t4) Use one context, swap both windows at the same time, so the left\n");
- fprintf(stderr, "\t\t window has no context at swap time. Severe artifacts for DRI.\n");
- fprintf(stderr, "\t5) Use two contexts, copying one to the other when switching windows.\n");
- fprintf(stderr, "\t\t DRI gives an error, indirect rendering crashes server.\n");
-
- exit(1);
- }
- test = atoi(argv[1]);
-
- /* get a connection */
- dpy = XOpenDisplay(NULL);
-
- /* Get an appropriate visual */
- vi = glXChooseVisual(dpy, DefaultScreen(dpy), AttributeList);
- if (vi == 0) {
- fprintf(stderr, "No matching visuals found.\n");
- exit(-1);
- }
-
- /* Create two GLX contexts, with list sharing */
- ctx1 = glXCreateContext(dpy, vi, 0, True);
- ctx2 = glXCreateContext(dpy, vi, ctx1, True);
-
- /* create a colormap */
- swa.colormap = XCreateColormap(dpy, RootWindow(dpy, vi->screen),
- vi->visual, AllocNone);
- swa.border_pixel = 0;
-
- /* Create two windows */
- win1 = XCreateWindow(dpy, RootWindow(dpy, vi->screen),
- 10, 10, 200, 200,
- 0, vi->depth, InputOutput, vi->visual,
- CWBorderPixel | CWColormap, &swa);
- XStoreName(dpy, win1, "Test [L]");
- XMapWindow(dpy, win1);
- XMoveWindow(dpy, win1, 10, 10); /* Initial requested x,y may not be honored */
- {
- XSizeHints sizehints;
- static const char *name = "window";
- sizehints.x = 10;
- sizehints.y = 10;
- sizehints.width = 200;
- sizehints.height = 200;
- sizehints.flags = USSize | USPosition;
- XSetNormalHints(dpy, win1, &sizehints);
- XSetStandardProperties(dpy, win1, name, name,
- None, (char **)NULL, 0, &sizehints);
- }
-
-
- win2 = XCreateWindow(dpy, RootWindow(dpy, vi->screen),
- 250, 10, 200, 200,
- 0, vi->depth, InputOutput, vi->visual,
- CWBorderPixel | CWColormap, &swa);
- XStoreName(dpy, win1, "Test [R]");
- XMapWindow(dpy, win2);
- XMoveWindow(dpy, win2, 260, 10);
- {
- XSizeHints sizehints;
- static const char *name = "window";
- sizehints.x = 10;
- sizehints.y = 10;
- sizehints.width = 200;
- sizehints.height = 200;
- sizehints.flags = USSize | USPosition;
- XSetNormalHints(dpy, win2, &sizehints);
- XSetStandardProperties(dpy, win2, name, name,
- None, (char **)NULL, 0, &sizehints);
- }
-
-
- /* Now draw some spinning things */
- for (angle = 0; angle < 360*4; angle += 10.0) {
- /* Connect the context to window 1 */
- glXMakeCurrent(dpy, win1, ctx1);
-
- /* Clear and draw in window 1 */
- glDrawBuffer(GL_BACK);
- glClearColor(1, 1, 0, 1);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glColor3f(1, 0, 0);
- glBegin(GL_TRIANGLES);
- glVertex2f(0, 0);
- glVertex2f(cos(angle * DEGTOR), sin(angle * DEGTOR));
- glVertex2f(cos((angle + 20.0) * DEGTOR),
- sin((angle + 20.0) * DEGTOR));
- glEnd();
- glFlush();
-
- if (test == 1 || test == 3 || test == 5)
- glXSwapBuffers(dpy, win1);
-
- if (test == 5)
- glXCopyContext(dpy, ctx1, ctx2, GL_ALL_ATTRIB_BITS);
- /* Connect the context to window 2 */
- if (test == 3 || test == 4) {
- glXMakeCurrent(dpy, win2, ctx1);
- } else {
- glXMakeCurrent(dpy, win2, ctx2);
- }
-
- /* Clear and draw in window 2 */
- glDrawBuffer(GL_BACK);
- glClearColor(0, 0, 1, 1);
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1, 1, 0);
- glBegin(GL_TRIANGLES);
- glVertex2f(0, 0);
- glVertex2f(cos(angle * DEGTOR), sin(angle * DEGTOR));
- glVertex2f(cos((angle + 20.0) * DEGTOR),
- sin((angle + 20.0) * DEGTOR));
- glEnd();
- glFlush();
-
- /* Swap buffers */
- if (test == 2 || test == 4)
- glXSwapBuffers(dpy, win1);
- glXSwapBuffers(dpy, win2);
-
- /* wait a while */
- glXWaitX();
- usleep(20000);
- }
-
- return 0;
-}
diff --git a/progs/tests/lineclip.c b/progs/tests/lineclip.c
deleted file mode 100644
index bb688c04a5..0000000000
--- a/progs/tests/lineclip.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * 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 (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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int win_width, win_height;
-
-static void
-line(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
-{
- glBegin(GL_LINES);
- glVertex2f(x1, y1);
- glVertex2f(x2, y2);
- glEnd();
-}
-
-static void
-line3(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2)
-{
- glBegin(GL_LINES);
- glVertex3f(x1, y1, z1);
- glVertex3f(x2, y2, z2);
- glEnd();
-}
-
-static void
-display(void)
-{
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- glColor3f(1.0, 0.0, 0.0);
- /* 2 lines clipped along xmin */
- line(-20, win_height / 2 - 20,
- 20, win_height / 2 - 20);
- line( 20, win_height / 2 + 20,
- -20, win_height / 2 + 20);
-
- glColor3f(0.0, 1.0, 0.0);
- /* 2 lines clipped along ymax */
- line(win_width / 2 - 20, win_height + 20,
- win_width / 2 - 20, win_height - 20);
- line(win_width / 2 + 20, win_height - 20,
- win_width / 2 + 20, win_height + 20);
-
- glColor3f(0.0, 0.0, 1.0);
- /* 2 lines clipped along xmax */
- line(win_width - 20, win_height / 2 - 20,
- win_width + 20, win_height / 2 - 20);
- line(win_width + 20, win_height / 2 + 20,
- win_width - 20, win_height / 2 + 20);
-
- glColor3f(1.0, 1.0, 1.0);
- /* 2 lines clipped along ymin */
- line(win_width / 2 - 20, 20,
- win_width / 2 - 20, -20);
- line(win_width / 2 + 20, -20,
- win_width / 2 + 20, 20);
-
- /* 2 lines clipped along near */
- glColor3f(1.0, 0.0, 1.0);
- line3(win_width / 2 - 20 - 20, win_height / 2, 0.5,
- win_width / 2 - 20 + 20, win_height / 2, -0.5);
- line3(win_width / 2 - 20, win_height / 2 - 20, -0.5,
- win_width / 2 - 20, win_height / 2 + 20, 0.5);
-
- /* 2 lines clipped along far */
- glColor3f(0.0, 1.0, 1.0);
- line3(win_width / 2 + 20 - 20, win_height / 2, 1.5,
- win_width / 2 + 20 + 20, win_height / 2, 0.5);
- line3(win_width / 2 + 20, win_height / 2 - 20, 0.5,
- win_width / 2 + 20, win_height / 2 + 20, 1.5);
-
- /* entirely clipped along near/far */
- glColor3f(.5, .5, .5);
- line3(win_width / 2, win_height / 2 - 20, -0.5,
- win_width / 2, win_height / 2 + 20, -0.5);
- glColor3f(.5, .5, .5);
- line3(win_width / 2, win_height / 2 - 20, 1.5,
- win_width / 2, win_height / 2 + 20, 1.5);
-
- glColor3f(1.0, 1.0, 0.0);
- /* lines clipped along both x and y limits */
- line(-5, 20,
- 20, -5); /* xmin, ymin */
- line(-5, win_height - 20,
- 20, win_height + 5); /* xmin, ymax */
- line(win_width - 20, -5,
- win_width + 5, 20); /* xmax, ymin */
- line(win_width - 20, win_height + 5,
- win_width + 5, win_height - 20); /* xmax, ymax */
-
- glutSwapBuffers();
-}
-
-static void
-reshape(int width, int height)
-{
- win_width = width;
- win_height = height;
- glViewport(0, 0, width, height);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, win_width, 0, win_height, 0.0, -1.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(.25, .25, 0);
-}
-
-static void key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
-
- switch (key) {
- case 27: /* esc */
- exit(0);
- break;
- }
-
- glutPostRedisplay();
-}
-
-static void
-init(void)
-{
-}
-
-int
-main(int argc, char *argv[])
-{
- win_width = 200;
- win_height = 200;
-
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(win_width, win_height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(key);
- glutDisplayFunc(display);
-
- init();
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/manytex.c b/progs/tests/manytex.c
deleted file mode 100644
index 52e7e1de44..0000000000
--- a/progs/tests/manytex.c
+++ /dev/null
@@ -1,395 +0,0 @@
-
-/*
- * test handling of many texture maps
- * Also tests texture priority and residency.
- *
- * Brian Paul
- * August 2, 2000
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLint NumTextures = 20;
-static GLuint *TextureID = NULL;
-static GLint *TextureWidth = NULL, *TextureHeight = NULL;
-static GLboolean *TextureResidency = NULL;
-static GLint TexWidth = 128, TexHeight = 128;
-static GLfloat Zrot = 0;
-static GLboolean Anim = GL_TRUE;
-static GLint WinWidth = 500, WinHeight = 400;
-static GLboolean MipMap = GL_FALSE;
-static GLboolean LinearFilter = GL_FALSE;
-static GLboolean RandomSize = GL_FALSE;
-static GLint Rows, Columns;
-static GLint LowPriorityCount = 0;
-static GLint Win;
-
-
-static void Idle( void )
-{
- Zrot += 1.0;
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- GLfloat spacing = WinWidth / Columns;
- GLfloat size = spacing * 0.4;
- GLint i;
-
- /* test residency */
- if (0)
- {
- GLboolean b;
- GLint i, resident;
- b = glAreTexturesResident(NumTextures, TextureID, TextureResidency);
- if (b) {
- printf("all resident\n");
- }
- else {
- resident = 0;
- for (i = 0; i < NumTextures; i++) {
- if (TextureResidency[i]) {
- resident++;
- }
- }
- printf("%d of %d texture resident\n", resident, NumTextures);
- }
- }
-
- /* render the textured quads */
- glClear( GL_COLOR_BUFFER_BIT );
- for (i = 0; i < NumTextures; i++) {
- GLint row = i / Columns;
- GLint col = i % Columns;
- GLfloat x = col * spacing + spacing * 0.5;
- GLfloat y = row * spacing + spacing * 0.5;
-
- GLfloat maxDim = (TextureWidth[i] > TextureHeight[i])
- ? TextureWidth[i] : TextureHeight[i];
- GLfloat w = TextureWidth[i] / maxDim;
- GLfloat h = TextureHeight[i] / maxDim;
-
- glPushMatrix();
- glTranslatef(x, y, 0.0);
- glRotatef(Zrot, 0, 0, 1);
- glScalef(size, size, 1);
-
- glBindTexture(GL_TEXTURE_2D, TextureID[i]);
- glBegin(GL_POLYGON);
-#if 0
- glTexCoord2f(0, 0); glVertex2f(-1, -1);
- glTexCoord2f(1, 0); glVertex2f( 1, -1);
- glTexCoord2f(1, 1); glVertex2f( 1, 1);
- glTexCoord2f(0, 1); glVertex2f(-1, 1);
-#else
- glTexCoord2f(0, 0); glVertex2f(-w, -h);
- glTexCoord2f(1, 0); glVertex2f( w, -h);
- glTexCoord2f(1, 1); glVertex2f( w, h);
- glTexCoord2f(0, 1); glVertex2f(-w, h);
-#endif
- glEnd();
- glPopMatrix();
- }
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- WinWidth = width;
- WinHeight = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-/*
- * Return a random int in [min, max].
- */
-static int RandomInt(int min, int max)
-{
- int i = rand();
- int j = i % (max - min + 1);
- return min + j;
-}
-
-
-static void DeleteTextures(void)
-{
- glDeleteTextures(NumTextures, TextureID);
- free(TextureID);
- TextureID = NULL;
-}
-
-
-
-static void Init( void )
-{
- GLint i;
-
- if (RandomSize) {
- printf("Creating %d %s random-size textures, ", NumTextures,
- MipMap ? "Mipmapped" : "non-Mipmapped");
- }
- else {
- printf("Creating %d %s %d x %d textures, ", NumTextures,
- MipMap ? "Mipmapped" : "non-Mipmapped",
- TexWidth, TexHeight);
- }
-
- if (LinearFilter) {
- printf("bilinear filtering\n");
- }
- else {
- printf("nearest filtering\n");
- }
-
-
- /* compute number of rows and columns of rects */
- {
- GLfloat area = (GLfloat) (WinWidth * WinHeight) / (GLfloat) NumTextures;
- GLfloat edgeLen = sqrt(area);
-
- Columns = WinWidth / edgeLen;
- Rows = (NumTextures + Columns - 1) / Columns;
- printf("Rows: %d Cols: %d\n", Rows, Columns);
- }
-
-
- if (!TextureID) {
- TextureID = (GLuint *) malloc(sizeof(GLuint) * NumTextures);
- assert(TextureID);
- glGenTextures(NumTextures, TextureID);
- }
-
- if (!TextureResidency) {
- TextureResidency = (GLboolean *) malloc(sizeof(GLboolean) * NumTextures);
- assert(TextureResidency);
- }
-
- if (!TextureWidth) {
- TextureWidth = (GLint *) malloc(sizeof(GLint) * NumTextures);
- assert(TextureWidth);
- }
- if (!TextureHeight) {
- TextureHeight = (GLint *) malloc(sizeof(GLint) * NumTextures);
- assert(TextureHeight);
- }
-
- for (i = 0; i < NumTextures; i++) {
- GLubyte color[4];
- GLubyte *texImage;
- GLint j, row, col;
-
- row = i / Columns;
- col = i % Columns;
-
- glBindTexture(GL_TEXTURE_2D, TextureID[i]);
-
- if (i < LowPriorityCount)
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 0.5F);
-
- if (RandomSize) {
-#if 0
- int k = (glutGet(GLUT_ELAPSED_TIME) % 7) + 2;
- TexWidth = 1 << k;
- TexHeight = 1 << k;
-#else
- TexWidth = 1 << RandomInt(2, 7);
- TexHeight = 1 << RandomInt(2, 7);
- printf("Random size of %3d: %d x %d\n", i, TexWidth, TexHeight);
-#endif
- }
-
- TextureWidth[i] = TexWidth;
- TextureHeight[i] = TexHeight;
-
- texImage = (GLubyte*) malloc(4 * TexWidth * TexHeight * sizeof(GLubyte));
- assert(texImage);
-
- /* determine texture color */
- color[0] = (GLint) (255.0 * ((float) col / (Columns - 1)));
- color[1] = 127;
- color[2] = (GLint) (255.0 * ((float) row / (Rows - 1)));
- color[3] = 255;
-
- /* fill in solid-colored teximage */
- for (j = 0; j < TexWidth * TexHeight; j++) {
- texImage[j*4+0] = color[0];
- texImage[j*4+1] = color[1];
- texImage[j*4+2] = color[2];
- texImage[j*4+3] = color[3];
- }
-
- if (MipMap) {
- GLint level = 0;
- GLint w = TexWidth, h = TexHeight;
- while (1) {
- glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, texImage);
- if (w == 1 && h == 1)
- break;
- if (w > 1)
- w /= 2;
- if (h > 1)
- h /= 2;
- level++;
- /*printf("%d: %d x %d\n", level, w, h);*/
- }
- if (LinearFilter) {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- }
- else {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST_MIPMAP_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
- }
- else {
- /* Set corners to white */
- int k = 0;
- texImage[k+0] = texImage[k+1] = texImage[k+2] = texImage[k+3] = 255;
- k = (TexWidth - 1) * 4;
- texImage[k+0] = texImage[k+1] = texImage[k+2] = texImage[k+3] = 255;
- k = (TexWidth * TexHeight - TexWidth) * 4;
- texImage[k+0] = texImage[k+1] = texImage[k+2] = texImage[k+3] = 255;
- k = (TexWidth * TexHeight - 1) * 4;
- texImage[k+0] = texImage[k+1] = texImage[k+2] = texImage[k+3] = 255;
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TexWidth, TexHeight, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, texImage);
- if (LinearFilter) {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- }
- else {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
- }
-
- free(texImage);
- }
-
- glEnable(GL_TEXTURE_2D);
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- const GLfloat step = 3.0;
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 's':
- Idle();
- break;
- case 'z':
- Zrot -= step;
- break;
- case 'Z':
- Zrot += step;
- break;
- case ' ':
- DeleteTextures();
- Init();
- break;
- case 27:
- DeleteTextures();
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-int main( int argc, char *argv[] )
-{
- GLint i;
-
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( WinWidth, WinHeight );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
-
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-n") == 0) {
- NumTextures = atoi(argv[i+1]);
- if (NumTextures <= 0) {
- printf("Error, bad number of textures\n");
- return 1;
- }
- i++;
- }
- else if (strcmp(argv[i], "-mipmap") == 0) {
- MipMap = GL_TRUE;
- }
- else if (strcmp(argv[i], "-linear") == 0) {
- LinearFilter = GL_TRUE;
- }
- else if (strcmp(argv[i], "-size") == 0) {
- TexWidth = atoi(argv[i+1]);
- TexHeight = atoi(argv[i+2]);
- assert(TexWidth >= 1);
- assert(TexHeight >= 1);
- i += 2;
- }
- else if (strcmp(argv[i], "-randomsize") == 0) {
- RandomSize = GL_TRUE;
- }
- else if (strcmp(argv[i], "-lowpri") == 0) {
- LowPriorityCount = atoi(argv[i+1]);
- i++;
- }
- else {
- printf("Usage:\n");
- printf(" manytex [options]\n");
- printf("Options:\n");
- printf(" -n <number of texture objects>\n");
- printf(" -size <width> <height> - specify texture size\n");
- printf(" -randomsize - use random size textures\n");
- printf(" -mipmap - generate mipmaps\n");
- printf(" -linear - use linear filtering instead of nearest\n");
- printf(" -lowpri <n> - Set lower priority on <n> textures\n");
- return 0;
- }
- }
-
- Init();
-
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/tests/mapbufrange.c b/progs/tests/mapbufrange.c
deleted file mode 100644
index 76e02dd406..0000000000
--- a/progs/tests/mapbufrange.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Test glMapBuffer() and glMapBufferRange()
- *
- * Fill a VBO with vertex data to draw several colored quads.
- * On each redraw, update the geometry for just one rect in the VBO.
- *
- * Brian Paul
- * 4 March 2009
- */
-
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLuint Win;
-static const GLuint NumRects = 10;
-static GLuint BufferID;
-static GLboolean Anim = GL_TRUE;
-static GLboolean UseBufferRange = GL_FALSE;
-
-
-
-static const float RectData[] = {
- /* vertex */ /* color */
- 0, -1, 0, 1, 0, 0,
- 1, 0, 0, 1, 1, 0,
- 0, 1, 0, 0, 1, 1,
- -1, 0, 0, 1, 0, 1
-};
-
-
-/**
- * The buffer contains vertex positions (float[3]) and colors (float[3])
- * for 'NumRects' quads.
- * This function updates/rotates one quad in the buffer.
- */
-static void
-UpdateRect(int r, float angle)
-{
- float *rect;
- int i;
-
- assert(r < NumRects);
-
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
- if (UseBufferRange) {
- GLintptr offset = r * sizeof(RectData);
- GLsizeiptr length = sizeof(RectData);
- GLbitfield access = GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT;
- float *buf = (float *) glMapBufferRange(GL_ARRAY_BUFFER_ARB,
- offset, length, access);
- rect = buf;
- }
- else {
- /* map whole buffer */
- float *buf = (float *)
- glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
- rect = buf + r * 24;
- }
-
- /* set rect verts/colors */
- memcpy(rect, RectData, sizeof(RectData));
-
- /* loop over four verts, updating vertices */
- for (i = 0; i < 4; i++) {
- float x = 0.2 * RectData[i*6+0];
- float y = 0.2 * RectData[i*6+1];
- float xpos = -2.5 + 0.5 * r;
- float ypos = 0.0;
-
- /* translate and rotate vert */
- rect[i * 6 + 0] = xpos + x * cos(angle) + y * sin(angle);
- rect[i * 6 + 1] = ypos + x * sin(angle) - y * cos(angle);
- }
-
- glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
-}
-
-
-static void
-LoadBuffer(void)
-{
- static int frame = 0;
- float angle = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- UpdateRect(frame % NumRects, angle);
- frame++;
-}
-
-
-static void
-Draw(void)
-{
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
- glVertexPointer(3, GL_FLOAT, 24, 0);
- glEnableClientState(GL_VERTEX_ARRAY);
-
- glColorPointer(3, GL_FLOAT, 24, (void*) 12);
- glEnableClientState(GL_COLOR_ARRAY);
-
- glDrawArrays(GL_QUADS, 0, NumRects * 4);
-
- if (0)
- glFinish();
-}
-
-
-static void
-Display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- Draw();
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-3.0, 3.0, -1.0, 1.0, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Idle(void)
-{
- LoadBuffer();
- glutPostRedisplay();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- if (key == 'a') {
- Anim = !Anim;
- glutIdleFunc(Anim ? Idle : NULL);
- }
- else if (key == 's') {
- LoadBuffer();
- }
- else if (key == 27) {
- glutDestroyWindow(Win);
- exit(0);
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- GLuint BufferSize = NumRects * sizeof(RectData);
- float *buf;
-
- if (!glutExtensionSupported("GL_ARB_vertex_buffer_object")) {
- printf("GL_ARB_vertex_buffer_object not found!\n");
- exit(0);
- }
-
- UseBufferRange = glutExtensionSupported("GL_ARB_map_buffer_range");
- printf("Use GL_ARB_map_buffer_range: %c\n", "NY"[UseBufferRange]);
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- /* initially load buffer with zeros */
- buf = (float *) calloc(1, BufferSize);
-
- glGenBuffersARB(1, &BufferID);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, BufferSize, buf, GL_DYNAMIC_DRAW_ARB);
-
- free(buf);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowSize(800, 200);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Display);
- glutIdleFunc(Anim ? Idle : NULL);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/mapvbo.c b/progs/tests/mapvbo.c
deleted file mode 100644
index 52a22a5e79..0000000000
--- a/progs/tests/mapvbo.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Test glMapBuffer() call immediately after glDrawArrays().
- * See details below.
- *
- * NOTE: Do not use freeglut with this test! It calls the Display()
- * callback twice right away instead of just once.
- *
- * Brian Paul
- * 27 Feb 2009
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLuint BufferID;
-
-
-static GLuint Win;
-
-
-
-
-/*
- * Create VBO (position and color) and load with data.
- */
-static void
-SetupBuffers(void)
-{
- static const GLfloat data[] = {
- /* vertex */ /* color */
- 0, -1, 0, 1, 1, 0,
- 1, 0, 0, 1, 1, 0,
- 0, 1, 0, 1, 1, 0,
- -1, 0, 0, 1, 1, 0
- };
-
- glGenBuffersARB(1, &BufferID);
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
- glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(data), data,
- GL_STATIC_DRAW_ARB);
-}
-
-
-static void
-Draw(void)
-{
- static int count = 1;
-
- printf("Draw Frame %d\n", count);
- count++;
-
- glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID);
- glVertexPointer(3, GL_FLOAT, 24, 0);
- glEnableClientState(GL_VERTEX_ARRAY);
-
- glColorPointer(3, GL_FLOAT, 24, (void*) 12);
- glEnableClientState(GL_COLOR_ARRAY);
-
- glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
-
- if (0)
- glFinish();
-
- /* Immediately map the color buffer and change something.
- * This should not effect the first glDrawArrays above, but the
- * next time we draw we should see a black vertex.
- */
- if (1) {
- GLfloat *m = (GLfloat *) glMapBufferARB(GL_ARRAY_BUFFER_ARB,
- GL_WRITE_ONLY_ARB);
- m[3] = m[4] = m[5] = 0.0f; /* black vertex */
- glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
- }
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
- Draw();
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -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;
- if (key == 27) {
- glutDestroyWindow(Win);
- exit(0);
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- if (!glutExtensionSupported("GL_ARB_vertex_buffer_object")) {
- printf("GL_ARB_vertex_buffer_object not found!\n");
- exit(0);
- }
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- SetupBuffers();
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 300, 300 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/minmag.c b/progs/tests/minmag.c
deleted file mode 100644
index 179be51120..0000000000
--- a/progs/tests/minmag.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Test minification vs. magnification filtering.
- * Draw two quads with different filtering modes:
- *
- * +--------------------------+ +--------------------------+
- * | MagFilter = GL_LINEAR | | MagFilter = GL_LINEAR |
- * | MinFilter = GL_LINEAR | | MinFilter = GL_NEAREST |
- * +--------------------------+ +--------------------------+
- *
- * They should look different when the quad is smaller than the level 0
- * texture size (when minifying).
- */
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLint Width = 1000, Height = 500;
-
-
-static GLint TexWidth = 256, TexHeight = 256;
-static GLfloat Zpos = 5;
-static GLboolean MipMap = 0*GL_TRUE;
-static GLboolean LinearFilter = GL_TRUE;
-
-
-static void
-redraw(void)
-{
- GLfloat w = 1.0;
- GLfloat h = 1.0;
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-
- glPushMatrix();
- glTranslatef(-1.5, 0, -Zpos);
- glBegin(GL_POLYGON);
- glTexCoord2f(0, 0); glVertex2f(-w, -h);
- glTexCoord2f(1, 0); glVertex2f( w, -h);
- glTexCoord2f(1, 1); glVertex2f( w, h);
- glTexCoord2f(0, 1); glVertex2f(-w, h);
- glEnd();
- glPopMatrix();
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-
- glPushMatrix();
- glTranslatef(1.5, 0, -Zpos);
- glBegin(GL_POLYGON);
- glTexCoord2f(0, 0); glVertex2f(-w, -h);
- glTexCoord2f(1, 0); glVertex2f( w, -h);
- glTexCoord2f(1, 1); glVertex2f( w, h);
- glTexCoord2f(0, 1); glVertex2f(-w, h);
- glEnd();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void
-init(void)
-{
- GLubyte color[10][4] = {
- { 0, 0, 0, 0 },
- { 1, 0, 0, 0 },
- { 0, 1, 0, 0 },
- { 0, 0, 1, 0 },
- { 0, 1, 1, 0 },
- { 1, 0, 1, 0 },
- { 1, 1, 0, 0 },
- { 1, 0, 0, 0 },
- { 0, 1, 0, 0 },
- { 0, 0, 1, 0 }
- };
- GLubyte *texImage;
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("Left quad should be linear filtered and right should be nearest filtered.\n");
- printf("Press z/Z to change quad distance.\n");
-
- texImage = (GLubyte*) malloc(4 * TexWidth * TexHeight * sizeof(GLubyte));
- assert(texImage);
-
- {
- GLint level = 0;
- GLint w = TexWidth, h = TexHeight;
- while (1) {
- int i, j;
-
- for (i = 0; i < h; i++) {
- for (j = 0;j < w; j++) {
- if (w==1 || h==1 || (((i / 2) ^ (j / 2)) & 1)) {
- /*if (j < i) {*/
- texImage[(i*w+j) * 4 + 0] = 255;
- texImage[(i*w+j) * 4 + 1] = 255;
- texImage[(i*w+j) * 4 + 2] = 255;
- texImage[(i*w+j) * 4 + 3] = 255;
- }
- else {
- texImage[(i*w+j) * 4 + 0] = color[level][0] * 255;
- texImage[(i*w+j) * 4 + 1] = color[level][1] * 255;
- texImage[(i*w+j) * 4 + 2] = color[level][2] * 255;
- texImage[(i*w+j) * 4 + 3] = color[level][3] * 255;
- }
- }
- }
-
- glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, w, h, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, texImage);
-
- printf("Texture level %d: %d x %d\n", level, w, h);
- if (!MipMap)
- break;
-
- if (w == 1 && h == 1)
- break;
- if (w > 1)
- w /= 2;
- if (h > 1)
- h /= 2;
- level++;
- }
- }
-
- free(texImage);
-
- glClearColor(0.25, 0.25, 0.25, 1.0);
- glEnable(GL_TEXTURE_2D);
-
- glViewport(0, 0, Width, Height);
-}
-
-
-
-static void
-Reshape(int width, int height)
-{
- float ar = (float) width /height;
- Width = width;
- Height = height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 2500.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 'z':
- Zpos--;
- break;
- case 'Z':
- Zpos++;
- break;
- case 'f':
- LinearFilter = !LinearFilter;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(redraw);
- init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/mipgen.c b/progs/tests/mipgen.c
deleted file mode 100644
index 48e52c9c31..0000000000
--- a/progs/tests/mipgen.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Test GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MAX_LEVEL
- * Brian Paul
- * 10 May 2006
- */
-
-
-/* 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.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLfloat LodBias = 6.0; /* make smallest miplevel visible */
-static GLuint texImage;
-
-#define WIDTH 2
-#define HEIGHT 2
-
-static void
-InitValues(void)
-{
- LodBias = 6.0; /* make smallest miplevel visible */
-}
-
-
-static void MakeImage(void)
-{
- const GLubyte color0[4] = { 0xff, 0x80, 0x20, 0xff };
- const GLubyte color1[4] = { 0x10, 0x20, 0x40, 0xff };
-
- GLubyte img[WIDTH*HEIGHT*3];
- int i, j;
- for (i = 0; i < HEIGHT; i++) {
- for (j = 0; j < WIDTH; j++) {
- int k = (i * WIDTH + j) * 3;
- int p = ((i+j)%2);
- if (p == 0) {
- img[k + 0] = color0[0];
- img[k + 1] = color0[1];
- img[k + 2] = color0[2];
- }
- else {
- img[k + 0] = color1[0];
- img[k + 1] = color1[1];
- img[k + 2] = color1[2];
- }
- }
- }
-
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, WIDTH, HEIGHT, 0,
- GL_RGB, GL_UNSIGNED_BYTE, img);
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
-}
-
-
-
-static void myinit(void)
-{
- InitValues();
-
- glShadeModel(GL_FLAT);
-
- glTranslatef(0.0, 0.0, -3.6);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glGenTextures(1, &texImage);
- glBindTexture(GL_TEXTURE_2D, texImage);
- MakeImage();
-
- 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);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1);
-
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, -1);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 1);
-
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST_MIPMAP_NEAREST);
-}
-
-
-
-static void display(void)
-{
- GLfloat tcm = 1.0;
- glBindTexture(GL_TEXTURE_2D, texImage);
-
- printf("Bias=%.2g\n", LodBias);
- fflush(stdout);
-
- glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, LodBias);
-
- glClear(GL_COLOR_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) {
- case 'l':
- LodBias -= 0.25;
- break;
- case 'L':
- LodBias += 0.25;
- break;
- case ' ':
- InitValues();
- break;
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-
-static void usage(void)
-{
- printf("usage:\n");
- printf(" l/L decrease/increase GL_TEXTURE_LOD_BIAS\n");
- printf(" SPACE reset values\n");
-}
-
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
- 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/mipmap_comp.c b/progs/tests/mipmap_comp.c
deleted file mode 100644
index 122d157949..0000000000
--- a/progs/tests/mipmap_comp.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* 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>
-
-#define SIZE 16 /* not larger then 16 */
-
-static GLint BaseLevel = 0, MaxLevel = 9;
-static GLfloat MinLod = -1, MaxLod = 9;
-static GLfloat LodBias = 0.0;
-static GLboolean NearestFilter = GL_TRUE;
-static GLuint texImage;
-
-
-static void
-initValues(void)
-{
- BaseLevel = 0;
- MaxLevel = 9;
- MinLod = -1;
- MaxLod = 2;
- LodBias = 5.0;
- NearestFilter = GL_TRUE;
-}
-
-
-static void
-makeImage(int level, int width, int height)
-{
-#if 0
- GLubyte img[SIZE*SIZE*3];
- int i, j;
-
- (void)size;
- for (i = 0; i < height; i++) {
- for (j = 0; j < width; j++) {
- int k = (i * width + j) * 3;
- img[k + 0] = 255 * ((level + 1) % 2);
- img[k + 1] = 255 * ((level + 1) % 2);
- img[k + 2] = 255 * ((level + 1) % 2);
- }
- }
-
- glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, img);
-#else
- GLubyte img[128];
- GLint size[] = {
- 128, /* 16x16 */
- 32, /* 8x8 */
- 8, /* 4x4 */
- 8, /* 2x2 */
- 8, /* 1x1 */
- };
- int i;
- int value = ((level + 1) % 2) * 0xffffffff;
- memset(img, 0, 128);
-
- /* generate black and white mipmap levels */
- if (value)
- for (i = 0; i < size[level] / 4; i += 2)
- ((int*)img)[i] = value;
-
- glCompressedTexImage2D(GL_TEXTURE_2D, level,
- GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
- width, height, 0,
- size[level], img);
-#endif
-}
-
-
-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");
- 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) {
- 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;
- case ' ':
- initValues();
- break;
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-
-static void
-usage(void)
-{
- printf("usage:\n");
- printf(" b/B decrease/increase GL_TEXTURE_BASE_LEVEL\n");
- printf(" m/M decrease/increase GL_TEXTURE_MAX_LEVEL\n");
- printf(" n/N decrease/increase GL_TEXTURE_MIN_LOD\n");
- printf(" x/X decrease/increase GL_TEXTURE_MAX_LOD\n");
- printf(" l/L decrease/increase GL_TEXTURE_LOD_BIAS\n");
- printf(" f toggle nearest/linear filtering\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();
-
- if (!glutExtensionSupported("GL_EXT_texture_compression_s3tc")) {
- fprintf(stderr, "This test requires GL_EXT_texture_compression_s3tc.\n");
- exit(1);
- }
-
- myInit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- usage();
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/tests/mipmap_comp_tests.c b/progs/tests/mipmap_comp_tests.c
deleted file mode 100644
index b93a5c6139..0000000000
--- a/progs/tests/mipmap_comp_tests.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* 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>
-
-#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/mipmap_limits.c b/progs/tests/mipmap_limits.c
deleted file mode 100644
index 9418e90981..0000000000
--- a/progs/tests/mipmap_limits.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/* Test GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MAX_LEVEL
- * Brian Paul
- * 10 May 2006
- */
-
-
-/* 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.c
- * This program demonstrates using mipmaps for texture maps.
- * To overtly show the effect of mipmaps, each mipmap reduction
- * level has a solidly colored, contrasting texture image.
- * Thus, the quadrilateral which is drawn is drawn with several
- * different colors.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLint BaseLevel = 0, MaxLevel = 9;
-static GLfloat MinLod = -1, MaxLod = 9;
-static GLfloat LodBias = 0.0;
-static GLboolean NearestFilter = GL_TRUE;
-static GLuint texImage, texColor, texCurrent;
-
-
-static void
-InitValues(void)
-{
- BaseLevel = 0;
- MaxLevel = 9;
- MinLod = -1;
- MaxLod = 9;
- LodBias = 0.0;
- NearestFilter = GL_TRUE;
-}
-
-
-static void
-MakeImage(int level, int width, int height, const GLubyte color[4])
-{
- const int makeStripes = 0;
- GLubyte img[512 * 512 * 3];
- int i, j;
- for (i = 0; i < height; i++) {
- for (j = 0; j < width; j++) {
- int k = (i * width + j) * 3;
- int p = (i / 8) & makeStripes;
- if (p == 0) {
- img[k + 0] = color[0];
- img[k + 1] = color[1];
- img[k + 2] = color[2];
- }
- else {
- img[k + 0] = 0;
- img[k + 1] = 0;
- img[k + 2] = 0;
- }
- }
- }
-
- glTexImage2D(GL_TEXTURE_2D, level, GL_RGB, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, img);
-}
-
-
-static void
-makeImages(int image)
-{
-#define WIDTH 512
-#define HEIGHT 512
- if (glutExtensionSupported("GL_SGIS_generate_mipmap") && image) {
- /* test auto mipmap generation */
- GLint width, height, i;
- GLenum format;
- GLubyte *image = LoadRGBImage(TEXTURE_FILE, &width, &height, &format);
- if (!image) {
- printf("Error: could not load texture image %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* resize */
- if (width != WIDTH || height != HEIGHT) {
- GLubyte *newImage = malloc(WIDTH * HEIGHT * 4);
- gluScaleImage(format, width, height, GL_UNSIGNED_BYTE, image,
- WIDTH, HEIGHT, GL_UNSIGNED_BYTE, newImage);
- free(image);
- image = newImage;
- }
- printf("Using GL_SGIS_generate_mipmap\n");
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
- glTexImage2D(GL_TEXTURE_2D, 0, format, WIDTH, HEIGHT, 0,
- format, GL_UNSIGNED_BYTE, image);
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
- free(image);
-
- /* make sure mipmap was really generated correctly */
- width = WIDTH;
- height = HEIGHT;
- for (i = 0; i < 10; i++) {
- GLint w, h;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_WIDTH, &w);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_HEIGHT, &h);
- printf("Level %d size: %d x %d\n", i, w, h);
- width /= 2;
- height /= 2;
- }
- }
- else {
- static const GLubyte colors[10][3] = {
- {128, 128, 128},
- {0, 255, 255},
- {255, 255, 0},
- {255, 0, 255},
- {255, 0, 0},
- {0, 255, 0},
- {0, 0, 255},
- {0, 255, 255},
- {255, 255, 0},
- {255, 255, 255}
- };
- int i, sz = 512;
-
- for (i = 0; i < 10; i++) {
- MakeImage(i, sz, sz, colors[i]);
- printf("Level %d size: %d x %d\n", i, sz, sz);
- sz /= 2;
- }
- }
-}
-
-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(1);
- glGenTextures(1, &texColor);
- glBindTexture(GL_TEXTURE_2D, texColor);
- makeImages(0);
-
- texCurrent = texImage;
-
- 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, texCurrent);
-
- 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");
- 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
-usage(void)
-{
- printf("usage:\n");
- printf(" b/B decrease/increase GL_TEXTURE_BASE_LEVEL\n");
- printf(" m/M decrease/increase GL_TEXTURE_MAX_LEVEL\n");
- printf(" n/N decrease/increase GL_TEXTURE_MIN_LOD\n");
- printf(" x/X decrease/increase GL_TEXTURE_MAX_LOD\n");
- printf(" l/L decrease/increase GL_TEXTURE_LOD_BIAS\n");
- printf(" f toggle nearest/linear filtering\n");
- printf(" t toggle texture color/image\n");
- printf(" SPACE reset values\n");
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- (void) x;
- (void) y;
- switch (k) {
- 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;
- case 't':
- if (texCurrent == texColor)
- texCurrent = texImage;
- else
- texCurrent = texColor;
- break;
- case ' ':
- InitValues();
- /* fall-through */
- case 'u':
- usage();
- break;
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-
-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/mipmap_view.c b/progs/tests/mipmap_view.c
deleted file mode 100644
index eb52197052..0000000000
--- a/progs/tests/mipmap_view.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
- * Test mipmap generation and lod bias.
- *
- * Brian Paul
- * 17 March 2008
- */
-
-
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.h"
-
-#define TEXTURE_FILE "../images/arch.rgb"
-
-#define LEVELS 8
-#define SIZE (1<<LEVELS)
-static int TexWidth = SIZE, TexHeight = SIZE;
-static int WinWidth = 1044, WinHeight = 900;
-static GLfloat Bias = 0.0;
-static GLboolean ScaleQuads = GL_FALSE;
-static GLboolean Linear = GL_FALSE;
-static GLint Win = 0;
-static GLint RenderTextureLevel = 0;
-static GLuint TexObj;
-
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-
-
-static void
-MipGenTexture( void )
-{
- /* test auto mipmap generation */
- GLint width, height, i;
- GLenum format;
- GLubyte *image = LoadRGBImage(TEXTURE_FILE, &width, &height, &format);
- if (!image) {
- printf("Error: could not load texture image %s\n", TEXTURE_FILE);
- exit(1);
- }
- /* resize to TexWidth x TexHeight */
- if (width != TexWidth || height != TexHeight) {
- GLubyte *newImage = malloc(TexWidth * TexHeight * 4);
-
- fprintf(stderr, "rescale %d %d to %d %d\n", width, height,
- TexWidth, TexHeight);
- fflush(stderr);
-
- gluScaleImage(format, width, height, GL_UNSIGNED_BYTE, image,
- TexWidth, TexHeight, GL_UNSIGNED_BYTE, newImage);
- free(image);
- image = newImage;
- }
- printf("Using GL_SGIS_generate_mipmap\n");
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
- glTexImage2D(GL_TEXTURE_2D, 0, format, TexWidth, TexHeight, 0,
- format, GL_UNSIGNED_BYTE, image);
- free(image);
-
- /* make sure mipmap was really generated correctly */
- width = TexWidth;
- height = TexHeight;
- for (i = 0; i < 9; i++) {
- GLint w, h;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_WIDTH, &w);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, i, GL_TEXTURE_HEIGHT, &h);
- printf("Level %d size: %d x %d\n", i, w, h);
- assert(w == width);
- assert(h == height);
- width /= 2;
- height /= 2;
- }
-
-
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
-}
-
-
-
-static void
-ResetTextureLevel( int i )
-{
- GLubyte tex2d[SIZE*SIZE][4];
-
- {
- GLint Width = TexWidth / (1 << i);
- GLint Height = TexHeight / (1 << i);
- GLint s, t;
-
- for (s = 0; s < Width; s++) {
- for (t = 0; t < Height; t++) {
- tex2d[t*Width+s][0] = ((s / 16) % 2) ? 0 : 255;
- tex2d[t*Width+s][1] = ((t / 16) % 2) ? 0 : 255;
- tex2d[t*Width+s][2] = 128;
- tex2d[t*Width+s][3] = 255;
- }
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glTexImage2D(GL_TEXTURE_2D, i, GL_RGB, Width, Height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, tex2d);
- }
-}
-
-
-static void
-ResetTexture( void )
-{
-#if 0
- /* This doesn't work so well as the arch texture is 512x512.
- */
- LoadRGBMipmaps(TEXTURE_FILE, GL_RGB);
-#else
- {
- int i;
-
- for (i = 0; i <= LEVELS; i++)
- {
- ResetTextureLevel(i);
- }
- }
-#endif
-}
-
-
-
-
-
-
-
-static void
-RenderTexture( void )
-{
- GLenum status;
- GLuint MyFB;
-
- fprintf(stderr, "RenderTextureLevel %d\n", RenderTextureLevel);
- fflush(stderr);
-
- /* gen framebuffer id, delete it, do some assertions, just for testing */
- glGenFramebuffersEXT(1, &MyFB);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
- assert(glIsFramebufferEXT(MyFB));
-
- CheckError(__LINE__);
-
- /* Render color to texture */
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
- GL_COLOR_ATTACHMENT0_EXT,
- GL_TEXTURE_2D, TexObj,
- RenderTextureLevel);
-
-
-
- CheckError(__LINE__);
-
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -15.0);
-
- status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
- if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- printf("Framebuffer incomplete!!!\n");
- }
-
- glViewport(0, 0,
- TexWidth / (1 << RenderTextureLevel),
- TexHeight / (1 << RenderTextureLevel));
-
- glClearColor(0.5, 0.5, 1.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- CheckError(__LINE__);
-
- glBegin(GL_POLYGON);
- glColor3f(1, 0, 0);
- glVertex2f(-1, -1);
- glColor3f(0, 1, 0);
- glVertex2f(1, -1);
- glColor3f(0, 0, 1);
- glVertex2f(0, 1);
- glEnd();
-
-
- /* Bind normal framebuffer */
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- CheckError(__LINE__);
-
- glDeleteFramebuffersEXT(1, &MyFB);
- CheckError(__LINE__);
-
- glClearColor(0, 0, 0, 0);
-}
-
-static void
-Display(void)
-{
- int x, y, bias;
- char str[100];
- int texWidth = TexWidth, texHeight = TexHeight;
-
- glViewport(0, 0, WinHeight, WinHeight);
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, WinWidth, 0, WinHeight, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glColor3f(1,1,1);
-
- if (Linear) {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- }
- else {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
-
- y = WinHeight - 300;
- x = 4;
-
- for (bias = -1; bias < 11; bias++) {
-
- if (ScaleQuads) {
- if (bias > 0) {
- if (texWidth == 1 && texHeight == 1)
- break;
- texWidth = TexWidth >> bias;
- texHeight = TexHeight >> bias;
- if (texWidth < 1)
- texWidth = 1;
- if (texHeight < 1)
- texHeight = 1;
- }
- glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, 0.0);
- }
- else {
- glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, bias);
- }
-
- glRasterPos2f(x, y + TexHeight + 5);
- if (ScaleQuads)
- sprintf(str, "Texture Level %d: %d x %d",
- (bias < 0 ? 0 : bias),
- texWidth, texHeight);
- else
- sprintf(str, "Texture LOD Bias = %d", bias);
- PrintString(str);
-
- glPushMatrix();
- glTranslatef(x, y, 0);
-
- glEnable(GL_TEXTURE_2D);
-
- glBegin(GL_POLYGON);
- glTexCoord2f(0, 0); glVertex2f(0, 0);
- glTexCoord2f(1, 0); glVertex2f(texWidth, 0);
- glTexCoord2f(1, 1); glVertex2f(texWidth, texHeight);
- glTexCoord2f(0, 1); glVertex2f(0, texHeight);
- glEnd();
-
- glPopMatrix();
-
- glDisable(GL_TEXTURE_2D);
-
- x += TexWidth + 4;
- if (x >= WinWidth) {
- x = 4;
- y -= 300;
- }
- }
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- WinWidth = width;
- WinHeight = height;
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- Bias -= 10;
- break;
- case 'B':
- Bias += 10;
- break;
- case 'l':
- Linear = !Linear;
- break;
- case 'v':
- RenderTextureLevel++;
- break;
- case 'V':
- RenderTextureLevel--;
- break;
- case 'r':
- RenderTexture();
- break;
- case 'X':
- ResetTexture();
- break;
- case 'x':
- ResetTextureLevel(RenderTextureLevel);
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- Bias = 100.0 * (key - '0');
- break;
- case 's':
- ScaleQuads = !ScaleQuads;
- break;
- case ' ':
- MipGenTexture();
- Bias = 0;
- Linear = 0;
- RenderTextureLevel = 0;
- ScaleQuads = 0;
- break;
-
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- GLfloat maxBias;
-
- if (!glutExtensionSupported("GL_EXT_texture_lod_bias")) {
- printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_SGIS_generate_mipmap")) {
- printf("Sorry, GL_SGIS_generate_mipmap not supported by this renderer.\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(1, &TexObj);
- glBindTexture(GL_TEXTURE_2D, TexObj);
-
- if (1)
- MipGenTexture();
- else
- ResetTexture();
-
- /* mipmapping required for this extension */
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &maxBias);
-
- printf("GL_RENDERER: %s\n", (char*) glGetString(GL_RENDERER));
- printf("LOD bias range: [%g, %g]\n", -maxBias, maxBias);
-
- printf("Press 's' to toggle quad scaling\n");
-}
-
-
-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(Display);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/multipal.c b/progs/tests/multipal.c
deleted file mode 100644
index 4a94016978..0000000000
--- a/progs/tests/multipal.c
+++ /dev/null
@@ -1,374 +0,0 @@
-
-/*
- * Test multitexture and paletted textures.
- */
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stddef.h> /* for ptrdiff_t, referenced by GL.h when GL_GLEXT_LEGACY defined */
-#ifdef _WIN32
-#include <windows.h>
-#endif
-#define GL_GLEXT_LEGACY
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "../util/readtex.c" /* I know, this is a hack. */
-
-#define TEXTURE_1_FILE "../images/tile.rgb"
-#define TEXTURE_2_FILE "../images/reflect.rgb"
-
-#define TEX0 1
-#define TEX1 2
-#define TEXBOTH 3
-#define ANIMATE 10
-#define QUIT 100
-
-static GLboolean Animate = GL_TRUE;
-
-static GLfloat Drift = 0.0;
-static GLfloat Xrot = 20.0, Yrot = 30.0, Zrot = 0.0;
-
-
-
-static void Idle( void )
-{
- if (Animate) {
- Drift += 0.05;
- if (Drift >= 1.0)
- Drift = 0.0;
-
-#ifdef GL_ARB_multitexture
- glActiveTextureARB(GL_TEXTURE0_ARB);
-#endif
- glMatrixMode(GL_TEXTURE);
- glLoadIdentity();
- glTranslatef(Drift, 0.0, 0.0);
- glMatrixMode(GL_MODELVIEW);
-
-#ifdef GL_ARB_multitexture
- glActiveTextureARB(GL_TEXTURE1_ARB);
-#endif
- glMatrixMode(GL_TEXTURE);
- glLoadIdentity();
- glTranslatef(0.0, Drift, 0.0);
- glMatrixMode(GL_MODELVIEW);
-
- glutPostRedisplay();
- }
-}
-
-
-static void DrawObject(void)
-{
- glBegin(GL_QUADS);
-
-#ifdef GL_ARB_multitexture
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 0.0);
- glVertex2f(-1.0, -1.0);
-
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 0.0);
- glVertex2f(1.0, -1.0);
-
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 2.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 1.0);
- glVertex2f(1.0, 1.0);
-
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 2.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 1.0);
- glVertex2f(-1.0, 1.0);
-#else
- glTexCoord2f(0.0, 0.0);
- glVertex2f(-1.0, -1.0);
-
- glTexCoord2f(1.0, 0.0);
- glVertex2f(1.0, -1.0);
-
- glTexCoord2f(1.0, 1.0);
- glVertex2f(1.0, 1.0);
-
- glTexCoord2f(0.0, 1.0);
- glVertex2f(-1.0, 1.0);
-#endif
-
- glEnd();
-}
-
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glScalef(5.0, 5.0, 5.0);
- DrawObject();
- 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, 10.0, 100.0 );
- /*glOrtho( -6.0, 6.0, -6.0, 6.0, 10.0, 100.0 );*/
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -70.0 );
-}
-
-
-static void ModeMenu(int entry)
-{
- GLboolean enable0 = GL_FALSE, enable1 = GL_FALSE;
- if (entry==TEX0) {
- enable0 = GL_TRUE;
- }
- else if (entry==TEX1) {
- enable1 = GL_TRUE;
- }
- else if (entry==TEXBOTH) {
- enable0 = GL_TRUE;
- enable1 = GL_TRUE;
- }
- else if (entry==ANIMATE) {
- Animate = !Animate;
- }
- else if (entry==QUIT) {
- exit(0);
- }
-
- if (entry != ANIMATE) {
-#ifdef GL_ARB_multitexture
- glActiveTextureARB(GL_TEXTURE0_ARB);
-#endif
- if (enable0) {
- glEnable(GL_TEXTURE_2D);
- }
- else
- glDisable(GL_TEXTURE_2D);
-
-#ifdef GL_ARB_multitexture
- glActiveTextureARB(GL_TEXTURE1_ARB);
-#endif
- if (enable1) {
- glEnable(GL_TEXTURE_2D);
- }
- else
- glDisable(GL_TEXTURE_2D);
- }
-
- glutPostRedisplay();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 load_tex(const char *fname, int channel)
-{
- GLubyte *image;
- GLenum format;
- GLint w, h;
- GLubyte *grayImage;
- int i;
- GLubyte table[256][4];
-
- image = LoadRGBImage(fname, &w, &h, &format);
- if (!image)
- exit(1);
-
- printf("%s %d x %d\n", fname, w, h);
- grayImage = malloc(w * h * 1);
- assert(grayImage);
- for (i = 0; i < w * h; i++) {
- int g = (image[i*3+0] + image[i*3+1] + image[i*3+2]) / 3;
- assert(g < 256);
- grayImage[i] = g;
- }
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX, w, h, 0, GL_COLOR_INDEX,
- GL_UNSIGNED_BYTE, grayImage);
-
- for (i = 0; i < 256; i++) {
- table[i][0] = channel ? i : 0;
- table[i][1] = i;
- table[i][2] = channel ? 0 : i;
- table[i][3] = 255;
- }
-
- glColorTableEXT(GL_TEXTURE_2D, /* target */
- GL_RGBA, /* internal format */
- 256, /* table size */
- GL_RGBA, /* table format */
- GL_UNSIGNED_BYTE, /* table type */
- table); /* the color table */
-
- free(grayImage);
- free(image);
-}
-
-
-
-static void Init( int argc, char *argv[] )
-{
- GLuint texObj[2];
- GLint units;
-
- if (!glutExtensionSupported("GL_ARB_multitexture")) {
- printf("Sorry, GL_ARB_multitexture not supported by this renderer.\n");
- exit(1);
- }
- if (!glutExtensionSupported("GL_EXT_paletted_texture")) {
- printf("Sorry, GL_EXT_paletted_texture not supported by this renderer.\n");
- exit(1);
- }
-
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &units);
- printf("%d texture units supported\n", units);
-
- /* allocate two texture objects */
- glGenTextures(2, texObj);
-
- /* setup texture obj 0 */
- glBindTexture(GL_TEXTURE_2D, texObj[0]);
-#ifdef LINEAR_FILTER
- /* linear filtering looks much nicer but is much slower for Mesa */
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-foo
-#else
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-#endif
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- load_tex(TEXTURE_1_FILE, 0);
-#if 0
- if (!LoadRGBMipmaps(TEXTURE_1_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
-#endif
-
- /* setup texture obj 1 */
- glBindTexture(GL_TEXTURE_2D, texObj[1]);
-#ifdef LINEAR_FILTER
- /* linear filtering looks much nicer but is much slower for Mesa */
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-foo
-#else
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-#endif
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- load_tex(TEXTURE_2_FILE, 1);
-#if 0
- if (!LoadRGBMipmaps(TEXTURE_2_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
-#endif
-
- /* now bind the texture objects to the respective texture units */
-#ifdef GL_ARB_multitexture
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glBindTexture(GL_TEXTURE_2D, texObj[0]);
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glBindTexture(GL_TEXTURE_2D, texObj[1]);
-#endif
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- ModeMenu(TEXBOTH);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutIdleFunc( Idle );
-
- glutCreateMenu(ModeMenu);
- glutAddMenuEntry("Texture 0", TEX0);
- glutAddMenuEntry("Texture 1", TEX1);
- glutAddMenuEntry("Multi-texture", TEXBOTH);
- glutAddMenuEntry("Toggle Animation", ANIMATE);
- glutAddMenuEntry("Quit", QUIT);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/multitexarray.c b/progs/tests/multitexarray.c
deleted file mode 100644
index 518fee2992..0000000000
--- a/progs/tests/multitexarray.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Test vertex arrays and multitexture.
- * Press 'a' to toggle vertex arrays on/off.
- * When you run this program you should see a square with four colors:
- *
- * +------+------+
- * |yellow| pink |
- * +------+------+
- * |green | blue |
- * +------+------+
- */
-
-
-#include <assert.h>
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include "GL/glew.h"
-#include "GL/glut.h"
-
-static GLuint Window = 0;
-
-static GLuint TexObj[2];
-static GLfloat Angle = 0.0f;
-static GLboolean UseArrays = 1, Anim = 0;
-
-static GLfloat VertArray[4][2] = {
- {-1.2, -1.2}, {1.2, -1.2}, {1.2, 1.2}, {-1.2, 1.2}
-};
-
-static GLfloat Tex0Array[4][2] = {
- {0, 0}, {1, 0}, {1, 1}, {0, 1}
-};
-
-static GLfloat Tex1Array[4][2] = {
- {0, 0}, {1, 0}, {1, 1}, {0, 1}
-};
-
-
-static void init_arrays(void)
-{
- glVertexPointer(2, GL_FLOAT, 0, VertArray);
- glEnableClientState(GL_VERTEX_ARRAY);
-
- glClientActiveTextureARB(GL_TEXTURE0_ARB);
- glTexCoordPointer(2, GL_FLOAT, 0, Tex0Array);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-
- glClientActiveTextureARB(GL_TEXTURE1_ARB);
- glTexCoordPointer(2, GL_FLOAT, 0, Tex1Array);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-}
-
-
-static void draw( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glColor3f( 0.0, 0.0, 0.0 );
-
- /* draw first polygon */
- glPushMatrix();
- glRotatef( Angle, 0.0, 0.0, 1.0 );
-
- if (UseArrays) {
- glDrawArrays(GL_POLYGON, 0, 4);
- }
- else {
- glBegin( GL_POLYGON );
- glTexCoord2f( 0.0, 0.0 );
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 0.0);
- glVertex2f( -1.0, -1.0 );
-
- glTexCoord2f( 1.0, 0.0 );
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 0.0);
- glVertex2f( 1.0, -1.0 );
-
- glTexCoord2f( 1.0, 1.0 );
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 1.0);
- glVertex2f( 1.0, 1.0 );
-
- glTexCoord2f( 0.0, 1.0 );
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 1.0);
- glVertex2f( -1.0, 1.0 );
- glEnd();
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-
-static void idle( void )
-{
- Angle += 2.0;
- glutPostRedisplay();
-}
-
-
-
-/* change view Angle, exit upon ESC */
-static void key(unsigned char k, int x, int y)
-{
- (void) x;
- (void) y;
- switch (k) {
- case 'a':
- UseArrays = !UseArrays;
- printf("UseArrays: %d\n", UseArrays);
- break;
- case ' ':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(idle);
- else
- glutIdleFunc(NULL);
- break;
- case 27:
- glDeleteTextures( 2, TexObj );
- glutDestroyWindow(Window);
- exit(0);
- }
- glutPostRedisplay();
-}
-
-
-
-/* new window size or exposure */
-static void reshape( int width, int height )
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/
- glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -8.0 );
-}
-
-
-static void init( void )
-{
- static int width=8, height=8;
- GLubyte tex[64][3];
- GLint i, j;
-
- /* generate texture object IDs */
- glGenTextures( 2, TexObj );
-
- /*
- * setup first texture object
- */
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glEnable( GL_TEXTURE_2D );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD );
-
- glBindTexture( GL_TEXTURE_2D, TexObj[0] );
- assert(glIsTexture(TexObj[0]));
-
- /* red over black */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (i < height / 2) {
- tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0;
- }
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
-
-
- /*
- * setup second texture object
- */
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glEnable( GL_TEXTURE_2D );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD );
-
- glBindTexture( GL_TEXTURE_2D, TexObj[1] );
- assert(glIsTexture(TexObj[1]));
-
- /* left=green, right = blue */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (j < width / 2) {
- tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255;
- }
- }
- }
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
-}
-
-
-
-int main( int argc, char *argv[] )
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(300, 300);
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
-
- Window = glutCreateWindow("Texture Objects");
- glewInit();
- if (!Window) {
- exit(1);
- }
-
- init();
- init_arrays();
-
- glutReshapeFunc( reshape );
- glutKeyboardFunc( key );
- if (Anim)
- glutIdleFunc( idle );
- glutDisplayFunc( draw );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/multiwindow.c b/progs/tests/multiwindow.c
deleted file mode 100644
index 6db552d195..0000000000
--- a/progs/tests/multiwindow.c
+++ /dev/null
@@ -1,170 +0,0 @@
-
-/*
- * A skeleton/template GLUT program
- *
- * Written by Brian Paul and in the public domain.
- */
-
-
-/*
- * Revision 1.1 2001/08/21 14:25:31 brianp
- * simple multi-window GLUT test prog
- *
- * Revision 1.1.1.1 1999/08/19 00:55:42 jtg
- * Imported sources
- *
- * Revision 1.2 1998/11/07 14:20:14 brianp
- * added simple rotation, animation of cube
- *
- * Revision 1.1 1998/11/07 14:14:37 brianp
- * Initial revision
- *
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLint Window[2];
-
-static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
-static GLboolean Anim = GL_TRUE;
-
-
-static void Idle( void )
-{
- Xrot += 3.0;
- Yrot += 4.0;
- Zrot += 2.0;
-
- glutSetWindow(Window[0]);
- glutPostRedisplay();
- glutSetWindow(Window[1]);
- glutPostRedisplay();
-}
-
-
-static void Display0( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- glColor3f(0, 1, 0);
- glutSolidCube(2.0);
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Display1( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- glShadeModel(GL_FLAT);
-
- glBegin(GL_TRIANGLE_STRIP);
- glColor3f(1, 0, 0);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glColor3f(1, 0, 0);
- glVertex2f( -1, 1);
- glColor3f(0, 0, 1);
- glVertex2f( 1, 1);
- glEnd();
-
- 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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- const GLfloat step = 3.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 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
-
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- Window[0] = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display0 );
- glutIdleFunc(Idle);
- printf("GL_RENDERER[0] = %s\n", (char *) glGetString(GL_RENDERER));
-
- glutInitWindowPosition( 500, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- Window[1] = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display1 );
- glutIdleFunc(Idle);
- printf("GL_RENDERER[1] = %s\n", (char *) glGetString(GL_RENDERER));
-
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/tests/no_s3tc.c b/progs/tests/no_s3tc.c
deleted file mode 100644
index c4132cd956..0000000000
--- a/progs/tests/no_s3tc.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file no_s3tc.c
- * Test program to verify the behavior of an OpenGL implementation when
- * an application calls \c glCompressedTexImage2D with an unsupported (but
- * valid) compression format. The most common example is calling it with
- * \c GL_COMPRESSED_RGBA_S3TC_DXT1_EXT when GL_EXT_texture_compression_s3tc
- * is not supported.
- *
- * This tests Mesa bug #1028405.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static unsigned data[16];
-
-int
-main( int argc, char ** argv )
-{
- float gl_version;
- GLenum format;
- GLuint size;
- GLuint width;
- GLenum err;
-
-
- glutInit( & argc, argv );
- glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
-
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 300, 300 );
- glutCreateWindow( "No S3TC Test" );
- glewInit();
-
- gl_version = strtod( (const char *) glGetString( GL_VERSION ), NULL );
- if ( ! glutExtensionSupported( "GL_ARB_texture_compression" )
- && (gl_version < 1.3) ) {
- fprintf( stderr, "Either OpenGL 1.3 or GL_ARB_texture_compression "
- "must be supported.\n" );
- return( EXIT_SUCCESS );
- }
-
-
- if ( ! glutExtensionSupported( "GL_EXT_texture_compression_s3tc" ) ) {
- format = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
- width = 4;
- size = 8;
- }
- else if ( ! glutExtensionSupported( "GL_3DFX_texture_compression_FXT1" ) ) {
- format = GL_COMPRESSED_RGBA_FXT1_3DFX;
- width = 8;
- size = 16;
- }
- else {
- fprintf( stderr, "Either GL_EXT_texture_compression_s3tc or "
- "GL_3DFX_texture_compression_FXT1 must NOT be supported.\n" );
- return( EXIT_SUCCESS );
- }
-
- glCompressedTexImage2D( GL_TEXTURE_2D, 0, format, width, 4, 0,
- size, data );
- err = glGetError();
- if ( err != GL_INVALID_ENUM ) {
- fprintf( stderr, "GL error 0x%04x should have been generated, but "
- "0x%04x was generated instead.\n", GL_INVALID_ENUM, err );
- }
-
- return (err == GL_INVALID_ENUM) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
diff --git a/progs/tests/occlude.c b/progs/tests/occlude.c
deleted file mode 100644
index 8f7b90984e..0000000000
--- a/progs/tests/occlude.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * GL_HP_occlustion_test demo
- *
- * Brian Paul
- * 31 March 2000
- *
- * 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.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glut.h>
-#include <GL/glext.h>
-
-
-static GLfloat Xpos = 0;
-static GLboolean Anim = GL_TRUE;
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-
-static void Idle(void)
-{
- static int lastTime = 0;
- static int sign = +1;
- int time = glutGet(GLUT_ELAPSED_TIME);
- float step;
-
- if (lastTime == 0)
- lastTime = time;
- else if (time - lastTime < 20) /* 50Hz update */
- return;
-
- step = (time - lastTime) / 1000.0 * sign;
- lastTime = time;
-
- Xpos += step;
-
- if (Xpos > 2.5) {
- Xpos = 2.5;
- sign = -1;
- }
- else if (Xpos < -2.5) {
- Xpos = -2.5;
- sign = +1;
- }
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- GLboolean result;
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- 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 );
-
- /* draw the occluding polygons */
- glColor3f(0, 0.6, 0.8);
- glBegin(GL_QUADS);
- glVertex2f(-1.6, -1.5);
- glVertex2f(-0.4, -1.5);
- glVertex2f(-0.4, 1.5);
- glVertex2f(-1.6, 1.5);
-
- glVertex2f( 0.4, -1.5);
- glVertex2f( 1.6, -1.5);
- glVertex2f( 1.6, 1.5);
- glVertex2f( 0.4, 1.5);
- glEnd();
-
- /* draw the test polygon with occlusion testing */
- glPushMatrix();
- glTranslatef(Xpos, 0, -0.5);
- glScalef(0.3, 0.3, 1.0);
- glRotatef(-90.0 * Xpos, 0, 0, 1);
-
- glEnable(GL_OCCLUSION_TEST_HP); /* NOTE: enabling the occlusion test */
- /* doesn't clear the result flag! */
- glColorMask(0, 0, 0, 0);
- glDepthMask(GL_FALSE);
- /* this call clear's the result flag. Not really needed for this demo. */
- glGetBooleanv(GL_OCCLUSION_TEST_RESULT_HP, &result);
-
- glBegin(GL_POLYGON);
- glVertex3f(-1, -1, 0);
- glVertex3f( 1, -1, 0);
- glVertex3f( 1, 1, 0);
- glVertex3f(-1, 1, 0);
- glEnd();
-
- glGetBooleanv(GL_OCCLUSION_TEST_RESULT_HP, &result);
- /* turn off occlusion testing */
- glDisable(GL_OCCLUSION_TEST_HP);
- glColorMask(1, 1, 1, 1);
- glDepthMask(GL_TRUE);
-
- /* draw the green rect, so we can see what's going on */
- glColor3f(0.8, 0.5, 0);
- glBegin(GL_POLYGON);
- glVertex3f(-1, -1, 0);
- glVertex3f( 1, -1, 0);
- glVertex3f( 1, 1, 0);
- glVertex3f(-1, 1, 0);
- glEnd();
-
- glPopMatrix();
-
-
- /* Print result message */
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-
- glColor3f(1, 1, 1);
- glRasterPos3f(-0.25, -0.7, 0);
-
- if (result)
- PrintString(" Visible");
- else
- PrintString("Fully Occluded");
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc( Idle );
- else
- glutIdleFunc( NULL );
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 0.1;
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_LEFT:
- Xpos -= step;
- break;
- case GLUT_KEY_RIGHT:
- Xpos += step;
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char *ext = (const char *) glGetString(GL_EXTENSIONS);
- if (!strstr(ext, "GL_HP_occlusion_test")) {
- printf("Sorry, this demo requires the GL_HP_occlusion_test extension\n");
- exit(-1);
- }
-
- glEnable(GL_DEPTH_TEST);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutIdleFunc( Idle );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/packedpixels.c b/progs/tests/packedpixels.c
deleted file mode 100644
index 34df95549a..0000000000
--- a/progs/tests/packedpixels.c
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * Test packed pixel formats for textures.
- * Brian Paul
- * 12 May 2004
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-struct pixel_format {
- const char *name;
- GLenum format;
- GLenum type;
- GLint bytes;
- GLuint redTexel, greenTexel; /* with approx 51% alpha, when applicable */
-};
-
-static const struct pixel_format Formats[] = {
-
- { "GL_RGBA/GL_UNSIGNED_INT_8_8_8_8",
- GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, 4, 0xff000080, 0x00ff0080 },
- { "GL_RGBA/GL_UNSIGNED_INT_8_8_8_8_REV",
- GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, 4, 0x800000ff, 0x8000ff00 },
- { "GL_RGBA/GL_UNSIGNED_INT_10_10_10_2",
- GL_RGBA, GL_UNSIGNED_INT_10_10_10_2, 4, 0xffc00002, 0x3ff002 },
- { "GL_RGBA/GL_UNSIGNED_INT_2_10_10_10_REV",
- GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, 4, 0xc00003ff, 0xc00ffc00 },
- { "GL_RGBA/GL_UNSIGNED_SHORT_4_4_4_4",
- GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 2, 0xf008, 0x0f08 },
- { "GL_RGBA/GL_UNSIGNED_SHORT_4_4_4_4_REV",
- GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4_REV, 2, 0x800f, 0x80f0 },
- { "GL_RGBA/GL_UNSIGNED_SHORT_5_5_5_1",
- GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 2, 0xf801, 0x7c1 },
- { "GL_RGBA/GL_UNSIGNED_SHORT_1_5_5_5_REV",
- GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 2, 0x801f, 0x83e0 },
-
- { "GL_BGRA/GL_UNSIGNED_INT_8_8_8_8",
- GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, 4, 0x0000ff80, 0x00ff0080 },
- { "GL_BGRA/GL_UNSIGNED_INT_8_8_8_8_REV",
- GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 4, 0x80ff0000, 0x8000ff00 },
- { "GL_BGRA/GL_UNSIGNED_SHORT_4_4_4_4",
- GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4, 2, 0x00f8, 0x0f08 },
- { "GL_BGRA/GL_UNSIGNED_SHORT_4_4_4_4_REV",
- GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV, 2, 0x8f00, 0x80f0 },
- { "GL_BGRA/GL_UNSIGNED_SHORT_5_5_5_1",
- GL_BGRA, GL_UNSIGNED_SHORT_5_5_5_1, 2, 0x3f, 0x7c1 },
- { "GL_BGRA/GL_UNSIGNED_SHORT_1_5_5_5_REV",
- GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 2, 0xfc00, 0x83e0 },
-
- { "GL_ABGR_EXT/GL_UNSIGNED_INT_8_8_8_8",
- GL_ABGR_EXT, GL_UNSIGNED_INT_8_8_8_8, 4, 0x800000ff, 0x8000ff00 },
- { "GL_ABGR_EXT/GL_UNSIGNED_INT_8_8_8_8_REV",
- GL_ABGR_EXT, GL_UNSIGNED_INT_8_8_8_8_REV, 4, 0xff000080, 0x00ff0080 },
- { "GL_ABGR_EXT/GL_UNSIGNED_SHORT_4_4_4_4",
- GL_ABGR_EXT, GL_UNSIGNED_SHORT_4_4_4_4, 2, 0x800f, 0x80f0 },
- { "GL_ABGR_EXT/GL_UNSIGNED_SHORT_4_4_4_4_REV",
- GL_ABGR_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV, 2, 0xf008, 0x0f08 },
- { "GL_ABGR_EXT/GL_UNSIGNED_SHORT_5_5_5_1",
- GL_ABGR_EXT, GL_UNSIGNED_SHORT_5_5_5_1, 2, 0xf801, 0xf83e },
- { "GL_ABGR_EXT/GL_UNSIGNED_SHORT_1_5_5_5_REV",
- GL_ABGR_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV, 2, 0x800f, 0x7c0f },
-
- { "GL_RGB/GL_UNSIGNED_SHORT_5_6_5",
- GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 2, 0xf800, 0x7e0 },
- { "GL_RGB/GL_UNSIGNED_SHORT_5_6_5_REV",
- GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV, 2, 0x1f, 0x7e0 },
- { "GL_RGB/GL_UNSIGNED_BYTE_3_3_2",
- GL_RGB, GL_UNSIGNED_BYTE_3_3_2, 1, 0xe0, 0x1c },
- { "GL_RGB/GL_UNSIGNED_BYTE_2_3_3_REV",
- GL_RGB, GL_UNSIGNED_BYTE_2_3_3_REV, 1, 0x7, 0x38 },
-
- { NULL, 0, 0, 0, 0, 0 }
-};
-
-
-struct name_format {
- const char *name;
- GLenum format;
-};
-
-static const struct name_format IntFormats[] = {
- { "GL_RGBA", GL_RGBA },
- { "GL_RGBA2", GL_RGBA2 },
- { "GL_RGBA4", GL_RGBA4 },
- { "GL_RGB5_A1", GL_RGB5_A1 },
- { "GL_RGBA8", GL_RGBA8 },
- { "GL_RGBA12", GL_RGBA12 },
- { "GL_RGBA16", GL_RGBA16 },
- { "GL_RGB10_A2", GL_RGB10_A2 },
-
- { "GL_RGB", GL_RGB },
- { "GL_R3_G3_B2", GL_R3_G3_B2 },
- { "GL_RGB4", GL_RGB4 },
- { "GL_RGB5", GL_RGB5 },
- { "GL_RGB8", GL_RGB8 },
- { "GL_RGB10", GL_RGB10 },
- { "GL_RGB12", GL_RGB12 },
- { "GL_RGB16", GL_RGB16 },
-
-};
-
-#define NUM_INT_FORMATS (sizeof(IntFormats) / sizeof(IntFormats[0]))
-static GLuint CurFormat = 0;
-
-static GLboolean Test3D = GL_FALSE;
-static GLboolean Blend = GL_FALSE;
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-MakeTexture(const struct pixel_format *format, GLenum intFormat, GLboolean swap)
-{
- GLubyte texBuffer[1000];
- int i;
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, swap);
-
- if (format->bytes == 1) {
- for (i = 0; i < 8; i++) {
- texBuffer[i] = format->redTexel;
- }
- for (i = 8; i < 16; i++) {
- texBuffer[i] = format->greenTexel;
- }
- }
- else if (format->bytes == 2) {
- GLushort *us = (GLushort *) texBuffer;
- for (i = 0; i < 8; i++) {
- us[i] = format->redTexel;
- }
- for (i = 8; i < 16; i++) {
- us[i] = format->greenTexel;
- }
- if (swap) {
- for (i = 0; i < 16; i++)
- us[i] = (us[i] << 8) | (us[i] >> 8);
- }
- }
- else if (format->bytes == 4) {
- GLuint *ui = (GLuint *) texBuffer;
- for (i = 0; i < 8; i++) {
- ui[i] = format->redTexel;
- }
- for (i = 8; i < 16; i++) {
- ui[i] = format->greenTexel;
- }
- if (swap) {
- for (i = 0; i < 16; i++) {
- GLuint b = ui[i];
- ui[i] = (b >> 24)
- | ((b >> 8) & 0xff00)
- | ((b << 8) & 0xff0000)
- | ((b << 24) & 0xff000000);
- }
- }
- }
- else {
- abort();
- }
-
- if (Test3D) {
- /* 4 x 4 x 4 texture, undefined data */
- glTexImage3D(GL_TEXTURE_3D, 0, intFormat, 4, 4, 4, 0,
- format->format, format->type, NULL);
- /* fill in Z=1 and Z=2 slices with the real texture data */
- glTexSubImage3D(GL_TEXTURE_3D, 0,
- 0, 0, 1, /* offset */
- 4, 4, 1, /* size */
- format->format, format->type, texBuffer);
- glTexSubImage3D(GL_TEXTURE_3D, 0,
- 0, 0, 2, /* offset */
- 4, 4, 1, /* size */
- format->format, format->type, texBuffer);
- }
- else {
- glTexImage2D(GL_TEXTURE_2D, 0, intFormat, 4, 4, 0,
- format->format, format->type, texBuffer);
- }
-
- if (0) {
- GLint r, g, b, a, l, i;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_RED_SIZE, &r);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_SIZE, &g);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_SIZE, &b);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_ALPHA_SIZE, &a);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_LUMINANCE_SIZE, &l);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTENSITY_SIZE, &i);
- printf("IntFormat: 0x%x R %d G %d B %d A %d L %d I %d\n",
- intFormat, r, g, b, a, l, i);
- glGetError();
- }
-
- if (glGetError()) {
- printf("GL Error for %s\n", format->name);
- memset(texBuffer, 255, 1000);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 4, 4, 0,
- GL_RGB, GL_UNSIGNED_BYTE, texBuffer);
- }
-}
-
-
-
-static void
-Draw(void)
-{
- char s[1000];
- int w = 350, h = 20;
- int i, swap;
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- for (swap = 0; swap < 2; swap++) {
- for (i = 0; Formats[i].name; i++) {
- glPushMatrix();
- glTranslatef(swap * (w + 2), i * (h + 2), 0);
-
- MakeTexture(Formats + i, IntFormats[CurFormat].format, swap);
-
- if (Test3D)
- glEnable(GL_TEXTURE_3D);
- else
- glEnable(GL_TEXTURE_2D);
-
- if (Blend)
- glEnable(GL_BLEND);
-
- glBegin(GL_POLYGON);
- glTexCoord3f(0, 0, 0.5); glVertex2f(0, 0);
- glTexCoord3f(1, 0, 0.5); glVertex2f(w, 0);
- glTexCoord3f(1, 1, 0.5); glVertex2f(w, h);
- glTexCoord3f(0, 1, 0.5); glVertex2f(0, h);
- glEnd();
-
- if (Test3D)
- glDisable(GL_TEXTURE_3D);
- else
- glDisable(GL_TEXTURE_2D);
-
- glDisable(GL_BLEND);
-
- glColor3f(0, 0, 0);
- glRasterPos2i(8, 6);
- PrintString(Formats[i].name);
-
- glPopMatrix();
- }
- }
-
- glPushMatrix();
- glTranslatef(2, i * (h + 2), 0);
- glColor3f(1, 1, 1);
- glRasterPos2i(8, 6);
- PrintString("Normal");
- glRasterPos2i(w + 2, 6);
- PrintString("Byte Swapped");
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(2, (i + 1) * (h + 2), 0);
- glRasterPos2i(8, 6);
- sprintf(s, "Internal Texture Format [f/F]: %s (%d of %lu)",
- IntFormats[CurFormat].name, CurFormat + 1, (unsigned long) NUM_INT_FORMATS);
- PrintString(s);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(2, (i + 2) * (h + 2), 0);
- glRasterPos2i(8, 6);
- if (Test3D)
- PrintString("Target [2/3]: GL_TEXTURE_3D");
- else
- PrintString("Target [2/3]: GL_TEXTURE_2D");
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(2, (i + 3) * (h + 2), 0);
- glRasterPos2i(8, 6);
- if (Blend)
- PrintString("Blend: Yes");
- else
- PrintString("Blend: No");
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- Blend = !Blend;
- break;
- case 'F':
- if (CurFormat == 0)
- CurFormat = NUM_INT_FORMATS - 1;
- else
- CurFormat--;
- break;
- case 'f':
- CurFormat++;
- if (CurFormat == NUM_INT_FORMATS)
- CurFormat = 0;
- break;
- case '2':
- Test3D = GL_FALSE;
- break;
- case '3':
- Test3D = GL_TRUE;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(700, 800);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/pbo.c b/progs/tests/pbo.c
deleted file mode 100644
index 9974486db3..0000000000
--- a/progs/tests/pbo.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * GL_EXT_pixel_buffer_object test
- *
- * Brian Paul
- * 11 March 2004
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "../util/readtex.c" /* a hack, I know */
-
-#define IMAGE_FILE "../images/girl.rgb"
-
-static int ImgWidth, ImgHeight;
-static GLenum ImgFormat;
-static GLubyte *Image = NULL;
-
-static int APosX, APosY; /* simple drawpixels */
-static int BPosX, BPosY; /* read/draw pixels */
-static int CPosX, CPosY; /* copypixels */
-
-static GLboolean DrawFront = GL_FALSE;
-static GLboolean ScaleAndBias = GL_FALSE;
-static GLboolean Benchmark = GL_FALSE;
-
-static GLuint DrawPBO, TempPBO;
-
-
-static GLenum ReadFormat = GL_BGRA;
-static GLenum ReadType = GL_UNSIGNED_INT_8_8_8_8_REV;
-
-
-
-static void
-CheckError(int line)
-{
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x at line %d\n", (int) err, line);
- }
-}
-
-
-static void
-Reset( void )
-{
- APosX = 5; APosY = 20;
- BPosX = APosX + ImgWidth + 5; BPosY = 20;
- CPosX = BPosX + ImgWidth + 5; CPosY = 20;
-}
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-SetupPixelTransfer(GLboolean invert)
-{
- if (invert) {
- glPixelTransferf(GL_RED_SCALE, -1.0);
- glPixelTransferf(GL_RED_BIAS, 1.0);
- glPixelTransferf(GL_GREEN_SCALE, -1.0);
- glPixelTransferf(GL_GREEN_BIAS, 1.0);
- glPixelTransferf(GL_BLUE_SCALE, -1.0);
- glPixelTransferf(GL_BLUE_BIAS, 1.0);
- }
- else {
- glPixelTransferf(GL_RED_SCALE, 1.0);
- glPixelTransferf(GL_RED_BIAS, 0.0);
- glPixelTransferf(GL_GREEN_SCALE, 1.0);
- glPixelTransferf(GL_GREEN_BIAS, 0.0);
- glPixelTransferf(GL_BLUE_SCALE, 1.0);
- glPixelTransferf(GL_BLUE_BIAS, 0.0);
- }
-}
-
-
-static void
-Display( void )
-{
- glClearColor(.3, .3, .3, 1);
- glClear( GL_COLOR_BUFFER_BIT );
-
- CheckError(__LINE__);
-
- /** Unbind UNPACK pixel buffer before calling glBitmap */
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
-
- glRasterPos2i(5, ImgHeight+25);
- PrintString("f = toggle front/back s = toggle scale/bias b = benchmark");
-
- glRasterPos2i(5, ImgHeight+40);
- PrintString("GL_EXT_pixel_buffer_object test");
-
- /* draw original image */
- glRasterPos2i(APosX, 5);
- PrintString("Original");
- glRasterPos2i(APosX, APosY);
- glEnable(GL_DITHER);
- SetupPixelTransfer(GL_FALSE);
- /*** Draw from the DrawPBO */
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO);
- glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, 0);
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
-
- CheckError(__LINE__);
-
- /* do readpixels, drawpixels */
- glRasterPos2i(BPosX, 5);
- PrintString("Read/DrawPixels");
- SetupPixelTransfer(ScaleAndBias);
- /*** read into the Temp PBO */
- glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, TempPBO);
- CheckError(__LINE__);
- if (Benchmark) {
- GLint reads = 0;
- GLint endTime;
- GLint startTime = glutGet(GLUT_ELAPSED_TIME);
- GLdouble seconds, pixelsPerSecond;
- printf("Benchmarking...\n");
- do {
- glReadPixels(APosX, APosY, ImgWidth, ImgHeight,
- ReadFormat, ReadType, 0);
- reads++;
- endTime = glutGet(GLUT_ELAPSED_TIME);
- } while (endTime - startTime < 4000); /* 4 seconds */
- seconds = (double) (endTime - startTime) / 1000.0;
- pixelsPerSecond = reads * ImgWidth * ImgHeight / seconds;
- printf("Result: %d reads in %f seconds = %f pixels/sec\n",
- reads, seconds, pixelsPerSecond);
- Benchmark = GL_FALSE;
- }
- else {
- glReadPixels(APosX, APosY, ImgWidth, ImgHeight,
- ReadFormat, ReadType, 0);
- }
- CheckError(__LINE__);
- glRasterPos2i(BPosX, BPosY);
- glDisable(GL_DITHER);
- SetupPixelTransfer(GL_FALSE);
-
- CheckError(__LINE__);
-
- /*** draw from the Temp PBO */
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, TempPBO);
- glDrawPixels(ImgWidth, ImgHeight, ReadFormat, ReadType, 0);
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
-
- CheckError(__LINE__);
-
- /* do copypixels */
- glRasterPos2i(CPosX, 5);
- PrintString("CopyPixels");
- glRasterPos2i(CPosX, CPosY);
- glDisable(GL_DITHER);
- SetupPixelTransfer(ScaleAndBias);
- glCopyPixels(APosX, APosY, ImgWidth, ImgHeight, GL_COLOR);
-
- CheckError(__LINE__);
-
- if (!DrawFront)
- glutSwapBuffers();
- else
- glFinish();
-}
-
-
-static void
-Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( 0.0, width, 0.0, height, -1.0, 1.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void
-Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- Benchmark = GL_TRUE;
- break;
- case 's':
- ScaleAndBias = !ScaleAndBias;
- break;
- case 'f':
- DrawFront = !DrawFront;
- if (DrawFront) {
- glDrawBuffer(GL_FRONT);
- glReadBuffer(GL_FRONT);
- }
- else {
- glDrawBuffer(GL_BACK);
- glReadBuffer(GL_BACK);
- }
- printf("glDrawBuffer(%s)\n", DrawFront ? "GL_FRONT" : "GL_BACK");
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- if (!glutExtensionSupported("GL_EXT_pixel_buffer_object")) {
- printf("Sorry, this demo requires GL_EXT_pixel_buffer_object\n");
- exit(0);
- }
-
- Image = LoadRGBImage( IMAGE_FILE, &ImgWidth, &ImgHeight, &ImgFormat );
- if (!Image) {
- printf("Couldn't read %s\n", IMAGE_FILE);
- exit(0);
- }
-
- printf("Loaded %d by %d image\n", ImgWidth, ImgHeight );
-
- if (ImgFormat == GL_RGB) {
- /* convert to RGBA */
- int i;
- GLubyte *image2 = (GLubyte *) malloc(ImgWidth * ImgHeight * 4);
- printf("Converting RGB image to RGBA\n");
- for (i = 0; i < ImgWidth * ImgHeight; i++) {
- image2[i*4+0] = Image[i*3+0];
- image2[i*4+1] = Image[i*3+1];
- image2[i*4+2] = Image[i*3+2];
- image2[i*4+3] = 255;
- }
- free(Image);
- Image = image2;
- ImgFormat = GL_RGBA;
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, ImgWidth);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ROW_LENGTH, ImgWidth);
-
- Reset();
-
- /* put image into DrawPBO */
- glGenBuffersARB(1, &DrawPBO);
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO);
- glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_EXT,
- ImgWidth * ImgHeight * 4, Image, GL_STATIC_DRAW);
-
- /* Setup TempPBO - used for glReadPixels & glDrawPixels */
- glGenBuffersARB(1, &TempPBO);
- glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, TempPBO);
- glBufferDataARB(GL_PIXEL_PACK_BUFFER_EXT,
- ImgWidth * ImgHeight * 4, NULL, GL_DYNAMIC_COPY);
-
-}
-
-
-int
-main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 750, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0]);
- glewInit();
- Init();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/persp_hint.c b/progs/tests/persp_hint.c
deleted file mode 100644
index 27140d1f56..0000000000
--- a/progs/tests/persp_hint.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 3e006e823d..0000000000
--- a/progs/tests/prim.c
+++ /dev/null
@@ -1,559 +0,0 @@
-#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/prog_parameter.c b/progs/tests/prog_parameter.c
deleted file mode 100644
index e38c68904d..0000000000
--- a/progs/tests/prog_parameter.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2006
- * 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
- * IBM 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.
- */
-
-/**
- * \file prog_parameter.c
- *
- * Test various aspects of setting (and getting) low-level program parameters.
- * This is primarilly intended as a test for GL_EXT_gpu_program_parameters,
- * but it turns out that it hits some other functionality along the way.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#ifndef GL_EXT_gpu_program_parameters
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum,
- GLuint, GLsizei, const GLfloat *);
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum,
- GLuint, GLsizei, const GLfloat *);
-#endif
-
-static PFNGLPROGRAMLOCALPARAMETER4FVARBPROC program_local_parameter4fv = NULL;
-static PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC get_program_local_parameterfv = NULL;
-static PFNGLPROGRAMENVPARAMETER4FVARBPROC program_env_parameter4fv = NULL;
-static PFNGLGETPROGRAMENVPARAMETERFVARBPROC get_program_env_parameterfv = NULL;
-static PFNGLBINDPROGRAMARBPROC bind_program = NULL;
-static PFNGLGETPROGRAMIVARBPROC get_program = NULL;
-
-static PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC program_local_parameters4fv = NULL;
-static PFNGLPROGRAMENVPARAMETERS4FVEXTPROC program_env_parameters4fv = NULL;
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
-}
-
-
-static void Idle( void )
-{
-}
-
-
-static void Visible( int vis )
-{
- if ( vis == GLUT_VISIBLE ) {
- glutIdleFunc( Idle );
- }
- else {
- glutIdleFunc( NULL );
- }
-}
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static int set_parameter_batch( GLsizei count, GLfloat * param,
- const char * name,
- PFNGLPROGRAMLOCALPARAMETER4FVARBPROC set_parameter,
- PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC set_parameters,
- PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC get_parameter
- )
-{
- unsigned i;
- int pass = 1;
-
-
- for ( i = 0 ; i < (4 * count) ; i++ ) {
- param[i] = (GLfloat) rand() / (GLfloat) rand();
- }
-
- /* Try using the "classic" interface.
- */
- printf("Testing glProgram%sParameter4fvARB (count = %u)...\n", name, count);
- for ( i = 0 ; i < count ; i++ ) {
- (*set_parameter)(GL_VERTEX_PROGRAM_ARB, i, & param[i * 4]);
- }
-
- for ( i = 0 ; i < count ; i++ ) {
- GLfloat temp[4];
-
- (*get_parameter)(GL_VERTEX_PROGRAM_ARB, i, temp);
-
- if ( (temp[0] != param[(i * 4) + 0])
- || (temp[1] != param[(i * 4) + 1])
- || (temp[2] != param[(i * 4) + 2])
- || (temp[3] != param[(i * 4) + 3]) ) {
- printf("Mismatch in glProgram%sParameter4fvARB index %u!\n", name, i);
- printf("Got { %f, %f, %f, %f }, expected { %f, %f, %f, %f }!\n",
- temp[0], temp[1],
- temp[2], temp[3],
- param[(i * 4) + 0], param[(i * 4) + 1],
- param[(i * 4) + 2], param[(i * 4) + 3]);
- pass = 0;
- break;
- }
- }
-
-
- if ( set_parameters == NULL ) {
- return pass;
- }
-
-
- for ( i = 0 ; i < (4 * count) ; i++ ) {
- param[i] = (GLfloat) rand() / (GLfloat) rand();
- }
-
- printf("Testing glProgram%sParameters4fvEXT (count = %u)...\n", name, count);
- (*set_parameters)(GL_VERTEX_PROGRAM_ARB, 0, count, param);
-
- for ( i = 0 ; i < count ; i++ ) {
- GLfloat temp[4];
-
- (*get_parameter)(GL_VERTEX_PROGRAM_ARB, i, temp);
-
- if ( (temp[0] != param[(i * 4) + 0])
- || (temp[1] != param[(i * 4) + 1])
- || (temp[2] != param[(i * 4) + 2])
- || (temp[3] != param[(i * 4) + 3]) ) {
- printf("Mismatch in glProgram%sParameters4fvEXT index %u!\n", name, i);
- printf("Got { %f, %f, %f, %f }, expected { %f, %f, %f, %f }!\n",
- temp[0], temp[1],
- temp[2], temp[3],
- param[(i * 4) + 0], param[(i * 4) + 1],
- param[(i * 4) + 2], param[(i * 4) + 3]);
- pass = 0;
- break;
- }
- }
-
-
- return pass;
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- int pass = 1;
- GLfloat * params;
- GLint max_program_env_parameters;
- GLint max_program_local_parameters;
- int i;
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n\n", ver_string);
-
- if ( !glutExtensionSupported("GL_ARB_vertex_program") ) {
- printf("Sorry, this program requires GL_ARB_vertex_program\n");
- exit(2);
- }
-
-
- program_local_parameter4fv = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) glutGetProcAddress( "glProgramLocalParameter4fvARB" );
- program_env_parameter4fv = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) glutGetProcAddress( "glProgramEnvParameter4fvARB" );
-
- get_program_local_parameterfv = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) glutGetProcAddress( "glGetProgramLocalParameterfvARB" );
- get_program_env_parameterfv = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) glutGetProcAddress( "glGetProgramEnvParameterfvARB" );
-
- bind_program = (PFNGLBINDPROGRAMARBPROC) glutGetProcAddress( "glBindProgramARB" );
- get_program = (PFNGLGETPROGRAMIVARBPROC) glutGetProcAddress( "glGetProgramivARB" );
-
- if ( glutExtensionSupported("GL_EXT_gpu_program_parameters") ) {
- printf("GL_EXT_gpu_program_parameters available, testing that path.\n");
-
- program_local_parameters4fv = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) glutGetProcAddress( "glProgramLocalParameters4fvEXT" );
- program_env_parameters4fv = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) glutGetProcAddress( "glProgramEnvParameters4fvEXT" );
- }
- else {
- printf("GL_EXT_gpu_program_parameters not available.\n");
-
- program_local_parameters4fv = NULL;
- program_env_parameters4fv = NULL;
- }
-
-
-
- /* Since the test sets program local parameters, a program must be bound.
- * Program source, however, is not needed.
- */
- (*bind_program)(GL_VERTEX_PROGRAM_ARB, 1);
-
-
- (*get_program)(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB,
- & max_program_env_parameters);
-
- params = malloc(max_program_env_parameters * 4 * sizeof(GLfloat));
-
- for (i = 0; i < max_program_env_parameters * 4; i++) {
- params[i] = 0.0F;
- }
-
- pass &= set_parameter_batch(max_program_env_parameters, params, "Env",
- program_env_parameter4fv,
- program_env_parameters4fv,
- get_program_env_parameterfv);
-
-
- (*get_program)(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
- & max_program_local_parameters);
-
- if (max_program_local_parameters > max_program_env_parameters) {
- params = realloc(params,
- max_program_local_parameters * 4 * sizeof(GLfloat));
- }
-
- pass &= set_parameter_batch(max_program_local_parameters, params, "Local",
- program_local_parameter4fv,
- program_local_parameters4fv,
- get_program_local_parameterfv);
-
- free(params);
-
- if (! pass) {
- printf("FAIL!\n");
- exit(1);
- }
-
- printf("PASS!\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB );
- glutCreateWindow( "Program Parameters Test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutVisibilityFunc( Visible );
-
- Init();
-
- return 0;
-}
diff --git a/progs/tests/quads.c b/progs/tests/quads.c
deleted file mode 100644
index e5b9920b66..0000000000
--- a/progs/tests/quads.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/**
- * Draw colored quads.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#define NUM_QUADS 20
-
-
-static int Win;
-static GLfloat Xrot = 40, Yrot = 0, Zrot = 0;
-static GLboolean Anim = GL_TRUE;
-static GLuint Vbuffer = 0;
-
-#if 1
-#else
-static GLfloat buf[NUM_QUADS * 6 * 4];
-#endif
-
-static GLboolean doSwapBuffers = GL_TRUE;
-
-static GLint Frames = 0, T0 = 0;
-
-
-static void
-Idle(void)
-{
- Xrot += 3.0;
- Yrot += 4.0;
- Zrot += 2.0;
- glutPostRedisplay();
-}
-
-
-static void
-Draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- glDrawArrays(GL_QUADS, 0, NUM_QUADS*4);
-
- glPopMatrix();
-
- if (doSwapBuffers)
- glutSwapBuffers();
- /*
- else
- glFinish();
- */
-
- {
- GLint t = glutGet(GLUT_ELAPSED_TIME);
- Frames++;
- if (t - T0 >= 5000) {
- GLfloat seconds = (t - T0) / 1000.0;
- GLfloat fps = Frames / seconds;
- printf("%d frames in %6.3f seconds = %6.3f FPS\n",
- Frames, seconds, fps);
- T0 = t;
- Frames = 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, -8.0);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- const GLfloat step = 3.0;
- (void) x;
- (void) y;
- switch (key) {
- case 's':
- doSwapBuffers = !doSwapBuffers;
- break;
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'z':
- Zrot -= step;
- break;
- case 'Z':
- Zrot += step;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- const GLfloat step = 3.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
-quad(float x, float y, float z, float *v)
-{
- int k = 0;
-
- /* color */
- v[k++] = x * 0.5 + 0.5;
- v[k++] = y * 0.5 + 0.5;
- v[k++] = z * 0.5 + 0.5;
- /* vert */
- v[k++] = x;
- v[k++] = y;
- v[k++] = z;
-
- /* color */
- v[k++] = -x * 0.5 + 0.5;
- v[k++] = -y * 0.5 + 0.5;
- v[k++] = z * 0.5 + 0.5;
- /* vert */
- v[k++] = -x;
- v[k++] = -y;
- v[k++] = z;
-
- /* color */
- v[k++] = -x * 0.5 + 0.5;
- v[k++] = -y * 0.5 + 0.5;
- v[k++] = -z * 0.5 + 0.5;
- /* vert */
- v[k++] = -x;
- v[k++] = -y;
- v[k++] = -z;
-
- /* color */
- v[k++] = x * 0.5 + 0.5;
- v[k++] = y * 0.5 + 0.5;
- v[k++] = -z * 0.5 + 0.5;
- /* vert */
- v[k++] = x;
- v[k++] = y;
- v[k++] = -z;
-}
-
-static void
-gen_quads(GLfloat *buf)
-{
- float *v = buf;
- float r = 1.0;
- int i;
-
- for (i = 0; i < NUM_QUADS; i++) {
- float angle = i / (float) NUM_QUADS * M_PI;
- float x = r * cos(angle);
- float y = r * sin(angle);
- float z = 1.10;
- quad(x, y, z, v);
- v += 24;
- }
-
- if (0) {
- float *p = buf;
- for (i = 0; i < NUM_QUADS * 4 * 2; i++) {
- printf("%d: %f %f %f\n", i, p[0], p[1], p[2]);
- p += 3;
- }
- }
-}
-
-
-static void
-Init(void)
-{
- int bytes = NUM_QUADS * 4 * 2 * 3 * sizeof(float);
- GLfloat *f;
-
-#if 1
- glGenBuffers(1, &Vbuffer);
- glBindBuffer(GL_ARRAY_BUFFER, Vbuffer);
- glBufferData(GL_ARRAY_BUFFER_ARB, bytes, NULL, GL_STATIC_DRAW_ARB);
- f = (float *) glMapBuffer(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
- gen_quads(f);
- glUnmapBuffer(GL_ARRAY_BUFFER_ARB);
- glColorPointer(3, GL_FLOAT, 6*sizeof(float), (void *) 0);
- glVertexPointer(3, GL_FLOAT, 6*sizeof(float), (void *) 12);
-#else
- f = buf;
- gen_quads(f);
- glColorPointer(3, GL_FLOAT, 6*sizeof(float), buf);
- glVertexPointer(3, GL_FLOAT, 6*sizeof(float), buf + 3);
-#endif
-
- glEnableClientState(GL_COLOR_ARRAY);
- glEnableClientState(GL_VERTEX_ARRAY);
-
- glEnable(GL_DEPTH_TEST);
-
- glClearColor(0.5, 0.5, 0.5, 0.0);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(600, 600);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/random.c b/progs/tests/random.c
deleted file mode 100644
index 604b4d4088..0000000000
--- a/progs/tests/random.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/**
- * Random rendering, to check for crashes, hangs, etc.
- *
- * Brian Paul
- * 21 June 2007
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Win;
-static GLboolean Anim = GL_TRUE;
-static int Width = 200, Height = 200;
-static int DB = 0;
-static int MinVertexCount = 0, MaxVertexCount = 1000;
-static int Count = 0;
-
-struct vertex
-{
- int type;
- float v[4];
-};
-
-static int BufferSize = 10000;
-static struct vertex *Vbuffer = NULL;
-static int Vcount, Vprim;
-
-enum {
- BEGIN,
- END,
- VERTEX2,
- VERTEX3,
- VERTEX4,
- COLOR3,
- COLOR4,
- TEX2,
- TEX3,
- TEX4,
- SECCOLOR3,
- NORMAL3
-};
-
-
-
-/**
- * This can be called from within gdb after a crash:
- * (gdb) call ReportState()
- */
-static void
-ReportState(void)
-{
- static const struct {
- GLenum token;
- char *str;
- GLenum type;
- } state [] = {
- { GL_ALPHA_TEST, "GL_ALPHA_TEST", GL_INT },
- { GL_BLEND, "GL_BLEND", GL_INT },
- { GL_CLIP_PLANE0, "GL_CLIP_PLANE0", GL_INT },
- { GL_DEPTH_TEST, "GL_DEPTH_TEST", GL_INT },
- { GL_LIGHTING, "GL_LIGHTING", GL_INT },
- { GL_LINE_WIDTH, "GL_LINE_WIDTH", GL_FLOAT },
- { GL_POINT_SIZE, "GL_POINT_SIZE", GL_FLOAT },
- { GL_SHADE_MODEL, "GL_SHADE_MODEL", GL_INT },
- { GL_SCISSOR_TEST, "GL_SCISSOR_TEST", GL_INT },
- { 0, NULL, 0 }
- };
-
- GLint i;
-
- for (i = 0; state[i].token; i++) {
- if (state[i].type == GL_INT) {
- GLint v;
- glGetIntegerv(state[i].token, &v);
- printf("%s = %d\n", state[i].str, v);
- }
- else {
- GLfloat v;
- glGetFloatv(state[i].token, &v);
- printf("%s = %f\n", state[i].str, v);
- }
- }
-}
-
-static void
-PrintVertex(const char *f, const struct vertex *v, int sz)
-{
- int i;
- printf("%s(", f);
- for (i = 0; i < sz; i++) {
- printf("%g%s", v->v[i], (i == sz-1) ? "" : ", ");
- }
- printf(");\n");
-}
-
-/**
- * This can be called from within gdb after a crash:
- * (gdb) call ReportState()
- */
-static void
-LastPrim(void)
-{
- int i;
- for (i = 0; i < Vcount; i++) {
- switch (Vbuffer[i].type) {
- case BEGIN:
- printf("glBegin(%d);\n", (int) Vbuffer[i].v[0]);
- break;
- case END:
- printf("glEnd();\n");
- break;
- case VERTEX2:
- PrintVertex("glVertex2f", Vbuffer + i, 2);
- break;
- case VERTEX3:
- PrintVertex("glVertex3f", Vbuffer + i, 3);
- break;
- case VERTEX4:
- PrintVertex("glVertex4f", Vbuffer + i, 4);
- break;
- case COLOR3:
- PrintVertex("glColor3f", Vbuffer + i, 3);
- break;
- case COLOR4:
- PrintVertex("glColor4f", Vbuffer + i, 4);
- break;
- case TEX2:
- PrintVertex("glTexCoord2f", Vbuffer + i, 2);
- break;
- case TEX3:
- PrintVertex("glTexCoord3f", Vbuffer + i, 3);
- break;
- case TEX4:
- PrintVertex("glTexCoord4f", Vbuffer + i, 4);
- break;
- case SECCOLOR3:
- PrintVertex("glSecondaryColor3f", Vbuffer + i, 3);
- break;
- case NORMAL3:
- PrintVertex("glNormal3f", Vbuffer + i, 3);
- break;
- default:
- abort();
- }
- }
-}
-
-
-static int
-RandomInt(int max)
-{
- if (max == 0)
- return 0;
- return rand() % max;
-}
-
-static float
-RandomFloat(float min, float max)
-{
- int k = rand() % 10000;
- float x = min + (max - min) * k / 10000.0;
- return x;
-}
-
-/*
- * Return true if random number in [0,1] is <= percentile.
- */
-static GLboolean
-RandomChoice(float percentile)
-{
- return RandomFloat(0.0, 1.0) <= percentile;
-}
-
-static void
-RandomStateChange(void)
-{
- int k = RandomInt(19);
- switch (k) {
- case 0:
- glEnable(GL_BLEND);
- break;
- case 1:
- glDisable(GL_BLEND);
- break;
- case 2:
- glEnable(GL_ALPHA_TEST);
- break;
- case 3:
- glEnable(GL_ALPHA_TEST);
- break;
- case 4:
- glEnable(GL_DEPTH_TEST);
- break;
- case 5:
- glEnable(GL_DEPTH_TEST);
- break;
- case 6:
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- break;
- case 7:
- glPointSize(10.0);
- break;
- case 8:
- glPointSize(1.0);
- break;
- case 9:
- glLineWidth(10.0);
- break;
- case 10:
- glLineWidth(1.0);
- break;
- case 11:
- glEnable(GL_LIGHTING);
- break;
- case 12:
- glDisable(GL_LIGHTING);
- break;
- case 13:
- glEnable(GL_SCISSOR_TEST);
- break;
- case 14:
- glDisable(GL_SCISSOR_TEST);
- break;
- case 15:
- glEnable(GL_CLIP_PLANE0);
- break;
- case 16:
- glDisable(GL_CLIP_PLANE0);
- break;
- case 17:
- glShadeModel(GL_FLAT);
- break;
- case 18:
- glShadeModel(GL_SMOOTH);
- break;
- }
-}
-
-
-static void
-RandomPrimitive(void)
-{
- int i;
- int len = MinVertexCount + RandomInt(MaxVertexCount - MinVertexCount);
-
- Vprim = RandomInt(10);
-
- glBegin(Vprim);
- Vbuffer[Vcount].type = BEGIN;
- Vbuffer[Vcount].v[0] = Vprim;
- Vcount++;
-
- for (i = 0; i < len; i++) {
- int k = RandomInt(9);
- Vbuffer[Vcount].v[0] = RandomFloat(-3, 3);
- Vbuffer[Vcount].v[1] = RandomFloat(-3, 3);
- Vbuffer[Vcount].v[2] = RandomFloat(-3, 3);
- Vbuffer[Vcount].v[3] = RandomFloat(-3, 3);
- switch (k) {
- case 0:
- glVertex2fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = VERTEX2;
- break;
- case 1:
- glVertex3fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = VERTEX3;
- break;
- case 2:
- glVertex4fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = VERTEX4;
- break;
- case 3:
- glColor3fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = COLOR3;
- break;
- case 4:
- glColor4fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = COLOR4;
- break;
- case 5:
- glTexCoord2fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = TEX2;
- break;
- case 6:
- glTexCoord3fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = TEX3;
- break;
- case 7:
- glTexCoord4fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = TEX4;
- break;
- case 8:
- glSecondaryColor3fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = SECCOLOR3;
- break;
- case 9:
- glNormal3fv(Vbuffer[Vcount].v);
- Vbuffer[Vcount].type = NORMAL3;
- break;
- default:
- abort();
- }
- Vcount++;
-
- if (Vcount >= BufferSize - 2) {
- /* reset */
- Vcount = 0;
- }
- }
-
- Vbuffer[Vcount++].type = END;
-
- glEnd();
-}
-
-
-static void
-RandomDraw(void)
-{
- int i;
- GLboolean dlist = RandomChoice(0.1);
- if (dlist)
- glNewList(1, GL_COMPILE);
- for (i = 0; i < 3; i++) {
- RandomStateChange();
- }
- RandomPrimitive();
-
- if (dlist) {
- glEndList();
- glCallList(1);
- }
-}
-
-
-static void
-Idle(void)
-{
- glutPostRedisplay();
-}
-
-
-static void
-Draw(void)
-{
-#if 1
- RandomDraw();
- Count++;
-#else
- /* cut & paste temp code here */
-#endif
-
- assert(glGetError() == 0);
-
- if (DB)
- glutSwapBuffers();
- else
- glFinish();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- Width = width;
- Height = height;
- glViewport(0, 0, width, height);
- glScissor(20, 20, Width-40, Height-40);
- 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:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- static const GLdouble plane[4] = {1, 1, 0, 0};
- glDrawBuffer(GL_FRONT);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glEnable(GL_LIGHT0);
- glClipPlane(GL_CLIP_PLANE0, plane);
-
- Vbuffer = (struct vertex *)
- malloc(BufferSize * sizeof(struct vertex));
-
- /* silence warnings */
- (void) ReportState;
- (void) LastPrim;
-}
-
-
-static void
-ParseArgs(int argc, char *argv[])
-{
- int i;
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-s") == 0) {
- int j = atoi(argv[i + 1]);
- printf("Random seed value: %d\n", j);
- srand(j);
- i++;
- }
- else if (strcmp(argv[i], "-a") == 0) {
- i++;
- MinVertexCount = atoi(argv[i]);
- }
- else if (strcmp(argv[i], "-b") == 0) {
- i++;
- MaxVertexCount = atoi(argv[i]);
- }
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- ParseArgs(argc, argv);
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Draw);
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/readrate.c b/progs/tests/readrate.c
deleted file mode 100644
index 6bdda04907..0000000000
--- a/progs/tests/readrate.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Test glReadPixels speed
- * Brian Paul
- * 9 April 2004
- *
- * Compile:
- * gcc readrate.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lX11 -o readrate
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-/* Hack, to test drawing instead of reading */
-#define DRAW 0
-
-#define MAX_WIDTH 1280
-#define MAX_HEIGHT 1024
-
-#define NUM_WIDTHS 4
-#define NUM_HEIGHTS 4
-static const GLint Widths[] = {256, 512, 1024, 1280};
-static const GLint Heights[] = {4, 32, 256, 512, 768, 1024};
-static int WidthIndex = 1, HeightIndex = 3;
-static GLubyte *Buffer = NULL;
-static GLboolean Benchmark = GL_TRUE;
-
-#define NUM_PBO 2
-
-static GLuint PBObjects[4];
-
-static GLboolean HavePBO = GL_FALSE;
-
-
-struct format_type {
- const char *Name;
- GLuint Bytes;
- GLenum Format;
- GLenum Type;
-};
-
-static struct format_type Formats[] = {
- { "GL_RGB, GLubyte", 3, GL_RGB, GL_UNSIGNED_BYTE },
- { "GL_BGR, GLubyte", 3, GL_BGR, GL_UNSIGNED_BYTE },
- { "GL_RGBA, GLubyte", 4, GL_RGBA, GL_UNSIGNED_BYTE },
- { "GL_BGRA, GLubyte", 4, GL_BGRA, GL_UNSIGNED_BYTE },
- { "GL_ABGR, GLubyte", 4, GL_ABGR_EXT, GL_UNSIGNED_BYTE },
- { "GL_RGBA, GLuint_8_8_8_8", 4, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8 },
- { "GL_BGRA, GLuint_8_8_8_8", 4, GL_BGRA_EXT, GL_UNSIGNED_INT_8_8_8_8 },
- { "GL_BGRA, GLuint_8_8_8_8_rev", 4, GL_BGRA_EXT, GL_UNSIGNED_INT_8_8_8_8_REV },
-#ifdef GL_EXT_packed_depth_stencil
- { "GL_DEPTH_STENCIL_EXT, GLuint24+8", 4, GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT },
-#endif
- { "GL_DEPTH_COMPONENT, GLfloat", 4, GL_DEPTH_COMPONENT, GL_FLOAT },
- { "GL_DEPTH_COMPONENT, GLuint", 4, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT }
-};
-
-#define NUM_FORMATS (sizeof(Formats) / sizeof(struct format_type))
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo)
-{
- double t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- double t1;
- int j;
-
- for (j = 0; ; j++) {
-
- glBegin(GL_POINTS);
- glVertex2f(1,1);
- glEnd();
-
-#if DRAW
- glWindowPos2iARB(0,0);
- glDrawPixels(width, height,
- fmt->Format, fmt->Type, Buffer);
- glFinish();
-#else
- if (pbo) {
- glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, PBObjects[j % NUM_PBO]);
- glReadPixels(0, 0, width, height,
- fmt->Format, fmt->Type, 0);
- }
- else {
- glReadPixels(0, 0, width, height,
- fmt->Format, fmt->Type, Buffer);
- }
-#endif
-
- t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- if (t1 - t0 > 2.0) {
- GLdouble rate = width * height / (1024.0 * 1024.0) * j / (t1 - t0);
-#if DRAW
- printf("%-32s %.2f draws/sec %.2f MPixels/sec %.2f MBytes/sec\n",
- fmt->Name, j / (t1-t0), rate, rate * fmt->Bytes);
-#else
- printf("%-32s %.2f reads/sec %.2f MPixels/sec %.2f MBytes/sec\n",
- fmt->Name, j / (t1-t0), rate, rate * fmt->Bytes);
-#endif
- break;
- }
-
- if (j == 0) {
- /* check for error */
- GLenum err = glGetError();
- if (err) {
- printf("GL Error 0x%x for %s\n", err, fmt->Name);
- return;
- }
- }
- }
-}
-
-
-
-static void
-Draw(void)
-{
- char str[1000];
- int width = Widths[WidthIndex];
- int height = Heights[HeightIndex];
- int y = MAX_HEIGHT - 50;
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glWindowPos2iARB(10, y);
- sprintf(str, "ReadPixels size: %d x %d", width, height);
- PrintString(str);
- y -= 14;
-
- glWindowPos2iARB(10, y);
- PrintString("Press up/down/left/right to change image size.");
- y -= 14;
-
- glWindowPos2iARB(10, y);
- PrintString("Press 'b' to run benchmark test.");
- y -= 14;
-
- if (Benchmark) {
- glWindowPos2iARB(10, y);
- PrintString("Testing...");
- }
-
- glutSwapBuffers();
-
- if (Benchmark) {
- GLuint i, pbo;
-#if DRAW
- printf("Draw size: Width=%d Height=%d\n", width, height);
-#else
- printf("Read size: Width=%d Height=%d\n", width, height);
-#endif
- for (pbo = 0; pbo <= HavePBO; pbo++) {
- printf("Pixel Buffer Object: %d\n", pbo);
-
- if (pbo == 0) {
- glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, 0);
- }
-
- for (i = 0; i < NUM_FORMATS; i++) {
- MeasureFormat(Formats + i, width, height, pbo);
- }
- }
-
- Benchmark = GL_FALSE;
-
- /* redraw window text */
- glutPostRedisplay();
- }
-
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-1, 1, -1, 1, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- Benchmark = 1;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- if (HeightIndex + 1 < NUM_WIDTHS)
- HeightIndex++;
- break;
- case GLUT_KEY_DOWN:
- if (HeightIndex > 0)
- HeightIndex--;
- break;
- case GLUT_KEY_LEFT:
- if (WidthIndex > 0)
- WidthIndex--;
- break;
- case GLUT_KEY_RIGHT:
- if (WidthIndex + 1 < NUM_HEIGHTS)
- WidthIndex++;
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- Buffer = malloc(MAX_WIDTH * MAX_HEIGHT * 4);
- assert(Buffer);
-#if DRAW
- printf("glDrawPixels test report:\n");
-#else
- printf("glReadPixels test report:\n");
-#endif
- printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION: %s\n", (char *) glGetString(GL_VERSION));
-
- if (glutExtensionSupported("GL_ARB_pixel_buffer_object")) {
- int i;
- HavePBO = 1;
- glGenBuffersARB(NUM_PBO, PBObjects);
- for (i = 0; i < NUM_PBO; i++) {
- glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, PBObjects[i]);
- glBufferDataARB(GL_PIXEL_PACK_BUFFER_EXT,
- MAX_WIDTH * MAX_HEIGHT * 4, NULL, GL_STREAM_READ);
- }
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(MAX_WIDTH, MAX_HEIGHT);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STENCIL);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/rubberband.c b/progs/tests/rubberband.c
deleted file mode 100644
index 866a0f519e..0000000000
--- a/progs/tests/rubberband.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Test rubber-band selection box w/ logicops and blend.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "readtex.c"
-
-#define IMAGE_FILE "../images/arch.rgb"
-
-static int ImgWidth, ImgHeight;
-static GLenum ImgFormat;
-static GLubyte *Image = NULL;
-
-static int Win;
-static int Width = 512, Height = 512;
-
-struct rect
-{
- int x0, y0, x1, y1;
-};
-
-static struct rect OldRect, NewRect;
-
-static GLboolean ButtonDown = GL_FALSE;
-static GLboolean LogicOp = 0*GL_TRUE;
-
-static GLboolean RedrawBackground = GL_TRUE;
-
-static const GLfloat red[4] = {1.0, 0.2, 0.2, 1.0};
-static const GLfloat green[4] = {0.2, 1.0, 0.2, 1.0};
-static const GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0};
-
-
-/*
- * Draw rubberband box in front buffer
- */
-static void
-DrawRect(const struct rect *r)
-{
- glDrawBuffer(GL_FRONT);
-
- if (LogicOp) {
- glLogicOp(GL_XOR);
- glEnable(GL_COLOR_LOGIC_OP);
- }
- else {
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE);
- glBlendEquation(GL_FUNC_SUBTRACT);
- }
-
- glColor3f(1, 1, 1);
-
- glLineWidth(3.0);
-
- glBegin(GL_LINE_LOOP);
- glVertex2i(r->x0, r->y0);
- glVertex2i(r->x1, r->y0);
- glVertex2i(r->x1, r->y1);
- glVertex2i(r->x0, r->y1);
- glEnd();
-
- glDisable(GL_COLOR_LOGIC_OP);
- glDisable(GL_BLEND);
-
- glDrawBuffer(GL_BACK);
-}
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-DrawBackground(void)
-{
- char s[100];
-
- sprintf(s, "[L/B] %s mode. Use mouse to make selection box.",
- LogicOp ? "LogicOp" : "Blend");
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glWindowPos2i((Width - ImgWidth) / 2, (Height - ImgHeight) / 2);
- glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
-
- glWindowPos2i(10, 10);
- PrintString(s);
-
- glutSwapBuffers();
-}
-
-
-static void
-Draw(void)
-{
- if (RedrawBackground) {
- DrawBackground();
- }
-
- if (ButtonDown) {
- if (!RedrawBackground)
- DrawRect(&OldRect); /* erase old */
-
- DrawRect(&NewRect); /* draw new */
-
- OldRect = NewRect;
- }
-
- RedrawBackground = GL_FALSE;
-}
-
-
-static void
-Reshape(int width, int height)
-{
- Width = width;
- Height = height;
-
- glViewport(0, 0, width, height);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, Width, Height, 0, -1, 1); /* Inverted Y! */
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- RedrawBackground = GL_TRUE;
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- case 'B':
- LogicOp = GL_FALSE;
- break;
- case 'l':
- case 'L':
- LogicOp = GL_TRUE;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- RedrawBackground = GL_TRUE;
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-MouseMotion(int x, int y)
-{
- if (ButtonDown) {
- NewRect.x1 = x;
- NewRect.y1 = y;
- glutPostRedisplay();
- }
-}
-
-
-static void
-MouseButton(int button, int state, int x, int y)
-{
- if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
- ButtonDown = GL_TRUE;
- RedrawBackground = GL_TRUE;
- NewRect.x0 = NewRect.x1 = x;
- NewRect.y0 = NewRect.y1 = y;
- OldRect = NewRect;
- }
- else if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
- ButtonDown = GL_FALSE;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- Image = LoadRGBImage(IMAGE_FILE, &ImgWidth, &ImgHeight, &ImgFormat);
- if (!Image) {
- printf("Couldn't read %s\n", IMAGE_FILE);
- exit(0);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutMotionFunc(MouseMotion);
- glutMouseFunc(MouseButton);
- glutDisplayFunc(Draw);
- Init();
- glutPostRedisplay();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/scissor-viewport.c b/progs/tests/scissor-viewport.c
deleted file mode 100644
index 4ef307b424..0000000000
--- a/progs/tests/scissor-viewport.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
- * Copyright (c) 2009 VMware, 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>
-
-struct program
-{
- unsigned width;
- unsigned height;
- int i;
-};
-
-struct program prog;
-
-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);
-
- prog.i = 0;
-}
-
-static void reshape(int width, int height)
-{
- glViewport(0, 0, 100, 100);
-
- prog.width = width;
- prog.height = 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:
- glutPostRedisplay();
- return;
- }
-}
-
-static void drawQuad(void)
-{
- glBegin(GL_QUADS);
- glVertex2d(-1.0, -1.0);
- glVertex2d( 1.0, -1.0);
- glVertex2d( 1.0, 1.0);
- glVertex2d(-1.0, 1.0);
- glEnd();
-}
-
-static void draw(void)
-{
- int i;
-
- glClearColor(0.0, 0.0, 1.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- i = prog.i++;
- if (prog.i >= 3)
- prog.i = 0;
-
- glEnable(GL_SCISSOR_TEST);
-
- {
- glColor4d(1.0, 0.0, 0.0, 1.0);
-
- glScissor(i, i, 10 - 2*i, 10 - 2*i);
- drawQuad();
- }
-
- glDisable(GL_SCISSOR_TEST);
-
- /* glutSwapBuffers(); */
- glFlush();
-}
-
-int main(int argc, char **argv)
-{
- GLenum type;
-
- glutInit(&argc, argv);
-
- prog.width = 200;
- prog.height = 200;
-
- glutInitWindowPosition(100, 0);
- glutInitWindowSize(prog.width, prog.height);
-
- /* type = GLUT_RGB | GLUT_DOUBLE; */
- type = GLUT_RGB | 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/tests/scissor.c b/progs/tests/scissor.c
deleted file mode 100644
index e5a68ffabd..0000000000
--- a/progs/tests/scissor.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
- * Copyright (c) 2009 VMware, 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>
-
-struct program
-{
- unsigned width;
- unsigned height;
- unsigned quads;
-};
-
-struct program prog;
-
-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);
-}
-
-static void reshape(int width, int height)
-{
-
- glViewport(0, 0, (GLint)width, (GLint)height);
-
- prog.width = width;
- prog.height = 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:
- prog.quads = !prog.quads;
- glutPostRedisplay();
- return;
- }
-}
-
-static void drawQuad(void)
-{
-
- if (prog.quads) {
- glBegin(GL_QUADS);
- glVertex2d(-1.0, -1.0);
- glVertex2d( 1.0, -1.0);
- glVertex2d( 1.0, 1.0);
- glVertex2d(-1.0, 1.0);
- glEnd();
- } else {
- glClear(GL_COLOR_BUFFER_BIT);
- }
-}
-
-static void draw(void)
-{
- glClearColor(0.0, 0.0, 1.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- printf("drawing with %s\n", prog.quads ? "quads" : "clears");
-
- glEnable(GL_SCISSOR_TEST);
-
- {
- glClearColor(1.0, 0.0, 0.0, 1.0);
- glColor4d(1.0, 0.0, 0.0, 1.0);
-
- glScissor(1, 1, 10, 10);
- drawQuad();
- glScissor(1, prog.height - 11, 10, 10);
- drawQuad();
- glScissor(prog.width - 11, prog.height - 11, 10, 10);
- drawQuad();
- }
-
- {
- glClearColor(0.0, 1.0, 0.0, 1.0);
- glColor4d(0.0, 1.0, 0.0, 1.0);
-
- glScissor(12, 1, 10, 10);
- drawQuad();
- glScissor(12, prog.height - 11, 10, 10);
- drawQuad();
- glScissor(prog.width - 22, prog.height - 11, 10, 10);
- drawQuad();
- }
-
- {
- glClearColor(1.0, 1.0, 0.0, 1.0);
- glColor4d(1.0, 1.0, 0.0, 1.0);
-
- glScissor(1, 12, 10, 10);
- drawQuad();
- glScissor(1, prog.height - 22, 10, 10);
- drawQuad();
- glScissor(prog.width - 11, prog.height - 22, 10, 10);
- drawQuad();
- }
-
- glDisable(GL_SCISSOR_TEST);
-
- /* glutSwapBuffers(); */
- glFlush();
-}
-
-int main(int argc, char **argv)
-{
- GLenum type;
-
- glutInit(&argc, argv);
-
- prog.width = 200;
- prog.height = 200;
-
- glutInitWindowPosition(100, 0);
- glutInitWindowSize(prog.width, prog.height);
-
- /* type = GLUT_RGB | GLUT_DOUBLE; */
- type = GLUT_RGB | 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/tests/seccolor.c b/progs/tests/seccolor.c
deleted file mode 100644
index f1ba314ef0..0000000000
--- a/progs/tests/seccolor.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Exercise GL_EXT_secondary_color
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 600;
-static int Height = 200;
-static GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- GLfloat t;
-
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- for (t = 0.0; t <= 1.0; t += 0.25) {
- GLfloat x = t * 10.0 - 5.0;
- GLfloat g = t;
-
- /* top row: untextured */
- glColor3f(1, 0, 0);
- glPushMatrix();
- glTranslatef(x, 1.2, 0);
-#if defined(GL_EXT_secondary_color)
- glSecondaryColor3fEXT(0, g, 0);
-#endif
- glBegin(GL_POLYGON);
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
- glPopMatrix();
-
- /* bottom row: textured */
- glColor3f(1, 1, 1);
- glEnable(GL_TEXTURE_2D);
- glPushMatrix();
- glTranslatef(x, -1.2, 0);
-#if defined(GL_EXT_secondary_color)
- glSecondaryColor3fEXT(0, g, 0);
-#endif
- 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();
- glDisable(GL_TEXTURE_2D);
- }
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- GLubyte image[4*4][3];
- GLint i;
- if (!glutExtensionSupported("GL_EXT_secondary_color")) {
- printf("Sorry, this program requires GL_EXT_secondary_color\n");
- exit(1);
- }
-
- /* setup red texture with one back texel */
- for (i = 0; i < 4*4; i++) {
- if (i == 0) {
- image[i][0] = 0;
- image[i][1] = 0;
- image[i][2] = 0;
- }
- else {
- image[i][0] = 255;
- image[i][1] = 0;
- image[i][2] = 0;
- }
- }
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 4, 4, 0,
- GL_RGB, GL_UNSIGNED_BYTE, image);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
-#if defined(GL_EXT_secondary_color)
- glEnable(GL_COLOR_SUM_EXT);
-#endif
- glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
-
- printf("Squares should be colored from red -> orange -> yellow.\n");
- printf("Top row is untextured.\n");
- printf("Bottom row is textured (red texture with one black texel).\n");
- printf("Rows should be identical, except for lower-left texel.\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/shader_api.c b/progs/tests/shader_api.c
deleted file mode 100644
index fa0a992540..0000000000
--- a/progs/tests/shader_api.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/* Tests to validate fixes to various bugs in src/mesa/shader/shader_api.c
- *
- * Written by Bruce Merry
- */
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-
-static void assert_test(const char *file, int line, int cond, const char *msg)
-{
- if (!cond)
- fprintf(stderr, "%s:%d assertion \"%s\" failed\n", file, line, msg);
-}
-
-#undef assert
-#define assert(x) assert_test(__FILE__, __LINE__, (x), #x)
-
-static void assert_no_error_test(const char *file, int line)
-{
- GLenum err;
-
- err = glGetError();
- if (err != GL_NO_ERROR)
- fprintf(stderr, "%s:%d received error %s\n",
- file, line, gluErrorString(err));
-}
-
-#define assert_no_error() assert_no_error_test(__FILE__, __LINE__)
-
-static void assert_error_test(const char *file, int line, GLenum expect)
-{
- GLenum err;
-
- err = glGetError();
- if (err != expect)
- fprintf(stderr, "%s:%d expected %s but received %s\n",
- file, line, gluErrorString(expect), gluErrorString(err));
- while (glGetError()); /* consume any following errors */
-}
-
-#define assert_error(err) assert_error_test(__FILE__, __LINE__, (err))
-
-static void check_status(GLuint id, GLenum pname, void (APIENTRY *query)(GLuint, GLenum, GLint *))
-{
- GLint status;
-
- query(id, pname, &status);
- if (!status)
- {
- char info[65536];
-
- fprintf(stderr, "Compilation/link failure:\n");
- glGetInfoLogARB(id, sizeof(info), NULL, info);
- fprintf(stderr, "%s\n", info);
- exit(1);
- }
-}
-
-static void check_compile_status(GLuint id)
-{
- check_status(id, GL_COMPILE_STATUS, glGetShaderiv);
-}
-
-static void check_link_status(GLuint id)
-{
- check_status(id, GL_LINK_STATUS, glGetProgramiv);
-}
-
-static GLuint make_shader(GLenum type, const char *src)
-{
- GLuint id;
-
- assert_no_error();
- id = glCreateShader(type);
- glShaderSource(id, 1, &src, NULL);
- glCompileShader(id);
- check_compile_status(id);
- assert_no_error();
- return id;
-}
-
-static GLuint make_program(const char *vs_src, const char *fs_src)
-{
- GLuint id, vs, fs;
-
- assert_no_error();
- id = glCreateProgram();
- if (vs_src) {
- vs = make_shader(GL_VERTEX_SHADER, vs_src);
- glAttachShader(id, vs);
- glDeleteShader(vs);
- }
- if (fs_src) {
- fs = make_shader(GL_FRAGMENT_SHADER, fs_src);
- glAttachShader(id, fs);
- glDeleteShader(fs);
- }
- glLinkProgram(id);
- check_link_status(id);
- glUseProgram(id);
- glDeleteProgram(id);
- assert_no_error();
- return id;
-}
-
-static void test_uniform_size_type1(const char *glslType, GLenum glType, const char *el)
-{
- char buffer[1024];
- GLuint program;
- GLint active, i;
- GLenum type;
- GLint size;
-
- printf(" Running subtest %s\n", glslType);
- fflush(stdout);
- sprintf(buffer, "#version 120\nuniform %s m[60];\nvoid main() { gl_Position[0] = m[59]%s; }\n",
- glslType, el);
-
- program = make_program(buffer, NULL);
- glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &active);
- assert_no_error();
- for (i = 0; i < active; i++) {
- size = -1;
- type = 0;
- glGetActiveUniform(program, i, sizeof(buffer), NULL, &size, &type, buffer);
- assert_no_error();
- if (strncmp(buffer, "m", 1) == 0)
- break;
- }
- assert(i < active); /* Otherwise the compiler optimised it out */
- assert(type == glType);
- assert(size == 60);
-}
-
-static void test_uniform_size_type(void)
-{
- test_uniform_size_type1("float", GL_FLOAT, "");
- test_uniform_size_type1("vec2", GL_FLOAT_VEC2, "[0]");
- test_uniform_size_type1("vec3", GL_FLOAT_VEC3, "[0]");
- test_uniform_size_type1("vec4", GL_FLOAT_VEC4, "[0]");
-
- test_uniform_size_type1("bool", GL_BOOL, " ? 1.0 : 0.0");
- test_uniform_size_type1("bvec2", GL_BOOL_VEC2, "[0] ? 1.0 : 0.0");
- test_uniform_size_type1("bvec3", GL_BOOL_VEC3, "[0] ? 1.0 : 0.0");
- test_uniform_size_type1("bvec4", GL_BOOL_VEC4, "[0] ? 1.0 : 0.0");
-
- test_uniform_size_type1("int", GL_INT, "");
- test_uniform_size_type1("ivec2", GL_INT_VEC2, "[0]");
- test_uniform_size_type1("ivec3", GL_INT_VEC3, "[0]");
- test_uniform_size_type1("ivec4", GL_INT_VEC4, "[0]");
-
- test_uniform_size_type1("mat2", GL_FLOAT_MAT2, "[0][0]");
- test_uniform_size_type1("mat3", GL_FLOAT_MAT3, "[0][0]");
- test_uniform_size_type1("mat4", GL_FLOAT_MAT4, "[0][0]");
- test_uniform_size_type1("mat2x3", GL_FLOAT_MAT2x3, "[0][0]");
- test_uniform_size_type1("mat2x4", GL_FLOAT_MAT2x4, "[0][0]");
- test_uniform_size_type1("mat3x2", GL_FLOAT_MAT3x2, "[0][0]");
- test_uniform_size_type1("mat3x4", GL_FLOAT_MAT3x4, "[0][0]");
- test_uniform_size_type1("mat4x2", GL_FLOAT_MAT4x2, "[0][0]");
- test_uniform_size_type1("mat4x3", GL_FLOAT_MAT4x3, "[0][0]");
-}
-
-static void test_attrib_size_type1(const char *glslType, GLenum glType, const char *el)
-{
- char buffer[1024];
- GLuint program;
- GLint active, i;
- GLenum type;
- GLint size;
-
- printf(" Running subtest %s\n", glslType);
- fflush(stdout);
- sprintf(buffer, "#version 120\nattribute %s m;\nvoid main() { gl_Position[0] = m%s; }\n",
- glslType, el);
-
- program = make_program(buffer, NULL);
- glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &active);
- assert_no_error();
- for (i = 0; i < active; i++) {
- size = -1;
- type = -1;
- glGetActiveAttrib(program, i, sizeof(buffer), NULL, &size, &type, buffer);
- assert_no_error();
- if (strncmp(buffer, "m", 1) == 0)
- break;
- }
- assert(i < active); /* Otherwise the compiler optimised it out */
- assert(type == glType);
- assert(size == 1);
-}
-
-static void test_attrib_size_type(void)
-{
- test_attrib_size_type1("float", GL_FLOAT, "");
- test_attrib_size_type1("vec2", GL_FLOAT_VEC2, "[0]");
- test_attrib_size_type1("vec3", GL_FLOAT_VEC3, "[0]");
- test_attrib_size_type1("vec4", GL_FLOAT_VEC4, "[0]");
-
- test_attrib_size_type1("mat2", GL_FLOAT_MAT2, "[0][0]");
- test_attrib_size_type1("mat3", GL_FLOAT_MAT3, "[0][0]");
- test_attrib_size_type1("mat4", GL_FLOAT_MAT4, "[0][0]");
- test_attrib_size_type1("mat2x3", GL_FLOAT_MAT2x3, "[0][0]");
- test_attrib_size_type1("mat2x4", GL_FLOAT_MAT2x4, "[0][0]");
- test_attrib_size_type1("mat3x2", GL_FLOAT_MAT3x2, "[0][0]");
- test_attrib_size_type1("mat3x4", GL_FLOAT_MAT3x4, "[0][0]");
- test_attrib_size_type1("mat4x2", GL_FLOAT_MAT4x2, "[0][0]");
- test_attrib_size_type1("mat4x3", GL_FLOAT_MAT4x3, "[0][0]");
-}
-
-static void test_uniform_array_overflow(void)
-{
- GLuint program;
- GLint location;
- GLfloat data[128];
-
- program = make_program("#version 120\nuniform vec2 x[10];\nvoid main() { gl_Position.xy = x[9]; }\n", NULL);
- location = glGetUniformLocation(program, "x");
- assert_no_error();
- glUniform2fv(location, 64, data);
- assert_no_error();
-}
-
-static void test_uniform_scalar_count(void)
-{
- GLuint program;
- GLint location;
- GLfloat data[128];
-
- program = make_program("#version 110\nuniform vec2 x;\nvoid main() { gl_Position.xy = x; }\n", NULL);
- location = glGetUniformLocation(program, "x");
- assert_no_error();
- glUniform2fv(location, 64, data);
- assert_error(GL_INVALID_OPERATION);
-}
-
-static void test_uniform_query_matrix(void)
-{
- GLuint program;
- GLfloat data[18];
- GLint i, r, c;
- GLint location;
-
- program = make_program("#version 110\nuniform mat3 m[2];\nvoid main() { gl_Position.xyz = m[1][2]; }\n", NULL);
- location = glGetUniformLocation(program, "m");
- for (i = 0; i < 9; i++)
- data[i] = i;
- for (i = 9; i < 18; i++)
- data[i] = 321.0;
- glUniformMatrix3fv(location, 1, GL_TRUE, data);
-
- for (i = 0; i < 18; i++)
- data[i] = 123.0;
- glGetUniformfv(program, location, data);
- for (c = 0; c < 3; c++)
- for (r = 0; r < 3; r++)
- assert(data[c * 3 + r] == r * 3 + c);
- for (i = 9; i < 18; i++)
- assert(data[i] == 123.0);
-}
-
-static void test_uniform_neg_location(void)
-{
- GLuint program;
- GLfloat data[4];
-
- program = make_program("#version 110\nvoid main() { gl_Position = vec4(1.0, 1.0, 1.0, 1.0); }\n", NULL);
- assert_no_error();
- glUniform1i(-1, 1);
- assert_no_error();
- glUniform1i(-200, 1);
- assert_error(GL_INVALID_OPERATION);
- glUniformMatrix2fv(-1, 1, GL_FALSE, data);
- assert_no_error();
- glUniformMatrix2fv(-200, 1, GL_FALSE, data);
- assert_error(GL_INVALID_OPERATION);
-}
-
-static void test_uniform_bool_conversion(void)
-{
- GLuint program;
- GLint location;
- GLint value[16]; /* in case glGetUniformiv goes nuts on the stack */
-
- assert_no_error();
- program = make_program("uniform bool b;\nvoid main() { gl_Position.x = b ? 1.5 : 0.5; }\n", NULL);
- location = glGetUniformLocation(program, "b");
- assert(location != -1);
- assert_no_error();
- glUniform1i(location, 5);
- assert_no_error();
- glGetUniformiv(program, location, &value[0]);
- assert_no_error();
- assert(value[0] == 1);
-}
-
-static void test_uniform_multiple_samplers(void)
-{
- GLuint program;
- GLint location;
- GLint values[2] = {0, 1};
-
- assert_no_error();
- program = make_program(NULL, "uniform sampler2D s[2];\nvoid main() { gl_FragColor = texture2D(s[1], vec2(0.0, 0.0)); }\n");
- location = glGetUniformLocation(program, "s[0]");
- assert(location != -1);
- assert_no_error();
- glUniform1iv(location, 2, values);
- assert_no_error();
-}
-
-static void run_test(const char *name, void (*callback)(void))
-{
- printf("Running %s\n", name);
- fflush(stdout);
- callback();
-}
-
-#define RUN_TEST(name) run_test(#name, (name))
-
-int main(int argc, char **argv)
-{
- const char *version;
-
- glutInit(&argc, argv);
- glutCreateWindow("Mesa bug demo");
- glewInit();
-
- version = (const char *) glGetString(GL_VERSION);
- if (version[0] == '1') {
- printf("Sorry, this test requires OpenGL 2.x GLSL support\n");
- exit(0);
- }
-
- RUN_TEST(test_uniform_size_type);
- RUN_TEST(test_attrib_size_type);
- RUN_TEST(test_uniform_array_overflow);
- RUN_TEST(test_uniform_scalar_count);
- RUN_TEST(test_uniform_query_matrix);
- RUN_TEST(test_uniform_neg_location);
- RUN_TEST(test_uniform_bool_conversion);
- /* Leave this one at the end, since it crashes Mesa's shader compiler */
- RUN_TEST(test_uniform_multiple_samplers);
- return 0;
-}
diff --git a/progs/tests/sharedtex.c b/progs/tests/sharedtex.c
deleted file mode 100644
index 2337b88d3f..0000000000
--- a/progs/tests/sharedtex.c
+++ /dev/null
@@ -1,439 +0,0 @@
-
-/*
- * Test sharing of display lists and texture objects between GLX contests.
- * Brian Paul
- * Summer 2000
- *
- *
- * 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.
- */
-
-
-#include <GL/gl.h>
-#include <GL/glx.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-
-
-struct window {
- char DisplayName[1000];
- Display *Dpy;
- Window Win;
- GLXContext Context;
- float Angle;
- int Id;
-};
-
-
-#define MAX_WINDOWS 20
-static struct window Windows[MAX_WINDOWS];
-static int NumWindows = 0;
-
-
-static GLuint Textures[3];
-static GLuint CubeList;
-
-
-
-static void
-Error(const char *display, const char *msg)
-{
- fprintf(stderr, "Error on display %s - %s\n", display, msg);
- exit(1);
-}
-
-
-static struct window *
-AddWindow(const char *displayName, int xpos, int ypos,
- const struct window *shareWindow)
-{
- Display *dpy;
- Window win;
- GLXContext ctx;
- int attrib[] = { 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;
- XVisualInfo *visinfo;
- int width = 300, height = 300;
-
- if (NumWindows >= MAX_WINDOWS)
- return NULL;
-
- dpy = XOpenDisplay(displayName);
- if (!dpy) {
- Error(displayName, "Unable to open display");
- return NULL;
- }
-
- scrnum = DefaultScreen(dpy);
- root = RootWindow(dpy, scrnum);
-
- visinfo = glXChooseVisual(dpy, scrnum, attrib);
- if (!visinfo) {
- Error(displayName, "Unable to find RGB, double-buffered visual");
- return NULL;
- }
-
- /* 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, xpos, ypos, width, height,
- 0, visinfo->depth, InputOutput,
- visinfo->visual, mask, &attr);
- if (!win) {
- Error(displayName, "Couldn't create window");
- return NULL;
- }
-
- {
- XSizeHints sizehints;
- sizehints.x = xpos;
- sizehints.y = ypos;
- sizehints.width = width;
- sizehints.height = height;
- sizehints.flags = USSize | USPosition;
- XSetNormalHints(dpy, win, &sizehints);
- XSetStandardProperties(dpy, win, displayName, displayName,
- None, (char **)NULL, 0, &sizehints);
- }
-
-
- ctx = glXCreateContext(dpy, visinfo,
- shareWindow ? shareWindow->Context : NULL,
- True);
- if (!ctx) {
- Error(displayName, "Couldn't create GLX context");
- return NULL;
- }
-
- XMapWindow(dpy, win);
-
- if (!glXMakeCurrent(dpy, win, ctx)) {
- Error(displayName, "glXMakeCurrent failed");
- printf("glXMakeCurrent failed in Redraw()\n");
- return NULL;
- }
-
- /* save the info for this window */
- {
- static int id = 0;
- struct window *h = &Windows[NumWindows];
- strcpy(h->DisplayName, displayName);
- h->Dpy = dpy;
- h->Win = win;
- h->Context = ctx;
- h->Angle = 0.0;
- h->Id = id++;
- NumWindows++;
- return &Windows[NumWindows-1];
- }
-
-}
-
-
-static void
-InitGLstuff(struct window *h)
-{
- if (!glXMakeCurrent(h->Dpy, h->Win, h->Context)) {
- Error(h->DisplayName, "glXMakeCurrent failed in InitGLstuff");
- return;
- }
-
- glGenTextures(3, Textures);
-
- /* setup first texture object */
- {
- GLubyte image[16][16][4];
- GLint i, j;
- glBindTexture(GL_TEXTURE_2D, Textures[0]);
-
- /* red/white checkerboard */
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 16; j++) {
- if ((i ^ j) & 1) {
- image[i][j][0] = 255;
- image[i][j][1] = 255;
- image[i][j][2] = 255;
- image[i][j][3] = 255;
- }
- else {
- image[i][j][0] = 255;
- image[i][j][1] = 0;
- image[i][j][2] = 0;
- image[i][j][3] = 255;
- }
- }
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, image);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
-
- /* setup second texture object */
- {
- GLubyte image[8][8][3];
- GLint i, j;
- glBindTexture(GL_TEXTURE_2D, Textures[1]);
-
- /* green/yellow checkerboard */
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 8; j++) {
- if ((i ^ j) & 1) {
- image[i][j][0] = 0;
- image[i][j][1] = 255;
- image[i][j][2] = 0;
- }
- else {
- image[i][j][0] = 255;
- image[i][j][1] = 255;
- image[i][j][2] = 0;
- }
- }
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 8, 8, 0, GL_RGB,
- GL_UNSIGNED_BYTE, image);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
-
- /* setup second texture object */
- {
- GLubyte image[4][4][3];
- GLint i, j;
- glBindTexture(GL_TEXTURE_2D, Textures[2]);
-
- /* blue/gray checkerboard */
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 4; j++) {
- if ((i ^ j) & 1) {
- image[i][j][0] = 0;
- image[i][j][1] = 0;
- image[i][j][2] = 255;
- }
- else {
- image[i][j][0] = 200;
- image[i][j][1] = 200;
- image[i][j][2] = 200;
- }
- }
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 4, 4, 0, GL_RGB,
- GL_UNSIGNED_BYTE, image);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
-
- /* Now make the cube object display list */
- CubeList = glGenLists(1);
- glNewList(CubeList, GL_COMPILE);
- {
- glBindTexture(GL_TEXTURE_2D, Textures[0]);
- glBegin(GL_POLYGON);
- 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();
- glBegin(GL_POLYGON);
- 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();
-
- glBindTexture(GL_TEXTURE_2D, Textures[1]);
- glBegin(GL_POLYGON);
- 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();
- glBegin(GL_POLYGON);
- 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();
-
- glBindTexture(GL_TEXTURE_2D, Textures[2]);
- glBegin(GL_POLYGON);
- 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();
- glBegin(GL_POLYGON);
- 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();
- }
- glEndList();
-
- 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));
-}
-
-
-
-static void
-Redraw(struct window *h)
-{
- if (!glXMakeCurrent(h->Dpy, h->Win, h->Context)) {
- Error(h->DisplayName, "glXMakeCurrent failed");
- printf("glXMakeCurrent failed in Redraw()\n");
- return;
- }
-
- h->Angle += 1.0;
-
- glShadeModel(GL_FLAT);
- glClearColor(0.25, 0.25, 0.25, 1.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_DEPTH_TEST);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
- glColor3f(1, 1, 1);
-
- glPushMatrix();
- if (h->Id == 0)
- glRotatef(h->Angle, 0, 1, -1);
- else if (h->Id == 1)
- glRotatef(-(h->Angle), 0, 1, -1);
- else if (h->Id == 2)
- glRotatef(h->Angle, 0, 1, 1);
- else if (h->Id == 3)
- glRotatef(-(h->Angle), 0, 1, 1);
- glCallList(CubeList);
- glPopMatrix();
-
- glXSwapBuffers(h->Dpy, h->Win);
-}
-
-
-
-static void
-Resize(const struct window *h, unsigned int width, unsigned int height)
-{
- if (!glXMakeCurrent(h->Dpy, h->Win, h->Context)) {
- Error(h->DisplayName, "glXMakeCurrent failed in Resize()");
- return;
- }
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1, 1, -1, 1, 2, 10);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0, 0, -4.5);
-}
-
-
-
-static void
-EventLoop(void)
-{
- while (1) {
- int i;
- for (i = 0; i < NumWindows; i++) {
- struct window *h = &Windows[i];
- while (XPending(h->Dpy) > 0) {
- XEvent event;
- XNextEvent(h->Dpy, &event);
- if (event.xany.window == h->Win) {
- switch (event.type) {
- case Expose:
- Redraw(h);
- break;
- case ConfigureNotify:
- Resize(h, event.xconfigure.width, event.xconfigure.height);
- break;
- case KeyPress:
- return;
- default:
- /*no-op*/ ;
- }
- }
- else {
- printf("window mismatch\n");
- }
- }
- Redraw(h);
- }
- usleep(1);
- }
-}
-
-
-#if 0
-static void
-PrintInfo(const struct window *h)
-{
- printf("Name: %s\n", h->DisplayName);
- printf(" Display: %p\n", (void *) h->Dpy);
- printf(" Window: 0x%x\n", (int) h->Win);
- printf(" Context: 0x%x\n", (int) h->Context);
-}
-#endif
-
-
-int
-main(int argc, char *argv[])
-{
- const char *dpyName = XDisplayName(NULL);
-
- struct window *h0;
-
- /* four windows and contexts sharing display lists and texture objects */
- h0 = AddWindow(dpyName, 10, 10, NULL);
- (void) AddWindow(dpyName, 330, 10, h0);
- (void) AddWindow(dpyName, 10, 350, h0);
- (void) AddWindow(dpyName, 330, 350, h0);
-
- InitGLstuff(h0);
-
- EventLoop();
- return 0;
-}
diff --git a/progs/tests/stencil_twoside.c b/progs/tests/stencil_twoside.c
deleted file mode 100644
index dec620023f..0000000000
--- a/progs/tests/stencil_twoside.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file stencil_twoside.c
- *
- * Simple test of GL_ATI_separate_stencil (or the OGL 2.0 equivalent) functionality.
- * Five squares (or six if stencil wrap is available) are drawn
- * with different stencil modes, but all should be rendered with the same
- * final color.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int use20syntax = 1;
-static int Width = 650;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static PFNGLSTENCILFUNCSEPARATEPROC stencil_func_separate = NULL;
-static PFNGLSTENCILFUNCSEPARATEATIPROC stencil_func_separate_ati = NULL;
-static PFNGLSTENCILOPSEPARATEPROC stencil_op_separate = NULL;
-
-static void Display( void )
-{
- GLint max_stencil;
- GLint stencil_bits;
- unsigned i;
-
-
- glGetIntegerv( GL_STENCIL_BITS, & stencil_bits );
- max_stencil = (1U << stencil_bits) - 1;
- printf( "Stencil bits = %u, maximum stencil value = 0x%08x\n",
- stencil_bits, max_stencil );
-
- glClearStencil( 1 );
- glClearColor( 0.2, 0.2, 0.8, 0 );
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT
- | GL_STENCIL_BUFFER_BIT );
-
-
- glPushMatrix();
-
- /* This is the "reference" square.
- */
-
- glDisable(GL_STENCIL_TEST);
- glTranslatef(-7.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glEnable(GL_STENCIL_TEST);
-
- /* Draw the first two squares using incr for the affected face
- */
-
- /*************************************************************************
- * 2nd square
- */
- if (use20syntax) {
- stencil_func_separate(GL_FRONT, GL_ALWAYS, 0, ~0);
- stencil_func_separate(GL_BACK, GL_ALWAYS, 0, ~0);
- }
- else {
- stencil_func_separate_ati(GL_ALWAYS, GL_ALWAYS, 0, ~0);
- }
- stencil_op_separate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);
- stencil_op_separate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- /* this should be front facing */
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- /* stencil vals should be equal to max_stencil */
- glStencilFunc(GL_EQUAL, max_stencil, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- /*************************************************************************
- * 3rd square
- */
- if (use20syntax) {
- stencil_func_separate(GL_FRONT, GL_ALWAYS, 0, ~0);
- stencil_func_separate(GL_BACK, GL_ALWAYS, 0, ~0);
- }
- else {
- stencil_func_separate_ati(GL_ALWAYS, GL_ALWAYS, 0, ~0);
- }
- stencil_op_separate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);
- stencil_op_separate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- /* this should be back facing */
- glVertex2f(-1, -1);
- glVertex2f(-1, 1);
- glVertex2f( 1, 1);
- glVertex2f( 1, -1);
- }
- glEnd();
-
- /* stencil vals should be equal to max_stencil */
- glStencilFunc(GL_EQUAL, max_stencil, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- /*************************************************************************
- * 4th square
- */
- if (use20syntax) {
- stencil_func_separate(GL_FRONT, GL_NEVER, 0, ~0);
- stencil_func_separate(GL_BACK, GL_ALWAYS, 0, ~0);
- }
- else {
- stencil_func_separate_ati(GL_NEVER, GL_ALWAYS, 0, ~0);
- }
- stencil_op_separate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);
- stencil_op_separate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- /* this should be back facing */
- glVertex2f(-1, -1);
- glVertex2f(-1, 1);
- glVertex2f( 1, 1);
- glVertex2f( 1, -1);
- /* this should be front facing */
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- /* stencil vals should be equal to max_stencil */
- glStencilFunc(GL_EQUAL, max_stencil, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- /*************************************************************************
- * 5th square
- */
- if (use20syntax) {
- stencil_func_separate(GL_FRONT, GL_ALWAYS, 0, ~0);
- stencil_func_separate(GL_BACK, GL_ALWAYS, 0, ~0);
- }
- else {
- stencil_func_separate_ati(GL_ALWAYS, GL_ALWAYS, 0, ~0);
- }
- stencil_op_separate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);
- stencil_op_separate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- /* this should be back facing */
- glVertex2f(-1, -1);
- glVertex2f(-1, 1);
- glVertex2f( 1, 1);
- glVertex2f( 1, -1);
- /* this should be front facing */
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, 1, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
- /*************************************************************************
- * 6th square
- */
- if (glutExtensionSupported("GL_EXT_stencil_wrap")) {
- if (use20syntax) {
- stencil_func_separate(GL_FRONT, GL_ALWAYS, 0, ~0);
- stencil_func_separate(GL_BACK, GL_ALWAYS, 0, ~0);
- }
- else {
- stencil_func_separate_ati(GL_ALWAYS, GL_ALWAYS, 0, ~0);
- }
- stencil_op_separate(GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP);
- stencil_op_separate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR_WRAP);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- /* this should be back facing */
- glVertex2f(-1, -1);
- glVertex2f(-1, 1);
- glVertex2f( 1, 1);
- glVertex2f( 1, -1);
- /* this should be front facing */
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, 260 - 255, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( !glutExtensionSupported("GL_ATI_separate_stencil")
- && (atof( ver_string ) < 2.0) ) {
- printf("Sorry, this program requires either GL_ATI_separate_stencil or OpenGL 2.0.\n");
- exit(1);
- }
- if (atof( ver_string ) < 2.0) {
- use20syntax = 0;
- }
- stencil_func_separate = (PFNGLSTENCILFUNCSEPARATEPROC) glutGetProcAddress( "glStencilFuncSeparate" );
- stencil_func_separate_ati = (PFNGLSTENCILFUNCSEPARATEATIPROC) glutGetProcAddress( "glStencilFuncSeparateATI" );
- stencil_op_separate = (PFNGLSTENCILOPSEPARATEPROC) glutGetProcAddress( "glStencilOpSeparate" );
-
- printf("\nAll 5 (or 6) squares should be the same color.\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STENCIL );
- glutCreateWindow( "GL_ATI_separate_stencil test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/stencil_wrap.c b/progs/tests/stencil_wrap.c
deleted file mode 100644
index 2bafd3204f..0000000000
--- a/progs/tests/stencil_wrap.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * VA LINUX SYSTEM, IBM 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.
- */
-
-/**
- * \file stencil_wrap.c
- *
- * Simple test of GL_EXT_stencil_wrap functionality. Four squares are drawn
- * with different stencil modes, but all should be rendered with the same
- * final color.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int Width = 550;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
- GLint max_stencil;
- GLint stencil_bits;
- unsigned i;
-
-
- glGetIntegerv( GL_STENCIL_BITS, & stencil_bits );
- max_stencil = (1U << stencil_bits) - 1;
- printf( "Stencil bits = %u, maximum stencil value = 0x%08x\n",
- stencil_bits, max_stencil );
-
- glClearStencil( 0 );
- glClearColor( 0.2, 0.2, 0.8, 0 );
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT
- | GL_STENCIL_BUFFER_BIT );
-
-
- glPushMatrix();
-
- /* This is the "reference" square.
- */
-
- glDisable(GL_STENCIL_TEST);
- glTranslatef(-6.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glEnable(GL_STENCIL_TEST);
-
- /* Draw the first two squares using the two non-wrap (i.e., saturate)
- * modes.
- */
-
- glStencilFunc(GL_ALWAYS, 0, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
-
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, max_stencil, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
- glStencilFunc(GL_ALWAYS, 0, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
-
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, 0, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
-
-
- /* Draw the last two squares using the two wrap modes.
- */
-
- glStencilFunc(GL_ALWAYS, 0, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INCR_WRAP);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
-
- for ( i = 0 ; i < (max_stencil + 5) ; i++ ) {
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, 4, ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
-
- glStencilFunc(GL_ALWAYS, 0, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_DECR_WRAP);
-
- glTranslatef(3.0, 0, 0);
- glBegin(GL_QUADS);
- glColor3f( 0.9, 0.9, 0.9 );
-
- for ( i = 0 ; i < 5 ; i++ ) {
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- }
- glEnd();
-
- glStencilFunc(GL_EQUAL, (max_stencil - 4), ~0);
- glBegin(GL_QUADS);
- glColor3f( 0.5, 0.5, 0.5 );
- glVertex2f(-1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 1, 1);
- glVertex2f(-1, 1);
- glEnd();
-
-
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", ver_string);
-
- if ( !glutExtensionSupported("GL_EXT_stencil_wrap")
- && (atof( ver_string ) < 1.4) ) {
- printf("Sorry, this program requires either GL_EXT_stencil_wrap or OpenGL 1.4.\n");
- exit(1);
- }
-
- printf("\nAll 5 squares should be the same color.\n");
- glEnable( GL_BLEND );
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STENCIL );
- glutCreateWindow( "GL_EXT_stencil_wrap test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/stencilreaddraw.c b/progs/tests/stencilreaddraw.c
deleted file mode 100644
index 84a5a922a0..0000000000
--- a/progs/tests/stencilreaddraw.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Test glRead/DrawPixels for GL_STENCIL_INDEX, with pixelzoom.
- *
- * Brian Paul
- * 8 April 2010
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLint WinWidth = 500, WinHeight = 500;
-static GLboolean TestPacking = GL_FALSE;
-static GLboolean TestList = GL_FALSE;
-
-
-static GLuint StencilValue = 192;
-
-static void Display(void)
-{
- GLubyte stencil[100 * 100 * 2];
- GLubyte stencil2[400 * 400]; /* *2 to test pixelstore stuff */
- GLuint list;
-
- glClearColor(0.5, 0.5, 0.5, 1.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-
- glEnable(GL_DEPTH_TEST);
-
- glStencilOp(GL_INVERT, GL_KEEP, GL_REPLACE);
- glStencilFunc(GL_ALWAYS, StencilValue, ~0);
- glEnable(GL_STENCIL_TEST);
-
- /* draw a sphere */
- glViewport(0, 0, 100, 100);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-1, 1, -1, 1, -1, 0); /* clip away back half of sphere */
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glutSolidSphere(1.0, 20, 10);
-
- glDisable(GL_STENCIL_TEST);
-
- if (TestPacking) {
- glPixelStorei(GL_PACK_ROW_LENGTH, 120);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 5);
- }
-
- /* read the stencil image */
- glReadPixels(0, 0, 100, 100, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, stencil);
- {
- GLubyte min, max;
- int i;
- min = max = stencil[0];
- for (i = 1; i < 100 * 100; i++) {
- if (stencil[i] < min)
- min = stencil[i];
- if (stencil[i] > max)
- max = stencil[i];
- }
- printf("Stencil value range: [%u, %u]\n", min, max);
- if (max != StencilValue) {
- printf("Error: expected max stencil val of %u, found %u\n",
- StencilValue, max);
- }
- }
-
- /* Draw the Z image as luminance above original rendering */
- glWindowPos2i(0, 100);
- glDrawPixels(100, 100, GL_LUMINANCE, GL_UNSIGNED_BYTE, stencil);
-
- if (1) {
- if (TestPacking) {
- glPixelStorei(GL_PACK_ROW_LENGTH, 0);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 120);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, 5);
- }
-
- /* draw stencil image with scaling (into stencil buffer) */
- glPixelZoom(4.0, 4.0);
- glColor4f(1, 0, 0, 0);
- glWindowPos2i(100, 0);
-
- if (TestList) {
- list = glGenLists(1);
- glNewList(list, GL_COMPILE);
- glDrawPixels(100, 100, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, stencil);
- glEndList();
- glCallList(list);
- glDeleteLists(list, 1);
- }
- else {
- glDrawPixels(100, 100, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, stencil);
- }
-
- if (TestPacking) {
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
- }
-
- /* read back scaled stencil image */
- glReadPixels(100, 0, 400, 400, GL_STENCIL_INDEX,
- GL_UNSIGNED_BYTE, stencil2);
- /* draw as luminance */
- glPixelZoom(1.0, 1.0);
- glWindowPos2i(100, 0);
- glDrawPixels(400, 400, GL_LUMINANCE, GL_UNSIGNED_BYTE, stencil2);
- }
-
- glutSwapBuffers();
-}
-
-
-static void Reshape(int width, int height)
-{
- WinWidth = width;
- WinHeight = height;
- glViewport(0, 0, width, height);
-}
-
-
-static void Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'p':
- TestPacking = !TestPacking;
- printf("Test pixel pack/unpack: %d\n", TestPacking);
- break;
- case 'l':
- TestList = !TestList;
- printf("Test dlist: %d\n", TestList);
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init(void)
-{
- 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};
- GLint bits;
-
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
- glGetIntegerv(GL_STENCIL_BITS, &bits);
- printf("Stencil bits: %d\n", bits);
-
- assert(bits >= 8);
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, blue);
- glLightfv(GL_LIGHT0, GL_AMBIENT, gray);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, white);
- glLightfv(GL_LIGHT0, GL_POSITION, pos);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-}
-
-
-int main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL | GLUT_DOUBLE);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Display);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/stencilwrap.c b/progs/tests/stencilwrap.c
deleted file mode 100644
index d396fc2a53..0000000000
--- a/progs/tests/stencilwrap.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Test GL_EXT_stencil_wrap extension.
- * This is by no means complete, just a quick check.
- *
- * Brian Paul 30 October 2002
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-GLboolean wrapping;
-
-static void RunTest(void)
-{
- const GLenum prim = GL_QUAD_STRIP;
- GLubyte val;
- int bits, max, i;
- int expected;
- GLboolean failed;
-
- glGetIntegerv(GL_STENCIL_BITS, &bits);
- max = (1 << bits) - 1;
-
-
- glEnable(GL_STENCIL_TEST);
- glStencilFunc(GL_ALWAYS, 0, ~0);
-
- /* test GL_KEEP */
- glClearStencil(max);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
- failed = GL_FALSE;
- printf("Testing GL_KEEP...\n");
- expected = max;
- glBegin(prim);
- glVertex2f(0, 0);
- glVertex2f(10, 0);
- glVertex2f(0, 10);
- glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf("Failed GL_KEEP test(got %u, expected %u)\n", val, expected);
- failed = GL_TRUE;
- }
- else
- printf("OK!\n");
-
- /* test GL_ZERO */
- glClearStencil(max);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_ZERO);
- failed = GL_FALSE;
- printf("Testing GL_ZERO...\n");
- expected = 0;
- glBegin(prim);
- glVertex2f(0, 0);
- glVertex2f(10, 0);
- glVertex2f(0, 10);
- glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf("Failed GL_ZERO test(got %u, expected %u)\n", val, expected);
- failed = GL_TRUE;
- }
- else
- printf("OK!\n");
-
- /* test GL_REPLACE */
- glClearStencil(max);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
- failed = GL_FALSE;
- printf("Testing GL_REPLACE...\n");
- expected = 0;
- glBegin(prim);
- glVertex2f(0, 0);
- glVertex2f(10, 0);
- glVertex2f(0, 10);
- glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf("Failed GL_REPLACE test(got %u, expected %u)\n", val, expected);
- failed = GL_TRUE;
- }
- else
- printf("OK!\n");
-
- /* test GL_INCR (saturation) */
- glClearStencil(0);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
- failed = GL_FALSE;
- printf("Testing GL_INCR...\n");
- for (i = 1; i < max+10; i++) {
- expected = (i > max) ? max : i;
- glBegin(prim);
- glVertex2f(0, 0); glVertex2f(10, 0);
- glVertex2f(0, 10); glVertex2f(10, 10);
- glEnd();
-
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf( "Failed GL_INCR test on iteration #%u "
- "(got %u, expected %u)\n", i, val, expected );
- failed = GL_TRUE;
- }
- }
- if ( !failed )
- printf("OK!\n");
-
- /* test GL_DECR (saturation) */
- glClearStencil(max);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
- failed = GL_FALSE;
- printf("Testing GL_DECR...\n");
- for (i = max-1; i > -10; i--) {
- expected = (i < 0) ? 0 : i;
- glBegin(prim);
- glVertex2f(0, 0); glVertex2f(10, 0);
- glVertex2f(0, 10); glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf( "Failed GL_DECR test on iteration #%u "
- "(got %u, expected %u)\n", max - i, val, expected );
- failed = GL_TRUE;
- }
- }
- if ( !failed )
- printf("OK!\n");
-
- /* test GL_INVERT */
- glClearStencil(0);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INVERT);
- failed = GL_FALSE;
- printf("Testing GL_INVERT...\n");
- expected = max;
- glBegin(prim);
- glVertex2f(0, 0);
- glVertex2f(10, 0);
- glVertex2f(0, 10);
- glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf("Failed GL_INVERT test(got %u, expected %u)\n", val, expected);
- failed = GL_TRUE;
- }
- else
- printf("OK!\n");
-
- if(wrapping)
- {
- /* test GL_INCR_WRAP_EXT (wrap around) */
- glClearStencil(0);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INCR_WRAP_EXT);
- failed = GL_FALSE;
- printf("Testing GL_INCR_WRAP_EXT...\n");
- for (i = 1; i < max+10; i++) {
- expected = i % (max + 1);
- glBegin(prim);
- glVertex2f(0, 0); glVertex2f(10, 0);
- glVertex2f(0, 10); glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf( "Failed GL_INCR_WRAP test on iteration #%u "
- "(got %u, expected %u)\n", i, val, expected );
- failed = GL_TRUE;
- }
- }
- if ( !failed )
- printf("OK!\n");
-
- /* test GL_DECR_WRAP_EXT (wrap-around) */
- glClearStencil(max);
- glClear(GL_STENCIL_BUFFER_BIT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_DECR_WRAP_EXT);
- failed = GL_FALSE;
- printf("Testing GL_DECR_WRAP_EXT...\n");
- for (i = max-1; i > -10; i--) {
- expected = (i < 0) ? max + i + 1: i;
- glBegin(prim);
- glVertex2f(0, 0); glVertex2f(10, 0);
- glVertex2f(0, 10); glVertex2f(10, 10);
- glEnd();
- glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
- if (val != expected) {
- printf( "Failed GL_DECR_WRAP test on iteration #%u "
- "(got %u, expected %u)\n", max - i, val, expected );
- failed = GL_TRUE;
- }
- }
- if ( !failed )
- printf("OK!\n");
- }
-
- glDisable(GL_STENCIL_TEST);
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- RunTest();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * ver_str;
- float version;
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
-
-
- /* Check for both the extension string and GL version 1.4 on the
- * outside chance that some vendor exports version 1.4 but doesn't
- * export the extension string. The stencil-wrap modes are a required
- * part of GL 1.4.
- */
-
- ver_str = (char *) glGetString( GL_VERSION );
- version = (ver_str == NULL) ? 1.0 : atof( ver_str );
-
- wrapping = (glutExtensionSupported("GL_EXT_stencil_wrap") || (version >= 1.4));
- if (!wrapping)
- printf("GL_EXT_stencil_wrap not supported. Only testing the rest.\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 400 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_STENCIL );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/streaming_rect.c b/progs/tests/streaming_rect.c
deleted file mode 100644
index 3b016e55af..0000000000
--- a/progs/tests/streaming_rect.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * GL_ARB_pixel_buffer_object test
- *
- * Command line options:
- * -w WIDTH -h HEIGHT sets window size
- *
- */
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-#define ANIMATE 10
-#define PBO 11
-#define QUIT 100
-
-static GLuint DrawPBO;
-
-static GLboolean Animate = GL_TRUE;
-static GLboolean use_pbo = 1;
-static GLboolean whole_rect = 1;
-
-static GLfloat Drift = 0.0;
-static GLfloat drift_increment = 1/255.0;
-static GLfloat Xrot = 20.0, Yrot = 30.0;
-
-static GLuint Width = 1024;
-static GLuint Height = 512;
-
-
-static void Idle( void )
-{
- if (Animate) {
-
- Drift += drift_increment;
- if (Drift >= 1.0)
- Drift = 0.0;
-
- glutPostRedisplay();
- }
-}
-
-/*static int max( int a, int b ) { return a > b ? a : b; }*/
-
-#ifndef min
-static int min( int a, int b ) { return a < b ? a : b; }
-#endif
-
-static void DrawObject()
-{
- GLint size = Width * Height * 4;
-
- if (use_pbo) {
- /* XXX: This is extremely important - semantically makes the buffer
- * contents undefined, but in practice means that the driver can
- * release the old copy of the texture and allocate a new one
- * without waiting for outstanding rendering to complete.
- */
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO);
- glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_EXT, size, NULL, GL_STREAM_DRAW_ARB);
-
- {
- char *image = glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, GL_WRITE_ONLY_ARB);
-
- printf("char %d\n", (unsigned char)(Drift * 255));
-
- memset(image, (unsigned char)(Drift * 255), size);
-
- glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT);
- }
-
-
- /* BGRA is required for most hardware paths:
- */
- glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
- GL_BGRA, GL_UNSIGNED_BYTE, NULL);
- }
- else {
- static char *image = NULL;
-
- if (image == NULL)
- image = malloc(size);
-
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
-
- memset(image, (unsigned char)(Drift * 255), size);
-
- /* BGRA should be the fast path for regular uploads as well.
- */
- glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
- GL_BGRA, GL_UNSIGNED_BYTE, image);
- }
-
- {
- int x,y,w,h;
-
- if (whole_rect) {
- x = y = 0;
- w = Width;
- h = Height;
- }
- else {
- x = y = 0;
- w = min(10, Width);
- h = min(10, Height);
- }
-
- glBegin(GL_QUADS);
-
- glTexCoord2f( x, y);
- glVertex2f( x, y );
-
- glTexCoord2f( x, y + h);
- glVertex2f( x, y + h);
-
- glTexCoord2f( x + w + .5, y + h);
- glVertex2f( x + w, y + h );
-
- glTexCoord2f( x + w, y + .5);
- glVertex2f( x + w, y );
-
- glEnd();
- }
-}
-
-
-
-static void Display( void )
-{
- static GLint T0 = 0;
- static GLint Frames = 0;
- GLint t;
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- DrawObject();
- glPopMatrix();
-
- glutSwapBuffers();
-
- Frames++;
-
- t = glutGet(GLUT_ELAPSED_TIME);
- if (t - T0 >= 1000) {
- GLfloat seconds = (t - T0) / 1000.0;
-
- GLfloat fps = Frames / seconds;
- printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
- fflush(stdout);
-
- drift_increment = 2.2 * seconds / Frames;
- T0 = t;
- Frames = 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, 10.0, 100.0 ); */
- gluOrtho2D( 0, width, height, 0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef(0.375, 0.375, 0);
-}
-
-
-static void ModeMenu(int entry)
-{
- if (entry==ANIMATE) {
- Animate = !Animate;
- }
- else if (entry==PBO) {
- use_pbo = !use_pbo;
- }
- else if (entry==QUIT) {
- exit(0);
- }
-
- glutPostRedisplay();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Init( int argc, char *argv[] )
-{
- const char *exten = (const char *) glGetString(GL_EXTENSIONS);
- GLuint texObj;
- GLint size;
-
-
- if (!strstr(exten, "GL_ARB_pixel_buffer_object")) {
- printf("Sorry, GL_ARB_pixel_buffer_object not supported by this renderer.\n");
- exit(1);
- }
-
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size);
- printf("%d x %d max texture size\n", size, size);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- /* allocate two texture objects */
- glGenTextures(1, &texObj);
-
- /* setup the texture objects */
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texObj);
-
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
- glGenBuffersARB(1, &DrawPBO);
-
- glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO);
- glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_EXT,
- Width * Height * 4, NULL, GL_STREAM_DRAW);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
- glEnable(GL_TEXTURE_RECTANGLE_ARB);
-
- glShadeModel(GL_SMOOTH);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- GLint i;
-
- glutInit( &argc, argv );
-
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-w") == 0) {
- Width = atoi(argv[i+1]);
- if (Width <= 0) {
- printf("Error, bad width\n");
- exit(1);
- }
- i++;
- }
- else if (strcmp(argv[i], "-h") == 0) {
- Height = atoi(argv[i+1]);
- if (Height <= 0) {
- printf("Error, bad height\n");
- exit(1);
- }
- i++;
- }
- }
-
- glutInitWindowSize( Width, Height );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- glutIdleFunc( Idle );
-
- glutCreateMenu(ModeMenu);
- glutAddMenuEntry("Toggle Animation", ANIMATE);
- glutAddMenuEntry("Toggle PBO", PBO);
- glutAddMenuEntry("Quit", QUIT);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/subtex.c b/progs/tests/subtex.c
deleted file mode 100644
index 86b737c01f..0000000000
--- a/progs/tests/subtex.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Test glTexSubImage mid-way through a frame.
- *
- * The same texture is used for both quads but it gets redefined
- * with glTexSubImage (or glTexImage) after the first quad.
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "GL/glew.h"
-#include "GL/glut.h"
-
-static GLuint Window = 0;
-static GLboolean Anim = GL_FALSE;
-static GLfloat Angle = 0.0f;
-
-
-
-static void
-first_texture(void)
-{
- static int width=8, height=8;
- static GLubyte tex1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0 };
-
- GLubyte tex[64][3];
- GLint i, j;
-
- /* red on white */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (tex1[(height-i-1)*width+j]) {
- tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 255; tex[p][1] = 255; tex[p][2] = 255;
- }
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
-}
-
-
-static void
-second_texture(void)
-{
- static int width=8, height=8;
-
- static GLubyte tex2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 2, 2, 2, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0 };
-
- GLubyte tex[64][3];
- GLint i, j;
-
- /* green on blue */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (tex2[(height-i-1)*width+j]) {
- tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255;
- }
- }
- }
-#if 0
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
-#else
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
-#endif
-}
-
-
-
-static void draw( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glColor3f( 1.0, 1.0, 1.0 );
-
- /* draw first polygon */
- glPushMatrix();
- glTranslatef( -1.0, 0.0, 0.0 );
- glRotatef( Angle, 0.0, 0.0, 1.0 );
-
- first_texture();
-
- glBegin( GL_POLYGON );
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
- glPopMatrix();
-
- /* draw second polygon */
- glPushMatrix();
- glTranslatef( 1.0, 0.0, 0.0 );
- glRotatef( Angle-90.0, 0.0, 1.0, 0.0 );
-
- second_texture();
-
- glBegin( GL_POLYGON );
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-
-static void idle( void )
-{
- static double t0 = -1.;
- double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
- if (t0 < 0.0)
- t0 = t;
- dt = t - t0;
- t0 = t;
- Angle += 120.0*dt;
- glutPostRedisplay();
-}
-
-
-
-/* change view Angle, exit upon ESC */
-static void key(unsigned char k, int x, int y)
-{
- (void) x;
- (void) y;
- switch (k) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc( idle );
- else
- glutIdleFunc( NULL );
- break;
- case 27:
- glutDestroyWindow(Window);
- exit(0);
- }
-}
-
-
-
-/* new window size or exposure */
-static void reshape( int width, int height )
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/
- glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -8.0 );
-}
-
-
-static void init( void )
-{
- /* Setup texturing */
- glEnable( GL_TEXTURE_2D );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
-
-
- glBindTexture( GL_TEXTURE_2D, 0 );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
-}
-
-
-
-int main( int argc, char *argv[] )
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(300, 300);
- glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
-
- Window = glutCreateWindow("Texture Objects");
- glewInit();
- if (!Window) {
- exit(1);
- }
-
- init();
-
- glutReshapeFunc( reshape );
- glutKeyboardFunc( key );
- if (Anim)
- glutIdleFunc( idle );
- glutDisplayFunc( draw );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/subtexrate.c b/progs/tests/subtexrate.c
deleted file mode 100644
index 4bda970d06..0000000000
--- a/progs/tests/subtexrate.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- * Measure glTexSubImage and glCopyTexSubImage speed
- *
- * Brian Paul
- * 26 Jan 2006
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static GLint WinWidth = 1024, WinHeight = 512;
-static GLint TexWidth = 512, TexHeight = 512;
-
-static GLuint TexObj = 1;
-
-static GLenum IntFormat = GL_RGBA8;
-static GLenum ReadFormat = GL_RGBA; /* for glReadPixels */
-
-static GLboolean DrawQuad = GL_TRUE;
-
-
-/**
- * draw teapot image, size TexWidth by TexHeight
- */
-static void
-DrawTestImage(void)
-{
- GLfloat ar;
-
- glViewport(0, 0, TexWidth, TexHeight);
- glScissor(0, 0, TexWidth, TexHeight);
- glEnable(GL_SCISSOR_TEST);
-
- glClearColor(0.5, 0.5, 0.5, 0.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- ar = (float) TexWidth / TexHeight;
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 25.0);
- glMatrixMode(GL_MODELVIEW);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
- glFrontFace(GL_CW);
- glPushMatrix();
- glRotatef(45, 1, 0, 0);
- glRotatef(45, 0, 1, 0);
- glutSolidTeapot(2.3);
- glPopMatrix();
- glFrontFace(GL_CCW);
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_LIGHTING);
-
- glDisable(GL_SCISSOR_TEST);
-
- glViewport(0, 0, WinWidth, WinHeight);
- glFinish();
-}
-
-
-/**
- * Do glCopyTexSubImage2D call (update texture with framebuffer data)
- * If doSubRect is true, do the copy in four pieces instead of all at once.
- */
-static void
-DoCopyTex(GLboolean doSubRect)
-{
- if (doSubRect) {
- /* copy in four parts */
- int w = TexWidth / 2, h = TexHeight / 2;
- int x0 = 0, y0 = 0;
- int x1 = w, y1 = h;
-#if 1
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x0, y0, x0, y0, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x1, y0, x1, y0, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x0, y1, x0, y1, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x1, y1, x1, y1, w, h);
-#else
- /* scramble */
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x0, y0, x1, y1, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x1, y0, x0, y1, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x0, y1, x1, y0, w, h);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x1, y1, x0, y0, w, h);
-#endif
- }
- else {
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, TexWidth, TexHeight);
- }
-}
-
-
-/**
- * Do glTexSubImage2D (update texture w/ user data)
- * If doSubRect, do update in four pieces, else all at once.
- */
-static void
-SubTex(GLboolean doSubRect, const GLubyte *image)
-{
- if (doSubRect) {
- /* four pieces */
- int w = TexWidth / 2, h = TexHeight / 2;
- int x0 = 0, y0 = 0;
- int x1 = w, y1 = h;
- glPixelStorei(GL_UNPACK_ROW_LENGTH, TexWidth);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glPixelStorei(GL_UNPACK_SKIP_ROWS, y0);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, x0);
- glTexSubImage2D(GL_TEXTURE_2D, 0, x0, y0, w, h,
- ReadFormat, GL_UNSIGNED_BYTE, image);
-
- glPixelStorei(GL_UNPACK_SKIP_ROWS, y0);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, x1);
- glTexSubImage2D(GL_TEXTURE_2D, 0, x1, y0, w, h,
- ReadFormat, GL_UNSIGNED_BYTE, image);
-
- glPixelStorei(GL_UNPACK_SKIP_ROWS, y1);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, x0);
- glTexSubImage2D(GL_TEXTURE_2D, 0, x0, y1, w, h,
- ReadFormat, GL_UNSIGNED_BYTE, image);
-
- glPixelStorei(GL_UNPACK_SKIP_ROWS, y1);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, x1);
- glTexSubImage2D(GL_TEXTURE_2D, 0, x1, y1, w, h,
- ReadFormat, GL_UNSIGNED_BYTE, image);
- }
- else {
- /* all at once */
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TexWidth, TexHeight,
- ReadFormat, GL_UNSIGNED_BYTE, image);
- }
-}
-
-
-/**
- * Measure gl[Copy]TexSubImage rate.
- * This actually also includes time to render a quad and SwapBuffers.
- */
-static void
-RunTest(GLboolean copyTex, GLboolean doSubRect)
-{
- double t0, t1;
- int iters = 0;
- float copyRate, mbRate;
- float rot = 0.0;
- int bpp, r, g, b, a;
- int w, h;
- GLubyte *image = NULL;
-
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_RED_SIZE, &r);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_SIZE, &g);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_SIZE, &b);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_ALPHA_SIZE, &a);
- bpp = (r + g + b + a) / 8;
-
- if (!copyTex) {
- /* read image from frame buffer */
- image = (GLubyte *) malloc(TexWidth * TexHeight * bpp);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
- glReadPixels(0, 0, TexWidth, TexHeight,
- ReadFormat, GL_UNSIGNED_BYTE, image);
- }
-
- glEnable(GL_TEXTURE_2D);
- glViewport(WinWidth / 2, 0, WinWidth / 2, WinHeight);
-
- t0 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
-
- do {
- if (copyTex)
- /* Framebuffer -> Texture */
- DoCopyTex(doSubRect);
- else {
- /* Main Mem -> Texture */
- SubTex(doSubRect, image);
- }
-
- /* draw textured quad */
- if (DrawQuad) {
- glPushMatrix();
- glRotatef(rot, 0, 0, 1);
- glTranslatef(1, 0, 0);
- 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();
- }
-
- iters++;
- rot += 2.0;
-
- t1 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
- if (DrawQuad) {
- glutSwapBuffers();
- }
- } while (t1 - t0 < 5.0);
-
- glDisable(GL_TEXTURE_2D);
- if (image)
- free(image);
-
- if (doSubRect) {
- w = TexWidth / 2;
- h = TexHeight / 2;
- iters *= 4;
- }
- else {
- w = TexWidth;
- h = TexHeight;
- }
-
- copyRate = iters / (t1 - t0);
- mbRate = w * h * bpp * copyRate / (1024 * 1024);
-
- if (copyTex)
- printf("glCopyTexSubImage: %d x %d, %d Bpp:\n", w, h, bpp);
- else
- printf("glTexSubImage: %d x %d, %d Bpp:\n", w, h, bpp);
- printf(" %d calls in %.2f = %.2f calls/sec, %.2f MB/s\n",
- iters, t1-t0, copyRate, mbRate);
-}
-
-
-static void
-Draw(void)
-{
- glClearColor(0.2, 0.2, 0.8, 0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- DrawTestImage();
- if (!DrawQuad) {
- glutSwapBuffers();
- }
-
- RunTest(GL_FALSE, GL_FALSE);
- RunTest(GL_FALSE, GL_TRUE);
- RunTest(GL_TRUE, GL_FALSE);
- RunTest(GL_TRUE, GL_TRUE);
-
- glutSwapBuffers();
-
- printf("exiting\n");
- 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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- /* create initial, empty teximage */
- glBindTexture(GL_TEXTURE_2D, TexObj);
- glTexImage2D(GL_TEXTURE_2D, 0, IntFormat, TexWidth, TexHeight, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-}
-
-
-
-static void
-ParseArgs(int argc, char *argv[])
-{
- int i;
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-nodraw") == 0)
- DrawQuad = GL_FALSE;
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- GLint mode = GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE | GLUT_DEPTH;
- glutInit(&argc, argv);
-
- ParseArgs(argc, argv);
-
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(mode);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
-
- printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
- Init();
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/tex1d.c b/progs/tests/tex1d.c
deleted file mode 100644
index 7d67451c0d..0000000000
--- a/progs/tests/tex1d.c
+++ /dev/null
@@ -1,143 +0,0 @@
-
-/* Exercise 1D textures
- */
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "GL/glew.h"
-#include "GL/glut.h"
-
-static GLuint Window = 0;
-static GLuint TexObj[2];
-static GLfloat Angle = 0.0f;
-
-
-static void draw( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glColor3f( 1.0, 1.0, 1.0 );
-
- /* draw first polygon */
- glPushMatrix();
- glTranslatef( -1.0, 0.0, 0.0 );
- glRotatef( Angle, 0.0, 0.0, 1.0 );
- glBindTexture( GL_TEXTURE_1D, TexObj[0] );
- glBegin( GL_POLYGON );
- glTexCoord1f( 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord1f( 1.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord1f( 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord1f( 0.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-
-/*
-static void idle( void )
-{
- Angle += 2.0;
- glutPostRedisplay();
-}
-*/
-
-
-
-/* change view Angle, exit upon ESC */
-static void key(unsigned char k, int x, int y)
-{
- (void) x;
- (void) y;
- switch (k) {
- case 27:
- exit(0);
- }
-}
-
-
-
-/* new window size or exposure */
-static void reshape( int width, int height )
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/
- glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -8.0 );
-}
-
-
-static void init( void )
-{
- GLubyte tex[256][3];
- GLint i;
-
-
- glDisable( GL_DITHER );
-
- /* Setup texturing */
- glEnable( GL_TEXTURE_1D );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
-
-
- /* generate texture object IDs */
- glGenTextures( 2, TexObj );
-
- /* setup first texture object */
- glBindTexture( GL_TEXTURE_1D, TexObj[0] );
-
-
- for (i = 0; i < 256; i++) {
- GLfloat f;
-
- /* map 0..255 to -PI .. PI */
- f = ((i / 255.0) - .5) * (3.141592 * 2);
-
- f = sin(f);
-
- /* map -1..1 to 0..255 */
- tex[i][0] = (f+1.0)/2.0 * 255.0;
- tex[i][1] = 0;
- tex[i][2] = 0;
- }
-
- glTexImage1D( GL_TEXTURE_1D, 0, 3, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, tex );
- glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_REPEAT );
-}
-
-
-
-int main( int argc, char *argv[] )
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(300, 300);
- glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
-
- Window = glutCreateWindow("Texture Objects");
- glewInit();
- if (!Window) {
- exit(1);
- }
-
- init();
-
- glutReshapeFunc( reshape );
- glutKeyboardFunc( key );
-/* glutIdleFunc( idle ); */
- glutDisplayFunc( draw );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texcmp.c b/progs/tests/texcmp.c
deleted file mode 100644
index c5d352fdae..0000000000
--- a/progs/tests/texcmp.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Compressed texture demo. Written by Daniel Borca.
- * This program is in the public domain.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "readtex.c" /* I know, this is a hack. */
-#define TEXTURE_FILE "../images/tree2.rgba"
-
-
-static float Rot = 0.0;
-static GLboolean Anim = 1;
-
-typedef struct {
- GLubyte *data;
- GLuint size;
- GLenum format;
- GLuint w, h;
-
- GLenum TC;
-
- GLubyte *cData;
- GLuint cSize;
- GLenum cFormat;
-} TEXTURE;
-
-static TEXTURE *Tx, t1, t2, t3;
-static GLboolean fxt1, dxtc, s3tc;
-
-
-static const char *TextureName (GLenum TC)
-{
- switch (TC) {
- case GL_RGB:
- return "RGB";
- case GL_RGBA:
- return "RGBA";
- case GL_COMPRESSED_RGB:
- return "COMPRESSED_RGB";
- case GL_COMPRESSED_RGBA:
- return "COMPRESSED_RGBA";
- case GL_COMPRESSED_RGB_FXT1_3DFX:
- return "GL_COMPRESSED_RGB_FXT1_3DFX";
- case GL_COMPRESSED_RGBA_FXT1_3DFX:
- return "GL_COMPRESSED_RGBA_FXT1_3DFX";
- case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
- return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT";
- case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
- return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
- case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
- return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
- case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
- return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT";
- case GL_RGB_S3TC:
- return "GL_RGB_S3TC";
- case GL_RGB4_S3TC:
- return "GL_RGB4_S3TC";
- case GL_RGBA_S3TC:
- return "GL_RGBA_S3TC";
- case GL_RGBA4_S3TC:
- return "GL_RGBA4_S3TC";
- case 0:
- return "Invalid format";
- default:
- return "Unknown format";
- }
-}
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void Idle( void )
-{
- float t = glutGet(GLUT_ELAPSED_TIME) * 0.001; /* in seconds */
- Rot = t * 360 / 4; /* 1 rotation per 4 seconds */
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- /* draw background gradient */
- glDisable(GL_TEXTURE_2D);
- glBegin(GL_POLYGON);
- glColor3f(1.0, 0.0, 0.2); glVertex2f(-1.5, -1.0);
- glColor3f(1.0, 0.0, 0.2); glVertex2f( 1.5, -1.0);
- glColor3f(0.0, 0.0, 1.0); glVertex2f( 1.5, 1.0);
- glColor3f(0.0, 0.0, 1.0); glVertex2f(-1.5, 1.0);
- glEnd();
-
- glPushMatrix();
- glRotatef(Rot, 0, 0, 1);
-
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_BLEND);
-
- glBegin(GL_POLYGON);
- glTexCoord2f(0, 1); glVertex2f(-1, -0.5);
- glTexCoord2f(1, 1); glVertex2f( 1, -0.5);
- glTexCoord2f(1, 0); glVertex2f( 1, 0.5);
- glTexCoord2f(0, 0); glVertex2f(-1, 0.5);
- glEnd();
-
- glPopMatrix();
-
- glDisable(GL_TEXTURE_2D);
-
- /* info */
- glDisable(GL_BLEND);
- glColor4f(1, 1, 1, 1);
-
- glRasterPos3f(-1.2, -0.7, 0);
- PrintString("Selected: ");
- PrintString(TextureName(Tx->TC));
- if (Tx->cData) {
- char tmp[64];
- glRasterPos3f(-1.2, -0.8, 0);
- PrintString("Internal: ");
- PrintString(TextureName(Tx->cFormat));
- glRasterPos3f(-1.2, -0.9, 0);
- PrintString("Size : ");
- sprintf(tmp, "%d (%d%% of %d)", Tx->cSize, Tx->cSize * 100 / Tx->size, Tx->size);
- PrintString(tmp);
- }
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( -1.5, 1.5, -1.0, 1.0, -1.0, 1.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void ReInit( GLenum TC, TEXTURE *Tx )
-{
- GLint rv, v;
-
- if ((Tx->TC == TC) && (Tx->cData != NULL)) {
- glCompressedTexImage2DARB(GL_TEXTURE_2D, /* target */
- 0, /* level */
- Tx->cFormat, /* real format */
- Tx->w, /* original width */
- Tx->h, /* original height */
- 0, /* border */
- Tx->cSize, /* compressed size*/
- Tx->cData); /* compressed data*/
- } else {
- glTexImage2D(GL_TEXTURE_2D, /* target */
- 0, /* level */
- TC, /* internal format */
- Tx->w, Tx->h, /* width, height */
- 0, /* border */
- Tx->format, /* texture format */
- GL_UNSIGNED_BYTE, /* texture type */
- Tx->data); /* the texture */
-
-
- v = 0;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
- GL_TEXTURE_INTERNAL_FORMAT, &v);
- printf("Requested internal format = 0x%x, actual = 0x%x\n", TC, v);
-
- if (0) {
- GLint r, g, b, a, l, i;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_RED_SIZE, &r);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_SIZE, &g);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_SIZE, &b);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_ALPHA_SIZE, &a);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_LUMINANCE_SIZE, &l);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTENSITY_SIZE, &i);
- printf("Compressed Bits per R: %d G: %d B: %d A: %d L: %d I: %d\n",
- r, g, b, a, l, i);
- }
-
- /* okay, now cache the compressed texture */
- Tx->TC = TC;
- if (Tx->cData != NULL) {
- free(Tx->cData);
- Tx->cData = NULL;
- }
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_COMPRESSED_ARB, &rv);
- if (rv) {
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, (GLint *)&Tx->cFormat);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB, (GLint *)&Tx->cSize);
- if ((Tx->cData = malloc(Tx->cSize)) != NULL) {
- glGetCompressedTexImageARB(GL_TEXTURE_2D, 0, Tx->cData);
- }
- }
- }
-}
-
-
-static void Init( void )
-{
- /* HEIGHT * WIDTH + 1 (for trailing '\0') */
- static char pattern[8 * 32 + 1] = {"\
- \
- MMM EEEE SSS AAA \
- M M M E S S A A \
- M M M EEEE SS A A \
- M M M E SS AAAAA \
- M M E S S A A \
- M M EEEE SSS A A \
- "
- };
-
- GLuint i, j;
-
- GLubyte (*texture1)[8 * 32][4];
- GLubyte (*texture2)[256][256][4];
-
- t1.w = 32;
- t1.h = 8;
- t1.size = t1.w * t1.h * 4;
- t1.data = malloc(t1.size);
- t1.format = GL_RGBA;
- t1.TC = GL_RGBA;
-
- texture1 = (GLubyte (*)[8 * 32][4])t1.data;
- for (i = 0; i < sizeof(pattern) - 1; i++) {
- switch (pattern[i]) {
- default:
- case ' ':
- (*texture1)[i][0] = 255;
- (*texture1)[i][1] = 255;
- (*texture1)[i][2] = 255;
- (*texture1)[i][3] = 64;
- break;
- case 'M':
- (*texture1)[i][0] = 255;
- (*texture1)[i][1] = 0;
- (*texture1)[i][2] = 0;
- (*texture1)[i][3] = 255;
- break;
- case 'E':
- (*texture1)[i][0] = 0;
- (*texture1)[i][1] = 255;
- (*texture1)[i][2] = 0;
- (*texture1)[i][3] = 255;
- break;
- case 'S':
- (*texture1)[i][0] = 0;
- (*texture1)[i][1] = 0;
- (*texture1)[i][2] = 255;
- (*texture1)[i][3] = 255;
- break;
- case 'A':
- (*texture1)[i][0] = 255;
- (*texture1)[i][1] = 255;
- (*texture1)[i][2] = 0;
- (*texture1)[i][3] = 255;
- break;
- }
- }
-
- t2.w = 256;
- t2.h = 256;
- t2.size = t2.w * t2.h * 4;
- t2.data = malloc(t2.size);
- t2.format = GL_RGBA;
- t2.TC = GL_RGBA;
-
- texture2 = (GLubyte (*)[256][256][4])t2.data;
- for (j = 0; j < t2.h; j++) {
- for (i = 0; i < t2.w; i++) {
- (*texture2)[j][i][0] = sqrt(i * j * 255 * 255 / (t2.w * t2.h));
- (*texture2)[j][i][1] = 0;
- (*texture2)[j][i][2] = 0;
- (*texture2)[j][i][3] = 255;
- }
- }
-
- t3.data = LoadRGBImage(TEXTURE_FILE, (GLint *)&t3.w, (GLint *)&t3.h, &t3.format);
- t3.size = t3.w * t3.h * ((t3.format == GL_RGB) ? 3 : 4);
- t3.TC = GL_RGBA;
-
- ReInit(GL_RGBA, Tx = &t1);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- glEnable(GL_TEXTURE_2D);
-
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- case ' ':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc( Idle );
- else
- glutIdleFunc( NULL );
- break;
- case 't':
- if (Tx == &t1) {
- Tx = &t2;
- } else if (Tx == &t2) {
- Tx = &t3;
- } else {
- Tx = &t1;
- }
- ReInit(Tx->TC, Tx);
- break;
- case '9':
- ReInit(GL_RGB, Tx);
- break;
- case '0':
- ReInit(GL_RGBA, Tx);
- break;
- case '1':
- ReInit(GL_COMPRESSED_RGB, Tx);
- break;
- case '2':
- ReInit(GL_COMPRESSED_RGBA, Tx);
- break;
- case '3':
- if (fxt1) ReInit(GL_COMPRESSED_RGB_FXT1_3DFX, Tx);
- break;
- case '4':
- if (fxt1) ReInit(GL_COMPRESSED_RGBA_FXT1_3DFX, Tx);
- break;
- case '5':
- if (dxtc) ReInit(GL_COMPRESSED_RGB_S3TC_DXT1_EXT, Tx);
- break;
- case '6':
- if (dxtc) ReInit(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, Tx);
- break;
- case '7':
- if (dxtc) ReInit(GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, Tx);
- break;
- case '8':
- if (dxtc) ReInit(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, Tx);
- break;
- case 'a':
- if (s3tc) ReInit(GL_RGB_S3TC, Tx);
- break;
- case 's':
- if (s3tc) ReInit(GL_RGB4_S3TC, Tx);
- break;
- case 'd':
- if (s3tc) ReInit(GL_RGBA_S3TC, Tx);
- break;
- case 'f':
- if (s3tc) ReInit(GL_RGBA4_S3TC, Tx);
- break;
- }
- glutPostRedisplay();
-}
-
-
-int main( int argc, char *argv[] )
-{
- float gl_version;
- GLint num_formats;
- GLint i;
- GLint formats[64];
-
-
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 400, 300 );
-
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
-
- if (glutCreateWindow(argv[0]) <= 0) {
- printf("Couldn't create window\n");
- exit(0);
- }
-
- glewInit();
- gl_version = atof( (const char *) glGetString( GL_VERSION ) );
- if ( (gl_version < 1.3)
- && !glutExtensionSupported("GL_ARB_texture_compression") ) {
- printf("Sorry, GL_ARB_texture_compression not supported\n");
- exit(0);
- }
- if (glutExtensionSupported("GL_3DFX_texture_compression_FXT1")) {
- fxt1 = GL_TRUE;
- }
- if (glutExtensionSupported("GL_EXT_texture_compression_s3tc")) {
- dxtc = GL_TRUE;
- }
- if (glutExtensionSupported("GL_S3_s3tc")) {
- s3tc = GL_TRUE;
- }
-
- glGetIntegerv( GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, & num_formats );
-
- (void) memset( formats, 0, sizeof( formats ) );
- glGetIntegerv( GL_COMPRESSED_TEXTURE_FORMATS_ARB, formats );
-
- printf( "The following texture formats are supported:\n" );
- for ( i = 0 ; i < num_formats ; i++ ) {
- printf( "\t%s\n", TextureName( formats[i] ) );
- }
-
- Init();
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc( Idle );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texcomp_image.h b/progs/tests/texcomp_image.h
deleted file mode 100644
index a3884d4d0d..0000000000
--- a/progs/tests/texcomp_image.h
+++ /dev/null
@@ -1,4100 +0,0 @@
-#define 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/texcompress2.c b/progs/tests/texcompress2.c
deleted file mode 100644
index b95aca9fb9..0000000000
--- a/progs/tests/texcompress2.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Test texture compression.
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "readtex.c"
-
-#define IMAGE_FILE "../images/arch.rgb"
-
-static int ImgWidth, ImgHeight;
-static GLenum ImgFormat;
-static GLenum CompFormat;
-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 const char *
-LookupFormat(GLenum format)
-{
- switch (format) {
- case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
- return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT";
- case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
- return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
- case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
- return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
- default:
- return "other";
- }
-}
-
-
-static void
-TestSubTex(void)
-{
- GLboolean all = 0*GL_TRUE;
- GLubyte *buffer;
- GLint size, fmt;
-
- glGetTexLevelParameteriv(Target, 0,
- GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB, &size);
- glGetTexLevelParameteriv(Target, 0, GL_TEXTURE_INTERNAL_FORMAT, &fmt);
-
- buffer = (GLubyte *) malloc(size);
- glGetCompressedTexImageARB(Target, 0, buffer);
-
- printf("Testing sub-texture replacement\n");
- if (all)
- glCompressedTexImage2DARB(Target, 0,
- fmt, ImgWidth, ImgHeight, 0,
- size, buffer);
- else {
- /* bottom half */
- glCompressedTexSubImage2DARB(Target, 0,
- 0, 0, /* pos */
- ImgWidth, ImgHeight / 2,
- fmt, size/2, buffer);
- /* top half */
- glCompressedTexSubImage2DARB(Target, 0,
- 0, ImgHeight / 2, /* pos */
- ImgWidth, ImgHeight / 2,
- fmt, size/2, buffer + size / 2);
- }
-
- free(buffer);
-}
-
-
-static void
-TestGetTex(void)
-{
- GLubyte *buffer;
-
- buffer = (GLubyte *) malloc(3 * ImgWidth * ImgHeight);
-
- glGetTexImage(GL_TEXTURE_2D,
- 0,
- GL_RGB,
- GL_UNSIGNED_BYTE,
- buffer);
-
- free(buffer);
-}
-
-
-static void
-LoadCompressedImage(const char *file)
-{
- const GLenum filter = GL_LINEAR;
- GLubyte *image;
- GLint p;
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
-
- /*
- * Load image and scale if needed.
- */
- image = LoadRGBImage( file, &ImgWidth, &ImgHeight, &ImgFormat );
- if (!image) {
- printf("Couldn't read %s\n", IMAGE_FILE);
- exit(0);
- }
- printf("Image is %d x %d\n", ImgWidth, ImgHeight);
-
- /* power of two */
- assert(ImgWidth == 128 || ImgWidth == 256 || ImgWidth == 512);
- assert(ImgWidth == 128 || ImgHeight == 256 || ImgHeight == 512);
-
- if (ImgFormat == GL_RGB)
- CompFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
- else
- CompFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
-
- if (ImgFormat == GL_RGBA) {
- int i, numAlpha = 0;
- for (i = 0; i < ImgWidth * ImgHeight; i++) {
- if (image[i*4+3] != 0 && image[i*4+3] != 0xff) {
- numAlpha++;
- }
- if (image[i*4+3] == 0)
- image[i*4+3] = 4 * i / ImgWidth;
- }
- printf("Num Alpha !=0,255: %d\n", numAlpha);
- }
-
- CompFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
-
-
- /*
- * Give image to OpenGL and have it compress it.
- */
- glTexImage2D(Target, 0, CompFormat, ImgWidth, ImgHeight, 0,
- ImgFormat, GL_UNSIGNED_BYTE, image);
- CheckError(__LINE__);
-
- free(image);
-
- glGetTexLevelParameteriv(Target, 0, GL_TEXTURE_INTERNAL_FORMAT, &p);
- printf("Compressed Internal Format: %s (0x%x)\n", LookupFormat(p), p);
- assert(p == CompFormat);
-
- printf("Original size: %d bytes\n", ImgWidth * ImgHeight * 3);
- glGetTexLevelParameteriv(Target, 0, GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB, &p);
- printf("Compressed size: %d bytes\n", p);
-
- glTexParameteri(Target, GL_TEXTURE_MIN_FILTER, filter);
- glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, filter);
-
- if (0)
- TestSubTex();
- else
- TestGetTex();
-
-}
-
-
-static void
-Init(const char *file)
-{
- 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");
-
- LoadCompressedImage(file);
-
- glEnable(GL_TEXTURE_2D);
-
- if (ImgFormat == GL_RGBA) {
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_BLEND);
- }
-}
-
-
-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);
-
- 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 );
-
- if (argc > 1)
- Init(argv[1]);
- else
- Init(IMAGE_FILE);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texcompsub.c b/progs/tests/texcompsub.c
deleted file mode 100644
index 215f5711d9..0000000000
--- a/progs/tests/texcompsub.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * 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;
- const int half = ImgSize / 2;
-
- 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[half + 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[half + 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/texdown.c b/progs/tests/texdown.c
deleted file mode 100644
index 92df01b83d..0000000000
--- a/progs/tests/texdown.c
+++ /dev/null
@@ -1,478 +0,0 @@
-
-/*
- * Copyright (C) 1999 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.
- */
-
-
-/*
- * texdown
- *
- * Measure texture download speed.
- * Use keyboard to change texture size, format, datatype, scale/bias,
- * subimageload, etc.
- *
- * Brian Paul 28 January 2000
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-
-
-static GLsizei MaxSize = 2048;
-static GLsizei TexWidth = 1024, TexHeight = 1024, TexBorder = 0;
-static GLboolean ScaleAndBias = GL_FALSE;
-static GLboolean SubImage = GL_FALSE;
-static GLdouble DownloadRate = 0.0; /* texels/sec */
-
-static GLuint Mode = 0;
-
-
-/* Try and avoid L2 cache effects by cycling through a small number of
- * textures.
- *
- * At the initial size of 1024x1024x4 == 4mbyte, say 8 textures will
- * keep us out of most caches at 32mb total.
- *
- * This turns into a fairly interesting question of what exactly you
- * expect to be in cache in normal usage, and what you think should be
- * outside. There's no rules for this, no reason to favour one usage
- * over another except what the application you care about happens to
- * resemble most closely.
- *
- * - Should the client texture image be in L2 cache? Has it just been
- * generated or read from disk?
- * - Does the application really use >1 texture, or is it constantly
- * updating one image in-place?
- *
- * Different answers will favour different texture upload mechanisms.
- * To upload an image that is purely outside of cache, a DMA-based
- * upload will probably win, whereas for small, in-cache textures,
- * copying looks good.
- */
-#define NR_TEXOBJ 4
-static GLuint TexObj[NR_TEXOBJ];
-
-
-struct FormatRec {
- GLenum Format;
- GLenum Type;
- GLenum IntFormat;
- GLint TexelSize;
-};
-
-
-static const struct FormatRec FormatTable[] = {
- /* Format Type IntFormat TexelSize */
- { GL_BGRA, GL_UNSIGNED_BYTE, GL_RGBA, 4 },
- { GL_RGB, GL_UNSIGNED_BYTE, GL_RGB, 3 },
- { GL_RGBA, GL_UNSIGNED_BYTE, GL_RGBA, 4 },
- { GL_RGBA, GL_UNSIGNED_BYTE, GL_RGB, 4 },
- { GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB, 2 },
- { GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE, 1 },
- { GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA, 2 },
- { GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA, 1 },
-};
-static GLint Format;
-
-#define NUM_FORMATS (sizeof(FormatTable)/sizeof(FormatTable[0]))
-
-static int
-BytesPerTexel(GLint format)
-{
- return FormatTable[format].TexelSize;
-}
-
-
-static const char *
-FormatStr(GLenum format)
-{
- switch (format) {
- case GL_RGB:
- return "GL_RGB";
- case GL_RGBA:
- return "GL_RGBA";
- case GL_BGRA:
- return "GL_BGRA";
- case GL_LUMINANCE:
- return "GL_LUMINANCE";
- case GL_LUMINANCE_ALPHA:
- return "GL_LUMINANCE_ALPHA";
- case GL_ALPHA:
- return "GL_ALPHA";
- default:
- return "";
- }
-}
-
-
-static const char *
-TypeStr(GLenum type)
-{
- switch (type) {
- case GL_UNSIGNED_BYTE:
- return "GL_UNSIGNED_BYTE";
- case GL_UNSIGNED_SHORT:
- return "GL_UNSIGNED_SHORT";
- case GL_UNSIGNED_SHORT_5_6_5:
- return "GL_UNSIGNED_SHORT_5_6_5";
- case GL_UNSIGNED_SHORT_5_6_5_REV:
- return "GL_UNSIGNED_SHORT_5_6_5_REV";
- default:
- return "";
- }
-}
-
-/* On x86, there is a performance cliff for memcpy to texture memory
- * for sources below 64 byte alignment. We do our best with this in
- * the driver, but it is better if the images are correctly aligned to
- * start with:
- */
-#define ALIGN (1<<12)
-
-static unsigned long align(unsigned long value, unsigned long a)
-{
- return (value + a - 1) & ~(a-1);
-}
-
-static void
-MeasureDownloadRate(void)
-{
- const int w = TexWidth + 2 * TexBorder;
- const int h = TexHeight + 2 * TexBorder;
- const int image_bytes = align(w * h * BytesPerTexel(Format), ALIGN);
- const int bytes = image_bytes * NR_TEXOBJ;
- GLubyte *orig_texImage, *orig_getImage;
- GLubyte *texImage;
- GLdouble t0, t1, time;
- int count;
- int i;
- int offset = 0;
- GLdouble total = 0; /* ints will tend to overflow */
-
- printf("allocating %d bytes for %d %dx%d images\n",
- bytes, NR_TEXOBJ, w, h);
-
- orig_texImage = (GLubyte *) malloc(bytes + ALIGN);
- orig_getImage = (GLubyte *) malloc(image_bytes + ALIGN);
- if (!orig_texImage || !orig_getImage) {
- DownloadRate = 0.0;
- free(orig_texImage);
- free(orig_getImage);
- return;
- }
-
- printf("alloc %p %p\n", orig_texImage, orig_getImage);
-
- texImage = (GLubyte *)align((unsigned long)orig_texImage, ALIGN);
-
- for (i = 1; !(((unsigned long)texImage) & i); i<<=1)
- ;
- printf("texture image alignment: %d bytes (%p)\n", i, texImage);
-
- for (i = 0; i < bytes; i++) {
- texImage[i] = i & 0xff;
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
-
- if (ScaleAndBias) {
- glPixelTransferf(GL_RED_SCALE, 0.5);
- glPixelTransferf(GL_GREEN_SCALE, 0.5);
- glPixelTransferf(GL_BLUE_SCALE, 0.5);
- glPixelTransferf(GL_RED_BIAS, 0.5);
- glPixelTransferf(GL_GREEN_BIAS, 0.5);
- glPixelTransferf(GL_BLUE_BIAS, 0.5);
- }
- else {
- glPixelTransferf(GL_RED_SCALE, 1.0);
- glPixelTransferf(GL_GREEN_SCALE, 1.0);
- glPixelTransferf(GL_BLUE_SCALE, 1.0);
- glPixelTransferf(GL_RED_BIAS, 0.0);
- glPixelTransferf(GL_GREEN_BIAS, 0.0);
- glPixelTransferf(GL_BLUE_BIAS, 0.0);
- }
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glEnable(GL_TEXTURE_2D);
-
- count = 0;
- t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- do {
- int img = count%NR_TEXOBJ;
- GLubyte *img_ptr = texImage + img * image_bytes;
-
- glBindTexture(GL_TEXTURE_2D, TexObj[img]);
-
- if (SubImage && count > 0) {
- /* Only update a portion of the image each iteration. This
- * is presumably why you'd want to use texsubimage, otherwise
- * you may as well just call teximage again.
- *
- * A bigger question is whether to use a pointer that moves
- * with each call, ie does the incoming data come from L2
- * cache under normal circumstances, or is it pulled from
- * uncached memory?
- *
- * There's a good argument to say L2 cache, ie you'd expect
- * the data to have been recently generated. It's possible
- * that it could have come from a file read, which may or may
- * not have gone through the cpu.
- */
- glTexSubImage2D(GL_TEXTURE_2D, 0,
- -TexBorder,
- -TexBorder + offset * h/8,
- w,
- h/8,
- FormatTable[Format].Format,
- FormatTable[Format].Type,
-#if 1
- texImage /* likely in L2$ */
-#else
- img_ptr + offset * bytes/8 /* unlikely in L2$ */
-#endif
- );
- offset += 1;
- offset %= 8;
- total += w * h / 8;
- }
- else {
- glTexImage2D(GL_TEXTURE_2D, 0,
- FormatTable[Format].IntFormat, w, h, TexBorder,
- FormatTable[Format].Format,
- FormatTable[Format].Type,
- img_ptr);
- total += w*h;
- }
-
- /* draw a tiny polygon to force texture into texram */
- glBegin(GL_TRIANGLES);
- glTexCoord2f(0, 0); glVertex2f(1, 1);
- glTexCoord2f(1, 0); glVertex2f(3, 1);
- glTexCoord2f(0.5, 1); glVertex2f(2, 3);
- glEnd();
-
- t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- time = t1 - t0;
- count++;
- } while (time < 3.0);
-
- glDisable(GL_TEXTURE_2D);
-
- printf("total texels=%f time=%f\n", total, time);
- DownloadRate = total / time;
-
-
- free(orig_texImage);
- free(orig_getImage);
-
- {
- GLint err = glGetError();
- if (err)
- printf("GL error %d\n", err);
- }
-}
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-Display(void)
-{
- const int w = TexWidth + 2 * TexBorder;
- const int h = TexHeight + 2 * TexBorder;
- char s[1000];
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glRasterPos2i(10, 80);
- sprintf(s, "Texture size[cursor]: %d x %d Border[b]: %d", w, h, TexBorder);
- PrintString(s);
-
- glRasterPos2i(10, 65);
- sprintf(s, "Format[f]: %s Type: %s IntFormat: %s",
- FormatStr(FormatTable[Format].Format),
- TypeStr( FormatTable[Format].Type),
- FormatStr(FormatTable[Format].IntFormat));
- PrintString(s);
-
- glRasterPos2i(10, 50);
- sprintf(s, "Pixel Scale&Bias[p]: %s TexSubImage[s]: %s",
- ScaleAndBias ? "Yes" : "No",
- SubImage ? "Yes" : "No");
- PrintString(s);
-
- if (Mode == 0) {
- glRasterPos2i(200, 10);
- sprintf(s, "...Measuring...");
- PrintString(s);
- glutSwapBuffers();
- glutPostRedisplay();
- Mode++;
- }
- else if (Mode == 1) {
- MeasureDownloadRate();
- glutPostRedisplay();
- Mode++;
- }
- else {
- /* show results */
- glRasterPos2i(10, 10);
- sprintf(s, "Download rate: %g Mtexels/second %g MB/second",
- DownloadRate / 1000000.0,
- DownloadRate * BytesPerTexel(Format) / 1000000.0);
- PrintString(s);
- {
- GLint r, g, b, a, l, i;
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_RED_SIZE, &r);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_SIZE, &g);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_SIZE, &b);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_ALPHA_SIZE, &a);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_LUMINANCE_SIZE, &l);
- glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTENSITY_SIZE, &i);
- sprintf(s, "TexelBits: R=%d G=%d B=%d A=%d L=%d I=%d", r, g, b, a, l, i);
- glRasterPos2i(10, 25);
- PrintString(s);
- }
-
- glutSwapBuffers();
- }
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case ' ':
- Mode = 0;
- break;
- case 'b':
- /* toggle border */
- TexBorder = 1 - TexBorder;
- Mode = 0;
- break;
- case 'f':
- /* change format */
- Format = (Format + 1) % NUM_FORMATS;
- Mode = 0;
- break;
- case 'F':
- /* change format */
- Format = (Format - 1) % NUM_FORMATS;
- Mode = 0;
- break;
- case 'p':
- /* toggle border */
- ScaleAndBias = !ScaleAndBias;
- Mode = 0;
- break;
- case 's':
- SubImage = !SubImage;
- Mode = 0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_UP:
- if (TexHeight < MaxSize)
- TexHeight *= 2;
- break;
- case GLUT_KEY_DOWN:
- if (TexHeight > 1)
- TexHeight /= 2;
- break;
- case GLUT_KEY_LEFT:
- if (TexWidth > 1)
- TexWidth /= 2;
- break;
- case GLUT_KEY_RIGHT:
- if (TexWidth < MaxSize)
- TexWidth *= 2;
- break;
- }
- Mode = 0;
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- printf("GL_VENDOR = %s\n", (const char *) glGetString(GL_VENDOR));
- printf("GL_VERSION = %s\n", (const char *) glGetString(GL_VERSION));
- printf("GL_RENDERER = %s\n", (const char *) glGetString(GL_RENDERER));
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 600, 100 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texfilt.c b/progs/tests/texfilt.c
deleted file mode 100644
index fa919dba62..0000000000
--- a/progs/tests/texfilt.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2005
- * 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
- * IBM 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 <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-const GLenum filter_modes[] = {
- GL_NEAREST,
- GL_LINEAR,
- GL_NEAREST_MIPMAP_NEAREST,
- GL_NEAREST_MIPMAP_LINEAR,
- GL_LINEAR_MIPMAP_NEAREST,
- GL_LINEAR_MIPMAP_LINEAR,
-};
-
-static GLenum min_filter = GL_LINEAR_MIPMAP_LINEAR;
-static GLenum mag_filter = GL_LINEAR;
-
-static unsigned segments = 64;
-static GLfloat * position_data = NULL;
-static GLfloat * texcoord_data = NULL;
-static GLfloat max_anisotropy = 0.0;
-static GLfloat anisotropy = 1.0;
-
-static void generate_tunnel( unsigned num_segs, GLfloat ** pos_data,
- GLfloat ** tex_data );
-static void generate_textures( unsigned mode );
-
-#define min(a,b) ( (a) < (b) ) ? (a) : (b)
-#define max(a,b) ( (a) > (b) ) ? (a) : (b)
-
-
-static void Display( void )
-{
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter );
-
- if ( max_anisotropy > 0.0 ) {
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
- anisotropy );
- }
-
- glClear( GL_COLOR_BUFFER_BIT );
- glLoadIdentity();
- glTranslatef( 0.0f, 0.0f, -19.0f );
-
- glVertexPointer( 4, GL_FLOAT, 0, position_data );
- glTexCoordPointer( 2, GL_FLOAT, 0, texcoord_data );
- glEnableClientState( GL_VERTEX_ARRAY );
- glEnableClientState( GL_TEXTURE_COORD_ARRAY );
- glDrawArrays( GL_QUADS, 0, 4 * segments );
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0f, (GLfloat)(width)/(GLfloat)(height), 0.1f, 100.0f);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- GLfloat new_anisotropy = anisotropy;
-
- (void) x;
- (void) y;
-
-
- switch( key ) {
- case 'a': {
- new_anisotropy = anisotropy - 1.0;
- break;
- }
-
- case 'A': {
- new_anisotropy = anisotropy + 1.0;
- break;
- }
-
- case 's': {
- segments--;
- if ( segments < 3 ) {
- segments = 3;
- }
- generate_tunnel( segments, & position_data, & texcoord_data );
- break;
- }
-
- case 'S': {
- segments++;
- if ( segments > 128 ) {
- segments = 128;
- }
- generate_tunnel( segments, & position_data, & texcoord_data );
- break;
- }
- case 'q':
- case 'Q':
- case 27:
- exit(0);
- break;
- }
-
- new_anisotropy = max( new_anisotropy, 1.0 );
- new_anisotropy = min( new_anisotropy, max_anisotropy );
- if ( new_anisotropy != anisotropy ) {
- anisotropy = new_anisotropy;
- printf( "Texture anisotropy: %f%s\n", anisotropy,
- (anisotropy == 1.0) ? " (disabled)" : "" );
- }
-
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- (void) x;
- (void) y;
- (void) key;
- glutPostRedisplay();
-}
-
-
-static void menu_handler( int selection )
-{
- switch( selection >> 3 ) {
- case 0:
- glBindTexture( GL_TEXTURE_2D, selection );
- break;
-
- case 1:
- min_filter = filter_modes[ selection & 7 ];
- break;
-
- case 2:
- mag_filter = filter_modes[ selection & 7 ];
- break;
- }
-
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- glDisable(GL_CULL_FACE);
- glEnable(GL_TEXTURE_2D);
- glClearColor(0.0f, 0.0f, 0.4f, 0.0f);
- glShadeModel(GL_SMOOTH);
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
-
- generate_tunnel( segments, & position_data, & texcoord_data );
-
- glBindTexture( GL_TEXTURE_2D, 1 );
- generate_textures(1);
-
- glBindTexture( GL_TEXTURE_2D, 2 );
- generate_textures(2);
-
- glBindTexture( GL_TEXTURE_2D, 3 );
- generate_textures(3);
-
- if ( glutExtensionSupported( "GL_EXT_texture_filter_anisotropic" ) ) {
- glGetFloatv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, & max_anisotropy );
- }
-
- printf("Maximum texture anisotropy: %f\n", max_anisotropy );
-
- /* Create the menus. */
-
- glutCreateMenu( menu_handler );
- glutAddMenuEntry( "Min filter: GL_NEAREST", 8 + 0 );
- glutAddMenuEntry( "Min filter: GL_LINEAR", 8 + 1 );
- glutAddMenuEntry( "Min filter: GL_NEAREST_MIMMAP_NEAREST", 8 + 2 );
- glutAddMenuEntry( "Min filter: GL_NEAREST_MIMMAP_LINEAR", 8 + 3 );
- glutAddMenuEntry( "Min filter: GL_LINEAR_MIMMAP_NEAREST", 8 + 4 );
- glutAddMenuEntry( "Min filter: GL_LINEAR_MIMMAP_LINEAR", 8 + 5 );
- glutAddMenuEntry( "Mag filter: GL_NEAREST", 16 + 0 );
- glutAddMenuEntry( "Mag filter: GL_LINEAR", 16 + 1 );
- glutAddMenuEntry( "Texture: regular mipmaps", 1 );
- glutAddMenuEntry( "Texture: blended mipmaps", 2 );
- glutAddMenuEntry( "Texture: color mipmaps", 3 );
- glutAttachMenu( GLUT_RIGHT_BUTTON );
-}
-
-
-static void generate_tunnel( unsigned num_segs, GLfloat ** pos_data,
- GLfloat ** tex_data )
-{
- const GLfloat far_distance = 20.0f;
- const GLfloat near_distance = -90.0f;
- const GLfloat far_tex = 30.0f;
- const GLfloat near_tex = 0.0f;
- const GLfloat angle_step = (2 * M_PI) / num_segs;
- const GLfloat tex_coord_step = 2.0 / num_segs;
- GLfloat angle = 0.0f;
- GLfloat tex_coord = 0.0f;
- unsigned i;
- GLfloat * position;
- GLfloat * texture;
-
-
- position = realloc( *pos_data, sizeof( GLfloat ) * num_segs * 4 * 4 );
- texture = realloc( *tex_data, sizeof( GLfloat ) * num_segs * 4 * 2 );
-
- *pos_data = position;
- *tex_data = texture;
-
- for ( i = 0 ; i < num_segs ; i++ ) {
- position[0] = 2.5 * sinf( angle );
- position[1] = 2.5 * cosf( angle );
- position[2] = (i & 1) ? far_distance : near_distance;
- position[3] = 1.0f;
-
- position[4] = position[0];
- position[5] = position[1];
- position[6] = (i & 1) ? near_distance : far_distance;
- position[7] = 1.0f;
-
- position += 8;
-
- texture[0] = tex_coord;
- texture[1] = (i & 1) ? far_tex : near_tex;
- texture += 2;
-
- texture[0] = tex_coord;
- texture[1] = (i & 1) ? near_tex : far_tex;
- texture += 2;
-
- angle += angle_step;
- tex_coord += tex_coord_step;
-
- position[0] = 2.5 * sinf( angle );
- position[1] = 2.5 * cosf( angle );
- position[2] = (i & 1) ? near_distance : far_distance;
- position[3] = 1.0f;
-
- position[4] = position[0];
- position[5] = position[1];
- position[6] = (i & 1) ? far_distance : near_distance;
- position[7] = 1.0f;
-
- position += 8;
-
- texture[0] = tex_coord;
- texture[1] = (i & 1) ? near_tex : far_tex;
- texture += 2;
-
- texture[0] = tex_coord;
- texture[1] = (i & 1) ? far_tex : near_tex;
- texture += 2;
- }
-}
-
-
-static void generate_textures( unsigned mode )
-{
-#define LEVEL_COLORS 6
- const GLfloat colors[LEVEL_COLORS][3] = {
- { 1.0, 0.0, 0.0 }, /* 32 x 32 */
- { 0.0, 1.0, 0.0 }, /* 16 x 16 */
- { 0.0, 0.0, 1.0 }, /* 8 x 8 */
- { 1.0, 0.0, 1.0 }, /* 4 x 4 */
- { 1.0, 1.0, 1.0 }, /* 2 x 2 */
- { 1.0, 1.0, 0.0 } /* 1 x 1 */
- };
- const unsigned checkers_per_level = 2;
- GLfloat * tex;
- unsigned level;
- unsigned size;
- GLint max_size;
-
-
- glGetIntegerv( GL_MAX_TEXTURE_SIZE, & max_size );
- if ( max_size > 512 ) {
- max_size = 512;
- }
-
- tex = malloc( sizeof( GLfloat ) * 3 * max_size * max_size );
-
- level = 0;
- for ( size = max_size ; size > 0 ; size >>= 1 ) {
- unsigned divisor = size / checkers_per_level;
- unsigned i;
- unsigned j;
- GLfloat checkers[2][3];
-
-
- if ((level == 0) || (mode == 1)) {
- checkers[0][0] = 1.0;
- checkers[0][1] = 1.0;
- checkers[0][2] = 1.0;
- checkers[1][0] = 0.0;
- checkers[1][1] = 0.0;
- checkers[1][2] = 0.0;
- }
- else if (mode == 2) {
- checkers[0][0] = colors[level % LEVEL_COLORS][0];
- checkers[0][1] = colors[level % LEVEL_COLORS][1];
- checkers[0][2] = colors[level % LEVEL_COLORS][2];
- checkers[1][0] = colors[level % LEVEL_COLORS][0] * 0.5;
- checkers[1][1] = colors[level % LEVEL_COLORS][1] * 0.5;
- checkers[1][2] = colors[level % LEVEL_COLORS][2] * 0.5;
- }
- else {
- checkers[0][0] = colors[level % LEVEL_COLORS][0];
- checkers[0][1] = colors[level % LEVEL_COLORS][1];
- checkers[0][2] = colors[level % LEVEL_COLORS][2];
- checkers[1][0] = colors[level % LEVEL_COLORS][0];
- checkers[1][1] = colors[level % LEVEL_COLORS][1];
- checkers[1][2] = colors[level % LEVEL_COLORS][2];
- }
-
- if ( divisor == 0 ) {
- divisor = 1;
-
- checkers[0][0] = (checkers[0][0] + checkers[1][0]) / 2;
- checkers[0][1] = (checkers[0][0] + checkers[1][0]) / 2;
- checkers[0][2] = (checkers[0][0] + checkers[1][0]) / 2;
- checkers[1][0] = checkers[0][0];
- checkers[1][1] = checkers[0][1];
- checkers[1][2] = checkers[0][2];
- }
-
-
- for ( i = 0 ; i < size ; i++ ) {
- for ( j = 0 ; j < size ; j++ ) {
- const unsigned idx = ((i ^ j) / divisor) & 1;
-
- tex[ ((i * size) + j) * 3 + 0] = checkers[ idx ][0];
- tex[ ((i * size) + j) * 3 + 1] = checkers[ idx ][1];
- tex[ ((i * size) + j) * 3 + 2] = checkers[ idx ][2];
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D, level, GL_RGB, size, size, 0,
- GL_RGB, GL_FLOAT, tex );
- level++;
- }
-
- free( tex );
-}
-
-
-int main( int argc, char ** argv )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 800, 600 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow( "Texture Filter Test" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
-
- Init();
-
- printf("\nUse the right-button menu to select the texture and filter mode.\n");
- printf("Use 'A' and 'a' to increase and decrease the aniotropy.\n");
- printf("Use 'S' and 's' to increase and decrease the number of cylinder segments.\n");
- printf("Use 'q' to exit.\n\n");
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texgenmix.c b/progs/tests/texgenmix.c
deleted file mode 100644
index 008da8625e..0000000000
--- a/progs/tests/texgenmix.c
+++ /dev/null
@@ -1,642 +0,0 @@
-
-/*
- * Demonstrates mixed texgen/non-texgen texture coordinates.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#undef max
-#undef min
-#define max( a, b ) ((a) >= (b) ? (a) : (b))
-#define min( a, b ) ((a) <= (b) ? (a) : (b))
-
-GLfloat labelColor0[4] = { 1.0, 1.0, 1.0, 1.0 };
-GLfloat labelColor1[4] = { 1.0, 1.0, 0.4, 1.0 };
-GLfloat *labelInfoColor = labelColor0;
-
-GLboolean doubleBuffered = GL_TRUE;
-GLboolean drawTextured = GL_TRUE;
-
-int textureWidth = 64;
-int textureHeight = 64;
-
-int winWidth = 580, winHeight = 720;
-
-const GLfloat texmat_swap_rq[16] = { 1.0, 0.0, 0.0, 0.0,
- 0.0, 1.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, 1.0,
- 0.0, 0.0, 1.0, 0.0};
-
-const GLfloat nullPlane[4] = { 0.0, 0.0, 0.0, 0.0 };
-const GLfloat ObjPlaneS1[4] = { 1.0, 0.0, 1.0, 0.0 };
-const GLfloat ObjPlaneS2[4] = { 0.5, 0.0, 0.0, 0.0 };
-const GLfloat ObjPlaneS3[4] = { 1.0, 0.0, 0.0, 0.0 };
-const GLfloat ObjPlaneT[4] = { 0.0, 1.0, 0.0, 0.0 };
-const GLfloat ObjPlaneT2[4] = { 0.0, 0.5, 0.0, 0.0 };
-const GLfloat ObjPlaneT3[4] = { 0.0, 1.0, 0.0, 0.0 };
-const GLfloat ObjPlaneR[4] = { 0.0, 0.0, 1.0, 0.0 };
-const GLfloat ObjPlaneQ[4] = { 0.0, 0.0, 0.0, 0.5 };
-
-
-static void checkErrors( void )
-{
- GLenum error;
-
- while ( (error = glGetError()) != GL_NO_ERROR ) {
- fprintf( stderr, "Error: %s\n", (char *) gluErrorString( error ) );
- }
-}
-
-static void drawString( const char *string, GLfloat x, GLfloat y,
- const GLfloat color[4] )
-{
- glColor4fv( color );
- glRasterPos2f( x, y );
-
- while ( *string ) {
- glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_10, *string );
- string++;
- }
-}
-
-static void begin2D( int width, int height )
-{
- glMatrixMode( GL_PROJECTION );
-
- glPushMatrix();
- glLoadIdentity();
-
- glOrtho( 0, width, 0, height, -1, 1 );
- glMatrixMode( GL_MODELVIEW );
-
- glPushMatrix();
- glLoadIdentity();
-}
-
-static void end2D( void )
-{
- glMatrixMode( GL_PROJECTION );
- glPopMatrix();
- glMatrixMode( GL_MODELVIEW );
- glPopMatrix();
-}
-
-static void initialize( void )
-{
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
-
- glOrtho( -1.5, 1.5, -1.5, 1.5, -1.5, 1.5 );
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glShadeModel( GL_FLAT );
-}
-
-/* ARGSUSED1 */
-static void keyboard( unsigned char c, int x, int y )
-{
- switch ( c ) {
- case 't':
- drawTextured = !drawTextured;
- break;
- case 27: /* Escape key should force exit. */
- exit(0);
- break;
- default:
- break;
- }
- glutPostRedisplay();
-}
-
-/* ARGSUSED1 */
-static void special( int key, int x, int y )
-{
- switch ( key ) {
- case GLUT_KEY_DOWN:
- break;
- case GLUT_KEY_UP:
- break;
- case GLUT_KEY_LEFT:
- break;
- case GLUT_KEY_RIGHT:
- break;
- default:
- break;
- }
- glutPostRedisplay();
-}
-
-static void
-reshape( int w, int h )
-{
- winWidth = w;
- winHeight = h;
- /* No need to call glViewPort here since "draw" calls it! */
-}
-
-static void loadTexture( int width, int height )
-{
- int alphaSize = 1;
- int rgbSize = 3;
- GLubyte *texImage, *p;
- int elementsPerGroup, elementSize, groupSize, rowSize;
- int i, j;
-
-
- elementsPerGroup = alphaSize + rgbSize;
- elementSize = sizeof(GLubyte);
- groupSize = elementsPerGroup * elementSize;
- rowSize = width * groupSize;
-
- if ( (texImage = (GLubyte *) malloc( height * rowSize ) ) == NULL ) {
- fprintf( stderr, "texture malloc failed\n" );
- return;
- }
-
- for ( i = 0 ; i < height ; i++ )
- {
- p = texImage + i * rowSize;
-
- for ( j = 0 ; j < width ; j++ )
- {
- if ( rgbSize > 0 )
- {
- /**
- ** +-----+-----+
- ** | | |
- ** | R | G |
- ** | | |
- ** +-----+-----+
- ** | | |
- ** | Y | B |
- ** | | |
- ** +-----+-----+
- **/
- if ( i > height / 2 ) {
- if ( j < width / 2 ) {
- p[0] = 0xff;
- p[1] = 0x00;
- p[2] = 0x00;
- } else {
- p[0] = 0x00;
- p[1] = 0xff;
- p[2] = 0x00;
- }
- } else {
- if ( j < width / 2 ) {
- p[0] = 0xff;
- p[1] = 0xff;
- p[2] = 0x00;
- } else {
- p[0] = 0x00;
- p[1] = 0x00;
- p[2] = 0xff;
- }
- }
- p += 3 * elementSize;
- }
-
- if ( alphaSize > 0 )
- {
- /**
- ** +-----------+
- ** | W |
- ** | +-----+ |
- ** | | | |
- ** | | B | |
- ** | | | |
- ** | +-----+ |
- ** | |
- ** +-----------+
- **/
- int i2 = i - height / 2;
- int j2 = j - width / 2;
- int h8 = height / 8;
- int w8 = width / 8;
- if ( -h8 <= i2 && i2 <= h8 && -w8 <= j2 && j2 <= w8 ) {
- p[0] = 0x00;
- } else if ( -2 * h8 <= i2 && i2 <= 2 * h8 && -2 * w8 <= j2 && j2 <= 2 * w8 ) {
- p[0] = 0x55;
- } else if ( -3 * h8 <= i2 && i2 <= 3 * h8 && -3 * w8 <= j2 && j2 <= 3 * w8 ) {
- p[0] = 0xaa;
- } else {
- p[0] = 0xff;
- }
- p += elementSize;
- }
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D, 0,
- GL_RGBA, width, height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, texImage );
-
- free( texImage );
-}
-
-
-static void drawSample( int x, int y, int w, int h,
- int texgenenabled, int coordnr )
-{
- char buf[255];
-
- glViewport( x, y, w, h );
- glScissor( x, y, w, h );
-
- glClearColor( 0.1, 0.1, 0.1, 1.0 );
- glClear( GL_COLOR_BUFFER_BIT );
-
- begin2D( w, h );
- if (texgenenabled == 2) {
- sprintf( buf, "TexCoord%df", coordnr);
- drawString( buf, 10, h - 15, labelInfoColor );
- sprintf( buf, "texgen enabled for %s coordinate(s)", coordnr == 2 ? "S" : "S/T");
- drawString( buf, 10, 5, labelInfoColor );
- }
- else if (texgenenabled == 0) {
- sprintf( buf, "TexCoord%df", coordnr);
- drawString( buf, 10, h - 15, labelInfoColor );
- drawString( "no texgen", 10, 5, labelInfoColor );
- }
- else if (texgenenabled == 1) {
- drawString( "no TexCoord", 10, h - 15, labelInfoColor );
- sprintf( buf, "texgen enabled for %s coordinate(s)",
- coordnr == 2 ? "S/T" : (coordnr == 3 ? "S/T/R" : "S/T/R/Q"));
- drawString( buf, 10, 5, labelInfoColor );
- }
-
- end2D();
-
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
-
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
-
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );
-
- loadTexture( textureWidth, textureHeight );
-
- if ( drawTextured ) {
- glEnable( GL_TEXTURE_2D );
- }
-
- glDisable( GL_TEXTURE_GEN_S );
- glDisable( GL_TEXTURE_GEN_T );
- glDisable( GL_TEXTURE_GEN_R );
- glDisable( GL_TEXTURE_GEN_Q );
-
- glMatrixMode( GL_TEXTURE );
- glLoadIdentity();
- glMatrixMode( GL_MODELVIEW );
- glPushMatrix();
-
- switch (coordnr) {
- case 2:
- switch (texgenenabled) {
- case 0:
- glBegin( GL_QUADS );
- glTexCoord2f( 0.0, 0.0 );
- glVertex2f( -0.8, -0.8 );
-
- glTexCoord2f( 1.0, 0.0 );
- glVertex2f( 0.8, -0.8 );
-
- glTexCoord2f( 1.0, 1.0 );
- glVertex2f( 0.8, 0.8 );
-
- glTexCoord2f( 0.0, 1.0 );
- glVertex2f( -0.8, 0.8 );
- glEnd();
- break;
- case 1:
- glTranslatef( -0.8, -0.8, 0.0 );
- glScalef( 1.6, 1.6, 1.0 );
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS3);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjPlaneT3);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, nullPlane);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, nullPlane);
-
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
-
- /* Issue a texcoord here to be sure Q isn't left over from a
- * previous sample.
- */
- glTexCoord1f( 0.0 );
- glBegin( GL_QUADS );
- glVertex2f( 0.0, 0.0 );
- glVertex2f( 1.0, 0.0 );
- glVertex2f( 1.0, 1.0 );
- glVertex2f( 0.0, 1.0 );
- glEnd();
- break;
- case 2:
- /* make sure that texgen T and non-texgen S coordinate are wrong */
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS1);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, nullPlane);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, nullPlane);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, nullPlane);
-
- glEnable( GL_TEXTURE_GEN_S );
-
- glBegin( GL_QUADS );
- /* use z coordinate to get correct texgen values... */
- glTexCoord2f( 0.0, 0.0 );
- glVertex3f( -0.8, -0.8, 0.8 );
-
- glTexCoord2f( 0.0, 0.0 );
- glVertex3f( 0.8, -0.8, 0.2 );
-
- glTexCoord2f( 0.0, 1.0 );
- glVertex3f( 0.8, 0.8, 0.2 );
-
- glTexCoord2f( 0.0, 1.0 );
- glVertex3f( -0.8, 0.8, 0.8 );
- glEnd();
- break;
- }
- break;
- case 3:
- glMatrixMode( GL_TEXTURE );
- glLoadMatrixf( texmat_swap_rq );
- glMatrixMode( GL_MODELVIEW );
- glTranslatef( -0.8, -0.8, 0.0 );
- glScalef( 1.6, 1.6, 1.0 );
- switch (texgenenabled) {
- case 0:
- glBegin( GL_QUADS );
- glTexCoord3f( 0.0, 0.0, 0.5 );
- glVertex2f( 0.0, 0.0 );
-
- glTexCoord3f( 0.5, 0.0, 0.5 );
- glVertex2f( 1.0, 0.0 );
-
- glTexCoord3f( 0.5, 0.5, 0.5 );
- glVertex2f( 1.0, 1.0 );
-
- glTexCoord3f( 0.0, 0.5, 0.5 );
- glVertex2f( 0.0, 1.0 );
- glEnd();
- break;
- case 1:
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS2);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjPlaneT2);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, ObjPlaneR);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, nullPlane);
-
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
- glEnable( GL_TEXTURE_GEN_R );
-
- glTexCoord1f( 0.0 ); /* to make sure Q is 1.0 */
- glBegin( GL_QUADS );
- glVertex3f( 0.0, 0.0, 0.5 );
- glVertex3f( 1.0, 0.0, 0.5 );
- glVertex3f( 1.0, 1.0, 0.5 );
- glVertex3f( 0.0, 1.0, 0.5 );
- glEnd();
- break;
- case 2:
- /* make sure that texgen R/Q and non-texgen S/T coordinates are wrong */
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS2);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjPlaneT2);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, nullPlane);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, nullPlane);
-
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
-
- glBegin( GL_QUADS );
- glTexCoord3f( 0.0, 0.0, 0.5 );
- glVertex2f( 0.0, 0.0);
-
- glTexCoord3f( 0.0, 0.0, 0.5 );
- glVertex2f( 1.0, 0.0);
-
- glTexCoord3f( 0.0, 0.0, 0.5 );
- glVertex2f( 1.0, 1.0);
-
- glTexCoord3f( 0.0, 0.0, 0.5 );
- glVertex2f( 0.0, 1.0);
- glEnd();
- break;
- }
- break;
- case 4:
- switch (texgenenabled) {
- case 0:
- glBegin( GL_QUADS );
- /* don't need r coordinate but still setting it I'm mean */
- glTexCoord4f( 0.0, 0.0, 0.0, 0.5 );
- glVertex2f( -0.8, -0.8 );
-
- glTexCoord4f( 0.5, 0.0, 0.2, 0.5 );
- glVertex2f( 0.8, -0.8 );
-
- glTexCoord4f( 0.5, 0.5, 0.5, 0.5 );
- glVertex2f( 0.8, 0.8 );
-
- glTexCoord4f( 0.0, 0.5, 0.5, 0.5 );
- glVertex2f( -0.8, 0.8 );
- glEnd();
- break;
- case 1:
- glTranslatef( -0.8, -0.8, 0.0 );
- glScalef( 1.6, 1.6, 1.0 );
- /* make sure that texgen R/Q and non-texgen S/T coordinates are wrong */
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS2);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjPlaneT2);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, ObjPlaneR);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, ObjPlaneQ);
-
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
- glEnable( GL_TEXTURE_GEN_R );
- glEnable( GL_TEXTURE_GEN_Q );
-
- glBegin( GL_QUADS );
- glVertex2f( 0.0, 0.0 );
- glVertex2f( 1.0, 0.0 );
- glVertex2f( 1.0, 1.0 );
- glVertex2f( 0.0, 1.0 );
- glEnd();
- break;
- case 2:
- glTranslatef( -0.8, -0.8, 0.0 );
- glScalef( 1.6, 1.6, 1.0 );
- /* make sure that texgen R/Q and non-texgen S/T coordinates are wrong */
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjPlaneS2);
- glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjPlaneT2);
- glTexGenfv(GL_R, GL_OBJECT_PLANE, nullPlane);
- glTexGenfv(GL_Q, GL_OBJECT_PLANE, nullPlane);
-
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
-
- glBegin( GL_QUADS );
- glTexCoord4f( 0.0, 0.0, 0.0, 0.5 );
- glVertex2f( 0.0, 0.0 );
-
- glTexCoord4f( 0.0, 0.0, 0.2, 0.5 );
- glVertex2f( 1.0, 0.0 );
-
- glTexCoord4f( 0.0, 0.0, 0.5, 0.5 );
- glVertex2f( 1.0, 1.0 );
-
- glTexCoord4f( 0.0, 0.0, 0.75, 0.5 );
- glVertex2f( 0.0, 1.0 );
- glEnd();
- break;
- }
- break;
- }
-
- glPopMatrix();
- glDisable( GL_TEXTURE_2D );
-
-}
-
-static void display( void )
-{
- int numX = 3, numY = 3;
- float xBase = (float) winWidth * 0.01;
- float xOffset = (winWidth - xBase) / numX;
- float xSize = max( xOffset - xBase, 1 );
- float yBase = (float) winHeight * 0.01;
- float yOffset = (winHeight - yBase) / numY;
- float ySize = max( yOffset - yBase, 1 );
- float x, y;
- int i, j;
-
- glViewport( 0, 0, winWidth, winHeight );
- glDisable( GL_SCISSOR_TEST );
- glClearColor( 0.0, 0.0, 0.0, 0.0 );
- glClear( GL_COLOR_BUFFER_BIT );
- glEnable( GL_SCISSOR_TEST );
-
- x = xBase;
- y = (winHeight - 1) - yOffset;
-
- for ( i = 0 ; i < numY ; i++ )
- {
-
- labelInfoColor = labelColor1;
-
-
- for ( j = 0 ; j < numX ; j++ ) {
- drawSample( x, y, xSize, ySize, i, j+2 );
- x += xOffset;
- }
-
- x = xBase;
- y -= yOffset;
- }
-
- if ( doubleBuffered ) {
- glutSwapBuffers();
- } else {
- glFlush();
- }
-
- checkErrors();
-}
-
-static void usage( char *name )
-{
- fprintf( stderr, "usage: %s [ options ]\n", name );
- fprintf( stderr, "\n" );
- fprintf( stderr, "options:\n" );
- fprintf( stderr, " -sb single buffered\n" );
- fprintf( stderr, " -db double buffered\n" );
- fprintf( stderr, " -info print OpenGL driver info\n" );
-}
-
-static void instructions( void )
-{
- fprintf( stderr, "texgenmix - mixed texgen/non-texgen texture coordinate test\n" );
- fprintf( stderr, "all quads should look the same!\n" );
- fprintf( stderr, "\n" );
- fprintf( stderr, " [t] - toggle texturing\n" );
-}
-
-int main( int argc, char *argv[] )
-{
- GLboolean info = GL_FALSE;
- int i;
-
- glutInit( &argc, argv );
-
- for ( i = 1 ; i < argc ; i++ ) {
- if ( !strcmp( "-sb", argv[i] ) ) {
- doubleBuffered = GL_FALSE;
- } else if ( !strcmp( "-db", argv[i] ) ) {
- doubleBuffered = GL_TRUE;
- } else if ( !strcmp( "-info", argv[i] ) ) {
- info = GL_TRUE;
- } else {
- usage( argv[0] );
- exit( 1 );
- }
- }
-
- if ( doubleBuffered ) {
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- } else {
- glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE );
- }
-
- glutInitWindowSize( winWidth, winHeight );
- glutInitWindowPosition( 0, 0 );
- glutCreateWindow( "Mixed texgen/non-texgen texture coordinate test" );
- glewInit();
-
- initialize();
- instructions();
-
- if ( info ) {
- printf( "\n" );
- 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 ) );
- }
-
- glutDisplayFunc( display );
- glutReshapeFunc( reshape );
- glutKeyboardFunc( keyboard );
- glutSpecialFunc( special );
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/tests/texleak.c b/progs/tests/texleak.c
deleted file mode 100644
index 5cf4ff3239..0000000000
--- a/progs/tests/texleak.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 'Texture leak' test
- *
- * Allocates and uses an additional texture of the maximum supported size for
- * each frame. This tests the system's ability to cope with using increasing
- * amounts of texture memory.
- *
- * Michel Dänzer July 2009 This program is in the public domain.
- */
-
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-GLint size;
-GLvoid *image;
-static GLuint numTexObj;
-static GLuint *texObj;
-
-
-static void Idle( void )
-{
- glutPostRedisplay();
-}
-
-
-static void DrawObject(void)
-{
- static const GLfloat tex_coords[] = { 0.0, 0.0, 1.0, 1.0, 0.0 };
- static const GLfloat vtx_coords[] = { -1.0, -1.0, 1.0, 1.0, -1.0 };
- GLint i, j;
-
- glEnable(GL_TEXTURE_2D);
-
- for (i = 0; i < numTexObj; i++) {
- glBindTexture(GL_TEXTURE_2D, texObj[i]);
- glBegin(GL_QUADS);
- for (j = 0; j < 4; j++ ) {
- glTexCoord2f(tex_coords[j], tex_coords[j+1]);
- glVertex2f( vtx_coords[j], vtx_coords[j+1] );
- }
- glEnd();
- }
-}
-
-
-static void Display( void )
-{
- struct timeval start, end;
-
- texObj = realloc(texObj, ++numTexObj * sizeof(*texObj));
-
- /* allocate a texture object */
- glGenTextures(1, texObj + (numTexObj - 1));
-
- glBindTexture(GL_TEXTURE_2D, texObj[numTexObj - 1]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- memset(image, (16 * numTexObj) & 0xff, 4 * size * size);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, image);
-
- gettimeofday(&start, NULL);
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glScalef(5.0, 5.0, 5.0);
- DrawObject();
- glPopMatrix();
-
- glutSwapBuffers();
-
- glFinish();
- gettimeofday(&end, NULL);
- printf("Rendering frame took %lu ms using %u MB of textures\n",
- end.tv_sec * 1000 + end.tv_usec / 1000 - start.tv_sec * 1000 -
- start.tv_usec / 1000, numTexObj * 4 * size / 1024 * size / 1024);
-
- sleep(1);
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( -6.0, 6.0, -6.0, 6.0, 10.0, 100.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -70.0 );
-}
-
-
-static void Init( int argc, char *argv[] )
-{
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size);
- printf("%d x %d max texture size\n", size, size);
-
- image = malloc(4 * size * size);
- if (!image) {
- fprintf(stderr, "Failed to allocate %u bytes of memory\n", 4 * size * size);
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- Idle();
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutDisplayFunc( Display );
- glutIdleFunc(Idle);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texline.c b/progs/tests/texline.c
deleted file mode 100644
index 1803832b47..0000000000
--- a/progs/tests/texline.c
+++ /dev/null
@@ -1,280 +0,0 @@
-
-/*
- * Test textured lines.
- *
- * Brian Paul
- * September 2000
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "../util/readtex.c" /* I know, this is a hack. */
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLboolean Antialias = GL_FALSE;
-static GLboolean Animate = GL_FALSE;
-static GLint Texture = 1;
-static GLboolean Stipple = GL_FALSE;
-static GLfloat LineWidth = 1.0;
-
-static GLfloat Xrot = -60.0, Yrot = 0.0, Zrot = 0.0;
-static GLfloat DYrot = 1.0;
-static GLboolean Points = GL_FALSE;
-static GLfloat Scale = 1.0;
-
-static void Idle( void )
-{
- if (Animate) {
- Zrot += DYrot;
- glutPostRedisplay();
- }
-}
-
-
-static void Display( void )
-{
- GLfloat x, y, s, t;
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glScalef(Scale, Scale, Scale);
-
- if (Texture)
- glColor3f(1, 1, 1);
-
- if (Points) {
- glBegin(GL_POINTS);
- for (t = 0.0; t <= 1.0; t += 0.025) {
- for (s = 0.0; s <= 1.0; s += 0.025) {
- x = s * 2.0 - 1.0;
- y = t * 2.0 - 1.0;
- if (!Texture)
- glColor3f(1, 0, 1);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, t, s);
- glTexCoord2f(s, t);
- glVertex2f(x, y);
- }
- }
- glEnd();
- }
- else {
- glBegin(GL_LINES);
- for (t = 0.0; t <= 1.0; t += 0.025) {
- x = t * 2.0 - 1.0;
- if (!Texture)
- glColor3f(1, 0, 1);
- glTexCoord2f(t, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, t);
- glVertex2f(x, -1.0);
- if (!Texture)
- glColor3f(0, 1, 0);
- glTexCoord2f(t, 1.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, t);
- glVertex2f(x, 1.0);
- }
- glEnd();
- }
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, 10.0, 100.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Antialias = !Antialias;
- if (Antialias) {
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_POINT_SMOOTH);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- else {
- glDisable(GL_LINE_SMOOTH);
- glDisable(GL_POINT_SMOOTH);
- glDisable(GL_BLEND);
- }
- break;
- case 't':
- Texture++;
- if (Texture > 2)
- Texture = 0;
- if (Texture == 0) {
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glDisable(GL_TEXTURE_2D);
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glDisable(GL_TEXTURE_2D);
- }
- else if (Texture == 1) {
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glEnable(GL_TEXTURE_2D);
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glDisable(GL_TEXTURE_2D);
- }
- else {
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glEnable(GL_TEXTURE_2D);
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glEnable(GL_TEXTURE_2D);
- }
- break;
- case 'w':
- LineWidth -= 0.25;
- if (LineWidth < 0.25)
- LineWidth = 0.25;
- glLineWidth(LineWidth);
- glPointSize(LineWidth);
- break;
- case 'W':
- LineWidth += 0.25;
- if (LineWidth > 8.0)
- LineWidth = 8.0;
- glLineWidth(LineWidth);
- glPointSize(LineWidth);
- break;
- case 'p':
- Points = !Points;
- break;
- case 's':
- Stipple = !Stipple;
- if (Stipple)
- glEnable(GL_LINE_STIPPLE);
- else
- glDisable(GL_LINE_STIPPLE);
- break;
- case ' ':
- Animate = !Animate;
- if (Animate)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 27:
- exit(0);
- break;
- }
- printf("LineWidth, PointSize = %f\n", LineWidth);
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Init( int argc, char *argv[] )
-{
- GLfloat r[2];
- GLuint u;
-
- for (u = 0; u < 2; u++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + u);
- glBindTexture(GL_TEXTURE_2D, 10+u);
- if (u == 0)
- glEnable(GL_TEXTURE_2D);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- if (u == 0)
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- else
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
- }
-
- glLineStipple(1, 0xff);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-
- glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, r);
- printf("Non-smooth point size range: %g .. %g\n", r[0], r[1]);
- glGetFloatv(GL_POINT_SIZE_RANGE, r);
- printf("Smoothed point size range: %g .. %g\n", r[0], r[1]);
- glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, r);
- printf("Non-smooth line width range: %g .. %g\n", r[0], r[1]);
- glGetFloatv(GL_LINE_WIDTH_RANGE, r);
- printf("Smoothed line width range: %g .. %g\n", r[0], r[1]);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition(0, 0);
- glutInitWindowSize( 400, 300 );
-
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
-
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init(argc, argv);
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Animate)
- glutIdleFunc( Idle );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texobj.c b/progs/tests/texobj.c
deleted file mode 100644
index 40bce6e569..0000000000
--- a/progs/tests/texobj.c
+++ /dev/null
@@ -1,284 +0,0 @@
-
-/*
- * Example of using the 1.1 texture object functions.
- * Also, this demo utilizes Mesa's fast texture map path.
- *
- * Brian Paul June 1996 This file is in the public domain.
- */
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "GL/glut.h"
-
-static GLuint Window = 0;
-
-static GLuint TexObj[2];
-static GLfloat Angle = 0.0f;
-static GLboolean UseObj = GL_FALSE;
-
-
-#if defined(GL_VERSION_1_1) || defined(GL_VERSION_1_2)
-# define TEXTURE_OBJECT 1
-#elif defined(GL_EXT_texture_object)
-# define TEXTURE_OBJECT 1
-# define glBindTexture(A,B) glBindTextureEXT(A,B)
-# define glGenTextures(A,B) glGenTexturesEXT(A,B)
-# define glDeleteTextures(A,B) glDeleteTexturesEXT(A,B)
-#endif
-
-
-
-
-static void draw( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glColor3f( 1.0, 1.0, 1.0 );
-
- /* draw first polygon */
- glPushMatrix();
- glTranslatef( -1.0, 0.0, 0.0 );
- glRotatef( Angle, 0.0, 0.0, 1.0 );
- if (UseObj) {
-#ifdef TEXTURE_OBJECT
- glBindTexture( GL_TEXTURE_2D, TexObj[0] );
-#endif
- }
- else {
- glCallList( TexObj[0] );
- }
- glBegin( GL_POLYGON );
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
- glPopMatrix();
-
- /* draw second polygon */
- glPushMatrix();
- glTranslatef( 1.0, 0.0, 0.0 );
- glRotatef( Angle-90.0, 0.0, 1.0, 0.0 );
- if (UseObj) {
-#ifdef TEXTURE_OBJECT
- glBindTexture( GL_TEXTURE_2D, TexObj[1] );
-#endif
- }
- else {
- glCallList( TexObj[1] );
- }
- glBegin( GL_POLYGON );
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 );
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 );
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 );
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 );
- glEnd();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-
-static void idle( void )
-{
- static double t0 = -1.;
- double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
- if (t0 < 0.0)
- t0 = t;
- dt = t - t0;
- t0 = t;
- Angle += 120.0*dt;
- glutPostRedisplay();
-}
-
-
-
-/* change view Angle, exit upon ESC */
-static void key(unsigned char k, int x, int y)
-{
- (void) x;
- (void) y;
- switch (k) {
- case 27:
-#ifdef TEXTURE_OBJECT
- glDeleteTextures( 2, TexObj );
-#endif
- glutDestroyWindow(Window);
- exit(0);
- }
-}
-
-
-
-/* new window size or exposure */
-static void reshape( int width, int height )
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/
- glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -8.0 );
-}
-
-
-static void init( void )
-{
- static int width=8, height=8;
- static GLubyte tex1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0 };
-
- static GLubyte tex2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 2, 2, 2, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0 };
-
- GLubyte tex[64][3];
- GLint i, j;
-
-
- glDisable( GL_DITHER );
-
- /* Setup texturing */
- glEnable( GL_TEXTURE_2D );
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
- glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST );
-
-
- /* generate texture object IDs */
- if (UseObj) {
-#ifdef TEXTURE_OBJECT
- glGenTextures( 2, TexObj );
-#endif
- }
- else {
- TexObj[0] = glGenLists(2);
- TexObj[1] = TexObj[0]+1;
- }
-
- /* setup first texture object */
- if (UseObj) {
-#ifdef TEXTURE_OBJECT
- glBindTexture( GL_TEXTURE_2D, TexObj[0] );
- assert(glIsTexture(TexObj[0]));
-#endif
- }
- else {
- glNewList( TexObj[0], GL_COMPILE );
- }
- /* red on white */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (tex1[(height-i-1)*width+j]) {
- tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 255; tex[p][1] = 255; tex[p][2] = 255;
- }
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
- if (!UseObj) {
- glEndList();
- }
- /* end of texture object */
-
- /* setup second texture object */
- if (UseObj) {
-#ifdef TEXTURE_OBJECT
- glBindTexture( GL_TEXTURE_2D, TexObj[1] );
- assert(glIsTexture(TexObj[1]));
-#endif
- assert(!glIsTexture(TexObj[1] + 999));
- }
- else {
- glNewList( TexObj[1], GL_COMPILE );
- }
- /* green on blue */
- for (i=0;i<height;i++) {
- for (j=0;j<width;j++) {
- int p = i*width+j;
- if (tex2[(height-i-1)*width+j]) {
- tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0;
- }
- else {
- tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255;
- }
- }
- }
- glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
- GL_RGB, GL_UNSIGNED_BYTE, tex );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
- if (!UseObj) {
- glEndList();
- }
- /* end texture object */
-
-}
-
-
-
-int main( int argc, char *argv[] )
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(300, 300);
- glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
-
- Window = glutCreateWindow("Texture Objects");
- if (!Window) {
- exit(1);
- }
-
- /* check that renderer has the GL_EXT_texture_object extension
- * or supports OpenGL 1.1
- */
-#ifdef TEXTURE_OBJECT
- {
- char *exten = (char *) glGetString( GL_EXTENSIONS );
- char *version = (char *) glGetString( GL_VERSION );
- if ( strstr( exten, "GL_EXT_texture_object" )
- || strncmp( version, "1.1", 3 )==0
- || strncmp( version, "1.2", 3 )==0 ) {
- UseObj = GL_TRUE;
- }
- }
-#endif
-
- init();
-
- glutReshapeFunc( reshape );
- glutKeyboardFunc( key );
- glutIdleFunc( idle );
- glutDisplayFunc( draw );
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texobjshare.c b/progs/tests/texobjshare.c
deleted file mode 100644
index 2b31cb6c4d..0000000000
--- a/progs/tests/texobjshare.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Create several OpenGL rendering contexts, sharing textures, display
- * lists, etc. Exercise binding, deleting, etc.
- *
- * Brian Paul
- * 21 December 2004
- */
-
-
-#include <GL/gl.h>
-#include <GL/glx.h>
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <X11/keysym.h>
-
-
-/*
- * Each display/window/context:
- */
-struct context {
- char DisplayName[1000];
- Display *Dpy;
- Window Win;
- GLXContext Context;
-};
-
-
-#define MAX_CONTEXTS 200
-static struct context Contexts[MAX_CONTEXTS];
-static int NumContexts = 0;
-
-
-static void
-Error(const char *display, const char *msg)
-{
- fprintf(stderr, "Error on display %s - %s\n", display, msg);
- exit(1);
-}
-
-
-static struct context *
-CreateContext(const char *displayName, const char *name)
-{
- Display *dpy;
- Window win;
- GLXContext ctx;
- int attrib[] = { GLX_RGBA,
- GLX_RED_SIZE, 1,
- GLX_GREEN_SIZE, 1,
- GLX_BLUE_SIZE, 1,
- GLX_DOUBLEBUFFER,
- None };
- int scrnum;
- XSetWindowAttributes attr;
- unsigned long mask;
- Window root;
- XVisualInfo *visinfo;
- int width = 90, height = 90;
- int xpos = 0, ypos = 0;
-
- if (NumContexts >= MAX_CONTEXTS)
- return NULL;
-
- dpy = XOpenDisplay(displayName);
- if (!dpy) {
- Error(displayName, "Unable to open display");
- return NULL;
- }
-
- scrnum = DefaultScreen(dpy);
- root = RootWindow(dpy, scrnum);
-
- visinfo = glXChooseVisual(dpy, scrnum, attrib);
- if (!visinfo) {
- Error(displayName, "Unable to find RGB, double-buffered visual");
- return NULL;
- }
-
- /* window attributes */
- xpos = (NumContexts % 10) * 100;
- ypos = (NumContexts / 10) * 100;
- 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, xpos, ypos, width, height,
- 0, visinfo->depth, InputOutput,
- visinfo->visual, mask, &attr);
- if (!win) {
- Error(displayName, "Couldn't create window");
- return NULL;
- }
-
- {
- XSizeHints sizehints;
- sizehints.x = xpos;
- sizehints.y = ypos;
- sizehints.width = width;
- sizehints.height = height;
- sizehints.flags = USSize | USPosition;
- XSetNormalHints(dpy, win, &sizehints);
- XSetStandardProperties(dpy, win, name, name,
- None, (char **)NULL, 0, &sizehints);
- }
-
- if (NumContexts == 0) {
- ctx = glXCreateContext(dpy, visinfo, NULL, True);
- }
- else {
- /* share textures & dlists with 0th context */
- ctx = glXCreateContext(dpy, visinfo, Contexts[0].Context, True);
- }
- if (!ctx) {
- Error(displayName, "Couldn't create GLX context");
- return NULL;
- }
-
- XMapWindow(dpy, win);
-
- if (!glXMakeCurrent(dpy, win, ctx)) {
- Error(displayName, "glXMakeCurrent failed");
- return NULL;
- }
-
- if (NumContexts == 0) {
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- }
-
- /* save the info for this context */
- {
- struct context *h = &Contexts[NumContexts];
- strcpy(h->DisplayName, name);
- h->Dpy = dpy;
- h->Win = win;
- h->Context = ctx;
- NumContexts++;
- return &Contexts[NumContexts-1];
- }
-}
-
-
-static void
-MakeCurrent(int i)
-{
- if (!glXMakeCurrent(Contexts[i].Dpy, Contexts[i].Win, Contexts[i].Context)) {
- fprintf(stderr, "glXMakeCurrent failed!\n");
- }
-}
-
-
-
-static void
-DestroyContext(int i)
-{
- XDestroyWindow(Contexts[i].Dpy, Contexts[i].Win);
- glXDestroyContext(Contexts[i].Dpy, Contexts[i].Context);
- XCloseDisplay(Contexts[i].Dpy);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- char *dpyName = NULL;
- int i;
- GLuint t;
- GLint tb;
-
- for (i = 0; i < 2; i++) {
- CreateContext(dpyName, "context");
- }
-
- /* Create texture and bind it in context 0 */
- MakeCurrent(0);
- glGenTextures(1, &t);
- printf("Generated texture ID %u\n", t);
- assert(!glIsTexture(t));
- glBindTexture(GL_TEXTURE_2D, t);
- assert(glIsTexture(t));
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &tb);
- assert(tb == t);
-
- /* Bind texture in context 1 */
- MakeCurrent(1);
- assert(glIsTexture(t));
- glBindTexture(GL_TEXTURE_2D, t);
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &tb);
- assert(tb == t);
-
- /* Delete texture from context 0 */
- MakeCurrent(0);
- glDeleteTextures(1, &t);
- assert(!glIsTexture(t));
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &tb);
- printf("After delete, binding = %d\n", tb);
-
- /* Check texture state from context 1 */
- MakeCurrent(1);
- assert(!glIsTexture(t));
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &tb);
- printf("In second context, binding = %d\n", tb);
- glBindTexture(GL_TEXTURE_2D, 0);
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &tb);
- assert(tb == 0);
-
-
- for (i = 0; i < NumContexts; i++) {
- DestroyContext(i);
- }
-
- printf("Success!\n");
-
- return 0;
-}
diff --git a/progs/tests/texrect.c b/progs/tests/texrect.c
deleted file mode 100644
index 10061ee586..0000000000
--- a/progs/tests/texrect.c
+++ /dev/null
@@ -1,360 +0,0 @@
-
-/* GL_NV_texture_rectangle test
- *
- * Brian Paul
- * 14 June 2002
- */
-
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "readtex.h"
-
-#define TEXTURE_0_FILE "../images/girl.rgb"
-#define TEXTURE_1_FILE "../images/reflect.rgb"
-
-#define TEX0 1
-#define TEX7 8
-#define ANIMATE 10
-#define CLAMP 20
-#define CLAMP_TO_EDGE 21
-#define CLAMP_TO_BORDER 22
-#define LINEAR_FILTER 30
-#define NEAREST_FILTER 31
-#define QUIT 100
-
-static GLboolean Animate = GL_FALSE;
-static GLint NumUnits = 2;
-static GLboolean TexEnabled[8];
-static GLint Width[8], Height[8]; /* image sizes */
-static GLenum Format[8];
-
-static GLfloat Xrot = 00.0, Yrot = 00.0, Zrot = 0.0;
-
-
-static void Idle( void )
-{
- Zrot = glutGet(GLUT_ELAPSED_TIME) * 0.01;
- glutPostRedisplay();
-}
-
-
-static void DrawObject(void)
-{
- GLint i;
- GLfloat d = 10; /* so we can see how borders are handled */
-
- glColor3f(.1, .1, .1); /* modulate this */
-
- glPushMatrix();
-
- glRotatef(Zrot, 0, 0, 1);
-
- glBegin(GL_QUADS);
-
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, -d, -d);
- glVertex2f(-1.0, -1.0);
-
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, Width[i]+d, -d);
- glVertex2f(1.0, -1.0);
-
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, Width[i]+d, Height[i]+d);
- glVertex2f(1.0, 1.0);
-
- for (i = 0; i < NumUnits; i++)
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, -d, Height[i]+d);
- glVertex2f(-1.0, 1.0);
-
- glEnd();
- glPopMatrix();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glScalef(5.0, 5.0, 5.0);
- DrawObject();
- 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, 100.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -35.0 );
-}
-
-
-static void ModeMenu(int entry)
-{
- GLint i;
- if (entry >= TEX0 && entry < TEX0 + NumUnits) {
- /* toggle */
- i = entry - TEX0;
- TexEnabled[i] = !TexEnabled[i];
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- if (TexEnabled[i]) {
- glEnable(GL_TEXTURE_RECTANGLE_NV);
- }
- else {
- glDisable(GL_TEXTURE_RECTANGLE_NV);
- }
- printf("Enabled: ");
- for (i = 0; i < NumUnits; i++)
- printf("%d ", (int) TexEnabled[i]);
- printf("\n");
- }
- else if (entry==ANIMATE) {
- Animate = !Animate;
- if (Animate)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- }
- else if (entry==CLAMP) {
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_T, GL_CLAMP);
- }
- }
- else if (entry==CLAMP_TO_EDGE) {
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- }
- }
- else if (entry==CLAMP_TO_BORDER) {
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
- }
- }
- else if (entry==NEAREST_FILTER) {
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
- }
- else if (entry==LINEAR_FILTER) {
- for (i = 0; i < NumUnits; i++) {
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- }
- }
-
- else if (entry==QUIT) {
- exit(0);
- }
-
- glutPostRedisplay();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'z':
- Zrot -= 1.0;
- break;
- case 'Z':
- Zrot += 1.0;
- break;
- case 'a':
- Animate = !Animate;
- if (Animate)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Init( int argc, char *argv[] )
-{
- const GLenum wrap = GL_CLAMP;
- GLuint texObj[8];
- GLint size, i;
-
- if (!glutExtensionSupported("GL_ARB_multitexture")) {
- printf("Sorry, GL_ARB_multitexture needed by this program\n");
- exit(1);
- }
-
- if (!glutExtensionSupported("GL_NV_texture_rectangle")) {
- printf("Sorry, GL_NV_texture_rectangle needed by this program\n");
- exit(1);
- }
-
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &NumUnits);
- printf("%d texture units supported, using 2.\n", NumUnits);
- if (NumUnits > 2)
- NumUnits = 2;
-
- glGetIntegerv(GL_MAX_RECTANGLE_TEXTURE_SIZE_NV, &size);
- printf("%d x %d max texture rectangle size\n", size, size);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- for (i = 0; i < NumUnits; i++) {
- TexEnabled[i] = GL_TRUE;
- }
-
- /* allocate two texture objects */
- glGenTextures(NumUnits, texObj);
-
- /* setup the texture objects */
- for (i = 0; i < NumUnits; i++) {
-
- glActiveTextureARB(GL_TEXTURE0_ARB + i);
-
- glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj[i]);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV,
- GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV,
- GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_S, wrap);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_WRAP_T, wrap);
-
- if (i == 0) {
- GLubyte *img = LoadRGBImage(TEXTURE_0_FILE, &Width[0], &Height[0],
- &Format[0]);
- if (!img) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
- printf("Texture %d: %s (%d x %d)\n", i,
- TEXTURE_0_FILE, Width[0], Height[0]);
- glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB,
- Width[0], Height[0], 0,
- Format[0], GL_UNSIGNED_BYTE, img);
- }
- else {
- GLubyte *img = LoadRGBImage(TEXTURE_1_FILE, &Width[1], &Height[1],
- &Format[1]);
- if (!img) {
- printf("Error: couldn't load texture image\n");
- exit(1);
- }
- printf("Texture %d: %s (%d x %d)\n", i,
- TEXTURE_1_FILE, Width[1], Height[1]);
- glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB,
- Width[1], Height[1], 0,
- Format[1], GL_UNSIGNED_BYTE, img);
- }
-
- if (i < 1)
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
- else
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
-
- if (TexEnabled[i])
- glEnable(GL_TEXTURE_RECTANGLE_NV);
- }
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- GLint i;
-
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Animate)
- glutIdleFunc( Idle );
-
- glutCreateMenu(ModeMenu);
-
- for (i = 0; i < NumUnits; i++) {
- char s[100];
- sprintf(s, "Toggle Texture %d", i);
- glutAddMenuEntry(s, TEX0 + i);
- }
- glutAddMenuEntry("Toggle Animation", ANIMATE);
- glutAddMenuEntry("GL_CLAMP", CLAMP);
- glutAddMenuEntry("GL_CLAMP_TO_EDGE", CLAMP_TO_EDGE);
- glutAddMenuEntry("GL_CLAMP_TO_BORDER", CLAMP_TO_BORDER);
- glutAddMenuEntry("GL_NEAREST", NEAREST_FILTER);
- glutAddMenuEntry("GL_LINEAR", LINEAR_FILTER);
- glutAddMenuEntry("Quit", QUIT);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/texwrap.c b/progs/tests/texwrap.c
deleted file mode 100644
index bb26635d67..0000000000
--- a/progs/tests/texwrap.c
+++ /dev/null
@@ -1,354 +0,0 @@
-
-/*
- * Test texture wrap modes.
- * Press 'b' to toggle texture image borders. You should see the same
- * rendering whether or not you're using borders.
- *
- * Brian Paul March 2001
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-#ifndef GL_CLAMP_TO_BORDER
-#define GL_CLAMP_TO_BORDER 0x812D
-#endif
-
-#ifndef GL_MIRRORED_REPEAT
-#define GL_MIRRORED_REPEAT 0x8370
-#endif
-
-#ifndef GL_EXT_texture_mirror_clamp
-#define GL_MIRROR_CLAMP_EXT 0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
-#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
-#endif
-
-#define BORDER_TEXTURE 1
-#define NO_BORDER_TEXTURE 2
-#define COLOR_TEX_CORNERS 0
-
-#define SIZE 8
-static GLubyte BorderImage[SIZE+2][SIZE+2][4];
-static GLubyte NoBorderImage[SIZE][SIZE][4];
-static GLuint Border = 0;
-
-#define TILE_SIZE 110
-
-#define WRAP_MODE(m) { m , # m, GL_TRUE, 1.0, { NULL, NULL } }
-#define WRAP_EXT(m,e1,e2,v) { m , # m, GL_FALSE, v, { e1, e2 } }
-
-struct wrap_mode {
- GLenum mode;
- const char * name;
- GLboolean supported;
- GLfloat version;
- const char * extension_names[2];
-};
-
-static struct wrap_mode modes[] = {
- WRAP_MODE( GL_REPEAT ),
- WRAP_MODE( GL_CLAMP ),
- WRAP_EXT ( GL_CLAMP_TO_EDGE, "GL_EXT_texture_edge_clamp",
- "GL_SGIS_texture_edge_clamp",
- 1.2 ),
- WRAP_EXT ( GL_CLAMP_TO_BORDER, "GL_ARB_texture_border_clamp",
- "GL_SGIS_texture_border_clamp",
- 1.3 ),
- WRAP_EXT ( GL_MIRRORED_REPEAT, "GL_ARB_texture_mirrored_repeat",
- "GL_IBM_texture_mirrored_repeat",
- 1.4 ),
- WRAP_EXT ( GL_MIRROR_CLAMP_EXT, "GL_ATI_texture_mirror_once",
- "GL_EXT_texture_mirror_clamp",
- 999.0 ),
- WRAP_EXT ( GL_MIRROR_CLAMP_TO_BORDER_EXT, "GL_EXT_texture_mirror_clamp",
- NULL,
- 999.0 ),
- WRAP_EXT ( GL_MIRROR_CLAMP_TO_EDGE_EXT, "GL_ATI_texture_mirror_once",
- "GL_EXT_texture_mirror_clamp",
- 999.0 ),
- { 0, NULL, GL_FALSE, 0.0, { NULL, NULL } }
-};
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void Display( void )
-{
- GLenum i, j;
- GLint offset;
- GLfloat version;
-
- /* Fill in the extensions that are supported.
- */
-
- version = atof( (char *) glGetString( GL_VERSION ) );
- for ( i = 0 ; modes[i].mode != 0 ; i++ ) {
- if ( ((modes[i].extension_names[0] != NULL)
- && glutExtensionSupported(modes[i].extension_names[0]))
- || ((modes[i].extension_names[1] != NULL)
- && glutExtensionSupported(modes[i].extension_names[1])) ) {
- modes[i].supported = GL_TRUE;
- }
- else if ( !modes[i].supported && (modes[i].version <= version) ) {
- fprintf( stderr, "WARNING: OpenGL library meets minimum version\n"
- " requirement for %s, but the\n"
- " extension string is not advertised.\n"
- " (%s%s%s)\n",
- modes[i].name,
- modes[i].extension_names[0],
- (modes[i].extension_names[1] != NULL)
- ? " or " : "",
- (modes[i].extension_names[1] != NULL)
- ? modes[i].extension_names[1] : "" );
- modes[i].supported = GL_TRUE;
- }
- }
-
-
- glClearColor(0.5, 0.5, 0.5, 1.0);
- glClear( GL_COLOR_BUFFER_BIT );
-
-#if 0
- /* draw texture as image */
- glDisable(GL_TEXTURE_2D);
- glWindowPos2iARB(1, 1);
- glDrawPixels(6, 6, GL_RGBA, GL_UNSIGNED_BYTE, (void *) TexImage);
-#endif
-
- glBindTexture(GL_TEXTURE_2D, Border ? BORDER_TEXTURE : NO_BORDER_TEXTURE);
-
-
- /* loop over min/mag filters */
- for (i = 0; i < 2; i++) {
- offset = 0;
-
- if (i) {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- }
- else {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- }
-
- /* loop over border modes */
- for (j = 0; modes[j].mode != 0; j++) {
- const GLfloat x0 = 0, y0 = 0, x1 = (TILE_SIZE - 10), y1 = (TILE_SIZE - 10);
- const GLfloat b = 1.2;
- const GLfloat s0 = -b, t0 = -b, s1 = 1.0+b, t1 = 1.0+b;
-
- if ( modes[j].supported != GL_TRUE )
- continue;
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, modes[j].mode);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, modes[j].mode);
-
- glPushMatrix();
- glTranslatef(offset * TILE_SIZE + 10, i * TILE_SIZE + 40, 0);
- offset++;
-
- glEnable(GL_TEXTURE_2D);
- glColor3f(1, 1, 1);
- glBegin(GL_POLYGON);
- glTexCoord2f(s0, t0); glVertex2f(x0, y0);
- glTexCoord2f(s1, t0); glVertex2f(x1, y0);
- glTexCoord2f(s1, t1); glVertex2f(x1, y1);
- glTexCoord2f(s0, t1); glVertex2f(x0, y1);
- glEnd();
-
- /* draw red outline showing bounds of texture at s=0,1 and t=0,1 */
- glDisable(GL_TEXTURE_2D);
- glColor3f(1, 0, 0);
- glBegin(GL_LINE_LOOP);
- glVertex2f(x0 + b * (x1-x0) / (s1-s0), y0 + b * (y1-y0) / (t1-t0));
- glVertex2f(x1 - b * (x1-x0) / (s1-s0), y0 + b * (y1-y0) / (t1-t0));
- glVertex2f(x1 - b * (x1-x0) / (s1-s0), y1 - b * (y1-y0) / (t1-t0));
- glVertex2f(x0 + b * (x1-x0) / (s1-s0), y1 - b * (y1-y0) / (t1-t0));
- glEnd();
-
- glPopMatrix();
- }
- }
-
- glDisable(GL_TEXTURE_2D);
- glColor3f(1, 1, 1);
- offset = 0;
- for (i = 0; modes[i].mode != 0; i++) {
- if ( modes[i].supported ) {
- glWindowPos2iARB( offset * TILE_SIZE + 10, 5 + ((offset & 1) * 15) );
- PrintString(modes[i].name);
- offset++;
- }
- }
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0, width, 0, height, -1, 1);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'b':
- Border = !Border;
- printf("Texture Border Size = %d\n", Border);
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const GLubyte border[4] = { 0, 255, 0, 255 };
- static const GLfloat borderf[4] = { 0, 1.0, 0, 1.0 };
- GLint i, j;
-
- for (i = 0; i < SIZE+2; i++) {
- for (j = 0; j < SIZE+2; j++) {
- if (i == 0 || j == 0 || i == SIZE+1 || j == SIZE+1) {
- /* border color */
- BorderImage[i][j][0] = border[0];
- BorderImage[i][j][1] = border[1];
- BorderImage[i][j][2] = border[2];
- BorderImage[i][j][3] = border[3];
- }
- else if ((i + j) & 1) {
- /* white */
- BorderImage[i][j][0] = 255;
- BorderImage[i][j][1] = 255;
- BorderImage[i][j][2] = 255;
- BorderImage[i][j][3] = 255;
- }
- else {
- /* black */
- BorderImage[i][j][0] = 0;
- BorderImage[i][j][1] = 0;
- BorderImage[i][j][2] = 0;
- BorderImage[i][j][3] = 0;
- }
- }
- }
-
- 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++) {
-#if COLOR_TEX_CORNERS
- if (i == 0 && j == 0) {
- /* lower-left texel = RED */
- NoBorderImage[i][j][0] = 255;
- NoBorderImage[i][j][1] = 0;
- NoBorderImage[i][j][2] = 0;
- NoBorderImage[i][j][3] = 255;
- }
- else if (i == 0 && j == SIZE-1) {
- /* lower-right corner = GREEN */
- NoBorderImage[i][j][0] = 0;
- NoBorderImage[i][j][1] = 255;
- NoBorderImage[i][j][2] = 0;
- NoBorderImage[i][j][3] = 255;
- }
- else if (i == SIZE-1 && j == 0) {
- /* upper-left corner = BLUE */
- NoBorderImage[i][j][0] = 0;
- NoBorderImage[i][j][1] = 0;
- NoBorderImage[i][j][2] = 255;
- NoBorderImage[i][j][3] = 255;
- }
- else if (i == SIZE-1 && j == SIZE-1) {
- /* upper-right corner = YELLOW */
- NoBorderImage[i][j][0] = 255;
- NoBorderImage[i][j][1] = 255;
- NoBorderImage[i][j][2] = 0;
- NoBorderImage[i][j][3] = 255;
- }
- else
-#endif
- if ((i + j) & 1) {
- /* white */
- NoBorderImage[i][j][0] = 255;
- NoBorderImage[i][j][1] = 255;
- NoBorderImage[i][j][2] = 255;
- NoBorderImage[i][j][3] = 255;
- }
- else {
- /* black */
- NoBorderImage[i][j][0] = 0;
- NoBorderImage[i][j][1] = 0;
- NoBorderImage[i][j][2] = 0;
- NoBorderImage[i][j][3] = 0;
- }
- }
- }
-
- glBindTexture(GL_TEXTURE_2D, NO_BORDER_TEXTURE);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE, SIZE, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, (void *) NoBorderImage);
- glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderf);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 1000, 270 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/tkmap.c b/progs/tests/tkmap.c
deleted file mode 100644
index 3ded79caca..0000000000
--- a/progs/tests/tkmap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-
-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/unfilledclip.c b/progs/tests/unfilledclip.c
deleted file mode 100644
index 331cbf2f6b..0000000000
--- a/progs/tests/unfilledclip.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * 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 (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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static int win_width, win_height;
-
-#if 0
-static void
-line(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
-{
- glBegin(GL_LINES);
- glVertex2f(x1, y1);
- glVertex2f(x2, y2);
- glEnd();
-}
-#endif
-
-static void
-line3(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2)
-{
- glBegin(GL_LINES);
- glVertex3f(x1, y1, z1);
- glVertex3f(x2, y2, z2);
- glEnd();
-}
-
-static void
-display(void)
-{
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- glColor3f(1.0, 0.0, 0.0);
- /* clipped along xmin */
- glBegin(GL_TRIANGLES);
- glVertex2f(-20, win_height / 2 - 20);
- glVertex2f(20, win_height / 2);
- glVertex2f(-20, win_height / 2 + 20);
- glEnd();
-
- glColor3f(0.0, 1.0, 0.0);
- /* clipped along ymax */
- glBegin(GL_TRIANGLES);
- glVertex2f(win_height / 2 - 20, win_height + 20);
- glVertex2f(win_height / 2, win_height - 20);
- glVertex2f(win_height / 2 + 20, win_height + 20);
- glEnd();
-
- glColor3f(0.0, 0.0, 1.0);
- /* clipped along xmax */
- glBegin(GL_TRIANGLES);
- glVertex2f(win_height + 20, win_height / 2 - 20);
- glVertex2f(win_height - 20, win_height / 2);
- glVertex2f(win_height + 20, win_height / 2 + 20);
- glEnd();
-
- glColor3f(1.0, 1.0, 1.0);
- /* clipped along ymin */
- glBegin(GL_TRIANGLES);
- glVertex2f(win_height / 2 - 20, -20);
- glVertex2f(win_height / 2, 20);
- glVertex2f(win_height / 2 + 20, -20);
- glEnd();
-
- /* clipped along near */
- glColor3f(1.0, 0.0, 1.0);
- glBegin(GL_TRIANGLES);
- glVertex3f(win_width / 2 - 20, win_height / 2 - 20, 0.5);
- glVertex3f(win_width / 2 - 40, win_height / 2, -0.5);
- glVertex3f(win_width / 2 - 20, win_height / 2 + 20, 0.5);
- glEnd();
-
- /* clipped along far */
- glColor3f(0.0, 1.0, 1.0);
- glBegin(GL_TRIANGLES);
- glVertex3f(win_width / 2 + 20, win_height / 2 - 20, 0.5);
- glVertex3f(win_width / 2 + 40, win_height / 2, 1.5);
- glVertex3f(win_width / 2 + 20, win_height / 2 + 20, 0.5);
- glEnd();
-
- /* entirely clipped along near/far */
- glColor3f(.5, .5, .5);
- glBegin(GL_TRIANGLES);
- glVertex3f(win_width / 2 - 20, win_height / 2 + 20, -0.5);
- glVertex3f(win_width / 2, win_height / 2 + 40, -0.5);
- glVertex3f(win_width / 2 + 20, win_height / 2 + 20, -0.5);
- glEnd();
-
- glBegin(GL_TRIANGLES);
- glVertex3f(win_width / 2 - 20, win_height / 2 - 20, 1.5);
- glVertex3f(win_width / 2, win_height / 2 - 40, 1.5);
- glVertex3f(win_width / 2 + 20, win_height / 2 - 20, 1.5);
- glEnd();
-
- glColor3f(.5, .5, .5);
- line3(win_width / 2, win_height / 2 - 20, 1.5,
- win_width / 2, win_height / 2 + 20, 1.5);
-
- glColor3f(1.0, 1.0, 0.0);
- /* clipped along both x and y limits */
- glBegin(GL_TRIANGLES); /* xmin, ymin */
- glVertex2f(-5, 20);
- glVertex2f(20, 20);
- glVertex2f(20, -5);
- glEnd();
- glBegin(GL_TRIANGLES); /* xmin, ymax */
- glVertex2f(-5, win_height - 20);
- glVertex2f(20, win_height - 20);
- glVertex2f(20, win_height + 5);
- glEnd();
- glBegin(GL_TRIANGLES); /* xmax, ymax */
- glVertex2f(win_width - 20, win_height + 5);
- glVertex2f(win_width - 20, win_height - 20);
- glVertex2f(win_width + 5, win_height - 20);
- glEnd();
- glBegin(GL_TRIANGLES); /* xmax, ymin */
- glVertex2f(win_width + 5, 20);
- glVertex2f(win_width - 20, 20);
- glVertex2f(win_width - 20, -5);
- glEnd();
-
- glutSwapBuffers();
-}
-
-static void
-reshape(int width, int height)
-{
- win_width = width;
- win_height = height;
- glViewport(0, 0, width, height);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, win_width, 0, win_height, 0.0, -1.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(.25, .25, 0);
-}
-
-static void key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
-
- switch (key) {
- case 27: /* esc */
- exit(0);
- break;
- }
-
- glutPostRedisplay();
-}
-
-static void
-init(void)
-{
-}
-
-int
-main(int argc, char *argv[])
-{
- win_width = 200;
- win_height = 200;
-
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(win_width, win_height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(key);
- glutDisplayFunc(display);
-
- init();
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vao-01.c b/progs/tests/vao-01.c
deleted file mode 100644
index bacae70bb5..0000000000
--- a/progs/tests/vao-01.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2006
- * 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
- * IBM 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.
- */
-
-/**
- * \file vao-01.c
- *
- * Simple test of APPLE_vertex_array_object functionality. This test creates
- * a VAO, pushed it (via \c glPushClientAttrib), modifies the VAO, then pops
- * it (via \c glPopClientAttrib). After popping, the state of the VAO is
- * examined.
- *
- * According to the APPLE_vertex_array_object spec, the contents of the VAO
- * should be restored to the values that they had when pushed.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-#ifdef __darwin__
-#include <GLUT/glut.h>
-
-typedef void (* PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
-typedef void (* PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
-typedef void (* PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (* PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
-
-#else
-#include <GL/glew.h>
-#include <GL/glut.h>
-#endif
-
-static PFNGLBINDVERTEXARRAYAPPLEPROC bind_vertex_array = NULL;
-static PFNGLGENVERTEXARRAYSAPPLEPROC gen_vertex_arrays = NULL;
-static PFNGLDELETEVERTEXARRAYSAPPLEPROC delete_vertex_arrays = NULL;
-static PFNGLISVERTEXARRAYAPPLEPROC is_vertex_array = NULL;
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
-}
-
-
-static void Idle( void )
-{
-}
-
-
-static void Visible( int vis )
-{
- if ( vis == GLUT_VISIBLE ) {
- glutIdleFunc( Idle );
- }
- else {
- glutIdleFunc( NULL );
- }
-}
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- GLuint obj;
- int pass = 1;
- void * ptr;
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n\n", ver_string);
-
- if ( !glutExtensionSupported("GL_APPLE_vertex_array_object") ) {
- printf("Sorry, this program requires GL_APPLE_vertex_array_object\n");
- exit(2);
- }
-
- bind_vertex_array = (PFNGLBINDVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glBindVertexArrayAPPLE" );
- gen_vertex_arrays = (PFNGLGENVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glGenVertexArraysAPPLE" );
- delete_vertex_arrays = (PFNGLDELETEVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glDeleteVertexArraysAPPLE" );
- is_vertex_array = (PFNGLISVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glIsVertexArrayAPPLE" );
-
-
- (*gen_vertex_arrays)( 1, & obj );
- (*bind_vertex_array)( obj );
- glVertexPointer( 4, GL_FLOAT, sizeof(GLfloat) * 4, (void *) 0xDEADBEEF);
- glEnableClientState( GL_VERTEX_ARRAY );
-
- glPushClientAttrib( GL_CLIENT_VERTEX_ARRAY_BIT );
-
- glVertexPointer( 4, GL_FLOAT, sizeof(GLfloat) * 4, (void *) 0xBADDC0DE);
- glDisableClientState( GL_VERTEX_ARRAY );
-
- glPopClientAttrib();
-
- if ( ! glIsEnabled( GL_VERTEX_ARRAY ) ) {
- printf( "Array state is incorrectly disabled.\n" );
- pass = 0;
- }
-
- glGetPointerv( GL_VERTEX_ARRAY_POINTER, & ptr );
- if ( ptr != (void *) 0xDEADBEEF ) {
- printf( "Array pointer is incorrectly set to 0x%p.\n", ptr );
- pass = 0;
- }
-
- if ( ! pass ) {
- printf( "FAIL!\n" );
- exit(1);
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB );
- glutCreateWindow( "GL_APPLE_vertex_array_object demo" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutVisibilityFunc( Visible );
-
- Init();
-
- return 0;
-}
diff --git a/progs/tests/vao-02.c b/progs/tests/vao-02.c
deleted file mode 100644
index d085541876..0000000000
--- a/progs/tests/vao-02.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * (C) Copyright IBM Corporation 2006
- * 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
- * IBM 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.
- */
-
-/**
- * \file vao-02.c
- *
- * Simple test of APPLE_vertex_array_object functionality. This test creates
- * a VAO, pushed it (via \c glPushClientAttrib), deletes the VAO, then pops
- * it (via \c glPopClientAttrib). After popping, the state of the VAO is
- * examined.
- *
- * According to the APPLE_vertex_array_object spec, the contents of the VAO
- * should be restored to the values that they had when pushed.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-#ifdef __darwin__
-#include <GLUT/glut.h>
-
-typedef void (* PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
-typedef void (* PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
-typedef void (* PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (* PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
-
-#else
-#include <GL/glew.h>
-#include <GL/glut.h>
-#endif
-
-static PFNGLBINDVERTEXARRAYAPPLEPROC bind_vertex_array = NULL;
-static PFNGLGENVERTEXARRAYSAPPLEPROC gen_vertex_arrays = NULL;
-static PFNGLDELETEVERTEXARRAYSAPPLEPROC delete_vertex_arrays = NULL;
-static PFNGLISVERTEXARRAYAPPLEPROC is_vertex_array = NULL;
-
-static int Width = 400;
-static int Height = 200;
-static const GLfloat Near = 5.0, Far = 25.0;
-
-
-static void Display( void )
-{
-}
-
-
-static void Idle( void )
-{
-}
-
-
-static void Visible( int vis )
-{
- if ( vis == GLUT_VISIBLE ) {
- glutIdleFunc( Idle );
- }
- else {
- glutIdleFunc( NULL );
- }
-}
-static void Reshape( int width, int height )
-{
- GLfloat ar = (float) width / (float) height;
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -ar, ar, -1.0, 1.0, Near, Far );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- const char * const ver_string = (const char *)
- glGetString( GL_VERSION );
- GLuint obj;
- int pass = 1;
- void * ptr;
- GLenum err;
-
-
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_VERSION = %s\n\n", ver_string);
-
- if ( !glutExtensionSupported("GL_APPLE_vertex_array_object") ) {
- printf("Sorry, this program requires GL_APPLE_vertex_array_object\n");
- exit(2);
- }
-
- bind_vertex_array = (PFNGLBINDVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glBindVertexArrayAPPLE" );
- gen_vertex_arrays = (PFNGLGENVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glGenVertexArraysAPPLE" );
- delete_vertex_arrays = (PFNGLDELETEVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glDeleteVertexArraysAPPLE" );
- is_vertex_array = (PFNGLISVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glIsVertexArrayAPPLE" );
-
-
- (*gen_vertex_arrays)( 1, & obj );
- (*bind_vertex_array)( obj );
- glVertexPointer( 4, GL_FLOAT, sizeof(GLfloat) * 4, (void *) 0xDEADBEEF);
- glEnableClientState( GL_VERTEX_ARRAY );
-
- glPushClientAttrib( GL_CLIENT_VERTEX_ARRAY_BIT );
-
- (*delete_vertex_arrays)( 1, & obj );
-
- err = glGetError();
- if (err) {
- printf( "glGetError incorrectly returned 0x%04x.\n", err );
- pass = 0;
- }
-
- if ( (*is_vertex_array)( obj ) ) {
- printf( "Array object is incorrectly still valid.\n" );
- pass = 0;
- }
-
- err = glGetError();
- if (err) {
- printf( "glGetError incorrectly returned 0x%04x.\n", err );
- pass = 0;
- }
-
- glPopClientAttrib();
-
- err = glGetError();
- if (err) {
- printf( "glGetError incorrectly returned 0x%04x.\n", err );
- pass = 0;
- }
-
- if ( ! (*is_vertex_array)( obj ) ) {
- printf( "Array object is incorrectly invalid.\n" );
- pass = 0;
- }
-
- if ( ! glIsEnabled( GL_VERTEX_ARRAY ) ) {
- printf( "Array state is incorrectly disabled.\n" );
- pass = 0;
- }
-
- glGetPointerv( GL_VERTEX_ARRAY_POINTER, & ptr );
- if ( ptr != (void *) 0xDEADBEEF ) {
- printf( "Array pointer is incorrectly set to 0x%p.\n", ptr );
- pass = 0;
- }
-
- if ( ! pass ) {
- printf( "FAIL!\n" );
- exit(1);
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( Width, Height );
- glutInitDisplayMode( GLUT_RGB );
- glutCreateWindow( "GL_APPLE_vertex_array_object demo" );
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutVisibilityFunc( Visible );
-
- Init();
-
- return 0;
-}
diff --git a/progs/tests/vparray.c b/progs/tests/vparray.c
deleted file mode 100644
index 75160afd46..0000000000
--- a/progs/tests/vparray.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Test vertex arrays with GL_NV_vertex_program
- *
- * Based on a stripped-down version of the isosurf demo.
- * The vertex program is trivial: compute the resulting
- * RGB color as a linear function of vertex XYZ.
- */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "GL/glew.h"
-#include "GL/glut.h"
-
-#define MAXVERTS 10000
-static float data[MAXVERTS][6];
-static GLint numverts;
-
-static GLfloat xrot;
-static GLfloat yrot;
-static GLboolean useArrays = GL_TRUE;
-static GLboolean useProgram = GL_TRUE;
-static GLboolean useList = GL_FALSE;
-
-
-static void read_surface( char *filename )
-{
- FILE *f;
-
- f = fopen(filename,"r");
- if (!f) {
- printf("couldn't read %s\n", filename);
- exit(1);
- }
-
- numverts = 0;
- while (numverts < MAXVERTS) {
- int result;
- result = fscanf( f, "%f %f %f %f %f %f",
- &data[numverts][0], &data[numverts][1], &data[numverts][2],
- &data[numverts][3], &data[numverts][4], &data[numverts][5] );
- if (result == EOF) {
- break;
- }
- numverts++;
- }
-
- printf("%d vertices, %d triangles\n", numverts, numverts-2);
- printf("data = %p\n", (void *) data);
- fclose(f);
-}
-
-
-
-
-static void Display(void)
-{
- if (useProgram)
- glEnable(GL_VERTEX_PROGRAM_NV);
- else
- glDisable(GL_VERTEX_PROGRAM_NV);
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(xrot, 1, 0, 0);
- glRotatef(yrot, 0, 1, 0);
- glScalef(2, 2, 2);
- if (useArrays) {
- if (useProgram) {
- glVertexAttribPointerNV( 0, 3, GL_FLOAT, 6 * sizeof(GLfloat), data );
- glEnableClientState( GL_VERTEX_ATTRIB_ARRAY0_NV );
- glVertexAttribPointerNV( 2, 3, GL_FLOAT, 6 * sizeof(GLfloat), ((GLfloat *) data) + 3);
- glEnableClientState( GL_VERTEX_ATTRIB_ARRAY2_NV);
- }
- else {
- glVertexPointer( 3, GL_FLOAT, 6 * sizeof(GLfloat), data );
- glEnableClientState( GL_VERTEX_ARRAY );
- glNormalPointer( GL_FLOAT, 6 * sizeof(GLfloat), ((GLfloat *) data) + 3);
- glEnableClientState( GL_NORMAL_ARRAY );
- }
-
- if (useList) {
- /* dumb, but a good test */
- glNewList(1,GL_COMPILE);
- glDrawArrays(GL_TRIANGLE_STRIP, 0, numverts);
- glEndList();
- glCallList(1);
- }
- else {
- glDrawArrays(GL_TRIANGLE_STRIP, 0, numverts);
- }
-
- glDisableClientState( GL_VERTEX_ATTRIB_ARRAY0_NV );
- glDisableClientState( GL_VERTEX_ATTRIB_ARRAY2_NV);
- glDisableClientState( GL_VERTEX_ARRAY );
- glDisableClientState( GL_NORMAL_ARRAY );
- }
- else {
- int i;
- glBegin(GL_TRIANGLE_STRIP);
- for (i = 0; i < numverts; i++) {
- glNormal3fv( data[i] + 3 );
- glVertex3fv( data[i] + 0 );
- }
- glEnd();
- }
- glPopMatrix();
-
- if (glGetError())
- printf("Error!\n");
-
- glutSwapBuffers();
-}
-
-
-static void InitMaterials(void)
-{
- static float ambient[] = {0.1, 0.1, 0.1, 1.0};
- static float diffuse[] = {0.5, 1.0, 1.0, 1.0};
- static float position0[] = {0.0, 0.0, 20.0, 0.0};
- static float position1[] = {0.0, 0.0, -20.0, 0.0};
- static float front_mat_shininess[] = {60.0};
- static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0};
- static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0};
- /*
- static float back_mat_shininess[] = {60.0};
- static float back_mat_specular[] = {0.5, 0.5, 0.2, 1.0};
- static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0};
- */
- static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0};
- static float lmodel_twoside[] = {GL_FALSE};
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
- glLightfv(GL_LIGHT0, GL_POSITION, position0);
- glEnable(GL_LIGHT0);
-
- glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
- glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
- glLightfv(GL_LIGHT1, GL_POSITION, position1);
- glEnable(GL_LIGHT1);
-
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
- glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_mat_shininess);
- glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_mat_specular);
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, front_mat_diffuse);
- glEnable(GL_LIGHTING);
-}
-
-
-static void init_program(void)
-{
- /*
- * c[0..3] = modelview matrix
- * c[4..7] = inverse modelview matrix
- * c[30] = color scale
- * c[31] = color bias
- */
- static const char prog[] =
- "!!VP1.0\n"
-
- "# RGB is proportional to XYZ \n"
-
- "MUL R0, v[OPOS], c[30]; \n"
- "ADD o[COL0], R0, c[31]; \n"
-
- "# Continue with typical modelview/projection\n"
- "MOV R3, v[OPOS]; \n"
- "DP4 o[HPOS].x, c[0], R3 ; # object x MVP -> clip\n"
- "DP4 o[HPOS].y, c[1], R3 ;\n"
- "DP4 o[HPOS].z, c[2], R3 ;\n"
- "DP4 o[HPOS].w, c[3], R3 ;\n"
-
- "END";
-
- static const GLfloat scale[4] = {2.0, 2.0, 2.0, 0.0};
- static const GLfloat bias[4] = {1.0, 1.0, 1.0, 0.0};
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog), (const GLubyte *) prog);
- assert(glIsProgramNV(1));
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
-
- /* Load the program registers */
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
-
- glProgramParameter4fvNV(GL_VERTEX_PROGRAM_NV, 30, scale);
- glProgramParameter4fvNV(GL_VERTEX_PROGRAM_NV, 31, bias);
-}
-
-
-static void init(void)
-{
- xrot = 0;
- yrot = 0;
- glClearColor(0.0, 0.0, 1.0, 0.0);
- glEnable( GL_DEPTH_TEST );
- glEnable(GL_NORMALIZE);
- InitMaterials();
- read_surface( "../demos/isosurf.dat" );
- init_program();
-}
-
-
-static void Reshape(int width, int height)
-{
- glViewport(0, 0, (GLint)width, (GLint)height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum( -1.0, 1.0, -1.0, 1.0, 5, 25 );
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0, 0, -15);
-}
-
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- case 'a':
- useArrays = !useArrays;
- printf("use arrays: %s\n", useArrays ? "yes" : "no");
- break;
- case 'l':
- useList = !useList;
- printf("use list: %s\n", useList ? "yes" : "no");
- break;
- case 'p':
- useProgram = !useProgram;
- printf("use program: %s\n", useProgram ? "yes" : "no");
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case GLUT_KEY_LEFT:
- yrot -= 15.0;
- break;
- case GLUT_KEY_RIGHT:
- yrot += 15.0;
- break;
- case GLUT_KEY_UP:
- xrot += 15.0;
- break;
- case GLUT_KEY_DOWN:
- xrot -= 15.0;
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-
-
-int main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode( GLUT_DEPTH | GLUT_RGB | GLUT_DOUBLE );
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(400, 400);
- if (glutCreateWindow("Isosurface") <= 0) {
- exit(0);
- }
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Display);
-
- init();
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vpeval.c b/progs/tests/vpeval.c
deleted file mode 100644
index a4024b5336..0000000000
--- a/progs/tests/vpeval.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Vertex program evaluators test.
- * Based on book/bezmesh.c
- *
- * Brian Paul
- * 22 June 2002
- */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-/*
- * Transform position by modelview/projection.
- * Square incoming color.
- */
-static const char prog[] =
-"!!VP1.0\n"
-
-"# Typical modelview/projection\n"
-"DP4 o[HPOS].x, c[0], v[OPOS] ; # object x MVP -> clip\n"
-"DP4 o[HPOS].y, c[1], v[OPOS] ;\n"
-"DP4 o[HPOS].z, c[2], v[OPOS] ;\n"
-"DP4 o[HPOS].w, c[3], v[OPOS] ;\n"
-
-"MOV R0, v[COL0];\n # square the color\n"
-"MUL R0, R0, R0;\n"
-"MOV o[COL0], R0;\n # store output color\n"
-
-"END";
-
-
-static int program = 1;
-
-
-GLfloat ctrlpoints[4][4][4] =
-{
- {
- {-1.5, -1.5, 4.0, 1.0},
- {-0.5, -1.5, 2.0, 1.0},
- {0.5, -1.5, -1.0, 1.0},
- {1.5, -1.5, 2.0, 1.0}},
- {
- {-1.5, -0.5, 1.0, 1.0},
- {-0.5, -0.5, 3.0, 1.0},
- {0.5, -0.5, 0.0, 1.0},
- {1.5, -0.5, -1.0, 1.0}},
- {
- {-1.5, 0.5, 4.0, 1.0},
- {-0.5, 0.5, 0.0, 1.0},
- {0.5, 0.5, 3.0, 1.0},
- {1.5, 0.5, 4.0, 1.0}},
- {
- {-1.5, 1.5, -2.0, 1.0},
- {-0.5, 1.5, -2.0, 1.0},
- {0.5, 1.5, 0.0, 1.0},
- {1.5, 1.5, -1.0, 1.0}}
-};
-
-/*
- * +-------------+
- * |green |yellow
- * | |
- * | |
- * |black |red
- * +-------------+
- */
-GLfloat colorPoints[4][4][4] =
-{
- {
- {0.0, 0.0, 0.0, 1.0},
- {0.3, 0.0, 0.0, 1.0},
- {0.6, 0.0, 0.0, 1.0},
- {1.0, 0.0, 0.0, 1.0}},
- {
- {0.0, 0.3, 0.0, 1.0},
- {0.3, 0.3, 0.0, 1.0},
- {0.6, 0.3, 0.0, 1.0},
- {1.0, 0.3, 0.0, 1.0}},
- {
- {0.0, 0.6, 0.0, 1.0},
- {0.3, 0.6, 0.0, 1.0},
- {0.6, 0.6, 0.0, 1.0},
- {1.0, 0.6, 0.0, 1.0}},
- {
- {0.0, 1.0, 0.0, 1.0},
- {0.3, 1.0, 0.0, 1.0},
- {0.6, 1.0, 0.0, 1.0},
- {1.0, 1.0, 0.0, 1.0}}
-};
-
-
-static void
-initlights(void)
-{
-#if 0 /* no lighting for now */
- GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0};
- GLfloat position[] = {0.0, 0.0, 2.0, 1.0};
- GLfloat mat_diffuse[] = {0.6, 0.6, 0.6, 1.0};
- GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
- GLfloat mat_shininess[] = {50.0};
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
- glLightfv(GL_LIGHT0, GL_POSITION, position);
-
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
-#endif
-}
-
-static void
-display(void)
-{
- glClearColor(.3, .3, .3, 0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
-#if 1
- glRotatef(85.0, 1.0, 1.0, 1.0);
-#endif
- glEvalMesh2(GL_FILL, 0, 8, 0, 8);
- glPopMatrix();
- glFlush();
-}
-
-static void
-myinit(int argc, char *argv[])
-{
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glEnable(GL_DEPTH_TEST);
-
- initlights(); /* for lighted version only */
-
- glMapGrid2f(8, 0.0, 1.0, 8, 0.0, 1.0);
-
- if (argc > 1)
- program = 0;
-
- printf("Using vertex program attribs? %s\n", program ? "yes" : "no");
-
- if (program && !glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- if (!program) {
- glMap2f(GL_MAP2_VERTEX_4,
- 0.0, 1.0, 4, 4,
- 0.0, 1.0, 16, 4, &ctrlpoints[0][0][0]);
- glMap2f(GL_MAP2_COLOR_4,
- 0.0, 1.0, 4, 4,
- 0.0, 1.0, 16, 4, &colorPoints[0][0][0]);
- glEnable(GL_MAP2_VERTEX_4);
- glEnable(GL_MAP2_COLOR_4);
- /*
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- */
- }
- else {
- glMap2f(GL_MAP2_VERTEX_ATTRIB0_4_NV,
- 0.0, 1.0, 4, 4,
- 0.0, 1.0, 16, 4, &ctrlpoints[0][0][0]);
- glMap2f(GL_MAP2_VERTEX_ATTRIB3_4_NV,
- 0.0, 1.0, 4, 4,
- 0.0, 1.0, 16, 4, &colorPoints[0][0][0]);
- glEnable(GL_MAP2_VERTEX_ATTRIB0_4_NV);
- glEnable(GL_MAP2_VERTEX_ATTRIB3_4_NV);
-
- /*
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- */
-
- /* vertex program init */
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog), (const GLubyte *) prog);
- assert(glIsProgramNV(1));
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
-
- /* track matrices */
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
- glEnable(GL_VERTEX_PROGRAM_NV);
- }
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-4.0, 4.0, -4.0 * (GLfloat) h / (GLfloat) w,
- 4.0 * (GLfloat) h / (GLfloat) w, -4.0, 4.0);
- else
- glOrtho(-4.0 * (GLfloat) w / (GLfloat) h,
- 4.0 * (GLfloat) w / (GLfloat) h, -4.0, 4.0, -4.0, 4.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowPosition(0, 0);
- glutCreateWindow(argv[0]);
- glewInit();
- myinit(argc, argv);
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/tests/vptest1.c b/progs/tests/vptest1.c
deleted file mode 100644
index d83f9cae37..0000000000
--- a/progs/tests/vptest1.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Test glGenProgramsNV(), glIsProgramNV(), glLoadProgramNV() */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
-
- glBegin(GL_POLYGON);
- glVertexAttrib2fNV(0, -1, -1);
- glVertexAttrib2fNV(0, 1, -1);
- glVertexAttrib2fNV(0, 0, 1);
- glEnd();
-
- 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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const char *prog1 =
- "!!VP1.0\n"
- "MUL o[COL0].xyz, R0, c[35]; \n"
- "END\n";
- static const char *prog2 =
- "!!VP1.0\n"
- "#\n"
- "# c[0-3] = modelview projection (composite) matrix\n"
- "# c[32] = normalized light direction in object-space\n"
- "# c[35] = yellow diffuse material, (1.0, 1.0, 0.0, 1.0)\n"
- "# c[64].x = 0.0\n"
- "# c[64].z = 0.125, a scaling factor\n"
- "#\n"
- "# outputs diffuse illumination for color and perturbed position\n"
- "#\n"
- "DP3 R0, c[32], v[NRML]; # light direction DOT normal\n"
- "MUL o[COL0].xyz, R0, c[35]; \n"
- "MAX R0, c[64].x, R0; \n"
- "MUL R0, R0, v[NRML]; \n"
- "MUL R0, R0, c[64].z; \n"
- "ADD R1, v[OPOS], -R0; # perturb object space position\n"
- "DP4 o[HPOS].x, c[0], R1; \n"
- "DP4 o[HPOS].y, c[1], R1; \n"
- "DP4 o[HPOS].z, c[2], R1; \n"
- "DP4 o[HPOS].w, c[3], R1; \n"
- "END\n";
- static const char *prog3 =
- "!!VP1.0\n"
- "DP4 o[HPOS].x, c[0], v[OPOS];\n"
- "DP4 o[HPOS].y, c[1], v[OPOS];\n"
- "DP4 o[HPOS].z, c[2], v[OPOS];\n"
- "DP4 o[HPOS].w, c[3], v[OPOS];\n"
- "DP3 R0.x, c[4], v[NRML];\n"
- "DP3 R0.y, c[5], v[NRML]; \n"
- "DP3 R0.z, c[6], v[NRML]; # R0 = n' = transformed normal\n"
- "DP3 R1.x, c[32], R0; # R1.x = Lpos DOT n'\n"
- "DP3 R1.y, c[33], R0; # R1.y = hHat DOT n'\n"
- "MOV R1.w, c[38].x; # R1.w = specular power\n"
- "LIT R2, R1; # Compute lighting values\n"
- "MAD R3, c[35].x, R2.y, c[35].y; # diffuse + emissive\n"
- "MAD o[COL0].xyz, c[36], R2.z, R3; # + specular\n"
- "END\n";
- static const char *prog4 =
- "!!VP1.0\n"
- "DP4 R2, R3, c[A0.x];\n"
- "DP4 R2, R3, c[A0.x + 5];\n"
- "DP4 o[HPOS], R3, c[A0.x - 4];\n"
- "END\n";
- static const char *prog5 =
- "!!VSP1.0\n"
- "DP4 R2, R3, c[A0.x];\n"
- "DP4 R2, R3, v[0];\n"
- "DP4 c[3], R3, R2;\n"
- "END\n";
-
-
- GLuint progs[5];
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- glGenProgramsNV(2, progs);
- assert(progs[0]);
- assert(progs[1]);
- assert(progs[0] != progs[1]);
-
- glGenProgramsNV(3, progs + 2);
- assert(progs[2]);
- assert(progs[3]);
- assert(progs[2] != progs[3]);
- assert(progs[0] != progs[2]);
-
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog1),
- (const GLubyte *) prog1);
- assert(glIsProgramNV(1));
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 2,
- strlen(prog2),
- (const GLubyte *) prog2);
- assert(glIsProgramNV(2));
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 3,
- strlen(prog3),
- (const GLubyte *) prog3);
- assert(glIsProgramNV(3));
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 4,
- strlen(prog4),
- (const GLubyte *) prog4);
- assert(glIsProgramNV(4));
-
- glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 5,
- strlen(prog5),
- (const GLubyte *) prog5);
- assert(glIsProgramNV(5));
-
- printf("glGetError = %d\n", (int) glGetError());
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vptest2.c b/progs/tests/vptest2.c
deleted file mode 100644
index 89cd6b1458..0000000000
--- a/progs/tests/vptest2.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Test vertex state program execution */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
- glPushMatrix();
- glutSolidCube(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.0, 0.0, -15.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Test1( void )
-{
- static const GLfloat p[4] = {9, 8, 7, 6};
- GLfloat q[4];
- /* test addition */
- static const char *prog =
- "!!VSP1.0\n"
- "MOV R0, c[0];\n"
- "MOV R1, c[1];\n"
- "ADD c[2], R0, R1;\n"
- "END\n";
-
- glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
- strlen(prog),
- (const GLubyte *) prog);
- assert(glIsProgramNV(1));
-
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 1, 2, 3, 4);
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 1, 10, 20, 30, 40);
-
- glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
-
- glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
- printf("Result c[2] = %g %g %g %g (should be 11 22 33 44)\n",
- q[0], q[1], q[2], q[3]);
-}
-
-
-static void Test2( void )
-{
- static const GLfloat p[4] = {9, 8, 7, 6};
- GLfloat q[4];
- /* test swizzling */
- static const char *prog =
- "!!VSP1.0\n"
- "MOV R0, c[0].wzyx;\n"
- "MOV R1, c[1].wzyx;\n"
- "ADD c[2], R0, R1;\n"
- "END\n";
-
- glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
- strlen(prog),
- (const GLubyte *) prog);
- assert(glIsProgramNV(1));
-
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 1, 2, 3, 4);
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 1, 10, 20, 30, 40);
-
- glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
-
- glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
- printf("Result c[2] = %g %g %g %g (should be 44 33 22 11)\n",
- q[0], q[1], q[2], q[3]);
-}
-
-
-static void Test3( void )
-{
- static const GLfloat p[4] = {0, 0, 0, 0};
- GLfloat q[4];
- /* normalize vector */
- static const char *prog =
- "!!VSP1.0\n"
- "# c[0] = (nx,ny,nz)\n"
- "# R0.xyz = normalize(R1)\n"
- "# R0.w = 1/sqrt(nx*nx + ny*ny + nz*nz)\n"
- "# c[2] = R0\n"
- "DP3 R0.w, c[0], c[0];\n"
- "RSQ R0.w, R0.w;\n"
- "MUL R0.xyz, c[0], R0.w;\n"
- "MOV c[2], R0;\n"
- "END\n";
-
- glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
- strlen(prog),
- (const GLubyte *) prog);
- assert(glIsProgramNV(1));
-
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 0, 10, 0, 0);
-
- glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
-
- glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
- printf("Result c[2] = %g %g %g %g (should be 0, 1, 0, 0.1)\n",
- q[0], q[1], q[2], q[3]);
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 50, 50 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- Test1();
- Test2();
- Test3();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vptest3.c b/progs/tests/vptest3.c
deleted file mode 100644
index 58ce227e6e..0000000000
--- a/progs/tests/vptest3.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Test glGenProgramsNV(), glIsProgramNV(), glLoadProgramNV() */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Zrot = 0.0;
-
-
-static void Display( void )
-{
- glClearColor(0.3, 0.3, 0.3, 1);
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glEnable(GL_VERTEX_PROGRAM_NV);
-
- glLoadIdentity();
- glRotatef(Zrot, 0, 0, 1);
-
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW, GL_IDENTITY_NV);
- glPushMatrix();
-
- glVertexAttrib3fNV(3, 1, 0.5, 0.25);
- glBegin(GL_TRIANGLES);
-#if 1
- glVertexAttrib3fNV(3, 1.0, 0.0, 0.0);
- glVertexAttrib2fNV(0, -0.5, -0.5);
- glVertexAttrib3fNV(3, 0.0, 1.0, 0.0);
- glVertexAttrib2fNV(0, 0.5, -0.5);
- glVertexAttrib3fNV(3, 0.0, 0.0, 1.0);
- glVertexAttrib2fNV(0, 0, 0.5);
-#else
- glVertex2f( -1, -1);
- glVertex2f( 1, -1);
- glVertex2f( 0, 1);
-#endif
- glEnd();
-
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- /* glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );*/
- glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.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 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init( void )
-{
- static const char *prog1 =
- "!!VP1.0\n"
- "MOV o[COL0], v[COL0];\n"
-#if 0
- "MOV o[HPOS], v[OPOS];\n"
-#else
- "DP4 o[HPOS].x, v[OPOS], c[0];\n"
- "DP4 o[HPOS].y, v[OPOS], c[1];\n"
- "DP4 o[HPOS].z, v[OPOS], c[2];\n"
- "DP4 o[HPOS].w, v[OPOS], c[3];\n"
-#endif
- "END\n";
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog1),
- (const GLubyte *) prog1);
- assert(glIsProgramNV(1));
-
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
-
- printf("glGetError = %d\n", (int) glGetError());
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vptorus.c b/progs/tests/vptorus.c
deleted file mode 100644
index e61ffdac21..0000000000
--- a/progs/tests/vptorus.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * A lit, rotating torus via vertex program
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
-static GLboolean Anim = GL_TRUE;
-
-
-static void Idle( void )
-{
- Xrot += .3;
- Yrot += .4;
- Zrot += .2;
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
- glutSolidTorus(0.75, 2.0, 10, 20);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case ' ':
- Xrot = Yrot = Zrot = 0;
- break;
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- /* borrowed from an nvidia demo:
- * c[0..3] = modelview matrix
- * c[4..7] = inverse modelview matrix
- * c[32] = light pos
- * c[35] = diffuse color
- */
- static const char prog[] =
- "!!VP1.0\n"
- "#Simple transform and diffuse lighting\n"
- "\n"
- "DP4 o[HPOS].x, c[0], v[OPOS] ; # object x MVP -> clip\n"
- "DP4 o[HPOS].y, c[1], v[OPOS] ;\n"
- "DP4 o[HPOS].z, c[2], v[OPOS] ;\n"
- "DP4 o[HPOS].w, c[3], v[OPOS] ;\n"
-
- "DP3 R1.x, c[4], v[NRML] ; # normal x MV-1T -> lighting normal\n"
- "DP3 R1.y, c[5], v[NRML] ;\n"
- "DP3 R1.z, c[6], v[NRML] ;\n"
-
- "DP3 R0, c[32], R1 ; # L.N\n"
- "MUL o[COL0].xyz, R0, c[35] ; # col = L.N * diffuse\n"
- "MOV o[TEX0], v[TEX0];\n"
- "END";
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program");
- exit(1);
- }
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog), (const GLubyte *) prog);
- assert(glIsProgramNV(1));
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
-
- /* Load the program registers */
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
-
- /* Light position */
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 32, 2, 2, 4, 1);
- /* Diffuse material color */
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 35, 0.25, 0, 0.25, 1);
-
- glEnable(GL_VERTEX_PROGRAM_NV);
- glEnable(GL_DEPTH_TEST);
- glClearColor(0.3, 0.3, 0.3, 1);
-
- printf("glGetError = %d\n", (int) glGetError());
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/vpwarpmesh.c b/progs/tests/vpwarpmesh.c
deleted file mode 100644
index 80204ea136..0000000000
--- a/progs/tests/vpwarpmesh.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Warp a triangle mesh with a vertex program.
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-static float Xrot = -60.0, Yrot = 0.0, Zrot = 0.0;
-static GLboolean Anim = GL_TRUE;
-static GLfloat Phi = 0.0;
-
-
-static void Idle( void )
-{
- Phi += 0.01;
- glutPostRedisplay();
-}
-
-
-static void DrawMesh( int rows, int cols )
-{
- static const GLfloat colorA[3] = { 0, 1, 0 };
- static const GLfloat colorB[3] = { 0, 0, 1 };
- const float dx = 2.0 / (cols - 1);
- const float dy = 2.0 / (rows - 1);
- float x, y;
- int i, j;
-
-#if 1
-#define COLOR3FV(c) glVertexAttrib3fvNV(3, c)
-#define VERTEX2F(x, y) glVertexAttrib2fNV(0, x, y)
-#else
-#define COLOR3FV(c) glColor3fv(c)
-#define VERTEX2F(x, y) glVertex2f(x, y)
-#endif
-
- y = -1.0;
- for (i = 0; i < rows - 1; i++) {
- glBegin(GL_QUAD_STRIP);
- x = -1.0;
- for (j = 0; j < cols; j++) {
- if ((i + j) & 1)
- COLOR3FV(colorA);
- else
- COLOR3FV(colorB);
- VERTEX2F(x, y);
- VERTEX2F(x, y + dy);
- x += dx;
- }
- glEnd();
- y += dy;
- }
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glRotatef(Zrot, 0, 0, 1);
-
- /* Position the gravity source */
- {
- GLfloat x, y, z, r = 0.5;
- x = r * cos(Phi);
- y = r * sin(Phi);
- z = 1.0;
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 30, x, y, z, 1);
- glDisable(GL_VERTEX_PROGRAM_NV);
- glBegin(GL_POINTS);
- glColor3f(1,1,1);
- glVertex3f(x, y, z);
- glEnd();
- }
-
- glEnable(GL_VERTEX_PROGRAM_NV);
- DrawMesh(8, 8);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- float ar = (float) width / (float) height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -1.0 * ar, 1.0 * ar, -1.0, 1.0, 5.0, 25.0 );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -12.0 );
- glScalef(2, 2, 2);
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'p':
- Phi += 0.2;
- break;
- case 'z':
- Zrot -= 5.0;
- break;
- case 'Z':
- Zrot += 5.0;
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- const GLfloat step = 3.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 Init( void )
-{
- /*
- * c[0..3] = modelview matrix
- * c[4..7] = inverse modelview matrix
- * c[30] = gravity source location
- * c[31] = gravity source strength
- * c[32] = light pos
- * c[35] = diffuse color
- */
- static const char prog[] =
- "!!VP1.0\n"
-
- "# Compute distance from vertex to gravity source\n"
- "ADD R1, c[30], -v[OPOS]; # vector from vertex to gravity\n"
- "DP3 R2, R1, R1; # dot product\n"
- "RSQ R2, R2.x; # square root = distance\n"
- "MUL R2, R2, c[31].xxxx; # scale by the gravity factor\n"
-
- "# Displace vertex by gravity factor along R1 vector\n"
- "MAD R3, R1, R2, v[OPOS];\n"
-
- "# Continue with typical modelview/projection\n"
- "DP4 o[HPOS].x, c[0], R3 ; # object x MVP -> clip\n"
- "DP4 o[HPOS].y, c[1], R3 ;\n"
- "DP4 o[HPOS].z, c[2], R3 ;\n"
- "DP4 o[HPOS].w, c[3], R3 ;\n"
-
- "MOV o[COL0], v[COL0];\n # copy input color to output color\n"
-
- "END";
-
- if (!glutExtensionSupported("GL_NV_vertex_program")) {
- printf("Sorry, this program requires GL_NV_vertex_program\n");
- exit(1);
- }
-
- glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
- strlen(prog), (const GLubyte *) prog);
- assert(glIsProgramNV(1));
- glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
-
- /* Load the program registers */
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
- glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
-
- /* Light position */
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 32, 2, 2, 4, 1);
- /* Diffuse material color */
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 35, 0.25, 0, 0.25, 1);
-
- /* Gravity strength */
- glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 31, .5, 0, 0, 0);
-
- glEnable(GL_DEPTH_TEST);
- glClearColor(0.3, 0.3, 0.3, 1);
- glShadeModel(GL_FLAT);
- glPointSize(3);
- printf("glGetError = %d\n", (int) glGetError());
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowPosition( 0, 0 );
- glutInitWindowSize( 250, 250 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/yuvrect.c b/progs/tests/yuvrect.c
deleted file mode 100644
index aab2f80ed9..0000000000
--- a/progs/tests/yuvrect.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Test the GL_NV_texture_rectangle and GL_MESA_ycrcb_texture extensions.
- *
- * Brian Paul 13 September 2002
- */
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "../util/readtex.c" /* I know, this is a hack. */
-
-#define TEXTURE_FILE "../images/girl.rgb"
-
-static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
-static GLint ImgWidth, ImgHeight;
-static GLushort *ImageYUV = NULL;
-
-
-static void DrawObject(void)
-{
- glBegin(GL_QUADS);
-
- glTexCoord2f(0, 0);
- glVertex2f(-1.0, -1.0);
-
- glTexCoord2f(ImgWidth, 0);
- glVertex2f(1.0, -1.0);
-
- glTexCoord2f(ImgWidth, ImgHeight);
- glVertex2f(1.0, 1.0);
-
- glTexCoord2f(0, ImgHeight);
- glVertex2f(-1.0, 1.0);
-
- glEnd();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- DrawObject();
- 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, 10.0, 100.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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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 Init( int argc, char *argv[] )
-{
- GLuint texObj = 100;
- const char *file;
-
- if (!glutExtensionSupported("GL_NV_texture_rectangle")) {
- printf("Sorry, GL_NV_texture_rectangle is required\n");
- exit(0);
- }
-
- if (!glutExtensionSupported("GL_MESA_ycbcr_texture")) {
- printf("Sorry, GL_MESA_ycbcr_texture is required\n");
- exit(0);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj);
-#ifdef LINEAR_FILTER
- /* linear filtering looks much nicer but is much slower for Mesa */
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-#else
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-#endif
-
- if (argc > 1)
- file = argv[1];
- else
- file = TEXTURE_FILE;
-
- ImageYUV = LoadYUVImage(file, &ImgWidth, &ImgHeight);
- if (!ImageYUV) {
- printf("Couldn't read %s\n", TEXTURE_FILE);
- exit(0);
- }
-
- printf("Image: %dx%d\n", ImgWidth, ImgHeight);
-
- glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
- GL_YCBCR_MESA, ImgWidth, ImgHeight, 0,
- GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
-
- assert(glGetError() == GL_NO_ERROR);
- glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
- 0, 0, ImgWidth, ImgHeight,
- GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
-
- assert(glGetError() == GL_NO_ERROR);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glEnable(GL_TEXTURE_RECTANGLE_NV);
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/yuvsquare.c b/progs/tests/yuvsquare.c
deleted file mode 100644
index 658528b799..0000000000
--- a/progs/tests/yuvsquare.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Test the GL_NV_texture_rectangle and GL_MESA_ycrcb_texture extensions.
- *
- * Brian Paul 13 September 2002
- */
-
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-#include "../util/readtex.c" /* I know, this is a hack. */
-
-#define TEXTURE_FILE "../images/tile.rgb"
-
-static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
-static GLint ImgWidth, ImgHeight;
-static GLushort *ImageYUV = NULL;
-static GLubyte *ImageRGB = NULL;
-static const GLuint yuvObj = 100;
-static const GLuint rgbObj = 101;
-
-
-static void DrawObject(void)
-{
- glBegin(GL_QUADS);
-
- glTexCoord2f(0, 0);
- glVertex2f(-1.0, -1.0);
-
- glTexCoord2f(1, 0);
- glVertex2f(1.0, -1.0);
-
- glTexCoord2f(1, 1);
- glVertex2f(1.0, 1.0);
-
- glTexCoord2f(0, 1);
- glVertex2f(-1.0, 1.0);
-
- glEnd();
-}
-
-
-static void Display( void )
-{
- glClear( GL_COLOR_BUFFER_BIT );
-
- glPushMatrix();
- glTranslatef( -1.1, 0.0, -15.0 );
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glBindTexture(GL_TEXTURE_2D, yuvObj);
- DrawObject();
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef( 1.1, 0.0, -15.0 );
- glRotatef(Xrot, 1.0, 0.0, 0.0);
- glRotatef(Yrot, 0.0, 1.0, 0.0);
- glRotatef(Zrot, 0.0, 0.0, 1.0);
- glBindTexture(GL_TEXTURE_2D, rgbObj);
- DrawObject();
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glFrustum( -1.1, 1.1, -1.1, 1.1, 10.0, 100.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:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void SpecialKey( int key, int x, int y )
-{
- float step = 3.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();
-}
-
-
-#define CLAMP( X, MIN, MAX ) ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) )
-
-
-
-/* #define LINEAR_FILTER */
-
-static void Init( int argc, char *argv[] )
-{
- const char *file;
- GLenum format;
-
- if (!glutExtensionSupported("GL_MESA_ycbcr_texture")) {
- printf("Sorry, GL_MESA_ycbcr_texture is required\n");
- exit(0);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- if (argc > 1)
- file = argv[1];
- else
- file = TEXTURE_FILE;
-
- /* First load the texture as YCbCr.
- */
-
- glBindTexture(GL_TEXTURE_2D, yuvObj);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- ImageYUV = LoadYUVImage(file, &ImgWidth, &ImgHeight );
- if (!ImageYUV) {
- printf("Couldn't read %s\n", TEXTURE_FILE);
- exit(0);
- }
-
- printf("Image: %dx%d\n", ImgWidth, ImgHeight);
-
-
- glTexImage2D(GL_TEXTURE_2D, 0,
- GL_YCBCR_MESA,
- ImgWidth, ImgHeight, 0,
- GL_YCBCR_MESA,
- GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
-
- glEnable(GL_TEXTURE_2D);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
-
-
- /* Now load the texture as RGB.
- */
-
- glBindTexture(GL_TEXTURE_2D, rgbObj);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- ImageRGB = LoadRGBImage(file, &ImgWidth, &ImgHeight, &format );
- if (!ImageRGB) {
- printf("Couldn't read %s\n", TEXTURE_FILE);
- exit(0);
- }
-
- printf("Image: %dx%d\n", ImgWidth, ImgHeight);
-
-
- glTexImage2D(GL_TEXTURE_2D, 0,
- format,
- ImgWidth, ImgHeight, 0,
- format,
- GL_UNSIGNED_BYTE, ImageRGB);
-
- glEnable(GL_TEXTURE_2D);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
-
-
- glShadeModel(GL_FLAT);
- glClearColor(0.3, 0.3, 0.4, 1.0);
-
- if (argc > 1 && strcmp(argv[1], "-info")==0) {
- 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));
- }
-
- printf( "Both images should appear the same.\n" );
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInit( &argc, argv );
- glutInitWindowSize( 300, 300 );
- glutInitWindowPosition( 0, 0 );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
- glutCreateWindow(argv[0] );
- glewInit();
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutSpecialFunc( SpecialKey );
- glutDisplayFunc( Display );
-
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/zbitmap.c b/progs/tests/zbitmap.c
deleted file mode 100644
index 45cb7543c2..0000000000
--- a/progs/tests/zbitmap.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Test Z values of glBitmap.
- * Brian Paul
- * 19 Feb 2010
- */
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static GLint Win = 0;
-
-
-static void
-PrintString(const char *s)
-{
- while (*s) {
- glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
- s++;
- }
-}
-
-
-static void
-Display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-3.0, 3.0, -3.0, 3.0, -2.0, 2.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glColor3f(1, 1, 1);
- glRasterPos2f(-2.0, 2.6);
- PrintString("Z = -1.0");
- glRasterPos2f(-0.5, 2.6);
- PrintString("Z = 0.0");
- glRasterPos2f(1.0, 2.6);
- PrintString("Z = 1.0");
-
- glColor3f(0, 0.4, 0.6);
- glBegin(GL_QUADS);
- glVertex3f(-2.0, -2.5, -1);
- glVertex3f(-1.0, -2.5, -1);
- glVertex3f(-1.0, 2.5, -1);
- glVertex3f(-2.0, 2.5, -1);
-
- glVertex3f(-0.5, -2.5, 0);
- glVertex3f(0.5, -2.5, 0);
- glVertex3f(0.5, 2.5, 0);
- glVertex3f(-0.5, 2.5, 0);
-
- glVertex3f(1.0, -2.5, 1);
- glVertex3f(2.0, -2.5, 1);
- glVertex3f(2.0, 2.5, 1);
- glVertex3f(1.0, 2.5, 1);
- glEnd();
-
- glColor3f(1, 1, 1);
-
- glRasterPos3f(-2.0, -1, -1.0);
- PrintString("This is a bitmap string drawn at z = -1.0");
-
- glRasterPos3f(-2.0, 0, 0.0);
- PrintString("This is a bitmap string drawn at z = 0.0");
-
- glRasterPos3f(-2.0, 1, 1.0);
- PrintString("This is a bitmap string drawn at z = 1.0");
-
- glRasterPos3f(-1.5, -2.8, 0.0);
- PrintString("GL_DEPTH_FUNC = GL_LEQUAL");
-
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- glViewport(0, 0, width, height);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- if (key == 27) {
- glutDestroyWindow(Win);
- exit(0);
- }
- glutPostRedisplay();
-}
-
-
-static void
-Init(void)
-{
- glClearColor(0.25, 0.25, 0.25, 0.0);
- glDepthFunc(GL_LEQUAL);
- glEnable(GL_DEPTH_TEST);
-}
-
-
-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);
- glutDisplayFunc(Display);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/zcomp.c b/progs/tests/zcomp.c
deleted file mode 100644
index d6b9c07022..0000000000
--- a/progs/tests/zcomp.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * Test Z compositing with glDrawPixels(GL_DEPTH_COMPONENT) and stencil test.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-static int Win;
-static GLfloat Xrot = 0, Yrot = 0, Zpos = 6;
-static GLboolean Anim = GL_FALSE;
-
-static int Width = 400, Height = 200;
-static GLfloat *Zimg;
-static GLubyte *Cimg;
-static GLboolean showZ = 0;
-
-
-static void
-Idle(void)
-{
- Xrot += 3.0;
- Yrot += 4.0;
- glutPostRedisplay();
-}
-
-
-/**
- * Draw first object, save color+Z images
- */
-static void
-DrawFirst(void)
-{
- static const GLfloat red[4] = { 1.0, 0.0, 0.0, 0.0 };
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red);
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glTranslatef(-1, 0, 0);
- glRotatef(45 + Xrot, 1, 0, 0);
-
- glutSolidTorus(0.75, 2.0, 10, 20);
-
- glPopMatrix();
-
- glReadPixels(0, 0, Width, Height, GL_DEPTH_COMPONENT, GL_FLOAT, Zimg);
- glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, Cimg);
-}
-
-
-/**
- * Draw second object.
- */
-static void
-DrawSecond(void)
-{
- static const GLfloat blue[4] = { 0.0, 0.0, 1.0, 0.0 };
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue);
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-
- glPushMatrix();
- glTranslatef(+1, 0, 0);
- glRotatef(-45 + Xrot, 1, 0, 0);
-
- glutSolidTorus(0.75, 2.0, 10, 20);
-
- glPopMatrix();
-}
-
-
-/**
- * Composite first/saved image over second rendering.
- */
-static void
-Composite(void)
-{
- glWindowPos2i(0, 0);
-
- /* Draw Z values, set stencil where Z test passes */
- glEnable(GL_STENCIL_TEST);
- glStencilFunc(GL_ALWAYS, 1, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
- glColorMask(0,0,0,0);
- glDrawPixels(Width, Height, GL_DEPTH_COMPONENT, GL_FLOAT, Zimg);
- glColorMask(1,1,1,1);
-
- /* Draw color where stencil==1 */
- glStencilFunc(GL_EQUAL, 1, ~0);
- glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
- glDisable(GL_DEPTH_TEST);
- glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, Cimg);
- glEnable(GL_DEPTH_TEST);
-
- glDisable(GL_STENCIL_TEST);
-}
-
-
-static void
-Draw(void)
-{
- DrawFirst();
- DrawSecond();
- Composite();
- glutSwapBuffers();
-}
-
-
-static void
-Reshape(int width, int height)
-{
- GLfloat ar = (float) width / height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-ar, ar, -1.0, 1.0, 5.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -15.0);
-
- Width = width;
- Height = height;
-
- if (Zimg)
- free(Zimg);
- if (Cimg)
- free(Cimg);
- Zimg = (float *) malloc(width * height * 4);
- Cimg = (GLubyte *) malloc(width * height * 4);
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- const GLfloat step = 1.0;
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'd':
- showZ = !showZ;
- break;
- case 'z':
- Zpos -= step;
- break;
- case 'Z':
- Zpos += step;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- const GLfloat step = 3.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
-Init(void)
-{
- /* setup lighting, etc */
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(Width, Height);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STENCIL);
- Win = glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutSpecialFunc(SpecialKey);
- glutDisplayFunc(Draw);
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/zdrawpix.c b/progs/tests/zdrawpix.c
deleted file mode 100644
index ba7da571eb..0000000000
--- a/progs/tests/zdrawpix.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * Test glDrawPixels(GL_DEPTH_COMPONENT)
- *
- * We load a window-sized buffer of Z values so that Z=1 at the top and
- * Z=0 at the bottom (and interpolate between).
- * We draw that image into the Z buffer, then draw an ordinary cube.
- * The bottom part of the cube should be "clipped" where the cube fails
- * the Z test.
- *
- * Press 'd' to view the Z buffer as a grayscale image.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include "../util/showbuffer.c"
-
-
-static int Win;
-static GLfloat Xrot = 50, Yrot = 40, Zpos = 6;
-static GLboolean Anim = GL_FALSE;
-
-static int Width = 200, Height = 200;
-static GLfloat *z;
-static GLboolean showZ = 0;
-
-
-static void
-Idle(void)
-{
- Xrot += 3.0;
- Yrot += 4.0;
- glutPostRedisplay();
-}
-
-
-static void
-Draw(void)
-{
- glClearColor(0, 0, 0.5, 0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-#if 1
- glColor3f(1, 0, 0);
- glWindowPos2i(0,0);
- glColorMask(0,0,0,0);
- glDrawPixels(Width, Height, GL_DEPTH_COMPONENT, GL_FLOAT, z);
-#elif 0
- glPushMatrix();
- glTranslatef(-0.75, 0, Zpos);
- glutSolidSphere(1.0, 20, 10);
- glPopMatrix();
-#endif
- glColorMask(1,1,1,1);
-
- /* draw cube */
- glPushMatrix();
- glTranslatef(0, 0, Zpos);
- glRotatef(Xrot, 1, 0, 0);
- glRotatef(Yrot, 0, 1, 0);
- glutSolidCube(2.0);
- glPopMatrix();
-
-#if 0
- /* drawpixels after cube */
- glColor3f(1, 0, 0);
- glWindowPos2i(0,0);
- //glColorMask(0,0,0,0);
- glDrawPixels(Width, Height, GL_DEPTH_COMPONENT, GL_FLOAT, z);
-#endif
-
- if (showZ) {
- ShowDepthBuffer(Width, Height, 0.0, 1.0);
- }
-
- 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, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -15.0);
-
- Width = width;
- Height = height;
-
- z = (float *) malloc(width * height * 4);
- {
- int i, j, k = 0;
- for (i = 0; i < height; i++) {
- float zval = (float) i / (height - 1);
- for (j = 0; j < width; j++) {
- z[k++] = zval;
- }
- }
- }
-}
-
-
-static void
-Key(unsigned char key, int x, int y)
-{
- const GLfloat step = 1.0;
- (void) x;
- (void) y;
- switch (key) {
- case 'a':
- Anim = !Anim;
- if (Anim)
- glutIdleFunc(Idle);
- else
- glutIdleFunc(NULL);
- break;
- case 'd':
- showZ = !showZ;
- break;
- case 'z':
- Zpos -= step;
- break;
- case 'Z':
- Zpos += step;
- break;
- case 27:
- glutDestroyWindow(Win);
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void
-SpecialKey(int key, int x, int y)
-{
- const GLfloat step = 3.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
-Init(void)
-{
- /* setup lighting, etc */
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-}
-
-
-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);
- glutDisplayFunc(Draw);
- if (Anim)
- glutIdleFunc(Idle);
- Init();
- glutMainLoop();
- return 0;
-}
diff --git a/progs/tests/zreaddraw.c b/progs/tests/zreaddraw.c
deleted file mode 100644
index 0910eaaa79..0000000000
--- a/progs/tests/zreaddraw.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Test glRead/DrawPixels for GL_DEPTH_COMPONENT, with pixelzoom.
- *
- * Brian Paul
- * 23 August 2003
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-#define ZWIDTH 100
-#define ZHEIGHT 100
-
-#define ZOOM 4
-
-#define ZWIDTH2 (ZOOM * ZWIDTH)
-#define ZHEIGHT2 (ZOOM * ZHEIGHT)
-
-static GLint WinWidth = ZWIDTH + ZWIDTH2, WinHeight = ZHEIGHT + ZHEIGHT2;
-static GLboolean Invert = GL_FALSE;
-static GLboolean TestPacking = GL_FALSE;
-static GLboolean TestList = GL_FALSE;
-
-
-static void Display(void)
-{
- GLfloat depth[ZWIDTH * ZHEIGHT * 2];
- GLfloat depth2[ZWIDTH2 * ZHEIGHT2]; /* *2 to test pixelstore stuff */
- GLuint list;
- GLenum depthType = GL_FLOAT;
-
- glClearColor(0.5, 0.5, 0.5, 1.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glEnable(GL_DEPTH_TEST);
-
- /* draw a sphere */
- glViewport(0, 0, ZWIDTH, ZHEIGHT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-1, 1, -1, 1, -1, 0); /* clip away back half of sphere */
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glutSolidSphere(1.0, 20, 10);
-
- if (TestPacking) {
- glPixelStorei(GL_PACK_ROW_LENGTH, 120);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 5);
- }
-
- /* read the depth image */
- glReadPixels(0, 0, ZWIDTH, ZHEIGHT, GL_DEPTH_COMPONENT, depthType, depth);
- if (depthType == GL_FLOAT) {
- GLfloat min, max;
- int i;
- min = max = depth[0];
- for (i = 1; i < ZWIDTH * ZHEIGHT; i++) {
- if (depth[i] < min)
- min = depth[i];
- if (depth[i] > max)
- max = depth[i];
- }
- printf("Depth value range: [%f, %f]\n", min, max);
- }
-
- /* debug */
- if (0) {
- int i;
- float *z = depth + ZWIDTH * 50;
- printf("z at y=50:\n");
- for (i = 0; i < ZWIDTH; i++) {
- printf("%5.3f ", z[i]);
- if ((i + 1) % 12 == 0)
- printf("\n");
- }
- printf("\n");
- }
-
- /* Draw the Z image as luminance above original rendering */
- glWindowPos2i(0, ZHEIGHT);
- glDrawPixels(ZWIDTH, ZHEIGHT, GL_LUMINANCE, depthType, depth);
-
- if (TestPacking) {
- glPixelStorei(GL_PACK_ROW_LENGTH, 0);
- glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 120);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, 5);
- }
-
- /* draw depth image with scaling (into z buffer) */
- glPixelZoom(ZOOM, ZOOM);
- glColor4f(1, 0, 0, 0);
- glWindowPos2i(ZWIDTH, 0);
- if (Invert) {
- glPixelTransferf(GL_DEPTH_SCALE, -1.0);
- glPixelTransferf(GL_DEPTH_BIAS, 1.0);
- }
- if (TestList) {
- list = glGenLists(1);
- glNewList(list, GL_COMPILE);
- glDrawPixels(ZWIDTH, ZHEIGHT, GL_DEPTH_COMPONENT, depthType, depth);
- glEndList();
- glCallList(list);
- glDeleteLists(list, 1);
- }
- else {
- glDrawPixels(ZWIDTH, ZHEIGHT, GL_DEPTH_COMPONENT, depthType, depth);
- }
- if (Invert) {
- glPixelTransferf(GL_DEPTH_SCALE, 1.0);
- glPixelTransferf(GL_DEPTH_BIAS, 0.0);
- }
-
- if (TestPacking) {
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
- }
-
- glDisable(GL_DEPTH_TEST);
-
- /* read back scaled depth image */
- glReadPixels(ZWIDTH, 0, ZWIDTH2, ZHEIGHT2, GL_DEPTH_COMPONENT, GL_FLOAT, depth2);
-
- /* debug */
- if (0) {
- int i;
- float *z = depth2 + ZWIDTH2 * 200;
- printf("z at y=200:\n");
- for (i = 0; i < ZWIDTH2; i++) {
- printf("%5.3f ", z[i]);
- if ((i + 1) % 12 == 0)
- printf("\n");
- }
- printf("\n");
- }
-
- /* draw as luminance */
- glPixelZoom(1.0, 1.0);
- glWindowPos2i(ZWIDTH, 0);
- glDrawPixels(ZWIDTH2, ZHEIGHT2, GL_LUMINANCE, GL_FLOAT, depth2);
-
- glutSwapBuffers();
-}
-
-
-static void Reshape(int width, int height)
-{
- WinWidth = width;
- WinHeight = height;
- glViewport(0, 0, width, height);
-}
-
-
-static void Key(unsigned char key, int x, int y)
-{
- (void) x;
- (void) y;
- switch (key) {
- case 'i':
- Invert = !Invert;
- break;
- case 'p':
- TestPacking = !TestPacking;
- printf("Test pixel pack/unpack: %d\n", TestPacking);
- break;
- case 'l':
- TestList = !TestList;
- printf("Test dlist: %d\n", TestList);
- break;
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void Init(void)
-{
- 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};
- GLint z;
-
- glGetIntegerv(GL_DEPTH_BITS, &z);
-
- printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
- printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
- printf("GL_DEPTH_BITS = %d\n", z);
-
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, blue);
- glLightfv(GL_LIGHT0, GL_AMBIENT, gray);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, white);
- glLightfv(GL_LIGHT0, GL_POSITION, pos);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-}
-
-
-int main(int argc, char *argv[])
-{
- glutInit(&argc, argv);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(WinWidth, WinHeight);
- glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
- glutCreateWindow(argv[0]);
- glewInit();
- glutReshapeFunc(Reshape);
- glutKeyboardFunc(Key);
- glutDisplayFunc(Display);
- Init();
- glutMainLoop();
- return 0;
-}