Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-08-22 13:31:32 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-08-22 13:31:32 +0400
commit5dafc1a5530466c421c2c80eb2f06ba34bd21cb9 (patch)
tree859b64e4181fb48ac189219cf205fdde7de92de0 /source/blender
parentc5d902133f03c6740aea6801940b022f615ca0d5 (diff)
parenteab746fc5facc02e9885570c1f05e753278cbc33 (diff)
svn merge -r 16060:16222 https://svn.blender.org/svnroot/bf-blender/trunk/blender
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_blender.h2
-rw-r--r--source/blender/blenkernel/BKE_collision.h11
-rw-r--r--source/blender/blenkernel/BKE_customdata.h4
-rw-r--r--source/blender/blenkernel/BKE_deform.h3
-rw-r--r--source/blender/blenkernel/BKE_effect.h6
-rw-r--r--source/blender/blenkernel/BKE_endian.h6
-rw-r--r--source/blender/blenkernel/BKE_shrinkwrap.h146
-rw-r--r--source/blender/blenkernel/BKE_utildefines.h4
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.c4
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c20
-rw-r--r--source/blender/blenkernel/intern/bvhutils.c460
-rw-r--r--source/blender/blenkernel/intern/cloth.c22
-rw-r--r--source/blender/blenkernel/intern/collision.c68
-rw-r--r--source/blender/blenkernel/intern/deform.c28
-rw-r--r--source/blender/blenkernel/intern/displist.c8
-rw-r--r--source/blender/blenkernel/intern/effect.c463
-rw-r--r--source/blender/blenkernel/intern/icons.c2
-rw-r--r--source/blender/blenkernel/intern/image.c8
-rw-r--r--source/blender/blenkernel/intern/implicit.c135
-rw-r--r--source/blender/blenkernel/intern/ipo.c14
-rw-r--r--source/blender/blenkernel/intern/modifier.c157
-rw-r--r--source/blender/blenkernel/intern/particle.c9
-rw-r--r--source/blender/blenkernel/intern/particle_system.c297
-rw-r--r--source/blender/blenkernel/intern/sca.c3
-rw-r--r--source/blender/blenkernel/intern/shrinkwrap.c588
-rw-r--r--source/blender/blenlib/BLI_editVert.h8
-rw-r--r--source/blender/blenlib/BLI_rand.h1
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c8
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c228
-rw-r--r--source/blender/blenlib/intern/fileops.c6
-rw-r--r--source/blender/blenlib/intern/psfont.c4
-rw-r--r--source/blender/blenlib/intern/rand.c18
-rw-r--r--source/blender/blenlib/intern/util.c8
-rw-r--r--source/blender/blenloader/BLO_sys_types.h17
-rw-r--r--source/blender/blenloader/intern/genfile.c10
-rw-r--r--source/blender/blenloader/intern/readblenentry.c4
-rw-r--r--source/blender/blenloader/intern/readfile.c62
-rw-r--r--source/blender/blenloader/intern/writefile.c4
-rw-r--r--source/blender/blenpluginapi/intern/pluginapi.c4
-rw-r--r--source/blender/imbuf/intern/cineon/cineonlib.c32
-rw-r--r--source/blender/imbuf/intern/cineon/dpxlib.c36
-rw-r--r--source/blender/imbuf/intern/cineon/logImageCore.h6
-rw-r--r--source/blender/imbuf/intern/cineon/logmemfile.c6
-rw-r--r--source/blender/imbuf/intern/cineon/logmemfile.h2
-rw-r--r--source/blender/imbuf/intern/scaling.c74
-rw-r--r--source/blender/include/BDR_gpencil.h1
-rw-r--r--source/blender/include/BIF_drawgpencil.h5
-rw-r--r--source/blender/include/BIF_meshtools.h2
-rw-r--r--source/blender/include/BIF_resources.h4
-rw-r--r--source/blender/makesdna/DNA_gpencil_types.h4
-rw-r--r--source/blender/makesdna/DNA_ipo_types.h12
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h51
-rw-r--r--source/blender/makesdna/DNA_object_force.h7
-rw-r--r--source/blender/makesdna/DNA_particle_types.h3
-rw-r--r--source/blender/makesdna/DNA_sensor_types.h10
-rw-r--r--source/blender/makesdna/DNA_space_types.h1
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h5
-rw-r--r--source/blender/makesdna/intern/makesdna.c8
-rw-r--r--source/blender/python/api2_2x/Draw.c6
-rw-r--r--source/blender/python/api2_2x/Material.c92
-rw-r--r--source/blender/python/api2_2x/Mesh.c4
-rw-r--r--source/blender/python/api2_2x/Object.c37
-rw-r--r--source/blender/python/api2_2x/Text3d.c46
-rw-r--r--source/blender/python/api2_2x/doc/Material.py19
-rw-r--r--source/blender/python/api2_2x/doc/Mathutils.py9
-rw-r--r--source/blender/python/api2_2x/doc/Object.py8
-rw-r--r--source/blender/python/api2_2x/doc/Text3d.py20
-rw-r--r--source/blender/python/api2_2x/vector.c52
-rw-r--r--source/blender/python/api2_2x/vector.h1
-rw-r--r--source/blender/radiosity/CMakeLists.txt2
-rw-r--r--source/blender/radiosity/SConscript2
-rw-r--r--source/blender/radiosity/intern/source/Makefile1
-rw-r--r--source/blender/radiosity/intern/source/radnode.c10
-rw-r--r--source/blender/radiosity/intern/source/radpreprocess.c4
-rw-r--r--source/blender/render/CMakeLists.txt2
-rw-r--r--source/blender/render/SConscript2
-rw-r--r--source/blender/render/intern/include/render_types.h8
-rw-r--r--source/blender/render/intern/source/occlusion.c2
-rw-r--r--source/blender/render/intern/source/pipeline.c2
-rw-r--r--source/blender/render/intern/source/rendercore.c22
-rw-r--r--source/blender/render/intern/source/shadbuf.c16
-rw-r--r--source/blender/render/intern/source/strand.c4
-rw-r--r--source/blender/render/intern/source/zbuf.c8
-rw-r--r--source/blender/src/buttons_editing.c57
-rw-r--r--source/blender/src/buttons_logic.c54
-rw-r--r--source/blender/src/buttons_object.c112
-rw-r--r--source/blender/src/buttons_scene.c7
-rw-r--r--source/blender/src/drawgpencil.c160
-rw-r--r--source/blender/src/drawipo.c52
-rw-r--r--source/blender/src/drawmesh.c8
-rw-r--r--source/blender/src/drawobject.c12
-rw-r--r--source/blender/src/editipo.c19
-rw-r--r--source/blender/src/editipo_lib.c3
-rw-r--r--source/blender/src/editkey.c6
-rw-r--r--source/blender/src/editmesh_mods.c5
-rw-r--r--source/blender/src/editmesh_tools.c8
-rw-r--r--source/blender/src/gpencil.c60
-rw-r--r--source/blender/src/header_info.c4
-rw-r--r--source/blender/src/header_script.c8
-rw-r--r--source/blender/src/header_view3d.c4
-rw-r--r--source/blender/src/interface.c6
-rw-r--r--source/blender/src/meshlaplacian.c8
-rw-r--r--source/blender/src/meshtools.c16
-rw-r--r--source/blender/src/parametrizer.c4
-rw-r--r--source/blender/src/parametrizer.h4
-rw-r--r--source/blender/src/parametrizer_intern.h2
-rw-r--r--source/blender/src/renderwin.c4
-rw-r--r--source/blender/src/resources.c19
-rw-r--r--source/blender/src/space.c9
-rw-r--r--source/blender/src/splash.jpg.c4574
-rw-r--r--source/blender/src/toolbox.c22
-rw-r--r--source/blender/src/transform_conversions.c20
-rw-r--r--source/blender/src/transform_generics.c2
-rw-r--r--source/blender/src/usiblender.c10
-rw-r--r--source/blender/yafray/intern/export_Plugin.cpp2
115 files changed, 4637 insertions, 4142 deletions
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index d951c8401e3..e403fc33e06 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -40,7 +40,7 @@ extern "C" {
struct ListBase;
struct MemFile;
-#define BLENDER_VERSION 246
+#define BLENDER_VERSION 247
#define BLENDER_SUBVERSION 1
#define BLENDER_MINVERSION 245
diff --git a/source/blender/blenkernel/BKE_collision.h b/source/blender/blenkernel/BKE_collision.h
index 2966d932a49..c483148e4de 100644
--- a/source/blender/blenkernel/BKE_collision.h
+++ b/source/blender/blenkernel/BKE_collision.h
@@ -119,8 +119,10 @@ FaceCollPair;
/////////////////////////////////////////////////
// used in modifier.c from collision.c
/////////////////////////////////////////////////
+
BVHTree *bvhtree_build_from_mvert ( MFace *mfaces, unsigned int numfaces, MVert *x, unsigned int numverts, float epsilon );
void bvhtree_update_from_mvert ( BVHTree * bvhtree, MFace *faces, int numfaces, MVert *x, MVert *xnew, int numverts, int moving );
+
/////////////////////////////////////////////////
LinkNode *BLI_linklist_append_fast ( LinkNode **listp, void *ptr );
@@ -134,6 +136,15 @@ void collisions_compute_barycentric ( float pv[3], float p1[3], float p2[3], flo
void interpolateOnTriangle ( float to[3], float v1[3], float v2[3], float v3[3], double w1, double w2, double w3 );
/////////////////////////////////////////////////
+// used in effect.c
+/////////////////////////////////////////////////
+CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj);
+
+/////////////////////////////////////////////////
+
+
+
+/////////////////////////////////////////////////
#endif
diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h
index e84c7d30956..c84b690bc49 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -32,9 +32,11 @@
#ifndef BKE_CUSTOMDATA_H
#define BKE_CUSTOMDATA_H
+#include "BLO_sys_types.h" // for intptr_t support
+
struct CustomData;
struct CustomDataLayer;
-typedef long CustomDataMask;
+typedef intptr_t CustomDataMask;
extern const CustomDataMask CD_MASK_BAREMESH;
extern const CustomDataMask CD_MASK_MESH;
diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h
index a1975dd4265..73a9b2b5d4e 100644
--- a/source/blender/blenkernel/BKE_deform.h
+++ b/source/blender/blenkernel/BKE_deform.h
@@ -46,5 +46,8 @@ int get_defgroup_num (struct Object *ob, struct bDeformGroup *dg);
int get_named_vertexgroup_num (Object *ob, char *name);
void unique_vertexgroup_name (struct bDeformGroup *dg, struct Object *ob);
+float deformvert_get_weight(const struct MDeformVert *dvert, int group_num);
+float vertexgroup_get_vertex_weight(const struct MDeformVert *dvert, int index, int group_num);
+
#endif
diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h
index 3763a659f2f..6475f7a71ac 100644
--- a/source/blender/blenkernel/BKE_effect.h
+++ b/source/blender/blenkernel/BKE_effect.h
@@ -37,6 +37,7 @@ struct Effect;
struct ListBase;
struct Particle;
struct Group;
+struct RNG;
typedef struct pEffectorCache {
struct pEffectorCache *next, *prev;
@@ -64,6 +65,11 @@ struct ListBase *pdInitEffectors(struct Object *obsrc, struct Group *group);
void pdEndEffectors(struct ListBase *lb);
void pdDoEffectors(struct ListBase *lb, float *opco, float *force, float *speed, float cur_time, float loc_time, unsigned int flags);
+/* required for particle_system.c */
+void do_physical_effector(Object *ob, float *opco, short type, float force_val, float distance, float falloff, float size, float damp, float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar, struct RNG *rng, float noise_factor, float charge, float pa_size);
+float effector_falloff(struct PartDeflect *pd, float *eff_velocity, float *vec_to_part);
+
+
#endif
diff --git a/source/blender/blenkernel/BKE_endian.h b/source/blender/blenkernel/BKE_endian.h
index 1757103eaf6..dc5efd5ea46 100644
--- a/source/blender/blenkernel/BKE_endian.h
+++ b/source/blender/blenkernel/BKE_endian.h
@@ -33,11 +33,11 @@
#define BKE_ENDIANNESS(a) { \
union { \
- long l; \
- char c[sizeof (long)]; \
+ intptr_t l; \
+ char c[sizeof (intptr_t)]; \
} u; \
u.l = 1; \
- a = (u.c[sizeof (long) - 1] == 1) ? 1 : 0; \
+ a = (u.c[sizeof (intptr_t) - 1] == 1) ? 1 : 0; \
}
#endif
diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h
new file mode 100644
index 00000000000..e8276238ff2
--- /dev/null
+++ b/source/blender/blenkernel/BKE_shrinkwrap.h
@@ -0,0 +1,146 @@
+/**
+ * BKE_shrinkwrap.h
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#ifndef BKE_SHRINKWRAP_H
+#define BKE_SHRINKWRAP_H
+
+/* mesh util */
+//TODO: move this somewhere else
+#include "BKE_customdata.h"
+struct DerivedMesh;
+struct Object;
+struct DerivedMesh *object_get_derived_final(struct Object *ob, CustomDataMask dataMask);
+
+
+/* SpaceTransform stuff */
+/*
+ * TODO: move this somewhere else
+ *
+ * this structs encapsulates all needed data to convert between 2 coordinate spaces
+ * (where conversion can be represented by a matrix multiplication)
+ *
+ * This is used to reduce the number of arguments to pass to functions that need to perform
+ * this kind of operation and make it easier for the coder, as he/she doenst needs to recode
+ * the matrix calculation.
+ *
+ * A SpaceTransform is initialized using:
+ * space_transform_setup( &data, ob1, ob2 )
+ *
+ * After that the following calls can be used:
+ * space_transform_apply (&data, co); //converts a coordinate in ob1 coords space to the corresponding ob2 coords
+ * space_transform_invert(&data, co); //converts a coordinate in ob2 coords space to the corresponding ob1 coords
+ *
+ * //Same Concept as space_transform_apply and space_transform_invert, but no is normalized after conversion
+ * space_transform_apply_normal (&data, &no);
+ * space_transform_invert_normal(&data, &no);
+ *
+ */
+struct Object;
+
+typedef struct SpaceTransform
+{
+ float local2target[4][4];
+ float target2local[4][4];
+
+} SpaceTransform;
+
+void space_transform_from_matrixs(SpaceTransform *data, float local[][4], float target[][4]);
+#define space_transform_setup(data, local, target) space_transform_from_matrixs(data, (local)->obmat, (target)->obmat)
+
+void space_transform_apply (const SpaceTransform *data, float *co);
+void space_transform_invert(const SpaceTransform *data, float *co);
+
+void space_transform_apply_normal (const SpaceTransform *data, float *no);
+void space_transform_invert_normal(const SpaceTransform *data, float *no);
+
+/* Shrinkwrap stuff */
+#include "BKE_bvhutils.h"
+
+/*
+ * Shrinkwrap is composed by a set of functions and options that define the type of shrink.
+ *
+ * 3 modes are available:
+ * - Nearest vertex
+ * - Nearest surface
+ * - Normal projection
+ *
+ * ShrinkwrapCalcData encapsulates all needed data for shrinkwrap functions.
+ * (So that you dont have to pass an enormous ammount of arguments to functions)
+ */
+
+struct Object;
+struct DerivedMesh;
+struct ShrinkwrapModifierData;
+struct BVHTree;
+
+
+typedef struct ShrinkwrapCalcData
+{
+ ShrinkwrapModifierData *smd; //shrinkwrap modifier data
+
+ struct Object *ob; //object we are applying shrinkwrap to
+ struct DerivedMesh *original; //mesh before shrinkwrap
+
+ float (*vertexCos)[3]; //vertexs being shrinkwraped
+ int numVerts;
+
+ struct DerivedMesh *target; //mesh we are shrinking to
+ SpaceTransform local2target; //transform to move bettwem local and target space
+
+ float keepDist; //Distance to kept from target (units are in local space)
+
+} ShrinkwrapCalcData;
+
+void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *data);
+void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *data);
+void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *data);
+
+void shrinkwrapModifier_deform(struct ShrinkwrapModifierData *smd, struct Object *ob, struct DerivedMesh *dm, float (*vertexCos)[3], int numVerts);
+
+/*
+ * This function casts a ray in the given BVHTree.. but it takes into consideration the space_transform, that is:
+ *
+ * if transf was configured with "space_transform_setup( &transf, ob1, ob2 )"
+ * then the input (vert, dir, BVHTreeRayHit) must be defined in ob1 coordinates space
+ * and the BVHTree must be built in ob2 coordinate space.
+ *
+ * Thus it provides an easy way to cast the same ray across several trees (where each tree was built on its own coords space)
+ */
+int normal_projection_project_vertex(char options, const float *vert, const float *dir, const SpaceTransform *transf, BVHTree *tree, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata);
+
+/*
+ * NULL initializers to local data
+ */
+#define NULL_ShrinkwrapCalcData {NULL, }
+#define NULL_BVHTreeFromMesh {NULL, }
+#define NULL_BVHTreeRayHit {NULL, }
+#define NULL_BVHTreeNearest {0, }
+
+
+#endif
+
diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h
index a96a3e10f40..f389521ffa0 100644
--- a/source/blender/blenkernel/BKE_utildefines.h
+++ b/source/blender/blenkernel/BKE_utildefines.h
@@ -197,8 +197,8 @@
/* Warning-free macros for storing ints in pointers. Use these _only_
* for storing an int in a pointer, not a pointer in an int (64bit)! */
-#define SET_INT_IN_POINTER(i) ((void*)(long)(i))
-#define GET_INT_FROM_POINTER(i) ((int)(long)(i))
+#define SET_INT_IN_POINTER(i) ((void*)(intptr_t)(i))
+#define GET_INT_FROM_POINTER(i) ((int)(intptr_t)(i))
#endif
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 9dcb6b6e7fa..1652b24e1e5 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -7,6 +7,8 @@
#include "CCGSubSurf.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/***/
typedef unsigned char byte;
@@ -35,7 +37,7 @@ typedef struct _EHash {
#define EHASH_alloc(eh, nb) ((eh)->allocatorIFC.alloc((eh)->allocator, nb))
#define EHASH_free(eh, ptr) ((eh)->allocatorIFC.free((eh)->allocator, ptr))
-#define EHASH_hash(eh, item) (((unsigned long) (item))%((unsigned int) (eh)->curSize))
+#define EHASH_hash(eh, item) (((uintptr_t) (item))%((unsigned int) (eh)->curSize))
static EHash *_ehash_new(int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) {
EHash *eh = allocatorIFC->alloc(allocator, sizeof(*eh));
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 3772c2d06ae..03d45cce888 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -78,6 +78,8 @@
#include "BKE_utildefines.h"
#include "BKE_particle.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef WITH_VERSE
#include "BKE_verse.h"
#endif
@@ -453,7 +455,7 @@ static void emDM_foreachMappedEdge(DerivedMesh *dm, void (*func)(void *userData,
EditVert *eve;
for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
for(i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next)
func(userData, i, emdm->vertexCos[(int) eed->v1->tmp.l], emdm->vertexCos[(int) eed->v2->tmp.l]);
} else {
@@ -471,7 +473,7 @@ static void emDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *us
EditVert *eve;
for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
glBegin(GL_LINES);
for(i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) {
@@ -506,7 +508,7 @@ static void emDM_drawMappedEdgesInterp(DerivedMesh *dm, int (*setDrawOptions)(vo
EditVert *eve;
for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
glBegin(GL_LINES);
for (i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) {
@@ -593,7 +595,7 @@ static void emDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *use
if (emdm->vertexCos) {
for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
}
for(i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) {
@@ -611,7 +613,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
EditVert *eve;
for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
for (i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) {
int drawSmooth = (efa->flag & ME_SMOOTH);
@@ -707,7 +709,7 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
EditVert *eve;
for (i=0,eve=em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
for (i=0,efa= em->faces.first; efa; i++,efa= efa->next) {
MTFace *tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
@@ -1027,7 +1029,7 @@ void emDM_copyEdgeArray(DerivedMesh *dm, MEdge *edge_r)
/* store vertex indices in tmp union */
for(ev = em->verts.first, i = 0; ev; ev = ev->next, ++i)
- ev->tmp.l = (long) i;
+ ev->tmp.l = (intptr_t) i;
for( ; ee; ee = ee->next, ++edge_r) {
edge_r->crease = (unsigned char) (ee->crease*255.0f);
@@ -1055,7 +1057,7 @@ void emDM_copyFaceArray(DerivedMesh *dm, MFace *face_r)
/* store vertexes indices in tmp union */
for(ev = em->verts.first, i = 0; ev; ev = ev->next, ++i)
- ev->tmp.l = (long) i;
+ ev->tmp.l = (intptr_t) i;
for( ; ef; ef = ef->next, ++face_r) {
face_r->mat_nr = ef->mat_nr;
@@ -1142,7 +1144,7 @@ static DerivedMesh *getEditMeshDerivedMesh(EditMesh *em, Object *ob,
int i;
for (i=0,eve=em->verts.first; eve; eve= eve->next)
- eve->tmp.l = (long) i++;
+ eve->tmp.l = (intptr_t) i++;
emdm->vertexNos = MEM_callocN(sizeof(*emdm->vertexNos)*i, "emdm_vno");
emdm->faceNos = MEM_mallocN(sizeof(*emdm->faceNos)*totface, "emdm_vno");
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c
index 10e92b8b705..ae449843d2a 100644
--- a/source/blender/blenkernel/intern/bvhutils.c
+++ b/source/blender/blenkernel/intern/bvhutils.c
@@ -48,9 +48,6 @@
/* Math stuff for ray casting on mesh faces and for nearest surface */
-static float nearest_point_in_tri_surface(const float *point, const float *v0, const float *v1, const float *v2, float *nearest);
-
-#define ISECT_EPSILON 1e-6
static float ray_tri_intersection(const BVHTreeRay *ray, const float m_dist, const float *v0, const float *v1, const float *v2)
{
float dist;
@@ -79,170 +76,324 @@ static float sphereray_tri_intersection(const BVHTreeRay *ray, float radius, con
return FLT_MAX;
}
+
/*
- * This calculates the distance from point to the plane
- * Distance is negative if point is on the back side of plane
+ * Function adapted from David Eberly's distance tools (LGPL)
+ * http://www.geometrictools.com/LibFoundation/Distance/Distance.html
*/
-static float point_plane_distance(const float *point, const float *plane_point, const float *plane_normal)
+static float nearest_point_in_tri_surface(const float *v0,const float *v1,const float *v2,const float *p, int *v, int *e, float *nearest )
{
- float pp[3];
- VECSUB(pp, point, plane_point);
- return INPR(pp, plane_normal);
-}
-static float choose_nearest(const float v0[2], const float v1[2], const float point[2], float closest[2])
-{
- float d[2][2], sdist[2];
- VECSUB2D(d[0], v0, point);
- VECSUB2D(d[1], v1, point);
-
- sdist[0] = d[0][0]*d[0][0] + d[0][1]*d[0][1];
- sdist[1] = d[1][0]*d[1][0] + d[1][1]*d[1][1];
-
- if(sdist[0] < sdist[1])
+ float diff[3];
+ float e0[3];
+ float e1[3];
+ float A00;
+ float A01;
+ float A11;
+ float B0;
+ float B1;
+ float C;
+ float Det;
+ float S;
+ float T;
+ float sqrDist;
+ int lv = -1, le = -1;
+
+ VECSUB(diff, v0, p);
+ VECSUB(e0, v1, v0);
+ VECSUB(e1, v2, v0);
+
+ A00 = INPR ( e0, e0 );
+ A01 = INPR( e0, e1 );
+ A11 = INPR ( e1, e1 );
+ B0 = INPR( diff, e0 );
+ B1 = INPR( diff, e1 );
+ C = INPR( diff, diff );
+ Det = fabs( A00 * A11 - A01 * A01 );
+ S = A01 * B1 - A11 * B0;
+ T = A01 * B0 - A00 * B1;
+
+ if ( S + T <= Det )
{
- if(closest)
- VECCOPY2D(closest, v0);
- return sdist[0];
+ if ( S < 0.0f )
+ {
+ if ( T < 0.0f ) // Region 4
+ {
+ if ( B0 < 0.0f )
+ {
+ T = 0.0f;
+ if ( -B0 >= A00 )
+ {
+ S = (float)1.0;
+ sqrDist = A00 + 2.0f * B0 + C;
+ lv = 1;
+ }
+ else
+ {
+ if(fabs(A00) > FLT_EPSILON)
+ S = -B0/A00;
+ else
+ S = 0.0f;
+ sqrDist = B0 * S + C;
+ le = 0;
+ }
+ }
+ else
+ {
+ S = 0.0f;
+ if ( B1 >= 0.0f )
+ {
+ T = 0.0f;
+ sqrDist = C;
+ lv = 0;
+ }
+ else if ( -B1 >= A11 )
+ {
+ T = 1.0f;
+ sqrDist = A11 + 2.0f * B1 + C;
+ lv = 2;
+ }
+ else
+ {
+ if(fabs(A11) > FLT_EPSILON)
+ T = -B1 / A11;
+ else
+ T = 0.0f;
+ sqrDist = B1 * T + C;
+ le = 1;
+ }
+ }
+ }
+ else // Region 3
+ {
+ S = 0.0f;
+ if ( B1 >= 0.0f )
+ {
+ T = 0.0f;
+ sqrDist = C;
+ lv = 0;
+ }
+ else if ( -B1 >= A11 )
+ {
+ T = 1.0f;
+ sqrDist = A11 + 2.0f * B1 + C;
+ lv = 2;
+ }
+ else
+ {
+ if(fabs(A11) > FLT_EPSILON)
+ T = -B1 / A11;
+ else
+ T = 0.0;
+ sqrDist = B1 * T + C;
+ le = 1;
+ }
+ }
+ }
+ else if ( T < 0.0f ) // Region 5
+ {
+ T = 0.0f;
+ if ( B0 >= 0.0f )
+ {
+ S = 0.0f;
+ sqrDist = C;
+ lv = 0;
+ }
+ else if ( -B0 >= A00 )
+ {
+ S = 1.0f;
+ sqrDist = A00 + 2.0f * B0 + C;
+ lv = 1;
+ }
+ else
+ {
+ if(fabs(A00) > FLT_EPSILON)
+ S = -B0 / A00;
+ else
+ S = 0.0f;
+ sqrDist = B0 * S + C;
+ le = 0;
+ }
+ }
+ else // Region 0
+ {
+ // Minimum at interior lv
+ float invDet;
+ if(fabs(Det) > FLT_EPSILON)
+ invDet = 1.0f / Det;
+ else
+ invDet = 0.0f;
+ S *= invDet;
+ T *= invDet;
+ sqrDist = S * ( A00 * S + A01 * T + 2.0f * B0) +
+ T * ( A01 * S + A11 * T + 2.0f * B1 ) + C;
+ }
}
else
{
- if(closest)
- VECCOPY2D(closest, v1);
- return sdist[1];
- }
-}
-/*
- * calculates the closest point between point-tri (2D)
- * returns that tri must be right-handed
- * Returns square distance
- */
-static float closest_point_in_tri2D(const float point[2], /*const*/ float tri[3][2], float closest[2])
-{
- float edge_di[2];
- float v_point[2];
- float proj[2]; //point projected over edge-dir, edge-normal (witouth normalized edge)
- const float *v0 = tri[2], *v1;
- float edge_slen, d; //edge squared length
- int i;
- const float *nearest_vertex = NULL;
-
-
- //for each edge
- for(i=0, v0=tri[2], v1=tri[0]; i < 3; v0=tri[i++], v1=tri[i])
- {
- VECSUB2D(edge_di, v1, v0);
- VECSUB2D(v_point, point, v0);
-
- proj[1] = v_point[0]*edge_di[1] - v_point[1]*edge_di[0]; //dot product with edge normal
-
- //point inside this edge
- if(proj[1] < 0)
- continue;
-
- proj[0] = v_point[0]*edge_di[0] + v_point[1]*edge_di[1];
+ float tmp0, tmp1, numer, denom;
- //closest to this edge is v0
- if(proj[0] < 0)
+ if ( S < 0.0f ) // Region 2
{
- if(nearest_vertex == NULL || nearest_vertex == v0)
- nearest_vertex = v0;
+ tmp0 = A01 + B0;
+ tmp1 = A11 + B1;
+ if ( tmp1 > tmp0 )
+ {
+ numer = tmp1 - tmp0;
+ denom = A00 - 2.0f * A01 + A11;
+ if ( numer >= denom )
+ {
+ S = 1.0f;
+ T = 0.0f;
+ sqrDist = A00 + 2.0f * B0 + C;
+ lv = 1;
+ }
+ else
+ {
+ if(fabs(denom) > FLT_EPSILON)
+ S = numer / denom;
+ else
+ S = 0.0f;
+ T = 1.0f - S;
+ sqrDist = S * ( A00 * S + A01 * T + 2.0f * B0 ) +
+ T * ( A01 * S + A11 * T + 2.0f * B1 ) + C;
+ le = 2;
+ }
+ }
else
{
- //choose nearest
- return choose_nearest(nearest_vertex, v0, point, closest);
+ S = 0.0f;
+ if ( tmp1 <= 0.0f )
+ {
+ T = 1.0f;
+ sqrDist = A11 + 2.0f * B1 + C;
+ lv = 2;
+ }
+ else if ( B1 >= 0.0f )
+ {
+ T = 0.0f;
+ sqrDist = C;
+ lv = 0;
+ }
+ else
+ {
+ if(fabs(A11) > FLT_EPSILON)
+ T = -B1 / A11;
+ else
+ T = 0.0f;
+ sqrDist = B1 * T + C;
+ le = 1;
+ }
}
- i++; //We can skip next edge
- continue;
}
-
- edge_slen = edge_di[0]*edge_di[0] + edge_di[1]*edge_di[1]; //squared edge len
- //closest to this edge is v1
- if(proj[0] > edge_slen)
+ else if ( T < 0.0f ) // Region 6
{
- if(nearest_vertex == NULL || nearest_vertex == v1)
- nearest_vertex = v1;
+ tmp0 = A01 + B1;
+ tmp1 = A00 + B0;
+ if ( tmp1 > tmp0 )
+ {
+ numer = tmp1 - tmp0;
+ denom = A00 - 2.0f * A01 + A11;
+ if ( numer >= denom )
+ {
+ T = 1.0f;
+ S = 0.0f;
+ sqrDist = A11 + 2.0f * B1 + C;
+ lv = 2;
+ }
+ else
+ {
+ if(fabs(denom) > FLT_EPSILON)
+ T = numer / denom;
+ else
+ T = 0.0f;
+ S = 1.0f - T;
+ sqrDist = S * ( A00 * S + A01 * T + 2.0f * B0 ) +
+ T * ( A01 * S + A11 * T + 2.0f * B1 ) + C;
+ le = 2;
+ }
+ }
else
{
- return choose_nearest(nearest_vertex, v1, point, closest);
+ T = 0.0f;
+ if ( tmp1 <= 0.0f )
+ {
+ S = 1.0f;
+ sqrDist = A00 + 2.0f * B0 + C;
+ lv = 1;
+ }
+ else if ( B0 >= 0.0f )
+ {
+ S = 0.0f;
+ sqrDist = C;
+ lv = 0;
+ }
+ else
+ {
+ if(fabs(A00) > FLT_EPSILON)
+ S = -B0 / A00;
+ else
+ S = 0.0f;
+ sqrDist = B0 * S + C;
+ le = 0;
+ }
+ }
+ }
+ else // Region 1
+ {
+ numer = A11 + B1 - A01 - B0;
+ if ( numer <= 0.0f )
+ {
+ S = 0.0f;
+ T = 1.0f;
+ sqrDist = A11 + 2.0f * B1 + C;
+ lv = 2;
+ }
+ else
+ {
+ denom = A00 - 2.0f * A01 + A11;
+ if ( numer >= denom )
+ {
+ S = 1.0f;
+ T = 0.0f;
+ sqrDist = A00 + 2.0f * B0 + C;
+ lv = 1;
+ }
+ else
+ {
+ if(fabs(denom) > FLT_EPSILON)
+ S = numer / denom;
+ else
+ S = 0.0f;
+ T = 1.0f - S;
+ sqrDist = S * ( A00 * S + A01 * T + 2.0f * B0 ) +
+ T * ( A01 * S + A11 * T + 2.0f * B1 ) + C;
+ le = 2;
+ }
}
- continue;
}
-
- //nearest is on this edge
- d= proj[1] / edge_slen;
- closest[0] = point[0] - edge_di[1] * d;
- closest[1] = point[1] + edge_di[0] * d;
-
- return proj[1]*proj[1]/edge_slen;
- }
-
- if(nearest_vertex)
- {
- VECSUB2D(v_point, nearest_vertex, point);
- VECCOPY2D(closest, nearest_vertex);
- return v_point[0]*v_point[0] + v_point[1]*v_point[1];
- }
- else
- {
- VECCOPY(closest, point); //point is already inside
- return 0.0f;
}
-}
-
-/*
- * Returns the square of the minimum distance between the point and a triangle surface
- * If nearest is not NULL the nearest surface point is written on it
- */
-static float nearest_point_in_tri_surface(const float *point, const float *v0, const float *v1, const float *v2, float *nearest)
-{
- //Lets solve the 2D problem (closest point-tri)
- float normal_dist, plane_sdist, plane_offset;
- float du[3], dv[3], dw[3]; //orthogonal axis (du=(v0->v1), dw=plane normal)
-
- float p_2d[2], tri_2d[3][2], nearest_2d[2];
-
- CalcNormFloat((float*)v0, (float*)v1, (float*)v2, dw);
-
- //point-plane distance and calculate axis
- normal_dist = point_plane_distance(point, v0, dw);
-
- // OPTIMIZATION
- // if we are only interested in nearest distance if its closer than some distance already found
- // we can:
- // if(normal_dist*normal_dist >= best_dist_so_far) return FLOAT_MAX;
- //
- VECSUB(du, v1, v0);
- Normalize(du);
- Crossf(dv, dw, du);
- plane_offset = INPR(v0, dw);
-
- //project stuff to 2d
- tri_2d[0][0] = INPR(du, v0);
- tri_2d[0][1] = INPR(dv, v0);
-
- tri_2d[1][0] = INPR(du, v1);
- tri_2d[1][1] = INPR(dv, v1);
-
- tri_2d[2][0] = INPR(du, v2);
- tri_2d[2][1] = INPR(dv, v2);
-
- p_2d[0] = INPR(du, point);
- p_2d[1] = INPR(dv, point);
-
- //we always have a right-handed tri
- //this should always happen because of the way normal is calculated
- plane_sdist = closest_point_in_tri2D(p_2d, tri_2d, nearest_2d);
-
- //project back to 3d
- if(nearest)
+ // Account for numerical round-off error
+ if ( sqrDist < FLT_EPSILON )
+ sqrDist = 0.0f;
+
{
- nearest[0] = du[0]*nearest_2d[0] + dv[0] * nearest_2d[1] + dw[0] * plane_offset;
- nearest[1] = du[1]*nearest_2d[0] + dv[1] * nearest_2d[1] + dw[1] * plane_offset;
- nearest[2] = du[2]*nearest_2d[0] + dv[2] * nearest_2d[1] + dw[2] * plane_offset;
+ float w[3], x[3], y[3], z[3];
+ VECCOPY(w, v0);
+ VECCOPY(x, e0);
+ VecMulf(x, S);
+ VECCOPY(y, e1);
+ VecMulf(y, T);
+ VECADD(z, w, x);
+ VECADD(z, z, y);
+ //VECSUB(d, p, z);
+ VECCOPY(nearest, z);
+ // d = p - ( v0 + S * e0 + T * e1 );
}
+ *v = lv;
+ *e = le;
- return plane_sdist + normal_dist*normal_dist;
+ return sqrDist;
}
@@ -268,22 +419,15 @@ static void mesh_faces_nearest_point(void *userdata, int index, const float *co,
do
{
float nearest_tmp[3], dist;
- float vec[3][3];
+ int vertex, edge;
- // only insert valid triangles / quads with area > 0
- VECSUB(vec[0], t2, t1);
- VECSUB(vec[1], t0, t1);
- Crossf(vec[2], vec[0], vec[1]);
- if(INPR(vec[2], vec[2]) >= FLT_EPSILON)
+ dist = nearest_point_in_tri_surface(t0, t1, t2, co, &vertex, &edge, nearest_tmp);
+ if(dist < nearest->dist)
{
- dist = nearest_point_in_tri_surface(co,t0, t1, t2, nearest_tmp);
- if(dist < nearest->dist)
- {
- nearest->index = index;
- nearest->dist = dist;
- VECCOPY(nearest->co, nearest_tmp);
- CalcNormFloat((float*)t0, (float*)t1, (float*)t2, nearest->no); //TODO.. (interpolate normals from the vertexs coordinates?
- }
+ nearest->index = index;
+ nearest->dist = dist;
+ VECCOPY(nearest->co, nearest_tmp);
+ CalcNormFloat(t0, t1, t2, nearest->no);
}
t1 = t2;
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index c7817b017ef..dbc94571cad 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -155,7 +155,7 @@ void cloth_init ( ClothModifierData *clmd )
BVHTree *bvhselftree_build_from_cloth (ClothModifierData *clmd, float epsilon)
{
- int i;
+ unsigned int i;
BVHTree *bvhtree;
Cloth *cloth = clmd->clothObject;
ClothVertex *verts;
@@ -196,7 +196,7 @@ BVHTree *bvhselftree_build_from_cloth (ClothModifierData *clmd, float epsilon)
BVHTree *bvhtree_build_from_cloth (ClothModifierData *clmd, float epsilon)
{
- int i;
+ unsigned int i;
BVHTree *bvhtree;
Cloth *cloth = clmd->clothObject;
ClothVertex *verts;
@@ -782,11 +782,11 @@ static void cloth_to_object (Object *ob, ClothModifierData *clmd, DerivedMesh *
/* can be optimized to do all groups in one loop */
static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
{
- unsigned int i = 0;
- unsigned int j = 0;
+ int i = 0;
+ int j = 0;
MDeformVert *dvert = NULL;
Cloth *clothObj = NULL;
- unsigned int numverts = dm->getNumVerts ( dm );
+ int numverts = dm->getNumVerts ( dm );
float goalfac = 0;
ClothVertex *verts = NULL;
@@ -857,7 +857,7 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr, int first)
{
- unsigned int i = 0;
+ int i = 0;
MVert *mvert = NULL;
ClothVertex *verts = NULL;
float tnull[3] = {0,0,0};
@@ -1082,13 +1082,13 @@ int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
Cloth *cloth = clmd->clothObject;
ClothSpring *spring = NULL, *tspring = NULL, *tspring2 = NULL;
unsigned int struct_springs = 0, shear_springs=0, bend_springs = 0;
- unsigned int i = 0;
- unsigned int numverts = dm->getNumVerts ( dm );
- unsigned int numedges = dm->getNumEdges ( dm );
- unsigned int numfaces = dm->getNumFaces ( dm );
+ int i = 0;
+ int numverts = dm->getNumVerts ( dm );
+ int numedges = dm->getNumEdges ( dm );
+ int numfaces = dm->getNumFaces ( dm );
MEdge *medge = CDDM_get_edges ( dm );
MFace *mface = CDDM_get_faces ( dm );
- unsigned int index2 = 0; // our second vertex index
+ int index2 = 0; // our second vertex index
LinkNode **edgelist = NULL;
EdgeHash *edgehash = NULL;
LinkNode *search = NULL, *search2 = NULL;
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index cfcab54058d..b5e09d551f0 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -31,10 +31,11 @@
#include "BKE_cloth.h"
-#include "DNA_group_types.h"
-#include "DNA_object_types.h"
#include "DNA_cloth_types.h"
+#include "DNA_group_types.h"
#include "DNA_mesh_types.h"
+#include "DNA_object_types.h"
+#include "DNA_object_force.h"
#include "DNA_scene_types.h"
#include "BKE_DerivedMesh.h"
@@ -1307,9 +1308,34 @@ CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj)
for ( base = G.scene->base.first; base; base = base->next )
{
coll_ob = base->object;
- collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
-
- if ( !collmd )
+
+ if(coll_ob->pd && coll_ob->pd->deflect)
+ {
+ collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
+ }
+
+ if ( collmd )
+ {
+ if(coll_ob == self)
+ continue;
+
+ if(numobj >= maxobj)
+ {
+ // realloc
+ int oldmax = maxobj;
+ CollisionModifierData **tmp;
+ maxobj *= 2;
+ tmp = MEM_callocN(sizeof(CollisionModifierData *)*maxobj, "CollisionObjectsArray");
+ memcpy(tmp, objs, sizeof(CollisionModifierData *)*oldmax);
+ MEM_freeN(objs);
+ objs = tmp;
+
+ }
+
+ objs[numobj] = collmd;
+ numobj++;
+ }
+ else
{
if ( coll_ob->dup_group )
{
@@ -1319,8 +1345,12 @@ CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj)
for ( go= group->gobject.first; go; go= go->next )
{
coll_ob = go->ob;
-
- collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
+ collmd = NULL;
+
+ if(coll_ob->pd && coll_ob->pd->deflect)
+ {
+ collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
+ }
if ( !collmd )
continue;
@@ -1347,27 +1377,6 @@ CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj)
numobj++;
}
}
- }
- else
- {
- if(coll_ob == self)
- continue;
-
- if(numobj >= maxobj)
- {
- // realloc
- int oldmax = maxobj;
- CollisionModifierData **tmp;
- maxobj *= 2;
- tmp = MEM_callocN(sizeof(CollisionModifierData *)*maxobj, "CollisionObjectsArray");
- memcpy(tmp, objs, sizeof(CollisionModifierData *)*oldmax);
- MEM_freeN(objs);
- objs = tmp;
-
- }
-
- objs[numobj] = collmd;
- numobj++;
}
}
*numcollobj = numobj;
@@ -1484,6 +1493,9 @@ int cloth_bvh_objcollision ( Object *ob, ClothModifierData * clmd, float step, f
BVHTreeOverlap *overlap = NULL;
int result = 0;
+ if(!collmd->bvhtree)
+ continue;
+
/* move object to position (step) in time */
collision_move_object ( collmd, step + dt, step );
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index ab53571b62d..3143c5e4df2 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -220,3 +220,31 @@ void unique_vertexgroup_name (bDeformGroup *dg, Object *ob)
}
}
}
+
+float deformvert_get_weight(const struct MDeformVert *dvert, int group_num)
+{
+ if(dvert)
+ {
+ const MDeformWeight *dw = dvert->dw;
+ int i;
+
+ for(i=dvert->totweight; i>0; i--, dw++)
+ if(dw->def_nr == group_num)
+ return dw->weight;
+ }
+
+ /* Not found */
+ return 0.0;
+}
+
+float vertexgroup_get_vertex_weight(const struct MDeformVert *dvert, int index, int group_num)
+{
+ if(group_num == -1)
+ return 1.0;
+
+ if(dvert == 0)
+ return 0.0;
+
+ return deformvert_get_weight(dvert+index, group_num);
+}
+
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 298e4b81d5b..3b79f6689c0 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -88,6 +88,8 @@
#include "RE_pipeline.h"
#include "RE_shader_ext.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
static void boundbox_displist(Object *ob);
@@ -986,9 +988,9 @@ void filldisplist(ListBase *dispbase, ListBase *to)
efa= fillfacebase.first;
index= dlnew->index;
while(efa) {
- index[0]= (long)efa->v1->tmp.l;
- index[1]= (long)efa->v2->tmp.l;
- index[2]= (long)efa->v3->tmp.l;
+ index[0]= (intptr_t)efa->v1->tmp.l;
+ index[1]= (intptr_t)efa->v2->tmp.l;
+ index[2]= (intptr_t)efa->v3->tmp.l;
index+= 3;
efa= efa->next;
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index 4588ef800e1..0842e55a0ea 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -59,6 +59,7 @@
#include "BKE_armature.h"
#include "BKE_bad_level_calls.h"
#include "BKE_blender.h"
+#include "BKE_collision.h"
#include "BKE_constraint.h"
#include "BKE_deform.h"
#include "BKE_depsgraph.h"
@@ -157,6 +158,13 @@ static void add_to_effectorcache(ListBase *lb, Object *ob, Object *obsrc)
}
}
else if(pd->forcefield) {
+
+ if(pd->forcefield == PFIELD_WIND)
+ {
+ pd->rng = rng_new(1);
+ rng_srandom(pd->rng, (unsigned int)(ceil(PIL_check_seconds_timer()))); // use better seed
+ }
+
ec= MEM_callocN(sizeof(pEffectorCache), "effector cache");
ec->ob= ob;
BLI_addtail(lb, ec);
@@ -205,13 +213,279 @@ void pdEndEffectors(ListBase *lb)
pEffectorCache *ec;
/* restore full copy */
for(ec= lb->first; ec; ec= ec->next)
+ {
+ if(ec->ob->pd && (ec->ob->pd->forcefield == PFIELD_WIND))
+ rng_free(ec->ob->pd->rng);
+
*(ec->ob)= ec->obcopy;
+ }
BLI_freelistN(lb);
}
}
+/************************************************/
+/* Effectors */
+/************************************************/
+
+// triangle - ray callback function
+static void eff_tri_ray_hit(void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
+{
+ // whenever we hit a bounding box, we don't check further
+ hit->dist = -1;
+ hit->index = 1;
+}
+
+// get visibility of a wind ray
+static float eff_calc_visibility(Object *ob, float *co, float *dir)
+{
+ CollisionModifierData **collobjs = NULL;
+ int numcollobj = 0, i;
+ float norm[3], len = 0.0;
+ float visibility = 1.0;
+
+ collobjs = get_collisionobjects(ob, &numcollobj);
+
+ if(!collobjs)
+ return 0;
+
+ VECCOPY(norm, dir);
+ VecMulf(norm, -1.0);
+ len = Normalize(norm);
+
+ // check all collision objects
+ for(i = 0; i < numcollobj; i++)
+ {
+ CollisionModifierData *collmd = collobjs[i];
+
+ if(collmd->bvhtree)
+ {
+ BVHTreeRayHit hit;
+
+ hit.index = -1;
+ hit.dist = len + FLT_EPSILON;
+
+ // check if the way is blocked
+ if(BLI_bvhtree_ray_cast(collmd->bvhtree, co, norm, &hit, eff_tri_ray_hit, NULL)>=0)
+ {
+ // visibility is only between 0 and 1, calculated from 1-absorption
+ visibility *= MAX2(0.0, MIN2(1.0, (1.0-((float)collmd->absorption)*0.01)));
+
+ if(visibility <= 0.0f)
+ break;
+ }
+ }
+ }
+
+ MEM_freeN(collobjs);
+
+ return visibility;
+}
+
+// noise function for wind e.g.
+static float wind_func(struct RNG *rng, float strength)
+{
+ int random = (rng_getInt(rng)+1) % 65535; // max 2357
+ float force = rng_getFloat(rng) + 1.0f;
+ float ret;
+ float sign = 0;
+
+ sign = (random > 32000.0) ? 1.0: -1.0; // dividing by 2 is not giving equal sign distribution
+
+ ret = sign*((float)random / force)*strength/65535.0f;
+
+ return ret;
+}
+
+
+static float falloff_func(float fac, int usemin, float mindist, int usemax, float maxdist, float power)
+{
+ if(!usemin)
+ mindist= 0.0f;
+
+ if(fac < mindist) {
+ return 1.0f;
+ }
+ else if(usemax) {
+ if(fac>maxdist || (maxdist-mindist)<=0.0f)
+ return 0.0f;
+
+ fac= (fac-mindist)/(maxdist-mindist);
+ return 1.0f - (float)pow((double)fac, (double)power);
+ }
+ else
+ return pow((double)1.0f+fac-mindist, (double)-power);
+}
+
+static float falloff_func_dist(PartDeflect *pd, float fac)
+{
+ return falloff_func(fac, pd->flag&PFIELD_USEMIN, pd->mindist, pd->flag&PFIELD_USEMAX, pd->maxdist, pd->f_power);
+}
+
+static float falloff_func_rad(PartDeflect *pd, float fac)
+{
+ return falloff_func(fac, pd->flag&PFIELD_USEMINR, pd->minrad, pd->flag&PFIELD_USEMAXR, pd->maxrad, pd->f_power_r);
+}
+
+float effector_falloff(PartDeflect *pd, float *eff_velocity, float *vec_to_part)
+{
+ float eff_dir[3], temp[3];
+ float falloff=1.0, fac, r_fac;
+
+ if(pd->forcefield==PFIELD_LENNARDJ)
+ return falloff; /* Lennard-Jones field has it's own falloff built in */
+
+ VecCopyf(eff_dir,eff_velocity);
+ Normalize(eff_dir);
+
+ if(pd->flag & PFIELD_POSZ && Inpf(eff_dir,vec_to_part)<0.0f)
+ falloff=0.0f;
+ else switch(pd->falloff){
+ case PFIELD_FALL_SPHERE:
+ fac=VecLength(vec_to_part);
+ falloff= falloff_func_dist(pd, fac);
+ break;
+
+ case PFIELD_FALL_TUBE:
+ fac=Inpf(vec_to_part,eff_dir);
+ falloff= falloff_func_dist(pd, ABS(fac));
+ if(falloff == 0.0f)
+ break;
+
+ VECADDFAC(temp,vec_to_part,eff_dir,-fac);
+ r_fac=VecLength(temp);
+ falloff*= falloff_func_rad(pd, r_fac);
+ break;
+ case PFIELD_FALL_CONE:
+ fac=Inpf(vec_to_part,eff_dir);
+ falloff= falloff_func_dist(pd, ABS(fac));
+ if(falloff == 0.0f)
+ break;
+
+ r_fac=saacos(fac/VecLength(vec_to_part))*180.0f/(float)M_PI;
+ falloff*= falloff_func_rad(pd, r_fac);
+
+ break;
+ }
+
+ return falloff;
+}
+
+void do_physical_effector(Object *ob, float *opco, short type, float force_val, float distance, float falloff, float size, float damp, float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar, struct RNG *rng, float noise_factor, float charge, float pa_size)
+{
+ float mag_vec[3]={0,0,0};
+ float temp[3], temp2[3];
+ float eff_vel[3];
+ float noise = 0, visibility;
+
+ // calculate visibility
+ visibility = eff_calc_visibility(ob, opco, vec_to_part);
+ if(visibility <= 0.0)
+ return;
+ falloff *= visibility;
+
+ VecCopyf(eff_vel,eff_velocity);
+ Normalize(eff_vel);
+
+ switch(type){
+ case PFIELD_WIND:
+ VECCOPY(mag_vec,eff_vel);
+
+ // add wind noise here, only if we have wind
+ if((noise_factor > 0.0f) && (force_val > FLT_EPSILON))
+ noise = wind_func(rng, noise_factor);
+
+ VecMulf(mag_vec,(force_val+noise)*falloff);
+ VecAddf(field,field,mag_vec);
+ break;
+
+ case PFIELD_FORCE:
+ if(planar)
+ Projf(mag_vec,vec_to_part,eff_vel);
+ else
+ VecCopyf(mag_vec,vec_to_part);
+
+ VecMulf(mag_vec,force_val*falloff);
+ VecAddf(field,field,mag_vec);
+ break;
+
+ case PFIELD_VORTEX:
+ Crossf(mag_vec,eff_vel,vec_to_part);
+ Normalize(mag_vec);
+
+ VecMulf(mag_vec,force_val*distance*falloff);
+ VecAddf(field,field,mag_vec);
+
+ break;
+ case PFIELD_MAGNET:
+ if(planar)
+ VecCopyf(temp,eff_vel);
+ else
+ /* magnetic field of a moving charge */
+ Crossf(temp,eff_vel,vec_to_part);
+
+ Crossf(temp2,velocity,temp);
+ VecAddf(mag_vec,mag_vec,temp2);
+
+ VecMulf(mag_vec,force_val*falloff);
+ VecAddf(field,field,mag_vec);
+ break;
+ case PFIELD_HARMONIC:
+ if(planar)
+ Projf(mag_vec,vec_to_part,eff_vel);
+ else
+ VecCopyf(mag_vec,vec_to_part);
+
+ VecMulf(mag_vec,force_val*falloff);
+ VecSubf(field,field,mag_vec);
+
+ VecCopyf(mag_vec,velocity);
+ /* 1.9 is an experimental value to get critical damping at damp=1.0 */
+ VecMulf(mag_vec,damp*1.9f*(float)sqrt(force_val));
+ VecSubf(field,field,mag_vec);
+ break;
+ case PFIELD_CHARGE:
+ if(planar)
+ Projf(mag_vec,vec_to_part,eff_vel);
+ else
+ VecCopyf(mag_vec,vec_to_part);
+
+ VecMulf(mag_vec,charge*force_val*falloff);
+ VecAddf(field,field,mag_vec);
+ break;
+ case PFIELD_LENNARDJ:
+ {
+ float fac;
+
+ if(planar) {
+ Projf(mag_vec,vec_to_part,eff_vel);
+ distance = VecLength(mag_vec);
+ }
+ else
+ VecCopyf(mag_vec,vec_to_part);
+
+ /* at this distance the field is 60 times weaker than maximum */
+ if(distance > 2.22 * (size+pa_size))
+ break;
+
+ fac = pow((size+pa_size)/distance,6.0);
+
+ fac = - fac * (1.0 - fac) / distance;
+
+ /* limit the repulsive term drastically to avoid huge forces */
+ fac = ((fac>2.0) ? 2.0 : fac);
+
+ /* 0.003715 is the fac value at 2.22 times (size+pa_size),
+ substracted to avoid discontinuity at the border
+ */
+ VecMulf(mag_vec, force_val * (fac-0.0037315));
+ VecAddf(field,field,mag_vec);
+ break;
+ }
+ }
+}
+
/* -------- pdDoEffectors() --------
generic force/speed system, now used for particles and softbodies
lb = listbase with objects that take part in effecting
@@ -244,13 +518,10 @@ void pdDoEffectors(ListBase *lb, float *opco, float *force, float *speed, float
pEffectorCache *ec;
PartDeflect *pd;
float vect_to_vert[3];
- float f_force, force_vec[3];
float *obloc;
- float distance, force_val, ffall_val;
- float guidecollect[3], guidedist= 0.0f;
- int cur_frame;
- guidecollect[0]= guidecollect[1]= guidecollect[2]=0.0f;
+ float distance, vec_to_part[3];
+ float falloff;
/* Cycle through collected objects, get total of (1/(gravity_strength * dist^gravity_power)) */
/* Check for min distance here? (yes would be cool to add that, ton) */
@@ -261,178 +532,32 @@ void pdDoEffectors(ListBase *lb, float *opco, float *force, float *speed, float
pd= ob->pd;
/* Get IPO force strength and fall off values here */
- if (has_ipo_code(ob->ipo, OB_PD_FSTR))
- force_val = IPO_GetFloatValue(ob->ipo, OB_PD_FSTR, cur_time);
- else
- force_val = pd->f_strength;
-
- if (has_ipo_code(ob->ipo, OB_PD_FFALL))
- ffall_val = IPO_GetFloatValue(ob->ipo, OB_PD_FFALL, cur_time);
- else
- ffall_val = pd->f_power;
-
- /* Need to set r.cfra for paths (investigate, ton) (uses ob->ctime now, ton) */
- if(ob->ctime!=cur_time) {
- cur_frame = G.scene->r.cfra;
- G.scene->r.cfra = (int)cur_time;
- where_is_object_time(ob, cur_time);
- G.scene->r.cfra = cur_frame;
- }
+ where_is_object_time(ob,cur_time);
/* use center of object for distance calculus */
obloc= ob->obmat[3];
VECSUB(vect_to_vert, obloc, opco);
distance = VecLength(vect_to_vert);
-
- if((pd->flag & PFIELD_USEMAX) && distance>pd->maxdist && pd->forcefield != PFIELD_GUIDE)
- ; /* don't do anything */
- else if((pd->flag & PFIELD_USEMIN) && distance<pd->mindist && pd->forcefield != PFIELD_GUIDE)
+
+ VecSubf(vec_to_part, opco, ob->obmat[3]);
+ distance = VecLength(vec_to_part);
+
+ falloff=effector_falloff(pd,ob->obmat[2],vec_to_part);
+
+ if(falloff<=0.0f)
; /* don't do anything */
- else if(pd->forcefield == PFIELD_WIND) {
- VECCOPY(force_vec, ob->obmat[2]);
-
- /* wind works harder perpendicular to normal, would be nice for softbody later (ton) */
+ else {
+ float field[3]={0,0,0}, tmp[3];
+ VECCOPY(field, force);
+ do_physical_effector(ob, opco, pd->forcefield,pd->f_strength,distance,
+ falloff,pd->f_dist,pd->f_damp,ob->obmat[2],vec_to_part,
+ speed,force,pd->flag&PFIELD_PLANAR, pd->rng, pd->f_noise, 0.0f, 0.0f);
- /* Limit minimum distance to vertex so that */
- /* the force is not too big */
- if (distance < 0.001) distance = 0.001f;
- f_force = (force_val)*(1/(1000 * (float)pow((double)distance, (double)ffall_val)));
- /* this option for softbody only */
- if(flags && PE_WIND_AS_SPEED){
- speed[0] -= (force_vec[0] * f_force );
- speed[1] -= (force_vec[1] * f_force );
- speed[2] -= (force_vec[2] * f_force );
+ // for softbody backward compatibility
+ if(flags & PE_WIND_AS_SPEED){
+ VECSUB(tmp, force, field);
+ VECSUB(speed, speed, tmp);
}
- else{
- force[0] += force_vec[0]*f_force;
- force[1] += force_vec[1]*f_force;
- force[2] += force_vec[2]*f_force;
- }
- }
- else if(pd->forcefield == PFIELD_FORCE) {
-
- /* only use center of object */
- obloc= ob->obmat[3];
-
- /* Now calculate the gravitational force */
- VECSUB(vect_to_vert, obloc, opco);
- distance = VecLength(vect_to_vert);
-
- /* Limit minimum distance to vertex so that */
- /* the force is not too big */
- if (distance < 0.001) distance = 0.001f;
- f_force = (force_val)*(1.0/(1000.0 * (float)pow((double)distance, (double)ffall_val)));
- force[0] += (vect_to_vert[0] * f_force );
- force[1] += (vect_to_vert[1] * f_force );
- force[2] += (vect_to_vert[2] * f_force );
}
- else if(pd->forcefield == PFIELD_VORTEX) {
- float vortexvec[3];
-
- /* only use center of object */
- obloc= ob->obmat[3];
-
- /* Now calculate the vortex force */
- VECSUB(vect_to_vert, obloc, opco);
- distance = VecLength(vect_to_vert);
-
- Crossf(force_vec, ob->obmat[2], vect_to_vert);
- Normalize(force_vec);
-
- /* Limit minimum distance to vertex so that */
- /* the force is not too big */
- if (distance < 0.001) distance = 0.001f;
- f_force = (force_val)*(1.0/(100.0 * (float)pow((double)distance, (double)ffall_val)));
- vortexvec[0]= -(force_vec[0] * f_force );
- vortexvec[1]= -(force_vec[1] * f_force );
- vortexvec[2]= -(force_vec[2] * f_force );
-
- /* this option for softbody only */
- if(flags &&PE_WIND_AS_SPEED) {
- speed[0]+= vortexvec[0];
- speed[1]+= vortexvec[1];
- speed[2]+= vortexvec[2];
- }
- else {
- /* since vortex alters the speed, we have to correct for the previous vortex result */
- speed[0]+= vortexvec[0] - ec->oldspeed[0];
- speed[1]+= vortexvec[1] - ec->oldspeed[1];
- speed[2]+= vortexvec[2] - ec->oldspeed[2];
-
- VECCOPY(ec->oldspeed, vortexvec);
- }
- }
- else if(pd->forcefield == PFIELD_GUIDE) {
- float guidevec[4], guidedir[3];
- float mindist= force_val; /* force_val is actually mindist in the UI */
-
- distance= ec->guide_dist;
-
- /* WARNING: bails out with continue here */
- if((pd->flag & PFIELD_USEMAX) && distance>pd->maxdist) continue;
-
- /* calculate contribution factor for this guide */
- if(distance<=mindist) f_force= 1.0f;
- else if(pd->flag & PFIELD_USEMAX) {
- if(distance>pd->maxdist || mindist>=pd->maxdist) f_force= 0.0f;
- else {
- f_force= 1.0f - (distance-mindist)/(pd->maxdist - mindist);
- if(ffall_val!=0.0f)
- f_force = (float)pow(f_force, ffall_val+1.0);
- }
- }
- else {
- f_force= 1.0f/(1.0f + distance-mindist);
- if(ffall_val!=0.0f)
- f_force = (float)pow(f_force, ffall_val+1.0);
- }
-
- /* now derive path point from loc_time */
- if(pd->flag & PFIELD_GUIDE_PATH_ADD)
- where_on_path(ob, f_force*loc_time*ec->time_scale, guidevec, guidedir);
- else
- where_on_path(ob, loc_time*ec->time_scale, guidevec, guidedir);
-
- VECSUB(guidedir, guidevec, ec->oldloc);
- VECCOPY(ec->oldloc, guidevec);
-
- Mat4Mul3Vecfl(ob->obmat, guidedir);
- VecMulf(guidedir, ec->scale); /* correction for lifetime and speed */
-
- /* we subtract the speed we gave it previous step */
- VECCOPY(guidevec, guidedir);
- VECSUB(guidedir, guidedir, ec->oldspeed);
- VECCOPY(ec->oldspeed, guidevec);
-
- /* if it fully contributes, we stop */
- if(f_force==1.0) {
- VECCOPY(guidecollect, guidedir);
- guidedist= 1.0f;
- break;
- }
- else if(guidedist<1.0f) {
- VecMulf(guidedir, f_force);
- VECADD(guidecollect, guidecollect, guidedir);
- guidedist += f_force;
- }
- }
- }
-
- /* all guides are accumulated here */
- if(guidedist!=0.0f) {
- if(guidedist!=1.0f) VecMulf(guidecollect, 1.0f/guidedist);
- VECADD(speed, speed, guidecollect);
}
}
-
-
-/* for paf start to end, store all matrices for objects */
-typedef struct pMatrixCache {
- float obmat[4][4];
- float imat[3][3];
-} pMatrixCache;
-
-/* for fluidsim win32 debug messages */
-#if defined(WIN32) && (!(defined snprintf))
-#define snprintf _snprintf
-#endif
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index cab7865c1b6..b9e3c593ddf 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -50,6 +50,8 @@
#include "BKE_icons.h"
#include "BKE_utildefines.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#define GS(a) (*((short *)(a)))
/* GLOBALS */
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index b6c8ad59e08..07537e3a81c 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -86,6 +86,8 @@
#include "blendef.h"
#include "BSE_time.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* max int, to indicate we don't store sequences in ibuf */
#define IMA_NO_INDEX 0x7FEFEFEF
@@ -630,11 +632,11 @@ void free_old_images()
}
}
-static unsigned long image_mem_size(Image *ima)
+static uintptr_t image_mem_size(Image *ima)
{
ImBuf *ibuf, *ibufm;
int level;
- unsigned long size = 0;
+ uintptr_t size = 0;
size= 0;
for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next) {
@@ -656,7 +658,7 @@ static unsigned long image_mem_size(Image *ima)
void BKE_image_print_memlist(void)
{
Image *ima;
- unsigned long size, totsize= 0;
+ uintptr_t size, totsize= 0;
for(ima= G.main->image.first; ima; ima= ima->id.next)
totsize += image_mem_size(ima);
diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c
index 297ac0b1530..93e35a4db06 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -1354,25 +1354,57 @@ DO_INLINE void cloth_apply_spring_force(ClothModifierData *clmd, ClothSpring *s,
}
}
+
+static void CalcFloat( float *v1, float *v2, float *v3, float *n)
+{
+ float n1[3],n2[3];
+
+ n1[0]= v1[0]-v2[0];
+ n2[0]= v2[0]-v3[0];
+ n1[1]= v1[1]-v2[1];
+ n2[1]= v2[1]-v3[1];
+ n1[2]= v1[2]-v2[2];
+ n2[2]= v2[2]-v3[2];
+ n[0]= n1[1]*n2[2]-n1[2]*n2[1];
+ n[1]= n1[2]*n2[0]-n1[0]*n2[2];
+ n[2]= n1[0]*n2[1]-n1[1]*n2[0];
+}
+
+static void CalcFloat4( float *v1, float *v2, float *v3, float *v4, float *n)
+{
+ /* real cross! */
+ float n1[3],n2[3];
+
+ n1[0]= v1[0]-v3[0];
+ n1[1]= v1[1]-v3[1];
+ n1[2]= v1[2]-v3[2];
+
+ n2[0]= v2[0]-v4[0];
+ n2[1]= v2[1]-v4[1];
+ n2[2]= v2[2]-v4[2];
+
+ n[0]= n1[1]*n2[2]-n1[2]*n2[1];
+ n[1]= n1[2]*n2[0]-n1[0]*n2[2];
+ n[2]= n1[0]*n2[1]-n1[1]*n2[0];
+}
+
float calculateVertexWindForce(float wind[3], float vertexnormal[3])
{
- return fabs(INPR(wind, vertexnormal));
+ return (INPR(wind, vertexnormal));
}
void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVector *lV, fmatrix3x3 *dFdV, fmatrix3x3 *dFdX, ListBase *effectors, float time, fmatrix3x3 *M)
{
/* Collect forces and derivatives: F,dFdX,dFdV */
Cloth *cloth = clmd->clothObject;
- long i = 0;
+ int i = 0;
float spring_air = clmd->sim_parms->Cvi * 0.01f; /* viscosity of air scaled in percent */
float gravity[3];
float tm2[3][3] = {{-spring_air,0,0}, {0,-spring_air,0},{0,0,-spring_air}};
MFace *mfaces = cloth->mfaces;
- //ClothVertex *verts = cloth->verts;
- float wind_normalized[3];
unsigned int numverts = cloth->numverts;
LinkNode *search = cloth->springs;
-
+ lfVector *winvec;
VECCOPY(gravity, clmd->sim_parms->gravity);
mul_fvector_S(gravity, gravity, 0.001f); /* scale gravity force */
@@ -1387,7 +1419,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
/* multiply lF with mass matrix
// force = mass * acceleration (in this case: gravity)
*/
- for(i = 0; i < (long)numverts; i++)
+ for(i = 0; i < numverts; i++)
{
float temp[3];
VECCOPY(temp, lF[i]);
@@ -1399,70 +1431,61 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
/* handle external forces like wind */
if(effectors)
{
- for(i = 0; i < cloth->numfaces; i++)
+ // 0 = force, 1 = normalized force
+ winvec = create_lfvector(cloth->numverts);
+
+ if(!winvec)
+ printf("winvec: out of memory in implicit.c\n");
+
+ // precalculate wind forces
+ for(i = 0; i < cloth->numverts; i++)
{
- float vertexnormal[3]={0,0,0};
float speed[3] = {0.0f, 0.0f,0.0f};
- float force[3]= {0.0f, 0.0f, 0.0f};
+ pdDoEffectors(effectors, lX[i], winvec[i], speed, (float)G.scene->r.cfra, 0.0f, 0);
+ }
+
+ for(i = 0; i < cloth->numfaces; i++)
+ {
+ float trinormal[3]={0,0,0}; // normalized triangle normal
+ float triunnormal[3]={0,0,0}; // not-normalized-triangle normal
+ float tmp[3]={0,0,0};
+ float factor = (mfaces[i].v4) ? 0.25 : 1.0 / 3.0;
+ factor *= 0.02;
+
+ // calculate face normal
if(mfaces[i].v4)
- CalcNormFloat4(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],lX[mfaces[i].v4],vertexnormal);
+ CalcFloat4(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],lX[mfaces[i].v4],triunnormal);
else
- CalcNormFloat(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],vertexnormal);
+ CalcFloat(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],triunnormal);
- pdDoEffectors(effectors, lX[mfaces[i].v1], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
- VECCOPY(wind_normalized, speed);
- Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
+ VECCOPY(trinormal, triunnormal);
+ Normalize(trinormal);
- if(mfaces[i].v4)
- {
- VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], wind_normalized, 0.25);
- }
- else
- {
- VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], wind_normalized, 1.0 / 3.0);
- }
+ // add wind from v1
+ VECCOPY(tmp, trinormal);
+ VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v1], triunnormal));
+ VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], tmp, factor);
- speed[0] = speed[1] = speed[2] = 0.0;
- pdDoEffectors(effectors, lX[mfaces[i].v2], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
- VECCOPY(wind_normalized, speed);
- Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
- if(mfaces[i].v4)
- {
- VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 0.25);
- }
- else
- {
- VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 1.0 / 3.0);
- }
+ // add wind from v2
+ VECCOPY(tmp, trinormal);
+ VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v2], triunnormal));
+ VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], tmp, factor);
- speed[0] = speed[1] = speed[2] = 0.0;
- pdDoEffectors(effectors, lX[mfaces[i].v3], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
- VECCOPY(wind_normalized, speed);
- Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
- if(mfaces[i].v4)
- {
- VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 0.25);
- }
- else
- {
- VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 1.0 / 3.0);
- }
+ // add wind from v3
+ VECCOPY(tmp, trinormal);
+ VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v3], triunnormal));
+ VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], tmp, factor);
- speed[0] = speed[1] = speed[2] = 0.0;
+ // add wind from v4
if(mfaces[i].v4)
{
- pdDoEffectors(effectors, lX[mfaces[i].v4], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
- VECCOPY(wind_normalized, speed);
- Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
- VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], wind_normalized, 0.25);
+ VECCOPY(tmp, trinormal);
+ VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v4], triunnormal));
+ VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], tmp, factor);
}
-
}
+ del_lfvector(winvec);
}
// calculate spring forces
diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c
index f4a500da9a3..4ba4f6b02f9 100644
--- a/source/blender/blenkernel/intern/ipo.c
+++ b/source/blender/blenkernel/intern/ipo.c
@@ -184,7 +184,7 @@ int part_ar[PART_TOTIPO]= {
PART_EMIT_FREQ, PART_EMIT_LIFE, PART_EMIT_VEL, PART_EMIT_AVE, PART_EMIT_SIZE,
PART_AVE, PART_SIZE, PART_DRAG, PART_BROWN, PART_DAMP, PART_LENGTH, PART_CLUMP,
PART_GRAV_X, PART_GRAV_Y, PART_GRAV_Z, PART_KINK_AMP, PART_KINK_FREQ, PART_KINK_SHAPE,
- PART_BB_TILT
+ PART_BB_TILT, PART_PD_FSTR, PART_PD_FFALL, PART_PD_FMAXD, PART_PD2_FSTR, PART_PD2_FFALL, PART_PD2_FMAXD
};
@@ -1610,6 +1610,18 @@ void *get_ipo_poin(ID *id, IpoCurve *icu, int *type)
poin= &(part->kink_shape); break;
case PART_BB_TILT:
poin= &(part->bb_tilt); break;
+ case PART_PD_FSTR:
+ poin= (part->pd?(&(part->pd->f_strength)):NULL); break;
+ case PART_PD_FFALL:
+ poin= (part->pd?(&(part->pd->f_power)):NULL); break;
+ case PART_PD_FMAXD:
+ poin= (part->pd?(&(part->pd->maxdist)):NULL); break;
+ case PART_PD2_FSTR:
+ poin= (part->pd2?(&(part->pd2->f_strength)):NULL); break;
+ case PART_PD2_FFALL:
+ poin= (part->pd2?(&(part->pd2->f_power)):NULL); break;
+ case PART_PD2_FMAXD:
+ poin= (part->pd2?(&(part->pd2->maxdist)):NULL); break;
}
}
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 8bc82a6731c..2b8e97f4cbc 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -102,6 +102,8 @@
#include "BKE_utildefines.h"
#include "depsgraph_private.h"
+#include "BKE_deform.h"
+#include "BKE_shrinkwrap.h"
#include "LOD_DependKludge.h"
#include "LOD_decimation.h"
@@ -5494,7 +5496,7 @@ static void collisionModifier_deformVerts(
numverts = dm->getNumVerts ( dm );
- if(current_time > collmd->time)
+ if((current_time > collmd->time)|| (BKE_ptcache_get_continue_physics()))
{
// check if mesh has changed
if(collmd->x && (numverts != collmd->numverts))
@@ -6121,22 +6123,6 @@ CustomDataMask explodeModifier_requiredDataMask(ModifierData *md)
return dataMask;
}
-/* this should really be put somewhere permanently */
-static float vert_weight(MDeformVert *dvert, int group)
-{
- MDeformWeight *dw;
- int i;
-
- if(dvert) {
- dw= dvert->dw;
- for(i= dvert->totweight; i>0; i--, dw++) {
- if(dw->def_nr == group) return dw->weight;
- if(i==1) break; /*otherwise dw will point to somewhere it shouldn't*/
- }
- }
- return 0.0;
-}
-
static void explodeModifier_createFacepa(ExplodeModifierData *emd,
ParticleSystemModifierData *psmd,
Object *ob, DerivedMesh *dm)
@@ -6180,7 +6166,7 @@ static void explodeModifier_createFacepa(ExplodeModifierData *emd,
for(i=0; i<totvert; i++){
val = BLI_frand();
val = (1.0f-emd->protect)*val + emd->protect*0.5f;
- if(val < vert_weight(dvert+i,emd->vgroup-1))
+ if(val < deformvert_get_weight(dvert+i,emd->vgroup-1))
vertpa[i] = -1;
}
}
@@ -7324,6 +7310,126 @@ static void meshdeformModifier_deformVertsEM(
dm->release(dm);
}
+
+/* Shrinkwrap */
+
+static void shrinkwrapModifier_initData(ModifierData *md)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+ smd->shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE;
+ smd->shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR;
+ smd->keepDist = 0.0f;
+
+ smd->target = NULL;
+ smd->auxTarget = NULL;
+}
+
+static void shrinkwrapModifier_copyData(ModifierData *md, ModifierData *target)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*)md;
+ ShrinkwrapModifierData *tsmd = (ShrinkwrapModifierData*)target;
+
+ tsmd->target = smd->target;
+ tsmd->auxTarget = smd->auxTarget;
+
+ strcpy(tsmd->vgroup_name, smd->vgroup_name);
+
+ tsmd->keepDist = smd->keepDist;
+ tsmd->shrinkType= smd->shrinkType;
+ tsmd->shrinkOpts= smd->shrinkOpts;
+}
+
+CustomDataMask shrinkwrapModifier_requiredDataMask(ModifierData *md)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md;
+ CustomDataMask dataMask = 0;
+
+ /* ask for vertexgroups if we need them */
+ if(smd->vgroup_name[0])
+ dataMask |= (1 << CD_MDEFORMVERT);
+
+ if(smd->shrinkType == MOD_SHRINKWRAP_PROJECT
+ && smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL)
+ dataMask |= (1 << CD_MVERT);
+
+ return dataMask;
+}
+
+static int shrinkwrapModifier_isDisabled(ModifierData *md)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+ return !smd->target;
+}
+
+
+static void shrinkwrapModifier_foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+
+ walk(userData, ob, &smd->target);
+ walk(userData, ob, &smd->auxTarget);
+}
+
+static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+{
+ DerivedMesh *dm = NULL;
+ CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md);
+
+ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
+ if(shrinkwrapModifier_requiredDataMask(md))
+ {
+ if(derivedData) dm = CDDM_copy(derivedData);
+ else if(ob->type==OB_MESH) dm = CDDM_from_mesh(ob->data, ob);
+ else return;
+
+ if(dataMask & CD_MVERT)
+ {
+ CDDM_apply_vert_coords(dm, vertexCos);
+ CDDM_calc_normals(dm);
+ }
+ }
+
+ shrinkwrapModifier_deform((ShrinkwrapModifierData*)md, ob, dm, vertexCos, numVerts);
+
+ if(dm)
+ dm->release(dm);
+}
+
+static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+{
+ DerivedMesh *dm = NULL;
+ CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md);
+
+ if(dataMask)
+ {
+ if(derivedData) dm = CDDM_copy(derivedData);
+ else if(ob->type==OB_MESH) dm = CDDM_from_editmesh(editData, ob->data);
+ else return;
+
+ if(dataMask & CD_MVERT)
+ {
+ CDDM_apply_vert_coords(dm, vertexCos);
+ CDDM_calc_normals(dm);
+ }
+ }
+
+ shrinkwrapModifier_deform((ShrinkwrapModifierData*)md, ob, dm, vertexCos, numVerts);
+
+ if(dm)
+ dm->release(dm);
+}
+
+static void shrinkwrapModifier_updateDepgraph(ModifierData *md, DagForest *forest, Object *ob, DagNode *obNode)
+{
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+
+ if (smd->target)
+ dag_add_relation(forest, dag_get_node(forest, smd->target), obNode, DAG_RL_OB_DATA | DAG_RL_DATA_DATA, "Shrinkwrap Modifier");
+
+ if (smd->auxTarget)
+ dag_add_relation(forest, dag_get_node(forest, smd->auxTarget), obNode, DAG_RL_OB_DATA | DAG_RL_DATA_DATA, "Shrinkwrap Modifier");
+}
+
/***/
static ModifierTypeInfo typeArr[NUM_MODIFIER_TYPES];
@@ -7656,6 +7762,21 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti->applyModifier = fluidsimModifier_applyModifier;
mti->updateDepgraph = fluidsimModifier_updateDepgraph;
+ mti = INIT_TYPE(Shrinkwrap);
+ mti->type = eModifierTypeType_OnlyDeform;
+ mti->flags = eModifierTypeFlag_AcceptsMesh
+ | eModifierTypeFlag_AcceptsCVs
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
+ mti->initData = shrinkwrapModifier_initData;
+ mti->copyData = shrinkwrapModifier_copyData;
+ mti->requiredDataMask = shrinkwrapModifier_requiredDataMask;
+ mti->isDisabled = shrinkwrapModifier_isDisabled;
+ mti->foreachObjectLink = shrinkwrapModifier_foreachObjectLink;
+ mti->deformVerts = shrinkwrapModifier_deformVerts;
+ mti->deformVertsEM = shrinkwrapModifier_deformVertsEM;
+ mti->updateDepgraph = shrinkwrapModifier_updateDepgraph;
+
typeArrInit = 0;
#undef INIT_TYPE
}
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 643f90637ad..2f4696fc442 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -320,8 +320,14 @@ int psys_check_enabled(Object *ob, ParticleSystem *psys)
/************************************************/
void psys_free_settings(ParticleSettings *part)
{
- if(part->pd)
+ if(part->pd) {
MEM_freeN(part->pd);
+ part->pd = NULL;
+ }
+ if(part->pd2) {
+ MEM_freeN(part->pd2);
+ part->pd2 = NULL;
+ }
}
void free_hair(ParticleSystem *psys, int softbody)
@@ -3015,6 +3021,7 @@ ParticleSettings *psys_copy_settings(ParticleSettings *part)
partn= copy_libblock(part);
if(partn->pd) partn->pd= MEM_dupallocN(part->pd);
+ if(partn->pd2) partn->pd2= MEM_dupallocN(part->pd2);
return partn;
}
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index b399fdd61d2..98bf8173819 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -60,6 +60,7 @@
#include "BKE_bad_level_calls.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_displist.h"
+#include "BKE_effect.h"
#include "BKE_particle.h"
#include "BKE_global.h"
#include "BKE_utildefines.h"
@@ -2208,174 +2209,6 @@ static int get_particles_from_cache(Object *ob, ParticleSystem *psys, int cfra)
/************************************************/
/* Effectors */
/************************************************/
-static float falloff_func(float fac, int usemin, float mindist, int usemax, float maxdist, float power)
-{
- if(!usemin)
- mindist= 0.0f;
-
- if(fac < mindist) {
- return 1.0f;
- }
- else if(usemax) {
- if(fac>maxdist || (maxdist-mindist)<=0.0f)
- return 0.0f;
-
- fac= (fac-mindist)/(maxdist-mindist);
- return 1.0f - (float)pow((double)fac, (double)power);
- }
- else
- return pow((double)1.0f+fac-mindist, (double)-power);
-}
-
-static float falloff_func_dist(PartDeflect *pd, float fac)
-{
- return falloff_func(fac, pd->flag&PFIELD_USEMIN, pd->mindist, pd->flag&PFIELD_USEMAX, pd->maxdist, pd->f_power);
-}
-
-static float falloff_func_rad(PartDeflect *pd, float fac)
-{
- return falloff_func(fac, pd->flag&PFIELD_USEMINR, pd->minrad, pd->flag&PFIELD_USEMAXR, pd->maxrad, pd->f_power_r);
-}
-
-static float effector_falloff(PartDeflect *pd, float *eff_velocity, float *vec_to_part)
-{
- float eff_dir[3], temp[3];
- float falloff=1.0, fac, r_fac;
-
- VecCopyf(eff_dir,eff_velocity);
- Normalize(eff_dir);
-
- if(pd->flag & PFIELD_POSZ && Inpf(eff_dir,vec_to_part)<0.0f)
- falloff=0.0f;
- else switch(pd->falloff){
- case PFIELD_FALL_SPHERE:
- fac=VecLength(vec_to_part);
- falloff= falloff_func_dist(pd, fac);
- break;
-
- case PFIELD_FALL_TUBE:
- fac=Inpf(vec_to_part,eff_dir);
- falloff= falloff_func_dist(pd, ABS(fac));
- if(falloff == 0.0f)
- break;
-
- VECADDFAC(temp,vec_to_part,eff_dir,-fac);
- r_fac=VecLength(temp);
- falloff*= falloff_func_rad(pd, r_fac);
- break;
- case PFIELD_FALL_CONE:
- fac=Inpf(vec_to_part,eff_dir);
- falloff= falloff_func_dist(pd, ABS(fac));
- if(falloff == 0.0f)
- break;
-
- r_fac=saacos(fac/VecLength(vec_to_part))*180.0f/(float)M_PI;
- falloff*= falloff_func_rad(pd, r_fac);
-
- break;
-// case PFIELD_FALL_INSIDE:
- //for(i=0; i<totface; i++,mface++){
- // VECCOPY(v1,mvert[mface->v1].co);
- // VECCOPY(v2,mvert[mface->v2].co);
- // VECCOPY(v3,mvert[mface->v3].co);
-
- // if(AxialLineIntersectsTriangle(a,co1, co2, v2, v3, v1, &lambda)){
- // if(from==PART_FROM_FACE)
- // (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST;
- // else /* store number of intersections */
- // (pa+(int)(lambda*size[a])*a0mul)->loop++;
- // }
- //
- // if(mface->v4){
- // VECCOPY(v4,mvert[mface->v4].co);
-
- // if(AxialLineIntersectsTriangle(a,co1, co2, v4, v1, v3, &lambda)){
- // if(from==PART_FROM_FACE)
- // (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST;
- // else
- // (pa+(int)(lambda*size[a])*a0mul)->loop++;
- // }
- // }
- //}
-
-// break;
- }
-
- return falloff;
-}
-static void do_physical_effector(short type, float force_val, float distance, float falloff, float size, float damp,
- float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar)
-{
- float mag_vec[3]={0,0,0};
- float temp[3], temp2[3];
- float eff_vel[3];
-
- VecCopyf(eff_vel,eff_velocity);
- Normalize(eff_vel);
-
- switch(type){
- case PFIELD_WIND:
- VECCOPY(mag_vec,eff_vel);
-
- VecMulf(mag_vec,force_val*falloff);
- VecAddf(field,field,mag_vec);
- break;
-
- case PFIELD_FORCE:
- if(planar)
- Projf(mag_vec,vec_to_part,eff_vel);
- else
- VecCopyf(mag_vec,vec_to_part);
-
- VecMulf(mag_vec,force_val*falloff);
- VecAddf(field,field,mag_vec);
- break;
-
- case PFIELD_VORTEX:
- Crossf(mag_vec,eff_vel,vec_to_part);
- Normalize(mag_vec);
-
- VecMulf(mag_vec,force_val*distance*falloff);
- VecAddf(field,field,mag_vec);
-
- break;
- case PFIELD_MAGNET:
- if(planar)
- VecCopyf(temp,eff_vel);
- else
- /* magnetic field of a moving charge */
- Crossf(temp,eff_vel,vec_to_part);
-
- Crossf(temp2,velocity,temp);
- VecAddf(mag_vec,mag_vec,temp2);
-
- VecMulf(mag_vec,force_val*falloff);
- VecAddf(field,field,mag_vec);
- break;
- case PFIELD_HARMONIC:
- if(planar)
- Projf(mag_vec,vec_to_part,eff_vel);
- else
- VecCopyf(mag_vec,vec_to_part);
-
- VecMulf(mag_vec,force_val*falloff);
- VecSubf(field,field,mag_vec);
-
- VecCopyf(mag_vec,velocity);
- /* 1.9 is an experimental value to get critical damping at damp=1.0 */
- VecMulf(mag_vec,damp*1.9f*(float)sqrt(force_val));
- VecSubf(field,field,mag_vec);
- break;
- case PFIELD_NUCLEAR:
- /*pow here is root of cosine expression below*/
- //rad=(float)pow(2.0,-1.0/power)*distance/size;
- //VECCOPY(mag_vec,vec_to_part);
- //Normalize(mag_vec);
- //VecMulf(mag_vec,(float)cos(3.0*M_PI/2.0*(1.0-1.0/(pow(rad,power)+1.0)))/(rad+0.2f));
- //VECADDFAC(field,field,mag_vec,force_val);
- break;
- }
-}
static void do_texture_effector(Tex *tex, short mode, short is_2d, float nabla, short object, float *pa_co, float obmat[4][4], float force_val, float falloff, float *field)
{
TexResult result[4];
@@ -2493,10 +2326,11 @@ static void add_to_effectors(ListBase *lb, Object *ob, Object *obsrc, ParticleSy
for(i=0; epsys; epsys=epsys->next,i++){
type=0;
- if(epsys!=psys){
+ if(epsys!=psys || (psys->part->flag & PART_SELF_EFFECT)){
epart=epsys->part;
- if(epsys->part->pd && epsys->part->pd->forcefield)
+ if((epsys->part->pd && epsys->part->pd->forcefield)
+ || (epsys->part->pd2 && epsys->part->pd2->forcefield))
type=PSYS_EC_PARTICLE;
if(epart->type==PART_REACTOR) {
@@ -2745,35 +2579,31 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P
ListBase *lb=&psys->effectors;
ParticleEffectorCache *ec;
float distance, vec_to_part[3];
- float falloff;
+ float falloff, charge = 0.0f;
int p;
/* check all effector objects for interaction */
if(lb->first){
+ if(psys->part->pd && psys->part->pd->forcefield==PFIELD_CHARGE){
+ /* Only the charge of the effected particle is used for
+ interaction, not fall-offs. If the fall-offs aren't the
+ same this will be unphysical, but for animation this
+ could be the wanted behavior. If you want physical
+ correctness the fall-off should be spherical 2.0 anyways.
+ */
+ charge = psys->part->pd->f_strength;
+ }
+ if(psys->part->pd2 && psys->part->pd2->forcefield==PFIELD_CHARGE){
+ charge += psys->part->pd2->f_strength;
+ }
for(ec = lb->first; ec; ec= ec->next){
eob= ec->ob;
if(ec->type & PSYS_EC_EFFECTOR){
pd=eob->pd;
if(psys->part->type!=PART_HAIR && psys->part->integrator)
where_is_object_time(eob,cfra);
- /* Get IPO force strength and fall off values here */
- //if (has_ipo_code(eob->ipo, OB_PD_FSTR))
- // force_val = IPO_GetFloatValue(eob->ipo, OB_PD_FSTR, cfra);
- //else
- // force_val = pd->f_strength;
-
- //if (has_ipo_code(eob->ipo, OB_PD_FFALL))
- // ffall_val = IPO_GetFloatValue(eob->ipo, OB_PD_FFALL, cfra);
- //else
- // ffall_val = pd->f_power;
-
- //if (has_ipo_code(eob->ipo, OB_PD_FMAXD))
- // maxdist = IPO_GetFloatValue(eob->ipo, OB_PD_FMAXD, cfra);
- //else
- // maxdist = pd->maxdist;
/* use center of object for distance calculus */
- //obloc= eob->obmat[3];
VecSubf(vec_to_part, state->co, eob->obmat[3]);
distance = VecLength(vec_to_part);
@@ -2786,22 +2616,22 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P
pd->flag & PFIELD_TEX_OBJECT, (pd->flag & PFIELD_TEX_ROOTCO) ? rootco : state->co, eob->obmat,
pd->f_strength, falloff, force_field);
} else {
- do_physical_effector(pd->forcefield,pd->f_strength,distance,
- falloff,pd->f_dist,pd->f_damp,eob->obmat[2],vec_to_part,
- pa->state.vel,force_field,pd->flag&PFIELD_PLANAR);
+ do_physical_effector(eob, state->co, pd->forcefield,pd->f_strength,distance,
+ falloff,0.0,pd->f_damp,eob->obmat[2],vec_to_part,
+ pa->state.vel,force_field,pd->flag&PFIELD_PLANAR,pd->rng,pd->f_noise,charge,pa->size);
}
}
if(ec->type & PSYS_EC_PARTICLE){
- int totepart;
+ int totepart, i;
epsys= BLI_findlink(&eob->particlesystem,ec->psys_nbr);
epart= epsys->part;
- pd= epart->pd;
+ pd=epart->pd;
totepart= epsys->totpart;
if(totepart <= 0)
continue;
- if(pd->forcefield==PFIELD_HARMONIC){
+ if(pd && pd->forcefield==PFIELD_HARMONIC){
/* every particle is mapped to only one harmonic effector particle */
p= pa_no%epsys->totpart;
totepart= p+1;
@@ -2813,31 +2643,27 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P
epsys->lattice=psys_get_lattice(ob,psys);
for(; p<totepart; p++){
+ /* particle skips itself as effector */
+ if(epsys==psys && p == pa_no) continue;
+
epa = epsys->particles + p;
estate.time=-1.0;
if(psys_get_particle_state(eob,epsys,p,&estate,0)){
VECSUB(vec_to_part, state->co, estate.co);
distance = VecLength(vec_to_part);
-
- //if(pd->forcefield==PFIELD_HARMONIC){
- // //if(cfra < epa->time + radius){ /* radius is fade-in in ui */
- // // eforce*=(cfra-epa->time)/radius;
- // //}
- //}
- //else{
- // /* Limit minimum distance to effector particle so that */
- // /* the force is not too big */
- // if (distance < 0.001) distance = 0.001f;
- //}
- falloff=effector_falloff(pd,estate.vel,vec_to_part);
+ for(i=0, pd = epart->pd; i<2; i++,pd = epart->pd2) {
+ if(pd==NULL || pd->forcefield==0) continue;
- if(falloff<=0.0f)
- ; /* don't do anything */
- else
- do_physical_effector(pd->forcefield,pd->f_strength,distance,
- falloff,epart->size,pd->f_damp,estate.vel,vec_to_part,
- state->vel,force_field,0);
+ falloff=effector_falloff(pd,estate.vel,vec_to_part);
+
+ if(falloff<=0.0f)
+ ; /* don't do anything */
+ else
+ do_physical_effector(eob, state->co, pd->forcefield,pd->f_strength,distance,
+ falloff,epart->size,pd->f_damp,estate.vel,vec_to_part,
+ state->vel,force_field,0, pd->rng, pd->f_noise,charge,pa->size);
+ }
}
else if(pd->forcefield==PFIELD_HARMONIC && cfra-framestep <= epa->dietime && cfra>epa->dietime){
/* first step after key release */
@@ -3948,27 +3774,44 @@ static void boid_body(BoidVecFunc *bvf, ParticleData *pa, ParticleSystem *psys,
bvf->Addf(dvec,dvec,bvec);
bvf->Addf(state->co,state->co,dvec);
- /* air speed from wind effectors */
- if(psys->effectors.first){
+ /* air speed from wind and vortex effectors */
+ if(psys->effectors.first) {
ParticleEffectorCache *ec;
- for(ec=psys->effectors.first; ec; ec=ec->next){
- if(ec->type & PSYS_EC_EFFECTOR){
+ for(ec=psys->effectors.first; ec; ec=ec->next) {
+ if(ec->type & PSYS_EC_EFFECTOR) {
Object *eob = ec->ob;
PartDeflect *pd = eob->pd;
+ float direction[3], vec_to_part[3];
+ float falloff;
+
+ if(pd->f_strength != 0.0f) {
+ VecCopyf(direction, eob->obmat[2]);
+ VecSubf(vec_to_part, state->co, eob->obmat[3]);
+
+ falloff=effector_falloff(pd, direction, vec_to_part);
+
+ switch(pd->forcefield) {
+ case PFIELD_WIND:
+ if(falloff <= 0.0f)
+ ; /* don't do anything */
+ else {
+ Normalize(direction);
+ VecMulf(direction, pd->f_strength * falloff);
+ bvf->Addf(state->co, state->co, direction);
+ }
+ break;
+ case PFIELD_VORTEX:
+ {
+ float distance, mag_vec[3];
+ Crossf(mag_vec, direction, vec_to_part);
+ Normalize(mag_vec);
- if(pd->forcefield==PFIELD_WIND && pd->f_strength!=0.0){
- float distance, wind[3];
- VecCopyf(wind,eob->obmat[2]);
- distance=VecLenf(state->co,eob->obmat[3]);
-
- if (distance < 0.001) distance = 0.001f;
+ distance = VecLength(vec_to_part);
- if(pd->flag&PFIELD_USEMAX && distance > pd->maxdist)
- ;
- else{
- Normalize(wind);
- VecMulf(wind,pd->f_strength/(float)pow((double)distance,(double)pd->f_power));
- bvf->Addf(state->co,state->co,wind);
+ VecMulf(mag_vec, pd->f_strength * distance * falloff);
+ bvf->Addf(state->co, state->co, mag_vec);
+ break;
+ }
}
}
}
diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c
index fcf1c7ce311..47d11bb9d29 100644
--- a/source/blender/blenkernel/intern/sca.c
+++ b/source/blender/blenkernel/intern/sca.c
@@ -153,6 +153,9 @@ void init_sensor(bSensor *sens)
case SENS_ACTUATOR:
sens->data= MEM_callocN(sizeof(bActuatorSensor), "actsens");
break;
+ case SENS_DELAY:
+ sens->data= MEM_callocN(sizeof(bDelaySensor), "delaysens");
+ break;
case SENS_MOUSE:
ms=sens->data= MEM_callocN(sizeof(bMouseSensor), "mousesens");
ms->type= LEFTMOUSE;
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
new file mode 100644
index 00000000000..292a800e9cd
--- /dev/null
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -0,0 +1,588 @@
+/**
+ * shrinkwrap.c
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): André Pinto
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <memory.h>
+#include <stdio.h>
+#include <time.h>
+#include <assert.h>
+
+#include "DNA_object_types.h"
+#include "DNA_modifier_types.h"
+#include "DNA_meshdata_types.h"
+#include "DNA_mesh_types.h"
+
+#include "BKE_shrinkwrap.h"
+#include "BKE_DerivedMesh.h"
+#include "BKE_utildefines.h"
+#include "BKE_deform.h"
+#include "BKE_cdderivedmesh.h"
+#include "BKE_displist.h"
+#include "BKE_global.h"
+#include "BKE_subsurf.h"
+
+#include "BLI_arithb.h"
+#include "BLI_kdtree.h"
+#include "BLI_kdopbvh.h"
+
+#include "RE_raytrace.h"
+#include "MEM_guardedalloc.h"
+
+
+/* Util macros */
+#define TO_STR(a) #a
+#define JOIN(a,b) a##b
+
+#define OUT_OF_MEMORY() ((void)printf("Shrinkwrap: Out of memory\n"))
+
+/* Benchmark macros */
+#if !defined(_WIN32) && 0
+
+#include <sys/time.h>
+
+#define BENCH(a) \
+ do { \
+ double _t1, _t2; \
+ struct timeval _tstart, _tend; \
+ clock_t _clock_init = clock(); \
+ gettimeofday ( &_tstart, NULL); \
+ (a); \
+ gettimeofday ( &_tend, NULL); \
+ _t1 = ( double ) _tstart.tv_sec + ( double ) _tstart.tv_usec/ ( 1000*1000 ); \
+ _t2 = ( double ) _tend.tv_sec + ( double ) _tend.tv_usec/ ( 1000*1000 ); \
+ printf("%s: %fs (real) %fs (cpu)\n", #a, _t2-_t1, (float)(clock()-_clock_init)/CLOCKS_PER_SEC);\
+ } while(0)
+
+#else
+
+#define BENCH(a) (a)
+
+#endif
+
+typedef void ( *Shrinkwrap_ForeachVertexCallback) (DerivedMesh *target, float *co, float *normal);
+
+/* get derived mesh */
+//TODO is anyfunction that does this? returning the derivedFinal witouth we caring if its in edit mode or not?
+DerivedMesh *object_get_derived_final(Object *ob, CustomDataMask dataMask)
+{
+ if (ob==G.obedit)
+ {
+ DerivedMesh *final = NULL;
+ editmesh_get_derived_cage_and_final(&final, dataMask);
+ return final;
+ }
+ else
+ return mesh_get_derived_final(ob, dataMask);
+}
+
+/* Space transform */
+void space_transform_from_matrixs(SpaceTransform *data, float local[4][4], float target[4][4])
+{
+ float itarget[4][4];
+ Mat4Invert(itarget, target);
+ Mat4MulSerie(data->local2target, itarget, local, 0, 0, 0, 0, 0, 0);
+ Mat4Invert(data->target2local, data->local2target);
+}
+
+void space_transform_apply(const SpaceTransform *data, float *co)
+{
+ VecMat4MulVecfl(co, data->local2target, co);
+}
+
+void space_transform_invert(const SpaceTransform *data, float *co)
+{
+ VecMat4MulVecfl(co, data->target2local, co);
+}
+
+void space_transform_apply_normal(const SpaceTransform *data, float *no)
+{
+ Mat4Mul3Vecfl(data->local2target, no);
+ Normalize(no); // TODO: could we just determine de scale value from the matrix?
+}
+
+void space_transform_invert_normal(const SpaceTransform *data, float *no)
+{
+ Mat4Mul3Vecfl(data->target2local, no);
+ Normalize(no); // TODO: could we just determine de scale value from the matrix?
+}
+
+/*
+ * Returns the squared distance between two given points
+ */
+static float squared_dist(const float *a, const float *b)
+{
+ float tmp[3];
+ VECSUB(tmp, a, b);
+ return INPR(tmp, tmp);
+}
+
+/* Main shrinkwrap function */
+void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
+{
+
+ ShrinkwrapCalcData calc = NULL_ShrinkwrapCalcData;
+
+ //remove loop dependencies on derived meshs (TODO should this be done elsewhere?)
+ if(smd->target == ob) smd->target = NULL;
+ if(smd->auxTarget == ob) smd->auxTarget = NULL;
+
+
+ //Configure Shrinkwrap calc data
+ calc.smd = smd;
+ calc.ob = ob;
+ calc.original = dm;
+ calc.numVerts = numVerts;
+ calc.vertexCos = vertexCos;
+
+ if(smd->target)
+ {
+ //TODO currently we need a copy in case object_get_derived_final returns an emDM that does not defines getVertArray or getFace array
+ calc.target = CDDM_copy( object_get_derived_final(smd->target, CD_MASK_BAREMESH) );
+
+ //TODO there might be several "bugs" on non-uniform scales matrixs.. because it will no longer be nearest surface, not sphere projection
+ //because space has been deformed
+ space_transform_setup(&calc.local2target, ob, smd->target);
+
+ calc.keepDist = smd->keepDist; //TODO: smd->keepDist is in global units.. must change to local
+ }
+
+
+ //Projecting target defined - lets work!
+ if(calc.target)
+ {
+ switch(smd->shrinkType)
+ {
+ case MOD_SHRINKWRAP_NEAREST_SURFACE:
+ BENCH(shrinkwrap_calc_nearest_surface_point(&calc));
+ break;
+
+ case MOD_SHRINKWRAP_PROJECT:
+ BENCH(shrinkwrap_calc_normal_projection(&calc));
+ break;
+
+ case MOD_SHRINKWRAP_NEAREST_VERTEX:
+ BENCH(shrinkwrap_calc_nearest_vertex(&calc));
+ break;
+ }
+ }
+
+ //free memory
+ if(calc.target)
+ calc.target->release( calc.target );
+}
+
+/*
+ * Shrinkwrap to the nearest vertex
+ *
+ * it builds a kdtree of vertexs we can attach to and then
+ * for each vertex performs a nearest vertex search on the tree
+ */
+void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc)
+{
+ int i;
+ const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name);
+ MDeformVert *const dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL;
+
+ BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh;
+ BVHTreeNearest nearest = NULL_BVHTreeNearest;
+
+
+ BENCH(bvhtree_from_mesh_verts(&treeData, calc->target, 0.0, 2, 6));
+ if(treeData.tree == NULL) return OUT_OF_MEMORY();
+
+ //Setup nearest
+ nearest.index = -1;
+ nearest.dist = FLT_MAX;
+
+#pragma omp parallel for default(none) private(i) firstprivate(nearest) shared(treeData,calc) schedule(static)
+ for(i = 0; i<calc->numVerts; ++i)
+ {
+ float *co = calc->vertexCos[i];
+ float tmp_co[3];
+ float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup);
+ if(weight == 0.0f) continue;
+
+ VECCOPY(tmp_co, co);
+ space_transform_apply(&calc->local2target, tmp_co); //Convert the coordinates to the tree coordinates
+
+ //Use local proximity heuristics (to reduce the nearest search)
+ //
+ //If we already had an hit before.. we assume this vertex is going to have a close hit to that other vertex
+ //so we can initiate the "nearest.dist" with the expected value to that last hit.
+ //This will lead in prunning of the search tree.
+ if(nearest.index != -1)
+ nearest.dist = squared_dist(tmp_co, nearest.co);
+ else
+ nearest.dist = FLT_MAX;
+
+ BLI_bvhtree_find_nearest(treeData.tree, tmp_co, &nearest, treeData.nearest_callback, &treeData);
+
+
+ //Found the nearest vertex
+ if(nearest.index != -1)
+ {
+ //Adjusting the vertex weight, so that after interpolating it keeps a certain distance from the nearest position
+ float dist = sasqrt(nearest.dist);
+ if(dist > FLT_EPSILON) weight *= (dist - calc->keepDist)/dist;
+
+ //Convert the coordinates back to mesh coordinates
+ VECCOPY(tmp_co, nearest.co);
+ space_transform_invert(&calc->local2target, tmp_co);
+
+ VecLerpf(co, co, tmp_co, weight); //linear interpolation
+ }
+ }
+
+ free_bvhtree_from_mesh(&treeData);
+}
+
+/*
+ * This function raycast a single vertex and updates the hit if the "hit" is considered valid.
+ * Returns TRUE if "hit" was updated.
+ * Opts control whether an hit is valid or not
+ * Supported options are:
+ * MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE (front faces hits are ignored)
+ * MOD_SHRINKWRAP_CULL_TARGET_BACKFACE (back faces hits are ignored)
+ */
+int normal_projection_project_vertex(char options, const float *vert, const float *dir, const SpaceTransform *transf, BVHTree *tree, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata)
+{
+ float tmp_co[3], tmp_no[3];
+ const float *co, *no;
+ BVHTreeRayHit hit_tmp;
+
+ //Copy from hit (we need to convert hit rays from one space coordinates to the other
+ memcpy( &hit_tmp, hit, sizeof(hit_tmp) );
+
+ //Apply space transform (TODO readjust dist)
+ if(transf)
+ {
+ VECCOPY( tmp_co, vert );
+ space_transform_apply( transf, tmp_co );
+ co = tmp_co;
+
+ VECCOPY( tmp_no, dir );
+ space_transform_apply_normal( transf, tmp_no );
+ no = tmp_no;
+
+ hit_tmp.dist *= Mat4ToScalef( transf->local2target );
+ }
+ else
+ {
+ co = vert;
+ no = dir;
+ }
+
+ hit_tmp.index = -1;
+
+ BLI_bvhtree_ray_cast(tree, co, no, &hit_tmp, callback, userdata);
+
+ if(hit_tmp.index != -1)
+ {
+ float dot = INPR( dir, hit_tmp.no);
+
+ if(((options & MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE) && dot <= 0.0f)
+ || ((options & MOD_SHRINKWRAP_CULL_TARGET_BACKFACE) && dot >= 0.0f))
+ return FALSE; //Ignore hit
+
+
+ //Inverting space transform (TODO make coeherent with the initial dist readjust)
+ if(transf)
+ {
+ space_transform_invert( transf, hit_tmp.co );
+ space_transform_invert_normal( transf, hit_tmp.no );
+
+ hit_tmp.dist = VecLenf( vert, hit_tmp.co );
+ }
+
+ memcpy(hit, &hit_tmp, sizeof(hit_tmp) );
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc)
+{
+ int i;
+
+ //Options about projection direction
+ const char use_normal = calc->smd->shrinkOpts;
+ float proj_axis[3] = {0.0f, 0.0f, 0.0f};
+ MVert *vert = NULL; //Needed in case of vertex normal
+ DerivedMesh* ss_mesh = NULL;
+
+ //Vertex group data
+ const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name);
+ const MDeformVert *dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL;
+
+
+ //Raycast and tree stuff
+ BVHTreeRayHit hit;
+ BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; //target
+
+ //auxiliar target
+ DerivedMesh * aux_mesh = NULL;
+ BVHTreeFromMesh auxData= NULL_BVHTreeFromMesh;
+ SpaceTransform local2aux;
+
+do
+{
+
+ //Prepare data to retrieve the direction in which we should project each vertex
+ if(calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL)
+ {
+ //No Mvert information: jump to "free memory and return" part
+ if(calc->original == NULL) break;
+
+ if(calc->smd->subsurfLevels)
+ {
+ SubsurfModifierData smd;
+ memset(&smd, 0, sizeof(smd));
+ smd.subdivType = ME_CC_SUBSURF; //catmull clark
+ smd.levels = calc->smd->subsurfLevels; //levels
+
+ ss_mesh = subsurf_make_derived_from_derived(calc->original, &smd, FALSE, NULL, 0, 0);
+
+ if(ss_mesh)
+ {
+ vert = ss_mesh->getVertDataArray(ss_mesh, CD_MVERT);
+ if(vert)
+ {
+ //TRICKY: this code assumes subsurface will have the transformed original vertices
+ //in their original order at the end of the vert array.
+ vert = vert
+ + ss_mesh->getNumVerts(ss_mesh)
+ - calc->original->getNumVerts(calc->original);
+ }
+ }
+
+ //To make sure we are not letting any memory behind
+ assert(smd.emCache == NULL);
+ assert(smd.mCache == NULL);
+ }
+ else
+ vert = calc->original->getVertDataArray(calc->original, CD_MVERT);
+
+ //Not able to get vert information: jump to "free memory and return" part
+ if(vert == NULL) break;
+ }
+ else
+ {
+ //The code supports any axis that is a combination of X,Y,Z.. altought currently UI only allows to set the 3 diferent axis
+ if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS) proj_axis[0] = 1.0f;
+ if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS) proj_axis[1] = 1.0f;
+ if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS) proj_axis[2] = 1.0f;
+
+ Normalize(proj_axis);
+
+ //Invalid projection direction: jump to "free memory and return" part
+ if(INPR(proj_axis, proj_axis) < FLT_EPSILON) break;
+ }
+
+ //If the user doesn't allows to project in any direction of projection axis... then theres nothing todo.
+ if((use_normal & (MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR | MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR)) == 0)
+ break; //jump to "free memory and return" part
+
+
+ //Build target tree
+ BENCH(bvhtree_from_mesh_faces(&treeData, calc->target, calc->keepDist, 4, 6));
+ if(treeData.tree == NULL)
+ break; //jump to "free memory and return" part
+
+
+ //Build auxiliar target
+ if(calc->smd->auxTarget)
+ {
+ space_transform_setup( &local2aux, calc->ob, calc->smd->auxTarget);
+
+ aux_mesh = CDDM_copy( object_get_derived_final(calc->smd->auxTarget, CD_MASK_BAREMESH) ); //TODO currently we need a copy in case object_get_derived_final returns an emDM that does not defines getVertArray or getFace array
+ if(aux_mesh)
+ BENCH(bvhtree_from_mesh_faces(&auxData, aux_mesh, 0.0, 4, 6));
+ else
+ printf("Auxiliar target finalDerived mesh is null\n");
+ }
+
+
+ //Now, everything is ready to project the vertexs!
+#pragma omp parallel for private(i,hit) schedule(static)
+ for(i = 0; i<calc->numVerts; ++i)
+ {
+ float *co = calc->vertexCos[i];
+ float tmp_co[3], tmp_no[3];
+ float lim = 10000.0f; //TODO: we should use FLT_MAX here, but sweepsphere code isnt prepared for that
+ float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup);
+
+ if(weight == 0.0f) continue;
+
+ if(ss_mesh)
+ {
+ VECCOPY(tmp_co, vert[i].co);
+ }
+ else
+ {
+ VECCOPY(tmp_co, co);
+ }
+
+
+ if(vert)
+ NormalShortToFloat(tmp_no, vert[i].no);
+ else
+ VECCOPY( tmp_no, proj_axis );
+
+
+ hit.index = -1;
+ hit.dist = lim;
+
+
+ //Project over positive direction of axis
+ if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR)
+ {
+
+ if(auxData.tree)
+ normal_projection_project_vertex(0, tmp_co, tmp_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData);
+
+ normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, tmp_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData);
+ }
+
+ //Project over negative direction of axis
+ if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR)
+ {
+ float inv_no[3] = { -tmp_no[0], -tmp_no[1], -tmp_no[2] };
+
+
+ if(auxData.tree)
+ normal_projection_project_vertex(0, tmp_co, inv_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData);
+
+ normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, inv_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData);
+ }
+
+
+ if(hit.index != -1)
+ {
+ VecLerpf(co, co, hit.co, weight);
+ }
+ }
+
+
+//Simple do{} while(0) structure to allow to easily jump to the "free memory and return" part
+} while(0);
+
+ //free data structures
+
+ free_bvhtree_from_mesh(&treeData);
+ free_bvhtree_from_mesh(&auxData);
+
+ if(aux_mesh)
+ aux_mesh->release(aux_mesh);
+
+ if(ss_mesh)
+ ss_mesh->release(ss_mesh);
+}
+
+/*
+ * Shrinkwrap moving vertexs to the nearest surface point on the target
+ *
+ * it builds a BVHTree from the target mesh and then performs a
+ * NN matchs for each vertex
+ */
+void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc)
+{
+ int i;
+
+ const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name);
+ const MDeformVert *const dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL;
+
+ BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh;
+ BVHTreeNearest nearest = NULL_BVHTreeNearest;
+
+
+
+ //Create a bvh-tree of the given target
+ BENCH(bvhtree_from_mesh_faces( &treeData, calc->target, 0.0, 2, 6));
+ if(treeData.tree == NULL) return OUT_OF_MEMORY();
+
+ //Setup nearest
+ nearest.index = -1;
+ nearest.dist = FLT_MAX;
+
+
+ //Find the nearest vertex
+#pragma omp parallel for default(none) private(i) firstprivate(nearest) shared(calc,treeData) schedule(static)
+ for(i = 0; i<calc->numVerts; ++i)
+ {
+ float *co = calc->vertexCos[i];
+ float tmp_co[3];
+ float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup);
+ if(weight == 0.0f) continue;
+
+ //Convert the vertex to tree coordinates
+ VECCOPY(tmp_co, co);
+ space_transform_apply(&calc->local2target, tmp_co);
+
+ //Use local proximity heuristics (to reduce the nearest search)
+ //
+ //If we already had an hit before.. we assume this vertex is going to have a close hit to that other vertex
+ //so we can initiate the "nearest.dist" with the expected value to that last hit.
+ //This will lead in prunning of the search tree.
+ if(nearest.index != -1)
+ nearest.dist = squared_dist(tmp_co, nearest.co);
+ else
+ nearest.dist = FLT_MAX;
+
+ BLI_bvhtree_find_nearest(treeData.tree, tmp_co, &nearest, treeData.nearest_callback, &treeData);
+
+ //Found the nearest vertex
+ if(nearest.index != -1)
+ {
+ if(calc->smd->shrinkOpts & MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE)
+ {
+ //Make the vertex stay on the front side of the face
+ VECADDFAC(tmp_co, nearest.co, nearest.no, calc->keepDist);
+ }
+ else
+ {
+ //Adjusting the vertex weight, so that after interpolating it keeps a certain distance from the nearest position
+ float dist = sasqrt( nearest.dist );
+ if(dist > FLT_EPSILON)
+ VecLerpf(tmp_co, tmp_co, nearest.co, (dist - calc->keepDist)/dist); //linear interpolation
+ else
+ VECCOPY( tmp_co, nearest.co );
+ }
+
+ //Convert the coordinates back to mesh coordinates
+ space_transform_invert(&calc->local2target, tmp_co);
+ VecLerpf(co, co, tmp_co, weight); //linear interpolation
+ }
+ }
+
+
+ free_bvhtree_from_mesh(&treeData);
+}
+
diff --git a/source/blender/blenlib/BLI_editVert.h b/source/blender/blenlib/BLI_editVert.h
index d42663e17c7..447f6a2a485 100644
--- a/source/blender/blenlib/BLI_editVert.h
+++ b/source/blender/blenlib/BLI_editVert.h
@@ -38,6 +38,8 @@
#include "DNA_customdata_types.h"
#include "DNA_mesh_types.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
struct DerivedMesh;
struct RetopoPaintData;
@@ -53,7 +55,7 @@ typedef struct EditVert
struct EditEdge *e;
struct EditFace *f;
void *p;
- long l;
+ intptr_t l;
float fp;
} tmp;
float no[3]; /*vertex normal */
@@ -95,7 +97,7 @@ typedef struct EditEdge
struct EditEdge *e;
struct EditFace *f;
void *p;
- long l;
+ intptr_t l;
float fp;
} tmp;
short f1, f2; /* short, f1 is (ab)used in subdiv */
@@ -122,7 +124,7 @@ typedef struct EditFace
struct EditEdge *e;
struct EditFace *f;
void *p;
- long l;
+ intptr_t l;
float fp;
} tmp;
float n[3], cent[3];
diff --git a/source/blender/blenlib/BLI_rand.h b/source/blender/blenlib/BLI_rand.h
index 0e534783c17..266aa347aff 100644
--- a/source/blender/blenlib/BLI_rand.h
+++ b/source/blender/blenlib/BLI_rand.h
@@ -44,6 +44,7 @@ struct RNG* rng_new (unsigned int seed);
void rng_free (struct RNG* rng);
void rng_seed (struct RNG* rng, unsigned int seed);
+void rng_srandom(struct RNG *rng, unsigned int seed);
int rng_getInt (struct RNG* rng);
double rng_getDouble (struct RNG* rng);
float rng_getFloat (struct RNG* rng);
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index 227cb8f5e9a..e9271ca3bb5 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -34,6 +34,8 @@
#include "MEM_guardedalloc.h"
#include "BLI_ghash.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -256,11 +258,7 @@ int BLI_ghashutil_ptrcmp(void *a, void *b) {
}
unsigned int BLI_ghashutil_inthash(void *ptr) {
-#if defined(_WIN64)
- unsigned __int64 key = (unsigned __int64)ptr;
-#else
- unsigned long key = (unsigned long)ptr;
-#endif
+ uintptr_t key = (uintptr_t)ptr;
key += ~(key << 16);
key ^= (key >> 5);
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index 9671551a7f1..c41c3d8c3ab 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -46,6 +46,7 @@
#define MAX_TREETYPE 32
+#define DEFAULT_FIND_NEAREST_HEAP_SIZE 1024
typedef struct BVHNode
{
@@ -119,6 +120,72 @@ static float KDOP_AXES[13][3] =
{0, 1.0, -1.0}
};
+/*
+ * Generic push and pop heap
+ */
+#define PUSH_HEAP_BODY(HEAP_TYPE,PRIORITY,heap,heap_size) \
+{ \
+ HEAP_TYPE element = heap[heap_size-1]; \
+ int child = heap_size-1; \
+ while(child != 0) \
+ { \
+ int parent = (child-1) / 2; \
+ if(PRIORITY(element, heap[parent])) \
+ { \
+ heap[child] = heap[parent]; \
+ child = parent; \
+ } \
+ else break; \
+ } \
+ heap[child] = element; \
+}
+
+#define POP_HEAP_BODY(HEAP_TYPE, PRIORITY,heap,heap_size) \
+{ \
+ HEAP_TYPE element = heap[heap_size-1]; \
+ int parent = 0; \
+ while(parent < (heap_size-1)/2 ) \
+ { \
+ int child2 = (parent+1)*2; \
+ if(PRIORITY(heap[child2-1], heap[child2])) \
+ --child2; \
+ \
+ if(PRIORITY(element, heap[child2])) \
+ break; \
+ \
+ heap[parent] = heap[child2]; \
+ parent = child2; \
+ } \
+ heap[parent] = element; \
+}
+
+int ADJUST_MEMORY(void *local_memblock, void **memblock, int new_size, int *max_size, int size_per_item)
+{
+ int new_max_size = *max_size * 2;
+ void *new_memblock = NULL;
+
+ if(new_size <= *max_size)
+ return TRUE;
+
+ if(*memblock == local_memblock)
+ {
+ new_memblock = malloc( size_per_item * new_max_size );
+ memcpy( new_memblock, *memblock, size_per_item * *max_size );
+ }
+ else
+ new_memblock = realloc(*memblock, size_per_item * new_max_size );
+
+ if(new_memblock)
+ {
+ *memblock = new_memblock;
+ *max_size = new_max_size;
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+
//////////////////////////////////////////////////////////////////////////////////////////////////////
// Introsort
// with permission deriven from the following Java code:
@@ -634,6 +701,18 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array,
BVHBuildHelper data;
int depth;
+ //Most of bvhtree code relies on 1-leaf trees having at least one branch
+ //We handle that special case here
+ if(num_leafs == 1)
+ {
+ BVHNode *root = branches_array+0;
+ refit_kdop_hull(tree, root, 0, num_leafs);
+ root->main_axis = get_largest_axis(root->bv) / 2;
+ root->totnode = 1;
+ root->children[0] = leafs_array[0];
+ return;
+ }
+
branches_array--; //Implicit trees use 1-based indexs
build_implicit_tree_helper(tree, &data);
@@ -722,6 +801,11 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis)
return NULL;
tree = (BVHTree *)MEM_callocN(sizeof(BVHTree), "BVHTree");
+
+ //tree epsilon must be >= FLT_EPSILON
+ //so that tangent rays can still hit a bounding volume..
+ //this bug would show up when casting a ray aligned with a kdop-axis and with an edge of 2 faces
+ epsilon = MAX2(FLT_EPSILON, epsilon);
if(tree)
{
@@ -1114,15 +1198,18 @@ static float calc_nearest_point(BVHNearestData *data, BVHNode *node, float *near
}
-// TODO: use a priority queue to reduce the number of nodes looked on
-static void dfs_find_nearest(BVHNearestData *data, BVHNode *node)
+typedef struct NodeDistance
{
- int i;
- float nearest[3], sdist;
+ BVHNode *node;
+ float dist;
- sdist = calc_nearest_point(data, node, nearest);
- if(sdist >= data->nearest.dist) return;
+} NodeDistance;
+#define NodeDistance_priority(a,b) ( (a).dist < (b).dist )
+
+// TODO: use a priority queue to reduce the number of nodes looked on
+static void dfs_find_nearest_dfs(BVHNearestData *data, BVHNode *node)
+{
if(node->totnode == 0)
{
if(data->callback)
@@ -1130,17 +1217,130 @@ static void dfs_find_nearest(BVHNearestData *data, BVHNode *node)
else
{
data->nearest.index = node->index;
- VECCOPY(data->nearest.co, nearest);
- data->nearest.dist = sdist;
+ data->nearest.dist = calc_nearest_point(data, node, data->nearest.co);
}
}
else
{
- for(i=0; i != node->totnode; i++)
- dfs_find_nearest(data, node->children[i]);
+ //Better heuristic to pick the closest node to dive on
+ int i;
+ float nearest[3];
+
+ if(data->proj[ node->main_axis ] <= node->children[0]->bv[node->main_axis*2+1])
+ {
+
+ for(i=0; i != node->totnode; i++)
+ {
+ if( calc_nearest_point(data, node->children[i], nearest) >= data->nearest.dist) continue;
+ dfs_find_nearest_dfs(data, node->children[i]);
+ }
+ }
+ else
+ {
+ for(i=node->totnode-1; i >= 0 ; i--)
+ {
+ if( calc_nearest_point(data, node->children[i], nearest) >= data->nearest.dist) continue;
+ dfs_find_nearest_dfs(data, node->children[i]);
+ }
+ }
+ }
+}
+
+static void dfs_find_nearest_begin(BVHNearestData *data, BVHNode *node)
+{
+ int i;
+ float nearest[3], sdist;
+ sdist = calc_nearest_point(data, node, nearest);
+ if(sdist >= data->nearest.dist) return;
+ dfs_find_nearest_dfs(data, node);
+}
+
+
+static void NodeDistance_push_heap(NodeDistance *heap, int heap_size)
+PUSH_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size)
+
+static void NodeDistance_pop_heap(NodeDistance *heap, int heap_size)
+POP_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size)
+
+//NN function that uses an heap.. this functions leads to an optimal number of min-distance
+//but for normal tri-faces and BV 6-dop.. a simple dfs with local heuristics (as implemented
+//in source/blender/blenkernel/intern/shrinkwrap.c) works faster.
+//
+//It may make sense to use this function if the callback queries are very slow.. or if its impossible
+//to get a nice heuristic
+//
+//this function uses "malloc/free" instead of the MEM_* because it intends to be openmp safe
+static void bfs_find_nearest(BVHNearestData *data, BVHNode *node)
+{
+ int i;
+ NodeDistance default_heap[DEFAULT_FIND_NEAREST_HEAP_SIZE];
+ NodeDistance *heap=default_heap, current;
+ int heap_size = 0, max_heap_size = sizeof(default_heap)/sizeof(default_heap[0]);
+ float nearest[3];
+
+ int callbacks = 0, push_heaps = 0;
+
+ if(node->totnode == 0)
+ {
+ dfs_find_nearest_dfs(data, node);
+ return;
}
+
+ current.node = node;
+ current.dist = calc_nearest_point(data, node, nearest);
+
+ while(current.dist < data->nearest.dist)
+ {
+// printf("%f : %f\n", current.dist, data->nearest.dist);
+ for(i=0; i< current.node->totnode; i++)
+ {
+ BVHNode *child = current.node->children[i];
+ if(child->totnode == 0)
+ {
+ callbacks++;
+ dfs_find_nearest_dfs(data, child);
+ }
+ else
+ {
+ //adjust heap size
+ if(heap_size >= max_heap_size
+ && ADJUST_MEMORY(default_heap, (void**)&heap, heap_size+1, &max_heap_size, sizeof(heap[0])) == FALSE)
+ {
+ printf("WARNING: bvh_find_nearest got out of memory\n");
+
+ if(heap != default_heap)
+ free(heap);
+
+ return;
+ }
+
+ heap[heap_size].node = current.node->children[i];
+ heap[heap_size].dist = calc_nearest_point(data, current.node->children[i], nearest);
+
+ if(heap[heap_size].dist >= data->nearest.dist) continue;
+ heap_size++;
+
+ NodeDistance_push_heap(heap, heap_size);
+ // PUSH_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size);
+ push_heaps++;
+ }
+ }
+
+ if(heap_size == 0) break;
+
+ current = heap[0];
+ NodeDistance_pop_heap(heap, heap_size);
+// POP_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size);
+ heap_size--;
+ }
+
+// printf("hsize=%d, callbacks=%d, pushs=%d\n", heap_size, callbacks, push_heaps);
+
+ if(heap != default_heap)
+ free(heap);
}
+
int BLI_bvhtree_find_nearest(BVHTree *tree, const float *co, BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata)
{
int i;
@@ -1172,7 +1372,7 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float *co, BVHTreeNearest *nea
//dfs search
if(root)
- dfs_find_nearest(&data, root);
+ dfs_find_nearest_begin(&data, root);
//copy back results
if(nearest)
@@ -1212,7 +1412,7 @@ static float ray_nearest_hit(BVHRayCastData *data, BVHNode *node)
float ll = (bv[0] - data->ray.origin[i]) / data->ray_dot_axis[i];
float lu = (bv[1] - data->ray.origin[i]) / data->ray_dot_axis[i];
- if(data->ray_dot_axis[i] > 0)
+ if(data->ray_dot_axis[i] > 0.0f)
{
if(ll > low) low = ll;
if(lu < upper) upper = lu;
@@ -1252,7 +1452,7 @@ static void dfs_raycast(BVHRayCastData *data, BVHNode *node)
else
{
//pick loop direction to dive into the tree (based on ray direction and split axis)
- if(data->ray_dot_axis[ node->main_axis ] > 0)
+ if(data->ray_dot_axis[ node->main_axis ] > 0.0f)
{
for(i=0; i != node->totnode; i++)
{
@@ -1289,7 +1489,7 @@ int BLI_bvhtree_ray_cast(BVHTree *tree, const float *co, const float *dir, BVHTr
{
data.ray_dot_axis[i] = INPR( data.ray.direction, KDOP_AXES[i]);
- if(fabs(data.ray_dot_axis[i]) < 1e-7)
+ if(fabs(data.ray_dot_axis[i]) < FLT_EPSILON)
data.ray_dot_axis[i] = 0.0;
}
diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c
index 96de5e99f4f..2acbbbe6712 100644
--- a/source/blender/blenlib/intern/fileops.c
+++ b/source/blender/blenlib/intern/fileops.c
@@ -62,6 +62,8 @@
#include "BKE_utildefines.h"
#include <errno.h>
+#include "BLO_sys_types.h" // for intptr_t support
+
/* implementations: */
char *first_slash(char *string) {
char *ffslash, *fbslash;
@@ -72,7 +74,7 @@ char *first_slash(char *string) {
if (!ffslash) return fbslash;
else if (!fbslash) return ffslash;
- if ((long)ffslash < (long)fbslash) return ffslash;
+ if ((intptr_t)ffslash < (intptr_t)fbslash) return ffslash;
else return fbslash;
}
@@ -85,7 +87,7 @@ char *BLI_last_slash(const char *string) {
if (!lfslash) return lbslash;
else if (!lbslash) return lfslash;
- if ((long)lfslash < (long)lbslash) return lbslash;
+ if ((intptr_t)lfslash < (intptr_t)lbslash) return lbslash;
else return lfslash;
}
diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c
index 498c87cdef9..216246dcdd7 100644
--- a/source/blender/blenlib/intern/psfont.c
+++ b/source/blender/blenlib/intern/psfont.c
@@ -43,6 +43,8 @@
#include "DNA_packedFile_types.h"
#include "DNA_curve_types.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -54,7 +56,7 @@ typedef struct chardesc {
short llx, lly; /* bounding box */
short urx, ury;
short *data; /* char data */
- long datalen;
+ intptr_t datalen;
} chardesc;
typedef struct objfnt {
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c
index ccc478203fe..c484a307393 100644
--- a/source/blender/blenlib/intern/rand.c
+++ b/source/blender/blenlib/intern/rand.c
@@ -81,6 +81,16 @@ void rng_seed(RNG *rng, unsigned int seed) {
rng->X= (((r_uint64) seed)<<16) | LOWSEED;
}
+void rng_srandom(RNG *rng, unsigned int seed) {
+ extern unsigned char hash[]; // noise.c
+
+ rng_seed(rng, seed + hash[seed & 255]);
+ seed= rng_getInt(rng);
+ rng_seed(rng, seed + hash[seed & 255]);
+ seed= rng_getInt(rng);
+ rng_seed(rng, seed + hash[seed & 255]);
+}
+
int rng_getInt(RNG *rng) {
rng->X= (MULTIPLIER*rng->X + ADDEND)&MASK;
return (int) (rng->X>>17);
@@ -132,13 +142,7 @@ void BLI_srand(unsigned int seed) {
/* using hash table to create better seed */
void BLI_srandom(unsigned int seed) {
- extern unsigned char hash[]; // noise.c
-
- rng_seed(&theBLI_rng, seed + hash[seed & 255]);
- seed= rng_getInt(&theBLI_rng);
- rng_seed(&theBLI_rng, seed + hash[seed & 255]);
- seed= rng_getInt(&theBLI_rng);
- rng_seed(&theBLI_rng, seed + hash[seed & 255]);
+ rng_srandom(&theBLI_rng, seed);
}
int BLI_rand(void) {
diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c
index 48ebf770e1b..a31121148e3 100644
--- a/source/blender/blenlib/intern/util.c
+++ b/source/blender/blenlib/intern/util.c
@@ -1970,7 +1970,7 @@ void BLI_timestr(double _time, char *str)
int BLI_int_from_pointer(void *poin)
{
- long lval= (long)poin;
+ intptr_t lval= (intptr_t)poin;
return (int)(lval>>3);
}
@@ -1978,17 +1978,17 @@ int BLI_int_from_pointer(void *poin)
void *BLI_pointer_from_int(int val)
{
static int firsttime= 1;
- static long basevalue= 0;
+ static intptr_t basevalue= 0;
if(firsttime) {
void *poin= malloc(10000);
- basevalue= (long)poin;
+ basevalue= (intptr_t)poin;
basevalue &= ~PMASK;
printf("base: %d pointer %p\n", basevalue, poin); /* debug */
firsttime= 0;
free(poin);
}
- return (void *)(basevalue | (((long)val)<<3));
+ return (void *)(basevalue | (((intptr_t)val)<<3));
}
#else
diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h
index a1885894fe3..a9d29375eac 100644
--- a/source/blender/blenloader/BLO_sys_types.h
+++ b/source/blender/blenloader/BLO_sys_types.h
@@ -43,11 +43,6 @@
#ifdef __cplusplus
extern "C" {
#endif
-
-#ifdef FREE_WINDOWS
-typedef unsigned char uint8_t;
-typedef unsigned int uint32_t;
-#endif
#if defined(_WIN32) && !defined(FREE_WINDOWS)
@@ -64,6 +59,14 @@ typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;
+#ifdef _WIN64
+typedef __int64 intptr_t;
+typedef unsigned __int64 uintptr_t;
+#else
+typedef long intptr_t;
+typedef unsigned long uintptr_t;
+#endif
+
#elif defined(__linux__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
@@ -73,6 +76,10 @@ typedef unsigned __int64 uint64_t;
#include <inttypes.h>
+#elif defined(FREE_WINDOWS)
+
+#include <stdint.h>
+
#else
/* FreeBSD, Irix, Solaris */
diff --git a/source/blender/blenloader/intern/genfile.c b/source/blender/blenloader/intern/genfile.c
index 87c859de839..86338ca9e89 100644
--- a/source/blender/blenloader/intern/genfile.c
+++ b/source/blender/blenloader/intern/genfile.c
@@ -58,6 +58,8 @@
#include "genfile.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* gcc 4.1 on mingw was complaining that __int64 was alredy defined
actually is saw the line below as typedef long long long long...
Anyhow, since its alredy defined, its safe to do an ifndef here- Cambpell*/
@@ -315,7 +317,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap)
/* in sdna->data the data, now we convert that to something understandable */
{
int *data, *verg;
- long nr;
+ intptr_t nr;
short *sp;
char str[8], *cp;
@@ -351,7 +353,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap)
cp++;
nr++;
}
- nr= (long)cp; /* prevent BUS error */
+ nr= (intptr_t)cp; /* prevent BUS error */
nr= (nr+3) & ~3;
cp= (char *)nr;
@@ -389,7 +391,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap)
cp++;
nr++;
}
- nr= (long)cp; /* prevent BUS error */
+ nr= (intptr_t)cp; /* prevent BUS error */
nr= (nr+3) & ~3;
cp= (char *)nr;
@@ -1098,7 +1100,7 @@ int dna_elem_offset(struct SDNA *sdna, char *stype, char *vartype, char *name)
int SDNAnr= dna_findstruct_nr(sdna, stype);
short *spo= sdna->structs[SDNAnr];
char *cp= find_elem(sdna, vartype, name, spo, NULL, NULL);
- return (int)((long)cp);
+ return (int)((intptr_t)cp);
}
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index f56b261efe2..5a75b5c8b11 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -63,6 +63,8 @@
#include "BLO_readblenfile.h"
+#include "BLO_sys_types.h" // needed for intptr_t
+
/**
* IDType stuff, I plan to move this
* out into its own file + prefix, and
@@ -193,7 +195,7 @@ void BLO_blendhandle_print_sizes(BlendHandle *bh, void *fp)
buf[2]= buf[2]?buf[2]:' ';
buf[3]= buf[3]?buf[3]:' ';
- fprintf(fp, "['%.4s', '%s', %d, %ld ], \n", buf, name, bhead->nr, (long)bhead->len+sizeof(BHead));
+ fprintf(fp, "['%.4s', '%s', %d, %ld ], \n", buf, name, bhead->nr, (intptr_t)bhead->len+sizeof(BHead));
}
}
fprintf(fp, "]\n");
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 8d2fa9036a6..ea226d9c220 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2585,6 +2585,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
static void direct_link_particlesettings(FileData *fd, ParticleSettings *part)
{
part->pd= newdataadr(fd, part->pd);
+ part->pd2= newdataadr(fd, part->pd2);
}
static void lib_link_particlesystems(FileData *fd, ID *id, ListBase *particles)
@@ -2945,11 +2946,9 @@ static void lib_link_object(FileData *fd, Main *main)
sens= ob->sensors.first;
while(sens) {
- if(ob->id.lib==NULL) { // done in expand_main
- for(a=0; a<sens->totlinks; a++) {
- sens->links[a]= newglobadr(fd, sens->links[a]);
- }
- }
+ for(a=0; a<sens->totlinks; a++)
+ sens->links[a]= newglobadr(fd, sens->links[a]);
+
if(sens->type==SENS_TOUCH) {
bTouchSensor *ts= sens->data;
ts->ma= newlibadr(fd, ob->id.lib, ts->ma);
@@ -2964,11 +2963,9 @@ static void lib_link_object(FileData *fd, Main *main)
cont= ob->controllers.first;
while(cont) {
- if(ob->id.lib==NULL) { // done in expand_main
- for(a=0; a<cont->totlinks; a++) {
- cont->links[a]= newglobadr(fd, cont->links[a]);
- }
- }
+ for(a=0; a<cont->totlinks; a++)
+ cont->links[a]= newglobadr(fd, cont->links[a]);
+
if(cont->type==CONT_PYTHON) {
bPythonCont *pc= cont->data;
pc->text= newlibadr(fd, ob->id.lib, pc->text);
@@ -3597,9 +3594,9 @@ static void direct_link_scene(FileData *fd, Scene *sce)
{
Sequence temp;
char *poin;
- long offset;
+ intptr_t offset;
- offset= ((long)&(temp.seqbase)) - ((long)&temp);
+ offset= ((intptr_t)&(temp.seqbase)) - ((intptr_t)&temp);
/* root pointer */
if(ed->seqbasep == old_seqbasep) {
@@ -4098,7 +4095,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
while(se) {
se->v1= newdataadr(fd, se->v1);
se->v2= newdataadr(fd, se->v2);
- if( (long)se->v1 > (long)se->v2) {
+ if( (intptr_t)se->v1 > (intptr_t)se->v2) {
sv= se->v1;
se->v1= se->v2;
se->v2= sv;
@@ -7738,31 +7735,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
idproperties_fix_group_lengths(main->brush);
idproperties_fix_group_lengths(main->particle);
}
-
- /* only needed until old bad svn/RC1,2 files are saved with a > 17 version -dg */
- if(main->versionfile == 245 && main->subversionfile < 17) {
- ModifierData *md;
- Object *ob;
-
- for(ob = main->object.first; ob; ob= ob->id.next) {
- for(md=ob->modifiers.first; md; ) {
- if(md->type==eModifierType_Cloth) {
- ModifierData *next;
- MEM_freeN(((ClothModifierData *)md)->sim_parms);
- MEM_freeN(((ClothModifierData *)md)->coll_parms);
- MEM_freeN(((ClothModifierData *)md)->point_cache);
- ((ClothModifierData *)md)->sim_parms = NULL;
- ((ClothModifierData *)md)->coll_parms = NULL;
- ((ClothModifierData *)md)->point_cache = NULL;
- next=md->next;
- BLI_remlink(&ob->modifiers, md);
- md = next;
- }
- else
- md = md->next;
- }
- }
- }
/* sun/sky */
if(main->versionfile < 246) {
@@ -7812,6 +7784,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
for(me=main->mesh.first; me; me= me->id.next)
alphasort_version_246(fd, lib, me);
}
+
+ if(main->versionfile <= 246 && main->subversionfile < 1){
+ Object *ob;
+ for(ob = main->object.first; ob; ob= ob->id.next) {
+ if(ob->pd && (ob->pd->forcefield == PFIELD_WIND))
+ ob->pd->f_noise = 0.0;
+ }
+ }
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
@@ -8529,9 +8509,6 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
sens= ob->sensors.first;
while(sens) {
- for(a=0; a<sens->totlinks; a++) {
- sens->links[a]= newglobadr(fd, sens->links[a]);
- }
if(sens->type==SENS_TOUCH) {
bTouchSensor *ts= sens->data;
expand_doit(fd, mainvar, ts->ma);
@@ -8545,9 +8522,6 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
cont= ob->controllers.first;
while(cont) {
- for(a=0; a<cont->totlinks; a++) {
- cont->links[a]= newglobadr(fd, cont->links[a]);
- }
if(cont->type==CONT_PYTHON) {
bPythonCont *pc= cont->data;
expand_doit(fd, mainvar, pc->text);
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index f61c71f7f2f..6bed9e0c415 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -535,6 +535,7 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase)
writestruct(wd, ID_PA, "ParticleSettings", 1, part);
if (part->id.properties) IDP_WriteProperty(part->id.properties, wd);
writestruct(wd, DATA, "PartDeflect", 1, part->pd);
+ writestruct(wd, DATA, "PartDeflect", 1, part->pd2);
}
part= part->id.next;
}
@@ -608,6 +609,9 @@ static void write_sensors(WriteData *wd, ListBase *lb)
case SENS_ACTUATOR:
writestruct(wd, DATA, "bActuatorSensor", 1, sens->data);
break;
+ case SENS_DELAY:
+ writestruct(wd, DATA, "bDelaySensor", 1, sens->data);
+ break;
case SENS_COLLISION:
writestruct(wd, DATA, "bCollisionSensor", 1, sens->data);
break;
diff --git a/source/blender/blenpluginapi/intern/pluginapi.c b/source/blender/blenpluginapi/intern/pluginapi.c
index e65148a0b04..9c08a0b2f9d 100644
--- a/source/blender/blenpluginapi/intern/pluginapi.c
+++ b/source/blender/blenpluginapi/intern/pluginapi.c
@@ -50,10 +50,12 @@
#include "plugin.h"
#include "MEM_guardedalloc.h"
+#include "BLO_sys_types.h" // needed for intptr_t
+
#include "BLI_blenlib.h" /* util and noise functions */
#include "BLI_threads.h" /* For threadsfe guardedalloc malloc/calloc/free */
#include "IMB_imbuf.h" /* image buffer stuff */
-#define GET_INT_FROM_POINTER(i) ((int)(long)(i)) /* should use BKE_utildefines.h */
+#define GET_INT_FROM_POINTER(i) ((int)(intptr_t)(i)) /* should use BKE_utildefines.h */
/* -------------------------------------------------------------------------- */
/* stuff from util.h */
diff --git a/source/blender/imbuf/intern/cineon/cineonlib.c b/source/blender/imbuf/intern/cineon/cineonlib.c
index 3b45a9de822..ecee3c7d6c0 100644
--- a/source/blender/imbuf/intern/cineon/cineonlib.c
+++ b/source/blender/imbuf/intern/cineon/cineonlib.c
@@ -67,12 +67,12 @@ fillCineonFileInfo(CineonFile* cineon, CineonFileInformation* fileInfo, const ch
static void
dumpCineonFileInfo(CineonFileInformation* fileInfo) {
d_printf("\n--File Information--\n");
- d_printf("Magic: %8.8lX\n", (unsigned long)ntohl(fileInfo->magic_num));
- d_printf("Image Offset %ld\n", (long)ntohl(fileInfo->image_offset));
- d_printf("Generic Header size %ld\n", (long)ntohl(fileInfo->gen_hdr_size));
- d_printf("Industry Header size %ld\n", (long)ntohl(fileInfo->ind_hdr_size));
- d_printf("User Data size %ld\n", (long)ntohl(fileInfo->user_data_size));
- d_printf("File size %ld\n", (long)ntohl(fileInfo->file_size));
+ d_printf("Magic: %8.8lX\n", (uintptr_t)ntohl(fileInfo->magic_num));
+ d_printf("Image Offset %ld\n", (intptr_t)ntohl(fileInfo->image_offset));
+ d_printf("Generic Header size %ld\n", (intptr_t)ntohl(fileInfo->gen_hdr_size));
+ d_printf("Industry Header size %ld\n", (intptr_t)ntohl(fileInfo->ind_hdr_size));
+ d_printf("User Data size %ld\n", (intptr_t)ntohl(fileInfo->user_data_size));
+ d_printf("File size %ld\n", (intptr_t)ntohl(fileInfo->file_size));
d_printf("Version \"%s\"\n", fileInfo->vers);
d_printf("File name \"%s\"\n", fileInfo->file_name);
d_printf("Creation date \"%s\"\n", fileInfo->create_date);
@@ -112,11 +112,11 @@ dumpCineonChannelInfo(CineonChannelInformation* chan) {
default: d_printf(" (unknown)\n"); break;
}
d_printf(" Bits per pixel %d\n", chan->bits_per_pixel);
- d_printf(" Pixels per line %ld\n", (long)ntohl(chan->pixels_per_line));
- d_printf(" Lines per image %ld\n", (long)ntohl(chan->lines_per_image));
- d_printf(" Ref low data %ld\n", (long)ntohl(chan->ref_low_data));
+ d_printf(" Pixels per line %ld\n", (intptr_t)ntohl(chan->pixels_per_line));
+ d_printf(" Lines per image %ld\n", (intptr_t)ntohl(chan->lines_per_image));
+ d_printf(" Ref low data %ld\n", (intptr_t)ntohl(chan->ref_low_data));
d_printf(" Ref low quantity %f\n", ntohf(chan->ref_low_quantity));
- d_printf(" Ref high data %ld\n", (long)ntohl(chan->ref_high_data));
+ d_printf(" Ref high data %ld\n", (intptr_t)ntohl(chan->ref_high_data));
d_printf(" Ref high quantity %f\n", ntohf(chan->ref_high_quantity));
}
@@ -231,8 +231,8 @@ dumpCineonFormatInfo(CineonFormatInformation* formatInfo) {
} else {
d_printf(" positive\n");
}
- d_printf("End of line padding %ld\n", (long)ntohl(formatInfo->line_padding));
- d_printf("End of channel padding %ld\n", (long)ntohl(formatInfo->channel_padding));
+ d_printf("End of line padding %ld\n", (intptr_t)ntohl(formatInfo->line_padding));
+ d_printf("End of channel padding %ld\n", (intptr_t)ntohl(formatInfo->channel_padding));
}
static void
@@ -256,8 +256,8 @@ fillCineonOriginationInfo(CineonFile* cineon,
static void
dumpCineonOriginationInfo(CineonOriginationInformation* originInfo) {
d_printf("\n--Origination Information--\n");
- d_printf("X offset %ld\n", (long)ntohl(originInfo->x_offset));
- d_printf("Y offset %ld\n", (long)ntohl(originInfo->y_offset));
+ d_printf("X offset %ld\n", (intptr_t)ntohl(originInfo->x_offset));
+ d_printf("Y offset %ld\n", (intptr_t)ntohl(originInfo->y_offset));
d_printf("File name \"%s\"\n", originInfo->file_name);
d_printf("Creation date \"%s\"\n", originInfo->create_date);
d_printf("Creation time \"%s\"\n", originInfo->create_time);
@@ -529,7 +529,7 @@ cineonOpen(const char* filename) {
/* let's assume cineon files are always network order */
if (header.fileInfo.magic_num != ntohl(CINEON_FILE_MAGIC)) {
if (verbose) d_printf("Bad magic number %8.8lX in \"%s\".\n",
- (unsigned long)ntohl(header.fileInfo.magic_num), filename);
+ (uintptr_t)ntohl(header.fileInfo.magic_num), filename);
cineonClose(cineon);
return 0;
}
@@ -628,7 +628,7 @@ cineonOpenFromMem(unsigned char *mem, unsigned int size) {
/* let's assume cineon files are always network order */
if (header.fileInfo.magic_num != ntohl(CINEON_FILE_MAGIC)) {
- if (verbose) d_printf("Bad magic number %8.8lX in\n", (unsigned long)ntohl(header.fileInfo.magic_num));
+ if (verbose) d_printf("Bad magic number %8.8lX in\n", (uintptr_t)ntohl(header.fileInfo.magic_num));
cineonClose(cineon);
return 0;
diff --git a/source/blender/imbuf/intern/cineon/dpxlib.c b/source/blender/imbuf/intern/cineon/dpxlib.c
index 500c09ba265..1710cdde501 100644
--- a/source/blender/imbuf/intern/cineon/dpxlib.c
+++ b/source/blender/imbuf/intern/cineon/dpxlib.c
@@ -58,15 +58,15 @@ fillDpxChannelInfo(DpxFile* dpx, DpxChannelInformation* chan, int des) {
static void
dumpDpxChannelInfo(DpxChannelInformation* chan) {
- d_printf(" Signage %ld", (long)ntohl(chan->signage));
- d_printf(" Ref low data %ld\n", (long)ntohl(chan->ref_low_data));
+ d_printf(" Signage %ld", (intptr_t)ntohl(chan->signage));
+ d_printf(" Ref low data %ld\n", (intptr_t)ntohl(chan->ref_low_data));
d_printf(" Ref low quantity %f\n", ntohf(chan->ref_low_quantity));
- d_printf(" Ref high data %ld\n", (long)ntohl(chan->ref_high_data));
+ d_printf(" Ref high data %ld\n", (intptr_t)ntohl(chan->ref_high_data));
d_printf(" Ref high quantity %f\n", ntohf(chan->ref_high_quantity));
d_printf(" Designator1: %d,", chan->designator1);
d_printf(" Bits per pixel %d\n", chan->bits_per_pixel);
d_printf(" Packing: %d,", ntohs(chan->packing));
- d_printf(" Data Offset: %ld,", (long)ntohl(chan->data_offset));
+ d_printf(" Data Offset: %ld,", (intptr_t)ntohl(chan->data_offset));
}
static void
@@ -110,19 +110,19 @@ static void
dumpDpxFileInfo(DpxFileInformation* fileInfo) {
d_printf("\n--File Information--\n");
d_printf("Magic: %8.8lX\n", (unsigned long)ntohl(fileInfo->magic_num));
- d_printf("Image Offset %ld\n", (long)ntohl(fileInfo->offset));
+ d_printf("Image Offset %ld\n", (intptr_t)ntohl(fileInfo->offset));
d_printf("Version \"%s\"\n", fileInfo->vers);
- d_printf("File size %ld\n", (long)ntohl(fileInfo->file_size));
- d_printf("Ditto key %ld\n", (long)ntohl(fileInfo->ditto_key));
- d_printf("Generic Header size %ld\n", (long)ntohl(fileInfo->gen_hdr_size));
- d_printf("Industry Header size %ld\n", (long)ntohl(fileInfo->ind_hdr_size));
- d_printf("User Data size %ld\n", (long)ntohl(fileInfo->user_data_size));
+ d_printf("File size %ld\n", (intptr_t)ntohl(fileInfo->file_size));
+ d_printf("Ditto key %ld\n", (intptr_t)ntohl(fileInfo->ditto_key));
+ d_printf("Generic Header size %ld\n", (intptr_t)ntohl(fileInfo->gen_hdr_size));
+ d_printf("Industry Header size %ld\n", (intptr_t)ntohl(fileInfo->ind_hdr_size));
+ d_printf("User Data size %ld\n", (intptr_t)ntohl(fileInfo->user_data_size));
d_printf("File name \"%s\"\n", fileInfo->file_name);
d_printf("Creation date \"%s\"\n", fileInfo->create_date);
d_printf("Creator \"%s\"\n", fileInfo->creator);
d_printf("Project \"%s\"\n", fileInfo->project);
d_printf("Copyright \"%s\"\n", fileInfo->copyright);
- d_printf("Key %ld\n", (long)ntohl(fileInfo->key));
+ d_printf("Key %ld\n", (intptr_t)ntohl(fileInfo->key));
}
static void
@@ -150,8 +150,8 @@ dumpDpxImageInfo(DpxImageInformation* imageInfo) {
d_printf("Image orientation %d,", ntohs(imageInfo->orientation));
n = ntohs(imageInfo->channels_per_image);
d_printf("Channels %d\n", n);
- d_printf("Pixels per line %ld\n", (long)ntohl(imageInfo->pixels_per_line));
- d_printf("Lines per image %ld\n", (long)ntohl(imageInfo->lines_per_image));
+ d_printf("Pixels per line %ld\n", (intptr_t)ntohl(imageInfo->pixels_per_line));
+ d_printf("Lines per image %ld\n", (intptr_t)ntohl(imageInfo->lines_per_image));
for (i = 0; i < n; ++i) {
d_printf(" --Channel %d--\n", i);
dumpDpxChannelInfo(&imageInfo->channel[i]);
@@ -166,12 +166,12 @@ fillDpxOriginationInfo(
static void
dumpDpxOriginationInfo(DpxOriginationInformation* originInfo) {
d_printf("\n--Origination Information--\n");
- d_printf("X offset %ld\n", (long)ntohl(originInfo->x_offset));
- d_printf("Y offset %ld\n", (long)ntohl(originInfo->y_offset));
+ d_printf("X offset %ld\n", (intptr_t)ntohl(originInfo->x_offset));
+ d_printf("Y offset %ld\n", (intptr_t)ntohl(originInfo->y_offset));
d_printf("X centre %f\n", ntohf(originInfo->x_centre));
d_printf("Y centre %f\n", ntohf(originInfo->y_centre));
- d_printf("Original X %ld\n", (long)ntohl(originInfo->x_original_size));
- d_printf("Original Y %ld\n", (long)ntohl(originInfo->y_original_size));
+ d_printf("Original X %ld\n", (intptr_t)ntohl(originInfo->x_original_size));
+ d_printf("Original Y %ld\n", (intptr_t)ntohl(originInfo->y_original_size));
d_printf("File name \"%s\"\n", originInfo->file_name);
d_printf("Creation time \"%s\"\n", originInfo->creation_time);
d_printf("Input device \"%s\"\n", originInfo->input_device);
@@ -417,7 +417,7 @@ intern_dpxOpen(int mode, const char* bytestuff, int bufsize) {
/* let's assume dpx files are always network order */
if (header.fileInfo.magic_num != ntohl(DPX_FILE_MAGIC)) {
if (verbose) d_printf("Bad magic number %8.8lX in \"%s\".\n",
- (unsigned long)ntohl(header.fileInfo.magic_num), filename);
+ (uintptr_t)ntohl(header.fileInfo.magic_num), filename);
dpxClose(dpx);
return 0;
}
diff --git a/source/blender/imbuf/intern/cineon/logImageCore.h b/source/blender/imbuf/intern/cineon/logImageCore.h
index 01eff8d570d..2646e8b3c12 100644
--- a/source/blender/imbuf/intern/cineon/logImageCore.h
+++ b/source/blender/imbuf/intern/cineon/logImageCore.h
@@ -34,7 +34,9 @@
extern "C" {
#endif
-
+#include "BLO_sys_types.h" // for intptr_t support
+#undef ntohl
+#undef htonl
typedef int (GetRowFn)(LogImageFile* logImage, unsigned short* row, int lineNum);
typedef int (SetRowFn)(LogImageFile* logImage, const unsigned short* row, int lineNum);
typedef void (CloseFn)(LogImageFile* logImage);
@@ -80,7 +82,7 @@ struct _Log_Image_File_t_
CloseFn* close;
unsigned char *membuffer;
- unsigned long membuffersize;
+ uintptr_t membuffersize;
unsigned char *memcursor;
};
diff --git a/source/blender/imbuf/intern/cineon/logmemfile.c b/source/blender/imbuf/intern/cineon/logmemfile.c
index 20359335933..160e8453713 100644
--- a/source/blender/imbuf/intern/cineon/logmemfile.c
+++ b/source/blender/imbuf/intern/cineon/logmemfile.c
@@ -24,10 +24,10 @@
#include "logImageCore.h"
-int logimage_fseek(void* logfile, long offsett, int origin)
+int logimage_fseek(void* logfile, intptr_t offsett, int origin)
{
struct _Log_Image_File_t_ *file = (struct _Log_Image_File_t_*) logfile;
- long offset = offsett;
+ intptr_t offset = offsett;
if (file->file) fseek(file->file, offset, origin);
else { /*we're seeking in memory*/
@@ -38,7 +38,7 @@ int logimage_fseek(void* logfile, long offsett, int origin)
if (offset > file->membuffersize) return 1;
file->memcursor = (file->membuffer + file->membuffersize) - offset;
} else if (origin==SEEK_CUR) {
- unsigned long pos = (unsigned long)file->membuffer - (unsigned long)file->memcursor;
+ uintptr_t pos = (uintptr_t)file->membuffer - (uintptr_t)file->memcursor;
if (pos + offset > file->membuffersize) return 1;
if (pos < 0) return 1;
file->memcursor += offset;
diff --git a/source/blender/imbuf/intern/cineon/logmemfile.h b/source/blender/imbuf/intern/cineon/logmemfile.h
index 6e82cf2b145..39e2f36dad9 100644
--- a/source/blender/imbuf/intern/cineon/logmemfile.h
+++ b/source/blender/imbuf/intern/cineon/logmemfile.h
@@ -22,7 +22,7 @@
#ifndef _LOGMEMFILE_H
#define _LOGMEMFILE_H
-int logimage_fseek(void* logfile, long offsett, int origin);
+int logimage_fseek(void* logfile, intptr_t offsett, int origin);
int logimage_fwrite(void *buffer, unsigned int size, unsigned int count, void *logfile);
int logimage_fread(void *buffer, unsigned int size, unsigned int count, void *logfile);
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index 40c1f83c98c..8257eb4643e 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -39,6 +39,8 @@
#include "IMB_allocimbuf.h"
#include "IMB_filter.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/************************************************************************/
/* SCALING */
/************************************************************************/
@@ -490,8 +492,8 @@ static void enlarge_picture_byte(
/ (double) (src_width - 1.001);
double ratioy = (double) (dst_height - 1.0)
/ (double) (src_height - 1.001);
- unsigned long x_src, dx_src, x_dst;
- unsigned long y_src, dy_src, y_dst;
+ uintptr_t x_src, dx_src, x_dst;
+ uintptr_t y_src, dy_src, y_dst;
dx_src = 65536.0 / ratiox;
dy_src = 65536.0 / ratioy;
@@ -500,8 +502,8 @@ static void enlarge_picture_byte(
for (y_dst = 0; y_dst < dst_height; y_dst++) {
unsigned char* line1 = src + (y_src >> 16) * 4 * src_width;
unsigned char* line2 = line1 + 4 * src_width;
- unsigned long weight1y = 65536 - (y_src & 0xffff);
- unsigned long weight2y = 65536 - weight1y;
+ uintptr_t weight1y = 65536 - (y_src & 0xffff);
+ uintptr_t weight2y = 65536 - weight1y;
if ((y_src >> 16) == src_height - 1) {
line2 = line1;
@@ -509,8 +511,8 @@ static void enlarge_picture_byte(
x_src = 0;
for (x_dst = 0; x_dst < dst_width; x_dst++) {
- unsigned long weight1x = 65536 - (x_src & 0xffff);
- unsigned long weight2x = 65536 - weight1x;
+ uintptr_t weight1x = 65536 - (x_src & 0xffff);
+ uintptr_t weight2x = 65536 - weight1x;
unsigned long x = (x_src >> 16) * 4;
@@ -557,12 +559,12 @@ static void enlarge_picture_byte(
}
struct scale_outpix_byte {
- unsigned long r;
- unsigned long g;
- unsigned long b;
- unsigned long a;
+ uintptr_t r;
+ uintptr_t g;
+ uintptr_t b;
+ uintptr_t a;
- unsigned long weight;
+ uintptr_t weight;
};
static void shrink_picture_byte(
@@ -571,9 +573,9 @@ static void shrink_picture_byte(
{
double ratiox = (double) (dst_width) / (double) (src_width);
double ratioy = (double) (dst_height) / (double) (src_height);
- unsigned long x_src, dx_dst, x_dst;
- unsigned long y_src, dy_dst, y_dst;
- long y_counter;
+ uintptr_t x_src, dx_dst, x_dst;
+ uintptr_t y_src, dy_dst, y_dst;
+ intptr_t y_counter;
unsigned char * dst_begin = dst;
struct scale_outpix_byte * dst_line1 = NULL;
@@ -593,16 +595,16 @@ static void shrink_picture_byte(
y_counter = 65536;
for (y_src = 0; y_src < src_height; y_src++) {
unsigned char* line = src + y_src * 4 * src_width;
- unsigned long weight1y = 65536 - (y_dst & 0xffff);
- unsigned long weight2y = 65536 - weight1y;
+ uintptr_t weight1y = 65536 - (y_dst & 0xffff);
+ uintptr_t weight2y = 65536 - weight1y;
x_dst = 0;
for (x_src = 0; x_src < src_width; x_src++) {
- unsigned long weight1x = 65536 - (x_dst & 0xffff);
- unsigned long weight2x = 65536 - weight1x;
+ uintptr_t weight1x = 65536 - (x_dst & 0xffff);
+ uintptr_t weight2x = 65536 - weight1x;
- unsigned long x = x_dst >> 16;
+ uintptr_t x = x_dst >> 16;
- unsigned long w;
+ uintptr_t w;
w = (weight1y * weight1x) >> 16;
@@ -643,13 +645,13 @@ static void shrink_picture_byte(
y_dst += dy_dst;
y_counter -= dy_dst;
if (y_counter < 0) {
- unsigned long x;
+ uintptr_t x;
struct scale_outpix_byte * temp;
y_counter += 65536;
for (x=0; x < dst_width; x++) {
- unsigned long f = 0x80000000UL
+ uintptr_t f = 0x80000000UL
/ dst_line1[x].weight;
*dst++ = (dst_line1[x].r * f) >> 15;
*dst++ = (dst_line1[x].g * f) >> 15;
@@ -664,9 +666,9 @@ static void shrink_picture_byte(
}
}
if (dst - dst_begin < dst_width * dst_height * 4) {
- unsigned long x;
+ uintptr_t x;
for (x = 0; x < dst_width; x++) {
- unsigned long f = 0x80000000UL / dst_line1[x].weight;
+ uintptr_t f = 0x80000000UL / dst_line1[x].weight;
*dst++ = (dst_line1[x].r * f) >> 15;
*dst++ = (dst_line1[x].g * f) >> 15;
*dst++ = (dst_line1[x].b * f) >> 15;
@@ -698,8 +700,8 @@ static void enlarge_picture_float(
/ (double) (src_width - 1.001);
double ratioy = (double) (dst_height - 1.0)
/ (double) (src_height - 1.001);
- unsigned long x_dst;
- unsigned long y_dst;
+ uintptr_t x_dst;
+ uintptr_t y_dst;
double x_src, dx_src;
double y_src, dy_src;
@@ -727,7 +729,7 @@ static void enlarge_picture_float(
float w12 = weight1y * weight2x;
float w22 = weight2y * weight2x;
- unsigned long x = ((int) x_src) * 4;
+ uintptr_t x = ((int) x_src) * 4;
*dst++ = line1[x] * w11
+ line2[x] * w21
@@ -770,8 +772,8 @@ static void shrink_picture_float(
{
double ratiox = (double) (dst_width) / (double) (src_width);
double ratioy = (double) (dst_height) / (double) (src_height);
- unsigned long x_src;
- unsigned long y_src;
+ uintptr_t x_src;
+ uintptr_t y_src;
float dx_dst, x_dst;
float dy_dst, y_dst;
float y_counter;
@@ -794,14 +796,14 @@ static void shrink_picture_float(
y_counter = 1.0;
for (y_src = 0; y_src < src_height; y_src++) {
float* line = src + y_src * 4 * src_width;
- unsigned long weight1y = 1.0 - (y_dst - (int) y_dst);
- unsigned long weight2y = 1.0 - weight1y;
+ uintptr_t weight1y = 1.0 - (y_dst - (int) y_dst);
+ uintptr_t weight2y = 1.0 - weight1y;
x_dst = 0;
for (x_src = 0; x_src < src_width; x_src++) {
- unsigned long weight1x = 1.0 - (x_dst - (int) x_dst);
- unsigned long weight2x = 1.0 - weight1x;
+ uintptr_t weight1x = 1.0 - (x_dst - (int) x_dst);
+ uintptr_t weight2x = 1.0 - weight1x;
- unsigned long x = (int) x_dst;
+ uintptr_t x = (int) x_dst;
float w;
@@ -844,7 +846,7 @@ static void shrink_picture_float(
y_dst += dy_dst;
y_counter -= dy_dst;
if (y_counter < 0) {
- unsigned long x;
+ uintptr_t x;
struct scale_outpix_float * temp;
y_counter += 1.0;
@@ -864,7 +866,7 @@ static void shrink_picture_float(
}
}
if (dst - dst_begin < dst_width * dst_height * 4) {
- unsigned long x;
+ uintptr_t x;
for (x = 0; x < dst_width; x++) {
float f = 1.0 / dst_line1[x].weight;
*dst++ = dst_line1[x].r * f;
diff --git a/source/blender/include/BDR_gpencil.h b/source/blender/include/BDR_gpencil.h
index eb749cf28ec..7340a2e44e0 100644
--- a/source/blender/include/BDR_gpencil.h
+++ b/source/blender/include/BDR_gpencil.h
@@ -43,7 +43,6 @@ struct bGPDframe;
/* Temporary 'Stroke Point' data */
typedef struct tGPspoint {
short x, y; /* x and y coordinates of cursor (in relative to area) */
- float xf, yf; /* same as x and y, but as floats */
float pressure; /* pressure of tablet at this point */
} tGPspoint;
diff --git a/source/blender/include/BIF_drawgpencil.h b/source/blender/include/BIF_drawgpencil.h
index 418446313df..eacafce058d 100644
--- a/source/blender/include/BIF_drawgpencil.h
+++ b/source/blender/include/BIF_drawgpencil.h
@@ -28,15 +28,18 @@
#ifndef BIF_DRAWGPENCIL_H
#define BIF_DRAWGPENCIL_H
+
+struct bGPdata;
struct ScrArea;
struct View3D;
struct SpaceNode;
struct SpaceSeq;
-struct bGPdata;
struct uiBlock;
+struct ImBuf;
short draw_gpencil_panel(struct uiBlock *block, struct bGPdata *gpd, struct ScrArea *sa);
+void draw_gpencil_2dimage(struct ScrArea *sa, struct ImBuf *ibuf);
void draw_gpencil_2dview(struct ScrArea *sa, short onlyv2d);
void draw_gpencil_3dview(struct ScrArea *sa, short only3d);
void draw_gpencil_oglrender(struct View3D *v3d, int winx, int winy);
diff --git a/source/blender/include/BIF_meshtools.h b/source/blender/include/BIF_meshtools.h
index b08c66fd16e..d809d1f21f9 100644
--- a/source/blender/include/BIF_meshtools.h
+++ b/source/blender/include/BIF_meshtools.h
@@ -40,7 +40,7 @@ extern void objects_bake_render_menu(void);
extern void objects_bake_render_ui(short event);
extern void objects_bake_render(short event, char **error_msg);
-extern long mesh_octree_table(struct Object *ob, float *co, char mode);
+extern intptr_t mesh_octree_table(struct Object *ob, float *co, char mode);
extern int mesh_get_x_mirror_vert(struct Object *ob, int index);
extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, float *co);
extern int *mesh_get_x_mirror_faces(struct Object *ob);
diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h
index df514190270..0d27804dd1a 100644
--- a/source/blender/include/BIF_resources.h
+++ b/source/blender/include/BIF_resources.h
@@ -524,6 +524,10 @@ enum {
TH_EDGE_SHARP,
TH_EDITMESH_ACTIVE,
+
+ TH_HANDLE_VERTEX,
+ TH_HANDLE_VERTEX_SELECT,
+ TH_HANDLE_VERTEX_SIZE,
};
/* XXX WARNING: previous is saved in file, so do not change order! */
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index dca4e28688d..13d412c2c42 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -59,8 +59,10 @@ typedef struct bGPDstroke {
#define GP_STROKE_3DSPACE (1<<0)
/* stroke is in 2d-space */
#define GP_STROKE_2DSPACE (1<<1)
+ /* stroke is in 2d-space (but with special 'image' scaling) */
+#define GP_STROKE_2DIMAGE (1<<2)
/* stroke is an "eraser" stroke */
-#define GP_STROKE_ERASER (1<<2)
+#define GP_STROKE_ERASER (1<<15)
/* Grease-Pencil Annotations - 'Frame'
diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h
index 09f4509df80..6149db21db0 100644
--- a/source/blender/makesdna/DNA_ipo_types.h
+++ b/source/blender/makesdna/DNA_ipo_types.h
@@ -359,8 +359,8 @@ typedef short IPO_Channel;
/* ******************** */
/* particle ipos */
-#define PART_TOTIPO 19
-#define PART_TOTNAM 19
+#define PART_TOTIPO 25
+#define PART_TOTNAM 25
#define PART_EMIT_FREQ 1
#define PART_EMIT_LIFE 2
@@ -386,6 +386,14 @@ typedef short IPO_Channel;
#define PART_BB_TILT 19
+#define PART_PD_FSTR 20
+#define PART_PD_FFALL 21
+#define PART_PD_FMAXD 22
+
+#define PART_PD2_FSTR 23
+#define PART_PD2_FFALL 24
+#define PART_PD2_FMAXD 25
+
/* these are IpoCurve specific */
/* **************** IPO ********************* */
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 53b6e12a309..bfff91637bb 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -35,7 +35,11 @@ typedef enum ModifierType {
eModifierType_Cloth,
eModifierType_Collision,
eModifierType_Bevel,
+<<<<<<< .working
eModifierType_Fluidsim,
+=======
+ eModifierType_Shrinkwrap,
+>>>>>>> .merge-rechts.r16222
NUM_MODIFIER_TYPES
} ModifierType;
@@ -391,7 +395,8 @@ typedef struct CollisionModifierData {
unsigned int numverts;
unsigned int numfaces;
- int pad;
+ short absorption; /* used for forces, in % */
+ short pad;
float time; /* cfra time of modifier */
struct BVHTree *bvhtree; /* bounding volume hierarchy for this cloth object */
} CollisionModifierData;
@@ -491,6 +496,7 @@ typedef struct ExplodeModifierData {
float protect;
} ExplodeModifierData;
+<<<<<<< .working
typedef struct FluidsimModifierData {
ModifierData modifier;
@@ -498,4 +504,47 @@ typedef struct FluidsimModifierData {
struct PointCache *point_cache; /* definition is in DNA_object_force.h */
} FluidsimModifierData;
+=======
+typedef struct ShrinkwrapModifierData {
+ ModifierData modifier;
+
+ struct Object *target; /* shrink target */
+ struct Object *auxTarget; /* additional shrink target */
+ char vgroup_name[32]; /* optional vertexgroup name */
+ float keepDist; /* distance offset to keep from mesh/projection point */
+ short shrinkType; /* shrink type projection */
+ short shrinkOpts; /* shrink options */
+ char projAxis; /* axis to project over */
+
+ /*
+ * if using projection over vertex normal this controls the
+ * the level of subsurface that must be done before getting the
+ * vertex coordinates and normal
+ */
+ char subsurfLevels;
+
+ char pad[6];
+
+} ShrinkwrapModifierData;
+
+/* Shrinkwrap->shrinkType */
+#define MOD_SHRINKWRAP_NEAREST_SURFACE 0
+#define MOD_SHRINKWRAP_PROJECT 1
+#define MOD_SHRINKWRAP_NEAREST_VERTEX 2
+
+/* Shrinkwrap->shrinkOpts */
+#define MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR (1<<0) /* allow shrinkwrap to move the vertex in the positive direction of axis */
+#define MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR (1<<1) /* allow shrinkwrap to move the vertex in the negative direction of axis */
+
+#define MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE (1<<3) /* ignore vertex moves if a vertex ends projected on a front face of the target */
+#define MOD_SHRINKWRAP_CULL_TARGET_BACKFACE (1<<4) /* ignore vertex moves if a vertex ends projected on a back face of the target */
+
+#define MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE (1<<5) /* distance is measure to the front face of the target */
+
+#define MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS (1<<0)
+#define MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS (1<<1)
+#define MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS (1<<2)
+#define MOD_SHRINKWRAP_PROJECT_OVER_NORMAL 0 /* projection over normal is used if no axis is selected */
+
+>>>>>>> .merge-rechts.r16222
#endif
diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h
index dc6c2bcbcc0..5900e16d5e8 100644
--- a/source/blender/makesdna/DNA_object_force.h
+++ b/source/blender/makesdna/DNA_object_force.h
@@ -67,6 +67,9 @@ typedef struct PartDeflect {
float tex_nabla;
short tex_mode, kink, kink_axis, rt2;
struct Tex *tex; /* Texture of the texture effector */
+ struct RNG *rng; /* random noise generator for e.g. wind */
+ float f_noise; /* noise of force (currently used for wind) */
+ int pad;
} PartDeflect;
typedef struct PointCache {
@@ -153,8 +156,8 @@ typedef struct SoftBody {
#define PFIELD_GUIDE 5
#define PFIELD_TEXTURE 6
#define PFIELD_HARMONIC 7
-#define PFIELD_NUCLEAR 8
-#define PFIELD_MDIPOLE 9
+#define PFIELD_CHARGE 8
+#define PFIELD_LENNARDJ 9
/* pd->flag: various settings */
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h
index 4f62cd084cc..363f0075e23 100644
--- a/source/blender/makesdna/DNA_particle_types.h
+++ b/source/blender/makesdna/DNA_particle_types.h
@@ -166,6 +166,7 @@ typedef struct ParticleSettings {
struct Object *bb_ob;
struct Ipo *ipo;
struct PartDeflect *pd;
+ struct PartDeflect *pd2;
} ParticleSettings;
typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in copy_particlesystem */
@@ -264,6 +265,8 @@ typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in
#define PART_CHILD_RENDER (1<<29)
#define PART_CHILD_GUIDE (1<<30)
+#define PART_SELF_EFFECT (1<<22)
+
/* part->rotfrom */
#define PART_ROT_KEYS 0 /* interpolate directly from keys */
#define PART_ROT_ZINCR 1 /* same as zdir but done incrementally from previous position */
diff --git a/source/blender/makesdna/DNA_sensor_types.h b/source/blender/makesdna/DNA_sensor_types.h
index c0306f43730..b5d8511c698 100644
--- a/source/blender/makesdna/DNA_sensor_types.h
+++ b/source/blender/makesdna/DNA_sensor_types.h
@@ -88,6 +88,13 @@ typedef struct bActuatorSensor {
char name[32];
} bActuatorSensor;
+typedef struct bDelaySensor {
+ short delay;
+ short duration;
+ short flag;
+ short pad;
+} bDelaySensor;
+
typedef struct bCollisionSensor {
char name[32]; /* property name */
char materialName[32]; /* material */
@@ -204,6 +211,7 @@ typedef struct bJoystickSensor {
#define SENS_MESSAGE 10
#define SENS_JOYSTICK 11
#define SENS_ACTUATOR 12
+#define SENS_DELAY 13
/* sensor->flag */
#define SENS_SHOW 1
#define SENS_DEL 2
@@ -254,5 +262,7 @@ typedef struct bJoystickSensor {
#define SENS_JOY_HAT 2
#define SENS_JOY_HAT_DIR 0
+#define SENS_DELAY_REPEAT 1
+
#endif
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index a8694dfb7f5..39d457058c1 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -247,6 +247,7 @@ typedef struct SpaceImage {
float xof, yof; /* user defined offset, image is centered */
float centx, centy; /* storage for offset while render drawing */
+ struct bGPdata *gpd; /* grease pencil data */
} SpaceImage;
typedef struct SpaceNla {
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index cd1c047dac9..856324695a9 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -101,6 +101,11 @@ typedef struct ThemeSpace {
char movie[4], image[4], scene[4], audio[4]; // for sequence editor
char effect[4], plugin[4], transition[4], meta[4];
char editmesh_active[4];
+
+ char handle_vertex[4];
+ char handle_vertex_select[4];
+ char handle_vertex_size;
+ char hpad[7];
} ThemeSpace;
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index 3818d66b39c..b4deb1f2b60 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -55,6 +55,8 @@
#include "MEM_guardedalloc.h"
#include "DNA_sdna_types.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -955,7 +957,7 @@ int make_structDNA(char *baseDirectory, FILE *file)
/* calculate size of datablock with strings */
cp= names[nr_names-1];
cp+= strlen(names[nr_names-1]) + 1; /* +1: null-terminator */
- len= (long) (cp - (char*) names[0]);
+ len= (intptr_t) (cp - (char*) names[0]);
len= (len+3) & ~3;
dna_write(file, names[0], len);
@@ -968,7 +970,7 @@ int make_structDNA(char *baseDirectory, FILE *file)
/* calculate datablock size */
cp= types[nr_types-1];
cp+= strlen(types[nr_types-1]) + 1; /* +1: null-terminator */
- len= (long) (cp - (char*) types[0]);
+ len= (intptr_t) (cp - (char*) types[0]);
len= (len+3) & ~3;
dna_write(file, types[0], len);
@@ -990,7 +992,7 @@ int make_structDNA(char *baseDirectory, FILE *file)
/* calc datablock size */
sp= structs[nr_structs-1];
sp+= 2+ 2*( sp[1] );
- len= (long) ((char*) sp - (char*) structs[0]);
+ len= (intptr_t) ((char*) sp - (char*) structs[0]);
len= (len+3) & ~3;
dna_write(file, structs[0], len);
diff --git a/source/blender/python/api2_2x/Draw.c b/source/blender/python/api2_2x/Draw.c
index 047a035fb8b..bd19a6a6a3e 100644
--- a/source/blender/python/api2_2x/Draw.c
+++ b/source/blender/python/api2_2x/Draw.c
@@ -1554,6 +1554,12 @@ static PyObject *Method_Number( PyObject * self, PyObject * args )
UI_METHOD_ERRORCHECK;
+ if ( !PyNumber_Check(inio) || !PyNumber_Check(mino) ||
+ !PyNumber_Check(maxo) ) {
+ return EXPP_ReturnPyObjError( PyExc_TypeError,
+ "expected ints or floats for the initial, min and max values" );
+ }
+
but = newbutton( );
if (tip) strncpy(but->tooltip, tip, BPY_MAX_TOOLTIP);
block = Get_uiBlock( );
diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c
index ccd24a437b5..20747a167e6 100644
--- a/source/blender/python/api2_2x/Material.c
+++ b/source/blender/python/api2_2x/Material.c
@@ -554,6 +554,7 @@ static int Material_setSssTexScatter( BPy_Material * self, PyObject * value );
static int Material_setSssFront( BPy_Material * self, PyObject * value );
static int Material_setSssBack( BPy_Material * self, PyObject * value );
static int Material_setSssBack( BPy_Material * self, PyObject * value );
+static int Material_setTexChannel( BPy_Material * self, PyObject * value );
static PyObject *Material_getColorComponent( BPy_Material * self,
void * closure );
@@ -633,6 +634,7 @@ static PyObject *Material_getSssBack( BPy_Material * self );
static PyObject *Material_getFilter( BPy_Material * self );
static PyObject *Material_getTranslucency( BPy_Material * self );
static PyObject *Material_getTextures( BPy_Material * self );
+static PyObject *Material_getTexChannel( BPy_Material * self );
static PyObject *Material_clearIpo( BPy_Material * self );
static PyObject *Material_setTexture( BPy_Material * self, PyObject * args );
@@ -1140,7 +1142,11 @@ static PyGetSetDef BPy_Material_getseters[] = {
NULL},
{"lightGroup",
(getter)Material_getLightGroup, (setter)Material_setLightGroup,
- "Set the light group for this material",
+ "The light group for this material",
+ NULL},
+ {"enabledTextures",
+ (getter)Material_getTexChannel, (setter)Material_setTexChannel,
+ "Enabled texture channels for this material",
NULL},
{"R",
(getter)Material_getColorComponent, (setter)Material_setColorComponent,
@@ -1517,6 +1523,36 @@ static PyObject *Material_getLightGroup( BPy_Material * self )
return Group_CreatePyObject( self->material->group );
}
+static PyObject *Material_getTexChannel( BPy_Material * self )
+{
+ int i;
+ short mask = 1;
+ PyObject *list = PyList_New(0);
+ if( !list )
+ return EXPP_ReturnPyObjError( PyExc_MemoryError,
+ "PyList_New() failed" );
+
+ for( i = 0, mask = 1; i < MAX_MTEX ; ++i, mask <<= 1 ) {
+ if( self->material->mtex[i] && (mask & self->material->septex) == 0 ) {
+ PyObject * val = PyInt_FromLong(i);
+ if( !val ) {
+ Py_DECREF( list );
+ return EXPP_ReturnPyObjError( PyExc_MemoryError,
+ "PyInt_FromLong() failed" );
+ }
+ if( PyList_Append( list, val ) < 0 ) {
+ Py_DECREF( val );
+ Py_DECREF( list );
+ return EXPP_ReturnPyObjError( PyExc_RuntimeError,
+ "PyList_Append() failed" );
+ }
+ Py_DECREF( val );
+ }
+ }
+
+ return list;
+}
+
static PyObject *Material_getHaloSize( BPy_Material * self )
{
return PyFloat_FromDouble( ( double ) self->material->hasize );
@@ -1982,6 +2018,57 @@ static int Material_setLightGroup( BPy_Material * self, PyObject * value )
return GenericLib_assignData(value, (void **) &self->material->group, NULL, 1, ID_GR, 0);
}
+static int Material_setTexChannel( BPy_Material * self, PyObject * value )
+{
+ int i, mask;
+ short septex = 0;
+ int result = 1;
+
+ /* fail if input is not a standard sequence */
+ if( !PyList_Check( value ) && !PyTuple_Check( value ) )
+ return EXPP_ReturnIntError( PyExc_TypeError,
+ "expected tuple or list of integers" );
+
+ /* get a fast sequence; in Python 2.5, this just return the original
+ * list or tuple and INCREFs it, so we must DECREF */
+ value = PySequence_Fast( value, "" );
+
+ /* set the disable bit for each existing texture */
+ for( i= 0, mask= 1; i < MAX_MTEX; ++i, mask <<= 1 )
+ if( self->material->mtex[i] != NULL )
+ septex |= mask;
+
+ /* check the list, and build new septex value */
+ for( i= PySequence_Size(value)-1; i >= 0; --i ) {
+ long ival;
+ PyObject *item = PySequence_Fast_GET_ITEM( value, i );
+ if( !PyInt_Check( item ) ) {
+ PyErr_SetString ( PyExc_TypeError,
+ "expected tuple or list of integers" );
+ goto exit;
+ }
+ ival= PyInt_AsLong( item );
+ if(ival < 0 || ival > MAX_MTEX) {
+ PyErr_SetString( PyExc_ValueError,
+ "channel value out of range" );
+ goto exit;
+ }
+ ival&= (1<<MAX_MTEX)-1;
+ if( self->material->mtex[(int)ival] == NULL ) {
+ PyErr_SetString( PyExc_ValueError,
+ "channels must have a texture assigned" );
+ goto exit;
+ }
+ septex&= ~(1<<ival);
+ }
+ self->material->septex= septex;
+ result = 0;
+
+exit:
+ Py_DECREF(value);
+ return result;
+}
+
static int Material_setAdd( BPy_Material * self, PyObject * value )
{
return EXPP_setFloatClamped ( value, &self->material->add,
@@ -2313,9 +2400,6 @@ static int Material_setSssBack( BPy_Material * self, PyObject * value )
EXPP_MAT_SSS_BACK_MAX);
}
-
-
-
static PyObject *Material_setTexture( BPy_Material * self, PyObject * args )
{
int texnum;
diff --git a/source/blender/python/api2_2x/Mesh.c b/source/blender/python/api2_2x/Mesh.c
index 9f68287d658..b3e8fefdb7b 100644
--- a/source/blender/python/api2_2x/Mesh.c
+++ b/source/blender/python/api2_2x/Mesh.c
@@ -5381,11 +5381,11 @@ static PyObject *MFaceSeq_delete( BPy_MFaceSeq * self, PyObject *args )
if( PySequence_Size( args ) != 2 ||
!PyArg_ParseTuple( args, "iO", &edge_also, &args ) )
return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected and int and a sequence of ints or MFaces" );
+ "expected an int and a sequence of ints or MFaces" );
if( !PyList_Check( args ) && !PyTuple_Check( args ) )
return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected and int and a sequence of ints or MFaces" );
+ "expected an int and a sequence of ints or MFaces" );
/* see how many args we need to parse */
len = PySequence_Size( args );
diff --git a/source/blender/python/api2_2x/Object.c b/source/blender/python/api2_2x/Object.c
index 45cce46d389..dc70921492c 100644
--- a/source/blender/python/api2_2x/Object.c
+++ b/source/blender/python/api2_2x/Object.c
@@ -204,6 +204,7 @@ enum obj_consts {
EXPP_OBJ_ATTR_SB_INSPRING,
EXPP_OBJ_ATTR_SB_INFRICT,
+ EXPP_OBJ_ATTR_EMPTY_DRAWTYPE
};
#define EXPP_OBJECT_DRAWSIZEMIN 0.01f
@@ -2431,6 +2432,12 @@ static int Object_setDrawType( BPy_Object * self, PyObject * value )
OB_BOUNDBOX, OB_TEXTURE, 'b' );
}
+static int Object_setEmptyShape( BPy_Object * self, PyObject * value )
+{
+ return EXPP_setIValueRange( value, &self->object->empty_drawtype,
+ OB_ARROWS, OB_EMPTY_CONE, 'b' );
+}
+
static int Object_setEuler( BPy_Object * self, PyObject * args )
{
float rot1, rot2, rot3;
@@ -3758,6 +3765,9 @@ static PyObject *getIntAttr( BPy_Object *self, void *type )
case EXPP_OBJ_ATTR_DRAWTYPE:
param = object->dt;
break;
+ case EXPP_OBJ_ATTR_EMPTY_DRAWTYPE:
+ param = object->empty_drawtype;
+ break;
case EXPP_OBJ_ATTR_PARENT_TYPE:
param = object->partype;
break;
@@ -4938,6 +4948,10 @@ static PyGetSetDef BPy_Object_getseters[] = {
(getter)getIntAttr, (setter)Object_setDrawType,
"The object's drawing type",
(void *)EXPP_OBJ_ATTR_DRAWTYPE},
+ {"emptyShape",
+ (getter)getIntAttr, (setter)Object_setEmptyShape,
+ "The empty's drawing shape",
+ (void *)EXPP_OBJ_ATTR_EMPTY_DRAWTYPE},
{"parentType",
(getter)getIntAttr, (setter)NULL,
"The object's parent type",
@@ -5538,6 +5552,24 @@ static PyObject *M_Object_IpoKeyTypesDict( void )
return M;
}
+static PyObject *M_Object_EmptyShapesDict( void )
+{
+ PyObject *M = PyConstant_New( );
+
+ if( M ) {
+ BPy_constant *d = ( BPy_constant * ) M;
+ PyConstant_Insert( d, "ARROWS", PyInt_FromLong( OB_ARROWS ) );
+ PyConstant_Insert( d, "AXES", PyInt_FromLong( OB_PLAINAXES ) );
+ PyConstant_Insert( d, "CIRCLE", PyInt_FromLong( OB_CIRCLE ) );
+ PyConstant_Insert( d, "ARROW", PyInt_FromLong( OB_SINGLE_ARROW ) );
+ PyConstant_Insert( d, "CUBE", PyInt_FromLong( OB_CUBE ) );
+ PyConstant_Insert( d, "SPHERE", PyInt_FromLong( OB_EMPTY_SPHERE ) );
+ PyConstant_Insert( d, "CONE", PyInt_FromLong( OB_EMPTY_CONE ) );
+ }
+ return M;
+}
+
+
/*****************************************************************************/
/* Function: initObject */
/*****************************************************************************/
@@ -5552,6 +5584,7 @@ PyObject *Object_Init( void )
PyObject *RBFlagsDict = M_Object_RBFlagsDict( );
PyObject *RBShapesDict = M_Object_RBShapeBoundDict( );
PyObject *IpoKeyTypesDict = M_Object_IpoKeyTypesDict( );
+ PyObject *EmptyShapesDict = M_Object_EmptyShapesDict( );
PyType_Ready( &Object_Type ) ;
@@ -5596,7 +5629,9 @@ PyObject *Object_Init( void )
if( RBShapesDict )
PyModule_AddObject( module, "RBShapes", RBShapesDict );
if( IpoKeyTypesDict )
- PyModule_AddObject( module, "IpoKeyTypes", IpoKeyTypesDict );
+ PyModule_AddObject( module, "IpoKeyTypes", IpoKeyTypesDict );
+ if( EmptyShapesDict )
+ PyModule_AddObject( module, "EmptyShapes", EmptyShapesDict );
/*Add SUBMODULES to the module*/
dict = PyModule_GetDict( module ); /*borrowed*/
diff --git a/source/blender/python/api2_2x/Text3d.c b/source/blender/python/api2_2x/Text3d.c
index 5137e989b8d..202195cdcb4 100644
--- a/source/blender/python/api2_2x/Text3d.c
+++ b/source/blender/python/api2_2x/Text3d.c
@@ -132,9 +132,12 @@ static PyObject *Text3d_getAlignment( BPy_Text3d * self );
static PyObject *Text3d_setAlignment( BPy_Text3d * self, PyObject * args );
static PyObject *Text3d_getFont( BPy_Text3d * self );
static PyObject *Text3d_setFont( BPy_Text3d * self, PyObject * args );
+static PyObject *Text3d_getMaterial( BPy_Text3d * self, PyObject * value );
+static PyObject *Text3d_setMaterial( BPy_Text3d * self, PyObject * args );
static PyObject *Text3d_addFrame( BPy_Text3d * self );
static PyObject *Text3d_removeFrame( BPy_Text3d * self, PyObject * args );
+
/*****************************************************************************/
/* Python BPy_Text3d methods table: */
/*****************************************************************************/
@@ -210,6 +213,10 @@ static PyMethodDef BPy_Text3d_methods[] = {
METH_NOARGS, "() - Gets font list for Text3d"},
{"setFont", ( PyCFunction ) Text3d_setFont,
METH_VARARGS, "() - Sets font for Text3d"},
+ {"getMaterial", ( PyCFunction ) Text3d_getMaterial,
+ METH_O, "() - Gets font list for Text3d"},
+ {"setMaterial", ( PyCFunction ) Text3d_setMaterial,
+ METH_VARARGS, "() - Sets font for Text3d"},
{"addFrame", ( PyCFunction ) Text3d_addFrame,
METH_NOARGS, "() - adds a new text frame"},
{"removeFrame", ( PyCFunction ) Text3d_removeFrame,
@@ -1132,6 +1139,45 @@ static PyObject *Text3d_setFont( BPy_Text3d * self, PyObject * args )
Py_RETURN_NONE;
}
+/* todo, add style access, will be almost exact copy of these 2 */
+static PyObject *Text3d_getMaterial( BPy_Text3d * self, PyObject * value )
+{
+ int index = PyInt_AsLong( value );
+ if (index == -1 && PyErr_Occurred())
+ return EXPP_ReturnPyObjError( PyExc_TypeError, "expected a character index" );
+
+ if (index < 0)
+ index = self->curve->len + index;
+
+ if ( index < 0 || index >= self->curve->len )
+ return EXPP_ReturnPyObjError( PyExc_IndexError, "character index out of range" );
+
+ return PyInt_FromLong( self->curve->strinfo[index].mat_nr );
+}
+
+static PyObject *Text3d_setMaterial( BPy_Text3d * self, PyObject * args )
+{
+ int index, mat_nr;
+ if( !PyArg_ParseTuple( args, "ii",&index, &mat_nr) )
+ return NULL; /* Python error is ok */
+
+ if (index < 0)
+ index = self->curve->len + index;
+
+ if ( index < 0 || index >= self->curve->len )
+ return EXPP_ReturnPyObjError( PyExc_IndexError, "character index out of range" );
+
+ if (mat_nr < 0)
+ mat_nr = self->curve->totcol + mat_nr;
+
+ if ( mat_nr < 0 || mat_nr >= self->curve->totcol )
+ return EXPP_ReturnPyObjError( PyExc_IndexError, "material index out of range" );
+
+ self->curve->strinfo[index].mat_nr = mat_nr;
+
+ Py_RETURN_NONE;
+}
+
static PyObject *Text3d_addFrame( BPy_Text3d * self )
{
Curve *cu = self->curve;
diff --git a/source/blender/python/api2_2x/doc/Material.py b/source/blender/python/api2_2x/doc/Material.py
index a3496164cd1..02f7edd77f5 100644
--- a/source/blender/python/api2_2x/doc/Material.py
+++ b/source/blender/python/api2_2x/doc/Material.py
@@ -323,6 +323,21 @@ class Material:
each color a list of 5 floats [0 - 1], [r,g,b,a,pos].
The colorband can have between 1 and 31 colors.
@type colorbandSpecular: list
+ @type enabledTextures: list of integers
+ @ivar enabledTextures: The texture channels enabled in this material.
+ The attribute returns is list of integers in the range [0, 9], each
+ number representing the respective enabled MTex entry (see
+ L{getTextures()<getTextures>}). Enabling is done by assigning
+ a list of ints or an empty list. Attempting to enable a channel
+ which does not have a texture assigned to it will result in a
+ ValueError exception.
+ Example::
+ mat.enabledTextures = [] # no texture channels are enabled
+ mat.enabledTextures = [0, 6] # texture channels 0 and 6 are enabled
+ ch = mat.enabledTextures
+ ch.append(4)
+ mat.enabledTextures = ch
+ print mat.enabledTextures # will print: [0, 4, 6]
@ivar enableSSS: If True, subsurface scattering will be rendered on this material.
@type enableSSS: bool
@@ -1010,7 +1025,7 @@ class Material:
def setTexture(index, texture, texco, mapto):
"""
- Assign a Blender Texture object to slot number 'number'.
+ Assign a Blender Texture object to channel number 'number'.
@type index: int
@param index: material's texture index in [0, 9].
@type texture: Blender Texture
@@ -1033,7 +1048,7 @@ class Material:
Get this Material's Texture list.
@rtype: list of MTex
@return: a list of Blender MTex objects. None is returned for each empty
- texture slot.
+ texture channel.
"""
def getScriptLinks (event):
diff --git a/source/blender/python/api2_2x/doc/Mathutils.py b/source/blender/python/api2_2x/doc/Mathutils.py
index 8b0c41b9a69..524d1fb6d4c 100644
--- a/source/blender/python/api2_2x/doc/Mathutils.py
+++ b/source/blender/python/api2_2x/doc/Mathutils.py
@@ -521,6 +521,15 @@ class Vector:
@return: Return a quaternion rotation from the vector and the track and up axis.
"""
+ def reflect(mirror):
+ """
+ Return the reflection vector from the mirror vector argument.
+ @type mirror: Vector object
+ @param mirror: This vector could be a normal from the reflecting surface.
+ @rtype: Vector object matching the size of this vector.
+ @return: The reflected vector.
+ """
+
class Euler:
"""
The Euler object
diff --git a/source/blender/python/api2_2x/doc/Object.py b/source/blender/python/api2_2x/doc/Object.py
index 2e4850aeb14..07942d58093 100644
--- a/source/blender/python/api2_2x/doc/Object.py
+++ b/source/blender/python/api2_2x/doc/Object.py
@@ -117,6 +117,10 @@ Example::
attribute. Only one type can be selected at a time. Values are
BOX, SPHERE, CYLINDER, CONE, and POLYHEDERON
+@type EmptyShapes: readonly dictionary
+@var EmptyShapes: Constant dict used for with L{Object.emptyShape} attribute.
+ Only one type can be selected at a time. Values are
+ ARROW, ARROWS, AXES, CIRCLE, CONE, CUBE AND SPHERE
"""
def New (type, name='type'):
@@ -347,7 +351,7 @@ class Object:
ob.layers = [] # object won't be visible
ob.layers = [1, 4] # object visible only in layers 1 and 4
ls = o.layers
- ls.append([10])
+ ls.append(10)
o.layers = ls
print ob.layers # will print: [1, 4, 10]
B{Note}: changes will only be visible after the screen (at least
@@ -525,6 +529,8 @@ class Object:
@ivar drawType: The object's drawing type.
See L{DrawTypes} constant dict for values.
@type drawType: int
+ @ivar emptyShape: The empty drawing shape.
+ See L{EmptyShapes} constant dict for values.
@ivar parentType: The object's parent type. Read-only.
See L{ParentTypes} constant dict for values.
@type parentType: int
diff --git a/source/blender/python/api2_2x/doc/Text3d.py b/source/blender/python/api2_2x/doc/Text3d.py
index a7d8c585078..4bd989014f4 100644
--- a/source/blender/python/api2_2x/doc/Text3d.py
+++ b/source/blender/python/api2_2x/doc/Text3d.py
@@ -287,6 +287,26 @@ class Text3d:
@param align: The new text3d's Alignment value.
"""
+ def getMaterial(index):
+ """
+ get the material index of a character.
+ @rtype: int
+ @return: the material index if the character
+ @type index: int
+ @param index: the index of the character in a string
+ """
+
+ def setMaterial(index, material_index):
+ """
+ Set a characters material.
+ @note: after changing this youll need to update the object with object.makeDisplayList() to see the changes.
+ @rtype: None
+ @type index: int
+ @param index: the index of the character in a string
+ @type material_index: int
+ @param material_index: the material index set set the character.
+ """
+
def addFrame():
"""
Adds a text frame. maximum number of frames is 255.
diff --git a/source/blender/python/api2_2x/vector.c b/source/blender/python/api2_2x/vector.c
index 33ca993fb49..fe28f0fac42 100644
--- a/source/blender/python/api2_2x/vector.c
+++ b/source/blender/python/api2_2x/vector.c
@@ -42,6 +42,7 @@ char Vector_Resize3D_doc[] = "() - resize a vector to [x,y,z]";
char Vector_Resize4D_doc[] = "() - resize a vector to [x,y,z,w]";
char Vector_toPoint_doc[] = "() - create a new Point Object from this vector";
char Vector_ToTrackQuat_doc[] = "(track, up) - extract a quaternion from the vector and the track and up axis";
+char Vector_reflect_doc[] = "(mirror) - return a vector reflected on the mirror normal";
char Vector_copy_doc[] = "() - return a copy of the vector";
/*-----------------------METHOD DEFINITIONS ----------------------*/
struct PyMethodDef Vector_methods[] = {
@@ -53,6 +54,7 @@ struct PyMethodDef Vector_methods[] = {
{"resize4D", (PyCFunction) Vector_Resize4D, METH_NOARGS, Vector_Resize2D_doc},
{"toPoint", (PyCFunction) Vector_toPoint, METH_NOARGS, Vector_toPoint_doc},
{"toTrackQuat", ( PyCFunction ) Vector_ToTrackQuat, METH_VARARGS, Vector_ToTrackQuat_doc},
+ {"reflect", ( PyCFunction ) Vector_reflect, METH_O, Vector_reflect_doc},
{"copy", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc},
{"__copy__", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc},
{NULL, NULL, 0, NULL}
@@ -273,7 +275,55 @@ PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args )
return newQuaternionObject(quat, Py_NEW);
}
-
+/*----------------------------Vector.reflect(mirror) ----------------------
+ return a reflected vector on the mirror normal
+ ((2 * DotVecs(vec, mirror)) * mirror) - vec
+ using arithb.c would be nice here */
+PyObject *Vector_reflect( VectorObject * self, PyObject * value )
+{
+ VectorObject *mirrvec;
+ float mirror[3];
+ float vec[3];
+ float reflect[4] = {0.0f, 0.0f, 0.0f, 0.0f};
+ float dot2;
+
+ /* for normalizing */
+ int i;
+ float norm = 0.0f;
+
+ if (!VectorObject_Check(value))
+ return EXPP_ReturnPyObjError( PyExc_TypeError, "expected a vector argument" );
+
+ mirrvec = (VectorObject *)value;
+
+ mirror[0] = mirrvec->vec[0];
+ mirror[1] = mirrvec->vec[1];
+ if (mirrvec->size > 2) mirror[2] = mirrvec->vec[2];
+ else mirror[2] = 0.0;
+
+ /* normalize, whos idea was it not to use arithb.c? :-/ */
+ for(i = 0; i < 3; i++) {
+ norm += mirror[i] * mirror[i];
+ }
+ norm = (float) sqrt(norm);
+ for(i = 0; i < 3; i++) {
+ mirror[i] /= norm;
+ }
+ /* done */
+
+ vec[0] = self->vec[0];
+ vec[1] = self->vec[1];
+ if (self->size > 2) vec[2] = self->vec[2];
+ else vec[2] = 0.0;
+
+ dot2 = 2 * vec[0]*mirror[0]+vec[1]*mirror[1]+vec[2]*mirror[2];
+
+ reflect[0] = (dot2 * mirror[0]) - vec[0];
+ reflect[1] = (dot2 * mirror[1]) - vec[1];
+ reflect[2] = (dot2 * mirror[2]) - vec[2];
+
+ return newVectorObject(reflect, self->size, Py_NEW);
+}
/*----------------------------Vector.copy() --------------------------------------
return a copy of the vector */
diff --git a/source/blender/python/api2_2x/vector.h b/source/blender/python/api2_2x/vector.h
index a86f2ddfe42..61b50d5f458 100644
--- a/source/blender/python/api2_2x/vector.h
+++ b/source/blender/python/api2_2x/vector.h
@@ -52,6 +52,7 @@ PyObject *Vector_Resize3D( VectorObject * self );
PyObject *Vector_Resize4D( VectorObject * self );
PyObject *Vector_toPoint( VectorObject * self );
PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args );
+PyObject *Vector_reflect( VectorObject * self, PyObject * value );
PyObject *Vector_copy( VectorObject * self );
PyObject *newVectorObject(float *vec, int size, int type);
diff --git a/source/blender/radiosity/CMakeLists.txt b/source/blender/radiosity/CMakeLists.txt
index 36e9ad19770..941da41a5b2 100644
--- a/source/blender/radiosity/CMakeLists.txt
+++ b/source/blender/radiosity/CMakeLists.txt
@@ -29,7 +29,7 @@ FILE(GLOB SRC intern/source/*.c)
SET(INC
extern/include ../blenlib ../blenkernel ../makesdna ../include
../../../intern/guardedalloc ../render/extern/include
- ../render/intern/include
+ ../render/intern/include ../blenloader
)
BLENDERLIB_NOLIST(blender_radiosity "${SRC}" "${INC}")
diff --git a/source/blender/radiosity/SConscript b/source/blender/radiosity/SConscript
index 102f79683f9..a86b76bb4b1 100644
--- a/source/blender/radiosity/SConscript
+++ b/source/blender/radiosity/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('intern/source/*.c')
incs = 'extern/include ../blenlib ../blenkernel ../makesdna ../include'
incs += ' #/intern/guardedalloc ../render/extern/include'
-incs += ' ../render/intern/include'
+incs += ' ../render/intern/include ../blenloader'
incs += ' ' + env['BF_OPENGL_INC']
diff --git a/source/blender/radiosity/intern/source/Makefile b/source/blender/radiosity/intern/source/Makefile
index 19768c959c7..e5ff8c40d08 100644
--- a/source/blender/radiosity/intern/source/Makefile
+++ b/source/blender/radiosity/intern/source/Makefile
@@ -44,6 +44,7 @@ CPPFLAGS += -I../../../blenlib
CPPFLAGS += -I../../../makesdna
CPPFLAGS += -I../../../imbuf
CPPFLAGS += -I../../../
+CPPFLAGS += -I../../../blenloader
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
# first /include is my own includes, second are the external includes
diff --git a/source/blender/radiosity/intern/source/radnode.c b/source/blender/radiosity/intern/source/radnode.c
index 5517a22eb93..042fe6840fc 100644
--- a/source/blender/radiosity/intern/source/radnode.c
+++ b/source/blender/radiosity/intern/source/radnode.c
@@ -50,6 +50,8 @@
#include "radio.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -167,14 +169,14 @@ void *calloc_fast(int size)
void free_fast(void *poin, int size)
{
MallocGroup *mg;
- long val;
+ intptr_t val;
mg= MallocBase.last;
while(mg) {
if(mg->size==size) {
- if( ((long)poin) >= ((long)mg->data) ) {
- if( ((long)poin) < ((long)(mg->data+MAL_GROUPSIZE*size)) ) {
- val= ((long)poin) - ((long)mg->data);
+ if( ((intptr_t)poin) >= ((intptr_t)mg->data) ) {
+ if( ((intptr_t)poin) < ((intptr_t)(mg->data+MAL_GROUPSIZE*size)) ) {
+ val= ((intptr_t)poin) - ((intptr_t)mg->data);
val/= size;
mg->curfree= val;
mg->flags[val]= 0;
diff --git a/source/blender/radiosity/intern/source/radpreprocess.c b/source/blender/radiosity/intern/source/radpreprocess.c
index 5f8a39786c1..07b933b6db9 100644
--- a/source/blender/radiosity/intern/source/radpreprocess.c
+++ b/source/blender/radiosity/intern/source/radpreprocess.c
@@ -68,6 +68,8 @@
#include "radio.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -179,7 +181,7 @@ int vergedge(const void *v1,const void *v2)
void addedge(float *v1, float *v2, EdSort *es)
{
- if( ((long)v1)<((long)v2) ) {
+ if( ((intptr_t)v1)<((intptr_t)v2) ) {
es->v1= v1;
es->v2= v2;
}
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index b543dff49ff..0b659554d1a 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -29,7 +29,7 @@ FILE(GLOB SRC intern/source/*.c)
SET(INC
intern/include ../../../intern/guardedalloc ../blenlib ../makesdna
extern/include ../blenkernel ../radiosity/extern/include ../imbuf
- ../quicktime ../include ../../kernel/gen_messaging ../yafray
+ ../quicktime ../include ../../kernel/gen_messaging ../yafray ../blenloader
)
IF(WITH_OPENEXR)
diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript
index b1bc9673f23..f0d1353b0d3 100644
--- a/source/blender/render/SConscript
+++ b/source/blender/render/SConscript
@@ -6,7 +6,7 @@ sources = env.Glob('intern/source/*.c')
incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna'
incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf'
-incs += ' ../quicktime ../include ../../kernel/gen_messaging'
+incs += ' ../quicktime ../include ../../kernel/gen_messaging ../blenloader'
defs = []
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 2f97b19f75c..f83bbd7e8b2 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -44,6 +44,8 @@
#include "RE_shader_ext.h" /* TexResult, ShadeResult, ShadeInput */
#include "sunsky.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
struct Object;
struct MemArena;
struct VertTableNode;
@@ -89,11 +91,11 @@ typedef struct RenderPart
int *rectp; /* polygon index table */
int *rectz; /* zbuffer */
int *rectmask; /* negative zmask */
- long *rectdaps; /* delta acum buffer for pixel structs */
+ intptr_t *rectdaps; /* delta acum buffer for pixel structs */
int *rectbacko; /* object table for backside sss */
int *rectbackp; /* polygon index table for backside sss */
int *rectbackz; /* zbuffer for backside sss */
- long *rectall; /* buffer for all faces for sss */
+ intptr_t *rectall; /* buffer for all faces for sss */
rcti disprect; /* part coordinates within total picture */
int rectx, recty; /* the size */
@@ -226,7 +228,7 @@ struct ISBData;
typedef struct ShadSampleBuf {
struct ShadSampleBuf *next, *prev;
- long *zbuf;
+ intptr_t *zbuf;
char *cbuf;
} ShadSampleBuf;
diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c
index d70c51b83bc..15c57eb9362 100644
--- a/source/blender/render/intern/source/occlusion.c
+++ b/source/blender/render/intern/source/occlusion.c
@@ -1670,7 +1670,7 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
OcclusionCacheSample *sample;
OccFace exclude;
ShadeInput *shi;
- long *rd=NULL;
+ intptr_t *rd=NULL;
int *ro=NULL, *rp=NULL, *rz=NULL, onlyshadow;
int x, y, step = CACHE_STEP;
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 6a0af82b4d7..3cd7bdc6772 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -138,7 +138,7 @@ static void print_error(char *str) {printf("ERROR: %s\n", str);}
static void stats_background(RenderStats *rs)
{
- extern unsigned long mem_in_use;
+ extern uintptr_t mem_in_use;
float megs_used_memory= mem_in_use/(1024.0*1024.0);
char str[400], *spos= str;
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 4520e4c10bb..4a2ad995b39 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -243,7 +243,7 @@ static void halo_tile(RenderPart *pa, RenderLayer *rl)
rcti disprect= pa->disprect, testrect= pa->disprect;
float dist, xsq, ysq, xn, yn;
float col[4];
- long *rd= NULL;
+ intptr_t *rd= NULL;
int a, *rz, zz, y, sample, totsample, od;
short minx, maxx, miny, maxy, x;
unsigned int lay= rl->lay;
@@ -324,7 +324,7 @@ static void lamphalo_tile(RenderPart *pa, RenderLayer *rl)
ShadeInput shi;
float *pass;
float fac, col[4];
- long *rd= pa->rectdaps;
+ intptr_t *rd= pa->rectdaps;
int *rz= pa->rectz;
int x, y, sample, totsample, fullsample, od;
@@ -767,7 +767,7 @@ static void shadeDA_tile(RenderPart *pa, RenderLayer *rl)
{
RenderResult *rr= pa->result;
ShadeSample ssamp;
- long *rd, *rectdaps= pa->rectdaps;
+ intptr_t *rd, *rectdaps= pa->rectdaps;
int samp;
int x, y, seed, crop=0, offs=0, od;
@@ -874,7 +874,7 @@ static void freeps(ListBase *lb)
lb->first= lb->last= NULL;
}
-static void addps(ListBase *lb, long *rd, int obi, int facenr, int z, int maskz, unsigned short mask)
+static void addps(ListBase *lb, intptr_t *rd, int obi, int facenr, int z, int maskz, unsigned short mask)
{
PixStrMain *psm;
PixStr *ps, *last= NULL;
@@ -901,7 +901,7 @@ static void addps(ListBase *lb, long *rd, int obi, int facenr, int z, int maskz,
ps= psm->ps + psm->counter++;
if(last) last->next= ps;
- else *rd= (long)ps;
+ else *rd= (intptr_t)ps;
ps->next= NULL;
ps->obi= obi;
@@ -1027,7 +1027,7 @@ static void reset_sky_speed(RenderPart *pa, RenderLayer *rl)
static unsigned short *make_solid_mask(RenderPart *pa)
{
- long *rd= pa->rectdaps;
+ intptr_t *rd= pa->rectdaps;
unsigned short *solidmask, *sp;
int x;
@@ -1092,7 +1092,7 @@ void make_pixelstructs(RenderPart *pa, ZSpan *zspan, int sample, void *data)
{
ZbufSolidData *sdata= (ZbufSolidData*)data;
ListBase *lb= sdata->psmlist;
- long *rd= pa->rectdaps;
+ intptr_t *rd= pa->rectdaps;
int *ro= zspan->recto;
int *rp= zspan->rectp;
int *rz= zspan->rectz;
@@ -1133,7 +1133,7 @@ void zbufshadeDA_tile(RenderPart *pa)
/* initialize pixelstructs and edge buffer */
addpsmain(&psmlist);
- pa->rectdaps= MEM_callocN(sizeof(long)*pa->rectx*pa->recty+4, "zbufDArectd");
+ pa->rectdaps= MEM_callocN(sizeof(intptr_t)*pa->rectx*pa->recty+4, "zbufDArectd");
if(rl->layflag & SCE_LAY_EDGE)
if(R.r.mode & R_EDGE)
@@ -1433,7 +1433,7 @@ static void addps_sss(void *cb_handle, int obi, int facenr, int x, int y, int z)
return;
if(pa->rectall) {
- long *rs= pa->rectall + pa->rectx*y + x;
+ intptr_t *rs= pa->rectall + pa->rectx*y + x;
addps(&handle->psmlist, rs, obi, facenr, z, 0, 0);
handle->totps++;
@@ -1569,7 +1569,7 @@ void zbufshade_sss_tile(RenderPart *pa)
int *ro, *rz, *rp, *rbo, *rbz, *rbp, lay;
#if 0
PixStr *ps;
- long *rs;
+ intptr_t *rs;
int z;
#endif
@@ -1581,7 +1581,7 @@ void zbufshade_sss_tile(RenderPart *pa)
handle.psmlist.first= handle.psmlist.last= NULL;
addpsmain(&handle.psmlist);
- pa->rectall= MEM_callocN(sizeof(long)*pa->rectx*pa->recty+4, "rectall");
+ pa->rectall= MEM_callocN(sizeof(intptr_t)*pa->rectx*pa->recty+4, "rectall");
#else
pa->recto= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "recto");
pa->rectp= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "rectp");
diff --git a/source/blender/render/intern/source/shadbuf.c b/source/blender/render/intern/source/shadbuf.c
index f3258b601de..f477df3ed8c 100644
--- a/source/blender/render/intern/source/shadbuf.c
+++ b/source/blender/render/intern/source/shadbuf.c
@@ -171,7 +171,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square)
{
ShadSampleBuf *shsample;
float dist;
- unsigned long *ztile;
+ uintptr_t *ztile;
int *rz, *rz1, verg, verg1, size= shb->size;
int a, x, y, minx, miny, byt1, byt2;
char *rc, *rcline, *ctile, *zt;
@@ -179,10 +179,10 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square)
shsample= MEM_mallocN( sizeof(ShadSampleBuf), "shad sample buf");
BLI_addtail(&shb->buffers, shsample);
- shsample->zbuf= MEM_mallocN( sizeof(unsigned long)*(size*size)/256, "initshadbuf2");
+ shsample->zbuf= MEM_mallocN( sizeof(uintptr_t)*(size*size)/256, "initshadbuf2");
shsample->cbuf= MEM_callocN( (size*size)/256, "initshadbuf3");
- ztile= (unsigned long *)shsample->zbuf;
+ ztile= (uintptr_t *)shsample->zbuf;
ctile= shsample->cbuf;
/* help buffer */
@@ -237,7 +237,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square)
}
if(byt1 && byt2) { /* only store byte */
*ctile= 1;
- *ztile= (unsigned long)MEM_mallocN(256+4, "tile1");
+ *ztile= (uintptr_t)MEM_mallocN(256+4, "tile1");
rz= (int *)*ztile;
*rz= *rz1;
@@ -247,7 +247,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square)
}
else if(byt1) { /* only store short */
*ctile= 2;
- *ztile= (unsigned long)MEM_mallocN(2*256+4,"Tile2");
+ *ztile= (uintptr_t)MEM_mallocN(2*256+4,"Tile2");
rz= (int *)*ztile;
*rz= *rz1;
@@ -260,7 +260,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square)
}
else { /* store triple */
*ctile= 3;
- *ztile= (unsigned long)MEM_mallocN(3*256,"Tile3");
+ *ztile= (uintptr_t)MEM_mallocN(3*256,"Tile3");
zt= (char *)*ztile;
rc= rcline;
@@ -542,7 +542,7 @@ void freeshadowbuf(LampRen *lar)
v= (shb->size*shb->size)/256;
for(shsample= shb->buffers.first; shsample; shsample= shsample->next) {
- long *ztile= shsample->zbuf;
+ intptr_t *ztile= shsample->zbuf;
char *ctile= shsample->cbuf;
for(b=0; b<v; b++, ztile++, ctile++)
@@ -1752,7 +1752,7 @@ static void isb_make_buffer(RenderPart *pa, LampRen *lar)
ISBSample *samp, *samplebuf[16]; /* should be RE_MAX_OSA */
ISBBranch root;
MemArena *memarena;
- long *rd;
+ intptr_t *rd;
int *recto, *rectp, x, y, sindex, sample, bsp_err=0;
/* storage for shadow, per thread */
diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c
index 591d51a969d..05e36160f0e 100644
--- a/source/blender/render/intern/source/strand.c
+++ b/source/blender/render/intern/source/strand.c
@@ -416,7 +416,7 @@ typedef struct StrandPart {
int *totapixbuf;
int *rectz;
int *rectmask;
- long *rectdaps;
+ intptr_t *rectdaps;
int rectx, recty;
int sample;
@@ -510,7 +510,7 @@ static void do_strand_fillac(void *handle, int x, int y, float u, float v, float
if(spart->rectdaps) {
/* find the z of the sample */
PixStr *ps;
- long *rd= spart->rectdaps + offset;
+ intptr_t *rd= spart->rectdaps + offset;
bufferz= 0x7FFFFFFF;
if(spart->rectmask) maskz= 0x7FFFFFFF;
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c
index c91c9e2f799..29aa6e3be29 100644
--- a/source/blender/render/intern/source/zbuf.c
+++ b/source/blender/render/intern/source/zbuf.c
@@ -2278,7 +2278,7 @@ static int hashlist_projectvert(float *v1, float winmat[][4], float *hoco)
return 0;
}
- buck= &bucket[ (((long)v1)/16) & 255 ];
+ buck= &bucket[ (((intptr_t)v1)/16) & 255 ];
if(buck->vert==v1) {
QUATCOPY(hoco, buck->hoco);
return buck->clip;
@@ -3263,7 +3263,7 @@ static void copyto_abufz(RenderPart *pa, int *arectz, int *rectmask, int sample)
{
PixStr *ps;
int x, y, *rza, *rma;
- long *rd;
+ intptr_t *rd;
if(R.osa==0) {
memcpy(arectz, pa->rectz, sizeof(int)*pa->rectx*pa->recty);
@@ -3484,7 +3484,7 @@ static int zbuffer_abuf(RenderPart *pa, APixstr *APixbuf, ListBase *apsmbase, Re
/* speed pointer NULL = sky, we clear */
/* else if either alpha is full or no solid was filled in: copy speed */
/* else fill in minimum speed */
-void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, long *rdrect)
+void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, intptr_t *rdrect)
{
RenderPass *rpass;
@@ -3958,7 +3958,7 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas
ZTranspRow zrow[MAX_ZROW];
StrandShadeCache *sscache= NULL;
float sampalpha, alpha, *passrect= pass;
- long *rdrect;
+ intptr_t *rdrect;
int x, y, crop=0, a, b, totface, totsample, doztra;
int addpassflag, offs= 0, od, addzbuf, osa = (R.osa? R.osa: 1);
unsigned short *ztramask= NULL, filled;
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c
index d11edc631d6..9dbc2ea0721 100644
--- a/source/blender/src/buttons_editing.c
+++ b/source/blender/src/buttons_editing.c
@@ -1828,6 +1828,16 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco
height = 94;
} else if (md->type==eModifierType_Explode) {
height = 94;
+ } else if (md->type==eModifierType_Shrinkwrap) {
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+ height = 86 + 3;
+ if (smd->shrinkType == MOD_SHRINKWRAP_PROJECT)
+ {
+ height += 19*5;
+ if(smd->projAxis == 0) height += 19;
+ }
+ else if (smd->shrinkType == MOD_SHRINKWRAP_NEAREST_SURFACE)
+ height += 19;
}
/* roundbox 4 free variables: corner-rounding, nop, roundbox type, shade */
uiDefBut(block, ROUNDBOX, 0, "", x-10, y-height-2, width, height-2, NULL, 5.0, 0.0, 12, 40, "");
@@ -2450,6 +2460,51 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco
uiDefButBitS(block, TOG, eExplodeFlag_Alive, B_MODIFIER_RECALC, "Alive", lx+buttonWidth/3, cy, buttonWidth/3,19, &emd->flag, 0, 0, 0, 0, "Show mesh when particles are alive");
uiDefButBitS(block, TOG, eExplodeFlag_Dead, B_MODIFIER_RECALC, "Dead", lx+buttonWidth*2/3, cy, buttonWidth/3,19, &emd->flag, 0, 0, 0, 0, "Show mesh when particles are dead");
uiBlockEndAlign(block);
+ } else if (md->type==eModifierType_Shrinkwrap) {
+ ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md;
+
+ char shrinktypemenu[]="Shrinkwrap type%t|nearest surface point %x0|projection %x1|nearest vertex %x2";
+
+ uiDefIDPoinBut(block, modifier_testMeshObj, ID_OB, B_CHANGEDEP, "Ob: ", lx, (cy-=19), buttonWidth,19, &smd->target, "Target to shrink to");
+
+ but=uiDefBut(block, TEX, B_MODIFIER_RECALC, "VGroup: ", lx, (cy-=19), buttonWidth,19, &smd->vgroup_name, 0, 31, 0, 0, "Vertex Group name");
+ uiButSetCompleteFunc(but, autocomplete_vgroup, (void *)ob);
+
+ uiDefButF(block, NUM, B_MODIFIER_RECALC, "Offset:", lx,(cy-=19),buttonWidth,19, &smd->keepDist, 0.0f, 100.0f, 1.0f, 0, "Specify distance to keep from the target");
+
+ cy -= 3;
+ uiDefButS(block, MENU, B_MODIFIER_RECALC, shrinktypemenu, lx,(cy-=19),buttonWidth,19, &smd->shrinkType, 0, 0, 0, 0, "Selects type of shrinkwrap algorithm for target position.");
+
+ if (smd->shrinkType == MOD_SHRINKWRAP_PROJECT){
+
+
+ /* UI for projection axis */
+ uiBlockBeginAlign(block);
+ uiDefButC(block, ROW, B_MODIFIER_RECALC, "Normal" , lx,(cy-=19),buttonWidth,19, &smd->projAxis, 18.0, MOD_SHRINKWRAP_PROJECT_OVER_NORMAL, 0, 0, "Projection over X axis");
+ if(smd->projAxis == 0)
+ {
+ uiDefButC(block, NUM, B_MODIFIER_RECALC, "SS Levels:", lx, (cy-=19), buttonWidth,19, &smd->subsurfLevels, 0, 6, 0, 0, "This indicates the number of CCSubdivisions that must be performed before extracting vertexs positions and normals");
+ }
+
+ uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS, B_MODIFIER_RECALC, "X", lx+buttonWidth/3*0,(cy-=19),buttonWidth/3,19, &smd->projAxis, 0, 0, 0, 0, "Projection over X axis");
+ uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS, B_MODIFIER_RECALC, "Y", lx+buttonWidth/3*1,cy,buttonWidth/3,19, &smd->projAxis, 0, 0, 0, 0, "Projection over Y axis");
+ uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS, B_MODIFIER_RECALC, "Z", lx+buttonWidth/3*2,cy,buttonWidth/3,19, &smd->projAxis, 0, 0, 0, 0, "Projection over Z axis");
+
+
+ /* allowed directions of projection axis */
+ uiDefButBitS(block, TOG, MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR, B_MODIFIER_RECALC, "Negative", lx,(cy-=19),buttonWidth/2,19, &smd->shrinkOpts, 0, 0, 0, 0, "Allows to move the vertex in the negative direction of axis");
+ uiDefButBitS(block, TOG, MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR, B_MODIFIER_RECALC, "Positive", lx + buttonWidth/2,cy,buttonWidth/2,19, &smd->shrinkOpts, 0, 0, 0, 0, "Allows to move the vertex in the positive direction of axis");
+
+ uiDefButBitS(block, TOG, MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE, B_MODIFIER_RECALC, "Cull frontfaces",lx,(cy-=19),buttonWidth/2,19, &smd->shrinkOpts, 0, 0, 0, 0, "Controls whether a vertex can be projected to a front face on target");
+ uiDefButBitS(block, TOG, MOD_SHRINKWRAP_CULL_TARGET_BACKFACE, B_MODIFIER_RECALC, "Cull backfaces", lx+buttonWidth/2,cy,buttonWidth/2,19, &smd->shrinkOpts, 0, 0, 0, 0, "Controls whether a vertex can be projected to a back face on target");
+ uiDefIDPoinBut(block, modifier_testMeshObj, ID_OB, B_CHANGEDEP, "Ob2: ", lx, (cy-=19), buttonWidth,19, &smd->auxTarget, "Aditional mesh to project over");
+ }
+ else if (smd->shrinkType == MOD_SHRINKWRAP_NEAREST_SURFACE){
+ uiDefButBitS(block, TOG, MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE, B_MODIFIER_RECALC, "Above surface", lx,(cy-=19),buttonWidth,19, &smd->shrinkOpts, 0, 0, 0, 0, "Vertices are kept on the front side of faces");
+ }
+
+ uiBlockEndAlign(block);
+
}
uiBlockEndAlign(block);
@@ -4149,7 +4204,7 @@ static void validate_posebonebutton_cb(void *bonev, void *namev)
static void armature_layer_cb(void *lay_v, void *value_v)
{
short *layer= lay_v;
- int value= (long)value_v;
+ int value= (intptr_t)value_v;
if(*layer==0 || G.qual==0) *layer= value;
allqueue(REDRAWBUTSEDIT, 0);
diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c
index 5cf1958678e..2dd6d705a9e 100644
--- a/source/blender/src/buttons_logic.c
+++ b/source/blender/src/buttons_logic.c
@@ -683,6 +683,8 @@ static char *sensor_name(int type)
return "Property";
case SENS_ACTUATOR:
return "Actuator";
+ case SENS_DELAY:
+ return "Delay";
case SENS_MOUSE:
return "Mouse";
case SENS_COLLISION:
@@ -704,7 +706,7 @@ static char *sensor_name(int type)
static char *sensor_pup(void)
{
/* the number needs to match defines in game.h */
- return "Sensors %t|Always %x0|Keyboard %x3|Mouse %x5|"
+ return "Sensors %t|Always %x0|Delay %x13|Keyboard %x3|Mouse %x5|"
"Touch %x1|Collision %x6|Near %x2|Radar %x7|"
"Property %x4|Random %x8|Ray %x9|Message %x10|Joystick %x11|Actuator %x12";
}
@@ -1000,6 +1002,7 @@ static int get_col_sensor(int type)
{
switch(type) {
case SENS_ALWAYS: return TH_BUT_ACTION;
+ case SENS_DELAY: return TH_BUT_ACTION;
case SENS_TOUCH: return TH_BUT_NEUTRAL;
case SENS_COLLISION: return TH_BUT_SETTING;
case SENS_NEAR: return TH_BUT_SETTING1;
@@ -1070,8 +1073,8 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short
bRaySensor *raySens = NULL;
bMessageSensor *mes = NULL;
bJoystickSensor *joy = NULL;
- bActuatorSensor *as = NULL;
-
+ bActuatorSensor *as = NULL;
+ bDelaySensor *ds = NULL;
short ysize;
char *str;
@@ -1297,6 +1300,27 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short
yco-= ysize;
break;
}
+ case SENS_DELAY:
+ {
+ ysize= 48;
+
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize,
+ (float)xco+width, (float)yco, 1);
+
+ draw_default_sensor_header(sens, block, xco, yco, width);
+ ds = sens->data;
+
+ uiDefButS(block, NUM, 0, "Delay",(short)(10+xco),(short)(yco-44),(short)((width-22)*0.4+10), 19,
+ &ds->delay, 0.0, 5000.0, 0, 0, "Delay in number of frames before the positive trigger");
+ uiDefButS(block, NUM, 0, "Dur",(short)(10+xco+(width-22)*0.4+10),(short)(yco-44),(short)((width-22)*0.4-10), 19,
+ &ds->duration, 0.0, 5000.0, 0, 0, "If >0, delay in number of frames before the negative trigger following the positive trigger");
+ uiDefButBitS(block, TOG, SENS_DELAY_REPEAT, 0, "REP",(short)(xco + 10 + (width-22)*0.8),(short)(yco - 44),
+ (short)(0.20 * (width-22)), 19, &ds->flag, 0.0, 0.0, 0, 0,
+ "Toggle repeat option. If selected, the sensor restarts after Delay+Dur frames");
+ yco-= ysize;
+ break;
+ }
case SENS_MOUSE:
{
ms= sens->data;
@@ -1689,7 +1713,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
uiDefBut(block, LABEL, 0, "Torque", xco, yco-106, 55, 19, NULL, 0, 0, 0, 0, "Sets the torque");
uiDefButF(block, NUM, 0, "", xco+45, yco-106, wval, 19, oa->forcerot, -10000.0, 10000.0, 10, 0, "");
uiDefButF(block, NUM, 0, "", xco+45+wval, yco-106, wval, 19, oa->forcerot+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-6106, wval, 19, oa->forcerot+2, -10000.0, 10000.0, 10, 0, "");
+ uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-106, wval, 19, oa->forcerot+2, -10000.0, 10000.0, 10, 0, "");
}
if ( ob->gameflag & OB_DYNAMIC )
@@ -3183,7 +3207,8 @@ void logic_buts(void)
while(cont) {
for (iact=0; iact<cont->totlinks; iact++) {
act = cont->links[iact];
- act->flag |= ACT_LINKED;
+ if (act)
+ act->flag |= ACT_LINKED;
}
controller_state_mask |= cont->state_mask;
cont = cont->next;
@@ -3231,7 +3256,8 @@ void logic_buts(void)
/* this controller is visible, mark all its actuator */
for (iact=0; iact<cont->totlinks; iact++) {
act = cont->links[iact];
- act->flag |= ACT_VISIBLE;
+ if (act)
+ act->flag |= ACT_VISIBLE;
}
uiBlockSetEmboss(block, UI_EMBOSSM);
uiDefIconButBitS(block, TOG, CONT_DEL, B_DEL_CONT, ICON_X, xco, yco, 22, 19, &cont->flag, 0, 0, 0, 0, "Delete Controller");
@@ -3323,8 +3349,8 @@ void logic_buts(void)
ycoo= yco;
if(sens->flag & SENS_SHOW)
{
- uiDefButS(block, MENU, B_CHANGE_SENS, sensor_pup(), (short)(xco+22), yco, 100, 19, &sens->type, 0, 0, 0, 0, "Sensor type");
- but= uiDefBut(block, TEX, 1, "", (short)(xco+122), yco, (short)(width-144), 19, sens->name, 0, 31, 0, 0, "Sensor name");
+ uiDefButS(block, MENU, B_CHANGE_SENS, sensor_pup(), (short)(xco+22), yco, 80, 19, &sens->type, 0, 0, 0, 0, "Sensor type");
+ but= uiDefBut(block, TEX, 1, "", (short)(xco+102), yco, (short)(width-124), 19, sens->name, 0, 31, 0, 0, "Sensor name");
uiButSetFunc(but, make_unique_prop_names_cb, sens->name, (void*) 0);
sens->otype= sens->type;
@@ -3334,9 +3360,9 @@ void logic_buts(void)
else {
set_col_sensor(sens->type, 1);
glRecti(xco+22, yco, xco+width-22,yco+19);
- but= uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 100, 19, sens, 0, 0, 0, 0, "");
+ but= uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 80, 19, sens, 0, 0, 0, 0, "");
uiButSetFunc(but, sca_move_sensor, sens, NULL);
- but= uiDefBut(block, LABEL, 0, sens->name, (short)(xco+122), yco, (short)(width-144), 19, sens, 0, 31, 0, 0, "");
+ but= uiDefBut(block, LABEL, 0, sens->name, (short)(xco+102), yco, (short)(width-124), 19, sens, 0, 31, 0, 0, "");
uiButSetFunc(but, sca_move_sensor, sens, NULL);
}
@@ -3393,8 +3419,8 @@ void logic_buts(void)
if(act->flag & ACT_SHOW) {
act->otype= act->type;
- uiDefButS(block, MENU, B_CHANGE_ACT, actuator_pup(ob), (short)(xco+22), yco, 100, 19, &act->type, 0, 0, 0, 0, "Actuator type");
- but= uiDefBut(block, TEX, 1, "", (short)(xco+122), yco, (short)(width-144), 19, act->name, 0, 31, 0, 0, "Actuator name");
+ uiDefButS(block, MENU, B_CHANGE_ACT, actuator_pup(ob), (short)(xco+22), yco, 90, 19, &act->type, 0, 0, 0, 0, "Actuator type");
+ but= uiDefBut(block, TEX, 1, "", (short)(xco+112), yco, (short)(width-134), 19, act->name, 0, 31, 0, 0, "Actuator name");
uiButSetFunc(but, make_unique_prop_names_cb, act->name, (void*) 0);
ycoo= yco;
@@ -3404,9 +3430,9 @@ void logic_buts(void)
else {
set_col_actuator(act->type, 1);
glRecti((short)(xco+22), yco, (short)(xco+width-22),(short)(yco+19));
- but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 100, 19, act, 0, 0, 0, 0, "Actuator type");
+ but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, 19, act, 0, 0, 0, 0, "Actuator type");
uiButSetFunc(but, sca_move_actuator, act, NULL);
- but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+122), yco, (short)(width-144), 19, act, 0, 0, 0, 0, "Actuator name");
+ but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-134), 19, act, 0, 0, 0, 0, "Actuator name");
uiButSetFunc(but, sca_move_actuator, act, NULL);
ycoo= yco;
}
diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c
index e0e04fef019..6a3b97d58f0 100644
--- a/source/blender/src/buttons_object.c
+++ b/source/blender/src/buttons_object.c
@@ -3281,6 +3281,8 @@ static void object_panel_collision(Object *ob)
uiDefBut(block, LABEL, 0, "",160,160,150,2, NULL, 0.0, 0, 0, 0, "");
if(pd->deflect) {
+ CollisionModifierData *collmd = (CollisionModifierData *)modifiers_findByType ( ob, eModifierType_Collision );
+
uiDefBut(block, LABEL, 0, "Particle Interaction", 10,135,310,20, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
@@ -3296,12 +3298,18 @@ static void object_panel_collision(Object *ob)
uiDefBut(block, LABEL, 0, "Soft Body and Cloth Interaction", 10,65,310,20, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 10,45,150,20, &pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during collision");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 10,25,150,20, &pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 10, 5,150,20, &pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 10,45,150,20, &pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 160, 45,150,20, &pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
uiBlockEndAlign(block);
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 10,25,150,20, &pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during collision");
- uiDefButBitS(block, TOG, OB_SB_COLLFINAL, B_FIELD_CHANGE, "Ev.M.Stack", 170,45,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack (softbody only)");
+ uiDefButBitS(block, TOG, OB_SB_COLLFINAL, B_FIELD_CHANGE, "Ev.M.Stack", 160,25,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack (softbody only)");
+
+ // collision options
+ if(collmd)
+ {
+ uiDefButS(block, NUM, B_FIELD_CHANGE, "Absorption: ", 10,0,150,20, &collmd->absorption, 0.0, 100, 1, 2, "How much of effector force gets lost during collision with this object (in percent).");
+ }
}
}
}
@@ -3311,6 +3319,7 @@ static void object_panel_fields(Object *ob)
uiBut *but;
int particles=0;
static short actpsys=-1;
+ static char slot=0;
block= uiNewBlock(&curarea->uiblocks, "object_panel_fields", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Fields", "Physics", 0, 0, 318, 204)==0) return;
@@ -3332,7 +3341,7 @@ static void object_panel_fields(Object *ob)
char *tipstr="Choose field type";
uiBlockBeginAlign(block);
-
+
if(ob->particlesystem.first) {
ParticleSystem *psys;
char *menustr2= psys_menu_string(ob,1);
@@ -3344,8 +3353,16 @@ static void object_panel_fields(Object *ob)
if(psys->part->pd==NULL)
psys->part->pd= MEM_callocN(sizeof(PartDeflect), "PartDeflect");
- pd= psys->part->pd;
+ if(psys->part->pd2==NULL)
+ psys->part->pd2= MEM_callocN(sizeof(PartDeflect), "PartDeflect");
+
+ pd= ((slot==1) ? psys->part->pd2 : psys->part->pd);
particles=1;
+
+ uiDefButC(block, ROW, B_REDR, "", 10, 163, 14, 14, &slot, 3.0, 0, 0, 0, "Edit first particle effector slot");
+ uiDefButC(block, ROW, B_REDR, "", 24, 163, 14, 14, &slot, 3.0, 1, 0, 0, "Edit second particle effector slot");
+ uiBlockEndAlign(block);
+ uiBlockBeginAlign(block);
}
else
actpsys= -1; /* -1 = object */
@@ -3358,8 +3375,8 @@ static void object_panel_fields(Object *ob)
/* setup menu button */
if(particles){
- sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Magnetic%%x%d|Harmonic%%x%d",
- PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_MAGNET, PFIELD_HARMONIC);
+ sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Magnetic%%x%d|Harmonic%%x%d|Charge%%x%d|Lennard-Jones%%x%d",
+ PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_CHARGE, PFIELD_LENNARDJ);
if(pd->forcefield==PFIELD_FORCE) tipstr= "Particle attracts or repels particles (On shared object layers)";
else if(pd->forcefield==PFIELD_WIND) tipstr= "Constant force applied in direction of particle Z axis (On shared object layers)";
@@ -3367,11 +3384,11 @@ static void object_panel_fields(Object *ob)
}
else{
if(ob->type==OB_CURVE)
- sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Curve Guide%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d",
- PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_GUIDE, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE);
+ sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Curve Guide%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d|Charge%%x%d|Lennard-Jones%%x%d",
+ PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_GUIDE, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE, PFIELD_CHARGE, PFIELD_LENNARDJ);
else
- sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d",
- PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE);
+ sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d|Charge%%x%d|Lennard-Jones%%x%d",
+ PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE, PFIELD_CHARGE, PFIELD_LENNARDJ);
if(pd->forcefield==PFIELD_FORCE) tipstr= "Object center attracts or repels particles (On shared object layers)";
else if(pd->forcefield==PFIELD_WIND) tipstr= "Constant force applied in direction of Object Z axis (On shared object layers)";
@@ -3386,8 +3403,6 @@ static void object_panel_fields(Object *ob)
uiBlockEndAlign(block);
uiDefBut(block, LABEL, 0, "",160,180,150,2, NULL, 0.0, 0, 0, 0, "");
-
- MEM_freeN(menustr);
if(pd->forcefield) {
uiBlockBeginAlign(block);
@@ -3413,6 +3428,8 @@ static void object_panel_fields(Object *ob)
}
else if(pd->forcefield == PFIELD_HARMONIC)
uiDefButF(block, NUM, B_FIELD_CHANGE, "Damp: ", 10,120,140,20, &pd->f_damp, 0, 10, 10, 0, "Damping of the harmonic force");
+ else if(pd->forcefield == PFIELD_WIND)
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Noise: ",10,120,140,20, &pd->f_noise, 0, 10, 100, 0, "Noise of the wind force");
}
uiBlockEndAlign(block);
@@ -3451,40 +3468,49 @@ static void object_panel_fields(Object *ob)
uiBlockEndAlign(block);
}
else{
- uiDefButS(block, MENU, B_FIELD_DEP, "Fall-off%t|Cone%x2|Tube%x1|Sphere%x0", 160,180,140,20, &pd->falloff, 0.0, 0.0, 0, 0, "Fall-off shape");
- if(pd->falloff==PFIELD_FALL_TUBE)
- uiDefBut(block, LABEL, 0, "Longitudinal", 160,160,140,20, NULL, 0.0, 0, 0, 0, "");
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, PFIELD_POSZ, B_FIELD_CHANGE, "Pos", 160,140,40,20, &pd->flag, 0.0, 0, 0, 0, "Effect only in direction of positive Z axis");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 200,140,100,20, &pd->f_power, 0, 10, 10, 0, "Falloff power (real gravitational falloff = 2)");
- uiDefButBitS(block, TOG, PFIELD_USEMAX, B_FIELD_CHANGE, "Use", 160,120,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum distance for the field to work");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxDist: ", 200,120,100,20, &pd->maxdist, 0, 1000.0, 10, 0, "Maximum distance for the field to work");
- uiDefButBitS(block, TOG, PFIELD_USEMIN, B_FIELD_CHANGE, "Use", 160,100,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum distance for the field's fall-off");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MinDist: ", 200,100,100,20, &pd->mindist, 0, 1000.0, 10, 0, "Minimum distance for the field's fall-off");
- uiBlockEndAlign(block);
-
- if(pd->falloff==PFIELD_FALL_TUBE){
- uiDefBut(block, LABEL, 0, "Radial", 160,80,70,20, NULL, 0.0, 0, 0, 0, "");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 160,60,140,20, &pd->f_power_r, 0, 10, 10, 0, "Radial falloff power (real gravitational falloff = 2)");
- uiDefButBitS(block, TOG, PFIELD_USEMAXR, B_FIELD_CHANGE, "Use", 160,40,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum radial distance for the field to work");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxDist: ", 200,40,100,20, &pd->maxrad, 0, 1000.0, 10, 0, "Maximum radial distance for the field to work");
- uiDefButBitS(block, TOG, PFIELD_USEMINR, B_FIELD_CHANGE, "Use", 160,20,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum radial distance for the field's fall-off");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MinDist: ", 200,20,100,20, &pd->minrad, 0, 1000.0, 10, 0, "Minimum radial distance for the field's fall-off");
- uiBlockEndAlign(block);
+ if(pd->forcefield==PFIELD_LENNARDJ) {
+ uiDefBut(block, LABEL, 0, "Fall-off determined", 160,140,140,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "by particle sizes", 160,120,140,20, NULL, 0.0, 0, 0, 0, "");
}
- else if(pd->falloff==PFIELD_FALL_CONE){
- uiDefBut(block, LABEL, 0, "Angular", 160,80,70,20, NULL, 0.0, 0, 0, 0, "");
+ else {
+ uiDefButS(block, MENU, B_FIELD_DEP, "Fall-off%t|Cone%x2|Tube%x1|Sphere%x0", 160,180,140,20, &pd->falloff, 0.0, 0.0, 0, 0, "Fall-off shape");
+ if(pd->falloff==PFIELD_FALL_TUBE)
+ uiDefBut(block, LABEL, 0, "Longitudinal", 160,160,140,20, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 160,60,140,20, &pd->f_power_r, 0, 10, 10, 0, "Radial falloff power (real gravitational falloff = 2)");
- uiDefButBitS(block, TOG, PFIELD_USEMAXR, B_FIELD_CHANGE, "Use", 160,40,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum angle for the field to work");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxAngle: ", 200,40,100,20, &pd->maxrad, 0, 89.0, 10, 0, "Maximum angle for the field to work (in radians)");
- uiDefButBitS(block, TOG, PFIELD_USEMINR, B_FIELD_CHANGE, "Use", 160,20,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum angle for the field's fall-off");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "MinAngle: ", 200,20,100,20, &pd->minrad, 0, 89.0, 10, 0, "Minimum angle for the field's fall-off (in radians)");
+ uiDefButBitS(block, TOG, PFIELD_POSZ, B_FIELD_CHANGE, "Pos", 160,140,40,20, &pd->flag, 0.0, 0, 0, 0, "Effect only in direction of positive Z axis");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 200,140,100,20, &pd->f_power, 0, 10, 10, 0, "Falloff power (real gravitational falloff = 2)");
+ uiDefButBitS(block, TOG, PFIELD_USEMAX, B_FIELD_CHANGE, "Use", 160,120,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum distance for the field to work");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxDist: ", 200,120,100,20, &pd->maxdist, 0, 1000.0, 10, 0, "Maximum distance for the field to work");
+ uiDefButBitS(block, TOG, PFIELD_USEMIN, B_FIELD_CHANGE, "Use", 160,100,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum distance for the field's fall-off");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MinDist: ", 200,100,100,20, &pd->mindist, 0, 1000.0, 10, 0, "Minimum distance for the field's fall-off");
uiBlockEndAlign(block);
+
+ if(pd->falloff==PFIELD_FALL_TUBE){
+ uiDefBut(block, LABEL, 0, "Radial", 160,80,70,20, NULL, 0.0, 0, 0, 0, "");
+ uiBlockBeginAlign(block);
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 160,60,140,20, &pd->f_power_r, 0, 10, 10, 0, "Radial falloff power (real gravitational falloff = 2)");
+ uiDefButBitS(block, TOG, PFIELD_USEMAXR, B_FIELD_CHANGE, "Use", 160,40,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum radial distance for the field to work");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxDist: ", 200,40,100,20, &pd->maxrad, 0, 1000.0, 10, 0, "Maximum radial distance for the field to work");
+ uiDefButBitS(block, TOG, PFIELD_USEMINR, B_FIELD_CHANGE, "Use", 160,20,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum radial distance for the field's fall-off");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MinDist: ", 200,20,100,20, &pd->minrad, 0, 1000.0, 10, 0, "Minimum radial distance for the field's fall-off");
+ uiBlockEndAlign(block);
+ }
+ else if(pd->falloff==PFIELD_FALL_CONE){
+ uiDefBut(block, LABEL, 0, "Angular", 160,80,70,20, NULL, 0.0, 0, 0, 0, "");
+ uiBlockBeginAlign(block);
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Fall-off: ", 160,60,140,20, &pd->f_power_r, 0, 10, 10, 0, "Radial falloff power (real gravitational falloff = 2)");
+ uiDefButBitS(block, TOG, PFIELD_USEMAXR, B_FIELD_CHANGE, "Use", 160,40,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a maximum angle for the field to work");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MaxAngle: ", 200,40,100,20, &pd->maxrad, 0, 89.0, 10, 0, "Maximum angle for the field to work (in radians)");
+ uiDefButBitS(block, TOG, PFIELD_USEMINR, B_FIELD_CHANGE, "Use", 160,20,40,20, &pd->flag, 0.0, 0, 0, 0, "Use a minimum angle for the field's fall-off");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "MinAngle: ", 200,20,100,20, &pd->minrad, 0, 89.0, 10, 0, "Minimum angle for the field's fall-off (in radians)");
+ uiBlockEndAlign(block);
+ }
}
}
+
}
+
+ MEM_freeN(menustr);
}
}
@@ -4331,6 +4357,8 @@ static void object_panel_particle_extra(Object *ob)
uiDefButBitI(block, TOG, PART_CHILD_EFFECT, B_PART_RECALC, "Children", butx+(butw*3)/5,buty,(butw*2)/5,buth, &part->flag, 0, 0, 0, 0, "Apply effectors to children");
uiBlockEndAlign(block);
}
+ else if(part->phystype == PART_PHYS_NEWTON)
+ uiDefButBitI(block, TOG, PART_SELF_EFFECT, B_PART_RECALC, "Self Effect", butx,(buty-=buth),butw,buth, &part->flag, 0, 0, 0, 0, "Particle effectors effect themselves");
else
buty-=buth;
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c
index fb6a7636e16..5205be3e1b0 100644
--- a/source/blender/src/buttons_scene.c
+++ b/source/blender/src/buttons_scene.c
@@ -33,6 +33,7 @@
#include <string.h>
#include "MEM_guardedalloc.h"
+#include "BLO_sys_types.h" // for intptr_t support
#include "DNA_node_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -3261,7 +3262,7 @@ static void layer_copy_func(void *lay_v, void *lay_p)
static void delete_scene_layer_func(void *srl_v, void *act_i)
{
if(BLI_countlist(&G.scene->r.layers)>1) {
- long act= (long)act_i;
+ intptr_t act= (intptr_t)act_i;
BLI_remlink(&G.scene->r.layers, srl_v);
MEM_freeN(srl_v);
@@ -3322,7 +3323,7 @@ static char *scene_layer_menu(void)
static void draw_3d_layer_buttons(uiBlock *block, int type, unsigned int *poin, short xco, short yco, short dx, short dy, char *tip)
{
uiBut *bt;
- long a;
+ intptr_t a;
uiBlockBeginAlign(block);
for(a=0; a<5; a++) {
@@ -3381,7 +3382,7 @@ static void render_panel_layers(void)
uiDefButBitI(block, TOG, R_SINGLE_LAYER, B_NOP, "Single", 230,145,60,20, &G.scene->r.scemode, 0, 0, 0, 0, "Only render this layer");
bt=uiDefIconBut(block, BUT, B_NOP, ICON_X, 285, 145, 25, 20, 0, 0, 0, 0, 0, "Deletes current Render Layer");
- uiButSetFunc(bt, delete_scene_layer_func, srl, (void *)(long)G.scene->r.actlay);
+ uiButSetFunc(bt, delete_scene_layer_func, srl, (void *)(intptr_t)G.scene->r.actlay);
uiBlockEndAlign(block);
/* RenderLayer visible-layers */
diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c
index ee28049e2c0..22f7fdc32f0 100644
--- a/source/blender/src/drawgpencil.c
+++ b/source/blender/src/drawgpencil.c
@@ -37,6 +37,9 @@
#include "MEM_guardedalloc.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
#include "BMF_Api.h"
#include "BLI_arithb.h"
@@ -317,6 +320,7 @@ enum {
GP_DRAWDATA_NOSTATUS = (1<<0), /* don't draw status info */
GP_DRAWDATA_ONLY3D = (1<<1), /* only draw 3d-strokes */
GP_DRAWDATA_ONLYV2D = (1<<2), /* only draw 'canvas' strokes */
+ GP_DRAWDATA_ONLYI2D = (1<<3), /* only draw 'image' strokes */
};
/* ----- Tool Buffer Drawing ------ */
@@ -466,18 +470,22 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness,
}
else { /* tesselation code: currently only enabled with rt != 0 */
bGPDspoint *pt1, *pt2;
- float p0[2], p1[2], pm[2];
+ float pm[2];
int i;
+ short n;
glShadeModel(GL_FLAT);
- glBegin(GL_QUAD_STRIP);
+
+ glPointSize(3.0f); // temp
+
+ for (n= 0; n < 2; n++) { // temp
+ glBegin((n)?GL_POINTS:GL_QUADS);
for (i=0, pt1=points, pt2=points+1; i < (totpoints-1); i++, pt1++, pt2++) {
float s0[2], s1[2]; /* segment 'center' points */
float t0[2], t1[2]; /* tesselated coordinates */
float m1[2], m2[2]; /* gradient and normal */
- float pthick, dist; /* thickness at segment point, and length of segment */
- float sminorang; /* minor angle between strokes */
+ float pthick; /* thickness at segment point */
/* get x and y coordinates from points */
if (sflag & GP_STROKE_2DSPACE) {
@@ -494,94 +502,74 @@ static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness,
/* calculate gradient and normal - 'angle'=(ny/nx) */
m1[1]= s1[1] - s0[1];
m1[0]= s1[0] - s0[0];
- dist = Vec2Lenf(s0, s1);
- m2[1]= -(m1[0]) / dist;
- m2[0]= m1[1] / dist;
+ m2[1]= -m1[0];
+ m2[0]= m1[1];
+ Normalize2(m2);
- /* if the first segment, initialise the first segment using segment's normal */
- if (i == 0) {
- pthick= (pt1->pressure * thickness);
-
+ /* always use pressure from first point here */
+ pthick= (pt1->pressure * thickness);
+
+ /* if the first segment, start of segment is segment's normal */
+ if (i == 0) {
// TODO: also draw/do a round end-cap first
- p0[0]= s0[0] - (pthick * m2[0]);
- p0[1]= s0[1] - (pthick * m2[1]);
- p1[0]= s1[0] + (pthick * m2[0]);
- p1[1]= s1[1] + (pthick * m2[1]);
+ /* calculate points for start of segment */
+ t0[0]= s0[0] - (pthick * m2[0]);
+ t0[1]= s0[1] - (pthick * m2[1]);
+ t1[0]= s0[0] + (pthick * m2[0]);
+ t1[1]= s0[1] + (pthick * m2[1]);
- Vec2Copyf(pm, m1);
+ /* draw this line only once */
+ glVertex2fv(t0);
+ glVertex2fv(t1);
}
-
- /* if the minor angle between the current segment and the previous one is less than 90 degrees */
- if (i)
- sminorang= NormalizedVecAngle2_2D(pm, m1);
- else
- sminorang= 0.0f;
-
- if ((IS_EQ(sminorang, 0)==0) && (abs(sminorang) < M_PI_2) )
- {
- float closep[2];
+ /* if not the first segment, use bisector of angle between segments */
+ else {
+ float mb[2]; /* bisector normal */
- /* recalculate startpoint of segment, where the new start-line:
- * - starts a new gl-quad-strip
- * - uses the vert of old startpoint closer to our endpoint
- * - distance between new startpoints = distance between old startpoints
- * - new startpoints occur on same gradient as old segment does (has potential for some 'minor' overlap, but ok)
- */
+ /* calculate gradient of bisector (as average of normals) */
+ mb[0]= (pm[0] + m2[0]) / 2;
+ mb[1]= (pm[1] + m2[1]) / 2;
+ Normalize2(mb);
- /* find the closer vertex, and distance between startpoints */
- if (Vec2Lenf(p0, s1) > Vec2Lenf(p1, s1))
- Vec2Copyf(closep, p1);
- else
- Vec2Copyf(closep, p0);
-
- /* determine which side this closer vertex should be on */
- pthick= (pt1->pressure * thickness * 2);
- if ( ((closep[0] - s0[0]) > 0) || ((closep[1] - s0[1]) > 0) ) {
- /* assumes this is the 'second' point, (i.e. the 'plus' one), so the other is subtracting */
- p0[0]= closep[0] - (pthick * pm[0]);
- p0[1]= closep[1] - (pthick * pm[1]);
- p1[0]= closep[0];
- p1[1]= closep[1];
- }
- else if ( ((closep[0] - s0[0]) < 0) || ((closep[1] - s0[1]) < 0) ) {
- /* assumes this is the 'first' point, (i.e. the 'minus' one), so the other is adding */
- p0[0]= closep[0];
- p0[1]= closep[1];
- p1[0]= closep[0] + (pthick * pm[0]);
- p1[1]= closep[1] + (pthick * pm[1]);
- }
+ /* calculate points for start of segment */
+ // FIXME: do we need extra padding for acute angles?
+ t0[0]= s0[0] - (pthick * mb[0]);
+ t0[1]= s0[1] - (pthick * mb[1]);
+ t1[0]= s0[0] + (pthick * mb[0]);
+ t1[1]= s0[1] + (pthick * mb[1]);
- /* reset gl-states! */
- glEnd();
- glBegin(GL_QUAD_STRIP);
+ /* draw this line twice (once for end of current segment, and once for start of next) */
+ glVertex2fv(t1);
+ glVertex2fv(t0);
+ glVertex2fv(t0);
+ glVertex2fv(t1);
}
- /* do the end of this segment */
- pthick= (pt2->pressure * thickness);
- t0[0] = s1[0] - (pthick * m2[0]);
- t0[1] = s1[1] - (pthick * m2[1]);
- t1[0] = s1[0] + (pthick * m2[0]);
- t1[1] = s1[1] + (pthick * m2[1]);
-
- /* draw this segment */
- glVertex2f(p0[0], p0[1]);
- glVertex2f(p1[0], p1[1]);
- glVertex2f(t0[0], t0[1]);
- glVertex2f(t1[0], t1[1]);
-
- // TODO: draw end cap if last segment
+ /* if last segment, also draw end of segment (defined as segment's normal) */
if (i == totpoints-2) {
-
+ /* for once, we use second point's pressure (otherwise it won't be drawn) */
+ pthick= (pt2->pressure * thickness);
+
+ /* calculate points for end of segment */
+ t0[0]= s1[0] - (pthick * m2[0]);
+ t0[1]= s1[1] - (pthick * m2[1]);
+ t1[0]= s1[0] + (pthick * m2[0]);
+ t1[1]= s1[1] + (pthick * m2[1]);
+
+ /* draw this line only once */
+ glVertex2fv(t1);
+ glVertex2fv(t0);
+
+ // TODO: draw end cap as last step
}
- /* store current points for next segment to use */
- Vec2Copyf(p0, t0);
- Vec2Copyf(p1, t1);
- Vec2Copyf(pm, m1);
+ /* store stroke's 'natural' normal for next stroke to use */
+ Vec2Copyf(pm, m2);
}
glEnd();
+ }
}
/* draw debug points of curve on top? (original stroke points) */
@@ -626,6 +614,10 @@ static void gp_draw_strokes (bGPDframe *gpf, int winx, int winy, int dflag, shor
continue;
if (!(dflag & GP_DRAWDATA_ONLYV2D) && (gps->flag & GP_STROKE_2DSPACE))
continue;
+ if ((dflag & GP_DRAWDATA_ONLYI2D) && !(gps->flag & GP_STROKE_2DIMAGE))
+ continue;
+ if (!(dflag & GP_DRAWDATA_ONLYI2D) && (gps->flag & GP_STROKE_2DIMAGE))
+ continue;
if ((gps->points == 0) || (gps->totpoints < 1))
continue;
@@ -796,6 +788,22 @@ static void gp_draw_data (bGPdata *gpd, int winx, int winy, int dflag)
/* ----- Grease Pencil Sketches Drawing API ------ */
+/* draw grease-pencil sketches to specified 2d-view that uses ibuf corrections */
+void draw_gpencil_2dimage (ScrArea *sa, ImBuf *ibuf)
+{
+ bGPdata *gpd;
+ int dflag = 0;
+
+ /* check that we have grease-pencil stuff to draw */
+ if (ELEM(NULL, sa, ibuf)) return;
+ gpd= gpencil_data_getactive(sa);
+ if (gpd == NULL) return;
+
+ /* draw it! */
+ dflag = (GP_DRAWDATA_ONLYI2D|GP_DRAWDATA_NOSTATUS);
+ gp_draw_data(gpd, sa->winx, sa->winy, dflag);
+}
+
/* draw grease-pencil sketches to specified 2d-view assuming that matrices are already set correctly
* Note: this gets called twice - first time with onlyv2d=1 to draw 'canvas' strokes, second time with onlyv2d=0 for screen-aligned strokes
*/
diff --git a/source/blender/src/drawipo.c b/source/blender/src/drawipo.c
index 0e7476bbe82..71854570c8c 100644
--- a/source/blender/src/drawipo.c
+++ b/source/blender/src/drawipo.c
@@ -1212,16 +1212,9 @@ static void draw_ipovertices(int sel)
/*}*/
} else { /* normal non bit curves */
if(ei->flag & IPO_EDIT) {
- if(ei->icu->ipo==IPO_BEZ) {
- /* Draw the editmode hendels for a bezier curve */
- if( (bezt->f1 & SELECT) == sel)/* && G.v2d->cur.xmin < bezt->vec[0][0] < G.v2d->cur.xmax)*/
- bglVertex3fv(bezt->vec[0]);
-
- if( (bezt->f3 & SELECT) == sel)/* && G.v2d->cur.xmin < bezt->vec[2][0] < G.v2d->cur.xmax)*/
- bglVertex3fv(bezt->vec[2]);
-
- }
-
+ /* Only the vertex of the line, the
+ * handler are draw below.
+ */
if( (bezt->f2 & SELECT) == sel) /* && G.v2d->cur.xmin < bezt->vec[1][0] < G.v2d->cur.xmax)*/
bglVertex3fv(bezt->vec[1]);
@@ -1237,6 +1230,45 @@ static void draw_ipovertices(int sel)
bezt++;
}
bglEnd();
+
+ if (ei->flag & IPO_EDIT) {
+ /* Now draw the two vertex of the handler,
+ * need split it because we can't call glPointSize
+ * in the middle of a glBegin/glEnd also the
+ * bug comment before.
+ */
+ a= ei->icu->totvert;
+ bezt= ei->icu->bezt;
+
+ glPointSize(BIF_GetThemeValuef(TH_HANDLE_VERTEX_SIZE));
+
+ if(sel) BIF_ThemeColor(TH_HANDLE_VERTEX_SELECT);
+ else BIF_ThemeColor(TH_HANDLE_VERTEX);
+
+ bglBegin(GL_POINTS);
+
+ while(a--) {
+ if (ei->disptype!=IPO_DISPBITS) {
+ if(ei->flag & IPO_EDIT) {
+ if(ei->icu->ipo==IPO_BEZ) {
+ /* Draw the editmode hendels for a bezier curve */
+ if( (bezt->f1 & SELECT) == sel)/* && G.v2d->cur.xmin < bezt->vec[0][0] < G.v2d->cur.xmax)*/
+ bglVertex3fv(bezt->vec[0]);
+
+ if( (bezt->f3 & SELECT) == sel)/* && G.v2d->cur.xmin < bezt->vec[2][0] < G.v2d->cur.xmax)*/
+ bglVertex3fv(bezt->vec[2]);
+ }
+ }
+ }
+ bezt++;
+ }
+ bglEnd();
+
+ /* The color are always reset (see the while)
+ * but the point size not so we reset now.
+ */
+ glPointSize(BIF_GetThemeValuef(TH_VERTEX_SIZE));
+ }
}
}
diff --git a/source/blender/src/drawmesh.c b/source/blender/src/drawmesh.c
index dd512595ebc..09f74c01c71 100644
--- a/source/blender/src/drawmesh.c
+++ b/source/blender/src/drawmesh.c
@@ -664,7 +664,7 @@ static int draw_tfaces3D__setHiddenOpts(void *userData, int index)
{
struct { Mesh *me; EdgeHash *eh; } *data = userData;
MEdge *med = &data->me->medge[index];
- unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
+ uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
if((G.f & G_DRAWSEAMS) && (med->flag&ME_SEAM)) {
return 0;
@@ -682,7 +682,7 @@ static int draw_tfaces3D__setSeamOpts(void *userData, int index)
{
struct { Mesh *me; EdgeHash *eh; } *data = userData;
MEdge *med = &data->me->medge[index];
- unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
+ uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
if (med->flag&ME_SEAM) {
if (G.f&G_HIDDENEDGES) {
@@ -698,7 +698,7 @@ static int draw_tfaces3D__setSelectOpts(void *userData, int index)
{
struct { Mesh *me; EdgeHash *eh; } *data = userData;
MEdge *med = &data->me->medge[index];
- unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
+ uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
return flags & eEdge_Select;
}
@@ -706,7 +706,7 @@ static int draw_tfaces3D__setActiveOpts(void *userData, int index)
{
struct { Mesh *me; EdgeHash *eh; } *data = userData;
MEdge *med = &data->me->medge[index];
- unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
+ uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2);
if (flags & eEdge_Select) {
return 1;
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 1a469e8b366..213f49528f0 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -5315,7 +5315,7 @@ void draw_object_ext(Base *base)
static void bbs_mesh_verts__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
{
- int offset = (long) userData;
+ int offset = (intptr_t) userData;
EditVert *eve = EM_get_vert_for_index(index);
if (eve->h==0) {
@@ -5327,7 +5327,7 @@ static int bbs_mesh_verts(DerivedMesh *dm, int offset)
{
glPointSize( BIF_GetThemeValuef(TH_VERTEX_SIZE) );
bglBegin(GL_POINTS);
- dm->foreachMappedVert(dm, bbs_mesh_verts__mapFunc, (void*)(long) offset);
+ dm->foreachMappedVert(dm, bbs_mesh_verts__mapFunc, (void*)(intptr_t) offset);
bglEnd();
glPointSize(1.0);
@@ -5336,7 +5336,7 @@ static int bbs_mesh_verts(DerivedMesh *dm, int offset)
static int bbs_mesh_wire__setDrawOptions(void *userData, int index)
{
- int offset = (long) userData;
+ int offset = (intptr_t) userData;
EditEdge *eed = EM_get_edge_for_index(index);
if (eed->h==0) {
@@ -5348,7 +5348,7 @@ static int bbs_mesh_wire__setDrawOptions(void *userData, int index)
}
static int bbs_mesh_wire(DerivedMesh *dm, int offset)
{
- dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*)(long) offset);
+ dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*)(intptr_t) offset);
return offset + G.totedge;
}
@@ -5382,7 +5382,7 @@ static int bbs_mesh_solid_EM(DerivedMesh *dm, int facecol)
cpack(0);
if (facecol) {
- dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0);
+ dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0);
if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
@@ -5415,7 +5415,7 @@ static int bbs_mesh_wire__setDrawOpts(void *userData, int index)
{
struct { Mesh *me; EdgeHash *eh; int offset; } *data = userData;
MEdge *med = data->me->medge + index;
- unsigned long flags = (long)BLI_edgehash_lookup(data->eh, med->v1, med->v2);
+ uintptr_t flags = (intptr_t)BLI_edgehash_lookup(data->eh, med->v1, med->v2);
if (flags & 1) {
set_framebuffer_index_color(data->offset+index);
diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c
index b9ca228d737..221f9a1c729 100644
--- a/source/blender/src/editipo.c
+++ b/source/blender/src/editipo.c
@@ -464,24 +464,7 @@ static void make_part_editipo(SpaceIpo *si)
name = getname_part_ei(part_ar[a]);
strcpy(ei->name, name);
ei->adrcode= part_ar[a];
-
- //if(ei->adrcode & MA_MAP1) {
- // ei->adrcode-= MA_MAP1;
- // ei->adrcode |= texchannel_to_adrcode(si->channel);
- //}
- //else {
- // if(ei->adrcode==MA_MODE) ei->disptype= IPO_DISPBITS;
- //}
-
ei->col= ipo_rainbow(a, PART_TOTIPO);
-
- //len= strlen(ei->name);
- //if(len) {
- // if( ei->name[ len-1 ]=='R') ei->col= 0x5050FF;
- // else if( ei->name[ len-1 ]=='G') ei->col= 0x50FF50;
- // else if( ei->name[ len-1 ]=='B') ei->col= 0xFF7050;
- //}
-
ei->icu= find_ipocurve(si->ipo, ei->adrcode);
if(ei->icu) {
ei->flag= ei->icu->flag;
@@ -6040,4 +6023,4 @@ void move_to_frame(void)
}
}
BIF_undo_push("Set frame to selected Ipo vertex");
-} \ No newline at end of file
+}
diff --git a/source/blender/src/editipo_lib.c b/source/blender/src/editipo_lib.c
index 042a59c3446..2ec02eb6691 100644
--- a/source/blender/src/editipo_lib.c
+++ b/source/blender/src/editipo_lib.c
@@ -103,7 +103,8 @@ char *ic_name_empty[1] ={ "" };
char *fluidsim_ic_names[FLUIDSIM_TOTNAM] = { "Fac-Visc", "Fac-Time", "GravX","GravY","GravZ", "VelX","VelY","VelZ", "Active", "AttrForceStr", "AttrForceRad", "VelForceStr", "VelForceRad" };
char *part_ic_names[PART_TOTNAM] = { "E_Freq", "E_Life", "E_Speed", "E_Angular", "E_Size",
"Angular", "Size", "Drag", "Brown", "Damp", "Length", "Clump",
-"GravX", "GravY", "GravZ", "KinkAmp", "KinkFreq", "KinkShape", "BBTilt"};
+"GravX", "GravY", "GravZ", "KinkAmp", "KinkFreq", "KinkShape", "BBTilt",
+"FStreng", "FFall", "FMaxD", "F2Streng", "F2Fall", "F2MaxD"};
/* gets the appropriate icon for the given blocktype */
int geticon_ipo_blocktype(short blocktype)
diff --git a/source/blender/src/editkey.c b/source/blender/src/editkey.c
index 1f24fb07667..ce798064632 100644
--- a/source/blender/src/editkey.c
+++ b/source/blender/src/editkey.c
@@ -84,6 +84,8 @@
#include "blendef.h"
#include "mydevice.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
extern ListBase editNurb; /* in editcurve.c */
/* temporary storage for slider values */
@@ -162,7 +164,7 @@ static void rvk_slider_func(void *voidob, void *voidkeynum)
IpoCurve *icu=NULL;
BezTriple *bezt=NULL;
float cfra, rvkval;
- int keynum = (long) voidkeynum;
+ int keynum = (intptr_t) voidkeynum;
cfra = frame_to_float(CFRA);
@@ -275,7 +277,7 @@ void make_rvk_slider(uiBlock *block, Object *ob, int keynum,
x, y , w, h,
meshslidervals+keynum, min, max, 10, 2, tip);
- uiButSetFunc(but, rvk_slider_func, ob, (void *)(long)keynum);
+ uiButSetFunc(but, rvk_slider_func, ob, (void *)(intptr_t)keynum);
// no hilite, the winmatrix is not correct later on...
uiButSetFlag(but, UI_NO_HILITE);
diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c
index 6dfbd67720b..c162c904776 100644
--- a/source/blender/src/editmesh_mods.c
+++ b/source/blender/src/editmesh_mods.c
@@ -109,6 +109,7 @@ editmesh_mods.c, UI level access, no geometry changes
#include "editmesh.h"
+#include "BLO_sys_types.h" // for intptr_t support
/* ****************************** MIRROR **************** */
@@ -2937,7 +2938,7 @@ void select_sharp_edges(void)
EditFace *efa;
EditFace **efa1;
EditFace **efa2;
- long edgecount = 0, i;
+ intptr_t edgecount = 0, i;
static short sharpness = 135;
float fsharpness;
@@ -3041,7 +3042,7 @@ void select_linked_flat_faces(void)
EditFace *efa;
EditFace **efa1;
EditFace **efa2;
- long edgecount = 0, i, faceselcount=0, faceselcountold=0;
+ intptr_t edgecount = 0, i, faceselcount=0, faceselcountold=0;
static short sharpness = 135;
float fsharpness;
diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c
index f9bb14a08c6..3615a4ad851 100644
--- a/source/blender/src/editmesh_tools.c
+++ b/source/blender/src/editmesh_tools.c
@@ -110,6 +110,8 @@ editmesh_tool.c: UI called tools for editmesh, geometry changes here, otherwise
#include "PIL_time.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* local prototypes ---------------*/
void bevel_menu(void);
static void free_tagged_edges_faces(EditEdge *eed, EditFace *efa);
@@ -132,7 +134,7 @@ static int vergxco(const void *v1, const void *v2)
}
struct facesort {
- unsigned long x;
+ uintptr_t x;
struct EditFace *efa;
};
@@ -433,8 +435,8 @@ int removedoublesflag(short flag, short automerge, float limit) /* return amoun
efa= em->faces.first;
while(efa) {
if(efa->f1 & 1) {
- if(efa->v4) vsb->x= (unsigned long) MIN4( (unsigned long)efa->v1, (unsigned long)efa->v2, (unsigned long)efa->v3, (unsigned long)efa->v4);
- else vsb->x= (unsigned long) MIN3( (unsigned long)efa->v1, (unsigned long)efa->v2, (unsigned long)efa->v3);
+ if(efa->v4) vsb->x= (uintptr_t) MIN4( (uintptr_t)efa->v1, (uintptr_t)efa->v2, (uintptr_t)efa->v3, (uintptr_t)efa->v4);
+ else vsb->x= (uintptr_t) MIN3( (uintptr_t)efa->v1, (uintptr_t)efa->v2, (uintptr_t)efa->v3);
vsb->efa= efa;
vsb++;
diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c
index eef21323a44..0132c46526c 100644
--- a/source/blender/src/gpencil.c
+++ b/source/blender/src/gpencil.c
@@ -39,6 +39,9 @@
#include "BMF_Api.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
#include "BLI_arithb.h"
#include "BLI_blenlib.h"
@@ -312,11 +315,17 @@ bGPdata *gpencil_data_getactive (ScrArea *sa)
{
SpaceSeq *sseq= sa->spacedata.first;
- /* only applicable for "Image Preview" mode */
+ /* only applicable for image modes */
if (sseq->mainb)
return sseq->gpd;
}
break;
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima= sa->spacedata.first;
+ return sima->gpd;
+ }
+ break;
}
/* nothing found */
@@ -379,6 +388,17 @@ short gpencil_data_setactive (ScrArea *sa, bGPdata *gpd)
}
}
break;
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima= sa->spacedata.first;
+
+ if (sima->gpd)
+ free_gpencil_data(sima->gpd);
+ sima->gpd= gpd;
+
+ return 1;
+ }
+ break;
}
/* failed to add */
@@ -589,7 +609,7 @@ void gpencil_layer_delactive (bGPdata *gpd)
}
/* ************************************************** */
-/* GREASE-PENCIL EDITING MODE - Tools */
+/* GREASE-PENCIL EDITING - Tools */
/* --------- Data Deletion ---------- */
@@ -679,6 +699,7 @@ void gpencil_delete_menu (void)
typedef struct tGPsdata {
ScrArea *sa; /* area where painting originated */
View2D *v2d; /* needed for GP_STROKE_2DSPACE */
+ ImBuf *ibuf; /* needed for GP_STROKE_2DIMAGE */
bGPdata *gpd; /* gp-datablock layer comes from */
bGPDlayer *gpl; /* layer we're working on */
@@ -800,6 +821,16 @@ static void gp_session_initpaint (tGPsdata *p)
}
}
break;
+ case SPACE_SIMA:
+ {
+ SpaceImage *sima= curarea->spacedata.first;
+
+ /* set the current area */
+ p->sa= curarea;
+ p->v2d= &sima->v2d;
+ p->ibuf= BKE_image_get_ibuf(sima->image, &sima->iuser);
+ }
+ break;
/* unsupported views */
default:
{
@@ -869,6 +900,7 @@ static short gp_stroke_filtermval (tGPsdata *p, short mval[2], short pmval[2])
return 1;
/* check if the distance since the last point is significant enough */
+ // future optimisation: sqrt here may be too slow?
else if (sqrt(dx*dx + dy*dy) > MIN_EUCLIDEAN_PX)
return 1;
@@ -884,7 +916,7 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[])
/* in 3d-space - pt->x/y/z are 3 side-by-side floats */
if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) {
- short mx=mval[0], my=mval[1];
+ const short mx=mval[0], my=mval[1];
float *fp= give_cursor();
float dvec[3];
@@ -904,6 +936,26 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[])
out[1]= y;
}
+ /* 2d - on image 'canvas' (asume that p->v2d is set) */
+ else if ( (gpd->sbuffer_sflag & GP_STROKE_2DIMAGE) &&
+ (p->v2d) && (p->ibuf) )
+ {
+ ImBuf *ibuf= p->ibuf;
+ float x, y;
+
+ /* convert to 'canvas' coordinates, then adjust for view */
+ areamouseco_to_ipoco(p->v2d, mval, &x, &y);
+
+ if (ibuf) {
+ out[0]= x*ibuf->x;
+ out[1]= y*ibuf->y;
+ }
+ else {
+ out[0]= x;
+ out[1]= y;
+ }
+ }
+
/* 2d - relative to screen (viewport area) */
else {
out[0] = (float)(mval[0]) / (float)(p->sa->winx) * 1000;
@@ -927,8 +979,6 @@ static short gp_stroke_addpoint (tGPsdata *p, short mval[2], float pressure)
/* store settings */
pt->x= mval[0];
pt->y= mval[1];
- pt->xf= (float)mval[0];
- pt->yf= (float)mval[0];
pt->pressure= pressure;
/* increment counters */
diff --git a/source/blender/src/header_info.c b/source/blender/src/header_info.c
index a9280d9dd19..8b8fd9ef266 100644
--- a/source/blender/src/header_info.c
+++ b/source/blender/src/header_info.c
@@ -39,6 +39,8 @@
#include <config.h>
#endif
+#include "BLO_sys_types.h" // for intptr_t support
+
#include "DNA_group_types.h"
#include "DNA_ID.h"
#include "DNA_image_types.h"
@@ -2106,7 +2108,7 @@ static void info_text(int x, int y)
{
Object *ob= OBACT;
extern float hashvectf[];
- extern unsigned long mem_in_use, mmap_in_use;
+ extern uintptr_t mem_in_use, mmap_in_use;
unsigned int swatch_color;
float fac1, fac2, fac3;
char infostr[300], memstr[64];
diff --git a/source/blender/src/header_script.c b/source/blender/src/header_script.c
index 3c96e1692bf..53c4b9b5953 100644
--- a/source/blender/src/header_script.c
+++ b/source/blender/src/header_script.c
@@ -63,12 +63,14 @@
#include "blendef.h"
#include "mydevice.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* ********************** SCRIPT ****************************** */
/* action executed after clicking in Scripts menu */
static void do_scripts_submenus(void *int_arg, int event)
{
- int menutype = (long)int_arg;
+ int menutype = (intptr_t)int_arg;
BPY_menu_do_python (menutype, event);
@@ -80,7 +82,7 @@ static uiBlock *script_scripts_submenus(void *int_menutype)
uiBlock *block;
short yco = 20, menuwidth = 120;
BPyMenu *pym;
- int i = 0, menutype = (long)int_menutype;
+ int i = 0, menutype = (intptr_t)int_menutype;
if ((menutype < 0) || (menutype > PYMENU_SCRIPTS_MENU_TOTAL))
return NULL;
@@ -132,7 +134,7 @@ static uiBlock *script_scriptsmenu(void *arg_unused)
uiBlockSetButmFunc(block, do_script_scriptsmenu, NULL);
for (i = 0; i < PYMENU_SCRIPTS_MENU_TOTAL; i++) {
- uiDefIconTextBlockBut(block, script_scripts_submenus, (void *)(long)i, ICON_RIGHTARROW_THIN, BPyMenu_group_itoa(i), 0, yco-=20, menuwidth, 19, "");
+ uiDefIconTextBlockBut(block, script_scripts_submenus, (void *)(intptr_t)i, ICON_RIGHTARROW_THIN, BPyMenu_group_itoa(i), 0, yco-=20, menuwidth, 19, "");
}
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c
index 948023bebfb..fcf4caf4522 100644
--- a/source/blender/src/header_view3d.c
+++ b/source/blender/src/header_view3d.c
@@ -5139,7 +5139,7 @@ static char *snapmode_pup(void)
static char string[512];
char *str = string;
- str += sprintf(str, "%s", "Snap Mode: %t");
+ str += sprintf(str, "%s", "Snap Element: %t");
str += sprintf(str, "%s", "|Vertex%x0");
str += sprintf(str, "%s", "|Edge%x1");
str += sprintf(str, "%s", "|Face%x2");
@@ -5777,7 +5777,7 @@ void view3d_buttons(void)
xco+= XIC;
uiDefIconTextButS(block, ICONTEXTROW,B_REDR, ICON_VERTEXSEL, snapmode_pup(), xco,0,XIC+10,YIC, &(G.scene->snap_mode), 0.0, 0.0, 0, 0, "Snapping mode");
xco+= XIC;
- uiDefButS(block, MENU, B_NOP, "Mode%t|Closest%x0|Center%x1|Median%x2|Active%x3",xco,0,70,YIC, &G.scene->snap_target, 0, 0, 0, 0, "Snap Target Mode");
+ uiDefButS(block, MENU, B_NOP, "Snap Mode%t|Closest%x0|Center%x1|Median%x2|Active%x3",xco,0,70,YIC, &G.scene->snap_target, 0, 0, 0, 0, "Snap Target Mode");
xco+= 70;
} else {
uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEAR,xco,0,XIC,YIC, &G.scene->snap_flag, 0, 0, 0, 0, "Snap while Ctrl is held during transform (Shift Tab)");
diff --git a/source/blender/src/interface.c b/source/blender/src/interface.c
index e7b5b176979..a2b2af05083 100644
--- a/source/blender/src/interface.c
+++ b/source/blender/src/interface.c
@@ -105,6 +105,8 @@
#include "blendef.h"
#include "winlay.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#define INSIDE_BLOCK 1
#define INSIDE_PANEL_HEADER 2
#define INSIDE_PANEL_SCALE 3
@@ -6039,7 +6041,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname)
/* autocomplete callback for ID buttons */
static void autocomplete_id(char *str, void *arg_v)
{
- int blocktype= (long)arg_v;
+ int blocktype= (intptr_t)arg_v;
ListBase *listb= wich_libbase(G.main, blocktype);
if(listb==NULL) return;
@@ -6370,7 +6372,7 @@ uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int
ui_check_but(but);
if(blocktype)
- uiButSetCompleteFunc(but, autocomplete_id, (void *)(long)blocktype);
+ uiButSetCompleteFunc(but, autocomplete_id, (void *)(intptr_t)blocktype);
return but;
}
diff --git a/source/blender/src/meshlaplacian.c b/source/blender/src/meshlaplacian.c
index 60f569ecf0e..2de6367c9ad 100644
--- a/source/blender/src/meshlaplacian.c
+++ b/source/blender/src/meshlaplacian.c
@@ -63,6 +63,8 @@
#include "ONL_opennl.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/************************** Laplacian System *****************************/
struct LaplacianSystem {
@@ -126,14 +128,14 @@ static void laplacian_increase_edge_count(EdgeHash *edgehash, int v1, int v2)
void **p = BLI_edgehash_lookup_p(edgehash, v1, v2);
if(p)
- *p = (void*)((long)*p + (long)1);
+ *p = (void*)((intptr_t)*p + (intptr_t)1);
else
- BLI_edgehash_insert(edgehash, v1, v2, (void*)(long)1);
+ BLI_edgehash_insert(edgehash, v1, v2, (void*)(intptr_t)1);
}
static int laplacian_edge_count(EdgeHash *edgehash, int v1, int v2)
{
- return (int)(long)BLI_edgehash_lookup(edgehash, v1, v2);
+ return (int)(intptr_t)BLI_edgehash_lookup(edgehash, v1, v2);
}
static float cotan_weight(float *v1, float *v2, float *v3)
diff --git a/source/blender/src/meshtools.c b/source/blender/src/meshtools.c
index 0f30aef04df..99833625baa 100644
--- a/source/blender/src/meshtools.c
+++ b/source/blender/src/meshtools.c
@@ -107,6 +107,8 @@ void sort_faces(void);
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* from rendercode.c */
#define VECMUL(dest, f) dest[0]*= f; dest[1]*= f; dest[2]*= f
@@ -592,7 +594,7 @@ void sort_faces(void)
typedef struct MocNode {
struct MocNode *next;
- long index[MOC_NODE_RES];
+ intptr_t index[MOC_NODE_RES];
} MocNode;
static int mesh_octree_get_base_offs(float *co, float *offs, float *div)
@@ -610,7 +612,7 @@ static int mesh_octree_get_base_offs(float *co, float *offs, float *div)
return (vx*MOC_RES*MOC_RES) + vy*MOC_RES + vz;
}
-static void mesh_octree_add_node(MocNode **bt, long index)
+static void mesh_octree_add_node(MocNode **bt, intptr_t index)
{
if(*bt==NULL) {
*bt= MEM_callocN(sizeof(MocNode), "MocNode");
@@ -642,7 +644,7 @@ static void mesh_octree_free_node(MocNode **bt)
/* temporal define, just to make nicer code below */
#define MOC_ADDNODE(vx, vy, vz) mesh_octree_add_node(basetable + ((vx)*MOC_RES*MOC_RES) + (vy)*MOC_RES + (vz), index)
-static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, float *div, long index)
+static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, float *div, intptr_t index)
{
float fx, fy, fz;
int vx, vy, vz;
@@ -690,7 +692,7 @@ static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, f
}
-static long mesh_octree_find_index(MocNode **bt, float (*orco)[3], MVert *mvert, float *co)
+static intptr_t mesh_octree_find_index(MocNode **bt, float (*orco)[3], MVert *mvert, float *co)
{
float *vec;
int a;
@@ -734,7 +736,7 @@ static struct {
/* mode is 's' start, or 'e' end, or 'u' use */
/* if end, ob can be NULL */
-long mesh_octree_table(Object *ob, float *co, char mode)
+intptr_t mesh_octree_table(Object *ob, float *co, char mode)
{
MocNode **bt;
@@ -805,7 +807,7 @@ long mesh_octree_table(Object *ob, float *co, char mode)
EditVert *eve;
for(eve= G.editMesh->verts.first; eve; eve= eve->next) {
- mesh_octree_add_nodes(MeshOctree.table, eve->co, MeshOctree.offs, MeshOctree.div, (long)(eve));
+ mesh_octree_add_nodes(MeshOctree.table, eve->co, MeshOctree.offs, MeshOctree.div, (intptr_t)(eve));
}
}
else {
@@ -863,7 +865,7 @@ int mesh_get_x_mirror_vert(Object *ob, int index)
EditVert *editmesh_get_x_mirror_vert(Object *ob, float *co)
{
float vec[3];
- long poinval;
+ intptr_t poinval;
/* ignore nan verts */
if (isnan(co[0]) || !finite(co[0]) ||
diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c
index 096629b01ec..7aa27f99d77 100644
--- a/source/blender/src/parametrizer.c
+++ b/source/blender/src/parametrizer.c
@@ -22,6 +22,8 @@
#include <stdio.h>
#include <string.h>
+#include "BLO_sys_types.h" // for intptr_t support
+
#if defined(_WIN32)
#define M_PI 3.14159265358979323846
#endif
@@ -38,7 +40,7 @@ static int PHashSizes[] = {
4194319, 8388617, 16777259, 33554467, 67108879, 134217757, 268435459
};
-#define PHASH_hash(ph, item) (((unsigned long) (item))%((unsigned int) (ph)->cursize))
+#define PHASH_hash(ph, item) (((uintptr_t) (item))%((unsigned int) (ph)->cursize))
#define PHASH_edge(v1, v2) ((v1)^(v2))
static PHash *phash_new(PHashLink **list, int sizehint)
diff --git a/source/blender/src/parametrizer.h b/source/blender/src/parametrizer.h
index 80fab110d5f..c468b8d62c5 100644
--- a/source/blender/src/parametrizer.h
+++ b/source/blender/src/parametrizer.h
@@ -5,9 +5,11 @@
#ifdef __cplusplus
extern "C" {
#endif
+
+#include "BLO_sys_types.h" // for intptr_t support
typedef void ParamHandle; /* handle to a set of charts */
-typedef long ParamKey; /* (hash) key for identifying verts and faces */
+typedef intptr_t ParamKey; /* (hash) key for identifying verts and faces */
typedef enum ParamBool {
PARAM_TRUE = 1,
PARAM_FALSE = 0
diff --git a/source/blender/src/parametrizer_intern.h b/source/blender/src/parametrizer_intern.h
index f7a32816b33..bc38cb4bc0f 100644
--- a/source/blender/src/parametrizer_intern.h
+++ b/source/blender/src/parametrizer_intern.h
@@ -30,7 +30,7 @@ typedef enum PBool {
/* Special Purpose Hash */
-typedef long PHashKey;
+typedef intptr_t PHashKey;
typedef struct PHashLink {
struct PHashLink *next;
diff --git a/source/blender/src/renderwin.c b/source/blender/src/renderwin.c
index 6c150f3d30f..88f5f6efe15 100644
--- a/source/blender/src/renderwin.c
+++ b/source/blender/src/renderwin.c
@@ -50,6 +50,8 @@
#endif
+#include "BLO_sys_types.h" // for intptr_t support
+
#include <limits.h>
#include "BLI_blenlib.h"
@@ -901,7 +903,7 @@ static void renderwin_progress_display_cb(RenderResult *rr, volatile rcti *rect)
void make_renderinfo_string(RenderStats *rs, char *str)
{
extern char info_time_str[32]; // header_info.c
- extern unsigned long mem_in_use, mmap_in_use;
+ extern uintptr_t mem_in_use, mmap_in_use;
float megs_used_memory, mmap_used_memory;
char *spos= str;
diff --git a/source/blender/src/resources.c b/source/blender/src/resources.c
index f47f14a605c..acd14aae7a5 100644
--- a/source/blender/src/resources.c
+++ b/source/blender/src/resources.c
@@ -313,7 +313,15 @@ char *BIF_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
cp= ts->transition; break;
case TH_SEQ_META:
cp= ts->meta; break;
-
+ case TH_HANDLE_VERTEX:
+ cp= ts->handle_vertex;
+ break;
+ case TH_HANDLE_VERTEX_SELECT:
+ cp= ts->handle_vertex_select;
+ break;
+ case TH_HANDLE_VERTEX_SIZE:
+ cp= &ts->handle_vertex_size;
+ break;
}
}
@@ -493,6 +501,10 @@ void BIF_InitTheme(void)
SETCOL(btheme->tipo.hilite, 0x60, 0xc0, 0x40, 255);
btheme->tipo.vertex_size= 3;
+ SETCOL(btheme->tipo.handle_vertex, 0xff, 0x70, 0xff, 255);
+ SETCOL(btheme->tipo.handle_vertex_select, 0xff, 0xff, 0x70, 255);
+ btheme->tipo.handle_vertex_size= 3;
+
/* space file */
/* to have something initialized */
btheme->tfile= btheme->tv3d;
@@ -684,7 +696,10 @@ char *BIF_ThemeColorsPup(int spacetype)
str += sprintf(str, "Vertex %%x%d|", TH_VERTEX);
str += sprintf(str, "Vertex Selected %%x%d|", TH_VERTEX_SELECT);
str += sprintf(str, "Vertex Size %%x%d|", TH_VERTEX_SIZE);
- str += sprintf(str, "Current Frame %%x%d", TH_CFRAME);
+ str += sprintf(str, "Current Frame %%x%d|", TH_CFRAME);
+ str += sprintf(str, "Handle Vertex %%x%d|", TH_HANDLE_VERTEX);
+ str += sprintf(str, "Handle Vertex Selected %%x%d|", TH_HANDLE_VERTEX_SELECT);
+ str += sprintf(str, "Handle Vertex Size %%x%d", TH_HANDLE_VERTEX_SIZE);
break;
case SPACE_FILE:
str += sprintf(str, "Selected file %%x%d", TH_HILITE);
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 8d86336e12e..8787cf9efc4 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -182,6 +182,8 @@
#include "SYS_System.h" /* for the user def menu ... should move elsewhere. */
+#include "BLO_sys_types.h" // for intptr_t support
+
/* maybe we need this defined somewhere else */
extern void StartKetsjiShell(ScrArea *area, char* startscenename, struct Main* maggie, struct SpaceIpo* sipo,int always_use_expand_framing);
extern void StartKetsjiShellSimulation(ScrArea *area, char* startscenename, struct Main* maggie, struct SpaceIpo* sipo,int always_use_expand_framing);/*rcruiz*/
@@ -460,7 +462,7 @@ static LinkNode *save_and_reset_all_scene_cfra(void)
Scene *sc;
for (sc= G.main->scene.first; sc; sc= sc->id.next) {
- BLI_linklist_prepend(&storelist, (void*) (long) sc->r.cfra);
+ BLI_linklist_prepend(&storelist, (void*) (intptr_t) sc->r.cfra);
/* why is this reset to 1 ?*/
/* sc->r.cfra= 1;*/
@@ -478,7 +480,7 @@ static void restore_all_scene_cfra(LinkNode *storelist) {
Scene *sc;
for (sc= G.main->scene.first; sc; sc= sc->id.next) {
- int stored_cfra= (long) sc_store->link;
+ int stored_cfra= (intptr_t) sc_store->link;
sc->r.cfra= stored_cfra;
set_scene_bg(sc);
@@ -3490,6 +3492,9 @@ static void info_user_themebuts(uiBlock *block, short y1, short y2, short y3, sh
uiButSetFunc(but, set_userdef_iconfile_cb, &iconfileindex, NULL);
}
+ else if(th_curcol==TH_HANDLE_VERTEX_SIZE) {
+ uiDefButC(block, NUMSLI, B_UPDATE_THEME,"Handle size ", 465,y3,200,20, col, 1.0, 10.0, 0, 0, "");
+ }
else {
uiBlockBeginAlign(block);
if ELEM9(th_curcol, TH_PANEL, TH_LAMP, TH_FACE, TH_FACE_SELECT, TH_EDITMESH_ACTIVE, TH_MENU_BACK, TH_MENU_HILITE, TH_MENU_ITEM, TH_NODE) {
diff --git a/source/blender/src/splash.jpg.c b/source/blender/src/splash.jpg.c
index 2431ff5de22..ecd63166792 100644
--- a/source/blender/src/splash.jpg.c
+++ b/source/blender/src/splash.jpg.c
@@ -1,2990 +1,1590 @@
/* DataToC output of file <splash_jpg> */
-int datatoc_splash_jpg_size= 95515;
+int datatoc_splash_jpg_size= 50665;
char datatoc_splash_jpg[]= {
-255,216,255,224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 0, 0,100, 0,100, 0, 0,255,236, 0, 17, 68,117, 99,
-107,121, 0, 1, 0, 4, 0, 0, 0, 95, 0, 0,255,238, 0, 14, 65,100,111, 98,101, 0,100,192, 0, 0, 0, 1,255,219, 0,132,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 1, 1, 1, 1, 2, 1, 2, 3, 2, 2, 3, 4, 4, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,255,192, 0, 17, 8, 1, 26, 1,245, 3, 1, 17, 0, 2, 17, 1, 3, 17, 1,255,196, 0,230, 0, 0, 0, 6, 3, 1, 1,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 0, 2, 9, 1, 10, 11, 1, 0, 0, 7, 1, 1, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 0, 1, 3, 3, 3, 1, 4, 4, 9, 8, 5, 8, 5,
- 8, 5, 13, 1, 2, 3, 4, 17, 5, 6, 0, 18, 7, 33, 49, 65, 19, 8, 81, 97, 34, 20,113,129,145, 50, 35, 51, 52, 21, 9,240,
-161,177,193, 66, 82, 98, 53,225,149,213, 22, 54,209,241,114, 36,212, 69, 85, 24,194, 67, 83, 99,148,130,162,179, 37,117,181, 23,
- 55,115,195, 68,133, 10,146,178,210,131,147,211,116,196,165,197, 38, 70, 71, 17, 0, 1, 3, 2, 4, 2, 6, 5, 8, 8, 5, 4,
- 2, 1, 5, 1, 1, 17, 2, 3, 0, 4, 33, 49, 18, 5, 65, 6, 81, 97,113, 34, 19, 7,129,145,161, 50, 20,240,177,193,209, 66,
-146, 83,211,225,114, 35, 51, 67, 21, 23, 8,241, 82, 98,130,210,178, 36, 52, 22,194,115,162,226, 99, 68,116, 9, 53,255,218, 0,
- 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,251,244,208,161, 89,161, 66,136, 93,149,114, 77,174,228,171, 50, 34,185,119, 76, 9,
-106,181, 55, 57, 74, 76, 37,220, 67,106,240, 3,197, 21, 88, 65,114,155,138,122,211,179, 81,175, 76,194, 25, 62, 31, 79,139,164,
-232,212,186,117, 39,117, 83, 20, 84, 84,225, 82,172, 68, 38,104,254, 32,184, 69,168,107,210,154,180,175,123, 74,224,168,168,188,
-107,147,184, 15,158, 62, 82,226,238, 69,187,224, 62,105,236,206, 52,193,184, 58,148,222, 45,214, 86,160,203,199,208,226,190,140,
-161,168,200, 67,115,225,148,252,215, 81,185,116,235, 85,158,131,197, 92,181,253,196,239, 60,147,187, 75,181,115,188, 37,163, 81,
- 73, 26,192, 11, 1,201, 3, 64, 18, 68,120, 57,170,239,214,225,237,206,102,254,220,118, 94,120,218, 34,221,185, 26, 96,227,164,
- 44,110,121, 34, 66, 51, 82,226, 76,114,142, 45,114, 55,169,185,158,172, 99,217, 21,139, 44,179,192,200, 49,171,180, 27,221,150,
-230,194, 36,193,185, 91,100,166, 84, 73, 44,172, 84, 20,173, 4,142,157,132,118,131,208,245,215,180, 54,221,202,223,120,129,151,
- 54,178, 54, 72,158, 21,174,105, 5,164, 30, 32,138,241, 62,229,182, 92,108,211,190,214,238, 55, 71, 43, 10, 57,174, 4, 56, 17,
-192,131, 75, 58,157, 80,107, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40,
- 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,
-179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,
-154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,
-208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,
-133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,174,110,249,156,129,231,110, 79, 36, 72, 95, 16,221,151, 15,143,125,198, 10,
-108,173, 88, 38, 67,132,250, 94,240,211,239, 30,251,239, 32, 58,183, 11,251,138, 72, 37, 59,118,210,134,186,242,199,155, 27, 63,
-152,251,134,236,231,114,252,205,109,142,150,232, 12,124,108, 42,157,237,122,241, 46,212,168,138, 17, 19, 21,175, 86,121, 75,188,
-249,109,183,109, 45,111, 48,194,231, 95,106,118,178,246, 72,240,139,221,209,163, 0,221, 40,170,133, 87,130, 85, 2,207,249,239,
-205,223, 25,222, 14, 61,151,114,205,222, 29,241,180,133,201,181,196,188, 65,185, 75,130, 20, 1, 72,144,150, 16,224,101, 74, 6,
-161, 43, 32,211,173, 41, 77,121,119,156,124,195,231,206, 68,185,248, 77,195,116, 34,100,197,140,146, 57, 11,122, 53,105, 7, 73,
- 60, 1,197, 49, 74,245, 63, 38,121,115,200, 60,251,109,241,155,118,212, 12, 11,131,223, 28,177,135,116,232,214, 65,112, 28, 72,
- 8,184, 45, 35,189,138,121,171,243, 47, 2,219,114,187, 65,190,230,112, 34,120,143, 90,110,183,166,162, 91,213,177,225, 69,120,
- 47, 56,150, 93, 90, 23, 65,208, 18,146,122,246,232, 14, 78,243, 3,206,107,104,167,184,142, 73,161, 29,232,223, 41,142, 53, 7,
-139, 11,180,184,180,245,119, 77, 25,231, 63, 47,124,150,186,150,222,222, 72,224,156,163,100,100, 34, 73, 16,142, 15, 13,212,208,
-225,215,222, 25, 83,135,142,185, 19,204, 39,146,204,138, 51, 57, 22, 57,118,143,136,221,229,149, 92,113,123,194,183,216,174,229,
- 0, 7, 23, 14, 74, 11,141,177, 33, 40,235,185, 7,175, 77,201, 34,154,149,203, 60,199,205,191,219,133,211, 89,127,108,241,103,
- 35,187,209,184,131, 27,207, 19, 27,219,169,173,122,116,103,246,129, 25, 68,230,126, 91,229, 15,238, 82,213,239,219,238, 88,111,
- 35,111,118, 86,130, 36, 96,224, 36, 99,131, 92,230, 47, 72,195,236,184, 28,251, 71,135,249,130,192,243,126, 29,188,115, 61,133,
-201,147, 44, 56,238, 59,124,191, 95,173, 44,182,131,124,183, 61,142, 68, 92,185,112,148,218,214,134,252,100,161, 20, 69, 86, 18,
-170,130, 21,180,215, 95, 70,124,189,230,219, 47, 50,236,224,189,219, 94,172,149,193,136,112, 44,126, 0,177,227, 20, 45, 36, 42,
- 42,132, 33, 65, 21,243,115,204, 94, 82,189,242,194,242,226,203,115, 98, 62, 38,151,171,113, 15, 96, 4,135,176,148, 80,224, 10,
- 42, 33, 80, 80,131, 81,199,147,111, 59,124, 23,231,171,141, 37,242,151, 5, 92,114, 9, 22, 91, 93,229,204,118,251,108,202,108,
- 46, 99,247,203, 37,245,150, 24,144,184,238,182, 84,235, 46,237,106, 66, 15,136,195,171, 65,173, 2,170, 14,186,119, 54,242,133,
-231, 37,220,139, 91,208,208,242,221, 64,180,168, 45, 82, 23,167,129,192,128,107,149,242,103, 59, 88,243,221,161,188,176, 46, 44,
- 14,210, 67,155,164,135, 32, 40,120, 28, 8,196, 18, 58,234,102,230,206,105,227,159, 47, 28, 97,149,243, 31, 45, 95, 85,140,241,
-238, 19, 14, 60,252,146,248,155,116,155,178,160, 69,148,251, 81,144,175,119,136,211,242, 28,220,243,200, 77, 16,131,219, 83,210,
-186,170,217,246,139,141,250,229,150,150,173,213, 43,202, 52, 40, 11,130,230, 80,100, 42,231,123,222,237,185,118,214, 75,219,183,
-105,133,129, 92, 80,148, 10,153, 0, 78,102,139,112, 87, 58,241,135,153, 62, 47,198,121,147,135, 50, 63,239, 95, 30,229,237,220,
- 29,176, 94,205,186, 77,161,115, 17,108,150,252, 39,137,141, 49,150, 36,181,182, 68,103, 18, 55,160, 86,149, 21, 4, 18,123,206,
-205,113,203,247, 47,179,187,110,153, 88,154,130,130,138, 1, 24,130, 70, 68, 81,108, 91,229,183, 50, 90, 71,123,102,253,112,189,
-116,185, 8, 84, 37,167, 2, 1,204, 30, 21, 46,234,174,173,171, 52, 40, 86,104, 80,172,208,161, 84,163,130,252,254,121,126,243,
- 25,207,252,215,229,203,139,166,229, 55, 76,219,128,164,201,182,242, 5,202,227,143, 42,207,141,181,124,129,113,145,108,147, 10,
- 27,207,184,153, 18,151, 30, 84, 85,133, 56, 24, 13,145, 66,133,170,186,215,111,124,147,125,203,214, 54,215,247, 65,162, 59,140,
- 88, 1, 87, 38,144,224, 74, 96, 20, 17,130,175, 72,172, 86,193,207,187,127, 50,223,221,109,214,133,230, 75, 98,146, 18,212,106,
-135, 22,144, 9,196,161, 7, 20, 78,131, 87, 95, 89, 26,218,214,104, 80,166,150,125,157, 98,188, 97,131,230, 28,145,157, 93,216,
-199,240,188, 7, 24,190,102, 57,101,242, 74, 22,235, 22,156,119, 27,140,236,201,146, 20,134,146,183, 92,240,163,178,165,108, 66,
- 74,141, 40,144, 73, 3, 82,172,108,165,220,166,142,222, 22,234,145,238, 13,104,233,115,138, 1,233, 38,162,110, 23,241,109,112,
- 73,115, 59,180,199, 27, 75,220,122, 26,208,164,244,224, 7, 12,107,231, 85,127,143, 87, 55,242,157,198,249,126,242,157,248,110,
-243, 47, 52,241, 6, 61,113,145, 13,204,234, 69,202,226,205,198,240, 34,237, 82,208, 34,217,177,235,212, 72, 79, 6,250,150, 83,
- 46, 66,192, 82, 74,146, 59, 15,120,119,146,214, 27, 72,108,123,174,239, 4, 23, 14, 11,163,186,129,122,220,246, 18, 58,244,180,
-117,215,157,155,231,190,225,188,151,203,179,236,151, 23, 22,205, 41,173, 92,165, 56, 35, 35,120, 5, 56,106,113,196, 97, 93, 31,
-252, 60,255, 0, 20,110, 28,252, 64, 96,101, 22, 91, 30, 57,127,226,190, 97,192, 67,107,206,120,151, 45,125, 19, 46, 22,248,142,
- 57,224,251,228, 9,136,109,129, 62, 50, 36,253, 3,165,108,180,235,110, 10, 56,202, 2,155, 82,240, 28,249,229,197,223, 34, 58,
- 55, 72,246,203, 4,158,228,141,200,241, 66, 49, 66,152,140, 72, 35, 34, 80,167, 72,242,239,205, 11, 47, 48,217, 35, 35, 99,162,
-184,139,223,137,248,144, 50, 80,112,212, 23, 3,128, 32,230,208,160,158,156,107,158, 87, 76,172,208,161, 84, 31,206, 95,226, 19,
-195,254, 77,114,110, 15,227,188,153,137, 25,135, 41,115,215, 34, 98, 56,102, 41,129,217,174, 45, 66,184, 91, 49,252,134,230,197,
-186, 86, 67,113,113,104,119,221,161,195, 91,219, 90, 27, 10,159,116,120,109,128,148,186,227, 91,110, 83,228, 91,190,108,138,230,
-226, 51,162, 24, 35,115,220,242, 20, 18,214,151, 6, 55,165,197, 49,255, 0, 40,196,230, 1,192,243,151,152, 86,124,157, 53,173,
-172,160,190,123,137, 88,198,176, 16, 8, 14,112,105,123,186, 26, 23, 12, 21,199, 1,145, 34,242,191,121,182,195,180, 73,190,220,
-167, 68,182, 90, 32,193,145,115,184, 92,174, 50, 81, 10, 5,190,223, 17, 5,215,159,125,231, 20,150,218,109,166,210, 84,181,172,
-128, 0, 36,154, 13, 99, 35,141,210,184, 53,160,146, 74, 0, 49, 36,156,128, 29, 53,187,146, 70,194,210,247,144, 26, 2,146,112,
- 0, 12,201, 60, 0,174, 61,240,191,227, 31,199,222,102,188,224,163,203,135,150,238, 20,228, 30, 89,226,251, 68, 91,136,205,252,
-197,193,148,197,151, 23,199,165, 50, 8,141, 45,171,124,198,218,113,251,115,238,161, 76,165,247,164, 52,251,138,169, 98, 51,201,
- 77, 87,213,119,191, 42,102,229,141,167,249,134,227,113, 28, 83, 56,141, 16, 21, 46,119, 72, 80,168,224, 49, 64, 11, 64,247,156,
- 9,195,143,236, 30,112,193,205,155,207,242,205,174,218, 73,160,104, 58,231, 8, 26,222,131,164,162,176,156, 20,144,226,125,214,
- 56, 12,123, 44,149,110, 74, 84, 59, 20, 1,235,219,215, 92,158,187, 29,123,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20,
- 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161,
- 89,161, 66,179, 66,133,102,133, 10,205, 10, 20,147,115,200, 44, 54, 69, 50,155,205,238,209,105, 84,128,181, 71, 77,206,228,204,
- 5, 62,150,232, 20, 80, 29, 90, 55,109,168,173, 52,236,112,190, 95,117,164,246, 5,164,151, 6,230,104,172, 92,183, 21,157,144,
- 79,196,161,100,216,252,204,170,215,111,137,118,185,227, 49,111, 49,164,100, 22,235, 84,243, 70, 36,191, 9, 14, 25, 44,180,249,
-250,183, 22,128,149,119, 19,163,117,180,140, 96,144,181,193,132,160, 40, 80,145,152, 7, 37, 20, 3,193, 40,161,105,193,166,105,
- 84,131,145,229,120,190, 31, 5,155,166, 91,146, 88, 49,107,108,137,240,237,113,238, 57, 29,226, 61,146, 11,247, 59,130,182, 71,
-140,135,164,184,211,106,117,245,251, 45,182, 14,229, 30,128, 29, 61, 5,188,151, 39, 76,109,115,138, 42, 0, 73, 65,153,195,128,
-164,185,225,152,146,148,189,166,105, 84,141, 55, 35,199,173,178,219,183,220,111,214, 91,124,247, 67,106,106, 20,219,163, 17,101,
-186,151,137, 74, 10, 91,113,196,173, 91,148, 8, 20, 29, 78,157,100, 15,144,106,107, 73, 29, 32, 26, 73,112, 24, 19, 75, 58,106,
-149, 89,161, 66,147, 87,122,179,183,120,143,142,185,118,182, 35, 32,153,108,155,122,137, 98, 92,246,147,120,149,103,183, 58,195,
- 18, 37,183, 20,175,199, 91, 44, 63, 41,150,220,117, 41,218,149, 45, 9, 36, 21, 36, 23, 4, 78, 45, 47, 67,164, 20, 84,193, 74,
-144, 23, 37, 32, 28, 58,141, 22,160,169,198,142, 73,147, 26, 20,119,165,204,144,196, 72,177,219, 83,210, 36,201,117, 44, 71, 97,
-164, 10,169, 75, 90,136, 74, 64, 29,164,157, 33,173, 46, 40, 2,154, 50, 82,134,209, 80,172,208,161, 89,161, 66,162,142, 65,229,
-236, 87, 1,180, 92,174,183, 27,132, 88,240,109, 15, 46, 61,239, 32,184,151, 34,226, 88,191,130,130,227,174,220,238, 1, 10,101,
-132,176,210, 74,150,128, 74,135, 64, 66,119, 3,163,107, 75,138, 12,232, 18,149,199,110,102,252, 84,237,138,189, 92, 48,142, 2,
-192,185, 19,154,114,148,186,109,176,179,171,149,238,225,198,152, 7,191,184,176,211,178,161,219,109,202,137,114,155, 18, 58,138,
-150,143, 21, 64,169, 9,250,211, 80,181,109,236,249, 49,198, 49, 45,203,244, 14,128,210, 83,180,229,234, 94,140,234,150, 93,224,
-106,211, 27, 84,246,253, 31, 90, 82,187,191,137, 3, 54,219, 37,162,213,253,207,190,103,119,152, 54,139,106, 46,249,108, 62,103,
-185, 91,108, 87, 91,170, 88, 64,144,244, 51,109,139, 24, 63, 28,185, 95, 13,206,129, 67,218, 27,129,220,103,193,200, 34, 81,168,
-204, 67, 78, 93,220, 83,130,247,176,168,239,223,116,224, 25,143,111,232,171,243,228,211,205, 53,183,204,213,131, 53,145, 18,223,
-119,183,203,194,239, 22,200, 18,154,184, 60,221,218, 42, 81,116,143,226, 4, 49,115,101,182, 81, 48, 52,251, 79, 54, 67,141,135,
- 19,182,139, 42, 39,113,203,111,219, 19,182, 71,129,172, 57,174, 84, 60,112, 69, 81,233,233,171, 75, 27,209,122, 9, 66, 8,206,
-174,134,168,106,117, 4,251,236, 69, 97,233, 50, 94,106, 52,104,237, 45,231,228, 62,224,101,134, 25,104, 21, 41,107, 90,136, 74,
- 82,144, 42, 73, 61, 52,137,101,108, 45, 47,121, 1,160, 41, 39, 0, 0,204,147,192, 82,226,137,211,184, 49,128,151, 18,128, 0,
-164,147,144, 0,102,107,147,254,104,124,253,120, 78,207,227,158, 2,147,239,151, 7, 22,253,178,235,200, 17,219, 18, 27, 67,171,
-250, 50,213,153, 52, 80,121, 68,146, 4,154, 83,254,204, 30,139, 30, 36,243,143,251,155, 33,206,218, 57, 92,235,144,146,199, 78,
- 2,226,112,211, 8,199, 81, 63,231,251,128,224,234,247, 23,147, 63,218,248, 44,102,241,205, 35, 68, 96, 7,182,220,148,192, 99,
-170,115,134,144, 51,209,159,249,200,197,181,205, 78, 40,199,198,113,204,248,141,131, 45, 92,153, 42,189,229,141,181,126, 55, 39,
- 22,185,114,164, 5,173,199,144,250,150,119,149, 58,226, 10, 87, 83, 90,157,121, 91,203, 45,145,188,207,205,118, 86, 91,162,184,
- 62,227,246,161,234,174, 45, 87, 57,174, 92, 85,196,105, 43,142, 53,234,239, 51,247,199,114,191, 41,222,222,237,101,173, 49,219,
-126,200,177, 17,161,200,214,185,169,130, 52, 59, 80, 76, 48,174, 63,126, 51,190,110,252,197,187,231, 47,147,120, 22,221,152,102,
-124, 97,197, 28, 37, 50,211,137,225, 56, 38, 45,120,151,139, 91, 46, 49, 4, 24,146, 77,230, 82, 34,173,143,125,114,226,183,188,
- 86,156, 93, 66, 91,216,148, 80, 2, 79,233,159,201, 94, 73,218,236, 54, 59,123,134, 67, 27,228,145,170, 92, 90, 14,148, 36, 6,
- 55,252,161,160, 34, 4,198,191, 45,190,124,115,230,239,184,111,247, 54,178, 77, 43, 34,137,200,214,135, 56,106, 80, 28, 94,236,
-123,197,196,170,149,193, 18,175, 71,224,153,230, 31,152,124,206,241,135,153,239, 45, 60,239,145,228, 92,149,199,152, 39, 30, 51,
-200, 28,127,152,229,243, 92,189,221,184,243, 35, 99,222, 18,136,109, 92,100,120,143,150,159, 13,120,237,180,183, 8, 64, 67,161,
- 35,106,212, 53,231,143,239, 83,203, 45,151,115,216, 36,115,163,100,110,146, 57, 73, 0, 0,142,141,133,237,148, 12,129,105,192,
-145,152, 40,107,210,159,216,191,154,155,230,221,191,199, 24,150, 73, 27, 28,145, 0, 92, 73,238,200,253, 15,136,156,200,120,196,
- 2,112, 33, 69,116, 11,202,174,117,114,179, 88, 60,195,225, 94, 59,202,179,100,220, 19,201, 19,215, 23,121, 44, 55,114,181, 90,
-228,165, 14, 4,246, 36,169,167,148, 9,239,160, 29,195, 95, 42,191,177,254, 98,150,219,152,228,218,201, 38, 41, 67, 36, 3,128,
-123, 36,104, 84,224,173,113, 4,241, 65,213, 95, 91,127,190,174, 93,134,231,150,153,186, 0, 4,177, 23,198,188, 75, 36,141,229,
- 23,138, 57,160,129,193, 79, 77,113,175,240,122,242, 79,230, 67,205,255, 0, 14,114, 35, 56, 63,155,222, 71,242,229,197,120,182,
-117, 37,184,246, 14, 49,144,236, 59,133,251, 57,153, 6, 26,223,155,112,114, 52,219,123,139,105,136,201,142,134,155, 90,213, 83,
-191,111,135,212,175,238, 71,155,124,233, 97,202,119,241, 9, 54,248,174, 39,124, 96,151, 73,147, 88, 28, 81,173, 80,236, 73, 82,
- 78, 28, 21,120,124, 21,242, 95,145, 55, 30,114,219,166, 49,238, 82,218,219,178, 82, 3, 98,205,210, 22,181, 92,228, 45,192, 13,
- 32, 12,120,162,113, 77,207,188,217,121,171,227,206, 58,252, 69,191, 13, 47, 50,252,165, 63,157, 34,113,254, 19,117,115, 16,207,
-239, 50, 92,186, 94,237,183, 44, 30,253, 99, 90,144, 38,190, 87, 49,200,183, 24, 15,248,158, 12,151, 22,166, 92, 1, 41, 85, 10,
-171, 38,203,150,118,203,235,141,167,152,182,232, 68, 6, 73, 0,115, 6, 0,135,177,252, 6, 10,215, 4, 80, 2,140, 82,162, 95,
-243, 94,235,183,219,111, 60,177,185,206,110, 4, 81,146,201, 14, 36, 22, 61,156, 78, 40,230,149, 66, 78,147,130,212, 2,143, 60,
-220,217,142,121,122,242, 75,228,227, 7,207,185, 43,138,248,153,236, 74,110, 97,202, 23,158, 22,101,229,242,158, 94,230, 79,150,
-228,105, 92,104,126, 3,209,221,121,184, 80, 98,130,204,116, 56,148,173,213,168,185,184, 33, 0, 92, 14, 75,180,150,255, 0,116,
-222, 38,142, 41,103,241, 52,198, 37, 79, 13,186, 98,143, 18,160,162,147,137, 76, 0, 9,153,170, 71,115,221,236, 59,118,211,178,
- 67, 44,177, 91,248,122,164, 48,130,101,126,169,100,193,168, 65, 32, 52, 96, 20, 41, 37, 85, 5, 77,182,207, 53,156,173,229,103,
-153,248,143,145,188,151,103, 94,127, 51,188, 77, 23, 20,199,230,110, 57,243, 49,135,220, 47, 24,221,246,214,183,152, 14, 38, 58,
- 91,114, 83, 43, 50,163, 41,224, 23,225, 33,198, 86,148, 45, 11, 53, 32, 83, 30, 92,182,230, 91, 41,237,247,166,109,236,145, 22,
- 39,219,184, 2, 10, 28,213, 14, 5, 56,144, 65, 32,138,188,111, 52, 93,114,173,253,189,206,196,253,202, 72,149, 38,142,229,142,
- 45,112, 81,146, 40,196, 47, 0, 90, 64, 32,213,228,226,190, 84,252, 65,127, 17, 15, 59, 62,115,124,172, 90, 60,227,102,220, 67,
-193, 56, 23, 37,242, 10,212,172, 90,199,110,131,154, 90,241, 59, 94, 69, 58, 13,166,207,108,157, 25,136, 83,226,163,192,162,100,
- 58,169, 4,148,182, 2,130,201,214, 51,118,179,216,249, 7,101,219,119, 51,183,178,107,169, 99,103,188,231,104, 46, 49,135, 57,
-206, 4,144,113,200, 39, 30, 21,187,217,175,185,131,204,125,247,116,218, 70,229, 36, 22,144,202,255, 0,117,173,214, 26, 36,115,
- 88,198,144, 1, 24,102, 87, 33,198,162,252, 3,204,167,154,159,194,175,206,215,154, 95, 47, 89, 63, 58,102, 94,101, 48, 12, 23,
-128,242,238, 70,178, 65,228,171,196,219,179, 15, 95, 99, 88, 99,222,236,178, 3,114, 37, 74,118, 26,219,144,248,141, 48, 71,120,
- 37,198,234,170, 2, 19,182,214,255, 0, 96,219,124,203,217,172,111,227,182,101,180,210, 92, 54, 55,120, 96, 12, 11,203, 92, 48,
- 1,112, 10,213, 10, 14, 29,180,251,111, 49,238,158, 85,111,187,134,219, 37,212,151, 80,199,108,249, 27,226, 18,123,193,129,236,
- 56,146,152,157, 46, 66,132, 99,208,143,143, 35, 62, 92,124,255, 0,126, 38,216, 30, 71,230,227, 48,252, 66,249,143,139,175, 23,
-124,174,253, 19, 6,176,225, 87, 73, 76,227,150,217,182, 39,118,238,118,223, 18,227, 6, 20, 72,232,144, 60, 54,226,180,205,118,
- 13,202, 81,221, 67, 3,157,185,151,101,242,238,233,187, 69,190,213, 12,173,107, 26, 94,231,166,163,168,112, 37,164,146,152,151,
- 19,159, 10,177,228, 46, 85,223,188,206,180,118,245,115,188, 79, 11,156,247, 8,218,194,116,130,211,153,104,115, 64, 11,128,104,
- 25, 98,181,205,206, 17,243, 63,230, 7,201, 77,207,241, 54,228, 69,100, 48,231,121,150,145,156,219,120,150,247,159, 67,141, 26,
-124, 40, 92,143,144,228,215,212,222,239,172, 54, 25, 76, 69,146,168, 18,215, 28,248, 65, 1,197,161, 91, 40, 54,235,161,111,124,
-181, 97,206, 71,101,131, 65, 22,130, 55, 72, 24, 84, 18,198,198,205, 44, 56,175,218, 11,138,160, 56,215, 51,216, 57,171,112,228,
- 97,190,220,107, 6,244,200,216,139,192, 4, 9, 29, 36,154,222, 48, 79,178,226, 48, 69, 35, 14, 21,174, 51,202,247,187,255, 0,
- 6,185,201,114,188,194,126, 39, 51,188,222, 79,183,203,201,108, 55,252,122, 5,210,231,196, 82,111, 69,213, 59, 18, 32,146,155,
-135,189,185, 29,214,130, 82,169, 45,154, 2, 74,131, 69, 41,216, 74,231,111, 16, 95,252, 55,195,109, 98,192, 16,210,215, 22,137,
- 81, 49, 40,136, 10,240,232,226,184,209,218,238,102,227,110,248,175,138,221,142,228, 65,112,115, 67,140, 58,149, 64, 85, 82,210,
- 62,208,227,138, 38, 21,102, 57, 79,241, 98,252, 72,111,220,113,228,142,193,140,114, 62, 79,196,220,183,151, 76,204,248,187, 58,
- 93,207, 13,131, 0,242, 6, 67,108,187,217,226, 89,239, 18,152,185,218,220, 45,151,162,220,144,135,203, 41, 8, 82,195,132, 14,
-180, 20, 27, 95,150,156,189, 5,198,229, 36,145, 54,107,120,195,100, 98, 56,157, 13, 44,113,115, 65,107,184, 22,148, 92, 81, 43,
- 73,187,249,171,204,215, 22,219, 84,113, 74,248,110, 36, 47,137,234,192, 53,184, 61,141, 99,200,115,112, 80,224,169,130,173,125,
- 78,126, 31,126, 86, 57, 51,203, 87, 13,101, 88,151, 51,115,158, 87,230, 43, 38,228,156,206,227,200,185, 6, 81,156,151,100,201,
-143, 59, 34,182, 90,224,202,183,176,153, 50,166,175,221, 16,171,113,113,180, 21,129,244,138,246, 70,188,207,206,156,207, 15, 51,
-221,178,123,107,102, 91, 70,200,195, 26,198,116, 53,206, 33,197, 0,239,119,144,246, 12,107,213,220,137,202,115,242,157,147,237,
-238,238,159,117, 36,146, 25, 28,247,244,185,173,105,104, 82,123,163, 74,142,211,133, 91,156, 31,138,248,207,137,177, 88,120,190,
- 17,138, 99,120, 86, 27,143, 67,121,187,117,146,205,110, 98,203, 96,178, 91,210,165,188,224,105,150,146,219, 44, 32, 41, 74, 90,
-136, 0, 84,146,123, 78,179, 23,119,115,110, 82,186,105,158,231,200,227,139,156, 73,113, 57, 98, 78, 39,162,181,118,118, 80,109,
- 80,182, 24, 24,216,226, 96,193,173, 1,173,104,207, 0, 48, 29, 53,242,201,248, 81, 71,111,158,191, 23, 95, 60, 30,105,184,194,
- 55,186,240,195,119, 46, 71,179, 90,174,214,214,203, 22,204,149,220,239, 33,138,245,185,209, 77,169,112, 92, 34,217, 95,184,186,
-145, 82,149, 45,178,174,170, 4,250, 75,205, 87,255, 0, 34,229, 93,175,106,184, 43,113,220,113, 7, 54,134, 48,135,122,139,195,
- 7, 80, 41,149,121,107,201,246,127,236, 60,223,187,111, 22,193, 45,191,104,208, 70, 78, 50, 72, 11, 79, 94,160,194,243,208, 72,
- 92,235,235,151, 94, 99,175, 88,213, 55,243,209,231, 91,139,124,136,240, 61,251,153,121, 29,244,207,184,168,185,100,227,188, 22,
- 44,128,205,231,144,179,137, 13, 56,228,107,124,115,181,126, 11, 73, 8, 46,202,146,164,148,180,210, 84,170, 41,101, 8, 94,183,
-146,249, 62,231,157,175,155,103,110, 16,102,247,240, 99, 56,184,244,158, 0,113, 61, 74, 70, 51,158,249,222,211,144,172, 31,123,
-114, 84,228,198, 12,222,244,193,163,160,113,113,224, 49,196,160, 63, 22,156,219,199,126,102,238,126,101, 60,141,121,198,243, 99,
-118,144,142, 78,243,137,230, 26,223,145,219,112,103,225,174, 26, 48, 12, 7, 6,190, 97,159,114,195,105,167, 30,113,112,155, 84,
-107,230,214, 96,168,111,101,180, 32,188,165, 72,113,208,159, 89,237, 27,174,219,252,183,117,218, 54,166,254,194,206,216,180,189,
- 87, 91,222,201,117,156,177, 66,204, 93,147,137, 58, 70,144, 23,198,123,222,207,186,141,211,104,222,183,135,127,220, 95, 93, 7,
- 8,209, 60, 56,216,248,116, 4, 92, 20, 63, 6,230,208, 6,162, 92, 92,157,166,252,126,252,224,100, 88,119, 28,112,239,145,254,
- 56,200, 96, 99, 89, 31,152,182, 34, 94,121, 66,255, 0, 62,246,140,126, 37,171,140, 12,228,219,160,194,149, 45,194,150,226,196,
-189, 92,208,249,154,250,214,148,165,152,174, 54,176,166,221, 93, 57, 39,144,252,171, 29,212,179,239, 87, 12, 46,101,190, 17,180,
- 13, 68,200,154,137, 3,139,154,212,210, 17, 75,156, 8,196, 10,237, 31,220, 71, 56, 75,105, 13,190,195,108,240,199,220,227, 35,
-139,180,129, 30,173, 32, 19,193,175,114,234, 42,129,172, 32,168, 38,164, 31,195, 19,204,199,225, 51,229,123, 5,198, 60,188,113,
-207,153,188, 26, 95, 36,220,165, 68,123, 50,203, 50, 76,110,253,134,219,243,190, 64,154,134,217,122, 72,189, 94,109, 80,237, 30,
- 26,150, 3, 48,216, 68,178,148, 54, 18,144, 84,178,165,174,171,204, 46, 88,230,174,102,184,126,231,121,102,241, 16, 7, 67, 26,
-230, 60,198,193,136, 26, 90,226,229,226,227,167, 18,167, 0,128, 92,121,105,205,156,161,202,150,209,237, 54, 87,209,153, 73, 26,
-222,230,189,130, 73, 14, 4,235,123, 67, 83,131, 64,114, 0,131, 18,164,253, 20, 52,235, 79,182,135, 88,113, 14,180,226, 66,219,
-113,181, 5,161,104, 80,168, 32,142,132, 17,174, 31,149,119,252,232, 77, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,
-161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205,
- 10, 21,154, 20, 43, 52, 40, 86,104, 80,175,158,111,198,119,138,239,252,141,206,126, 86, 29,111, 24,202,238, 24,116, 46, 52,243,
- 31,107,200,178,123, 31, 6,221, 57,230,223,142, 92,175,118,150,153,181,165,219, 69,180,182, 68,137, 51,139,104,134,250,157, 79,
-187,186, 83, 42,139, 12, 20,158,209,229,126,224,203, 43, 75,177,169,161,230, 72,136, 6, 65, 17, 32, 59,189,222, 60, 0, 85, 9,
-222, 29,220, 22,179,187,212, 70, 73, 35,192,162, 59,134,174, 29, 31, 36,206,168,198, 29, 99,243,239,198,248, 90, 47,156,117,196,
- 92,217,198,217, 99,126, 95,124,171,224,156,150,229,131, 25,186, 74,228, 11,119, 20, 99,119,124,149,155,131,246,183, 21,111,147,
- 57,139,131,177,154,182, 74,147, 30, 51, 11,145, 17,167,150,157,128, 54,105,172,186,155,103,190,151, 68,243, 68,246,120,211, 57,
-138, 91,164,188,181,137,171, 16, 11, 87, 80, 4,144, 28, 64,199, 26,175, 99,110, 34, 10,214,184, 29, 45, 7, 2,168,167,219,151,
-101, 77,220,111,115,252, 65, 57, 58,227,150,225,151,190,121,243,117,103,194,177, 14, 8,231,236,243, 4,205, 44, 88, 45,247, 5,
-187,229,121, 22, 28,168,210,241,219, 84,201,249, 38, 51, 10,229,119, 90,229,202,126, 50,222,109,134, 94,144,150,252, 38,202,124,
- 50, 69, 93,244,123, 53,131, 89, 43, 45,237,139,221, 52, 77,115, 75,154,224,208,229, 15,112, 12,121, 13,192, 2,138, 64, 85, 57,
-212,136,205,196,164,180,189,232, 26,226, 10, 16,169,144,196, 99, 76, 12,223, 34,243,115,205, 22,220, 42, 23, 61, 69,243,125,119,
-205, 88,202, 60,141, 95,112, 92, 34,221,197,183, 88,124, 37,112,197,163,192,180, 73,203, 47,247,179, 22,209,224, 11,147, 23,224,
-255, 0,142,185, 14,182, 91,112,148, 37, 37, 0,161,169,118,144,109,187, 91,158,108,205,176,102,155,144,231, 23,183,196, 14, 87,
- 6, 53,170,229,210, 90,136,128,168,199, 60, 75, 82, 58,105,192,241, 53,170,177, 2, 20, 76, 20,156, 51, 90, 78,200, 57,127,241,
- 86,179, 53,200,183, 59,174, 85,230,106,213,202,234,111,146, 98,230,188,121, 3,138,242,107,254, 45,110, 17,101, 7,236,215, 12,
- 94, 67, 24,223,247,102,213, 21,178,211, 44, 50,244, 89,207, 25, 41, 89, 73, 72,241, 1, 83,144,237,188,189, 47,134,214,178, 3,
- 15,115, 75,203,216, 28,112, 71, 7,130,253,110, 57,146, 11, 70,148,234,160,233,174,198,162, 75,181, 98,161, 15,161, 48, 65,235,
-198,186, 69,143,121, 89,231, 23,121,139,158, 50, 87,114,120, 28,189,155,216, 60,187,121,126,201,113,156,191,204,135, 3,217,249,
- 10,243,151,103, 50, 31,228, 75,136,178,217, 46, 42, 54, 91,101,129, 86,233, 38, 51, 14,150, 35,184, 80, 28,142,167, 80, 54, 39,
-126, 30,110, 96,180, 22,214,241,232, 49, 70,233,229, 5,176,202,230, 6,181, 34, 26,156, 59,197,202, 20,133, 35, 34,153,225,100,
-219, 73, 53,184,174,162, 26,220, 92,208, 84,247,176, 25, 39,248, 81, 30, 60,230, 14,113,193,185,123,131, 50, 65,121,243,135,150,
-121,120,139, 19, 15,143,230, 70, 79, 37,113, 54, 85,125,190, 90,185,158,247,136,114, 27,119, 11,116, 91,113,199,209,122,114, 34,
- 47,200,177,123,202, 45,209,156,131, 30, 71,187,165,165,163,196, 90, 84,171,221,182,210,238,218,118,105,182,109,202,187,193,208,
-246, 0, 99, 18, 68,132,157, 90, 87, 78,180,212, 67,220, 21, 65, 74, 40,230,145,143,105, 87,150, 97,169, 65,205, 29,212,185,166,
- 88, 81, 60, 63, 32,243,109,148,224,215,188,246,245,150,249,140,181,100,252,123,198,222, 77,178,124, 58,194,152,115,236,208,178,
- 12,175, 53,207,114,120,153,114, 46,214,199, 32, 3,119, 83,118, 8,112,209, 50, 35,224,165,150,212, 22,180, 36,148, 44, 46,230,
- 29,182,222,102,194,198, 64, 88,247,220, 7, 28, 9, 13,108, 76, 49,233,114,247,123,196,161, 25,156, 1,204, 81, 49,211, 61,165,
-196,185, 64,106,118,151, 21, 81,199, 10,134,213,148,115,170,114,172, 51, 62,187, 90,252,209,223,249,126,225,229,219, 56,193,188,
-192,223,174,118, 76,231, 22,199,184,111, 53,200,185, 75,141,126,241, 69,129,235, 93,130, 66,204, 11,125,190, 12,135, 23, 27, 28,
- 74,220,122, 26, 3,193,196,111, 47,139, 63,135,180,240,223, 11, 77,184,132, 78,215, 68, 1,141,198, 70,136,102, 77, 74,225,222,
- 36,140,100, 64, 29,130, 28,169,157,114, 40,113,214, 93,164,135,103,129,212,220,144,101,217,194,153,249, 53,187,157,178,108, 75,
-147, 50,156,237, 94, 96,243,123,219,158, 89, 60,220,113,127, 20, 61,112,226,140,165,219, 78,114,245,135, 37,106,229, 98,182,222,
-173, 55,123, 76,235,139,137,149,106,146,185, 17,217,191,168,174, 66, 99,182,135, 84,234,155, 82, 21, 42, 7,218, 65, 36, 81,195,
-224,177,190, 60, 15,122, 61,138,213, 98, 56,181,205,112, 24, 56, 33, 49,224,221, 68,132, 85,164, 56, 72,224,226,237, 71,186,224,
- 48, 56,227,128, 32,143,159,162,172, 14,121,152,121,184,113,185,108, 98,185, 63,154,152, 60,179, 51, 53,228,203, 87,152, 59, 81,
-196,110,140,113,230, 1,133,191,156,194,139,136,200,195,100,200,180,174,196, 28, 93,157,198,189,213,219, 76,137, 5,232,190,242,
-236,205,202, 66,148,154,107, 59,109,180, 33,145,182,230, 16,198, 24,142,166,235,115,188, 50,100, 18, 0,237, 94,242,168,120,106,
- 59, 72,110,117, 34, 71,205,192,191, 82,157, 88, 20, 1,112, 76, 19, 46,133,193, 86,186,121,229, 82, 62,119,102,123,204,102, 27,
-152,222,115,252,134,201,130,249,138,187,227,220, 97,121,228,121,178,175, 55,233,220,123, 47, 19,196, 46,169, 45,220,166, 36, 63,
-115,142,221,234,229,113,109,167,202,150, 19,180,180, 21,244, 84, 24, 46, 97,116, 50,252, 52,177, 53,141,115,224, 5,225,128, 0,
- 31,174, 70,228, 48, 7, 72,106,143, 79, 26,181,180,212,221,109,113, 36, 7, 96,189, 8, 15,206,181, 55,114,142, 75, 51, 23,196,
-102,204,182,193,188, 92,238,114, 94,141, 10, 45,187, 30,136, 39, 95,228, 48,226,194,166, 42, 27, 74,113,164,169,230, 96,165,231,
- 27, 42, 88, 1, 73, 21,244, 28,232, 11,133, 75,168, 23,142,177,183, 57,119, 37,189,100,153,133,153,171,118, 17,129,221,239,120,
- 86, 15,198,147,217, 68,168,176, 62,128, 51, 58,227,114, 65, 83,172, 75,153,115, 98, 83,136,223, 85,165, 17,214, 82,149,169, 79,
-190, 76,194,225,107,238,251,221, 61, 29,127, 85, 33, 53,224,114,169,133,188, 75,141,120,139, 27,114,223,133, 96, 24,157,133, 55,
- 4,253,213,109,176,227,246, 40,150,161,122,153, 33, 59, 27, 97, 97, 8,111,196, 74,186,111, 42, 39,167,164,208, 22,238,111,102,
-188, 58,165,123,156,122,201, 52, 81,194,200, 66, 53,160,118, 87, 1, 60,193,240,151,150, 91, 87, 42,228, 77,218,113, 75,222, 65,
-114, 98, 67, 75,200,226,219,178,132, 91,120,230,223,151,164,169,115,155,181, 91,145, 9,192, 25,109,229,108, 37, 37, 21, 80, 81,
- 0, 3,174,171,177, 27,169, 45,152,102,112, 94, 10, 9, 41,193,113, 69,244,118,227, 89,155,209, 16,144,232, 7,208, 80,124,223,
- 77, 93,127,195,167,145,240,220, 91, 42,189,240, 94, 51,137,218,113, 40, 25, 12, 25,249,188, 72,150,167,164,190,210,110,182,228,
-176,194,247,153, 14,188,166,204,184,232, 90,210,132,148,160,248, 43, 82, 82, 20, 86, 85,157,230,253,185,253,219,141, 90,128, 8,
- 70, 1, 49,193, 17, 6, 38,167,237, 51,180, 44,104,156,123,107,176, 26,193,213,221, 81,143, 61,248, 87, 52,231,156,121,143, 88,
-248,160, 73,151,105,126,237, 45, 25,213,150,223, 44, 66,184, 93, 33,173, 45, 24,117, 82,150,218, 92, 97,167, 18,233,121,186,245,
- 37, 6,132, 36,235,206,223,220,119, 42,243, 31, 55,237,144, 90,108, 61,230, 25, 15,142,192,224,199, 61,168, 52, 98, 72, 5,128,
-234,212,213,196,150,148, 41, 94,142,254,219,121,175,150,249, 63,116,158,243,127,238,200, 35, 30, 3,203, 75,218,199, 41,215,128,
- 4,135,144, 91,165,201,128, 14, 10, 22,163,143, 42,222, 72,109,216, 40,135,154,114, 51, 44, 92,242,170, 33,232,145, 10,119,196,
-179,149, 15,154,208, 87,206, 95, 94,174, 17,234, 77, 7, 83, 15,201,111,237,234,211,203,182,182,255, 0,112,211, 54,224, 66,131,
-155, 33, 81,147, 23, 55,116,188,142,166,160,196,204,243,183,251,137,187,243, 25,206,219,246,237, 80,237,192,161, 25, 62,100, 57,
-189, 50,111, 67, 1,235,114,156, 5, 7,243,103,197, 57, 31, 0,115,188,220,138,198,153, 80, 44,151,251,227,185,174, 17,123,101,
-170, 49, 26, 91,143,123,195,177,146,163, 84,239,133, 33, 84,218,127, 96,164,210,135, 94, 69,243,195,147,111,124,172,230,135,110,
- 54,154,153, 20,178,153,224,144, 12, 3,245,106,115, 87, 37, 99,142, 71, 54,145,211, 94,192,242, 47,156,236,124,214,229,102,237,
-215,122, 95, 44, 81, 11,121,227, 39, 18,205, 58, 90,244,205, 30,209,152,201,192,227,133, 55,121,182,203,248,126,121,235, 77,135,
- 36,243,129,196,185, 13,151,151, 49,251, 52, 75, 27,156,141,199,178,164, 64,147,124,183, 65,169,109,167,151, 13,246,157,113, 41,
- 82,149,177, 15,180,189,149, 33, 43,161,215,178, 60,166,255, 0,253, 1, 28,181,102, 32,188, 50, 65, 38,110, 13, 96,150, 39, 57,
- 49,115, 71,188,194,120,132, 78,179, 94, 43,243,131,255, 0,243,188,115, 93,231,196, 90, 54, 43,134,100,210,100, 48,204,214,174,
- 13,113, 29,215,129,192,170,245, 10, 68,129,145,121,112,242,239,197, 25, 15, 5,249, 50,227, 57,120, 22, 47,151,185, 76,223, 53,
-190, 56,167,114,156,166, 57, 71,134,182,212,227,143,201,146,224,117,191,163, 43,121,222,136,220,132,161, 33, 68,235,141,127,113,
- 31,222, 61,223,155, 48, 73, 99,102,101,209, 35,116, 62, 89, 0,105,208,115,100,113,180,163, 67,190,209, 56,144,161, 56,215,106,
-254,219,255, 0,178,219, 47, 39,231,142,250,236, 68, 31, 27,181,178, 40,201,112,241, 6, 79,146, 71, 5,113,111,217, 3, 0, 80,
-175, 10,181, 30, 72,188,187,222,115, 76, 87,147,178, 57,199,238,120,217,166, 11,147, 96, 88,244,249, 49,148,239,130,221,250, 43,
-177,220,153,178,168,241, 16, 29, 90, 54,128,161, 93,135,168, 4, 29,104, 63,179,110, 70,155, 97,215,204,215, 76, 65, 33,107, 33,
- 7, 2, 88,215, 7, 61,221,142,112, 13,105,255, 0, 73, 57, 34,208,127,122, 60,245, 15, 48, 6,114,189,171,212,198, 28,249,156,
- 49, 13,123,152, 88,198,254,179, 90,231, 57,195,253, 64,102,169, 72,184, 47,240, 89,252, 65, 60,157,217,242, 52,249, 83,243,231,
-108,194,174, 57,116,173,153, 85,165,252, 24,183,140, 93, 99, 70, 64, 68,105, 77,179, 33,203,168,106, 83, 33, 78, 39,196, 13, 3,
-180,129,184, 1, 77,125, 88,222,252,225,217,121,178, 70,157,211,106, 47, 12, 29,210, 31,222, 29, 32,144, 26,173, 56, 96,181,242,
- 63, 96,242, 71,126,228,216,158,221,167,120, 17,185,231,190, 12,125,194,131, 2, 1, 46, 71, 12,113, 78,140,105,239,199,159,128,
-142, 68,199, 20,249,156,145,202,124,244,188,243,204,199,153, 75, 27,182,171,175, 46, 95,108,207,220,226,216,205,202,235, 18,239,
-114,115,194,118, 95,189,205,122,229, 42, 40, 47,200,113,212,168,128, 0, 72, 27,130,160, 95,249,221,227, 94, 89, 27,123, 95, 14,
-206,217,202, 34, 14, 0,184,134,150,183, 16, 16, 6,131,128, 0,250,112, 75, 29,187,200, 47, 2,202,248, 92,221,153,111,174,219,
-165,211, 57,164,134,130,224,247, 32, 37, 92, 92, 70, 36,145,195, 1,138,137,125,252, 3, 47, 31,252, 22,242,220,190, 62,231, 86,
-184,251,205, 79,150,166, 46, 86,235, 31, 45, 90,241,247, 13,135, 44,180, 46,247,113,189,219,218,147, 4,202, 91,145,156,183, 72,
-184,184, 27,121, 43, 94,228,169,105, 90, 22,146,144,130,183,243,183,254,238,247,226,109,124, 75, 43,162, 9,136,187, 22,157, 13,
- 99,145,201,142,160,208,161, 7, 4, 32,170,157,207,144,127,246, 86, 31, 11,119,225, 95,218, 2, 27, 48,110, 14, 26,220,246,130,
-213, 81,164,184,161, 83,153, 4, 16,137, 97, 56, 15,200, 95,226, 56,199, 62, 96,188,185,230,103,207, 35,185, 54, 61,129,198,118,
-222,158, 58,227, 92, 94, 54, 55,139,101,246,215,212,218,220, 98,237, 29, 81, 24,132,242, 94,113,148, 23, 92, 49, 20,245, 18, 3,
-110,182,125,161,158,223,121,207, 97,146,198, 75, 61,183,107, 12,115,202,248,146, 56,185,205, 61, 45,196,156, 49, 78,242,116,131,
- 90,110, 94,228, 94, 99,143,112,138,247,117,221,203,219, 24, 35,195,137,161,173,120, 60, 30, 8, 3, 18, 2,157, 37,221, 14, 25,
-212,197,228,223,240,217,201,188,172,249,207,243, 97,230,110,119, 36, 90,114,203, 39,153, 12,171, 41,201, 96, 99, 80,177,231, 45,
- 18,177, 84,228,119,217,151,132,176,227,235,148,250,100,248, 41,148, 26,220,148, 38,164,110,160,236,213,127, 55,115,251, 57,155,
-107,176,219,155, 9, 97,182, 99, 90, 93,169,117, 35, 3, 85, 16, 38, 75,153,171, 46, 75,242,221,252,167,187,238, 59,155,167, 15,
- 23,111,115,131, 67, 83, 74,188,189, 9, 82,185,166, 66,152,188,191,248, 74,142, 98,252, 66,243, 79, 55, 89,134,115,104,188,241,
-127, 35,241,132,238, 47,202,248,161,118, 55,163, 93, 30,180, 93,113,164,227,210, 20,155,154,101,237, 73, 41,171,201, 33,144, 82,
-105, 67, 81, 93, 78,176,243, 61,219,102,195, 22,211, 4, 69,179, 71, 40,145,178,234, 8, 8,126,177,221, 79, 70,117, 95,184,249,
- 74,205,219,152,165,222,110, 37, 14,134, 88, 76, 78,139, 73, 82, 29, 31,134,123,203,233,202,169,255, 0, 29,126, 15,191,136, 87,
-149, 25,121,110, 1,228,243,207,219,152, 31, 5,229,247,169, 87, 23,109, 55,124, 88, 75,201,109, 40,152, 3, 74,121,148,150,223,
-138,137, 98, 58, 82,149, 72,140,182, 10,202, 65, 33, 36, 10,106,247, 47, 54,118, 78,101,209,113,186,237, 94, 37,203, 26, 2,135,
- 35, 74,112, 57, 29, 43,192,234, 74,199,237,126, 77,111,252,171,174,219,103,222, 60, 43, 71,184,157, 46, 98,184, 47, 17,152,212,
-156, 70,149,165, 31, 47,255, 0,254, 31,136,152, 86, 59,230,115,143,249,159,153,221,228,108, 83,204, 14, 63,106,139,110,190,193,
-176,155,102,101,137,101, 56,253,193,235,148, 27,202,223,145, 42, 99, 82,164, 34, 67,128,186, 10, 64, 88, 43, 73, 52, 89,211, 27,
-239,158,114,223,205,101,113,105,108, 34,125,185, 42, 11,149,174,107,154, 26, 88,128, 2, 2, 12, 58, 48,232,167,249,127,251,124,
-135,110,130,254,218,242,232,205, 29,203, 64, 4, 55, 75,216,230,184,185,175, 82, 72, 37, 78, 61, 56,142, 52,131,102,252, 43,127,
- 18,174, 31,227, 38,184, 35, 21,252, 68,172, 56, 95,151, 75, 3,233, 84, 59,220, 92, 91,238, 12,227, 30,178,166, 72,144, 24, 98,
-232,165,166, 92, 38,131,166,129, 8,185, 37, 52, 59, 64, 8, 59,116,237,199,153, 92,189,186,221, 27,233, 54,114,251,183,102, 53,
- 43, 28, 81, 20,181, 16,148,255, 0, 66,241,207, 26,102,219,202,190,101,217,237, 6,223, 22,248, 35,178,102, 68, 51, 75,218,213,
- 84, 14, 85, 1,127,214, 7, 12,176,171, 61,230,195,240,142,228,111, 50, 25,135,146,220,229,254,126,110,101,239,202,236, 91, 83,
- 57, 61,223, 45,197,145,112,201, 57, 54, 92, 11,181,190,230,185,143,191, 9,232, 81,163,186,240,132, 80,104,201,237, 4,214,134,
-185,206, 87,243, 62, 46, 93,182,220, 45,197,160, 2,233, 80, 49,200,216,193,107,154,128, 16, 73, 1,122,107, 81,205,190, 82,205,
-204,247, 91,101,203,175, 9, 54,122,117, 23,181, 93, 33, 15,107,148,144, 90, 1, 58,122, 43,186,182,246, 23, 26, 12, 72,235,166,
-246, 35,180,210,169,217,185, 0, 3,174, 65, 93,178,190,127,191, 28, 31, 59,121, 70, 47,141,227, 62, 64, 60,184,170, 69,251,204,
- 95,154, 4, 68,199,178, 88,214, 7,247, 93, 49, 78, 53,201, 28, 49, 61,204,169, 36, 38, 60,140,145, 91,216, 42, 90,168,220, 68,
-190,226,246, 5,180,230,187,167,147,156,161, 20,239,126,253,184,163,109, 45, 85,192,156,156,246,226,189, 97,153,225,155,244,128,
-168, 69,121,239,207, 14,117,154, 8,227,229,221,173, 93,123,118,141,112,110,109,141,197, 19,168,201,136,199, 38, 7, 18,138, 13,
-116, 23,240,222,242, 91,139,249, 41,242,229,136,113,157,169, 12, 77,201, 28,103,239,252,247, 36, 67, 37,167,114,140,230,234,219,
-126,253, 46,135,218, 75, 77,236, 68,120,200, 61, 82,203,109,131, 85,110, 81,231, 92,243,205,179,115,166,227, 37,236,152, 55,221,
- 99,127,202,193,238,142,222, 46,233,113, 60, 48,174,157,229,247, 38, 67,200,155,100, 86, 17, 33,120,239, 72,239,243,200,125,227,
-217,193,163,131, 64,226,166,186, 12,163,180, 21, 30,192, 9,249, 53,144,173,181,124, 60,242,111, 54,121,183,231,255, 0, 60,177,
- 60,211,121,157,252, 57,124,223,242, 87, 31,113,147,207,181,192, 62, 95, 35,241,134, 79, 97,198, 48,102, 99,200, 75,145, 36,220,
-140,140,114,106, 39,201, 37,164, 73,150, 82,210, 67,207,134,247,125, 3, 45,177,175, 96,218,237, 59, 78,203,178, 29,171,109,222,
- 44,226,150, 95,223, 76,100,140,185,248, 98, 26,146, 13, 35,128,196,163, 85, 59,206, 46,175, 18, 94,111, 27,206,253,191,141,227,
-117,217, 47,166,134, 47,220, 64, 34,145,173,102, 56, 23, 44,110,212,126,211,176, 26,156,139,221,104,109, 55, 63, 18,191, 60,220,
-165,230, 11,151, 60,135,228, 89, 79,145,206,115,242,247, 59,132,121, 31, 35,190,226,216,167, 32,219,238,113,238,252,199, 58,227,
-117,195, 36,174, 5,149, 50,177,251, 99,142, 60,195,150,134, 89, 80,101,183,142,233, 45,251, 32,144, 21, 39,203,158, 74,179,216,
-172,183, 72, 96,220,173,238, 27, 52, 65,174,115, 11, 72,136, 6,202, 53, 61, 30,228, 7, 81, 56,145,131, 78, 61, 17,124,208,231,
-203,238, 97,191,218,102,159,106,185,182,116, 19, 57,205,100,129,192,204, 75,161, 58, 88,177,181, 72,210, 6, 1,216,184, 97,210,
- 15,153, 43, 92,239, 62,191,138,159,148,216, 60,225,197,249,183, 12, 89,185,155,142,184,233,119,174, 41,205, 23, 38,215,150, 89,
-113,108, 90, 70, 72,100, 91,223, 83,177, 45,210,227,253,232,237,165,250, 43,193,109, 97, 46,238, 65, 7,106,180,158, 94,185,111,
- 34,242,165,251,172, 39,100,206,130, 71,134,200,196, 45, 46,112,141, 28, 49,112, 58,117, 14, 36, 40,199,136,165,115, 45,171,188,
-194,231, 29,185,155,141,188,144, 50,120,152, 93, 19,212, 60, 53,166, 66, 90, 84, 52,141, 69,135,128, 40,229, 28, 13,118,239,241,
- 20,252, 41,124,156,181,228, 79,154,242,156, 3,134,248,247,139,243,174, 22,226,108,179,148,177, 92,199, 11,198,227, 99,151,167,
-159,227,203,115,215, 71, 97,207,145, 21, 13,187,117, 69,198, 44, 87, 35, 31,124, 83,132, 41, 97,192, 66,210, 21,174, 61,229,231,
-153, 59,195,119,171,102, 92, 92,203, 44,115, 74,216,220,215,184,184,119,220, 26,173, 7, 6,233, 36, 30,234,100,153, 87,110,243,
- 55,202,205,145,251, 13,212,150,214,145, 67, 44, 16,190, 70, 61,141, 13,119,236,218, 92,142, 33, 11,131,128, 35,188,185,174, 98,
-166, 79,192,179,154,243, 46,100,242, 1,198, 74,206,110, 82,175, 87,140, 6,227,147,241,196,107,196,233, 10,147, 54,125,135, 20,
-150,164, 91, 3,170, 87, 82, 98, 91,221,102, 40, 36,146, 82,216, 36,146, 78,170,252,230,218, 33,217,249,130,225,176, 0, 26,240,
-217, 16,100, 11,135,123,214,229,119,166,173,252,140,222,166,222,249,110,217,211,184,185,241,151, 70,167, 50,214, 30,234,246, 52,
-134,250, 43,178, 58,229,149,215,171, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43,
- 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,
-161, 66,179, 66,133, 87,159, 48,190, 99,241, 63, 45,214,188, 90,251,155, 89,114, 41,246, 44,162,102,105,107,106,231, 98, 97,153,
- 72,183,221,241, 44, 94,247,148,181, 17,214,214,235,110,173,219,180,123, 12,136,144,146,210, 84, 86,250,155, 65,166,240,117,117,
-178,236,114,111,142,123, 34,115, 67,154, 26, 80,241, 14,123, 88,189,141, 46, 4,175, 5, 60, 42, 61,197,200,182, 0,184, 96, 87,
-216, 9,246,165, 85, 25,255, 0,138,111, 6, 91,236,151, 60,149,204, 63,147, 31,176,194,198,219,189,192,155, 14,202,196,185,119,
-219,171, 48,120,218,124,235, 52, 88, 77,201, 84,213, 79,181,179,201,144,196,166, 20,208, 40, 84, 89,160,253, 79,181,162,103,151,
-247,111,120,143, 92,122,139,144,226,112, 11, 48, 14, 37, 19, 75,188, 18,133,113,212,222,154,136,119, 88,192, 84, 40,159,241,195,
-183,189,236, 52,185, 39,241, 46,225,139,125,241,139,101,207, 22,206,226,218,111, 25,221,191, 13,196, 50,166, 34,195,184,216,178,
-251,114,179, 12,175, 16,185, 95, 33,169,137, 75,116,192,179, 47, 16,153,116,148,230,202,136, 74, 67,193, 39,218, 74, 89,111, 34,
-221, 61,154,154,246, 40, 97,115,155,136, 45, 62, 27, 36, 13, 42, 61,231,120,129,160,127,153, 69, 25,220,216, 10, 16, 81, 80, 30,
-156, 72, 94,192,139,217, 75,153, 55,155,156,198,241,102,242,101,155,112,247, 28,204,201,108,254,102,115, 76,186, 15,247, 46,243,
- 54, 5,155, 36,185,226, 48, 48,220,166,255, 0,110,151, 26,123,243, 81,110,132, 29, 93,162, 52,229, 56,165, 56, 85, 28,169, 8,
- 66,157, 82, 70,154,131,150,226,137,215,177, 92,202, 26,232, 26,211,168, 2, 64,113,145,141, 32,128, 20,251,197,188, 59,216,146,
-148,167,222, 56,136,220,198,174,162,112,234, 66,126,133,236,170,177, 96,252, 92,236, 63,122,114, 34,239,156,119,123,121,182,242,
-137, 76, 96,216,140,137,214,188, 66,235, 98,178,224,184, 86, 25,117,202,160,220,110,115,238, 6,223,114,185, 49,147,228,139,135,
- 5,136,100,248,201, 41, 85, 80,132,248,138,208, 77,229,187,244,199,162, 65,238,247,156,142,112, 37,210, 72,214, 16, 0, 80,210,
-198, 43,137,203,172,225, 81, 27,188, 5, 42, 56,224, 50,200, 2,113,233, 83,133, 76,109,254, 39,248, 90,241,248,185,211,156, 37,
-202,113,248,235, 34,191,114,222, 23,199,249, 27,211,172,105,187,230,249,231, 20,203, 48,205,181,187, 71,222, 94,247,111, 77,218,
- 64, 44,197,126, 97,111,107,137, 80,121, 45,163,107,138,172, 60,131, 46,179, 15,143, 31,136,208,199, 56, 35,145,173,120, 85,212,
-136,116,140, 72, 11,134, 74,112,167,191,154,181, 53,105, 58, 74,129,150, 36,117,117,211, 2,249,248,157, 94,184,167,145,121,175,
- 7,230, 94, 31,153,110,191, 97,153, 59,207,227,248, 77,159, 47,177, 34,229,105,193,177,236, 51, 9,190, 79,109,203,156,139,139,
-112,239,183, 75,132,252,168, 46,221, 10, 26, 82, 84,130, 91, 90,144,166,138,151, 50, 46, 66,102,227, 4, 18,218,204, 11, 92,220,
- 92, 90,228, 46, 50, 72,209,221, 1, 90,208, 25,222,113,227,136, 85,193,183,110,134, 39, 57,175,110, 32,228,163, 36, 7, 62, 39,
- 28, 5, 88,203,103,158,235, 45,247,143, 51, 62, 78,177,240,215, 37,203,197, 44,252,173,255, 0,192,236, 10,108,155,133,130, 11,
-188,179,202, 82,243, 20, 97, 80,160,219, 35,155,178,230, 64,102, 77,209,230,214,169, 55, 38, 88, 8, 70,242, 82, 74, 0, 93, 36,
-156,162,232,102,101,187,231,140, 60,199,226, 56, 35,142,134,120,126, 33, 36,233, 66, 64, 92, 26, 74,148,233,194, 72,191, 14,105,
-120,105, 69, 65,150, 37, 83,167,167,166,163,249,127,137, 85,150, 5,219,147,241,153, 94, 94,249,109,204,167,132,237, 86,249, 92,
-173,110,129,121,197,223,131,140,222,111,151,251,166, 57,106,183, 49, 37,219,220,117,220,156,188, 92, 32,199, 84, 71, 35,178, 81,
-225,200, 74,222, 44,148, 45, 34,107,121, 21,239,108, 82, 11,136,244, 74, 78,130, 67,212,128,214,189,197, 52,148,210, 9, 85, 42,
-173,193, 84, 83,103,115, 0,184,104, 42,220,242,195, 18, 7, 30, 63, 77, 91,110, 16,230,249,188,181,115,229, 92, 98,255, 0,199,
-183,142, 54,205, 56,115, 48,178,225,185,134, 63,115,190, 91,242, 72,230,118, 67, 97,181,100,113, 29,137, 54,220,235,140,190,218,
-237,183,152,229, 85, 9, 41, 94,228,208,210,167, 55,187,109, 35,110,108, 50, 50, 65, 35, 37,105,115, 72, 4, 96, 28,230, 21, 7,
- 44, 90,125, 21, 50, 9,204,197,192,132, 45, 40,120,240, 7,233,164,111, 50, 89,131,184, 85,158,203,115, 74,228,219,152,158,213,
-226,200,246, 72,133,184,220, 59, 34,167, 46, 10,192,113,196, 2,134, 21, 41, 12,173,180, 60,186, 80,110, 72, 80, 43, 0,181,180,
-196,217,102, 26,242, 1,104,238, 28, 90,220, 42,154,113, 79, 53,163, 22,178, 95,114,156,138,241,154, 69,199,243,219,194,174,152,
- 45,131, 21, 48,227, 77,186,217, 33, 50, 34,174,239, 57,233,237,174, 75, 9,184,184,208, 91, 1,146,159,103,169,170,247,210,238,
-125,153,219,164,154,163, 32, 0, 49,207,209,233,250, 18,162,182,232, 91,132, 56,209, 76,247,204, 17,190,217,238, 12,224, 71, 34,
-195,242,159,187,101, 49,104,203,114,188,193,236,145, 73,150,242, 3,126, 22,199,219,113, 17,140,166,202,227,238,105, 73, 3,196,
- 42, 31, 72,150,212,149,183,151, 62, 4,137,158,117,134,144, 75, 81, 20,125, 61,156,114,164, 58,251,198, 5,163, 2,120,215, 60,
-109,188,117,204,121, 6, 77, 51, 15,178,241, 86, 82,188,146,215, 37, 80,239,144,165,177,227,174,215, 49,190,139, 65, 16,196,189,
-193, 42, 31, 61,213, 54,146, 58,133,117,214,241,219,148, 76,140, 72, 92,208,210, 20, 18, 83,213,198,168,133,187,203,139, 64, 36,
-245, 87, 93,252,143,249, 91,189,240,204, 27,254,119,200,204, 33, 60,139,148,173,112,219,137,244, 42, 22, 75, 26, 20, 8, 64,240,
- 86,234, 82, 93, 9, 66, 66, 55,168,165, 40, 5, 68,173,107, 58,231,220,203,189,183,112, 34, 40,138,176, 98, 78, 74,126,161, 87,
-219,125,153,129, 92,236,254, 97,250,107,160,122,201,213,157,101, 43,208,245, 26, 20, 43, 52, 40, 83, 15,145,184,207, 11,229,108,
-110, 86, 41,156,216,226, 94,237, 50, 65, 41, 75,233,219, 38, 27,244, 32, 61, 29,212,209,198, 28, 77,122, 45, 10, 7, 89,254,102,
-229,109,191,156,109, 31, 99,185, 66,217, 97,119, 3,152, 61, 45, 35, 22,184,112,115, 72, 35,166,180, 60,177,205, 91,135, 38,221,
-178,251,108,157,209, 76,222, 45,200,142,135, 2,161,205, 60, 90,224, 65,232,174,106,101,191,133,253,177,249,206, 61,134,114, 52,
-219,108, 5,169, 74, 68, 43,205,165, 23, 87, 89, 73,236, 72,117, 15,197, 38,158,176,117,229, 45,231,251, 53,219,110,165, 46,177,
-220, 37,133,135,236,190, 49, 42,118, 16,248,207,173,123,107,214,123, 39,247,163,185, 90, 68, 25,127,183, 69, 51,199,218,100,142,
-137,123, 65,100,131,212,148,233,227,127,195,103, 16,199,238, 49,174, 57,190, 67, 35, 44, 49, 93, 67,169,132, 24, 16,109,174,169,
- 6,163,123, 73, 91,138, 88,175,236,169,100, 30,240,117,166,228,239,237, 59, 97,229,233, 91, 61,252,178, 93,189,165, 67, 92, 3,
- 35, 81,210,192, 92, 93,216, 92, 65,226, 13,102, 57,207,251,183,223,249,138, 23, 91,237,241, 71,102,199, 4, 46,105, 47,145, 14,
-104,242, 26, 27,218, 26, 8,224, 69,116,146,193,143, 90,113,155,100,107, 69,154, 27, 48,160,197,105, 13, 52,203, 13,134,208, 18,
-216, 0,116, 20, 2,128,107,212,112,194,203,118, 8,227, 1,173,104, 0, 0, 16, 0, 50, 0,112, 2,188,173, 52,207,184,121,146,
- 71, 23, 57,196,146, 73, 82, 73,204,146,115, 38,150,180,229, 55, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 42,130,
-121,182,227, 63, 52, 57, 87, 36,113, 12,254, 4,228, 43,238, 51,199,249, 99,172,241,231,152, 24,144,178,117, 89,228, 98,120, 69,
-178,237,111,201, 27,200,241,244,110, 74,152,185,204,141,108,159,141, 56,236,112,167, 54, 92,153,124,141,176,130,147,179,229,189,
-207,110,180,182,156, 94,196,215, 74,206,252, 61,213,212,242,215, 51, 67,250, 88, 11,155, 40, 7, 5,140,183,237,214, 23,154,118,
-173,206,246,234,220,216, 76,230, 66,254,228,232,228, 45, 96,115,100,241, 35,232,121, 13,124, 36,140, 82, 86,187, 38, 87, 57,167,
-240,247,226,163,117,186,243, 43, 23, 62, 73,229,232,146,239, 57,214, 51, 26, 58,177,156,150,199,101,196,114, 12, 46,127, 43, 99,
- 55, 5,207,196,110,199, 61,122,225,143,174,197,199, 49,110, 49,100, 69, 94, 55,111,247,132, 56,182,212, 38, 72, 8,113,205,203,
-119,174, 91,137,182,250, 97,136,129, 27,189,230,188,185,175, 22,242, 13, 50, 55,193, 13,126,185,203, 8, 34, 89, 52,160, 61,198,
-168, 28,249,251, 23, 52,204,235,157,115,204, 11,164,104,238,185,129,142, 97,186,141,218,162,119,142, 92,194,203,112,246,150,152,
- 98,212, 9, 29,247, 33, 47,190,116,225, 15, 58, 87, 60,131,204,111, 31,224, 80,249,199, 55,227, 76,139,137,177, 91,127, 25,100,
- 92,131,204,214,214,162, 91,242,220, 78, 86, 28,252,107,125,149,149,229,211, 28,187, 34,121,183,220, 29,184, 78,191,218,160,202,
- 10, 47, 54,169,115,217,146,132, 51, 7,101,223, 54,152,163,179,158,224,194,201,155, 43,140,141,100, 78,197,174, 18,130,231, 31,
- 12,105, 69,104,107, 99,123,218,136, 67, 35, 45, 37,211,247,237,131,121,154, 75,219,123, 97, 60,144, 58, 22,136,221, 36,205, 64,
-230,152,136,107, 7,138, 75,131,180,188,189,210,178, 55,174,160, 95, 35, 92, 3, 77,115, 6, 13,248,146,205,205,185,249,124,117,
- 63,148,154,151,122,198,124,205,183,133,228, 49,121, 74,193,108,226,171,150, 37,127,193, 38,194,227, 75, 30, 45,102, 85,205,139,
-141,135, 35,181,102,107,133, 38,109,218,100, 56,237,209, 15,168,206,117,183, 80,219,105,218, 55, 14, 95,142, 27, 81,112, 35, 64,
-235,125,109,240,222,100, 14, 19, 3, 59,228,118,146,215,196,232,181, 6,177,174,113,197,163, 64, 32,146,189,235,109,230, 73,103,
-188, 54,198, 85,115,110,116, 59,196,140, 68, 90,232, 28, 45,217, 27, 53, 7, 50,102,205,164,186, 71, 53,163, 7, 31, 16,130, 0,
-181,222, 94,173,190,107,184, 99, 20,243, 64,206, 87,104,228, 30,106,251,142,225,103,201,124,184, 99,217,191, 36,218,175, 57, 86,
-106,185, 24, 38, 60,253,206,210,111,147,167, 39,220, 88, 94,118, 46,113,219, 85,201,196, 6,145,237, 52, 12,127, 11,118,111,122,
-159,109,222, 37,179, 49,186, 56,117, 2,217,220,198, 56, 53,159,182,120,107,180, 1,137,240,116, 19,160, 21, 57,247,150,181, 91,
- 21,190,233,178, 67,124, 36,108,147,233,112,117,187, 95, 35, 75,159,251, 8,203,155,172,187,186, 60,125, 96,107, 33, 6, 93,212,
-175,153,156, 59,202,239,227, 93,132,249,176,205,188,229, 75,242,179,136,231, 92,231,152,204,190,201,118,239,200, 57,214, 29,144,
-218,177,197,223, 54, 52, 83,106,142,198,109, 20, 69, 76, 91,123, 98, 4, 97,189, 65,184,245,105, 52, 7, 94,135,220,121,167,146,
-183, 13,170, 61,159,227,100,101,179, 19, 6, 50, 86,151,105,199,188, 76, 37, 85,221,227,210,236,107,204,187,103, 40,115,230,217,
-187,203,190,124, 4,114, 93, 73,171, 25, 36,133,193,186,176,238, 1, 48, 68,111,112,116, 55, 1, 93, 50,192,185,235,255, 0,196,
- 41,125,202,108, 88,246, 95,229,215,130,176,140, 90,235, 33, 86,203,174, 92,211,152,236,195,139, 71,150,218,219, 68,242,204,124,
-226,230,251,162, 35,138, 75,138, 67,112,221, 36, 2, 3,107,249,167,158, 95,109,156,129,111, 11,159, 5,221,196,143, 1, 67, 82,
- 65,169, 62,202,152, 90, 2,229,139,135,104,174,155,183,238,190, 99,220,204,200,238, 44,237,163,141,197, 11,214, 51,165,126,210,
- 9,220, 74, 28, 80, 53,221,134,166, 63,193,227, 6,252, 79, 48,108,175,157, 17,231,175, 39,206,111,120,165,214,225,110, 86, 29,
- 3,146,115,214, 57, 14,244,140,153,167,228,153,242,173, 50, 24,153, 60, 65,182,173,146,218, 83, 29, 46, 33,170,237, 44,180,144,
- 22, 77, 87,155, 27,151, 45,223,182,215,249, 19, 24, 30, 1,214, 88,194,193,165, 6,144,224, 64, 87,170,226,132,244,147,133, 91,
-249, 55,181,115, 78,220,251,179,204, 50, 61,204, 36,104, 18, 72, 36,118,165, 58,139, 72, 46,210,196, 76, 20, 15,242,129,141,119,
-145,118,203,123,138, 43,114, 27, 11, 82,186,149, 41,176, 73,215, 24,174,235, 92, 40,252, 95, 60,158,115,223,152,158,116,252, 59,
- 51, 78, 13,227, 95,239,126, 47,194, 60,173,149,100, 92,175,114, 99, 36,179, 99,255, 0,221,139, 53,202,241,130, 74,142,241, 98,
-231,113,133, 34,110,248,246,105,170,219, 17,183, 84, 54, 80,128, 86,128,174,203,229,127, 53,216,114,237,134,237, 13,228,186, 31,
- 60, 45,108, 99, 75,221,168,134, 76, 17, 90,210, 6, 46,111,188, 64,199,168,215, 13,243,111,147,183, 46,103,220,118,105,236, 97,
-215, 29,188,238,116,167, 83, 27,165,165,240, 16, 81,206,105,118, 12,118, 13, 4,225,214, 21, 87,241, 77,252, 60,185,123,158,166,
-112, 71,154,159, 41,183, 27,109,139,205, 63,150,247,162,185, 99,182, 92,100,179,110,139,155,227,240,101,139,140, 88,130, 68,159,
-245, 70,223,129, 56,186,166,155,146, 82,195,168,125,230,222, 80, 27,116,199,150, 60,245,105,176,199,115,181,238,173, 46,177,185,
- 29,226, 1, 37,142, 35, 73, 40, 49, 66, 17, 72, 87, 2,214,144, 51,167,252,216,242,246,247,152,165,181,221,246,119, 6,223,218,
-158,232, 36, 0,246,131,168, 5, 56, 43, 74,160,114, 52,135, 56, 56,229, 84, 47,157, 57, 91,241,178,243,191,198, 18,188,163, 93,
-252,164,226, 28, 5,101,205,147, 23, 30,229,142, 79, 85,197,112, 45,179,236, 17,220,108,190,203, 82, 30,186, 92, 76,120,146, 86,
-223,250,202, 33, 55, 41,231, 81,236, 33, 65, 5, 97,123,125,150,207,146,249, 38,224,110,140,191,125,195,153,140,113,162,149,224,
-163, 75, 85,195,129,113, 96, 7, 19,138, 38, 7,125,189,231,190,125,182, 59, 67,246,248,237,155, 39,118, 89,117, 32, 45,226, 1,
- 46,114, 52,241, 13, 15,113, 24, 12, 21,123,251,228, 75,202,205,147,201,231,150,238, 58,224,235, 52,147,113,254,233, 90, 28, 23,
-107,202,216,247,103,111,217, 37,221,247,103, 92,230,169, 27,150, 91, 18,103, 72,117, 77,182, 84,173,136,218,138,144,144,117,195,
-121,183,152,228,230,205,198,109,194, 80,134, 71, 96, 63,202,208, 0,107,125, 13, 1, 79, 18,167,141,122, 7,147, 57, 94, 46, 77,
-219, 32,219, 98, 42, 35,110, 46,203, 83,137, 46,115,189, 46, 37, 6, 40, 16,112,171,143,172,229,106, 43, 52, 40, 86,104, 80,172,
-208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,
-133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133, 70,124,167,195,252,125,205, 22,107, 6,
- 63,200,246, 22,242, 27, 70, 51,156,225,188,141,104,134,235,238, 48,219, 57, 86, 7, 53,185,246,231,151,225,169, 62, 42, 18,251,
-116,113,165,213, 14, 32,169, 11, 5, 42, 35, 83,246,253,206,109,173,206,124, 14,210, 92,199, 48,254,171,130, 31,208,115, 7, 26,
-106, 88, 91, 56, 1,193, 80,131,233, 21, 21,219,252,154,249,116,182,203,197,165,199,227,200, 75, 56,111, 40,114,135, 48,216, 99,
- 74,152,252,187,124,108,223,152, 99,205,139,124,117,113,220,113, 76,186,203,204, 78, 82, 25,140,164,150,218,216,215,134,148,248,
-104,165,131,249,158,245,225,224,200,123,209,178, 51,146,233,140,130,220,122, 84, 98,115, 42, 87, 58,104, 89, 70, 19, 12,137, 62,
-147,157, 36, 55,228,111,203, 67,120,214, 15,137,255, 0,240,252, 59,102,227,190, 32,228, 78, 12,197,219,145,121,153, 34, 84, 94,
- 59,229, 70,153,106,245, 29,215,214,242,157,125,233, 41,104,148,201,112,151, 16, 86,225, 66,129,113, 85,112,243,101,249,124,146,
-120,157,231,202,201, 29,128,247,217,238,148,224, 7, 70, 69, 2,229, 73,248, 24,144, 4,192, 52,129,216,115,163,151,239, 38,188,
- 49,125,137,136, 67, 75,156,145,142,163,143,164, 99,178, 48, 39,240,206, 88,200,112,233,184, 74,177,140,101,236, 66, 50, 45, 47,
-219,174, 17,221,183,182,187, 11,238, 48,251,108,169, 41,116,169, 74,112, 41, 74, 81, 41,135,153,238,161, 47, 63,179,118,181,213,
-169,140,118,165,127,136,117, 2, 10,247,130,133,203,133, 27,172,152,228,204, 38, 72, 72, 68, 9,135,162,155, 54,191,195,255, 0,
-203, 54, 56,226, 37,225,120,222, 99,199,215,150, 31,105,200,153, 63, 31,114,158, 75,133,101,209, 35,155, 21,159, 29,147, 24, 93,
-109,215, 70, 46, 14, 51,112,183, 88, 96,170, 98, 29,117, 94, 43,237, 38, 82,235, 32,120,186,145, 39, 57, 95,207,132,174,107,219,
-208,246, 49,205,247,156,240,116,150,144,160,185,200,131, 0,116,142,238, 20,145,183,196,223,116, 16,122, 65, 32,228, 7,208, 62,
-124,233,102, 87,145,191, 45,179,176,155,103, 29,206,194,238,115,177, 27, 61,247,149, 50, 91,125,186,110, 99,119,151, 41,155,223,
- 50,153,106,189,201, 51, 92,154,169,235,113,110, 77,113,200,238,169,226,182, 87,181,109,168, 45, 33, 65,166,243,101,243, 37, 51,
-135,128,242, 24, 9, 13,110, 81,166,144,136,137,134, 33, 16,140, 14, 20,102,194, 34,221, 36, 96,164,230,120,231, 73,145,252,135,
-240, 52, 59,157,203, 35,133, 47,153,160,230,151,171,133,202,125,235,144,224,121,129,205, 96,114, 45,229, 23,187,109,154,211, 58,
- 44,171,227, 55,196, 92,159,141, 42, 38, 61,110,172,117,188, 80,218,152,109, 76,134,202, 19, 69,187,155,175, 28,208,194, 34, 44,
- 0, 0,195, 20,101,129, 11,156, 8,110,148, 4, 23, 59, 20, 82,165, 86,136, 88, 70, 10,247,151,167, 81, 94, 3, 53,234, 20,190,
-143, 37,188, 4,140, 90,245,132,139, 30, 83,253,214,190,204,201, 46,242,109, 3,145, 47,168,110, 38, 69,147,101, 13,230, 46, 93,
-226,186,155,128,145, 26,225, 19, 33,105, 18, 98, 78,109,192,243, 52,218,133,132,146, 11, 39,154,111, 12,141,151, 83,117,128, 2,
-232,110, 65,158, 30,147,130, 22,150, 96, 91,145,226, 41, 95, 3, 26, 22,161, 78,211,210,171,218,188,105,175,114,242, 47,194,144,
-112,174, 95,178, 97,216,235,106,201,249,127, 0, 56,110, 79,127,228, 92,143, 33,206, 19,146,204,137,118,187,228, 17,110, 23,119,
-197,234, 37,226, 76,148,222,175, 82, 36, 42, 91, 19,154,125, 63, 70,150,220, 74, 89,109, 41,144,206,109,186,124,176,190, 87,119,
- 98,126,166,134, 6, 53, 59,173,105, 13, 26, 75, 64,210,208, 16,180,140,212, 98,105, 6,193,129,174, 13, 24,184, 33, 85, 60, 73,
-199, 21,204,244,211,151,202,151,150,251,191,151,187, 87, 38, 74,202,243,217,156,137,155,114,206,126,214,119,147,222,164, 73,187,
-205,143, 17, 86,235, 61,174,199, 10, 35, 50, 47,247,139,245,230, 87,133, 10,212,218,150,236,153,202,246,148, 82,218, 26,105, 45,
-182,150, 57,135,124,110,242,232,132,113,134, 71, 27, 52,180,119,120,184,184,148,107, 90,209,139,178, 13,237, 36,169,165,218, 91,
- 27,112,229, 42, 73, 94, 61, 9,196,147,195,166,173, 13,202,215,110,188, 68,114, 5,214, 12, 91,132, 39,169,226, 70,150,202, 95,
-105, 68,118, 26, 40, 26, 17,220, 71, 81,221,170, 8,228,116, 71, 83, 73, 6,165, 16, 29,129,174,109,243,183,148,126, 65,123, 44,
- 85,243,135,149,110,184, 99,119, 38,155,221,138, 93, 3, 73, 86, 45, 37,160,119,162, 27,175,220, 33, 36,197,121, 71,196, 75, 68,
-168,161,101, 64, 81, 5, 32,108, 54,141,253,145, 71,162, 98,135,165, 9, 95, 87, 26,171,186,179,115,138,179, 26,105,113,127,146,
-158, 68,188,229,144,103,115, 25,129,110,198, 45, 15,162,115,118,187, 91,145,247, 77,125,191,154,144, 25,157, 61, 69,117,236,117,
- 78, 36, 32, 84,161, 27,232,177, 34,251,153, 34, 99, 63,100,117, 63,134, 4, 1,215,142,125, 84,136,108, 92, 79,124, 32,174,170,
-195,133, 14,223, 29,168,144, 99, 51, 22, 51, 13, 50,195, 76,176,216,109, 8,105,132,132, 33, 61, 63,117, 9, 0,122,181,134,115,
-203,202,146,166,173,192, 76,168,214,147, 71, 89,161, 66,185,251,255, 0, 53,124,143,255, 0, 5,194,191,171,167,127,105,107,209,
-191,210, 45,179,241,103,251,204,252,186,224, 95,213, 45,203,240,225,251,175,255, 0,157,120,124,214,114, 63,252, 23, 10,254,174,
-157,253,165,161,253, 34,219, 63, 22,127,188,207,203,164,159, 53, 55, 33,252, 56, 62,235,255, 0, 50,181, 62,107,121, 35,254, 11,
-133,127, 86,207,254,210,209,255, 0, 72,118,191,197,159,239, 51,242,232,127, 85, 55, 47,195,131,238,191,243, 43, 63,230,183,145,
-255, 0,224,184, 87,245,108,255, 0,237, 45, 15,233, 14,217,248,179,253,230,126, 93, 23,245, 83,114,252, 56, 62,235,255, 0, 50,
-189,255, 0,154,222, 71,255, 0,130,225,127,213,179,191,180,180, 63,164, 59,103,226,207,247,153,249,116,127,213, 77,203,240,224,
-251,175,252,202,243,254,107,121, 31,254, 9,133,255, 0, 86,206,254,210,208,254,144,237,159,139, 63,222,103,229,208,254,170,110,
- 95,135, 7,221,127,230, 86,127,205,111, 36,127,193,112,175,234,217,223,218, 90, 31,210, 29,175,241,103,251,204,252,186, 47,234,
-166,229,248,112,125,215,254,101,103,252,214,242, 71,252, 23, 10,254,173,157,253,165,165,127, 72, 54,191,197,159,239, 51,242,232,
-127, 85, 55, 47,195,131,238,191,243, 43, 63,230,183,146, 63,224,184, 87,245,108,239,237, 45, 31,244,127,107,252, 89,254,243, 63,
- 46,135,245, 87,114,252, 56, 62,235,255, 0, 50,179,254,107,121, 35,254, 11,133,127, 86,206,254,210,208,254,143,237,127,139, 63,
-222,103,229,209,127, 85,119, 47,195,131,238,191,243, 43, 63,230,183,146, 63,224,184, 87,245,108,239,237, 45, 15,232,254,215,248,
-179,253,230,126, 93, 31,245, 87,114,252, 40,126,235,255, 0, 50,188,255, 0,154,222, 72,255, 0,130,225, 95,213,179,255, 0,180,
-180, 63,163,251, 95,226,207,247,153,249,116, 95,213, 93,203,240,224,251,175,252,202,207,249,173,228,131,254,229,194, 79,255, 0,
-118,206,254,210,208, 62, 79,237,127,139, 63,222,103,229,208,254,170,238, 95,135, 7,221,127,230, 86,233,243, 79,200,170, 32,155,
- 30, 16, 79,167,238,201,213,255, 0,222, 58, 65,242,135,107, 31,197,159,239, 51,242,233,109,243, 75,114, 63,195,135,238,191,243,
- 40,227,126,103,185, 13,206,166,199,133,215,255, 0,102, 77,175,254,241,211, 47,242,155,108,111,241,103,251,204,252,186,144,223,
- 51,119, 23,127, 14, 31,186,255, 0,249,209,228,249,148,228, 21, 82,182, 92, 55,119,254,204,154, 79,254,241,212,115,229,102,216,
- 63,137, 63,222,103,229,211,195,204,141,196,255, 0, 14, 31,186,255, 0,249,209,232,126, 97,185, 38,115,201,143, 22,193,137, 58,
-234,250, 4, 34,217, 52,147,255, 0,245, 13, 70,184,242,219,105,181,105,124,147, 76, 7,235, 51,242,234, 68, 30, 96,110,119, 14,
-210,200,162, 39,245, 95,255, 0, 58,115, 57,202,188,184,212,114,250,241,156, 52, 81, 59,138, 62,237,150, 86, 7,193,247,134,179,
-237,229,190, 95,123,244, 11,137,190,243, 63, 46,175,206,249,190, 6,107,240, 34,245, 59,254,116,203,149,230, 55,145, 98, 44,161,
-220,127, 13,109, 73, 36, 81,118,169,128,212,127,247,128,214,162,223,202,253,166,224, 43,102,152,255, 0,185,159,151, 89,185,252,
-196,220,237,202, 58, 40,129,253, 87,255, 0,206,146,156,243, 69,200,172,146, 81, 99,194, 18,122,245,251,178,104, 63,154,229,169,
-236,242,139,107,119,241,103,251,204,252,186,128,255, 0, 52,119, 38,255, 0, 14, 31,186,255, 0,204,162,139,243, 95,201, 41, 52,
- 22, 92, 35,227,182,207,254,211,212,134,249, 57,181, 31,226,220,125,230,126, 93, 70,119,155, 27,155,127,133, 7,221,127,230, 80,
-127,243, 95,201, 43,232,171, 30, 14,125, 21,181,206, 63,255, 0,115,210,191,163,123, 87,226,220,125,230,126, 93, 32,121,181,185,
-254, 20, 31,117,255, 0,153, 67,167,205, 95, 36,168, 83,238, 76, 34,158,143,187, 39, 83,255, 0,121,105,179,228,246,212, 63,139,
-113,247,153,249,116,224,243, 95,115, 63,195,131,238,191,243, 43, 67,230,131,144, 82,173,255, 0,221,252, 19,119,239, 11, 84,218,
-255, 0,239, 45, 36,121, 63,181, 31,226,220,125,230,126, 93, 47,250,169,185,126, 28, 31,117,255, 0,153, 94,171,205,119, 37, 39,
-178,203,132,127, 86,207,254,211,210,199,147,187, 81,254, 45,199,222,103,229,210, 15,154,251,152,254, 20, 31,117,255, 0,153, 65,
- 31, 54, 92,150, 63,220,152, 71,245,108,255, 0,237, 61, 44,121, 53,181, 31,226,220,125,230,126, 93, 50,239, 54,247, 54,255, 0,
- 10, 15,186,255, 0,204,175, 7,155, 62, 75, 63,238, 76, 35,250,182,127,246,158,140,249, 53,181,126, 45,199,222,103,229,210, 63,
-171,187,159,225, 65,247, 95,249,149,184,243, 99,201, 63,240, 92, 35,250,182,127,246,158,146,124,155,218,191, 22,227,239, 51,242,
-232,127, 87,183, 63,194,131,238,191,243, 40, 79,249,174,228,131,254,229,194,127,171,103,127,105,105, 63,209,221,175,241,110, 62,
-243, 63, 46,135,245,119,115,252, 40, 62,235,255, 0, 50,132, 30,106,249, 28,143,228,216, 87,245,108,239,237, 45, 32,249, 61,181,
-254, 44,255, 0,121,159,151, 71,253, 93,220,255, 0, 10, 15,186,255, 0,204,173,191,230,175,145,191,224,184, 95,245,116,239,237,
- 45, 15,232,246,215,248,179,253,230,126, 93, 15,234,238,231,248,112,125,215,254,101,122, 60,213,114, 49,255, 0,115, 97,117,255,
- 0,217,211,191,180,180, 71,201,253,172,127, 22,127,188,207,203,161,253, 93,220,255, 0, 10, 15,186,255, 0,204,161, 7,154,126,
- 69,239,179,225,127,213,211,191,180,116,131,229, 14,217,248,179,253,230,126, 93, 31,245,115,115,252, 40, 62,235,255, 0, 50,182,
- 30,105,185, 22,191,201,176,207,234,233,223,218, 58, 31,210, 29,175,241,103,251,204,252,186, 31,213,205,207,240,160,251,175,252,
-202,219,254,105, 57, 23,254, 13,134,127, 87,205,254,209,209,127, 72,182,207,197,159,239, 51,242,232,255, 0,171,155,159,225, 65,
-247, 95,249,149,231,252,210,242, 39,125,155, 12,254,175,157,253,163,161,253, 34,219, 63, 22,127,188,207,203,164,255, 0, 87, 55,
- 63,194,131,238,191,243, 40, 65,230,139,145, 15,251,159, 13,254,174,155,253,163,164,255, 0, 72,246,207,197,159,239, 51,242,232,
-255, 0,171,155,159,225, 65,247, 95,249,149,176,243, 65,200,103,253,205,134,255, 0, 87,205,254,209,210, 79,148,155, 96,254, 44,
-255, 0,121,159,151, 71,253, 92,220,255, 0, 10, 15,186,255, 0,204,161,147,230,119,144,143,109,159, 15,254,175,155,253,161,164,
- 31, 41,182,193,252, 89,254,243, 63, 46,149,253, 91,220,191, 10, 15,186,255, 0,204,161, 7,153,190, 64, 63,238,140, 67,255, 0,
- 1, 55,251, 67, 73, 62, 84,109,191,137, 63,222,103,229,209,143, 54,183, 47,195,131,238,191,243, 40, 81,230, 95, 62, 61,182,156,
- 67,250,190,111,246,134,144,124,169,219,127, 18,127,188,207,203,163, 30,108,238, 71,248,112,125,215,254,101, 8, 60,202,231,167,
-253,211,136,255, 0,224, 38, 15,255, 0,159,210, 79,149,123,119,226, 77,247,153,255, 0, 10, 87,245, 99,114,252, 56, 62,235,255,
- 0, 50,132,255, 0,153, 44,243,254, 19,137,127,224, 38,127,183,233, 63,210,205,187,241, 38,251,204,255, 0,133, 31,245, 95,114,
-252, 56, 62,235,255, 0, 50,176,121,146,207, 79,251,167, 18,255, 0,192, 76,255, 0,111,209,127, 75,118,239,196,155,239, 51,254,
- 20, 63,170,251,143,225,193,247, 95,255, 0, 58,216,121,144,207, 59,237, 56,151,254, 6,103,251,126,139,250, 93,183,126, 36,223,
-121,159,240,163,254,171,110, 63,135, 7,221,127,230, 86,195,204,134,118, 77, 62,234,196,255, 0,240, 51, 63,219,244, 95,210,237,
-187,241, 38,251,204,255, 0,133, 31,245, 91,113,252, 56, 62,235,255, 0, 50,183,255, 0,152,220,239,254, 21,137,255, 0,224, 38,
-127,183,232,191,165,251,119,226, 77,247,153,255, 0, 10, 63,234,174,227,248,112,253,215,255, 0,206,183, 79,152,188,236,255, 0,
-186,177, 79,252, 12,207,246,253, 36,249, 99,183, 15,226, 77,247,153,255, 0, 10, 49,230,166,227,248,112,253,215,255, 0,206,135,
- 79,152,124,225, 93,182,188, 87,255, 0, 3, 47,253,187, 77,159, 44,246,241,252, 73,190,243, 63,225, 78, 15, 52,183, 19,252, 56,
-126,235,255, 0,231, 70, 19,230, 7, 54, 63,238,188, 95,175,162, 20,191,246,221, 52,124,182,176, 31,196,155,214,223,248, 83,173,
-243, 59,112, 63,195,135,238,191,254,116, 97, 60,249,154, 30,219,102, 51,255, 0,130,149,254,219,166,207,151, 54, 3,248,146,250,
-219,255, 0, 10,117,190,101,238, 7,248,112,253,215,127,206,141, 35,157,115, 37,118,219,113,175,138, 28,175,246,221, 50,239, 47,
-108, 71,219,151,214,223,248, 83,236,243, 26,253,223, 98, 47, 83,191,231, 70,145,205,249,114,187,109,248,231,197, 18, 79,251,102,
-154, 60,129,100, 62,220,190,182,255, 0,194,164,179,204, 11,215,125,136,189, 78,255, 0,157, 63,113, 94, 64,201,239,169,117,233,
- 81, 44,204,176,217, 9, 30, 4,103,210,165, 40,255, 0,165, 37, 67, 88,238,101,217,173, 54, 93, 45,141,207, 46, 61, 36, 34,122,
- 26, 43,160,242,173,253,206,248,215, 73, 48,104,104,195,186, 8,249,201,167,191,247,146, 90, 71,182,220, 90,143, 66, 20, 7,254,
-147, 88,179, 47, 69,109,155,183,135,100,191, 47, 69, 1,253,233,156,165, 81,182, 34,158,180,161, 66,201,255, 0,210,105, 38, 99,
- 82, 70,210,192, 21,196,251, 62,170, 51,247,245,201, 37, 37, 77, 67, 9, 35,175,176,189,223,250, 77, 23,140,105,159,129,136,228,
- 92,190,143,170,132, 85,254, 88, 65, 41, 68, 85, 43,208, 16,163,215,255, 0,203,210,155, 41,113,166,254, 5,171,199,229,232,173,
- 17,144,204,237,117,168,201, 7,176, 4, 42,191,254,126,157, 14, 83, 65,214, 13,224, 79,203,209, 67, 34,251, 41,192, 74, 91,143,
- 78,239,101, 95,254,158,144,247,233, 56, 82, 13,147, 91,153, 52, 32,187, 79, 63,177, 23,255, 0,217,174,191,250, 77, 35,198, 52,
- 95, 13, 31, 95,179,234,162, 15,223, 47,104, 39,194, 98,222,180,211,181, 77, 56, 15,254,151, 70, 37,169, 12,179,129,195, 18,239,
-103,213, 68,255, 0,188, 57, 29,105,238,214,186, 82,181,240,156,255, 0,247,218, 95,136, 41,207,128,131,165,222,207,170,185,129,
-238,107,244,126, 95, 46,189,169,227,138,241,119,129, 94,123,162,143,119,229,242,232,252, 97, 69,240,235, 94, 24, 74,253,223,203,
-229,208, 19,138, 47,134,173,125,197, 95,186,127, 47,143, 74,248,138, 47,133,175, 68, 21, 1,243,127,203,250,116, 95, 16, 40,254,
- 26,182, 76, 51, 95,155,250,180, 70,122, 31, 12,181,183,185, 31, 64,249,116,159, 30,129,182, 90, 12,195, 61,201,252,218, 88,159,
-174,139,225,235,195, 12,142,239,205,253, 58, 87,143,215, 68,109,235,193, 19,175,103,230,209,252, 69, 23,195, 80,158,231, 95,217,
-166,135,143,215, 71,240,233, 90,152, 68,254,206,143,199,162,248,106,221, 48,127,135,252,186, 35,113, 70, 45,169, 65,152, 3,189,
- 63,151,203,168,210, 92, 84,134, 91, 83,219, 31,198, 30,185, 60,132, 37,162, 80, 84, 55, 31, 87,203,172,214,241,189,178,193,132,
-147,141, 95,237,155, 59,175, 28, 0, 21, 63,218,184,222,217, 21, 13,173,200,233,121, 68, 2, 67,130,191,175, 92,115,115,231,169,
-229, 36, 53,201,217, 93, 95,109,228,184, 88, 1,112, 90,121,194,197,236,214,233, 9,151, 30, 11, 76, 60,148,211,114, 19,215,244,
-235, 37,119,205, 23, 55,108, 49,190, 66, 91, 90,171, 94, 88,130,221,225,236, 96, 14,161,103,173, 7,125, 69, 1, 20,165, 59,181,
- 85,109, 43,156, 85,107, 69, 37,168, 99, 18,163, 12,131, 26,181, 92,227, 63,226, 36, 54,250,129, 40,113, 3,218, 7,229,215, 71,
-216,121,150,226,198, 70,161, 86,244, 87, 61,223,121,102, 27,214, 59, 4, 61, 53, 94,175,118, 47,112,125, 77, 87,122,122,209, 93,
-159,175, 93,203,105,221,190, 53,154,178,174, 37,186,109, 63, 4,253, 52,211,122, 0,175,103,235,253,122,208, 50,230,179,242, 90,
-208, 41,134, 18,123, 52,179, 58,211, 34,217, 40,198, 71,204,126, 88,240, 38,172,150,174, 81, 95, 32, 96, 55, 73, 81,155, 66,178,
- 68, 88,223,200,113, 27,188,148,116, 90,219,149, 17, 18,125,212,147,243,154,125,180, 20,247, 21, 39,218, 60,127,153,183,190, 99,
-217,174, 30,232, 60, 23,194, 73,210,163, 20,224, 15,121,165, 71,167,166,187, 63, 41,114,142,205,204,118,237,253,231,140, 0, 15,
- 1,216,175, 74, 16,112, 60, 8,236,206,145, 91,231, 15, 39, 55,249,140, 90,241, 62,121,199, 29,186,201,115,194,139, 14,249,118,
-110,198,252,149,168, 80, 37, 8,150,203, 5, 71,119,112, 61,117,147,103,154, 27,245,171,150,123,104,156,209,154, 7, 15,104,115,
-147,213, 90,233,252,154,178,115, 22, 51, 59,122, 9, 66, 63,233, 31, 61, 45, 92,162,196,130, 82,181,205,136,184,206,145,238,211,
- 82,250, 12, 73, 40, 89,162, 74, 28, 10, 45,157,221,195,117,117,208, 57,123,205,109,191,119, 70, 76,176,201,208,239,119,208,225,
-135,222, 13,174,109,191,121, 93,127,181, 43,162, 2,102,127,167,222, 29,173, 56,253,213,162,138,137,215,176,252, 98,159,175, 93,
- 50, 59,145, 32, 14,105, 4, 28,136,174, 99, 53,169, 97, 33,193, 8,204, 86,162, 31,171, 75, 51,212, 99, 5, 10,152, 93,123, 59,
- 52,131, 61, 39,192,163, 2, 23,164,124,154,108,220, 82,190, 30,183, 16,199,163,243, 83, 73,241,232,120, 21,239,185,250,191, 47,
-151, 69,227,208,240, 43,207,116,245,126, 95, 46,143,198,164,248, 20, 42, 98,215,187, 72, 51, 80,240,104,100,196, 62,141, 32,205,
- 74,240, 40, 81, 18,189,223,151,203,164,120,212,161, 13, 8, 32,122, 71,229,242,233, 63, 17, 71,240,244, 39,185,143, 71,229,242,
-233, 30, 61, 31,195,208,137,136, 7,119,230,210, 76,203, 69,224,165, 8, 35, 83,187, 73, 50,209,248, 85,184,142, 43,217,164,248,
-180, 60, 42,220, 71,167,113,249, 52, 94, 37, 23,133, 66, 37,143, 85, 52,131, 37, 15, 10,140, 33,129,222, 63, 94,154, 50, 83,130,
- 42, 20, 69,235,217,164,248,180,126, 13, 10, 34,250,180,131, 53, 40, 67, 66, 38, 39, 94,163, 73, 51, 82,132, 20, 39,186,159, 71,
-233,210, 60,106, 63, 0,208,168,139, 78,237, 33,210,211,141,134,140, 34, 55,171, 77,186, 90,117,176,209,198,227, 83,187, 76, 58,
- 85,167,219, 21, 29, 67, 30,173, 48,233, 42, 75, 99,163,173,177,217,211, 76, 58, 74,146,198, 82,196, 8, 94, 60,134, 90, 35,162,
-148, 63, 54,171,238,238,124, 22, 57,221, 2,175,118,123, 47,140,157,145,244,154,159,236, 81,217,183, 91,210,211, 66,132,141,235,
-245,168,252,122,225,155,229,227,175,230, 50, 56,245, 10,244,150,209,183,182,194, 38,196,192,157, 52,162,148, 61, 41, 85, 72, 33,
- 62,158,237, 80,184,214,132, 57,176, 12,115,165,104,177, 81, 28,133,172,138,129,217,249, 29, 32,154,133, 60,230, 92, 5, 3, 45,
-255, 0, 17, 69, 45,246,246,116,209,128,180,168, 35,208, 20,208,109,125, 21, 10,213, 82,107,219,167, 64,225, 78, 63,246,153, 86,
-202, 5,245,123, 53, 9, 29, 9,255, 0, 38,150,186, 5, 33,164, 70, 49,165, 4,169,182, 80, 7,163,167,199,166,115,168,197,166,
- 82,180, 39,188,166,157,160,124, 99,252,186, 26,105, 30, 9,175, 60,118,143, 66,160,107,210,181,208, 67, 69,160,138,247,198,103,
-178,190,174,223,233,209, 33,163,208,107,157,194, 1, 35,179,245,126,189,122,255, 0,226,171,201,230,214,179,220, 15,163,242,249,
-116,127, 21, 69,240,213,239,184, 31, 64,252,190, 61, 31,196,208,248,122,207,112, 62,129,249,124,122, 31, 19, 67,225,235, 67, 4,
-246,109,252,190, 93, 24,184,162, 54,245,231,185, 83,187,242,249,116,126, 61, 16,182, 74,244,194, 63,187,249,191,167, 69,227,209,
-252, 61,104, 97, 30,225,249,124,186, 80,158,147,240,203, 90, 24, 42, 61,160,104,197,197, 23,195,214,233,183,159,221,252,190, 93,
- 17,185,160, 45,232, 97,111, 80,236, 79, 79, 94,145,241, 93,116,127, 15, 88, 96,245,249,186, 88,186,164,252, 61,120, 33,144,170,
- 4,232, 27,129, 67,192, 74, 84,183,219,149, 33,244, 50, 19, 66,162, 7, 93, 65,187,188, 16,180,187,162,165, 91, 90, 25,156, 27,
-211, 86,131, 16,198,153,183,197, 97, 75,108, 21,148,133, 18, 71, 82, 78,184, 7, 52,115, 3,174,228,112, 7, 10,237,124,187,177,
-182,213,128,145,141, 72,161, 8, 0, 0, 59, 7,167, 88, 23,202, 93,153,173,164,108,211, 68,101,188,132, 36,128, 58,211, 69, 24,
-213, 82,152,116,227, 77, 9,175, 5,110, 20,244,234,242,210,220,132, 53, 26,230,240, 16,148,221,122,138,168, 34,160,215,167,167,
- 87,241, 52,177, 8,170, 41, 37, 15,192,211, 54,239,141, 68,156,135, 92,236,116, 2, 82, 61,127, 46,182, 59, 71, 50,203,102,224,
-211,149,100,119,142, 94,138,245,165,195, 58,136, 39,218, 87, 25,213,182,180,118, 18, 18,125, 32,124,122,235,118, 59,139,110,152,
- 28,211, 92,150,251,110,117,171,139, 92, 41, 40,192,239,218, 70,172,133,197, 86, 24, 41, 11, 35,195,236, 89, 85,170, 69,155, 33,
-181, 68,186,219,100,164,135, 35, 75,104, 56,144,174,229, 39,189, 36,122, 70,152,185,142, 59,214, 24,228, 10,211, 82,236, 46,166,
-219, 37, 19, 64,226,215,142, 35,229,141,113,227,205,151,148,116,227, 62, 29,226,210,145, 46,195, 50, 81,102, 26,146,216, 15, 68,
-121,117, 80, 97,193,184,168,251, 32,209, 67,161,245, 30,154,227, 60,201,176, 73,177, 63,196,140,151, 68,238, 60, 65,232, 63, 65,
-175, 85,249,113,230, 68,123,203, 60, 9,198,153, 90, 49, 28, 8,233, 31, 72,174,119,171,144,185,143,132,102,152,152,118,119,152,
- 89,237,168, 52,114,198,169,238, 76,176,184, 19,208,167,220,228, 23, 35,164, 40,116,170, 82, 15,175, 89,216,227,142,243,247,140,
-105,235,227,235,206,186,205,196, 22,151,227, 86,144, 29,210, 43,163,190, 83,188,224,100,151, 23,113,216,121,132,230, 37,227, 87,
-139,188,107, 37,221,183,211,177,252,102,237,112,246, 24,125,175,106,141, 48,235,164,111, 64,246, 71, 85, 0, 13,107,177,229,141,
-221,219, 28,226, 18,227,224,187,129, 56, 14,177,208,156,122, 71,162,184, 39,153, 60,145, 22,227, 11,230,137,169, 51, 1, 32,143,
-180,156, 15, 74,140,171,177,141,198, 73,238,168, 61,126, 29,118, 55, 77, 94, 94, 17, 45, 27, 76, 33,220, 63,203,250,116,209,158,
-148, 32,161,132, 47, 86,155,241,232, 24, 43,111,115,245,126, 95, 46,139,199,160, 32,173,132, 32,123,191, 94,139,199,163,248,122,
-223,220, 64,238,252,190, 93, 39,226, 40, 27,106,217, 48,127,135,242,249,116, 70,226,147,240,212, 40,133, 78,239,203,229,210, 76,
-244, 62, 30,183, 17, 7,163, 73, 51, 82,188, 10, 24, 68,245,126, 95, 46,155,241,168,252, 10,247,221, 61, 90, 30, 53, 3, 5,103,
-186,127, 14,135,141, 69,224, 86,194, 47,168,126,141, 23,141, 67,225,235,223,117, 31,151,249,244, 94, 53, 15,135,173,132, 79, 87,
-229,242,232,188,106, 30, 5,108, 34,211,187,242,249,116, 70,101,161,224, 80,232,140, 61, 26,108,203, 74, 16, 81,132, 71,245,124,
- 90,105,210,211,162, 10, 24, 70,245,126,125, 35,197,165, 11,122, 21, 49,135,112,210, 12,180,177,111, 67, 38, 48,244,126,189, 32,
-203, 75, 22,244, 58, 98,252,154,108,205, 75, 22,244, 97, 49, 41,221,166,140,212,224,183,163, 9,139,234,211,102,106,116, 91,209,
-148,196,167,118,154, 51, 83,130, 10, 50,220, 99,232,211, 46,150,158,100, 20,179,110,109, 77,201,101, 73, 2,187,192,165, 43,219,
-170,251,210, 36,141,192,228,149,160,217, 3,160,184,141,205,205,106,104,180, 54, 93,162, 9,233,181, 53, 21,248, 53,195,111,220,
-143, 34,189, 36,199, 6, 70, 29,197, 41,220,150, 3, 77,208, 80, 83,184,119,106,180,149,168,134,109, 71, 26, 79,124,171,175, 83,
-242,232,192,169, 49,184, 26,214, 51, 96,239, 81,234,174,208, 52,170, 19,191, 42,211,193, 37,100,172,119,158,132,210,154,116, 20,
-165, 9, 64, 8, 43,103, 36, 54,194,118,212,116,232, 58,233, 40,166,156,100, 70, 82,180,156,237,197,190,194,177, 80, 9,237,233,
-250,116,227, 99, 53, 36, 91,150,210, 52,203,178,144,217, 82, 22,147, 78,225,219,250,116,235, 99,233,167,197,186,240,164, 84,228,
- 75,109,105, 10, 38,149,234,107,253, 58,115,193, 90, 89,181, 6,140,127,121, 71,137, 90,154,122, 43,223,242,233, 62, 1,161,240,
- 99, 74, 85,105, 16,207,163,243,107,210,134,122,242,119,129, 91,251,159,168,124,186, 30, 61, 23,129, 91,123,167,240,143,151, 71,
-241, 20, 62, 28, 87,134, 39,240,254,157, 24,154,139,192,160,204, 90,254,206,150, 38,162,240, 43, 67, 19,213,249,124,186, 87,141,
- 73, 48, 86,158,235,214,148,232, 59,116, 12,233, 67,192,173,189,208, 17,217,250,191, 94,136, 76,104, 24,107,116,194, 21,236,253,
-122, 35, 61, 23,195,209,198,109,171,117, 65, 40, 73, 42, 52,236, 21,237,211, 18,222, 8,194,147, 78, 50,200,200, 80, 10, 95,111,
- 16,184, 56,128,189,128, 3,217, 94,223,211,170, 41, 57,162,222, 50,139, 87, 49,114,204,210,133, 2,188,119, 14,185,182,128,231,
-130,149,167,175, 97,235,250,116,136,249,190,209,238,211,173, 13, 56,254, 81,186, 13,213,161, 69, 35, 57,103,117,179, 71, 25, 90,
- 77,125, 21,253,122,186,139,114,100,161, 90,224,106,166, 93,170, 72, 74, 57,166,156,216,140, 8,233,186, 50,169, 1, 37, 9, 32,
-251, 94,159,151, 84, 60,205,118,255, 0,134,118,140,234,227, 96,177,105,156,106,171, 32,198,192,129,183,230, 1,236,211,178,154,
-243,220,239, 46,113, 92,235,180, 69, 16, 96, 0, 86,235,114,157, 65,248,117, 24,154,146,214, 82,100,164, 21, 36,168, 26,158,189,
- 53, 38, 7, 33,164,203,146, 83,106, 67, 11,169,170, 78,175,225,156, 37, 84,190, 34, 77, 34,188,201, 4,250, 14,173, 33,156, 58,
-161, 75,110, 90,104,169,142, 87,210,149,211,230,112,220,105,182,192, 93, 73, 83,241,116, 92, 91,246,210, 16,160,106, 22, 7, 81,
-249,245,111,182,115, 67,246,215, 97,136,232,170,189,203,150,153,184, 55, 28, 15, 77, 32,200,192,218, 13,130,212,132,151, 8,249,
-167,211,242,235, 73,111,207,250,157,222,110, 21,154,159,145, 16,119, 78, 52,207,159,141, 74,137,187,114, 9, 72, 52,220, 59, 63,
- 78,181,150, 28,209, 5,230, 1,216,214,106,251,149,230,180,196,133, 20,196,201, 49, 11, 70, 77,107,151, 99,191,219,163,220,173,
-147, 91, 83,111,197,146,138,142,163,162,146,160, 66,155, 82,123, 82,180,144, 65,234, 8, 58,190,123,227,188, 97, 99,192,115, 79,
- 3,136,170,104, 91, 54,221, 32,146, 39, 22,188,100, 70, 21,204,174,126,242, 89,103,183,219,174, 25, 13,145,185,119,123, 28, 84,
- 42, 76,132, 73,172,187,197,153,132, 2, 86,167, 84, 19, 89, 44, 34,149, 46,252,244, 14,171, 10, 1, 75, 28,199,152,249, 78, 75,
- 32,110, 44,113, 96,197,204,226, 58,199, 72,234,206,187,167, 37,121,146, 46, 8,181,191, 64,243,131, 95,147, 73,235, 28, 15,176,
-245, 87, 56, 25,198,162,225, 87,207,115,113, 62, 21,146,244,164, 91, 95,144,210,186, 71,121,242, 3, 15, 2, 15,253, 91,148, 53,
-214, 30, 27,215, 60,167, 28,235,176, 94, 64, 47, 96, 36,123,192,122,197,119,219,203,182,104,188,239,140,236,111,220,100,182,254,
- 79,143,182, 49,188,169,160,163,227, 55,118,182, 0,148,186,176,123,166, 71,240,223, 4,116,246,136,237, 4, 14,225,203,123,200,
-221, 45, 90, 87,188,222,233,244,100,125, 35,218,181,227,190,110,216, 63,148,222,188, 1,220,121,212,222,195,152,244, 21, 21, 96,
- 17, 20, 16, 58,106,225,210,165,103, 69,189, 14,152,189, 58,141, 52,102,165,124, 61,109,238,163,209,162,241,168,124, 58, 86,233,
-141,234,252,212,209, 25,104,252, 10, 25, 49,107,221,250,244,131, 53, 44, 91,208,130, 32,244, 13, 35,198,162, 54,245,239,186, 87,
-187,228,208,241,169, 38,222,189, 16,253, 95,151,203,162,241,232,190, 30,182,247, 95, 86,139,198,162,248,122,195, 23,213,161,226,
-208,248,122,207,117,248,180, 60, 90, 30, 5,103,186,232,120,180, 60, 10,216, 70, 30,141, 23,139, 67,193,175, 68, 97,232,252,218,
- 47, 22,135,129, 94,251,183,171,243,104,120,180, 12, 21,178, 99,250,191, 86,146,100,160, 33, 74, 48,150, 61, 95, 23,102,155, 50,
- 83,130, 26, 48,152,254,173, 54,100,167, 4, 52, 40,141,234,252,250, 71,139, 78, 8, 40, 68,199,245,124, 93,250, 65,150,148, 45,
-232,210, 35,122,180,211,165,167, 4, 20,109, 17,189, 90,101,210,211,173,130,140,162, 48,238, 26,100,203, 78,139,122, 50,136,195,
-209,166,140,180,232,183,163,104,138, 59,134,153,116,212,251, 45,233, 90, 4, 21, 56,242, 54,130, 40, 65,168,245,106,186,254,236,
- 67, 27,137,232,173, 6,201, 96,103,153,169,192,212,169,102,100,179,237,171,162,182,247,235,143,110, 14, 14,121, 34,187, 87,137,
-173,129,180,184,235,245, 73, 0,252,125,154,129, 73,142, 36, 42,105, 56,188,197, 61,181, 41, 74,169,175, 94,159,167, 78, 5,169,
- 58, 29,194,138, 61,113, 98, 57, 27, 14,222,132, 30,191,211,167, 89, 25, 52,177, 3,159,157, 32,200,189, 29,228,165,103,175,117,
-127,167, 83, 89, 14, 21, 37,150,224, 96,105, 57,219,154,221,237, 95, 79, 89,254,157, 16,141, 42,198, 56, 67,105, 14, 69,200, 2,
-175,111,188,247,255, 0, 78,158, 12,169, 13, 20,140,253,211,161,246,171,241,250,126, 61, 44, 70,180,251, 89, 72, 82, 46, 21, 36,
-133, 83,213, 95,233,211,237,142,156, 17,208, 30,255, 0,244,117,221,215,183,231,117,160,248,244,175, 14,143,195,164,132,198,233,
-211,244,107,181, 25,107,201,255, 0, 15, 91,251,169,252,191,207,162,241,169, 95, 14, 43,223,118,245,126,127,233,208,241,168,190,
- 30,188, 49,107,251, 63,159, 67,198,235,162,248,106,212,196,245,126,141, 40, 79, 68,109,232, 51, 19,213,242,105,127, 17, 73,248,
-122, 11,221, 63,135,244,104,252,106, 35,111, 91,136,167,247,116, 12,244, 5,181, 57,236,120,232,184,186, 3,149, 75, 96,251, 68,
-127,159, 89,237,235,125,254, 92,197, 25,213,198,217,179,124, 99,177,202,164,184, 24,188, 24, 10, 42,109, 1,117,253,165, 10,144,
-117,205,183, 14,106,154,240, 33, 41, 91,107, 46, 95,138,216,170, 82,210,163, 54,132, 82,128, 10,116,233, 79,215,172,196,151,238,
-113, 85,173, 28, 86,161,161, 41, 34, 64,111,105, 77, 71,192, 14,152, 23, 68,149,171, 24,225,193, 41, 41, 49, 99,169, 68, 56,210,
- 87, 95, 72,244,234,197,187,212,204, 64,215, 17, 77, 73,180,195, 38, 46,104,175, 27,199,216,247,132,188,203,123,106,106, 64, 61,
- 7,231,214,130, 46,107,124,177,120,114, 28,107, 55, 63, 46, 50, 25, 53,198, 48,169, 42, 27, 65, 49,208,133,117,162, 64,237,214,
- 38,226, 79, 17,228,213,195, 86, 48, 5,122,182,105,215,187, 81,137,169, 13,145,104,131,131,184,116,244, 87, 82, 98, 52,204,174,
- 52, 81,104, 29, 74,147, 93, 77, 99,170, 51,137,164,135,155, 73, 39,217,165,117, 53,146,105,166,204,101,245,171, 81, 82, 8, 81,
- 20,169,174,138, 75,181,194,157,142,220,138,221,245,181, 29, 7,122,106, 72,233,232,253, 58, 96, 74, 94,105,225, 18,211, 50,100,
-173,171, 42, 77, 65,169,165, 59,191, 62,173, 32,198,150, 97, 90, 75,126, 66,222, 70,213,209, 64,250, 71,244,234,214,217,222, 17,
- 81, 85,215, 54,193,225, 8,166,212,219, 98, 93, 37, 64, 1, 95, 64,239,249,117,185,218,183,243, 8, 13, 53,134,221,182, 1, 42,
-184, 96,105,187, 38,215,182,160,167,114, 72, 32,244,173, 65,214,218,211,116,109,192,172, 37,230,216,235,115, 92,138,243,211,229,
- 18,253,253,217,200, 57, 31,136,215,107,129, 15,196,110, 77,239, 29,154,232,183, 69,181, 92, 30, 62,195,214,226,150,195, 97, 50,
- 22,154,173,130, 65, 10,170,145,236,213, 41,231, 92,233, 97,109,183, 61,151, 77, 33,165,238, 77, 35,137,205, 64, 30,223,211, 93,
-163,203, 78,113,153,192,217,220,130,230,181,165, 29,158, 25,105,119,208,106, 63,242,185,200,124,161,198,115,226,100,249, 22, 49,
- 62,237,103,189,227, 22,155, 94,111,107,182, 52,178,182,174,144, 5, 99,205,109, 74, 73, 70,246,130,150,130, 55, 81, 73, 87,111,
- 68,234,171, 97,230, 38,236,115, 56,156, 88,236,192,246, 31, 71,211, 67,155,182, 72,119,232,244, 49,192, 61,174, 37,164,244, 28,
-199, 97,250, 43,176, 56, 86,113,139,103, 86,214, 46, 24,245,201,153, 37,196, 36,189,111,116,134, 46,144,157, 61,173,191, 28,159,
- 17,181, 10,118, 17,215,180, 18, 53,212,236,247,187,109,201,186,161,145,167,164, 46, 35,180,103, 92, 94,247,100,184,219,157,166,
- 86, 16, 56, 28,193,236, 57, 84,210,206, 32,221,190, 7,223,121,149,238,209,133, 88, 82,144,234,230,223,101,162, 60,133,181, 74,
-213,182, 10,130,201,167,102,226, 62, 61,102, 55,110,125,178,177, 37,145, 59,197,127, 67,113, 11,214,114,245, 45, 94,109,124,151,
-119,126,142,120,208,206,151,103,232, 31, 90, 85, 88,228,159,196, 67,201,151, 13,205,147,104,199,154,186,242,230, 79, 1, 74,109,
-198,173, 44,125,227, 12, 72, 64,234, 20,226,202, 33, 3, 94,229, 80,235, 15,117,204,187,158,229,246,188, 54,158, 3,187,237,247,
-189,181,210,246,190, 65,182,136, 7,104,213,214,236,125,153,123, 42, 31,181,126, 46, 60, 75,154, 75, 98,205,150,112,102, 79,138,
-218, 30,123,194, 69,238, 10,224,206, 92, 4, 19, 64,226,152,105,207, 22,128, 30,161,176, 79,160, 29, 82, 58, 75,251, 71,248,176,
- 92,184, 59,180,161,237, 14, 86,159, 72,173, 43,185, 66,218,118,120,114, 68,194, 58, 16, 4,236, 32, 2, 61,117,107,113,222, 76,
-227,140,214,214,221,251, 13,201,173,217, 13,161,228,239,241,173,143,248,146,225,129, 90,165,248,171, 62, 59,106, 65, 20, 87,105,
-245,106,234,195,204,123,203, 67,162,246, 32,241,210,222,235,189, 88,180,250, 18,177, 27,175,150,208, 5,248,119,185,135,161,221,
-225,235,192,143,109, 59,173,147,237,183,118,148,245,178,100,121,173,182,181, 54,225,101,117, 45,184,158,208,161,209, 73, 62,162,
- 53,212,118,205,234, 13,226, 63, 22, 7, 40,226, 14, 4, 30,130, 62, 64,240, 53,204,183, 45,150,125,170, 79, 14,102,167, 65,204,
- 30,176,105, 88, 69,175,119,229,242,234,121,153, 42,188, 65, 91,123,175,171,244,105, 62, 53, 15, 2,188,247, 95, 86,143,198,164,
-152, 43, 4,111, 86,135,139, 73, 48,215,190,236, 61, 3, 67,197,162,240, 43,207,117,252,171,161,226,209,120, 21,158,237,234, 26,
- 30, 45, 23,129, 94,251,175,171, 69,227, 80,240,107,223,116,245,126, 95, 46,135,141, 67,192,175, 68, 63, 87,229,242,232,188,122,
- 49,110,180, 50, 98,250,180,131, 53, 44, 91,209,132,198,167,118,155, 50,211,130, 10, 25, 49,189, 3, 77,153,105,209, 13, 12,152,
-222,173, 32,203, 75, 16,209,148, 70,245,105,163, 45, 56, 33,163, 9,143,234,211, 70, 74,112, 67, 70, 80,199,171, 77, 58, 74,112,
- 66,148,109,184,197,100, 37, 41, 42, 36,208, 1,218, 78,153,116,169, 79, 50, 18,112, 20,241,181, 99,192,209,201,105, 4, 16, 8,
- 65,238, 7,211,215, 89,109,219,127, 22,225, 35, 56,214,171,105,216, 12,197,100,202,157,204,219, 98, 48,154,182,202, 17,211,161,
- 3,175,233,214, 22,243,119,154,235, 7, 56,165,111, 44,118,200,172,207,113,161,104, 39, 29, 75, 10, 41, 6,132, 15, 77, 53, 90,
-165,213,126,216,117,129, 69,189,232,172,237,221,240,144,123,180, 3,105,211, 22,145, 73,119, 25,233,105, 52, 74,128,233,220,122,
-254,157, 74,141,139, 78, 65, 14,172, 77, 51, 37, 92, 74,215,213,100, 26, 26, 84,246,254,125, 77,100,105, 86, 34, 36,164,119, 46,
- 59, 84, 66,143, 94,226, 15, 74,124,186,154,214, 97, 73,208,166,139,185,116, 72, 73,246,253, 53,235,253, 58, 54,219,151, 83,193,
-225,185,211,114, 93,211,218, 59, 84,105,212,214,181,253,122,152,203, 94,154, 2, 69,202,145,156,184,172,214,135,175,166,167,252,
-186,124, 90,138,121,178, 17, 68, 76,197, 43,180,246,250,244,102,220,112,167,155, 50,103, 91,123,223,179,182,191, 21,116,223,130,
-105,223, 24, 83,196, 49,217,219,242,107,165, 25,171,204,190, 18, 80,158, 0,252,142,147,226,208,240,235,209, 28,104,252, 90, 63,
- 14,179,221,198,135,137, 67,195,173, 76,113,220, 52, 98, 74, 47, 10,188, 17,253, 95, 41,209,248,148,159, 14,179,221,235,221,241,
-232,188, 90, 30, 10,209,134, 97,239, 80, 0, 31,147,211,166,101,184,208, 22,156,100, 26,141, 73,150, 24, 30, 3, 9,165,106, 69,
- 77, 70,185,151, 49,223,248,206, 43, 91, 61,162,219,194, 24, 83,157, 8, 9, 29,189,135, 88,137,102, 90,210,180, 81, 57,142, 37,
- 41, 32,119,124,186,138, 94,181, 38, 54,173, 52,100,191,181, 71,183, 70, 29, 86, 49,177,107, 35, 44,173, 96, 14,181,166,140,189,
- 40,220, 18,157,112,210, 70,210, 71,194, 15,126,139, 90,212, 57, 41,125,181,122, 52, 22,160, 60, 80,170,236,169,236,244,105, 75,
- 77,182,136,184,144,123,123,186,211, 78, 49,233, 74, 45, 90, 79,112,245,219, 78,149,244,106, 67,100,163, 16,173, 6,152,219,186,
-148,254,109, 44,205, 68, 24,148, 28,165, 37,150,207,239, 1,208, 15, 78,152, 14,212,106,194, 40,181, 10,102,206,156, 66,137,116,
- 21, 0, 58, 1,217,250,117, 99, 27, 58, 40,252, 30,138,105, 75,152, 30, 87,176,222,222,189,255, 0,231,213,140, 24,113,167, 12,
- 58, 69, 23, 66,213,249,245,105, 27,170, 4,177, 81,147, 69, 1, 81,215,179, 83, 98,145, 42,158,230,222,150, 44, 56,164,140,146,
-114, 35, 35,232, 34,165, 73, 50,101,169, 4,165,164, 18, 58, 39,247,148,123,135,198,122,105,249, 57,140,108,237,212, 74,147,144,
-233, 63, 87, 73,170, 57,182, 81,122, 81, 48,226,107,222, 73,188,240,182, 42,152,216,197,205,219, 91,183, 8, 5, 47, 37,171,140,
-134,228, 54,101, 46,159, 72,180, 45, 91, 22,237, 9, 21, 9,168, 21, 9,160,168,214, 55,114,220,101,221,101,241,230,118,167,100,
- 58, 26, 58, 26, 56, 14,158, 39,141, 89,218,216,178,194, 63, 10, 38,160,204,244,158,211,242, 78, 21, 94, 47, 23,107, 61,250, 52,
-177,105,133,111,251,191,192, 83, 65,148, 52,219, 94, 50,128,246, 84, 0,165, 83,180,132,138,117,213,103,138, 22,148, 99, 34,185,
-235,102,195,231,183,203,153, 53,254,217,122,185, 99, 8,199, 98, 46, 68,100,219,159, 92,116, 38,235, 32,157,138, 9, 10,218, 82,
-148, 36,212, 31, 72, 58,149, 51,155, 52,122, 92, 21,106,104,156,194,193,210,181, 90, 94,242,221,230, 99,205,119, 38,229,150,219,
-167,152,147, 15,141,236,175, 91,159,116,220,220,149, 51, 36,152,197,192, 44,169,165, 66,105,198,219,115,193, 40,217,188,188, 16,
-122, 26, 3,236,235,109,203, 59, 27, 55, 6, 31, 15, 75, 52,231,196,246,129, 81,183, 46,103,139,102, 99, 92,248,156,247,185, 83,
- 28, 48,235,171,205,199,191,134,135,151,188, 70, 12, 54,175,169,202,179,123,131, 45,163,222,101, 92,111, 78, 89,225, 72,124, 80,
-149, 37,136, 5,133,160, 19,251, 42,117, 94,178,117,185,135,150,109, 98,247,213,199,172,253, 2,177,247, 92,255, 0,184,220,147,
-225,150,198,222, 0, 5,249,254,170,146, 38,121, 6,242,225, 41,228,187, 27, 20,188,218,219, 73, 10,247,123,126, 89,113, 44,149,
- 14,195, 87,223,125, 98,135,184, 42,158,173, 56,253,130,205,223, 97, 61, 38,162,199,206, 59,147, 51,145, 79, 73,104,250,168,178,
-188,139,241,229,170, 66, 46,120, 38, 89,158, 97,119,166, 20, 21, 30,108,107,170, 46, 12, 2, 59,150,218,218,109,213,130, 71, 81,
-226,138,247,215, 85,183, 60,163,105, 48, 70,234, 30,149, 30,163, 86,176,121,129,124, 48,153,172,123,123, 16,250,193,250, 40, 9,
-152,239, 52,113, 69,222, 5,225, 13, 59,155, 52,133,178,204,139,174, 59,111,117, 95,123, 67,169, 11,106,229, 9, 21, 45,172, 10,
- 41, 47, 34,163,224,214,112,108, 87,155, 4,162, 75, 83,168,117,124,196,116,124,150,173, 91,187, 88,115, 20, 70, 41,198,131,154,
- 56,228,122, 90,106,238, 90, 28,114,231,110,133, 57,118,249,118,245,203,140,203,234,131, 44,127,172,198, 83,137, 4,165,126,202,
-104, 65,238, 32, 29,116, 8,103,115,152,211, 34, 7, 17,136,232, 53,205,231,180, 17,200,230,176,171, 65,192,244,210,169,138,177,
-218,217, 31, 22,150, 38, 7,141, 32,219, 17,152,173, 61,223,184,138,124, 90, 63, 22,155, 48, 86, 8,227,209,242, 13, 15, 18,144,
- 96,172,240, 7,238,157, 15, 18,144, 97,175,125,220,122, 41,241,232,120,180, 94, 13,103,187,143,200,157, 15, 22,135,131, 91, 8,
-195,184,126,106,232,188, 90, 30, 13,110, 35,143, 65,253, 3, 73, 50,209,248, 34,183,247,113,232,210,124, 90, 49, 13,108, 35, 87,
-187,244,232,140,180,161, 13, 8, 35,122,191, 54,146,101,165,248, 84, 50, 99,250,191, 94,144,101,165, 8,168,100,177,221, 79,151,
-166,155, 50, 82,252, 58, 25, 44,129,164, 23,210,196,116, 58, 99,174,149, 13,170,158,157,186,108,200, 58,105,193, 9,232,161, 18,
-216,237,167, 93, 32,186,140, 50,151, 44,113,252, 89,200,233, 80,128,165, 31, 85, 53, 81,188,220,252, 60, 14, 53,111,179,218,248,
-211, 0, 42, 66, 74, 82, 40,158,243,174, 89, 61,193,148,170,215, 78,134, 17, 8,192, 86,178, 29, 13,167,167, 95, 64,212,106,159,
- 3, 53,211,118, 84,145,237,110, 72, 63, 23, 93, 58,209, 86,241,194,131, 10, 67,118,127,128,186, 5, 87,112,233,234,212,134, 49,
-105,215, 69,172, 83,110,124,208,165, 31,104,159,132,154, 10,106, 84, 97, 42, 68, 81, 32,166,164,217,137,234, 73, 33, 93, 64,167,
-249,245, 41,133, 42, 83, 98, 90, 66,149, 60,132, 14,181, 52,232,174,250,124,186,153, 11, 60, 67, 71, 32, 17, 12, 41, 25,115,212,
-170,167,113,168,238,169,166,173, 24,208,218,132, 89,170,136,185, 37, 71,191,245,233,209, 78, 53,148, 92,184,165, 30,154, 88,165,
-158,237,123,180,246,215,228,209, 23, 1, 76, 57,233, 65,110, 86,239,205,166,181,227, 73,241, 42, 96, 12,127, 15,203,173,137,146,
-184, 55,135, 91,248, 3,208,126, 77, 39,196,161,162,189,240, 71,160,252,159,209,163,241, 40,105,172,240, 71,160,252,159,209,161,
-226,154, 26,107, 60, 17,251,167,228,254,141, 31,139, 69,162,188,240, 1,253,147,242,127, 70,135,139, 67, 69,122, 24, 21,165, 63,
- 94,139,197,163,211, 74, 16, 89, 79,138, 43,233, 29,105,168, 23,210,157, 6,164, 91, 48, 23, 84,147, 15,195,110, 50, 66, 64, 29,
- 62, 61,114, 61,214,103, 58, 82,181,186,178,137, 24, 18,183, 81,167, 65,223,219,170, 87,190,172, 26, 41,189, 61,101, 42,237, 52,
-210, 53, 84,216, 66,211,114, 67,161, 68,128,123,255, 0, 62,134,164,171, 6, 52,138, 22, 19,190, 26,251,187,116, 9,162,145,139,
- 78,232,114, 82,160, 42,122,244,248,116, 75, 80,159, 25,165,166,220,167,233,210,129,168,175, 98,209,143, 20, 30,213,105, 75, 77,
-104, 74, 1,197,164,214,157, 63, 94,140, 58,150,216,232,181, 1, 21,233,211, 74, 15, 74,112,178,182, 75,148, 20, 20, 31,175, 67,
- 90,208,240,146,144,110,175, 33, 4, 16,170,147,218, 52,252, 33, 77, 77,137, 81, 41,141,113,115,122,137,244,158,205, 89,177,233,
- 78, 53,137, 77,242, 13,122, 80,106, 92,111,167, 11, 86,140,176,194,158, 82, 27, 66, 84,183, 22,160,148, 33, 9,220,165,169, 70,
-128, 0, 5, 73, 39, 83, 27, 62,145, 80,165,134,165,156,123,141,100,200, 40,149,124, 38, 52,125,169, 90, 33,182,175,245,151,107,
-214,139, 52,250, 49,233, 3,175,193,219,170,251,189,220,176, 36,121,252,213, 85, 51,219,144,198,157,153, 13,162,227,108,178, 75,
- 70, 60,218, 25,125, 49, 94,110, 34, 99, 39,104,140,165, 15,156,144,126,114,137,239, 38,167,211,172,117,225,153,206,241, 94, 73,
- 53, 42,217,241,188,104, 24, 87, 18,167,223,172,152,215, 44,228, 51,249, 14,194,171,221,253,137, 87, 20,185,119,228,139,227,152,
-237,134,192,212, 48, 92,250, 6, 17, 6,121,113,213, 55, 87, 18, 20, 18, 10, 61,164,173, 94,214,210,117,244,211,144,198, 96,212,
-197, 51,250, 42,233,155,116, 12,128,200,231, 28,209, 26, 1, 61,167, 31,145,166,255, 0,148,223, 54,124,127,230,210,233,146, 76,
-192, 45,144,227,217,177,171,197,206,209,120,189, 91, 17, 40, 89,158, 54,228, 33,192,244,119,166,193,183, 73, 90, 72,116, 35,233,
- 35,160,133, 5, 10,116,169,150, 9,131, 7, 28, 77, 87,239, 59, 71,192,134,184,170, 17,197, 20,122,137, 21, 0,249,129,229,219,
-118, 43,200,179,172, 56,245,213,183,205,201,215, 30,187, 45,158,174,236, 65, 8, 74, 18,148,142,180, 69, 63, 62,174,108,129,149,
-170, 70, 85, 83, 21,151,136,221, 71, 46, 20,241,224,158, 72, 77,167,147,176, 9,118, 25, 45,188,155,253,222, 22, 47,121,140,219,
-137, 72,186, 91,114, 55, 91,100, 21, 84,212,152,210, 10, 93, 20, 4,251, 52,236,214,183,150,111, 95,183,221, 48,240,119,116,142,
-163,245,103, 89,221,246,196, 93,192,246,184, 98,208,163,168,143,172, 97, 93,151,106, 57, 52,246,127, 54,186,203,238,219,211, 92,
-234, 43, 71,116, 81,228,197, 36,118, 31,147,250, 52,207,196,142,154,145,240,164,112,161, 4, 66, 77, 2,122,252, 29,116,102,112,
- 2,173, 39,192, 39, 1, 78,107, 78, 62, 95, 33,110, 39,167,109, 8,233, 79,147, 89,141,219,152, 5,183,117,167, 26,186,176,217,
-204,184,184, 83,230, 61,154, 36,116,132,248, 13,168,211,247, 69, 71,230,215, 61,188,230, 9,230,118, 14, 32, 86,202,211,103,134,
- 54,226,208,180, 94, 77,166, 59,181, 1,176, 7, 94,148, 31,228,210,237,185,142,104, 72,198,159,151,100,138, 81,149, 51,174, 22,
-176,202,206,192, 40, 61, 95,209,173,222,213,191, 54,236, 35,142, 53,151,220,185,120,194, 53, 52, 82, 42,154,161, 34,159,145,214,
-145,178,106, 11, 89,121, 32,210, 80,215,129,154,247,124,154, 87,137, 81,204, 85,239,128,125, 31, 41,209,120,148,147, 29,123,224,
-122,134,139,196,162,240,171,112,205,116,147, 37, 15, 14,183,240, 7,163,243,232,188, 74, 26, 43,111, 7,212, 63, 47,139, 69,174,
-143, 69, 8, 26, 31, 14,146, 95, 74, 17,214,254, 24,244,126,109, 39, 85, 44, 49,104,220, 88,107,144,176,148,166,137,175,180,170,
-118, 13, 70,185,187,109,179,117, 56,212,155,107, 55, 92, 57, 26, 41,216,197,146, 7, 77,232, 81,238, 36,171, 88,235,174, 99,149,
-139,164,138,213, 91,242,244,110,247,133, 6,254, 54,208,123,123,110, 17, 30,149,219, 90,168, 31,147, 76,199,206, 68, 70,142,111,
-127,217, 79,255, 0,234,141,115,253,227,167,162,143, 39,221, 99,161, 45, 41,180,148, 82,132,144, 42,127, 54,168,238, 55,217, 38,
-118,160, 72, 53,127,111,176, 49,141,210, 70, 20, 15,187, 90,214,149, 0,148, 38,189, 65, 29,160,252,154, 31,251, 5,214,160,237,
- 70,143,249, 44, 13, 26,116, 10, 51,110,110,222,195,142,166, 51,168, 91,195,104,116,110, 10, 90, 55,117, 21, 29,162,186,107,112,
-222,230,191, 96,107,242, 20,155, 77,166, 43, 71,151, 48, 99, 74,229, 91, 71,136,179,181, 41, 53,248,117, 75,170,173,218,117, 96,
- 41, 6,116,237,196,236, 80,167,229,234,210,193,171,123, 91, 84,206,155,207,202, 53, 53, 63, 30,164,199, 86, 65,154,105,187, 58,
- 66, 77, 74, 85,211,209, 78,205, 76,105,160,214,211, 62,100,221,164,141,221,127, 47, 86,158,110, 53, 45,173, 74,108,202,150, 58,
-245,169,235,240,234, 92,108, 46,165, 25, 67, 41, 13,217, 42, 85,122,252, 0,255, 0,155, 86, 49, 13, 2,161,203, 54,179, 69, 70,
-229,117,175,231,212,150,189, 41,191, 17, 40, 68,164,158,157,126, 30,193,163, 50,165, 56,199,106,163, 13,164, 39,231, 0,116,109,
-159, 85, 38, 96, 90, 21,105, 70, 42, 96,137, 12,153,200,148,168, 97, 95, 78,152,101, 9,146,164,122, 16, 86, 10, 1,248, 70,163,
-222,186, 83, 27,188, 13, 62, 34, 97,169,116,175, 90, 98,157,149, 85, 36,218,106, 62, 57,238, 54,121, 77,188, 49,171, 78, 84,187,
- 74, 44, 78,220,102,200,251,176,166,108,107,203,142,160, 69,128, 30,219,238,107, 15,196, 68,137, 6, 72, 86,196,236,216, 70,229,
- 13,114,143,253,199,125, 15,254, 92,108,160,248,242,252, 63,110, 60, 35, 8,247,166,203,196, 26, 73,107,124, 52,212, 75,148, 96,
- 13, 83,157,230, 49,114, 45,212,234,208, 93,145,224, 64, 69,203,138,213,160, 12,142,159,163, 94,133, 50,215, 54,211, 91, 22,135,
-171, 69,226, 81,105,172, 12,250,191, 94,135,137, 67, 72,161, 17, 21,110, 29,168, 77, 73,233,208,105,169,110,155, 8, 87, 26, 92,
-112,153, 10, 54,148, 81,101,125, 67,170, 64,248,127,205,170, 57,121,154, 8,202, 45, 90, 71,179, 72,240,169, 70,209,100, 71, 98,
-136, 42,167, 95,135,228,213, 76,220,219,142, 25, 85,148, 91, 0, 76,107, 85, 89, 18, 23,243,186, 15, 64,254,141, 3,206, 1,161,
- 17, 77, 27,121,111, 89, 85,194,141, 55, 99,232, 20,147, 79, 95,127,232,212,115,205,186,253,225, 74,118,194,216,242, 52,187, 29,
-129, 29,176,149,144, 72, 29, 63, 42,107, 41,185, 95, 54,237,218,128, 74,182,181,183, 48,132, 90, 13,213,142,164, 30,237, 84,151,
- 84,246,178,154,151, 23, 79, 80, 59,180, 69,213, 99,110,202,102, 72,148,164,172,245,167, 90,232,193,171,102, 70, 18,183,143, 47,
-114,135, 90,154,143,203,179, 68,180,151, 49, 41,235,107,127,160, 36,122, 14,140, 26,131, 43, 41,208,219,213,161,210,193,168, 47,
-141, 40,111, 20, 1, 93, 24, 52,214,138, 1,201, 53,233, 64, 15,231,210,129, 90,113,145,105,160, 20,232, 29, 43,211,183, 69,141,
- 58, 26,181,171,143,141,166,157, 5, 52,182,138, 1,152,211, 98,115,133,100,247,141, 78,140,233,169, 45,109, 55,166, 10,138,119,
-211,167,175, 78,248,148,243, 89, 64,219,108,151, 11,179,225,152, 81,214,232,173, 92,122,155, 88,101, 29,234, 90,207,178,144, 61,
-122, 83,174,132, 33, 73,162,148,182, 48,174, 53, 63,226,184,117,182,194,219,114, 92, 64,153,115, 82, 82,125,225,196,213, 12, 30,
-255, 0, 5, 37, 34,157,127,104,138,252, 29,154,132,251,231, 79,150, 85,159,186,185,116,197, 6, 13,249,103, 79, 87,159,240,134,
-229,251, 9, 0,146,163,217,250, 52,209, 36, 84, 38, 48, 58,161,204,219,151,177,187, 3, 79, 69,147, 61,134,151,181,105, 90,156,
-112, 34,135,208, 43,164, 72,243, 32, 74,113,141, 13, 56,103, 84,167, 54,224,156, 27,205, 36,143,118,156,207,190, 32, 37,196, 25,
-140,246, 41,149,144, 74, 84,237, 10, 84,131, 64, 75,106, 5, 36,129, 80,105,168, 14,107,163,193,153,154,157,107,116,251,103, 40,
- 36, 38,116,164,199,150,158, 16,242,181,192,153,157,163, 2,183,192,180,220,100,219,174,204, 46,117,177,152, 81, 82,139,170, 16,
-176,176, 27,138,211, 44, 5,161,127, 57, 33, 27,171,218, 53, 26, 56,156, 30, 11,220,175, 95, 69, 78,220, 47, 95,184, 5,145, 75,
- 83, 50,171,237,225, 95, 33,156,187,158,114,206, 59,205,209,223,199,113, 88, 55,152,138,185,222,165,101,185,253,202,124,217,178,
-109,209,227, 32, 59, 22,221, 14,218,195,233,136, 83, 35,117, 92, 83,236, 41,106, 82,246,182,226, 2,119, 39,121, 3, 68,141, 3,
- 32,153, 97,235, 90,176,178,182, 99,225, 85, 4,101,167,143,105, 40,163,181, 64, 29,121, 87, 74,191, 12, 46, 4,228,174, 66,229,
-219,255, 0, 43,102, 23, 55,161,241,214, 7,146,139,205,146,218,226,188,103, 37,223,167, 3, 38, 36, 38,149, 80, 2, 33,165,105,
-117,213,208,246, 33, 35,231, 18,155, 59,187,198, 91, 53,154, 71,123,234,170,121,237, 27, 62,166,240,200,215,210, 36,102, 83,210,
-191,151,230,208,111, 49, 74, 6, 53, 89,255, 0,175,196,180,230,138,204, 69, 36, 37, 73,235,223,211,183,243,105, 13,223, 37,212,
-164,209, 77,177,176, 4, 0, 82,163, 22,200, 75, 80, 90, 69, 21,220, 8,233,250, 53, 37,252,203, 43,134,147, 85, 78,229,230,176,
-234, 74, 91,105, 40,142,138, 14,131,190,131,183, 84,119,119,102,224,173, 88, 91, 90, 8,194, 86,202,152, 0, 61,105,211,242,238,
-213,105, 10,106,201,145, 81, 7, 38,160, 18, 66,250,254,143,205,160,134,167, 71, 10,138, 67,155, 45, 46,171,175, 83,223, 79,243,
-106,206,194,119, 91,185, 69, 46,107, 70,200,196, 52,138,180,165, 74,170,123,255, 0, 47, 70,186,126,215,125,226,176, 7, 28,107,
-152,111, 59,119,134,242, 90, 48,175, 3,126,174,186,184, 46,172,211,162,161, 60, 49,232,210, 53, 83,126, 29,108, 26,175,112,248,
-198,139, 93, 22,138,219,194, 26, 45,116,157, 21,239,132, 61,122, 26,232,104,175,124, 49,232,209,106,161,225,214,219, 7,163, 69,
-170,149,225,209,136,241, 28,144,180,132,161, 69, 21,246,149, 78,128,106, 29,229,243, 44,152, 92,243,232,169,150,118, 47,187,120,
-107, 69, 38,229,121, 35,248, 75, 48,102, 55,102,118,125,160,188,242,175,247, 70,228,161,180,216, 32, 50,130,175, 29, 77, 16, 92,
-126,170,162,118,182, 43,223,172, 6,231,189, 11,236, 9, 68,246,214,230,199,107,254, 94, 53, 16,173,226,122, 7, 77, 58,172,217,
- 61,155, 33,177,195,190,218, 38,183, 46,221, 53,175, 25,153, 65, 10,101, 42,111,210, 66,210,149, 38,158,177,172,147, 47, 91,114,
-166, 55, 7, 5, 35, 2,185,118, 85,221,163,226,187, 26,227, 32,183,164, 80,119,108,134,217,101, 66, 93,188, 93,109,246,216,142,
-120, 68, 74,155, 57,168,241, 10, 93, 32, 37, 94, 42,148, 27, 9, 59,135,181, 90,106, 4,155,156, 49,199,226,151,119,113,246, 42,
-132,205,112,202,149,127,186,218,237, 90, 62, 34, 70,176,189,193,173, 82,138, 79, 0,181,205, 14,107,243,155, 18,193,203,118,203,
- 61,151, 56,139,108,198, 48,235,155, 72,206,237,139,137, 9,246, 47,113,218,121, 72,144,212,123,130,159, 41, 66,144,144, 10, 8,
-232, 73,167,110,139,151,247,121, 55,152,155, 60,112, 17, 27,193,210, 92,161,221, 71, 74, 98, 15, 70, 24, 99, 92, 79,112,243,123,
- 78,230,109,163,238,197, 27,136,120, 40, 75,144,161,210, 65, 67,213, 80,197,199,241,130,226,100,220, 36,218,237, 24,101,246,101,
-201,230, 97, 61,101,182,155,147, 43, 47,111,125, 77,200,110, 84,128,128,196, 85, 33,160, 28,111,121,162,171, 74,141,109,108,182,
- 59,147, 27,164,184, 1,160, 56,133, 10,132,112, 32,102,122, 8, 11, 82,207,156,246,236, 99,156,232, 92,113,195, 28,194,241,232,
- 32,112,168,107, 59,252, 67,133,230,253,108,188,217, 50,108,199, 8, 93,155, 42, 97,215,228,166, 29,177,184,151, 92,113,215, 7,
-139,111,144,235, 83, 28,105,229,199, 31, 49, 74, 20, 61,227, 80,223,103,120, 36,115, 96,100, 82, 53,204,238,174,176,224,228,192,
-144,153, 46,117,131,220,188,220,184,184,187, 75, 83,220, 92, 48, 67,143, 7, 98,132, 14,154,185, 79,126, 42, 92, 44,255, 0, 37,
-227, 60,103, 8, 75,186,195,151, 96,129, 47, 32,204,219,149, 29, 86,248, 23,121,202,109, 9,140,218, 90, 90,210,225, 74,156, 1,
-197,238, 0, 26,247, 13, 87,218,236,219,133,189,185,146,241,141, 18,107,210, 3, 20,168, 69, 84, 33, 71,101,116,253,167,205, 56,
- 96,154, 56, 46, 25,169,216, 7, 57,152,180, 19,208, 62,122,185,112,185,171,142,238, 25,157,195, 0, 70, 75, 9,156,170,221,111,
-141,118, 93,186, 98,189,208, 74,183, 75, 64,113, 47, 71,113,202, 55, 33, 33, 42, 5, 69, 4,211,191, 72,108,110,115, 60, 65,139,
- 85, 48,224,122,250, 43,177,218,115, 37,141,221,195,237, 25, 43,124, 86, 0, 72, 56, 96, 66,225,192,245,244, 83,233,201,173, 58,
-210, 93,101,198,222, 66,211, 84, 45,165,133,161,105,244,130, 42, 14,148,199, 17, 90, 0, 67,130,138,108, 78,146,176, 9, 73,235,
-232, 3, 83, 24,229,163, 0, 12,105,137,117,185, 34, 27, 78,202,150,180,177, 29,176, 75,143, 58,118, 54, 13, 9,165, 77, 58,144,
- 13, 6,167,194,139,137,168,243,220,136,193,197, 42,156,220,188,220,225,234,188, 99, 12, 89, 45,207,220,241,156,186, 30, 92, 45,
- 57,124,233, 77,217, 44,142, 94,177, 68,168,173,130,244,130,150,144,149,173, 5,186,184,164,154,210,137, 32,215, 84,187,151, 58,
-216,109,130,225,154,203,167,128,179, 92, 77,107,139,192,121,192,160, 4,144,115, 86,168,233, 34,177,119, 28,223,111, 27,154, 23,
-222, 84, 36,128, 20,117,213, 88,135,248,128,100,153, 85,246,239, 99,193,241,124,102,229,112,110,220,187,133,148, 79,186,185, 26,
-215, 49,232, 5,209, 49,130,234,208,195,165, 44,161, 27,139,129, 52,175, 64, 72,235,168,155,167, 51,221,109, 48,182,226,233,158,
- 20, 69,233,145,115,195, 72, 26, 9, 0,144,174, 39, 44,211, 49, 89,103,249,130,178,104,107, 90, 71,110, 29,139,244,210, 79, 27,
-126, 36, 13, 95,222,202,221,207,109, 31,112, 61, 99,183, 78,103, 24, 70, 63, 0,187,138,229, 55,212, 26,183, 30, 76,219,131,236,
- 24, 36,161,183, 10, 94, 10, 40, 61,148,173, 1, 61,219,114,221,246,201,173, 95, 0,138,104,158,225,226,176,148,150, 56,206,111,
-104, 96,118,178, 9, 29,212, 7,137,195, 38,109,249,241,243,191, 84,157,208,214,158,232, 11,168,240, 10, 72,210,157, 56,213,159,
-227,111, 59, 60,105,149, 93, 34, 99,153,179,176,184,227, 37,186, 75,141, 22,201, 2,237,122,143, 54, 61,220, 74,105, 46,165, 72,
-125,146, 91,106,137, 88, 7,196, 35,175,126,182, 91, 94,227, 22,243, 19,165,135, 82, 49,117, 43, 72, 68, 36,113, 24,226, 43, 81,
-182,115,140, 55,100,178, 78,227,213, 16,145,243,213,209,183,202,135,113,140,204,200, 50,163, 77,137, 33, 1,198, 37, 68,125, 50,
- 99, 62,217,236, 82, 22,130,164, 40, 31, 72, 58,156,169, 90, 95,140, 18,181, 65, 90, 71,204,242,171,254, 25,102, 77,254,198,196,
-103,149,111,146, 22,235,179,172,114,111,214,200, 74,117, 42, 74, 28,146,212, 70,221,121, 45,239,160, 43,216,105,172, 7,153, 59,
-131,182,205,181,239,141,117,184,128,141,145,145,188,183, 51,160,188,128, 79, 72, 4, 20,202,179,155,206,231,240, 81,153, 21, 19,
-138, 40,244,165, 50,221,229, 62, 67, 23,152, 18,150,246, 18, 57, 89, 88, 69,223, 47,141, 5, 48,231, 12,121,120, 90, 30,130,151,
-218, 92, 95,112, 14,170, 82, 95, 83, 65, 13,109, 42, 9, 42, 59,197,104,124,174,207, 49,121,124,216, 62,251,225,102,248,209,116,
-203,127, 19, 80, 85, 45,145, 28, 31,226,166,148, 5, 78, 69,201,221, 41,134, 75,249,187,124, 95, 27, 15, 27, 70,164,239, 38,156,
-147, 37, 94,175,109, 92,240,208, 58,250, 20,100, 74,137,166,183, 12,110, 52, 29, 79,193,164, 25,147, 26, 2, 50,105, 89,139, 73,
- 90, 55, 40,210,189,159,149, 53,158,188,230, 6,219,185, 5, 90,219,237, 70, 80,166,149, 89,136,212, 68,123, 35,218,237,169, 21,
- 39,243,107, 29,185,111,111,189, 37, 78, 21,161,178,219, 91, 0, 65, 90,169,192, 79, 85, 31, 71,102,168, 76,149,118, 26, 27,194,
-189, 78,206,227, 93, 22,186, 10, 77, 10,148,246,158,218,104,107, 90, 11, 94,169,107, 2,189, 0, 3,179,179, 68, 93, 72,210, 13,
- 34,201,184,236, 81, 27,187, 63, 47, 70,144, 93, 82, 25, 2,210,113,187, 82,166,181,245,126, 67, 73, 46,167,133,189, 34,220, 39,
- 33,208, 74,122, 30,254,191,209,164, 45, 76,130, 18,218,102,201,115,114,137,175,126,157,107,170,205,140,161,225,118,131,235,209,
-151, 82, 36,109, 62,237,135,216, 29,105,217,162, 14,170,249, 91, 78,118,151, 64, 58,247,105,107, 81, 28,213,175, 20,233, 39,183,
-166,148, 13, 35, 69, 2,181,250, 14,157, 24,210,218,218, 4,169, 68, 26, 29, 24,198,143, 42, 5,110, 41, 34,132,131,165, 12, 40,
- 96,227, 73, 50, 13, 66,169,211,209,167, 67,169,230,210,141,191, 27, 47, 52, 46, 87,167, 13,186,214,145,189, 42, 85, 4,153, 96,
-119, 54,138, 19,212,126,209, 20,212,121,239, 27, 0,166,164,186, 12,238,183, 23,123, 7,111,201,105,245,141, 73,142,237, 91,129,
- 28, 70,181,178,176, 99,178,158,190,247, 36,208, 7, 28, 36, 13,199,167,193,232, 20, 26,169,109,195,174, 95,142, 93, 21, 2, 96,
- 93,139,142, 63, 69, 73,237, 32, 54,217,112,154,157,165, 74, 81,236,232, 62, 13,105,173,173,195, 89,175,141, 82, 72,253, 69, 56,
- 85,114,230, 30, 86, 70, 53,109,148,220, 69, 37, 82, 3, 75, 29, 59, 19, 81,222, 72,237,248,245, 26, 66, 73,198,150, 8, 29,214,
-215, 11,121,171, 47,204, 57, 63, 34,126, 19,183, 7,162, 88, 24,144, 85, 41, 12,186,166,220,150,178,122, 32,169, 38,180, 61,244,
-237,210,227, 1,129,106,238,204, 54, 0, 9,196,215, 73, 60,133,102,248,230, 25,196,151,156,118,241,114,247,140,131, 27,203,239,
-150,247, 27,152,245,103, 51,111,144,164,202,136,128, 20, 2,182, 6, 31, 27, 59,169,211,187, 80,173,229,212,243, 32, 11,250, 41,
-123,204, 96, 57,160,224, 28, 1,237, 81,245,213,102,243, 81,202, 86,217, 55, 94,106, 79, 27,100,152,173,135, 25,146,221,138, 86,
-123,239,205,189,114,136,247, 45, 72,109,104,255, 0,213,236,176,243, 40,247,167,173,200,142,171,134,245, 80, 4,176,105,185, 75,
- 37,153,173,204,178,181,200,125, 31, 46,218,155, 97,127, 29,189,177,108,205,212, 73, 70, 3,254, 81,153, 39, 48,133, 17, 58,235,
-143,113,108,248,237,250,229,114,148,236,152, 87,183,193,109,171,132,167, 98, 34, 57,126,225, 25,180,133,188,218, 5,124, 48,225,
-233,182,167,179,180,235, 71, 4,142, 99, 64, 53, 65,113,114,230, 59,186, 52,142,129, 87,227,201,191, 42, 91, 56,135, 35,190, 99,
-215, 39, 3, 24,198, 72,109,107,125, 72, 63, 71,108,184,182, 84,211, 78,237,238, 11, 11, 8, 95,254, 78,159,120,241,154,167,133,
- 21,181,225, 99,187,217, 26,236,189,182,237, 30,108,118,101,197,121,183,227, 72,109, 46,178,243, 74, 11, 67,141,168, 84, 16, 71,
-110,153, 0, 10,183,212,180,226,143, 50,180,162,168,125, 63,144,208, 45,165, 7, 83,142, 44,205,201,234,122,142,255, 0, 79,230,
-211,101,180,135, 49,104,202,167,157,164, 87,210, 43,249, 13, 36, 49,105,135, 66,133,105, 38, 77,193, 77,214,138,175,109,127, 42,
-105,198,198,180,244,113,131,141, 33,187,112, 82,137, 85,123,251,191,205,167,155, 24, 21, 53,161, 40,153,154,189,244, 29, 71,102,
-164, 70,193, 76,206,252, 40,251, 47,110, 0,252,116, 58,184,183,184,116, 57, 26,161,184,183,108,217,209,148,186, 43, 67,249,126,
-109,105,109,119,124,129,172,173,230,204, 10,145, 70, 82,186,211,211,171,232,222, 37, 10, 43, 47, 60, 38, 7, 33,161,211,215, 70,
-112,166, 18,182, 3,242, 58, 73, 52, 97,171, 66,132, 15, 64,249, 52,141, 84, 90, 43, 10, 7,163,243,104,106,163,209, 65,237,169,
-160,244,233, 69,225,161, 77, 40, 71,168,160,164,252,219, 36,141,136, 98,146,230,174,231, 10,206,250,208, 90,139, 50,106,219, 75,
- 66, 82,129, 32, 4,186, 82,151, 9,165, 2,107,174, 73,204,187,169,123,222,224,224,141, 5, 23, 1, 91,187, 56, 99,219,173,188,
- 73, 28, 27,214, 83, 63, 77,115,219,144,188,250,221, 98,226, 55, 54, 48, 75, 13,178, 30, 87,106, 17, 25,202,100,101,211, 91, 77,
-158, 28, 55,228, 52,194,148,218,218, 67,172, 43,122, 86, 87,237, 45, 52, 3,174,185,110,227,123,105,190, 58,217,146,120,132,185,
-235, 27,153,128,212,208, 85, 84,130,133, 19, 35,157, 98,183, 95, 52,153, 30,136,109,162, 37,238, 41,168,145,164,124,134, 53, 83,
-121, 47,207,189,151,140,108, 10,180,216,110, 18,165,101,209,219,203,159,185,206,134,194,133,142,241, 98,190, 53, 29,108, 73, 75,
- 97,199, 89,125,209, 35,120,100, 39,230,131,211,161,214, 95,147,249, 83,124, 27,132,243, 50, 66,216,102, 44, 30, 25, 32,232,112,
- 36, 57, 26,128, 53,186,120,130, 9, 57,227, 88,189,195,159, 78,202, 31, 28, 8, 30,117,174, 96, 16,228, 66,153,102,168,107,151,
-188,197,248,135,102,249,238, 39,143,241, 99,118,247,173,184,107,145, 39, 61,117,109,111,169,235,157,193, 83, 93, 90,221, 65,116,
- 20, 45,182, 82, 2, 72, 73,235, 94,135,166,189, 25,177,114, 7,242,224,101,184,148, 72,232,220,177,224,154,114,237, 82, 74,215,
- 31,223,185,138, 77,230, 8, 89,114,237, 94, 11,137,105,232, 39,167,165, 56, 87, 63,159,230,187,253,183, 32,187,146,139, 52,168,
- 76, 20,197,110,219, 62, 48,125,198,218,120, 81,183, 80,167, 18,224, 20,173, 77, 1,239,215, 68,254, 83, 13,196, 45,197,192,230,
-163,218, 48, 74,204, 77, 43, 94,141,199, 28, 84, 84,108,215, 39, 74,201,126,251,159, 54,117,195, 29,176, 68, 68, 72, 51,101, 90,
-163,120,240,213, 33,211, 68, 41,247,146,134,246,151, 18,213, 16, 7,109, 41, 77, 77,146,201,150, 5,140,104,107,228, 42, 64,113,
- 66,131, 52, 4,156,151, 30,218, 83,174, 30,198,119, 59,192,102,122, 22,152,233,231, 9,247, 24, 99, 31,184,189, 21,232, 86,249,
-175,190,212,167,223,116, 61, 33,192, 78,197, 47,111, 66, 64,165, 42, 53,100,118,145, 3,252,102,170,144,136, 0, 65, 72, 23, 1,
-167, 80, 56,154, 63,103,229,251,152,184,197,118,117,214, 84, 22, 34, 60,195,145,137,132, 36,167,194, 65, 81,220,148, 44, 2,177,
-212,142,221, 57, 54,212,192,195,225,180, 18, 65, 92, 83,218, 50,169,240,223, 22,128, 9,174,131, 98, 62,110,216,178, 69,199, 16,
-187,222,111,150,198,188,202,125,156,181, 23,139,188, 53,173, 79,248, 73, 98, 59,150, 69,190,135, 93,136, 3, 97, 40,121, 14,130,
- 13, 40, 58,107,153, 93,242, 92,151,210, 75, 32, 17,198,246,180,104, 45, 14,201, 84,137, 17, 3,186, 65, 30,154,156,237,201,197,
-193,250,203, 95,142, 33,125,184,226, 15,162,167,222, 57,243,149,202, 60,113,147,170,123,124,191,126, 79, 30,177, 21, 89, 5,178,
-203, 47, 35,105,246, 60, 22, 93,218, 34,182,151, 26,117,148,173, 46,146, 11, 41, 69, 10,122,210,154,143,117,182,190,120, 24,198,
- 68,179,131,164,247, 73, 25,102,113, 5, 19,138,224,107,109,179,249,141,185,109,218, 4, 83,188,233,251, 36,171,125, 68,229, 83,
- 22, 63,248,178,115,118, 79, 58,228,194,239, 86, 43, 20,104, 11,102, 68, 36, 92,177,136,114,238, 23,152,207,190,150,246, 32, 52,
-235, 77, 13,169, 53, 83,128,251, 34,164,141, 61,184,236, 76,218,152,215,185,154,149, 65, 32,184, 6,144, 23,136, 39,176,113,173,
-247,245,147,121,126,146,209, 17, 43,142, 9,135,166,152,252,185,231,247,145, 50,249, 23,152,207,242,221,166, 87, 29,230,143,218,
- 97,220,120,225,168,201, 68,187, 93,203, 23, 37,211, 54, 35,232, 71,134, 16, 95, 72, 10,163,129, 74,238,168,214, 74,126, 75,139,
-127,150, 25,231,134, 70, 92, 66, 28, 99,144, 56,134,233,144, 38,151, 55, 5, 41,210, 8, 29, 70,169,183, 63, 50,183, 29,193,178,
-182, 98, 64,195,186, 48,110,121, 97,143,166,170,229,207,156,108,249, 69,198,254,132,114, 13,146, 28,107, 10, 44, 46, 98, 86, 8,
-152,202,221,189,228, 87,112,166,214,168,170,114, 25,240, 35,199, 62, 25,222,242,201, 79,239,244,213,108,188,171, 54,196,216,157,
- 29,179,220,231,151,248,143, 50, 13, 12,106, 30,250, 63, 23, 59,253, 35, 30,138,171,183,223, 33,184, 14,153,239,210, 66, 16,215,
- 13, 74,122, 58,129,233,225,198,151,175,188,155,109,103, 60,132,152, 89, 70, 33,111, 98,231, 18,217,110,200,238,104, 67, 47,221,
-108,246,171,245, 87,113,110,222,210,200, 75, 74,100,141,138,121,110,251, 84,246, 69, 14,170, 99,219,231,221,236,139,229,142, 71,
-190, 53,115, 65,118,150,189,204,253,217,122, 1,129, 31,100, 55, 14, 38,163,110, 91,172, 87,174, 93, 77, 76, 23, 20,199,171,178,
-151, 25,205,108, 83,177,220,147,152,243, 86, 37,220, 45,106,184, 28,103, 20,131, 49, 47,200,133,159, 88, 45, 46, 58,143, 10,230,
-155,124,136,206,192, 5, 9, 74,217,117,180,172, 21,116, 39, 73,181,181,115,223, 14,197,103,166, 25,195, 76,210, 72, 51,137,206,
- 0,143, 12,189,174,107,202,168, 33,201,134, 34,173,236,111, 98, 16, 27,137,156, 73, 82,139,136,127,106,100,156, 18,171,146, 46,
- 86,156,154, 78, 77,148,202,200,236, 56,129,177,218,156,190,219,112,235,188,167,110, 87, 41,238,248,155,154,136,220,137, 36,184,
- 14,212,212,135, 29, 53, 29, 0,214,237,155,149,198,213,224, 91, 54, 41, 39,241, 36, 13,116,205, 1,173, 24, 98,226, 27,135,169,
-163, 30, 53, 87,107,189, 9,245, 61,231, 73, 82, 64,205,122, 22,175,143,146, 63, 58,249,158, 27,119,199, 45, 89,167, 36,109,227,
-164, 90,231, 90,161,227,146, 44,181,177,218, 47, 50, 36,132, 91,225,174, 96, 66, 76, 70,126,144,173,111, 85,123, 19,221, 65,161,
-204,215,142,216, 68,239,183,133,207,127,188, 70,165,115,128, 97, 46,115, 24, 78,106, 16, 52, 38,163, 91,238, 94,231, 87,192,230,
-137,100,253,154, 16,136,128, 21,192, 19,209,215,192, 87, 74,252,199,230,188,136,246, 31, 43, 53,195,185, 1,135,120,230,240,204,
-184, 57, 20,140,118, 99,217, 75,118, 75,147, 75, 66, 21, 17,180,194,117,150,165, 70,115,105,220,181,170,157,157, 5,117,202, 71,
- 47,127,238,246,150,187,134,225, 44,211, 68,215, 7,134,152,153, 25, 97,114,227,160,130,246,150,100, 74,246, 85,191, 48,222, 92,
- 92,199,227, 71, 33, 49, 28, 28,152,227,209,134, 99,165,107,140, 46,114,223, 47,158, 83,132, 21,203, 16,149,110, 78, 59,115,200,
- 26,123, 99,222,232,212,101,202,136,135, 33,123,167,189,120,254, 35,136, 74, 21,224,120,244,246,105,234,212,182,242,198,197,240,
-206,255, 0,181,122,120,205,140,185, 6,163,131,146, 69,210,152, 99,222,211,153,174, 99,252,242, 95,137, 93,103,212,126,101, 84,
- 78, 11, 95,105,233, 79, 81,211,167,230,215,123,115,171,182,165, 40,197, 98,170, 10, 40,168, 30,174,159,163, 84,251,141,216,141,
-164, 46, 53, 58,210, 13, 69, 82,151,183,237, 0, 10, 10, 14,202,107,155, 93,200, 75,142, 53,173,133,129, 5, 20,144,248,167, 93,
- 65,115,170, 91, 27, 73,170,125,180,159,108,246,250, 6,145,170,164, 54, 50,107, 84,202,100, 42,181, 58, 26,233,207, 8,209,193,
- 57,160,138, 36,129,233,252,169,161,170,155,240,122,104,147,210, 67,181, 74, 85,221, 93, 13, 84,243, 99, 13,166,172,247, 10, 10,
-189, 58, 34,234,177,138, 53,166,179,243, 84, 42, 1, 58, 25,212,214, 66,180, 68, 74, 46, 18, 13, 65,233,161, 79,182, 36,173, 54,
-149, 30,202,130,116,107, 78,229, 74,240,218, 29, 42,105,215,209,219,160,181, 26, 74,116,196, 80, 64, 29,123, 41,165, 10,131, 32,
-165,198, 93,175,193,232,211,130,163, 56, 80,197, 93, 61, 26, 88,194,155, 74, 44,167,168,106, 58,252, 90,117,162,148, 90,162,188,
- 75,164,215,165, 43,221, 77, 60, 27, 76, 60, 1, 90, 56,195,135,214, 85, 64, 18, 58,147, 95, 64,209,101, 74,108,131, 42,117,219,
-236,209,109, 17,126,243,189,180,195,203, 90, 55,177, 5,246,201, 13, 14,208,181,215,161, 62,132, 17,240,234, 29,205,207,133,150,
-117, 26, 91,131, 47,117,133, 7, 79,208, 62,186,136,243, 92,219,223,174,113,160, 33,224,144,252,150, 88,101,180,171,102,225,217,
-213, 33, 52, 74, 82,159,131,228,214,126, 73,117,149, 52,184,163, 13, 21, 40,227, 50,152,101,248,144, 88,112, 60,166,219, 74,157,
-117, 41, 0, 21, 47,180,164, 1, 64, 40, 40, 14,165,217,142,240, 2,152,152,174, 52,243,202,111,133,136,107,141, 29, 91, 81,225,
-213,213,237, 37, 84,167, 64, 6,221,107, 12,189,208,209,149, 83, 22,105,199,141,115,155,157,110, 82, 39,181, 33,152,202,241, 10,
-142,213, 10, 19,209, 93, 43,209, 58,135, 35,177,163,129,138,106,157,185,133, 46, 57,102, 66,224,188,182,210,180, 63, 33, 97, 36,
-130, 65, 4,213, 95, 6,137,210, 32,169,236, 92,170,156,249,218,227,238, 44,201,167, 98,220,141,141,115,109,215,133,249, 83, 22,
-178,207,179, 95, 44,102,227, 62,219,137,242,134, 55, 47,115,204,183, 41,184, 82,162, 23, 94,183, 72,117,239, 1, 85, 81, 27,212,
- 8,161, 26,168,219,175, 46, 54,153, 30,211, 31,137, 27,138,225,192,250,141,116,123,104, 32,222,237, 88, 21,160,176, 6,146, 81,
- 66,118,166, 4,113,174, 84, 89,243, 94, 77,147, 22, 55, 24, 89,114,120,183,156, 66, 21,226,235,119,132,152,112,158, 10,135, 46,
-240,224,118, 66,203,206,184,226,164, 41,199,138,148, 20,233,220, 1, 3,168, 26,216, 68,241, 48,214,230,105, 39,174,179, 59,180,
- 48, 64,240, 68,154,156,208,132,162, 12, 50, 76,126,110,218,186,124,109,199, 23, 75, 14, 61, 29,218,189, 38, 66,155, 47,203,125,
-234,184,242,150,225,169, 82,141, 58,144,123,116,220,151, 1,107, 19,123,122, 30,250,121,193,102, 67, 79,221, 90,125, 84, 47, 54,
- 90,222,158,196,182,160,162,131, 74,126,201, 0,254,125, 73,138,112, 82,145, 28,224,165, 92, 15, 43,222,111,102, 98,238, 39, 19,
-203, 36, 61,118,181, 52,191,118,100,151, 0,145, 16,167,160,216, 84, 40,125, 96,145,167,229,181,208, 65,201,167,210,157,117,116,
-217,252, 54,224, 23,160, 87, 72, 33,249,155,226,242,227, 13, 73,184,206,134,183,138, 1,247,136, 43, 72,103,120,173, 84,125, 30,
-189,110, 45,124,178,220,239,225, 23, 22,193,146, 70, 66,130,215, 2,191,167,170,177,119, 30,103,109,150,115,120, 19,248,140,120,
- 40, 67,154,112,253, 29,116,183, 55,205, 31, 21,218,146,246,203,195,211,156,105,178,180, 38, 44, 85, 41, 46,170,134,137, 4,129,
-169, 54,126, 81,239, 55,100, 44, 65,160,158, 36, 97, 76,221,249,183,179, 91, 3,166, 66,226, 6, 8, 14, 53, 16,191,231,118,212,
-148,202,174, 48,254,240,229, 35,210, 88,218,182,235,251, 94,205, 65,166,183, 99,200, 73, 73,111,253,192, 68,199, 10,196,143, 61,
- 24, 65,255, 0,182,197,112,239,124,244,230,199,252,224,113,181,245, 76,177,115,114,117,138, 83,138, 8, 88,146,215,141, 29, 4,
-255, 0, 26,123,189,116,213, 22,231,228,158,235, 96,174,135, 76,141, 29, 5, 15,168,214,167,105,243,139,109,188, 65, 48,116,110,
-235, 10, 61, 98,167,107,110,113,136,222, 26,109,251,126, 71,104,146,203,136,222,146,153,205,131, 79, 88, 42, 4,107,156, 93,242,
-229,245,139,139,101,130, 64,127, 84,215, 71,182,230, 43, 27,214,135, 71, 60,100,126,176,165, 39,114, 76,114, 50, 3,175,223, 45,
-109,165, 95, 53, 74,158,216, 7,255, 0, 59, 71,109,179, 93, 76, 81,177, 60,159,213, 63, 85, 70,189,223, 45,162, 10,101, 98,126,
-176,166,213,215,152,120,238,193, 29,199,230,229, 22,197, 6,234, 11, 81,159, 18, 94, 37, 61,193, 41,169,214,150,199,145,247, 59,
-247, 6,178, 7,246,144,131,219, 89, 75,238,121,219,108, 26, 92,249,154,122,129, 83,236,168,139, 52,243, 91,133,219,237,138,254,
-233,188,229,222,236,237, 18,210, 86,202,154, 97,138,138,238, 81, 35,173, 61, 26,221,236, 30, 83, 94,205, 40,248,192, 25, 24,235,
- 82,107, 13,191,249,175,105, 20, 68, 89,171,164, 61, 33, 0,169,191,141,185, 42,211,154,227, 86,171,170,167,219,218,184, 73, 97,
- 30,249, 9, 50, 82, 28,102, 71, 97, 78,210,119,117, 62,173, 67,220,118, 57, 54, 43,151,193,165,197,128,224, 83, 49, 78, 88,111,
-177,239,182,204,152,185,161,228, 98, 20, 96,106, 90,101, 65,194, 5,122, 26, 83, 85,183, 18, 8, 66,212,235,104,140,197, 41,122,
- 44,118, 20,176,149,170,189, 43,249,116,214, 47,112,230, 7,198, 81,149,174,179,216, 90,230,106,118,116,162,226, 98,162,168,216,
- 5, 59, 21,219, 95,205,170, 33,190,204, 28,164,213,195, 54, 72,222,220, 0,162, 1,132, 58,231,179,214,157,104, 63,205,171,152,
-249,160, 53,136,236,234,186,126, 89, 33,218,129,238,208, 83,164,219,236,177,132,187,138,210,211,107,125,136,232, 52,170,212,244,
-133,132, 33, 41, 29,164,149, 30,193,170, 77,199,152,164,156,163, 14, 2,165, 91,237, 49, 90,183, 83,250,107,155,254,115,121,171,
- 27,178,218,115, 52,228,246,171,114,191,248,115, 62,212,140, 62, 27,217, 66, 20, 46,121, 53,241,148,248, 11,185, 66, 98,142,169,
-131,237,144,216, 33, 64, 10,214,167,167, 0,187,190,221, 57,179,113,100, 54,242, 65,240,205,113,241, 3,154, 73,123, 66,133,140,
-156, 11,154,161,115,106,246, 86, 7,157,119,102,188, 62, 57, 24,211, 20,100, 34,184, 98,243,210,220,200, 78, 24, 87,207, 55,154,
- 31, 48, 22,140,231,145,229, 95,240,100, 92,113,252, 58, 28,171, 80,205,176, 28,126,208,139, 5,166,253,116,132,173,146,157, 67,
- 45, 56,179, 36,173, 84, 8,113,194, 85,235, 7, 93, 51,147,246, 25,182, 43, 31,131,186,120,153,238, 46, 49, 77, 35,181,150,135,
- 12, 56, 0,192, 63,202,220, 18,184,111, 48,243, 28,114,220, 15, 5, 4, 99, 18, 0, 0, 19,210,156,122,171,157,217, 55, 34,220,
-228, 95,175, 63,221,251,171,237, 64,118, 84,192,222, 43,116,148,224,149,106,130,228,133, 22,153,241,158, 10, 10, 81, 64,170,232,
-174,193, 67,174,173,177, 89,182, 48,209, 35, 70,173, 35,246,141, 1, 28, 64,196,128, 50, 11,151,178,185,238,239,126,217, 59,224,
-230, 78, 28, 71, 70, 60,126,138,132, 50,188,183, 45,207, 93,155, 14,215, 29,171,124, 11, 12, 20, 51,112,153, 13, 6, 35, 66, 59,
- 71,105, 11, 90, 0, 73,162,151,237,123, 93,117,185,181,100, 27, 99, 67,164, 42,231, 28, 1,196,173, 82, 54, 64,206, 42,180,222,
-183,220,222,179,196, 15, 99,241,225, 94,103, 76,142,251, 50, 83, 46, 90,103,182,219,172, 16,128,241, 65, 77, 18, 61,162, 69, 79,
-193, 93, 59, 60,127, 24,228,144,150,180, 16, 66, 4,244, 84, 55,221,146, 81,216, 5,168,202, 12,251,164,184,119,171,122,165,200,
- 48, 26,152,220,187,180, 97, 32, 70,182,200,145, 28,168, 35,113,166,210, 82, 86,173,130,157,250,181,185,100,113,201, 27,208,107,
- 68,105, 69, 32, 28,253,105,141, 43,226,220,194,139,129,225,210,148,222,201,102, 65,114, 86,251, 51, 98, 42, 95, 87,138,236,118,
-156, 50, 16,218,128, 30,205,118, 2, 79, 74,146, 5, 53,105, 6,160, 59,249, 81,155,128,231, 20, 9, 78,187, 5,254, 42,172,178,
-158,118,200,228,151, 25,140,235, 98, 74,174, 75,171, 82, 40,118, 56,202, 74, 84,148,237, 52, 42, 73, 7, 85,183, 54,242, 54, 78,
-228,136, 9,201, 7,168,210,133,208, 14, 1,212,123, 18,203,109,136,142,181, 94,156,140,220,184,138,241, 16,229, 22,153, 43, 41,
- 21, 0,237, 29, 78,234, 80,233,201,217, 34,164, 96,161,163,125,203,212, 34,209,236,123,145,152, 76,245,187,124,140,235,182,117,
- 58,183, 90,240, 2,158, 68, 87, 1,232,162,132, 41, 36, 14,189,149,211,211, 66,232,155,251, 50, 3,211,143, 31,101, 91, 50,244,
-198, 20, 28,106, 84,182, 93, 32,207,177, 69,200,167,230,208, 93,137, 10, 35,232,251,146, 81,147, 30, 66,253,229,223, 9,184,241,
-130, 3,145,247,144,162,225, 14,148,138, 87,169,214, 39,114,222, 37,101,193,181,138,213,250,139,135,124,105, 32, 32, 82,231, 42,
- 20,225,221, 83, 87,214,215, 3, 75,159,226, 5, 76,142, 10, 73,224,126,180,167,198, 67,127,196,103,241, 46, 39,118,123, 20,131,
-105,122,221, 43,238,167,175,141, 56,152,119,103,228,180,235,139,110,141,182,226, 76,198,212,144,106,224, 69, 83,211,218,214, 94,
-218, 75,200,183,137,216,201,220,246,184,106, 12, 56,176, 96, 1,196,142,225,255, 0, 74,227,209, 66,109,204,150, 0,231, 2,225,
-129, 8, 20, 99,154,253,170,126,112,126, 81,124,179,114, 21,227,147,184,174,199,122,200,172,248,246, 19,114,128, 96,207,181,177,
-121,148,211, 19, 34, 58,212,133, 20, 20,183,244,109,188,165, 44,185,212,129, 78,218,234,131,153,119,239,129,183,138,210,250, 88,
-226,158, 73, 81, 85, 27,158, 25,234, 26,139,112, 78, 37,106,101,133,251,173,166,116,182,173,212,192,211,129, 71, 21, 35, 21,195,
- 33, 81, 70, 33,203, 23,108, 62,229,116,207,103,227,109, 95,175,215, 41, 83, 49,129,109,184, 91, 66,236,198, 37,217,144,151, 16,
- 61,148,169, 43, 3,112,246, 84, 10, 69, 14,173,247, 61,142, 13,193,177,218, 53,225,173,106, 72,113,199,186,112, 62,188,106,146,
- 59,199,192,124, 80, 51, 40, 71, 2, 15, 10,151, 98,191,198,145,236,241, 89,228,108,231, 56, 93,130, 56,124,221,177,172,127,221,
-220, 86, 58,252,244, 40, 66,247, 86,158, 43, 68,146,219,169, 35,122, 87,223,212, 10, 29, 70,180,240,190, 38, 55, 91,198,211, 35,
-149, 94,132, 96,220,212,165, 90, 91,207,105, 10, 9,100,121, 24,168, 31,103,161, 56, 26,103, 60,238, 31,144,113,132, 38,237,119,
- 43,133,166,255, 0, 23, 41, 68, 86,160,223, 10, 31,189, 95,109,146, 92, 80,251,201, 96,184,146,223,187,178, 2, 11,109,165, 67,
-190,189,117, 99,252,198,107, 91,151, 48, 70,195, 3, 88,174,123, 79,218,224,192, 19,233,244, 83,191,204, 99, 54,202,215, 16, 67,
-184,230, 66,231,234,161,230,114,102, 93,142, 93, 12, 6,111,246,121,246,137,141, 91, 46, 23, 24, 54,134, 89,251,146,115, 86, 69,
- 4, 55,227, 50,160,210, 20,235,136, 69, 28,222, 42, 65,165,117, 6, 75,123, 93,244,120,242, 68,230,200,197, 99, 28, 65, 15, 26,
-135, 2, 20,160, 56,142,186,156,119,199,135, 1,169,174,110, 5, 56, 97,210, 48,196,140,235,160, 71, 55,230,107,103, 13,100,252,
-141,134,101, 86,220, 2,195,102,177,174,126,107,199,216,101,253,118, 8, 88,220,105,165, 17,154, 66, 97,221, 30,122, 52,163, 53,
- 14, 7, 84,212, 37,173,105, 61, 66, 64,215, 24,218, 57,165,155, 70,235, 22,212,100,158, 83, 43,139, 35,150, 86,248,130, 76,220,
-229, 49,180,105,210, 66,106,145,173, 7,166,180, 55, 27,253,211,226,123,237,136,136,180, 43,152,210,128, 14,160, 74, 21,232, 11,
- 92,247,254,246,226,135, 61, 51,213, 47, 51, 86, 14,152,105,190, 53, 52,221, 83,253,224,106,226,184,133, 78, 37, 63,234,251, 60,
- 7, 46, 41, 67,138, 37,157,222,200,161,237,215, 82,209,119,240, 72,144,252, 94,189, 30,233,209,167, 86, 24,106,247,131, 20,102,
-138,114,172,151,243, 39,106,213,168,228,170,191,163,166,191, 69,244, 32, 84, 15, 78,181, 50,200,129,107,214,140, 98,154,112,176,
-128,219, 99,176,247,235,157,238,183,102, 87,154,211,217,219,134, 52, 86,142,172,124, 20,233,172,236,146, 41,171, 86, 49, 41, 38,
- 67,201, 21,220,122,117,212,119, 58,166,199, 29, 32,190,253, 73, 41, 63, 6,147,170,172, 34,138,147, 23, 37, 66,164, 31,205,163,
- 14,169, 2, 32,104, 31,126, 90, 79, 85, 29, 41,104, 24, 1,173,189,252,158,194, 65,244,254, 67, 68, 77, 6,219,209, 9,114, 10,
-146, 74,149, 93, 16, 53, 45,145, 37, 55, 31,113, 36,158,163,228,211,162,164, 53,169, 69, 7, 83, 81,220,116,161, 78,229, 74, 13,
- 36,146, 63, 46,186, 61, 52,219,136, 20,166,209, 32,246,143, 94,148, 27, 81,158,105, 89,135, 84, 59,244,227, 91, 81, 30,148,175,
- 30, 66,137, 21, 58,119, 74, 84,103, 1, 74, 33,194, 71,110,150, 27, 77,225, 64, 45,246,217, 5,111, 45, 8, 66,106, 74,156, 80,
- 74, 64, 30,179,169, 49,194,100, 40,208, 73,234,166, 38,149,177,133,113, 0,116,154,108,220,179,236, 70,207, 26, 68,201,151,171,
-126,214, 1,220,211, 47,165,231,148,161,220, 18,154,146,117,161,177,229, 77,194,253,237,141,144,187, 30, 36, 16, 61,117,151,220,
- 57,174,194,197,133,239,157,165, 56, 2, 9,245, 83,199,136, 47, 7, 55,183, 74,203,156,181, 57, 22,208,212,215,162,217, 4,157,
-222, 44,245, 71,166,231,202,104, 0, 66, 15, 65,219, 83, 95, 71, 86,249,179, 99,111, 45,200,219,119, 73,174, 93, 42,224, 50,106,
-240, 90,135,176,243, 3,185,134, 55, 72,214,105,141, 80, 19,153, 20,173,158, 77,124, 52,248,109,117,125, 64,150,193, 37, 72,170,
-170, 58,146, 54,142,167, 92,234,233,197,199,174,180,241, 52, 55, 10,160,185,142, 80,140,119, 40,142,151,159,105,215, 86,232, 0,
-151,104,191, 25,202, 85, 41, 4, 3, 78,190,144, 15, 67,211, 80,116, 45, 78, 99,148, 85,143,225, 44,149,119,121,183, 98,243,137,
-241, 26,117, 13, 36, 5, 10, 54, 10, 71, 79,132,234,195,110,247,170, 29,214, 21, 50,103, 55,102,163,219,214,132,148,111, 40,160,
- 42,234,170, 1,212,142,159,159, 90,114, 16, 85, 68,134,169, 6, 72,219,119, 59,129, 96,211,115,210, 82, 2, 74,171,184,147,216,
-122, 87, 81,230, 8, 22,151,111,137, 74,155,167,241,197,158, 38, 13,244,141,180,169, 10,141, 83,177, 32, 45, 74,167,101, 72, 39,
-191, 80, 11, 75,177,169,178, 63,195, 21,195, 63, 58,156, 81,104,156,151,214,243,167,194,142, 74,154,138,164,238, 45,186, 77, 0,
- 61, 61,125,163, 78, 90, 93, 24,156,134,158,134,237, 70, 21, 82,248,151,139,109,150,171,123, 82, 24,183,161, 11, 90,183,239, 13,
-118, 45, 70,159,187, 94,193,171, 67, 57,144,170,213,101,253,201, 37, 42,227,217,224, 51, 14,210,168,238,160, 0,227, 69, 21,236,
- 61,148,233,211,209,210,186,106,103,113,172,172,242, 43,170, 2,205,228,166,199,113,125,164, 80, 63, 42, 33, 1, 13,138,149,128,
-146, 7, 74,119,210,186, 93,164,139, 78,193, 34,212, 43,199,140,174,125,241,111,133, 57,185,231,119, 41, 52,219,181,100,158,180,
-245,235, 98, 30, 28,192, 42,221,215, 69,162,174,236, 47,121, 16, 60, 25, 77, 45,217, 44,178, 28,142,241,170, 86,244,118,250,169,
- 52,161,169, 72,234, 62, 77,116,143, 44, 57,189,220,187,118,219,105,157,255, 0,109, 35,144,174, 77,113,201,221, 64,228,125,117,
-204, 60,197,229,214,239,246,198,226, 22,255, 0,220, 48, 40,255, 0, 80, 28, 59,122, 41, 37,251,251, 8, 72, 74, 86, 21, 81,210,
-159,230,215,177,160,180,215,141,121, 89,247, 68, 96,105,187, 38,242,143,219, 52,173, 79, 67,211,244,106,206, 59, 58, 64,190, 67,
- 73, 42,189, 50,151, 2,194,171,215,176,127,155, 79,252, 17, 53, 38, 59,244,165,136,249, 91,136, 20,106, 83,173, 3,211,217,112,
-167,244,106, 59,246,176,236,218, 42, 99, 55, 36,200,210,203,121, 27,239, 36,120,183, 25, 14, 37, 34,160, 41,229, 40, 15,128, 29,
- 49,252,181,173,201,131,213, 73,126,230, 79, 19,235,160,191,188, 41, 4,238,117, 75, 30,178, 78,157, 27,127, 85, 68,146,249,120,
-209,200,249, 36, 68, 13,213,246,129, 31, 15,232,210, 95,183,184,212, 83,118,180,236,181,102, 74,140,180, 59, 14, 99,209, 92, 66,
-146,164,169,151, 75,106, 10, 79, 80,122, 83,191, 85,151, 59, 80,120, 71, 0,123, 69, 57, 21,251,163, 42,210, 69, 88, 91, 23,154,
- 30, 74,183,198,143, 13,156,129, 47, 54,192, 74, 16,169, 44, 33,231, 74, 83, 74, 2,162,154,157, 96,247, 15, 47,108, 46,137, 46,
-143, 62,130, 69,108, 44,185,255, 0,113,179,104,107, 37,203,164, 3, 79,147,230,231,146,148,180, 20, 76,183, 55,183,105, 86,200,
-137, 33,123, 69, 58,214,189,189,186,202, 63,202, 29,169,202, 92,215, 31, 77,105, 7,155,187,176, 64, 30,208,157, 66,164,172,103,
-206,156,246, 33,134, 50, 59, 27, 23, 73, 73,112,147, 46, 43,222,236, 11, 71,210,157,164, 84,107, 27,187,249, 33, 20,207, 46,181,
-148,177,169,145, 11,143,109,107, 54,143, 60, 39,182,102,155,152,131,220,185,130,152,118, 84,191, 98,243,131,198,119, 2,148, 92,
- 85, 58,199, 32,169, 41, 1,246,188,118,212, 79,161, 72,244,124, 26,192,238,126, 76,110,182,216,197,166, 65,212, 80,251,107,160,
-237,158,117,109,119, 65, 39, 15,140,246, 40,246, 82, 7,155,124,239, 16,185,112, 20,235,231,222, 86,121,241, 92,153, 2,109,150,
- 73,156,235, 82,154,185, 67, 87,138,211,145,124, 6,220, 89,121,178, 43,180,211,229,215,159,249,220, 95,242,238,155,111, 5,193,
-239,126,135, 97,131, 65,204,156, 70, 5, 17,106,195,159, 57,138,206, 77,163,198,129,193,225,238, 26, 72, 56,131,158, 9,198,190,
- 97, 57,143,152,100,223, 49,151, 50, 27,149,242, 83,185, 93,166,248,221,202, 83,242, 39, 40, 75,202, 99, 23, 93, 74, 27,113,169,
- 37, 43,120,194,112,132,237, 80, 36,118, 17,164,236,156,188, 54,251,195, 12, 81, 1, 3,216, 64, 0, 97, 25, 64,164, 16,169,172,
- 99,215, 94,103,220, 55, 67, 57, 39, 81, 46,226,167,229,149, 82, 76,207, 46,200, 48,121,207,202,106,247, 98,186,220,114, 8, 49,
-239, 55,184,108, 41,187,132,235, 34, 28, 5,239, 17, 11, 0,198,108, 56,224,249,169, 93,123,138,117,175,178,182,139,152, 25,160,
-199, 35, 25, 27,139, 88, 74,180, 63,130, 17,239, 18, 7, 82,117,214, 47,117,104,105, 82,236,122,170, 7,147,204,246, 41,184,142,
- 87,105,119, 24, 74, 50,171,204,230,165, 68,201,209, 9, 47,136,112,208,165, 21,167,110,194,225,113,213,168, 0,170,128, 58,252,
- 26,214, 89,242,140,209, 95, 91,204,110, 8,133,141, 32,179, 82, 41,225,212,128,103,196,214,106,228,185,232,153, 14, 31, 46,138,
-138,147,114, 85,170,206,229,158,222,253,202, 85,234,237, 39,197,155,108, 40, 42,139,112, 83,201, 3,113, 35,170,105,182,164, 29,
-116, 71, 64, 46, 36, 18, 60, 52, 49,163, 3,196, 37, 68,124,165,167, 81, 32, 55,166,154,121, 53,170,116, 11, 76,155,171,118,118,
-109, 37,151,218,110, 65,133, 41, 76, 46,171, 3,216,217,216, 2,149,237, 84,234,210,202,225,143,112,102,189, 93, 11, 74,130, 65,
-113,145, 90,139, 93,185,200, 68, 82,212,116, 58,195, 15, 20, 23,146, 20, 8,113,226,123, 85,211,218,167,164,234,244, 64,215,157,
- 68,101, 74,115, 0,118, 56,208, 16, 74,161,169,169, 82,208,153, 8, 73, 82,203, 75, 86,210,165, 40, 26, 1,232, 7, 75,115,151,
- 1, 72,115,195,206, 20,118, 61,238, 99,211, 39, 45,165,152, 45,190,149,173,150, 99, 43,107, 9, 43, 0,109,160, 20, 30,207, 77,
- 54, 96,106, 13, 65,105, 18, 56, 70, 1,245,210, 58, 29,241,220, 42, 74,138,125,157,164,168, 84,158,159,181,208,247,234, 67,134,
-138,144, 31,162,140,120,190,238,242, 16,167, 8, 65, 9,173, 62,173, 74,236,168,233, 67, 74,234, 43,228,241, 66,129,141, 24,144,
-191, 10,155,172, 23,152, 22,124, 78,235,136,185,112,180, 72, 57, 68,140,122,236,204,228, 91,155,157, 54, 28,152,206,108, 83, 30,
-240,178,147, 21,173,139,222,186, 14,164, 14,237, 97,110,217, 60,247,140,189,108,111, 2, 32,246,150,234, 32, 16, 66,170,125,167,
- 40, 65, 82,137,110,157, 10,157,117, 54,251,177,229, 69,101, 80, 50,222, 90,198,226, 90,112, 60, 86, 61,206, 35,183, 56,205,198,
-118,224,171, 43,110, 54,220,104, 11, 78,226,234,212, 85,182,136, 85, 13, 69, 70,185,251,238,127,245,167, 65, 45,165,132,134, 73,
-229, 45, 33,164,144, 53,144, 75,158, 56, 14, 56,142, 20,119,183,143, 96,208, 9,112, 80,184, 98, 61, 61, 21, 13,113,246,121, 19,
- 19,157, 25,121, 3, 89, 44,108, 66,247,239, 17,174, 42,196,167,136, 55, 59,133,189, 59,155, 90, 2,214, 75,123, 86,177,244,129,
- 95, 22,180,220,199,176,191,122,107,190, 31,194, 55, 17,161,111,136, 21,173,118,106,131, 21, 3, 36,169, 22,210, 27,126,243,137,
- 13, 32,228,106, 91, 70, 81, 53,236, 2,237, 17, 28,134,204,251, 22, 85,123,139,122, 71, 30, 50,243,232,186, 91,228, 90, 20, 89,
-143, 34, 64,110, 59, 81, 87, 37,108, 37, 41, 10, 77, 74,135, 93,101,157,181,177,251,147,103,146,212,182,120, 99, 44,241,200, 26,
- 92, 29,139,154,213, 37,218, 87,129, 68,171,105,183, 43,137, 45,140,109,148, 24,222, 65, 49,142,172, 1, 32,113,249,234, 36,188,
-223,172,115,239,176,237,246,155,117,201,184,140,220,130, 55, 79,185,110,147, 61,197, 4,132, 33,237,141,182, 62,137,208,162, 13,
- 59, 15,167, 90,235, 43,121,161,182,115,230,115,117, 22,253,150,160, 3,171, 19,152, 74,167,150, 72,217,251,182, 16, 65,196,147,
- 78,185,140, 93, 98, 73, 78, 67,110,159, 14,240,222, 44,221,185,119,134,164,211,223,237,206, 56,181, 35,195,240,158, 0,190,148,
-158,158,197,123,142,168,224,154, 55, 15,135,145,133,134, 82,237, 9,238,185, 2,170,140,143,109, 56,158, 48, 15, 99,149, 6, 53,
-182, 67,126, 68,224,213,237,139, 83,115, 45,115,224,248,147,227,173, 38, 35,238,203,108,123,107,119,194,160,170,148,119, 4,160,
-142,238,205, 61,183,217, 58, 16, 97, 50, 22,200,215, 96,115, 9,192, 5,232,201, 77, 60,251,189,110,107,208, 34, 39, 70, 61,125,
-116,191,144,243,146,243,110, 63,178,241,186,240,203,101,190,124, 91,236, 39,237,185, 36, 59,188,232,139,131, 1,182,146,199,186,
- 72,138,167,140, 23,146,181, 36, 57,226,173,191, 17, 38,180, 81, 26,172,219,249, 44,236,123,132,155,144,185,123,163, 49,184, 58,
- 50,198, 16, 92,171,169,174, 77, 96,240,210, 14,147,209, 86, 15,222,153,119, 1,131,193, 26,245, 2, 36, 87, 42,100, 90, 70, 73,
-199,170,157,238,114,214, 68,236, 72, 92, 62,172,163, 22, 30,227,134, 92,248,237,139,242, 97,219,147,108,114,197,116,155, 18,232,
-238,251,168,136, 36,169,104,126, 27,108,163,114,138,128, 42, 72, 80, 74,148, 13, 3,121, 82,213,143,118,244, 45,229,239, 78,217,
-203, 22, 77, 90,218,199, 70, 18, 61, 90, 80,181,229,197, 2, 18, 1, 32,144, 8,148,119, 73, 10, 90,107,102,144,194,213, 65,145,
- 33,199, 20, 85, 80, 7, 78, 99,141,126,144, 45, 57,212,124, 95, 30,182,119, 56, 54,189,159, 8, 83, 75,173,185,244,117,175, 95,
-209,174,111,185,187,190, 64,173, 93,155, 59,184,209, 41, 50, 54,164,215,169,255, 0, 46,168,158, 42,201,152,211,106, 84,163,214,
-181,211, 68, 26,177,138,146, 29,145, 80,127,205,164,233, 53, 57,180,156,227,189,123,126, 45, 44, 54,158, 20, 77,110,245,239,211,
-129,139, 74, 90, 8,200, 35,160,174,150, 35,165, 7, 81, 41, 18, 10,186, 18,116,161, 29, 56, 30,148,152,226,199, 94,190,186,159,
- 70,158,100, 36,208,241, 82,139,183,113,134,157,234, 84,184,224, 54, 9,112,151,147, 68, 1,218, 79, 93, 88, 55,106,157,200, 4,
-110,199, 44, 14, 53, 5,251,180, 13, 4,153, 25,134,120,140, 43,213,228,214, 24,205,120,239, 93,161, 33,190,208,175,120, 73, 4,
-124, 93,117, 62, 30, 89,190,153,250, 27, 3,245,126,169,170,169,249,166,194, 6,107,117,196, 97,191,172, 41,188,239, 46, 97,209,
-217,148,234,103,151,215, 21, 91, 18,203, 72, 37,114, 9,253,206,157,158,189,106,237,124,173,221,103,123, 26, 99,210, 29,196,240,
-237,172,101,231,155, 59, 69,187, 36,112,151, 81,110, 64, 15,123,178,163,105,252,235,121,114, 90,151,107,131, 17,136,105,249,168,
-147, 87, 29, 95,172,145, 74,107,168,109,254, 76,218,199, 18, 92, 72,226,254,145,128, 21,200, 55, 79, 60,238,223, 50,219, 70,193,
- 31, 67,177, 38,138,127,204, 6, 82,210, 19, 88,246,212,169, 36,213, 69,162,119, 3,217,211,187, 86, 13,242,107,110, 95,122, 68,
-237,170,119,249,229,185,162, 6,198,189,148, 5,195,159,243, 41,176,214,196, 99, 6, 27,139, 66,146, 95, 97,175,164, 27,187,197,
-107, 77, 75,180,242,131,109,182,144, 61,218,220, 7, 2,112,168, 23,158,117,238,151, 81,150, 55, 67, 73,226, 6, 53, 22, 94, 51,
-204,186,254,218, 90,184,223,103, 60,134,211,179,194, 75,165,180, 17,235, 9,165,117,182,219,185, 78,195,104, 37,208,192,208,122,
- 81, 77, 97,247, 30,114,220,119,116, 19,206,242, 7, 5, 74, 85,227, 44, 42,103, 32,102, 22,140,117, 42,146,150,165,201, 74,231,
-201,109, 30, 41,137, 1,175,105,231, 72, 61, 61,148,131, 74,158,218,106, 55, 53,239,177,242,213,140,183, 78, 78,232,192,116,187,
-128,169, 60,171,182,203,191,222, 71,110,213,239, 28, 79, 64,226,107,176,182,120, 16,236,118,104,246,104, 44,162, 61,178,215, 1,
-152,113, 88, 39,216,101,136,233,160,170,168, 74,148,123, 84,125, 58,241, 29,237,244,155,148,178, 79, 49, 87, 56,146,123, 77,123,
- 34,206,198, 61,190, 38, 67, 24, 70,180, 32,170,249,201,247,103,204,103,132,109,136, 82,144,229,124, 83,225,178,134, 80, 9, 53,
-168,253, 31,175, 84,114, 53, 77, 79,214,149,198,174,123,205,221,178,223,219,152,100, 45, 75,142,250,138,158,105,101,181, 33,229,
- 26,215,113, 73,219, 82, 43, 95,136,118,106, 77,189,169,148, 84,184, 30,184, 85,147,242,197,203,182,189,141,123,179,232,121,217,
- 81, 26,147, 40,151, 74,202, 94, 80, 35,169, 35,243,159,211,164,193, 17,137,229,105,155,204, 5, 91,124,187, 51, 98,116, 7, 92,
-247,128,162, 27, 7,161,165, 18, 69, 71, 78,222,181,252,142,175,227, 26,133, 81, 72,234,164,185,215, 36, 59,143, 60,185,172, 58,
- 75,205,170,173,164,246, 35,101, 61,163,208,210,154, 83,217,168, 37, 63,107,157, 52, 37,121,216,113, 80,152,129, 62, 99,173,150,
- 27,109, 5, 43, 27, 27,241, 13, 59, 59,143,203,166, 77,169, 13,169, 83,196, 95,149, 84,142, 68,204, 81,203,215, 97, 14, 43,254,
-240,183,164,175,113,108,238,165, 13, 13,105,233,169,166,170,159, 9,137,203, 81, 67,204, 1, 77, 63,177,108, 29,139, 93,173,134,
- 75, 69, 30, 11,116, 1, 66,181, 9, 61,135,167,117, 63, 42,234, 76,110, 35, 58,166,187,186,215, 65,228,208,221,139,107,125, 76,
- 39,105,105, 85, 2,157, 77, 69, 61, 30,141, 9, 38,170,114, 84,215, 60,185, 15, 40,152,214, 78,219, 46,186,169, 18,146,249,140,
-148, 87,219,110,189,135,211, 77,180,249, 53, 50,213,186,155,135, 26,155, 11, 48,169,191,136,240,151, 23, 38, 60,244,161, 74, 80,
-117, 46,110,240,234, 20,149,131,210,187, 64,232,117,125,227,248,109, 13,164,203, 45, 90, 44,134, 26, 45,141,177, 64,219,106, 66,
-208, 22,182,233, 68,111, 30,201,246, 83, 90,247, 30,221, 63,107, 62,186,140, 30,106, 25,203,236,202,128,227,119, 88,201, 66, 45,
-211,149,179,232,148, 84,150, 38, 4,213,105, 34,131,104, 95, 85, 39,227, 29,218,246,175,147,156,241,252,254,207,224,231,114,207,
- 8, 69, 63,105,156, 15, 89, 25, 31, 71, 77,121,123,205, 14, 88, 59, 61,215,197, 66,212,138, 66,184,112,119, 17,233,204, 84, 99,
-114,148,173,132, 33,213, 86,157,180,215,116,183,119, 72,174, 79,172,210, 27,115, 20, 5, 9, 91,138,173, 71,229, 77, 78,160,102,
- 34,150, 35,186,235,137, 21, 74,146, 79,113, 29,159,155, 72, 36, 10, 31, 22, 69, 42,199,241,145, 82, 86,162, 61, 3,187, 77, 61,
-193,220, 40,141,217, 60,107,199, 94,120, 26, 32,145, 95, 86,141,168,148,217,185, 60,107,120,225,110,246,184,160, 79,196, 52,151,
-188, 55,133, 23,196,154, 80,106, 75,177,142,208,225, 32,119,234, 36,132, 59,133, 41,183, 38,148, 99,222, 20,210,130,222,146, 24,
-108, 41, 32,173, 74,218,145,184,208,124, 21, 58,169,190,150, 43,102, 25, 36, 32, 52,102, 73, 64, 61, 38,164,178,228,187, 1, 78,
-171,150, 64,140,127,197,110,238,226,161, 60,212, 22, 39,210,228,251, 86,196, 63, 26, 87,213,169,149, 72, 91, 97,224,178, 41, 84,
- 86,157,250,226, 27,191,158, 28,181, 96,255, 0, 13,183, 30, 43,181, 57,169, 19, 92,244,115,115, 14,210, 14,147,208,169,211,149,
- 91,218,217, 79,114, 11,130, 0, 58, 72, 31, 61, 50,114,254,112,196,113,249,152,235,152,219, 57, 30,109, 59, 31, 91,147,121, 10,
-201, 96, 97, 50, 96, 74,182,203, 12, 22, 98,176,242, 91, 81,105,228, 44,148, 45,197, 81, 34,166,134,180,215,157, 55,191, 58, 55,
-254, 96,184,184,100, 14,142,194,217,224,182,217,242, 15,218,106, 11,223,123, 92, 80,180,132, 33,161, 79,109,105, 44,163,181,180,
- 45,241,129,144,230,228, 56, 17,208, 58,250,233,151,111,230,172,114,250,205,165,187, 85,129,201,119, 91,173,222,251,118,182,195,
-191,201,144,238, 73, 96,134,166,217, 82, 4,135, 17, 32, 54, 83, 1,198,214,218, 15,187,157,201, 39,173,123,112,214,222, 99,115,
- 46,203,184,182,235,113,189,116,177, 65,225,234,107,116,136,165,112,212, 59,163, 78, 26,193, 4,247,176, 32, 97,209,101, 45,197,
-156,150,238, 17,177,161,196,187,134, 45,110, 7, 53,225,217,136,166,119, 42,115, 14, 66,244,196,218, 49,236,139, 27,189, 89,101,
- 74,143,107, 92,119,110, 78, 77,183, 89,174,228,120,107,144,182,219,171,227, 98,150, 65, 1,161,211,183, 90, 14,105,231, 81,206,
-183, 14,187, 49, 79, 28,110,136,105,141,218, 91,222, 76,116, 47,116,245, 18,236,241,168, 77,149,246,205, 17, 50, 65,165,115, 11,
-199,170,185,141,157, 53,121,206,121, 14,247, 3, 55,204, 18,219, 31,120, 79,110, 70, 96, 24, 38,215, 5,152, 44,149,186, 17,109,
-105, 13,186,132,149,128, 18,189,131,182,166,167, 81,101,221,227,218,237, 27, 45,156, 4,188,181,191,179, 41,169,196,148, 11, 38,
- 45, 41,143, 19,213, 84, 59,173,236,178, 75,226, 60,234,225,130, 3, 85,229,252, 85,188,135,141,166,101,205, 94, 37, 33,155,125,
-206,117,173, 45,190,210, 3, 87,119,160, 46,137, 83,105,109, 33,214,155, 40, 80,220, 94, 61,189, 6,165, 55,118, 54,155,152,180,
-115, 26,165,129,216, 47,117, 70, 42, 78, 4,168,251, 53, 95, 35,131,163,105, 39, 30, 11, 81,214, 47, 20,220,173, 55,103, 25,184,
- 90,161,185, 25, 45,181,115,102,115,187, 94, 84, 71, 73, 63,234,205,169, 14, 23,105,179,105, 32,141,106,100, 99,124,104,218,230,
-184,140,218, 71, 79, 94, 73, 85, 83, 75,221,192, 98,112,255, 0, 26, 59,112,202,230, 98,183,137,119,204, 98, 68,123,147,204,227,
-178,108,209,247,176,137,126, 16, 90, 72, 47, 33,208,216, 73, 83, 68,252, 62,189, 91,199,182, 55,113,137,177, 76, 11, 70,176,227,
-138,122, 19,174,169, 91, 0,187, 5,146, 12, 21,106, 34,157, 42,255, 0,122,177, 59, 46,226,183, 92,247,117, 44, 62,235,181, 43,
- 42, 52, 36,170,163,182,186,210,193, 4, 86,207,210,192, 42, 88, 12,129,232, 48, 6,153, 66, 29,216, 67,115, 98, 82,136,201,250,
- 77,206, 81, 75, 75,106,253,154,145, 94,148,175, 77, 88,153, 3, 8, 90,124,189,139,215, 72,110,180,235,104, 75,174, 62, 23,188,
- 83,110,234,208,246, 39,226,233,167,195,131,176, 20,224,112, 57, 10, 42,148,185,179,216, 89, 59, 72, 90,138,122, 3,234,210,193,
-233,163, 80,184,138, 51, 41,106,100, 33, 73, 4,149,128,119, 38,181, 71,103,119,249,116,128, 23, 42, 40,209,234, 40,234,148, 95,
-247, 97, 33, 11, 8, 90,146,149, 37,190,213, 33, 94,131, 78,154,134,233, 11, 28,116,162,165, 28, 77, 12, 5, 51,169, 99, 16,203,
-241, 76, 91, 29,188,219,156,197,163, 78,201, 47,196,219, 88,200,111, 10, 84,152,152,236, 34,226, 8,125,134, 90,218, 86,224, 72,
- 32,238,233,234, 58,204,238,187, 53,222,237, 44,114,137,220, 34,103,123, 67,112, 47, 41,145, 39, 33, 79, 49,192,148,112,194,159,
- 16,113, 28,159, 34,121, 57,110, 59,143,217, 50, 59, 70, 47,108, 66,110,192,178,126,238, 75,146,247,108,113,246,137,108,171,170,
-183,109,238,244,107, 48,119, 75,125,189,142,180,185,150, 72,164,145,253,220,123,216,102, 26,113,236, 90,144,231,113, 64,131, 10,
-108,227, 25, 4,167,230, 93, 97, 94, 34, 65, 16,174,171,126,223,109,117,183,125,218,199,141,220, 37,186,126,153, 8, 0,163, 98,
-122,212,118, 83, 83, 55,139, 40,227,100,111,132,187, 91, 0,115,176, 87,200, 0,200,156,214,155, 23, 37,174, 76,232,205,186,231,
- 35, 21,186, 41,139, 85,199,222,229,216,101, 74,122, 36,219, 83,228, 69, 67,205,116,109,214,214, 18, 21,245,134,169,219,168,243,
- 68,221,222, 32,110, 25,221,144, 0, 90,225,138, 28,193, 29,153,209, 50, 99, 27,181,176,161, 28,105,163, 54, 84,187,133,197,235,
-198, 64,244,207,189,102, 92, 28,154,229,201,226,165,169,231, 86,165, 41, 74, 80,219, 82,165, 19, 94,221, 88,197, 19, 45,227, 16,
-192, 6,128,212, 13, 28, 7, 1,217, 68,233, 29, 51,139,156, 85,113, 61,180, 28,169, 15, 70,247,185,109, 93, 81, 45,110,190,134,
-154, 10, 74,154,148,170, 18,173,197, 6,187,133, 7, 90,233,200,155,226,105,105, 98, 97,232,245,211, 1,161,184,181,104,229,247,
- 45,151,124,102,219, 28, 8,204, 27,125,189,182, 84,220, 72,169,136, 30, 82, 9, 82,137, 41,249,234, 85, 42,165,119,250, 52,157,
-191,108,109,158,179,137,212,226,113, 43,254, 3,160, 82,137,210,135,133, 60,101, 92,160,218,224,162, 94, 44,110, 15,253,237, 99,
- 49,242, 22,167,198, 67,222, 18,222, 78,215, 66, 10,219, 40, 80, 87,106,104, 42, 59,142,168,237,173,228,187,144,199,122, 26, 52,
-200,172, 45, 36,101,150, 71,244, 26,122, 43,147,108, 8,102,100, 17,232,168,195,100,127, 20, 57,225, 43,193, 41, 39,221,188, 78,
-165, 34,157, 55,108,237, 30,141,106, 21,201,167,138,210, 23,141,126,156, 24,199, 42, 66, 17,145, 30,252,226,219,146,130, 18,153,
- 8,111,122, 28, 71,165, 84, 29, 14,149,189,114,140,142, 37,214,225, 65,225, 94,170,229,207, 48,225, 12, 12,188, 36, 56,113, 3,
- 62,218,117,191,204, 56,188, 96,148, 33,233, 47,238, 7,171, 76,244, 73, 30,154,211,183, 92,246, 95, 45,183, 11,183, 18,141, 29,
-166,183, 7,205, 93,174,212, 0, 11,157,216, 40,131,188,183,140,186,219,138, 14, 73, 74,208,146,160,133,179, 66,225, 3,176, 31,
- 73,212, 25, 60,174,220, 67,128, 70,161, 57,174, 85, 46, 47, 54,118,167, 2, 85,192,129,146,103, 77,233, 92,175,143,135,154, 66,
-139,225,167, 25, 11, 83,161,189,193,167, 15,236,145,219,165, 15, 42,247, 7, 49,206, 26, 84, 20, 1,115, 29, 34,164,197,230,246,
-212,217, 26,211,171, 73, 10, 74,100,122, 13, 33,204,229,252,109,149, 16,129, 45,238,159,178,213, 43,242,233,235,111, 40,183, 25,
-189,226,198,250,105,249,188,231,218, 97,247, 67,221,216, 41,155,117,230,230,146, 74,109,118,226,175, 67,146,151, 79,252,208, 53,
-169,219, 60,150, 92,110,166,244, 55,235, 53,153,221,124,246,107,112,180,129,122,220,126,129, 77,135,185,194,236,165,251, 17, 33,
- 55,210,155, 72, 42,235,173, 28, 62, 76,216, 52,119,164,121,245, 86,114,111, 60,183, 7,158,236,113,129,233,164,231,121,163, 33,
-169, 82, 4, 48, 9,249,190, 13,104, 53, 61,158, 79,109,128, 33,215,235,168, 78,243,183,117, 85, 30, 26,118, 82, 28,222, 98,200,
-221, 90, 92, 76,136,237, 37, 0,251, 45,178, 0, 85,125, 58,159,109,229, 46,213, 16, 45, 44,113, 94,147, 80,238, 60,230,221,230,
-112, 33,237, 9,208, 48,166,180,158, 69,200,103, 23, 82,237,210, 74, 80,237,106,132, 43, 98,104,123,133, 0,214,150,207,144,246,
-203, 45, 37,144, 49, 71, 18, 22,179, 87,222, 99,110,183,161,193,247, 15, 67,192, 20,166,163,183,169, 1,106, 1,247,143,137,209,
- 95, 72,125,170,250,125, 58,213, 55,111,143, 14,232,195, 44, 5,100, 31,187,200, 87,190,113,207, 19,141, 39,174,107,235, 53,113,
-106, 8, 31, 52, 87,166,165,182,221,163, 32, 22,160, 73,184, 20, 69,162,130,230,150,149,178,133, 68,158,209,233, 63, 22,164, 11,
-117,168, 82, 94,245,208,114, 47,107,101, 91,118,158,193,215,242, 26,122, 59, 80,234,131, 37,245, 18,122,246, 94, 27,104,123, 63,
- 46,237, 60,219, 96,218,140,235,197,163, 49, 39,211,162,138,138,143, 96,175,119,201,164, 73, 24,162, 19,151, 83,142, 16,241,246,
-251, 10,234,106, 72, 29,159,155, 85,119, 18, 6, 85,140, 0,186,186, 41,229,159, 16,143,142,227, 71, 44,145,226,162,126, 85, 33,
- 80, 99, 5,251, 40, 22,120, 11,234,164,128, 42, 75,175, 36,252, 73, 4,107,201,222,115,115, 33,190,188,101,131, 8,209, 22, 39,
-245,136,250, 7,207, 94,167,242,111,151,133,165,171,175,222, 14,169, 48,111,234,142, 62,147,243, 85,178, 83,209, 68, 55,222,120,
-161, 40, 9,240,146,216,232, 18, 19, 83,215,160,161,235,215, 92,134, 36,112, 36,215,101,126, 6,170, 87, 48, 93,216,105,167, 35,
- 68, 10, 83,142, 52,165, 2, 9,216, 2,255, 0,201,211, 81,221, 24, 38,153,115,235,141,158, 98,113,201, 50, 90,155, 32, 54,165,
- 62,181, 44, 36, 87,113,218,107,220, 71,168,118,106,210,207, 3, 75,134,109, 38,170, 39, 0,114,118, 99,142,114, 83,216,196, 11,
- 37,246,252,171,145, 74, 34, 64,176,217,164,222,110, 65,109, 47,104,163, 12, 54,226,138,106,105, 93,189, 15,110,172,110, 44, 90,
-224, 30, 42,117,193,241, 89, 93, 86,185,179,205,214,188, 38,225,152,222, 56,199, 58,181,217,225,193,114,116,217,119,155, 19,246,
-145, 6, 43, 73,220, 84,235, 82,146,211,192, 4,246,146,142,157,253,154,142,217,226,137, 3,156,139,134, 69, 61,104,149, 72,235,
-119, 60,224,158,177, 92,239,205, 57,222,217,124, 90,143,191, 33,105,116, 16,149, 21, 2,149, 10,244,244,244,213,147,173, 73,167,
- 33,140,199, 80, 69,207, 36,180, 78,144,143, 21,246,220,241, 42,154,165, 67,180,142,148,253, 58, 79,130, 90, 48,169, 65,198,164,
-174, 60,200,108, 22, 9, 45, 63, 86,211, 78,174, 40, 16, 9, 36,250,105,221, 93, 65,158, 18,120, 84, 11,176,100, 21, 97,164,114,
-181,165, 13,151, 83, 49,162,132,161, 73, 82, 80, 71, 85, 30,149, 35,215,219,170,185, 24, 69, 81, 62, 2,106,187,243, 15,153, 91,
- 54, 59, 96,148,191,122,142, 36, 46, 45, 22,146,174,136,121,173,167,243,154,215,224,211, 76,182,116,206, 74, 56,236, 12,135, 42,
-167, 28, 83,110,189,114, 94, 68,238,123,118,222,211, 51,222, 83,150,248,110, 36,143,245,116,212, 5, 16, 71,120,249,189, 59, 53,
-161,142, 33,110,208, 58, 42, 76,236, 16, 13, 34,186,119,142, 93,109, 56,173,186, 35, 13,173,148, 61,225, 35,112, 4, 84,184,160,
- 8,233, 79, 94,171,102,156,185,216, 85, 65, 5,212,165,125,184,253,225, 24, 72, 39,196, 47,168,146,164,138,182, 8, 6,128,138,
-122, 8,212,235, 57, 80,165, 22,138,214,221,107,103, 33, 98, 86, 39, 53,214,152, 55,214,146,139,124,153, 40, 10,102, 37,221,170,
-169,149, 41, 84, 10, 72, 82,189,149, 31, 65, 58,232,252,151,204,238,229,109,194, 27,214,169,107, 74, 56, 14, 44, 56, 56,125, 35,
-172, 10,206,115, 94,196, 55,235, 25, 45,202, 41, 29,211,208,225,149, 87,203,222, 39,112,182,207,153,106,156,202,227,220, 45,210,
-159,133, 49,133,123, 69,169, 17,212, 80,177, 81, 80,104,161,218, 53,239,203, 13,238, 59,232,153, 52, 68, 22, 61,161,192,244,130,
- 20, 87,141,238,236,159,106,247, 70,240,142,105, 32,246,138, 72,110,200,184,224, 40,160,149, 3,218, 83,223,242,106,209,183,225,
-213, 87, 35, 13, 31,109,133,145,213, 6,163,248,105,250,180,102,228, 84, 98, 8,161, 18,230,192,170, 36,147, 95, 70,140,204, 13,
- 17, 6,188, 73,241,212, 19,180,164, 14,210, 7,110,146,110, 52,210,113,175,102, 61, 18,209, 25,201,179,204,132, 71,104,178, 22,
- 90,140,183,220, 72,125, 65, 41, 86,212, 36,171,104,175, 83, 77, 66,159,116,100, 77, 47,115,130, 12,207, 71,109, 17, 4, 80,229,
-112,203, 45, 75, 18,153,247, 89, 3,116,119,157,112, 50,219,225, 68,164,108, 43,218, 23,185, 64,129, 78,211,211, 85,108,230, 91,
- 73,227, 50, 50, 86, 22,135,105, 36, 31,181,209,219, 78,104,115,113, 76,233, 53,190, 60,202,111,214,172,171,144,229,223,112,252,
- 27, 17,178,217, 46, 38,194,223, 42, 71,114,223, 2,255, 0,145,194, 12, 21, 48,128,219,110, 56, 28,122, 43,187,163, 7, 40,133,
-172, 1, 90,246,124,241,243,215,207,136,239,247,177,179,218,124, 84,138,246,198,246,219, 59, 16,197,119,121,205, 36, 2, 3,194,
- 56,133,112, 24,229, 91,237,135, 97, 59,133,172,147,181,236,107, 88, 11,181, 59, 45, 65, 21,128,128, 78,163,193, 80, 30,154,173,
- 60,165,204, 88,221,170,215, 26,209,155,227,185, 30, 87,105,137, 14, 69,139, 20,200,226,205,102,218,221,189,219,210,155,148,230,
-224,218, 10,110, 9,108, 33, 65,146, 74, 67,117, 29,224,235,156,237,187, 93,222,227,116,235,171, 89,227,142,119, 16,249, 90, 65,
-113,112, 96,210, 10,147,220, 39, 13, 89,234, 78,138, 31,204, 96,115, 11, 12,106, 17, 1, 56, 56, 21,197, 80, 98, 58, 58, 42, 23,
-184,227, 48,237, 57,213,142,205,113,203,114, 28, 74,102, 66,212, 17,149,221,239, 86,229,218,154,134,137, 40, 15,182,235,239, 70,
-113, 74,150,132, 33, 45,157,205,181,183,190,186,209, 75,230, 28,151,219,100,143,101,188,115, 54, 50,124, 48,215,107, 46, 67,165,
- 26, 28, 59,139,142, 5,203,194,171,226,128,153,124, 39, 63, 66,166, 39, 16, 61, 84,215,155,125,141,142, 92,227,199,151,105,180,
-222,242, 5,201, 46, 48,229,218,227, 33,248,183,108,116, 56,165,123,110,160, 50,252,114,250, 91, 14, 52,164,154,168, 26, 83, 80,
-101,220,164,221, 33,212,201, 31, 28, 73,147, 90,208, 91, 34,112, 5, 67,131, 85, 28, 14, 84,248,119,133, 46,135, 35,135,206, 58,
-184,245,209,185,217,246, 9,201, 56,113,182,179,136,225,216,207, 49, 92, 46, 45, 39, 11,200,172,247,121, 54, 40,151,183, 38,169,
- 44, 34, 58,226, 45,149,197, 75,190,242,216, 10, 14,184, 42, 61,186,212,157,103,133,166,229,203, 55,130, 87, 92,207, 38,220, 26,
-124,102, 57,173,121, 98, 41,213,168, 16,237, 58, 78, 26, 65,232,169,143,255, 0,186, 65, 26,120,132,128, 2,167, 80, 29,171,211,
- 85,183, 55,227, 92,223, 5,184, 59,101,206,175, 15,194,207,172,215, 18,156,167, 25,183, 92,155,158,236,243,113,246,148,211,146,
-147,189, 13,186,148,109, 30, 31, 84,237, 32,131,174,159,181,111,155,127, 52, 88,182,239,107,102,168, 28, 14,151,184, 35, 90, 27,
-147,131,112, 37,167, 28,115, 81, 85,123,133,132,246,146, 24,165, 9, 40, 24,254,154,141, 38,228, 54,200, 88,166, 91,102,198,241,
-204,134, 1, 88,178, 92,174, 48,159,201, 91,126,204,153,113,150,231,189, 46, 67, 69,162,181, 23, 10, 82, 16,132,145, 78,253, 20,
- 86, 18,220, 93,193, 61,204,177,148,214,208, 67, 8,114, 16, 52,128, 87,134, 42,113,170,127, 12, 1,223, 66,229,195,170,161,252,
- 25,219,115,185, 51,114,103,183, 29,152,113,226, 74,145, 61,165,196, 91,130, 83,143,149, 20,180, 67,101, 32,245, 34,137, 36, 13,
-111,102,137,222, 22,144, 73,113, 35, 78, 57, 1,199, 26,166,221,166,146, 56,207,134, 10,156, 58, 40,214, 81,155, 62,172,118,124,
- 72,120,211,112,172,146,223,114, 3,114, 19,110, 75, 33,130, 84,170,236,112, 2, 14,240, 0, 32,245, 26,189,178,219, 71,138,215,
-189,228,184, 5,207, 62,222,202,106,214, 23,184, 53, 93,136, 20,216,195,217,197, 36, 92, 11, 23,150,238, 14, 67, 93,186,105,109,
-180,187, 70,125,243,106, 75,110, 56,145, 82, 42, 82,161, 94,186,176,189, 51,180, 3, 26, 42,143, 85, 74,149,206, 67,128, 80,106,
- 52,201, 89,145, 26, 75, 44, 55, 45,199, 34, 59,226,172, 84,123, 8, 81, 36, 82,137, 3,160, 29,149,213,228, 97, 27,136,198,151,
-109, 35,102, 82, 70, 52,213, 84,100,184,202,147,227,125, 43, 64,172, 36,252,199, 18, 63, 71,168,105,229, 11, 82, 11,244, 59, 1,
-133,100, 72,207, 16, 73, 66,219,109, 67,161,165,104, 71,197, 77, 37,239, 12,206,138, 71, 10,221, 77, 58,180,182,141,213, 53, 85,
- 67,168,234, 79,163,167,235,210, 53, 33,164, 53,200, 73, 74, 85,183,197,113, 59,222, 95,209,248, 27, 84,144,161,226, 52, 0,244,
- 10,106,186,250, 97, 25, 12, 69, 39, 58, 14,126,172,169,255, 0,122,205,165,222,177,188,127, 27,110,217,142, 37,156, 98, 66,229,
- 71, 82, 45,233,102,229,123,126, 90,144,146,135, 84, 6,231,128, 61,137,233,211, 89,221,191,104,109,157,196,183, 14,124,131,197,
- 8,123,216, 48, 14,129,195,182,166, 7,151,128, 7, 4, 53, 35,242, 13,182,241,199,120,180, 12, 46,109,150,251,129,228,178, 90,
- 98,241,153,218,101, 76, 45, 69,185, 11,194, 84,184,133,166, 90,113, 99,104, 97, 64,209,116, 32,116,214,107, 98,187,143,125,187,
-117,236, 82,199, 60, 0,150,196,224, 49,110,156, 28,164,140,215,162,173, 47, 29,225, 70, 34,210, 67,179, 35,133, 49,177, 75, 5,
-166,250,251, 81, 36,222,125,202,221,105,183, 46,241,123,241, 31, 68,105,142, 70,138,164,133, 55, 25, 11, 27, 28,113, 65,126,192,
-173,125, 58,178,222,247, 41,172,135,136, 35,212,247,187, 75, 16, 40, 83,197,196, 98, 6, 24,154,168,100,109, 37, 69, 20,185, 90,
- 45, 86, 59,220,247,217,126, 67,214,181, 62, 92,199,150,167, 4,134,102, 70,221, 90, 58,243, 96, 13,233, 73, 1, 65, 61, 43, 93,
- 57,101,119, 37,244, 45, 4, 1, 34, 35,198, 72,122,129,225,209, 68,247, 55, 20,175,111, 51,174,153, 58,151,113, 93,186, 44,123,
-125,185,136,177,150,220, 22,195, 81, 89, 9, 59, 18,181,146, 55, 21, 44,154,168,232, 91, 67, 22,219,251, 61,100,189,196,156,113,
- 61, 56, 81, 52,174, 13,246,211,102,116,117, 73,154,210, 22,227, 37, 45, 4,160, 56,208,163, 73, 80, 20,165, 64,174,172, 98,127,
-134,195,215, 72,215,160, 18, 5, 25,135, 14, 3,119, 24,236,221,102, 42, 20, 47, 13, 78, 61, 34, 59, 69,231, 0,108, 31,154,130,
- 58,149, 30,154,106, 73,164,240,203,162,106,185,112, 7, 1, 66, 41, 60, 78,202,240, 61, 62,224,133, 49, 10, 68,167,163,196, 91,
-206,150,146,106,182,227,119,157,169,244, 39,174,140,248,112,157, 79, 0, 19,130,245,255, 0,141, 44,141, 37, 14, 84, 68,187, 8,
-173, 41,247,199,124, 52,182,180,143,163, 59,188, 85, 41, 38,148,236,173, 7,110,159, 71,162,233, 11, 75, 66,169,194,191, 66,196,
-228, 5,212, 80,168, 39,215,249, 13,117,131, 2, 26,216,182,101,173, 21,119, 7,181,206,131,208,127,163, 69,225,117, 82,196,212,
- 18,175, 64,118, 56,163,241,255, 0, 70,135,129,213, 74,241,232,147,215,125,245,162,141,127, 47, 86,156,108, 32, 81,252, 71, 93,
- 39, 42,106, 85,218,178, 62, 45, 62, 26,148, 60,122, 74,145, 41, 32,154, 57, 74, 86,159,149, 53, 33,128,116, 83, 78,184,164, 41,
- 10,112,146,226, 87,211,210, 13, 58,124,154,150,194, 50,166, 77,201,173, 26,152,146,146,133,184,191, 64,244,233,194,212,225, 77,
-155,147, 68,150, 84,162, 66, 20,174,181,167,175,243,105,208,224, 41, 6,224,154,241,181, 58, 74, 65, 89, 61, 71,200, 62, 45, 43,
- 88,166, 93, 59,168,250,253,164,138, 14,190,154,117,209, 7,129, 77, 58, 98,104,187,200, 90,146,145,184,128, 15,181,233,253, 26,
-113,178,180, 83, 46,121,160, 21, 29, 11,161, 74,136, 80, 61, 15,167,243,105,193, 58, 83, 69, 77, 2,229,185,231, 9, 90,220,233,
-217, 90,119,124,154,112, 93, 52, 83,102, 50,104,187,214,181,246,182,162,163, 78,239,243,105, 66,240, 82, 12, 38,140, 65,130,241,
-113, 40, 59,170,122, 2, 71,120,248,181, 26,226,237,160, 84,168, 45,201, 53, 47,224, 88,220,219,246, 65,100,199,153, 4, 57,120,
-185,194,183,165,106, 77,124, 63,122,112, 32,171,179,177, 32,212,235, 27,191,239, 12,219,173,229,184,118, 76, 97,119,168, 45,108,
- 54, 61,169,251,133,196, 80, 55, 55,184, 55,214,107,174,242,237,145,237, 17,162, 70,138,192, 98,223,102,183,177, 14, 35, 72, 77,
- 17, 30, 44, 84, 4, 33, 35,165, 43, 64, 58,235,194, 27,133,204,151,178,190,121, 10,185,206, 46, 39,172,227, 94,236,176,180,101,
-140, 49,193, 24, 70,181,160, 15, 64, 74,169, 28,167,207, 54,172,102,223,112,128, 39,178,135,208,226,183, 39,197,246,182,164, 26,
-145,223,211,169,166,160, 70,231, 56,160,169,190, 22,170,164,210,188,197,127,124,249, 10,219,136, 89, 25,145,125,159,117,101,166,
- 33, 69,183, 52,169,179,101, 73,112,172, 6,218,105, 8, 82,148,119, 2, 79,162,158,141, 91,178, 2, 35, 46,118, 9, 81,164,182,
-112, 11, 86, 44,121, 93,178, 53,111,147,200, 94, 99, 46,167, 20,194, 45,237, 34, 82,177,187,108,144,237,226,232,146, 55,169, 18,
- 94,105, 43,247,100, 20,244, 82, 26, 37,195,215,218,108,128, 76,139, 87, 53,168, 92, 78, 57,116,154,134, 65, 92, 51,170,219,158,
-254, 44, 62, 78, 60,170,160,226, 28, 37,129, 88,162,183, 57,228, 37,225,139,218,155, 98,109,218, 91, 3,106, 23, 41,109,164,200,
-148,233, 6,129,111, 45,107,245,234,228,120,142, 29,208,159, 46,154,153, 6,215, 45,215,121,197, 7, 73,250, 5, 85, 31, 51,159,
-137,159,154, 94, 89,225,140,158, 62, 27,229,155,152, 49,172, 79, 32,199,238, 15, 28,191, 40,193, 39,227,120,195,182, 93,138,222,
-243,115,238, 49,226, 67,112, 40, 3,177, 41, 89, 42,253,144, 77, 53, 3, 92, 82, 60, 54, 73,153,158, 64,169, 94,193, 86, 81,236,
-177, 71,139,220, 79, 80, 8, 42,187,126, 14, 60,165,229, 46,227,137,114,108,158,125,198,113, 28,231,149,236,183, 91,122, 49,136,
-153,244,118,110,150,219,102, 46,204, 96, 74,227, 66,153,190, 42,156, 84,160,189,206,120,101, 96, 4,138,129,219,103,189,153, 32,
- 68, 4,176,181, 48, 36, 99,214,159, 77, 1,104,235,163,220, 41, 86, 63,155,191, 20,126, 44,177,221,166,241,127, 13,241,134, 21,
- 50,239, 38,236,155, 37,190,211,139,226, 17, 31,147,113,153, 57,104,106, 59, 17,163, 69,138, 75,203,117,197, 4, 33, 8, 73, 36,
-244, 2,186,206,195,179,190, 81,173,225, 27,214, 77, 79,118,212, 64,239, 76,157,128, 85,170,225,111, 39, 87,251,184,135,200,222,
-106,240,110, 55,227,172,102,124, 69,220,152,227,136, 86, 24,242,121, 54,245, 38, 83, 96,161, 50,133,185,182,190,239, 8,174,239,
- 12, 56,227,181,246, 86,134,205,117, 22,242, 65, 19,116,198,247,131,211,168,167,160, 19,243,165, 82,189,140, 99,136, 7, 88, 28,
- 83, 63, 78,103,209,235,169,255, 0, 37,242, 71,229,147,146,177, 41,109,217, 56,223, 33,226,242,181, 58,197,174,248, 23, 54,205,
-124, 42,108,109, 15,248, 19, 29, 88, 82, 15,112,117,179, 81,214,154,165,117,220,208,149,108,133,221,184,143,151,101, 41,208,199,
- 32,239, 48, 55,216,107,231,203,205,207,225,201,203, 60,111,151, 75,190, 90, 50,100,242,158, 9, 4,170,122,173,140,197, 48,178,
-104,241,218, 53,162,152, 78,230,230,164, 36, 84,248, 68, 40,246, 6,207,110,180, 59,110,240,199,163,101,110,135,116,240,253, 31,
- 44,106, 35,100,133,189,208,113,168,183, 11,228, 59, 70, 47, 2, 58,158,113,184,190,236,200,103,193, 63, 70, 90, 40,246, 74,104,
- 64,166,218,122, 53,117, 42,187, 1, 85,183,118,133,198,155,177,188,194,203,203, 51,185, 86,139, 3, 51,110, 76,199, 17, 91, 83,
-144,218, 83,205,182,226,170,163, 82, 6,196,148,165, 95,180,116,236, 59,119,119, 91,170, 24,178, 13, 10,107,165,156,121,126,114,
-233,104,131, 6,101,150, 83, 13,162, 58, 82,167, 93, 66, 95, 90,212, 69, 9, 81, 29,149,245,106, 36,145,248, 69, 65,168,143,141,
-173,169,101,204,124,161, 41,149, 29, 94, 12,150, 22,137, 12, 21,167,161,216,170,211,168,245,106, 68, 55,137, 76, 57,171, 78,158,
-109,195,226,222,113, 60,107,150, 45,145,194, 31,144,227,120,198,100, 25,103,107, 98,235, 29,178, 98, 74, 85, 5, 1,144,211,106,
-109, 71,167, 84, 36,245, 36,157,122,115,201,126,113, 55, 16,191,109,149,202, 99,239, 49,127,202, 78, 35,208,113, 29,189, 85,231,
- 79, 52,185,104, 91, 78, 46,227, 24, 63, 7,126,176,227,233, 31, 53, 84,153,109,148,145,181, 53, 29,253, 63,163, 94,129,134,253,
-166,184,173,197,177, 28, 41, 37,210,160, 74, 82,154, 31,131, 83,155,122,211, 85,174,132,142, 20, 9,104, 43,187,175,125, 19,253,
- 26, 95,199, 10,111,193, 52,199,203,179, 27, 77,133,147,110,138,181, 73,186, 58,212,143,125, 49, 36,198,109,118,120,229,179,177,
-210, 28, 88,222,189,196, 81,178, 7, 78,181,214, 35,152,185,246, 13,142,224, 91,202, 29,139, 53,106, 24,161, 84, 68,246,212, 59,
-155,134, 90,144,210,170,122, 2,225, 85,162,201,207, 23, 12, 82, 92,182,114,135, 69,250,203, 30,100,200,241,229,217,215, 38, 84,
-185, 11,109,141,201,113,233, 7,198,105,182,208,165,167,114,146, 8, 20, 52, 26,231, 51,243, 14,235, 13,187,197,172,177, 31, 17,
-217,189, 48, 81,138, 55, 5, 32, 98,135,141, 70,115,229,113, 58, 72, 33, 83, 19,151,101, 54, 99,242,221,250, 62, 81, 46, 67, 25,
-132, 86,221,185, 89,219,184, 98,214,136,145, 35, 38, 66,173, 44,173, 79,237,125,233,108,134, 20,181, 45,197,109, 1,176,127,123,
- 92,199,152,121,178,226,254,216, 67,164,152,154,246,135, 20, 13, 26,219,145, 13,143, 16,132, 41,196,209, 58,119, 34, 18,122, 21,
- 50, 52,205,127,204,210, 47,217, 36,227,200,143,221,114,153, 23,120, 14,191, 49, 40, 68, 75, 20,104,236, 41,126, 35, 77,184,228,
- 38, 82,204,182,227,148,132,150,125,148, 16, 77,106, 69,117,204,183, 46, 75, 26, 60,107, 68, 99,131,213, 73,115,201, 60, 72,212,
- 85,165,217,234,196,213,163, 47, 36,130, 51, 28, 88, 14, 41,199,182,164,219,135, 55,113, 21,203, 22,188,225,249,206, 56,187,141,
-191, 17,114,195, 3, 3,133,142,173,171,209,147, 10, 70,229, 50,202, 36,205, 74,219,183,197, 18, 31,250,112,202,247,109, 27, 71,
-118,185,101,239, 37,238,194,238, 27,203, 9,244, 62, 77, 70, 98,253, 77, 3,164,150,179, 23,189, 7,119, 80, 69, 42,106,118,213,
-127, 27, 75,196,154,139, 72, 40,128,106,212,152,103,193,106,177,115,111, 46,101,173,102, 86,203,176,141,109,111, 19,186, 91,173,
-176,112, 77,185, 35,115,216,183, 78,177, 53, 29,151,124, 85, 60, 36, 41, 72, 82,154,232,203,167, 96, 73,233, 67, 93,104,185, 99,
-148,237, 91,107, 36, 1,207, 50, 53,206, 51, 43, 8, 46, 15, 46, 33, 52,233,199, 31,121,189,229, 21,109, 14,228, 38,112,152, 49,
-161,232, 6, 28, 8,204,144, 87, 63, 85, 48,184,175, 39, 94, 93,200,248,229,223, 41,138, 57, 3, 36, 19, 36,191, 38,205, 5,132,
- 55,100,183, 69,140, 92, 81, 50,195,108,180,221, 90,162,148,216, 77, 83, 64, 7,171, 82, 57,194,197,219, 94,217, 52, 54,174,248,
-104, 67, 64, 14,113, 37,238, 37, 61,213, 36,227,128, 42,133,106, 86,218,225, 61,192,123,128,113, 85, 56, 96, 61, 85, 44,226,188,
-101,100,228,142, 69,207, 49,215,230,203,199,242, 11, 44, 89,215,188, 14,110, 17,141,165, 80,242,233,140, 34,140,194,141, 24,177,
- 25, 13, 25, 73,113, 73, 91,251,105, 81,213, 34,186,201,238, 92,213, 55, 46,109,182,183, 8, 36,137,228, 50,102,204,243,170, 32,
- 78, 46,115,149,196,233, 69, 13, 92,184,213,132,118, 44,184,154, 80,160, 56,123,186, 70, 7,161, 21, 51,233,166,102, 69,193, 60,
-143,137,217,102,222,243, 58, 96, 18,109,153, 50,109,246,172,107, 44, 63,118,228,247,201,209, 83,226,169, 81,210, 16, 17, 35,194,
-218,144,241, 10,239,233,211, 93, 14, 63, 49,118,189,194, 54, 67,182, 22,220,120,145, 43,228,139,188,198, 52,225,222,197, 90,184,
-233, 81, 76,110,118,242,237,218, 93, 36,111, 4,168, 5, 51, 76,194,250,106,182,103,119,155, 62, 64,126,243,187, 91, 90,180,170,
-100,103, 91, 91,246, 68, 37,185, 50, 92,140,214,212, 54,182,212, 82,218, 7,140,146,162,162, 9,169, 58,190,217,173,167,181,253,
-156, 78,212,132, 96,236,130,156, 72, 57,146,152,116, 86, 82, 34,208,221, 37,125,227,137,196,227,244, 83, 71, 11,200, 88,199,108,
-242, 16,187, 56,150,197,214,228,212, 98,110, 11, 83,234, 67, 14, 20,161, 78,130,132,165, 10, 82, 5, 72, 26,220,186,208,222, 57,
- 67,144,181,167, 44, 63, 77,103,183,107,119, 92, 76,214,146,128, 99,133, 5,202, 86,171,101,190,117,179, 31,176,228,208,242,134,
- 28,101,251,191,185,198,219, 18,223,101, 68,178, 3, 91,234, 18, 86,226,144, 9, 80,213,158,205,119, 36,140,116,179, 70, 88,152,
- 41,196,187,167,209, 79,219, 60,181,186,139,116,240,235, 63,162,152,214,121, 24,197,161,160,236,164, 51,117,187, 62,218,208,210,
- 55,148, 51, 8,128, 7,204, 82, 71,137,216, 77, 41, 67,171, 91,129, 53,202,105, 58, 90, 61,191, 85, 78, 58,158, 48,192, 84,125,
- 42,209, 36,200,113,126,226,191, 10, 67, 14,190,218,221,120,161,167,146,205, 74,188, 52,132,212, 4,246, 1,171,134, 79,169,184,
-156, 70, 20, 78,210,161, 13, 53,211, 21,242,133, 58,211, 46, 60,211, 10, 81,124,182,217,218,216, 2,181, 81, 35,160, 21,161, 39,
- 83, 3,154,211,141, 60,224,189,181,179, 82,210,150,211, 13,245,237, 65, 90,220, 91, 85, 4,238, 88, 20,246,169,211,224,211, 82,
-176,162,183, 58, 32,173,236,165, 73, 80, 96, 71,132, 36,199, 74,139,239, 36, 2, 28, 41, 82, 89, 74, 72,216,164,169, 43, 59,138,
-186,212, 20,244,213,100, 55,178,107, 12,112,192,118,211,132, 40, 61,116,154,194,157, 9, 91,106,117, 94, 9, 66,150,180,132,146,
-135, 20,105,236,130, 7,237,106, 69,204,109,121, 4,102,190,145, 76, 49, 69, 59,108,178,237, 22,213, 52,140,143, 27,150,243,114,
-223,109,112,238, 16,101,169,135, 34,180,210, 13, 80,218, 54,148,169, 94, 34,146,162, 73,236, 20,214,122,250,222, 91,134,147,109,
- 56, 5,161, 11, 92, 1, 82, 78,100,244, 34,138,178,135, 67, 61,224, 74,158,154,120,231, 16,177,187,150, 81,104,122, 61,207, 41,
-122, 13,209,152, 34,237, 58,242, 69,194,238,135, 84,148,164,148, 33, 75, 82,150,148, 36, 0,157,202,245,106,143,100,188,186,181,
-179,123, 95, 28, 65,204, 39, 64,103,117,189, 56,225,129, 60, 80, 81, 78,224,233, 21, 78, 92,126,186, 43,122,143, 2,215, 10,204,
-221,157,249,109, 72,118,205, 33, 23,103,222,141,238, 1,246,202,220, 73, 64, 81,221, 83,225,132,212,122,244,229,157,195,175,100,
-121,156, 2, 3,198,144, 10,166, 88,250,232, 73, 27, 24, 1,106,229,143,109, 33,198,176,221, 29,181,195,184, 72,144,203,150,198,
-196,151, 32,199, 51, 67,143, 50,219, 95, 89, 70,189,162,144,123,170, 53, 46, 75,232,153, 51,163, 96, 58,240,212, 83, 12,114,199,
-141, 67,115,245, 28,104, 7, 66, 88, 27,163, 92, 26, 45, 77,142, 92,247, 85, 56,162,144, 80,104, 55,165, 52, 21, 39,179,166,157,
-208,167,188,220, 65,206,137,239,211,128, 5, 41, 42, 94,246,194, 75,133, 37, 73,117, 41,116, 35,176,146, 59, 77, 7,126,165, 64,
-117, 96, 7,101, 40,145,144,232,160,223,121,167,136, 75,200,115,199, 1, 72, 73, 65,220,217, 71,104,221,210,181,174,150,214,152,
-242, 74, 76, 96,140,178,175,109,210,158,183, 45,197, 68,150,244, 69,202,109,200,210, 93,105, 32,164,197,115,162,146,104, 10,141,
- 72,210, 39,141,183, 33, 30,208, 80,168, 7,166,156, 36, 56, 33,173,141,199,253, 96, 57,177,157,161,165, 70, 15,123,175,107,106,
-160,223,178,149,175, 77, 35,224,194, 34,156,215, 63,101, 35,194,224,188,107,239,120, 75, 82, 83,181, 39,227, 61,218,235, 63, 17,
- 90,109, 85,232,125, 68, 84,184,106,116,161,113, 71,168,209,212, 73, 73, 77, 73,167,167,175,244,105, 38,106, 48,243, 68,223,153,
- 74,132,244,244, 30,255, 0,209,165,137,186,104,157, 37, 38, 56,243,198,167,121,235,217, 79,243,105,209,114, 41, 6, 67, 64, 85,
-127,182, 73, 31,151,171, 75, 23,116,157, 70,182, 36,168, 0,146,105,223,165, 11,186, 34,234,196,177,191,166,211,211,191, 78, 11,
-218, 20,164,204, 36,148,238,161, 20,244,247,254,109, 54,235,211, 65, 40, 64,195, 3,218, 20, 7,243,254,141, 15,140, 52, 90,104,
- 95, 9,181, 0, 65, 72,166,143,227, 13, 26, 81, 23,144,128,149,251, 98,189,212,210,133,217, 52,217,109, 38, 40, 26, 38,138, 53,
- 79,163,166,158,248,186, 78,148,163, 41,241, 92, 78,223, 16, 0, 71, 90,143,242, 13, 23,197, 1, 71,166,134, 67, 78,161, 73, 72,
- 80, 34,159,151,118,144,235,192,148,166,178,149,161,239, 75,136, 5, 9, 52, 53,174,222,237, 87, 92,222, 97, 86, 86,204,198,174,
-143,149, 12, 97, 57, 7, 32,253,237, 33, 9, 49,241, 75,107,215, 20,138, 84, 57, 62, 93, 99,178, 15, 79,217, 11, 90,199,173, 35,
- 92,143,204,141,212,178,207,225,219,156,174, 67,250,163, 19,243, 1,233,174,203,229,110,214, 46,239,252,103, 12, 34,110,175,247,
- 28, 7,206, 79,162,186, 77, 62, 36,105, 17, 94,101,230,144,227,110, 32,165,105, 41,168, 80, 58,224, 55,150,236, 99, 16, 10,244,
-156, 50, 59, 80,198,185, 93,230,211,203,222, 53,149,195,152,171, 53,170, 68, 43,162,219,127,195,147,105, 11,101,240,235,149,236,
- 9,160, 85, 77,122, 17,172,160,186,117,171,240,202,180,214,238, 74,149,252,140,249, 34,176,121,111,198, 87,150,229,129, 57, 39,
- 48,229, 72,121,219,149,246,114, 3,175, 98,214, 9,100, 41,171, 68, 74,141,173,144, 40,169,110,160, 2,226,201, 77, 75,104, 78,
-182,113, 90,155,192,215, 74, 16,102,130,169,247, 13,195,197,113,108,126,232,249, 47,213, 86, 11,204, 23, 47,113, 71, 22, 99,232,
-123,149, 34,219,166, 88,158, 74,214,228,107,172, 6,231,219,202, 91, 4,251,109,184,149,160,212, 10, 0, 70,152,191,141,178,200,
- 24,214,130,149, 22,219, 87, 2, 84,244, 85,118,227,140,223, 19,229,164,197,123,132, 60,176, 90,162, 99,238, 56,146,206,119,116,
-192, 97, 97, 24,179,109,189, 80,167,163,202,126, 35, 14,205, 9, 4,212,195,109,195,221,168,115,109,143,187,238,150,132,234,250,
- 77, 76,248,167,219, 98,231, 21,235, 63, 69,115,135,206,181,191, 13,189, 92,115, 30, 36,228,168,145,236,242,211, 29,231, 27, 22,
- 75,196,155,109,162, 96, 88, 86,199, 89,216,166, 18,230,213, 1,185, 43, 69, 71,120,161, 7, 81, 54,235, 49,111, 38,166, 96,230,
-148,224,105,231,222, 72,208, 10, 40, 60,107,227,211, 54,192,102, 97,188,175,145,227,184,132,217,243, 81, 22,244,236, 75,107,144,
-212,167,230, 74, 18, 72, 41, 66, 11, 2,171, 36,171,109, 18, 58,250, 53,211, 33,152, 58, 48,231,166, 88,212,160,242,236, 70, 6,
-190,166, 63, 3,223, 34,118,222, 55,179, 79,243,193,230, 58,200,187, 29,232,220,164, 99, 28, 47,104,203, 45,226, 19,150, 54, 92,
- 80,141, 63, 35,117,137, 45, 7,153,125,215, 84,184,176,214,170, 20,160, 58,186, 16,227,106, 25,237,214,245,151, 8,216,200, 44,
- 4, 41, 24,175,103, 12, 62,126,202,133,117, 35,151, 66,226,122, 79,179,211, 93,218,229,175, 50,124, 91,198, 49,231,221,254,240,
-183, 38, 67,169, 30,249,115,146,226, 11,129, 41, 52, 5, 78,184,119, 33, 0,158,130,180,244, 13, 98,239,238, 97,183,126,152,154,
- 92,227,211,141, 63,107,182, 92,220, 16, 15,116,124,184, 87, 51,243,239,196,195,143,164,123,229,154,197,120,181, 95,239,171,184,
-123,164, 56, 86,183, 5,215,107,170, 35,171,142, 36,169,182,130, 59, 84, 84,122,119,234,188,252, 84,128, 29, 26, 71,101, 91,197,
-202,109,184,112, 87, 19,210,166,154,217,127,153,187,117,210,217,108,153,117,137, 10,227, 29,212,210, 83,236,182, 19, 38, 59,106,
- 2,187,118,128,149, 4, 30,180,212,109, 79,121, 71, 82, 55, 14, 78,141, 8,140,233,120, 24,116, 31,170,185,175,230, 83,202,223,
- 28,114, 62, 89,103,228, 92,122,237,117,179, 89,242, 96, 21,127,183, 88, 20,220,123,116,155,138,170,180, 75, 40,240,202,219, 47,
-245, 75,219, 72, 5, 64, 42,149, 82,137,187,178,221,102,181, 97, 96, 0,166, 75,209, 89,107, 73,204, 4,193, 62, 99,232,225,245,
- 81,220, 15,202,134, 41,135,176,204,203, 19,239, 45, 32,133,128,157,169, 82,149, 81, 85, 40,132,110, 53, 61,164,234, 96,223, 37,
-151, 7, 83, 23, 50, 2,112,171,193,131,226,136,143,110, 74,233, 84,161,176, 9,217, 85,168,166,160,215,167,167,213,168,239,187,
- 47,170,135,156,106, 76, 77,173,185,177, 12,117, 20, 7,130, 86,150,138, 83, 85, 84,142,206,206,218, 82,186,104, 93, 22, 21,166,
- 78, 20,232,158,217,129,192,188,177,101,185,161,182, 88, 76,108, 98,231, 29, 82,122, 37,181,166,235, 21,178,180,158,148, 41,223,
- 65,234,248,117,214, 60,167,188,115,247,120,132,106, 73, 14, 8, 56,247, 77,115,175, 50, 35, 18,109,228,167,218,109,115, 55, 34,
-205,237, 22,199, 36,198,142,135,102, 73,105, 11,240,118, 55, 86, 22,232,236, 27,169,217,235,215,183, 54,189,154,230,235, 75,159,
-221,105, 56,244,165,121,178,226, 12, 42, 59,139,200,119, 64,255, 0,137, 62,208,195,145,148, 64,218,201,240,220, 79,164,212,131,
- 93,108, 36,229,168,203, 82, 57, 8, 61,117, 73, 43, 7, 10,242,102,107, 50,226,167,225,197,101, 48,153,116,109, 72,105, 59,164,
- 4,244,253,170,119,250,181, 46,219, 98,138,212, 7,188,234,112,233,202,162,146, 27, 84,243,150, 44,247,182,239,179,102, 90,158,
- 92, 38,110,150,249, 41,186,251,147,139, 93,206,250,252, 52,237, 97,165,150,193, 2,189, 8, 10,161,245,235,207, 30, 99, 94, 56,
- 93,203, 36,145,196,198,233,110, 15, 44,112,205, 9,111, 17,219,134, 53, 71,117, 49, 46, 39, 72, 7, 12,211, 37,170,174,231, 32,
-140, 66, 37,150,199,146,218, 47,175, 49, 14, 76,133, 93,161,193, 83,150,203,146,229,205,221,225, 23,214,133, 41,175, 12,208, 37,
- 72, 32, 26,107,142,223, 69, 45,203,229,117,172,205, 4,129,164,168,115, 16, 1,169, 58,211,136,168,205,179, 36,184,130, 19,135,
-232,235,168,101,236,194,209, 50, 85,230,231, 50, 52, 75, 26,152,132,236,235, 84, 24,119,167, 64, 91,137,116, 2,133,164,239,121,
- 10, 66,133, 64, 73, 3,226,210,159, 20,172,107, 35, 97, 47, 4,128,226, 90, 58, 51,232, 67,233,169,177,219, 57,128, 1,138,116,
-209, 8, 28,203, 14,227,107, 85,134,249,100,182, 55,113,153,225,125,223,145,251,243,230, 44, 23,119,238, 91,174,182, 84,164,109,
- 40, 0, 20,167,167,125, 53, 10,227,151,101,100,190, 52, 50,184,176, 46,166, 32, 82, 19, 0, 15, 79, 89,162, 22,197,135, 83, 79,
-161, 42, 80,195,243,184, 81,113,123,150, 19, 42, 28, 43,205,238,228, 87,115,111, 44, 84,181,201,129,109,182, 66, 5,231, 19, 13,
-176,166,129, 82,138, 83,181, 69, 68,142,202,107, 49,186,237, 50, 73,112,219,192,226,200,219,221,240,208, 2,231, 28, 6,162,135,
- 14,145, 72,124, 78, 99,245, 14,140,169, 91,141, 45, 88,182,115,151,220, 45,185,158, 39,117,200,177, 89,150,187,156,184, 87,104,
- 23,133,199,106,201, 33,212, 5,135,219, 70,208,165, 45,132,168, 41,108,212,212, 5, 16, 14,168,185,186,226,239,106,178,108,182,
- 83, 50, 57,154,230,130,215, 53,117,133,200,246,228, 15,102, 85,103,100,230,177,200,236, 79,163,229,233,171, 29,131,225,158, 92,
-177, 24,182,214,109, 57, 5,230, 23, 37,218,151,126, 77,198,215,126,131,114,103, 29,206,236,236, 41, 30,233, 15,196, 96, 68,151,
-111,121,228,189,226, 52,226, 84, 64, 41,170,136, 73,161,227,123,254,233,204,155,211,158,100,137,142,178,126,141, 46, 97,143,196,
-133,216,234,122, 59, 83, 94,208,136,225,130,170, 12, 69,107,237,157,107,183,133,152, 35,218, 14, 5, 81,223,229, 24, 98, 48,227,
- 81, 91, 60,201,121,226,252,213,220,133,219,211, 76,100, 56,116,153,240, 44,241,156, 64,189, 74,183,182,192,113,144,183, 29,148,
-153, 97, 72,121, 47, 20, 45,160,158,162,135,215,173,115,249, 38, 14,101,177, 22,229,132,199, 40, 5,201,220, 14, 37, 14, 1,186,
-113, 8,160,174, 24,213,127,243, 23, 57, 31, 24, 3,175, 60, 58, 49,237, 74, 83,228, 47, 48, 57, 87,155, 78, 90,198,102,102, 22,
- 59, 74,227,227,214,233,145,113,251, 46, 29,141,219,177,137,111,205, 91, 12,188,235,146, 75,169,109,231, 27, 42,140,119, 15, 22,
-128,159,101, 32, 26,106, 55, 44,121,121,107,229, 30,215, 51,108,229,122,202,224, 94,233,100,124,129, 20,128, 26,138, 1,239,127,
-151,180,148,171, 75,173,242, 77,212,136,158, 26,140, 84, 70,134,144,160, 47, 90, 97,211,157, 71,190,104, 49,190, 48,183,228, 88,
-116, 94, 38,195,242, 43, 71,255, 0,226,240,175, 89, 93,171, 40,186, 50,184,179,239,142,130,183,221,109, 13,169, 97,182, 80,170,
-209, 41, 87, 94,241,173, 15,150, 91,150,231,115, 5,195,247,107,136,222,124,103, 50, 55, 70,210, 11, 89,144, 4,144, 20,244,148,
-244,213, 13,241,136, 57, 97,111,106,241, 53, 93, 51,156,159, 27,106,202,150,225,198,136,185,202, 83, 5, 41,135, 24, 22, 32, 17,
- 66,224,105, 52,246,170,161, 74,145,217,174,229,177, 89,202,226, 28,226, 81, 14,124,122, 22,176,194, 23,252, 73,120, 36, 51,160,
-209,108,154,237,132, 93,176,156, 41,139, 14, 52,212, 44,141,249, 73,126,235,149,204, 99,194,121,254,138,107,193, 81, 77, 17,181,
- 42, 88, 93,118,250, 53, 62,214,218,226, 25,230,116,207, 38, 52,238,176, 31, 74,211,209,197, 51, 37,145,206,114,179,128,232,168,
-246,248,213,146,212,133, 34, 10, 88,184,220,100,192, 90, 92,117,129,226, 34, 27,141, 16, 2,212,226,168, 86,165, 82,190,200, 26,
-157,106,249,102,112,212,173,104, 56, 14,159, 69, 79,135, 91,129,224, 22,146, 45, 89,196,123, 38, 53,145, 71,153,102,102,235,147,
- 94, 18,136,214,155,188,186, 60,221,174,216,224, 41,121, 41, 79, 64,130, 15,205,160,237, 38,186,153,121,181, 62,242,104,203, 30,
- 91, 27,113,115, 71, 19,194,166, 51, 75, 70, 34,152,177, 36, 93, 39, 71,122,205, 12, 37,126, 59, 79, 73,146,164, 81, 14,169, 1,
- 59,212,130,162, 43, 79,103,176,106,213,237,100, 68, 61,220, 50,166, 94, 67, 14,178,122,169,172,233,101,196,149,165,138, 60, 66,
- 16,148, 10,212,132, 83,218, 61, 43, 93, 72,214, 87, 26,125,152, 97, 70,163,200,117,191, 29,166,218,109,110, 50,199,182,219,201,
- 43,104,120,132, 2,170,247, 20,146, 53, 18,230, 54,220, 22,151, 40, 11, 78,232,210, 23,166,131,134,185,110, 23, 67,161, 46, 33,
-165, 35,109, 58, 4,237,238, 79,119, 81,164, 92, 66,198, 4, 5, 13, 17,115, 80, 32,167,173,166, 68, 63, 13,199,102,198,151, 41,
-182, 17, 33, 73,109,149,164, 56,218,202, 84, 17,237,168, 20,143,164,166,228,237,169, 26,204,222,198,246, 16, 24, 64, 37, 51,226,
- 56,229,213,215, 71, 27, 1, 82,106, 75,157,109,189,221, 35, 38, 37,223,238,198,100, 66,143,109, 83,115,124, 84,132, 64,183,186,
-193,113,180,173, 72,232,129,233,233,243,187,117,155,138,234, 11, 82,177,135, 16,226,236, 19, 50, 10, 28,243,250,169,233,152,241,
-221, 40,169,194,144,134, 83,115,188, 91,163, 99,151, 71,215,120, 77,190, 56,182,227,142,182,218, 35,181, 13,149,172,169,192,144,
- 91, 78,245, 57, 90,111, 89, 38,131, 83, 29,180,195, 99, 41,185,136,104, 46, 58,158, 49, 36,148,195,142, 0,116, 12, 40,155, 54,
- 8,152,211,101, 78,185,110,105,198, 98,190,244,118,148,165,176,247,138,148, 57,225,239,173, 69,118,146, 43, 74,118,234,215, 64,
-148,171,128, 39,134,117, 20,188,184,162, 97, 73,101,246,212,148, 37,164, 5, 81, 30, 19,235, 4, 37, 14,117,238,232, 8, 26,144,
- 35,113,207,209, 70, 16,112,162,158, 2, 22, 36,111,144,230,209,185,198,213, 65, 85, 20,244,161,168,235,167,181,232, 68, 24,209,
- 58, 69, 68, 20, 18, 28, 92,101, 5,208, 17, 66,186, 17,232,248,136,235,162, 35,196,195,141, 26,107,192, 86,235,145,227,143, 25,
-198, 82,132, 40,108,250, 38,192, 27,171,251, 95,229,210, 91, 31,134, 80, 28,122,232, 53,129,133, 43, 79,102,191, 53,205,158, 23,
-206,238,222, 59,171, 74,105,220, 40, 87,222,242,122,167,218, 35,187,179, 91, 15, 31,162,181, 40, 40,116,109, 34,128,138,250, 52,
- 98,122, 48, 5, 25,109,186,158,222,238,186, 95,196,245,208, 0, 26,245,198, 16, 69, 73, 29, 52, 62, 38,129,104,162, 10,216, 13,
- 7, 83,217,167, 60,117,160,128,208,169,110,169,249,160,215,213,160, 46, 58,233, 36, 14,138,215, 99,109,246,142,158,141, 44, 92,
-117,208, 13,109,110,151, 18,163, 68, 2, 15,112,209,248,244, 16, 82,129,113,196,178, 18, 26, 38,163,180,127,155, 68, 38, 83,157,
- 25, 2,139, 34, 51,175,251, 99,217,235, 66, 15, 79,213,167, 62, 33, 56,210,116,131, 67,162, 11,133, 84, 61, 5, 59,125, 58, 51,
-114,156,104, 8,197,110,108,174,174,171,175,102,139,227, 40,196, 66,189, 69,169,180,138,184, 59, 59,105,223,249,180, 13,223, 93,
- 24,137,180,113, 54,214, 85, 74, 36, 0, 59,254, 15,139, 73,248,179,211, 74,240,218,107,101,218,210, 8, 80, 20,167,229,232,210,
- 77,221, 40, 68,218, 53, 18,222,234,220,232,157,194,189,221,148,249, 53, 95,113,115,215, 86, 86,209,138,191,222, 77,218, 49,103,
-102,168, 82, 0,241, 32,217, 86,165,158,212,150,215, 32, 4,246,119,238, 39,226,215, 29,243, 14, 96, 77,187,137,203, 95,204,218,
-239, 62, 82,181, 29,114, 0,224,207,157,213,118,221,152,211,168, 32, 30,129,123, 77, 58,212,245, 30,142,189, 70,185, 20,243,248,
-129, 13,119, 72,225, 44, 43, 76,135,173,205, 73,201, 45, 97,196,181,225, 53, 39,222, 22,157,128,169,199, 25, 27,144, 59, 58, 13,
-244, 39,224,167,126,170, 35,128, 73, 59, 1,201,106,124,146, 17, 25, 78,138,146,220,121,150, 82, 86,235,136,109, 41, 21, 42, 90,
-130, 64, 3,225,214,236,200,214,241, 21, 66,132,212, 39,157,242,103, 17,227,143, 34,225,151,174,196,235,182,255, 0,245,136,243,
- 46,113,152,124,197,113,174,197, 52,167, 65, 40, 34,157,169,235,170,217, 93, 19,158, 92, 90, 9,235,167, 88,247,123,173, 39,209,
- 92,175,243, 79,248,196,241,151, 15, 70,159, 3, 19,122, 53,214,232, 25,125, 16, 54, 44,169, 18, 93, 72,160,240,246,165,107, 89,
- 10,167, 96,160,233, 82, 6,149, 9,154,232,233,136, 96, 61, 0, 85,132, 91,113, 35, 84,164, 48,122,220,125, 21,242,211,230,251,
-207, 23, 39,121,159,202, 33, 95,150, 94,198,153,128,185,239, 15, 1,208,236,219,139,243,130, 1, 83,190,201, 74, 16,202, 17,181,
-180, 36,158,213, 18, 77, 64, 76,237,191,101,109,137,123,228, 58,156,239, 80,171, 15,137,108, 64, 50, 44, 26, 7, 20, 83, 80,111,
-150,222, 97,186,112,127, 40,199,228,149,194,110,233,121, 17, 37,195,251,198,108, 95,126,147,108, 92,242,128,185,109, 36,165, 68,
-173, 41, 73, 73, 41,235,180,154,105, 59,222,222, 55, 72,124, 16, 80, 42,167, 74,112,169,155,117,212,108,145,101,200,251, 43,173,
-121, 47,226,209,149, 47,142, 19,129, 92,239,120,246, 87,143, 60, 30, 42,140,167,149,110,186,132,201, 39,123, 74,162, 86,217, 73,
- 82,141, 73, 0,143, 65,213, 36, 27, 91,217, 23,130, 1,106,113,171, 59,157,146,222,105, 68,204,152, 39, 65, 35, 10,169, 23,222,
- 92,143,200,238, 11,148,204,161, 83,241,201,142, 71, 76,187, 50, 47,110,206,129,105, 46,237,240, 8,109,199, 21,245, 36, 20,168,
-145,222, 14,155,248,103, 91,230, 59,221, 36, 99, 90,155, 8,226,141,168,210, 9, 28,122,104,107, 63, 27,216, 34,100, 17, 46,145,
- 29, 99,221,230, 41, 38, 67,105, 32, 2, 77, 54,186,158,234,143, 72,212, 87,221, 61,205, 45, 53,103,220,140,235, 2,174, 18,166,
- 65,181,217, 17, 1,203,131, 78, 52,182, 54, 71,105, 74, 10,123,121, 2,131,214, 53, 70, 90, 75,149, 42, 21,235,219,164,187,162,
-159,156,101,120, 76,155,106,236,247, 85,169,113, 65,116, 69, 11,114,129,128, 85, 90, 80,244, 0,215,224,212,227, 30,144, 8,206,
-184,167, 49, 74, 36,156,200,206, 53, 59,218,102, 35,238,196, 66,142,250, 91, 29,119, 20, 0, 73, 73, 42,218,154,129, 80, 58, 14,
-223,207,166, 92, 0, 42,149,158,248,135, 3, 82,110, 41,144,174, 20, 7,155, 32, 56, 18,183, 3,244, 27, 66, 74, 9, 20,235, 74,
-130, 58,138,122,117, 30, 67,141, 25,118,163, 82, 77,134,233, 21,197,162, 74,202, 18, 86,177,176,164,210,170,168,237, 4,127,147,
- 81,222,227, 68,227,194,164,174,112,129,107,155,229,163,145,174,200, 91,104,122, 53,186,204,219,234,105, 85, 21, 85,230,220, 90,
-169,167,237, 10,116,215, 90,242, 54,119,197,204,118,169,254,176,123, 60, 55, 86, 27,158, 83,249,116,164,240,211,255, 0, 80,174,
- 35,221,102, 66,109,213,148, 0, 86, 1, 27,143, 90,126,109,125, 28,179,123,136,198,188,191,184, 93, 38, 85, 18,101, 92,129,110,
-198, 27, 68,153,236, 76,149, 29,213,169,144,168,140,151, 26,142,178, 13, 22,234,128,246, 18,147,212,234, 47, 53,110,178,237, 22,
-134, 72,148, 57, 70, 32, 2,131, 50, 80,144,184, 86, 86,230,233,196, 20, 41, 85,207, 32,230, 67,104,147, 98,188,174,235, 38,225,
-144,195,102, 99,172,253,213, 36,219,173,232,113,247, 82, 97, 45,232,228,178,167, 29,142, 18, 9,220,146,149, 10,131,175, 61,238,
-124,235,123,191, 67,225,137, 30,198, 49,231, 83,245,123,236, 57,181, 2,166,120, 98, 18,163,155,189, 88,143,144,168, 74,255, 0,
-205,217, 46, 85,145,228,151,171,142,106, 32,100, 86,233, 78, 92, 83,112,155,109,142,213,145,245,186,221, 95, 74,155,140,141,137,
- 46,182, 66, 83,236,208,158,240,117,204,183,123, 23, 88,178, 59,103, 48,201, 25, 5,164, 7, 18,228, 37, 70, 36,149, 67,137,199,
- 10, 96, 91,178, 65,222,244,117,213, 64,186,114, 13,218,251, 51, 47,149,107,110,227,113,153, 62, 33,113,251,128,148,224,240,155,
- 96,237,117,244,160, 10,169, 42,160,160, 61,154,183,143,109,109,163, 97,107,203, 90, 1,201, 7, 28,135,109, 72,101,184,104, 1,
-201,133, 66,146,103,166,227,113,155, 42,107,139,128,255, 0,186, 23,150,183, 27, 43, 18,223, 66, 83,208, 84, 10, 21,245, 58,188,
-210, 96, 96,107, 2,133,245, 10,127,222,194,142,219,174, 81, 90, 84,216,140,198,118, 91,115,151, 29,134, 39, 74, 6, 35, 44, 45,
-116,169, 41,219,216,146,123,126, 93, 53, 52,110, 40, 84, 2, 49, 32, 98, 77, 37,236,203, 28,106, 80,180, 93,173,112, 99, 55,143,
- 72,104, 72,157, 18, 98,148,110, 17,165, 55,238,165, 15,123, 33, 30, 16, 72, 81, 9, 81,170,136, 93, 53,157,186,181,154,105, 12,
-193,200,194, 50, 32,174, 29,127, 54, 20,195,227,212,117,138,182,124, 99,158,113,157,183, 26,114, 45,210, 68,235,125,253,139,164,
- 59,123, 48,109, 54,165, 95, 22,235, 9,142,234, 31,185, 7,220, 33, 12,130,225, 74, 11, 36,130, 65, 52, 52,215, 34,230,189,131,
-115,188,186,253,136,107,161, 44, 36,151, 59, 64, 93, 65, 24,128, 41,195, 29, 67,211, 82,236,236,225,209,226, 73, 43,154, 75,189,
-208, 23, 15,155, 58,125,243, 99,143, 99,152,246, 47,151, 98,247, 60, 49, 45,229,246,149,187, 24, 69,180,169,140,138, 36,136,141,
- 24,164, 7, 27, 11, 97, 42,125,106, 42,240,210,181, 44, 30,222,154,204,242, 91, 13,204,211,217, 93, 50, 85,133,232, 73,114,176,
-135, 29, 89, 20, 40,209,196,128, 42,210,230,102, 78, 26,246,241, 40,152,224,128, 99,233,170, 86,140,186, 51,146, 18,171,212, 95,
-191, 22,252,181, 7,109,110, 45, 81, 18,221,197, 41,218,167, 84,232, 72, 81, 32, 10,209, 67,169,237,215, 94,126,208, 90,207,216,
-187, 66, 15,120, 99,134,104,159, 85, 68,195, 87,123, 26, 84,228,236,251, 25,127, 63,114,233,198, 6,235, 6,197, 30,215,107, 22,
-243,125, 88, 50,173,242,210,211,105,144, 82, 90,216,163,181,221,192, 56, 61,165, 14,186,135,203,123, 37,203,108, 4, 91,166,151,
- 74, 92,229,209,145, 10,116,231,134, 73,134, 66,151,112,230,120,186,226,203,167,141, 56, 78, 61,150, 95,113, 88,156,153,123,155,
-101,198,236, 55, 81,122,178, 89,100,136,242, 37, 72,200,174, 86,182,210,181, 37,196, 5, 41,212,161,223, 18,158, 42,200, 0,244,
-166,163, 91,221,219, 90, 94,127, 45,129,174,146, 70,150,185,224,144, 3, 26,226,152,112, 36, 38, 67, 19, 78,207, 23,236,252, 87,
- 20, 9,130, 98, 79,213, 80,126, 76, 35, 42, 51, 13,187, 37,199,140, 56,238,137,114,161,183,238, 73, 68,133,245, 1,107, 80, 59,
-186, 86,128, 13,117,123, 32, 88,112, 25,228, 14, 56,117,116, 86, 81,142, 33,199, 12,206, 71, 28, 41,189,101,184,199,186,202, 98,
-195, 14, 35,118,246, 91, 82, 4, 9,142, 73, 83,170,241,251,202,214,176, 18,128,174,222,131, 86, 19, 68, 96,105,149,228,187,164,
- 39, 10,149,164,198, 53, 56,169,236,167, 6, 93,142, 11,109,157,121, 1,191, 67, 84,246,110,126, 28,107, 50,107, 49, 79, 22,156,
- 9, 89, 83,162,129, 99,165, 77, 5, 59,180,213,157,203,101,127,134, 24, 64, 35, 60,147, 14,138,145,110,243,145, 24, 37, 48, 87,
-107,148,227, 45, 92,174, 78, 80, 60,151,118, 68,167,186,169, 41,119,170, 84, 18, 41,236,165, 68,106,195,197,214,116,197,195,141,
- 57, 36,128, 20, 35, 26,108,166,124,235, 60,169, 12,196,144,143, 20, 3,185,212, 13,199,219, 20,173, 8,239, 73, 34,154,148,232,
-219, 48,239, 12, 40,157, 11,102, 0,145, 67,155,194, 25,240,214,227,113,157, 49,154, 90, 1, 45,237, 11, 42, 79, 74,208,118,212,
-233,163, 14,160,129,113,160,216, 9, 40, 48,164,166,214,169, 33,201, 97,194,163, 37, 74, 42,108,116, 52,233,208,244,236,212,159,
- 8, 32, 20,243,222, 98, 58, 72,202,134,145, 14,108, 22,162, 58,233, 44,123,202, 22,235,109,147, 71, 20,216, 52,173, 5, 79,192,
-116,202, 49,196,140,248, 26, 70,176,229,161,109,138,148,220,173,155,138,140,144,218,220, 75,181, 72, 41, 66,133, 13, 70,152,185,
-179, 19,181, 6, 9,149, 19,228, 13, 11,192, 84,187, 97,111, 33,202,174, 72,183, 89,220,138,110, 23, 84,125,216,150, 28,163, 13,
-190,180, 26,165,189,235, 77, 42,118,238,169, 87,118,176,155,131, 45,246,150,234,156, 20, 97, 85,205, 58,240,165,192,215, 72,123,
-188,105, 10, 45,169,214,238,235,133,113,109,105, 16,222,116, 72,247,113,188, 37,109,146,133,109, 34,128,208,138,130, 14,165, 92,
-220,254,200, 73, 25, 5, 70, 20,135, 18, 10,113,164,119, 98,180,236,135,140, 98,167, 24, 67,207,109, 83,228, 13,237,166,189, 86,
-123, 43,240, 13, 75,141,238,115, 70,172, 28,159, 36,164,185,229,184, 28,235,214,156,101,164, 36, 56,202,124, 48,178, 5,125,175,
-106,157,189, 19, 83, 65,217,160,230,185,199, 60, 41, 39, 83,171, 79, 1, 42,140,243,142,173,170,165, 72, 33, 85,250, 68,110,236,
- 1, 36, 84,215, 74,212, 87, 1, 64,184,130, 52,209,112,180,123,187,140, 46, 56,112, 44, 31, 13,242,104,164,154,245,211,140, 7,
- 60,169, 72, 87, 80, 53,137,137, 37,134,144,242,153, 80, 97,196, 41,117, 32, 16, 61, 99,160, 58, 79,136,215, 18, 23, 26, 35, 32,
-118, 0,227, 67,110, 62, 15,137,181,223, 4, 35,111,137,179,232,246, 31,218,173, 59,107,210,186,109, 10,162,133,162, 94, 24, 45,
-125,230,184,232,108,116,234,125, 26,191, 18,214,184,132,162, 30,254,148, 40,238, 5, 39,214, 15,249, 52,191, 21, 41, 39, 10, 62,
-197,200, 31,155, 83,240,247,126,109, 15, 22,148,180, 43,146,202,146,122, 17, 94,167, 70, 38, 2,130,208, 13,168,169, 64,128, 79,
- 93, 44, 77, 68,220,233,192,202,155, 9, 27,145, 94,154, 79,141, 75, 74,220, 55, 29,205,219,134,223, 81, 35,252,154, 80,152,209,
- 37, 39, 41,128,219,132,164,251, 53,167,196,116,231,196, 81,105,165,120,235, 5, 59, 59,104, 43, 93, 39,198,163, 2,135, 66, 8,
- 82,130,123, 15, 80, 59,235,165,120,244, 52,208,111, 41,246,233, 74, 82,190,142,186, 49, 48,162, 66, 40, 70, 38, 20, 43,233,156,
- 74, 69, 13, 1, 35, 64,200,185, 81,180,209,105, 87, 86, 16, 72, 75,136, 80,239,246,133, 6,148, 28,122, 40, 23, 1,149, 38,140,
-138, 10, 8,221, 37,132,138,211,235,135,104,211,190, 27,206, 77, 62,170, 72,144, 81,214,175,209,230, 16, 24,117,183,135, 78,168,
- 88, 87, 79,139, 76,200, 29, 23,188, 8,167, 26,240,114,167,124, 11,131, 17,208, 22,178,144,125,126,191,139, 85, 87, 18, 45, 90,
-218,184, 10,183, 62, 91,115,107, 77,165,121,130, 95,150,219, 15, 75,137,104,240,183, 26, 85,182,215, 33, 43, 80,255, 0, 69, 78,
-166,191, 14,185, 7,152,238,112, 16, 59,130,184,122,195, 83,230, 53,223,124,158,153,161,247, 45, 57,150,176,143, 65,114,252,226,
-174, 5,147, 42,181,204,133,239, 94,240,130,144,183, 5, 58, 43,196, 88, 62,130, 59, 53,203,181,142, 53,221,154,224, 69, 70, 25,
- 71, 41,218,109, 87,150,212,220,196, 33,244,120,132,110,120, 32,120,102,160, 80, 30,242,107, 93, 54,208, 75,181, 10,106, 89,128,
-194,170,231, 49,121,180,143,135,217,103, 78,145, 49, 15, 60,148, 56,152,236, 7, 65, 75,138,235, 74,247,211, 86,145,135, 56, 83,
- 17, 68,111,100, 12, 5, 7, 26,224, 39,152,143, 53, 55,142, 85,186, 92,159,186, 78, 45, 91, 45,233,117,110, 55,227, 22, 98, 54,
-219, 0,158,192, 64, 3,182,164,157, 27,173,221, 25, 24,247,141,108, 45, 97,138,201,133, 6, 3,137,204,252,186, 43,133, 57,199,
- 35,127,126,115,105,179,219,125, 75,132,135,149, 26, 10,214, 54,149, 68,105, 71,219, 9,167,179,188,213, 65, 52,232, 40, 59,117,
-184,181,183,248, 72,131,120,241,172,221,196,198, 82,166,149, 96,199,106, 82, 91,246, 65, 42, 72,232, 7, 90, 87,178,189,250,139,
- 43,234, 35,164, 74, 94,106,206,119,120,155, 8,236, 77, 2,125,160, 41,240,122,181, 20,201, 73,241,105,187,144, 90,156, 83, 59,
-131,106, 20, 66,195,128,142,128, 30,254,205, 59, 28,169, 70, 38,168,166, 74,102, 91, 93,117,200,175, 73,138,227,173,134,212,228,
-103,148,194,214,209,165, 65, 41,160, 80,245, 26,141, 62,228,148, 33,198,159,130,250, 75,114,172,113, 6,151,236, 92,231,156, 98,
- 13, 55, 17,219,140,155,205,189,144,164,178,220,167,212,153,208,211, 74,125, 27,148,162,168, 59, 1,167,199,168,114,109,145, 72,
- 85, 16,213,171,121,146,224, 55, 65, 42, 42,193,113,151,154,155, 13,206,226,194,175,183, 9,174, 74,138,180, 36, 71,185, 72, 59,
-155, 80, 29,194,128, 31,135, 80,166,217, 90, 2,180, 83, 55, 92,193, 61,195, 11, 23, 10,190, 92,125,230, 38,195,119,184, 52,196,
-121, 12, 33, 46, 40,128, 1,246, 40, 40,122, 26,117,221, 67,217,170,155,141,188,198, 43, 39,112,194,224,166,175,118, 11,147,181,
-120,139, 41, 45, 20, 37, 15,161,183, 84,180,144, 0,104, 13,181, 4,251, 74, 61, 61, 21,214,122,224,104, 53, 75, 33,210,105,232,
-140,139,193, 43,183, 48,249,220,226,148,162,162,122,132, 42,155,137,160,160,235, 78,167, 76,150,174, 52,235, 94,152,212,163,143,
- 95,213, 6, 10, 37, 73,113, 42,109,128, 86,195, 77,164, 41,215, 29,114,161, 29,160, 26,146,170, 13, 71,115, 20,165, 7, 61,105,
- 71,204,119, 53, 90,113, 62, 2,127,139, 87, 45, 18,115,156,254,227,102,185,223, 33,183,243,108,152,252, 7, 19, 45,176,178, 5,
- 55,188,252,118,253,142,225, 82, 71,102,189, 51,253,191,114, 76,210, 94,127, 54,149,169, 19, 3,131, 23,237, 18, 19,212, 1, 56,
-215, 23,243, 55,153,163,108, 95, 5, 25, 87, 18, 11,186,128,200,122,235,145, 87, 75,170, 86,165,123, 84, 36,168, 31, 88, 63, 22,
-189,177,109, 32,111, 26,243,181,229,198,165,168,251, 45,184, 55,110,199, 38, 94, 92,178, 71,200, 99,195,106, 75,178,109,239, 54,
-167,104,216, 77, 16, 86,144,130, 54,169,100, 2,123,187,117,207,252,210,220, 35,125,147,173,222,197, 46, 77, 14, 36, 4,118, 62,
-232, 85, 46, 3,130, 86,114,114, 28, 64, 36, 2,114, 90,230,111, 39,228,201,203,100,220,238, 44,177, 2,192,168,150,246, 37, 72,
-134,166, 21, 29,249,114, 91,116,182, 4,125,192,111, 40, 79, 66, 66, 64,245,107,207, 59, 96, 22, 95,179, 66,224,231, 16, 49, 80,
-220, 23, 26,145, 20,126, 18, 12, 79, 14,202,174, 34,225, 46,230,210,132,118,230,186,211, 9, 72,188,188, 30, 83, 13,166, 2, 22,
- 42, 20,180,208, 43,112, 87, 93,195,166,174,230, 99, 99, 61,228, 95,178, 19,138, 84,144,208, 23, 0,188, 40,220,124,129,120,216,
-150, 44,113, 17,118, 76, 21, 73,183,201,241, 1,145,110,126,217, 53,181,108, 66,212,144,133,149, 52, 84, 72, 63, 46,160,207,102,
- 47,147,197, 58, 73, 67,134, 5, 65,199,215, 74, 0,188, 5, 80, 77, 48,132,198, 28,150,209,247, 22, 36, 48,164,183, 27,194,148,
-250,214,149, 56, 82,122,133, 84,108,161, 53, 2,186,181,240,157,167,222, 32,245, 10,113, 67, 65,162,172,170, 91, 91,235, 41, 14,
- 44, 85,176,138,151, 18, 5, 78,222,193, 65, 77, 41,237,107,147, 10, 44, 31,152,167, 77,190, 97,101, 78, 37,201, 34, 50,228,192,
-240, 29,145, 29,164,201, 84,132, 40,209, 73, 36,161, 68, 18, 71,111,110,160, 78,193, 38, 65, 81,202,135, 4,160,192, 27,158, 84,
- 98, 43,178, 33, 73, 76, 91, 4,169, 20,157, 38, 60, 71, 23, 37, 9,109,228,205,120,138, 32,144,106, 64, 38,181,236,212, 87, 1,
- 43, 75,238, 26, 59,160,156, 58, 7, 26,116,198, 30,129,165, 86,186, 41,201, 31,118,177,128,225,184, 10,243, 59, 36,235,254, 7,
-113,143, 21, 83, 18,147, 91,181,182,114, 67,128,180,218, 93,117,168,190, 2,182,133, 45, 68, 21,118,244,236,215,156,185,114, 89,
- 39,220, 46, 55, 15,134,123, 98,157,164,167,249, 92, 48,196,160, 46, 94,129,149, 89,221,219,139,102,248,100,168, 30,233,233,233,
- 95,162,169, 73,145, 2, 4,137,114, 46,214, 89,111, 51, 18,228,169,205,184,201, 95,135,122,103,199, 1,109, 41,240, 8, 66, 84,
-208, 80, 10, 77,104, 78,187, 1,108,147,181,173,134, 64, 9,106, 99,246, 74, 96, 83,138, 30, 6,161,120,109,141, 11,130,229,242,
- 52, 46,127,144,227, 82, 38, 74,145,132, 98,241, 49,168,153, 25,145, 41,156,120,169,119, 39,108,209, 86,170,248, 30,240,241, 82,
-158, 74, 13, 40,174,135,183,166,156,217, 54,171,168,154,214,222, 76,101,116,104, 53,251,161,197, 51, 65,145,234,164,220,200,217,
-100, 37,129, 26,185, 83,219,143,173,162, 5,167, 31,185,102,127,119,100,216,205,226, 45,241, 17, 44,227, 32,117, 11,198, 36, 50,
-189,165,229,176, 22,148, 49,189,196,130, 1, 7,112, 29,154,172,221, 26,251,251,137, 34,179,213, 20,172, 44,212,253, 1, 30, 8,
-203, 82, 98,131,163, 42,143,115,126, 45,163, 56, 2,120, 2,190,202,133,242,187,142, 63, 59, 35,149,110,180,176,242,226,174, 73,
- 96,201,132,175, 18, 18, 3,139,170,201, 27,104, 65, 20, 30,201,236,239,215, 74,219,173,165,130, 22,153, 14, 32,100,115,170,200,
- 91, 43,155,226,200,128,156, 83,163,170,151,240,188, 98,216,205,249, 87, 27,133,185, 79, 91,151,114, 84,107,115,165,183,209, 98,
-124,199,105,106, 87,135, 32,167,194,113, 65,192, 1, 71,118,145,127,120,231,199,161,174,239, 38, 57,106, 11,210, 51, 20,236,178,
- 56, 65,169,160,135, 81, 62, 67,155,106,125,187,115, 81, 4,134,110, 12,187, 33,151,195,113, 16, 96, 55, 21,195,188, 20, 16, 7,
- 80,123, 58,118,105, 91,116, 14,141, 74,171,112,227,138,245,208,178,150, 84,113,144, 14,170,102,149, 88,156,182,188,102,203,121,
- 83,203,141, 34, 62,246,212,212,117, 45, 3,169,220, 42, 5,107,210,190,141, 90, 53,242, 7, 0, 7,119,219, 68,246,200, 92, 28,
-209,135, 26,107,190,221,132, 90,247, 54, 86,110,166, 86,212, 60,149,213,160, 18, 58,130,154,119,250,117, 33,134, 71, 61, 15,186,
-149, 58, 50,224,113,202,147, 62,235,120,198, 83,175,164, 37,181,133,123, 41, 2,138, 61,128,215,176, 26,233,253, 96, 59, 10, 64,
-184, 26,176,204, 80, 80, 98,198, 76, 69,248,203, 13,248, 70,136, 74, 15,182,227,158,179,234,209,202,231, 18,141,167,167,113,123,
-148,210,143,143, 51,217,122, 74,125,233,150,218, 67, 72, 82,147,185, 76,182,128,118,164,124, 58, 13,136, 0, 80, 84, 55,163,240,
- 5, 13, 2,202,204,162,165, 48, 22,209, 7,104, 90,168, 66, 18,105,211,178,189,250, 55, 73,165,186,141, 25,102,146, 1,169, 30,
- 4, 11,155, 48,162, 66,135, 16,184,234,153, 69,208,205,105,223, 5,255, 0, 13,186,237, 29,118,208,164,212,138,117,235,172,117,
-211, 69,209, 47, 41, 82,131, 72,203, 58, 55,104,104, 33,171,146, 37, 93, 91,137,112,148,211,236,125,214,251, 46,174, 76,164,163,
-106,146,148, 45, 41, 52, 46, 21, 84, 1,232,235,170,187,167,119,218, 4,100,176, 16,117, 4, 65,218, 58,168,203, 29,198,154,233,
- 76,118,218, 13,190,195,136, 91, 37,192,165, 26, 80,144, 79,117, 58, 83,215,171, 18, 93,169, 65,194,152,121, 82,162,139, 71, 38,
-169, 37, 5, 84, 91,139, 74,123,150, 73,233,214,159,171, 78, 63, 17, 75,127, 85,122,251, 34, 67,137,125,207,163,115,171, 99,122,
-126,136, 20,118, 38,160,117,167,167, 74, 46, 17, 4, 24,209,120,129,131, 72,173, 67, 14, 45, 40, 11, 90, 60, 64,167, 20, 91, 41,
-232, 20, 59, 54,244,165, 41,161,169,163, 17, 77,131,167, 44,168,210,238, 14,248,110,161,109, 54,165,161, 59, 18, 21,212,134,200,
-236, 74,105,211,111,175, 77,136,134,160, 69, 1, 16,233,162,254,242,159,115, 13,117,219,237, 43,194,175, 77,221, 13, 59, 61, 29,
-116,239,134,117,234,193,104,120,125,234,251,203, 90, 41,219,232,237,211,198,117,173,163,153, 69, 23, 16, 43,169, 21, 31, 6,148,
- 46, 40,180, 86,161, 13, 48, 42, 84,148,142,242,165, 0, 6,148, 38, 38,134,138,247,223, 32, 52,157,207,202, 97, 9,236,170,221,
- 0,105,246, 9, 31,131, 90, 77, 17, 1,180, 10,242, 11, 20, 52,110, 92,232,212,175, 74, 43,113,175,196, 53, 38, 59, 75,137, 48,
- 12, 52,157,109, 20, 95,251,243, 97, 0, 35,222,129,169,166,224,133, 80,126,109, 75, 27, 69,206,122, 40,188, 86,208,202,202,108,
- 74, 70,241,112, 20,255, 0, 68,215,244,105, 63,203,110, 85, 52, 80,241, 27,211, 73,255, 0,223,187, 10, 86,164,123,217, 33,177,
- 95,171, 62,213, 61, 29, 52,240,217,238,112,238,231,215, 72,241,133, 35,202,229,120, 81,164, 45, 17,162, 45,212,166,129, 46, 19,
-177, 43, 7,213, 77, 89,193,203,175,123, 65,123,128, 61, 20,147,112,153, 81, 83,204, 40, 15,182,159,115, 9, 74,190,125, 87,216,
- 61, 93, 41,169, 63,250,206, 7,191,236,162, 55, 7,162,134,185,242,176,113,144,155,108,116,135,122,110, 91,202, 10, 9, 30,160,
- 52, 45,121,117, 15,237, 93,135, 85, 19,238, 73, 24, 84, 83,115,202,111, 83, 36,120,206, 77,125, 73, 42, 39, 98, 87,177,180,239,
-238, 0,122, 53,170,181,182,183,182,106, 53,162,162,184,151,103, 73,110,220,174, 42, 11, 38, 99,233, 10, 30,213, 29, 52,212,144,
-232,129, 29,209,234,164, 98, 41, 53,213,184,166,247, 9, 36, 16,176,122, 57,214,167, 79,139,166,142, 20, 64, 82,133,170,255, 0,
-118,177, 57,227, 68,148,176,149,128,151, 18,163,184, 20,142,189,148,212, 11,232,224,191, 9, 35,105,248,201, 97,194,164,248,188,
-197, 12,165, 13, 75,101, 69,212,160, 2, 91, 87,178,165, 15, 85, 58,107, 19,121,203, 69, 86, 55, 96,188,106,218, 9,201,165, 72,
-156,167,121, 90,156, 54,165, 8, 73, 40, 83,106, 83, 46, 31, 17,104, 89,170,122,250,136, 7,225,214,119,122,228,187,125,202, 7,
- 69, 43,137, 60, 15, 65,233,173,199, 43,243, 4,187, 29,195,103,143,161, 8,233, 29, 21, 56,113,143,154, 73,182,171, 93,219, 30,
-203,214, 96, 93,224,179,239,112, 36,190,178,152,215, 56,137,220,159, 17,165,118, 21, 2,148,239, 79,104,175,163,174,188,225,204,
-252,169, 54,193, 62,151, 5, 97,201,220, 15,233,175, 82,114,238,255, 0, 14,255, 0, 7,137, 9,199,237, 55,139, 79,213,208,106,
-180,243, 79,156,204,122, 59,207,174, 29,213,149,200,137,185, 18,154, 83,161, 14,238, 62,209,165,105,184, 21,117,232,117, 95,109,
-102,120,214,137,150, 47,155,133,113,239,204, 79,157, 73,121, 75,175, 50,204,247, 99, 50,201, 83,123, 80,178,132, 45,191, 80,235,
- 94,164,244,213,220, 54,173,104,171, 75,107, 35,105,136,206,168,173,251, 52,206,115,155, 68,150,227,177, 58,223,142,188,162,211,
-210,159,109, 77,191,121, 83,255, 0,178,129,180, 29,135,188,247,252,186,145, 20, 17,177,250,142,116,139,151,190, 92, 28,112,232,
-168,234,215,198,215,127,126,101,230,218,116,135,148,162,159,163, 33, 64, 36,245, 52,245, 83,191,187, 83,223, 56, 34,171, 36,171,
- 19,142,113,245,201, 8,175,132,226,159, 65, 72, 65, 41, 42,160, 34,157, 5, 59, 9, 26,172,150, 64,106, 35,141, 62, 92,195,110,
- 49,138, 66,153,170,232, 82, 70,222,149, 29,157,218,140, 94, 41, 45,198,147,151,131, 75,154,167,155,121,151, 0, 88, 32, 39,103,
- 65, 83,240,122,116,131, 40,109, 58, 24,180,210,187,113, 3,169,112,248,140,187,180,164,237, 33,163, 65, 79,136,246,106, 67, 46,
- 1, 24, 81, 0,149, 95, 51,110, 40,188, 69, 47, 42, 60,117,144, 43, 74,167,184,246,119, 13, 77,138, 96,234, 5,181, 85,114,124,
- 39, 37,136,249,125,168,238,178,243, 71,114, 92,104, 22,212, 41,217,221, 67,169,172, 34,144,230,210,134, 21,204,185,142, 7, 45,
-164,220, 89,148,164, 70,117, 46, 37,228,161, 74, 89,216,107, 66, 0,233,215,209,166,230,182,108,194,153,115, 86,186, 99,195,126,
-124, 44, 16, 89, 97, 55,155,211,113, 86,132, 32,236,121,229, 50,232, 61,125,133, 21, 13,212, 31,151,167, 89,139,237,141,207,247,
- 69, 65,154,215, 94, 85,109, 99,249,235,192, 36,169,151, 93,190,192,105,132, 4,168,169, 47,133,188,226,143,205, 74, 91, 66, 84,
-234,201,237,160, 31, 13, 53, 81,252,138, 81,192,212, 97,100,234,153,240,175, 55,140,102, 51, 90,137, 97,131, 39, 98, 25,113, 86,
-201,147, 40,193,247,243,236,180,232,109, 85, 73, 9, 73, 59, 66,143, 78,132,138,244, 23, 91, 6,217,107, 97,119, 27,239,155,170,
- 61, 67, 80,232, 31, 79, 93, 85,111,155,125,195,173,100, 22,238,211, 38,146,148,143,125,186,222,242, 43,188,219,133,226, 76,153,
- 19,228,200,121,201, 78, 73, 81, 91,203,117, 68,215,113, 53,236, 58,247,222,209, 61,180, 54,241,139, 96, 4,122, 70,148,201, 19,
- 4,175, 19,110,179,200, 38,120,153,117,130, 85,115, 94, 52,220,157,101,120,128,232, 94,225, 74,169, 9,234, 81,249,181,117, 29,
-243, 69, 80, 73, 40,117, 66,252,155, 7, 41, 69,130,230,113,219, 99,210,100, 45,150, 35, 42,122, 38,182,203, 76, 67,144,163,226,
-165,214, 92, 30,216, 77, 1, 73, 29,154,227, 94,106, 62, 75,249,237,152,230,183,194,105, 36, 21, 58,139,128,203, 52, 1, 56,250,
- 42, 19,154,215, 16, 74, 32,199,211, 92,237,228,187, 52,108,138,241,154, 55, 2, 18,125,225,135,109, 43,251,218,108,160,153,108,
-199,128,200,247,134,209,225,164,182,162,243,157, 69, 6,178,219,113,104,136,177,177, 53,132, 98, 70,162, 64, 76, 16, 97,153,171,
- 8, 94,216,144, 5, 29, 85, 90, 37,205,150, 44,223,117, 41, 73,139, 17,153, 42,240,155,143, 24, 38,108,181, 45,103,119,140,224,
- 21, 88, 71,112, 86,141,144,180, 75,226,102,228,226,112, 29,130,158,115,123,227,166,144,213,119, 54,232,139,137, 17, 78, 63, 10,
- 75,229,201,108,173,205,190, 36,164,167,110,226, 83, 69, 16,144,122, 3,211, 78,252, 47,138,224,231,102, 6, 4,116, 81,161, 46,
-199,162,147, 34,195, 92,215, 31,113, 33, 45,180,203,107,117,198, 82,186, 57,180,119,161, 10,237, 32,106, 68,146,248, 96, 46, 38,
-137, 83, 10,123, 99,150,217, 16, 38, 91,223,134,237,186,226,151, 92,143, 53,152,199,106,165,175,104, 36,143, 13, 73, 39,232,194,
- 78,234,244,213, 69,244,205,153,142,107,193,110, 97,120,122,250,233, 50,157, 96,140,104, 9,115, 61,222,236,165,194,107,123,243,
- 31,115,199, 96,175,198,108, 54,229, 74,145,183,104, 72, 32,158,128,105,113,198, 12,104,227,128, 25,253, 52,157, 37,193, 14, 66,
-182,139, 2,215,238,178, 39, 92,102,169,150, 94,124,197,136, 18,149, 37,216,179,137,173, 93, 72, 21, 74, 64, 29,167, 73,124,178,
- 23, 6, 49,185, 5, 61, 99,170,157, 7,162,166, 14, 51,230, 7,241,236, 3,144,184,169, 56,142, 23,122,127, 58,157,100,146,142,
- 64,190,194, 18,175,216,172, 43, 10,150, 84,152,107, 33, 37, 45,201,222, 55,147,214,157,131, 88,190,101,228,177,186,110, 54,155,
-167,196, 77, 27, 96,107,199,130,194,140,144,189, 49,112,233,106, 97, 86,208,238,226,218,218, 72, 93, 19, 92, 92, 66, 56,230, 19,
-128,166,195, 50,164,125,223, 50,223, 30,234,223,128,152, 83, 84, 91, 15, 23, 99,172,178,122,236, 74,144, 84,144,225,234,158,205,
- 76,185,182,107,100,108,166, 60, 84, 12,177,244,246, 85,107, 65,148,231,250, 41,179, 32, 67, 75,246, 89, 55, 73, 78,184,136,205,
- 39,116, 86, 1, 98, 72,104,146,162,154,144, 59, 73,213,164, 23, 18,134, 73, 27, 26, 49,226,113, 11,211, 77, 2, 99, 46, 0,103,
- 75,120,236, 36,228, 77, 95, 68, 54,238, 81, 32,180, 10,160, 91, 82,250,158,104, 40, 31,109, 78,184, 80,161,209, 61,128, 83,174,
-164, 77, 28,182, 38, 34, 75, 93,210,236,189, 67,166,153,186,146, 59,124, 93,153,200,225, 73,214, 44, 23, 47,186,100,240,113,204,
- 62,221, 38,109,214,224,234, 83,224,183,109, 15, 92,144,190,165, 65, 9,234, 72, 41, 29, 9,167,126,173, 46,247, 75,123, 88, 29,
- 61,203,131, 88,222, 36,225, 76,248,204,149,170,236,122, 49,169, 31, 34,190,228,246, 75, 91,220, 95,147,179, 22, 19,246, 83, 37,
-168,145,158, 97,180,182,210,129, 46, 46,142, 54,165, 36, 45, 75,234,174,189,123, 43,170,155,102, 67,114, 69,236, 4,185,175, 69,
- 63,160,240,167,152, 9, 33,222,138, 66,137, 98,198,227, 89,225,165,110, 78,185,100,215,104,242,209, 58, 59, 17,253,230, 52, 22,
- 18,226,106,224, 4, 13,132,244, 0,245,233,167, 95,123, 55,136,226, 0, 17,181, 17,112, 36,210, 37, 38, 65,193, 1,244,211, 43,
- 37,141, 97, 68,214,226, 91,163, 75,240, 35,186,210, 89,182,165,126, 55,189,184, 19,181,199, 74,182, 2,129, 81,243, 73,213,134,
-221, 44,206,110,185, 8, 83,199,163,160, 83,141, 61,197, 21, 27, 79,180,200,109, 79,220, 76, 7,162,194,143, 33, 45, 29,201, 33,
- 8,117, 68,208, 26,142,211, 67,171,232,222,215,160,212, 9, 34,157,107,215,186, 14, 41, 69,157,150,251,241,220, 66,194,148,132,
-138, 54,130, 74, 70,239, 78,208, 59,116, 65,129,165, 1,164,178, 17, 25, 81, 64, 70, 67, 8, 72,113,242, 73, 41, 5, 34,181, 78,
-227,216, 59, 53, 37, 16, 97, 75,145,197,197, 5, 24,118, 75,197, 27, 67,231, 98,255, 0, 97, 32, 4,251,127,194, 6,144,154,105,
-161,158, 84,189, 96,181,202,184, 73, 48,217,138,244,135, 20,195,206,169, 1, 6,131,192, 73, 89,232, 7,238,130,123,117, 81,186,
-203,225,176, 16,120,211,129,186,148,138,121, 70,156,166,161,161,183, 28,154,176,211,109,170, 60, 1, 44,166, 42,131,102,181, 52,
- 73, 39,253, 26,234,133,210, 22,168, 30,186, 6, 83,198,129,186, 93,156,186, 23,174, 73,140,150,159,101, 81,146,228,136,234,216,
-243, 30, 16,160,160,167, 82, 64,234,116,166, 51,252,220,125, 84,235,228, 47, 82,152,154,110, 94,100,132,199, 50,124, 36, 81, 65,
- 10, 14, 1,181,231,208, 71,180, 10,105, 78,158,157, 88,109,176,248,142, 32,240, 30,129, 72,181,140,189,196, 31,208, 40,130,202,
-216, 67, 10,101,101,183,222, 66, 2, 20,165,110, 8, 90,171,219,208,129,180,106, 85,180, 77,123, 30,247,133,104,192, 83,209,180,
- 56, 56,184, 96, 41, 82, 44,103, 95,106,148, 47, 6, 9,113,245,164,119,126,210,137, 52, 31, 46,170,164,239, 21, 1, 13, 70, 13,
- 47,113,211, 66, 22,194, 81, 70,146,173,164,109,109,213,160,239,116, 47,211,242,244,210, 89,130,175,170,144, 9,227, 90,169, 1,
-151,215,177, 43, 42,113,176,157,219,119, 39,112,237,238,235, 90,105, 44,113, 3,174,146, 9, 33,107, 61,214,103,128, 38,248, 10,
-247,127,120, 45, 7,188, 63, 99,119, 65,217, 74, 86,157,105, 77, 56,162,158,240,156,139,194,190,234, 36,228,246,216,160,165, 79,
-182,251,128,116,109,181, 5, 40,157, 51,111,111, 45,193,201, 7, 93,108, 12,128, 83,110,241,155,173,248,139,106, 26, 27,136, 74,
- 74,124, 69, 44, 23,125, 31, 22,175,173, 54,182, 70, 67,158, 86,152,124,184, 84, 81, 50,250,219, 72, 87,188,220,212,163, 82, 74,
- 75,229, 68,159,151, 90, 22, 57,163, 38,143, 85, 66,124,237,110,110,164, 7,114,203, 66,106, 28,121,215,232,123, 18,119, 14,154,
-151, 28,165,185, 32,166, 29,125, 27,120,209, 39,179,155, 26,202, 82, 27,123,217, 62,128, 69, 71,197,167,219, 51,186,105,167,110,
- 12,224, 40, 23,179,187,122, 88, 90,155,138,238,212, 2,162,225, 73, 89,160,254, 16, 9, 63, 22,132,183,159, 14,210,247, 18,131,
-160, 18,125, 0, 2, 79,160, 81, 54,252, 72, 67, 90, 49,235, 32,123, 78, 20,217, 95, 42, 88,146,175, 5,235,205,186, 51,128,244,
-106, 92,196, 68,112,159,244, 93,216,117,148,186,243, 23,106,177, 41, 60,207,103,235, 69, 51, 71,172,198, 5, 88,178,206,238, 80,
-172,141,123, 11, 79,204,107, 72,249,156,121,174,127,171,204,137, 33, 10, 61, 28,143, 37,185, 9,235,235, 65, 58,126,207,204, 93,
-142,248,233,138,250, 2,122, 12,141, 7,212, 72, 52,196,214,247,112,123,209, 60,127,180,209,201, 23,194,157,128,109, 89,170, 77,
- 82,170,212,124,154,214, 67,126,201, 91,169,174, 4, 30, 32,168,245,213, 91,239, 92,220, 13, 15, 34,244,153, 49,118, 84,111, 52,
- 9, 41, 72, 10, 66,180,243, 47, 0, 57,210, 62, 45,206,227, 69,226, 62,232, 11, 46, 56,160, 16, 18, 42, 21, 69, 18,125, 58, 55,
- 95,138, 2,229,195, 21,162,146,175,211, 34,133, 33, 53,113, 33, 64,141,194,134,135, 73, 23, 65,220,105,127, 30, 91, 72,143,100,
-215, 23,150, 18,178, 27,108,215,217, 73, 2,186,113,183,140,101, 48,251,183,203,198,146, 46,183,249,113,219,104, 55,191,115,149,
- 27,183,118, 83,191,215,165,124,120,162,141,238, 60,104, 8,121, 28,165, 41, 45, 59, 41, 74, 73, 29, 84, 87, 90,122,181, 26, 91,
-192,114,171, 11,107,146,210,134,156,104,187, 65,101, 33,197, 41, 36,146, 9, 37, 93,105,168, 47,191, 39,141, 92,178, 96, 56,211,
-170, 6, 74,203, 15, 54,228,103,155, 35,161, 88,223,221,170,171,139,165, 24,154,187,180,185, 38,186, 11,229,223,139,113,254, 85,
-227,158, 64,200,242,236,126, 45,206,200,252,100,227,214,133, 74, 20,116,205, 4, 60,251,204, 41, 37, 43,105, 77, 4,160, 7, 19,
- 67, 83, 64,123,117,231,143, 55,249,128,180,195,107, 19,187,192,235,114,122,128,249,235,210, 94, 77,237,174, 38, 91,183, 12, 19,
- 72,235,226,106,134,242,127,225,249,197, 19, 39,221,110, 23, 11,175, 33, 56,219,238, 60, 24,134,197,253,182, 24,142, 28, 86,212,
-237, 89,140,227,170, 13,215,246,148,117,201,217,204,119, 13, 65,221,245, 87,161, 34,148,129,128, 21, 9,171,200,215,151,204, 77,
-215,239, 54, 12, 66,231,145, 92, 98,244,131, 55, 45,187,187,125,240,222, 82,192, 83,201, 97,123, 99,213,176,154,131,225,244, 21,
-235,215, 82,217,189,207, 54, 14,114, 14,172, 41, 15,145,239,192,165, 67,217, 63, 8,251,227,210, 80,139, 94,196, 68, 37, 17, 97,
- 71, 97, 40, 67,105, 73, 64, 10,160,232,144, 10,246,128, 59, 40,107,223,171,123,123,228, 25,212, 57, 99,161,109,188, 15, 14, 52,
-198,216,106, 58, 74,219,222,203,139,113,177,183,196, 81, 21,216, 0,235, 68,212,116,212,230,222,168,170,137,152,106, 84,180,240,
-200, 76,150,182, 65, 0, 46, 57,116, 20,160,108, 66, 0, 10,168, 61,254,205,122,141, 37,211,173, 87,185,166,156,144, 56, 15,239,
- 23, 80,167, 33, 42,138,218,181, 85, 0, 81, 46, 31,205, 74,106, 59,231, 74, 49,221,167, 31,252,182,165,176, 28, 68, 74, 40, 44,
-164, 40,164,109,165,122,212,252, 99, 81,157,112,105, 97,244,155, 59,129, 55,179,225,189, 14,189, 59,146, 55, 54,162, 9, 4,126,
-141, 37,183, 5,166,131,158,181, 21,221,188,182, 55, 40,184, 85, 24,173,186, 43,114, 86,218,122, 10,210,131,227,212,182,223, 17,
- 77, 23,145, 80,110, 91,229, 46, 26,195,142,139,118,208, 55, 5,149, 54, 1, 73, 77,122,145, 74, 83,167,110,164, 51,115, 35, 10,
- 47, 18,171, 22, 85,228,250, 11,174, 58,166,173,169, 42, 21, 86,221,137, 35,113,238, 34,130,155,191, 46,154,150,205,215,174,155,
- 50, 84, 29,121,242,140,195, 42,220,213,191,101, 84,166,202, 20,223,176,151, 5,125,146,105, 84,250, 58,233,246,238,171, 73,241,
- 5,109,143,121, 97, 80,144, 26,106, 25,106, 75, 42, 74,219, 37,176,164,154,119, 30,241,160,253,204, 10, 6, 80, 42,236,241,143,
- 31, 73,199,152,101,169, 16, 92,143, 34, 50,208,122,142,169, 87,164, 26,118, 29, 84,220,220,137, 50, 53, 18,103,135,213,223,127,
- 11,251,231, 27,139,152, 48,149,248,209,212,213,190,246,202, 16,144, 18,173,180,105,250,128, 15,182, 1, 74,137,239, 0,247,235,
-181,249, 81,206,174,210,118,217,221,238,226,195,213,196,122, 56, 87,153,124,222,229, 97, 11,197,252, 67,222,193,253,189, 62,158,
- 52,204, 85,151,122,136, 9, 9,104,213, 36,154, 84,141,119, 33,186, 14,154,224, 79, 96,164,219,230, 61,107,143,103,184,201,145,
- 1, 87, 47,119,133, 37,212, 50,130,132, 61, 93,133, 37, 72, 42, 4, 18,132,146, 64, 61,186,203,243, 84, 13,221, 98, 29,221, 69,
- 80,156,209,185,146, 2,128,184, 97,198,162,200,193, 33, 67, 92,205, 28, 93,153, 74,141,127,228,235,230, 61,101,183, 98,183, 25,
-202, 69,146,243,147, 76, 85,176,195,136, 30, 75, 76, 62,251, 49, 19, 87, 82,232, 61, 3,130,157,228,141, 81,178,201,210,196,230,
-105,238, 22,224,226, 80,143, 64,167,138, 15,217,142,140, 72,170,179,203, 88, 84, 11, 38, 73,119,182, 66,185,226,151,215,226,219,
-211,113,149,247, 23,136,212, 40, 82,103, 4,168, 6, 74,141, 28, 89,221,243, 65, 58,174,248,118,217, 53,154, 37, 47, 4,128,163,
- 21,255, 0, 10,126, 16,112,196,167, 93, 87, 87,109,114,109,233,126, 60,152,105,222,125,151, 18,227, 59,222,100,172, 87,208, 54,
-144, 53,100,215,120,216,133,194,164, 7,234, 56,101, 71, 44, 22, 69, 56,125,245, 17,101, 56,164,169,212, 56, 93, 74, 84,216,118,
- 61, 10,145,212,165, 61, 91,235, 66,117, 14,250,225, 63,102, 72, 7,218,159,227, 69, 33, 45,234, 20,142,185, 45, 9, 78,186,234,
- 95,102, 74,131,225,183,155,120, 71, 41, 74, 79, 64, 10,122, 17,183,166,158,240,156,214,128, 16,140, 48, 69,163, 37, 6, 20,145,
- 38, 91,174, 60,183,193, 41,220,119, 5,147, 85,181,235,169,235,221,169,140,136, 6,162, 82, 88, 58,104,205,174, 74, 84,242,147,
- 40, 72,149, 16, 31, 25,216,226, 70,209, 38, 66, 71,179, 90,252, 61, 78,152,157,154, 64,211,129,236,202,150,225,162,149, 13,182,
- 66,136,148,166,196, 86, 20, 29,117,130,106,170,248,102,190, 24, 34,166,157,123, 78,153, 51,128,116,140, 78, 11,245,210, 26,117,
- 96,181, 50, 99, 62, 54, 57,112,199, 32, 72,141,100, 47, 92,109,223,124, 74,185, 55, 36, 92, 30,145, 30, 74,252,120,237, 60,132,
-173, 73,105, 77,148, 10,160, 0,170, 30,163, 88,221,218, 54,238, 81,202,246,185,232,199,105, 13, 77, 32, 16, 16,144, 83, 16, 87,
- 60, 71, 69, 73,122,196,208, 0, 69, 30,181,202,147,115,230, 34,206,200, 37,220,147, 9,230,151,116,121, 82, 18,193, 97, 76,161,
-157,196,251, 96, 41, 8, 72, 74,192,220,154, 10,117,208,216,100,116,113, 54, 45, 65, 27,130,168, 43,243,229,149, 50,248,221, 8,
- 67,237,161,109,106,190, 74,183, 73,133,100,109,184,214,248, 50, 89,102, 91,237,201, 73,144, 93,116, 18, 54,182, 8, 10, 35,106,
-170,186, 26,107, 64,199, 69, 27,154, 36,247,136, 36, 96, 83,215,195,178,161, 92,218,177,163,197,113, 80, 41, 38, 5,239, 41,197,
-111, 17,242, 12,118, 85,210,217,121,183,189, 34, 67, 87,135, 30,217,182,169, 83,100, 54,154, 18,225, 33, 68, 2,163,240, 13, 76,
-185,177,183,220, 34, 48,204,214,185,142, 64,158,223, 69, 51, 28,141,140,224,157, 9, 70,109,200,133,125,183, 93,157,157, 14,100,
-220,150,225, 25,229,192,158,166,215, 33,214,231, 41,196,157,229,199, 10, 82,162,163,184, 40,250,244,212,250,237, 92,208,210, 4,
- 77, 56,140,130, 37, 9,140,130, 70,185,174, 26, 23, 17, 82, 46, 17,105,201,237,230,241, 98,135, 42, 42, 87, 39, 27,151,116,121,
-249,113,131, 51,153,183,198,167,136,208, 81,170,145,226, 40,142,180,235,233,213, 38,233,121,111, 54,137, 92, 9, 73, 0, 64,112,
- 36,228,125, 20, 12,172, 35, 83,129, 69, 74,132,174, 44,187,108, 82,110,141,190, 99,153, 10, 91, 12,172,109, 81,222,154, 21, 42,
-190,209,173, 58, 87, 90,152,156, 39, 62, 25, 21, 42, 57, 90,226, 91,194,155,138,186, 78,145, 5, 54,160,233,158, 12,145, 39,193,
- 9, 11, 83,142,162,180,170,187,122,110, 39, 83,220,193, 25, 14,201, 5, 41,177, 2,226,241,129,164, 87,101, 4,202,123,199,100,
- 23,119,109, 90, 65, 73,240,150,154, 10, 84, 10,116, 3,174,159,107, 67,154, 18,157, 44, 45, 20, 73, 10,105,110,168, 58,130,166,
- 66, 79,213,168,111,169,244,246,233,194, 75, 70, 20, 67,187,158,116,109,164, 37,135, 18,165,199, 83,141,250, 20,118,147, 95, 71,
-103,102,155, 83, 46, 88, 80, 15, 25, 26, 91,145, 33, 40,109, 11,183, 61, 41, 47, 58,216,247,138, 44,182,176, 20, 5, 71,197, 82,
- 14,146,157, 32, 26,102, 54,185,142, 61, 20,177,141, 77, 16, 25,144,137,240, 85, 54, 36,144,134,156, 4,133, 52,132, 3, 93,192,
-208,148,145,214,148, 58,133,115, 19,110,189,210, 1,246,212,168, 95,225,189, 72, 86,165, 79,208,112, 59, 19,205, 49, 38, 36, 34,
-227, 83, 26, 98, 88, 10,120,171,195, 4, 3, 69, 0,123, 5,122,131,172,219,223,224,146, 28,120,213,196,118,113, 17,169, 13, 67,
- 92,153, 25,166,114,101,219,216,141, 25, 13, 90,209, 25,135, 91,102,137,105,116,246,213,243,122,119,211, 90,109,158, 49, 53,182,
-161,246,150,145, 38,149, 64, 16, 82,215, 29,241,231,247,165,201,151, 11,159,139, 22,219, 26, 27,207, 91,235, 65,239,146, 55,117,
- 34,191,178, 18, 8, 7,191, 85,251,213,251,108,152,216, 99,199, 20, 61, 84,108,183, 14,110, 57, 83,249,156, 18,200,202, 95,119,
-199,150,181, 72, 89, 67,177,247, 33, 17,214,192,234, 18, 64, 77, 72,233,218,117, 82,217, 28, 13, 45,155,107, 90,229, 82,157, 20,
-180,213,142,208,219, 34, 42, 32,176,150, 54,236,161, 72, 81, 0,250,207, 93, 40, 26,148,203, 72,227, 8, 26, 40,253,182,205,143,
- 66,169, 54,232,235,117,160, 82,192, 83, 65, 73,234,122,146, 77,123,180,146,213, 43,198,155,248, 54, 52,130,214,129, 74, 94,239,
-104,168,255, 0, 82, 79,135,226, 18, 91,216,159, 11,196, 52,161,165, 41,217, 81,163,167,124, 60, 19, 10,250, 19,155,200, 50,131,
-132,178, 67,116,236, 32,214,191,159, 87, 34,253,163,141, 85, 62,236,156,169, 37,204,238,100,129,177,205,238,147,210,161,101, 41,
- 31,159, 78,141,205,162,161,189,197,249,147, 73,239,222, 18,232,250, 80,226, 43,212,209, 91,141,126, 93, 44,110,160,113,168,197,
-128,209,101, 72, 82,213, 84,110, 75,123,126,112, 52, 36,124,186, 31,205,177,206,147,160, 10,213, 1, 34,164,184, 79, 94,128,143,
-106,167,227,210,191,154,245,208, 44,105,165,216,169,126,149,240,194,144, 71, 66, 85, 66,127, 62,135,243, 90, 73, 96,162,183, 9,
- 73, 66, 28,142,168, 97,213, 47,217, 82, 87, 69,166,135,225, 52,209, 59,116, 14,192,210,217, 24, 24,138,105,206,176, 99, 83, 91,
- 2, 78, 57, 9, 46,169, 39,233,209, 29, 12, 58, 8, 29,161,214,246,184, 62, 35,170, 91,235, 29,191,115, 9,113,109, 19,255, 0,
- 89,141, 62,212, 90,177,131,112,184,182,253,220,175, 30,147,243,101, 77, 17,103,200,109,177,131, 86,185,102, 44,101, 5, 40, 65,
- 99, 53,151, 37,166,215, 94,133, 8,153,111,146, 83,240, 37,105,248,117,203,247, 46, 64,138, 41, 76,219,108, 94, 3,248, 24,110,
-101,136,250, 70,135,176,246, 17, 90,120,119,232,165, 26,110, 28, 94, 63,213, 19, 15,180, 61,166,155,206,101, 92,193,141, 57,226,
-162,210,140,130, 18, 87,243, 93,110, 51,142,165, 3,247, 75, 50, 82,250,201, 29,229, 31, 22,161,127, 62,231, 46, 95, 61,214,124,
- 68, 99,131,139, 28,239,188,221, 14, 61,165,181, 45,187,126,199,184,229, 47,132,238,199, 1,234, 32,129,235,160, 45,158,102,173,
- 16,229, 42, 30,105,109,185, 96, 19,150,170, 41, 89, 67, 10,135,108, 74,143, 68,255, 0,172,172, 37,144, 20,122, 15,104,250,206,
-180,219,119,156, 97,175,108, 59,157,172,182,239, 60,116,151, 55,230, 14, 31,116,246,212, 75,158, 70,149,205, 50, 90, 72,201,155,
-254,146, 23,213, 82, 67,153, 65,185,236,148,139,139, 14, 69,146,210, 94, 97,230, 28, 14, 50,243, 75, 21, 10, 74,146, 72, 32,142,
-194, 53,211, 45,185,134, 59,182, 9, 34,120,115, 78, 68, 21, 21,143,150,212,194, 75, 92,210, 8,204, 28,232,144,190, 33, 36,146,
-246,228,215,189,202,118,124,122,123,249,207, 93, 23,128, 13, 23,159,146,153, 37, 1, 30, 18, 82,208,160,175, 82,163,242,232,127,
- 57,235,165, 54,220, 10, 70, 57, 1,100,168, 56,211, 73, 43,236, 93,105, 66,126, 61, 36,239, 43,153,167, 91, 8, 52, 24,200,252,
- 66, 91, 66,201, 61,155,186,237,175,203,166, 95,187,213,141,188, 1, 69, 58,172,210, 31,113,104, 41,113, 74, 82,138, 69, 9,232,
-107,241,234,170,227,118,206,181,123,124, 77, 9, 95, 76,158, 94,184,237,172, 43,203,142, 9,101, 32,170,117,218,206,222, 77,118,
- 82,211,180,153,215,208, 31,219, 79, 67,109, 20, 32, 87,209,241,107,203,252,213,184, 29,226,246, 89, 78, 65,218, 71, 99,112,246,
-226,107,218, 28,143,183, 13,175,109,133,131, 50, 53, 30,211, 77, 12,227, 1,131,120,142,152,204,199, 74,164,200,113, 45, 32,246,
- 6,218, 6,171, 89,167, 94,163,160,245, 87, 89,119, 53, 43,109, 27,210,161, 59,199, 15,219,160,130,194, 99,183,225,188,210,193,
- 5, 32,236,108, 36, 2,146, 43,234, 53,249, 59,244,252, 79, 34,148, 92, 77, 64,119, 78, 42,128,202,231,161, 49,143,138,249, 97,
-128,225, 77, 18,164,117, 90,251,201,173, 77,107,235, 62,173, 89, 69, 49,164, 56, 19, 76, 69,241,116,104,183, 32,234,218, 62, 35,
-104, 90,188, 50, 54,161, 78,169, 65,196,158,222,190,210,250,254,189, 88,199, 49, 74,135, 43, 22,157, 48,240,196, 52,233,121,113,
-144,203,109,110,101,164, 4,245, 64,238, 20,175,237, 81, 32,252, 26,146,217, 86,160,190, 33, 79,187, 38, 53, 29,218,165, 13, 36,
-213, 13,169,181,109,162, 75,132,164, 26,252, 20,232, 61,122, 39, 61,105,131, 18, 83,162,110, 54, 26,106,136, 72,250, 80,130,164,
-145, 82, 28, 41, 30,191,218, 4, 87, 77, 23, 82, 52, 45, 51,100,227, 9, 73, 11,240, 59,104,151,104, 59, 43,223,219,210,128,105,
- 5,233, 64,178,146, 23,138,199, 91,195,253, 88, 0,162, 10,147,180, 84, 18, 5,122,122,193,236,210, 12,180,211,163,164,155,223,
- 29, 69,121, 18, 9,140, 28, 11,109, 42, 62,192, 42, 64, 89,167, 78,180, 34,189, 14,155, 51, 83, 69,149, 4, 93,120,154, 40,125,
-239,160, 71,213,168, 33, 69, 52, 11, 10, 59,146, 21,212,254,199,101, 61,122, 87,196, 26,143, 35,106, 58,184,112,253,182, 67,128,
- 59, 13,176,181,212, 40, 20,239, 65,221,233, 21, 59,135,171,228,166,135,197, 17, 80, 94,226,218,106, 47,134, 24,183, 62,137,173,
-176,141,205, 42,128, 20,254,197, 77, 5,107, 82, 59,171,163,248,162,236, 41,147, 42,210,133,203, 10,140,235, 44,190,136,222, 19,
-137, 40,109, 84, 0, 5,164,244,165, 65,166,144,217,200,162,105, 43, 86, 43,139, 48,103,102,216,175, 56,196,138, 54,155,213,166,
- 83, 17,100, 6,131,219,101, 50,146,235, 21, 77, 65, 62,218, 0, 52,235, 74,208,106,199, 98,221,255, 0,150,223,197, 56,224,224,
-189,135, 3, 89,126,113,219, 70,233, 97, 52,103,252,164,250, 69, 85,153,240,157,247,167, 35, 37,175,109,165,173, 7,111, 68, 21,
- 32,145,208,215,213,175, 87,197,186,135,128, 69,120,202,226,207,195, 36, 26, 44,187,116,178, 2, 87, 20,169,170, 80,168, 40, 42,
-167,208, 71,126,164,141,206,171, 95, 2, 84, 47,201,124, 19, 23,146, 26, 48,221,202,114,156,122,223, 37,216,194,237,109,182,203,
- 90, 97,203,131, 28,125, 75,109,149,134,217, 10, 63, 56,132,159,131, 81, 11,129, 36,234,114, 30, 11,128,236,232,166, 52,105, 43,
- 81,126, 13,228,175, 12,199,110, 25,122,174,104, 57, 61,182,240,245,172,217,147, 45,186,220,160,162, 27, 59, 86,183, 30,160,246,
-139,157, 64, 29, 41,168,174,179,134, 71,181,197,123,185, 0, 80,122,104,222, 76,128,112, 74,153,109,222, 88,248,210,217,122,186,
-100,174, 97, 86,233,179,111, 81,124, 9,205, 92, 24, 19, 99,185, 78,190,202, 28,170, 27, 43,160, 10, 32,106,217,151,109, 97, 80,
- 5, 14,246, 85,197,127, 48,188,115,200, 92,115,113,185, 99, 87, 11, 77,178, 20,124,178,249,127,204, 32,218, 44,165,147, 46,201,
- 13,231,156,109, 13,190,148, 18,233, 74,163, 39,122,104, 0, 0,246,247,106,174,107, 72, 46, 39, 23, 14, 31,180, 1, 1,234, 85,
-171, 8,229, 64,130,169,229,194, 12,148, 37, 66,173,168,178, 2, 40,165, 21,159, 24,143,101, 41, 31, 59,168,212,200,202, 57,105,
- 24, 30,154,108,165,114, 82,242,208,227, 65,100,164,133,130, 54,169, 46,142,148, 61,105, 64,123,181, 98,219,114,113, 53, 49,182,
-160,142,143,170,140, 90, 94,105,233, 47,195,146,133,164,181,180,199,121,165,133,165, 78, 82,190,215, 97, 29,117, 26,242, 55, 70,
- 53, 4,164,220, 91,120, 96, 56, 28,234, 75, 76, 68, 8,254,230, 26, 67,202,157, 12, 8,211,165,201,117,166,152,144,250,168,151,
- 2, 82, 65,168, 41,167, 90,141,103,223, 54,167,107, 84,210,113, 1, 49,234,168,108, 24,130,148,158,204, 59,229,150,234,211, 74,
- 84,180, 75,101, 74,113, 18,216,121,101, 74, 43, 20, 11,108,208,116, 80,236,233,169, 13,124, 59,140,125,212,210,112, 67,243, 84,
-150,188,198, 66,103, 83,164, 22,242,108,133, 41,112,166, 93,217,201, 12,179, 15,124,240, 21, 40,164, 13,161,180,239, 4, 4,128,
-122, 17, 77,103,223,178, 65,102, 75,154,208,198,180,151, 97,151,111,109, 88, 27,121, 46,193, 40, 78, 21, 46,175,143,236,184,174,
- 49, 46, 76,131, 26, 29,221,113, 82, 87,238, 15, 41,231,226,174,160,149, 60,165, 16,216, 61,169, 74, 82,159,135, 71,101,113, 37,
-244,141, 44, 87, 48,158, 57, 30,207,157,107, 37,121, 28,238,152, 52,180,162,228, 66,122, 0,207,210,106,184,228, 78,221, 85, 33,
- 81,227, 60,153,211, 29,111,199,121,110,237, 45,194,100,143,101, 29,201, 78,212,245, 62,189,107,237,237, 27,239, 16,141, 5, 7,
- 93, 61, 29,152,247,156, 16, 15,111, 93, 1, 14,237, 38, 98,109,182, 47, 6, 37,177,198, 22,219,177, 39, 58,232,105,249, 53, 40,
- 9, 74, 20,158,242,229, 85,219,168, 87, 86,130, 29, 82, 41,112, 57,142, 3,228, 40,131, 68, 42,224,164,147,234,169, 30,246,254,
- 21, 6,218,192, 85,254, 74,114,134,197,201,169,162,212,253, 89,143, 9,164,161, 72,105, 75, 73,220,227,146, 92, 36, 43,122,136,
-167,118,168,173, 69,204,146, 31,217,143, 11, 2, 20,113,199, 30,160, 7, 70, 52,213,175,137, 63,188,212,111, 95, 26,174, 87, 55,
-163,220, 34, 41,111,202, 33,216,174, 40, 51, 30, 59,101,207, 13,135,205, 70,227,216, 40, 15, 90,107, 91, 2,177,200, 6,125, 53,
-102,130, 60, 0,206,155,145, 31,102,215,112, 92,150,203,175,199,105, 37,173,237, 2,149, 37,197, 39,188,252, 58,153, 43,124,102,
-233,165,144, 92, 19, 35, 73,253, 30, 81,121, 53, 90,214,226,150,176, 87, 68,251, 71,187,175,203,165, 17,164, 32,163, 36,180,161,
-172,138,149, 61, 49,245,198, 82, 16,152, 72, 66,157, 59,124, 68,151,148,122, 38,149,161, 29, 52, 65,202,221, 36,103, 71, 39,236,
-218, 11,179, 39, 10,117,205,185,155,220, 86,209, 38, 44,113, 58, 58, 10, 61,237,132,251,186,138, 43, 84,157,128,129,236,246, 29,
- 71,142, 33,108,123,164,167, 69, 33,211, 12, 1, 20,144,216,144,228,132, 43,197, 42,241, 6,197,165, 39,160, 2,128,157, 60,196,
- 74, 67,158, 8,169, 67, 13,178,220,174, 23, 24, 81, 90,136, 84,210,100, 23, 29, 91,233, 9,105,207,119, 5,123, 66,150, 67,123,
-138, 65, 32, 19,215, 84,219,141,220,118,205, 37,113,234,207,235,163,183, 46,241, 3,149, 71, 69, 89, 88,141, 74, 90, 29, 76,102,
- 55, 66, 97,178,209, 74, 15,187, 36,164, 15, 81,175, 78,241, 93,102,101,149,184,106, 61,227,233,173, 88, 64, 2,224,106,172,242,
- 28,117,196,190, 92,151,214,146,131,114,251,122,148, 44, 81, 93,107,234, 58,222,109, 82,106,128, 1,195, 10,135, 59, 18, 76,106,
-199, 91,153, 67, 86, 56, 18, 35,175,221,227, 57, 10, 42, 98,176,144,104,182,182,142,128,131, 74, 83,183, 88,185, 29,170, 82,210,
- 20,169, 83, 83,218,153, 86,170, 9, 81,170, 73,167, 74,212, 83,174,156, 24, 83,130,181, 74,106,105,220, 59, 72, 21, 26, 82,165,
- 29, 12, 90,220, 9,111,105, 9, 74, 73, 4,209, 68,159, 71,167, 69,169, 41, 53,174,215,104, 90,161,234,160,173,149,234, 84, 1,
-235,249,244,165,163, 78, 53,219,134,148, 18, 2,156,113, 37, 93,251,151, 82, 15,203,172,127,243, 74,207,150, 10,221,217,109,176,
- 55, 84, 45, 61,190,201,175, 95,151, 64,110,137,198,146, 99, 20,155, 39, 36,115,114, 89, 97,164,133, 30,213, 47,169,167,203,161,
-252,212,209,136, 0,163, 48,111,178,214,164,182,183, 83, 82,126,106,187,193,248,244,109,220,143, 77, 7, 66, 13, 58,125,241, 1,
-180,174,137, 11,165, 2, 73, 0, 19,242,233,223,230,102,154,240, 22,149,163, 94,149,224,132, 45, 45,213, 61,128, 40, 19,250,116,
- 99,116,235,162,248,112,104,155,242, 93,121,210,225, 82, 69, 79,237, 47,187,229,208,254,100,105, 66,220, 81, 87,220, 83,169, 13,
- 54,180,215,188,248,148,167,193,215, 64,238, 75, 78, 54,216, 10,109,204, 75,241, 84,135, 91, 86,231, 82,174,128,175,122, 77,125,
- 61,116,217,220, 8,167,124, 17,149, 17,149,113,120,165, 75,150,178, 18,132,149, 16, 58, 84,250, 5, 77, 58,232, 29,202,128,128,
- 84,117,118,203,172, 18, 24, 16,238,241,140, 86,100,128,209,106,255, 0, 19,192,136,250,221,233,176, 45,208, 99, 56, 79,102,212,
-172,234,182,227,122,133,227, 68,195, 15,245, 12, 61,103, 15,109, 88,197,182,204,195,174, 18,164,113, 97,196,122, 1,212, 61, 85,
- 77, 57, 62,227,147,121,125,191,218,114,236, 94,237,119,131,195,119,185,232,139,149, 88, 32, 41, 19,109,248,109,198,114,168,137,
-177, 98,190,151, 88, 68,119, 9,170,219, 9,160, 53,218, 82, 74,117,131,221,246,182,216,220,139,203, 87,190, 48,227,137, 97, 68,
-237, 25, 22,158,130,163,209, 93, 15, 98,188,143,153, 32,117,165,203, 24,251,134,142,225,112,197,192,112, 39, 61, 67,167, 63,109,
- 79, 77,231, 51,153,137,110,151,122, 84, 9,182, 11,155,108, 59,110,204,241,245, 47,238,133,183, 44, 36,176,101,199, 82,221,118,
- 48,122,160, 7,144,181,183, 82, 55,120, 99, 90, 6,115, 13,222,214,192,251,146, 37,139,241, 24, 17,192,116,185,185, 30,189, 40,
-157, 4,214, 81,251, 60, 23, 79,116,112, 43, 37, 24, 24,222,115, 35, 48,215,113,236, 56,211,193, 18,165,188,194, 95, 97,196, 41,
-178,141,201, 90, 28,222,149,143, 72, 32,208,235, 77,111,188,178,234, 49, 36, 78, 5,174, 10, 8, 56, 17, 84,111,128, 68,226,199,
- 96, 71, 10, 1, 19, 37, 41,198,204,165,111,103,112, 42, 2,181,160,248,244,231,243, 19,211, 70, 34,111, 10,121, 67,157, 12,169,
-189,141, 18,222,224,107,183,160,252,250, 14,220,169,216, 33, 67,157, 75,120,188,168,110,220,237,205,208, 54,135, 37,198,109, 75,
- 34,129, 41, 82,192, 39,183,184,106, 5,198,226,141, 53,171,218, 97, 14,123, 65, 60, 69,125, 33,242, 87,154,158, 0,242,237,199,
-252,121,255, 0,197,108,242,221,137,127,120, 49,203, 64,199,172, 34, 59,247,156,130,100, 6,163,180,143, 21, 48,160,183, 38, 64,
-105,191,154,183,148,144,141,195,110,226,174,135,132,201, 32,110,167, 60,241, 63, 61,123, 98,202,226, 56, 32,137,171,246, 2, 14,
- 57, 83,179, 15,204, 48,206, 70,176, 90,115,156, 34,243, 23, 37,197,239, 76,174, 77,154,243, 13, 46, 55, 26,114, 18,181, 33, 65,
- 33,228,182,224, 40,113, 37, 10, 10, 72, 33, 73, 32,245, 4,106, 62,160,238,240,198,174,160,144, 72, 21,180, 79, 47,179,180,181,
- 38, 90,134,208, 6,210,142,228,165, 32,128, 79, 94,242,170,232,136, 67, 83, 35,198,161,169, 48, 96, 62,235,232, 45, 81,197,186,
-226, 80,118,215,234,118,142,157,123,194,105,169, 17, 58,156,116,102,152,215,124,125,135, 54,203, 75,105,250, 63, 17, 32,132,215,
-115,109, 36,144,159,140,184, 63, 55,163, 86, 17,185,106, 51,216,148,213,154,150,217,109,224,118,160,168,169, 71,119,106,156,111,
-105, 6,181,248,245, 49,133, 42, 19,217, 74,152,164,116,172, 47,104, 72,109, 33, 99,211,211, 96,245,247,168,105,101,212,195,219,
- 82, 50, 45,172,190, 16, 28,216,165,184,181, 44, 44,118, 36,142,207,151,105,211, 46,117, 39, 69, 12,237,130, 50,219,108,134,144,
- 86,160, 80,180,208, 0, 18,217, 32,143,132,164,212,105,146,250, 73,142,145,151,136,180, 10,210,132, 81, 77, 44,251, 4,244, 61,
- 1, 20, 63, 6,153,116,148,219,152,148,135,119,177,248, 33,106, 66, 42,150,210,179, 94,212,173, 3,180, 30,189,104,127, 94,153,
-115,234, 59,153, 81,125,198,218,194,150,255, 0,176,147,225,123, 73, 77, 43, 84,215,176,245,253,147,217,164,137, 42, 44,141,166,
- 20,251, 36, 70,192,115,106, 78,213, 33,197, 30,193, 66, 73, 35,183,165, 6,149,169,106,182, 97, 77, 11,228,102,217, 97,194,104,
-170,173, 40, 36,116, 4,252,190,201,236,248,244, 26,106, 38,149, 52,211,181,196,140,250,151, 25,109, 37,230,157, 81, 66,211, 65,
-208, 56,123,186,244, 53, 33, 73,249, 52,153, 93,167, 26,119, 74, 85,143,193,109,169,180, 75,132, 20,216, 83,105,121,130,146, 69,
- 82, 77,126, 30,197, 15,202,186,134, 37, 33,192,241, 21, 26,230, 49, 43, 11, 78, 68, 85, 54,207,236,209,237,153,134, 79,108, 75,
-204,152,240, 47, 23, 38, 99, 56,149,130,181, 52,135, 87,178,167,165, 78,222,218,247,235,209,251,110,234,102,129,142, 92, 75, 71,
-205, 94, 53,223, 44, 69,188,242, 55,161,199,231,168,226, 58,214, 29, 20, 85, 80,149,145,208,212, 19,242,234,218, 61,193,120,214,
- 74,104,192, 57,210,179, 14, 45,215,130, 86,148, 43,169,173, 71, 65,167,155,185, 26,130,230,117,210,211, 97, 0,144, 26,217,180,
-118,138, 0, 72,211,191,204, 9,227, 67, 64, 52, 28,203,237,190,203, 2, 93,210,243, 41,152, 86,216, 12,169,231,223,144,104,132,
- 33, 31,164,158,224, 52, 62, 61, 2,147, 68,228, 96, 82,107,148, 94,109,121, 63,141,121,130, 75, 86, 75, 6, 56,220,183,225, 4,
- 46,126, 74, 97, 8,183, 39, 0,170, 91, 67,110,164,248,193,176,154,212, 19,241,105, 63, 19, 36,142,107,195,136, 1,112,233, 53,
- 13,247, 14,105, 5,167, 10,167,107,196,120,234, 4,139, 12,139,133,166,224,244, 59, 69,198,223,117,158,203,225, 14,220,174,168,
- 96, 2,182, 67,244,234,218,182,128, 19,219, 65,167,163,186,121,120, 45, 56, 28, 19,128,244, 81, 71,112,231, 59, 4, 76,191, 77,
- 80,156,182, 67,111, 93,175, 82,217, 99,221, 89,149,113,184, 75,102, 56,233,238,237, 62,234,148,148,127,228,131, 77,116, 88,143,
-116,118, 86,197,140, 66,148,238,227, 28, 81,139,176,185,195,144,200, 18,153, 85,181,240,253, 10,157,219, 32, 21, 16, 58,246, 40,
-122,117,159,222,110, 68, 32, 60,156, 16,212,151,217,120,132,181,213, 98,156,198, 45,145,132,107, 60,246,158,144,155, 96,115, 97,
-247,143, 17,144,242,186,128,118,154, 16, 1,166,185,164, 87,211,110, 79,241,173, 64,240,158, 70, 39, 5, 3, 2,156, 65,167, 89,
-180,194,204, 74,173, 72,150, 38,173,182,251, 29,198, 28,123,100, 71, 38, 92,148,211, 42,157, 34, 40,125,246, 98,180, 58, 54,211,
-138, 63, 70, 7,203,166,174,182,249, 31,185, 91, 73,168,233,105, 61,208,228,196,253,162,223,181,243, 85,133,189,147, 2,160,167,
-158, 47, 96,146,185, 81, 68, 68, 43,222, 11,136, 75, 1, 9,169,222,174,130,130,186,232,119, 49, 49,209, 56, 73,238,166, 53,105,
- 28, 66, 32, 94,236, 0,198,186,209,228,235,240,230,159,230, 27, 43,196, 47, 25,173,178,225,116,224, 65,152, 93,177,222, 71,202,
- 44, 83,162,137, 2,253, 10,206,228,230, 45, 49, 18,249,113,126, 44,135, 94,142,201,144, 90, 40, 66,150, 1, 59,168, 53, 85,181,
-110, 14,141,102, 99, 90,210,214, 29, 12,114,226, 1, 13, 47, 32,125,145,137,205, 78,147, 91,175, 41,185, 30,227,157,239, 34,220,
-230,138, 49,100,215, 72,221, 15,247,156, 90,208, 53,185,169,238, 43,148, 98,170,211,134, 85,203,254,120,242,183, 39,128,185,203,
-151,248, 74,117,178,117,226, 54, 7,152,228,120,235,215,249, 12,120, 73,153,106,130,251,138,183,204,115,160, 1, 50,160,150, 95,
- 9, 31,189,171,123,141,231,226, 88,201, 67,131, 92, 64, 45,111, 28, 64,195,182,184,207, 62,237,110,229,219,249,237, 73, 66,201,
- 8, 96,226, 90,113,105,237, 45, 34,168,162,109,118,107,150, 79, 2,222,233, 84,123, 76, 7, 29,141, 34,227, 37, 36, 58, 67, 1,
- 75, 7,169, 1, 0,237,162, 82, 59, 6,167,110, 6,107, 88, 28,224, 21,231, 20, 29,127,227, 88,221,197,146,218, 70,231, 39,124,
-226,149, 25, 95,172, 15,137, 75,185, 68, 43,110, 4,217,210, 26,131, 69, 16,183, 91, 71,125, 1, 39, 82,173,110, 1,110,135,123,
-192, 5,165, 91, 92, 32,209,246,128, 11, 76,137, 77,207,182,201, 8,241, 29,109,194,144, 84,146, 73, 14, 3,217, 81,223,171, 40,
-180, 76,213, 65, 86, 17,145, 48,167, 13,128,148,203, 8,155, 21,231, 26,112,165, 82,163,200, 65, 8, 90, 86, 71,180,107, 74,118,
-246,234, 13,211,155,165, 88,225,212, 65,167,159, 25, 35, 10,121,101,220,125, 92,113,121, 70, 58,165,165,184,238,186,151,163,211,
-232,220, 64,161, 88, 20, 61, 10, 43,170,123, 77,219,246,222, 12,156, 69, 95,237,150, 70,230,220,204,246,226, 10,118,211, 71,133,
-173,240,111,121,186, 44, 55,116, 47,221,110, 17,158,121, 65, 43,216,175, 22, 0,223, 78,222,187,147, 81,170,191, 49, 57,142, 94,
- 85,219, 93,123, 11,117, 57,164, 14,161,171, 5, 61, 66,151, 30,222,203,243,165,252, 49, 21,106, 87,194, 56,250, 46, 87, 0, 26,
-150,220, 9, 80,155, 84, 37,169,226,124, 23,150,122,208,215,229, 26,231,158, 95,121,141,125,205, 50, 72,219,134,181, 35, 28, 6,
-107,149, 71,190,218,161,134, 48,230, 28, 73,245, 37, 74,152,239,149,155, 17,178, 49,119,187, 51, 50, 56, 92,130,212, 85, 34, 82,
-155,117, 81,157, 72, 9,121,193,212, 83,119, 80, 53,146,187,243,178,111,230,151, 59,124,122, 72, 97, 58, 48,207, 78,109,237,165,
-187, 99,143,194,107,241,199, 63, 77, 57,242,206, 47, 24,244, 43,124, 43, 4, 95,122, 92, 86, 74, 86,164,182, 11,196,188, 0, 82,
-234,154, 5, 26, 14,218,106, 79, 42,249,143, 6,244, 95, 53,219,131, 59,201,137, 65,212, 16,229, 75,142,193,182,238, 13, 3, 42,
-140, 22,212,248,172,136,178, 18,251,102,133,207,119, 36,132,184,149, 84, 14,158,154,235,164, 13,198,218, 87,130,215, 52,147,145,
-169, 90, 20,173, 87,142, 93,136,234, 47, 16,156, 92,115, 24, 63,107, 80, 13,144, 69, 67,106, 61,122,250,107,173,215, 46, 78,217,
- 98,118,151,106,199, 58,131,116,212, 32,212,155,128, 92,228, 93,112,251, 17,222,218, 69,189,151, 96, 40, 41, 96,157,236, 40,130,
- 72, 38,189, 64, 20,213, 30,229, 19,109,231,126,120,149,169, 81,128, 66,244,211,150, 66, 17,236,169, 5,123,150,176,149, 36,160,
- 0, 22,179, 68,129, 78,221,221,195, 81,161,148, 60,166, 31, 44,233,110,120,132, 43,136, 2,138,181, 45,182,151, 37,150,228, 32,
- 58,193, 45,202,106,160, 45,146,149,109,246,135,119,181,211, 82, 95,110,226, 3,136,195,133, 69,102,225, 12,197, 3,133, 12, 86,
-178, 66,171, 69, 14,160,142,134,186,105, 42,110,154,247,114,255, 0,125, 93,181,173,122,215, 73,212, 21, 56,209,233,174,197, 72,
-107,195, 72,113,153,105, 4,132,246,188, 8, 81, 53,232, 58,250, 6,184, 37,223, 55, 89,217, 5,124,131,215,242,232,164,193,178,
-220, 92, 96, 35, 52, 78, 66,100, 52, 69,101,138,168,110, 4, 56, 20, 8,236,244,250,117, 62,211,124,142,245,130, 72,220, 8, 52,
-196,187,123,237,221,165,205,198,136,169,183, 84,173,229,218,171,183,112, 61,223, 46,165,182,255, 0, 94, 68, 83, 70,217,195, 54,
-214, 42, 60,226, 66,227,188,231,136, 15, 78,191,211,165,139,211,194,141,176,245, 82,131, 81,238,142, 83,198,121,222,157, 42, 87,
-253, 58,115,227, 9,160, 97,234,167, 44, 91, 68,221,187,209, 45,104, 89, 29, 1, 85, 71,233,210,133,217,164,120,125, 84, 93,228,
-222, 34,184,166,158, 94,244,171,230,184,159,157,250,116, 13,227,169,225, 8, 60, 41, 22, 75,179, 16,165, 85,247,135,101, 61,163,
-254, 93, 54,111,136,167,155, 23, 85, 36, 73,187, 92,155,162, 67,196, 54,154, 16, 84,106, 79,231,209,139,226, 41, 98, 6,158, 20,
- 11,215,217, 50,227, 6,158,100,215,160,223, 74, 2, 6,148, 47,150,147,240,205, 24,165, 33, 93, 46,142,187, 28,197, 12,178,166,
-214, 11,110,135, 80, 22,149,160,247, 16,106, 8, 58, 73,189,213,129, 20,203, 98,208, 84,103, 80,222, 73,132,170,227,105,185, 91,
-237,102, 44,171,109,214, 43,209,110,248, 85,213,103,251,191,117,136,240, 33,104,142,125,163,109,118,134,173,173,177,176, 42,133,
- 72,175,180, 43,101,143, 72, 34, 60, 1,205,191,100,250, 56, 30,177, 87, 54,187,150,153, 26,233, 65,212,211,132,131,222, 7,175,
-252,195,164, 28, 83, 35, 85,147,203,143, 35,177,134,229,217, 39,150,108,215,222, 83, 30,179,191,184, 43,201, 26, 72,150,213,178,
- 72, 82,157,181, 62,159, 16,182,165, 4, 18,166,136, 42, 73, 27,182,213, 37, 26,207, 54, 73,164, 91, 95, 21,209,181,115, 1,164,
-254,175,120, 16,135,171,233,173,183, 49,237,205,186,133,155,188, 44,107,156,131, 90, 18,138, 50,120, 68, 56,117,250,114,165,108,
-235,204, 52,223, 46, 25,226,176,140,191, 28,151,121,196,238,141, 53,117,178, 93,109,242,150, 37,139,123,196, 52,165, 39,198,113,
-239, 24,160,160,151,129, 80, 37,123,136, 32, 30,174,109, 34,110, 95, 38, 16,237,113, 42,133,192,133,232, 76, 61, 9,195,174,163,
-195,176,195,206, 48,124, 84,110,209, 48,193,193, 48, 81,237,236, 61, 21,121, 44,114,109,185, 13,178,217,117,181, 56,153, 16,174,
-240, 98,220, 97, 59,216, 87, 18, 98, 18,226, 9, 4,244,246, 84, 42, 53,176,109,238,161,133,115,121,224,125,179,220,199, 4, 45,
- 36, 31, 69, 57, 25,181, 33,167,144,133, 56,176, 9, 30,202, 77, 5,116, 78,187, 74,145,111,143, 10,151, 99,225,249, 45,155, 21,
-123, 61,147, 22, 44, 44,106,219,111,186,222,211, 62,237,122,129,102, 92,200, 22, 22,158,126, 67,177,217,153, 41,135,164, 33, 34,
- 59,137, 10,109, 4, 41,105, 40, 73, 43,246,117, 91,115,185, 8,195,179, 32,102,128,159,104,174,153,203,124,159,185,110,177,139,
-152, 32, 38, 63,243, 18, 0,195, 50, 53, 16, 72, 29, 75,146,103, 84,251,128,145,201, 30,124, 60,223, 98, 54, 44,230,247,117,157,
- 27, 38,185, 54,229,250,226,151,138,213,140,241,158, 30,194,156, 92,104,219,170,220,112,204, 24,226, 59, 21, 20, 46,173, 37, 91,
-148,163, 94, 97, 51,219,118,242,153, 41,175, 76,237,118,157,214,181, 73, 32, 0, 79,101,125,151, 91, 91,177,227,216,254, 55, 99,
-199, 33, 68,179,216, 49,200, 16,108,246,123, 92, 84,120, 81,109,246,251, 99, 65,166, 91, 66,107,243, 90, 66, 82,145, 95, 71, 94,
-186,112,185, 17, 43,101, 4, 90, 66, 80,217, 11,158,245, 21,151, 20, 64, 76,160,216, 53, 85, 18, 19, 66, 71,127,168,104,206, 53,
- 54, 32,134,161,121,173,182,195,242, 83,188, 23, 16,151, 85,208,154, 0,178, 74, 79,111,236,233,216,194, 84,163,136,166,109,210,
-229,238, 17,159, 74,213, 86,219, 4,163,113, 29, 64, 66,135,166,189,164, 15,139, 86, 49, 5,168, 51, 84, 51,147,220,202,212,151,
- 83, 93,143, 54, 28,108, 37, 84,232,234,208, 59, 43,208, 80,234,198, 38,213,123,141, 40,226,215,230,182, 46, 34, 29,240,212,223,
-142, 10, 73,234, 84, 85, 79, 79,238,233,199,178,163, 57,220,106, 96,182,222,154,113,230,146,163,185, 78, 4, 26, 87,165,105,211,
-191,248,181, 21,237, 74, 32,234,115, 34,119,136,218, 30, 65,170, 3,136, 80, 79, 74,215,109,105,219,233, 21,212, 71,138, 88, 34,
-182,114, 90,131,200, 86,239,162,222,227, 75, 77,122,168, 44,146, 15,111,160,234, 51,169, 46, 66, 41,171,122,185,160, 54,166, 40,
- 64, 7,104, 4,246, 5,131, 81,219,233,169,248,180,219,141, 66,147, 10,136,238,206,180,210,220, 94,237,141,186, 86, 21, 67,212,
- 33,164,212,119,247,154,233, 34,161, 61,213, 20, 92,110,141, 49, 37,197,151, 71,128,240, 41, 82, 66,170,148, 56, 27, 7,211,208,
- 21, 36, 83, 79,129, 85,243, 21,166, 13,238,240,135,144, 16, 84, 75, 78,165, 59,200,234, 80, 19,209, 68,122,104,160,126, 77, 45,
-173,168,128, 99, 77,108, 81,249, 31,127, 58,149,149, 6,148,180,148, 36,154,215, 98,169, 74,215,184,211,175,199,164, 92, 14,237,
- 73,193, 42,238,227,203,103,116, 52,169,180, 56,180, 70, 14,172, 41, 65, 33,192,138,168, 84,214,128,138,117, 58,167,107,195, 9,
-115,138, 1,153,170,235,199, 22, 70,242, 56, 3, 84, 91, 41,192,178,183, 46,215, 43,132,248,109, 36,207,153, 38, 86,233, 51, 90,
-109,192,135,220, 81, 0,239,118,181,235, 77,111,225,243, 43, 99,180, 96,105,189,135, 12, 48,114,229,217, 94, 82,222, 54,219,153,
-229,115,188, 55, 98, 73,166,236, 44, 9, 98, 67, 77, 74,153, 5,149, 72, 80, 2,183,104,233, 67, 99,248,168,233,219,241,232,228,
-243,135,151,237,129, 46,187,105, 79,242,135, 31,152, 99, 89,137,118, 27,151, 28, 99, 79, 72,165,197,113,204,246,230, 24,240,238,
- 22,121, 64,167,196,109, 98,249, 16,161,226,154, 85, 8, 88,127,106,148, 61, 0,232,219,231, 87, 46,150,135,139,176,132,166, 45,
-120, 35,180, 22,168, 29,102,163, 30, 92,185, 46,210, 35,199,180,125,116,227,103, 10,188,176,218,203,214,246,227,182,218, 65,121,
-229,204,142,182,129,236,249,193,210, 15,197,171, 59,111, 55,121,122,225, 3,111,225,199,253, 73,151,109, 71,118,193,116,213,253,
-145,170,203,230,123,141,121, 43, 40,198,162,227,216, 28, 75, 59,193,244, 61, 58,238,101,228, 48,237,201, 91, 17,232, 16,218, 75,
-175, 36, 21, 18,107, 74,215, 80, 47,188,234,229,171, 89, 24, 31,119,172, 23,125,134,185,233,219,164,101, 81,230,229,187,185,208,
- 8,208,103,137, 2,185,198,175, 39,188,170,211,139, 76,172,135, 6,176, 38,224, 99,190,243, 79,228,254,254, 91, 81, 86,197, 50,
-178,202, 30, 81, 40, 29, 73,173, 61, 7, 66,235,251,129,216, 66, 24, 89,113, 42, 46, 81,145,195, 62,241, 25,210,191,245, 41,221,
-139,139, 71,166,154,247,127, 42,153,132, 75, 96,102,227,153,225, 30,240,220,226,132, 60,221,205,233, 81,197,188, 21, 10,149,120,
- 73, 88,219, 90, 10,252, 90,122,219,207,125,182,119,172,118,215, 30,239, 22,128, 87,163, 58,114, 30, 83,124,114, 52,189,205,208,
-184,166,117, 70,115,207, 42,249,108, 25,147, 94, 57, 14, 45, 49,141,225, 77, 24, 50,221,113, 14,165,125,125,146, 91, 0,144, 59,
-181,212,246,159, 56,172,111, 88, 27,224,204,211,214, 7,215, 87,243,217, 6, 57, 90, 69, 21,193, 44,139,195,111,254,245,150, 43,
-117,158,117,173,187,108,183,109, 43,219, 38, 60,187,122, 74, 89,116, 33, 84, 83,137, 61,139, 2,158,157, 51,204,219,228,155,205,
-153,102,218,158, 48,114,128,241,129, 7, 48,163, 35,209, 79,135,181,228, 23,116, 84,203, 13,206, 50,143, 62,216,227,217, 68,201,
-108,188,165,185, 57,183, 45,206, 50, 90, 36,157,181, 39,169,245,211, 92,218,219,255, 0,108, 12,116,113,197, 24,104,192, 33,106,
-122, 42,198, 6,197, 32, 58,134, 53, 51, 34, 47, 27,170,212,243,176,175,137,153, 41, 76, 32,192,140,203, 74,104, 38, 65, 85, 9,
-119,114, 69, 61,158,186,184,217, 54,109,214,125,202, 11,171,182,150,232,119,120,170,141, 41,128, 24,250, 42,194,206, 18,133,169,
-157, 72, 60,113,139,191,145, 93,163, 91,236,208,167,221,165, 4, 46, 67,145,237, 80,221,153, 33,168,237, 83,123,139, 75, 73, 90,
-155, 66, 42, 55, 44,138, 14,243,174,215, 44,134,232,104,140, 18, 74, 12,186, 74, 86,143,109,216,230,220,222, 33,130, 50,247, 20,
- 8, 1, 57,148, 82,156, 58,235,238, 47,203,255, 0, 7,224,222, 93,184,171, 13,192,113, 95, 29,188,121, 55,219, 10,243,151, 17,
- 41, 50, 33,171,145,161,251,155, 46, 93,146, 21, 87, 25,106,124,219,106, 33, 45,148,154, 85, 77, 40, 36, 31, 21,107,202,238, 23,
-179, 94, 92, 56,134, 0,241, 11,132, 96, 4, 38, 50,195,129,224, 92, 26,239, 19, 87,235,117, 1,235,251, 29,177,219, 88,109,188,
- 17,181,169, 9,210, 26, 52,247,116, 41,203, 55, 6,157, 68,226,112, 32,240,175,153,127,197,202,126, 46, 60,249,114,253,169,167,
-227,123,188,200,220,100,206, 66,150, 39, 8,161, 55, 52, 99,214,173,254, 33,220, 17, 80,217, 65, 88, 61,253,189,107,170,230,109,
-211,221, 89,178, 72,166, 44,144, 52,233,192, 30, 37, 56, 46, 33, 61, 25, 87,150, 60,205,218,109,239,183, 93,111,141,165,250, 91,
-137,233, 35, 3,247, 83,209, 92,127,243, 15,199,252, 43, 19, 22,200,238, 88,158, 69,143, 92, 47,208, 24,138,166, 88,137, 36, 25,
-243,102, 73, 41, 73, 75, 65, 36,120,138, 66,107,186,154,215,114,198,231, 53,172,113, 65,114, 73,195, 18,125,100,159, 78, 85,142,
-223,246, 59, 49, 17,240,222,194,230,180, 46, 88,245, 10,160, 24, 85,198,125,183, 45,177, 34,249, 25,231,172, 41, 76,155,108,176,
-166,247,166, 28,123,144,219,226,147, 83, 66,218,168,107,220, 53,111,189, 79, 4,246,239, 48, 60, 7,230, 49,204,142, 21,205,101,
-218,216,240,244, 8, 93,198,165,247,120,251, 21, 99, 44,220,253,206,217, 46, 51,143, 70, 17,165, 42, 66, 92,136,203, 46,169, 36,
- 58, 78,239,216, 29,163, 89, 27, 78,111,150,125,189,210,186, 50,215,183, 82,179,137, 45, 81,135,111, 10, 59, 13,163,225, 48,115,
-181,116, 97, 86,165,142, 48,226, 73, 51, 45,242,215,153, 99,179,218,105,160,205,201,199,230,180, 95,125, 64, 10,165, 7,120,218,
-154,107,202,187,247, 57,243, 37,244,132, 54, 9, 98,141, 85,173,107, 72, 3,172,244,154,210, 50, 56,180, 16, 64, 90,100,114,204,
- 60, 25,150,238, 54,236,114,101,183,238,193,110,121,192,136, 15,180,180, 73,150,240,235, 64,149, 16,123, 5, 78,186,247,150,147,
- 94,195,102,199, 95, 23,120,133,231,222, 85, 13,225,158, 85,121,106,216,219,108, 26,226, 6, 4,250,234,133,241,117,142,225,108,
-229,108, 46,235, 57,149,194,182, 28,133,177,114,150,234,118,177, 22,220,241, 83,107, 83,166,180, 72,216,173,117,126,125,158, 29,
-215,101,186,129,132, 57,230, 62,232, 25,151, 12, 66,122,107, 44,192, 99,118,161,215, 93, 2,201, 50, 28, 70, 37,220,196,129,147,
- 91,238,113,218,217,244,241,148,162,202,106,105, 65,211,173, 7,105, 26,229,126, 88, 88,187,102,177,149,247, 44, 44,149,231, 35,
-154, 1,133, 68,153,175,153, 48,192, 84,242,247, 52,113,148,107, 59, 22,213,222, 85,112,115,220,153,142,168,208, 33,187, 33,244,
-148,164, 38,180,218, 58, 36,247,215, 94,114,119, 33,111,147,110, 46,189,100, 90, 63,106, 92, 11,156, 0, 56,175, 79, 17, 90, 33,
- 36,126, 30,131,209, 77,216, 60,175, 96,155,111, 67, 48,237, 25, 12,249,236, 63,182, 59,237, 90, 86,134,228,177,212, 83,122,202,
- 82, 9, 71,175, 90,253,199,146,222,219,135,191,196,141,145, 72,195,168,106, 10,215,116,160,232, 53, 93, 11, 30,222,208,112,166,
-115,104,183, 92,224,190,202,112,204,213,233, 43,146,144,204,144,134, 88,172, 84, 21, 43,106,220, 46,157,148, 81,169,233,171,152,
-117,237,143,137,194,230, 3,162, 48,210,186,142, 61, 32, 38, 56, 82,244, 60,188,185, 48, 37,106, 42,201,248, 15, 55,228,171,133,
-185,199,229, 68,180,177, 27,197,136,202,174, 18,146,165, 48,219,202, 27, 75,138, 30,129,240,235,164,237,190,108,237,252,178,199,
- 54, 54, 23, 40, 24, 52,102,153,167,109, 54,253,189,211,165, 63,112,239, 43, 87,220, 1,169, 76,222, 50, 28,121,248, 49,215, 34,
- 98, 95, 46, 41,229,184,250,246,165, 9,101,162, 91, 75,129, 74,246,190,118,179,187,191,158,145,239, 9,240,208,188, 56,160, 76,
- 48, 28, 84,226,157, 25, 84,150,109,133,129, 9,169, 54,197,194,182,203,171,173,220, 37,100,111, 66, 22,199, 75,168,113,171,123,
- 48,225,153, 40,175,181,185, 69,210, 10,123, 82, 79,126,178,247, 30,110, 93,237,142,119,135, 19, 92, 94, 56,146, 72, 29, 67, 15,
- 77, 38,109,141,151,141,211, 34,165, 45, 39,135,184, 22,221, 29, 13,220,172,217, 45,254,243, 62, 66, 80,244,166,174,133, 44,186,
- 84,165, 56,165, 57,225,208, 44,168,154,147,219,170,185,252,218,230,107,183, 19, 28,209, 71, 24, 25,104, 10, 59, 22,132, 60,187,
-107, 16, 29,197,167,213,187, 28,227,187, 82,238,176, 99,113,189,161, 5, 17,255, 0,245,107,215, 24,206, 94,238, 97,138,124,242,
-218,148,150,232, 9,237,173,117,149,188,231, 77,226,240, 50, 71,223,201,159,120, 52,134, 53,123, 70, 53,115, 21,139, 27,128,109,
- 53, 82,168, 30,236,235,127,220,219, 0,180,155,147, 13,151,127,185, 73,220,167,194, 92, 72,123,195,241,124, 74, 36, 18, 43, 90,
-117,236,239,212,147,189, 93,120,129,255, 0, 25, 47,137,164,255, 0, 24,228,163, 5, 68,250,104,124, 39, 86, 29,149,103,103,113,
-228, 89,109,205, 93,138,253, 46, 75, 81,100,161,184,205, 72,117, 49,228, 60,212,161,226,161,197, 0, 13, 66, 90, 27,134,218, 15,
-105, 34,186,243, 20,124,217, 59,147,226, 7,206, 71, 71,203,211, 93,168,109,172, 11,160,125, 21, 2, 78,202,101,202,180,139,173,
-134,237, 10,247,105,148,227, 49,224,220, 45,147, 27,184, 69, 91,177,253,135,146,151,153, 91,141,170,143, 84, 18, 21, 65,217,221,
-174,133,105,187,220, 91,159, 11,196,123, 10, 98, 20,131,234, 40,106, 29,230,198, 32,144,178,120,136,120,204, 57,168, 71,104, 56,
-214,136,229, 27,253,186,169,149, 2, 44,135,144, 80,166, 66,130,155, 11,107,102,250, 86,134,167,106,147, 74,122,251,245,119,183,
-243, 5,222,216, 16, 78,116,144,185,175, 31,209, 85, 55, 59, 28, 19,144, 92,207, 85, 61,241,254, 90,182, 78,147, 8,207,182,188,
-211,104, 75,110,251,224,109, 73,105,147, 43,123, 96,171,168,239, 6,149,238, 53,238,213,246,193,230, 13,237,153, 6,225,193,236,
-213,143, 74,103, 84,251,135, 43, 71, 43, 92, 34, 26, 77, 75, 80,179,124, 65,110,168,174,247, 24,183, 41,214,132, 86, 84, 54, 16,
-144,216, 39,111,237, 40, 19, 83, 93,117, 22,121,141,183,185,186,181,160, 29, 85,141,127, 43,221, 40,104,102, 63,166,158, 63,125,
-218,144,178, 73,127,192, 74,210,217,127,194, 40,100, 85, 69, 39,169,167,101, 43,172,214,227,231, 54,223,106, 72,132, 57,231,171,
- 10,181,179,228, 43,153,211, 89, 13,163,176,175, 56,253,193,137,143, 19,189,184, 72, 82,150, 92, 52,112,108, 80, 77, 2, 65,170,
-143, 94,237, 85,193,231, 92, 90,218,217, 96,112, 7,143, 69, 79,127, 32,200,209,221,120, 90, 21,216,120,179,184,237,215, 43,145,
- 57,171,109,138,201, 4,220, 46,215, 41,132,134, 97,178, 84,148, 33, 52, 27,150,181,188,234,210,219, 72, 72, 37, 74, 32, 1,218,
- 71, 85,216,249,138, 30, 97,107, 77,185, 87, 30, 28, 71,111,215, 85,150,124,155,123,127,115,240,177, 55, 28,203,143,186, 7, 73,
- 61, 29,129, 73,192, 10,131, 36,243,247,147,120,216, 29,250,116,172,251, 41,189,242,180,230,236,241,176,140, 22,223,106,141,110,
-178,177, 57,201,177,140,227,120,184,161,251,147,177,139,118,194,249,105,181, 71,111,233, 0, 5,100,123, 42,180,112,153,183, 77,
-129,205, 0, 98, 78, 32,187,208,210,132,142,197,174,179,182,249, 39, 20, 81,234,189,186, 14,123,135,117,145,144, 15, 89, 37,192,
-224, 7, 4, 28,104,227, 89, 22, 41,125,178, 34, 85,137, 15, 54,243, 72,140,137,172,123,250,110, 76,165,249, 33,101, 32, 44,197,
-132,235, 36,108,161,105,104, 39,191,118,169,111,185,154,215,111,186,117,164,143,210,241,193,193, 48, 64, 87, 62,190,129, 92,235,
-155,185, 42, 29,161,229,182,142,149,200, 80,135, 0,153, 42,135, 2, 15,160,180,118,210, 43, 80, 90,150,173,175, 13,187,168,118,
-254,208, 30,158,221, 79,143,116,142, 95,117,205, 62,154,231,114, 91,190, 44,193,168,159,144,111, 77,113,197,210,203,144,251,234,
-102, 98,119, 11,212, 12,107, 44,142,167, 67,231, 31,145,121, 90, 88,133, 61, 36,168,150, 80,153, 59, 90,125, 7,161, 10, 10, 3,
-112, 53, 55,110, 44, 15, 13, 14, 11,208,184,213,165,134,218,237,198, 55, 51, 65, 15, 13, 46,105, 76, 28,152,150,245,225,136, 61,
- 73, 85,183,207, 47, 22,135, 56,233,190,100,176,180,187,102,113,198, 55, 27, 77,214, 37,214, 41,240,228,191,107, 84,150,208,166,
-150, 69, 10,188, 39, 86,135, 17, 83,210,138, 29,250,106,237,205,144, 47, 17, 90, 30, 68,220, 76, 87, 6,205,229, 98,148, 16,157,
-105,244,228,106,142,249,154,229, 40,124,183,133,240, 15, 34,176,243, 94,251,115,179,229, 22,139,244, 52, 42,166,221,125,180,187,
- 19,222, 26,165,122, 37, 74,115,196, 69,127,101, 67, 73,146, 99, 59, 65, 57,140, 13,109,121,111,103, 59, 60,247, 80,125,157, 77,
- 45,236, 42,159, 85,116,235,202, 30, 65, 63, 42,225, 44, 46, 96,112,173,203,100,121, 54, 39, 86, 13, 72, 93,169,213, 54,144, 79,
-167,194, 40,212,136, 46,136,104,174,119,205, 91,127,131,127, 34,113, 67,235, 21,120, 44,118,199,154,118, 37,202, 91, 17, 46, 38,
- 51,237, 62,171,116,240,231,185,203, 13,154,248,110,248, 78,178,233, 74,187, 8, 74,193, 62,157, 56,249,203,198,117, 89,101, 24,
-130, 70,188,176, 56, 2,186, 74,161,234, 40, 65, 78,194, 42, 4,243,171,230, 3, 52,141,129,179,129, 92,110, 48,156,115, 55,113,
-182, 28,134,205,189,150, 13,191, 31,179,184,211,148, 96,165, 62, 35, 41, 90,208,219, 8, 0,211,102,228,129, 78,202, 29,222,232,
-197, 17,107,120,225, 94,139,228,206,108,220,247,189,113, 74,246,139,118,180, 52, 49,172,107, 64,201, 0, 32, 46, 0,116,229, 86,
- 55,240, 60,141,100, 28,131,204, 57, 52,218, 28,141, 24,101,162,205,141,213, 21,255, 0,212,238, 79, 67,215, 85,130, 79,105,117,
-136,105,233,235,248,241,176, 18,199, 87, 97,218, 97,104, 7,167, 15,111,248, 87,210, 20,153, 79, 37,208,195,117, 40, 86,208,129,
- 82, 5, 28,166,238,254,191, 54,186,156, 74,214,134, 24,233,101, 87, 49, 46, 9,106,181, 49,194,123,235,183,195, 77, 7,127,166,
-186,144,194,162,157,209,164,173, 67,119, 91,163, 72, 84,135,139,131,114, 95,108, 56,130,105, 90,131, 65, 74,247,168, 84,234, 68,
- 66,149, 33, 65, 81, 21,219, 32,106, 82,149, 21,194,124, 69, 71, 94,246,212,122,151,125,131,233,239, 14, 83, 86,112,178,171,102,
-114, 84,127,121,158, 28, 4, 36, 20,238,105,212, 32, 40,116, 30, 26,194, 18, 59,125, 53, 58,177,140, 85, 84,175, 74,141,224,228,
- 47, 90, 46, 62, 35,132,169, 91,208, 84, 43,218,203,170,105, 74,233, 94,224, 53, 47, 66,138,142,101, 90,151,241,188,229,135, 22,
-194, 20,242,124,112,159, 19,183,254,174,130,189,253,202, 61, 53, 22, 72,233, 58,234, 83,183,100,227,114, 18, 92, 74, 91, 72, 37,
-116, 85, 70,229, 0, 43,219,220, 72,212, 9, 25, 67,197,165,161,148, 69,162, 25, 82,170,176,221, 10,137,236, 82, 10,123,122,246,
-209, 64,141, 67,123,105, 46,146,145,238,247, 24,239, 36,186,133,110, 64, 75, 32,154,246, 44,154,131,219,232, 78,152,115,106, 44,
-146, 84, 49,147,221,195,109, 45, 33, 97, 68,173,105, 6,181,174,240, 69, 59,127,120,104,152,218,131, 36,139, 80, 92,214,229,188,
-151, 10, 20,118,182,226,146, 40,231,183, 32, 41, 36,165, 32,215,165, 21,169,109,194,162, 73, 40, 52,131, 37,231,125,205, 53,216,
- 82,195, 74, 46,212, 81,123,156, 21, 53,235, 64, 52,121, 26,141,171, 26, 89,195,156, 75,147, 18,249, 1, 34,187, 55,171,246, 77,
- 74, 73, 29,127,122,154,137,113,149, 58,100,194,166,236,139, 33,141,105,227,252,222,238,252,181,196, 68, 28, 74,243,225,200, 75,
-133,181,178,235,236,173, 9, 9, 32,244, 40, 90,128, 79,249, 53, 73, 59, 60, 70,185,169,152,170,125,210,109, 16, 60,158,138,224,
- 93,239,145,243, 91,140,185,222,237,119,188,186,153, 30, 48,142,219,206, 58,149,166, 18,214,170,186,146, 73, 90,212, 8,220, 74,
- 85,170,120, 54,139, 40,144,189,140, 81,153, 9,159, 65,232,244,138,224,247,206, 46, 39, 19, 77, 20,230,249, 4, 54,204,159,127,
-156,251,177,155, 75, 63, 57,199,149,213,125, 10,214, 87,184,169,106,236, 3,174,167,255, 0, 47,183,144,233,210,208, 15, 96,245,
- 97,149,103,229,105,167, 50,249, 66,232,242, 34,198,126,230,234,136, 45, 5, 53, 46,226, 98,111,146,158,165, 73, 74,143,179, 69,
-126,193, 61,105,170,191,228,145,198, 92,240,209,199, 38,174, 31, 46, 52,218, 23, 97, 89, 27,150,242,198, 25,144,201,200,151, 49,
- 82, 36,186,164,182,151, 16, 75, 17,199,204,216, 28, 89, 77, 82,163,214,131,215,164,201,203,214,175,112,112,136, 52, 1,215,137,
-235, 74, 32,215,112, 52,147, 35,145,114,123,129,126,209,239,145,220, 80,109, 82, 61,228, 2,251,178, 2,137, 73,108,213,192, 1,
- 87,171,179, 82,226,218,173,173,210, 93, 39,161, 50, 78,188,169, 38, 55, 59,187, 72,239,223,175,210, 17, 34, 35,182,200,246,215,
- 88,113, 15, 52,244,247, 92,109, 46,182,215,122,182,186,165,162,168, 81,246,169, 77, 75, 99, 32,105, 15, 15, 46, 94, 1, 48,246,
- 33,198,146, 96, 32,161, 20,215,184, 94,227, 6, 28,110, 19,143,200, 68,230,169, 88,175,189, 46, 43, 41,141,210,136, 83,197, 43,
- 85, 20,122, 26,106,206,217,142, 5,100, 65,164,241, 64, 74,245, 12, 41, 47,132, 84, 17,126,190,190, 18,250, 38, 60,164,161,210,
- 29, 44, 71,144,148, 50, 18,148,236,220, 74,104,180,168,145, 95, 86,183,155,124, 45, 36, 22,103,210, 70, 61, 61,137, 77,152, 20,
-227, 85,254,232,251,114,101, 56,208,118, 97,113,106, 80, 64,123,233, 84,194, 85,235,253,170,252, 26,234, 59, 99, 72, 0,160,244,
-113,165, 71,102,180,102,199,108, 89, 11, 46, 46, 92,133, 39,163, 77,248, 27, 20,164,168,158,160,154,158,154,219,219,129,134, 0,
-122,106,246,203,108, 94, 21,124,188,153,249, 90,207,252,214,115, 14, 45,196, 56, 51, 75,183,200,188, 45,249,183,220,146,225, 29,
-201, 22,140, 75, 27,183,164,174, 93,198,113,107,105, 75, 76, 38,137, 77, 72,220,181, 33, 0,238, 80,211,247, 55, 49,194, 11,158,
-112, 3,128, 83,212, 0,226, 73,192,125, 66,186, 15, 45,114,183,243,137,219, 10,233, 8, 73, 40,168,131,128,193, 73, 40,208, 20,
- 98,122, 43,236,183,200,119,144,110, 34,242, 84,254, 67,113,199,179,155,175, 35,101,188,139, 21,204, 38,231,123,186,196,133, 6,
-207, 58, 14, 62, 85, 46, 83,118,200,137, 67,146, 81,185,198,221,105,214,253,225,221,229,176, 77, 54,157,102, 55,169,165,185,141,
- 25, 27,152, 24, 25, 35,148,171,129, 36,181,138,128, 6,142,240,118, 40,138, 6, 56, 87,127,217, 57, 62, 61,130, 57, 29,110, 30,
-160, 49,207, 46, 56,130,164, 53, 80, 0,208,174, 92,114, 80, 49, 53,106,101, 94,177, 78, 61,133,200,182,235,244,180, 67,177,241,
-252,172,119, 44,187, 78,185, 79,247,132, 70,176, 92,110, 45, 93,164, 58,241, 87, 82, 96,165, 46,186, 5, 59, 0,213,149,216,155,
-117,101,181,235, 81,101,100,141,192,105, 0,199, 25, 98,245, 7, 4, 83, 93, 70, 77,182, 73,237,109, 47, 98, 56, 76,217,193, 39,
- 0,215, 70,199, 2, 84,228,211,135, 28, 49,175,131, 79, 51,156,143,124,231, 78,105,229,190, 89,158,211,226, 71, 32,231,121, 30,
- 80,195, 15,185,181,200, 54,219,164,167, 12, 56,181, 10,219, 72,209,124, 54, 71, 94,196,233,135,110, 48,219,128,214,145,165,160,
- 1,216,208,131,175, 33, 94, 35,230,235,129,186,222,205,112,223,116,185, 27,250,141,238,179,255, 0,196, 10,169,211,184,207, 34,
-186,190,239,186, 37,231,150,154,123,194, 99,208,174, 49, 36,159,104,168,237,232, 58,211,174,178,155,167, 58,219, 91, 14,249, 3,
-161,120,215, 58,185,181,212,112,160,226,112, 77,214, 68,173,239, 93, 22,212, 98,148,151, 38, 61, 25, 73, 97, 33, 84, 10, 4,165,
- 35,244,107, 31,115,230, 44, 81,140, 24, 9,232, 6,160,124, 10,212,167, 3,202,251,104,131, 22,124,171,191,190,219,228,178,167,
-146,243, 49,159, 97,207, 21,133, 16, 80,148, 47,218, 95, 65, 84,168, 80, 29,100,110, 60,217, 37,238, 99, 99,210,224, 83, 18, 14,
-124, 84,101,217, 79, 29,184,129,213, 66,159, 47,118, 54,252, 69,206,118, 82, 92,241, 27,110, 52,118,166, 54, 39, 41,151, 21, 90,
-173,178,173,169, 59, 5,104, 52,207,245, 54,119,167,134,137,196,144, 81,122,143,109, 15,128,234,162,236,240, 53,137,114,165,179,
- 29,188,138, 99, 16,183, 56,152,238,120, 77,175,194, 81,218, 9, 82, 86, 77, 43, 67,219,161, 39,153, 23, 13,107, 75,140, 96,158,
- 56,231,233,163, 22, 35,162,151, 45,188, 25,137, 42,124, 86,157,137, 37,146, 82,149,188,185, 1,199,218,113, 71,173, 84, 70,224,
-144, 59, 40, 53, 95,115,230, 53,222,135, 16,224,122, 17, 1,165, 54,197, 78, 85, 35,195,227, 14, 62,109, 99,198,133,105, 92,146,
-182,227,161, 2, 48,134,226,130,168, 55,123, 78, 4, 0,160,147,243,135,195,172,212,220,231,184, 56, 96,247,134,231,154,253, 21,
- 37,182, 35,143,205, 82, 51, 92,103,128, 69,117,217, 22,107, 51, 77, 20,248, 79,214, 67, 72, 92,130,148, 15,154,151,153, 94,221,
-170, 41, 53,166,179,111,231, 11,249, 90, 27, 52,132,230, 48, 37, 61, 71,141, 60,108, 7, 1, 68, 3,204, 90, 47, 6, 52, 23,216,
-182,173,180,123,233, 76,246, 83,185, 8, 72, 59, 67,100,130,132,132,147,218, 72,168,209,186,232,221, 69,169,224,184,101,129,249,
-233, 66,219, 73,235,161,163, 94, 30,185,181,114,146,245,230, 3,175, 17, 29,244,193,132,235, 69,132,150, 1, 11, 33,107,162,247,
-174,190,215,118,153,148,178,220,181,161,142, 3, 16,165, 87,171,169, 61,180,182,219,168,196,208,113,242,123,100, 83,238,242, 97,
-219, 85, 30, 70,231, 36, 73, 84,214,220,146,226,146, 54,236, 90, 82, 83, 68,147,218, 6,153,150, 57, 36,239, 53,206, 81,144, 76,
- 61, 29,116,227,109,211,128,165, 40,215,150, 18,176,151, 38,217,110, 8,108,133,193,180, 8,136, 76, 56,204, 3, 82,135, 22,239,
- 85,116,235,243,181, 18,103, 19,238,181,237, 92,220,184,158,196,250,169,239, 1, 41,190,237,230,207,115,121,166,166,206,178, 65,
-110, 33,156,227,150,200,146, 91, 82, 95, 11, 36,149, 41,150,214,164, 43, 97, 61, 58, 84,233,245,150,221,164,198, 30, 73, 68,113,
- 92, 61, 39, 28,105, 98, 45, 71, 26, 58,222, 95, 97,102,218,249,247,233, 34, 18, 90,113,166,220, 92, 68,196,139,112,120,210,161,
- 41,108,172,178,148,129,218, 64, 36,106, 44,150,247, 15,144,119, 70,172,243, 82, 7,167, 51, 78,248, 77, 74,139, 47, 25,237,182,
-221, 33,215,227,100,108, 45, 46,146,212,132, 55, 33,106,116,161, 65, 42, 9, 15, 23, 18,180, 1,216, 5, 41,234,214,134,215,110,
-146,225,161,174,136,225,136,192,124,200,134,147,225, 14,154,103,255, 0,126, 25, 11,223,253,245,111,196, 84,207,127, 16,188,119,
- 60,111, 5, 41,161,111,198,241, 60, 61,213, 52,174,222,205, 88,252, 9, 79,220,112, 69, 64,157,168,139,237,164,248, 99,166,187,
-233,111,227,190, 61,184,218,164,193,138,226,228, 51, 34, 52,168, 50, 30, 21,140,252,185,239,176,251,238, 4,138, 37, 68,132, 6,
- 86,158,228, 37, 77,163,183,169,249,225, 46,255, 0,123, 19,195,147, 47,119,161, 2, 5,244,227,218, 84,215,166, 63,148,179, 72,
- 57, 46, 39,208, 50, 21,241,181,192,185,103, 39,121,114,243, 35,158,241,221,177,231, 39, 97,214, 44,219, 43,196,115,171, 53,239,
-199,254,237, 59,110,199,228,190,132, 93,146,180, 7, 17, 17,225, 25,132,188,135,194, 78,228,208, 40, 41, 61,158,250,230, 54,216,
-115, 54,207, 5,236,206,209, 43,227, 99,152,230,133,118,167, 52, 29, 8, 49, 32,146,132,112,204, 37,123, 87,150, 60,136,185,254,
-227,217, 4, 22, 44, 13,152,198, 31,227,187, 8,226,110,157, 78,116,175,200, 70,220, 73, 83,130, 97,142, 7,166,156,209,231,183,
-203,167, 22,227, 22,203,157,157,156,147,146,114, 12,165,147, 38,209,100,180, 91, 23, 96,122, 44, 70, 16,132,123,220,167,174, 41,
- 97, 44, 71,113, 69,192,194,217, 75,158, 39,206, 78,228,128,173, 96, 57, 99,203,205,235,153,100, 12, 12, 17, 70,198,163,158,226,
-161, 84,224, 19, 18, 64, 69, 5, 19,217, 94,115,231,127,237,235,112,242,250,103,195,188, 79, 4,122, 73, 17, 58, 55, 9, 77,192,
-212, 82, 88,216, 52,189,177, 56, 98,215,202, 35,212, 19, 75, 93,138, 93, 94, 40,200, 48,220,255, 0,142,112,140,222,199, 22,108,
- 23,249, 95, 28,179,223,226, 90, 47, 16,218,113,251,108, 11,179, 32,165,133,108, 5,173,204,168,147,185, 61, 14,202,131, 67,174,
-103,189, 65,119,177,220,207,105, 33,111,236,100,115, 9,105, 56,144,113, 62,159,165, 43,131, 93, 89, 54,222, 87, 70,226,165,164,
-133,224, 83, 10,138,114, 76,103, 62,137,150,166, 28,124, 77,247, 32, 66, 19,204, 73, 16, 34, 37,199,220,112,173,166, 81,185, 64,
-253, 26, 80,181,170,169, 52,173, 15, 81,173,134,223,185,217, 58, 16, 36,144, 41, 3, 18, 72, 66,132,245,168,203,133, 65,108, 26,
-129, 26,113, 60,122, 62, 93,126,202,112, 73,187,242,107,121, 13,187, 31,183, 95,113, 92,218,230,136,151,169,153, 14, 41,143,223,
-195, 25, 30, 40, 45,146, 60, 22, 35,221,146,235, 14, 67, 68,137, 59, 30,117,150, 80,241, 62, 27,106, 43, 13,238, 69,109,127,146,
-216,193, 98,219,201, 85,141,144, 52,180,150,168, 43,197, 84, 35, 78, 29,101, 66, 42, 26,210,127,235,207,182,182,101,196,142,247,
-198, 13,204,132, 57,158,128,115,226, 82,186, 43,229,227, 22,227,222, 60,186,241,218,252,193,113,109,230,126,117,147, 94, 84,237,
-227,143,121, 7, 36,182,241,230, 35,142,226,138, 74,228,178,181, 73,149,115,133, 22,225,114,126, 51, 5,214,224,200,146,223,178,
-226, 74,218, 81,240,210,229,238,217,203,246,113, 61,142,185,113,120,112,118, 8,141, 96, 0, 29, 82, 18, 65, 0,240, 0, 21,232,
- 64,226, 55,123, 63, 37,218,219, 91,124, 85,252,141, 14, 67,165,142, 32, 41,236, 57,156,137, 10, 8, 7, 17,146,179,188,205, 92,
-177, 76,195, 42,206, 98,241,138,241,107, 46, 11, 62,107,146, 49, 91, 11, 86,216, 88,220, 76, 81,168, 42, 44,164, 78,132,133, 56,
-137, 6, 43, 37,198,216,152,162,160,232, 81,162,146, 84,164, 7, 89,187,142, 82,221, 97,185,183,157,174,177,115,251,205,183, 66,
- 74, 52,163, 30, 23, 86,103, 18, 74, 38, 35, 16,131, 55,125,126, 54,187,161, 36,110,107, 98,255, 0, 64,104, 82, 6, 68, 12,248,
-162,225,141,114,147, 33,227, 12, 3, 17,228,136, 89,245,162, 20, 52, 94,146,197,213,114, 91,182, 52,251,243,175, 78, 16,194, 67,
-133,180,125, 8, 45,181,189, 40, 44, 54,104, 23, 66, 73,165, 45,119, 79, 48, 47, 57,133,229,209, 44, 57, 0, 67,144,129,142,110,
- 81,143,171, 42,206,110,188,209,113,186, 75,226,196,223, 12,140, 3,154,160,166, 88,144,131,171, 0, 61, 53, 12, 92, 60,203,225,
-118,151,229,194,200,227,229,216,157,197,171,164,248,246,235,220,139, 90,162,219,152, 75, 78,161,230, 90,114, 66, 20,184,238, 36,
-180,233, 43,105,125,127,105, 73, 73,162,181, 42,243,106,220,121,133,205,154, 89,153, 51,155, 27, 91,152, 82, 2,244, 0, 85, 85,
- 29,237, 53, 85,118,203,157,192,137, 28,142, 40, 59,126,143, 95, 26,156,241, 78, 72,203, 50,139,114, 30,176, 60,205,217,108,217,
-197,217,187,133,150,123, 46,177,115,183,189, 79,245,152,170, 47,215,194, 71, 79, 27,123, 75, 13,158,138,168, 41, 82,170,109,180,
-108,215, 81, 25,228, 49,141, 72,224,240,226, 7, 81, 3, 53, 30,234, 57,164,230, 8, 66,148,151, 91,108, 45, 8,230, 3,211,212,
-122, 50,166,194,178, 27,231, 42, 98, 25,230, 33,155,219,177,233,110, 95,237, 23,118,108, 87, 86, 44,232,176, 94,161,188,235,111,
-185, 6, 81, 73, 91,201,116, 45,246, 80,242, 29,105,208,163,218, 90, 66,123, 58, 63, 49, 54,210,194,214, 29,218,196,190, 54,151,
-128, 90,231,120,204,122, 56, 7, 52, 61, 3,227,145,141, 40, 88,246,161,106, 36,142,113,197,136,246,216,237,228,107,162, 36, 6,
-230, 1,195,172, 38, 68, 82,229,255, 0,151,173,188,213,228,213,251,213,225,168,140,100,215, 30, 63,186,216,178,100,178,150,161,
-197,145,145,226,209,233,227,134, 25,109,180,182,185, 82, 98,251, 67,247,206,234,128,118,142,115, 14,235,186,236, 27,179,172, 76,
-174,146,212,200, 11,117, 43,156, 24,226,169,168,146, 72,104, 56, 42,148,195,133, 70,118,203,107,111,120,217, 24,192,215, 2,184,
- 96, 61, 93,135,133,112, 87, 37,131, 51, 26,201, 47, 56,114,101,188,245,166,203,144,202,147,106,109,106, 62, 31,129,115, 67, 43,
- 67,161, 53, 32, 23,163,165,162,126, 1,174,231, 97,112, 46,161, 18,166, 36, 99,218, 20, 31,109,110, 0,107,192,122, 98, 70, 62,
-138,236,231,225,201,200,176,160, 98,185,126, 33,123,120, 34, 61,174, 67,153, 69,190,190,210,202, 84,148, 55, 37, 9, 72,234,174,
-137, 66,168, 61,122,201,243, 31, 48,205,176,201, 17, 99, 53, 53,229, 8,232, 63,167,232,172,118,249,203,237,221,101, 15, 5, 28,
-137,219, 95, 69,248,172, 79, 35,184,119, 6,219,185, 39,158,121,186,209,130, 73,190, 38,245, 2,195, 99,185,229,108, 55,201, 23,
-169,150,149,120, 42,155, 10,211, 20, 74, 91,145,213, 45, 46, 54,218, 21, 24,164,109,171,146, 0, 34,182, 59, 71, 50, 13,246, 49,
- 44, 10,208, 73, 93, 64, 0, 0,244,253, 62,170,221,108,190, 90,108,183, 22,141,154,225,211, 2,229, 11,169,173, 82, 48, 58, 71,
-120,105, 4,113, 83,219, 95, 54, 30,111, 57,119, 16,229,238,120,201,239,220,117, 14, 92, 14, 62,180,183,111,197,240,230,229,203,
-118, 76,171,133,182,196,202, 89,118,226,224,117,106, 83, 74,186,203, 14,203,240,129,163, 97, 97, 3,162,107,163,191,115,158,228,
-113, 84,226, 48, 21,101,103, 97,103,180, 61,208,216,131,225, 3,129,113, 82, 74, 0, 73,237, 76, 7, 1, 93,231,242, 53,196,216,
- 63,150,139, 55, 22,242,196,174, 97,199,178, 22,242,254, 51,131, 2,233,100,198,225,135,161, 89,111, 57, 22,219,181,193,155,172,
-231,229,178,150,157,134,230,216,237,165,150,156,221,225, 41, 68,163,160,213, 92,205, 16, 70, 38,123,152,214, 18, 0, 37,195,188,
-236,112, 28, 21, 56, 45,116,173,159,100,116, 4,206,249,219,223, 32,180,112, 35, 72, 26, 84,145,136, 43,146,215, 99,177,110, 75,
-176,101,129,185, 54,137,209,231, 53,238,168,152,203,145,221, 14,161, 77,182, 75,100,130,146,106, 14,211,215, 70,217, 2, 40,173,
- 24,136,179, 3, 79,152,143, 45, 46,168,132,159,167,142, 31, 40,253,228,172, 18, 0,235,219, 78,221, 75,129,234,104, 72, 48,168,
- 63, 53,120,180,226,157, 13,148,133,110, 42, 64, 62,202,156, 96, 2, 43,215,190,167, 86, 49, 26,143, 33,168, 15, 47,184, 72,105,
-230,166,181, 84,185,225,253, 47, 80,146, 28, 62, 24,165, 43,220, 6,173, 32,198,170,102,114, 84, 79,121,206, 22, 98, 54,158,215,
-148,165, 16, 65,175, 78,210,123,122, 83,166,173, 33,141,106,142,225,232,105,139, 43, 46, 98, 92,160, 92, 90, 83,224,181,181,210,
- 85,212,237,218, 7, 90,245,246, 70,167, 54, 44, 42,184,202,149,228, 12,160,198,113, 18,218,144, 10,146,166,154, 90,119,246,212,
-158,206,189,131,191, 72,146, 26, 88,184,169,211, 30,204, 83, 50, 33,144,151,168,227,137, 86,207,164,246,118,130, 1,239,244, 13,
- 85,205, 18, 80, 51,165, 58,142, 74,149, 54,248,241,193,119,196,162,150, 21, 66, 20,148, 3,233,248, 41,170,249, 35,162, 55, 20,
- 96,229, 59, 26, 88, 91,128,162, 72, 83,116,221,209, 62, 16, 2,189,189, 15, 77, 69,123, 18,162,203, 61, 71, 87, 43,137,148,251,
-136, 74,193, 65, 41, 41, 5, 94,209,246,138,106, 58,247,154,252,154,108, 4,168, 47,154,152,242,103,150,150, 80,160,176, 55, 52,
- 70,213,123, 59, 28,170,210, 59,125, 37, 67,228,211,194,163, 57,235, 69, 36,248, 78, 41,198,200,160,148,159,104,246,128, 72,236,
- 61,123,200, 26,108,185, 41,189,117,237,178, 79,187,200, 17,154,246, 66,141, 20, 71,206,161,234,107,215,210,116,196,165,104,204,
-149, 29,121,194,228, 79,238,239, 12, 71,198,161, 76, 98, 61,195, 56,186, 71,134,249,113,210, 28,106,217, 18,174,173, 91, 16,164,
-173, 65, 78,165, 3,167,111, 81,170,153,165, 16,227,138,142,138,200,243, 85,247,133, 14,129,155,141,113,143,251,197,121,183, 38,
-106, 74,203,197,249, 10, 2, 67,168, 90,223,106, 39,134,170,165,176, 84,118,214,181, 2,186,140,248,225,184, 32,140, 48,200, 34,
- 18,188,107,149, 76,226,104,139, 23,185, 55, 9,132,162,237,107, 67, 80,223, 65, 13, 75,104, 37,229, 50,174,213,171,103, 93,201,
- 61,134,154, 18, 49,176, 55, 22, 59, 17,192,241,232,168, 62, 25,119, 69, 52,175,147, 24,102,122,132,155,178,158,240,101, 25, 17,
-131,110, 41,132, 59,214,189, 40,162,167, 40, 61, 35,224,213,149,164,133,204,193,136,161, 14, 69, 62,170,108,192,153, 86,240,242,
- 43, 52,165, 57, 16,173,212, 75,247,215,147, 9, 78, 74, 80, 80,102, 69, 2,210,143,104, 18,107, 90, 21,130,116, 82,193, 36, 99,
- 88, 56, 38, 56,113, 25,124,133, 44, 69,213, 78, 43,117,198, 45,157,130,197,149,168,242, 38,169,111, 9,114,166, 63,239,101, 5,
- 67,161,220, 77, 69, 41,237, 13, 87, 92, 57,247,101,102, 36, 55, 4, 3, 10, 91,109,200, 24, 10,218,233,145,221,110,113,228, 58,
-135,109,141,157,202, 43,117,229, 37, 42,116,167,104, 80, 9,170,139,105, 36,116, 4, 31, 86,138,214, 24,173,200, 29,239,151,206,
-104,205,171,223,157, 20, 51,218,188,219,219,128,237,222,217, 30, 83, 5,182,154, 68,102,130, 22, 85,208,211,110,208,170,158,250,
-211,211,167,132,134,210, 67, 32, 99,136, 56,149, 63, 33, 68,109, 75,176, 74,111, 74,195, 35, 62,227,242,110,151, 21,191, 30, 91,
-170,142,136,145,208,106,195,145,168, 1, 35,168,165, 77, 73, 73,213,189,175, 49, 22,163, 98,104, 4, 98,167,138,209,252, 11,186,
- 40,252, 14, 38,198,101, 76, 50, 62,242, 92,133, 16,202, 75, 43,144,164, 20, 45, 84,219,181, 67,118,234,246, 82,157, 53,172,219,
-249,186,118, 52, 2,212,235, 65, 83,237,246,226, 14, 85,106,120, 67,202, 20,206, 98,228, 11,111, 28, 97,214, 25, 55,204,174,249,
- 87, 97, 55, 10,230, 45,176,160,219,163,182,167, 94,147, 45,247, 82, 17, 25,152,237,130,183,157, 81, 0, 15, 73, 32, 29,110,207,
-204, 87,187,187,219, 29,185, 0,102,226,224,160, 5, 1,112, 82,113, 32, 0, 1, 36,144, 6, 38,183, 92,187,203,178,238,146,136,
-163, 3,164,147,144, 29, 61, 39,168, 12, 73,192, 87,211,223,148,174, 56,227,111, 42,220, 88,199, 17,223, 51, 62, 56,200, 46, 22,
-134,166, 71,200,100,113,245,150, 83, 17, 38,220,102,201,118, 93,110,151, 85, 60,195,151,201, 44,151,146,210, 20,234, 82,218, 27,
- 67, 97, 45,130, 9, 62,144,111, 46,223, 77, 4, 82,219,218,190, 55, 4,239,191, 75, 92,228,104, 4,134, 16,227, 24, 56,184,144,
-117, 18,226, 10, 4, 21,238, 14, 70,228,155,155,187, 86,179,109,180, 3,195,210, 11,244,180, 56,144,208, 14, 36, 61, 53, 98,226,
-157,229, 56,160, 65, 76,238, 83,228,107,188,107,110, 13,103,189,100,183, 91, 52, 14, 58,104,192,196,115, 91, 36,165, 89,226,200,
-136,194, 82,212, 85,191, 34, 51,169, 16,103,150,129, 75,187,212,150,223,168, 45, 43,113, 91, 45,233,182,219, 8, 54,223,136,241,
- 88, 9,153,193,207, 80,186,142, 42, 10,230,222,129, 94,141,228,158, 88,179,229,182,220, 69, 60, 44,120,153, 28,237,109,212,164,
- 2,173, 32,140, 70, 56, 97,210,163,166,135,249,191,243, 69,139, 88,236, 54,143, 47, 88,222, 83,112,201,179,110, 80,147,247,238,
-100,243,151,175,127,190, 95, 96, 33,183, 98,199,138,252,135, 95, 75,155, 95,220,226,158, 42, 87, 68,248,105,249,187,169,131,243,
- 66,107,219,139,102, 91,109,113,180, 52,176,130, 64, 1,172, 98,130, 64, 29, 47, 32, 12, 6, 13, 14, 7,222, 21,196, 63,184,141,
-254, 86, 91, 55,109,177, 99, 24, 31, 25, 97, 13, 1,173,142, 34,224, 72,104, 24, 3, 33,106, 96, 48, 99, 94,190,240,174, 74,229,
-247,120, 54, 49,113,198, 95,135,138,165,248,183, 4, 52, 17, 14,230, 50, 40,209,125,145,226,132,205, 72, 91, 18, 9, 88, 81, 14,
- 50,178,142,192, 10,169,185, 94, 77,220,217,113,101, 57, 19, 61,250,154, 49,200, 47, 17,128,203, 2, 51,253, 21,243,223,121,219,
- 62, 25,230, 54,149, 35, 3,209,232,168,241, 23,242,202,202,228, 55, 25,171,106,143,128,204,132, 60,169, 5,245,208,144,144,205,
- 18, 42,123,205,117,207,247, 73,132,196,134,146, 95,153, 25, 39,166,178,114, 89, 61,216,165,104,254, 96,195,136,122,179,203, 14,
- 36, 41,182,224,192,109, 81,155,171,164,143,105, 10, 35,173, 61,125, 53, 70,219,125, 36,119, 87,172,226,125,117, 28,217, 59,211,
- 66,193,185, 6, 38,197,158,185, 22,247, 93,109,181,123,202,100, 41,213,184,136,235,253,144,143,105,180,146, 79, 82,145,168,247,
- 50,135,180,176, 7, 1,193, 19, 62,220,253,116,227,118,199,102,162,128,147,151,200,247,182, 28, 16, 34,197,147,187,194,104,161,
-198,221, 14, 71,108,244, 80, 82,170, 82, 79,193, 93, 19, 34,102,146, 53, 18,220,248,140,105, 67,110,114,240,175,102,242, 34, 74,
-140,105, 50,226, 45,213, 6,209, 57,233, 14, 52,162,232, 73, 73, 8, 79,182, 15, 81,234,235,166, 98,176,251, 77, 5, 56, 0,184,
- 83,159,203,201, 56,154,143,174,153,116, 87,222, 41,135, 33,216,204, 52,235,139, 66,140,253,158, 26,154, 59,168,141,138, 8,167,
-168,234,226,222, 23, 49,189,224, 9, 35,163,235,198,136,216,180, 20, 21,164, 78, 85,180, 90,152, 2, 68,133,175,197,220,243,209,
- 82,235, 94, 36,167, 24, 72, 41, 20,249,221,107,215,218,209, 77,180,203,112,123,163,168, 28,112, 95,101, 59, 29,171, 25,154,209,
-116,121,153,130,195,111,199,139,110,125,134,130,254,145,195, 48, 37, 10, 85, 40, 18, 16,214,227, 74,244, 59,142,146,254, 74,146,
- 66, 28,231,130,123, 62,191,162,156,211, 24,200, 26,142,239, 28,229, 14,115,134, 82, 36, 17, 50,160,248, 42,115,112, 81, 7,167,
-179, 84,138, 31, 65,213,197,183, 45, 62, 33,167,236,210, 12, 76,205, 41, 9,254,114,185, 78, 64,141,224,197,140,219, 65, 45,175,
-192,140, 24, 46, 33,186,245, 43, 74,168, 43, 95,104,234, 75,121,101,144,247,181, 18, 79, 73, 90,112, 48, 30, 1, 41,169,255, 0,
-197, 41,104,149, 21,101,233,101, 73, 81, 67, 78, 34, 73,105,164, 34,163,183,181, 71,225, 58,154,118, 86,185,174, 24, 39,102, 52,
-108,140, 45,121,113,228,103,158,148,149, 49, 42, 75,234,105,126, 49,105, 72, 50, 84,243,166,165, 99,169, 35,191,183, 66, 29,173,
-172,110, 32, 14, 29, 9, 75, 49,210, 51, 57,212,230, 84,101, 70, 83,176,148, 94, 33, 76,182,160,135,139, 99,176,208,117, 77,107,
-212, 13, 72,125,139, 28, 52,187, 28, 51,164,136, 58,168,220,254, 65,186, 62,173,210, 38, 75,144, 22, 91, 9,142,153, 59, 82,218,
- 54,154,166,135,167,103, 67,166, 98,219, 99,140, 96, 0,235, 74, 51, 0, 60, 41,165, 43, 34,146,219,238,188,219,114, 28, 15,169,
- 37, 46,118,132, 22,232, 74, 42,144, 63, 54,167, 50, 54,144, 1, 35, 10, 64,132, 28, 64,164,115,151, 92,140,182,201, 79,250,171,
-126, 48,109, 30, 34, 60, 96, 94,113, 11, 95, 90,120,159, 57,180,254,213,127, 62,164,139, 88,195, 73,251, 94,204, 21, 58,184,158,
- 20,225,212, 90, 25,192,112,237, 79,170,190,151,241,190, 76,181, 92, 49,233,238, 51,118,118, 12, 57,107,151, 73, 6, 82,162,184,
- 97,251,176,139,226,120,137, 80, 90,214,236, 86,128, 80, 61,129, 93,190,143,155,119,155, 60,182,243, 6,134, 41,203, 37,226,190,
-160,126,154,245, 12, 81,124, 75, 67, 2,151, 21, 24,102, 87, 12, 58, 73,250,107,229,235,206,167, 41,218,111, 60,209,204,150, 62,
- 58,188, 49,149,226, 23, 12,134,204,185,137,199, 26, 65,181,185,150, 89,237,144, 45,239, 79,185,205,101, 5, 19,137,157, 29,242,
-196,109,251, 43, 69,172,159,152,175,107,249, 75,200, 51,110, 27,125,163,239,131,163,238,185, 53, 30,246,146,231, 16, 24,211,238,
-247, 72, 87,102, 50, 29, 53,238,142, 95,243,226,127, 40, 57, 46, 14, 93,110,151, 93,247,137,132, 52, 0,213,121,115, 13,219,179,
-144,180, 16, 89,110,186, 70, 6, 92, 70,138,152,127, 15, 31, 32,184,255, 0,153, 7, 30,231,143, 49, 57, 13,214,225,199, 86,124,
-233,252,127,251,145, 18, 75,140, 93,115,137, 86, 70, 34,201,144,228,219,143,138, 31, 98, 26, 82,248, 97, 73, 96, 37,106, 32,165,
- 43,108, 1, 86,252,241,243,114,227,203,141, 59, 14,199, 19, 91,112,232,131,140,132, 40,140, 56,184, 13, 45,200,201,130,171,148,
- 5, 4,181,220, 60, 85,206, 60,221,127,191, 79, 45,253,220,142,150,121, 10,185,238, 42, 84,253, 3,128,200, 4, 2,190,138,155,
-103, 16,141, 13,213, 99,150,139, 60, 72, 24,251, 17, 45,118,236, 34, 55,129, 7, 39,137, 29,189,200, 91, 54,155,122, 92, 40,146,
-219, 46, 21,199, 96, 32,161, 52, 79,206, 72, 4,107,196,172, 55, 82,185,166,103,184,151, 59, 83,165, 42, 88, 84,130, 53,184,226,
- 28,125,231,102,113,200,215, 47, 22, 94, 51,156,229, 82,170,153,149, 42,184,103,158, 21, 3, 51,202,182, 43,222, 77, 47, 13,194,
- 50, 27, 41,143,115,109,144,205,247, 34,152, 45, 47,162,248, 23,227, 55,103,150, 36,133, 57, 26,107,126,238,183, 23, 25,104,220,
- 81, 85,132,168, 7, 18,222,247,249, 52,182,173,109,221,244, 79, 45, 4, 43, 35, 10,172,200,189,165,184, 22,149, 0, 56, 96, 14,
- 10, 21,164,155, 26, 45,156,165,170, 1, 4,234,195, 0, 70, 7, 35,192,245,212, 21,150, 57,133,112,162,242, 78,109,176,113,254,
- 65,140, 99,151,252,132,219,243, 91,222, 55, 58,126, 71, 98,187, 71,185, 77,117, 6,112,122, 75,200,114, 50, 96, 63, 53,196, 53,
- 49,176, 10,202,188, 42, 16,176,180,244, 59, 93,194,231,152, 47, 5,155, 46, 35,241, 27,251, 72,162,120,104, 44, 32,106,107, 52,
-129,165,216, 52,119, 72,193, 53, 28,136, 50, 63,156, 75,188, 74,233, 52,144,213, 37,189, 1, 50, 24,231,233, 95, 94, 21, 96,121,
- 87, 32,201,185,187,139, 56,221,153,184,202, 51,188,106,240,152,188,127,131,221,108,174,162, 19, 25, 28, 44,230, 98, 19,104,140,
-251,209, 3, 83,101,120,151,121, 73, 67, 82, 2,131,137, 46, 26, 41, 91,105,167, 45,121,162, 89,164,102,217, 51,201,188,138, 66,
-245, 42,100,192,119,154, 65,238,184,128,164, 42,225,221,193,106, 91,238, 47,183, 70, 55, 88,196, 42, 56,133,113,224, 7, 94, 57,
- 47,170,184,221,159,115,239, 46, 88,110, 17,111,151,251, 28,204, 22,253,198,217, 12, 28, 31,146,248,174,100,181, 38,197, 50,207,
-126,140,103, 89, 93, 68, 9, 42, 46, 39,223,109, 77,184,133, 75, 74, 55,159,163,116, 44, 21, 39, 93, 86,223,148,237,162,116,150,
-174,239, 9, 26, 95, 28,132, 35,218,224, 81,234, 66,100,226, 28, 26,112, 69, 8, 69, 64,188,219, 77,155,139, 36,105, 36, 98,174,
- 24,133,225,213,210, 56, 82,191, 48,249,170,227,152, 55, 44,115, 42,131,128,221,178,126, 57,106,242,179,102, 15,228, 46, 38,125,
-170, 56,133,109,113,216,207,198,119,199, 97,230,218,145, 37, 41, 33,231, 20,165, 40, 20,169,100,109, 2,135, 99,228,171,167,198,
-251,119, 78, 25,113,167,188,116,132,113, 87, 33, 4, 33, 4,129,192, 96, 49, 0, 26,175, 7,196,214,192, 0, 36, 4,207, 15,105,
- 92,141, 84,223, 48,185,174, 59,152,113,172,252,209, 45,191,107,189,231,156,153, 1,231, 44, 54,123,175,185,226,176,224,227,182,
-133,161,199,219,183,123,186,201,122, 67,210, 80,175, 24, 74, 74, 82, 9, 64,104,215,120,221,242,197,143,242,185,190, 17, 92,227,
- 19, 48,123,128, 42, 28,243,129,114,169, 68,201, 56,102,105,203,105,219, 35, 81,203,226,132,199,130, 21,193, 58,112, 24,225,217,
- 72,151,156,167, 12,227, 12,111, 15,229,110, 1,205,178, 28, 18,245,116,251,202,215,148,240,212,247,151,144, 88, 44,247, 56,140,
-196, 82,239, 22,235,131,239,120,136,106,228,225,175,187,150,141, 8,167,138,164,130,218,103, 90,237,242,110,222, 45,174,232,198,
-202, 90,243,166, 64, 3,117, 48,169, 0,129,147,152,168,113,199, 52, 21,101,188, 73,105,122, 24, 98, 97, 14, 62,243,115,210, 70,
- 24, 59,142,172,192,225,211, 83,159,150,255, 0, 54,188, 97,123, 76,155,151, 46,228,119,121,183,137, 19, 81, 26, 93,225, 16,219,
- 15,174,122,153,127,194, 98, 60, 40, 81,203,174,163,196, 73,218,224, 4,213, 73, 81,165, 84, 17, 65,205,156,177,184, 65, 15,129,
-183, 53,162, 32,164, 49,112,197, 3,137, 46, 40,164, 1,232, 8, 50,199, 47,113,183,186, 7,144,198,160, 35,228,171, 73, 7, 55,
-182,217,236,188,221,199,118,228,201,133, 5,254, 77,145,144,227,145,100, 67,145, 30, 84, 91, 14, 90, 4,134,216,117, 46, 36, 6,
-194, 26, 64, 82, 66,191,120,250,116,236,123,123,238,190, 22,234, 66, 11,132, 33,174, 66, 19, 83,112, 36,118,159,154,171,238,161,
-241, 36,142, 70,166, 71,141, 85,222,104, 68, 57,185,229,130,235,111,143,224,177,119,227,254, 48,114, 74,211,237, 52,237,218, 21,
-130,219, 26, 98,130,129, 41, 81, 50, 25, 81, 36,122,117,172,229,205,113,219, 61,143, 56,137,165, 79,213, 47,113,111,176,213,187,
- 28, 11,112,224, 79,207, 83, 39, 20,100,121,110, 41,100,200, 36,225, 18, 31,143,145, 79, 44, 88, 98, 46, 43, 97,201,101,187,209,
-216, 67, 32,252,213,146,221, 18,160, 42, 15, 81, 67,215, 81, 55,171,120, 46,157, 31,196, 38,128, 75,138,229,134, 56,245,117, 83,
- 80, 0,233, 6,172,146,186, 35,102,226, 11, 23, 16,112, 78, 79,201,247,103,217,201,249, 38,229, 22, 45,138, 29,234,242,204,139,
-146,166,230, 25, 41, 10, 83, 86,167, 86,211,209,148,171,100, 66,167,223,117,199, 82,179,211,247,130, 70, 42, 25,110,185,154, 83,
- 48, 34, 27, 8,158, 59,184,183, 88, 31,103, 1,137, 41,136,200, 3, 86,138,235,150, 58, 64, 81,141, 32,118,158,143,164,142,138,
-175, 28, 67,199, 49, 47,185,166, 61, 31, 48,187,219,236, 86, 55, 46,109, 63,116,155, 53,213,150, 26,183, 67, 10,125,245, 56, 89,
- 67,206, 36, 41, 13,148,130, 16, 77, 79,102,166,243, 7, 49, 58, 27,121, 29,108,199, 61,233,130,116,156, 6,105,196,208,180, 38,
- 87,134, 40, 11,196,229, 93, 38,195,242, 91, 69,203, 48,202, 14, 7,145, 63,125,181, 61,105,176, 90, 30,184,217,242, 1, 19, 29,
- 79,185, 57, 49,246,246,182,252, 98,234,222,241, 84,119,154, 80, 0,128, 59,104, 57, 84,198,242,214,220, 69, 46,168,218,242, 75,
-154, 65, 83,139,115, 1,201,129, 1, 56,231, 91, 43, 66,219, 40, 91, 28,174,112, 58,137, 65,136, 35, 15,103,181, 86,186,117,248,
-108, 47,148,178, 41,220,131,120,186,192,157, 23, 21,198,239,163, 20, 49,238,170,241,148,101,204,105, 18,212, 35,184,154, 54,226,
- 27, 10, 10, 36, 36,116,112,107,167,108, 23, 58,224,107, 23, 80, 1, 87,232,237,233,174,147,103, 59,100,183,104, 93, 93, 7,170,
-187,120,213,164,123,167,222, 11,246, 10,216, 45,160, 30,129, 45,138,154,246,244,162,105,173,125,187, 14,116,204,146,240,170,227,
-200,197,186,171,194, 0, 33, 1,225, 69,124,227,189, 61, 85, 74,247,141, 89,196, 42, 51,223, 85, 71, 35,153,227,188,246,231, 23,
- 82,181,149,161, 75,246,126,114, 77, 7, 94,250, 83, 87, 22,226,170, 46, 94,149, 90,242, 23, 95,136, 92,219, 66, 27, 90,212,176,
- 79, 78,211,243,122,245,232,147,171,200, 27, 89,251,137, 22,162,161,124,132,243,207,120,143,248, 42, 9, 90,150,146,174,213,171,
-104, 3,183,212,117,100, 24,149, 92,247, 26, 40,171,219, 42,144,150, 99, 74, 9, 1, 9,117, 68, 46,168,222,138, 39,182,189,224,
-154,104, 57,148,141, 68, 83,222,207,154,202,128,133, 71, 14,109, 72, 72, 3,114,232, 2, 70,250,211,175,121,212, 25,161, 6,144,
- 95, 79, 88,153,219,111, 85, 66, 66,149,237, 37,123,183,209, 39,194,232,174,254,224,117, 87, 44, 73, 77, 58, 83, 75,199, 50, 14,
- 66,118,142,168, 37,181,186,176, 86,107, 80, 71, 78,255, 0,218, 7, 85,242, 51, 26,142,233, 13, 22,115, 52,132,195,137, 10,124,
- 45,197,129,225, 36, 46,189, 81, 78,149,175,164,157, 68,115, 13, 48,231, 19, 73,103, 33,143, 45,105, 66, 94, 14, 19, 82, 10, 85,
- 94,237,169, 29,190,189, 17, 4, 81, 45, 45,198,150,169, 5,196,164,213, 73, 66, 10, 83, 94,242, 20, 1,237,244,211, 76,184,165,
- 17, 41, 78,104,205, 51, 29, 46, 72,117,196, 33,107,105, 18, 30,113,102,141,176,202, 65, 83,132,245,232, 2, 81,168,146,201,164,
- 41,200, 83,111,114, 10,228,103,152,252,211, 42,229,110, 70,185, 57,143, 93,154,143,101,177,173, 54,219, 20,117, 20,169, 77, 70,
- 96, 20,151, 18, 79, 68, 45,213, 18,175,143, 88,251,158,103,180,133,197,178, 52,145,143,178,185,222,244,201, 47,165, 46, 7, 1,
-149, 85,197, 91,114, 27, 37,193,193,119,135, 38,252,181, 60,168,174, 60,220,128,180,135,247, 26, 83,176, 30,206,205, 24,223,237,
-111, 25,251, 39, 6, 39, 4,172,244,155,115,216,113, 11, 91, 57, 7, 35,154,242,227,195,196,190,238,106, 65,241,220,151, 35,235,
- 29,109, 38,135,218, 9, 52, 77, 7,167, 74, 27,165,180, 35, 83,231,213,212, 56,123,105,161,102,254, 45,166,204,197,100, 54,103,
-215, 42, 86, 57, 54, 67, 85,117,136, 82, 89, 37,228, 70, 6,173,133, 36, 32,239, 3,161,238,212,203,107,219,107,246,134,178,102,
-131,196, 28, 23,215,133, 17,180,124, 95,102,146,219,190, 74,145, 53, 78, 71,177,135, 29,117, 45,183, 41,201, 54,197,184,226, 28,
- 74,147, 69, 37, 78,246, 5, 40, 14,180,212,153, 3, 24,196,116,168,153, 35,135,209, 73, 13,119, 6,251, 41,193, 34, 92,247,182,
-181, 45,168,209,223, 66, 10, 60, 4, 69, 84,127, 10,189, 70,237,165, 33, 66,189,130,186,174,101,204, 77, 5,204, 36,133,205, 86,
-148, 99,144,226, 91, 94, 34, 42,252, 85, 72, 68, 70,229, 42, 66, 27,162,192, 91,141,180,229, 5, 81,176,144, 6,254,228,250,116,
-159,230, 77, 68, 46, 32, 14,207,159,170,128,142, 79,242,209, 55,175, 57, 61,190, 66,219,102,195,224,180,219,136,113,209,224,165,
-148,169,180, 17,182,138, 1, 94,201,175, 94,253, 63, 24,182,185,106,248,170,123,126,138, 82, 61,185,138, 45,253,232,149,119,125,
-184, 76,193,114, 12,133, 77, 75,104,105,153, 43,111,194, 82,202, 18, 77,105, 78,170, 61, 6,166,195, 20,118, 96,200,231,130, 0,
-204,140,243,167, 35,100,146,101, 82,180, 28,123, 42,134,192,145,247,136,251,177,151, 99,123,219,136,105, 79,169,130,224,170,148,
- 66, 66,214,176,158,149, 0,119,234,251,151,183,189,191,113,184,142, 57,220, 35, 4,161,113, 5, 0, 29, 77, 4,147,154, 97, 87,
-214, 54, 62, 36,141,107,221,165,164,226, 80,148, 29,128, 19,236,174,248,121, 41,243,253,228,143,203,215, 26, 63,102,206,248,159,
- 49,137,149,253,221,111,182,222, 21,136, 98,145,114,116,101,172,219, 17,189,217,183, 59,133,194,237, 26,227, 40,207,144,143, 20,
- 64,113, 2, 51, 4, 0,210, 59, 78,189, 47,113,184,108,214, 16, 71, 38,201,117, 12, 67, 21,121,215,227, 18,114, 0, 54, 51,165,
- 49,239, 40, 37,115, 1, 43,209,123,118,235,180,109,208,180,109,239,142, 16, 85, 94,224,231, 74,122, 27,131, 28,224,152,171,145,
-170,185,129, 80, 63,153, 79,198, 63, 7,207,174,210, 97, 96, 60, 77,116,180, 52,202, 37, 28,106,215,113, 76, 60,110, 97, 13, 54,
-165,178,211,176,173,190, 42, 22,162, 40, 20,231,190, 13,190,189,160,107,101,203, 62,102,218,237, 81,136, 26,215,184, 56,254,210,
-105, 94, 93,136, 11,221,104,212,113, 40,152,132, 85,233,174,211,202,158,122,219,242, 69,159,133,183, 90,186, 82,228, 15,150,121,
- 10, 47, 18,214, 13, 69, 58, 6,161,237, 53,199, 62, 99,243,239,230,251, 50,193,242,104,119, 22, 29,227,220,118,226,249,140,221,
-211, 20,185, 36,221,109,214,229,173, 64,199,113,207,124,159, 49,133,201,240,206,208,243,168,233,237, 37, 36, 26,107, 93,111,191,
- 91,115, 19,137,182,145,174, 3, 62, 30,195,143,209, 75,223, 60,241,185,223, 37,107,173,231,104, 96,105,212,198,179, 72, 36,229,
-222, 35, 80, 78,163,219, 80, 71, 8,113,151, 34,242, 93,249,222, 78,205,239, 86,214, 56,215,141, 48,249,185, 53,251, 41,190,186,
-231,184,181,113,190,219, 87, 42, 21,172, 55, 21, 81,222,188, 75,151, 17,106,113,200,108,138,116, 33,245,161,163, 93,100,118,110,
-116,182,222,111,103,128, 65, 32,100, 46,116,122,220, 17,165,237,118,146, 0,205, 20, 18, 15, 64, 84, 10, 43,152,115,255, 0, 51,
-220, 62,214, 54,202,246,151,201,164,128, 49, 41,129, 85, 32,140, 20,116, 98,115,171,115,151, 95,177,248,188,102,203, 40,202, 98,
-221,242, 38,155, 66,237,215, 27, 93,134, 76, 55, 82, 86,122,178,235,108, 38, 75, 9, 64, 38,158, 24,114,169,253,154,107,146,115,
-160,216,183,153,220,201,166,137,146,244,135, 52,159,247, 1,137, 29,190,138,243,238,237, 35, 47, 28, 73, 40,122,106,153, 71,200,
-179,251,170,218, 75,168, 65,109, 82,156, 98, 43,142, 54,164,109,122,180,175,180, 82,161,219,240,235,131,238, 31, 3,108,247, 6,
-185, 83,136,200,129,198,177,111, 99,129,166,125,203,145, 51, 27, 67,254,224,234, 35, 5,138,188, 93, 97,149, 41, 75,121,181, 16,
- 10,170, 84,170,116,248, 52,236, 59,117,173,203,117,133,245,252,213, 28,175, 69, 16, 57,254, 93, 44,135, 91,152,248, 83,138, 76,
-122, 71,100,162,170,119,186,162,157,253,130,149,210,190, 6,214, 48,132, 12, 49,196,209,104,115,138,241,173,230,202,228, 56,108,
-165, 79,139,146,158,145,181,208,146,203,142, 20,178,241,246, 8, 79, 82, 10,128, 61,189,218,106, 9,236,167, 36,183, 74, 12, 21,
- 70,116,224,183,144,133,210,105,161,114,185,100, 10,117, 34, 82,110, 66, 72, 9,116,238, 97, 91,200, 95,101, 72,174,223,155,223,
-232,213,148, 70, 16, 21,186,116,158,186, 2, 7,160, 36,103, 94, 75, 70, 65, 29, 17, 94,152,244,143, 10, 75, 78, 56, 2, 86,106,
- 10, 84,164,168,159,132,164,244, 26, 30, 52, 77, 80, 17,105,201, 44,158,208, 9,227, 68,211, 14,233,116, 78,216,236,202, 90,219,
- 88, 21,109,165,165,192,149, 0, 5, 58,247,215, 72, 59,140,118,229, 92, 69, 55, 29,161, 38,156, 8,194,179, 87, 99,134,161, 88,
-239, 19, 29, 1, 63, 68, 33, 41, 52, 81, 21, 63, 73, 66, 79, 78,189,186,134,237,250,212, 57, 95, 35, 64,237,250, 41,109,180, 43,
- 94, 91,248,183, 55, 90,226,184,229,134,116,121, 47,189,224, 54,151,219, 80,220,163,215,174,227,216, 13, 43,164, 92,115, 61,163,
- 65, 2, 80, 69, 27,172, 92,112,163,183,174, 36,207,108,223,235, 55, 91,100,198, 99,123,187,147, 31,218,175, 17,180, 50,149,134,
-202,246,160,246, 5, 16, 15,163, 77, 90,243, 93,165,208, 34, 55,130, 65, 3,214,189, 61,134,157, 22,101,185, 86,184,239, 29,228,
- 23,119,253,213,152,142,253, 8, 14,120,142,199,163, 65,165,143,101, 94,209, 36, 87,173, 52,157,195,152, 33,180,102,178,236, 15,
- 65,232,167,126, 8,132, 38,141, 92, 56,235, 42,176, 50,235,210, 35, 62,202,144,176, 11,130, 50,212,201,241, 85,210,187, 82,127,
-100,247,106, 60, 60,199,111,120, 64,107,129,244,254,154, 49,110,120, 82, 51, 56,109,246, 83, 47, 62,213,178, 68,146,135,168,145,
- 17, 11,241, 9,221,212,132,142,167,175,113, 26,144,253,246, 40,200,105,120, 24,113, 74, 31, 10,106, 83,198,120, 94,255, 0,116,
-132,183,174, 73,118,209,182, 59,202,109,115,213,238,206,120,155,119, 37, 42,169,165, 20, 71,110,179,247,220,223, 20, 15,210,194,
- 31,143, 12,105,211,109,167, 2,105, 14,227,199, 25,148, 87,144,212,139, 20,167, 99,161, 45,248,111,192, 95,140,216, 14, 15, 74,
- 77, 85, 95,131, 82,109,249,146,218, 92, 91, 32, 4,244,225, 65,176,112,164,209,198, 57, 25,136,187,151,187, 17, 21,185,109,219,
- 68, 93,227,223,212,227,202, 82, 8,167,206,246, 94, 64, 71,103,105,212,191,253,130, 33, 47,129,171,189,167, 82,240,203, 87,204,
-105,239,131, 58,180,174, 40,190,197,171, 92,231, 36, 53,153,224, 42,181,220,165, 62,230, 34,133,206,180, 93,100,196,184, 57, 1,
-203,149,218,254, 93, 83,137,140,244,103,154,118,140,192, 74, 80,118,168, 31,109, 36,208, 44,211,144, 79,203,241,237,247,203, 1,
- 14, 45, 26,129, 45,224, 14,100, 16,113, 39, 32,122, 15, 69,117,237,143,153,174,182,123,136,239, 45,158, 99,150, 55, 43, 92, 51,
- 14,233, 29,157, 52, 70,217,145,113,235,188, 97,126,227,219,126, 61,104,181, 97, 19,173,210, 49,118,236,182, 38, 90,183,181, 42,
- 76,217,159, 66,250, 92, 74, 14,249, 13, 40, 23, 67,235, 74,148,165, 39,114,138,181, 29,176,222,219,110,177,110, 62, 35,157, 60,
-111, 15, 5,202, 80, 1,139, 81,125,210, 48, 45, 8, 16,160, 74,151, 38,243, 37,214,169,100,113, 47,113, 85, 56,226,120,154, 53,
-193, 28,155, 31,140,237,215,206, 27, 84,201, 24,252, 11, 20,139,165,235, 13,151,142, 75, 67,174, 92,229, 95,101, 37,135,222, 11,
-155, 30, 66, 94, 38, 68, 80, 93,170, 2, 54,146,146,138, 39,173,247,154, 91, 19, 57,133,214,219,244, 32, 72,233,192,100,173,120,
- 77, 46,141,170, 2, 52,132, 8, 80, 98,170, 23, 81, 92, 32,151, 9,194,202,226,238,142, 3,213,245,173, 74, 57,183,154, 12,154,
-222, 96,221,161, 71,140,155,149,150,234,213,194,209,200, 24,108,102,236,249, 77,137,216,202,240,144, 37,196, 10, 54,187,156,117,
-164,165,183, 91,163,104, 95,237, 50, 10, 16, 83,206,118,206, 65,130,109,113,200, 78,135, 4,116,111, 58,152,238, 39, 73,247,216,
-225,137, 7, 18, 56, 59, 18, 10,254, 55,192, 26,116,140, 14, 99, 3,234, 24, 17,195,231, 21, 31,101,222, 98,184,207, 61, 76, 60,
-187, 42,141,128, 96,252,213,108,137,112,131,247,235,108,176,182, 85, 31, 36, 97, 13,179,122,143,186, 91, 42,152,193,124,184,228,
-155,121, 89,126, 50,151, 33, 52, 83,149, 83,151, 91, 39, 42, 94,242,241,125,180, 15,150, 91, 55, 22,163, 73, 63,100,226,195,221,
- 33,164, 4, 13,122,105,120, 12, 56, 0, 0,147,186,237,147,239, 13,137, 97,115, 26,224, 94,227,164,226,213,210,160,241,110,166,
-149, 60, 8, 35, 53,162, 78,254, 35,156,133,105,225, 60,231,202,215, 62,224,184,174,112,214, 87,199,183,140, 23, 22,228,251, 3,
-205,217, 37, 70,183,221, 97,183,112,177, 92, 30,182,166, 26,216,144,225,121,108,169,183,144,166, 84, 26, 36, 82,187,203,189, 55,
-151,249, 59,108,219,124, 75,221,166, 36,123,229,212,237, 88,184, 56, 59, 75,209,206, 14,112, 0, 7, 13, 32,129,137,200,161,108,
-200,247,198, 88,218,186,205,208,181,116,144, 30, 61,228,224, 8,196, 32,236, 7,233, 43,228,127,205, 69,195, 16,242,233,200,252,
- 41,145,196,181,220,177,248, 60,211,229,214,255, 0,141,100, 55, 69,200,151,122,195, 24,187,103, 54, 71,230,177,103, 67,110, 52,
-211, 43,121, 80, 22,189,202,116, 80, 45,208,145, 85,149, 6,183, 46, 89,180,119, 50,217, 95,178, 16,110,166,107,227,214, 74, 6,
-232,105, 33,200, 51,113, 80,210,113,238,128, 48,226,173,135,120,100, 77, 45,145,161,205, 14,107,143, 98,133, 3,181, 42,138,121,
-183,181,227,120,247, 55,205, 24,230,101,145,231, 17,114, 76, 38, 26,238, 87,140,158, 43, 49, 38, 11,174, 53, 62,125,158, 51, 44,
-134,165, 75,113,198,154,131,102,138, 16,167,148, 23, 82,164,237, 8, 9,175, 72, 51, 58,229,210, 49,207,212,248,229, 45, 36, 0,
- 7, 3,246, 64, 24, 7, 34,160,244,230,107,121,170,230, 9,229,107,237,218,230,180,183, 39, 21,253, 40,137,159, 21,224,148,195,
-200,109, 13, 53,229,223,145,152,184,200,146,236,188,125, 56,186,161,198, 64, 90,153,131,123,203, 46,214,229,173, 42,250, 96,132,
-127,169,219, 22,149, 16,217, 37, 84, 4,209, 35, 85, 2,241,223,204, 45,163, 99, 90,142, 50, 18, 80,106, 45,107, 8,205, 21, 53,
- 16,152,225,143, 73,172,117,148,198,114, 79, 6,159,159, 12,126,138,170,217, 78, 75, 18,103, 31,224, 88,243, 18, 37,185,114,179,
-202,201,159,186, 52,230,239, 1, 63,120, 46, 42, 35,120,125,104, 79,132,193,173, 53,162,182,180,123, 46,166,148,129,165,193,128,
-116,225,169, 87,210,106, 84, 67,190, 74, 10,151,240,155, 79, 28,231, 92,181, 38,203,123,126,126, 61,198,152,254, 43,156,228,136,
-138,228,149, 63, 53, 34,201,109,146,229,182, 50,164, 38,136,111,125,192,178, 10,156, 33, 59, 70,210,170,145, 90,141,214,123,205,
-186,201,174,128, 7,220, 58, 72,218, 78, 67,188,225,173,201,212,213,203, 30, 41, 76,106,208,199, 60,156,120,117,149,200, 84, 41,
-123,131,148, 96, 25,158, 45,149, 77,179, 99,214, 59, 46, 97, 9,158, 69,179, 66,183, 56,166,236,139,199,175,179,101,182,210, 91,
- 75,197, 78,167,196,247, 85,169, 45,213, 74, 74, 74, 65,165, 54,139,203, 75,136,119, 40,100,134, 55,185,198, 55, 24,156, 78,122,
-154,208, 73,195,180, 99,130,156,170, 75,154, 38, 97,106,146, 70, 29,120, 10,178,118,159,117, 13, 94, 47, 47,220,190,238,180,228,
-119,153,210,108,138,184, 45,233, 55, 55, 49,219,107, 78,199,182,164, 52,161,227, 44, 54,202,148,144,174,136,246, 69, 20, 5, 14,
-168,110, 53,105,108, 96, 2,246,180,106, 68, 3, 81, 32,187, 28,177, 56,244,227,149, 81,206,143,112, 13,196,143,151,203,141,121,
-157,222, 33,218,242,187,125,173, 22,123, 76,247, 44,248,166, 35, 1,251,180,185,139,156,194, 67, 86,232,207, 4,152,168, 91,108,
- 50,235, 69,226,135,131,161,202, 40, 16,133, 20,128, 75,219,109,164,134, 18, 92, 92,221, 79,113, 68, 0,226,226, 1, 92, 73, 4,
- 0, 66, 38, 4, 40, 92, 41,214,219, 62, 0, 67,142, 36,170,118,227,242,202,174,223,146, 27, 12, 91,223, 50,241,167,223,179,113,
-107, 86, 59,155, 94,174,184,224,186, 63,141,181,148, 65,182,200,145,108,184, 71, 83,242,237,143, 4, 54,166,163,170, 82, 20,167,
-145, 69, 53, 69, 58,133,161,109,161, 98,135,126,185,142, 14,228,132, 4, 33, 76,128,150,119,138, 5, 66, 14,125, 99, 49,158, 85,
-123,177,197, 3,110,227,109,211,127,102, 84, 30, 56, 16,156, 65, 24, 19,208,163, 48,135, 26,184, 31,136,109,235, 29,193,249, 35,
- 18,224,252, 43, 49, 98,235,142,227, 88,197,151, 36,190, 89,113, 40,178,226,224,120,222, 97,123,109,197, 59, 18,223, 26,233, 54,
-117,207,123,108, 40, 41,247,164, 77,112,169, 75,160,160, 64, 26,114, 72, 90, 34, 48, 70,229, 99, 28, 91,167,128,115,125,236, 83,
-188, 84,149, 61, 56,112, 65,113,204, 80, 91,217,191,225,237, 92,124, 33,138,125,144,113,201,113, 94,146, 73,205, 1,194,154,158,
- 84,110, 28, 91,143, 93,175,153, 63, 37,195,254,247, 75, 76,120, 22,124, 11, 11,134,196,155,141,195, 34,200, 38, 60,133, 60, 83,
-111,140,159,120,146, 35,182, 16, 8, 82,131,100,172, 5, 21, 86,135,158,243,166,207,184,238,145,197,109,183,146,192, 92, 76,143,
-195, 0, 2, 0, 9,200,146,120, 2,112,193, 51,170, 59, 59, 23,206, 85,161,122, 59,112,195,182,186, 3,196,120, 15, 61,121,141,
-202, 50, 11, 79, 11,240, 20, 59, 5,166,219, 49,155,125,206, 62, 63,132,226,188, 86,197,141,168,204, 70,121,213, 78,113,111,199,
-147,188,151, 9,109, 79, 56, 74,194,194, 65,221,208, 84, 91,114,139, 45,166,109,147,166,146, 75,141, 58,207,137, 36,178, 20, 84,
- 94,247,117,163, 12,130, 86,153,187,116,179,200, 24,184,129,138,174, 31, 64,175,161,126, 30,133, 31,139,112,155, 62, 3,114,225,
-220,207,143,162,218,227,176,137, 23,121,179,236,217,108, 27,213,229,198,208,151,164, 56,229,142,233,112,148,219,143,169, 37,110,
- 56,244,100, 54, 63,127, 93, 67,111,176,110,222,193, 24,105, 0,113,207,230,199,217, 91,187,116,129,129,131, 32, 42,108,202,110,
-232,137, 4,136,251, 61,223,192,218,128,149,116, 85, 5, 21, 79,131,178,191, 14,180,172,106, 82,181,213, 51,204,114,232, 15, 59,
- 41, 47,190,148, 59,226, 0, 66,151, 77,224, 5, 80, 14,189, 59,126, 77, 79,134, 58,102, 87,225, 85,147, 46,186,197,138, 36,190,
- 92, 69, 20, 82,150,202, 79, 64, 90,162, 73,167,117, 22,173, 92, 64,202,163,187,153,106,188, 95,174,105,156,202,214,131, 74, 52,
-105,215,113, 46,146,165,117,235,251, 61, 7,199,171,136,176,172,244,210,227, 85, 67, 50,118, 69,169,114,166,165,208,208,112,248,
-161, 27,170, 42, 42,144, 59, 71,164, 19,235,213,132, 82,106, 41, 72, 99,195,170, 26, 99,147,210,135, 28,101,197, 46,161,196, 2,
- 16,125,183, 22,146,163, 74,215,176,246,106,121,135, 10,123,195, 90,150,113,236,253,171,139, 75,101, 82, 82,148, 4, 53,185, 75,
- 80,222,149,169,117,219,209, 93, 61,125,117, 95, 60,122,106, 44,140,211, 78,175,239, 64,134, 75,198, 82,124, 63, 9, 33,162, 86,
- 18,133, 41,197, 0, 79,111,104, 29,117, 83, 48,168,206, 11, 76, 12,143,157,204, 7,215,111,135, 35,114, 89,109, 12, 56,160,189,
-222, 32,105, 34,135,183,247,199, 93, 70, 22,218,177,165, 8, 22,144, 49,254, 73,191,100,115,144,136,234,117,109,135,212,226,157,
-169,246, 16,225,160,235, 90, 14,205, 38, 75, 96,193, 74,116, 33,181,104,112,182,230,165, 45, 59, 33,213,169,127, 68, 84, 10,186,
- 2,231,205, 3,175,160, 87, 85,119, 8, 48,168,178, 17, 83,213,141,192,157,239, 40,123,107, 27, 0,175, 85, 81,125, 40, 43,235,
-213, 92,142,166, 77, 69,222, 97,179,203,182, 53,137,203,180,227,240,228,204,189, 94, 33, 41, 50,147, 25, 27,196, 59,120, 67,170,
- 33, 74,173, 16, 94, 45,169, 34,189,213,214, 27,154,247,216,182,248,252, 34,240,215, 59,175,133, 87,223, 23, 6,163, 66,147, 92,
-206,153,142,228, 13,205,184, 42, 36, 89, 81,101, 43,124,183, 28,117,181, 41,151,100,120, 77,186,174,170, 36,209, 9, 81,233, 94,
-209,232,215, 46,110,229, 21,210, 23, 56, 18, 75, 64,245,167,182,168,157,102,247,185, 52,149,196, 82, 53,145,199,219, 44,187,112,
-110, 84,161, 38, 90,174,178,183,178,160,233,136, 67, 94,193, 77, 69, 62,149,146,145,214,181,212,219,231, 49,174,208, 8, 9,130,
-143, 79,203,213, 85,243, 66,240,226, 58, 48,245, 26,118,194,149,121,144,176,207,221, 18, 23,111,159, 33,244, 9, 30, 25, 82, 25,
-137, 13, 13,165, 96,117, 39,113, 81, 36,211,176, 10,247,138,211, 43, 65,197,248,129,151,105, 36,125, 93,116, 70,220,184, 40, 24,
-209,171,181,190,244,219,209,213, 22,208,242, 30,125,247,231,134,219, 20, 76, 70, 67,173,165,162, 82, 20, 80, 18, 84,179,186,157,
- 58,143, 71, 73, 62, 43, 24,170,240,132, 97,242,235, 69, 29, 84,236,182,143,182, 13,212, 61,230,175, 96, 82, 62,143, 85, 51,242,
-155, 69,241,200,119,196, 93,162,204,134,213,211,221,211, 17,168, 17,189,218,229,107,119,223, 10, 12,134,150,138, 20,146,146, 0,
- 73,253,180,138,118,168,106,235,108,220,163, 88, 68, 1,158, 35, 23,188, 80,181,193, 9, 33,205, 42, 15,111, 6,250, 13, 57, 24,
- 5,204,111,134, 11,129, 42,170,135,168,246,117, 80,110,219,228, 91,236,232,185, 59, 26,227, 41,104,118, 51, 94,245, 57, 41, 10,
-121, 48, 66, 67,206,169,192,132, 37, 74, 21,170,128, 3,182,180,235,168, 50, 76,110,100, 37,160, 53,174,114,163, 85, 1, 56,160,
- 82,112, 10, 6,103, 10,136,230, 41, 82, 56, 26,114, 91,167, 66,180, 41,152,183, 4, 68, 66,223, 64,146,166,168, 18,166,154, 40,
- 74,131,174, 10, 84,146,149,165, 94,173,180,237, 52,213,104,100,151, 1, 3,142,100,122,138,125, 20,151, 56, 38, 84,118, 77,230,
- 11,209,229, 33, 17,210, 81, 32,176,200,147, 37,164,183, 28, 85, 21,114,160,209, 52, 42, 34,162,189,148,239,210,225,133,241,226,
- 9, 65,215,232,164,171, 78, 6,152,215,139, 36, 9, 57, 59, 50,109, 69,152, 73,142,228,120,140,196,106, 26,124,121,178, 38,149,
-150,156, 42, 21, 0,181,210,160,119,252, 90,185,181,220,158, 45,244,185, 79, 21, 92,128,204,122,105,230,194,208, 16, 12, 79, 26,
- 90,251,159, 53,131,104,156,213,157, 74, 80, 84, 80,160, 29,123, 96, 1, 78,180, 87,184,172, 84, 29,135,175,171,166,172, 44,119,
-107, 89, 8,214,113, 95,154,157,100, 79,140,246, 83,137,104,228,137,142,196,142,161, 96,183, 70, 43, 75,142,201,122, 55,191, 75,
-247, 38, 2, 90, 13, 37,170,161, 27,138,207, 90,171,211,173, 61,158,251,101,108,211,239,185,201,146,160, 92,243,236,171, 8,130,
- 0,185,210, 86, 43,110,241,242,107,205,203, 62,181,227, 83, 36, 90, 22,197,183, 24,159, 5,183, 16,135, 12,230,211, 37,217, 62,
- 19,197, 65,165,120,110, 50,223,176,178, 7, 90,116,173,108,111,249,151,246, 12,142,209,239, 1,192,151, 2,122,208, 5, 25,226,
- 9,199,170,172,141,216,141,161,141, 36, 3,157, 94, 76,178,255, 0,199, 95,242,255, 0,130, 96, 24,251,118, 88,249,197,253, 19,
-165, 57,238,246,196, 41, 56, 69,142, 92,181,185,113,191,173, 52, 45, 72,187, 95,148,244,123,116, 55,150,119, 48,196, 55,170, 66,
- 28, 74, 23,213,118, 15, 50, 71, 33,236,144,206,238,252,242,106,210,197,247,136,115,128, 47, 57,136,216,153, 12, 92, 72, 3, 34,
- 68,217, 46,131, 33,106, 28, 79,205,250,126,138,169, 92,175, 46,233,144,185, 30, 38, 37, 35,238,236,126,114, 89,178,189, 21,137,
-142, 73,179,227,182,139, 19,109,178,130,195, 15, 56, 84,175, 1,151, 54, 19,188,173,117, 37, 68,169, 91,180,177,231,228, 60,195,
-180,221,193,122,195, 21,201,141,193,160, 41,107,220,224,136, 8, 10,210, 87,142, 0,125,163, 84,243, 13, 78,198,162,171, 52,216,
-109, 89, 89,154,152,119, 59,227,175,202,130,139,148, 8, 49,155,113,248,114, 38,171,231, 52,211,171,108, 44, 33, 37, 15, 2, 72,
- 37, 7,120, 29,218,243,142,224,247, 62,233,204,115,219, 30, 5, 11,137, 67,167,129, 32, 20, 82, 8,232, 7, 12,177,170,201,109,
-206,162,220,147,232,165, 39,177,187, 82,102,186,183,237,114, 30, 66, 20,185, 11, 64, 80,109,104,117,123,144,104,145, 74,123,100,
-138,145,218, 65,214,121,219,140,163, 39,140, 69, 67, 17,132,202,135,119, 26,193, 36,184, 29, 56,221,177,115, 12, 74, 34, 68,134,
-129,119,197,140,165, 20,165, 39,188,133, 32,143, 94,138, 45,222,237,173, 45, 18,185, 7, 71, 93, 37,204, 3, 4,199,133,104,140,
- 99, 15,111,220,132,136,118,136,175,173, 44, 92, 11,104,101,180, 52,153, 45, 54,238,208, 59,194,137,220,160, 7,104, 26, 75, 55,
- 43,199,130, 26,231,144,132, 28, 78, 74, 23,232,169,113,218,235, 90,116, 90,216,177, 50,242, 86,244,136, 78, 23,225, 6,221,125,
-214, 66,209,243, 26,117, 72, 64, 30,200, 82, 66,232, 15,162,163,187, 80, 95,115, 54,131, 24, 5, 3,151, 62, 39,141, 61,240,164,
-224, 15, 93, 16,115, 20,180,202, 77,214, 91,112, 98, 50, 67, 10, 68,118,166, 50,194,155,121,113, 42,176,224,116, 35,196, 73, 88,
- 80, 73, 73,236, 3,227, 51,100,221, 29,166, 56,195,157,129,196,133, 84, 57,132, 84,192,226, 15, 26, 84,150,192, 32,192,245,253,
- 30,138, 33,115,177,218,150,162,149, 99,182,249,208,144, 16,220, 86, 68, 70,220,113,165, 37, 38,171, 10, 31, 56,145,176, 17,221,
-217,218,116,150,110, 50,146,130, 71, 7, 98,165, 78, 92, 62,158,218,140,232, 74,101,141, 49, 39,217, 31,127, 27, 39, 29,139,109,
- 19, 95,144, 23,102,158, 24, 48,216,114, 68, 39, 79,134,151,220, 74, 10,195, 96,251, 11, 20,174,222,192, 72,214,147,109,187,134,
- 43,192,219,242,237, 8, 67,128, 42,113,110, 99, 60,120,245,244,133, 90, 92, 17, 6,201,251, 80, 67,120,166, 96,117,117,211,246,
-204,140,181,166, 83, 13,102, 11,146,163,198,105,249, 30, 19,193, 97,165, 26, 5, 84,144,146,104,148,130, 21, 78,160,246, 87, 84,
-155,180, 16, 91, 72, 76,122,140,100,157, 46, 33, 20, 46,105,243,245,211, 76,135, 94, 45,202,129,187, 69,203,205,166, 60,135, 45,
-202,250, 52, 59, 38,115,170,121, 0, 66, 15, 2, 74, 20, 83,216, 66,215, 66, 64,248, 43, 67,164, 89,199,107, 45,203, 97,124,136,
-194,224, 20, 5, 40, 74, 40, 4,180,122,220, 7, 73, 20,227,109,136,120, 7, 34, 81,105, 22,195,114,202,242,118,163,201,185, 88,
-158,199,219, 91, 15, 55, 42,217,127, 97, 2,125,189,173,168, 15, 54,234, 1, 80, 32, 63, 29, 75, 10, 38,138, 10, 4, 83,179, 86,
- 28,193,182,193,177,205,225, 71, 51,100, 4, 2, 28,194,160,230, 70, 32,145,169,160,150,184, 2, 64,115, 74, 56,132, 37,203,235,
- 19,101, 33,137,174,107,192, 62,243,114, 61, 97, 83,178,159,108,197,181,201,131, 54, 43,111,219, 66,157,138,151,247,180,207,129,
-225, 52,210, 14,234,168,126,203,126, 32,248,129,248,178,205,146,103, 57,160, 7, 21, 56, 5, 92,248, 84,127,135,115,144, 87,177,
- 26,130,202, 97,152,174,198,153, 9,251,124,133,161,199, 93, 75,196,180,221, 42, 64, 85,119,148,171,179,166,132,229,250,156, 8,
- 32,180,208,240, 12,101, 58, 40,152,199, 45,118,196, 11,205,189,225, 37,111, 58,245, 97,178, 82,218, 91,240, 66, 21,237,171,160,
-237, 81, 29,189,105,162, 55,115, 92,141, 14, 9,215, 73, 48, 28,233, 75,223,160, 93, 61,250, 37,198,207, 12, 90,154,142,200, 83,
-242, 28,250, 87,140,135,148,144,147,214,135, 99,109,154,158,254,193,223,167,237, 98, 54,174,100,141,121,215,171, 46,128, 0,199,
-210,184, 83,177,198,168,163,141, 15,108,186,216,172,175,196,109, 81,173,178, 96, 66, 67,111,220, 11,228,169,253,236, 41,198, 28,
- 42, 5, 69, 66,170, 64, 80, 21, 29,167,178,154, 57, 44,229,191,113,210, 92, 28,247, 16,208, 50, 10, 65, 31, 57, 30,138,115,194,
- 18,191, 1,153,192, 82, 15,247,106,218,165,155,246,214,183,181, 1, 50,203,126,215,134,111, 79,147, 32, 43,195,221,180, 80,182,
-122, 87,183,229,212,191,139,151,196,210,135,247,154, 87,253, 57,124,176,200, 83,159, 14, 11,151,236,135, 34,240,199,244, 3,232,
-174, 55,204,229, 79, 7, 26,198,240,200,247, 7, 13,163, 23,141,112,155, 33,108,171,104,186,100, 87,133, 21,202,121, 74, 77, 10,
-146,218, 16,211,105,175,238,129,217,174,193,117,179,134,204, 75, 70, 46, 69, 61, 77,200,124,254,179, 90, 40,148,231,232, 20,233,
-177,231,235,129, 10, 43,105, 82,157,106,220,159,123,139, 28,175,168,154,242, 18,151, 28, 89,173, 62,133, 9, 32, 87,190,189,221,
-176,101,219, 60, 82, 92, 66,106,195,209,250,126,106,144,247, 17,130,208,145,178, 5,207,186, 63,122,122,227, 75,179,246,230,113,
-187, 43,109,172,248,144,173,168,117, 43,147, 40,138,144, 22,253, 18,134,147,218,106,178,105, 81, 91,203,128,200,237,163,181,107,
-123,173,113,123,143, 75,220,131,212, 5, 47,226, 52,160, 21,231, 35,101,153,109,133,172,222,209,142,223, 90,181, 91,160, 49,110,
-176,182, 94, 81, 76,152,179,158,101, 42,125,230,100, 56,162,211, 75, 46,184,224, 74,187,129, 36, 0,163, 81, 81,183, 90, 65,115,
-225, 58, 86,106,115,156,227,218,139,152,226, 16, 10,220,242,205,165,173,228,176,176,202,207, 21,206, 24, 61, 67, 7,105,232, 24,
-122, 78, 88, 85, 61,203, 51,204,162, 45,134,193, 50,225,225,189, 36, 42,230,150,227,201,142,135,163, 72, 97,242, 10,221, 83, 97,
- 75, 72, 76,134,155, 43,170, 21, 64,180,239, 77, 9,233,172,179,219,161,153,238,208,163, 36, 56,140, 70, 67,215,235, 24, 86,198,
-243,118,220,185,126, 67,180,187, 68,182,145,137,158,198,247,100,208, 36, 26,101,240,228,247,187,164,106, 10,123,164,185,195,222,
-113,114,171, 89, 59, 82,242,127,187, 4, 55, 89,251,181, 78, 88,155, 97, 51, 76,155,116,137, 54,197, 60,252, 89, 76, 52,227,138,
-118, 41, 12,180,234, 94, 66,125,130,165,110, 79,206, 90, 69,149,189,187,153, 31,136,160,135,119,149, 49,197, 1, 7,129,199, 35,
-159, 3,194,185, 78,253,185,187,116, 99,110,100,210, 29,164, 3,165,186,125,105,129, 80, 70, 57,168,239, 41,196,207,220, 43, 36,
-221, 36, 68,194,166, 53, 56,194,205,249,111,141, 99,200,122, 44,145, 17,164, 71,193,141,206,241, 37, 46,172,161, 99,234, 25,241,
- 18, 42, 58,167,191, 88,254,108, 6,217,166,230, 50,143,138, 9, 83,165, 95,161,128,132, 35, 21, 62,218, 78,194, 4,161,203,196,
-143,152,147, 81,254,107,151, 68,203, 57, 66, 94, 66,134, 74, 32, 49,110,139,117,102, 49,148,103,109, 93,249,111,221,195,101,194,
- 7,136,161, 34,230, 66,141, 58,144,122,119,106,235,100,177,117,149,152, 99,138,184,146, 9, 57,146, 17,139,234,106,213,103, 48,
- 78, 94,228,111, 64, 3,211,141, 51,179,108,206,239,253,220,127, 20, 15,165, 17, 50,139,181,170,253,122,108,167,115,206, 72,198,
-209, 37, 17,211,186,189, 18,149, 92, 86, 84,158,242, 18,123,181,105,109, 99, 25,147,199, 35,188,198,150, 55,177,197,164,255, 0,
-208, 61,189, 53, 83, 97, 33,141,175,104,200,145,236, 84,168, 94,211,109,149,124,201,109,246,187,124,101,204,150,236,134, 81, 22,
- 35, 67,114,223,150,226,210,150,144, 63,210,117,105, 7, 86, 82,204,219,118, 23,188,160, 1, 73,169,197,222, 27, 9, 53, 96,243,
-187,253,147,135, 36, 99,248, 5,142, 29,167, 38,186,219,238,214,108,183,149,100, 72, 73,151, 7, 38,149,104,117, 18, 27,177,184,
- 18,182,214, 97,144,130,135, 27, 10, 78,228,146,163,213, 93, 51, 27,125,188,188,194,201, 46, 36,115,152,215, 53,204,137, 48, 45,
- 14, 9,226, 15,245,113, 7,133, 71,219,158,100,120,184,120,238,131,221, 7, 46,178,123,107, 95, 49,252,145, 99,200,175,174,230,
- 86,171, 37,183, 34, 86, 55,150,230, 54,203, 78, 76, 22,240,198,220, 78,105,116,184, 94, 32,248, 22,151,159,148,220, 6,173,241,
- 92,217, 30, 10, 30, 83, 77,154,168,238, 90,214,116,199, 37,108,146,109,150,226, 9, 94, 90, 94,200,201,102, 26,155,161,140,141,
-218,158, 0, 47,115,156, 21,207, 32, 56,168, 24, 0, 42,226,254, 86,221, 72, 88,210,153,146, 71, 16,188, 58, 6, 40,149, 26,227,
-185, 20,235,237,170, 29,206,233,113, 68,217, 96, 74,106, 95,136,234,140,231, 29,102,165, 43,114,162,134,168, 81, 9, 32,244, 2,
-158,141,104,174,173,132, 5,193,173, 64, 81, 58, 61, 21, 75, 44, 90, 28,141, 8, 5, 23,200,178,148,100, 57, 14, 67,126,151, 88,
-167, 32,186, 75,146,134, 91, 33,102, 59, 15, 44,173, 45,130,144,128, 67,104,218,129, 68,129,234, 29,154,158, 34,124, 77,107, 66,
- 18,208, 7, 86, 1, 58,234, 91,156,102,144,188,246,215, 80,120,147,156, 44, 94, 92,101,249,103,186,167, 23, 79, 34, 78,194, 56,
-131, 36,188, 35, 23,126, 75,112,163,203,206,185, 78, 78, 65, 38, 63,188,188,182,223, 67, 72,133, 2,108, 87,156, 81, 65, 41, 8,
-173, 1, 29, 56,127, 50,242,245,215, 59,199,127,110,233,221, 19, 36,185,107, 67,177, 58, 99,133,177, 7,105, 10, 49,123,195,134,
- 8, 9, 60,106, 99,110, 67, 92,221, 69, 67, 65,227,146,253, 61, 93, 53, 17,101, 60,171,120,229,126, 73,203,121, 39, 38,247, 86,
-174,217, 77,226, 85,214, 68,104,123,132, 24, 33,211, 70,227, 71, 11, 82,148, 26,140,210, 82,211, 96,146,118,164, 87,174,182,187,
-102,199, 30,195,107, 21,140, 36,150, 68,208,213, 57,158,151, 30,183, 21, 39,172,212,105, 31,226, 30,218,236, 15,146, 30, 91,192,
- 56,103, 36,192, 45, 60,105,198,150,238,105,230,236,174, 53,186,103, 37,191,119,199,102,201,131,134, 89,165,184,242,217,180, 46,
- 75,175, 69, 68, 84,150,252, 39,148,152,237, 47,198, 93, 67,139, 82, 82,134,198, 79,123,191,113,183,184,117,252, 17, 54,205,170,
- 24,100,122,153, 72, 78,243, 90,220, 0, 94, 36,234, 8, 8, 69,173,255, 0, 46,221,199,183,197,165,177, 54, 71, 63, 50, 71,168,
- 12, 58,184,103,211,146,125,116,112, 53,241, 24,198, 9, 61,198, 56, 79, 26,197,239, 57, 53,197,187,150,113, 63,138,111, 86, 75,
-196,123, 77,193, 49,208,212, 88,183,120,173,187, 2,232,137, 22,219,122, 26, 97,109,166, 51,139,170, 84,118,141,198,186, 29,142,
- 40,108,225, 18, 69, 0,110,160, 23, 65, 4,180, 98, 67, 72, 85, 80,170, 80, 98, 73,194,175,188, 64,113, 12, 13, 94,143,167,174,
-162,142, 69,228,150,124, 57,115,153,150, 81, 29,137, 18, 82, 82,254,248,175, 37,248,174, 41, 42, 67,141,185,177,105,114,169,249,
-138, 0,142,210, 41,171,219,107,136,167, 46, 67,238,231,213,210,163, 48,114,192,227,136,163, 14, 53, 78,175,190,108,215, 21,249,
- 17, 46, 42,109,200,108,180,182,168,133,130, 66, 41,236,161, 34,160, 41, 74, 29,123,105,171,118, 70, 6,158,186,120,198, 72, 90,
-172,249,103, 52, 64,200, 84,244,168, 15,133,239, 82,101,169,134,222, 79,209,236,220,175,105, 68,245, 0,129, 95, 87,195,171, 54,
-232,183, 32, 60,161, 57,117,212, 25,222, 90, 42, 33,186,114, 91,242, 97, 56,135,102, 36,164,165, 99,114,150, 78,198,212, 66,147,
- 66, 77,106, 8,237,245,106,113,184,142, 30, 61,117,155,186,126,163, 81,220,140,230, 76,102, 84,167, 28, 9,142, 74, 35,165,101,
- 64, 17,227,132,247, 87,185, 52,169,245,233,231, 94, 48, 96,184,162,213, 84,141, 90,133,115, 43,252,139,220, 89, 98,180, 75,112,
-252,117,110, 52,163, 74, 66,220,221,219,208,236, 65, 62,173, 70,126,239, 29,179,128, 39, 21, 79,104, 31, 57, 20, 35,105, 92, 42,
-149, 94, 50, 55,160, 92,215,225,213,255, 0, 13,181,188,175, 12, 18, 54,133, 39,161, 62,159,111, 87,176,111,176,189,189,226, 6,
- 41,243,253, 85,104,214, 40,164,193,205,240, 45, 17,157,123,199,240,139, 66, 56, 89, 43,161, 83,211, 89,220,142,149,235,210,134,
-186,150,233, 91, 59,131, 65,196,175,176,161,164, 62, 37,173, 89,231, 28,159, 42, 40,131,104, 98, 66,146,183, 27, 82, 28,113, 69,
- 8, 74, 70,209,233,248,116,147,183,174, 38,154,248, 97, 79,252,122,193,120,185,190,137, 87,185, 32,110, 59,150,128,189,168, 8,
-168, 38,166,181, 63, 59,174,137,214,237,140, 80,210, 27, 86,247, 8,183,192,180, 71,111,193, 83, 74,220,165, 33,224, 8,162,149,
-237, 0, 59,123,250,124, 26,166,187, 60, 42, 28,165,106,199,226,121, 8,117, 5,181,180, 2,147,185,202,143, 74, 72, 3,191,184,
-107, 63,114,218,132,248,210,166,136,247, 86,173, 17, 26,152,245, 29,144, 89,126, 66, 25, 38,136, 66, 25, 78,231, 22,163, 90, 37,
- 45,238, 5,106, 61,159, 9, 26,192,243,111, 51,193,203, 54,230,105, 78, 57, 52,113, 39,128,167,109, 44,221,118,228, 25, 82,155,
- 55, 72,209, 26,155,124,187,197,180, 63, 30,230,195, 66, 41,158,144,175, 21,249,210, 34,194, 66, 70,225,237, 37, 14, 7, 28, 73,
-173, 18,144, 73,232,189,120, 95,154, 57,134,227,154,238,100,123,222,229,212, 81, 56, 55,188,239,153, 7,248, 86,210, 61,161,150,
-205,107,144, 28, 56,246,165, 66,153, 6,119,101, 78, 8, 45,227, 27,180,170, 93,210,199, 21,163, 53, 81, 80,226, 93,184,185,111,
-106, 68,132,110,222, 21,181, 45, 72,142,149, 19,217, 95, 94,164, 89, 89, 74, 47, 27, 40,145,232,215, 42, 41, 8, 3,136, 7,183,
- 3, 80, 77,171, 99,103,184, 50,246,160,250,197, 49,172, 55,252, 6,241,132,230, 47, 74,199,160,198,187, 91, 50, 73,208, 45, 81,
- 99, 69, 67, 9, 24,156, 27,100, 39,144, 92, 63, 89, 84,220,148,160,219,131,231, 23,118, 14,206,154, 77,206,218,238,198,107,116,
-148,185,174,136, 57,196,149,253,163,158,255, 0,254, 8,163,128, 11, 85, 19,237,246,178,180,184, 4,114,251, 16,154,109,202,228,
-126, 54,197,172,127,118, 91,101, 67, 68,249,238, 66,117, 12,204,104, 72, 83, 87, 25,204,191, 37, 68,183, 90, 41, 42, 91,174, 52,
-123,136,160, 85,106,116, 29,182,110, 55,179,178, 71,131,164, 7,101,134, 0,128, 7,176, 30,172, 82,171,155,111,111,110,212, 92,
-207,207,254, 41, 76,139,190,127, 18, 23, 32,194, 22,152, 80,167, 90,165,226,166, 81, 97, 47, 9, 43,188, 61,116, 65,142,221,119,
-144,159,163, 18, 80,133,142,158,218, 66,250, 14,205, 92, 59,105,146,201,102, 46, 18, 23,181,160,255, 0,148, 53,117, 39,106, 2,
- 58,138, 83, 23, 13,136,184,224, 14, 31,162,148,239,124,177,143,221,238,248,203, 51,237,214,136,150,185, 97,187,173,194,226,182,
- 91, 90, 86,212, 22, 16,166, 88, 82,148, 64, 33,217,238, 54,224, 32,117,167,118,227,168,209,236,146, 89, 91, 78,246, 72,227, 35,
- 80, 48, 41,226,123,228,118, 52, 22,250,123, 41,136,227,134, 82,164,103,242,249,118,212, 43,112,229,236, 38,238,235,145, 36,199,
-117, 48, 45, 86,251,220,227,108,143, 49,109, 51, 34, 77,156,162, 10, 68,128,218,182,188, 10, 20,165,144,170,141,225, 42,165, 82,
- 53,115,103, 99,119, 96, 3,181, 2, 28, 64, 32,228,117,227,212,133, 80, 2, 16,128,160, 28, 77, 63,111,124,219, 88,229,183,104,
-110,137, 0,212,173,105, 61,210,161, 9, 10,222, 43,164,133,226,168, 41,181,141,114,150, 1,117,154,209,184,217,246,202, 45, 45,
- 64, 75, 8, 82, 83,107, 74, 84, 55, 56, 21, 84,144,218, 92, 74,129,237,246, 72,244, 82,109,214,217,117, 12,125,215,241, 57,116,
-245,122,106,132,193,110,171,216, 42,103,154,120,218,225, 99,101,248, 51,219, 97,249, 22, 1,119,146, 72, 77, 29,143, 32,201, 10,
- 13, 13,219,104, 86,133,164, 30,209,181, 71,165, 41,170, 8,111,111,163,213, 27,154,161,167, 79, 98, 1,245,131,215,133, 3,182,
- 64,170,185,215,183,215,176, 91, 21,173,139,142, 57, 33,181, 93,227,207,182,189, 29,153, 8, 14,195,188,196,187,196,171,109,246,
-149, 33,205,172,130,135, 16,122, 41, 84, 32,235, 95,201,183,204,151, 85,166,240,192,109,159, 27,156, 92, 59,178, 70, 91,145,107,
-179, 32,162,104, 42, 14,125,182, 54,214, 80, 61,226, 54,162,147,135,111,233,166, 37,215,157, 91,114,109,238,209,117,176, 72,181,
- 70,100,197,143,117,143, 46, 25,137,112,139, 18, 90,154,149, 33, 30, 10,210,133,182, 78,199,130,106, 58,157,180,233, 77, 87,183,
-150,190, 17,225,246,242,151, 53, 85,132,168, 92,244,147,218, 11,122,170, 69,245,179,109, 94,232,164,104, 14,165,103,185, 43, 16,
-110, 99, 76,162, 56,114, 84,155, 67,211, 38, 52,210,234,237,190,123,137,109,111, 55, 66,104, 3, 41, 90, 16,125, 36,158,211,162,
-138,214,228, 0,237, 89, 16,222,209,138,122,115, 53, 87, 45,163, 10, 6,255, 0,133, 55,211,159, 96, 83,223,178,196, 64, 67,119,
- 34,136,101,123, 20, 23, 10,217,106, 74,155, 95,138,226,129, 41, 36, 37,228,172,250, 2, 85, 94,237, 89, 8,238,216, 30,135, 14,
- 29, 36,244,123, 61,180,201,180, 11,236,253, 53, 29,221,249, 1, 44,197,149, 62,205, 49,169,129,136,242,157, 82,203,129,181, 8,
-113,159, 1,144,218,107,251, 79, 5,164,168,158,207, 88,213,197,164, 14,116,173,241,120, 39,175, 18,126,130,157, 52,243, 97, 17,
-143, 77, 65,151, 12,247, 43,131,141, 21,199, 95,142,219,183, 9, 13, 37, 40,144, 26, 30, 29,193, 8,109, 37, 35,118,227,209,165,
- 56,163,232, 41, 61, 40,117,162,134,206, 31, 24,106,195, 39,118,103,250, 41, 90, 0, 42, 78, 41, 69,172, 87,236,150,119, 32,173,
-229, 67,145, 2,203,225, 91,225,209, 23,197,150,214,139, 55,130,203,114, 29,107, 99, 73, 0, 33,141,129, 42, 89, 7,183,212, 83,
-121,162, 43, 35,142,167, 18, 93,238,133,239, 41, 32, 28, 78,103,217, 85,147, 69,171,142, 53, 56,220,179, 75, 0,133, 50,233, 30,
-238,168,106,180,123,236,251,211, 78, 36, 73,122, 84, 86,211, 29, 94, 11, 71,117, 65, 14, 56, 40,107, 78,132,118,245,214, 82, 27,
- 3,226,123,138,173, 65,213,158, 63, 46,170, 76,118,160,224,234,105, 55,159,198,187, 71, 69,209,187, 83,132, 64,143, 10, 29,169,
-213,189,177, 17,163, 67, 43, 91,207,168, 36,128,162, 7,138,186,158,157, 71,105, 26,148,109, 89,105,220,115,128, 14,118, 61,100,
-240,249,133, 58, 34,140, 59, 1,136, 20,131, 39,145,226,203,184,218,160, 42, 34,213, 39,239, 31,188, 30,105,163, 84, 2,132,186,
-148,178,107, 82, 2,147, 84, 34,134,186,183,178,176,214,201, 28,199, 14,243, 67,125,122, 92,163,135,109, 74,104,108, 99, 44,254,
-191,209, 67,218,249, 33,249, 77, 37,241, 13, 45,176,220, 73,147, 10, 65, 42, 42,184, 49, 37,230,208,129, 90,138,251,180, 69,130,
-159,135, 80,229,217, 3, 93,164,156, 73, 79, 66,125,101,105,178, 26,194,148,169, 27,150,164, 63,110,152,153,101,217,239,161, 14,
- 72,150, 97, 56, 16,154,199, 91,101,227, 85, 16, 2, 74, 75,131,169,232,148,211,225, 67,246,104,195,193,110, 3, 33,234, 79,171,
-215, 67,193, 15, 61,116,167,106,228, 59,117,193,168, 6, 21,204, 7, 46, 10, 12,176,231,138,160,210, 36,190, 90, 33,105, 73, 93,
- 66, 1, 66, 91, 35,210,149,118,130, 42,220,219, 65,136,146,225,195,235,255, 0, 31, 72,163,248,114, 50,167, 46, 25,122,157,146,
- 78, 78, 55,100, 14,222,114,107,157,254,199,141, 88,236, 34, 66,124,121,183,187,149,197, 80,154,105,160, 74, 80,162,234,222, 65,
- 77, 72, 6,157, 72,208,143,107,115,228,107, 67,115, 84,244,140, 61,184,122,106,109,181,137,148,134, 12, 73, 32, 14,178,114, 21,
-107,188,197, 94, 56,115,203,118, 43,133,226, 14, 90,237,121,247, 48,204,178, 92,231,228,119, 8, 57, 68,175,117,181, 68, 92,199,
-227,248,138,240, 23, 29,184,241, 99,173, 10,137, 29, 14,178,227,210, 92,143, 33,202,176,194,153, 82,250,229,183, 37,109,220,189,
-100,217,119,118, 25, 37,121, 8,192,226, 20,162,160, 66, 50, 4, 23, 59,134,160, 6,162,160, 92,223,109,208,237,241,177,161, 11,
-138,250,113,204,116, 5,192, 96,165, 9,192, 37,115,190,227,205, 23,191,114,126, 55,142,202,220,149, 46,210,219,200,101, 43, 76,
- 70, 23, 50, 81, 41, 33, 43,117,213,132,132,186, 43,185, 71,165, 42,117,205, 55, 11, 75,107,135,186, 88, 96, 17, 52, 52,144,208,
- 92,236,135, 18,226, 73, 42,163, 4, 24,101, 89,201, 64,113, 9,215,236,166,122,121, 91, 45,189, 76,142,211, 19, 94, 75, 83,219,
-189, 41,245,238, 41, 83,227,235, 74, 7,112,161, 73, 72,244, 14,206,193,169, 80,109, 22,164, 28, 61,220, 61, 57, 10,138,226,135,
- 17,209, 76,105,220,157,148, 66,145,107, 99,100,180,199,185,199,145, 97, 99,194,220,227,174,194,132,182,202,222, 38,181,218,234,
-150,245, 8,244,211,174,209,171,107, 11, 27,120,228, 14, 8,161,193,217,113, 92, 62, 97,234,167, 34, 1,117,244, 33,164,252,115,
-151, 51, 43, 99, 54,180,191,227,188,134, 71,184, 66,144,162,165, 39,197,162, 11,224,130,170,245, 91, 72, 31, 1, 58,122,235,105,
-181,148,185, 64,239, 28,126, 93,166,154,144, 52,147,211, 74,108,243, 38, 97, 22, 91,240,221,147, 45, 9,115,221, 3,202, 90, 10,
-156,112,204,218,161,236, 84,138,238,219, 95, 81,248, 65,174,126,203, 3, 81,186, 66,144, 61, 31, 32,105,122, 90,252,169, 78,227,
-206, 87, 0,212,152,171,120,188,175,122,247,104,229, 78, 0,134,147, 17, 42, 74, 94, 61, 73, 82, 84,227,160,118,126,247,167,161,
-127, 33,136, 60, 32,207,252,126,138, 38, 68,105, 17,124,179,118,142, 93,159,239, 43,114,225, 44, 34, 88,105, 73,241,153, 12,165,
-101,212,180,176,165, 40, 16, 74,250,212,106,105,219, 34, 82, 56,105,195,181, 6, 62,142, 29,116,152,226, 94,140,234, 67, 87, 63,
-100,191,115,179,108, 72,119,198,247, 41, 50, 29, 87,132,159,118, 62,211, 72,109, 20,165,122,123,104,161, 20,175, 65,223,168, 95,
-200, 96,214,188, 23, 46, 62,234,103,237,167, 52,157, 26, 56, 42,254,154,231, 13,211, 26, 18,111,109, 68,181,255, 0,170, 64,240,
- 99, 71,136,239, 93,162, 59,187,146, 86, 77,122,209, 40, 82,137,214,246, 25,192,112,212,123,125, 20,236, 55, 58, 26, 92,236,215,
- 26, 89,185, 49,247, 99,233,154,251,138,251,182, 67,237, 50,136,205,146, 94,159, 66, 84, 64, 0,213, 69,229,144,154,127,165,163,
-157,205,153,200,209,195,229,236,160,203,147, 33, 65,158,116,145, 6,116,219, 85,225,169, 79,171,103,221, 82,196,247,208, 23,185,
- 97,237,202, 83,109, 86,164, 18, 28,167,201,240, 13, 55, 42, 74, 72, 60,105,246,201,168, 40,204,224, 62,186,147, 37,222,161,100,
- 54, 27,131,211,205, 17, 38,229, 22,233, 51,173, 28,150,226,154, 82, 82,202, 73, 53, 5, 74,165, 79,114, 70,169,101,178,150,210,
- 88,204, 39, 20, 32,117, 23, 34,159, 64, 95, 74, 82,217, 46,135,147,212,158,170,171,220,195, 21,163,115,135, 42, 35,232, 90,163,
-221, 81,107,114,218,193,216,159,119, 65, 78,245,244, 36, 0,124, 71, 17, 64, 59, 1,214,227,102,115,124, 20,227,154,252,213,111,
-111,114,244, 10, 79, 28, 87,164, 87,182, 91, 75,202,202, 91,191,188,242, 4, 86,172,176,100,172, 80, 36,253,224, 34, 42, 34,210,
-122,245, 87,138, 86,175,143, 79,120,130, 56, 11, 58,207,169, 84,123, 42,174,242,229,211, 64, 34,232, 86,142,205, 69,223, 77, 63,
- 49,188,130,241,142,205,119, 34,182,151, 22,109, 78,228,102,215, 22,164, 33,251,237,234, 11,240,153,113, 34,191, 57, 45,184,164,
- 87,208,179,170,219,155, 70, 95,183, 67,135,188, 27,234, 14, 7,231,199,209, 74,176,156,218,163, 73,193, 20,250, 41, 17,133, 11,
-123,182,248, 37, 40, 91,246,155, 60, 24, 50,101, 1,246,151,224, 54, 26,100,168, 87,169, 73, 36,250,122, 13, 88, 56, 2, 9, 25,
- 23, 19, 85, 82,202,233,201,113,226, 74, 83, 98,250,211, 15, 62,237,198,229, 33, 81,173,214,200,141,137, 14,143,105,221,206,149,
- 45, 77,182, 43, 66,183, 0, 64, 79,203,216, 52,168, 87, 78,134,140, 73,169, 54,227, 75, 80,102, 77, 75, 44,219,176,188, 7, 5,
-180,115, 45,130,225, 33, 83,175,216,202, 85, 6, 3,187, 21,247, 84,229, 0,211,165, 14, 15,164, 90,202,139,130,170,245, 82,157,
- 53,158,101,196,219,141,211,236, 37,104,210,215,226,122, 64,196,125, 21, 30,224,201,112,255, 0,134, 35,142, 39,170,170,236,233,
-111,164, 90,238,139,121,199,243, 12,153,219,149,198, 99,202,115,222, 91,143,110,184,168, 52,130,242, 21, 80,146,200,105,110,133,
-118,144,164,210,148,235,175,107,116,106,104, 31,179,106, 0, 58,198,126,181, 3,208,106,244, 68, 0,211,246, 64,249,169, 65,168,
-241,238,170, 56,178,239, 30, 14, 61, 14,224,101, 58,153, 46, 21,120,242, 88, 83,161, 46, 44, 53, 85, 41, 75, 11, 85, 0, 35,183,
-208, 52,219, 35, 49,129, 49,111,237, 8,225,192, 97,133, 50,247,248,125,244,198,164,200,248,186,161,219,228,194,179,170,116,228,
-202,109, 42,143,238,216,159,186, 48,203,100,109,222, 30,241, 11,142,130, 1,173, 9,245,157, 65,117,211, 94,246,235, 32, 33,255,
- 0, 50,250, 19, 33, 80,140,133,206,212,224,158,154,101,220,112, 91,235,115, 97, 42, 60,152,114,216, 65,109,169, 17, 91, 82,145,
-113,104,188, 70,229, 6,136,162,232,154,116, 74,137,245,106,194, 43,230, 57, 87, 14,190, 30,186,145, 20,173, 32,168, 56,212,169,
-153,230,151, 28,194, 92, 57,170,128,206, 50,136,126,233,106,178,218,162, 67, 17, 30,135,103,177, 71, 68, 40,101,242, 82,149, 62,
-242,218,104,189, 33,229,245, 91,138, 82,186, 2, 0,166,219,118,230,237,234, 20,187, 50, 73, 42,174,113, 37,201,208, 50, 0,100,
- 2, 10,118, 73, 90,215,157, 32, 34, 1,135, 71,233,226,120,210,157,182,249,116, 75,118,251, 53,173, 82,174, 23, 91,139,205, 66,
-129, 20, 40,200,121,247,221, 80, 0,210,166,189,105,254,109, 59,225,177,186,166,145, 3, 70, 36,210,237, 86,225,233,236,175,165,
- 78, 8,194,236, 92, 23,193, 87,126, 16,181, 93,109,214,222, 65,228, 68, 88,209,152,115, 84, 24,134,249, 60,102,153,107,241,210,
-194,151, 25, 82, 35, 74,117,171,107, 18, 28,101,132,180,242,122, 23, 29, 66,208,234,137,215,146, 55,190, 97,184,230, 45,217,155,
-171,212,219, 70, 72,109,187,148, 55,195, 96, 43,136,192, 57,197, 28, 78, 96,128,220, 90, 43,174,108,174,139,109,208, 37, 99, 72,
- 1, 74,161,196,228,163, 17,135, 12,197,119,247, 17,243,119,142,216,177,124, 23, 25,202,175,178,249, 75,148, 49,172, 22,219,104,
-191,230, 76,217,216,183,230, 89, 42,173,176,129,149,113,148,194,150,148,192, 68,167, 91,241,156,109,111,237, 21, 85,106, 64, 42,
-233,150,156,247, 29,246,143, 2, 55, 74,245,112, 26, 83, 0,132,143,218, 56,128, 80, 96,113,224, 78, 53, 14,247,119,129,210, 57,
-182,224,191,169,184,129,218,226,128,122,235,158,124,251,230,217,171,245,191, 42,117,182,100,219,131, 45,185, 58, 50,148,227, 36,
- 54,171,194,223,121, 40, 41,109,229,186,118, 37,196, 10,237, 34,160,214,157, 42,214,219,205, 78,186, 47,115,218,154,228,210,138,
-168, 10,225,234, 3, 44, 49,236,167, 29,117,225, 38,182,161, 78,144,126,106,230,214, 81,200,119,155,181,193,248,118,251,155, 47,
-166,124, 52,220,210,250,150, 82,150, 27,121,137, 93, 92,235, 90, 52,148,165,194, 61, 31, 14,181,151,124,220,216, 35,129,193,117,
- 6, 98, 58,214, 63,159, 17, 77, 29,205,164,233, 7, 26,128,241,254,106,159, 38,243, 58,219, 12,190,135, 20,234,216,121, 41, 88,
- 91,241,219,117,101, 40,107,231,117, 41, 74,131,116, 7,231, 30,181,211, 59,151, 48,186, 41, 60, 82, 84, 53, 0,232, 46, 0, 41,
-251,216,175, 64,194,160, 75,127,226, 56,129,149, 60, 31,228,107,236,201,114, 45, 77, 52,252,135, 26,125, 54,152,190, 10,188, 70,
-140,199,136, 82,148,165,164,208,109, 8,175,250, 61,127,105, 58,169,190,230,233, 99, 44,105,114, 57,253,247,116,128, 50, 9,218,
-114,255, 0, 54, 92,106,162, 71,107, 37, 50, 24,122,105,118,203,115,201,243, 11,236,124,122, 2,158, 48, 89,118, 36,100, 92,159,
- 4,179, 37,167, 60, 68, 38, 82,148, 13, 18,151,222, 4, 53, 95,216, 21,253,147, 70, 38,231,230,217, 70,233, 36,118, 56,224, 56,
- 16,131, 79,160, 34,245,246,226,118,246,143,184,120,107, 69, 22,184,163, 33,113, 88,253,153,132,173,217,119,155,236,156, 85,223,
- 13,162,230,199,173,208,196,130,217,218,123, 95, 47, 45,161, 94,224, 15,102,153,135,157, 69,195,101,153,231,221,239, 5, 61, 36,
-124,200, 15,109, 32,218, 73,172, 52,118,122,126, 70,161,251,122,158,103, 44,202,237,211, 45, 76, 61, 58,209, 26, 91,209, 88,144,
-201,113, 51,146,225,113, 94, 42, 18, 55, 5,248, 73,142,161,215,191,225,209, 59,117,125,244, 13,149,178, 16, 30, 64, 40,114, 32,
-162,117, 42,212,105, 60, 88,222, 91,196,125, 85, 95,115, 12, 53, 57,117,210, 76,145,105, 77,180, 93, 36, 75,185, 37,184,140,248,
- 81,146,156,116, 37, 46, 54,216, 20, 72, 75,113,208,218, 64, 79,114,147,173,223, 47,243, 73,218,227, 26,164, 46, 44, 1,170, 74,
-158,254, 68,245,234, 36,149,232, 52,113,222, 60, 38,161,192,251, 41, 51, 16,184,222,241,135,210,200,178,201,185,181, 21,166,218,
- 82,226, 55,225,200, 82, 86, 81, 82, 66,169,214,138,167,166,189, 53,218,172,119,248,103,137,174, 46, 29,236, 70, 61,191, 87,171,
- 26,156,217,132,130,166,200, 60,137,145, 92, 91,103,221, 48,188,133, 41, 74, 29, 74, 15,134,148,184,242,250, 80,144, 86, 59,201,
- 63, 21,116,171,205,222,222, 19,164,200, 20, 98,122,134,127, 46,218, 73,115, 70, 4,212,149,100,229, 28,174, 41, 64,119, 27,187,
- 45,109, 33,149,165, 1,164, 7, 7,138,178, 10, 74, 67,138,175, 78,160,250,245, 76,235,248, 46, 73,210,241,250, 17,126,154, 97,
-209, 53,199, 3, 87, 59,143,242, 28,130,231,102,183,223, 27,182,120, 42,155, 57,200, 45,198,157,190, 50,194,152,240, 20,233, 41,
- 0,147,181, 46, 84,118, 86,135,174,185,111, 60,115,196, 92,174, 7,116,187, 83, 92, 65, 80,131, 78,107,236,164, 69, 98,102,118,
-149,232,246,252,141, 89, 43,143,222, 18, 19, 42,204,244,232, 22,187,188, 37,193,247,169, 14,128, 73,140, 30, 68,135,161,161, 42,
-112,166,174,199, 44,130, 58,165,127,249, 42, 35,199,220,207,205, 83,115, 92,204,186,148, 56,198, 85, 0,201,184, 16,215,122, 14,
-174,177,159, 17, 90,155, 91, 47,131, 26, 2, 2,159, 74,145,234, 74,219, 54,153,140,101,120,180, 3, 22,224,211,106, 69,150,203,
-108, 74, 17,120, 75,166,200,155, 27,241, 98, 70, 76,106,173, 5,211,224, 48,250,220, 87,237,138,147,243, 55, 28,101,171,103,176,
-149,202,220,156, 74,105, 61,229, 5,197,115, 69, 37,160, 14, 25, 12,210,172, 36, 2,229,163, 30,142, 57, 0, 80, 39,203, 26,132,
-174,241, 49,172, 85,156,107,124,167,230,197,148, 63,187,129,183,223,110,143, 61,144, 41,128,132,180, 69, 60, 21, 86, 10, 71,138,
-175,223,234, 83,180,141,108,236,205,197,251,228,121,104,105, 8,228, 3, 32,213,207,167,222, 56,117, 97,152,170,203,143, 14, 38,
-128, 14, 7, 15,151,171,219, 85,189,155,198, 25, 10,225,147,206,115, 37, 82, 96,219,237, 41,179,202, 82,158, 83,177,228, 94, 49,
-121,133,213, 50,195,132,130,176,236,148,248,200,160, 21, 69, 43, 64,105,173,184,182,186,187,208, 12, 67, 91,156,160, 0,136, 28,
-212, 10, 56, 97,129,235, 94,138,205, 79, 20, 39, 80,215,130, 99,232,232,168,145,155,166, 21,117,190, 69,146,178, 69,229,235, 84,
-207,115,101, 79,153, 13,174,105,116, 48,149, 16,165,148,133,171,222, 93, 93,105,208,129,251, 32,106,241,246,183, 86,145,227,139,
- 65,199, 15, 79,208, 5,103, 46, 99,105,201,114,160,229, 90,156,189,228, 22,231,237,121, 7,184,196,176,197,153,109,142,249,116,
-248, 18, 86,134, 67,193,197,132, 85, 69, 9,221,236,129,216, 77, 58, 83,161,178,252,162, 72,197, 56, 57, 58, 56, 1,236,250,106,
- 9,140,202, 23, 46, 31, 93, 38,222,120,231, 36,157,114,110,207,111,189, 51, 42, 37,158, 85,178, 68,217,111, 56, 16, 35,149, 74,
- 8,109,179,237, 40,130,148,161, 64,143, 74, 66, 64,246,180, 33,221,153, 44, 69,210, 52,130, 65, 0,112, 68,196,252,187,105,160,
-199, 64, 10,154, 5,206, 19,159,100,145, 50, 61,230,224,245,157, 78,196,145,118,189,220, 27, 97, 82, 69,162,212,250,140,247,163,
-161,175, 17, 42, 42,109, 10, 67, 74, 27,170, 85, 81,218, 52,254,201,186,218,110,143,128,204,242,219,114,246, 13, 73,168,128, 28,
- 26, 31,164, 17,169, 74,184, 0, 66,132,167, 99, 33,215, 13,100,167, 75, 84,106, 32,106, 32, 20, 4,162,133, 65,193, 69, 70,140,
- 59,141,223,231,230,144, 44,114,219,251,206,213,114,181,227,175, 48,211,222,240,244, 88,210,153,117,136,237,169,196, 37, 40, 6,
- 83,140, 16,154,128,107, 80, 64, 32,235,111,204, 60,190,235, 80,111,108, 28,102,219,124, 66,214,204, 1, 3, 90, 23, 35,131,131,
- 92, 48, 7, 73, 44,110,182,181, 64, 5, 90,221, 95, 56,114, 21,223, 41,150,248,160, 24,220, 65,107,154,224,239,120, 40, 14, 33,
- 16,162,224, 64, 56, 28, 1, 4, 3, 23,203,236,194,108, 88,239,188,169, 48,109,191,234,183,105,113,201, 14, 49, 96,140,183,164,
- 55, 25, 5, 59, 85,226, 44,202,112,165, 21, 53, 46, 35,224,214, 91,107,182,107,203,203,120,226, 23,237, 57, 0, 39,179, 0, 61,
- 6,178, 45,183,192, 56,156,190,186, 72,191,115, 11, 54,251, 33,201,174, 17, 23,107, 83,115, 35, 59,102,132,100, 41,109, 69,251,
-145,214, 84,135, 27,170,129, 8, 9,142,219, 77,238, 53,220, 86, 69,119, 39, 83,108,121,125,215, 82,152,181, 43, 74,234,244,140,
-189,100,158,196,232, 52,207,195, 24,156, 28,211,136,249,248,122,105,103, 33,243, 57,110,243, 31, 61, 57,141,167, 3,200, 87,146,
-189,112,199, 44,252,129,117, 97,182,155,180, 48,205,173,168,199, 99, 44,182,132,184, 84,248,140, 87,227, 18,123,198,223, 71, 66,
-222,118,155, 13,183,108,132, 62, 66,201,162,139, 75,113,106, 61, 20,133,196, 16, 83, 34, 43, 89,185,192,253,232,186,232, 4, 39,
- 49,196,101,244,226, 42, 60,127, 42, 90, 36,221, 90,134,167, 82,110, 83,215,143,165,244,186, 75,143,170, 82, 90, 18, 20, 40,106,
- 18,170, 2,154,119,171,213,174,115,109,106,247,198, 30,252,218,210,243,212,186,147,210, 2,138,207, 75, 2, 5, 7,252, 5, 74,
-246,139, 54, 59, 50,115,120,227, 87,132, 71,185,222,164,181,143, 9,142,190, 83, 21,166,222, 97,180, 45,107, 88, 52, 74, 91, 46,
-180,149,122,134,160, 58,242,226, 38,153,203, 73,104,105,114,113,193, 78, 29,160, 85,114, 72, 94, 49,195,143,174,157,183,171,126,
- 17,106,205,242,139, 4, 27,164,103,172,112,237,215,200, 54, 0,191,161,126, 83,105, 47, 8,200, 80, 39,169,113, 75, 82,130, 71,
-106,200, 26,131,183,223, 93, 92, 66,199,185,135,196, 58,117,118,144,165, 59, 21, 59, 41, 19,153, 28, 72,111,187,168,167,160,210,
-140, 30, 60,198, 50,251,155,150, 43, 29,194, 44,136,182,107,189,226, 43,147,124,100,178,196,162,175,118, 83, 72, 86,226, 54,130,
-210, 87,180,118,133, 33, 98,154, 85,247, 48, 92,217, 91, 9,165,105, 4,129,135, 16,114,249,211,215, 81,222,217,181, 6,140,206,
- 94,170, 52,156, 71, 24,241,161, 92,100,221, 27, 48, 46, 23,153, 41,117,110, 43, 97, 82, 76,105,126,236,197, 15,122, 95,128, 83,
- 64, 79, 85,166,157,244, 40, 55, 89, 30, 93, 22, 42, 26, 10,116, 33,111,206, 15,170,153, 13,145, 20,240,166,166,101,139,197,198,
-133,194, 51,172,133,187, 38,215,112,154,185, 14, 10, 33, 86,118, 36, 41,200,206, 80,245, 37,228,198,108,117, 31,180,125, 7, 83,
- 45,247, 41, 94, 66,228,112,255, 0,118, 11, 82,226, 87, 96,105,178,140,125,231,242, 53,217,144,234,225,217,159,140,132, 69,101,
- 35,195, 75,208, 46,203, 74, 5, 58,154, 2,217, 93,123,122, 31, 94,172,111, 46,225,117,156, 50,224,100,241, 92, 79, 72, 45, 33,
-163,212, 71,207, 82, 1, 17,198,212,247,138,147,236,167, 30, 63,130,217,213, 42,232,167, 94, 96,161, 94, 21,206,203, 49, 85, 15,
-120, 54,199, 88,105,150,220, 61,190, 35,136,117,194, 62, 13, 84,221,111,114, 90,152,155, 31,219,114, 17,209,220, 46, 94,192,128,
- 80,151,190,164,112, 31, 47,157,105,122, 46, 47,143,218,173,185, 29,185, 30,236,243, 56,236,155,236,119,101,120,137, 75,166, 91,
- 98, 50,169,237, 40, 85, 64,191, 41, 52,237,170,145,233, 26,120, 95,205,114, 3,194,171,138,142,207,169, 16,250,233,146,215, 59,
-182,153,113,113, 6,151,198, 87,251,164, 65, 21,148, 93, 39, 49, 96,137,251,111, 77,102,104,117, 50,222,165,126,106, 54,238, 36,
-246,104,155,185,201, 5,206,156, 78,152,203,143, 82, 17,135,105, 20,236, 49,146, 67,137,226,158,202, 78,149,196,177,237,216,110,
- 55,123,131,117,104, 92, 47,146,165,185,112,132,221, 82,238, 56,237,189,214, 12,102, 64, 81,171,133,216,205,248,132,143,103,233,
- 7,125,117,113, 14,245, 36,142,144, 61,157,208,128,127,168, 34,147,235, 41,211,133, 62, 36, 17,128, 6, 38,166,191, 44,214, 46,
- 16,199,249, 74, 31, 39,242,183, 44, 99, 28,105,128, 96,215,124, 70,233, 14, 94, 85,113, 83,111,228,179, 49,255, 0, 2, 75,141,
-177, 25,149,137, 46, 40,251,171,174,184,166,210,173,187,118,128,183, 92,109, 11,219,242, 45,141,231, 49,110, 30, 28, 45, 95, 9,
-190, 33,233,205, 24, 0,195, 50, 49, 42, 0,204,144, 43, 69,178,134,205, 43, 95, 41, 1,173, 32,145,196,230,112,244,125, 1, 9,
- 52,195,243, 29,147,218, 51, 14, 97,228,142,106,197, 35,201,191,224,220,167, 37,219,237,238,233,116,183,170,204,253,186,224, 22,
-208,102,104,183,200,113, 83, 34,181, 37, 74,171,173,132,141,170,246,148,148,133, 42,151, 92,253,185,217,110,114, 65, 20, 23, 26,
-174, 33,238, 22,133,208,173,192,134,185, 0, 36,226,152,144,120, 18,162,163,110,119, 34,246, 87, 22,184,230, 83,164,130, 87, 19,
-149, 70,217, 94, 7,111,180, 76,194,177,203,106, 17, 50, 76,188,109,140,179, 53,186,161,123,226,198, 18,219,113,248,240,155, 88,
- 59, 92, 40,109,157,203, 82, 9, 21, 86,208, 78,218,235,149,237,155,188,151,113, 58,103,132,106,150,176, 28,220,152, 23, 17,192,
- 18,112, 7, 20,196,162,165, 87,205, 16,136,106, 37, 79, 1,209, 67,227, 56,203,108,221,178,120, 22,167, 45,235,131,100,198, 34,
-198,114, 93,210, 2,167,199,114,116,179,225,169,242,148, 61, 25,244, 39,222,164, 41, 77,134,222,108,148, 36, 32,170,155,181, 34,
-231,122,248, 0,198, 32, 71,184, 2, 16, 98,157,226, 1, 32,161, 64,138, 16,130,112, 53, 35,111,185,138,202, 65, 44,240,182,102,
- 33, 5,132,185,160,168, 64, 85,164, 56, 22,148,112,197, 9, 8,224, 90, 72, 40,241,172, 74,149,158,164, 71,105,177, 10,219,104,
-247, 75, 96,152,144,152,236,188,146,176,215, 64,165,251, 1, 79,111,237,169, 73, 0,245,235,167,228,220,226,123, 60, 88,245, 33,
- 10, 1, 69, 10, 50, 36,102,153,112,236,170,249, 67, 90, 15,109, 54,165,227, 17, 45,247, 86,163,163, 99,209,225, 76,152, 18,180,
-245, 67, 10, 93, 0,119,169,161, 42, 42,220, 65,209, 67,185, 25,194,244,212,115, 26,140,115, 52,189, 47, 11,241,173,143, 76,182,
-199,140,185,119, 23, 89,183, 61, 50, 66,131,138, 75,179,148,167, 60, 81, 83, 68,128, 18,132, 5,119, 13,221,199,164,120,183, 71,
-106,124,146, 18,129, 64, 29, 8,163,214, 83,230, 20,141, 32, 16,211,144, 79,151,162,163, 24, 88, 59, 83,178,119, 45,238, 50,144,
-244,152,205,173,196,169,170,136, 54,102, 80,219,232,113, 36,144, 42,226, 80,176,165,119,215,248,181, 62, 61,224,197, 16, 45,197,
- 48,237, 35, 49,235,250,106, 78,167, 34,129, 75,109,224,176,208,151, 30, 13,248,136,147, 18,202,166, 16,186,214,178, 18, 10,106,
-127,106,158,211,170, 30,138,122,180,111,221, 30,204, 92,114, 95,156,212,125,110, 39, 14, 11, 71,255, 0,186,237,166, 56,140, 80,
- 68,135,159, 84,228,183, 67,227,169,136,192, 72, 40,237,174,240,135, 64,255, 0, 72,246,233, 31,204,158,171,242, 95,170,155,212,
- 87,209, 80,166, 69,139, 49,100,182,219, 99,186,202,190,244,147,142, 54, 88,102,159, 72, 28,115,180,122,106,119, 80, 15, 89,214,
-194,214, 99, 44,135,162,163,192,243, 33, 61, 26,169,142,197,150, 75, 50, 74, 37, 49,226,174,194,110,119, 95,120,113, 59,154,140,
-136,172,159, 13, 32, 86,128,151, 85,219,242,106,218, 59,166,135, 56,183,136, 69,169, 58,198, 36,113, 65, 81, 52,171, 76,192, 35,
- 62,148, 56,234, 36, 7,166, 72, 83,132,130,165,167,122,170,106,122, 86,157, 62, 29, 57,108,224,231, 16,122, 22,172,152,230,144,
-125, 84,179, 61, 37, 54,187,101,185,167, 3,106,119, 99,202, 64,250,199, 2,235,189, 99,213,210,131, 78, 49,170,231, 23,116, 39,
- 96,253, 52,152,202, 43,141, 69,147, 25,251,202,233, 33,226,200, 13, 49, 37,197,182,143,156,165,200,114,170, 39,173,106, 84, 62,
- 64, 53, 50, 47,217, 53, 23,160,122, 6, 66,172, 76,136,209, 71,217,181, 75, 92,152, 77, 72, 34, 51,111,167,223,158,223, 84,178,
-203, 78,213, 73,168, 6,170, 62, 31, 80, 7,121,211,236,153,179, 2, 1,233, 4,246, 83, 78,115, 88, 48,169, 22, 59, 16, 45, 38,
- 68,187,138,144,134,153, 41, 22,248, 67,105,121, 36, 29,234,120,130,118,133, 17, 74, 19,217,242, 2,220, 75, 51,139, 91,131, 70,
- 4,253, 21, 12,172,184, 14, 57,211, 79,221, 89,184, 62,220,134, 67,109,189,112,121, 13,178,202, 86, 75,113, 33,133, 19,189,107,
- 39,169, 53, 36,168,255, 0,154,193,206,210,208,193,157, 17,140, 51,209, 76,139,253,174, 45,244,222, 88,142,226,197,150, 35,255,
- 0, 73, 38,187, 87, 49,208, 3,117, 72,173, 42, 80, 61,145,220, 7, 94,164,232,221,120,216, 28,198,143,146, 99, 82, 34, 6, 36,
-114, 98,152, 10, 25,197, 11,213,159, 30,197,229, 91,227, 59,141,219, 18,244,132, 67, 91,239, 48, 34, 91,225, 37, 75, 74, 80,166,
-157, 69, 74,138, 64, 37,117,169, 58,102,204,126,221,243,170, 56,241,255, 0, 26, 48,223, 8,151,175,123,235,164,187,231,191, 74,
-177, 34,205,105, 2, 12,112,249, 15, 56,128,159, 24,182, 27, 82,130, 10,194, 3,138,249,194,149, 61,154,145, 4,129,210, 23, 28,
-210,138, 18,143,212,236,112,164, 75,118, 47,111,176,182,110, 50,231,221, 89, 83, 49, 76,160,228, 93,145,214,243,171, 95,135, 68,
-168,168,172,147,217,211,174,165,190,236, 76, 52, 4, 34,148,100,116,199, 33,233,167, 49,121,246, 34, 67,186,180,229,222, 18, 31,
- 75,165,160,228,198, 93,184, 72, 91, 5, 61, 86,183, 9,217, 95, 16, 30,134,190,189, 53, 28,113,184,162, 3,232,194,163,185,197,
-116,224,126,106, 94,128,230, 75, 53,201, 77,200,155,121,143, 14, 35, 14, 60,240, 55, 39, 20,220,133,213, 45,180,130, 2,130,126,
-177,123,168, 59,129,211,178, 69, 12,106,116,181, 70, 88, 10, 40,131, 85, 80, 82, 28,102, 87, 40,199,142, 93, 47, 92, 35, 37,184,
-169, 91,139,170,166,145, 64,178, 43,251, 72,236,169, 61, 69,123,199, 84, 74,124, 49,212,125,148,165,214,174,225,244, 84,213,197,
- 48, 85,143,223,149,150,205,184,192,183,181, 29, 47,218, 99, 77,151, 5, 87, 37,176,137,105, 13, 62,168,200,241,152, 64, 95,134,
-225, 73, 90,137, 0, 26, 1, 83, 81,147,223,174, 70,226,207,132,141,164,228,226, 1, 69, 42,173, 92, 14, 10, 21, 7, 70,117, 58,
-202,111,135, 89, 61, 85,208,140, 91,204,127, 35,228,237, 95, 28,179,101,136,183, 53, 52,187, 49,235,139, 22,148,219, 50, 11,148,
- 91, 99, 33,150, 99,137, 49,151,226, 67, 67,161, 37,180, 37,128,149,251, 94,211,128,212, 14,101,117,201,118,150,186, 60, 88,148,
-183, 0,221, 74,208,167, 18, 65,193,196,102, 75,148,116, 55,141, 91, 58,253,247,143, 14,152,168, 57,142, 1, 50, 84,205,114,169,
- 62, 23, 54, 38,203, 21,203, 68, 37,198, 38, 68,104,234,159, 37,253,174,173,219,132,212,183,239, 4,184,186,173,213,161,181, 45,
- 27,202,183, 21, 84,215, 85, 71,110,150, 41, 26,224, 72, 69,203,128,199,212, 49,236, 74,208,195,184, 49,163, 72, 64, 18,159, 55,
- 30, 66,181,220, 65, 76, 43,186,165, 79,153,110, 55, 43,172,107,157,193,119, 24, 77,194,104,190,242, 25,109, 69,126, 43, 69,210,
-164,212, 84,138,154, 80, 83, 84,109,182,154, 53,214,212,105,127,117, 2, 21,192, 41,224, 80, 14,220, 41, 55, 55, 13,185,196, 56,
-135,116,212,123,107,186, 70,202, 46,165,187, 28,241, 2, 74,108,120,221,156,120,242,148,228,120,176,227, 72,141, 24, 58,131,184,
-169, 74,147, 26, 41, 64,223,187,161, 82,141, 41, 67,125, 43,100,108,109,115,198, 68,225,211,129, 63, 57,234,224, 43, 37,121,187,
-127, 47,145, 39,239, 3,147,155,232,204,116,167,248, 80, 24, 78, 47,138,196,206,209,125, 84,200,209, 81, 22,210,222, 95, 61,185,
- 10, 84,134, 88,152,241,115,220, 89, 82, 10,246,251, 83, 74, 94,114,167,176, 36,122, 70,170,239,239,230,101,169, 5,164,157,122,
- 64, 28,127,204,126,238, 3,174,180, 86,164, 3,169,199,130,253, 94,220,105,243,141, 95,248,238, 42, 33, 61,108,184, 60,243, 55,
- 25,151,139, 19, 83,156,125, 78, 56,171,214, 68, 17, 22,108,174,160,161, 75,139, 17,164,180,201, 64,246, 86,144, 65,237, 26,172,
-186,219,175,158,231, 62, 80, 60, 78,233, 61,141,197,173,234, 4,149, 43,154,154, 91, 39,133,128, 1,238,227,235, 57,159,170,167,
-104,220,219,199,216,134, 61,142, 49,100,179, 37,169,205,221, 39,172,174, 98, 10,156,122, 28, 4,186,152, 91,203,138,171,135,194,
-117, 53, 42, 52,234,163, 65,212,107, 33, 39, 41,222, 94, 58, 64,231,146, 8, 3, 14,149, 5,231, 12,177, 30,192, 42,221,187,220,
- 16,134, 8,128, 80,113,250, 62, 93,180, 40,231, 92,102,205,100,198, 29, 83, 22,233,210,254,248, 55,181, 72,109,132, 23,131,211,
-148,235,111,200, 10, 79, 97,247, 98, 54,168,247, 43,248,116,252, 28,183, 61,195,165, 36,185,163, 32, 20,162, 4, 65,235, 7,213,
-215, 82,153,186, 50, 48,208, 0, 60, 79,167,244, 83,158,225,146, 89, 23,149, 68,189,179, 97,137, 26, 76,184,118,148,174, 75, 45,
-210, 67, 86,251,145,142,236,170, 30,218, 34, 58,222,175, 82, 42,216, 61,186, 99,111,178,154, 24,221, 14,178, 90, 28, 79, 82,130,
- 83,214, 83,214,149, 26, 91,214, 74,226,253, 33, 79,173, 10, 47,177,106, 57,126,209,109,118,247,140,251,212, 24,150,200, 6,193,
-127, 13,165,196, 0,144,156,157,168,146, 18,146, 69, 78,224,194, 19,180,118, 5, 87,187, 87, 31,204, 30,219, 57, 94,194, 92,242,
-246,255, 0,248,184,143,159, 58,132, 26,215, 61,161,192, 1,164,159, 93, 65,242, 98,162,229,201,161,204,124,197, 54,107,141,156,
-205, 75,143,109, 67, 44, 75,121,166,230,200,113,102,161, 41,240, 82,154, 41, 71,160,246,181,184,218, 55,121,246,237,179, 92,206,
-118,168,156,198, 39, 74, 29, 32,122,120, 14,202,131, 37,185,145,197,204,226, 9,245,208, 54,120,121,100,139, 52,251,237,193, 34,
-219, 25,216,174,194,182, 73,117, 34, 48,121, 44,161, 8, 10, 1, 69, 41, 74,150,166, 29,245,208,157, 93,203,191,135,184,183, 89,
-115,138, 47, 28, 51, 35,177, 13, 84,220, 91,200, 64, 35, 36,166, 21,250,249,145,177, 27, 25,145,103,117, 99,239, 75,157,217, 17,
- 93,109, 36,174,123, 86,121, 69, 98,181, 33, 69, 37, 77, 80,215,183,174,174,246,235,231,188,205, 35,156,130, 48,213, 94,151, 15,
-211, 76,136,158, 2,140,141, 72, 16,121, 67, 62,119, 31,180,218,189,250,224,212,171, 4,165,220,161,152, 53, 18,174, 42,150,203,
- 17, 35, 48, 18, 22, 2, 74,157,107,197, 82,149,212,169, 85, 61,106, 5, 46,229, 45,190,235, 14,137,218,210,210, 8, 43,144, 4,
-130,126,106,126, 61,113, 29, 65, 87,231,160, 97, 95,121, 67, 43,188,200,117,251,197,233,200,107, 97,235,148,247,125,228,132,200,
-154,232,105,183,124, 18,218,247,248,108,165, 9, 75, 68, 2,160,132, 18,144, 72, 0,208, 77,111,183, 89,177,173,208,220,208, 14,
-172, 78, 61,103,143, 5, 32, 28,234,197,134,105, 84,234, 63, 47,151,170,141,102,183,220,215, 26,142,195, 81, 22,235,201,116, 42,
-106,226, 38,122, 15,185,193,138, 18,207, 68,251, 32, 41,253,175, 33, 45,214,180, 20, 2,170, 80,208,218,236,236,174,195,139,128,
- 85, 69, 76,201, 83,236,238,149,236, 61, 20,213,204,146,176,160, 56, 39, 79, 85, 64, 28,177,151,114, 75, 22,216, 18, 46,215, 11,
-154,101, 53,146, 56,235,137, 14,253, 3,113,226,205,101, 13,164, 16,181, 81, 74, 14, 41,117,238, 73,165, 58,212,234,118, 72,236,
-100,121, 17,177,161,165,160,118,148,249, 15, 69, 87, 78, 36, 0,106, 39,141, 48,114, 22,179,104,210,144,241, 85,193,113,100, 77,
-145,122,184, 41, 11, 42,101,185, 87, 8,235, 74, 90,216, 85,182,149,108,154,145, 66,106, 43,171,219, 73,237, 26,132, 6,234, 1,
- 7,251, 15,210, 83,209, 85,179, 54, 71, 46,105,245,212, 75, 63, 35,202,237,115, 81,121, 76,169,108, 60,194, 93,182,199,117, 46,
- 21, 82, 53,189,182,130,207,111,236,182,154,154,119,208, 14,205, 89,203,101, 13,195, 12,104, 19, 63, 89, 38,162,235, 45, 64,120,
-252,133, 60, 45,188,171,151,219,162, 64,136,236,249,150,209, 26, 45,205,201,111, 54,178,169,183, 5,220, 20, 86,234,119, 18, 74,
- 10,146,162,208,233,236,251, 68, 13,202,213, 60,188,189,110,231, 57,250, 71,120,180,117, 0, 0, 3,229,214, 6, 66,137,165, 79,
-101, 79,120,199,153, 25, 88,196, 42,220, 25,105,167, 86,182, 27, 36,182, 55, 63, 58,205,225,161,164,208,168,238, 12,150,144,160,
- 15, 64,191,140,156,190,227,202, 49,223,135,182, 44,145, 62,246, 39,214,184,211, 47,107,142, 3,167,230,175,121, 39,205,231,190,
-227,247,155,122, 26, 48,223,190,221,101, 57, 46,226,243,155,165, 61, 2, 10, 97,165,108,178,146,122, 54, 29, 66, 66,137,234, 84,
-107,222,117, 54,195,202,201,118,248, 96,145,193, 99, 13,110, 35, 37, 5,237, 10,153, 28,240,234, 29, 84,207,132,233, 28, 72,205,
-199,233, 95,154,160,235, 54,125,102, 55,201, 57,189,151, 7,139,103,186, 75,197,223,180, 92,166,218, 31,118, 44,219,197,206,107,
- 30, 12,107,172,146,167, 29, 75,174, 34,104,110, 66,210, 83, 66, 80, 72, 1,106,223,174,153,123,191,137, 44, 29,182,220, 65, 19,
-109, 93, 19, 99,115, 34, 6, 61, 82, 68, 9,142, 99,137, 30, 40, 42, 30,128, 53,237,113, 5,170, 84,109, 37,230,137,110,154,219,
-123,150,131, 19, 97,208, 26,210, 71,121,160,232,144,169, 61,224, 83, 86, 65,193, 66, 3,136, 47, 31, 55,200,217,189,216,166,185,
- 8,170, 59,183,132,100, 75,110, 83,133, 62, 35, 48, 28, 72,113,107,246,182,148,134, 88,170,186,126,202, 71,126,177,199, 98,130,
-216,234, 94,232,106, 4,235, 32,132,244,170, 86, 63,196, 80,113,234,165, 8, 25,221,145,185,111, 79,151,107,126, 93,214, 28,155,
-180,219, 12, 57,107, 46, 49, 10, 40, 97, 75,109, 65, 4,236, 74,218,117, 53,173, 42, 0, 3,176,117,133,184,237, 47,116, 70, 54,
- 59, 75, 93,131,147, 50, 78, 97,122, 19,229,141, 37,142,114,131,237,236, 52,240,196, 60,199,192,196,213, 97,227,155,102, 60,196,
-123,124,219,171,110, 93,221, 44,110,155,115,189, 92,130, 65, 37,195, 69, 40,179,227,182,148, 2,104,145, 83,219, 82,116,251,101,
-149,157,195, 45,152,251,125, 82,177,192,185,197,216, 21, 40,154, 81, 16,128,112, 57, 86,142,203,117,146, 8,139, 24,154, 93,159,
-215,245, 84,123,155,242,132,118,242, 57,109, 89,237, 72, 68,168,211,150,183, 31, 9, 30,232,196,201, 78, 52,223,188, 1, 94,210,
-250, 2,207,195,167,185,155, 99,181,109,213,200,183, 1,176,228, 0,255, 0, 78, 7,209,129, 78,218,169, 98,200, 73,113,233,165,
- 44,123, 53,188, 89,253,222, 44,152,205,200,187, 91,110,173, 16,165,167,114,252, 85,166, 84,132, 32,146,125,170,152,209,201,244,
-246, 29, 99,239,108, 98,148, 17, 25, 65,160,143,161,125,166,152,115, 65, 83,195,252, 62,186,112, 69,151, 41, 89, 4, 43,237,213,
-114,157,247, 60,118,205,119,125,166, 9, 75,168,149,113,144,241, 66, 10,201, 52, 82, 92,112, 10,247, 83,213,170,182,219, 36, 90,
- 97, 77, 65,197,184,240,224,190,128,135,174,148,161,163,181,126,138,106,216,121, 58,243, 24, 39, 31,115,198,128,245,251, 47,139,
-146,166, 96, 90,146,212, 56,150,134,166, 46, 97, 91, 64,159, 17, 9, 90, 1, 9, 61, 61,143,226,213,211, 54, 88,222,232,220, 72,
- 45,107, 11, 83,167, 36, 62,207,109, 59,165,170, 79, 64,249,124,244,233,129,158,229,159,113,155,156,217, 46, 8,208,226,228, 25,
- 44, 86,156, 86,231,133,193, 19,163, 56,203,235, 7,165, 75, 78,160, 36,118,125, 26,207,237, 29, 83,221,109,176, 71,112, 89, 27,
- 19, 0, 9,233, 46, 14,195,208, 27,143,104,232,168,238,115, 38,104, 3,131,147,235,167,165,227,148, 46,156,132,246, 75, 49, 76,
-190, 32, 70,180,220,237,214,180,183,255, 0, 87, 2,215, 18, 99, 81,138,148, 79, 93,243, 37, 10,143, 90, 70,153,143,101,101,149,
-188, 77, 46,239, 13, 42,122,120,159,152,211,110,112, 14,232,199,233,169,115, 31,200, 46,185, 69,246,200,196, 11, 52,201,151, 35,
-139, 93, 32,217,160, 66,101,115, 36,220,100, 88, 90, 76, 72,241,216,109, 1, 78, 45,110, 72,166,212,164, 18, 84,176, 70,179, 59,
-150,217,166, 38,177,135,188,233, 89,144, 79,126, 69, 56, 15,163, 60,168,218,221,101, 78,104,158,202, 49, 54, 70,119, 62, 45,158,
-193,141, 96,121,149,243, 47,201,111, 87, 75,125,130,199, 99,197,230,220, 46,115,175, 88,195,107,157,121,101,136,236,176,167,164,
- 46,207, 28,161,217, 13,161, 39,195, 74,137,112, 0, 43,169,214, 60,166,233,101,106,135, 29, 45,115, 70, 4,146,136, 10,117,160,
-199,136,165,197, 1,144,144, 1,196,252,213, 22,193,196,121,135, 36, 93,139, 24,198,112,124,226,251,116,201,151,120, 93,186, 21,
-150,193, 58,235,112,190,201,138,144, 46, 6, 59, 44, 52,227,178,220,135,224,167,222, 10, 1,216, 80,119, 82,130,154, 27,123, 18,
-100,107, 88,210,112, 40, 0, 42, 83,163,177,106, 68,125,236,129, 39,133, 63, 97, 89,115,213, 97,239, 67,141, 96,201,204, 56, 86,
-139,213,201,167, 99,218,100, 59, 16,218, 44,158,255, 0, 26, 68,182, 86,148,109, 83, 76,251,179,232,146,248,246, 82,164, 44, 40,
-130, 14,162,190,204, 49, 30,198,169,118, 42,156, 9, 10,123, 1,195,160, 37, 50, 87, 82, 39,200,103, 86,118,215,229,119,144,213,
- 7,142, 82,252, 60,141,251,111, 55,227, 88,197,235, 21,201,109, 54, 43,197,223, 23,133,115,185,178,210, 45,214,153, 18, 25,183,
- 45, 62,254,227,108, 58, 21, 26, 48,117,101, 33, 59, 2,200, 26,110,230,194,234,221,176,233,140,185,175, 13, 71, 52, 56,142,250,
-144, 48, 25,132, 82, 2,148, 33, 22,164, 24,158,192, 59,185,140,208,241,225,149, 50,224,121, 28,206,185,183,154,248,215, 10,198,
-241, 75,180,252, 10,233,200,143,241,235,124,153, 62,193,122,135,197, 49, 57, 18,100,251, 94, 63, 17, 82,231,187,108, 67,204, 50,
- 46,210, 1, 41,114, 56,116,116, 66,153,241, 9,104,239,121, 91,122,188,217,118,155,171, 91, 97,166,226,230,226, 40, 4,154, 92,
- 27,160,185,204, 46,213,165, 64, 87, 53,185,106, 26,138, 5, 20,112, 50, 87, 35, 90, 51, 40,168, 83, 52,232,162,207,240, 7, 48,
- 79,183, 55,142,220, 48, 28,163, 27,150,213,165,177,123, 86, 81, 96,153, 96,105, 54,153,206,148,195,150,164, 73,105,181, 22,230,
-132,182,136,230,132, 56, 74,182, 86,135, 92,150,241,238,218,220,101,157,175,110,157, 39, 22,144,139,145, 56, 96, 14, 40,114,194,
-153, 49,189,167, 89, 4, 12,241,194,164,104,126, 80,185,138,239,104,227,156, 61,188, 99, 32,102,254,246,125,106,225,149,101,215,
- 43, 45,210, 46, 57,136, 71,186, 92, 30,139,111,110,252,243, 80,100,136,194, 55,222, 76, 69, 11,113,123,212, 5, 67, 74, 81,166,
-172,108, 68,251,205,227,219, 20, 78, 12,238,135, 18,210, 26,217, 28, 90, 10,148,238,169,196,132,193,125,106,100,111,184,114, 6,
-156,192, 43,254, 24, 82, 78, 63,229,135,151,238,156,117,202,153, 14, 33,139,221,178, 73,204, 94,113,203, 44,219,102, 63, 97,185,
-221,239, 23,180, 79,126,253, 30, 52,139, 67, 81,224,184,153,177, 96,253,195, 40, 76,123,122,124, 53,128, 8, 39,126,216,246,219,
- 84,251,187, 31, 35, 24, 72,138, 64,208,128,146,224, 74,185,192, 1,136,212,199, 2,122, 61, 53, 44,219,184, 55, 37, 79, 94, 43,
-245, 84, 77,140,113,158, 77,144,205,199,226,218,236, 89, 52,185,153,157,162,225,120,181,189, 10,201, 46, 75,178,236,184,252,151,
-225,203,153, 20, 33,178,167,227,198,122, 51,236, 56,242, 1, 72, 91, 43, 4,213, 10, 2, 60,206,146,220,144, 35,113, 8, 75, 64,
- 4,146, 2,229,211,139, 78, 89, 16, 71, 10,173,116,110,121, 8, 15,203,244,210,173,235,203,247, 38, 73,187,199,197, 88,226,190,
- 79, 25, 54, 69,143,195,191,196,179, 55,130,221, 62,246,149,102,158,166,226,125,225, 26, 48,138, 95,122, 59,147, 28, 12, 37,212,
- 36,167,196, 82, 16, 21,184,208,206, 22,151,176, 22, 1, 11,201, 69, 77, 46, 82, 9, 69, 68, 84, 82, 49,162,137,146, 56,133,105,
-234,192,211,101,158, 45,204, 44,110,225,248, 84,236,115, 43, 77,254,252,253,213,200,150,249,118, 73, 76,220, 37,192,198, 93,152,
-221,193, 73,101, 72, 14, 47,220, 23, 25,104,144, 66,126,140,178,226, 85, 66,133, 0,212,166, 89,222,239,217,144, 1,114, 4, 42,
-116,247, 74,116,161, 15, 94,130, 58,168,165, 5, 79,116,175,203,234, 52,254,196,248, 83, 42,207, 93,181,205,177,226, 25,115,182,
-156,134,239, 27,140,151,156,194,198,229,200,199,196,217, 44, 69, 68, 59,113,156,219, 42,140, 36,151, 17,181, 45,135, 55,157,224,
- 83, 85,119,194,230,198, 19,113, 20, 79,116,122,151, 6,146, 11,220, 64, 64,122, 93,169, 64,204,240,167, 33,133,247, 26, 64, 5,
- 50,234,163,240,184,119,147, 68,143,188,209,195,220,149, 49,188,127, 30,155,145,228, 49, 85,129, 93, 86,197,155, 27,152,215,135,
-108,153, 44,136,167,221,154,125, 16,230, 22,157,112, 4,148, 36, 45, 36,138,157, 91,203,180, 93,220, 49, 76,111, 70,150,184,247,
- 93,128,207, 28, 50, 35,143,109, 52, 45,228,140,147,164,245,225,194,163, 77,214,111,126, 55, 31,119, 96,214,208, 47,197,157,200,
-241, 27, 64,144, 84, 0, 85,122,111, 4,215,167, 96,167,103, 93, 82,252, 76,218, 58,252, 68,246,212,125, 61,229, 92, 22,168, 93,
-206,235,122,200,242, 8,153, 42,208,181, 91, 44,158,237,105, 66,168,106,169,109,164,149, 40,145,208,251,106, 39, 93,113,250, 32,
- 96,141,167,188, 71,177,105,173, 13,137,154, 56,156,105,237,200,110,219,237, 16,177,188, 66, 58, 16,221,194,249, 75,182, 71, 53,
-105,162,219,133, 33, 21,105,165,117,168,217,213, 68,122, 72,209, 88, 48,198,204,242, 52,196, 44, 46,212,254,140,170, 32,147, 12,
-221, 97,202,131, 22, 63,211,175,221,163,198, 90, 5, 16,222,197, 3,185, 70,189, 2, 91, 73, 86,164,198, 94,233, 91,164,224,165,
-123, 18,167, 70, 52,149, 61, 20,130,108, 74,152,228,139,163,137,164, 88, 17,132, 86,187, 82, 60, 6,155, 45,164, 39,175,106,136,
-233,240,234, 77,230,224, 32, 33,173,205,206, 65,219,250, 6, 52,251, 74,247,125, 38,155, 54, 12,121, 50,110, 47,120,205,132, 52,
-191,122,113, 30,205,106,160,146,149, 40,117,232, 16,142,131, 82,110, 46, 60, 40,201, 25,129, 66,105, 74, 0, 43,123,117,177, 89,
- 70, 86,201, 83,169,143, 2, 69,225, 54,232,235, 80,163,113,161, 70, 5, 42,112,245,167,178,219, 93, 53, 30,204,252, 60, 45,103,
-218, 56,158,211,250, 77, 34,121,124, 22,145,197, 22,153, 89, 44,100,100, 23, 75,194,237,238, 45,168,137,151, 36, 67, 37, 70,174,
-193, 83,165,176, 65,220, 63,101,186,157,104,225,156, 64,196, 57,212,168,100,240, 26, 3,179,250,105,196, 44, 81,147, 22, 21,170,
- 33,121, 33, 48,209, 62,116,197, 44, 37,111,137, 40, 65, 67,105,161,246,122, 40,212,252, 0,118,106,183,226,220,249,117,187,221,
- 93, 32,122,212,154,143,241, 10,167,138,212,105,112,135, 61,213, 27,125,189,162,196, 56,237, 42, 67,202, 30,202, 92, 89, 4, 80,
- 10,212,236, 21,248,245, 48,200, 1, 14,118,117, 46, 57, 64, 10,236,205,107, 41,181,197, 31,119,199,109, 65, 12, 67,142,135, 86,
-174,139,125,199, 84, 10,146, 13,123, 61,145,211, 82, 99,153, 24,122,233, 33,250,251,199,166,142, 91, 32,190, 19, 14, 60,128, 84,
-251,242, 12,233, 68,116,216,220,148, 13,189, 61, 27, 72, 26,105,183, 2, 61, 78,234, 32, 83, 82, 73,137, 35,161, 5, 56, 37, 88,
- 4,187, 80, 97,214,199,142,211,247,152,228, 30,170,241,208,235, 43,104, 14,189,192,157, 70,130,227,198, 49,233,201, 62,117,164,
-137,139, 61,149,179, 56,252, 91,150, 35,101,130, 74,125,241,121, 55,186,146,123, 82,195,236, 70, 81, 29,190,150,129,213,132, 83,
-152,228,111, 69, 23,137,165,228,252,184,210,125,240,152, 23,187,211, 54,207,110, 43,215, 38,227, 4, 39,166,245,178,202,215, 94,
-222,192,227,244,213,132,147,135,187, 81, 57, 31,106, 83,145, 15,217,161,226, 41, 2, 12, 85,198,185, 70, 46, 52,164, 62,236,117,
-183, 17,183, 19, 66,149, 60,232,108,186, 65,236,220, 74,200,212, 89, 39,241,120,211,138, 52, 32,225, 79,248,207, 74,240, 98,135,
-137, 16,109,178,223, 74, 91, 6,173,189, 39,121, 85,105, 94,229,245, 63, 22,171,163,107, 99, 38, 65,153,255, 0, 10, 15,147, 64,
- 13, 29, 21, 43,224,242,167, 90, 16,171,138,157, 91, 73,113, 66, 36,117, 41,116, 66,214,170,168,244,236,162, 19, 85,124, 90,139,
- 60, 45,157,154,141, 71,150,232,146,128,246,211, 89, 25, 91,236,170, 67,110, 59, 57,231,221,155,224,194, 91,114, 66, 26, 66,208,
-149,158,181, 74,138,128, 10, 36,210,157,218,128,253,181,174, 58,184, 39,203,230,169,204,184,120, 3, 28,169,121,156,194,249, 22,
- 83,202,102,100,212, 51, 58,218,244, 81, 41,167,200, 64,125,180,109, 9, 52, 35,111,210, 13,128,142,253, 54,253,186, 34,142, 32,
- 97,138,124,186,168,155,114, 92, 16,208,184,206,123,117,137,122,154,182,110, 82, 78,201,176,208, 22,151,138, 55, 55,111,101,207,
- 13, 38,132,116, 74,220, 81,210,167,176,140, 52,224, 48, 95,105,168,119, 76,241, 67, 87,130,252,255, 0,162,148,166,114,117,229,
-203, 85,218,211, 9,249,205, 93,239, 14,198,138,137, 1, 95, 66,197,173,134,203,142, 56, 85,184, 41, 38, 61, 84,164,247, 18, 70,
-161, 91,237, 17, 61,204,123,128, 45,106,146, 58, 72,192, 15, 79,215, 86, 31, 16,230,166, 56, 37, 89,110, 48,228, 88,184, 46, 61,
-100,181, 55, 2,211, 46,229, 30,193,112,188,180,252,182,252,111,187,131,142,184,136,173,167,168, 86,245,165, 41,241, 8, 34,160,
-144,106, 13, 53, 69,189,108,255, 0, 28,237, 79,115,128,113,200,113, 63, 44,170,162,238, 71, 94,185, 28,226, 24, 6, 67,137,166,
-181,215,144,178,172,134, 82,110, 87,117, 91,221, 93,192, 92, 34,197, 74,109,209,212,166,159,113,180,208,135, 22,133,184, 3, 73,
-117, 53,162,189, 90, 77,182,215, 29,180, 90, 88,184, 20,196,156,122,106,124, 30, 28, 35,186,190,179, 77,123,182,124,109,217, 4,
-168,177,165, 59,247, 53,147,220, 26, 82,210,191,101,196, 91,234,218, 91, 0, 80,109,124,184,178,175, 85, 53, 34, 77,189,179, 18,
- 83,129, 3,180,230,106,218, 27,178,214,128,184,147,243, 85,167,107,150, 92,152,136, 67,126,197, 66,110, 76,116,163,199,219,254,
-162,184, 80,212,162,170,170,167,194, 67, 74,233,233, 93, 53,144,110,205,224, 68,226, 70,106, 87,173, 72, 9,233, 62,193, 83, 13,
-232, 35, 14,207,152,125, 20,230,182,242,100,233,247,203,140,169,115,139, 48, 30,187, 4,218,194,156, 10, 84,120,240,148,134, 98,
- 32,247, 5, 45,229, 40,154, 15,154, 62, 74,179,182, 54, 54, 6, 53,170, 88, 26, 79, 89, 42, 79,179,219, 75, 23,154,138,174,127,
- 71,233,164,120,114, 26,153, 6, 85,230,209, 40, 49, 13,153, 49,241,251,150,213, 4,181,247,108,181, 72, 15,165, 52, 80, 35,196,
-136,209,104,237,235,212,245, 4,131,171,231, 66,232, 97,108, 47, 10, 11,181,143,214, 0,103,254,236,105,231, 95, 0, 1, 29,158,
-191,209, 66, 99,185,213,210,254,213,149,171,147,226, 93,186,213, 54,231, 46, 68, 45,137, 75, 82,126,142,168, 73,108, 81, 33,180,
-169,194,162,218, 69, 42, 18, 13,105,168,167,110,100, 78,112, 24, 23, 1,143, 71,233,224,189,102,163,178,255, 0, 81, 0,244,208,
-147,115,168,247,135, 49,235,155, 76, 66,143,105,199,161,200, 75,112, 34,165, 11,118, 81,149, 85,185, 77,221,129, 68, 16,106,123,
- 43,235,212,193,103,240, 80,201, 3,151, 92,142, 14,212,114,195, 46,218,119,227,199,116, 97, 68,177,124,238, 13,213,115, 99,176,
-219,232,183,184,171,130,231, 49, 20, 37,137,211,152,182,130,143, 13,183,254,112,223, 32, 37, 64,164, 0,144,160,161, 85, 10,138,
-201,246,167,147,168,145,134, 75,146,230, 9, 31, 44, 71, 69, 25,220, 88,218, 87,153,201,239,194,196,239,201,180, 57, 26, 37,238,
-225, 58,202,101, 63, 17,177,224,218, 45,171, 66,252, 24,241,168, 70,193, 26, 38,212, 71, 64,249,181, 83,159, 61, 85, 17,134,211,
- 27,230,140,188,234, 29,236, 14,101, 51,113,237, 57,250, 6, 66,144,237,223, 67, 73,111,162,147,239,183,230, 95,180, 54,234,100,
- 36,183,102,184, 90, 46,119,103, 67,117,126,108,219,123,177,154, 68,116,146,163,236, 53, 66, 84,158,206,162,163,175, 71, 33,181,
-124,108,115,193,239, 63, 80,104,224, 3,147, 30,223,170,163, 63,113, 15, 32, 84,127,150,223, 83,144, 70,201,221,240,211, 37,119,
-204,130,210,245,165,162,208, 8, 68, 88,110, 23,149, 30,149, 52, 47, 60,182,135, 78,212,182,173, 89,109, 22,255, 0, 15,224,183,
- 32,192,229,235,193, 1,245, 47,174,144,251,241, 35,143, 95,205, 70, 45,153,116,121,146,154, 23, 71, 11,115, 39,219,237,169,140,
-219,125,166, 66,150,136,232, 80, 77,107, 86,155,121, 69, 62,178,163,167,188, 29, 1,197,188, 63,196,250,211, 26,104,222, 23, 52,
-175, 77, 9,153,226, 22, 11,138,102,204,129, 17,180,218,109, 55,149, 53,225, 14,187, 30,148,250,119, 54, 64, 81,169,241,118,162,
-135,182,135, 74,131,121,150, 41, 92,215, 59, 18,209,234, 68, 7,212, 9, 53, 8,161,113,119, 14, 20,132,254, 25,134,181,113,137,
- 31,193,118,116,232, 19, 97, 57, 37, 78, 43,127,132, 27, 71,138,224, 34,189,119, 41, 8,233,233, 62,154,233,231,239, 18,187,188,
-226,141, 63,165, 62,127,101, 48, 0, 10, 70, 84,209,201,120,209,171,140, 43, 21,193,150, 22,151, 97, 67, 98,124,196,238, 5, 79,
- 72,191, 74, 91,168, 33, 21, 21, 46,161,154,159, 66, 40,174,253, 73,135,152, 5,179,196, 45,235, 61,154, 80, 99,233, 52,235,116,
-198,213, 52,212,200,184,242,211,145, 92, 45,240, 94,134,195,150,184, 95,122, 46,123,173, 69, 87,141,247,211,236,190,252, 88, 41,
-146, 22,149, 54,133,132,178,183, 41,219,184, 16, 65, 78,180, 28,167,206,247, 92,191, 47,142, 36, 46, 99,152, 86, 39, 98,194, 10,
- 2,253, 63,230, 25, 3,212,133, 65, 74,121,215,140,108, 38, 16,208,186,135,127,136,195, 46,202,144, 44, 56, 2,109,246,152, 73,
-101,113,200,148,136,104, 50,149,185, 73,134,130,226,156,101, 14, 5, 45,100,168, 20,132,154,158,218,122,117,149,220,249,128, 93,
- 63, 81,105,110, 37,218, 87,138,144, 83, 1,128,197, 58,170, 20,172, 87, 2, 14, 11,245, 86,185, 6, 35, 10, 85,237,235, 52,106,
-188,155,101,154, 66, 25,122,148,109, 49, 25, 41,152,247, 93,223, 57,107,115,182,157, 67,116, 29,186, 84, 59,187,228,135,196,118,
- 1, 80, 15, 74,124,187,106, 41,143, 18,157,190,159,240,165, 21,113,212, 90, 53,121,153, 9, 46, 71, 99,107,142,173, 72, 9, 13,
- 59,118,247,185, 12,181, 78,210,165, 54,201,233,221, 78,189,186, 18,239, 5,160,198, 79,125,195, 87,177,173,249,200,246,209,178,
- 28, 17,112,202,153,217,111, 14,200,185,102, 18,238,214, 24,130, 60,104,240,230,221,152,157, 66,217,102,114,131, 33, 78, 36,131,
- 81,238,245, 64, 52,239, 87, 77, 73,179,223, 62, 18, 22, 55, 81, 80,229, 94, 61, 94,220,125, 84,251, 37,108, 77,160,111,220, 79,
- 50,219, 6, 59,235,142,191,124,200, 78, 48,167, 24, 82,106,239,133, 20, 38, 91,202,235,215,219,149,177,144, 63,132,233,193,204,
- 2,103,150,175,186, 10,158,212,255, 0, 26, 33, 56,203,128,167,109,199,142,238, 81,249, 10, 91,229,128, 27, 86, 64,197,202, 42,
- 84, 40,218,152,113,189,205,164,145, 80, 54,180,218,170, 79, 64, 59,117,158,219,183, 85,177,110,175,120,198,135,183,141, 34, 89,
-218,224,230,142, 43, 78,219, 13,181,167,238, 55, 88,247, 72,169,102, 53,234,230,212,246,101, 42,158, 24,131,140, 51,115, 45,198,
- 2,167,106, 86,252,230,130,136,236, 32, 10, 86,154, 63,136, 49,143,217,149, 33, 23,210, 26, 9,246,122,105,185, 30,177,128, 56,
- 82, 20, 44, 2,211, 46, 77,211, 36,188,161,182, 31,114,195,127,178,218,163, 38,137, 76, 56,150,216, 46, 9, 10, 77, 77,106,164,
- 68,113, 36,247,149,215,183, 78,217,111, 18, 91, 49,208, 52,169, 4, 41,237, 58,191,249, 15, 69, 57, 36,136, 16,113, 31, 77, 2,
-229,138,200,151,114, 87,156,113,201, 33,120,140,153,209,160,168,237,138,212, 71, 93,101,150, 91, 74,107, 66, 73,118,164,159, 71,
-193,168,247, 27,132,242,152,144, 99,226,247,143,251, 92, 79,213,233,166, 33,106, 55,163,235, 81, 79, 56,182,171,101,167, 12, 22,
-203,116, 20, 34,232,239,222,104,158,242,254,185,105,142,150,165,175,165,123, 12,166,169,240, 80,119,106,182, 75,185,159,118,255,
- 0, 17,202,192, 35, 65,192, 19,172,124,201, 65,200,230, 47, 95,213, 78, 28, 98,230,244, 8,176, 93,176, 74, 92, 59,165,166, 68,
-152,145,231, 48,178,204,168,238, 93, 74, 82, 22,218,210,160,166,212, 86, 74,234, 13, 65,161, 7, 78,204,215, 40,123,186, 99, 61,
-136, 75,189,134,144, 29,164,168,235,249,171,161, 92,153,231,242,205,146,218,178,116, 97, 60,119,116,196,115,107,174, 49, 5,238,
- 41,202, 45,230, 36, 55,184,243,147,185, 78,234, 47, 28,207,119,111,221,212, 20,132,229, 15,248,214,155,127,135,213, 48,153,142,
- 22,134,200, 40, 71, 67,186,230,214, 22, 76, 24,210,215,104, 86, 16,157,215,189, 93, 41,255, 0,113,192,127,164, 12,178,171, 95,
-230, 77,112, 40, 16,240,234, 39, 23, 31, 78, 67,170,164,158, 71,243,179,103,157, 7,146,165,113, 87, 31,207,227,251,229,163, 44,
-179,216, 56, 34,239, 11,221,163, 61,198,119, 30, 67,188, 53,155,114, 44,132,173,151, 10,222,251,235, 41,128,204,107, 97, 31, 87,
- 1, 78, 50,173,181, 9,213, 76,188,253, 21,202, 24, 24, 88,247, 71,174, 51,135,115, 83,153, 36,171,214, 92,129,157, 12, 80,105,
-185,183,118,141, 65,129, 8, 33, 58,148,171,189,163, 14,170,124,114,255, 0,155, 94, 27,185, 59,203, 56, 11,252,117,153, 96,248,
- 37,213,236,175, 26,227, 85, 98, 86,235, 85,214,102, 31,199, 89, 83,143, 95, 50, 43,114,154,145, 54, 27,107, 23, 78, 65,177,219,
-223, 97, 72,119,216,137, 50,226, 42, 86, 67,111,196,119, 56, 89,239,208, 73,108,198,190, 54,160, 12,210,133,204,105, 13,149,205,
-196,140,228, 12,236,105,127, 28, 11,147,110,172, 46, 61,210, 1, 24,101,128, 42, 79,173,192,122, 22,171,222, 33,230,143,137, 49,
- 11,126, 25,155,184,121, 70,126, 75, 3,129,120,211,129,239,248, 44,140,118,221, 27, 14,106, 46, 7,145,219, 47, 47, 93,205,192,
-100, 46,191, 49,216,238, 66,150,171,124, 53,219,217,255, 0, 89, 40,121, 79,160, 54, 91,118,206,195,127,130, 29, 5,186,202, 70,
-214, 22,160,210,141, 32,234, 7, 81, 37, 16,105, 26, 70, 56,174, 8, 91,110,228,214,244,146, 26, 1, 8, 19, 53, 37, 87, 30,172,
- 7,109, 91,174, 58,243, 47,198,209,241,140, 67,204, 28,187,131,246, 73, 88,118,105,196,217, 38, 77,103,185,223,177,235,164,254,
- 67,195, 56,219,152, 21,150, 68,177,216,109, 86,252,238,108,187, 93,234, 61,150, 98,100, 72, 84,235, 43, 72, 33,137, 1, 79, 53,
-239, 40,118, 93,249,223,225,138, 38, 93,149, 86,190, 50, 91,221, 37,205,100,250,131, 90, 4,152, 56, 3,168,171, 64, 64,113, 10,
- 53, 76, 23,204,106, 61, 81, 8, 60, 49, 1,234,128,106,205, 58, 71,167, 28,105,197,147,204, 23,151,140, 23,128,238,254, 94,177,
-124,199,155, 77,146,205,112,185,114, 20, 62,121,184,226, 54,139,223, 33,196,204,114, 75,222, 63, 41, 86, 24,214, 41, 57, 74,224,
-166,219, 29,171,100,135,146,243,119, 68,148,201,145, 33,105, 96,133, 41, 78, 80,221,111,144,238, 86,223,203,238,154,247,177,224,
-227,160, 14, 45,238,232, 18,123,168,213, 7, 89, 58,156, 84,112,168,142,221, 34, 45,240,187,200,120,166, 60, 48, 69,203,211,153,
-202,157, 94, 99, 60,248,113, 63, 33,115,207, 3,243, 37,181,206,108,198,223,226,126, 87,151, 38,203,198,240,240,251, 45,246,211,
-156, 96, 35, 51, 70, 89, 50,229, 42, 81,203,109,141,217,231, 59, 1,213,199,118, 50, 99,203, 67,178, 24,105,192,242, 80,186, 71,
-179,134,254,199,112,159,226,228, 50,177,145,144,237, 40, 59,192, 74,231,140,157,129, 37,195, 80, 66, 14,145,222,199, 0,221,206,
- 57, 94, 37, 87, 0, 14, 72, 49,239, 19,211,129, 43,142,121,103, 65,102, 94, 98,184,251,153,113, 53,219, 50,123,183, 42,112,150,
- 89,156,229,252, 96,130,190, 32,194, 45, 87,252, 63, 31, 99,203,239,223,126,224,229,162, 29,199, 41,180,201,181,153,176,175,145,
- 82,235, 41,144,230,201, 81, 29,150,151, 20,185, 42, 13,214, 77,204,182, 19, 54, 64,232,222,199, 63, 71,184, 20, 0,194,253, 41,
-251, 70,166, 14, 11,195, 82,187, 18,228, 13, 63,118,138,102, 59, 86,160,112,200,116, 42, 38, 35,135,183, 26,148,173,222,112,120,
-174, 95, 32,158,108,203, 49,206, 76,198,242,204, 71, 25,243, 21,131, 68,194,241,155, 29,163, 32,179, 57,100,229, 44,211, 60,204,
- 97, 92,228, 93,229, 94,237, 15,182,244, 88,217,202,217,154,210, 45,219, 93, 83, 41,125,181, 39,113, 97, 17, 29,205,214, 87, 91,
-156, 87, 18, 54, 86,150,199, 35, 3, 67, 90, 90,124, 71,186, 77, 69,250,129, 81,171, 73, 26, 51, 4,175,121, 42, 67,119,136,100,
-211, 33, 4, 20, 56, 4, 57,147,197, 71, 79, 69, 85,151,124,208, 99,215,110, 2,243, 27,132,202,123,144, 63,188,220,141,151,121,
-142,188,217,175,115, 81, 13,118,200,246, 94,108,203, 56, 23, 51,135, 10, 76,143,189, 85, 45,181, 67,183,113,133,246, 52,198,218,
-105,104, 15,201,103,105,113, 46, 72, 91, 50,238,249,166, 15,134,146, 29, 47, 47,148,201,167, 47,117,207,128,227,142, 72,199, 46,
-126,243,115, 82,140,191,112, 97,141,205, 66,164,185, 61, 37,135, 30,221, 39,214, 58,210,119, 62,104, 56,139, 42,198,249, 39,148,
- 57, 88,102,118,215, 39,230, 83, 48,222, 14,184, 99,114,236, 23,174,111,181,226, 92,235,142, 64,179,114,116,167, 44,110,222, 83,
- 70,146,197,137,182,109,234,151, 37,166,212,237,210, 66,219,115,127,142,131, 97,117,184, 91,220, 67, 35,229, 46,110,167, 22,176,
-141, 37,224, 72,208,217,157,165,120, 6,144, 20,162,189,199,166,158, 23,209,189,165,206,226,228, 25, 42, 17,222,193,114,195,219,
- 77,206, 30,243, 99,199, 28, 35,200, 28, 53,145,223, 71, 42, 93,115, 30, 40,226,204, 95,133,238,124,119, 96,199,237,206,241,181,
-254, 53,202,250,237,226,227,124,141, 61,251,252,121, 5,245,166,122,159,102, 2,173,161, 11,184,161,169, 38, 98, 16,173,173,195,
-131,152,109, 44, 31, 12,242,234, 72,226, 32,181, 6,157, 33,225,218,151, 82,168, 24,134,233,247,194,234, 20,139,125,197,145, 22,
-187, 21, 29,212,225,154,174,125, 28, 19, 62, 52,227,242,219,156, 66,186,240, 55, 51,221,178,188,171,238, 59,244,110, 72,243, 95,
-153, 97, 60,131,151,223,237, 47,217, 45,139,230,124, 29, 56,246, 64,114, 11,115,185,165,162,245,117, 93,192, 71,140,205,188, 53,
-110,150, 4,165,175,195, 68,181, 45,232,171,151,181,238, 81,220,219,147, 35,180,185,100,120, 46, 45, 64, 37,141, 8,115,124, 64,
-226, 72, 64, 17,174,239, 42,106,197,180, 34,187, 99,218, 84,227,222, 32,146, 62,211,113, 81,168, 18,188, 48, 56,244,226, 43,156,
- 13, 96, 8, 66,167, 60,167,158,240, 36, 98,246,169,172,171,198, 59,253,206, 27,147, 25,112,127,165,224, 62,133, 83, 92,176,238,
-131,194, 14,255, 0,247,139,125,160, 85, 33,159, 0, 23,129, 63, 49,170,169,140,127,130,215,246, 47,241,148, 30,223,170,249,195,
-235, 63,135, 91,203,143,252,230,103,251,191, 70,116, 82,123,195,178,145,185, 63,252,107, 51,234,255, 0,150,185,246,159,182,126,
- 94,143, 86,174, 97,203,143,189, 69, 7,187,254,234, 78,198,191,144,220,126,205,245,147,126,175,237,191, 82,223,230,253, 85,211,
-208,126,245,249,251,191, 79, 10,118, 79,123,209,244,211,106,103,242, 70,254,111,219, 79,217,254,163,177, 63, 89,255, 0, 71, 81,
-229,253,236,127,238,207, 60,184,117,253, 20,244, 25, 59,176, 82, 29,143,249,172,238,207,228, 78,255, 0,161,243,127,234,253,127,
-174,154,157,121,251,131,250,195,231,227,244,210,227,203,211, 77,107, 79,217,187,190,166,227,245, 31, 63,234,155,249,159,197,250,
-171,167, 99,253,235, 51,247,199,211,236,164, 59,247,135,229,198,155, 48, 62,196,223,216,126,204, 62,163,253, 23, 63, 35,235,213,
-164,249,113,247,143,209,236,163,155,222,227,157, 31,107,237,202,249,255, 0,203, 45, 93,159, 87,216,215,230,244,250,181, 16,253,
-143,214, 63, 49,166,155,145,237, 52,157, 23,237, 13,125,151,234,110, 95, 59,253, 35,243,189,126,141, 57, 55, 28,248, 81,143, 78,
- 98,144,239, 63,205, 44,223, 98,251, 60, 79,169,236,237, 79,215,250,255, 0, 86,167, 12,184,240,169, 17,123,174,206,140, 15,241,
- 99,191, 85,246,120,191, 55,234,190,177, 31, 55,248,127,119,213,164, 93,126,232,231,145,250,114,162, 31,187, 29,180,246, 87,243,
- 4,125, 87,243,155,207,111,213,253, 83,125,190,191,215, 77, 49,203,222,228,127,168,223,152,210,101,227,232,166,198, 47,219,103,
-236,255, 0, 21, 47,183,255, 0,160, 29,159,171, 86,243,228, 59,105, 82,113,236,166,123,127,205,103,246,255, 0, 53,127,235,190,
-119,206,111,242,248, 41,163,147,135,235, 31,154,164, 59,221, 29,148, 97,255, 0,230, 49,126,111,242,200,159, 85,243,254,115,191,
- 87,249,118,233,177,149, 33,153, 30,223,170,156,127,255, 0,175, 53,217,246,187,159,206,249,255, 0, 90,126,127,241,105,153,242,
-244, 81, 59,247,158,170,150,167,127,135,172,255, 0, 83,246,219,223,217,126,111,212, 53,249,255, 0,115,213, 93, 51, 15,238,153,
-158, 85, 0,123,199,209, 80,235, 63, 62,205,217,246,251,135,111,206,253,142,223,226,244,122,180,236,153,122, 42,209,217, 59,176,
- 83,238, 55,242, 43,127,212,253,130, 71,250, 95,110,127,231,255, 0, 31,167,215,168, 82,126,241,190,159,154,163,253,163,219,244,
- 10,102, 98,191, 58,231,245, 31,109,255, 0,173,251,111,236,252,207,215,167, 47, 56,126,181, 73,184,200,118, 82,155,223,111, 87,
-214,127, 36,119,230,124,254,200,255, 0,159,247,189, 90,141,105,251,191,247, 59,231, 52,163, 79,196,125,180,127, 49,255, 0, 11,
- 90, 62,175,179,230,167,255, 0, 55,211,235,211,119,249,179, 44,248,250,114,168, 71,143,105,169, 48,127, 40,195, 62,207,245,151,
-111,159,243,254,190, 55,111,241,254,247,171, 85,211,253,175,163,179,229,233,164, 59, 35,159,200, 83, 11, 35,250,155,175,242,174,
-219, 79,213,125,127,106,254,179,248,180,184,242, 29,166,166,219,251,205,247,184,212,144, 62,211, 63,237,159, 99,188,253,159,183,
-230, 53,249,191,232,237,213,109,247,254, 44,121,123,205,249,248,245,212,136,179, 25,211,157, 63,202,154,254,101,246,143,255, 0,
- 93,243,213,217,255, 0,121,251,191, 30,170, 96,253,244,190,238,109,249,135,178,165, 51, 33,217,244,212,131,128,255, 0,242,185,
-207,174,254,105, 27,253, 15,169,155,245,255, 0,197,255, 0, 74,186,141,185,254,253,249,228,207,156,229,213,211, 71, 46, 99,183,
-232,162, 22, 63,229,206,125,167,249, 94, 79,252,183,231,125, 81,250,207, 95,167,213,183, 77, 93,123,255, 0,238,103,253, 84,196,
-126,255, 0,163,232,164,184,223,225,119,126,103,217,174, 31, 85,255, 0,240,238,253, 71,240,254,239,199,167, 36,253,243,115,205,
-191, 61, 31, 17,217, 73,248,103,219, 32,127, 49,255, 0, 4,229, 31,203,251, 62,107,189,159,197,251,254,173, 72,147, 39,229,239,
- 12,254, 94,170,105,217,158,223,163,228,148, 70, 23,205,200,127,154,255, 0,138, 45,125,159,103,251, 60, 62,223,250, 30,173, 70,
- 62,252,121,123,167,183, 51,242, 61,105, 77,125,150,246, 83,202, 87,248, 54,247,246,174,219,247,111,215,125,186,213,243,255, 0,
-143,247,189, 90, 97,222,244,125,163,179,221,119,179,163,173, 40, 71,251,211, 73, 78,125,153,175,173,251,117,135,230,253, 95,217,
- 39,125, 87,253,239,163, 82,225,200,252,186, 61,148,136,114,244,210, 13,175,252,123,140,124,239,153,106,251, 71,212,253,182, 63,
-229,240, 83, 68,239,252,119,124,184, 83,199,220,119,111,209, 86, 23, 30,255, 0, 12,223,126,163,255, 0,155, 48,254,209,243, 63,
-251,119,218,127,232,127,222,109,214,107,120,255, 0,200, 31,253, 47,203, 60,134, 93,125, 29, 75, 78,143,116,250, 62, 93,148,210,
-198, 62,213,153,125,151,235,220,251, 95,243,111,170,153,243,127,233,122,246,105, 91,191,238,225,207,223,110, 89,102,223,103,233,
-168,252, 41,111, 38,254,105, 47,237, 63, 84,143,177,253,135,249,108, 47,169,255, 0,234,191,238,233,169, 27,103,251, 56,123,222,
-247,188,125,238,175,165,106, 4,156, 61,239, 77, 71,182,111,240,197,239,249,183,248,226,193,246,223,173,251, 51,159, 93,252, 94,
-143,251,189, 91,223,126,253,159,186,253,203,189,222,209,151, 87,211, 73,245,231, 78, 6,126,193,106,249,221,182,127,155,246, 95,
-180, 68,250,207,227,253,239, 86,168,167,204,255, 0,187,183, 39, 84,216,179,227,157, 28,137,254, 38,201, 62,103,248,118, 47,206,
-250,207,179, 35,183,248, 63,237,125, 91,245, 60,126,225,189,167,231,249,233,161,147,187,106, 64,187,255, 0,132,255, 0,251,111,
-248,204,252,255, 0,157,246, 57,191, 91,255, 0,212,255, 0, 13, 53, 75,117,255, 0,154,255, 0,254,184,255, 0,235,225,213,211,
-215, 75, 62,224,165,123, 15,216, 37,125,103,248, 87, 39,251,103,205,236,253,175, 95,167,248,182,104,174,253,211,255, 0,216,220,
-187, 91,242,236, 90,134,114, 30,159,166,136,103,191,227, 92,123,237, 63,205,109, 61,191,203,126,190, 79,205,254, 31,251, 63, 94,
-150,207,114,111,212, 61,190,232,249,122,168,155,145,249,116, 82,133,179,237,153,175,206,255, 0, 11, 69,254, 97,246,158,214,254,
-171,248,191,123,248,107,166, 31,238, 69,250,220, 50,255, 0, 10,100,102, 61, 52,203,189,124,245,118,125, 92,223,178,118,253,161,
-175,153,252, 63,246,190,189,154,177,176,253,217,244,118,240,207,232,167,248, 83, 82,243,246, 72,255, 0,105,254, 75,200, 93,189,
-159,108,157,243,191,139,254,211,248,107,164,217,254,246,111,215,111,253, 12,249, 10,124,230,222,193,243,210,107,159,107,185,125,
-159,252, 21,107,250,206,207,181, 68,249,223,247,127,175, 83,143,187,254,255, 0,160,123,105, 28, 6,121,211,157, 95,111,111,235,
-126,117,251,224,249,206,125,102,160, 31,223, 77,217, 31,204,126, 93,180,137, 63,116,223, 79,209, 90,226, 95,104,191,252,207,241,
- 22, 63,243,254,175,176,252,207,225,255, 0,180,248,180,245,239,184, 51,247, 79,207,242, 79, 77, 71,251, 34,178,203,246,188,119,
-235, 62,177, 31,106,237,251,106,190,119,175,247,254, 61, 51,115,155,187, 15,205, 65,156,123, 69, 89, 54,127,147,207,251, 55,255,
- 0, 49,177,239,254,151,234,209,249,253, 30,186,235, 35, 7,239,162,207,255, 0, 29,221,153,183,229,217, 80, 63,205,219,255, 0,
- 42,115,242,143,242,105,159,103,251, 62, 53,245,191,110,254, 97,114,255, 0,205,255, 0,181,255, 0,201,213, 23, 46,127,255, 0,
- 69,222,246,114,246,123,144,252,135,166,172,174,125,200,255, 0, 85,191,252,234,166,228,191, 83,156,124,239,241, 52, 95,179,252,
-207,173,147,243, 63,135,245,215, 93, 67, 98,253,204, 95,253, 67, 60,242, 25,253, 52, 67,222, 53, 31, 91,191,148,175,237,127,107,
-143,245, 29,159, 49,254,223,227,253, 90,153, 31,188, 61, 57,211,111,247,253, 31, 85, 21,119,249, 12,111,175,249,145,123,126,171,
-235,100,125,119,241,126,189, 78,147,247,199, 44,143,200, 81,125,186, 90,187,127,138,240, 95,157,252,191,254,183,179,181,127,155,
-247,180,150,254,229,253,159,252,169,159,176,106,195, 88,126,205,131,253,127,248,214,231,246,207,183,126,215,213,255, 0, 23,253,
-167,199,172,181,199,239,228,255, 0,235, 29,153,140,186,254,138, 99,236,191,179,232,164,216,255, 0,110,205,255, 0,153,255, 0,
-138, 34,127, 60,250,142,203,159,111,253,199,253,159,240,237,213,126,233,144,253, 73, 61,220,253,214,229,215, 82,160,247, 89,151,
- 14,206, 53, 17,217,255, 0,194, 19,190,179,237,255, 0,239, 31,177,125,145,239,159,252,127,246,159,195, 93,104, 63,254, 76,121,
-126,237,223, 59, 50,234,255, 0,244,211,135, 51,218, 43, 31,251, 25,249,223,204,112,175,179,127, 55,250,169, 31, 55,215,233,254,
- 61,154,155, 62,126,131,217,159,203,219, 81,190,215, 30, 63, 61, 59,115,127,254,106, 68,251,111,217,240, 31,171,250,143,170,111,
-183,213,232,245,236,213,125,215,238, 31,151,186,236,251, 71,178,157, 62,233,244,210,143,255, 0,242,187,103,215,255, 0,136,243,
-159,173,237,254,102,223,215,250,189, 31,197,166,174,127,124,127, 81,159, 33,242,202,162,203,239,143,213, 31, 53, 73,138,254, 80,
-207,218,127,193, 50,127,211,254, 94,207,230,214, 96,254,232,127,253,147,217,239,143,109, 3,239, 14,195,255, 0, 72,175,255,217,
-};
+255,216,255,224, 0, 16, 74, 70, 73,
+ 70, 0, 1, 1, 1, 0, 72, 0, 72, 0, 0,255,225, 0, 22, 69,120,105,102, 0, 0, 77, 77, 0, 42, 0, 0, 0, 8, 0, 0, 0,
+ 0, 0, 0,255,219, 0, 67, 0, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 2, 5, 4, 4,
+ 3, 4, 6, 5, 6, 6, 6, 5, 6, 6, 6, 7, 9, 8, 6, 7, 9, 7, 6, 6, 8, 11, 8, 9, 10, 10, 10, 10, 10, 6, 8, 11,
+ 12, 11, 10, 12, 9, 10, 10, 10,255,219, 0, 67, 1, 2, 2, 2, 2, 2, 2, 5, 3, 3, 5, 10, 7, 6, 7, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,255,192, 0, 17, 8, 1, 26, 1,245, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1,
+255,196, 0, 30, 0, 0, 1, 4, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 6, 7, 2, 3, 8, 1, 9, 10,
+255,196, 0, 86, 16, 0, 1, 3, 2, 5, 1, 5, 4, 6, 6, 5, 8, 7, 6, 7, 1, 1, 2, 3, 4, 5, 17, 0, 6, 7, 18, 33,
+ 49, 8, 19, 34, 65, 81, 20, 97,113,129, 9, 21, 35, 50,145,161, 22, 66, 82, 98,177,211,130,148,193,209,240, 23, 24, 36, 51, 85,
+146,147,225, 67, 69, 83,114,162,178,241, 10, 52, 53, 99,115,131, 37, 68,100,116,132,163,210,194,255,196, 0, 28, 1, 0, 1, 5,
+ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8,255,196, 0, 63, 17, 0, 1, 3, 2, 4,
+ 3, 5, 6, 5, 4, 1, 4, 1, 5, 0, 0, 1, 2, 3, 17, 0, 4, 5, 18, 33, 49, 6, 65, 81, 19, 34, 97,113,145, 20,129,161,
+177,193,240, 7, 22, 50,209,225, 21, 35, 66,241, 82, 51, 67, 98,114,162, 37,130,146,178,194,255,218, 0, 12, 3, 1, 0, 2, 17,
+ 3, 17, 0, 63, 0,251,249,133,133,142,108,237, 57, 79,237,181, 43, 82, 28,115, 72,106,197,156,189,220, 32, 66, 76, 7,154, 66,
+130,172, 55,247,155,249, 42,221,123,117, 22,182, 50,177,140, 77,120, 77,167,108,150, 22,241,144, 50,182, 51, 43, 94,113, 35, 79,
+226,181,112,124, 49, 24,181,223, 96,167,219,100, 65, 57,156, 86, 84,242,210, 96,235,175,206,186, 34,174,170,144,165,201, 85, 21,
+ 13, 42, 88, 97,102, 42, 95, 36, 32,185, 99,180, 42,220,218,246,189,188,177,201,249, 7,183, 22,169,105,126,162,203,200, 61,169,
+232,202, 66, 61,160,129, 50, 60, 36,161,113, 1, 60, 89, 40, 0, 58,213,186, 40, 93, 95, 28, 85, 25,255, 0, 94,251, 94,105,157,
+ 96,229,236,221,171, 51, 25,156,145,119, 34,181, 49,151, 86,215,166,240,144,118,147,232,124,190, 88,102,246, 84,237, 87,218, 94,
+ 4,106,149, 90, 12,250,211, 13, 93, 81, 37, 77, 67,109,155, 30,187, 84, 64, 36, 30, 61, 69,241,228,152,207, 29, 95, 98, 87,136,
+ 70, 18,203,232,185,100,153,111, 40, 82, 84, 12, 72,113, 32,200,142, 71,151,153,145,235,184, 39, 1,216, 97,150, 75, 94, 46,245,
+186,237,158, 2, 28,206, 82,164,157, 96,182,162, 0, 51,204,115,242, 16,126,135,101,236,199, 66,205,116,120,249,131, 45, 85,152,
+157, 10, 82, 2,216,147, 25,192,164, 45, 39,204, 17,130, 24,249,229,167, 90,137,218, 19,177,110, 98,105,156,197,151, 37,183, 72,
+150,245,228, 82,230, 27,177, 34,221, 75,107, 23, 9, 93,188,199, 94, 46, 15, 24,237, 28,159,218, 11, 33,231,125, 30,153,173, 20,
+ 23, 94,122, 5, 58,156,252,169,241, 16,145,223,178,166, 91, 46, 56,209, 4,129,190,195,142,108,110, 57,177,190, 61, 7,133,248,
+177,142, 32, 38,217,214,203, 55, 73,253, 77,168, 16,124,196,193, 35,226, 61, 9,243,206, 41,225, 27,142, 29, 2,233,167, 3,214,
+170,253, 46,164,130, 60,149, 18, 1,248, 30, 92,192,158, 97, 98,159,236,109,219,107, 67,123,117,105,171,218,165,161, 85, 26,131,
+144,162,205, 49, 39,197,170, 64, 84,119,227, 62, 16,149,148, 40, 92,165, 92, 45, 60,164,169, 60,245,227, 19, 61,108,214,141, 57,
+236,243,166, 21,109, 99,213,170,233,166,101,234, 35, 41,118,167, 56, 71,113,238,233, 42, 90, 80, 14,198,193, 82,188, 74, 72,224,
+121,252,113,219, 46,218,229,187,159,103, 82, 8, 92,198, 88,214,122, 71, 90,225,219,188,181,118,219,218, 80,176, 91,137,205, 58,
+ 71, 89,233, 82,220, 44, 67,116, 43, 93,116,195,180,150,151, 83, 53,147, 71,115, 25,171,101,234,186, 92, 85, 62,113,142,227, 37,
+192,135, 20,218,188, 14, 37, 42, 77,148,133, 14, 64,189,189, 49, 50,192,150,133,180,178,133,136, 35, 66, 14,224,142, 70,140,219,
+141,186,216, 90, 12,164,137, 4,106, 8, 60,197, 44, 44, 44, 44, 70,167, 75, 11, 11, 20,142,134,118,251,236,253,218, 51, 95,243,
+175,103, 61, 46,155, 84,149, 91,200, 46,169,156,193, 38, 77, 60,179, 25, 47,161,245,178,182,155, 82,142,229,148,173, 10,185,218,
+ 18, 69,172, 77,240,102,237,223,117, 10, 90, 18, 72, 72,146,121, 1, 49,175,190,128,237,203, 12,184,134,214,160, 20,179, 9, 28,
+201, 2,116,247, 85,221,133,133,133,128,209,233, 97, 96, 46,126,207, 57, 87, 76, 50, 69, 99, 82, 51,213, 93,186,125, 22,131, 75,
+126,161, 86,156,234, 73, 75, 17,217,109, 78, 56,178, 18, 9, 54, 74, 73,176, 4,155,112, 13,241,243,173, 95, 79, 78,183,234,149,
+ 66,117,119,178,119,209,187,156,179,174, 80,167, 73, 83,106,174,185, 37,244,185, 35,109,137, 27, 35,198,121, 13,174,220,237, 11,
+113, 67,112,184, 29, 14,141,134, 19,127,137, 37, 74, 97, 50, 19,185, 36, 36, 9,216, 74,136, 19,225, 89,120,134, 51,135, 97,106,
+ 74,110, 23, 10, 84,192, 1, 74, 36, 13,204, 36, 19, 30, 53,244,187, 11, 28,193,244,122,125, 40,154, 57,244,129, 83,234,148, 90,
+ 30, 92,159,149,115,133, 2,198,187,148,170,238, 5,184,210, 9,219,222,180,224, 3,189,108, 47,192, 73, 74, 86,149, 11, 41, 2,
+233, 42,233,252, 86,187,180,185,177,124,178,250, 74, 84, 55, 6,173, 89,222,218,226, 22,233,126,221, 97, 72, 59, 17,247,167,145,
+214,150, 22, 22, 40, 14,217, 95, 72, 78,143,246, 54,204,217, 31, 78,243, 51, 14, 86, 51, 78,125,204, 81, 41,212,154, 12, 41, 41,
+ 67,140,199,122, 66, 89, 92,215,137, 7, 99, 72, 42,176,224,151, 20, 54,167,128,165, 33,173,237,159,187,116, 52,202,115, 40,242,
+ 30, 26,154,149,213,213,189,147, 37,215,212, 18,145,204,248,232, 61, 77, 95,248, 88,228,190,222,159, 73,158,109,236, 95,168,121,
+119, 36,101,126,199,249,207, 81,152,174,208,221,168, 59, 83,203, 72, 89,110, 34,146,239,118, 25, 94,214,151,226, 35,197,212,113,
+138, 50, 71,211,249,169, 16,226,187, 54,111,209,131,170,113,216,142,209,114, 68,135,251,196, 54,210, 0,185, 90,148,168,192, 37,
+ 32,117, 36,219, 26,150,188, 59,140, 94, 48,151,153,108, 20,171,110,242, 7,134,197, 64,214, 77,223, 19, 96,182, 47,169,151,220,
+ 33, 73,223,186,179,241, 9, 34,190,147,225, 99,152,254,141, 79,164, 82,111,210, 41,148,243, 62,123,133,160,245, 28,161, 71,160,
+ 85, 26,129, 14,124,234,171,114, 83, 81,120,183,189,208,141,136, 77,187,187,160, 30,191,124, 99,167, 49,155,121,103,113, 97,114,
+166, 31, 16,180,238, 36, 24,231,202, 69,106, 89, 94,219, 98, 54,169,185,183, 86,100, 43, 99, 4, 79, 46, 96, 26, 88, 88, 88, 88,
+173, 86,169, 97, 97, 97, 97, 82,165,133,133,133,133, 74,150, 22, 22, 22, 21, 42, 88, 88, 88, 88, 84,169, 97, 97, 97, 97, 82,165,
+133,133,133,133, 74,150, 22, 22, 22, 21, 42, 88, 88, 88, 88, 84,169, 97, 97, 97,149, 79, 48,208,104,138, 66,107, 21,168,113, 11,
+151, 45,137, 82, 82,222,224, 58,219,113, 23,194, 0,147,165, 42,123,133,129,145,115,118, 85,157,152, 36,101, 40, 89,154,158,245,
+ 86, 44,116, 63, 42,152,212,214,213, 33,150,149,247, 92, 83, 96,238, 74, 85,228,162, 44,124,176, 79, 10, 8,222,148,205, 44, 44,
+ 13,204,153,175, 43,228,248, 40,170,102,236,199, 79,165,198,114, 66, 24,110, 69, 70, 98, 24,109, 78,172,217, 13,133, 44,128, 84,
+163,192, 79, 83,130, 88, 80, 98,105, 82,194,195, 9,185,143, 47, 83, 37,166,159, 81,175, 66,143, 33, 64, 20, 48,252,164, 33,106,
+191, 2,192,155,158,111,135,248, 80,105, 82,194,194,195, 53,214,232,205, 86, 27,203,174, 85,163, 10,131,209, 87, 37,168, 42,125,
+ 61,242,217, 66,146,149,184, 16, 78,226,132,169,104, 5, 64, 88, 21,164, 30,163, 11, 90, 84,243, 11, 26,165, 74,141, 6, 58,229,
+205,144,134,154,109, 59,156,113,213, 4,165, 32,117, 36,158,152,219,133, 74,150, 22, 22, 22, 21, 42, 88, 88,136,234, 14,175,101,
+ 92,131, 72,147, 85,168, 84, 26,109,136,107, 40,157, 80,145,185, 17, 33, 88, 93, 74,121,219,109, 72, 72, 23, 35,175, 78,151,199,
+ 29,235, 55,210,169, 75, 85,106, 70, 72,208, 44,133,152,179,165, 84, 47,185, 98,187, 38,115,212,202,127,120, 78,213, 56,219, 44,
+148,186,227, 73, 55, 35,113, 4,132,253,238, 65, 39, 98,217,251,146, 67, 98, 98,160,183, 16,216,239, 26,239, 44, 44,112,195,191,
+ 73, 3, 52,218, 36, 74, 87,232,124,234,244,198, 33,182, 38, 85,217,206,143,180,195,238,236, 27,214,223,114,132,238, 69,250, 43,
+128,122,243,123,226,252,236,107,218,150,155,218,106,129, 90,145, 14,159, 46, 59,180, 89,141, 52,234, 36, 45, 46,160, 5,162,246,
+ 75,201, 0, 57,101, 37,105,228, 5, 13,188,222,247,193,158,195,239, 45,218,237, 22,152, 30, 98,160,139,134,150,172,169, 58,213,
+215,133,133,133,138, 84,106,211, 34, 75, 17, 24, 92,137, 79,161,182,219, 73, 82,220, 90,128, 74, 64,228,146, 79, 0, 99,148, 59,
+ 80,246,248, 13,187, 35, 78,116, 14, 79,125, 33, 69, 76,203,204, 13,167,112, 4,241,182, 56,231,113,253,254,159,179,251, 88,159,
+246,238,201, 90,211,158,244,246,159, 67,210,128,227,177, 23, 45, 98,187, 10, 59,193, 14, 62,139, 39,187,228,145,116, 2, 21,185,
+ 62,165, 62,152,142,118, 87,236, 67, 78,200,161,156,235,168,204,162, 85, 86,193, 76,180, 69,209, 31,220,155,245, 62,255, 0,195,
+223,231,252, 66,247, 20,226,216,153,194, 48,212, 22, 90,128, 86,249,232,121, 35,169,229,161,153,255, 0,136,212,250, 15, 14, 49,
+194,184, 70, 22, 49,140, 77, 97,231,100,132, 48, 15, 49,205,206,131,158,162, 35,254, 71, 65,201,218, 81,151,198,120,214,122, 69,
+ 3, 54,173,199, 76,218,176, 76,255, 0,105, 81, 43, 90,174, 74,130,137,230,228,139, 31,142, 56,255, 0,233,156,237,117,218, 45,
+222,217,121,159, 65,105,217,194,179,150, 50,158, 72,121,152, 20, 74, 13, 46, 99,145, 90,117, 29,203,107,246,165,132, 20,247,138,
+112,171,112, 81,224, 39,104, 22,177, 39,189,123, 89,233, 78, 99,208, 13,119,123, 49, 80,210,235, 16,170, 19,149, 82,161,206, 66,
+ 60, 40, 89, 86,245, 54, 15, 75,161, 71,167,236,145,235,129,218,219, 69,250, 63, 59,117,166, 6,100,237,127,164,213, 24, 89,186,
+159, 13, 17,149,152,242,243,171,109, 82, 91, 79, 68,168,182,160, 84, 46, 77,130,146,173,183, 32, 30,113,159,248, 49,197, 60, 57,
+248,119,142, 94,217, 99,201,202,230, 99, 10, 80, 27,105, 26,157, 58,145, 36, 72, 84,138,189,248,221,194, 92, 75,248,145,128, 89,
+ 94,240,250,179, 55,148, 18,132,147,227, 34, 4,158,128,192, 48, 81,173, 81,255, 0, 66,103,104,125, 96,237, 59,166, 26,159,217,
+167, 93,243, 29, 71, 50,229,218, 22, 94, 77, 87, 47,214, 42,239,169,247,105, 50, 70,240, 26, 75,203,186,182,171,110,240,146,120,
+ 8, 93,184, 81,199, 64,246, 85,207, 85, 42, 61, 3, 80,242, 87,126,179, 10,167,145, 42, 78,150,175,225, 14,183, 29, 96, 42,222,
+ 92, 40,252,108, 7,144,192, 24, 57,143,179,135,103,125, 40,168,104, 95, 99, 45, 51,122,131, 75,171,171,255, 0,198,235, 83,148,
+ 76,169,201,181,138, 73, 42, 82,136, 35,195,117, 30, 19,112, 0,185, 56,180,251, 17,246,120,172,231, 60,169,153,243, 28,227,236,
+109, 86,168, 82,169,116,231,221,104,157,161,214,212,130,237,184,184,185, 22, 23,231, 97,245, 24, 39, 16,113, 46, 17,198, 95,139,
+214,151,152, 18, 97,182,181, 90,192,128, 83, 16,102, 61,250,237, 42,210,135,195,124, 47,140,240, 79,224,221,221,150, 62,185,113,
+221, 16,130,100,133, 78,145, 58,244,208,234, 2,117,138,224, 15,161,235,177, 63,104,254,215,250, 57,152,153,200,253,175,115, 30,
+156,101, 90, 93,117, 65,186,126, 88,113, 72,114, 84,229, 50,217, 83,174,148, 56,217, 41, 74, 3, 96, 2, 77,252, 86,219,205,219,
+103,238,214, 93,170,180,243, 78,187, 69,253, 26, 93,165,245, 73,252,244,214, 95,162, 58,105, 25,130,107,138,117,246, 93,141, 50,
+ 49, 35,188, 85,214, 91,113,181, 95,106,201, 40, 80, 0, 30, 78, 58,103, 66,254,133,175,164, 15,177,221, 30,162,158,202,157,188,
+226,209, 36, 85,221,181, 86, 35,148, 43, 69,125, 41, 22, 67,129, 43, 46,237,112, 93, 67,117,175, 98, 57,227, 7,116,243,232, 18,
+204, 81,244,167, 83,164,106,158,189, 26,246,166,106, 76, 18,196,172,219, 58, 26,221, 68, 93,242, 27,144,242,182,169,123,220, 91,
+139, 64,220,178,160,120, 28, 14, 65,250,133,236,115, 7, 93,243,143,188,250, 22,217, 82, 74, 18, 16, 66,146, 66,129, 42, 39, 40,
+ 58,106, 78,164,158,156,171,229, 54, 56,127, 27, 70, 28,211, 12,176,182,221, 9, 88,113, 69,192, 82,164,148,144, 18, 6,114, 53,
+210, 52, 1, 61,121,215, 5, 39,183, 54,182,229,206,207, 90, 39,216,227, 35,231,236,203,149,114,154,233, 11,168,102,137,185, 45,
+ 10, 53, 90,129,122,165, 48, 22,219,218,164,149, 37, 13,160,109, 64, 32, 21,168,149, 95,106,109, 54,166,118,172,213,110,203, 90,
+205,148,117, 27,177,126,122,215,234,245, 37, 50, 66, 51,158, 92,212,202, 59,207, 70,148,214,228,220, 32, 2,164,157,200, 43,231,
+106, 84,130,148,144, 77,200, 29,131, 94,250, 3,107, 3, 69,180,221,122,125,174,168,203,218,171,166,173,186,212, 28,219, 22,158,
+174,226,123, 38, 91,210, 90, 74,218,222, 74, 20,218,158, 85,148, 9,184, 82,129, 4, 16, 5,131,160,125,130,254,145,182, 53,242,
+133,171,157,166,123,114,170,167, 78,160,180, 90, 25,115, 45, 82,219,141, 22,123, 68,130, 80,250, 10, 18,133, 2, 82,155,157,133,
+118, 72,218,164,245, 17,127, 30,192, 75,106, 83, 89, 72,254,230,100,171, 48,206, 73, 48, 99, 33,153,220, 18,161,150,167,111,195,
+188, 68, 29, 66, 93,206, 21,253,188,171, 78, 83,144, 36, 38, 68,151, 19, 25,117, 4, 4,144,174,186,215, 55,233, 94,170,125, 32,
+159, 72,135,109,157,102,236,177, 72,237,139, 91,202, 25, 18,129,153,106, 4,154, 92, 22, 27,154,196, 68, 78,117,166, 34,178,234,
+ 18,135, 16, 54,240,165, 21,155,132, 11,222,248,139,228, 14,210,157,170, 62,138,190,219, 58,165,217,235, 52,107,165,103, 82,168,
+ 20, 44,131, 46,175, 5,140,203, 49,215,146,167,211, 13, 18, 99, 47,106,214,162,217, 10, 86,197,236, 80, 10, 77,207, 22, 22,238,
+158,199, 31, 70,206,101,236,179,219, 63, 86, 59, 77,206,212,136,149,104, 90,145, 85,149, 50, 61, 49,138,114,153, 84, 16,244,199,
+ 36, 4, 21, 21,168, 46,193,123,110, 0,185, 23,247, 96, 22,175,253, 18,163, 88,190,144,170,215,107,172,227,158, 98, 76,202,217,
+143, 43,174,139, 86,202,102, 10,210,234,153, 92, 1, 17,100, 60, 23,199, 23, 80,240,220,113,233,140,177,141, 97, 30,210,235, 10,
+ 9,246,126,200, 64, 8, 2, 86, 2,103, 92,160,206,226, 73,138,214, 56, 22, 53,236,172,190,130,175,105, 14,153, 37,100,195,100,
+170, 52,204, 70, 88,202, 96, 9,174, 79,236, 51,217,199,183,247,210,107,144,170, 61,174, 51,127,210, 21,156,178,180,201,117,103,
+219,161, 64,162, 74,113, 49,153, 91, 74,181,212,211,110,161, 13,160, 43,194, 27, 74,111,180, 92,158,109,142,110,209, 30,211,253,
+160, 59, 20,213, 59, 77,234, 34,179, 11, 47,234, 91,149,198,168, 51,171,236,180,219,136,106,164,244,249, 66, 76,196,141,187, 15,
+ 45, 58, 83,225, 9,220,180,155,113,108,119, 14,157,125, 15,223, 72, 87,101, 41,117,124,129,216,239,183,218,168, 57, 22,175, 53,
+111, 46, 36,202, 86,249, 44, 5,120, 74,146, 44,164, 7,118,128, 55,160,162,251, 71, 75, 12, 57,208, 15,253,159,152,121, 39, 46,
+234,118,159,235, 62,179,171, 49,210,117, 6,158,210, 35, 78, 98, 7,117, 54, 4,166,158, 83,205, 74, 42, 90,214, 22,176,162, 47,
+192, 4, 21, 15,214, 56,211,254,183,131, 32,189,218,188,133,178,162,140,136, 74, 8, 33, 33, 96,144,123,160,108, 54, 36,204,114,
+172,163,128,227,142, 37,142,197,149,161,228, 5,231,113, 78, 2, 10,138, 8, 10, 29,226,119, 59,128, 34,121,242,225, 76,179,170,
+245,186,254,134,171, 82,229,118,132,237, 58,254,175, 63, 29,115, 32, 79,167,199,144,237, 33,111,110, 42,109,189,225,221,229, 4,
+ 88, 21,143, 82,118,216, 88,217,154,167,244,176,253, 35,245,253, 57,209, 26, 6, 88,212,122,158, 82,205,181,119,166,209, 43,170,
+149, 70,101,191,173,100, 34, 76,118,227,202, 90, 94,100,216,148, 60,144,173,160, 2, 66,143,184,116,133, 27,232,173,250, 74,180,
+127, 76,147,160,249, 83,233, 19,129, 69,211,170,122,193,102,107, 84,175,103,157, 17,158,243,126,196,190, 78,246,211,127, 32,232,
+ 22, 54,232,109,139, 63,181,135,209, 31,168,189,164, 51,134,139,103,151,245,253, 15, 78,210,230,154, 77, 82, 93, 94,150, 28,147,
+ 90, 90, 36,180,241,117, 74,109, 72, 74, 20,123,187,125,211,212,122, 97, 59,141, 96, 10,186, 73,119, 34,211, 43, 32,193, 48, 50,
+156,162, 11, 96, 65, 36,119,117,130, 1,158,116,153,192,120,137, 54,139, 12,246,141,175, 42, 1, 18,148,230, 57,129, 81, 4, 56,
+162, 72, 0,247,160,102, 4,136,229, 87,119,209,249,217,103, 83, 59, 53,104,213, 87, 41,107, 54,185,213,117, 22,167,153,107, 46,
+ 85,234, 21, 74,233, 82,148,133,189, 29,134,150,202, 66,214,179,221, 2,201, 80, 23, 3,198,120, 24,183, 50, 62,149,233,166,147,
+229, 86,114,182, 72,202,148,218, 37, 26,158,202,132,120, 80,163, 33,136,241,155,185, 81,218,148,128, 18, 57, 36,252, 79,174, 36,
+ 20,246, 23, 26, 11, 49,215,109,205,182, 18,109,235,143,159,223, 78, 7,109,188,209,149,242,221, 51,176, 7,103, 21, 57, 63, 81,
+117, 68, 34, 37, 73,170,122,238,236, 10,107,202,238,251,171,143,184,185, 7,114, 46,126,235, 73,113, 71,110,228, 43, 28, 21,163,
+ 23,152,230, 35,217,206,171, 50,163,176, 0,110,162, 4, 0, 0,159,149,122, 37,235,246, 92, 63,134,118,185,116, 64,132,141,212,
+ 73,217, 32,153, 36,168,199, 94,188,170,148,250, 40,163,183,175, 95, 75,174,184,118,166,211, 8,221,214, 75, 76,154,148,104,146,
+227, 39,107, 83, 12,169,168, 83, 42,244, 61,226, 35, 45,226, 58,130,164, 95,168,191,215, 76,115,207,209,191,216,187, 43,246, 40,
+236,229, 72,211, 42, 82, 16,245, 73, 72,246,170,253, 73, 40,177,155, 57,196,142,245,207, 80,145, 96,132,143, 36, 33, 62,119, 39,
+161, 20,118,221, 74,232, 48, 76,126,253,172, 67, 17, 43,103,244, 36, 4, 39,169, 74, 68, 2,124,247,161,240,230, 28,246, 27,133,
+165, 15,127,212, 81, 43, 84,108, 20,163, 36, 15, 45,170,154,237,207,219, 83, 75,123, 8,232, 60,253,101,212,121, 29,252,130, 76,
+108,187, 66,105,203, 61, 86,156, 82, 74, 25, 71, 93,169,224,169,107, 34,200, 74, 73,228,237, 73,248,183,173,186,119,218,114,169,
+218, 83, 67, 59, 98,246,176,171, 56, 51, 62,177,106, 27,115, 35, 80,150,201, 64,165, 64,141, 46,157,236,205, 37, 37, 68,182,157,
+146,108,150,143,137, 9, 74,119, 18,181, 44, 11, 23, 83,117,175,181,190,191,246,229,103,181, 55,105,223,163,151, 88, 51, 46, 94,
+203, 11, 82,114, 6,159, 55,150, 42, 17,226,211, 0, 88, 45,184,246,248,171, 14,185,225, 11, 93,146, 55,184, 19,127, 2, 18,222,
+ 7,253, 37, 29,186, 53, 79,180, 6,175,104, 54,101,205, 29,134,243,214,158,191,145,243, 44,137, 84,170, 78, 97,142,250, 94,204,
+ 46, 46, 77, 57,101,152,193,113,155, 37,105, 49,208,147,180, 47,153, 9,227,155, 30,235, 1,194,223,194,221, 67, 77,165, 42, 82,
+210,174,209,121,144, 99,184,114,161, 34,103,120, 42, 32,106, 99,144,175, 62,226, 44, 90,223, 23,101,199,157, 82,146,150,212,144,
+218, 50,172, 79,125, 57,156, 81,136,213, 50, 18,146,116, 19,166, 99, 95,114,104,236,184,138, 92,112, 92, 41,179, 73,184,183,187,
+ 28, 51,244,237,246,163,205,217, 7, 68,104, 93,142,244, 82,107,235,207,250,207, 83, 77, 34, 35, 80,213,103, 90,167,169,105, 67,
+199,129,113,222, 41, 73,106,255, 0,178, 92,244,199, 94,104, 22,166,213,117, 91, 67,178,246,168,230,220,139, 63, 40, 74,170, 82,
+ 91,151, 58,131, 90,186, 31,166,155, 93, 77,187,185, 40, 32,139,115,116,143,134, 62,117,246, 23, 47,253, 36,223, 75,142,127,237,
+209, 92,139,237, 25, 35, 74, 83,245, 46, 68, 75,151, 40, 91,254, 38,218,113, 60,218,251, 67,175,155,116, 83,168,199, 33,128,218,
+161,139,167,111, 46, 4,162,220,102, 35,145, 92,194, 19,167, 85,124, 1,174,215,136,174,214,253,163, 86, 86,198, 23,114,114,131,
+177, 8,137, 90,181,232,157, 58,201,174,244,236, 91,217,155, 44,118, 63,236,211,148,187, 62,101,134,208, 69, 10,152,145, 81,148,
+132,128,101,205, 88,222,251,198,221,119, 44,170,222,235, 15, 44, 90,248,199,104, 9,232, 46,122,156,101,140, 7,222,118,225,229,
+ 58,225,149, 40,146, 79,137,222,186, 59,118, 26,181, 97, 44,180, 33, 41, 0, 1,208, 13, 5, 44, 44, 44, 44, 10,141, 75, 11, 11,
+ 11, 10,149, 44, 44, 44, 44, 42, 84,176,176,176,176,169, 82,194,194,194,194,165, 75, 11, 11, 11, 10,149, 44, 44, 44, 44, 42, 84,
+176,176,176,176,169, 82,194,194,194,194,165, 75, 31, 60, 62,153,205, 43,175,234, 54,185,233, 99,173,229,138,172,138, 51, 25,107,
+ 50, 51, 81,170, 65,200,210, 43,205,196,113,216,201, 75, 1, 81,217,183,141, 78,109, 8, 89, 35,187, 81, 14,243,221,216,253, 15,
+194,197,220, 62,245, 88,125,208,121, 34, 72, 4,122,130, 60,122,244,161,186,216,117, 25,107,227,238, 78,161,246,247,211,124,150,
+154,230,157,105, 14,118,203, 85,100,233,246, 85,165,230, 85, 64,166, 72, 93, 65,154, 75, 50,102, 37,213,176, 75, 74, 90, 95, 40,
+ 76,103, 20,132, 37, 78, 50,151, 84, 45,225, 54,155,105,189, 79,233, 3,212,234,149, 95, 38, 86,245,227, 87, 97,209,105, 25, 18,
+191, 84,161, 86,160, 80,166, 65,122,116,152,229, 14, 68,142,227,179, 34, 33,201, 4,173,110, 32,168, 37, 11,112, 35,106,109,183,
+ 31, 83, 49, 92,246,132,237, 31,148,251, 55,210,233, 85,220,237, 69,168,200,131, 84,122,107, 9,147, 5, 9, 88,105,230, 41,242,
+103, 37,181, 2, 65, 42,117, 49, 92,109,176,144,110,226,146,158, 55, 99,100, 99,139,185, 89, 74, 88, 73, 81,219,159, 47, 16,118,
+141, 53,245,170,222,204, 16, 39, 49,138,249,181,157,243, 23,107,157,104,166,209, 97,107,212, 93, 95,151, 91,110,169,145,165, 80,
+168,145,242,180,132, 81, 29,138, 25,142,185,243, 36,236, 99,111,180, 9, 61,230,226,178,146,149, 18, 0, 32, 16,150,249,131, 87,
+254,149, 90, 51, 89,138,169, 84,205, 90,155, 19, 54, 20,212,145, 91,203,209,242,172,249, 17, 89,218,230,232,239, 66, 90, 98,251,
+ 51, 13,141,168, 66, 84,135, 23,222, 5,145, 97,186,231,181,167,253, 41,154, 25, 79,162, 73,204,174,100,252,204,228, 6, 41,162,
+ 75, 15, 51, 9, 11, 92,151, 67, 84,119, 93,138,134,194,247,151,155, 77,101,157,232, 34,233, 49,228,126,199, 47,164,125, 37,186,
+ 51, 79,174, 55, 77,169,229,122,243, 81, 38, 87, 91,167, 82, 42,168,105,167, 24,168, 55,245,156,234,123,210,219, 41, 89, 61,203,
+ 38,158,243,235, 85,174, 25, 82, 87,110,160, 91, 23,151, 97, 34,108,196,116,211,195, 65,167,188,141,231, 89,210,135,217,183, 63,
+245, 53,170,175, 47,246, 90,215, 23,117,139, 62,102, 71,115, 60,124,223, 92,129,167,121,126,101, 50,177,169, 25, 14, 45, 65,233,
+243,138,234,239,123, 44,103,143,114,212, 82,218,251,164, 29,169, 86,208,182,138,135,132,110,211,167,154,193,174, 57, 27, 87,178,
+ 46, 99, 21,173, 97,171,105,227, 77, 67, 78,164, 57,153,114,157, 69,247,216,173, 57, 76,171, 7, 88, 67, 62,204, 31, 45, 9, 34,
+ 14,224,202, 20,195,110,119, 65, 36,110, 80, 55, 70,102,237,115,156, 43, 20, 93, 25,206,218, 61,167, 47, 84,161,234,101,106, 91,
+ 95, 82,205,121,150,100,189, 17, 52,185,210,153,117, 14,169,192,219,119, 49,218,116,146, 85,118,201, 0, 21, 16, 49, 86, 80,126,
+151, 26, 15,214,153,137,117,205, 60,154,180,166,168,180,208,233, 14,191, 30, 27,177, 89,139, 74,167, 63, 57,151,158,117,222,237,
+233, 9,151, 48,180,218, 27,251,224,131,192, 27,141, 68, 27,251,148,168, 41,160,173, 34, 59,160,136,238,158, 90, 25, 4,142, 67,
+198, 34,136,123, 36, 17, 10,143,185,160,153, 63, 48,118,183,205, 57, 26,110,124,173,102,221, 70,137, 83,203,217,111, 38,205,163,
+192, 12,188,202, 37,203,147, 88,154,220,240,251, 37,191,244,130, 35, 54,200, 91,106,184, 66, 84, 9, 2,233, 86, 33,170,205, 26,
+234,156,213, 70,207,213,106, 94,168,212, 51,132,141, 59,157, 76,212, 9,242, 96,213,226,199,203,211, 94,204, 52,110,248, 69, 83,
+ 17,148,123,148, 52,211,138, 40,134, 10,150,202, 66,247, 39,113,115, 23,243,127, 73,246, 75, 94, 95,107, 61, 59,162, 89,169,188,
+185, 81,159, 87,166,229,250,138,223,136, 30,169, 79,130,231,119,220, 8,253,238,246,131,170,186, 80,183, 54,217, 73, 33, 65, 34,
+202, 32, 43,159, 73,205,107, 74,181, 23, 58,228,125,100,210, 7,163,207,163, 84,212,186,125, 18, 29, 94, 24,113,136, 45, 82,233,
+178, 93, 73,121,110,132, 74,146,227,147,174,211, 77,129,116,146,146, 65, 69,212, 70,205,238,117, 69,184,235, 18, 6,130, 18, 71,
+184,234,118,131,191, 67, 19,217,192,239,253,239, 84, 70,102,166,235,182,102,202, 89,151, 52,231,181,106, 13,114,106,180,203, 55,
+ 81, 50,154,228,101, 58,129,102,166,166,167,165,232,172, 73, 98, 67, 43,112,133, 50,181, 45, 41,148,119, 56, 24, 72, 81, 89, 73,
+ 6,192,207,153,195,181,187,136,117,140,171,153,245, 81,140,218,245,110,166,206,160,196,250,162, 66,105,212,168, 70,174,218, 32,
+ 46,156,181,178, 88,220, 88, 40,216,166, 20,230,246,187,229, 59,114,146, 69,251, 77,237,219, 69,174,233,229,103, 83,168, 90, 55,
+153, 94,164,195,205,127,163, 52, 7,156,145, 13,179, 94,170, 42,168, 41,173,178,202, 59,226,182,144,167,148,146, 86,242, 91,218,
+157,220,120,121,143,203,250, 74,104,176, 42,249,159, 44,202,236,247,155,149, 84,201, 49, 91,115, 53,198,143, 50,158,166,225, 60,
+236,199,225,176,194, 86,169, 9, 47, 41,215, 90,108,161, 72, 78,221,175,130,178,141,170, 2, 62,209,118,225,255, 0,160, 14, 82,
+121,167,195, 72,233,168,255, 0,238,143, 42,124,168, 3,245,111,231,247,252, 85,129,217, 86, 54,123,163, 61,168,217, 55, 56,214,
+107,245, 8, 84, 45, 69,122, 38, 88,155,152,223,113,231,221,167,170,155, 79,124, 89,231, 6,231,144, 31,122, 72, 11,185,182,210,
+155,248, 56,156,106,142,102,153,149,242,139,243, 41,144,102, 74,146,226,210,219, 81,233,205,119,146, 22,146,110,225,109, 36,139,
+168, 54, 22,161,115,107,129,240,192, 29, 16,214,249,154,181, 83,205, 89,102,189,167,211, 50,221,107, 39, 86, 24,167, 86, 41,242,
+167, 51, 37, 61,227,176,216,152,218,155,113,146, 82,164,150,164, 55,126,132, 27,143, 43,225,167,105, 44,224,238, 74,163,194,170,
+ 37,110,198, 68,132,189, 25,117, 36,169, 65, 17,183, 22,143, 36,112,146,160,146, 2,141,172, 46, 47,226,231, 1,228,173,203,152,
+ 80,130, 99,228, 53,211,174,245,109, 36, 37, 18, 40, 94,157,101,183, 53,119, 50,205,204,153,190,140,152,244, 74, 12,199,233,180,
+ 60,178,250, 2,210,215,131,107,175,188, 46, 82,227,174, 37,106, 23,241, 0,218,200, 4,151, 28, 56,152, 53,148,180,219, 72,178,
+218,160,100,172,131, 73,128, 36, 14,226, 52, 10,124, 6,218,246,149,145, 96,131, 96, 46, 58, 94,255, 0,158, 57,247, 74,117,173,
+188,173, 68,159,154,115, 21, 98,180,213, 62,189, 48,191, 66,167,210,139, 73, 91,236, 37, 59, 12,151, 84,232, 42, 72,112,164, 20,
+237,183, 30,166,248,213,159,123, 65, 26,237, 30, 67, 57, 8,212,104,245, 95,102, 90, 97,213,234,213,133, 73,241,145,109,182, 80,
+ 33, 27,134,228, 93, 36,125,242,126,240, 73, 5, 54,151, 38, 66, 71,119,225,231, 80,237, 27,220,239, 84, 79,104, 61, 18,236,203,
+ 74,213,106,139,116,156,169, 54,161, 37,183, 1,169, 53, 26,168, 26,167, 53, 51,146,234, 88,100, 54,124, 1, 70,220,109,228, 31,
+ 92, 93,127, 71, 86,163,228,220,173,154,166,232, 94, 89,202,113, 41, 12, 84, 24,114,164,203, 81, 22,226,128,117, 1, 41, 55,222,
+ 77,138,146, 20, 64, 22, 79,217, 40,128, 9, 81, 52, 29, 55, 78,245,143, 48,102,103,178,133, 23, 74,170,166,165, 21,206,238,115,
+ 47, 35,113, 97, 99,168,251, 61,215,231,205, 69, 34,222,124,227,174,251, 16,118, 92,173,232,204, 41,249,239, 81,152, 72,204,117,
+ 66, 91, 75, 94, 19,236,204, 3,211,194, 72, 23,176, 22,185,176, 72,185, 37, 74,198,197,249,183, 69,143,102,165, 73,129, 26,235,
+ 61,106,163, 33,106,123, 48, 17, 93, 9,133,133,133,142,102,180,107, 29,164,240,163,113,140,177, 65,255, 0,157, 46,162,255, 0,
+177,168,191,213,221,254,110, 49, 87,106, 77, 69,255, 0, 99,209,191,171, 59,252,220,116, 95,149,241, 94,131,214,176,127, 49,225,
+189, 79,165, 91,218,141,166,121, 47, 85,178,219,185, 83, 61, 80,218,155, 17,209,192, 88,241, 54,175,218, 66,135, 41, 87,188, 27,
+227,154,115,111,209,127, 76,126,114,158,201,154,140,252,104,234, 55, 75, 51, 98, 7, 74,125,219,130,147,253,184,155,158,212,186,
+141,215,234,122, 55,245,119,191,155,133,254,116,218,141,254,197,163,127, 87,123,249,184,194,197,255, 0, 12, 45,177,229, 5, 95,
+ 91,161,100,115,146, 12,116,148,144, 99,194,107,123, 7,252, 76,189,192, 18, 83, 97,112,180, 3,184,128, 83, 61, 97, 64,137,241,
+138,142,233,191,209,179,147,242,237, 69,186,150,119,204, 46, 85,187,165, 5, 6, 54,119,109,170,222,169, 4,147,240, 38,216,233,
+ 26, 14, 94,164,229,154, 91,116,138, 52, 36, 49, 29,164, 4,161, 13,166,195,143,134, 41, 17,218,155, 81,143,253, 77, 70,254,172,
+239,243,112,191,206,147, 81,127,216,180,111,234,206,255, 0, 55, 7,194,191, 14,134, 6,209,110,197,132, 54, 14,240,117, 62,100,
+201, 62,243, 85,241,111,196, 23,113,215,131,151,239,173,194, 54,145,160,242, 2, 0,247, 10,191,176,177, 64,255, 0,157, 38,163,
+255, 0,177,168,223,213,157,254,110, 23,249,210,234, 48,235, 71,163,127, 86,123,249,184,214,252,175,138,244, 79,173,100,254,100,
+195, 58,159, 74,191,176,177, 64, 30,212,218,143,254,199,163,127, 86,119,249,184, 95,231, 77,168,255, 0,236,106, 55,245,103,127,
+155,135,252,173,139,116, 30,180,191, 50, 97,157, 79,165, 95,248, 88,160,127,206,155, 81,191,216,212,111,234,206,255, 0, 55, 30,
+ 30,212,218,138, 63,234,106, 55,245,119,191,155,133,249, 91, 22,232, 61,105,126,100,195, 58,159, 74,243,181,166,153,246,161,205,
+ 90,145,148, 42, 26, 9,168, 83,169,153,126,172,177, 73,212, 22, 89,170, 22, 85, 2, 10, 36,181, 48, 78,136, 47,116,200, 90, 25,
+126, 9, 82, 46,171, 79,109,118,179, 23, 28,231, 63, 71,126,149, 26,173, 87, 57, 49, 83,212,156,222,203,179,107,177,144,217,166,
+ 84,162, 51, 18, 92, 37,230, 40, 78,151,160, 63,245,137,114, 33,102,150,137, 45,169,179, 18, 63,120,149,169, 39,190, 88, 10, 87,
+ 70,142,212,186,140,121, 52,106, 47,245,103,127,155,140,219,237, 57,168,142, 29,198,135, 69,248,251, 51,191,205,198,157,190, 25,
+142, 90,182, 16,150,219, 49, 27,193, 59,206,191, 1,228, 4,107,173,100, 92,221,224,215,110,169,106,113,193, 51,177, 32,106, 35,
+ 65,234,124,201,153, 6, 42,140,215, 77, 16,237,165, 83,204, 26,143,167,249, 10, 30,120,173,229,170,142, 82,136,214, 89,168,230,
+ 12,230,192, 67, 82,216,114,158,164, 51, 25, 38,106,203,225,125,212,133, 56,236,166, 88,116, 18,226, 75,178, 16,234, 82,141,218,
+193,145,190,146, 89,185,219, 63,175, 78,231,230,148, 59, 54,153,153,197, 22,160,214,105,134,213, 41,232,142,209,220,110,141, 18,
+ 12,114,234, 92,139, 61,169,229,133,174, 67,141,182,159, 11,135,190, 90, 86, 18,155,217,142,209,218,130,242,173,245, 37, 24,159,
+116,103,127,153,130,112,117,159, 84, 39,145,221,101,234, 79,196,199,119,249,152,129, 99, 22,183, 72,206,134,244, 17,175,144, 19,
+190,253,209,239,215,122,151,255, 0, 75,125, 71, 35,142,234,103, 79, 50, 96,105,183,120,248,198,147, 21, 12,236,247, 76,237, 91,
+163, 25, 83, 84, 25,205,116,140,193,157,125,134, 67, 51, 52,226,159, 92,204,145,222,151, 82, 38,143, 17, 79, 70,246,151, 92,251,
+ 36, 26,143,181, 32, 23,138,118,142, 83,224,217,127,153,153, 59,178,239,211, 93,146,123, 88,214,251,101, 74,236,177, 72,174,231,
+154,203,207,173,114,243, 5,118,151, 33,168,101,219, 38,204, 33, 51,211,176, 37,161,220,167,146, 18,221,210, 58,227,235,228, 13,
+ 65,213, 87,166, 33,153, 84, 74, 75,109,171,239, 45, 44, 56,109,255, 0,246, 96,219,217,174,190,202, 44,166, 32, 21, 91,254,193,
+ 86,255, 0,207,138,172, 98,215, 56, 82,156,254,219, 74, 46,128, 12,201,208, 8, 35, 69, 13,247, 87, 83, 86, 46,112, 43,108, 96,
+ 53,253,215, 81,217, 18, 83, 5, 35, 82,102,117, 73,253, 59, 39,160,174, 1,200, 90,245,255, 0,180, 41, 93,205, 48, 50,254,111,
+236,235,145, 40,148,169, 78, 22,101, 85,210,168, 43,246, 20,169, 36, 7,182,162,160,226,149,180,144,162, 3,106, 60, 31, 10,186,
+ 98,101,244, 60,228,127,164,243, 34,230,172,244,158,221,153,158,187, 54,147, 42, 67,102,142,198,100,175, 34,162,248,146, 22,178,
+235,140, 45, 43, 95,117, 28,167,104, 8, 4, 34,246,216,145,101, 19,212,245,237, 85,212, 74, 94,247, 34, 81,233, 14,161, 28,220,
+197,114,255, 0,147,152,143, 47,180,158,127, 96,146, 40,116,116,159,255, 0,108,239,243, 49,119, 45,246, 33,102,182,153,183,101,
+ 33,113, 37, 32,130, 32,206,132,147, 30, 62, 21, 85, 44, 89,225,247,173,186,245,203,234, 82, 38, 2,136, 32,200,141, 64, 2, 64,
+220,120,213,175, 63, 48,100,216,181,132,208,230, 76,130, 42, 14, 39,120,134,228,134,210,241, 71,237, 4, 41, 64,148,222,226,226,
+253, 14, 56,123,233,118,236,171,173,125,163,117,231,179,182,109,209, 13, 61, 21, 90,126, 72,205,146,165,230,169, 2,161, 26, 48,
+134,194,229, 83, 22,133, 89,247, 16, 93,186, 99,188,108,216, 81,240,244,241, 11,205,187, 71,178,199,104,186,116, 54,179,174, 86,
+166, 23,169,235, 38, 60,184,141,173,183,144, 15, 91, 44,172,216, 94,198,222,239,198,131,172, 84,117,235,179, 60,230,231,105,150,
+165, 84,157,136, 21,117,209,171,143,170,100, 55,147,251, 5, 46, 18, 82, 15,170, 10, 78, 49,187, 59,206, 28,189, 67,198, 51, 65,
+137, 4,164,200, 41, 58,131,208,252,171,169,102,194,203,139,172, 23,110,149,145,170,102, 32, 30,234,130,134,224,238, 71,206,187,
+ 59,183,140,126,208, 50,187, 21,102,204,165,217,135, 40,174,173,157,107,116,129, 75,165,199, 68,148, 51,236,232,127,236,221,123,
+114,184,240,182, 86, 71,190,216,140,253, 17,253,143, 43, 29,139, 59, 21,229,253, 49,207, 20,150, 98,102,170,140,135,234,185,173,
+182,150, 23,182, 83,170,176,111,120,251,219, 27, 75,105,248,131,136, 62,134,253, 36,211,115,212,117,101,201,240,163,210,115, 37,
+129, 85, 38,168,226,158,143, 32,139,220,198,123,114, 72, 38,227,236,220,189,172, 2, 72, 23, 38,204,167,246,182,207, 53, 56,254,
+213, 10,145, 71, 32, 40,165,105, 84,103,130,144,160,108, 82, 71,123,193, 24, 38, 30,221,253,254, 28,171, 6, 2, 64,204, 22,100,
+194,140, 8, 30, 5, 35,195,158,245, 75, 21,179, 99, 9,197,147,125,118, 21,152, 39, 32,210, 82, 36,201, 62, 10, 61,122,109, 93,
+ 16,163,199, 30, 88,247, 28,248,123, 84,234, 56,233, 70,162,255, 0, 87,123,249,184,201, 61,170,117, 29, 95,245, 45, 23,250,187,
+223,205,196,255, 0, 42, 98,253, 19,235, 85,255, 0, 51,225,115,185,244,174,129,194,197, 4,142,212, 90,140,175,189, 70,163,127,
+ 87,123,249,184, 59,150, 53,159, 85, 51, 27,110,212,220,129, 64,129, 76,138,146,169,181, 89,205,186,220,118, 18, 57, 36,168,187,
+107,129,229,128,191,195,184,133,179,101,110,148,128, 57,149, 81,152,199,172,110, 92, 13,180, 20, 73,228, 5, 92, 24, 88,229,236,
+247,244,181,246, 40,201, 21,165,101,101,234,115,217,146,160,209, 41,123,244, 86,150,185, 45, 21,143, 32,160, 74,127,241, 28, 54,
+163,253, 35,244,237, 70,157, 14, 30,147,233,157,113,182, 30,144, 16,236,188,195, 25, 40, 64, 4, 19,225, 75,110, 19,208, 18,110,
+ 69,135, 54, 61, 49,146,213,179,175, 56, 16,145,169, 48, 43,117,230,222, 97,146,235,137, 33, 32, 77,117, 86, 22, 40, 85,118,158,
+212, 52,159,254, 15, 71,255, 0,128,247,243,113,137,237, 69,168,160,243, 71,163, 31,255, 0,142,247,243,113,181,249, 91, 21,232,
+ 61,107,156, 60, 77,133,142,103,210,175,204, 44, 80,137,237, 67,168,157, 62,167,163,255, 0, 86,119,249,184,244,118,158,212, 77,
+215,250,154,143,207,255, 0,167,119,249,184, 95,149,241, 94,131,214,155,243, 70, 21,212,250, 85,245,133,138, 31,252,231,117, 15,
+206,145, 71,254,174,239,243,112,143,105,205, 65,255, 0, 99,209,255, 0,171,187,252,220, 47,202,248,175, 68,250,210,252,209,133,
+117, 62,149,124, 97, 98,136, 79,105,173, 67, 87, 31, 83,209,255, 0,171,187,252,204,101,254,114,250,128,122,209,168,255, 0,213,
+221,254,110, 27,242,198, 43,208,122,211,254,103,194,250,159, 74,189,112,177, 70,167,180,182,160, 30,180,138, 71,245,119,127,153,
+143, 71,105, 60,252,127,234,138, 71,252, 7,127,153,134,252,179,138,116, 30,180,191, 51,225,125, 79,165, 94, 56, 88,163,207,105,
+ 60,248, 79, 52,138, 79,252, 7,127,153,140,135,105, 12,247,229, 74,164,255, 0, 87,119,249,152,111,203, 88,167, 65,235, 75,243,
+ 62, 23,212,250, 85,221,133,138, 77, 61,163,115,201,235, 73,164,127, 87,119,249,152,244,118,140,207,127,236,186, 81,255, 0,236,
+ 59,252,204, 55,229,188, 79,160,245,167,252,205,133,245, 62,149,117,225, 98,148,255, 0, 56,140,243,254,202,165,127,192,119,249,
+152,247,252,226, 51,209,233, 76,165,255, 0,192,119,249,152, 95,151, 49, 62,131,214,151,230,108, 47,169,244,171,171, 17,109, 83,
+209,237, 63,214,138, 45, 63, 47,234, 61, 5, 53, 24,148,202,236, 58,188, 70, 86,226,146, 19, 42, 43,161,214, 86,108, 70,225,184,
+114,147,112,160, 72, 55, 7, 16, 17,218, 35, 60,249,210,169, 95,240, 29,254,102, 16,237, 13,158, 15,253, 85, 75,255, 0,128,239,
+243, 48,147,195,248,162, 20, 20,152, 4,120,210, 60, 73,133,168, 65, 39,210,138, 83,251, 27,118,116,166,203,165, 75,143,167,140,
+ 19, 70,205, 21, 76,193, 1,183, 94, 90,219, 68,234,130, 28, 68,149, 20, 19,181, 72, 41,116,132,160,141,168,218,141,160,109, 22,
+102,223, 97,206,205, 13,229,170, 30, 83,255, 0, 39,225,112,178,238, 79,168,229,154, 90, 92,154,234,148,221, 58,114, 82,153, 40,
+ 82,138,174,165, 40, 39,133,155,169, 59,214, 65, 27,141,245, 39,180, 14,120, 39,197, 76,165,127,192,115,249,152,216,141,125,206,
+134,231,234,202,103,201,151, 63,153,130,255, 0, 74,199, 7,249,255, 0,242,243,253,207,169,164, 49,252, 36,245,244,173,245,238,
+198,250, 49, 93,137, 72,134,149,230, 74,114,114,243,145,151, 65, 93, 27, 54, 77,134,186,111,115, 1, 84,244, 6, 20,203,169, 45,
+ 36,199, 82,144,164,164,128,189,196,170,228,155,140,166,118, 0,236,207,151, 22, 38,100,188,183, 88,203,243, 27,112, 22,106,121,
+127, 52,207,133, 49, 9,246, 56,241, 22,142,253,151,146,225, 75,141, 69, 96,172, 40,157,238, 54, 28, 55, 88,223,130, 9,215,124,
+228,174,180,218,105,255, 0,236,185,252,204,108, 78,184,103, 5, 11,154,101, 55,228,203,159,255, 0,188, 55,244,220,109, 2, 2,
+255, 0,249, 83,140,115, 11, 87, 95, 74,209, 43,176,231,102,233,217, 38, 46,158, 78,201,114, 95,164, 67,159, 85,153, 30, 51,245,
+153, 43, 82, 95,168,247,134, 75,157,225,115,188, 42, 37,197, 20,168,170,232, 54, 41, 32,128,112,214, 63, 96,253, 6,135, 83,147,
+152,225,203,206,108, 86,166,200,113,217,185,134, 62,160,213, 91,168,200, 14, 49, 29,135, 91, 92,148,200, 14,169,181, 34, 36,127,
+ 1, 85,146, 89, 65, 64, 78,209, 98,200,214,220,220,179,111,171,169,223,240,156,255, 0,253,225,253, 23, 84,115,109, 86, 90, 24,
+ 52,248, 1, 37, 86, 81, 75, 78,112, 63,223,192,151,103,140, 50,146,162,228, 13,127,203,222,125,106,195, 56,157,133,195,129, 8,
+ 4,147,225, 66,145,216,183, 64,209,149,166,228,145, 67,170,125, 85, 57,233, 50, 28,136, 51, 20,192, 17, 37,234,128,168,153, 40,
+ 80,119,114, 31, 68,148,133,161,208,119,162,214, 6,215, 4, 93, 75,176,198,138, 66,201,121,190,137,147,242,234, 77, 79, 55,208,
+ 62,174,170, 84, 51, 21, 74,108,225, 49,105,147, 34, 90, 30,144,175,104, 67,203,115,191,146,226,203,137,113, 43, 30, 16,149, 0,
+132,129,105, 43, 49, 76, 66, 65, 91,109,127,186,127,191, 26,142,105,158, 77,144,195, 71,228,175,239,198, 72,190,186, 79,253,195,
+188,239,207,173,109, 11, 34,173,146, 42, 11,217, 75,179,125, 99,179,221, 47, 51, 74,205,121,245,236,197, 91,205,149,241, 84,170,
+ 77,113,201, 43, 75,101, 17, 88,140,219,105, 92,167,223,121,118,109,132,146,165,184,121, 81, 9, 8, 72, 74, 69,161, 83,165,211,
+234,241, 21, 2,169, 1,169, 12,175,239, 52,242, 2,129,252,112,201,154,204,229,183,222, 56,134,135,193, 39,251,241,173, 89,146,
+ 66, 20, 91, 45,183,127,129,254,252, 9,219,149,188,225,113,103, 83, 78,155,101, 1,148, 87, 63,107,183,100,141, 65,123, 54, 26,
+222,143,174, 52,138,108,148, 11,210,165, 4,255, 0,160,168,117, 13,169, 78, 32,119,100,248,130,121, 32,147,110, 44, 0,157, 47,
+236, 85,168,149,156,216,196,237, 98, 44, 71,166, 68,112, 58,152,177, 84,143,180, 80,232, 60, 46, 44,223,247,137, 27,121,176,189,
+136,233,161, 94,152,161,184,182,221,173,208,164,255, 0,126, 49, 70, 97,154,226,251,180,180,215, 62,227,253,248,180, 49, 27,132,
+181,147,227,206,134,108,137, 84,209, 56,112,161,211,227,162, 36, 24,200,105,164, 32, 37, 8, 66,108, 0, 2,192,126, 0, 99,126,
+ 6,138,180,159, 52, 34,255, 0, 3,253,248, 70,170,248,253, 84, 19,240, 63,223,138, 57,197, 19,179, 85, 18,194,192,179, 85,152,
+ 15,133, 45,254, 7,251,240,176,179,166,151,100,186,229,193, 7,142,152, 94,195,234, 48,103,216,147,255, 0,103,143,125,132, 14,
+141,254, 88,245,223,105,175, 46,246,111, 10, 11,245,120, 62, 88, 95, 87, 15, 76, 27,246, 31,220,199,134, 8,243, 70, 23,180,210,
+246,111, 10, 10,105,224, 11, 91, 9, 48, 61,216, 48, 96, 36,155,219,242,199,158,194,144,122, 97,253,162,151,179, 80,159, 96,190,
+ 49, 84, 18, 60,176,100,195, 4, 90,216,243,216, 69,174, 83,132, 46, 41,123, 53, 6, 48,136,232, 48,132, 37, 19,131, 63, 87,164,
+244, 24,201, 52,212,158,191,195, 15,237, 49, 77,236,212, 29, 48, 21,110, 70, 23,213,202,193,191,171,147,123,243,143, 21, 79,183,
+ 79,225,134, 23, 52,189,154,131, 38,159,206, 55,179, 0, 94,214,193, 3, 79, 35, 15, 40,244,119, 38, 77, 67, 40, 70,235,158,152,
+139,151, 65, 40, 42, 39,106,146, 45,138,148, 0, 20, 67, 38,100,211, 61,196,190,227,126, 27,244,182, 44,120,148, 40,241,217, 67,
+105,104, 11, 14,160, 99, 26, 21, 25,186,116, 70,218, 74, 64, 32,114, 6, 10,112, 58,156,121,174, 43,139, 59,118,241,131,160,174,
+247, 13,195, 91,181,104, 72,212,211, 99, 28,180,158, 7, 76, 15,156,226,133,236,112,254,107,202,228, 36,241,129, 50,214,162, 72,
+190, 50,217, 10,113, 82,107, 96,169, 45,167,106, 99, 37,194, 82,164,132,131,127, 92, 66,115,101, 17, 74,120,184,204,123,115,206,
+212,226,106,234, 73, 87, 56,208,235, 40, 88, 33,104, 6,253,110, 49,210, 97,247,107,178,115, 48,212, 86, 21,253,170, 47, 81,148,
+232,106,173,118, 17, 4,164,167,228,113, 15,212,220,143, 7, 48, 81, 76, 39, 91, 64, 82, 46, 88, 36,115,111, 49,253,223, 28, 91,
+ 85,220,182,180, 41, 82, 88, 71, 23,228, 12, 71,235, 25, 90, 29,106, 10,233,245, 56,157,227, 46, 14, 69,200, 32,249, 16, 71, 32,
+143, 81,142,154,245, 22,216,221,129, 68,137,220, 30,135,239, 74,193,195,174, 46,240, 28, 68, 58,153,142,126, 34,184, 51, 84,114,
+204,204,165, 93, 53, 24,140, 45,151, 25,115,123, 74, 71, 80,160,110, 8, 62, 88,188, 52,119, 84,127, 72,218,161,231, 69,200, 40,
+ 21, 7, 5, 50,186,201,251,162, 70,223,178,118,222, 68,144, 19,127, 59,251,177, 36,213,221, 16,132,237, 57, 94,211,117,139,217,
+137, 75, 3,199,232,133,250, 43,208,244, 87,184,240,106,141, 56,202,210,232,245,154,158,155,173, 74,104, 85,153, 42,167,174,223,
+114, 75,126, 54,200,249,140,113, 12,173,252, 38,249, 57,196, 41, 7,212,115,143, 2, 43,212,111, 31,180,226, 76, 29, 80, 65,144,
+124,199,159,136,222,186,115,217,174,110, 6, 55, 53, 13, 74,253, 92, 51,200, 53,230,179,158, 83,131,152,155, 72, 75,143,178, 4,
+150,129,255, 0, 84,242,124, 46, 32,251,210,176,161,242,193,214,227, 16, 45,108,122,168,184, 75,136, 10, 73,144,107,194, 92,182,
+ 83,110,148, 40, 65, 26, 26,125,144, 50,172, 92,195,152,218,135, 82, 37, 49, 26, 66,159,152,161,228,210, 19,185, 95,141,128,249,
+227,231,239,111,190,213, 58,147,218,227, 90,157,208, 93, 62,174, 61, 7, 36, 81,164,152,233,166,211,157, 45,176,250,146,108,165,
+184, 19,247,192, 60, 11,241,197,241,218,221,167,117,113, 61,155,123, 35,230,189, 74, 66,131,117, 90,218, 5, 27, 47,243,101, 23,
+ 28, 7,122,199,184, 14,127,161,142, 15,236,167,165,115, 32,211, 14,111,168, 71, 87,180, 79, 81, 86,245, 39,144, 15,191, 30,127,
+196, 55,234,114,240,235,162, 52, 3,150,109,201,247,109, 94,179,192,248,107, 54,214, 70,229,105,239, 43,229,252,212,251, 64,251,
+ 54,100,156,152,152,172, 53, 69,109,231,200, 78,247, 86,144, 74,143,153,231, 29, 67,166,116,136,238, 64, 85, 74, 60, 52, 34, 58,
+ 20, 90,133,181,187, 93, 35,239, 44,122,220,254, 67,223,138,251, 38,210,102,213, 43,144,178,205, 46,153, 34, 82, 28,121,180,213,
+220,142,146, 19, 26, 61,193, 88, 83,157, 16,165, 38,224, 11,238,230,224, 98,249,106,156,212,118, 83, 30, 51, 41,109,180, 36, 37,
+ 13,161, 54, 9, 3,160, 3,211, 15,195, 22,110, 45,227,118,247, 47,211, 61,122,251,170,175, 27, 99, 1,214,197,163, 71,125,252,
+ 7, 79,125, 14, 84, 75,240, 83,140, 12, 37, 95,129,130,222,200, 73,231, 25, 8, 32,249, 99,186,237,226,188,180,177, 38,132, 8,
+106,244,252,177,154, 97, 19,250,159,150, 11, 38, 9,243, 24,244,194,255, 0, 22,195, 23,230,155,217,207, 74, 20,152, 74,253,156,
+102, 33,171,211, 4,196, 51,211, 25, 8,132,117, 24,137,126,144, 98,134, 38, 33, 30, 88,247,217, 13,250, 96,159,178,171,254, 88,
+240, 70, 87,248, 56,143,109, 79,216, 26, 26,152,182,234,156,101,236,195,201, 56, 37,236,167, 8, 69,244,195,118,212,187, 3, 67,
+189,152,121, 12, 33, 27,158,152, 36, 34, 31, 76, 47,101, 32,116,194,237,105,187, 10, 96,136,214,235,141,169,140, 15, 4, 97,226,
+ 35,144,108, 19,141,137,142,171,223,167,199, 16, 46,212,131, 2,153, 38, 39, 31,119,242,198, 73,137,232,140, 62, 76,110, 47,140,
+132,123, 96,101,218,152, 98,153, 38, 37,197,136,198, 66, 31,157,176,249, 49,239,229,141,137,140, 61, 49, 18,245, 76, 48, 41,130,
+ 98, 31, 76,109, 68, 80, 58,140, 62, 68, 96, 79, 9,198,212, 68,244, 78, 4,167,141, 77, 54,244,197, 17,237,209, 63,150, 54,161,
+131,233,135,169,138, 78, 54, 38, 37,240, 34,232,163, 37,131, 77,153,143,199, 3, 18,140,162,134,227,182, 22, 64,190, 3, 55, 22,
+222, 88, 55,151,154,238,219, 41, 29, 73,233,140,156, 81,204,214,138,174,135, 0,111, 45,248,145,200,212,137, 45,185, 37, 64, 2,
+109,231,135, 77,198,101,129,114,158,113,178, 3, 72, 75, 1, 71,169, 29, 49,228,149, 34,246,252, 49,196, 19, 38,187,146,228,156,
+162,181, 72,150, 66,118, 35,140,106, 13,108,251, 85,245, 61, 49,239,118, 74,174,164,254, 88,216,234,217, 45,133,173, 86,183,150,
+ 29, 52,243, 26, 10,193, 10,113, 99,109,172, 49,181,178,150,126,237,177,161, 83,163, 33, 62, 19,134, 82, 42,128, 18,111,249,226,
+112, 78,148, 68,160,174,137, 42, 89, 74,174, 85,141,107,171, 54,218,182,149,223, 1,158,171,146, 57, 35, 3,167, 79, 37, 91,146,
+187,123,175,137, 6,232,130,220, 29,234, 88,221, 85,165,139,238, 24, 88,132,166,180,235, 87, 1,207,207, 11, 15,216,154,127,101,
+ 21, 20, 16,252,237,143,125,147,221,130, 9,140,146, 63,229,140,189,157, 62,135, 30,133,219, 26,243, 94,192,208,255, 0, 98,255,
+ 0, 22,198, 38, 25,244,193, 47,102, 7,221,132, 35,123,206, 23,109, 77,236,230,134, 24,106,242,198, 38, 26,143, 54,193, 79,103,
+ 29, 13,207,203, 30, 24,188,252,112,225,243, 75,217,205, 10,246, 83,123,237,199,162, 50,137,228, 96,151,177,159, 92,100,136, 68,
+225,251,106,143, 96,104,123,112, 20,163,194, 48, 66,157,150,101,204,115,104,104,128, 58,220, 96,246, 87,163,182, 85,223,186,128,
+109,210,227, 18, 70,227,182, 60, 73,108, 15,128,198, 29,254, 54, 88, 81, 66, 6,189,107, 82,211, 9, 14,164, 41, 71, 74,140,181,
+145,226,165,171,184,155,155,115,140, 31,201,148,224,215, 1, 65, 95, 28, 74, 95, 72,109,190,152, 31, 33,244, 31, 13,177,207, 43,
+ 25,189, 42,144,179, 91,173,225,118,113, 5, 2,162,142,229, 39,138,143,112,171,252,113,157, 38,155, 38,153, 82, 66,220,142,124,
+ 39, 18, 36,125,235,131,135, 76,194,110, 66,130,150, 58, 30,184,184,140,125,213, 36,161,209, 32,138, 3,152, 27, 8, 80, 91,102,
+ 8,162,112,150,167,153, 14,132,245, 29, 49,146,202,213,193, 24,206, 34, 18,210, 54, 1,211, 25,184,216, 60,131,206, 57,229,168,
+ 41, 70, 43, 73, 58,111, 76,221, 74, 84,130, 20,145,238, 56,100,252, 48,179,225, 63, 60, 16,121, 4,117,198,149,160, 1,193,193,
+ 90, 89, 72,210,160,179, 38,132, 72,130,160,110, 58,227, 64,130,165, 42,196, 96,171,172,173,106, 38,216, 77,197, 33, 59,173,241,
+197,193,114, 82,157,232, 97,172,198, 98,152, 10, 59,107, 78,215, 16, 13,252,176,210, 76, 10,123,104, 44,174, 34,122,242,109,211,
+ 5,165,190, 26, 71,217,158,125,216, 11, 81, 91,160, 21,174,252,226, 77,220,187, 58, 42, 42, 70,221,181,254,161, 65,179, 6, 79,
+162,213,161, 61, 13,230, 80,227, 46,160,165,198,150, 46, 20, 15,145,199, 35,246,170,202,249,219, 66,170, 84,236,241,151, 40, 79,
+212,226,196,169, 33,232,207, 48,217, 90,146,128,161,118,156,253,235, 19,101,121,143,120, 56,236, 61,202,115,194, 13,207,166, 36,
+ 19,251, 63,229,252,235,149,196, 60,232,133,149,173, 65,212,180,149, 91,101,135, 0,251,249,190, 15,117,116,167, 45,225,222,241,
+ 27,117,245,233, 81,181, 79,176, 92,230,104, 64, 58, 17,200,215, 26,228,141, 80, 86,156,102,186,180,170,142, 94,152,188,189, 93,
+144,153,177,213, 25, 1, 74,135, 33, 73, 1,208, 83,127,186,171, 3,199, 66, 15,174, 47, 76,129, 83,203, 57,237,248,174,211,171,
+140,123, 35,196, 41,231, 74,192, 45,163,204,144,121, 6,223,158, 34,122,255, 0,161,104,211,138, 43,178, 40, 50,162,205, 66,110,
+ 83, 21,107, 83,106, 3,208, 27,144, 79,225,136,174,156,118,113,204,181,220,142, 51,213, 87, 57, 59, 65,139, 57, 39,217,155,105,
+238,109,234,127,134, 11,109,196, 87,140, 90,118, 72,136, 26, 9, 6, 71,199,247,172,219,156, 34,214,230,224,186,224, 51,206, 14,
+134,171, 79,164,135, 87,178,167,104, 13,118,162,104,173, 22,164,134,114,150, 72,111,188,155,177, 86, 67,178, 22, 7, 30,251, 36,
+126,103,215, 22, 38,148,232,172,154,237, 30, 42,133, 45,202, 53, 33, 44,164, 52,183, 27,219, 41,244,219,245, 16, 71,217, 15,222,
+ 80,221,232,145,194,177, 11,209,205, 38,209,109, 43,215,186,133,119, 61, 85,211, 88,168,206,144,143,170,234, 18,218,251, 22, 29,
+232, 84,160, 77,183,159, 8, 11, 35,143,113,231, 29, 96,212,114,122, 98,254, 23,134,219, 93,164, 62,242,179, 71, 47, 30,166,137,
+138, 99, 79,218,178,155, 91, 81,148, 70,170,235,229,251,208,124,185,148,104,121, 78,148,138, 46, 94,166, 55, 22, 51,100,144,134,
+199, 42, 81,234,165, 19,202,148, 79, 82,121, 56,125,236,135,200, 97,250, 99, 15, 76,101,236,188,241,127,195, 29, 80,112, 36, 64,
+218,184,213, 54,165,153, 59,208,241, 16,223,238,227, 52,196,231,145,135,193,131,210,223,150, 51, 76,101,121,225,139,213, 30,192,
+211, 20,197, 61, 54,227,207, 99,183,234,126, 24, 36, 35,127,129,140,132, 81,136,118,209, 79,236,243, 67, 61,144,126,198, 23,178,
+254,225,252,112, 76,197, 30, 71, 30, 24,163,246,112,187,106,111,103,240,161,190,203,251,167, 11,217, 71,166, 9,123, 55,238, 12,
+120, 99,126,238, 23,109, 77,236,244, 59,217, 71,166, 16,140, 61, 48, 71,217,125,216, 94,203,238,195,246,213, 30,194,135,136,182,
+ 60, 12,123,236,215, 28,140, 16,246, 65,233,143, 68, 68,245, 3, 17, 46,138,126,192,208,225, 24,143, 44,100,152,216, 33,236,131,
+246, 78, 61, 17, 71,236,225, 23,169, 6, 13, 50, 76,112, 15, 76,108, 17,248,225, 56,122,152,164,126,166, 50, 76, 99,231,108, 12,
+189, 68, 12, 83, 36,198, 62,152,216,136,164, 30,159,150, 30, 38, 41,233,141,137,141,238,196, 11,181, 48,205, 52, 68,111, 92,109,
+ 68, 96, 56,182, 29, 38, 48,242,198,105, 97, 35,203, 2, 83,180, 64,205, 55, 68,113,127,187,248,227, 98, 24,242, 3, 14, 80,192,
+193,106, 61, 21,183, 82, 36, 60, 46, 15,221, 24,172,245,202, 26, 70,101, 26,178,205,170,157, 94, 84,138, 27, 26,139, 49,240, 10,
+ 24, 54, 62,120, 51, 77,164,152,137, 79,120,158,125, 45,130,140,180,134,198,208,155, 1,233,143, 36,172, 4,157,163,159, 44,115,
+ 87,120,155,143,140,128, 64,174,166,195, 14, 69,178,179,115,172,195,233, 66, 0, 7, 26,156,124,238,220,142, 72,245,195, 55,164,
+169, 42,178,193, 30,152,214,252,228,178,201,230,247, 24,205, 2, 77,108, 6,200,173,242,106,170,104, 16,165,140, 12,147, 91, 82,
+193, 72, 86, 24, 77,158,227,138, 37, 23,192,231,103, 5,248, 9, 32,140, 89,109,177, 86, 82,200, 2,139, 46,162,163,250,223, 44,
+104,151, 80, 74, 17,247,190, 38,248, 14,186,161, 65,178,149,249,225,180,170,182,235,132,156, 88, 75, 69, 70,104,130, 19,161,162,
+ 47,213,122,248,176,201,250,157,255, 0, 91,227,206, 6, 59, 49,106,228, 43, 26, 22,241, 61, 85,243,193,195, 2,138,149, 81, 7,
+ 39, 93, 87,220,112,176, 52, 60,175,218,194,195,246, 85, 46,209, 21, 37, 75, 2,220,131,143,123,129,251, 56,116,150, 49,233,103,
+212,126, 88,223,237, 43,206,114, 26,107,220, 39,246, 70, 16, 97, 62,105, 24,118, 25, 62, 95,195, 8, 50,112,221,168,165,146,153,
+152,233,242, 24,243,217,199,161,195,222,228,227,223,103, 82,186, 36,225,118,162,156, 34,105,144,142, 47,211,243,198,232,209, 16,
+181,216,167, 27,251,130, 15, 9,198,232,173, 22,150, 20,161,198, 32,227,196, 36,197, 73, 40,214,141, 82, 33,165,168,193, 69, 28,
+ 91,211, 14,194,210, 5,128,198,152,142, 21,178, 2, 61, 49,235,132,222,216,226, 46,221, 90,158, 57,171,162, 97, 1, 40, 17, 90,
+166,202, 72, 22,192,153,110,155,149, 3,135, 85, 5,128,111,124, 12,126, 66, 84,163,115,231,138,153,171, 65,164,146, 41,204, 53,
+135, 22, 1,193,136,150, 0, 1,229,136,244,121, 40, 66,184,193,120, 18,148,176, 0, 55,190, 17, 85, 58,208, 98,139,182,177,123,
+222,216,218,165,164, 39,212,225,163,107, 54, 31,217,141,129,195,230, 48,225, 85, 80,163, 90,245,103,212, 97,187,128,168,240,113,
+181,197,169, 34,252, 88,140,107, 14, 36, 3,137, 5, 17, 78, 17, 58,215,168,105, 54,185,198,169,110, 6,208, 82,148,245,198, 97,
+210, 58,156, 53,159, 32,186, 2, 27, 77,213,127, 33,135,206, 73,169,161, 16,104,101, 65,197,182,173,201, 87, 39, 3, 75,115,167,
+ 58, 24,105, 11,117, 74,232,132, 38,228,252,177, 35,103, 42,203,154,166,215, 57,228,176,135, 62,232, 60,173, 95, 4,255, 0,126,
+ 37,180, 44,187, 76,160,178, 81, 9,146, 22,161,246,142,175,149, 28, 28, 92, 36,104, 53, 52,150,180,160, 84, 66,131,148, 19, 67,
+113, 21,154,248, 5,109, 14,241, 17,135,234,219,155,171,251,177,204,250,175,219,147,180, 20, 13, 68,153,150,242,206,148, 42,101,
+ 53,167,212,134,102,185, 52, 50, 28, 60,217,182,209, 98,167, 87,107,240,145,229,114, 70, 59, 62, 84, 56,111, 52,164, 56,216, 55,
+234,125,113, 67,107,206,139, 66,122, 74,179, 46, 86,168,136, 85, 38, 66,204,119,148,144,180, 13,214,220, 20,142, 46, 56, 7,130,
+ 15, 31, 44, 87, 93,195,169, 50,161, 63, 74,139, 97,167, 15,126,185,221,125,164,179, 46,172,187, 47, 43, 85,114,196,200, 85,104,
+ 46,150,231,211,231, 71, 82, 29, 97, 94, 64,140, 67, 53,203,180,245, 95, 74,178,116, 12,133, 81, 14,182,226, 25,190,208,171,109,
+ 10, 36,237, 0,249,243,249, 98,111,216,167,176, 6,190,100, 44,197, 95,212, 60,249,172, 21, 60,200,101,173, 69, 21, 28,196,178,
+ 86,190, 74,182, 52,146, 78,198,193, 61, 47,111, 65,142, 66,237,181,156, 53,203, 45,118,134,150,238, 88,209,252,185,155,221, 68,
+180,177, 33, 57,146, 50,164,183, 18, 55,121,227,113,150,199, 69,157,160,119,130,234, 74, 65, 0, 89, 71, 6,105,212, 56,169, 27,
+ 84,125,145, 38,227, 34,117, 20,102, 6,187,167, 56, 84,149, 78, 97,185, 77, 73, 42, 10,121, 18, 17, 98, 19,228,160,124,239,238,
+ 56,250, 77,147, 87, 50,110, 86,166,204,169, 36,135,221,128,202,223, 4,116, 89, 64, 39,243,190, 62,102,228, 76,187, 76,111, 61,
+ 39, 59, 69,160, 57, 22,151,245,138, 20,205, 61,230,202, 44,192, 80, 42, 72, 73, 0,165, 36,238,176,226,193, 93, 7, 76,125, 62,
+203, 21,122,110, 98,162,196,174, 82, 29, 14, 70,150,194, 93, 97,105,243, 73, 23, 31, 15,134, 58, 92, 46,237,155,124,210,119,138,
+200,197,236,212,234,210,148, 13,191,138,122,134, 15,149,134, 54, 8,247,198,246, 26, 66,190,254, 54,119, 9,189,146, 49,178,155,
+230, 92,216,214, 81,176,117, 35,106,107,236,222,241,143, 82,192, 7,203, 15,154,130,226,249, 74, 78, 50, 84, 23,146,109,221,159,
+142, 36, 46, 91, 81,128,170, 26,173, 92, 78,226,153, 38, 62,227,100,167,242,195,184,244, 57,143,240,219, 56, 39, 74,164,167,112,
+ 91,169,248,241,131,108,180,195, 72,240, 0, 45,231,140,187,204, 88, 48, 97, 26,154,183,109,134,151,117, 94,130,162,206,101,201,
+141, 38,235, 72,189,176,209,218,123,140,159, 26, 49, 50,125, 76,158, 20,171,224,125, 82, 51, 14, 55,116,129,138,182,248,218,148,
+168,112, 85,183, 48,100,148,202, 13, 70, 76,123,121, 99,194,201,195,231,227,132,158, 6, 53,134,136,232, 49,188,135,130,211, 34,
+177, 93,183, 83,106,130, 41,175,117,238, 56,244, 53,238,195,174,232, 30,163, 30,247, 3,211, 15,218, 80,123, 58,106, 26, 30,236,
+122, 26,227,129,249, 97,208, 99,229,140,131, 9,244,194,207, 75,179,166,189,207,184,227,208,200,244,195,158,224,122, 28,122,150,
+ 0,242,196,115,211,246,116,216, 49,230, 49,144, 96,245,218,112,232, 54, 7,150, 50,102, 58,157, 88, 64, 6,215,228,226, 37,200,
+212,212,146,212,152, 20,221, 17, 28, 87,221, 65, 63, 1,140,204, 55, 91, 23, 91, 68, 15, 82, 48,122, 12, 86,216,111,106, 44, 79,
+153,195,149, 24,206,178, 89,144,129, 99,140,135,177,118,219, 92, 1, 34,181, 90,194, 86,180,201, 48,106, 61, 14,156,228,181,109,
+ 71,226,113,185,202, 52,166, 86, 0,111,112, 62, 99, 4,102, 76,167, 82,163, 46, 75,175,182,203, 45,166,235,113,106, 9, 74, 71,
+169, 39, 12,169, 89,198,147, 90,134,153,244,122,147, 50,227,169, 68, 37,248,238,133,160,145,214,196,113,138,170,198, 22, 85, 40,
+ 78,149,109, 24, 58, 2, 97, 74,214,180,123, 35,233, 94,194,202,175,126,150,196,138, 27, 66, 52, 84, 34,220,237,192, 42,214,118,
+165,208,163,123,100,197, 34,246, 59, 91, 43, 1, 75, 3,147,180, 30,164, 14,109,133,144,117, 63, 34,106,109, 57,117, 76,151,153,
+ 99, 79,101,151, 10, 30,238, 28,185, 66,135, 80, 71, 81,138,151,119,238,220,182, 1, 76, 70,244,123,123, 54,109, 93,253, 90,158,
+ 85, 34, 46,165, 45,220,250,243,134, 18,229,130, 77,151,140,103,212,208, 9,105, 29, 48, 53,217, 4,146, 65,198,120, 50,107,113,
+150, 76, 73,173,146,101, 88, 18,174,152, 27, 38,164, 64, 41, 81,190, 50,149, 48,164, 16,122,121,224, 68,249, 91, 82, 84,149, 98,
+194, 34, 42,216, 64,175,101,212, 0, 28, 28, 13,126,161,226, 42, 81,182, 52,201,152, 72,228,224,124,169, 91, 70,247, 86, 18,145,
+230, 77,177,105,180,205, 76,173, 8, 21,190, 68,197, 94,225, 88,208,185, 69, 66,247,198,158,241, 42, 73, 88, 88,218, 47,115,126,
+ 5,177,228, 89, 49,101,178, 31,136,250, 29, 65,232,180, 40, 40, 31,152,197,196,173, 59, 10, 9,113, 19, 91, 67,164,249,227, 52,
+182,162, 46, 71, 24,241, 40, 28, 27,115,141,173,133, 19,111,126, 38, 28, 20,150,160, 19, 53,175,187, 42,251,163,240, 24, 88,145,
+229,166, 51,137,140,232,203,181, 86, 89,104, 57,101,221,214,134,229, 91,247,249,194,198, 51,248,195,108,188, 81,157,189, 58,185,
+ 7,222, 50,152,245,170,189,185,163, 9,108, 90,214,198, 93,213,255, 0, 87, 27,210,221,199, 76,102,212, 98,226,130, 66,113,210,
+169,208,145, 38,185, 48,146, 78,148,216, 51,113,194,113,190, 45, 49,114, 14,227,194,125, 78, 10, 51, 79,101, 8, 0,160, 19,239,
+198, 75, 1,177,100,129,242,198, 61,206, 46, 0, 33,189,234,251, 54, 36,153, 93, 52, 77, 46, 34, 5,148,187,227, 54,227,199, 73,
+176,111,143,134, 61,222, 66,190,237,241,234, 93, 7,128,156, 99,174,250,225,123,170,180,209,110,202, 54, 21,137,137, 29, 74,184,
+111,231,141,201,137, 20, 39,196,145,127, 76,100,148,130,157,196,219, 26,222,113,182,211,125,220,143, 76, 12,221, 60, 79,234, 52,
+253,147,100, 64, 21,180, 56,195, 9,218,142, 62,120,212,185, 13,168, 16, 15,195, 3, 37,207, 82, 84, 72,195, 69,213,148,158,119,
+ 96, 10, 89, 81,147, 71, 67, 6, 52,167, 21, 39,109,123,244,192, 73,111,132,172,237, 87, 24,115, 46,165,222,141,164,223, 3, 31,
+ 89, 90,190,120,136, 58,213,230,155, 32, 83,168,178, 84, 85,107,224,221, 45,226, 19,215,229,128, 16,129,176, 54,243,227, 6,169,
+106, 9,229, 88,124,212,156, 77, 26,101,219,142, 85,206, 54,247,196, 14, 78, 26, 52,177,110, 49,234,149,230,113, 32,106,161, 69,
+110, 91,230,252,155,227, 5, 72, 4,217, 29,113,130, 82,228,133,165,166,144, 84,162,108, 6, 36, 20,138, 12,122, 82, 68,201,190,
+ 55,237,112,157,190, 22,255, 0,188,225,249, 84, 20, 82,129,173, 50,135, 72,117,108,137, 21, 21,150, 16, 71,132, 91,196,175,151,
+150, 4,213,115,125, 58,149, 43,234,250, 28, 61,210, 13,198,240,110,175,141,207, 79,150, 48,212,156,222,170,100, 23, 28, 47,115,
+111, 14,206,167,241,197,109,145,171,238, 87,107,238,200,158,247,114,194, 13,237,123,173,195,233,238, 24,164,235,164,154,100,130,
+173, 77, 93,249, 69,165,185, 17, 51,164,158,241,247, 5,212,165, 18,118,143,119,247,225,245, 74, 90,227, 32,168,174,222,227,134,
+ 89, 34, 82,101, 66, 47, 95,195,110, 9, 56, 27,159, 51, 85, 62,154,149,239, 95,221, 28,226,227, 73,134, 65, 21, 85,102, 22,102,
+148,204,225, 30, 40, 82, 92,125, 32,158,156,224, 68, 56,185,107, 57,214, 67, 19,234, 1,101, 10, 23,104, 43,174, 41, 29, 90,215,
+152, 84,247,204,102, 25,117, 75, 42,179, 97,148,220,147,138,162,126,126,237, 79,147, 67,154,165,165,217, 1,252,206,220, 71,210,
+169,217,126, 12,132,137,142,178, 77,138,154, 11,178, 84,180,143, 22,210,161,112, 15, 56,101,129, 29,227,165, 22,221,181,188,168,
+ 27,242,174,207,214, 45, 73,139,164, 20, 4,207,157, 75,109,218, 50,155, 68,117,251, 38,229,200,101,229,171, 98, 44,210, 65, 46,
+ 37, 68,132,248,124, 64,249, 16, 73, 79,205,253,104, 38,102,185,204,170,207,203, 79, 64, 15, 62,243,109,181, 37, 73, 42, 93,182,
+ 18,171, 39,238,139,241, 99,207, 91,129,128, 29,160, 62,147, 29, 64,147,152,232,163, 84,116,203, 48,228,186,115, 85,214,214,235,
+ 25,150, 19,172,201,117,212, 40,134,124, 32, 20, 4, 7,123,181,146,149, 43,132,249,114, 48, 63, 36,206,206, 90,137, 93,115, 61,
+230, 30,249,104,117,107, 49,212,240, 32,175,113,185, 95, 62, 71,139,122,129,131,148,144,172,252,163,106,155,141,173,150,123,201,
+131,215,157, 73, 87, 1,167,146, 59,182, 82,148,142,128, 12,117, 71,100, 28,202,205, 75, 77,191, 71,156,118,238,210,228, 41, 9,
+ 4,255, 0,209,171,196, 63, 61,195, 28,226,244, 5,177, 13, 46, 6,109,199,138,231, 6,244,195, 83,102,105,148,241,152,154, 87,
+250, 56, 90, 4,182,192,251,205,238,218,109,239,228, 31,150, 44, 54,172,201,129, 85, 25,115, 43,146,107,180,218, 90, 61,127, 44,
+111,105,105, 38,226,223, 44, 70,178,198,110,165,102,154, 52,122,229, 22, 88,122, 60,134,194,144,180,255, 0, 15,142, 10,183, 47,
+204, 28, 21, 37, 93,107, 76,132,198,212,110, 44,158,236,219,139, 28, 63,143, 37, 43,177,176, 62,235, 98, 60,196,195,235,135,176,
+230, 0,174, 15, 92, 58,138,198,179, 66, 83,109,171,113, 71,146,243, 64, 93, 3,229,141,107,157,183,130,191,150, 7,174, 89, 31,
+173,110, 56,195, 89, 83,211,110,191,158, 4,115, 40,235, 80, 13, 4,152, 20, 73,250,162, 80,124, 74, 24,105, 34,164,149,139, 3,
+215, 2,156,152,165, 30, 85,127, 76,105,113,229,168, 90,231, 18, 75,122,213,144, 2, 69, 19, 83,193,195,201,199,137, 3,203, 12,
+163, 56,161,213, 95,142, 28,119,192,114, 14, 54,173, 46,148,202,114,157,171, 22,246,209, 47,156,195,122,114, 18,155,116,194,216,
+159, 76,105,106, 75,107, 36, 37, 96,144,108,108,113,189, 42, 73,231, 27, 8,115,180, 78, 97, 88, 46,180, 91, 86, 83, 72, 36, 95,
+129,143,118,156,100,146, 15,221, 24,220,152,238, 44, 92, 52,109,134, 82,146,157,205, 64, 54, 85,176,166,251, 79,166, 22,213, 94,
+214,195,133, 52, 81,247,145,140, 10, 20,162, 54,167, 8, 45, 36, 77, 46,205, 83, 17, 88,198,142,185, 46,134,210,109,234,112,241,
+ 77,199, 76,119, 33, 71,149,246,182,218, 86,130, 46,130,124,254, 56,214, 30,110,149, 13,233,210,142,212,180,217, 90,207,160, 2,
+231, 28,155,173, 29,163, 53, 3, 46,178,254,171,100,166,166,210,104, 82, 28, 49,170, 19,229, 71, 79,112,147,115,103,148,187,110,
+ 77,133,172, 64, 62,252,114,248,206, 44,150, 92, 13, 5,104, 72, 3,196,159,231, 74,190,149,219,225,236,135, 94, 4,147,200,111,
+ 21,208, 84,188,225, 94,211,172,204,114,142,104,168, 55, 84,132,152,139,117,170,146, 30,239,100,157,160,169, 93,226, 16,144, 18,
+ 0,244,235,135,210, 53,195, 79,126,183, 69, 11,235,160,185, 18, 32,251, 92, 85,182, 82, 91, 91,118,191, 38,254, 19,107, 30,113,
+243, 86,177,219,170,143,167,179, 42,121,135, 38, 86,220,145, 46, 69, 73,217, 20,250,181, 65,197,186,212,132,169,189,138,108, 43,
+130, 7,136,155, 31, 63, 76, 80,249,255, 0,180,158,170,102, 7, 42,210, 41,153,177,198, 99,189, 79,238,164,152,207, 17,184, 27,
+ 94,231,112,230,252,113,205,184,198, 21,133,190, 55,121,112,174,208, 0,142,233, 4,136, 62, 32,141,127,125,199, 74,195,186,227,
+ 36, 90,142,226,119,141,249, 14,158,117,222,253,172,126,146,109, 60,250,130,161,167, 89, 82, 60,197, 76, 15,247, 18,223,113,132,
+ 46, 43,204,169, 32,144,149, 19,125,225, 87, 29, 45,239,199, 55,102,158,223, 58,171,167,185, 86, 62, 82,210,201, 38,137, 71,101,
+ 14,188,220, 84,200,105, 13,135, 22,224, 87,123,192, 81, 74, 65, 22,218, 79, 67,142, 33,205, 90,179, 10,171, 76,106,133, 34,168,
+228,167,217,117, 37, 73,108, 43,109,137,228, 21, 94,220, 96, 46,110,204,149,136,146, 96,210, 37, 79,122, 60,105, 42,176, 75,175,
+238, 79,119,126, 46, 60,192,228,227,176,181,192, 24,100,140,234, 36,147, 39, 55,132,108, 52,143, 42,225,159,199,241, 23,238, 59,
+ 85,186,115, 64, 29, 52, 29, 58, 78,230,187,110, 63,210, 47,171, 57,202,112,133, 92,212,161, 38,160,228,177, 32,178,152, 12,187,
+ 30, 58,130, 45,118,183,130, 71, 22,184,189,186,227,110, 69,250, 78, 51,190,153,101, 60,215,151, 50, 74, 88,129, 58,168,165,150,
+106, 29,195,108,165,151, 9,251, 71, 16, 54,242,163,229,233,124,112, 46,123,207,239, 73,152, 24,162,161, 61,204, 7,212,216,155,
+ 13, 5,176,240, 61, 20, 71,151, 76, 48,111, 60,202,170,237, 97, 50, 84, 20,142,165,106, 82,247, 31, 79,118, 52,127,161,217,191,
+ 14, 56,153,219,126, 80,100,127, 29, 40, 3, 22,187,246,142,213, 75, 37, 94, 38,126, 63, 42,250,249,217,211,233, 81, 98, 70,148,
+ 72,164,103,124,217, 25,204,196,203,145,217,164, 74,170,164,247,114,148,162, 2,251,213, 32,168,166,198,231,119, 75, 91,140, 95,
+244,175,164, 35, 67, 88, 68, 72,186,129, 87, 77, 18, 75,201, 9,121,231, 22, 28,142,151,127,101, 43, 79, 36, 30,160,144, 56, 56,
+248,131,166,218,223,152,180,242,166, 12, 40, 12,199,125,212,168, 23, 4, 52, 56,226,144,160, 65, 27, 87,193, 4, 31,150, 38,116,
+ 94,208,110, 76,201,135, 43,231, 58,148,215, 41,226, 67,138,132,202,154, 79,250, 58,207,136, 42,224, 2, 65, 36,220, 95, 25,207,
+224,138, 15, 74, 63, 79,199,221,167,195,229,177,233,108,184,219, 20,181,202, 51, 5, 36, 8,131,175,198,102,121, 87,220,220,189,
+172, 90,105,159, 41,255, 0, 91,101, 76,245, 77,153, 28,172,160, 45,185,105,235,243, 56,105,153,179,238, 75,161, 82, 95,174, 86,
+179,141, 58, 44, 40,192, 25, 18,157,150,144,134,193, 54,186,141,248,199,196,218,167,105, 92,193, 43, 47,194,202,249,118,172,245,
+ 42, 12, 32, 84,149,190, 82, 82,235,155, 70,237,167,109,211,127, 43, 19,137, 14, 94,237, 18, 51, 4, 21,229, 74, 14, 82,147, 84,
+106,163, 24,125,103, 5,164,240,250, 27, 79,141, 69, 92, 21, 40,168, 92, 88,116,247,226,187,152,107,246,237,231, 87,211, 65,212,
+157, 6,218,252,205,116,237,113,234,214,220,118, 34,127,246,250, 71,194,107,233, 38,180,246,173,167,101,252,244,222, 65,201,213,
+152, 79, 69,105, 74, 21,154,219, 46,182,235,109,180,166,194,155, 91, 4,173, 41,116,146,171, 90,226,220,249,227,156,179,159,105,
+125, 78,204,249, 29,154, 37, 39, 49,202,126, 93, 33,231,227,213,167,191, 49, 40, 70,197, 93, 77, 40, 32,125,229,132,241,226, 81,
+ 3,223,142, 54,155,175,175, 10, 29, 71, 44, 12,175,220, 48,128,160,168,147, 29, 40, 49,208, 14,237,137,113,126, 62,156, 14,111,
+137,212,188,253, 47, 43,233,204,125, 86,151,146,225, 83, 40,249,138,148,168,212,104,116,234,154,148,229,218, 33, 37,231, 55, 40,
+253,173,252,237,111,118, 50,110,108,113, 22,138, 75,170,204, 52, 16, 32, 2,122,145,154,117, 4,233, 37, 58, 13,122,229,189,197,
+ 47, 93, 21,169, 68,128, 57, 14,159, 31, 10,183,179, 94,112,212, 26,254, 79,167,230, 74, 70,125,155, 18,179,245,114,100,212, 35,
+ 74,173, 41, 54, 66, 85,181, 42,109,182,205,150,226,173,114,159, 75, 96,234,251, 97,106,243, 52, 42, 85, 86,101,110,125, 58, 45,
+ 62,152,136,209,167,209,105, 97,150, 38, 58,149,130, 3,225, 73,176,122,197, 91,201, 85,185, 6,216,231, 58,110,110, 68, 28,191,
+ 68, 53,106, 90,232, 52, 60,201, 86,246,215,235, 5,244,185, 32,161,180,237, 83,125,229,138,146, 73,230,199,175,166, 52,235, 23,
+104, 38,243,198,114,122,133,150, 39,119,116,133,109, 68, 72, 84,214,150,203, 85, 5,164, 4, 37,197, 32,120, 59,203, 1,185, 65,
+ 34,231,203, 21,173,172,221, 85,194, 83, 18, 82, 84, 66,186, 9, 0,164, 17, 58,238, 34, 98, 6,189, 69, 54,241,181,165, 5, 89,
+251,219, 1,204,248,252,188,235,189,123, 58,125, 38, 25, 95, 63,206,111, 46,106,109, 7,234,135,151, 39,185,110,170,153, 8, 49,
+182,237,240,169,194, 79,133, 74, 32,244,227, 29, 61, 78,206,217, 66,167,151, 83,155, 41,249,138, 35,244,229, 35,112,154,211,193,
+ 77,145,241, 24,248,163, 63, 55, 80,234,181,234,125, 63, 44,228,134,225,138, 20, 62,242,175, 21,201,192,183, 33, 64,139,184, 9,
+ 41, 81,235,210,255, 0, 12,117,167, 99,238,212,204,228, 90, 25,211, 58,206, 81, 53,122, 13, 62, 59,107,126,165,151,221, 82,216,
+105,151, 84, 84,227,178,133,174,109,113,101, 91,139, 17,141, 91,251,183, 45, 25, 14,100,130, 99, 67, 2, 53,137, 38, 79, 80, 96,
+114, 58, 77,116, 86, 28, 72,227,131, 35,186,244, 53,209,250,213,155,114, 2,179, 93,217,205,113,102, 37,104,239, 10, 26, 76,196,
+173,133, 30, 10, 85,221,184, 18,122, 92, 16, 58, 97, 99,151,181,230,163,163, 20,236,200,212,156,141,155, 50,173,102,153, 39,122,
+152,114,169, 53, 74,146,201,184, 37, 11, 7,145,107,241,238,248, 97, 99,146,119,134,223,184,117, 78,185,112,185, 81, 39, 64, 99,
+ 94,144,168,138,205,126,253,194,242,137, 35,126, 71, 74,250,194,132,244, 55,195,200,113,136, 29,229,240,221,132,248,135,199, 4,
+ 16,176, 18, 2, 79,150, 59, 60, 66,225, 77,162, 7, 58,234,237,154,204,169, 52,150,189,157,112,222, 67,252, 95, 25, 58,231, 23,
+ 39,140, 51,147, 40, 36,220,114,113,204,169,100,154,217,109,178,107,213,204, 45,158, 45,141, 98,166, 82,163,124, 51,126, 69,239,
+124, 53,113,244,129,193,231, 16, 10,154,180,150, 68, 81,163, 87, 73, 78,210,113,173,115,144,187,133,155, 96, 33,149,180,240,113,
+232,152, 84, 57, 56,121, 53, 32,196, 83,154,131,169,231,106,133,176, 34, 67,206, 95, 14, 37, 74, 66, 82,121,231, 3,221,144, 22,
+110, 14, 28, 77, 90, 66, 0, 21,232,125,203,216,158, 49,152, 9, 81,189,252,241,165, 4, 44,216, 97,195, 97, 32,218,248,148, 19,
+ 68, 48, 41,212, 84,132,218,248, 37, 25,212,131,112, 48, 49,178,145,208,252, 48,225,151, 82,146, 2,149,111,137,196,130, 73,160,
+ 44,131, 70, 99,190, 15, 55,198,242, 73,248,224, 92,119,145,112,174,240,126, 56, 61,150, 34, 34,116,190,245,205,170,109,171, 21,
+130,122,159, 33,254, 61, 49, 34, 34,170, 44,128, 38,139,229,218, 81,132,208,155, 37,145,222,175,238, 5,113,180,122,252,113,186,
+179, 48, 50, 10,183,254,175, 0,117, 62,252,109,153, 39, 98,142,196,149,145,233,128, 21,151,223, 8,113,197,144, 9, 29, 54,224,
+ 43, 81,136,170,154,168,230, 53, 92,106,238, 98, 98, 20, 39,156,113, 59,212, 18,108, 73,251,184,165,178, 14,119,118,163, 91,113,
+142,244, 54,143,105,218, 18,165,242,171,158,113,104,107, 74,216, 52,167, 91, 97,145,189, 73, 55, 54,220, 78, 57,123, 44, 87, 14,
+ 79,213, 70,215, 60, 31,103, 83,188,238, 28,130, 79, 23,197,126,200,169, 36,209, 91, 80,218,190,130,229,247,151, 78,203, 12,173,
+147, 96, 88, 4,155,115,211, 21,126,171, 84,164, 20, 59,185,103,113,191, 67,206, 39, 57, 27, 49,181, 89,203,145,154,218, 47,220,
+131,201,247, 98, 59,169,121, 41,250,156,103, 87, 25,126, 37, 32,242, 49,117, 36, 6,196, 85, 39, 37, 74,174, 82,170,179, 90,205,
+ 90,146,221, 14, 3,123,201,243,183, 67,126, 49, 47,205,154,103,170, 25, 86,135,178,145, 95,159, 21, 98,202, 75,177, 29,216,160,
+127,187,227,137, 6, 66,200,107,203,217,241, 85, 73, 74,220,182,215,116,139, 98,198,205,217,145,170,205, 45, 81,148,194,119,116,
+196, 20,176,161, 21,105, 50,212, 20,239, 92,135,153, 6,107,204,111,171, 47,234, 68,193, 83, 75, 66,237,251,115, 9,113, 65,119,
+184, 85,200,242,182, 38, 89, 59, 79,168,201,165, 50,211,101, 4, 37, 62, 45,160,117,198,253, 67,203, 43, 69, 84,212,119,129,119,
+ 57, 36,112,110,112, 94,131,150, 93,167,195,106,107, 79, 40,165,225,123,142, 44,124,198, 34,149, 32,236, 34,162,249,113,104,149,
+ 42,106, 43,155,178,186,162,165,214,144,223, 10, 65, 9,219,231,231,138,139, 53,230, 88,212,158,246,140,235,128,180,248, 45,172,
+ 31,222, 4, 3,242, 54, 56,186, 53, 23, 49, 63, 71,140,242, 82,214,226, 18, 65,184,232, 61,113,203,217,162,162,186,174,102, 92,
+ 53,155,184,227,183, 40, 39,175, 56,179,106,231,247, 42,146, 82,102,106,230,208,205,109,206,122,111, 5, 84,232,146, 67,209, 92,
+ 30, 22,222,241, 37, 10,247,122, 95, 22,107,125,171,243,162,141,219,133, 16,123,138, 14, 40,236,159, 73,117,168,237,177, 33, 23,
+ 66,211,224, 82,189,125, 13,176, 90,116, 89, 81, 89, 83,172,166,234,108, 93,105,191, 84,250,143,134, 59,174, 26,123, 11,114,235,
+176,188,109, 36, 43,101, 30, 71,161,240, 63, 3, 88, 56,243,184,144,183,237,173, 28, 32,167,112, 57,143,220,124,170,224,111,181,
+182,118,138,221,149, 2, 35,138,234, 9, 73, 24,124,231,108,236,196, 99, 32, 70,203,113,144,224,255, 0, 88, 84,178,111,142,119,
+147,153, 20,201,220, 79, 24,214,230,106, 74,145,100,117,199,168,126, 82,193,220,130, 88, 31, 26,243,223,205,120,194, 4, 7,141,
+ 91,213,206,212,218,157, 50,172,170,147, 53,179, 28, 17,100,176,208,240, 36,124, 48,218,143,218,223, 83,232,175, 19, 34,162,137,
+141,168,220,162, 66, 47,111,158, 41,233, 53,235,164,172,185,206, 7,185,153, 16,226,138, 66,133,241,124,112,214, 22,166,242, 22,
+ 19, 30, 66,170,163,136,177, 32,230,126,217, 83,230,107,173,114,175,109, 44,191, 46, 50, 81,153,232, 78,178,231,154,227,170,233,
+ 63, 35,131,255, 0,231,127,165, 97, 10, 80, 50,247, 14,137,238,122,227,139,152,204, 14,216, 13,215, 3, 14,227,102, 54,183, 0,
+190,184,200,119,128,176,101,175, 48, 73, 30, 0,233,245,173,182,248,227, 22, 75,121, 74,129,243, 26,215, 92, 77,237,153,147, 90,
+ 73,246, 10, 36,151, 21, 99,183,122,128, 23,196,106,163,219, 39, 51,200,109,214, 41,244, 40,237,111,184,109,101, 68,148,140,115,
+155,185,132,149,120, 69,189,248, 77,230,165,180,171, 41, 67,241,197,150, 56, 55, 8,103,102,231,204,147, 84, 31,226,220, 85,223,
+251,145,229, 2,186, 47, 71, 59, 68,191,150,170,179, 31,206,111,200,146,220,197, 5,110, 74,175,177, 94,182,197,235,147, 53,115,
+ 36,103, 56,166, 69, 42,180,210, 84,159,188,219,202, 9, 80,252,113,193, 80,179,138,247,237, 82,198, 10,196,206,106,100,133, 37,
+226,159, 93,170,182, 5,127,195, 12, 60,178,180,119, 73,233,183,165, 14,207,137, 46,109,210, 16,190,242, 71, 93,253,107,232, 84,
+ 74,229, 25, 77, 7, 81, 81, 97, 66,246, 42, 14,139,127, 28, 18, 98,183, 79,148,128,152, 82,218, 89,181,236,133,131,124,124,250,
+137,159,103, 6, 59,182,106,143, 0,122,164, 58,112, 78,141,171, 57,139, 42,200,250,210,155, 95,122, 58,155, 73,187,157,233,178,
+ 71,159, 92,114, 23,156, 16,251,146,160,246,190, 35, 79,157,116,182,220,110,203,121, 82,166, 52,231, 7,248,174,241,113,254,240,
+220,163, 27, 19,220,161, 37,205,215,176,232, 49,198,212,206,216,186,139, 67,152,212, 71,234,226,114,220,104,186,152,203,103,122,
+214,129,114, 84, 2, 69,236, 45,215, 19,252,129,219,155, 43, 84,226, 45,204,249, 13,202, 96, 41, 61,219,157,218,199,139,246, 84,
+146, 46,147,142, 82,251, 1,197,173, 26, 86, 85,165, 97, 34, 72, 74,132,129,214, 55,174,146,211,137,240, 75,181, 12,210,130,127,
+228, 52,245,218,188,215, 94,215,185, 41,188,191,245, 99, 53,186,180, 57,176,171,197, 53, 10,108, 88,189,211,254,206,218,182,169,
+197,110, 7,192, 47,127, 9, 23,252,177,243,231,180,119,106,188,215,158, 21, 84,136,137,177, 95,164,102,106,194,183,179, 45, 65,
+106, 82, 26, 1, 13,148, 36, 4,134,201,183, 36, 36, 95,215, 7,251, 84,235, 58,145,168,146,245, 61,213,119, 80, 30,117, 77, 33,
+ 18,166, 5, 60,224, 42,185,111,105, 79, 59,147,250,192,121,115,142, 75,173,106, 46, 70,154,107, 47, 74,137, 37,245,169,228,253,
+ 87, 13, 42, 67, 73,105, 5, 87,185, 88, 55, 4, 92,244, 7,229,142, 38,199, 14, 91,215, 10,188,121,174,241,136,208, 18, 53,253,
+ 51,202, 12, 25,158, 94, 85,195,227, 56,219,215,107, 34, 99,246,218,136,106, 20,108,230,136, 17,114,107, 49,153,155, 13,185,174,
+251, 29, 41,165,217, 77, 41, 96, 2,178, 65,228,250, 12, 85,249,247,235,154, 53, 81,188,162,169,174,195,144,227,253,219,140,190,
+239,250,145,239, 35,203, 12, 94,212,108,195, 73,175,177, 63, 43, 86, 84,167, 97,184, 22,211,206,166,224,184, 61,198,225, 86,247,
+227, 84,250,181,126, 69, 98,161,155,171, 77, 71,126,120,251, 89, 37,100, 30,242,252,149, 90,254,167,160,233,142,223, 13,106,229,
+133,128,178,152, 35,161, 4,170,122,109,207, 94,100,239, 92, 67,239,184,162, 9,175, 39,253, 89,147,106, 46, 49, 76, 68,137,172,
+173,189,174, 75,104, 92, 18, 71, 3,159, 67,252, 49, 23,175, 78,139, 38,160,203,177, 42,171,146,234,148, 3,203,124, 27, 54,155,
+ 14, 49, 38,115, 45,206,166,165,138,142, 96,172, 38, 34,167, 54, 36, 53, 13,135,129, 40,107,201, 86, 7, 21,253, 85,205,181,169,
+ 17, 33, 77, 81,105, 75, 61,217, 88,228,143, 95,142, 58, 27, 66, 22,102,100,245,170,169,112, 57, 36, 26, 49, 82,204,241,233,189,
+245, 46,159, 41,110, 50,229,186,144, 18, 85,110,160,127,102, 6,210, 29,169, 83,222, 69, 82, 44,149,199,109, 75,218,227,163,160,
+189,250,250,224, 82,195, 45,190,165,205,120, 92,116,183, 91, 99, 25, 85, 71, 30,100, 67, 68,165,247, 73, 55, 66,124,175,235,139,
+201,108, 37, 57, 69, 60,154,147,102, 28,193, 41, 85, 72,245, 33, 84, 84,158,229, 3,187,251, 95, 18, 64, 61, 61,113,237,127, 62,
+201,175, 6, 27, 33,108,161,176, 74,148,149,220,168,159, 60, 70, 95,154,137, 8, 73,104,142, 19,181,203, 12,102,218,217, 91, 74,
+ 13,143, 16, 29, 78, 24, 54,132, 0, 99,106,116,172,136, 39,122,156,229,173, 67,221, 82,129, 2,187, 1,185,241,218, 89, 67, 96,
+ 93, 42, 81, 80,218, 7,227,108, 89,116, 71,179, 21, 31, 81, 94,165, 82, 99,179,151,153,161,197,223, 61,185,149, 0,181,168, 20,
+141,197, 4,248,183, 18, 65, 9, 7,140, 80,180, 10,173, 54, 43,203, 69, 74, 27,174, 40, 54, 67, 61,209,177, 74,252,142, 39,115,
+ 81, 88,246, 89, 82, 51, 54, 74,117, 18,229,197,109,214,139,151, 71,216,132,255, 0,172, 55, 55, 36,218,247,243,198, 22, 38,209,
+ 46,107,160, 32,141, 78,146, 72,212, 9, 0,232, 76,233,252,219,109,245,132,229,250, 81,154,254,166, 85,127, 72,170,217,121,213,
+111,139, 53,194,204,137, 18, 90, 14, 56,164, 5, 92, 40,219,139,222,220,140, 72,245, 37,186, 75,180,156,183, 71,203,154,145, 26,
+100, 88, 12,165,107,134,227, 10,105, 48,214,183, 6,224,178,174, 21,207, 36,129,211, 16,172,255, 0, 80,201,217,178, 37, 6, 86,
+157,229, 9,116, 56, 13, 67, 13, 84,170, 83, 29,220,137, 18,121,185, 7,201, 60, 88, 99, 93, 31, 57, 86, 41,236,211,114,134,161,
+209, 89,168,209, 26,150,169, 8,140,195,137,101,199,201, 77,133,222, 0,170,221, 45,229,140,146,195,138, 13,186,216, 41, 41,153,
+ 71,118, 78,132, 79, 49, 58,104, 51, 13,245, 52, 86,238, 86,161, 10,216,233,241,240,253,170,108,214,104,169,101, 12,241, 58, 46,
+105,159, 10,180,220, 39,193,167,211,216, 95,127, 17,194, 69,194,208, 83, 97,110,150,183,204, 97,228,238,208,149,202,236,216, 84,
+188,187, 22,149, 77,133, 70,154,169, 44, 73,106,158,148, 72, 36,128, 86,208,113, 41,185, 3,145,111,126, 33,153,131, 52, 84,227,
+ 81,103,102, 60,176,236, 72, 49, 95,117,182, 61,149,201,136,117,244,109, 59,129, 70,225,184,164, 90,215, 30,156,226, 63,150,115,
+ 69, 57, 16,101,203,173,255, 0,165, 43,188, 85,163,184,118,239, 42, 28,174,227,161,195,180,211,138,100,168,141, 68, 13, 58,192,
+157, 54, 7,222,124,234, 70,233,198,204, 36,192, 63, 41,235,185,171, 78, 70,100,203,153,194,109, 87, 57, 49,147, 93,105,151, 74,
+ 18, 35, 70,124, 32,178, 66, 44,108, 57,222, 9,241, 17,135, 29,158,234,129,157, 64,141, 10, 95,181,184,201, 73,118, 84, 54, 22,
+ 91, 68,176, 8,251, 37, 56,146, 10, 69,141,237,207,151, 7, 21,221, 17,232,173,215,125,147, 38,190,244,168,146, 34,131, 41,185,
+ 13, 13,237,221, 62, 32, 61,195,246,176, 41,252,207, 85,162,204, 12,208,115, 35,233,109,133,149, 89, 14,148, 16,111,197,185,247,
+ 12, 9,118,142, 62,202,217, 73,137, 2, 38,116, 31, 79,129,231, 51, 82, 69,242,144,160, 73,219,165, 93,189,165,181, 7, 38,229,
+108,252,154, 30,155, 72,169, 18,196, 80,154,187, 21,136,129,181, 71,147,114, 84,218, 10,198,245,161, 32,128, 20,176, 14, 22, 42,
+106,173,122,169,152, 39, 43, 58,106,229,102,163, 85,153, 85, 1, 76,205, 50,195,206,172, 35,194,123,194,162, 85,113,192, 23,244,
+194,196,108,173, 25,182,181, 67, 75, 73, 90,146, 32,171,121, 60,245,210, 96,233,183,157, 73,215, 74,220, 42, 26, 3,215,122,253,
+ 55,177, 33, 42, 1, 72, 87,192,131,135,168,112,119,124,168,123,206, 41,202, 30,171, 84,104,145, 83, 18, 67,105,125, 9,251,170,
+ 82,185, 24,115, 39, 92,234,132,142,226, 35, 41, 77,185, 4,223,156, 94,191,225,252, 65,245,101,108, 2, 58,205,122,189,167, 19,
+225, 73,111, 50,201, 7,164, 85,161, 46, 85,147, 96,175, 60, 13,149, 35,175,139, 21,219,154,215, 82,117,165, 5, 70,103,113, 30,
+ 21, 11,241,134, 82,117,142,164,153, 1,192,195,101,189,150, 40, 62,190,184,202,252,169,139, 40,254,145,235, 90, 72,226,236, 21,
+ 49,222, 62,149, 99,173,251,242, 78, 27,186,249,190, 43, 25,154,209, 91, 90,137,143, 29,148, 15,133,240, 18,173,170, 89,158,160,
+174,106, 5,161,251, 45,113,139, 12,112,102, 40,225,239,194, 71,156,252,170, 78,241,190, 14,218,123,153,148,124,163,231, 87, 27,
+142, 88,245, 24,192,200, 23,177,116,124, 47,138, 34, 70,160, 86,148,229,157,171,188, 72,255, 0,230, 28,105,119, 54,212, 92, 29,
+231,214, 46,159,131,135, 26, 72,224, 71,249,186, 61, 15,239, 84, 15,226, 5,176,217,147,234, 63,106,189, 37, 79, 97,181, 4, 56,
+250, 1, 61, 1, 86, 7, 75,204,180, 72,193, 69,250,163, 41,219,247,134,254,113, 71,202,205, 82,221, 59,213, 53,194, 71, 75,172,
+225,191,215, 14,173, 91,221, 93,239,234,113,117,158, 4, 72, 50,227,190,131,249,170,206,254, 33, 24,254,219, 32,121,159,226,174,
+ 33,170,185, 77,178,173,210,156,240,222,222, 14,184,212,246,182,229,166, 25,220,136,239, 41,103,245, 45,108, 83,206,203,120,168,
+ 40,116,198,181,187,179,198,165,223,231,141,102,248, 47, 8, 27,230, 62,255, 0,226,177,157,227,220, 89, 91,101, 30,239,230,173,
+ 21,235,236,181,135,147, 26,148,145,127,245, 37, 74,233,241,196,126,126,119,204, 53,153, 94,215, 46,172,232, 62, 73,109, 86, 9,
+252, 49, 12, 76,183, 2,192,108, 90,254,184,122,151,100, 5, 11, 44, 16, 71, 56,214,183,192,240,203, 19, 45, 54, 1,245,249,214,
+ 13,223, 17, 98,152,128, 9,117,210, 71, 77,190, 85, 38,107, 50, 87, 16,139, 26,172,130, 47,113,246,167, 29, 41,162, 57,106,163,
+150,178, 67, 47,214,222,113, 83, 39, 17, 33,212, 58,178, 75,105, 35,192,142,124,194,121, 62,245, 91,203, 20,223,103, 13, 34,168,
+231,250,250, 51, 37,102, 53,168,180,215, 2,157, 43, 28, 72,116,114, 27, 30,163,161, 87,187,143, 60, 92, 85,173, 77,166, 67,172,
+191, 74,113,244,165,198,239,100,147,201,199, 9,198, 23,246,225, 66,205,144, 58,168,143,128,250,159,117,118, 92, 35,103,112,164,
+155,183,137,141,146, 15,196,253, 7,190,164,181, 42,220,120, 39,126,240, 13,237,215, 17,220,207, 92, 84,132,150, 99, 58, 54,237,
+228,142, 77,206, 43,188,235,171,112, 89, 73, 83,147,146,147,126,128,244, 23,192,108,149,169,201,205,117, 31,104,102, 86,246, 82,
+178, 10, 47,192,244,199, 12, 65,203, 93,174,105, 52, 91, 57, 82,211, 38, 58,214,249, 82,148,121,235,142, 95,237, 15,145, 38,193,
+123,235, 58,115,138, 67,161,123,129, 79, 91,142, 69,142, 58,238,182,210, 38, 69, 74, 72, 35,120,184, 73,235,138,131, 88,178,114,
+171,116,245,182, 64,189,200, 73,244, 3,173,190,120, 10, 87,217,170,164,146, 66,166,188,236,149,218, 46, 22,105,161,181,150,107,
+ 83, 11, 51,225,253,155,232,113, 92,174,214, 0,140, 95,115,115,108, 7,153, 84,114,224, 55, 71, 39,169,199,206,188,219, 72,206,
+122, 81,152,218,206, 25, 85,210,151, 90, 88, 15, 32,126,186,111,200, 30,252, 92, 58, 99,218,250,133,156,224,165,167, 38,150,102,
+ 32, 4,201,140,233,241,165, 94,159,227,211, 23, 18,148,169, 50,157,170, 46,182,161,222, 78,213,208, 21, 58, 24,155, 33, 83,169,
+206,164, 27,114,112, 30,163, 2,170,180, 22,209, 98, 74,108,163,211, 1, 50,182,167, 49, 57, 14, 45, 50,197,130,111, 98,172, 57,
+149,168, 44,178, 18,148,188, 63,120,250,146, 73,254, 24,170,226, 32,233, 78,219,240, 53,175, 37,105,252, 41,112,146,186,145,222,
+ 66,175,221,143, 35,193,198,185, 45,194,140,216,105,224,148,139, 18,132,164,113,128,117,157, 75, 49, 2,251,217,169, 65, 60,139,
+ 43,200,121, 98,170,213,238,210, 52, 28,183, 74,118,108,154,178, 80,224,184, 66, 18,171,146,111,108, 2, 72,208, 84, 22,165, 58,
+ 96, 82,237, 27,168, 89,102,133, 77,146, 75,169,239,156, 96,132, 39,247,186, 99,159,180,214,139, 55, 53,215, 27,204, 51, 89, 82,
+119,120,144, 74, 72,184,190, 51,133, 31, 50,107,198,108, 69, 94,180,167, 90,166, 33,203,182,209,224,184, 79,159,195, 29, 3,144,
+244,218, 29, 38, 43, 72, 17,128, 64, 2,230,220, 28, 88,111,251, 73,215,115, 82, 82, 18,210, 35,157, 55,160,229,162,244, 61,174,
+120, 71, 80,160, 1, 3, 25,212,232, 97,182, 59,208,143, 18,122,170,216,158, 65,203,204,196,110,233,111,114, 7, 75, 14,131, 2,
+243, 37, 62, 51,108, 40,163,169,227,194, 57, 7,223,238,197,134, 46,138, 87, 84, 28,111, 74,163, 51,149, 9, 84,151, 83, 61,166,
+255, 0,209, 95, 90,130,118,255, 0,209,172,117, 65,254, 35,212, 98, 62,228,198,211,194, 83,139, 38,171, 30, 29, 69,110, 82, 38,
+168, 8,211, 83,181, 75,181,203, 15, 39,238,172, 15,196, 31, 81,124, 87,117,220,189, 62,137, 84,114,151, 53,177,189,181, 88,148,
+158, 20, 58,133, 3,230, 8,228, 31,126, 62,131,224,254, 33,111, 20,177, 13,186,175,238, 32,107,226, 57, 31,161,241,243,175, 30,
+226,140, 29, 88,125,223,104,216,254,218,246,240, 60,199,237,252, 83, 9,147,129,108,128,139,122,224,114, 29, 88, 89, 40, 23, 39,
+ 6,133, 40,173, 22, 40, 22, 35, 9,170, 10, 26,231,129,142,216, 92,182, 5,114, 93,225, 76,162, 51, 42,219,220, 80,177,232, 48,
+245,150, 6,235,168,115,141,141, 83,214,130, 44,120,198, 74, 97,212, 47,194, 46, 61,112,198,225, 39,157, 54,101, 86, 15, 54,178,
+155, 14, 49,173,182,202, 85,117, 27,227,110,201, 10, 59, 45,197,240,155,153, 76, 19, 61,128,205,103,191, 72,186,153,223,226, 2,
+221,109,136, 42,229, 8, 26,154,140,170,182, 29,136,177, 66,108,122,223, 24, 63, 82,110, 3,125,252,167, 10, 16, 60,254, 87,195,
+ 81,152,155,141,189,188,193, 29,168,197, 43, 74, 90, 91, 78,239, 75,187,151,181, 54,244,242,189,240,238, 94, 87,203, 57,138, 11,
+ 53, 61, 67,172,162, 6, 94, 14,157,201,109, 37,217, 15,184,139, 16,139, 54,163,181, 36,237, 5, 70,246,221,124,114,220, 67,197,
+118, 24, 38, 26,229,202,204,168, 76, 38, 9, 36,232, 32, 13,206,227,106, 51, 9, 46, 58,148, 76, 77, 17,137, 92,101, 25, 98,109,
+113,165, 22,215, 1,145, 37,248,175, 50,176,226,162,220, 2,242, 46, 0, 85,175,123, 92,124,113, 8,175,246,167,163, 81,105,243,
+232,172, 83,123,195, 80, 81,136,100,206,140,149,123, 59, 42,108,221,101, 0,158, 13,193, 10,191, 24,107,154, 39,211,179, 62, 98,
+171, 61,217,234,147, 50, 19,113,166, 9, 81, 62,184,125, 18,223, 41, 62, 29,140, 40, 0, 30, 70,244,216, 34,198,194,215,231, 21,
+180,202,150,113,207,185, 46,187,159,117, 50,155, 75, 93,120, 84,125,154, 75, 51, 35, 22, 30,219, 98,178,226,118,169, 33, 92,133,
+ 11,112, 5,177,225,119, 92, 99,137, 98,229, 66,249,194, 26, 86, 89,108, 16,149, 39, 52, 64, 32, 3, 35,172,168,244, 32,131, 90,
+192, 54,196,134,245, 80,231,203,220,126, 59, 84,165, 29,162,179,157, 37,164,211, 36,103, 8,213, 74,125, 45,135, 89,163, 38,147,
+189, 14,177,188, 41, 42, 78,228,237, 82,146,171,220,223,173,176, 83, 50,106,109, 70,110, 69,246,106,189, 18,189, 61, 69, 59,166,
+212,163, 70, 89, 67, 10, 74, 56, 5, 43, 23, 87, 66,110, 15, 56,170, 51, 5,114,153,151,178,100, 28,229, 71,166, 46,152,182,160,
+247,110, 3, 45, 46,183, 53,221,228, 41,208, 57, 41, 72, 30, 18,159, 94,152,101,151,117,111, 85,116,204,210,243,213, 58,171, 93,
+ 48, 21, 23,116, 50,243,170, 44,186,146,181, 5, 49,226, 4, 4,216,146, 13,143, 76, 98,151,148,153,118,204,101, 82,165, 36, 19,
+151, 57,214, 82,114,233,169,212,239, 36,201, 18, 42,201,184,116,146,151, 21, 49,175,220,235,211,253, 80, 93, 83,175, 80, 43,148,
+202,100,246,171, 79,170,170, 95,113, 79, 73,147, 35,188, 88,109, 55,219,100, 44, 0,132,250,251,241, 9,118,167,147,100,231,236,
+191, 5,186,100, 72,240,156,167,169,170,172,237,253,232,150,242,129, 55,241, 27, 54,111, 97,113,211, 19, 74,236, 45, 43,204,148,
+243,171,114,115, 12,199,171,213,153, 74, 68,156,166,251, 41, 45,181, 31,175,122,183,146, 2, 72, 85,136,216, 44,160,122,140, 65,
+159,127, 50,101,234, 42,170,121, 61,182,133, 40, 74, 72, 45, 38, 27,111, 6, 10, 93, 4, 5, 18, 9, 63,218, 49,176,211,134,226,
+216, 40,102, 7, 84,247,164, 65, 51, 48, 72,239, 1,174, 83, 25, 76, 72,229, 84,110, 51,165, 65, 70, 57,125,255, 0, 21, 12,206,
+236,192,161,231,167, 30,167,211,239, 1, 47,148,169,168,174,111, 78,192,124, 69, 39,161, 54,243,193, 9, 52,212, 85, 98, 57, 78,
+203,153,114, 91,241,230, 29,237,191, 37, 73,178,135,152, 42,176,231,225,128, 25,174, 85, 66,187,155,101, 53, 22,162,153,174, 76,
+120,237, 33, 1,161,117, 27,170,192, 88, 36, 98, 65, 91,107, 51, 35,234,252,181, 25,180,192,101,136,214, 90,158,116,144,108, 62,
+246,235,241,242,199, 67,108, 22, 16,137, 58,199,143,251,172,155,135, 14, 96,158,181, 8,173,192,168, 64,205, 97,138,221, 65,104,
+238, 89, 66, 10, 20, 73,238,145,183,132,220,121, 14,152, 19, 81,162,180,228,213, 41, 50, 74, 90, 54, 45,186,161,109,222,254,112,
+253,202,133, 77, 83,228, 63, 49, 73,144,165, 44,253,178,145,126,240, 94,220, 95, 4,179,221,101,186,189, 42, 26,234,176, 82,194,
+211, 15,187,105,104,103,104, 36,113,113,239,198,251,101,105, 82, 83,247,233, 78, 74,147, 21, 10,146,197, 53,169, 37, 13,186, 92,
+ 64, 28, 43,215, 12,247, 54, 93,224,112, 56, 73, 39, 14,123,174,228,141,200,186,135,204, 28, 35, 0, 74,146,148,199,240, 5,216,
+ 88,159, 60, 91,216, 81, 38,177, 97,148, 54,165, 39,119, 10, 28,115,231,140, 35,119,137,116,169,231,108, 45,212,244, 56,112,251,
+ 9,142,187, 44, 13,201, 22, 81, 9,190, 60,102, 34, 55, 1,191,105, 42,232,175, 63,199, 17, 42, 4, 26, 64,198,244,119, 79,232,
+121,178,177, 91,139, 31, 40,211, 4,169,137,145,222, 71,107, 98, 84, 20, 71, 60,223,203, 7, 17,154, 51, 54,101,204, 50, 63, 78,
+125,181,249,142,184, 33, 42, 96,117, 68, 52,145,225,238,236, 60, 33, 41,177, 60,122, 98, 57, 18,169, 42,137, 40, 61, 71,125,198,
+ 94, 74, 56,121,151, 8, 41,248, 17,211, 18,109, 47,145, 18,136,245, 95, 59,187,156,153,166,200,167, 68, 10,133, 78,168, 70, 83,
+202,158,242,252, 42, 9, 9,225, 36, 3,123,156, 98, 93,153, 74,150, 82, 14,128, 39, 67,154, 73,218, 68,232, 76,114,142,102,138,
+209, 10, 58,214,189, 75,203, 57,103, 45, 84, 24,202,217,103, 63, 46,174,203, 98,234, 40,220,150,219,227,158,166,196,220,158,152,
+209, 55, 53,193,145, 71, 12,213,156,126, 93, 66, 34,144,212, 57, 1, 96, 33, 44,167,245, 72,235,123,224, 83,117, 38,228, 87,100,
+ 78,137, 7,218, 84,224, 82,128, 95, 39,158,164,113,199,174, 36, 82,165,229, 37,101,136,217, 85,134, 18,203,179, 89, 75,239,204,
+124, 32,169, 47, 2, 65, 73, 87, 80,139,121,117, 56,174,232, 82, 16,218, 92,149, 30,103, 73,241, 38, 0,244,141,105, 19,222, 58,
+208,248,212,250,166,106,138,149, 83,221, 43, 68, 84, 23, 28,218,139, 4, 14, 73,249, 97,145,125, 18, 59,214,100,192, 67,164, 89,
+ 69,192,162, 56, 30,152,243,235,105, 10,101, 81, 98,184, 99, 51,110,237,192,194,136, 74,199, 67,199,166, 20,168, 81,162, 5, 52,
+196,207,104, 73,105, 37, 46, 52,155, 38,231,168,247,219, 4, 0,133, 65,247,127,186,132,211,102,234,221,197, 65, 82,105,189,226,
+ 66, 65, 66, 16,165, 27,218,214,228,140, 17,201,149,215,104,149,148,212, 83, 25,135,130,219, 83,110, 55, 36, 2,147,127,225,129,
+208,227,197, 40, 91,100,157,233,191, 32,227,199, 42,204, 55, 72, 77, 61, 20,182,251,192,233, 90,228, 90,235, 80,242, 79,195, 4,
+ 91,105,113, 5, 25,100, 29, 41, 3, 38, 41,245, 86, 89, 18, 73,102,123,102,228,221, 3,144,142,122, 15,118, 22, 52, 26, 90, 90,
+136,204,244, 62,202,196,144, 78,197, 40, 93, 22, 54,228,121, 97, 97, 32,164, 38, 5, 54,252,235,244, 4,138,226,212,129,189, 68,
+143,142, 60, 53,164, 95,149,143,134, 0,170, 65, 41, 0,227, 36,184,139, 2, 18,111,240,199, 93,157, 6,181,187, 69, 81,165, 85,
+151,212, 12,105,114,164,181,117,227,231,134, 40,148, 45,208,223, 26, 36, 62,226,142,219, 31,134, 28, 45, 0,210,237, 21, 79,213,
+ 81,109, 63,121, 64,159,121,195,103,170, 13, 40,155, 92,252, 48,201,196,168,244, 29,113,136, 66,211,200, 23, 24, 40,117, 2,163,
+218,168,214,215,130, 22, 10,193,231,210,248,212,220,149,182, 8, 83,119, 7, 30,219,127,234,219, 25,182,197,207, 32, 96,130,225,
+ 49,173, 64,173, 70,180,148, 23, 15,221,235,132,220,115,188,120, 78, 8,181, 25, 9,111,114,128,233,198, 49, 43,101, 60, 20,243,
+135,246,161, 76,115, 86,149, 37,101, 27, 74,113,225, 97, 42,176, 62, 88,112,151, 89, 80,177,242,194, 5,147,116,132,242,112,141,
+204, 83,101,147, 94,196, 97,165,144, 22,143,158, 37,186,123,167,210, 51,198,102,135,150,233,226,206, 74,116, 37, 75,181,195,104,
+ 28,169, 71,220, 5,206, 35,176, 99, 3, 97,183,242,199, 71,246, 84,200,200,203,244, 55,115,213, 73,144, 31,158, 59,168,100,142,
+ 82,200, 62, 37,123,183, 40,126, 9,247,227, 7, 26,198, 69,149,170,150, 14,187, 15, 51,247, 53,209, 96, 88, 89,196, 47, 18,212,
+105,185,242, 31,113,239,171, 45, 48,178,246,153,228,182,168,212,166, 80,196,104,108,109,109, 62,103,213, 71,212,147,201, 62,167,
+ 28, 17,218,239,180,114,178,222,116,114,161, 68,151,220,186,208, 41, 95, 60, 45, 55,199, 79,246,162,213, 70,168, 20,215, 34, 34,
+ 69,174,131,201, 54,191, 24,249,119,218,231, 80, 5, 65,217, 82,139,227,119, 54, 36,244,199,149, 1,237, 78,151, 23, 94,196,202,
+ 18,130, 26, 64,208, 81,124,229,219,133,198,225, 42, 68,138,178, 84, 92, 77,138, 66,185, 22,190, 36,189,135,187,104, 10,198,174,
+ 71,200, 83,218,113, 81,234, 69, 74,101,197,182,108, 8, 5, 71,159,128, 56,172, 59, 4,118, 33,153,218, 14,106,245, 27, 55, 37,
+102,156, 28, 62,205, 29, 98,232, 85,143,222, 32,245,254, 24,238,173, 58,236,193,166,154,105, 57, 46, 82, 50,187, 6,111, 9,246,
+197, 71, 1, 96,126,202,125, 6, 51,111,111,218, 65, 45, 33, 51,227, 91, 13,177,110,148,144,119,171,190,173, 86, 97, 40, 68,212,
+ 32,108, 45,141,188,242, 15,166, 34,249,141,166,102, 70, 11, 13, 2, 20,174,125,195, 27, 39, 10,155,174,166, 59,141,169, 13, 35,
+165,241,141, 81, 14,189, 20, 50,219,106,233,123,218,216,204, 23, 5,102,161,216, 4,138,170,179,222, 71,167, 84,227,184,243,205,
+ 5, 1,250,160,117,248, 99,156,245, 67, 66,167, 55, 81,250,251, 44,188, 97,206, 97, 91,146,227, 55,230,254, 71,212,117, 24,236,
+153,153, 82, 98,226,111,117,187, 19,200,184,233,136,126,101,201, 44,169,149, 20, 50, 3,150,176, 39,204,127,139,224,200,184, 90,
+ 12,138,100,247, 14,149,197,185,155, 87,123, 70,100, 58, 98, 96, 70,163,135,210, 31, 79,125, 33,181, 16, 74,111,211,242,196,151,
+252,240,107, 41,163, 67,166,185,151,167,174, 90,152, 30,208, 67, 68,128,174, 46, 47,243, 56,188, 51, 62,155, 48,255, 0,136,198,
+ 79, 34,234, 5, 63, 60, 86, 85, 76,145, 14, 5, 68,165,112,209,181, 74, 85,136, 79,167, 24,184,151,210,238,138, 20, 23,123, 44,
+191,166,171,250,198,168,235,126,164, 47,217, 40, 20,111, 96,101,107,186,221,148,191, 21,173,199, 3, 25,229,125, 6,172, 85,106,
+ 40,168,231,186,155,147,228, 15, 18, 19,127, 0,230,253, 15, 95, 60, 90,244, 44,174,195, 9, 74,216, 66, 74, 77,186, 11, 98, 91,
+ 73,164,178, 22,128,166, 64,177, 22, 22,233,137, 74, 83,176,170, 6,229, 64,194, 68, 83,125, 50,211,184,112, 16,218, 19, 28, 55,
+182,214,176,227,225,139, 58, 27,113,154, 72, 96, 53,247, 71, 81,208,251,240, 30,156, 35,176,218, 16,221,129,231,129,135,162,162,
+218, 89, 37,162, 55, 36, 92,223,207, 21,220, 84,212,115,147,169,162, 98, 91, 49,154, 44,128, 45,123,120,191, 86,231,174, 35, 57,
+130, 91,114, 30, 83, 77,139, 42,223,115,204, 17,249, 28, 48,171,231, 72,241, 74,146,137,105, 74,174,119, 37,125, 71,248,254,220,
+ 65,234, 26,136,219,210,220,219,177,181, 33, 94, 27,168,157,255, 0, 3,239,235,248,140, 13, 25,137,210,160,165, 72,210,135,214,
+ 36, 51, 31, 51, 45,144,176, 89,125, 65, 91, 83,250,170,189,190, 68, 28, 62,206, 25, 53, 85,186, 97,125,182,183, 75,132,201,113,
+178, 7, 46,178, 57, 82,125,229, 63,120,123,183,123,177, 90, 72,206,111,230,125, 85,133, 64,165, 74, 70,254,240,170, 69,141,236,
+142,164,227,162,161, 68,238,163, 49, 46,201,220,201, 10, 70,255, 0, 81,229,243,199, 71,134, 98,175,225, 87,109,190,217,212,111,
+226, 57,143,125,102,226,120,122, 47,173, 11, 46,127,144,244, 60,141, 81, 46, 48,211,104,251,159,150, 27,173, 37, 99,193,198, 36,
+250,131,250, 35,150, 51, 36,186, 75,211, 59,189,170, 11,109,178,147,112,133, 13,201, 31,129, 31,134, 43,204,201,159,154,140,224,
+ 69, 10, 23,120, 55,114,167, 56,191,195, 30,255, 0, 97,114,253,243,105, 91, 73, 48,160, 8, 59, 8, 58,138,241,107,171, 53, 48,
+225, 66,134,163, 74, 50,166,157,218, 0, 73,194, 76,119, 15,131,187, 39,229,136, 19,181,172,209, 46, 97,152,229, 77, 77,120,183,
+ 37,180,171,129,238,198,117,156,243, 83,141, 5, 18,235,117,116, 50,195,100, 37, 79, 18, 16,155,251,206, 54, 61,149,244,128, 74,
+199,143,133, 80, 45,164, 81,108,241,169, 52,140,153, 29, 17, 2,183, 75,152,178,203, 14,119, 91,144,202,173,247,148,110, 2,109,
+239,227, 20,222,104,207,191, 90,230,183,101, 81, 43,110,251,100,118, 86,185,110, 48,240,101,151, 72, 77,146, 85,180,144, 79, 91,
+249, 98, 83,171,148,232,211, 50, 67, 53, 25,149, 30,230, 29, 65,149, 56,196,150,156, 27, 94, 74, 79,139,197,229,233,108, 80,250,
+134, 36,100, 89,107,147, 22,169, 29,159,173, 90, 75,113, 88,109,226,151, 18,216, 23, 5, 68,113,110, 71,151, 56,243,254, 33,196,
+ 2,111, 74, 26,115, 48,210, 4,130, 9, 27,157, 54, 35, 95, 77,106,147,189,229,194,106, 91,157,181,169,186,195, 81,234,185,201,
+ 8,126, 93, 61,109,136, 44, 68,126,204, 62,155, 1,247,128, 27,194,108, 56, 81,228,223, 1,171,186,138,251,242,197, 99, 38,195,
+139, 53,118, 73,101, 14, 52,148,119,124,221,104,176, 62, 43, 27,117, 29, 6, 42,204,227,171,213,217, 18, 34,156,217, 57,180, 34,
+ 46,198,196, 40, 76,160,178,173,167,196, 8, 28, 92,142,111,231,128, 79,235, 21,118, 38,104,118,175,149, 42,242, 35,133, 56,144,
+195, 4, 13,170, 0,220, 11, 90,223, 44,114, 46, 91,190,240,152,235,164,156,190, 91,124,124,230,157, 13,168, 65, 21,211, 52, 14,
+211,249,213,202,165, 62, 91, 79,184,229, 74, 52,221,242, 35, 52,148, 52,137, 77,109, 2,214, 30, 97, 93,108, 5,240, 7, 87,181,
+134,179,168,217,114,117, 27, 52, 79, 69, 1,216,210,213, 38, 13, 54,151, 5, 45,176, 93,106,225, 8, 34,251,183, 16, 73, 36,245,
+ 38,254,236, 83,185, 87, 85, 42, 16,115, 23,233,149, 36,188,156,192,213,214,233,125,180,173,189,196,242, 80, 45,225,235,131, 82,
+171,245, 92,231, 91,101,186, 29, 71,188,152, 86,153, 11,147, 33,178,224,113,194, 46,187,133, 2, 71, 34,194,216,231,157,193,173,
+217,185, 14,150,194, 96,111,211, 89,233, 17,227,189, 17,181,184,209,128,116,160,209,115,115,243,171, 70,175, 85,141, 34,100,197,
+ 52, 1,106, 74, 18,150,155,112,171,239, 41, 32,120,147,205,252,177,117,230,246, 42, 85, 76,171, 66,113,170,188, 25,117, 74, 72,
+ 65,150,219, 79,160, 33, 76, 43,254,133, 45, 17,185,106, 74,175,207, 75, 30, 49, 42,103, 82,161,229,185, 3, 54, 61,165,244,204,
+199, 58, 69, 48,194,146,163, 8,161, 47,149,182, 54,149, 35,187,178, 84,155, 17,112,160, 73,247, 98, 5,172,153,199, 45,200,250,
+178, 69, 29,138,132, 88,136,111,186, 98,128,169,165,197,197,106,193, 72, 73,115,131,180, 40,168,132,158, 69,173,142,117,203,135,
+241, 27,198,194, 89,200, 19, 58,200, 35,104, 34, 52, 32,116,208, 3,185,212, 69,107,182,180, 54,217, 42, 50, 85,203,235, 63,102,
+174, 28,213,216,210,153,155,114,244,126,208,212,170,107, 52,140,144,136, 66, 85, 78,151, 73,134,250,222,109, 9,103,114,212, 23,
+180,221, 74, 32,155,126,175,158, 57,142,191, 80,131, 5,229, 63,147,158,168, 69,164, 73,220,166, 67,227,196, 20,146, 64, 10, 35,
+195,114, 15, 39, 10,177,171,217,234,185,148,166,101,214, 42,114,227,101,245,202, 71,181,180,196,162,134,156,178, 74,127,213,240,
+147,113,235,207, 95, 92, 88,240, 53,142,145,150, 52, 18,177,151, 98,126,141, 74, 85,110,148,202, 11, 41,162, 44,189, 21, 64,217,
+ 73, 73, 36,132, 18, 44, 74,141,129,196,237, 89,198,112,230, 2, 46, 87,219, 12,193, 41, 3, 76,169, 39,252,143,122, 84, 38,100,
+193,129,227, 82,125,198, 46, 18, 50,140,164,111,207,225, 84, 44, 20, 85,235, 21,118,106,180,250, 83,108, 49, 20, 0,167, 89, 98,
+193, 69, 35,169, 87, 36,156, 25,143,153,163, 84,242,197, 82, 14,101,202,211,107, 21, 96,226,141, 49, 77,238, 37,171,141,160, 41,
+ 62, 96,117,195,120, 57,129, 89, 78, 42,226,161,245, 77, 74,144,151, 80,216, 77,144,207, 4,216, 15, 60, 11,211,125, 93,171,229,
+156,229, 58,171, 5,113,132,137, 49,214, 90,121,203,168,161, 94, 93, 63,134, 61, 2,221,149, 56,201, 82, 83,182,218,145,241,223,
+206,176, 30, 11, 83,164,129,176,210,163,241,164, 71,165, 58,137,242, 24,118, 91,160,125,213, 35,111,118,160,109,247,124,249,198,
+ 85,233,149, 60,208, 75,213, 23, 18,195,169,108, 37, 9, 91, 99,119,185, 33, 35,204,225,235, 21,154,115, 80,229,207,152,195,143,
+ 74,125,197,222,235, 0,110, 60,130,124,250,146,112, 1,218,180,212,213,217,205, 8,146,130,184,235, 14, 54,176,143, 14,244,249,
+ 88,227, 89, 9, 42, 92,198,163,157, 25, 18,121, 86,154,238, 89,169,211,167, 70,133, 50, 59,137,117,230,130,130, 29, 78,210, 1,
+247,124, 48, 46,124, 87,104,242,148,195,142,165,197, 52,144, 72,108, 95,175,145,247,225,230, 96,205, 85,124,209, 93,127, 48,213,
+230,151, 36,190,177,180,164,216, 39,208, 15, 64, 6, 53,212, 41,114,163, 33,151,152,116,189,223,179,189,224, 7, 32,131,208,226,
+226, 51,165, 35, 62,245, 45, 6,149,141, 26,169, 17, 11, 9,148,194, 8, 31,168,180, 92, 43,240, 55,198,185,168, 83,210,148,234,
+174,110, 60, 42, 95, 0,140, 52,121,185, 44, 52,169,139, 77,130,172, 16,147,140,102,167,189, 90, 7,181, 41, 86, 9,178,119, 92,
+ 36,122, 98, 61,152, 14,102, 6,167,148, 17, 68,160,178,167, 92, 75,109, 77, 12, 20, 90,202, 60,130,161,231,111, 76, 77, 50,158,
+107,204,117,106,125, 70, 13, 90,147, 6, 98,149, 21,100,200,126, 56,222,158,121, 82, 79, 2,254,152,129,183, 41,168,219, 86,167,
+210,164,130, 55, 18, 57,196,150,150,191,110, 75,139,118,162,150,132, 54, 2,217, 12, 54,119, 56,162,176,108, 79, 83, 97,126,125,
+216,203,190,104, 45, 48,161,207,120,219,235, 83, 65, 32,105,181, 19,211,122,123,210, 42, 63, 85,192,161, 68,118,106, 17, 33, 64,
+200,112,161, 91,123,191,214, 36,132,217, 61,112, 5, 80, 97, 46,166,204, 58,187,142, 71,109,197, 18,226,208,144,171,115,250,190,
+184,123,154,227,192,138,243, 79, 71,125,215, 36, 58,119,169,237,214, 70,211,211,222, 77,186,225,180,202,178,106, 12,253, 97, 61,
+246, 86,241, 33, 10, 64,107,144, 0,181,197,184,197,102,195,138, 89,112, 29, 20, 61,224,235,231,167,184, 82, 36,101,131, 91,102,
+197,167, 83, 92, 67, 9, 67,142,176,234, 9, 38,195,112,183, 79,134, 7, 41,200,201, 64, 90,183,182, 66, 60, 40, 82,174, 15, 56,
+213,237,136, 67,247,142,141,202,189,146,160, 60, 36, 99, 23, 18,165, 32,182,232, 38,234,244,233,139, 40, 68, 1, 52, 49,214,144,
+146, 25,121,192,211,182,230,226,195,175,187, 30,169, 15, 73, 79,122, 88, 28, 30, 66, 7, 24,214,232, 97,106, 74, 80,141,170, 2,
+202, 54,228,227, 89,144,252,119, 3, 33,106, 69,254,246, 11, 19,181, 32, 58, 83,134,228, 71,108,158,250, 34, 84, 79, 34,202, 32,
+ 15,195, 11, 26, 84, 86,159, 8,177, 3,162,135,159,227,133,133,150,165, 95,124, 18, 82, 19, 98,113,155,110,160,248, 65,195,103,
+ 92, 80, 79,217,245,195,115, 45,246,205,139,119,248, 99, 72, 61, 90,154,209,134,146,131,239,199,142,150,118,220,218,248, 31, 30,
+107,202, 28, 2, 49,154,222, 90,147, 99,135, 15,107, 79, 91, 84,176, 85,100,140,109, 67, 74,219,113,134,173, 5,169, 64,129,135,
+236,188, 80,139,144, 58, 98, 93,189, 54,245,165, 65, 77,248,146,156, 98,135,148,181,109, 32, 12, 57, 76,134,110,123,192, 57,243,
+182, 52,173, 41,223,189, 39,174, 28, 63,165, 42,113,177,245,180, 2, 20, 45,140, 91,134, 28, 4,175,174, 54, 70, 89, 7, 97, 60,
+123,241,181, 41, 78,238, 21,107,249, 97,195,230,149,107,106, 19, 97, 94, 35,135,208,232,241,220, 55, 42,231, 13, 28,108,245, 75,
+167, 27, 97,214,105,176, 28, 9,149, 57, 0,223,161, 86, 34,167,148,161,165, 21,176, 38,164,249,103, 45, 57, 85,170, 69,163,196,
+108, 41,217, 47,161,166,193,245, 81, 0, 99,175,162, 81,225, 80,168,140,211,162, 54, 18,212, 88,233,109,176, 5,172,148,139, 99,
+157, 59, 44, 66,167,231, 45, 74, 68,182, 30, 11,106,149, 29, 82, 87,111,219, 62, 20, 15,196,223,250, 56,232,220,212,235,140,209,
+222, 90, 20, 5,144,109,127,134, 56,110, 35,121, 75,112, 32,255, 0,136,248,159,227,231, 94,157,194, 86,221,157,186,158,255, 0,
+145,143,112,254,126, 85,193, 95, 72, 22,175,183, 74,204, 78,210,146,224, 66, 91,108,146, 73,243,231, 31, 57,235, 53, 42,142,186,
+107, 4, 13, 57,164,190, 84,153,179, 2, 93, 82,121,178, 47,226,233,238,197,235,244,170,234,101, 82,151,158,157,132,226,246,172,
+173, 86, 32,158, 70, 43,255, 0,162,127, 79,191, 75,117, 93,121,242,174,201,117,109,174,204, 41,126, 66,252,156, 97,169, 65,139,
+ 18,191, 10,237,109,209, 29,227, 95, 82,123, 47,233, 13, 55, 78, 52,246,157,148,168,116,224,204,120,241,144,130, 66, 66,111, 97,
+207, 76, 88,163, 43, 70,114,178,151,251,164,142,230,251, 82, 71,159,175,191, 30,229,217, 40,166,211, 99,134, 0,229, 33, 40, 3,
+225,212,224,205, 49,166,101, 21,204,112,149, 39,160,231,169,199, 50, 16, 21,189, 31, 49,154,208,140,165, 30, 82,212,235,236, 2,
+ 2,120, 4,117,192, 89,249, 80, 9,214, 67, 62, 0,108, 13,188,177, 45,246,194, 18,160, 20,120, 79,136,250, 99, 38,154,105,230,
+210,167, 5,129, 55, 36,224,201,105, 39,106,137,112,212, 42,171,151, 84,251, 69, 9,111,202,247,247, 98, 25,152,242,219, 33, 91,
+144,130, 44, 69,238, 49,114, 79,134,197,192, 77,185, 24,139,102,106, 67, 15, 36,182,210, 7, 78,184, 75,106, 41, 5,205, 81,185,
+142,130,132,143,190, 73, 4,237,182, 42,140,243,149, 31,106, 74,150,211, 36,165, 87, 36,132,244, 56,233, 26,222, 82,222, 75,138,
+104,139, 90,226,216, 28,206, 70,137, 38,237,203,136,135, 15,150,225,239,192,194,148,131, 73, 64, 26,229,186,124,153,212,164,247,
+ 75,108,236, 42,227,118, 15,211,179, 76,107,165,123,188,188, 87,242,197,237,153,116, 46,131, 88,136, 82,136, 40,105,100,125,228,
+ 14,190,254, 49, 81,103, 78,207, 53,234, 83,170,145, 76,124, 4,146,109,212,131,243, 24, 50, 95, 10,208,213, 53,180, 38,104, 76,
+188,255, 0, 10,150,164,205,117,207, 5,185,231,166, 34,217,199,180, 54, 87,202,209,213, 58,101, 73, 40, 67,104,186,146, 85,107,
+240,113,167, 49,100, 90,194, 89, 93, 50,176,167,154, 31,180,132, 94,216,175,243,231,102, 12,147,159, 40,174,194,168,230, 10,138,
+ 92, 82, 78,199, 18,177,180, 18, 45,202, 72,228,124,240,100,165, 11, 58,154, 9,109, 3,122,168, 53,123,233, 29,200, 82,115, 7,
+213, 84,170,170, 59,192, 44, 86,211,128,139,252,127,199, 76, 4,157,218,226, 10,178,212,138,233,168, 13,193, 35,109,149,231,238,
+197, 11,218, 87,232,240,173,100,137, 18,106, 57, 97,197,119,141,149, 45,167, 24, 55, 75,131,202,227,203, 20, 29, 23, 50,102,104,
+213,182, 50, 77,121,110,180, 34,175,237,144,229,193, 42,191,191, 27, 76,217,219, 45, 18,131, 68, 75,109,146, 2,107,233, 39, 97,
+202,157, 71, 61,103,247,179,117, 90, 74,139,210,212, 44, 9,224, 38,252, 12,125, 14,166,101,216, 83, 40, 73,109,230,183, 2,221,
+186,242, 14, 62,108,118, 17,205, 52,138, 34, 99, 44, 73, 78,241,107,221, 88,250, 65,167,249,149,170,206, 88, 75,241,222, 71, 40,
+227,156, 83,187, 64, 66,166,165,114,137, 85,115,239,105,140,166, 96,203,143, 90, 66, 74,182, 44,197,117, 68,116, 31,121, 31,255,
+ 0,223,225,138, 82,169, 83,102, 58,131, 65, 60,164,243,198, 58,163,180, 62, 95, 85, 75, 34, 86, 94, 39,114,208,199,180,182, 71,
+146,155, 59,143,254, 29,195,231,142, 60,171, 73,113, 74, 42, 32,254, 56,246,207,195,220, 80,221, 96,129,181,157, 91, 37, 62,237,
+199,206, 61,213,228,220, 95,109,216,222, 21, 39,101, 9,250, 26,242,181, 95,150,212, 71,156,167, 52,151, 30, 66, 9, 66, 86, 72,
+ 73, 62,134,216,172,115,150,166,212,162, 68,151, 84,175, 81, 94,110, 68,196, 37,142,237,230,202,153, 27, 9, 37, 73, 79, 4, 30,
+150, 55,196,240,200,108, 33,196,189, 40, 48,165,167,107, 78,168,139, 5, 30, 1, 55,242,197, 3,173,217,199, 53,185, 85, 93, 55,
+ 53,203, 87,176,174,120, 67,107,142,187,157,169, 54, 33, 32, 14,120,243, 54,224,226,231, 22,222, 30,213,150,208,173,119, 35,156,
+120,107, 63, 10,243,181, 41, 69,200,161,217,147, 88,133, 90,165, 22,161, 62, 67, 82, 66,157, 87,181, 37,194,164,161, 32,253,209,
+215,143,144,196, 27, 54,103, 52,212,179, 10, 32,228,254,253, 81, 98,190,146,135,101,184, 28, 40, 81, 54,224,244, 9, 23, 56, 0,
+227,175, 84,234,210, 98, 80, 19,222, 52, 73, 61,242,135,250,180,223,239, 40,227, 84,121,141, 46, 67, 52, 90,105,105,233, 5, 14,
+ 50,235,155, 64, 66,145,215,117,250,252,206, 57, 5, 50,216, 94, 97,200,109,203,204,138, 32, 17,189,105,206, 76, 86,105,149,121,
+ 16,106, 50, 91,124,153, 1,199, 8, 63,126,227,239, 15,136,195, 33, 80, 74,101, 7,169,112,144,206,199,183, 54,227,203,185, 2,
+221, 44,122,227, 10,173,106,171, 37,210,197, 90,167,223, 45, 36, 14,249, 70,228,132,139, 36, 3,134,238, 60,138,131,237, 56,251,
+235,117,222,236, 39,104, 79, 34,221, 6, 44,161, 10, 8, 25,190, 31,181, 19, 97, 82, 90, 62, 98,118,146,234, 42,237,168,185, 57,
+213, 41, 47, 5,178,149,164, 3,199, 3,167, 79, 60, 78, 52,243, 86, 98,228, 28,215, 25,117,154, 74,102,182, 92,188,202, 89, 81,
+108, 57, 96,118, 89, 96, 18,142, 77,205,177, 87, 55, 30, 85, 61,148,189, 37, 14, 32, 63,101, 52, 28, 28, 56, 1,183, 24,119, 53,
+232,205,253,139,144, 18,195,171, 59,131,197,100,169, 28,117,248, 28, 81,185,179, 98,229, 5, 10, 18, 21,161,143,223,195,195, 95,
+125, 50, 66,115, 2,107,171, 52,255, 0, 56,208,181, 43, 42,230, 35, 42, 27,240, 36,193,166, 38, 67, 34,139, 60,166,239, 38,224,
+ 40,169,125, 13,143, 33, 35,155, 98,130,204, 83,164,199,169,119,146, 61,161,228, 62,162, 91, 15,187,117,130,129,107,159, 76, 76,
+ 59, 49,103, 28,165,149,232,253,204, 53,207,159,152,171, 51, 87, 13,218,100, 20,173,197,187, 29, 73, 1, 41, 74,109,109,197, 64,
+243,215,156, 70,179,116, 7,224, 87,133, 26,144,219,177, 37, 68, 46, 9, 48,234,119, 75,169, 5,118, 41, 36,142, 77,186,244,199,
+ 41,103,108,139, 44, 77,246,146,146, 19,164, 79,128,131,227, 18, 52, 60,234,202,130,202, 1, 53,141, 71, 86,235,245, 13, 51,119,
+ 79,229, 80, 34, 72, 92,185,205,201,102,112,140, 59,230, 66, 83,183,186, 73, 3,145,107, 30,122, 99, 86,155,211, 34,215,243, 58,
+242,206,116,206,239, 81, 32,119, 46, 59, 49,231,221, 32, 47,106, 10,146,132,167,204,146, 0,249,227,201, 58,137,153, 32,229,137,
+121, 38,116, 22, 26,129, 6, 75,146,226,176,203,105, 14, 54,234,194, 65, 59,199, 42, 22, 0, 88,241,136,254, 72,143, 64,172, 86,
+157,123, 55,230, 39,152, 74,226, 56,228,101, 50,144,187,189,111, 10, 77,250, 11,227, 89, 22,197, 54,206, 20,167, 40, 36,153, 79,
+120,201,136, 32, 68, 76, 70,145, 30,117, 2,224, 10, 4,235, 20,103, 48,189,151,162, 56,183,232,208,101, 54,210,216, 75, 41, 47,
+202, 82,146, 8, 79,137, 87,176,224,245,182, 33,117, 26,220,202,123,171,102,152, 80,193, 86,221,239, 54,208, 77,254,125,113, 53,
+212,221, 82,250,206,143, 14,139,246,114,166,180,210, 90, 91,169,100, 4,144, 60,207,169,247,224, 70, 85,202, 21,156,226,227, 20,
+184,148,180, 42, 82,157, 50, 95,108,172, 33,146,218,121, 36,147,202, 79,187, 27, 86, 89,154,182, 10,120, 71,190,118,231,173, 82,
+209, 78,102, 35, 66,126,244,167,153,118, 13, 6,165, 78,110,165, 90,106, 66,218, 80, 82,229, 37,166,236, 60, 41,234, 23,215,175,
+150, 34,198,159, 76,153, 86,146,234, 22,182, 41,233,116,169,134, 86,225, 42, 0,249, 15,126, 39, 85,156,221, 26,139, 5,170,108,
+152,205, 41,232,237,173,167,162, 60, 54,128, 73, 62, 99,175, 30,126,150,196, 26, 6,232,147,193,147, 75, 43, 90,212, 20, 90, 43,
+ 54,219,212,117,197,150, 84,225,149, 29,170, 72, 38, 14,148, 50,178, 96,247, 63,232,234, 81, 83,103,107, 91, 71, 84,223,207, 13,
+ 24,148,243, 55,116,173,101, 70,192, 29,223,150, 12, 76,204,176, 21, 87, 77, 68, 83,118, 36, 44,253,154,146, 10, 71, 63,158, 7,
+165, 44, 86,230,174, 82, 2, 89, 74,150, 73, 64,224,127,203, 23, 18, 76, 65, 21, 48, 97, 18,170,104,245, 65,201, 50, 91,135, 32,
+168,161, 3,129,233,135, 48, 41,205, 79,121,123,165, 37,180, 52,130,165, 95,175,252,241,166, 74, 34,179, 45, 33, 14, 11, 35,130,
+ 71, 63,158, 55,144,204,231, 54,197, 65, 66, 71, 0,250,252,113, 56,210, 5, 72,157, 1, 20,215,216, 86, 77,203, 68, 11, 92,110,
+243,193,106, 67,203,109,132, 53,223, 44,247,135,196,216, 62, 86,195, 25, 15, 73,105,105,142,165, 37,192, 63, 88,224,166, 89,130,
+135,106, 42,113, 18, 2, 31, 67,101,109,146, 69,130,188,135, 60, 96, 55, 25,123, 35,152, 84, 65, 82,168,189, 82,135, 71, 98,128,
+205, 65,154,254,233,189,250,154,122, 10,199, 45,128, 1, 11,191, 75, 27,241,134,213, 38,196, 42,108,120, 14,198, 71,122,237,156,
+222, 62,240, 7,248, 99,115,244, 73, 10, 79,183, 73,144,137, 33,165, 5,204,109,147,226, 72, 39,145,126,151,198, 53, 71,161, 73,
+105,153,180,182, 92,108, 51,116,173,185, 11, 11, 80, 87,175, 30, 94,151,198, 48, 10, 4, 2, 73,223,253, 84,212, 58,208,205,136,
+108,142,233,219,146,121, 27,120, 24,245,101,217, 9, 41, 90, 9, 67,100,155,140, 99, 34, 90, 86,164,219,106, 72, 59,137, 2,192,
+227, 36, 47,236,133,150,157,132,216,131,231,131,193,208,212, 34,176,125,108,200,123,116, 82, 85, 96, 62,208,139, 99,214,152,126,
+165, 32, 54,235,130,233, 22, 42, 35,128, 6, 60, 40,142, 92, 0, 46,197, 43,229, 32,240,172,122,118,180,217,117,167, 10, 73,242,
+ 39, 14, 34, 52,166,242,172, 95,138,236, 98, 17,183,120,230,196,116,194,199,175,187, 53,253,174, 5, 41, 64,142, 61,216, 88,112,
+ 9, 26,211,129, 59,215,222,133,160,116,183,192,227, 7, 88,109,164, 23, 29, 33, 32, 14, 73, 54, 24, 1, 35, 62,197, 65,238,225,
+166,228,126,178,207, 24, 17, 93,206,202,157, 31,186,151, 52, 37, 54,251,169, 56, 51, 77, 58,225,147,165,108, 41,104, 21, 42,118,
+185, 69,142,157,202,158,221,189,199, 26,151,156,178,252,116,243, 43,125,255, 0,100, 19,138,210,110,108,165,199, 77,155, 37,103,
+225,134, 74,207,109,183,254,170, 24, 54,243, 81,197,244, 90,181,204,154, 1,185,108,115,171, 78, 70,160,210, 35, 35,236,153,113,
+ 68,244, 1, 56,213,254, 82, 89,232, 32, 47,111,157,200,197, 84,189, 69,125,213,109, 48, 17,199, 78,112,157,206,245, 71, 99,146,
+220, 68,158, 46, 16,130, 46,127, 28, 28, 91,218,164, 73, 31, 31,218,135,237, 41, 39,122,182, 85,168, 84,194,222,229, 68, 88, 62,
+151, 24,103,254, 83,227, 37,106, 2, 26,133,135,135,197,138,121,204,253, 81, 96, 31,104,161, 79, 9, 79, 59,144,218, 23,255, 0,
+149, 68,225,130,181, 70,141, 29,219,212, 38, 59, 20, 19,255, 0,230,163, 56,223,254,100,219, 21, 13,230, 14,209,135, 9, 79,254,
+193, 73, 30,164, 1, 70, 5,213,254,145, 62, 80,126, 85,112, 77,213, 74,177,144, 76,100,165, 40,253, 91,142,113,169,237, 80,204,
+ 13,186,151, 28,112, 4,249,157,188, 28, 86,172,230,216, 53, 56,201,149, 76,170, 50,251, 87,251,232,117, 38,223, 27, 30, 48,247,
+235,135, 37,199,238,128, 42,191, 4,223,140,104, 91, 92, 97,151, 8,150, 74, 84, 58,130, 15,202,128,183,150,131, 10, 4,121,233,
+ 86, 20,189, 82,168, 84, 91, 12, 53, 37, 45,122,148,117, 56,211, 18,107,210, 93,246,146,249, 81,189,202,148,122,226, 15, 78, 88,
+ 74,202, 74,130,138,122, 39, 4, 35,212,100, 70, 89, 13,189,183,220, 85,130,149,180,210, 97,177, 20, 86, 31, 5, 90,215,104,118,
+ 23, 90, 40, 57,103, 51,102,231, 85,114,167,163,199, 73,183, 64,148,173, 71,255, 0, 50,127, 12, 93, 84,188,239, 19, 82,154,151,
+ 69,166, 76, 5,214,152, 61,227,105, 62, 36,121,115,142,113,250, 63,106,207,102,124,183,154,242,111,127,185,230,203, 50,219, 27,
+248,177, 74,144,120,254,138,121,247,140, 68, 50,127,105, 76,187,160,125,190,104,121, 75, 57,102,182,160,192,204,201,126,145, 43,
+190,115,107, 73,121, 99,115, 4,223,128, 75,168, 66, 1,253,252,121, 78, 56, 22,238, 46,232, 81,233,242, 21,237,156, 52, 59, 76,
+ 29,162,216,210, 20, 79,169,174, 43,250,106,114,190,101,201,154,181, 22,155, 83,167,188,148, 78, 22,130,242,191,233, 73, 60,255,
+ 0, 28, 90,127, 70, 70, 69,141,146,114,244, 55,222,103,106,157, 66, 74,183,121,252,126,126, 88, 61,244,226,234,134, 66,213, 45,
+ 98,200, 26,117,150,100, 49, 50,100, 25,170, 84,162,139, 29,169, 35,147,238,227, 19, 30,204,121, 89,202, 60, 42,122, 91, 99,104,
+ 75,105,238,211,253,167, 24, 23,206, 43,217,146,217,241,248, 87, 88, 16, 17,110,146, 57,138,235,250, 82, 36, 79, 97,168,105, 85,
+137, 64, 82,173,250,160,255, 0,105,196,178,154,180, 65,166,247, 41,229, 73, 0,148,143, 35,255, 0,166, 35,121, 46, 9,135, 74,
+ 75,238, 40,169,210, 55, 40,129,212,225,231,214,114,153, 75,151,178, 9, 38,254,240, 7,247,155,124,177,148,141, 53,161,196,211,
+242,239,217, 45,197,147,181, 75,218,148,250,171,251,186,124,177,154,107, 46, 46, 64, 66, 82,118,169, 55, 79,160, 31,250, 96, 68,
+117, 41,180,163,189,112,128, 65, 54,247,242, 79,231,252, 48,150,243,137,152, 81,187,192, 81,199, 62,255, 0,241,242, 24, 42, 73,
+ 21, 21, 38,164, 11,148,135, 93, 66, 10,186, 42,235, 3,211, 26,100, 64,109,229,149,173,119, 28,222,222,120, 98,204,150,131, 42,
+ 82, 85,101,110,181,201,231,211, 27,162,206, 47, 39,126,240, 8, 77,138,125, 71,248, 56, 62,244, 19,165,123, 46,145, 13,240,119,
+ 4,220,164, 31,143,150, 2,202,162, 68, 74,238,194,236,177,247,110, 60,198, 11, 84, 36,164, 54, 16,218, 73,219,192, 62,183,192,
+105, 47, 75, 65,178, 1, 38,247, 77,252,199,248, 24, 18,210, 41,130,141,122,105,200, 82,182,223,109,250, 17,208,224, 70, 98,163,
+181, 37,155,150, 47,197,207,195,142,127, 60, 60,118,180,224, 90, 83, 99,110, 6, 48,155, 82, 67,129, 71,146, 59,176,109,233,205,
+184,255, 0, 30,120,174,164,138, 98, 77, 86, 89,195, 79, 41,149, 52, 21,119, 99,113,253,145,249,226,171,205,122,116,220, 69,151,
+ 98, 36,236, 60, 41, 39,130, 49,122,212, 81,181,213,150,200, 62, 3, 97,208, 30,132, 15,195, 16,188,201, 79, 76,179,185, 23, 73,
+ 43,186,146, 71, 55,194, 74,202,104,106, 73, 21,205, 58,145,167,136,171,196, 91,111,178, 28, 83, 98,224,148,139,145,142, 5,237,
+223,217, 97, 48, 0,212,108,151, 5, 41,148,194,183, 73,105, 8,218, 86,159, 95,126, 62,168,102, 90, 25,246,142,245,230,124, 38,
+233, 38,216,231,222,213, 26,125, 79,149,150, 36,134,216,220,219,141,168,157,162,246, 62,124, 99, 66,210,233, 77,184, 40, 0,148,
+ 56, 43,231,135,101,141, 74,206, 7, 53,192,203,212,152,111, 59, 33,249, 9,101, 40, 23,240,171,223,242, 4,227,236, 7,103,154,
+ 6,111,143,146, 98,190,165, 45,205,232, 73,115,113, 54, 28, 99,132,187, 57,233,214,159,229,101,202,212,152,112, 91,250,196,202,
+ 67, 11,105, 35,194,135,124, 72, 82,199,165,193,231, 31, 78, 52, 86,167, 79, 99, 79,225, 71, 90, 82, 10,217, 77,250,115,141, 92,
+ 73, 33, 9, 19,204, 77, 90, 85,218, 46, 26,238,141, 1,143,120,222,133,103,108,143, 55, 48,229,154,133, 53,164,164, 25,112,156,
+ 97, 97,195,192,220,130, 1,249, 95, 28, 89, 95,201, 79, 83, 38, 72,164,213, 99, 41,153, 81,158, 83, 78,180,161,202, 22,147, 98,
+ 15,204, 99,232, 69,108,173,112,156,114, 42, 82, 8, 73,181,186,142, 49,203,221,164, 50,174,236,228,222, 98, 75, 59, 5, 78, 26,
+ 29,119,142, 3,168,187,106, 31, 31, 10, 85,253, 44,110,240, 54, 42,171, 43,183, 45,142,203, 18, 60,199,238, 15,194,184, 94, 47,
+180,237, 45, 82,240,229,161,247,215, 53,215,242,228,165,176,166,225,190,211, 42, 1, 65, 75,121,146,180, 90,199,168, 24,231, 61,
+ 75,165, 86,178,188,202,109, 50,107,205,151, 17, 45,247, 30,158,166, 13,137, 88,183, 59,143, 64, 58,116,199,105,185, 69,136,131,
+222, 22, 46, 71,222, 39,207, 20,102,163,232,190, 96,207,122,160,254,100,173,102, 24, 52, 26,124, 36,129, 17,199, 0,219, 45,195,
+205,246,168,216,128, 56, 56,238,113, 21, 46,230,237, 47, 3,202, 62, 62,127,126,117,228, 14,167, 35,132,215, 31,102, 74, 36,156,
+185, 84,117,168, 78,200,246, 85,183,117, 58,131,179,191, 77,249,189,141,173,124, 70,189,161, 13, 2,211, 44,109,113, 64,169, 42,
+ 72, 36,252, 49,122,234,146,114,116,248,177,233,180,202,205, 94,125,105,117, 37,178,166,123,166,187,182, 82,147,202,146, 17,112,
+ 71,165,177, 89, 87,116,231, 51, 51, 41, 21, 84, 83,228,169, 51, 36, 45,184,138,238,172,167, 20,155, 92, 91,200,220,129,108, 80,
+ 73,239,229, 84, 79,133, 32, 73,222,161,142,190,244,167, 18,154,139,197, 62, 45,167,195,200,249, 96,163, 80,169, 44, 5,191, 46,
+ 75,173,108, 82,123,151,218, 69,195,128,245,227,215, 5,149,166,121,214, 45,124, 82,235, 25, 86, 75, 18, 86,210,221, 66,100,178,
+164,168,132,125,227,207,150, 6,102, 16,168,211, 59,182, 75,110,134,145, 98,155,147, 98,121,183, 56,117,171,191,217,141, 13, 74,
+ 53,167,117,153,205,183, 78,142,218,165, 53, 35, 99, 87,104,164, 2, 81,126,108,125, 14, 26,211, 87, 18, 83,241,154,170,201, 10,
+ 27, 73, 66,130,249, 4,115,180,131,208, 96, 76,185, 33,243,100, 32, 33, 55,184, 9, 77,185,195,116,133, 23,118,145,201,251,202,
+ 35, 14,150, 97, 17, 76, 0,169, 94, 94,212, 90,198, 71,206,148,253, 69,200, 18,157,164,213,105,146, 68,136,210, 26, 0,247, 46,
+164,248, 84,159, 95,158, 10,215,243,146,243, 93, 97,252,201, 93,175, 72,169, 84,234, 14, 45,249,210,221,241, 5,188,165, 92,145,
+233,114,121,242,196, 93, 8,250,213,164,164, 72,101,164, 52,217, 13,128, 45,127, 91,251,206, 8, 80, 87, 10,147, 14,124,248,181,
+178,196,164,178, 26,138,193,104, 47,190, 10, 62, 62,122, 38,195,155,226,155,214,236, 21,118,153,123,241, 19, 26,196,232, 9,130,
+ 98, 76,244,169,133, 40,140,147,166,241, 69, 43,148,135, 41,200,122,167, 62, 4,148, 68,125, 33, 13, 56,187, 0,181,128, 55, 15,
+126, 6, 64,147, 34,178,228, 74, 20, 42,115, 97,132, 57,119, 20,148,128,181,124, 84,113, 44,152,186,141,107, 35, 50,128,200,126,
+ 59, 33, 43,222,183,145,126,241, 66,220, 39,175,145,190, 35, 48,209, 62,159, 57,168,174,159,101,113,247, 64,113,125,209, 61,218,
+ 79,159,248,244,197, 75, 87, 2,129, 74,247, 7,236,199, 88,168,168, 40,123,233,246,113,203,244,230,150,167,163, 59, 29,178,174,
+ 27, 75, 46,216,182,125, 0, 29,109,235,124, 22,127, 32, 79,211, 76,143, 75,207,159,167, 48,220,145, 85, 74,156,106, 27, 51, 20,
+167, 22,216, 54, 37, 86,233,200,192,106,174, 88,168, 68,188,134,148,212,158, 77,223,125, 86, 7,211,143,236,195, 42, 84, 90,203,
+ 85, 52,178,150,151, 44, 52,217, 82, 80,163, 96, 7, 82, 7,160,185,232, 49,120, 5, 20, 36, 37,122, 13,199, 81, 27,107,181, 85,
+ 74,199, 51, 52, 90,129, 84,163, 84,107, 42,174, 86, 98,185, 61,106,142,160, 33,184, 47,117,219,142,189,121, 3,156,110,205,175,
+201,162, 67, 92,106,221, 25,136,239,203, 9, 89,104,248,150,150,252,128, 61, 83,133, 46,148,213, 78, 68,156,216,167, 18,195,251,
+ 82, 91,110, 51,170, 42, 10, 64, 0,248,109,243,198,221, 64,166,211, 95,153, 26,213,223,107, 15,193, 75,178, 31, 82,247, 20,168,
+139,169, 55,247, 98, 0,161, 79, 36,107,254,185,116,169,133, 2, 65, 53, 14,147, 72,159, 83, 97,152,204, 48,211, 45, 62,225,238,
+155, 39,197,111, 83,129, 18, 97, 75,129, 37,232,137, 28, 50,238,197,173, 61, 47,141,239,212, 89,106, 74, 95,109,107, 10, 71, 9,
+178,188,177,140,228,203,106, 34,101,186,224,216,242,238,132,222,231,226, 78, 53, 83, 41, 0, 26, 40, 6,105,155,173,169, 82, 59,
+215, 5,211,182,201,240,245,198,106,146,210,135,119,221,148,219,165,188,241,140,137,110,188,208, 42,176,183, 66, 6, 28,195,167,
+206,159, 24,187, 26, 22,244,180, 46,183, 18,159,227,130, 72, 9,214,156,137,222,180, 70,142, 92,187,129, 28, 36,254,177,196,129,
+182, 24,131, 26, 43,143, 76,142,181, 60,218,183,178, 21,114, 44,122, 31, 75,249, 96,101, 62, 89,100, 41, 47, 71, 75,137, 64,181,
+239,107, 99, 20, 70,113,217, 65,104, 41,228,240, 48, 23, 91, 14, 1, 38, 34,155,157, 29,149, 82,159, 1, 70, 51,108,134, 91,113,
+ 32, 41,144,139,113,234,125,113,167,184,168, 46, 83,197,148,149,221, 55, 83,205,167,129,111, 92, 74,178, 59,143,214,159,114, 21,
+ 94,156,218,155,109,176, 27,113, 45,220, 36,142,130,248, 47,155,227,198,161,229, 89,146, 91,117, 8,121, 77,132,161, 8, 29,111,
+199, 54,198,113, 25, 87,144,243,171, 9,100, 45, 19, 58, 85, 80,219,193,234,139,155,200, 45,129,194,136,234,172,123, 21,165, 56,
+234,164,164, 42,200, 54, 0, 14, 62, 56,117, 68,160,206,173, 84, 5, 42, 21,183,184,119,169, 71,162, 0, 29, 78, 44,225,146,242,
+181, 50,145, 14, 19, 81, 18,234,146,208,246,130,127, 89, 64,245, 54,197,171,149,165,158,232,220,252,133, 76, 50, 84, 12, 85,117,
+236, 14,161, 77,161, 13,133,184,234,119,162,223,171,140,156,165, 78,105,210,135,226, 56, 10,147,100,133, 39,239,122,226,197,110,
+ 5, 50, 34,201,131, 5,182,193, 60,109, 78, 54,132,180,124, 75,108, 18, 58, 92, 98,158,106,113,102, 72,212,213,109, 31, 47, 86,
+228,183,185, 20,167,200, 73,176, 41, 73,182, 22, 45, 86,234,157,218, 2, 26,109, 40, 0, 90,216, 88, 89,141, 55,178, 87,120, 74,
+205,245, 7,220, 42, 18, 73,255, 0,186,113,168,102, 74,155,128, 36,185,193,243, 87, 39, 1, 90,153, 21, 0, 4,188, 15,173,177,
+227,213, 20, 35,150, 8, 87,187, 20,198, 42,122,208,202, 84, 78,180,117,202,155,202, 3,188,108, 47,225,143, 10,150,225,222,109,
+107,116,190, 34,210, 43,147,158,119,186, 15,108, 3,211, 27,169,245, 69,135,131,110, 73, 61,122,238,195,255, 0, 85, 81,231, 76,
+ 90,169, 35,106,108, 14, 16, 65, 62,252, 63,140,195,201, 72,115,189, 0, 31, 34, 48, 9,117,136,233, 64, 6, 66, 2,190, 56,115,
+ 22,190,157,157,216,150,149, 31, 44, 72, 98,167,173, 67,178, 85, 61,157, 46, 83,107, 44, 54, 81,201,228,225,187,178, 93,238,130,
+ 93,109,178, 45,201, 24,208,228,182,220, 89, 90,228,139,249,219, 26, 93,155, 21,209,221,170, 82, 82, 60,201,243,194,254,168,122,
+212,131, 74,161, 18,242,172, 55,220,222,205, 85, 37,245, 3,117, 46,158,208, 81,254,147, 97, 7,243,192,153,185, 75, 62, 80,214,
+101,229,188,222,219, 4, 31, 11, 0,184,132, 31,136, 81, 93,240,126,106, 91, 72, 11,140,232,189,248, 82,112,218, 84,151, 35,160,
+185, 33, 69, 64, 12, 99,220, 49, 97,114,231,104,160, 66,191,228, 20,160,125, 65,173, 6,238,174, 91, 25,100, 17,208,128, 71,202,
+163,208,245, 83, 86,242,164,133,126,152,100,197,205,140, 15,138,109, 25,192,234,237,234, 81,193,249, 1,137,142, 71,212,204,187,
+158, 35,125,107, 66,172,123, 82, 18, 74, 94,106,246,117,149, 14,169, 90, 15,137, 4,122, 16, 49, 17,151,154,107, 81,147,186,117,
+ 1,192,215,253,172, 69,119,192, 15,120,176, 87,224,147,138,179, 90,105, 75,101,214,181,179, 78, 29, 68,153,148,213, 3, 90,131,
+ 29,194, 61,173,129,215,112, 22, 41, 90, 71,159, 6,223, 12, 48,196, 46,236,209, 13,186, 86, 7, 37,239, 30, 6, 36,251,230,175,
+ 91, 50,197,211,161, 43, 72, 65, 59, 20,237, 61, 8,157, 39,204, 87,210,207,163, 79, 81, 90,164,246,137,107, 47, 45,219, 53, 92,
+165, 72,140, 82,163,213, 73, 1,224,127, 6,213,248,227,147,191,246,131,178, 84,236,155,218, 46,157, 92,131, 47,187,102,124,112,
+182,123,187,164,165, 96,142, 65, 30,125, 57,192,158,206,125,160,235, 57, 82,169,150,245,223, 79,234, 79, 86, 32, 65,148,220,165,
+193,121, 64,201, 66, 82,126,213,180,175,245,141,183, 36,165,119, 39,201, 94,189, 19,244,175,234,127,102,126,213, 61,140,227,235,
+118, 94,170, 70,126, 99, 45,247,108, 9, 22, 76,168,210, 44,146, 90, 82,111,112,121, 4, 90,224,130, 8, 36, 27,227, 62,238,239,
+182,188, 75,132, 65, 35,215,148,131,233,227,225, 94,169,193, 47, 54,219, 10,181, 90,181, 4,253, 57,121,131,235, 92, 69,217, 6,
+177, 35, 84, 43, 52,199,115,101, 69,201,213,120, 85, 5,162, 93, 74, 99,170,117,231,208,162, 11,119, 82,142,226, 5,202, 64,253,
+209,143,171, 58, 67,148, 35,195,163, 68,120, 55,100,132,166,192,117, 60, 99,228,119, 96,198, 51, 34,243, 58,115, 57,165, 41,186,
+ 96,144,129,237, 36,125,247, 18,187, 41, 35,224, 47,248,227,236,206,146, 71, 46,229, 88,178,100, 55,117,184,128,160, 1,232, 63,
+199,246, 99, 3, 19, 90,149,113,173,118,174,165,164,136, 65,145, 39,215,152,251,218,173,186, 27, 40,137, 73,109,231, 0, 46, 41,
+ 60,143, 33,128, 85,137,143,174, 73, 74, 65, 9, 11,220, 5,250,129,198, 11,135,123,154, 32,104, 95,114,128,221,207, 75,249, 98,
+136,237, 99,219, 63, 74,123, 45, 51, 24,102,197,189, 54,171, 53,189,208,168,144, 10,123,231, 91,185, 29,226,137,225,180, 94,227,
+113,228,155,216, 27, 27, 80, 89, 9, 76,157,170,186,119,171,122, 60,197, 4,134,158,112,130, 60, 74,191,190,220,127,143, 92, 60,
+155, 37,144,165,168, 44, 88, 40,238,248, 94,223,192,226,171,236,255, 0,218, 2,141,218, 15, 77, 98,106, 93, 23, 44,212,233,113,
+229, 60,164,180,221, 77, 8, 29,226,145,194,138, 10, 84,119,160, 16, 70,238, 57, 7,142, 49, 42,118,169, 32,151,157,144,191, 9,
+225, 34,255, 0,158, 36,217, 4, 72,169, 17, 52,112,214,246, 18,202, 5,238,120, 56, 33, 18, 91,109,181,202,252, 69, 94,103,204,
+226,191,126,182, 98,200, 8,239,137, 34,219,121,242,191,252,176,110,145,152, 91,148,195, 78,184,176, 9, 80,243,255, 0, 30, 95,
+199, 22, 6,212, 23, 4, 84,183,218,146,225, 1, 32,237,185, 10, 31, 44,104,144,250, 67,104,104,172,110,185,177,243,245,192,216,
+245, 87, 18,210,214,165, 88,155,113,124,107,122,115, 74, 90, 93,109,193,193,228,124, 78, 25, 91, 80, 57,214, 82,210,203,129, 86,
+ 90, 66,135, 33, 94,184, 17, 84,144,228,111,181, 74,128, 3,238,223,204, 28,108,149, 37,198, 31, 89,255, 0,229,128,111,234, 48,
+ 2,173, 92, 82,201, 97,103,128, 15,248,255, 0, 30,184,170,179, 72, 26,206, 92,230,221, 66,143, 4, 3, 96, 61, 48, 10,175, 25,
+ 9, 33, 65, 87,241,121,244,198, 78,213,152,103,113,121,206, 58,159,199, 2,167,215, 88,101,183, 8,115,117,206,228,243,239,192,
+ 53,154,138,148, 34,133,102, 38, 26,121, 5, 37,177,117, 19,108, 83,250,187,150,153,168,210, 92,100,253,224,146, 64,183, 10,227,
+159,203, 22,173, 78,165,223, 21, 54, 69,192, 30, 19,242, 54,196, 11, 50,151,157, 75,141, 74,177,178,141,137, 28,115,130,182, 72,
+ 53, 77,106,138,227, 93, 37,160, 75,168,235, 75,250, 77, 75, 59, 88,145, 84, 19, 31,111,205, 41, 72,182,223,129, 81, 39,250, 56,
+232, 30,219, 29,162,115, 23,101,122, 38, 77,202,116, 40,174,162, 85, 90, 80,239,100,148, 43,186,142,202, 64,251,202,232, 20,162,
+108, 1, 60,217, 71,203, 20,134, 92,149,156,116,223,182, 27,217,251, 41,229,132,213, 32, 21,161,153,241,195,201, 66,227,216,159,
+ 16,220, 69,211,240,231, 23,174,175, 84,226,235,187,245, 23,115,197, 49,167,227,212, 35,123, 57,136,180,133, 37,166,194,108, 0,
+191, 66, 58,223,200,243,142,137, 44, 61,122,180,102,253, 33, 59,252,133, 83,190,199,112,236, 41,230,130,128, 84,153, 82, 65,215,
+ 93,201,250,117,171,239,178,206,168,197,213,156,148,203,210, 42, 40,126, 91,204,248,182,171,146,109,233,128, 61,168,114,203,176,
+242,245, 41,109, 51,226, 98,161, 37,181,241,208, 41, 45,145,249,164,254,120,128,253, 17,154, 59, 92,201,121,138,177, 67,172,214,
+ 76,193, 76, 15, 54, 29,113, 68,221, 33, 68,161, 66,253, 60, 5, 60,122,223, 23, 31,108, 88,210, 41, 50,105, 49,100, 63,102, 36,
+165, 78, 1,110,170, 79,159,224,230, 3, 96,165,218,226,237,248, 79,200,210,226,212,219, 12, 49,197, 50,101, 42, 9, 35,222, 68,
+ 87, 51, 74,163,188,160, 67,111,160, 19,201, 4, 96, 62, 98,200, 20,236,207, 79, 52,250,253, 33,185, 13, 41, 36, 37, 93, 10,110,
+ 44, 74, 79,145,196,162,172, 89, 84,165, 6, 85, 97,141, 10, 83,138,218, 16,191, 43, 91, 30,130,222, 33,152,107, 94, 17,116, 59,
+213, 88,193,236,171,165,176, 43, 84,170,205, 27, 43, 8,142,210,221, 43, 71,118, 77,158, 37, 36, 13,228,245,235,124, 77, 27,210,
+138, 43,219, 86,237, 18, 25, 45,187,222,183,102,147,116,175,246,135,161,196,161,128,226,130, 80,129,186,227,158, 49,181,101,198,
+149,189, 73,218,145,202,142, 12,155,224, 12,138,167, 19, 92,187,219,127, 66, 51, 37, 98, 55,249, 83,133, 88,125,165, 83, 41,222,
+203, 2, 20, 88,203, 94,245,169, 68,172,175,109,252, 37, 55,247, 99,136,230,229,121,173,184,224,220, 29, 81, 81,222,168,227,120,
+ 71, 23, 35,142, 71,246, 99,232, 54,190,246,177, 68,118,165,228, 44,153, 76,239, 93,121, 70, 58,229,173, 93, 60,137, 72,254,252,
+115,123, 77, 83, 98,251, 75,206,209,162,153, 14, 47,237, 94, 66,172,224, 6,247, 31, 3,135,246,210,163, 49, 81,237,178,232, 43,
+155, 42,116,154,132, 64,137, 37, 46, 37, 15, 92,176,165,121,128,108,127, 60, 51,125,249, 8,148,215,116,164,173,194,161,116,108,
+189,199,166, 44,189,115,171, 53, 80,122,149, 76,129, 77,102, 52, 74, 92, 2,204,116,180, 57, 93,214,165, 21, 43,222, 73,196, 27,
+ 41, 66,113,218,236,121,225, 23, 72,154,219, 74,226,246,189,241,170,133, 36,177,156,138,209,101, 25,208, 12, 81,170, 13, 46, 84,
+246, 94,126,159, 2,206,161, 33, 68, 16, 8, 3,206,192,227, 57,217,110,117,107,125,102, 27,171,122, 91,206, 4,186,207,116, 1,
+191, 65,180, 14,184,176,152,203,180,202, 60, 34,235, 77,182, 94,120,169, 42,109, 66,231,111, 91,156, 18,161,191,245,117, 65,154,
+140, 40, 41, 74,153, 59,155,216,155, 4,155,117, 24,231, 29,191, 82, 74,150,216,208, 78,167,109, 57, 73,249,212,147,102,174,102,
+171,234, 30, 84,204,148,245,152,115,233,171,140,224, 35,114,151,193, 65,183,152,196,223, 40,101,182,105, 32,213, 43,243, 74,203,
+188, 48,203, 45,141,203, 30,132,158,128,156,123, 82,154,253, 66,107,147,100,184, 84,227,138, 42, 82,148,110, 73,193, 40,142,229,
+250, 46, 90,122,183, 83, 90,164, 77, 28, 65,134,131,192,253,229, 31, 47,112,196, 93, 90,222, 97, 14, 70,166, 54,241, 28,188, 60,
+104,119,140,182,221,185, 6, 73,216, 70,255, 0,126, 60,170,180,212, 28,199, 76,118,189, 37, 81, 88,216,234, 92,179, 45, 54, 15,
+ 43,233,127,144,192,104, 19, 43,212, 73, 46,201,102,112,246,132,160, 41,208,160,124, 35,246,112,106, 6, 90,170, 87,234,143,214,
+ 24,167,149,200,117, 95, 97,114, 54,162,254,100,156, 57,212, 42,125, 82,133,236,209, 93,166,182,169,101,190,234, 83,236,120,144,
+213,207, 79,143,169,198,139,110, 33, 11, 12,141, 79,223,223,157, 99,162, 80,160,216, 18, 99,229,244,167, 57, 51, 58,100,172,187,
+ 20, 86,107,161,201,253,226,200, 92, 55, 91,176,113, 91,120,220,120,226,246, 63, 44, 71, 51, 70,104,163,212,234, 13, 73,139, 31,
+185,107,104, 46,161,165, 15,180, 81,235,240, 24,114,252,106, 45,110,139, 6,135, 17,196,161,246,218, 91,179,159, 82,188,197,248,
+196,114,163,149,230, 67,133,237, 78, 48,164, 36,163,114, 10,211,109,201, 61, 8,197,150, 26,104,172,172,200, 39,175, 74,176,201,
+ 18, 73,153,241,173, 53, 54,163, 41, 74, 67, 16,202, 11,139, 1,178, 23,126, 62, 56,215, 45,217,132, 55, 26, 84, 91, 6, 83, 97,
+ 97,193,247,227,101, 43, 46,102, 9,145,151, 54, 37, 41,215, 88,108,128,181, 91,128, 79,166, 39, 25, 58,128,253, 93,182,105, 21,
+ 90, 58,202, 22,173,169,113, 77,155, 36, 17,230,109,131, 63,112,213,184,213, 64,199,141, 92, 67, 75, 81, 2, 55, 53, 92, 75,146,
+136,241,200, 75,128,149,240,145,111,207, 4,225, 57, 54,130,234, 92,134,251,130,195,197,207,133, 70,220,241,134,218,143,148, 93,
+202, 85,199,161, 54,178, 88, 39,115, 55, 55,176, 62, 88,184,244,231, 43,209, 51,174,151, 67,144,186,107, 10,125,214, 9, 91,197,
+ 60,133,131, 99,207,203, 25,216,182, 51,109,132,218,161,247, 18, 84,149, 24,211,202,126,149,104,217, 40,171, 40, 48, 69, 84,146,
+208,100, 61,222, 40,221, 78, 39,197,180, 90,227, 15,178,237, 6,165, 81,113, 45, 83,227, 23, 28,221, 96, 7,166, 47,252,157,163,
+ 84, 76,207, 90, 97,164, 83,216, 65, 97, 9,246,135, 54, 3,225, 29,109,239, 61, 49, 55,143,164,185, 70,133, 50, 66, 96,209,154,
+105,246,208, 67, 37,164,109, 42, 73,243,198, 62, 33,197,246, 22, 23, 6,221, 64,230, 9, 10,242,159,219, 73,161, 11, 55, 20,137,
+157, 42,147,202, 52, 25,116,154, 74, 24,117,237,207,190,162, 84, 47,247,121,181,189,227,223,141,185,242,150,165, 80, 30,132,183,
+208,225, 75, 69, 94, 17,200, 35,156, 75,179, 14, 65,172,210,228,251, 98,130, 75, 71,113,104, 19,205,147,212, 91, 1, 37,209,170,
+146, 97, 73, 97,136,228, 36,176,119,133,117,177, 30,252, 30,223, 19,180,125,105, 90, 28, 7,223,207,248,171,104,107, 34, 34,171,
+173, 38, 33,220,216,236, 46, 47, 34, 55,134,253,120, 55,196,246, 74, 2, 29, 87,116,210,138, 45,107,168,249,226,173,202, 51, 92,
+162,230,232, 50, 16,238,207,181, 45, 44,250, 5,113,139, 97,166, 47,114,218, 75,201,191, 32, 3,108,107, 95,119, 30,204,118, 34,
+147, 83,150,152,148,139,216, 99,106, 88,113,180,133, 45,179, 98, 56, 56,242, 90, 23, 14, 43,181, 7, 89, 80,101,167, 82,218,212,
+ 7,235, 30,108, 61, 77,177,174, 52,198,102, 41, 45,198,116,169, 74,108, 44, 32,117,177,192, 32,148,230,229, 78, 29,109, 74,202,
+ 14,181,180, 69, 83,156,182,229,253,111,197,142, 22, 54,162,149, 84,113, 33,104,167, 72, 80, 61, 8,101, 68, 31,203, 11, 16,237,
+ 17,255, 0, 33, 69,131, 93,119, 38, 85, 33, 69, 37,185,232, 23, 54, 0, 28,107,146, 98, 33, 64, 38, 85,253, 8, 56,207, 50,229,
+ 28,165, 15, 44, 78,204,202,124,194, 98,156,219,203,125,111,133,236,105,166,208, 84, 84, 15, 60, 93, 10, 23,228,248, 78, 42,218,
+ 70,124,162,234, 46, 95, 70,104,211, 60,214,197, 90, 11,178, 77,221,136,230,238,229, 95,176,164,158, 80,127,116,128,122, 99,193,
+ 44,248,218,241,242,165,148,119,118,233, 7,206,186,149,240,194,123, 44,233,152, 27,152,211,202,172,223,101,220,161,107,147,132,
+170, 90,221, 90, 80,133, 20,173, 95,119,212,226, 2, 51, 54,127,166,146,203, 65,213,169, 42, 36, 41, 76,222,227,158, 61,221, 48,
+123, 45,106, 54,100, 46,165,250,150, 94,117, 76, 54,132,247,171, 8,186,145,187,175, 31, 11, 99, 97,142, 47,108,173, 41,117, 49,
+212,131,181, 81,115, 1,113, 32,148, 42,106, 86,197, 14, 69,193,118,231, 4,227,229,230, 54,248,214,160,163,230, 48, 18,159,170,
+153, 91,218,195, 43,110, 64,114, 83,129, 73, 66,147,123, 13,163,240,196,145, 85,244, 48, 75,206, 83, 84, 27, 10, 0,146,174,109,
+127, 65,141, 71,184,163, 8, 97, 50,167,125, 38,106,138, 48,123,215, 21, 1, 52, 62, 69, 34,116, 71, 54,161,229, 41, 7,167, 56,
+ 97, 42, 35,205,168,221, 4,223,208,226, 67, 76,206,116,185, 81,159,121,108, 4,247,105, 37, 40, 87, 85,115,229,135,146,106, 89,
+ 94, 62, 80,151,156,171, 49,214,204,120,109,130,166, 90, 70,231, 95,113, 95,113,166,211,230,165,114,111,209, 41, 73, 39,165,140,
+236,120,138,195, 17,115,179,105,103, 55, 66, 35,210,172,127, 67,196, 2,194, 82,137, 39, 77, 42, 7, 49,115, 16,120,117, 64, 14,
+128, 99, 19, 46,170,228,109,142,130, 83,228, 78, 5, 71,237,205,217,189, 25,118,161,144,233, 58, 55, 89,169,231,186,138, 91,102,
+ 35,242,102,149,177, 73, 80, 90, 92, 90,253,157, 45,161, 78,146,218, 86,139,238, 80, 27,183, 0, 45,130,113, 53, 18,135, 95,165,
+ 8,230, 11, 17,101,165, 9, 43,186, 84,210,156, 38,225, 94, 5, 45, 64,216,129,202,108, 57,231, 26, 15, 95, 34,217, 37,110,152,
+ 0,198,189,126,158,250,189,119,195, 24,133,157,183,106,230, 95, 32,100,249,104, 34,125,244,210,163, 62,106,155, 13, 7, 72, 72,
+244,192, 90,134, 93,139, 85,120,206,135, 37,200,117, 4,166,201,152,200, 6,227,246, 92, 73,225,196,126,233,249, 17,215, 18, 72,
+173, 71,144,224, 74,246,168,168, 92, 0,111,112, 49, 11,214,106,236, 61, 63,136, 51,245, 13,194,151, 41,111, 32,213,162,148,148,
+137, 49, 73, 9,112, 11,128, 20,164, 3,188, 17,114, 54,159, 34,113, 31,111, 97,196,254,160, 71,157, 97,178,195,253,168, 74, 65,
+ 7,239,122,172, 50, 78,164, 84,251, 50,235,147,217, 43, 52, 68,246, 12,189,153,157,222,203,141, 40,247, 17,223, 38,219,218, 81,
+232,130,120, 32,242,144, 69,250, 92,186,237,103,155,107,186, 99, 85,136, 98, 70,139, 62,141, 91,109,101,166, 95,105, 42, 44, 60,
+144, 1, 40, 54,225, 86, 85,194,185,235,238,196,187,181,118,156, 82,245, 27, 64, 42,181, 68,182,133,191, 6, 15,214, 84,185, 41,
+ 28,164,164, 5,220, 31, 69, 34,255, 0,150, 57,123, 63,107, 72,213, 14,206,217, 85,202,172,189,213,154, 13,101,200, 51,183, 43,
+196,180, 22,129,109,207,152, 77,143,189, 39, 21,213,217,131, 35,126, 71,159,148,244,174,195, 5,125,215,174, 91,185, 70,132, 28,
+171,244,209, 95, 67, 93,229,216,198,155,148,209,167,121,102, 46, 91,109,207,103,144,199,124,174,248,130,181, 60,181,149, 44,168,
+143, 61,215,249, 1,143,169,154,109,177, 52, 8,155, 64,176,101, 36,219,208, 1,255, 0, 44,124,120,250, 50,115, 43,181,188,161,
+ 74,142,252,143, 13, 50,185,220,184, 84,120, 74, 20, 82,171,255, 0,226, 56,250,237,144, 43,145,216,161,162, 54,224, 11, 8, 8,
+ 87,225,198, 51,238, 28,237, 92, 10, 53,222,224,235, 89,105,214,214,100,133,159,142,181, 61,174,230,186, 93, 15, 43,204,204, 21,
+137,168, 98, 28, 24,174, 63, 41,247, 77,146,211,104, 73, 82,148,125,192, 2,113,241,102,173, 91,206,189,184,251,104,183,237, 21,
+ 39,173,154,179, 16, 66, 19,186,254,199, 79, 65, 38,201,191, 64,219, 9, 63, 18, 61,248,237,175,165,171,180,170,180,151,179,147,
+154,113, 72,168,247,117, 76,234,247,177, 4,161, 86, 82, 33,163,197, 33, 95, 48, 80,223,188, 56,125, 49,204,255, 0, 68, 22,157,
+189,153, 53, 78,187,172, 51,153,188,122, 12, 1, 10, 3,138, 28,123, 76,131,226, 80, 62,169,105, 42, 7,255, 0,170, 49, 73,211,
+218, 58,148,122,214,170,115, 5, 72,175,163, 20, 86,233, 25, 26,147, 3, 37, 80, 98, 55, 18,157, 77,136,152,208,217,104, 89, 45,
+182,148,132,128, 62, 64,227,124,186,243, 72,104,184,169, 62, 13,221, 9,196, 83, 53, 85,247, 45,111, 52,190,109,202, 65,248,255,
+ 0,207, 16,250,158,107,144,182, 16,200,144, 64, 0, 94,231,227,255, 0, 60,105, 33, 19, 78, 78, 81, 86, 13,126,189, 25,198,211,
+ 34, 59,219,148,165,146, 8,248,225,147,121,205,250,106, 84, 3,164,139,220,123,175,255, 0,166, 43, 21,102,233,136,145,181, 74,
+ 37, 9, 36,165, 63, 46,191,152,198, 43,207, 37,162,125,160,238,220,158,151,244, 22,197,160,214,149, 85,199,106,240,166,106, 63,
+180, 69,222,235,151, 85,128, 54, 62,118,181,240,245, 25,193, 41,106,251,252, 86, 6,196,249,143,253,113, 69, 80,115,160, 68,144,
+183, 29,178, 56, 35,158,188,226, 68,115,211, 5, 42, 45,187,115,199,159,203,251, 48, 23, 27, 53, 92,172, 85,160,246,116,222,173,
+174,175,147,114, 47,233,128, 53,252,194,218, 91, 15, 37, 66,206, 38,252,121, 31, 60, 66, 95,206,237, 56,246,237,228, 0, 64,235,
+228,112, 42,175,156,247,110,141,222,220, 2, 79, 94,131,174, 42,169, 6,160,167, 0,169, 44,188,196,101,120, 3,158, 29,190, 71,
+ 26, 39, 72,105, 76,141,175, 18,160, 1, 62,251,117,196, 66, 53,125,176,206,245,174,228, 90,252,245, 28,223,248,227,207,210, 34,
+149, 32, 7, 73,240,157,220,249,121, 96, 93,153,160,169,225,202,136,214, 43,142, 50,199,124,210,141,202,184, 4,254, 24,142,214,
+ 51, 20, 89, 80,214, 30, 80, 42, 90, 56, 23,243, 60,219,248,140,106,175,214, 74,183,119, 42,184,219,125,163, 21,230, 96,157, 82,
+ 51, 20,227, 43, 59, 1,220, 61,254,191,227,223,130,161,169,170,203, 89, 85, 15,203, 58,105, 84,173,103,138,157, 82,148,192, 33,
+213,248,220,113,196,161, 32,219,173,201,196,170,177,147,230,100,186, 52,186,237,110,171, 21, 17,161, 66,114, 92,146,137, 40, 81,
+ 13, 54,146,165, 40, 11,220,216, 3,211, 20,230,178,231,250,237, 47, 48, 71,162, 81, 35,160, 1, 9, 11,154,235,132, 0, 1, 36,
+130, 57,231,131,136, 36,221, 69,253, 33,132,236, 7, 91,157, 37,180,165, 77,184, 9,186, 20, 15, 4, 91,139,130, 58,226, 74,197,
+113, 70, 30, 13,160, 39, 32,142, 68,159,255, 0, 96, 60,180,175, 61,196,144,203,216,170,150,185,220, 13, 60, 34,190,132,125, 27,
+217,183, 78,106, 90, 33, 43, 84,169,181, 38, 27,155, 92,140,101, 58,135, 31, 10,113, 5,211,187,187, 63,247, 65, 8,254,142, 54,
+246,160,204, 20, 92,211,245, 74,106,153,194,159, 13,248, 97,239,178,146,237,148, 80,174,237, 9, 80, 0,116, 37,165, 99,128,123,
+ 41,103, 76,159,164,154,146,167,179, 26,170, 77, 80, 89,136,143,171,153, 47,172, 33,181,161, 32, 20,148,131,226,185, 4,244,230,
+248,123,173,122,213, 83,213,236,245, 47, 56, 70,109,230, 35,184,176,136,205, 23,126,226, 83,194, 60, 32,250, 11,155,121,147,136,
+223, 62,242, 31, 75,172, 40, 3,212,137,223,194, 71,149,117,252, 67,125,103,113,100,150,217, 50,149, 4,192, 28,128,255, 0, 85,
+127,206,153,167, 81,156, 43,157,168, 52,181, 41, 39,238, 7, 21,207,229,252,112,233,209,165,146, 33,183, 34, 22,127,130, 23,107,
+186, 2, 87,100,143,194,199, 28,119, 34, 93, 86, 36,133,137,111,168,173,106, 10,113, 65, 96, 2,175, 82,125, 49,131, 25,214,161,
+ 18, 34,189,177,229, 39,121, 42, 74,201,221,225, 23,177, 0,124,207, 56, 1,197, 49,200, 5, 15,143,255, 0, 17,175,214,188,217,
+219, 70, 9,253, 63, 26,237, 26,106,114, 66,155, 6,153,169, 52, 71,219, 39,133,151,148,146, 7,192,167, 12, 51,196,156,163, 59,
+ 43, 78,165, 83,117, 30,148,196,183,217, 45,180,234,150,163,182,252, 21, 90,220,249,227,143, 63, 77,138, 95, 69, 73,170,211,128,
+ 33,143, 15,114,149, 37, 9,191,235, 91,203,156,107,147,159,234,172, 56, 23, 30,186,123,231,141,150,128,178,173,201, 61, 79, 55,
+ 62,252, 72, 98,252, 66, 83,151,181, 79,158, 77,127,111,133, 0,216,219,159,241,248,212,154,185,217,119, 40, 46,160,243,213,125,
+127,165, 60,226, 30,187,102, 44, 37,149, 40, 31,189,114,162, 13,237,211, 2,191,205,199, 72, 96, 73,110, 75, 58,204,236,129,221,
+ 20,169,147, 13, 32,168,147,197,136, 56,102,228,236,205, 16,137, 17,167, 32,199, 82,206,229,188,160, 86,127, 43,143,225,129,242,
+106,129,146,235, 87, 84,199, 89,241,165, 70, 50, 82, 19,126,137, 42, 28,155, 97,211,138,227,138,137,186, 62,228,160,127,252,253,
+106, 63,211,237,128,140,159, 63,222,162, 26,149,217,179, 79,106,125,219, 80, 53, 22, 91,143, 55,194,208, 98,160, 95,169,224,223,
+156, 85,117, 77, 31,129,150, 20,235, 80,179, 66,138, 2,146,224, 82,146, 5,148,147,112,108, 49,106,230,170,132,167, 28, 47, 41,
+126, 11,220,180,130, 78,229,116,234, 63,134, 43,140,221, 56, 62,162,240,128, 84, 17,225,220,142, 13,253, 15,174, 58,204, 51, 21,
+196,202, 66, 92,120,168,120,132,254,194,137,217,101,216, 69, 26, 94,161,100, 71,162, 21, 85,114,195,162, 90, 99,132, 3, 21,240,
+ 16, 84, 7, 42,177,231,156, 61,164,234,230,154, 8, 72,143, 54,133, 41,181, 33, 32, 88, 88,133,144,111,235,138,166,123, 42, 83,
+194, 66,226,187,180,253,237,171,176,198,132, 66,169,202,157,181,152, 32, 3,208,220,147,111,126, 10,112,124, 57,201, 42, 82,181,
+255, 0,204,199,161, 52,161,200,138,158,214,243,182, 94,159, 86,126, 92, 40,229,134, 92, 89, 45, 52, 44,118,143, 76, 18,166,103,
+124,140,236, 6,227, 84,154, 90,146,147,226, 5,176, 65, 62,189,113, 92,251, 5, 85,130,231,114,194,212, 27, 28,217,174, 1,233,
+ 98,113,182,157, 68,157, 33, 27,149, 20,133, 40,248, 80,148,158, 79,199, 26,193,198,155,101, 45,131, 1, 48, 7,186,134,166, 86,
+173,234,200,171,234,150, 85,246, 6, 40,217,122,150,204, 86, 90,229, 78,136,254, 37, 43,251, 6, 36,185, 39, 83,116, 90, 54, 87,
+121,188,230,218,151, 61,215,236,217,141, 22,224, 35,205, 74,191,159, 94,152,169,163,105,222,103, 84,132, 54,136, 14, 45,197,167,
+120,109,171,174,223, 44, 26,164,233, 61, 94,168,165,165,216,238,130, 23,182,200,104,222,254,167,208,123,241,158,167,112,182, 97,
+ 82, 36, 25,158,115,231, 70, 97, 46, 50,176,160, 1,243,168,190,172, 66,167, 85,115,197, 74,163,146, 86,161, 77,113,123, 98,173,
+105,238,212,180,216, 94,227,203, 7,168,178, 50,245, 91, 32,198,164,230,133,134,234, 48, 64,105, 54, 27,131,205, 3,199, 62,182,
+196,190, 23,103, 89, 78, 93,153, 13,173, 79, 27, 20,134,156, 36, 91,223,232,113, 36,160,118,118,202,137,113, 76, 86, 38, 72,142,
+226, 90, 42, 14,188,164, 37,180,159, 43,146,121,249, 97,174,248,178,204,182,144, 87,170, 72, 32,141,244,250, 30,116, 37,218,246,
+170,146,145,214,130,105,189,115, 70,169,212,199,154,205, 15,184,151,148,118, 35, 99, 36,165,180,250,241,231,137, 60,141, 66,209,
+ 90,110, 87,122,147,151,234, 61,228,151, 17,224,113, 81,213,115,239,189,176,229,122, 35,147, 90,101, 43,101, 13,119, 41,178,150,
+249,241,111, 7,139, 0, 63,142, 60,151,163,121, 85,232, 75,151, 3, 41,165,196, 37,223, 11,200,113,105,178,109,233,111, 51,142,
+ 70,234,247, 10,188,191, 23, 78, 45,194,100, 24,145,148, 70,194, 15,202,106,202, 26,117, 17, 28,171,159,117,130,149, 27, 54, 84,
+216,114,134,180,119, 77,182, 67,139, 81, 35,113,242,196,219, 67,235,185,111, 38,105, 50,242,238, 98, 68,149,212, 91,154,234,217,
+ 76,102,247, 39, 98,173,107,159,141,241,103,157, 42,203,148,197,150, 85, 68,133,126,232, 20,164,172, 41, 70,252,220,223,207, 5,
+168,249,103, 39,210, 32,163,108,112,130,165, 16,234, 16,164,155,243,211,206,231,221,141, 59,254, 40,180,188,180, 75, 10, 65, 41,
+ 73, 4,121,143, 90, 75, 97,199, 86, 73,231, 81, 13, 62,213,202, 30, 88,117,249,210,169, 83,156, 14, 54, 18,142,237,159,125,252,
+206, 15, 63,172, 85,154,236,214, 42, 20, 61, 61,152,160,217,225,110, 56,148,238, 73,245,244,196,218,147, 11, 42,182,135,153,122,
+136,210,212, 72, 13,135, 80, 80,180,219,204,113,110,113,179, 48,193,133, 77,132,227,169,134,142,155,252, 68, 5, 95,160,233,215,
+225,142, 98,247, 22,176,188,196, 77,202,217,254,225,211, 85, 24,136,141,132, 84,211,106,160,222, 94, 85, 11,169, 57,168, 57,133,
+109,212, 70,157, 54, 26, 15, 18,158,250, 65,240, 31, 49,112, 45,206, 7,230, 44,137,153,115, 11,138, 92,186, 92, 26, 78,247, 62,
+208,176,181, 45, 86, 34,214, 39,143,195, 18,119, 43,109, 57, 9,184,198,177, 47,107,201, 37,246,210,209, 38,215,189,174, 62,239,
+199,174, 55,212, 51, 21, 58, 20,180,185, 22,162,216, 42, 64, 35,191, 10, 89, 73, 3,204,121,226, 13, 98,142,219, 40, 22, 82, 18,
+ 68,196,102,250,147, 62,149, 33,105, 53, 93, 80,187, 27,100,201, 11, 14, 84, 51,107,205,205, 66,194,217,105, 45,125,241,123,147,
+207, 92, 75, 81,165,249,118,142, 24,165,162,108,201,138, 0, 7, 84, 1,105, 42, 81, 62,128,121,124,112, 96,103,200,149, 56,100,
+ 79,171, 45,187,170,238, 72,138,141,165,103,208, 19,211, 26,229,234,109, 30, 28, 68, 37,140,208,219, 77, 7, 5,218, 89, 43, 85,
+192,177, 60, 15,203, 14,254, 63,142, 93, 42, 29,113, 71,195,253, 10, 34,108,208, 6,213,186, 6, 66,210,122, 43,237, 52,221, 17,
+ 51, 95, 65, 42, 84,103, 92, 83,128, 31, 62,110, 71, 56, 40,183,233,140, 42, 73,165,233,213, 26,146,226, 81,102, 28, 49,210, 13,
+135,235, 1,242,196,122, 14,114,203,108, 71,109, 84,176,236,130,226,212,161,117, 22,210, 9, 60,239,227,166, 25,230,141, 74,203,
+ 13, 49,236,242, 22, 80, 16,131,185, 73,178,238,171,249, 27,240, 6, 51,215,113,125,112,224, 11, 82,213,230, 79,202,126, 98,136,
+155, 84, 39, 97, 21, 55,155,154,106,245, 24,145, 93,222,160,148,181,100,247, 50, 18,205,255, 0,162, 7, 24, 88,166,221,212,218,
+ 88,121, 72,138,167, 94, 64, 55, 74,156, 65, 87, 7,222, 45,133,137, 11, 55,146, 32, 15,135,243, 83,236, 69,119,245,119, 44,105,
+238,116,211,250,189, 18, 69, 20, 8,114,169,146, 98,186,218,147,112,148, 37,160,133,120,135, 78, 84,180,143, 50, 82, 79, 36,223,
+ 31, 25,123, 56,175, 83,251, 58,106,213, 86,179, 50, 92,186,125, 18,151, 84,126,151,152, 22,235, 87,143, 57,108,172,167,186, 9,
+ 36,110,116,219,194, 83,226, 23,226,224,144,126,165, 59,171,121, 73, 25, 17,218,158,107,170, 53, 79,136,227, 47, 58,251,174,185,
+181, 13,139,173,106,177, 61, 0, 42, 28,250,164,123,177,242,247,180,125,127, 53,106,110,111,204,186,135,167,185,114,181, 39, 40,
+ 79,175, 72,118,157, 88,145, 5,230,225,199, 14, 57,180, 45,130,160, 6,245, 4,128, 92, 60,220,217, 54,234,120,190, 6,179,188,
+113,119, 22,145, 41,114, 1, 42,216, 25, 49, 19,204,131,231,166,198, 43,233,110, 9,252,191,106,110, 30,198, 80, 87,111,148, 66,
+ 71,249,172,108,137,208,236,100,229, 32,255, 0,228,153,204, 46,221,122,250, 75,242,158, 73,134,213, 23, 74,244,197,201,213, 57,
+ 39,188,156,154,228,180,161, 16,124,131,106, 12,169, 69,110, 16, 77,198,228,237, 6,199,158, 7, 85,105,229, 88,230,188,135,151,
+234, 78,101, 41, 84,169,217,134,148,204,218,131, 14, 19,246, 43,121,176, 75,100,158,124, 62, 33,206, 57,155,232,193,236, 71,164,
+211,242,197, 51,180,182,179, 82,197,118,123,149, 89, 70,133, 65,152, 83,236,141,162, 58,130,123,247, 27,183,218, 18,224, 80, 1,
+ 87, 72,176, 36, 19,206, 59,117,140,201, 79,170, 60,181, 64,216,237, 81, 46, 32, 39, 47,165,149, 41,201, 40, 74, 82,165, 41, 14,
+ 37, 37, 41, 5, 92,248,186, 5,139,129,126, 33,196,239, 97, 86,119, 62,195, 98,133, 41, 77, 18, 22,178, 78,170,218, 0,232,152,
+220,192,241,231, 94,123,141,123, 5,197,225, 22, 76,246,104,157, 4,149, 24,228, 9, 58,147,227,167,128,170, 62,179,165, 90,166,
+254,108,113,200, 73,105,248,109,238, 13, 20, 60, 18,150,202,150,144, 10,189,246, 6,216, 99, 79,141, 83,205, 57,215,244,107, 76,
+181, 73,154,212,202, 67,110,138,252, 89, 48,214,136,241, 31, 46, 40, 52,195,111,165,127,106, 74, 27,113, 69, 69, 32, 2, 0, 27,
+185, 34, 91, 31, 91, 50,236,252,251,254, 79,162,230, 68,208, 18,166,130,217,139, 85,140,160,243,111,164, 19,221,173,180,248,202,
+ 82, 80,175,180, 30, 2, 1, 1, 87, 28,138,213, 65, 84,210,252,175, 39, 95,105, 90, 56,195, 84,196,190,145, 80,147, 73,134,152,
+222,211, 9,199,118,151, 94,111,245,147,117, 29,151,185, 4,222,224,110, 4,182,151, 79,232,219,201, 25,149, 1, 2, 0,223,207,
+ 66,121, 0, 13,101,178,211, 40,148,169, 36,168,237,225,212,255, 0,189, 43,163,116, 98,179, 64,236,159, 47, 45, 85, 53,115, 47,
+101, 56,181,183, 84,103, 85,115, 45,114,107,147,169,200,139,185, 64, 48,207,116,211,129,165,120, 2, 76,141,171, 74, 84,165, 36,
+ 46,228,237,137,246,148,212,252,173,172,153,186,185,156,169,217,156,194,135, 86, 90,150,219, 82, 29, 46,123, 10,110, 9, 12,169,
+ 32, 36,182, 64,240, 1,202, 65, 23, 28, 92,194, 51, 22, 97,205,154,209,162,185, 99, 49,211,230,194,204, 52, 10,132,182,233, 84,
+ 55, 38,200, 10, 67, 9,150,250, 24, 75, 42, 74,206,208,128,242,211,185, 11, 54, 7,125,194, 78, 56,155, 86,117, 27, 86,114,166,
+102, 84,188,241, 81,135, 7, 57,229, 10,139, 49,166,181, 10, 66, 66, 39, 65,144,216,126, 58,130, 16, 74, 86,208, 65, 9, 34,246,
+218,234, 65,231, 27,214,121,175,219, 41,182, 1, 57, 20, 36,198,169, 88,141, 58, 29,116, 50, 14,227, 72,219, 70,229,229,173,132,
+165,166,242, 36, 70,177,172,245, 61,126,244,171,239, 62, 82,242, 69, 11, 52, 66,206, 12, 67, 97, 50,144,135,132, 87,123,150,218,
+ 14,220, 38,229, 78, 40,130,174,131,169, 29, 72, 3, 21, 70,102,237, 35, 39, 42,166,124,124,229,167,239,152, 45, 84, 10, 23, 80,
+143, 53, 43, 17, 92, 85,150,216,176,178,146,171,110,181,189, 13,137,233,129,186,185,218,210, 64,110, 46,169,229, 45, 52,164, 57,
+ 72, 76,240,181, 64,146,210,175, 17, 73,105,144,160,133,130, 2, 6,247, 44, 0, 22, 6,196, 12, 86,122,239,169,116,141, 67,210,
+231,179,229,102, 3, 14,215, 43, 89,129,164, 57, 45, 1, 73,188,118,163, 11, 0, 18,160,139,238, 34,228,160,168,159,214, 28,131,
+126,206,214,233,247, 2,175, 4,230,208,146, 76,204,237, 3,167, 94,181,142, 81,218,174, 92, 81, 36,243, 63,126,149,209,186, 95,
+170, 13,106,148, 6,217,202, 89,222, 4,224,227, 10, 49,212,236,144,133, 45,192, 9, 83,106, 22, 59, 22,145,180,145,225, 36, 92,
+164,112,108, 71, 44,230,108,221, 34, 85, 79, 39,103,186,251,175,194,168, 48,182, 85, 6,165,101, 41, 12,175,122, 46, 20, 0, 82,
+124, 60,148, 44, 18, 60,213,124,114,102,108,206, 90, 88,141, 62,162,234, 62, 72,167, 74,203, 57,234, 46,200,115, 69, 17, 97,152,
+ 51, 98,161,128,148,200, 91,118, 39,191, 42,251,196, 16, 15, 36,164,147,124, 29,236,203,219, 27, 44,208,157,117, 58,141, 73,169,
+213,222, 76,144,219,206, 58,251,143, 62,242,142,225,246, 97, 71,106, 64, 22,224,145,239, 61, 49,125, 54,151, 22,246,142,150,145,
+153, 42, 31,166, 6, 96,173,164, 29,189,226, 40, 87, 22, 72, 10, 57, 14, 97,167, 42,233, 93, 47,214, 7,115,111,101,217,121, 27,
+ 55,204,239,106, 25,121, 18, 50,235,206,188,162, 87,220,160, 45,166,193,191,236,164,167,229,199,150, 56,107, 59,210,151,151,115,
+ 90,226,199,222,136,211, 34,197,154,218, 20,120, 37,198,130,137,249, 40,168, 98,240,127, 84, 90,139,155, 51,197, 50,155, 77,114,
+ 60, 44,203, 38, 37, 86, 43, 27,154, 87,114, 84, 54,175,196,133, 16,110, 87,208, 19,247,125,216,173, 53,165,228, 85,211,148,102,
+ 71,142, 62,199, 44, 51, 21,247, 19,250,234,110, 67,246, 87,175,221, 41, 23,247, 98, 88, 91, 43,182,125, 95,241, 94,177, 58, 9,
+ 19,167, 77,100, 84,109,127,180,242,143, 90,232,143,163,115, 84, 14, 83,204,181, 12,189, 45, 68,179, 45,144,243,105, 31,246,173,
+139,139,124, 69,255, 0, 12,125, 33,203, 95, 72,206,130,100,234, 68, 70,115,142,122, 79,214,142,222, 63,212,116,182,215, 54,115,
+142, 4,164,139,180,208, 37, 36,146, 64,221,110, 65,199,199, 61, 46,153, 93,167, 68,158,188,179, 37,230,106, 5,144,152,171,142,
+171, 46,234, 10, 65, 0,142,132,238,182, 59, 11,179, 77, 17,174,202,250, 53, 84,215,106, 44, 53, 63, 95,110,154,184,237,214, 22,
+192,112, 25,242, 16, 3,108,161, 68,130,128,139,149,169, 66,247,219,207,222, 22,139,202,113,155,253, 20, 72, 87,248,244,211, 85,
+ 30,128,124,107,161,195,110, 27, 75,138, 60,213,244,231,238,161, 31, 72, 55,107, 68,118,168,215,215,115, 45, 18, 36,216,148, 90,
+ 60, 22,233,244,152,149, 6, 59,167,211,182,234,117,110, 32, 19,181,101,213, 40, 91,174,212,164, 30, 70, 59,199,232,226,201, 52,
+157, 52,236,161,151,233,155,151, 30,177, 94,239, 43, 19, 89,149, 29,108,173,192,240, 79,118, 81,188, 14,241, 33,148,181,226, 77,
+197,201,231, 31, 50,116, 55, 71,165,234,158,169,208,178, 92,218,134,247,171,149,134, 35, 44,163,196,161,222, 56, 55,172,159,112,
+ 37, 71,224,113,246,161,110, 80,232, 52,184,244, 26,115, 72,141, 14, 20,116, 71,138,210,120, 13,161, 35,106, 82, 61,192, 11,124,
+176,123, 69, 7,157, 82,135, 42,219, 67,169, 88,210,131, 86,167, 15, 18, 92, 69,184,255, 0,149,241, 1,204,146,187,148, 18,133,
+121, 29,190,238,184,146,230,106,244, 21,247,171,141, 33, 4,216,129,207,248,242,197,101, 88,204,173,165,245, 51, 37,209,112,118,
+245,233,115,124,111,176,153,170,183, 14,229, 21, 31,168,234, 52,218, 60,151, 91,113, 87, 0, 16,146,122,115,231,129, 95,229,129,
+135,228, 2,228,132,128,142,109,126,182,242,192,252,255, 0, 54, 9,136,227,140, 17,215,194,126, 56,231, 60,239,155,230,209, 42,
+238,169,185,101, 34,252, 0,120,183, 63,242,252, 49,162,210, 18,189, 43, 56, 44,184,107,172,105,250,139, 14,104, 71,250, 71,118,
+ 69,172,119,112,121,195,245,234, 11,140, 47,106, 31,178, 7, 4,223,174, 56,251, 46,235, 28,134, 2, 1,157,187,144, 84, 20,191,
+133,255, 0,134, 39, 48,245,254, 11,201, 30,218,240,177, 87,175, 62,252, 51,150,198,162,160,160,107,163,152,212, 17, 37, 9, 10,
+144, 82, 22,121, 55,247,227, 25,217,254,152,219,189,227,147,129, 32,144,177,127,125,177,206, 85, 13,117,167,196, 8,109,137, 64,
+163,101,130,138,189,127,199,231,136,156,189,108,153, 42, 98,187,169, 69, 94, 50, 65, 10,234, 47,123, 98,169,180, 81,168,101, 81,
+174,168, 86,169, 66, 91,169, 40,148, 54,158, 0,191, 67,198, 31, 83,179,175,182, 63,113,126,128, 11,121, 95,252,126,120,230,140,
+149, 95,170,215, 38,119,133,242, 83,191,129,127,134, 47,108,150,211, 41,140, 29,117,203,146, 8,254,204, 1,118,225, 52, 37, 38,
+ 42,108,250,220,116,135, 91, 55, 10, 60,243,228,112,214,101, 49,167,108, 54,220,171,167, 30,126,152, 35, 13,184,239,196, 70,231,
+ 5,246,216,139,225,218, 99, 51, 41,244, 37, 36, 29,132, 17,180,245,247, 98,170,187,162,132,107,152,251, 74,182,197, 27, 87,149,
+ 13,247,163, 52,180,192,142,164,169, 99,196,144, 91,232, 60,253,127, 28, 69,229,251, 5, 89,150,226, 52, 99, 45, 27, 1, 43,239,
+148,217, 87,175, 3,175,207, 19, 46,214,212, 40,185,147, 88,101,213, 99, 60, 99,170, 44,102, 89,222, 64, 35,114, 69,135,203,159,
+207, 20,228,172,191, 95,168,151, 82,213,116, 0,203,164, 44, 54,201, 73, 23, 6,195,223,198, 57,139,155,187,117,220, 18, 28,136,
+174, 73,235, 23,156,185, 90,128,144, 77,108,157, 71, 75, 19, 28, 46, 41,148,134,110, 90,112,173, 74, 27,135,186,221, 45,134,178,
+220,151, 76,150,220,248,178, 20,130, 25, 33, 37,196,165, 55, 36,121, 12,110, 86, 66,122, 51,136,134,107,143,135, 29, 4,238, 82,
+238,126, 62,152,209, 81,211, 90,165, 49,230,229, 49, 84, 68,199, 86,157,233, 75,174, 19,208,226,105,196,237,167, 42,156,248, 81,
+ 63,164, 92,148,204, 83, 41, 21,199,223,144,220,105,181, 57, 13,119,164,247,171, 71, 59,207, 22, 60,116,198,140,195, 38, 10,163,
+161,231, 38, 63, 36, 33, 27, 31, 37, 22, 31, 48, 58,224,155,148,124,245, 53,132, 63, 2,145, 21,160, 70,210,176,110, 83,240, 24,
+ 21, 85,201,121,198, 34,193,140,219, 15,150, 81,119, 18, 77,185,244,243,247,224,237,223, 91,149, 14,248, 30,241, 84, 93,195,221,
+108,234, 41,139, 53,244, 82, 22,193,122,140,160,215,118,164,221,108, 17,184, 30,156,115,127,158, 9,211,234,176, 88, 38,165, 22,
+ 42,123,231,145,100,187,221, 27,160,242, 5,207, 65,240,192,105, 43,207, 96,130,230, 91,125,183, 20,174,241,183, 18,202, 74, 83,
+229,239,227, 14,155, 57,165, 80,131,147,195,219, 29, 38,200, 72, 10,185,191, 55,249,224,238, 62,220,110, 61,104, 2,216,142, 70,
+138,175, 51,212,148,174,234, 77,108, 38,228,146,181, 14, 19,127,213, 30,252, 53,166,214, 87, 22, 82,227,189, 86,144,243,110, 46,
+196, 52,209, 55,252, 48,217,170, 85, 66, 81, 74, 81, 21, 75,112, 47,123, 72, 91, 28, 31, 80, 49,148,234, 94,122,109,164, 59, 76,
+130,176,155,155, 89, 54, 41, 62,182,183, 65,128,139,150, 63, 76,129, 62, 67,233, 79,236,254, 6,182,202,203, 20,138,145, 1,217,
+ 82, 2, 1, 83,169, 74,211, 98, 72,245, 7,166, 26, 59,148,178,125, 65, 1, 18,169,203, 74,138,174,144,148,238,242,235,240,195,
+ 25,181,140,225, 73, 9,129, 85,130, 8, 73, 80, 42,238,201, 85,253, 9, 39, 15,242,254, 77,159, 93,138,135,254,176, 49, 94,121,
+103,106, 81,199, 0,155,156, 20,222, 45,148,230, 83,144, 57, 65,167, 22,193, 71, 65, 94,167, 33,229, 14,225, 18,132,118, 20,150,
+222, 1, 76, 41,187, 94,254,103,155,140, 58, 99, 39,228, 40,115,187,248,180,200, 77, 43, 98,129, 74, 16,171,145,230,122,224, 28,
+252,177,155,105, 79,168, 10,123,207,169,151,118,169, 74, 73, 80, 7,212, 91,200,223,207, 1,179,102,117,205,180,102,156,126,171,
+150,221, 76,118,154, 27,159, 97,173,196, 11, 18, 73,227,243,196,197,203,207, 70, 87,102,124,126,156,234, 72,180,204,114,229,214,
+165,217,178,151, 16,181, 30, 62,150, 57, 21,169,239,255, 0,239, 13,203,225, 15,178, 8,220, 46, 77,199, 54,231,222,112,102,141,
+ 51, 46,185, 5,167, 36,209,224,186,235, 77,120,238,141,170, 30,187,118,241,138,154,139,156,166, 38, 43,117,248,244, 57, 11, 19,
+ 64, 12,169, 72,224, 55,201,218, 57,243, 28,156, 61,253, 36,206,210, 2, 95,137,151, 22, 15, 62, 20, 36,220, 39,225,228, 48, 69,
+135, 22,212, 41,126, 26,145,254,250,206,181,113, 97, 38,212, 50, 80, 52, 59,243,171,105, 25,150,146,217,246,248,153,109, 72,112,
+ 1,181,224,202, 84,164,143, 33,126,182,195, 4, 85,170, 19, 36,169,193, 33, 40,117,199, 9, 81,147, 30,201, 9,244,235,136, 91,
+212,204,225, 34, 11, 77, 83,100, 30,253, 92, 33, 41, 54,247,216,226, 56,170,126,174, 25,201, 98,119,122,222,229,148,133,128, 72,
+242,184, 39, 21, 26, 67,106,152,112, 15, 51,251,213, 99,106,157,226,174, 47,211,120,194, 50, 88, 50,150, 91, 38,206, 4, 20,144,
+181,116,224,117,199,136,175,211, 36, 41,110, 41,222,229,148,139, 37, 43, 1, 87,249, 28, 83,149,166,243,197, 30,154,154,179, 53,
+ 37,133, 4, 42,233, 8,233,107, 11,223,203, 1, 89,172,231,185,196, 33,126,218, 66,213,192, 66, 13,137,243,252,112, 68, 89,161,
+105,204,149,136,166,246,116,116,174,134,127, 57, 59, 18, 35,113, 26,172, 48,180, 37, 36, 57,222,128,146,160,121, 1, 54, 56,100,
+141, 68,102, 4,117, 75,151, 87,104,139,217, 40, 46,158, 57,243,248, 98,145,167,101,172,247, 92,101,201,173,179, 40,183, 28,144,
+189,196,220,158,150, 31, 60, 55,159,149,117, 22, 26, 28,126,125, 34,110,196,253,210,164,145,127, 46, 61,112,201,178,182, 39, 41,
+112, 79,186,166, 45,199,252,106,229,168,234,173, 38, 92,125,166,166,203,238, 41,119,222,183, 15,132,219,229,128,237,234, 61, 22,
+159, 32, 61,237,236, 43,119, 46,109, 93,173,248, 98,167,167,229, 12,219, 61,213,182,105,146,218, 1, 36,221, 77,147,205,189,223,
+135,207, 13,219,161,230, 20, 16,210,105,146, 84,164,159, 29,155, 39,140, 88, 77,165,170, 4, 5,211,150, 57,229,171,118, 95,104,
+191, 97,105, 40,165,176,203,196,155,149, 56,226,174, 79,241,192,250,191,104,201,178,211,182,162,148, 4, 18,119,132, 11, 3,249,
+226, 11, 75,210,172,231, 61,213, 61, 18,133, 37,103,161,216, 44,110,112,245,122, 1,170,114,228, 37,110, 80, 8,104,170,222, 53,
+ 2,175,158, 33,147, 7, 66,181, 80,159, 19, 83,236, 87,210,137, 43, 90,234,204,149, 57, 69,146,166,208,177, 98, 1, 2,224,245,
+195, 25,186,159, 80,152,160,169, 51, 74,220, 81, 36,238, 95, 56,115, 78,236,227,157,234,145,220, 75,105, 67,105,108,171,236,220,
+ 93,137,176, 36, 91,240,192,103,244,123, 54,211, 93, 76,101,210,221, 90,251,144,240, 91,105,186, 84,131,231,124, 21, 15,225,101,
+ 80,149, 9,167, 75, 11, 60,169,212, 45, 70,113, 49, 28, 67,200, 72,228,236, 74, 15,158, 27,187,156,106, 33,189,137,184,105,197,
+221, 69,213,143,157,134, 13,163, 66, 51, 51,176,155,115,196,151, 71,137, 81,201,241, 91, 2, 42,122, 93,155,233,242,125,149,202,
+124,148,167,114, 66, 84,166,174,130, 77,249, 7, 9, 23,150, 10, 81,202,161, 82,236, 13, 96,206,109,144,123,198, 81, 48,148,168,
+114, 67,134,228,121, 14,184,212,245,126, 84,196, 45,157,128,165, 92, 36,133, 27,147,130,148,237, 19,206,115,103,161,109, 81, 72,
+102,192,151,199, 2,223,219,137, 37, 83, 67, 94,141, 25,164, 82,170, 12,166,118,197, 23,154, 88, 34,227,200,143, 33,230, 48, 53,
+226, 54, 40, 80, 25,135,223, 90,126,192,197, 87,102,179, 86, 66,136, 12,167,142, 57, 32,244,248,225, 98, 88,141, 17,207,106, 82,
+146,238, 95, 46, 40, 30, 84,209,227, 11, 4, 24,141,153,255, 0, 33,234, 63,122,127,102, 21, 51,157,168, 20,204,215,146,160,204,
+205,172, 71,147, 73,121, 30,205, 30, 28,196, 5,165,240,130, 20,235,132, 17,107,119,138, 28,254,226,135,144,198,231,245, 38,153,
+157, 50, 42,242,221,102, 51, 79, 67,169,182,220, 54,163, 41, 59, 80, 18, 14,237,192, 38,219,118,132,131,197,173,198, 57,166,181,
+170, 70,172,204, 42, 91,106,112,195,166, 65, 68, 90,123, 23, 63,119,170,151,241, 82,202,143,204,224,205, 59, 61,191, 18, 57, 13,
+172, 30,233,189,141, 92,240,216, 63,120,252, 73,233,142,121,120, 86, 85, 2,145, 4, 25, 17,200,206,227,225,233, 93,106, 46, 93,
+ 74, 34,116,171,223, 72,117,113,156,156,196,237, 44,170,188,164,177, 4, 54,245, 0,192,144,228, 84,182,211,142, 45,101, 96, 33,
+ 98,194,232,222, 73, 36,220,243,123,242, 99, 62,246,138,207,243, 32, 70,153, 30,123,181, 24,240, 95,239,225,206, 97, 65,153,209,
+ 29,181,130,219,117, 2,203,232, 69,148,159,187,112,162,164,149, 3,206,116,138,195, 21, 58,162,220, 92,165, 42,117, 73, 77, 71,
+186, 77,187,182, 16, 78,212, 3,251, 74, 36, 95,208, 1,239,195, 77, 81,172, 87,154,139, 95,139, 73,204,111, 68,130,100,136,104,
+ 67, 64,165, 37, 41, 3,144,164,220,166,229, 36,155,122,219,165,241, 59,172, 34,210,227, 16,237, 72, 18,168, 38, 70,147, 0, 40,
+142,146,100,248,213,155,105,184,112, 54,149, 4,204,120,125,251,234,255, 0,205,189,173, 50,174,100,163, 50,189, 71,168, 49, 15,
+ 48, 51, 29,108,166,189, 14, 0, 73, 91, 15, 4,165, 82, 25,186, 13,156, 74,210,144,227, 42, 32, 21, 54,160,146, 55,224, 44, 47,
+164, 47, 95,178, 70,149,212,251, 52,234, 21,106,149,156,114,229,114,130,237, 50, 53, 97,244, 45, 83, 26,140,251, 65,198, 66, 92,
+ 75,129, 10,218,229,148, 74,146,181,120, 10,119,216, 38,220,133,154,115, 86,106,165, 83,233,178, 31,156,163, 34,202, 42, 77,194,
+129, 65,228,146, 58, 29,201, 6,252,126,168, 56,119, 26,190,169, 25,189,200, 70, 3, 13,173,167, 23, 20,169,146, 18, 30, 8,186,
+208,234,145,228,160, 18, 83,184,125,235,131,212, 18,116,172, 48, 91,107, 65,220, 72,141,122,105,255, 0,175, 48, 53,229,215,194,
+174, 94, 22,172,243, 41,162,160,189,149, 49, 6, 0, 7, 81,184,233,166,219,215, 89,118, 55,237, 49,152,180,219, 64,115,142,149,
+ 77,126, 58,232, 18,243,118, 92,152,226, 31, 96, 45,212, 43,235, 72,234, 90, 91, 89, 54,104, 40, 48,146, 77,141,237,239, 56,169,
+ 59, 87, 55,167,244,189,105, 83,122,108,213, 71,216,228,209,123,169, 95, 89, 77, 75,238, 45,246,164,190,200, 35,106, 18, 16, 2,
+ 25,105, 59, 57, 32,164,155,243, 96, 39, 70, 84,186,164,232,217, 74,124, 20, 61, 14,175,155,169,226, 66,150,226,146, 16,152,161,
+217, 42,189,148, 46, 10, 18,174,160,216,129,211, 17,220,209,154,145,153,117, 29,220,202,150, 27, 8, 76, 70,158, 67, 76,131,183,
+123,128,186, 82, 46, 77,252,110,171,240,197,139,116,118,119,110,161, 35,115,152,251,192, 30,164,130,103,122,162,237,211,159,211,
+192, 38, 71,243, 82,122,156, 42,125, 63,179,246,111,167,205, 66,158,118, 44,104,137, 69,136,179, 79,189, 37,178, 72,226,230,193,
+157,191, 50,113, 79,102, 12,208,196,157, 62,164,101, 70, 99,184, 36, 66,155, 41,215,156, 39,133,165,192,208, 64, 3,221,177, 95,
+142, 36, 25,219, 50,213, 77, 28,101,225, 45, 73,102,115,233,126, 99, 64,240,226,155, 10, 9,191,195,188, 86, 34,116,122, 84,186,
+246,104,141, 73,166,199, 47, 60,183, 0,105,161,230,171,216, 15,196,140,104, 50,214, 73, 82,204,235,152,120,105, 31,189,102,182,
+169, 64, 38,172, 13, 55,115, 35,102, 77,101,128,230,110,203,197,172,177, 75,136,244,202,140, 54,110,166,192,106, 58,212,218, 22,
+163,209, 43,120, 32, 19,251,198,195,203, 16,221, 67,203,121,183, 40, 85, 40,121,242,117, 78, 59, 44, 87, 99,187, 54, 34,144,201,
+105, 64, 55, 37,216,229, 43, 64, 31,235, 9,100,169, 92,117, 87, 60,226, 93,170,117,202,102,156,196,137,164,185, 53,230,100, 73,
+109,212, 75,204,115, 66, 2,132,167,211,202, 90, 55,224,182,147,250,167,139,117, 28,156,101,174,250,192,172,245, 38,126,162, 83,
+ 41, 16,229,186,154,146, 37,170,162,252, 68,165,109, 72,148, 20,235,131, 98, 64, 77,208,226,214,144, 45, 97,100,245, 60,224, 45,
+ 41,243,112,133,161, 61,197, 8,212,242, 27,111,177, 81, 62,100, 1,167, 73,180, 66,155,205,232, 58,209, 58, 60,184, 69,233,185,
+166,176,179, 4, 85,167, 7,218,132, 25,251, 68,181, 98,161,181, 23,225, 59,151,198,235,112,158, 47,140,179,246, 98,106,145, 82,
+164, 82,232,226, 19,130, 53, 21,133, 41,247,227,133,188,210, 92, 5,208,159, 29,211,209, 96,238, 74, 65,230,222, 92,215,185, 50,
+187, 34,175, 74, 75,245, 74,162,222,125, 15,175,114, 93,185, 82,175,206,237,223, 18,112,171,185,165, 85,106,187,213,105,253, 92,
+ 67,108, 33, 41,242, 66, 16, 16,145,242, 74, 64,193,147,108, 11,178,174, 95,232,124, 40, 1, 2, 76,239, 93, 41,217, 57, 83, 21,
+168,153, 79, 61, 74,173, 73, 68, 39,115, 84,104,165,232, 12,165,183,210,164, 58,194,220, 45, 56,160, 17,185, 40, 90, 79, 39,195,
+185, 36,216, 28,116, 15,210, 49,153,242, 38, 83,172,229, 61, 47,201, 53,217,147,158,106,147,237, 53,215, 17, 9,168, 12,149,149,
+ 20,180, 18,195, 7,186,184, 9,112,149,108, 10, 37,124,147,142,114,210, 93,111,141,160,185, 79, 76, 43, 25,114,140,220,250,133,
+ 22, 77, 66,180,168,114, 29, 9,109,201, 82,150,150,152,222,161,200, 9, 75, 13, 40,250, 1,193,244, 9,168, 58,197,156,117,155,
+ 81,167,234,110,126,125,151, 42, 19, 84,142,252,196,105, 72,101, 27, 80, 16, 18,128, 73, 33, 32, 36, 1,114, 79,169,185,198, 32,
+ 55,111, 93,175,184, 3,112, 68,206,178, 20, 68, 1,208,128, 21, 62, 67, 94, 90, 44,190, 26, 96,182, 35, 83,239,229,206,186, 19,
+177, 46,168,228,253, 48,214,120,217,226,186,221, 70,116,200,177, 29,110,133, 72,165, 83,253,162,100,169,110, 39,101,154, 70,224,
+155,132, 41,126, 37, 16, 5,193,235, 96,123,203,252,160,246,140,205, 20,148,205,111,179,189, 42,145, 29,198,247,181, 35, 54,103,
+148,184,250,193,191, 37,184,209,221, 74, 15,168,220, 49,194, 61,140,117,166,147,166,117,106, 77, 31, 75,116,193,220,205,158,106,
+ 46,247,245,249, 50,131,109, 70,165,211,139,136, 75,101, 82, 54,173, 76, 54,119, 93,100, 4,146, 84,139,220, 0, 15,123, 87, 43,
+ 26,143, 91,130,152, 85,218, 93, 22, 59,203, 78,224,196, 74,148,132,184, 82, 5,207,118,151,227,163,188, 30,240,109,240,196,109,
+ 45,108, 92,186, 46, 45, 61,225,160,145, 49,202, 82, 12,196,245, 0, 19,212,136,173,182, 18,128,192, 86,228,212, 10,169,168,185,
+222,148,234,191, 72,114,173, 33,139,220,173, 84, 90,178,157, 60, 95,146,151, 89,107,215,174,227,240,192,138,206,127,130,234, 4,
+169, 15,236, 4,146,224,191, 61, 58,126, 55, 56, 5,171, 49,231,192, 15,184, 29,113, 37,167, 54,144,179,115,126, 9, 23, 30, 92,
+142,158,184,160,245, 27, 58,214, 96, 76,118, 59, 50,150, 74, 18, 84,171, 31, 49,127,237, 54,199,109,108,219, 89, 52, 85, 1,224,
+ 86,106,209,212,173, 99,161,198,105, 9,139, 48, 43,194,119,167,229, 97,138, 3, 81,243,144,170, 33,213, 48,187,144, 70,211,248,
+226, 9, 92,206, 85,202,213, 85,200,113,150,226,156, 64,253,163, 97,254, 63,183, 12,219,151, 87,157, 5, 78, 45, 10, 45,166,201,
+223,180,155,159, 32, 61, 73,254,204, 91, 29,147, 71,245, 80, 66, 2, 40, 69, 95, 80,234, 20,169,106,111,218, 20,139,240, 8, 56,
+217, 31, 88, 42, 69, 1, 66, 97,227,160,191,150, 33,185,230, 21,102,101, 90, 64,102, 3,129,136,227,253,105, 65,241,158,122,122,
+249,159,128,192,234,102, 95,171, 76,124, 33,166, 29, 72, 1, 67,144,121, 34,192,254,103,242,197,129,112,201, 76,200,169,131, 53,
+102,177,169,149,122,137, 12, 34, 66,213,117, 2, 0, 56,159,233,117, 23, 53,102, 71,219, 84,132,169, 45,149,125,229, 14,189, 49,
+ 23,210,173, 58,102, 52,148,119,205,151, 93, 67,132, 41, 42, 79,161, 85,255, 0, 36,156,116, 46, 77,135, 10,155,220,165,164,165,
+180,160, 2,164,145,240,192,189,162,221, 70, 2,133, 50,180, 21, 57,211,202, 2,104,177,155,109,109, 18,174, 47,199,159, 31,223,
+139, 71, 46,206,106, 59, 65,183,159,178,147,233,239, 23,197, 96,198,104, 97, 91, 83,125,160, 39,168,255, 0, 31, 12, 57, 78,119,
+143, 14,110,239,110, 54, 4, 2, 71,195, 21,159, 68,138,170,164,149, 85,211, 76,156,236,199,172,204,176, 9,225, 36,158, 5,191,
+182,247,193,236,184,249,102, 98, 36, 75,124,132, 54, 55, 58, 80,174,128,117, 24,160, 99,234,211,161,194,203,115, 71, 43, 55, 80,
+234,155,159,249,226,235,209,156,221, 73,143, 67,149,152,164,237,152,236,118,194,219, 14,216,160,159, 50,175,112, 0,159,125,177,
+203, 99,151,167, 11,195,157,186,203, 57, 68,199, 83,200,122,212,153, 97, 78,172, 35,173, 82,250,153, 11, 62,230,204,217, 87,175,
+ 67,162,127,163,170, 91,142, 33,178,130, 74,133,192,184,245,185, 41,183,207, 0,233, 57, 15, 55, 71,158,168, 74,203,253,227,215,
+ 43,238, 66,109,111, 9, 5, 95, 30, 5,135,191, 29, 95,156,243, 46, 77,170,209, 34,214, 34, 48,132,166, 99,131,187, 98, 59, 34,
+238,182, 86,148,245, 61, 46,173,191,239, 12, 67, 37,186,186,212,167, 40,241, 86,150, 94,148,227,173,201,117,171, 36, 32, 41, 87,
+ 41,221,229,202, 58,143, 47,142, 60, 45, 28, 69,121,124,246,141, 0, 73, 53,214,240,223, 5,191,142, 98,205,216,180,160, 10,206,
+164,236, 0,212,168,248, 1, 39,199,106,231,164,100,234,165, 98,170, 32,204, 74, 17, 33, 47, 56,222,255, 0, 48,144, 69,128, 61,
+ 13,249,248, 97,166, 96,200,121,151, 41, 72, 93, 66,116, 87,223, 74, 90, 82, 27, 88, 28, 0, 72,233,240,176,197,238,205, 27, 43,
+105,251, 75,170,102,105,172,181, 30, 50,202, 26, 90, 0, 9, 60,241,183, 21,198,165,235,230, 80,206,181, 7,178,252, 22,131, 76,
+ 8,238, 52, 86, 20, 60,107, 59,118, 43,229,226,252,113, 80,227,183,235,117, 72,111,148,242,210,190,176,195,255, 0, 8,255, 0,
+ 13,172, 26, 67, 23, 22,203,184,152, 10,112,184,180,153, 38, 37, 41, 66,146,144, 57,193, 10,141,137, 53, 7,165, 79,159,153,148,
+191,209, 8,157,234,160, 50, 68,134, 0,241,161, 68,114, 84,158,189, 1, 56,127, 85,203, 89,133, 16,123,199, 32, 37, 46, 37, 10,
+ 75, 97,193,255, 0, 72, 84, 55, 19,238, 31,192,226, 37, 59, 50, 84, 52, 3, 82,105, 57,246,154,180,184,220,225,221, 84,163,111,
+184,121,130, 44,171,143,218, 73, 59,129,245, 22,232, 78, 44,109, 67,212,232,121,131, 37, 58,253, 18,114, 27,113,218,130, 90, 75,
+143, 34,203,105,183, 2,128, 62,235, 37, 93,125, 2, 61, 49,189,135,226, 15, 93, 20,148,160, 65,231,208,243,175,158,191, 23,191,
+ 11,237,120, 27, 25, 72,181,112,170,217,224, 84,217, 87,234, 17, 18,149, 68, 2, 83, 32,200, 0, 16, 70,147, 53, 16,145,146,115,
+181,162,185, 41,151,216,106, 52,128,158,237, 6,228,168,168,142,236,143, 49,207, 32,250,131,230, 48, 27, 42,228,233, 75, 91,242,
+163,208,164,160, 62,243,178, 31, 64,112,144, 23,117,133,109, 29, 0, 27, 79, 78,182,191, 36,226,207,174,235,141, 69,156,185, 53,
+ 17, 91,140,135,251,176,168,199,194, 72, 46,161, 41, 74,191,239, 11,110,249, 98, 33,156, 53,239, 44, 83,218, 98,143, 8,182,243,
+106,166,149,186,226, 58,149, 23, 20,213,174, 57,242,249,238,198,203, 87,151,197,176,146,141, 9,228,121,111,245,211,198,107,195,
+213,100,137,133, 47, 74, 5, 77,126, 84, 24,207, 84, 39, 36, 53,221, 60, 90, 45,164, 19,185, 92,168, 1,238,228, 3,130,232,204,
+168,144, 91, 49,161,173,106, 66,129, 95, 22, 3,207,230,122,124,240, 10,179,172,212, 10,117,105,216, 12,229,182,196, 24,234, 12,
+ 52, 57, 33, 68, 4,128, 57,228,159, 9, 23,249,226,111,151,181, 31, 78,170,240, 36,154,132, 17,222, 71, 67, 8, 72, 77,142,221,
+234, 72, 4,250,147,185, 3,220, 78, 29,215, 10, 0, 89, 65, 32,213, 85,218,119,136, 74,170, 37, 92, 91, 21,170, 74,160, 72, 11,
+ 74,223,127,107,174, 54,139,169, 9, 32, 30, 46, 60,172, 77,253,254,236,104,167,228, 42,188,168, 44,205,167,182,242, 7,117,100,
+ 41,105, 60,164, 27,124,189,126,126,252, 88, 84, 58,206,152,176,244,174,252, 38, 80, 18,208,219,206,133,219,135, 27, 32, 44, 17,
+200, 3,197,111,150, 35,117, 29, 78,204,244, 12,186,197, 66,155, 73,117,234, 66,231,123, 60,106,171,173, 0,217, 54, 32,182,181,
+ 3,109,195,106,125,198,215,193,154,117,215, 88, 61,150,138, 7,101,115, 7,167,136,137, 32,198,154,209, 81, 97,156, 25, 59,107,
+165, 71, 14, 77,212, 74,122,166,165,186,251, 45,168, 74,113,127,104,146,162,120,224, 88,249,139,254,120, 13, 95,200, 57,177,147,
+ 2, 28,172,216,103, 71, 83,233, 21,118,165, 68, 74,130,153, 36,149, 41, 36, 88,163,132,148,249,223,118, 38, 72,214,106, 43,148,
+185,179, 43,113, 80, 36,247,203, 41, 82,133,247,186,110,165,255, 0,186,157,168, 30,251,227, 26,174,176,229, 72,178, 95, 93,102,
+150,158,239,184,111,188,142,143,190,178, 65, 82, 83,238, 28, 31,199, 18, 77,205,226, 85,250, 62, 3,239,157, 12,218,229, 61,218,
+200,196,203, 85,120, 43, 84,138, 91, 37,150, 18, 21,220,119, 67,105,184, 40,181,189, 57, 63,142, 8, 59, 7, 38,198, 49,218, 48,
+ 81,223,247,101, 74, 74, 60, 55, 74, 83,207, 79,133,190, 88,139, 86, 51,197, 13,230, 91,101,151, 11, 47, 8,174, 56,243, 0, 89,
+ 45,130,171, 36,155,123,202, 85,243,196, 94,165, 87,175,205,205,105,109, 51,192, 83, 41, 82, 73, 2,192,223,119,228, 10,186,122,
+ 39, 5, 98,209,247,213, 18, 69, 36,219,105,173, 76, 28,160,229,214, 42,107, 45, 54,241,117, 13, 37,229,164, 46,200,222, 84, 82,
+ 5,255, 0,162,113,185,113,159,168, 69,113, 85, 42, 42, 89,238,101, 45, 17,214,100,133, 7,146, 15,133, 96,117, 77,211,110, 15,
+166, 43,218, 45,107, 52, 41,247, 95,144,222,246,213, 61, 8, 91,169, 38,229,180,240,144, 9,253,165, 46,223, 60, 75,227,102,232,
+ 16, 80,135,107,140,144, 94,121, 68, 54,149,130, 90, 27, 60, 55,183, 79, 13,143,198,248,182,253,147,237,142,186, 83, 46,222, 14,
+148, 93,132, 83, 32, 70,113,151,104,209,200, 12, 21, 92, 0, 65, 0, 94,231,221,207,231,140,183, 81, 36, 45,114,187,150, 4,126,
+232, 20,134,155, 2,235,221,229,242, 3,240,196, 46,161,158,211, 26,168,188,185, 77, 14, 75, 46, 50,133, 60,251,220, 2,149, 40,
+ 57,180,123,133,147,242,190, 27, 85,245, 29, 84,135,150,234,160,182,134, 88,112, 20,178,216,232,130,162, 19,248,139,159,233, 98,
+177,182,114, 96,157, 77, 68, 91,235,169,169,236, 37,101,135, 64,109,135,119, 2, 20, 20,218, 83,193, 89, 89, 10,191,194,223,150,
+ 31,201, 92, 10,228, 38,152,100, 23, 9, 9, 67,206,146, 80, 91, 4, 17,100,145,231,124, 84, 49,117, 14,170,196, 88,237, 69,130,
+ 18,227,234,154,164,133,114,123,209,114, 7,226,164,225,244,141, 71,157, 78,150,195, 78, 72, 82, 17,109,165, 8, 7,198,160, 44,
+165,126, 0,255, 0,189,137,174,201,212, 57,221, 62, 83, 69,236,144, 14,149,102,202,128,219, 47,186,204, 55,209,189,214,144, 19,
+127,190,131,200, 60,244,244,252, 48, 38,100, 89, 47, 84, 99, 54, 34, 37,181,169, 74,238,220,109,177,181, 64, 14,119, 31, 46, 45,
+107,226, 28,238,168,199,106,182,152,149,150,139, 11,117,180,186,129,123,146,109,109,222,224, 44, 72, 30,103, 27, 39,103,168, 14,
+ 67,102,111,183,109,109, 78,169,149, 33, 43,182,203, 35,133,123,199, 76, 69, 54,175,160,130,126,244,168,251, 62, 99, 20,118, 46,
+ 94,204, 12,230, 41,149,214,106,200, 98, 58,155, 5, 81, 75, 71,119,120, 7, 43,184, 54,177, 22, 22,242, 34,248,144, 53, 75,204,
+111, 56,195,194,162,210,155, 40, 42,229,203,115,107, 1,239,253,111,195, 19,206,206,180, 60,145, 42, 45, 87, 93,181, 74,183, 78,
+141,147,232, 15, 45,134,189,177, 75, 40,149, 40, 67, 47, 41, 43, 8, 33, 69, 8, 7,121, 72,241, 58, 82,150,210, 60, 74, 41,163,
+181, 71,180,119,233,125,125,233, 57,127, 45, 68,161, 83, 90, 10, 84, 72,209,225, 54,219,174, 54,171,132,149,237, 27, 82,121,190,
+212,223,109,254,242,173,124,106, 43, 13,125,251, 65,114,233, 8,210, 6,154,170, 7, 32, 58,115, 36,255, 0, 39, 85,142, 86,194,
+214,119,218,139,213, 33,234, 53, 34,182,136,145, 33, 48,227, 79, 92,203,146,137, 41, 6, 55,136, 41,190, 58,168, 42,202, 73,183,
+ 35, 5,169,232, 52,182, 90,106,173, 87, 5,199, 83,246, 73, 74, 71,221, 29, 62, 86,190, 41,202,174,171,230,105,117, 87,123,185,
+ 74, 42, 47, 39,106, 65,225, 91, 91,221,127,158,227,134, 34,191,155,100, 65,138,235, 50,214,236,135,214,243, 0,172,159, 3,118,
+ 77,205,189, 54,223,159,222,248, 98,162,172,212,251,105, 7, 42, 99,120,231,231, 85,212,210, 8, 31,115, 87,235,178,242,244,218,
+156,105, 74,156,130,236,150,138,152,191, 82, 5,148, 79,167,153, 24,241,179, 71,168,193, 98, 53, 74, 99,125,193, 54, 67,173,158,
+ 7,136,143,239,199, 46,126,153,103, 89,254,201, 61,181, 62,133,182,242,217,142,234,250, 43,112,252,184, 23,249,224,136,212, 28,
+228,186, 97,104, 23, 64,136,175, 24, 74,184,220, 54,128, 79,227,248,168,225,215,131, 28,163, 43,148,197,132, 3, 21,210, 45,190,
+221, 5,213,198,165, 50,218,208, 19,246, 69,107,186,184, 54, 39,225,111,227,141,134,173, 75, 33,151,235, 42,140,100, 54,194, 11,
+202,109, 2,201, 42, 30,126,224, 79, 31, 28,115,132, 61, 83,204,177,225,173,249, 82, 94,239, 2, 16,148, 92,241,101, 36, 95,240,
+177,190, 53, 74,213,138,173, 98, 90,131, 82, 10, 27, 61, 86, 15, 43, 9,177, 10,248,146, 63, 60, 65, 24, 74,231,245,111,206,144,
+103, 46,213,211,148,205, 85,166, 81, 97,129, 80, 83, 47, 23,142,228, 45, 12, 37, 92, 88,122,254, 63, 60, 44,114,241,213,108,207,
+ 8,132,209, 30,121,166,212,144,118,223,139,121, 17,111,158, 22, 8, 48,134, 0,213, 19,227, 36,124, 34,140,150,210, 19,168,248,
+213, 70,254, 92, 51, 51, 42,159, 39,184, 99,122, 84, 10,120, 9,108, 89, 95,194,195,231,141,243,227, 42,155, 49,167,212,146,225,
+144,224, 17,227, 35,245,136, 22, 3,241,231,228, 49, 61,206, 57,105,138, 91,162,134,195, 91,165, 57, 17,164,132,143, 46, 19,199,
+248,244,192, 4,209,165, 69,110, 67,238, 54,127,208, 88,121, 73,144, 69,252, 74, 59, 82, 6, 58,100, 63,157, 2,106, 9,116,144,
+ 42, 41, 75,159, 42,135, 84, 76,242,248, 87,177, 57,116,237, 61, 87,205,173,240,254,236, 73, 93,173, 68,170,229,242,185,201,184,
+ 50,131,187, 79,253, 42,202,122, 31,112, 38,231, 17,153, 52, 41, 76,119, 78, 54,217, 8,238,183,171,119,175,151,246, 97,229, 76,
+ 90, 44, 90,123, 75, 41, 33, 41, 94,193,212,142,164,252,240,234, 66, 93, 0,154,176, 14,162,161, 58,189, 22, 60,202,219, 50,225,
+ 60, 92,117, 51,139, 75,109, 63,116,160, 16, 47,199,173,215,141,180, 74, 82,198, 99, 57,142, 76,175, 8,134,131,180,255, 0,218,
+247,123, 8,252,119, 31,158, 55,188,195,149, 10,139,146, 84,208, 1, 14, 30,237, 32,121,245,255, 0, 7, 14, 90,163, 73,246,182,
+ 27,152,174,236, 41, 61,227,151, 28, 11,243, 96, 60,205,191,142, 47,165,216, 64, 79, 56,138, 58,213, 40,203, 60,169,206, 95,170,
+ 85,168,115, 23,152,169,138, 87,120,202,159, 68, 70,201,251,206,184,218,144, 21,111,112, 54,254,145,195,100, 58, 96,190,204, 1,
+101,123, 28, 68, 53,222,249,168,164,109, 79,225,206, 36, 45,138,117, 21,110,203,158,180,146, 5,152, 96, 17,116,142,164,251,143,
+ 78,112, 36, 70, 98,162,226,100,163,106, 92,144,176, 44, 56, 75, 72,189,255, 0,191, 14,130, 12,170, 42,186,179, 41, 32,114, 21,
+ 31,174,166, 49,117,202,157, 81,226,152,241, 90, 1, 65, 63,121, 68,220,237, 30,243,198, 37,172,126,128,101,125, 49,131,172, 84,
+ 32,227, 83,230, 83,220,111,184, 43, 27, 90, 88, 86,194, 83,197,239,194,185, 36,245,196, 98,185, 78,135, 94, 92,192,209, 34, 11,
+ 74,225, 87,229,195,211,143,125,135,200, 12, 36,149,213,169,176,114,244,136,140, 42,156,210,202,253,157,192,118,161,180,130,108,
+ 44, 69,186, 15,153,195, 56,144,178,148,131,177,215,196, 70,212,253,158,100, 1,247, 21, 21,148,244,211, 6, 61, 73,150, 92,114,
+173, 57,231, 36, 57, 37, 5, 68,180,133, 13,160, 40,244, 2,219,143,190,227,211, 25,178,197, 62,108,149,229,193, 61,105,132, 30,
+ 10,113, 38,234, 43, 32, 14, 72, 29, 73, 32,241,239,196,134,177,245,132,218, 33,162,211, 84, 99,178,167, 65, 82, 27, 81,176,184,
+ 38,220,243,134, 20,236,169, 74,162,180, 39,205, 84,175, 11,106, 94,230,221, 9,220,161,110, 56, 23,197,164,173, 4, 79,165, 27,
+ 62,154, 81,214, 50,220,104, 49,149, 22,146,220,223,182,108,108, 67,173,180,202, 45,234, 1, 80,185,231, 2, 42,122, 99,152,159,
+238,221,166,186,167, 11, 87, 46, 54,166,129,185,247, 22,212,161,135, 44,167,187,166, 34,175, 29,151,162,182,165,169, 59, 81, 48,
+ 5,170,194,254, 35,110, 48,242,153, 22,177, 82,154, 19, 37,229,165,148, 55,222,184, 68,162,162,160, 18, 8, 73,241, 27,220,144,
+ 62,120,100,118,131, 92,194,130, 20, 65,208,214,252,209,154,107, 89,130, 52,104, 53, 56,202,134,212, 6,154,137, 76,136,148,109,
+238,216,108, 29,191, 18, 86,165,172,147,212,168,249, 90,217, 66,169,205,137, 25,170,101, 47,190,126, 76,133,134,216,105, 36,169,
+ 78, 45, 92, 90,222,100,156, 12,143, 29,191, 13, 61,110, 93,198,148, 67, 43, 39,239, 40,155,148,254, 7,140, 75,116,238,148,170,
+ 53,124,102,233, 21, 36,199, 16, 13,155,120, 50, 22, 82,178,147,114,144,174, 55, 15, 83,211,142, 49, 93,226,219, 13, 24, 30, 67,
+169,229, 69, 66,165, 98,118,174,245,236,117,149,169,221,155,180,176, 81, 41,210, 10,235,121,154,130,185,213,218,212, 20,148,206,
+ 97,215, 88, 87,114,219, 74, 82, 84, 20, 27, 94,221,188, 88, 44,147,101, 95,142,160,200,249,203, 35,232,230, 66,163,118,124,143,
+170,143,102,186,141, 49, 5,134,166, 85,100, 50, 37, 60, 84,226,138, 46, 10,130, 90, 72, 10,216,144, 72, 1, 41, 72, 28, 12,124,
+222,201,218,233,157,179, 28,199,105, 52,125, 64,159, 10, 35,141, 55, 16, 73,246,102,146,248,101,180,237,178, 84,218, 80, 82,155,
+ 91,129,201,183,222, 28,131, 42,203,250,215, 59, 38,211,218,133, 73,154,134, 31,113,162,228,183, 1,176, 47, 27,218,254,167,144,
+ 77,252,241,192, 11,124, 78,209,245,184, 85,222, 89,149, 70,255, 0, 17, 2, 54, 2, 14,194,183,145,136, 21,181,217, 36,194,126,
+ 63,126,181,209, 26,203,157,153,122,168,184,210,223,120,133,247,207, 6,236,139, 5, 11, 38,215, 6,196,120,111,127,222, 7, 20,
+124,247,161,102, 7, 34, 8,110, 23, 29,152,208, 74,210,164,249,133, 35,143,153, 39,240,198,216,249,223, 45,213,226,194,109,169,
+233,106,161, 33, 5,180,169, 10,220,219, 77,141,160,146,217,240,254,169,233,111,158, 0,138,165, 6,181, 85,110, 44, 50,219, 18,
+ 99,177, 47,187,117,181,157,151, 33, 68,172,130,127, 85, 75,227,158,182,227, 23,173,113, 59,244, 5, 37, 68,147,174,227,198,102,
+169, 92, 92,169,190,244,233, 81,243, 74,166, 82,243, 67,212, 22, 92,107,189, 59, 66,158, 6,214, 74, 71, 36,124, 72, 82,254, 22,
+197,129, 79,203,116,124,189, 25, 20,216,148, 16,239,179,132,186, 17,193, 41,113,196,132,166,231,160, 60,216,126,246,239,217,192,
+230,114,190, 82,115, 57,211,204,233,109,247,158,210,227,114,156,176, 37, 76, 50, 71,120,178,125, 84, 5,133,252,175,137, 27, 90,
+145,167,236,212,170, 53,216, 42, 76,151,225, 84, 82,252,183, 46,118,184,240, 10,238,155,235,109,169,222, 85,183,223,138, 87,216,
+133,229,192,202,153, 51,191,172,127, 3,198,136,130,149,166, 84,119,173, 39, 78,227, 76,170, 71,203,112, 50,235,106,218, 84,185,
+ 14,132,130, 20,249, 82, 66,208, 61, 18,128, 66, 69,255, 0, 90,254,163, 27,243,206,144,195,202,208,234,134,149, 77,109,231, 98,
+ 41,133,161,108,177,113,177,231, 60, 71,228, 20, 45,115,228,113, 50,139,172, 25, 75, 35,101, 57,176,217,161,172, 58,167,154, 75,
+ 18,228, 52, 66,150, 8, 42, 90,238,122,146,178,163,243, 24,205, 61,162,169,143,208,234,181,103, 59,151, 36, 78,149,187,184, 9,
+ 73,229, 41, 37, 41, 30,224,181,143,247,113,138,155,236, 89, 46,130, 18,114,207, 93,246,250, 77, 89, 67,118,170, 76,102,214,171,
+156,203,148,170,153, 87, 81, 98, 81,164,211, 84,220,121, 46,148, 54,226, 27, 60,148,130,175, 46,187,129, 81, 30,226, 61,112, 62,
+114,179,140, 73,143, 70,126, 35,232,110, 60,132, 54,225, 3,145,188, 41, 41,255, 0,196,221,191,165,239,197,223, 63, 82,224,230,
+138, 13, 47, 49,162,148,202,137,142,164, 2, 64, 42, 37, 44, 41,160,125,215, 90, 27, 62,237,195, 12,243, 60,150,106,105,250,205,
+216,237, 33,137, 85, 70,212,250,199, 42, 81,100,160,252,109,117,168, 15, 80,156, 94,180,199, 47, 89, 41,204,152, 59,111,208,254,
+213, 5,178,222, 98, 80,175,191,247, 85,210, 41, 89,185,197,187, 78,167, 77,121, 78,179, 37,109, 20, 58, 45,125,138, 41,189,207,
+192,226, 83,148, 52,103, 59, 85, 18,219,245,234,170, 98,161,107, 8, 30, 27,149, 19, 99,235,233,231,141, 26,157,152,225,170,163,
+ 76,127, 46,186,159,105,143, 62,243,130, 71, 11,186, 80,174,158,119, 82,148,171,123,177, 56,163, 78,168,206,204,181, 72, 15, 84,
+210,170,117, 52,141,242,146,177,181, 14,166,192,216,251,128, 80,248,131,142,145,174, 53,184, 69,146, 10,219,212,143,145, 0,252,
+233,139,106,146, 1,162,244, 77, 13,200,244,165,183, 14,167,152,148,185, 15,188,166,201, 60, 36, 40, 27, 91,241,190, 38,142,105,
+231,249, 63,210, 90,143,212,217,157,167,145, 54,100,116,182,176,176, 74, 55, 33,194, 83,240, 41, 4,255, 0, 68,226,156,206,217,
+186, 50,114,109, 82,125, 42,114,150, 96, 77,105,194,250, 85,202,212,226,150,155, 3,240,183,225,239,198,138, 69, 94,174,184, 77,
+229, 73,117,249, 14, 49, 36, 54,200,108,146,162,133,219,104, 32,115,115,177, 0, 95,203,113,243,189,243,239,177,245,226, 86, 11,
+105,228,192, 84,143, 64, 15,212, 82,111, 58, 86, 12,213,217,149, 37, 84, 50,245, 2,153, 14,185, 81,101,111,191, 23,106, 29, 89,
+ 4,178, 18,171, 41, 64, 92,219,198,180,155,124, 79,166, 42,253, 96,205,199, 42,231, 8, 52,138, 85,119,191, 67,116,244, 9, 18,
+ 91,118,253,226,238, 65, 82,189, 14,208,158, 61, 45,136,163,185,115, 48,215,106, 68,174,185, 40,164, 84, 80,194, 73,145,225, 75,
+ 6,206,108,227,204,159, 17,183, 68,132,223,166, 7,106,206,151,214, 93,203, 47, 78,160,214, 59,186,140, 39,254,206, 42,159,191,
+181,238, 81,220,155,116, 4, 36,169, 87, 54, 3, 98, 71, 0,227,207, 21,133, 32, 40,229,112,102, 87,132, 13, 77,123, 95,225, 15,
+ 23, 97,124, 43,198, 12,222,226, 41,254,201, 74,208,163,188,102, 76, 3,238, 84, 79,132,212,190,187,153,106,186,139,166,179, 50,
+188, 41,229, 79, 54,209,117,158,243,146, 77,186, 98,133,209, 93, 46,206,203,204,117, 7,179,196,206,230, 68, 48,180,195,102,122,
+202, 88, 40, 80,182,235, 0, 20, 85,114, 72,186,128, 6,198,199,166, 29,208,234, 90,153,148,139, 53,226,241, 66, 2, 79,129,181,
+238, 4,247,202, 71, 3,206,192, 3,240, 80,245,195,172,205,172,121,255, 0, 48,100,116,215,169,212, 38,228, 74,145, 12,182,171,
+ 38,196,148,239, 74,172, 71,235, 13,183,183,191, 15,103,133, 98, 86, 97,196, 51,148,133,115, 49, 32,251,244,175,117,198,255, 0,
+ 17,120, 43, 16,188, 67,133,200, 0,157,137, 19,239, 26,250,117,170,239, 86, 53, 60,162,190,198, 71,145, 81, 76,153,109, 40,182,
+149,247,155,137, 5, 64, 1,124, 93, 57,174, 93, 26,183, 1, 84,168,210,251,159,107, 5,231,212,218,249, 66, 6,221,160, 15, 46,
+ 20, 0,247, 92,121, 99,141,169, 26, 97,169, 47,234, 76,236,233,153,225, 56,219, 12, 48, 95, 73, 32,242,171, 14,158,225,126,191,
+ 12, 78,169,181,188,242,136,178,101,123, 67,214,117,180,176,183, 86, 73, 40, 72, 95, 32,122,115,197,252,194, 72,199,107,111,128,
+ 6, 91, 78, 69,137,210,122, 73,175,159, 63, 23,248,222,207,137,125,146,221,133, 72,103, 57,235,250,242, 0, 9,235, 8,159,120,
+174,132,168,228,198,212,195, 81,233,217,152,174, 76,183, 26,142,150,186,128,146,158,188,245, 0, 15,157,149,233,141, 67, 65, 38,
+ 83,169,145,171,149, 9, 66, 64,104, 42, 51, 77,129,247,202, 20,181,172,159, 91, 93, 0, 30,151, 7,211, 16,109, 61,204,153,174,
+136,202,235,146,102,184,164,176,242,228, 57, 34, 74,188,100, 4,216,171,241,186,108, 62, 31, 25, 60,206,210, 15,101,218, 43, 19,
+221,109, 10, 98, 43, 18, 11,111, 61,254,169,180,166,224, 40,143, 51,183,120, 3,206,254,252, 64,217,223, 45,224,211, 7, 54,186,
+199,145,210,188, 17,201,229, 67,179,164,188,149,144,179, 61, 39, 38, 84,170, 42, 92,153,117, 14,237,229, 72,176, 46, 74,186,108,
+129,205,138,110,173,160,220, 88,155, 91,207, 26,151, 57,121, 86, 51,207,197,120,173,201,200, 88,105,174,133,107, 77,172,109,251,
+189,217, 87, 62, 73, 30,184,131, 49, 94,149,170,177,165,192,155, 65,135, 57, 82,231,165,109,212,165,198, 74,221, 97,123,202, 79,
+118,162, 46,144,119,157,214,235,108,108,207,180, 60,247, 62,107,213, 72,144,196, 97, 6, 19,107, 90, 11,132,165, 22, 64,104,219,
+204, 3,193,183,150,226, 60,177,180,253,173,163,140,180, 51, 4,187,254, 66, 33, 58, 8, 17,169,215, 78,241,145, 57,132, 1, 4,
+213,171,147,100,182, 91, 40, 78, 85, 0, 2,186, 19,212,122, 9,243,169, 45, 31, 57, 63, 77,140,213, 13,198,130,153,105,149, 72,
+168,204, 7,149,184,120, 41, 30,160, 38,232, 30,251,159, 46,125,202,253,174,234,206, 34, 70,137, 39, 32, 72,172,211,235, 53, 63,
+106,129, 29,173,200,109, 50,172,190,170, 3,238,221, 86,224,245, 2,248,175,148,140,194,213, 38, 16,159, 77, 46,182,200, 91, 79,
+148, 19,101, 33, 69, 74,183, 30,151, 4,252,109,235,135,113,245, 43, 52,233,132,228,231, 24,153,101, 5,244,193, 68,122,115,129,
+ 60, 71, 73, 64, 82,136,226,215, 35,119,251,222,252, 26,213,139,118, 46,130,187,164,153,212,236, 52,141,181,158,158, 85, 89,133,
+161, 46,201, 26,108,124, 69, 74,106,181, 42,188, 70, 96, 51, 95,165,174, 44,199,220,121,199,210,225, 22, 74,110,181, 40,220,112,
+120, 85,191,162, 48,247, 44,212,104,181, 24,159,164, 25,141,101, 75,147, 36,146,223, 82, 27, 64,228,252,128, 35, 0, 51,134,169,
+207,204,249, 34,155, 87,159, 74, 10,147, 37, 0,112,155, 27,157,201, 36,123,143,231,183, 2,242,157, 66,180,183, 13,122,170,148,
+ 54,201,151,236, 41,141,110, 1,222,157,195,240, 82,142, 1,119,134,134,140,149, 13, 96,233,226, 38, 7,150,158,148,238,165,181,
+ 18, 18, 52,171,170,100, 12,141, 27, 78,227,230, 22, 42, 32, 84,103, 76,116,200, 74,133,194, 24, 8,105, 40, 73,254,144, 89,249,
+140, 72, 32,197,200, 51,147, 20,195,121, 46,200,153,254,138,200, 9,190,237,204, 29,202,248,135, 20,164,255, 0,233,138,146,148,
+198, 96,206, 52,183, 27,105,135, 20,147, 18, 55,179, 33,134,138,138,212,227,224,172, 0, 60,249,199,103,253, 30,253,159,180, 86,
+145,170,249,107, 54,246,132,170,165, 66,158, 67,180,188,186, 80, 86,150,150, 86,218,125,174, 93,129,186, 82, 87,116,179, 99,117,
+ 15, 23, 23, 7, 83,135,248,122,231, 19,184, 13, 52, 73, 50,125,195,127,127, 64, 55,171,216,118, 18,246, 36,248,105,160, 73, 63,
+181, 49,200,255, 0, 71,190,177,103, 28,139, 23, 61,229, 61, 54,146,253, 29,198, 76,191,172, 29,150,196,118,212, 82,165, 36,216,
+190,226, 55, 36, 88,157,201, 4,112, 57,190, 42,236,227,167,185, 88, 83, 37,202,164,148,188,138,115, 95,233,251, 20, 8, 4,180,
+132, 1,127, 59, 2,190,125, 65,199,211,222,221, 61,180,116, 55, 34,105,107,255, 0, 84, 33,234,149, 68,199, 82,114,141, 29,149,
+150, 29,121,196,110, 6,107,220,110,110, 58,118,148, 33, 36,110, 89, 4, 36, 1,202,126,109,235,119,106,188,147,172,217, 40, 83,
+ 63,201, 59,244, 60,246,236,182, 69, 86,175, 76,168, 54, 97,212, 89, 9,222,224,113,162,216, 94,253,224, 89, 69,107, 85,183, 2,
+162, 44, 7, 75,138,240,214, 23,103,109,144, 93, 17,112,157, 84,149,136, 16,117,208,129,162,163,145,247,154,183,136,224,236, 88,
+128,217, 89, 14, 1, 36, 30, 94, 7,161,240,247, 85, 51, 94,165,185, 42, 37, 69,200, 45, 1, 33,166,208,183, 10, 7,250,164,148,
+ 20,219,243, 72,249, 99,211,147,105,178, 33,198,146,167,138,158, 73,239, 30, 82,211,112,226, 89,181,211,243, 11,255, 0,195,143,
+ 25,147, 81,131, 42,163, 25,168,133, 70,125, 45, 5, 97, 74,229, 93,218, 11,128,254, 73, 36, 96,132,250,140,186, 88,132,133, 52,
+ 18,151,105,109,186,217, 41,191,218, 45, 23, 55,249, 90,254,244,156,121,165,218,221, 66,210,218,117,212,252,135,212, 86, 1, 16,
+ 52,167,206,101,204,165, 77,168, 83,106, 40, 40, 82,221,151, 25,148, 71, 35,162,220, 74, 59,196,252,141,193, 62,182,192,202,165,
+ 22,151, 86,206,180,170, 28, 18,193,121,214, 24, 10, 88, 55, 74,110,132, 21, 47,221,250,199,231,136,130,107, 21,108,209, 85,145,
+ 91,128,218,210,219, 10,115,217, 16, 79, 63, 31,193, 36,147,251,184,219,148, 96,213, 98, 74, 85,101,240,225, 29,225,100,150,207,
+ 54, 33,106, 9, 7,203,144,127, 12, 9, 12, 56, 27, 9, 90,251,209, 77,217,166,164,233,211,188,189,153, 53,101,200,213,202,136,
+110,156,149,108,239,208,145,114, 17,112,216,255, 0,186,167, 74, 83,127,253, 48, 10,118, 79,165,196,114, 93, 50, 99,128,200,156,
+164, 52,193,191,129,176,149,163,122,189,110, 66, 65,249,156, 17,114, 4,117,102, 71,145,152,158,117, 49,220, 79,219, 58,149, 16,
+148,236,113,106, 88,248,110, 73,249,243,131, 51,226,100,217, 52,198, 43, 43,154, 84,229, 78, 43,123, 18,226,249,102, 66, 86,158,
+ 15,160, 80, 23, 7,223,137,165,197, 38, 6, 99,174,159,127,124,170, 66, 19, 17, 83,236,197,169,157,149,145,217,162, 95,101,109,
+ 56,206,242,243, 37, 94,163, 49, 51,235,143,192,165, 20, 70,132,243,109,182,148,110,121,221,138, 37, 43, 74,130, 0, 4,157,170,
+ 81, 0, 46,194,157,202, 52,116, 77,170,203, 99, 81,163, 50,227,244, 10, 27,178,212,204, 67,184, 79, 8, 72, 75,101, 38,195,194,
+ 72, 72, 85,192,218, 47,215,139,172,135,146,169,249, 18,147, 72,124,161,134,165, 77, 10, 53, 48,183, 18, 1,113,197, 45, 32,149,
+ 19,111, 9, 77,191,162, 49, 62,200,154, 31, 92,168,213,233,249,240, 86, 33, 57, 17,208,228, 69,247, 46,135, 16,166, 86,210,219,
+ 91,107, 34,246,225, 65, 68, 11,144, 82,147,198, 52,241,172, 78,217,107,236, 26, 48,211,114, 18,175,242, 49,190,191,249, 70,157,
+ 60,232,238,188, 28, 80,145,160, 21, 82,183,151, 17, 15, 45, 72,173, 87, 2, 68,247, 26,113, 77,182,148,248, 91,220,162,216, 39,
+254,234, 66,172, 61, 72, 62, 88,144,230,122, 76,136, 89,109, 13, 72,121, 78, 73, 20,205,137, 73,109, 33,105,222,157,247, 42,182,
+226, 54,173, 9,219,123, 11, 11,121,225,236,220,181, 77,171, 85,230, 50,211,128, 83, 92,150,232, 66, 90, 42, 87,217, 32,172,139,
+ 21,114,111,116,168,223,203,227,108, 44,192,227,117,140,214,234,234, 47, 36, 33,197, 8,251, 80,174, 55,130,148,148,223,220, 64,
+252, 71,174, 50,205,219,133,112,147,182,167,239,238, 42, 9, 82,144,131,227,254,254,117, 27,107, 43,199,111, 37,196, 92,199,144,
+ 22,195,131,194, 7, 59,213,201, 87,251,187, 71,204,225,157, 14,137, 8,164, 66,152,202, 46, 1, 87,116,163,194,236, 21,201,245,
+231,105,196,221,116,186, 75, 84, 95,172,170, 14,132,165,194,180,134,239, 97,100,108,177, 30,242, 71,224,112, 29,138, 13, 34,169,
+ 91,102,123, 50,194, 75, 14, 44,170,203,253, 80,129,193,249,220,219,214,216,113,116, 84,146,100,193,154, 4, 2,117,168,238,114,
+201, 50, 2,164, 48,149,160,161,134, 75,105, 75, 64,112,128, 9,113, 67,230, 21,207,191, 3,232,249, 14, 44,154, 51, 19, 92,103,
+104,125,167, 17, 30,201,251,173, 36, 47,197,248,220,124, 70, 44, 42, 99,116,215,145, 50,178,163,181,175,108, 91, 45,130,110, 10,
+119, 0,161,239, 4,113,243,193, 56,212, 90, 51, 25,109,140,202,220,132,180,218,170,166, 3, 45, 56,175, 10, 27,229,213,159,251,
+163,114, 65,194,246,213,160,132,245,164, 1, 34, 5, 86,201,201, 76, 0, 27,110, 42,188, 40, 77,212,148, 95,157,160,237,249, 2,
+ 63, 28, 44, 88, 84,220,215, 79,162,211,251,152,208,218,117, 14,202,121,196, 23, 83,117,109, 42,240,222,223,187,180,124,176,177,
+ 33,114,255, 0, 88,168,129,227, 84, 25,126,185, 94,204,137,206,111, 33, 93,195,142,123, 60,116,129,200,176,219,131, 58,153, 46,
+159, 10,108, 28,137, 21,180,161, 13, 52, 94,169, 59,183,149, 44,139,128,126, 29, 62,120, 47,149, 80,143,209,202, 50,118, 11,125,
+106, 77,173,241,196,127, 60, 37, 42,204, 82,157, 82, 65, 81,142, 46,162, 57, 60,227,109,167,115,184, 76,108, 72,248,208,180, 43,
+138,141,201,128,245,110, 19,145, 91,143,101, 41,105,241,129,194, 0,185, 36,252, 6, 24,154, 18,165,119,245,183,209,100,165, 27,
+ 80,146, 60,173, 96, 7,229,137,173, 29, 8, 25, 65,106, 8, 0,149, 44, 19,110,190, 36,224, 69, 88, 4,193,142,132,139, 36,173,
+119, 3,166, 14, 29, 80, 70,156,207,214, 40,169, 86,177, 81, 12,187,151,144,244,245,169,246,128, 66,146,181, 1,111,196,254, 28,
+ 99,202, 85, 44,230, 92,212,137, 50, 29,238,216,122,110,196,168,244, 67, 98,247, 63,128,196,142,130, 7,214,149, 17,111,187, 78,
+ 86,223,119,135, 2,160, 37, 41, 97,205,160, 11, 48,233, 22,242,225, 56, 41,112,151, 39,192,124,106, 68,146, 60,234, 45,152,226,
+181,153, 42,179, 30,132, 10, 25, 47, 40,177,239, 70,235,127, 1,130, 95, 82, 67, 49,217,164,197, 66,146,218, 25, 14,186,233, 87,
+ 43,220, 5,135,187,174, 30, 69,105,164,192, 27, 90, 72,240, 39,162,127,116,227, 20,255, 0,241, 50, 60,189,149,158, 63, 12, 89,
+113,213,104, 58, 82, 43, 51,150,162, 21, 42,125, 66, 75,191, 87,192,111,187,101,164,149, 40,129,109,199,158, 62, 88,198, 83, 46,
+197,181, 58, 59, 68, 37, 12, 13,196,245, 89, 36, 27,126, 88,152, 67,109, 30,208,201,216, 46, 82,237,205,186,225,142,101,105,164,
+202,164,148,182,145,189, 30, 43, 14,190, 47, 60, 17, 15, 28,213, 52,184, 73, 2,128,211,160,200,105, 13,177, 33, 55,113,215, 67,
+206,123,147, 99,130,203,160,247,212,231, 34,188,215,137, 18, 93, 79, 35,213, 9,219,135, 19,144,129,154,212, 2, 64, 29,217, 22,
+183,149,198, 13,190,148,253, 98,145,180,127,239,231,203,247, 14, 24,184,162,242, 81,200,254,226,162, 84,119,168,196, 74, 44,103,
+242, 83,212,183, 63,215,125, 98,210, 83,238, 5, 42, 73,198,172,200,200,165, 86,223, 98,150,124, 45,161,150,148,145,230,108, 73,
+255, 0,202, 48, 86,144,148,151, 30, 5, 35,255, 0,140,181,229,251,203,192,185,132,175, 51, 84, 55, 27,255, 0,164, 30,191, 28,
+ 90, 14, 41, 18, 41,210,117,154, 20,220, 87,225,205, 98, 67,204,144,163,191,186, 4,117, 87, 77,223,138,191, 44, 31,100, 74,238,
+ 84,195,170,187, 12, 62, 20,224, 79, 69,147, 99,111,241,233,141, 21, 4,165, 50, 89, 41, 72, 22,100,218,195,167,140, 97,252, 14,
+114,226,212,121, 37,245, 92,159, 63, 14, 32,181, 21,106,106, 89,180,163,185, 53, 83, 98,184,186,201, 81,218,131,224, 55,234,162,
+ 69,134, 25,212, 51, 42,227, 85,102,186,233,113,224,167,108,130,151,108, 46, 85,240, 62, 99,242,193,246,208,132,101, 38, 2, 16,
+ 7,250, 99, 93, 7,255, 0, 40,156, 66,223, 0,178,110, 58,207,231,240, 56,174, 82,151, 0, 36, 84, 80,181, 21, 26, 59, 23, 49,
+213,162,202,141, 53, 14,186,160,133,108,121,105, 87, 40,243, 60,121,240, 65,198,184, 57,182,162,197,115,187, 19,220, 81, 17,146,
+130,119,159, 53,130,175,198,195, 27,233,169, 79,212,105, 85,133,204,215,238,125,120, 72,192,124,174,211, 78,230, 58,143,122,218,
+ 85,181,133, 20,238, 23,177,231, 3,202,128, 9,138,121,204, 8, 53, 42,127, 84, 42,241, 37, 75, 90, 11,203,125,246, 84,220, 66,
+149,113,222, 45, 67,175,184,219,156, 76,180, 83, 59,140,139, 71,136,151,150,204,135,231,206, 81,222,240,221,180, 37, 55, 91,135,
+247,137, 81,182, 42,121,164,251, 68, 83,126,123,213,243,242, 86, 8,197,117,196,199,165,109,113, 66,205,189,107, 31,222,197,117,
+219,180,182, 20, 8,164,162, 74, 35,149, 90, 25,139, 82,243,102,104,169, 46,179, 83,150,194,217,106, 66, 82,150,209, 25,176, 2,
+ 74,200, 9, 7,111, 30,120, 7, 95,205,210, 32,187, 10,157, 10, 65, 11,246, 98,244,133,160,218,202, 95,141, 68, 91,206,214, 31,
+142, 54, 83, 90,107,244, 25,106,238,211,115, 45, 36,155,117, 33, 10,182, 5,202, 1,235,173,209,184,134, 92, 0,171,146, 5,198,
+ 42,165,134,147,221, 3, 74,118,158, 40,128, 5, 90,153, 59, 88, 11,185, 86, 12, 86,135,217,165,166,212,210,119, 88,146, 30, 77,
+191, 18,148,143,145,193,182, 53, 42,124,186,155, 9,250,195,100,104,145,146,133,217,127,174, 74,183,185,242, 0,255, 0,189,138,
+ 98,148,165, 53, 22, 2, 90, 81, 72, 9,108, 0,147,107,120,151,130,217,101,215, 28,136, 67,142, 41, 65, 68, 5, 2,111,113,115,
+140,231,236,153, 4, 71, 63,169,171,169,125,100,213,178,229,102, 54,100,173,200, 20,233, 55,145, 17,131, 33, 42,184, 60,165,162,
+ 64, 63,151,224, 48,202, 22,116,172,119,179,242,188,106,178,203, 78, 52,134,214,176,171,110, 55, 78,243,127, 85, 18,163,126,183,
+ 89,196, 63, 74, 29,119,184,172,191,222, 43,121, 91,137, 43,191, 36,119, 99,139,250, 97,218,201,110,124,197, 54,118,158,253,174,
+ 83,199,174, 2,182,144,131,147,124,191,193,250,211,174,225,193, 83,188,195,169, 15,214, 34, 76,202,144,223,106, 43,109,204, 74,
+159, 41,235,116, 1, 97,129,209,181,101,228,102, 53, 49, 79,121, 81,223,101, 41, 66, 95, 32, 18,149, 46,201,189,252,143,132, 95,
+204,238,242,177,196, 90,151,246,149,169,129,207, 22,245, 58, 87,187,157,199,127, 83,235,136,234,212,164,200,113, 73, 36, 19, 95,
+ 72, 36,121,128, 77,177, 30,193,151, 19,146, 52,253,247,167, 55, 78,164,213,215, 11, 85,254,168,174, 56,210, 17,176,176,203,237,
+193, 96,168,149, 19,180,169,110,174,253, 84,162, 83,184,254,207,132, 88, 18, 48, 51, 44,231,218,156,250,104, 19,234,234, 93, 70,
+ 89, 88,114, 75,137, 30, 6,212,160, 22, 71,225,180,124,134, 42,202,204,185, 74,206,189,234,164,184, 84,168,242, 55, 40,172,220,
+221,196,223, 6, 50, 66,214,181,160,173,100,253,156,113,201,242,239,209,198, 2,109, 25, 26,199, 79,173, 56,191,184, 3, 67, 82,
+120,185,241,183, 27,164,199, 66, 84,166,105, 17, 92,109,198,148, 62,242,192, 86,213,123,237,112,126, 8,192, 58, 22,112,118,141,
+ 73,106, 20,215, 10, 98,198,150,149,183, 99, 98, 82,164, 36, 18, 61,228,121,254,241,192,106, 59,142, 8,205,168, 56,171,170,107,
+161, 70,253, 65, 28,224,126,102, 36, 64,216, 15, 2, 67, 0, 15,119,135, 6,106,221,180,166, 60,127,127,222,138,111,159, 81,130,
+106,210,117,218, 94,106,139, 14, 52, 40,169, 50, 38,182,224, 37, 99,239,180, 28,240,139,122, 0,132,252,176, 2,152,198, 91,167,
+ 81, 26, 19,226,119,170,144, 86,148, 53,251,123, 66,249, 31, 21, 20,252,206, 8,100,175, 13, 86,158,226,120, 82, 50,188,133, 33,
+ 67,170, 78,215,185, 30,135, 13,139, 45, 43, 58, 82,153, 83, 73, 40, 69, 56, 20, 36,167,132,158,224, 30, 7,151, 60,252,112, 34,
+165, 37,194,128,116,137,249,254,213, 73,199, 20,189, 77,103, 50, 50,171, 52,151,105,222,201,181,181, 54,204,116,243, 97,117, 18,
+234,254, 67,106,148,125,195,223,136,149, 74,137, 50, 69, 1, 89,109, 12,165,201, 82, 18, 88,140,130,200, 88, 80,189,214,162, 15,
+ 81,181, 42, 32,122,145,235,137,102,164,188,244, 58, 10, 61,145,213, 53,121,210,193,238,213,183,139,161, 54,227,221,199,195,140,
+ 65, 96, 85,170,163, 85,227,182, 42,114, 2, 82, 65, 74,123,229, 88, 92, 11,219,156, 18,212,173,198,179,131, 16, 38, 60, 69, 4,
+ 62,164, 43, 77,232,214,152,101, 40, 57,109,109, 46,130,128,150,208,219,110, 33,151, 58,188,225,109, 42, 82,207,244,130,184,247,
+ 96,222, 99,156,243, 57, 77,215,229, 74, 46,189, 61,226,135,155, 72,232,148,144,176,143,154,128,192,250, 17, 40,163,184,164,155,
+ 16,211, 64, 17,229,215, 15,106,232, 65,160,196,186, 7, 53, 27,158, 58,248,159,254,225,248, 97,238, 30,122,230,247,180,117, 82,
+ 73,212,243, 53, 12,217,211, 78, 40,244, 41,174, 52,170, 60, 70, 59,192, 86,134,208,222,223,245,138,119,187, 63,193, 55, 63, 19,
+134, 89,174,141,245,254, 66, 20, 90,124, 36, 23, 99,184,118, 40,162,251, 82,164, 13,234,249, 91,241,196,183, 47, 45,104,205, 41,
+ 8, 89, 22,109,229, 11, 31, 48,226, 82, 15,198,220,124, 56,192, 60,170,227,138, 27, 20,226,136, 44, 55,112, 79, 28,145,124, 87,
+237, 8,118, 35,104, 62,253,169,167, 46,162,163,240,116,170,176,131, 37,170,154, 10, 88,130,243, 43, 59, 58, 54, 0, 42, 41, 30,
+251,165, 35,250,120,245,172,141, 81,155,146,154,158,167,183, 58, 43,206,188,251, 97, 54,185,113, 2,196, 31, 59, 40,145,242,197,
+163,168, 11, 91, 57,122, 74,154, 81, 73, 83,237,238, 41, 54,191,216,177,136,149, 41,107, 57,106,152,146,179, 98,182,137, 23,234,
+ 74,213,124, 58, 46,220, 90, 65,241, 31, 35, 81,237,148, 5, 61,133,153,179, 29, 34, 22, 93, 6, 59,125,221, 29,180, 60,182, 26,
+104, 52, 22,134,130, 77,136, 0,117, 13,131,126,167,125,249,190, 39, 57, 63, 87,243,142, 80,205, 84,170,229, 6,164,149, 74, 17,
+ 1,122, 68,129,112, 84,132,135, 20, 20, 60,199,137, 39,223,179, 0,243,139,104, 53,153,224,160, 31,180,183, 79, 34,216, 4,126,
+ 28, 98, 46,151, 93,180,223,181, 87,134, 44,205,190, 46,156, 50, 49,173,105,139, 94,164,246,200, 81, 10,153,208,243,235, 87,173,
+239,110, 27, 88, 90, 21, 7,125, 42, 97,169,122,149, 43, 53, 84,230,230, 10,213,110, 68,135,159, 12,203,146,241,115,196,164,119,
+103, 98, 61,194,193, 92, 11,117,192, 26,117, 66,155, 27, 52,174, 74,226, 37,108,182,195, 8, 89, 39,130,181, 51,189,119,245,232,
+ 71,204,226, 63, 81,241, 65,169, 37, 92,143,102, 96, 88,250,119,110,113,135,147, 64, 74,165, 16, 45,224,127,167,185,133, 91, 15,
+123,112,235,168, 82,148, 73, 36, 30,126, 0,205, 13,199,150,181, 74,140,147, 91, 13,124,198,204,169,168,204, 85,195,173,167,187,
+ 72,243, 74,129, 22,249,139, 12,107,175,202,169, 73, 37,169, 79,119,150,109,105,110,223,168, 27, 72,184, 30,235,169, 71,229,129,
+ 85,162,125,146, 18,175,200,146,205,143,167,137, 56, 41,153, 0, 69, 88,165, 34,194,243, 56, 31,253, 66, 49,146,176, 2,129,231,
+251, 85, 2,179, 88,229, 26,116,185,116, 78,237,108, 4,170, 85,101, 49,247,142, 10, 91, 86,228,168,126, 35,243, 62,184,153,101,
+236,190,244,108,169, 89,101,136, 96,189, 30,190,205,156,243,108, 50,137, 36,129,238,220,166,255, 0, 15,126, 26,105,202, 82,105,
+144, 9, 72,230,168,130,120,255, 0,233,226,111, 77, 1, 45,230, 52,164, 88,123, 68,179, 97,235,199, 56,203,186,186,113, 25,136,
+229,251,138, 65,197, 21,197, 86,149, 57,202,148, 32,208,170, 49, 3, 76, 54,194,153,144,233, 28,237, 43, 46, 42,254,242, 2,191,
+ 19,136,229,117, 77, 42,167, 13,134,128,108,180, 25, 66,210,179, 96, 28,184, 73, 63, 11,146,126, 24,153,234,235,104, 69, 94,174,
+148, 32, 0,154,250, 18, 0, 29, 6,213,113,240,197,125,154,137, 57,174, 85,205,236,165, 17,127, 35, 97,139,246,103,180,107, 56,
+211, 64,125, 96,253,105,103, 84,111, 82,170,205, 31, 79,100,211,169,243, 51, 83, 73,155, 46, 3, 41, 49, 99, 21,158,236,172, 0,
+159, 16, 29, 78,237,199,155,129,111, 50,120,121, 70,207,117, 92,179, 57, 84,124,189, 85,112,198,219, 29,229, 65, 46, 89,152,235,
+ 80, 5,194,144, 58, 27, 91,159,221,231, 16, 37, 18,170,199,136,223,236, 28, 60,250,220,115,141,212,117, 40, 72,168,172, 40,220,
+193, 93,205,249,251,131, 22, 84,214,116,128,179, 35,167,190,162,167, 20, 83, 21,179, 76,230,231,252,201, 85,122, 50, 42, 13, 51,
+ 74, 18,195, 20,213, 37,145,222,144, 92, 32,173, 68,139,131,100,147, 97,231,110,125, 95, 69,211,154,212,170, 34,234,109, 87, 36,
+ 41, 2,178,165, 45, 14,155,247,105,223,226,177,181,193, 36, 35,142,156,121, 99, 13, 40,113,104,102,159,177,100, 94,168,229,236,
+127,117,120,147,103,183, 92,143,147,229, 37,135, 20,128,115, 69,136, 65,181,193,108,146, 56,196, 46, 93, 87,108, 82,152, 30, 67,
+239, 90, 98,234,243,122, 84,123, 83,233, 21,255, 0,173,195,139,148,145, 31,111,121, 22, 59, 74, 35,112, 5, 54, 22,242, 5, 74,
+176,247, 32,225,133, 86,137, 63, 44, 40, 71, 98,104,117,228,160,170, 78,211,113,193, 73, 42, 63, 21, 92,129,233,183, 7,245, 75,
+255, 0,121,134,191, 63,110,124, 95,220, 24, 22, 31, 43,159,196,225,181, 88, 5,214, 10,150, 46, 85, 17,237,196,249,248,157,192,
+109, 84, 75, 72, 79, 40,249, 69, 73, 75, 49, 90,242,131, 50,106, 84, 41, 8, 88, 87,117, 74,166,187, 49,198,239,203,174, 56,160,
+150,211,242, 54, 81, 62,236, 55,118, 61, 99, 48,209,163, 82,153,152,190,233,137, 72, 9,106,246, 73,113,221,169, 22,248,217, 87,
+248, 39, 5,104, 11, 90,103,230,128,149,144, 63, 70,209,192, 62,232,223,222,112, 11, 36,186,239,121, 79, 29,226,185,172,193,191,
+139,247, 18,112,109,136,143,191,189,169,131,138,137,167,153,222,149, 38,137, 83, 77, 57,167, 84,144,210, 54,157,135,169, 79,132,
+159,196, 28, 44, 21,206,169, 74,179, 93, 67,114, 65,180,199, 64,184,232, 55, 30, 48,176, 16,250,128,218,132, 28, 49, 95,255,217,
+ 0};
+
diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c
index 8a8d7c8cec7..c8a20cdc951 100644
--- a/source/blender/src/toolbox.c
+++ b/source/blender/src/toolbox.c
@@ -123,6 +123,8 @@
#include "BPY_extern.h"
#include "BPY_menus.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
void asciitoraw(int ch, unsigned short *event, unsigned short *qual)
{
if( isupper(ch) ) {
@@ -238,7 +240,7 @@ void error_libdata(void)
int saveover(char *file)
{
- int len= strlen(file);
+ size_t len= strlen(file);
if(len==0)
return 0;
@@ -1756,8 +1758,8 @@ static uiBlock *tb_makemenu(void *arg)
static int tb_mainx= 1234, tb_mainy= 0;
static void store_main(void *arg1, void *arg2)
{
- tb_mainx= (long)arg1;
- tb_mainy= (long)arg2;
+ tb_mainx= (intptr_t)arg1;
+ tb_mainy= (intptr_t)arg2;
}
static void do_group_addmenu(void *arg, int event)
@@ -2185,27 +2187,27 @@ void toolbox_n(void)
but=uiDefBlockBut(block, tb_makemenu, menu1, str1, mval[0]-(1.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, "");
uiButSetFlag(but, UI_MAKE_TOP|UI_MAKE_RIGHT);
- uiButSetFunc(but, store_main, (void *)(long)dx, (void *)(long)-5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)dx, (void *)(intptr_t)-5);
but=uiDefBlockBut(block, tb_makemenu, menu2, str2, mval[0]-(0.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, "");
uiButSetFlag(but, UI_MAKE_TOP);
- uiButSetFunc(but, store_main, (void *)(long)0, (void *)(long)-5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)0, (void *)(intptr_t)-5);
but=uiDefBlockBut(block, tb_makemenu, menu3, str3, mval[0]+(0.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, "");
uiButSetFlag(but, UI_MAKE_TOP|UI_MAKE_LEFT);
- uiButSetFunc(but, store_main, (void *)(long)-dx, (void *)(long)-5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)-dx, (void *)(intptr_t)-5);
but=uiDefBlockBut(block, tb_makemenu, menu4, str4, mval[0]-(1.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, "");
uiButSetFlag(but, UI_MAKE_DOWN|UI_MAKE_RIGHT);
- uiButSetFunc(but, store_main, (void *)(long)dx, (void *)(long)5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)dx, (void *)(intptr_t)5);
but=uiDefBlockBut(block, tb_makemenu, menu5, str5, mval[0]-(0.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, "");
uiButSetFlag(but, UI_MAKE_DOWN);
- uiButSetFunc(but, store_main, (void *)(long)0, (void *)(long)5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)0, (void *)(intptr_t)5);
but=uiDefBlockBut(block, tb_makemenu, menu6, str6, mval[0]+(0.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, "");
uiButSetFlag(but, UI_MAKE_DOWN|UI_MAKE_LEFT);
- uiButSetFunc(but, store_main, (void *)(long)-dx, (void *)(long)5);
+ uiButSetFunc(but, store_main, (void *)(intptr_t)-dx, (void *)(intptr_t)5);
} else if (tot==5 || tot==7) {
/* check if it fits, dubious */
if(mval[0]-0.25*dx+tb_mainx < 6) mval[0]= 6 + 0.25*dx -tb_mainx;
@@ -2282,7 +2284,7 @@ void toolbox_generic( TBitem *generic_menu )
TBitem *menu;
int dx=96;
short event, mval[2];
- long ypos = -5;
+ intptr_t ypos = -5;
tb_mainx= -32;
tb_mainy= -5;
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c
index 9f2f58d0cdb..efb86b59ed1 100644
--- a/source/blender/src/transform_conversions.c
+++ b/source/blender/src/transform_conversions.c
@@ -144,6 +144,8 @@ extern ListBase editelems;
#include "transform.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
/* local function prototype - for Object/Bone Constraints */
static short constraints_list_needinv(TransInfo *t, ListBase *list);
/* local function prototype - for finding number of keyframes that are selected for editing */
@@ -1913,7 +1915,7 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats)
EditVert *eve, *prev;
EditFace *efa;
float *v1, *v2, *v3, *v4, *co1, *co2, *co3, *co4;
- long index= 0;
+ intptr_t index= 0;
/* two abused locations in vertices */
for(eve= em->verts.first; eve; eve= eve->next, index++) {
@@ -1925,13 +1927,13 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats)
for(efa= em->faces.first; efa; efa= efa->next) {
/* retrieve mapped coordinates */
- v1= mappedcos + 3*(long)(efa->v1->prev);
- v2= mappedcos + 3*(long)(efa->v2->prev);
- v3= mappedcos + 3*(long)(efa->v3->prev);
+ v1= mappedcos + 3*(intptr_t)(efa->v1->prev);
+ v2= mappedcos + 3*(intptr_t)(efa->v2->prev);
+ v3= mappedcos + 3*(intptr_t)(efa->v3->prev);
- co1= (origcos)? origcos + 3*(long)(efa->v1->prev): efa->v1->co;
- co2= (origcos)? origcos + 3*(long)(efa->v2->prev): efa->v2->co;
- co3= (origcos)? origcos + 3*(long)(efa->v3->prev): efa->v3->co;
+ co1= (origcos)? origcos + 3*(intptr_t)(efa->v1->prev): efa->v1->co;
+ co2= (origcos)? origcos + 3*(intptr_t)(efa->v2->prev): efa->v2->co;
+ co3= (origcos)? origcos + 3*(intptr_t)(efa->v3->prev): efa->v3->co;
if(efa->v2->tmp.p==NULL && efa->v2->f1) {
set_crazy_vertex_quat(quats, co2, co3, co1, v2, v3, v1);
@@ -1940,8 +1942,8 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats)
}
if(efa->v4) {
- v4= mappedcos + 3*(long)(efa->v4->prev);
- co4= (origcos)? origcos + 3*(long)(efa->v4->prev): efa->v4->co;
+ v4= mappedcos + 3*(intptr_t)(efa->v4->prev);
+ co4= (origcos)? origcos + 3*(intptr_t)(efa->v4->prev): efa->v4->co;
if(efa->v1->tmp.p==NULL && efa->v1->f1) {
set_crazy_vertex_quat(quats, co1, co2, co4, v1, v2, v4);
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c
index c332fd723eb..656fca3cad8 100644
--- a/source/blender/src/transform_generics.c
+++ b/source/blender/src/transform_generics.c
@@ -32,6 +32,8 @@
#include "MEM_guardedalloc.h"
+#include "BLO_sys_types.h" // for intptr_t support
+
#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c
index 92e49ab29fa..15c2664a9d8 100644
--- a/source/blender/src/usiblender.c
+++ b/source/blender/src/usiblender.c
@@ -477,7 +477,15 @@ static void init_userdef_file(void)
if ((G.main->versionfile < 245) || (G.main->versionfile == 245 && G.main->subversionfile < 16)) {
U.flag |= USER_ADD_VIEWALIGNED|USER_ADD_EDITMODE;
}
-
+ if ((G.main->versionfile < 247) || (G.main->versionfile == 247 && G.main->subversionfile < 1)) {
+ bTheme *btheme;
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ SETCOL(btheme->tipo.handle_vertex, 0xff, 0x70, 0xff, 255);
+ SETCOL(btheme->tipo.handle_vertex_select, 0xff, 0xff, 0x70, 255);
+ btheme->tipo.handle_vertex_size= 3;
+ }
+ }
+
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
U.texcollectrate = 60;
diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp
index 6ae4a31bf50..77d53c4ed96 100644
--- a/source/blender/yafray/intern/export_Plugin.cpp
+++ b/source/blender/yafray/intern/export_Plugin.cpp
@@ -74,7 +74,7 @@ extern "C" { extern char bprogname[]; }
// add drive character if not in path string, using blender executable location as reference
static void addDrive(string &path)
{
- int sp = path.find_first_of(":");
+ size_t sp = path.find_first_of(":");
if (sp==-1) {
string blpath = bprogname;
sp = blpath.find_first_of(":");