merged in Ricardo Pedroso's new pdf2swf gui
[swftools.git] / wx / pdf2swf.gui.old.py
old mode 100644 (file)
new mode 100755 (executable)
similarity index 91%
rename from wx/images.py
rename to wx/pdf2swf.gui.old.py
index 3c8abbe..3657a30
@@ -1,8 +1,8 @@
 #!/usr/bin/env python
+# -*- coding: ISO-8859-15 -*-
 #
-# images.py
-#
-# graphical user interface for pdf2swf: image data
+# pdf2swf.py
+# graphical user interface for pdf2swf
 #
 # Part of the swftools package.
 # 
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 
+import sys
+import wx
+import os
+sys.path+=["../lib/python"]
+import gfx
+import images
+import stat
+
+basedir = os.getcwd()
+
+gfx.verbose(3)
+
+#try:
+#    gfx.setparameter("wxwindowparams", "1")
+#except:
+#    gfx.setoption("wxwindowparams", "1")
+
+class StaticData:
+    def __init__(self):
+        self.simpleviewer_bitmap = wx.BitmapFromImage(wx.ImageFromData(images.simpleviewer_width,images.simpleviewer_height,images.simpleviewer_data))
+        self.raw_bitmap = wx.BitmapFromImage(wx.ImageFromData(images.raw_width,images.raw_height,images.raw_data))
+        self.motionpaper_bitmap = wx.BitmapFromImage(wx.ImageFromData(images.motionpaper_width,images.motionpaper_height,images.motionpaper_data))
+        self.rfxview_bitmap = wx.BitmapFromImage(wx.ImageFromData(images.rfxview_width,images.rfxview_height,images.rfxview_data))
+staticdata = None
+
+HTMLTEMPLATE = """<html>
+<body style="padding: 0px; margin: 0px">
+<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+        width="%(width)s"
+        height="%(height)s"
+        codebase="http://active.macromedia.com/flash5/cabs/swflash.cab#version=%(version)d,0,0,0">
+        <param name="MOVIE" value="%(swffilename)s">
+        <param name="PLAY" value="true">
+        <param name="LOOP" value="true">
+        <param name="QUALITY" value="high">
+        <param name="FLASHVARS" value="%(flashvars)s">
+          <embed src="%(swffilename)s" width="%(width)s" height="%(height)s"
+                 play="true" ALIGN="" loop="true" quality="high"
+                 type="application/x-shockwave-flash"
+                 flashvars="%(flashvars)s"
+                 pluginspage="http://www.macromedia.com/go/getflashplayer">
+          </embed>
+</object>
+</body>
+</html>
+"""
+
+def error(msg):
+    dlg = wx.MessageDialog(None, msg, "Error", style=wx.OK, pos=wx.DefaultPosition)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+def savefilestatus(msg):
+    dlg = wx.MessageDialog(None, msg, "Save file status", style=wx.OK, pos=wx.DefaultPosition)
+    dlg.ShowModal()
+    dlg.Destroy()
+
+def swfcombine(params):
+    exe = "swfcombine"
+    if os.path.sep == '/':
+        locations = [os.path.join(basedir, "swfcombine"), 
+                     "/usr/local/bin/swfcombine",
+                     "/usr/bin/swfcombine"
+                    ]
+    else:
+        locations = [os.path.join(basedir, "swfcombine.exe"), 
+                     "c:\\swftools\\swfcombine.exe"]
+        params = ['"'+p+'"' for p in params]
+
+    for e in locations:
+        if os.path.isfile(e):
+            exe = e
+            break
+
+    if hasattr(os,"spawnv"):
+        print "spawnv",exe,params
+        ret = -1
+        try:
+            ret = os.spawnv(os.P_WAIT, exe, ["swfcombine"]+params)
+        except:
+            ret = -1
+        if not ret:
+            return
+
+    cmd = '"' + exe + '"' + " " + (" ".join(params))
+    print "system",cmd
+    ret = os.system(cmd)
+    if ret&0xff00:
+        error("Couldn't execute swfcombine.exe- error code "+str(ret))
+
+ICON_SIZE = 64
+
+EVENT_PAGE_CHANGE = 1
+EVENT_FILE_CHANGE = 2
+EVENT_STATUS_TEXT = 4
+
+class ProgressFrame(wx.Dialog):
+    def __init__(self, parent, message=""):
+        wx.Dialog.__init__(self, parent, -1, "Progress", size=(350, 150))
+        panel = wx.Panel(self, -1)
+        self.count = 0
+        
+        self.msg = wx.StaticText(panel, -1, message, (20,25))
+        self.gauge = wx.Gauge(panel, -1, 100, (20, 50), (250, 25))
+
+        self.gauge.SetBezelFace(3)
+        self.gauge.SetShadowWidth(3)
+
+        self.Bind(wx.EVT_WINDOW_DESTROY, self.close, id=wx.ID_CLOSE)
+
+    def setProgress(self, num):
+        self.gauge.SetValue(int(num))
+
+    def close(self, event):
+        print "close"
+
+
+def swapextension(filename,newext):
+    basename,ext = os.path.splitext(filename)
+    return basename + "." + newext
+
+def has_different_size_pages(doc):
+    width,height = 0,0
+    for i in range(1,doc.pages+1):
+        page = doc.getPage(i)
+        if i==1:
+            width,height = page.width,page.height
+        else:
+            if abs(width-page.width)>2 or \
+               abs(height-page.height)>2:
+                   return 1
+    return 0
+
+
+options = []
+gfx_options = {}
+
+class Option:
+    def __init__(self, parameter, text, options, default, mapping=None):
+        self.parameter = parameter
+        self.text = text
+        self.options = options
+        self.default = default
+        self.mapping = mapping
+        self.control = None
+        self.enabled = 1
+        self.register()
+
+    def generateControl(self, panel):
+        if type(self.options) == type((0,)):
+            control = wx.Choice(panel, -1, choices=self.options)
+            control.SetSelection(self.default)
+        elif self.options == "slider":
+            control = wx.Slider(panel, -1, self.default, 0, 100, size=(100, -1), style=wx.SL_HORIZONTAL|wx.SL_LABELS|wx.SL_TOP)
+        elif self.options == "spinner":
+            control = wx.SpinCtrl(panel, -1, str(self.default))
+        else:
+            control = wx.Choice(panel, -1, choices=["broken"])
+            control.SetSelection(0)
+
+        self.control = control
+        return self.control
+
+    def getSettings(self):
+        value = ""
+        if type(self.options) == type((0,)):
+            value = self.options[self.control.GetCurrentSelection()]
+            if self.mapping and value in self.mapping:
+                value = str(self.mapping[value])
+            if value == "yes": 
+                value = "1"
+            elif value == "no":
+                value = "0"
+            return {self.parameter:value}
+        elif self.options == "slider" or self.options == "spinner":
+            value = str(self.control.GetValue())
+            return {self.parameter:value}
+
+    def register(self):
+        global options
+        options += [self]
+
+class Option2(Option):
+
+    def __init__(self, parameter, text, options, default, mapping=None):
+        Option.__init__(self, parameter, text, options, default, mapping)
+        self.enabled = 0
+
+    def generateControl(self, panel):
+        p = wx.Panel(panel, -1)
+        #p.SetOwnBackgroundColour('#ff0000')
+        h = wx.BoxSizer(wx.HORIZONTAL)
+        control = wx.Choice(p, -1, choices=self.options)
+        control.SetSelection(self.default)
+        text = wx.StaticText(p, -1, self.text)
+        h.Add(text,1,wx.EXPAND|wx.ALIGN_LEFT|wx.TOP, 5)
+        h.Add(control,1,wx.EXPAND|wx.ALIGN_RIGHT|wx.ALIGN_TOP)
+        self.control = control
+        if self.enabled:
+            control.Enable()
+        else:
+            control.Disable()
+        p.SetSizer(h)
+        p.Fit()
+        return p 
+    
+    def Disable(self):
+        self.enabled=0
+        if self.control:
+            self.control.Disable()
+
+    def Enable(self):
+        self.enabled=1
+        if self.control:
+            self.control.Enable()
+    
+    def getSettings(self):
+        if not self.enabled:
+            return {}
+        return Option.getSettings(self)
+
+class ChooseAndText(Option):
+    def __init__(self, parameter, text, options, default, editselection, textvalue=""):
+        Option.__init__(self, parameter, text, options, default)
+        self.editselection = editselection
+        self.selection = default
+        self.textvalue = textvalue
+        self.enabled = 0
+        self.choice = None
+
+    def generateControl(self, panel):
+        p = wx.Panel(panel, -1)
+        h = wx.BoxSizer(wx.HORIZONTAL)
+        control = wx.Choice(p, -1, choices=self.options)
+        p.Bind(wx.EVT_CHOICE, self.OnChoice, control)
+        control.SetSelection(self.default)
+        text = wx.StaticText(p, -1, self.text)
+        if self.selection == self.editselection:
+            edittext = wx.TextCtrl(p, -1, self.textvalue)
+            self.textvalue = ""
+        else:
+            edittext = wx.TextCtrl(p, -1, "")
+            edittext.Disable()
+        p.Bind(wx.EVT_TEXT, self.OnText, edittext)
+        h.Add(text,1,wx.EXPAND|wx.ALIGN_LEFT|wx.TOP, 5)
+        h.Add(control,1,wx.EXPAND|wx.ALIGN_RIGHT)
+        h.Add(edittext,1,wx.EXPAND|wx.ALIGN_RIGHT)
+        self.choice = control
+        self.edittext = edittext
+        if self.enabled:
+            control.Enable()
+        else:
+            control.Disable()
+        p.SetSizer(h)
+        p.Fit()
+        return p 
+
+    def OnText(self, event):
+        text = self.edittext.GetValue()
+        text2 = "".join(c for c in text if c.isdigit())
+        if text2!=text:
+            self.edittext.SetValue(text2)
+
+    def OnChoice(self, event):
+        self.selection = self.choice.GetCurrentSelection()
+        if self.selection != self.editselection:
+            if not self.textvalue and self.edittext.GetValue():
+                self.textvalue = self.edittext.GetValue()
+            self.edittext.SetValue("")
+            self.edittext.Disable()
+        else:
+            if self.textvalue and not self.edittext.GetValue():
+                self.edittext.SetValue(self.textvalue)
+                self.textvalue = ""
+            self.edittext.Enable()
+    
+    def Disable(self):
+        self.enabled=0
+        if not self.choice:
+            return
+        self.choice.Disable()
+        self.edittext.Disable()
+
+    def Enable(self):
+        self.enabled=1
+        if not self.choice:
+            return
+        self.choice.Enable()
+        if self.choice.GetCurrentSelection() == self.editselection:
+            if self.textvalue and not self.edittext.GetValue():
+                self.edittext.SetValue(self.textvalue)
+                self.textvalue = ""
+            self.edittext.Enable()
+        else:
+            self.edittext.Disable()
+    
+    def getSettings(self):
+        if not self.enabled:
+            return {}
+        if self.choice.GetCurrentSelection() != self.editselection:
+            value = self.options[self.choice.GetCurrentSelection()]
+        else:
+            value = self.edittext.GetValue().strip()
+        return {self.parameter:value}
+
+class TextOption:
+    def __init__(self, parameter, label, default=""):
+        self.parameter = parameter
+        self.label = label
+        self.default = default
+        self.register()
+
+    def generateControl(self, panel):
+        v = wx.BoxSizer(wx.VERTICAL)
+        self.control = wx.TextCtrl(panel, -1, self.default, size=(250, -1))
+        self.control.Fit()
+        return self.control
+
+    def getSettings(self):
+        settings = {}
+        for items in self.control.GetValue().split(" "):
+            if "=" in items:
+                l = items.split("=")
+                if len(l) == 2:
+                    settings[l[0]] = l[1]
+        return settings
+
+    def register(self):
+        global options
+        options += [self]
+
+class RadioOption(Option):
+    def __init__(self, text, options):
+        self.text = text
+        self.options = options
+        self.selected = "==nothing=="
+        self.radios = []
+        self.register()
+        
+    def generateControl(self, panel):
+        control = wx.Panel(panel, -1)
+        vsplit = wx.BoxSizer(wx.VERTICAL)
+        for i in range(len(self.options)/2):
+            text = self.options[i*2]
+            if i == 0:
+                c = wx.RadioButton(control, -1, text, style=wx.RB_GROUP)
+            else:
+                c = wx.RadioButton(control, -1, text)
+            control.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, c)
+            self.radios += [c]
+            vsplit.Add(c)
+        control.SetSizer(vsplit)
+        control.Fit()
+        self.control = control
+        return control
+
+    def OnRadio(self, event):
+        self.selected = event.GetEventObject().GetLabel()
+
+    def getSettings(self):
+        for i in range(len(self.options)/2):
+            if self.options[i*2] == self.selected:
+                return self.options[i*2+1]
+        return self.options[1]
+
+class BitmapWindow(wx.Window):
+    def __init__(self, parent, image):
+        wx.Window.__init__(self, parent, -1)
+        self.image = image
+        self.SetMinSize((image.GetWidth()+2, image.GetHeight()+2))
+        self.SetMaxSize((image.GetWidth()+2, image.GetHeight()+2))
+        self.SetSize((image.GetWidth()+2, image.GetHeight()+2))
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Update()
+    def OnPaint(self, event):
+        dc = wx.PaintDC(self)
+        self.Draw(dc)
+    def Draw(self,dc=None):
+        if not dc:
+            dc = wx.ClientDC(self)
+        dc.DrawRectangleRect((0, 0, self.image.GetWidth()+2, self.image.GetHeight()+2))
+        dc.DrawBitmap(self.image, 1, 1, False)
+
+class ImageRadioOption(Option):
+    def __init__(self, text, options):
+        self.text = text
+        self.options = options
+        self.selected = "==nothing=="
+        self.radios = []
+        self.register()
+        self.ids = []
+        
+    def generateControl(self, panel):
+        control = wx.Panel(panel, -1)
+        vsplit = wx.BoxSizer(wx.VERTICAL)
+        first = 1
+        for image,text,params,selected,extraoptions in self.options:
+            hsplit = wx.BoxSizer(wx.HORIZONTAL)
+
+            v = wx.BoxSizer(wx.VERTICAL)
+
+            name,text = text.split("- ")
+
+            c = wx.CheckBox(control, -1, name)
+            control.Bind(wx.EVT_CHECKBOX, self.OnRadio, c)
+
+            # radio buttons crash windows when clicked on- even without event bindings.
+            # This is caused by the subpanel which is created for extra options
+            # (I tried this with a empty Panel(), and even that crashed)
+            #if first:
+            #    c = wx.RadioButton(control, -1, name, style=wx.RB_GROUP)
+            #else:
+            #    c = wx.RadioButton(control, -1, name)
+            #control.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, c)
+
+            self.ids += [c.GetId()]
+
+            first = 0
+
+            if "disable" in text:
+                c.Enable(False)
+            if selected:
+                self.selected = c.GetId()
+                c.SetValue(True)
+            else:
+                c.SetValue(False)
+            self.radios += [c]
+
+            bitmap = BitmapWindow(control, image)
+            t = wx.StaticText(control, -1, text, size=(400,50))
+            
+            v.Add(c, 0, wx.EXPAND)
+            v.Add(t, 0, wx.EXPAND|wx.LEFT, 20)
+           
+            for o in extraoptions:
+                cx = o.generateControl(control)
+                if selected:
+                    o.Enable()
+                else:
+                    o.Disable()
+                v.Add(cx, 0, wx.EXPAND|wx.LEFT, 20)
+            
+            v.SetMinSize((330,170))
+            
+            hsplit.Add(bitmap, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.ALIGN_TOP, 5)
+            hsplit.Add(v, 0, wx.EXPAND)
+            vsplit.Add(hsplit, 0, wx.EXPAND)
+
+        control.SetSizer(vsplit)
+        control.Fit()
+        self.control = control
+        return vsplit
+
+    def OnRadio(self, event):
+        self.selected = event.GetEventObject().GetId()
+        for c in self.radios:
+            if c.GetId() == self.selected:
+                c.SetValue(1)
+            else:
+                c.SetValue(0)
+        i = 0
+        for image,text,params,selected,extraoptions in self.options:
+            if self.ids[i] == self.selected:
+                for xo in extraoptions:
+                    xo.Enable()
+                pass
+            else:
+                for xo in extraoptions:
+                    xo.Disable()
+                pass
+            i = i + 1
+        event.ResumePropagation(0)
+
+    def getSettings(self):
+        i = 0
+        for image,text,params,s,extraoptions in self.options:
+            id = self.ids[i]
+            i = i + 1
+            if id == self.selected:
+                return params
+        return {}
+
+
+class OptionFrame(wx.Dialog):
+
+    def __init__(self, parent):
+        wx.Dialog.__init__(self, parent, -1, "Options")
+
+        #self.nb = wx.Notebook(self, -1)#, wx.Point(0,0), wx.Size(0,0), wxNB_FIXEDWIDTH)
+        self.nb = wx.Notebook(self, -1)
+
+        self.needreload = 0
+        
+        options0 = [RadioOption('Rendering mode', 
+                        ["Convert polygons to polygons and fonts to fonts", {},
+                         "Convert fonts to fonts, everything else to bitmaps", {"poly2bitmap":"1"},
+                         "Convert everthing to bitmaps", {"poly2bitmap":"1", "bitmapfonts":"1"}
+                        ])]
+
+        mp_options = []
+        sv_options = [Option2('flashversion', 'Flash version:', ('4','5','6','7','8'), 2),
+                      Option2('transparent', 'Make SWF file transparent:', ('no','yes'), 0),
+                     ]
+
+        raw_options = [Option2('flashversion', 'Flash version:', ('4','5','6','7','8','9'), 2),
+                       Option2('insertstop', 'Insert stop after each frame:', ('no','yes'), 0),
+                       Option2('transparent', 'Make SWF file transparent:', ('no','yes'), 0),
+                      ]
+        rfxview_options = [ChooseAndText('rfxwidth', 'Width:', ('same as PDF','fullscreen','custom'),1,2,"600"),
+                           ChooseAndText('rfxheight', 'Height:', ('same as PDF','fullscreen','custom'),1,2,"800"),
+                           Option2('rfxzoomtype', 'Initial zoom level:', ('Original resolution','Show all','Maximum width/height'),2),
+                          ]
+
+        options4 = [ImageRadioOption('Select Paging GUI', 
+                        [(staticdata.raw_bitmap, "No Viewer- The SWF will be in \"raw\" format, with each page a seperate frame. Use this if you want to add a viewer yourself afterwards.", {}, 0, raw_options),
+                         (staticdata.simpleviewer_bitmap, "SimpleViewer- A tiny viewer, which attaches directly to the SWF, and provides small previous/next buttons in the upper left corner", {"simpleviewer":"1", "insertstop":"1"}, 0, sv_options),
+                         (staticdata.rfxview_bitmap, "rfxView- A more sophisticated viewer with zooming and scrolling.", {"rfxview":"1", "flashversion":"8"}, 1, rfxview_options),
+                         #(staticdata.motionpaper_bitmap, "MotionPaper- A highly sophisticated viewer with page flipping. (disabled in this evaluation version)", {}, 0, mp_options),
+                         #(staticdata.motionpaper_bitmap, "Your advertisement here- Are you are company who developed a viewer for pdf2swf, or who offers commercial PDF hosting service? Place your advertisement or demo viewer here, or allow pdf2swf to upload SWFs directly to your site! contact sales@swftools.org for details.", {}, 0, mp_options),
+                        ])]
+
+        options1 = [Option('zoom', 'Resolution (in dpi):', "spinner", 72),
+                    Option('fontquality', 'Font quality:', "slider", 20),
+                    Option('storeallcharacters', 'Insert full fonts in SWF file:', ('no','yes'), 0),
+                    Option('splinequality', 'Polygon quality:', "slider", 100),
+                    Option('jpegquality', 'JPEG quality:', "slider", 75),
+                    Option('jpegsubpixels', 'JPEG image resolution:', ('same as in PDF', '1x', '2x', '4x'), 0, {"same as in PDF": 0, "1x": 1, "2x": 2, "3x": 3}),
+                    Option('ppmsubpixels', 'non-JPEG image resolution:', ('same as in PDF', '1x', '2x', '4x'), 0, {"same as in PDF": 0, "1x": 1, "2x": 2, "3x": 3}),
+                   ]
+        
+        
+        options3 = [TextOption('_additional_', 'Additional options')]
+
+        panel1 = [('Rendering options', options0,''),
+                  ('Quality',options1,'v')]
+        panel3 = [('Select paging GUI', options4,'')]
+        panel4 = [('Additional options', options3,'')]
+
+        panels = [('Quality', panel1),
+                  ('Viewer', panel3),
+                  ('Advanced', panel4)]
+
+        for name,poptions in panels:
+            panel = wx.Panel(self.nb, -1)
+            self.nb.AddPage(panel, name)
+        
+            vsplit = wx.BoxSizer(wx.VERTICAL)
+      
+            for name,options,align in poptions:
+                optiongroup = wx.StaticBox(panel, -1, name)
+                optiongroupsizer= wx.StaticBoxSizer(optiongroup, wx.VERTICAL)
+                optiongroup.SetSizer(optiongroupsizer)
+
+                if align == 'v':
+                    grid = wx.GridSizer(rows=len(options), cols=2, hgap=3, vgap=3)
+                    optiongroupsizer.Add(grid, 1, wx.EXPAND, 0)
+                else:
+                    grid = wx.GridSizer(rows=len(options), cols=1, hgap=3, vgap=3)
+                    optiongroupsizer.Add(grid, 1, wx.EXPAND, 0)
+
+                for option in options:
+                    if align=='v':
+                        t = wx.StaticText(panel, -1, option.text)
+                        grid.Add(t, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT)
+                    optionbox = option.generateControl(panel)
+                    grid.Add(optionbox, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT)
+
+                vsplit.Add(optiongroupsizer, 0, wx.EXPAND, 0)
+
+            #hs = wx.BoxSizer(wx.HORIZONTAL)
+            #hs.Add(gobutton, 0, wx.ALIGN_CENTER, 0)
+            gobutton = wx.Button(panel, -1, "Apply")
+            self.Bind(wx.EVT_BUTTON, self.Apply, gobutton)
+
+            vsplit.Add(gobutton, 0, wx.ALIGN_CENTER|wx.ALL, 0)
+            
+            panel.SetSizer(vsplit)
+            panel.Fit()
+
+        self.nb.Fit()
+
+        self.Fit()
+        
+
+    def updateOptions(self):
+        global options,gfx_options
+        a = []
+
+        # FIXME: we clear *our* options- but gfx will still have
+        #        stored the old ones. Critical for options in the "imageradio" section.
+        gfx_options.clear()
+        i = 0
+        print "----- options ------"
+        for option in options:
+            for k,v in option.getSettings().items():
+                gfx_options[k] = v
+                gfx.setparameter(k,v)
+                print k,v
+            i = i + 1
+
+        # TODO: filter out "global" options, and do this only if
+        # pdf layer is affected
+    
+    def Apply(self, event):
+        self.updateOptions()
+        self.Hide()
+        self.needreload = 1
+
+
+class State:
+    def __init__(self):
+        self.pdf = None
+        self.page = None
+        self.pagenr = 1
+        self.pagebitmap = None
+        self.bitmap_width = 0
+        self.bitmap_height = 0
+        self.bitmap_page = 0
+        self.filename = None
+        self.status_text = None
+        self.lastsavefile = "output.swf"
+        self.lasthtmlfile = "index.html"
+
+        self.listeners = []
+
+    def onEvent(self,event_type, function):
+        self.listeners += [(event_type,function)]
+    def loadPDF(self,filename):
+        self.filename = filename
+        self.lastsavefile = swapextension(filename,"swf")
+        self.lasthtmlfile = swapextension(filename,"html")
+
+        self.pdf = gfx.open("pdf",filename)
+        if(has_different_size_pages(self.pdf)):
+            # just let the user know- for now, we can't handle this properly
+            dlg = wx.MessageDialog(app.frame, """In this PDF, width or height are not the same for each page. This might cause problems if you export pages of different dimensions into the same SWF file.""", "Notice", style=wx.OK, pos=wx.DefaultPosition)
+            dlg.ShowModal()
+            dlg.Destroy()
+
+        self.changePage(1)
+
+        for type,f in self.listeners:
+            if type&EVENT_PAGE_CHANGE or type&EVENT_FILE_CHANGE:
+                f()
+        self.setStatus("File loaded successfully.")
+
+    def saveSWF(self, filename, progress, pages=None, html=0):
+        if html:
+            basename,ext = os.path.splitext(filename)
+            if not ext:
+                html = basename + ".html"
+                filename = basename + ".swf"
+            elif ext.lower() != ".swf":
+                html = filename
+                filename = basename + ".swf"
+            else:
+                html = basename + ".html"
+                filename = filename
+
+        steps = 100.0 / (self.pdf.pages*2 + 3)
+        pos = [0]
+        
+        self.lastsavefile = filename
+        if html:
+            self.lasthtmlfile = html
+
+        swf = gfx.SWF()
+        for k,v in gfx_options.items():
+            swf.setparameter(k,v)
+        if pages is None:
+            pages = range(1,self.pdf.pages+1)
+        pdfwidth,pdfheight=0,0
+        for pagenr in pages:
+            page = self.pdf.getPage(pagenr)
+            pdfwidth = page.width
+            pdfheight = page.height
+            swf.startpage(page.width, page.height)
+            page.render(swf)
+            swf.endpage()
+        swf.save(filename)
+        if not os.path.isfile(filename):
+            error("Couldn't create file "+filename)
+
+        if gfx_options.get("rfxview",None):
+            rfxview = os.path.join(basedir, "rfxview.swf")
+            if not os.path.isfile(rfxview):
+                error("File rfxview.swf not found in working directory")
+            else:
+                size1 = os.stat(filename)[stat.ST_SIZE]
+                swfcombine([rfxview,"viewport="+filename,"-o",filename])
+                size2 = os.stat(filename)[stat.ST_SIZE]
+                if size1 == size2:
+                    error("Couldn't add viewer to file "+filename)
+        
+        if html:
+            version = int(gfx_options.get("flashversion", "8"))
+            swf = gfx.open("swf", filename)
+            page1 = swf.getPage(1)
+
+            width,height = str(page1.width),str(page1.height)
+
+
+            w = gfx_options.get("rfxwidth","")
+            if w == "fullscreen":    width = "100%"
+            elif w == "same as PDF": width = pdfwidth+40
+            elif w.isdigit():        width = w
+            else:                    width = pdfwidth
+            
+            h = gfx_options.get("rfxheight","")
+            if h == "fullscreen":    height = "100%"
+            elif h == "same as PDF": height = pdfheight+70
+            elif h.isdigit():        height = h
+            else:                    height = pdfwidth
+
+            flashvars = ""
+            zoomtype = gfx_options.get("rfxzoomtype","")
+            if zoomtype=="Original resolution":
+                flashvars = "zoomtype=1"
+            elif zoomtype=="Show all":
+                flashvars = "zoomtype=2"
+            elif zoomtype=="Maximum width/height":
+                flashvars = "zoomtype=3"
+
+            swffilename = os.path.basename(filename)
+            fi = open(html, "wb")
+            fi.write(HTMLTEMPLATE % locals())
+            fi.close()
+
+
+    def changePage(self,page):
+        self.pagenr = page
+        self.page = self.pdf.getPage(self.pagenr)
+        for type,f in self.listeners:
+            if type&EVENT_PAGE_CHANGE:
+                f()
+
+    def getPageIcon(self,pagenr):
+        page = self.pdf.getPage(pagenr)
+        return wx.BitmapFromImage(wx.ImageFromData(ICON_SIZE,ICON_SIZE,page.asImage(ICON_SIZE,ICON_SIZE)))
+        #return wx.BitmapFromImage(wx.ImageFromData(8,8,"0"*(64*3)))
+
+    def getPageImage(self, width, height):
+        if self.bitmap_width == width and self.bitmap_height == height and self.bitmap_page == self.pagenr:
+            return self.pagebitmap
+        else:
+            self.bitmap_width = width
+            self.bitmap_height = height
+            self.bitmap_page = self.pagenr
+            self.pagebitmap = wx.BitmapFromImage(wx.ImageFromData(width,height,self.page.asImage(width,height)))
+            #self.pagebitmap = wx.BitmapFromImage(wx.ImageFromData(8,8,"0"*(64*3)))
+            return self.pagebitmap
+
+    def setStatus(self,text):
+        self.status_text = text
+        for type,f in self.listeners:
+            if type&EVENT_STATUS_TEXT:
+                f()
+
+state = State()
+
+class PageListWidget(wx.ListCtrl):
+    def __init__(self,parent):
+        wx.ListCtrl.__init__(self,parent,style=wx.LC_ICON|wx.LC_AUTOARRANGE)
+        #self.SetMinSize((ICON_SIZE+8,-1))
+        #self.SetMaxSize((ICON_SIZE+8,-1))
+        #self.SetSize((ICON_SIZE+8,-1))
+        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.SelectItem)
+        state.onEvent(EVENT_FILE_CHANGE, self.reload)
+        state.onEvent(EVENT_PAGE_CHANGE, self.switchPage)
+        self.reload()
+        self.dontcare = 0
+        #self.Bind(wx.EVT_IDLE, self.OnIdle)
+        #print dir(self)
+
+    def processFiles(self):
+        if self.filepos >= 0 and self.filepos < state.pdf.pages:
+            icon = state.getPageIcon(self.filepos+1)
+            self.imglist.Add(icon)
+            self.InsertImageStringItem(self.filepos, str(self.filepos+1), self.filepos)
+            self.filepos = self.filepos + 1
+        self.Update()
+
+    def OnIdle(self,event):
+        self.processFiles()
+        event.ResumePropagation(0)
+
+    def reload(self):
+        self.filepos = -1
+        self.DeleteAllItems()
+        self.imglist = wx.ImageList(ICON_SIZE,ICON_SIZE,mask=False)
+        self.AssignImageList(self.imglist,wx.IMAGE_LIST_NORMAL)
+        self.filepos = 0
+        while state.pdf and self.filepos < state.pdf.pages:
+            self.processFiles()
+
+    def switchPage(self):
+        if self.dontcare:
+            self.dontcare = 0
+            return
+        for i in range(0,self.GetItemCount()):
+            self.Select(i, False)
+        self.Select(state.pagenr-1, True)
+        self.Focus(state.pagenr-1)
+        self.Update()
+
+    def SelectItem(self,event):
+        self.dontcare = 1 #ignore next change event
+        state.changePage(event.GetIndex()+1)
+
+
+helptxt = """
+This is the SWF preview window.
+Here, you will see how the SWF file generated from
+the PDF file will look like. Changing parameters in
+the configuration which affect the appeareance of
+the final SWF will affect this preview, too, so you
+can always evaluate the final output beforehand.
+"""
+
+        
+class OnePageWidget(wx.Window):
+    def __init__(self,parent):
+        wx.Window.__init__(self, parent)
+        self.SetSize((160,100))
+        self.SetMinSize((160,100))
+        self.Fit()
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Bind(wx.EVT_SIZE, self.OnSize)
+        self.Bind(wx.EVT_KEY_DOWN, self.key_down)
+        state.onEvent(EVENT_PAGE_CHANGE, self.OnPageChange)
+    
+    def key_down(self, event):
+        if state.pdf:
+            if event.GetKeyCode() == 312 and state.pagenr>1:
+                state.changePage(state.pagenr-1)
+            elif event.GetKeyCode() == 313 and state.pagenr<state.pdf.pages:
+                state.changePage(state.pagenr+1)
+
+    def OnPageChange(self):
+        self.Refresh()
+
+    def OnSize(self, event):
+        self.Refresh()
+
+    def Draw(self,dc=None):
+        global bitmap
+        if not dc:
+            dc = wx.ClientDC(self)
+        posx = 0 
+        posy = 0
+        window_width,window_height = self.GetSize()
+        dc.Clear()
+
+        if not state.pdf or not state.page:
+            return
+
+        if state.page.width * window_height > state.page.height * window_width:
+            width = window_width
+            height = window_width * state.page.height / state.page.width
+            posy = (window_height - height) / 2
+        else:
+            width = window_height * state.page.width / state.page.height
+            height = window_height
+            posx = (window_width - width) / 2
+
+        dc.DrawBitmap(state.getPageImage(width,height), posx,posy, False)
+        #state.getPageImage(
+
+    def OnPaint(self, event):
+        dc = wx.PaintDC(self)
+        self.Draw(dc)
+
+class Pdf2swfFrame(wx.Frame):
+    #def __init__(self):
+        #wx.Window.__init__(self, None, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize)
+    def __init__(self,application):
+        wx.Frame.__init__(self, None, -1, style = wx.DEFAULT_FRAME_STYLE)
+        self.application = application
+        
+        self.SetTitle("pdf2swf")
+        self.createMenu()
+        self.createToolbar()
+        self.createStatusBar()
+        self.createMainFrame()
+        
+        self.SetSize((800,600))
+
+        self.options = OptionFrame(None)
+        self.options.Show(False)
+        self.options.updateOptions()
+
+        state.onEvent(EVENT_STATUS_TEXT, self.status_change)
+        self.html = 0
+       
+        #self.table = wx.AcceleratorTable([(wx.ACCEL_ALT,  ord('X'), 333),])
+        #self.SetAcceleratorTable(self.table)
+
+        self.Bind(wx.EVT_IDLE, self.OnIdle)
+        self.Bind(wx.EVT_CLOSE, self.menu_exit)
+        return
+
+    def menu_open(self,event):
+        global state
+        if state.filename:
+            dlg = wx.FileDialog(self, "Choose PDF File:", style = wx.DD_DEFAULT_STYLE, defaultFile = state.filename, wildcard = "PDF files (*.pdf)|*.pdf|all files (*.*)|*.*")
+        else:
+            dlg = wx.FileDialog(self, "Choose PDF File:", style = wx.DD_DEFAULT_STYLE, wildcard = "PDF files (*.pdf)|*.pdf|all files (*.*)|*.*")
+
+        if dlg.ShowModal() == wx.ID_OK:
+            self.filename = dlg.GetFilename() 
+            state.loadPDF(self.filename)
+
+    def menu_save(self,event,pages=None):
+        html,self.html = self.html,0
+        global state
+        if not state.pdf:
+            return
+        print "html",html
+        if not html:
+            defaultFile = state.lastsavefile
+        else:
+            defaultFile = state.lasthtmlfile
+        dlg = wx.FileDialog(self, "Choose Save Filename:", style = wx.SAVE | wx.OVERWRITE_PROMPT, defaultFile = defaultFile, wildcard = "all files (*.*)|*.*|SWF files (*.swf)|*.swf|HTML template (*.html)|*.html")
+        
+        if dlg.ShowModal() == wx.ID_OK:
+            filename = os.path.join(dlg.GetDirectory(),dlg.GetFilename())
+        
+            #progress = ProgressFrame(self, "Saving %s File '%s'..." % (html and "HTML" or "SWF", filename))
+            #progress.Show(True)
+            progress = None
+            state.saveSWF(filename, progress, pages, html)
+            #progress.Destroy()
+    
+    def menu_save_selected(self,event):
+        if not state.pdf:
+            return
+        p = []
+        for i in range(0,self.pagelist.GetItemCount()):
+            if self.pagelist.IsSelected(i):
+                p += [i+1]
+        self.menu_save(event, pages=p)
+
+    def menu_save_html(self,event):
+        self.html = 1
+        return self.menu_save(event)
+
+    def menu_save_selected_html(self,event):
+        self.html = 1
+        return self.menu_save_selected(event)
+
+    def menu_exit(self,event):
+        self.application.Exit()
+
+    def menu_selectall(self,event):
+        for i in range(0,self.pagelist.GetItemCount()):
+            self.pagelist.Select(i, True)
+    def menu_options(self,event):
+        self.options.Show(True)
+
+    def status_change(self):
+        self.statusbar.SetStatusText(state.status_text)
+
+    def OnIdle(self,event):
+        if self.options.needreload:
+            self.options.needreload = 0
+            if state.pdf:
+                # reload
+                state.loadPDF(state.filename)
+
+    def createMenu(self):
+        menubar = wx.MenuBar()
+
+        menu = wx.Menu();menubar.Append(menu, "&File")
+        menu.Append(wx.ID_OPEN, "Open PDF\tCTRL-O");self.Bind(wx.EVT_MENU, self.menu_open, id=wx.ID_OPEN)
+        menu.AppendSeparator()
+        menu.Append(wx.ID_SAVE, "Save SWF (all pages)\tCTRL-W");self.Bind(wx.EVT_MENU, self.menu_save, id=wx.ID_SAVE)
+        menu.Append(wx.ID_SAVEAS, "Save SWF (selected pages)\tCTRL-S");self.Bind(wx.EVT_MENU, self.menu_save_selected, id=wx.ID_SAVEAS)
+        menu.AppendSeparator()
+        menu.Append(2001, "Save HTML template (all pages)\tCTRL-H");self.Bind(wx.EVT_MENU, self.menu_save_html, id=2001)
+        menu.Append(2002, "Save HTML template (selected pages)");self.Bind(wx.EVT_MENU, self.menu_save_selected_html, id=2002)
+        menu.AppendSeparator()
+        menu.Append(wx.ID_EXIT, "Exit\tCTRL-Q");self.Bind(wx.EVT_MENU, self.menu_exit, id=wx.ID_EXIT)
+
+        menu = wx.Menu();menubar.Append(menu, "&Edit")
+        menu.Append(wx.ID_SELECTALL, "Select All\tCTRL-A");self.Bind(wx.EVT_MENU, self.menu_selectall, id=wx.ID_SELECTALL)
+        menu.AppendSeparator()
+        menu.Append(wx.ID_PREFERENCES, "Options\tCTRL-R");self.Bind(wx.EVT_MENU, self.menu_options, id=wx.ID_PREFERENCES)
+
+        menu = wx.Menu();menubar.Append(menu, "&Help")
+
+        self.SetMenuBar(menubar)
+
+
+    def createToolbar(self):
+
+        tsize = (16,16)
+        self.toolbar = self.CreateToolBar(wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_FLAT)
+
+        self.toolbar.AddSimpleTool(wx.ID_OPEN,
+                                   wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize),
+                                   "Open")
+        self.toolbar.AddSimpleTool(wx.ID_SAVE,
+                                   wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize),
+                                   "Save selected pages")
+        self.toolbar.AddSimpleTool(wx.ID_PREFERENCES,
+                                   wx.ArtProvider.GetBitmap(wx.ART_LIST_VIEW, wx.ART_TOOLBAR, tsize),
+                                   "Options")
+        #self.toolbar.AddSeparator()
+        self.toolbar.Realize()
+
+    def createStatusBar(self):
+        self.statusbar = self.CreateStatusBar(1)
+
+    def createMainFrame(self):
+        
+        if 0:
+            self.pagelist = PageListWidget(self)
+            self.onepage = OnePageWidget(self)
+            hsplit = wx.BoxSizer(wx.HORIZONTAL)
+            pagelistbox = wx.StaticBox(self, -1, "Pages")
+            pagelistboxsizer= wx.StaticBoxSizer(pagelistbox, wx.VERTICAL)
+            pagelistboxsizer.Add(self.pagelist, proportion=1, flag=wx.EXPAND)
+            onepagebox = wx.StaticBox(self, -1, "Page 1")
+            onepageboxsizer= wx.StaticBoxSizer(onepagebox, wx.VERTICAL)
+            onepageboxsizer.Add(self.onepage, proportion=1, flag=wx.EXPAND)
+            hsplit.Add(pagelistboxsizer, 0, wx.EXPAND, 0)
+            hsplit.Add(onepageboxsizer, 1, wx.EXPAND, 0)
+            self.SetAutoLayout(True)
+            self.SetSizer(hsplit)
+            hsplit.Fit(self)
+            hsplit.SetSizeHints(self)
+        else:
+            hsplit = wx.SplitterWindow(self, style=wx.SP_3D|wx.SP_LIVE_UPDATE)
+            #p1 = wx.Panel(hsplit,-1, style=wx.SUNKEN_BORDER)
+            #p2 = wx.Panel(hsplit,-1, style=wx.SUNKEN_BORDER)
+            self.pagelist = PageListWidget(hsplit)
+            self.onepage = OnePageWidget(hsplit)
+            #hsplit.SplitVertically(p1,p2, sashPosition=64)
+            hsplit.SplitVertically(self.pagelist, self.onepage, sashPosition=ICON_SIZE*3/2)
+            hsplit.SetMinimumPaneSize(10)
+
+class MyApp(wx.App):
+    def __init__(self):
+        wx.App.__init__(self, redirect=False, filename=None, useBestVisual=False)
+        
+        #state.loadPDF("sitis2007.pdf")
+        #state.loadPDF("wxPython-Advanced-OSCON2004.pdf")
+        global staticdata
+        staticdata = StaticData()
+
+        self.frame = Pdf2swfFrame(self)
+        self.SetTopWindow(self.frame)
+        self.frame.Show(True)
+
+        #self.frame = TestFrame(self)
+        #self.frame.Show(True)
+
+    def OnInit(self):
+        return True
+
+        
 raw_width=100
 raw_height=100
 raw_data="""\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfa\xfa\xfa\xff\xff\xffQQQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"""+\
