Sculpt Branch:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 9 Dec 2009 15:24:55 +0000 (15:24 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 9 Dec 2009 15:24:55 +0000 (15:24 +0000)
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r25180:25245

140 files changed:
intern/elbeem/CMakeLists.txt
intern/elbeem/SConscript
projectfiles_vc9/blender/editors/ED_editors.vcproj
release/datafiles/blenderbuttons
release/scripts/modules/graphviz_export.py
release/scripts/modules/rigify/__init__.py
release/scripts/modules/rigify/arm.py
release/scripts/modules/rigify/delta.py
release/scripts/modules/rigify/leg.py
release/scripts/modules/rigify/neck.py
release/scripts/modules/rigify/palm.py
release/scripts/modules/rigify/spine.py
release/scripts/modules/rna_prop_ui.py
release/scripts/ui/space_dopesheet.py [new file with mode: 0644]
release/scripts/ui/space_graph.py
release/scripts/ui/space_info.py
release/scripts/ui/space_nla.py [new file with mode: 0644]
release/scripts/ui/space_sequencer.py
release/scripts/ui/space_userpref.py
release/scripts/ui/space_view3d.py
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/BKE_sequence.h
source/blender/blenkernel/BKE_sound.h
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/fcurve.c
source/blender/blenkernel/intern/group.c
source/blender/blenkernel/intern/modifier.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/sequence.c
source/blender/blenkernel/intern/sound.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/editors/animation/anim_deps.c
source/blender/editors/animation/keyframes_draw.c
source/blender/editors/datafiles/blenderbuttons.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/include/ED_armature.h
source/blender/editors/include/ED_screen.h
source/blender/editors/include/UI_icons.h
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/resources.c
source/blender/editors/screen/area.c
source/blender/editors/screen/screen_edit.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/space_action/action_header.c [deleted file]
source/blender/editors/space_action/space_action.c
source/blender/editors/space_console/console_ops.c
source/blender/editors/space_file/file_ops.c
source/blender/editors/space_graph/graph_header.c [deleted file]
source/blender/editors/space_image/space_image.c
source/blender/editors/space_nla/nla_header.c [deleted file]
source/blender/editors/space_nla/space_nla.c
source/blender/editors/space_node/node_edit.c
source/blender/editors/space_sequencer/sequencer_add.c
source/blender/editors/space_sequencer/sequencer_edit.c
source/blender/editors/space_sequencer/sequencer_select.c
source/blender/editors/space_sequencer/space_sequencer.c
source/blender/editors/space_text/text_ops.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_ops.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_generics.c
source/blender/editors/uvedit/uvedit_unwrap_ops.c
source/blender/gpu/intern/gpu_buffers.c
source/blender/gpu/intern/gpu_draw.c
source/blender/imbuf/intern/rectop.c
source/blender/makesdna/DNA_anim_types.h
source/blender/makesdna/DNA_screen_types.h
source/blender/makesdna/DNA_windowmanager_types.h
source/blender/makesrna/RNA_access.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_armature.c
source/blender/makesrna/intern/rna_boid.c
source/blender/makesrna/intern/rna_brush.c
source/blender/makesrna/intern/rna_camera.c
source/blender/makesrna/intern/rna_cloth.c
source/blender/makesrna/intern/rna_constraint.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_fcurve.c
source/blender/makesrna/intern/rna_fluidsim.c
source/blender/makesrna/intern/rna_group.c
source/blender/makesrna/intern/rna_image.c
source/blender/makesrna/intern/rna_internal.h
source/blender/makesrna/intern/rna_internal_types.h
source/blender/makesrna/intern/rna_key.c
source/blender/makesrna/intern/rna_lamp.c
source/blender/makesrna/intern/rna_lattice.c
source/blender/makesrna/intern/rna_main_api.c
source/blender/makesrna/intern/rna_material.c
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_meta.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_nodetree.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_object_force.c
source/blender/makesrna/intern/rna_particle.c
source/blender/makesrna/intern/rna_pose.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_scene_api.c
source/blender/makesrna/intern/rna_screen.c
source/blender/makesrna/intern/rna_sculpt_paint.c
source/blender/makesrna/intern/rna_sequence.c
source/blender/makesrna/intern/rna_smoke.c
source/blender/makesrna/intern/rna_sound.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_texture.c
source/blender/makesrna/intern/rna_ui.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/makesrna/intern/rna_wm.c
source/blender/makesrna/intern/rna_wm_api.c
source/blender/makesrna/intern/rna_world.c
source/blender/python/BPY_extern.h
source/blender/python/epy_doc_gen.py
source/blender/python/intern/bpy_array.c
source/blender/python/intern/bpy_driver.c [new file with mode: 0644]
source/blender/python/intern/bpy_interface.c
source/blender/python/intern/bpy_rna.c
source/blender/python/intern/bpy_rna.h
source/blender/windowmanager/WM_api.h
source/blender/windowmanager/WM_types.h
source/blender/windowmanager/intern/wm.c
source/blender/windowmanager/intern/wm_cursors.c
source/blender/windowmanager/intern/wm_draw.c
source/blender/windowmanager/intern/wm_event_system.c
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_keymap.c
source/blender/windowmanager/intern/wm_window.c
source/blender/windowmanager/wm_event_types.h
source/creator/creator.c
source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
source/gameengine/Ketsji/KX_MouseFocusSensor.h
source/gameengine/PyDoc/GameTypes.py
source/gameengine/VideoTexture/ImageBuff.cpp
source/gameengine/VideoTexture/ImageBuff.h

index e541d334086aa6ff61f3ca634e21ef34901b7616..b59554e5709c47f057ba9e16655ae2d2b592e8f4 100644 (file)
@@ -33,9 +33,9 @@ IF(WINDOWS)
                ADD_DEFINITIONS(-DUSE_MSVC6FIXES)
 ENDIF(WINDOWS)
 
-IF(WITH_OPENMP)
+IF(WITH_OPENMP AND NOT APPLE)
                ADD_DEFINITIONS(-DPARALLEL=1)
-ENDIF(WITH_OPENMP)
+ENDIF(WITH_OPENMP AND NOT APPLE)
 
 BLENDERLIB_NOLIST(bf_elbeem "${SRC}" "${INC}")
 #, libtype='blender', priority=0 )
index 0900ab1db5c53a35468bd8ddda297fc6b77ae5ab..ef411d0eb038f1a072145512da5de552a49860b2 100644 (file)
@@ -8,7 +8,8 @@ sources = env.Glob('intern/*.cpp')
 defs = 'NOGUI ELBEEM_BLENDER=1'
 
 if env['WITH_BF_OPENMP']:
-    defs += ' PARALLEL'
+    if env['OURPLATFORM'] != 'darwin':
+        defs += ' PARALLEL'
 
 if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
     defs += ' USE_MSVC6FIXES'
index fec46871e8300294bf8a94d9272647c5907d99bb..bd8e00461d73cb2e948f3c91acd754d2de66ea41 100644 (file)
                                RelativePath="..\..\..\source\blender\editors\space_graph\graph_edit.c"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\source\blender\editors\space_graph\graph_header.c"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\blender\editors\space_graph\graph_intern.h"\r
                                >\r
                                RelativePath="..\..\..\source\blender\editors\space_action\action_edit.c"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\source\blender\editors\space_action\action_header.c"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\blender\editors\space_action\action_intern.h"\r
                                >\r
                                RelativePath="..\..\..\source\blender\editors\space_nla\nla_edit.c"\r
                                >\r
                        </File>\r
-                       <File\r
-                               RelativePath="..\..\..\source\blender\editors\space_nla\nla_header.c"\r
-                               >\r
-                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\blender\editors\space_nla\nla_intern.h"\r
                                >\r
index b538ff3ce6d61b9f45aabb6537fb45a9df524aa8..af046f25563fe0b17f7352fe527ad0ab2058f049 100644 (file)
Binary files a/release/datafiles/blenderbuttons and b/release/datafiles/blenderbuttons differ
index 8f9f2c01ad59bec1cd574b8d7aa7ea08d43473fd..92eb427f8d2aa1812f088e0ddac93ce9aebfc2ca 100644 (file)
@@ -51,7 +51,7 @@ def compat_str(text, line_length=0):
     return "* " + text
 
 
-def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, XTRA_INFO=False):
+def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, XTRA_INFO=True):
     CONSTRAINTS = DRIVERS = True
 
     fileobject = open(path, "w")
@@ -131,7 +131,7 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
                     if XTRA_INFO:
                         label = "%s\n%s" % (constraint.type, constraint.name)
                         opts.append('label="%s"' % compat_str(label))
-                    fw('"%s" -> "%s" [%s] ;\n' % (subtarget, pbone.name, ','.join(opts)))
+                    fw('"%s" -> "%s" [%s] ;\n' % (pbone.name, subtarget, ','.join(opts)))
 
     # Drivers
     if DRIVERS:
index c2568d3eb5d03e274d6b7d9edf320b138f6b50de..af345b5e546568080cb9e2d48b5724d5fcdbdae3 100644 (file)
@@ -73,19 +73,23 @@ def _bone_class_instance_rename(self, attr, new_name):
     setattr(self, attr, ebone.name)
 
 
-def _bone_class_instance_copy(self, from_prefix="", to_prefix=""):
+def _bone_class_instance_copy(self, from_fmt="%s", to_fmt="%s", exclude_attrs=(), base_names=None):
     from_name_ls = []
     new_name_ls = []
     new_slot_ls = []
 
     for attr in self.attr_names:
+        
+        if attr in exclude_attrs:
+            continue
+        
         bone_name_orig = getattr(self, attr)
         ebone = getattr(self, attr + "_e")
         # orig_names[attr] = bone_name_orig
 
-        # insert prefix
-        if from_prefix:
-            bone_name = from_prefix + bone_name_orig
+        # insert formatting
+        if from_fmt != "%s":
+            bone_name = from_fmt % bone_name_orig
             ebone.name = bone_name
             bone_name = ebone.name # cant be sure we get what we ask for
         else:
@@ -95,8 +99,9 @@ def _bone_class_instance_copy(self, from_prefix="", to_prefix=""):
 
         new_slot_ls.append(attr)
         from_name_ls.append(bone_name)
-        bone_name_orig = bone_name_orig.replace("ORG-", "") # XXX - we need a better way to do this
-        new_name_ls.append(to_prefix + bone_name_orig)
+        if base_names:
+            bone_name_orig = base_names[bone_name_orig]
+        new_name_ls.append(to_fmt % bone_name_orig)
 
     new_bones = copy_bone_simple_list(self.obj.data, from_name_ls, new_name_ls, True)
     new_bc = bone_class_instance(self.obj, new_slot_ls)
@@ -134,6 +139,10 @@ def _bone_class_instance_blend(self, from_bc, to_bc, target_bone=None, target_pr
 
 
 def bone_class_instance(obj, slots, name="BoneContainer"):
+    
+    if len(slots) != len(set(slots)):
+        raise Exception("duplicate entries found %s" % attr_names)
+
     attr_names = tuple(slots) # dont modify the original
     slots = list(slots) # dont modify the original
     for i in range(len(slots)):
@@ -210,6 +219,11 @@ def blend_bone_list(obj, apply_bones, from_bones, to_bones, target_bone=None, ta
     if obj.mode == 'EDIT':
         raise Exception("blending cant be called in editmode")
 
+    if len(apply_bones) != len(from_bones):
+        raise Exception("lists differ in length (from -> apply): \n\t%s\n\t%s" % (from_bones, apply_bones))
+    if len(apply_bones) != len(to_bones):
+        raise Exception("lists differ in length (to -> apply): \n\t%s\n\t%s" % (to_bones, apply_bones))
+
     # setup the blend property
     if target_bone is None:
         target_bone = apply_bones[-1] # default to the last bone
@@ -272,10 +286,12 @@ def blend_bone_list(obj, apply_bones, from_bones, to_bones, target_bone=None, ta
 
         new_pbone = obj.pose.bones[new_bone_name]
 
-        if not new_pbone.bone.connected:
+        # if the bone is connected or its location is totally locked then dont add location blending.
+        if not (new_pbone.bone.connected or (False not in new_pbone.lock_location)):
             blend_location(new_pbone, from_bone_name, to_bone_name)
 
-        blend_rotation(new_pbone, from_bone_name, to_bone_name)
+        if not (False not in new_pbone.lock_rotation): # TODO. 4D chech?
+            blend_rotation(new_pbone, from_bone_name, to_bone_name)
 
 
 def add_stretch_to(obj, from_name, to_name, name):
@@ -317,7 +333,8 @@ def add_stretch_to(obj, from_name, to_name, name):
     con.volume = 'NO_VOLUME'
 
     bpy.ops.object.mode_set(mode=mode_orig)
-
+    
+    return stretch_name
 
 def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
     '''
@@ -342,11 +359,18 @@ def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
     parent_dir = parent_head - parent_tail
 
     distance = (base_dir.length + parent_dir.length)
-
+    
     if mode == 'CROSS':
+        # direction from the angle of the joint
         offset = base_dir.copy().normalize() - parent_dir.copy().normalize()
         offset.length = distance
+    elif mode == 'ZAVERAGE':
+        # between both bones Z axis
+        z_axis_a = base_ebone.matrix.copy().rotationPart() * Vector(0.0, 0.0, -1.0)
+        z_axis_b = parent_ebone.matrix.copy().rotationPart() * Vector(0.0, 0.0, -1.0)
+        offset = (z_axis_a + z_axis_b).normalize() * distance
     else:
+        # preset axis
         offset = Vector(0, 0, 0)
         if mode[0] == "+":
             val = distance
@@ -363,7 +387,7 @@ def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
     return poll_name
 
 
-def generate_rig(context, obj_orig, prefix="ORG-"):
+def generate_rig(context, obj_orig, prefix="ORG-", META_DEF=True):
     from collections import OrderedDict
 
     global_undo = context.user_preferences.edit.global_undo
@@ -371,20 +395,28 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
 
     bpy.ops.object.mode_set(mode='OBJECT')
 
+    scene = context.scene
 
     # copy object and data
     obj_orig.selected = False
     obj = obj_orig.copy()
     obj.data = obj_orig.data.copy()
-    scene = context.scene
     scene.objects.link(obj)
     scene.objects.active = obj
     obj.selected = True
+    
+    if META_DEF:
+        obj_def = obj_orig.copy()
+        obj_def.data = obj_orig.data.copy()
+        scene.objects.link(obj_def)
 
     arm = obj.data
 
     # original name mapping
     base_names = {}
+    
+    # add all new parentless children to this bone
+    root_bone = None
 
     bpy.ops.object.mode_set(mode='EDIT')
     for bone in arm.edit_bones:
@@ -407,10 +439,23 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
     # inspect all bones and assign their definitions before modifying
     for pbone in obj.pose.bones:
         bone_name = pbone.name
-        bone_type = obj.pose.bones[bone_name].get("type", "")
-        bone_type_list = [bt for bt in bone_type.replace(",", " ").split()]
+        bone_type = pbone.get("type", "")
+        if bone_type:
+            bone_type_list = [bt for bt in bone_type.replace(",", " ").split()]
+            
+            # not essential but means running autorig again wont do anything
+            del pbone["type"]
+        else:
+            bone_type_list = []
+            
+        if bone_type_list == ["root"]: # special case!
+            if root_bone:
+                raise Exception("cant have more then 1 root bone, found '%s' and '%s' to have type==root" % (root_bone, bone_name))
+            root_bone = bone_name
+            bone_type_list[:] = []
 
         for bone_type in bone_type_list:
+            
             type_pair = bone_type.split(".")
 
             # 'leg.ik' will look for an ik function in the leg module
@@ -450,7 +495,7 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
 
         if bone_name not in bone_typeinfos:
             continue
-        
+
         bone_def_dict = bone_definitions[bone_name]
 
         # Only blend results from the same submodule, eg.
@@ -478,10 +523,34 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
             definition = bone_def_dict[submod_name]
 
             if len(result_submod) == 2:
-                blend_bone_list(obj, definition, result_submod[0], result_submod[1])
+                blend_bone_list(obj, definition, result_submod[0], result_submod[1], target_bone=bone_name)
+
+    if root_bone:
+        # assign all new parentless bones to this
+        
+        bpy.ops.object.mode_set(mode='EDIT')
+        root_ebone = arm.edit_bones[root_bone]
+        for ebone in arm.edit_bones:
+            if ebone.parent is None and ebone.name not in base_names:
+                ebone.connected = False
+                ebone.parent = root_ebone
+        bpy.ops.object.mode_set(mode='OBJECT')
+        
 
-    # needed to update driver deps
-    # context.scene.update()
+    if META_DEF:
+        # for pbone in obj_def.pose.bones:
+        for bone_name, bone_name_new in base_names.items():
+            #pbone_from = bone_name
+            pbone = obj_def.pose.bones[bone_name_new]
+            
+            con = pbone.constraints.new('COPY_ROTATION')
+            con.target = obj
+            con.subtarget = bone_name
+
+            if not pbone.bone.connected:
+                con = pbone.constraints.new('COPY_LOCATION')
+                con.target = obj
+                con.subtarget = bone_name
 
     # Only for demo'ing
 
index fff52aa3ab4d2d610924090e9c57a5b3ae1a5df7..6ed564ac07018c2c4400cd11c8f9d4f41632d1ea 100644 (file)
 # <pep8 compliant>
 
 import bpy
-from rigify import bone_class_instance, copy_bone_simple, add_pole_target_bone, add_stretch_to
+from rigify import bone_class_instance, copy_bone_simple, add_pole_target_bone, add_stretch_to, blend_bone_list
 from rna_prop_ui import rna_idprop_ui_prop_get
+from Mathutils import Vector
 
 METARIG_NAMES = "shoulder", "arm", "forearm", "hand"
 
 
 def metarig_template():
+    # generated by rigify.write_meta_rig
     bpy.ops.object.mode_set(mode='EDIT')
     obj = bpy.context.object
     arm = obj.data
@@ -64,10 +66,13 @@ def metarig_definition(obj, orig_bone_name):
     mt.update()
 
     mt.shoulder_p = mt.arm_p.parent
-    
+
     if not mt.shoulder_p:
-        raise Exception("could not find 'arm' parent, skipping:", orig_bone_name)
-    print(mt.shoulder_p)
+        raise Exception("could not find '%s' parent, skipping:" % orig_bone_name)
+        
+    if mt.arm_p.parent.bone.connected:
+        raise Exception("expected '%s' to be disconnected from its parent" % orig_bone_name)
+
     mt.shoulder = mt.shoulder_p.name
 
     # We could have some bones attached, find the bone that has this as its 2nd parent
@@ -77,8 +82,8 @@ def metarig_definition(obj, orig_bone_name):
         if index == 2:
             hands.append(pbone)
 
-    if len(hands) > 1:
-        raise Exception("more then 1 hand found on:", orig_bone_name)
+    if len(hands) != 1:
+        raise Exception("Expected more then 1 hand found on:", orig_bone_name)
 
     # first add the 2 new bones
     mt.hand_p = hands[0]
@@ -90,232 +95,135 @@ def metarig_definition(obj, orig_bone_name):
     return mt.names()
 
 
-def main(obj, definitions, base_names):
-    """
-    the bone with the 'arm' property is the upper arm, this assumes a chain as follows.
-    [shoulder, upper_arm, forearm, hand]
-    ...where this bone is 'upper_arm'
-
-    there are 3 chains
-    - Original
-    - IK, MCH-%s_ik
-    - IKSwitch, MCH-%s ()
-
-
-    """
-
-    # Since there are 3 chains, this gets confusing so divide into 3 chains
-    # Initialize container classes for convenience
-    mt = bone_class_instance(obj, METARIG_NAMES) # meta
+def ik(obj, definitions, base_names):
+    mt = bone_class_instance(obj, METARIG_NAMES)
     mt.shoulder, mt.arm, mt.forearm, mt.hand = definitions
+    mt.update()
+    
+    ik = bone_class_instance(obj, ["pole", "pole_vis", "hand_vis"])
+    ik_chain = mt.copy(to_fmt="MCH-%s_ik", base_names=base_names, exclude_attrs=["shoulder"])
+    
+    # IK needs no parent_index
+    ik_chain.hand_e.connected = False
+    ik_chain.hand_e.parent = None
 
-    ik = bone_class_instance(obj, ["arm", "forearm", "pole", "hand"]) # ik
-    sw = bone_class_instance(obj, ["socket", "shoulder", "arm", "forearm", "hand"]) # hinge
-    ex = bone_class_instance(obj, ["arm_hinge"]) # hinge & extras
-
-    arm = obj.data
-
-    def chain_ik(prefix="MCH-%s_ik"):
-
-        mt.update()
-
-        # Add the edit bones
-        ik.hand_e = copy_bone_simple(arm, mt.hand, prefix % base_names[mt.hand])
-        ik.hand = ik.hand_e.name
-
-        ik.arm_e = copy_bone_simple(arm, mt.arm, prefix % base_names[mt.arm])
-        ik.arm = ik.arm_e.name
-
-        ik.forearm_e = copy_bone_simple(arm, mt.forearm, prefix % base_names[mt.forearm])
-        ik.forearm = ik.forearm_e.name
-
-        ik.arm_e.parent = mt.arm_e.parent
-        ik.forearm_e.connected = mt.arm_e.connected
-
-        ik.forearm_e.parent = ik.arm_e
-        ik.forearm_e.connected = True
-
-
-        # Add the bone used for the arms poll target
-        ik.pole = add_pole_target_bone(obj, mt.forearm, "elbow_poll", mode='+Z')
-
-        bpy.ops.object.mode_set(mode='OBJECT')
-
-        ik.update()
-
-        con = ik.forearm_p.constraints.new('IK')
-        con.target = obj
-        con.subtarget = ik.hand
-        con.pole_target = obj
-        con.pole_subtarget = ik.pole
-
-        con.use_tail = True
-        con.use_stretch = True
-        con.use_target = True
-        con.use_rotation = False
-        con.chain_length = 2
-        con.pole_angle = -90.0 # XXX, RAD2DEG
-
-        # ID Propery on the hand for IK/FK switch
-
-        prop = rna_idprop_ui_prop_get(ik.hand_p, "ik", create=True)
-        ik.hand_p["ik"] = 0.5
-        prop["soft_min"] = 0.0
-        prop["soft_max"] = 1.0
-
-        bpy.ops.object.mode_set(mode='EDIT')
-
-    def chain_switch(prefix="MCH-%s"):
-        print(mt.obj.mode)
-        sw.update()
-        mt.update()
-
-        sw.shoulder_e = copy_bone_simple(arm, mt.shoulder, prefix % base_names[mt.shoulder])
-        sw.shoulder = sw.shoulder_e.name
-        sw.shoulder_e.parent = mt.shoulder_e.parent
-        sw.shoulder_e.connected = mt.shoulder_e.connected
-
-        sw.arm_e = copy_bone_simple(arm, mt.arm, prefix % base_names[mt.arm])
-        sw.arm = sw.arm_e.name
-        sw.arm_e.parent = sw.shoulder_e
-        sw.arm_e.connected = arm.edit_bones[mt.shoulder].connected
-
-        sw.forearm_e = copy_bone_simple(arm, mt.forearm, prefix % base_names[mt.forearm])
-        sw.forearm = sw.forearm_e.name
-        sw.forearm_e.parent = sw.arm_e
-        sw.forearm_e.connected = arm.edit_bones[mt.forearm].connected
-
-        sw.hand_e = copy_bone_simple(arm, mt.hand, prefix % base_names[mt.hand])
-        sw.hand = sw.hand_e.name
-        sw.hand_e.parent = sw.forearm_e
-        sw.hand_e.connected = arm.edit_bones[mt.hand].connected
-
-        # The sw.hand_e needs to own all the children on the metarig's hand
-        for child in mt.hand_e.children:
-            child.parent = sw.hand_e
-
-
-        # These are made the children of sw.shoulder_e
-
-
-        bpy.ops.object.mode_set(mode='OBJECT')
-
-        # Add constraints
-        sw.update()
-
-        #dummy, ik.arm, ik.forearm, ik.hand, ik.pole = ik_chain_tuple
-
-        ik_driver_path = obj.pose.bones[ik.hand].path_to_id() + '["ik"]'
-
-        def ik_fk_driver(con):
-            '''
-            3 bones use this for ik/fk switching
-            '''
-            fcurve = con.driver_add("influence", 0)
-            driver = fcurve.driver
-            tar = driver.targets.new()
-            driver.type = 'AVERAGE'
-            tar.name = "ik"
-            tar.id_type = 'OBJECT'
-            tar.id = obj
-            tar.rna_path = ik_driver_path
-
-        # ***********
-        con = sw.arm_p.constraints.new('COPY_ROTATION')
-        con.name = "FK"
-        con.target = obj
-        con.subtarget = mt.arm
-
-        con = sw.arm_p.constraints.new('COPY_ROTATION')
-
-        con.target = obj
-        con.subtarget = ik.arm
-        con.influence = 0.5
-        ik_fk_driver(con)
-
-        # ***********
-        con = sw.forearm_p.constraints.new('COPY_ROTATION')
-        con.name = "FK"
-        con.target = obj
-        con.subtarget = mt.forearm
-
-        con = sw.forearm_p.constraints.new('COPY_ROTATION')
-        con.name = "IK"
-        con.target = obj
-        con.subtarget = ik.forearm
-        con.influence = 0.5
-        ik_fk_driver(con)
-
-        # ***********
-        con = sw.hand_p.constraints.new('COPY_ROTATION')
-        con.name = "FK"
-        con.target = obj
-        con.subtarget = mt.hand
-
-        con = sw.hand_p.constraints.new('COPY_ROTATION')
-        con.name = "IK"
-        con.target = obj
-        con.subtarget = ik.hand
-        con.influence = 0.5
-        ik_fk_driver(con)
-
-
-        add_stretch_to(obj, sw.forearm, ik.pole, "VIS-elbow_ik_poll")
-        add_stretch_to(obj, sw.hand, ik.hand, "VIS-hand_ik")
-
-        bpy.ops.object.mode_set(mode='EDIT')
-
-    def chain_shoulder(prefix="MCH-%s"):
-
-        sw.socket_e = copy_bone_simple(arm, mt.arm, (prefix % base_names[mt.arm]) + "_socket")
-        sw.socket = sw.socket_e.name
-        sw.socket_e.tail = arm.edit_bones[mt.shoulder].tail
-
-
-        # Set the shoulder as parent
-        ik.update()
-        sw.update()
-        mt.update()
-
-        sw.socket_e.parent = sw.shoulder_e
-        ik.arm_e.parent = sw.shoulder_e
+    ik_chain.arm_e.connected = False
+    ik_chain.arm_e.parent = mt.shoulder_e
+    
+    # Add the bone used for the arms poll target
+    ik.pole = add_pole_target_bone(obj, mt.forearm, "elbow_poll", mode='ZAVERAGE')
+    
+    # update bones after this!
+    ik.hand_vis = add_stretch_to(obj, mt.hand, ik_chain.hand, "VIS-%s_ik" % base_names[mt.hand])
+    ik.pole_vis = add_stretch_to(obj, mt.forearm, ik.pole, "VIS-%s_ik" % base_names[mt.forearm])
+    
+    ik.update()
+    ik.hand_vis_e.restrict_select = True
+    ik.pole_vis_e.restrict_select = True
+    
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    mt.update()
+    ik.update()
+    ik_chain.update()
+
+    # Set IK dof
+    ik_chain.forearm_p.ik_dof_x = True
+    ik_chain.forearm_p.ik_dof_y = False
+    ik_chain.forearm_p.ik_dof_z = False
+
+    con = ik_chain.forearm_p.constraints.new('IK')
+    con.target = obj
+    con.subtarget = ik_chain.hand
+    con.pole_target = obj
+    con.pole_subtarget = ik.pole
+
+    con.use_tail = True
+    con.use_stretch = True
+    con.use_target = True
+    con.use_rotation = False
+    con.chain_length = 2
+    con.pole_angle = -90.0 # XXX, RAD2DEG
+
+    # ID Propery on the hand for IK/FK switch
+
+    prop = rna_idprop_ui_prop_get(ik_chain.hand_p, "ik", create=True)
+    ik_chain.hand_p["ik"] = 0.5
+    prop["soft_min"] = 0.0
+    prop["soft_max"] = 1.0
 
+    bpy.ops.object.mode_set(mode='EDIT')
+    
+    # don't blend the shoulder
+    return [None] + ik_chain.names()
 
-        # ***** add the shoulder hinge
-        # yes this is correct, the shoulder copy gets the arm's name
-        ex.arm_hinge_e = copy_bone_simple(arm, mt.shoulder, (prefix % base_names[mt.arm]) + "_hinge")
-        ex.arm_hinge = ex.arm_hinge_e.name
-        offset = ex.arm_hinge_e.length / 2.0
 
-        ex.arm_hinge_e.head.y += offset
-        ex.arm_hinge_e.tail.y += offset
+def fk(obj, definitions, base_names):
+    
+    arm = obj.data
+    
+    mt = bone_class_instance(obj, METARIG_NAMES)
+    mt.shoulder, mt.arm, mt.forearm, mt.hand = definitions
+    mt.update()
 
-        # Note: meta arm becomes child of hinge
-        mt.arm_e.parent = ex.arm_hinge_e
+    ex = bone_class_instance(obj, ["socket", "arm_hinge", "hand_delta"])
+    fk_chain = mt.copy(base_names=base_names)
 
+    # shoulder is used as a hinge
+    fk_chain.rename("shoulder", "MCH-%s_hinge" % base_names[mt.arm])
+    fk_chain.shoulder_e.translate(Vector(0.0, fk_chain.shoulder_e.length / 2, 0.0))
 
-        bpy.ops.object.mode_set(mode='OBJECT')
+    # upper arm constrains to this.
+    ex.socket_e = copy_bone_simple(arm, mt.arm, "MCH-%s_socket" % base_names[mt.arm])
+    ex.socket = ex.socket_e.name
+    ex.socket_e.connected = False
+    ex.socket_e.parent = mt.shoulder_e
+    ex.socket_e.tail = mt.shoulder_e.tail
+    
+    # insert the 'DLT-hand', between the forearm and the hand
+    # copies forarm rotation
+    ex.hand_delta_e = copy_bone_simple(arm, fk_chain.hand, "DLT-%s" % base_names[mt.hand], parent=True)
+    ex.hand_delta = ex.hand_delta_e.name
+    ex.hand_delta_e.length *= 0.5
+    ex.hand_delta_e.connected = False
+    
+    fk_chain.hand_e.connected = False
+    fk_chain.hand_e.parent = ex.hand_delta_e
 
-        ex.update()
+    bpy.ops.object.mode_set(mode='OBJECT')
+    
+    mt.update()
+    ex.update()
+    fk_chain.update()
 
-        con = mt.arm_p.constraints.new('COPY_LOCATION')
-        con.target = obj
-        con.subtarget = sw.socket
+    # Set rotation modes and axis locks
+    fk_chain.forearm_p.rotation_mode = 'XYZ'
+    fk_chain.forearm_p.lock_rotation = (False, True, True)
+    fk_chain.hand_p.rotation_mode = 'ZXY'
 
+    con = fk_chain.arm_p.constraints.new('COPY_LOCATION')
+    con.target = obj
+    con.subtarget = ex.socket
+    
+    fk_chain.hand_p.lock_location = True, True, True
+    con = ex.hand_delta_p.constraints.new('COPY_ROTATION')
+    con.target = obj
+    con.subtarget = fk_chain.forearm
 
+    def hinge_setup():
         # Hinge constraint & driver
-        con = ex.arm_hinge_p.constraints.new('COPY_ROTATION')
+        con = fk_chain.shoulder_p.constraints.new('COPY_ROTATION')
         con.name = "hinge"
         con.target = obj
-        con.subtarget = sw.shoulder
+        con.subtarget = mt.shoulder
         driver_fcurve = con.driver_add("influence", 0)
         driver = driver_fcurve.driver
 
 
-        controller_path = mt.arm_p.path_to_id()
+        controller_path = fk_chain.arm_p.path_to_id()
         # add custom prop
-        mt.arm_p["hinge"] = 0.0
-        prop = rna_idprop_ui_prop_get(mt.arm_p, "hinge", create=True)
+        fk_chain.arm_p["hinge"] = 0.0
+        prop = rna_idprop_ui_prop_get(fk_chain.arm_p, "hinge", create=True)
         prop["soft_min"] = 0.0
         prop["soft_max"] = 1.0
 
@@ -330,16 +238,21 @@ def main(obj, definitions, base_names):
         tar.id = obj
         tar.rna_path = controller_path + '["hinge"]'
 
+        mod = driver_fcurve.modifiers[0]
+        mod.poly_order = 1
+        mod.coefficients[0] = 1.0
+        mod.coefficients[1] = -1.0
 
-        bpy.ops.object.mode_set(mode='EDIT')
+    hinge_setup()
+    
+    bpy.ops.object.mode_set(mode='EDIT')
 
-        # remove the shoulder and re-parent
+    return None, fk_chain.arm, fk_chain.forearm, fk_chain.hand
 
-    chain_ik()
-    chain_switch()
-    chain_shoulder()
 
-    # Shoulder with its delta and hinge.
+def main(obj, bone_definition, base_names):    
+    bones_ik = ik(obj, bone_definition, base_names)
+    bones_fk = fk(obj, bone_definition, base_names)
 
-    # TODO - return a list for fk and IK
-    return None
+    bpy.ops.object.mode_set(mode='OBJECT')
+    blend_bone_list(obj, bone_definition, bones_ik, bones_fk, target_bone=bone_definition[1])
index fedb417ee677966f818c6eb60eeddcf5d74b82b1..00d79ed33df4c839ada057f43bd57a40b63207d6 100644 (file)
@@ -86,14 +86,14 @@ def main(obj, bone_definition, base_names):
     del child_pbone
 
     bpy.ops.object.mode_set(mode='OBJECT')
-    
-    
+
+
 
     # Move the child bone to the deltas location
     obj.animation_data_create()
     delta_pbone = obj.pose.bones[delta_name]
     # child_pbone = obj.pose.bones[child_name]
-    
+
     # ------------------- drivers
 
     delta_pbone.rotation_mode = 'XYZ'
index bdeef5db29af744d31595aa77810b8f53c4cfb45..ed28c21fd3236a59054b97d8756dcfd0d0c53693 100644 (file)
@@ -146,7 +146,7 @@ def ik(obj, bone_definition, base_names):
 
 
     # Make a new chain, ORG are the original bones renamed.
-    ik_chain = mt_chain.copy(to_prefix="MCH-")
+    ik_chain = mt_chain.copy(to_fmt="MCH-%s")
 
     # simple rename
     ik_chain.rename("thigh", ik_chain.thigh + "_ik")
@@ -213,6 +213,11 @@ def ik(obj, bone_definition, base_names):
     mt_chain.update()
     ik_chain.update()
 
+    # Set IK dof
+    ik_chain.shin_p.ik_dof_x = True
+    ik_chain.shin_p.ik_dof_y = False
+    ik_chain.shin_p.ik_dof_z = False
+
     # IK
     con = ik_chain.shin_p.constraints.new('IK')
     con.chain_length = 2
@@ -225,7 +230,7 @@ def ik(obj, bone_definition, base_names):
     con.weight = 1.0
 
     con.target = obj
-    con.subtarget = ik.foot
+    con.subtarget = ik_chain.foot
 
     con.pole_target = obj
     con.pole_subtarget = ik.knee_target
@@ -279,7 +284,7 @@ def fk(obj, bone_definition, base_names):
     ex.thigh_socket = ex.thigh_socket_e.name
     ex.thigh_socket_e.tail = ex.thigh_socket_e.head + Vector(0.0, 0.0, ex.thigh_socket_e.length / 4.0)
 
-    ex.thigh_hinge_e = copy_bone_simple(arm, mt_chain.thigh, "MCH-%s_hinge" % base_names[mt_chain.thigh], parent=True)
+    ex.thigh_hinge_e = copy_bone_simple(arm, mt_chain.thigh, "MCH-%s_hinge" % base_names[mt_chain.thigh])
     ex.thigh_hinge = ex.thigh_hinge_e.name
     ex.thigh_hinge_e.tail = ex.thigh_hinge_e.head + Vector(0.0, 0.0, mt_chain.thigh_e.head.length)
     ex.thigh_hinge_e.translate(Vector( - (mt.hips_e.head.x - mt_chain.thigh_e.head.x), 0.0, 0.0))
@@ -338,4 +343,4 @@ def main(obj, bone_definition, base_names):
     bones_fk = fk(obj, bone_definition, base_names)
 
     bpy.ops.object.mode_set(mode='OBJECT')
-    blend_bone_list(obj, bone_definition, bones_ik, bones_fk)
+    blend_bone_list(obj, bone_definition, bones_ik, bones_fk, target_bone=bone_definition[1])
index 06e2e1077b211856adf68ddb3fbf020c1f2fd67c..887b0b091fc18c5cc8085a9813df97477ee28dc9 100644 (file)
@@ -27,19 +27,20 @@ METARIG_NAMES = ("body", "head")
 
 
 def metarig_template():
+    # generated by rigify.write_meta_rig
     bpy.ops.object.mode_set(mode='EDIT')
     obj = bpy.context.object
     arm = obj.data
     bone = arm.edit_bones.new('body')
     bone.head[:] = -0.0000, -0.2771, -1.3345
-    bone.tail[:] = -0.0000, -0.1708, -0.3984
+    bone.tail[:] = -0.0000, -0.1708, -0.1984
     bone.roll = 0.0000
     bone.connected = False
     bone = arm.edit_bones.new('head')
     bone.head[:] = -0.0000, -0.1708, -0.1984
-    bone.tail[:] = 0.0000, -0.1708, 1.6016
-    bone.roll = -0.0000
-    bone.connected = False
+    bone.tail[:] = 0.0000, 0.7292, 1.3604
+    bone.roll = 0.0000
+    bone.connected = True
     bone.parent = arm.edit_bones['body']
     bone = arm.edit_bones.new('neck.01')
     bone.head[:] = 0.0000, -0.1708, -0.1984
@@ -116,7 +117,7 @@ def main(obj, bone_definition, base_names):
         setattr(mt_chain, attr, neck_chain[i])
     mt_chain.update()
 
-    neck_chain_basename = mt_chain.neck_01_e.basename
+    neck_chain_basename = base_names[mt_chain.neck_01_e.name].split(".")[0]
     neck_chain_segment_length = mt_chain.neck_01_e.length
 
     ex = bone_class_instance(obj, ["body", "head", "head_hinge", "neck_socket"]) # hinge & extras
@@ -125,7 +126,8 @@ def main(obj, bone_definition, base_names):
 
 
     # Copy the head bone and offset
-    ex.head_e = copy_bone_simple(arm, mt.head, "MCH_%s" % mt.head, parent=True)
+    ex.head_e = copy_bone_simple(arm, mt.head, "MCH_%s" % base_names[mt.head], parent=True)
+    ex.head_e.connected = False
     ex.head = ex.head_e.name
     # offset
     head_length = ex.head_e.length
@@ -133,17 +135,20 @@ def main(obj, bone_definition, base_names):
     ex.head_e.tail.y += head_length / 2.0
 
     # Yes, use the body bone but call it a head hinge
-    ex.head_hinge_e = copy_bone_simple(arm, mt.body, "MCH_%s_hinge" % mt.head, parent=True)
+    ex.head_hinge_e = copy_bone_simple(arm, mt.body, "MCH_%s_hinge" % base_names[mt.head], parent=True)
+    ex.head_hinge_e.connected = False
     ex.head_hinge = ex.head_hinge_e.name
     ex.head_hinge_e.head.y += head_length / 4.0
     ex.head_hinge_e.tail.y += head_length / 4.0
 
     # reparent the head, assume its not connected
+    mt.head_e.connected = False
     mt.head_e.parent = ex.head_hinge_e
 
     # Insert the neck socket, the head copys this loation
     ex.neck_socket_e = arm.edit_bones.new("MCH-%s_socked" % neck_chain_basename)
     ex.neck_socket = ex.neck_socket_e.name
+    ex.neck_socket_e.connected = False
     ex.neck_socket_e.parent = mt.body_e
     ex.neck_socket_e.head = mt.head_e.head
     ex.neck_socket_e.tail = mt.head_e.head - Vector(0.0, neck_chain_segment_length / 2.0, 0.0)
@@ -157,10 +162,10 @@ def main(obj, bone_definition, base_names):
         neck_e = getattr(mt_chain, attr + "_e")
 
         # dont store parent names, re-reference as each chain bones parent.
-        neck_e_parent = arm.edit_bones.new("MCH-rot_%s" % neck_e.name)
+        neck_e_parent = arm.edit_bones.new("MCH-rot_%s" % base_names[neck_e.name])
         neck_e_parent.head = neck_e.head
         neck_e_parent.tail = neck_e.head + ((mt.head_e.tail - mt.head_e.head).normalize() * neck_chain_segment_length / 2.0)
-        neck_e_parent.roll = neck_e.roll
+        neck_e_parent.roll = mt.head_e.roll
         
 
         orig_parent = neck_e.parent
@@ -220,10 +225,21 @@ def main(obj, bone_definition, base_names):
 
     head_driver_path = mt.head_p.path_to_id()
 
-    # b01/max(0.001,b01+b02+b03+b04+b05)
     target_names = [("b%.2d" % (i + 1)) for i in range(len(neck_chain))]
-    expression_suffix = "/max(0.001,%s)" % "+".join(target_names)
+    
+    mt.head_p["bend_tot"] = 0.0
+    fcurve = mt.head_p.driver_add('["bend_tot"]', 0)
+    driver = fcurve.driver
+    driver.type = 'SUM'
+    fcurve.modifiers.remove(0) # grr dont need a modifier
 
+    for i in range(len(neck_chain)):
+        tar = driver.targets.new()
+        tar.name = target_names[i]
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = head_driver_path + ('["bend_%.2d"]' % (i + 1))
+    
 
     for i, attr in enumerate(mt_chain.attr_names):
         neck_p = getattr(mt_chain, attr + "_p")
@@ -252,16 +268,23 @@ def main(obj, bone_definition, base_names):
         fcurve = con.driver_add("influence", 0)
         driver = fcurve.driver
         driver.type = 'SCRIPTED'
-        # b01/max(0.001,b01+b02+b03+b04+b05)
-        driver.expression = target_names[i] + expression_suffix
+        driver.expression = "bend/bend_tot"
+        
         fcurve.modifiers.remove(0) # grr dont need a modifier
+        
 
-        for j in range(len(neck_chain)):
-            tar = driver.targets.new()
-            tar.name = target_names[j]
-            tar.id_type = 'OBJECT'
-            tar.id = obj
-            tar.rna_path = head_driver_path + ('["bend_%.2d"]' % (j + 1))
+        # add target
+        tar = driver.targets.new()
+        tar.name = "bend_tot"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = head_driver_path + ('["bend_tot"]')
+        
+        tar = driver.targets.new()
+        tar.name = "bend"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = head_driver_path + ('["%s"]' % prop_name)
 
     # no blending the result of this
     return None
index 0d85d60fad5ac2a0dd51482867a778ddcff9a019..5f4ada6128d90fbc5e966ae131c8bff22d8cec78 100644 (file)
@@ -41,31 +41,31 @@ def metarig_template():
     bone.roll = -3.1396
     bone.connected = False
     bone.parent = arm.edit_bones['hand']
-    bone = arm.edit_bones.new('palm.04')
+    bone = arm.edit_bones.new('palm.02')
     bone.head[:] = 0.5000, -0.0000, 0.0000
     bone.tail[:] = 0.6433, 1.2444, -0.1299
     bone.roll = -3.1357
     bone.connected = False
     bone.parent = arm.edit_bones['hand']
-    bone = arm.edit_bones.new('palm.05')
+    bone = arm.edit_bones.new('palm.01')
     bone.head[:] = 1.0000, 0.0000, 0.0000
     bone.tail[:] = 1.3961, 1.0084, -0.1299
     bone.roll = -3.1190
     bone.connected = False
     bone.parent = arm.edit_bones['hand']
-    bone = arm.edit_bones.new('palm.02')
+    bone = arm.edit_bones.new('palm.04')
     bone.head[:] = -0.5000, 0.0000, -0.0000
     bone.tail[:] = -0.5674, 1.2022, -0.1299
     bone.roll = 3.1386
     bone.connected = False
     bone.parent = arm.edit_bones['hand']
-    bone = arm.edit_bones.new('palm.01')
+    bone = arm.edit_bones.new('palm.05')
     bone.head[:] = -1.0000, 0.0000, -0.0000
     bone.tail[:] = -1.3286, 1.0590, -0.1299
     bone.roll = 3.1239
     bone.connected = False
     bone.parent = arm.edit_bones['hand']
-    bone = arm.edit_bones.new('palm.06')
+    bone = arm.edit_bones.new('thumb')
     bone.head[:] = 1.3536, -0.2941, 0.0000
     bone.tail[:] = 2.1109, 0.4807, -0.1299
     bone.roll = -3.0929
@@ -73,24 +73,25 @@ def metarig_template():
     bone.parent = arm.edit_bones['hand']
 
     bpy.ops.object.mode_set(mode='OBJECT')
-    pbone = obj.pose.bones['palm.05']
+    pbone = obj.pose.bones['palm.01']
     pbone['type'] = 'palm'
 
 
 def metarig_definition(obj, orig_bone_name):
     '''
     The bone given is the first in an array of siblings with a matching basename
-    sorted with the little finger lowest.
+    sorted with pointer first, little finger last.
     eg.
-        [pinky, ring... etc]
+        [pointer, middle, ring, pinky... ] # any number of fingers
     '''
     arm = obj.data
-    
+
     palm_bone = arm.bones[orig_bone_name]
     palm_parent = palm_bone.parent
     palm_base = palm_bone.basename
     bone_definition = [bone.name for bone in palm_parent.children if bone.basename == palm_base]
     bone_definition.sort()
+    bone_definition.reverse()
 
     return [palm_parent.name] + bone_definition
 
index 39ba4baee61922e434ed91b6baaa18a35d0a00e3..2ccc10350b1dda11726ce403402b0c16f01ae6a2 100644 (file)
@@ -27,6 +27,7 @@ METARIG_NAMES = ("pelvis", "ribcage")
 
 
 def metarig_template():
+    # generated by rigify.write_meta_rig
     bpy.ops.object.mode_set(mode='EDIT')
     obj = bpy.context.object
     arm = obj.data
@@ -86,7 +87,7 @@ def metarig_template():
 
     bpy.ops.object.mode_set(mode='OBJECT')
     pbone = obj.pose.bones['rib_cage']
-    pbone['type'] = 'spine'
+    pbone['type'] = 'spine.fk'
 
 
 def metarig_definition(obj, orig_bone_name):
@@ -110,7 +111,7 @@ def metarig_definition(obj, orig_bone_name):
         raise Exception("expected the ribcage to have only 1 child.")
 
     child = children[0]
-    
+
     bone_definition = [pelvis.name, ribcage.name, child.name]
     bone_definition.extend([child.name for child in child.children_recursive_basename])
     return bone_definition
@@ -139,46 +140,54 @@ def main(obj, bone_definition, base_names):
 
     child = spine_chain[0]
     spine_chain_segment_length = child.length
-    child.parent = mt.pelvis_e # was mt.ribcage
+    #child.parent = mt.pelvis_e # was mt.ribcage
 
     # The first bone in the chain happens to be the basis of others, create them now
-    ex = bone_class_instance(obj, ["pelvis", "ribcage", "ribcage_hinge", "spine_rotate"])
+    ex = bone_class_instance(obj, ["pelvis", "pelvis_copy", "ribcage", "ribcage_hinge", "ribcage_copy", "spine_rotate"])
     df = bone_class_instance(obj, ["pelvis", "ribcage"]) # DEF-wgt_pelvis, DEF-wgt_rib_cage
 
+    ex.pelvis_copy_e = copy_bone_simple(arm, mt.pelvis, base_names[mt.pelvis]) # no parent
+    ex.pelvis_copy = ex.pelvis_copy_e.name
 
     # copy the pelvis, offset to make MCH-spine_rotate and MCH-ribcage_hinge
-    ex.ribcage_hinge_e = copy_bone_simple(arm, mt.pelvis, "MCH-%s_hinge" % mt.ribcage)
+    ex.ribcage_hinge_e = copy_bone_simple(arm, mt.pelvis, "MCH-%s_hinge" % base_names[mt.ribcage])
     ex.ribcage_hinge = ex.ribcage_hinge_e.name
     ex.ribcage_hinge_e.translate(Vector(0.0, spine_chain_segment_length / 4.0, 0.0))
-    mt.ribcage_e.parent = ex.ribcage_hinge_e
 
     ex.spine_rotate_e = copy_bone_simple(arm, mt.pelvis, "MCH-%s_rotate" % spine_chain_basename)
     ex.spine_rotate = ex.spine_rotate_e.name
     ex.spine_rotate_e.translate(Vector(0.0, spine_chain_segment_length / 2.0, 0.0))
     # swap head/tail
     ex.spine_rotate_e.head, ex.spine_rotate_e.tail = ex.spine_rotate_e.tail.copy(), ex.spine_rotate_e.head.copy()
-    ex.spine_rotate_e.parent = mt.pelvis_e
+    ex.spine_rotate_e.connected = False
+    ex.spine_rotate_e.parent = ex.pelvis_copy_e
 
-    df.pelvis_e = copy_bone_simple(arm, child.name, "DEF-wgt_%s" % mt.pelvis)
+    df.pelvis_e = copy_bone_simple(arm, child.name, "DEF-wgt_%s" % base_names[mt.pelvis])
     df.pelvis = df.pelvis_e.name
     df.pelvis_e.translate(Vector(spine_chain_segment_length * 2.0, - spine_chain_segment_length, 0.0))
 
-    ex.pelvis_e = copy_bone_simple(arm, child.name, "MCH-wgt_%s" % mt.pelvis)
+    ex.pelvis_e = copy_bone_simple(arm, child.name, "MCH-wgt_%s" % base_names[mt.pelvis])
     ex.pelvis = ex.pelvis_e.name
     ex.pelvis_e.translate(Vector(0.0, - spine_chain_segment_length, 0.0))
-    ex.pelvis_e.parent = mt.pelvis_e
+    ex.pelvis_e.connected = False
+    ex.pelvis_e.parent = ex.pelvis_copy_e
 
     # Copy the last bone now
     child = spine_chain[-1]
 
-    df.ribcage_e = copy_bone_simple(arm, child.name, "DEF-wgt_%s" % mt.ribcage)
+    df.ribcage_e = copy_bone_simple(arm, child.name, "DEF-wgt_%s" % base_names[mt.ribcage])
     df.ribcage = df.ribcage_e.name
     df.ribcage_e.translate(Vector(spine_chain_segment_length * 2.0, - df.ribcage_e.length / 2.0, 0.0))
+    
+    ex.ribcage_copy_e = copy_bone_simple(arm, mt.ribcage, base_names[mt.ribcage])
+    ex.ribcage_copy = ex.ribcage_copy_e.name
+    ex.ribcage_copy_e.connected = False
+    ex.ribcage_copy_e.parent = ex.ribcage_hinge_e
 
-    ex.ribcage_e = copy_bone_simple(arm, child.name, "MCH-wgt_%s" % mt.ribcage)
+    ex.ribcage_e = copy_bone_simple(arm, child.name, "MCH-wgt_%s" % base_names[mt.ribcage])
     ex.ribcage = ex.ribcage_e.name
     ex.ribcage_e.translate(Vector(0.0, - ex.ribcage_e.length / 2.0, 0.0))
-    ex.ribcage_e.parent = mt.ribcage_e
+    ex.ribcage_e.parent = ex.ribcage_copy_e
 
     spine_chain = [child.name for child in spine_chain]
 
@@ -214,21 +223,22 @@ def main(obj, bone_definition, base_names):
     # Now we need to re-parent these chains
     for i, child_name in enumerate(spine_chain_orig):
         attr = ex_chain.attr_names[i] + "_e"
-
+        ebone = getattr(ex_chain, attr)
         if i == 0:
-            getattr(ex_chain, attr).parent = mt.pelvis_e
+            ebone.connected = False
+            ebone.parent = ex.pelvis_copy_e
         else:
-            attr_parent = ex_chain.attr_names[i-1] + "_e"
-            getattr(ex_chain, attr).parent = getattr(ex_chain, attr_parent)
+            attr_parent = ex_chain.attr_names[i - 1] + "_e"
+            ebone.parent = getattr(ex_chain, attr_parent)
 
         # intentional! get the parent from the other paralelle chain member
-        getattr(rv_chain, attr).parent = getattr(ex_chain, attr)
+        getattr(rv_chain, attr).parent = ebone
 
 
     # ex_chain needs to interlace bones!
     # Note, skip the first bone
     for i in range(1, spine_chain_len): # similar to neck
-        child_name_orig = spine_chain_orig[i]
+        child_name_orig = base_names[spine_chain_orig[i]]
         spine_e = getattr(mt_chain, mt_chain.attr_names[i] + "_e")
 
         # dont store parent names, re-reference as each chain bones parent.
@@ -284,6 +294,8 @@ def main(obj, bone_definition, base_names):
     con.target_space = 'LOCAL'
 
     # df.ribcage_p / DEF-wgt_rib_cage
+    df.ribcage_p.lock_location = True, True, True
+    
     con = df.ribcage_p.constraints.new('COPY_ROTATION')
     con.target = obj
     con.subtarget = ex.ribcage
@@ -299,11 +311,9 @@ def main(obj, bone_definition, base_names):
     con = ex.ribcage_hinge_p.constraints.new('COPY_ROTATION')
     con.name = "hinge"
     con.target = obj
-    con.subtarget = mt.pelvis
+    con.subtarget = ex.pelvis_copy
 
     # add driver
-    hinge_driver_path = mt.ribcage_p.path_to_id() + '["hinge"]'
-
     fcurve = con.driver_add("influence", 0)
     driver = fcurve.driver
     tar = driver.targets.new()
@@ -311,7 +321,7 @@ def main(obj, bone_definition, base_names):
     tar.name = "var"
     tar.id_type = 'OBJECT'
     tar.id = obj
-    tar.rna_path = hinge_driver_path
+    tar.rna_path = ex.ribcage_copy_p.path_to_id() + '["hinge"]'
 
     mod = fcurve.modifiers[0]
     mod.poly_order = 1
@@ -321,7 +331,7 @@ def main(obj, bone_definition, base_names):
 
     con = ex.spine_rotate_p.constraints.new('COPY_ROTATION')
     con.target = obj
-    con.subtarget = mt.ribcage
+    con.subtarget = ex.ribcage_copy
 
 
     # ex.pelvis_p / MCH-wgt_pelvis
@@ -347,29 +357,23 @@ def main(obj, bone_definition, base_names):
     con.target = obj
     con.subtarget = getattr(mt_chain, mt_chain.attr_names[-1])
 
-    # mt.pelvis_p / rib_cage
-    con = mt.ribcage_p.constraints.new('COPY_LOCATION')
+    # ex.pelvis_copy_p / rib_cage
+    con = ex.ribcage_copy_p.constraints.new('COPY_LOCATION')
     con.target = obj
-    con.subtarget = mt.pelvis
+    con.subtarget = ex.pelvis_copy
     con.head_tail = 0.0
 
     # This stores all important ID props
-    prop = rna_idprop_ui_prop_get(mt.ribcage_p, "hinge", create=True)
-    mt.ribcage_p["hinge"] = 1.0
+    prop = rna_idprop_ui_prop_get(ex.ribcage_copy_p, "hinge", create=True)
+    ex.ribcage_copy_p["hinge"] = 1.0
     prop["soft_min"] = 0.0
     prop["soft_max"] = 1.0
 
-    prop = rna_idprop_ui_prop_get(mt.ribcage_p, "pivot_slide", create=True)
-    mt.ribcage_p["pivot_slide"] = 0.5
+    prop = rna_idprop_ui_prop_get(ex.ribcage_copy_p, "pivot_slide", create=True)
+    ex.ribcage_copy_p["pivot_slide"] = 1.0 / spine_chain_len
     prop["soft_min"] = 1.0 / spine_chain_len
     prop["soft_max"] = 1.0
 
-    for i in range(spine_chain_len - 1):
-        prop_name = "bend_%.2d" % (i + 1)
-        prop = rna_idprop_ui_prop_get(mt.ribcage_p, prop_name, create=True)
-        mt.ribcage_p[prop_name] = 1.0
-        prop["soft_min"] = 0.0
-        prop["soft_max"] = 1.0
 
     # Create a fake connected parent/child relationship with bone location constraints
     # positioned at the tip.
@@ -387,15 +391,31 @@ def main(obj, bone_definition, base_names):
 
 
     # Constrain 'inbetween' bones
-
-    # b01/max(0.001,b01+b02+b03+b04+b05)
     target_names = [("b%.2d" % (i + 1)) for i in range(spine_chain_len - 1)]
-    expression_suffix = "/max(0.001,%s)" % "+".join(target_names)
+    rib_driver_path = ex.ribcage_copy_p.path_to_id()
 
-    rib_driver_path = mt.ribcage_p.path_to_id()
+    ex.ribcage_copy_p["bend_tot"] = 0.0
+    fcurve = ex.ribcage_copy_p.driver_add('["bend_tot"]', 0)
+    driver = fcurve.driver
+    driver.type = 'SUM'
+    fcurve.modifiers.remove(0) # grr dont need a modifier
+
+    for i in range(spine_chain_len - 1):
+        tar = driver.targets.new()
+        tar.name = target_names[i]
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = rib_driver_path + ('["bend_%.2d"]' % (i + 1))
 
     for i in range(1, spine_chain_len):
 
+        # Add bend prop
+        prop_name = "bend_%.2d" % i
+        prop = rna_idprop_ui_prop_get(ex.ribcage_copy_p, prop_name, create=True)
+        ex.ribcage_copy_p[prop_name] = 1.0
+        prop["soft_min"] = 0.0
+        prop["soft_max"] = 1.0
+
         spine_p = getattr(ex_chain, ex_chain.attr_names[i] + "_p")
         spine_p_parent = spine_p.parent # interlaced bone
 
@@ -410,16 +430,24 @@ def main(obj, bone_definition, base_names):
         fcurve = con.driver_add("influence", 0)
         driver = fcurve.driver
         driver.type = 'SCRIPTED'
-        # b01/max(0.001,b01+b02+b03+b04+b05)
-        driver.expression = target_names[i - 1] + expression_suffix
+        driver.expression = "bend/bend_tot"
+
         fcurve.modifiers.remove(0) # grr dont need a modifier
 
-        for j in range(spine_chain_len - 1):
-            tar = driver.targets.new()
-            tar.name = target_names[j]
-            tar.id_type = 'OBJECT'
-            tar.id = obj
-            tar.rna_path = rib_driver_path + ('["bend_%.2d"]' % (j + 1))
+
+        # add target
+        tar = driver.targets.new()
+        tar.name = "bend_tot"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = rib_driver_path + ('["bend_tot"]')
+
+        tar = driver.targets.new()
+        tar.name = "bend"
+        tar.id_type = 'OBJECT'
+        tar.id = obj
+        tar.rna_path = rib_driver_path + ('["%s"]' % prop_name)
+
 
 
     # original bone drivers
index ca452da7f73dc33493b83d710564e968133af146..dd71da74d35804826bb4dc47fd1debc4d5f0f9a8 100644 (file)
@@ -217,7 +217,7 @@ class WM_OT_properties_edit(bpy.types.Operator):
 
         wm.invoke_props_popup(self, event)
         return ('RUNNING_MODAL',)
-        
+
 
 
 class WM_OT_properties_add(bpy.types.Operator):
diff --git a/release/scripts/ui/space_dopesheet.py b/release/scripts/ui/space_dopesheet.py
new file mode 100644 (file)
index 0000000..a669140
--- /dev/null
@@ -0,0 +1,191 @@
+# ##### 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 LICENSE BLOCK #####
+
+import bpy
+
+
+class DOPESHEET_HT_header(bpy.types.Header):
+    bl_space_type = 'DOPESHEET_EDITOR'
+
+    def draw(self, context):
+        layout = self.layout
+
+        st = context.space_data
+
+        row = layout.row(align=True)
+        row.template_header()
+
+        if context.area.show_menus:
+            sub = row.row(align=True)
+
+            sub.menu("DOPESHEET_MT_view")
+            sub.menu("DOPESHEET_MT_select")
+
+            if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action != None):
+                sub.menu("DOPESHEET_MT_channel")
+            elif st.mode == 'GPENCIL':
+                # gpencil Channel menu
+                pass
+
+            if st.mode != 'GPENCIL':
+                sub.menu("DOPESHEET_MT_key")
+
+        layout.prop(st, "mode", text="")
+        layout.prop(st.dopesheet, "display_summary", text="Summary")
+
+        if st.mode == 'DOPESHEET':
+            layout.template_dopesheet_filter(st.dopesheet)
+        elif st.mode == 'ACTION':
+            layout.template_ID(st, "action", new="action.new")
+
+        if st.mode != 'GPENCIL':
+            layout.prop(st, "autosnap", text="")
+
+        row = layout.row(align=True)
+        row.operator("action.copy", text="", icon='ICON_COPYDOWN')
+        row.operator("action.paste", text="", icon='ICON_PASTEDOWN')
+
+
+class DOPESHEET_MT_view(bpy.types.Menu):
+    bl_label = "View"
+
+    def draw(self, context):
+        layout = self.layout
+
+        st = context.space_data
+
+        layout.column()
+
+        layout.prop(st, "show_cframe_indicator")
+        layout.prop(st, "show_sliders")
+        layout.prop(st, "automerge_keyframes")
+
+        if st.show_seconds:
+            layout.operator("anim.time_toggle", text="Show Frames")
+        else:
+            layout.operator("anim.time_toggle", text="Show Seconds")
+
+        layout.separator()
+        layout.operator("anim.previewrange_set")
+        layout.operator("anim.previewrange_clear")
+        layout.operator("action.previewrange_set")
+
+        layout.separator()
+        layout.operator("action.frame_jump")
+        layout.operator("action.view_all")
+
+        layout.separator()
+        layout.operator("screen.area_dupli")
+        layout.operator("screen.screen_full_area")
+
+
+class DOPESHEET_MT_select(bpy.types.Menu):
+    bl_label = "Select"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
+        layout.operator("action.select_all_toggle")
+        layout.operator("action.select_all_toggle", text="Invert Selection").invert = True
+
+        layout.separator()
+        layout.operator("action.select_border")
+        layout.operator("action.select_border", text="Border Axis Range").axis_range = True
+
+        layout.separator()
+        layout.operator("action.select_column", text="Columns on Selected Keys").mode = 'KEYS'
+        layout.operator("action.select_column", text="Column on Current Frame").mode = 'CFRA'
+
+        layout.operator("action.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN'
+        layout.operator("action.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN'
+
+
+class DOPESHEET_MT_channel(bpy.types.Menu):
+    bl_label = "Channel"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        layout.operator("anim.channels_setting_toggle")
+        layout.operator("anim.channels_setting_enable")
+        layout.operator("anim.channels_setting_disable")
+
+        layout.separator()
+        layout.operator("anim.channels_editable_toggle")
+
+        layout.separator()
+        layout.operator("anim.channels_expand")
+        layout.operator("anim.channels_collapse")
+
+
+class DOPESHEET_MT_key(bpy.types.Menu):
+    bl_label = "Key"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        layout.menu("DOPESHEET_MT_key_transform", text="Transform")
+
+        layout.operator_menu_enum("action.snap", property="type", text="Snap")
+        layout.operator_menu_enum("action.mirror", property="type", text="Mirror")
+
+        layout.separator()
+        # Inconsistent naming? act/action
+        layout.operator("act.keyframe_insert")
+
+        layout.separator()
+        layout.operator("action.duplicate")
+        layout.operator("action.delete")
+
+        layout.separator()
+        layout.operator_menu_enum("action.keyframe_type", property="type", text="Keyframe Type")
+        layout.operator_menu_enum("action.handle_type", property="type", text="Handle Type")
+        layout.operator_menu_enum("action.interpolation_type", property="type", text="Interpolation Mode")
+        layout.operator_menu_enum("action.extrapolation_type", property="type", text="Extrapolation Mode")
+
+        layout.separator()
+        layout.operator("action.clean")
+        layout.operator("action.sample")
+
+        layout.separator()
+        layout.operator("action.copy")
+        layout.operator("action.paste")
+
+
+class DOPESHEET_MT_key_transform(bpy.types.Menu):
+    bl_label = "Transform"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        layout.operator("tfm.translate", text="Grab/Move")
+        layout.operator("tfm.transform", text="Extend").mode = 'TIME_EXTEND'
+        layout.operator("tfm.resize", text="Scale")
+
+
+bpy.types.register(DOPESHEET_HT_header) # header/menu classes
+bpy.types.register(DOPESHEET_MT_view)
+bpy.types.register(DOPESHEET_MT_select)
+bpy.types.register(DOPESHEET_MT_channel)
+bpy.types.register(DOPESHEET_MT_key)
+bpy.types.register(DOPESHEET_MT_key_transform)
index 38f6b526e9aef3782c22076e8a9deedb5ee30c3a..c24bf46014758dc1c825fa5712862ff4d37e85ec 100644 (file)
@@ -16,7 +16,6 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 
-# <pep8 compliant>
 import bpy
 
 
@@ -51,9 +50,10 @@ class GRAPH_HT_header(bpy.types.Header):
         row.operator("graph.paste", text="", icon='ICON_PASTEDOWN')
 
         row = layout.row(align=True)
-        # these likely need new icons
-        row.operator("graph.ghost_curves_create", text="", icon='ICON_GHOST_ENABLED')
-        row.operator("graph.ghost_curves_clear", text="", icon='ICON_GHOST_DISABLED')
+        if st.has_ghost_curves:
+            row.operator("graph.ghost_curves_clear", text="", icon='ICON_GHOST_DISABLED')
+        else:
+            row.operator("graph.ghost_curves_create", text="", icon='ICON_GHOST_ENABLED')
 
 
 class GRAPH_MT_view(bpy.types.Menu):
@@ -67,7 +67,7 @@ class GRAPH_MT_view(bpy.types.Menu):
         layout.column()
 
         layout.separator()
-        layout.operator("graph.properties")
+        layout.operator("graph.properties", icon="ICON_MENU_PANEL")
 
         layout.prop(st, "show_cframe_indicator")
         layout.prop(st, "show_cursor")
@@ -75,7 +75,10 @@ class GRAPH_MT_view(bpy.types.Menu):
         layout.prop(st, "automerge_keyframes")
 
         layout.separator()
-        layout.operator("graph.handles_view_toggle")
+        if st.show_handles:
+            layout.operator("graph.handles_view_toggle", icon="ICON_CHECKBOX_HLT", text="Show All Handles")
+        else:
+            layout.operator("graph.handles_view_toggle", icon="ICON_CHECKBOX_DEHLT", text="Show All Handles")
         layout.prop(st, "only_selected_curves_handles")
         layout.prop(st, "only_selected_keyframe_handles")
         layout.operator("anim.time_toggle")
index ad94bdd0beba4485740ece040102ae21ed143500..ece06e1751a9264c362f92cea3ec3822ac1cfe0c 100644 (file)
@@ -29,6 +29,7 @@ class INFO_HT_header(bpy.types.Header):
     def draw(self, context):
         layout = self.layout
 
+        window = context.window
         scene = context.scene
         rd = scene.render_data
 
@@ -45,7 +46,12 @@ class INFO_HT_header(bpy.types.Header):
                 sub.menu("INFO_MT_render")
             sub.menu("INFO_MT_help")
 
-        layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
+        if window.screen.fullscreen:
+            layout.operator("screen.back_to_previous", icon="ICON_SCREEN_BACK", text="Back to Previous")
+            layout.separator()
+        else:
+            layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
+        
         layout.template_ID(context.screen, "scene", new="scene.new", unlink="scene.delete")
 
         layout.separator()
@@ -79,7 +85,7 @@ class INFO_MT_file(bpy.types.Menu):
 
         layout.separator()
 
-        layout.operator_context = 'EXEC_AREA'
+        layout.operator_context = 'INVOKE_AREA'
         layout.operator("wm.save_mainfile", text="Save", icon='ICON_FILE_TICK')
         layout.operator_context = 'INVOKE_AREA'
         layout.operator("wm.save_as_mainfile", text="Save As...")
diff --git a/release/scripts/ui/space_nla.py b/release/scripts/ui/space_nla.py
new file mode 100644 (file)
index 0000000..d17e5e0
--- /dev/null
@@ -0,0 +1,166 @@
+# ##### 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 LICENSE BLOCK #####
+
+import bpy
+
+
+class NLA_HT_header(bpy.types.Header):
+    bl_space_type = 'NLA_EDITOR'
+
+    def draw(self, context):
+        layout = self.layout
+
+        st = context.space_data
+
+        row = layout.row(align=True)
+        row.template_header()
+
+        if context.area.show_menus:
+            sub = row.row(align=True)
+
+            sub.menu("NLA_MT_view")
+            sub.menu("NLA_MT_select")
+            sub.menu("NLA_MT_edit")
+            sub.menu("NLA_MT_add")
+
+        layout.template_dopesheet_filter(st.dopesheet)
+
+        layout.prop(st, "autosnap", text="")
+
+
+class NLA_MT_view(bpy.types.Menu):
+    bl_label = "View"
+
+    def draw(self, context):
+        layout = self.layout
+
+        st = context.space_data
+
+        layout.column()
+
+        layout.operator("nla.properties", icon="ICON_MENU_PANEL")
+
+        layout.separator()
+        layout.prop(st, "show_cframe_indicator")
+
+        if st.show_seconds:
+            layout.operator("anim.time_toggle", text="Show Frames")
+        else:
+            layout.operator("anim.time_toggle", text="Show Seconds")
+
+        layout.prop(st, "show_strip_curves")
+
+        layout.separator()
+        layout.operator("anim.previewrange_set")
+        layout.operator("anim.previewrange_clear")
+
+        layout.separator()
+        layout.operator("screen.area_dupli")
+        layout.operator("screen.screen_full_area")
+
+
+class NLA_MT_select(bpy.types.Menu):
+    bl_label = "Select"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
+        layout.operator("nla.select_all_toggle")
+        layout.operator("nla.select_all_toggle", text="Invert Selection").invert = True
+
+        layout.separator()
+        layout.operator("nla.select_border")
+        layout.operator("nla.select_border", text="Border Axis Range").axis_range = True
+
+
+class NLA_MT_edit(bpy.types.Menu):
+    bl_label = "Edit"
+
+    def draw(self, context):
+        layout = self.layout
+
+        scene = context.scene
+
+        layout.column()
+        layout.menu("NLA_MT_edit_transform", text="Transform")
+
+        layout.operator_menu_enum("nla.snap", property="type", text="Snap")
+
+        layout.separator()
+        layout.operator("nla.duplicate")
+        layout.operator("nla.split")
+        layout.operator("nla.delete")
+
+        layout.separator()
+        layout.operator("nla.mute_toggle")
+
+        layout.separator()
+        layout.operator("nla.apply_scale")
+        layout.operator("nla.clear_scale")
+
+        layout.separator()
+        layout.operator("nla.move_up")
+        layout.operator("nla.move_down")
+
+        layout.separator()
+        # TODO: names of these tools for 'tweakmode' need changing?
+        if scene.nla_tweakmode_on:
+            layout.operator("nla.tweakmode_exit", text="Stop Tweaking Strip Actions")
+        else:
+            layout.operator("nla.tweakmode_enter", text="Start Tweaking Strip Actions")
+
+
+class NLA_MT_add(bpy.types.Menu):
+    bl_label = "Add"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        layout.operator("nla.actionclip_add")
+        layout.operator("nla.transition_add")
+
+        layout.separator()
+        layout.operator("nla.meta_add")
+        layout.operator("nla.meta_remove")
+
+        layout.separator()
+        layout.operator("nla.tracks_add")
+        layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True
+
+
+class NLA_MT_edit_transform(bpy.types.Menu):
+    bl_label = "Transform"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.column()
+        layout.operator("tfm.translate", text="Grab/Move")
+        layout.operator("tfm.transform", text="Extend").mode = 'TIME_EXTEND'
+        layout.operator("tfm.resize", text="Scale")
+
+
+bpy.types.register(NLA_HT_header) # header/menu classes
+bpy.types.register(NLA_MT_view)
+bpy.types.register(NLA_MT_select)
+bpy.types.register(NLA_MT_edit)
+bpy.types.register(NLA_MT_add)
+bpy.types.register(NLA_MT_edit_transform)
index b2bd017262fd0b7be4a8cb348cfa2d0484973476..026161e23c64fa7fc3d9fd4c2c5ef84947e204a2 100644 (file)
@@ -178,6 +178,7 @@ class SEQUENCER_MT_add_effect(bpy.types.Menu):
         layout.operator("sequencer.effect_strip_add", text="Subtract").type = 'SUBTRACT'
         layout.operator("sequencer.effect_strip_add", text="Alpha Over").type = 'ALPHA_OVER'
         layout.operator("sequencer.effect_strip_add", text="Alpha Under").type = 'ALPHA_UNDER'
+        layout.operator("sequencer.effect_strip_add", text="Cross").type = 'CROSS'
         layout.operator("sequencer.effect_strip_add", text="Gamma Cross").type = 'GAMMA_CROSS'
         layout.operator("sequencer.effect_strip_add", text="Multiply").type = 'MULTIPLY'
         layout.operator("sequencer.effect_strip_add", text="Over Drop").type = 'OVER_DROP'
@@ -222,7 +223,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
                 layout.operator("sequencer.effect_reassign_inputs")
             elif stype == 'IMAGE':
                 layout.separator()
-                layout.operator("sequencer.image_change")
+                layout.operator("sequencer.image_change")
                 layout.operator("sequencer.rendersize")
             elif stype == 'SCENE':
                 layout.separator()
@@ -338,7 +339,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
             return False
 
         return strip.type in ('ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
-                              'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
+                              'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
                               'PLUGIN',
                               'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
 
index 5a8dbf9ee80cd7fc85f9e9bd9985f883edf8e1f6..bf232116bb68a88e76e099533d1c6318d35a69e0 100644 (file)
@@ -37,13 +37,6 @@ class USERPREF_HT_header(bpy.types.Header):
             layout.operator("wm.keyconfig_export", "Export Key Configuration...").path = "keymap.py"
 
 
-class USERPREF_MT_view(bpy.types.Menu):
-    bl_label = "View"
-
-    def draw(self, context):
-        pass # layout = self.layout
-
-
 class USERPREF_PT_tabs(bpy.types.Panel):
     bl_label = ""
     bl_space_type = 'USER_PREFERENCES'
@@ -76,72 +69,75 @@ class USERPREF_PT_interface(bpy.types.Panel):
 
         split = layout.split()
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
-
-        sub1 = sub.column()
-        sub1.label(text="Display:")
-        sub1.prop(view, "tooltips")
-        sub1.prop(view, "display_object_info", text="Object Info")
-        sub1.prop(view, "use_large_cursors")
-        sub1.prop(view, "show_view_name", text="View Name")
-        sub1.prop(view, "show_playback_fps", text="Playback FPS")
-        sub1.prop(view, "global_scene")
-        sub1.prop(view, "pin_floating_panels")
-        sub1.prop(view, "object_origin_size")
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-        sub1.prop(view, "show_mini_axis", text="Display Mini Axis")
-        sub2 = sub1.column()
-        sub2.enabled = view.show_mini_axis
-        sub2.prop(view, "mini_axis_size", text="Size")
-        sub2.prop(view, "mini_axis_brightness", text="Brightness")
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
+        col = colsplit.column()
+        col.label(text="Display:")
+        col.prop(view, "tooltips")
+        col.prop(view, "display_object_info", text="Object Info")
+        col.prop(view, "use_large_cursors")
+        col.prop(view, "show_view_name", text="View Name")
+        col.prop(view, "show_playback_fps", text="Playback FPS")
+        col.prop(view, "global_scene")
+        col.prop(view, "pin_floating_panels")
+        col.prop(view, "object_origin_size")
 
-        sub1 = sub.column()
-        sub1.label(text="View Manipulation:")
-        sub1.prop(view, "auto_depth")
-        sub1.prop(view, "global_pivot")
-        sub1.prop(view, "zoom_to_mouse")
-        sub1.prop(view, "rotate_around_selection")
-        sub1.separator()
+        col.separator()
+        col.separator()
+        col.separator()
 
+        col.prop(view, "show_mini_axis", text="Display Mini Axis")
+        sub = col.column()
+        sub.enabled = view.show_mini_axis
+        sub.prop(view, "mini_axis_size", text="Size")
+        sub.prop(view, "mini_axis_brightness", text="Brightness")
 
-        sub1.prop(view, "auto_perspective")
-        sub1.prop(view, "smooth_view")
-        sub1.prop(view, "rotation_angle")
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
-        sub1 = sub.column()
+        col = colsplit.column()
+        col.label(text="View Manipulation:")
+        col.prop(view, "auto_depth")
+        col.prop(view, "global_pivot")
+        col.prop(view, "zoom_to_mouse")
+        col.prop(view, "rotate_around_selection")
 
-#Toolbox doesn't exist yet
-#       sub1.label(text="Toolbox:")
-#       sub1.prop(view, "use_column_layout")
-#       sub1.label(text="Open Toolbox Delay:")
-#       sub1.prop(view, "open_left_mouse_delay", text="Hold LMB")
-#       sub1.prop(view, "open_right_mouse_delay", text="Hold RMB")
+        col.separator()
 
-        #manipulator
-        sub1.prop(view, "use_manipulator")
-        sub2 = sub1.column()
-        sub2.enabled = view.use_manipulator
-        sub2.prop(view, "manipulator_size", text="Size")
-        sub2.prop(view, "manipulator_handle_size", text="Handle Size")
-        sub2.prop(view, "manipulator_hotspot", text="Hotspot")
+        col.prop(view, "auto_perspective")
+        col.prop(view, "smooth_view")
+        col.prop(view, "rotation_angle")
+
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
+        
+        col = colsplit.column()
+        
+        #Toolbox doesn't exist yet
+        #col.label(text="Toolbox:")
+        #col.prop(view, "use_column_layout")
+        #col.label(text="Open Toolbox Delay:")
+        #col.prop(view, "open_left_mouse_delay", text="Hold LMB")
+        #col.prop(view, "open_right_mouse_delay", text="Hold RMB")
+
+        #Manipulator
+        col.prop(view, "use_manipulator")
+        sub = col.column()
+        sub.enabled = view.use_manipulator
+        sub.prop(view, "manipulator_size", text="Size")
+        sub.prop(view, "manipulator_handle_size", text="Handle Size")
+        sub.prop(view, "manipulator_hotspot", text="Hotspot")
 
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
+        col.separator()
+        col.separator()
+        col.separator()
 
-        sub1.label(text="Menus:")
-        sub1.prop(view, "open_mouse_over")
-        sub1.label(text="Menu Open Delay:")
-        sub1.prop(view, "open_toplevel_delay", text="Top Level")
-        sub1.prop(view, "open_sublevel_delay", text="Sub Level")
+        col.label(text="Menus:")
+        col.prop(view, "open_mouse_over")
+        col.label(text="Menu Open Delay:")
+        col.prop(view, "open_toplevel_delay", text="Top Level")
+        col.prop(view, "open_sublevel_delay", text="Sub Level")
 
 
 class USERPREF_PT_edit(bpy.types.Panel):
@@ -162,91 +158,100 @@ class USERPREF_PT_edit(bpy.types.Panel):
 
         split = layout.split()
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        sub1 = sub.column()
-        sub1.label(text="Link Materials To:")
-        sub1.row().prop(edit, "material_link", expand=True)
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-        sub1.label(text="New Objects:")
-        sub1.prop(edit, "enter_edit_mode")
-        sub1.label(text="Align To:")
-        sub1.row().prop(edit, "object_align", expand=True)
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-
-        sub1.label(text="Undo:")
-        sub1.prop(edit, "global_undo")
-        sub1.prop(edit, "undo_steps", text="Steps")
-        sub1.prop(edit, "undo_memory_limit", text="Memory Limit")
+        col = colsplit.column()
+        col.label(text="Link Materials To:")
+        col.row().prop(edit, "material_link", expand=True)
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
+        col.separator()
+        col.separator()
+        col.separator()
 
-        sub1 = sub.column()
-        sub1.label(text="Snap:")
-        sub1.prop(edit, "snap_translate", text="Translate")
-        sub1.prop(edit, "snap_rotate", text="Rotate")
-        sub1.prop(edit, "snap_scale", text="Scale")
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-        sub1.label(text="Grease Pencil:")
-        sub1.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
-        sub1.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
-        # sub1.prop(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
-        sub1.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
-        sub1.prop(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
+        col.label(text="New Objects:")
+        col.prop(edit, "enter_edit_mode")
+        col.label(text="Align To:")
+        col.row().prop(edit, "object_align", expand=True)
+        
+        col.separator()
+        col.separator()
+        col.separator()
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
+        col.label(text="Undo:")
+        col.prop(edit, "global_undo")
+        col.prop(edit, "undo_steps", text="Steps")
+        col.prop(edit, "undo_memory_limit", text="Memory Limit")
 
-        sub1 = sub.column()
-        sub1.label(text="Keyframing:")
-        sub1.prop(edit, "use_visual_keying")
-        sub1.prop(edit, "keyframe_insert_needed", text="Only Insert Needed")
-        sub1.separator()
-        sub1.label(text="New F-Curve Defaults:")
-        sub1.prop(edit, "new_interpolation_type", text="Interpolation")
-        sub1.separator()
-        sub1.prop(edit, "auto_keying_enable", text="Auto Keyframing:")
-        sub2 = sub1.column()
-        sub2.active = edit.auto_keying_enable
-        sub2.prop(edit, "auto_keyframe_insert_keyingset", text="Only Insert for Keying Set")
-        sub2.prop(edit, "auto_keyframe_insert_available", text="Only Insert Available")
-
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-
-        sub1.label(text="Transform:")
-        sub1.prop(edit, "drag_immediately")
-
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        col = split.column()
-        sub = col.split(percentage=0.85)
+        col = colsplit.column()
+        col.label(text="Snap:")
+        col.prop(edit, "snap_translate", text="Translate")
+        col.prop(edit, "snap_rotate", text="Rotate")
+        col.prop(edit, "snap_scale", text="Scale")
+        col.separator()
+        col.separator()
+        col.separator()
+        col.label(text="Grease Pencil:")
+        col.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
+        col.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
+        #col.prop(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
+        col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
+        col.prop(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
 
-        sub1 = sub.column()
-        sub1.label(text="Duplicate Data:")
-        sub1.prop(edit, "duplicate_mesh", text="Mesh")
-        sub1.prop(edit, "duplicate_surface", text="Surface")
-        sub1.prop(edit, "duplicate_curve", text="Curve")
-        sub1.prop(edit, "duplicate_text", text="Text")
-        sub1.prop(edit, "duplicate_metaball", text="Metaball")
-        sub1.prop(edit, "duplicate_armature", text="Armature")
-        sub1.prop(edit, "duplicate_lamp", text="Lamp")
-        sub1.prop(edit, "duplicate_material", text="Material")
-        sub1.prop(edit, "duplicate_texture", text="Texture")
-        sub1.prop(edit, "duplicate_fcurve", text="F-Curve")
-        sub1.prop(edit, "duplicate_action", text="Action")
-        sub1.prop(edit, "duplicate_particle", text="Particle")
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
+
+        col = colsplit.column()
+        col.label(text="Keyframing:")
+        col.prop(edit, "use_visual_keying")
+        col.prop(edit, "keyframe_insert_needed", text="Only Insert Needed")
+
+        col.separator()
+
+        col.label(text="New F-Curve Defaults:")
+        col.prop(edit, "new_interpolation_type", text="Interpolation")
+
+        col.separator()
+
+        col.prop(edit, "auto_keying_enable", text="Auto Keyframing:")
+
+        sub = col.column()
+
+        sub.active = edit.auto_keying_enable
+        sub.prop(edit, "auto_keyframe_insert_keyingset", text="Only Insert for Keying Set")
+        sub.prop(edit, "auto_keyframe_insert_available", text="Only Insert Available")
+
+        col.separator()
+        col.separator()
+        col.separator()
+
+        col.label(text="Transform:")
+        col.prop(edit, "drag_immediately")
+
+        col.separator()
+        col.separator()
+        col.separator()
+
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
+
+        col = colsplit.column()
+        col.label(text="Duplicate Data:")
+        col.prop(edit, "duplicate_mesh", text="Mesh")
+        col.prop(edit, "duplicate_surface", text="Surface")
+        col.prop(edit, "duplicate_curve", text="Curve")
+        col.prop(edit, "duplicate_text", text="Text")
+        col.prop(edit, "duplicate_metaball", text="Metaball")
+        col.prop(edit, "duplicate_armature", text="Armature")
+        col.prop(edit, "duplicate_lamp", text="Lamp")
+        col.prop(edit, "duplicate_material", text="Material")
+        col.prop(edit, "duplicate_texture", text="Texture")
+        col.prop(edit, "duplicate_fcurve", text="F-Curve")
+        col.prop(edit, "duplicate_action", text="Action")
+        col.prop(edit, "duplicate_particle", text="Particle")
 
 
 class USERPREF_PT_system(bpy.types.Panel):
@@ -270,106 +275,109 @@ class USERPREF_PT_system(bpy.types.Panel):
 
         split = layout.split()
 
-        col = split.column()
-        sub = col.split(percentage=0.9)
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        sub1 = sub.column()
-        sub1.label(text="General:")
-        sub1.prop(system, "dpi")
-        sub1.prop(system, "frame_server_port")
-        sub1.prop(system, "scrollback", text="Console Scrollback")
-        sub1.prop(system, "auto_run_python_scripts")
-
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-
-        sub1.label(text="Sound:")
-        sub1.row().prop(system, "audio_device", expand=True)
-        sub2 = sub1.column()
-        sub2.active = system.audio_device != 'NONE'
-        sub2.prop(system, "enable_all_codecs")
-        sub2.prop(system, "game_sound")
-        sub2.prop(system, "audio_channels", text="Channels")
-        sub2.prop(system, "audio_mixing_buffer", text="Mixing Buffer")
-        sub2.prop(system, "audio_sample_rate", text="Sample Rate")
-        sub2.prop(system, "audio_sample_format", text="Sample Format")
+        col = colsplit.column()
+        col.label(text="General:")
+        col.prop(system, "dpi")
+        col.prop(system, "frame_server_port")
+        col.prop(system, "scrollback", text="Console Scrollback")
+        col.prop(system, "auto_run_python_scripts")
 
-        col = split.column()
-        sub = col.split(percentage=0.9)
-
-        sub1 = sub .column()
-        sub1.label(text="Weight Colors:")
-        sub1.prop(system, "use_weight_color_range", text="Use Custom Range")
-        sub2 = sub1.column()
-        sub2.active = system.use_weight_color_range
-        sub2.template_color_ramp(system, "weight_color_range", expand=True)
-
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
+        col.separator()
+        col.separator()
+        col.separator()
 
-        sub1.prop(system, "language")
-        sub1.label(text="Translate:")
-        sub1.prop(system, "translate_tooltips", text="Tooltips")
-        sub1.prop(system, "translate_buttons", text="Labels")
-        sub1.prop(system, "translate_toolbox", text="Toolbox")
+        col.label(text="Sound:")
+        col.row().prop(system, "audio_device", expand=True)
+        sub = col.column()
+        sub.active = system.audio_device != 'NONE'
+        #sub.prop(system, "enable_all_codecs")
+        sub.prop(system, "game_sound")
+        sub.prop(system, "audio_channels", text="Channels")
+        sub.prop(system, "audio_mixing_buffer", text="Mixing Buffer")
+        sub.prop(system, "audio_sample_rate", text="Sample Rate")
+        sub.prop(system, "audio_sample_format", text="Sample Format")
+        
+        col.separator()
+        col.separator()
+        col.separator()
+        
+        col.label(text="Weight Colors:")
+        col.prop(system, "use_weight_color_range", text="Use Custom Range")
+        sub = col.column()
+        sub.active = system.use_weight_color_range
+        sub.template_color_ramp(system, "weight_color_range", expand=True)
 
-        sub1.separator()
+        #column = split.column()
+        #colsplit = column.split(percentage=0.85)
 
-        sub1.prop(system, "use_textured_fonts")
+        # No translation in 2.5 yet
+        #col.prop(system, "language")
+        #col.label(text="Translate:")
+        #col.prop(system, "translate_tooltips", text="Tooltips")
+        #col.prop(system, "translate_buttons", text="Labels")
+        #col.prop(system, "translate_toolbox", text="Toolbox")
 
-        col = split.column()
-        sub = col.split(percentage=0.9)
+        #col.separator()
 
-        sub1 = sub.column()
+        #col.prop(system, "use_textured_fonts")
 
-        sub1.label(text="Solid OpenGL lights:")
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
 
-        sub2 = sub1.split()
+        col1 = colsplit.column()
+        col1.label(text="Solid OpenGL lights:")
+        
+        col = col1.split()
 
-        col = sub2.column()
-        col.prop(lamp0, "enabled")
         sub = col.column()
-        sub.active = lamp0.enabled
-        sub.prop(lamp0, "diffuse_color")
-        sub.prop(lamp0, "specular_color")
-        sub.prop(lamp0, "direction")
+        sub.prop(lamp0, "enabled")
+        subsub = sub.column()
+        subsub.active = lamp0.enabled
+        subsub.prop(lamp0, "diffuse_color")
+        subsub.prop(lamp0, "specular_color")
+        subsub.prop(lamp0, "direction")
 
-        col = sub2.column()
-        col.prop(lamp1, "enabled")
         sub = col.column()
-        sub.active = lamp1.enabled
-        sub.prop(lamp1, "diffuse_color")
-        sub.prop(lamp1, "specular_color")
-        sub.prop(lamp1, "direction")
+        sub.prop(lamp1, "enabled")
+        subsub = sub.column()
+        subsub.active = lamp1.enabled
+        subsub.prop(lamp1, "diffuse_color")
+        subsub.prop(lamp1, "specular_color")
+        subsub.prop(lamp1, "direction")
 
-        col = sub2.column()
-        col.prop(lamp2, "enabled")
         sub = col.column()
-        sub.active = lamp2.enabled
-        sub.prop(lamp2, "diffuse_color")
-        sub.prop(lamp2, "specular_color")
-        sub.prop(lamp2, "direction")
-
-        sub1.label(text="OpenGL:")
-        sub1.prop(system, "clip_alpha", slider=True)
-        sub1.prop(system, "use_mipmaps")
-        sub1.prop(system, "use_vbos")
-        sub1.label(text="Window Draw Method:")
-        sub1.row().prop(system, "window_draw_method", expand=True)
-        sub1.label(text="Textures:")
-        sub1.prop(system, "gl_texture_limit", text="Limit Size")
-        sub1.prop(system, "texture_time_out", text="Time Out")
-        sub1.prop(system, "texture_collection_rate", text="Collection Rate")
-
-        sub1.separator()
-        sub1.separator()
-        sub1.separator()
-
-        sub1.label(text="Sequencer:")
-        sub1.prop(system, "prefetch_frames")
-        sub1.prop(system, "memory_cache_limit")
+        sub.prop(lamp2, "enabled")
+        subsub = sub.column()
+        subsub.active = lamp2.enabled
+        subsub.prop(lamp2, "diffuse_color")
+        subsub.prop(lamp2, "specular_color")
+        subsub.prop(lamp2, "direction")
+        
+        column = split.column()
+        colsplit = column.split(percentage=0.85)
+
+        col = colsplit.column()
+        col.label(text="OpenGL:")
+        col.prop(system, "clip_alpha", slider=True)
+        col.prop(system, "use_mipmaps")
+        col.prop(system, "use_vbos")
+        col.label(text="Window Draw Method:")
+        col.row().prop(system, "window_draw_method", expand=True)
+        col.label(text="Textures:")
+        col.prop(system, "gl_texture_limit", text="Limit Size")
+        col.prop(system, "texture_time_out", text="Time Out")
+        col.prop(system, "texture_collection_rate", text="Collection Rate")
+
+        col.separator()
+        col.separator()
+        col.separator()
+
+        col.label(text="Sequencer:")
+        col.prop(system, "prefetch_frames")
+        col.prop(system, "memory_cache_limit")
 
 
 class USERPREF_PT_theme(bpy.types.Panel):
@@ -380,7 +388,6 @@ class USERPREF_PT_theme(bpy.types.Panel):
 
     def poll(self, context):
         userpref = context.user_preferences
-
         return (userpref.active_section == 'THEMES')
 
     def draw(self, context):
@@ -388,7 +395,6 @@ class USERPREF_PT_theme(bpy.types.Panel):
 
         theme = context.user_preferences.themes[0]
 
-
         split = layout.split(percentage=0.33)
         split.prop(theme, "active_theme", text="")
 
@@ -413,7 +419,6 @@ class USERPREF_PT_theme(bpy.types.Panel):
             col.prop(v3d, "editmesh_active", slider=True)
 
             col = split.column()
-
             col.prop(v3d, "object_selected")
             col.prop(v3d, "object_active")
             col.prop(v3d, "object_grouped")
@@ -426,327 +431,326 @@ class USERPREF_PT_theme(bpy.types.Panel):
             col.prop(v3d, "normal")
             col.prop(v3d, "bone_solid")
             col.prop(v3d, "bone_pose")
+            #col.prop(v3d, "edge") Doesn't seem to work
 
-#           col.prop(v3d, "edge") Doesn't seem to work
         elif theme.active_theme == 'USER_INTERFACE':
-
             ui = theme.user_interface.wcol_regular
-
             layout.label(text="Regular:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
+            
             layout.separator()
 
             ui = theme.user_interface.wcol_tool
             layout.label(text="Tool:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_radio
             layout.label(text="Radio Buttons:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_text
             layout.label(text="Text:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_option
             layout.label(text="Option:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_toggle
             layout.label(text="Toggle:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_num
             layout.label(text="Number Field:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_numslider
             layout.label(text="Value Slider:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_box
             layout.label(text="Box:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_menu
             layout.label(text="Menu:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_pulldown
             layout.label(text="Pulldown:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_menu_back
             layout.label(text="Menu Back:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_menu_item
             layout.label(text="Menu Item:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_scroll
             layout.label(text="Scroll Bar:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_list_item
             layout.label(text="List Item:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "outline")
-            sub1.prop(ui, "item", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "inner", slider=True)
-            sub1.prop(ui, "inner_sel", slider=True)
-            sub1 = sub.column()
-            sub1.prop(ui, "text")
-            sub1.prop(ui, "text_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "shaded")
-            sub2 = sub1.column(align=True)
-            sub2.active = ui.shaded
-            sub2.prop(ui, "shadetop")
-            sub2.prop(ui, "shadedown")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "outline")
+            sub.prop(ui, "item", slider=True)
+            sub = row.column()
+            sub.prop(ui, "inner", slider=True)
+            sub.prop(ui, "inner_sel", slider=True)
+            sub = row.column()
+            sub.prop(ui, "text")
+            sub.prop(ui, "text_sel")
+            sub = row.column()
+            sub.prop(ui, "shaded")
+            subsub = sub.column(align=True)
+            subsub.active = ui.shaded
+            subsub.prop(ui, "shadetop")
+            subsub.prop(ui, "shadedown")
 
             ui = theme.user_interface.wcol_state
             layout.label(text="State:")
 
-            sub = layout.row()
-            sub1 = sub.column()
-            sub1.prop(ui, "inner_anim")
-            sub1.prop(ui, "inner_anim_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "inner_driven")
-            sub1.prop(ui, "inner_driven_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "inner_key")
-            sub1.prop(ui, "inner_key_sel")
-            sub1 = sub.column()
-            sub1.prop(ui, "blend")
+            row = layout.row()
+            sub = row.column()
+            sub.prop(ui, "inner_anim")
+            sub.prop(ui, "inner_anim_sel")
+            sub = row.column()
+            sub.prop(ui, "inner_driven")
+            sub.prop(ui, "inner_driven_sel")
+            sub = row.column()
+            sub.prop(ui, "inner_key")
+            sub.prop(ui, "inner_key_sel")
+            sub = row.column()
+            sub.prop(ui, "blend")
 
             ui = theme.user_interface
             layout.separator()
@@ -966,7 +970,6 @@ class USERPREF_PT_theme(bpy.types.Panel):
             col.prop(node, "button_title")
             col.prop(node, "button_text")
 
-
             col = split.column()
             col.prop(node, "text")
             col.prop(node, "text_hi")
@@ -1063,56 +1066,53 @@ class USERPREF_PT_file(bpy.types.Panel):
         userpref = context.user_preferences
         paths = userpref.filepaths
 
-        split = layout.split(percentage=0.6)
+        split = layout.split(percentage=0.7)
 
         col = split.column()
         col.label(text="File Paths:")
-        sub = col.split(percentage=0.3)
-
+        
+        colsplit = col.split(percentage=0.95)
+        col1 = colsplit.split(percentage=0.3)
+        
+        sub = col1.column()
         sub.label(text="Fonts:")
-        sub.prop(paths, "fonts_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Textures:")
-        sub.prop(paths, "textures_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Texture Plugins:")
-        sub.prop(paths, "texture_plugin_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Sequence Plugins:")
-        sub.prop(paths, "sequence_plugin_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Render Output:")
-        sub.prop(paths, "render_output_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Scripts:")
-        sub.prop(paths, "python_scripts_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Sounds:")
-        sub.prop(paths, "sounds_directory", text="")
-        sub = col.split(percentage=0.3)
         sub.label(text="Temp:")
+        
+        sub = col1.column()
+        sub.prop(paths, "fonts_directory", text="")
+        sub.prop(paths, "textures_directory", text="")
+        sub.prop(paths, "texture_plugin_directory", text="")
+        sub.prop(paths, "sequence_plugin_directory", text="")
+        sub.prop(paths, "render_output_directory", text="")
+        sub.prop(paths, "python_scripts_directory", text="")
+        sub.prop(paths, "sounds_directory", text="")
         sub.prop(paths, "temporary_directory", text="")
 
         col = split.column()
-        sub = col.split(percentage=0.2)
-        sub.column() # sub1, unused
-        sub2 = sub.column()
-        sub2.label(text="Save & Load:")
-        sub2.prop(paths, "use_relative_paths")
-        sub2.prop(paths, "compress_file")
-        sub2.prop(paths, "load_ui")
-        sub2.prop(paths, "filter_file_extensions")
-        sub2.prop(paths, "hide_dot_files_datablocks")
-        sub2.separator()
-        sub2.separator()
-        sub2.label(text="Auto Save:")
-        sub2.prop(paths, "save_version")
-        sub2.prop(paths, "recent_files")
-        sub2.prop(paths, "save_preview_images")
-        sub2.prop(paths, "auto_save_temporary_files")
-        sub3 = sub2.column()
-        sub3.enabled = paths.auto_save_temporary_files
-        sub3.prop(paths, "auto_save_time", text="Timer (mins)")
+        col.label(text="Save & Load:")
+        col.prop(paths, "use_relative_paths")
+        col.prop(paths, "compress_file")
+        col.prop(paths, "load_ui")
+        col.prop(paths, "filter_file_extensions")
+        col.prop(paths, "hide_dot_files_datablocks")
+        
+        col.separator()
+        col.separator()
+
+        col.label(text="Auto Save:")
+        col.prop(paths, "save_version")
+        col.prop(paths, "recent_files")
+        col.prop(paths, "save_preview_images")
+        col.prop(paths, "auto_save_temporary_files")
+        sub = col.column()
+        sub.enabled = paths.auto_save_temporary_files
+        sub.prop(paths, "auto_save_time", text="Timer (mins)")
 
 
 class USERPREF_PT_input(bpy.types.Panel):
@@ -1294,7 +1294,6 @@ class USERPREF_PT_input(bpy.types.Panel):
         itemrow.enabled = km.user_defined
 
 bpy.types.register(USERPREF_HT_header)
-bpy.types.register(USERPREF_MT_view)
 bpy.types.register(USERPREF_PT_tabs)
 bpy.types.register(USERPREF_PT_interface)
 bpy.types.register(USERPREF_PT_theme)
@@ -1465,4 +1464,4 @@ bpy.ops.add(WM_OT_keyconfig_export)
 bpy.ops.add(WM_OT_keymap_edit)
 bpy.ops.add(WM_OT_keymap_restore)
 bpy.ops.add(WM_OT_keyitem_add)
-bpy.ops.add(WM_OT_keyitem_remove)
+bpy.ops.add(WM_OT_keyitem_remove)
\ No newline at end of file
index ecaff9cbf40ad36adc8e472b071fef87f0aa001d..8fdba45e3409105a4b7345fb09f35f21dc40979c 100644 (file)
@@ -50,7 +50,7 @@ class VIEW3D_HT_header(bpy.types.Header):
             if edit_object:
                 sub.menu("VIEW3D_MT_edit_%s" % edit_object.type.lower())
             elif obj:
-                if mode_string not in ('PAINT_WEIGHT'):
+                if mode_string not in ('PAINT_WEIGHT', 'PAINT_TEXTURE'):
                     sub.menu("VIEW3D_MT_%s" % mode_string.lower())
             else:
                 sub.menu("VIEW3D_MT_object")
@@ -293,8 +293,8 @@ class VIEW3D_MT_view_navigation(bpy.types.Menu):
 
         layout.separator()
 
-        layout.operator("view3d.zoom", text="Zoom In").delta = 1.0
-        layout.operator("view3d.zoom", text="Zoom Out").delta = -1.0
+        layout.operator("view3d.zoom", text="Zoom In").delta = 1
+        layout.operator("view3d.zoom", text="Zoom Out").delta = -1
 
         layout.separator()
 
index 6fe6a683130e2574b426b3ec85aa4efcfc48f75a..dd5f391cc5c62a251b4ae28012f178253c968e88 100644 (file)
@@ -280,7 +280,7 @@ void          modifier_copyData(struct ModifierData *md, struct ModifierData *ta
 int           modifier_dependsOnTime(struct ModifierData *md);
 int           modifier_supportsMapping(struct ModifierData *md);
 int           modifier_couldBeCage(struct ModifierData *md);
-int           modifier_isDeformer(struct ModifierData *md);
+int           modifier_isCorrectableDeformed(struct ModifierData *md);
 int                      modifier_sameTopology(ModifierData *md);
 int           modifier_isEnabled(struct ModifierData *md, int required_mode);
 void          modifier_setError(struct ModifierData *md, char *format, ...);
@@ -303,7 +303,7 @@ int           modifiers_isParticleEnabled(struct Object *ob);
 struct Object *modifiers_isDeformedByArmature(struct Object *ob);
 struct Object *modifiers_isDeformedByLattice(struct Object *ob);
 int           modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
-int           modifiers_isDeformed(struct Scene *scene, struct Object *ob);
+int           modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
 void          modifier_freeTemporaryData(struct ModifierData *md);
 
 int           modifiers_indexInObject(struct Object *ob, struct ModifierData *md);
index 2f7526d524cb6c48dc00be586be02d383b0e4833..acc0d8576a1bcc2485f766fd0ad50ebeef816546 100644 (file)
@@ -186,6 +186,7 @@ int shuffle_seq_time(ListBase * seqbasep);
 void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage);
 
 void seq_update_sound(struct Sequence *seq);
+void seq_update_muting(struct Editing *ed);
 
 void clear_scene_in_allseqs(struct Scene *sce);
 
index cbce4663d6f5426da2e06ff3d93ba27ce3c4c6b0..64ce1983e7d1f1ab43c4e8a247a983b3813ffe40 100644 (file)
@@ -41,6 +41,8 @@ void sound_init();
 
 void sound_exit();
 
+void sound_disable();
+
 struct bSound* sound_new_file(struct Main *main, char* filename);
 
 // XXX unused currently
index c2921a17befb7ab239f14bb4088e9ea1b16bef40..a614404dc5e4710aefa7564c87f2befb1b191115 100644 (file)
@@ -2513,7 +2513,7 @@ int editmesh_get_first_deform_matrices(Object *ob, EditMesh *em, float (**deform
        }
 
        for(; md && i <= cageIndex; md = md->next, i++)
-               if(editmesh_modifier_is_enabled(md, dm) && modifier_isDeformer(md))
+               if(editmesh_modifier_is_enabled(md, dm) && modifier_isCorrectableDeformed(md))
                        numleft++;
 
        if(dm)
index 0623a5cbe5ee2fcb59222ee01f3fd8ad6b50d2ae..04fcd43b883d0d1d1a082785a140e027b0d2340c 100644 (file)
@@ -758,7 +758,12 @@ void fcurve_free_driver(FCurve *fcu)
                dtarn= dtar->next;
                driver_free_target(driver, dtar);
        }
-       
+
+#ifndef DISABLE_PYTHON
+       if(driver->expr_comp)
+               BPY_DECREF(driver->expr_comp);
+#endif
+
        /* free driver itself, then set F-Curve's point to this to NULL (as the curve may still be used) */
        MEM_freeN(driver);
        fcu->driver= NULL;
@@ -910,6 +915,7 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime)
        // TODO: the flags for individual targets need to be used too for more fine-grained support...
        switch (driver->type) {
                case DRIVER_TYPE_AVERAGE: /* average values of driver targets */
+               case DRIVER_TYPE_SUM: /* sum values of driver targets */
                {
                        /* check how many targets there are first (i.e. just one?) */
                        if (driver->targets.first == driver->targets.last) {
@@ -921,19 +927,22 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime)
                                /* more than one target, so average the values of the targets */
                                int tot = 0;
                                float value = 0.0f;
-                               
+
                                /* loop through targets, adding (hopefully we don't get any overflow!) */
                                for (dtar= driver->targets.first; dtar; dtar=dtar->next) {
-                                       value += driver_get_target_value(driver, dtar); 
+                                       value += driver_get_target_value(driver, dtar);
                                        tot++;
                                }
-                               
+
                                /* return the average of these */
-                               return (value / (float)tot);
+                               if(driver->type == DRIVER_TYPE_AVERAGE)
+                                       return (value / (float)tot);
+                               else
+                                       return value;
+
                        }
                }
                        break;
-               
                case DRIVER_TYPE_PYTHON: /* expression */
                {
 #ifndef DISABLE_PYTHON
index 3ab02a576d0c0ea1952a4b508b81588a29a283aa..f35a0a96bb4c5e8d9b2a0c9108dbacdbdd21615a 100644 (file)
@@ -217,8 +217,8 @@ static int rem_from_group_internal(Group *group, Object *ob)
 int rem_from_group(Group *group, Object *object, Scene *scene, Base *base)
 {
        if(rem_from_group_internal(group, object)) {
-
-               if(find_group(object, NULL) == NULL) {
+               /* object can be NULL */
+               if(object && find_group(object, NULL) == NULL) {
                        if(scene && base==NULL)
                                base= object_in_scene(object, scene);
 
index 4a3e0ded5259ae7bb03e8e8a0b718c2d6d96d897..9390c7d67c42bacffaeaf39fb2b38bc26d29c97d 100644 (file)
@@ -9156,15 +9156,15 @@ Object *modifiers_isDeformedByArmature(Object *ob)
 }
 
 /* Takes an object and returns its first selected lattice, else just its
-* armature
-* This should work for multiple armatures per object
+* lattice
+* This should work for multiple lattics per object
 */
 Object *modifiers_isDeformedByLattice(Object *ob)
 {
        ModifierData *md = modifiers_getVirtualModifierList(ob);
        LatticeModifierData *lmd= NULL;
        
-       /* return the first selected armature, this lets us use multiple armatures
+       /* return the first selected lattice, this lets us use multiple lattices
        */
        for (; md; md=md->next) {
                if (md->type==eModifierType_Lattice) {
@@ -9197,28 +9197,24 @@ int modifiers_usesArmature(Object *ob, bArmature *arm)
        return 0;
 }
 
-int modifier_isDeformer(ModifierData *md)
+int modifier_isCorrectableDeformed(ModifierData *md)
 {
        if (md->type==eModifierType_Armature)
                return 1;
-       if (md->type==eModifierType_Curve)
-               return 1;
-       if (md->type==eModifierType_Lattice)
-               return 1;
        if (md->type==eModifierType_ShapeKey)
                return 1;
        
        return 0;
 }
 
-int modifiers_isDeformed(Scene *scene, Object *ob)
+int modifiers_isCorrectableDeformed(Scene *scene, Object *ob)
 {
        ModifierData *md = modifiers_getVirtualModifierList(ob);
        
        for (; md; md=md->next) {
                if(ob->mode==OB_MODE_EDIT && (md->mode & eModifierMode_Editmode)==0);
                else 
-                       if(modifier_isDeformer(md))
+                       if(modifier_isCorrectableDeformed(md))
                                return 1;
        }
        return 0;
index eb7335307adaf7ca6d8eccbe422101b4e5ca456a..47830453c2eb5b089e86c8f66267491e26ce1d32 100644 (file)
@@ -733,12 +733,12 @@ float dof_camera(Object *ob)
        if (cam->dof_ob) {      
                /* too simple, better to return the distance on the view axis only
                 * return len_v3v3(ob->obmat[3], cam->dof_ob->obmat[3]); */
-               float mat[4][4], obmat[4][4];
+               float mat[4][4], imat[4][4], obmat[4][4];
                
                copy_m4_m4(obmat, ob->obmat);
                normalize_m4(obmat);
-               invert_m4_m4(ob->imat, obmat);
-               mul_m4_m4m4(mat, cam->dof_ob->obmat, ob->imat);
+               invert_m4_m4(imat, obmat);
+               mul_m4_m4m4(mat, cam->dof_ob->obmat, imat);
                return (float)fabs(mat[3][2]);
        }
        return cam->YF_dofdist;
index 39b911d1c37b3f8f3db1da8083960814d9775aef..f11aca32da723732c9d9b0815a4d597890b80abd 100644 (file)
@@ -3477,16 +3477,55 @@ int shuffle_seq_time(ListBase * seqbasep)
        return offset? 0:1;
 }
 
-
-void seq_update_sound(struct Sequence *seq)
+void seq_update_sound(Sequence *seq)
 {
-       if(seq->type == SEQ_SOUND)
+       if(seq->type == SEQ_SOUND && seq->sound_handle)
        {
                seq->sound_handle->startframe = seq->startdisp;
                seq->sound_handle->endframe = seq->enddisp;
                seq->sound_handle->frameskip = seq->startofs + seq->anim_startofs;
-               seq->sound_handle->mute = seq->flag & SEQ_MUTE ? 1 : 0;
                seq->sound_handle->changed = -1;
+               /* mute is set in seq_update_muting_recursive */
+       }
+}
+
+static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, int mute)
+{
+       Sequence *seq;
+       int seqmute;
+
+       /* for sound we go over full meta tree to update muted state,
+          since sound is played outside of evaluating the imbufs, */
+       for(seq=seqbasep->first; seq; seq=seq->next) {
+               seqmute= (mute || (seq->flag & SEQ_MUTE));
+
+               if(seq->type == SEQ_META) {
+                       /* if this is the current meta sequence, unmute because
+                          all sequences above this were set to mute */
+                       if(seq == metaseq)
+                               seqmute= 0;
+
+                       seq_update_muting_recursive(&seq->seqbase, metaseq, seqmute);
+               }
+               else if(seq->type == SEQ_SOUND) {
+                       if(seq->sound_handle && seqmute != seq->sound_handle->mute) {
+                               seq->sound_handle->mute = seqmute;
+                               seq->sound_handle->changed = -1;
+                       }
+               }
+       }
+}
+
+void seq_update_muting(Editing *ed)
+{
+       if(ed) {
+               /* mute all sounds up to current metastack list */
+               MetaStack *ms= ed->metastack.last;
+
+               if(ms)
+                       seq_update_muting_recursive(&ed->seqbase, ms->parseq, 1);
+               else
+                       seq_update_muting_recursive(&ed->seqbase, NULL, 0);
        }
 }
 
index d8950c7daced33acfcec18c595f32bba538fadb5..74c6afdc018bee4a8dc206ea4a7bea57f6beabbd 100644 (file)
 #include <config.h>
 #endif
 
+static int sound_disabled = 0;
+
+void sound_disable()
+{
+       sound_disabled = 1;
+}
+
 void sound_init()
 {
        AUD_Specs specs;
@@ -42,6 +49,9 @@ void sound_init()
        specs.format = U.audioformat;
        specs.rate = U.audiorate;
 
+       if (sound_disabled)
+               device = 0;
+
        if(buffersize < 128)
                buffersize = AUD_DEFAULT_BUFFER_SIZE;
 
index ec10d7d7ce2509ed94617416826c1b9170add714..3ab557fe0589688c8ee0f5434bdb74336106b777 100644 (file)
@@ -4232,6 +4232,9 @@ static void lib_link_scene(FileData *fd, Main *main)
                                seq->anim= 0;
                        }
                        SEQ_END
+
+                       if(sce->ed)
+                               seq_update_muting(sce->ed);
                        
                        if(sce->nodetree) {
                                lib_link_ntree(fd, &sce->id, sce->nodetree);
@@ -10164,6 +10167,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                }
                        }
                }
+               /* clear hanging 'temp' screens from older 2.5 files*/
+               if (main->versionfile == 250) {
+                       bScreen *screen;
+                       for(screen= main->screen.first; screen; screen= screen->id.next) {
+                               if (screen->full == SCREENTEMP)
+                                       free_libblock(&main->screen, screen);
+                       }
+               }
        }
        
        /* put 2.50 compatibility code here until next subversion bump */
index c432dfd746f79d616120621d0fcac4dc299e2179..bc0db6d4cd1cd1f44e007400ec32dee09b24352a 100644 (file)
@@ -934,8 +934,14 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves)
                        ChannelDriver *driver= fcu->driver;
                        DriverTarget *dtar;
                        
+                       /* don't save compiled python bytecode */
+                       void *expr_comp= driver->expr_comp;
+                       driver->expr_comp= NULL;
+
                        writestruct(wd, DATA, "ChannelDriver", 1, driver);
                        
+                       driver->expr_comp= expr_comp; /* restore */
+
                        /* targets */
                        for (dtar= driver->targets.first; dtar; dtar= dtar->next) {
                                writestruct(wd, DATA, "DriverTarget", 1, dtar);
index 7a96c3b32a3d349752cb3da757c9cfd816db2807..0e81dab380c13c992b8f5ecee42b80d3ee55cca5 100644 (file)
@@ -32,6 +32,7 @@
 #include "MEM_guardedalloc.h"
 
 #include "DNA_action_types.h"
+#include "DNA_anim_types.h"
 #include "DNA_armature_types.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 #include "BLI_blenlib.h"
 
 #include "BKE_action.h"
+#include "BKE_animsys.h"
 #include "BKE_context.h"
 #include "BKE_depsgraph.h"
+#include "BKE_global.h"
 #include "BKE_main.h"
 #include "BKE_scene.h"
 #include "BKE_screen.h"
 #include "WM_api.h"
 #include "WM_types.h"
 
+/* tags the given anim list element for refreshes (if applicable)
+ * due to Animation Editor editing */
+void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale)
+{
+       ID *id;
+       FCurve *fcu;
+       AnimData *adt;
+
+       id= ale->id;
+       if(!id)
+               return;
+       
+       /* tag AnimData for refresh so that other views will update in realtime with these changes */
+       adt= BKE_animdata_from_id(id);
+       if(adt)
+               adt->recalc |= ADT_RECALC_ANIM;
+
+       /* update data */
+       fcu= (ale->datatype == ALE_FCURVE)? ale->key_data: NULL;
+               
+       if(fcu && fcu->rna_path) {
+               /* if we have an fcurve, call the update for the property we
+                  are editing, this is then expected to do the proper redraws
+                  and depsgraph updates  */
+               PointerRNA id_ptr, ptr;
+               PropertyRNA *prop;
+
+               RNA_id_pointer_create(id, &id_ptr);
+                       
+               if(RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop))
+                       RNA_property_update_main(G.main, scene, &ptr, prop);
+       }
+       else {
+               /* in other case we do standard depsgaph update, ideally
+                  we'd be calling property update functions here too ... */
+               DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive?
+       }
+}
+
+/* tags the given ID block for refreshes (if applicable) due to 
+ * Animation Editor editing */
+void ANIM_id_update(Scene *scene, ID *id)
+{
+       if(id) {
+               AnimData *adt= BKE_animdata_from_id(id);
+               
+               /* tag AnimData for refresh so that other views will update in realtime with these changes */
+               if (adt)
+                       adt->recalc |= ADT_RECALC_ANIM;
+                       
+               /* set recalc flags */
+               DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive?
+       }
+}
+
 /* **************************** pose <-> action syncing ******************************** */
 /* Summary of what needs to be synced between poses and actions:
  *     1) Flags
index 15ca0fab35f873c2268deb89d63d736d77bd5c61..4fd9295792bf4e588423f09246b68f4e2ffee54e 100644 (file)
@@ -231,7 +231,8 @@ static void nupdate_abk_bezt (void *node, void *data)
                // TODO: need to allocate new array to cater...
                // FIXME: urgent... is a problem when working with duplicate keyframes
                //bezts_extra= MEM_callocN(...);
-               printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n");
+               if(G.f & G_DEBUG)
+                       printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n");
        }
        else {
                /* just store an extra one */
index 702641f4f99be73fccd96bdd58bba7fcd61985d3..b1b7bbbd2eca2eed2532d5b90f5d62559c34c577 100644 (file)
 /* DataToC output of file <blenderbuttons> */
 
-int datatoc_blenderbuttons_size= 209415;
+int datatoc_blenderbuttons_size= 209368;
 char datatoc_blenderbuttons[]= {
-137, 80, 78, 71, 13, 10, 26,
- 10,  0,  0,  0, 13, 73, 72, 68, 82,  0,  0,  2, 90,  0,  0,  2,128,  8,  6,  0,  0,  0, 68,254,214,163,  0,  0, 10, 79,105, 67,
- 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101,  0,  0,120,218,157, 83,103, 84, 83,
-233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21,  8, 32, 82, 66,139,128, 20,145, 38, 42, 33,  9, 16, 74,136, 33,161,
-217, 21, 81,193, 17, 69, 69,  4, 27,200,160,136,  3,142,142,128,140, 21, 81, 44, 12,138, 10,216,  7,228, 33,162,142,131,163,136,
-138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207,  7,192,  8, 12,150, 72, 51, 81, 53,128,
- 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112,  0, 16,  8,179,100, 33,115,253, 35,  1,  0,248,126, 60,
- 60, 43, 34,192,  7,190,  0,  1,120,211, 11,  8,  0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92,  1,128,132,  1,192,116,
-145, 56, 75,  8,128, 20,  0, 64,122,142, 66,166,  0, 64, 70,  1,128,157,152, 38, 83,  0,160,  4,  0, 96,203, 99, 98,227,  0, 80,
- 45,  0, 96, 39,127,230,211,  0,128,157,248,153,123,  1,  0, 91,148, 33, 21,  1,160,145,  0, 32, 19,101,136, 68,  0,104, 59,  0,
-172,207, 86,138, 69,  0, 88, 48,  0, 20,102, 75,196, 57,  0,216, 45,  0, 48, 73, 87,102, 72,  0,176,183,  0,192,206, 16, 11,178,
-  0,  8, 12,  0, 48, 81,136,133, 41,  0,  4,123,  0, 96,200, 35, 35,120,  0,132,153,  0, 20, 70,242, 87, 60,241, 43,174, 16,231,
- 42,  0,  0,120,153,178, 60,185, 36, 57, 69,129, 91,  8, 45,113,  7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97,  2, 97,154,
- 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204,  0,  0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182,
- 14, 95, 45,234,191,  6,255, 34, 98, 98,227,254,229,207,171,112, 64,  0,  0,225,116,126,209,254, 44, 47,179, 26,128, 59,  6,128,
-109,254,162, 37,238,  4,104, 94, 11,160,117,247,139,102,178, 15, 64,181,  0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,
-185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226,
- 36,129, 50, 93,129, 71,  4,248,224,194,204,244, 76,165, 28,207,146,  9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,
-196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251,
-  3, 62,223, 53,  0,176,106, 62,  1,123,145, 45,168, 93, 99,  3,246, 75, 39, 16, 88,116,192,226,247,  0,  0,242,187,111,193,212,
- 40,  8,  3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37,  0,128,102, 73,146,113,  0,  0, 94, 68, 36, 46, 84,202,179, 63,
-199,  8,  0,  0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192,  6, 28,193,  5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66,
- 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,
-194, 85,184, 14, 61,112, 15,250, 97,  8,158,193, 40,188,129,  9,  4, 65,200,  8, 19, 97, 33,218,136,  1, 98,138, 88, 35,142,  8,
- 23,153,133,248, 33,193, 72,  4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114,
-  2, 57,135, 92, 70,186,145, 59,200,  0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,
-162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232,
- 24,  7, 51,196,108, 48, 46,198,195, 66,177, 56, 44,  9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172,  3,187,137,245, 99,
-207,177,119,  4, 18,129, 69,192,  9, 54,  4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218,  9,
- 55,  9,  3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,
-123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144,  2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72,
- 26, 35,147,201,218,100,107,178,  7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,
-113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229,  6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143,
- 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,
-232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232,  3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155,
- 24,  7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,
-124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174,
- 70, 85, 51, 83,227,169,  9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,
-253,137,  6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,
-196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63,  7,227,
-152,113,248,156,116, 78,  9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,
-150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,
-206,  5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,
-190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88,  6,179, 12, 36,  6,219, 12,
-206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213,
- 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38,  6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,
-166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,
-182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,
-173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216,  6,219,174,182,109,182,125,
- 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61,  7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114,
- 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,
-155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,
-225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200,
- 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,
-119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158,
- 95,133,223, 67,127, 35,255,100,255,122,255,209,  0,167,128, 37,  1,103,  3,137,129, 65,129, 91,  2,251,248,122,124, 33,191,142,
- 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,
-206,145,206,105, 14,133, 80,126,232,214,208,  7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209,
- 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,
-186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,
-226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65,
- 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42,
- 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109,
- 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,
- 47, 30,149,  7,201,107,179,144,172,  5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42,  7,178,103,101, 87,102,191,205,137,202,
- 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,
-189,172,106, 57,178, 60,113,121,219, 10,227, 21,  5, 43,134, 86,  6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,
-189, 38,122, 77,107,129, 94,193,202,130,193,181,  1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181,
- 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,
-196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246,
- 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,
-238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85,  1, 85, 77,213,102,
-213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199,  3,210,  3,253,  7, 35, 14,182,215,
-185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112,
- 68,121,228,233,247,  9,223,247, 30, 13, 58,218,118,140,123,172,225,  7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155,
- 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,
-130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,
-210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,
-211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,
-213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,
-244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247,  6,133,131,207,254,145,
-245,143, 15, 67,  5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,
-254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,
-219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,
-249,177,245, 83,208,167,251,147, 25,147,147,255,  4,  3,152,243,252, 99, 51, 45,219,  0,  0,  0,  6, 98, 75, 71, 68,  0,255,  0,
-255,  0,255,160,189,167,147,  0,  0,  0,  9,112, 72, 89,115,  0,  0, 13,215,  0,  0, 13,215,  1, 66, 40,155,120,  0,  0, 32,  0,
- 73, 68, 65, 84,120,218,236, 93,119,124, 20,197,226,255,206,222,238,245, 75, 39,141, 36,164,  0,129, 96,232, 69, 18,138,116, 20,
- 80,144,166,248, 16,158,232,207,134,189,129,138,136,  8,196,138,192,123, 34, 79,159, 10,136, 34, 88, 64,240,209,148,222,155, 74,
- 47,146,  0,  9,164,147,122,253,110,231,247,  7,183,231,229,184, 22,184, 40,194,124, 63,159,253,220,221,222,238,119,103,102,103,
-102,191,243,157,217, 25, 66, 41,  5,  3,  3,  3,  3,  3,  3,  3,  3, 67,240,193,177, 36, 96, 96, 96, 96, 96, 96, 96, 96,184, 78,
-132,214,234,213,171,  3,182,192,  8, 33,253,  2,229,116,108,183, 93,239,156, 13, 24,119, 26, 68,206,219, 28,156,175,255, 77,194,
-121,219,245,202, 41,197, 55, 80,222,250,112,  6,154,167,234, 25, 78, 26,236,112, 54, 20,103,176,202,145,135,112,210,  6,184,239,
-175,255, 77,194,121,219,245,198,233,158,127,  2,225,173, 47,103, 32,121,234, 42,194, 73,131, 29,206,134,226,188,214,114,228, 35,
-156,244, 90,243,146,151,123,255, 58,110, 34,240, 13, 37,178,234,131,193,131,  7, 19, 23,126,114,189,114,186,166,131,196, 31,204,
-176,  6, 17,155,130,205,233,150,158,193,194,235,131,  7, 15, 38,171, 87,175,222, 12,224,182, 96,198, 61, 24,247,221, 45,174, 65,
-225,173,175,200,170, 47,103,176,242,125, 67,115,  6,171, 44,185,115,  6, 35,223,123,186,239, 13,120,143,130, 21,206,160,148,165,
-134,200,243, 30,242,207, 53,243,186,115,  6,163, 44,185,115,  6, 35,223,255, 25,156,193, 40, 75,158, 56,131,145,239,189,221,123,
-230,104,253,185,130,192,189,128,247,186,158,  5, 81, 67,137,205, 64, 29,152,235,129, 51,200,247,232,117,  7,103, 48, 91, 55,189,
-130,117,143, 26, 34,191,187,114,  6,139,223,157, 39, 24,247,201, 19,231,181,134,215, 75, 56,131, 30,247,107,205,247,127, 22,103,
-144,239, 81, 80,202,146, 27,103,175, 32, 55,  6,122,185,252,126, 61,152,156,193, 42, 75, 30,194,121,205,247,201, 19,231,181,134,
-215, 75, 56,131, 30,247, 96, 60, 67, 26,138,247,134,117,180, 26, 82,100, 53,212, 67, 45,152,220, 13,225,234, 52,148,243, 22, 44,
- 87,199,  3,239,230, 32,210,109, 10,118, 56, 29,225, 35, 13,229,190, 94,239, 96,101,137,149,165,235,173, 44,121,202, 55,131,  7,
- 15,126,125,245,234,213, 83,175,183, 70,180, 43,103,176,  4,145,135,184, 95, 83, 89,114, 63, 55, 24,101,201, 15, 39,105,136,248,
-  7,187, 60, 49,161, 85, 15,167, 40,200, 45, 19,  4,217,129,105,176,120,  7, 57,156,189, 26,194, 33,108,  0,  4, 61,156,142,150,
-242,212,  6,136,251,223, 37, 77, 89, 89, 98,101,233,186, 43, 75,110,121,178, 87, 16,157,162,160, 58,207,238,156,193,184,134, 43,
- 71,176,242,104, 67,199, 61,152,101,169, 33,238,253,223, 14,148,210,  6,219,  0,244, 99,156,140,147,113, 50, 78,198,201, 56, 25,
- 39,227,188, 89, 55, 54,189,  3,  3,  3,  3,  3,  3,  3,  3, 67,  3,129,176,  9, 75, 25, 24, 24, 24, 24, 24, 24, 24, 26,  6, 94,
-199,104, 37, 36, 36,172,210,104, 52,205,188,253, 95, 91, 91,123,241,194,133, 11,189, 89, 18, 50, 48, 48,248,109,209, 17,194,225,
-143,183,156, 69,  0,148,178, 86, 30,  3,  3,195,205, 44,180,148, 74,101,218,177, 99,199,210, 69, 81,132,221,110,135,205,102,115,
-126,154,205,102,244,236,217,179,222,  3,233,227,226,226,182,200,100,178,148,250,156, 99,183,219,207, 21, 22, 22,118,247, 81,129,
-239,  0,144, 70,  8,113,221,231,243, 19,192,  5,139,197,210,193, 23, 39, 33, 36,205,157,207, 11,151,244,221, 39,103,120,120,248,
- 62,158,231, 19, 61,113,121,251, 46,138,226,153,226,226,226,108,150, 77,255, 28,196,197,197,109,225,121,190,222,249,243,226,197,
-139, 94,243,103,227,198,141, 15,114, 28,215,184, 30,148, 50, 81, 20, 79, 92,188,120,177,187, 55, 33, 34,229,121, 63,194,166,206,
-119, 66, 72,190,205,102,235,228,175, 28,249,226,242,144, 71,125,114,186,138, 44,158,231,115, 98, 98, 98, 30,213,235,245, 70,  0,
- 84, 38,147,209,168,168, 40, 41,108,  0,  0,155,205, 86,114,233,210,165,214, 44, 39, 50, 48, 48,220, 20, 66, 75, 20, 69,206,100,
- 50,225,228,201,147,240, 82,223,219,175,226,122,233,251,127, 90, 31, 19, 18, 19, 11,155,197,  2,109,163,104, 39,119,209,209,195,
-176, 89, 45,176,153,205,104,210,185,171,244, 16,195, 45,183,220, 34,243,195,153,248,214, 91,111,197,132,132,132,192,104, 52,194,
-104, 52,194,100, 50,193,104, 52,194,108, 54,195,108, 54,195, 98,177,192, 98,177,192,102,179,193,100, 50, 97,195,134, 13,254,194,
-158, 56, 99,198,140,152,208,208, 80, 39,159,180, 73,156, 18,175,213,106,133,209,104,196,207, 63,255,236,147,147,231,249,196, 11,
- 23, 46,196,200,229,114, 80, 74, 33,138,162,167,193,133,117,208,180,105, 83, 11,203,162,127, 42,210,103,124,185, 58, 38, 76,173,
-132, 77, 20, 49,164,109, 83,231, 31,103, 62, 89,  6,106,179, 67,180,217,208,124,226, 88,224,178, 37,131, 86,173, 90,249,204,159,
-148,210,228, 25, 95,174, 14, 15,148,179,180,180,212,144,145,145,113,  1,151, 95,125,246,230,248, 36, 26, 12,134, 24, 41, 12,238,
-130,136,227,184, 58,219,218,181,107, 49,100,200, 16,127,113, 79,124,230,153,103, 98,172, 86, 43,204,102, 51, 76, 38, 19,172, 86,
- 43,108, 54,155,115,179,219,237,206,205,108, 54, 99,247,238,221,129, 58, 89,111,245,239,223,255,129,213,171, 87,107,191,255,254,
-123,109, 74, 74, 10,228,114, 57,100, 50, 25,100, 50, 25, 56,142,  3,207,243,184,245,214, 91,  9,203,130, 12, 12, 12, 55,141,208,
- 50,153, 76,185,237,219,183,167,142,239,  9, 74,165, 82,238, 86,129, 54, 78, 79, 79, 63,225,126,158,191, 46,197,144,152, 88, 76,
- 78,138,  4,  0,188,118,182,204,249,128,120, 59,187,157,243,152, 55, 10, 42,  1,  0,106,181, 26,196,181, 25,237,  5, 90,173, 22,
-253,251,247,135, 66,161, 64,167, 78,157, 32,  8,130,199, 77, 46,151, 67, 16,132, 64, 30, 14,208,233,116,152, 54,109,154, 36,146,
-160, 85, 41,241, 68,118, 39,168, 64,241,159,195,167, 96, 22, 41,120,158,119,110,129,112,202,229,114, 28, 58,116,  8, 60,207, 67,
- 38,147, 57, 63,165,239, 43, 87,174,196,200,145, 35,193,243, 60,212,106, 53,112, 19,205, 51,114,189, 32, 76,173,196,184,249,223,
-  1,  0,206,207,158,232,188,119,187, 31,123,205,121, 76,242,255,141,  6, 33,  4,130, 32,128,227,184,160,113,150,151,151, 27,238,
-189,247,222,109, 33, 33, 33,107,171,170,170,224, 71,192,225,252,249,243,224,121,222,107,126,231, 56, 14,239,191,255, 62, 78,159,
- 62, 29, 80,220,141, 70, 35, 62,254,248, 99,216,237,246, 58,188,210,119,247,125,  1,138,172, 55,  7, 12, 24, 48,118,245,234,213,
- 17,132, 16,252,235, 95,255,130, 92, 46,199,160, 65,131, 16, 21, 21,133,117,235,214, 65, 46,151,227,197, 23, 95,100,153,143,129,
-129,193, 23,  4,  0,237,  0, 68, 59,140,158,106,  0,225, 46,255,151, 56, 62,163, 93,126,239,245,192,211,217,113,140,244,191,244,
-219, 12, 64,225, 97,127, 25,  0,181, 99, 51,  1,216,  1, 32,211,229, 58,210,121,240,118, 93, 30,184,188,254, 16,128, 77,  0,122,
- 73,147,232, 93,188,120,241, 14, 23,103,229,216,137, 19, 39, 90, 74,154,199,209,133, 40,183,217,108,233, 82,119,162,228, 22,245,
-235,215,207,103, 11,223,102,177, 92, 33, 64, 60,105, 41, 79,221, 21,222,  4,140,197, 98,193,232,209,163, 47,223,  9, 47, 15, 29,
-215, 45,  0,237,  6,179,217, 12,158,231,209, 34, 41, 26, 83,  6,182, 71, 23,106, 69,109, 13,129,173,178, 22, 67,117, 86, 28,107,
-213,  1, 11,206,149,224,108, 85, 13,120,158, 15,136, 83, 20, 69,175, 34, 75, 38,147, 97,254,252,249,184,247,222,123, 33,147,201,
-  2,226, 99,  8, 62,108,162,232, 49, 31,122,203,179,129,220,167, 64, 56,203,203,203, 13, 67,134, 12,217,165, 84, 42, 23,198,198,
-198, 94,200,207,207,247, 43,180,220,197,143,123,163,226,189,247,222,195,220,185,115,209,187,119,239,128,194,105, 50,153, 64,  8,
-193,130,  5, 11,174,248,111,250,244,233, 87, 92,207, 23,167,163,129,196, 53,110,220,248,177, 53,107,214,132, 74,199, 54,106,212,
-  8,130, 32,160,117,235,214,  8,  9,  9,193,182,109,219, 96,183,219,  3, 46,151, 12, 12, 12, 55, 46, 60,105, 17, 23,244,156, 60,
-121,114,167,156,156,156,153, 89, 89, 89, 95,237,216,177,227, 75, 66,200, 42,151, 58,113,136,163,238, 89,229,242,187,179,155,232,
- 17,  0, 68, 19, 66, 86, 73,199,187,254,118,217,223, 15,128, 66,250, 61,121,242,228,204,156,156,156,153,147, 38, 77,122,121,214,
-172, 89,242,201,147, 39,183,201,201,201,153, 41, 93,199, 83, 56, 60, 57, 90, 62,103, 21,150,186, 17,143, 31, 63, 14,127,227, 87,
- 41,165, 62,107, 75,109,163,104,167,147,245, 70,114,148,115,255,180,252, 10,231,  3,108, 94,199,102,208,106,181, 24,248,198, 59,
-  1, 57, 69,102,179, 25,197,197,197, 78,151,193,223, 22, 40,167, 70,173,194,134,103, 90,227,124,153,  2,175,239, 44,199,234, 95,
- 78, 67, 16,  4,220,222,170, 53,238,144,135,224,213,100,  5,158, 57,149,  7,107,128, 99,122, 41,165, 30,  5,150,244, 93,234, 66,
- 97, 66,235,175,195,144,182, 77,157,174,211,238,144,190,206,253, 35,107, 15, 57,239,201,115,243,223,  6,  0,244,238,112, 43,  2,
- 25,207,237,143,179,172,172,204,208,189,111,175,205,118,131,249,243,177, 99,199,230,110,220,184, 81, 29, 80,243,206,131,208,146,
- 92, 91, 73,100,241, 60, 15,179,217, 28, 80,220,205,102,179,215,242, 33,151,203,235,237,104,  1, 64,109,109,173,121,197,138, 21,
-152, 55,111, 30,162,162,162, 48, 96,192,  0,196,199,199, 99,217,178,101,160,148, 98,226,196,137, 80,171,213,146,123,205, 50, 32,
-  3,195,205, 13, 95, 90, 68,153,147,147, 51,211, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,101,250,121,254,175,114, 23, 79,
-210,117,  9, 33,171,102,205,154, 53,196, 79, 56, 74,188,  9, 45,159,211,247,155, 76,166,220,182,109,219,  6,164, 38,244,122,125,
-161, 63,177,225,169, 85,239,234, 18,232,116, 58,104, 67,117,224,  2,172,119,173, 86,171, 83,168,172, 95,191, 30,106,181, 26,131,
-  6, 13,186, 38, 71,203, 98,177, 64, 33, 23,192, 53,138,197,184,217, 27, 81, 86,109,112, 62, 96, 54,157,201,197,129,162, 98, 60,
-147,213, 23, 90,117, 49,106,204,230,128,156, 55, 81, 20,175, 16, 89, 60,207, 99,244,232,209, 78, 55,193,117,220, 10, 88,215,225,
- 95,  6, 79,249,211,125,191,232,230, 84, 93, 13,103, 89, 89,153, 97,200,144, 33,187,236,  6,243,231,  5,  5,  5,187,  0,168,186,
-116,233, 82,111,161, 37,  9, 44, 65, 16,240,254,251,239, 99,238,220,185,206,255,  3, 21, 90, 54,155,173,142,128, 58,117,234, 84,
-157,107,185, 11, 59, 95,221,166,148, 82, 74,  8, 17,  1,136,105,105,105,206,115,226,226,226, 16, 30, 30, 14, 81, 20, 33,138, 34,
- 84, 42, 21,212,106, 53,228,114, 57,203,116, 12, 12, 12,190,180,136, 97,210,164, 73, 47, 19, 66, 86, 57,156,165,195, 62,  4,149,
- 39,116,118, 19,107, 37, 94,234,174, 33,158,196,150,235,119,  9,147, 39, 79,206,244, 16,142,189, 94,133,150,219,180,251,117,224,
-218,141, 24,172,135,152,175,  7,153, 46, 60, 20,106,173, 22, 50, 25,  7, 66,  8,245,199,101,177, 88,156, 21,255,163,143, 62,234,
-115,220, 74,160,227,169, 44, 22, 11, 56, 94,134,139,113,169,176,115, 91,157,231, 74, 27,199, 11, 56, 27,215, 18,178,227,  7, 33,
-  4,248,192,117,119,180, 38, 78,156,136,143, 63,254, 24, 28,199, 57,211,132,231,121, 52,111,222, 28,185,185,185,172,196, 93, 39,
- 34,203,219,126,187, 93, 12,216,133,241,116, 92, 89, 89,153, 97,212,168, 81,155, 43, 43, 43, 63,191,229,150, 91, 78,225,242,244,
-  7, 92,160,124, 60,207,215, 17, 88,146,200,154, 51,103, 78, 29, 81,100,181, 90,  3,106,  8, 88,173,214, 43,  4,207,187,239,190,
- 91,231, 19,  0,178,179,179,  3,114,134,  1, 80,142,227,168, 92, 46, 71,255,254,253,209,166, 77, 27,124,255,253,247, 16, 69, 17,
-143, 63,254, 56,212,106, 53, 62,248,224,  3,216,108, 54,188,245,214, 91,204,209, 98, 96, 96,240,165, 69, 76,179,102,205, 58, 60,
-107,214, 44,167,179,228,238,104,121,163,116,136,170,104, 73,164,225,242, 88,171,189, 62,158,213, 67,188,  9, 48,215,125, 57, 57,
- 57, 51, 61,132,195,189,187,242,207, 95,235,176,240,200, 33,188,211,173, 61,128,186,221,133,243,111,109,  9,173, 78, 11,109,136,
- 14,163, 86,110,  5,  0, 71,165, 63, 41, 32, 71, 75, 18, 90,101,101,101, 62, 69, 86,125, 28, 45, 78,193, 99,121,226, 37, 80,133,
-  0,222,108,173, 35,180,100,188,128,243, 81,169,224,  4, 57,120,187, 45, 32, 78, 74,233, 21, 93,133,227,199,143,  7, 33,196,249,
-134, 88,219,182,109, 93,185,216,147,231,207,206,159,251, 62,193,177,111, 30,  3,  0,116,175,173,117,222,139, 25,109,255,120,191,
- 99,246,161,205, 78,247,241, 13, 60,127, 85,156,101,101,101,134, 46, 25,153,187,228,145, 97,159,159, 59,119,110, 23,  0,238,158,
-123,238,  9,111,219,182,109, 64,101, 82,122,185,194, 93,100,185, 58, 89,210,167,213,106, 13, 40,238,210, 88, 41,127,144,186, 17,
-253,229,121, 74, 41,141,140,140,  4,199,113,  8, 13, 13,133, 78,167,115,190,113,171, 82,169,160,209,104,156,227, 59,  3, 20,110,
- 12, 12, 12, 55, 47, 34, 36,161,227, 16, 75,117,156, 38, 74,233, 16, 87, 49,228,173, 11,209,225, 64,109,241,103,172, 57,  4,154,
- 71, 72,206,154, 91,157,188,202,155, 72,227, 37,  5,233,250, 25, 31, 31,255, 63,157, 78,151, 26,104,236,235, 51,121,169,221,106,
-185,194,217, 34,132, 64, 23,162,131, 90,167,133, 58, 68,231,213,245,242, 37,180, 36,167, 72,122,232, 44, 92,184, 16, 58,157, 14,
-255,252,231, 63,235, 61, 70,203, 41,180,228, 28,214, 41,127,134, 76,193,215, 17, 89, 60,207, 67, 38,  8, 40,212,197,131, 19,  4,
-240,182,192, 92,178,202,202, 74,240, 60,143, 41, 83,166, 56, 91,240,174, 34,171, 62,113,102,104, 24, 80,187,245, 10, 23,202,155,
-251,122,181,156,146,147, 37,143, 12,251,188,101,203,150, 78, 39, 75,163,209, 72,111,155,250,  5,199,113, 30, 69,150,251, 27,130,
- 60,207, 95,206,203,126,222,142,116,117,180,102,205,154,229,228,117,117,178, 36,212,167, 28, 73, 97,221,188,121, 51, 14, 28, 56,
-128, 71, 31,125, 20,106,181, 26,115,231,206,133,205,102,195,244,233,211,161, 86,171,161, 80, 40, 88,230, 99, 96, 96,110, 86, 29,
- 45,226,134, 18,183,113, 80,196, 77,212,148,120, 18, 88,174,221,132, 46,223,173, 30,120,205,110, 93,138,238,251,165,207,178, 89,
-179,102,109,148,156, 44,151,253,117,194,225,215,209, 82, 42,149,169, 39, 79,158,116, 78, 86,234,235,211,108, 54,163,119,239,222,
-  1, 59, 99,210, 91,135, 60, 47,171, 35, 44, 52, 33, 58,104, 66, 67,160,214,233,220,  5,  7,241, 87,137, 75, 45, 98, 87,161, 53,
-117,234, 84,240, 60,143,143, 63,254, 24,  0,240,252,243,207,  7, 60, 70, 75,226,132,157, 32,159,254,142,246,179, 71,194,252,133,
- 21, 69,219,127,  5,207,243,136,233,122,  7,196, 46, 35,161, 87,235,192,219,109,  1,191,117, 88, 94, 94,142,220,220, 92,200,100,
- 50, 60,251,236,179,117,230, 58,114,127,147,109,253,250,245,204,209,250, 43,132,150,104, 11, 72, 84,213,199,117,116,229,148,198,
-100, 85, 86, 86,126,126,238,220,185,221,  0,184,177, 99,199,134,107, 52, 26,252,247,191,255,213,  3, 80, 44, 91,182, 76,237, 79,
- 20, 73,249,198,159,200, 18,  4,225,114, 94, 14, 36,238,180,238,148, 37,254,  6,198,  7,146,231,165,176, 18, 66, 96,183,219,161,
- 86,171,235, 56, 89, 42,149, 10, 74,165,146,101, 60,  6,  6,  6,127,216, 91,143, 99, 59,187,136,166,189, 87,201,187, 55, 88,  1,
-231,189,  9, 13,147,201,132,163, 71,143,  6,202, 19,240,228,165, 73,157,110,197, 27,  5,149, 32,132,224, 63,217,183, 64, 27,170,
-131, 70,171,197,136,239, 55, 59, 43,238, 67, 51,159,135, 82,171, 67,227, 30,  3,  2,170,200,165,174, 67, 87,161, 85, 81, 81,  1,
- 65, 16,240,230,155,111,130,227, 56,188,245,214, 91, 72, 72, 72,192,197,139, 23,177,108,217,178,128, 28, 45,153, 93,134,248,251,
- 51,160, 25, 31,134,208,251,123, 34,162,255, 84, 20,152,121,236, 48,106,208,211,120,  4,138,117,115, 96, 22,237,  1,191,129,101,
-179,217,176,121,243,102,247,  1,239,160,148, 58,103,221,183, 90,173,176, 88, 44,120,235,173,183,192, 86, 40,249,243, 17,223,117,
- 34,162, 59, 61,  2,  0, 88, 57,107,130,115,255,148, 67,127,228,207,247,191,184,188,  0, 64,203,148,  1,245,226, 44, 43, 43, 51,
-220,222, 59,123,139, 81, 20, 62,107,221,186,117, 29, 39, 75,165, 82, 17,199,239,128,196, 53,199,113,144,201,100, 87,116, 23,122,
- 19, 91,129,140,209,178,217,108,206,137, 68,125,141,103,188, 26, 71,107,194,132,  9,136,143,143,119, 58, 89,111,188,241,  6,212,
-106, 53, 38, 79,158, 12,171,213,138, 57,115,230,176,204,199,192,192,240, 87,136,178,  6,135,199,154,212,104, 52,230,181,105,211,
-  6, 94,254, 75, 80,169, 84,130, 91, 37,221, 56, 61, 61,253,132,123, 23, 34, 33,164, 31,165,116,131,167, 74,157, 16,130,144,208,
- 16,168,116, 90,104,220, 92, 44, 85, 72, 40,148, 58, 29, 56,185,224,233,129,112,  5,167, 52,182,196, 85,104, 73, 91,101,101, 37,
-  4, 65,192,188,121,243, 16, 26, 26, 10,147,201,228,151, 83,122,232,200,100, 50,232,207, 87,227,216,204, 13, 80,168,118,160,217,
-128,123, 17, 47,168, 33,223,246, 45, 12,118,171,207,  9, 75, 61,113,166,167,167,227,181,215, 94,187, 98, 90,  7,111, 72, 72, 72,
-240, 27,247,107,  5,227,244,204,233,235,173, 88,  9, 34,181,123, 58,206, 35,167,228,100, 25, 69,225,179,220,220, 92,201,201, 10,
-211,104, 52,248,232,163,143,244,  0,184,233,211,167,107,146,147,147,101,129,228, 37,153, 76,134,217,179,103,123, 28,147,229, 73,
-116,213,167, 28,185,158,123,219,109,183,121,156,176,212,147,120,243,196, 41,133, 53, 42, 42,202,233,100,217,237,118,231,219,134,
-210,236,243,222, 26, 21, 44,127, 50, 78,198,121,243,112,222,168,240,248,148,191,112,225,194,237,222, 78,104,214,172,217,201,147,
- 39, 79, 54,151,150,226,112, 84,156,114,163,209,152,158,157,157,237,215,218, 17, 69, 17, 74,165, 18,148, 82,244,121, 45,  7,132,
-  3, 56,212,125,136,197,116,235, 11,153,140,135,120,121,169, 15,191,111, 29, 26, 12,134, 58, 15,  7, 79, 91, 77, 77, 13, 76, 38,
- 83,192,179,121, 27,141,198, 58, 83, 48, 16, 42,226,236, 79, 95, 95,241,246,161,180,  5, 58,110, 71,165, 82,213,233,250,241,  5,
-127,115,146, 49,  4, 31,210, 11, 11,  0,208, 34,123, 16, 68,209, 14,106,183,215, 89, 38, 41, 35,245,118,136,212, 14,139, 85, 15,
-147,201,228,207,118, 36,165,165,165,134, 81,163, 70,109,  6,240,233,208,161, 67, 79,224,242, 27, 47, 84,167,211, 41,  5, 65, 16,
-  1,148,  3,160,151, 46, 93, 10, 43, 40, 40, 16,141, 70, 99, 19,127,225, 92,189,122, 53,142, 30, 61,138, 30, 61,122,212, 89, 14,
- 74,114, 69, 93,103,119, 15, 36,127, 74,221,229,158,102,132,247, 38,228,  2,133, 76, 38, 67, 88, 88, 24,228,114, 57,222,124,243,
- 77,200,229,114,104, 52, 26,  0,192,156, 57,115,156,147,175, 50, 48, 48, 48,220, 52, 66,203, 95,189,233,163, 91,209,103, 23,162,
-205,102,203, 79, 78, 78,174,215,197,236,118,123,145, 31,225,150,191,108,217, 50,185,171, 11,225,239,147, 82, 90,228,231, 97,155,
-191,114,229, 74,185, 39,119,195,219,  2,211,254, 56,237,118,123,126, 74, 74,138, 87,199,196, 19,172, 86,107,  1,203,162,127, 30,
-236,118,187,143,252,249,202,213,230,207, 83, 45, 90,180, 40,  8, 15, 15,255, 49, 54, 54,182,108,251,246,237, 81,157, 59,119,142,
-114, 61,166,115,231,206,241,110,167,153,225,125,157, 67, 16, 66,242,135, 14, 29,234, 49,207, 75,162,201, 67,254,204,247,151,231,
-247,236,217, 35,119, 61,223, 27,191, 75, 57,202, 15, 64,184,158,109,223,190, 61,231,202,227, 45,239, 91,173,214, 18,150, 11, 25,
- 24, 24,110,122,161,101, 48, 24,206,183,105,211,198,230,229,191,115,190,206, 45, 45, 45,237, 20,236,  8, 88, 44,150,236,191,  3,
-103, 73, 73, 73, 39,150,221,174,111, 52,196, 61, 42, 42, 42,234, 18,108, 78,155,205, 22,244,252,105,181, 90,179, 27, 34, 77,203,
-202,202,178, 88,206, 98, 96, 96, 96, 66,171, 30,  8,116, 26,  7,  6,  6,  6,  6,  6,  6,  6,134,155, 29, 28, 75,  2,  6,  6,  6,
-  6,  6,  6,  6,134,134,  1,193,229, 85,170,175, 64,125,222, 38, 32,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39,227,
-100,156,140,243,198,227,244,199,125,195,189,205, 40,189, 77,213, 16, 27,128,126,140,147,113, 50, 78,198,201, 56, 25, 39,227,100,
-156, 55,235,198,186, 14, 25, 24, 24, 24, 24, 24, 24, 24, 26,  8, 60, 75,130,191,  6,132, 16, 25,165,212, 30, 68,202,  8,  0,222,
- 22,140, 51,  3,184,116, 53,193,  4, 32,119,108,210, 68, 71, 86,  0, 22,199, 22,192,212,245,211,184, 11, 23, 34, 50,169, 93,232,
- 76,  9, 17, 68, 17,191, 52,105,146,116, 16,184,221, 12,  0,186,184, 86,173,116, 90,117, 63,147,197,156,170, 20, 20, 71, 43,106,
-107,214, 27,139, 78,228,177, 28,194,192,240,151,212, 75,119,  2,152,230, 40,251,179, 40,165, 95,179, 84, 97, 96,104, 32,161, 21,
- 18, 18,178,143,227,184, 68,127,243,243,184, 20, 80,216,237,246,252,242,242,242, 78,  1, 22,104, 30,192, 40,157, 78,215, 91, 16,
-132,110,  0, 96,181, 90,183,215,212,212,108,  4,176,140, 82,106,187,202,138, 34, 20,192,104,  0,247, 57,118, 45,  1,240, 53,165,
-180,234, 42,249,218,132,133,133,125, 35,  8,  2, 45, 45, 45,237, 10,  0, 81, 81, 81,187,172, 86, 43,169,170,170, 26, 65, 41,253,
-173,158,124,156, 32,  8,239,247,232,209,163, 39, 33,228, 83, 74,233,188, 32,221, 75, 37,199,113, 30,  5,138, 40,138, 41, 87,193,
- 39,  7, 16, 54,111,222,188,168,197,139, 23,183,207,207,207,111, 13,  0,137,137,137,135,198,142, 29,123,240,137, 39,158, 40,  3,
- 80,233, 16, 92, 94,113,225, 66, 68,102,113,225,153, 71,139,138,143,142,  6,128,184,248,214, 95,203,100,156, 60, 33,225,192, 78,
- 77,163,251, 26,181,104,217,244,145,175,254, 59, 79,158,146,154,132,159,119, 28,104,247,196, 83, 47,103,170, 98, 91,188,199,196,
-214,159,135,208,208,208,125, 28,199, 37,250, 42,227,158,202,188,221,110,207, 47, 43, 43,235,228,141,147,231,249, 68, 95,245,133,
-167,125,162, 40,158, 41, 41, 41,241, 56,213, 68, 88, 88,216, 78,158,231, 83,  3,229,146, 62,109, 54, 91,190,183,169,101,194,194,
-194,246,201,100,178, 68, 95,241,244,244,159, 40,138,103,138,139,139,189,133,243,138,184,  7, 35,156, 87,195,233, 43,156, 82,125,
-  4, 96, 78, 84, 84,212,173,101,101,101,255,  0,240,114, 85, 85, 85, 91,153, 76,134,200,200,200,151,  9, 33,167,195,194,194, 62,
-169,172,172,220,  1,224, 41, 74,169,200, 74, 12,  3, 67,144,132, 22,199,113,137,  5,  5,  5, 49, 90,173, 22,192, 31,235,241, 73,
-139, 73,139,162,  8, 74,169,243,211,102,179, 33, 35, 35, 35, 80,177,209, 58, 52, 52,116,249,228,201,147,155,140, 26, 53, 74, 33,
- 45, 53,115,225,194,133,244,111,190,249,230, 31,111,190,249,230, 84, 66,200, 72, 74,233,161, 64,197, 11,128,190,  0,198,183,111,
-223,126,248, 27,111,188, 33,239,211,167, 15,236,118, 59,126,252,241,199, 30,211,167, 79,159, 71,  8,249, 22,192,231,  0,126, 10,
-180,178, 32,132,116,143,139,139,251,114,219,182,109,241,185,185,185,246, 81,163, 70, 45,  5,128,125,251,246,165,217,237,118,210,
-181,107,215,213,132,144, 49,148,210,109,245, 72,243,225, 79, 62,249,228, 61, 19, 39, 78,140,249,231, 63,255,249,  0,128,121,142,
-107, 17, 71, 58,215,119,129, 67,167,147, 69, 41,149,251, 56, 46,174, 30,206,150, 54, 55, 55, 55, 34, 59, 59,251,177,226,226,226,
-103, 92,121,139,138,138,176,127,255,126,203,204,153, 51,103,239,216,177,227,195,212,212,212, 75,  0,106,189, 17, 81,187,208,185,
-168,248,232,232,158, 89,243,194,  0, 96,217,202,199,238,221,115,176, 36,100,213,154,  5,255, 80,168,228,166,197,255,153, 45,111,
-222, 44,  5,155,246,157,194,238,163,229,164,117,247, 33,124,229,170, 69,253,  1, 44, 96,197,243,207,129, 76, 38, 75,200,207,207,
-143,209,104, 52, 30, 23,142,119, 27,151, 33, 77,128,138,244,244,116,239, 21, 11,207, 39, 22, 20, 20,196,168, 84, 42,103,221,225,
- 94,103, 72,245,138, 51,175, 80,138, 22, 45, 90, 88,124,212, 73,201,231,206,157,139,209,104, 52, 78, 30, 79,225,115, 23, 28, 45,
- 90,180,240, 21,247, 58,225, 12,132,147, 82,138,230,205,155,219,253,197, 93, 90,  1,195, 95,188, 37,206,212,212, 84, 90, 31,206,
- 64,194,217,180,105, 83,139,159,219, 63,231,196,137, 19, 19,147,146,146,208,188,121,243, 29,183,222,122,107,168, 86,171,197,154,
- 53,107,208,170, 85,171,204,208,208,208,221,203,150, 45, 19, 94,124,241,197,118,159,125,246, 25,  0, 60,193, 74, 12,  3, 67,144,
-132, 22, 33,  4, 90,173, 22, 75,151, 46,245,186, 28,135,235,247, 38, 77,154,  4,116, 65, 66, 72,167,212,212,212,205,219,182,109,
- 83,199,199,255, 49, 33,182,217,108, 70, 68, 68,  4, 30,127,252,113,197,157,119,222,217,124,192,128,  1,187,  8, 33,183, 81, 74,
-247,249,225, 27, 30, 29, 29,253,175, 41, 83,166,196,222,115,207, 61,136,138,170, 51,233, 54, 70,141, 26,133, 17, 35, 70,200, 79,
-156, 56,113,239,194,133, 11,239,157, 63,127,126, 33, 33,228,  9, 74,233,183,190,120, 53, 26,205,208,102,205,154,125,180,109,219,
-182,152,152,152, 24,164,165,165,113, 47,190,248, 98,243,244,244,116,117, 98, 98, 34,119,241,226, 69,124,255,253,247,  9, 99,198,
-140, 89,174, 80, 40, 30, 49,155,205, 43,  2,136,187, 34, 42, 42,234,229, 71, 30,121,164, 81, 85, 85,149,109,255,254,253, 39,165,
-253, 10,133, 98,122, 86, 86, 86,103, 66,200, 23,148,210, 79,174,198,201,114,184,118,238,107,153, 88,165,255,  3,116,182, 20,191,
-252,242, 75,100, 86, 86,214,183, 38,147,169,195,163,143, 62,122,110,230,204,153,234,208,208,208, 80,  0,164,170,170,234,210,180,
-105,211,204, 31,124,240,193, 75,173, 90,181,234,187,115,231,206,225,237,218,181,179, 58, 68,220,149, 66,139, 16,103,120,206, 23,
-148, 96,243, 14, 81,241,218,228,231, 19,223,158,145,122,118,239,145,243, 34,175, 14,197, 15, 91, 14,163,168,172,  6,255,219,121,
-  4,113, 81, 33, 68,174, 20, 50,195, 19, 51,111,171, 44, 56,178,133,178,149,181, 27, 28,132, 16,104, 52, 26,252,240,195, 15, 87,
- 44, 93,229,105, 89, 43,158,231, 17, 30, 30,238,119,117,  3,149, 74,133,245,235,215,123, 92,123,209,211,146, 62, 97, 97, 97,128,
-143, 69,181,  9, 33, 80,169, 84,216,190,125, 59, 56,142,243,184, 52,144,251, 62,173, 86, 11,206,199, 90, 87, 18,231,150, 45, 91,
-252,114, 73,159, 58,157, 14,  0,100, 62, 11,165, 82,137,109,219,182,121,141,179,251,119,157, 99,189, 87,127,156,219,183,111,175,
-179,244,151,251,146, 96,174,191,181, 90,173,179,  1,231,181,149, 22, 17,209, 53, 49, 49, 17,123,246,236,193,178,101,203, 34, 51,
- 51, 51,113,234,212, 41, 16, 66, 48,115,230, 76,114,203, 45,183,  8,133,133,133,232,209,163,  7,190,251,238,187,108, 86, 90, 24,
-254, 66,  8,  0,218,  1,136,198,229, 85,104,170,  1,132, 59,158, 61, 10,  0,101,  0,212,142,205,  4,160,  6, 64, 35,199,185,165,
-142,186,197, 85, 32,148,160,238,226,211,157, 29,220,210, 10, 21,209, 46,255, 73,215,112,255,237,254,233,145,155,  7,128,213,171,
- 87, 75, 15,179, 94,131,  7, 15,222, 92, 39,102,  1,136, 44,105,157, 50,247, 50,237, 97,129, 89,165, 86,171,253,102,215,174, 93,
-234,232,232, 63,226, 96, 50,153, 80, 93, 93,141,154,154, 26, 84, 87, 87, 35, 36, 36,  4,203,150, 45, 83,247,237,219,247, 27, 66,
- 72, 58,165,212,228,141, 19,192,236,139, 23, 47,198,218,108, 54, 40, 20, 10,111, 45, 97,100,100,100,224,229,151, 95,198,192,129,
-  3,227,122,247,238, 61, 27,192,183, 62, 56,161,209,104, 62,218,191,127,127,140, 70,163,193,201,147, 39,145,159,159,143,231,158,
-123, 46, 73, 20, 69,156, 63,127, 30,167, 78,157, 66, 65, 65,  1, 22, 46, 92, 24, 51,108,216,176,143,  0,172,240, 21,119,  7, 30,
-125,230,153,103, 90, 70, 68, 68,112,239,188,243, 78, 69,109,109,237,191, 29,251, 95,155, 59,119,238,253, 61,123,246,140,121,240,
-193,  7, 41, 33,100, 49,165,244, 10,225,226,198,233,201,201,178,  3, 56,230,118, 90,134,155,211, 21,231,200,132, 21, 30, 56,  9,
-128,176,  1,  3,  6, 60,107, 50,153, 58,108,219,182,237,116,183,110,221,146,  1, 92,148, 50, 95, 88, 88,152,118,246,236,217,177,
- 67,134, 12, 57,209,167, 79,159, 14,  3,  6, 12,120,182,164,164,100,166,227,127,234,206, 41,138,248, 37, 46,190,245,215, 91,118,
- 62, 49,122,211,118,179,252,249,167,166,158,107,146,148, 82,249,203,201,114,251,145, 51, 37,168, 54,216,112,119,159,203, 11,152,
-119,109,221,  4,255, 90,186, 13,143, 63,253,138,240,237,215,139, 70,156,166,208,  2, 88,237, 35, 61,175,  9,140,243, 15,177, 33,
-138, 34,  4, 65,192, 29,119,220,  1, 66,200, 21,107,121, 10,130,128,157, 59,119,162, 79,159, 62, 16,  4,  1, 19, 38, 76,  8,136,
-147,231,121, 12, 24, 48,192,185,142,162, 43,159,187,104,240,164,  9,220,227, 78, 41,  5,207,243,224, 56,206,235, 66,218,238,156,
-254,234, 37, 41,156,190,184, 92,255,243, 23, 78,201, 77, 10, 84,100,  5,202, 41,133,147,231,121,100,103,103,227,224,193,131, 62,
- 69,151, 39,125,233, 30,247, 75,151, 46,141, 75, 79, 79,223, 50,111,222,188, 72,  0, 40, 43, 43,115, 46,120, 47,147,201,112,252,
-248,113,152,205,102,188,254,250,235,150,170,170,170,  7, 89, 57, 98,156, 13,201,233, 75,139,  0,232, 57,121,242,228, 78, 57, 57,
- 57, 51,179,178,178,190,218,177, 99,199,151,132,144, 85,148,210, 33,210,231,228,201,147, 51,115,114,114,102, 78,154, 52,233,229,
- 89,179,102, 29, 38,132,172,  2,  0,247,223,142,240, 15,113, 19,113,209, 18,143,163,204,213, 57,214,211,111,247, 79, 47,220,127,
- 56, 90,131,  7, 15, 38,142, 72, 18,215, 74, 45, 80,161, 21,200,218,125, 60,207, 79,156, 57,115,102,172, 47,145, 85, 83, 83,131,
- 11, 23, 46, 32, 57, 57, 25, 19, 38, 76,136,157, 55,111,222, 68,  0,239,250,160,149,203,100, 50,236,217,179,  7,197,197,197,104,
-211,166, 13, 82, 83, 83,235, 28,240,251,239,191,227,199, 31,127, 68, 69, 69,  5, 58,118,236,  8, 92, 30,127,228, 17,237,218,181,
-123, 61, 35, 35, 99,192,128,  1,  3,108,106,181, 26,191,252,242, 11, 58,116,232,128,165, 75,151,162, 73,147, 38,208,104, 52, 56,
-113,226,  4,218,180,105,131,205,155, 55, 35, 58, 58, 26,237,219,183,183,117,236,216,113,107,121,121,249,198,188,188,188,215,189,
-180,156,229,  9,  9,  9, 83, 31,126,248, 97,197,133, 11, 23,196,207, 63,255,124, 27,165,116, 27, 33,100,226, 43,175,188,242,192,
-192,129,  3, 99, 14, 28, 56, 80,185,119,239,222,221,158, 68, 86,128, 78,150,205,253,161,100,183,219, 77,  6,131,193,108, 50,153,
-172, 28,199,229, 17, 66,204,118,187,221, 91,159,143,106,252,248,241, 77, 75, 75, 75, 31,127,250,233,167,115, 29, 34,235, 56, 46,
- 15,128,  7,  0,216,108, 54, 83, 77, 77, 77, 85, 86, 86, 86,242,152, 49, 99, 78,127,249,229,151,143,143, 31, 63,126,217,231,159,
-127, 94,  3,192,224, 78,216,164, 73,210, 65,153,140,147,215, 86, 71,158, 89,190,236,147,103,126, 92, 57, 49,233,252,249,130,230,
- 81,141,162,107,229,186,232, 11,203,150,124,182, 15,128,249, 66, 73, 21,126,251,189, 16,130, 32,195,209,243,149,232,121,251, 40,
-225,244,201, 25,221, 37,161,197,208,160,160,210, 34,212,155, 54,109,242,233,104,237,220,185, 19,130, 32, 64,173, 86,227,131, 15,
- 62,240, 73, 42,  9,  3,201, 45,242, 39,102, 56,142,243, 89,143, 72, 98, 67, 90,232,221,125,251,247,191,255,141,167,159,126,186,
-206, 53, 28, 98,131,248,227,244, 22,190,228,148, 20, 20, 23, 21,213,217, 23,200,162,244,118,187, 29,130, 32,224,227,143, 63,198,
-144, 33, 67,176,106,213, 42,159,159,119,220,113,  7, 56,142,163,129,164,103,118,118, 54, 44, 22,139, 51,204,199,143, 31,247,200,
- 59,127,254,124,127, 78,230,157,  0,166,117,232,208, 33,180,119,239,222,216,178,101, 11, 70,140, 24, 97,178, 88, 44, 39, 29,207,
-132, 22,243,230,205, 83,236,223,191, 31, 81, 81, 81,194,185,115,231, 62, 37,132,176,  1,242, 12, 13, 10, 79, 90, 68,122,230,229,
-228,228,204,116, 23, 49,174,144,254, 39,132,172,154, 53,107,214, 16, 87, 81,228,250,219,197,117,114, 21,113,153,174,142,148,171,
-136,242, 38,160,220,158,183,174,199,151,120, 20, 90,142,136,245,114,117,129,164,202,215,159,200,242,214,114,116, 71, 88, 88,216,
-160,187,239,190,219, 41,114,140, 70,163, 83, 96, 73, 34, 75,250,125,226,196,  9,116,234,212, 73, 30, 22, 22, 54,200,143,208,146,
- 68, 28, 26, 55,110,140,210,210, 82, 28, 58,116,  8,201,201,201,176, 90,173, 88,187,118, 45, 42, 43, 43, 33,  8,  2,228,114, 57,
- 44, 22,223, 67, 22, 50, 50, 50,238, 88,188,120,113,167, 69,139, 22, 93,146, 90,116, 75,150, 44,  1,165, 20,209,209,209,208,235,
-245, 40, 42, 42,194,198,141, 27, 97,179,217,160,211,233,144,150,150,166, 24, 58,116,104,247,105,211,166,  9,  0, 94,247, 66,157,
- 61, 98,196,136,176,208,208, 80, 60,245,212, 83,212, 98,177,204, 34,132,100,143, 24, 49, 98,234, 19, 79, 60, 17,149,151,151,103,
-126,232,161,135,246, 88, 44,150,119, 28,149,160, 64, 41,181,250,105, 81,120,117,178,172, 86,171,148,166,185, 53, 53, 53,104,212,
-168, 81,178,159, 49, 92,  0, 32,223,190,125,123, 54,  0,217,244,233,211, 85,  0,138, 92, 69,150,217,108, 70, 77, 77, 13,106,107,
-107,173,149,149,149,197, 47,188,240,130,237,203, 47,191,148, 57,206, 57,234, 73,104,  1,183,155,111,185, 69,171,160, 84,246,202,
-130,  5, 11,116,  3,  7, 14,228,116, 58, 29,170,171,171, 67,255,183,102,141,174,111,239,238,105, 51,115,222, 94, 23,154,216,166,
-104,251, 47,103, 80, 80, 88,  9,179,213,138,180,248,176,203,126, 24, 67,131,195,241, 34,139,211,209,114, 21, 21, 91,182,108,193,
-237,183,223,238, 44,235,114,185,188,142,243,229,143,147,231,121,220,126,251,237, 87, 56, 60,155, 54,109,242,232, 62,249,131,171,
- 40,114, 23, 71,158,  4, 24,199,113,240,215,251, 44,185,121,158,196,150,171,171,239, 38,222,252,181,246,193,243, 60,158,120,226,
-  9,  8,130,128, 23, 95,124, 17, 60,207,163,125,251,246,224,121, 30, 89, 89, 89, 16,  4,  1,125,250,244,169,119,220,119,237,218,
-133, 14, 29, 58, 56,195,212,190,125,123,116,238,220, 25, 60,207,163, 71,143, 30, 16,  4,  1,  3,  6, 12,  8,132,243,229,234,234,
-234,182, 58,157, 14, 39, 78,156,128, 76, 38,  3, 33,228, 20,165,180, 45,  0, 60,252,240,195,167,245,122,125, 83,163,209,136,135,
- 31,126,152,152,205,230, 54, 47,190,248,226, 43,  0,152,208, 98,104, 48,184,107, 17, 23, 24, 38, 77,154,244, 50, 33,100,149,228,
- 80,185, 59, 79,158,126,123,168,155, 36, 49, 36,117,237,117,118, 19,113, 82,183,223, 96, 31,231,154,221,132,149,123,215,225,222,
-128, 29, 45,169,242, 13, 84,104,249,131,209,104,108, 23, 19, 19,227, 85,100,185,126,154,205,102,164,166,166,194,104, 52,182,171,
-239, 67, 35, 62, 62, 30, 22,139,  5,159,124,242,  9,228,114, 57,228,242, 63,244,133,217,236,219, 44, 58,114,228, 72,238,174, 93,
-187, 58,116,236,216, 49,226,187,239,190, 43,185,237,182,219,162,  7, 14, 28,  8,181, 90, 13,131,193,  0,171,213,138,174, 93,187,
- 34, 35, 35,  3,249,249,249,248,223,255,254, 87,154,158,158,222,104,247,238,221, 98, 97, 97,225, 89, 31,212,253,251,246,237, 11,
- 66,  8,214,172, 89, 83, 74, 41,221,171, 82,169,126,156, 49, 99, 70,132,217,108, 22,199,142, 29,123,174,188,188,252,105,  0, 22,
-165, 82, 57,119,192,128,  1, 89, 50,153,236, 11,187,221,254, 65,125, 51,170,123,218,214,214,214, 66,165, 82,  5, 50,149,132, 80,
- 94, 94,222, 26,  0,180, 90,109, 36,128,211,206, 28,110, 48,212, 17,195,102,179,217, 24, 25, 25,169,  5,  0,199, 57,130,151,251,
- 17,173,209,104,150,159, 61,123, 38,196,117,252, 92,120,120, 56,238, 27, 51,134,235,150,157,173,104,219,174,221,128, 87,223, 91,
-180,180,113, 84,168, 57,173,113, 20,172,118, 43, 54,172, 91, 43, 82,209,186,142, 85, 59,127,142,208,146,196,134,187,163, 37,  8,
-  2, 54,111,222, 92,139,213, 63,  0,  0, 32,  0, 73, 68, 65, 84,124,197, 62,185, 92,142,255,252,231, 63,  1,  9,  3, 73, 84,121,
-235, 58,115,235,234, 34,254,  4,140, 32,  8,144,201,100,248,248,227,143, 33,138, 34,158,121,230,153, 58,221,137,174,252,  1,118,
-129, 56,207,201,152, 42,  2, 48, 35,255,125,165,243,124,247,240, 58,206,  9,200, 37,155, 55,111, 94, 64,142,214,224,193,131,253,
- 10, 87,215, 30,  6,215,112, 29, 60,120,208, 35,239,130,  5, 11,252,166,167,221,110,199,234,213,171,157, 34, 85,194,148, 41, 83,
- 30, 78, 76, 76,140,221,186,117, 43, 10, 11, 11, 81, 91, 91,139,154,154, 26,116,237,218, 53,173, 95,191,126,191, 20, 22, 22,230,
- 29, 57,114,228,110, 86,122, 24,254, 68, 71,203, 52,107,214,172,195,179,102,205,242,232, 88,185, 59, 75,190,156, 39, 23,129,181,
- 23,142, 46,195, 73,147, 38,189,140,203,195,106,246,  6,112,174,194,189,235,208,167, 17,228,166, 34,167,121,170,124,  3,233, 62,
- 12,208, 78,231,  9, 33, 48, 26,141, 30,  5,150,171, 56,176, 88, 44, 40, 47, 47,135,221,110,191,234,185,190, 60,181,100,253,  9,
-173, 67,135, 14,253,243,129,  7, 30,184, 16, 22, 22,214,182,164,164,164, 88, 20,197, 62, 59,119,238,140,230,121, 30,161,161,161,
-  8, 13, 13,197,143, 63,254,  8,141, 70,131, 39,158,120,162,216,110,183,111,  9,  9,  9,137, 50, 24, 12,191, 22, 22, 22,190,234,
- 85,193,  8,194,128, 30, 61,122, 96,255,254,253,184,116,233,210,122, 66, 72,251,  7, 31,124,240,246,164,164, 36, 50, 99,198, 12,
-227,239,191,255,254,  1,128, 98,173, 86,187,120,241,226,197,189, 59,118,236, 24, 50,118,236, 88, 16, 66, 22, 80, 74,141,129,198,
-185,182,182,182,142,192,170,170,170, 66,117,117, 53,180, 90,173, 45,192, 52, 19,112,121,172,149, 52,222,202,121,111, 28,110,150,
-116,127, 40,207,243,244,242, 33, 84,240,198,167,213,106,167, 47, 90,180, 72,237,254,146,130,221,110, 71, 81, 81, 17, 66, 67, 67,
- 49,229,213, 87,229,111, 60,247, 96,  7,153, 46,118, 39,199, 17,152, 45,180,130,138,230,181,181, 69,247,108,101,213,206,159,  3,
- 73, 24,220,117,215, 93, 87,116, 23,202,229,114,172, 95,191, 30,195,134, 13,115, 54, 92, 58,118,236,232,183,113, 37,  9,131, 59,
-239,188,211,233, 12,173, 93,187,214, 99,183,159,228, 72,  5, 34,  8,165, 99,159,124,242, 73,240, 60,143,127,253,235, 95,120,246,
-217,103,193,113, 28,222,127,255,125,112, 28,135,215, 94,123, 45, 96,145,233, 42, 96,242,222,190,252,153,248,108, 21,202,230,199,
-  2,  0, 66, 66, 67,165,  8,213,171,238,225,121,222,233,100,181,107,215, 14,130, 32, 32, 43, 43, 11, 60,207, 59,157,172, 65,131,
-  6,185,166, 35, 13,132,147,231,121,156, 60,121,210, 25,230,172,172,172, 58, 78, 22,207,243, 24, 60,120,112, 32,193,156, 25, 30,
- 30, 62, 45, 35, 35,163,213,236,217,179,  5,153, 76,134,190,125,251,182,120,232,161,135,206, 70, 69, 69, 69, 77,159, 62, 93,227,
-225, 28, 53,128,182,173, 90,181,210,178, 82,195,208,128,142,214, 52, 15,127, 69,184,142,185,170, 71, 67,114,149,235,241, 18,135,
-187, 56,114, 56,100, 91,252,113,121, 58,215, 31,120, 73, 65,250,178,212,  3, 17, 90, 14,219,217,231,197, 52, 26,205,111,197,197,
-197, 89,106,181,186,142,200,242, 36,184,100, 50, 25, 10, 11, 11,161,209,104,126, 11,230, 77,244,215,117,232, 16, 53,207,185, 36,
-108,191, 65,131,  6,125,190,126,253,250,248, 13, 27, 54, 96,247,238,221,136,142,142,198,188,121,243, 46, 22, 21, 21,253,147, 82,
-186, 62,144,235, 54,109,218,180,181, 78,167,195,246,237,219,  1, 96, 51,128,  7, 31,127,252,113, 98,181, 90, 49,127,254,252, 90,
-  0,107,194,195,195, 87, 47, 91,182,172, 67,219,182,109, 21, 27, 54,108,168,218,189,123,247, 79,  1,138, 44,187, 40,138, 87,  8,
- 44,215, 52, 13,  9,  9,  9,196,209,178,134,133,133, 29,170,170,170, 26,101, 48, 24,170,148, 74,101, 72, 85, 85,149,201, 85, 96,
- 73,252, 60,207, 11, 39, 79,158,188,  0, 32, 45, 44, 44,236, 16, 92,186, 24,235,100, 48,158,239,219,183,111, 95,222,253, 30, 20,
- 21, 21,161,176,176, 16, 22,139,  5, 29, 59,118, 36, 50, 98,149,149,159,251,245, 97, 86,205,252, 37,142, 22,149,202,186,244,150,
-160,167, 55, 13,215,174, 93,235,252,205,113, 28, 28,175,251,251, 21, 69,235,215,175,247, 57, 96,221,173,235,208,175, 53, 46, 29,
-255,225,135, 31, 94, 94,222,194,225,100,113, 28,135, 73,147, 38, 65,169, 84, 98,198,140, 25,152, 52,105, 18,120,158,247,219,117,
-232, 42, 96, 82, 94,212,187, 54,142, 46, 23, 10,199,120, 40, 66,136,171,216, 34,129,138, 55, 95,110, 94, 32, 61,  1,174,156,210,
-121, 42,149,202,235, 64,120, 55, 78,226, 35,222, 63, 16, 66,206,196,199,199,111,207,202,202, 10,219,183,111, 31,222,127,255,125,
-185,201,100,106,178, 97,195,  6,231,117, 61,165, 87,109,109,173,154,149, 28,134,134,112,179,124,252, 93,226, 54,190,138,184,118,
-227,249,248,116, 63, 30, 46,251, 92,121, 75,220,158, 99,174,251,221,197,149,251, 53, 92,143, 41,241,234,104,249,171, 44,252,  9,
-174, 64, 28, 45,189, 94,255,211,154, 53,107, 58,143, 25, 51,134,247,213,109, 88, 91, 91,139,216,216, 88, 28, 62,124,216,166,215,
-235,127, 10,192, 41, 11,154,208,242, 80,169,108,136,139,139,147, 89,173, 86, 52,111,222, 28,  9,  9,  9, 48, 26,141,168,168,168,
-144,  5, 42,178,  8, 33,242, 78,157, 58,201,  0,160,162,162,  2,184,252,170,105,139,244,244,116,236,223,191, 31,229,229,229,223,
-  2, 24, 56,109,218,180,142, 93,187,118,149, 47, 93,186, 84,255,232,163,143,126,107,181, 90, 95, 15,208,141, 48,219,108,182, 84,
-142,227, 44, 21, 21, 21,  5,174,233, 25, 27, 27, 27,169,213,106, 73, 81, 81,145, 53, 16,161,213,182,109,219, 61,231,206,157,195,
-244,233,211, 75,102,206,156,153, 94, 93, 93,125,169,178,178,210,230, 42,182,140, 70, 35,215,168, 81, 35,229,252,249,243,213,  0,
-208,182,109,219, 61,222,132, 86,109,109,109,146, 70,243, 71,195,216,100, 50,161,176,176, 16,133,133,133, 40, 42, 42, 66,117,117,
- 53,210,210,210,160,215,235,147, 89, 53,243,151,  9,173, 58,221,103,174,229,219,245, 65, 94,159,178,238, 42, 96,238,186,235, 46,
-231,216, 46,201, 33,147,182,229,203,151,187, 15, 48, 15, 72,104,125,248,225,135,120,242,201, 39,161, 82,169, 48,123,246,236, 58,
- 93,135,238,226, 64, 20, 69, 18, 72,220, 83, 95, 50,160,112,110, 36,  4, 65, 64,212,163, 69,117,186,232, 60,  8,142,128,194, 57,
-115,230,204,160,116, 29,186,114, 38, 39, 95, 46, 42, 31,127,252, 49, 70,141, 26,133,173, 91,183, 94,117,215, 97,102,102,230,146,
- 85,171, 86,133, 29, 57,114,  4, 85, 85, 85, 40, 41, 41,129,201,100, 66,126,126,190,215, 94,  1, 71, 93,174, 98, 37,135,225, 79,
-198,222, 63,153, 55,104,215,227,253, 60,192,  3, 22, 90,129, 56, 90, 38,147,105,246, 83, 79, 61,245,120,191,126,253, 34, 67, 66,
- 66,112,225,194,133, 43, 68, 86, 77, 77, 13,116, 58, 29, 12,  6,  3, 86,174, 92, 89,101, 50,153,102,251, 19,  7, 86,171, 21, 49,
- 49, 49, 40, 45, 45,133,232,101,252, 52,199,113, 80,171,213,168,169,169,129, 55, 81,224,235,129, 97,177, 88, 96,181, 90, 97,181,
- 90, 97,177, 88, 80,207,233,157, 52,210,196,175,181,181,181,  0, 80,219,184,113,227,230, 42,149, 10,185,185,185,192,229, 55,251,
-250,221,126,251,237, 66, 89, 89, 25,125,232,161,135,182, 81, 74, 31,246, 51, 59,190,121,203,150, 45,169,  0,160, 86,171, 79,  0,
- 64,126,126,190,181,162,162,162,142, 83,168,209,104,232,176, 97,195,226, 41,165,216,178,101, 75,170, 92, 46,167,240, 50,231, 21,
-  0,227,138, 21, 43,142,132,133,133,125,153,147,147, 51,102,200,144, 33,135, 91,183,110,157, 90, 91, 91, 91,108, 48, 24, 12, 70,
-163,145,202,100, 50,121, 68, 68,132,106,221,186,117,167,119,238,220,217, 47, 52, 52,244,203, 21, 43, 86, 28,  1,224,209,121,211,
-106,181,249,122,189, 62, 69,186,167,174, 34,171,176,176, 16,148, 82,156, 57,115,  6, 26,141,230, 28,171, 71,254, 58, 72,141, 42,
-119,231,197,125, 95,160, 34,203, 85, 24,172, 91,183,206,231, 28, 90,129,114,186,138,162,103,159,125, 22,115,231,206,189,194,209,
-154, 49, 99,  6,  0,224,213, 87, 95, 13,120,140,150,228, 94, 21,206,141, 68,220,147,229,117,194, 14,  0, 68, 10, 95, 61,167,116,
-227,121, 30,211,167, 79,191, 98,144,186,107,215, 94,128, 93,124,117,194, 89, 92, 92, 12,158,231, 17, 25, 25,137,251,238,187, 15,
-  3,  6, 12,112,118, 65,214,151,247,216,177, 99,219, 95,122,233,165, 54,153,153,153,120,243,205, 55,203,195,195,195, 67,254,239,
-255,254,143,175,168,168, 32,190, 28, 45, 38,180, 24, 24,130, 32,180,164,  2, 22,232, 91,135,158, 42, 75, 66, 72, 63,215,185, 54,
- 40,165,149,132,144,251,250,247,239,255,221,215, 95,127,173,110,218,180, 41,142, 29, 59,134,242,242,114,152,205,102,200,229,114,
-196,199,199,163,162,162,  2,159,125,246,153, 65,175,215,223, 71, 41,173,244,197,  9,224,149, 78,157, 58,125,244,238,187,239,170,
-218,183,111,143,242,242,114,212,212,212,212,153,197, 58, 52, 52, 20,106,181, 26,123,246,236,193,218,181,107, 13,  0, 94,241,195,
-233, 73,205,193, 98,177, 56,  5,151, 63,161,229,198,169,149, 92, 29,189, 94, 15,  0,214,164,164,164, 56,  0, 56,115,230, 12,  0,
-228,165,165,165, 77,107,218,180, 41, 89,188,120, 49,165,148,174,245, 36,178,220, 56,203,123,244,232,113,  9, 64,156,217,108,150,
-  3, 64,101,101,165,165, 81,163, 70, 49, 74,165, 82, 84,171,213,162, 74,165, 18, 47, 92,184, 96,179,217,108,114,  0,232,209,163,
-135, 25, 64, 33, 92,198,130,184,113,138,  0,170, 22, 44, 88, 48,109,236,216,177, 89,217,217,217,153,143, 61,246,216,161,135, 30,
-122,136, 75, 72, 72,136,168,174,174, 54,158, 58,117,234,210,123,239,189, 87,189,107,215,174,126,130, 32,156, 93,176, 96,193, 52,
-  0, 85,142,115,175,224,180,217,108, 63,109,216,176,225,159, 67,134, 12,225, 11, 10, 10, 80, 84, 84,228, 20, 89, 69, 69, 69,200,
-200,200,192,206,157, 59,237, 22,139,101, 67, 61,210, 51, 88, 78, 14,227,188,220,  8,161, 82, 89,247, 38,176,164,198, 84,160,156,
-174,162,104,212,168, 81,117, 92, 44,185, 92,142,111,190,249,198, 99,189,225, 97,134,243,126,238,243, 73, 73, 97,122,233,165,151,
-234,136,182, 41, 83,166,120, 13,154,191,244,148,120, 42, 63, 78,168,251,214,161,151,114,238, 43,156, 82,221, 41,  8,  2,166, 76,
-153, 18,176,163,  5,183, 49, 90,158, 56,165,184,223,118,219,109,208,235,245, 78, 33,235,205,209,242,151,158,118,187,253,201,185,
-115,231,210,208,208,208, 91,171,170,170,254,113,238,220,185,133,122,189,190, 75,101,101,165, 79, 71,203,100, 50, 41, 89, 57, 98,
-156, 13, 49,151,214, 77, 37,180, 28, 15, 73, 36, 37, 37,213, 89, 59,139,227,184, 58, 91,125,198, 25, 56, 10,238, 58, 66,200,240,
-110,221,186,125,241,228,147, 79,134,180,111,223, 94, 72, 73, 73, 65,109,109, 45,114,115,115,113,248,240, 97,219,138, 21, 43,170,
-244,122,253, 63, 40,165,235,  2,224, 91, 68,  8, 89, 59,112,224,192,215,186,118,237,250,200,212,169, 83,101, 45, 90,180, 64,101,
-101, 37, 34, 34, 34, 16, 19, 19,131,227,199,143, 99,229,202,149,246,210,210,210,143,  0,188, 65, 41, 45,169,111,131,223, 98,177,
-224,222,123,239,133, 40,138,248,224,131, 15, 64,  8,169, 79,243,214, 98,177, 88, 40,  0, 82, 90, 90, 10,  0,122,199,236,210, 56,
-117,234, 20,  0,156, 77, 77, 77, 13,  1,128, 13, 27, 54, 16,  0,129, 46,233, 67, 93,157,173,140,140,140, 92,247,202, 81,114,178,
- 36, 23, 12,254, 23,130, 54,142, 30, 61,186, 88,175,215, 15,124,246,217,103, 95,251,240,195, 15,199,124,248,225,135, 87, 28, 20,
- 26, 26,250,229,251,239,191,255,198,232,209,163,139,189,185, 89, 14,  7,239,213,113,227,198,141,254,237,183,223, 66, 84, 42, 21,
-106,107,107, 81, 86, 86,  6,139,197,130,180,180, 52, 20, 23, 23, 99,209,162, 69,213,  6,131,225,117, 86, 28,255, 26,184, 10,  3,
-111,174,150, 63,145,229,203,213,249,225,135, 31, 60,206, 81, 85, 95, 78,119,177, 17,232,220, 86,190, 26, 69,210,180, 52,158,166,
-140,168, 79,189,230,137,151,231,121,188,243,206, 59,206, 73, 91, 61, 57, 89,245,113,180, 36,206,200,200,200,203, 54,185, 99,201,
-164,193,131,  7, 95, 53,175, 99, 57,178, 39, 92,174, 49,243,133, 23, 94,152,150,145,145,209,  2,128,210, 53, 13,216, 34, 13, 12,
- 12, 65, 22, 90,118,187, 61,191,101,203,150,117, 42, 56,127,139,153, 90,173,214,252,  0, 11,247, 90, 66, 72,218,251,239,191,255,
-148, 86,171,237,167,215,235,219, 56, 42,142,223,106,107,107, 55,152, 76,166, 57,245, 89,  4,218, 33,156, 38, 18, 66, 62, 24, 56,
-112,224,140, 62,125,250,140,124,238,185,231,  8,165, 20,243,231,207,167,191,255,254,251,114,  0,175, 80, 74,127,191,154, 68,138,
-140,140, 60,242,217,103,159,197,126,247,221,119,176, 90,173,152, 51,103, 14, 66, 66, 66,142,212, 35,124,197, 60,207,127,158,157,
-157,125,255,206,157, 59, 23, 81, 74,127, 85, 40, 20, 11,187,119,239, 62,110,231,206,157, 75, 40,165,135,121,158, 95,216,181,107,
-215,113,123,247,238, 93, 70, 41, 61, 88,143,224, 57,157, 45,155,205,115, 79,163, 39, 39,203, 15,170, 30,120,224,  1,203,  3, 15,
- 60,240,220,232,209,163, 63,217,187,119,111,151,138,138,138, 54,  0, 16, 30, 30,254, 91,231,206,157,247,124,253,245,215,199, 29,
- 78,150,209,223,189, 33,132, 12,107,211,166,205,183,111,190,249,166, 54, 51, 51,147,111,222,188, 57,242,242,242,112,232,208, 33,
-219,167,159,126, 90, 99, 48, 24,238,162,148, 94, 98,197,241,175, 19, 90,148, 82,132,135,135,215,105, 68, 73,175,252,215,183,187,
-208,245,193, 44, 45,213,227,206,235,141,211,215,180,  9, 18,116, 58,157,115,114,211, 64,134, 44,136,162,239,249,216, 40,165, 78,
- 78,105, 11, 64,100,249,125, 67,208,177,  4, 78,192,156,129, 76,239,160,213,106, 97,181, 90,157,188,  1,188,249, 73,234,121,207,
-126,  0,240, 67,243,230,205, 79,  1,104,198,196, 21,  3, 67,  3, 10,173,242,242,242, 78, 13,121, 97,135,144,122,195,177,  5,139,
-243,119,  0,163,  9, 33,239,254,252,243,207, 82, 63,194,116,127,235, 37,250,195,177, 99,199,134,  8,130,240,159, 47,191,252,178,
- 43,165, 20, 97, 97, 97,187,242,242,242,254,175, 62, 28, 54,155,237,  1, 66,200,227,210, 91,132,102,179,249,  1, 66,200, 83,148,
-210, 26,151,255,157,191,235, 27,117,  0, 38, 74,105, 99, 47,255,155,234, 33,178,156,206, 22,  0,243,215, 95,127, 93,  3,224, 23,
-252, 49, 79,150,213,177, 25,225,210, 93,232,231,190,108, 36,132, 52,159, 50,101,202, 76,153, 76,214,183,182,182, 54, 65,171,213,
-158,183,217,108, 63,233,245,250, 87, 40,165,101,172, 40,254,117, 48,155,205,  5, 45, 91,182,228, 61, 53,160,124, 61,200,125, 53,
-172,236,118,123,126,122,122,186,223,198,153,  7,206,  2, 31,249,232,108, 90, 90, 26, 23, 40,151,  4,139,197, 82,236, 43,156,105,
-105,105,168, 47,167,191,184,167,166,166,122,140,187, 31, 65, 88,224,163,254,184, 42, 78, 95,233,233, 11,  6,131,225, 82,116,116,
-116,141,209,104, 20, 76, 38,147, 96,179,217,234,216,143,106,181,186,132,149, 28,  6,134,107, 20, 90,127,103, 56,132,213,157, 65,
-228, 51,  1,184, 63,  8, 60, 70,183,223, 53,190,126,215, 19, 13,225,  8,137,  0,244, 65, 74,195, 82,  0, 15,177, 34,119,253,161,
-180,180,244,214, 96,115,150,149,149,  5,189,161, 86, 82, 82,146,213,  0,113,239,116,179,114,250, 66, 65, 65,193,173,172,100, 48,
- 48,  4,  7, 28, 75,  2,  6,  6,  6,  6,  6,  6,  6,134,134,  1,  1,208,207,211, 31,245,121,155,128, 16,210,175,190, 23,246,199,
-207, 56, 25, 39,227,100,156,140,147,113, 50,206, 27,143,211, 31,247, 13,247, 54, 35,165,180,193, 54,  0,253, 24, 39,227,100,156,
-140,147,113, 50, 78,198,201, 56,111,214,141,117, 29, 50, 48, 48, 48, 48, 48, 48, 48, 52, 16,152,208, 98, 96, 96, 96, 96, 96, 96,
- 96, 96, 66,139,129,129,225,239,  8, 66, 72,139, 38, 77,154, 28,109,217,178,101,  1, 33,100,124,  3, 95,235,190,172,172,172, 50,
-149, 74,181,142, 16,210,130,165, 62,  3,  3,  3, 19, 90, 12, 12, 12, 55,180,200,106,211,166,205,182, 99,199,142,101,108,216,176,
-161,113, 66, 66,194,219, 13,121,189, 78,157, 58,189,181,117,235,214,200, 53,107,214,244,143,139,139,219,114, 53, 98,139, 16,210,
- 34, 57, 57,249,104,203,150, 45,243,  9, 33,247,  5, 57, 61,198,103,103,103,151, 43,149,202,181, 76,  8, 50,220,  4,229,191, 53,
- 33,164, 13, 19, 90, 12, 12, 12, 12, 13, 40,178,118,236,216, 17,101, 52, 26,113,236,216, 49,148,148,148, 28,108,200,107,158, 56,
-113,226,210,142, 29, 59,144,152,152,136, 37, 75,150, 68,167,166,166,110,173,143,160,145,194,124,244,232,209,140, 13, 27, 54, 36,
-196,196,196,188, 23,204,240,117,233,210,101,198,214,173, 91, 35,214,173, 91, 55, 32, 58, 58,122, 11, 19, 91, 12, 55, 96,185, 87,
- 18, 66,238,231, 56,110, 79,235,214,173,127,203,204,204,252,149,227,184,157,132,144, 81,132, 16,254,166, 76, 19,105,137,133,213,
-171, 87,111,  6,128,193,131,  7,223,198,178, 10,  3,  3,195, 53, 86,182,153,153,153,153,187,118,237,218,165, 49, 24, 12, 88,182,
-108, 25,166, 78,157,106, 45, 47, 47,223, 10,160,214,195, 41,123,  1,252, 59,144,165,183,  8, 33,161,  0, 30,  7,208,217,195,223,
-218,200,200,200, 30,211,166, 77, 19,110,191,253,118, 24,141, 70,140, 24, 49,194,120,226,196,137,246,148,210, 19,129, 10, 67,131,
-193,128,125,251,246,225,174,187,238, 90,103,181, 90,  7,  6, 43, 93,194,194,194, 14,255,240,195, 15,183, 52,110,220, 24,103,206,
-156,193,184,113,227, 74,138,138,138,122,250, 11, 27,  3,195,223,160,204,167,  0,120, 68,167,211, 61,216,171, 87,175,136,187,238,
-186, 11, 81, 81, 81,176,217,108, 56,127,254, 60, 86,173, 90,133, 29, 59,118, 92, 48,155,205,115,  1,124, 76, 41,173,240,196,115,
- 35,106, 17, 66, 41,197,234,213,171, 41,128, 94,142,200,109,102, 89,134,129,129,225, 26, 43,221, 29,122,189, 62, 75,175,215,163,
-186,186, 26, 73, 73, 73, 16,  4,193,227,177,197,197,197,216,190,125, 59,158,120,226,137, 35,133,133,133, 61,125,173,123, 73,  8,
-137,232,208,161,195,142,141, 27, 55,182,  8,  9,  9,113,238, 23, 69, 17, 22,139,  5, 86,171, 21, 22,139,  5, 38,147,  9, 38,147,
-  9, 10,133,  2,106,181, 26,145,145,145,135, 40,165,109,  2, 21, 89,  7, 14, 28,192,216,177, 99, 75,202,202,202,130, 42,130,  8,
- 33, 45, 98, 98, 98,182, 44, 90,180, 40, 58, 45, 45, 13,231,206,157,195,132,  9, 19, 74,207,158, 61,219,131,137, 45,134,191,113,
-121,159, 52,124,248,240, 25,177,177,177, 92,235,214,173, 17, 31, 31, 15,147,201,  4,131,193,  0, 74, 41,120,158,  7,165, 20,149,
-149,149,216,178,101, 11, 54,110,220,104,186,116,233,210,103,  0,230, 80, 74, 79,186,136,172, 27, 82,139, 56,133,214,224,193,131,
-  9,203, 46, 12, 12, 12, 65,170,120,127,171,172,172,108,109, 50,153, 80, 91, 91, 27,208, 57,103,206,156,193,248,241,227,143, 20,
- 22, 22,118,243,228,108, 17, 66, 66, 59,116,232,176,123,203,150, 45, 45,140, 70, 35,170,170,252,175, 59,175, 80, 40,160, 82,169,
- 16, 21, 21,181,147, 82,154,237,173, 37,222,186,117,235,125, 59,119,238,140, 52, 24, 12, 56,120,240, 32,238,187,239, 62, 75,121,
-121,249, 54,120,118,223,  0,160, 28,151,215, 81, 61,235,129, 47, 25,192, 83,  0, 82,188,156,171,141,142,142,238,190,120,241, 98,
-121,211,166, 77,161,215,235, 49,106,212,168,242, 19, 39, 78,116,166,148,230,178,220,195,240, 55, 44,239, 39,142, 29, 59,150,110,
-183,219, 81, 90, 90, 10,147,201,  4,189, 94,239, 20, 90, 50,153, 12,148, 82,216,108, 54,103,195,104,255,254,253,216,176, 97,  3,
- 61,115,230,204, 84, 74,233,116, 73,104,221,136, 90,132,103, 89,132,129,129,161,  1, 48,186, 75,151, 46,  7,255,247,191,255,169,
- 20, 10,  5, 86,174, 92,233,181,235, 48, 54, 54, 54,115,225,194,133,169,105,105,105,152, 55,111,222, 45, 35, 70,140,120, 28,192,
- 76, 15,156,143,111,220,184,177,133,209,104,196,193,131,  7, 49,110,220,184,220,162,162,162,195,238, 34, 38, 53, 53,181,199,123,
-239,189, 39,116,236,216, 17, 85, 85, 85,232,223,191,191, 30,192, 35, 62,194, 58,113,211,166, 77,145,  6,131,  1,213,213,213,232,
-213,171, 23,202,202,202,228,  0,250,120, 59,193, 96, 48, 32, 37, 37,165,  5,128, 43,196, 91, 84, 84,212,127,207,157, 59,215, 91,
-173, 86,251, 76, 32,139,197,130,252,252,124,132,135,135, 99,213,170, 85,145,205,154, 53,123, 21,192,  3, 44,235, 48,252, 29, 97,
- 54,155,241,213, 87, 95,161, 67,135, 14,104,213,170, 21,106,106,106,156,162,203,108, 54, 59, 69, 22,  0,112, 28,135,206,157, 59,
- 35, 61, 61,157, 60,243,204, 51,247,  1,152,126, 35,167,141, 36,180,166,177, 49, 90, 12, 12, 12,193,  2,165,244,  4, 33,164,125,
-191,126,253,182, 46, 95,190,188,209,160, 65,131,208,172, 89, 51,225,238,187,239,142,174,173,173,237,235,214, 26,142, 24, 55,110,
-220,190,243,231,207,167, 58,118,117,246, 66,219, 57, 36, 36, 68, 26,219,148, 91, 84, 84,212,201,189,155, 81,169, 84,174,253,229,
-151, 95,  4,133, 66,129,189,123,247, 98,252,248,241,165,185,185,185,254,186,229,194,205,102, 51,100, 50, 25,  0, 32, 63, 63,223,
-111,252,206,157, 59,  7, 81, 20, 77,158,254,227, 56, 78,185,127,255,126, 52,110,220,216, 39,  7,199,113,144,203,229,174,187, 42,
- 88,206, 97,248,155,194,106, 54,155,209,169, 83, 39,228,230,230, 98,255,254,253, 78,193, 85, 90, 90,138, 11, 23, 46,212, 57,120,
-207,158, 61, 56,112,224,  0,122,246,236,233,206,115, 67,106, 17,222, 17,161,215, 87,175, 94,205,  4, 22,  3,  3, 67,176,197, 86,
-143, 59,239,188,115,203,162, 69,139,162,147,146,146, 16, 18, 18, 18,234,225,184, 75,132,144,195,130, 32,164,  6,202, 93, 84, 84,
-116,216,211, 88,174,184,184,184,246,102,179, 25,  7, 14, 28,192,125,247,221, 87,226, 24,243,229,111,236,211,155,125,251,246,189,
-115,221,186,117,145, 42,149, 10,135, 15, 31, 14,164,235, 48, 15,192, 28, 79,127,148,148,148,220,215,179,103,207, 41,  0, 34,189,
-156,171, 77, 79, 79,239,190,111,223, 62, 57, 33,  4,121,121,121, 24, 53,106, 84, 57,128,127,177, 92,195,240, 55,197,107,195,135,
- 15,255,244,241,199, 31, 15,235,218,181, 43,242,243,243,157,130,171,125,251,246,104,219,182, 45,126,255,253,119,172, 93,187, 22,
-  7, 14, 28,128, 82,169, 68,179,102,205, 80,243,238,123,192,123,176, 74, 36, 55,170, 22,113,190,117,200,192,192,192,208, 32,149,
- 12, 33, 45,228,114,249,  7,209,209,209,237, 10, 10, 10,158,165,148, 46,113,251, 63, 98,228,200,145,135,151, 46, 93, 26,159,151,
-151,135,166, 77,155,174,164,148, 14,245,192,179,130, 82,122,215,153, 51,103,208,173, 91, 55,143,142, 22, 33,100,124, 92, 92,220,
- 27,213,213,213,149,122,189,126, 84,160,  3,204,  9, 33, 45,154, 55,111,190,117,229,202,149,141, 52, 26, 13,142, 30, 61,218, 96,
-131,225, 91,182,108,185,109,207,158, 61, 81,130, 32, 96,239,222,189, 24, 55,110, 28, 27, 12,207,112, 35,148,243, 16,  0, 47,164,
-165,165, 61,255,232,163,143, 42,111,185,229, 22,228,231,231,163,164,164,  4,151, 46, 93,194,174, 93,187,  0,  0,  9,  9,  9, 72,
- 72, 72,192,241,227,199,177,125,251,246,170,154,154,154,  7, 40,165,223,221,208,105,195,132, 22,  3,  3,195,159, 92, 33, 39,195,
-101,176,248,200,145, 35, 59, 45, 94,188, 56,190,172,172, 12,187,119,239,198,136, 17, 35, 94,161,148,206,244,112,222,203,133,133,
-133, 51,  0,224,208,161, 67,238, 99,180,188, 14, 78,175,143,  8, 74, 73, 73,217,186,108,217,178, 70, 81, 81, 81, 56,118,236, 24,
- 70,141, 26,117,184,182,182,182,117,176,226,174,209,104,214, 21, 22, 22,246,151,203,229,216,185,115, 39,238,187,239, 62, 54,189,
-  3,195,141, 86,190, 99,  0,188,122,203, 45,183, 60,242,224,131, 15,242,201,201,201, 40, 40, 40,192,207, 63,255,140,102,205,154,
-225,252,249,243,216,184,113,163,185,164,164,228,  3,  0, 57,148,210,202, 27, 62, 81, 26,114,197,106,176,149,205, 25, 39,227,100,
-156, 87, 30,183,246,200,145, 35, 84,130,221,110,167,  5,  5,  5,116,221,186,117, 52, 46, 46,238, 48,128, 80, 79,156,  0, 66, 91,
-181,106,117,236,248,241,227,244,220,185,115,212, 98,177, 56, 57,142, 29, 59, 70,  1,108,190,214,112,  2,104,145,144,144, 80,188,
-105,211, 38,122,252,248,113, 26, 23, 23,119, 62,152,113, 79, 73, 73, 41, 46, 41, 41,161, 63,255,252, 51,141,142,142, 46,  6,208,
-130,229, 37,198,121, 35,114, 58, 26, 82,139, 59,118,236,104,159, 59,119, 46,125,228,145, 71,104,114,114,178, 29,192,127,  1, 36,
- 52,164,246,184,222, 54,246,214, 33,  3,  3,195,159, 13,229,174, 93,187,160, 84, 42,157, 59,126,253,245, 87,215,121,180,170,188,
- 52, 10,171,  8, 33,221,  6, 13, 26,180,117,238,220,185,173,172, 86,231,208, 14,108,218,180,  9,  0, 76, 65,104,120,158, 32,132,
-244, 28, 56,112,224,156,168,168,168,118,133,133,133,175,  5, 51,226,121,121,121,207,182,105,211,102,102,117,117,117, 85,125,186,
- 54, 25, 24,254,134, 38, 78, 30,128,177,132,144,183,247,239,223,255, 10,  0, 10,224, 77, 74,233,209,155, 45, 45,152,208, 98, 96,
- 96,248,179, 49,254,161,135, 30,114, 31, 44, 30,208,204,240,142,129,243,217,131,  7, 15,118,159, 25,222,235,224,244,171, 17, 91,
-  0,  6, 52,208,195,103,  9,128, 37, 44, 11, 48,220, 68,130,235, 48,128,123,110,230, 52, 96, 66,139,129,129,225,207,174,120,207,
-  2,152,112, 13,231, 87,193,243, 60, 91, 12, 12, 12, 12,215, 29,216,162,210, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48,
- 48, 48, 48, 48, 48,252,189, 64,  0,244,243,244,  7,165,116, 67,192, 36,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39,
-227,100,156,140,243,198,227,244,199, 93, 31,253,241,183, 64,128,175,113, 18,246,234, 43,227,100,156,140,147,113, 50,206, 64, 56,
- 29,141,120,130,203,189, 38,156,244,251, 58,159,142,128, 92,175,113,191, 89, 56,111,202,233, 29,  8, 33,206,196, 34,132,136,  0,
- 68, 26,132, 25, 78,  9, 33,210,141,  8, 10, 31, 67,  3, 88,157,151,239, 17,249, 67,143,179,251,196,192,192, 80,175,186, 67,230,
-242,176,181,  3,176, 19, 66,112,189,213, 37,193,124,206, 53, 68,220,111,102,206, 27,  5,188,175,  4,147,201,100,235, 26, 53,106,
-212,187,180,180, 84,116,236,135, 66,161,  0,199,113, 16,  4,193, 80, 93, 93, 29,122, 21, 55,227,191,177,177,177,227,203,202,202,
- 68,142,227,160, 82,169, 64,  8,113,114, 86, 84, 84,132,254,213,137,146,146,146,114,201, 96, 48,232,220,247,171, 84, 42,227,217,
-179,103, 67,110,134,138, 82, 46,151, 15,143,140,140, 12, 47, 41, 41,161,210,226,183, 50,153, 76, 90,  8,215, 86, 81, 81,241,121,
-160,124,145,145,145,123, 34, 35, 35,195,165,243,  9, 33, 40, 43, 43,171, 40, 42, 42,234,  2,  0,106,181,122,187, 86,171,141,226,
-121, 30, 50,153, 12, 50,153, 12,122,189,190,172,180,180,180, 27,123,108,253, 61,177,124,249,114,217,192,132,  9,205,120,106,104,
-203,113, 52, 76, 20, 73,165,141,168,127, 93, 91,240,223,211,129,156, 63,114,228, 72, 59, 75,197, 63, 15, 74,165,242,131,216,216,
-216,  7,107,106,106,244,132, 16, 74,  8,193,229,199,  0,174,248,180,219,237,249,165,165,165,157,252, 60,108,  5,133, 66,241,126,
- 92, 92,220, 56,189, 94,175,119,240, 81, 66,  8,226,227,227,235,240,  1,128,213,106,205, 47, 41, 41,233, 20, 72, 88, 99, 98, 98,
- 22,168,213,234,127,232,245,250, 90,135, 48,114,237,161,113,125,152,255, 94, 82, 82,210,195,159, 48, 80, 40, 20,115, 98, 99, 99,
-255,233,136, 59,  8, 33, 52, 58, 58,250,154,227, 30, 27, 27, 59,174,182,182,182, 78,220, 99, 98, 98, 60,114,122,139,187, 39, 78,
-215,112, 18, 66, 16, 29, 29,125,205,225,188, 30, 57,111,120,161,  5,128, 35,132,172,232,214,173, 91,175,205,155, 55,115,199,142,
- 29,227, 50, 50, 50, 96,183,219, 33,138,151,243,117, 98, 98,162,230, 42, 30,224, 11,123,244,232,113,239,150, 45, 91,184, 21, 43,
- 86,112,157, 59,119,  6, 33,  4,118,187, 29,118,187, 29,173, 91,183, 86, 95,163, 64,208,241, 60,255,140, 66,161,184,205,102,179,
-181,  2,  0, 65, 16,142,154, 76,166,205, 54,155,109, 54,165,180, 38, 16, 30,139,197,162, 41, 46, 46,190, 34,109,210,210,210, 20,
- 87, 27,182,208,208,208, 29, 28,199,165, 57, 19,216, 33, 56, 60, 21,102,233,147, 82,122,166,164,164, 36,219, 27,103, 68, 68,132,
-147,211, 27,135,251, 62, 81, 20,207, 20, 23, 23,103,251, 17, 89, 35,122,244,232, 17,182, 97,195,  6,114,254,252,121,162, 86,171,
- 33,138, 34,236,118, 59,172, 86, 43,110,185,229,150,122, 77, 11, 18, 30, 30, 30, 58,105,210,164,102,119,220,113,  7,190,249,230,
- 27,220,127,255,253,232,222,189,251, 73,233,127,173, 86, 27,117,228,200,145,244,200,200, 72,232,245,122, 84, 86, 86,162,127,255,
-254,127,251,194,213,181, 67,210,155,132, 35,206,185,162,168,205, 94,190,235,151,130, 87,175,149, 55, 60, 60,252,128, 66,161,136,
-149,238, 43,199,113, 30,239,181,235, 62,163,209, 88, 84, 90, 90,218,193, 79,249, 73,  1,112,167, 76, 38,107,206,243,124, 75,  0,
- 41, 54,155, 45, 22,  0,228,114,121,145, 76, 38,203,179, 90,173,199,205,102,243, 41,  0, 63, 56, 38, 36,244,136,129,  9, 19,154,
- 17,155,126,100,181, 73, 28,164,105,154,211, 66,255,251,164, 19, 26,165,254,199,129,  9, 19,150,  7, 42,182,254,194,134, 70, 11,
-  0, 95,227,242,130,210,143, 56,230,  1,186, 22,190,  4,  0,119,  1,104, 33,151,203, 83, 45, 22, 75, 41,128,253,  0, 54, 80, 74,
- 79, 18, 66,146,163,163,163,151,136,162,104, 42, 43, 43,155,224,105, 25,161,172, 78, 77,246,113, 28,151,  8,135,140, 16,169, 61,
-127,231,190,243, 65,121, 64,201,100,178, 57,119,223,125,247, 63,151, 47, 95,174,217,191,127,191,166, 85,171, 86,206,250, 73, 20,
- 69,184, 27, 17,169,169, 62,215,254, 38,  0,120,142,227, 62, 24, 57,114,228,152,197,139, 23,107,206,158, 61,171,105,220,184,177,
-147,211, 85,196, 73,104,220,184,113, 64, 97,141,138,138,250,239, 29,119,220, 49,118,209,162, 69,194,202,149, 43,213,141, 26, 53,
- 66, 84, 84, 20,228,114,249, 21,199,118,235,214, 77,244, 67,199,113, 28, 55,103,232,208,161, 99,151, 46, 93,170,217,189,123,183,
-166,117,235,214,144,201,100,215, 28,247, 97,195,134,141,249,234,171,175, 52,191,253,246,155,166,121,243,230,224, 56, 14, 28,199,
- 93,193,199,113, 28,146,146,146,  2,226,188,235,174,187,198,124,253,245,215,154,  3,  7, 14,104, 90,182,108,233, 76, 79,151,110,
-187,122,135,243, 58,231,188,113,133,150,195, 70, 93,220,173, 91,183,129,155, 55,111,150,  1,192,129,  3,  7, 80, 94, 94,142,132,
-132,  4,232,116, 58, 40,149, 74, 24,141, 70, 90,207,202,230,191, 14,145, 37,  0,192,183,255, 24,134, 51,  2,240, 68,177, 25,114,
-185, 28,191,255,254, 59,100, 50, 25,189,134,202,172,103,104,104,232,162,239,190,251, 46,162, 67,135, 14, 92,105,105, 41, 82, 83,
- 83, 81, 94, 94,222,101,203,150, 45, 29, 39, 76,152, 48,129, 16,114, 63,165,116, 75,160,156, 63,254,248, 35,180, 90, 45, 52, 26,
- 13,180, 90, 45,204,102, 51,185,234,132,230,249,196,188,188,188, 24,157, 78,  7, 81, 20,157,155, 91,255,182, 19,162, 40, 34, 61,
- 61,221,226,167,130, 76, 60,123,246,108,140, 90,173,  6,165,180, 14,159,221,110,135, 82,169,116,109, 57,192,110,183, 35, 45, 45,
-205,226,207,201,146, 68, 22,  0,124,249,229,151,136,139,139, 67, 76, 76, 12,180, 90, 45,212,106,117,157,  7,123,128, 21, 57,  6,
- 14, 28,136,215, 95,127, 29, 57, 57, 57,120,225,133, 23,234, 84,180,130, 32, 32, 50, 50, 18,107,214,172, 65,104,104, 40,146,147,
-147, 33,  8,194,223,223, 25,228, 72,228,206,125,231,156, 14,237,237,125, 50,248,174, 29,147, 63,116,220, 97,112, 28, 32,138,151,
- 31,157,132,128,218,172,226,165,189,191, 22,188, 22, 64,122, 54, 62,123,246,108,140,235,204,234,190, 96,183,219,145,144,144, 32,
-243, 83,126,  6,101,102,102,126,251,216, 99,143,201,155, 55,111, 78,228,114, 57,120,158,  7,207,243, 82,126, 76,166,148, 38,139,
-162,216,171,168,168,136,206,155, 55,239,109, 66,200,221,148,210, 31, 61,230,119,106,104, 91,109, 18,  7,109, 61,136, 46, 35,251,
-189,132, 53,203, 38,117,233,209, 94, 68,136,198,112, 26,192,117, 43,180,  8, 33, 45, 50, 51, 51, 15,238,222,189, 91,101,177, 88,
-208,181,107,215, 93,132,144,142, 87, 51,131, 59, 33, 36,  2,192,123,147, 39, 79, 30,251,216, 99,143,201,194,195,195,161, 80, 40,
- 80, 93, 93,141,211,167, 79,143,251,252,243,207, 41, 33,228,223,  0, 66,242,242,242,178,246,236,217,131,222,189,123, 63,  5,224,
-153, 43, 21,129, 44,113,251,158,220, 24,233,247, 93,  3,219,200,179, 59, 39, 23, 93,110,144,185, 31, 77, 33,218,197,252,221,  7,
-243, 59,  5, 16,198,183,135, 15, 31,126,223,242,229,203,117,  0, 48,127,254,124, 12, 31, 62, 28,145,145,145,208,104, 52,144,203,
-229, 16,  4,161,206,167, 31,135, 72,  6,224,237,123,238,185,103,228,226,197,139, 67,  0, 96,241,226,197, 24, 54,108, 24,162,162,
-162, 16, 18, 18,  2,133, 66,  1,153, 76, 86,239,123, 19, 21, 21,245,223,238, 93,186, 60,176,104,209, 34,  0,192, 43, 79, 63,141,
- 59,110,189, 21, 58,141, 26, 26,181,  2, 82, 90, 40,100,  2,110,127,226, 73,127,241,230,  0,188, 59,124,248,240,209, 75,151, 46,
- 13,  1,128,253,251,247,163,184,184, 24,177,177,177, 80,171,213, 80, 40, 20,206, 56, 19, 66,160, 86,171,  3,138,251,240,225,195,
- 71,126,245,213, 87, 33,  0,176,112,225, 66, 12, 28, 56,208, 25,119,165, 82,  9,185, 92, 94,103,115, 23,157,158, 56,239,190,251,
-238,145, 95,127,253,117,  8,  0,124,254,249,231,232,215,175, 31, 34, 34, 34,156,233, 41,113,213,231, 30, 93,207,156, 55,180,208,
-146,198, 78,197,198,198,142,222,186,117, 43,231, 34, 18,160, 84, 42,161, 84, 42,161, 80, 40,156,221,135,245,168,112, 72,108,108,
-236,248, 45, 91,182, 56, 79, 50,211, 43,172,235,122, 63,192, 93,248,251,245,238,221,251,171, 85,171, 86,169,228,114, 57, 12,  6,
-  3, 14, 31, 62,140,176,176, 48, 40, 20, 10, 12, 29, 58, 84,214,173, 91,183,168, 94,189,122,125, 67,  8, 25, 19,200, 27, 13,148,
- 82,232,116,186, 58, 66,235, 90,187,152,213,106, 53, 86,174, 92,  9,153, 76,230,177,  2,115,253, 30, 19, 19, 19, 72,188,161, 84,
- 42,177, 99,199, 14,200,100, 50,  8,130,  0,158,231, 33,  8,  2, 86,175, 94,141,231,158,123, 14,165,165,165, 32,132, 64, 16,  4,
-132,132,248,237,245, 36,145,145,145,225,146,200,146, 68,144, 90,173,134, 32,  8,132,231,121, 34,117,237, 17, 66, 72,160,125,238,
- 28,199,225,139, 47,190,192, 91,111,189,133, 23, 95,124, 17, 11, 22, 44, 64,219,182,109, 93, 69, 40,170,170,170, 16, 17, 17,129,
-136,136,  8,168, 84,170,171,206, 11,215, 19,220, 83,231,253,217,115, 53, 16, 41, 46, 15,  2, 17,  1, 17,160,160, 16,169,136,162,
-130,211,152,250,250, 59,  1, 63,125,148, 74, 37,182,111,223,238, 20, 67, 60,207,131, 16,  2, 87,129, 36,109,113,113,113,126,249,
-228,114,249,180,239,191,255, 94,241,197, 23, 95, 96,233,210,165,206,188,165,213,106, 17, 30, 30,142,168,168, 40,231,150,152,152,
- 72, 62,253,244, 83,121,219,182,109,167,  1,248,209,243, 61,167, 97,154,166, 57, 45, 70,246,123,  9,  0, 48,242, 37,138, 75, 39,
-103,180,227, 42, 94, 11,187,158, 69, 86,155, 54,109,182,237,216,177, 67,165,215,235, 33,138, 34,126,252,241, 71, 77,191,126,253,
-182, 18, 66,122,212, 87,108,165,164,164,172,220,177, 99, 71,183,232,232,104, 84, 86, 86,162,170,170, 10, 86,171, 21, 50,153, 12,
-201,201,201,120,251,237,183,201,208,161, 67, 39,142, 27, 55,206,168, 86,171, 37,103, 35,197, 91,125,228,138,121,255,250, 48,156,
-210,203,249,135,138,180,206,103,121,113, 30,158,126,118,106, 64, 97, 76, 74, 74,122,228,155,111,190,209,185, 58, 75,174, 34,192,
-181,142,146, 54,111,194,192,225,106,112, 77,154, 52,121, 96,201,146, 37, 78,206, 70,141, 26, 57,235, 37,158,231,193,113, 28,182,
-110,221,138, 89,211, 38, 35, 34,186, 49,230,254,107,190,223,112,186,213,201,155,  0,  0, 32,  0, 73, 68, 65, 84,198,196,196, 44,
- 24, 52,104,208, 63, 22, 46, 92,232,220,215,166,105, 83, 12,238,118, 43, 98, 26,133,162, 81,196,229,186,141,138,  4,191, 30,207,
-245,251, 60,  2,192, 37, 37, 37, 77, 88,182,108,153,206,181, 65, 40,197, 21,  0,244,122,189,211,197, 55,155,205,232,212,169, 83,
- 64,113,119,229,148,220, 54, 73,180,185,215,245, 82, 67,198, 23,103, 82, 82,210,  3,146, 16,  6,128,200,200,200, 58, 28,130, 32,
- 96,217,154, 69, 87, 60, 27,174,149,179,190,247,221,157, 51, 47, 47, 15, 51,103,206,116,214, 73,146,171, 71,  8, 65, 66, 66,  2,
-230,206,157,235,139,211, 19, 58,  3,136,118,249,109,  6,160,112,249, 44,193,229, 21, 38,220,143,147,246, 11,  0,218, 57,254,179,
-  3,168,  6, 16,238,129,207, 27, 79, 41, 46, 47, 35, 20,237,118,188,251,117, 60, 11,173,213,171, 87, 83,  0, 88,185,114,101,239,
-187,238,186,107,123,105,105,169,120,236,216, 49,110,255,254,253, 16,  4,  1, 49, 49, 49,232,220,185,179,212,173,  6, 65, 16,160,
-213,106, 73,120,120,120,145,244,224,149, 18,209,181,175,221, 69,208,112,229,229,229,226,250,245,235,185,197,119, 15,128,153,  2,
-237,167,204,194,192, 33, 67,176, 54, 65,  1, 25,128, 46,199, 74,161,209,104,120, 65, 16,172,210,205,144, 56, 93,199,110,185,139,
- 36, 66, 72,136, 86,171,253,244,135, 31,126, 80,113, 28,135,234,234,106,136,162,136,110,221,186,129,227, 56, 28, 58,116,  8,175,
-188,242, 10,190,253,246, 91,124,255,253,247,234, 14, 29, 58,124, 74,  8,105, 69, 41,173,118,169,196, 54,120,202,164, 33, 33, 33,
-208,104, 52, 78,161, 37,197,217,213,  2,151,142,167,148, 22,148,150,150,118,244,197,105,183,219, 49,108,216, 48, 16, 66, 32,147,
-201,234, 84, 62,174,159,114,185, 28,135, 14, 29,186, 34, 19,122, 18,136,162, 40,162,123,247,238,  0,  0,141, 70,  3,157, 78, 39,
-173,251,  6,  0,104,223,190, 61,204,102, 51, 26, 53,106,132,163, 71,143,122,170,192,235,112,150,148,148,208, 11, 23, 46,144,197,
-139, 23, 67, 16,  4, 68, 69, 69, 65,163,209,144, 69,139, 22, 77,150,203,229,137, 70,163, 81, 52,155,205, 80, 40, 20,115, 37,119,
-139,231,249,218,202,202,202, 40,111,156, 50,153, 12,143, 61,246, 24,158,127,254,121, 44, 88,176,  0, 15, 63,252,240, 21,142,151,
-209,104, 68,163, 70,141,156, 98, 43,144,184, 95,187, 16,106, 96, 78,145,226,240,129,181, 56,242,219,  6,136,118, 17,118,145,130,
- 82, 59, 68, 27,176,127,253,174,244,139,103, 46, 36, 80, 80,192,209,193,161,172,172,177,245,106,164,108,  9, 96,197,166, 82,211,
-  7,254,242, 39,207,243,176, 90,173,248,225,135, 31,112,250,244,105,172, 91,183, 14,  6,131,193,153,142, 89, 89, 89,120,224,129,
-  7, 60, 10, 45,119, 78, 74,233,194,243,231,207,183,239,222,189, 59,169,168,168, 64, 69, 69,  5, 12,  6,  3,236,118, 59,108, 54,
- 27,120,158,135, 74,165,130, 90,173, 70,108,108, 44,140, 70, 35, 53,153, 76, 11,189,113,138, 34,169,212,255, 62,233,196,154,101,
-147,186,140,124,137, 98,249, 91,  4,205,154, 40,245, 63,237, 11,121, 96,197,182, 23,250,  3,160,162, 67, 59,112,  0,181,218,197,
-210,231, 39,191, 55,241, 79,191, 71, 87,138,172, 40,131,193,128,234,234,203,213,131, 66,161,192,242,229,203, 27,221,121,231,157,
- 91,  8, 33, 61,189,137, 45, 79,156, 33, 33, 33,201, 50,153, 12,135, 14, 29,194, 71, 31,125,132,159,126,250,  9, 69, 69, 69,151,
- 26, 55,110, 28,214,171, 87, 47,238,233,167,159, 70,251,246,237,241,217,103,159,169,252,113, 82, 74,145,119,114, 43,242, 78,109,
-131, 40, 82, 23, 87,220,243,119, 26, 96,220,107,107,107,141,  7, 15, 30,212,125,242,201, 39,136,137,137, 65,106,106, 42, 52, 26,
- 13, 84, 42, 85,157,135,172,235,131,215, 95,217, 52, 24, 12,198,188,188, 60,221, 87, 95,125,133,168,168, 40,164,164,164, 64,163,
-209, 64,161, 80, 56, 27,  4,139, 23, 47,198,151,175,223,135,188,227,191, 97,216,224,254,126,195,169,209,104,254,177,112,225,194,
- 58, 22, 72,108, 68,  4,120,129,131, 76, 32,136,232,123, 55,  0,224,210,207,223,121,157, 29,210,141,147, 84, 87, 87, 27,119,239,
-222,173,219,183,111, 31, 68, 81, 68, 74, 74, 10,244,122, 61, 66, 67, 67,157,241, 95,191,126, 61,134, 14, 29,138, 47,190,248,  2,
- 89, 89, 89,126,227, 94, 83, 83, 99,252,237,183,223,116, 75,150, 44, 65,100,100, 36,146,146,146,156,113,151, 54, 65, 16, 32,147,
-201,144,150,150,134,202,202, 74,232,116, 58,191,247,104,255,254,253,186, 37, 75,150, 32, 34, 34,  2,137,137,137, 78,199, 77, 18,
- 71,111,125,248,122, 29, 14, 21,137,191,102,206,250,222,119,119,206, 97,195,134,161, 89,179,102,  8, 13, 13,133, 86,171,117,114,
-251,226,148,180,  8,128, 94,131,  7, 15,222,236,118, 11,163,  9, 33,171, 92,174, 63,132, 16,178,202,245,211,219,113,142,175, 61,
- 39, 79,158,220, 41, 39, 39,103,102, 86, 86,214, 87, 59,118,236,248,210, 27,159, 55,158,201,147, 39,103,230,228,228,204,116, 61,
-222,195,117,188, 59, 90,131,  7, 15, 38,142, 72,242,  0,144,145,145,129,242,242,114, 40,149, 74,116,238,220, 25,165,165,165,208,
-233,116,144,203,229,160,148, 98,226,196,137,178, 23, 94,120, 33,134,227, 56,216,108, 54,103,197,239,165,175, 93,228, 56, 14,217,
-217,217, 56,236,232, 17, 26, 56,100,  8, 18, 19, 19, 33, 13,242, 80,169, 84,152, 56,113, 34,121,238,185,231,120,201,205,160,148,
-194, 96, 48, 32, 62, 62, 94,237,163, 75,238,233,111,190,249, 38, 76,178,228,165,174, 51,153, 76,134, 99,199,142,225,221,119,223,
-197,184,113,227,112,238,220, 57, 52,110,220, 24,207, 63,255,188, 46, 39, 39,231,105,  0,111,248,171,144,117, 58,157, 83,100,105,
- 52, 26, 60,253,244,211,124,183,110,221, 98,116, 58, 29, 66, 66, 66, 32,117,  3,218,237,118, 52,109,218,212,175, 52, 23, 69, 17,
-107,215,174,  5,207,243,126, 29, 45, 71,  6, 12,136,115,247,238,221, 78,145,230,218, 74, 34,132,224,240,225,195, 78, 81, 23,  0,
- 39,229, 56, 14, 90,173, 22,113,113,113, 80,171,213,208,104, 52,228,171,175,190,122, 53, 53, 53, 53,254,185,231,158,227,170,170,
-170,184,236,236,108, 12, 31, 62,156, 23, 69, 17, 22,139,  5,153,153,153,126,157,183,205,155, 55,227,163,143, 62,194,195, 15, 63,
-236,209,209,146,  6, 75,134,134,254,229,239, 66,  4, 13, 34,  0,139,205, 10,125,141,193,217,181,107,183,219,241,219,166, 95,210,
-207,252,114, 50,115,213, 87, 95,  8,  0, 96,220,244,157,235,105,241,195, 63,252,186, 69,175, 72,249,238, 77,229,150,221,254,156,
-194, 39,159,124, 18,175,189,246, 26,238,185,231, 30,172, 95,191, 30,175,188,242, 10, 38, 76,152, 80,199,209, 10,  4, 86,171,245,
- 63,247,223,127,255,195,203,151, 47,111,249,210, 75, 47,113,146,163,165,209,104,164, 49, 94, 48,153, 76, 48, 24, 12, 56,126,252,
-184,248,208, 67, 15,157, 48,155,205,255,241,198,103, 35,234, 95, 53, 74,253,143, 77, 19,185,102,181,185,239,132,116,191, 53,197,
- 64,212, 29, 43,239,110,209,143, 14, 26,159, 18,  1, 74, 65, 69, 64,164,128,201, 84,139,137, 19,159,146,253, 85,247,201, 85,100,
- 25,141, 70, 28, 60,120, 16,189,123,247,198,249,243,231,113,244,232, 81,164,167,167, 99,209,162, 69,209, 99,198,140,241, 41,182,
-220,241,219,111,191, 77,110,215,174,221,156,154,154,154,242,154,154,154, 57,  0,190,164,148, 86, 16, 66, 90,157, 62,125,122,222,
-218,181,107,123, 76,157, 58, 85,230, 54, 70, 71,230,205, 30,181, 90,109, 48, 24, 76, 62,  5,150,244,155, 82, 49,208,184,211,150,
- 45, 91,226,206, 59,239,132, 32,  8,206,198,154,107,183,153,187,224,242, 85,127,  0, 16,  9, 33,104,220,184, 49,  6, 13, 26,  4,
-185, 92, 94,135, 83,122,176, 14, 26, 52,  8, 79,190, 49,  5,255,121,178, 15, 62,186, 63, 29,253,222, 44,242, 25, 78,189, 94, 95,
-179,113,227, 70,245,243, 15, 63,140,118,205,155,163, 81,104, 40,154,196, 70, 67,173, 84, 64,238, 26, 38,226,223,100,167,148, 82,
- 66,136, 40,147,201,208,186,117,107, 20, 21, 21, 33, 55, 55, 23,185,185,185,224, 56, 14,221,187,119,119,186, 48,167, 78,157,194,
- 27,111,188,  1,147,201, 20,112,220,155, 55,111,142, 62,125,250, 64,161, 80, 64,163,209,212,233, 50,148,210,180,186,186, 26,205,
-154, 53,195,138, 21, 43,208,162, 69, 11,191,156, 25, 25, 25,184,237,182,219,234,164,167, 90,173,118, 62, 55,  0,224,252,238, 26,
-231, 53, 18, 18, 18,234,197,185,110,207, 57,124,178,126, 35, 76,102, 17, 85,122,107,157, 19,226, 27,133, 98,219,146,151,  2,138,
-187,196,249,241,199, 31,163,162,162,194, 89,  7, 73,166,137,100, 82, 36, 37, 37, 97,254,124,207, 78,166,139, 22, 33, 94,238,223,
-144,  0, 27, 84,210,113, 82,230, 82,230,228,228,204,116, 63,223, 31,159,235,255,110,231,155,221,196, 89, 81, 64, 93,135,210,243,
- 65, 42, 12,  9,  9,  9,144,198,129, 72,  5,197, 89,145,218,108,248,246,219,111, 17, 19, 19,227,220,194,194,194,188,102,108,105,
- 28,209,147, 37,151,135,  8,173,105, 44, 71, 30,128,193, 37,212, 57,142,196,110,183,227,155,111,190,129,171,144,  9,  9,  9,241,
-217,141,164, 80, 40,122,117,238,220,153, 51,153, 76, 87,136,172,156,156, 28,140, 25, 51,  6, 45, 90,180,128, 40,138,168,169,169,
- 65,239,222,189,133,185,115,231,246,170,143,208,210,104, 46,143,251, 55,155,205,216,180,105, 19, 34, 34, 34, 16, 21, 21,133,200,
-200, 72,132,132,132, 72,111, 78, 82,127, 98,131, 82,138, 97,195,134, 57, 51,159,171,139,229, 46,186,118,236,216, 17, 80,151, 28,
-165, 20,183,222,122, 43,180, 90, 45,116, 58, 29,116, 58, 29,214,174, 93,235, 60,166, 75,151, 46, 16, 69, 17, 49, 49, 49,216,185,
-115,167,207,238, 79, 74, 41,149,203,229,206,227,  5, 65, 32,139, 22, 45,154,156,150,150, 22,255,236,179,207,114, 50,153, 12,  7,
- 14, 28,192,145, 35, 71,144,146,146, 18,240,152,173,138,138,138,139,147, 39, 79,182, 79,158, 60, 25,  0,144,153,153,137,138,138,
-138, 98,233,255,170,170,170,178,  1,  3,  6,212, 25,183, 81, 90, 90, 90,246,255,236, 93,119,120, 20, 85,251, 61,119,182,239, 38,
-217,108,122, 33, 16,186,  8,136, 20, 65,248,232, 37,128,116,148, 46,136,  8, 40, 69, 84,252, 40, 34,242, 83, 64, 66, 47, 74, 85,
-228,163, 40, 18,154, 32, 69, 32,210,155,  8,  8, 72,139, 68, 32, 36,164,215, 45,217, 58, 51,247,247, 71,118,227,102,179, 73, 54,
- 33, 34,224,156,231,153,103,119,218,153,123,103,238,189,115,230,189,239,125,239, 83, 47,180,120, 30,172,149, 69,190,201,  4,189,
- 46,191,208, 58,148,158,156,166,153,246,225,  7,146,197, 19,223,  4,  0,124,184,124, 37,116,235,254,106,200,118,127, 56, 36,184,
-255,146,109,211,  1,244, 45,227,229,  3,179,217,140,200,200, 72, 92,184,112,  1, 58,157, 14, 93,186,116, 41, 98, 49,117,220,211,
-178, 76,244,148, 82, 11, 33,164,117,175, 94,189,126, 93,182,108, 89,173,250,245,235, 19,131,193,128,252,252,124, 56,255, 94,187,
-118,141,110,221,186,245,110,126,126,254,127, 40,165,150,146,248, 14, 61,252, 38,190, 91,149,183,118,252,124, 89,212, 43,184,118,
-156,250, 97, 78, 45, 54,235,161,220,160, 53,222, 54,113,244,  6, 40,  7,112,224, 65, 89, 30,156,189,219,235,159,130, 82,169,252,
-242,244,233,211,  1, 38,147,  9,151, 46, 93,194,240,225,195, 45,153,153,153, 50,  0,120,253,245,215, 45, 91,182,108,145,213,174,
- 93, 27,155, 55,111, 14,122,245,213, 87,183,  3,120,193,195,134,254, 91,  0,223,186,110, 15,  8,  8,248,226,193,131,  7, 29,156,
-125,126, 28, 31,171,  0,220,126, 84, 82, 30,176,217,108, 48, 26,205,200,203,211,193, 98,181,217,219, 76, 30, 28,199,218,127,121,
-176,246,118, 84, 38, 21,251, 52,107, 20,166,167,148,130, 33, 36,247,226,181,148,170, 37,181, 75, 37,117,113,121, 98,205,114,  3,
-206, 49,202, 44, 32, 32,  0, 18,137,  4,223,126,251, 45,174,158, 57,  4,153,136,130, 99,109, 96,109, 86,112, 54, 11, 36, 34, 17,
-126,190,124, 15, 81,207,151, 61,144,155, 16, 66,  3,  3,  3,209,179, 85, 43,244,106,213,170, 96,120,155, 88, 12,111,185, 28, 42,
-169,162,192,146,  5,128,114, 12,224, 89, 81,226, 29,233, 12,  9,  9,193,197,139, 23, 49,105,210, 36, 44, 88,176,  0, 74,165,178,
-112,244,243,173, 91,183, 16, 19, 19,131,168,168,168,114,231,221, 97,193,155, 62,125, 58,146,147,147,177,124,249,114, 52,107,214,
- 12, 18,137,  4,185,185,185,248,207,127,254,131,180,180, 52,143, 56,157,187,247,100, 50, 89, 17,235,147, 67,  0,150,247, 25, 57,
-115,190,217, 47, 12,123,207,108,  5,  1,193,249,239, 62, 40,242, 46, 90,179,237, 84,185, 57,103,205,154, 85, 36,157,158, 88,179,
-202,241, 97,180,207, 19,177,229,116,220, 37,135,177,117,250,244,233, 51,  8, 33,251,166, 79,159, 62, 35, 58, 58,250,186, 39,124,
- 37,236,223,239,208,133, 78,219, 46,121, 44,180, 40,165, 84, 38,147,129,231,249, 34,226,202,213,241,214, 97, 10,116, 54, 53,150,
- 37, 10,120,158, 47, 44, 20,174,159,109, 34,145,  8,231,206,157,195,185,115,231,138,108, 95,191,126,125,169, 47,114,150,101,235,
-251,248,248, 20,177,102, 73,165, 82, 76,159, 62, 29,195,135, 15, 47, 20, 89, 82,169, 20, 27, 55,110,196, 75, 47,189,  4,139,197,
- 82,191, 12,127,149,252,208,208, 80,198,209, 16,121,121,121,145, 73,147, 38,137, 88,150, 45,188, 39,142,197,225,187, 86, 86,161,
-113,140, 98, 57,124,248,176, 71, 22, 45, 79,125,148, 40,165,184,114,229, 74, 17,241,230, 24, 53,  3,  0, 87,174, 92, 41,244,223,
-242,132, 83, 36, 18,129,227, 56, 40,149, 74, 34,149, 74,137, 84, 42,141,112,136, 44,145, 72, 84,248,188,157,125,246,202,202,251,
-195,135, 15, 59,150,182, 63, 61, 61,253,153, 13,227, 96,181,217, 96,204,183, 64,167, 55,226,179,232,255, 21,108,252, 12,191,  0,
-248,165,245, 59,147, 48,190, 91, 84, 39, 23, 63,  0, 79, 26,154,194,151,227,206,157, 59, 33,145, 72,176,103,207, 30,168,213,106,
-244,233,211,  7,106,181, 26,211,166, 77,195,224,193,131, 61,182,104,217,203, 82, 30, 33,164,245,251,239,191,255,235,162, 69,139,
-170, 85,173, 90, 21, 22,139,  5, 86,171, 21, 22,139,  5,241,241,241,216,186,117,107, 98,126,126,126,107, 74,105, 94, 89,124,135,
- 30,126, 19,191,235,228,135,201, 93,  6,191,106,188,149,246, 19, 82, 83,179,192,178, 15,193,115, 44,172,108,193,  8,102,142,101,
-193,178, 28,164, 82,145,122,209,231, 31, 28,225, 65,193, 48,196, 50, 96,192,128, 87, 30,215, 51,210,104, 52, 13, 51, 50, 50,240,
-199, 31,127,224,141, 55,222, 72,205,202,202,186,  9,160, 51,  0,100,101,101,157, 30, 62,124,120,253, 77,155, 54,133,214,168, 81,
-  3,222,222,222,106, 15,158,143, 55,128,241,  0,186,218,253, 64, 28,200,  6, 48, 39, 40, 40, 72,126,233,210,165, 98,214,255,147,
- 39, 79,  2,192, 47,238, 77,  6,118,139,150,201,132,140,172, 28,140,126,103,102,161, 41,  1,160, 69,196,  5,  5,197,184,119,161,
-  0,128,204,180,120,188, 57,122,146,188,172, 15,  2,119, 47,194,114,248,232, 56, 91,138, 10,203,168,183,183,119, 65,247,219,158,
-173,216,191,228, 29,128,179,130,218,140,128, 53, 31,176,234,193, 91,242, 65,164, 74,192,102,244, 72,104,121,123,123,195, 91,169,
- 68,176, 70, 83, 16,  4, 82, 36,130, 68, 34,  6,111,  3,  8, 71, 10,  5, 41,207,121, 84,214,105, 96, 96, 32,120,158,135, 82,169,
-196,253,251,247, 49,126,252,120, 88,173, 86,244,235,215, 15, 22,139,  5, 38,147,  9, 70,163, 17, 53,107,214, 68,126,126,190, 71,
-121,119,180,243,142,222,159, 15, 62,248,  0, 47,189,244, 18,102,207,158,141,169, 83,167,162,102,205,154, 24, 55,110, 28,182,110,
-221,138,134, 13, 27,150,202,235,124, 63, 29,156,142,231,226,218,197,  7,160,220,207,200,149,179, 96,124,  0,138, 61,247,247, 70,
-116, 46, 55,231,252,249,243,145,145,145, 81,204,146,229,248, 95,165, 74, 21,172, 94,189,186,162, 93,255, 14,235, 81,136, 59,131,
-152, 27, 75, 84,115, 20,248, 78,153,163,163,163,175, 71, 71, 71,247, 34,132,236,139,142,142,238, 85,138, 69,171,103, 25, 22,175,
-158, 40,240,201,242,  8, 98,151,190,209, 14,206,150, 18,199,139,212,241, 66,119,110,228, 85, 42, 21,118,237,218,  5,199,  8, 16,
-231, 99, 74, 19, 90,  7,130,236,166, 99,187, 37,203,121,189,119,239,222,168, 81,163, 70, 17,107,150, 82,169, 44,181,240,240, 60,
-143,132,132,  4, 92,191,126, 29, 45, 91,182, 68, 94, 94, 30, 36, 12,131, 15,175, 93, 67,131, 17, 35, 96,177, 91,104,100, 50, 25,
-222,126,251,109,143, 28,218,239,221,187,231,231,188, 30, 24, 24,152,212,182,109,219, 42, 23, 46, 92, 40,116,144,183,119,171, 21,
- 10, 14, 79, 68, 12,165, 20,175,189,246, 90, 17, 43,150,179,200,114, 94,126,250,233, 39,143,186, 14, 41,165,104,219,182,109,161,
- 53,203,199,199,  7, 63,252,240, 67,225,179,106,215,174, 93,129, 63, 67, 72,136, 71,156,142,124,216, 29,224, 97, 50,153,120,157,
- 78,199, 92,186,116,  9, 50,153,172,208,130,167, 84, 42,161, 80, 40, 32,151,203, 43, 52,130,232,223,  0, 74,121, 88,108, 54, 24,
-141, 70,232,245,  5,145, 69,226,127,223, 89, 84,136,153,181, 21,230,119, 88,173,116, 58, 29,126,254,249,103,236,222,189, 27,205,
-154, 53, 43,230, 12,239,137, 69,203,169, 60,101, 16, 66,218, 76,153, 50,229,252,220,185,115,195,253,253,253, 97,181, 90,241,224,
-193,  3,108,216,176, 33, 57, 63, 63,191, 13,165, 52,195,243,155,  0,216,108, 44, 76,249,102,228,105,117,248,244,243,141, 37, 22,
- 61,  0,200, 78,191,141,222,125,  6,202, 30,231,115, 74, 78, 78,158,220,166, 77,155,207,117, 58, 93,110,126,126,254, 64,  0,139,
-157, 13,135, 89, 89, 89,109,251,244,233,179,204,223,223,191, 89,122,122,250, 12, 15, 40,167,223,191,127,127, 70,100,100,100,145,
-141,118,235,227,115,233,233,233,195,218,181,107,247,  9,  0,127,167,221, 62,  0, 14,  3, 88, 93, 82, 89,114,116, 29,234,245, 70,
-168, 53, 97,120,120,239, 68,153,  9,145,138, 76,160, 60, 95,230,  7,160, 59, 43,150,115,251, 84,142,242, 67, 29, 62,129,142, 23,
-246, 43,175,141,192, 43,227,231, 67, 37,  1,230,189,217, 26, 53, 53,  0,148,254,144,182,155,  6,162,177,223,163,241, 63,122,196,
- 63,117,237, 90, 92,254,163, 32, 50, 76, 68, 80, 16,166, 12, 30, 12,106,  3,206,222,184,129,109,199,142, 97,112,199,142, 80, 41,
- 20, 30,127,176, 56, 62,194,227,227,227,113,246,236, 89, 60,255,252,243,184,115,231, 78,145, 48, 20,148, 82,143,242, 79, 41,165,
-142, 65, 76,114,185, 28, 18,137,  4,169,169,169,232,213,171, 87,225,135,254,137, 19, 39, 48,101,202, 20,140, 26, 53, 10, 29, 58,
-116,112,235, 55,235,202, 25, 20, 20, 84,104, 64,112, 29,168,224,220,157, 91,158,103,228,142,211,129,138, 62,119,103,206,185,115,
-231,186, 29, 80,225,  9,167,179, 22, 41,  5,151, 92,172, 73,112,248, 75, 57,132,145,235, 58,  0, 63,199,182,233,211,167,207,240,
-244, 60,231,117,135, 69,172, 60, 93,152,133, 66,171,103,207,158,196,221,203,214, 97, 70,118,  7, 47, 47, 47, 76,152, 48,  1,179,
-102,205, 66, 96, 96, 96,153,190, 53, 14, 37, 91, 26,126,252,177,120,101,219,179,103, 79, 89, 93,135,183,124,125,125, 95,234,216,
-177, 35,242,242,242,144,152,152,  8, 47, 47, 47, 52, 88,178,  4,215,198,143, 71,227,181,107,193,116,234, 84, 24,108,245,218,181,
-107, 80, 42,149,183,202,107, 65,240,241,241,129,159,159, 95, 97,159,187, 67,112, 57, 89,180,168,  7,133, 17,  7, 14, 28,112,251,
-213, 88, 17, 31, 45, 71, 35,112,254,252,249, 34,254, 89,206,194,231,252,249,243,133, 22, 45,199,105,158,116,121, 41,149, 74,234,
-224, 83,169, 84,240,247,247,135, 92, 46,135, 82,169, 44, 34,178, 60,177,230,149, 21,144, 84,169, 84, 94,240,242,242,210, 56,246,
- 75, 36, 18,232,116,186,220,172,172,172, 22, 79,117,215, 33, 40, 88, 43, 11,163,209,  4,189,206, 88,233,252,142,129, 41,187,118,
-237,194,203, 47,191, 92, 76,100, 57,238,117,  5,190, 24,147,  8, 33, 29, 86,172, 88,241,203,210,165, 75,253,244,122, 61,254,247,
-191,255,229,233,245,250, 14,148,210,164,114,113,241, 20, 54,171, 21,249, 38, 51, 12,250,130,123,240,231,245,157, 79,152, 32,166,
- 91,  1,108,117,181, 24, 58,237,255, 19, 64,175,114, 80,190, 28, 25, 25,137,212,212,212, 34, 27, 19, 18, 18,192,113,156,217, 30,
- 39,235, 45,167,235,137, 40,165, 92, 89,109,135,213,222,117,168,215, 23, 88, 65, 76,134,204,202, 41,167,118,177, 81,146, 79, 86,
- 69,186,120, 28, 35,157, 69, 34, 17, 38, 78,156,136,107, 87,175,162,115,184, 22, 53, 67,125, 64,181, 15, 33,237,244,127,184,146,
-161,196,226,101,  7,202,205, 29,227, 52,216,103,113, 76,140,219,125,127,246,237, 91,174,188,199,197,197, 65,169, 84,130,227,184,
- 98,239,155,242,230,223, 89,192, 44, 91,182, 12, 83,166, 76,193,198,141, 27,113,237,218, 53, 52,110,220, 24, 93,186,116, 65,122,
-122, 58,174, 94,189, 10,179,217,236,113, 58,157,253,230,226,238,222, 64,236,217,131, 72, 72,186,135,228,212,196, 10, 63,119,103,
- 78, 87,161,181, 43,246, 55,188, 22,213,180, 66,156,159,126,250, 41,210,211,211,139, 88,178,156,  7,144,149,100,209,114,213, 34,
- 46,200,116,241,133,114,172, 91, 92, 68,143,235,186,235,241,  0,144, 14, 64, 84,198,121,174,235,153,209,209,209,199, 29,150, 48,
- 59,175,168, 44,255, 44,183, 93,135, 14, 81,228,168, 40,174,150, 42,199,127, 47, 47, 47,248,248,248,192,199,199,  7,106,181,186,
- 76, 75,145, 67,104,181,189,171, 43,226,235,229,176,108,  1,192,168, 81,163,138, 89,180,156,  3,123,186,131,217,108, 62,113,226,
-196,137, 38,189,123,247, 22,221,186,117, 11, 34,145,  8, 60,207,195,210,170, 21, 26,175, 93,139,223, 63,248,  0,237,239,223,135,
-201,106,133, 66,161,192,161, 67,135,172,249,249,249, 39,202,219,110, 56, 11, 45, 47, 47, 47,248,250,250, 22, 10, 13, 79, 84,186,
-163,242,150,230,255,224, 88,156,  7,  3,120, 82,169, 29, 47, 84,103,191, 28, 66,  8,140, 70, 99,161, 83,167, 39, 86, 71,231,174,
- 67,231, 10,200, 48, 12, 52, 26, 77, 97,227,225,176,104,121,106,205, 43, 43, 32,169, 74,165, 82,223,190,125,187,182, 35,252, 68,
-102,102, 38, 58,117,234,244,199, 83,111,210,226,  1, 43,203, 65,111, 52, 65,111,204,175, 52, 90, 71, 89,251,246,219,111, 17, 31,
- 31, 15,171,213,138,232,232,232, 98,  2,171, 60,206,240,110,202, 85,124,211,166, 77,249,238,221,187,227,252,249,243,144,203,229,
- 54, 74,105,185,227, 95,241,148,135,149,101, 97, 50, 26,161, 55, 24,254, 45,198,204, 66, 85,125,243,230, 77, 88, 44, 22,204,158,
- 61,155,251,245,215, 95,143,  3,120,199,254, 12, 25,  0,195,218,183,111, 63,167,103,207,158, 26, 66,200,123,148,210,141,165,213,
-115, 27,107, 23,237,149,120, 31, 29,101,169,164, 54,169, 34, 97, 86,156, 95,172, 60,207, 99,236,152, 49,232, 18,174, 69,255,102,
- 65, 48,164,252,  1,149,111, 16,136,166, 58, 22, 47, 59,128,235,119, 61,118,197,164,  0,208,189,125, 95,188,248,124,241,240, 96,
-109, 58, 23,124,147,157,254,249,  2,210, 50,147,203,157,119,131,193, 80,162,229,202, 83,139,150,131,211, 17,102, 69, 34,145,160,
- 73,147, 38,168, 91,183, 46,142, 31, 63,142,166, 77,155,226,206,157, 59,184,115,231, 14,238,223,191,143,107,215,174, 33, 39, 39,
-167,220,207,232,135,195,219,144,163,203,134, 76, 42, 67,118,110, 38, 18, 30,222, 67, 72, 64,232, 35, 63,119,  7,234,245,252, 20,
-  0, 16, 30,228, 91, 46,161,229,204,185,112,225,194, 98,226,189, 18, 66,246, 92, 40, 99,189,188,231, 63, 54,136, 75,176, 18, 25,
-253,253,253,149,206,253,171, 12,195,192,215,215,151, 44, 88,176, 64,196, 48, 12,124,124,124,224,235,235, 11,135,185,176, 44,200,
-100, 50, 99,245,234,213,149,142,130,232,168,136,106,181, 90,180, 96,193,  2,178,126,253,250, 18,173, 92,101,248,104, 45, 29, 62,
-124,248, 91, 73, 73, 73,126,193,193,193, 72, 73, 73,129, 76, 38, 43,168, 28, 29, 59,162,237,221,187,176, 22,248, 28, 33, 46, 46,
- 14, 95,125,245,149,193,108, 54, 47, 45,239,141,242,246,246, 70, 64, 64, 64, 97,151,161,195,162,227, 36, 26, 61,114,193, 44,205,
- 68,239,248,  2,172, 72, 23,146,171,216,122,231,157,119,138,136, 46, 79, 33,149, 74, 89, 71,228,119,134, 97, 96,181, 90,209,180,
-105, 83,164,167,167, 23, 86, 26,103, 75,158, 39, 66,171,172,128,164, 98,177, 24, 22,139,  5,237,218,181,  3, 33,  4, 43, 87,174,
-124, 54,186, 35,121,158,120,123,  7, 32, 60,252, 57,  4,  5,155,192,243,149, 55,171, 12,203,178, 24, 55,110, 92, 17, 11,150, 99,
-100,163,163,235,159, 82, 10,155,205, 86,225,224,175,142,122,253, 40,241,227, 40, 80,216,229,101, 48,152,158,186, 71, 24, 28, 28,
-220,146, 16,178,199,101,115, 54,128, 57,238, 34,184,219, 81,248,160, 19, 19, 19,209,173, 91, 55, 28, 60,120, 80,180,123,247,238,
-206,123,247,238,189, 81,187,118,237,196, 65,131,  6, 85,125,251,237,183,229,237,218,181, 67,102,102, 38,154, 53,107,246, 25,128,
- 82,132,150,253, 62,154,204, 48, 24, 42,223, 58, 90,218,  7,223,163,  8,184, 89,179, 62, 65,151,176, 92,244,107,236,139, 77,251,
-206, 96, 88, 19, 37, 96,145,151,155,207,145, 22,255,240, 26,168,222,176,101,177,253,114,117, 65,151, 93,245,134, 45,193, 36,222,
- 41,119,222,157,211,236,218, 94, 86,196,162,231,124, 63, 71,143, 30,141,105,211,166,161,107,215,174,184,115,231, 14, 78,158, 60,
-137, 59,119,238, 96,210,164, 73,104,216,176, 33, 26, 55,110, 92, 46,206,189,177, 59,160,213,231,129, 33, 12,178,243,178, 96, 50,
- 27, 49,117,220,172, 71,126,238, 14,220,139,141,  6,  0,236, 60,114,185,194,156, 31,127,252, 49, 82, 83, 83,139, 88,178, 30,197,
- 47,235,105,135, 91,161,149,149,149,229,182, 31, 48, 40, 40, 40, 45, 42, 42, 42, 56, 37, 37,  5,222,222,222,101,138, 44, 66, 72,
- 23, 71,172,141,212,212, 84,183,156, 62, 62, 62,214,168,168, 40, 73, 88, 88, 88,145,209,134, 94, 94, 94,197, 42,153, 43,167,253,
- 37,160, 35,132,140,109,221,186,245,166,159,126,250, 73, 85,183,110, 93,104,181, 90, 80, 74,177,113,227, 70, 76,156, 56, 17, 10,
-133,  2,113,113,113,232,211,167, 79,126,126,126,254, 88,231, 24, 90,238, 56, 75,250, 66,115, 68,197,119, 35,178, 74,205,187,115,
-101, 93,177, 98,  5,230,205,155,135, 25, 51, 74,119,245, 88,183,110, 29,224,210,205,231,142,147, 82,138,197,139, 23, 87, 26,103,
- 86, 86,214, 70, 23,107,212,202,254,253,251,139, 19, 19, 19,139,136, 43,231,197, 77,195, 84,132,179,172,128,164, 34,145,  8, 33,
- 33, 33,152, 59,119, 46,  2,  2,  2, 16, 26, 26, 90,204, 18, 83,214, 51,170,224,203,224,111,229,228, 40,127,105,209,252, 79,218,
-252,111,203, 94,137, 92,  6,156, 59,185, 19,218,156,162,221, 73,102,235, 95, 67,169,101, 77, 59,195,114,249,103,143,210,105, 54,
-155,177,112,225, 66,124,250,233,167,248,244,211, 79, 61,121,238,143,148,119, 79,196,150, 91, 78,158, 18,149,151, 31, 20, 94,225,
-104,208,208, 15, 60,101,159,168,103, 84,  2,126,189,112,225, 66,159,128,128,  0, 36, 37, 37,  5, 73, 36,146, 62, 69,204, 85, 70,
- 35,170, 87,175,254, 28,128,255,148,197, 57,105,210, 36,243,204,153, 51,229, 67,134, 12, 65,255,254,253, 49,100,200, 16,185, 84,
- 42,173, 67, 41,133,213,106, 69, 82, 82, 18,126,254,249,103,100,100,100,220, 42, 45,157, 60,165, 68,169,210, 64,225, 21,134,  6,
- 47,104,192,243,108,165,228,221,241, 18,116,181,102,149, 51, 32,181,219,182, 14,  0,126,253,121, 15,102,125,240,  2, 54,238,255,
-  5, 95, 92,  0, 94,212,164,163, 65, 80,  6,248,140, 91,248,239,176,151,176,248,187,139,  0,128,147, 39,202,124, 70,165,198, 71,
- 54, 25,173,143,148,119,103,203,149,243,117,202,242,209,114,199,233,248, 72,212,233,116,200,205,205,197,166, 77,155,240,230,155,
-111, 34, 61, 61, 29,247,239,223,199, 31,127,252,129,239,191,255,190,112, 52,123,121,159,209,135, 99, 62,198,204,197,147, 65, 65,
- 81,175,118,  3, 76, 31,255, 41,154,191,216,234,145,159,187, 43,202,178,102,149,198,185,124,249,242, 10,149,165,127,149,208, 42,
-237,171,130, 97, 24,  4,  6,  6, 22, 22, 18,231,  2, 88,145, 47, 95,145, 72,  4,150,101, 11,125,127, 28, 11,  0,244,238,221, 27,
- 63,254,248,163, 39, 35, 41,126, 34,132,188, 94,191,126,253, 13,159,125,246,153,119,251,246,237,197,225,225,225,104,222,188, 57,
-226,226,226,176,127,255,126,219,234,213,171, 13,249,249,249,163, 40,165, 71, 42,210, 62, 57,166,180,113, 94,202,243,213, 99,181,
- 90, 19,239,220,185, 19,182,120,241, 98, 17,195, 48, 88,190,124,121, 97,165,116,  4,124,117,198,201,147, 39, 89,158,231, 75,237,
-170,177,217,108,137,119,238,220,  9, 91,178,100,137,136, 16, 82,200,201, 48, 12,156, 39,112, 46, 15,167, 59,145,233, 24, 24,225,
-110,113,151,118,119,207,184,180,128,164, 98,177, 24,113,113,113,152, 53,107, 22,  8, 33,216,185,115,231, 51, 81,185,174,221,202,
- 92,223,184, 65,176, 95,239, 87,218, 52,  2, 33,176, 90,138, 71, 67,240,206,209, 23,138,172,254, 75,182, 97,247,135,131, 61, 17,
- 61,241,167, 79,159,246, 95,184,112,161, 88, 36, 18, 97,217,178,101, 69,130,  6,187, 62,247, 83,167, 78,177, 21,233,246,115,212,
-103,171,213, 10,163,177, 98, 86, 20, 74,233,217,232,207,103, 70,109,254,246,128,132, 16, 11,206,157,216,137,188, 92,247,238, 12,
- 50,137, 24,235, 55,237, 98,165, 18, 81,226, 63,252,232, 86,245,235,215,111,200,151, 95,126,217,192,221,206,196,196, 68,240, 60,
- 95,154,115,205,125,147,201,132,135, 15, 31, 34, 63, 63,127,199, 71, 31,125,100, 61,112,224,192, 91,175,190,250, 42, 26, 55,110,
-140,176,176, 48,164,164,164, 32, 62, 62, 30,155, 54,109,162,103,206,156,217,  1, 96, 66, 25,247,113,207,252,207,103,190,177,233,
-187,  3, 50,134, 88,113,238,228, 78,228,185,136,246,226,214,105,  9,190,217,184,203, 42,149, 74,110,151,213,174, 59, 91,179, 42,
-243,197,216,103,248,120,244, 95,241,  5,106, 53,239,134,249, 11,186,224,155,207,  7, 98,105,119, 41,172,219,135,225,197,  1,155,
-177,117,118, 15,  0, 64,248, 55, 30, 90, 75,196, 82, 60,112, 99,177,202,205, 83,216,197, 77,249,172,166,142,188,151,214,134,151,
-215,162,197, 48, 12,106,212,168,129, 90,181,106,161,117,235,214,104,218,180, 41, 58,118,236,136,171, 87,175,226,234,213,171,152,
- 52,105, 82,137, 34,203,147,103,212,225, 63, 81,248,165,237,237, 71,126, 54,174,207,189, 50,224, 73, 89, 26, 63,126, 60,  0,252,
-171,172, 91,226,138,220, 68, 71,193,124,212, 41,105, 28,156, 22,139,165,176, 75,206, 57, 46,147,195, 57,222,195, 17,125, 71,  8,
- 33, 13, 63,249,228,147, 15, 20, 10, 69,199,252,252,252,231,236, 22,153, 56,179,217,124,204,104, 52, 46,163,148,230, 62, 74, 90,
-157,195, 57,184, 75, 66,105,231,230,228,228,116,235,214,173,219, 17,177, 88, 92,195,117,194, 95,119, 21,153,231,249,251,105,105,
-105,165, 14,113,207,202,202,234,214,181,107, 87,183,156,238, 26,  8, 79, 56,221, 61, 31,158,231, 75, 20, 89,158, 52, 68,101,  5,
- 36, 21,139,197,240,242,242,194, 15, 63,252,128,192,192,192,103,170,130, 93,185,145,190,176,180,253, 29,  2,229, 39,  0,  4,245,
- 95,178,237,193,241, 76, 75,100,135, 64, 89,194,238, 15,  7, 87, 43,237,156,204,204,204,174,111,190,249,230, 65,177, 88, 92,195,
-245,254,187,123, 22, 44,203,222, 75, 77, 77, 45,119,184,  4, 74, 41,110,223,190,205,143, 30, 61, 58, 51, 35, 35, 99, 96, 69,242,
- 63,125,214, 23, 75,231,125, 54, 49,160,123, 84,203,230, 96,  0, 75,201,206,191,148,  0, 84, 44, 17, 37, 78,153,177,124,204, 63,
-249,204, 40,165, 90, 66, 72,235,215, 94,123,109,  2, 10,134,134, 23, 19, 82,  0, 86,148, 66,177,162,106,213,170, 47,136, 68, 34,
- 57,128, 89,148,210,  4, 66,200,170, 51,103,206,116,  5,240,178, 72, 36, 10,227, 56,238, 33, 10,230,124,220, 70, 41,189, 82,118,
- 57, 74,123,187,113,253,160,136,238, 93, 94,238,  6, 66,168,197, 98, 46,227,  3,  9, 20,148, 82,169, 84,114,251,194,149,228, 23,
-203,178,214,219,103,224,168,244, 46,251,  9, 19, 38, 96,194,132,  9,133,229,105,229,202,182,216,241,251,105, 12,120, 49,  9,230,
-175,218,128,168,171,121,252,193,  7,  0, 31,127, 50,186, 50, 45,155, 69,  6,105, 85,150,143,150, 72, 36, 66,102,102, 38,226,226,
-226,144,150,150,134,252,252,124,220,188,121, 19, 86,171, 21, 57, 57, 57,120,225,133, 23, 42,156,206,202,122, 70,255, 36,231,191,
-177,251,176, 92, 66,139,101,217,164,178,102, 89,183,217,108,229, 26,149, 36,145, 72, 76,117,235,214, 37,238, 70, 39, 56,254,123,
-121,121, 25, 61,108, 32,115,  1,204,  2, 48,203, 62,159, 21,178,179,179, 31, 89, 13,114, 28,151, 28, 25, 25, 41, 42, 73,192,216,
-239, 77, 90, 25,105, 51,  0,104, 85,201, 47,132, 74,231,116,243,124, 12,207, 63,255,124,161,175,151,107, 76, 20,251,100,171,165,
-122,231,150, 21,144,212, 96, 48,164,116,235,214,141,115,222,239, 28,208,244,153,  6,161,  9, 61,134,188, 21,121, 60,211, 18,  9,
-  0, 14,177,133,146,253,127, 64, 41, 53,  2,104,255,119, 39,237,238,221,187,150,151, 95,126,249, 91,157, 78, 55,158, 82, 90, 97,
-111,254, 25,255,183,114,198,211,246, 88, 40,165, 90,  0,243, 42,120,110,  2,128, 78, 46,219,174,  0,184,242, 40,105,186,114, 51,
-163,210, 99,139,177, 44,155, 84,171, 86,173,114, 89,110,202,106,227,109, 54, 91,169,239,137,235,240,197,140,243, 64,193, 52,113,
- 89, 30,113,154, 76,166,236, 86,173, 90, 73,202,153,183,116, 79,243, 30, 22, 22,134,240,240,240,194, 95,  7, 92,183,151,149, 78,
-150,101,147, 34, 34, 34, 16, 24, 24, 88, 98,196,119, 87,159, 44, 79, 56, 43,251, 25,149,198, 25, 30,190,185,210, 57, 43, 75, 47,
-252, 43,132,150, 99, 14,195,202, 68, 90, 90,218,223, 50,231, 10,173, 12,115,219, 95,150,163,230,248,151, 34, 43, 43, 43,224, 81,
- 57,202, 10, 72,154,150,150,214,241,223,122,127,143,103, 88, 70, 22,219,102, 23, 93,255, 52, 12,  6, 67,181,178,194, 14,148,132,
-  1,  3,  6,112, 16,240,196, 35, 51, 51,179,210,219,244,191,227, 61,145,157,157,221,232,223,154,247,191, 35,157, 79, 11,231,179,
-  2,193, 75, 77,128,  0,  1, 37,125,172,  8, 98, 73,128,  0,  1,  2, 30, 17,  4, 64,151, 18, 26, 89,143, 71,250, 16, 66,186, 84,
-160, 17,143, 21, 56,  5, 78,129, 83,224, 20, 56,  5, 78,129,243,223,197, 89, 22,119,101,143, 52,126, 18,190, 90,255,182,  5, 64,
- 23,129, 83,224, 20, 56,  5, 78,129, 83,224, 20, 56,  5,206,127,235, 34,116, 29, 10, 16, 32, 64,128,  0,  1,  2,  4,252, 77, 16,
-132,150,  0,  1,  2,  4,  8, 16, 32, 64,128, 32,180,  4,  8, 16, 32, 64,128,  0,  1,  2,  4,161, 37, 64,128,  0,  1,  2,  4,  8,
- 16, 32, 64, 16, 90,  2,  4,  8, 16, 32, 64,128,  0,  1,127, 31, 72, 37,198,245, 20, 32, 64,128,  0,  1,  2,  4,  8, 16,224,  4,
- 49,  0,236,223,191,191, 80,109,245,236,217,147,  8,183, 69,128,  0,  1,  2,  4,  8, 16,240, 56,241,172,106, 17,177, 32,176,  4,
-  8, 16, 32, 64,128,  0,  1, 79,  2,158, 69, 45,194,184, 83,146,  2,  4,  8, 16, 32, 64,128,  0,  1,143, 27,207,162, 22, 97,158,
-101, 21, 41, 64,128,  0,  1,  2,  4,  8,120,122,240,204, 91,180,  4,171,150,  0,  1,  2,  4,  8, 16, 32,224,159,194,211,170, 69,
-  8, 33,148, 16, 66,157,215, 11,255, 11,163, 14,  5,  8, 16, 32, 64,128,  0,  1,  2, 42, 38,176, 40,165,164,164, 95, 64,136,163,
- 37, 64,128,  0,  1,  2,  4,  8, 16, 80, 33, 56,196,148,243,186,179, 53,235,111, 23, 90,132,144, 46,  2,167,192, 41,112, 10,156,
-  2,167,192, 41,112, 10,156,255, 22,193, 69, 41, 37,206,235, 98,225,246,  8, 16, 32, 64,128,  0,  1,  2,  4, 60,178,248,164,238,
-132,151, 32,180,  4,  8, 16, 32, 64,128,  0,  1,  2, 30, 81,100, 57,139, 43,193, 71, 75,128,  0,  1,  2,  4,  8, 16, 32,224, 49,
- 64,176,104,  9, 16, 32, 64,128,  0,  1,  2,  4, 60,  2, 92,157,224,133,174, 67,  1,  2,  4,  8, 16, 32, 64,128,128, 74, 22, 91,
-238,182, 19,  0, 93, 74, 56, 33,214, 83,242,138,140, 62, 40,139, 95,224, 20, 56,  5, 78,129, 83,224, 20, 56,  5,206,103,143,179,
- 44,238,242,232,143, 39,  5,132,144,246,  0,142,  3,232, 96,255,253, 75,120, 81, 74,255,182,  5, 64, 23,129, 83,197,199,105, 41,
-  0,  0, 32,  0, 73, 68, 65, 84,224, 20, 56,  5, 78,129, 83,224, 20, 56,  5,206,103,121, 41,144, 83,127,253, 58, 47,130, 51,188,
-128,178, 84,186,152, 16, 34,174,232,254,199,197, 41, 64,128,  0,  1,  2,  4,252,195,239, 75,234,248,117,246,215, 18,151,112,112,
- 29,  0, 51,  0,248, 58,109,190, 64, 41,141,118, 57,238, 59,  0, 42,167, 77,  6,  0,179, 41,165,119, 60, 72,147,212,206, 47,183,
- 47, 60,  0, 19,  0, 51,  0, 29,  0,155,240,216,254,241, 66,211, 10, 64, 47,251,255,125,148,210,115,229,217,255,184, 56, 31, 23,
-194,195,195,149,126,126,126, 93, 47, 95,190, 44,187,121,243, 38, 78,157, 58, 69,215,175, 95,111,205,201,201, 57,156,156,156,108,
- 20, 74,204, 51, 81,230,187,  1,152,110, 95,157, 79, 41, 61,244,136,124, 68,165, 82, 77,242,242,242,234, 33,151,203,195, 89,150,
- 37,249,249,249,201,  6,131,225,  8,203,178, 75, 40,165,124,  5, 56,251,250,251,251,191, 85,175, 94,189, 58,247,239,223,127,152,
-156,156,252, 29,128,237,  0,  6,134,135,135, 15,171, 94,189,122,149,219,183,111,223,201,206,206,254,134, 82,186,231,159, 74,167,
-  0,  1,255, 38,148,228,159, 85,162,208,  2, 48,139, 82, 58,204,165, 34, 22, 59,168, 83,167, 78,125, 14, 31, 62,172,226,121, 30,
-142, 69,169, 84,178,  0, 70,150,145,166,128,179,103,207, 70,142, 31, 63,190,127,114,114,242, 75, 58,157,174,  5,  0,168, 84,170,
- 95,130,131,131,127, 93,177, 98,197,247, 93,187,118, 77,178, 11,174,114, 89, 74, 36, 18,201,155,126,126,126, 61, 88,150,109, 74,
- 41,133, 68, 34,185,156,147,147,115,200,102,179,125, 67, 41,181, 85,160, 81,147,137,197,226,  9,114,185,188, 27,203,178,141,  0,
- 64, 44, 22, 95, 51,155,205,135, 88,150, 93, 69, 41,181, 84,128, 83, 33,147,201, 38,168,213,234, 40,139,197,210,  8,  0,100, 50,
-217, 53,173, 86,123,196, 98,177,172,162,148,154,158,128, 23,142, 24, 64, 47, 74,169,  4,  0, 68, 34, 81,223, 86,173, 90, 69, 18,
- 66,120, 71,124, 16,134, 97,154,112, 28,199,216,143,239, 69,  8,249,149, 82,202,150,135,243,229,151, 95,174, 42, 22,139,169, 61,
-146, 46,195, 48,204,139,229,225,172, 44,  4,  5,  5,205,227,121, 62,188,180, 99,124,125,125, 95,186,124,249,114,189,152,152, 24,
-238,171,175,190,202, 29, 53,106,148,247,248,241,227,197, 43, 87,174, 92,  5,224, 61,215,227,  3,  3,  3,151, 50, 12, 19,232,201,
-245,121,158,207,204,204,204,156, 44, 52, 87,255, 56,166,175,142,213,181,163, 20,152, 16,229,195,  0,120, 36,161, 85,165, 74,149,
- 77,111,188,241,198,144, 70,141, 26,137, 41,165,176,217,108, 48,155,205,245,206,157, 59,215, 97,231,206,157, 47,  1, 24, 88,206,
-122, 57,102,218,180,105,115,231,204,153, 19, 40,145, 72,136,205,102,171, 29, 19, 19,211,244,237,183,223,126,127,221,186,117, 85,
-  7, 13, 26,228,227,216, 62,107,214,172,230,132,144,154,148,210, 37,143, 59,157,  2,  4,252, 11, 63,210,218,163,168,143,214,103,
-148,210, 79, 75, 19, 90, 94,246, 19,211,  0, 92,112, 88,180, 92, 15, 58,122,244,232, 94,177, 88,236,176,104,181, 48, 24, 12, 33,
- 46, 86, 48,119,168, 62,124,248,240, 86, 59,118,236,152, 55,104,208,160, 84,149, 74, 85,247,213, 87, 95,213, 17, 66, 68, 49, 49,
- 49, 77,106,213,170,165,236,221,187,247,240, 78,157, 58,125,120,240,224,193, 83,  0, 50, 60,204,100,  3,127,127,255, 93, 11, 23,
- 46,140,236,214,173,155, 52, 48, 48, 16,148, 82, 36, 39, 39, 87,217,191,127,127,247,207, 62,251,236, 67, 66, 72, 63, 74,233,141,
-114,220,184,230, 74,165,114,199,103,159,125, 22,214,189,123,119,113,104,104, 40, 76, 38, 19,110,222,188,217,229,208,161, 67,237,
-214,173, 91,247, 30, 33,100,  0,165,244,215,114,112,182,240,245,245,221,249,191,105,211, 66, 90,190,249,166,216,223,223, 31,148,
- 82,100,100,100,116, 57,189,121,115,135,113, 11, 23,190, 71,  8,121,141, 82,122,225, 73, 42, 68, 50,153,140,217,178,101, 75, 99,
-153, 76,  6,  0,176, 88, 44,104,216,176, 33,121, 20, 78,137, 68,194, 44, 89,178,164,169, 88, 44,134,213,106,229,117, 58, 29,125,
-245,213, 87,153,127,168,146, 68, 36, 39, 39,251, 74,165, 82,183,251, 57,142, 67,187,118,237,106, 72,165, 82, 44, 89,178,196,150,
-153,153,217,228,203, 47,191,188,188,117,235,214,192, 85,171, 86, 13,112, 39,180, 24,134,  9, 76, 74, 74,114,203,201,113, 28,172,
- 86, 43, 88,150,133,197, 98, 65,253,250,245,133,150,234,201, 64, 36,  0, 28,184,106,  2,  0,255, 71, 37,243,242,242,122,126,232,
-208,161,226,140,140, 12, 72, 36, 18, 88,173, 86,164,166,166,162, 97,195,134,162,111,191,253,246,185,242,242,213,174, 93,123,212,
-252,249,243,131, 14, 28, 56, 96,221,178,101,139, 37, 42, 42, 74, 50,106,212, 40,117,187,118,237,234, 71, 68, 68, 48, 27, 54,108,
- 48, 31, 57,114,196, 54,124,248,112, 89,116,116,116,208,254,253,251,123,  3, 88,242,184,211, 41, 64,192,191, 16,199, 93, 39,149,
-  6, 80,170,208,114,224,  2,165,180, 47,  0, 72,165,210, 38, 85,171, 86,221,196,178,108,168,221,170,147, 42,145, 72,150, 88,173,
-214,223,236, 47,170, 61, 60,207,247, 41,203,146, 53,124,248,240, 86,  7, 15, 30, 92,124,238,220,185,188,172,172,172,208,189,123,
-247,154, 62,252,240,195,251,  0,112,247,238,221,154,189,123,247,174, 50,113,226,196,164,174, 93,187,174,232,216,177,227,187,199,
-142, 29, 59,130,130, 46,201, 82, 69, 86,195,134, 13,207,158, 60,121,210, 71,163,209, 20, 85,117,213,171,227,221,119,223,149,246,
-233,211,167, 86,231,206,157,207, 16, 66,218, 82, 74,127,247, 68, 16,213,169, 83, 39,246,232,209,163,222,126,126,126,200,205,205,
- 69,106,106, 42,242,243,243,161, 86,171, 49,104,208, 32,105,251, 54,173,171, 78,156,244, 94, 44, 33,164,139, 39, 98,139, 16,210,
-162,117,131,  6,177, 91,163,163,189,109, 15, 30, 64,169, 84, 66,175,215,  3,  0,124,124,124,240, 82,141, 26,226,139,155, 55, 87,
- 25, 54,117,170,131,243,177,139, 45, 66,136,220,110,  6, 53, 19, 66,246,137, 68,162,190, 50,153,140,233,219,183, 47, 98, 99, 99,
-137,201,100, 18,  3,128, 66,161, 96,251,246,237, 11,165, 82,  9,139,197,194,  3,216, 87,146,229,201, 29,167, 68, 34, 97, 58,118,
-236,152,127,225,194,133,108,  7,167, 74,165,178,117,236,216, 49, 64, 38,147, 41, 89,150,165,165,113,254, 77, 98, 18,241,241,241,
- 69,182,233,116, 58,100,100,100, 32, 43, 43, 11,102,179, 25,185,185,185,224,121,158, 40,149,202, 12,158,231,193, 48,  5,198,183,
-146, 56,165, 82, 41,226,226,226,138,108, 99, 89, 22,  6,131,  1,102,179, 25, 86,171, 21, 58,157, 78,233,227,227, 83,167, 65,131,
-  6, 73,  0,246,100,103,103, 47, 73, 77, 77, 77, 16,218,173,127,  4, 15,246,253,102,170,  6,192,  2,224, 94, 37,240,241,  0,112,
-234,212, 41,164,165,165, 33, 51, 51, 19, 25, 25, 25,136,136,136, 64, 69,186,227,226,227,227, 87,191,240,194, 11,228,250,245,235,
-135,  0,172,140,137,137, 25,153,157,157, 61,125,202,148, 41,254,139, 22, 45,202,158, 58,117,234,124,  0, 27, 99, 98, 98,222,121,
-254,249,231,123,220,186,117,107,221, 63,145, 78,  1,  2,254,  6, 52,  7, 16,100,255,159,105,111,119,  3,156,214,175,218,235,173,
-227, 56, 11,  0,153,155, 95,  7, 28,235, 25,  0,126,117, 58,207,177, 94,145,247, 39,117,254, 45,252,232,  6,128,253,251,247, 83,
-199,226,238,228,144,144,144, 73,157, 58,117, 90,124,233,210,165,250, 41, 41, 41,126, 41, 41, 41,126,151, 46, 93,170,223,169, 83,
-167,197, 33, 33, 33,147, 28,199,217, 61,238,225,180,238, 60, 68, 83,122,246,236,217,200, 93,187,118,205,143,141,141,205,107,210,
-164,137,229,232,209,163,108,215,174, 93,211,  1,176,  0,216,174, 93,187,166, 31, 59,118,140,107,217,178,165,242,224,193,131,137,
-103,206,156, 89,186, 99,199,142, 16,  0,162, 18, 56, 65,  8,145,104, 52,154, 31, 78,156, 56, 81, 76,100, 57,163,106,213,170,216,
-183,111,159, 90,163,209,236, 33,132, 72, 75, 73, 39,  8, 33, 10,133, 66,177,243,216,177, 99,222, 62, 62, 62, 72, 79, 79,135, 68,
- 34, 65,112,112, 48,242,242,242,144,154,146,130,132, 63,254,  0, 99,177, 96,217,231,115,124,148, 74,229, 14, 66,136,172, 44, 78,
- 95, 95,223,157, 91,231,205,243,206,138,141,197,149,185,115, 97,181, 90, 11,187, 92,173, 86, 43,206,140, 31,143,140,159,127,198,
-134, 89,179,188,125,125,125,119, 18, 66, 20,165,113, 86,  6,156, 57,  9, 33,227,  1,100,  3,200, 38,132,140,167,148,158,107,216,
-176,225,165,155, 55,111,162,109,219,182,216,190,125,251,139, 83,166, 76, 25, 63,101,202,148,241,219,183,111,127,177,109,219,182,
-184,121,243, 38, 26, 54,108,120,201,217,151,202, 19,206, 19, 39, 78,160, 83,167, 78, 57,219,183,111,175, 57,107,214,172,121,179,
-102,205,154,183,109,219,182, 90,157, 58,117,202, 89,190,124,185,185, 52,206,191, 35,239,206,150, 38,231,133,231,255,122,199,132,
-135,135,167,239,218,181, 11,131,  6, 13, 98,100, 50, 89,202,224,193,131,229,167, 79,159,166,  0,246,149, 39,157, 38,147,  9, 70,
-163, 17,  6,131,  1,119,239,222, 85, 46, 92,184,176,205,167,159,126, 90, 59, 54, 54,182,202,140, 25, 51,198,  5,  5,  5, 93, 14,
- 13, 13,141,124,220,121, 23, 56,  1,  0,169,  0,172,246,143,187,132, 71,225,236,220,185,243, 11,181,107,215, 14,137,185,238,135,
- 28,105, 61,240, 82, 13,120,169,  6, 92, 64,115,196,203, 94, 65,181,106,213, 66,124,124,124, 90,149,135,147, 82,186,229,247,223,
-127,127,153, 82,250, 41,165, 52,139, 82,186,120,234,212,169,159, 17, 66, 78, 77,157, 58,117, 14,165,116,177,125,251,220,155, 55,
-111,182,164,148,110,253, 39,210, 41,148, 37,129,179, 34, 40, 67,139,  4, 17, 66,246, 17, 66,246,125,244,209, 71, 29,  1,  4,184,
-172,255,199,249, 56,  0, 50,119,191,142,197,105,123, 16,128,158, 78,231,  5, 85,240,126, 16,215,165,136,208,  2,128,158, 61,123,
-146,158, 61,123, 58,118, 92, 32,132,236,  5,112, 65, 42,149, 54,105,220,184,113,223,159,126,250,201, 39, 40,232,175,235,  7,  5,
-  5, 97,199,142, 29, 62, 13, 26, 52,232, 43,149, 74,155,  0,184,160, 86,171,247,194, 77, 23,163, 29,154,241,227,199,247, 31, 49,
- 98,132,182, 73,147, 38,  0,144,123,227,198, 13, 85,203,150, 45, 13, 44,203, 18,150,101, 73,203,150, 45, 13, 55,110,220, 80,217,
-108, 54, 93,243,230,205,189, 58,119,238,124,127,242,228,201,195,  1, 40, 74,201,223,208,  5, 11, 22, 68,248,249,249,149,118,  3,
-160,211,233, 16, 18, 18,130,241,227,199,135, 74, 36,146,183, 74,187, 97, 98,177,120,194,130,  5, 11,130, 53, 26, 13,114,114,114,
- 16, 17, 17,  1,139,197,130,184,184, 56,152, 12,122,216,116, 90,216,180,185,200,248,243, 14, 52, 18, 49,134,247,233, 21, 34, 22,
-139, 39,148, 97, 45,153,240,205,212,169, 33,150,251,247,113,119,251,118,112,108,113, 67, 13,107,181,226,218,215, 95,195,148,148,
-132,249,163, 71,135,200,100,178,  9,143,217,146,181,136, 82,170,164,148, 42,  9, 33, 43,254,243,159,255,124,171, 84, 42,199, 71,
- 71, 71,119, 59,124,248,112,247,147, 39, 79,118, 96, 89, 86,194,178,172,228,212,169, 83,109, 77, 38,147, 88, 46,151, 67, 44, 22,
- 83, 79, 57, 91,181,106,181, 73,169, 84,142, 91,179,102, 77,183, 99,199,142, 13,191,120,241,226,  4,142,227,100, 28,199,201, 46,
- 94,188,248,182,209,104,148, 80, 74,185,146, 56, 31, 55, 36, 18,  9,164, 82, 41,148, 74, 37,218,180,105,243,231,250,245,235,109,
- 17, 17, 17,146,157, 59,119,250,133,135,135,123,173, 92,185, 50, 87,167,211, 45,240,148,207,106,181,194,108, 54,195,104, 52,194,
-100, 50,225,232,209,163, 53, 38, 78,156, 40, 54,153, 76, 92,239,222,189,179,109, 54,155,121,234,212,169,106,127,127,255, 15,133,
- 15,216,127,  4, 44,  0,189, 93,104,153,157,203, 50, 33,164,145,195, 58,235,  9,114,115,115,215,125,243,205, 55, 17,140, 92,131,
-211,150, 30,248,158,255, 12,135,125, 87, 34, 61,242,191,  8,142,168,141, 33, 67,134,  4, 83, 74, 87, 86,194, 11,239, 75, 74,105,
- 59, 74,233,138,138,156,255,119,167,147, 16, 18,233,237,237,189, 93,173, 86,159,246,246,246,222, 78,  8,137,124,212, 60,119,173,
- 67,186,244,173, 47, 74,234, 90,155,208,190,245, 69, 73, 93,235,148, 63,214,147,128, 39, 19, 46, 90,196, 25, 25,148,210, 94,148,
-210, 94,243,231,207,159,231, 84,254, 29,235, 74, 15,235, 75, 47, 74,105, 47,151, 50,186,175, 18,222,161,212,117, 41,212, 20,206,
- 74,210,145, 57,231,209,133, 85,171, 86,221,180,105,211, 38, 31, 87,210,148,148, 20,104,181, 90,204,156, 57,211,103,196,136, 17,
-239, 37, 38, 38,190, 81, 70, 58,100,169,169,169, 77,135, 13, 27,166,176, 90,173, 57, 60,207, 51, 90,173, 86,236,235,235,203, 57,
- 14,240,245,245,229,242,242,242, 36,  6,131, 65,196,113,156,121,196,136, 17,178,209,163, 71,191,228,108,209, 42, 38,113,131,130,
-162,122,244,232, 33, 43,105,191,205,102,131,193, 96,128,193, 96,128,213,106, 69,155, 54,109,228,235,215,175,239, 10, 96, 77, 73,
-231,200,229,242,168,168,168, 40, 73,118,118, 54,124,125,125,145,144,144,128,123,247,238,193,172,215,195,170,215,194,170,215,129,
-213,105, 65,181,121,200,186,115, 27, 45,159,175, 39,253, 78, 46,239,  6, 96,105, 73,156,106,181, 58,170,229,200,145, 98, 47, 47,
- 47,116, 24, 86, 48,206,224,224,243,207,131,114, 28,120,142,  3,199,178,232, 22, 23,  7,155,205,  6,134, 97,208, 60, 59, 91,172,
-222,188, 57, 10,192,226,127,162,176,203,229,114,241,150, 45, 91,134,202,100, 50, 80, 74,137,197, 98,193,225,195,135, 31,153,115,
-243,230,205,195, 29,156, 86,171,149,190,240,194, 11,197, 42,148,217,108,166, 79, 74,165,151,201,100, 80, 40, 20,176, 90,173,168,
- 94,189,186,113,216,176, 97,103, 63,255,252,243,106, 12,195,120, 73,165,210,159,178,178,178,230, 37, 39, 39,223,245,148,207,102,
-179,193, 98,177,192, 98,177,192,104, 52,226,207, 63,255, 12,173, 81,163,  6, 25, 63,126, 60,151,159,159, 95,243,139, 47,190,136,
- 63,124,248,176,106,193,130,  5,175,  2,120, 87,104,118, 31, 31,236, 86,105,223,106,  1, 98,131, 68,  4, 61,  0, 31,187, 40,120,
-149, 16,210,178,126,253,250,126, 55,111,222,204, 33,132,156,  7,240, 61,165, 52,165, 52, 62,158,231,  9,207,243,120,187, 69, 46,
-198,183, 18,193,102,203, 67, 94, 94, 30, 18, 18, 18,112,227,198, 13,252,242,203,141, 10,165, 83,161, 80,188,229,237,237,221, 85,
-161, 80, 84,103, 89,150,209,235,245,  9,249,249,249,177, 60,207,175,163,174,221, 10, 30,224,239, 74,167,  3, 94, 94, 94, 11,103,
-204,152,209,218,215,215, 23,191,253,246, 91,205,109,219,182, 45,196, 35, 58,215, 43, 36,204,134,165,203, 87, 86,169, 18,172,193,
-213,147, 63, 86,153,183, 54,102,  3,128,  8,161, 20, 63,253,112,214, 34, 46,248, 21, 64, 79,251,104,244, 94,143, 80,207, 31,233,
-252,210, 44, 90,174, 19, 75, 23, 19, 90, 37,100, 12, 44,203,134, 58, 91,178, 40,165, 72, 73, 73,193,195,135, 15,145,145,145,  1,
- 63, 63, 63, 88,173,214, 80, 79,222,179, 58,157,174, 69, 64, 64, 64,190, 68, 34, 49, 27,141, 70,168, 84, 42, 94, 34,145, 80,251,
-117,136,125,212, 34,103, 54,155,137, 88, 44,182,249,248,248,120,155,205,230,122, 40,197,151,140, 82,218, 34, 32, 32,192,237, 62,
-179,217, 12,189, 94, 15,131,193,  0,189, 94, 15,179,217,140,144,144, 16,176, 44,219,180,212, 79, 90,150,109, 20, 20, 20,132,228,
-228,100, 40,149, 74, 36, 37, 37,193,162,215,193,170,211,129, 53,104,193,229,229,129,215,106,193, 27,180,176, 89,242, 81,165,238,
-243,112,140, 72, 44,  9, 22,139,165, 81, 64, 64,  0, 12,134,191,220,205,168, 93, 96,177, 44, 11,214,238, 28,237,232, 78, 12, 12,
- 12,132, 99, 68,226,227,128,221,127,106, 10,195, 48, 43,228,114,185,120,220,184,113, 72, 73, 73, 41, 82, 38,198,141, 27, 87,232,
-147,213,174, 93,187, 83, 10,133,130,205,200,200,128,217,108,150,120,194, 89,189,122,245,132,153, 51,103, 94,176, 88, 44, 17,225,
-225,225, 26,179,217,108,124,238,185,231,194,149, 74,101,136,197, 98,225, 94,122,233,165,117, 74,165,210,166,215,235, 41,203,178,
-228, 73,168,244,132, 16, 16, 66, 10,158, 17,203, 34, 48, 48,208,144,153,153,249, 75, 78, 78,206,208,138,240,217,108, 54,199,136,
- 46, 24,141, 70, 80, 74,241,219,111,191, 65,161, 80, 72, 56,142,187,206,178,172, 74, 34,145,128,177, 59,127,  9,120,108,207,185,
- 67, 61,141,108,105,116,203, 96, 77,227,222, 94,  6,149, 76,100,224, 19, 26, 87,255,223,162, 27,219, 70, 12,127,203,103,246,236,
-217,145,129,129,129,138,248,248,120,211,156, 57,115,106,108,217,178,133,148,245, 17,244,224,193,131,221, 51,102,204,240,239,209,
-163, 71, 77,185, 92, 78,242,242,242,144,145,145,129,180,180, 52,220,187,119,143, 94,189,122,245, 79,179,217,188,189, 60,233, 12,
- 15, 15, 95, 63,113,226,196, 17,205,154, 53,147, 56, 44,164,  6,131,161,201,137, 19, 39,250, 28, 60,120,176, 45,128,114,151,203,
-196,196,196,237, 31,127,252,177,215, 43,175,188, 82, 79, 46,151, 51,149,145, 78,103, 48, 12, 19,226,237,237,141,216,216, 88,104,
- 52, 26, 48, 12, 19,242,168,207,203,100,229,171,132,135,  6,192,116,102, 41,234,  5, 69,194,100,229,171,  8,165,248,217,177,104,
-149,176,171,185,195, 34, 85,134, 88, 50, 78,159, 62,125,  6, 33,100,223,244,233,211,103,184,179,104,217,255,114,206,199, 57, 29,
-111,174,108,177, 85,174,160,144, 60,207,227,225,195,135, 72, 78, 78,198,195,135, 15,145,149,149,  5,134, 97, 74,141, 31,225,156,
-  6, 66,  8,127,228,200, 17,191,179,103,207, 26,154, 55,111,158,235,240,127, 97, 89,150,216,108, 54, 98,247,139, 33,  9,  9,  9,
-210,211,167, 79,107,110,221,186, 21,130,  2,135, 53,190,140,204, 21,219,230, 16, 88,206,139,201,100,130, 66,161,240, 40,175,142,
- 23,225,111,151, 46, 21,136, 44,189,206,222,101,152,  7, 78,155,  7,106,208, 65,198,217, 32,  3,  5, 49,229,123,124,255,156,225,
- 16, 89, 86,187,208,178, 88, 44,176,217,108,224,121, 30, 44,203, 62,246,  2, 78, 41, 93,221,164, 73,147,166,187,119,239, 30,245,
-240,225,195, 98,251,251,245,235,135,119,223,125, 23, 19, 39, 78,188,213,179,103,207,171, 63,254,248, 35, 38, 76,152,  0,158,231,
- 27, 19, 66,242, 40,165,  7, 75,227,156, 62,125,250,197,196,196,196,227,127,252,241,199,184,224,224, 96,121,163, 70,141,238, 52,
-106,212, 72,180,123,247,238,144, 49, 99,198, 92,234,222,189,251,253,159,127,254,217, 63, 54, 54, 86,193,243,124, 51, 66,200,195,
-127, 58,142,150,217,108, 46,180, 64,153, 76, 38, 88,173, 86,160, 20,231,247,178,202,166,227,217,178, 44,235,224, 38,187,119,239,
-194,169, 83,167,152, 27, 55,174, 71,140, 27, 55,222,225,112, 47,180,184,143, 71, 96,189, 34, 99,200, 87, 83, 26,  7, 40, 62,124,
- 49,192, 32, 19, 19,125,220, 87, 51,244,247,170,169, 13, 33, 85, 85,150,136, 26,154,240,121,243, 62, 15,187,117,235,182,121,230,
-204,153, 55,  7, 15, 30, 28,252,225,135, 31,214,223,185,115,103, 91, 66,200, 55,148,210,220, 18,120, 21, 35, 71,142, 60, 31, 28,
- 28, 92, 99,237,218,181,233,137,137,137,126, 54,155,205,203,106,181,242,  6,131,225,158,209,104,140,181, 90,173,177,148,210, 75,
-229, 73,175,143,143,207,139, 35, 71,142,148,228,230,230,194, 62, 90, 23,233,233,233,104,221,186,181,104,239,222,189, 13, 42,114,
- 15,178,179,179,151, 18, 66,142,111,221,186,181,171, 90,173,110, 38,151,203, 67,  1,112, 58,157, 46,205, 96, 48, 92,169, 72, 58,
-139,180,115, 28,151,118,233,210,165, 90,106,181, 26, 15, 30, 60,  0,199,113,105,143,250,220, 20, 82, 38,241,218,201,189, 85,159,
- 15,172,129,211,103,207, 67, 33,101, 18,133,210,252,204,195,225, 67,  5,103,  1,229, 70, 32,157,141,142,142, 86,206,159, 63, 31,
-209,209,209,215,221, 89,180, 28,130, 43, 58, 58,250,186,227, 56,167,227, 79, 62, 66,123, 82,178, 69,171, 20,  5,  9,177, 88,156,
-154,145,145,225,167,209,104, 10,  5, 86,114,114, 50,146,147,147, 33,147,201,144,144,144,  0,153, 76,150,226,201, 71,136, 82,169,
-188,216,164, 73,147,231,238,222,189, 43,157, 51,103, 78,213, 75,151, 46,169, 91,183,110,253,130, 82,169,228, 40,165, 48,153, 76,
-204,205,155, 55,189, 23, 47, 94, 92,165, 69,139, 22,150, 22, 45, 90, 92,142,137,137, 49,162,148,224,165,132,144, 11, 41, 41, 41,
- 53,171, 87,175,238, 16,109, 69,196,149,179,224,  2, 10,186, 60,197, 98,241,229,210, 18, 42, 22,139,175,197,197,197,117, 81, 41,
-228,176,232,180,176,234,181, 96,117, 58,112,186, 60,112,121,121,128, 65, 11, 25,203, 66,194,217,160, 84, 40,240, 48, 41,  9, 98,
-177,248, 90,105,156, 50,153,236, 90, 90, 90, 90, 23,141, 70, 83,248, 18,181,177,108,193,194,113,176,176,108,161, 69, 75, 34,145,
- 32, 49, 49, 17, 50,153,236,218,227, 46,201, 12,195,112,142, 16, 14, 37,228,  3, 33, 33, 33,124,203,150, 45, 49, 97,194,  4,112,
- 28,103,127, 12,164,  3, 33,228, 52,165, 84, 95, 18, 39,207,243,204,205,155, 55,251,199,199,199,139, 36, 18,  9,243,242,203, 47,
- 55,108,211,166,141, 69, 38,147, 65, 42,149,138,245,122,189, 79,108,108,172,194,102,179, 17, 59,231, 99,139,163,229, 40, 59,197,
- 62,141,236, 78,235, 70,163, 17,122,189, 30, 57, 57, 57, 98,165, 82,249,220, 11, 47,188,112,222, 98,177,108,103, 89,118,195,221,
-187,119,181, 37,113,218,133, 89,161,232,226,121, 30,148, 82,112, 28,  7,155,205,  6,169, 84,202,159, 56,113, 18,139,151, 45,196,
-166, 13, 91,104,159, 62,125,200,222,189,123,193,243,124,146,208,174, 62, 22, 44,201,253,254,115,  5, 88,206, 96, 62,177, 85,255,
-237, 31, 90,195,236,111,151, 95,180,200, 68,218,151,218,135, 52,170, 89,227, 57,145, 70,227,199,172, 89,183, 34,235,187, 45, 59,
-226, 31, 60,120,160, 93,181,106, 85,171,231,158,123,206,247,202,149, 43, 85,  0,184, 21, 90, 42,149,170,206, 91,111,189, 53, 50,
- 39, 39, 71,186,105,211,166,152,148,148,148,139,  0,110, 80, 74, 13, 78,109, 87, 79, 66,200, 70, 20,140,124, 10,177,183,115,167,
- 41,165,115, 74,251, 94, 35,132,224,216,177, 99,197, 70,  7,242,143,166,206, 53,181,107,215, 30,116,247,238,221, 83,169,169,169,
-175,185,169,247,179,235,214,173,219,237,250,245,235,159, 81, 74, 15,148,135, 56, 63, 63,127,234,142, 29, 59, 22,137, 68,162,112,
-142,227,146,141, 70,227,212, 71,182,104,217,248,209,209,107,182,125,109,180,112,213,148, 50,209,  3,147,141, 31, 35, 20,229,103,
-218,154,  5,216,125,180, 28,255,  1, 16,151,245, 43,246,255, 22,167, 99, 51,156,172, 88, 22, 23, 43,152,187,125, 25,168, 96,176,
-116,119, 35, 14, 29,162,171,164,200,240, 31,  1,104,  1,224,130, 68, 34, 89, 49, 98,196,136,197,223,125,247,157,143, 86,171, 69,
- 90, 90, 26,210,211,211, 33, 22,139,161, 86,171,177,122,245,106, 99, 90, 90,218, 10,231,115, 92, 35,200, 59,234, 70, 96, 96,224,
-197, 45, 91,182,132,126,245,213, 87,226, 55,222,120, 35,161,103,207,158,245, 86,175, 94,125, 87, 42,149, 82,142,227,136,217,108,
- 38,111,191,253,118,173,101,203,150,221, 23,137, 68,170, 65,131,  6, 17, 47, 47,175, 11, 40,112, 80,117,127,231, 51, 50,142,252,
-240,195, 15,253, 39, 79,158, 44,183, 88, 44,110, 45, 89,142,109, 26,141,  6,103,206,156,177,228,228,228, 28, 46,195,138,113,228,
-167,  3,251,219,189, 62,120,176,212,166,211,194,166,211,130,213,106,193,233,114, 65,244, 90, 72, 56, 22, 74, 41,143,208,  8,  5,
- 88,163, 55,246,255,122,197,102, 54,155, 75, 13,108,168,213,106,143,156,222,180,169, 67,139,200, 72,241,153, 73,147, 96,181,217,
-240, 74, 92, 92,161,184,178, 90,173,216,211,168, 17, 56, 66,208,120,236, 88,220, 97, 89, 86,171,213, 30,121, 18, 43,195,213,171,
- 87,211,135, 13, 27,118,137,231,249,166,229,177,238, 56,224,237,237,173,211,235,245,200,204,204,228,178,178,178, 76,  0,144,158,
-158,158,179,119,239,222,155, 60,207,183,168,  8,103,101,192,102,179, 21,179, 70,113, 28, 87, 96,117, 44,176, 28,200,246,239,223,
-223,238,230,205,155,210,223,127,255, 29,167, 78,157,106,252,221,119,223,125, 20, 25, 25,217, 40, 33, 33, 33,181, 44,241,230, 46,
-232, 47,236,254,135, 49, 91,183,227,157,119,222, 33,169,169,169,248,254,251,239, 81, 86,240, 84,  1,149,  6,  3, 88, 78,105, 57,
-177, 85,223,243,192,  3,221,185, 20,227, 28,  0,135,168,145,165, 85,171, 86,189,218,172,153, 95, 32,  0,152, 77, 92,104,157, 58,
-117,218,139,197, 98,153,189, 12, 55, 11,  8,  8, 88, 13,160,141,155,246, 83, 52,120,240,224,150,193,193,193, 77, 14, 30, 60,120,
- 37, 37, 37,229, 58,165,244, 23,215,227,106,213,170, 53,243,214,173, 91,205, 37, 18,  9, 41,163,140,  0,  0, 58,116,232,240, 92,
-100,100,100,192,129, 63,124,161,149,214,  6, 21,229,  1, 98,  5, 56,205,139, 72,144,214, 71, 68,196,249,  0,141, 70,211, 56, 55,
- 55,247, 74, 57, 95, 16, 29,251,247,239,191, 97,211,166, 77, 17,237,219,183,167,132, 16,198, 53,164, 67,173, 90,181,186,158, 59,
-119,174,233,152, 49, 99,214,218, 71, 15,123,236, 60, 76, 41, 77,  0, 48,160, 50, 31,218,225, 59, 52, 22,246,152,103,  2,254, 53,
-248,245,111, 58,182, 82, 80,145,200,240, 45,120,158,239,195, 48, 12,172, 86,107,116, 72, 72,200,158, 65,131,  6,245,251,232,163,
-143,188,  3,  2,  2, 10, 45, 89,171, 87,175, 54,222,187,119,111,167,213,106,253,141, 16, 50, 43, 57, 57,185, 79,120,120,137,239,
-  7,221, 23, 95,124,177,173,119,239,222,111,140, 29, 59,214,216,168, 81, 35,117,189,122,245,242,207,158, 61,235, 29, 21, 21,165,
- 21,137, 68,244,204,153, 51, 62,181,106,213, 50, 17, 66,228, 63,255,252,115,214,249,243,231,107, 69, 71, 71,127,131,130,225,214,
- 37, 97,235,220,185,115,103,246,233,211,167, 86, 64, 64,  0,180, 90,109, 17,177,229,248,175, 80, 40,144,154,154,138, 93,187,118,
-165,216,108,182,111,202,176,108,172, 90,185,122,205,123, 29, 91,190, 92, 69,173, 82, 34, 53, 41,  1, 92, 94, 14, 96,208, 67,198,
-218,160,148, 81, 84,169,173,130, 88,228,133,248, 84, 61, 54,157,253, 53,149,101,217, 85,165,113, 90, 44,150, 85,239, 46, 91,246,
-222,185, 53,107,170, 68, 14, 28,136, 27,155, 55, 23,118, 21, 58,132, 22, 71,  8,170,117,238, 12,198,215, 23,243,214,174, 77,179,
- 88, 44,171, 30,119, 97,225,121, 94,100,177, 88, 74,203,  7,120,158, 79,186,113,227,198, 54, 66,136,142, 16,210,193,190,235,184,
- 59,107,150, 51, 39,195, 48,124,253,250,245,119,135,132,132,244,  7, 96,168, 95,191,254,110,185, 92,222,201, 98,177,188,204,243,
-124,210,111,191,253,182,139, 16,146, 74,  8,113,124,117, 60,214, 56, 90, 54,155, 13,179,102,205,194,252,249,243, 49,125,250,244,
-194,252, 58,186, 15,115,115,115,107,156, 62,125, 90,122,226,196,  9,186,118,237,218,172, 55,222,120, 67, 51,118,236, 88,205, 87,
- 95,125,245,  1,128,169, 37,113, 78,157, 58, 21,107,215,174,197, 59,239,188, 83, 92,101,137, 68,124, 82, 82, 34, 76, 38, 19,253,
-226,139, 47,146, 37, 18,137,223, 55,223,124,163, 28, 51,102, 12, 17,218,213,199,130,143,149,195, 62,121,223,222,198,172,160,148,
- 30,119,236, 80,171,213,202,221,187,127, 16,  3,192,206, 29,187, 36,148, 82, 95, 71,128,217,111,191,253, 86,209,186,117,235,224,
- 18, 26, 92, 78,161, 80,152, 23, 44, 88, 16, 48,122,244,232,238, 71,143, 30,245, 35,132,180,  4,112, 17, 64,154, 93, 92,  7,  3,
-184, 17, 24, 24,168,142,137,137,169,210,181,107, 87,175,178, 18,170,211,233,190,217,182,109, 91,245,101,167,125,113,192,208, 31,
-137,252, 64, 80, 13,133,127,176, 14,245,189, 31, 96,232,208,161,225, 43, 86,172,248, 26, 64,179,114,136,172,161,253,250,245,155,
-191,105,211,166,240,209,163, 71,167, 94,190,124, 57, 13,192, 38, 55,130, 47,115,196,136, 17, 41,155, 55,111, 14,163,148,174, 33,
-132,200, 40,165, 59,133,226, 35, 64, 64, 97, 93,106,143,130,136,240,197,196, 23,113,231,223, 68,  8,217,195,178,108, 31,177, 88,
-188,215, 57, 96,105, 72, 72,200,123, 22,139, 37,140, 16, 66,165, 82,105,106, 90, 90,218, 10,231,128,165, 73, 73, 73,125, 34, 34,
- 34, 10,207,177,  7,221,116,142,181,161,126,229,149, 87,186,156, 59,119,238,203,125,251,246,165,235,116, 58,239, 29, 59,118, 40,
-231,207,159,159,192,243, 60,157, 54,109, 90,100,183,110,221,242, 57,142, 75, 25, 59,118,108,173, 26, 53,106,140,189,117,235, 86,
-172,179,208,114,195,  9, 66, 72,131,218,181,107,159,217,185,115,167, 90,163,209, 32, 61, 61, 29,217,217,217, 48, 24, 12,224, 56,
- 14, 18,137,  4, 25, 25, 25,152, 51,103,142, 54, 57, 57,185, 88,192,210, 18, 56, 91, 84,175, 82,229,200,138,207,102,249,104,196,
- 12,178,110,223,  4,155,147,  5,  9,107, 67,213,  6,190,144,202,148,184, 19,167,195,  7, 91,119,233, 30,100,231, 22, 11, 88, 90,
- 18,231, 75,117,234,196,174,157, 50,197,219,148,152,136,176, 55,223, 68,126,126, 62,172, 86, 43, 24,134,193,159, 43, 86, 64, 26,
- 20,132,153, 49, 49,134,235, 15, 30,116,118, 13, 88,234,142,179, 18, 10, 71, 33, 39, 33,100, 60, 33,164,208, 25,190, 95,191,126,
- 69,142,253,225,135, 31,176,102,205, 26,152,205,102,150, 82,250, 30,165,116, 53, 33,196,219, 94,160,244,101,113, 86,175, 94,253,
- 65,195,134, 13,127,229, 56, 78,108, 23, 25,244,198,141, 27,205,238,221,187, 87,213,133, 83,108,231,100, 31, 87,222,  3,  2,  2,
- 86, 28, 60,120,176,122,112,112, 48,113,142,216,110, 23,138,  0,128,  9, 19, 38,116, 62,127,254,188,188, 73,147, 38,230,204,204,
-204,230, 65, 65, 65, 71,183,108,217, 18, 56,104,208,160,228,235,215,175, 87,113,229, 12, 12, 12, 92,188,115,231,206,218,181,107,
-215,102, 28, 86, 49,215,238,201, 81,163, 70,117,217,178,101,139,172,127,255,254,102,131,193, 16,226,227,227, 19,191,115,231,206,
-192,190,125,251,166, 94,191,126, 61,236,113,228, 93,224,116,143,134, 13, 27,222,185,126,253,122,109,199,186,209,104, 68, 70, 70,
-  6, 50, 51, 51,161,209,104, 16, 21, 21,245,231,189,123,247,106,187,227, 36,132, 52, 25, 48, 96,192,103, 95,127,253,117, 23, 47,
- 47, 47,233,201,147, 39, 13,177,177,177,166,132,132,  4,214,102,179,209,176,176, 48,113,155, 54,109, 20, 61,122,244,240,146,203,
-229,204, 39,159,124,146,249,249,231,159,  7, 18, 66,182, 58,166, 63,115,229,108,218,180,233, 47, 63,253,244, 83, 11, 66,  8, 68,
- 34, 17, 44, 22, 43,114,115,115,241,240, 97, 18,110,220,184,129,115,231,206,225,240,225,195, 87,244,122,125, 19, 15,235,123,  0,
-128,147,102,179,185,158, 76, 38,243, 88,216,115, 28,  7,177, 88,124, 27, 64, 87, 74,105,146, 80,150,  4, 78,  1,127,249,103,149,
-203, 25,222, 46,192, 90, 16, 66, 28,147,146, 94,112, 13,225, 64,  8,249,136, 16, 50,203,201, 10, 86, 86, 90,180,  7, 15, 30, 60,
-213,165, 75,151,  9,157, 59,119, 94,214,181,107,215,148,148,148,148,154, 75,151, 46,141, 96, 89,214,122,227,198, 13, 38, 62, 62,
- 62,225,226,197,139,181,235,214,173, 59,246,214,173, 91, 39,202,176,102, 57,210,122,131, 16,210,186, 99,199,142,187,198,142, 29,
- 91,173,101,203,150, 50,141, 70,  3,177, 88,140,187,119,239,226,202,149, 43,150,152,152,152,164,220,220, 92,143,167,224,161,148,
- 94, 32,132, 68, 13,154,248,222,206,177,253,122,  7,190, 92,239, 57, 89, 88, 88, 24, 96, 52,226,246,131, 84,156,191,125,197,186,
-254,212,249, 12,179,217,252,154,167, 83,240,216, 57,187,116,154, 50,101,231,236,215, 95, 15, 65, 74,138, 56, 44, 44, 12, 50,153,
- 12,247,238,221, 67, 60,207,179, 11,214,173, 75,211,106,181,143,125, 10, 30, 71,204, 43,158,231,197,  0,160, 84, 42,241,238,187,
-239,194,121,202,157, 53,107,214,192,104, 52,  2,128,152, 16,178,136, 16,178,161, 36, 43, 86,  9,156,213, 14, 28, 56, 80,205,153,
-243,249,231,159,119,199,105,126,220,149, 36, 59, 59,123,230, 43,175,188, 18, 45, 22,139, 75,140,122,235,231,231,  7,157, 78,  7,
-150,101,185,135, 15, 31,222,246,243,243,131, 68, 34,  1,165,212,109, 61,202,202,202,154,249,218,107,175,205,101, 24, 38,184, 36,
- 78,181, 90,157,112,244,232,209, 58, 99,198,140, 97,254,247,191,255,221, 29, 61,122,180,252,232,209,163, 28,165,116,151,208,116,
- 61, 89,112,254, 40,181,127,196,209, 82,142,253,141, 16,178,236,226,197,139, 65, 19, 38, 76,168,249,250,235,175,171, 59,118,236,
-232,237,124,140,209,104,228,127,252,241, 71,195,154, 53,107,242, 78,157, 58,117,127,212,168, 81, 45, 81,224, 95,226, 22, 15, 30,
- 60,216, 63,111,222, 60,223, 30, 61,122,212,  5, 80,232,159,149,145,145,129,132,132,  4,252,254,251,239,  9, 86,171,117,111, 57,
-242,147, 69,  8,153, 61,100,200,144, 69,155, 55,111, 14, 31, 61,122,116,106, 76, 76,204,239, 40,  8, 48,236, 10, 77,191,126,253,
- 26,109,222,188, 57,108,244,232,209,169,  0,230, 80, 74,  5, 63, 66,  1,  2,254, 66,  7, 87, 63,173, 82,125,180,  0,228,241, 60,
- 15,147,201, 20,194,243,124, 31,158,231,225,237,237,237,238,184, 22,201,201,201,125,156, 39,149, 70, 25,211,229,  0,200,136,141,
-141, 61,178,117,235,214,206,211,166, 77,123, 61, 55, 55,183,197,213,171, 87, 91,  2,128, 68, 34, 57,231,229,229,245, 75,116,116,
-244,155, 83,167, 78,205,240, 68,100,185,136,173,250,139, 23, 47,174,180, 73,165,237,194,168,206,170,237,187, 38,124, 35,151, 71,
-185, 76, 42,125,196, 62,169,180,169, 34,156, 83,190,254,122,130,122,251,246, 39,118, 82,105,179,217,204,246,239,223,255, 27,134,
- 97,120,251, 87,172,216,108, 54,191,137,114,142, 84,117,229,236,215,175,223,255, 68, 34, 17,107,183, 20, 49,102,179,249,173, 71,
-225,172,196,151,168, 30,192,196,210,142,121,225,133, 23,182,236,221,187,119, 88,159, 62,125, 56,171,213,154,222,187,119,111,241,
- 47,191,252, 66, 25,134,137, 45,129,211, 12,224,191,165,113,134,134,134, 70,174, 92,185,242,242,164, 73,147,212, 91,183,110,245,
- 63,125,250, 52,247,197, 23, 95,104,179,179,179,151,  8,237,214,147,  5,137, 68,  2,149, 74,  5,139,197,130,140,140, 12,148, 21,
-178,138, 82,122,140, 16,210, 99,202,148, 41,175, 78,153, 50,165, 71,104,104,104,173,234,213,171,171, 24,134,193,195,135, 15,217,
-228,228,228,116,155,205,118,  4,192, 46,  0,168, 85,171,214,  8,  0,235, 75,226,203,202,202,154, 75,  8, 57,182,121,243,230,158,
- 94, 94, 94,245, 21, 10,133,191,205,102, 99,116, 58, 93,182,209,104,188,105, 50,153,246, 81, 74,207,150,179,220,199, 16, 66, 50,
-223,120,227,141, 13,155, 54,109,138,184,123,247,174,238,226,197,139,175,184, 30, 87,191,126,253,211,155, 55,111, 14, 27, 51,102,
- 76, 74, 76, 76, 76,185,124,180,  4,  8,248,151,124,136,157, 64,  9,254,197, 37,189,224,230,201,100, 50, 49,236,147, 75, 59, 44,
- 90,110,142,187,224,226,147,149,  7, 96,158,  7,105, 50, 12, 29, 58,244,222,208,161, 67, 23,217,211, 32, 66, 65,  8,  7, 22,  5,
- 30,255, 86,148, 17,210,161,132,140,178,  0,190,182, 47,149,117,243, 76, 40,136,151,179,248, 73,230,172,132, 52,153,  9, 33, 83,
-  8, 33,139,236,155,166,252,246,219,111,171, 93, 44, 84, 87,157,247,151,101,121,114,199,121,229,202, 21, 87,206,223,203,195,249,
- 79, 34, 55, 55,247,189,149, 43, 87, 94,152, 62,125,186,124,228,200,145,248,253,247,223, 49,127,254,124,115,110,110,238,214,138,
-114,166,166,166, 38,132,134,134, 54, 93,190,124,249,135,203,150, 45,235, 75,  8, 17,230, 58,124, 66, 96, 52, 26,255,124,241,197,
- 23, 65, 10, 28,150, 40,203,178,133,163, 69,237, 17,254,255,244,196,106,  4, 96,157,125,  1, 33,196, 31,  5,163, 12,179, 40,165,
-174, 31,146, 83, 60,224, 59,  7,224, 92, 37,215,253, 99,132,144, 55,227,227,227,231,253,249,231,159,110,133,218,157, 59,119,142,
-183,105,211,198,231,234,213,171, 31, 83, 74,247, 11,165, 67,128,  0,207, 33, 46,161,226,221,  1,240,186,  7, 21, 52,250, 17,174,
-205,121, 96,253, 18,240,120,197,214,106, 66,200,  6, 39,107, 76,185,246, 63, 46,206,127, 10, 73, 73, 73, 57,  0, 10,167, 34,169,
- 89,179,102, 49, 63,182,138,138, 45, 20, 68,129, 23, 34,193, 63, 65,184,123,247,238, 43,127, 67, 29,203,126, 66,235,254,113,  0,
- 45, 75,218,111,179,217,102,  1,184,162, 10,252,  0,  0, 32,  0, 73, 68, 65, 84,152, 37,148, 10,  1,  2,202, 15, 33,250,180,  0,
-215,  6,215, 92,154,224, 41,107,255,227,226, 20, 32, 64,128,  0,  1,  2,158, 20,184,153,235,176,125,225, 62,  0, 93, 74,120,249,
-197,150,227,  2,229,158,208,179, 44,126,129, 83,224, 20, 56,  5, 78,129, 83,224, 20, 56,159, 61, 78, 39,238,101, 37,236,186,237,
-194,247,213,211, 40,188, 10, 71, 31, 82, 74,255,182,  5, 64, 23,129, 83,224, 20, 56,  5, 78,129, 83,224, 20, 56,  5,206, 10, 94,
-103,236,227,184, 78, 37,167,153,  2,104,239, 88, 23, 67,128,  0,  1,  2,  4,  8, 16, 32, 64, 64,165,192,163, 56, 90, 59,118,236,
- 16, 57,254, 15, 25, 50,100, 20,199,113,133,195,222, 69, 34,209,202,239,191,255,126, 67,105, 23, 25, 48, 96,  0, 87, 26,167, 59,
-148,117, 29,119,156, 13,159,243, 29, 23,224,171,122, 47, 55, 47,127,249,221,100,238,148,201,100,170,239,216,167, 80, 40,110,110,
-216,176,225,143,202, 78,231,168, 81,163,234,186, 94,167,122,132,164,131,191,143,226,221,236, 92,253,210,223,255,208,125, 37, 20,
-179,191, 23,  3,  7, 14, 44,215,241,247,238,105,112, 25, 97, 80,123, 73,161, 55,216,192, 93,122, 54,124,122,195,194,194,234,169,
-213,234,225,  0, 26,228,231,231,  7,171, 84,170,116,  0, 55,180, 90,237,150,148,148,148,219,158,242,116,168, 65, 18,  0, 84,179,
-175, 62, 56,126,143, 70,122,178,175, 44,116,171, 77, 76, 20,144, 19,  2,235,161, 59,180,112,  2,205,238,117,136,137,167,197,183,
-119,171, 67, 44,148, 66, 74,  0,243,161,120,170,120, 86,202, 43, 33, 68, 13, 32, 10, 64, 67,  0, 87,  1, 28,166,148,230, 11, 53,
- 89,128,128,103,  7,174,129, 74,157,215,197, 37,136,137,118, 82, 49,249,146,130,106,  0, 26, 96, 54,155, 37, 50,153, 12, 22,139,
-  5, 42,149,114,213,219,163, 71,125,  6,  6,185, 54, 22,239,110,216,176,161,194, 51, 93,151,231, 58,  3,  6, 12, 56,230,122,190,
-159, 90, 57,247,248,143,211,252,218,245, 92, 48,223,114, 47,115,170, 78,167, 99,228,114, 57,204,102, 51,124,125,125, 91,143, 27,
- 59,182, 25, 35,161, 22,169,212,235,236,178,101,203, 82, 43,154,206, 15, 62,248, 32,212,106, 53,253,135,231,121,153,197, 98,145,
-187, 94,199, 87,229,181,224,248,143,211, 84,237,123,205,255, 12,128, 32,180,158, 32, 20,136,172, 80,188, 63,244,101, 44,156,212,
-  5,154, 14, 11,158,133, 10, 45,170, 89,179,230,132,200,200,200,193,235,214,173,147,214,172, 89, 19, 10,133,  2, 70,163, 49,236,
-207, 63,255, 12, 27, 55,110, 92,251, 90,181,106,109,187,123,247,238, 42, 74, 41,231,  1,101,181,227, 27, 63,  1,  0,180, 30, 62,
-167, 26, 33,228,191,  0,242,  1,160,125,245,191,246,117, 24, 57,167, 26, 33,100, 10,138,142, 22, 78,161,148,186, 13,146, 73,  1,
-217,190,205,139,209,103,196,127,197,132,144,113,142,237, 61,234,  2, 63,125,187,  2,221,135,188, 87,100,123,183, 90, 16,255,184,
-121, 49,122,141,248,111,137,179,154,119,175,203,216,120,158,150,104,137,103, 24,194, 30,186, 67,221, 77, 48,156, 70, 41, 61,228,
-230, 94,118, 67,193,132,206,110,143,239,245,188, 56,205,106,227,220,  6,156,149, 74, 68,233,251,110,177,197,206, 29,217,148,216,
-108, 92, 65,219, 42, 21,131,243,245,245, 61,254,241,199, 31,139,123,245,234,133,245,235,215,183,249,234,171,175,198, 18, 66,126,
-  6,176,151, 82, 26, 47,212, 82,  1,  2,158, 93,193, 85,162,208, 18,139,176,118,239,206, 13,181,211,210, 51,241,198,152, 15,177,
-117,235, 86,228,228,228,192,207,207, 15, 50,169, 84,178,124,209, 39,161,106,181, 87,232, 27, 99,167,174,  5, 80,175,162,  9, 42,
-231,117,234, 20,203,144, 61,160,169, 88,196, 72,100, 50, 25,179,109,219, 54,228,230,230, 66,163,209, 64, 38,147, 48,203,230,127,
-164, 84,171,189,149,111,141,159,222,  6,192,246,138,166,211, 98,209,183,217,189,117,131, 58, 35, 35,  3, 35,223,153, 10,215,235,
- 72,165, 82,206,241, 98, 17,138,217, 63,135,204,204, 76,  0, 64, 96, 96,160,139,200,106,137,101,147,187,226,131,165,135,145,111,
-178, 60,245,249,172, 89,179,230,132,129,  3,  7, 14,158, 59,119,174,148, 97, 10,  6, 14, 27, 12,  6, 24,141, 70, 84,169, 82,  5,
-199,143, 31,151,206,156, 57,115,240, 15, 63,252,  0,  0, 95,148,151,255,250,245,235,213,171, 85,171,102,  2,128,222,141,124, 92,
-247, 69, 58,246,  1,128,143,143, 79,153,124,  1, 26, 47,243,245,235,231, 27, 56,206,155,208,185, 10, 87,194,118, 19,  0, 85,105,
- 92, 60, 79,197,135,191, 28, 87,226,254, 49,115,191, 99,175,110, 63, 85,175,102,205,154, 70,231,237, 37,  4, 92,  6,128, 16,189,
- 94, 95,205,117,163,227,120,171,141, 11, 46,233,122, 93,223, 93,227, 86,128,217, 56,136,191,251,238, 59,  0,192,146,255, 14, 19,
-125,253, 75,166, 88, 44, 46,104,106, 23, 45, 90,132,217,179,103,203, 14, 29, 58,212, 99,243,230,205, 61,  8, 33,203, 75, 18,170,
-  2,  4,  8,120,250, 68,150,243,111,169, 66,139, 33,196, 71,237,227,141,  1, 67,223,198,193,131, 63,161, 93,187,118,133,251,106,
-212,168,129,129,175,245,197,247, 27,151,  1,128,207,163, 36,234, 81,175,147,147,103,248,191,238,131,191,156,243, 32, 85,127,110,
-223,190,125,104,219,182,109,145,243,135, 14, 26,128,111,191, 89,  4, 74,169,244,145,110, 30,101,164, 62,106, 47, 12,121,227, 29,
-184,187,206,216,145,253,246,117, 27,184,162, 75, 90,150, 97,153, 80,212, 30, 47,110,221,186,  5,179,217, 12,181, 90, 13,137, 68,
-  2,185,166, 26,146,197, 45,144, 65,106, 34, 61, 56, 31,147,187,132, 96,201,251, 29,241,193,210,195, 88,190,245, 60,154, 34,245,
-169,206,111, 88, 88, 88,189,200,200,200, 34, 34, 75,167,211, 65,175,215, 67,171,213, 66,167,211,129, 97, 24, 76,157, 58, 85,122,
-226,196,137,193, 97, 97, 97,177, 30,116, 35, 62,104, 61,124, 78,129,216, 16, 73,244,179,102,205, 50,  7,  7,  7,155, 85, 42, 21,
- 21, 75,229,186, 14, 35,231,248,  0,  0, 35,150,234,150, 47, 95,110,169, 82,165,138, 73, 44, 22,203,222,123,239, 61,143,194,195,
-152,205,102,234,204,105,177,152, 11,183, 47, 88,176,192, 18, 18, 18, 98, 86,169, 84,212,106,245, 92,  4, 95,187,151, 13,185, 84,
-  4,185, 84,  4,133, 76,  2,159,234,205, 33,207,249, 29, 44,203, 98,225,194,133,214,208,208, 80,139, 74,165,162, 50,153, 76, 58,
-105,210,164, 50,211, 57,106,212, 40,170,209,104,172, 42,149, 74, 58,123,246,236, 98,209,157,143, 94,125,  8,165, 76,  2,149, 92,
-140, 58, 53, 34, 32,167, 70,143,211, 42, 18, 21,245, 70,144,203,229,104,211,166, 13, 26, 52,104,128, 61,123,246,116,  0, 32,  8,
- 45,  1,  2,158,114,184, 90,177,138,  9,173,253,251,247,183,135,125,214,233,158, 61,123, 22,204, 54, 13,138, 41, 19, 94,195, 91,
- 35,135,128,227,248,194,233, 38,  8, 67, 48,254,205, 30,224,121,206,147, 11,151, 57,196,179,188,215,113,230,164,132, 17,  1, 64,
-237,200, 48, 58,246,173,215,193,241,124, 65, 24, 84,  0, 16,  1,111,143,236, 94,176,173, 18,210, 41,  2,135, 15,199,189, 10,119,
-215,169, 87, 59,156, 97,173, 38, 16,167,201, 30,255,142,201, 54,  5,206,162, 56,123,246, 44, 84, 42, 21,134, 13, 27,134, 73,147,
- 38,129, 19,107,176,227, 92, 22,166,173, 62,135,124,179, 21, 67, 59, 86,199,228,215, 27, 97,242,242,163,133, 34,171, 70,141,220,
-167, 58,239,106,181,122,248,186,117,235,138,137,172,180,180, 52, 70,175,215,195,106,181,242, 58,157, 14, 28,199, 97,250,244,233,
-146,153, 51,103, 14, 39,132,204,182,243,152,221,113, 30,191, 71, 35,  9, 33, 83,174, 95,191, 30,249,241,199, 31, 91, 59,117,234,
-244,160, 70,141, 26,  6,145, 72,132,176,176,176, 21, 81, 81, 81,254,115,231,206,181,246,232,209,227,190, 72, 36, 66,157, 58,117,
- 12,191,255,254,123, 36,  0,165,167,121,119,230,220,112,116,165,227,171, 15, 81, 81, 81,  9,117,234,212, 49,136, 68, 34,252,241,
-227,  2,234,233,253,148,136, 25,212,173,226,235,248,140,  4,148,222, 64, 78,193,106, 84, 84, 84, 82,189,122,245,244, 12,195,224,
-218,181,107, 17,  0, 20,101,113, 42,149, 74,219,208,161, 67, 31,220,190,125,187,216,241,  0, 32, 22, 49,104, 89,207,110,192,170,
-210, 20, 72, 58, 93, 98, 58, 37, 34,176, 51, 39, 12, 19,107, 20,128,220, 39,208,172,213,106,161, 86,171, 11, 44,100, 86, 43,126,
-251,237, 55,180,106,213,170,253,246,237,219, 79,  8,245, 93,224, 20, 56,255,130, 59, 45,242,180, 89,179, 28,130,203,157,143,214,
-113,215, 76,113, 28,139, 26,213, 66,176,224,147, 81,224, 56, 30, 28,199,129,181,255,114, 28,  7,155,213, 90, 41,137,123,148,235,
-248,169,149,115,127,218,246,174, 95,167,126,139, 58, 71,127, 60,242,  8,199,  1, 60,111,131,205,  6,112,188, 13, 60,199,193,102,
-171,156,174, 34, 27,207, 35, 50, 34, 20,209, 31,143,132,235,117,182,124,191,189,247,209,189, 83, 85,237,122,205,255, 16,192, 66,
- 65,219, 63, 30, 75,150, 74,165,194,150, 45, 91,208,188,121,115,  0,192,169, 56, 22,211, 86,159,195,161,232,214,104,221, 32,  0,
-233,185,102,188,183,234, 10, 14,158, 75, 47, 38,178,158, 98, 52,168, 89,179,102, 17,145,181,120,241,226,192,213,171, 87, 87,  1,
-128,215, 94,123,237, 97,231,206,157, 51,227,226,226, 16, 22, 22, 70, 50, 51, 51,123,  2,120,207, 94,241,167, 80, 74, 87,151,192,
-107,168, 86,173,154, 41, 40, 40,200,236, 16, 68, 12,195, 64, 44, 22,163, 90,181,106,166,224,224, 96,115,157, 58,117, 12, 82,169,
- 20, 12,195,192, 33,244, 60,108,128, 32, 18,137,224,224,116,181,246, 56, 56,203,  3,137,216,233,120, 90,220,130,196, 48,140,219,
-235,149,  4,133, 66, 65,  1,148,120,188,136,113,106, 30,197,165,123,  8,108,188, 76, 37,132,144,227,148, 82, 92,190,124, 25,119,
-239,222,133, 84, 42, 69,104,104, 40,102,207,158, 13,179,185, 64,239, 14, 28, 56,176, 61,128,107, 66,109, 22, 32,160, 16,199,159,
- 54,129,229,106,213,114,231,163,197,184, 81,147,133,  2,168, 64,236,184, 17, 63, 54, 22, 54,155, 21, 40, 99, 82, 85, 79,133, 86,
- 73,215,225, 56,190,212,235, 56,124,180,120,158,138,221,138, 44,158,  7,107,179, 85,202, 13,228, 57, 27,120,222,  6,119,215, 33,
-132,225,236, 13,190, 84,168, 39,143,  7,102,179, 25, 67,134, 12, 41, 20, 89,  0,144,169,179, 33,223,108, 67,235,  6,  1,104,214,
-113, 32,130, 53,114,196,156,124,136, 96,141,234, 89, 17, 89,200,207,207, 15, 86, 40, 20, 48, 24, 12,133,150,172,213,171, 87, 87,
-177, 88, 44,140,197, 98, 97, 98, 98,182, 71,108, 61, 18, 87,117,203,161,184,170,235,118, 93,170,154,147,147,215,128, 82,170,164,
-148, 42,  1, 44, 34,132,200, 75,227,151, 74,165,133,  2,197, 89,  0,201,229,242, 10,  9,152,194,134,198, 46,206,164, 82,169,219,
-237,174,221,107,101, 65,234, 44,180, 64, 11,172, 90, 46, 98, 75, 36, 18,193,225, 27, 85, 22,100, 50, 89, 97,222,221, 65, 44,114,
-186,158,168,252,174,152, 86,171, 21,122,189, 30,185,185, 69, 44,170,112,136, 96,  1,  2,  4,184,215, 34, 79,171,216, 42,210,126,
-184,170, 73,216,103,159,102,109, 86,183,226,103,251,143,103,240, 32,213,128,208,192, 11,160, 37,204, 84, 93, 18,  6, 15, 30,188,
- 49, 44, 44,172,112, 62, 45,185,210, 59, 96,236,187,159,130,101,173,240, 81, 50, 24, 51,188,123, 17,145, 85, 96,209,178,160, 36,
- 57,151,147,103,248,191,238,  3,191,152,227,171, 14, 56,231, 42,126,162, 55, 93, 26,144,163, 53, 71, 48,204,175,200, 33, 97,220,
-192,183, 63, 29,229,212,184, 95,221,182,102,214,100,143,111, 28, 97, 36,  3,198,173, 24, 75,197,222,245, 85,140,238,228,180,145,
- 47,239,118, 22,115,254,254,254,251,186, 14, 88,222, 37, 45, 91,240,209,122, 92,144,201,100,152, 52,105, 82,145,109,129, 62, 18,
-168,228, 18,156,185,145,137, 75,199,182,227,212,245, 76, 40,164, 34,  4,209,187,207, 76,190, 85, 42, 85,122,126,126,126,152,209,
-104,132, 86,171,133, 86,171, 45, 42,  8, 36, 18, 50,246,157,137,129, 18,169, 12, 54,171,  5,  7,183,124, 94, 38,103,135, 26, 36,
-161,125,117, 84,235,221,200,  7, 34,137, 76,119,163,102,205, 21, 98,177, 24, 12,195,224,199, 85,211,222,219,181,244, 93, 31,  0,
-184,186,111,149,118,200,212,149, 95, 48, 12,  3,179,217, 44, 47, 79,186, 19, 19, 19, 35,204,102,179,201, 46,208, 28,166,117,220,
-187,119,175,170,217,108, 54, 58,111,247,  4, 74,149, 15,160,169,  1,168,130,139, 89,207,238,223,191, 31,110,179,217,242,197, 98,
- 49, 44, 22,139, 71,170,136, 97, 24,233,181,107,215, 34,120,158,119,123,124,131, 90,225, 64,104, 35, 64,230, 91,158,  6,215,163,
- 99,220,125,  1, 11, 16,240,111,183,108,161,156,250,226, 73, 16, 88,238,254, 59, 11,173, 14,251,247,239,167,206, 95,136,172,205,
-102, 23, 89,127,137, 30,142,227,145,156, 97, 66, 92,220, 31, 88,190,124, 57,206,156,255,175,239,220,185,115,229, 51,103,206, 52,
- 15, 30, 60,120, 41,207,243, 47, 50, 12,115,117,192,128,  1,110,191,210,120,158,175,122,233,210,165,154,142,117,155,205,  6, 31,
- 31, 31,248,248,248,160, 94,157,136, 98, 34,139,227, 56, 88, 75,233, 58,116,248,104, 17,202, 83,155,141,  3,199,243,133,226, 39,
- 71,107,142,216, 27,123,185,182,211,225,207, 57,254,180,105, 94,191,100, 49, 56,110,118, 97, 62,182,173,153, 53,121,238,250,245,
-242, 28, 46,104,210,144,  1,111, 53, 28, 56,100, 56,134,190,250, 74,123,179,197,178, 71,196, 80,222, 86,120, 61, 48,160, 40,226,
-163, 37,224,239, 67,102,102, 38,140, 70, 35, 52, 26, 77,145, 23, 86,152,151,  1, 83,  7,213, 69,212,180,211, 48, 89, 57,200, 37,
- 12,222,235, 27,137, 95,126,136, 65,166, 57,179,112, 52,226, 83,142, 27,241,241,241, 97, 85,171, 86,133, 86,171,  5,203,178,252,
-107,175,189,246, 80, 44,150, 68,136, 37, 18,210,107,200, 68, 62, 53, 53,217,198, 48, 34, 80,202,225,149,129,227,136, 92,161,148,
- 90, 45, 22, 22,192,148, 18,230,148,116, 14,225,224, 19, 21, 21,229,239, 24,  9,184,107,233,187, 62, 78,251,212,205,154, 53,243,
-119, 30,117,232,161, 40, 38,131,  7, 15, 86, 86,171, 86,141,  0,192,175, 91, 62,118, 88,207, 72,239,222,189, 21,213,170, 21,248,
-225,255,188,202,243, 57,181,  3, 85, 20,200,187,  7,228,221, 47,102,201,234,221,187,183,188,102,205,154,229,170,139,118,  7,248,
- 18, 99,119,121,137, 89, 32,245,178, 71, 92, 35,155, 18,219,199,237, 32, 94,250, 10,  3,153,119,128,185,229,180, 67,191,  8, 98,
- 75,128,  0,143,224,162, 69,158, 30,216,231, 54, 60, 14,160,131,253, 23, 69,124,180,122,246,236,121,162,136,122,164,128,141,181,
- 22, 19, 89, 28,199, 65, 66,204, 88,190,124, 57,222,127,255,125,  0,144, 78,158, 60,121,247,220,185,115,251,243, 60,255, 34,165,
-180, 45, 33,164,180,175,198,227, 97, 97, 97,105,148, 82,  9,195, 48,109, 87,173, 90,229,223,163, 71, 15,248,248,248,128,242,180,
-152,200,226, 56, 30, 86,171,  5, 37,153,180,252,212,202,185, 63,109,159,228,215,169,239,162,206, 28,207, 31,113,136, 44,158,227,
-  0,190,224,164,172,244,135, 56,124,112, 15,214,174, 89,155,  3, 66,111,129,130,103, 24,230,106, 73,105,228,121,254,197,211,191,
-222,108,219,166,121,125,204, 93,191, 94,126,253, 82,202,238,137, 31,204,104, 56,112,200,112,108,255,126, 11, 24, 54,247,178,179,
-200,226,108, 60,242,114, 50,123, 31, 19,124,180,254, 49,216,108, 54,228,228,228,192,166,207,193, 75, 97,  6,124, 58, 48, 24,105,
- 57, 38, 72,248,124, 60,175, 78,199,177,236,251, 80,169, 84,207, 68, 94,181, 90,237,150,113,227,198,181, 63,121,242,164,148, 97,
- 24,104,181, 90,116,236,216, 49, 51,131,175,162, 24,251,206,196,192,228,228,135,172, 90, 41, 54, 75,165, 18,164,167,167,243,237,
-123, 12, 51, 14, 25,245,126,248,251, 31, 71,175, 75, 62,179,122,181, 39,215,112, 30,  9,232,186,239,235,175,191,182, 84,169, 82,
-197, 36,151,203,101, 35, 71,142,244,168,255,208, 98,177,208,  5, 11, 22,152, 93, 71, 23, 90, 44, 22,186,124,249,114, 75, 68, 68,
-132, 89,169, 84, 82,155,173,108,191, 79,134, 33,236,152,185,223,177, 44,203, 22,177, 98, 57, 68,150,141, 39,250, 47,191,252,210,
- 26, 17, 17, 97, 81,169, 84, 84, 46,151, 75, 61, 73,231,196,137, 19,169,159,159,159,213,203,203, 75, 58,117,234,212, 71, 26,117,
-104,227, 32,158,187,170, 48,188,131,220,199,199,  7, 58,157,174, 48,173, 97, 97, 97,130,216, 18, 32,192, 13,138,105,145,167,204,
- 10, 87,146,143,150, 91,  7,  6, 30,208,167,165,103,  6,  7,134, 84,  7,203,178,246,197,  6,214,102,195,164,183,135, 96,233,154,
- 47,  1,192, 33,182,162, 38, 79,158,188, 27, 46,254, 94,238,176,109,219,182, 57,147, 39, 79, 86,167,165,165, 29,218,184,113,163,
-255,176, 97,195, 48,101,202, 20, 44, 90,180,  8, 18,153,  2,254, 65, 85, 11,175,227,184,110,102, 70, 54, 40,168,222,173,130,180,
-251,104, 81, 10,113, 64, 80, 36,108,156, 13,188,205,  6,155,205,  6, 34, 42,200,218,225,131,123, 48,236,205,137,144,200,213,126,
- 43,151, 47, 52, 54,124, 41,172,255,204,209,163,205,101,203, 83, 48,215, 47,165,236,158,248,254,212, 40,135,200,218,185,101,205,
-173, 37,211,251,110,149,203,196,133,215,177,241, 60, 24, 70, 36,248,104, 61, 70,  4,  6,  6, 34, 35, 35,  3,185,185,185,240,242,
-242, 66, 86, 86, 22,178,179,179,145,155,155, 11,179, 54,  7,  1, 92, 46,  8,155, 13,177, 88,140,244,196,  2, 31,192,103,196,154,
-133,148,148,148,219,181,106,213,218, 54, 99,198,140, 33,211,167, 79,151,240, 60,143,184,184, 56,128, 16, 42,145,202,192, 48, 12,
- 36, 18, 49,242,242,180,188,202, 91,147, 98,165, 34,149, 68,250,255,236, 93,101,120, 84,215, 22, 93,231,142, 79,220,136, 17,197,
-  3,193, 93,130, 20, 45,218,226,193, 93, 10, 20,104,113,138,  4,  9, 77,113, 43, 82, 74,105,208,240,112, 41, 86,156, 96,129, 32,
-  9, 22, 18, 66,146,137, 18,159, 76, 70,239,121, 63,152,201,155,132,200, 76,  8,165,237,155,245,125,243,205,204,185,231,174,123,
-174,157,187,238, 62,123,239, 35,  0,195,225,151, 22, 38,252,182,253,200,247,233, 29, 24, 46, 63, 71, 23,  9,200,231,243,113, 59,
-100,117,118,251,145,203,172,  0,128, 47, 20,103,116,233,210, 37,182,118,237,218,210,251,247,239,123,162, 72,212, 97, 49,247,167,
-250,171,145,179, 57,102, 98,145,180,115,231,206,111,117,156,111, 46,108,206, 30, 54,121,  1, 33, 28,129,180,103,207,158,177,190,
-190,190, 82, 14,135,131,200,227, 65,217, 95,141,156, 45, 34,255,139,233,253,  0,231, 94,209,113,143, 66,174,215, 90,177, 98,133,
-170,123,247,238,113, 58,127,177, 55,111,222,184,246,232,209, 67,184,110,221, 58, 85,143, 30, 61,226,235,214,173,155,203, 48, 12,
-194,194,194,220, 74,179, 84,233, 32, 22,139, 85, 99,198,140,121,251,228,201,147,114, 69, 29,150,  5,119,119,119,176, 44,139, 14,
- 29, 58, 32, 63, 63,223,100,217, 50,193,132,127, 33,138,230,209, 42, 53, 51,188, 74,173,154, 50,225,219,165,155,  1, 98,161,215,
- 11,252,207,176, 68, 65,190,255,254, 59,115,  0, 98,157,216,154, 49, 99, 70, 70, 89,141,208, 19, 89, 77,134, 12, 25,130,121,243,
-230, 97,205,154, 53,154,159,126,250,137,243,252,101,140,114,228,228,197,153, 69,182,  3, 10,154,203,170,216, 41,197,241,101,100,
- 73, 23,251,245, 88,181, 52, 33, 57,239,198,200, 73, 11, 11,122, 47, 13,128,108,226,162,  1,128,109, 63,255, 44,229,  9,173,204,
-  7, 12, 30,  6,  0,157, 55,175, 15, 58,186, 28,191,148, 45,182, 40,241,153, 50, 99,182,173, 78,100,109, 89,183,226,137, 53, 73,
-222, 52,245,187,  8,149,254,118,  0,192,206, 18, 71,253,122,172,234,154,146, 46,221, 96,186,212,254, 26, 40, 20, 10,108,220,184,
- 17, 11, 23, 46, 68,122,122, 58,210,210,210,144,145,145, 81,240,201,205,205,133,179,179, 51,254,248,227,143, 15,252,152,254,233,
-136,142,142,222,114,226,196,  9, 92,189,122,117,208,220,185,115,121,206,206,206,196,218, 58,153,168,148, 10,  0,148,166,166,166,
-178,102, 22, 54,137, 14, 78,110,111, 37, 73, 41, 62, 42,165,  2,172, 70, 89,162,183,185, 54,189,195,247, 79,159, 62,245, 90,189,
-122,181, 66, 63, 18,112,240,236,205, 27, 27, 55,110,108,183,105,211, 38, 69,207,158, 61, 99,117,206,235,134, 56,195,159,127,141,
-111,159, 62,125, 92,167, 40,103,251,241,171,119,233, 56,245,163, 17,123,125,183,125, 87,245,234,213,237,124,125,125, 99, 75,227,
-173, 82,165,138,204,197,197, 69, 81,171, 86,173, 92, 30,143,247,222,146,165, 82,229, 85,169, 82,133,117,114,114, 82,212,174, 93,
- 59,215, 88,167,125,177, 88, 76,117, 86,177,226, 96, 76,212, 33,143,  3,245,144, 33, 67, 10, 50,195,127, 95,189,122,226,176, 97,
-195, 92,102,206,156,137, 93,187,118,225,230,205,155,233, 69,215,105,215,174, 29,174, 93,187,182, 20,192, 98,211,221,109,130,  9,
-255, 60,148,153, 71,171, 40,118,239, 14,190,  4, 61,159,166,226,176,124,249,114,161,214,146,213,121,250,244,233,144,201,100,182,
-197,168,187, 78,186, 92, 27,197,137,172,160,160,160,253,148, 82, 55,  0,109, 52, 26,246,206,206, 95,118,119, 48, 64, 49, 22,112,
- 82,194,112, 24,134,228, 10,120,244,225,207, 59,118,237,213,175,167,117,126,175,  9,130, 71,155,215,  7,201,  0,116, 46, 42,182,
-250,247,239,159, 87,148, 83,135,137,147, 38, 22,136,172,205,235,131, 46,248, 54,241,248,122,225,216,101,197,138,179,101,139, 39,
-152, 51, 12,105,165,239,163, 85, 28,103,  5,168,101, 19,167, 22, 66,161, 16,  7, 14, 28,128,159,159, 31,234,215,175,143,244,244,
-116,228,230,230, 34, 55, 55,183,192,234, 21, 25, 25,137,216,216, 88,  8,133,194,127,213,190,107,167,213,217,232,226,226,114,113,
-209,162, 69,195,210,210,210,122,100,100,100,218,159,218,189, 12,221,  6, 76, 34,237,186,251, 75, 21,148, 43,138, 79, 76,174,117,
-229,204, 62,187,179,  7,183, 64,169, 80, 76, 32,228,231,103,186,244, 14,197,180, 51, 79,151,198,161, 86,173, 90, 82,125,161,226,
-225,225,145,239,234,234, 42,247,245,245, 45, 40, 47, 46,154,175,184,125, 55,150, 83,235,255, 37, 45,235,120,234, 68, 91,209,180,
- 17,102,102,102,208,137, 47, 99,218,169, 31,109, 89,108, 71, 89, 70,212,161, 62,231,111, 15, 40, 79,127,217,111,132,112,130,131,
-131, 59,  5,  7,  7, 55,  1,240, 16,192,121,  0, 42,237,122,  5, 78,243,148,210, 37,  0,150,152,238,119, 19,231,255, 43,231, 63,
-220,154,213, 14, 90,223, 44, 45,218, 83, 74,175,150, 40,180,202,130,206,241, 29,  0, 51, 99,198,140, 12,153, 76,102, 59,108,216,
-176, 82,215, 73, 74, 74,218,181,103,207,158, 66, 34,171,111,223,190,163, 14, 31, 62,124, 49, 37, 37,165, 92, 59,102,107, 37, 94,
-126,245,228, 28,219,118, 61, 87, 77,  7,240, 83,241, 50, 19,172,111, 19,151,175, 55,175, 15, 58, 90, 68,108,253, 14,160,111,113,
-199, 11,  0,186,124,217,  7,251,118,111,214,249,118,137,159,220, 79, 56, 59,232, 65, 64,177,209,138, 54, 22,194,  0,109, 59,102,
-194,228,163,245,151,192,199,199,  7,183,110,221,194,164, 73,147,208,177, 99, 71,244,233,211,  7,238,238,238, 16, 10,133,120,253,
-250, 53,174, 95,191,142,232,232,104,228,229,229,161,126,253,250,255,202, 99,144,152,152,248, 92,155,140,244, 91,221,219,148, 80,
- 36,230,251,143,158,238, 86, 16,117,120,112, 11,228,249, 50,  0,224, 18, 66,126, 34,132,252, 90,130, 67,252,123, 65,193,229,242,
-195,195,195, 61,117, 86, 43,165, 82, 41,212,149,223,191,127,223, 83,151, 91, 43, 63, 63,223,224,168,195, 79,197,249,248,241, 99,
- 55, 93,116,164, 46,186,144,203,229,242,195,194,194,220,116,156,114,185,220,160,168, 67,129, 64,192, 15, 15, 15,119,211,104, 52,
- 21, 22,117, 88, 68, 24,159,211,126,116,157,178, 78,100,233,124, 58, 76,195,134, 38,152,240,207,198,149,162,147, 74,235,244, 68,
-185,132,150,206,241,221,  8,165,199,245,242,242,234, 50,120,240,224, 66, 34,171,127,255,254,154, 35, 71,142, 92,113,113,113, 73,
-102, 24,230,185,177,237, 40,240,209,  2,120, 69,151, 49, 12,243,168, 77,211,218, 96, 24,230,209,194,177, 99,229,203,241, 75, 33,
-177,117,252,232,161,174, 37,245,139,  0, 96,239, 88, 25, 67, 70, 77,193,144, 81, 83,108,  1,180,  6, 74,142, 86, 44,173, 29, 38,
-124, 58,180,106,213, 10,207,158, 61,195,133, 11, 23,112,237,218, 53,228,229,229,129, 16,  2,177, 88, 12,133, 66,  1,161, 80,248,
-175, 21, 89, 37, 65,169, 84,170,231, 46, 93,189,135,195,229,171, 89, 86, 73,148, 74,229,104, 99,238,243,185,115,231, 50, 40,198,
-247,106,234,212,169,197,150,127, 46,206,249,243,231, 23, 27, 37, 56,117,234,212, 82,163,  7, 75,194,119,223,125, 87, 97, 81,135,
-  6,138, 47,147,160, 50,193,132,127,159, 85,171,216,208,189,114,  9, 45,134, 97, 30, 21, 19, 93, 72,  0,208,226, 34,250, 40,165,
-106, 14,135,179,212,198,198,102,130, 84, 42,253,163,111,223,190, 51,250,247,239,175,  1,222, 59,200,151,119,167, 50,178,164,139,
-219,247,250,113,102,102,174,124, 83,209,101, 69, 45, 79, 58,177,181,101, 67,208,214,163,135, 15,244, 79,146,196,111, 45,105,223,
- 74, 18, 84, 37, 69, 43,102,101,203,150,182,239,245,227,244,140,108,153,201, 71,235, 51, 88,182,116, 40, 58,169,244,255,  3, 40,
-165,114, 66,200, 44, 66,136,206,162, 59, 43,250,242,134,173,255,187,241, 55, 62,214, 95, 86,138, 53, 43,209,144,  9,162,139, 91,
-175,180,101,159,128, 51,185,148,  9,162, 75, 67,178,145,124,201,  0,192,231,113, 82, 74,154, 60,154,207,227,164, 84,208, 57,212,
- 37, 56, 92,106,186,163, 77, 48,225, 31,219, 23, 27,231,163,165, 19, 65, 37,161,164, 60, 89,165, 65,163,209,252,  8,224,199,138,
-220,177, 39, 47,115,118,  0,216, 97,104,125,173, 79,214,  8,237,167,248,118,190,123,106,244,190,245,239,223,127, 27,128,109,166,
- 75,237,175, 65, 72, 72,136,233, 32, 20,190,193,183, 18, 66,126,213,  9, 47, 67,151, 21,169,119,226, 19,180,235, 83,112,158,251,
- 43,249, 78, 61, 83, 59,125,238, 78,218,  4, 19, 76,248,251,163, 56,107, 86,169, 81,135, 38,152, 96,194, 63, 78,108,201,203,179,
-204,  4, 19, 76, 48,193,132,138,123, 89, 42,206,215,146,  0,232, 84,194, 74,  6, 71, 19, 16, 66, 58,149,163, 81, 23, 77,156, 38,
- 78, 19,167,137,211,196,105,226, 52,113,254,127,113,150,197,173,191, 62, 33,100, 60,165,116,  7,254,  1, 40, 49,160,133, 82,250,
-201, 62,  0, 58,153, 56, 77,156, 38, 78, 19,167,137,211,196,105,226, 52,113,150,115, 59,227,255,138,237, 84, 64, 59,105,209,143,
-110,153,105,232,208,132, 79, 14, 55, 55, 55,176, 44, 11,134, 97, 16, 31, 31,111, 58, 32, 38,152, 96,130,  9, 38,252,171, 96,180,
- 51,188,  9,197,152,  4, 61,191, 90,  8, 22,243,223,255, 65, 16,125,123,108,201,191,109, 31,  7, 12, 24,192, 49,166,126, 76,140,
- 13,243,  0, 46,107,172,204,249,189,114,165,170, 53,154,176, 69,155,138,171,199,178, 44, 78,158, 60,137, 94,189,122,233,204,171,
-  0,  0, 23, 23, 23,156, 60,121,178,160, 94,227,198,141, 11,146, 55,154, 96,130,  9,159,184, 79,179,173,227, 14, 66, 70,  3,244,
-127, 97,151, 44,141,160,153,145,187, 11,213,179,169, 61, 10, 12,169,163, 87, 36,  3,197, 78,154, 17, 17, 87,194,240,137,238,129,
- 99, 19, 21, 21,229, 89,173, 90,181, 88,  0,153, 69,170,125,176,140,150,114,243, 19, 66,136, 67,149, 70,195,205, 68,102,147, 21,
- 10,133,183,133,165,101, 74,250,187,212,109,233,111, 31,111,209,171,102,117,231,206, 29,151,230,205,155, 75,  0,228,148,197,105,
-130,  9, 21,122, 63,125,152,176,180,226,156,225, 73,141,126,222, 80, 51, 35, 64, 49, 20,  4,225, 52, 58,164, 95,185,120,170,245,
-173, 12,150,219, 12, 64, 35,128, 54, 50, 23,139, 26,202, 20,202, 20,150,210,225, 52,234,224, 67,163,249,170, 12, 56, 13,160,123,
-  9, 75,151,210,232, 67,198,  9, 37,150, 46,184,119,237,136,208,198,140,160, 90,227,190,179,161,151,193,249, 35, 78,140, 24,192,
- 72, 66, 72, 71, 51, 51,179, 26,121,121,121,111, 40,165,143,  1,108,165,148, 74,202,201,201,  0, 24, 99, 97,110,222,205,211, 82,
-208,232,109, 90, 86, 66,142, 74,115, 29,192, 79,148,210,140,138,186,168,222,139, 44,231, 29,211,253,155,143, 12,154,214,  9, 54,
-237,127,156, 13, 96, 83,105,235, 48, 12, 51,206,213,213,213,187,114,229,202, 49,155,123, 55,216, 57,229, 68, 56,250,244,233,  3,
-  0,227, 88,150,245,174, 92,185,114, 12, 33,100,167,161,125, 35, 33,196,  5,  0,151, 82, 26,167,253,111, 14,192, 23, 64, 21,  0,
-209,  0,158, 82, 74,165, 31,121,142,254, 17,156,110,110,110,174, 44,203,142,117,114,114,234,145,156,156,124,154, 97,152, 95,226,
-227,227, 37,159,185,239,217,174,243,175, 48,244, 27,192,  4, 99, 54, 32, 22,139,147,243,243,243, 29,  1, 64, 36, 18,165,200,100,
-178, 79, 22, 37,248, 87,110,235,175,121, 50, 96,220,249, 27, 79,187,233, 23,117,105, 83,167,152, 27,151,212, 57,127, 35,162,109,
-225,122,190,154,226,250, 64,109,246, 85, 44, 93,186,148,  4,  4,  4,140,170, 90,181,106,117,134, 97, 94, 44, 90,180,168, 80,234,
-155,162,203, 22, 47, 94,252,191,204,173,197,112,186,213,108,117,124,208,224,  1,237,191, 25, 63,210,162,114, 37, 11, 36,166, 73,
-237,127,222, 21,188, 58, 56,120, 95,207,177,131, 58,119,  3,128,101,203,150,125,229,238,238,238,197,225,112, 98,126,248,225,135,
-223, 75,227, 52,193,132, 79,  0,227, 38,149, 46,243,254,172, 51,192, 28,249,180, 63, 64, 70,182,107,217,184,205,132,225,189,  8,
-229,136,224, 63,110,142,218,104, 46,175, 81, 66,112,100,203,235,249,214,153, 49,160, 87, 39,166,137,175, 23, 92, 42, 89,  3, 12,
- 15,219,207,188,177,223, 20,244,195, 86,  0,205,203,209,204,238,175, 67,247, 35, 49, 83,  3, 66,  0, 66,  0,134,  0,185,249, 44,
-186,124, 53, 98,177,241, 66,137, 48, 54,102,  4, 51,246,231,  3,  0,231,163,251, 56, 66, 26, 85,170, 84,105,203,180,105,211,108,
-235,213,171,231, 34, 18,137,204,100, 50, 89,245,168,168, 40,239,133, 11, 23,118, 38,132,172,162,148, 30, 49,146,211,163,154,155,
-235,161, 77, 51,198, 52,171, 95,197, 19, 60, 69, 46, 88,185,212,253,101,212,171,150, 19,183,134,140, 35,132, 12, 46,207,148,  9,
-105,105,105,  4,  0, 28, 28, 28,104, 97,145,213, 98,228,186,153, 93, 48, 99,237,121,228,229, 43,246,150,180,190, 68, 34,209, 89,
-182,188, 79,158, 60, 89,167, 87,175, 94,104,230,237,134, 59,189, 82,209,244,120, 60,  0, 20,148, 27,177,175,  1,  0,230,107,251,
-225,125, 28, 14,231, 66,167, 78,157,188,199,142, 29, 75, 26, 55,110,140,176,176,176, 42,251,247,239,239,196,229,114, 99, 52, 26,
-205, 99,  0, 47, 40,165, 42,  3,185,121,  0,106,114, 56,156,122,127,103, 78, 87, 87, 87,177, 66,161, 24,225,230,230, 54,190,119,
-239,222,245,122,245,234, 69,106,214,172,137,231,207,159, 55, 62,123,246,236,226,  6, 13, 26, 60,142,143,143,223, 33, 16,  8,246,
- 72, 36, 18,217,103,120,195, 27, 15,192, 85,107,224, 88,106,192,183,  4,192, 82, 74,105,162,161,219,200,207,207,119,212, 61, 71,
-  9, 33,142,159,114,127,140,217, 22, 33, 36,146, 16, 98,167,253,141,210,190, 25,134,129, 90,173,150,170,213,234,170,101,112,214,
-  4,192, 24,209,100, 74, 41, 45, 45, 17,180, 24,  0,186,180,174,147, 14,130,  8,157, 69,171,152,151,204,136,  2,  1, 70, 81,231,
-252,205,  8,187, 66, 86,176, 34, 88,186,116, 41, 89,188,120, 49,150, 44, 89,210, 11,128, 31,203,178,215,125,124,124, 54, 22,162,
-100,217,130,101,139, 23, 47,222,176,116,233, 82,  2,160, 88, 65,100,231,213, 96,216,215, 95,247,105,191, 98,193, 84,139,132,119,
- 74,132,199,200, 96,103,193,199,226, 89,147,  4,114,185,170,229,214,223,131,199,111, 94, 53,103,167, 70,163,249,  2, 64, 19,141,
- 70,115, 31,192,239,165,113,154, 96,194, 39, 64,123,163, 38,149, 46,225, 38, 39,168,218,175, 45, 52, 24,233,233,238,212,127,218,
-216,129, 98, 95,159,106,200,135,  5,222,164,105,112,230,212, 89,  0, 56,104,156,213,105, 80, 19, 46, 31,123,130,150,204,170,229,
-215,204, 23, 79, 18, 84,184,159,160, 65, 94,140, 10, 28, 70,  5, 13, 75,  1,138,252,242,238,117,124,134, 26, 55, 94, 40,192, 16,
-128,195,  0, 12, 67,192, 97,202, 73,198, 42, 94, 46,219,253,192, 55, 45,153,  5, 88,197,203,143,124,  0,125, 81,163, 70,141,245,
-  1,  1,  1,206,201,201,201,118,247,239,223,135, 80, 40,132,173,173, 45,215,213,213,181,214,250,245,235,179,166, 78,157, 58,139,
- 16,242,144, 82,250,198, 64, 78,159,238, 77,234,221,218, 17,180,204, 90,117,231, 44, 50, 15,252,  7, 28,134,130,111,110,  1,111,
-177, 24,103,191,174,102,215,255, 84,204, 17, 66,136, 15,165, 52,161, 44,190,103,207,158,113,228,114,249, 96, 43, 43,171, 22, 60,
- 30,207, 73,104,227,193, 74,184,205,222,165,146, 42,209, 41,142,121,109,103,118,114,234,182,102,122,  7,204, 88,123, 30,235,247,
-223,254,173, 17,146, 22, 25,115, 12, 50,239, 93, 70,120,198,135,167,214,217,156,103,200,190,218,  2,152,163, 80, 40, 24, 62,159,
- 79, 68, 34,209,176, 21, 43, 86, 40,253,253,253, 11, 28,192,252,252,252,224,231,231, 71,114,114,114,170, 92,190,124,185, 74,112,
-112,176,154, 16, 18, 73, 41, 61, 94,178,197,194,236,109,126,190,204, 93, 36, 22,231,253,188,117,235,154,182,109,219,178,250,243,
- 36,150,135, 19,  0,108,108,108,118,214,168, 81,131,204,155, 55, 79, 82, 81,156,222,222,222,231,253,252,252, 58,116,233,210,133,
-219,186,117,107,184,186,186, 22, 44,115,112,112,128,159,159, 31,137,139,139,171,127,253,250,245,173,231,207,159,223,232,237,237,
-125, 57, 38, 38,166,203, 95,217,235,104, 45, 85, 48, 66, 56,237, 40, 38, 17,242, 63,211, 88, 68,136,197,246,237,219, 29,117,115,
- 50,170, 84, 42,104, 52,154,130,111,221,135,101, 89,104, 52, 26,172, 88,177, 66, 99,224, 49,149, 66,155, 28, 90,239,195, 22,247,
- 45, 16,  8, 12,203,220, 75, 16,225, 34,204,172,109,110,110,238,  9,160,123,141, 26, 53,230,232, 47,174, 94,233,253,183, 84, 42,
-141, 77,148,219, 68,  0,104, 91,218,229, 30, 16, 16, 48, 98,201,146, 37,125,240,191, 57, 43,235, 13, 24, 48,224,114,145,122,245,
-180,223, 82, 66,200, 21,134, 97, 78,  2,216, 13,224,  3,171,187,153,153,197,132,105,147,199, 90,196,167, 41,177,252, 72, 26,118,
- 95,203,198,  8, 63, 75,204,248,210, 26, 67,252,  7,153,135,252,231,240,  4,  0, 59,245, 86,121,238,227,227, 67,158, 61,123,102,
- 18, 89,255, 46, 52,  5, 80, 73,239,191,  2,128,110,202,172, 52,237,125, 97, 95,164, 92,191,158,238, 59, 85, 91, 94, 73,187, 30,
-213,227, 77,  5,112,175,156,253,221, 85,109, 27, 62,  0, 23,  0, 78,159, 62, 77,123,244,232, 65,116,223,197,247,236,253,207,140,
-241,239,221,173, 71,199, 86, 96, 68,182,120,153,  2,132,190,165,224, 50, 42, 48,160,184,115,243, 50,  5,151,221, 83,100,195, 37,
- 90, 79,136,119,255,239,234,213,245,253,241,151,160,111, 57,145, 41, 92,236,190,158,  7,101,126, 46, 82,147,222, 34, 69, 18,139,
-196,248,104, 36,188,141,126, 12,144,197,134,114,126,184,227,128,134,213,190,  3,178,208, 30,207, 98, 35, 47,203,230, 84, 74,159,
- 85,169,233,235,155, 33,208,  0, 74,233, 51,  3, 14,250,197, 18, 58,224,206,213,170, 85,251,105,193,130,  5,110, 79,159, 62,181,
-146, 74,165,210,179,103,207, 94,141,141,141,117,114,118,118,142,155, 52,105, 82,171,202,149, 43, 59,126,245,213, 87,102,135, 14,
- 29, 90,  0, 96,172,  1,156,190,189, 91, 52, 12,221,181,113,157,249,187,144, 77, 80, 68, 61,194,153, 68, 41,110, 38,231,209, 42,
-214, 66, 50,165,126, 37, 88,  8,185, 88,214,218,213,162,251,209,168, 31,  1, 12, 41,141,243,214,173, 91, 46,102,102,102,107,135,
- 12, 25,226, 58,109,218, 52,129,134,107,195, 61, 28,250,206,122,206,214, 80,215, 60,185,146,227,223,193, 11, 51,135,214,195,204,
-245,127,234, 68,214,120,111,239, 76,182, 56, 78, 55, 55,183,113, 44,203,122,107,255,122,233,190, 59,222,200,  9,212,219,100, 65,
- 57,177,116,  8,116,117,117,  5,195, 48, 49,241,241,241, 59, 13, 61, 71, 34, 81,241,179,167,216,218,218,162, 93,187,118,240,241,
-241,225,182,109,219,182, 30,128,227, 37,113, 42,149, 10, 23,150,165,176,180,180, 20,219,219,219,219, 90, 90, 90,190, 83, 42,149,
- 31,197,  9,  0,118,118,118,253,218,181,107,199,221,191,127,127, 90, 76, 76,204, 20,250,171, 21,  0,  0, 32,  0, 73, 68, 65, 84,
- 29,127,127,255,104, 43, 43,171, 66,214, 95,115,115,115, 84,175, 94, 29, 63,252,240,  3,183, 91,183,110,101,114, 58, 57, 57,117,
- 14, 14, 14,  6, 33,164,224,161, 93, 20,158,158,158,112,118,118, 70,247,238,221,185,253,250,245,235, 92,222,251,200,136,142,230,
- 98, 49, 22,173,165,133,197,108,201,195,111,197,213, 55,224,188,167,232,172, 75, 34,145, 40,165, 60,237, 44,130, 18,135, 59,133,
- 66, 97,129, 21,170,232,182,138,227,100, 24,  6, 11, 23, 46,  4, 33,  4, 60, 30, 15,124, 62,191,216,239,246,237,219, 27,219,206,
- 56, 66,  8,195,231,243,231,112,185,220,177,114,185,220, 77, 36, 18, 73, 52, 26,205,111,114,185,124,133,214, 34,106, 83,220,181,
- 91, 18,167,185,185,185,231,203,151, 47,107,148,116, 80,228,114, 57,234,213,171,  7,200, 17, 89, 26,103, 84, 84,148,103,213,170,
- 85,107,  2,208, 77,209,118,141, 82,218, 86,239,191, 62,174, 81, 74,191,212,254,126,241,250,245,107, 79,157,208,210,231, 84, 41,
-149,222,110,142, 86,  8,127, 35,195,238,107,217,184,180,192, 21, 29, 87, 72,208,183, 17, 23, 62, 30, 22, 80, 43, 85, 53,  7, 12,
- 24,176,  7, 64, 77,237, 67,242,171,  1,  3,  6,212,226,112, 56,127,  2, 56,  6, 32,235,175,186,230, 77,156, 31,135, 50,180, 72,
- 37, 66,200, 41,189,237,247,212,253,159, 59,119,238,252,192,192,192,167,132,144, 83,250,229,250,245,244,191,181,253,205, 41, 74,
-105,207,121,243,230,249,174, 90,181,106,165,174,238,167, 80,136,198, 12, 29, 90,165,230,155,227,250, 91, 43,112, 57, 26,112, 25,
-  2, 46,  7,  0, 37,136,125, 19,133,156,236,204, 27, 52,250, 63, 49,134, 89,178,  6,180,110,208,176, 94,208,190,245,179,153, 95,
-175,231, 33, 83,154,143,103, 15,175,224,222,149, 99, 73, 26,181,230, 24,  8,189, 15, 48, 97,136,102,159, 83, 26,162, 41,255,133,
-128,247, 86, 49,144, 34, 98,235,179,189,229,126, 89,171, 86,173,192,133, 11, 23,122, 62,124,248,208, 50, 59, 59, 59,117,239,222,
-189,207,229,114,249, 67,  0, 27,222,190,125,219,110,195,134, 13,102,171, 87,175,238, 82,175, 94,189,154, 33, 33, 33,121,  6,112,
-214,159, 53,114, 72,232,216,105,211, 69,145,135,182, 64, 16, 25,134,133,143,210, 52,151, 18,243, 22,  0, 88,143,184,220,214,169,
-249,234, 11,235,218,185, 51, 94,150,124, 84,179, 17,180, 47,203,146,101,102,102,182, 54, 56, 56,216,179,105,211,166, 12,  0, 92,
-127,161, 22,206,217, 26,234,122, 46,176, 53,105, 93,199, 30, 41,153,114,124,187, 37, 28,103, 67, 83,254, 40, 42,178, 62, 48,  4,
-106,135, 11,245,203, 78,158, 60,105,  6,224,  3,103, 16,253,242,210,134, 17, 41,165, 25,132,144, 31,  5,  2,193, 66, 66,  8,109,
-218,180,105,120,221,186,117,115,109,109,109, 33,147,201, 32,151,203,193,231,243, 33,147,201, 16, 27, 27,139, 59,119,238,192,214,
-214,214,168,115,149,155,155, 11, 75, 75, 75,176, 44,251,209,156, 26,141,134,108,219,182,205,252,233,211,167,230,135, 15, 31,118,
-154, 49, 99,198,187,218,181,107,223, 31, 52,104,208, 43, 71, 71, 71,249,163, 71,143,112,235,214, 45,100,100,100,160, 69,139, 22,
-  6,113, 42, 20, 10,112,185, 92,200,100, 50,  8,133, 66,112,185, 92,168,213,106,176, 44, 91, 32,190,114,115,115,145,158,158, 14,
- 62,159, 15,133, 66,241,151, 95,239, 58,139,150, 62, 74, 27,126, 43,174,126, 89,168,104, 63,169,210,134, 59, 51, 51, 51,197, 54,
- 54, 54,115, 12,177,208, 17, 66,192,225,112,192,231,243, 65,  8, 65,219,182,109, 49,102,204, 24, 52,106,212,  8, 81, 81, 81, 56,
-112,224,  0,238,221,187,  7, 30,143, 87, 80,223,224,241,137,246,237, 57, 34,145,232, 86,239,222,189,125, 23, 44, 88, 32,242,242,
-242, 66,100,100,164,199,170, 85,171,230, 92,188,120,177, 15, 33,164,  9,165,148, 45,219, 74,175, 29, 18,124, 63, 92,216, 93, 46,
-151, 35, 50, 50,210,152,117, 62, 64,181,106,213, 98, 25,134,121,197,178,236,117,  0,245, 40,165,109,  9, 33,103,  1,152, 23,169,
- 42,165,148,126, 73,  8,201,  6,240,152, 97,152, 23, 44,203,198, 22,231, 78,101,105,105,153, 26,159,146,237,100,111, 33,194,240,
- 54, 22,232,184, 66,130,254, 77,132, 16,242,  9,158,199, 36,161, 90, 85, 47, 18,126,227,120, 19,173,200,106,154,152,152,  8,  0,
- 77,  0,196,196,197,197,185,232,132,150,  9,255, 14, 20, 21, 67, 58,  1, 21, 24, 24,216,179, 56,113, 85,204,189, 89,168,124,213,
-170, 85, 43,245,254,103,124, 68,223,209, 14,133,157,225,219,107,173, 92,255, 19, 90,167, 79,159, 46, 93,129,176,232,123,234,200,
-254,219, 29,149,196,211,183,113, 27, 61,235, 16, 69,216,157, 91,  0,232,111,  6, 53,198,181,151,152, 49, 51,255,109,219,202,169,
-204,246, 43,121,136,147,164,224,214,153,223,144,154,248,102, 55, 64,103,208,232,144,236,143,238, 44,171, 12,240,117,116,176, 71,
-190,146,130,165,  0, 62, 16, 91,159, 69,100,245,170, 89,179,102, 64,104,104,168,103,126,126,190,229,205,155, 55, 51,131,131,131,
- 95, 41, 20,138, 95, 40,165,123,181,117, 78,164,165,165, 45,163,148,194,210,210,146,203,227,241,196,165, 57,115, 18, 66, 26,205,
- 26, 59,226,198,143,219,118,137, 94, 61,  9,199,134,195,103,144,153,151,167,185,146, 34,251,138, 82,122, 74, 91,231,207,  7,105,
-178,  4, 10,234,206, 99,  8, 92,204,121,206,132, 16, 17,165, 52,191,132, 55, 87,255, 33, 67,134,184,234, 68, 22,  0,164,229,168,
-184,121,114, 21,167,117, 29,123, 52,238, 48,  0, 97,151, 67,112,232, 90,  2,170, 86, 50,187,230,109,158, 89,234, 17,101, 24, 38,
- 70, 79, 52,121,157, 60,121,210,172, 87,175, 94,121,  0,244,135, 68, 63, 40,103, 24, 38,166,140,155,109, 17, 33,196,105,207,158,
- 61,140, 74,165,202,141,138,138,130,179,179, 51,156,156,156, 96,109,109,141,103,207,158,225,210,165, 75,120,254,252, 57, 88,150,
- 69,131,  6, 13,140, 58, 95,239,222,189,195,163, 71,143,208,189,123,143, 25,169,169, 41, 86,182,118,246,210, 27,215,175,173, 46,
- 15, 39,203,178,  4,  0,124,125,125,225,235,235, 43, 74, 72, 72,112, 59,117,234,148,227,242,229,203,223,122,122,122,238,147,201,
-100,133, 44,  7,134, 10, 45,173,112, 41, 16,129, 34,145,  8,124, 62, 31,217,217,217, 72, 78, 78, 70, 78, 78,206,251,177, 28, 27,
-155,207, 34,180,138,179, 80, 85,100,253, 79, 41, 14,139, 19, 83,132,144,161,  0,230, 24,184, 47, 80,171,213,224,243,249,104,222,
-188, 57, 54,109,218,132,123,247,238,225,216,177, 99,240,240,240,192,200,145, 35,193, 48, 12,158, 62,125,106,108, 19,217,208,208,
-208, 57, 95,125,245,149,239,158, 61,123, 68,177,177,177,120,254,252, 57,108,108,108,176,105,211, 38,225,248,241,227,171, 93,190,
-124,121, 17,128,159,202,220, 87,189,232, 66, 87, 87,215,129,245,234,213,251,160,142,179,179,179,245,185,115,231, 28,117,  2,172,
-104, 68, 98, 49,200, 92,180,104,209, 58, 31, 31,159,245,218,225, 66, 63,  0,230,148,210,246,135, 15, 31, 38,  0,208,191,127,127,
- 74,  8,209, 61,144, 30,135,132,132,116,120,246,236, 25, 93,178,100, 73,177,253, 92,106, 74,226,182,117,155,182,175,251,113,233,
- 44,193,204,238,214,232,223,132,  7, 17,159,192,202,140,135, 21, 27,119,170, 30,220,185,246,200,197,197,229, 20,128,175, 18, 19,
- 19,225,226,226,146, 11,224,  5,135,195,137,209,104, 52, 18,147, 47,252, 63, 11,197,105, 17,173, 85, 57,177, 56,161, 84, 30,161,
-166,111,241,210, 97,222,188,121,190,129,129,129,119, 63, 70,100,233, 59,193, 19, 66, 40, 33,164, 61,165,244,106,193,195,180,196,
- 33,195,  2,219, 23,227,226,236,228, 96, 55,119,100,107,176, 44,160,214,  0,106, 13,133, 52, 79,134,200, 39,247,242, 32, 34,135,
- 13,106,145, 80, 16,180,124,193,244, 42,225,241, 12, 36, 25, 74, 92, 61,190,157,166, 38,190,233, 71,163, 15,141,174, 40,145,229,
-236,232,112,101,255,246,101,184, 23,173,128,134,125,175,179, 88,150, 22,252,254, 12, 15,156,234, 14, 14, 14,171,111,223,190,237,
- 37, 20, 10, 45, 95,190,124,169,  9,  9,  9,145, 40, 20,138,173, 58,145,165,197,208,198,141, 27,171,204,205,205,145,155,155, 43,
- 87, 42,149,185,165,136, 44,183,246,141,234, 95,251,113,219, 46, 81,190, 66,129, 44,153, 28, 28,123,199, 66, 34, 75,139, 86, 29,
-106, 84,174, 76, 68,150,160,  0,222,100, 43, 37, 37,137, 44,  0, 16,  8,  4,157,166, 77,155,166, 63,190, 13,  7, 75,158,218, 76,
-200,211,220,140, 72, 99,195, 46,135,224,250,211, 52, 86,196,231,104, 42,209,232, 42,101,237,123,124,124,252, 78,137, 68, 50, 79,
- 34,145,204,211, 19, 87,111,  0,204,171,109,205,255,160,188,142,141, 96,158, 68, 34,153,199,178,236, 78,  3, 14,173,100,200,144,
- 33,241,117,234,212,201,242,241,241,201,122,247,238, 29, 34, 34, 34,144,145,145,129, 13, 27, 54, 32, 50, 50, 18, 44,251, 94,  7,
- 22, 55,140, 98,128, 64, 66, 70, 70,186,  5,165, 20, 25,233,239,204, 23, 44, 88, 96, 93, 30, 78,141, 70, 83,232,222,170, 92,185,
- 50, 38, 77,154,196,207,203,203,179,121,251,246,173,149,254, 50, 67, 57, 21, 10, 69, 65, 42, 12, 74, 41, 20, 10,  5,178,178,178,
-160, 80, 40,240,234,213,171,  2,145,165,221,254,103,179,104,233,126,139,197,226,100,157,131,168, 72, 36,  2, 33,164,184,225,183,
- 10,201,254,172,219, 22, 33,132,138,197,226,228,114,136,195, 50,247,199,192,243, 14, 62,159,143, 49, 99,198,224,238,221,187,136,
-138,138,  2,135,195,129, 84, 42, 69, 94, 94, 30, 58,119,238, 12,129, 64, 96,172, 69,139,242,249,252,161,243,231,207, 23,197,196,
-196, 32, 45, 45, 77,231, 76, 15,141, 70,131, 25, 51,102,136,133, 66,225, 80, 99, 77,247, 18,137,164,235,203,151, 47,107, 22,253,
- 36, 37, 37,101,233,251, 20,150, 23,135, 15, 31, 38,253,251,247,167,253,251,247,167, 58,193,101, 40, 50,227, 35,182, 29, 59,113,
-234,194,119, 63,  4,229,230, 73,115, 80,213, 85,140,220,156, 44,172,  8,252, 81, 21, 26,122,253,202,156, 25, 19, 91,134,132,132,
-172,  2,240, 66,187,202,139,144,144,144, 17, 63,252,240,195,239,208,166,121, 48,225,159,131,226,180,136,254,189, 87, 17,195,123,
-197,113,104,135, 15,197,229,164,212, 69, 28,182,211,  9, 47,173,232,186, 82,200,162, 85,106,231, 83,109, 80, 67, 39,  7,251,203,
-123, 54, 47,181, 56,245,  4,136,143,123,131,212,196, 88, 52,105,217, 30,145, 79,194,193,170, 52, 71,232,203,144, 50,195,211,137,
-247,128, 26, 62,181,235, 76,110,215,178, 46,130, 78,229,226,101,216, 57,100,166, 38,110,166, 49,135,142, 84,196,  9, 34, 85,  6,
-248, 58, 85,114,184,242,251,150,  0,187,179, 17, 12,226,226,222,224,248,239,235,161, 82,126,160, 43,206, 24,221,121,179, 10, 65,
-110,102, 50, 20, 57, 26,136,152, 60,145,145, 39,245, 85,165, 74,149,246,172, 91,183,110, 98,203,150, 45,205,252,253,253, 95,102,
-100,100, 44,167,148, 30,210,235,224,191,168, 89,179,230,247,155, 55,111,174, 22, 23, 23,135, 75,151, 46,189,  4,112,191, 20,206,
-120, 14,135,179,245,210,239, 59,103,137,171,212,194,134,249,223,169, 15,223,139,232, 77, 41, 61,171,199,233,211,169, 94,141, 83,
-203,191,255,134, 97, 31,252,129, 71,177,201,136,206,146, 95, 42,137, 51, 45, 45,141,200,100, 50, 47, 27, 27, 27,253,237,192,197,
- 92, 42,159, 61,176,134,164,243,156, 27,174,249, 74, 13,132, 60,134,126,219,199, 83,114,231,216, 33,251, 52,121, 26,209, 69, 35,
- 26,139,151,185, 26,112,185, 92, 56, 58,254,111,  4, 41, 34,195,168,216,  7,139,187,119,239, 50, 28, 14,167,144, 64,215,183, 16,
- 25,107, 41, 50,  6,134,114, 22, 21, 90, 58,168,213,106, 82, 94, 78,185, 92, 94,108,206,177,226,124,181, 88,150,253, 36,251,111,
-140,133, 74,127,200, 80,231, 79,151,159,159,239, 40, 22,139,147,117,195,127, 21,101,209,250,152, 72,196,210,134, 47,141,105, 31,
-195, 48, 96, 89, 22,124, 62, 31, 13, 26, 52,192,169, 83,167, 96,103,103,  7, 43, 43, 43, 88, 89, 89, 65, 44, 22,195,222,222,190,
- 64,104, 49,140,193, 81, 58, 84, 46,151,123,120,120,120,224,213,171, 87, 16,137, 68,  5, 31,161, 80,  8, 95, 95, 95, 72,165,210,
-202,159,207,118,255,105, 48,110, 80,167, 62, 91,130,143, 14, 63,117,234,244,100,165, 60,191,110,173, 90, 53,233,253,208,203,143,
-230,204,152,216,205, 36, 77,254,191,160,179, 70,233,251, 90,205,157, 59,119,126,121,249,230,206,157, 59,191, 56, 11, 87,121,  5,
- 23,222, 15,245,233,190, 81, 32,180,116, 10,178, 56, 37,169, 19, 89,187, 55, 45,177, 58,250, 16,136,143,143,193,133, 67, 27,115,
- 84, 74, 69,  6,203,170, 60,163,159,135,  3, 12,126, 51,168,  9, 12,109,214,167,123,  7,114,225,169,  2,217,153,169,120,113,255,
-220, 27,200,  4,243, 42, 82,100,237,217,178,212,238,228, 19,130,184,184, 55, 56,123, 96,125,150, 74,173,252,130, 70,135, 60,252,
- 24,238, 97,  2, 65,159, 65,181,109,122,142,245,147, 64, 67, 52, 24, 26,249,236, 75, 87, 63,210, 71,114,189,244,200, 48,125,164,
-166,166,174,176,176,176, 96,126,250,233,167,209,249,249,249, 75, 40,165,135,245, 46,156,206, 85,171, 86, 13,218,182,109,155,219,
-219,183,111,  5, 55,110,220, 72,191,114,229, 10,  5, 16, 88,198,  3,124, 54, 33,132,211,200,171,242,212,  7,111, 18,122, 83, 74,
-255,208,227,244,237,217,184,206,205, 93,129,139, 44, 85, 55, 15, 35, 55, 49, 14,243,110,198,103,  3, 48,248,120,171, 84, 42,100,
-100,100, 64,149,155,161,110,226, 34,205, 90, 50,192, 81,158,156,145,207,229,177,121,106, 31,171, 20,249,229,244, 55, 28, 51, 51,
-179,114, 31, 87,190, 64,  0,149, 74,133,202,149, 43, 23,148,101,231,228,130, 16,  2, 23, 23,151,178,110,182,  0,  0, 51, 90,181,
-106, 69,154, 55,111,126,103,253,250,245,231, 75, 19, 43,229,177,104,149,  5, 67, 57, 89,150,101, 74, 56,190,164,188,156,250, 22,
-173,178,132,214,231,180,104, 21, 39, 90,244, 69,162,190, 16, 42,143,143,214,167, 20,135,198,136,176, 98,120, 10, 44, 90,225,225,
-225,112,119,119,135, 82,169,132,165,165, 37, 44, 45, 45, 97, 97, 97,129,156,156, 28,240,120, 60, 24,185,207,172, 72, 36,122, 27,
- 17, 17, 81,179, 82,165, 74,208,104, 52,133,196,214,203,151, 47, 97,110,110,158, 96,172, 69,203,213,213,245,156, 54,234,176, 16,
-156,157,157,173, 43,226,184,234, 91,178,250,247,239, 95,174, 23,179, 45,129,179,130,  1,  4, 15, 24, 48, 96,207,227,208,211, 77,
- 92, 92, 92, 78,251,248,248, 16,  0, 48, 69, 24,254,187,172, 89, 37,140,176,165, 22,177, 68, 41,244,254,167,  2, 32,218,255,169,
-122, 66, 76,255,183,162,152,178,119,129,129,129,151,245,252,187, 82, 63,114, 23,116, 41, 30, 10,249, 66,115,203,178,100, 57,218,
-219, 93,254,101,195, 18,171, 67, 97, 64, 66, 92, 12,174, 30,217,148,165,214, 40,191,  0, 75, 19, 67, 47, 30, 57, 12,130, 60, 68,
- 31,190, 10, 28, 50,160,139, 64,163, 70,181, 61,113,236,169, 10,169,241, 47, 65, 41,187,155, 38,255,158,247,209,157,163, 86,100,
-237,222,180,196,238,104, 56, 65,124, 92, 12, 46, 28,218,152,165,214, 40,191, 40, 79,178, 83, 29,198, 18, 98,203, 49, 23,109, 29,
-222,165,233, 64,207,170,110, 96,169, 10, 44,159,162,239,108,  7,238,139,  7,121,199, 60,186,112, 14,177,185,236,228,248, 80,195,
- 18,129,230,230,230, 46, 35,132, 28,165,148, 70,234,117,200, 95, 86,171, 86,109,229,207, 63,255,236,149,144,144, 96,249,224,193,
-131,236, 29, 59,118,196,176, 44, 27, 64, 41, 45, 51,138,138, 82,250, 29, 33,228, 23,253,124, 57,132,144,250,179, 70, 15,  9, 29,
- 50,106,172, 40,230, 98, 48,108, 99, 34,241,253, 77,137,230, 69,134,194,159, 82,154, 84, 18,151,131,131,  3, 77, 77, 77,125,147,
-153,153, 89,211,220,220, 28,239,222,189, 67,122,122, 58, 50, 51, 51, 33,207,206, 80,219,107, 50,165, 68,157, 14, 46,151,139,148,
- 56, 53, 52, 26, 77, 82, 89,214,172,146,162, 14,  1,  4,202,100, 50,157,200, 42, 40,183,178,178, 10,180,178,178,210,249,104,237,
- 44,225, 33,166, 75,239, 64,180,233, 29, 90,252,241,199, 31,207,186,117,235, 22, 95,156, 88, 17, 10,133,200,207, 55, 46, 75, 72,
- 73, 81,140,229,225, 44,201,162, 85,180,220, 24, 78,221,240,165,206,  9,190,104,185, 14, 28, 14,  7, 44,203,126, 80,254, 87,139,
- 22,253,232,192,242,136,156, 66,214,229, 50, 18,135,150, 39, 18,177,162, 45, 90,186,115,193,231,243,113,226,196,  9,140, 26, 53,
- 10, 26,141,  6,102,102,102,176,176,176,128,185,185, 57,142, 28, 57,  2, 93,250,  7, 99,154,168, 82,169,246,  6,  6,  6,206,223,
-182,109,155,152, 82, 10,129, 64, 80, 32,180,150, 44, 89, 34, 83, 42,149,123, 13, 17, 90,  5, 25,223, 89, 26, 81,189, 82,233, 81,
-135,197,173, 83,130,191,150, 77, 64, 64,192,  8,150,101,251,160, 72, 10,135, 34,245, 10,165,126, 40, 45,189,  3,  0,219,128,128,
-128,113, 44,203,234,  2,104, 10, 69, 23,234,213,211, 61, 75,106, 14, 24, 48, 96, 79,209,168, 67, 19,254,241,184,247, 55,110, 91,
-123,189, 68,165, 68,219, 95, 20,  8, 46,110,201, 34,107,128,143,163,189,195,229,157,235,151, 88,237,187, 11, 72,226,162,113,235,
-196,230, 44, 13,171,210, 23, 47,109,140,236,121, 27,185, 58,218, 32,253,182, 12,217,105,111,  1,138,  7, 31, 47,178,  6, 85,119,
-116,176,191,178,107,227, 18,187,144,135, 12, 18,222,198,224,138, 86, 12,126,140,200, 26, 38, 16,244,241,173,225,182,107,240,151,
-173,109,173,137, 26,234,216,103,248,101,228, 64,132,245, 82,162,245, 32,107, 52,235,110,137,106, 13, 69,  3,207,236, 76,239,232,
-234, 71,198, 26,106,221, 42, 34,178,122,121,121,121, 45,189,115,231,142, 39,203,178,150, 87,175, 94,205,217,182,109, 91,116,126,
-126,254, 70, 74,233,105, 35, 30, 14,250, 34,171,209,220,241, 35,111,172,252,249, 23, 81, 68,216, 61,  4,237, 61,  9,153, 74,161,
- 57, 23,159, 59, 64,127, 88,177, 20, 75,201,197,141, 27, 55,122, 45, 92,184, 80,144,158,158,142,180,180, 52,100,100,100, 20,124,
-114,115,115,225,236,236,140, 63,254,248, 67,153,157,157,125,219,128,135, 77,133, 71, 29, 22,  7, 75, 75, 75,240,249,124, 40,149,
-202,  2,139,150, 80, 40,132,181,181, 53,222,189,123,135,131,  7, 15,  2, 64,122,169, 22, 54,190, 32,145, 97,136,187,216,204, 76,
- 46, 18,137,216,226,172,106,198,114,106, 17,255,229,151, 95,186,  5,  4,  4,136, 26, 55,110,252,129, 69,171, 60,156,148,210,188,
- 46, 93,186,152,109,220,184, 17,158,158,158, 80, 40, 20,133,  4, 21,195, 48,224,243,249,136,139,139,195,242,229,203, 65, 41,205,
-251,171,123, 30,125,209,162, 47,134,180, 62, 84, 31,  8, 33, 67, 45, 70,101, 13, 13, 26, 27,137,168, 47,220,132, 66, 33, 50, 51,
- 51,197,132,144,161, 37,100,176, 55,216,162,165, 19, 90,145,145,145,216,179,103, 15,186,119,239, 14, 91, 91, 91,100,100,100,224,
-208,161, 67,120,246,236, 25,  4,  2,  1,  8, 33,198, 88,181,216,230,205,155,255,120,253,250,245, 94,254,254,254,117,190,255,254,
-123,113,221,186,117,241,226,197, 11,  4,  4,  4,228,135,133,133, 69,201,100,178,  0, 24,146,216, 84,155,241, 93,151,140,212,160,
-168,195, 34,235, 20, 69,  9,233, 29,190, 44,129, 77, 63,245, 67,161,244, 14,250,184,117,235,150,183,151,151,151, 15,222, 71, 18,
-234, 30,184,250,209,133,133, 30,198,137,137,137, 77, 97,138, 58, 52,225,175,237,235,174, 18, 66, 10, 18,150,234,196,215,  7, 81,
-135, 31,174, 73,102,248,143, 28,111,181,247, 46, 65, 92,108, 20,238,159,217, 90, 84,100, 25,210,217,116,210,207,181, 33, 18,155,
-215,101,201,251,112,230,236,180, 56,128,114,140, 22, 90, 69, 57, 65,217,239,252, 71,140,183,219,127,159, 64, 18,247, 26, 55,143,
-111, 49, 90,100,233,115, 14, 19,  8,126,224,113,200,194, 30,109, 27,241,219, 52,172,  1,243,148, 55, 72,138,151,224, 96,100,106,
-122, 84,134,124,236, 77,162, 68,236,107,249, 47,221,199,217,217,217, 58,243,208,115,162,189,221,237,147,217,199, 42,127,193, 40,
-169,146,  6, 74,110,208, 37,197,182,243,195,109, 86,183,178,178,250, 41, 44, 44,172,146, 72, 36,178,186,127,255,190,102,251,246,
-237,113,249,249,249,171, 41,165,  7, 12,218,247, 15,151,187, 53,173, 81,245,234,202, 45, 59, 69,185,210, 60, 72, 21, 74,  8,157,
- 92, 52, 71, 67,159,244, 43, 41,  1,102, 81, 78,161, 80,184,255,192,129,  3,221,253,252,252, 60,235,215,175,207,164,167,167, 35,
- 55, 55, 23,185,185,185, 58,171, 23, 34, 35, 35,217,216,216,216,  4,161, 80, 88,102, 59, 43, 42,234, 80,159, 83, 47,189,195,124,
-  0, 12, 33,228, 94,120,120,120,110,183,110,221, 32, 22,139, 33,149, 74,225,225,225,  1,181, 90,141, 51,103,206, 32, 44, 44, 76,
-202,178,236, 85,  0,225,165,237,187, 76,150,231, 65,  8, 97,100,121,121, 13, 70,140, 24,209,110,230,204,153,133, 66,210, 29, 29,
- 29, 97,103,103,103, 20, 39,  0,164,167,167,215,254,227,143, 63,166,135,135,135,127,215,189,123,119,235,249,243,231, 11,189,189,
-189,161,209,104,152,242,114,102,100,100, 88, 63,120,240, 96,117,155, 54,109,190,233,214,173, 27,119,229,202,149,176,182,182,134,
- 70,163,129, 88, 44, 70,118,118, 54,  2,  2,  2,112,227,198, 13, 53,165,116, 75, 86, 86,214,247,198, 92, 75,229,180, 96, 21,226,
- 44,201,  2, 84,146, 16, 42,174,254, 95,209,206, 34,194, 13, 54, 54, 54,115,  0,204, 41, 33,131, 61, 12,189, 55,117, 66,139,195,
-225,224,205,155, 55,216,190,125,251,  7,121,180,116,233, 31,138,227, 46, 97,223,233,149, 43, 87, 52,132,144,150,247,239,223,159,
- 51,124,248,240,177, 82,169,212,205,220,220, 92,162, 82,169,126,147,201,100,186, 60, 90,124, 99,250, 16,169, 84, 26, 91, 92,212,
- 97,209, 58,128, 77,169,156, 69,210, 59, 20, 74,225, 80,100,181, 66,169, 31,138,166,119,208,231,108,213,170, 85, 12,195, 48,207,
-181, 67,240,207, 81, 36,186, 80,143,179,102, 98, 98, 98, 83, 23, 23,151,171,  0,204,138, 70, 29,254, 21,215,146,137,243,255, 91,
-108,161,180,132,165,197,175,  5,209,197, 59,111, 32, 16,167,227,209,165,221, 70,139,172,226, 32,207,207,139, 90,180,255,109, 67,
-133, 60, 31,210,172,228, 23, 52,230, 64,202,199,159,109,152, 95,188, 23, 11,145,121, 38, 30, 94,252, 53, 83,163,201,255,130, 70,
-253, 39,188,252,116,152,247,243,217,195,124, 98,109,135, 71,211, 71, 65,146, 41,197,217,232,140, 67, 52, 79, 62, 57, 88, 59, 87,
-160, 91, 75,114,125,215,130,164,173,126,125,173,  7, 58, 84,230, 97,237,172,223, 32,154,107,207,111,214,177,173,193,115, 32,234,
- 28,228, 55,108,216, 48,201,207,207,207, 98,224,192,129, 47,211,211,211, 11, 57,200,151,227, 68,199, 19, 66,126, 62,189,109,205,
- 44,251,122, 45,176,249,135,217,154,253,161, 79,138, 70, 33,150, 10, 31, 31, 31,205,173, 91,183,102, 78,154, 52,105,109,199,142,
- 29, 43,247,233,211,135,239,238,238, 14,161, 80,136,215,175, 95,227,250,245,235,202,232,232,232,132,188,188,188,153,245,235,215,
- 47, 51,199, 89,124,124,252, 78,129, 64,128,136,136,  8,180,107,215, 46, 80,107,177,122,115,235,214,173,121,217,217,217,200,206,
-206,198,224,193,131, 11,202,167, 76,153, 50,175,106,213,170, 72, 79, 79, 47,107, 95, 23, 17, 66,182,225,253, 92,135, 73,193,193,
-193, 45,143, 31, 63,222,114,198,140, 25,252,238,221,187,227,246,237,219,184,112,225,130, 82,169, 84,134,  2,  8, 53,116, 90, 27,
-109,254,161,  7,132,144, 39, 65, 65, 65, 45, 57, 28, 78, 65,198,251,136,136,  8,236,222,189,187, 60,156,106,  0,171,  9, 33, 63,
-  7,  7,  7, 47,186,120,241,226,232, 17, 35, 70, 88,169, 84, 42, 68, 70, 70,226,215, 95,127, 45, 47,231,244, 74,149, 42, 45, 60,
-115,230,204,111,231,207,159,255,106,216,176, 97,204,180,105,211,176,105,211, 38,252,231, 63,255, 97, 53, 26,205,113, 30,143, 55,
- 34, 53, 53, 85,250,153, 58,158, 29,218,105,117,118, 24, 49,231, 97,153,188, 31, 51, 52,104, 96,187, 19, 63,186, 91,210,238, 71,
-251,246,237, 11,172,140,148,210, 66,126,117, 58,129,101,236,208, 33,  0, 27,237,117,186,  5,239,231, 23,213,207, 10,207,193,255,
- 50,199, 27,202, 88, 39, 81,110, 19,  1, 57, 34, 75,159, 84,218,  6,160,168, 83,  6, 91,230,162, 69,139,214, 45, 94,188,120, 93,
-209, 20, 14,250,149,138,166,126, 88,186,116, 41, 74, 74,239,  0, 32, 99,209,162, 69, 63,106,251, 39,162, 29, 46,108,  2,109,116,
-161, 30,231, 30,109,185,217,146, 37, 75,134,  3, 40,141,211,  4, 19,254, 50,148,226,163, 69,231, 71, 92,223,175,  2, 96, 15,194,
-204,163,175, 15, 70,124,116,  7,198,210,185,127,238, 91,178,  9, 20, 25, 84,163,158, 83, 33,123,192,114, 22, 68, 92,223,199,  2,
-196,  6,132,153, 75, 95,255,231,163,219, 73,172,237,144, 19, 48,  9,255,121, 42,161, 73, 82,213,215,193, 10, 69, 33,107,144,214,
- 39,107,144,171, 31, 57,104,235,202, 59, 58,253, 11,123,114, 58,125,184,209,219, 73, 77, 77, 93,105, 97, 97,193, 89,189,122,245,
-104,153, 76, 86,200, 65,254, 35, 30, 18,179,  9, 33,156,102,213, 61,167,222,125, 21,219,199,144,225,194,162,104,213,170, 85,226,
-179,103,207,134, 92,184,112,193,255,218,181,107,157,242,242,242,188,  8, 33, 16,139,197,111, 20, 10,197, 69,161, 80,184,223, 16,
-145,165,255, 64,209,159, 34,  6,  0,178,179,179,145,147,147, 83, 40, 13,  1,240,222,191, 42, 53, 53, 21, 30, 30, 30,198, 62, 16,
-175, 17, 66,194,  2,  2,  2,218,  6,  4,  4, 52,208, 90,133,174,149,119,200, 76, 43,120,174,137,197,102, 18, 66,136, 27, 95, 32,
-148,222,186,117,235,226, 71,114,230,105, 45, 37,107,215,174, 93,187,194,220,220,188,105, 68, 68,196,165,143,225,212,138,168,126,
-246,246,246,174,123,246,236,  9,217,181,107, 87, 11, 46,151,123,155, 16, 50, 32, 51, 51,243,115, 79, 42, 61,  1,134,205,113, 88,
-166,197,200, 16,139, 88,121,241, 41,132,155, 70,163,201, 93,184,112, 97, 74, 81,225, 85,212,122,165,251,175, 84, 42,243, 13,188,
-151,140,137,162, 44, 67,100,144, 92,  0,120, 63,119,225,251,105,117, 12,157, 84, 26, 64,137,115,103, 46, 94,188,152, 46, 93,186,
-148, 48, 12,115, 28,192, 11,134, 97, 94, 21,117, 86,215, 95,182,116,233, 82, 44, 94,188,152, 46, 89, 82,242, 59,170,142,243,217,
-179,103,148,195,225, 92,  2, 16,195,225,112,222,232,243,234,151,235,214, 41,141,211,  4, 19, 62,187,208,162,209, 33,113,  0, 70,
- 85,232,155, 98, 76,200, 69,188,119,100,172, 56,206, 55,  7, 98,  1, 12,171, 40, 62, 22,248,105,108,179,246,179,  0, 16, 10,172,
- 45, 42,178,244, 33,185, 78,143,187,180, 38,129,205, 58,182,157,161,181,134,173, 52,118,123,197, 57,200, 87,128,216,250,192, 65,
-222, 88,248,248,248,104,  0,  4,  3,  8, 46, 58,169,116, 57, 30, 58, 16,139,197,  5,195,136, 12,195,196,100,102,102, 66,103,209,
-210, 47,215, 30, 19, 88, 91, 91,151,103,191,243,  0,156, 37,132,156,167,148,106, 42,226, 88,202,100,121,238,218,  7, 28,167,162,
- 56,181, 65, 14, 99, 43,146,243,221,187,119, 18,  0,173,170, 85,171, 38,136,138,138, 82,252, 93, 58,152,138,176, 14,125,106, 84,
-180,112,211,190, 48,212,254,  4,199,242, 69,  5, 19,254,218,165, 77, 29, 14,244,115,  7,149, 53,169,180, 78,160, 81,252, 90, 66,
- 27, 41,121,175, 36, 41,128, 61,175, 95,191,246,100, 89, 54,182, 24,203, 82,161,101, 75,150, 44, 65, 73, 57,  3,139,112,  2,192,
-177,184,184, 56, 87,141, 70,147, 88,132,183, 80,121,105,156, 38,152,240, 55,177,104,253,127, 98,175, 66,177, 24,192, 98, 67,235,
- 39,222,164, 11,  0, 44,248,200, 14, 52,178,162,247,163, 60, 34, 43, 36, 36, 68,243, 41,142,169, 74,245,126, 52, 76,127,238, 66,
-125, 12, 31, 62,124,103,  5,239,187,230, 19, 28,207,127,  4,231,223, 73,100,153,240,247,  6,205,136,136,  3,240, 67,153,245,202,
-206,  6,255,129, 48,210,254,204,  0,144, 81,130,214, 41,109, 89,105,156,  0,144, 13, 32,187,152,117, 75, 42, 55,193,132,207, 10,
-198,116,  8, 76, 48,193,  4, 19, 76, 48,193,  4, 19, 62, 13,  8,128, 78, 37,188, 65, 24, 28, 77, 64,  8,233, 84,142,183,249,139,
- 38, 78, 19,167,137,211,196,105,226, 52,113,154, 56,255,191, 56,203,226, 46, 26,189, 92, 81,211,115,253,165,226, 74,191,221,186,
- 72,152, 79,241,  1,208,201,196,105,226, 52,113,154, 56, 77,156, 38, 78, 19,167,137,179,156,219, 25,255, 87,108,231, 83,126, 76,
- 62, 90, 38,152, 96,130,  9, 38,152,240, 15, 66,231,154,196,133,171,  1,115, 54,138, 38, 84,  4,223,151,213, 72,101,  0,168, 40,
-190,255, 71, 16, 66, 92,  0,244,208, 43, 58,173, 11,  6, 50,  9,173,127,238, 73,173, 14, 96, 62,  0,253,240,188,187,148,210,192,
- 34,245,246,  1,208,159,144, 80, 10, 32,128, 82,250,202,152,237,113, 56,156,192,182,109,219, 78,190,113,227,198, 26,149, 74, 21,
- 80,142,246,122,186,184,184,252, 72,  8,105, 12,128, 71,  8,121,157,156,156, 28,168, 82,169, 46,126,196, 49,168,226,236,236,188,
- 10, 64, 67,134, 97,120,132,144,168,228,228,228,229, 42,149,234,202, 71,112, 90, 58, 57, 57,181,166,148, 58,  3,224,240,120,188,
-119,  9,  9,  9,119,202, 27, 61, 55, 96,233, 51,126,182, 84,205,  3,  0, 43,115,174, 42,100,177,143,210,208, 50,211, 85,110,130,
-  9,255,247, 29, 61,167,104, 81,215,170, 88, 65, 40,190,215,  0,164,107, 21,178,241, 92, 12,190, 47,113,253,226,  2,110,138,112,
-118,173,138, 21,148,190,231,232, 90,141,172, 62,247,186,140,224, 46,  3, 56,117,216,  1, 48,227, 13,153,224,252, 19,  4,  6,125,
-  6,244,208, 31,226,212, 38, 96,222, 81,166,208, 26, 92,147,184,104,184,224,134, 68,208, 56,221, 67,  8, 64,  3,  0,213,  1,188,
-  2, 16, 78, 41,205,249, 72,193,240,143,224,252, 27, 98, 17,165,116, 72,145,253,254,160,210, 23, 95,124,209,251,252,249,243,102,
-186,233, 89, 88,150,133, 88, 44, 86,  3, 24,105,196,241,116,244,247,247,159,251,203, 47,191, 96,224,192,129, 11,  9, 33,235, 40,
-165,185,134,174,111,103,103,215,191, 74,149, 42,155,118,238,220, 89,169, 69,139,150, 68, 32, 16,224,245,235, 40,183,  9, 19, 38,
-212,117,114,114, 58,158,156,156, 60,214,216,157,183,183,183, 31, 90,181,106,213,181,219,183,111,119,104,211,166, 13,  8, 33,  8,
- 11, 11,115,155, 62,125,122,  3,103,103,231,  3, 73, 73, 73,223, 24,203,233,224,224, 80,163,106,213,170, 29, 54,111,222, 44,110,
-221,186, 53, 68, 34, 17,194,195,195, 45, 38, 78,156,232,236,236,236, 28,153,148,148,116,213, 88,145,245, 56,236,228, 87,106,165,
- 60,  8,  0,184,124,225,236,150,235,178, 79,166,135, 93,235, 85, 86,217,128,165, 56,102, 18, 91, 38,152, 96,130, 62,134,186,194,
-153, 82,204, 58,255,235, 15, 12,  0,116, 25,189,108,218, 80, 87,172,217, 43, 65, 82,  5,241,125, 63,162, 50, 54,237, 73, 64,242,
-199,180,115,  7,192, 76,231,114,167, 53,107,222,220, 97,202,205,155, 81, 74,224,183,255, 19,  3,200,248,226,202, 75, 20, 90,253,
-235,144,  0,112, 49, 31,  0,249,178, 58, 57,112, 33,134,115,189,115,231,206,213,198,140, 25, 67, 26, 53,106,132,176,176,176, 26,
-  7, 14, 28,232,193,229,114,163, 52, 26, 77, 24,128,167,134,102,181, 38,132,240,  0,248,114, 56,156,198,127,103,206,191, 57,204,
-181,251,157, 12,224,174,206,162, 85,180,210,159,127,254,121,130,203,229,234, 44, 90,205,164, 82,169, 83, 17, 43,152, 33,240, 82,
-169, 84,120,254,252, 57, 24,134,225,  1,240,198,135, 83,106,148,116, 94,220,220,220,220,182,134,222, 13,179, 39, 92, 49, 50,242,
-  1,228, 43, 33,176,112,194, 47,187,131,237,102,126,251, 77, 63, 43, 43,171,235,217,217,217,191, 27,113, 49,123,123,120,120,172,
-123,244,232,145,189,153,153, 25, 88,150, 69, 78, 78, 14,156,157,157,177,115,231, 78,155,153, 51,103, 14, 17,139,197, 87,100, 50,
-217,127,140, 17,231, 85,171, 86,237,240,228,201, 19,177,110, 66,105,133, 66,  1, 55, 55, 55,236,219,183, 79, 56,109,218,180,218,
- 66,161, 48, 94, 46,151, 71, 27,202,153, 45, 85,243,212, 74,121,208,158, 45, 75,220,  1, 96,196, 55, 75,130,  4, 57, 86,103, 12,
- 41,203,150,170, 79,  3, 48,  9, 45, 19,254,234,  7, 69, 99,  7,  7,135,195,105,105,105, 87,  1,140,173,136, 20, 36,132, 16, 87,
- 46,151,235, 77, 41,181,209,254,207, 84,171,213, 49,148,210,114, 39,212,117,168,214,161, 23,132,102,163, 64,217,  6, 12,  0,194,
- 48,225, 26,101,222,238,180, 23,151, 79,126, 20,167, 64, 60, 26,160, 13, 24,128, 37, 12,243,136, 85,231,237, 76,125,118,249,236,
-223,229,252,220,206, 66,205,170,206,134, 79,140, 89, 17,124,131,171,192,133, 97,193,236,123,  3,131,135, 21,167,  2,221,191,253,
-246, 91,231,111, 38, 79, 38,163, 70,142,172,126,245,198, 13,210,206,152,217, 10,254,129, 40,205, 97,191, 88,161, 53,160, 14,177,
-  5, 48,231,192,166,249, 12,151,195, 33,254,223,  6, 14,217,181,101, 53,211,185,215,128,130,225, 19, 63, 63, 63,248,249,249,145,
-160,160,160,234,151, 46, 93,170,190,111,223, 62, 53, 33,228, 17,165,244, 96, 73, 27,235, 86,141,200, 88, 64,212,163, 22, 87,234,
-255,195,239,219,155, 55,111, 14,161, 80,136,143,225,  4,128, 46,213, 57,209,221,155, 87,123,228, 63,117, 81,108,139, 22,173,104,
- 69,112,254,131,112,151, 82,218, 71,219,129,217,122,120,120,180, 86,171,213, 34,  0,224,114,185,249,  0,166, 82,237,212, 65,132,
-144,227, 44,203,246, 54,162,131,100,  0, 44,238,221,187,247,194, 41, 83,166,192,195,195,  3,211,166, 77,131, 74,165, 10, 35,132,
- 44,  2,176,170,172,132,128,142,142,142,139,182,110,221,106,199, 21,152,163,209,156, 24, 36,102,170,  1,  0, 22, 66,224,196, 36,
-138,105,211,166, 89,221,191,127,127, 57,  0,131,133,150,163,163, 99,192,206,157, 59,237,204,204,204, 64, 41, 69,110,110, 46,114,
-114,114, 10,230,100,252,230,155,111,172, 34, 35, 35,127,  4, 96,176,208,114,114,114,106,189,121,243,102,177, 72, 36, 66,110,110,
- 46, 95,169, 84,146,156,156, 28,228,229,229, 81,133, 66,161,156, 58,117,170,240,233,211,167,237,  1, 68,195,132,191,139, 40,224,
-  0,248,154,199,227,245,173, 86,173, 90,147, 87,175, 94, 61, 84,171,213, 71,  0, 28,249,216,151, 41, 66, 72, 71, 87, 87,215, 21,
- 18,137,100, 51,165, 52,248,255,229,152, 58, 57, 57, 29,185,117,235,150,251,214,173, 91, 71,174, 89,179,230,140, 49,247, 80,  9,
- 47,191, 45,155, 53,107,230,208,183,111, 95,158,179,179, 51,242,242,242, 16, 21, 21,101,118,241,226,197, 74, 34,145,232,157, 92,
- 46, 15, 53,230, 92, 57,212,108,109,  1,174,213,129,150, 29, 58,181, 25,216,239,107, 75, 39,123,107,200, 20, 26,188,138, 77,244,
-248,227,204,137,118,174,117,123,220, 82, 42,179,  6,167,189,184,153,107, 44,103,135,110, 61,219,116,234,216,209,210,218,198, 26,
- 89, 82, 37, 94,191, 73,240,188,124,225,164,159, 75,221, 30,215, 88,162, 26,150,252,248,124,222,231, 60, 55,211,  0,174, 84,100,
- 95,191, 65,171, 70,247,187,140, 89,222,132, 82, 10,134, 98, 99, 81,107,214, 52,128,187, 17, 80, 27,203,  7, 74, 41, 33, 88,173,
-111,205, 42, 24, 86,100, 64,186,122,163,244, 97, 74,221,243, 24, 16,218,216,217, 53,159, 56,126, 60,201,201,206, 70,120,120,120,
- 94, 81,145,181,174, 50,248,215, 24,120, 29,143,195,203,127,147, 53,171,232,208,161,238,191,193,121,180,204,204,204,138, 45,183,
-182,182, 70,135, 14, 29, 16, 24, 24,200,  5,208,184,136,194, 43, 60,201, 42, 32, 60,181,109, 30,172,205,133,140,135,135,135,165,
-149,149,213, 71,115,190, 47,100,189, 91,121,208, 47,239,253, 62,127,228,197,125,107,125,165, 57,153,188,162, 85, 44, 44, 44, 80,
-179,102, 77, 44, 92,184,208, 48,206,143, 87,183,127, 41,167,139,139, 75, 45, 63, 63,191,198,127, 94,189,106, 35,145, 72,132, 18,
-137, 68,120,254,207, 63,109, 90,182,108,217,216,197,197,165,150, 30,135, 49,237, 92,182,101,203,150, 69,199,143, 31,103,252,252,
-252, 96,107,107,139, 14, 29, 58,224,204,153, 51,220, 53,107,214,172,  4,176,176,172,118, 50, 12,211,198,207,207,143,128, 82, 36,
-101,169,113, 39,176, 22,194, 87,251, 32, 39,159, 34, 61, 43, 27, 50, 89, 62,204,204,204, 68,218,225, 94, 67,247,189, 85,203,150,
- 45,  9,128,  2,113,149,147,243,254,147,155, 43,133, 66,161,132, 80, 40,180, 36,132,136, 12,229,164,148, 58,183,110,221, 26,  0,
-160, 84, 42, 11,222,240, 50, 51, 51, 73, 86, 86, 22, 20, 10,  5,120, 60, 30,159, 16,194, 53,148,211,202,156,171,226,242,133,179,
-130,112,  2,223,  0,  0, 32,  0, 73, 68, 65, 84, 71,124,179, 36,110,196, 55, 75,226,184,124,225,108,133,101,182,198,144, 50, 43,
-115,174,234,115, 94,159,132,144, 74, 28, 14,231,215,106,213,170, 69,114, 56,156, 61,132, 16,231,143,225, 36,132, 52, 37,132,172,
- 52, 51, 51,187, 88,187,118,237, 56,115,115,243, 63,  9, 33,171,  8, 33, 45,203,195, 73,  8, 17,152,153,153,253,185,114,229,202,
-144,135, 15, 31, 14,188,116,233,146,247,227,199,143,251,  5,  5,  5, 29,176,176,176,184, 78,  8, 49,251,152,123,211,219,219,123,
-215,157, 59,119,154,182,106,213,234, 23, 66,136,176, 34,238,119, 66,  8,135, 16,210,144, 24, 56,215,208, 95,125,222,  9, 33,174,
-141, 26, 53,114, 23,137, 68,232,212,169, 19,  0,180,255, 72,206,150, 19, 39, 78,116,158, 57,115, 38, 47, 60, 60, 28,191,252,242,
- 11,142, 31, 63,142,148,148, 20,244,236,217,147,255,197, 23, 95, 56, 11,133,194,150, 70,113,114,173, 14,124, 59,125, 70,183, 89,
-211,198, 89, 62,122,171,196,238,139,111,113, 44, 52, 17, 41,121,  2,244,234, 55,194,186,107,159, 65, 93,  5, 66,235,  3,198,114,
-206,157, 51,167,219,248,209, 67, 44, 35, 18, 89,156,184,157,132,219,207,179,160,230,217,160,123,191,177,182, 13, 90,119,235,193,
-  5,239,183,207,125,142,118,  2, 45,190,253,246,219, 74,179, 87,239,189,233,218,244,235,141,169, 25,240,211, 23, 62, 53,  0, 27,
- 59,115,243,175,159,183,107, 55, 78,252,126,206,199, 82, 57, 11,241, 53,238,179, 41, 37,  3,109,245,253,179,218,218,161,186,118,
- 88,145,115,254,215, 31, 24, 74, 48,109,168, 43,156,203,106,231, 21, 96,224,183, 51,102,240,172,109,109,177,101,203, 22,200,165,
-210, 66, 62,179, 29,221,209,237,162, 25, 55,190,138,143, 91,100,  7, 79,114,253, 95,248,  2, 56,190, 68,139,214,233,211,167,105,
-143, 30, 61,  8,  0,132, 68,208,140,254,117,200,143,131,166,172, 92, 72, 24, 66,189,124, 91, 69, 84,174, 90, 71,106,111,111,143,
-188,188, 60,200,229,114,240,249,124,228,231,231,227,237,219,183,184,125,251, 54,108,109,109,141,106, 76,118,118, 54, 44, 44, 44,
- 96, 97, 97, 81, 33,156,243, 70,118, 18,190,142, 75, 21,158,187,125,165,221,134,201,255,105, 81,181, 97,251,199, 29,  7, 77,123,
- 98, 85,201, 53,255,241,227,199,184,117,235, 22, 50, 50, 50,208,188,121,243,127,203,249,188,171,237,175,239, 18, 66,108,253,252,
-252,220,206, 93,188,102,155,155,207, 90,189, 73, 86,241, 88,150,133,153,153,139,250,224,225, 19, 89,  3,251,245, 34,132,144, 20,
-  0,119,181,226,246,110, 25, 23,138,  8, 64,173,254,253,251,207,157, 60,121, 50,162,162,162, 48,110,220, 56,217,221,187,119,223,
-181,106,213,202,126,231,206,157,226,153, 51,103,226,234,213,171,139,  9, 33, 71,  1,196, 80, 74,243, 75,232, 52,248,124, 62, 31,
-106,173,108, 80,106,216,  2,125,159,157,157, 13, 42,203,  0,159,207,231,  0,168,  4,192, 32, 63, 58,150,101,249, 60, 30,175, 64,
-100,189, 77,206,198,219,148, 60,100,231, 42, 32,147,169,161,144, 81,112,204,236,185,192, 27, 39,  0,111, 12, 60,158, 28,145, 72,
-  4,181, 90, 93, 48,255,162,206, 82,166, 80, 40,144,149,149,  5, 14,135, 99,  1,192, 10, 64,186, 33,132,239,157,220,113, 76, 59,
- 12,136,123,123,123, 59,188, 58, 61, 79,217,127, 73,100, 65,153,149, 57, 87,117,120,102,109,142,189, 91,131, 27, 13,  7,254,230,
-163, 43,251,156,254, 89,132, 16, 97,165, 74,149, 46,135,132,132,212,174, 94,189, 58, 98, 98, 98,124,  6, 12, 24,208,156, 16,210,
-208,216, 57, 25,  9, 33,102, 12,195,252, 56,106,212,168,201,254,254,254,164, 70,141, 26,224,114,185, 80,171,213,110, 81, 81, 81,
- 29, 14, 29, 58, 52,135,203,229,238,212,104, 52,223, 25,234,247, 71,  8, 97,  4,  2,193,193,237,219,183,183,109,222,188, 57,246,
-236,217,131,187,119,239,178, 77,155, 54,101,134, 15, 31, 14, 79, 79,207,230,195,135, 15, 63, 70,  8,233, 94, 30,203, 22, 33,196,
-115,232,208,161,238, 28, 14,  7,173, 90,181,226,223,186,117,171, 17,128, 91, 31,121, 76, 45,220,220,220,174,182,111,223,190,225,
-197,139, 23, 31, 16, 66,218, 27,227,231, 72,  8,233,227,234,234, 26,100,109,109,109,107, 68, 31,155,151,144,144,240,189, 17,115,
-168,182,104,220,184, 49, 98, 99, 99, 81,171, 86, 45,240,249,252,150,132,144,  9,  0,186,  1, 88, 96,204, 12, 22,132, 16,215,150,
- 45, 91, 58,180,111,223,158,172, 90,181, 10,  0,192,227,241,160,209,104,192, 48, 12,120, 60, 30,124,124,124, 72,116,116,180, 29,
- 33,196,213,144, 97, 68,135,106, 29,122,181,234,216,173, 77,219,230,245,153, 53,135, 95, 65,195,106,192, 33,106,112,  9, 11, 86,
- 37,132,144,207, 65, 13,223, 38,156,231, 79, 31, 53,119,168,217,185, 87,218,139, 11, 39, 13,225,236,214,171,183, 95,237, 90, 53,
-152, 13,199, 94, 35, 51, 33, 82,147,240,236, 90, 26,195, 97, 80,187,241, 23, 14, 53,234, 52,228, 52,108,222,158, 39,137,121,218,
-193,174,122,187, 78,233,175,174, 94,252, 28,247,228, 82,128,227, 86,217,225,235,158,157,219,243, 19, 37, 18,233,161,195, 39,159,
-228,169,112, 27,  0,174,  2,164, 59, 80,191, 94,179,102,237,118,174, 90,101,239,226,226,194, 27,230,239,175,222,241,224,193,131,
-241,128,166, 36, 62,  7,103,231, 78, 19, 39, 78,228, 36, 74, 36,244,208,145,211,143,117,124,  0, 96,  6,212,171,239,230,211, 19,
-210,231, 70, 13, 83,246,  2,  4, 78,206,206,181, 39, 76,152,128, 36,137,  4,123,130,131,115,243,129, 80,157, 21,235,  4,  7,155,
-235, 84,117, 30, 53,123,108,111,226,238,226,128,137,139,119,180,236,160, 76,169,122, 25,255,179,108,233,107,145,127,170,200, 42,
- 42,182, 74,124, 59, 63, 28, 65, 23, 89,  9,136,247,161, 67,251,153,212, 28,165, 52, 42, 42, 10, 14, 14, 14,112,113,113,129,181,
-181, 53, 34, 34, 34,240,231,159,127,226,197,139, 23, 96, 89, 22, 13, 26, 52, 48,170, 65,105,105,105,120,244,232, 17,108,109,109,
- 43,140,179,170,123, 37, 76,113,175,196, 79,126,151,205,191,120,247, 69,243, 29,243,250,213, 97,124,250,237,202,207,255,159,  6,
- 80, 40,254, 29, 51,148,232, 71, 23,122,120,120,180,222,189,123, 55, 95,174,134,101,141,  9,161, 63, 73,243, 53,230,  0, 96, 46,
-226, 72,195,130,106,126,183,108,217, 50,233,232,209,163,125,222,190,125, 27, 88, 22,175, 64, 32, 88,241,229,151, 95,206,162,148,
-242,190,253,246, 91,  0,192,136, 17, 35,178,111,223,190, 93,131, 82,154, 66,  8,113, 29, 51,102,204,203,203,151, 47,155,205,152,
- 49,131,163, 86,171, 35,184, 92, 46, 37,132,  4, 80, 74,151, 20,229, 99, 24,230,254,131,  7, 15,188, 92, 61,107,194,211,158,129,
-223,194,247,211,181,217,155,177,136,127,243, 26,207, 30,223,133,179,179,179,181,139,139, 75,100,173, 90,181,148,  9,  9,  9,115,
-114,115,115,183,150,214, 70, 62,159, 31, 30, 22, 22,230,226,233,233,137,220,220, 92,196,167,230, 97,218, 17, 51,100,203,222, 27,
- 49,120,144,161,161,123, 77, 75, 49,163,184,235,228,228,164, 84, 40, 20, 63,100,102,102,150, 58,141,  8,143,199,123,247,248,241,
- 99, 11, 15, 15, 15,228,231,231,211,244,244,116, 34,149, 74,145,147,147, 67, 78,159, 62,253, 85, 98, 98, 98, 83,111,111,111,226,
-230,230, 22, 80,189,122,117, 89, 66, 66,194, 56, 67,124,192, 66, 22,251, 40,  9, 33, 26, 46,151,187,102,252,248,241,  3,143, 30,
- 61,122,255,240,146,218,125, 40,165, 74,237, 13,105,237,235,235,123,174,126,253, 58,174,193,171,235,109,164,148,254,244, 55,184,
-188, 70,205,159, 63,191,182,157,157, 29, 38, 78,156,136,165, 75,151, 98,209,162, 69,213, 39, 78,156, 56, 30,192, 58, 35, 58, 29,
-177,179,179,243,189, 13, 27, 54,248,180,110,221, 26,103,206,156,193,254,253,251, 17, 29, 29,173,246,246,246,230, 54,111,222, 28,
-139, 23, 47, 70,215,174, 93,199, 77,157, 58,181, 29, 33,164,145,129,226, 99,244,226,197,139,251,180,105,211,  6, 35, 71,142,148,
- 95,185,114,101, 32,128,243, 23, 46, 92,248,226,234,213,171,135,247,238,221, 43, 94,185,114,101,167,153, 51,103, 78,  4,176,169,
- 28,251,255, 85,219,182,239,231, 80,110,211,166, 13,130,130,130,186,126,140,208, 34,132,  8,236,237,237, 79,239,217,179,167, 97,
-205,154, 53, 49,108,216,176, 70,  3,  7, 14, 60, 77,  8,233, 76, 41, 53,168, 67,170, 92,185,242,143,199,143, 31,175, 86,210,200,
- 66,113,144,203,229,118, 95,127,253,245, 42,  0, 70,  9,173,125,251,246,225,251,239,191, 71,131,  6, 13,234,183,104,209, 98,219,
-132,  9, 19,208,191,127,255,142,132, 16, 39, 74,169,212, 16, 34, 46,151,235,221,179,103, 79,222,145, 35, 71,222, 91, 71,218,182,
- 69,167, 78,157,240,228,201, 19,220,184,113,  3, 28, 14,  7,230,230,230,104,221,186,181, 64, 34,145,120,  3, 40, 83,104, 49, 66,
-179, 81,125,122,118,183, 60,113, 59, 17, 26, 86,141, 38,213,172,208,220,199, 17,207,227,179, 17, 22, 25, 15,141,130, 15, 43, 59,
-123,180,108,215,197, 46, 41, 33,122, 20,128,178,253,181,132,102,163,250,246,233, 97,113, 34, 84,130, 76,201, 51,250,234,238,209,
- 63, 85,249,210,113,  0,112,255,210,129,109,206,246,226,206, 53, 26, 55,225,180,239,220,219,246,200,254,164, 81,  0, 62,139,208,
-186,234,142,237,158,188,180, 17,179,135,248, 81,158,173,219, 93, 75,149,106,179,110, 89, 87,160,203,156,249,243, 91,140, 29, 63,
- 94,196,178, 44,246,254,254,123,246,163,  7, 15,158,151, 22,237,183, 25,240, 28,216,167,143,208,210,202, 10,211,167, 77,131,165,
- 74,117,185,224,144,  0, 29,167,207,154,213,250,155,111,190, 17,111, 11,152,124,191,235,152,229,141, 89, 74, 73,113,195,148, 69,
-113, 17,104, 58,166, 79, 31, 88, 90, 89,225,219,111,191,  5, 81, 42,207,233,150,157,226,226,242,232,175,252,154, 15,233,213,  6,
-  4,  4,251, 79,221,192,171,216,212,199,151, 19,241,250, 95,242, 76, 54,206, 71, 75,135, 28, 37,146, 59,246,232,135,  7, 15, 30,
-  0,  0,222,189,123,135,119,239,222,161, 90,181,106,216,180,169,112,255, 85, 30,  1,195,178,108,133,115,  2,128,147,189, 21,134,
-117,111,198,189,241,104,191, 72,154,154, 42,178,176,176,200,255,183,  9, 45,125,168,213,106,145,183,183, 55,178,101, 32, 89,121,
- 42,139,180,  3,239, 45,254, 14,131,175, 88, 40, 20, 10,198,194,194,  2,114,185, 92,100,192,  3,129,215,167, 79,159, 89,  7, 15,
- 30,228, 61,123,246, 12, 85,171, 86,133, 82,169,196,237,219,183,227,181, 19, 33,131, 82, 42,225,112, 56, 18,150,101,171, 55,104,
-208,  0,129,129,129,240,241,241, 33,221,187,119,159,163, 21, 91,133,110,238,196,196,196, 31, 39, 76,152,240,197,161,195, 71,237,
-182, 15,146, 33, 59, 43, 27,185,185,185,  8,127,120, 31,233,201,249,216,177, 99,  7, 68, 34, 49,  1,192, 79, 73, 73,230,207,152,
- 49, 99,163,155,155, 91,183,248,248,248,158, 37,181, 83, 34,145,172,248,230,155,111, 90, 30, 56,112,192, 38, 39, 39,  7, 50, 89,
- 62,210,165,102,136, 92,255,126, 30,223,218,211, 35,177,101,243, 86,166,158,151,185, 67, 94, 94, 30, 38, 79,158,188,214,213,213,
-181,181, 68, 34, 25, 83, 18,103, 66, 66,194,157, 41, 83,166, 56,237,221,187, 87,164, 80, 40,148, 26,141,  6, 50,153,140, 57,112,
-224,192, 28, 47, 47, 47,219,157, 59,119, 18,145, 72,172,173, 27,207,159, 52,105,210, 65,103,103,231,189, 73, 73, 73, 35,203, 26,
- 46,226,112, 56,235,131,131,131,135, 15, 26, 52,200, 50, 49, 49,177,206,241,227,199,133,  0,100,218, 42, 46,157, 59,119,246, 90,
-189,122,117, 37, 95, 95,223, 57,132, 16, 30,165,116,229,231,188,158, 28, 28, 28,166,246,233,211,  7,171, 86,173,194,201,147, 39,
-103,218,217,217,173, 93,186,116, 41, 92, 93, 93,167, 16, 66,214, 27, 49, 81,239, 79,235,214,173,243,241,241,241,193,136, 17, 35,
- 20, 23, 47, 94,156, 15,224, 24,128,216,235,215,175,123,252,246,219,111,189, 14, 30, 60,184,106,195,134, 13,162, 77,155, 54, 85,
-235,215,175,223,122,  0, 99,202,188,191,157,156,102,248,251,251, 99,245,234,213,184,114,229, 74, 63, 74,233, 25,237,162,179,132,
-144, 94, 43, 87,174,188,180,112,225, 66,172, 91,183,238, 91, 99,133, 22, 33,196,162,118,237,218, 63,116,235,214, 13,215,175, 95,
-135,159,159, 31, 90,182,108, 57,147, 16,178,145, 82,154, 86, 14,145,197, 88, 88, 88, 28,220,189,123,183,159,151,151, 23,150, 47,
- 95,142, 89,179,102, 97,215,174, 93,126,195,134, 13, 59, 72,  8,233, 91,244,158, 41, 14,214,214,214, 22,102,102,102,152, 51,103,
- 14,141,142,142,206, 40,171,190,187,187,187,237,218,181,107,137,173,173,173,181,129,237, 20,139, 68,162, 86,117,235,214,197,226,
-197,139,113,225,194,  5, 44, 92,184, 16,117,235,214, 69,108,108, 44,  6, 15, 30,108,182, 96,193,130,254,  0,118, 27,248,208,177,
-182,183,183, 71, 74, 74, 10,120, 60, 30, 90,183,110,141, 99,199,142, 65, 46,151,195,209,209, 17,153,153,153,104,214,172,153, 78,
-148, 25, 24,156, 67,235, 58,216, 89, 35,229,105,  2,184, 80,163,113, 13,  7, 92,126,242, 14, 74, 21, 11, 71,123, 27, 36,165, 36,
-163, 69, 93, 55, 40, 20, 30,160,148,173,107,  8,163,128,195, 52, 22,138,196, 72,207, 73, 67, 66,228,149,119, 74,141,124, 66,102,
-244,141, 56,  0,176,171,218,118,194,253, 27, 23,238, 15,232,209,214, 49, 87,234, 14, 66,217,102,159,227,126, 28,224,  1,119,115,
- 17,119,196,169,237,243,136,154,101,241,229,152, 21, 77,187, 57, 33, 15,201, 64, 37,192,123,192,224,193,173,190,251,238, 59,193,
-203,168, 40,118,198,180,105,153, 15,239,221,187,242,  7,112,191, 52,206, 92,160,122,231,206,157,193,  0,248,227,252,121,105, 26,
- 16, 15,  0, 78,128,123,239,175,191,110, 59,127,238, 92,193,235, 55,111,216,219, 81,185, 39, 94,167,208,192, 86,118,120,116, 32,
-246,125,157,210,160,  1,234,233,120,207,157, 59, 71,101,218,118,180,119,199,148,174,173,125,155, 15,239,211, 22,241, 73,239, 16,
-244,203,  9, 60,126,153,120,206,158,197,208,127,203,115,184,180, 12,246,140,  1, 55,204,  7,101,121,121, 31,142, 30,124,172,128,
-249, 20,156,197,225,223, 40,180,116,208, 77,222,172, 80,177, 80,168, 88,221, 91, 45,100, 50,153,161,138, 92,117,238,220,185, 61,
-211,166, 77,195,218,181,107,241,242,229, 75,240,249,124,212,173, 91,215,133, 16, 98,161,179,192, 52,110,220,216,145, 97, 24, 60,
-127,254, 28,107,214,172,193,232,209,163,233,173, 91,183,118, 21,247,192,160,148, 62, 76, 79, 79,223, 60, 97,220,232,204,140,228,
-183, 80,201, 50,144,146,240, 26,114,105, 38,150,  7,254,136, 60, 21, 23, 73, 89, 74, 36,101, 41,193,  8,237,176,109,231,110, 78,
-237,218,181,187,113,185,220,158,165,180,243,118,114,114,242,206, 73,147, 38,101, 38, 37, 37, 21,236,159, 66, 69,161, 80, 21,190,
- 94,205,204,204,176,126,253,122,235, 26, 53,106,244,225,241,120, 29, 74,225, 76,140,139,139,123, 54,105,210, 36, 69,114,114, 50,
-178,178,178,112,226,196,137, 94, 94, 94, 94,182,171,126, 90, 75,164, 74, 46,146, 50,149, 72,202, 84, 66, 96,225,136,131,135,143,
-114,106,214,172, 57,132,199,227,181, 44, 75,100,237,221,187,119,248,160, 65,131, 44,127,250,233,167,244,227,199,143,111,161,148,
-234,159,144,231,235,215,175, 63,116,240,224,193,156, 89,179,102,217,  5,  5,  5,205, 36,132,204,255,140,157, 69,135, 65,131,  6,
-213, 98, 89, 22, 33, 33, 33,143, 41,165,235,142, 30, 61,122, 79, 46,151, 99,240,224,193,222,218, 97, 36, 67,120,154, 14, 25, 50,
-100,178,159,159, 31,166, 79,159,174,188,120,241, 98, 99, 74,233, 90, 74,233, 27,250, 30,177,148,210,141, 87,175, 94,109, 48,117,
-234, 84,121,179,102,205, 48,114,228,200,209,132, 16,191, 50,120, 91,249,251,251,251,176, 44,139,  3,  7, 14, 60,210, 19, 89,186,
-243,248,231,225,195,135,111, 43, 20, 10, 12, 29, 58,180, 10, 33,228, 11, 35,246,157, 47, 20, 10, 67,150, 45, 91,102,147,144,144,
-128,225,195,135,203,159, 63,127,142, 37, 75,150,136,173,173,173,207,232,238,  1, 99, 32, 20, 10,119,252,252,243,207,125,234,213,
-171,135, 73,147, 38, 41,182,110,221, 58,109,242,228,201,138,198,141, 27, 99,203,150, 45,125,  4,  2,129, 81, 83,139, 72, 36,146,
-204,136,136,  8,251,178, 62,241,241,241,201,  6,238,179,153,165,165,101,168,175,175,111,118,221,186,117,155,168,213,106, 68, 68,
- 68,188,222,179,103, 15, 91,183,110, 93,108,222,188, 25, 65, 65, 65,232,217,179, 39, 56, 28, 78,127, 99,218, 42,149, 74, 33, 18,
-137,192,231,243, 17, 22, 22,  6,185, 92, 14, 51, 51, 51,136, 68, 34,112, 56, 28,216,216,216,192,210,210, 18, 48, 48, 26,141, 16,
-208,236, 60, 21,120, 60,  6, 92,134,197,179,216, 44, 40, 85, 44, 68,124, 14,120, 92,  2, 80, 22, 54,230, 60,136,  4, 28, 48,132,
-176,  6,114, 34, 75,170,132,128,207,128,199, 23, 16, 70,173, 17, 23, 60, 28,185, 26,177, 88, 44, 32, 14, 86, 66,136,248,127,163,
-105,129,201,251,227, 53, 10,224,153,123,120, 12, 92,189,102,141, 32, 59, 55, 23,253,250,245, 75,127,115,239, 94,176, 12,184,215,
-174,140, 99,202,112,185, 53,218,183,107,135,176,  7, 15,144,147,145,241, 10,120,239, 28, 47,112,117, 29,180,126,253,122,129, 44,
- 63, 31,253,250,246,205,124,121,227,198,222,184, 92,156, 50, 68,100,  1,  0,135,207,119,214,241,102,101,100,100,  0,239, 83, 72,
- 56, 85,178, 88,245,205,144,174,200,201,203,199,236, 31,131,217,  7,207, 18,167, 92,143, 71,143,163, 18,100,253,155,158,193,132,
-144,241,250, 31,131, 44, 90, 58,171,147, 33, 98, 69, 46,151, 87,184,  0,250, 88,206,226, 68,226,199,114,254, 29,193,229,114,243,
- 95,188,120, 33,176,178,119,101,237, 45,121, 25, 94,163,111, 88,  3,128,157,  5, 55, 75,169, 81,177, 18,137,  4, 66,161, 48,223,
- 16,174,252,252,252,113,132,144,229,  0,234,112,185,220, 83,187,119,239, 38,193,193,193,182,254,254,254, 81,132,144,  4, 95, 95,
- 95,207,221,187,119, 91,  1,192,198,141, 27,233,193,131,  7,187,226,125,202,140, 18, 77,202, 73, 73, 73, 75,120, 60,222,173,111,
-190,249,102,147, 64, 32,176, 53, 55, 55,183,191,126,253, 58,201, 87, 82, 52,157, 31, 91, 16,137,104, 37,102,112,109,158, 21,198,
-143, 31,207,137,140,140, 12,  4,112,170, 20,206, 57, 66,161,240,250,203,151, 47,215, 90,187, 53,172,100,238, 57,223,186,249,188,
-231,  0,  0, 79,  7, 30, 24,109,191,152,153,153,137,212,212, 84, 76,158, 60,217, 54, 42, 42,106, 14,128,203, 37,113,198,199,199,
- 95, 21, 10,133,241, 79,159, 62,109,207,227,241,  4,230,230,230, 77, 67, 67, 67, 73,190,130, 69,253, 57,177, 72,207,125,223, 78,
- 59, 11, 46,238, 47,115,194,148, 41, 83,184,175, 94,189,250, 17, 64,155, 98, 59, 51,134,  9,210, 23, 89,179,103,207, 14,  7, 80,
-133, 16, 82,104,104, 84,163,209,144,161, 67,135, 62,  1, 80,119,214,172, 89,118,148,210,153,132,144,116, 74,233,246,191,250, 90,
-178,178,178, 90, 53, 97,194,  4, 28, 60,120, 16, 25, 25, 25,235,  1, 32, 59, 59,123,221,190,125,251, 14,140, 27, 55, 14,191,255,
-254,251, 42, 66,200, 31,  6, 88,181,190, 28, 60,120, 48,206,158, 61,139, 75,151, 46,253, 64, 41,141, 40,225, 30,125, 73,  8,153,
-115,252,248,241, 13,254,254,254,248,245,215, 95,187,  1, 40,205, 65,182,115,215,174, 93,113,230,204, 25,188,123,247,110, 75,113,
- 21, 50, 51, 51,183,158, 56,113,162, 69,215,174, 93, 17, 24, 24,216, 25,192,159,  6,116,144, 62,214,214,214,187, 55,108,216,208,
-180, 94,189,122, 24, 50,100, 72,190, 82,169,236, 54,107,214,172,147,251,247,239,183,220,179,103, 79,147,241,227,199,223, 33,132,
-140,165,148,222, 54,232,161,195,225,172,220,180,105,211,152,246,237,219, 99,230,204,153,234,115,231,206,245,166,148,158, 39,132,
- 68,205,158, 61,251,244,154, 53,107, 56,171, 87,175, 30,195,225,112, 82, 53, 26,205,231, 18,215,203, 54,110,220,216,162, 75,151,
- 46,120,253,250, 53,110,223,190, 13,165, 82,249,123,104,104,232,181,234,213,171, 47, 83, 40, 20, 39,205,205,205, 71, 88, 90, 90,
-250, 54,108,216,240, 11, 66,136,153, 33,126,122,132,144,204,168,168, 40,115, 71, 71, 71,240,120, 60, 60,122,244,  8,142,142,142,
-  0,128,148,148, 20,212,173, 91, 23, 28, 14,  7,153,153,153,  0, 12,123,216, 18,194, 60,142,122, 35,169, 98,103,105, 14,104, 68,
-120,248, 60, 30,149, 28,108,161, 33, 12,146,146, 18,209,176,150, 27,  8, 33,200,124,151,  4, 66,200, 19, 67, 56, 53,148, 13,123,
- 43, 73,169,108,111, 41, 68,189, 22, 93,236, 67,255, 72, 13,182,174,218,102, 60,151, 67, 56, 66,145,213,246, 49, 35, 71, 58,176,
- 44, 69,230,187,100,112, 25,230,238,231, 56, 65, 33,111, 17,215,174,170,232, 97,151, 49,203, 27, 18, 10, 42, 83, 98,207,175,201,
-200, 48,  3, 26,110, 92,176,192,198,222,193,  1, 67,134, 12, 97,223, 37, 36, 92,204,  3, 12, 74,172, 92,165,122,117, 39, 11, 75,
- 75,220,188,121, 19, 28, 32,  6,  0,118,  1, 62, 65,179,103,219, 59, 58, 59, 99,244,152, 49,108,242,219,183,127,202, 12, 24,210,
- 45,196, 91,181, 42, 79,199,203,104,121, 19, 57,152, 54,171,183,159,208, 92, 44,196,202,109, 71, 17,151, 38, 61, 16,154,136,109,
-255, 70, 99, 71,153, 22,173,146,156,207,222, 59, 85,155,149, 42, 86, 68, 34, 81,129, 53,197,136, 55,189, 10,231, 44, 11,159,130,
-243, 51, 42,231,121,132,144,227,132,144,121,113,113,113,207,198,140, 25,163, 84, 43,229, 57,183,150, 87,153,251, 32,208,107, 82,
-232, 18,151, 73,199,166, 89,207,205,203, 74,207,217,184,113,163, 42, 46, 46,238,153,254, 58,101, 92, 44,111, 41,165,103,126,251,
-237,183,173, 33, 33, 33,168, 91,183, 46, 34, 34, 34, 28,165, 82,105,163, 39, 79,158,216,249,248,248, 32, 56, 56, 24,  7, 15, 30,
- 92, 75, 41,189, 80,154,200,210,179,182, 93, 76, 76, 76,172, 25, 27, 27, 91,205,198,198, 70,101, 99, 99,131,162,145,136,217, 50,
- 22,239, 50,179, 96,103,103, 15, 43, 43, 43,239,178, 56,229,114,249,153,196,196,196, 26,172,109,173,182, 53,210,214,103,133,173,
-116, 71,216, 74,119,156,153,227, 10, 23, 27,  1, 50, 50, 50,144,154,154,138,212,212, 84, 16, 66,160, 82,169,106, 27,192, 25, 45,
-145, 72,126,121,251,246,237,113, 39, 39, 39, 88, 90, 90,130,  2, 72,202, 84, 33,124,181, 15,194, 87,251, 32, 41, 83,133,236,156,
- 28,120,121,121,193,210,210,178,110, 73, 67, 70,149, 43, 87,238, 62,104,208, 32, 75,  0,208, 10,168,142,148,210, 73,197,124, 38,
-170,213,234,214,186,186,223,127,255,189, 29,128,174,127,241,245,196, 33,132,124, 51,110,220,184, 38, 34,145,  8,155, 55,111,142,
-  6,176, 87,215,215,111,221,186,245, 57,  0, 76,155, 54,205, 23,192, 76, 82, 66, 38,104, 29,248,124,126,227,218,181,107, 35, 52,
- 52, 20,  0,142,150,177,249,195,183,110,221, 66,245,234,213, 33, 18,137,154,150, 81,215,219,221,221, 29,207,159, 63,  7,128,135,
- 37,212,121,248,252,249,115,184,187,187,131, 16,226,109,192,190,247,233,210,165,203,227,203,151, 47, 55,109,213,170, 21,198,140,
- 25,163,184,115,231, 78,119, 74,233,181,135, 15, 31,118, 24, 58,116,168,180, 70,141, 26,184,122,245,170,207,208,161, 67,111,113,
- 56,156,229,  6,112,142, 14,  8,  8,152,247,213, 87, 95, 33, 32, 32,128, 30, 58,116,104,  8,165,244,188,246,254, 58,119,224,192,
-129,225, 43, 86,172,160,125,251,246,197,210,165, 75,231, 17, 66, 38,149, 97, 29,202,210,104, 52,144, 74,165,  6,153,228, 13,173,
-239,224,224,240,101,151, 46, 93,176,112,225, 66, 84,174, 92, 25, 39, 79,158,164,  0, 78, 81, 74,175,203,229,242,182,148,210, 53,
- 82,169,244, 88,104,104, 40, 58,119,238,204, 71,225, 41, 70, 74,132, 90,173,126,115,249,242,101,165,189,189,253,127,217, 59,239,
-248, 40,138, 62,140, 63,115,189,223,165, 93, 58,  9,161,165,210,149, 42, 77, 67, 13,130,162,162, 72, 17, 17, 68,  1, 17, 68,138,
-162,188, 22,  4,105,162,136, 20, 69, 80,154,226,139, 82, 34, 34,200, 43,136,212,132, 22, 66,  8, 36,164,151,203,165,151, 75,114,
-109,231,253, 35,185, 24, 98,202, 93,130, 10, 56,223,207,103, 63,119, 55,187,251,220,236,236,222,238,115, 83,126,  3, 95, 95, 95,
-248,249,249,161,172,172, 12,133,133,133,232,216,177, 35,122,245,234,133,178,178, 50, 28, 60,120,208, 84, 88, 88,104,215,128, 21,
-139,177,236,171, 35,145,123,139, 92, 85, 18,248,186,107,208,218,199,  5,165,133,185,208,103,103,162,123,136, 31,  6,116,111,141,
-220, 34, 35, 14, 31,220, 91, 80, 82, 98,248,202,174, 86,128, 74,195,214,163, 63, 29, 40,114, 86,137, 16, 24, 20,134,241, 83, 94,
-233,218,181, 91,207, 35, 61,122,244, 61,188,114,249,  7,157, 31,233, 29, 66,210,115, 43,112,232,224,247,  5, 69,197,197, 91,255,
-137,123,253, 59,  0,191, 66,211,225,196,250,125,209, 95,132, 14,155,250, 69, 92, 58,214,  2,128,153,207, 15, 30, 49,124, 56,210,
-211,211,177,119,207,158, 44,  3,112,217, 94, 61,153, 76,198,  3,128,162,162, 34, 72,170,102, 11,129,  5,  8,138,136,136,128, 62,
- 55, 23, 59,119,236,208, 31,  2, 46, 56,146,207, 71,  1,177, 92, 86, 85, 33, 88, 84, 84,  4,  2, 20,  3,  0, 17, 96, 68,143,142,
-237,161,207, 47,198,255,206,197,149,182, 46,199,203,141,233,220,171, 29,225, 27,235,163,213, 84,125,104,238,220,185,115, 33,145,
- 72,224,229,229, 85, 99,142,108,102, 69, 44, 22,195,203,203, 11, 22,139,  5,187,119,239,  6,128, 70,251, 48,240,128,202, 81, 47,
- 45,227, 42,205,212, 32, 20, 10,239,136,102,117,205, 65,229, 19,243,191,228,126, 58, 85,255,160,152,230,104,222,  3,244,168,142,
-137,213,131, 82, 90,144,156,156,156, 62,246,137, 81, 69, 41,  9, 87,179,203, 10, 51,179,138,243,210,178,210,110,197,100,191,177,
- 96,110, 81,122,122,122, 90,117, 44,173, 30,153,153,153,163,  0,216,219,215, 96,238,216,177, 99, 55, 76,157, 58,149, 94,186,116,
-  9,  0, 16, 29, 29,141,231,158,123,142, 78,156, 56,113, 45,128,133,205,200,119, 89,121,121,249,109,181, 33, 38, 43, 87,211,228,
- 87, 92, 92,140,204,204, 76, 24,141, 70,187, 29,241,141,195,171,226,243,147,163,204, 97,254, 10,132,249, 43, 16,220, 74, 14, 98,
- 41,173, 49, 89,122,189, 30, 58,157, 14,  0, 42, 28,200,103,113,101,101,229,109,249,172,221, 52, 89, 92, 92,140,236,236,108, 88,
-173, 86, 99,  3, 63, 58, 46, 35, 35,227,240, 55,223,124, 83,  2,  0, 43, 87,174,204, 39,132,252, 66,  8,217, 80,207,178, 81, 32,
- 16,252,110,219,118,213,170, 85,249,  0,126,252, 27, 77,214, 99,157, 58,117, 42, 88,180,104,209,167,179,103,207,198,198,141, 27,
-145,149,149,181,144, 82,106,177, 29, 75,110,110,238,252,245,235,215, 99,242,228,201,120,251,237,183, 87,117,235,214,173,152, 16,
-210, 96,255, 10,173, 86,235, 43, 16,  8,112,225,194,133, 98, 74,105, 98, 19, 55,168,236, 11, 23, 46,232,  8, 33,240,242,242,106,
-219,216,182, 46, 46, 46,237, 84, 42, 21, 50, 50, 50,128,234,127,204,245,144,156,153,153, 73,197, 98, 49,188,189,189,219, 55,117,
-252,206,206,206,243,191,248,226, 11,193,213,171, 87,241,200, 35,143,164, 31, 63,126,124, 48,165,244,215,234,188, 93,136,142,142,
-238, 55,104,208,160,248, 35, 71,142,224,195, 15, 63, 36, 93,186,116,121,169, 41, 77,127,127,255,233,207, 63,255, 60,214,173, 91,
-135, 77,155, 54,189, 68, 41,221, 83,231,152,119,173, 95,191,254,149, 77,155, 54, 97,202,148, 41,  8,  8,  8,104,180,175, 74, 74,
- 74,202,130,129,  3,  7, 70,223,184,113,195,174, 25, 15,236,217,158, 16, 50,168,103,207,158,237,202,203,203,177,117,235,214,196,
-118,237,218,157,223,179,103,207, 92, 74,105,221,  7,246, 15,123,247,238,197,132,  9, 19,208,165, 75,151,173,132,144,113,118, 60,
-116, 50, 83, 82, 82,114, 47, 95,190,204,241,249,124,248,250,250, 98,196,136, 17,120,230,153,103,208,165, 75, 23,228,228,228,224,
-196,137, 19, 92, 66, 66, 66,174,189,129, 75,115,227,255,119, 32, 41, 41,254,247, 11,103, 79,152,  5,124, 30,252,188, 92,240,120,
-120, 87,188,240,100, 95,116, 15,246, 65, 74, 78, 57,142, 29, 59, 98, 78, 74, 74, 60,109,207,136, 67,155,102, 92,236,229, 83, 87,
- 47,156,180,  8,  5,  4,193, 65, 29,176,248,141,249,206, 75,151, 44,112,234,208,214, 15,151,111, 21,225,200,207,135,204,153,233,
-105,255,251,167, 70, 28, 30,  7, 68, 74,  9, 81,240,121, 60, 88,121,146, 50,126,117, 32,227,142,161,161,129, 30,158,158,136,140,
-140,  4, 15,184,230,144,158,178,170, 21,188,180,180, 20, 54,189,118, 65, 65, 65,126,254,254,248, 49, 50, 18,124,142,187, 54,192,
-193,  0,163,215,  1,121,109, 93,  2, 84,188,220, 10,170,118,173,220,131,156, 53, 10,156,189,124, 19,149,102,122,110, 71,  1, 12,
-184, 15,169,219,108,232, 72,211,225,202,141, 27, 55,246,248,226,139, 47,  6,207,157, 59, 87, 57,105,210, 36, 72,165, 82, 24, 12,
-  6,248,250,250,194,106,181,226,167,159,126, 66, 84, 84, 84, 41,199,113, 71, 80, 39,108,  0, 33, 36,188,118,172,141,159, 18,168,
-172, 42,  8,166,161,199,190,167,158,186, 35,154,  0,160,188,201,169,243, 90, 27,183,127,178,231,228,152,157,135, 47,144, 87,199,
- 13,224,117, 15,106,  5,  0,240,240,240,128, 90,173,118, 88,243, 14, 20,250, 95,174, 89,187, 89, 55, 43, 43,235, 58, 33, 36,103,
-234,212,169,193,182,142,239, 18,137,164, 34, 45, 45, 45,206, 22,176,180,238, 62, 77,229,179,122,100,220,203,132,144,253, 69, 69,
- 69,135, 95,127,253,117, 44, 93,186, 20,  7, 14, 28,232, 71, 41,253,189, 57,199, 78, 41,181,  6,  4,  4, 20,158, 59,119,206,163,
-125, 72, 55,180,113, 23,162,255, 91, 55, 64, 41,133,171,156,162,164, 48, 31, 23, 47, 94, 64, 73, 73,201, 89, 71,242,233,237,237,
- 93,152,147,147,227,230,238,238,142,252,252,124,228,230,230,214,152,172,130,130,  2,228,231,231, 83, 66,110,143,217,210,132,102,
- 89,187,118,237, 12,113,113,113, 98,143, 86,237,209,214, 93,132,158,111, 92,  7, 40,133,159, 11, 15, 37,197,133, 56,125,250, 52,
-138,138,138,126,109, 72,147,227,184,215,198,143, 31,207,  7, 48,241,245,215, 95,119,  1,208,101,254,252,249, 71,234,142, 44, 20,
- 10,133, 31,109,223,190,189,163,173,137,113,193,130,  5,107, 40,165, 95,252, 93,215,146,171,171,235,107,145,145,145, 42,147,201,
-132, 79, 62,249,  4,107,214,172,217, 66, 41,253,111,157,242,136,228,243,249,235,121, 60,222,140,153, 51,103,226,197, 23, 95,148,
- 63,240,192,  3,115,107,213,122,221,166,153,145,145,177,184,123,247,238,111,231,228,228,216,213,177,255,198,141, 27,211,186,119,
-239,190, 56, 39, 39,103, 69, 99,231, 72,161, 80, 40,172, 86, 43,146,146,146, 10, 40,165, 69, 13,156,187,138, 14, 29, 58,100, 88,
-173, 86, 95,185, 92,238,210,212,245, 89, 80, 80,240,193,  3, 15, 60,240, 31,157, 78,247, 51,128,247,235,134, 42,161,148, 94, 34,
-132,132,205,158, 61,123,214,242,229,203,199,100,103,103,239,110, 74, 51, 37, 37,229,131, 65,131,  6,189, 21, 31, 31,191,173,161,
- 38, 96, 74,233,167,132, 16,211,246,237,219, 95, 74, 74, 74, 90,214,152, 38,165,244, 32, 26,105, 74,175, 71,187,222,237,107,107,
-242,249,252,249,203,151, 47,231,109,220,184, 17,148,210, 85, 22,139,165,161,124, 94,230,243,249, 95,245,237,219,119,210,158, 61,
-123,164, 97, 97, 97, 47,  2,216,213,212,245, 89, 89, 89,121,230,212,169, 83,189,146,147,147,221,  6, 13, 26, 36,178,253, 65, 41,
- 44, 44,196,193,131,  7, 77,  9,  9,  9,185,101,101,101,103, 28,185,135, 88,140,197,227, 78, 29,219,183, 43,249, 70, 76,239,129,
-195, 70, 59, 27, 77,190,144,228,241, 81,152,151,141,159, 14,238, 45, 72, 74, 74, 60,109, 48, 20,142,115, 68,211, 84, 89,244,204,
-233,255,237,223,157,158, 20,215,171,255,160, 17,206, 21, 70,127, 72, 68, 60,228,233, 50,240, 83,228,190,252,164,164, 91,191, 85,
-152, 43,159,251,167,238,243,252,  0,188,207,207,142,154, 58,253,209,174,144, 57,251, 94, 20,  2,159,244,  5,100,110, 30, 30,162,
-234,223, 14,148, 64,138,189,154, 58, 64,220,190,186,149,202, 96, 48, 64,  8, 24, 39,  3, 66,173, 86, 43,  3,128,248,248,120,200,
-129, 84, 71,243, 89, 10, 40,228,181,116,121,128, 33, 79,  0,159,118,106,  5,  1,128,244,236, 60, 24,205,248, 29,247, 41,182, 26,
-173,250, 58,197, 55, 21,124,145,  3,112,134, 16,114, 97,197,138, 21,253, 55,108,216, 48, 96,206,156, 57,226,225,195,135,227,252,
-249,243, 56,122,244,168,177,178,178,242, 56,128, 19,182,225,234,118,100,230,142,107,238,169,218,110,108, 15, 31,226, 98,226,202,
-191, 95,188,225,208, 67,173, 61,157,168,197,202,145,152,152, 24,156, 58,117,202, 97,205,123,228,196,  2, 64, 15, 66,200,190,234,
-164,115,117, 67, 56, 84, 55, 23,246,168, 85, 11,214,156,175,186, 40, 16,  8,104, 80, 80, 16,169,158,158, 38,182, 37,249,206,206,
-206,126,118,193,130,  5, 63,127,251,221,247,130,189, 51,101, 40, 42, 44,170,186,  1, 23, 21, 34, 79,151,137, 99,199,142,153,244,
-122,253,139,142,104,234,245,250,151,199,141, 27,247,237,174, 93,187, 92, 10, 10, 10,106,140, 86, 65, 65,  1, 56,142,195,150, 45,
- 91,244, 58,157,238, 77, 71, 52,179,178,178,166,188,254,250,235,223,237,220,253,157,224,200, 66,103,148,218,162,207,151, 21, 33,
- 47, 39, 11,  7, 14, 28,168,204,205,205,157,221,200,249,177, 18, 66, 94, 29, 63,126, 60,108,102,235,244,233,211,175, 16, 66, 62,
-181, 61,204,  9, 33,109, 94,123,237,181,113,181,250,113,173,249,187, 71, 29,230,229,229, 45,237,213,171,215, 26,189, 94,127,203,
-100, 50,237,161,148,214, 27,165,223,106,181,206, 36,132,156,250,244,211, 79,159,113,115,115,243,200,206,206, 94,238,232,131,190,
-165,219,167,166,166, 46,234,222,189,251, 27, 57, 57, 57,203, 27,219,238,230,205,155, 51,170,183, 91, 97,199,119, 71,  2,136,108,
- 98, 27, 11,170, 66, 91,124,100,231,241,236,  3,176,207,206,155,243,230,127,226,254, 97,181, 90, 87,118,234,212, 73,106,177, 88,
-142, 52,213, 31,144,227,184,105,115,230,204, 73,159, 55,111, 94, 87,171,213,106,111, 25,152,  1,252, 70,  8,241,206,205,205, 13,
-  0,224,  4,  0,  2,129,160,176,176,176,176, 89, 83,240, 84, 71,124, 31,233, 22, 56,248,209, 61,219,214, 77,166,156,181, 11, 33,
-  4,124, 30,255, 82, 73,169, 97,171,189, 53, 89,245,104, 70,184,  5, 14,126, 84,151,145,242, 60,229,172, 93,  0,194,  9,  4,188,
-203, 37,165,134,207,245,113, 71,254,177, 41,120, 38,249,192,131, 79, 48,243,231, 47,223, 34,  0, 48,248,249,247,186,182,118,130,
-210, 82,136, 66, 84,223,203,179,178,178,224, 12, 20,216,171, 41,  7, 44,166,234, 62,209,  5,249,249,144,  3,229, 89,  0,191,186,
-223, 37,209,101,103, 67,233,128, 94,205, 31, 70,192, 84, 71,183,  8,128,196,214,157, 51,191,184, 12,176, 63,174,225, 61, 89,163,
- 85,247,125,141,225,162,148,218,189,160,106,126,189,199,  1, 44,171,126, 85, 52,177,125,248, 63,161,217,203, 11,129,225,237, 72,
-220,136, 32, 65, 62,128, 39,239,132,166,163,203, 95,173,  9, 96,155,209,104,164, 21, 21, 21,212, 96, 48,208,210,210, 82, 10, 96,
- 95, 61,251,236,203,204,204,164,233,233,233, 52, 53, 53,149, 38, 39, 39, 83,  0, 59, 28,205,167, 90,173,254,226,169,167,158,178,
- 10,133,194,117,119,226,216, 93, 92, 92,150,245,236,217,211,244,241,199, 31,211, 31,126,248,129,126,254,249,231,116,230,204,153,
-180, 99,199,142,149, 78, 78, 78,227,154,163,233,233,233,185, 56, 40, 40, 40,111,203,150, 45,116,199,142, 29,116,237,218,181,244,
-205, 55,223,180,250,250,250,102,171, 84,170,161,205,209,116,119,119,223,252,208, 67, 15,153, 54,111,222, 76,143, 28, 57, 66,119,
-238,220, 73, 95,123,237, 53, 26, 28, 28, 92,169, 80, 40,158,176, 71, 19,  0, 95, 32, 16,172,158, 62,125,122,182,183,183,119,100,
-157,117,242,208,208,208,243,227,199,143,207,  4,176,224,126,185, 62,153, 38,211,100,154, 45,215,156,232,  3,239,193,109, 96,161,
- 39,222,162,244,196, 91, 52,188, 13,184,103,189,225, 67,  1,190, 92, 36,122,102, 64,191,126,171, 68,192, 51, 20,224,215,187,212,
-151, 79,128, 47,229,243,159,236,219,179,231, 42, 17, 48,206,182,173,148,207,127,114, 64,191,126,171,132,124,254,132,  6,245, 26,
-209,164,  0, 95, 36, 16, 44,232,219,187,247,106,  1,240,134, 45,237,225, 54,228,218,107,195, 90,209,126,254,228,230,  4,119,200,
- 27,211,108,160, 60,166,221,233, 50,254,187,151,101,131, 74,187,  0,  0, 32,  0, 73, 68, 65, 84,230, 94,  8,130, 59,125, 17,222,
- 43,154,119,145,209,106, 95,221,108,179,175,214,178,168,158,125, 22,213,217,102, 27,128,246,205, 44, 79,217,157, 60,118,  0,157,
-220,220,220, 14,181,111,223, 94,223,186,117,235, 76,103,103,231, 93,  0,124, 91,168, 25,230,233,233,249,181,135,135,199, 13, 47,
- 47,175,203,110,110,110, 31,  1,208,182, 68, 83, 40, 20,246,244,240,240,248, 53, 32, 32,160,208,223,223, 95,231,230,230,182, 27,
-128,135,163,154,  0,188, 80,207, 77,  5,128,  8,128, 23,123,232, 48, 77,166,201, 52,235, 26,152, 33,109,177,124,112, 27, 88,  6,
-183,129,117, 72,  0, 62,170,109, 80, 70,  2,178,230,154,162,231,  0, 73,221,237,155,212,107, 66,147,  2,252, 62,128,178,238, 62,
- 35,124, 17,106,143,230,189,108,180,108,249,172,190,207, 79,171,157,111, 65,115,170,200,108,157,100,239,112, 51,216, 61,161,121,
- 23, 53, 27,222,  4,154, 14,246, 86, 59,130,252, 29,248,206,242, 59,124, 12, 87,  0, 12,191,195,154, 87,  1, 76,188,147,154, 38,
-147,233, 44,236,156,247,173,137,188,101, 53,210, 23, 46, 11, 12,  6,131,113,251,205,193,122, 24, 88, 56, 56,144,124, 34,176,130,
-119, 40,145,102,212, 94,125,224,143,192,199, 14,105,  2,192,214,122,166,231,105,150, 94, 45, 77,  0,248, 29,248,211,236, 14,145,
- 45,236,110,114,143, 61,155,179,  0,108,118, 40,142, 22,131,193, 96, 48, 24,140,127,142, 35,241,148,253, 17,187,251,137,172, 51,
-199, 97, 77,191, 79,  2, 32,188,  1, 87,102,247, 72, 10, 66, 72,120, 51, 92,223, 81,166,201, 52,153, 38,211,100,154, 76,147,105,
-254,187, 52,107,105, 55, 52,176,226,122, 29,189,127,100,192,200,157,130,216, 63,109, 89, 51,196,239,209,176,  9, 76,147,105, 50,
- 77,166,201, 52,153, 38,211,252,123, 53,239,105, 51,117,123,109,214,109,  6,145, 53, 29, 50, 24, 12,  6,131,193, 96,180,128,198,
-106,221,152,209, 98, 48, 24, 12,  6,131,193,104,  1,132, 16, 47, 84, 77, 81, 21, 89,253,202,106,180, 24, 12,  6,131,193, 96, 48,
-238, 16, 17,148,210,205,245, 69,134,231,177,178, 97, 48, 24, 12,  6,131,193,104, 25,182,126, 90,142,206,117,200, 96, 48, 24, 12,
-  6,131,193,104,132,198,250,104,221, 54,234, 48, 50, 50,146, 70, 68, 68, 16, 86,100, 12,  6,131,193, 96, 48,254,  9,238, 69, 47,
- 82,171,  6, 43,178,110,112,106, 86,163,197, 96, 48, 24, 12,  6,131,209,  2,108, 53, 90,213,205,134,183,165, 49,163,197, 96, 48,
- 24, 12,  6,131,209,  2, 26,171,209,226,  1, 85,213,116,172,152, 24, 12,  6,131,193, 96,252, 83,220,203, 94,132, 82,186,185,122,
-249,211,116, 73,182, 81,135,  3,171, 15,112, 32, 59,213, 12,  6,131,193, 96, 48,254,  1,238, 89, 47, 66,  8,241,170,110, 54,244,
-250,211,186,191,114, 10, 30,  6,131,193, 96, 48, 24,140,251, 29, 91,252,172,250,226,104, 49,163,197, 96, 48, 24, 12,  6,131,209,
- 66,163, 85, 55,173,166,131, 60, 51, 90, 12,  6,131,193, 96, 48, 24,127, 13,127,105,100,120, 66, 72, 56,211,100,154, 76,147,105,
- 50, 77,166,201, 52,153,230,253,142, 45, 34,124,221,218, 45, 22,222,129,193, 96, 48, 24, 12,  6,163,133, 38,171,118,223,172,218,
-159,217, 92,135, 12,  6,131,193, 96, 48, 24,127, 17,172, 70,139,193, 96, 48, 24, 12,  6,163,  5,216, 70, 28,214,254,204,140, 22,
-131,193, 96, 48, 24, 12,198, 29, 52, 91,245,165,179,166, 67,  6,131,193, 96, 48, 24,140, 22, 80,183,  3,124,237,207,  4, 64,120,
-  3,206,236,168,  3, 95,224,240,232,131,166,244,153, 38,211,100,154, 76,147,105, 50, 77,166,121,255,105, 54,165,237,136,255,184,
-155,140, 86, 67,157,225, 65, 41,253,203, 22,  0,225, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,247,243,  2,192, 11,192,
-180, 90,139,151,109, 29,235,163,197, 96,220,235,124, 71,248, 40,  8, 10,  0,165,222,224,139,179,144,117, 37, 17, 75, 40,215, 98,
- 77, 93,168, 63,100,102, 15, 88,164,122,232, 46,223,106,177, 38,131,193, 96,220,167, 84, 79, 38, 93,111, 31, 45,102,180, 24,140,
-123, 29,125,112, 32,  4, 88,  6, 30,188, 64, 77,  9,208,134, 46,  3, 16,211, 98, 77, 17,247, 62,172, 60, 95, 80, 83, 60,220,131,
-150,  3,136,101,133,205, 96, 48, 24,142,241,183,119,134, 23, 10,133, 58, 66,  8, 39,145, 72,246,214, 55,203, 53,131,113,167, 32,
-132,120,201,100,178,189,132, 16, 78, 36, 18,233,238,203,131,220,222, 73, 14,158,117,184,209,204,249,252,116,165,208,221, 80,105,
- 13,  4,207, 50,  2, 95,  6, 42, 91,164, 41, 32, 67, 42, 76,156,223,142,115,  6,143, 50,163, 37,  4, 20, 45,211,252,227,156, 56,
-137,197,226,159,  8, 33,110,236, 10,189, 63,  9, 37,228,129,  7,133,194,121, 33,132, 60, 76,  8, 33,172, 68, 24,204,104,253,205,
- 88, 44, 22,247,180,180, 52,242,249,231,159,143, 82,171,213,  9, 66,161,112, 17, 33, 68,244,111, 41,112,149, 74,117, 74,163,209,
-232,156,156,156,116, 26,141,230, 66, 83,233,247,169,  1, 10,116,119,119, 79,113,117,117,141,175,157,238,222,101, 76,159, 14, 15,
- 77, 90,226, 22,246,216,128, 22,234,139,132, 66,225, 34,141, 70,147,176,121,243,230, 81,113,113,113,196,108, 54,187,223,151,133,
- 89,193,121,128,199, 31,116, 53,203, 32,207, 42, 54,123, 68, 39, 27, 84,  0,127, 32,140,104,254,159,152, 34,206,  3,160, 15, 95,
- 74, 47, 87,156,202,215,122,252,150, 88,169,  6,143, 55,  8, 21,196,179,197, 55, 28, 30,239, 37,142,227,  6,139, 68,162, 87,217,
-237,247,254, 68,204,227,245, 61, 53,106,212,251, 11, 58,119,158, 21, 12, 60, 90,159,217, 34, 85,188, 18, 18, 18,114,136, 16,242,
-204, 29,188,183,124, 24, 28, 28,156, 65,  8,153,205,206,  4,227,111,126,174,117,179,253,193,175,158,134,199,203, 97,163,245, 84,
- 27,210,247,217,182,228,248,211,109, 72,201, 51,109, 73,233,196,182,228,228,147,109,200,195,205,201,144,175,175, 47,250,244,233,
-195, 79, 77, 77,149,205,158, 61,123,137, 68, 34, 73, 34,132, 12,109,142,150, 92, 46,143, 82, 40, 20,105, 66,161,240,182,188, 40,
- 20,138, 40,165, 82,153, 38, 20, 10, 31,169,157,174, 86,171, 79,105, 52, 26,157, 90,173,190,208,128, 17,138,210,104, 52, 58,149,
- 74, 21, 85, 59, 93, 40, 20, 62,162, 82,169,210,213,106,117,221,244,135,213,106,117, 90,221,244,134, 16, 10,133,190,105,105,105,
-238,233,233,233,238, 98,177,216,163,118,122,106,106,170,123, 90, 90,218,109,233,142, 32, 20, 10, 31, 86, 42,149,105, 10,133, 34,
-170,190,244,186,199,212, 16,181,202,238, 97,123,210, 29, 53, 89, 67,134, 12, 57,153,149,149,229,231,228,228,228, 84,123,157,139,
-198,105,232,215, 91,214,207, 29, 61, 98,200, 75,238,161,143,119,106,166,254, 80,137, 68,146, 52,103,206,156, 37,233,233,233,178,
-158, 61,123,242, 69,162,251,212,199,127, 23, 42,  2,225,250,115,148,106,175,101, 84,104, 35, 70, 61, 37,184,152, 86,174, 53, 91,
-173, 46,  0,127, 32,182,181,150, 52, 75, 83, 96,238,199, 81,234,241, 75,178, 80, 59,104,236, 44,254,177,100,129,214,108,181,186,
-130,135,  1,205,210,252,227,220,  8,249,124,254,220,213,171, 87,243,  0,204, 36,132,136,255, 77, 55,226,158, 62,196,231,145,246,
-130,115,221,189, 73,223, 59,120,115, 15, 83, 40, 20, 81,132,144,192,187,229, 56,141, 28,119,125,247,173, 91,135, 39,180,107, 55,
-114, 65,231,206,147,235,154,173,234,247, 11,150, 47, 95, 62,241,234,213,171,218, 54,109,218,188, 72,  8,225,221,129,178, 88,187,
-124,249,242,249, 87,175, 94,245, 14,  8,  8,120,231, 78,104, 50,238, 46, 15, 15, 96, 16,128,  8,  0,143,  0,232, 81,253,254,193,
-234, 37,  2, 85, 81, 20,106,191, 62, 88,189,175,109,125,207,  6, 52, 34,234,217,239,193, 90,233,181, 63,215,125,111,163, 91,245,
-107, 68,245,104,195,136,154, 53,148, 82, 28, 60,120,144,214,126,173,187, 60, 29,128,255,204,234,227, 99,184,118, 96, 39, 45, 77,
-187, 69, 11,226, 46,210,139,155, 63,160,179, 30,212, 26,158,109,131, 15, 29,236,153, 79, 41,165,116,199,142, 29,244,216,177, 99,
-180,176,176,144,198,198,198,210, 30, 61,122,148,203,229,242, 95,  0, &nb