Merging revisions 14838-14945 of https://svn.blender.org/svnroot/bf-blender/trunk...
authorDaniel Genrich <daniel.genrich@gmx.net>
Fri, 23 May 2008 20:36:05 +0000 (20:36 +0000)
committerDaniel Genrich <daniel.genrich@gmx.net>
Fri, 23 May 2008 20:36:05 +0000 (20:36 +0000)
77 files changed:
release/VERSION
release/datafiles/splash.jpg
release/scripts/bpymodules/BPyAddMesh.py
release/scripts/bpymodules/dxfImportObjects.py [deleted file]
release/scripts/flt_export.py
release/scripts/flt_import.py
release/scripts/uvcalc_lightmap.py
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_mball.h
source/blender/blenkernel/intern/anim.c
source/blender/blenkernel/intern/blender.c
source/blender/blenkernel/intern/curve.c
source/blender/blenkernel/intern/customdata.c
source/blender/blenkernel/intern/displist.c
source/blender/blenkernel/intern/image.c
source/blender/blenkernel/intern/mball.c
source/blender/blenkernel/intern/modifier.c
source/blender/blenkernel/intern/node.c
source/blender/blenkernel/intern/particle.c
source/blender/blenkernel/intern/softbody.c
source/blender/blenloader/intern/readfile.c
source/blender/include/butspace.h
source/blender/makesdna/DNA_object_types.h
source/blender/makesdna/intern/SConscript
source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
source/blender/python/api2_2x/NLA.c
source/blender/python/api2_2x/Node.c
source/blender/python/api2_2x/Window.c
source/blender/python/api2_2x/doc/API_intro.py
source/blender/python/api2_2x/doc/Blender.py
source/blender/python/api2_2x/doc/Mesh.py
source/blender/python/api2_2x/doc/NLA.py
source/blender/python/api2_2x/doc/Render.py
source/blender/python/api2_2x/sceneRender.c
source/blender/render/extern/include/RE_pipeline.h
source/blender/render/intern/include/render_types.h
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/envmap.c
source/blender/render/intern/source/initrender.c
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/rendercore.c
source/blender/render/intern/source/renderdatabase.c
source/blender/render/intern/source/shadeinput.c
source/blender/render/intern/source/texture.c
source/blender/src/buttons_editing.c
source/blender/src/buttons_object.c
source/blender/src/buttons_scene.c
source/blender/src/drawarmature.c
source/blender/src/drawobject.c
source/blender/src/editaction.c
source/blender/src/editarmature.c
source/blender/src/editconstraint.c
source/blender/src/editcurve.c
source/blender/src/editnode.c
source/blender/src/editseq.c
source/blender/src/filesel.c
source/blender/src/header_image.c
source/blender/src/interface.c
source/blender/src/poselib.c
source/blender/src/sculptmode.c
source/blender/src/sequence.c
source/blender/src/space.c
source/blender/src/splash.jpg.c
source/blender/src/toolbox.c
source/blender/src/transform.c
source/blender/src/transform_conversions.c
source/blender/src/transform_orientations.c
source/blender/src/view.c
source/gameengine/Ketsji/KX_GameObject.h
source/gameengine/Ketsji/KX_SG_NodeRelationships.h
source/gameengine/Ketsji/KX_TrackToActuator.cpp
source/gameengine/PyDoc/Makefile [deleted file]
source/gameengine/PyDoc/epy_docgen.sh [new file with mode: 0644]
source/gameengine/SceneGraph/SG_Node.cpp
source/gameengine/SceneGraph/SG_Node.h
source/gameengine/SceneGraph/SG_ParentRelation.h

index f454b8169e37cf0109a4e28d46c1561856912e72..e72716a7902eb50ea60dcfdf6258de2d5f5ebd09 100644 (file)
@@ -1 +1 @@
-2.44
+2.46
index 182686a8cead52ccbcd153add4e1b02badf37a77..6a1bd28d50979cc38a4309b6cf55a24af7a9343d 100644 (file)
Binary files a/release/datafiles/splash.jpg and b/release/datafiles/splash.jpg differ
index ef42eab9e8fe23f98644f39c2e6b789ac4e5bc4e..901e68866cceb3ebb5e95ff1f0b9aef8caa69594 100644 (file)
@@ -92,10 +92,11 @@ def add_mesh_simple(name, verts, edges, faces):
                
                ob_act.loc = cursor
        
+       me.calcNormals()
+       
        if is_editmode or Blender.Get('add_editmode'):
                EditMode(1)
-       else: # adding in object mode means we need to calc normals
-               me.calcNormals()
+               
                
                        
 
diff --git a/release/scripts/bpymodules/dxfImportObjects.py b/release/scripts/bpymodules/dxfImportObjects.py
deleted file mode 100644 (file)
index 960c4c1..0000000
+++ /dev/null
@@ -1,1326 +0,0 @@
-"""This module provides wrapper objects for dxf entities.
-    
-    The wrappers expect a "dxf object" as input.  The dxf object is
-    an object with a type and a data attribute.  Type is a lowercase 
-    string matching the 0 code of a dxf entity.  Data is a list containing
-    dxf objects or lists of [code, data] pairs.
-    
-    This module is not general, and is only for dxf import.
-"""
-
-# --------------------------------------------------------------------------
-# DXF Import Objects v0.8 by Ed Blake (AKA Kitsu)
-# --------------------------------------------------------------------------
-# ***** 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.
-#
-# ***** END GPL LICENCE BLOCK *****
-# --------------------------------------------------------------------------
-from math import *
-
-
-# from Stani's dxf writer v1.1 (c)www.stani.be (GPL)
-#---color values
-BYBLOCK=0
-BYLAYER=256
-
-#---block-type flags (bit coded values, may be combined): 
-ANONYMOUS               =1  # This is an anonymous block generated by hatching, associative dimensioning, other internal operations, or an application
-NON_CONSTANT_ATTRIBUTES =2  # This block has non-constant attribute definitions (this bit is not set if the block has any attribute definitions that are constant, or has no attribute definitions at all)
-XREF                    =4  # This block is an external reference (xref)
-XREF_OVERLAY            =8  # This block is an xref overlay 
-EXTERNAL                =16 # This block is externally dependent
-RESOLVED                =32 # This is a resolved external reference, or dependent of an external reference (ignored on input)
-REFERENCED              =64 # This definition is a referenced external reference (ignored on input)
-
-#---mtext flags
-#attachment point
-TOP_LEFT        = 1
-TOP_CENTER      = 2
-TOP_RIGHT       = 3
-MIDDLE_LEFT     = 4
-MIDDLE_CENTER   = 5
-MIDDLE_RIGHT    = 6
-BOTTOM_LEFT     = 7
-BOTTOM_CENTER   = 8
-BOTTOM_RIGHT    = 9
-#drawing direction
-LEFT_RIGHT      = 1
-TOP_BOTTOM      = 3
-BY_STYLE        = 5 #the flow direction is inherited from the associated text style
-#line spacing style (optional): 
-AT_LEAST        = 1 #taller characters will override
-EXACT           = 2 #taller characters will not override
-
-#---polyline flags
-CLOSED                      =1      # This is a closed polyline (or a polygon mesh closed in the M direction)
-CURVE_FIT                   =2      # Curve-fit vertices have been added
-SPLINE_FIT                  =4      # Spline-fit vertices have been added
-POLYLINE_3D                 =8      # This is a 3D polyline
-POLYGON_MESH                =16     # This is a 3D polygon mesh
-CLOSED_N                    =32     # The polygon mesh is closed in the N direction
-POLYFACE_MESH               =64     # The polyline is a polyface mesh
-CONTINOUS_LINETYPE_PATTERN  =128    # The linetype pattern is generated continuously around the vertices of this polyline
-
-#---text flags
-#horizontal
-LEFT        = 0
-CENTER      = 1
-RIGHT       = 2
-ALIGNED     = 3 #if vertical alignment = 0
-MIDDLE      = 4 #if vertical alignment = 0
-FIT         = 5 #if vertical alignment = 0
-#vertical
-BASELINE    = 0
-BOTTOM      = 1
-MIDDLE      = 2
-TOP         = 3
-class Object:
-    """Empty container class for dxf objects"""
-    
-    def __init__(self, _type=''):
-        """_type expects a string value."""
-        self.type = _type
-        self.name = ''
-        self.data = []
-    
-    def __str__(self):
-        if self.name:
-            return self.name
-        else:
-            return self.type
-    
-    def __repr__(self):
-        return str(self.data)
-    
-    def get_type(self, kind=''):
-        """Despite the name, this method actually returns all objects of type 'kind' from self.data."""
-        if type:
-            objects = []
-            for item in self.data:
-                if type(item) != list and item.type == kind:
-                    # we want this type of object
-                    objects.append(item)
-                elif type(item) == list and item[0] == kind:
-                    # we want this type of data
-                    objects.append(item[1])
-            return objects
-    
-
-class Layer:
-    """Class for objects representing dxf layers."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type line as input."""
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        self.name = obj.get_type(2)[0]
-        self.color = obj.get_type(62)[0]
-        self.flags = obj.get_type(70)[0]
-        self.frozen = self.flags&1
-        
-    
-    
-    def __repr__(self):
-        return "%s: name - %s, color - %s" %(self.__class__.__name__, self.name, self.color)
-    
-
-
-class Line:
-    """Class for objects representing dxf lines."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type line as input."""
-        if not obj.type == 'line':
-            raise TypeError, "Wrong type %s for line object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-        
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-        
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        
-        self.points = self.get_points(obj.data)
-    
-    
-    
-    
-    def get_points(self, data):
-        """Gets start and end points for a line type object.
-        
-        Lines have a fixed number of points (two) and fixed codes for each value.
-        """
-        
-        # start x, y, z and end x, y, z = 0
-        sx, sy, sz, ex, ey, ez = 0, 0, 0, 0, 0, 0
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                sx = item[1]
-            elif item[0] == 20: # 20 = y
-                sy = item[1]
-            elif item[0] == 30: # 30 = z
-                sz = item[1]
-            elif item[0] == 11: # 11 = x
-                ex = item[1]
-            elif item[0] == 21: # 21 = y
-                ey = item[1]
-            elif item[0] == 31: # 31 = z
-                ez = item[1]
-        return [[sx, sy, sz], [ex, ey, ez]]
-    
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, points - %s" %(self.__class__.__name__, self.layer, self.points)
-    
-
-
-class LWpolyline:
-    """Class for objects representing dxf LWpolylines."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type lwpolyline as input."""
-        if not obj.type == 'lwpolyline':
-            raise TypeError, "Wrong type %s for polyline object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.num_points = obj.get_type(90)[0]
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        self.elevation = obj.get_type(38)
-        if self.elevation:
-            self.elevation = self.elevation[0]
-        else:
-            self.elevation = 0
-            
-        self.flags = obj.get_type(70)
-        if self.flags:
-            self.flags = self.flags[0]
-        else:
-            self.flags = 0
-        
-        self.closed = self.flags&1 # byte coded, 1 = closed, 128 = plinegen
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.points = self.get_points(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    
-    def get_points(self, data):
-        """Gets points for a polyline type object.
-        
-        Polylines have no fixed number of verts, and 
-        each vert can have a number of properties.
-        Verts should be coded as 
-        10:xvalue
-        20:yvalue
-        40:startwidth or 0
-        41:endwidth or 0
-        42:bulge or 0
-        for each vert
-        """
-        num = self.num_points
-        point = None
-        points = []
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                if point:
-                    points.append(point)
-                point = Vertex()
-                point.x = item[1]
-            elif item[0] == 20: # 20 = y
-                point.y = item[1]
-            elif item[0] == 40: # 40 = start width
-                point.swidth = item[1]
-            elif item[0] == 41: # 41 = end width
-                point.ewidth = item[1]
-            elif item[0] == 42: # 42 = bulge
-                point.bulge = item[1]
-        points.append(point)
-        return points
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, points - %s" %(self.__class__.__name__, self.layer, self.points)
-    
-
-
-class Polyline:
-    """Class for objects representing dxf LWpolylines."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type polyline as input."""
-        if not obj.type == 'polyline':
-            raise TypeError, "Wrong type %s for polyline object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        self.points = []
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        self.elevation = obj.get_type(30)
-        if self.elevation:
-            self.elevation = self.elevation[0]
-        else:
-            self.elevation = 0
-            
-        self.flags = obj.get_type(70)
-        if self.flags:
-            self.flags = self.flags[0]
-        else:
-            self.flags = 0
-        
-        self.closed = self.flags&1 # byte coded, 1 = closed, 128 = plinegen
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, points - %s" %(self.__class__.__name__, self.layer, self.points)
-    
-
-
-class Vertex(object):
-    """Generic vertex object used by polylines (and maybe others)."""
-    
-    def __init__(self, obj=None):
-        """Initializes vertex data.
-        
-            The optional obj arg is an entity object of type vertex.
-        """
-        self.loc = [0,0,0]
-        self.bulge = 0
-        self.swidth = 0
-        self.ewidth = 0
-        self.flags = 0
-        
-        if obj is not None:
-            if not obj.type == 'vertex':
-                raise TypeError, "Wrong type %s for vertex object!" %obj.type
-            self.type = obj.type
-            self.data = obj.data[:]
-            
-            self.get_props(obj.data)
-    
-    
-    def get_props(self, data):
-        """Gets coords for a vertex type object.
-        
-        Each vert can have a number of properties.
-        Verts should be coded as 
-        10:xvalue
-        20:yvalue
-        40:startwidth or 0
-        41:endwidth or 0
-        42:bulge or 0
-        """
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                self.x = item[1]
-            elif item[0] == 20: # 20 = y
-                self.y = item[1]
-            elif item[0] == 30: # 30 = z
-                self.z = item[1]
-            elif item[0] == 40: # 40 = start width
-                self.swidth = item[1]
-            elif item[0] == 41: # 41 = end width
-                self.ewidth = item[1]
-            elif item[0] == 42: # 42 = bulge
-                self.bulge = item[1]
-            elif item[0] == 70: # 70 = vert flags
-                self.flags = item[1]
-    
-    
-    def __len__(self):
-        return 3
-    
-    
-    def __getitem__(self, key):
-        return self.loc[key]
-    
-    
-    def __setitem__(self, key, value):
-        if key in [0,1,2]:
-            self.loc[key]
-    
-    
-    def __iter__(self):
-        return self.loc.__iter__()
-    
-    
-    def __str__(self):
-        return str(self.loc)
-    
-    
-    def __repr__(self):
-        return "Vertex %s, swidth=%s, ewidth=%s, bulge=%s" %(self.loc, self.swidth, self.ewidth, self.bulge)
-    
-    
-    def getx(self):
-        return self.loc[0]
-    
-    def setx(self, value):
-        self.loc[0] = value
-    
-    x = property(getx, setx)
-    
-    
-    def gety(self):
-        return self.loc[1]
-    
-    def sety(self, value):
-        self.loc[1] = value
-    
-    y = property(gety, sety)
-    
-    
-    def getz(self):
-        return self.loc[2]
-    
-    def setz(self, value):
-        self.loc[2] = value
-    
-    z = property(getz, setz)
-    
-
-
-class Text:
-    """Class for objects representing dxf Text."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type text as input."""
-        if not obj.type == 'text':
-            raise TypeError, "Wrong type %s for text object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.height = obj.get_type(40)[0]
-        self.value = obj.get_type(1)[0] # The text string value
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        self.rotation = obj.get_type(50) # radians?
-        if not self.rotation:
-            self.rotation = 0
-        else:
-            self.rotation = self.rotation[0]
-        
-        self.width_factor = obj.get_type(41) # Scaling factor along local x axis
-        if not self.width_factor:
-            self.width_factor = 1
-        else:
-            self.width_factor = self.width_factor[0]
-        
-        self.oblique = obj.get_type(51) # skew in degrees -90 <= oblique <= 90
-        if not self.oblique:
-            self.oblique = 0
-        else:
-            self.oblique = self.oblique[0]
-        
-        self.halignment = obj.get_type(72) # horiz. alignment
-        if not self.halignment:  # 0=left, 1=center, 2=right, 3=aligned, 4=middle, 5=fit
-            self.halignment = 0
-        else:
-            self.halignment = self.halignment[0]
-            
-        self.valignment = obj.get_type(73) # vert. alignment
-        if not self.valignment:  # 0=baseline, 1=bottom, 2=middle, 3=top
-            self.valignment = 0
-        else:
-            self.valignment = self.valignment[0]
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data, self.halignment, self.valignment)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    def get_loc(self, data, halign, valign):
-        """Gets adjusted location for text type objects.
-        
-        If group 72 and/or 73 values are nonzero then the first alignment point values
-        are ignored and AutoCAD calculates new values based on the second alignment
-        point and the length and height of the text string itself (after applying the
-        text style). If the 72 and 73 values are zero or missing, then the second
-        alignment point is meaningless.
-        
-        I don't know how to calc text size...
-        """
-        # bottom left x, y, z and justification x, y, z = 0
-        x, y, z, jx, jy, jz = 0, 0, 0, 0, 0, 0
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                x = item[1]
-            elif item[0] == 20: # 20 = y
-                y = item[1]
-            elif item[0] == 30: # 30 = z
-                z = item[1]
-            elif item[0] == 11: # 11 = x
-                jx = item[1]
-            elif item[0] == 21: # 21 = y
-                jy = item[1]
-            elif item[0] == 31: # 31 = z
-                jz = item[1]
-                
-        if halign or valign:
-            x, y, z = jx, jy, jz
-        return [x, y, z]
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, value - %s" %(self.__class__.__name__, self.layer, self.value)
-    
-
-
-class Mtext:
-    """Class for objects representing dxf Mtext."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type mtext as input."""
-        if not obj.type == 'mtext':
-            raise TypeError, "Wrong type %s for mtext object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.height = obj.get_type(40)[0]
-        self.width = obj.get_type(41)[0]
-        self.alignment = obj.get_type(71)[0] # alignment 1=TL, 2=TC, 3=TR, 4=ML, 5=MC, 6=MR, 7=BL, 8=BC, 9=BR
-        self.value = self.get_text(obj.data) # The text string value
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        self.rotation = obj.get_type(50) # radians
-        if not self.rotation:
-            self.rotation = 0
-        else:
-            self.rotation = self.rotation[0]
-        
-        self.width_factor = obj.get_type(42) # Scaling factor along local x axis
-        if not self.width_factor:
-            self.width_factor = 1
-        else:
-            self.width_factor = self.width_factor[0]
-        
-        self.line_space = obj.get_type(44) # percentage of default
-        if not self.line_space:
-            self.line_space = 1
-        else:
-            self.line_space = self.line_space[0]
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    def get_text(self, data):
-        """Reconstructs mtext data from dxf codes."""
-        primary = ''
-        secondary = []
-        for item in data:
-            if item[0] == 1: # There should be only one primary...
-                primary = item[1]
-            elif item[0] == 3: # There may be any number of extra strings (in order)
-                secondary.append(item[1])
-        if not primary:
-            #raise ValueError, "Empty Mtext Object!"
-            string = "Empty Mtext Object!"
-        if not secondary:
-            string = primary.replace(r'\P', '\n')
-        else:
-            string = ''.join(secondary)+primary
-            string = string.replace(r'\P', '\n')
-        return string    
-    def get_loc(self, data):
-        """Gets location for a mtext type objects.
-        
-        Mtext objects have only one point indicating location.
-        """
-        loc = [0,0,0]
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, value - %s" %(self.__class__.__name__, self.layer, self.value)
-    
-
-
-class Circle:
-    """Class for objects representing dxf Circles."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type circle as input."""
-        if not obj.type == 'circle':
-            raise TypeError, "Wrong type %s for circle object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.radius = obj.get_type(40)[0]
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    def get_loc(self, data):
-        """Gets the center location for circle type objects.
-        
-        Circles have a single coord location.
-        """
-        loc = [0, 0, 0]
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, radius - %s" %(self.__class__.__name__, self.layer, self.radius)
-    
-
-
-class Arc:
-    """Class for objects representing dxf arcs."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type arc as input."""
-        if not obj.type == 'arc':
-            raise TypeError, "Wrong type %s for arc object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.radius = obj.get_type(40)[0]
-        self.start_angle = obj.get_type(50)[0]
-        self.end_angle = obj.get_type(51)[0]
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    def get_loc(self, data):
-        """Gets the center location for arc type objects.
-        
-        Arcs have a single coord location.
-        """
-        loc = [0, 0, 0]
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, radius - %s" %(self.__class__.__name__, self.layer, self.radius)
-    
-
-
-class BlockRecord:
-    """Class for objects representing dxf block_records."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type block_record as input."""
-        if not obj.type == 'block_record':
-            raise TypeError, "Wrong type %s for block_record object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.name = obj.get_type(2)[0]
-        
-        # optional data (with defaults)
-        self.insertion_units = obj.get_type(70)
-        if not self.insertion_units:
-            self.insertion_units = None
-        else:
-            self.insertion_units = self.insertion_units[0]
-            
-        self.insert_units = obj.get_type(1070)
-        if not self.insert_units:
-            self.insert_units = None
-        else:
-            self.insert_units = self.insert_units[0]
-        
-    
-    
-    
-    
-    
-    def __repr__(self):
-        return "%s: name - %s, insert units - %s" %(self.__class__.__name__, self.name, self.insertion_units)
-    
-
-
-
-class Block:
-    """Class for objects representing dxf blocks."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type block as input."""
-        if not obj.type == 'block':
-            raise TypeError, "Wrong type %s for block object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.flags = obj.get_type(70)[0]
-        self.entities = Object('block_contents')
-        self.entities.data = objectify([ent for ent in obj.data if type(ent) != list])
-        
-        # optional data (with defaults)
-        self.name = obj.get_type(3)
-        if self.name:
-            self.name = self.name[0]
-        else:
-            self.name = ''
-            
-        self.path = obj.get_type(1)
-        if self.path:
-            self.path = self.path[0]
-        else:
-            self.path = ''
-            
-        self.discription = obj.get_type(4)
-        if self.discription:
-            self.discription = self.discription[0]
-        else:
-            self.discription = ''
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-    
-    
-    
-    
-    
-    def get_loc(self, data):
-        """Gets the insert point of the block."""
-        loc = [0, 0, 0]
-        for item in data:
-            if type(item) != list:
-                continue
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def __repr__(self):
-        return "%s: name - %s, description - %s, xref-path - %s" %(self.__class__.__name__, self.name, self.discription, self.path)
-    
-
-
-
-class Insert:
-    """Class for objects representing dxf inserts."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type insert as input."""
-        if not obj.type == 'insert':
-            raise TypeError, "Wrong type %s for insert object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.block = obj.get_type(2)[0]
-        
-        # optional data (with defaults)
-        self.rotation = obj.get_type(50)
-        if self.rotation:
-            self.rotation = self.rotation[0]
-        else:
-            self.rotation = 0
-        
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-        
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-        self.scale = self.get_scale(obj.data)
-        self.rows, self.columns = self.get_array(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-    
-    
-    
-    
-    
-    def get_loc(self, data):
-        """Gets the center location for circle type objects.
-        
-        Circles have a single coord location.
-        """
-        loc = [0, 0, 0]
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def get_scale(self, data):
-        """Gets the x/y/z scale factor for the block.
-        """
-        scale = [1, 1, 1]
-        for item in data:
-            if item[0] == 41:   # 41 = x scale
-                scale[0] = item[1]
-            elif item[0] == 42: # 42 = y scale
-                scale[1] = item[1]
-            elif item[0] == 43: # 43 = z scale
-                scale[2] = item[1]
-        return scale
-    
-    
-    
-    def get_array(self, data):
-        """Returns the pair (row number, row spacing), (column number, column spacing)."""
-        columns = 1
-        rows = 1
-        cspace = 0
-        rspace = 0
-        for item in data:
-            if item[0] == 70:   # 70 = columns
-                columns = item[1]
-            elif item[0] == 71: # 71 = rows
-                rows = item[1]
-            if item[0] == 44:   # 44 = columns
-                cspace = item[1]
-            elif item[0] == 45: # 45 = rows
-                rspace = item[1]
-        return (rows, rspace), (columns, cspace)
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, block - %s" %(self.__class__.__name__, self.layer, self.block)
-    
-
-
-
-class Ellipse:
-    """Class for objects representing dxf ellipses."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type ellipse as input."""
-        if not obj.type == 'ellipse':
-            raise TypeError, "Wrong type %s for ellipse object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # required data
-        self.ratio = obj.get_type(40)[0]
-        self.start_angle = obj.get_type(41)[0]
-        self.end_angle = obj.get_type(42)[0]
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-            
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-            
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.loc = self.get_loc(obj.data)
-        self.major = self.get_major(obj.data)
-        self.extrusion = self.get_extrusion(obj.data)
-        self.radius = sqrt(self.major[0]**2 + self.major[0]**2 + self.major[0]**2)
-    
-    
-    
-    
-    def get_loc(self, data):
-        """Gets the center location for arc type objects.
-        
-        Arcs have a single coord location.
-        """
-        loc = [0, 0, 0]
-        for item in data:
-            if item[0] == 10:   # 10 = x
-                loc[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                loc[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def get_major(self, data):
-        """Gets the major axis for ellipse type objects.
-        
-        The ellipse major axis defines the rotation of the ellipse and its radius.
-        """
-        loc = [0, 0, 0]
-        for item in data:
-            if item[0] == 11:   # 11 = x
-                loc[0] = item[1]
-            elif item[0] == 21: # 21 = y
-                loc[1] = item[1]
-            elif item[0] == 31: # 31 = z
-                loc[2] = item[1]
-        return loc
-    
-    
-    
-    def get_extrusion(self, data):
-        """Find the axis of extrusion.
-        
-        Used to get the objects Object Coordinate System (ocs).
-        """
-        vec = [0,0,1]
-        for item in data:
-            if item[0] == 210:   # 210 = x
-                vec[0] = item[1]
-            elif item[0] == 220: # 220 = y
-                vec[1] = item[1]
-            elif item[0] == 230: # 230 = z
-                vec[2] = item[1]
-        return vec
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, radius - %s" %(self.__class__.__name__, self.layer, self.radius)
-    
-
-
-class Face:
-    """Class for objects representing dxf 3d faces."""
-    
-    def __init__(self, obj):
-        """Expects an entity object of type 3dfaceplot as input."""
-        if not obj.type == '3dface':
-            raise TypeError, "Wrong type %s for 3dface object!" %obj.type
-        self.type = obj.type
-        self.data = obj.data[:]
-        
-        # optional data (with defaults)
-        self.space = obj.get_type(67)
-        if self.space:
-            self.space = self.space[0]
-        else:
-            self.space = 0
-        
-        self.color_index = obj.get_type(62)
-        if self.color_index:
-            self.color_index = self.color_index[0]
-        else:
-            self.color_index = BYLAYER
-        
-        discard, self.layer, discard_index = get_layer(obj.data)
-        del obj.data[discard_index]
-        self.points = self.get_points(obj.data)
-    
-    
-    
-    
-    def get_points(self, data):
-        """Gets 3-4 points for a 3d face type object.
-        
-        Faces have three or optionally four verts.
-        """
-        
-        a = [0, 0, 0]
-        b = [0, 0, 0]
-        c = [0, 0, 0]
-        d = False
-        for item in data:
-            # ----------- a -------------
-            if item[0] == 10:   # 10 = x
-                a[0] = item[1]
-            elif item[0] == 20: # 20 = y
-                a[1] = item[1]
-            elif item[0] == 30: # 30 = z
-                a[2] = item[1]
-            # ----------- b -------------
-            elif item[0] == 11: # 11 = x
-                b[0] = item[1]
-            elif item[0] == 21: # 21 = y
-                b[1] = item[1]
-            elif item[0] == 31: # 31 = z
-                b[2] = item[1]
-            # ----------- c -------------
-            elif item[0] == 12: # 12 = x
-                c[0] = item[1]
-            elif item[0] == 22: # 22 = y
-                c[1] = item[1]
-            elif item[0] == 32: # 32 = z
-                c[2] = item[1]
-            # ----------- d -------------
-            elif item[0] == 13: # 13 = x
-                d = [0, 0, 0]
-                d[0] = item[1]
-            elif item[0] == 23: # 23 = y
-                d[1] = item[1]
-            elif item[0] == 33: # 33 = z
-                d[2] = item[1]
-        out = [a,b,c]
-        if d:
-            out.append(d)
-        return out
-    
-    
-    def __repr__(self):
-        return "%s: layer - %s, points - %s" %(self.__class__.__name__, self.layer, self.points)
-    
-
-def get_name(data):
-    """Get the name of an object from its object data.
-    
-    Returns a pair of (data_item, name) where data_item is the list entry where the name was found
-    (the data_item can be used to remove the entry from the object data).  Be sure to check 
-    name not None before using the returned values!
-    """
-    value = None
-    for i, item in enumerate(data):
-        if item[0] == 2:
-            value = item[1]
-            break
-    return item, value, i
-
-def get_layer(data):
-    """Expects object data as input.
-    
-    Returns (entry, layer_name, entry_index) where entry is the data item that provided the layer name.
-    """
-    value = None
-    for i, item in enumerate(data):
-        if item[0] == 8:
-            value = item[1]
-            break
-    return item, value, i
-
-
-# type to object map
-type_map = {
-    'line':Line,
-    'lwpolyline':LWpolyline,
-    'text':Text,
-    'mtext':Mtext,
-    'circle':Circle,
-    'arc':Arc,
-    'layer':Layer,
-    'block_record':BlockRecord,
-    'block':Block,
-    'insert':Insert,
-    'ellipse':Ellipse,
-    '3dface':Face
-}
-
-def objectify(data):
-    """Expects a section type object's data as input.
-    
-    Maps object data to the correct object type.
-    """
-    objects = [] # colector for finished objects
-    known_types = type_map.keys() # so we don't have to call foo.keys() every iteration
-    index = 0
-    while index < len(data):
-        item = data[index]
-        if type(item) != list and item.type in known_types:
-            # proccess the object and append the resulting object
-            objects.append(type_map[item.type](item))
-        elif type(item) != list and item.type == 'table':
-            item.data = objectify(item.data) # tables have sub-objects
-            objects.append(item)
-        elif type(item) != list and item.type == 'polyline':
-            pline = Polyline(item)
-            while 1:
-                index += 1
-                item = data[index]
-                if item.type == 'vertex':
-                    v = Vertex(item)
-                    pline.points.append(v)
-                elif item.type == 'seqend':
-                    break
-                else:
-                    print "Error: non-vertex found before seqend!"
-                    index -= 1
-                    break
-            objects.append(pline)
-        else:
-            # we will just let the data pass un-harrased
-            objects.append(item)
-        index += 1
-    return objects    
-if __name__ == "__main__":
-    print "No example yet!"
\ No newline at end of file
index 35022a69bbbcd7ce3321bb127228be391d7b4a8a..2b9db74c77076a38d5c9642f879259fb9e3fdbb5 100644 (file)
@@ -44,6 +44,8 @@ from flt_filewalker import FltOut
 from flt_filewalker import FileFinder
 from flt_properties import *
 import shutil
+import trace
+import sys
 
 FF = FileFinder()
 records = process_recordDefs()
@@ -639,20 +641,37 @@ class FLTNode(Node):
                #first pass: do open faces
                for vert in wireverts:
                        if not visited[vert] and vertuse[vert.index][1] == 1:
-                               visited[vert] = True
-                               loop = [vert]
-                               othervert = edge_get_othervert(vert, disk[vert][0])
-                               self.vertwalk(othervert, loop, disk, visited)
+                               loop = list()
+                               done = 0
+                               startvert = vert
+                               while not done:
+                                       done = 1
+                                       visited[startvert] = True
+                                       loop.append(startvert)
+                                       for edge in disk[startvert]:
+                                               othervert = edge_get_othervert(startvert, edge)
+                                               if not visited[othervert]:
+                                                       done = 0
+                                                       startvert = othervert
+                                                       break
                                if len(loop) > 2: loops.append( ('Open', loop) )
-
                for vert in wireverts:
                        if not visited[vert]:
-                               visited[vert] = True
-                               loop = [vert]
-                               othervert = edge_get_othervert(vert,disk[vert][0])
-                               self.vertwalk(othervert, loop, disk, visited)
+                               loop = list()
+                               done = 0
+                               startvert = vert
+                               while not done:
+                                       done = 1
+                                       visited[startvert] = True
+                                       loop.append(startvert)
+                                       for edge in disk[startvert]:
+                                               othervert = edge_get_othervert(startvert,edge)
+                                               if not visited[othervert]:
+                                                       done = 0
+                                                       startvert = othervert
+                                                       break
                                if len(loop) > 2: loops.append( ('closed', loop) )
-                               
+               
                #now go through the loops and append.
                for l in loops:
                        (ftype, loop) = l
@@ -666,6 +685,8 @@ class FLTNode(Node):
                                face_desc.color_index = 227
                        self.face_lst.append(face_desc)
 
+
+
        def sortFLTFaces(self,a,b):
                aindex = a.getProperty("FLT_ORIGINDEX")
                bindex = b.getProperty("FLT_ORIGINDEX")
@@ -1441,6 +1462,9 @@ FLTXAPPChooser = None
 
 FLTAttrib = None
 
+
+FLTWarn = None
+
 def setshadingangle(ID,val):
        global options
        options.state['shading_default'] = val
@@ -1504,6 +1528,8 @@ def but_event(evt):
 
        global FLTAttrib
        
+       global FLTWarn
+       
        #choose base path for export
        if evt == 4:
                Blender.Window.FileSelector(setBpath, "DB Root", options.state['basepath'])
@@ -1538,8 +1564,13 @@ def but_event(evt):
        
        #Export DB
        if evt == 1:
-               dbexport()
-       
+               try:
+                       dbexport()              
+               except Exception, inst:
+                       import traceback
+                       FLTWarn = Draw.PupBlock("Export Error", ["See console for output!"])
+                       traceback.print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)
+
        #exit
        if evt == 2:
                Draw.Exit()
index c924194f44b282559bfbd7cb5fbcb100e1150f22..74cd4c036a8c7d132cfee10be6074fde4d8dc35a 100644 (file)
@@ -61,6 +61,7 @@ FLTDoXRef = None
 FLTScale = None
 FLTShadeImport = None
 FLTAttrib = None
+FLTWarn = None
 
 Vector= Blender.Mathutils.Vector
 FLOAT_TOLERANCE = 0.01
@@ -890,6 +891,17 @@ class InterNode(Node):
                return weldmesh                 
 
        def weldFuseFaces(self,weldmesh):
+
+               #retain original loose vertices
+               looseverts = dict()
+               for vert in self.mesh.verts:
+                       looseverts[vert] = 0
+               for edge in self.mesh.edges:
+                       looseverts[edge.v1] += 1
+                       looseverts[edge.v2] += 1
+
+
+
                #slight modification here: we need to walk around the mesh as many times as it takes to have no more matches
                done = 0
                while not done:
@@ -937,7 +949,7 @@ class InterNode(Node):
                                vertuse[vert] += 1
                delverts = list()
                for vert in self.mesh.verts:
-                       if not vertuse[vert] and vert.index != 0:
+                       if not vertuse[vert] and vert.index != 0 and looseverts[vert]:
                                delverts.append(vert)
                
                self.mesh.verts.delete(delverts)        
@@ -2405,6 +2417,10 @@ def setBpath(fname):
 
 def event(evt,val):
        pass
+
+from Blender.BGL import *
+from Blender import Draw
+
 def but_event(evt):
        
        global FLTBaseLabel
@@ -2418,6 +2434,8 @@ def but_event(evt):
        global FLTShadeImport
        global FLTAttrib
        
+       global FLTWarn
+       
        #Import DB
        if evt == 1:
                if global_prefs['verbose'] >= 1:
@@ -2429,7 +2447,14 @@ def but_event(evt):
                        print
                
                GRR = GlobalResourceRepository()
-               select_file(global_prefs['fltfile'], GRR)
+               
+               try:
+                       select_file(global_prefs['fltfile'], GRR)
+               except:
+                       import traceback
+                       FLTWarn = Draw.PupBlock("Export Error", ["See console for output!"])
+                       traceback.print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)
+       
        #choose base path for export
        if evt == 4:
                Blender.Window.FileSelector(setBpath, "DB Root", global_prefs['fltfile'])
@@ -2450,10 +2475,7 @@ def but_event(evt):
        for key in global_prefs:
                d[key] = global_prefs[key]
                Blender.Registry.SetKey('flt_import', d, 1) 
-       
 
-from Blender.BGL import *
-from Blender import Draw
 def gui():
        
        global FLTBaseLabel
index 3b7c3ac7cf905df9abfb69e496e1d3488b216a9b..5f9f88a241de1d798da1d860ed44a6a42cc773cb 100644 (file)
@@ -328,6 +328,9 @@ PREF_MARGIN_DIV=            512):
                        if curr_len/4 < side_len/PREF_MARGIN_DIV:
                                break
                
+               if not lengths:
+                       lengths.append(curr_len)
+               
                # convert into ints
                lengths_to_ints = {}
                
@@ -517,7 +520,7 @@ def main():
        
        if not Draw.PupBlock('Lightmap Pack', [\
        'Context...',
-       ('Active Object', PREF_ACT_ONLY, 'If disabled, use all objects for packing the lightmap.'),\
+       ('Active Object', PREF_ACT_ONLY, 'If disabled, include other selected objects for packing the lightmap.'),\
        ('Selected Faces', PREF_SEL_ONLY, 'Use only selected faces from all selected meshes.'),\
        'Image & UVs...',
        ('Share Tex Space', PREF_PACK_IN_ONE, 'Objects Share texture space, map all objects into 1 uvmap'),\
@@ -538,7 +541,7 @@ def main():
                        return
                meshes = [ ob.getData(mesh=1) ]
        else:
-               meshes = dict([ (me.name, me) for ob in scn.objects.context for me in (ob.getData(mesh=1),) if not me.lib])
+               meshes = dict([ (me.name, me) for ob in scn.objects.context if ob.type == 'Mesh' for me in (ob.getData(mesh=1),) if not me.lib if len(me.faces)])
                meshes = meshes.values()
                if not meshes:
                        Draw.PupMenu('Error%t|No mesh objects selected.')
index 4d1c07836dcace557113c17b18178cf5c1f4bd44..f76cdbc64b7081778938a51de291a3a0fe2e66c9 100644 (file)
@@ -40,11 +40,11 @@ extern "C" {
 struct ListBase;
 struct MemFile;
 
-#define BLENDER_VERSION                        245
-#define BLENDER_SUBVERSION             17
+#define BLENDER_VERSION                        246
+#define BLENDER_SUBVERSION             0
 
-#define BLENDER_MINVERSION             240
-#define BLENDER_MINSUBVERSION  0
+#define BLENDER_MINVERSION             245
+#define BLENDER_MINSUBVERSION  15
 
 int    BKE_read_file(char *dir, void *type_r);
 int BKE_read_file_from_memory(char* filebuf, int filelength, void *type_r);
index d4fb2dbc8bf40a5c5d520797cc8902b29cacef8a..0dfc8ae6b28704ddfe0bd1f25ce80bab390fc4b8 100644 (file)
@@ -150,7 +150,7 @@ void add_cube(PROCESS *mbproc, int i, int j, int k, int count);
 void find_first_points(PROCESS *mbproc, struct MetaBall *mb, int a);
 
 void fill_metaball_octal_node(octal_node *node, struct MetaElem *ml, short i);
-void subdivide_metaball_octal_node(octal_node *node, float *size, short depth);
+void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, float size_z, short depth);
 void free_metaball_octal_node(octal_node *node);
 void init_metaball_octal_tree(int depth);
 void polygonize(PROCESS *mbproc, struct MetaBall *mb);
index 974754968656a4def51f9474502fd0b29f3e6182..1f8dd74a6ebd333cd266f6e739b63a3ece142979 100644 (file)
@@ -881,8 +881,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
 
                                if(part->draw_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) {
                                        for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) {
-
-                                               Mat4MulMat4(tmat, obmat, pamat);
+                                               Mat4MulMat4(tmat, oblist[b]->obmat, pamat);
                                                Mat4MulFloat3((float *)tmat, size*scale);
                                                if(par_space_mat)
                                                        Mat4MulMat4(mat, tmat, par_space_mat);
@@ -890,7 +889,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
                                                        Mat4CpyMat4(mat, tmat);
 
                                                dob= new_dupli_object(lb, go->ob, mat, par->lay, counter, OB_DUPLIPARTS, animated);
-                                               Mat4CpyMat4(dob->omat, oldobmat);
+                                               Mat4CpyMat4(dob->omat, obcopylist[b].obmat);
                                                if(G.rendering)
                                                        psys_get_dupli_texture(par, part, psmd, pa, cpa, dob->uv, dob->orco);
                                        }
index 81f496e97d6dfbdeb518b2a3e0305e1e4980dc23..aca51e56c6e5363fd4d3cf84534abe0d5ce2a048 100644 (file)
@@ -621,7 +621,8 @@ void BKE_write_undo(char *name)
        }
 }
 
-/* 1= an undo, -1 is a redo. we have to make sure 'curundo' remains at current situation */
+/* 1= an undo, -1 is a redo. we have to make sure 'curundo' remains at current situation
+ * Note, ALWAYS call sound_initialize_sounds after BKE_undo_step() */
 void BKE_undo_step(int step)
 {
        
index 0db327f6efb4960287980c4284ebb06898c4f854..d02a7c0ab9e617c4f9ba255f70219f16fdef9e9d 100644 (file)
@@ -583,7 +583,7 @@ static void basisNurb(float t, short order, short pnts, float *knots, float *bas
 
        /* this is for float inaccuracy */
        if(t < knots[0]) t= knots[0];
-       else if(t > knots[opp2]) t= knots[opp2]; /* Valgrind reports an error here, use a nurbs torus and change u/v res to reproduce a crash TODO*/
+       else if(t > knots[opp2]) t= knots[opp2];
 
        /* this part is order '1' */
         o2 = order + 1;
@@ -1476,7 +1476,9 @@ void makeBevelList(Object *ob)
        else nu= cu->nurb.first;
        
        while(nu) {
-               if(nu->pntsu<=1) {
+               /* check we are a single point? also check we are not a surface and that the orderu is sane,
+                * enforced in the UI but can go wrong possibly */
+               if(nu->pntsu<2 || ((nu->type & 7)==CU_NURBS && nu->pntsu < nu->orderu)) {
                        bl= MEM_callocN(sizeof(BevList)+1*sizeof(BevPoint), "makeBevelList");
                        BLI_addtail(&(cu->bev), bl);
                        bl->nr= 0;
index 663c94e51553233b702aa68d720e2b14d08a2038..3644a50b799a8fd752a63343f8b6ffaa625441ff 100644 (file)
@@ -1241,7 +1241,8 @@ void CustomData_em_copy_data(const CustomData *source, CustomData *dest,
                if(dest_i >= dest->totlayer) return;
 
                /* if we found a matching layer, copy the data */
-               if(dest->layers[dest_i].type == source->layers[src_i].type) {
+               if(dest->layers[dest_i].type == source->layers[src_i].type &&
+                       strcmp(dest->layers[dest_i].name, source->layers[src_i].name) == 0) {
                        char *src_data = (char*)src_block + source->layers[src_i].offset;
                        char *dest_data = (char*)*dest_block + dest->layers[dest_i].offset;
 
index 6f5660b2a3f58dbdc8f44f53d151b19699243395..aa43644105688601834530d7b52bfcd0443d6fcc 100644 (file)
@@ -783,7 +783,7 @@ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase)
                        else
                                resolu= nu->resolu;
                        
-                       if(nu->pntsu<2);
+                       if(nu->pntsu<2 || ((nu->type & 7)==CU_NURBS && nu->pntsu < nu->orderu));
                        else if((nu->type & 7)==CU_BEZIER) {
                                
                                /* count */
@@ -1171,7 +1171,7 @@ static ModifierData *curve_get_tesselate_point(Object *ob, int forRender, int ed
                if ((md->mode & required_mode) != required_mode) continue;
                if (mti->isDisabled && mti->isDisabled(md)) continue;
 
-               if (md->type==eModifierType_Hook || md->type==eModifierType_Softbody) {
+               if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
                        preTesselatePoint  = md;
                }
        }
index bc44bfa988df74a1998cb5ecac7c38046f0e6359..b2557c9c07efb4248381d6016fa347c98183e975 100644 (file)
@@ -990,8 +990,11 @@ static void stampdata(StampData *stamp_data, int do_prefix)
        }
 
        if (G.scene->r.stamp & R_STAMP_CAMERA) {
-               if (do_prefix)          sprintf(stamp_data->camera, "Camera %s", ((Camera *) G.scene->camera)->id.name+2);
-               else                            sprintf(stamp_data->camera, "%s", ((Camera *) G.scene->camera)->id.name+2);
+               if (G.scene->camera) strcpy(text, ((Camera *) G.scene->camera)->id.name+2);
+               else            strcpy(text, "<none>");
+               
+               if (do_prefix)          sprintf(stamp_data->camera, "Camera %s", text);
+               else                            sprintf(stamp_data->camera, "%s", text);
        } else {
                stamp_data->camera[0] = '\0';
        }
index 242bcbf66d89f6691a6a379114278116d4f214c4..79205814ae7046cca15ae408cfd9b6bdeb6fc73a 100644 (file)
@@ -1374,36 +1374,37 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a)
                                        nz = abs((out.z - in.z)/mbproc->size);
                                        
                                        MAXN = MAX3(nx,ny,nz);
+                                       if(MAXN!=0.0f) {
+                                               dx = (out.x - in.x)/MAXN;
+                                               dy = (out.y - in.y)/MAXN;
+                                               dz = (out.z - in.z)/MAXN;
+
+                                               len = 0.0;
+                                               while(len<=max_len) {
+                                                       workp.x += dx;
+                                                       workp.y += dy;
+                                                       workp.z += dz;
+                                                       /* compute value of implicite function */
+                                                       tmp_v = mbproc->function(workp.x, workp.y, workp.z);
+                                                       /* add cube to the stack, when value of implicite function crosses zero value */
+                                                       if((tmp_v<0.0 && workp_v>=0.0)||(tmp_v>0.0 && workp_v<=0.0)) {
+
+                                                               /* indexes of CUBE, which includes "first point" */
+                                                               c_i= (int)floor(workp.x/mbproc->size);
+                                                               c_j= (int)floor(workp.y/mbproc->size);
+                                                               c_k= (int)floor(workp.z/mbproc->size);
+                                                               
+                                                               /* add CUBE (with indexes c_i, c_j, c_k) to the stack,
+                                                                * this cube includes found point of Implicit Surface */
+                                                               if (ml->flag & MB_NEGATIVE)
+                                                                       add_cube(mbproc, c_i, c_j, c_k, 2);
+                                                               else
+                                                                       add_cube(mbproc, c_i, c_j, c_k, 1);
+                                                       }
+                                                       len = sqrt((workp.x-in.x)*(workp.x-in.x) + (workp.y-in.y)*(workp.y-in.y) + (workp.z-in.z)*(workp.z-in.z));
+                                                       workp_v = tmp_v;
 
-                                       dx = (out.x - in.x)/MAXN;
-                                       dy = (out.y - in.y)/MAXN;
-                                       dz = (out.z - in.z)/MAXN;
-
-                                       len = 0.0;
-                                       while(len<=max_len) {
-                                               workp.x += dx;
-                                               workp.y += dy;
-                                               workp.z += dz;
-                                               /* compute value of implicite function */
-                                               tmp_v = mbproc->function(workp.x, workp.y, workp.z);
-                                               /* add cube to the stack, when value of implicite function crosses zero value */
-                                               if((tmp_v<0.0 && workp_v>=0.0)||(tmp_v>0.0 && workp_v<=0.0)) {
-
-                                                       /* indexes of CUBE, which includes "first point" */
-                                                       c_i= (int)floor(workp.x/mbproc->size);
-                                                       c_j= (int)floor(workp.y/mbproc->size);
-                                                       c_k= (int)floor(workp.z/mbproc->size);
-                                                       
-                                                       /* add CUBE (with indexes c_i, c_j, c_k) to the stack,
-                                                        * this cube includes found point of Implicit Surface */
-                                                       if (ml->flag & MB_NEGATIVE)
-                                                               add_cube(mbproc, c_i, c_j, c_k, 2);
-                                                       else
-                                                               add_cube(mbproc, c_i, c_j, c_k, 1);
                                                }
-                                               len = sqrt((workp.x-in.x)*(workp.x-in.x) + (workp.y-in.y)*(workp.y-in.y) + (workp.z-in.z)*(workp.z-in.z));
-                                               workp_v = tmp_v;
-
                                        }
                                }
                        }
@@ -1709,15 +1710,13 @@ void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i)
  *  +------+------+
  *  
  */
-void subdivide_metaball_octal_node(octal_node *node, float *size, short depth)
+void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, float size_z, short depth)
 {
        MetaElem *ml;
        ml_pointer *ml_p;
        float x,y,z;
        int a,i;
 
-       if(depth==0) return;
-
        /* create new nodes */
        for(a=0;a<8;a++){
                node->nodes[a]= MEM_mallocN(sizeof(octal_node),"octal_node");
@@ -1731,45 +1730,71 @@ void subdivide_metaball_octal_node(octal_node *node, float *size, short depth)
                node->nodes[a]->pos= 0;
        }
 
-       size[0]/=2; size[1]/=2; size[2]/=2;
+       size_x /= 2;
+       size_y /= 2;
+       size_z /= 2;
        
        /* center of node */
-       node->x= x= node->x_min + size[0];
-       node->y= y= node->y_min + size[1];
-       node->z= z= node->z_min + size[2];
+       node->x = x = node->x_min + size_x;
+       node->y = y = node->y_min + size_y;
+       node->z = z = node->z_min + size_z;
 
        /* setting up of border points of new nodes */
-       node->nodes[0]->x_min= node->x_min;
-       node->nodes[0]->y_min= node->y_min;
-       node->nodes[0]->z_min= node->z_min;
-       
-       node->nodes[1]->x_min= x;
-       node->nodes[1]->y_min= node->y_min;
-       node->nodes[1]->z_min= node->z_min;
-
-       node->nodes[2]->x_min= x;
-       node->nodes[2]->y_min= y;
-       node->nodes[2]->z_min= node->z_min;
-
-       node->nodes[3]->x_min= node->x_min;
-       node->nodes[3]->y_min= y;
-       node->nodes[3]->z_min= node->z_min;
-
-       node->nodes[4]->x_min= node->x_min;
-       node->nodes[4]->y_min= node->y_min;
-       node->nodes[4]->z_min= z;
-       
-       node->nodes[5]->x_min= x;
-       node->nodes[5]->y_min= node->y_min;
-       node->nodes[5]->z_min= z;
-
-       node->nodes[6]->x_min= x;
-       node->nodes[6]->y_min= y;
-       node->nodes[6]->z_min= z;
-
-       node->nodes[7]->x_min= node->x_min;
-       node->nodes[7]->y_min= y;
-       node->nodes[7]->z_min= z;
+       node->nodes[0]->x_min = node->x_min;
+       node->nodes[0]->y_min = node->y_min;
+       node->nodes[0]->z_min = node->z_min;
+       node->nodes[0]->x = node->nodes[0]->x_min + size_x/2;
+       node->nodes[0]->y = node->nodes[0]->y_min + size_y/2;
+       node->nodes[0]->z = node->nodes[0]->z_min + size_z/2;
+       
+       node->nodes[1]->x_min = x;
+       node->nodes[1]->y_min = node->y_min;
+       node->nodes[1]->z_min = node->z_min;
+       node->nodes[1]->x = node->nodes[1]->x_min + size_x/2;
+       node->nodes[1]->y = node->nodes[1]->y_min + size_y/2;
+       node->nodes[1]->z = node->nodes[1]->z_min + size_z/2;
+
+       node->nodes[2]->x_min = x;
+       node->nodes[2]->y_min = y;
+       node->nodes[2]->z_min = node->z_min;
+       node->nodes[2]->x = node->nodes[2]->x_min + size_x/2;
+       node->nodes[2]->y = node->nodes[2]->y_min + size_y/2;
+       node->nodes[2]->z = node->nodes[2]->z_min + size_z/2;
+
+       node->nodes[3]->x_min = node->x_min;
+       node->nodes[3]->y_min = y;
+       node->nodes[3]->z_min = node->z_min;
+       node->nodes[3]->x = node->nodes[3]->x_min + size_x/2;
+       node->nodes[3]->y = node->nodes[3]->y_min + size_y/2;
+       node->nodes[3]->z = node->nodes[3]->z_min + size_z/2;
+
+       node->nodes[4]->x_min = node->x_min;
+       node->nodes[4]->y_min = node->y_min;
+       node->nodes[4]->z_min = z;
+       node->nodes[4]->x = node->nodes[4]->x_min + size_x/2;
+       node->nodes[4]->y = node->nodes[4]->y_min + size_y/2;
+       node->nodes[4]->z = node->nodes[4]->z_min + size_z/2;
+       
+       node->nodes[5]->x_min = x;
+       node->nodes[5]->y_min = node->y_min;
+       node->nodes[5]->z_min = z;
+       node->nodes[5]->x = node->nodes[5]->x_min + size_x/2;
+       node->nodes[5]->y = node->nodes[5]->y_min + size_y/2;
+       node->nodes[5]->z = node->nodes[5]->z_min + size_z/2;
+
+       node->nodes[6]->x_min = x;
+       node->nodes[6]->y_min = y;
+       node->nodes[6]->z_min = z;
+       node->nodes[6]->x = node->nodes[6]->x_min + size_x/2;
+       node->nodes[6]->y = node->nodes[6]->y_min + size_y/2;
+       node->nodes[6]->z = node->nodes[6]->z_min + size_z/2;
+
+       node->nodes[7]->x_min = node->x_min;
+       node->nodes[7]->y_min = y;
+       node->nodes[7]->z_min = z;
+       node->nodes[7]->x = node->nodes[7]->x_min + size_x/2;
+       node->nodes[7]->y = node->nodes[7]->y_min + size_y/2;
+       node->nodes[7]->z = node->nodes[7]->z_min + size_z/2;
 
        ml_p= node->elems.first;
        
@@ -1936,7 +1961,7 @@ void subdivide_metaball_octal_node(octal_node *node, float *size, short depth)
        if(depth>0){
                for(a=0;a<8;a++){
                        if(node->nodes[a]->count > 0) /* if node is not empty, then it is subdivided */
-                               subdivide_metaball_octal_node(node->nodes[a], size, depth);
+                               subdivide_metaball_octal_node(node->nodes[a], size_x, size_y, size_z, depth);
                }
        }
 }
@@ -2008,7 +2033,7 @@ void init_metaball_octal_tree(int depth)
        size[2]= node->z_max - node->z_min;
 
        /* first node is subdivided recursively */
-       subdivide_metaball_octal_node(node, size, metaball_tree->depth);
+       subdivide_metaball_octal_node(node, size[0], size[1], size[2], metaball_tree->depth);
 }
 
 void metaball_polygonize(Object *ob)
index b481055ff16d55857822d6395155e550cc4e4b2e..fa54b0458d5b42dbb357035f84f6d08b6d53cfbe 100644 (file)
@@ -1250,7 +1250,8 @@ static DerivedMesh *arrayModifier_applyModifier(
 
        result = arrayModifier_doArray(amd, ob, derivedData, 0);
 
-       CDDM_calc_normals(result);
+       if(result != derivedData)
+               CDDM_calc_normals(result);
 
        return result;
 }
@@ -2676,7 +2677,8 @@ static DerivedMesh *edgesplitModifier_applyModifier(
 
        result = edgesplitModifier_do(emd, ob, derivedData);
 
-       CDDM_calc_normals(result);
+       if(result != derivedData)
+               CDDM_calc_normals(result);
 
        return result;
 }
@@ -6931,8 +6933,16 @@ static void meshdeformModifier_do(
        Mat3CpyMat4(icagemat, iobmat);
 
        /* bind weights if needed */
-       if(!mmd->bindcos)
-               harmonic_coordinates_bind(mmd, vertexCos, numVerts, cagemat);
+       if(!mmd->bindcos) {
+               static int recursive = 0;
+
+               /* progress bar redraw can make this recursive .. */
+               if(!recursive) {
+                       recursive = 1;
+                       harmonic_coordinates_bind(mmd, vertexCos, numVerts, cagemat);
+                       recursive = 0;
+               }
+       }
 
        /* verify we have compatible weights */
        totvert= numVerts;
index 28c3e1c64e6f5b91a39ced6e2cce28cc6c88e1bd..4e36df35a1492022a66b1cce81ddd856241e2076 100644 (file)
@@ -1989,7 +1989,7 @@ void ntreeEndExecTree(bNodeTree *ntree)
                if(ntree->threadstack) {
                        for(a=0; a<BLENDER_MAX_THREADS; a++) {
                                for(nts=ntree->threadstack[a].first; nts; nts=nts->next)
-                                       MEM_freeN(nts->stack);
+                                       if (nts->stack) MEM_freeN(nts->stack);
                                BLI_freelistN(&ntree->threadstack[a]);
                        }
 
index fec3da752ff6bdb576b88be4c04649bcf29236dc..18fca5439efe4acea0a80505f1c43040601f7dca 100644 (file)
@@ -2401,8 +2401,11 @@ void psys_cache_paths(Object *ob, ParticleSystem *psys, float cfra, int editupda
                psys->pathcache= cache;
        }
 
-       if(edit==NULL && psys->soft && psys->softflag & OB_SB_ENABLE)
+       if(edit==NULL && psys->soft && psys->softflag & OB_SB_ENABLE) {
                soft = psys->soft;
+               if(!soft->bpoint)
+                       soft= NULL;
+       }
        
        psys->lattice = psys_get_lattice(ob, psys);
        ma= give_current_material(ob, psys->part->omat);
index 768f5ff980e3d039b6b8d9825bf96622fbd9280c..9005db1312fa47c1c680033d9676bda0d94b993b 100644 (file)
@@ -3390,8 +3390,9 @@ static void softbody_update_positions(Object *ob, SoftBody *sb, float (*vertexCo
        int a;
 
        /* update the vertex locations */
-       if(sb->particles) {
+       if(sb->particles && sb->particles->totpart>0) {
                psmd= psys_get_modifier(ob,sb->particles);
+
                pa= sb->particles->particles;
                key= pa->hair;
 
@@ -3434,7 +3435,7 @@ static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int
        float hairmat[4][4];
        int a;
 
-       if(sb->particles) {
+       if(sb->particles && sb->particles->totpart>0) {
                psmd= psys_get_modifier(ob, sb->particles);
                pa= sb->particles->particles;
                key= pa->hair;
index 2f98a305f1c5129c57d8f9390545bdd796246bd2..629de5953456b31821a9b9ed8313ccc5f9c70752 100644 (file)
@@ -7380,6 +7380,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                
                                /* needed for proper libdata lookup */
                                oldnewmap_insert(fd->libmap, psys->part, psys->part, 0);
+                               part->id.lib= ob->id.lib;
 
                                part->id.us--;
                                part->id.flag |= (ob->id.flag & LIB_NEEDLINK);
index c6482290c86aea9461a729f5ee81e237b371dce4..058e4243b960c6216c20c767f1b4d7157bd171f3 100644 (file)
@@ -363,6 +363,8 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
 #define B_SET_ZBLUR                    1644
 #define B_ADD_RENDERLAYER      1645
 #define B_SET_PASS                     1646
+#define B_ADD_FFMPEG_VIDEO_OPTION     1647
+#define B_ADD_FFMPEG_AUDIO_OPTION     1648
 
 #define B_SEQ_BUT_PLUGIN       1691
 #define B_SEQ_BUT_RELOAD       1692
index de89c0e51cb9488b8121579c63da1b0bf37f722b..83168248b9a096f01c330783f013a963b3b0e259 100644 (file)
@@ -59,6 +59,27 @@ typedef struct bDeformGroup {
        char name[32];
 } bDeformGroup;
 
+/**
+ * The following illustrates the orientation of the 
+ * bounding box in local space
+ * 
+ *  
+ * Z  Y
+ * | /
+ * |/
+ * .-----X
+ * 
+ * 
+ *     2----------6
+ *    /|         /|
+ *   / |        / |
+ *  1----------5  |
+ *  |  |       |  |
+ *  |  3-------|--7
+ *  | /        | /
+ *  |/         |/
+ *  0----------4
+ */
 typedef struct BoundBox {
        float vec[8][3];
        int flag, pad;
index 512e68176665a91691510518cd3fd0be1762e5f7..acba9ae2d1d4e096d7656448cce2adcf00aa33e3 100644 (file)
@@ -26,7 +26,6 @@ if sys.platform != 'cygwin':
     makesdna_tool.Append (CCFLAGS = cflags)
 makesdna_tool.Append (CPPDEFINES = defines)
 makesdna_tool.Append (LIBPATH = '#'+root_build_dir+'/lib')
-makesdna_tool.Append (LINKFLAGS = env['PLATFORM_LINKFLAGS'])
 if env['BF_PROFILE']:
        makesdna_tool.Append (LINKFLAGS = env['BF_PROFILE_FLAGS'])
 
index 6cd1c5981a6300346ff4643b22db9746af98a8a9..ff9e2b716ce902be6ad317c7a02e9326ab16522e 100644 (file)
@@ -46,7 +46,8 @@ static void do_gamma(bNode *node, float *out, float *in, float *fac)
 {
        int i=0;
        for(i=0; i<3; i++) {
-               out[i] = pow(in[i],fac[0]);
+               /* check for negative to avoid nan's */
+               out[i] = (in[0] > 0.0f)? pow(in[i],fac[0]): in[0];
        }
        out[3] = in[3];
 }
index 78f780c43b11c624d0bcb4f79a3b8992982f7e49..49473b213cec9183fc0a90e839e7bfd62b149f01 100644 (file)
@@ -239,6 +239,27 @@ static void node_dynamic_reset(bNode *node, int unlink_text)
        tinfo = node->typeinfo;
        tinfo_default = node_dynamic_find_typeinfo(&node_all_shaders, NULL);
 
+       if ((tinfo == tinfo_default) && unlink_text) {
+               ID *textID = node->id;
+       /* already at default (empty) state, which happens if this node's
+        * script failed to parse at the first stage: definition. We're here
+        * because its text was removed from Blender. */
+               for (ma= G.main->mat.first; ma; ma= ma->id.next) {
+                       if (ma->nodetree) {
+                               bNode *nd;
+                               for (nd= ma->nodetree->nodes.first; nd; nd = nd->next) {
+                                       if (nd->id == textID) {
+                                               nd->id = NULL;
+                                               nd->custom1 = 0;
+                                               nd->custom1 = BSET(nd->custom1, NODE_DYNAMIC_NEW);
+                                               BLI_strncpy(nd->name, "Dynamic", 8);
+                                               return;
+                                       }
+                               }
+                       }
+               }
+       }
+
        node_dynamic_rem_all_links(tinfo);
        node_dynamic_free_typeinfo_sockets(tinfo);
 
index 728d31398a91ebb53d50d99f09a2f6e5fb607d8a..cc477c7b5cf4b7e7657ba8bae4cbe4a3faa07b53 100644 (file)
@@ -803,7 +803,7 @@ static int ActionStrip_setBlendMode( BPy_ActionStrip * self, PyObject * value )
 
 #define ACTIONSTRIP_MASK (ACTSTRIP_SELECT | ACTSTRIP_USESTRIDE \
                | ACTSTRIP_HOLDLASTFRAME | ACTSTRIP_ACTIVE | ACTSTRIP_LOCK_ACTION \
-               | ACTSTRIP_MUTE)
+               | ACTSTRIP_MUTE | ACTSTRIP_CYCLIC_USEX | ACTSTRIP_CYCLIC_USEY | ACTSTRIP_CYCLIC_USEZ | ACTSTRIP_AUTO_BLENDS)
 
 static PyObject *ActionStrip_getFlag( BPy_ActionStrip * self )
 {
@@ -1169,18 +1169,16 @@ static PyObject *M_ActionStrip_FlagsDict( void )
        
        if( S ) {
                BPy_constant *d = ( BPy_constant * ) S;
-               PyConstant_Insert( d, "SELECT",
-                               PyInt_FromLong( ACTSTRIP_SELECT ) );
-               PyConstant_Insert( d, "STRIDE_PATH",
-                               PyInt_FromLong( ACTSTRIP_USESTRIDE ) );
-               PyConstant_Insert( d, "HOLD",
-                               PyInt_FromLong( ACTSTRIP_HOLDLASTFRAME ) );
-               PyConstant_Insert( d, "ACTIVE",
-                               PyInt_FromLong( ACTSTRIP_ACTIVE ) );
-               PyConstant_Insert( d, "LOCK_ACTION",
-                               PyInt_FromLong( ACTSTRIP_LOCK_ACTION ) );
-               PyConstant_Insert( d, "MUTE",
-                               PyInt_FromLong( ACTSTRIP_MUTE ) );
+               PyConstant_Insert( d, "SELECT",                 PyInt_FromLong( ACTSTRIP_SELECT ) );
+               PyConstant_Insert( d, "STRIDE_PATH",    PyInt_FromLong( ACTSTRIP_USESTRIDE ) );
+               PyConstant_Insert( d, "HOLD",                   PyInt_FromLong( ACTSTRIP_HOLDLASTFRAME ) );
+               PyConstant_Insert( d, "ACTIVE",                 PyInt_FromLong( ACTSTRIP_ACTIVE ) );
+               PyConstant_Insert( d, "LOCK_ACTION",    PyInt_FromLong( ACTSTRIP_LOCK_ACTION ) );
+               PyConstant_Insert( d, "MUTE",                   PyInt_FromLong( ACTSTRIP_MUTE ) );
+               PyConstant_Insert( d, "USEX",                   PyInt_FromLong( ACTSTRIP_CYCLIC_USEX ) );
+               PyConstant_Insert( d, "USEY",                   PyInt_FromLong( ACTSTRIP_CYCLIC_USEY ) );
+               PyConstant_Insert( d, "USEZ",                   PyInt_FromLong( ACTSTRIP_CYCLIC_USEZ ) );
+               PyConstant_Insert( d, "AUTO_BLEND",     PyInt_FromLong( ACTSTRIP_AUTO_BLENDS ) );
        }
        return S;
 }
index 24df6de66ccf62f6f34f9256ae4375795a007e5b..92529023b7e44afeb186027dbb3489f5585cf307 100644 (file)
@@ -919,6 +919,8 @@ static int sockoutmap_set_attr(bNodeStack **stack, short type, short idx, PyObje
        int i;
        short len, wanted_len;
 
+       if (!stack || !stack[idx]) return 0; /* no MaterialNode */
+
        if (type == SOCK_VALUE) {
                val = PyNumber_Float(value);
                if (!val)
index 061084da622ee7c23d14b91cf1bbef2f1751ac80..fe789fb48111d56222818f38863e6e30f36450c3 100644 (file)
@@ -1240,6 +1240,7 @@ static PyObject *M_Window_QHandle( PyObject * self, PyObject * args )
 static PyObject *M_Window_TestBreak( PyObject * self )
 {
        if (blender_test_break()) {
+               G.afbreek= 0;
                Py_RETURN_TRUE;
        } else {
                Py_RETURN_FALSE;
index ec1d42bce43f7423d112a4a04b35fe0ba02d399c..2960d8ed1d25d0d0dea19da2ddcf0fd3c99e0df1 100644 (file)
@@ -4,9 +4,7 @@
 The Blender Python API Reference
 ================================
 
-       An asterisk (*) means the module has been updated.
-
-       for a full list of changes since 2.42 see U{http://mediawiki.blender.org/index.php/Release_Notes/Notes243/Python_API}
+       for a full list of changes since 2.45 see U{http://wiki.blender.org/index.php/Release_Notes/Notes246/Python_API}
 
        Top Module:
        -----------
@@ -16,61 +14,53 @@ The Blender Python API Reference
 
        Submodules:
        -----------
-               - L{Armature} (*)
+               - L{Armature}
                        - L{NLA}
                        - L{Action<NLA.Action>}
-               - L{BezTriple} (*)
+               - L{BezTriple}
                - L{BGL}
-               - L{Camera} (*)
-               - L{Curve} (*)
-               - L{Draw} (*)
+               - L{Camera}
+               - L{Curve}
+               - L{Draw}
                - L{Effect}
-               - L{Geometry} (*)
-               - L{Group} (*)
-               - L{Image} (*)
-               - L{Ipo} (*)
-               - L{IpoCurve} (*)
-               - L{Key} (*)
+               - L{Geometry}
+               - L{Group}
+               - L{Image}
+               - L{Ipo}
+               - L{IpoCurve}
+               - L{Key}
                - L{Lamp}
-               - L{Lattice} (*)
-               - L{Library} (*)
-               - L{Material} (*)
-               - L{Mathutils} (*)
-               - L{Mesh} (*)
-                 - L{MeshPrimitives} (*)
-               - L{Metaball} (*)
+               - L{Lattice}
+               - L{Library}
+               - L{Material}
+               - L{Mathutils}
+               - L{Mesh}
+                 - L{MeshPrimitives}
+               - L{Metaball}
                - L{NMesh} (deprecated)
                - L{Noise}
-               - L{Object} (*)
-                       - L{Modifier} (*)
-                       - L{Pose} (*)
-                       - L{Constraint} (*)
-                       - L{ActionStrips<NLA>} (*)
+               - L{Object}
+                       - L{Modifier}
+                       - L{Pose}
+                       - L{Constraint}
+                       - L{ActionStrips<NLA>}
                - L{Particle}
                - L{Registry}
-               - L{Scene} (*)
+               - L{Scene}
                        - L{Radio}
-                       - L{Render} (*)
-               - L{Sound} (*)
+                       - L{Render}
+               - L{Sound}
                - L{Text}
                - L{Text3d}
                        - L{Font}
-               - L{Texture} (*)
+               - L{Texture}
                - L{TimeLine}
                - L{Types}
                - L{Window}
-                       - L{Theme} (*)
+                       - L{Theme}
                - L{World}
                - L{sys<Sys>}
 
-       Additional information:
-       -----------------------
-
-               - L{Special features<API_related>}:
-               - scripts: registering in menus, documenting, configuring (new);
-               - command line examples (new);
-               - script links (*), space handler script links, Group module (new).
-
 Introduction:
 =============
 
@@ -226,9 +216,8 @@ A note to newbie script writers:
        to get an idea of what can be done, you may be surprised.
 
 @author: The Blender Python Team
-@requires: Blender 2.43 or newer.
-@version: 2.43
-@see: U{www.blender3d.org<http://www.blender3d.org>}: main site
+@requires: Blender 2.46 or newer.
+@version: 2.46
 @see: U{www.blender.org<http://www.blender.org>}: documentation and forum
 @see: U{blenderartists.org<http://blenderartists.org>}: user forum
 @see: U{projects.blender.org<http://projects.blender.org>}
@@ -238,9 +227,9 @@ A note to newbie script writers:
 @see: U{Blending into Python<en.wikibooks.org/wiki/Blender_3D:_Blending_Into_Python>}: User contributed documentation, featuring a blender/python cookbook with many examples.
 
 @note: the official version of this reference guide is only updated for each
-       new Blender release.  But you can build the current CVS
+       new Blender release.  But you can build the current SVN
        version yourself: install epydoc, grab all files in the
-       source/blender/python/api2_2x/doc/ folder of Blender's CVS and use the
+       source/blender/python/api2_2x/doc/ folder of Blender's SVN and use the
        epy_docgen.sh script also found there to generate the html docs.
        Naturally you will also need a recent Blender binary to try the new
        features.  If you prefer not to compile it yourself, there is a testing
index 40bf9001a766422d5c13fad508f10b301a178722..964b8f70e8bb18a5d42fc6a459db73deef201342 100644 (file)
@@ -116,6 +116,14 @@ def Get (request):
   @return: The requested data or None if not found.
   """
 
+def GetPaths (absolute=0):
+  """
+  Returns a list of files this blend file uses: (libraries, images, sounds, fonts, sequencer movies).
+  @type absolute: bool
+  @param absolute: When true, the absolute paths of every file will be returned.
+  @return: A list for paths (strings) that this blend file uses.
+  """
+
 def Redraw ():
   """
   Redraw all 3D windows.
@@ -245,4 +253,4 @@ def SaveUndoState (message):
   Sets an undo at the current state.
   @param message: Message that appiers in the undo menu
   @type message: string
-  """
\ No newline at end of file
+  """
index d8bd7be656684c67c85e4ab05e0fbe7740809bdc..4a53f869283b61db8a5605a92879d6fd8423f490 100644 (file)
@@ -667,6 +667,8 @@ class MFaceSeq:
                True, the method will return a list representing the new index for each
                face in the input list.  If faces are removed as duplicates, None is
                inserted in place of the index.
+               @type smooth: boolean
+               @param smooth: keyword parameter (default is False).  If supplied new faces will have smooth enabled.
                @warning: Faces using the first vertex at the 3rd or 4th location in the
                face's vertex list will have their order rotated so that the zero index
                on in the first or second location in the face. When creating face data
index aeb5178f3d7a12ea32f703a9aa74fadde74dda1d..0e30bfb118f59bc95c0e6c8875248a636bad2c2b 100644 (file)
@@ -19,7 +19,11 @@ It is a bitmask and settings are ORed together.
        - ACTIVE: action strip is active in NLA window
        - LOCK_ACTION: action start/end are automatically mapped to strip duration
        - MUTE: action strip does not contribute to the NLA solution
-
+       - USEX: Turn off automatic single-axis cycling and use X as an offset axis.  Note that you can use multiple axes at once.
+       - USEY: Turn off automatic single-axis cycling and use Y as an offset axis.  Note that you can use multiple axes at once.
+       - USEZ: Turn off automatic single-axis cycling and use Z as an offset axis.  Note that you can use multiple axes at once.
+       - AUTO_BLEND: Automatic calculation of blend in/out values
+       
 @type StrideAxes: readonly dictionary
 @var StrideAxes: Constant dict used by the L{ActionStrip.strideAxis} attribute.
 Values are STRIDEAXIS_X, STRIDEAXIS_Y, and STRIDEAXIS_Z.
index cf886ad27f1072d2f1839215dfc56d906b553ab8..475a4fc5b10c902cbf5dc9078d0b9c3b7dff98f8 100644 (file)
@@ -399,6 +399,16 @@ class RenderData:
   @type bakeDist: float
   @ivar bakeBias: The distance in blender units to bias faces further away from the object.
   @type bakeBias: float
+  @ivar halfFloat: When enabled use 16bit floats rather then 32bit for OpenEXR files.
+  @type halfFloat: bool
+  @ivar zbuf: When enabled, save the zbuffer with an OpenEXR file
+  @type zbuf: bool
+  @ivar preview: When enabled, save a preview jpeg with an OpenEXR file
+  @type preview: bool
+  @ivar touch: Create an empty file before rendering it.
+  @type touch: bool
+  @ivar noOverwrite: Skip rendering frames when the file exists.
+  @type noOverwrite: bool
   """
   
   def currentFrame(frame = None):
index db5ad669255bf43b6fcd90a8407625bb4fb329f9..f54c2cd4e3bf595f0788340e38b4c904b036d3b6 100644 (file)
@@ -2005,19 +2005,19 @@ static int RenderData_setIValueAttrClamp( BPy_RenderData *self, PyObject *value,
        case EXPP_RENDER_ATTR_CFRAME:
                min = 1;
                max = MAXFRAME;
-               size = 'h';
+               size = 'i';
                param = &self->renderContext->cfra;
                break;
        case EXPP_RENDER_ATTR_EFRAME:
                min = 1;
                max = MAXFRAME;
-               size = 'h';
+               size = 'i';
                param = &self->renderContext->efra;
                break;
        case EXPP_RENDER_ATTR_SFRAME:
                min = 1;
            max = MAXFRAME;
-               size = 'h';
+               size = 'i';
                param = &self->renderContext->sfra;
                break;
        case EXPP_RENDER_ATTR_FPS:
index d8f6836005b5646331de826c9792b8659c709511..66dc1dd5fef042bcb0d2d19a84c7e024812d1d61 100644 (file)
@@ -177,6 +177,9 @@ void RE_DataBase_ApplyWindow(struct Render *re);
 /* override the scene setting for amount threads, commandline */
 void RE_set_max_threads(int threads);
 
+/* set the render threads based on the commandline and autothreads setting */
+void RE_init_threadcount(Render *re);
+
 /* the main processor, assumes all was set OK! */
 void RE_TileProcessor(struct Render *re, int firsttile, int threaded);
 
index c2d2ea9674530733483435427803e1e53698865c..d7e71b3e5310fdb73aa3e743cd7cc4ac9b47da95 100644 (file)
@@ -265,7 +265,7 @@ typedef struct ObjectRen {
 
        char (*mtface)[32];
        char (*mcol)[32];
-       int  actmtface, actmcol;
+       int  actmtface, actmcol, bakemtface;
 
        float obmat[4][4];      /* only used in convertblender.c, for instancing */
 } ObjectRen;
index 33cad2789c6d6092a0432383801f26daee411552..dbade68ba1dae46675b69c76eb9ddd0630d0ea81 100644 (file)
@@ -5417,6 +5417,9 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
 
        /* renderdata setup and exceptions */
        re->r= scene->r;
+       
+       RE_init_threadcount(re);
+       
        re->flag |= R_GLOB_NOPUNOFLIP;
        re->excludeob= actob;
        if(type == RE_BAKE_LIGHT)
index 12d0efa59e85b8f2dac90cc95bce3ccaf96a77e5..73db5c4b0be798e09cf7ac940f024075d07c772c 100644 (file)
@@ -225,7 +225,7 @@ static void env_rotate_scene(Render *re, float mat[][4], int mode)
        ObjectInstanceRen *obi;
        LampRen *lar = NULL;
        HaloRen *har = NULL;
-       float imat[3][3], pmat[4][4], smat[4][4], tmat[4][4], cmat[3][3];
+       float imat[3][3], pmat[4][4], smat[4][4], tmat[4][4], cmat[3][3], tmpmat[4][4];
        int a;
        
        if(mode==0) {
@@ -239,8 +239,10 @@ static void env_rotate_scene(Render *re, float mat[][4], int mode)
 
        for(obi=re->instancetable.first; obi; obi=obi->next) {
                /* append or set matrix depending on dupli */
-               if(obi->flag & R_DUPLI_TRANSFORMED)
-                       Mat4MulMat4(obi->mat, tmat, obi->mat);
+               if(obi->flag & R_DUPLI_TRANSFORMED) {
+                       Mat4CpyMat4(tmpmat, obi->mat);
+                       Mat4MulMat4(obi->mat, tmat, tmpmat);
+               }
                else if(mode==1)
                        Mat4CpyMat4(obi->mat, tmat);
                else
index ba971d2852499bd0ef0b13b33a445dc540bdc1a5..e9035f29b3ceaa6b18801a787338b57be1316b8c 100644 (file)
@@ -459,7 +459,14 @@ void RE_SetCamera(Render *re, Object *camera)
                
                if(cam->type==CAM_ORTHO) re->r.mode |= R_ORTHO;
                
-               /* updating these values from ipo's/drivers is handeled by the depgraph */
+               /* solve this too... all time depending stuff is in convertblender.c?
+                * Need to update the camera early because it's used for projection matrices
+                * and other stuff BEFORE the animation update loop is done 
+                * */
+               if(cam->ipo) {
+                       calc_ipo(cam->ipo, frame_to_float(re->r.cfra));
+                       execute_ipo(&cam->id, cam->ipo);
+               }
                lens= cam->lens;
                shiftx=cam->shiftx;
                shifty=cam->shifty;
index 93282e641d352c776ec20145d02bd0cda0d65689..fb699f5b38273e7f085c3ff1b279604f4106e313 100644 (file)
@@ -1118,11 +1118,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, int winx, int winy
                /* we clip faces with a minimum of 2 pixel boundary outside of image border. see zbuf.c */
                re->clipcrop= 1.0f + 2.0f/(float)(re->winx>re->winy?re->winy:re->winx);
                
-               if ((rd->mode & R_FIXED_THREADS)==0 || commandline_threads == 0) { /* Automatic threads */
-                       re->r.threads = BLI_system_thread_count();
-               } else if(commandline_threads >= 1 && commandline_threads<=BLENDER_MAX_THREADS) {
-                       re->r.threads= commandline_threads;
-               }
+               RE_init_threadcount(re);
        }
 }
 
@@ -2675,3 +2671,12 @@ void RE_set_max_threads(int threads)
                printf("Error, threads has to be in range 1-%d\n", BLENDER_MAX_THREADS);
        }
 }
+
+void RE_init_threadcount(Render *re) 
+{
+       if ((re->r.mode & R_FIXED_THREADS)==0 || commandline_threads == 0) { /* Automatic threads */
+               re->r.threads = BLI_system_thread_count();
+       } else if(commandline_threads >= 1 && commandline_threads<=BLENDER_MAX_THREADS) {
+               re->r.threads= commandline_threads;
+       }
+}
index 9357a060f6200f6726a495d658c6e5cbaf9128c5..ff31ba8a6eea0d2c952b5117c88d2e475ac1cd60 100644 (file)
@@ -2346,7 +2346,7 @@ static int get_next_bake_face(BakeShade *bs)
                        vlr= RE_findOrAddVlak(obr, v);
 
                        if((bs->actob && bs->actob == obr->ob) || (!bs->actob && (obr->ob->flag & SELECT))) {
-                               tface= RE_vlakren_get_tface(obr, vlr, obr->actmtface, NULL, 0);
+                               tface= RE_vlakren_get_tface(obr, vlr, obr->bakemtface, NULL, 0);
 
                                if(tface && tface->tpage) {
                                        Image *ima= tface->tpage;
@@ -2400,7 +2400,7 @@ static void shade_tface(BakeShade *bs)
        VlakRen *vlr= bs->vlr;
        ObjectInstanceRen *obi= bs->obi;
        ObjectRen *obr= obi->obr;
-       MTFace *tface= RE_vlakren_get_tface(obr, vlr, obr->actmtface, NULL, 0);
+       MTFace *tface= RE_vlakren_get_tface(obr, vlr, obr->bakemtface, NULL, 0);
        Image *ima= tface->tpage;
        float vec[4][2];
        int a, i1, i2, i3;
index 441aa9336be67e86c1eeaf319c3d6cada9f2761b..98b1426e8ff2a6b41c3aba19295ff0818b95575e 100644 (file)
@@ -501,6 +501,7 @@ void RE_set_customdata_names(ObjectRen *obr, CustomData *data)
                if (layer->type == CD_MTFACE) {
                        strcpy(obr->mtface[mtfn++], layer->name);
                        obr->actmtface= layer->active_rnd;
+                       obr->bakemtface= layer->active;
                }
                else if (layer->type == CD_MCOL) {
                        strcpy(obr->mcol[mcn++], layer->name);
index bf2ee3dbdd96036e82d17728dd0fda42cf06df51..7397d623264b7d06a2c338412179d1225f37bfab 100644 (file)
@@ -434,6 +434,8 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
 
                        shi->totuv= 0;
                        shi->totcol= 0;
+                       shi->actuv= obr->actmtface;
+                       shi->actcol= obr->actmcol;
 
                        if(mode & (MA_VERTEXCOL|MA_VERTEXCOLP)) {
                                for (i=0; (mcol=RE_strandren_get_mcol(obr, strand, i, &name, 0)); i++) {
@@ -449,9 +451,9 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
                                }
 
                                if(shi->totcol) {
-                                       shi->vcol[0]= shi->col[0].col[0];
-                                       shi->vcol[1]= shi->col[0].col[1];
-                                       shi->vcol[2]= shi->col[0].col[2];
+                                       shi->vcol[0]= shi->col[shi->actcol].col[0];
+                                       shi->vcol[1]= shi->col[shi->actcol].col[1];
+                                       shi->vcol[2]= shi->col[shi->actcol].col[2];
                                }
                                else {
                                        shi->vcol[0]= 0.0f;
@@ -484,7 +486,7 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
                                        suv->dyuv[1]= 0.0f;
                                }
 
-                               if((mode & MA_FACETEXTURE) && i==0) {
+                               if((mode & MA_FACETEXTURE) && i==obr->actmtface) {
                                        if((mode & (MA_VERTEXCOL|MA_VERTEXCOLP))==0) {
                                                shi->vcol[0]= 1.0f;
                                                shi->vcol[1]= 1.0f;
@@ -995,9 +997,9 @@ void shade_input_set_shade_texco(ShadeInput *shi)
                                }
 
                                if(shi->totcol) {
-                                       shi->vcol[0]= shi->col[0].col[0];
-                                       shi->vcol[1]= shi->col[0].col[1];
-                                       shi->vcol[2]= shi->col[0].col[2];
+                                       shi->vcol[0]= shi->col[shi->actcol].col[0];
+                                       shi->vcol[1]= shi->col[shi->actcol].col[1];
+                                       shi->vcol[2]= shi->col[shi->actcol].col[2];
                                        shi->vcol[3]= 1.0f;
                                }
                                else {
index 0a72f97682504320637f4b0cea8435a12aad2ae5..27628d914653024ac64a3c6d43e830bf524a13dd 100644 (file)
@@ -1844,24 +1844,24 @@ void do_material_tex(ShadeInput *shi)
                                                }
                                        }
                                        else {
+                                               float nor[3], dot;
+
                                                if(shi->mat->mode & MA_TANGENT_V) {
                                                        shi->tang[0]+= Tnor*tex->norfac*texres.nor[0];
                                                        shi->tang[1]+= Tnor*tex->norfac*texres.nor[1];
                                                        shi->tang[2]+= Tnor*tex->norfac*texres.nor[2];
                                                }
-                                               else {
-                                                       float nor[3], dot;
-                                                       /* prevent bump to become negative normal */
-                                                       nor[0]= Tnor*tex->norfac*texres.nor[0];
-                                                       nor[1]= Tnor*tex->norfac*texres.nor[1];
-                                                       nor[2]= Tnor*tex->norfac*texres.nor[2];
-                                                       
-                                                       dot= 0.5f + 0.5f*INPR(nor, shi->vn);
-                                                       
-                                                       shi->vn[0]+= dot*nor[0];
-                                                       shi->vn[1]+= dot*nor[1];
-                                                       shi->vn[2]+= dot*nor[2];
-                                               }
+
+                                               /* prevent bump to become negative normal */
+                                               nor[0]= Tnor*tex->norfac*texres.nor[0];
+                                               nor[1]= Tnor*tex->norfac*texres.nor[1];
+                                               nor[2]= Tnor*tex->norfac*texres.nor[2];
+                                               
+                                               dot= 0.5f + 0.5f*INPR(nor, shi->vn);
+                                               
+                                               shi->vn[0]+= dot*nor[0];
+                                               shi->vn[1]+= dot*nor[1];
+                                               shi->vn[2]+= dot*nor[2];
                                        }                                       
                                        Normalize(shi->vn);
                                        
@@ -2525,6 +2525,8 @@ void render_realtime_texture(ShadeInput *shi, Image *ima)
        ShadeInputUV *suv= &shi->uv[shi->actuv];
        int a;
 
+       if(R.r.scemode & R_NO_TEX) return;
+
        if(firsttime) {
                BLI_lock_thread(LOCK_IMAGE);
                if(firsttime) {
index 39e98c92c39a62e14b357a0dc3dd5c0383609498..bcd373ddbc3dac75563766ed1d76e252e696019f 100644 (file)
@@ -3314,7 +3314,7 @@ static void editing_panel_curve_tools(Object *ob, Curve *cu)
 
        if(ob==G.obedit) {
                nu= lastnu;
-               if(nu==NULL) nu= editNurb.first;
+               if(nu==NULL) nu= lastnu= editNurb.first;
                if(nu) {
                        if (ob->type==OB_CURVE) {
                                uiDefBut(block, LABEL, 0, "Tilt",
@@ -5085,8 +5085,6 @@ static void editing_panel_mesh_tools1(Object *ob, Mesh *me)
        
        uiBlockEndAlign(block);
        
-       uiDefButBitS(block, TOG, B_MESH_X_MIRROR, B_DIFF, "X-axis mirror",1125,0,150,19, &G.scene->toolsettings->editbutflag, 0, 0, 0, 0, "While using transforms, mirrors the transformation");
-       
        uiDefButC(block, MENU, REDRAWBUTSEDIT, "Edge Alt-Select Mode%t|Loop Select%x0|Tag Edges (Seam)%x1|Tag Edges (Sharp)%x2|Tag Edges (Crease)%x3|Tag Edges (Bevel)%x4",1125,88,150,19, &G.scene->toolsettings->edge_mode, 0, 0, 0, 0, "Operation to use when Alt+RMB on edges, Use Alt+Shift+RMB to tag the shortest path from the active edge");
        
        uiBlockBeginAlign(block);
@@ -5536,7 +5534,7 @@ void sculptmode_draw_interface_tools(uiBlock *block, unsigned short cx, unsigned
                uiDefButC(block,ROW,B_NOP,"Sub",cx+89,cy,89,19,&sculptmode_brush()->dir,15.0,2.0,0, 0,"Subtract depth from model [Shift]");
        }
        if(sd->brush_type!=GRAB_BRUSH)
-               uiDefButBitC(block, TOG, SCULPT_BRUSH_AIRBRUSH, 0, "Airbrush", cx+178,cy,89,19, &sculptmode_brush()->flag,0,0,0,0, "Brush makes changes without waiting for the mouse to move");
+               uiDefButBitC(block, TOG, SCULPT_BRUSH_AIRBRUSH, B_NOP, "Airbrush", cx+178,cy,89,19, &sculptmode_brush()->flag,0,0,0,0, "Brush makes changes without waiting for the mouse to move");
        cy-= 20;
        uiDefButS(block,NUMSLI,B_NOP,"Size: ",cx,cy,268,19,&sculptmode_brush()->size,1.0,200.0,0,0,"Set brush radius in pixels");
        cy-= 20;
@@ -5549,9 +5547,9 @@ void sculptmode_draw_interface_tools(uiBlock *block, unsigned short cx, unsigned
        uiDefBut( block,LABEL,B_NOP,"Symmetry",cx,cy,90,19,NULL,0,0,0,0,"");
        cy-= 20;
        uiBlockBeginAlign(block);
-       uiDefButBitC(block, TOG, SYMM_X, 0, "X", cx,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across X axis");
-       uiDefButBitC(block, TOG, SYMM_Y, 0, "Y", cx+40,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Y axis");
-       uiDefButBitC(block, TOG, SYMM_Z, 0, "Z", cx+80,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Z axis");
+       uiDefButBitC(block, TOG, SYMM_X, B_NOP, "X", cx,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across X axis");
+       uiDefButBitC(block, TOG, SYMM_Y, B_NOP, "Y", cx+40,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Y axis");
+       uiDefButBitC(block, TOG, SYMM_Z, B_NOP, "Z", cx+80,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Z axis");
        uiBlockEndAlign(block);
 
        
@@ -5560,9 +5558,9 @@ void sculptmode_draw_interface_tools(uiBlock *block, unsigned short cx, unsigned
        uiDefBut( block,LABEL,B_NOP,"LockAxis",cx+140,cy,90,19,NULL,0,0,0,0,"");
        cy-= 20;
        uiBlockBeginAlign(block);
-       uiDefButBitC(block, TOG, AXISLOCK_X, 0, "X", cx+140,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain X axis");
-       uiDefButBitC(block, TOG, AXISLOCK_Y, 0, "Y", cx+180,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Y axis");
-       uiDefButBitC(block, TOG, AXISLOCK_Z, 0, "Z", cx+220,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Z axis");
+       uiDefButBitC(block, TOG, AXISLOCK_X, B_NOP, "X", cx+140,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain X axis");
+       uiDefButBitC(block, TOG, AXISLOCK_Y, B_NOP, "Y", cx+180,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Y axis");
+       uiDefButBitC(block, TOG, AXISLOCK_Z, B_NOP, "Z", cx+220,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Z axis");
        uiBlockEndAlign(block);
        
        
@@ -5599,7 +5597,7 @@ void sculptmode_draw_interface_brush(uiBlock *block, unsigned short cx, unsigned
        if(sd->brush_type == DRAW_BRUSH)
                uiDefButC(block,NUM,B_NOP, "View", cx,cy,80,19, &sculptmode_brush()->view, 0,10,20,0,"Pulls brush direction towards view");
        cy-= 20;
-       uiDefButBitC(block, TOG, SCULPT_BRUSH_ANCHORED, 0, "Anchored", cx,cy,80,19, &sculptmode_brush()->flag, 0,0,0,0, "Keep the brush center anchored to the initial location");
+       uiDefButBitC(block, TOG, SCULPT_BRUSH_ANCHORED, B_NOP, "Anchored", cx,cy,80,19, &sculptmode_brush()->flag, 0,0,0,0, "Keep the brush center anchored to the initial location");
        uiBlockEndAlign(block);
 
        /* Draw curve */
index 99fe798a58fc4572aedf3dcfb49ae8470ad0b775..93e5603e97a0efe47c81fa9f196c36987c02eaaa 100644 (file)
@@ -982,7 +982,7 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
                                uiDefBut(block, ROUNDBOX, B_DIFF, "", *xco-10, *yco-height, width+40,height-1, NULL, 5.0, 0.0, 12, rb_col, ""); 
                                
                                /* IK Target */
-                               uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Target:", *xco, *yco-24, 50, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); 
+                               uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Target:", *xco, *yco-24, 80, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); 
                                
                                /* Draw target parameters */
                                uiBlockBeginAlign(block);
@@ -4172,8 +4172,9 @@ static void object_panel_particle_children(Object *ob)
                uiDefButF(block, NUM, B_PART_REDRAW, "Rand:",           butx+butw/2,buty,butw/2,buth, &part->childrandsize, 0.0, 1.0, 10, 1, "Random variation to the size of the child particles");
        }
        if(part->childtype == PART_CHILD_FACES) {
-               uiDefButF(block, NUM, B_PART_REDRAW, "Spread:",butx,(buty-=buth),butw/2,buth, &part->childspread, -1.0, 1.0, 10, 1, "Spread children from the faces");
-               uiDefButBitI(block, TOG, PART_CHILD_SEAMS, B_PART_DISTR_CHILD, "Use Seams",      butx+butw/2,buty,butw/2,buth, &part->flag, 0, 0, 0, 0, "Use seams to determine parents");
+               /* only works if children could be emitted from volume, but that option isn't available now */
+               /*uiDefButF(block, NUM, B_PART_REDRAW, "Spread:",butx,(buty-=buth),butw/2,buth, &part->childspread, -1.0, 1.0, 10, 1, "Spread children from the faces");*/
+               uiDefButBitI(block, TOG, PART_CHILD_SEAMS, B_PART_DISTR_CHILD, "Use Seams",     butx,(buty-=buth),butw,buth, &part->flag, 0, 0, 0, 0, "Use seams to determine parents");
        }
        uiBlockEndAlign(block);
 
index d6d77fc9f6fefb748fc3defe5c61ad24d74f132f..b98a8c58102e305fac96a7aad572d48bd4b26de9 100644 (file)
@@ -1286,6 +1286,10 @@ void do_sequencer_panels(unsigned short event)
        Sequence *last_seq = get_last_seq();
        ScrArea * sa;
 
+       if (!last_seq) {
+               return;
+       }
+
        switch(event) {
        case B_SEQ_BUT_PLUGIN:
        case B_SEQ_BUT_EFFECT:
@@ -1323,6 +1327,7 @@ void do_sequencer_panels(unsigned short event)
                allqueue(REDRAWALL, 0);
        } else {
                allqueue(REDRAWSEQ, 0);
+               allqueue(REDRAWBUTSSCENE, 0);
        }
 }
 
@@ -1404,6 +1409,8 @@ void playback_anim(void)
 
 #ifdef WITH_FFMPEG
 static void set_ffmpeg_preset(int preset);
+static int ffmpeg_property_add_string(const char * type, const char * str);
+static char ffmpeg_option_to_add[255] = "";
 #endif
 
 void do_render_panels(unsigned short event)
@@ -1691,6 +1698,20 @@ void do_render_panels(unsigned short event)
                }
                allqueue(REDRAWBUTSSCENE, 0);
                allqueue(REDRAWOOPS, 0);
+#ifdef WITH_FFMPEG
+       case B_ADD_FFMPEG_AUDIO_OPTION:
+               if (ffmpeg_property_add_string("audio", ffmpeg_option_to_add)){
+                       *ffmpeg_option_to_add = 0;
+               }
+               allqueue(REDRAWBUTSSCENE, 0);
+               break;
+       case B_ADD_FFMPEG_VIDEO_OPTION:
+               if (ffmpeg_property_add_string("video", ffmpeg_option_to_add)){
+                       *ffmpeg_option_to_add = 0;
+               }
+               allqueue(REDRAWBUTSSCENE, 0);
+               break;
+#endif
        }
 }
 
@@ -2393,13 +2414,17 @@ static int ffmpeg_property_add_string(const char * type, const char * str)
        AVCodecContext c;
        const AVOption * o = 0;
        const AVOption * p = 0;
-       char name[128];
+       char name_[128];
+       char * name;
        char * param;
        IDProperty * prop;
        
        avcodec_get_context_defaults(&c);
 
-       strncpy(name, str, 128);
+       strncpy(name_, str, 128);
+
+       name = name_;
+       while (*name == ' ') name++;
 
        param = strchr(name, ':');
 
@@ -2664,11 +2689,27 @@ static int render_panel_ffmpeg_property_option(
 static int render_panel_ffmpeg_properties(uiBlock *block, const char * type,
                                          int xofs, int yofs)
 {
+       short event = B_NOP;
+
        yofs -= 5;
+       
+       if (strcmp(type, "audio") == 0) {
+               event = B_ADD_FFMPEG_AUDIO_OPTION;
+       } else if (strcmp(type, "video") == 0) {
+               event = B_ADD_FFMPEG_VIDEO_OPTION;
+       }
+               
+       uiDefBut(block, TEX, event, "", xofs, yofs, 
+                170, 19, ffmpeg_option_to_add, 0.0, 255.0, 100, 0, 
+                "FFMPEG option to add");
+
+       uiDefBut(block, BUT, event, "Add", xofs+170,yofs,
+                30, 19, 0, 0, 0, 0, 0, 
+                "Add FFMPEG option");
 
        uiDefBlockBut(block, ffmpeg_property_add_menu, (void*) type, 
-                     "Add FFMPEG Expert Option", xofs, yofs, 240, 20, 
-                     "");
+                     "Menu", xofs + 200, yofs, 40, 20, 
+                     "Add FFMPEG option using menu");
        yofs -= 20;
 
        if (G.scene->r.ffcodecdata.properties) {
index 99de2c1583d800d77e2d9d19f986ce2a3a4e4847..73915a69139cb3b4a569c4bc5d141559ff2668d7 100644 (file)
@@ -1618,7 +1618,7 @@ static void draw_pose_channels(Base *base, int dt)
                }
                
                /* very very confusing... but in object mode, solid draw, we cannot do glLoadName yet,
-                * stick bones and/or wire custom-shpaes are drawn in next loop 
+                * stick bones and/or wire custom-shapes are drawn in next loop 
                 */
                if ((arm->drawtype != ARM_LINE) && (draw_wire == 0)) {
                        /* object tag, for bordersel optim */
index 17b51249ac2fa11c9a76be79fb27a8c957de4ddc..d5b1f023d7039b42ef97f062a58a31e1c265a93a 100644 (file)
@@ -4253,6 +4253,7 @@ static void draw_forcefield(Object *ob)
                drawcircball(GL_LINE_LOOP, vec, size, tmat);
                vec[2]= 1.5*force_val;
                drawcircball(GL_LINE_LOOP, vec, size, tmat);
+               vec[2] = 0; /* reset vec for max dist circle */
                
        }
        else if (pd->forcefield == PFIELD_FORCE) {
index a79fc6d6aebd4fd9021077128b8786743a95eb1a..12b9cb8919f35af66e799d88c1c535ead20aa5b9 100644 (file)
@@ -2564,7 +2564,7 @@ static void select_poseelement_by_name (char *name, int select)
        if ((ob==NULL) || (ob->type!=OB_ARMATURE))
                return;
        
-       if (select == 2) {
+       if (abs(select) == 2) {
                for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next)
                        pchan->bone->flag &= ~(BONE_ACTIVE);
        }
@@ -3263,6 +3263,8 @@ void borderselect_actionchannels (void)
                                        }
                                                break;
                                        case ACTTYPE_ACHAN: /* action channel */
+                                       case ACTTYPE_FILLIPO: /* expand ipo curves = action channel */
+                                       case ACTTYPE_FILLCON: /* expand constraint channels = action channel */
                                        {
                                                bActionChannel *achan= (bActionChannel *)ale->data;
                                                
@@ -3270,6 +3272,9 @@ void borderselect_actionchannels (void)
                                                        achan->flag |= ACHAN_SELECTED;
                                                else
                                                        achan->flag &= ~ACHAN_SELECTED;
+                                                       
+                                               /* messy... set active bone */
+                                               select_poseelement_by_name(achan->name, selectmode);
                                        }
                                                break;
                                        case ACTTYPE_CONCHAN: /* constraint channel */
@@ -3293,6 +3298,14 @@ void borderselect_actionchannels (void)
                                        }
                                                break;
                                }
+                               
+                               /* select action-channel 'owner' */
+                               if ((ale->owner) && (ale->ownertype == ACTTYPE_ACHAN)) {
+                                       bActionChannel *achano= (bActionChannel *)ale->owner;
+                                       
+                                       /* messy... set active bone */
+                                       select_poseelement_by_name(achano->name, selectmode);
+                               }
                        }
                        
                        ymax=ymin;
@@ -3305,6 +3318,7 @@ void borderselect_actionchannels (void)
                allqueue(REDRAWIPO, 0);
                allqueue(REDRAWACTION, 0);
                allqueue(REDRAWNLA, 0);
+               allqueue(REDRAWVIEW3D, 0);
        }
 }
 
index d0be862c0526630e5ae3e8e12d7df4631abbaf73..172e06f5add32a26640e1f4c66a918940cff81a3 100644 (file)
@@ -55,6 +55,8 @@
 #include "DNA_userdef_types.h"
 #include "DNA_view3d_types.h"
 #include "DNA_modifier_types.h"
+#include "DNA_ipo_types.h"
+#include "DNA_curve_types.h"
 
 #include "BLI_blenlib.h"
 #include "BLI_arithb.h"
@@ -2971,6 +2973,8 @@ void extrude_armature(int forked)
                                                newbone->parent = ebone;
                                                
                                                newbone->flag = ebone->flag & BONE_TIPSEL;      // copies it, in case mirrored bone
+
+                                               if (newbone->parent) newbone->flag |= BONE_CONNECTED;
                                        }
                                        else {
                                                VECCOPY(newbone->head, ebone->head);
@@ -2978,6 +2982,10 @@ void extrude_armature(int forked)
                                                newbone->parent= ebone->parent;
                                                
                                                newbone->flag= BONE_TIPSEL;
+                                               
+                                               if (newbone->parent && ebone->flag & BONE_CONNECTED) {
+                                                       newbone->flag |= BONE_CONNECTED;
+                                               }
                                        }
                                        
                                        newbone->weight= ebone->weight;
@@ -2991,8 +2999,6 @@ void extrude_armature(int forked)
                                        newbone->segments= 1;
                                        newbone->layer= ebone->layer;
                                        
-                                       if (newbone->parent) newbone->flag |= BONE_CONNECTED;
-                                       
                                        BLI_strncpy (newbone->name, ebone->name, 32);
                                        
                                        if (flipbone && forked) {       // only set if mirror edit
@@ -3850,7 +3856,7 @@ void unique_bone_name (bArmature *arm, char *name)
 }
 
 #define MAXBONENAME 32
-/* helper call for below */
+/* helper call for armature_bone_rename */
 static void constraint_bone_name_fix(Object *ob, ListBase *conlist, char *oldname, char *newname)
 {
        bConstraint *curcon;
@@ -3882,6 +3888,7 @@ static void constraint_bone_name_fix(Object *ob, ListBase *conlist, char *oldnam
 void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
 {
        Object *ob;
+       Ipo *ipo;
        char newname[MAXBONENAME];
        char oldname[MAXBONENAME];
        
@@ -3905,7 +3912,7 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
                        else return;
                }
                else {
-                       Bone *bone= get_named_bone (arm, oldname);
+                       Bone *bone= get_named_bone(arm, oldname);
                        
                        if (bone) {
                                unique_bone_name (arm, newname);
@@ -3914,7 +3921,7 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
                        else return;
                }
                
-               /* do entire dbase */
+               /* do entire dbase - objects */
                for (ob= G.main->object.first; ob; ob= ob->id.next) {
                        /* we have the object using the armature */
                        if (arm==ob->data) {
@@ -3936,7 +3943,7 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
                                if (ob->pose) {
                                        bPoseChannel *pchan = get_pose_channel(ob->pose, oldname);
                                        if (pchan)
-                                               BLI_strncpy (pchan->name, newname, MAXBONENAME);
+                                               BLI_strncpy(pchan->name, newname, MAXBONENAME);
                                }
                                
                                /* check all nla-strips too */
@@ -3982,6 +3989,28 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
                                }
                        }
                }
+               
+               /* do entire db - ipo's for the drivers */
+               for (ipo= G.main->ipo.first; ipo; ipo= ipo->id.next) {
+                       IpoCurve *icu;
+                       
+                       /* check each curve's driver */
+                       for (icu= ipo->curve.first; icu; icu= icu->next) {
+                               IpoDriver *icd= icu->driver;
+                               
+                               if ((icd) && (icd->ob)) {
+                                       ob= icd->ob;
+                                       
+                                       if (icu->driver->type == IPO_DRIVER_TYPE_NORMAL) {
+                                               if (!strcmp(oldname, icd->name))
+                                                       BLI_strncpy(icd->name, newname, MAXBONENAME);
+                                       }
+                                       else {
+                                               /* TODO: pydrivers need to be treated differently */
+                                       }
+                               }
+                       }                       
+               }
        }
 }
 
index 653e74c70b410583ffc948b48342ea4b45546ce5..0ad58a5ce4b78db5e5ffe36072540431f463e9f0 100644 (file)
@@ -681,7 +681,7 @@ static void test_constraints (Object *owner, const char substring[])
                                Bone *bone;
                                bPoseChannel *chan;
                                
-                               bone = get_named_bone( ((bArmature *)owner->data ), substring );
+                               bone = get_named_bone( ((bArmature *)owner->data), substring );
                                chan = get_pose_channel(owner->pose, substring);
                                if (bone && chan) {
                                        conlist = &chan->constraints;
@@ -831,9 +831,9 @@ static void test_bonelist_constraints (Object *owner, ListBase *list)
 {
        Bone *bone;
 
-       for (bone = list->first; bone; bone=bone->next) {
+       for (bone = list->first; bone; bone = bone->next) {
                test_constraints(owner, bone->name);
-               test_bonelist_constraints (owner, &bone->childbase);
+               test_bonelist_constraints(owner, &bone->childbase);
        }
 }
 
@@ -845,7 +845,7 @@ void object_test_constraints (Object *owner)
                bArmature *arm= get_armature(owner);
                
                if (arm)
-                       test_bonelist_constraints (owner, &arm->bonebase);
+                       test_bonelist_constraints(owner, &arm->bonebase);
        }
 }
 
index 34dcab09c2aaaa52d931b30a03a5cdab0fc8d597..7572391b3838010c54b38753cddd38538eea2616 100644 (file)
@@ -3658,6 +3658,11 @@ void delNurb()
                                        }
                                }
                        }
+                       
+                       /* Never allow the order to exceed the number of points */
+                       if ((nu->type & 7)==CU_NURBS && (nu->pntsu < nu->orderu)) {
+                               nu->orderu = nu->pntsu;
+                       }
                        nu= next;
                }
                /* 2nd loop, delete small pieces: just for curves */
@@ -3669,7 +3674,7 @@ void delNurb()
                                bezt= nu->bezt;
                                for(a=0;a<nu->pntsu;a++) {
                                        if( BEZSELECTED_HIDDENHANDLES(bezt) ) {
-                                               memcpy(bezt, bezt+1, (nu->pntsu-a-1)*sizeof(BezTriple));
+                                               memmove(bezt, bezt+1, (nu->pntsu-a-1)*sizeof(BezTriple));
                                                nu->pntsu--;
                                                a--;
                                                event= 1;
@@ -3690,7 +3695,7 @@ void delNurb()
                                
                                for(a=0;a<nu->pntsu;a++) {
                                        if( bp->f1 & SELECT ) {
-                                               memcpy(bp, bp+1, (nu->pntsu-a-1)*sizeof(BPoint));
+                                               memmove(bp, bp+1, (nu->pntsu-a-1)*sizeof(BPoint));
                                                nu->pntsu--;
                                                a--;
                                                event= 1;
@@ -3704,6 +3709,11 @@ void delNurb()
                                        memcpy(bp1, nu->bp, (nu->pntsu)*sizeof(BPoint) );
                                        MEM_freeN(nu->bp);
                                        nu->bp= bp1;
+                                       
+                                       /* Never allow the order to exceed the number of points */
+                                       if ((nu->type & 7)==CU_NURBS && (nu->pntsu < nu->orderu)) {
+                                               nu->orderu = nu->pntsu;
+                                       }
                                }
                                makeknots(nu, 1, nu->flagu>>1);
                        }
index 6a703eaabde22a45d8fe411a12407e29f06aebdc..afafc4f2590d409b23aa4bf601387c54fc75db71 100644 (file)
@@ -198,7 +198,7 @@ static int image_detect_file_sequence(int *start_p, int *frames_p, char *str)
        unsigned short numlen;
 
        sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
-       if(sfile==0)
+       if(sfile==NULL || sfile->filelist==NULL)
                return 0;
 
        /* find first frame */
index 50bd4d7c7f3ef6ce77fa7e82b21a3f86a1e9f00f..bb706f1aa3fe46840f4aad0a0d88762a6cd0a8c6 100644 (file)
@@ -2890,7 +2890,7 @@ void enter_meta(void)
        ed= G.scene->ed;
        if(ed==0) return;
 
-       if(last_seq==0 || last_seq->type!=SEQ_META || last_seq->flag==0) {
+       if(last_seq==0 || last_seq->type!=SEQ_META || (last_seq->flag & SELECT)==0) {
                exit_meta();
                return;
        }
index bfff2f10ab6d5456075a7eaaf3a2ee1a42a1728e..9689ffdafebc76ec5a2dd8d9d20eb96c8658cc83 100644 (file)
@@ -1588,8 +1588,7 @@ static void do_filesel_buttons(short event, SpaceFile *sfile)
                BLI_strncpy(sfile->dir, butname, sizeof(sfile->dir));
 
                /* strip the trailing slash if its a real dir */
-               if (strlen(butname)!=1)
-                       butname[strlen(butname)-1]=0;
+               BLI_del_slash(butname);
                
                if(sfile->type & FILE_UNIX) {
                        if (!BLI_exists(butname)) {
@@ -1633,6 +1632,11 @@ static void do_filesel_buttons(short event, SpaceFile *sfile)
                        BLI_strncpy(sfile->dir, lib->filename, sizeof(sfile->dir));
                        BLI_make_exist(sfile->dir);
                        BLI_cleanup_dir(G.sce, sfile->dir);
+                       
+                       /* forced re-reading the blend file */
+                       if(sfile->libfiledata) BLO_blendhandle_close(sfile->libfiledata);
+                       sfile->libfiledata= 0;
+                       
                        freefilelist(sfile);
                        sfile->ofs= 0;
                        scrarea_queue_winredraw(curarea);
index 341cce30c4ecffc5001383fd12eefb0cd986ca74..7ac57cb839b775cb6ea8fc7a7e822f23d6b585b9 100644 (file)
@@ -245,9 +245,24 @@ void do_image_buttons(unsigned short event)
                break;
        }       
        case B_SIMACLONEBROWSE:
-               if (settings->imapaint.brush)
-                       if (brush_clone_image_set_nr(settings->imapaint.brush, G.sima->menunr))
+               if(settings->imapaint.brush) {
+                       Brush *brush= settings->imapaint.brush;
+               
+                       if(G.sima->menunr== -2) {
+                               if(G.qual & LR_CTRLKEY) {
+                                       activate_databrowse_imasel((ID *)brush->clone.image, ID_IM, 0, B_SIMACLONEBROWSE,
+                                                                                               &G.sima->menunr, do_image_buttons);
+                               } else {
+                                       activate_databrowse((ID *)brush->clone.image, ID_IM, 0, B_SIMACLONEBROWSE,
+                                                                                               &G.sima->menunr, do_image_buttons);
+                               }
+                               break;
+                       }
+                       if(G.sima->menunr < 0) break;
+
+                       if(brush_clone_image_set_nr(brush, G.sima->menunr))
                                allqueue(REDRAWIMAGE, 0);
+               }
                break;
                
        case B_SIMACLONEDELETE:
index 7af6b67bfa3a2d90fbad3b3b3d44ac7bbb4e8a55..ab8e53c3cb3052238e3f4bb94ac3e744935d1111 100644 (file)
@@ -2114,7 +2114,7 @@ static int ui_act_as_text_but(uiBut *but)
 
 static int ui_do_but_NUM(uiBut *but)
 {
-       double value;
+       double value, butrange;
        float deler, fstart, f, tempf, pressure;
        int lvalue, temp, orig_x; /*  , firsttime=1; */
        short retval=0, qual, sx, mval[2], pos=0;
@@ -2128,7 +2128,8 @@ static int ui_do_but_NUM(uiBut *but)
        
        sx= mval[0];
        orig_x = sx; /* Store so we can scale the rate of change by the dist the mouse is from its original xlocation */
-       fstart= (value - but->min)/(but->max-but->min);
+       butrange= (but->max - but->min);
+       fstart= (butrange == 0.0)? 0.0f: (value - but->min)/butrange;
        f= fstart;
        
        temp= (int)value;
index 6d4b399cef05f16faef36bff83f3e4a888cb223c..2d8b0c8117511e46859e86ed73d0e24ae7ef37f4 100644 (file)
@@ -1110,7 +1110,7 @@ static void poselib_preview_init_data (tPoseLib_PreviewData *pld, Object *ob, sh
                return;
        }
        if (pld->marker == NULL) {
-               if ((apply_active==0) || (pld->act->markers.first)) {
+               if ((apply_active==0) && (pld->act->markers.first)) {
                        /* just use first one then... */
                        pld->marker= pld->act->markers.first;
                        printf("PoseLib had no active pose\n");
index 9e358d5df0c1922368b0ce830173cb5dd73edd19..24f4100efdbfa307671ae2a68ba45569c6e26312 100644 (file)
@@ -438,15 +438,15 @@ void sculpt_axislock(float *co)
        }
 }
 
-static void add_norm_if(const BrushAction *a, float out[3], float out_flip[3], const short no[3])
+static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], const short no[3])
 {
        float fno[3] = {no[0], no[1], no[2]};
 
        Normalize(fno);
 
-       if((Inpf(((BrushAction*)a)->symm.out, fno)) < 0) {
+       if((Inpf(view_vec, fno)) > 0) {
                VecAddf(out, out, fno);
-       } else if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
+       } else {
                VecAddf(out_flip, out_flip, fno); /* out_flip is used when out is {0,0,0} */
        }
 }
@@ -465,11 +465,11 @@ void calc_area_normal(float out[3], const BrushAction *a, const float *outdir, c
 
        if(sculptmode_brush()->flag & SCULPT_BRUSH_ANCHORED) {
                for(; node; node = node->next)
-                       add_norm_if(a, out, out_flip, a->orig_norms[node->Index]);
+                       add_norm_if(((BrushAction*)a)->symm.out, out, out_flip, a->orig_norms[node->Index]);
        }
        else {
                for(; node; node = node->next)
-                       add_norm_if(a, out, out_flip, me->mvert[node->Index].no);
+                       add_norm_if(((BrushAction*)a)->symm.out, out, out_flip, me->mvert[node->Index].no);
        }
 
        if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
index efb52e696ab1ae953593be6ef82c865b56a354ff..1aca097e3731684c1ccdabc54aa5b6e632b6094a 100644 (file)
@@ -1452,6 +1452,7 @@ static void input_preprocess(Sequence * seq, TStripElem* se, int cfra)
        if(seq->flag & SEQ_USE_CROP || seq->flag & SEQ_USE_TRANSFORM) {
                StripCrop c;
                StripTransform t;
+               int sx,sy,dx,dy;
 
                memset(&c, 0, sizeof(StripCrop));
                memset(&t, 0, sizeof(StripTransform));
@@ -1463,22 +1464,22 @@ static void input_preprocess(Sequence * seq, TStripElem* se, int cfra)
                        t = *seq->strip->transform;
                }
 
+               sx = se->ibuf->x - c.left - c.right;
+               sy = se->ibuf->y - c.top - c.bottom;
+               dx = sx;
+               dy = sy;
+
+               if (seq->flag & SEQ_USE_TRANSFORM) {
+                       dx = seqrectx;
+                       dy = seqrecty;
+               }
+
                if (c.top + c.bottom >= se->ibuf->y ||
                    c.left + c.right >= se->ibuf->x ||
-                   t.xofs >= se->ibuf->x ||
-                   t.yofs >= se->ibuf->y) {
+                   t.xofs >= dx || t.yofs >= dy) {
                        make_black_ibuf(se->ibuf);
                } else {
                        ImBuf * i;
-                       int sx = se->ibuf->x - c.left - c.right;
-                       int sy = se->ibuf->y - c.top - c.bottom;
-                       int dx = sx;
-                       int dy = sy;
-
-                       if (seq->flag & SEQ_USE_TRANSFORM) {
-                               dx = seqrectx;
-                               dy = seqrecty;
-                       }
 
                        if (se->ibuf->rect_float) {
                                i = IMB_allocImBuf(dx, dy,32, IB_rectfloat, 0);
@@ -1755,6 +1756,7 @@ static void do_build_seq_ibuf(Sequence * seq, TStripElem *se, int cfra,
                }
        } else if(seq->type == SEQ_SCENE) {     // scene can be NULL after deletions
                int oldcfra = CFRA;
+               Sequence * oldseq = get_last_seq();
                Scene *sce= seq->scene, *oldsce= G.scene;
                Render *re;
                RenderResult rres;
@@ -1833,6 +1835,7 @@ static void do_build_seq_ibuf(Sequence * seq, TStripElem *se, int cfra,
                        if((G.f & G_PLAYANIM)==0) /* bad, is set on do_render_seq */
                                waitcursor(0);
                        CFRA = oldcfra;
+                       set_last_seq(oldseq);
 
                        copy_to_ibuf_still(seq, se);
 
@@ -1957,6 +1960,10 @@ static TStripElem* do_handle_speed_effect(Sequence * seq, int cfra)
 
        se = give_tstripelem(seq, cfra);
 
+       if (!se) {
+               return se;
+       }
+
        if (cfra_left == cfra_right || 
            (s->flags & SEQ_SPEED_BLEND) == 0) {
                test_and_auto_discard_ibuf(se);
index cc7f4322ed93c0df2f03a8d8e91c183deab99cee..47e3387755b223f4d041a36904b28728e37f30cd 100644 (file)
@@ -214,7 +214,10 @@ void add_blockhandler(ScrArea *sa, short eventcode, short val)
                        break;
                }
        }
-       if(a==SPACE_MAXHANDLER) printf("error; max (4) blockhandlers reached!\n");
+       if(a==SPACE_MAXHANDLER) {
+               error("Only %i floating panels allowed", SPACE_MAXHANDLER-1);
+       }
+               
 }
 
 void rem_blockhandler(ScrArea *sa, short eventcode)
@@ -1077,7 +1080,10 @@ void BIF_undo_menu(void)
                        if(menu) {
                                short event= pupmenu_col(menu, 20);
                                MEM_freeN(menu);
-                               if(event>0) BKE_undo_number(event);
+                               if(event>0) {
+                                       BKE_undo_number(event);
+                                       sound_initialize_sounds();
+                               }
                        }
                }
        }
index b10640026b8f16a046dcd6234ad96cc6fa295a29..2431ff5de227814a61a64e46c38c4e4e37269f14 100644 (file)
 /* DataToC output of file <splash_jpg> */
 
-int datatoc_splash_jpg_size= 58412;
+int datatoc_splash_jpg_size= 95515;
 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, 85,  0,  0,255,238,  0, 14, 65,
-100,111, 98,101,  0,100,192,  0,  0,  0,  1,255,219,  0,132,  0,  2,  1,  1,  1,  1,  1,  2,  1,  1,  2,  3,  2,  1,  2,  3,  3,
-  2,  2,  2,  2,  3,  3,  3,  3,  3,  3,  3,  3,  5,  3,  4,  4,  4,  4,  3,  5,  5,  5,  6,  6,  6,  5,  5,  7,  7,  8,  8,  7,
-  7, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,  1,  2,  2,  2,  4,  3,  4,  7,  5,  5,  7, 10,  8,  7,  8, 10,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,255,192,  0, 17,  8,  1, 26,  1,245,  3,  1, 17,  0,  2, 17,
-  1,  3, 17,  1,255,196,  0,208,  0,  0,  0,  6,  3,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  3,  5,  6,  7,  1,
-  4,  8,  9, 10,  1,  0,  1,  5,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 16,
-  0,  1,  3,  2,  4,  3,  5,  4,  5,  6, 10,  6,  7,  7,  4,  3,  1,  2,  3,  4, 17,  5,  0, 33, 18,  6, 49,  7,  8, 65, 81, 97,
- 34, 19,113, 50, 20,  9,129,145,161, 35, 21,240,177,193, 66, 51,212,209,225,241, 82, 98,130, 52,148, 53, 22,114, 36,116, 85, 25,
- 10,146, 67, 99, 37, 54, 23, 24,162,194, 83,131, 68, 69,213,178, 84,132, 70,100,180,117, 17,  0,  2,  1,  3,  2,  3,  4,  7,  6,
-  4,  5,  4,  2,  3,  1,  0,  0,  1,  2, 17,  3,  4, 33, 18, 49, 65,  5, 81, 97, 19,  6,113,129,145,161, 34, 50, 20,240,177, 82,
-210, 22,  7,193,209, 66, 21,225, 98,114, 35, 51,130,162, 36,  8,241, 84,146,179, 37, 53,255,218,  0, 12,  3,  1,  0,  2, 17,  3,
- 17,  0, 63,  0,247,235,  0,  3,  0, 26,247,101, 92,147,107,146,171, 48, 66,174,225,167, 12, 84,190, 72,108,189,160,232, 11, 41,
-207, 78,170, 86,152,138,254,253,146,217, 77,212,116,175, 10,242,175,113, 45,141,155,227,190,187,106,171, 78, 52,231, 78,243,147,
-246, 15, 92,124,210,229,119, 49,102,108, 30,169,225, 20,177,234,168,  9,145,227, 33,167, 34,  2,124,165, 40,100,  4,186,205, 56,
- 40, 85, 94, 39, 30, 43,211, 63,113, 51,122,110, 92,177,186,180,105,175,204,149, 41,234, 95, 52,123,214,190,147,219,186,159,237,
-198, 23, 83,196,142, 79, 72,149,116,249, 91,173,125,111,229,151,115,211,208,117, 94,222,220, 86, 45,217,103, 99,112,109,169,109,
- 78,178,201, 72,113,137, 49,150,149,182,180,158,226,156,123, 70, 54, 77,188,136, 43,150,228,165, 25,106,154,213, 51,196,242,113,
-110, 99,220,118,238, 69,198, 81,209,166,168,209,187,137,200,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,
-128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,
-128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,
-128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,
-128,  1,128, 14,110,234,114,  7, 91,114,121,144,226,249, 67, 44,179,203,223, 73,161,  9, 54,247, 35,182,160,173,  3,212,245,189,
- 97,168,171, 93,105, 76,169, 79, 28,121,103,155, 48,252,201,119, 45,188, 41,165,102,138,148,113, 79,190,181,214,181,245, 80,245,
-111, 41,102,121,106,206, 34, 89,176,110,245, 93,106,164,215,117, 41,165, 41,235,169, 64,111,254,125,245,119,203, 59,199,249,123,
-119,110,201, 12,223, 18, 42,236, 86,164, 69,121,198,170, 42, 61, 64,208, 58, 73,  7,129,207, 30, 91,214,124,197,215,186, 93,207,
- 10,246, 75,223,205, 41, 69,181,233,167,  3,213, 58, 55,151, 58,  7, 84,183,226,216,198,248, 57, 55, 25, 69, 63, 69,120,154,143,
-109, 78,170,250,151,129, 26,229,118, 98, 85,230,  3, 85, 92, 73, 83, 82,195, 70,138, 20, 58, 22,160,149, 16,126,172, 42,232,222,
- 96,243, 21,168,206,113,148,224,181,139,150,216,251, 27,163,167,184, 63,188,249,123,203,151,101,  8, 74, 48,155,210, 74, 59,165,
-237, 74,170,190,241,195,151, 92,196,234, 19,162,205,196,211, 59,138,220,251,123, 70, 99,149,145,107,152,107, 22, 69, 61,229, 50,
-226,117, 37, 46,  1,218, 62,144,113, 39, 76,234, 93, 95,201,247, 82,189,109,248, 82,122,197,252,175,253, 45, 85, 39,246,104,139,
-170,116,222,145,231, 27, 77,217,184,188, 88,173, 36,180,146,255,  0, 82,116,109,125,147, 59, 75,103,245,  5,176,247,191, 39,102,
-115,158,194,167, 30,176,219,162, 73,159, 62, 34,  2,126, 37,149, 67, 96,190,235, 37, 42, 33, 58,192, 25,103, 67,150,116,199,209,
-190, 94,234,214,122,205,152, 93,176,244,147,166,188,159, 52,253,  7,205,190, 99,233, 23,186, 45,233,218,190,181,130,174,156,215,
- 38,189, 63,224,200,223, 70,221,109,242, 47,174,174, 90, 59,205, 46, 69, 72,150,229,150, 44,131,110,159, 26,235, 21, 81, 36,198,
-148,150,144,234,155, 90, 73, 82, 85, 68,172,121,144,165, 39,199, 29, 63, 86,232,247,186,117,223, 14,237, 43, 74,170, 58,232,114,
-189, 27,173,216,234,150,188, 91, 45,209, 58, 58,170, 52,201,159, 59, 57,211,203,158,158, 57, 97,118,231, 31, 54,167,155,103, 47,
-108,141,161,251,148,224,203,207,150,144,183, 82,202, 79,167, 29, 43, 89,170,148,  6, 67, 21, 48,240,238,101, 92, 86,237,170,202,
- 92, 17,115, 59, 54,222, 37,169, 93,186,233, 24,241, 98,124,138,231,175, 44, 58,147,229,125,179,156,156,156,184,254, 43,203,219,
-184,117, 80, 39, 22, 94,142, 92, 12,190,184,203,171,114, 18,135, 19, 69,182,161,152, 21,227,195, 11,155,135,115, 18,235,181,113,
- 82, 81,226,189,225,131,157,107, 50,212,110,218,117,132,184, 63, 93, 57,146,236, 85, 45,131,  0,  3,  0,  3,  0, 20,159, 34,250,
-252,233,251,168,206,127,239,110,156,185, 92,244,233, 91,219, 96, 45,113,183,  4,153, 49, 21, 30, 26,100,181, 45,112,157, 97,149,
-186,160,181,169, 14, 54,106, 66, 52,145,192,156,107,231,116, 75,248,150, 45,222,185, 69, 27,156, 53,214,148,173, 76, 94,159,215,
-241,243, 50, 46, 88,183, 87, 43,127, 54,148, 85,173, 40, 93,152,200, 54,129,128,  6,157,253,190,182,175, 44, 54, 61,227,153, 27,
-234, 98,109,251, 46,193, 10, 77,226,237, 57,192,165, 37,136,144,217, 84,135,156, 41, 64, 42, 58, 80,146,104,  1, 39,176, 87, 18,
-216,179, 43,211,140, 32,171, 41, 52,146,239,100, 57, 23,225, 98,220,174, 77,210, 49, 77,183,220,184,158,117, 47,231,213,206,254,
-105,220,103, 95,186, 78,233,187,113,111, 94, 80, 91,158, 91, 42,190,184,244,180,189, 35, 69, 10,146, 26,183, 66,148,211,107,211,
-158,144,235,132, 84, 84, 14,  7,188,126, 74,177, 97, 40,228,229, 66, 19,124,180,254, 45,125,200,243,181,231,204,140,134,229,139,
-137, 59,150,215, 61,117,246, 69,175,123, 58, 63,229,231,243, 70,228,231,204,  6,  5,210,203, 99,182,202,218,188,225,176, 80,223,
- 54,149,221, 73,113,214,155, 43,244,253,102, 30, 74, 80, 29,108, 57,228, 85, 80,133, 37, 89, 41, 32, 20,147,129,215,188,185,123,
-165,184,185, 53, 40, 75,132,151,241,236,126,223, 73,210,121,119,205, 22,122,178,146,138,112,185, 30, 49,127,122,124,215, 46, 79,
-187,129,211,152,231, 78,152, 24,  0,160,250,203,249,132,242,127,163, 93,205,177,249,119,185,155, 93,227,154, 91,246,239,  2,203,
-105,176,194,121, 13,186,204, 73,115, 17, 17,219,140,133, 40, 43, 67, 45,149, 81, 57, 85,197,121, 83,144, 82,147,183,210,122, 21,
-220,248, 92,156,116,133,184,182,223,122, 85,162,239,251,189,134,  7, 89,243, 13,158,159, 59,118,229,241, 78,228,146, 73,118, 55,
- 74,190,229,239,126,186, 67,254,100, 31, 52, 11,119,203,221,253,129,  9, 91, 34, 94,245,184,239,229, 93, 90,133, 30,223, 57, 49,
- 28,101,203,106,161, 32, 32, 32,176,250,156, 83,166, 96,  9,  0,  3, 81,219, 92, 90,242,247,151, 31, 84, 87, 31,136,160,173,210,
-181, 85,227, 94,245, 74, 80,169,230,111, 51,174,144,237, 47, 13,220,119, 43, 74, 58,112,167,115,173,106, 81,131,231,209,206, 66,
- 42, 58, 88,222,148,255,  0, 78,119,255,  0,139,198,207,232,187, 31,253,203,126,239,204, 97,254,187,200,255,  0,233, 93,247,254,
- 83,191,185, 79,190,159,230,103, 45,108, 91,254, 93,185,235, 68,203,205,190, 29,205,235, 84,186,250,240,220,149, 29, 15,170, 59,
-154,146,131,169,178,173, 38,169, 25,142,  3, 28, 62, 69,165,106,228,160,157,104,218,175,109, 31, 19,191,198,188,238,219,140,218,
-163,146, 78,143,149, 85,105,234, 36, 56,132,156, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,
- 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,212,185,238, 11, 13,145, 72, 77,230,108,120,138,114,165,
-177, 41,230,218, 42,  3,141, 53,145, 90, 87, 14,140, 28,184, 42,136,221,  4,162,238,221,171, 59,112, 63,180,161, 92,226, 61,186,
-162,180,220,185, 86,198,164, 50,185,108,176,239,236,221,113,148,168,173, 40, 87, 98,136,161,194,187,114, 81,220,211,167,111, 32,
-170,173,  7, 12, 48, 83, 67,113,238,189,175,179,224,162,233,187,110, 81,109,118,215, 29,110, 43,114, 46, 50, 25,140,210,158,116,
-233,109,176,183,148,148,149, 40,228,  5,106,123, 48,248, 91,148,221, 34,155,125,194, 54,151, 19,127, 12, 20,210,155,184,246,245,
-182, 90,109,247, 25,241,163,207, 93, 10, 24,125,246,144,226,130,141,  5, 18,162,  9,169,225,135,168, 73,170,164,196,170, 55,112,
-193, 65,128, 13,101,222,172,237,222, 27,219,174, 75,101, 59,129,230, 92,154,212, 18,234,  4,133,199,101,104,105,199, 82,209, 58,
-202, 18,183, 16,149, 40, 10,  2,160, 15, 17,135,108,116,173, 52, 18,162,210,100,198,133, 29,114,230, 56,150,162,182, 10,220,117,
-213,  4,161, 41, 25,146, 84,172,128,194, 37, 81, 67,225,  0, 24,  0, 24,  0,137,243,  7,155,219, 87, 96,218, 36,221,110, 50, 16,
-220, 24,138, 45,205,184, 72,214,136, 16,180,167, 90,213, 38, 64,  5, 41,  9, 72, 36,142, 61,134,149,194,165, 80, 56,239,156,223,
- 53, 59, 98,175, 82, 54, 71, 32,172, 55,125,233,186, 66,190, 25,155,236,153, 50,236,214,175, 84,171, 66,157,102, 52, 66,219,238,
- 50,131, 82, 53, 16, 72, 30,247,  2,118,236,244, 87,183,117,199, 79, 87,219,248,148,167,152,171, 72,170,155,142,252,200, 25,182,
-217, 34, 90,191,  7,147,126,188,177, 29,145, 50,238,206,226,152,204, 87,223, 13, 15, 81,108,252, 27,104, 10,111, 85,104,123,120,
-231,199, 22, 45,244, 13,218,185,105,232,255,  0, 18, 57,103,211,145,126,116,105,213, 53,183,169,171,  5,238, 68, 72,242, 35,203,
-178,200,102, 59,169,144,164, 62,128, 31,103, 93, 17, 37,176,144,230,149,165,105,243, 36, 40, 83, 58,241,198, 86,126,  3,198,107,
- 90,166, 90,177,127,196, 92, 11,163, 20,  9,194,190,251, 17, 88, 92,153, 43, 75,113,155, 73, 91,142, 56, 66, 82,148,164, 84,146,
- 78, 64,  1,134,202, 74, 41,182,232,144,232,197,201,164,149, 91, 57, 63,170, 30,190,189, 39, 95,229,207, 32,156,245,174, 10, 42,
-139, 43,112, 54, 53,128,163,228, 40,134, 51,212,127,237, 63,232,247,227,196,188,229,251,156,234,241,186,123,172,158,142,107, 95,
- 84, 59,125, 62,206,211,220,124,153,251, 95,162,202,234, 42,145, 90,168, 61, 59,235, 62,207, 71,183,176,230,158, 84,109,241,190,
- 57,207,104,176,110,213, 45,213, 78,158, 17, 63,226, 74,139,139, 94,162,165,133,149,103, 85, 17, 67, 92,121, 95,150,112, 86,111,
- 85,181,107, 34,175,116,254, 42,241,116,171,105,250, 90,163, 61, 95,205, 25,207, 11,164,222,187,143, 69,182, 31, 13, 56, 42,209,
- 38,189,  9,213, 28,125,243,157,234,239,168,183,122,203,220,220,133,183, 94, 46, 59, 95,149, 27, 37,198, 45, 54, 75, 13,170, 67,
-240, 89,121,191,133,109,239,141,116, 50, 81,234, 41,226,173, 73, 38,160, 38,128, 99,244,207,201, 93, 19, 22,214, 12, 38,163, 23,
- 41, 45, 93, 22,156,168,187, 40,126, 91,121,243,175,101,221,234, 23, 45,185,202, 49,139,209, 85,170,243,171,237,108,189,126, 73,
-157, 67,243,135,169,222, 88,115, 63,166,158,123,220,101,238, 94, 94, 88,109, 41,220, 27,126,243,120,113,114, 95,180,204, 78,176,
- 25, 76,135,170,189, 10,211,173, 41, 42,203, 74,169,145, 56,243,191,222,175, 44, 97, 94,192,147,113, 81,114,140,184,105,172, 85,
- 84,189, 41,253,231,164,254,197,249,171, 58,207, 80,138,220,228,163, 40,210,186,233, 39, 71, 31, 67, 92, 23, 42, 29,  3,210,174,
-250,185, 89,172, 28,195,217, 94,162,141,154,231,182, 47, 18, 20,213, 78,144,243, 16,156, 72, 85, 56,  2, 82,162,  9,240, 24,249,
- 87,246, 63,168,206, 29, 70, 88,245,248,101, 73,122,212,146,247,167,238, 71,214,255,  0,190,189, 58, 19,233,171, 34,159, 20,107,
- 31, 84,162,223,185,175,123, 56,211,228,245,209, 63, 82, 29, 95,242,115,113, 51,177,249,191,120,229,199, 42,237, 87, 53,165,184,
- 27, 97,107,109,217, 87, 55, 34,180,167, 31,144,166, 93,100,148, 37,  1,  1, 41, 36,215, 58,105,237,251,147,205,221,106,198,  5,
-248,214,196,110, 77,199,140,185, 42,189, 22,143,188,248, 43,201,125, 11, 39,168,227,207,110, 68,173, 91, 82,225, 30,110,139, 87,
-170,238,255,  0,  3, 95,127,117,101,213, 95, 47, 57,117,212, 95,203, 75,169,125,210,238,250,137,183,237,175,170,209,127,152,181,
- 63, 37,151,173,151, 72,138, 35,214,114,174,150,158,101,122,180,184,162, 80,161, 64,115, 56,150,207, 76,198,187,115, 23, 58,196,
- 54,110,122,174, 90,167,239, 79,179,137, 21,254,173,151,106,214, 95, 79,200,159,137,182, 58, 75,158,141,123,154,237,224, 64, 17,
-215, 55, 59, 54,231, 79, 92,146,232,227, 99,223,239, 59, 87,148,203,128,229,227,116, 76,217,105,112,223, 46,  6,109,250,112, 45,
- 51,233, 41, 10, 82, 91,101,176, 82,128,160, 20,162,117, 86,130,151, 23, 69,179, 43,249, 25, 82,140,101, 58,210, 42, 95, 42,164,
- 99,199,214, 81,125,122,252,113,241,113, 33, 41, 66,222,218,201,199,230,117,148,184,122, 23, 46,210,109,108,234,179,154,221, 44,
-243,159,104,243, 27,162,235,239, 53, 47,219, 77, 47,  6,247,158,220,230,101,190, 92,136,114,152, 46, 32, 40, 54, 18,167, 16,117,
-160,175, 61, 33, 72, 32, 16,113, 73,244,235,121,150,103, 12,165,102, 50,254,151,  6,147, 95,111,121,121,117, 75,184, 55,237,220,
-195,119,229, 26,252, 81,184,155, 77,125,189,133,229,202,190,106,124,193,126, 98, 29,108,243,159,165,139, 71, 56,238, 91, 67,145,
- 54, 11,205,216,147,106,141, 17,171,139, 16, 24,187,187, 26, 36, 56,207,178,134,158, 64,209,146,212, 87, 90, 36,  3, 92, 98,229,
-217,193,233, 88, 88,249, 30,  2,157,201,197,113,110,149,162,109,190, 40,221,195,191,212, 58,198,126, 78, 55,212, 56, 90,132,159,
-  4,171, 77,205, 36,158,143,211,169, 23,216, 29, 74,117, 83,242,171,235,107,154,125, 61,110,125,245,113,230, 86,192,177,109,105,
-251,142, 11, 27,150, 68,151,210,169, 72,181,162,229,  9,205, 46,184,226,155, 80, 90,253, 55, 52, 40,  5, 38,167, 44,169,111, 35,
-167,227,117,156, 43, 55,149,181,110, 82,154,139,219,217, 90, 63,230,138,120,221, 75, 43,161,231, 95,177, 43,142,236, 35,109,201,
-110,175, 26, 85,122, 59, 29,  7,206,134,122,113,235,251,230,109,176,238, 93, 92,111, 14,161,183, 14,214,188, 75,157, 41,171, 20,
- 11, 43,239,166, 27, 46, 69, 93, 42,168,236, 62,203, 77,182, 23,229, 13,165, 30,232,169, 57,226,191, 91,234,120, 93, 34,234,198,
-134, 52,100,146, 85,111,142,189,244,126,210,207, 64,233, 89,253,106,211,203,185,149, 56, 54,222,212,184,105,221, 84,146,238, 57,
-187,146, 61, 79,245,  3,209, 77,207,169,190, 98, 42,226,219,253, 75, 57,115,103,105, 77,191,178,134, 93,109,187,196,187,204,177,
- 54,123,105,208, 27, 38,172,186, 81,229,166,162, 13, 59, 49,209,103,116,219, 29, 69,226, 66,159,237,109,114,167,114, 74,139,222,
-142,103,167,245, 92,142,152,179,103, 90,221,220,162,223,123,147,171,247, 58,  5,219, 60,215,189,223,249, 26,174,101,202,230, 23,
- 58, 31,234,241,246,156,185, 64,184, 91,154,156,245,129,114,125, 66,182,153,245,  3,254,161,109, 73,  0, 21,167,129, 53,  9, 32,
- 80,165,220,117, 28,141,158, 30, 58,176,157, 26,116,221, 79,103, 30,239,120,182,178, 92,241,188, 79, 19, 37,228, 53, 84,210,123,
-107,201,113,225,223,238, 44,222,105,252,216,190,100, 55,238, 92,114, 70,193,182, 55, 28,221,165,205,187,187,151, 29,175,125, 84,
-155,116,102,191, 21,150,205,194, 43, 16,230, 58,137,177,212, 70,166,223,  1,101,  0,  2,160, 78, 40, 98,249,107,167, 70,230, 68,
-165, 21, 56, 70,146, 84,124, 21, 27,107, 71,220,104,229,249,175,169,206,222, 52, 99, 39, 11,146,172, 93, 82,213,213, 36,245, 93,
-231,169,223, 47,190,150, 57,153,211, 87, 38,174,187, 75,156,219,230,119, 49,119, 54,228,184,189,184,174, 23, 75,230,181,173, 14,
-203,133, 30, 51,177,208, 30,113,211,233,  2,193, 80,  4,254,177,200, 99,204,186,215, 83,134,109,229, 59,118,213,184,197, 81, 37,
-220,219,175, 45,117, 61, 95,160,244,153,224, 89,112,185,113,221,148,165,185,183,222,146,167, 61, 52,247,150,230,199,229, 95, 44,
-249, 77,181, 89,218,251, 34,211, 14,203,179,109,237,169, 49,160,194,101,168,209, 99, 52,  9,113, 65,  8, 64,  9, 74,106, 73, 63,
- 94, 51, 46,222,157,233,185, 77,185, 73,243,122,182,107, 89,179,110,196, 20, 32,148, 98,184, 37,162, 71,150, 63, 42, 40,237,243,
-235,230,235,207, 14,169,185, 96,223,165,201,132,189,120,133, 22, 92, 96, 82,204,197, 93, 46,205,185, 29, 99,128, 62,171,113, 86,
-250,135, 97, 41,175, 17,143, 73,243, 83,250, 94,149,143,141, 63,249, 52,126,138, 39, 95,101,104,121,111,147,215,213,245,140,172,
-171,127,241,234,171,219, 89, 42,123, 82,108,245,207, 30, 98,122,193, 77,245,209,214,183, 43,122, 17,228, 60,254,114,243, 29,192,
-253,196,214, 14,221,177, 52,176,153, 23,107,154,219, 42,106, 59,102,135, 74, 69, 10,156, 89, 20, 66, 65, 57,154,  3,173,209,122,
- 61,222,165,125, 90,135,165,190,197,219,252,151, 51, 27,175,117,187, 93, 47, 29,221,185,199,130, 92,219,236,254,111,146, 60, 89,
-231,111, 46,250,155,185,245, 41,200,222,177,186,177,150,177,204,238,113,110,214,174, 49,172,107,109, 77,139, 85,170,217,114,181,
-252, 19, 41, 66,148,162,218, 75,114,232,150,143,153,  9, 72,214, 74,212,170,122,214, 30, 94, 55,211,100,227, 99,175,130,204, 41,
- 94,214,212,171,233,225,199,159, 45, 40,120,198,110, 30, 87,213, 98,229,229, 63,142,253,202,237,252, 49, 78, 52,244,113,225,201,
-113,214,167, 91,127,204, 25,186,173,187, 23,154,157, 43,111,123,210, 28,114,207,102,187, 95, 46,178,219,140,144,183,148,204, 73,
-214, 25, 14,  6,210, 72,  5, 69, 41, 52, 21, 21, 56,229,252,135,101,221,177,151,  5,198, 81,138,246,169,163,174,253,196,188,172,
-228, 97, 77,240,140,164,223,169,193,147, 93,145,255,  0, 48, 87, 75, 17,183,180, 45,145,206, 30, 94,110,141,149,100,150,164, 34,
- 61,238,239, 22, 58,210,219,107, 94,144,252,136,232, 88,121, 45,142,210,208,112,248, 28, 82,185,228, 28,143, 13,202,213,200, 77,
-174, 73,251,147,225,237,161,126,215,238, 54, 55,136,161,118,221,203,105,243,107,222,215, 26,122, 42,122, 33,182, 47,123,123,114,
-237,248,123,139,106, 73,102,102,219,158,203,115, 32,204,134,180,186,195,236, 60,128,227,110, 54,180, 18,149, 37, 73, 32,130, 13,
-  8,199, 13, 56, 56, 55, 22,168,215, 19,208, 97, 53, 56,169, 69,213, 61, 83, 55,240,209,192,192,  0,192,  0,192,  0,192,  0,192,
-  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  0,192,  7,158, 95, 57,
-222, 85,223,249,141,207, 62, 86, 58,221,178,116,141,156,205,155,120, 69,184,220,224,237,153,187,161,168,111, 73,128,150,226,133,
-196,135,167,239, 22,246,144,218,202,135,166,170, 57, 67,162,152,237, 60,175,144,173,217,187,170,173, 99, 69,185, 70,186,235,171,
-247,246,240,230,103,102,194,178,143,175,149, 74, 51,103, 88,250,247,229,190,203, 23,206, 93,109, 29,201,182,247, 98,118,166,199,
-176,238, 85, 64,133, 57,119, 86,108, 80,238, 19,219,144,184,170, 83, 46, 58,153, 10,109, 49,220, 90, 27, 65,113,148, 44,138,  0,
-156,107, 93,158, 29,217, 82,115,140,150,233,181,170,165, 90, 84,174,188, 56,247, 50,188, 85,200,173, 19, 90, 34,111,203,123,159,
-204, 19,153,215, 27,190,204,189,239,205,253, 15,101, 90, 54,190,234,191, 88,175, 80, 45,151, 59,100,137,210,237,229,183,237,209,
- 30,145,120,128,211,242, 20, 92,113,109,149, 37,  8, 91,129, 58, 83, 74, 98,173,248,225, 90, 74, 74, 22,219,114,138,106,169,209,
- 62, 46,137,209,127,  2, 72,187,146,210,175,131, 24, 55,190,226,234,231,157, 22,219, 44, 46,125, 53,191,230,111, 86,230,242,206,
-125,138,199, 30,201, 57,189,182,236, 20, 69,140,245,218,124,239, 66, 54,143,137, 76,205,122,202,212,146,149, 18,  0,166, 73,154,
-212, 49,172, 54,237,120,105, 82,229, 93, 86,234,235, 68,181,225, 65,178,115,151,205, 94, 94,131, 91,112,115,127,230,173,102,107,
-113,220,238,183, 93,231, 19,154,228, 94, 26,189,237,232,246, 59,204,168, 44,232,127,213,133, 34,214,227, 80,126,  1,134,134,148,
- 33, 42,109,229,151,  2,169, 79, 54,107, 12,110,157, 45,169, 40, 56,233, 71, 84,159,122,122,213,191, 86,130, 57,221,215,141, 78,
-145,219,221, 44,243,197,222,113,111,205,202,237,209,173,223,189,224,109, 29,169,114,182, 94, 57,145,181,237,247,105, 19,238,107,
-118,247, 44, 66,133, 36,152,140, 69, 44,175,211, 66,180, 54,170,  5, 32,168,100, 43,137, 62,161,107,194,130,166,216,185,201, 53,
- 25, 53, 69,240,170,181,171,117,254,101,165,106, 91,159, 55, 69,197,122, 68, 57,121,206, 14,120,236,110,111,108, 93,200, 38,243,
-  6,237,211,195, 77,219,219,230, 75,155,150,195,124,149, 37,141,197, 38,193,123, 68,136,237, 70,248, 33, 40,180, 38,  8,122,195,
- 13,169,134,220,208, 18, 70,162, 10,223,198,181,114,212,213, 45,171,154,237,163, 95, 45, 99,173,107, 74,210,188,117,106,162, 70,
-114, 77,113,167, 63, 77, 24,142,207,220, 29, 91,110,157,141, 59,126,222,174,251,190, 38,231,219,214,126, 94, 93, 44,208,  3,114,
-163,183, 46,117,203,116,220, 24,187,166, 92, 85,179, 89,  4, 67,105,160,227,107,  4, 33, 36, 18,  1,161, 11,118, 24,208,154,138,
- 80,164,156,211,238, 74, 42,148,124,181,173, 24, 69,205,170,235,165, 62,242, 26,173,209,207, 84,238,171, 54,254,187, 69,222,211,
-249,191, 35,104,220,236,124,192,159, 38, 54,230,131, 19,111, 92,165,239,123, 23,196, 11,122,225, 67, 89,248,118,153,101,197, 20,
- 64, 10, 82,217,  1, 90,133,117,226,215,135,103,107,138,112, 80,222,156,126, 86,228,148, 37, 74,213,241,175,226,224,253,131, 43,
- 42,215, 90,211, 94, 58,106,190,218, 12,251,154,221,207,109,205,180,183, 54,233,223,103,118, 94,239,106,217,123,247,107,237, 69,
-200,177, 94,212,197,205, 81,111, 41,153,  2, 52,216,147,227, 58,249, 11,140,225, 90, 19, 52,213,192,218, 66,138,138, 72, 50, 91,
-149,152,202, 49,142,196,183,193,189, 86,154, 81,180,211,167, 30,206, 21, 26,212,154,109,215,131, 44, 13,249,188, 58,184,113,183,
-152,218,183, 61,240,199, 54, 94,185, 94, 98,115, 10, 41,129, 53, 54,155, 85,185, 91,153,166, 45, 14, 89,157,118, 49,137,168,197,
- 82,125, 53, 70, 91,133,109,122,138,118,164, 18, 41,217,181,141,253, 74, 27,104,182,234,170,222,221,119,107, 94, 61,180,214,148,
- 36,148,167,202,181,231,237,210,135, 79,116,169, 31,125,217,158,230, 54,205,222, 51, 46,183, 11, 37,139,119, 72,183,109,121,155,
-145,199,228, 74,118,210,229,138,217, 56,105,147, 32,107,121,177, 41,247,210,149, 84,210,133, 53,242,208, 96,117, 23,  9,120,114,
-138, 73,184, 85,211,182,173,112,229,162, 69,171, 85, 85, 79,180,155,243, 71,114,204,218,251, 69,233,150,214, 36, 74,185,186,164,
- 50,212,123,115, 97,217, 75, 73, 85, 94, 44,160,169, 32,173, 45,  5,168, 84,210,163, 25,196,196, 11,151, 91,109,206,110,238, 89,
-187,147,120, 66, 76,109,145, 97,145, 38,203, 99,219, 47,165, 43, 67, 95,117,233,191, 38, 74, 73, 82, 28,121,228, 56,161, 92,192,
-109, 84,  4,149,174,179,215,103, 14, 35,105, 82, 98,222,210,229,175, 40,182,218,173,251, 42,193,  2,  2,100, 15,133,141,  2,223,
- 22, 59, 31, 18,226,198,148,161, 90, 64,168, 61,181,236,195,110, 94,157,199, 89, 54,253, 33, 24, 40,240, 84, 56, 11,168, 62, 73,
-116,203,106,230,173,197,187, 77,170, 77,194,228,133,164,220, 90,143, 53, 44,218, 26,184,  2, 84,250, 98, 71, 75, 74,242,  5, 26,
-100, 83,152, 56,234,176, 29,215,109,110,107,215,199,239, 51, 47,168,238,116, 46,191,151, 79, 49,246,110,214,221, 83,185, 23,182,
-109, 44, 90, 96, 92, 26,118,248,211, 49, 20,242,146, 31,100, 33,165, 87,213, 82,200, 46, 32, 18,  0,160,242, 18,  5,107, 92,238,
-177,143, 45, 39, 90,255,  0,  2,124, 73,174, 20, 59,  3, 24, 37,226,139,235,191,101,115,167,126,114,242,223, 99,229, 70,183,173,
- 43,125,193,125,133, 29,192,219,175,182, 82,146,205, 73, 32, 22,210,160,173, 73,174,102,157,216,243,175,220,126,149,212,122,134,
- 44, 45,225,234,155,123,210,116,109,105, 78, 52,209,107, 85,232, 61, 31,246,219,170,244,222,159,149, 59,185,154, 73, 37,177,181,
- 84,158,181,225, 93, 94,148,126,146, 57,210,183, 68, 54,237,138, 25,222,156,198, 66,101,110,172,150,211, 36, 85,184,245, 28, 18,
- 15, 19,222,175,171, 17,121, 43,246,246,207, 72, 74,245,234, 78,255,  0,186, 62,142,254,255,  0, 97, 55,157,255,  0,113, 47,117,
-118,236,216,172, 44,123,229,233,238,238,246,148, 31, 86,124,169,220,124,128,231,187,219,138,198, 22,197,146,124,149, 94,172,115,
- 80,159, 42, 28, 46,122,171,104, 28,198,166,214,120,119, 83,191, 30, 67,231,142,141,127,161,245, 71,126,221, 84,101, 45,240,151,
- 99,173, 90,244,167,238,161,236, 30, 69,235, 54, 58,239, 74, 86, 46, 81,202, 17,217, 56,246,170, 81, 63, 67, 94,250,141,220,237,
-178,252,191, 58,235, 76, 13,201,214,  6,210,151, 11,155,150,248,237,193, 86,227,219,203,121,165,201,101,172,210,149,152,235, 74,
-136,  4,154,  5,165, 90,107,145,199,178,121, 75,255,  0, 96, 62,142,206,203,187,173,203,157, 22,232,183,218,185,175,182,167,138,
-249,195,255,  0, 93,214,117,237,246,212,110, 46, 77,183, 25, 37,216,249, 58,125,145,163,  3,113,116,225,211,191, 42, 46, 28,139,
-232,203,108,185, 97,218,247,131, 75,229,238,113, 42,157, 57, 26,116, 20,149, 45,110, 56,117, 39,202, 74,213,144,168,  0, 87, 28,
-111,238, 39,239, 37,238,189,110, 86,109,110,164,149, 28,157, 22,156,212, 82,224,159, 55,196,237,127,109,255,  0,101,172,249,126,
-113,189,113, 70,177,117, 81,141, 95,197,201,202, 79,139, 92,151,  2,213,232,139,167,123,206,244,218,187,159,113,206, 63,  7, 26,
-245,108,155, 97,183, 72,113,  5, 90, 68,166, 20,210,158,211, 81, 84,234, 34,148, 57,208,227, 67,246,107,161,207, 22,185,247, 23,
-205, 69, 21,205,164,211,111,208,218, 73,122, 25, 67,247,167,174,195, 45, 46,159,109,252,181,114,124,147,105,164,189, 41, 54,223,
-165, 20,135, 34,254, 75, 63, 48, 78,142,236,247, 20,244,167,207,166,108,183, 27,186,233,117,136,229,176,136, 79,161,  9,210,211,
-169, 67,166, 64, 75,169,170,134,160,154,210,153,227,234,204,239, 56, 97,103,201, 60,140,109,201,112,215, 95,225,161,242, 62,  7,
-146, 51,250,116, 90,198,202,218,229,197,109,211,248,234, 62,114,243,228, 35,184,152,229, 79, 51,164,115, 79,126,155,247, 83, 28,
-202,140,168,146,247,116,232,238, 60,136,222,180,230,231,201, 86,133,187,234, 56,183,156,111,204,181, 40, 30, 20,  3, 58,193,127,
-206,251,175, 90,217,111,109,171, 78,170, 41,241,210,139,150,148,236, 44, 99,249,  7,109,139,222, 37,221,215,174,170, 57, 53,195,
- 84,223, 58,186,181,171, 13,125,249,  6, 94, 63,242, 91,150,235,229,246,251, 78,222,234,167,150,137,122, 52, 29,219, 22, 34,254,
- 22,124,115,114,126,229, 29, 46,176, 92, 42, 66,153, 91,234,  9, 80, 38,160,144, 65, 20,162, 91,243,183,251,215,188, 75,123,172,
-221,227, 26,240,209, 39,173, 57,208, 46,249,  7,253,155, 62, 29,221,183,173,104,164,150,143, 86,214,149,229, 82,193,228, 31, 65,
-127, 49,198, 57,249, 98,230,231, 83, 60,242, 85,207,111, 88, 80,168,227,110,237,168, 76,195,131,112,101, 68, 41, 72,150,217,105,
- 13, 40, 41, 73, 26,143,164, 87, 65,229, 82,120,227, 59, 59,172,224, 59, 18,181, 99, 25, 69,203,250,164,234,215,163,159,190,157,
-198,159, 79,232, 93, 69,100, 70,238, 70, 83,146,143,244,197, 81, 63, 79, 47,117,123,209, 50,232,223,229,179,185,186, 89,235, 63,
-155, 29, 77,206,220,140, 93,172,156,200,157, 58,231, 30,216,204, 69,199, 92, 17, 50,230,237,192, 54,165,169,197,133,233, 14,105,
-168,  2,180,174, 43,245,126,190,179,113,108,216, 80,167,132,146,173,120,209, 36, 89,232,190, 91,120, 25,151,242, 28,247,120,173,
-186, 82,148,171,111,183, 81,139,155,255,  0, 41, 81,206, 47,152, 93,235,171,173,225,125,143, 51,149,251,142,202,238,215,186,237,
- 51, 25,196, 62,168,239,217,197,165,194, 36,135, 40, 13, 42,161, 68,101,137,236,121,161,217,192,142, 52, 35, 73, 70, 74, 74, 85,
-236,117,224, 65,145,229, 37,127,168,203, 42,114, 78, 18,139,139,141, 57, 56,211,141, 74,127,151, 95, 39,223,152, 87, 74, 50,238,
-251,  3,163,206,126,155, 15, 34,239, 18, 87, 37,113, 37,193, 14, 76, 96, 57,228, 43, 64, 41, 91, 97,221,  0,  2,182,203,117, 32,
- 26, 12,177,173,147,230,204, 28,202, 79, 39, 27,117,196,184,167,163,255,  0, 15,105,141,139,228,222,161,131, 88, 98,229,109,180,
-223,  6,181, 95,227,222,168,108,116,255,  0,255,  0, 47,196, 77,149,183,121,157,203,254,115,239, 69,110, 61,169,204,  8,140, 53,
- 26,115, 17, 75, 55, 24, 19,162, 75, 84,198, 38,149,186,227,169, 91,129,106,243,101,230,169, 28, 14, 25,157,231,169, 93,157,153,
-219,183,181,219,111,157, 83, 77, 81,174, 90, 18,116,255,  0,219,216, 89,133,235,119,110,111,141,212,181,165, 26,105,213, 62, 47,
- 83, 66,205,242,173,249,149,114,127,150, 72,228, 70,213,234, 38, 45,151,167, 72, 10,  5,153,205, 65,248, 91,156, 72,193,239, 84,
- 54,220,162, 67,141,167, 87,  0, 36,  1,217,195, 44, 58,231,153,122,125,251,190, 52,177,119, 93,125,245, 77,250, 63,192,101,191,
- 42,245, 60,123, 94, 12,115, 54,217, 93,212,105,122,121,123, 75, 63,171, 15,148,119, 49,186,144,222, 28,150,223, 47,239,240,245,
-239,149,200, 97, 23, 57,119,120, 41,118,101,233,198,167,179, 53, 79, 56,228,101,180,218, 20,175, 72,143,112,241,237,198,119, 75,
-243, 68, 49, 45,223,130,181,255,  0, 45,105, 71, 69, 29, 26,231, 94,211, 83,171,249, 74,121,183,113,238, 59,186,217,165, 91, 85,
-114,163, 79,149, 59, 14,234,183,176,184,208, 89,142,191,125,  8, 74, 77, 59,192,166, 56,243,182, 60,255,  0,249,224,245,183,186,
- 54,190,219,182,116,  1,211,137, 92,254,162,249,160, 27,183, 92,218,128,170,191,  6,205, 49,127, 15,232,212, 80, 33,201,134,168,
-169, 62, 86,130,212,105, 84,171, 29,215,147,186, 60, 37, 39,153,127, 75, 86,181, 85,230,215,242,251,232,121,239,158, 58,220,227,
- 24,224,227,235,118,238,142,156,162,244,255,  0,187,220,171,220,116, 23,203,123,162,221,175,209, 79, 78, 86,142, 89,218,130, 94,
-220,138, 79,199,223,238, 65, 58, 85, 54,230,250, 19,235,189,158, 97, 34,129,  8, 29,136, 72,173, 77, 73,231,122,239, 87,159, 81,
-201,149,217,112,224,151, 98,228,191,139,239, 58,127, 47,244, 88,116,188, 88,217,142,175,140,159,108,159, 23,252, 23,113,208,138,
- 58, 65, 81,224, 51,198, 57,182,120,121,204,222,118,117,111,207,254,185, 90,234,155,169,222,156,185,129,185,121,125,182, 20,164,
-108, 14, 95, 55,101,189, 69,133,108, 74, 29, 11,105,217, 37,216, 46,135, 93,170, 67,142, 81, 32, 45,192,154,249, 16,148, 99,216,
- 45, 98, 98, 99, 97,125, 61,140,171, 80,148,190,121,238,139,111,185,106,169,216,187, 23,123,169,226, 55,179, 51,114,179,214, 78,
- 70, 29,217,194, 31, 36, 54,201, 37,216,223,194,234,249,190,215,220,168, 54,252,202,250,230,230,151, 80, 92,220,228, 62,226,221,
- 60,142,220,220,189,157,178, 47, 19, 39,218,173, 59,129,169,136,145,184, 93,122,117,173,227, 30, 16,126, 19,  4,173, 38, 50, 80,
-116,165,102,174, 39, 46, 21,151,203,157, 18,206, 45,140,136,195, 34, 23, 20,226,147,106,148,142,146,213,234,251,123,184, 50, 47,
- 52,117,235,249,121, 24,210,158, 52,237,184, 73,180,164,157,101,172,116, 85,138,236,239,226,143, 89,249, 18,222,205,235,  3,148,
-251, 23,158,252,227,229,199,249,123,153, 86,196,203,151,106,181,110,168,105,114,239, 97,121,199,149, 21,207, 77,114,153,105,214,
-148,234, 25, 66,205, 18,154,141, 60,104, 14, 60,183, 49, 75, 14,229,203, 54,238,238,131,162,110, 47, 73,115,228,218,116,169,235,
-184, 78, 57,214,237,223,187,103,108,213, 90, 82, 95, 20,121,115, 73,170,211,238, 41,159,158,167, 38, 57,103,185,126, 92, 27,207,
-118, 95, 97, 48,157,195,181,151,107,186, 88,174, 14, 37,  1,216,210, 93,187, 70,130,164,182,181,102, 61, 86,222, 83,100, 87, 58,
-142,208, 49,181,228,156,137,219,234, 54,227, 23,164,170,154,237, 84,111,221, 74,152, 94,125,197,183,119,166, 92,148,146,172, 40,
-211,236,117, 75,222,157,  6, 63,148,159, 85,219, 31,151,125,  2,242, 63,101,115,114,236, 83,204, 13,219, 34,110,216,219, 54,196,
-130,236,167,154, 98,243, 50, 60,119, 10, 43, 84, 48,220,118,144, 11,134,137, 25, 36,102, 64, 50,249,159,166,206,238,126, 68,173,
-175,134, 20,147,124,181,138,111,214,219,224, 69,229, 62,171, 11, 93, 59, 22, 23,101,241,206,177,138,231,164,164,151,169, 37,196,
-232,137,189,106, 88, 44,220,236,219,252,138,220,155, 35,116, 91, 55, 30,233,149,112,131, 99,184, 75,143,104, 84, 25, 45,219, 26,
- 47,201,149,170, 60,247, 30, 75,  9,111, 73,214,166,135,188,148,211, 82,128,198, 18,233, 78, 86,101,118, 55, 32,212, 82,109,107,
- 85, 94, 11,229,165,125,124,153,208, 62,176,163,126, 54,101,110,105,205,180,157, 35, 71, 77, 91,210, 85,167,171,154,230,203, 19,
-152, 92,212,218,156,178, 54,  4,110, 95,137, 83,251,154,239, 15,107, 90, 89,129, 17,249,110, 57, 58,106, 92,113, 26,211, 29, 42,
- 40,105, 13,180,183, 28,113, 84, 74, 16,146,165, 16,  1, 56,165,143,141, 43,219,182,211,225,139,147,171,166,139,248,242, 75,155,
- 47,228,229,194,198,221,213,248,164,162,168,171,171,254, 26, 85,190, 72,169,237,127, 50, 30,157, 46,238,192,145, 25,155,250,118,
-204,200, 54, 11,219,247,183,172, 51,219,131,111,135,186, 39, 63,110,180, 61, 52,169, 62,171, 40,146,252,117,  4, 40,183,167, 77,
- 22, 72, 65,213,141, 73,121,123, 34, 53,249,106,156,149, 55, 42,183, 20,156,169,219, 68,255,  0,135, 19, 34, 30,101,198,149, 62,
-106, 53, 23, 93,174,137, 77,181, 26,246, 85,174,206,254,  5,175,181,121,171,182,183, 67, 23, 73, 78, 37,235, 92,107,100,249,150,
-146,229,224, 53, 25, 50,190,  9, 72, 66,228,198, 58,212, 23, 28,169,192, 18,188,170,123,  6, 50,238,227, 74, 20,231, 84,158,154,
-210,188,159,121,175,107, 46, 51,175, 42, 54,181,210,180,230,187,187,198, 46,105,117, 51,203, 78, 81,238,150,182,118,228, 50,164,
-223, 29,177,110, 77,226, 90,181, 48, 38, 45, 16,182,179, 80,222,154,133, 54,210,189, 79, 89, 73,156,215,164,216, 73, 43,207,134,
- 85,159, 27,167, 92,191, 29,209,162, 91,163, 29,116,214, 85,167,171, 71, 87,200,175,149,213, 45, 99,207,108,170,222,217, 75, 77,
-116,133, 43,235,213, 81,115, 55, 57, 59,212,  7, 47,185,230,245,225,141,139,241,161,118, 53, 91, 83, 51,241, 40, 18,161,  5, 38,
-237,105,143,122,138,166,190, 37,  9,214, 12,121, 40,213, 76,210,170,130,  6, 85,102, 94, 13,204,109,187,233,241, 87,131, 79,131,
-105,240,239, 67,240,186,133,188,173,219, 43,240,210,181, 77,113, 74, 75,143,115, 38,216,166, 94,  6,  0,  6,  0,  6,  0,  6,  0,
-  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 43,206,161,122,143,218,125, 55, 90,237,
- 87,221,237, 10, 92,139, 21,209,203,140, 84,202,130,150,214, 26,145,  2,201, 46,246,134,148,149, 41, 42, 42,125, 16,214,211, 65,
- 32,213,194,145,219,139,184, 88, 50,201,109, 69,170,170,123,218, 94,234,213,247, 17,220,186,161,196,170, 39,252,211,121, 25,111,
-178, 73,220,174, 89,239, 46, 88, 89,134, 39, 71,121,152,205, 56,228,167,211, 26,197, 41,248,109, 50,133,151, 75,236, 38,254,215,
-168,130,145,164,180,239,243, 51,209, 94, 95,188,218, 85, 85,175,230,215,208,246,186,122, 81, 15,213,199,237,234,254,102,244,159,
-153,119, 38, 45,247,196, 91, 46,118,187,163, 86,153,151, 70,172,214,123,170, 17, 29,232,183,  6, 78,224,184,216, 36,206,100,180,
-225, 87,195,199, 54,199,100, 56,170, 87,209, 33, 64,113,  1,139,161, 93,106,169,170,165, 86,187, 62, 20,210,244,186,165,233, 23,
-234,163,246,244,208,222,220,221, 92,239, 27,197,155,147, 59,219,147,219,113,203,157,159,153,151, 25,236,126, 11, 49,200,177,230,
- 61,  1,173,187,112,186,198,117,169, 14,186, 24,108, 40,198,109,226, 73, 85, 91,168,  0,168,129,134, 91,233,177,139,189, 27,146,
-163,182,150,188,171,185, 39,167, 30,116,244,138,239, 63,133,165,199,249, 21, 93,131,230,231, 97,252, 83,113, 46,249,183,100,173,
-180,205, 90, 44,118,135, 29,133,111,126, 44,107,102,219,181,206,186,177, 38, 84,167,189, 23,164,166,225, 56,180,210, 26,247,197,
- 14, 64, 84,232,207,203,110,145,164,151, 13, 94,175,140,164,149, 23, 20,168,170,234, 68,179, 22,186,125,168,137,147,127, 51,253,
-150,189,190,214,250,115,100,223, 27,229,213,198, 85,250,203,183,238, 43,118,216, 36, 92,174,150, 39,254, 31,225,147, 19,215,245,
- 26, 15,174,169,109, 78,233,162,129, 10,  9, 20, 81,171,253,130,123,182,239,142,228,147,107, 93, 19,231, 90,107, 78,225,255,  0,
- 84,184,209,208, 96,190,124,206,175, 92,169,230, 46,245,216,252,229,217,238, 70,191, 89,102,169,203,125,146, 29,194,216, 30, 98,
-217, 19,110,218,110,114, 18,169, 78,190,150,165, 74,117,235,136, 44,180,208, 21, 78, 68,130,154,153,161,208, 85,232, 66, 86,231,
-163, 90,186, 62, 46, 82, 92, 41,162, 84,213,177,175, 43,107,105,175,181, 17, 99, 91, 58,238,178,223,121,121,121,230,117,143,102,
- 94, 94,218,144,239,191,228,123,  3,206,187,106,105, 87,235,219,155,128,109,198, 88,140,217,146, 93,105, 11,144,164,146,185,  8,
- 70,148,215, 35, 65, 90, 82,233, 14, 51, 80,115, 85,113,220,248,232,182,238,215, 78,206,202,146, 44,138,170,211,157, 61,244, 35,
-210,254,101, 86, 88, 23,109,209,182,101,114,246,252,173,211,178, 88,105,221,215, 25,137, 22, 85, 53, 10, 68,155,164,139, 68, 88,
-200,113,201,104, 47, 42, 67,204,160,182, 80,146,157, 46,  2,178,138, 17,137,151, 66,109, 69,248,145,164,248,113,215, 68,219,225,
-165, 23, 31, 64,223,170,227,163,208,182,249, 33,206,249,188,218,185,238,189,177,127,219,210, 54,214,244,217,215,  8,214,107,197,
-190, 84,152,179, 17,234,203,181,199,188, 50,182,159,136,165, 37, 73, 44, 74,110,188,  8, 53, 29,152,205,203,196, 86, 84,100,165,
-185, 73, 85, 61, 87,  6,215, 62,244, 77,110,230,234,233, 74, 26,125, 73,111,  7,118, 85,158, 21,205, 37,113,152,125, 50, 32,174,
-228, 10,195,113,139,170,101, 84, 82,147,146, 74,194, 10, 66,141, 41,152,  6,167, 12,196,138,148,245, 22,227,162, 41,174, 84,243,
-173, 27, 90,201, 59,116,238, 41,151, 22,182,253,250, 65,149, 98,129,106,248,116, 56,252,102,219, 12, 25,111,174, 82, 74,210, 30,
- 82,106,141, 20,203,141, 77,105,122,230, 27,191, 42,199, 66, 21,119, 98,212, 71,126,245,  4,111,182,121, 12,236, 35, 46,207,186,
-125, 21,162, 37,218,235,112,114, 97, 14, 41, 58, 52,233,116, 40, 32,173, 36,162,169, 35,222,175,188, 18, 66,174,157,225, 82, 79,
-226,167, 33, 29,253,218, 45, 14,120,182,242,235,156,123,131,115, 61,179,236,187, 82,113,220,145, 86, 89,156,195,201,212, 88,112,
-100,160,126, 31,212,173, 15,106,138, 65,227, 92,111,188,152, 40,169, 54,146,101, 31, 13,214,135, 94,116, 63,210,221,239,147, 48,
-110, 27,239,152,200,  3,152,183, 82, 89, 75, 63,118,126, 26, 48, 32,208,122,101, 64, 21, 80, 10, 84,208, 12,243, 39, 28,247, 82,
-205, 87,105, 24,189, 63,137,123, 30,206,221, 95, 19,160,113,146, 90,  5, 43,145,225,128,  1,128,  6, 30, 99,114,207,101,243, 91,
-109,187,181, 55,204, 22,230,218, 93,204,  5,138, 45,181, 82,129,109,172, 81, 73, 80,239,  6,184,207,234,125, 43, 31,168, 90,118,
-175,193, 78, 47,183,239, 79,138,125,232,208,233,125, 87, 35,167, 94, 87,172, 77,194,107,154,251,154,224,215,115, 57,167,118,252,
-175,237,143,206, 83,219, 51,113,185, 26,  2,137, 41,102, 99,  9,125, 73, 29,193,105, 91,127,104,199,148,230,254,205, 99, 78, 85,
-179,126, 80, 93,142, 42, 94,250,196,245,172, 47,222,140,155,113,165,235, 17,155,237, 82,113,247, 82, 67,175, 45,254, 91, 59, 67,
-111,220, 90,184,239,123,130,238,197,165,  5,134, 52,134,153, 81,  6,190,100,  2, 73,246, 19, 76,105,116,111,218,108, 12, 73,169,
-222,147,188,215, 39,164,125,105, 86,190,183, 67, 47,173,126,238,103,229,193,194,204, 85,148,249,173,101,234,110,148,245, 42,157,
- 37, 96,219,214,157,179,108,110,209,102,101, 44, 65,105, 33,  8, 66,  0,  2,128, 80,100, 49,234, 80,130,130, 73, 42, 36,121, 92,
-230,230,219,110,173,155,184,112,208, 96,  0, 96,  0, 96,  0, 96,  0, 96,  2,130,234,219,150,125, 80,238,174,100,109,  9,252,132,
-220, 50,173,156,191,187, 41, 59,119,152, 44,179, 52,199, 92, 11,107, 51,153,188, 38,227,111, 21,  5, 50,156,110, 59,246,245, 41,
- 21, 85, 36,165,124, 26,168,218,233,185, 56,214,237,207,197,138,114, 90,195, 78, 46,141, 81,247,106,165,255,  0, 75, 92,204, 46,
-171,139,149,114,237,191,  6,109, 65,233, 61,105, 69, 85, 45,203,189,209,199, 79,196,159, 35,156,167,242,123,230,163,117,186,239,
- 38, 46,123,150,254,204,185,151, 56, 77,182,109,147, 45,177,160, 75,183, 59,190, 96, 75, 84,139, 68,191,198, 20,244, 67, 22,198,
-219,237,173,179,  2, 63,168, 20, 82,125, 87, 40,165,110, 44,222,155, 21, 10, 66, 58, 39,197, 54,211,240,228,169, 37,178,142,179,
-163, 79,116,169,220,142,125,224,117, 89, 59,149,156,181,146,224,210, 77,120,145,117,139,223, 85, 72, 85, 53,178, 53,239,124, 95,
-185,233,201, 14,180,174,123,131,152,252,191,216, 76,238,107,223, 45, 46, 54, 24, 49,246,205,199,112,110, 40,105,109,169,240, 30,
-182, 58,220,120, 72, 85,201,213, 62,151,125,  7,212,243,179, 99, 48,237,117,164,186,242, 28,  1, 48, 97,103, 98, 70, 54,167, 61,
-145,154,147,220,148, 95,  7,187, 87,240,233, 74,170, 40,182,184,105, 22,181,159, 63,167,230,202, 87,161,109, 78, 80,113, 91, 91,
-146,226,182,232,190, 39, 90,209,213,201, 69,241,214, 73,232,167, 56, 54, 55,204,150,110,246,223,235,229,212,139,218,101,205,133,
-189, 19,101,184,181,123,181,179, 99,122,  4,173,174,236,109,179,  6,215, 13, 82, 16,252, 91,147, 23, 66,203,142,200,117,166,211,
-229, 89,245,148,149,  4,165, 49, 50, 58,122,133,189,234, 58, 56, 85,109,123,170,164,183,185, 58, 81,197,198,169, 36,223, 45,  7,
-102,227,117, 41, 92,187,225,185,106,174, 81,238, 91,104,224,212, 20, 85,106,164,165, 70,219, 73,113,248,157, 75, 95,167,171,111,
- 85,220,152,218,156,208,103,117,195,187,111, 95,129,118, 61,207,150,246,251,221,226, 12,137,215, 34,189,177,  9,217, 81, 62, 58,
- 75,195,210, 65,187,252, 66, 18,100, 40,  4, 12,211, 84,105,174,110,109,204,108,137,218,218,212, 42,154,155, 73,209,124, 78,142,
-137,107,240,211,135, 31, 73,169,129,111, 43, 26, 23,183, 41, 78,141, 56, 39, 36,219,248, 35, 85, 86,244,248,234,181,225,203, 74,
- 30,102,108,238,151,126,117,219, 39,171, 11,223, 89, 82,249, 89,  2,251,207, 59,203,146,157, 92,189,193,115,219,210,216,134,100,
-209,  4, 69,109,187,171, 97,  1, 12,128,202, 51, 58, 91,242,140,122, 38, 71, 85,232,183,113, 99,139,227, 56,219,141, 52, 74, 74,
-180,237,248,123,117,125,231,153,226,244,142,189,103, 50, 89,126,  4,101,114, 85,214, 82,131,165,123, 62, 53, 77, 52, 93,218, 29,
- 51,176,185,245,255,  0, 48,165,247,116,193,219,219,191,151, 91, 98,199,181,165,172,197,149,119, 65,180, 57,240, 40,113,  5,  2,
- 70,134,110,210, 22,160,218,136, 81,  9,105,100,211,221, 60, 49,206,223,198,232, 16,131,112,187, 57, 53,193,124, 90,247,124,171,
-239, 71, 77,143,151,230, 73,205, 70,118,161, 24,190, 46,177,211,191,231,124, 61, 12,153,124,158, 54, 55,204,243, 99,110,189,244,
-142,186,238,151, 57,187, 82, 91,172,155, 52,125,203,116,106,237, 36, 77, 75,139, 50, 29,136,227,110,189,233, 70, 40, 41,  1,  1,
- 65, 53,166,148,140,235, 83,205,153, 61, 54,234,183,244,137, 38,184,209, 81, 83,149,120, 85,253,155, 46,121, 55, 23,170, 89,119,
-126,182, 77,166,244,171,220,235,205,173, 93, 23,119,177, 29,228,187,101,189,197, 21,184,202, 74,143, 18, 70, 56,195,186, 56, 83,
-230,249,209,231, 62,250,137,231,167, 78,219,211,145,187,107,241,141,175,178, 47,179,174, 59,174, 75,115, 45,209, 62, 10, 59,215,
- 11, 59,237,172,162,107,237, 45,202,162, 43,166,141, 37, 68,105,225, 82, 43,217,121, 95,171, 99,226, 99,229, 66,236,168,238, 69,
- 40,232,221, 93, 37,216,157, 56,174, 39, 13,230,238,143,147,155,147,137, 59, 49,221, 27,115,110, 90,165, 69, 88, 62,109, 87,131,
-225, 82,192,249,130,198,249,146,237,152,155, 27,125,124,191, 19,107,152,205,144,206, 59,175,107,221, 20,194, 87,119,248,132,180,
-152,233, 34, 90,153,104,182,216, 74,201,210,251,110, 84,138, 18, 42, 49, 67,160, 62,156,212,225,153,185,110,166,217, 46, 92,107,
-194,175, 95, 67, 70,143,152,215, 83, 78,220,240,118,189,181,221, 23, 79,138,180,167, 26, 42, 45,121,166,114, 47, 63,182, 55,206,
-135,230,131,109,181,114, 35,157,219, 58,207,202,222, 69,183, 53,137,215,185, 17, 28,108,153, 78, 48,106,149, 56,216,153, 46, 67,
-190,152, 37, 77,182,144,132, 21,208,169, 85,  0,167,170,194,203,232,253, 25,187,182,103, 43,183, 41, 69,221,238, 73,119,189, 93,
- 56, 35,144,207,194,235,157,113, 70,205,232, 70,205,170,213,186,241,247,182,251,150,138,188, 95,103,101,110, 62,141,229,114,227,
-148, 60,145,229, 87, 39, 45,159, 21,100,216, 59,166,195, 54,226,234,157,142,211,173,218,237,214,233,172, 59, 37,210,234,144, 92,
- 81,117,240,165, 37, 21, 81, 82,201,  9,165,113,200, 90,234,158, 45,204,139,151, 94,183, 33, 42,122, 91, 90,123, 23,184,237,111,
-116,143, 10,214, 53,171, 42,177,181, 56,215,135,  4,154,175,126,175,222, 76,121,127,202, 61,237,184,186,180,221,220,249,230, 85,
-191,225, 45,150,232, 80,182, 62,192,105,110,178,233, 22,116, 33,187,157,202,118,150, 22,176,133, 76,156,180,182, 66,232,189, 17,
-144, 72, 21,206,173,252,152, 71, 22, 22, 96,235, 86,229, 63, 79,  4,189, 75, 94,202,201,150,241,241,103, 44,187,151,238, 42, 81,
- 40, 67,253, 60,100,255,  0,234,150,157,180,138, 46,139,141,150,209,119, 84,101, 93, 35, 55, 33, 80,158, 76,200,133,228, 37, 69,
-151,208,149, 33, 46, 34,190,234,130, 84, 69, 71, 97, 56,205,140,220,107, 71,196,213,148, 20,169, 85, 90,106,113,111, 83,157, 35,
-115, 94,253,207,253,217,119,228,254,194,154,226,231,109,221,141,104,229,166,236,183,222,109, 86,253,191,182,110,219,114,225,116,
-144,185, 23, 59, 99,183,  6,157,144,220, 97, 34, 58,218, 64,129, 32, 18,146, 19,160,146,172,118, 29, 55,170,218,141,136, 43,151,
- 22,146,155,156, 90,110, 82, 82, 81,209, 58, 81, 86,142,191, 18,245,156, 79, 84,232,247,167,145, 55,106,219,214, 22,212, 36,164,
-148, 98,226,228,235, 40,238,171, 74,169,165,182, 94,163,103,101,116, 25,184,238, 93, 65, 90,238,188,198,217, 54,215, 57, 79,110,
-188,243,138,239, 12, 92, 27,179,207,133, 17, 91,158,233,100,126,199, 36, 91,212,226,194,139,141,198,144,180,164,183,228, 41,243,
-232, 37, 53,101,238,183, 21, 97,168, 92,123,220,108,173, 42,155,218,167,185, 87,214,189, 60,170, 58,199, 64,148,178, 19,185,109,
-108, 82,188,213,118,180,183,184,109,116,245, 62, 90,115,166,130, 29, 43,244,137,190,246,207, 55, 57,113, 39,153, 60,164,141,101,
-145,183,246,118,238,218, 28,211,222, 82, 36,109,203,132,125,235,119,186,201,180,169, 19,220, 83, 18, 93,184, 74, 68,195, 26, 83,
-234,248,216,232, 82, 11,138, 73, 72,  4, 85,221, 79,170,194,118,174,236,188,222,233,194, 80,143,196,182, 36,165,167, 13,170,149,
- 75,225,110,180,168,222,147,209,238, 66,245,175, 18,194,142,219,115,141,201, 86, 45, 77,183, 29,120,185, 58,210, 79,226, 74,149,
-161,217,246,203, 29,150,202,169, 43,179, 67, 98, 34,230, 60,102, 76, 49,154,109,162,251,234, 66, 90, 46,185,160, 13, 75, 40, 66,
- 83,168,231, 64,  7,102, 57,  9, 77,202,149,117,161,218,198,220, 99, 90, 36,171,169,181,134,143,  6,  0,  6,  0,  6,  0,  6,  0,
-  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 35, 60,211,228,255,  0, 47,185,209,102,
-183,237,254, 99,192, 23, 11, 69,178,231,110,220,113, 25, 82,150,144,153,214,185, 41,149, 29,103, 65, 26,146, 22,154, 41, 39, 37,
-  2, 65, 20, 56,159, 31, 38,118, 27,112,116,109, 53,234,124, 70,206, 10, 92, 72,173,191,163, 94,157, 45,178,237,114,227,237,230,
-212,108,215,187,222,240,128,211,174, 58,227, 72,185,110,  6,157, 98,114,203,107, 81, 74,144,164, 60, 66, 80, 70,148, 81, 58, 64,
-210, 49,102, 93, 82,251, 79,226,227, 21, 31, 84,120, 12, 86, 99,217,206,190,211, 81,190,134,250,104,111,109, 88,246,159,249,127,
- 85,155,110,237,251,190,197,181,165,201, 18, 22,180, 90, 47,136, 74, 38,182,165,169, 69, 74, 90,194,114, 90,142,164,149, 42,132,
- 84,225,223,221,175,238,148,183,107, 41, 41, 63, 74,224, 39,129, 26, 37, 78, 10,130,215,238,141,121, 49,125,137,104,134,149, 94,
- 45,200,219,235,136,229,133,118,107,237,218,222,229,180,194,179, 42,192,216,136,184,143, 33, 77, 36,195, 90,144,176,130,  2,234,
- 74,170, 73,194, 67,169,221,139,124, 30,234,214,169, 58,213,238,214,171,180, 29,136,191, 87,255,  0,  3, 93,175,229,255,  0,211,
- 54,220,113, 50,246, 93,182,225,183,239, 40, 82, 84,213,211,111, 95, 47, 22,217,237,163,240,200,182,135, 27, 18,226, 72, 67,197,
- 14,177, 13,146,224, 82,142,183, 18, 28, 63,121,230,195,229,214,111,203,230,106, 75,177,164,215, 22,248, 53,201,183, 78,237, 56,
-  8,177,226,184,104,110,202,232,111,166,217,219, 38, 47, 46,231, 89, 94,127,104,195,149,124,185,199,140,245,194,123,139, 76,157,
-196, 93, 51,156,245,214,233,120,168,169,213, 41, 10, 43,212,133, 80,164,130,  1,195, 87, 86,190,166,230,158,173, 37,193,127, 79,
-  1,124,  8,210,159,109, 77,104,253,  7,242, 26, 29,206, 78,227,132,238,226, 99,122, 77,117,233, 19,119, 11, 27,175,113,181,119,
-144, 36,195,139,  5,246,157,156,220,176,250,155, 91,112,152,242, 21, 81, 37,  9, 41,210, 64,195,159, 87,188,210, 95, 13, 23, 45,
-177,167, 22,248, 82,156,223,180, 79,167,143,127,181,155,232,232,183,144, 72,218,211,118, 72,131, 59,252,173, 57,201,146,220,135,
-248,189,208,  6,229,205,189, 39,112,170, 91, 74, 15,  5,162, 67,115, 82, 28,109,212,171, 90, 41, 64,105, 81,134,127,116,189,185,
- 74,170,170,156,151,  4,182,211,135, 10,113, 66,248, 17,165, 62,221,163, 93,203,161,126, 74, 65,217, 91,194,201,179,173,192,238,
-125,225,106,252, 26,233, 63,113, 76,187, 92,196,199, 27,159, 38,234,212,137,139,248,166,165, 45,209, 46, 82,214, 92, 67,201, 88,
-242,132,168,  4,164,  9, 35,213,174,185,193,201,233, 23, 85, 68,149, 52, 74,139, 74,112, 92, 41, 65, 29,136,209,211,152,231,210,
-151, 77,247,126,158,237, 91,154, 86,235,191,185,184,183,182,237,186,166,251,115,154,226,238, 14, 33,178,205,190, 61,177,150,144,
-229,214, 84,201, 75,210,212,116,146,167, 30, 57,154, 36, 37, 33, 41, 17,245, 28,229,144,227,182, 59, 99, 21, 69,195,181,190, 73,
- 46,125,130,217,181,178,181,117,169,104, 92,173,118,235,196, 69, 64,186,176,137, 16,151,239, 54,242, 66,146,124,104,123,113, 66,
- 50,113,117, 68,173, 84,230,222,123,116,143,204, 23,183, 97,190,114,120,179, 35,109,201, 72,173,170, 86,128, 96,173, 62,240,101,
-110, 60,208,244,148,124,193, 38,164, 18,105,149, 41,177,137,212, 35, 24,210, 78,133,107,182, 91,122, 13, 60,175,232,167,152,151,
-157,216,196,238,113,250, 81,246,196, 69,  7,211, 22, 41,106,174, 40,112, 31,118,235,199, 87,244,138,133,  7,  1, 92,196,151,250,
-148, 84,126, 23, 86, 54, 22, 29,117, 58,170, 28, 40,118,248,232,137,  5,180,181, 25,  9, 74, 16,132,  0,  0, 74, 82, 18,145,244,
-  1, 76, 97, 54,223, 18,229,  5,112,128, 12,  0,112, 79, 38, 62,106, 28,246,230,  6,232, 22, 29,201,102,176, 51, 25, 71, 74, 93,
-135, 22,226,154,159,254,100,213,227,231, 78,181,251,185,212,241, 45,239,133,187, 47,211, 25,254,116,111,227,116,203, 55, 29, 27,
-151,187,249, 23, 95, 48,122,174,230,214,216,218, 75,191, 89,225,218, 87, 48, 32,173, 41,145, 30, 98,145, 80, 43,152, 68,148,159,
-183, 28,118, 15,254,192,117,123,183,182, 74,213,138,119, 70,117,255,  0,246, 22,110,244, 75, 81, 90, 57,123,191,145,194,188,224,
-249,245,117,167,203,155,172,219,117,191,109,108,183, 83, 25,101,  8, 83,246,235,225, 38,135,183, 69,213, 56,247, 30,143,231, 60,
-156,203,106, 78, 48, 85,236, 79,243, 28,245,235, 74,  7, 59,238,207,249,167,190, 99,214, 91,161,131,110,217,124,185, 91, 32,210,
-174,218, 55, 49, 60,105,250,183,193,142,215, 31,168, 74,226,171, 72,205,158, 67, 76,220,178,255,  0,205, 31,243, 21,156,200,114,
-102,205,229,218, 84,127,153,105,220,163,243,222,206, 25,115,169,202, 60,144,170,251, 28,155,255,  0,153,243,230,  6,191,123,104,
-114,248, 15,255,  0,229,110, 63,255,  0, 53,136,127,187, 79,177,125,189, 99,252, 86, 33, 59,254,104,206,191,162,127,253, 67,151,
-196,248,218,183, 31,255,  0,154,196,177,234, 51,124,151,219,214, 35,191, 66,228,233,163,254, 97,174,170, 57,198,251,113,247, 86,
-221,217,236, 58,179,164,136, 16, 47, 77,246,255,  0,219, 92,220,199, 77,209, 45, 91,204,116,155,107,209,254, 53, 43,222,203,148,
- 86,148, 58, 98, 55,204,239,159, 15,160, 57,248, 77,131, 74,128, 80,164, 91,143,104,255,  0,108,199,161, 67,201,120,146, 73,238,
-159,181,126, 82,183,247, 25,246, 47,183,172, 83,254, 38,156,248,255,  0,116,216, 63,186,220,127,124,195,191, 68,226,126, 41,251,
- 87,229, 15,238, 51,236, 95,111, 89,145,243, 51,231,190,157, 74,180,216, 59,255,  0,178,220, 63,124,193,250, 39, 19,241, 79,218,
-191, 40,127,113,159, 98,251,122,196,228,124,207,121,229, 21,149, 72,126,215,183,208,202, 69, 74,149, 26,224,  0, 30, 39,227, 48,
-191,162,113,127, 20,253,171,242,135,247, 25,246, 47,183,172,215,141,243, 77,231, 60,202,252, 61,191,110,184,  6, 94, 72,247,  3,
-159,247,204, 31,162,113,127, 20,253,171,242,135,247, 25,246, 47,183,172,217, 79,204,207,158,139, 32,254, 15, 96,169,255,  0,252,
- 75,135,239,152, 23,146,113, 63, 20,253,171,242,135,247, 25,246, 47,183,172, 56,249,151,115,213, 70,191,132, 88, 63,186,220, 63,
-124,194,254,136,196,252, 83,246,175,202, 43,234, 19,236, 95,111, 89,131,243, 49,231,153, 63,225, 22, 10,255,  0,178, 92,127,124,
-193,250, 35, 19,241, 79,218,191, 40,159,220,103,216,190,222,179,  3,230, 99,207,122,127,132, 88, 43,254,203,112,253,243,  7,232,
-140, 79,197, 63,106,252,161,253,198,125,139,237,235,  2, 62,101,220,242, 80, 36,217,182,253,107,255,  0,237, 46, 31,190, 96,253,
- 17,137,248,167,237, 95,148,119,247,  9,246, 47,183,172,201,249,150,243,200,103,248, 62,223, 31,255,  0, 18,225,251,230, 15,209,
- 24,159,138,126,213,249, 67,251,132,251, 23,219,214, 96,124,204, 57,232,147, 84,218, 54,248, 61,226, 37,195,247,204, 57,121, 31,
- 19,241, 79,219, 31,202, 31,220, 39,216,190,222,176,223,241, 52,231,199,251,166,193,253,214,227,251,230, 23,244, 54, 39,226,159,
-182, 63,148, 63,184, 79,177,125,189, 97, 87,243, 50,231,193, 79,248, 69,128,251, 98,220, 63,124,193,250, 27, 19,241, 79,219, 31,
-202, 31,220, 39,216,190,222,176,167,230,109,207,138, 80,218, 44, 20,255,  0,101,184,254,249,131,244, 62, 39,226,159,182, 63,148,
- 62,190,125,136, 79,254, 38,124,246,109,117,110,203,183,190,136,151, 10,255,  0,254,230, 28,188,139,134,255,  0,170,231,182, 63,
-148, 62,190,125,136, 81, 31, 51,126,125, 42,154,237, 22, 15,238,183, 31,223, 48,191,161, 49, 63, 21,207,108,127, 40,125,124,251,
- 23,219,214, 40,223,204,199,158,202, 21, 54,139,  0, 60, 50,139,112,253,243,  7,232, 76, 79,197,115,219, 31,202, 57,103, 79,177,
-  7, 31, 50,254,123, 19, 67,105,176,255,  0,117,184,126,249,132,126, 68,196, 95,213, 63,108,127, 40,191, 91, 62,196,100,124,203,
-185,236, 77, 63,  9,176,255,  0,117,184,126,249,134,254,134,196,252, 83,246,199,242,142, 89,146,238, 13,255,  0, 18,190,122,127,
-186,108, 63,221,110, 31,190, 96,253, 13,137,248,167,237,143,229, 23,235, 37,220,100,124,202, 57,236,127,251, 77,134,159,236,183,
- 15,223, 48,171,200,184,143,250,167,237,143,229, 19,235, 37,220, 27,254, 36,220,244,200,126, 21, 98,254,235,112,253,243, 10,252,
-139,137,248,167,237,143,229, 15,172,151,112,116,124,200,185,228,165, 80,218,172, 84,255,  0,101,184,126,249,134,254,134,196,252,
- 83,246,199,242,138,178,229,220, 31,254, 35,220,239,255,  0,117, 88,255,  0,187, 79,253,239,  9,250, 31, 19,241, 79,219, 31,202,
- 59,234,165,220, 24,124,199,121,218,120, 90,172,127,221,167,254,247,131,244, 62, 39,226,159,182, 63,148, 62,170, 93,192,255,  0,
-136,231, 59,171, 79,194,172,127,221,167,254,247,131,244, 62, 39,226,159,182, 63,148, 62,170, 93,198,127,226, 55,206,239,247, 85,
-143,251,180,255,  0,222,240,126,135,196,252, 83,246,199,242,135,213, 75,184,193,249,141,243,199,178,213, 98,250, 99, 79,253,239,
-  7,232,124, 79,197, 63,108,127, 40,125, 84,187,140,127,196,119,158, 95,238,171, 21, 59,254, 26,127,239,120,114,242, 54, 35,254,
-169,251, 99,249, 67,234,165,220,100,124,199, 57,223,219,106,177,255,  0,118,159,251,222, 23,244, 46, 31,226,159,182, 63,148, 95,
-170,151,112, 63,226, 57,206,255,  0,247, 85,143,251,180,255,  0,222,240,126,132,196,252, 83,246,199,242,135,212,200,  9,249,142,
-115,188,138,254, 21, 99,254,237, 63,247,188, 31,161,113, 63, 20,253,177,252,162,253, 76,187,131, 35,230, 51,206,242,104,109, 86,
- 63, 10, 70,159,251,222, 15,208,184,159,138,126,216,254, 80,250,153,119,  7, 31, 49, 94,119,126,181,174,199,253,218,127,239,120,
- 63, 66,226,126, 41,251, 99,249, 69, 89, 18, 51,255,  0, 17, 78,118,210,191,133, 88,255,  0,187, 79,253,239,  7,232, 76, 79,197,
- 63,108,127, 40,190, 59,  0,249,137,243,182,185,218,236,116,255,  0,102,159,251,222, 15,208,152,159,138,126,216,254, 80,241,216,
-116,252,196,121,212,120,218,236,149,255,  0,102,159,251,222, 23,244, 38, 39,226,185,237,143,229, 28,175, 54, 27,254, 33,188,235,
- 60, 45,118, 79,238,211,191,123,193,250, 19, 19,241, 92,246,199,242,142,241, 89,159,248,134,115,163,253,217,100,254,237, 59,247,
-188, 39,232, 76, 79,197, 63,108,127, 40,120,172,202,126, 97, 92,233, 60,109,150, 74,127,179, 78,253,239,  7,232, 92, 63,197, 63,
-108,127, 40,120,172, 51,127, 48,126,116,168, 85, 86,203, 45, 63,217,167,126,245,134,254,134,196,252, 83,246,199,242,138,174, 49,
- 65,243,  2,231, 45, 42,171,101,150,190, 17,231,126,245,132,253, 13,137,248,167,237,143,229, 23,196, 97,147,215,255,  0, 57, 15,
- 27,109,151,251,188,239,222,176,191,161,177, 63, 20,253,177,252,161,226, 48,227,175,174,114,159,254,217,102,254,239, 59,247,172,
- 51,244, 70, 39,226,159,181,126, 81,209,149, 67, 55,215,199, 56,148,  6,171,109,154,190, 17,230,254,245,131,244, 70, 39,226,159,
-181,126, 81,106, 40, 58,244,230,249, 63,225,182,127,238,243,127,122,194, 63, 36, 98,126, 41,251, 87,229, 10,135,255,  0,215,135,
- 55,191,221,214,127,238,243,127,122,194,126,137,197,252, 83,246,175,202, 27,128,122,241,230,232, 21, 54,235, 63,247,121,191,189,
- 96,253, 19,139,248,167,237, 95,148, 55,  4,255,  0,215,183, 55, 73,242,219,108,255,  0,221,230,254,243,135,126,136,197,252, 83,
-246,175,202, 21,  7,254,189,121,191,254,237,179,255,  0,119,155,251,214, 15,209, 24,159,138,126,213,249, 66,166, 15, 94,188,223,
-  2,166,219,103,167,251, 60,223,222,176,126,136,196,252, 83,246,175,202, 21, 10,122,249,231, 13,  9, 22,219, 55,247,121,191,189,
- 97, 87,145,241, 63, 20,253,177,252,161, 80,191,250,251,231, 23,251,182,205,253,222,119,239, 88,119,232,108, 79,197, 63,108,127,
- 40, 84, 31,250,250,231, 31,251,182,205,253,222,119,239, 88, 63, 67, 98,126, 41,251, 99,249, 66,167, 15,244, 87,113,143,119,222,
-205, 70,152,160,164,184,  3,173, 30,218, 19, 81,143,206, 95,220, 14,155, 60, 91, 58,112, 58,251,113,217,112,239,219,190,207,143,
-123,217,166, 19,180, 41,244,200,251, 49,224, 54,114, 93,171,206, 70,150,234,232,121, 67,243, 13,229, 27,123, 23,119,201,118, 40,
-171, 82, 84,178, 64,225, 94, 56,250,143,246,251,171, 60,155, 42, 47,145,201,245, 27,123, 38,206, 22,220, 91, 65, 15,221,148,234,
-209, 83, 92,141, 49,237, 56,249, 59, 81,205,200,211,147,  1, 22,246,189, 52,166,128, 14, 32, 97,238,238,242, 45,244, 53, 92,150,
- 16,221, 16, 56, 97,209,141, 88, 59,180, 35, 59,130,234,250, 93, 35, 58, 87,179, 23,237,193, 21,101,125,157,  3,208, 52,107,140,
-157,196,219,194,190,154,157,168,173,123,198, 58,159, 45,193,187,149, 68, 50,190,217,233, 69,169,146,220, 70, 91, 95, 16,132,215,
-232, 78, 61,207, 29,124, 10,163,107, 83,105, 73,  0, 84, 98,192, 26, 55,219,196,123, 29,169,251,164,147, 70,152, 66,156, 87,208,
- 43,129, 42,129,207, 60,231,234, 86, 82,246,160,183, 35, 75, 82,229,168,157,  8, 57,134,193, 52,175,183, 14,185, 72, 33, 82, 42,
- 24,157, 75, 92,246,218,210, 25,124,167, 73,214, 64,200, 19, 94,209,136, 93,232,143,218,234, 89, 60,163,235,222,223,121,220, 12,
-109,221,196,144, 25,112,134,253,108,178, 36,208, 86,184, 21,212,248, 14,118,154, 58,130,219,115,137,117,134,220,216,106, 11,142,
-234, 66,208,160,106,  8, 60, 49, 49,  9,177,128,  1,128,  0, 78,  0, 11, 76,176,253,160, 22,174,149,120, 97,200, 80,248,  0,201,
- 25,103,195,  8, 56, 34,219, 77, 50, 24,116, 64, 38, 36, 20,202,120,140,  0, 42,223,111,118,  0, 21, 71, 28, 54,100,129,135,188,
- 61,180,253, 56, 96,168, 81,180,234, 77, 14,  1,226,136,  0, 16,158,204, 42,116,  0,225, 21,224, 50,192,221, 64, 81,176,114, 74,
-112,130,161, 68,160,147, 66,112,131,204,164, 36, 26,215,  0,  6, 79,155,134,  0, 12,150,137, 57,112,239,192,  2,133,  0, 39,203,
-199,  0,  5,244,207,118,  0,  1,104,  1,217,133, 76, 84, 20,180,186,212,112,238,195,170, 56, 50, 88, 87, 19,133,  1, 68,182,  5,
-  1,205, 88, 77,195,162, 40,150,171,252, 88, 55, 14,  7,166,145,146,135,210,112,110,  3, 58, 17,252,149,193,184, 12,182,142,252,
- 27,128, 80, 84,240,225,195,  6,225,209,226, 30,137,  2,167,235,193,184,144,  3,207,144,195, 64, 89, 41, 39,134,  1, 80,179,105,
-237, 60,112,148,160,162,168,104,100,175,179, 12,110,162,139, 54,218, 72,212, 70,120,107, 99,226, 28, 33, 35,  8,216,227, 41,226,
- 48,130, 10, 96,  0,171, 70,172,198,  0, 19,  9,167,151,183, 14,220, 45, 65,133,  0,101, 76,248, 96, 20, 72,144,  5, 70,  0, 48,
-162, 84,107,137,  4, 11,169, 53,166,  0, 56,191,163,238,103, 43,103,115,102, 20,105,110,255,  0,221,233, 89,210, 84,127, 84,231,
- 79,163, 31, 11,126,226,249,118, 25,120,173,165,173, 25,220,220,182,183, 84,245,127,151,155,178, 22,237,218,173, 59,  5,196,172,
- 56,142,194, 59, 70, 62, 37,234,248, 63, 71,145, 40,178,120,180,245, 56,183,230, 99,200,139,133,234, 18,247, 36,100, 26, 51,169,
-102,131,143,102, 61, 87,246,207,174, 43,115,217,218, 97,245,139, 59,150,227,205, 45,201,182, 83, 30,106,194,147,157, 78, 62,150,
-199,191,186, 40,227,110,170, 17, 91,246,219, 83,168, 82,130,114,236,197,203, 55,117, 43,201, 84,140, 74,179,252, 58,202, 22,154,
-167, 26,113,154,166,133,121,186, 13,147,118, 52,139,154,245,198,104,168,147,150,144,123,113,106, 18,155,228, 64,206,202,232, 51,
-148,171,179,165,135,228,180, 18, 50, 81,168,207, 30,147,228,252, 71, 47,137,170, 12,104,236,102, 90,244,210, 18, 56,  1, 65,245,
- 99,215,160,168,168, 57,  1,245, 17,153,224, 56,125, 88,112,165, 97,207,253,251,110,180,237,119,109,233,125, 62,163,131,239,  2,
- 85, 83, 65,236,195,162,185,138,142, 22,230, 94,255,  0, 93,202,240,244,149, 57,247,105, 58, 26, 73,224,  0,197, 44,155,196,240,
-133, 74,198,251,185,101, 79,116,249,179, 60, 51,198, 92,238,150,227,  0,219, 90,116,152,183, 20, 75, 74,143,168, 20, 21,168,158,
-208,120,226, 75, 87, 26, 98,220,134,135,124,244, 85,206,247, 55, 45,149, 27, 66,242,238,185,109,143,184, 90,142,116, 29,153,227,
-106, 18,220,140,249,198,135, 69,161, 90,133,112,242, 51, 60,112,  1,133,249, 79,208,112,248,160, 19,212,160,106, 14, 28, 40,100,
-172,147, 67,245,224,  0,220,114,192,  2,128,  2, 40,112, 10,132,214,154,101,223,133,139,160,161, 61, 37, 14,  7, 44, 59,114,  0,
-201, 97, 92, 78, 13,194,138, 37,  4, 10,118,224,220,  6,189,230,245,111,219,214,183,238,247,119,155,143,111,142,146,227,142,190,
-176,218, 18,145,149, 74,149,144,196, 82,148, 99, 26,201,146, 66, 13,232,138, 11,122,245,241,179,237,119,247,224,236,134,157,189,
- 71,183,181,241,215, 58, 54,196, 86,217,143, 93, 37,212, 59, 45,198,212,226, 69, 15,  4,143,110, 48,115, 58,234,181,242,199,113,
-175,131,210,101,123,230,211,188,124,221, 61, 87,187,183, 57, 82,239, 50, 33,165,187,162,109,225, 50,229,126, 24,135, 36,199,114,
- 51,160,150,208, 94,140, 22,150,220,169,  0,151,125, 52,234, 20,  5, 88,194,181,231, 77,183, 54,206,219,143,175,249,163,166,189,
-228,255,  0,246,119,219,155,147, 93,200,132,244,195,243, 46,219,220,219,186, 53,183,185,135, 25,171, 61,237,231, 93, 66, 18,  4,
-128,180,133, 81, 77,133, 37, 72,210,  2,120, 41, 85,  3,134, 67, 27,216,221,118, 55, 30,215,162,245, 28,197,206,159, 40,170,209,
-182,117, 70,219,189,219,183, 53,173,171,189,180,149, 64,122,186,  9,165,114, 52,204,103,141,155,119,163,113, 86, 46,168,169,114,
-212,173,189,178, 84, 99,154, 26,  9, 87,148,103,225,150, 36,220, 50,129,130, 72,236,166, 18,160,100,160,171,136,175,183, 11, 80,
- 12,134,255,  0,147,  5, 64, 49, 74,235,151, 12, 34, 29,200, 21,195,134,131,  0, 25,244,211,219,199,219,128,116, 76,134,115,168,
- 25,248,224, 28, 29, 40, 39, 35,153,194,212,  3, 33,154,251,112,149, 36,160,168,104, 36, 80,138, 28, 21,  0,  6,199,126,126,204,
-  0,  2,205,123, 62,204, 40, 25, 67,102,180,236,241,192, 58, 33,210,198,172,251, 70,  1,244, 20, 12, 83,135, 28, 37, 80,  7,244,
- 50,236,174, 19,112, 25, 74,  8, 57,240,193, 16, 22,104,  3,134,182, 60, 81,  9, 37,117,236, 31,193,132,  1,100, 36,171,217,134,
-177,241, 50, 19,158,100, 83,  8, 40,100,160, 30, 31, 94,  0, 14,148, 80,231,158,  0, 10,172,129, 29,163,  0,  4, 86, 73,195,232,
- 40,154,149,164, 87,183,  0,162, 69,220,248,215, 10,144,128,170, 84, 59,176,228,128,198, 20,  2,209,117,213,219,128, 15, 49,182,
-165,217,232,119,181, 63, 20,172, 73, 90, 78,149,160,159, 34,148, 52,131, 81,195, 31, 47,117, 75, 74,229,189,175,130, 59,155,175,
- 70,122, 21,242,224,231,253,206,241,107,110,195,122,144,167, 92,141, 86, 20, 86,170,147,164,210,184,248,219,247, 99,160,198,205,
-239, 18, 11,137,155,211,178,220,230,224,249, 22,  7, 95,220,196,182, 49,176,158,142,146,149, 45,228,132, 39,134,100,229,140, 79,
-219,174,139, 57,223, 83,212,185,159,  7, 40, 81, 30, 89,239, 43, 66,159,156,226,146,223,158,167, 33,226, 78, 62,158,177, 25, 66,
-136,226,178, 49,101,216,105,217,249, 93,124,220,136, 80,139, 28,148,138, 87,203, 94,202,140, 88,157,213,  6, 54,207, 79,156,249,
- 26,110,244,221,185, 46,147, 27, 62,145, 13, 44,130,104,158,195,221,142,227,161,244, 59,153,144, 87, 19,248, 89,151,157, 97,217,
-155,131,226,139,203,148, 29, 32,193, 16,208,237,201,144, 50, 30,240, 31,167, 30,175,210,252,165,  4,147,145, 66,165,245,176,121,
-111,106,217, 49,195,112, 80,  2,169, 76,128,203, 29,190, 23, 77,133,133,160,132,165, 45, 36, 12,248, 12,105,142, 67, 54,251,185,
- 11, 70,215,155, 62,180, 82, 26, 86,147,253, 34, 40, 63, 62,  4, 41,196, 92,233,223,215, 41,  5,232, 62,174,122, 74,114,236,237,
-195,175, 74,138,132,144, 85, 57,171,120, 93,164, 63,113, 49, 82,170,166,186,141,113,129,145, 55,192,187,  4, 52, 20, 84,215,129,
- 56,167,196,178,144,235,103, 65,  4,  4,143,172,226,196,  7, 53, 84, 92,124,146,222,211, 54, 53,213,137,176,201, 75,136, 80, 36,
-166,180,166, 53,241,167,165, 25, 66,237,186,157,253,202,141,243, 23,127,109, 24,183,214, 84, 11,234, 26, 31, 72, 62,234,192,253,
- 60,113,118,133, 38,168, 74, 81,239, 83,178,152, 64, 48,232, 53,240,225,135,197,128,145, 73, 73,207,134, 28, 41,148, 12,235,128,
-  5, 16, 42,170,246, 96,  0,224, 84,211,  0,168,202,155,202,156, 70, 16, 80, 33,176, 50, 79, 14,220,  0,101, 72, 52,242,251,221,
-131,  0, 17, 78,109,115,143, 98,114, 91,106, 59,187,183,220,212, 69,130,144,160,195, 26,145,235,201,112, 38,161,182, 16,181, 39,
- 82,143,182,128,102, 72,  0,156, 71,126,234,181, 26,178, 75,118,157,199, 68,121,247,207, 62,175,185,173,212, 38,250, 77,191, 99,
- 41,240,212, 41,  5,232, 86, 24,  2,140, 71,  9, 82, 75, 46,201,125, 42, 91,110,184, 65,173, 64,203,128,203, 28,159, 82,234,122,
- 57, 79, 68,141,252, 28, 23,162,142,172,111,123,160, 78,186, 15, 46, 46,220,245,183, 70, 97,155, 43, 13,191, 62,225, 29,130,226,
- 29,114, 43,141,144,250,148, 66,  6,164,250,117, 42,  4,112,202,132, 99,131,159,157, 49,221,229,102, 60, 89,212,203,203,151,252,
- 39,117,201,174,225,159,165,238,122,243, 62,209,186, 19,183, 88,109, 81, 36,195,144,136,239,219, 32,166, 89,109, 76,165,149, 39,
-226, 28,102,222,176,151, 93,208,170,235, 40,205, 34,153,154, 82,231, 85,132, 47,219,222,214,168, 78,143,155,118,205,221,149,116,
-101,239,202,174, 73,218,185,110,237,199,115,239, 27, 25,149,117,149, 45,139,140, 71, 47, 18, 90,108, 52,133, 46,181,105,210,218,
- 22,132, 80,168, 80,160,148,174,137, 34,138, 10,199, 31, 60,185, 73,210, 46,135, 99,111,  6, 54,235, 57,170,240, 58,159,146, 91,
-198,209,184, 46, 46, 57, 99, 33,180,213,152,242, 82,243,200, 80,121,  9,101,197, 33,108,148, 39, 75,154, 10,104, 84, 59, 14,126,
- 96, 66,123, 79, 33,245,137,187,174,196,157, 83,169,207,249,195,  2,212,236,120,177, 95, 20, 90, 69,174,208,  7, 37,102,  0,236,
-239,199,172, 83, 79, 89,230, 47,138,244, 10,134,187,134, 94,  7,  0, 24, 12,159,200,224,  0,193,176, 40, 14,  1,201,  6, 12,212,
-214,131,233,194,139, 67, 10, 73, 78, 71,135,217,135, 38, 53,196, 39,166, 65,225,150, 20, 40, 28, 39, 58,156,  0,144,116,164, 40,
-208,240,192, 56, 58, 69, 85, 65,151, 12, 35, 99,146, 21,109,  0, 10, 19,225,150, 26, 56, 56, 66, 72,168,192,  6,116, 38,156, 13,
-124, 14, 22,160, 96, 52, 79,  0,126,156, 21, 22,130,137,103,182,128, 28, 38,225,209, 14,148, 37, 25,246,246,224,168,166,106, 48,
-128,103, 74,142, 96,101,128,  0,150,179,207,183, 10,152,162,173,178,105,132, 30,133, 82,131, 76,176,149, 22,130,168, 69, 70,158,
-204, 35, 28,133, 40, 59,176,130,129, 75,  8,192,  1, 20,224,237, 56, 40,  6,  1, 10, 30, 24, 40,  2,110, 19,164,125,184,120,225,
-  7,107,157, 56,215, 10,132, 11,166,153,147,135,140,114,  0,  0,240,252,248,  4,171,102,  5, 65,161,252,178,192, 42,111,152,108,
-  3,170,143, 50,118, 59,  9, 84, 73,119,151, 69, 67, 73, 14, 84,228,  8, 74, 51,161,246,156,124,201,121,111,123,123, 79, 68,149,
-186,192,190, 58, 19,221,179,118,209,149,125,144,159, 76, 74, 89, 83,121,212,100,  6,175,183, 30, 21,251,143,209,227,126,123,105,
-169,206,218,179,178,235,161,102,117, 45,191,226,239,167,227,219, 18,225, 90, 35,169,167, 29,210,161,229,206,162,163,232, 63, 86,
- 53, 60,129,229,184, 99,218,172,145,212,198,210,154,212,230,104, 48,227, 94, 55, 48, 67,226,136,112,144,174,218, 43, 82,200,252,
-195, 30,129,119, 14, 42, 47, 65,178,192,183, 46, 71, 80,116,247,202,189,171,114,114, 90, 82,132,168, 54,210, 28,161, 20, 37, 66,
- 63, 15,166,184,227,122,164,156, 94,157,140,210,197,233,246,225, 23,167, 49,198, 46,206,177, 53, 18, 42,210,194,117,134, 25,236,
-238,108,119, 99,233,175,219, 27,112,159, 72,180,218,171, 77,175,123, 60,179,206,182, 84, 51,167, 78,105,125,195,164, 88,204,178,
-208,109,164,132,183,220, 49,233,113,130, 92, 14, 61, 42, 11,165,  0,230, 56,120, 97,212, 20, 57, 72, 53,192, 42,101, 97,212,166,
-238,141, 96,218, 74,128,178,125, 87,235, 68,142,224, 48,228, 56,225,206, 99,110, 88,210, 86,251,139,168,119, 48, 42,104,127, 62,
- 43,223,153, 44, 52, 41, 41, 14, 25,183, 55, 93, 39, 58,158, 61,220, 49,133,121,213,151,173,170,128, 53,247,154,120,140, 71, 66,
-120,177,218,206,200,105, 65,225,154,129,160, 30,223, 12, 75, 23,169, 37,  9,142,222, 86,183, 80, 82,104,  6,100,247, 98,221,185,
-234, 71, 40,157, 55,210,  7, 58,209,104,220,236,236,201,206, 20,218, 39, 17, 29, 37, 68,144,151,141, 52, 28,242,207,135, 28,107,
-218,185,189, 25,183,173,211, 83,172,218,116,  0,  9,238,195,232, 87, 14, 30, 66,184,254, 95, 94, 23,107,  0,132,164,154, 39,134,
- 36, 20,  1, 53, 52, 24,  0, 81, 34,130,135,  0,  0, 43, 51,225,128,  5, 16,107,198,160,247, 28,  0,140,212, 12, 35,116, 28, 70,
-249,165,204,253,169,202, 93,151, 55,124,239, 25,  9, 98,203, 13, 21, 41, 82,144,149,190,225,201, 12,180, 28, 82, 66,156, 89,201,
- 34,185,225,183,102,173,170,177, 99, 23, 61, 34,121,189,204, 94,114,111,254,174,249,140, 35,151, 81, 26,255,  0, 48,168, 55, 29,
- 46,185, 33,139, 21,168, 47, 74,150,203,129, 37,191, 81,194,  0, 86,149,  2,181,100,116,140,199, 21,213,122,139,164,155,228,116,
- 24,184,201, 37, 21,196,236,174,130,122, 66,216,198,241, 10,205,102,128,147,  1,149, 37,215,222,113, 41, 46,190,239, 18,183, 20,
-  0,170,137,175,128,236,199,149,121,135,169,221,113,107,119, 19,182,233,214, 35, 97, 86,135, 88,117, 81,215,119, 37, 58, 55, 11,
-229, 13,207,101, 92,247, 30,216,130,192, 99,121,222,237,134, 51,108, 90,155,122, 50, 28,208,195, 47,138,203,113, 40,117, 10,113,
-  9, 82,  0,  7,222, 42,170,113,230,182, 99,105,223, 73,182,167,198,189,154,240, 59, 43, 29, 35, 51, 50,195,200, 77, 40, 46, 10,
-186,201,107, 87,234, 60,120,228,125,165,187,167, 58,110,247,158, 91,190, 93,183, 71,184,126, 29,110, 44,123,175,195,  5, 77,199,
-116, 21,142,214,148,221,  6, 71, 62,204,123,117,199,225, 98,252, 78,170,135,159, 98,198, 87,242,150,213, 77, 78,218,188, 91,175,
- 60,209,189, 91,122,125, 74,132, 75, 51,108,166, 45,209,248,205, 42,100,183,253,100,181, 33,182, 26,251,198,210,186, 20,165,197,
- 21,144,132, 13, 61,185, 99,203,242,174,206, 45,205,113,247,122,207, 79,191, 40,252,179,215, 66, 99, 59,145,252,231,233, 95,153,
-251,115,103,110, 57, 95,139,114,214, 92, 61, 86, 11,248, 97,108,202, 49, 99, 60, 20,245,190, 75, 72, 46, 54,146,210,159, 11,168,
- 81,242,121,130,170, 20,145,209,126,223,245, 75,119,242,225, 53,164,183, 81,156,167, 94, 73,227,220,130,225,181,191,254, 75,149,
-180,233, 58,123,178,207,195, 31, 72,198, 91,181, 60,130, 43, 74,119, 10, 36,144, 64,236,194,138, 40,146,  1,161, 25,119,224,  3,
-  6,156, 71, 12,  2,214,161,129,  0, 84,224, 28, 24, 34,162,163,221, 61,248,  5,  8, 90,160,225, 79,102, 21, 58,  8, 99, 74,206,
- 95,159,142, 23,112, 25, 72, 32,241,243,119, 96,220, 42, 66,136, 73, 82,188,114,194, 54, 61, 42, 11,165, 52,  2,158,220,  0, 28,
- 32, 10,  3,128, 84, 40,148,129,132, 30, 28, 54, 59,126,204, 35, 96, 13,  6,185, 28,176, 32, 12,150,146,159, 50,134,126, 24,  5,
- 72,207,162, 73,200,103,227,252, 88, 42, 59,104,162, 25, 88, 29,148,193, 80,218, 29,184,198,185,241,252,187,240, 84,114, 66,169,
-141,245,225, 42, 59,104,116, 53,164,249,184,120,225, 42, 42, 65,253, 58, 15, 41,207,199,  0,  5,161, 25, 28,  0, 38,163, 90,225,
- 80, 55, 65, 21,167,204, 84,161,151,126, 28, 55,113,150,178,168, 28, 56,224, 29, 23, 83, 46,138,166,152,  5, 98,106, 78,174, 52,
-166, 20, 68,234, 15, 76,140,184,140, 61, 14, 48, 82,161,195,  8,216,134, 20,154,154, 31,179, 10, 35, 85, 11, 78,206,223,104,192,
- 38,211,204,136, 50, 28,178,217, 46, 17, 89,108,148,  8,238,209, 52,202,190,130,177,243, 34,249,143, 80,140,126, 15, 81, 63,233,
-239,114,166, 46,220,252, 62, 58, 74, 92, 70,162,217, 42, 34,132,170,180,227,195, 28,159, 91,232,235, 34,238,230,140,149,106,178,
- 29,228, 93,174, 55,185,151, 43,214,105, 40, 75,204, 81,102,163,204,225,  9,225,145,161,  7, 26,152,152, 81,177,  5, 20,141,104,
- 82,132, 30,209,120, 66, 57,158,108,170,112, 33, 67,211, 89,  3,133, 31, 72, 81,  3,217,168,253, 88,210,189,107,225,104, 72,222,
-212,235, 46,153,174,205,132,203,208,179,169,250,176,221,115, 57,172,145,245, 37, 52,199,155,117,139,116,175,176,232,113, 86,248,
-123, 73, 84,184,255,  0, 13,161, 35,220, 83,109,169, 62,  3,210, 72,252,224,227,233, 63,218,135, 94,147, 21,217, 41,125,231,145,
-249,238, 63,249,173,255,  0,149,  9, 35,187,242,238,199,168, 28, 40,170,105, 76,176,  8,  5,228,156,184,224, 20,231,254,177,157,
- 50, 35,179, 29,  7, 74,208,133, 18,107,222,107,135, 46, 13,143, 90,156, 45,205,  9, 37,135,214,130,162, 77, 79,110, 51, 47,203,
- 66,196, 72, 69,169,180, 60,234,205,120,156, 99,201,214, 69,251, 60, 13,175, 75, 75,180,196,177,212,145, 33,222,214,218, 82,117,
- 30,220, 73, 66, 68,199,171,115,142,176,157, 45,154,107,247,189,152, 88,203,105, 43,141, 75, 75,146, 27, 90,100,251,212,123,193,
-170, 90,105,196, 22,208,156,202,138, 85,168, 82,190, 56,115,206, 86,117,108,154,199, 78,119,180,161,218,219, 11,153, 13, 93, 29,
- 93,167,112,184,219,119, 84,144, 17, 74,132,154,143,116,147, 92,198, 52,176, 51,150, 68, 55, 25, 61, 75,166, 75, 22, 93,164,213,
-  9,  4, 87, 79,229,219,141, 10,186,164,101,182, 29,  8, 11,200,147, 76, 57,186, 10, 24,181, 65,199, 13,220, 32, 18,128,  5, 56,
-225,226,153,160,166, 21, 32, 51, 64, 48,214,199, 34,185,234, 71,169,206, 86,244,191,178,  6,248,230,108,151, 18,211,206,124, 61,
-190,223,  9, 41,118,100,199,128,  4,165,148, 41, 73,  4, 36, 26,169, 74, 33, 41, 20,169,204,  3,  6, 70, 68,108,175,136,116, 32,
-228,121,221,206,222,186, 55,207, 58,238,207,110,219,242,219,182,181, 12, 58,118,229,133, 50, 82, 88,137, 28,182,177,235, 45, 58,
-144, 93,125, 73, 89, 10, 86, 85, 25, 13, 41, 52,199, 51,149,212,183,190, 38,222, 53,136,193, 87,153, 17,233, 99,153,246,235,106,
-238, 23,251,212,173,123,146,235, 40, 73,150,251,190,165, 91,104, 33, 40, 97,181, 41,197, 44,129, 66, 84,  1, 81,161, 85,  5,105,
-142, 91, 57, 74,235,108,187,137,118, 49,109,190, 39,173,191, 45, 62, 99,108,244, 68, 19,228, 74,104, 73, 52, 85, 74,147,194,188,
-113,230,253,114,212,229, 42,197,104,117,152,147, 91,120,234,114,191,207, 55,125,111,216,124,225,110,195,106,221,103,255,  0, 38,
- 87,113,127,124, 90,236,240,218,137, 42, 59,247, 41,176,215,  1,231,100,190, 18,135,163,184,202,164, 56,201,109, 74, 82, 28,104,
-160,167,204, 72, 78,103, 75,233, 55, 39,121,195,106,112,156,148,155,122,109,165, 61, 53,225,220,117, 23,122,141,152, 98, 91,187,
- 25, 82,245,165, 40, 81,112,146,150,170,186,242,175, 99, 32, 31, 47,142, 94,163,107, 91, 88,222,151,  6,150,139,128,107,227, 86,
-209, 66, 67,142, 37,180,122,173,144,107, 82, 65, 74, 80,117,126,168,242,145,150, 59, 14,191,151, 43,139,100, 41, 69,196,203,242,
-222, 27,180,221,201,173,120,151,223,200,239,113,110,158,160,250,228,230, 29,234, 75, 94,175, 43,172,176,139, 16,189, 65,234,  6,
-165,166,121,104, 41, 46, 16, 63,180, 20,186,224,254,142,145,217,142, 51,168,255,  0,197,181,115, 25,149,212, 36,238, 74,117,213,
- 30,152,117,195,177,162, 63,202, 24, 91,201,131,165,221,179,112,106,106,130, 80,149, 23, 24,148,203,150,181,162,171,174,144, 11,
-232,112,145,252,202, 98,143,149, 37,224,117, 75, 17, 90, 85,153,243,200,221,110,226,111, 73, 69,251, 78,119,125,  9, 75,135, 79,
- 14,202,103,150, 62,185,181,193,122, 15, 54,151, 16,152,148,  5, 18,114, 31,151,102,  0, 12, 90,  0,211,179,  0,228,232,100,  3,
-192, 96, 22,181, 20, 64, 36, 83,183,  8,216,  0,182, 65,175, 31, 12, 40,  3, 74,149,149, 48, 10,  0,223, 17, 66,127, 54, 20,114,
- 65,210,221,114,  2,148,227, 76,  2,139, 37,  4,154,225,187,130,162,173,179, 81,230,246,103,132, 28,162, 40,150, 72,202,148, 62,
-204, 21, 28, 28, 52, 59,105,244,231,128,  0, 90,  0,130, 40, 62,204,  2,135,105,176,107,132,144,234, 27, 13,176,158,209,150, 35,
-168,162,129, 32,154,  1,128, 23, 16,218, 23, 66,112, 14,173, 65,165,125,223,110, 29, 81,200,202, 19,165, 52,237,195, 88,166, 14,
- 74, 61,216,116, 64, 76,154,146,112,225,  2,173, 21,  4,140,  8, 24, 74, 97,219,134,237,  8,225, 41,204,123, 48, 38, 21,160,159,
-169,169, 85, 25,248,246, 97,201, 84, 70,234, 99, 58,215,183, 11,180, 19,160,109,117,246,225, 26, 29, 74,234, 10,211,142, 16, 56,
- 24, 87,154,135, 14,108, 90,160,104, 69, 43,219,132,168,181, 60,220,219,145, 88,155, 30,115,115, 63,100,235, 78, 32, 83,197, 36,
- 15,179, 31, 47, 59,202,169,174,211,211, 49,102,156, 93, 77,238, 88,164, 64,131, 45,198,181, 36, 52,230, 74,  3, 34,144,177,223,
-218,113,111, 33,238,163,160,216,218, 85,168,172,107,181,210,219,119, 92, 84, 13,118,119,164,151,150,131, 82, 82,149, 56,167,213,
- 74,118,105,168,195, 43, 90, 33, 92, 40,138,210,229,112,122, 23, 52,145, 37,107, 53,116, 16,149, 19,238,145,165,180,147,236,165,
-113,164,172,169,197,250, 10, 14,110, 51, 71,101,244,157, 37,185,182,200,193, 75,255,  0, 93,  5,215,117,171, 50, 82,164, 84, 15,
-162,135,235,199,150,245,171,116,111,210,117,248, 50,209,125,185, 22,149,209,224,234, 88,  3,138, 17,160,211,193, 74,167,216,113,
-244, 31,237, 55,255,  0,229,175,245,203,239, 60,159,207,111,255,  0, 47,254,148,106,130, 65,203, 30,164,112, 98,173,229, 90,224,
-  3, 14,172, 20, 83,  0,167, 40,245,121,186,101, 92,174,146, 34, 32,105, 12, 21, 53,166,188, 41,150, 31,194, 44,124, 78, 56,230,
- 81,113,107, 33,195, 85,231, 92,101, 94, 85, 69,136, 17, 43, 82, 20,218,213,164,228,123,177,151, 37, 70, 95,180,244, 55, 19, 33,
- 72,124,  5,230,159,227,196,137, 18,143,150,213, 52,229, 40,120,118, 97,227,162, 63, 67,  9, 73, 72, 57,180, 40, 15,179,  9, 36,
- 88, 78,133,195,202,222,102, 89, 54,236, 97,233, 83,241, 55, 62,234, 34, 42, 60,157,138, 89, 30, 31,159, 28,207, 84,183, 52,235,
-200,234,122, 78, 76, 18,163,226, 91,219,121,151,238, 81, 67,146, 28,211, 39, 39,  9,173,104,174, 32,113,204,158,220, 85,196,235,
- 50,199,146,138,225, 83, 71, 43,165, 70,245,182,229,196,232,157,149,121, 70,224,219, 81, 46,128,213, 75,109, 41,114,156,  3,168,
- 26, 87,255,  0,180, 62,172,122,117,139,174,229,184,203,180,242,124,155, 30, 21,217, 71,216, 59,232, 52,200,138,120, 98,101,222,
- 87, 50, 91,224,  9,203, 15, 73, 10, 99,211,207, 35,135, 48,  1, 70,145, 82,114,195, 91,162,  2,153,234,215,173,158, 82,244,153,
-183, 62, 35,116, 59,248,142,249,148,146,109,123,122, 26,135,196, 62,120,  5, 56,186, 16,211,117,226,165, 10,159,213, 10,225,138,
- 57,121,145,199, 85,124, 89, 53,187, 46,103,147,220,241,231, 79, 50,250,153,230,148,190,107,238,212,153, 23,249,132, 34, 20, 86,
- 84,226,163,219,226,165, 69, 77,199, 96, 56,165,  4,165, 53, 39,197, 68,158, 39, 28, 86,126,108,239, 61, 89,175,110,210,130, 68,
-191,149,219, 23,108, 78,106, 36,109,229,108, 23, 39,212,164,165,106,148,128, 90, 74,143,153, 67, 75,160, 12,128,202,134,164,247,
- 99,  2,231,136,222,140,220,195,118,210,248,145,106,237,254, 78,114,150,220,203,247, 55,246,252,  6,173,212, 40,105, 76, 48,211,
- 74, 73,  4, 18, 84,145, 64,170, 83, 32,174, 21,197,123,182,238,213, 37, 47, 73,177,110,213,142, 52, 68,239,151, 92,239,228,223,
- 45, 98,200,218,147,108, 13,201,179,201,104, 33,167,129,121,215,163, 18, 22, 90, 83,107,100,  7,155, 10,  0,138,182,161,219,152,
-168,174, 23, 80,179, 73, 41, 74,238,214,185, 29,  7, 77,118, 85, 99,225, 41, 39,207,153,  2,184,220, 54,245,246,249, 38, 55, 47,
-246,186,190, 33, 23, 31,138,141,122,188,190,252,199, 16,201, 80, 89, 45,252,101,115, 36,148, 81, 72, 62, 92,235, 83,140,110,175,
-230,171, 24,182,234,254, 46,229,161,111, 19,163, 41, 73,169, 65, 80,234,110, 83,114, 59,126,142, 82,185,204,146,216,145,111,149,
- 24,183,112, 48, 35,184,203,140, 41,194, 89, 11, 75, 49,198,146,148,122,149, 36,140,128,169,200, 99,203, 48,127,115,237,101,117,
-  8,225, 95,182,161, 41, 73,168,201, 62, 52, 85,163,244,242, 61, 31, 43,202,150, 49,177,163, 59,119, 30,231, 29, 83,237, 58,163,
-228,143,179,246,111, 38, 54,165,202,215, 98,131,240,183, 31,196,223,122,236,165,159,191,147, 33,169, 37, 43, 83,170, 53, 36,249,
-104,  1,224, 49,232,125, 71, 33, 70,228, 52, 84, 90,158, 57,123, 25,206, 51, 77,235, 83,174,250,207,190, 34, 71, 78, 27,150, 70,
- 97,231,149, 13, 40, 75, 52, 42, 11, 85,197,146, 52,131, 74,144,115,167,110, 49, 58, 29,231,123,171, 89,167, 41,149, 37, 99,195,
-179, 37,216,153,203,242, 80,148, 57,165, 28,  7,104,  4, 87,235,199,216, 54, 85, 18,244, 30,117, 55, 70, 16, 10,255,  0, 14, 38,
- 17, 58,138, 54,147, 92,198, 67, 44,  2,138,165, 34,149, 87, 28, 37, 66,129,146,145,250,163, 13, 99,133, 18,154,112,205, 88,  0,
- 30,154,201,174, 85,195,170, 45, 67, 37,149,113, 95, 31, 28, 13,139, 65, 68, 48,  1, 52,250,169,132, 28,131,250, 96,120,125, 24,
- 42,  6, 66,  0, 20, 31, 94,  0, 22,105, 53, 21, 57, 83,  8,217, 36, 69, 91, 78,163,159, 17,132,220, 56, 83, 65,225, 90, 15, 12,
- 35, 96, 23,210, 61,227,  9, 80, 14,218, 66, 69,112,149, 28, 42,  8, 35, 44,  0, 25, 42,160,165, 48, 11,161,149, 40, 15, 28, 42,
- 85,  4,147,226,  0,163,244, 96,216, 72,129,234, 80,240,203,  9, 74, 11, 64,167,205, 90,228,112,232,131,  8, 69, 13, 48,225,  1,
-128, 12, 16, 41, 78,204,  0, 36,224,  6,160,112,195,144,198,196,139,103,248,240,228,196, 19, 94,175,113, 60,123,240,244,196, 50,
-  5, 19, 66,115,192, 45, 76,133, 42,153, 97, 26, 21, 73,153, 25,229,134,180, 27, 83, 51,229,244,235,132, 22,136,224,174, 94,237,
-152,242,237,168,245,192, 81, 82, 51,175,136,237,199,192,211,243, 21,219,115, 59,155, 23,154,142,131,155,219, 38, 37,177, 46,166,
- 47,221, 41, 68,168,  4,212,214,164, 18,  8, 57, 83, 29,223, 73,235, 31, 84,149, 89,122,205,199,204,211,182,219, 45,206,196,159,
- 41,193,173,223, 73,213,167,180,141,  8,244,179, 29,132,231, 92,116, 50,116, 44,199, 84, 83, 28,227,178,170,223,187, 45,210,163,
- 13, 62,187, 49, 95,  3,185, 75, 26,143,230,198,239, 78,123,226,215,113,153,150,182,201, 29, 31,209,254,226, 65,106,222,228,181,
-148,133,182,146,104,127,237, 94,103,179,192, 99,207,250,254, 50, 85,244,157, 23, 77,186,223,219,184,232, 73, 94,103,214,149,123,
-192,133,  0, 59, 18,161, 84,255,  0,236,211, 30,205,251, 69, 61,221, 49,174,201,203,222,121,191,159, 87,254, 82,127,229, 65, 52,
-208, 84,229,236,227,143, 87, 78,167,  6, 12,  2,  8,188,186,167,  3,  6,232,113,175, 87,146,205,175,118, 79,114,181, 42, 89, 42,
- 29,153,140, 58, 79,225, 36,137,201,155,222,238, 39,186,162, 56,125, 88,204,184,244, 44,165, 66, 61,102, 65, 83,197, 85,200,215,
- 44,100,221,110,165,155, 76,113, 92,117,135, 82, 69, 15,183,  9,190,140,155,112,243,107,138, 84,106, 71,142, 88,119,136, 58, 50,
- 30,147, 29,104,102,185,132,129,157, 51,192,174, 50,109,250, 27, 92,182, 44,157,194,242,158, 80, 76,165, 13, 12, 41,127,245, 97,
- 62,106,248, 10,225,183,146,148, 93, 81, 54, 45,199,185,106,116, 39, 42,119,234, 39, 90,149, 13,183,131,210,155, 33,  8,120,251,
-161, 71,248, 49,196,103,227,248, 51,222,143, 69,233,217, 75, 34,222,214,248, 22,246,194,223,206,108,203,235,  8,156,249,252,  9,
-117,110, 75,142, 43, 75, 73, 11, 57,185,159,104, 57,156,117,190, 92,235,142,251, 80,124,142, 63,204, 93, 15,100, 92,211,213,151,
-132, 41,209,167, 71, 68,152,203, 11,142,226, 66,208,180, 28,148,149, 10,130, 41,142,215,188,225, 40, 44, 86,163,192,229,137, 19,
- 20,  1, 74,254, 92, 40, 26, 27,163,112,219,182,197,134,102,224,188, 58,150, 45,112, 25,114, 92,135,150,164,165, 40,109,180, 21,
- 40,146,162,  0,160,239,195,101, 37, 20,219,224, 11,138, 60, 80,231,231, 49, 55, 63, 81,221, 65, 95,247,243,239, 63, 46, 28,169,
- 75, 76,  4,202, 88, 63, 15, 17, 36,165,150,134,159, 40,  9, 79, 13, 62, 39,199, 28, 62, 92,229,126,109,183,161,167,  7, 66, 91,
-203, 13,138,184, 45, 32,220, 98, 23, 74,129, 53, 64, 10,242,143, 53, 82,  8,236,  0,231,195, 44, 83,149,180,184,151,177,254, 34,
-226,179,109,139,139,118,244, 73, 67,  9,110, 34,139, 72, 73, 32, 37, 73, 67,162,167, 33, 82,160, 19,230,242,215, 44,241,  4, 99,
- 23, 35,126,214, 35,107,129,  6,231, 24,144,229,181,187, 77,190,117, 28,150,243, 16,217, 97,149,186,164, 31, 53, 94,  7, 64,  9,
-168, 77, 84, 61, 74,142,227,223,151,230, 12,175,165,196,157,196,181, 68,209,198, 78, 73, 19,174, 82, 89, 54,237,203,151, 48,175,
- 86,230,128,117,102, 75,117, 80,205, 94,148,151, 25,  7,216, 66,  2,135,183, 31, 58,245,187,217, 30, 58, 87,228,219,106,190,138,
-158,147,229,216,193,199, 78, 67,254,220,130,251, 87, 52, 74,105,101,149,161,205, 72,113,191, 42,130,146,106,  8, 35,129,237,198,
- 22, 76,225, 24,183,171,122, 29, 70,218,250,207, 79,122, 11,229,204, 59,223, 76,198,  3,173,134,236, 19, 90,147, 31,225, 92, 70,
-176,244,117, 54,184,218, 82, 73,242,130,186, 40,145,221,227, 92,124,227,231,206,161,115, 23,168,198,234,249,161, 40,201, 83,187,
-135,241, 46,117,204,181, 25, 90,138, 92,181,251,122, 14,122,228,167, 80,247, 62,150,121,207,127,219, 91,161,207, 85,168, 18,139,
- 55, 72,239,235, 75,190,131, 64, 54,137, 13, 46,170, 25,180,128, 74, 72,  0,156,193, 25,227,236,142,147,149, 30,175,211,172,222,
-183,194,228,106,187,170,181, 94,218,156, 86,118, 52, 33,122, 73,232,180,247,157, 73,213,  7, 81,214, 45,209,182,246, 86,197,219,
- 19,  4,166, 55, 12,184,247,151,215, 13,194,117, 67,101, 65, 13,  5,105, 34,161,110,174,167,187, 70, 52,127,109,240,101,123,171,
- 70, 83, 95,241,202,140,231,250,238, 58,177, 98,111,182, 36, 76,172,173, 68,254,108,125,109, 15,225,252, 79, 31,150,161,219,160,
-  0,225,193, 17,100,208, 28,240, 14, 21,108,140,233,199,187, 13,160,181, 21,109,189, 99, 81,194, 10, 42,150,199,234,138,251, 78,
- 18,160, 24, 54,  5,  1,225,221,133,  0,193, 41, 57,118, 97, 24,244, 42,148, 13, 53,166,120, 74,177, 66,185, 68,102,126,220, 38,
-241, 70,203,158,238,219,118,119, 67, 55, 25,141, 54,249,200, 33, 75, 72, 63, 85,112,228,155, 18,162, 12,243, 23,104, 46, 88,134,
-153,205,151,213,216, 13, 71,215,135,108,108,124, 88,249,108,185, 66,185,179,235,193,113, 46,179,195, 82, 13, 69, 70, 88,141,170,
- 15, 54,176,  1,146,154, 10,147,151,134, 16, 80, 10,112, 24,  7,105, 64,  2, 71, 12,  2, 25, 46, 30,250, 96,  3,  9, 58,141,  8,
-168,239, 24,115,211,128,161,148,189,  3, 14, 66,212,192,113,103,176, 97,104, 46,224,224,225, 40, 57,106,103, 35,150,  0, 19, 86,
- 71,195,  0,  9,184,170,212, 87, 33,133,160,141,137,234,  3, 32, 50,195,168, 48, 10, 93, 69,  0,166,  0, 19, 88,224,112,228,  1,
- 20,141, 70,160,225,194, 25, 72,210, 41,133,  3, 32,106, 35,195, 12,144,248, 25,167,150,189,188, 48,208,166,167,  5,108, 93,203,
- 29,150,155,100,118, 80, 99,243,167, 58,195,173, 78,183, 26,117, 68,202, 75,205,207,100, 58,165,125,200, 74,130,194,105, 82, 52,
-208,140, 94,242,254,100,225,115,109, 77, 43,114, 35,118,162,135,125,120, 72, 77, 16, 90,125, 42,  9,226,106,133, 16, 79,180,229,
-143, 98,181,115,124, 19, 53, 45,240, 43,221,213,105,133,184, 61, 41,242,221,255,  0, 91,142,214,132, 35, 47, 40,100, 30, 63, 64,
- 56,219,194,187,181,148,243, 97, 93, 73,191, 75, 18, 68, 56,109,203, 80, 42, 17, 93,113,157, 35,137, 74, 94, 90,233,249,241,207,
-117,203,123,174, 83,181, 23,186, 92,235,234, 58,166, 45,199,241,  6,204,193,154, 29, 37, 85,165,  0,209,247,  9,237,237, 75, 96,
-227,209,127,104, 46, 83, 30,236, 59, 36,190,227,137,243,229,191,247, 33, 46,212,254,241, 64, 51,199,177,165, 68,121,210,224, 97,
-107,  9, 30, 56, 81, 68, 92,247,  0, 25,215,248, 48, 17, 55, 83,142, 58,201,181,182,198,229,184, 25,  7, 63,218, 36,158,218,138,
-229,135,109,170, 44,192,227,173,212,127,214,156, 74,125,218,145,140,233,196,182, 50,217,150,239,199, 37,176,124,130,181,250,113,
-157,126, 52, 31,  9, 18,117, 69,214,144,237,105,195, 16,165, 82,109,195,221,145,157, 73, 21, 86,124, 48,109, 21, 50, 68,204, 32,
-243, 26,117, 80, 28,143,213,131, 97, 49, 28,189, 71,118,212,151,110, 16,148,125,114,146,  8, 28, 72,  0,212, 98, 88,219, 35,148,
- 28, 73, 63, 33,249,135,232,178,132,184,160,153, 66,171, 87,101,  9, 35,128,250, 70, 51,243, 49,124, 88, 81,163, 87,164,102,187,
-114, 90,243, 45, 77,199,204,232,183,123, 34,169, 44,139, 76, 65, 84,184,221,116, 21,228, 13,  8,227,159, 28,115,118, 49, 39,141,
-114,177, 59, 75,153, 80,201,178,247,114, 44,222,145, 58,181,179, 92,110,104,229, 22,234,146,144,226, 84,150, 45,114,138,188,129,
- 68,233,244, 84, 79, 97, 57, 36,246, 28,177,233, 88, 57, 94, 45,181, 83,204,186,142, 30,201, 85,112, 58,145,183, 82,164,127, 14,
- 88,208, 92, 76,199,196, 50,141,  6, 71, 62,252, 60, 14, 76,249,181,243,222,233,203,142, 74,192,229,158,213,148, 99,238,125,230,
-251,209, 28,244,146, 84,231,225,177,144,147, 38,133, 36,105,212,167, 16,130,120,144, 72, 29,184,206,234, 87,118,194,157,164,214,
- 99, 86,113, 31, 44, 57,120,221,170, 59, 83, 38,183,169,245,233, 90, 80,138,  1,231, 32,133, 41, 85,165, 63, 65,199, 44,227,161,
-169,110, 26,162,218,178,217, 45,246, 72,209,238,242,221,244,225,105,  9, 37,180,149, 41,148, 54, 84,217, 11, 20, 81, 26,146, 15,
-  1,192,208,118,226,181,219,117, 70,174, 63,195, 45, 86,132,135,113,239,251, 54,215,176,  8,204,160, 45,240,183, 37,161,189,105,
- 33, 79,150,253, 61, 47, 33,104, 62,114,156,146, 72, 29,167,128,196, 86, 44,255,  0,184,109,222,203, 81,134,133, 33, 99,230,  6,
-229,223, 41,189,223, 46,210,214,141,177,183,162, 56,150,227,161, 41, 13,183, 49,213, 22,214,239,148, 13, 69,180,121,135,134, 56,
-255,  0, 54, 93,119,114, 44,226,242,147,221, 47, 66, 35,192,185,226,167, 39,200,168, 57, 95,215,125,227,145,119,155,133,130,100,
-  4, 94,182,132,167,214,250, 45,206, 60, 89,114, 35,133,  9,108, 22,158,  8,112, 83, 74, 64, 41, 41,236,173, 65,173,121,254,191,
-229,155, 29, 73, 41,110,217,113,118,118, 19, 97,249,130,238, 28,254, 29, 81,111,109,159,152,135, 43,111,143, 50, 94,180,220,162,
-172, 80,144,208,138,250, 53, 28,248,169,198,207,217,142, 47, 43,246,242,237, 36,227,113, 54,215, 53,196,235,177,124,239, 25,107,
- 56, 30,236,252,190, 57,183,202,238,110,244,245,181,183, 95, 41, 36,250,251, 48,192,110, 17,105,208,148,191, 30, 68,118,194, 30,
-106, 66, 18,165,105,112, 46,164,231,157,106, 42,  8, 56,248,107,247, 31, 11, 35,  7,169, 93,183,145, 29,174,174,157,235,130,127,
-121,213,230,221,142, 69,133,114, 58,112, 56,163,230,179,106,219,219, 11,171, 40,219,146, 43, 76,191, 42,239,111,109, 83, 24,120,
-164,130, 80, 84,200, 65,175,187,169, 41,169,173, 62,220,254,163,255,  0,215,172,203,153, 93, 11,194,186,255,  0,226,156,146,125,
-207, 84, 99,245,155,170, 19,183, 46,109,123,120,125,197,121,210,237,158,239,179,121,155, 99,107,107, 75,113,254, 93,207,152,217,
-183,195,113, 73, 41,183,144,242,139,241, 80,218,198, 72,112, 58,167,147, 67, 95, 41,  3, 52, 99,233,175, 41, 70, 43, 42,221, 34,
-147,174,175,180,229,186,228, 92,113,110,107, 84,215,176,238,102,136, 81,  4,125,190,204,123,124, 86,158,223,188,242,121, 63,224,
- 43,128,116, 67,133,229, 94,220,  3,133,107,218, 48,140,  5,154, 36,112,195, 24,228, 46,131, 74,247,246, 97,168, 80,245,  0,231,
-135,136, 97, 38,135, 87,183,243,225, 28,168, 61, 12, 59,227,154, 27,103, 97,192, 84,171,179,192,189, 79, 43, 41, 32,168,156, 10,
- 53, 28, 80, 91,247,171, 45,213,117, 91,209,172,132, 67,128,160, 66, 52,123,244,246,225,119, 70, 35,149,182,202, 86,255,  0,190,
-111, 87, 75,129,184, 76,148,235,143,234,174,165, 44,247,248, 98,172,243, 40,232,137, 60, 17,210,195,204, 57,173, 79, 66,148,233,
-245,  0,226, 85,158, 39,179,149,168, 74,213, 14,144,233,187,153, 49,155,179,197,180,206, 82,157,155,113,117,194,217,212,  9,  1,
-  0,126,122,226,204,227, 93, 70,162,240, 73,212, 42, 49, 89,138,  2, 72, 20,192,  6, 70, 16, 84, 25, 41, 39,217,128, 80,224, 15,
-116, 96,  0,193,176, 59, 78,  0,  8,166,205,105,196, 98, 84, 41,138,  0, 41,195,  0,  3, 94,148,215,142,  1, 83,161,146, 74,146,
-105,150, 16,114,117, 19, 89, 85, 40, 63,143, 10,129,137, 40,100,107,199, 14, 24, 18,148,227,128,  1,128,  0,120, 96,  0,152,122,
- 16, 29,184, 86,232,  1,144,  9,160, 30,220, 71, 81,241, 20,208, 41, 76,  4,135,148,251,115,122,206, 98,238,136,169, 52,212,120,
-158,209,143,133,114, 58,103,137, 23,161,171, 98,252,162,203,243,103,151, 46, 91,121, 82, 93, 85, 20, 83,219,219,157, 77, 49,205,
-227,226,206,222, 69, 26,208,223,197,184,229,196,221,106,205,  2,211, 17,249,209,169, 87,152, 89,  9, 35,180,138,138,103, 90, 21,
- 99,216, 58,123,126, 18,169,179,108,173,175, 16,190, 54,230,228, 25, 12,  6,228,187, 25, 75,171,117, 62,102,194,138,169,224,107,
-246, 99, 98,205,221,174,131,114, 35, 81,255,  0,147, 14,141,185, 53,216,171,  1,168,167,212,124,164,240, 21, 74,  9,175,245,214,
-113, 75,171, 67,117, 24,220, 71,178, 71, 72,109,  9,202,114, 62,151,114, 89,105,133,128, 40,106,149,151, 20, 60,106, 70,156,118,
- 31,181, 83,219,147,145,111,182, 41,251, 25,206,249,242, 21,179,110,125,142,158,212, 61, 41,195, 78, 56,247,  5,169,229,147, 84,
-162,238, 65, 75,181, 20,166, 94,220, 57, 33,162,110,172, 83,142,125,216, 80, 57,199,173, 61,150,171,167,165,112,100,102,251,101,
-  5,125,128,163,179,233,192, 77,110, 84, 56, 63,152, 22,223,194, 46, 78, 48,  7,241, 99, 62,242,163, 46, 66,230,132, 66, 44,135,
-145, 55,238,251, 78, 88,161,115, 86, 57, 74,172,156,219, 34,200,147,  9, 37, 70,138,160, 39, 11,181, 23, 35, 17,218,203, 29,182,
- 86, 67,171,166, 17,197, 19, 40,161,241, 55, 59,124,102,207, 21,154, 86,131, 58,156, 37, 18, 38, 77, 13,215,137, 23,235,186,  2,
-109,112, 74, 88,  2,133, 75,202,163,194,184, 21,206, 68, 82,157,120, 34,191,190,204,187,109,221,204,187,143,160,184,182,201, 72,
- 17,220, 74, 23, 64,149,159, 46,170,142, 25, 43, 13,148,202, 19,172, 89,107, 91, 46, 54,195,203,134,214,196,159,136, 83, 41,105,
-149, 32,208, 37,106,169, 28,  7,234,215,135,141,113, 82,229,154,234,111,225,229,127,183, 74,144, 86,175,133,183,155,149,183, 86,
- 89,150,206,191, 69,246, 60,132,  4, 18, 42,158,210,107,245,226, 75, 18,148, 30,140, 75,201, 78,222,165,239,211,207,205, 34,243,
-179, 92,179,242,243,153,182,241, 39,106,219,210,155, 92,203,186, 30, 90,229, 40,165, 65, 33,229,122,198,149, 74, 78, 96,154, 26,
-118, 14, 26,246, 51,169,163, 48,239, 97,113,104,239,107,  6,234,178,238,155, 28,109,195,183,165, 55, 46,199, 53,180,189, 22, 83,
- 74,214,135, 27, 87,  2, 41,246,142,206, 28,113,169, 25, 38,171,216,103, 74, 45, 58, 51,204, 46,183,185,177, 31,158,125, 93, 93,
- 37,197, 33, 54, 29,183, 77,165,  0,212,173, 78,252, 19,238, 25, 15,119, 10,190,181,129, 65,238,129,142,127, 63, 33, 78, 85, 44,
-218,141, 26, 52, 44,140, 37, 22,214, 99,130,178,185, 40, 42, 82,  9, 74, 65,208,107, 85, 41, 70,154, 66,106, 72, 61,160,  1,140,
-123,146,169,167,109, 13, 87,157,209, 26,115,127,  7, 37,  9, 92,122,184,235,107,117,178,183, 64, 52, 90, 27, 70,117,162,150,161,
-159,121,237,  0, 12, 55,101, 81,110,220,170,200,207, 50,175, 50,237,144, 28, 53,209, 48, 20, 38,161,101,214,  3, 74,109, 53, 74,
- 66,141,114, 11, 32, 16, 60,  5, 78,101,201, 81, 81,147,100, 58, 68, 96,188,221, 63,242,247,164,233,115,160,168,179,113,220,114,
-223, 75,110, 51,168,  5,144,226, 82, 19, 85,103,161,109, 56, 81, 78,218,140,121,147,147,202,234,151,166,255,  0,161, 36,141, 92,
-106,218,198,109,115, 57, 46,245, 99,184, 69,124,220,103, 85, 73, 89,212,162, 65,175,141,124, 49,165,114,197, 29, 76,137,193,173,
- 89,177,181, 27,185,191,118, 68,164, 44,177,  9,  4, 84,131, 74,211,179, 11, 27,114,184,245,122, 11,106,171,129,235, 79,200,183,
-170, 78,118,242,146,249,119,218, 27,106,209,248,175, 41, 46, 76,252,109,218,101,198, 66,225,195,182, 58,199,189, 53, 11,244,220,
-  7,201, 84,168,101,171, 44,197, 49,243,191,239,175,145,250,119, 82,177, 11,215,174, 59,119, 96,232,169,171,154,213,168,251,121,
-247,179,215, 60,161,143,122,252, 93,183,242, 45, 91,236, 20,249,134,117, 84,158,164,121,207, 22,243,106,113, 11,181, 90,219, 93,
-145, 15, 50,219,172, 34, 82,152,117, 78,151,194, 86, 84,116,213,221,  9,206,180, 77,106, 42,  0,235,127,102,188,135,123,203,189,
- 31,109,234,214,236,156,210,110,187, 83, 84, 73,123, 42,251,217,157,230,110,163,106,230, 82,183,101,124, 49,210,188,219,230, 57,
-116,243,186,110,209,236, 82,103,161, 97,169,113,139, 50,218,109, 90, 14,165, 70, 40,  8, 90, 18, 18, 51, 41,  9, 86, 68, 84, 99,
-212, 48,239,171, 57, 16,146,226,164,138,247,211,157,137, 46,227,191,172,119, 70, 46,182,216,247, 88,167, 84,105, 45,182,251,100,
- 86,154, 92, 72, 88, 34,160, 30,  7,187, 30,247, 13, 85,123, 85, 79, 29,156,104,220,123, 24,224,133,133,251,112, 12, 12, 14,149,
-106,236,240,192, 62,  2,136,117, 35,135, 12,  3,195,161,228,240,174, 88,107, 21, 49, 59,142,228,179, 89, 90, 14,222, 36,181, 26,
- 57,173, 22,250,210,138,211,141, 53, 17, 92, 53,186, 14,122,140,191,249,215,203, 35, 53, 48, 17,122,142,100,168,148,121, 74,202,
- 66,130,146,154, 21,129,164,102,161,219,134,171,139,147,212,119,134,233, 90, 17, 46,112,117, 11,111,219,137, 93,155,110, 58, 29,
-155, 67,234, 62,  8, 33, 36,138,209, 63,195,135, 81, 37, 89, 61, 66, 17,114,224,142,124,221, 27,214,229,185,146,185, 19, 29, 83,
-142, 41, 69, 85, 39,242, 56,163,149,212, 18,209, 26,118,113, 52,212,138, 92, 93, 33,173,100,211,179,141, 63,135, 24,242,205,109,
-150,221,132,145, 25,155, 57, 20, 82, 42, 50, 60, 14,120,175, 43,175,137, 20,162,134,216,247,199,145, 60, 54,128,  9, 35, 33,159,
-126, 44,227, 94,114,146, 34,105, 29, 87,209,237,165,251,165,206, 20,201, 32,250,112,218, 82,192, 87, 13, 75, 20,199, 84,157, 34,
-140,247,196,234, 36, 10,211,196, 84,226,189,106, 60, 83, 10,  6, 82,157, 88, 65, 80,167,230,192, 41,144,116,156,  0, 25, 42, 10,
-173, 59, 48,  1,135, 85, 68,211,191, 44, 44,120,138, 34,181, 20,208, 14, 31,199,137,  0,205, 78, 16,144, 58, 61,220,  0,  5, 36,
- 30, 28,112,  0, 69, 38,162,135,  0,  9,173,172,178,207, 11, 81,187, 66, 20,131,216, 62,172, 56,104, 85, 36,143,116,125, 88,  0,
- 33, 65,  7, 44, 57, 48,  0, 65, 39, 62, 24, 70,234, 42,141, 69, 91, 65, 62,220, 35, 99,210,160,174,143, 46,159,163,  9,184, 90,
-158, 85,109, 13,180,211,147,228,203,113,  5, 74, 98,186, 65,167, 17,221,244,227,229, 92, 76, 53, 86,159,  3,189,254,215,110, 58,
-150, 62,222,223, 87, 55, 24, 69,142, 19, 94,139, 68,  0, 86,  6,154,171, 32,107,221,245,226, 43,189, 26,214,234,208,179,107, 25,
- 68,176,237,118,167,110,147, 19, 17, 78,167,211, 75,  0, 56, 71,235, 43, 78,127,159, 23,173,195,101,180,139,113,137,  2,220, 16,
- 92,181, 95,157,184, 52, 64,137,  4,174, 27,198,181, 63,124, 10, 15, 15, 21,  3,137,161, 30, 99, 46,177,169, 87,180,195,190, 37,
-225, 84,162,107,  8,107, 74,143,253, 98, 30, 67,235,250,194, 20, 48,233,219,241, 34, 65, 41,237,145,208,252,166,184,185, 61,168,
-243, 22,238,180,174, 32, 66,  9, 57,233,109, 72, 66, 71,213,141,223,219,134,225,212,231, 30,219,111,239, 70, 39,157, 30,252, 20,
-255,  0,204,137,202,157,  3,137,199,190,210,154,246,158, 76,217,130,224,253, 82,105,225,128, 74,152, 81,  4,101,153,174,  1, 31,
- 18,  1,212, 38,209,123,116,108, 25,  9,134,154,206,140,125,102,130, 70,121, 10, 28, 59,104,232, 75, 83,206,238,107,242,238,249,
- 30,241, 38, 92,180,168,  0,162,120, 30,211,196,226,158, 69,170,234, 94,132,147, 43, 41, 22,247, 35,203,173, 51,  6,185,140, 80,
-148, 40, 72,170,153, 37,219, 82,231,203, 95,195, 32,101,192, 83,187, 17, 73,150,161, 38,201, 92, 13,155, 45, 78,135, 36, 44,132,
- 17, 82,  7,142, 33,108,158, 47, 66, 99,183,118,157,169,134,146,167, 64, 82,136,204,171,195,135, 28, 50,164,208, 31, 37,179,103,
-102, 25, 14,168, 37, 32,121, 82,144, 42, 77, 48,168,150,154, 21,135, 51,172, 81,110,118,199, 90, 12,132, 50,160, 74,157,115, 33,
- 78, 34,131,191, 11, 38,168, 81,187,111,180,169, 54,198,229,151, 20, 93, 54,131,242, 22,135, 26, 71,171, 25,226, 72,  5,  1, 36,
-131, 76,179,168, 32, 28, 71,109,185,232, 85, 85,131,208,209, 94,242, 49, 25, 76, 71,235,241, 90,156, 75, 72, 21, 79,166, 14, 98,
-135,176,  2,127, 62, 34,170,137,179,110,234,113,160, 81, 61,166,221,110,107,129, 25, 20,186,245, 83, 82, 84,165, 18,163, 76,184,
-  2, 62,188, 44,101,204,108,244, 68, 87,115,245,117,212,143, 41,109,243, 57,123,202,157,241,117,178,236,121, 43, 15,174, 29,178,
- 82,227,  0,162, 40,125, 55, 91,163,200,168,165,116, 40,  3,219,140,252,238,165,118,218,164,100,210,244,149, 21,152,203, 86,135,
- 94, 78,221, 84,254,217,132,224,113, 74,149,164, 41,106, 10,171,133,117,175,111,  3,168,253,184,158,213,199, 43,106,188, 74,178,
- 84,145,106,218,100,187, 54, 60,117,170,169,138,160,166, 92, 10,161,163,158, 96,186,234, 31,175, 76,188, 41,137, 45,193, 62, 37,
-168, 12,219,178, 83,182,169,241,111, 19, 79,171,105,148, 24, 82,141, 51, 65,101,205, 11, 73, 42,  6,130,170,250,200,236,196,142,
- 74,  4,241,157, 26, 32,187,214,108,215, 45,142,220, 37, 62,151, 11,205,151, 35,250,212,  8,107, 53, 37, 72,169, 32,213, 52, 31,
- 71,183, 21, 47,234,170, 79, 39, 94, 37,129,204,205,129, 35,116,116,133,103, 93,160,  5, 75,129, 46,  2,151, 82, 52,134,212,194,
-221, 62,101, 80,  1,169,148,166,167, 44,198, 60,147,165,102,255,  0,253, 11,209,110,137,157,150, 22, 23,139,133, 58,107, 40,109,
-107,215,186,191,192,172,230, 88, 45,187,201,133,217,185,115,181,238, 23,205,209, 49,178,141, 37,128,134, 25, 42, 26,106, 11, 69,
-208,170, 14,221, 67, 29,  5,204,165,  4,220,229, 79, 73, 36,112, 99,126, 42, 54,237, 54,253,101,159,200,223,151, 18,118,116, 40,
-220,192,234,162,230,198,223,218,227,239, 25,132,241, 58,222, 45,249,138, 26,105,186,187, 33,202,126,163, 99,253, 34,145,158, 57,
- 94,173,231,  5, 97,171, 88,241,241,110,203, 68,163,203,211,221,234,175,121,209,116,175, 37,219,179, 31, 27, 47,225,135,103, 51,
-163, 55, 15, 50, 31,123,103,179,202,190, 75,197,255,  0, 41,242,181,181,  4,204,130,164, 54,110,151,132,165,181, 22, 94,148,166,
-252,136,100,168,146, 26, 66,136,  3,138,138,142, 51,250, 47,147,110,229,228,253, 95, 80,106,245,200,235,  8,255,  0, 69,190,221,
- 63,170, 90,241,122,154, 29, 79,175,168, 91,240,113,163,178,223,119, 23,222,202,131,153,112,103, 76,188, 27,232, 90, 29,148,144,
-138, 38, 58,195,137,111,211,  1, 52,  4,102,159, 40, 25, 17,159, 19,199, 30,159, 57,194, 22,182,197,105,222,112, 25, 10, 82,187,
-185, 23, 39, 79,251,144,162,202,219, 14, 40,162,160,106, 77,117,  4,212,154,164,148,215, 45, 68,228,123,234, 41,142, 74,227,219,
- 58,174, 38,237,155,219,163,181,157,247,201,123,226, 47, 60,177,178, 77, 64,255,  0,233, 26, 96,231,170,165,129,232,147, 95, 29,
- 53,199,208, 61, 50,235,185, 98,219,147,215,106, 60,159, 50, 27,111, 78,157,164,172, 75, 28, 13, 43,194,159,149, 49,119,109,121,
-149,168,205, 11,254,241,219,251, 90,220,237,227,112,204,102, 29,181,132,169,199, 30,144,180,161, 33, 41, 21, 39,204, 71,102,  9,
-124, 42,173,161, 17, 72,110,223,152,215, 35,108,223, 19, 27,110,173,235,189,197,165,  4, 52, 25, 74,144,218,234,  9,212, 20, 65,
-200,112,198,125,238,163,106,215, 22, 90,141,137, 49,129, 29,121,238,203,196, 41, 42,181, 90,  4, 98,227,110, 55,  9,215, 89, 90,
-128,116, 56, 18, 56,170,156, 43,196, 80,227, 54,231, 95,181,181,237,226, 90,135, 79,148,152,194,173,229,204, 45,255,  0,255,  0,
-124,238,185,106, 83,233, 74,180,165,116,  5, 73, 11,208, 82,  2,  0,  2,148,224,  6, 49,175,249,134,236,149, 18, 70,149,158,148,
-164,181,226, 48, 93, 25,187,179,103,118, 36, 39, 53,206,114,114, 74,104,104,125, 36,184,164,171,232,160,  4,226, 59, 25,247, 91,
- 77,151,173,224,197, 66,128,185, 94, 86,252,197,201,184,185, 69, 10,209, 37, 68,240, 20,227,141, 27,217,210,184, 86, 88,234,217,
-168,253,250, 51, 81,189, 54,136, 21,  7, 33,151, 31,102, 42,186,201,142,119, 40,168, 71, 46,247,246,210,214,138,212,156, 46,194,
-188,174, 17,169,215, 69,161, 92, 65,212,112,221,165, 93,204, 95, 98, 67,252, 94,254,167, 92, 63,116,218,104,  1, 63,172,123,177,
-175,210,241,213,106,200,110,220,161,218, 29, 37, 46, 75, 19, 63,  8,132, 43, 17,182,181,201,116,131,196,143, 40,252,248,232,238,
- 42, 68,130, 14,167, 65,132,170,149, 31,164, 98,168,240,201, 81,227,217,227,133, 72,  3,164,154, 84,101,129,161, 80,162, 84,  8,
-241,194, 10,100,131, 94,255,  0,102,  0, 14,128, 64,207,142,  0,  2,146, 20, 41,219,217,128,  4,212,145,192,226, 69,192, 80,186,
- 71,126, 20, 90,138, 83,187,236,195, 36, 60,201,200,  0,120,225, 16,161, 84,  1, 20, 38,152,120,129,  8, 35,134, 99,  0,  4, 44,
-166,181, 25, 96,168, 80, 30,149, 14,103,  5, 66,128, 44,231, 80,104, 48,181,  0,122, 96, 30,255,  0,110, 22,162, 62, 38, 82,154,
- 28, 35, 99,131, 97,  4, 60,186,180,205,147,110,248,134, 35,  3,169,223, 34, 84,120,231,151, 28,124,208,161, 77, 81,234,142, 67,
-139, 79, 75,143, 13,  9, 89, 41,157,235, 33, 40, 90, 79,105, 66,141, 15,182,180,195,235, 94, 36, 51, 37, 59, 38,249,124,183,222,
- 98, 48,227,138, 13, 60, 65, 82,214,175, 42, 80, 90,225, 83,226,112,217,164,209, 42,110,161,183, 99,139,187,205,186, 42,218,146,
-152,139, 83, 97,  4,254,179,205,169, 40,175,118,117,194, 70,229, 17, 29,212, 67, 57,167, 23,240,239,194,230, 66,168,105,199,146,
-238,186,145, 69, 34, 50,245,129,253,106,140, 88,192,146,110,133, 28,205, 41, 66,253,233,158, 84,137, 54, 72, 77,173, 69, 72, 13,
-190,106,106,120, 57,167,183,198,184,221,242, 69,191, 15,171,191,244, 72,196,243, 68,247, 96,127,212,139,127,210, 85, 42, 62,220,
-123,148, 95,184,242,217, 71, 86, 20,161,116,205, 61,216,117, 68,218,  1,172, 28,210,105,133,168,148, 17,146,195,110, 32,182,224,
-212,133,  2, 15,113,  7,176,225,219,132, 81,161,201, 29, 99,236,183,182,148,215,222,137, 27, 93,190, 82, 84,227, 42, 72, 21,243,
-123,195,135, 97,225,136,229, 42,196,183,103, 83,144,110, 49,220, 50, 22, 37, 35, 75,149,204, 28,100,205,179, 86, 16, 84, 20,219,
-151, 83,108,149,234,165, 53,161, 25, 98,180,180,  4,181, 44,171,124,167,167,192, 67,205,130, 10,133,126,204, 68,228, 89,140, 69,
-152,145, 38, 56, 82, 36,185, 68,246,  1,136,247, 18, 70, 52, 54,218,158,148, 43,253, 89,178,242,251,215,195,  6,230, 76,136,214,
-254, 72, 16,151, 38,228,178,252,179,147, 76,167,133,114, 62, 56,116,117, 43,228, 42,162,133,223,141, 77,179,222,219,188, 34,129,
-212,130,151,153,108, 86,141, 80,158, 62,  4,226, 29,219, 25,159, 53,160, 91,132, 24, 91,198,198,149,193, 88,110,228,149,  5,165,
-213, 87, 47,112,208,247, 87, 73,246,240,236,196,179,130,146,170, 27, 11,148, 52,237, 22, 59,233, 43,129,115, 40, 74,218, 42, 65,
-116,146,180,184,164,230,104, 19,159, 14, 25,140, 67, 27, 78,154,151, 85,218,162,181,230, 78,202, 41,113,201, 25,173,224,117, 10,
-103,229,173, 61,191,101, 49,153,149,141,185,106, 35,185, 65,203,149,123,157,118,255,  0, 74,219, 52,172,180,221, 84, 27,109, 52,
-170, 82,131, 94,224,114,  7,142, 22,196,246,170, 21,220, 42,206,136,178,190, 65, 17,150, 28, 49, 26, 40, 46, 37,165,  2, 75,131,
- 36, 20,215, 80,160,212, 56,241,225,139,169,147,218,211, 66, 51,186,226, 79,189,137,144,208,209,117,184,225,176,128, 82,128,125,
- 50,179, 80, 84,129,253, 42,113,238,240,194, 92,105,173,  7,206, 60,200,128,177, 29,213, 17, 22, 75,128,  6, 91,105, 83, 15, 23,
-  5, 10,116, 43, 64,200,144,154,234,204,138,248,227, 62,246, 69, 52,102,141,136,120,138,132,227,150,220,224,231,231, 41,172, 71,
-106,217, 75,114,108,129,191,134, 45,173,  9, 90, 93, 97, 46,  5,134,164,164,165,104,112, 36,164, 83, 82,105,144, 60,115,199,  3,
-212, 60,173,143,126,243,187, 25,202, 53,236, 58, 28, 44,220,140, 55, 88, 58,122,147,236,237,175, 97, 47,219,221, 86,245, 14,219,
-  6, 29,170,252,213,129, 11, 80, 15,181,100,131, 14, 51,192, 26,130,  3,172,165, 58, 79,101, 74,114,174, 29,111,200,216,183, 94,
-235,183, 39, 53,216,228,255,  0,153,165, 47, 56,103,210,145,155, 94,132,151,220,128,229,182,255,  0,204, 91,161,221,119,  7, 29,
-149,112,210,141, 87, 11,147,238,203,154,167,181,104, 70,167, 30, 82,212,146,123, 64, 32, 14,234, 99,164,194,233, 88,125, 62, 46,
- 54, 45,168,198, 93,156, 95,165,241,126,182, 99,229,103,228,229, 75,117,203,146,147,239,109,146, 43, 92, 57,177, 18,237, 22,177,
- 41, 96,250,231,204,243,172,165,181,150, 69, 72, 21, 39, 94, 94,207,230,240, 22, 90,132, 56, 42, 46,194, 91,123,159,204,219, 30,
-102,222,163, 92,212,139,116,138,124, 35, 13,132, 49,233,164,105,108, 37, 58,  8, 45,184, 66,210, 73, 28,115, 61,185, 83, 24,217,
-146,110,186,154,176,149,104,185, 19,123, 29,170,219,109,217,178,183, 12,116, 20,155,124,103,101, 58,224, 37, 41, 72,105,170,140,
-169, 65,195, 50,113,200,202,111,198, 75,181,151, 47, 90, 74, 13,174, 71, 61, 93,186,143,234, 31,118, 71,143,181,255,  0,205,151,
-104,219,106, 34,126,226,221, 10, 81,135, 29,180, 37, 26,141, 27,141,233,164,147,198,166,164,227,212,236,245, 11,219, 84,119,104,
-150,156, 15, 60,185,140,167, 57, 73,243,100,155,150, 93, 71,245, 71,183,227,141,157,178, 47,215,135,237, 55, 87, 66,167,148, 58,
-183,150,218,155,204,168, 56,176,165, 32,103,157,  8,168,196,223,221,238,193,124,223,112,251,120, 49,124,137, 49,216,220,192,221,
-155,149, 46,239,251,164,183, 89, 53,145, 41, 19, 30,121,103, 73, 30, 82, 66,149, 66, 13,123, 59, 49, 78, 61, 78,229,237, 27,116,
- 46,255,  0,111,140, 93,104, 89, 12,242,223,111,163,110, 37,230,146,148, 92,218, 67,138, 68, 80,160,167, 84,164, 40,161, 75, 35,
- 45, 41,173,112, 56, 54,232, 89,118, 99, 21,169, 34,102,233, 97,218,214, 70,194,205,100, 80, 58,132, 46,128,128, 22, 86, 77, 59,
-179,196,144,199,219, 85, 46,100,110,238,213,161,164, 58,131,177, 70, 19,165,182,180,149, 41,109,136,237, 35,192, 37, 78, 80,123,
-113, 98,206, 44, 92,120, 12, 89,137, 17,187, 79, 48,239,183,165,162,123,170, 40,212, 86,233,108, 87,245,212, 72,  7,216, 14, 45,
-198, 27, 81, 26,200,114,230,111,200,156,252,237, 50, 36, 47, 50, 61,208, 78, 88,145,  4,221,117,102,180,171,144, 65, 36, 44,132,
-240,  2,189,216,154, 52, 32,144,214,244,176,249,212,165, 29, 61,153,246, 97,104,136, 36,134,235,172,198, 92, 82, 82,217,243, 28,
-135,215,132,183, 29,204,141,147,238, 81,109, 25, 55, 21,182,148,164,150, 92, 82, 73, 35,143, 30, 57, 99,162,193,199,161, 86,253,
-196,119,127, 79,187,  5, 27, 39,104,161,197,138,203,148, 18,234,137,247,130,105,144, 56,183,126,116,209, 17,219, 44, 33, 85, 39,
- 58,143, 12, 69, 29, 81, 33,144, 41,195, 14,160,  0,167,180,254,156,  0, 29, 41,210,159, 30,204, 35, 64, 40,131,168,106, 60,112,
-193,194,186,197, 43,128,  2,173, 73, 94, 73, 57,225, 82,  0,138,109,103,128,195,234,133, 51,233,229,164,143,224,195, 92,137, 40,
- 29, 32,129,249, 83, 13,168,161,141, 64,175,110,  0, 12, 18,162,154,158, 56, 90,129,130,217,211,157, 14, 10,128, 77, 30,223,102,
- 29,184, 64,170,108,215, 60, 34, 98,132, 80, 41, 52,236, 56,112,128,166,  0,161,148,154, 26,224,  0,248,  0,243,103, 96, 89, 17,
-115,148,183, 95, 72, 84,117,146,134,202,134, 65, 96, 87, 46,252,137, 56,249,163,119,194,122,124,213,  7,139,214,216,102, 77,194,
- 44, 86,208, 16,242, 92,245, 20,226,129, 20, 40, 77, 41,151, 26,106,250,176,213, 33,118,212,223,185,218, 99,193,109, 46,131,165,
-166,154, 90,171,216,162,138,102, 43,236,194, 38, 58, 33,108, 79,198,136,164,198,253,162, 86,231,196,  5, 26,208,234,247,169, 94,
-234, 97,146,116, 27, 49,179,122,109,  9,123,171,110,152,173,167, 65,134,239,170,135,  7, 29, 69, 74, 10, 31, 73, 86, 36,199,187,
-178,226, 42,222,183,186, 37,131,209,163,146,167,219,101,179, 48,105, 92,  7,  3, 58,105,159,222, 54,107,246,180,163,244,227,175,
-242,199,195,213, 98,251, 97, 35,154,235,139,118, 20,215,225,105,251,232, 95, 66, 56,  2,167,243,227,216,163,114,135,158, 56,241,
-244,152, 44,247,127, 14, 30,174,  9,176, 30,138,207, 31,204,112,237,227,124, 52, 21,113,178,206,159, 81, 24, 60, 65,118,145,126,
-104,114,230,217,191, 54,227,182,249,204,165,217,  8,  5,108, 21,113,213, 78, 31, 78, 13,226,168,208,243,203,168,221,143,  2,201,
-187, 76, 91,107, 10,105,212, 85, 14,160,131,145,  7, 21,114, 35,166,133,203, 45,162,187,110,200, 27, 41, 88,203,188, 99, 50, 73,
-151, 20, 87, 18, 95,182,174, 50,210,182, 97,130, 61,  3, 68,251, 49, 93,170, 19, 65,234, 72,228, 89,208,241,245, 20, 66,149, 79,
-175, 44, 70, 88,218,107,181, 33,244,209,150,  0, 67, 99, 45, 71, 14, 72,122, 67,117,226, 10, 93,104, 55,  8,  7, 38, 56, 51,113,
-124,  5, 59, 78, 31,186,131, 46,165, 77, 10,219,119,108, 86,216, 14,250,222,242,181, 45,231, 85,157,114,207,232,197,121, 45,198,
-101,197, 66,170,101,215,246,133,201,113, 28, 74,134,219,144, 70,140,243, 64, 39,235,166, 37,181,113,193,208,129,197,146,166, 37,
-174, 90, 28,116, 35, 89,244,130,130,  2,189,234,  0,  9, 25, 30, 36, 26,143, 12, 91,184,211, 90, 14,129, 21,230, 45,153, 73,141,
- 84,167,238,200, 82, 11,168, 21, 66,138, 50,170,123,  5, 72,238,197, 59,150,244, 37,155, 69,121,241, 75,218,151,  8,247, 77,  1,
-109,180,176,234,233, 74,132,  3,165, 85,  9,169,225, 94, 35, 25,119, 90,131,170, 35,139,169,124,236,171,235, 78, 64,113,232,175,
-253,244,150,180,173, 77,171, 77, 80, 69,105, 92,235,192,119,112,197,170,215,129, 34,150,214, 73,228,173,155,205,169,155,115,108,
- 50,218,212,130,242,138,244, 35, 49,164, 21,154,230,124,194,185,246,253,  3, 17, 74, 84, 69,184, 92, 77, 80,140,216,237, 75,182,
-223,209, 42,  8, 73,144,218,168,172,194, 16,179, 82,189, 58,200,242,249,105, 94,210,125,184,161,153, 21, 77, 13, 14,156,232,201,
-252, 75,156,  9, 76, 27,155,225, 33,196, 54,117, 56,216, 64,120, 26,122,137, 83,136, 87, 20, 40, 19,168,131,159,127,118, 50,220,
-165,169,210,187,203,109, 25,182,137, 86,233,140, 55, 42,216,218, 21,120,116,  4, 58,218, 91, 40,105,  5, 77,150,194, 80,117, 41,
- 70,164,147,152, 21, 57,248, 97,214,238, 74, 28,198,220,217,114, 53, 92, 65,  8, 38,222,167, 33, 48,175, 72,172, 21,182,160,218,
-200, 90,135,111,187, 92,133, 82, 40, 19, 94, 57, 12, 90,133,218,247,148,238, 71,104,155, 27,137,118,229,250, 10, 81, 67, 50, 60,
-174, 23, 20, 83,234, 41, 42,169,204,168, 40,128,172,200,169,207, 17,100, 73,180, 62,220,233,196,145,109, 21, 50, 46,205, 72,189,
- 52,167, 99, 54, 53,250,116, 66,201, 66,147,172, 10, 43, 85, 14,116, 38,181,  3,183, 24,217, 19,165, 17,185,136,151, 62,102,223,
- 54,247,212, 77,183,202,155,173,187, 69, 31,188, 71,118,215, 25,182,129,175,169, 37, 10,108,171, 58,228,148,168,215, 25, 24,246,
- 60, 91,190,129,253, 66,246,216, 83,183, 66,156,139,108, 97,175, 73,134,152,  1,106,  8, 43, 42, 43, 42,168,  3, 86,148,132,165,
- 32, 19,153,  3,179, 44,119, 24,235,117, 78, 54,228, 28, 85, 11,119,148,173,196,180, 68, 98, 61,173,228, 55,112,108,173,197,191,
-228, 74, 70,176, 52,106, 36,212,  2, 19,168,234, 57, 87,134, 34,185,105,182,106, 99, 74, 48,142,164,178,253,189, 99,237, 11,  3,
-119,200,232, 23, 43,139,175, 81,244,201,171,133,106,109,103, 36, 40,126,175,152, 87,133, 59, 49, 54, 61,165, 22,234, 25,119,227,
-225,214, 60, 72,236,158,113,207,187, 92, 30,187, 94, 26,244,167, 54,219, 81,214,251, 73,251,207, 76, 20,184,160,146,138, 12,232,
-  9,174, 46,172,180,163,240, 42,190,255,  0,178, 50, 99,126,114,127, 17,152, 87, 87,247, 68, 87, 29,130,234,220,103,246, 10, 82,
-212, 74,139,105, 52,211, 83,222, 63, 54, 29,110,220,164,212,164,245,  5,113, 72,219,183,108,104,  8,113,185,  5,  0, 63,154,202,
-126,195,199, 26,117, 26,236, 38, 60, 70,105,184, 72, 40,  9,210,162,116,130, 62,207,205,130,149, 32,148, 92, 67,187, 57, 72,247,
- 21,146,114,  3,188,253, 24, 54,135,143, 77, 13, 37, 73,117,226, 84,224,162, 19,237,237,194, 33,174,240,131,247, 56,126,153, 65,
- 87,222,102,  7,233,192,170,199, 57, 39,169,183,180,182,148,139,195,194, 80, 73, 41, 42, 20,202,184,213,195,199,230, 69, 41, 35,
-170,186, 94,228,245,202,235,113,142,137,109,233,179, 54, 67,174, 44,131, 90,  3,238,229,223,141,251,114,217, 18,163,141, 89,214,
-209, 97,182,195, 73, 97,177, 70,210,  2, 64, 25, 80, 14,204, 85,222,222,163,148, 69,203, 52, 21, 60, 48,170,109, 11, 67, 30,152,
-173,107,135, 43,129, 64,222,128,238,167,141, 48, 57,133, 12,232, 53,247,178,238,194,110, 22,129,145,151,148,112,194,128,106, 43,
-183, 11,160,180, 50,150,148, 77,123, 48, 54, 20, 98,136,108,145,158, 94, 24,109, 71, 40,134,244, 77,127,148,225, 55, 15, 12, 80,
- 64,174,  5, 32, 49, 74,225,119,  0,  8,160,174, 10,128, 48,160, 97, 65, 69, 52, 24, 74,  0,153,  7,129,246, 97, 80,180, 49,233,
- 43,182,148,195,147, 13,160,244,187,114,250,112,181, 13,160,244,187,168, 78,  6,197,218,103,210, 20,236,213,132,168,109, 60,224,
-218,205, 78,133,102,109, 45, 13, 10, 91,165, 74, 79,102, 74,254, 12,124,199,102, 85, 85, 61, 62,113, 36,206,170,117,202,228,196,
- 87,221, 72, 70,157, 42, 82,115, 41, 89, 34,189,253,152,123,  4, 31,117, 91, 23, 25,134,153,101, 58,160, 58, 75, 73,116,212,208,
-184, 41,249,205, 48, 65,212, 94, 35,102,215,156,141, 14,219, 95,168,148, 22,165,165,103, 58, 37, 43, 53, 72,175,183, 17,221,225,
- 81,164,150,194,134,101,170,225,101, 90,179, 73,143, 40, 40,158,197, 37, 36,159,174,163, 21, 37, 45, 80,146,214, 52, 30,122,110,
-145,  3,110,115,122,247,179,214,238,132, 73,138,181,176,146,  1, 14,190,219,237,184,  0, 35,133, 27,245,  8, 63, 71,110, 59, 63,
- 46, 93,174,126, 60,187,228,191,236,145,203,117,184,255,  0,227, 77,125,180,101,248,132,101, 74,233,246,227,217,148,143, 63,107,
- 95, 78,160,244,  9,207, 87,217,133,222, 20,  7,160, 60, 62,172, 38,241, 40,  3, 25, 29,224,125, 24, 55,137,180, 34,227,234, 26,
-106, 48,237,195,168,138,147,158, 61, 57,236,253,218, 37,110,199, 99,106,185,  4,235,112, 33, 32,234,160,169, 80, 29,244,195,212,
-144,171, 67,135,183,182,204,182,219,119,148,184, 86,208,126,  5, 11, 52,  4, 82,153,240,196, 23,225, 66,205,167, 94,102,178,109,
-145,160,132,173,186, 40,241,203, 25,178, 69,135,167,  3,102,197,117,136,204,151,132,197, 40,181, 64,164,133, 26,231,219, 74,226,
-  6, 91,181, 45, 53, 28, 46, 54,255,  0,143, 97, 41,134, 40,149,103,171,188, 98, 68, 18,153,168, 25, 69,185,149, 37,218, 13, 32,
-231, 76,242,241,196, 46, 85,100, 90,145, 77,225, 17,169,236,149,172, 85,161,255,  0, 86, 56,168,248,248, 98,104, 64,134,244, 52,
- 42,189,237,182, 25,113,183,101, 75,  0,201,247, 91,104,112,238,  9, 24,150, 86,209, 81,212,138,237,105,206,218,100, 46,201,118,
- 88, 37,212,148,199,  4,144, 74, 73, 32,182, 40, 71,106,205, 61,184, 32,168, 53,104, 73,175,144,226, 93, 45,238,169,230,143,195,
-172, 33,106,113,176,164, 36, 41,106, 81,  9,175,153, 62, 60, 51,174, 31, 53, 84, 44,181,101, 95,185, 54,114,212,244,134, 36,212,
-180, 53,154,147,161, 69,  0,148,133, 38,164, 18, 41,221,140,187,208, 93,132, 73,209,137,114,238,237,120,178,220, 19,103,154,234,
-141,177,191, 59, 30,165, 10,168,  5, 91, 78, 96,138, 19, 78, 32,226,141,182,225,161, 43,123,145,117,217,238,246,169,109, 27,130,
- 16,148,203,124,172, 37,227,229, 80,242,234,  8,212, 40,144, 42,  6,156,147,157,124, 41,109, 69, 73, 14,132,146,102,245,161, 65,
-247, 83, 36,141,109,185,229, 30,169, 32,144, 83,164,121,135,104,210, 70,117,246, 30,202, 57, 80,162, 55, 48,164,149, 24,237, 26,
-210,236,186, 56,133,160, 52,225,124, 52,213, 80, 75,104, 40,168, 79, 10, 38,148,168,  5, 32, 26,247,113,202,148,232,248, 26,237,
- 41,106,153,160,212, 25,205,171,212, 97, 90, 83,154, 84, 27,214,191, 53,104,123, 83,166,164,112, 80,200, 97,110,168,202,148, 27,
-109,114, 76,204,251, 93,198, 98, 66,165, 56,226,198, 73,  1, 41, 42, 78, 99,128,  6,131, 53, 85, 57,226,186,158,198, 89,157,183,
- 52,  4,207,118,194, 71,196, 81, 37, 69, 77,107,121,173, 37, 68,100, 71,152, 80, 26,119, 19,135,220,146,150,136,174,160,226,245,
- 30,182,254,241, 98,223, 36,234,170, 91, 88, 81, 65,  0, 80,138, 18,107,153,204,215,135,241,227, 59, 34,205, 81,173,143,119, 85,
- 94,  3, 22,233,190,221, 55,190,241, 23,  0,149, 57,183, 32,167, 67, 10,  9, 73, 37,  0,128,165,208,171,129, 87,  5,118,138, 97,
-152,150, 84, 34,251, 89, 95, 38,238,249,247, 35, 75,117,110,152, 14, 73,111,240,  6,125, 87, 73, 46,132,178,173, 52, 80, 36, 80,
- 16,158,227, 79, 26, 87, 27,152,109, 66, 26,179, 39,168,207,115, 91, 85, 12, 91,247,157,210, 19, 13,166,255,  0, 61,113, 17,233,
-253,211, 17,135,222, 43, 79,148,  5, 52, 77, 64,162,105,227,133,187,121,203,229, 85, 41, 91,114,124, 88,249, 97,142,171,211,191,
- 12,210, 86,212, 87,  1,113,162,165, 21, 43, 89,204,146, 79,101, 56, 12, 94,199,179,163,220,234, 77,103,226,208,177,246, 85,150,
- 44,134,  3,107,104,  5,102, 28, 70, 70,160,100, 78,120,158, 84,165, 40, 89,141,165, 93, 71,  6, 44, 35,104, 79, 84,155, 82, 10,
-237,143,168, 41,214,207,234,211,183, 13, 82,104,134,229,149, 23,160,250,191, 74, 91,  2,100, 37,105, 20,160,167, 28, 91,140,180,
- 35,117, 70,147,215, 29, 39,209,121, 57,167,135,183, 23,173,209,162, 25, 72, 68, 48,234,188,232, 53, 79,118, 36,105, 80,130,118,
-147,212, 65,235,228, 38, 86,168,107, 20,116,101,151,127,118, 43,206, 37,119,110,128,178,109,166,174, 18,125,101,123,164,228, 49,
- 45,171,124,203,112,130,161,116,242,150,197, 21, 15, 51, 29, 76, 23, 13, 64,105,  1, 57,169, 93,217, 28,111, 98, 21,174,192,238,
- 30, 79,237, 89, 22, 13,157, 25,185,236,165,153,206,128,226,208,  0,170,107,192, 28, 45,235,149, 98, 70, 26, 18,246,216,160,161,
- 29,189,184,137,177,251, 67, 22,191,162, 62,188, 21, 21, 68,  1,148,142,202,253, 56, 85, 33,118,134, 17,251,242, 78, 13,204, 54,
-134, 12, 10, 80,112,250,112,187,131,104,  4, 81,196,113,240,195,183, 11, 64,218, 13, 60,112,218,176,161,128, 42,105,219,133,220,
- 20, 20, 25,131,130,163,148, 67, 36,154,112, 63, 86, 17,134,208,193, 38,149, 53,192,131,105,148,182, 73,203, 11, 81,118,153, 49,
-193, 57,211,  5, 67,104, 62, 13, 39,180, 97, 55,137, 64,166, 49,240, 56, 93,204, 93,160, 76, 90,103, 76,253,152, 55, 49,104, 27,
-225,235,196,125,131,  5, 66,128,248,122,127, 38, 10,136,226, 20,162,157,131, 10,152,141, 80, 47,164,154,215, 14,168,135,158, 86,
- 59,123,239,219, 96, 50,234, 66, 84, 16, 42,105,145, 36,234,  6,185,118, 99,230, 75, 46,138,135,167,203,136,229,183,172,238, 59,
-118,115,226, 21, 80,125, 69,208,255,  0, 56, 10, 10, 12, 58, 82,208, 34, 72,236,118,213, 95,182,196,171, 91,228,122,177,170,157,
- 73,247,130,141, 10, 85,246,225, 91,166,164,137,104, 66,183, 40,106, 46,226,134,203, 40, 45,188,181,  0, 74,105,154,156,108, 82,
-163,142,117,  7, 12,187, 45, 40, 71, 53, 66, 87,177, 97,177,118,177, 78,189,145,247,205, 60,150, 22,130,  0, 81, 67, 43,244,200,
-246, 18,113, 66,109,238, 72,106, 75,109, 72,175, 45, 55, 34, 97,243,206,205,117,104,106, 99,226, 93,128,165,171, 32,144,235,203,
-104, 18, 79, 96, 11,250,177,211,116,171,142,205,200, 75,240,201, 63,126,190,234,152, 57,201, 92,140,151,106,161,215,141, 48, 41,
- 83,143,113,220,207, 58,165, 98,131,169,148,  4,212,143,179,  2,147, 17, 68, 40,105,190,193,246, 97,219,135,108, 48,168,245,207,
-179,195,  6,241,187, 64, 89, 73,226, 48,190, 32,109,  8,244, 84, 58,146,131,238,145, 66, 15,  2, 14, 89,225,206, 97,180,168, 57,
-135,210,214,192,158,185,219,146, 20, 50,169,174,  5, 60,166, 27, 28, 79, 19,167, 18, 70,234,174,161,180,227,173,193,182, 96,217,
-175,179,161,134,212,220,116,188,182,218, 14,  3, 81,159, 12, 65,126, 37,219, 13,112, 99, 21,235,109,169,180,  4, 69, 77, 50,214,
-181,211,129,227,140,249, 34,204,162, 35,183,183,  4,232,178, 52, 93,  2,148,202,124,141,211, 33,151,126, 33,105,140, 81, 85, 28,
-102,122, 23,215,140, 36,102,224,170,202, 19,157, 61,190, 24,125,184, 37,196,145, 42,141,119, 91, 24,180,194,118,123,233,245, 22,
-106,144, 79,102, 89,  1,137,225,168,178,134,154,149, 86,229,104, 41,245,202,156, 52,168, 26, 37,  0, 86,131,195,196,226, 94,  5,
- 25,194,133,111,186,109, 50, 28,144,187,162, 78,153, 77, 26,182,105,195, 73,168, 72,197, 91,178,117,170, 35,104,121,229,253,253,
-233, 13,167,212,212,137,201, 89,245, 43,238,145,233,158,  1, 66,134,153,231, 94,  7,134, 89,203, 25,111, 90, 17, 37, 65,109,199,
-183, 45,210,229, 45,107,107, 83,171, 73, 89, 75,110,182,133,133, 85, 69, 68, 18,106, 73,  2,160,120,101,226,199, 10,162, 57, 70,
-165, 89,117,179,202,182,110, 54, 38,100, 90, 65, 91,100,  2, 56,211,138,128, 61,131, 25,247,173, 80, 72,181, 18,107,183,111,239,
- 33,197,178,165, 40,176,  2, 86, 40,162,105,144, 42,204,112, 63,145,174, 35, 77,199,136, 82,186,143, 18,174,146, 35, 50,183, 97,
-121,148,176, 10, 20, 10, 74,178, 52, 21,165, 61,148, 56,142,255,  0,196,139,150,174,109,  9, 19,152, 23,  8,215, 47, 65,146, 10,
- 40, 14,151, 10,193, 69,120,154,166,137,200,255,  0, 46, 51,174, 65, 35, 71, 31, 38, 68,162,203,204,105,179, 37,139,125,227, 73,
-135,146,189,102,188,202, 10,  4,144, 87,165, 96, 28,141, 60,198,190, 61,152,165, 40, 83, 84,107, 67, 54,174,141, 80,123,145,189,
-109,241, 53,173,181,161,197,249, 66,202, 84, 10, 73,168, 32, 40,112, 62, 21,197, 43,201,200,211,183,117, 36, 70,183, 22,237, 77,
-201, 79,  8,204,235,101, 31,235,  9, 82, 19,144, 81, 26,141, 18, 60,160,159,  1, 66,120,101, 65,132,180,156,120,144, 94,191,160,
-221,179, 17,117,220,146,220,105, 46,250, 81, 19, 81, 85,168,  0,148,154,143, 53,115,169,225, 80, 41, 76, 58,237,209,152,181,156,
-168, 75,119, 92,139,118,208,219,110, 74,188,184,148,193,108,128,134,192, 58,138,202, 42, 18,148,228, 10,178,168,  0,240, 53,239,
-197,120, 57, 74, 91, 98, 91,190,163,106, 46,165, 50,254,237,191, 93,238,174, 46,202,226,224, 91, 28,205,  1,  4,122,197, 36,212,
-106,112,103,219,192, 26, 83, 29, 37,156, 69,183, 84,114,183,242, 27, 99,238,221,143, 30, 36,214, 84,239,153, 75, 65, 10, 42,206,
-170,175, 26,251, 49,114, 22,148,120, 42, 14,199,248,184,150,150,209,187, 36,194, 75,117,  2, 67,103, 53,119, 10,229,135, 73, 22,
-148,182, 61,  9,237,155,113, 47, 90, 39,199, 52,120, 13, 43, 73,225,137, 20, 55, 45, 11,241,146,146, 38,182,219,172, 27,140,112,
- 53,  3, 81,154,120,154,226, 38,134,233, 33,185,216,115,173, 18, 22,227, 85, 84, 69,146, 85,199, 44,241, 53,185,211, 70, 85,187,
-  6,141,150, 34, 51,114, 64,112, 31, 57,207,236,197,164,233,192,172,208,214,237,218,116,  9,202,136,150,138,155, 21, 26,187,241,
- 44,103, 82, 19,102,215,183, 19,117,149,241, 78, 39,239,149,157, 41, 94, 56,180,173,129, 99,114,203, 97,177, 50,238,134,166, 43,
- 75, 25,123,217, 80,253, 56,209,199,178,169,169, 12,228,226,206,204,233,227,145, 27,126,  5,189,141,213, 46, 61, 94,  4, 42, 58,
- 93, 79,119,  5, 16,112,251,247,182,124, 49, 28,149,120,151, 91, 49, 20,  5,123,120, 98,170,184, 59,104,160,142,107, 64,145,245,
- 97,234, 99,148, 76,136,213,226, 63, 70, 23,120,109, 50, 88,225,252,184, 55,139,182,129,147, 22,185,254,140, 27,197,218, 24, 69,
- 85, 43,157, 61,135,  7,136, 27, 76, 24,244,207, 63,175, 11,226,  6,211, 10, 96,146, 59, 79,136,195,148,234, 27,  0, 35,  3,153,
-  3,219, 74,225,119, 11,181,138, 55, 20,131, 78,223,101, 48,199, 49, 84, 69, 12, 98, 56,231,236,193,226, 10,160,131, 33,133, 83,
- 63,207,129,204, 93,130,136, 96,131,237,194,111, 23,104,175,195,130, 51, 25,251, 48,155,197,161,143,134,160,237,167,250, 39,248,
-112,120,161,180, 10,100, 17,199,243,140, 27,194,134, 62, 29, 29,180,195,183,133,  2, 41,144, 59, 50,239,194,238, 10,  5, 90, 40,
- 51, 21,  3,183, 14, 76,107, 66, 74,111, 86, 73,167,211,135, 38, 35, 70, 61, 37, 86,148, 21,246, 97,106, 55,105,192, 48,238,150,
-120,187,106, 28, 47, 85, 46, 62,218, 18,149, 21,144,  9,  4,  1, 67,195,179,134, 62,100,183,197,190, 71,164,190, 38, 44,215,  4,
- 63,184,204,152,170, 72, 97, 14, 22,194,  1,224,117,103, 90,215, 18, 77,232, 58, 40,149,109, 34,135, 46,211,190, 28,134,161,213,
- 33,205, 62,233,112,164,  0, 43,217,137, 39,242,161, 19, 32,215,200,111,220,247,135,223, 16,135,163,165,167,197,125,208,164, 54,
- 81,246, 40, 12, 86,185, 33,179,212,124,180, 76,103,111,237, 43,180, 45, 65,  0,165, 75,213,252,226, 85, 90,249,188,105,134,218,
-183,186, 73,145,221,116, 69,109,202,214,164, 93,238, 95,138, 33,117,121,137, 62,186, 20,115,243, 41,198,205,  7,213,141,107,211,
- 80, 49, 28,170,253,103,118,165,180,164,169, 52,170, 65, 35,234, 56,247,  8,205,208,243,245, 26, 36,103, 66, 73,195,148,245, 22,
-134, 61, 58, 31,225,196,155,128, 42,153,  7,136,250, 70, 13,193, 64,191, 14,107,225,244,127,  6, 13,194,  1, 76,175,133,124,184,
- 93,193, 64,191, 11,168, 80,159,203,233,194,238, 10, 21,119, 60,186,109,176,115, 19,110,202, 22, 40,204,198,220,206, 16,242, 29,
- 41,160, 82,193,206,180, 25, 19,137, 33,119, 90, 48,225,169,202, 59,251,150,187,163,150,219,147,252,191,189,153,244, 67,169,  5,
-151, 66, 78,135, 19,224,120, 87, 16,222,130,228, 94,177,122,188, 72,197,234,193,103, 63,117, 28,132, 30, 58, 64,205, 88,173,225,
-186,240, 37,105,118,154, 22,123,117,198,212,234,230,176,128,148, 80,128,165, 12,232,112,199,160,248, 66,138,166,172,137,204,191,
- 18, 71,226,203, 46,184,146, 74,  2, 19, 74,253, 28, 49, 53,180, 75,226, 70,133, 95,185,173,230,227,113,115,225,144, 16,218,105,
-146,248,128, 69,106,112,151, 37, 93, 10, 18, 85,100, 75,113,216,155, 13,250,113,198,180,164,100,  7,243,141, 71, 28, 86,185, 90,
- 17,220,211,129, 11,121, 75,180,110, 38, 42,160,211, 11,108,133,102,  5,  2, 21,196,215, 42, 26,253,152, 49,110,210,165, 92,149,
- 77, 73,173,182,108, 59,131,234,110,236,249, 45, 37, 69,157,104, 58,207,153,116, 42,168, 58,136,168, 53, 32,101, 79,164,217,220,
-218, 25,  7,185, 17, 59,206,220,136,235,109,169,181,122,193,197,250,207,173,223, 80,168, 84,112,160,243,209, 57, 38,162,160, 83,
-219,134,108, 82,226, 54,107, 81,162, 76, 37,197,140,183, 16,162, 86,218,220, 74, 10, 92, 39,202, 77, 82, 81, 79, 55,180, 17,245,
- 98,173,251, 41,240, 99,117, 65,236,187,225,139,108,100,192,146,165, 37, 41,210,134,223,121, 62,242,146, 51, 32,145, 67,140,247,
-161, 36,100, 58, 13,193,102,114, 50,150,225,214,253,  2,150,156,200, 73, 32, 10,141, 71, 42,143, 12, 36,210,219, 82,197,185, 58,
-141, 76, 75,140,169,206, 57, 17,229, 37,132, 39, 82,130, 66, 82, 18, 77, 64, 53, 88, 52, 63, 86, 50,167,115,107,224,106,168,169,
-115, 54,174, 23, 40,150,200,141, 59,  6, 65,125,199,117, 59,165, 69, 94,153, 52,243,123,223,172, 83, 90,118, 87, 21,165, 45,207,
-129,102, 19,162, 30,118, 74,165,238, 89,136,132,242, 64,141,172,  6,136, 53, 38,170,160,  0, 18,  9, 39, 49,136,111,199,106, 46,
- 97,197, 78,101,215,  7,151,140, 90,226, 23,146,  3, 19,193, 45,148, 41, 57,148,129,169, 85, 33, 68,131, 85, 80, 17,151,176,230,
-115, 92,156,180,124, 14,150,222, 52, 98,157, 56,149,223, 82,219,102,245, 26,221,104,147, 33,149,152,113, 94,146,220,145, 69, 20,
-128,250, 80,150, 85,254,143,144,138,156,170,170,118,211, 23,186, 12,214,246,165,196,198,235,246, 90,138,113,224, 84,118,194, 16,
-235,100,  1, 64,  8,227, 83,199, 29,114, 85,103, 37, 37, 66, 64,211,250, 93,101,109,154,  1, 66,105,221,135, 80,150,195,163, 37,
-251,102,232,182,149, 74,209,  4,103,219,227,133,148, 75,210, 68,206,209,116,117,162,151, 10,141, 20, 51, 29,149,195,237,104, 58,
-212,156, 89, 55,219,183, 23,219,  9,125,  6,168,226,174,204,177, 36,173,151,169, 93, 81, 53,135,119,180,222, 45, 75,109, 46,128,
-249, 20,165, 42, 74,189,152,171, 45, 25, 11,154,106,131, 52, 59, 54,224,129, 40,173,146,126, 28,156,189,132,226,107, 50,171,161,
-159,114, 52,100,199,110,109,  6,167,177,235,200,111, 83,138,205, 74,166,117,197,249, 99, 83, 81,109,201, 83, 82,121,203, 14, 88,
- 91,238, 87, 83, 21,209,247,138,160, 66, 64,243, 86,180,160, 24,212,198,105, 71, 82,189,200,213,232,117, 71, 44, 58, 72,219,214,
-169,113,239, 87,148,106, 74,116, 60, 88, 85, 60,202,226,  2,169,135,221,201,162,208,116, 45, 84,188,160,219,163,194,101, 49,227,
- 36, 33,148,  0,148,164, 10,  0,  7,  1,138, 30, 45,117,100,202,  6,192,103, 60,143,213,135,110,168,187, 67,165,128,120,140,252,
-115,193,188, 85,  0,201,140, 43,159, 15,171,243, 96,222,197,218, 24, 71, 71,211,225,252,120, 55,137,180,207,195,160,159,233, 96,
-222, 73,181, 25,248,112,156,135,189,244, 97, 84,152,155, 81,130,211,156,  8,169,240, 24,118,225,187, 12, 38, 50,201,204, 15,164,
- 12, 27,152,109, 12, 35,169, 39, 44,135,134, 19,115, 13,162,137, 96, 28,232, 73,236, 39,  6,226, 72,197, 80, 80, 69,  7,219,249,
-119,225, 55, 11,180, 58, 98,119,140, 27,195,104,100,198, 72, 60, 48,110, 13,161,189, 14,202, 10,248,225,119, 11,180,194,154,  3,
- 34,145,245, 97, 42, 59, 98, 48, 89, 87,234,225,119, 12,218, 96,180,120, 26, 97,  3,104, 66,197, 79,135,112,195,148,154, 13,130,
-106,139,158, 68,125, 35, 14,222,196,112,  8,168,233, 25,210,169,227,195, 15,132,234,198,237,160, 95, 69, 58,169, 67,236,166, 36,
-222, 20, 93,167,153,147,109,115,238, 76, 53, 57,134,202, 16,173, 34,169, 10, 52, 74, 10, 73,175,208,  8,199,204,248,151, 20,237,
-158,135,122,219,139, 38, 91,102,197, 13,137,  9,245, 17,164, 59, 85,229,145, 42, 43,226,  7, 30, 24,115,144,168,145,237, 27, 86,
-185, 50, 97,169,101, 44, 36,149,165, 36,230,170,  2,161, 95, 98,134, 39,110,176, 76, 20,117, 99, 59, 86,200,146, 55,114,193, 26,
-153, 17,234,178,123, 74, 28, 74, 15,218,126,188, 80,191, 63,133,139,  5, 86,141,109,197, 97,106,123, 83,109,  9, 36,201,148,223,
-220,212,128, 21, 64, 66,128,175,112,207,232,193, 98,243, 91, 89, 30, 66, 74,168, 98,228, 86,219, 68,107,145,177,169, 53,121, 50,
- 25,212, 73, 20,  4,201,244,141,127,233, 98, 92,236,173,171,119,119,241, 49,163,109, 57, 47, 73,217,204, 48,151, 16,151, 83, 82,
-149,128,160,124, 14, 99, 30,249, 27,219,214,229,192,224,221,170, 83,208, 41,240,192,228,  5, 79,118, 88, 85, 48,240,204, 24,192,
-100, 81,159,176, 97,254, 32,120, 97, 67, 30,  2,159, 86, 15, 16, 60, 48,191, 15,225, 79, 97, 24,119,136,195,195,  0,102,156, 70,
-127, 78, 15, 16,111,134,103,210,174, 84,194,169,138,173,152, 84,100, 17,195,  6,240,118,198, 29,241,203, 77,167,204, 43, 81,179,
-110,168, 73,149, 18,186,144, 84,144, 20,133, 14,212, 43,136,196,138,235, 66,120,101, 63,206,158,145, 24,184, 88,224,158, 89,193,
-103,241, 24,142, 85,105,125, 90, 22,182,200,167,188,104, 13, 49, 44,114, 34,244, 99,224,154,117, 41,174,112,116,241,188,121,119,
-105,129,117,220, 79,160, 65,152,191, 69,214, 24, 73,163,100,138,138,168,101,225,133,141,184, 72,127,143, 55,167, 34, 25,115,228,
-182,234,184,237,  9,247,251, 60,  7, 26,177,192,108,188,244,183,144, 82,149, 38,191,171, 94, 56,115,133,  8,238, 74,188, 10,161,
-123, 67,214, 89,113,196, 19, 92,133,107,153,197, 75,144,109,232, 34,150,133,187,200,143,151,230,252,230,132,182, 55,  6,234,138,
-109, 59, 40,213, 72,114, 74, 52,184,226,123,208,221, 65, 53,241,194, 53,181,106, 34,139,145,200,125,101,236, 43, 31, 43,122,140,
-220, 59, 10,196,234,164, 68,177,175,240,197,188,182,195, 65, 82, 16,149, 44,232, 74, 86,225,210, 10,128,207, 50,107,225,136, 98,
-149,116, 41,228,186, 58, 17,173,151,117, 92,120,175,201, 11, 67,109,165,  7,239,157, 78,179,161, 67,213, 73, 57,129,229, 58,179,
- 39,129,240,196,234,229,  4,130,162, 14,187,253, 28, 67,106, 74, 10,208,176,178,201, 77,104, 20, 74, 84, 91, 82,138,147,153,207,
-142,100, 96,170,  9, 70,162,145,218,122,228,219,178,219, 65, 48, 90,211,241, 15,132, 35,245,242, 74,  8,202,181,238, 28, 59,177,
- 12,168,152,229,108,143,238, 13,156,229, 61, 88, 96,149, 55, 82, 41,168, 84,123,192,128, 73,166, 71, 16, 92,180,158,168, 54,140,
- 45,183, 53, 45,132,160, 20,164, 40,182,181,209, 36,165, 67, 58, 84,154,125,191, 78, 42, 92, 90, 80, 88,167, 81, 40,150, 75,140,
- 41, 46,204,101, 53,245,200, 78, 74,  5, 39, 42, 16, 85, 90,120,248, 99, 34,244,117, 53,172,199, 66, 85,183, 54, 75,226, 34,218,
-144,165, 56,203,133, 43, 96, 18, 20, 18,106, 10,146, 81, 82, 56,130, 69, 14, 35,146,162, 47, 89,183, 82,119,181, 25,183, 90, 28,
-102, 92, 66, 69,193,  9, 75,137, 42,101, 46, 33,202,100, 66,189, 66,116,229,151,110, 43,201,110, 84,102,173,141,182,221, 75,  7,
-109,239, 40,115, 82, 22,151, 92, 66, 80,116,184,148,104,214,221,  9, 21, 77, 52,113,  2,149,175,143,134, 50,175,218,124,141,155,
- 57, 73,142,155,129,251,118,243,176,187,182,111,210, 17, 38, 27,236,136,233, 66,145,165,228,254,176,112,234,227, 69,214,134,157,
-128,226, 11, 91,173,181, 37,196,150,242,133,232, 56,179,154, 46,219, 90,102,219,190,202,177, 92,  1, 76,152,174,148, 40,168, 17,
-168,113, 10,  0,246, 40, 16, 71,129,199,125,139,121, 93,182,165,205,158,123,149, 97,218,155,139,228, 56,199,142,217,208,154,230,
-164,212, 98,201, 29,177,246,214,236,118,154, 41, 90,190,241, 35,129,227,150,  9, 92, 84,169,165, 13, 81, 50,177, 56,243,246,176,
-173,  4,190, 83,229, 41,224, 49, 89,100,166,130, 48, 36,251, 49,235,171,173,254, 30, 73, 74,136,161,212, 42,112,235, 87,156,139,
- 16,157, 21,  9,174,219,177, 74,182, 62,151, 83, 85,106, 35, 42, 84,156, 75,110,203,148,168, 69,113,109, 85, 46, 61,179,176,175,
-247,120,109, 15,195,214, 75,160,105,242, 18, 79, 12, 94,142, 27,140,145,  7,136,164,142,137,228, 71, 77,223,141,219,155, 69,254,
-  1,143, 17,  9, 58,156,113, 36, 41, 68,246, 12,104,187,234, 11,129,  4,109, 54, 93,188,187,233,251, 98,236, 57, 70,231,  2, 48,
-114,230,107,165,199, 70,160,128,127,154, 41,151,183, 21,174,101, 73,240,224, 79, 27, 72,158,179, 24, 36,118, 98,  5, 38,201, 84,
- 40, 44,150,114,200, 97,119, 11,225,134, 12,172,102,120, 28, 59,112,205,166, 66, 18,156,178,174, 13,195,148,  3,  0,145,152,192,
-230, 42,141,  3, 20,142,204,206, 19,120,229, 16,201, 66,120,168,125,131,  2,155, 23, 96,100, 54, 65,225,246, 97,119,176,216,  5,
- 54, 73,204, 19,227,195, 15,241,  6,208, 30,151,120, 35,219, 95,224,194,248,130, 80,202, 89, 30,240, 24, 60, 64,160,162, 25,239,
-206,191,102, 19,112,187, 69, 82,216, 72,242,215,219,132,220, 57, 68, 48,108, 40,102,156, 21, 13,161,189,  3,167,221,192,165, 64,
-218,101, 44, 84,208,164,253,184,119,136, 27, 64, 99,164,101,217,236, 56,117, 88, 80,194,208,148,166,189,189,152, 55, 13,  9,234,
- 33, 32,149,140,135, 26,120,113,194,202, 84, 66,144,109,209,212,135, 35, 54,174,166,238,187,158,  2,166,160,208,197,132,250,102,
- 62, 72, 52,167,165, 19,212, 93,125,163, 16, 59,209, 92, 73, 35,101,201, 84,173, 55, 39,204, 11,150,237, 77, 22, 61,145,107,153,
-121,220, 78,171,225,163, 70, 86,152,170,118, 65,168, 74, 18,218,131,143,170,167,176, 55, 94,207,100, 83,204,163,248, 71,172,126,
-209, 11, 79, 49, 58,221,230, 14,183, 44,251, 70, 53,134,  9, 82,154,245,174, 73, 17, 92, 66,168,105, 81, 53,215, 28, 85, 59, 72,
-141, 76, 73, 25,220,150,163, 36,163, 30,  3,191,254, 89,117,152, 90,252, 92,239,155,103,227,224,212, 90,190, 13, 63,  5, 66,106,
- 71,196,252, 62,174,193,255,  0, 83,244,246, 98,122,202,131,106,251, 14,104,218, 86,161, 45, 15,195,148,138,219,216, 90,217,  7,
-180,133, 84,255,  0,239, 12,124,207,133,240,122,207, 68,200,117, 36,246, 75, 19, 97,175,197,130, 74,163,196, 67,137, 74, 83,157,
-116, 14,223,161, 67, 19,202,229, 93,  8, 99, 19, 65,137, 50,127,204,113,110, 76,  2, 98, 56,176, 29,211,144, 74, 86,159, 75, 82,
-171, 65,150,172, 88,187, 58, 11,110, 53, 70, 23,103, 13, 72,147,113,101, 39,225,229, 43,224, 91, 57,100, 52,250,164,140,184,106,
- 24,161,118,231,194, 58, 16,169, 21,223, 87,100, 88,165,193, 46, 42,133,181, 58,146,170,208,234, 13,168,138,226,222, 29,186,148,
-179,154,218, 57,114, 53,166, 92, 98,227,186,214,  1, 13,205,142, 21, 79,116, 16,248,117, 99,236,166, 50,122,212,220, 98,227,218,
-154, 41,227,241, 79,177,175,188,235,180,195,110, 49, 84,118,206,164, 54, 75, 73, 63,232, 29, 36, 99,221,250, 14, 79,141,133,102,
-125,176,143,220,113,153,214, 60, 59,178,143,100,159,222,103,210,238,227,237,198,186,145, 83,104, 61, 21,126, 71, 14,220, 37,  2,
-170, 57, 86, 13,226, 80, 47,194,174,180, 20,251, 48,237,227,168,  3, 27, 44,199,218, 48,138,122,141,160, 62, 29, 64, 80, 39, 44,
- 57,177,219, 76,124, 41,237, 24, 42, 27, 66,124, 39,135,219,133,168,109, 20,248, 84,246,224,168,109, 16,155, 96,183, 92,216, 49,
-174, 17,219,145, 24,154,232,121,  9, 90,106, 56, 26, 40, 28, 57, 92,160,109, 53,111, 91, 46,211,122,219,242, 54,228,152,232, 22,
-185, 13,169,133,182,148,128,144,149, 39, 78, 67,  2,158,181, 13,165, 35,203,190,128,182, 70,212,221, 10,191,110,105,102,237, 13,
-181,149,195,134, 90,244,144,143, 53, 83,174,132,234,196,210,191, 81,170,  5,195,189,183,  4, 30, 92,109, 55,111,171,183, 76,155,
-110,138,148,133,198,179, 71,248,135,210,221, 41,169, 45,  2,154,132,129,158,120,130, 83, 29, 67,196,174,188,119,150,223,223,125,
- 74,239, 45,245,182,  3,136,181, 93, 46, 78, 58,200,152,222,135,146, 61, 52, 36,149,167, 48,  8, 80, 34,149,200,119,241,194, 66,
-117, 50,242,163,169,  8,176,177, 41, 16, 90, 12, 34,174,168,144,148, 45, 25, 20,210,153, 42,162,185,248,226,205, 83, 35,134,129,
-174, 22,159,245,213,184,202, 10, 22,132,143,185, 80, 94,130,165, 31,116, 17, 90,123, 42,112,217,208,145,173, 13,232, 12,185, 21,
-198,159,101, 26, 98, 56,163,173,210,130,167,  0,173,105, 85, 20,130,107,150, 67,235,196,114,224, 36, 19, 28,141,188,189,169,151,
-208,165, 54,230,104,245, 16,148, 85, 36,228,164,145,159, 14,242,105,132,124,  9, 33,196,141,220,172,109, 23, 92,142,194, 66,139,
-100,169,178,148,234, 20, 34,164, 81, 68,129,157,120,  1,138,119,146,100,202, 61,129,237, 74, 97,164, 22,155, 66, 62, 37,191,124,
- 23,  2,150,105,144,201, 85,160,246,145,237,198, 69,216,235,169,167,141, 45,  7, 27, 43,200,117,114, 45,206, 40,167,212,  5,198,
-210, 10, 84, 60, 82,164,214,148, 36, 12,251, 56,226,  9, 70,133,251, 46,172, 93,118,153,140, 67, 67, 79, 16,151, 21,247,138, 85,
- 41,253,106,168,214,158,218,125, 88,134, 83,161,105,219,170, 28,108,178,111,176, 89, 43, 77, 72,165, 86, 65, 90,148, 16,149, 84,
-172, 16,176, 52,249,123,233,221,138,115,138,151, 18,107, 55, 36,137, 20, 29,222,196,153, 13,139,140,161,234,157, 41,215, 80, 84,
- 82, 65,  0, 42,169, 38,160, 30,243,158, 42,206,221, 52, 46, 70,253, 53,166,168,215,231, 78,194,153,127,178, 67,230, 69,189,  1,
- 51, 91, 38, 29,207,210,  0,  5, 54, 87,165,151,179,167,  2,116, 30, 39,204, 59,  6, 87, 58, 38, 99,141,201, 90,124, 31,  2,191,
- 89,193,223,  8,221, 92, 95, 18,182,143,183,174,134, 86,133,173, 84,111,135,210,113,214, 43,109,156,202,183, 70, 78,172,155, 43,
-227,155,140,225,  4,172, 36,235, 24,137, 90,117,101,157,188, 11,139,147, 92,148,221, 59,138,211, 46,109,174, 10,228, 91,152,160,
- 43, 74,107, 67,220, 41,137,108,226,232, 74,167,169,102,114,123,167, 59,158,235,223, 45, 90, 46, 49,221,140,208,247,170,130,  9,
- 60,  7,102, 44,226, 89, 80,147,108, 50, 25,210,214,143,151,197,225,155,147, 14,180,245, 35,  2,149,133, 41, 57,  1,151, 17,139,
-202,112,139,169, 26,148,154,161,210,220,190,228,197,163,106,216,154,183,220,144,137, 83, 16, 19,231, 90, 70, 84, 20,160,196, 55,
- 50, 36,222,131, 85,178,103, 22,214,196,102,131, 44, 35, 75, 67, 32,148, 10,  1,245, 98, 29,213, 37, 81,161,180,220, 84,254, 67,
-  6,225,104, 28, 69, 64,204,143,209,131,120,234, 10,  8,221,132, 87,  5,104, 20, 51,240,221,128, 97,219,197,160,100,176,  0,161,
-  2,163,191,  9,184, 85, 16, 22,171,221,245,140, 21, 13,161,189,  5, 30,  7,243, 97, 84,135, 40,134, 75, 42, 25,112, 31, 70, 23,
-112, 53, 64,226, 57, 35,248,112,110, 26, 28, 68,175, 17,159,209,131,112, 24,248, 51,221,133,241,  7,237, 21, 68, 76,171, 76,188,
-107,131,196, 13,161,211, 17, 32, 84, 28,252, 48,120,130,237, 12, 24, 72, 20,207,  7,136, 27, 67,  6,146,159,102, 17,204, 54,153,
- 62,152,203, 42,247, 97, 55,176,165, 13, 91,173,210,221, 99,183, 61,120,188,190,212, 59, 60,113,169,249, 82,157, 67, 76,182,158,
-245,173,194, 18,145,237,195,148,187,195,109, 57, 21,214,243,234,243,144, 59, 53,180, 33,235,251, 55, 25,207, 36,169,136,246, 96,
-103, 41,121, 84, 13,108, 85,164,214,185,106, 88,174, 33,187,150,173,247,146, 70,203,230,202,  3,155, 31, 48, 78,102, 93, 89,118,
- 39, 40,172,173, 89,226,157, 72, 68,235,168, 18,229, 47,207, 79, 81,182,147,247,104,162,120,133,165, 99,250, 88,142, 89,143,130,
- 27, 40,197, 17,141,187,202,110,181,122,130, 91, 87, 13,228,103,191, 98,113, 40,125,147,125,123,224, 98,250,107, 77, 82,227,113,
-146, 16, 10, 73,243, 81,  9, 57,103, 76, 86,156, 46, 93,122,189,  1, 78,156, 11, 91,100,124,183,236, 77,164, 57,205, 59,195,146,
-146,160,218,191, 11,177,160,196,142,  8, 86,165, 37,199,156,  5,199, 18,161,220,148, 30,218,226,213,172, 69, 30, 34, 74,236,155,
- 47,157,135,202, 78, 93,114,194,220,109,123,  6,203, 22,211, 24,128, 20, 98,163,239, 86,  7,255,  0, 17,213,234,113,121,112,212,
-163,139,177,106, 60,  4,112,169, 32,248, 70,206, 64,140, 59,196,  5, 10, 25,248, 47,101, 61,135,  7,136, 59,105,195, 27, 10,212,
-203, 49,174, 16,101,143,245,181, 75,113, 37, 68,213, 32,169,178, 83,244,106, 72,199,204,190, 37, 34,143, 64,148,106,205,203, 19,
- 79,200,180, 76,128,180,148,170, 33,117,101, 73,200,128,165,106, 41,250,241,102,228,146,146, 34,183, 10,166, 30,219, 25, 46, 88,
- 95,163, 69,165,165,133, 42,180,166, 64,254,122,140, 58,119,119,  5,171,110, 28, 77, 75,149,214,220,254,210,135,  9,148,  6,174,
-105,147, 84, 50,146,  1,173, 52, 42,157,226,164,253, 88,171, 53, 86, 62,212,190, 38,138, 87,156,187,138, 60, 29,214, 35,203,111,
- 90, 82,234,234,159,244,129, 21,250,142, 55,122,124, 62,  9, 51, 19,169, 74,154, 22,127, 77, 54, 55,127,201, 50,173, 46,183,247,
-151, 89, 33,218, 15,213,214,230,188,190,138, 99,151,243, 29,197,110,126,207,188, 48,227,185,122,191,137,213, 54,166, 27, 84,  6,
-136, 95,170,178,148,184,181, 84,159, 59,137, 14, 44,103, 94, 10, 81,199,173,121, 15, 47,198,233,150,255,  0,203, 85,236, 57,222,
-185,107,110, 68,141,159,134,  3, 62,204,118,138, 70, 62,208,122, 64,101, 95,207,133,222, 27, 76,  6,169,219,246, 28, 38,224,216,
- 96,176,158,194, 43,227,133,241,  3,104, 61,  4,255,  0, 59,243,255,  0, 14, 13,194,108, 50, 88, 61,135,242,250,112,187,131,105,
-131, 29, 74,200,208,251, 63,151, 10,166, 27, 65,240,170, 25,129, 79,163, 14,241,  3,105,145, 25,106,203, 63,171,  7,136, 27, 67,
-136,117, 60, 51,241,254, 60, 38,241, 84, 76, 60,203,108, 54,167, 95, 41, 75, 73,  5, 74, 90,141,  2, 64,204,146, 78, 67, 11,188,
-117, 10, 67,153, 93,127,116,197,203,105,111,192,153,122, 85,206,231, 28,150,220,102,206,194,228, 39, 80,200,128,241,210,201,167,
-130,241, 12,242,163,  1,124, 38, 86,183, 95,155,239, 76,240,210,127,238,251,217, 87,122, 99,193,203, 62, 57,201, 56,129,245, 40,
- 80, 29,186, 51,203,126,171, 55,237,183,154,252,246,221, 92,196,180, 33,104,182, 95, 46,243,174,176,208,246,128,242, 25,145, 33,
- 78,180, 21,164,148,106,  9, 32, 16, 50,174, 52,113,230,164,147, 70, 46, 91,213,141,251,114,221,241,  9, 97, 13, 51, 93, 26,144,
- 66,155, 85,  0, 42,173, 73, 81,160,197,202, 21,237,186,146,  6,236, 15,190, 94, 67,117,248,177,168, 37,  9, 73, 81,  4, 36,174,
-133, 32, 87, 33,218, 52,229,129,170,150, 19,160,139, 54,182, 88, 96,165,149, 13, 33, 73, 40, 83, 37, 68, 21, 42,137, 74,106,217,
- 58, 73,202,188,120,230, 59,112,183, 18, 98,168,232, 46,245,173,216,169, 67,237, 10, 70,123,246,138,111, 91,101, 43, 25,209, 75,
- 33, 65, 92, 15,126, 33,156,104,133,113,160,219, 58,  9, 91,153,234, 83, 10,168, 33, 42,109, 64, 17,217,222, 73,241,197, 59,148,
- 44, 90,208, 69,235,124, 88,205, 58,243,229, 72,200, 29, 85, 20,166, 66,166,164,128, 61,135, 20,111,198,168,187,106, 41,115, 12,
-203, 45, 54,242, 23, 17,197,165,198,252,142,128,181, 36,103,226,160,154,131, 90,229,158, 42,109,162, 44,198, 90,232, 73, 45,232,
- 15,  1, 81,234, 54,164,132,233, 86,106,211,157,116,131,195,218,120, 99, 62,228, 40,107, 99,203,115,245, 18,157,191,  2,216,235,
-  2, 51,141, 52,165,169, 36,209, 20, 73, 81,226,165,170,164,212,  0, 40, 43, 76,241, 70,234,104,209,178,147, 17,190,108, 86,158,
-113, 47, 71,  1, 50, 18,191, 42, 50,108,  0, 73, 81,166,148,211,222, 60, 10,123,134, 93,144,198,227,230, 77,118,202,161, 49,217,
-240,147,112,180, 75,219, 87, 39, 18,228,121,205,174, 17, 36,130,148,135,147,233,235,242,255,  0, 54,160,143, 16, 49, 20, 94,219,
-177,146,210,140,149,255,  0,198,226,245, 47, 78, 83,252,153,249,187,124,117,139,134,242,184,194,137,108,117,176,240, 83, 15,  9,
- 10, 85, 69, 82,  7,165, 80,107, 94, 53,199,164,198,105, 87,208,142, 49,219,122,250, 75,203,147, 95, 41, 27, 21,134,211, 63,255,
-  0, 49,165,182,253,221,227,162, 17,137,168,250, 77,131,197, 90,133, 53, 28, 39,136,144,248,196,232,126, 65,244,151,176,185, 27,
-182, 21,183,109,197, 83,139,132,169,231,164,165, 62, 98,124,  0,196,126, 61,  7,109, 39, 22,174, 85,236,187, 76,179,113,133,  1,
-180, 78, 57,250,186, 65, 80,207,190,152, 60, 81,212,168,252,155,122, 70, 73, 24, 99,144,229, 17, 84, 67, 74,114, 61,184, 85, 49,
-219,  5, 19, 21,  3, 49,150,  7, 48,216, 25, 49,232,106, 56,119,241,194,120,131,212, 67,122, 58,178,204,143,  0,112,111, 23,104,
- 96,210, 65,242,224,223,222, 27, 67,122, 32,241,207,194,135, 11,188, 54,134, 49,205,124,163, 47,102,  7, 62,241, 84, 76,165,145,
- 79, 48,207,  2,152,109,  1,106,153,  1,151,183, 15,140,131,105,141,  9,237,  7,235,194,238, 97,182,160, 83,141,165, 10,114,180,
- 64,  5, 74, 38,148, 72,  2,164,147,217, 65,132,221,223,168,218, 80,128,110, 30,170,121,  1,181,215,232,204,221, 17,100, 73,170,
-135,167,107,245,110,  4, 41, 60, 66,140, 20, 58, 18,124, 20, 71,231,195, 30, 76, 99,243, 10,161, 81,149,238,182, 57, 20, 27,117,
- 80,159,157, 44,180, 42,160,204, 23,155, 52,165,107,254,179,233,  1,244,226, 31,173,136,229,  6,198,  9,191, 48,126, 88,193,109,
-199,211, 98,190, 41,134,255,  0,235, 12,104,168, 66,188,186,170, 15,174,123, 48,215,157, 94,  4,145,181, 30,210, 49, 59,230,143,
-177,131,202,252, 47,109,190,227,  9,207,254,240,185,195,130,181,103,252,210,151, 15,213, 92, 57,228,203,148,106, 51,108, 19,249,
-134,217,223, 51,181, 76,140,167, 54,246,220,134, 29, 62,226,165, 94, 88, 40, 25,118,132,161, 36,211,190,163,217,132,142, 68,155,
-225, 64,147,130,231, 82, 23,116,249,159,115,109, 78, 22,163, 67,180, 54, 66,189, 61, 48,227,201,124,215,141,  2,149, 32,130,105,
-220, 48,249, 74, 76,143,199,143, 36,105, 63,204,239,152, 63, 58, 36,183,254, 91,129,185, 99, 88,164,  4, 34, 59,177, 96,155, 91,
- 11, 95, 29, 98, 66, 91, 98,169,175,244,178,239,197,119, 25, 46,214, 61,100,119, 33,198,223,208, 47, 88,124,193,154,139,151, 48,
-175,112,162,200, 58, 67,171,186,205,145, 61,244,161, 38,164, 32,179,235, 13, 95,215,166, 92,112,170, 50,124,159,175,248,137, 41,
- 57,115, 46, 94, 94,252,187,182,101,142,210,229,183,125, 94,101, 93,150,226,  2, 74,162, 32, 68, 32,212,149,106, 86,165,149,  3,
-195,128, 62, 56, 45, 97, 78, 79,226,159,179,236,194,133,197,177,121, 11,202,142, 91,161, 39,102,216,226,195,144,144,  0,146,166,
-253,105, 21,160,175,223, 60, 84,230,102,164,128,174,223,102, 46,198,204, 80,215,  4, 74,196,  6,192,168, 57,247,226, 77,200,122,
-141, 57,  6, 17, 64, 25,112,194,239, 66,131,225,128,237, 63, 86,  5, 48, 49,240,169,241,250,  6, 23,112, 25,248,100,210,153,224,
-168, 84,225,173,178, 18, 55, 37,224, 53,253,149,106,114, 74, 43,218, 99,203,175,111, 98,130,199,213,143,154,105,240,163,208,228,
-181,208,150,108,107, 60,121,175,221,193, 21,102, 82, 53,161, 67,141, 84,210, 43,199,182,181,196, 87,110,183, 24,190,117, 27,  8,
-209,154,183,171, 35,177,173, 15,183, 18,168, 79,166,168,238,170,153,138,162,153,253, 56,124,110,235, 66, 73,170,162, 56,250,108,
-151, 45,166, 31,130,166,219,187, 66, 83,  4,  5, 31, 54,165, 39,212,237,237, 57,226, 95, 18,178, 43, 74, 20,213, 20,119, 80,155,
- 64,166,237, 18,230,159, 52,146,242,210,231,114,193,108,144,126,177,141,252, 43,180,183, 36, 97,117,  8, 38,203,207,164, 87, 90,
-189,216, 18,181,180, 80,132,201, 74, 27,  3, 58, 39, 83, 78, 15,177, 42, 24,227, 60,226,246,178,207, 77, 75,153,211,151, 75, 35,
- 54,153,  9,131, 28, 81,  8,105,162,161,196,106, 82,  2,178,240,208, 83,142,251,246,163, 51,126, 21,200,126, 25,253,230, 47,152,
-109,255,  0,187,187,180,213,244,137,240,167,179, 30,174,165, 83,155,104, 30,153,165,127,131, 14, 16, 30,138,184,255,  0,  6, 18,
-162,208,199,162, 56,127,  7,240, 96,220, 58,134, 67, 25,228, 15,229,244, 96,220, 20, 13,240,213, 28, 62,188, 27,132,218,101, 49,
- 43,217,246,140, 27,133, 81, 13,240,104, 30,240,203,  6,225, 84, 12,136,200, 28, 56,119, 97, 55,142,216,131,  8,195,133, 63, 47,
-163, 11,226,  6,196, 39, 50,218,196,216,203,137, 37,  1,113,221, 74,155, 90, 21,152, 41, 80,210, 65,250, 14, 23,120,187, 14, 73,
-234, 35,229,123,203,171,229,138,231,186,185,113, 34,116,125,198,211, 47, 75,102,214,175, 73,246,228, 58,148,149, 37,148, 26, 33,
- 72, 42, 57,  2, 74,169,221,136,110, 65, 52, 49,195, 67,203,190,108,108,125,229,179,111,242,108, 91,146, 32,129,118,104,148,174,
- 20,130,182, 94, 71,112, 82, 29, 26,254,177,140,155,214,151, 18,156,228,209, 11,188, 91,156, 84,134,138,194, 64, 82, 82,170,158,
- 21,  9,167,231,199, 83,131, 20,226,140,108,207,152,151,237, 75, 75,210, 45,143, 40,133, 29, 45,  0, 16, 66, 84, 50,225,151, 19,
-199,187, 26, 18, 91, 72,237, 85,146, 40,118,184,182,249, 72,105,230,242,  0, 40,165, 41, 90,138, 74,133, 42,146,162, 64, 80,204,
-128,161,136,100,235,192,190,146, 65,238, 12,219,166,167, 75, 80,253, 27,131, 43,208,227,175, 59,169, 11, 37, 32,140,148,132,143,
-120,158, 20,167,217,136,100,218, 65, 85, 83, 91,240,199, 29, 96,180,211, 69,132,168, 81,192,219,129, 73,212, 50,174,122,116, 30,
- 60, 43,222, 49, 20,231, 81,241,110, 70,172,219, 68,135, 91,210,206,167, 14,130,132,105, 45,173, 73, 90,104, 52,170,129, 10,204,
-154,230, 43,221,136,101,241, 19,168,161,162,126,219,126, 65, 12,130, 86,242,193, 31,114,162, 64, 88,  1, 85,242,113, 20, 25,138,
-229, 94,211,150, 43,220, 68,145,133, 70,231,237,119, 59, 91,116, 90,192, 21, 40,118,165, 42,  8,161,  9,174,138,165, 85,169, 20,
-197,109,181,122,147, 69, 56,177,198,211,118,146,133, 37,130, 85,233, 55,146,171, 74,144, 70, 68,132,215, 63, 10,229,199, 21,174,
- 69, 23,237,100,109,116, 68,175,106,222,146,228,166,208,232, 81, 42,242,128,200, 66,138,117, 26, 10, 84,159,160, 84, 14,243,140,
-235,240, 70,190, 53,205, 73, 66,228, 34, 84,114,148, 40, 37, 73,  1, 42, 70,105, 58,208, 10,105, 90, 10,158,204,133, 41,226,107,
-140,217,104,106,202,146, 68,131,149,142, 38,237,123, 74,164,232,244, 70,148,163, 66,137, 79,147,207,157, 43,250,194,135,244, 98,
-180,230,170, 73,102,146,209,158,204,114,125,165,203,229,134,220,146,240,163,206, 90,237,238, 45, 37, 58,104,165, 68,109, 68,105,
-236,166, 59,203,114,172, 23,122, 57, 91,145,214, 84,237, 37, 72,136,154,127, 22, 31,184, 79, 12, 81, 17, 64, 30, 24, 93,226,236,
- 20, 76, 64,115,207, 79,209,132,220, 42, 84, 12,152,137,173,  0, 39,196,224,220, 20, 97,196,116,241,  0,125, 25,224,168,170, 45,
-134,244,136,224, 63, 70, 18,162,236,161, 32,181,114,159,152,151,198, 19, 42,221,102,146,184,202, 21, 75,138,109, 72, 74,135,122,
- 75,154, 65,250, 49, 94,121,150,161,198, 72,141,222,132,121,130,235,202,126, 97,217, 24, 84,139,149,154, 82, 35, 39, 53,184,150,
-139,137, 72,239, 37,178,160, 62,156, 16,205,181, 46, 18, 65, 27,208,124, 24,200,152,199,137, 20, 62, 56,179,184,150,129,132, 99,
- 95, 15,163,  6,224,161,149, 32, 37, 53, 81,167,142, 10,177,218,  9,149,112,  0, 84,154, 80, 14,218,240,195,212,146,226, 55, 94,
- 72,132,243,  3,168, 46, 80,114,216,169,141,213,125,138,213,215, 32,152, 17,148,100,203, 37, 98,169,255,  0, 87,140, 22,224,  6,
-156, 72,  3,199, 12,241,171,192, 87,167, 29, 10, 51,125,124,197,161, 61, 37,235,111, 44,109, 41, 74, 81,152,185, 95, 85,228, 80,
-224, 64,143, 25, 96,215, 47,254, 47,180, 97,178,191,183, 66,  7,119, 82,154,221, 55,254,168,122,143,187, 46, 35,206,220,175, 59,
-116,169, 79, 38,219, 30, 51,145,226, 33, 41,161,  0,177, 25, 40,213, 76,168,162,133, 31, 28,100,221,207,171,107, 86,255,  0,203,
-246,100,181,151, 97,105,114,239,161, 78,101, 95, 44,190,182,225,125,157,181,114,113, 58,130,148, 12,183,  8, 80,  4,107, 67, 14,
-164,168,208,126,179,137, 32,246, 97,214, 45, 93,184,235, 47,133,119,241, 19, 82,103,180,190, 92, 54,  8,137, 80,222,219,178,225,
-113,112,234,206,213, 29,155, 96, 33, 93,139, 15,170,102,161,151, 97, 21,198,143,131,222, 69, 27, 53,226,205,246,254, 88,188,130,
- 91,191,235,146,239, 47,182,172,139,127, 26,203,105, 41,254,111,220, 50,140,191, 62, 29, 27, 17, 90,177, 85,148,137, 77,175,229,
-197,210,148,102, 91, 14,236,241, 53,246,233,161,233,147,238,171, 85,127,209, 68,132,183,245,167,  8,238, 69,115,247,138,236, 46,
-194, 69,104,232,159,167,139, 35,133,216, 91, 42,222,165, 31,123,226,152, 50, 65,246,252, 81,114,184, 69,118, 11,255,  0,145,222,
- 18,236, 46,109,172,163,200,174, 79, 90,173,220,166,135, 11,111, 69,126,116,228,188,205,178,223,  5,150,200, 74, 26, 41,242, 37,
-173, 35, 50,120, 12,102,223,181, 11,183,158,229, 85, 69,205,247,152, 93, 82,110,220,146,142,130,  3,155,147,238,238,105,223, 86,
-184, 55,152,234,201,110, 45,134,226,201,  3,183, 67,241, 66, 72, 62,208,112,248,216,112,249, 36,227,235,170,246, 50,141,172,251,
-144,124, 66,115, 11,107, 90,246,214,230, 84, 11, 54,191,195,150,211, 18,155, 75,234, 74,150,128,251, 73,119, 65, 32, 10,210,180,
-198,142, 22, 84,174,219,172,184,235,219,200,234, 49,174, 59,144, 82,124,198, 97, 30,135,134, 95, 70, 44,183, 94, 52,101,157,161,
-131, 32, 26,211,  6,240,218,131,104,166, 64, 84, 96,220, 41,133, 54, 14,103,237,193, 80,161,143, 65,  7,242, 56, 93,194, 81, 25,
- 12,129,217, 95,203,217,131,112,109, 65,190, 24, 82,185,224,241,  3,106, 56, 66,195,103,125,141,202,219,121, 16,169,114,225, 60,
-146, 60,186, 74,129,225,236, 72,199,204,170,239,195, 31, 69, 79, 69,148,104,203,  6,  7,194,197,221,139, 98, 50,194, 34,232,244,
-214,128, 40, 18,180,160,231,199,187, 60, 44,149, 96,187,136,214,140,111,187,222,147,112, 69,198, 51,200, 44,161,192,166,217, 31,
-246,173,149, 35, 50, 59,244,140, 70,174,124, 73,150, 20, 43, 19, 59, 87,150, 86,104,251,101,153,206, 33,126,184, 37,107, 82,233,
-157, 60,213, 36,113, 24,179,187,227, 32,110,170,133, 53,207,237,172, 47, 55,168,200,182, 29, 45, 58,218,220, 70, 89,  2, 16,115,
-203,192, 12,107,226,222, 92, 59, 76, 44,235, 84,101,133,210, 84,101, 89,118, 84,166,100,164,126, 32,202,163, 45, 84, 31,204, 74,
-202,143,182,131, 28,247,155, 43, 63, 82,251,244, 23,  0,233,185,128, 77,180, 66,185,172,213,217, 72, 46, 87, 44,146,133,150, 83,
-246, 32, 99,160,253,162,156,146,200,143, 36,227,247, 51, 59,204, 52,170, 27,253, 19,219,143,108,132,142, 93,196, 30,131,159,203,
-252,120,151,112,155,  2,169,131,250,192,125,159,163,  6,228, 45,  3, 37,177, 92,191, 73,195,119,143,160,127, 76, 83, 58,211,234,
-193,188, 74,  6, 75, 53, 21, 35, 60, 53,200,122, 65,131, 74, 28,  5, 61,184,106,144,109, 50, 88, 81,225,249,240,170, 84, 19,104,
-111,132, 89,226,114,192,230, 59,105,159,131,203, 51, 95,203,219,134,238, 10,  6, 17,232, 40,115, 31,151,142, 31,185, 11,180,137,
-115,183,151, 59,143,153,124,185,184,236,221,171,122,123,111,222,166,163,211,110,227, 20, 29,105,  7,222, 77, 82, 66,192, 80,200,
-148,154,247, 97, 28,170,168, 47,134,121,187,213, 23, 66,209, 57, 63,114,106,219,127,191, 63,186,119,245,201, 37,248, 86, 43, 44,
-  9,111, 72,117, 42, 37, 62,163,203,162,128,  5, 85,200, 18,163,221, 76,241, 11,183, 22,136, 46, 90, 76,227, 46, 99,109, 43,173,
-154,115,182,139,164, 87, 97, 93, 98,186,236,103,227,201,109, 77,186,210,208,225,  5, 11, 74,133, 65,246,227,119,  5, 82, 42,134,
-  6,125,186,  6,217,215, 89,112, 28, 74, 31, 73, 82,207,148,149, 18, 69, 41, 83, 64,107,198,185,138, 99, 81, 58,241, 51,173,200,
-152,202,189, 91,230, 66, 67, 94,162,218,208,176,130,144,157,  8, 21,160, 28,  1,236, 61,181,227,195, 17, 92,162, 69,168,206,166,
-243, 80,170,216,139, 12,161,200,238, 15, 81,229, 20,164,208, 17, 82, 50, 36,  0, 65,254,111,213,136,163, 36,211, 45, 81, 85,  9,
-204,182,  7, 87,232, 37, 90,116, 20,164, 58,178,117,103, 84, 20, 28,242, 57, 26,  3,199, 44,177, 11,237, 31,109, 81,154, 82, 97,
-164, 54,150, 66,195,138,224,182,227,173, 42, 69,  1,  4, 21,146,117, 36,157, 93,212,197,118,234, 89,132,106, 50, 93, 95,144,216,
- 82, 27, 70, 73, 25,150,147,228, 40,213,164,164,131,230,173, 15, 97,  0,118,140, 68,218, 98,214,131, 44,155,185, 92,180,161,214,
-206,132,212,234, 10, 81, 82,128,  1, 32,157, 85,  0,212, 17,159, 30,254,204, 65, 40,164,199,171,148, 55, 33,199,131, 52, 23,  2,
- 64,165,125, 71, 86, 18,116, 26, 84, 10,  0, 60,223, 94,120,165,117,208,181,102, 41,155,246,151,164,180,235,169, 67,117,102,138,
- 74, 92,112,149,154,171,184,106, 52,  2,180,167, 12,102,222,154,102,173,136,186,143,182,153, 50,174, 18, 99, 91, 82,130,227,107,
- 71,222, 60, 14,157, 10, 10,208, 18,  2,148, 77,  5, 15,127, 12,101,221,104,213,133, 91,162, 47,110, 77,109,235, 67, 54,113,113,
- 33,194,253, 61, 84,144,160, 18, 82, 25, 86,145, 67,168,228,225, 10,247,105, 65, 76,170, 49,149,114, 79,113,177,141,105, 40, 55,
-220,122,233,201,203, 67,214,142, 87,109,171, 76,146, 76,152,182,155,116, 87, 10,129, 73, 42,102, 27,109,154,131,152,204, 28,122,
-  5,183, 72,250, 18, 56,246,234,253, 44,149,165,140,170,126,220, 58,163,182, 10, 38, 61, 69, 79, 12, 21, 13,129,253, 28,233, 92,
- 21, 13,131,238,196,217,172,238,251,140,152,178,230, 38, 20,  8,113, 94,184,201,127,211, 83,170,244,152,161, 88, 66, 18, 65, 42,
-161,175, 30,204, 67,127, 39,194,141, 82,173, 93,  8, 50, 46,171, 49,221, 74,155,106,190,114,106,214,175, 78, 37,162,225,117, 72,
-247,158,153, 49,184,149, 63,209, 67,  8, 93,  7,181, 88,131,196,189, 46,105,122,170, 98, 75,171,202,186, 35,114,245,190,118, 86,
-200,120, 14, 81,199, 75,147,228, 15,137,114,235,112,104, 60,236, 93,103, 82, 99,176,135, 65, 72, 40, 25, 41,100, 18, 79,110, 34,
-164,238,175,247, 30,157,139,159,123, 33,201,234, 83,185,162, 34,151,109,229,187,175,207, 23,175, 55, 57, 82, 87,217,234,190,225,
- 72,246, 38,180, 31, 70, 37,141,184,199,130, 70,116,164,223, 19, 54,125,227,187,236, 79,122,214,107,156,168,203,237,244,158,112,
-  3,159,106,107, 67,244,140, 36,225, 25,113, 72, 85, 38,184, 18,187,102,229,177,115, 57,228,217,119,195,109, 67,221, 78,157, 17,
- 47,241,208,150,146,183, 15,186,153,141,160,  4,144,163,150,176,  1, 29,185, 87, 16,169, 74,206,177,213,118,127, 35, 79, 15,168,
-206, 14,146,213, 21, 87, 61, 57,195,203, 30,156, 39, 72,179,115,102,238,197,187,114, 51,194,216,218,189,121,142,  3, 77, 42, 68,
-118,117, 56, 82,170,138, 42,128,103,199, 22, 86,116, 26,169,212,217,143,136,147, 92, 25,204,124,200,249,155, 78,149,234,193,228,
-198,221, 75,174,138,161, 18,239, 46,234, 85,107, 90,152,208,202,130,114,224, 22,232,246,118, 97,191, 89, 41, 45, 52, 67,167,225,
-219,127, 23, 18,189,255,  0,204, 78,173,121,243, 55,240,203,149,198, 97, 15,149, 33, 22,203, 19, 10, 66, 13, 19,173, 97, 37,170,
-249,130,120,141,117,167, 17,138,119,114,163, 23, 71, 61,126,220,184,145,253, 75,124, 18, 72,177,185,111,242,226,222,242,220, 92,
-189,239,115, 76,  6, 95, 73, 46, 52, 91, 18,101,  5, 40, 87,179, 74, 56,113,224, 65,203,199, 19,219,241,103,162, 84, 33,154,114,
-226, 94, 27,  7,162, 30, 72,108,102, 18,202, 45,102,123,233,  9,163,147,213,174,139,  6,170, 80,  9,  9,213, 83,216,189, 84, 28,
- 49,102,222, 60, 56, 73,185,122,127,194,130,171, 72,180, 45, 91, 66,211,100,136,152, 54,136,141, 68,183, 32,  0,136,241, 90, 67,
- 77,164, 10,228, 18,216,  0,113,197,184,109,130,248,116, 36, 55, 26,182,132,228,  1,250,176, 43,173,106,180,126,223,190,161,181,
- 27,144,172,142, 72, 85, 18,146, 73,250,177, 20,242, 84, 86,162,168,162, 67,107,217, 77,144, 20,240,206,181,166, 49,114,122,181,
- 43, 66, 72,192,145, 69,182, 65,138,208, 64, 64, 35,134,120,231,238,245,  9,201,232,201, 54, 11,162,223,  1,207, 40, 64,207, 35,
-138,255,  0, 95,113, 62, 36,114,129,163,204,123, 12,101,236,139, 99, 13, 10, 54,153,114,148, 61,170,109,191,224,198,190, 30,123,
-127, 19,125,199, 49,214,163,241,175, 65, 92,220,118,250,163,167, 90, 51, 29,216,218,199,205, 83,116, 49,168, 75,121,199, 21, 77,
-239,167,153,  3,238,219, 98, 27, 99,216, 34, 55,141, 14,154,255,  0,217, 94,191,188,236,112, 85, 45, 34, 45,240,221,223,103,241,
- 28, 94,222,139,102, 67,  7,176,211,232,194,110,  3, 33,170,154,102, 79,229,221,135, 84, 12, 45,189, 34,156, 15,142, 23,136,  5,
- 74, 85,192,125,120, 64, 23,143,  5,249, 11,163, 73, 36,123, 48,203,151, 84,  2,140,114,255,  0, 43,203,248, 47, 86,158,126,236,
-241,157,253,194, 59,169, 81,219, 25,195, 86,235,123,150,173,238,217,154,144,125, 89,133, 68,208,138, 21, 21, 39, 33,222,107,159,
-209,143,155,172, 92,170,167, 98, 61, 51, 34, 58, 84, 94, 90,231, 39,119,173,171, 90,117,124, 75,193,191, 81, 32,171, 74,137,  4,
-214,134,148, 32,227, 73,255,  0,198, 84,131, 69,133,184,118, 85,161, 54,235,151,168,154,203,125, 12, 73,109,  0,  4,213,213,160,
- 87, 79,128, 41,  7, 25,190, 39,196,144,232,182,205, 11,167,199, 91,182,156,214,136,  3,225, 82,244,102, 66,120, 41,106, 80,109,
- 57,120, 19,139,123,155,149, 65,197, 84,165,183, 12,102,208,244,119,167, 26,166, 55,169,234,215,176, 46, 42,148, 70, 94, 63,110,
- 47,227, 74,141, 24,253, 71, 81,219,167,201,242, 28,106, 67,133, 31,113, 46, 65, 74, 82, 69,  8, 66, 83,233,163,237, 94, 50,186,
-197,215, 38,253, 31,196,171,135,164,142,155,135, 13,198,118,252,  6, 14,105,101, 14,199, 38,135,222,110, 66,207,254,246, 58,127,
-218,103, 69,145,233,143,220,204,238,189,171,139,237,  8, 99,130, 77, 71,214,113,236,201,156,229, 53, 49,240,233, 25,  1,246,225,
-106,199, 80,  1,142,225,249,240, 85,139, 67, 41,141,132,220, 20, 20, 76, 94,238, 62,  0, 97, 55, 15, 72, 80, 66, 81, 28,107,237,
-193,188, 86,144, 97, 19, 79, 26, 97,181, 10, 80, 48,140, 41,159, 12, 21, 21, 42,135, 75,  4, 15, 47, 15,163, 11, 82, 64,222,130,
-187,107, 79,103,241, 97,119,  8, 15, 64, 19,194,184,109, 68,161,159,133, 73,224, 48, 84, 90,  8,200,183, 54,165,  7, 20,144, 20,
-  5,  2,233, 85, 15,167, 11,187, 65, 26, 71,138,255,  0, 49, 77,152,187, 47, 85, 28,193,136, 82, 84,235,183,137, 87, 28,134,105,
- 68,223,245,225,216,107, 68,184, 59, 49,185,129, 47,132,195,234, 80,208,162, 45,  8, 13, 58, 74,  8, 14,130, 52,250,106,  9, 81,
-169,165,  1, 79, 16,123,187, 71,109,115, 59, 49, 85, 85, 57,197, 74,155,207,219, 17, 27, 76,244,131,161, 84, 66,  6,151, 52,186,
- 65,173, 73, 36, 36, 26, 30,206, 35, 42,101,136,110, 70,132,201,104, 73,173,114, 20, 96, 33, 74,109, 20,  1, 33, 94,163,136,161,
- 20,237,242,144, 51, 63,199,138,172,158,220,155, 55, 62, 21, 74,160,117, 97,110,  4,146,116, 20, 41, 13,142, 58,  1,160,252,213,
-192,153,106,211, 53, 22,228,178,205, 22,154,154,  0,160,162, 66, 80,154,142,210,154,210,149,204,226, 57,162,202,155,136,205, 46,
- 42, 29,146,151, 20,230,134,245,209, 78, 45,  9, 58, 74, 14,160, 18,151, 40, 20, 73,236, 31,105,200, 87,218,135,165, 81,159,113,
- 90, 35,200, 79,172,241, 83,101, 58,155, 14,149,  2,164,144,114, 37, 53, 38,128,100, 64, 85, 49,  5,197, 65, 92,  6,152,177,101,
-219, 24, 21, 87,168,148,147,161,226,151, 90, 74,137, 36,121,130,192, 69,114,226, 21,244, 99, 62,246,165,203, 75,106, 28,236, 19,
- 46,247, 68, 42, 34,210,146,180, 29, 58,219,173, 41,198,181,212,160, 59,123,  1,198,101,248, 35, 83, 30,227,105,162,121,176, 83,
-240,234,248, 41,  9, 79,153, 85, 82,181, 16,115, 32, 85, 90,  0,160, 42,200, 87, 25, 55,154, 53,241, 83, 92, 78,130,228,142,219,
- 77,205, 49,108,209,150,159,196, 38,201,102,223,  5,148,232, 66, 62, 38,115,129,134, 91, 58,252,225, 37,111, 80,120,120, 99, 54,
- 41,206,252, 98,187, 77,127, 17, 70,220,187,145,236,  5,182,222,204, 54, 17, 22, 58,105, 21,180,134,218, 72,224, 16,145, 68,143,
-160, 12,119,123,244,169,202,108,225,220,110, 54,215,134, 18,163,133, 18,217, 25,254,124, 37, 64, 56, 65, 34,132, 96,168, 18,158,
- 78,181,235,111,134,109,124, 26,184, 49, 50,  2,235,218, 30,138,176,  7,253, 42, 98,182, 91,248, 61, 20,126,242,166,124, 55, 90,
-145,  4, 41,  9, 36, 43,136,196,169,156, 99, 49, 84,131, 65,196,240, 24, 90,128,203,185, 57,141,177,182,128, 88,220, 87, 54, 35,
- 72, 69, 53, 71, 43,214,254,124, 40,211,117, 95,217,132,168,174, 44,132, 95,122,165,219,177, 84, 81,183,224, 61, 37,188,192,126,
- 82,147, 29,  4,255,  0, 57, 41, 26,220, 35,218, 19,136,165,113,112, 28,163, 66, 13,185, 58,138,230, 22,228,116, 91,237,146,132,
- 70, 86, 10, 75, 54,244,  6,202,137,239, 89,214,239, 14,229, 15,102, 43, 77,190, 98,169,197, 18,126,105,244,225,191,250,202,228,
-166,223,221,172, 50, 92,231, 30,211,121, 27,122,238,227,170,  8, 55, 93,191, 41, 42,118, 19,207,188,241, 26,151, 29,196,173,173,
- 68,230,149, 84,212,227, 35, 39, 63,233,235, 40, 42,234,110,116,155,210,185, 91,109,250,  7,174,158,190, 83,118,123,121, 19,121,
-147, 35,226,167, 56,146,127, 15,180, 32,144,208, 36, 41, 26,158,117, 33, 21,  0, 16,126,232,140,242, 57, 99, 38,246,126, 85,249,
- 52,158,213,254, 94, 62,183,252,168,106,248, 16,183,172,217,214, 59, 95,167,253,173,176,224,166,203,182,109,209, 96,165, 33, 45,
-134,146,235, 33,210,  7,  0, 74,214, 87,236, 21,203, 15,199,177, 59, 90,198, 62,190,111,215,196,111,215,216, 90, 84, 37,215,150,
- 79, 91,229, 86,100,117,180,218,184, 21, 39,202,125,135,134, 53, 23, 82,185, 21, 71, 85,247,125,189,100,240,156,110,124,172, 32,
-217,240, 16,146, 16,159, 55,209,132, 93, 86,124, 42, 75, 65,154,237,183,  4, 98, 84,132,229,141, 92, 92,221,224,209,161, 26,214,
-167,221,  8, 69,115,203, 23,229,121, 37, 81,155, 73, 77,158,200,212, 70,130,150, 60,253,164,227,158,204,203,109,143, 67,212, 11,
- 36,233,236,169,248,233, 75,112,145,251, 89, 15, 40, 54,202, 60, 84,181,101,140,202, 74,231,  1, 46,100,219,180,171, 38, 36,243,
-155, 26, 58,203, 19,183, 27,  9,144,156,143,195,199,126, 66, 43,224,180, 10, 28, 53,225,183,253, 69, 39,214,224,184, 68,216,183,
-219,109,183, 82, 19,182,174,145,167,185, 92,152,  4,176,250,187,124,173,189, 66,126,140, 65,115, 10,107,131,168,248,117,123, 87,
- 29, 30,130, 60,192,138,244, 93,155, 17,153, 40, 45,190,137,174,130,149,130,  8,171,  9, 60, 14, 45, 97, 39, 24, 52,213, 53,254,
-  6, 47, 89,146,148,162,215, 97,  6,125,164,186,157, 39, 48,120,226,237,185,180,204, 82,192,230, 14,205,106,235,187,164,204, 88,
-201, 73, 96, 15,234,176,129,250, 49, 60, 58,155,181,240,167,192,236,112,255,  0,227, 95,110,100, 70,229,176, 93, 67,139,244,  1,
- 32, 99, 75, 31,172,215,139, 45,208, 78,219,176,221,124,214, 79,148,225,215,186,210,143,  6, 20, 54,229,114,210,140,250,145,213,
- 95,171, 21,237,117,234,186, 54, 53,186, 49,130,229,182, 38, 91,212,117,143, 40,237,198,205,140,229,119,131, 28,209,164,196, 37,
-186,248,106,158,220, 92,185,119,106, 17, 19, 29,189,103,142,203,  9,170,124,212,206,163,195, 28,158,118, 84,155,165, 75, 17,208,
-118,248,102,116,232,166, 88,195,241,101, 94, 33,184,224, 62,123,219,191,202,151, 40,151, 22,106,182, 17, 45, 43, 39,129,210,229,
- 30, 25,255,  0, 68,  2,156,121, 15, 79,123,166,207, 71,111,125,191, 80, 93,153,247,183,230, 28,128,128,243,143,173, 92, 51, 33,
- 68,106, 66,169, 92,128,  9,169,246,119, 99,111, 38, 73, 90, 51,109,198,143, 82,207,220,176,205,174,204,175, 90,134,121,101, 10,
- 73, 25, 26,232,207,186,180, 56,197,178,233,169, 45,185,169, 74,134,134,232,143, 18,227,182, 37, 52,192,211, 46, 48, 67,238,135,
-  7, 21, 56,160,191,103,102, 88,155,196,117, 28,211, 83,238, 40,142,101, 90,162,162, 42,212,210, 15,196,203, 67,178, 86,123, 66,
-131,136, 25,120,105,  4, 99, 67, 22,109,186,118, 25,125, 65, 27,188,137,142,195,115, 34,180,243,129, 45,176,128,253, 15,244, 74,
-200,227,253, 32,156, 80,234,145,209,211,153, 79, 29, 81,157, 43,108,109,197,109,232,218,193, 40, 90,223,112, 30, 32,107, 80, 88,
-  4,255,  0, 91, 47,  1,142,163,246,186,226, 87, 50, 35,219,181,251, 52,101, 30,175, 22,212,123,149,  1,240,199, 87,241, 99,217,
- 35, 51,159,219,169,145, 28,118,215,234,195,183,139,180,207,194,  2,105, 76,188,127,143,  9,226, 32,218, 25, 49, 79, 98, 78, 19,
-112,180, 20, 68, 85,123,  6, 19,112,245, 16,255,  0, 14, 59, 78,120,107,152,187, 76,252, 48,175,105,239,252,134, 19,120, 40,128,
- 70, 79,113,193,188,114,136,116,197, 77,124,112,111, 23,106, 13,240,200, 28,120,254, 93,248, 93,194, 81, 25, 17,170,114,  6,158,
- 52,193,184, 40,140,166, 40,  7,248,142, 13,204,118,211, 14,199,  4, 81, 66,169,240,194,238, 27, 36,121, 99,243,155,229,113,219,
- 93, 65,199,222,240,152, 45, 70,221, 22,166, 95,122, 71,234,185, 50, 17, 84, 55,  0,246, 50,150,171,237,241,198,207, 77,157, 93,
- 12,190,161, 15,132,225,200,192,180,233, 89, 88, 46,100,  0, 37, 57, 84,105,  5, 85,  0, 80,120,255,  0, 22, 55,212,180,161,200,
- 79, 70, 62, 38, 58,223,105, 14, 73, 33, 97, 64,  4,143, 41, 41, 41,202,154,106,  2,107, 83,150, 88,108,164,152,250,232, 56,216,
-221,125,180,166, 43,174, 54,143, 69,194, 22,157,106,  4, 13, 93,165, 42, 39,232,168, 30, 20,197,119, 36, 79,101,164, 63,181, 11,
- 67, 30,145,115, 74,148,186, 54,166,218,  1, 69, 39,204,114, 58,171,151,112, 31,167, 16,183,174,133,152,174,102,131,246,229,173,
-181,196, 66,104,202,212,170,121, 65, 26,134,126,101, 45, 64,168,140,141, 82,  8,  7, 13,148,152,251, 82,221,196,107,220,206,181,
- 10,  2,144,162, 23,160, 20,209, 35,138,149,217, 81,149,115,224, 56,118,229,136,166,153,117, 73, 80,175,183, 37,242,123, 17,209,
-241,106, 77, 43,165,104, 69,106,  1, 78,160, 77,  0, 57,231,218,120, 98, 39, 26,162, 25, 77,160, 91,111, 72,150,180,249,202, 93,
-  0, 37, 69, 72,103, 42,157, 73,243,134,128,225,223,217,138, 23,145,111, 30,227,144,229, 17,217,174, 58, 92, 67,154,  2,242, 10,
- 75,154,213,165,  6,132,128,  0, 34,190,220,100, 94,212,215,199,110, 37,129,176,151,241,111, 71, 67, 77,213,  2,163, 89,  9,  5,
- 36,228, 41, 83, 90,246,241,254, 60,139,209, 85, 54,237, 73, 52,118,247,203,147,147,119, 14, 99,115,126,209, 54, 64, 67,187,123,
-110, 72,111,112, 92,148,249,170,202,163, 18,184,201, 65,104,105,215,241,129,165,208,210,168, 74,187,112,222,157,101, 59,174, 93,
-132,217,114,219,107,189,158,155, 49, 30,137, 25,120,227,161,221, 94, 38, 58, 66,161,  9,252,134, 36,220, 45, 24,116,138,100,145,
-134,212, 54,135,170, 80, 43,252,184, 74,136,104,179,206,109,137,202, 94, 96,237, 55,119,141,193,184,143,221,239, 86,203, 45,189,
-138,213,231,164, 92, 38, 38, 26, 18,132, 12,200,  5, 68,168,240,  0, 19,217,138,249, 23, 22,214,171,200,109,219, 78,118,229,232,
-101, 31,207, 62,127,239,125,167,188,111, 91,118,203, 22, 61,190, 44, 59,140,219, 83,114, 31,  5,231,117,197,144,166,148, 83,168,
-132, 87, 46, 26, 77, 48,213,147, 90, 80,227, 60, 20,138,154,225,205,254, 98,238,233, 70,217, 38,229, 58,106, 86, 40, 90,139, 70,
- 91, 81,225,238,178, 16,  8,250, 48,178,184,233,168,218, 80,177,185, 87,210, 38,236,221, 22,  6,119,215, 48, 46,176,182,118,202,
-152,170, 91,159,186,122,143, 78,184,147,219, 22, 36, 96,183, 29, 72, 36,  2,170, 10,215, 42,231,140,252,174,165,106,207,205, 46,
- 62,255,  0, 71, 63, 97,118,198, 37,203,223, 34,169,101, 51,242,238, 98,117,157, 87,109,161,184, 89,220, 42, 74,181, 58,219,108,
- 73,131, 41, 13,138,213, 95, 13, 41, 42, 90,134, 95,171, 79,103,110, 43,253,101,201,235, 10, 83,189,107,239, 19, 35,  2,118,254,
-101, 65,211,101,244,199,203,205,174,164,201,154,201,155,112, 73, 38,174, 85,  8, 25,100, 40,  9, 86, 94,220, 54,110, 82,249,155,
-101, 29,136,185,121, 93,119,177,237, 11,139,204, 79,111, 70,223,126, 43,177,221,105,148,208,228,  3,136,  9,  3, 45, 69, 73,  0,
- 31, 28, 68,227, 26, 53, 74, 22, 44, 94,118,166,164,185, 11,110, 30, 98,222,239,169, 48, 98,145,  2,199,152, 68, 40,164,165, 36,
-119,184,161,154,207,121, 63, 86,  8,165, 21, 69,162, 27,126,252,238,186,201,140,163,191, 14,169, 84,121,219,187,214,249,182, 86,
- 27,142,225,122,212,172,157,132,249, 43,101,105, 60,124,167,129,241, 25,224,110,186, 50, 75, 87,165,109,214, 44,155,252,  3, 55,
-104,209,175, 27,113, 42,114,221, 48, 18,219, 99,204,182,156, 30,251, 74,167,106,123,251,177,149,122,195,132,149, 53, 79,129,214,
- 97,230,171,176,171,116,107,136,133,195,109, 71,113, 10,141, 62,229,  2, 44,193,146,152,145, 45,164,184, 15,113,  2,180, 56,189,
-139,110,228, 26, 98, 75,169,218, 78,149, 26, 83,178,110,182,133,124, 84,134,245, 65, 95,153,185, 12,144,227, 74, 21,236, 90,  9,
- 24,187,127, 37,211, 82,197,171,240,187,242,177,210, 12,123,116,120, 18, 47,119,149,148, 89, 33,128,167,  2,114, 83,171, 62,227,
- 72,241, 81,250,177, 66,220, 60, 89,119, 16,230,101,171, 17,239,100, 23,119,111, 27,190,235,144, 12,165,122, 86,182,242,139,  9,
-172,153,105, 62,  0,113, 61,228,230,113,122,137, 42, 35,151,157,201, 92,117,124, 70, 96, 62,188, 65, 81, 69, 89, 87,166,173, 99,
- 42, 80,131,132, 68,114, 30,231,111, 75,229,222,204,205,142,232,249,126, 36,117,250,140,169,220,220, 79,148,167, 78,174, 36,103,
-219,135, 84,100,155,106,140,209, 67,192,229,128,142,133,205,186,218,143, 26,115,147,238,178,154,133,111, 80, 64, 67,143,171, 53,
-209,180,130, 16,129, 85, 42,158,  3, 20,111, 98, 74,229,198,248, 47,240, 58,107,121,176,179,109, 39,196,104, 98,110,211,185,175,
-225,173, 87,118, 28,152,114, 66, 31, 67,177,194,143,112, 83,160, 10,158,204, 15, 14, 92,154, 97,111,170, 91,147,212, 70, 68, 87,
- 97, 72, 84,121, 73, 45,200,  7,204,133, 10, 99, 62,117,139,163, 90,154,241,106, 74,169,213,  6, 46,121, 40,147, 94, 56, 35, 42,
-140,146,212,102,188,197, 76,148, 41, 43,247,142, 54,112,178, 28, 31, 18, 84,170, 52,192,176, 54,203,197,206, 36,231,150, 53,174,
-231,238,143, 18, 69, 10,113, 29, 89,  8, 96, 80, 83,219,140,123,151, 55,  3,139, 22,245,127,135,136,196, 62, 26,168,195,132,250,
-167, 67, 51,182, 60,187,188, 26,148, 54, 98,105, 35, 61, 74, 43, 74,105,245, 99,200,250,103,252,167,164, 90,210, 58,145, 78,151,
-238,105,152,203, 51, 95,175,173, 29,226,220,158,240,148,164,185,250,221,148,174, 53,179,167, 72, 52, 86,156,106,203,142, 13,201,
- 91,234, 91,239, 60,210,144,134, 16,144,219,103,204, 20,159, 69, 42,212, 70,124, 77,113,153,102, 95,237,161,142,218,179,161,189,
-119, 17, 96,164, 52,226, 65,101, 72, 64,117, 84,  4, 40, 36,  5,145,244,  3,134, 69,213,177, 34,155, 41,126,106,216,149,112,154,
-252,171,112,  5, 44,148,178,208, 79, 13, 10, 82,150,126,186,215, 26,120, 19,213,148,178,173,213, 84,133,237,133,155,110,224, 17,
-200, 91, 63,114,148, 45, 20, 85, 79,165,170,167,195, 81, 77,115,246, 98,198, 77,165, 40,107,218, 99, 70,123, 36,117,166,192,184,
-162,239,203,246,212,104,167, 91,117,128,  9,204,208,198,212,161, 84,229,198,152,119,144,219,181,212,238,193,115,133,127,238, 65,
-212, 85,109,167,222,110,152,136,  7, 74,191,151, 30,212,166, 97,109,  0,138,216,200,  2,125,152, 93,225,180, 50, 98, 36,138,158,
- 62, 56, 55,176,218,100, 67,107,191, 63,102, 13,204, 90, 32,201,136,123, 50, 24,118,225, 67,136,130,149, 60,125,152, 71, 32,  0,
-138,147,219,245,140, 37, 69, 51,240,168, 25,228,126,172, 21,  0,124, 56,240, 30, 56, 84,192,200, 97, 52,226, 43,237,194,212, 84,
- 15, 66,157,180,194,212,117, 12,250,  3,176,253,117,193, 81, 76, 42, 49, 34,184, 90,137,161,205,191, 51, 94,151,238, 61, 67,242,
-  1,201, 91, 86, 41,149,204, 29,174,183, 46,246,182, 26, 77, 93,146,202,144, 19, 46, 50,  6,100,169, 72, 74, 86,144, 51, 82,144,
-  0,227,139, 88,151,220, 39,220, 87,200,183,190, 52,161,226,253,234, 35,176,238,107, 64,  9, 65,204, 26,166,166,160,240,200,131,
-151, 12,117,214, 38,165, 26,156, 78, 85,157,178, 28,236,242, 92,244, 83,165,  9, 65,115,200,124,170,  7,129,227, 85, 28,251,178,
-195,220, 17, 93, 52,111,182,194, 66,192,113, 63,116,147, 82,149, 40,128,  5, 42, 74,138,120,147,138,238,136,145,112, 29, 96, 75,
- 32,133,160,232,212, 79,170, 26,  9,  5, 40, 41,210,  5, 40, 72,227,246, 98,173,206, 37,200, 75, 65, 75,148,118,231, 49,240,236,
- 35, 75, 20,242,173, 99, 60,133, 69,  5,127, 62, 88,146, 18,169, 60, 26, 35, 59,142,223, 37,230, 10, 27, 58,151, 64,150,201,210,
- 66, 73,203, 72, 74,114,169, 62, 20, 30,193,134, 92,212,149, 16, 45,223, 42, 63,164,228, 57, 84, 43, 77, 74, 82,163,168, 37, 90,
-180,149, 86,153,208,246, 28,187, 77, 70, 24,150,132,115, 99, 21,182, 36,232,234, 77, 21, 86,242, 74, 92, 65, 52,203,180, 17, 74,
- 99, 55, 37, 19,217, 84, 37, 91,114, 25, 84,191, 69,165,169, 46,172,133,172,165, 41, 35,199, 81, 72,169, 62,218,156, 97,228,186,
- 27,248,202,165,199,203,155, 50,131,205,161,176, 22,242,142,132, 17,172,120,141, 33, 85,224, 14,120,197,188,234,110, 99,163,216,
- 47,151, 39, 36,135, 43,186,127,135,120,158,209, 69,255,  0,114, 20,221,158,214, 19,168, 70,211,162, 42, 43,220, 81,247,131,253,
- 50, 49,167,135, 13,144,175, 54, 85,204,158,233,211,146, 58, 33, 17,192,  3, 47,175, 63,205,139,117, 43,160,122, 40,227, 65,133,
-220, 40,133,202,124, 11, 92, 71, 38,220, 29,110, 60, 38, 16, 93,117,231,150,150,208,132, 12,202,148,165,144,  0,  3,180,240,193,
-187, 74,129,201,220,241,249,141,217,164,110, 84,242,183,167,166,222,187,223, 94,112,195,118,243, 21,130,224, 83,164,150,202, 32,
-182,234, 74, 73, 10,255,  0,173, 90, 84,129, 79, 42, 87, 80,113, 83, 47, 50, 24,240,115,151, 36, 92,199,198,114,124,  4,182, 79,
- 32,183,237,203,152,118,125,229,184, 19,248,247, 56, 32,221, 32, 77,159,114,152,243,171,181,237,210,220,198,228,152,168, 50, 20,
-181, 61, 46,128,  5,141, 74, 45,157, 32,212,140,188,234,247,154,157,219,138,178,248, 27,162, 75,139,117,227,219, 79,228,105, 93,
-179, 24,193,174,230, 95,220,236,233,191,108, 94,121,201,185,239,119, 80,167,230, 74,187, 79,152, 80,225, 41,109, 41,122, 66,157,
-  9,  0,102,125,236,251, 61,152,235,213,188,171,146,106, 31, 12,123,123, 79, 47,149,200,174, 34, 91, 63,144, 27, 65, 23,152,108,
-220, 84,167, 34,151, 91,109, 49,155, 74, 25,140,132, 41,206,214,219, 30, 98,  1,226,115,197,213,211, 32,151,199, 39, 39,233, 33,
-119,219,224, 95,251,186,196, 39,239,169,138,113,180,183, 22, 26,140,  8,109,161, 33, 41,106, 52,127,186,109,180,  1,193, 32, 10,
-208, 98,180,174, 66,218,172, 82,173, 56,243,251,122, 14,203, 10, 20,180,135, 11, 59, 74,180,188,220,155,121,244,164,180, 66,144,
-180,228, 65, 31,163, 25,183,111,186,215,115, 44,206, 17,106,141, 84,103,230,164, 72,241, 55,172,149, 68, 64,109,185, 40,102, 89,
- 64,224,149,188,202, 92, 95,214,162, 78, 47, 57,213, 38,113, 23,161,182,109, 46, 76,142, 26, 83, 17, 54, 48,118,217,251, 82,126,
-235,158,166, 35,169, 44, 65,101, 33,217,114,157,253,155, 45,214,149, 61,228,240,  0,113,194,110,165, 91,116, 72,116, 45, 59,141,
- 40,173, 73,114, 57,119,178, 36,182, 33, 64,185,200, 77,207,130, 36, 72,105,  2, 58,149,216, 10, 71,157, 32,158,210,114,197,120,
-103,218,110,149,101,235,157, 26,228, 99, 94,100, 70,231,108,155,102,184, 61,107,184,163,211,154,194,139,110, 36,247,142,208,123,
- 65,226, 14, 45,183, 70, 99,109,163,163, 54,173,187,174,255,  0,104,180, 72,177,219,100, 41,171,124,165,  5, 58,148, 26, 43, 33,
- 67,164,241, 26,133,  1,167, 26, 97, 84,152,229, 54,149, 16,214,227,117,207,  2,149,  4,169,189,183,183,101,251,107, 72,245, 45,
- 79, 16,194,143,222,199,114,170,101,209,192,133,160,228,114,250,113, 46,234,161,240,156,162,234,152,229,191,247,180, 13,199,  6,
- 13,190,208,201,139,  5,180,170, 68,150,  9,203,226, 92, 58, 77,  9,226,  2, 64,210,123,142,  8, 37, 21, 68, 79,127, 33,222,105,
-178, 40,227,137, 29,184, 28,134, 69, 27,174,109,247,160, 90, 27,220, 59,150,100, 27, 29,129,229,104, 98,109,246,108,120, 13, 58,
-163,192, 32,200, 82, 74,190,129,136,219, 75,139,161, 98,214, 60,238,124,177,111,208, 55,110,233, 80,182, 61,149,141,207,124,153,
- 27,252,169, 45, 90, 34,221,162, 72,106, 76, 55,148,  1, 58, 80,235,  5, 73, 42,160, 57,113,192,163,187, 85,168,217,217,148, 29,
- 36,168,200, 52,190,166, 57, 57, 12,232, 55,148, 45,209,158,150,218,144, 85,245,104,  7, 15, 86,164, 68,232,105,200,234,199,150,
- 49, 90,245,216, 19,100, 53,252,230, 88, 69, 62,157,110,  2, 62,172, 72,172, 72,141,208,214,220,125,119,237,251,180,229,207,151,
- 10, 92,217,138,200, 41,197,182,209,160,224,148,131, 84,129,220,  6, 23,233,228,198,205,215, 86,198,143,253,115, 89, 93, 20,137,
-183, 31, 82,199, 29,115, 91,  0, 83,191, 75, 74,252,248,145, 98,182, 69,184,151,216,186,236,221, 91,179,147, 59,210,102,222,179,
-198,145,191,182, 93,180,110, 75,108, 41,175,173, 98, 77,174, 51,201, 69,193, 10, 90, 11,100, 22, 26, 80,117, 60,114,  4,100,  6,
- 43,101,224,238, 75,180,217,233, 57,155,103,181,240,103, 61,159,156,143, 55,157, 82, 81, 15,106, 89,157,254,113,101,201,238, 14,
-238, 33, 65, 32,215,250, 88,165, 14,157,173, 25,211,187,144, 72, 53,223,230,239,206, 88,241,253, 85, 88, 44, 77,186,161,229, 75,
-141, 92, 14,116,237, 63, 20,138,  1,236,197,175,237,202,  8,142, 57, 17,108,137, 93,190,110, 29, 64, 13,107,109,123,126, 35, 68,
-101,232,196,121,221, 53,238,245, 31, 85,126,156, 44,112,147, 39,121, 81,228, 26, 47,204,123,169,187,180, 65, 32,221,131,143, 45,
- 62,165, 34,219,173,204,132,130, 53,123,171,108,168,143,105,197,168,224,195,176,174,243, 16,194,126, 99, 93, 80,155,216,100, 93,
-231,122, 66,173, 31,245,107, 86,146,225, 80,  0,233,244,235, 76,136,194,253, 20,119,112, 23,234,149, 11,171,154, 22,168, 23, 46,
- 91, 92,237, 15, 59,169, 96, 70,  0,  2,  1, 20,113,  4, 31,179, 30, 25,211,147, 87,125,103,164,222,154,161, 88,116,219,112, 77,
-167,116,185, 98,  3,200,239,168, 84,170,212, 31, 34,128, 61,217,149, 28,105,245, 61, 86,131,169,193,151, 94,218,190,254, 21, 45,
-113, 25, 74, 67,242, 82, 90,110,135,202, 18,148,173,  0,251,104,145,140,228,182,197, 33, 47, 37, 37, 81,238,231, 48,206,156,155,
- 11,137,172,161, 29, 73,168,166,106, 40, 58,178, 29,160, 17,136,223, 22, 85,139,218, 65,174,214,144,213,177,219,148,148,253,214,
-133,208,166,164, 10, 60,166,193, 62, 20, 24,155, 17,181, 34, 43,223, 20, 74, 99,153, 91,185, 91,103,118, 34,108, 84,104, 75,141,
- 41,149, 45,117, 80,168,112,168, 38,163, 44,245, 99,166,177,143,226,170, 28,197,217, 81,150, 23, 79, 29, 86,109, 87,238,214,253,
-157,184, 29, 68, 68,221,  2, 35,199,113,229,  4, 36, 72,104, 20,105,212,165, 83, 49, 65,195,234,210,113,163,208, 48, 22, 62,119,
-137,248,149, 63,143,240, 19, 34,255,  0,137,110,157,135, 72, 54,173, 89,168, 10,227,208,227, 45, 61,102,126,221, 16,178, 81,194,
-131, 44, 58,161, 64,197,161,221,250, 48,187,130,134, 68,114, 77,  8, 63, 81,192,165, 81, 40, 27,208,160,167,103,143,241,225,213,
- 10, 25, 17,213, 76,143,230,193, 80,161,144,202,135, 28, 21, 22,129,139, 20,225,151,211,130,161, 64,191, 14,189, 85,  3,  3,149,
-  7,109, 51,232, 59,221,132,241,  2,128, 12, 57, 92,199,231,193,226,  5,  0, 89, 95,103,230, 56, 60, 64,161,144,194,143, 28, 30,
- 32,148, 19,122, 25, 80,160, 30, 53, 28,112,232,220,226,  9, 30, 64,124,226, 58, 49, 28,131,230,139, 92,233,217,108,  6,249, 93,
-188, 36, 60,225,105,148,169, 40,183,221,  5, 29,121,154,  1,164, 33,218,151, 27,167,114,147, 74, 39, 29,  7, 75,204,114,141, 12,
- 14,167,138,184,163,142,109,115,220, 73, 72,116,157, 32,234, 10, 86,146,146, 84,154,  1, 69,  0, 69, 13, 73, 60, 41,141,246,206,
- 94, 73, 38, 57, 70,190, 41, 19, 85, 29, 21, 46,  4,131,169, 84,  2,164,154,  4,142, 28,  1,196, 82, 85, 21, 15,118,171,151,197,
-178, 92,148,189, 40, 42,170,210, 56, 43, 42,  0, 10,171,159,138,114, 24,175, 36, 88,182,197,205,213,163, 37,113, 99,213, 78, 41,
-  1, 37,197, 40,168, 32, 39, 61, 58, 84, 64,237,236,193,  2,194,149, 13, 59,253,214,221,101,181, 46, 84,135, 53, 58,  9,  9,109,
- 33, 41,205, 89, 81, 41, 64,203,  0,245, 58,234, 82,155,250,116,185, 13,185, 57, 62, 89, 14, 44,172, 36, 43,182,185,101,236,203,
- 13,104,142, 83,169,165,180,247,155, 44, 54, 77,202, 41, 26, 50, 80,  9,214,210,141,120,128, 51,175,134,120,200,203,185, 77, 13,
- 12,105,165,196,177,246, 60,139, 37,226,227,241,182,228,171, 64, 64,170, 82, 20,148,209, 35, 87,112,237,237,198,  5,250,212,232,
-177,166,155, 58,123,164, 62, 84, 77,230,143, 53,108,155, 70, 43, 68,191, 62, 83, 17,254,235,204, 90,101,213, 81, 78, 18, 59, 18,
-130, 86,174, 56,205, 86,247, 78,134,181,182,227, 22,207,111,118,213,134, 29,130,203, 14,201,110, 64,106,223,  9,150,162, 48,216,
-224,150,217,108, 54,145,151,112, 24,212, 82,162, 72,162,245,108,115,244,244,131, 78, 24, 55,  9,180,138,243, 95,154, 91, 59,148,
- 27, 66, 78,242,222,146,209, 22,212,192, 33,  9, 81,  1,111, 59,164,148,180,216, 39, 53, 18, 50,  2,164,246,103, 76, 54, 87,148,
- 21, 89, 45,187, 94, 36,168,121,223,207,238,127,117, 21,214,174,235, 79, 47,182,147, 46,217,121,118, 94,210,236, 56,142,175,211,
- 75, 97, 94,252,181,160,  2,226,200, 26,131, 98,160,113,161,227,140,236,142,171,110,205,103, 39,203, 69,222,105, 67, 23,102,145,
- 85, 92,206,136,233,107,165, 45,147,104,183, 51,177,185, 90,210,219,179,195,208, 55,167, 50,221,  0,190,236,144, 42,229,174,200,
-170,100,190, 33,110, 39,221,227, 80, 64,175,157,231,101,100,231,221, 73,167, 41,203,229,135, 36,184,111,146,236,229,174,132,178,
-148,113,214,135, 88, 91,172,182,219, 28, 24,182,139, 36,116, 69,179,195, 20,140,194, 52,144,154,230, 77,120,212,241, 38,181,175,
- 18, 78, 59, 63, 47,244,  8, 96, 65, 73,165, 43,175,230,159, 31, 82,228,146,228,102, 93,200,149,198,111,243,149,144,158,104,222,
- 40, 41, 87,130,255,  0,233, 54,149,126,156,116,182, 95,194,143, 59,184,190, 38, 50, 91,163, 81,192,232,168, 88, 32,130, 59,193,
-195,110,220, 26,145,112,183,163,126,176,157,201, 98,163,215, 21,161, 63,136,194,108,128,235, 79,164,  4,169, 65, 28, 74, 20,115,
-  4, 99,  7, 42,204,171, 84,117, 29, 55,168, 69,193, 70, 78,141, 10, 70,219,115, 88,172,219,232, 54,251, 51,121,191, 34, 80, 45,
-128,  6,116, 72, 86,106, 81,236,  0, 98,148, 49,167, 55,170,162, 46,228,103,219,183, 26,213, 54, 64,247,197,253,189,201,186,101,
-222, 35,  2,152,110, 44, 33,132,145, 66, 26,109, 33,180, 84,119,233, 72,174, 52,164,114, 18,150,230,216,207, 81,223,134, 49,104,
- 79, 54,133,207,106,218,249,126,150,110,215, 36, 68,125,249, 78, 63, 33,150,144, 93,144,226, 91, 72, 67,105,208,142,  2,186,136,
- 42, 32, 98, 12,140,127, 22, 41, 86,138,186,154, 24, 25, 81,199,110, 77, 85,242, 50,174,102,236,  8, 75,244,224, 90,229, 74,111,
-255,  0,137, 38, 66, 25, 81,254,171, 73, 80,251,113,  2,193,178,185, 55,235, 38,185,213,238,203,130, 72,102,222,251,210,  6,238,
-186, 55,117,135, 20,196,  8, 97, 12,186,149, 57,234,149, 22,235, 69,149, 81, 63,171, 65,244, 98,237, 86,148, 49,175, 55, 57, 84,
-140, 13,247,180, 76,134, 97, 55,114,142,185,111,190,220, 38,154,101,196,186,226,158,113, 97,180,163, 67, 69, 74,169, 36,118, 97,
-202, 13,240, 33,218, 71,249,201,215,151, 71,252,129,190,204,216, 55,150, 31,191,110,155, 91,239, 91,174,146, 25,112,165,150,229,
-198, 81,109,230,214, 91,115, 91,122, 86, 10, 65,244,207, 14, 56,118,203,141,210, 49,170,237, 55,108,116,187,110, 21,147,213,145,
-125,221,213,142,208,220,252,164,182,245,  5,200, 38,191, 19,229,140,201,142,216,238,108, 78,213,241, 54,187,171, 72,245,190, 25,
-224,133, 39,202,227, 68, 56,218,192, 53, 79, 26, 30, 54,225,140,219,167,  6,101,229, 89, 86, 31,113, 80, 94, 58,195,230, 61,210,
- 67,142,195, 91,113, 98, 26,128,206,128, 82,138,255,  0, 53, 73,  9,115,235, 86, 45,199,  5, 20,254,169, 34, 69,211, 94,233,155,
-206, 14,114,193,183,115,  2,231, 42, 86,211,130,212,187,229,202, 34,138,221,245,227,219,162,174, 98,153, 72,116,154,  5,148,  4,
-144,  8, 52, 39, 11,115, 29, 66, 53, 36,177,121,220,154, 92,142, 50,234, 35,171,125,195,207,110, 96,220,119,198,236,187,202, 19,
-103, 56, 75, 17,117, 41, 17,224,196, 10,163, 49, 88,105, 43, 40, 75,109,167, 32,  7, 30, 39, 58,226,123,120, 86,223, 21, 83,167,
-142, 76,237, 71,108,116, 68,143,163,126,176,118,199, 36, 55, 12,253,169,204,120,247, 11,223, 78,219,169,167, 33,110,155, 52, 54,
-155, 91,133, 94,153, 49,230,199, 67,171, 66, 19, 33,151, 66, 72, 94, 85, 77, 71,117, 44, 94,196,182,151,194,146,101, 27,206,229,
-245,241,106,116, 94,221,221,189, 40,243,135,167,253,249,189,186,124,177,110, 40,151,109,159, 42,193, 24,220,119,155,208,219,117,
-225,118,144,251,106,  8, 98,220,162,208,  9, 76,115, 82,178,125,225, 76, 67, 26,198, 73, 58,107, 94,  6, 62, 86, 47,135, 10,213,
-214,165, 79, 58,243,124,149,254,174, 28, 74, 99,214,165, 41, 10, 93, 61,165,  0,226,194,138,151, 35, 53,182,185,147,190,125,243,
-111,146,221, 16,206,129,202,245,108,248,219,243,155, 66, 28, 27,198,229,190,110,183,174, 44,219, 35,181,112,142,137,109,195,129,
- 26,  2,129, 42,244,156, 77, 93, 90,170, 21,250,166,180, 16, 70,211,185,173,104,185, 26,246,113,163,183, 93, 88,135, 50,237,252,
-190,223, 27, 55,104,245, 15,200, 54,158,131,202,189,237, 30, 89, 22, 43,139,138,121,251, 77,214,218,248,143, 58, 25,117, 96,173,
-109,133, 41, 10,109, 74,205, 73, 53,203, 15,180,168,220,101,197, 20,115, 44,248,114,211,131, 29, 58, 51,110,231,118,234, 66,217,
-177,174,138,213,102,191, 67,189,109,217,173, 28,144,164, 79,179, 73, 96, 36,129,196,107, 41, 56,143, 42, 43,107, 27,135, 54,174,
- 35,206,168,110,238,248,148, 64,156,164,198, 65, 58,155,101,194, 69,107, 66,  8, 82, 77,124, 70, 44, 82, 61,135, 72,164,233,196,
-196,139,157,230, 67,161, 51, 39,180,216,161, 74,  1,101, 13,144,  8,254,149, 78, 29, 54,154,173,  8,225, 58, 62, 34,105,126, 67,
-117,245,174, 46,105,200, 21, 48,144,149, 87,184,168,166,156,113, 30,156,208,231,114,156,201, 45,162, 22,231,118, 19, 65,106,186,
-185,  5,  9, 78,143, 69, 26, 82,114,203,207,164,  2, 41,217, 92, 76,231,106,154,180,189, 36, 10,237, 94,140,210,252, 58,227,241,
-255,  0, 19,240, 55, 95, 79,212,213,239,187,174,186,171,249,101, 76, 83,250,172,122,252,209,247, 22, 60, 71, 67,208,238, 97, 57,
- 26, 46,220,151, 47,214,175,170,132, 29, 32,131, 68,161, 21,252,195, 30, 23,211,241,155,126,179,215,114,111,209, 20,230,201,230,
- 92, 43, 54,248, 47,190,242, 80,217,100,143, 82,153, 37,107, 82,168,  7,133,127, 62, 53,178,240,124, 73, 45, 10,246,179, 18,139,
- 36,236,243,150, 27,119,136,242,173,239,213,194,203,236,169, 58,170, 16,241, 81, 64, 41,  6,181,165, 73,194, 67,166, 74,142,164,
-119,179,214,133,131,203,125,249, 38,225,184, 98,221, 37,185,169,167, 80, 80,149, 21,112, 74, 40, 51,246,211, 25,115,196,217, 22,
- 57,229,169,155, 59,235,118,181,183,118,220,134, 95,165, 20,219,113,211, 76,206,149,253,245, 79,137,169, 24, 48,177,156,166, 87,
-189,127,106,103, 57,115, 39,127,218,102,110, 73, 86,217, 64, 45,135, 20, 25,110,133, 57, 41,180,  2,181, 10,215,137,199,103,133,
-136,226,115, 23,111,110,101, 95,186,224,109, 89, 27, 58, 74,110, 42,113,150, 92, 37,246, 36,182,149,201,111,212,201, 73, 42,109,
-  4, 20,147, 65, 69, 36,130, 59, 14,120,215,181, 98,151, 19, 68,110,237, 16,201,203, 31,155,167, 83,156,134,148,189,169,184, 95,
-129,204, 29,137, 17,230,155,143, 38,236,219,204,220, 26,138,200,244,253, 20,202, 99, 67,128,168,102, 85, 37,167, 85, 94,222, 32,
-246,203,  9, 78, 41,243, 41,253, 86,167, 74,114,191,231,159,211,118,233,125,168,124,197,176, 93,246,188,151, 51,245,218, 84,107,
-164, 38,251,245,186,133, 48,255,  0,179, 76,115, 95, 12, 65, 60, 25,162,101,144,139,227,151, 95, 49, 14,139, 57,153,234,127,151,
-185,137,105,140,243, 32,250,136,191,186,229,147,187,220, 85,225, 17,146,190, 63,168, 78, 42, 74,196,227,193, 18, 43,149,230, 90,
- 27, 27,153, 60,190,230, 91, 74,145,203,171,237,191,112, 48,140,150,187, 36,216,211,210,142,223, 49,136,181,211, 17, 56,190,104,
-116,102,152,248,219,205,149, 20,147,195, 51,245,211,243,225,131,133,106,146,115, 32,253, 88,  5, 72, 50, 82,158,206, 30,209,250,
- 48, 84, 93,166, 67, 57,212,228,112, 84, 18, 51,240,224,240,207,  5, 71,  3,225,191,144, 96,168, 25, 17,251,178,250,176, 84,  0,
- 99, 26, 96,222, 32, 62, 20,246,131,244,255,  0, 38, 13,224,103,225, 85, 78,  7,234, 56, 85, 32, 40,175,152,223, 32,175, 61, 66,
-116,139,187,118,  6,216,143,241, 91,185,182,153,188, 90, 99,  4, 21,173,217, 16, 30, 76,146,211,105, 25,250,142, 50, 28,109, 20,
-166,106, 21, 52,174, 44,226,222,217,113, 50, 27,246,247, 69,158, 12,220,218,122,215, 53,203,115,205,168, 73, 11,210,164,191,229,
-208, 83, 81,164,212, 87, 34, 51,  4,215,142, 59,171, 87, 84,226,154, 56, 92,187, 91,102, 53, 78,149, 41, 46,  7,195,158,155,109,
-165, 74, 89, 73,  2,170, 80,227, 83, 65,151,136,194, 92,158,214, 65, 77,  5,152,220, 82, 22,210, 27, 37, 84,170, 10, 65,213, 83,
-219, 82, 71,103,209,136, 36,249,143,138,102,221,210,227, 57,210,150,152,144,160,163, 64,176,131,153, 72,238, 78, 67,  9, 20,229,
-196,154, 38,133,193, 79, 55,  0,174,165,210,180,211, 88, 81, 80, 21,200,249,178, 21,246, 98,101, 20,133,163, 32,183,133, 57, 33,
- 97,128,173,106, 25,165, 66,164,131,216, 79,126,100,241,197,107,243,228, 73,  8,234,108,194,179,204,154,150,162,195, 66, 82,242,
-232, 85, 68, 84,168, 37, 85, 36,118,247,240,203,219,140, 27,206,134,189,168, 50,226,228,175, 43, 47,247, 41, 17, 97,195,138,231,
-198,184,180,167, 67, 40, 82,214,170, 44, 16,145,164,103, 90, 14,202,215,217,140,155,211,221,161,179,141, 97,238, 77,240, 61,138,
-249, 92,116, 93, 55,147,219, 87,255,  0, 54,249,137,  4,179,189,238,109,165, 54,166, 31, 73, 14,198,132,182,197, 92, 90, 79,186,
-183, 59,  1,204, 39,219,136, 33, 29,166,133,233, 46, 11,129,217, 13, 50, 17, 74,229,223,135,239, 33, 72,109,221,219,150,205,179,
-172, 19, 55, 62,224,120, 71,178,193,105, 79,201,125, 92, 16,132,208,125,100,144,  7,121,194,110,160,176, 78, 78,135,  1,115, 11,
-169, 91, 55, 86, 92,245,139,110,105, 11,153,176, 45,111, 46, 45,146,216, 61, 70,209, 50, 91,138, 45,  9, 14,  1,230,244, 90, 21,
- 82,149,197, 73,  6,154,117, 10, 99,117,140,233, 89,183, 85,167, 63, 87, 97,185,139,105, 45, 17,209, 27,  7,166,187,103,249,166,
- 30,222,219,113,213,  3,151,150,232, 77, 55,117,187,178,  3, 82,110, 18, 31,109, 18, 29,109,173, 90,148,133,186,151, 53, 56,177,
-147, 85,208,154, 16,154,121,230, 28,239,245, 27,181, 90,201,183,232,140,107,243, 63,185,123, 11,153, 89, 17,179,106,136,232, 11,
- 22,223,180,237,203, 36, 61,187, 98,140,220, 59, 13,189,164,198,131, 14, 42,  3,109, 50,208,253, 80,145, 94, 60, 73, 36,146,115,
- 36,156,241,233,125, 63,167,218,196,139, 73, 86, 79,139,237,239,251,112,224,114,243,158,231, 83,121, 44,164,240, 25, 99, 77,104,
-134,208,217,231, 74, 43,204,235,137,254,112,138,175,164,195,104,226, 75, 79,225, 71, 15,127,231, 99, 84, 24, 18,149,  1,119,  6,
-219, 81,132,210,144,219,174,129, 84,165, 75,  4,164, 19,217, 93, 38,158,204, 86,186,200,195,180,251,209,222, 15, 50,162,135, 19,
-152, 82,  9,  4,125, 35, 21,216,228, 41, 42,229, 54,106,130,231, 60,227,196,112, 46,173, 74,167,179, 81,196,109,212, 90,  8,188,
-162,220, 69,207,112, 20,193,104,233,113,229,  2, 27, 73, 32,144, 10,142, 85,160,174, 24,211, 31, 20, 69,247, 31, 56,249,113,181,
-218, 15, 93,110,209,194, 84,  9, 79,162,191, 84, 18, 59, 53, 55, 84,215,192,156, 10,212,155,224, 59, 68, 71,247,175, 87,220,138,
-229, 71, 36, 17,207,221,227, 26,237,119,176,201,188, 59,181,173,182,155, 59,113,219,117,233,172,196, 76,197, 23,223,125,192,134,
-219,244,213,250,186,148,123,  6, 31,244,237,113, 69,188, 92,117,125,210,169, 80,231,109,219,243,185,221,177,229,169, 60,178,229,
-142,218,180, 91, 18,170, 20,238, 55, 39, 93,229, 20,241,168, 86,168,201, 73,167,110,149, 12, 88,181,134,219,224,145,160,240,172,
-195,155,127,111, 88,235,211, 39,204, 43,169,254,173,121,197,254, 65,149, 11,102,216, 54,212, 91,117,203,112,221,239,163,106, 11,
-147, 86,219,117,182, 42,164, 56,234,146,227,233, 46,121,130, 80,  2, 72,205, 67, 60, 90,150, 42,130, 42,221,133,168, 38,232, 90,
-151, 14,173, 54,109,189,179, 25, 60,201,221,107, 81,242,168,236, 45,169,179,182,211,110,129,216, 30,152,220,201, 72, 73,240, 53,
-196,209,197,151, 98,245,182,100,188,251,113,127, 12, 74, 35,117,236, 47,151,246,245,187, 76,190,110,219,111, 48,222,191, 79,125,
-233,179,110,106,189,216,229, 73,121,249, 11, 46,186,226,196,136,122, 74,148,165, 18,123,251,241,102, 54,230,180, 91,125,140, 79,
-238,244,228, 74,246,237,199,166,126, 85,244,223,188,121, 67,201, 23,119, 76,169,219,150,109,166,232,211, 91,194, 61,161,166,162,
-174,  3,138, 11, 45,174,220,230,101,109,174,132,150,243,160,195,214, 60,220,147,116,162,236,169, 91, 43,169, 70,244,105,173, 74,
-141,214, 38,184,231,167, 49,224,217, 72,173,  0,  0, 10,211,186,191,155, 22, 54,208,203,223, 82, 81,201,174,106, 94,185, 41,204,
-171, 79, 50, 44, 41, 15,206,181,189,173,198, 95, 81, 75,114, 35,184,146,203,236, 46,162,154, 92,105, 74, 79, 12,171, 94, 56,130,
-237,165, 36,211, 38,181,121,193,166,134, 30,102,124,186, 98,115, 35,114, 75,230, 15, 69, 87,203, 53,195, 98,221, 29,114,106, 54,
-165,234,227,  6,207,123,178, 41,226, 86,184,171, 77,196,161,183, 89,108,157, 40,117,183, 77, 64,161,204, 84,215, 87, 54,233, 37,
-235, 71, 71,111,168,198,107,137, 42,228,175, 78,252,172,232,250, 27,252,198,231,196,157,187,191,249,246, 89,118, 21,135,100, 55,
- 33,171,213,150,217,241,  8,244,220,149,118, 80, 62,131,206, 37,  5, 73, 67, 45,234,165,106, 77,104, 82, 92,190,167, 72,198,169,
-123,253, 69,108,172,248,199,229,213,147,  9,156,233,228,236,254, 77,238,205,137,203,254, 93, 90,246,126,245,221, 47,218,100,220,
- 37,109,  5, 73,106,221, 36, 90,164, 56,235,105, 48,100,148,161,157,  1,231, 40, 90, 81,173,104, 70, 67, 17, 85,198, 73,186,209,
-118,148, 46,230, 74,236, 54,180, 85,209,162,110,119,152,244,224,161, 62,130, 78,130,165,  5,161,117, 57,208,  2, 77,113, 39,215,
- 69, 46, 69, 55,106,108,113,249,146,116,185,207, 14,107,245,119, 51,115,237,203, 37,230,227,180, 94,179,109,180,178,171,108, 71,
-203, 26,155,177, 69,105,196,135,139,107, 69,117,  2, 13,  6, 88,198,189,214,254,159,224, 95,199,248, 29,142, 30, 12,238,193, 52,
-139, 55,149, 61, 32,115, 90,205,208,222,219,216, 23,216, 47, 67,190, 68,221, 87,187,139, 81,238, 18,153,245, 17, 18, 92, 24,129,
- 53, 45,208,208,173,  7,202, 64, 61,167,  5,142,169, 43,145,115,170,236,251, 84,207,234,248, 19,132,148, 90,117,226, 79,250, 81,
-233, 95,118,108,206,126,109, 93,225,116,122, 27, 81,224, 76, 14,173,134,156,146,183, 21, 86,148,140,171, 84, 87, 62,252, 76,242,
-231, 45, 29, 76,251, 56,110, 18, 76,175, 44,159, 37,205,179,241, 78,187,122,221,140,176,183, 22,165, 41, 86,235, 66, 86,229,117,
- 87,222,155, 33,209,255,  0,179,142,126,125, 82,252,159,205,239,127,204,236,215, 71, 75,153, 60,182,124,158, 58,120,110, 59, 45,
-220,175, 87,137, 15, 53, 90,173,150,236,113,194,234, 65,170,130, 32,147,149, 59,  8,227,136,190,174,235,226,254,222,176,254,217,
-  4,245, 30,225,252,167, 58, 85,135, 33, 50, 39,126, 59, 63, 79, 22,165, 94,100, 33,178,125,145, 67, 68,123,  1,166, 31, 27,207,
-183,220,153, 52,112, 45,115, 67,227, 31, 45,158,140, 34, 33, 62,174,199,106, 75,232,224,252,187,141,221,213,159,110,169, 58,127,
-246,112,232,230, 73,127, 85, 61, 10,159,192,155,232,108,174, 70,247,254,129, 58, 65,244,253, 63,242, 37,187, 77, 41,193,234,211,
-187, 86,189, 95,110, 38,250,233,126, 54, 63,233,236, 83,229, 60,190,230,183, 84,179, 87, 19, 74, 31, 43, 74,208,  1,  9, 57, 31,
- 45, 49, 22,  7, 71, 80,214,134,134, 95, 80,148,138,124,243,118,125,234,124,153,204, 56,164, 54,166,219, 32,142,  0,165,117,236,
-198,163,194, 91,209,158,178,222,214, 88,187, 71,113, 56,187,133,176,188,181, 41,249, 14, 56,227,110,164,146, 20,165, 20,148,131,
- 65,195,207,244, 28, 50,238, 42,138,117, 69,119,144,228,147, 46,221,155,204,132, 90,238,104,105, 78, 81,166,155, 82,116,  2,  8,
-210,194, 66,  5, 65,239,115,205,236,166, 57, 75,216,142,229, 82, 92,205, 27, 57, 42, 26,141,188,203,231, 75,242,246,195,  6, 76,
-145,241, 74,112, 54,202,194,178, 40, 73, 82, 83, 81,220, 83, 83,159,110, 45, 98,116,237,143,129,  6, 78,118,228, 81, 28,192,184,
-206,125,244,220,154, 88, 92,150,205, 26, 73, 90, 82, 66,213,196,241,207,142, 58,188, 75, 26, 37, 67, 38, 83,210,164,102,197,204,
-243, 46,217, 39,110, 94, 18, 25,112,161,105,140, 10,188,229, 77,175,212, 74,188,194,132,138,112,167, 14,204,109, 67,167, 40,180,
-202,255,  0, 82,202,143,120, 89,238,239,220,223,187,220, 52,205,110,164,184,235, 64,  5,128,163,164, 40,250,126,111,172,145,223,
-141,216,194,145, 43,169,166, 70, 94,176,219, 37,255,  0,100, 88,112,131, 77, 30, 80,164,144,105,222, 79,142, 71, 18,196,118,228,
- 17,219, 20,200, 11,  2, 43,140,213, 52,160,117,  0, 31,183, 51,135,237, 96,165, 65, 72,242,165, 91, 85,241,  1,134,164, 73, 64,
-168,226,144,138,118,133, 39, 81, 31, 70, 35,157,132,249, 11, 27,244,230, 76,182,151, 63,186,151,219, 14, 51,113,216,123,170,235,
-100, 75,103, 90, 83,104,188,220,152,168, 25,121,130, 92, 72, 35,194,148, 56,165,115, 18, 61,136,177,111, 51,119, 51,162,249,103,
-243,145,234,235,151, 22,183,109,183,232,241,119,172,167,189, 63, 69,235,237,185, 74, 84, 84,160, 80,132, 42,212,244,  2,176,174,
-223, 85, 75, 61,196, 98,180,240, 35,204,177, 28,181,218, 78,246,223,206,243,168,132, 92,154,147,188, 54, 21,153,219, 18, 86,149,
- 72,143,  2, 45,238,222,242,154, 60, 66, 29,118, 69,192, 36,248,150,207,179, 16, 75,167,170,104, 77, 28,168,179,163,249, 91,243,
-123,233, 87,126, 91, 18,238,228,118,102,222,187, 33,  5,114, 99, 73, 67, 83, 82,146, 15,186,217,128,183, 31, 85, 63,164,194, 15,
-134, 42, 75, 14,104,150, 55,147, 46, 46, 95,117,135,211, 23, 51, 34,181, 39,104,239,155, 58,221,125,105,105,168,115,229, 34,221,
- 53, 74, 94, 73,  2, 37,203,208,145,153, 52,247, 49, 90, 86,230,137, 83, 69,152, 14, 96, 40, 80,154,113,203, 34, 42, 56,247,140,
- 65, 38,208,181,168,163,104,109,121,129,236,168,194,238, 16, 48,101,  0,229,199,195,  9, 80, 13,232,168,241,  7,235,193, 80,  0,
-140, 59,112,181,  1, 41, 81,130,155, 32,231,135, 38,197, 71,130,191, 58,173,161,109,228,111, 91,219,165,219, 59,111,220, 25,220,
- 42,141,184, 75, 16,225,188, 62, 30, 85,205,189,110,176, 84, 64, 14, 45, 78, 36,187, 86,234, 40,176, 15,152, 16, 55, 49,122,229,
-155, 49,218,222,166, 38,127, 74,148,222,232,161,195,162,207,150, 14,226,235, 71, 96,109,237,237,176,121,161,180, 12,155,144, 84,
-221,197,182,225, 78,106,231,123,219,240,117, 45,132, 46,108, 40,142,235, 75,170,117, 32,  6,156, 82, 50, 82, 73, 80,174, 36,151,
- 92, 82,117,228, 69,107,163,197,173,120,150, 62,232,249, 23,117,149,183,111,127,134,216,155,177,223,236, 42,112,134,174, 80,110,
- 31, 12,160,142, 33,110,179, 57,182,212,147,224,146,175,105,196,208,235, 80,124, 71, 75,163,118, 11,219,254, 71,189, 96,200,158,
-184,242,237,214,166, 99,160, 87,226, 87,116,100,161,194, 50,162,125, 48,165,231,226,154,126,153,255,  0,188,219,160,145,233, 45,
-114, 46,126, 95,127,203,231,183,174,251,122, 82,121,227,189,101, 49,121,121,  9, 16,216,218, 40, 97, 45,198, 95,188, 75,142,207,
-105,101,193,157, 40,148, 34,148,174,172,103,222,235,117,122, 22,109,244,200, 83, 83,202,238,119,242, 95,114,114, 63,171,171,223,
- 75,208, 25,122,239,126,183, 95, 31,219,177, 37, 54,203,141, 46, 97, 76,130,203, 11, 67, 74,  5, 65, 78,249, 78,146, 72, 26,134,
-100,102, 99,151, 91,134,139,153,  3,233,148,150,135,167,189, 38,124,131,156,126,223,107,221,253, 77,222, 85,  6, 98,154, 75,242,
-246,197,161,182,126, 33,149,137,  7,238,157,154, 22,235,100, 41,176,  9,208,138,249,169, 80, 64, 56,167,127, 37,201,232,205, 75,
- 24,219,120,163,208,190, 82,116,193,200,142, 73,237,246,182,215, 45, 54,188, 11, 93,181,165,  7, 65, 67,  1,215,220, 90, 77, 66,
-220,126, 70,183, 86,160,120, 18,163, 78,  2,131, 44, 81,148,223, 50,239,  2,193,110, 42, 80,144,  1,203,179, 13,223, 81, 21,  0,
-232, 66,  6, 84,174, 89,224,221, 64,105, 28, 39,243, 52,234,173,132,222,211,201,157,152,243, 19, 91,183,  2,229,205, 74,117,  2,
- 55,226, 14,180,116,180,181,160,231,232,161, 84, 41,174, 74, 81, 74,170, 83,139,214,236,213, 85,146,218,156, 96, 83, 95, 43, 56,
- 44, 78,234,122,  4,235,249, 66,221, 54,249,198, 19,  0,209,151,221, 48,214,202,145, 65,150, 65, 75, 85,  5, 51, 24,224,124,237,
- 57,203, 25, 66, 60,101, 52,141, 76, 37,240,185,212,245, 58, 12, 86,219,108,215,246,139, 37,106, 81, 60, 84, 78,162,114,203,142,
- 55, 58,103, 78,179,131,101, 66,218,248,157, 42,249,182,102,223,185,226, 61, 77,164,180,132,231, 92,252, 41,141,106,208,134,136,
-202,130,  6, 99,222,194, 84,108,144,110,117,170,156,204,159, 78, 37, 16,248,127,176,181,139, 86,190, 84,112,185, 31, 59, 13,202,
- 78,104,237, 29,182,206,234,129,119,151, 17,239,129,181, 63,120,155,110,113, 65,247, 75, 22,239,190,122,177,218,212,233, 33,178,
-162,  0, 73, 53,236,174, 32,200,139, 74,171,137, 54, 28, 99, 57,168,203,131, 41, 57,159, 49,127,151,213,238,239, 34, 45,191,122,
- 72,176,186,149, 31, 73, 23, 75, 77,202, 76, 55, 77, 43, 86, 95,128,211,206,232, 29,158,163, 96,226, 56,218,148,151,  6, 94,189,
-210,229,  7,240,180,200,118,246,249,141,116,127,179, 99,153,199,126,203,221,178, 90,169, 22, 77,139, 96,149, 21,215, 79,234,165,
-217,219,136,178,218, 65, 60, 75,109, 19, 78, 25,226,104, 98, 74, 92,189,164, 43, 14, 95,213, 68, 48,114,143,174,205,203,215,252,
- 29,253,200, 86, 44,236,109, 71, 33,194,141,185,249,109,100,128,250,164, 73,117,203, 58,157, 85,197,135,165,169, 33,199,228,191,
- 17,210,161, 64, 63,102,104, 56,147, 34,199, 86,218,111,128,153,118, 20,109,252, 60, 81, 78, 72,184,196, 89, 42,155, 37,111, 77,
- 39,138,130,151, 90,118, 28,104, 70,213, 14,122, 87,107,197,147,173,133, 35,102,243, 95,148,187,155,165,238, 99, 92,211,183,108,
-187,133,232,151,173,179,185,156,109,107,102,207,127,132,149, 54,219,178, 16, 10,136,102, 67, 43, 83, 46, 40,102,144,107,222, 67,
- 46,194,141, 73,113, 69,188, 12,207, 10, 93,204,166,158,249, 77,245,186,111,138, 91, 59,114, 53,223,108, 18, 75,123,154, 61,250,
-200,245,164,182, 13, 11,226, 66,228, 36, 37, 52,207,206,144,175,232,215,  3,200,183,246, 70,231,212,167,173,116, 46, 11, 46,204,
-229,247, 72,156,153,190,242,163, 97,110, 22,183,119, 60,183,143,195,196,222,123,146,207, 87, 45,150,203,108,103, 61,113,106,183,
-200,210, 11,222,171,160, 41,231, 69, 18,160,144,154,101,146,194, 14, 77, 73,170, 37,195,249,152,217,249,234,107,106,117, 33,251,
- 78,195, 35,112,110,  8, 27,110, 35,173, 53,113,184,200, 98, 11, 75,150,180, 50,210, 92,125,208,210, 75,142, 44,249, 82,  9,204,
-246, 12, 89,155,162,171, 50, 84,170,232,137,159, 53, 57,197,211,103, 74,251,250,231,201, 88,220,189,187,115,103,156,214, 23, 62,
- 19,113, 92, 46,146,102, 88,118,252, 25, 72, 26,156, 76, 70,217,108,190,250, 19,195, 91,154, 82,161,230, 79,148,140, 80,150, 70,
-137,202,106, 41,250, 43,235,236, 54, 33,131, 24,175,139, 86, 77,247,146,246, 30,251,233, 91,106,115, 41,189,133, 19, 96,115, 99,
-118, 92, 94,149,107,135,106,157,115,185,165,205,189, 25,162,208,146,227,111,154, 32,191, 32,209,191, 39,153, 41,168, 85,  9,193,
-111, 45,197,241,221, 31, 97, 79, 55, 30,220, 82,218,168,223,220, 59,116, 75,201,187,  5,210,253,187,119, 71, 50,108, 83,239,123,
- 66, 13,130,106, 28,134,211, 40, 83,239,189, 33,214,163,132,199,108, 40,159, 87, 66,148,164, 26,130,  8,  7, 44, 84,200,234, 95,
- 14,234,240,236,215,238, 29,211,240,252, 73,237,107,145,157,239,242,249,230, 46,217,191,150,237,178,162, 47, 98, 60,178,229,178,
-244,218, 86,143, 89,149,121,146, 29, 66,181,169, 14,164,100,164,145,198,180,168,196, 43, 53,201, 85, 86, 85,239,254, 84, 22,231,
- 78,149,185,109,102,221,163,162, 27, 78,148,255,  0,152, 46,203,121, 95,174, 27, 66,148,146,124,  1, 82,  0,255,  0,163,136,157,
-251,141,242, 94,175,230, 57, 97,174,100,146,207,209,239, 39,109, 14,161,231, 99,191, 45,196,241, 15,184,144,147,244, 54,132,145,
-244, 28, 18,185, 55,198, 79,238, 36,142, 52, 17, 49,183,116,255,  0,176, 45, 22,239,199, 97,109,198,  5,161, 46, 38, 58, 95,125,
-181, 60,215,168, 82, 84, 18, 62, 32,172, 19, 64,107,221,136, 54,115, 39, 86,226,185, 14,144,236,182,203,112,  2,223, 29,168,233,
- 29,140,182,134,192,250, 18,  6, 35,104,149, 36,139, 51,120, 54,151,141,178,105,204,191,109,130,233, 61,255,  0,112, 19,250, 49,
-141,212,163,254,239,169, 29,199, 65,185,255,  0,142,151,123, 26,247,160,244,249,119,107, 64,224,185,210,215,245, 50,210,113,123,
-  1,210,207,172,197,235,237,120,235,253, 35,119, 43, 78,142, 97, 90,  9,255,  0,247, 45,143,172,211, 23,109,241, 48, 89, 38, 75,
-250,100, 41, 42,236, 82,135,219,142, 98,186,157,236,161, 84,110,199,124, 82,167,135,183, 18,166, 86,112,160,178,136, 80,  4, 15,
-183, 18,197,208,140, 69, 72, 77, 72,236,195,148,201, 98,196,244, 38,181,236,227,137,170,199,159, 54,251,151,114,200,114,220,219,
-143,249,244, 44,162,149,236, 57,103,245,227,182,179,111, 70, 99, 57,234, 23,105, 76,138,189,151,112,121,211,247,206, 44, 50,211,
-148, 62, 83, 64, 79,209, 92, 49,219,248,208,155,223,  2,115,203,157,244,102, 91, 33, 69,116,171, 84, 64,181,181,160,211,239,  2,
- 81,149,  8,173,  9, 30,220,235,138,121, 22, 28,170, 36,101, 77,  9, 71,249,233,228,221,210,134,221, 58, 28,109,  9, 46,160,211,
- 37,105,225, 94, 25,226,157,156, 84,162,180, 36,148,205, 41,187,161,235,129,133,  2, 99,133,216,145,214, 75,174,113, 39, 72, 72,
- 73, 80, 25,228, 18,  7,219,137,163, 97, 54,244, 43, 74,230,164, 83,119,221,165, 93,174,232, 98, 90, 86,219, 77, 40,170,137, 21,
-215,157,  5, 41,141, 60, 75, 91, 21, 69,185, 62, 65, 25,102,  4, 71, 69,236,199,170, 26, 73, 88,103, 66,138,244,154,130,115, 10,
- 61,231,198,184,216,143,196,138, 78, 78, 36,  7,120,221, 11,147,157,159,111,119, 69,162, 66,124,141,130,162, 80, 73, 33, 65, 94,
- 81,246, 99, 91, 30,223,195,169, 90, 82,166,164, 89,247,227, 40, 23,162,232,248,198,168, 84,173, 70,164,119,121,137,236,240,196,
-151, 33, 77, 80,144,155, 98,172,205, 23,212,165,215,  6,149,142, 33, 75, 33, 85, 30,  4,  3,136,148,201,183, 14,182,232,209,159,
- 66, 16,209,  5, 68,249,146,208, 36,231,244,156, 62, 51, 68, 83, 31, 44,246,  6,147,116, 71,162,233, 40,160,212,132, 37, 96,132,
-215,134,126, 56, 91,201, 52, 85,140,220, 93, 11, 43,110,236,248,239,210, 57,109,198,153,  0, 20,172,165, 70,190, 36, 38,152,163,
-190,172,147,113, 50,179,217, 45, 83, 89,121, 37, 33,213, 52,144,218,245,184, 82, 72,165, 51,212, 79,219,135, 52,146,168,197,126,
-105,145, 91,191, 78,182,189,209, 37,217, 16, 33,165,199,156,169,101, 46,250,126, 82,115,  4,104, 83, 71,236, 56,138,177,151, 18,
-220, 51, 26,226, 65,119, 95, 78,220,203,218,104, 90,224, 74,117,104, 72, 42,244,154, 74,221, 72,  7,177, 69,208,186, 98, 11,182,
-160, 95,181,155, 94,102,207, 44,250,141,234, 79,144, 82, 25, 28,191,221, 87,109,190,132, 26, 46, 36,119, 21, 34, 34,252, 92,132,
-167, 11, 10, 29,190,102, 77, 56,226,172,241,161, 34,244, 50,187,206,164,228,239,205,243,169, 59, 61,190, 61,167,123,203,219,123,
-153,214,149,173,233,151,104,210,173, 51,222, 73,167,144,185,  5, 73,136, 41,216, 68,122,247,215, 21,165,211,162,248, 18, 44,190,
-212, 94,251, 83,231, 19,179,110, 89,238, 45,145, 41,150,197, 18,179, 98,187,196,186,  2, 72,253, 95,136,102, 15,212,113, 86,120,
- 18,228, 76,175,196,159, 88,190,105,221, 50,221, 16, 62, 61,155,229,165,117,162,145,114,183, 52, 85,223, 81,240, 47,200,  4, 98,
- 57, 96,205,114, 29,227,196,113,145,243, 62,232,242, 26,  2,228,238, 41, 41, 60, 78,155, 61,221,194,  7,136,106, 58,177, 27,196,
-154, 92,  7,120,177,124,245, 32,156,218,249,210,116, 99,177,246, 85,222,243,180,110,115,119, 14,244,130,193,114, 29,141, 54,155,
-196, 17, 33,213, 40, 33,  9, 84,153,145, 80,210, 18,  9,212, 77, 74,180,131,165, 42, 57, 98,166, 92,254,149, 39, 46, 53, 46, 97,
-227,188,153, 82, 60, 23, 19,199,254,178,186,138,231, 55, 93,187,225,206,117,115,186,107, 17,224,104,122,  6,219,180, 90,163, 38,
- 52, 11,101,189,149, 41, 46, 40, 21, 41, 78, 56,165,184, 87, 66,250,212,190, 52, 58, 84,144, 49, 37,125, 74,237, 31, 22,253,198,
-138,192,221,110,114,175,194,159,240, 58,  7,228,111,179,246,215, 35,250,159,103,153, 27,234,225, 23,109,237, 88,182, 25, 86,233,
- 23,107,195,236, 91, 33,188,244,245,182,240,107,215,148,166,210,162,165,164,105, 73, 53, 33, 35, 44,178, 48,242,212,178, 35,109,
-113,163,111,238, 31,123,165,248, 88,190, 35,231, 79,121,236,109,167,168, 14, 67, 93,199,253,211,189,108, 50,193,204, 24,215,123,
-123,188, 79, 97,109,211,141,230,221,117, 70, 26, 93,140,125,131,190,246, 45,192,106,131,119,130,250, 15,  2,212,168,235,250,138,
- 84,112,199, 81, 84, 95, 49,210, 60,168, 55, 33,166,220,180,190,225,224, 25, 33,100,246,126,173,112,107, 78,  2,210,135,146, 31,
- 53, 62, 64,242,207,155, 61, 77,243,119,119, 90,161,189, 96,191,236, 59, 69,158, 93,230, 67,136,113,198,238,183,135, 96,162, 98,
-164, 36,145,247, 90, 98, 22, 26,210,  8,  5,105, 82,179, 82,241,197,117,206,172,177,178,173,194,159, 51,163, 58,206,153,131,191,
- 22, 87, 30,180, 90, 11,116,159,214, 55, 82, 29, 63,244,185,182,185,233, 97,188, 59,185, 57, 87, 99,184,163,102,239,141,171,125,
-109,215,145, 30, 51,175, 36,192,185, 91, 95, 90,144,180, 40,165, 97,133, 37, 43, 40, 42, 40, 37, 30,242,177, 70,215, 93,158, 62,
-116,241,223, 56,239, 94,142, 13,123,209,106,247, 75,141,203, 86,231, 77,101,167,172,245,107,151,187,239,111,243, 23,101,218,183,
-222,220,112,174,195,119,140,212,232,138, 90, 84,133,122,110,160, 40,  2, 22,  1,168,237,199, 93,210,186,173,174,161,111,125,183,
-193,237,107,178, 75,138,251,159,172,229, 51,112,103,141, 63, 14,124, 87,220, 37,189, 57,183,202,238, 93, 60, 34,115,  3,114, 90,
-172, 50, 74, 61, 84,183,122,184,195,130,178,142, 32,164, 74,113,  4,215,178,156,113,171,225,203,145, 81, 35,158,122,155,249,156,
-242, 43,151, 91, 18,116, 94, 82, 92,198,235,230, 92,150,151, 26,218,213,157, 46, 57, 30, 59,206, 37, 73, 75,238,191,160,160,132,
- 17, 93,  8,212,163,151,  0,106, 45, 89,178,235,168,173,208,242,203,119,243, 23,114,238,155,219,174,110, 20, 72,140, 94, 42, 83,
-135, 67,190,169, 53,169, 89, 90,209,234, 18, 79, 30, 24,181, 56,186,  2,154,101,185,209, 39, 60,246,111, 45, 57,157,102,188,110,
-123,154, 35, 70,182, 73, 15,  9, 18, 84,230,173, 42, 33, 11, 66,184,154, 16, 73,247,123, 59,241,206,245,156,121,186, 56,170,165,
- 70,105, 98, 78, 14, 50,171,244, 30,143,185,243, 44,232,205,149,173,166, 55,122,159, 91, 96,147,233, 90, 47, 97, 36, 14,229,185,
- 17, 41, 63, 65,198,148, 45,201,170,240, 51,218, 33, 91,215,230,239,211,237,149,149,127,147,109,119, 75,219,137,204,188,224,141,
-  2, 41,  3,185,110,173,199,129,255,  0,228,229,137,109,227, 72,142, 83, 80, 40,174, 96,252,225,249,205,185,152,151,  3,151,176,
- 45, 86,  8,174,172,  8,210,130, 28,186, 77,142,223,  2,117,188,164,176,170,248,198,197,184, 96,215, 86, 64,242,226, 76, 47, 95,
- 57,174, 98,238,247, 62, 58,247,203,141,169, 61,224,203, 77,200,147,121,102,235, 37, 47,169,166,210,210, 84, 90, 76,180, 55,154,
- 83,157, 18, 49, 98,214, 13,116,220,204, 27,214, 45,167, 93,117, 25,237,191, 56, 62,101,237,121,162,225,180,185,115,202,219,101,
-217,104,118, 57, 92, 45,185,115, 15,250, 15, 54, 91,113, 26,217,184, 54, 70,164,146,  8,174, 99, 44, 79,253,173, 53,243, 50,190,
-216, 39,161,198,107, 97, 44,186, 94, 91,161, 81, 42, 82, 16, 50,  2,181, 52,170,212,162,160, 60, 73,197,137, 99,168,147,199, 33,
-183,171, 19, 19,190, 45, 42,110, 43,106,101,180,249,  2,227,233, 77,107,219, 66, 41,136,246, 80,119,136,152,251,202,206, 98,239,
- 46, 78,111,251, 63, 53,182,149,196,218,247, 53,134, 91, 55, 56, 18,202,139,174,151, 88, 88, 88, 74,155,108,128, 80,160, 10, 84,
-147,146,146, 72, 57, 28, 54,236,106,168, 55,124,100,119,141,150,235,203,110,186,172,179, 57,207,211,108, 32,207, 56,205,101,111,
- 94, 90, 32,250, 51, 90,144,115,122,225,105,109,210, 21, 34, 43,138, 58,148,132,213,109,168,208,130,  8,197,100,229,110,138, 79,
- 78, 79,249,152, 89,152,116,110, 80, 85, 43,153, 76, 94,226,205,114,205, 45,165,197,184,165, 69,183, 98, 33,165,250,233, 80,226,
-149, 36,128, 65,240,166, 44,104,149,121, 25,110, 84, 54, 96,236,155,163,175,136,235,104,124, 66,168, 82,212,151,  2,156, 53,200,
- 81,150,234,181, 28,248,105,174, 42, 92,234, 16, 90, 45, 71, 70, 13,151, 87, 42,122,  6,230, 94,254, 97,187,142,229, 81,219,182,
-185,104, 34,220,171,210, 28,134,185,175,169, 63,118,219, 49,168,100,105, 42, 41, 10,113, 72, 74, 82,147, 81,171,134, 40, 94,234,
-110, 52, 85, 74,189,188,125, 69,219, 29, 58,119, 42,210, 18,179,116, 97,204, 54,174, 42,131,185, 26,141,100, 91, 10,210,226, 81,
-165,217,  1, 73, 36, 16,165, 43, 94,117,254,136,197, 73,102, 77,214,139,218,233,247, 80, 88,226,151,196,190, 83,242,159,126, 27,
- 61,239,158,219, 78,215,189,247,237,145,150,162,197,190, 93, 91,125,183,159,109,128, 18,216,156,219, 14, 37,153, 90, 82,  2,126,
-245,  7, 33,157,115, 56,134,221,201, 38,229, 74, 62,213,167,220,104, 66,114,138,160,249,184, 44,246,109,209,184, 87,185,239,112,
-216,126,234,164, 54,195,122,155, 10,105,150, 89, 78,134,219,101,181,213, 13,165, 35, 32, 18,  6, 21,252, 90,178, 38,170,234,248,
-143,251, 35,115, 39,103,204,113, 98, 58, 95,182, 72,105, 81, 36,198,169, 69, 90, 81,  7,200,161,238,144, 70, 70,152,115, 73,170,
- 62, 99,237, 93,118,164,164,184,162,196,138,244, 88, 86, 88,211,108,201,117,200, 87, 74,255,  0,221, 55, 54,144,232,113,176,104,
- 22, 82,146, 65,  4,251,166,128,158, 56,163,113, 59, 13,109,117,175, 38,116, 86,110, 44,216,183, 56,209, 46, 99,109,203,100,108,
-202,252, 85,198,211, 50,  2, 84,104, 68, 87,199,167,171,184,122,200, 81, 30,202,225,239, 53,199,230,139, 69,111,237, 48,155,248,
-102,  6,182,158,217,177,180, 46,113, 44, 47,203, 74, 64,117, 47, 92,156, 83,141, 37, 39, 48,162,134,146,132,144,124,114,194, 75,
- 46, 73, 85, 64,117,158,147,110,180,115,215,176,222,184,198,119,122,237, 81,107,220, 44, 74,110, 24,125, 18,226, 27,108,118,253,
- 52,182,134,148,216, 74, 82,162,145, 79, 49,194, 89,201,147, 77,201, 55, 94,196, 77,151,211,224,218,140, 37, 21, 78,214, 71, 15,
- 47,246, 19, 81, 19,112,117,219,175,192,169, 69,  9,119,209,140,148,149, 14, 32, 40,168,138,225, 37,153,109, 42,210, 84, 34, 93,
- 22,109,237,221, 26,250,255,  0,145,179,185, 85,  1, 77,219,237,246,246,228, 34, 52, 72,173,199, 66,166,132,  7, 22,221, 75,136,
- 87,147, 42, 81, 89, 99, 55, 54,234,185, 36,210,107, 78,102,255,  0, 74,198,118, 45,180,218,122,242, 20,153,111,219,179,246,197,
-190,223,186,163, 79, 67,109, 45,247,227,187, 20,180,218, 29, 14,233,  7, 55, 82,170,211, 72,225,139, 54, 50, 21,171,105, 74, 44,
-165,157,129,245, 87, 92,163, 37,166,129,173, 91, 99,100,109,155,244, 43,131, 80,238,201,185,182,182,229, 70,105,213, 48,125, 74,
- 42,169,242,250, 96,144, 72,236, 56,153,230,198, 45,124, 50,169,159, 30,141, 84,218,154,162, 17,185, 90,110,113,164, 42, 75,209,
- 93,105,135, 93, 33, 26,210,120,169, 68,132,146, 50,175,134, 49,238, 90,146,117,163, 85,103, 69,110,244, 90,165, 83,105, 25, 97,
-153,104,147,240, 69, 10, 19,117,122, 94,145,  7, 94,186,233,211, 78, 53,174,  8,197,238,167, 48,155,139, 91,185, 27, 77,197,158,
-181,182,215,160,162,183, 74,146,208,  9, 36,168,164,233, 32,119,208,226,194,131,236,226, 87,110, 58,186,240, 20,149,109,184,195,
- 64,122, 99, 43,105,178,116,130,180,144, 43,199,183, 15,118,229, 30, 42,130, 66,228,101,193,154,186,133, 41,244, 97,251,137, 15,
-153,157,233, 56, 65,184,  8, 62, 85, 52,181,106,  0, 83, 42,130, 65,175,208, 14, 61, 18,204,120,156,252,141, 59,117,198, 66,172,
- 12,193,100,253,210,220, 33,208, 50,207,212, 11,173, 59,241,  4,215,196, 58, 36,171,108,137, 86,217,173,169,179, 72,228, 45, 99,
-136,224,142, 24,101,200, 49,178,146, 30,237,243, 93,114,247,160, 56,173,  2,128,162,185, 16,  8, 85, 62,177,133,179,103,225, 25,
- 59,180, 48,254,230, 85,155,126, 46, 44, 52,151, 34,130,182,214,149,101, 77, 64, 83,233, 24,117,171, 84, 69,109,245,144,229,115,
-183,  9,178,  5,245,167,137, 97, 68, 37,246,136,168, 65,202,134,148,173, 14, 19, 94,  5,148,209,  4,222,187,155,225,175,111,220,
-173, 19, 84,219,201, 71,162,182, 72, 33,189,  8,242,132,231,192,209, 56,218,198,181,182, 53, 51,239, 78,172, 98,137,120,158,228,
- 98,195, 33,165,122,130,137, 66,202,212,173, 58,120,  0, 70,154,145,246, 98,121, 93, 81,230, 34,212,133,238,118,231,179, 32, 54,
-166, 27, 14,173, 70,171,109, 69,178,124,124,213, 79,213,139, 54,238,169,170, 21,228,154, 98, 54,216,187,166, 51, 62,178,138,126,
- 24,102,  3,203,109, 84, 31,233,  3, 95,179, 14,240,146, 19,121, 41,218,111,110, 39, 27, 75,241, 64, 42, 94,116,105,208,147,245,
- 43,  6,193,170,122, 18,123, 36, 29,241,248,251,  8,244,214,183, 23,231, 45,250,136, 91,133, 21,165,104,208, 56,175,121, 73, 61,
-  6,110, 76,232, 13,173,185, 46, 86,136, 45,197,145,110, 91, 97, 41,  1, 97, 76, 56,117, 10, 83,223, 61,184, 73, 70,132,110,175,
-129, 44,181, 93,108,215, 88,203, 46, 32, 50,250,129, 11,103, 66, 82,115,254,149,120,251,113, 94,113,209,208,108,101, 40,177,181,
-183, 45,144,229,250,108, 45, 72,148,  8,169, 10, 71,148,143, 19, 74, 98,150,198,139,158, 45,120,161,250, 51,144, 37,143, 90, 84,
-175, 78, 27,169,  9,144,  9, 88, 74,169, 81,171, 58,  2,123, 50,197,138, 85, 16,187,201, 61,  8,173,243,151, 91, 30,248,149,166,
- 36,177,168,171,202,163, 31,212, 36,147,196, 20,165, 69, 62,220, 73, 11,113,124,137, 22,101,  8,253,239,145,113,165, 48,219,140,
- 76, 20,169,  5,162,162, 78, 92,  8,213, 80,107,236,195,157,132, 79, 12,241,178, 55, 39,182,244,105,106, 75,145,146,251,232, 70,
-162,227,205,179,164, 87,133, 72, 72,207,218, 48,229,101, 38, 57,228,182,  7,185,115,104, 83,233,140, 24,248,112,177, 80,228, 89,
- 15, 50,  9, 31,211,108,166,159, 70, 36,160,216, 95,149,120,145, 93,215,176,247,148, 56, 82,147,105,187, 62,194, 78,160,134, 80,
-227, 50, 19, 79,244,159, 66,156,175,211,138,210,185, 24,241,229,169,114, 18,114,211,180,139,237,206, 92,238,120,252,132,191, 92,
- 55,124, 67,113,220, 82,238,174, 70,181, 43,203,241, 14, 41, 17,154,112,132,161,  9, 72,  9,