@@ -399,3 +1460,6 @@ rfxview_data="""\xcb\xcb\xcb\xcb\xcb\xcb\xcc\xcc\xcc\xcb\xcb\xcb\xcc\xcc\xcc\xcb
 """\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd"""+\
 """\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf3\xf3\xf3\xa6\xa6\xa6\xf7\xf7\xf7\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xc3\xc3\xc3\xb2\xb2\xb2\xec\xec\xec\xff\xff\xff\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfb\xfb\xfb\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfa\xfa\xfa\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfb\xfb\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xff\xff\xff\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfb\xfb\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xd0\xd0\xd0\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xf5\xf5\xf5\xc0\xc0\xc0\xc4\xc4\xc4\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xf2\xf2\xf2\xc8\xc8\xc8\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfa\xfa\xfa\xc5\xc5\xc5\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xc9\xc9\xc9\xef\xef\xef\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf5\xf5\xf5\xb0\xb0\xb0\xfa\xfa\xfa\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xd3\xd3\xd3\xe2\xe2\xe2\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\x80\x80\x80\x97\x97\x97\xf2\xf2\xf2\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xe8\xe8\xe8\xde\xde\xde\xed\xed\xed\xea\xea\xea\xe6\xe6\xe6\xf2\xf2\xf2\xec\xec\xec\xe9\xe9\xe9\xf9\xf9\xf9\xe2\xe2\xe2\xd6\xd6\xd6\xf1\xf1\xf1\xa4\xa4\xa4\xe9\xe9\xe9\xdd\xdd\xdd\xec\xec\xec\xe0\xe0\xe0\xe2\xe2\xe2\xf2\xf2\xf2\xe4\xe4\xe4\xfa\xfa\xfa\xa5\xa5\xa5\xe4\xe4\xe4\xda\xda\xda\xfc\xfc\xfc\xe3\xe3\xe3\xe5\xe5\xe5\xfa\xfa\xfa\xe0\xe0\xe0\xd5\xd5\xd5\xfb\xfb\xfb\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd8\xd8\xd8\xf4\xf4\xf4\xf6\xf6\xf6\xe9\xe9\xe9\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xc7\xc7\xc7\xbb\xbb\xbb\xf8\xf8\xf8\xe4\xe4\xe4\xf8\xf8\xf8\x7c\x7c\x7c\xe0\xe0\xe0\xe5\xe5\xe5\xf8\xf8\xf8\xe3\xe3\xe3\xf8\xf8\xf8\xe6\xe6\xe6\xd3\xd3\xd3\xf5\xf5\xf5\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xdf\xdf\xdf\xe8\xe8\xe8\xec\xec\xec\xd1\xd1\xd1\xf8\xf8\xf8\xad\xad\xad\xdb\xdb\xdb\xf5\xf5\xf5\xda\xda\xda\xfa\xfa\xfa\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xf2\xf2\xf2\xe4\xe4\xe4\xfc\xfc\xfc\xf5\xf5\xf5\xd9\xd9\xd9\xf7\xf7\xf7\xef\xef\xef\xdb\xdb\xdb\xfc\xfc\xfc\xe6\xe6\xe6\xe3\xe3\xe3\xf4\xf4\xf4\xe8\xe8\xe8\xe7\xe7\xe7\xef\xef\xef\xe8\xe8\xe8\xd8\xd8\xd8\xc6\xc6\xc6\xcd\xcd\xcd\xaf\xaf\xafbbbkkk\xb1\xb1\xb1ddd\x9e\x9e\x9e\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xcc\xcc\xcc\xbd\xbd\xbd\x98\x98\x98\xa4\xa4\xa4\xa3\xa3\xa3\xa4\xa4\xa4\xa8\xa8\xa8\xca\xca\xca\x8c\x8c\x8c\xc0\xc0\xc0\x82\x82\x82\x8e\x8e\x8e\xaa\xaa\xaa\x83\x83\x83\xd8\xd8\xd8\x7f\x7f\x7f\xf4\xf4\xf4\x91\x91\x91\x95\x95\x95\xd9\xd9\xd9\x93\x93\x93\xb1\xb1\xb1\x82\x82\x82\xd8\xd8\xd8\x86\x86\x86\xba\xba\xba\xbc\xbc\xbc\x9c\x9c\x9c\xa7\xa7\xa7\x87\x87\x87\x87\x87\x87\xc7\xc7\xc7\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\x87\x87\x87\xbe\xbe\xbe\x96\x96\x96\xdf\xdf\xdf\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xa0\xa0\xa0\xa5\xa5\xa5\xd5\xd5\xd5\x8f\x8f\x8f\xbe\xbe\xbe\x87\x87\x87\xad\xad\xad\xe5\xe5\xe5\xaf\xaf\xaf\x7f\x7f\x7f\xad\xad\xad\x87\x87\x87\x8e\x8e\x8e\xa9\xa9\xa9\xff\xff\xff\xf8\xf8\xf8\xff\xff\xff\x99\x99\x99\xb7\xb7\xb7\x8b\x8b\x8b\x8e\x8e\x8e\xa6\xa6\xa6\x8c\x8c\x8c\xbc\xbc\xbc\xab\xab\xab\xb9\xb9\xb9\x98\x98\x98\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xc9\xc9\xc9\x97\x97\x97\xa9\xa9\xa9\xbe\xbe\xbe\xc0\xc0\xc0\xaa\xaa\xaa\xbe\xbe\xbe\xbc\xbc\xbc\xa6\xa6\xa6\xbc\xbc\xbc\xa4\xa4\xa4\x9c\x9c\x9c\xa2\xa2\xa2\xa3\xa3\xa3\xa9\xa9\xa9\x8b\x8b\x8b\x94\x94\x94uuu\xdb\xdb\xdb\xae\xae\xaeccclll\xb2\xb2\xb2mmm\xab\xab\xab\xff\xff\xff\xf8\xf8\xf8\xff\xff\xff\x9b\x9b\x9b\xc0\xc0\xc0\xaf\xaf\xaf\xa5\xa5\xa5\xa3\xa3\xa3\xa9\xa9\xa9\x9c\x9c\x9c\xbd\xbd\xbd\x80\x80\x80\xb6\xb6\xb6\x9c\x9c\x9c\xb3\xb3\xb3\x9e\x9e\x9e\x95\x95\x95\xe6\xe6\xe6\x7c\x7c\x7c\xf2\xf2\xf2nnn\xf4\xf4\xf4\xb8\xb8\xb8\x90\x90\x90\xa6\xa6\xa6\x93\x93\x93\xe5\xe5\xe5\x83\x83\x83\x84\x84\x84\xc8\xc8\xc8\xbe\xbe\xbe\x87\x87\x87\xa7\xa7\xa7\xa9\xa9\xa9\xb6\xb6\xb6\xff\xff\xff\xf9\xf9\xf9\xff\xff\xff\x82\x82\x82\xcf\xcf\xcf\x95\x95\x95\x85\x85\x85\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xaa\xaa\xaa\xb3\xb3\xb3\xc5\xc5\xc5\x89\x89\x89\xb3\xb3\xb3ssslll\xe9\xe9\xe9xxx\xeb\xeb\xeb\xdd\xdd\xdd\x90\x90\x90\xbe\xbe\xbe\x9c\x9c\x9c\xff\xff\xff\xf8\xf8\xf8\xff\xff\xff\x9b\x9b\x9b\xb6\xb6\xb6\x9b\x9b\x9b\xbe\xbe\xbe\x9d\x9d\x9d\xa0\xa0\xa0\xab\xab\xab\x89\x89\x89\xf4\xf4\xf4\x79\x79\x79\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xb7\xb7\xb7\x97\x97\x97\x87\x87\x87\x8a\x8a\x8a\xff\xff\xff\xb6\xb6\xb6\x92\x92\x92\xff\xff\xff\x8c\x8c\x8c\xbb\xbb\xbb\xce\xce\xce\x7b\x7b\x7b\xa5\xa5\xa5\xa4\xa4\xa4\xa9\xa9\xa9\x99\x99\x99\xc3\xc3\xc3hhh\xdc\xdc\xdc\xae\xae\xaeccclll\xb2\xb2\xb2\x85\x85\x85\xab\xab\xab\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xde\xde\xde\x88\x88\x88xxx\xc4\xc4\xc4\x98\x98\x98\x93\x93\x93\xb2\xb2\xb2\x90\x90\x90\x99\x99\x99\xa7\xa7\xa7\xa9\xa9\xa9\xb5\xb5\xb5\xb6\xb6\xb6\x9a\x9a\x9a\xc1\xc1\xc1\x9f\x9f\x9f\xa9\xa9\xa9\x9e\x9e\x9e\xd8\xd8\xd8\x8c\x8c\x8c\x97\x97\x97\xa7\xa7\xa7\x9c\x9c\x9c\xc0\xc0\xc0\x97\x97\x97\xd4\xd4\xd4\xa5\xa5\xa5\xc8\xc8\xc8\xce\xce\xce\xa5\xa5\xa5\xb1\xb1\xb1\xbf\xbf\xbf\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\x98\x98\x98\xc1\xc1\xc1\xd8\xd8\xd8\xad\xad\xad\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xc8\xc8\xc8\x9c\x9c\x9c\x94\x94\x94\x98\x98\x98\x9d\x9d\x9d\xaa\xaa\xaa\xa3\xa3\xa3\xad\xad\xad\x9e\x9e\x9e\x98\x98\x98\xde\xde\xde\x9d\x9d\x9d\xbe\xbe\xbe\xa8\xa8\xa8\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xa9\xa9\xa9\xb6\xb6\xb6\xa4\xa4\xa4\xbd\xbd\xbd\xad\xad\xad\xaa\xaa\xaa\xb9\xb9\xb9\xaf\xaf\xaf\xb9\xb9\xb9\xd9\xd9\xd9\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\x93\x93\x93\x96\x96\x96\xa9\xa9\xa9\x9e\x9e\x9e\x87\x87\x87\xe7\xe7\xe7\x81\x81\x81\xa3\xa3\xa3\xe1\xe1\xe1\xa3\xa3\xa3\xc2\xc2\xc2\xe4\xe4\xe4\x92\x92\x92\x92\x92\x92\xb9\xb9\xb9\xa3\xa3\xa3\xc2\xc2\xc2\x82\x82\x82\xd8\xd8\xd8\xae\xae\xaeccclll\xb2\xb2\xb2\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\x8a\x8a\x8a\xbe\xbe\xbe\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xf9\xf9\xf9\xfa\xfa\xfa\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfb\xfb\xfb\xfb\xfb\xfb\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xf8\xf8\xf8\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfa\xfa\xfa\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xf9\xf9\xf9\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xfb\xfb\xfb\xfa\xfa\xfa\xff\xff\xff\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xe2\xe2\xe2\xec\xec\xec\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xd0\xd0\xd0\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xf2\xf2\xf2\xf4\xf4\xf4\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xfb\xfb\xfb\xf5\xf5\xf5\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xf7\xf7\xf7\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xf5\xf5\xf5\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\x82\x82\x82\xa8\xa8\xa8\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf3\xf3\xf3\xe2\xe2\xe2\x83\x83\x83\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xe5\xe5\xe5\x88\x88\x88\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf3\xf3\xf3\x81\x81\x81\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfa\xfa\xfa\xc4\xc4\xc4\xcf\xcf\xcf\xb0\xb0\xb0ccclll\xb2\xb2\xb2\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\x8b\x8b\x8b\xb5\xb5\xb5\xc5\xc5\xc5\x98\x98\x98\xb8\xb8\xb8\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xd7\xd7\xd7\xb5\xb5\xb5\xcc\xcc\xcc\xbb\xbb\xbb\xcd\xcd\xcd\xb1\xb1\xb1\xcf\xcf\xcf\x93\x93\x93\xd6\xd6\xd6\xff\xff\xff\xff\xff\xff\xcb\xcb\xcb\xa8\xa8\xa8\xab\xab\xab\xb2\xb2\xb2\xba\xba\xba\xf2\xf2\xf2\xa8\xa8\xa8\xc1\xc1\xc1\x7f\x7f\x7f\xc6\xc6\xc6\x80\x80\x80\x9e\x9e\x9e\xd4\xd4\xd4\xdb\xdb\xdb\xb0\xb0\xb0\xd1\xd1\xd1\xe9\xe9\xe9\xb3\xb3\xb3xxx\xff\xff\xff\xfb\xfb\xfb\xfe\xfe\xfe\xff\xff\xff\xe2\xe2\xe2\xa9\xa9\xa9\xbd\xbd\xbd\xca\xca\xca\xd0\xd0\xd0\xdd\xdd\xdd\xac\xac\xac\xbf\xbf\xbf\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\x7a\x7a\x7a\x9b\x9b\x9b\xce\xce\xce\xdc\xdc\xdc\xb1\xb1\xb1\xce\xce\xce\xab\xab\xab\xc6\xc6\xc6\xb3\xb3\xb3\xdc\xdc\xdc\xd4\xd4\xd4\xc9\xc9\xc9\xab\xab\xab\xa6\xa6\xa6\xd3\xd3\xd3\xce\xce\xce\xdc\xdc\xdc\xaf\xaf\xaf\xbe\xbe\xbe\xbd\xbd\xbd\x99\x99\x99\xec\xec\xec\xff\xff\xff\xfb\xfb\xfb\xb0\xb0\xb0\xcc\xcc\xcc\xb5\xb5\xb5\xe1\xe1\xe1\xd3\xd3\xd3\xee\xee\xee\xcb\xcb\xcb\x9f\x9f\x9f\xf5\xf5\xf5\xfe\xfe\xfe\xff\xff\xff\xa0\xa0\xa0\x80\x80\x80\xdc\xdc\xdc\xae\xae\xaeccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\x8b\x8b\x8b\xbf\xbf\xbf\x9b\x9b\x9b\xb5\xb5\xb5\x8a\x8a\x8a\xff\xff\xff\xfe\xfe\xfe\xf9\xf9\xf9xxx\xf7\xf7\xf7\x7e\x7e\x7e\x82\x82\x82\xc2\xc2\xc2\x8d\x8d\x8d\xa7\xa7\xa7\x9e\x9e\x9e\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xaa\xaa\xaa\xa3\xa3\xa3\x9a\x9a\x9a\xbd\xbd\xbd\x8d\x8d\x8d\x94\x94\x94\xaf\xaf\xaf\xb7\xb7\xb7\x8f\x8f\x8f\xdb\xdb\xdb\x8e\x8e\x8e\xc7\xc7\xc7\x83\x83\x83\x8a\x8a\x8a\xf7\xf7\xf7iii\x8c\x8c\x8c\xe9\xe9\xe9\x84\x84\x84\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfb\xfb\xfb\x84\x84\x84\x8e\x8e\x8e\x80\x80\x80\xda\xda\xda\x8f\x8f\x8f\xb1\xb1\xb1\xb0\xb0\xb0\xff\xff\xff\xfe\xfe\xfe\xfb\xfb\xfb\x86\x86\x86\xca\xca\xca\x7e\x7e\x7e\x88\x88\x88\xf4\xf4\xf4\x7d\x7d\x7d\x95\x95\x95\x96\x96\x96lll\xd0\xd0\xd0\xaa\xaa\xaa\x9f\x9f\x9f\xb5\xb5\xb5\xb0\xb0\xb0\x88\x88\x88\xd3\xd3\xd3\x90\x90\x90\xae\xae\xae\xba\xba\xba\x87\x87\x87\xc8\xc8\xc8\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\x88\x88\x88\xbf\xbf\xbf\x90\x90\x90\xab\xab\xab\x8e\x8e\x8e\xbb\xbb\xbb\x9c\x9c\x9c\xa9\xa9\xa9\xe6\xe6\xe6\xff\xff\xff\xff\xff\xff\xab\xab\xab\x8d\x8d\x8d\xdb\xdb\xdb\xae\xae\xaeccclll\xb2\xb2\xb2\xe0\xe0\xe0\xd4\xd4\xd4\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\x7d\x7d\x7d\xb4\xb4\xb4\x9b\x9b\x9b\xbd\xbd\xbd\x83\x83\x83\xff\xff\xff\xfd\xfd\xfd\xff\xff\xffvvv\xd5\xd5\xd5\xab\xab\xab\x8b\x8b\x8b\x9b\x9b\x9b\x82\x82\x82\xa3\xa3\xa3\xaa\xaa\xaa\xff\xff\xff\xf9\xf9\xf9\xff\xff\xff\xa9\xa9\xa9\xa6\xa6\xa6\x9a\x9a\x9a\xc1\xc1\xc1\x8f\x8f\x8f\x7e\x7e\x7e\xac\xac\xac\xf0\xf0\xf0\x7e\x7e\x7e\xc0\xc0\xc0\x8d\x8d\x8d\xc7\xc7\xc7\x87\x87\x87\x84\x84\x84\xdb\xdb\xdb\x9a\x9a\x9aooo\xb4\xb4\xb4\x7a\x7a\x7a\xd4\xd4\xd4\xdb\xdb\xdb\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xa6\xa6\xa6\x8a\x8a\x8a\x7d\x7d\x7d\xe1\xe1\xe1\x83\x83\x83\xb1\xb1\xb1\xe6\xe6\xe6\xfe\xfe\xfe\xff\xff\xff\xf8\xf8\xf8\x82\x82\x82\xcb\xcb\xcb\x82\x82\x82\x82\x82\x82\xda\xda\xda\x9f\x9f\x9f\xde\xde\xdesss\x95\x95\x95\xad\xad\xad\xc8\xc8\xc8\x7b\x7b\x7b\xe2\xe2\xe2\xf8\xf8\xf8lll\xdf\xdf\xdf\x8a\x8a\x8a\xa6\xa6\xa6\xf3\xf3\xf3\x81\x81\x81\xd8\xd8\xd8\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\x83\x83\x83\x9c\x9c\x9c\x7c\x7c\x7c\xea\xea\xea\x85\x85\x85\x84\x84\x84\x84\x84\x84\xdf\xdf\xdf\xf1\xf1\xf1\xfe\xfe\xfe\xff\xff\xff\xaa\xaa\xaa\x7e\x7e\x7e\xdc\xdc\xdc\xae\xae\xaeccclll\xb2\xb2\xb2\xe1\xe1\xe1\xd6\xd6\xd6\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xcc\xcc\xcc\xdb\xdb\xdb\xd6\xd6\xd6\xdf\xdf\xdf\xd1\xd1\xd1\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xeb\xeb\xeb\xca\xca\xca\xf2\xf2\xf2\xeb\xeb\xeb\xbc\xbc\xbc\xdb\xdb\xdb\xd8\xd8\xd8\xd8\xd8\xd8\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xdf\xdf\xdf\xda\xda\xda\xd5\xd5\xd5\xe0\xe0\xe0\xd5\xd5\xd5\xe6\xe6\xe6\xae\xae\xae\xee\xee\xee\xd9\xd9\xd9\xd0\xd0\xd0\xd5\xd5\xd5\xdc\xdc\xdc\xda\xda\xda\xea\xea\xea\xca\xca\xca\xf7\xf7\xf7\xe3\xe3\xe3\xb6\xb6\xb6\xdc\xdc\xdc\xbd\xbd\xbd\xbe\xbe\xbe\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xf1\xf1\xf1\xec\xec\xec\xeb\xeb\xeb\xfb\xfb\xfb\xea\xea\xea\xae\xae\xae\xeb\xeb\xeb\xff\xff\xff\xff\xff\xff\xf8\xf8\xf8\xcf\xcf\xcf\xde\xde\xde\xd8\xd8\xd8\xea\xea\xea\xcb\xcb\xcb\xf2\xf2\xf2\xfe\xfe\xfe\xe5\xe5\xe5\xf1\xf1\xf1\xed\xed\xed\xff\xff\xff\xb9\xb9\xb9\xcc\xcc\xcc\xff\xff\xff\xe4\xe4\xe4\xf9\xf9\xf9\xef\xef\xef\xae\xae\xae\xe8\xe8\xe8\xd2\xd2\xd2\xe6\xe6\xe6\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xdb\xdb\xdb\xbf\xbf\xbf\xdf\xdf\xdf\xe3\xe3\xe3\xe1\xe1\xe1\xf8\xf8\xf8\xbf\xbf\xbf\xc8\xc8\xc8\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xed\xed\xed\xac\xac\xac\xd2\xd2\xd2\xb0\xb0\xb0ccclll\xb2\xb2\xb2\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xd2\xd2\xd2\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfa\xfa\xfa\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfb\xfb\xfb\xfb\xfb\xfb\xfd\xfd\xfd\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfb\xfb\xfb\xfc\xfc\xfc\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfb\xfb\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xd0\xd0\xd0\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xff\xff\xff\xd0\xd0\xd0\xd6\xd6\xd6\xff\xff\xff\xfc\xfc\xfc\xfc\xfc\xfc\xff\xff\xff\xe5\xe5\xe5\xb1\xb1\xb1\xee\xee\xee\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xc8\xc8\xc8\xfb\xfb\xfb\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xee\xee\xee\xc2\xc2\xc2\xe6\xe6\xe6\xd4\xd4\xd4\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xcb\xcb\xcb\xf2\xf2\xf2\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf6\xf6\xf6\xe8\xe8\xe8\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xff\xff\xff\xaf\xaf\xaf\xa5\xa5\xa5\xff\xff\xff\xfa\xfa\xfa\xfd\xfd\xfd\xfe\xfe\xfe\x84\x84\x84\xc8\xc8\xc8\xef\xef\xef\xe4\xe4\xe4\xfa\xfa\xfa\xf5\xf5\xf5\xde\xde\xde\xf8\xf8\xf8\xff\xff\xff\xff\xff\xff\xf1\xf1\xf1\xf2\xf2\xf2\xda\xda\xda\xf6\xf6\xf6\xec\xec\xec\xe5\xe5\xe5\xed\xed\xed\xe9\xe9\xe9\xfb\xfb\xfb\xe8\xe8\xe8\xe6\xe6\xe6\xf0\xf0\xf0\x7a\x7a\x7a\xeb\xeb\xeb\xe0\xe0\xe0\xff\xff\xff\xe1\xe1\xe1\xf7\xf7\xf7\xde\xde\xde\xe3\xe3\xe3\xb2\xb2\xb2\xed\xed\xed\xf0\xf0\xf0\xf6\xf6\xf6\xf1\xf1\xf1\xff\xff\xff\xbe\xbe\xbe\xe1\xe1\xe1\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xc6\xc6\xc6\xb4\xb4\xb4\xad\xad\xad\xff\xff\xff\xfa\xfa\xfa\xff\xff\xff\xf9\xf9\xf9qqq\xd8\xd8\xd8\xac\xac\xac\xb5\xb5\xb5\xa0\xa0\xa0\x87\x87\x87\x9a\x9a\x9a\xf2\xf2\xf2\xff\xff\xff\xba\xba\xba\xa7\xa7\xa7\xea\xea\xea\x87\x87\x87\xc8\xc8\xc8\x7f\x7f\x7f\x98\x98\x98\x9a\x9a\x9a\x92\x92\x92\xaa\xaa\xaa\x89\x89\x89\x85\x85\x85\xb8\xb8\xb8\x9c\x9c\x9c\xbb\xbb\xbb\x9a\x9a\x9a\xc8\xc8\xc8\xb4\xb4\xb4\xbf\xbf\xbf\x95\x95\x95\xb6\xb6\xb6\x85\x85\x85\xc5\xc5\xc5\x84\x84\x84\xca\xca\xca\xd3\xd3\xd3\xff\xff\xff\xca\xca\xca\x9f\x9f\x9f\xff\xff\xff\xfa\xfa\xfa\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xec\xec\xec\xb1\xb1\xb1\xa9\xa9\xa9\xff\xff\xff\xfa\xfa\xfa\xfd\xfd\xfd\xff\xff\xff\x89\x89\x89\xc8\xc8\xc8\x82\x82\x82\xf8\xf8\xf8\x7d\x7d\x7d\x86\x86\x86\xe5\xe5\xe5\xff\xff\xff\xff\xff\xff\xdc\xdc\xdcggg\xc2\xc2\xc2\x81\x81\x81\xc9\xc9\xc9\x92\x92\x92\xb6\xb6\xb6\xb3\xb3\xb3\xa0\xa0\xa0\xa0\xa0\xa0\xb6\xb6\xb6\xc4\xc4\xc4\x94\x94\x94\x9c\x9c\x9c\xbf\xbf\xbf\x87\x87\x87\x8d\x8d\x8d\xf2\xf2\xf2\xff\xff\xff\x80\x80\x80\xba\xba\xba\x8f\x8f\x8f\xff\xff\xff\x7b\x7b\x7b\x9c\x9c\x9c\xff\xff\xff\xff\xff\xff\xd4\xd4\xd4\x92\x92\x92\xff\xff\xff\xfb\xfb\xfb\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xf1\xf1\xf1\xb2\xb2\xb2\xb4\xb4\xb4\xa0\xa0\xa0\xdf\xdf\xdf\xff\xff\xff\xfa\xfa\xfa\x85\x85\x85\xe5\xe5\xe5\xa4\xa4\xa4\xba\xba\xba\xd3\xd3\xd3\x93\x93\x93\xdb\xdb\xdb\xff\xff\xff\xff\xff\xff\xdf\xdf\xdf\xbd\xbd\xbd\xb4\xb4\xb4\x95\x95\x95\xc5\xc5\xc5\x9d\x9d\x9d\xb4\xb4\xb4\xb4\xb4\xb4\xaa\xaa\xaa\xa4\xa4\xa4\x8d\x8d\x8d\xbf\xbf\xbf\xd3\xd3\xd3\x98\x98\x98\xbc\xbc\xbc\xa3\xa3\xa3\xac\xac\xac\x79\x79\x79\xe6\xe6\xe6\x93\x93\x93\xc8\xc8\xc8\x86\x86\x86\xfc\xfc\xfc\xb6\xb6\xb6\xb4\xb4\xb4\xd4\xd4\xd4\xdc\xdc\xdc\xc2\xc2\xc2\xb8\xb8\xb8\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\xd7\xd7\xd7\xf2\xf2\xf2\xff\xff\xff\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xf4\xf4\xf4\xfe\xfe\xfe\xfb\xfb\xfb\xfb\xfb\xfb\xfe\xfe\xfe\xfe\xfe\xfe\xfb\xfb\xfb\xf5\xf5\xf5\xfd\xfd\xfd\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xf9\xf9\xf9\xff\xff\xff\xb7\xb7\xb7\x89\x89\x89\xff\xff\xff\xfa\xfa\xfa\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfb\xfd\xfd\xfd\xf6\xf6\xf6\xfd\xfd\xfd\xfb\xfb\xfb\xfb\xfb\xfb\xff\xff\xff\xd3\xd3\xd3\x98\x98\x98\xf8\xf8\xf8\xfe\xfe\xfe\xf6\xf6\xf6\xc4\xc4\xc4\xf9\xf9\xf9\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xe9\xe9\xe9\xdc\xdc\xdc\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xe6\xe6\xe6\xda\xda\xda\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfb\xfb\xfb\xfb\xfb\xfb\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xf8\xf8\xf8\xf3\xf3\xf3\xf3\xf3\xf3\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfb\xfb\xfb\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfb\xfb\xfb\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfb\xfb\xfb\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfc\xfc\xfc\xff\xff\xff\xd7\xd7\xd7\xa0\xa0\xa0\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xa0\xa0\xa0\xd5\xd5\xd5\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\x9b\x9b\x9b\xa1\xa1\xa1\xb8\xb8\xb8\xbe\xbe\xbe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xb5\xb5\xb5\xbb\xbb\xbb\xff\xff\xff\xfb\xfb\xfb\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xbc\xbc\xbc\xc3\xc3\xc3\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfa\xfa\xfa\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xd9\xd9\xd9\xa2\xa2\xa2\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xa8\xa8\xa8\xc0\xc0\xc0\xe5\xe5\xe5\x88\x88\x88\xfc\xfc\xfc\xc6\xc6\xc6\xd9\xd9\xd9\xfe\xfe\xfe\xca\xca\xca\xdb\xdb\xdb\x9d\x9d\x9d\xb9\xb9\xb9\xd4\xd4\xd4\xfa\xfa\xfa\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\x8a\x8a\x8a\xdd\xdd\xdd\xff\xff\xffxxx\xf8\xf8\xf8\xff\xff\xff\xfd\xfd\xfd\x84\x84\x84\xe3\xe3\xe3\xdd\xdd\xdd\xc5\xc5\xc5\xf7\xf7\xf7\xfe\xfe\xfe\xff\xff\xff\xba\xba\xba\x7a\x7a\x7a\xc0\xc0\xc0\xfa\xfa\xfa\xd6\xd6\xd6\xcc\xcc\xcc\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xce\xce\xce\xc1\xc1\xc1\xcf\xcf\xcf\xc1\xc1\xc1\xee\xee\xee\xd9\xd9\xd9\xd8\xd8\xd8\xeb\xeb\xeb\xc7\xc7\xc7\xb8\xb8\xb8\xe5\xe5\xe5\xcc\xcc\xcc\xb4\xb4\xb4\xe9\xe9\xe9\xef\xef\xef\xc2\xc2\xc2\xef\xef\xef\xf0\xf0\xf0\x8b\x8b\x8b\xab\xab\xab\xff\xff\xff\xff\xff\xff\xbc\xbc\xbc\x9f\x9f\x9f\xfb\xfb\xfb\xc7\xc7\xc7\xd7\xd7\xd7\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\x8c\x8c\x8c\xc3\xc3\xc3\x7f\x7f\x7f\xbf\xbf\xbf\xf0\xf0\xf0\xe9\xe9\xe9\xc3\xc3\xc3\xf5\xf5\xf5\xff\xff\xff\xff\xff\xff\xda\xda\xda\xb9\xb9\xb9\xd1\xd1\xd1\xd3\xd3\xd3\xeb\xeb\xeb\xd9\xd9\xd9\xb6\xb6\xb6\xd1\xd1\xd1\xfd\xfd\xfd\xcb\xcb\xcb\xc4\xc4\xc4\xf5\xf5\xf5\xd1\xd1\xd1\xd7\xd7\xd7\xd6\xd6\xd6\xcb\xcb\xcb\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xef\xef\xef\x7b\x7b\x7b\xae\xae\xae\xa0\xa0\xa0\x98\x98\x98\xd9\xd9\xd9\x8a\x8a\x8a\x8a\x8a\x8a\xd6\xd6\xd6\xd4\xd4\xd4\x9a\x9a\x9auuu\xf2\xf2\xf2\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xf7\xf7\xf7\x80\x80\x80\xff\xff\xff\xec\xec\xecppp\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\x86\x86\x86\xb7\xb7\xb7\xae\xae\xae\xbb\xbb\xbb\x94\x94\x94\xff\xff\xff\xff\xff\xff\xb8\xb8\xb8\x99\x99\x99\x91\x91\x91\x7a\x7a\x7a\xab\xab\xab\x84\x84\x84\xf2\xf2\xf2\xff\xff\xff\xff\xff\xffqqq\xb7\xb7\xb7\x8c\x8c\x8c\xa1\xa1\xa1\xa8\xa8\xa8\xcd\xcd\xcd\x84\x84\x84\xb0\xb0\xb0\x89\x89\x89\xb1\xb1\xb1vvv\x86\x86\x86\xb7\xb7\xb7nnn\xa7\xa7\xa7\x94\x94\x94\x94\x94\x94\xc7\xc7\xc7\xb0\xb0\xb0\xac\xac\xac\xff\xff\xff\xff\xff\xff\xb0\xb0\xb0\xab\xab\xab\x9e\x9e\x9e\xdb\xdb\xdb\x7c\x7c\x7c\xdf\xdf\xdf\xff\xff\xff\xfc\xfc\xfc\x80\x80\x80\xd1\xd1\xd1\x8f\x8f\x8f\xa8\xa8\xa8\x92\x92\x92\xaa\xaa\xaa\x88\x88\x88\xcb\xcb\xcb\xff\xff\xff\xff\xff\xff\x8c\x8c\x8c\xa7\xa7\xa7\xd2\xd2\xd2\x9c\x9c\x9c\xa2\xa2\xa2\x9a\x9a\x9a\x9c\x9c\x9c\x95\x95\x95\xb4\xb4\xb4\xa2\xa2\xa2\x8d\x8d\x8d\xab\xab\xab\x9d\x9d\x9d\x90\x90\x90\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xff\xff\xff\xb3\xb3\xb3\xac\xac\xac\x99\x99\x99\x7b\x7b\x7b\xdd\xdd\xdd\xab\xab\xab```\xb6\xb6\xb6\xff\xff\xff\x9c\x9c\x9cQQQ\xbf\xbf\xbf\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xcb\xcb\xcb\x86\x86\x86\xff\xff\xff\xa4\xa4\xa4\xbc\xbc\xbc\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\x8a\x8a\x8a\xa3\xa3\xa3\x95\x95\x95\xe0\xe0\xe0\x92\x92\x92\xff\xff\xff\xff\xff\xff\xb2\xb2\xb2\xae\xae\xae\xd6\xd6\xd6]]]\xa3\xa3\xa3\xed\xed\xed\xf2\xf2\xf2\xff\xff\xff\xff\xff\xff\x7a\x7a\x7a\xcf\xcf\xcf\x98\x98\x98\xbb\xbb\xbb\x90\x90\x90\xa4\xa4\xa4\x82\x82\x82\xa9\xa9\xa9\xa0\xa0\xa0\xde\xde\xde\x84\x84\x84\x97\x97\x97\xe7\xe7\xe7uuurrr\xf2\xf2\xf2\xa7\xa7\xa7\x95\x95\x95\xb4\xb4\xb4\x9f\x9f\x9f\xff\xff\xff\xff\xff\xff\xb6\xb6\xb6\xa9\xa9\xa9\x7c\x7c\x7c\xe1\xe1\xe1\x99\x99\x99\xd6\xd6\xd6\xff\xff\xff\xff\xff\xff\x82\x82\x82\xc6\xc6\xc6\x9a\x9a\x9a\xc6\xc6\xc6\x7c\x7c\x7c\x84\x84\x84\xe9\xe9\xe9\xe9\xe9\xe9\xfe\xfe\xfe\xff\xff\xff\x93\x93\x93\xd6\xd6\xd6\xb7\xb7\xb7\x8a\x8a\x8a\x97\x97\x97\x9e\x9e\x9e\xbc\xbc\xbc\x8f\x8f\x8f\xd4\xd4\xd4\x8b\x8b\x8b\xe6\xe6\xe6\x8e\x8e\x8e\xab\xab\xab\xf2\xf2\xf2\xca\xca\xca\xcd\xcd\xcd\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xc9\xc9\xc9\xd6\xd6\xd6\xe1\xe1\xe1\xb6\xb6\xb6\xe4\xe4\xe4\xb4\xb4\xb4\xdc\xdc\xdc\xea\xea\xea\x86\x86\x86\xd2\xd2\xd2\xc4\xc4\xc4\xca\xca\xca\xa6\xa6\xa6\xf5\xf5\xf5\xff\xff\xff\xff\xff\xff\xc0\xc0\xc0\xb5\xb5\xb5\xd0\xd0\xd0\xd2\xd2\xd2\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xaf\xaf\xaf\xd3\xd3\xd3\xc2\xc2\xc2\xc4\xc4\xc4\xf3\xf3\xf3\xff\xff\xff\xff\xff\xff\xe4\xe4\xe4\xb0\xb0\xb0\xd5\xd5\xd5\xef\xef\xef\x93\x93\x93\xc3\xc3\xc3\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xb1\xb1\xb1\xd2\xd2\xd2\xba\xba\xba\xcd\xcd\xcd\xba\xba\xba\xa9\xa9\xa9\xb5\xb5\xb5\xb1\xb1\xb1\x7f\x7f\x7f\xcc\xcc\xcc\xde\xde\xdewww\xc0\xc0\xc0\xec\xec\xec\xb6\xb6\xb6\x9f\x9f\x9f\xf0\xf0\xf0\xaa\xaa\xaa\x9e\x9e\x9e\xca\xca\xca\xff\xff\xff\xff\xff\xff\xe1\xe1\xe1\xad\xad\xad\xe0\xe0\xe0\xb6\xb6\xb6\xd8\xd8\xd8\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xb4\xb4\xb4\xbb\xbb\xbb\xbe\xbe\xbe\xc6\xc6\xc6\xca\xca\xca\xb0\xb0\xb0\xa6\xa6\xa6\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xb7\xb7\xb7\xda\xda\xda\xc2\xc2\xc2\xa9\xa9\xa9\xb6\xb6\xb6\xb7\xb7\xb7\xcc\xcc\xcc\xbc\xbc\xbc\xba\xba\xba\x8c\x8c\x8c\x98\x98\x98\xd2\xd2\xd2\x92\x92\x92\xd3\xd3\xd3\xd5\xd5\xd5\xcb\xcb\xcb\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd9\xd9\xd9\x86\x86\x86\xff\xff\xff\xe8\xe8\xe8\x7f\x7f\x7f\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xac\xac\xac\x9f\x9f\x9f\xcc\xcc\xcc\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfb\xfb\xfb\xfc\xfc\xfc\xff\xff\xff\xfd\xfd\xfd\xfb\xfb\xfb\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfb\xfb\xfb\xff\xff\xff\xfd\xfd\xfd\xfb\xfb\xfb\xfe\xfe\xfe\xfb\xfb\xfb\xf5\xf5\xf5\xfb\xfb\xfb\xfb\xfb\xfb\xf6\xf6\xf6\xfa\xfa\xfa\xfe\xfe\xfe\xfb\xfb\xfb\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfb\xfb\xfb\xfd\xfd\xfd\xff\xff\xff\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xf9\xf9\xf9\xfe\xfe\xfe\xfc\xfc\xfc\xfa\xfa\xfa\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfd\xfd\xfd\xff\xff\xff\xf4\xf4\xf4\xe5\xe5\xe5\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xec\xec\xec\xf2\xf2\xf2\xff\xff\xff\xfb\xfb\xfb\xdc\xdc\xdc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xe7\xe7\xe7\xf1\xf1\xf1\xe5\xe5\xe5\xf7\xf7\xf7\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xe0\xe0\xe0\xf1\xf1\xf1\xe4\xe4\xe4\xfc\xfc\xfc\xfd\xfd\xfd\xff\xff\xff\xe4\xe4\xe4\xf0\xf0\xf0\xff\xff\xff\xee\xee\xee\xe8\xe8\xe8\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xff\xff\xff\xee\xee\xee\xe5\xe5\xe5\xff\xff\xff\xf6\xf6\xf6\xe3\xe3\xe3\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xff\xff\xff\xeb\xeb\xeb\xea\xea\xea\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf3\xf3\xf3\xcd\xcd\xcd\xbe\xbe\xbe\xda\xda\xda\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xf8\xf8\xf8\xff\xff\xff\xe0\xe0\xe0\x7d\x7d\x7d\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xff\xff\xff\x9c\x9c\x9c\xb3\xb3\xb3\xff\xff\xff\xf8\xf8\xf8\xd1\xd1\xd1\xff\xff\xff\xfc\xfc\xfc\xfa\xfa\xfa\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xf6\xf6\xf6\xff\xff\xff\x98\x98\x98\xbe\xbe\xbe\x8f\x8f\x8f\xd5\xd5\xd5\xff\xff\xff\xfd\xfd\xfd\xf9\xf9\xf9\xfd\xfd\xfd\xfb\xfb\xfb\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xf8\xf8\xf8\xff\xff\xff\xd5\xd5\xd5\xed\xed\xedxxx\xf5\xf5\xf5\xf8\xf8\xf8\xff\xff\xff\x98\x98\x98\xb2\xb2\xb2\xff\xff\xff\xc7\xc7\xc7\x88\x88\x88\xff\xff\xff\xf9\xf9\xf9\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfb\xfb\xfb\xfa\xfa\xfa\xff\xff\xff\xfd\xfd\xfd\xf9\xf9\xf9\xff\xff\xff\xfb\xfb\xfb\xf8\xf8\xf8\xff\xff\xff\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xff\xff\xff\xc8\xc8\xc8\x86\x86\x86\xff\xff\xff\xf1\xf1\xf1uuu\xfb\xfb\xfb\xfb\xfb\xfb\xf9\xf9\xf9\xff\xff\xff\xf8\xf8\xf8\xff\xff\xff\xb8\xb8\xb8\x97\x97\x97\xff\xff\xff\xf8\xf8\xf8\xf9\xf9\xf9\xfa\xfa\xfa\xff\xff\xff\xf2\xf2\xf2\xc0\xc0\xc0vvv\xb4\xb4\xb4vvv\xb7\xb7\xb7\xff\xff\xff\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xc7\xc7\xc7\xac\xac\xac\xbf\xbf\xbf\x81\x81\x81\x92\x92\x92\xc8\xc8\xc8\xd3\xd3\xd3\x88\x88\x88\xca\xca\xca\xd7\xd7\xd7\x85\x85\x85\xb1\xb1\xb1\xff\xff\xff\xec\xec\xec\xa7\xa7\xa7\xc8\xc8\xc8\x90\x90\x90\x8f\x8f\x8f\xef\xef\xef\xff\xff\xff\xdb\xdb\xdb\xac\xac\xac\xc9\xc9\xc9\xae\xae\xae\xc1\xc1\xc1\x9e\x9e\x9e\xd2\xd2\xd2\xff\xff\xff\xe0\xe0\xe0\xaf\xaf\xaf\xbf\xbf\xbf\x9c\x9c\x9c\xca\xca\xca\xc9\xc9\xc9\xc3\xc3\xc3\xac\xac\xac\xce\xce\xce\xac\xac\xac\xe3\xe3\xe3\x8c\x8c\x8c\xd5\xd5\xd5\xb1\xb1\xb1\xc3\xc3\xc3\xb0\xb0\xb0qqq\x91\x91\x91\xc9\xc9\xc9\x96\x96\x96\xea\xea\xea\x96\x96\x96\xa9\xa9\xa9\xff\xff\xff\xed\xed\xed\x86\x86\x86\xa7\xa7\xa7\xbd\xbd\xbd\xad\xad\xad\xd2\xd2\xd2\x95\x95\x95\x8d\x8d\x8d\xd0\xd0\xd0\xc4\xc4\xc4\x93\x93\x93\xb5\xb5\xb5\xd8\xd8\xd8\x89\x89\x89\xc6\xc6\xc6\xff\xff\xff\xd9\xd9\xd9nnn\x81\x81\x81\xce\xce\xce\x8e\x8e\x8e\xdf\xdf\xdf\xba\xba\xba\xa7\xa7\xa7\xda\xda\xda\xc5\xc5\xc5\xac\xac\xac\xb3\xb3\xb3\x9a\x9a\x9a\xcf\xcf\xcf\xd4\xd4\xd4\xbe\xbe\xbe\xe1\xe1\xe1\xff\xff\xff\xf8\xf8\xf8\xf5\xf5\xf5\x86\x86\x86\xff\xff\xff\xcf\xcf\xcf\x90\x90\x90\xff\xff\xff\xec\xec\xec\xd0\xd0\xd0\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xf9\xf9\xf9\xf8\xf8\xf8\xd5\xd5\xd5\x94\x94\x94\xcb\xcb\xcb\x81\x81\x81\x93\x93\x93\xd7\xd7\xd7\x8f\x8f\x8f\xbe\xbe\xbe\xba\xba\xba\xaf\xaf\xaf\xff\xff\xff\xf0\xf0\xf0\x7b\x7b\x7b\xbc\xbc\xbc\xa7\xa7\xa7\x99\x99\x99\xd5\xd5\xd5\xff\xff\xff\xdc\xdc\xdc\xa6\xa6\xa6\x93\x93\x93\xb1\xb1\xb1\xc1\xc1\xc1\x9e\x9e\x9e\xd3\xd3\xd3\xff\xff\xff\xe1\xe1\xe1\xad\xad\xad\x88\x88\x88\xcc\xcc\xcc\x7c\x7c\x7c\xda\xda\xda\xd6\xd6\xd6\x93\x93\x93\xa9\xa9\xa9\x90\x90\x90\xd2\xd2\xd2\x91\x91\x91\xd7\xd7\xd7\xaf\xaf\xaf\x8d\x8d\x8d\xa5\xa5\xa5\xc4\xc4\xc4\xa8\xa8\xa8\x96\x96\x96\xa2\xa2\xa2\x93\x93\x93\xc3\xc3\xc3\xc2\xc2\xc2\xff\xff\xff\xf2\xf2\xf2\x7e\x7e\x7e\xfa\xfa\xfa\xc4\xc4\xc4\x83\x83\x83\xbb\xbb\xbb\x99\x99\x99\xb2\xb2\xb2\xa7\xa7\xa7\x9f\x9f\x9f\xb7\xb7\xb7\xb3\xb3\xb3\x92\x92\x92\xca\xca\xca\xcc\xcc\xcc\xff\xff\xff\xd1\xd1\xd1\x99\x99\x99\xd2\xd2\xd2\x8a\x8a\x8a\xa3\xa3\xa3\x8f\x8f\x8f\xc4\xc4\xc4\xcb\xcb\xcbTTT\xbf\xbf\xbf\xff\xff\xff\xc8\xc8\xc8===\xd3\xd3\xd3\xf7\xf7\xf7hhh\xbc\xbc\xbc\xff\xff\xff\xff\xff\xff\xdd\xdd\xdd\x9a\x9a\x9a\xff\xff\xff\xb3\xb3\xb3\xdc\xdc\xdc\xdd\xdd\xdd\x9d\x9d\x9d\xdc\xdc\xdc\xca\xca\xca\xb1\xb1\xb1ccclll\xb2\xb2\xb2hhh\xad\xad\xad\xd3\xd3\xd3\x8b\x8b\x8b\xb9\xb9\xb9\x8f\x8f\x8f\x7d\x7d\x7d\xc2\xc2\xc2\xbc\xbc\xbc\x80\x80\x80\x8b\x8b\x8b\xa3\xa3\xa3\xff\xff\xff\xec\xec\xec\x7a\x7a\x7a\xb2\xb2\xb2\xa4\xa4\xa4\x92\x92\x92\xcf\xcf\xcf\xff\xff\xff\xa0\xa0\xa0\x7f\x7f\x7f\x8c\x8c\x8c\x99\x99\x99\xb8\xb8\xb8\x91\x91\x91\xcb\xcb\xcb\xff\xff\xff\xac\xac\xac\x80\x80\x80\x79\x79\x79\xf6\xf6\xf6vvv\xec\xec\xec\x8e\x8e\x8e\x83\x83\x83\x98\x98\x98\x86\x86\x86\xc7\xc7\xc7\x8e\x8e\x8e\x9e\x9e\x9e\x80\x80\x80\x89\x89\x89\xa0\xa0\xa0\xa6\xa6\xa6\xc6\xc6\xc6\xb4\xb4\xb4\x95\x95\x95\x96\x96\x96\x96\x96\x96\xdf\xdf\xdf\xff\xff\xff\xed\xed\xed\x7a\x7a\x7a\xe9\xe9\xe9www\x84\x84\x84\x9f\x9f\x9f\x98\x98\x98\xa8\xa8\xa8\xae\xae\xae\xaa\xaa\xaa\x90\x90\x90\xe1\xe1\xe1vvv\xb2\xb2\xb2\xe6\xe6\xe6\xff\xff\xff\xda\xda\xda\x8a\x8a\x8a\xcb\xcb\xcb\xc1\xc1\xc1\x88\x88\x88\xb6\xb6\xb6\x99\x99\x99\xc8\xc8\xc8\xa6\xa6\xa6ooo\xc8\xc8\xc8\xbd\xbd\xbdxxx\x82\x82\x82\xd8\xd8\xd8\xbf\xbf\xbf\x84\x84\x84\xff\xff\xff\xff\xff\xff\xa7\xa7\xa7\x92\x92\x92\xcc\xcc\xcc\xd2\xd2\xd2\xff\xff\xff\xb8\xb8\xb8\xc6\xc6\xc6\xdf\xdf\xdf\xca\xca\xca\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xcf\xcf\xcf\xd5\xd5\xd5\xf7\xf7\xf7\xe5\xe5\xe5\xe8\xe8\xe8\xee\xee\xee\xe8\xe8\xe8\xcf\xcf\xcf\xff\xff\xff\xde\xde\xde\xd7\xd7\xd7\xf1\xf1\xf1\xff\xff\xff\xf7\xf7\xf7\xe4\xe4\xe4\xe9\xe9\xe9\xea\xea\xea\xe6\xe6\xe6\xf2\xf2\xf2\xff\xff\xff\xf1\xf1\xf1\xde\xde\xde\xe5\xe5\xe5\xe3\xe3\xe3\xec\xec\xec\xe5\xe5\xe5\xf1\xf1\xf1\xff\xff\xff\xf4\xf4\xf4\xde\xde\xde\xe2\xe2\xe2\xf7\xf7\xf7\xf5\xf5\xf5\xfe\xfe\xfe\xea\xea\xea\xdf\xdf\xdf\xe4\xe4\xe4\xe4\xe4\xe4\xed\xed\xed\xe5\xe5\xe5\xee\xee\xee\xde\xde\xde\xe4\xe4\xe4\xf0\xf0\xf0\xdd\xdd\xdd\xf1\xf1\xf1\xf2\xf2\xf2\xe6\xe6\xe6\xf7\xf7\xf7\xcb\xcb\xcb\xf2\xf2\xf2\xff\xff\xff\xf7\xf7\xf7\xe1\xe1\xe1\xfa\xfa\xfa\xe1\xe1\xe1\xe3\xe3\xe3\xe3\xe3\xe3\xe8\xe8\xe8\xee\xee\xee\xd7\xd7\xd7\x8a\x8a\x8a\xa7\xa7\xa7\xb3\xb3\xb3\xf2\xf2\xf2\xcc\xcc\xcc\xfb\xfb\xfb\xfe\xfe\xfe\xfe\xfe\xfe\xe2\xe2\xe2\xe6\xe6\xe6\xf9\xf9\xf9\xe1\xe1\xe1\xfa\xfa\xfa\xe4\xe4\xe4\xe5\xe5\xe5\xff\xff\xff\xda\xda\xda\xdd\xdd\xdd\xf1\xf1\xf1\xeb\xeb\xeb\xe6\xe6\xe6\xe3\xe3\xe3\xea\xea\xea\xf8\xf8\xf8\xfe\xfe\xfe\xff\xff\xff\xe5\xe5\xe5\xd9\xd9\xd9\xf3\xf3\xf3\xfe\xfe\xfe\xff\xff\xff\x94\x94\x94\xe4\xe4\xe4\xd8\xd8\xd8\xca\xca\xca\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf9\xf9\xf9\xb2\xb2\xb2\xc9\xc9\xc9\xfa\xfa\xfa\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xe8\xe8\xe8\xfe\xfe\xfe\xd3\xd3\xd3\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xf9\xf9\xf9\xfb\xfb\xfb\xfe\xfe\xfe\xfd\xfd\xfd\xfb\xfb\xfb\xfb\xfb\xfb\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfb\xfb\xfb\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfb\xfb\xfb\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfc\xfc\xfc\xff\xff\xff\xd4\xd4\xd4\xdd\xdd\xdd\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xc3\xc3\xc3\xf8\xf8\xf8\xff\xff\xff\xff\xff\xff\xe5\xe5\xe5\xce\xce\xce\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfb\xfb\xfb\xfc\xfc\xfc\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xaf\xaf\xaf\xe1\xe1\xe1\xe1\xe1\xe1\xe2\xe2\xe2\xdc\xdc\xdc\xc9\xc9\xc9\xd7\xd7\xd7\xca\xca\xca\xf1\xf1\xf1\xd5\xd5\xd5\xe6\xe6\xe6\xd8\xd8\xd8\xcc\xcc\xcc\xe0\xe0\xe0\xdc\xdc\xdc\xe3\xe3\xe3\xc0\xc0\xc0\xd7\xd7\xd7\xff\xff\xff\xd3\xd3\xd3\xcf\xcf\xcf\xeb\xeb\xeb\xd5\xd5\xd5\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\x98\x98\x98\x9a\x9a\x9a\xa3\xa3\xa3\xaf\xaf\xaf\x86\x86\x86\xab\xab\xab\x88\x88\x88\x9d\x9d\x9d\xb1\xb1\xb1\x80\x80\x80\xe2\xe2\xe2\xb7\xb7\xb7\x7c\x7c\x7c\xc7\xc7\xc7\x93\x93\x93\x9f\x9f\x9f\x95\x95\x95\x92\x92\x92\xb8\xb8\xb8\xa0\xa0\xa0\x80\x80\x80\xe5\xe5\xe5\xd4\xd4\xd4\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xc5\xc5\xc5\x99\x99\x99\xa6\xa6\xa6\xb1\xb1\xb1\x8f\x8f\x8f\xc7\xc7\xc7\x96\x96\x96\xb8\xb8\xb8\xaa\xaa\xaa\x82\x82\x82\xe1\xe1\xe1qqq\xe3\xe3\xe3\xc4\xc4\xc4\x96\x96\x96\xa5\xa5\xa5\xba\xba\xba\x90\x90\x90\xd2\xd2\xd2\x93\x93\x93\xd4\xd4\xd4\xfc\xfc\xfc\xf5\xf5\xf5\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xcd\xcd\xcd\xb5\xb5\xb5\xbd\xbd\xbd\xc1\xc1\xc1\xb3\xb3\xb3\xcd\xcd\xcd\xb3\xb3\xb3\xc7\xc7\xc7\xbc\xbc\xbc\xb1\xb1\xb1\xbf\xbf\xbf\xa3\xa3\xa3\xd7\xd7\xd7\xbe\xbe\xbe\xb7\xb7\xb7\xba\xba\xba\xc6\xc6\xc6\xb5\xb5\xb5\xc0\xc0\xc0\x8a\x8a\x8a\x98\x98\x98\xd5\xd5\xd5\xbf\xbf\xbf\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xac\xac\xac\x9e\x9e\x9e\xc7\xc7\xc7\xf3\xf3\xf3\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xe6\xe6\xe6\xf7\xf7\xf7\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0bbbkkk\xb1\xb1\xb1\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcc\xcc\xcc\xb1\xb1\xb1ccclll\xb2\xb2\xb2\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb0\xb0\xb0ccclll\xb1\xb1\xb1\xfa\xfa\xfa\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xfb\xfb\xfb\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfc\xfc\xfc\xfa\xfa\xfa\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd1\xd1\xd1\xcb\xcb\xcb\xb2\xb2\xb2___hhh\xb2\xb2\xb2\xfb\xfb\xfb\xe8\xe8\xe8\xc9\xc9\xc9\xd7\xd7\xd7\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd2\xd2\xd2\xcb\xcb\xcb\xa1\xa1\xa1nnnwww\xa3\xa3\xa3\xff\xff\xff\x9f\x9f\x9f\x94\x94\x94\x82\x82\x82\xf9\xf9\xf9\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfb\xfb\xfb\xff\xff\xff\xb0\xb0\xb0\x89\x89\x89\xc3\xc3\xc3\xb4\xb4\xb4\xb9\xb9\xb9\xb2\xb2\xb2\x99\x99\x99ttt\xde\xde\xde\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xec\xec\xec\xd1\xd1\xd1\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xf1\xf1\xf1\xf0\xf0\xf0\xff\xff\xff\xff\xff\xff\xd2\xd2\xd2\xc7\xc7\xc7\x9c\x9c\x9c\x9f\x9f\x9f\xae\xae\xae\x9c\x9c\x9c\xff\xff\xff\xa7\xa7\xa7\xbc\xbc\xbc\x8c\x8c\x8c\xf3\xf3\xf3\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xd0\xd0\xd0\x1c\x1c\x1c\xd6\xd6\xd6\xfe\xfe\xfe\xf3\xf3\xf3\xf4\xf4\xf4\xec\xec\xec\xa8\xa8\xa8\xa9\xa9\xa9\xff\xff\xff\xf2\xf2\xf2\xf5\xf5\xf5\xff\xff\xff\xfc\xfc\xfc\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xda\xda\xda\xc4\xc4\xc4\xf6\xf6\xf6\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfb\xfb\xfb\xf8\xf8\xf8\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfd\xfd\xfd\xf6\xf6\xf6\xef\xef\xef\xfa\xfa\xfa\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xf1\xf1\xf1\xf8\xf8\xf8\xf3\xf3\xf3\xc3\xc3\xc3\xa3\xa3\xa3\xef\xef\xef\xff\xff\xff\xd2\xd2\xd2\xc9\xc9\xc9\x9f\x9f\x9f\x9b\x9b\x9b\xaa\xaa\xaa\x9d\x9d\x9d\xe3\xe3\xe3\xb3\xb3\xb3\xc2\xc2\xc2\xa3\xa3\xa3\xf0\xf0\xf0\xff\xff\xff\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfa\xfa\xfa\xff\xff\xff\x9c\x9c\x9c777\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf1\xf1\xf1\xfd\xfd\xfd\xbc\xbc\xbc\xf1\xf1\xf1\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfc\xfc\xfc\xff\xff\xff\xd8\xd8\xd8\x7f\x7f\x7f\xd3\xd3\xd3\xa1\xa1\xa1\xf6\xf6\xf6\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfa\xfa\xfa\xf6\xf6\xf6\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xe5\xe5\xe5\x95\x95\x95\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfe\xfe\xfe\x7e\x7e\x7e\xc0\xc0\xc0\xa6\xa6\xa6\xe8\xe8\xe8\xff\xff\xff\xfd\xfd\xfd\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xe8\xe8\xe8\xc2\xc2\xc2\xff\xff\xff\xf3\xf3\xf3\xb3\xb3\xb3\xf4\xf4\xf4\xff\xff\xff\xd1\xd1\xd1\xc7\xc7\xc7\x9e\x9e\x9e\x9b\x9b\x9b\xaa\xaa\xaa\x9d\x9d\x9d\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xfb\xfb\xfb\xff\xff\xffeeejjj\xff\xff\xff\xfc\xfc\xfc\xfd\xfd\xfd\xfa\xfa\xfa\xff\xff\xff\xdd\xdd\xdd\xb0\xb0\xb0\xff\xff\xff\xe9\xe9\xe9\xd5\xd5\xd5\xef\xef\xef\xff\xff\xff\xfa\xfa\xfa\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfd\xfd\xfd\xfa\xfa\xfa\xfc\xfc\xfc\xfc\xfc\xfc\xff\xff\xff\xbe\xbe\xbe\x9b\x9b\x9b\xff\xff\xff\x96\x96\x96\xbb\xbb\xbb\xff\xff\xff\xfc\xfc\xfc\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xeb\xeb\xeb\xcc\xcc\xcc\xff\xff\xff\xfb\xfb\xfb\xff\xff\xff\xd3\xd3\xd3\xab\xab\xab\xff\xff\xff\xf8\xf8\xf8\xfc\xfc\xfc\xff\xff\xff\xfe\xfe\xfe\xff\xff\xff\xfc\xfc\xfc\xfa\xfa\xfa\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xf2\xf2\xf2\x7d\x7d\x7d\xff\xff\xff\x89\x89\x89\xd9\xd9\xd9\xff\xff\xff\xfd\xfd\xfd\xff\xff\xff\xfe\xfe\xfe\xfd\xfd\xfd\xff\xff\xff\xb1\xb1\xb1\xef\xef\xef\xa3\xa3\xa3\xa1\xa1\xa1\xfc\xfc\xfc\xff\xff\xff\xd2\xd2\xd2\xc8\xc8\xc8\x9f\x9f\x9f\x9c\x9c\x9c\xab\xab\xab\x9d\x9d\x9d"""
 
+app = MyApp()
+app.MainLoop()
+