Repository: kbwbe/A2plus Branch: master Commit: ae69e4d52fe2 Files: 67 Total size: 3.6 MB Directory structure: gitextract_7vrix2pg/ ├── .gitignore ├── A2plus.qrc ├── CD_A2plusupdater.py ├── CD_CheckConstraints.py ├── CD_ConstraintViewer.py ├── CD_FeatureLabels.py ├── CD_OneButton.py ├── GuiA2p/ │ └── Resources/ │ ├── compile_resources_pack.py │ ├── resources-a2p.rcc │ ├── resources.rcc │ └── ui/ │ └── a2p_prefs.ui ├── Init.py ├── InitGui.py ├── LICENSE ├── README.md ├── __init__.py ├── a2p_BoM.py ├── a2p_ConstraintCommands.py ├── a2p_ConstraintDialog.py ├── a2p_MuxAssembly.py ├── a2p_Resources3.py ├── a2p_Resources3_Qt6.py ├── a2p_constraintServices.py ├── a2p_constraints.py ├── a2p_convertPart.py ├── a2p_dependencies.py ├── a2p_fcdocumentreader.py ├── a2p_importedPart_class.py ├── a2p_importpart.py ├── a2p_lcs_support.py ├── a2p_libDOF.py ├── a2p_observers.py ├── a2p_partinformation.py ├── a2p_partlistglobals.py ├── a2p_recursiveUpdatePlanner.py ├── a2p_rigid.py ├── a2p_searchConstraintConflicts.py ├── a2p_simpleXMLreader.py ├── a2p_solversystem.py ├── a2p_topomapper.py ├── a2p_translateUtils.py ├── a2p_viewProviderProxies.py ├── a2plib.py ├── compileA2pResources.py ├── crowdin.yml ├── package.xml └── translations/ ├── A2plus.ts ├── A2plus_de.qm ├── A2plus_de.ts ├── A2plus_es-AR.qm ├── A2plus_es-AR.ts ├── A2plus_es-ES.qm ├── A2plus_es-ES.ts ├── A2plus_fr.qm ├── A2plus_fr.ts ├── A2plus_it.qm ├── A2plus_it.ts ├── A2plus_pt-br.qm ├── A2plus_pt-br.ts ├── A2plus_pt-pt.qm ├── A2plus_pt-pt.ts ├── A2plus_ru.qm ├── A2plus_ru.ts ├── A2plus_zh-CN.qm ├── A2plus_zh-CN.ts ├── README.md └── update_ts.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # file types to ignore *.pyc *.obj *.lib *.pch *.vcproj *.exp *.dep *.bak *.manifest qrc_*.cpp BuildLog.htm cmake_install.cmake *~ CMakeFiles/ *qrc.depends ui_*.h moc_*.cpp Makefile CMakeCache.txt config.h install_manifest.txt /bin/ /ALL_BUILD.dir/ /doc/ /lib/ /Mod/ /ZERO_CHECK.dir/ /build/ /src/Tools/offlinedoc/localwiki/ /src/Tools/offlinedoc/*.txt OpenSCAD_rc.py .subuser-dev /\.idea/ .tags tags ================================================ FILE: A2plus.qrc ================================================ icons/a2p_SetRelativePathes.svg icons/a2p_CenterOfMassConstraint.svg icons/a2p_RecursiveUpdate.svg icons/a2p_Asm.svg icons/a2p_Obj.svg icons/a2p_EditConstraint.svg icons/a2p_DefineConstraints.svg icons/a2p_AngleConstraint.svg icons/a2p_AutoSolve.svg icons/a2p_AxialConstraint.svg icons/a2p_AxisParallelConstraint.svg icons/a2p_AxisPlaneParallelConstraint.svg icons/a2p_CheckAssembly.svg icons/a2p_CircularEdgeConstraint.svg icons/a2p_DegreesOfFreedomAnimation.svg icons/a2p_DeleteConnections.svg icons/a2p_DuplicatePart.svg icons/a2p_EditPart.svg icons/a2p_EditUndo.svg icons/a2p_FlipConstraint.svg icons/a2p_Help.svg icons/a2p_ImportPart.svg icons/a2p_ConvertPart.svg icons/a2p_ImportPart_Update.svg icons/a2p_Isolate_Element.svg icons/a2p_LockRotation.svg icons/a2p_MovePart.svg icons/a2p_PartialProcessing.svg icons/a2p_PartsInfo.svg icons/a2p_PartsList.svg icons/a2p_PartsList_CutListOptimizer.svg icons/a2p_Pause.svg icons/a2p_PlaneCoincidentConstraint.svg icons/a2p_PlanesParallelConstraint.svg icons/a2p_Play.svg icons/a2p_PointIdentity.svg icons/a2p_PointOnLineConstraint.svg icons/a2p_PointOnPlaneConstraint.svg icons/a2p_SimpleAssemblyShape.svg icons/a2p_Solver.svg icons/a2p_SphericalSurfaceConstraint.svg icons/a2p_Stop.svg icons/a2p_ToggleTransparency.svg icons/a2p_ToggleAutoSolve.svg icons/a2p_TogglePartial.svg icons/a2p_Treeview.svg icons/a2p_RepairTree.svg icons/a2p_ViewConnection.svg icons/a2p_Workbench.svg icons/preferences-a2plus.svg ================================================ FILE: CD_A2plusupdater.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 Dan Miel * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** """ This is to be used in conjunction with A2plus Assembly Workbench. It records the features which are linked to the constraints and searches for mating features after the part is replaced in the assembly. """ import os from PySide import QtCore, QtGui try: from PySide import QtUiTools except ImportError: pass import FreeCAD import FreeCADGui import a2plib import a2p_importpart import CD_ConstraintViewer from a2p_translateUtils import translate class globaluseclass: def __init__(self): self.roundto = 5 self.partlabel = '' self.partname = '' self.notfoundfeatures = [] self.foundfeatures = [] self.alldicts = {} self.clist = [] self.partobj = None self.cylfaces = [] self.notcylfaces = [] self.partlog = [] def resetvars(self): self.partlabel = '' self.partname = '' self.notfoundfeatures = [] self.foundfeatures = [] self.alldicts = {} self.clist = [] self.partobj = None self.cylfaces = [] self.notcylfaces = [] self.repaired = 0 g = globaluseclass() class sideFuncs1(): def __init__(self): pass def opendoccheck(self): doc = FreeCAD.activeDocument() if doc is None: mApp( translate( "A2plus", "A file must be selected to start this selector.\n" "Please open a file and try again." ) ) return('Nostart') return() sideFuncs = sideFuncs1() class classFuncs(): def __init__(self): pass def selectfiles(self): ret = sideFuncs.opendoccheck() if ret == 'Nostart': return('No') partslist = FreeCADGui.Selection.getSelection() if len(partslist) == 0: mApp( translate( "A2plus", "No parts were selected to update.\n" "Select one part and try again." ) ) return('No') if len(partslist) > 1: mApp( translate( "A2plus", "I have limited the number of parts that can be updated to 1.\n" "Select one part and try again." ) ) return('No') statusform.show() statusform.txtboxstatus.setText(translate("A2plus", "Updating Assembly.")) statusform.update() for num in range(0, len(partslist)): partobj = partslist[num] self.firstrun(partobj) self.secondrun(False) def firstrun(self, partobj): g.resetvars() # reset Variables g.partobj = partobj g.partlabel = partobj.Label partname = partobj.Name g.partname = partobj.Name g.shape1 = partobj.Shape self.getfeatstomove() FreeCADGui.updateGui() return(partname) def secondrun(self, newpart=False): doc = FreeCAD.activeDocument() if newpart is False: savedAutoSolveState = a2plib.getAutoSolveState() a2plib.setAutoSolve(False) a2p_importpart.updateImportedParts(doc, True) a2plib.setAutoSolve(savedAutoSolveState) newobj = g.partobj FreeCADGui.updateGui() g.shape2 = newobj.Shape getfacelists() self.runpostchange() doc.recompute() FreeCADGui.updateGui() statusform.Closeme() def runpostchange(self): doc = FreeCAD.activeDocument() self.findfeats_attempt1() doc.recompute() FreeCADGui.updateGui() doc = FreeCAD.activeDocument() FreeCADGui.updateGui() clist = [] for e in g.notfoundfeatures: cobj = FreeCAD.ActiveDocument.getObject(e[0]) clist.append(cobj) if len(clist) != 0: CD_ConstraintViewer.form1.show() CD_ConstraintViewer.form1.loadtable(clist) else: mApp(translate("A2plus", "Update complete.") + " " + translate("A2plus", "All surfaces found")) print(translate("A2plus", "Update complete:")) print(translate("A2plus", "Total constraints - {}").format(str(len(g.clist)))) print(translate("A2plus", "Repaired constraints - {}").format((str(g.repaired)))) print(translate("A2plus", "Features not found - {}").format(str(len(g.notfoundfeatures)))) def getfeatstomove(self): doc = FreeCAD.activeDocument() clist = selectforpart(g.partlabel) g.clist = clist featname = '' di = {} for cobj in clist: """ get feature info before update.""" partname = g.partname featname = '' subElement = "" subElement = "" subobj1 = doc.getObject(cobj.Object1) subobj2 = doc.getObject(cobj.Object2) frompart = [g.partlabel, g.partname] for i in range(0, len(frompart)): partname = frompart[i] if subobj1.Label == partname: subElement = "SubElement1" featname = cobj.SubElement1 if subobj2.Label == partname: subElement = "SubElement2" featname = cobj.SubElement2 if featname != '': break direction = 'N' if hasattr(cobj, 'directionConstraint'): direction = cobj.directionConstraint """ dict is basic info for constraint these next functions adds info for the subelements""" if 'Face' in featname: """ add face info """ facenum = int(featname[4:]) di = self.getfacebynum(facenum-1, g.shape1) if 'Edge' in featname: """ add edge info """ num = int(featname[4:]) num = num - 1 di = self.getedgebynum(num, g.shape1) if 'V' in featname: """ add Vertex info """ num = int(featname[6:]) num = num - 1 di = self.getvertexbynum(num, g.shape1) d = {'Name': cobj.Name, 'cname': cobj.Name, 'featname': featname, 'subElement': subElement, 'dir': direction, 'newname': '' } d.update(di) g.alldicts[cobj.Name] = d # Save the info to a larger dictionary def getfacebynum(self, facenum, shape): """Get face info.""" face = shape.Faces[facenum] area = rondnum(face.Area) facepoints = [] center = -1 faceedges = face.Edges # numofpoints = len(face.Vertexes) for f0 in face.Vertexes: # Search the Vertexes of the face point = FreeCAD.Vector(f0.Point.x, f0.Point.y, f0.Point.z) x, y, z = point loc = rondlist([x, y, z]) facepoints.append(loc) # volume = rondnum(face.Volume) radius = -1 surftype = face.Surface surfstr = str(surftype) if 'Cylinder' in surfstr: surfstr = 'Cylinder' radius = rondnum(surftype.Radius) center = rondlist(face.Edges[0].CenterOfMass) if 'Plane' in surfstr: surfstr = 'Plane' featdict = { 'surftype': surfstr, 'area': area, 'facepoints': facepoints, 'center': center, 'radius': radius, 'edges': faceedges } return(featdict) def getedgebynum(self, num, shape): pnt2 = None edge = shape.Edges[num] length = rondnum(edge.Length) center = edge.CenterOfMass center = rondlist(center) pnt1 = edge.Vertexes[0] # Basepoints x1 = pnt1.Point.x y1 = pnt1.Point.y z1 = pnt1.Point.z startpoint = rondlist([x1, y1, z1]) try: pnt2 = edge.Vertexes[1] # Basepoints x2 = pnt2.Point.x y2 = pnt2.Point.y z2 = pnt2.Point.z endpoint = [x2, y2, z2] endpoint = rondlist([x2, y2, z2]) except: endpoint = ["-", "-", "-"] radius = -1 vector = None curvetype = '' center = -1 tstr = str(edge.Curve) if 'Line' in tstr: curvetype = 'line' if 'Circle' in tstr: curvetype = 'circle' radius = rondnum(edge.Curve.Radius) center = rondlist(edge.CenterOfMass) if 'Spline' in tstr: curvetype = 'spline' # A2 is not using these d = { 'curvetype': curvetype, 'obj': edge, 'length': length, 'startpoint': startpoint, 'center': center, 'endpoint': endpoint, 'radius': radius, 'vector': vector } return(d) def getvertexbynum(self, num, shape): v = shape.Vertexes[num] x = v.Point.x y = v.Point.y z = v.Point.z xyz = rondlist([x, y, z]) return({'xyz': xyz}) # post functions*********************************** def findfeats_attempt1(self): """Try to find features after the update.""" doc = FreeCAD.activeDocument() for k, d in g.alldicts.items(): newfeat = '' featname = d.get('featname') if featname in g.foundfeatures: newfeat = g.dOldNew.get(featname) else: if 'Face' in featname: newfeat = self.findnewface_attempt1(d) if 'Edge' in featname: newfeat = self.findnewedge_attempt1(d) if 'Vertex' in featname: newfeat = self.findnewvertex_attempt1(d) if newfeat == '' or newfeat == 'No': g.notfoundfeatures.append([d.get('Name'), d]) pass else: if newfeat in g.foundfeatures is False: g.foundfeatures.append(newfeat) g.dOldNew[featname] = newfeat self.swapfeature(newfeat, d) doc.recompute() if len(g.notfoundfeatures) > 0: self.findfeats_attempt2() def swapfeature(self, newfeat, d): """Add the new feature to the constraint.""" cname = d.get('cname') g.partlog.append('Found ' + newfeat) cobj = FreeCAD.ActiveDocument.getObject(cname) mobj = FreeCAD.ActiveDocument.getObject(cname+'_mirror') SubElement = d.get('subElement') if SubElement == 'SubElement1': if cobj.SubElement1 != newfeat: cobj.SubElement1 = newfeat mobj.SubElement1 = newfeat g.repaired = g.repaired + 1 if SubElement == 'SubElement2': if cobj.SubElement2 != newfeat: cobj.SubElement2 = newfeat mobj.SubElement2 = newfeat g.repaired = g.repaired + 1 direction = d.get('dir') if hasattr(cobj, 'directionConstraint'): cobj.directionConstraint = direction if hasattr(mobj, 'directionConstraint'): mobj.directionConstraint = direction return # If not found on first attempt try again def findfeats_attempt2(self): newfeat = '' notfoundtemp = g.notfoundfeatures g.notfoundfeatures = [] for ea in notfoundtemp: d = ea[1] featname = d.get('featname') if featname in g.foundfeatures: newfeat = g.dOldNew.get(featname) else: if 'Face' in featname: newfeat = self.findnewface_attempt2(d) if 'Edge' in featname: newfeat = self.findnewedge_attempt2(d) if newfeat == 'No' or newfeat == '': g.notfoundfeatures.append([d.get('Name'), d]) newfeat = 'None' else: if newfeat in g.foundfeatures is False: g.foundfeatures.append(newfeat) g.dOldNew[featname] = newfeat self.swapfeature(newfeat, d) def findnewface_attempt1(self, d): # First attempt to find a face. Perfect fit is area the same and all points the same face = '' if d.get('surftype') == 'Cylinder': face = self.findCylinderattempt1(d) else: for num in range(0, len(g.shape2.Faces)): testd = self.getfacebynum(num, g.shape2) if testd.get('surftype') != 'Cylinder': if d.get('area') == testd.get('area') and d.get('facepoints') == testd.get('facepoints'): face = 'Face' + str(num + 1) break return(face) def findnewface_attempt2(self, dict_): """ second attempt ignores area; looks for points(perhaps this should be first if holes are added area would change)""" face = '' if dict_.get('surftype') == 'Cylinder': face = self.findCylinderattempt2(dict_) else: for num in range(0, len(g.shape2.Faces)): testdict_ = self.getfacebynum(num, g.shape2) if dict_.get('surftype') != 'Cylinder': points = dict_.get('facepoints') testpoints = testdict_.get('facepoints') if len(points) < len(testpoints): list1 = points list2 = testpoints else: list1 = testpoints list2 = points match = 0 for vert in list1: if vert in list2: match = match+1 if match == len(list1): face = 'Face' + str(num + 1) break if face == '': dedges = dict_.get('edges') edge = dedges[0] pnt1 = edge.Vertexes[0] # Basepoints x = pnt1.Point.x y = pnt1.Point.y z = pnt1.Point.z dlist = [rondnum(edge.Length), x, y, z] for num in range(0, len(g.shape2.Faces)): testdict_ = self.getfacebynum(num, g.shape2) if dict_.get('surftype') != 'Cylinder': ed = testdict_.get('edges') for e in ed: pnt1 = e.Vertexes[0] # Basepoints x = pnt1.Point.x y = pnt1.Point.y z = pnt1.Point.z tlist = [e.Length, x, y, z] if dlist == tlist: face = 'Face' + str(num + 1) break return(face) def findCylinderattempt1(self, dict_): face = '' for num in g.cylfaces: testdict = self.getfacebynum(num, g.shape2) if dict_.get('facepoints') == testdict.get('facepoints') and\ dict_.get('radius') == testdict.get('radius'): face = 'Face' + str(num + 1) break return(face) def findCylinderattempt2(self, dict_): # First attempt to find a face. Perfect fit is area = same all points = same face = '' ver1 = dict_.get('center') for num in g.cylfaces: testdict_ = self.getfacebynum(num, g.shape2) ver2 = testdict_.get('center') if ver1 == ver2: face = 'Face' + str(num + 1) break return(face) def findnewedge_attempt1(self, dict_): edge = '' if dict_.get('curvetype') == 'circle': for num in range(0, len(g.shape2.Edges)): testdict_ = self.getedgebynum(num, g.shape2) if dict_.get('radius') == testdict_.get('radius') and dict_.get('center') == testdict_.get('center'): edge = 'Edge' + str(num + 1) break else: for num in g.notcylfaces: testdict_ = self.getedgebynum(num, g.shape2) if dict_.get('length') == testdict_.get('length')\ and dict_.get('center') == testdict_.get('center'): edge = 'Edge' + str(num + 1) break return(edge) def findnewedge_attempt2(self, dict_): edge = '' if dict_.get('curvetype') == 'circle': center1 = dict_.get('center') for num in range(0, len(g.shape2.Edges)): testdict_ = self.getedgebynum(num, g.shape2) center2 = testdict_.get('center') if center1 == center2: edge = 'Edge' + str(num + 1) break for num in range(0, len(g.shape2.Edges)): testdict_ = self.getedgebynum(num, g.shape2) if dict_.get('curvetype') == 'circle': if testdict_.get('curvetype') == 'circle': if dict_.get('startpoint') == testdict_.get('startpoint'): edge = 'Edge' + str(num + 1) break return(edge) def findnewvertex_attempt1(self, dict_): vertex = '' for num in range(0, len(g.shape2.Vertexes)): test = self.getvertexbynum(num, g.shape2) if dict_.get('xyz') == test.get('xyz'): vertex = 'Vertex' + str(num + 1) return(vertex) funcs = classFuncs() def getfacelists(): g.cylfaces = [] g.notcylfaces = [] for num in range(0, len(g.shape2.Faces)): if str(g.shape2.Faces[num].Surface) == '': g.cylfaces.append(num) elif str(g.shape2.Faces[num].Surface) == '': g.notcylfaces.append(num) def selectforpart(partlabel, selectType='std'): # find the constraints for the part selected doc = FreeCAD.activeDocument() clist = [] pnamelist = [] pnamelist.append(partlabel) for obj in FreeCAD.ActiveDocument.Objects: # Select constraints if 'ConstraintInfo' in obj.Content: if '_mirror' not in obj.Name: subobj1 = doc.getObject(obj.Object1) subobj2 = doc.getObject(obj.Object2) part1name = subobj1.Label part2name = subobj2.Label if selectType == 'betweenonly': clist.append(obj) else: if part1name in pnamelist or part2name in pnamelist: clist.append(obj) return(clist) def rondnum(num, rndto=g.roundto, mmorin='mm'): # round a number to digits in global # left in mm for accuracy. rn = round(num, rndto) if mmorin == 'in': rn = rn/25.4 return(rn) def rondlist(inpList, inch=False): x = inpList[0] y = inpList[1] z = inpList[2] x = rondnum(x) y = rondnum(y) z = rondnum(z) if inch: x = x/25.4 y = y/25.4 z = z/25.4 return([x, y, z]) class mApp(QtGui.QWidget): # for error messages def __init__(self, msg, msgtype='ok'): super().__init__() self.initUI(msg) def initUI(self, msg, msgtype='ok'): self.setGeometry(800, 300, 300, 400) if msgtype == 'ok': buttonReply = QtGui.QMessageBox.question(self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Ok) if msgtype == 'yn': buttonReply = QtGui.QMessageBox.question(self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if buttonReply == QtGui.QMessageBox.Yes: return('y') else: return('n') class formReport(QtGui.QDialog): """ Form shows while updating edited parts. """ def __init__(self, name): self.name = name super(formReport, self).__init__() self.setWindowTitle(translate("A2plus", "Constraint Checker")) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setGeometry(300, 100, 300, 200) # xy, wh self.setStyleSheet("font: 10pt arial MS") self.txtboxstatus = QtGui.QTextEdit(self) self.txtboxstatus.move(5, 30) self.txtboxstatus.setFixedWidth(250) self.txtboxstatus.setFixedHeight(60) self.lblviewlabel = QtGui.QLabel(self) self.lblviewlabel.setText(translate("A2plus", "Status")) self.lblviewlabel.move(5, 5) self.lblviewlabel.setFixedWidth(250) self.lblviewlabel.setFixedHeight(20) self.lblviewlabel.setStyleSheet("font: 13pt arial MS") def showme(self, msg): print(translate("A2plus", "Showing editing part")) self.show() def Closeme(self): self.close() def closeEvent(self, event): self.close() statusform = formReport('statusform') class rnp_Update_A2pParts: def Activated(self): # funcs.runinorder() funcs.selectfiles() def Deactivated(self): """This function is executed when the workbench is deactivated""" FreeCADGui.Selection.clearSelection() return def GetResources(self): mypath = os.path.dirname(__file__) return { 'Pixmap': mypath + "/icons/a2p_Update.svg", 'MenuText': translate("A2plus", "Updates parts from the A2plus workbench that has been modified"), 'ToolTip': translate("A2plus", "Updates the A2plus assembly when parts are modified.\n" "To update the assembly, select the part that you have modified and press the icon.\n" "When the update has finished run the A2plus solver to verify if there are broken constraints.\n" "This is an attempt to reduce the number of broken constraints caused\n" "when modifying a part from FreeCAD A2plus assembly workbench. This records the\n" "constraints mating surfaces immediately before the update and tries to\n" "reconnect them after the update.\n" "If this fails you can undo this update by using the undo button\n" "and running the standard A2plus updater.") } FreeCADGui.addCommand('rnp_Update_A2pParts', rnp_Update_A2pParts()) # ============================================================================= ================================================ FILE: CD_CheckConstraints.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 Dan Miel * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** # This is to be used with A2plus Assembly WorkBench # Tries to find constraints that are conflicting with each other. import os from PySide import QtGui, QtCore # from PySide.QtGui import * import FreeCAD import FreeCADGui import a2p_solversystem import a2p_constraintServices import CD_ConstraintViewer translate = FreeCAD.Qt.translate class globaluseclass: def __init__(self): self.checkingnum = 0 self.roundto = 3 # self.labelexist = False # self.movedconsts = [] # self.allErrors = {} self.errorList = [] self.conflicterror = False g = globaluseclass() class mApp(QtGui.QWidget): # for error messages def __init__(self, msg): super().__init__() self.title = translate("A2plus", "Information") self.initUI(msg) def initUI(self, msg, msgtype='ok'): self.setWindowTitle(self.title) self.setGeometry(100, 100, 320, 200) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) if msgtype == 'ok': buttonReply = QtGui.QMessageBox.question(self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Ok) if msgtype == 'yn': buttonReply = QtGui.QMessageBox.question(self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if buttonReply == QtGui.QMessageBox.Yes: pass # print('Yes clicked.') else: pass # print('No clicked.') self.show() class formMain(QtGui.QMainWindow): def __init__(self, name): self.name = name super(formMain, self).__init__() self.setWindowTitle(translate("A2plus", "Constraint Checker")) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setGeometry(300, 100, 600, 140) self.setStyleSheet("font:11pt arial MS") self.txtboxReport = QtGui.QTextEdit(self) self.txtboxReport.setGeometry(5, 50, 650, 90) # x, y, w, h self.lblviewlabel = QtGui.QLabel(self) self.lblviewlabel.setText(translate("A2plus", "To view the constraints, press 'Open Viewer'")) self.lblviewlabel.move(5, 5) self.lblviewlabel.setFixedWidth(350) self.lblviewlabel.setFixedHeight(20) self.lblviewlabel.setStyleSheet("font: 13pt arial MS") self.btnOpenViewer = QtGui.QPushButton(self) self.btnOpenViewer.move(365, 5) self.btnOpenViewer.setFixedWidth(100) self.btnOpenViewer.setFixedHeight(28) self.btnOpenViewer.setToolTip(translate("A2plus", "View the listed constraints in the the Constraint Viewer.")) self.btnOpenViewer.setText(translate("A2plus", "Open Viewer")) self.btnOpenViewer.clicked.connect(lambda: self.openViewer()) self.btnCloseForm = QtGui.QPushButton(self) self.btnCloseForm.move(475, 5) self.btnCloseForm.setFixedWidth(100) self.btnCloseForm.setFixedHeight(28) self.btnCloseForm.setToolTip(translate("A2plus", "Close this form.")) self.btnCloseForm.setText(translate("A2plus", "Close")) self.btnCloseForm.clicked.connect(lambda: self.Closeme()) def openViewer(self): CD_ConstraintViewer.form1.loadtable(g.errorList) # clist = [] # doc = FreeCAD.activeDocument() # for (k, v) in g.allErrors.items(): # cobj = doc.getObject(k) # clist.append(cobj) # CD_ConstraintViewer.form1.show() # CD_ConstraintViewer.form1.loadtable(clist) def resizeEvent(self, event): # resize table formx = self.width() formy = self.height() self.txtboxReport.resize(formx - 20, formy - 60) def showme(self, msg): self.txtboxReport.setText(msg) self.show() def Closeme(self): self.close() def closeEvent(self, event): form1.Closeme() self.close() form1 = formMain('form1') class classCheckConstraints(): def __init__(self): self.name = None self.dir_errors = [] self.rigids = [] self.floaters = [] def startcheck(self): ''' Check for opened file ''' if FreeCAD.activeDocument() is None: msg = translate("A2plus", "A A2plus file must be opened to start this checker") + "\n" + translate("A2plus", "Please open a file and try again") mApp(msg) return ''' Getting rigids for a check ''' doc = FreeCAD.activeDocument() ss = a2p_solversystem.SolverSystem() ss.loadSystem(doc) ss.assignParentship(doc) rigids = ss.rigids for e in rigids: # get rigid part if e.disatanceFromFixed is None: self.floaters.append(e.label) self.rigids.append(e.label) constraints = self.getallconstraints() if len(constraints) == 0: mApp(translate("A2plus", "Cannot find any constraints in this file.")) return() statusform.showme(translate("A2plus", "Checking constraints")) self.dir_errors = a2p_constraintServices.reAdjustConstraintDirections(FreeCAD.activeDocument()) print(self.dir_errors) self.checkformovement(constraints, True) if len(g.errorList) != 0: form1.openViewer() # msg = '' # for e in g.allErrors: # line = str(g.allErrors.get(e)) # msg = msg + line + '\n' # form1.showme(msg) else: FreeCAD.Console.PrintMessage("") FreeCAD.Console.PrintMessage(translate("A2plus", "No constraint errors found") + "\n") statusform.Closeme() def checkformovement(self, constraintlist, putPartBack=True): doc = FreeCAD.activeDocument() g.errorList = [] self.Bothpartsfixed = False for checkingnum in range(0, len(constraintlist)): self.errortype = '' self.p1fix = False self.p2fix = False self.setfix = 0 cobj = constraintlist[checkingnum] statusform.setWindowTitle(translate("A2plus", "Checking {} of {}").format(str(checkingnum), str(len(constraintlist)))) subobj1 = cobj.getPropertyByName('Object1') subobj2 = cobj.getPropertyByName('Object2') part1 = doc.getObject(subobj1) # Save Position and fixed part2 = doc.getObject(subobj2) ''' Get if part is fixed ''' if hasattr(part1, "fixedPosition"): self.p1fix = part1.fixedPosition if hasattr(part2, "fixedPosition"): self.p2fix = part2.fixedPosition if cobj.Name in self.dir_errors: errortype = 'Feature Missing' self.addError(cobj, errortype) continue if self.p1fix and self.p2fix: """ If both are fixed report and skip solving""" self.addError(cobj, 'Both fixed') continue if part1.Label in self.floaters and part2.Label in self.floaters: # If both parts are in floaters list report as Floaters self.addError(cobj, 'Floating parts') continue if self.p1fix is False and self.p2fix is False: # If neither part is fixed, fix part 1 if part1.Label in self.rigids: part1.fixedPosition = True self.setfix = 1 else: part2.fixedPosition = True self.setfix = 2 preBasePt1 = part1.Placement.Base preBasePt2 = part2.Placement.Base preRotPt1 = part1.Placement.Rotation.Axis preRotPt2 = part2.Placement.Rotation.Axis preAnglePt1 = part1.Placement.Rotation.Angle preAnglePt2 = part2.Placement.Rotation.Angle a2p_solversystem.solveConstraints(FreeCAD.activeDocument(), None, False, [cobj], showFailMessage=False) # solve a single constraint if self.setfix == 1: part1.fixedPosition = self.p1fix if self.setfix == 2: part2.fixedPosition = self.p2fix self.setfix = 0 # Recording location after move postBasePt1 = part1.Placement.Base # Round vectors to 4 places postBasePt2 = part2.Placement.Base ''' Checking if part moved ''' v1 = FreeCAD.Vector(rondlist(preBasePt1)) v2 = FreeCAD.Vector(rondlist(postBasePt1)) v3 = FreeCAD.Vector(rondlist(preBasePt2)) v4 = FreeCAD.Vector(rondlist(postBasePt2)) if v1 != v2 or v3 != v4: self.errortype = 'Conflict. ' self.addError(cobj, self.errortype) errortype = '' if putPartBack: # Places part back in original location if putPartBack is True part1.Placement.Base = preBasePt1 part1.Placement.Rotation.Axis = preRotPt1 part1.Placement.Rotation.Angle = preAnglePt1 part2.Placement.Base = preBasePt2 part2.Placement.Rotation.Axis = preRotPt2 part2.Placement.Rotation.Angle = preAnglePt2 def addError(self, cobj, errortype): g.errorList.append([cobj, errortype]) def getallconstraints(self): doc = FreeCAD.activeDocument() constraints = [] for obj in doc.Objects: if 'ConstraintInfo' in obj.Content: if 'mirror' not in obj.Name: constraints.append(obj) return(constraints) CheckConstraints = classCheckConstraints() class formReport(QtGui.QDialog): """ Form shows while updating edited parts. """ def __init__(self, name): self.name = name super(formReport, self).__init__() self.setWindowTitle(translate("A2plus", "Checking Constraints")) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setGeometry(300, 100, 300, 40) # x, y, w, h self.setStyleSheet("font: 10pt arial MS") def showme(self, msg): self.setWindowTitle(msg) self.show() def Closeme(self): self.close() def closeEvent(self, event): self.close() statusform = formReport('statusform') def rondlist(list, inch=False): x = list[0] y = list[1] z = list[2] x = rondnum(x) y = rondnum(y) z = rondnum(z) if inch: x = x/25.4 y = y/25.4 z = z/25.4 return([x, y, z]) def rondnum(num, mmorin='mm'): # round a number to digits in global # left in mm for accuracy. rn = round(num, g.roundto) if mmorin == 'in': rn = rn / 25.4 return(rn) class rnp_Constraint_Checker: def Activated(self): CheckConstraints.startcheck() def onDeleteConstraint(self): pass def Deactivated(): pass # This function is executed when the workbench is deactivated def GetResources(self): mypath = os.path.dirname(__file__) return { 'Pixmap': mypath + "/icons/CD_ConstraintChecker.svg", 'MenuText': translate("A2plus", "Checks constraints"), 'ToolTip': translate("A2plus", "This checks all constraints. After checking it will list all constraints that it found problems with.") + "\n" + translate("A2plus", "The list can then be opened in the Constraint viewer.") } FreeCADGui.addCommand('rnp_Constraint_Checker', rnp_Constraint_Checker()) ================================================ FILE: CD_ConstraintViewer.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 Dan Miel * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** # This is to be used with A2plus Assembly WorkBench # Tries to find constraints that are conflicting with each other. import os import sys import subprocess from PySide import QtCore, QtGui try: from PySide import QtUiTools except ImportError: pass import FreeCAD import FreeCADGui import a2plib import a2p_solversystem import CD_CheckConstraints import CD_FeatureLabels translate = FreeCAD.Qt.translate class globaluseclass: def __init__(self): self.checkingnum = 0 self.roundto = 4 self.labelexist = False g = globaluseclass() class mApp(QtGui.QWidget): # for error messages def __init__(self, msg, msgtype='ok'): super().__init__() self.initUI(msg) def initUI(self, msg, msgtype='ok'): self.setGeometry(100, 200, 320, 200) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) if msgtype == 'ok': buttonReply = QtGui.QMessageBox.question( self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Ok ) if msgtype == 'yn': buttonReply = QtGui.QMessageBox.question( self, translate("A2plus", "Information"), msg, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No ) if buttonReply == QtGui.QMessageBox.Yes: pass # print('Yes clicked.') else: pass # print('No clicked.') self.show() class ShowPartProperties(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.drt() self.oldcell = '' def drt(self): self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setGeometry(100, 50, 1024, 280) # x, y, w, h self.setWindowTitle(translate("A2plus", "Constraint Viewer")) self.setStyleSheet("font: 11pt arial MS") bar = QtGui.QMenuBar(self) labelMenu = bar.addMenu(translate("A2plus", "Labels")) labelMenu.addAction(translate("A2plus", "Open Dialog")) labelMenu.addAction(translate("A2plus", "Delete labels")) labelMenu.triggered[QtGui.QAction].connect(self.process_menus) infoMenu = bar.addMenu(translate("A2plus", "Info")) infoMenu.addAction(translate("A2plus", "Places of accuracy = {}").format(str(g.roundto))) infoMenu.triggered[QtGui.QAction].connect(self.process_menus) helpMenu = bar.addMenu(translate("A2plus", "Help")) helpMenu.addAction(translate("A2plus", "Open Help")) helpMenu.triggered[QtGui.QAction].connect(self.process_menus) """ Main Table """ self.tm = QtGui.QTableWidget(self) self.tm.setGeometry(10, 120, 650, 50) # xy,wh self.tm.setWindowTitle(translate("A2plus", "Broken Constraints")) self.tm.setEditTriggers(QtGui.QTableWidget.NoEditTriggers) self.tm.setRowCount(0) self.tm.setColumnCount(11) self.tm.setMouseTracking(True) self.tm.cellClicked.connect(self.cell_was_clicked) self.tm.setHorizontalHeaderLabels([translate("A2plus", "Direction"), translate("A2plus", "Suppress"), 'Run', 'Constraint name', 'Prt1 feat', 'Prt2 feat', 'Part1', 'Part2', 'P1 Fixed', 'P2 Fixed', 'Problem' ] ) self.tm.horizontalHeader().sectionClicked.connect(self.fun) """ Creating function buttons """ self.btns = [] btnLabels = [ [translate("A2plus", "Import from part"), translate("A2plus", "Select a part and import \nall of the constraints for that part")], [translate("A2plus", "Import from Tree"), translate("A2plus", "Copy selected constraints from the Tree")] ] self.createButtonColumn(5, btnLabels) btnLabels = [ [translate("A2plus", "Clear Table"), translate("A2plus", "Clear the table")], [translate("A2plus", "Attach to"), translate("A2plus", "Select the feature to change in table.\nSelect surface to change to.")] ] self.createButtonColumn(145, btnLabels) btnLabels = [ [translate("A2plus", "Clear Tree"), translate("A2plus", "Remove search color from tree.")], [translate("A2plus", "Find in Tree"), translate("A2plus", "Finds the constraint in the tree\nfor the select row in table.")] ] self.createButtonColumn(285, btnLabels) btnLabels = [ [translate("A2plus", "Std Solver"), translate("A2plus", "Same as the solver above.")], [translate("A2plus", "Find w label"), translate("A2plus", "Press to toggle a label for selected feature.")] ] self.createButtonColumn(425, btnLabels) btnLabels = [ [translate("A2plus", "Close"), translate("A2plus", "Close this window")], ] self.createButtonColumn(565, btnLabels) def createButtonColumn(self, xloc, btnLabels): for row in range(0, len(btnLabels)): btny = 30 + (28*row) self.btn = QtGui.QPushButton(str(btnLabels[row][0]), self) self.btn.move(xloc, btny) self.btn.setFixedWidth(140) self.btn.setFixedHeight(25) self.btn.setToolTip(btnLabels[row][1]) self.btn.released.connect(self.button_pushed) # pressed self.btns.append(self.btn) def button_pushed(self): index = self.btns.index(self.sender()) buttext = self.btns[index].text() if buttext == translate("A2plus", "Import from part"): conflicts.selectforpart() if buttext == translate("A2plus", "Import from Tree"): conflicts.selectforTree() if translate("A2plus", "Clear Table") in buttext: self.clearTable() if buttext == translate("A2plus", "Attach to"): """ attaches leg to selected surface""" sidefuncs.swapselectedleg() if translate("A2plus", "Clear Tree") in buttext: search.reset1() if translate("A2plus", "Find in Tree") in buttext: searchterm = lastclc.cname search.startsearch(searchterm, 0) if buttext == translate("A2plus", "Std Solver"): self.stdSolve() if buttext == translate("A2plus", "Find w label"): """ createlabel for single part """ if g.labelexist: CD_FeatureLabels.labels.deletelabels() g.labelexist = False return fname = lastclc.text if lastclc.column == 4: pname = self.tm.item(lastclc.row, 7).text() elif lastclc.column == 5: pname = self.tm.item(lastclc.row, 9).text() else: mApp(translate("A2plus", "A part feature must be selected in the table")) return sels = FreeCAD.ActiveDocument.getObjectsByLabel(pname) for e in sels: try: partobj = e # line is used to check if part is selected except: mApp(translate("A2plus", "The table has lost focus.\nPlease reselect in the table.")) return s = FreeCADGui.Selection.getSelectionEx()[0] try: ent = s.SubObjects[0] except: mApp(translate("A2plus", "The selected text in the table is not a proper feature name:\n{} {}").format(fname, pname)) return CD_FeatureLabels.labels.labelForTable(ent, fname) g.labelexist = True if buttext == translate("A2plus", "Find Constraint"): search.startsearch(lastclc.cname, 0) if buttext == translate("A2plus", "Close"): self.Closeme() def clearTable(self): self.tm.setRowCount(0) def process_menus(self, q): """ process the menu according to the button text""" if q.text() == translate("A2plus", "Open Dialog"): CD_FeatureLabels.form1.showme() if q.text() == translate("A2plus", "Delete labels"): CD_FeatureLabels.labels.deletelabels() if q.text() == translate("A2plus", "Open Help"): # File name may be translated, e.g. to "CD_Помощь для инструмента Диагностики.pdf" (this file must be present) pdf_file = os.path.join(os.path.dirname(os.path.dirname(__file__)), translate("A2plus", "CD_Help for Diagnostic tools.pdf")) # pdf_file = a2plib.get_module_path() + "\CD_Help for Diagnostic tools.pdf" # For Linux Mint 21 64-bit with XFCE if sys.platform in ['linux', 'linux2', 'darwin', 'cygwin']: import webbrowser webbrowser.open_new_tab(pdf_file) # For Windows 10 Pro 64-bit elif sys.platform == 'win32': subprocess.Popen([pdf_file], shell=True) # For others OS else: print("Found platform %s, OS %s" % (sys.platform, os.name)) def process_misc_menus(self, q): menutext = q.text() if menutext == "Solve without error checking": conflicts.solveNOerrorchecking() def stdSolve(self): doc = FreeCAD.activeDocument() a2p_solversystem.solveConstraints(doc) def fun4(self, Ncol): self.tm = self.tm.sort_values(self.tm.headers[Ncol], ascending=QtGui.AscendingOrder) def fun(self, i): # click in column header to sort column self.tm.sortByColumn(i) def loadtable(self, TempList): self.showme() ConstraintList = [] try: test = str(len(TempList[0])) # if this fail array is only one column ConstraintList = TempList except: for e in TempList: # Add second column to array if needed ConstraintList.append([e, 'None']) # fill the table with information from a list of constraints self.tm.setRowCount(0) doc = FreeCAD.activeDocument() row = 0 for objects in reversed(ConstraintList): object = objects[0] problemstr = objects[1] try: cname = object.Name constraint = doc.getObject(cname) except: continue ob1 = doc.getObject(constraint.Object1) if hasattr(ob1, 'fixedPosition') is False: fixed1 = 'N' else: fixed1 = str(ob1.fixedPosition) ob2 = doc.getObject(constraint.Object2) if hasattr(ob2, 'fixedPosition') is False: fixed2 = 'N' else: ob2 = doc.getObject(constraint.Object2) fixed2 = str(ob2.fixedPosition) part1 = doc.getObject(constraint.Object1) part2 = doc.getObject(constraint.Object2) if hasattr(constraint, "directionConstraint"): direction = constraint.directionConstraint else: direction = 'None' self.tm.insertRow(0) fn1 = constraint.SubElement1 fn2 = constraint.SubElement2 if len(fn1) == 0: fn1 = 'None' if len(fn2) == 0: fn2 = 'None' direction = QtGui.QTableWidgetItem(direction) sup = QtGui.QTableWidgetItem(str(constraint.Suppressed)) run = QtGui.QTableWidgetItem(str('Run')) name = QtGui.QTableWidgetItem(cname) fixed1 = QtGui.QTableWidgetItem(fixed1) Part1 = QtGui.QTableWidgetItem(part1.Label) fname1 = QtGui.QTableWidgetItem(fn1) fixed2 = QtGui.QTableWidgetItem(fixed2) Part2 = QtGui.QTableWidgetItem(part2.Label) fname2 = QtGui.QTableWidgetItem(fn2) problem = QtGui.QTableWidgetItem(str(problemstr)) self.tm.setItem(0, 0, direction) self.tm.setItem(0, 1, sup) self.tm.setItem(0, 2, run) self.tm.setItem(0, 3, name) self.tm.setItem(0, 4, fname1) self.tm.setItem(0, 5, fname2) self.tm.setItem(0, 6, Part1) self.tm.setItem(0, 7, Part2) self.tm.setItem(0, 8, fixed1) self.tm.setItem(0, 9, fixed2) self.tm.setItem(0, 10, problem) if self.tm.item(0, 4).text() == 'None': self.tm.item(0, 4).setBackground(QtGui.QBrush(QtGui.QColor('yellow'))) if self.tm.item(0, 5).text() == 'None': self.tm.item(0, 5).setBackground(QtGui.QBrush(QtGui.QColor('yellow'))) row = row+1 header = self.tm.horizontalHeader() header.setResizeMode(QtGui.QHeaderView.ResizeToContents) self.current_hover = [0, 0] self.hoveronoff(True) self.oldcell = self.tm.item(2, 1) self.tm.current_hover = [0, 0] for row in range(self.tm.rowCount()): self.tm.setRowHeight(row, 15) def hoveronoff(self, val): self.tm.setMouseTracking(val) def cell_was_clicked(self, row, column): header = self.tm.horizontalHeaderItem(column).text() item = self.tm.item(row, 3) lastclc.cellpicked(row, column) cname = item.text() try: constraint = FreeCAD.ActiveDocument.getObject(cname) partobj1 = FreeCAD.ActiveDocument.getObject(constraint.Object1) partobj2 = FreeCAD.ActiveDocument.getObject(constraint.Object2) except: mApp(translate("A2plus", "Constraint is not in file. Was it deleted?")) return FreeCADGui.Selection.clearSelection() if header == 'Run': conflicts.checkforfixandsolve([constraint]) FreeCADGui.Selection.addSelection(partobj1, constraint.SubElement1) FreeCADGui.Selection.addSelection(partobj2, constraint.SubElement2) if header == 'Constraint name': FreeCADGui.Selection.addSelection(partobj1, constraint.SubElement1) FreeCADGui.Selection.addSelection(partobj2, constraint.SubElement2) if header == 'Prt1 feat': FreeCADGui.Selection.addSelection(partobj1, constraint.SubElement1) g.lastclickedFeat = FreeCADGui.Selection.getSelection() if header == 'Prt2 feat': FreeCADGui.Selection.addSelection(partobj2, constraint.SubElement2) g.lastclickedFeat = FreeCADGui.Selection.getSelection() FreeCADGui.Selection.setPreselection if header == 'Part1': FreeCADGui.Selection.addSelection(partobj1) if header == 'Part2': FreeCADGui.Selection.addSelection(partobj2) if header == translate("A2plus", "Suppress"): if constraint.Suppressed is False: constraint.Suppressed = True else: constraint.Suppressed = False tx = str(constraint.Suppressed) item2 = self.tm.item(row, column) item2.setText(tx) if header == translate("A2plus", "Direction"): item2 = self.tm.item(row, column) if item2.text() != 'None': direction = constraint.directionConstraint if direction == 'opposed': newdir = 'aligned' else: newdir = 'opposed' constraint.directionConstraint = newdir direction = constraint.directionConstraint item2 = self.tm.item(row, column) # item2.setText(direction[0]) item2.setText(direction) conflicts.checkforfixandsolve([constraint]) def showme(self): if FreeCADGui.activeDocument() is None: mApp(translate("A2plus", "A file must be opened to start this selector.\nPlease open a file and try again")) return() self.clearTable() self.show() lastclc.clear def Closeme(self): # close window and ensure that obsever is off selObv.SelObserverOFF() self.close() def closeEvent(self, event): selObv.SelObserverOFF() form1.Closeme() self.close() def resizeEvent(self, event): """ resize table """ formx = self.width() formy = self.height() self.tm.resize(formx - 20, formy - 120) form1 = ShowPartProperties() class classconflictreport(): def __init__(self): self.name = None def selectforTree(self): doc = FreeCAD.activeDocument() clist = [] sels = FreeCADGui.Selection.getSelectionEx() if len(sels) == 0: form1.clearTable() mApp(translate("A2plus", "Nothing was selected in the Tree.")) return for sel in sels: cname = sel.Object.Name cname = cname.replace('_mirror', '') cobj = doc.getObject(cname) if 'ConstraintInfo' in cobj.Content: clist.append(cobj) if len(clist) == 0: form1.clearTable() mApp(translate("A2plus", "There were no constraints selected in the Tree.\nSelect one or more constraints and try again.")) return form1.loadtable(clist) # select a part in the Gui and the attached constraints are sent to the form. def selectforpart(self): pnamelist = [] doc = FreeCAD.activeDocument() clist = [] sels = FreeCADGui.Selection.getSelectionEx() if len(sels) == 0: mApp(translate("A2plus", "No parts were selected in the window.")) return if len(sels) == 1: pnamelist.append(sels[0].Object.Label) else: for sel in sels: pnamelist.append(sel.Object.Label) for obj in FreeCAD.ActiveDocument.Objects: # Select constraints if 'ConstraintInfo' in obj.Content and '_mirror' not in obj.Name: subobj1 = doc.getObject(obj.Object1) subobj2 = doc.getObject(obj.Object2) part1name = subobj1.Label part2name = subobj2.Label if len(sels) == 1: if part1name in pnamelist or part2name in pnamelist: clist.append(obj) else: if part1name in pnamelist and part2name in pnamelist: clist.append(obj) if len(clist) == 0: if len(sels) == 1: msg = translate("A2plus", "There are no constraints for this part.") else: msg = translate("A2plus", "There are no constraints between these parts.") mApp(msg) return form1.loadtable(clist) def checkforfixandsolve(self, constraintlist): ''' Checks to see if both parts are fixed, then solves constraint. ''' if len(constraintlist) == 0: return doc = FreeCAD.activeDocument() cobj = constraintlist[0] cobj = constraintlist[g.checkingnum] subobj1 = cobj.getPropertyByName('Object1') subobj2 = cobj.getPropertyByName('Object2') part1 = doc.getObject(subobj1) # Save Position and fixed part2 = doc.getObject(subobj2) self.p1fix = False self.p2fix = False ''' Get if both parts are fixed ''' if hasattr(part1, "fixedPosition"): self.p1fix = part1.fixedPosition if hasattr(part2, "fixedPosition"): self.p2fix = part2.fixedPosition if self.p1fix and self.p2fix: mApp(translate("A2plus", "Both parts are fixed.")) return ''' if neither is fixed ''' if self.p1fix is False and self.p2fix is False: part1.fixedPosition = True a2p_solversystem.solveConstraints(doc, matelist=constraintlist, showFailMessage=False) if hasattr(part1, "fixedPosition"): part1.fixedPosition = self.p1fix return conflicts = classconflictreport() class classsidefunctions(): def __init__(self, name): self.name = name self.sel1 = '' def swapselectedleg(self): # starts observer to select a new feature when replacing manually. if lastclc.column < 4 or lastclc.column > 5: mApp(translate("A2plus", "Surfaces can only be replaced in columns\n'Part1 feat' or 'Part2 feat'")) return if len(FreeCADGui.Selection.getSelectionEx()) == 0 and lastclc.text != 'None': mApp(translate("A2plus", "No feature has been selected")) return selObv.SelObserverON() def turnoffobserv(self): # Turns observer off and selects both features selObv.SelObserverOFF() self.swap1leg() def swap1leg(self): """ This is used to swap one surface for another manually """ feat2name = "" if len(FreeCADGui.Selection.getSelectionEx()) == 0: return sel = FreeCADGui.Selection.getSelectionEx()[0] if lastclc.text == 'None': feat2name = sel.SubElementNames[0] else: feat2name = sel.SubElementNames[0] cname = lastclc.cname FreeCADGui.Selection.clearSelection() d = {'cname': cname, 'SubElement': lastclc.SubElement, 'dir': lastclc.dir, 'newfeat': feat2name } self.swapfeature(d) cobj = FreeCAD.ActiveDocument.getObject(cname) partobj1 = FreeCAD.ActiveDocument.getObject(cobj.Object1) partobj2 = FreeCAD.ActiveDocument.getObject(cobj.Object2) if sel.Object.Name != partobj1.Name and sel.Object.Name != partobj2.Name: mApp(translate("A2plus", "The constraint can only be moved to another surface of the same part")) return FreeCADGui.Selection.addSelection(partobj1, cobj.SubElement1) FreeCADGui.Selection.addSelection(partobj2, cobj.SubElement2) """ Adds new feature name to table """ form1.tm.item(lastclc.row, lastclc.column).setText(feat2name) def swapfeature(self, newfeaturedict): # changes a legs mating feature newfeat = newfeaturedict.get('newfeat') cname = newfeaturedict.get('cname') cobj = FreeCAD.ActiveDocument.getObject(cname) mobj = FreeCAD.ActiveDocument.getObject(cname+'_mirror') SubElement = newfeaturedict.get('SubElement') if SubElement == 'SubElement1': cobj.SubElement1 = newfeat mobj.SubElement1 = newfeat if SubElement == 'SubElement2': cobj.SubElement2 = newfeat mobj.SubElement2 = newfeat direction = newfeaturedict.get('dir') if hasattr(cobj, 'directionConstraint'): cobj.directionConstraint = direction if hasattr(mobj, 'directionConstraint'): mobj.directionConstraint = direction return sidefuncs = classsidefunctions('sidefuncs') class SelObserver: def __init__(self): pass def SelObserverON(self): FreeCADGui.Selection.addObserver(selObv) def SelObserverOFF(self): # print('SelObserverOFF') try: FreeCADGui.Selection.removeObserver(selObv) except: print(translate("A2plus", "removeObserver failed in C checker")) def setPreselection(self, doc, obj, sub): # Preselection object pass def addSelection(self, doc, obj, sub, pnt): # Selection object sidefuncs.turnoffobserv() def removeSelection(self, doc, obj, sub): # Delete the selected object pass def setSelection(self, doc): # this is sent from menu # funcs.constraintselected('table') # funcs does not exist ??!! pass selObv = SelObserver() class classsearch(): ''' This is for searching in tree for constraint name ''' def __init__(self): self.founditems = [] def startsearch(self, searchterm, colnum): mw = FreeCADGui.getMainWindow() tab = mw.findChild(QtGui.QTabWidget, u'combiTab') tree = tab.widget(0).findChildren(QtGui.QTreeWidget)[0] top = tree.topLevelItem(0) for idx in range(top.childCount()): self.searchTreeItem(tree, top.child(idx), searchterm, colnum) def searchTreeItem(self, tree, item, searchterm, colnum): for idx in range(item.childCount()): itm = item.child(idx) if searchterm in itm.text(colnum): itm.setBackground(0, QtGui.QColor(255, 255, 0, 100)) self.expandParent(tree, itm) self.searchTreeItem(tree, item.child(idx), searchterm, colnum) def expandParent(self, tree, item): parent = item.parent() if parent: tree.expandItem(parent) self.expandParent(tree, parent) def resetAll(self, item): for idx in range(item.childCount()): itm = item.child(idx) self.founditems.append(itm) itm.setBackground(0, QtGui.QBrush()) self.resetAll(itm) def reset1(self): mw = FreeCADGui.getMainWindow() tab = mw.findChild(QtGui.QTabWidget, u'combiTab') tree = tab.widget(0).findChildren(QtGui.QTreeWidget)[0] top = tree.topLevelItem(0) for idx in range(top.childCount()): self.resetAll(top.child(idx)) search = classsearch() def rondlist(inputList, inch=False): x = inputList[0] y = inputList[1] z = inputList[2] x = rondnum(x) y = rondnum(y) z = rondnum(z) if inch: x = x/25.4 y = y/25.4 z = z/25.4 return([x, y, z]) def rondnum(num, mmorin='mm'): """" round a number to digits in global left in mm for accuracy. """ rn = round(num, g.roundto) if mmorin == 'in': rn = rn / 25.4 return(rn) class classlastclickeditem: def __init__(self, Name): self.row = -1 self.column = -1 self.header = '' self.cname = '' self.cobj = None self.dir = 'N' self.text = '' self.SubElement = '' def clear(self): self.row = -1 self.column = -1 self.header = '' self.cname = '' self.cobj = None self.dir = 'N' def cellpicked(self, row, column): item = form1.tm.item(row, column) self.item = item self.row = row self.column = column self.text = item.text() self.header = form1.tm.horizontalHeaderItem(column).text() citem = form1.tm.item(self.row, 3) cname = citem.text() self.cname = cname self.cobj = FreeCAD.ActiveDocument.getObject(self.cname) if hasattr(self.cobj, 'directionConstraint'): self.dir = self.cobj.directionConstraint if self.column == 4: self.SubElement = 'SubElement1' if self.column == 5: self.SubElement = 'SubElement2' return(self.SubElement) lastclc = classlastclickeditem("lastclc") class rnp_Constraint_Viewer: def Activated(self): form1.showme() def Deactivated(self): """This function is executed when the workbench is deactivated""" return def GetResources(self): mypath = os.path.dirname(__file__) return { 'Pixmap': mypath + "/icons/CD_ConstraintViewer.svg", 'MenuText': translate("A2plus", "View and edit selected constraints"), 'ToolTip': translate("A2plus", "Constraint Viewer. You can view the features the constraint is attached to,\n" "run a single constraint or change the the feature the constraint is attached to.\n" "See the help for more information." ) } FreeCADGui.addCommand('rnp_Constraint_Viewer', rnp_Constraint_Viewer()) ================================================ FILE: CD_FeatureLabels.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 Dan Miel * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** # This is to be used with A2plus Assembly WorkBench # from PySide.QtGui import * from PySide import QtGui, QtCore import FreeCAD import FreeCADGui translate = FreeCAD.Qt.translate class formMain(QtGui.QMainWindow): def __init__(self, name): self.name = name super(formMain, self).__init__() self.setWindowTitle(translate("A2plus", "Create Labels")) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setGeometry(300, 200, 260, 200) self.setStyleSheet("font: 11pt arial MS") self.btnLabels = [[translate("A2plus", "Add Face Labels"), translate("A2plus", "Add labels to all of the faces on a selected part")], [translate("A2plus", "Add Edge Labels"), translate("A2plus", "Add labels to all of the edges on a selected part")], [translate("A2plus", "Add Vertex Labels"), translate("A2plus", "Add labels to all of the vertices on a selected part")], [translate("A2plus", "Delete Labels"), translate("A2plus", "Delete all labels")], [translate("A2plus", "Close"), translate("A2plus", "Close this window")] ] self.btns = [] BtnNum = 0 for row in range(0, len(self.btnLabels)): btny = 20 + (28*row) self.btn = QtGui.QPushButton(str(self.btnLabels[row][0]), self) self.btn.move(5, btny) self.btn.setFixedWidth(250) self.btn.setFixedHeight(25) self.btn.setToolTip(self.btnLabels[row][1]) self.btn.released.connect(self.button_pushed) # pressed self.btns.append(self.btn) BtnNum = BtnNum + 1 def button_pushed(self): index = self.btns.index(self.sender()) btext = self.btns[index].text() if btext == translate("A2plus", "Add Face Labels"): labels.addlabels(translate("A2plus", "Face")) if btext == translate("A2plus", "Add Edge Labels"): labels.addlabels(translate("A2plus", "Edge")) if btext == translate("A2plus", "Add Vertex Labels"): labels.addlabels(translate("A2plus", "Vertex")) if btext == translate("A2plus", "Delete Labels"): labels.deletelabels() if btext == translate("A2plus", "Close"): self.Closeme() # Not present? if btext == 'Attach to': labels.attachto() if btext == 'Selected Labels': labels.selectedlabels() def hideMe(self): QtGui.Selection.clearSelection() self.close() def showme(self): self.show() def Closeme(self): self.close() def closeEvent(self, event): form1.Closeme() self.close() form1 = formMain('form1') class classLabels(): def __init__(self): self.labelGroup = None def checkselection(self): """Checks to see if labels already exist.""" doc = FreeCAD.activeDocument() self.labelGroup = doc.getObject("partLabels") if self.labelGroup is None: self.labelGroup = doc.addObject("App::DocumentObjectGroup", "partLabels") if len(FreeCADGui.Selection.getSelection()) == 0: mApp(translate("A2plus", "One part must be selected.") + "\n" + translate("A2plus", "Please select One part and try again")) return(False) return(True) def addlabels(self, feat): sel = self.checkselection() if not sel: return sel = FreeCADGui.Selection.getSelection() # Select an object if feat == translate("A2plus", "Face"): features = sel[0].Shape.Faces if feat == translate("A2plus", "Edge"): features = sel[0].Shape.Edges if feat == translate("A2plus", "Vertex"): features = sel[0].Shape.Vertexes for num in range(0, len(features)): ent = features[num] if feat == translate("A2plus", "Vertex"): loc = ent.Point else: loc = ent.CenterOfMass partLabel = self.makelabel(ent, feat+str(num+1), loc) self.labelGroup.addObject(partLabel) def makelabel(self, ent, name, loc): partLabel = FreeCAD.ActiveDocument.addObject("App::AnnotationLabel", "partLabel") partLabel.LabelText = name partLabel.BasePosition.x = loc[0] partLabel.BasePosition.y = loc[1] partLabel.BasePosition.z = loc[2] partLabel.ViewObject.BackgroundColor = (1.0, 1.0, 0.0) partLabel.ViewObject.TextColor = (0.0, 0.0, 0.0) return(partLabel) def deletelabels(self): for obj in FreeCAD.ActiveDocument.Objects: if "partLabel" in obj.Label: FreeCAD.ActiveDocument.removeObject(obj.Name) def attachto(self, sel=None, featname=''): sel = self.checkselection() if not sel: return if featname == '': featname = form1.txtboxaddlabel.text() if sel is None: sel = FreeCADGui.Selection.getSelection()[0] FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.addSelection(sel, featname) s = FreeCADGui.Selection.getSelectionEx()[0] ent = s.SubObjects[0] self.makelabel(ent, name, loc) def getEntLoc(self, ent, featname): if 'V' in featname: loc = ent.Point else: loc = ent.CenterOfMass partLabel = self.makelabel(ent, featname, loc) self.labelGroup.addObject(partLabel) self.makelabel(ent, featname, loc) def labelForTable(self, ent, featname): """Create a label to find a part.""" sel = self.checkselection() self.getEntLoc(ent, featname) def selectedlabels(self): sel = self.checkselection() if not sel: return sels = FreeCADGui.Selection.getSelectionEx() # Select an object for sel in sels: featname = sel.SubElementNames[0] ent = sel.SubObjects[0] self.getentloc(ent, featname) labels = classLabels() class mApp(QtGui.QWidget): ''' This message box was added to make this file a standalone file''' # for error messages def __init__(self, msg): super().__init__() self.initUI(msg) def initUI(self, msg): self.setGeometry(100, 100, 400, 300) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) QtGui.QMessageBox.question(self, translate("A2plus", "Info"), msg, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Ok) self.show() ================================================ FILE: CD_OneButton.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 Dan Miel * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** """ This is to be used in conjunction with A2plus Assembly Workbench. Enables two features to be selected without using the control key. """ import os from PySide import QtGui, QtCore import FreeCAD import FreeCADGui translate = FreeCAD.Qt.translate class globaluseclass: def __init__(self, name): self.sONOFF = 'off' self.feat1 = '' self.buttonenabled = False self.obj1 = '' self.partselected = False g = globaluseclass("g") class onebutton: def readselect(self, doc, obj, sub): if g.partselected: g.partselected = False return sels = len(FreeCADGui.Selection.getSelectionEx()) if sub == "": pass elif sels == 1: if g.obj1 == '' and g.feat1 == '' or obj == g.obj1: g.obj1 = obj g.feat1 = sub obj = '' sub = '' elif g.obj1 != '' and g.feat1 != '': if obj != '' and sub != '': try: obj1 = FreeCAD.ActiveDocument.getObject(g.obj1) obj2 = FreeCAD.ActiveDocument.getObject(obj) FreeCADGui.Selection.addSelection(obj1, g.feat1) FreeCADGui.Selection.addSelection(obj2, sub) g.partselected = True except: pass g.feat1 = '' g.obj1 = '' obj = '' sub = '' class SelObserver: def __init__(self): pass def SelObserverON(self): if g.sONOFF != 'on': FreeCADGui.Selection.addObserver(selObv) g.sONOFF = 'on' # print('SelObserverON') def SelObserverOFF(self): try: FreeCADGui.Selection.removeObserver(selObv) g.sONOFF = 'off' # print('SelObserverOFF') except: FreeCAD.Console.PrintMessage(translate("A2plus", "SelObserverOFF by except") + "\n") def addSelection(self, doc, obj, sub, pnt): # Selection object onebutton.readselect(onebutton, doc, obj, sub) def removeSelection(self, doc, obj, sub): # Delete the selected object pass def setSelection(self, doc): pass selObv = SelObserver() # This class looks for mouse clicks in space to unselect parts. class ViewObserver: def __init__(self): self.view = None self.o = None self.c = None def vostart(self): self.view = FreeCADGui.activeDocument().activeView() self.o = ViewObserver() self.c = self.view.addEventCallback("SoMouseButtonEvent", self.o.logPosition) def vooff(self): try: self.view.removeEventCallback("SoMouseButtonEvent", self.c) except Exception as e: print(str(e)) def logPosition(self, myinfo): down = (myinfo["State"] == "DOWN") up = (myinfo["State"] == "UP") pos = myinfo["Position"] if up: pass if (down): if myinfo['Button'] == 'BUTTON1': pos = FreeCADGui.ActiveDocument.ActiveView.getCursorPos() partinfo = FreeCADGui.activeDocument().activeView().getObjectInfo(pos) if partinfo is None: g.feat1 = '' g.obj1 = '' FreeCADGui.Selection.clearSelection() else: pass viewob = ViewObserver() class rnp_OneButton: def GetResources(self): mypath = os.path.dirname(__file__) return { 'Pixmap': mypath + "/icons/CD_OneButton.svg", 'MenuText': translate("A2plus", "Use one mouse button to select features"), 'ToolTip': translate("A2plus", "Use left mouse button to select two features.\nDo not use the control key."), 'Checkable': self.IsChecked() } def Activated(self, placeholder=None): if FreeCAD.activeDocument() is None: mApp(translate("A2plus", "No file is opened.\nYou must open an assembly file first.")) return FreeCADGui.Selection.clearSelection() if g.buttonenabled is False: selObv.SelObserverON() # Checks for part and entity click viewob.vostart() # Checks for click in background g.buttonenabled = True FreeCAD.Console.PrintMessage(translate("A2plus", "OneButton is ON") + "\n") else: selObv.SelObserverOFF() viewob.vooff() g.buttonenabled = False FreeCAD.Console.PrintMessage(translate("A2plus", "OneButton is OFF") + "\n") def Deactivated(self): """This function is executed when the workbench is deactivated.""" selObv.SelObserverOFF() viewob.vooff() def IsChecked(self): return(g.buttonenabled) def IsActive(self): return(True) FreeCADGui.addCommand('rnp_OneButton', rnp_OneButton()) class mApp(QtGui.QWidget): """This message box was added to make this file a standalone file""" # for error messages def __init__(self, msg, msgtype='ok'): super().__init__() self.title = translate("A2plus", "Warning") self.left = 100 self.top = 100 self.width = 400 self.height = 300 self.initUI(msg) def initUI(self, msg): # self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) QtGui.QMessageBox.question(self, translate("A2plus", "Warning"), msg, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Ok) self.show() ================================================ FILE: GuiA2p/Resources/compile_resources_pack.py ================================================ #! /usr/bin/env python import os, glob qrc_filename = 'resources.qrc' assert not os.path.exists(qrc_filename) qrc = ''' ''' for fn in glob.glob('./icons/*.svg') + glob.glob('./ui/*.ui'): qrc = qrc + '\n\t\t%s' % fn qrc = qrc + '''\n\t ''' print(qrc) f = open(qrc_filename,'w') f.write(qrc) f.close() os.system('rcc -binary %s -o resources.rcc' % qrc_filename) os.remove(qrc_filename) ================================================ FILE: GuiA2p/Resources/ui/a2p_prefs.ui ================================================ Gui::Dialog::DlgSettingsA2Plus 0 0 680 825 0 0 A2plus settings 0 0 User interface settings Adds a creation button for every constraint type to the toolbar Show constraints in toolbar true showConstraintsOnToolbar Mod/A2plus Use native file manager of your OS true useNativeFileManager Mod/A2plus 0 0 Behavior when updating imported parts All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Recalculate imported parts before updating them (experimental) recalculateImportedParts Mod/A2plus Opens all subassemblies recursively to update them Enable recursive update of imported parts enableRecursiveUpdate Mod/A2plus While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Use experimental topological naming useTopoNaming Mod/A2plus Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Inherit per face color and transparency from parts and subassemblies (experimental) usePerFaceTransparency Mod/A2plus Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. All imported parts will directly be put together as union. Do not import invisible shapes (for expert users) doNotImportInvisibleShapes Mod/A2plus Use solid union for importing parts and subassemblies (experimental) useSolidUnion Mod/A2plus 0 0 Storage of files Use relative paths for imported parts true useRelativePathes Mod/A2plus Use absolute paths for imported parts useAbsolutePathes Mod/A2plus Specify the project folder in the field below All files are in this project folder: useProjectFolder Mod/A2plus 0 0 350 0 400 16777215 projectFolder Mod/A2plus 0 0 Default solving method 0 0 Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. Use solving of partial systems (recommended for static assemblies) true usePartialSolver Mod/A2plus 0 0 Solver tries to move all parts at once in direction to a fixed part Use "magnetic" solver, solving all parts at once (for dynamical assemblies) useMagneticSolver Mod/A2plus All parts will be fixed to the positions where they were created Force fixed position to all imports forceFixedPosition Mod/A2plus 0 0 Default solver behavior Solve automatically if a constraint property is changed true autoSolve Mod/A2plus Qt::Vertical 20 40 qPixmapFromMimeSource Gui::FileChooser QWidget
Gui/FileDialog.h
Gui::PrefFileChooser Gui::FileChooser
Gui/PrefWidgets.h
Gui::PrefRadioButton QRadioButton
Gui/PrefWidgets.h
Gui::PrefCheckBox QCheckBox
Gui/PrefWidgets.h
================================================ FILE: Init.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** ================================================ FILE: InitGui.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** __title__ = 'A2plus assembly Workbench - InitGui file' __author__ = 'kbwbe' # import sys import FreeCAD import FreeCADGui import a2plib # Need to determine if we are on a system using PySide2 or PySide6 try: import PySide6 # try Qt6 first import a2p_Resources3_Qt6 except ImportError: import a2p_Resources3 translate = FreeCAD.Qt.translate QT_TRANSLATE_NOOP = FreeCAD.Qt.QT_TRANSLATE_NOOP # add translations path FreeCADGui.addLanguagePath(a2plib.getLanguagePath()) FreeCADGui.updateLocale() class A2plusWorkbench (Workbench): def __init__(self): import a2plib translate = FreeCAD.Qt.translate self.__class__.Icon = a2plib.get_module_path() + "/icons/a2p_Workbench.svg" self.__class__.MenuText = 'A2plus' self.__class__.ToolTip = translate("A2plus", "An other assembly workbench for FreeCAD.") def Initialize(self): # import sys import a2plib # import a2p_Resources3 # translate = FreeCAD.Qt.translate # add translations functions translate = FreeCAD.Qt.translate QT_TRANSLATE_NOOP = FreeCAD.Qt.QT_TRANSLATE_NOOP # print A2plus version FreeCAD.Console.PrintMessage( translate( "A2plus", "Initializing A2plus Workbench v{}" ).format(a2plib.getA2pVersion()) + ".\n" ) # add icons path FreeCADGui.addIconPath(':/icons') import a2p_importpart import a2p_recursiveUpdatePlanner import a2p_convertPart import a2p_solversystem import a2p_MuxAssembly import a2p_partinformation import a2p_ConstraintDialog import a2p_ConstraintCommands import a2p_BoM # BoM == Bill of Materials == partslist import a2p_constraintServices import a2p_searchConstraintConflicts import CD_A2plusupdater # for Constraint Diagnostic function import CD_CheckConstraints import CD_OneButton # Create list of commands for toolbar A2p_Part and menu partCommands = [ 'a2p_ImportPart', 'a2p_ImportShapeReferenceCommand', 'a2p_updateImportedParts', 'a2p_movePart', 'a2p_MovePartUnderConstraints', 'a2p_duplicatePart', 'a2p_ConvertPart', 'a2p_editImportedPart', 'a2p_SaveAndExit_Command', ] if a2plib.getRecursiveUpdateEnabled(): partCommands.insert(3, 'a2p_recursiveUpdateImportedPartsCommand') # Create list of commands for toolbar A2p_constraint constraintCommands = [ 'a2p_ConstraintDialogCommand', 'a2p_EditConstraintCommand', 'a2p_reAdjustConstraintDirectionsCommand', 'a2p_DeleteConnectionsCommand', ] if a2plib.SHOW_CONSTRAINTS_ON_TOOLBAR: constraintCommands1 = [ 'a2p_PointIdentityConstraintCommand', 'a2p_PointOnLineConstraintCommand', 'a2p_PointOnPlaneConstraintCommand', 'a2p_SphericalSurfaceConstraintCommand', 'a2p_CircularEdgeConnection', 'a2p_AxialConstraintCommand', 'a2p_AxisParallelConstraintCommand', 'a2p_AxisPlaneParallelCommand', 'a2p_AxisPlaneNormalCommand', 'a2p_AxisPlaneAngleCommand', 'a2p_PlanesParallelConstraintCommand', 'a2p_PlaneCoincidentConstraintCommand', 'a2p_AngledPlanesConstraintCommand', 'a2p_CenterOfMassConstraintCommand', ] constraintCommands.extend(constraintCommands1) # Create list of commands for toolbar A2p_Solver solverCommands = [ 'a2p_SolverCommand', 'a2p_ToggleAutoSolveCommand', 'a2p_FlipConstraintDirectionCommand', 'a2p_Show_Hierarchy_Command', 'a2p_SearchConstraintConflictsCommand' ] if a2plib.GRAPHICALDEBUG: solverCommands.append( 'a2p_cleanUpDebug3dCommand' ) # Create list of commands for toolbar A2p_View viewCommands = [ 'a2p_isolateCommand', 'a2p_ViewConnectionsCommand', 'a2p_Restore_Transparency', 'a2p_ToggleTransparencyCommand', 'a2p_Show_PartLabels_Command', 'a2p_Show_DOF_info_Command', ] # Create list of commands for toolbar A2p_Misc miscCommands = [ 'a2p_SimpleAssemblyShapeCommand', 'a2p_repairTreeViewCommand', 'a2p_CreatePartInformationSheet_Command', 'a2p_CreatePartlist', 'a2p_CreateCutListOptimizerPartlist' ] # Create list of commands for toolbar A2p_Diagnostics DiagnosticCommands = [ 'rnp_Constraint_Viewer', 'rnp_Update_A2pParts', 'rnp_Constraint_Checker', 'rnp_OneButton', ] menuEntries = [ 'a2p_absPath_to_relPath_Command', 'a2p_MigrateProxiesCommand' ] # Create toolbars self.appendToolbar( 'A2p_Part', partCommands ) self.appendToolbar( 'A2p_Constraint', constraintCommands ) self.appendToolbar( 'A2p_Solver', solverCommands ) self.appendToolbar( 'A2p_View', viewCommands ) self.appendToolbar( 'A2p_Misc', miscCommands ) self.appendToolbar( 'A2p_Diagnostics', DiagnosticCommands ) # Create menus self.appendMenu( 'A2plus', partCommands ) self.appendMenu( ['A2plus', QT_TRANSLATE_NOOP("Workbench", "Constraint")], constraintCommands ) self.appendMenu( ['A2plus', QT_TRANSLATE_NOOP("Workbench", "Solver")], solverCommands ) self.appendMenu( ['A2plus', QT_TRANSLATE_NOOP("Workbench", "View")], viewCommands ) miscCommands.extend(menuEntries) self.appendMenu( ['A2plus', QT_TRANSLATE_NOOP("Workbench", "Misc")], miscCommands ) self.appendMenu( ['A2plus', QT_TRANSLATE_NOOP("Workbench", "Diagnostic")], DiagnosticCommands ) FreeCADGui.addPreferencePage( a2plib.get_module_path() + '/GuiA2p/Resources/ui/a2p_prefs.ui', 'A2plus' ) def Activated(self): import a2p_observers FreeCAD.addDocumentObserver(a2p_observers.redoUndoObserver) def Deactivated(self): import a2p_observers FreeCAD.removeDocumentObserver(a2p_observers.redoUndoObserver) def ContextMenu(self, recipient): import FreeCAD import FreeCADGui selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument] if len(selection) == 1: obj = selection[0] if 'sourceFile' in obj.Content: self.appendContextMenu( "A2plus", [ 'a2p_movePart', 'a2p_duplicatePart', 'a2p_editImportedPart', 'a2p_ConvertPart', 'a2p_DeleteConnectionsCommand', 'a2p_ToggleTransparencyCommand' ] ) Gui.addWorkbench(A2plusWorkbench()) ================================================ FILE: LICENSE ================================================ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. (This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.) Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {description} Copyright (C) {year} {fullname} This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. {signature of Ty Coon}, 1 April 1990 Ty Coon, President of Vice That's all there is to it! ================================================ FILE: README.md ================================================ # A2plus [Documentation](https://wiki.freecadweb.org/A2plus_Workbench) • [Forum](https://forum.freecadweb.org/viewtopic.php?f=20&t=29207) • [Git repository](https://github.com/kbwbe/A2plus) [![Total alerts](https://img.shields.io/lgtm/alerts/g/kbwbe/A2plus.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kbwbe/A2plus/alerts/) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/kbwbe/A2plus.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kbwbe/A2plus/context:python) ## Description Another assembly workbench for FreeCAD, following and extending [Hamish's Assembly 2 workbench](https://github.com/hamish2014/FreeCAD_assembly2) hence Assembly2**plus**. The main goal of A2plus is to create a very simple, easy to use, and not over-featured workbench for FreeCAD assemblies. Using the KISS principle: KEEP IT SIMPLE, STUPID A2plus workbench tries to implement a new constraint solving algorithm to avoid some problems that occurred with the original solver. It is still under development and experimental at this moment but is showing some potential. This project started as a fork of Hamish's Assembly 2 workbench (development on A2 went dormant and was unmaintained for a long period). A2plus can be used with FreeCAD from v0.16 including support for importing parts from external files. [![Assembly-of-gripping-unig](https://i.imgur.com/P8VqEFo.png)](http://www.youtube.com/watch?v=QMxcQ5tssWk "A2plus: Assembly of a gripping unit.") ## Assembly2 and A2plus ### Similarities * The workflow and the UI, so users of Assembly 2 can use it in an intuitive way * Same as Assembly 2 it mainly aims at importing external files to the assembly. ### Differences * A new designed solving algorithm, able to solve some more complicated relations. * Different and in future more constraints, internally with different names. * No animation for degrees of freedom, as difficult for new solver type. * No collision check of parts at moment. Planned for future versions * Some new small features as visibility helpers (isolate and show only selected parts, transparency of whole assembly) ## Is A2plus compatible with Assembly2 ? No. A2plus would have to handle everything in same way as Assembly 2, including bugs, exact orientations, etc. You have to assemble existing projects again. ## Releases There are prereleases available, please browse the [releases](https://github.com/kbwbe/A2plus/releases) section of this repository. ## Known Issues A weak point is, and is similar to Assembly 2, updating / reimporting parts from external files. Constraints will break. You should delete constraints of parts before reimporting them. After that please constrain these parts again. This behaviour is due to FreeCAD's lack of [Topological Naming](https://wiki.freecadweb.org/Topological_naming_problem) and is difficult to correct at the moment. This phenomena is seen in many proprietary CAD solutions. Some work is being done to address this in future releases of FreeCAD which will improve this behaviour. ## Installation ### Automatic Installation [![FreeCAD Addon manager status](https://img.shields.io/badge/FreeCAD%20addon%20manager-available-brightgreen)](https://github.com/FreeCAD/FreeCAD-addons) The recommended way to install A2plus is via FreeCAD's [Addon Manager](https://wiki.freecadweb.org/Addon_Manager) under the Tools → 'Addon Manager' dropdown menu. ### Manual Installation
The following directions explain how to install A2plus manually on different platforms #### Linux FreeCAD(version of your choice) has to be installed beforehand. Use the CLI to install A2plus: ```bash $ sudo apt-get install git python-numpy python-pyside $ mkdir ~/.FreeCAD/Mod $ cd ~/.FreeCAD/Mod $ git clone https://github.com/kbwbe/A2plus.git ``` Once installed, use `git` to easily update to the latest version: ```bash $ cd ~/.FreeCAD/Mod/A2plus $ git pull $ rm *.pyc ``` #### Windows Pre-requisite: FreeCAD >= v0.16+ Download the git repository as a ZIP on to you local drive. Refer to the [corresponding tutorial](https://wiki.freecadweb.org/How_to_install_additional_workbenches) on the FreeCAD wiki. Unzip the downloaded repository within your Mod/ folder. A A2plus-folder should appear within you Mod/ folder. If you a familiar with `git` you can `git clone https://github.com/kbwbe/A2plus.git` directly in to your Mod/ folder. #### MacOS (borrowed from Hamish2014) * download the git repository as ZIP * assuming FreeCAD is installed in "/Applications/FreeCAD/v 0.17", go to "/Applications/FreeCAD/v 0.17" in the Browser, and select FreeCAD.app * right-click and select "Show Package Contents", a new window will appear with a folder named "Contents" * single-click on the folder "Contents" and select the folder "Mod" * in the folder "Mod" create a new folder named "A2plus" * unzip downloaded repository in the folder "Contents/Mod/A2plus"
Features of the A2plus workbench -------------------------------- (work in progress) Current Features like shown in the workbench's toolbar: * Add a part from external file (Shift+A) - Begin and continue here with importing existing part or subassembly .fcstd files to the assembly * Update parts imported into the assembly - Use this to refresh changed parts already assembled * Move part - Just move selected part * Duplicate part - Adds one or more previously imported part(s) into assembly (hold Shift for multiple times) * Convert part to A2plus form - Converts an imported part to internal representation without external dependency * Edit - Opens the selected assembly part or subassembly in a new tab, to be changed, don't forget to save and refresh the assembly * Constraint Tools - Open a dialog to define constraints. Find all constraints in the opening dialog! This is the access to the A2plus constraining possibilities. Depending on the context, like selected faces, edges, vertices, one or more of the following list of constraints may get selectable: (After selecting the constraint, a 'Constraint Properties' dialog will appear to appropriately ask you for details, like offsets, angles and directions.) Below, first selection is meant for the first part of the constraint (parent) and the second for the second part (child). Choices lists, what you can expect to edit in "Constraint Properties" and with the "Edit selected constraint" button later on. - Add a point-to-point identity {pointIdentity constraint} - (1. one point vertex, 2. second point vertex) - Add a point-on-line match {pointOnLine constraint} - (1. one point vertex, 2. a line vertex/ edge) - Add a point-on-plane match {pointOnPlane constraint} - (1. point vertex or center of a circle, 2. a plane) Choices: offset - Add a sphere-to-sphere constraint {sphereCenterIdent constraint} - (1. first spherical surface or vertex, 2. second spherical surface or vertex) - Add a circular-to-circular-edge match {circularEdge constraint} - (1. parent's circular edge, 2. child's circular edge) Choices: direction (aligned, opposed) +Flip, offset - Add an axis-to-axis identity {axisCoincident constraint} - (1. first cylinder face/linear edge, 2. second cylinder face/linear edge) Choices: direction (aligned, opposed) + Flip, lockRotation - Add an axis-to-axis parallelism {axisParallel constraint} (1. first cylinder face/linear edge, 2. second cylinder face/linear edge) Selected parts will get rotated, but the axis not coincident. - Add an axis-to-plane parallelism {axisPlaneParallel constraint} (1. first cylinder axis or linear edge, 2. second part's plane face) - Add a plane-to-plane parallelism {planesParallel constraint} - (1. parent's plane, 2. child's plane) Selected planes would be parallel but not coincident. Choices: direction (aligned, opposed) +Flip - Add a plane-to-plane coincident match {planeCoincident constraint} - (1. parent's plane, 2. child's plane) Selected planes would be parallel and you have more choices: Choices: direction (aligned, opposed) +Flip, offset - Add an angle-between-planes {angledPlanes constraint} - Selected planes make the latter object to be rotated by your edited 'angle' value. Keep the angle between approx. 0.1° and 179.9° and use planesParallel for 0° and 180°. * Edit selected constraint - Select a constraint in the treeview and hit this button to edit it's properties * Delete constraints - Remove all constraints of exactly one selected part in one step * Solve A2plus constraints - Manually invoke the A2pus solver (especially when AutoSolve is OFF) * Toggle Autosolve - By pressing this button you can enable or disable automatic solving after a constraint has been edited. If Autosolve is disabled you have to start it manually by hitting the Solve button. Disabled, this can save computation time. * Flip direction of last constraint - does exactly what it means for suitable constraints * Print detailed DOF information to console - shows the degrees-of-freedom for the current constraints' solving state, useful for analysing eventually missing constraints * Generate HTML file with detailed constraining structure - useful to visualize the current constraint dependencies * Show connected elements - highlights the parts connected by a constraint selected in treeview * Toggle transparency of assembly - The whole assembly will get transparent * Show only selected items, or all if none selected - Another visibility helper for assembly analysis * Create or refresh simple shape of complete assembly - the newly created compound can be found in treeview * Repair the treeview, if damaged somehow - After pressing this button constraints will be grouped under corresponding parts again * Create a spreadsheet with logistic/ordering information - Adds a spreadsheet to the treeview, editable by double-click in a new tab for part's info * Create a spreadsheet with a partlist of this file - Adds a spreadsheet to the treeview, editable by double-click in a new tab for assembly's BOM info Usage hints for the A2plus workbench ------------------------------------ (work in progress) Have a look on the Feature list above, and... Please, follow the Tooltips in the workbench's toolbar and in the "Constraint Tools" toolbox. They describe what to do in which order. First steps to create an A2plus assembly: * Create a new empty document. * Save the active document with a name. If not, you'd be asked for by A2plus. * Add a part or shapes from external file. The first imported part or shape gets set as fixed position (by default). You can change it later. * Add a second part or shapes from external file. * Select some faces or edges or vertices, you want to constrain, and push the "Constraint Tools" button, the Tools menu pops-up, alternatively you can push the button first and select the constraint's context afterwards * Related to the context you'd be asked in the "Constraints Properties" (sub-menu), to edit the appropriate parameters, to delete the constraint, to solve and or accept it. * You can edit once-set "Constraints Properties" at any time later via the "Edit selected constraint" button. Editing a subassembly: * As you can also load a subassembly as a .fcstd file, you can also open it via the A2plus edit command, to edit it. Please just make sure for higher assembly stages, to reload the changes file(s). ================================================ FILE: __init__.py ================================================ ================================================ FILE: a2p_BoM.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os import string from PySide import QtGui, QtCore import FreeCAD import FreeCADGui import Part import a2plib import Spreadsheet # from a2p_fcdocumentreader import FCdocumentReader from a2p_simpleXMLreader import FCdocumentReader from a2p_partlistglobals import ( PARTLIST_COLUMN_NAMES, CLO_PARTLIST_COLUMN_NAMES, BOM_SHEET_NAME, BOM_SHEET_LABEL, CLO_BOM_SHEET_NAME, CLO_BOM_SHEET_LABEL, PARTINFORMATION_SHEET_NAME, BOM_MAX_COLS, BOM_MAX_LENGTH ) translate = FreeCAD.Qt.translate def createCutListOptimizerPartList( importPath, parentAssemblyDir, partListEntries, recursive=False ): """ Extract quantities and descriptions of assembled parts from document.xml Is able to analyse subassemblies by recursion It works with a dict. Structure of an entry is: filename: [Quantity,[information,information,....] ] CutListOptimizer (https://cutlistoptimizer.com/) expects the following CSV format: Length,Width,Qty,Material,Label,Enabled 200,300,3,DEFAULT_MATERIAL,200×300,true NOTE: The column Material could be skipped, if it is the same for all parts. """ fileNameInProject = a2plib.findSourceFileInProject( importPath, parentAssemblyDir ) workingDir, basicFileName = os.path.split(fileNameInProject) docReader1 = FCdocumentReader() docReader1.openDocument(fileNameInProject) for ob in docReader1.getA2pObjects(): # skip converted parts... if a2plib.to_str(ob.getA2pSource()) == a2plib.to_str('converted'): continue if ob.isSubassembly() and recursive: partListEntries = createPartList( ob.getA2pSource(), workingDir, partListEntries, recursive ) # Process information of this a2p object if not ob.isSubassembly() or not recursive: # Try to get spreadsheetdata _PARTINFO_ from linked source linkedSource1 = ob.getA2pSource() # this returns unicode on py2 systems! linkedSource = a2plib.findSourceFileInProject( linkedSource1, workingDir ) if linkedSource is None: print(translate("A2p_BoM", "BOM ERROR: Could not open sourcefile '{}'").format( linkedSource1)) continue # Is it already processed minimum one time ? entry = partListEntries.get(linkedSource, None) if entry is not None: # count sourcefile usage partListEntries.get(linkedSource)[0] += 1 continue # only needed to count imports of this file, information exists yet # There is no entry in dict, need to read out information from importFile... docReader2 = FCdocumentReader() docReader2.openDocument(linkedSource) # Initialize a default parts information... partInformation = [] for i in range(0, len(CLO_PARTLIST_COLUMN_NAMES)): partInformation.append("*") # if there is a proper spreadsheet, then read it... for ob in docReader2.getSpreadsheetObjects(): sheetName = PARTINFORMATION_SHEET_NAME sheetName = a2plib.to_bytes(PARTINFORMATION_SHEET_NAME) if ob.name == sheetName: cells = ob.getCells() for addr in cells.keys(): if addr[:1] == b'B': # column B contains the data, A only the titles idx = int(addr[1:])-1 if idx < len(CLO_PARTLIST_COLUMN_NAMES): # don't read further! partInformation[idx] = cells[addr] # last entry of partinformations is reserved for filename # without complete path... partInformation[-1] = os.path.split(linkedSource)[1] # ######################################################### # add dimensions from the overall bounding box of the file # in the last 3 fields before the filename dc = FreeCAD.openDocument(linkedSource) op = Part.makeCompound([i.Shape for i in dc.findObjects( "Part::Feature") if i.ViewObject.Visibility and not i.TypeId == "PartDesign::Plane"]) bb = op.BoundBox partInformation[-2] = str(bb.ZLength) partInformation[-3] = str(bb.YLength) partInformation[-4] = str(bb.XLength) FreeCAD.closeDocument(dc.Name) # ######################################################### # put information to dict and count usage of sourcefiles.. entry = partListEntries.get(linkedSource, None) if entry is None: partListEntries[linkedSource] = [ 1, partInformation ] else: # count sourcefile usage partListEntries.get(linkedSource)[0] += 1 return partListEntries def createPartList( importPath, parentAssemblyDir, partListEntries, recursive=False ): """ Extract quantities and descriptions of assembled parts from document.xml Is able to analyse subassemblies by recursion It works with a dict. Structure of an entry is: filename: [Quantity,[information,information,....] ] """ fileNameInProject = a2plib.findSourceFileInProject( importPath, parentAssemblyDir ) workingDir, basicFileName = os.path.split(fileNameInProject) docReader1 = FCdocumentReader() docReader1.openDocument(fileNameInProject) for ob in docReader1.getA2pObjects(): # skip converted parts... if a2plib.to_str(ob.getA2pSource()) == a2plib.to_str('converted'): continue if ob.isSubassembly() and recursive: partListEntries = createPartList( ob.getA2pSource(), workingDir, partListEntries, recursive ) # Process information of this a2p object if not ob.isSubassembly() or not recursive: # Try to get spreadsheetdata _PARTINFO_ from linked source linkedSource1 = ob.getA2pSource() # this returns unicode on py2 systems! linkedSource = a2plib.findSourceFileInProject( linkedSource1, workingDir ) if linkedSource is None: print(translate("A2p_BoM", "BOM ERROR: Could not open sourcefile '{}'").format( linkedSource1)) continue # Is it already processed minimum one time ? entry = partListEntries.get(linkedSource, None) if entry is not None: # count sourcefile usage partListEntries.get(linkedSource)[0] += 1 continue # only needed to count imports of this file, information exists yet # There is no entry in dict, need to read out information from importFile... docReader2 = FCdocumentReader() docReader2.openDocument(linkedSource) # Initialize a default parts information... partInformation = [] for i in range(0, len(PARTLIST_COLUMN_NAMES)): partInformation.append("*") # if there is a proper spreadsheet, then read it... for ob in docReader2.getSpreadsheetObjects(): sheetName = PARTINFORMATION_SHEET_NAME sheetName = a2plib.to_bytes(PARTINFORMATION_SHEET_NAME) if ob.name == sheetName: cells = ob.getCells() for addr in cells.keys(): if addr[:1] == b'B': # column B contains the data, A only the titles idx = int(addr[1:])-1 if idx < len(PARTLIST_COLUMN_NAMES): # don't read further! partInformation[idx] = cells[addr] # last entry of partinformations is reserved for filename # without complete path... partInformation[-1] = os.path.split(linkedSource)[1] # put information to dict and count usage of sourcefiles.. entry = partListEntries.get(linkedSource, None) if entry is None: partListEntries[linkedSource] = [ 1, partInformation ] else: # count sourcefile usage partListEntries.get(linkedSource)[0] += 1 return partListEntries class a2p_CreatePartlist(): def clearPartList(self): alphabet_list = list(string.ascii_uppercase) doc = FreeCAD.activeDocument() ss = doc.getObject(BOM_SHEET_NAME) for i in range(0, BOM_MAX_COLS): for k in range(0, BOM_MAX_LENGTH): cellAdress = alphabet_list[i] + str(k + 1) ss.set(cellAdress, '') def Activated(self): doc = FreeCAD.activeDocument() if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open a FCStd file first.") ) return completeFilePath = doc.FileName p, f = os.path.split(completeFilePath) flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate( "A2plus", "Please save before generating a parts list! Save now?") response = QtGui.QMessageBox.information(QtGui.QApplication.activeWindow( ), translate("A2plus", "Save document?"), msg, flags) if response == QtGui.QMessageBox.No: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Parts list generation aborted!"), translate("A2plus", "You have to save the assembly file first.") ) return else: doc.save() flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate( "A2plus", "Do you want to iterate recursively over all included subassemblies?") response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2p_BoM", "PARTSLIST"), msg, flags) if response == QtGui.QMessageBox.Yes: subAssyRecursion = True else: subAssyRecursion = False partListEntries = createPartList( doc.FileName, p, {}, recursive=subAssyRecursion ) ss = None try: ss = doc.getObject(BOM_SHEET_NAME) except: pass if ss is None: ss = doc.addObject('Spreadsheet::Sheet', BOM_SHEET_NAME) ss.Label = BOM_SHEET_LABEL else: self.clearPartList() # Write Column headers to spreadsheet ss.set('A1', translate("A2p_BoM", "POS")) ss.set('B1', translate("A2p_BoM", "QTY")) self.CreateColumnHeadersInSpreadsheet(ss, PARTLIST_COLUMN_NAMES, 'C') # fill entries for partsList... idx3 = ord('A') for idx, k in enumerate(partListEntries.keys()): ss.set('A' + str(idx + 2), str(idx + 1)) ss.set('B' + str(idx + 2), str(partListEntries[k][0])) values = partListEntries[k][1] for j, tx in enumerate(values): # all strings inside values are unicode! ss.set(chr(idx3 + 2 + j) + str(idx + 2), tx.replace(''', '')) # recompute to finish... doc.recompute() FreeCAD.Console.PrintMessage( translate("A2p_BoM", "#PARTSLIST# spreadsheet has been created") + "\n") def GetResources(self): return { 'Pixmap': ':/icons/a2p_PartsList.svg', 'MenuText': translate("A2plus", "Create a spreadsheet with a parts list of this file"), 'ToolTip': translate( "A2plus", "Create a spreadsheet with a " + "\n" + "parts list of this file." + "\n\n" + "This function will read out " + "\n" + "the #PARTINFO# spreadsheet of " + "\n" + "all involved parts of the " + "\n" + "assembly and create a new " + "\n" + "spreadsheet containing the " + "\n" + "parts list." + "\n\n" + "This button will open a dialog " + "\n" + "with the Question:" + "\n" + "- Iterate recursively over " + "\n" + " all subassenblies?" + "\n\n" + "Answer Yes:" + "\n" + "All parts of all subassemblies are " + "\n" + "collected to the partlist " + "\n\n" + "Answer No:" + "\n" + "Only the parts within the " + "\n" + "recent assembly are collected.") } def CreateColumnHeadersInSpreadsheet(self, ss, columnHeaders, startColumn): """ Creates the column headers in the given spreadsheet (`ss`) starting in the column `startColumn`. The column headers are specified in the array `columnHeaders`. """ # Write Column headers to spreadsheet idx1 = ord(startColumn) idx2 = idx1 + len(columnHeaders) i = 0 for c in range(idx1, idx2): ss.set(chr(c) + "1", columnHeaders[i]) i += 1 # Set the background color of the column headers ss.setBackground('A1:' + chr(idx2 - 1) + '1', (0.000000, 1.000000, 0.000000, 1.000000)) # Set the columnwith to proper values ss.setColumnWidth('A', 40) i = 0 for c in range(idx1, idx2): ss.setColumnWidth(chr(c), 150) i += 1 class a2p_CreateCutListOptimizerPartlist(a2p_CreatePartlist): def clearPartList(self): alphabet_list = list(string.ascii_uppercase) doc = FreeCAD.activeDocument() ss = doc.getObject(CLO_BOM_SHEET_NAME) for i in range(0, CLO_BOM_MAX_COLS): for k in range(0, CLO_BOM_MAX_LENGTH): cellAdress = alphabet_list[i] + str(k + 1) ss.set(cellAdress, '') def Activated(self): doc = FreeCAD.activeDocument() if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open a FCStd file first.") ) return completeFilePath = doc.FileName p, f = os.path.split(completeFilePath) flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate( "A2plus", "Please save before generating a parts list! Save now?") response = QtGui.QMessageBox.information(QtGui.QApplication.activeWindow( ), translate("A2plus", "Save document?"), msg, flags) if response == QtGui.QMessageBox.No: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Parts list generation aborted!"), translate("A2plus", "You have to save the assembly file first.") ) return else: doc.save() flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate( "A2plus", "Do you want to iterate recursively over all included subassemblies?") response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2p_BoM", "PARTSLIST"), msg, flags) if response == QtGui.QMessageBox.Yes: subAssyRecursion = True else: subAssyRecursion = False partListEntries = createCutListOptimizerPartList( doc.FileName, p, {}, recursive=subAssyRecursion ) ss = None try: ss = doc.getObject(CLO_BOM_SHEET_NAME) except: pass if ss is None: ss = doc.addObject('Spreadsheet::Sheet', CLO_BOM_SHEET_NAME) ss.Label = CLO_BOM_SHEET_LABEL else: self.clearPartList() self.CreateColumnHeadersInSpreadsheet( ss, CLO_PARTLIST_COLUMN_NAMES, 'A') self.FillPartsListEntries(ss, partListEntries) # recompute to finish... doc.recompute() FreeCAD.Console.PrintMessage(translate( "A2p_BoM", "#PARTSLIST_CutListOptimizer# spreadsheet has been created") + "\n") def GetResources(self): return { 'Pixmap': ':/icons/a2p_PartsList_CutListOptimizer.svg', 'MenuText': translate("A2plus", "Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file"), 'ToolTip': translate( "A2plus", "Create a spreadsheet with a " + "\n" + "parts list https://cutlistoptimizer.com/ of this file." + "\n\n" + "This function will read out " + "\n" + "the #PARTINFO# spreadsheet of " + "\n" + "all involved parts of the " + "\n" + "assembly and create a new " + "\n" + "spreadsheet containing the " + "\n" + "parts list." + "\n\n" + "This button will open a dialog " + "\n" + "with the Question:" + "\n" + "- Iterate recursively over " + "\n" + " all subassenblies?" + "\n\n" + "Answer Yes:" + "\n" + "All parts of all subassemblies are " + "\n" + "collected to the partlist " + "\n\n" + "Answer No:" + "\n" + "Only the parts within the " + "\n" + "recent assembly are collected.") } def FillPartsListEntries(self, ss, partListEntries): # [2, ['*', '*', '75.0', '45.0', '1050.0', 'LongBeam.FCStd']] QUANTITY_IDX = 0 LENGTH_IDX = 2 WIDTH_IDX = 3 HEIGHT_IDX = 4 FILENAME_IDX = 5 for idx, k in enumerate(partListEntries.keys()): quantity = partListEntries[k][QUANTITY_IDX] values = partListEntries[k][1] ss.set('A' + str(idx + 2), str(values[LENGTH_IDX])) ss.set('B' + str(idx + 2), str(values[WIDTH_IDX])) ss.set('C' + str(idx + 2), str(quantity)) ss.set('D' + str(idx + 2), str(values[HEIGHT_IDX])) ss.set('E' + str(idx + 2), values[FILENAME_IDX]) ss.set('F' + str(idx + 2), "true") FreeCADGui.addCommand('a2p_CreatePartlist', a2p_CreatePartlist()) FreeCADGui.addCommand('a2p_CreateCutListOptimizerPartlist', a2p_CreateCutListOptimizerPartlist()) ================================================ FILE: a2p_ConstraintCommands.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2019 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os import sys import math import copy from PySide import QtGui, QtCore import FreeCAD # from FreeCAD import Base import FreeCADGui import Part from a2plib import * import a2p_constraints import a2p_ConstraintDialog from a2p_viewProviderProxies import * from a2p_solversystem import solveConstraints translate = FreeCAD.Qt.translate class a2p_PointIdentityConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.PointIdentityConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.PointIdentityConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_PointIdentity.svg', 'MenuText': translate("A2plus_Constraints", "Add PointIdentity constraint"), 'ToolTip': a2p_constraints.PointIdentityConstraint.getToolTip() } FreeCADGui.addCommand('a2p_PointIdentityConstraintCommand', a2p_PointIdentityConstraintCommand()) class a2p_PointOnLineConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.PointOnLineConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.PointOnLineConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_PointOnLineConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add PointOnLine constraint"), 'ToolTip': a2p_constraints.PointOnLineConstraint.getToolTip() } FreeCADGui.addCommand('a2p_PointOnLineConstraintCommand', a2p_PointOnLineConstraintCommand()) class a2p_PointOnPlaneConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.PointOnPlaneConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.PointOnPlaneConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_PointOnPlaneConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add PointOnPlane constraint"), 'ToolTip': a2p_constraints.PointOnPlaneConstraint.getToolTip() } FreeCADGui.addCommand('a2p_PointOnPlaneConstraintCommand', a2p_PointOnPlaneConstraintCommand()) class a2p_SphericalSurfaceConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.SphericalConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.SphericalConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_SphericalSurfaceConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add SphereCenterIdent constraint"), 'ToolTip': a2p_constraints.SphericalConstraint.getToolTip() } FreeCADGui.addCommand('a2p_SphericalSurfaceConstraintCommand', a2p_SphericalSurfaceConstraintCommand()) class a2p_CircularEdgeConnectionCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.CircularEdgeConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.CircularEdgeConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_CircularEdgeConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add CircularEdge constraint"), 'ToolTip': a2p_constraints.CircularEdgeConstraint.getToolTip() } FreeCADGui.addCommand('a2p_CircularEdgeConnection', a2p_CircularEdgeConnectionCommand()) class a2p_AxialConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AxialConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AxialConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_AxialConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AxisCoincident constraint"), 'ToolTip': a2p_constraints.AxialConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AxialConstraintCommand', a2p_AxialConstraintCommand()) class a2p_AxisParallelConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AxisParallelConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AxisParallelConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': ':/icons/a2p_AxisParallelConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AxisParallel constraint"), 'ToolTip': a2p_constraints.AxisParallelConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AxisParallelConstraintCommand', a2p_AxisParallelConstraintCommand()) class a2p_AxisPlaneParallelCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AxisPlaneParallelConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AxisPlaneParallelConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': ':/icons/a2p_AxisPlaneParallelConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AxisPlaneParallel constraint"), 'ToolTip': a2p_constraints.AxisPlaneParallelConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AxisPlaneParallelCommand', a2p_AxisPlaneParallelCommand()) class a2p_AxisPlaneAngleCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AxisPlaneAngleConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AxisPlaneAngleConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': ':/icons/a2p_AxisPlaneAngleConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AxisPlaneAngle constraint"), 'ToolTip': a2p_constraints.AxisPlaneAngleConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AxisPlaneAngleCommand', a2p_AxisPlaneAngleCommand()) class a2p_AxisPlaneNormalCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AxisPlaneNormalConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AxisPlaneNormalConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': ':/icons/a2p_AxisPlaneNormalConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AxisPlaneNormal constraint"), 'ToolTip': a2p_constraints.AxisPlaneNormalConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AxisPlaneNormalCommand', a2p_AxisPlaneNormalCommand()) class a2p_PlanesParallelConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.PlanesParallelConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.PlanesParallelConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_PlanesParallelConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add PlanesParallel constraint"), 'ToolTip': a2p_constraints.PlanesParallelConstraint.getToolTip() } FreeCADGui.addCommand('a2p_PlanesParallelConstraintCommand', a2p_PlanesParallelConstraintCommand()) class a2p_PlaneCoincidentConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.PlaneConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.PlaneConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_PlaneCoincidentConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add PlaneCoincident constraint"), 'ToolTip': a2p_constraints.PlaneConstraint.getToolTip() } FreeCADGui.addCommand('a2p_PlaneCoincidentConstraintCommand', a2p_PlaneCoincidentConstraintCommand()) class a2p_AngledPlanesConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.AngledPlanesConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.AngledPlanesConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_AngleConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add AngledPlanes constraint"), 'ToolTip': a2p_constraints.AngledPlanesConstraint.getToolTip() } FreeCADGui.addCommand('a2p_AngledPlanesConstraintCommand', a2p_AngledPlanesConstraintCommand()) class a2p_CenterOfMassConstraintCommand: def Activated(self): selection = FreeCADGui.Selection.getSelectionEx() c = a2p_constraints.CenterOfMassConstraint(selection) cvp = a2p_ConstraintDialog.a2p_ConstraintValuePanel( c.constraintObject, 'createConstraint' ) FreeCADGui.Selection.clearSelection() def IsActive(self): return a2p_constraints.CenterOfMassConstraint.isValidSelection( FreeCADGui.Selection.getSelectionEx() ) def GetResources(self): return { 'Pixmap': path_a2p + '/icons/a2p_CenterOfMassConstraint.svg', 'MenuText': translate("A2plus_Constraints", "Add CenterOfMass constraint"), 'ToolTip': a2p_constraints.CenterOfMassConstraint.getToolTip() } FreeCADGui.addCommand('a2p_CenterOfMassConstraintCommand', a2p_CenterOfMassConstraintCommand()) ================================================ FILE: a2p_ConstraintDialog.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os import sys import math import copy from PySide import QtGui, QtCore import FreeCAD import FreeCADGui # import Part import a2plib import a2p_constraints # from a2p_viewProviderProxies import * # from FreeCAD import Base from a2p_translateUtils import * # from a2plib import * from a2p_solversystem import solveConstraints from FreeCAD import Units CONSTRAINT_DIALOG_STORED_POSITION = QtCore.QPoint(-1, -1) class a2p_ConstraintValueWidget(QtGui.QWidget): # class a2p_ConstraintValueWidget(QtGui.QDialog): Deleted = QtCore.Signal() Accepted = QtCore.Signal() def __init__(self, parent, constraintObject, mode): super(a2p_ConstraintValueWidget, self).__init__(parent=parent) self.mode = mode # either "editConstraint" or "createConstraint" # The documentObject of a constraint! self.constraintObject = constraintObject self.savedOffset = None self.savedDirectionConstraint = None self.savedAngle = None self.savedLockRotation = None if hasattr(self.constraintObject, 'offset'): self.savedOffset = self.constraintObject.offset if hasattr(self.constraintObject, 'directionConstraint'): self.savedDirectionConstraint = self.constraintObject.directionConstraint if hasattr(self.constraintObject, 'angle'): self.savedAngle = self.constraintObject.angle if hasattr(self.constraintObject, 'lockRotation'): self.savedLockRotation = self.constraintObject.lockRotation self.winModified = False self.lineNo = 0 self.neededHight = 0 self.isTopLevelWin = True # Window management self.position = None # Window position self.recentUnit = "mm" self.initUI() def initUI(self): # self.setMinimumHeight(self.minHeight) self.setWindowTitle(translate("A2plus", "Constraint properties")) # self.resize(300, 600) self.mainLayout = QtGui.QGridLayout() # a VBoxLayout for the whole form lbl1 = QtGui.QLabel(self) lbl1.setText(self.constraintObject.Label) lbl1.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) self.mainLayout.addWidget(lbl1, self.lineNo, 0, 1, 4) self.lineNo += 1 if hasattr(self.constraintObject, "directionConstraint"): lbl3 = QtGui.QLabel(self) lbl3.setText(translate("A2plus", "Direction")) lbl3.setFixedHeight(32) self.mainLayout.addWidget(lbl3, self.lineNo, 0) # create items list for QComboBox self.directionCombo = QtGui.QComboBox(self) self.directionCombo.insertItem(0, translate("A2plus", "aligned")) self.directionCombo.insertItem(1, translate("A2plus", "opposed")) d = self.constraintObject.directionConstraint # not every constraint has a direction # for compat with old A2plus assemblies if d == "none": self.directionCombo.insertItem(2, translate("A2plus", "none")) # activate item of list if d == "aligned": self.directionCombo.setCurrentIndex(0) elif d == "opposed": self.directionCombo.setCurrentIndex(1) elif d == "none": # will only occur with old A2plus assemblies self.directionCombo.setCurrentIndex(2) self.directionCombo.setFixedHeight(32) self.directionCombo.currentIndexChanged[int].connect(self.flipDirection2) self.mainLayout.addWidget(self.directionCombo, self.lineNo, 1) self.flipDirectionButton = QtGui.QPushButton(self) self.flipDirectionButton.setIcon(QtGui.QIcon(':/icons/a2p_FlipConstraint.svg')) self.flipDirectionButton.setToolTip(translate("A2plus", "Flip direction between 'aligned' and 'opposed'")) self.flipDirectionButton.setText(translate("A2plus", "Flip direction")) self.flipDirectionButton.setFixedHeight(32) QtCore.QObject.connect(self.flipDirectionButton, QtCore.SIGNAL("clicked()"), self.flipDirection) self.mainLayout.addWidget(self.flipDirectionButton, self.lineNo, 2) self.lineNo += 1 if hasattr(self.constraintObject, "offset"): offs = self.constraintObject.offset lbl4 = QtGui.QLabel(self) lbl4.setText(translate("A2plus", "Offset")) lbl4.setFixedHeight(32) self.mainLayout.addWidget(lbl4, self.lineNo, 0) self.offsetEdit = QtGui.QDoubleSpinBox(self) # get the length unit as string self.offsetEdit.setSuffix(" " + str(FreeCAD.Units.Quantity(1, FreeCAD.Units.Length))[3:]) # the maximum is by default 99.99 and we can allow more self.offsetEdit.setMaximum(1e7) # allow up to 1 km # set minimum to negative of maximum self.offsetEdit.setMinimum(-1*self.offsetEdit.maximum()) # use the number of decimals defined by thew user in FC params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units") self.offsetEdit.setDecimals(params.GetInt('Decimals')) userPreferred = Units.Quantity(offs).getUserPreferred()[0] # offs is string with value and unit # the following line does not work with all possible units. # sometimes a separating blank is missing # user_qty, user_unit = userPreferred.split(' ') # so do own parsing user_qty = '' user_unit = '' for c in userPreferred: if c == ' ': continue elif c == '-': if len(user_qty) == 0: user_qty += c elif c.isdigit(): user_qty += c elif c in ('.', ','): user_qty += c else: user_unit += c user_qty = float(user_qty.replace(",", ".")) # self.offsetEdit.setValue(offs.Value) # self.offsetEdit.setSuffix(" " + str(FreeCAD.Units.Quantity(1, FreeCAD.Units.Length))[3:]) self.offsetEdit.setSuffix(" " + user_unit) self.offsetEdit.setValue(user_qty) self.recentUnit = user_unit self.offsetEdit.setFixedHeight(32) QtCore.QObject.connect(self.offsetEdit, QtCore.SIGNAL("valueChanged(double)"), self.handleOffsetChanged) self.mainLayout.addWidget(self.offsetEdit, self.lineNo, 1) self.offsetSetZeroButton = QtGui.QPushButton(self) self.offsetSetZeroButton.setToolTip(translate("A2plus", "Set 0 to 'Offset' field")) self.offsetSetZeroButton.setText(translate("A2plus", "Set Zero")) self.offsetSetZeroButton.setFixedHeight(32) QtCore.QObject.connect(self.offsetSetZeroButton, QtCore.SIGNAL("clicked()"), self.setOffsetZero) self.mainLayout.addWidget(self.offsetSetZeroButton, self.lineNo, 2) self.flipOffsetSignButton = QtGui.QPushButton(self) self.flipOffsetSignButton.setToolTip( translate("A2plus", "Flip sign between '+' and '-' in 'Offset' field") ) self.flipOffsetSignButton.setText(translate("A2plus", "Flip sign")) self.flipOffsetSignButton.setFixedHeight(32) QtCore.QObject.connect(self.flipOffsetSignButton, QtCore.SIGNAL("clicked()"), self.flipOffsetSign) self.mainLayout.addWidget(self.flipOffsetSignButton, self.lineNo, 3) self.lineNo += 1 if hasattr(self.constraintObject, "angle"): angle = self.constraintObject.angle lbl5 = QtGui.QLabel(self) lbl5.setText(translate("A2plus", "Angle")) lbl5.setFixedHeight(32) self.mainLayout.addWidget(lbl5, self.lineNo, 0) self.angleEdit = QtGui.QDoubleSpinBox(self) # get the angle unit as string self.angleEdit.setSuffix(" " + str(FreeCAD.Units.Quantity(1, FreeCAD.Units.Angle))[3:]) if self.constraintObject.Type == "axisPlaneAngle": self.angleEdit.setMaximum(90.0) self.angleEdit.setMinimum(0.0) # the solver treats negative values as positive else: self.angleEdit.setMaximum(180) self.angleEdit.setMinimum(0) # the solver treats negative values as positive # use the number of decimals defined by the user in FC params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units") self.angleEdit.setDecimals(params.GetInt('Decimals')) self.angleEdit.setValue(angle) self.angleEdit.setFixedHeight(32) self.angleEdit.setToolTip(translate("A2plus", "Angle in the range 0 - 180 degrees")) QtCore.QObject.connect(self.angleEdit, QtCore.SIGNAL("valueChanged(double)"), self.handleAngleChanged) self.mainLayout.addWidget(self.angleEdit, self.lineNo, 1) self.roundAngleButton = QtGui.QPushButton(self) self.roundAngleButton.setText(translate("A2plus", "Round")) self.roundAngleButton.setFixedHeight(32) self.roundAngleButton.setToolTip(translate("A2plus", "Round angle to multiples of 5")) QtCore.QObject.connect(self.roundAngleButton, QtCore.SIGNAL("clicked()"), self.roundAngle) self.mainLayout.addWidget(self.roundAngleButton, self.lineNo, 2) self.perpendicularAngleButton = QtGui.QPushButton(self) self.perpendicularAngleButton.setText(translate("A2plus", "Perpendicular")) self.perpendicularAngleButton.setFixedHeight(32) self.perpendicularAngleButton.setToolTip(translate("A2plus", "Adds/deletes 90 degrees")) QtCore.QObject.connect(self.perpendicularAngleButton, QtCore.SIGNAL("clicked()"), self.perpendicularAngle) self.mainLayout.addWidget(self.perpendicularAngleButton, self.lineNo, 3) self.lineNo += 1 if hasattr(self.constraintObject, "lockRotation"): lbl6 = QtGui.QLabel(self) lbl6.setText(translate("A2plus", "Lock Rotation")) lbl6.setFixedHeight(32) self.mainLayout.addWidget(lbl6, self.lineNo, 0) self.lockRotationCombo = QtGui.QComboBox(self) self.lockRotationCombo.insertItem(0, translate("A2plus", "False")) self.lockRotationCombo.insertItem(1, translate("A2plus", "True")) if self.constraintObject.lockRotation: # not every constraint has a direction self.lockRotationCombo.setCurrentIndex(1) else: self.lockRotationCombo.setCurrentIndex(0) self.lockRotationCombo.setFixedHeight(32) self.mainLayout.addWidget(self.lockRotationCombo, self.lineNo, 1) self.flipLockRotationButton = QtGui.QPushButton(self) self.flipLockRotationButton.setIcon(QtGui.QIcon(':/icons/a2p_LockRotation.svg')) self.flipLockRotationButton.setToolTip(translate("A2plus", "Toggle between 'False' and 'True'")) self.flipLockRotationButton.setText(translate("A2plus", "Toggle")) self.flipLockRotationButton.setFixedHeight(32) QtCore.QObject.connect(self.flipLockRotationButton, QtCore.SIGNAL("clicked()"), self.flipLockRotation) self.mainLayout.addWidget(self.flipLockRotationButton, self.lineNo, 2) self.lineNo += 1 self.buttonPanel = QtGui.QWidget(self) self.buttonPanel.setFixedHeight(60) self.buttonPanel.setContentsMargins(4, 4, 4, 4) self.buttonPanelLayout = QtGui.QHBoxLayout() self.deleteButton = QtGui.QPushButton(self.buttonPanel) self.deleteButton.setFixedHeight(32) self.deleteButton.setIcon(QtGui.QIcon(':/icons/a2p_DeleteConnections.svg')) # need new Icon self.deleteButton.setToolTip(translate("A2plus", "Delete this constraint")) self.deleteButton.setText(translate("A2plus", "Delete")) self.solveButton = QtGui.QPushButton(self.buttonPanel) self.solveButton.setFixedHeight(32) self.solveButton.setIcon(QtGui.QIcon(':/icons/a2p_Solver.svg')) self.solveButton.setToolTip(translate("A2plus", "Solve constraints")) self.solveButton.setText(translate("A2plus", "Solve")) self.acceptButton = QtGui.QPushButton(self.buttonPanel) self.acceptButton.setFixedHeight(32) self.acceptButton.setIcon(QtGui.QIcon(':/icons/a2p_CheckAssembly.svg')) # need new Icon self.acceptButton.setToolTip(translate("A2plus", "Accept the settings")) self.acceptButton.setText(translate("A2plus", "Accept")) # self.acceptButton.setDefault(True) self.buttonPanelLayout.addWidget(self.deleteButton) self.buttonPanelLayout.addWidget(self.solveButton) self.buttonPanelLayout.addWidget(self.acceptButton) self.buttonPanel.setLayout(self.buttonPanelLayout) self.mainLayout.addWidget(self.buttonPanel, self.lineNo, 0, 1, 4) self.lineNo += 1 self.setLayout(self.mainLayout) # self.updateGeometry() # self.neededHight = 50 + (self.lineNo + 1) * 40 # self.resize(self.neededHight, 350) QtCore.QObject.connect(self.deleteButton, QtCore.SIGNAL("clicked()"), self.delete) QtCore.QObject.connect(self.solveButton, QtCore.SIGNAL("clicked()"), self.solve) QtCore.QObject.connect(self.acceptButton, QtCore.SIGNAL("clicked()"), self.accept) def setConstraintEditorData(self): if hasattr(self.constraintObject, "directionConstraint"): if self.directionCombo.currentIndex() == 0: self.constraintObject.directionConstraint = "aligned" elif self.directionCombo.currentIndex() == 1: self.constraintObject.directionConstraint = "opposed" else: self.constraintObject.directionConstraint = "none" if hasattr(self.constraintObject, "offset"): userValueStr = str(self.offsetEdit.value()) + " " + self.recentUnit self.constraintObject.offset = Units.Quantity(userValueStr).Value if hasattr(self.constraintObject, "angle"): self.constraintObject.angle = self.angleEdit.value() if hasattr(self.constraintObject, "lockRotation"): if self.lockRotationCombo.currentIndex() == 0: self.constraintObject.lockRotation = False else: self.constraintObject.lockRotation = True def solve(self): doc = FreeCAD.activeDocument() if self.constraintObject not in doc.Objects: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint does not exist anymore"), translate("A2plus", "Constraint has already been deleted") ) a2plib.setConstraintEditorRef(None) self.Deleted.emit() return self.winModified = True self.setConstraintEditorData() doc = FreeCAD.activeDocument() if doc is not None: solveConstraints(doc) doc.recompute() def flipLockRotation(self): self.winModified = True if self.lockRotationCombo.currentIndex() == 0: self.lockRotationCombo.setCurrentIndex(1) else: self.lockRotationCombo.setCurrentIndex(0) def handleOffsetChanged(self): self.winModified = True # recalculate after every change if a2plib.getAutoSolveState(): self.solve() def setOffsetZero(self): self.winModified = True self.offsetEdit.setValue(0.0) if a2plib.getAutoSolveState(): self.solve() def flipOffsetSign(self): self.winModified = True q = self.offsetEdit.value() q = -q if abs(q) > 1e-7: self.offsetEdit.setValue(q) if a2plib.getAutoSolveState(): self.solve() else: self.offsetEdit.setValue(0.0) if a2plib.getAutoSolveState(): self.solve() def flipDirection2(self, idx): self.winModified = True if a2plib.getAutoSolveState(): self.solve() def flipDirection(self): self.winModified = True if self.directionCombo.currentIndex() == 0: self.directionCombo.setCurrentIndex(1) else: self.directionCombo.setCurrentIndex(0) if a2plib.getAutoSolveState(): self.solve() def handleAngleChanged(self): self.winModified = True # recalculate after every change if a2plib.getAutoSolveState(): self.solve() def roundAngle(self): # rounds angle to 5 degrees self.winModified = True q = self.angleEdit.value() / 5 q = round(q) q = q * 5 self.angleEdit.setValue(q) if a2plib.getAutoSolveState(): self.solve() def perpendicularAngle(self): if self.constraintObject.Type == "axisPlaneAngle": # we want to go this way: 0 -> 90 -> 0 self.winModified = True q = self.angleEdit.value() if q >= 45: self.angleEdit.setValue(0) else: self.angleEdit.setValue(90) if a2plib.getAutoSolveState(): self.solve() else: # adds /subtracs 90 degrees # we want to go this way: 0 -> 90 -> 180 -> 90 -> 0 # but: 12 -> 102 -> 12 self.winModified = True q = self.angleEdit.value() + 90 if q == 270: self.angleEdit.setValue(0) elif q > 180: self.angleEdit.setValue(q - 180) elif q <= 180: self.angleEdit.setValue(q) if a2plib.getAutoSolveState(): self.solve() def restoreConstraintValues(self): if self.savedOffset is not None: self.constraintObject.offset = self.savedOffset if self.savedDirectionConstraint is not None: self.constraintObject.directionConstraint = self.savedDirectionConstraint if self.savedAngle is not None: self.constraintObject.angle = self.savedAngle if self.savedLockRotation is not None: self.constraintObject.lockRotation = self.savedLockRotation def delete(self): doc = FreeCAD.activeDocument() if self.constraintObject not in doc.Objects: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint does not exist anymore"), translate("A2plus", "Constraint has already been deleted") ) a2plib.setConstraintEditorRef(None) self.Deleted.emit() return flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Confirmation required"), translate("A2plus", "Really delete this constraint?"), flags ) if response == QtGui.QMessageBox.Yes: try: removeConstraint(self.constraintObject) except: pass # perhaps constraint already deleted by user a2plib.setConstraintEditorRef(None) self.Deleted.emit() def keyPressEvent(self, e): if e.key() == QtCore.Qt.Key_Enter: self.accept() if e.key() == QtCore.Qt.Key_Return: self.accept() def accept(self): doc = FreeCAD.activeDocument() if self.constraintObject not in doc.Objects: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint does not exist anymore"), translate("A2plus", "Constraint has already been deleted") ) a2plib.setConstraintEditorRef(None) self.Deleted.emit() return self.setConstraintEditorData() self.Accepted.emit() def cancelOperation(self): doc = FreeCAD.activeDocument() if self.constraintObject not in doc.Objects: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint does not exist anymore"), translate("A2plus", "Constraint has already been deleted") ) a2plib.setConstraintEditorRef(None) self.Deleted.emit() return if self.mode == 'createConstraint': flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Confirmation required"), translate("A2plus", "Exit and delete new constraint?"), flags ) if response == QtGui.QMessageBox.Yes: a2plib.setConstraintEditorRef(None) self.Deleted.emit() else: self.restoreConstraintValues() else: if self.isWindowModified() or self.winModified: flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Information"), translate("A2plus", "Values changed! Accept Constraint?"), flags ) if response == QtGui.QMessageBox.Yes: self.setConstraintEditorData() a2plib.setConstraintEditorRef(None) self.Accepted.emit() else: self.restoreConstraintValues() a2plib.setConstraintEditorRef(None) self.Accepted.emit() else: a2plib.setConstraintEditorRef(None) self.Accepted.emit() class a2p_ConstraintCollection(QtGui.QWidget): def __init__(self, parent): super(a2p_ConstraintCollection, self).__init__(parent=parent) self.constraintButtons = [] self.activeConstraint = None self.position = None # Window position self.initUI() def initUI(self): self.setWindowTitle(translate("A2plus", "Constraint Tools")) # self.setMinimumHeight(self.baseHeight) self.mainLayout = QtGui.QVBoxLayout() # a VBoxLayout for the whole form self.panel1 = QtGui.QWidget(self) self.panel1.setMinimumHeight(60) panel1_Layout = QtGui.QHBoxLayout() self.pointIdentityButton = QtGui.QPushButton(self.panel1) self.pointIdentityButton.setFixedSize(48, 48) self.pointIdentityButton.setIcon(QtGui.QIcon(':/icons/a2p_PointIdentity.svg')) self.pointIdentityButton.setIconSize(QtCore.QSize(32, 32)) self.pointIdentityButton.setToolTip(a2p_constraints.PointIdentityConstraint.getToolTip()) self.pointIdentityButton.setText("") QtCore.QObject.connect(self.pointIdentityButton, QtCore.SIGNAL("clicked()"), self.onPointIdentityButton) self.constraintButtons.append(self.pointIdentityButton) self.pointOnLineButton = QtGui.QPushButton(self.panel1) self.pointOnLineButton.setFixedSize(48, 48) self.pointOnLineButton.setIcon(QtGui.QIcon(':/icons/a2p_PointOnLineConstraint.svg')) self.pointOnLineButton.setIconSize(QtCore.QSize(32, 32)) self.pointOnLineButton.setToolTip(a2p_constraints.PointOnLineConstraint.getToolTip()) self.pointOnLineButton.setText("") QtCore.QObject.connect(self.pointOnLineButton, QtCore.SIGNAL("clicked()"), self.onPointOnLineButton) self.constraintButtons.append(self.pointOnLineButton) self.pointOnPlaneButton = QtGui.QPushButton(self.panel1) self.pointOnPlaneButton.setFixedSize(48, 48) self.pointOnPlaneButton.setIcon(QtGui.QIcon(':/icons/a2p_PointOnPlaneConstraint.svg')) self.pointOnPlaneButton.setIconSize(QtCore.QSize(32, 32)) self.pointOnPlaneButton.setToolTip(a2p_constraints.PointOnPlaneConstraint.getToolTip()) self.pointOnPlaneButton.setText("") QtCore.QObject.connect(self.pointOnPlaneButton, QtCore.SIGNAL("clicked()"), self.onPointOnPlaneButton) self.constraintButtons.append(self.pointOnPlaneButton) self.sphericalConstraintButton = QtGui.QPushButton(self.panel1) self.sphericalConstraintButton.setFixedSize(48, 48) self.sphericalConstraintButton.setIcon(QtGui.QIcon(':/icons/a2p_SphericalSurfaceConstraint.svg')) self.sphericalConstraintButton.setIconSize(QtCore.QSize(32, 32)) self.sphericalConstraintButton.setToolTip(a2p_constraints.SphericalConstraint.getToolTip()) self.sphericalConstraintButton.setText("") QtCore.QObject.connect(self.sphericalConstraintButton, QtCore.SIGNAL("clicked()"), self.onSpericalConstraintButton) self.constraintButtons.append(self.sphericalConstraintButton) panel1_Layout.addWidget(self.pointIdentityButton) panel1_Layout.addWidget(self.pointOnLineButton) panel1_Layout.addWidget(self.pointOnPlaneButton) panel1_Layout.addWidget(self.sphericalConstraintButton) panel1_Layout.addStretch(1) self.panel1.setLayout(panel1_Layout) self.panel2 = QtGui.QWidget(self) self.panel2.setMinimumHeight(60) panel2_Layout = QtGui.QHBoxLayout() self.circularEdgeButton = QtGui.QPushButton(self.panel2) self.circularEdgeButton.setFixedSize(48, 48) self.circularEdgeButton.setIcon(QtGui.QIcon(':/icons/a2p_CircularEdgeConstraint.svg')) self.circularEdgeButton.setIconSize(QtCore.QSize(32, 32)) self.circularEdgeButton.setToolTip(a2p_constraints.CircularEdgeConstraint.getToolTip()) self.circularEdgeButton.setText("") QtCore.QObject.connect(self.circularEdgeButton, QtCore.SIGNAL("clicked()"), self.onCircularEdgeButton) self.constraintButtons.append(self.circularEdgeButton) self.axialButton = QtGui.QPushButton(self.panel2) self.axialButton.setFixedSize(48, 48) self.axialButton.setIcon(QtGui.QIcon(':/icons/a2p_AxialConstraint.svg')) self.axialButton.setIconSize(QtCore.QSize(32, 32)) self.axialButton.setToolTip(a2p_constraints.AxialConstraint.getToolTip()) self.axialButton.setText("") QtCore.QObject.connect(self.axialButton, QtCore.SIGNAL("clicked()"), self.onAxialButton) self.constraintButtons.append(self.axialButton) self.axisParallelButton = QtGui.QPushButton(self.panel2) self.axisParallelButton.setFixedSize(48, 48) self.axisParallelButton.setIcon(QtGui.QIcon(':/icons/a2p_AxisParallelConstraint.svg')) self.axisParallelButton.setIconSize(QtCore.QSize(32, 32)) self.axisParallelButton.setToolTip(a2p_constraints.AxisParallelConstraint.getToolTip()) self.axisParallelButton.setText("") QtCore.QObject.connect(self.axisParallelButton, QtCore.SIGNAL("clicked()"), self.onAxisParallelButton) self.constraintButtons.append(self.axisParallelButton) self.axisPlaneParallelButton = QtGui.QPushButton(self.panel2) self.axisPlaneParallelButton.setFixedSize(48, 48) self.axisPlaneParallelButton.setIcon(QtGui.QIcon(':/icons/a2p_AxisPlaneParallelConstraint.svg')) self.axisPlaneParallelButton.setIconSize(QtCore.QSize(32, 32)) self.axisPlaneParallelButton.setToolTip(a2p_constraints.AxisPlaneParallelConstraint.getToolTip()) self.axisPlaneParallelButton.setText("") QtCore.QObject.connect(self.axisPlaneParallelButton, QtCore.SIGNAL("clicked()"), self.onAxisPlaneParallelButton) self.constraintButtons.append(self.axisPlaneParallelButton) self.axisPlaneNormalButton = QtGui.QPushButton(self.panel2) self.axisPlaneNormalButton.setFixedSize(48, 48) self.axisPlaneNormalButton.setIcon(QtGui.QIcon(':/icons/a2p_AxisPlaneNormalConstraint.svg')) self.axisPlaneNormalButton.setIconSize(QtCore.QSize(32, 32)) self.axisPlaneNormalButton.setToolTip(a2p_constraints.AxisPlaneNormalConstraint.getToolTip()) self.axisPlaneNormalButton.setText("") QtCore.QObject.connect(self.axisPlaneNormalButton, QtCore.SIGNAL("clicked()"), self.onAxisPlaneNormalButton) self.constraintButtons.append(self.axisPlaneNormalButton) self.axisPlaneAngleButton = QtGui.QPushButton(self.panel2) self.axisPlaneAngleButton.setFixedSize(48, 48) self.axisPlaneAngleButton.setIcon(QtGui.QIcon(':/icons/a2p_AxisPlaneAngleConstraint.svg')) self.axisPlaneAngleButton.setIconSize(QtCore.QSize(32, 32)) self.axisPlaneAngleButton.setToolTip(a2p_constraints.AxisPlaneAngleConstraint.getToolTip()) self.axisPlaneAngleButton.setText("") QtCore.QObject.connect(self.axisPlaneAngleButton, QtCore.SIGNAL("clicked()"), self.onAxisPlaneAngleButton) self.constraintButtons.append(self.axisPlaneAngleButton) panel2_Layout.addWidget(self.circularEdgeButton) panel2_Layout.addWidget(self.axialButton) panel2_Layout.addWidget(self.axisParallelButton) panel2_Layout.addWidget(self.axisPlaneParallelButton) panel2_Layout.addWidget(self.axisPlaneNormalButton) panel2_Layout.addWidget(self.axisPlaneAngleButton) panel2_Layout.addStretch(1) self.panel2.setLayout(panel2_Layout) self.panel3 = QtGui.QWidget(self) self.panel3.setMinimumHeight(60) panel3_Layout = QtGui.QHBoxLayout() self.planesParallelButton = QtGui.QPushButton(self.panel3) self.planesParallelButton.setFixedSize(48, 48) self.planesParallelButton.setIcon(QtGui.QIcon(':/icons/a2p_PlanesParallelConstraint.svg')) self.planesParallelButton.setIconSize(QtCore.QSize(32, 32)) self.planesParallelButton.setToolTip(a2p_constraints.PlanesParallelConstraint.getToolTip()) self.planesParallelButton.setText("") QtCore.QObject.connect(self.planesParallelButton, QtCore.SIGNAL("clicked()"), self.onPlanesParallelButton) self.constraintButtons.append(self.planesParallelButton) self.planeCoincidentButton = QtGui.QPushButton(self.panel3) self.planeCoincidentButton.setFixedSize(48, 48) self.planeCoincidentButton.setIcon(QtGui.QIcon(':/icons/a2p_PlaneCoincidentConstraint.svg')) self.planeCoincidentButton.setIconSize(QtCore.QSize(32, 32)) self.planeCoincidentButton.setToolTip(a2p_constraints.PlaneConstraint.getToolTip()) self.planeCoincidentButton.setText("") QtCore.QObject.connect(self.planeCoincidentButton, QtCore.SIGNAL("clicked()"), self.onPlaneCoincidentButton) self.constraintButtons.append(self.planeCoincidentButton) self.angledPlanesButton = QtGui.QPushButton(self.panel3) self.angledPlanesButton.setFixedSize(48, 48) self.angledPlanesButton.setIcon(QtGui.QIcon(':/icons/a2p_AngleConstraint.svg')) self.angledPlanesButton.setIconSize(QtCore.QSize(32, 32)) self.angledPlanesButton.setToolTip(a2p_constraints.AngledPlanesConstraint.getToolTip()) self.angledPlanesButton.setText("") QtCore.QObject.connect(self.angledPlanesButton, QtCore.SIGNAL("clicked()"), self.onAngledPlanesButton) self.constraintButtons.append(self.angledPlanesButton) self.centerOfMassButton = QtGui.QPushButton(self.panel3) self.centerOfMassButton.setFixedSize(48, 48) self.centerOfMassButton.setIcon(QtGui.QIcon(':/icons/a2p_CenterOfMassConstraint.svg')) self.centerOfMassButton.setIconSize(QtCore.QSize(32, 32)) self.centerOfMassButton.setToolTip(a2p_constraints.CenterOfMassConstraint.getToolTip()) self.centerOfMassButton.setText("") QtCore.QObject.connect(self.centerOfMassButton, QtCore.SIGNAL("clicked()"), self.onCenterOfMassButton) self.constraintButtons.append(self.centerOfMassButton) panel3_Layout.addWidget(self.planesParallelButton) panel3_Layout.addWidget(self.planeCoincidentButton) panel3_Layout.addWidget(self.angledPlanesButton) panel3_Layout.addWidget(self.centerOfMassButton) panel3_Layout.addStretch(1) self.panel3.setLayout(panel3_Layout) self.helpButton = QtGui.QPushButton(self) self.helpButton.setText(translate("A2plus", "Help")) self.helpButton.setFixedSize(150, 32) QtCore.QObject.connect(self.helpButton, QtCore.SIGNAL("clicked()"), self.showConstraintCollectionHelp) self.mainLayout.addWidget(self.panel1) self.mainLayout.addWidget(self.panel2) self.mainLayout.addWidget(self.panel3) self.mainLayout.addWidget(self.helpButton) self.mainLayout.addStretch(1) self.setLayout(self.mainLayout) for btn in self.constraintButtons: btn.setEnabled(False) self.timer = QtCore.QTimer() QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.onTimer) self.timer.start(100) def showConstraintCollectionHelp(self): QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint Tools help"), translate("A2plus", "Select geometry to be constrained " + "\n" + "within 3D View!" + "\n\n" + "Suitable Constraint buttons will " + "\n" + "get activated." + "\n\n" + "Please also read tooltips of each " + "\n" + "button.") ) def parseSelections(self): # constraint editor command is active, do not allow defining constraints if a2plib.getConstraintEditorRef(): for btn in self.constraintButtons: btn.setEnabled(False) return selection = FreeCADGui.Selection.getSelectionEx() if len(selection) != 2: for btn in self.constraintButtons: btn.setEnabled(False) elif self.activeConstraint is not None: for btn in self.constraintButtons: btn.setEnabled(False) else: if a2p_constraints.PointIdentityConstraint.isValidSelection(selection): self.pointIdentityButton.setEnabled(True) if a2p_constraints.SphericalConstraint.isValidSelection(selection): self.sphericalConstraintButton.setEnabled(True) if a2p_constraints.PointOnLineConstraint.isValidSelection(selection): self.pointOnLineButton.setEnabled(True) if a2p_constraints.PointOnPlaneConstraint.isValidSelection(selection): self.pointOnPlaneButton.setEnabled(True) if a2p_constraints.AxisParallelConstraint.isValidSelection(selection): self.axisParallelButton.setEnabled(True) if a2p_constraints.AxialConstraint.isValidSelection(selection): self.axialButton.setEnabled(True) if a2p_constraints.AxisPlaneParallelConstraint.isValidSelection(selection): self.axisPlaneParallelButton.setEnabled(True) if a2p_constraints.AxisPlaneAngleConstraint.isValidSelection(selection): self.axisPlaneAngleButton.setEnabled(True) if a2p_constraints.AxisPlaneNormalConstraint.isValidSelection(selection): self.axisPlaneNormalButton.setEnabled(True) if a2p_constraints.CircularEdgeConstraint.isValidSelection(selection): self.circularEdgeButton.setEnabled(True) if a2p_constraints.PlanesParallelConstraint.isValidSelection(selection): self.planesParallelButton.setEnabled(True) if a2p_constraints.AngledPlanesConstraint.isValidSelection(selection): self.angledPlanesButton.setEnabled(True) if a2p_constraints.PlaneConstraint.isValidSelection(selection): self.planeCoincidentButton.setEnabled(True) if a2p_constraints.CenterOfMassConstraint.isValidSelection(selection): self.centerOfMassButton.setEnabled(True) def onTimer(self): self.parseSelections() self.timer.start(100) def manageConstraint(self): self.constraintValueBox = a2p_ConstraintValuePanel( # self, self.activeConstraint.constraintObject, 'createConstraint' ) QtCore.QObject.connect(self.constraintValueBox, QtCore.SIGNAL("Deleted()"), self.onDeleteConstraint) QtCore.QObject.connect(self.constraintValueBox, QtCore.SIGNAL("Accepted()"), self.onAcceptConstraint) a2plib.setConstraintEditorRef(self) @ QtCore.Slot() def onAcceptConstraint(self): # self.constraintValueBox.deleteLater() a2plib.setConstraintEditorRef(None) self.activeConstraint = None FreeCADGui.Selection.clearSelection() @ QtCore.Slot() def onDeleteConstraint(self): # self.constraintValueBox.deleteLater() a2plib.setConstraintEditorRef(None) self.activeConstraint = None FreeCADGui.Selection.clearSelection() def onPointIdentityButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.PointIdentityConstraint(selection) self.manageConstraint() def onPointOnLineButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.PointOnLineConstraint(selection) self.manageConstraint() def onPointOnPlaneButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.PointOnPlaneConstraint(selection) self.manageConstraint() def onCircularEdgeButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.CircularEdgeConstraint(selection) self.manageConstraint() def onAxialButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AxialConstraint(selection) self.manageConstraint() def onAxisParallelButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AxisParallelConstraint(selection) self.manageConstraint() def onAxisPlaneParallelButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AxisPlaneParallelConstraint(selection) self.manageConstraint() def onAxisPlaneAngleButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AxisPlaneAngleConstraint(selection) self.manageConstraint() def onAxisPlaneNormalButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AxisPlaneNormalConstraint(selection) self.manageConstraint() def onPlanesParallelButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.PlanesParallelConstraint(selection) self.manageConstraint() def onPlaneCoincidentButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.PlaneConstraint(selection) self.manageConstraint() def onAngledPlanesButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.AngledPlanesConstraint(selection) self.manageConstraint() def onCenterOfMassButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.CenterOfMassConstraint(selection) self.manageConstraint() def onSpericalConstraintButton(self): selection = FreeCADGui.Selection.getSelectionEx() self.activeConstraint = a2p_constraints.SphericalConstraint(selection) self.manageConstraint() def getMoveDistToStoredPosition(widg): if CONSTRAINT_DIALOG_STORED_POSITION == QtCore.QPoint(-1, -1): mw = FreeCADGui.getMainWindow() if hasattr(QtGui, "QScreen"): width = mw.frameGeometry().width() height = mw.frameGeometry().height() x = mw.frameGeometry().x() y = mw.frameGeometry().y() else: fcFrame = QtGui.QDesktopWidget.geometry(mw) x = fcFrame.x() y = fcFrame.y() width = fcFrame.width() height = fcFrame.height() centerX = x + width/2 centerY = y + height/2 fcCenter = QtCore.QPoint(centerX, centerY) return fcCenter - widg.rect().center() else: widgetFrame = widg.frameGeometry() x = widgetFrame.x() y = widgetFrame.y() widgetCorner = QtCore.QPoint(x, y) return CONSTRAINT_DIALOG_STORED_POSITION - widgetCorner class a2p_ConstraintValuePanel(QtGui.QDockWidget): Deleted = QtCore.Signal() Accepted = QtCore.Signal() def __init__(self, constraintObject, mode): super(a2p_ConstraintValuePanel, self).__init__() self.constraintObject = constraintObject self.cvw = a2p_ConstraintValueWidget( None, constraintObject, mode ) self.setWidget(self.cvw) self.setWindowTitle(translate("A2plus", "Constraint properties")) # self.resize(300, 500) QtCore.QObject.connect(self.cvw, QtCore.SIGNAL("Accepted()"), self.onAcceptConstraint) QtCore.QObject.connect(self.cvw, QtCore.SIGNAL("Deleted()"), self.onDeleteConstraint) mw = FreeCADGui.getMainWindow() mw.addDockWidget(QtCore.Qt.RightDockWidgetArea, self) self.setFloating(True) self.activateWindow() self.setAllowedAreas(QtCore.Qt.NoDockWidgetArea) # self.resize(300,500) self.move(getMoveDistToStoredPosition(self)) a2plib.setConstraintEditorRef(self) if mode == 'createConstraint': if a2plib.getAutoSolveState(): doc = FreeCAD.activeDocument() if doc is not None: solveConstraints(doc) self.cvw.activateWindow() def storeWindowPosition(self): # ConstraintDialog has Priority on storing its position if a2plib.getConstraintDialogRef() is not None: return frame = QtGui.QDockWidget.frameGeometry(self) x = frame.x() y = frame.y() global CONSTRAINT_DIALOG_STORED_POSITION CONSTRAINT_DIALOG_STORED_POSITION = QtCore.QPoint(x, y) def onAcceptConstraint(self): self.storeWindowPosition() self.Accepted.emit() a2plib.setConstraintEditorRef(None) a2plib.unTouchA2pObjects() self.deleteLater() def onDeleteConstraint(self): self.storeWindowPosition() self.Deleted.emit() a2plib.setConstraintEditorRef(None) a2plib.unTouchA2pObjects() self.deleteLater() def closeEvent(self, event): self.widget().cancelOperation() event.ignore() class a2p_ConstraintPanel(QtGui.QDockWidget): def __init__(self): super(a2p_ConstraintPanel, self).__init__() self.resize(200, 250) cc = a2p_ConstraintCollection(None) self.setWidget(cc) self.setWindowTitle(translate("A2plus", "Constraint Tools")) # mw = FreeCADGui.getMainWindow() mw.addDockWidget(QtCore.Qt.RightDockWidgetArea, self) # self.setFloating(True) self.activateWindow() self.setAllowedAreas(QtCore.Qt.NoDockWidgetArea) self.move(getMoveDistToStoredPosition(self)) a2plib.setConstraintDialogRef(self) # self.timer = QtCore.QTimer() QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.onTimer) self.timer.start(100) def onTimer(self): if a2plib.getConstraintEditorRef(): # is not None # the editor box is active, do not show self self.hide() else: if not self.isVisible(): self.show() self.resize(200, 250) # calculate window center position and save it # self.rect().center() does not work here somehow frame = QtGui.QDockWidget.frameGeometry(self) x = frame.x() y = frame.y() global CONSTRAINT_DIALOG_STORED_POSITION CONSTRAINT_DIALOG_STORED_POSITION = QtCore.QPoint(x, y) self.timer.start(100) def closeEvent(self, event): a2plib.setConstraintDialogRef(None) self.deleteLater() event.accept() class a2p_ConstraintDialogCommand: def Activated(self): if a2plib.getConstraintDialogRef(): return # Dialog already active... p = a2p_ConstraintPanel() def IsActive(self): if a2plib.getConstraintEditorRef(): return False if a2plib.getConstraintDialogRef(): return False return True def GetResources(self): return { 'Pixmap': ':/icons/a2p_DefineConstraints.svg', 'MenuText': translate("A2plus", "Define constraints"), 'ToolTip': translate("A2plus", "Opens a dialog to" + "\n" + "define constraints") } FreeCADGui.addCommand('a2p_ConstraintDialogCommand', a2p_ConstraintDialogCommand()) class a2p_EditConstraintCommand: def Activated(self): self.selectedConstraint = a2plib.getSelectedConstraint() if self.selectedConstraint is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Selection Error!"), translate("A2plus", "Please select exact one constraint first.") ) return self.constraintValueBox = a2p_ConstraintValuePanel( self.selectedConstraint, 'editConstraint' ) QtCore.QObject.connect(self.constraintValueBox, QtCore.SIGNAL("Deleted()"), self.onDeleteConstraint) QtCore.QObject.connect(self.constraintValueBox, QtCore.SIGNAL("Accepted()"), self.onAcceptConstraint) a2plib.setConstraintEditorRef(self.constraintValueBox) def IsActive(self): if a2plib.getConstraintEditorRef(): return False return True def onAcceptConstraint(self): self.constraintValueBox.deleteLater() a2plib.setConstraintEditorRef(None) FreeCADGui.Selection.clearSelection() def onDeleteConstraint(self): self.constraintValueBox.deleteLater() a2plib.setConstraintEditorRef(None) FreeCADGui.Selection.clearSelection() def GetResources(self): return { 'Pixmap': ':/icons/a2p_EditConstraint.svg', 'MenuText': translate("A2plus", "Edit selected constraint"), 'ToolTip': translate("A2plus", "Select a constraint in the" + "\n" "treeview and hit this button.") } FreeCADGui.addCommand('a2p_EditConstraintCommand', a2p_EditConstraintCommand()) ================================================ FILE: a2p_MuxAssembly.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os import copy import time import numpy from PySide import QtGui from random import random, choice import FreeCAD from FreeCAD import Base import FreeCADGui import Part import a2plib from a2plib import * from a2p_translateUtils import * from a2p_importedPart_class import Proxy_muxAssemblyObj # for compat def createTopoInfo(obj): # used during converting an object to a2p object muxInfo = [] if not a2plib.getUseTopoNaming(): return muxInfo # # Assembly works with topoNaming! for i in range(0, len(obj.Shape.Vertexes)): newName = "".join(('V;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) for i in range(0, len(obj.Shape.Edges)): newName = "".join(('E;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) for i in range(0, len(obj.Shape.Faces)): newName = "".join(('F;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) return muxInfo def makePlacedShape(obj): '''return a copy of obj.Shape with proper placement applied''' tempShape = obj.Shape.copy() plmGlobal = obj.Placement try: plmGlobal = obj.getGlobalPlacement() except ValueError: pass tempShape.Placement = plmGlobal return tempShape def muxAssemblyWithTopoNames(doc, desiredShapeLabel=None): """ Mux an a2p assembly. combines all the a2p objects in the doc into one shape and populates muxinfo with a description of an edge or face. these descriptions are used later to retrieve the edges or faces... """ faces = [] faceColors = [] muxInfo = [] # List of keys, not used at moment... visibleObjects = [obj for obj in doc.Objects if hasattr(obj, 'ViewObject') and obj.ViewObject.isVisible() and hasattr(obj, 'Shape') and len(obj.Shape.Faces) > 0 and hasattr(obj, 'muxInfo') and a2plib.isGlobalVisible(obj) ] if desiredShapeLabel: # is not None.. tmp = [] for ob in visibleObjects: if ob.Label == desiredShapeLabel: tmp.append(ob) break visibleObjects = tmp transparency = 0 shape_list = [] for obj in visibleObjects: extendNames = False if a2plib.getUseTopoNaming() and len(obj.muxInfo) > 0: # Subelement-Strings existieren schon... extendNames = True # vertexNames = [] edgeNames = [] faceNames = [] # for item in obj.muxInfo: if item[0] == 'V': vertexNames.append(item) if item[0] == 'E': edgeNames.append(item) if item[0] == 'F': faceNames.append(item) if a2plib.getUseTopoNaming(): for i in range(0, len(obj.Shape.Vertexes)): if extendNames: newName = "".join((vertexNames[i], obj.Name, ';')) muxInfo.append(newName) else: newName = "".join(('V;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) for i in range(0, len(obj.Shape.Edges)): if extendNames: newName = "".join((edgeNames[i], obj.Name, ';')) muxInfo.append(newName) else: newName = "".join(('E;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) # Save Computing time, store this before the for..enumerate loop later... needDiffuseColorExtension = (len(obj.ViewObject.DiffuseColor) < len(obj.Shape.Faces)) shapeCol = obj.ViewObject.ShapeColor diffuseCol = obj.ViewObject.DiffuseColor tempShape = makePlacedShape(obj) transparency = obj.ViewObject.Transparency shape_list.append(obj.Shape) # now start the loop with use of the stored values..(much faster) topoNaming = a2plib.getUseTopoNaming() diffuseElement = makeDiffuseElement(shapeCol, transparency) for i in range(0, len(tempShape.Faces)): if topoNaming: if extendNames: newName = "".join((faceNames[i], obj.Name, ';')) muxInfo.append(newName) else: newName = "".join(('F;', str(i+1), ';', obj.Name, ';')) muxInfo.append(newName) if needDiffuseColorExtension: faceColors.append(diffuseElement) if not needDiffuseColorExtension: faceColors.extend(diffuseCol) faces.extend(tempShape.Faces) # if len(faces) == 1: # shell = Part.makeShell([faces]) # else: # shell = Part.makeShell(faces) shell = Part.makeShell(faces) try: if a2plib.getUseSolidUnion(): if len(shape_list) > 1: shape_base = shape_list[0] shapes = shape_list[1:] solid = shape_base.fuse(shapes) else: solid = Part.Solid(shape_list[0]) else: solid = Part.Solid(shell) # This does not work if shell includes spherical faces. FC-Bug ?? # Fall back to shell if some faces are missing.. if len(shell.Faces) != len(solid.Faces): solid = shell except ValueError: # keeping a shell if solid is failing FreeCAD.Console.PrintWarning(translate("A2plus", "Union of Shapes FAILED") + "\n") solid = shell # transparency could change to different values depending # on the order of imported objects # now set it to a default value # faceColors still contains the per face transparency values transparency = 0 return muxInfo, solid, faceColors, transparency class SimpleAssemblyShape: def __init__(self, obj): obj.addProperty("App::PropertyString", "type").type = 'SimpleAssemblyShape' obj.addProperty("App::PropertyFloat", "timeOfGenerating").timeOfGenerating = time.time() obj.Proxy = self def onChanged(self, fp, prop): pass def execute(self, fp): pass class ViewProviderSimpleAssemblyShape: def __init__(self, obj): obj.Proxy = self def onDelete(self, viewObject, subelements): return True def __getstate__(self): return None def __setstate__(self, state): return None def dumps(self): return None def loads(self, state): return None def getIcon(self): return a2plib.path_a2p + '/icons/SimpleAssemblyShape.svg' def attach(self, obj): default = coin.SoGroup() obj.addDisplayMode(default, "Standard") self.object_Name = obj.Object.Name self.Object = obj.Object def getDisplayModes(self, obj): "Return a list of display modes." modes = [] modes.append("Shaded") modes.append("Wireframe") modes.append("Flat Lines") return modes def getDefaultDisplayMode(self): "Return the name of the default display mode. It must be defined in getDisplayModes." return "Flat Lines" def setDisplayMode(self, mode): return mode toolTip = \ translate("A2plus", ''' Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. ''' ) def createOrUpdateSimpleAssemblyShape(doc): visibleImportObjects = [obj for obj in doc.Objects if 'importPart' in obj.Content and hasattr(obj, 'ViewObject') and obj.ViewObject.isVisible() and hasattr(obj, 'Shape') and len(obj.Shape.Faces) > 0 ] if len(visibleImportObjects) == 0: QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "Cannot create SimpleAssemblyShape"), translate("A2plus", "No visible Import Parts found") ) return sas = doc.getObject('SimpleAssemblyShape') if sas is None: sas = doc.addObject("Part::FeaturePython", "SimpleAssemblyShape") SimpleAssemblyShape(sas) # sas.ViewObject.Proxy = 0 ViewProviderSimpleAssemblyShape(sas.ViewObject) faces = [] shape_list = [] for obj in visibleImportObjects: faces = faces + obj.Shape.Faces shape_list.append(obj.Shape) if len(faces) == 1: shell = Part.makeShell([faces]) else: shell = Part.makeShell(faces) try: if a2plib.getUseSolidUnion(): if len(shape_list) > 1: shape_base = shape_list[0] shapes = shape_list[1:] solid = shape_base.fuse(shapes) else: solid = Part.Solid(shape_list[0]) else: solid = Part.Solid(shell) # This does not work if shell includes spherical faces. FC-Bug ?? # Fall back to shell if faces are misiing if len(shell.Faces) != len(solid.Faces): solid = shell except ValueError: # keeping a shell if solid is failing FreeCAD.Console.PrintWarning(translate("A2plus", "Union of Shapes FAILED") + "\n") solid = shell sas.Shape = solid # shell sas.ViewObject.Visibility = False FreeCAD.Console.PrintMessage(translate("A2plus", "Union of Shapes passed. 'SimpleAssemblyShape' are created.") + "\n") class a2p_SimpleAssemblyShapeCommand(): def GetResources(self): import a2plib return {'Pixmap' : a2plib.path_a2p + '/icons/a2p_SimpleAssemblyShape.svg', 'MenuText': translate("A2plus", "Create or refresh simple shape of complete assembly"), 'ToolTip' : toolTip } def Activated(self): if FreeCAD.activeDocument() is None: QtGui.QMessageBox.information(QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return doc = FreeCAD.ActiveDocument createOrUpdateSimpleAssemblyShape(doc) doc.recompute() def IsActive(self): return True FreeCADGui.addCommand('a2p_SimpleAssemblyShapeCommand', a2p_SimpleAssemblyShapeCommand()) ================================================ FILE: a2p_Resources3.py ================================================ # Resource object code (Python 3) # Created by: object code # Created by: The Resource Compiler for Qt version 5.15.3 # WARNING! All changes made in this file will be lost! from PySide2 import QtCore qt_resource_data = b"\ \x00\x00\x0b\x8f\ \x00\ \x00H\xd4x\x9c\xed[\xeb\x8f\xdb6\x12\xff\xbe\x7f\x85\ \xce\xf9\x92E\xf5\xe0C\xd4\xc3\xfb\x08\xd2\x06I\x0b\xa4\ \xb8C\xda\xdc\xe1z(\x02Y\xa2mueI\xa0\xe4\ \xb5\x9d\xbf\xfe\x86\x94\xad\x87-g\xedM\xd6\xc96k\ \xb4Yk8\x1c\x923\xf3\x9b\x19R\xf4\xe5\x8b\xe5,\ \xd1n\xb9(\xe2,\xbd\x1a`\x13\x0d4\x9e\x86Y\x14\ \xa7\x93\xab\xc1\xfb\xdf_\x1b\xde@+\xca \x8d\x82$\ K\xf9\xd5 \xcd\x06/\xae\xcf.\xffa\x18\xdaO\x82\ \x07%\x8f\xb4E\x5cN\xb5_\xd2\x9b\x22\x0cr\xae=\ \x9f\x96e>\xb4\xac\xc5ba\xc6k\xa2\x99\x89\x89u\ \xae\x19\xc6\xf5\xd9\xd9eq;9\xd34\xe8\x15\x95\xd3\ \xab\x81c\x0f\xe4\xd3\x94\xc7\x93iY?\xc6\xd1\xd5\x00\ \xf8\x88\xe7 \xf5\x5c\xc0\x84r\xf8\x7fX\xcf\x14\x99\x94\ T\xac\xeb1\x86\xadE`\x93h\xcfQ\x80P8f\ \x94\xfa\xbaF\x10!\x06\x82\xff\xec\xf3\xae\xbc(\x0b\xd3\ `\x06\xeb\x0aH\xfe\xe1}>\x11A\xc4M\x18\xb9+\ :\x9b\x97\xf9\xbc\xfc\xc0\x97%O\xab1`A\xad\xd5\ \xa9f\xd9\xad\xa6\xa9\xfe\xed\x19U\x84\x98/~\xcc\x96\ 0{\x0di\x8e\xad\xadW\x0b&H\x8b\xe1\xa6\xeb\xd5\ `\x9f\x06\xe5L\x8b<\x08yau\xc6\xa9\xfao\xd6\ T\xf7\xdf\x10\xcc\x22\x9b\x8b\x90\x8fA\x047S^Z\ \xaf~\x7fU7\x1a\xc8\x8c\xca\xa8%f\x99\x80\xec\xce\ \x1c\x16T\x8d\x8e}\xdf\xb7Tk\xc3\xdd\xc7G\x10B\ \xd6F\x85\xeb\xa9\xddN\x0e\xe4\x14\xd1x\xef\xd8\x88X\ `E\xe00\x8aUZ\x06K#-\x9e\xb5\xba\x86a\ \xdd3\x94\x9e\x19\xdf\xf20\x9b\xcd\xb2\xb4\xa8\x94\xd7a\ \x8e\x1a\xe6|.\x12\xc5\x11\x85\x16O\xf8\x8c\xa7ea\ \x81\xc5\xac\xc15\xf0_F|\x5c\xc8~\x95S\xca'\ \xf0J\xa2\xda\xa0\x15\xd4\xc1\x03\xf1\x06\xdc&\x86~\x15\ _\xcbq\xc2,Ix\x08~\x1d$\x8b`U\x0cj\ \x06\x10\xd5\xedJ=\xd7_\x0b\x05\xb1E\x99\xe5\x1b^\ \xf0\xd6r\x95\x80[H\xa2\x01\x1231|\xc6\xa3\xc8\ F\xe8B\x912p\x89\xb8\x5c\x0d\xf1\xc5\xa0\xe9\x93\x8d\ \xc7\x05\x87\x81Q\x8b\xa6P\x05=\xa8\xe7\xe1\x81f\x1d\ >Zh\x03\x96\xb6G\xeb\x19\x0c\xf7\x0fF\xeb\xc1.\ \xad\xee\xaa\xd7T\xf9\x14$GkQ9\xe3p*8\ \xf8\xcc\xb3-uR\xd7\xedh\xbb;\x04u|R7\ \x87\x00H\x9b\x990OJ\x9aN\xe1\xeaj@<\xd3\ s|\xe6x5u\xdc\xcb;\xee\xe5\x15\xa0\x10\xdf\xb4\ \x1d\xd7\xa6NM\x9c\xacg\xf0>\x8dK\x80\xcf\xbc\xe0\ \xe27\x09\xe9\x7f\xa6\xef\x0b\xde\xe8\xe9\xf4\x1aq\x11=\ p\x92m\xbda\xcaL\x0a\xca\xa0\x1d\xbd\xf9\xaeIw\ \xf5\xb6\xcb;\xee\xe5\xfd\xa4\xde~\x17AZ@(\x9b\ ]\x0dfA)\xe2\xe5sd\xfa\xc0\xc9td\x12\xc2\ \x10u}\x1db\x9a\xed\x10\x8a\x11\xd3\x89\x89\x10v\x5c\ \xe2\xe9\xb6g\xda\x9e\xcb\x98\xad\x1b\x98\xb8\xa6\xef\x83\x0d\ \xcf\x1b\x85\xef\x01\xf2.N\xa5\x1a\xf7 \xa7vy\x98\ \xc4\x1dP\xec\x01\xd98\x18\x8f\xc9h\x07\xd2{q\xda\ \x8c\xe6\xdd\x85\xc5\xbe\xd1\xc6A\xd0\x13@\xbe9\xa0\xba\ \x88\xdd\xc7-\xc1\xda\xde\x8e[z\xb8\x0f\xce\xbb\xbc\xe3\ ^\xde#\xdd\x12\x83\xaf3\xc2!f=\x03#\x13\xf1$\x86\x1aH\xf1\ \x11\xd0\x8a\xfc\xd8\xdd>`\xf6\xd6\xda \xbfz_3\ \x12B\xadx\x0f\x97;y\x06i\xb9\x5c)\xbf&P\ \x8c?\x87\xd8\xe6\x9b.\xc3\x0c\x9c\xca3\x1d\x0f\x13\x87\ \x9c\x7f]ezG*\xf3\xcb@\x0a#\x0c\xcbw|\ \x08\xf7\xaeoR\xe6\xbb\xae{~\xda\x18\xf1\xc0Z7\ \x9cO\xeb\x9d\x19\xf6\x17\xd3\xfc\x819\xd6\x00\x8d\xb8\xae\ G\x80h`\x9f\x986um\xb6\xa5\xf5\x87.\x18\xee\ \x95\xd1A\x97\x07\xe4\xf4\x96BO\x92\xd5\x0d\xd63\xde\ \x83\xe4\xf5\xe3tex\x87i\xcb\xe8\xabK\x1eT_\ F_\xdd\xf5\x88*\xa1\x96\x87\xed\xc1\xf4\xa1;\x89'\ L\x83.\x0f\xf1Rrb\x1f\xfd\xca\x1e\xda[R\xf4\ \x9b\xa0\xdf\x5c\xfd\xa6\xedw\x83\xcfw>\xe6\x9b\x04\x92\ \xbb\xe7\xe8\x06\x81\xca\x06\xd9\x0c\xb5\x9c\xef0\x08\xf4!\ \xc9vZP\xbb3\xd1\x1a=\xf5\xed6\xc2\xef\x99w\ @\xf4a\xb1\x14\x9d<\x96\xf6!\xe31\xc5\xd2;\xea\ R\xd6R\xe9S,\xbd\xc3O\x0f:\xf3h%\xa7\xd3\ \xf8h\x1f&\x9eb\xe9>\xe7\x83=\x0c\x06\x89\x0e\x85\ Xj\x13\x13\x22)\xf1\xbeP,u\x8f\x89\xa5\x0f\x19\ L\x0f\x8d\xa6\xa7\xf6T\xd6\xbbwxL\xd1\x94\xdc\x15\ M\x8f=\xa7\xfb\x8e\xa3)9\xc8KO\x9d\xf1\xbfr\ \xbe\x7f|\xd1\x94:\x0e\xa32\x9aRbz\xd8\xc3\xee\ \x97\x88\xa6^{\x8fw\x04(\xef\x0c\xa5\x0fu\x0au\ g\x99u\xec{\xa5/\x12\x18\x10C\xbe:\x07\xf4=\ \x13\xb9\xe0\xde\x8f\x2208\x87\xd5Y}\xe7B\x0f\x19\ \x19\xe8\xa9\x22\xc3\x91\xe9\xfe\xc0S\xbb\x93\xef\xf1\x99\xe1\ ?\xf2Wr-\x93\xef\xdb<\xf9O\xb0>\xd4S\xe9\ a\xbb\xa7S'\xfc\xbe\x22\xf8\x9b\x80\xf5\xa1U\xbcw\ r\x5c\xbb_Ye\x9f\x03k\xafu+\xa1\xef\x02\x92\ \xd7\xa4\x95%\xbe\x1aT\x05\x8eG\x9b%\xaf\x80\x8aa\ \x13\x89]\xe47\xaa_\x12\xc5\xcb\x08!^\x13hW\ @%\xc4$\xd4\xa5\x07\xbf\xc1\xbf\x0b\x5c\x9f\xb9\xf8\xad\ \x03\xa1\xdd\xe5\xb7\x82\xde\xe3T@\xff\xb5\xb2\xfd\x877\ \x0fq\xb1\x0c\x8a\x93S^-3\xfc\xaf\x83$\xc3\xa5\ wy\x93\xff7\xf5\xa6\xbd\xd9\xecA\xdc\xc99\xad;\ \xe1O\xba\xd3\xa5%/\x80\xaao\xf5\xcd\x1by+7\ \x927{\xcfji\xa3\xa0\xae{\xf2`\xc2\xd5\xdc\xc0\ \x8b\xc6\xea\xb3n\x18e\x22\xe2b\xd3\xe4\xa8O\xa7i\ =\xfd\xeaR\xf6Y\xd7dRj\xdd\x8e\xfa\xdb\x8bi\ \x10e\x0bp\x9b\xed\xc6\x8fY\x06\xb5\x97m\x22\x0f\xd9\ \x948\xdb\xcd\xb2\x8e\x226\x94F\xb6\xe3\xf8;\x8d0\ \x1e\xc5\xa6K\xc1\x93\xf1N\xe3\x5c\x08P\x94\x91\x04+\ \x0e\x8bR\x7f6L\xc54[L\x84TN)\xe6|\ \xbbg\x94\x85sy\xf1\xd6\x98W\x9e\x9c/\xb79d\ _c4\x92\x97\xa7\xfb\x04,\xe2\x14\x16k\xac/\x95\ c\xdb\xdeQ\xc9\x9acs\xd1\xdc\xb3\xe9\x1e\x8ee\xe3\ \x8c\xdbM\xab\xfdM\xb3`\x19\xcf\xe2\x8f>\xfa\x0b\xf0e\xe4A9-\xfa\xa7\xbf\xe6H\ \xb3\x88\xef\xe1(\xd2 7&I6\x0a\x92~\x06\xe5\ hS\x1e\xdep1\xca\x02\x115S\xdd\xdc\xb4\xa7\xb5\ V\xa1G\xc2\xe5B7\x85\xd6eG\xcf\x1bhTw\ \xca\x96+I\xebD\x05I\xa0\x886 \xe2\xb3\x5c^\ LW?\x1ah\x82\xd6m\x5c\xc4#\x89\xd0\xd6|\x81\ 7\x0d\x80\x18mQ\xe5\xfa\xd6\xfcR\xba\x84^\x91\xa5\ \xc9j\xcdV\x81\xf2\xd2\xdaE\x9d\xa2\xcfx\x19DA\ \x194\x10\xdcP\x88\xe7\xb0\xcd\x22E4\x1e\xbe{\xf5\ \xba\x8e&a8\xfcO&n\x9aH \x19\x82Q6\ \x07\xff\xa8c\x9c\xbc\x02\x1e\x0e\xe5~%(\xaf\xe3\x19\ hY^Y\xffa9K \x18\xd4\x0d\x1df\xa9\xb7\ Fh%V\xf0\xea\x16~\xef\xb5\xf3(\x9c\xc5\xb2\x93\ \xf5[\x19'\xc9/r\x90V\xd4\xab\x84\xaa;\xed\x99\ \xb8n\x09\x96\x0bx9\xa93]g\x0aq\x99\xf0\xeb\ \xff\xfd7\x13\xf1\x8dv\x1b\xa4\xda\xcf\xc1\xad\xe0\x7f\xaa\ )Wmm9\xd6\xae \xc5\xb93f#\xfa\xa5\x08\ \xa7\x1f~+\x83X\x14}B%#\xa8\x9f_\x13\x84\ \xa9\x81\x5c\x830\xc5\xa6h\x1d.\xc1\x93\xa0\x8c\xb3\xf4\ \xbau\xeb\x7f,8\x0f\x83h\xc1GJC\x8b\xf8&\ \xb6\x00f|i\xe6\xd3\xfc\x85\x1a\xea\xea\xa5(\x17`\ <%\xb5\x96\xd1\x91\x9c\xcfGI\x5cL\xf9q:{\ \x0dc\xff\xf4\xf2\xd5\x91\x9a\xea\x19K\x8a\x8c#`\x8d\ \xc71\xd0\xd7r\xadB\x84\xd6\xafYdI\x05Z\xef\ \xd6^QXq\x98\xa5\x85\xd5\xd2\xaa\xfc9\x89\x12\xdd\ \x92\xd1U\x9c\x0cd\xc5}\xd6\xa6\xbd}\xf3\xaf\xb7\xe4\ \x87#\x97\xb8=\x9e\x1c-\x89C\x9e\x16\x5c\xd9\xaeX\ \x1bo\x92\xce\x95\xd5\xc2,\x87\xf4<.\xad\x84\x17P\ \x98\x98\xd3RB\xa6\xd5\xa9\xeb\xdeYZ\x8ax4?\ \xda\xc5\x83\x89XA\xa4\xf8S{\x99\xf0e\x00N\x22\ \xb47\x8ar\xac\xaf\xefN@\xf1\xca\x08\xb1)\x08Z\ \x01\xe4\xd2\xdaD\x18\xf54i\x22O'\xed\xd5q5\ \x09F\x1c\x22\xf7[\xd9\xa8\xed\xb4ND6\xcfg\x10\ \xfd\xd7\xdd7\x11K\xa6\x8c\x9ez-M![d\xc2\ \x80\x84{\x1b\x94s\xc1\xdb\xf5S\x13\x22A\x9e\x8c*\ \x90QB\xf9\xe9\x9e\xe8\x80\x04\xca\x08j\xedy\x80\xfa\ \xab\x86\x99N\x99f\xbb\xba\x8d5\xcat\x9biT\xa7\ \xbe\xf6G#\xbe*\xba\xa2\xb8\xc8a\xaa\xc38\x95\xa1\ \xfa\x22\xbb\xe5b\x9cd\x8b\xe1:\x86_\xa8\xbfq\x22\ \xeb\xaf\x0di\x0c\xb1\x0d\xb6\xc3!\xf7\xed\xb1zhU\ \x84\xeaQ\xcc\x13>\xe4\xb7\x1c&\x1eA\x09'\xb2\x1b\ >|F\x11\x19\xa9\x8aN>V\x09~H6\x8fr\ l\xd0\xc9\x10\xccV\xb6i\x7feq:\x04\x9d\xa6\x1b\ 9\x06\x04X.\x12H\xd1\xe5\xd0\xde\xd0\xa2\x00j$\ !`\x15i\x06khQ\xab2qX\x0f\xdbLt\ \x16\x08\xc8\xb0U\x87*\x93\x19\xa3 \xbc\x99\xa8\xc1\x86\ A\x08u\xcc\x5c\xde\xc4m\xca\xc8S\xd8\xb0\xb5\xb5U\ V$\xaeN\xb0\xc6|\x9d\xb8\xd2\x96\x14K\xbb\x12\xf6\ d\xc6o\xc4\x8c{\xedH\xdav\x9ci\xd4\xd7]\x8d\ \x10\xdd\xd6n5\xa6%\x9aAt\xac\x19\xea'\x03\xda\ \xc7'[\xde\xd7\x96\x93N1\x0b\xfb\xbe\xd6\x09I\xdb\ \xce\x9f\xadZ\xa8\xf1\x9e\xef\x1c\x1ex\xec\xfc\xef\xaf\xeb\ F\x85\xca\x91! aH(Dw\xb4\x7f\xc3\x83\xf6\ v\x1d\xa2\xfeh1v\xa0@:\xe7\xb8w\x86\xc3\xbb\ 1\xd9:E\xd82\xf1\x17\x10\xde]\x84\x94O1\xf2\ w\x94\xe0\x9b\x98\x10\x06\xa0\xc6\xd4d\x8eG<[\x83\ \xcd\xbb\xcb@/\xcct\x5c\xc7w\x1c\xd0\x8b\xe9\xbaH\ \xbe\x0ea&\xc1\xbe\xedSM\xfe\xda\x81b\x17\xeb\x06\ 3]$\x7f\xe2\xd0\x02\x7f\xed\xa3\xca\xe1Z\x96\xacq\ }\x0f\xdfQ\xee\xb2c\xfd\xd6\xd1\xc8d\x1bI\xe5\x9e\ _\xa3\xe8\xd8>\x1f\xec\xc0\xad}\x03\xe2\x14\x803\xe8\ \x13\xe4\x0e\x80\x5c\xe7E\xe9#\x05]\xe7\xa5\xd0w\x0a\ ;b\xeb\xed\xab}-\xd8\xf9'\xc6\x9d\xff\x84\xbbC\ pG\xff\x06\xb8\xc3\xdf\x01\xee\xda\xca\x5c\xcfc\xfd\xe2\ \x01\xa9\xcfE\x98\xc4y\xe5\xdd0\xb5\x8f\x5cd\x17\xf7\ @T\xe3\x83q\x91U'[\xc3`^f\x17\xb3x\ i\x00C\x1a\x19\xf2\xac\x00\x86\x10\xb3 \xb9P30\ \xe2\x14\xd6\x90o\xd8\x8bwo~\xeck0@m\xf0\ X\x0c+\xacJ.\x18\x22\x8e\x8c\xee2*Z\x17\xb4\ \xf2M\xb6j\xdc\x0b\xe8\xcd\x927\x06A\x94\xa2\x1d@\ \x83m=\x86\xbf\x0dXW\xdf\x8d\xa2\x0cD\xd9\xa1\xcc\ \xe2\xa8\xf3\x0c*\xaf\x9e+\x95\x0a.\xcf\x99\xe2tR\ \x99E\x9d\x0ao\x13af\xf9\x0e\xb1\xe4\xcbr\x9bv\ Pl\xa9\xcef|\xd3\xb1\x91\xe7`\x9d9\x10`L\ \x1f\xf9\xae\xc3t\xea\x9b\xd4F\x88\x12\x8d:\xba-\xef\ \xcb\xb8\x14v\xfc\x0c\x99\x94!\xc4<\xdd7\xa1\x17\x80\ \x8dh\xea\x15\x22\x83^:E\x00N\x17\x84i\x04\x80\ \xe7x>\xb2u\x10\xe9\xda\xb6\x0f\xb1\x0a\xea6[\xf6\ \xb2=`\xf8cg\xb3\x8a\x01\xc4\x0d\xf1\xc0pQ\xf3\ \xd59\xcb\x08\xb9\xf4M\xf9\x22BN\x07{\xc8\xe9\xb9\ \xd0\xb8\xc3\xbe\xba\x1a\x18\x18\x996s\xe5+\x88\xcd\x9b\ \x01\x80\xe8\xa5<\x99\xbf>\xfb?Gn\x98\xe9\ \x00\x00\x0d9\ \x00\ \x00Vcx\x9c\xed\x5ci\x8f\xdbF\x12\xfd\xee_\xc1\ U\xbe\xd8\x08I\xf5\xddlyf\x02o\x8c\x18\x01\x1c\ l\x90c\x17\xc8b\xb1\xe0\x90\x94\x86\xb1$\x0a$5\ \x87\x7f\xfd\xbe\xa2nQ\x9a\xfb\xda\xcc\x8c\x9d\x8cT]\ \xdd\xcd~]\xf5\xaa\x8al\xfa\xe0\xbb\xf3\xd1\xd0;\xcd\ \xca*/\xc6\x87\x1d\x1e\xb2\x8e\x97\x8d\x93\x22\xcd\xc7\x83\ \xc3\xce\xef\xbf\xfd\x10D\x1d\xaf\xaa\xe3q\x1a\x0f\x8bq\ v\xd8\x19\x17\x9d\xef\x8e\xde\x1c\xfc-\x08\xbc\xef\xcb,\ \xae\xb3\xd4;\xcb\xeb\x13\xef\xc7\xf1\x97*\x89'\x99\xf7\ \xf6\xa4\xae'\xbdn\xf7\xec\xec,\xcc\xe7\xc2\xb0(\x07\ \xddw^\x10\x1c\xbdysP\x9d\x0e\xdex\x1ez\xa5\ \xf5\xc9a\xc7\xa8\x0e};\xc9\xf2\xc1I\xbd\xfc\x9a\xa7\ \x87\x1d\xe8I\xad]\xf3}\xed\x02\xf9La>ro\ \xbd%\x14\xde[\x163\x96\xf4\xb5\x94\xce\xf7\x04\x13\x22\ `\xf8\xab\xde5\x9d*,k\x82\xffzi\x91\x8c\xe3\ \x11V\x13\x8b\xc9\x7f\x7f\xc9>\xa4\x7fN\xab\xfa\xfbb\ \x5c\xd5e\x9c\x8f\xeb*\xc4\xdc\xb3y\xf3\xec\xec\xef\xc5\ \xf9a\x87y\xcc\xb3,T\xcd\xff\x9a&\xe06\xaez\ \x8b\xeb8\xec\xec[6MTM\xe2$\xab\xba\x0b\xf9\ Z\xff\xc5%-\xfb/\x04aUL\xcb$\xebc\x88\ ,\x1cgu\xf7\xe3o\x1f\x97\x8d\x01\x0b\xd3:]\x1b\ \xe6|\x88\xb17\xae\xe1L6\xb3s\xe7\x5c\xb7i]\ i\xef\xd2\x13\x8c\xb1\xeeb\xd5\xf3K;\x1d\x5cS\xb3\ L\xfb{\xe7f\xa2\x8bM\x80FP]\x8c\xeb\xf8<\ \x18W\xdf\xacuM\x92e\xcf\x84\xcc)?\xcd\x92b\ 4\xc2V\xcc\xc0\xdbPNW\xca\x93i9l4\xd2\ \xa4\x9b\x0d\xb3Q\x86]\xeb\xc2\x04\xba\x9d#\xe8\x1f\xa4\ Y\xbf\xa2~3K\xa2oR\x1b\xde\xb4\xa1\x15pd\ q\xf9\xa9\x8c\xd3\x1c\xfdfzk&\x95\x14\xc3a\x96\ \xc0\x18\xe3\xe1Y|Qu\x96\x0a\x18j\xb3\xab\x95\x82\ E\xf3Q1nU\x17\x93\x852\xac\xad\xbe\x18\xc2.\ H\x18`\xc8\xa2\xec}\x93(X'{\xdf\x88\x0a\xd8\ D^_\xf4xg\xd5\xa5\xe8\xf7\xab\x0c\x13\xb35Y\ \xe3\x0a\xe8\x80\xb98\x9c\xb3{\xfd\xd9\xb24U\xd7\x99\ \x8d\xef\x99M,g;\xe8n\xae\xfbr\x1cw\xc0\xc4\ \x9d\xea\x5c\x89\xf3\x9e\x95\xad]\x12\x13W\x80um\xcc\ \xf7\xe2\xb8>\x9b\xba\x02\xac\x1d\xb3\xf5\x93\xcc\xa9\xfe\xbe\ \xd9\xee\x88\xa3\x92\x91\x0c\xe4=\x00\xc9\xa3\xe8\xe6@J\ et\xacn\x01$w\xec\xe6@Z\xe1\xfa\xc9=\x01\ y\x95c7\xfc\xd8;)3\xd0\xd87\x97\x9a\xee\xae\ -q\xabq\xf8aG\xb0P(\xa9\xe5\xcaR/ \ \x956\xd4Q\xc4\xf9Jz.\x00\x81m\xe9B*Z\ \xba\x83\xf9d\xbf\x8f\xf3\x1a\xec=\xad\xb2\xf2W\x8a(\ \xff\x18\xff^e-\xad\xdf\xcax\x5c!n\x8c\x0e;\ 5}\x1c\x22H\xbf\x0d\xf8l*\xe9\x07b>\xfc\xbb\ \x15\x9a\x0f\x81\x1b1\xe3e\xb8\xb9M\xdcT\x14Z\x8e\ +\xdc\xc4Mi\x5c\xac\xb6\x91\xde\xc0M\x99\x96.\xa4\ Rm\xeb\xde\x03n\x80-\xd2FE\xd6\xe7\xa1\xe2J\ pi\x1e\x14\xb7m\x17\xdfip\x01\xdb4\xb9\xb6\x19\ A\xaa\xd5.\x93\x13|\x97\xc9I\xf6\x1709\x98\x94\ \x0c\xdc\x156\x17\xd8\xdb[\x1d\xdbeubnu\xf6\ \xd9[\xddN@\x08\xb1\xebg\x14\x08\x89qdo\x97\ \xbf`2M\xc5\xc4\x0d\x12\x98\xdd\x11\xe7z\x09\x0c\xa6\ \xb3\xc1\x93\x04\x8c\xcb\x89\xcf8\xa6\xee\xd9\xcd\xc4\xcc.\ \xb9\x1fp;3F\xf3\xee\xbe\xb9u\xa9\xfb\xa01\xe3\ \xf2X\x0b\xe8\xb4yp\x86\xba5\xb3\x8a]\xcc\xaa\x96\ \xcc\xfa\x84\xc0\xc1\x8f\xd4+n7\xf7U\xe0v\xcf\xf6\ \xf6R\x5cU*\xeb\x1e\xd7\xe2\xee1\xed~R\xdc\x22\ \xfe\xea\xa9\xb7\xf1\xd4H\xde'n;\x13\xb0\x87*W\ \x9e\x16\xb7{-\x97^\x10\xc3i\x1e\xbdz\xea-,\ N\x0b\xf6jq\xb7\xb38y\xaf\x1c\xf7bb\xaa\x96\ \xf7\xccq/\xc5S\xe5\xc3\xdf\xd4\xf8+\xc6T-\xef\ 9\xf7}V\x0c\xd7^\xaft\xf2\x06\xf7\x90\x98q\x91\ \x8bow\x0f\x09S\xe9\x1b\xdeA\xcaX&nw\x07\ \x09\x93\xd9\xc7\xbf\x7f\xd4\xa0y)\xd8.X\xe33\xda\ }n\x9c\x0b\x8d3nc\xf7yD,\xe2\xd6*\xff\ \x86o\x98R\xe1\x86*\x91\xb7\x11\x8e\x9c\xf3\x1e\xeeK\ \x8d\xe2\xba\xcc\xcf\xdf\x06,dZ\x08\xdd\xb0$>\x1b\ \xce9c\xca'\xb1\xb3R\xaaF\xaa\x91\xb5GZ\xf9\ \x12\x9f\xb9a\xd0\x15\x86\x87\x9a9\xb5\xbcS|\xd0\xa5\ \x87\xb7\xcd\xa7\xe5\xd3{z\xa2\x9e\xd2\x93\xf97K\x90\ \x8e\xe3\xe5eM\xe2A\xd6\xec>\xa0\xed7?\xf3\x86\ \xe3\xa2L\xb3r\xd1d\x9a\x9f\x8d\xa6\xb9\x81\xccNA\ \xbc\xd9\xdcI\x1au\xd9\xcev\xb7W'qZ\x9c\x01\ \xe3\xed\xc6\xafE\x01hT\xc8\x85\xdenJ\xce\xe1{\ `FK\x7fZ\x8d\x98K\xca\xd0\xc1$\x96\x11n\xd5\ 8-K`\x1f\x0c\xe3\x8b\x0c\x0bj~-\xcc\xb8:\ )\xce\x06%\x01S\x97\xd3l\xbbgZ$Sz`\ \x1eLg\xbb;9\xdf\xd6\xa0\xbe\xc1\xf11\x1d|\xd8\ 5\xc0Y>\xc6B\x83\xf9\x09\x0e\xcemkYs\x8d\ \xc5\xa9\x0e\x98\xe2\x1e\x0d\xcc \xb4\xdb\xd3x\xb1b\x81\ \xed\xa6Q|\x9e\x8f\xf2\xafY\xbaC\xa5\x1a\xc7\x93`\ 0,\x8e\xe3\xe1\xee\xeboL\xe4$K\xbed\xe5q\ \x11\x97\xcd\x18s\x87\xde\x80`a\xe7\xf5\x05\x1d\xf08\ \xbf \xd9\x86o\x92@2\xb6\x0a\x93\xd9hBg=\ \x9a\xc33+\xc7;\xcd\xab\xfc\x98\xa8i\xedb\xa0;\ \x8e!L\xb7\xa4t\xf1s}\x1a\x9d\xbc\xbf*\xc6\xc3\ \x8bm\xb5\xd9,t2%\xd4\xdb\xd2\x8b\x99t\xe1A\ m\xc7i\xe4\xa3\xac\x8e\xd3\xb8\x8eW^\xb4\x90H\x84\ \xe9\x05 e\xda\xef\xfd\xf2\xf1\x87%\xe5&I\xef_\ E\xf9eE\x97\xa4\x10\x1f\x17Sl\xf32\x0a\xd0\x09\ \x8c\xa4G\x8c\x10\xd7G\xf9\x08p\xd3\x89\x91o\xcfG\ C\xf8\xf3\xb2aC\x990^\x0d:\x1b\xb6\xccf\x87\ `v\x9e\xfaH\x93QN\x9d\xba\xbf\xd6\xf9p\xf8#\ M\xb2\x16\x1a\xe6\x83\xe6\xf50;\xfa9\xaeO\x82_\ \xeb\x22\xf9\xd2\xcc>\x13n\xe8a\xd1\xd9\x91`\x5c\x07\ \xcc\x06L5j\x8dlC\xab\xcc\x10\x8f\xf3b|\xb4\ v\xd4\xa5_fY\x12\xa7g\xd9qs]g\xf9\x97\ \xbc\x0b\x0b\xcd\xce\xc3\xc9\xc9\xe4\xbbf\xaa\xc3\x0fe}\ \x06\xc8\x9aQ\x97cl\x8c<\x99\x1e\x0f\xf3\xea$+\ \x8f\xd6 \xa8?\x0c\x96\xb1\xa6\xbd\xae\x1f0\xf7\xf7\ \x1f>\xeeZ\x14m{\xbb{\xa3\xb9c.\x1a2O\ \xa1\x9a\xf7s\xc8\xe7\xe3v\xab2\xe9\xfeT\xa4]\xc2\ \xaf\xfbi\x9aw\x7f\x99\xefG\xd5\xcd\x93b\x5cuW\ \xc0\xd2\x81\xa9f\xf4\xb5a6\xb1#\x22\xa8n\xb3<\ \xef\xf3\xa7\x9f?\x8boo\xb8\xca\xed\xf9h\xb6a\x9e\ d\xe3*k\xb6\xaf\x9a\xef\xdf`\xf9\xbe>:\x94\xae\x05\xa5\xb4\xbe&\ ,\x95\xf6>{Z\xfb\x22\x22,\xe5M\xb0\xa4S\x11\ /\x0eJ\xc5d\xdb*\xe1\x91\xc2\xc1\x1f\x95 \x9b\x14\ T\x8dx\x7f\xec\x01rq\xd0\xef\x85\xe1\x06o^;\ A3G\x8e\xa3^b\x11\x93\xdaW64\xcc\x08\x0b\ \x91/#ro\xe5G\x1e\xa3f\x0eLC\xd4\xa4\x11\ \x17{\xad\x93\x96\xb4\x04ly\x92\xf2R\xc0\x1a\x8c\x9e\ 3`\x8e\x07\xac\xe5\xb5\x0e\x88h\xa6\xb8\xafQ\x14\x9a\ Hh\x88|e<-})B\xe2E\xc2Lp\x1f\ xZ\x13){=\xc8\x96\x07~\x1f\x09\xb2\xe7\xe7\x0f\ [@\xc3\x87\x15#\x7f\x16r\xce\x8e Lp\xe5\x1f\ \xbb\x83\xad\x8c\x1e-\xd8^\x19\xdf\x94xrR\xde\x09\ &\x12\x17\x83X3\xe3\xc8V\xacY\x03S\xb1\xa7\x00\ \xf3\x11\xfca\x1b\x16\xedKC\xb0X\x82\x85\xf9\xc8d\ N\xbdh/*\xea\xc9Qy\x18b\xdd\x19\x13|)\ W\x01A(\xe4\xbc>>\xc3j\xd8^|\x1e\xca\x05\ \x0f\xba\x83\xbde\xca\xda\x81\xdb\x9d\x85\x8aT\x96\xa38\ \x99\x17*:\xa2\xbb\x99\xd2\xd0m\xcb(\x12\xdc*\x22\ m'\x94C\xadq\xcb:\x85\xce\xcb<7\x7f\xbfa\ \x9d\x12\xe8G\xb3\xec\x87\xcbmL\x1b\x84\xbb\xd6*t\ \xa4\xe7\xc9\xb7\xf6)\xd2\x1e\xd1J{\xee^\xac\xd09\ \x9f\x17\x07&\x8a\x95\xb5s\xed\xaf\xe5\xca\x0d\xcb\x95\xa0\ U5\xbf\x16,W\x14,;|\xf7\xb5dy\xa6%\ \xcbF=\xfe\x94E\x0b\x9d%|rn\xbek\xcd\x12\ \xbcV-\xbbpQ\x1b\x01\xe8\xb5ni#\x14\x05\xf2\ \x81\x10\xba\xb4rY%\xac\xbb+\x17\xc3\xb8\xe6\xcbG\ ,\x5c2\xa5\xb9\xf4\xb9\x09\x8d\xb6V\x19\x08#mP\ \xc2\xe8[W.Z>}Fv\xc7\xca\x85?\x9am\ ?\x5c\x9a\x13\xb5A\xb8s\xe5\xa2\xe5\xd3\x13\xfaS\xe4\ ?\xad;\xdc\xf7Q\xb9hi_\x1c\x98M\xe5\xd2\xca\ %_K\x97k\x97.\xadG\x07\xaf\xa5\xcb\x95\xa5K\ \xeb\xc9\xdek\xed\xf2|k\x97\xc7\xbbix%=?\ \xbb\x1b\xb07/^\x9e>I\x7f\x9e\xc5\xcb\xe3\x1d\xa2\ \xf9\x7f-^\x1e\x0a\xa1U\xf1\xb2\x0e\xd4\x06\x95%}\ \x85\xa2d\xbf\xefe\xa7\x19\x86O\x97P\xb2\xe6g\x13\ J\x16:\xaeQ\xc5L\xce\xd71\xc5\x22z\xc7\xd3\xba\ \xbe\x1c\xe7\xf6{\x01\x0d\x98\x88\x15\x91a\xce\x08_\xa9\ P2'\xb4\xf4\xbe\x87\x1b\x86\xdcZ\xc9\x08Yz\xfa\ \xa3@r\xd7\x95\x0d\xbd@\x87\x18HZHCM/\ aXO\xa0H\x93\x22\xd2~\xc0e\xc8\xb5\x898\xe5\ \x96\x8c*\x174Q\x1a\x80\xdc\x93*7\xab\xf9\xa2\xbf\ 1\xab\xfe\xa4\x15A\x82\x98\xefB%\x10\xdd\xc0\xbd\x0b\ \xad`\xaef\xbc\x80l\x22rJ\xf90\x12c\x04X\ 9h>E\xdcX?@\x5c\xe4NF\xeb\xe5\xc1\xc2\ >\xa4V\xa8.\xd6\xffa\x95+\xccc\xb9\xf5{w\ \x5c\xa7&I\xed]w\x1c\xab\x8e\xcc}\xee8\x92&\ \x17E\x16\x99)v\x0f\xb8\x1b'\xb0\xe3B\xd2\x1b\x09\ T+\x0b\x03\x8b0\xf8xmY\xb3\xe3\xc2H\xce\x1c\ \xed\x05\x13\x8c\x92\x0b\xaeB\xad\x99\xb5\xc2\xc7\xae8'\ -\xe6\xa1-\xff\xecI\x15\x22\xb5s\x9a\x1e-:F\ \x83\xa0t\x0b\xa1\x19)\x0a\xa70$\x1b\x09\x0f\xd5\xbb\ \xd0<\x92\x8de\xd2\x1b\x14H\xff\x04\xa7\x9dv\xc8q\ \x14f\xd7\xd8K\xeb\xd9\xd0\x09+\x05\xfc_\xb9\xd0\x08\ #`\x18Vh#\xd0\x91\x85\xd6!\xd3Qk\xb1y\ c\xc3\xed\x1d\xb7{\x071TU\xd5pC\xf3\xbb\xba\ \xf6\xf8[\x16\x94\xe6\xd5d\x08\xfe\xcb\xc7\xb4\xb7\xef\x8b\ \xd3\xac\xec\x0f\x8b\xb3\xde\xfc\xcc\xfc\xfb\xe6w>\xa4\xed\ ]\x88\xf6\xc6\xfc\xd9\xbb4\x97\x84\xfd\x96!*\x11\x8b\ x\xd3\x1092m\xab\xf8\xb6\x15n\xc4\xfe\xdbf\x04\ \xeb\xd2\xd9\xabJ=\xd62\xe2\xf7\xa3\xb8\xfc\x92\x95\xb3\ \x0e\xb3\x97\x0a\x82\xe38\xf92h&\xeb\xc5I2\x1d\ M\xe9M\xb2uk\x1fy\xb0\x09\x10\x83\xb0\xda7\xc8\ ~\x9d2\x91\xf3\x12\x0f\xa6I\xaf\x13I?\xb0\xa1\x92\ F\x09\x01\x86\x92N\x0b\xa6\x9b\xb7\xcfx\x14q\x07:\ Q\xa1\x95\x06\xe6\x0c\xb3\xe6\xa15\xd6\xb2\xc8C\x17.\ \xb9\xe2\x9a\xf8D[\x07s\x04\xc9\x98PG\xca\x09\xb2\ \x7f\x01>\xe5\xe8\x8c.\x9cq'\x220\x1b\xb7Z\xd1\ \x80\x98%b\x8a\x9e\xaa\x83\xca\x1dc\x96D\xd0\xb6\xd6\ \x8fB\x151\xe1$\x06\x0b\xa9\xa8\xf19\xbdw\x09\xc2\ '\xffR\xa1\x88\x04C\xed\xc3C\x85\x1f\xc6\xc9\x8dQ\ \x02Y\x12\xd1-/\x8c&\xb1,\x84\x18\xf8\x07\xd6\xa0\ @z\x8a\xd1hD\xf0X\xa2\xf6\xe1\x0c\x91\xc2\x07\xac\ ?\xa0\x83\xc8 Q\xba\x5c#\xb8u\x96DBG4\ \x05\x9cY3\xa3\xb0\x04\x0e\x91\x88x\x03\x13y\xb0\x86\ \xa3\x86\xf0>p-->RpP\xe7\xa1\xeep\xe0\ Z\x88\x0c\xb0\xc6h\x12\xe9[h\x15\xd3\xe0a\xf8\xbe\ \xb4\xa8:\x1c.\x0e<\xef(L\x83\x7f\x04b\x80g\ @\x15\x96n\xd4a\x8f\x10\x1c\xe0\xf3\x12k\x02\x81\x1b\ \xe4:\x0ddHyp]\x11\xae\x05Y\x22\x07vZ\ \x1bC\x00a#\x0d.B\x84@UZK\xc4/\x90\ \x1a\x82\x800\x1f\x22\x80\x94\x943\x01\x0f\xdf\x80\x9a\xb0\ b\xea\xa2\xad\xa4c\xd7B#}@\xd2\x1e\x1a\xad\x89\ \xc8h\x07`\x02\x88H*t3[\x01\x04\x9ci\xc9\ \xf9\x8eH\xe14\xa2\xc4\xe2\xa5\x13\x84\xfd\x03z\xe9\xe3\ \xe8\xcd\xff\x00\xe3\x05~\x8c\ \x00\x009\x1e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ id=\x22linea\ rGradient1049\x22>\x0a\ \x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a \x0a \ \x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4393-9\x22\x0a \ id=\x22linearGradi\ ent4399-7\x22\x0a \ x1=\x2248.714352\x22\ \x0a y1=\x2245.5\ 85785\x22\x0a x2\ =\x2240.714352\x22\x0a \ y2=\x2224.58578\ 7\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(1.2\ 856487,1.4142136\ )\x22 />\x0a \x0a \ \x0a \ \x0a <\ /linearGradient>\ \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a <\ stop\x0a id\ =\x22stop3418\x22\x0a \ offset=\x220.5\ \x22\x0a style\ =\x22stop-color:#ef\ 2929;stop-opacit\ y:1;\x22 />\x0a <\ stop\x0a id\ =\x22stop3420\x22\x0a \ offset=\x221\x22\x0a\ style=\x22\ stop-color:#a400\ 00;stop-opacity:\ 1;\x22 />\x0a \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \x0a \ \x0a \x0a\ \x0a image/s\ vg+xml\x0a \x0a \ Path-S\ tock\x0a\ 2015-07-04\x0a http:\ //www.freecadweb\ .org/wiki/index.\ php?title=Artwor\ k\x0a\ \x0a \ \x0a \ FreeCAD\x0a <\ /cc:Agent>\x0a \ \x0a FreeCA\ D/src/Mod/Path/G\ ui/Resources/ico\ ns/Path-Stock.sv\ g\x0a \x0a \ \x0a \ FreeCAD LGPL2+<\ /dc:title>\x0a \ \ \x0a \x0a https:\ //www.gnu.org/co\ pyleft/lesser.ht\ ml\x0a\ \x0a \ \x0a \ [agryson] Al\ exander Gryson\x0a \ \x0a\ \x0a \ \x0a <\ /rdf:RDF>\x0a \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a\x0a\ \x00\x00\x09\xdf\ \x00\ \x001\xb0x\x9c\xe5Z[s\xdb\xb8\x15~\xcf\xaf`\ \x95\x97d*R\xb8\x10\x00\xa1\xb5\xb2\xb3\xb3\x99\xdd\xc9\ L:\xdbi\x92i\xfb\xe4\xa1IPfM\x91\x1a\x92\ \xb2\xa4\xfc\xfa\x1e@\xbc\xca\x94-\xc9\xb2\x9b\xb6v\x1c\ \x89\xc09\x00\xf1\x9d\x83s\x03\xae~\xde,\x12\xeb^\ \xe5E\x9c\xa5\xb3\x11v\xd0\xc8Ri\x90\x85q:\x9f\ \x8d\xbe}\xfd\xcd\xf6FVQ\xfai\xe8'Y\xaaf\ \xa34\x1b\xfd\xfc\xe1\xcd\xd5\x9fl\xdb\xfa5W~\xa9\ Bk\x1d\x97\xb7\xd6\xa7\xf4\xae\x08\xfc\xa5\xb2\xde\xdd\x96\ \xe5r:\x99\xac\xd7k'\xae\x1a\x9d,\x9fO\xde[\ \xb6\xfd\xe1\xcd\x9b\xab\xe2~\xfe\xc6\xb2\x80+,og\ #\xee\x8e\xf4\xd3\xad\x8a\xe7\xb7e\xf3\x18\x87\xb3\x11\xd0\ Q\xe41\xf3\xdcyA\xbc#\xa8F\x9ev{\x1cb\ \xbdC>BA\xc4(\x95c\x8b Bl\x04\xff\xdc\ \xf7\x86\xa9\x80e-\xe1o\x1afA\xea/`5>\ Y^\xff\xb2\x89\x8b\xbf\xfa\xb9\x9f$*\xf95K\x8b\ 2\xf7\xe3\xb4t`z\xc3\x04\xf8\xa4\xc5\xb4\x9eo6\ :\xb4<=`\xb1\xf4\x03UL\xea\xf6\x0e\x7f=u\ \xc3_78E\xb6\xca\x03\x15\xc1\x10\xcaIU9\xf9\ \xf8\xf5c\xd3i#',\xc3\xce0\x9b\x04\xc6\xee\xbd\ \xc3\x9a\x9a\xd9\xb1\x94rbz[\xea!:\x82\x10\x9a\ \xf4\x97\x06OGR\xe6atpnD&\x006P\ \xd8\xc56-\xfd\x8d\x9d\x16o;\xacA\xd0p\x06Z\ m\xe2{\x15d\x8b\x05\xc0\xbd\x03\xafG\x1c\xb6\xc4\xcb\ U\x9e\x18\x8a0\x98\xa8D-TZ\x16\x13\x10\xf5d\ \xf4\x01\xe8\xafB\x15\x15\x9ao\xa71\xfa\x09TF\x98\ >\xe8\x058\x94\x9f\xff\x9e\xfba\x0c|;\xba\x1de\ \xbf\x87z\x02W<\xc0U\x94\xd9\xb2\xa6\x05\x9d)\xb7\ \x09H]7\xdaA\x96d\xf9\xf4-\x01h\xa2\xe8'\ \xd3\x94\x81\xc4\xe3r;\xc5?\x8dZ\x9e,\x8a\x0a\x05\ \xca\x8c:mF\xa3\x81\x03\xe6\xa2#kr\xfclQ\ \x14\x05Qp\xc4lxx6\xd6\xccv5\xe9/\xfb\ d\x948=\x01\xa5(\x02\x05Bg\xa3\xc4\xd9\x89(\ I\xe5{g\xa3\xc4\xc5S(-\xfc\xfcN\xe5\x0d:\ \xb5\xf9\x01\xf6\xe0N\x8f\xf3K\x9egk\xf2Y\xa5a\ 3A\x96k~02\xab2k\x1as\x15\xfd\xb3\xbb\ fx\xfeG\xf7\xf9\xc0X\xd5\x9230wQ\x92\xad\ \xa7\xf7q\x11\xdf$\xaa\x95\xc7\xd2/o\xfb+\xd3-\ .\x13\xee\xe8\x01pQ\x9c$v\xbeJ\xd4T\xdd\xab\ 4\x0bC\xc0-\xcf\xee\x94ml\xf2\x149\x9c\xb0\xba\ I\x83\xf1\xaf,N\xa7y\xb6\xea\xbc\x8fe\xc1\x0c\x7f\ \xb1)m\x9d\ G\x9b\xc5-\xaf7\xb3\x11u\xb8\xe7\x12\x0e6~\x0a\ \x86\x09!\xce\xa5$\xf0\x1d\x0f2lg#\x9b\x08\x07\ \x5c\x06\x0370\xb5l\x979D\x0a\xcfu\x0f\xb2|\ \x07\x16\x97\x83\x03bB0\xcd\x82\xc1\xc10\xe9r>\ \xccR\xbd\xaf\x0d\xd6{\x1e\xeb\x1c\xd3\xbc\x0d\xb8E\xfd\ #\xfa<\xda\xc8\xb6HP$y\x8b\xe0\x0b`ec\ \xea\xb8\x94\x13n^\xc9u\x04\xd1\x0f\x8f\x81\x85\xa0S\ 2\xf0\xb9z\xe5\xe8\x10>\xae\x0bB\x10\x82>=\xea\ \x03p\x98\x0e\x17\x04\xd5\xf0K\x87SF\x99\xf4\x9e\xc0\ \xc8}Y\x8c\x8c&\xa0\xa7@\xc1\xb0-\x1f\x83\x84x\ \x8f\x0c3\xa8\x22\xeeQ\x1a\x82\xf1\xd0\xea\xc1Q\xdb*\ \x8a\x80\xa8f\xdc=\xc1\xce\xbc\x83\x0c\xb8\xf4\x93\xfe\x88\ -=\x85\x0d\xd3\xf6\x15\xd7UX0\x1b\x95\xf9J5\ \x1d\xc0P\xaa<\xd5A\x1b\x04F\xf0\x07+\xc3\xa8\xe7\ \xee\x83l\xb9\xdd!]\xc4:\xf6\xb8\x06\xaf\xae\xca\xe0\ V\xb5H/\xf3lym\xdcx\xd7\x82\x98\x86\xeb\xed\ u\xae\x12\x88\x15\xfc\xa4h\xa7\xd5\xa5\x11SSja\ N!\x16\xf0\x93\xeb\x87f\xaf\x84\x88g\xa0\xd9\xcc\xb9\ J\xe3\xb2\xd8\x1f\x1c\x02\xa12\x86\xb9\xaf\x9b\xc5\xf5\xfb\ \xa3U\xa1\xae\xcb,Q\x10\x82\x04\xfd0\xe2\x80\xb1o\ \xa3\x90$1\xe0\xfb\xc9\xda\xdf\x16=\xe8\xfb\xac`G\ \xc4)>S\xff\xd03\xbd\x01\xcc%O\x8c,\x1e\xce\ \x86\x8e\xf5\x06\x02\x22\xf7\x8b\xa4\xc7\xf8\xa2\x99\xd1\xfeh\ gF\xc5TJ\xb6\x9f\xcd\xe8\x8d\xc1\xc66\x03\x07A\ \x1cf\x1e\x98i|\xb9\x90\xb8\xcaW\x90\xe3\x99|E\ \x7f\xc2\xae|\xb5\xa4\x15\x7f\xb9\x5c\xe5\xa2?\xd6\xb9\xc9\ \x0a\xc2\xe8\xc7\x11\x8bIUL=\xc1\xe4,X?\xbd\ \x9eh.\xbak\xbe\x5c\xa6\x9e\x80 \xdb\xf8a\xc4S\ KG\x7f\xbe\xaal\xc8Ee\xb3?\xda\xd9\xb2!\xec\ x\xc4\xffwj=\xc8\xa1\x95\x16P\xbdO\xb9|\xd5\ j\xcf\x1f\xab\xf2\xf3\xe5\xca=\xbd\xd1\xce\xd5\x03L\xf7\ \xf6\xe8\x7f\xb6\xdec|\x9b\xe3\xbd\x82L>\xc6\xfe\x22\ K\xc3\xcbT\xe3\x87\x06;{g\xeeW\xe0\xb4\xd5\xb4\ \x85\x83\x04F\x82{V\xf5\xd5\x93\xae\x09\xcdwO\xcc\ \x93\xd6\xee\x9b\xcb\x89i\xefp\xbcjDb\xc3\xce|\ \x95MUc~!\xeb:<\xdc\xd9B\xf4\xe8\x7f\xb3\ \x10_K\x86U\x90~\xc1\xb8\xf2\x12[\x10\xc2}\xef\ \xc7\x09\x5c\xecZ0\xe6\x8b}\xa1\x88\xff\xf8\x02\xa6<\ \xedDW\xff\x9c]\xc0\x94\xa7\x9e\xe8>\x9c\xed\xe8\x94\ \x15f;\xb7\x18\xfeT\xe6o.YLoAKg\ \xa3\xb7\x03%\x80\xc3pC\x1e\xdd\x1a\x8e\x0d6\x153\ \x81]\xafu\x09[h$\x10IIIE;\xd2\x86\ \xccF\xd4u0\xe5\x04\xb5\xba\xbb%C\xb4\xf3j\xae\ o\xbb2\xc9\xaaP\xf9\x17})\xe5\x8f\xf4[\xa1^\ \xb4\xd8\x86\xe1\x05u\xf9O\xd7\xbc\xb8\xe3Q\x81\xa4x\ n\xe5\x8dbGz\x10^\xea:\x1eA\x8e\x8b\xb9G\ \xd8\xf1\xd5H\x01\x0c\xa6\xcc\xcb\x1c\x060y\xf8\xa9z\ \x9cM\x9f]\x18zD=\xcc\xd9\xc3c\xbb\x91\xcb\x9e\ z\x10\xeaP\xc8\xb3\x5c\xaf\xa7\x1f\x00.4q\xee\xf6\ \xf5C:\x94#\x97\xb2\x9e~<\xa4}\x5c?\xf6\xa9\ \xbe\xb6\x06\xcb\xd8\xae\xc4/\xd5;\x1b\xfc\x97M\xc0N\ \xbd(T\x02?\x0aUw{\x00(\x10\xcf2]\x0b\ Gd\x1f+\xecq\xd1\x19Kc\x05Y\x09d\xafD\ \xba\xfbX\xed\xd1^\x00+&\x1c\x8fcO\xe2\xe3\x10\ \x1b8\xae\xc4\xdcF\x87lt{\xf4\x87=\x9b?a\ \x88\x07L\xac\xe7+B\xdd=\x83~\xd8H\xb7\xd3\x11\ d\x93',\xf1\xd0a\xaa\x92>\xe2\x87\xa6{\xeea\ \x1c u\x0cN\xaf\x8a\xd2k`t5\xd1\xd7\xde\xcc\ \xb7\xc6r\xeb\xbb\x88\xe1}\xac\xd6o\x9aW\xba\xf1\x1b\ \x9d]\xfase\xa6\x83m\xb7\xf3\xb2U\xc7M\x96\x87\ *\xaf\xbb\xcc\x11\x06\xefuUo\xb4\xbb'Z\x8d\xdd\ \x1e\x5c\xccU\xd3\x8f\x86\xfb\x8b[?\xcc\xd6`\xd9\xf6\ ;\xbfg\x19\xec\x1b\xf0qM\xe5\xa2\xb5\x1e\x1b\xe3\x07\ \xa8\xd4\xbf\x0f:\xb7\xe6\xc4\x8a\xb8\xfa\xf7A\xe7*\xcf\ \x01$;\xf1\xb7\x0a\x16d>j\xf8\x8b\xdbl=\xcf\ 50\x9d\xc3\x91\x86S\xf7\xd877\xd9f\xb8;\xcc\ \x82\x95\xbe\x89hW\x87\x11\xcb\xcd>\xc5:Na\xa1\ vu\xc7\x15\xbb\xee\x038*\x8a\xfa\xde\xab\xe7\xd2\x03\ \x14\x9bVA\xf7\xbb\xb6\x87\xbb\x16\xfe&^\xc4\xdfU\ \xd8j\x5cO\x12\xc1\xad\x0a `\xbc\xc9\xfc<\xd4\xa3\ \xec\xc7\x05\x1a\x81ZQwq\xc0f\xab\xdbzFY\ 7P\x8c[\xa7\xa6\x16\xcb\xe6\x9c\xa75\x10\xc3\xe7P\ *\xf5\xa11\xdck-R\x7fY\xd1\xeb\xd1\xb5\xba\x17\ Y\x9al+\xb2\xddF\xb8\x9a<\xd4t\xd3\xbeP\xa5\ \x1f\xfa\xa5\xdf\xaa}\xddB\x91l\x16\x99\x87\xd1\xf4o\ \x1f\x7fk\xf6o\x10L\xff\x9e\xe5w\xed\xbe\xd4\x04\xfe\ M\xb6\x02\xb94&E_6\x0d\xa6\xda\xbe\xfb\xe5\x87\ x\x01\x10\xea\xcb\xb1\x7f\xde,\x12\xd8\x80MG\x8fX\ \xe3\xd6\x0e\xba\x1b6W\xbb\xfb\xbe\x83\x17\x5c\xc3`\x11\ k\xa6\xc9\x97\x12\xb2\x8cOz\x92\xae\x9d\x99T/Z\ \xdb\x82\xce: \x01\xa8\x16j\x9e\xe6-\x00=\xado\ \xc4\x9b\xf87\xfa\x88\xee\xb3\xee\xb4\x1e\xf4\xce\xf3l\xb5\ \x5cd\xa1\xaa\xd8\xab\xfer\xc8\xc3\xa11%\xefkd\ \xe7=\xed`\xb4\x8dg\x06nfU\x09\xa9\x84\xcc\xd8\ \xf5\xa8I\x83\x1c!\x88K\xe9\xfb\xd6\x90\xe7\x9ds\xd0\ ^\x0e6}\x0b\x1e<\x0a\xa2\x9fLB\xd6\xa6#\x8f\ fc\x8e`\x10\x13v\xab\x9c\xb0\xde]\x91s\xb8\xf4\ Y\xb7\x82\x5cT\x9e\xc0\x8e*\xa7n\xdd\x16\xfa`\xce\ \xf2\xdc\xdfN\xd3,U\x1d\xb3\xae\x17\xaf\xdf\x1b\xa2\x94\ \xee\xe5\xcb\xfa\xc2\xbb\xc3\xb9\xe7J\xb7\xeb@\x9b\xdb\xef\ \xd8\xe1\x98\xb9]\x1f\xa1#k\x08\x22\x04\xe5\xb2[\xcc\ \xd3\x97\x1f \xe6#\x8cI\xaf[\xec\x1dJ\xfd%\x01\ n\xcc\xa8.\x8c\xea\x90\x983s\xed\x0a\xd2\x09\xec1\ ,\xb4\x0c(\xc1\x88c>6\xf9gG\xe5\x1e\x81_\ ED\x12\xf9\x83\xc3o\xd3K\x08\x80R\x87SL\x88\ \xdc\x13\x80\xcb\x1c\x04\xd9\x17\x11/$\x80\xab\xc9|\xb7\ \xb9\xe1\xe3J\x9b\x9b\x0fo\xfe\x0d!\xe8\x88|\ \x00\x00\x09d\ \x00\ \x00\x22\xf0x\x9c\xcdY\xebs\xdb\xb8\x11\xff\x9e\xbf\x82\ U\xbe\xc4S\x11\xc4\x8b\x00!?nr\x97^\xe7:\ i;sI\xda\x99~\xb9\xa1HHbL\x91*I\ YR\xfe\xfa.\xf8\xa6E\xd9\x96\xed^N\x89\x22r\ \xb1\xd8]\xfc\xf6\x01,r\xf5\xc3~\x1d[w:\xcb\ \xa34\xb9\x9e\x10\x84'\x96N\x824\x8c\x92\xe5\xf5\xe4\ \xcb\xe7\x9fmob\xe5\x85\x9f\x84~\x9c&\xfaz\x92\ \xa4\x93\x1fn\xde\x5c\xfd\xc9\xb6\xad\x9f2\xed\x17:\xb4\ vQ\xb1\xb2~In\xf3\xc0\xdfh\xeb\xdd\xaa(6\ 3\xc7\xd9\xedv(\xaa\x89(\xcd\x96\xce\x85e\xdb7\ o\xde\x5c\xe5w\xcb7\x96e5c3\xbd\xdf\xa4Y\ a\x1f\xc2Mt=Q\x18\xe1\xf23\x19\xe3\xd9?\x81\ g\x11\xc5:\xf1\xd7`\xaa\xb3J\xd7\xda\xf9\x1a\xad\xd7\ ~\xe0|\xd0\xf9m\x91n\x9c]\x04\x1ch\x93,\xcb\ \xc9\xbb(,V\xd7\x13\xc1\xcb\xb7\x95\x8e\x96\xab\xa2}\ \x8d\xc2\xeb\x09\x18K\x08\xabU\xe5\x00\xcb\x06\xbe\xb3\x16\ /\x8c\x18\x1dZ\xd1\x83\x92 j\xbd\xc3>\xc6\xc1\xc2\ eLM-\x8a)\xb51\xfc\xe5\x17Cya\x1aT\ &\xfbt\xf3\xdb_\xc2\xa8\xf8\x92\x84)\x02\xddC\xd9\ \xe9\xb6\xd8l\x8b\xdf\xf4\xbe\xd0I\xa5\x04p\xed\x81\x5c\ \x0e\x9bi-\xad\x9c\xdf7\xa9\x22Dz\xf7c\xba\x07\ \xf3-l\xb9\xc6L\xf3O9\x04\xd1\x90\xe4\xb3f\xfa\ \xf5\xe4\x943\x8d\xb9\xf9\xc6\x0ft\xee\x0ctU\xf3\x9b\ \x85\xb5\xf3\x1b\x02\xca\xd3m\x16\xe8\x05\x88\xd0(\xd1\x85\ \xf3\xe1\xf3\x87v\xd0\xc6(,\xc2\x9e\x98}\x0c\xb2\x07\ 6\xecX\xa9\x9d(\xa5\x9cr\xb4\xe3\x1e\xe3\xa3\x10$\ N\x03cm\xda\xdd\xf2\x89\x9cY\xb88\xa9\x1bS\x07\ \x5c\x09\x1cv~H\x0a\x7fo'\xf9\xdb\xde\xd4 h\ g\x06&I\xa2;\x1d\xa4\xebu\x9a\xe4\x15x\x03\xe6\ \xb0c\xdel\xb3\xb8\xe4\x08\x03G\xc7z\xad\x93\x22w\ \xc0k\xce\xe4\x06\xf8\xafB\xbd\xc8\xcd\xbc*4\xcd\x1b\ +\x07`\x08\xb0\xd0~\xf6\xd7\xcc\x0f#\x98T1\xf5\ \x22'H\xe3X\x07\x10\xda~\xbc\xf3\x0f\xf9\xa4e\x00\ 9\xc3\xa9\x94QQ\x0b\x05\xb19\xa4L\xc3\x0b\xf1Z\ \x1cb\x88\x09C\xb4Ab\x9a\xcd\xde.\xca\xcfeI\ J!\x1e\xa2\xe20#\x97\x93nN\xbaX\xe4\x1a\x14\ \xe3\x1e\xadL,\x98\x01\xba\xa0\xba8/\xd3\x86\xc7\xb4\ \x91Qm\x0c\xb7\xda\xae\x9c\xe1\xb2_\x1fFr\x0e\x8c\ \x01\x872\x81\x9f\x0d#9\x0f\xc61mg\xc0H\x7f\ O\x18\xb1w\x06\x8c:\x0c\xf9K`\xc4g\xc18\xa6\ \xed\x0c\x18\x09\xfd\xdd`\xf4\x84\xa0g\xc0X\xed\xae\xcf\ \x84\x11t\xf1\xb3`\x1c\xd3\xf6d\x18A\x9bx\x0cF\ \xf3\xe6\xc7g\xc3X\xee/\xb3U\xa6a\x1bx;\x82\ g\x1f\xee\xa1\x0a\x18\xf6\xda\xe1\x00\xf6Y\xca\x91\xc7$\ \x81\xca\xdaR\x0f\xd7\x13&\x10\xa7\x84P\xd9R\x17\xa3\ \xbc\x8bQ\xde\x0c\x00q\x91\xe0\x5c\xb2\x8e\xb8\xac-\xf8\ \x9c\xf9I\x0e\xbb\xec\xfaz\xb2\xf6\x8b,\xda\xbf#S\ l\xfe \x97\x09I\x19<\x12\x81<\xc9\xb0\xb88\x9a\ \xfc%\x89\x0a\xd8N\xb7\xb9\xce>\x99-\xfe\x9f\xc9\x97\ \x5cw \x9f\x88\xca\xe3\xdc%^g\xd8I\xb4O\xc4\ I\x9b&\xc4S\x8f\x04\xde\xd3w\xa5\x93Q\xd9iS\ \xe4\x91\xc0{\xfa\xae\xf4\xffI\xee\x07\xa2r\x08\xf8\x91\ ?\x88\xac\xcf\xb5\x8f\xfb\xfa\xf1p\xc2S\x1b\xce%\x92\ (*zOx\xca\x05u9\x22\x98\x10\xd2\ E\xd7\x9e\x00\x90\x12a\x81=\xdc\xc5\xf6\xc1P\x09b\ \xca\xc5]F\xed)\x10)\x12\x94\xb3^l\x1f*\xaa\ \x0b\xd9!\xd4\xa3\xe1\xf8\x12\x1c\xcd\xa6\xf3\xe0\xd6\xce\x07\ \xab\xa2\x02\xb9\x83\x051\x8e\xa8;X\x0d\xb0\xf4(f\ %\x9c!W\x12\x8f\x91WJ\xbf\x17\xad\x97\x88\x07\xd7\ K\xe9w\x5c\xef\xebW\xef\xf2\x88{\xbaz\xc39\xb1\ [\xaf\xa9\xdePf\xb1\xe2\x98\x0d\x8a7a\x88zT\ \xd2n=\x8b1\xd6\xc5(\xab\xa9\xdd\x18\x11\xc1\x85x\ B\xaeQ\xc4\x95\xc0\xac\xaa\xe0\x14A7*<5\xb5\ \xa9\x8b\x08\xe5\x98B\xfeI\xe4Q\xc1\xce,\xe5W\x8e\ \xe9 \xca\xa7\xb6\x115m]h\xda\xc3JP^d\ \xe9-T\xbb\xfa\xc4X\x8b\x87\x0e;\x06Zu\xfc\x99\ t\x0d\xc9\xdcoK\xc7\xc6_\xea\xb2:\x02_U\x1e\ \xeb\x81y\x9a\x85:k\x86D\xf9\x19\x0c\xd5\x05\xd4\xb4\ \xd6\xd4\xe5\x0a\x13\xd5\x8c\xb7.7\xc2{lxl<\ _\xf9a\xba\x83@\xbc?\xf8-M\x01Y\x0a\x80y\ \x9cJr\x7f\xd8\xf8\x9bI\xc4egW7\x06\xeal\ \xf00\xb4\xf1\xf2\xd8\xaa`\x9be\x80\xb8\x1d\xfb\x07\x0d\ k+\x7f\x1a\xf1\xf9*\xdd-3\x83\xd1\xc2\x8f[\x90\ \xda\xa9f\xc8\x9e\xcfMG^d\xdb\xa3\xe10\x0d\xb6\ \xa6\x15\xb4\xb7\x9577\xfb\xfb\x1cF~\x7f\xd5\xa3Z\ vQ\x02\x83v}\xe5\x01\xb5\xf9h\xf15Gs\x0d\ \xe2\xf1#hk\x0esLQ\xfc\xc4\xe0\xa1\xdb\x9e\x07\ .\x09V:\xb8\xd5\xd9<\xf5\xb3p\x84\xa5\x9e\xbd\xf6\ \xf7\xd1:\xfa\xa6K\x96:P\xd7\xba\xf0C\xbf\xf0\xbb\ Pk(\xbc\xe9\x7f\xa1\x15\x9f\xfd\xfa\xe1\xe7v\x7f\x0f\ \x82\xd9\xbf\xd3\xec\xb6\xdb\xb7\x0d\x83?O\xb7\xb0\xae\xf6\ \xccaZ\xea`fr\xcd/n\xa25\xd8h\xae\x00\ \xfe\x0cm9\xe4F;0`.\x0e\x1b\xdd\x09\xad\xc4\ f\xba\xba\xd5\x18m\xe3\xc3`\x1d\x99I\xce\xa7\x02\xd2\ \xe6\x17\xa3\xa4w\x0e\xa9\x84\x96w\x04iv\xd3\x13l\ \x16\xf0~\xd9\x9e\x16\x06&DE\xaco\xfe\xe6\xdfn\ \xe7\xd6\xa7BCi\xcbJs+z_\x86s,\xa4\ \xe4<\xd2g\xc4Vk\xb8\xa9\x97P\xdd\x9a\xa1\xf56\ \x8f\x82\x95\x1f\xc7(\xf8VN\xad\xb9\xba\x99\xa0\x22\x8e\ \x02\x9d\xe4\x8f\xc32v\x15R\xcf\xcd\x9d\xf9\xc1\xce}\ \x87\x22\xec\x1c\xc1S-\xcc\x5c\x8bY\xe6^ll\xb1\ \xe5\x02\xb6\xf3\xaf\xb0\x13\x0c\x100v\xfc\xe8/\xef\x81\ h\xa8qt\xa3A\xe2\x95S\xbf\x8crlKu\x0f\ qd\xfaNg\xa3R*\xda@y\x85\xe0\xd0\xcc\xd2\ I&T\xfb\xa1\xfb\xf1>\xa2\xbd\xe8=\x13\xcc\xa1\xab\ 6:\x83p\xcc\x1fu\xd5N\xcfQC,E\x07\x81\ \xf3\xab\xdedi\xb8\x0d\x8a(M\x86>z\xa1\xe0\x0f\ \x11\xec3\xd1|;*8\xd3\xff\xddF0\xe3Y\x92\ \xff\x91\x16\x00\xc9\xeb\xca|_\x9c6\xf6E(\xe8,\ \xba+]j\xa2!\x7f]\xa3?\xad\xfcL\xbf\x8f\xa3\ \xdb>\x18e\xe8\xd5\xa1\xd6\xb4*\xbd:z\xe54U\ \xb6|[v\xd5w\xb0\xb7\xb5\x05<\xf6\xe7\x1a\xce\x05\ \x1f\xcd\xa0u4\xba\xcc\xd2\xedf\x9d\x86\xba\x9e\xde\x14\ \xeee\xff \xb6d^wt*\xba\x83P\xf9\x18\xfb\ \x85~G\x90\x98\xc2\xf7\xa2\xeb\x1bu\x1cG\x9b~\xae\ \x14G\x07(hP\xb8\xa7$\x13\xe5\x09\x0a\xde0&\ \xd4\xa5S\x81\x91\xc0\x1c\xc8\xd2E\x0c:\xee\xee\xfcT\ \x99\xb3\xf1\x8b\x15\xf4\xf2#\xcd\xe6\xf0\xea\x22\x8c\xf2\x0d\ ,j\x16%\xe6\xa0y\x99BIX\xc4\xe9nv\x17\ \xe5\xd1<\xd6\x97\xe5o\x14\x9b\xbe\xb0!\xb5}\x22\x22\ \x9c@gvi\x0eU3\xd87\xde\xbd=\xbeK\xb8\ (G{\x9dl\xf9\x9amc=\x83\xf2\x93\xa4ax\ Y\x9d\xd4fI\x0a\xfa\xab\xe7j\xa3\x07\xe6\xfa\xd5\x98\ \x06\x9e\x98A\xe8\x16}\xda\xd74Jf\x10\xb5:k\ \xa8\xe5K\x0c\xbbp1#\xb8!\x86>\x1c.\xb2\x0c\ V\xd9\xd7a\xa8U\x97\xe0[\ @\xe1\x1b\x1c\x88\x1b\xdf\x8e\x0a\xa0\xf4\xe25\xfd\xcd\xff\ \x08\xee\x86\xcc\xfb\xbb\xa5\xa0\xd1\xa7\x9c\x93)\x87\x96\x8a\ A\x92*\xeb'\x8b+HX +s\xcf\xc0\x5c\xd7\ \xc5\xca\xe2ew\xc5\xb1;%\x14Qp\xackQ\xe8\ \x98\x04\x85\xbc2$\xae\xa4p\xad\x7fY\x0c\xba%J\ \xc1\xf9\xd6G\xcbE\x1ea\x8a*o\x0a\xad\x93\xc4\x9e\ GTo\x12cP \x04\xe3\xca\x0a,(\x18\xf0\xb5\ A\xaf\xf0\x98\xd7\x7f$\x1c\x01\x13\xb0\xdb\x18Lu\x95\ \xb4\x88\x87\x88\x94.\xf5\xa6\x14\x0a\x0e\xa3\xaeg\xd9`\ \x80'\x95\x92\x86$\x94\xe0\xd6\xb7\x91\x1aCx\xaf\xe3\ \xec\xfd\xb7 d\xb66gG8\xf3\x07\xd5\xe7\x81\xa0\ }`\xd2\xb1F\x0a\x86\x0e\x11_[\x0c\xea\x22\xc4\x93\ \x07\x00((\x87\xaeK\x0c\x00\x84 I\x19V\xd0p\ \x0a\x84\xa1\xef\xa1\xd2\x82uzR*\xe8HS\ \xdb\xe21\xb28a5I\x81\xf1\xaf4J\xc6Y\xba\ \xec<\x8fa\xc0\x0c\x7f5\x5c\xcb\xc1.s\x1dwh\ [\x88R\x872b\x98\xc4\x22\xc8!\xae`Cd!\ \xcc\x11\xa6\x84\xd7\x92\xae=4A\x14a\x079\xae\xe1\ \x1b&\xb6\x1c\x9b\xd9\x02\xe8\xc4\xa2\x0eA\x1c\x09M\xa4\ \xcc\xb6\x91;d\x16\xc7 \x80\x81\xc8\xa5\xe9\x0c]\x98\ \x068\xd4\xf8\xdey\x14\xb0\xd8I\x0e\x16t>\x19\xcc\ \xbd\x22\x8b\xd6oa\x04\xdf\xd5\xd3\x0b\xa2tJ\ \xd8\xf8\xc2\x80\x88\x9d\x1a6:\xd2\x91g\xa3\xc4\x9e\x0d\ \x1b\x9b\x83\xba\x80\xcck\x01'\x15B\xfa\xc6@\xd5\x09\ V\xb1Q)S_\x94\xb6\xce\xa3\xcd\xde\x16w\xeb\xc9\ \x80Z\xdc\xb5\x09\x07\x1b?\x06\xc3\x84\x10\xe7B\x10\xf8\ \x8e\xf7v\xd8L\x06&q,p\x19\x0c\xdc\xc0\xd80\ mf\x11\xe1\xb8\xb6}\xb0\xcbw\xe8bsp@\xcc\ q\x98\xea\x82\xc1\xc10as\xbe\xbfK\xf5\xbc&X\ \xefi\xa4rK\xfd4\xe0\x16\xd5\x8f\xd3\xef\xa3\x8cl\ \x8b\x04E\x82\xb7\x08\xbe\x02V&\xa6\x96M9\xe1\xfa\ \x91l\xcb!\xaa\xf1\x14X\x08\x98\x82\x81\xcfU+G\ \x87\xf0\xb1m\xd8\x04\xc7\xa1\xcf\x8f\xba\x03\x0eS\xe1\x82\ C\x15\xfc\xc2\xe2\x94Q&\xdcg0\xb2_\x17#\xad\ \x09\xe89P0\x1c\xcb\xa7 !\xee\x13\xc3\xecU\x11\ \xfb(\x0d\xc1x\xdf\xea\xc1Q\x9b2\x0cA\xa8\xeeX\ \xb6\xe0d>@\x06\x5cxq\x7f\xc4V\x9e\xc2\x81i\ y\xf9]\x15\x16L\x06E\xb6\x94\x0d\x03:\x142K\ T\xd0\x06\x81\x11\xfc\xc2\xca0\xea\xb9{?]lJ\ \xa4\xf3H\xc5\x1ew\xe0\xd5e\xe1\xcfd\x8b\xf4\x22K\ \x17w\xda\x8dw-\x88&\xdcm\xee2\x19C\xac\xe0\ \xc5y;\xad*\x8d\xe8ZR\x0bs\x02\xb1\x80\x17\xdf\ \xed\x9a\xbd\x02\x22\x9e=d=\xe72\x89\x8a|{p\ \x08\x84\x8a\x08\xe6\xbek\x16\xd7\xe7\x87\xcb\x5c\xde\x15i\ ,!\x04\xf1\xfba\xc4\x01c\xdfF!q\xac\xc1\xf7\ \xe2\x95\xb7\xc9{\xd0\xf7\xbb\x82\x1dqN\xf1\x99\xea\x87\ \x9e\xe9\x0d`.qbd\xb1;\x1b:\xd6\x1b8\x10\ \xb9_$=\xc6\x17\xcd\x8c\xb6G;3*\xa6B\xb0\ \xedlF\x1d\x0c64\x198\x08b1\xdd`\x9a\xf8\ z!q\x95\xaf \xcb\xd5\xf9\x8a\xfa\x84Sy\xb5\xa4\ \x15\x7f\xb9\x5c\xe5\xa2?\xd6\xb9\xc9\x0a\xc2\xe8\xc7\xd9\x16\ \x9d\xaa\xe8z\x82\xceY\xb0j]ok.zj\xbe\ \x5c\xa6\x9e\x80 \xdb\xf8a\xb6\xa7\xde\x1d\xf5y\xd5\xbd\ !\x17\xdd\x9b\xed\xd1\xce\xde\x1b\xc2\x8eG\xfc\xbf\xa7\xd6\ \x83,Zi\x01U\xe7\x94\x8b\xabV{\xfeX\x16\x9f\ /W\xee\xe9\x8dv\xae\x1e`\xbauF\xff\xb3\xf5\x1e\ \xed\xdb,\xf7\x0a{\xf2!\xf2\xe6i\x12\x5c\xa6\x1a\xbf\ o\xb0\xb3O\xe6v\x05NYM\xd3\xb1\x90\x83\x91\xc3\ ]\xa3\xfa\xea\x0a[\x87\xe6e\x8b\xb9\xc2(\xbf\xd9\x9c\ hz\xa7\xc7U#\x12\x13N\xe6U\x0eU\x8d\xf9\x85\ \xac\xeb\xfe\xe1\xce\xdeD\x97\xfe\xcc\x9bx\xad=\xac\x82\ \xf4\x0b\xc6\x95\x978\x82\x10\xee\xbb?N\xe0b\xd6\x1b\ \xa3\xbf\x98\x17\x8a\xf8\x8f/`\x8a\xd3\xde\xe8\xaa\x9f\xb3\ \x0b\x98\xe2\xd47\xba\xbb\xb3\x1d\x9d\xb2\xc2l\xe7\x16\xc3\ \x9f\xcb\xfc\xf5%\x8b\xf1\x0c\xb4t2x\xb3\xa7\x04p\ \x18n\xc8\xa3[\xc3\xb1\xc6\xbab\xe6`\xdbm]\xc2\ \x06\x88\x04\x22)!\xa8\xd3\x8e\xb4&\x93\x01\xb5-L\ 9A\xad\xeen\xc8>\xd9i5\xd7\xb7\xb2L\xb2\xcc\ e\xf6E]J\xf9#\xf9\x96\xcbW-\xb6ax@\ U\xfeS5/n\xb9\xd4A\xc2yi\xe5\x8dbK\ \xb8\x10^\xaa:\x1eA\x96\x8d\xb9K\xd8\xf1\xd5H\x07\ :\xe82/\xb3\x18\xc0\xe4\xe2\xe7\xeaq&}qa\ \xe8\x09\xf5\xd0\xef\x1e\x9e:\x8d\x5c\xf4\xd4\x83P\x8bB\ \x9ee\xbb=\xfd\x00p\x81\xc4\xb9\xdd\xd7\x0faQ\x8e\ l\xcaz\xfa\xb1+\xfb\xb4~lK}m\x0d\x96\xb6\ ]\xb1W\xc8\xb7\xa6\xce\xaf^\x15'\x07?\x89S\xf7\ l\x00\x22\x10\xcc2U\x08Gd\x1b(\xecr\xa73\ \x96\x02\x0aR\x12H]\x89\xb0\xb7\x81\xda\x92\xbd\x08P\ p$\x5c\x0c1_\x0b\xd8\xedH]R\xd2\xdf\x9as\ \xa6n\x8e\x05\x8f\x91\x5c\xdd4+\xbe\xf7\x9aI\x16\xde\ Tj\x93\x088\x956\xb1b\xdc\xa7Y \xb3\x9a\xa5\ \x0b\xce\xbc\xc7\xaa\xacfy\x9b\xeff\xeb\xb8\xc0\xa8\x0d\ \x1f\xed\xe7\xe73/HW\xa0\x87\xdb\xcc\xefi\x0a\x0b\ \xe5\x96\x80\xf3E\xb1\xbb\xcd\xf6\xc1\x1a\x10fA\xe2g\ ;t\x87\x09\xf3\x11\x1b\x98\x08q\xb6\xc3\x5cf\x19\xa0\ i\xc6\xdeF\xc2\xa2\xf4G\xbd%\xf9,]M3\x05\ N\xa7\x9c\xdd\xf4T\x1c\xf3\xfe>]\xefg\x07\xa9\xbf\ Tw\xc7\xcc\xaa|\xbcXoK\xac\xa2\x04\x16kV\ \xb7\x111\xe4\xa1\x07$\xea\x1b\x8a\xae\xbd\xb3\xb6Jb\ \xddz\xc0m\xd6\xe60k\xee\xad\xa3y\xf4]\x06\xad\ G\xeb\xed\x86?\x93>\xb8\xf8\xfb\xd4\xcb\x025\xca\xb6\ %W\x08\xd4jYZ\xee\xf5F\xd1z'I\x11(\ \xa2\xedk\x029_4\x95\xf9\xf6\xf8\xec\x7fs \x13\ \x0f\x88\xc1\x165O\xbcE%\xafFWg5O\x93\ xS\x89\xed\xba\x9c\xe3\x1f\xd4\x15\xe8z\x0f\xda\x88\x95\ \xb3(\x8f\xc6\xb7\x89\x9b\x1e\x11\x1e\xa99\x98\x81\x8a\xfd\ \xba\x9c\xce\xe1\x22\x0c\x09\x17\xd1\xd6\xb8\x97>j\xdd\x0d\ \x94J\xd2\xa6\x0d\xeanG\xbb\xf6A\xd3\xe7\xb2\xf0\x02\ \xaf\xf0ZcQS(\x12\x8dZdA8\xfe\xdb\x87\ \x8fM\xb8\xe5\xfb\xe3\xbf\xa7\xd9C\x1b))\x01\xef>\ ]\x82&7!\xa0\xbaP\xe9\x8f\x95\x19\xf3\x8a\xf7\xd1\ \x1c\x94N]\x00\xfd\xf3z\x1e\x83\xd9j\x18=a\xb5\ \x81\xed\xa0\xe5\xb0\x99,\xef\xb4\xee\xbd\xc4\x19\xf8\xf3H\ u\x1a}) \x92\xfe\xa4&\xe9\x84\x85\xd5\xa0Q\x11\ \xcbN\xac8\xaa\x9e\xbe\x0e\xe7:\x8b\x83\xc8\xb7Z\xbd\ nM[Tz\xc6\xa3Q\xbe\xd8\xbbW\xef\xa6>+\ \xa6\xb1\xc3\x9df\xe9r1O\x03Yu\xaf\xf8\xc5>\ \xeb\x8e\x86\x94\xbc\xab\xe1\xee\xe6\x1a\x9dDa\x9c\xa4\x89\ l\x12\x04[\x0a\x0f\xf1~\x82\xc0\xbb%7x\x86\xb2\ \xe2\xb6S\x87\x03\xccdVSu#\x06cQ\x8c\xed\ \x9a\xd6\xc6\xe3\x15!\xf0\xc0|g\x99\xb7\xe9>\x83\xa6\ \x96q\xf3\xb8\xd5=]\x18\xa2dh\x12\x07\xb2\x1ef\ \xf7\x0e\xa2Z\x19\xb3Q\xe7\xc5\xe239\xc9N\x18\x09\ I\x92T;\x0ef\xd7\xf7[{p\x14d\xae'\x09\ \xb5\xfb\x90\x91\x9f\x052\x93^\x1c\xb4i\xcfFR\x81\ \xd1\xa1|w\xffH\xfe\x09\xc9e?\xab*\x17\x85\x91\ ):\x0c\x9d=SH\x5c!*gbH\xb0j\x90\ \x03\x17\x0d\xfb;K$\xb5\xe9y\x87\xa1G=cg\ \xbbi\xe8\xb5@3\xf9e`\x0bh\xe0\xf8\xe1Y\x07\ \xe2b\xb0\xdd\x8e\xa6\xdb\xea\xb8\xef\x06ny\xefr\xc8\ \xednM\xa3\xd1[\xd3\xb9\xbe\xe6\x9a;/z\xff\xaf\ \xbbG\xe9\xae\xb9S\xf0\xfc\xe9\xb5W\x7f\xdc\xaa\xf8\xe6\ \xfd\xcd\xbf\x011\x8f\xba5\ \x00\x008\xec\ \x00\ \x00\xed}x\x9c\xed}\xfbo\x9bW\x92\xe5\xef\xf9+\ \xb8\xee_:\x18\x92\xba\xef\x87;\xce\xa07Aw\x0f\ \x90`\x1b\xd3\x8f\x05f\xb1X\xd0\x12mk#K\x02\ %\xbf\xfa\xaf\x9fsN]R\xa4D\xf9\x15\xa7\x9dt\ \x98LO\xec\xcb\xefY\xb7n\xd5\xa9Su\xeb\xfb\xea\ \xdf_??\x9b\xbc\x5c\xae\xaeN/\xce\x1f=\xf0s\ \xf7`\xb2\xc3\xb5w\x9e\xe1U\xd4\xdd}\xef\xfd\ H\xbf\xde\x1c\xbd\xef\xb8\xe0\x9c;Z\xbf\xf5x\xb4\x97\ O\xdf\xf3\xc8\xd5\xc9\x93{\xef\xed\xc2\x11f\x02G\xcc\ \xae\xde\x9c_/^\xcf\xce\xaf~\xb3u\xea\xf1\xf1\xe6\ \xccc\xea\xd4\xe9\xcb\xe5\xf1\xc5\xf3\xe7\x98\x0a\x13\xde\xce\ \xc1'7\x07_\xbeX\x9d\xe9\x88\x93\xe3\xa3\xe5\xd9\xf2\ \xf9\x12\xb3v\x04=8z\xf05\x8e\xff\xead\xf9\xe4\ \x8a\xe7\x99:\xf1o1\x17\xaf\xdf\xf0+\xc4\xb1\x5c\xac\ \xfe\xb8Z\x9c\x9c\xe2<;nK\xaf\x8e/\xce\xce\x96\ \xc7\xd0\xc8\xc5\xd9\xab\xc5\x9b\xab\x07\x9b\x03p\xa9\xddS\ k\x0c\xae\x8d\xab\xe2\xbaW\xd7\x17\x97\xeb\x83\xa1r\xd7\ o\xce\xa0\x17\x1c\x9c\xe1\x92\x17\xab\x87\xbf9NPQ\ \xf7;\x0d]@'N\xaf\xdf<\xf4\x0fnN\xb9x\ \xf2\xe4j\x89\x1b\xbb\xad1\xad\x07\x9c\x80{y\xac\xd0\ \xa3\xf7\xbf\xdb\xf2\xe4$\xbd\xcf\xdd\xfc=w\x0b\x9b\xbb\ }u\xb4\xfb\xdeo\x97\xe3\x1e1\xf9\x9e\x1e\xbcS\xce\ \xf7\xbc\xd9\xd6#\xb9\xf0\x0ea\xbd\xb7\xcc\xef\x95\xe3\xf6\ \xdd\xd2;\x84\xb5\xe7nO\x8e\x97==\xb9\xefn?\ R\x8e)\xb68\x8b\x9f@\x90\xbe\xb5\x0f\x17dL%\ /\xd2G\x08\xd2w\xf7\xe1\x82\xac\xa1?9\xfeD\x82\ |\xd7\xc2\x96}|\xf8l\xb5\x84\x19\xfb\xcd[Uw\ \xdf\x94\xf4\x9b\xeb\xf8G\x0f\x82\x9b\x87\x14s\xbc\xd1\xd4\ 7\x18\x8du\x9e[\xf3\xfef\xf4u\x80\x08\xea\x9dc\ 1\x1a\xee\x1c\xfbt\xdc\xeco\xe7\xa7\xd7\xb0\xde/\xae\ \x96\xab\xbf\xd0\xa3\xfc\xaf\xf3\xbf]-\xef\x1c\xf5\xd7\xd5\ \xe2\xfc\x0a~\xe3\xf9\xa3\x07\xd7\xfc\xe3\x19<\xf5og\ \xden\x15\xa7\xb30.\xff\xe5\x8d4\x7f\x0a\xb9\xd12\ \xbeMn}Wn\xa9\xcd\xab\xc7\x13\xee\xca-e<\ l\xae-\xef\xc8-\x95;\xc7b4\xa6\xdb\xc7~\x02\ \xb9Al-\x97\xd4\xea\xd4\xcf\x93O\xc1\xc7\xf2\x93\xca\ \xed\xf6\x12\xdf\xabp3\xb7\xabrw\xd5\x08\xa39\xed\ S\xb9\xe0\xf7\xa9\x5ct\xff\x02*\x07\x95\x8a\xb3\xfe\x0e\ \x9d\x9b\xd5\x8f\xd7:\xb7O\xeb\xc2\xd0\xba\xfa\xb3\xd7\xba\ \xbd\x02\xa1\xc4\xde\x1fQ\xc0%.Z\xfd8\xfc\x82\x9b\ eF\x14\x1f\x00`\xf6{\x9c\xf7\x030\xb8]\x9d}\ \x16\x87\xf1v\xc3W\xbaK\x9fx\x99\x05\xd3K?\x9d\ \xf9j\xcaX\xbe\xfc\xd4\xb6us\xecO\xea3\xde\xee\ k!\xba\x5c~r\x0b\xf5\xd1\x965\xec\xb3\xacic\ Y\x7fB\xc1\xc1%\xe4\xb7Z>\xac\xf3\xb2\xfbbn\ \xe7\x8dn\xbdJJ;\xef\x90\xdfW_\xdf\xf5\x8aw\ \x9f\xcb\x1e\xfc\xfd-\xc2^T\xf8\xbb\xf7\xb4@\xb8[\ \x85o\xfd\x10\x0b\xb4\xd7\xe0\xed\xbb\xdf>\x13\x84\xfb\xf5\ Y\xf9\xe7\x9b\xa0w\xab\x83\xcf\xe9\xc7\xaf\xa3\xe7\x8b\xeb\ \xd5\xe9\xeb\xdf\xba\xe9\x8c:\xee\xf8O\x9cJ\xdd\x03\xcc\ G\x9d\xba\xa9\x8fs_K\xaa~\x1a\xdb<\xd6\x8e\x7f\ n\x19\xa6\x86v\xcf\x11\xeb\xccFKwd6\x8e\ \xc0\x1d\xfc\xddw\x1b?\xbe\xb9\x811\xb7\x7fz\xbex\ }\xfa\xfc\xf4\x1f\xcb\x93=\x87\x5c\x9d/.gO\xcf\ .\x1e/\xce\x1e=x\xb28\xbb\xba\xf3\x02R\x93g\ \xcb\xe3\x1f\x96\xab\xc7\x17\x8b\x95.2\xd6\xd4\x8e\x0c\xd6\ Zy\xfd\x86\x09\x8e\xd7o8\xb6\xb388\x10\xb7M\ \xe1\xf2\xf9%s\x1d\xca \xddh\xf5\xcb\xd3\xab\xd3\xc7\ \x84V[\xd2\xc4\xb1\xe7\x0b\x0c\x9e\xdc\x1a\xe5\xd3\x8f\xe3\ yu.\xbf\xab\x8b\xf3\xb37\xb7\x0f\xb3\xbb033\ \xcf\xb7G\xdf\xd8\xe8z\x15\xdd]<\x1a\x7f\xbe\xbc^\ \x9c,\xae\x177+i=\x12\x11{\xaf\x05\xb2:y\ \xf2\xf0?\xbf\xfd\xc3\x062\x1e\x1f?\xfc\xdf\x17\xab\x1f\ n\xd0\x1e\x0fX<\xbex\x81y\xde\x00Yf \x8e\ \x1f\xd2z.\xae\xbf>}\x0eq3c\xf2o\xaf\x9f\ \x9faMo~\xd89\x982\xbe\xb9\xa8]v\xb5\xb4\ $\xd0\xde\xac\xc7\xc9\xf1\xf3S\x9et\xf4\x97\xeb\xd3\xb3\ \xb3\xff\xe0M\xb6\xa0\xed\xb8\xe8\xe9\xf5\xd9\xf2\xeb?/\ \xae\x9f\xcd\xfer}q\xfc\x83\xeen\x83;\xc7\xe1\xa5\ \x97_\x07\xe7\xf3\xcc\xd5\x99K:Lc;G\xad\x96\ \x88\x9aN/\xce\xbf\xdeJ\xf5\xe6\xf5&\xdf\xfd\xf1\xcf\xdf\x85\x7f\xfb\xc0\xb7\xbc\ }?\xde\xed\xec\xf4xy~\xb5\xd4\xf4]\x8d\xf9{\ z\xfeB\x13w|q\x89\xe0\xe7\xc9\xf5\xd1\xd9\xf2\x0a\ ~l\xfe\xec\x9a\xba\xbau\xd2\xce\xdb\xe0\xed\x01\x09\x1e\ \xbf\xb8\xbe\xf8\xb0\x19\xfb?\x8b\xa7\xab7X\xce\xffw\ \xf2\xfb\xb3\xe5\xeb\x05\xb3\xae\x93?j\xe4\x03_o\xcf\ \x03\xe8X.\xcdu\xb4\xb5\xb5r\xbf:Z/m\xfd\ \xed\xe9\xcd\x92\xdf\xf1\x1b\x1b\xe3w\xb6x\xbc\x84\xf1\xfc\ \x8e?N\xee\xfc\xfatu\xf1\xe2\xf2\xf9\xc5\xc9r\x9c\ \xbe6\x15OwLc\x0f70\xf6z\x0f\xc6\xaf\xbd\ \xb9\xeaZ\x1f\xb8\x14`\xaa\xa7N\x12'\xcckk\xb1\ \xbb\xcc\xc0\xaa\x03e\xb5\xea\xf3\x977A\xf2%\xb4n\ +h\xdd\x187<\x10\xed\x01<\xda1\xff\xd9\x0eH\ o \xd1\xf99 \xd1\xc5j\x06\xf7\xf9rq\xfdb\ \xb5\xbc\x1b*\xf3\xfa\xa4Z\xb6sm\x18\xfe~\xd2\xa7\ 1O\xfe>\x09~r6\xf1i\x9a'/\xf1\x9f\xc9\ ?\xb6\x0e\x1b\x11\xf4\x13\x18\xa4\x870U\xbf\xbdKn\ \xf7/\x7f\xc7_\xb7\x82i\xfdu\xf5\xe2l\x8978\ \xff\x07\x90\x08\xa2\xed\xd5\xc5\x0f\xcb\x87\xbf\x89.^&\x88l\x9dk.\ \xe6i\xaa\xf3\xe2J\xa8\x18\x9a\xc6\xc6e\x9a\xa6m\xe2\ \xf8\xb3\x87\xb4\xe6\xbe\xa5\xe6\xc3\xbd+v+_\xf5\xb9\ \x04\xb6)#\xf9)\x05\x16;$\x92]\xf2\xd3\x9c\xe6\ \xbe\xb4\x9014Me\x92\xe34\x869\xed\x1be\x16\ \xfc\x14\xf2\xac\xa5\xa5z\xef\xca\x9c\xb9\x7f\x9a\xc8~*\ \xdf\x1b\xdbm\xf9`Q%\xc7\x05\x16\xe2\xb0N0X\ \xb0U\xffu\x8f\xf7\xfd\x99\x98\x8a\x7f\xbe\xe8\x92\xdb/\ :\xe0\x96\x02\xcbn&\xea\x8ee\x7f\xb7\xefO\xe1\xb3\ {\xac\xcf \xcctG\x98y\x1a\x0b\x85Y)L7\ \x05\xd8x9i\xf7\xca\xf2\x9f`H>\x83T\xee\xac\ N3\xf7\xd3\x18ol}H\x00\xcaS\xfc\x19\xba\xe6\ \xdeO>?\x8dg\xbaI?=\xdd\x1b\xa7\xf8\xean\ \x08\x94}\x81J\xea\xb5\x97\x9c\xf2\x08T\x12\xf3\xc0\x81\ \xa5\x09y\x8e(\xc5w\xc5)4\xd9>\xf8\xba\x15\xa7\ \xac \xcf\xf7^a$V\xef,\xb0!\x98[\xfe\x82\ O\xcdkG\xbf\x15am\x8a\x8a\xfdv\xd8\xb2)-\ \xde\x1a{\xfd\xe8\xc1\xceyo\xf0\xf7\xbe\xadE\x1f\xf4\ \xdc\xcc\xac~\xc4s\xcf\xc2\xdd'/{\x1e\x1c\x8a\xd5\ w\x19r{\x81~\xeb\x05\xca\xfd\xcb\xe0\x03<\xe0;\ ^\xd5\xe7\xbbStc\x03\x97/\x97Xh'\x1bm\ v\x8f}\x0e\xfe-\xda\x8c\x87z\x88\x08\xfe\xfa\xc7\xda\ \xc5\xf5\xe8\xbe\x0a\x915\xb4\x87\xbf\xfc;m\xfe\xb3\x09\ \x9d@\x0c\xd3\xc8\xd59\x06\xb0B\xf3\x9e\x95\x1ec\x8a\ \xef\x83\x0f\xf6\x1b\x94\xe5\xeb\xcb\x8b\xd5\xf5\x0c\xf2YZ\ \xbd\xf9\xd1\xb3\x8b\xe7\xcb\xa37\x17\xab\xd3\x1f\x8e\xbe\x1d\ \x14\xf4\xd5\xd1w\x8b\xc7G\xdf\xae\x16O\xae\x07\xa5t\ \xfclq\xfety\xb9\xba\xb8\x9c_\x9e?}\xcb\x85\ _\x9f\x5c\x9e>z \xac\x84\xa8\xba\xbd\xe5\xc87\xb7\ \x8e\xfc\xc4\x9a\xb2c\xc26\xf9\xf9\x0f\x9e\xf4\x0f4k\ \xef\x9et\x80$\xc6s\xdec\x8e\xc3\xbca\xd5!\xbe\ \xd3\xdc\xe7yu\xa1\xf4X\x01\x09(\x95\x0a\xd4\x89\xc3\ \xfe\x84 \x86\xba\xd0\xee\xd1\x85\x9d5{\xd0\x86\x0f\xb1\ \x1b\xed\x17h7\x9e\xd3n@G\x9eM\x84qh7\ \x0aB\xb80\xc9\x9e\x01/G\xfe\x84C\xeeS\x96\x83\ \xe9\xf8\x85\x9a\x8e\xe74\x1d1s\xdeI\x01m\x99\x8e\ \xdc\xe6\xa1\xd7\xe8\x8a\xb4\x80,\xc7\xb0\x1e\xc4\xc3\x9d\xda\ \x90\xee5\x1d\xb3|\xd0\x87\x8f4\x1eo#]\x7f\xae\ \xc6\x03\x81\x92\x8c\xc7\x9f\x08:\xccx\x90\xc7\xc0\xdf\xd6\ \xb6\x83f\xe5^\xdbqp5\xbfT\xeb\xf1=\x99P\ X\x8f?\x11x\xecZ\x0fC\x1dIj\xe0o\x1b\x0f\ \xa8C\x7f\x8b\xf1\xd8\xa1\x01\x0f\x0a\xf1\x01\xe6\xa3\xb8_\ \xa0\xf90\xeca\x91\xc9M\xccR<\x83\x96\xec5\xf2\ \xf7I,\xf7)\xcc{\xd1\x9a\xbfre\xf9YZ\x0f\ \xc3\x1e\x84\x9b\xbe\xdf\x0d[\xd6\xf0c+l\xc9\xd1\xc2\ \x96\xbf\xbf\x15{\x94\x7fe}\xd8\xc3k\xedM\xb7\x17\ W\xbc\x8b~\xb0X5\x94\xe0\x1b9\xbb0O\xdc,\ \xde\xc9\xde5\xdfZ\xba)]\x14?\x06\x81\xb7{\x93\ \xef\xdb\x8c\xfb\xb2/{\xc8\xb7'4\xe4\xb9\x8b.;\ e\x82Z\x0b\xb5\xd5\xc9\xf1d\xe6\xe6\x1c\xacI\xdc\x19\ \x8b\x1d\xcbd\xe6\xe7\xad\xd4X\x9b\xf2\xfe%v?\x99\ \xc5y\xaa\xbe6\x0c\xe1\xc7\x8c\x7f;\x0f+.%\xa7\ \xc3ZO\xa5\x16\x1e\xe7Br\xda\x022/\xa1\x94\x96\ 9\xe6s\xaa%n\x8f\xe1f\xd1U\xb8\x1f\xc7?w\ \x9f\xaa]'\xb9\xeaj\xe6\xb5k\x0a\xc1\xeb\xb1\xbaK\ \xb08\xbc\x09\x9e\xcfU\x1d\xd6k\x86s\x9b\x85\xb9\xaf\ \x14(/\x1dr\xf2\xdd\x1e\xc1A\x8e\xf6\x08\xcd\xe3\xb9\ \xec\xdcP\xbc\x18\xc2\x14j\xa8\x91\xb7\xc8\xb1\xd7\xae[\ \xb4\x14[\xb01\x84\xe3\x98\x1c\xde6\xe4b\xe7:\x1c\ \xa8\xc3\x1c\xe6%\xd9\xd5Z\xb1\xba\x88\xd4{\xccM\x0f\ \x8c\xc7m\xc5\xce\xac\x0dp\xeb\x9bI\x9f\xa7\x1c\x13\x1e\ %\xf6y\x0e=\xbb8is\xdfb\xc9%\xb0\xee\xb7\ 1$M\x93\x8a\x1fS\x81\xe08F\x09\x84\xc0 o\ \x1eC\x89A\xf8m^bv\x98\x87<\x0f\x10K#\ \xf2O\xf3\x02\xbd\xf1\xb8\x0b\xfe\x84\xb3s\xad\xd4\xa1\x9e\ [\xf1\x05c.\x17<\x1bn\xe3q\x1d\x08\xa4O\xe2\ \xbc\xc7\xe017\x11\x8fXK\xc5\x02\x8e|7_S\ \x9b\x866\xcf\xa9\xb7\x0aL0\xaf1v\x07A\x874\ \x8f-\xa5\xd4w\xc7\x5c,.6(\x8f*\xee\x03\xce\ o\x92R\xf7\xddIr\xa9\xa6br\x0a\x0e\x8f\x8b\x08\ \x85\xe5\xcf\x10v\x938\x03\x7f6\xe9\xf9\xdc\x83\x93\xc6\ \xe1\xd4\x94|\x98\xce\x12\x95\xd3\x95\xc4\xc9\x0d\xac\xbf\xa5\ \x12\x14H\xa8\x86d\xa7g\xdc\xde\xb9\xae9\xc7I\xd5\ \xee\x84\xc7\xccx\x03\x8e\xc2\xd8\xb4\x94'\xb8|J\xa5\ \x04\x12\xc3*\xa1\xee\x9e\x83x\x93\xec\xbc\x97\x1e\x95\x0c\ y\x14\x88:cJzO8\x12R*\x19:\x82A\ \xa8\xab\xd14\x11\x0b\xbf\xeau\xf0\x10\xbd\xda\xaa\ L\x85#Pd\xa80_\xafw\xd7\xa0\xfd<\xabF\ -S\x80\xbc\x90r\xe2Q\xf8c\xd5X\xc7\xe2\xa4\xf2\ \xf3L\xe8|\xb03\xb1\xa8\xfc\x84k/@ix\xf9\ X\xab\x83\xbeR\x04\x19\x02\xe8\x9c\x15@\xc6\xde+\x95\ \x15\x0a\xcc\xe7\xba\x19\xe2<\xe2\xa8\x08\x99\xf0%]\x8b\ fN \xd2*\x99\xe1\xcd\xa2\x97\x16\xc4\xc4:\x22\x1e\ \x86\xbb'S\x0cXG\xbcN\x86,\x1c\xe4\xc3\x97qT\xc7)\xb5\ \x1d\x13\xb6\ \xed!\x04&\x03\x00\x87\ C0~\xc0\x03S\xbarxu\xe9;\x16[\xe0+\ z\xfaf[\x010k\xd2\xb2\x08[\x98\xec \xc0\x16\ \xb9\x91Z\xcd\x0f\xc3;\x01~S\x0c\x09\xfe@\xce\x1a\ 8\xc3\xf3n\x0e\x0b!M\x88\x96 _yO\xdf\x01\ \xc6\x8bt\x0b\x08\x9f\x8a\x8f\x09\x0d}N\xb2\x97\xba%\ \x84\x0c\x8f,)\x00fK`x\xf8\xeeeG\xe0{\ ao5\xd4Yb\xce\x17\x86\xcck\x95X\x973C\ \xc7\x19KG\xaa\xc9ED\xcd\x84w\xa4\x7f\x15r\x03\ @\xf49\x10\xa3E8[\x13\x15\x5c.\x9eKB\xf6\ \xb8\xac\xac#\x1c\x19\xbc\xb7\xc5\x19\x10G\x92\xae\x22\x0a\ (|U\xfc\x92\x9an\x81WwjV\xe4\xf1\xd6:\ \xc8q\x03Q\x91`aI\xa4\xce\xd0\x89VhCa\ \x9e\x806\x86d\xcdE\xc1\x8b\xe1E!$\xa8\x04n\ \x8e\x05\x0eDO\x1fJ\xc5\xf4\x84\x0d\x85\xf8\x82\xef\xc8\ \xc5\x0e\xb0)\x8f\x99\xa1;An\x1d\xc7\x0cx`\x96\ \x1f\xd3\x01\xdb\xa0\x91d\xab\xc0\xf5d\xa1\x09\x03\x8d\xc9\ \x10\x81\x89\x0a\x86*N\x14\x82H\x9c\x9e\xf8\x85P\x80\ *\xe9!o\xcc>l\x0a\xc1S\xa5\xd1\x97\x05\x87Y\ \x87\xcd\x10f\x83#u\x94}.\xad\xd1z\x06\xc28\ \xa0\x89\x9d!\xc6<4Y2\xde\x9dMJ\xe92\x00\ \xa5+\xb4mF`Q\x12\xcd2\x9c(\xddj\xe1|\ A\xcb\x9a\xd3a\x9e\xaa\xb8\x12\xb6z\xc4\xd4\xb0\ \xaaXuDk0\x0a^\x025\xf3\x0a\x0d\x15\xc6\xf1\ Mn\x1e\x96\x88\x06\x1c\xee\x800\x22\x05S.\xe0\x0a\ W\xa4\x930\xca\x09\xda\x84H\x0f\xc0R\xab\x02Q\x06\ \x0c!\x84\x8e\xa0\x02\xffF\x8d!\xa2\x8cE\x1e+\xc1\ \xe7R\xee\x84\x98\x94\x1f\xc2\x13\xdf\xcc-\xc1\xa6R|\ \x90_\xf2\x16\x11y\x18\xc8h\xa6\x03\xd2\x8c|T{\ 9\x08-\x9bfb\xe5y\x8b\x86!\xc9@\xdb\xc1 \ +(\xe4\xa8\x10\x9f\x0c\xc5\xcdP\x07z\xa6\x02\xbb\x11\ E\x94\xe8\xa5`\x00+yx\xb4D\xa77T\x0c\xb1\ \x97\x8dA\xe9\xb2X\x01*i\x93\x9f\x00\xc6j<\x0a\ \x96\x0f\xe8\x9a\xe0\x12\xf1T\x0d\xa6\xea\xf8Sn\x14\x1a\ c~[\xff\xf0\x8fE\x8b\xb4\xb9\xc4\x15\x01\x0c\x859\ \xc2\xd4@\xf7\x81|\x1d\xae\x86\xe9\x02\xac\x81\x92@e\ \xb1&K0\x8f6x\x01\xac\xd7F\x99A\x05\xb8\x9f\ \x86\x8b\x19\xde\xcb\xf3\x9d;\xa6\xa6\xcb\xa3\xf2\x02\xfb\xf7\ \xc4\xc1j}\xc8f\x91\xf7\xa3r\x961\x1c\x87\x93;\ TN\x10\xba\x02\x98N@\xf8\x00\xd3\x81\xaeMx\xcf\ \xa7\xa2\xe7\x84R\xd2D\xc0T\xd2\x8a\x95f\xb6\x1e:\ +t\xde\xc9v\xc8\xd8{\x86\x19aD\xe5PO\x09\ \xa2\x134\x1a\xb7\x11F\xd8\x16\x10\xe9\xa5\xdd\xb1\x0cp\ \xc0\xc8d\xf01\xb1\x0b\xaaa\xe5\xf1g\xba\x228e\ #F\xe0\x94\xbb\x9cFf\xdck\xd0#\xe7j\x0b;\ \x01!\xd37&\x02\xb2\x1cd\xe0\x22\xd5\xaeM\x84u\ \x9a\xa1O\x05\x03\xc62\x14\x85s-\xcb\x5c{,\x15\ \xc5\x01\x8c\xf5\xab\xc0<\xb4\x17\xb8\x0bW\xc9\xa1)z\ !_\xd0\x83\x1c\x08\xb4K\xf6\x89\x813-\x18\xfcx\ \xd7u\xf8\xd2r\xde\x88\xbfR\x97CI\xebp\x12\x22\ NA\xbe\x1aV\x09\xe6Xv\x17\x82\xb61\xa2\ \xd1\x0e(:\x0c\xd9\xd89\x1a\x15Qq\x5c\xce\xb2g\ @\x05\xd0dFK\x0e\xc0\xae\x9a\x1es^*\x09!\ \xef\x8d\xe9\xc6d\xc0\xa5\xe2\xe10\xc6P\x8d\xa83a\ \xaa\xa0\xf1UD\x0d\x84\xd5\xd6d\x9b\x07\xd2\xa1\x9a\xe1\ V~\xd0x\x08\xa8DL\xdd\x8c\x91\xac\x80\xe35\xbd\ \xc6DD\xae\xbaL\xca6\x1a\xfbY\xb2c\xe4J\xf2\ \x0f\xf1qu\x16\xd4\xe3\xe6\xc0A\xc2\x18\xc9\xa9\xb5\xc0\ \x98\x8aT\xb5\x04\xb8\xa2e\x95\x017C\x11\x15V\x89\ \x1c\x08P+G)S\xc8\xdbk\xc6<\x10/\x9d\x16\ lQL\xce1\x8c\x8f\x9d\x986\x93\x92\x06\x1an\xa2\ \x93\x0a\xd0=|r\x11\x90It\xef\x98\xf7\x88\xb5\xe6\ \x89:\x18\xb8p;\x06)\x12@\xa1\xb6=\x94I\xb7\ \xa55c\x87\xa8\xc8\x96/\x1e%\x06\x11\xb1\xc0\x90\x82\ \x9c\xa5pI\x93U\x13\x1d\xc6\xc7\xec\xa5\x89g\x83\x8f\ \x04\xd4$\x0f\xec\x014]\x11;\x08\x07\x129\x84(\ \xces\x9b7c*\x9ci\xc4p\x89\x227( Q\ v\xf0f\x16\x5c\xc01\xe1\x8f\x9c\x07\xdcV\x22\xd8\x8c\ \x88.52\xb9\xa4\xa8h\x11\xd1=\x16\xc3\xc4\xe2\xe9\ \xd4\x0c0F\x19\x87\xca\xa6\x90U$1\xd4\x87A\x0e\ W\x10\xaeH\xc7\xdb\x159\xc0\x8f3\xc2\x84J\x02N\ F*\x18\xc2\x96\xc2\xc5(\xd9\x89\xfa\xc0\xf2v\x8c\xba\ \x02-u6\xee\xc4\x91\xaf#4\xa0\xae(\xc4\x0d\x8d\ -\xb9\x88\xf3\x00\x85\x8dtA,\xd3\xc9\xc3\xc0\x0aV\ r^8>SN\x90M\x83\xb10\xa2\x0f(\x9e\xa4\ 9]r\x8f\xc6$@\xcd*\x1f\x9b(\x22q\xad\x06\ \xcd\xb7y=L\x80\xc2\xb5\x8c;\xcab\xe2\xc9q\xa6\ \x02\x8dZEd\xc5J\xf8.\x83\x89\x08KC\xf05\ N$?l\xa8h\x0b\x06\xb7\x96`\xf0$0dS\ 3@\xa3\xbcE\x86C\x8bf\x1a\x10\xc5T:T\xdc\ \xccW\x19U`\xa9\xd6\x0d\x17\xe5\xcczJ\x00)\x92\ \x84\xa2\x14+1&\x04\x03\xa9\xe6\x92\x8c\xe6k-\x8b\ \x1dM\xf4s\x06\xbc\x18uNI\x5c\xe3\x8e\xd5\xfc5\ \x0c\x18\x03(\x88_\x90\x98,@\x0b|\x06G\x8d\x14\ 9\x0cx9\xd2^\xa9k:\xe1\x16\xcc\xa08\xe2\x22\ \x1e\x83#\x9c\xacC\xa1-\xe3Z\xa8p\x06A\x07\x01\ P\x90M\x17\xf0\xf3\x96\xfb\x18C\x0c\xb2\xa1N\x03\x82\ \xc0\xf3B\xdb(\x7f\x1f\x86;nJx0\x86C\xec\ \x19\xf4\xc4\x0c\xa0+Y\x06\xf6\x9e\xf3b\xfahU:\ \xe3lL7\x02W\x85\xde0=\xcc?\xc1\x92\x00\x89\ u\xe3\x7f;\xdc\x025\xb7\xc3\xde\xc8\x93&G\x04B\ \x92\xad\x8e\x5c\x0e\xde\x82p\xca\x0bz\xc3D\x9c)N\ \x8a\xe4\x14E~\xc0\xbe{\xc5\x80\xb1\x99b@I\xa3\ K\xb2\xff\x88\x94\x8b\xac?m}\xd1b\xc3\xf3W\xf9\ a\x04\x19\xc5\x8b gH\xaf\xc0\x06\x91\x03\xe2\xc7\xe1\ 7\xcc\x10*J\xb0l\x81E\xeeZ\x80b\xf9\x10s\ \x9bY\x1fC\xca\x1f\xc0\x1a\x865\xd3S\x8c\x94\x82X\ ]\xd5\xab\xe0\x0d\x82d\xf7\xa3\x99\x1e\x00\x92\xe0\xe5\xc4\ \x15\xe9)\xa9\x10\x85o;\x02%\xa7T\x07\xf3\x8b\x22\ \xf91\x89rM\xce\xa6\x9f\xb2\xca\xb2\xee\xae\xa9\xf7\x0b\ I\xabl\x00\xac\xae\x83\xa1.\xe1\x9c\x99\xda\x8aD\x97\ \x11\xf2:\x0cA\x84\xb7T-\xc3\x09`\xcf\xe3\xc9&\ y\x22\xd1Rk\xba\x91\x83\xb0\xb0\xe2\x90\xe0\xf3\xcbX\ \xe6\x9cP\xe3\x95`\xa6\x83\x910-\x89\x83\xc0\x9f\x80\ J,0\x83\xediY\xbc\xaa\x0b\x96\x22&\xb4\x12\x1e\ \x87k\xedF)c!p\xaeM\xb2\x93Zc2\x01/l\x11ev\x9d\x1a\x08\ \x99n\x92T\xa1#\xf84\xac^\xb9\x07O\xda\x0eo\ \x8d\xe8\xcf\xb6\xae\xadG\xb5\x95\x9a\x84Z\xb4Y\x84\xd1\ \xc3-\xba1\xe9\xf0Ff\xd8\x01*\xa0\xa1\xb6\xd7\x01\ F\x07^@\xda\x0a\xec\xa6-\xa6\x0aNI\x98kF\ \x13\x02\xdf\x18\x0c\xc7\xc0\xd5\x89\x22\xa5\xaf\xb2~\x03\xe2\ teKS\xe1NG\xa3\xf1I2\xf0\xe6\x89\x14\x93\ .\x88UF\xbfI\x1b\x82{TE\xe8\x09\xa7\xea\xc0\ }\xfc|\xa5\x0d\xd1<\xc4.n\x12\xd1|u\x22\x03\ ;[\x0c\xd8\xc7*\xb8\xb1\x0c\x0b\x9bv\x95\x9c\x05o\ @\xfa\xbb;\xdb\xe5\x97\xc9\xa7\x9a\xf3\x0c\x5cN\xb6E\ \xdc\x91\x93\x91\x7ff7uI\x81\xbb\xd9\x0b=ti\ \xa4W\xb2\xc1\xc8\xe2\x0d+\xe5\x1cF~\x02\xc1M\x1d\ \xb9\x88\x91\x89\x19Ui\x83u\xa6\x817\ \xb3\xfeM\xc0\x1a\xa4\xb3\x05\x5c\xfd\xc8\x13\x12i\x88\xf0\ )\x0c%\xb4\x09\x1b\x81\xaf\x17\xdfS\xf1\xd8\xccUb\ M\xa4T,\xe8\xcb2\x81\x81\xd6q\x9a\x8aEk\xf3\xc8\ \x95R\x98\x1a\xb4\x04d'rc\x1b9\xeb\xcd&\xba\ \xe3\x90\x7f<\xe4\x1f\x7f\xb6\xf9\xc7\x06\xe7A\x8aUu\ \xc5\xf0\xbfP\xb2o\xb8&`\x9b\xd9\xb1\x95v80\ \x8a\xc0\x18;\xf2(\xdac2\xae\x13\x8d\x14J7\xb3\ \xda\xd3\xc6\x00|%h\x923\xbc5g\x97\x13\x17Y\ q[\x83\xa2\x07~\x22\xa0\xc7\x9d!EcY\xcb\x14\ \xd6c\xf0\x06,#\xf7\x0a\xc3b\xafq]\xfdU\xa8\ \xbb0t\xae\xab\xaf,\x84@\xf6\xdbGa\x86\xcaV\ G\xb0\xc0\xfc\x22-\x17J\xa3\xbf^\xbf`_\xbf\xe0\ \xadO\xfcn%\xe4\xd2\xa7\xefA|\x0cX\xb6\xef\x03\ \x06d>\x81u\xd8\x83\x98\x88(\x8f\xca\xb1\xcer3\ #\x9f\xc9\xcaX\x06\x0d\xb1\x88\x85\xbe)\xb2\x03\xd3\xcc\ \xaa\xd2R1'\x9aF\xc8\xe3l\xab\x05\xdb \x06\x83\ \x9e\x81\xf3\xa5\xa5\xc1A\xab\xcc\x0aE$\x0a\x83y\xe5\ R\xbe\x9b\x04\xe5r\x11\x1cM\x13C\xb4\xc0:\xd9\xc0\ \xc0\x95ay\xec\x5c\x8d\x80\x89\x960\x84;1\xc3H\ \xda\xdc\x0f^(\xad\x09\x09\xe7\xb4%\xa1\x90\x90\xb7\xf0\ \xbd\xb1w\xb1\xc5\xd4E\xa4\x98\xf2\x01\x8a\x07`\x8cE\ x\xc1\x92\x04\xe3\xcd\xa0\xdat\x94\xac\x1f\xd7\x08\xecN\ \x91\x0e\xe1\xb5Eq2\x0d-N,\x96,n\x91\xdd\ \xf5\xc4Q\xc0K{c{B\x0cj\xe5\xc7\xea\x8fa\ \xa3\xb2w\xcd\x18\x06\x96\xd2\xaf34\xeb11\xadc\ \x8dWVa6k\x89\xcc\xcc\x9f\x128\x80$Q\xe1\ a\x0f\xecPE\x87\xc6lq\x1dq\xb3_'\xc0\xc8\ `+\x08p\x8e\x11\xab\xb0GO6V}PR\xd5\ \xabcm\xb1t!\xa4\xa3\x9e\xb9J\xfcTcBT\ =\x8a\xbf\x8f\xde\xb0\xec\x91\xa8\x1c#\xf3\xd2\x96\xb1f\ oee/\xc5\xe7\xb1d\xbd\xd8\x12/>\x0f\xfe\x91\ \xee\x8dy3\xb8Mc\xfbY\x00/\xb8\x97\xd8\xfd\xd4\ \x92\x90\xd5\x99\xa2\xb1\xafq+\xbbc\xe4t\xd6v\x8f\ q\xb7\x1b\x89\xc9\xac\xee\xd4x\x1d\xee\xc2h\xb7\xf3\x92\ \x09\xd8<\x7f\x82\xc4$qP-\xfenb\xb2p~\ n'&#\x8e\xed#\x01\xc7\xb2LE\x9b\x95\xd4\xa8\ MyF\xe8I\x1c\x0f\xb0\x12\xacx\x14v\xad\x8a\x8f\ `\xb5B\x949L\xec i-\x9f\x01\x98\x94\xae*\ l\x93\x96\xc5\xcb9v\xb8\x9dn\xa8'n\x00\xa9p\ \xc2\xec|\xcdO\x9d\xb0ys\xe0V\x11\xb8{8\x86\ PI\x18\x926-$=\x01T*\xeb\x14\xba\x9a\x5c\ \x16\xde\x01X.s\x88),\xe8G\xa4\x0f\xe8\xac\x8e\ \x0c\x16`\x89&eXS\x98\xcf\xccF\xb2\x91\xe9\x8e\ },\x12J\x1b\xe74Cdp\xd4\x8dc\xec\x89\xa6\ \xed\x18@\x86,@\xe0\x18#\xf1>\xe0\x85cM\x89\ \xe6\x1c\xea\xaf\xac\x81#\xdfdE\xc0\x5cBV9\xe1\ \xa3*.\xb6\xc7\x22\xf1\x88%Q#Y\x92x\x93E\ %Nw\xdc\x1cq\xc8\xa2\x1e\xb2\xa8\x9f \x8bZ\xd7\ \xcb\xddY\x91Pn\x8c\xae,\x0f\x18\x8b\xd2Z\xbdi\ \xc7\x1b\x8di\xad\x83\xf1\x86l\x952\xf5\xe4\xfd\xac\x8a\ \x03k\xc1)\xb3\xca\xcdk\xcc\xb9\xb1Ir\xd6\x12\x08\ \xeci\xee\x8b\x08\x04\xf8\xbeb7`\x1e\x09\xe0Di\ T,\xc91\x06S\x22\xdb\x9b\x80\xa7\xd5\xca\x10\x86>\ \x1aC\xf2\x93\xa4Q\xc3\x9d,j\xff\xe7&Q\xdb!\ \x89J \x16\x8a6%m%Q\xe9P\xe3z\xe3\x97\ \x83$\x10\x96\ [k!\x12:\x10^\x91m\x8f\xaa\xb6c^3*\ @\x09Y\xbb\xdc\xf8\xdcJ\xd5\x10\x96p\x0b\x9bU\x1d\ r/\x850\x86_w\xd6f9\x03\x99:\x18r\xe8\ \x93WeC\x94\xc9\x22zI\xb2Y\x91xPyW\ \xac\xae\xb1\xa5\x93J\xd8,\xa3F\x02@\xf6\x09\x82\xd4\ \x89\x91v\x8f\xc9X\x825%c\x89\xbc\xc8\xb7\xb3}\ |\xe2\x82\xc8\xfa\xe4@\x0a\xf9]\xc9\xd8f\xf6\xf5&\ \x19\x1b\xbd\xed@\xdcJ\xc66\xbd\x8a\xe3\xe7?\x98\x0c\ C \xc1\xfc$k\xe2H\xaf\x13\x9bvf\x07-\x83\ \xadO\x5c\xd3\x86w\x1dC\xab\xa9\xfcuf\x1fy-\ \xc7\xc4\xf6\xc5\x9b\x011\xe7\xcc\x97+\x9dE\x05\xe6M\ \xbbg\x8e\x89\x8f\xdcl\x86\xe0.\xa2\xd2\xc6x\x9b\x22\ \xba\x8d\x08m\x04\x94\xf0m\xca_\xc1ID\xa3\xf2j\ #\x16\xde\x19\x82\xcd\xee\xfa\x08\xc1L_fP Y\ I\xe0*g\xc3\x9d\xbeJ5\x97\xc6\x8d\xc3d\x0f\x88\ aRTcq\x0d\x1aC\xc1\xec\x90:;7\x98\xf7\ >\x08\x0a\x87x\x98\xafM\x0d6p\xc9&\xf6\xc9\xe2\ xe\xed\xf9LX\xd9\xaa\xa8s\xc52\x99\x9c2\xd5\ P\x12\xb5h\xc9Xgv*\x02\xe4 \x14S0\x89\ \x0a\xc31C\xa5*)\x9c\xbd\xd9e\xbcu\x13\xa3\xef\ aw\x0dF'f\xc5\x08u\x18*\x9b;\x8a\x9eI\ B\x8a9u\xcb\x06%\xdb\x08#\x125\xc9\xe1%~\ \xf0b\x88\xb2X\xc6_\xdb\xa1\x8d\xef\x06\xbe\xd4g\x0b\ <\xf7\xf7\x18\x04qU\x1bs\xb9\xdb\xb8+5N\xd5\ \xc8z7\xc6\xf6\xc5>\xbd\xe2\x9a,U\xa1R[\x1a\ \x8c\xbc\xa1\xba\xd4\xc2\x9e\xcat!\x5cv\xca\x09s\xdf\ \xbc\x0fF\x0f\x14\xaf\xac!\xbc`1\x8a\xa5\xb0x\x8e\ \x13\x0c\x903\xc04^\xc6\x12\xff\x85\x9bi\x14;\xe1\ \x1d\xcc\x11\x15\xf3\x99\xecw\x1f\x0c\xcc#\xb4\xaeJ\x87\ \xf4\x91\x07\xcd\xa1\x0a\xc2\xf5\xa0<\x9a\x00=\x9c\x1b\x17\ 6pN\x09\x8a\x0f\xbd\x87\xed\xac\xe6e\xb8\x89_\xec\ j\x8e\x96\xea\x04VV\x91Gi&82\xa1\xa2\x95\ \x00\xdeG!\x22\x99\xfcl\xb9\xc2\x01\xc9\xd8m\xd8S\ Q\x00V\xe8\xc0xE\x06z\xa2\x04b\xd1\xeb\x92\xad\ \xf6\xfa\xda\x8b\xd9\x18\xc9\xd7\x15\xf8`\xe93YUE\ \x0e\xfc\xd4K\x92[#\xddb\x09e8&}N`\ =tH(\x1f\x12\xca\x9f0\xa1\x9c\xe9@\xc4tf\ \x0b\xd6\x11{\x92Kq\xa2Jz\x19\xf9\x9dj{*\ IP\x19\xefH:\x839\x1f\xaf\xfb\xd0\x0d\x1e\x12\xc3\ \x87\xc4\xf0\xe7K\x0c?\xd7p`j\x8f\xd44\xf0e\ \x08\x96\xe8\x8c\xfc\xa2\x8d\xf1.\xb8\xbfR\x98\x88\x1d\xaa\ \xb7\xf6\x0b\x84`\xc44P\x14\x05\x06\x89_\xfe\x12%\ \xc5\x0c\x9d\xd9\x8eB\x0c\xc7\x09\xcb\xad\x8e\xb3\x9a> \ \xb2\x1e`\x80J\xe2\xceX\xc9\x12\xdc\xd8\x1b\x0a\xa5\x16\ <\xcd]\x9b\x85I\x04',Sz\x06\xa6\x13\xb3A\ \x92\xc2\xfc\xa5\x1c\xadc\xc1\xb9\x84\xc1\xcf\xc9\x08\xb1\x92\ \xbd\x1b\xa4\x06\x0cR\x14~\xab\xac\x96\x8f\xbb\xc7\x15\xcb\ \x1bm\x0dqC\xea\x08\xc00\x03\xa5\xd9\xb4\x12\x02\xd8\ J\xceUU\xacp\xba\xf6\xa16\xc4\xa3-\xdd\xa4\xd8\ a\xeb,\xc3\xce]\x14\xa2\xba\x03\x15G\x9a\xc3\x0fd\ \x8c\x12\xffL\xce\xd4\xd2\xbcil\xf1\x865\x88\x1c)\ \xdd88\x1a\xa0\x92\xeb@A\xf6\x89\xb5\x0cQ\xc8\xbb\ j\x03\x83\xec\x0c\x09H?b\x89\xae.\xfd\xc23l\ K\x22\xf3\x0a\xa3!\xff\xe1\xa8\x14\xcc\x16\x19\xd0\x0e\x0a\ L\xa5\x13\xddY\x15\xa4\xbe\xe7F\xadak\x1c1\x0d\ \x8d\x1f\xb2\x0b\xc6\xeb\xe9c\x1f\xb4\x06\xea\x96\xd0\x00i\ \xc4\x15$Q}\x94[\xe8Jt\xc3\x15t\x95\x06\xd2\ _(uHi\x91/\xa4\x1d\xa7\x97R\x95f`\xf9\ \x9d\xfa#\xb0\x00\x9f\x91\x05\xeb\xff\xb5%\x98\xf5\x95e\ \x93\x84/\xce\xbeZ\x07\xc8\xd5k8$\xe1\x7fFI\ \xf8\xef'lH\xc3\xcd8I\x1b2\x82\x0aj7\x9f\ \xe9I\xa1\x8f\xd2\x11aV\xba\x04\xe8M\xb2\x94\x22Y\ \x1f1w\xac\xfal\xc3\xad\xb4\x91U\xc5\x99\xfa~ \ \xc39,\xb4\xf5\xc4\xf6L\xec\x08g\xdeK\x1d\x96\x97\ \x9f;J\xeb\xad&A\xbb\xae\x98\xc9\x90\x1d\xd4\x17\xcd\ d?Y\xda\xa8\x1cY\xaf^m:\x98{V\x0c\x15\ \xd8Wg\x1c\x15\x06\xb5S\x18\x0d\x08\xadb\xcd)J\ \xc4t\x01\xdf\x10d\x90\xfePd\x8d\x05f\x00\x0c\xf1\ i\x10YGC\xe0D>@\x22\xa4Y\x9d}BL\ \xcb\x0cV\xddg#\x89\xa0d\x0aq#B\xafD>\ \xc2\x17\xd1+a$\xea\x99 I\xa9\xcaJ,\x0f\ \x0b\xf5FU\xee\xba\x88\xa5\xd68(\xafPv\x06\xb0\ \x9c\xdcX=\x81u\x11V\x8bS\xc8;\x84C}\xc4\ \xa7i?\xa8\x038\x1fAU\x7f\xdc\x13F\xb3\xc4\x22\ !g\xc4'3\xe1Lb\x03\xa0\x8c&C#1$\xf8O2,q\xef0\xe0s\xe7\xcb\x03\xb7\ 4\x0e\xb1\xebp&,j!1Xc\x9dTM\xd9\ \x9a\xc3\xb0\xb5m\x80\xc2\xdc\x8c\x1d[\xba\x81U)\xd9\ jp\x8a\xf6\xe3\xca\x8b\xe1a\xe3\xd6\x90\xba,\xc6u\ /\x0a\x98\x95\x9e-\x9e\xa0\xfd\xb5\x5c8\xc9\xcd[%\ _\xac\xe28T|\x1d*\xbe>A\xc5\x17\x81B\x1d\ \xed\x86\xb9i\xbeZ\x91R\x5c\x1f\x8a\xb5W\xb5{\x1d\ 8\x8a4J\x1a\x15\x95V\xbc\x94\xf9\xb1\xf3(\xb2\x16\ \xd6\x93\x16\x9bU\x900YE\xac\xaaL{b\x84\xe1\ T\x82bc\xb9*\x8d^HC\xaa\xd3\x12?F\xce\ \xa8:\xf0C\xd1\xd6\x16\x82\xba\xc6h5Eg\x8d\x22\ 2\xe1\xa6\x95b1S\xa3G\xcfj\xfd\x89eZ\xea\ xYm@\xa7\xa2cf\xfbN%\x16\xcb8\x8aq\ ;jJ\xad\x06\xdb\x84\x81\x0a\xf0X\xcce\xb6?\xc7\ `\x0cJU\xfffz\xfd8z6\xb3\xd9\xce\xd8&\ \x1fG\xbd&\xd7\x98\xf2x\xfc\xc6|\xca\xcd\x08\xdc\xa4\ \xf8\xc5\xe93\xb2f\xef\xd9\x8a\x92\x1f\xa0e\xa5A\x18\ \xedd\x80\x94(\x06\xb8\xc1Q=\xe0\x11\x0d\x06kf\ \xce/\x9d\xd7\x81Y-\x7f\xc3V\xa4f\x94\x99+\xee\ \xa2\xf5\x99\xa9&$\xadL\x8f\xaa\x0b6\xb1\x9e\xbe\xa8\ \xee\xd8pFDu3+LF\xa7\x08\xedT\xa8\xca\ T\xc5t^\xcd\x100\x81\xb6}\xdc\xb1\xd0\x02R\xef\ \xdc\xb4\xae\x0c\x1c]H\x0d;CL\xaf0\xe97z\ \xe7@\x83]\xb1\x9c\x9a\xa7\xa1P9-\x80O\x16U\ \xc6NK\xbe\xed\x0c\x0a#\xaa7\xea\xb0\x82\x86c=\ \xdb\x00\x0c\x92\xdb\xf6\xae\xab\x02\xd1\x89s\xb3|\x9a\xf6\ \xc6\xb3%\x94\xd5\x1b@\xe3\x9d\x8c!\xd3\x07\x96)a\ \xc3o\xfb\x10}S\xbd\x81\x88O\x97\x8d\xf4\x86\xc1\xb1\ \x9e\xaf\xdc%_\xc7\xd7\xd5SV\x1fs\x92\x1a\xd5`\ \x0b\x8cB\xeb*\xc6\x1a\xcc\x91hJ\xc6+\xda\xc4n\ <\x11\x15\xabA\xb7\x15V\xdd\x8c\xb1_n\xf6\x83~\ \x84\xa1O\xe2\xc1\xb7*\xaa\x22\xd1V\xdf\xad\xa8\x8a\x00\ B\xb5\xfc:+\xaa\x82e\x0c*t\xca\xaaJ\x9bJ\ ?dWX.\xc45\xc4\xe8$\xedTTU\xfaN\ \x9e\xc7\x96\xfb\x02\xff\xc0\x11\xfc\xd4;\xf1\x8dk\x88\xfc\ ,\xa1j\xd1\x15[0\x8cfY\x91y\x0c\xde\xaf%\ \xab\x95\x84oU\xcf|\x9ad\xa5\xd3{\x90\x83\xad\x98\ )\xad~\xfc\x1c\x83\x95S\x91\x0a\x97\xb3\x80\xddj\x96\ \xb5\x8bjn\x01\x1f\x03\xc8\xa5r\xaa\x1c\xfc\xa1\x9c\xea\ PN\xf5\xf3*\xa7\x02\x06\x19\xbe\xd0\xd1e\x0a\x116\ 5c\xe4LU\xaf:\x85}\xdd9\xf8\x05\x8e\xb2\xd3\ \x9d\x83%\xc0m\xb7;GT5\xa1U*\x05S[\ \xac\xfd`\xd3O\xd2L\x0b\xac\x852\xac6S\xd2Z\ \xbc\x0cD\xac\x82\x96Z\x13\x94\x94M\xfcr\x05\xfd\x8e\ \x87RY\xc0\xc1\xf5,\xb5a1\x96:\xdd\xc3y\x14\ \xeb\xac\x875\x14\x83\x8cQ\xa9\xe6;\xc6\x10\x05\xd9Z\ \xb7H>\xc2\xca9\x03;\x08.\xc4\xc2f\xb6[\xd4\ \xf3\xc0X\x16m&\x01\xc8\x19E)\x95)\xd0\xc1}\ 4\x0b\x91\x1a\x8b\x8a\x8d\xdb\x8b\xc5R\xacx\xb5h\xa6\ \x15?\xcav\xb0f\xd7P~\xaa\xfc\x0c\x84\xd6-3\ \xe0\xd2R\x12\xc0\xd6%r|\xdcA;M\xac\xbe\xbe\ \x067:mU\xeb\x15\xdeHSZ\x93\x9f\xaa-\xe8\ \xac<\x0b,\xbbR\xb2\x83\x85\x09\xca\xba4\x8bK\xa1\ \xb7-\x8e\xec\xad\x1afy\xe9\xd8\xe8\xb5\xb7\x1e\xc2\xfc\ \xb6\xb8\x16\x09\xd6\x87\xdau\xb1}\xa5\xaa\x0d\xf8\x0d\x8e\ \x89\xed\xab\x17\x85T\x99\xce\x93>A\x1f\x94w\xc1\x03\ \xdbz\xb5\xe4\x80\x80C\x11\xf6qL\xf0\xc8\x8c\xb2\x9b\ \xa6\x95N\xb7\xa6\xb2\xba\xc8\x12\x0bs\xceq\xb0SP\ \xabl%<\xd0\x00o\x942\x13\xdb\xa3\xb3x\x0a\xb9\ \x0ex\xcb\xa2\x0c\xf3\xfe\xd0\x0b\xe3\x95\x8b/\x96\x82\xce\ \xd4\x1aQ\xa04\xba&\x8f&\x05\x14\xc6o\xcd>\xeb\ \x92D\xe2sA\x06v\xfc\x9b\xa9\xd0\x9c\xec\x13\x19=\ ,\xdf\xb0.@H\x22a\x1d\x9b@M\xd4T\x00\x97\ 7\xc7\x8f_T\xad\x06\x9a\x1e\xe6\xae\x89cT\xeb\ \xd3\x99\xd1\xb1w\xb4o\x06y!2I\x86\xe6\xc2\xa8\ \xe4j\xce\x8am;\xad\xc6\x86\xae@f\x17Xm\xd4\ \xb0\xd1cg\xdb\xccS\xcc\xb6\xb0\x05\xd1\xc8q\xc3\x1f\ \xa7\x91\xd0`b\x06A\x1c;u\xc4J=\xb0\x9a\x0d\ rm\xd6\xa8\x92\x91\xde\xf8:P\xd5\x87@\xf8\xb1\x8a\ \xda\xba\xa5\x16\x00_U\xb4\xc1\x86\xfd\xc1\x8c\xb1\x1fh\ \x14\xee2W\xf5\x9c\xcc\x032\xb1\xa9z\x961JL\ y\xba\xb1G\xc1qEN\x06\xfc\xb6\x84\x1c\xa3&%\ 2\x13\x81\x0b\xeb\xd5`T\xa22\x04PY\x84\x8a\xa2\ =I\x9b\xab2\xc1B&\x96Vte\x1d\x81z\x94\ \xc0f\xb1%,\x02\xdb$0\xe6PW\x04\x08\xaaO\ \xb6\xbb\x22X\x1d\xa3\x83\x954\xe1\xb0\xc1\xcfD}\x81\ \xaa\xa1\x1f\x9e\x8a\xc9\xa0\xbc\x12S\x8a\xde:\x82\xb2\x0c\ 0\xd6C\xfd\xdaOQ\xbf\xf6\xfd\xc4\x03f5b\xc3\ id~\x9c\xd5\x06\xeb\xca\x0a,)\xf8\x183\xa2\xb0\ \x17\xca%\x93h\x90\x05gI\xabSbA-\xd7\xf2\ \xda\x1d\x1bW\xc2\x9c\xaa\xd2\xba\x9d-\xffl6\x18n\ )\xd3\xc3\x8cx\xb1\x8a\xb9\xcc2\x85\xc1\xf5\xb3\x8aK\ F\xa62^U\xb6\x90\xcd\xb8\xb4\x94\xf9\x85\x14\xab\xaa\ d\xc0\xcd\xa1\xc6\xac\xbc\x0a\x8c\x92\x95\x98\xf0\xebGA\ \xdb.\x1a\xfbmK\x07iM&\xcc-tK\x02\xd3\ V\xf8\xdd2\x87\xb2]\xd4\xe0\x0b{\x99m\x8f\xd0\xb5\ \x94\xd1\x08\xa2q\xf3H]W\xab\xd0P\x1cJ\xfd\x0e\ \xa5~\x87R\xbf_X\xa9\x1f\x89J\xab\x1c\xaf\x9d\xa6\ \xdat\x13^)\x8ed'TC\xb9\xae@\xee\x5c~\ \x04\xce1T\xdb\xe9\xd6\x93\x161\xccy6t\x0b\x83\ h\x1b\xb5\x00-\xecS,JE\x99\xe7\xea\x03%\xd4\ `\xdf\x9a\x8b|\xb9\xd1\xad\x9b\xbdU\xb3u0b\xca\ \xaeY\xd4G\xb2M^$\x00\xdf\x09O\xb0\xdfeQ\ \xbe\x85\xfb\x09\x8c5d\xeau\xa4T\x93\xb3\x96a@\ \xe9Nx\x90.I\x15\x82\x80\x8cj\x81\xa8\xc2\xb7d\ \x9f\x86\xea\x82\xeb\x95\x15>\xb6I\xa03\x1c\xa0\xc6\xf7\ Q\xf9\xbe\x19\x81z\x10\x91\xb8\xa9!;m1\x0bl\ ~\xedU\xe4\x91\xb8\xcb\x9b\xf7%\x08\x10\xb8\x82#\x12\ Np\xc0\xe5\xdac\xc8\x007X\xbe\xb9[\x13&9\ \x12\x12\x8d\xbe\x0a\x0cY3\xf5|(\xf2\xfb%\x14\xf9\ \xd1{\xd8>\xd6\x02C\xdeF\x1b\xa4\xce\xb0H\x81\x00\ \xf9\xf9\xa26\xa81\xd9\xc2aP^wFx\xe7R\ \xd6\xfb:\x93K*\xd5\xe3\x1e\x0b\xaf\xd2&\x0f\xbd\xe7\ \xbc\x10\xe9\xd6P\xe2\xf6\x18\x97\x0c\xe1\x87%\xc4\x1b\x9b\ \x8d\xb2\xf6\xa3\x88p\xdb\x8c$V\x1b\xc5d\x85`,\ |\xc9L\xf5\xc0s\xd0Z)\xe7\xe3\xb8\x91\x0fZA\ \xd2s=@P\xecF{\xee\xcc^\x9cFP8V\ \xc9\xd2)\x15b\xf9\xb1\xaf\xb8\xb4h\xa0\xde\xb3\xe9\x7f\ #\xc9\xc7\xae\xb1\x9e\xbb+\x0f\xf5y\x87\xfa\xbc\x7f\xf5\ \xfa<\x05\x0d\xacb!Hl\xe43}6(\x5c\x5c\ \x1f{\xf6\x8aB1\xd6t\xdb\x87\x11\xb8\x1d\xdf6\x8b\ \xf3\xeb\x95\x03l\xc0\xb4\x8e\x02\xf4\xb6\xc6\xb3pqE\ \xe8\x95\x05n\xd9\xbe\xc7\x09\xa8d\x1f\x0b\xc1C\xe9\xc3\ \x19\xfcFg\x08\xa3E\x07?\xf3j\xb5EM\x81I\ \xa4\xe9\x14\xc7\x91|\xb1>\xb0P\xa4\xa4*,\x12\xe9\ e,+\xbai\xc3&]\x13\xa8&\xe7\xb8\x83\xb00\ \xbfRW-j\x8f\xaci\x9aJ\x11\x06\xcf\x81\x106\ \xa9\x12\xc1S\x0b\xfc\xce\x10\x89\xcc`N\x13@\x9c\x9e\ x\xf3c\x83,\xad\xfa\x8e\xdf-\x0d\xd2i\x82\xc5\xa2\ \xaa\xa5\xcd}p\x96\x91\xf3zD\xad/~\xcd#\x98\ \x1de\x9aW\x84=\xf7\xd5q~\x98\x80uc\x88\xc1\ \xb1V\x0c\xa42\xaa\xc5\xe4\xa2\x99\xea\xb1\xec\x04[*\ t6hn\xfc\xe6\xac\xf9\xbc\xc2\x9c\xc9(\xf7s\xac\ \x8c\x12\x11\x18\xa4\xea\x87r\xbf_V\xb9\x1f\xf3\xb2\xa3\ \x5c\xbed\xfb\xe4\x22\xb1j\x8c\xd6`\x12\xaa\xc9~\xeb\ \x81qK\xb5\xed\xb5\x1d\xe0Y\xcfNJ\xbfj\x0a#\ \x0d\x99\x11EZ\x82\x8cdb\xb3%\x88%\xdb\xac\xd9\ Bb\x19J0\xc3\x07\x94\x9d\xb6\xc7\xf8r\x08\xf1\xd3\ z*\x89E\x08\xf1+\xbf\x95\xad!~\xac\x94\xa1)\ \x91\x9b\xb1\x99)\xae\xbbe[\x85\x1a0\x8e\xd2B\xdd\ \x93\xfd\xcf\x0a\xf5T\x8f\xcf\xf27\xd5\xe3Cz\xc1\xda\ \xbe\x8b\x12\x89\xfc\xdcb1\x91\xf8\x1c\xd5L$0\xad\ \xa2\xe0H\xcc\xdf\xa1\xd0\xef\xc7\x15\xfaU*6\x13\xa5\ \xaa\xe9\x8bl<\xa1J\xbf\xc2-\xc6\xc0^\xac\xe0C\ 8\x88U\xc6\xea?\x16qe\x8de\xe6\xd9\xf8\xe1\xe8\ \xcc(\xbf\xeb\x03S\x05V\xdf\xb3B\xb5q\xd5W]\ \xd1\xb1G\xd2\xa4\xc1I'\xee\xa8\xe5\x18L ?0\ \xde\x84f\x00\x0d4\x16\x19\xb0\xe2\x5c\xc6u\x8c\xb0\x83\ \xcaM\xa1Z\x958\xc5\xf6\xf2\x12\x13\xb1\x14n\xefC\ \xdfS\xbc\xe7>\xa2x\xef\xab\xa3\xa7\xfc\x83\xfe\xf3\xd5\ \xd1\xd5K\xfc\xe7\xbf\x01\xce\xabK\xbd\ \x00\x00\x0b3\ \x00\ \x0056x\x9c\xe5[\xebs\xdb\xb8\x11\xff\x9e\xbf\x82\ U\xbe$S\x91\xc2\x93\x04h;7\xd7f\xee\xe6f\ \xaes\x9dK\xae\x8fO\x1e\x9a\x84d\xd6\x14\xa9!)\ [\xca_\xdf\x05\xf8\x96([R\x14\xf7\xda\xdaI$\ ,\x16\xaf\xdf.v\x17\x0b\xe4\xfa\xbb\xcd2\xb1\x1eU\ ^\xc4Yz3\xc1\x0e\x9aX*\x0d\xb3(N\x177\ \x93\xdf>\xff`\x8b\x89U\x94A\x1a\x05I\x96\xaa\x9b\ I\x9aM\xbe\xfb\xf0\xe6\xfa\x0f\xb6m\xfd9WA\xa9\ \x22\xeb).\xef\xad\x9f\xd2\x87\x22\x0cV\xcazw_\ \x96+\x7f6{zzr\xe2\x9a\xe8d\xf9b\xf6\xde\ \xb2\xed\x0fo\xde\x5c\x17\x8f\x8b7\x96\x05\xad\xa2\xf2\xfe\ f\xe2\xb2\x89.\xdd\xabxq_\xb6\xc58\xba\x99\x00\ \x1fE\x82\x9bro\x82\xb8b\xa8{\xf6\xfb5\x0e\xb1\ \xde\xa1\x00\xa1p\xce)\x95S\x8b Bl\x04\x7f\xd8\ {\xd3\xa8\x80e\xad\xe0\xaf\x1fea\x1a,a5\x01\ Y\xdd~\xbf\x89\x8b\xbf&A\xaa\xfe\xa6\xf22\x0e\x83\ \xe4\xcfYZ\x94y\x10\xa7\xa5\x03s0-\x01\xa4\xb4\ \xf0\x9bAo&\x87\xd6\xa8{-VA\xa8\x8aYC\ \xef\xb5o\xc6o\xdb7\x04\xa7\xc8\xd6y\xa8\xe6\xd0\x85\ rRU\xce>~\xfe\xd8V\xda\xc8\x89\xca\xa8\xd7\xcd\ &\x81\xbe\x07sx\xa2ft,\xa5\x9c\x99\xda\x8e{\ \x8c\x8f \x84f\xc3\xa5A\xe9H\xce<\x9a\x1f\x1c\x1b\ \x91\x19 \x0e\x1cv\xb1M\xcb`c\xa7\xc5\xdb^\xd3\ 0l[\x86Zw\xe2G\x15f\xcb%\xc0]\x817\ `\x8e:\xe6\xd5:O\x0cG\x14\xceT\xa2\x96*-\ \x8b\x19\xc8{6\xf9\x00\xfc\xd7\x91\x9a\x17\xba]\xa56\ \xba\x04z\xe3\x99:\xa8\x058T\x90\xff\x98\x07Q\x0c\ \xed*\xbe\x8asXC\x85\x87\xeb6\xd0\xaa(\xb3U\ \xc3\x0b\x8aSn\x13\x90\xba&\xdaa\x96d\xb9\xff\x96\ \x004\xf3\xf9\x95!e \xf1\xb8\xdc\xfa\xf8j\xd2\xb5\ \xc9\xe6\xf3B\x81F\xa3\x1e\xcd\xa85\xb4\x80\xb1\xe8\xc4\ \x9a\x1d?\xda|>\x0f\xe7\xe1\x11\xa3\xe1\xf1\xd1x;\ \xda\xf5l\xb8\xec\x93Qr\xe9\x09(\xcd\xe7\xa0@\xe8\ l\x94\x5c~\x22JR\x05\xe2l\x94\x5c\xef%\x94\x96\ A\xfe\xa0\xf2\x16\x9d\xc6\x06A\xf3\xf0A\xf7\xf3}\x9e\ gO\xe4g\x95F\xed\x00Y\xae\xdb\x83\xa5Y\x97Y\ K\xcc\xd5\xfc\x9f\xfd5C\xf9\x1f\xfd\xf2\x81\xbe\xea%\ g`\xf3\xe6I\xf6\xe4?\xc6E|\x97\xa8N\x1e\xab\ \xa0\xbc\x1f\xaeLS\x18\xf7\xd8d\x0f\xb8y\x9c$v\ \xbeN\x94\xaf\x1eU\x9aE\x11\xe0\x96g\x0f\xca6\x86\ \xd9G\x8eKxC\xd2`\xfc+\x8bS?\xcf\xd6\xbd\ \xf9X\x16\x8c\xf0\x17K8\x1e\x16\x5cxb\xca\x1cD\ \xa9G9\xb1l\xe2\x10\xe4\x11!\xf9\x149\x08\xbb\x08\ S\xe26\x9c\x82Mm`E\xd8C\x9e\xb0B\xcb\xc6\ \x8e\xc78\x93@'\x0e\xf5\x08r\x914D\xca\x19C\ b\xca\x1d\x17\x03\x03\x06\xa2\xablo*`\x18\xa8\xa1\ \xd6\x97\xdeT\xc0b\xa7\x05X\xd0\xe5\xcdd\x19\x94y\ \xbcy\x07=\xe0)\x82_\xf3\xa5*\xbd\xefK\xbe\x91\ _\x98\xa5\xa9\x0a\xcb,\xb7\xc3u\xfe\x18\x94\xeb\x5ci\ it\xcaP\xc9\xfd4%\x00\xa7\x99\x97\x17S\x83a\ o\xe7+\x02\xfe\x7fT\x84F\x0f\xf4\xe7ki\xc1\xe7\ <\x0e\xd2E\xa2~J?}\xbd\x12\x8cuv\xae\x0e\ \xb8\x92\x0c\xe5\xb6\xb4\xb8\xe3ySd\xd9\xc2q\xf9\x94\ [z\xc3 \xab.|9^a\xfc\xb7\x08\xd5\xe6\xbe\ \xa7?xU\x8e\x0b\x07\x00K\xd4;\x88n\xc8T\xff\ s\x01\x99\x1c\xed\xc4$:\xc5\x891&8\x89\xceu\ b\x12\x9d\xe6\xc4\x10\x22\xeeQ\x81\xc5\xa8\x13\x93\xe8E\ 'v\xbc\xab\xe7\xf2\x04\x94P\xf4U\x01\x91\x8bOB\ \xc9\x8b\x04\x9e\xe3\xf3]=\xbd J\xa7\x84\x8d_\x19\ \x10\xf1S\xc3FOy\xeal\x94\xf8\x8bac\xbbQ\ Wp\x0c[\xc1N\x85\x90\xbe5P\xcdi\xab\xdc\xea\ #\xd3\x90\x95v\xce\xa3;\xca\xadn77\x13\xea\xb8\ \x82\x11\x17l\xbc\x0f\x86\x09!\xd7\x95\x92\xc0w<\xda\ `{3\xb1\x89\xe7\x80\xcb\xe0\xe0\x06|\xcbf\xdc!\ \xd2\x13\x8c\x1dl\xf2\x05\x9a0\x17\x1c\x10\xf7<\xae\x9b\ `p0\x5c2\xd7\x1doR\xcf\xd7\x06\xeb\xbd\x88\xf5\ A\xd3\xcc\x06\xdc\xa2\xfe\xf1\x86m\xb4\x91\xed\x90\xa0H\ \xba\x1d\x82\xdf\x00+\x1bS\x87Q\x97\xb8fJ\xcc\xf1\ \x88.<\x07\x16\x82J\xc9\xc1\xe7\xea\x95\xa3C\xf80\ \x06B\xf0<\xfar\xaf{\xe0p\x1d.xT\xc3/\ \x1d\x97r\xca\xa5x\x01#\xf6m12\x9a\x80^\x02\ \x05\xc3\xb6|\x0e\x12\x22\x9e\xe9fTE\xd8Q\x1a\x82\ \xf1\xd8\xea\xc1Q\xdbj>\x07\xa6\xa6aU\x82\x9d\xf9\ \x00'\xe02H\x86=v\xfc\x146LWW\xdc\xd6\ a\xc1\xcd\xa4\xcc\xd7\xaa\xad\x80\x06\xa5\xcaS\x1d\xb4A\ `\x04\x7fae\x18\x0d\xdc}\x98\xad\xb6\x15\xd2E\xac\ c\x8f[\xf0\xea\xaa\x0c\xefU\x87\xf4*\xcfV\xb7\xc6\ \x8d\xf7-\x88!\xdcnos\x95@\xac\x10$E7\ \xacN\x8d\x98\xc4R\x07s\x0a\xb1@\x90\xdc\xee\x9b\xbd\ \x12\x22\x9e\x11\xb2\x19s\x9d\xc6e\xb1\xdb\xf9c\x9d\xbe\ \xb9m\x177\xac\x9f\xaf\x0bu[f\x89\x82\x10$\x1c\ \x86\x11\x07\x8c}\x17\x85$\x89\x01?H\x9e\x82m1\ \x80~\xd8\x14\xec\x88w\x8a\xcf\xd4?\xf4Lo\x00c\ \xc9\x13#\x8b\xfd\xd1\xd0\xb1\xde\xc0\x83\xc8\xfd\x22\xc7c\ |\xd1\x93\xd1nogF\xc5TJ\xbe{\x9a\xd1\x1b\ \x83Om\x0e\x0e\x828\xdc\x14\xb8!~\xbb\x90\xb8>\ \xaf G\x98\xf3\x8a\xfe\x84]\xf9j\x87V\xfc\xe9r\ \x99\x8ba_\xe7\x1eV\x10F\xbf\x1f\xb1\x98\xa3\x8a\xc9\ '\x983\x0b\xd6\xa5\xd7\x13\xcdEw\xcd\xa7\xcb\xe4\x13\ \x10\x9c6~7\xe2i\xa4\xa3?_U6\xe4\xa2\xb2\ \xd9\xed\xedl\xd9\x10~<\xe2\xff;\xb9\x1e\xe4\xd0Z\ \x0b\xa8\xde\xa7\xae|\xd5l\xcf/\xeb\xf2\xe7\xcb\xa5{\ \x06\xbd\x9d\xab\x07\x98\xee\xec\xd1\xffl\xbe\xc7\xf86G\ \xbc\x82L>\xc6\xc12K\xa3\xcbd\xe3\xc7:;{\ g\xeef\xe0\xb4\xd5\xb4=\x07y\x18y\xae\xb0\xea\xaf\ B2\x13\x9aW%.\xa4U}c.1\xf4^\x8b\ W\x8dHl\xd8\x99\xaf\xb2\xa9\x1a\xcc/d]\xc7\xbb\ ;[\x88\x82\xfe7\x0b\xf1\xb5dX\x07\xe9\x17\x8c+\ /\xb1\x05!\xdc\x17\xbf\x9f\xc0\xc5n\x04c\xbe\xd8\x17\ \x8a\xf8\x8fO`\xca\xd3nt\xf5\xcf\xd9\x09Ly\xea\ \x8d\xee\xfehG\x1fYa\xb4s\x93\xe1/\x9d\xfc\xcd\ #\x0b\xff\x1e\xb4\xf4f\xf2v$\x05p\x18n8G\ w\x86c\x83M\xc6\xcc\xc3Lt.a\x0bD\x02\x91\ \x94\x94\xd4\xebz\xda\x90\x9b\x09e\x0e\xa6.A\x9d\xee\ n\xc9\x18\xef\xa2\x1e\xeb\xb7*M\xb2.T\xfeI?\ J\xf9%\xfd\xadP\xdf4\xd9\x86a\x82:\xfd\xa7s\ ^\xae#\xa8\x87\xa4\xf7\xb5\x997\x8a\x1d) \xbc\xd4\ y<\x82\x1c\x86]A\xf8\xf1\xd9H\x0f\x1a\x984/\ w8\xc0$\xf0K\xf98\x9b~ub\xe8\x19\xf50\ w\x0f\xcf\xedFW\x0e\xd4\x83P\x87\xc29\x8b\x89\x81\ ~\x00\xb8@r]6\xd4\x0f\xe9P\x171\xca\x07\xfa\ \xb1\xcf\xfb\xbc~\xecr}\xee\x0c\x96\xb1]IP\xaa\ w6\xf8/\x9b\x80\x9d\xfa\xa6Py\xf8Y\xa8\xfa\xdb\ \x03@\x81x\x96\xeb\x5c8\x22\xbbXa\xe1z\xbd\xbe\ 4Vp*\x81\xd3+\x91l\x17\xab\x1d\xde\x0b`\xc5\ =G\xb8XH|\x1cb#\xd7\x95\xd8\xb5\xd1!\x1b\ \xdd]\xfdaa\xbb/\x18\xe2\x11\x13+\x02E(\xdb\ 1\xe8\x87\x8dt7\x1cA6y\xc1\x12\x8f]\xa6*\ \x19 \xf7\xd0p_{\x19\x07H\x1d\x83\xd3\xab\xa2\xf4\ \x1a\x18]\xcf\xf4\xb37\xf3\xad\xb5\xdc\xfa-b\xf4\x18\ \xab\xa77\xed\x94\xee\x82VgW\xc1B\x99\xe1`\xdb\ U^\xb6\xae\xb8\xcb\xf2H\xe5M\x95\xb9\xc2p\x07U\ \xf5\x8c\xaa\xc7\xa2u\xdf\xdd\xc5\xc5B\xb5\xf5h\xbc\xbe\ \xb8\x0f\xa2\xec\x09,\xdbn\xe5\x97,\x83}\x03>\xae\ \xcd\x5ct\xd6\x03|\x0b\xe3\x8e\xa4\xf0\xcb\xf6*\xb7\xfa\ \xdd\xa8#\x18\xfc\xee\xb7\x5c\xe79\x80d'\xc1V\xc1\ \x82\xccG\x03\x7fq\x9f=-r\x0dL\xefr\xa4m\ \xa9k\xec\xbb\xbbl3^\x1de\xe1Z\xbfD\xb4\xeb\ \xcb\x88\xd5f\x97\xe3)Na\xa1v\xfd\xd0\x153\xb6\ \x07G\xcd\xd1<~\x15\x8c\x1e\xe0\xd8t\x0a\xba[\xb5\ =\x5c\xb5\x0c6\xf12\xfe\xa2\xa2N\xe3\x06\x92\x08\xef\ U\x08\x01\xe3]\x16\xe4\x91\xeee7.\xd0\x084\x8a\ Z\xc5\x01\x9b\xad\xa6\x0d\x8c\xb2&P\x8c;\xa7\xa6\x96\ \xab\xf6\x9e\xa73\x10\xe3\xf7P*\x0d\x80\x18\xedP\x8b\ 4X\xd5\xfc\xbaw\xad\xeeE\x96&\xdb\x9a\xad\xda\x08\ \xd7\xb3}M7\xf4\xa5*\x83((\x83N\xed\x1b\x0a\ E\xb2]d\x1e\xcd\xfd_?\xfe\xd0\xee\xdf0\xf4\xff\ \x9e\xe5\x0f\xdd\xbe\xd4\x0c\xc1]\xb6\x06\xb9\xb4&E?\ 6\x0d}m\xdf\x83\xf2C\xbc\x04\x08\xf5\xe3\xd8?n\ \x96\x09l\xc0\xb6b\xc0\xacq\xeb:\xad\xba\xcdU\xf5\ \xdew\xf4\x81k\x14.c\xddh\xf6\xa9\x84S\xc6O\ z\x90\xbe\x9d\x99\xd5\x13mlAo\x1dp\x00\xa8\x17\ jJ\x8b\x0e\x80\x81\xd6\xb7\xe2M\x82;}E\xf7\xb3\ \xae\xb4\xf6j\x17y\xb6^-\xb3H\xd5\xcd\xeb\xfar\ \xcc\xc3\xa1)%\xef\x1bd\x17\x03\xed\x10\xbdpw\xec\ H*%\x22\x9c\xf3\xfa\x81\x96\xc9\x1b\xeam\xec\xe93\ P\xbb\xe8E\x87\xa0\xe9\xd4\xa3\xa8\xff\xa2q\xf4\xc5\x17\ \xa7\xd4\xc3MF\x983\x89=L\x859o3B=\ >\xc5\xd4\xe1\x1eq1{\xdf\x17o\xde\xbbr5\xaa\ \xd8\x1d\xf8\xfc\xb7jN$\x91W\xe6\xf4\xd7\x9d}\x9e\ ;\xfa\x11\x07Q&\xbd~J\x15\xc0\xad2\xaa\xe3y\ \xd6\x86\x0aJ\xa0\xf2\x04\xb6o\xe9\xb3\x86\x16\x05`;\ \xf3<\xd8\xfai\x96\xaaI\x7f\x9e\x1a\x16=w)\xf1\ \x80^\x1b\x1f\x86\x1d\x8e\x88 tP\xd9\xd8\x1dF\x1c\ \xe9\xbaB\xf0A\xed\xc6\xc4\xcf\xccCl\x90\xe5\x87@\ \xa9zx\x80\x19\xc2\xbd`\xf5\x80 \xea\xeb\x12.\x04\ \x96H\xe7\x85\xa5\xcb%\x14M\x96\xf6}O\xb3G\xc0\ ?\xbd\xbb\xddiz\xe0L\x98@loe\x04;D\ 1\x0a\x07\x85^\xa9\x8b\xb97\x86$\x91\x8e\x10\x04\ Qr\x00\xfe!\xc2\x03\xf5\x09\x98Q\x90\x03\xeaS\xd7\ \x0e3\x07\x0eC.\xffF\xea\xd37*\x8b\xf6\xebP\ \x06\xf5\xfc\xfb\x17\xc8\xe8*L\xe2U\x95\xfd\x80~\xbe\ @@p\x15\xc5\xc5\x0a\x8c\x84\x1f\xa7z6W\xbb\xe9\ \x98+\xf3\x19'z\xc1\x0d\xa9\x03 .20\x22q\ \x96\xfa:#t\xb5\x8c760\xa4\x91\xad\x8d\x8f_\ \xbd\x0f\xb823\xb0\xe3\x14V\xb5j\xd8\x8b_\x7f\xfc\ \xd3X\x85\x0d\x08C\xb1\xf0\xab8Is\xc1\x10\xe0\xcc\ \x87\xcb\xa8h\xdd<*!\xc1\x91`\x1e\xcew\x85\xd4\ %|\x9a%?\xb7\xeb\x11\xc4\xfb`\xf7\xd8\xae\xdc\xee\ \xd6e\xb9'6#\xa9\xe3\xc5\xd6\xa7V\xe1\xa4\xdf\x8e\ \xde\xcd\xb7B\x05\x02\x1f\x88\xd7\xc0\x11W\xc8\x1a\x87\xd5\ #f\xab\xd2\x84\x07\x9fVJ\x81\xe2\xdc\x83\xd5\xdfm\ R\xaaM\xb9K\xab|\xb6}\x17\x84\x0f\x0b\xa3s~\ \x10B(\xb4\xd6\x9e`'\x0b\xa3\x95\x89\x11\xb7\xbf'\ \x9a\xff\xf6\xa33\x19\x14\xeco\xaf\xaa5G\xb0k9\ \xc6\xb2_\xb71;\xcf\x15\x18\xa3\xbe\x81\xd3{\x1c\xb6\ +\x22\xd2}\xde!hG\xa3\x7f\xf8T:\xd2\xf3\x5c\ \xeebe3mK\x10\xc2D\xb8\xdc\xd8\x12\xf3\x83\xbd\ \xa1i\xaaw\x87\xf9\xb8\xd6\xfe\xfe\xc3\x9b\x7f\x03\x8f\xcf\ \x9f\xf4\ \x00\x00\x08\xbe\ \x00\ \x00 \xbfx\x9c\xcdY[\xaf\x9bH\x12~\xcf\xaf`\ \xc9K\x8e\xc6@_\xb9x\x8eO\x94\x9d(\xd1HY\ m4If\x1eV\xabU\x1b\xda\x98=\x18,\xc0\xc7\ v~\xfdTs\x07\xc3\x89=3\xab\x0d\xc9hLU\ uU\xd7W\x97\xae&\xf7\xafO\xbbX{\x92Y\x1e\ \xa5\xc9J\xc7&\xd25\x99\xf8i\x10%\xe1J\xff\xf2\ \xf9\x9d\xe1\xeaZ^\x88$\x10q\x9a\xc8\x95\x9e\xa4\xfa\ \xeb\x87\x17\xf7\x7f3\x0c\xed\xa7L\x8aB\x06\xda1*\ \xb6\xda\xcf\xc9c\xee\x8b\xbd\xd4^m\x8bb\xbf\xb4\xac\ \xe3\xf1hF5\xd1L\xb3\xd0\xba\xd3\x0c\xe3\xe1\xc5\x8b\ \xfb\xfc)|\xa1i\xb0*(\xb6+\xddf\xbaz\xdb\ \xca(\xdc\x16\xedk\x14\xact\x90\xa3\x9c{\xe5{o\ \x83\xb8\x12\xa85/\xfb\x1c\x93h\xaf\x90@\xc8\xdfp\ J\xbd\x85F\x10!\x06\x82\xbf\xec\xae\x5c\x94\x83[{\ \xf8o\x19\xa4~\x22v\xe0\x8d \xfb\xff|N\xc30\ \x96\x1fEVD\x226\xc1je1\x92\xc7\xbf\xa7\xa7\ \x95\x8e4\xa4\xd9L\xab7\x06h%\xf9\xb2\xb1\xbe\xd2\ \xe7\x9cU\xea\xf3\xbd\xf0en5\xf4\xde\xfaf#\xed\ \xfa\x86`\xe6\xe9!\xf3\xe5\x06TH3\x91\x85\xf5\xf6\ \xf3\xdb\x96i 3(\x82\x9e\x9aS\x0c\xba\x07{8\ \xd2\xd2:\xf6<\xcf*\xb9\x9d\xf4\x94\x1cA\x08Y\x8d\ \xc7\xf5\xd6\x9e\xc2+%\xb3`3k\x1b\x11\x0b\xa0\x07\ \x09#?'\x858\x19I\xfe\xb2\xb7\xd4\xf7\xdb\x95\xbe\ J\xa2\xe8I\xfa\xe9n\x97&y\x05\xde@8\xe8\x84\ \xf7\x87,.%\x02\xdf\x92\xb1\xdc\xc9\xa4\xc8-\x08\xbc\ \xa5?\x80\xfc} 7\xb9ZW\xe5\x8fz\xa3\xdc\xc6\ %\x0f\xb8\x00\x87\x14\xd9\xfbL\x04\x11\xac\xab\xe4*\xc9\ !\x87Q\x97\x1aTo\x05\x9aL\xf3\xd38\x96>\xe4\ \xa8\x88\x8f\xe2\x9c\xd7jAq^\xa4\xfbF\xbaN]\ \xa08\x14\xbb\xae\xde\xd1\xd3\xcd&\x97\xb0\x1a\xf5hy\ q\x8ee%n\x80\xfa4[\xbe\xa4\xcc\xe6\x82\xfdX\ \x92RH\xa0\xa88/\xb1\xaeY\xdf\xb6\xe6\xa1\x09k\ \xf8yk\x0e\xf16\xfef\xce\xda\xbd5D\xe6y \ \xe7pj\x04\xca|\x5cn3\x09i\xf3\xf2y\xc8\xa7\ b\xe2\x19\x9d\x7f'\xbc\xd2\x89c\x12F9%-\xf5\ \x0cT\xceL\xee\xba\x18w\xd4\x13\x01Y|!\x0bT\ \x8a\xc6\xb2am\xeeK\x12\x15P0\x87\x5cf\x9fT\ \x11\xff3\xf9\x92\xcb\x0b\xa9\xcf\x99Hr(\xd5\xddJ\ /\xd4\xcf\x18\xba\xe1+\xa36E\x17\x06\xa9\xd5\xdfu\ \x80\xfe/\xa0\xf3\xa8\xe1=\x0b\x9d\xe7\x19\xce\x00:\xe6\ \x9a\x0e\x86M\x0e\xa1c\x1c\xf6\xcb\x1d\x97\x0f\xa0c\xe8\ BV\x01\xca*Y\xe7\xaf\x84\x0e\x90s\xb9\xcd\x5cg\ \x81M\x86\x19\xc1\xd4\xfe\xf3\xd0M\x02\xa2\x10\x9b)\xa8\ \x89\x22!\x88\x09\xd7\x19\x17\xc9\xf3\x95\xdd\xd4%\x18\xe3\ \xea\x08\x9d\xab\xdf\xab;\xc0\xf3\xa5\xdd3\xe7\x18\x7f\xb4\ \x80/\x90\xa2\x88;7\xe0\xe4\x0aI\xe8\x15\x1bG&\ \xaa\x9e\x09\x07\xc0\xa4w\x13ZLz\x02\xd9W\xa0\xf5\ \xacQ\xfby\xcc\xee-u\x98\x94\xbf\xda\x19B\x9d\xf0\ \x81\x9a\x12\xba\x13g-\xdaT\xdf\x8bP\x96;\x84\x82\ \xdd\x94O\xcdX\xa7Y \xb3\x86e\x97\xcf\x80U;\ Q\xcdb\xb5\xee&\xc9\x95\xd6\x96\x8f\xa6\xf9\xf9V\x04\ \xe9\x11Jt\xcc\xfc\x9a\xa6Pn\xaeI\xf8\x98\xe3\xc3\ \x98C\xb1I\xcb\xe7\x82y.\x99\x1eT\x8d\xc7.\x98\ \x87,\x03\x8c\x8cX\x9c%\xf8\x13\xda\xae\xd7\xb4\x84|\ \x9b\x1e\xc3L\xc1Rd\x079^\x08\x13\xd8A\x1d\xdf\ \xc6\xa1\xea\x17\xfb\xd3XB\xad5\xd6k5\x82M)\ 8F\x09\xb8i\xd4S$f\xec\x02\x8cZ\xa2\x99,\ ]v\xe1Z-q\xeaJw\xcc:\xcf\xb3v\xe2\x14\ \xed\xa2\xaf2\xe8*\xb1\x15\xc9\x13\xb17\xc28]\x8b\ x\xa5oD\x9c_l\xbf\xcc\x8f\xad\xf4\x1fe\xb6N\ E\x16(;u\xfe\x0d\x10h\x92\xb58\xabi\xf3t\ V\xb4AoS\x04\x8aP\xd7\x88\xe5n\xaf\x06\xcfr\ ~g-\xf5)\xca\xa3\xb5\xaa\x9d\x1e\x96 \x9b\x08 \ \x06#\xaa\xda}-\xaf\xb4\xabr\xc8\xd3$>\x8f\xc5\ *+\x0a=\x93\x8f\xa9\xe7\x8aZ\x15\xd5\xbduY5\ %}'\x0b\x11\x88Bt%\xd4P`pc\x0d \ 0F.\x7fy\xfb\xae\xed\x09\xbe\xbf\xfc-\xcd\x1e\xbb\ :V\x02b\x9d\x1e \xcam\xbbR\xe3\xa0\xbfTG\ \x8c(\x1e\xa2\x1d\xc0\xad\xc6\xd7\x1f`\xa4\x84bn\x19\ \x03a\x85q\xa7\xb4R\x9b\xc9j\x22\x9f\x1cA\x03\x7f\ \x17\xa9E\xd6\xa7\x22\x8a\xe3\x9f\x95\x91^\xef\xaa\x95F\ E,\x1f>\x8abk|*R\xff\xb1\xb4^\x11\x07\ r\xe0\xb4| \x08s\x039pa)\xc5J\xda@\ *\x93pR\xc2u\xe7\xa17wo2)}\x11\x1c\ \xe5\xba\xdc\xd71z\x8c\xe0\xce\x11\xc8\x93\xb9\xdf\xee_\ \x97\xa6Vo\xb2\xe2\x08\x90\x95Z[\x1d\x03\xcd\xfb\xc3\ :\x8e\xf2\xad\xcc\x1ez\x10(\xa8\xdf\x84\xed\xc1q\xe9\ \xd7;\xb0\xfd\xd3\x9b\xb7SN\xa9\xb0_./%'\ l)\x95Q\x00\xa2\xd1&\x02z\xad\xd7\xca3\xdf\xfa\ G\x1aX\x0a?\xeb\xfd!\xb2~\xa9\xe3\x01\xd7*\x1f\ \xae\x0bV\x07\xac\xba\xb9\x95\xda{j\x86\xd8\xa9>\x90\ \xff\x11\xf7\xb4\x0f\xef?~ ?\xdc\xe8\xe5\xd8\x9e\xb2\ \x16G\xbeLrY\x86/\xaf\xe3\x17&\x872p~\ \xba\x87\xd3mSX\xb1\xccaz2\xb7\x85\xca\xd5\xde\ \xa2\x817\xe0}\x91E\xebC\x91\xde\x16\xb1\x7f\x890\ ;C9\xff[{\x13\xcb\x13\xdc\xebe\xa6\xbd/)\ 7\xba7\xb1\x81RV\x95fs\x92\xf6*\xf7\xdej\ J\xbb|\x0b\xbb\x92/\xcf\x8e\x8b\x16\x1a\x8b\xb5\x84\xe6\ \xf9A1\xb5\x0bn\x98\xa5\x87\xfd.\x0dd\xbd\xbci\ \x15a\xdb/\xbb\x01\x13\xea<\x8bN\xaf\xa0\x1d\xc1t\ \xc2=\xc6\x17H\xfd19\xa3\xc8!\xf6\x82\xb8\xa6\xcb\ \x5c\x0fy\x0b\xd7\xc40\xf1\xd8\xae}7l\xb1\xe5\xa9\ \xd6:\x19v\xe8\x94\x5c\xcfvz3E1y)@\ &\x86#\x0an\x03|\x01\xbf\x91\x0d\x85\xee!0\xd3\ \xc34\xec\x07\xacT\x8c\x11\xc2\xfa \x16\x03\x99\xc6\xbc\ \xe3\xea\xa3`\x8f\xc4&\xd1\x80\x19\xdbe\x98:\x00\x07\ \x5cY<\x8c\xa8\xed\xd8\x80\x8b\xc1M\xdb\xe1\xcc\x81\xfb\ \x0b\xf6L\xcc\xe0\x02}\xa7\x8f\xf5\xd5~\x93\x91\xe1)\ \xd3\x8d0\xbf\x14\x9e\x16o\x16\xb0\xa9\x05\xea4\x80)\ \x7fj\x15\x5cLV:\xec\x1e\x13\xec9\x18_\xec\xb9\ z\xd4\xa4\x03nA\xdc1\x9f\x11i\x06\x06\xb84:\ 6$\x89=#W\x8f\x1e\xdf\x12S\xde\xa8={\x98\ \xcdH\xd4Sm;\xbd\xfe\xb8\x81\xd3d\xf9\xd2\xf7\xd5\ \xb8Z\xbet\x93-\x0c\xbaY\xfa(\x97/\xaba\xb6\ ~\xad\xc6\xa0%i^\xd5\x91\x0du\xb2\x84*I\x82\ >\xf1\xbfi\x94\x0c\xa9p\x82\xc9,\x86I\xa6X\xb2\ \x86\x16\x08\x18\x22\xb3L\x9c\x97I\x9a\xc8\x86:\xf55\ \xa2\xff|#2\x14P\xb7\xa9\x83\xe6p\x82\xc80\x0c\ e\xe2\x92Y\xa0\x9a\xc8`\xc7t\x1dF\xe8\x5c\x04\x9b\ \xa1\xf0\x1bbmd\xc8m\x91)A\x99\x09\x8b\xdc\x10\ \x8fx\xdfOX\xee\xad\xf0\xb6\xb2\x9b\xc9\xe3\xc9\xb6\x06\ \xdd\x82\xd0:\xfb\xefn\xad\xd6\x99\xac\xaf\xefs\xdfa\ \xd6\x7f#\x89z\x1f\x97\x86\xcf\x95}\xe2\xda\xb6sE\ \x07\x1b6\xc2\x9b\xab\xf5\xf6\xacoo\xfe\xdfaX\xe6\ j\xfb\xca&qm\xcf\xb9\xa2}\x0d\xbb\xe0\x95\xd5:\ E\x9a\x0e\x9dR\x0f\xb3\x0c\x1c\xcb\x88M\xe5b\x958\ \x04sb\xd3\x09v\xe3(\x83\x01\xc0E\x98M!\xdb\ \xa5r)2\xa5\xa6\x05\x9eM\xc1p{j}O\xe7\ \xdc(\x16\xe3\xd7=\xdcEF\x03Z\xf7u2\x81\x9d\ \xc2\xa8l\xf8\x87\xecI\x14\x87L\x0e\xbf\x176\xd0)\ \x1d\xdeE|\xd4\xc5X3\x88g2l;\xde\x82:\ &r(\xa6\x9a\xafAB\xc1 \xc9\xc9\x02i\x06P\ ]\xa7\xfa\xeel3\xc7\xe3\x1d\x85\xabo\xb8\x8e\xcb\xb4\ _5\x18?m\x06\x8f\x0b\x8b\xa1\x7fC>2\xcfs\ =\x0d~\xb8\xc8q[Y\xae\x8d\x16sm\xab9\x08\ \x8a\x80\x22\x8eaqmXY\xae$\x11_\xd4\x96\xed\ \x8e\xd2.~\xd2(1\x11\x22\x8e\xc7J\xcb\xada\xa3\ \xb6L\x17\xed.\x8d\xf1r\xa6}\x1d!R'Ru\ f\xb8\xeb\xb5\xb3A\xcf\xa6\x0c\x1cS\x1cc\xfcWe\ \xc3 \xf4\x17\xf5xR\x95\xe8\x98\x0c\xe6|g\x18J\ \xf5-\xcd\xa4\xdc%\xc4\x1d\x96\xc7\xc0\x9f\xea\x83a\xeb\ O\xfb\xfdy\xe0\x0f\xcc\x19\xdc\xb9\xde\x9f\x81\xb5\xe6\xdf\ ^]\x932J\xeda\xa9\xb7\x07\x113!p\x94\xb8\ \x03nS\xdf\x98\x90\x11$c\x14J_\xa1\xd7\xb9|\ \xa8\xbfD\xc76\xb9\x87=o\xd62\xe1x\xdc\xba\xeb\ M3fb\x8e9\xf5&\xb7\xe5\x8d\x9c\x99\x992\x1c\ \x1a\x10|\xd3\x94\x81M\x84\xb9\xe3\xfe\x1f:\xcf\x05\xb0\ \xad\xaf\xae}C\xe0\x9e\x8dy?\xfdz;\x9a\xab\xa5\ ?\x93{\xb3%0\xac\x9a\xde\xbf\x014\xb5V\xff(\ \xffw\xaf\xbe\xe6=\xbc\xf8\x1dD:\xb8\x82\ \x00\x00\x0b\x1b\ \x00\ \x004\xefx\x9c\xe5Z[s\xdb\xc6\x15~\xf7\xaf@\ \xe9\x17{J\x80{\x07\x16\x92\x9cI\xebI&3\xe9\ $\x13;\xd3\xf6I\x03\x01K\x0a\x15\x08p\x00P\x22\ \xfd\xeb{vq'A\x89\xa4i5m\xc58\xe4\xee\ \x9e\xbd}\xe7\xbag\xf7\xfa\xbb\xcd2\xb1\x1eU^\xc4\ Yz3\xc1\x0e\x9aX*\x0d\xb3(N\x177\x93\xdf\ ?\xff`{\x13\xab(\x834\x0a\x92,U7\x934\ \x9b|\xf7\xe1\xcd\xf5\x9fl\xdb\xfak\xae\x82RE\xd6\ S\x5c\xde[?\xa5\x0fE\x18\xac\x94\xf5\xee\xbe,W\ \xfel\xf6\xf4\xf4\xe4\xc4u\xa5\x93\xe5\x8b\xd9{\xcb\xb6\ ?\xbcys]<.\xdeX\x16\xf4\x8a\xca\xfb\x9b\x89\ `\x13]\xbaW\xf1\xe2\xbel\x8bqt3\x01:\x8a\ \xbf2U\x19p<.\xb7>\xbe\x9at}\xb2\ \xf9\xbcP \xd1\xa8Wg\xc4\x1az\xc0\x5ctb\xcd\ \x8e\x9fm>\x9f\x87\xf3\xf0\x88\xd9\xf0\xf8l\xbc\x9d\xed\ z6\xdc\xf6\xc9(\x09z\x02J\xf39\x08\x10:\x1b\ %\xc1ODI\xaa\xc0;\x1b%\xe1\xbe\x84\xd22\xc8\ \x1fT\xde\xa2\xd3\xd8 \xe8\x1e>\xe8q\xbe\xcf\xf3\xec\ \x89\xfc\xac\xd2\xa8\x9d \xcbu\x7f\xb04\xeb2k+\ s5\xffg\x7f\xcfP\xfeG\xbf|`\xacz\xcb\x19\ \xd8\xbcy\x92=\xf9\x8fq\x11\xdf%\xaa\xe3\xc7*(\ \xef\x87;\xd35\x8c\xbbl\xb2\x07\xdc\xdf\xd5\xd3\x0b\xa2tJ\xd8\xf8\x95\x01\ \x11?5lt\x95\xab\xceF\x89\xbf\x186\xb6\x8a\xba\ \x82c\xd8\x0a4\x15B\xfa\xd6@5\xa7\xadr\xab\x8f\ LCR\xda9\x8f\xee(\xb7\xba\xdd\xdcL\xa8#<\ F\x04\xd8x\x1f\x0c\x13BBHI\xe07\x1e\xed\xb0\ \xbd\x99\xd8\xc4u\xc0epp\x03\xbee3\xee\x10\xe9\ z\x8c\x1d\xec\xf2\x05\xba0\x01\x0e\x88\xbb.\xd7]0\ 8\x18.\x99\x10\xe3]\xea\xf5\xda`\xbd\x17\xb1>h\ \x9a\xd5\x80[\xd4\x7f\xee\xb0\x8f6\xb2\x1d\x12\x14I\xd1\ !\xf8\x0d\xb0\xb21u\x18\x15D\x98%1\xc7%\xba\ \xf0\x1cX\x08\x1a%\x07\x9f\xabw\x8e\x0e\xe1\xc3\x180\ \xc1u\xe9\xcb\xa3\xee\x81\xc3u\xb8\xe0R\x0d\xbft\x04\ \xe5\x94K\xef\x05\x8c\xd8\xb7\xc5\xc8H\x02z\x09\x14\x0c\ j\xf9\x1c$\xc4{f\x98Q\x11aGI\x08\xc6c\ \xbb\x07Gm\xab\xf9\x1c\x88\x9a\x8eU\x094\xf3\x01N\ \xc0e\x90\x0cG\xec\xe8)(L\xd7V\xdc\xd6a\xc1\ \xcd\xa4\xcc\xd7\xaam\x80\x0e\xa5\xcaS\x1d\xb4A`\x04\ \xff`g\x18\x0d\xdc}\x98\xad\xb6\x15\xd2E\xacc\x8f\ [\xf0\xea\xaa\x0c\xefU\x87\xf4*\xcfV\xb7\xc6\x8d\xf7\ -\x88\xa9\xb8\xdd\xde\xe6*\x81X!H\x8anZ\x9d\ \x1a1\x89\xa5\x0e\xe6\x14b\x81 \xb9\xdd7{%D\ <#\xd5f\xceu\x1a\x97\xc5\xee\xe0\x10\x08\x951\xcc\ }\xdbnn\xd8>_\x17\xea\xb6\xcc\x12\x05!H8\ \x0c#\x0e\x18\xfb.\x0aI\x12\x03~\x90<\x05\xdbb\ \x00\xfd\xb0+\xd8\x11\xf7\x14\x9f\xa9\xff\xe8\x99\xde\x00\xe6\ \x92'F\x16\xfb\xb3\xa1c\xbd\x81\x0b\x91\xfbE\x8e\xc7\ \xf8\xa2'\xa3\xdd\xd1\xce\x8c\x8a\xa9\x94|\xf74\xa3\x15\ \x83Om\x0e\x0e\x828\xdc\x14\xb8\xa9\xfcv!q}\ ^A\x8eg\xce+\xfa\x1b\xb4\xf2\xd5\x0e\xad\xf8\xd3\xe5\ 2\x17\xc3\xb1\xce=\xac \x8c\xfe8l1G\x15\x93\ O0g\x16\xacK\xaf\xc7\x9a\x8bj\xcd\xa7\xcb\xe4\x13\ \x10\x9c6\xfe0\xeci\xb8\xa3\xbf_\x957\xe4\xa2\xbc\ \xd9\x1d\xedl\xde\x10~<\xe2\xff;\xb9\x1e\xe4\xd0Z\ \x0a\xa8\xd6S!_5\xdb\xf3\xcb\xba\xfc\xf9r\xe9\x9e\ \xc1h\xe7\xca\x01\xa6;:\xfa\x9f\xcd\xf7\x18\xdf\xe6x\ \xaf\xc0\x93\x8fq\xb0\xcc\xd2\xe82\xd9\xf8\xb1\xc1\xce\xd6\ \xcc\xdd\x0c\x9c\xb6\x9a\xb6\xeb \x17#WxV\xfd\xd3\ \x93\xcc\x84\xe6U\x89{\xd2\xaa~1AL}\xaf\xc7\ \xabF$6h\xe6\xab(U\x83\xf9\x85\xac\xeb\xf8p\ g3\xd1\xa3\xff\xcdL|-\x1e\xd6A\xfa\x05\xe3\xca\ K\xa8 \x84\xfb\xde\x1f'p\xb1\x1b\xc6\x98\x1f\xf6\x85\ \x22\xfe\xe3\x13\x98\xf2\xb4\x1b]\xfdwv\x02S\x9ez\ \xa3\xbb?\xdb\xd1GV\x98\xed\xdcd\xf8K'\x7f\xf3\ \xc8\xc2\xbf\x07)\xbd\x99\xbc\x1dI\x01\x1c\x86\x1b\xce\xd1\ \x9d\xe1\xd8`\x931s1\xf3:\x97\xb0\x85J\x02\x91\ \x94\x94\xd4\xedF\xda\x90\x9b\x09e\x0e\xa6\x82\xa0Nv\ \xb7d\x8cvQ\xcf\xf5{\x95&Y\x17*\xff\xa4\x1f\ \xa5\xfc\x92\xfe^\xa8o\x9al\xc3\xb0@\x9d\xfe\xd39\ /\xe1x\xd4E\xd2\xfd\xda\xcc\x1b\xc5\x8e\xf4 \xbc\xd4\ y<\x82\x1c\x86\x85G\xf8\xf1\xd9H\x17:\x984/\ w8\xc0\xe4\xe1\x97\xf2q6\xfd\xea\xc4\xd03\xe2a\ \xee\x1e\x9e\xd3F!\x07\xe2A\xa8C\xe1\x9c\xc5\xbc\x81\ |\x00\xb8P%\x04\x1b\xca\x87t\xa8@\x8c\xf2\x81|\ \xec\xd3>/\x1f\xbbT\x9f;\x83elW\x12\x94\xea\ \x9d\x0d\xfe\xcb&`\xa7\xbe)T.~\x16\xaa\xbez\ \x00(\x10\xcfr\x9d\x0bGd\x17+\xec\x09\xb77\x96\ \xc6\x0aN%pz%\x92\xedb\xb5C{\x01\xac\xb8\ \xebx\x02{\x12\x1f\x87\xd8\xc8u%\x166:d\xa3\ \xbb\xab?\xec\xd9\xe2\x05C{Z\xe4\x1a\x98\xde\xe5H\xdbS\ \xb7\xd8ww\xd9f\xbc9\xca\xc2\xb5~\x89h\xd7\x97\ \x11\xab\xcd.\xc5S\x9c\xc2F\xed\xfa\xa1+fl\x0f\ \x8e\x9a\xa2y\xfc\xea1z\x80b\xd3\x09\xe8n\xd3\xf6\ p\xd32\xd8\xc4\xcb\xf8\x8b\x8a:\x89\x1bp\x22\xbcW\ !\x04\x8cwY\x90Gz\x94\xdd\xb8@#\xd0\x08j\ \x15\x07l\xb6\xban`\x94u\x05\xc5\xb8sjj\xb9\ j\xefy:\x031~\x0f\xa5\xd2\x00*\xa3\x9d\xda\x22\ \x0dV5\xbd\x1e]\x8b{\x91\xa5\xc9\xb6&\xab\x14\xe1\ z\xb6/\xe9\xa6~\xa9\xca \x0a\xca\xa0\x13\xfb\xa6\x86\ \x22\xd9n2\x8f\xe6\xfeo\x1f\x7fh\xf57\x0c\xfd\xbf\ g\xf9C\xa7\x97\x9a \xb8\xcb\xd6\xc0\x97\xd6\xa4\xe8\xc7\ \xa6\xa1\xaf\xed{P~\x88\x97\x00\xa1~\x1c\xfb\xe7\xcd\ 2\x01\x05l\x1b\x06\xc4\x1a\xb7n\xd0j\xd8\x5cU\xef\ }G\x1f\xb8F\xe12\xd6\x9df\x9fJ8e\xfc\xa4\ '\xe9\xdb\x99Y\xbd\xd0\xc6\x16\xf4\xf6\x01\x07\x80z\xa3\ \xa6\xb4\xe8\x00\x18H}\xcb\xde$\xb8\xd3Wt?\xeb\ Fk\xafu\x91g\xeb\xd52\x8bT\xdd\xbdn/\xc7\ <\x1c\x9aR\xf2\xbeAv1\x90\x0e\xed\xa4\xdb\xc5/\ :$L\xa3KQ\xffe\xe2\xe8\xd86q(2\x9f\ )8x*\xf4\x87\xbd\xef\xb3$\xef]\x93\x1a\xf1\xe9\ \x0ei\xfe[5'\x92\xc8+sb\xeb\xce+\xcf\x1d\ \xd7\x88\x83(\x93.\xe2\xa4\x9f\x09\x05L\xaaD\xe8x\ z\xb4\xa9\x05\xde\xa9<\x01\xad+}\xd6\xd4E\x01\x98\ \xbc<\x0f\xb6~\x9a\xa5j\xd2_\xaaFA/_J\ <\xa8\xafm\x06\xc3\x0eG\xc4#t\xd0\xd8\x98\x0bF\ \x1c)\x84\xe7\xf1A\xeb\xc6\x84\xbd\xccEl\x90\x9c\x87\ \xf8\xa6z/\x80\x19\xc2\xbd\x18s\x07\xf7\xe6\xc5\x5c}\ \xcb\xc1=\x0fK\xa4\xd3\xb9Rp\x09E\x93\x5c}\xdf\ \x13\xc8\x11\xfcO\x1fnw\x99.\xf8\x00\xe6!\xb6\xb7\ 3\x82\x1d\xe2!o\x14\x0e\x0a\xa3R\x81\xb9;\x86$\ \x91\x8e\xe7\x11D\xc9\x01\xf8\x87\x08\x0f$(`FF\ \x0eHP\xdd:<\xf0;\x0c\x09\xeebA\xbf\x8d\x04\ \xf5\xcd\xc1\xa2\xfd9dC\xbd\x85\xfe\xd5/\xba\x0a\x93\ xU\xe5-`\x9c/\xe0\xca\xaf\xa2\xb8X\x81z\xfb\ q\xaaWs\xb5\x9bH\xb92\xdfq\xa2\xf7\xdcTu\ \x18\xc4E\x06*\x1ag\xa9\xafs9W\xcbxc\x03\ A\x1a\xd9\xdal\xf8\xd5\xcd\xfe\x95Y\x81\x1d\xa7\xb0\xab\ UC^\xfc\xf6\xe3_\xc6\x1al\x00\x19\x8a\x85_E\ 8\x9a\x0a\xa6\x007<\xdcFU\xd7\xad\xa3\xe2\x13\x04\ \xf3\xf3p\xbe\xcb\xa7.U\xd3l\xf9\xd9T\x8d\x83\x84\ \x14l\x97mw\xeb\xb2\xdc\xe3\x9aa\xd4\xf1\x5c\xeb\xd7\ Vq\xa0\xdfN\xde-\xb7\x02\x05\x22\x16\x08\xb4\xc0\x83\ V\xc0\x1aO\xd3\xab\xccV\xa5\xf1\xeb\x9fVJ\x81\xdc\ \xdc\x83\xb9\xde\xedR\xaaM\xb9[W9[\xfb.\x08\ \x1f\x16F\xe4\xfc \x84\x18f\xad\xcd\xecN\xfaD\xcb\ \x12#\xa2\xaf\x15\xb5\x22\xb9\x0e%\x8cx\xb4o\xaf\x1a\ \x0d\xe4\x12N\xea`y\xfa\xdd\xb4\xd22PL\x97\x0d\ \xd4Vk9u\x1d\x97b:\xb0ncYK)\x88\ Vz\xa2o\xf6\x5c\x82\xb8\x87\xcd\xd5\x0e\x85\xf3\x9b\xcb\ \x84\xd0\xd6\x84S!9aC\xe3T+\x87\xf9\xba\xd6\ \x8e\xfa\xc3\x9b\x7f\x03\x7fS\x8f\xb4\ \x00\x00\x0b9\ \x00\ \x00:\x1dx\x9c\xe5[[o\xdb\xc8\x15~\xcf\xaf`\ \x95\x97\x04\x15\xa9\xb9_\xb4v\x16\x8b\x0d\xb6\x08\x90b\ \x81&\x8b\xb6O\x06M\x8ed5\x14)\x90\x94-\xe5\ \xd7\xf7\xcc\x88\x12I\x89\xb2.\x96\xd5\xb4u\xe2H3\ s\xe6\xf6\x9d\xeb\x9c\x99\xdc\xfc\xbc\x98&\xde\xa3\xc9\x8b\ I\x96\xde\xf6p\x80z\x9eI\xa3,\x9e\xa4\xe3\xdb\xde\ \x1f_\x7f\xf3U\xcf+\xca0\x8d\xc3$K\xcdm/\ \xcdz?\x7fxs\xf3'\xdf\xf7~\xcdMX\x9a\xd8\ {\x9a\x94\x0f\xde\xa7\xf4[\x11\x853\xe3\xbd{(\xcb\ \xd9p0xzz\x0a&Ue\x90\xe5\xe3\xc1{\xcf\ \xf7?\xbcysS<\x8e\xdfx\x1e\xf4\x8a\xcb\x87\xdb\ \x9e`=[z0\x93\xf1C\xb9)N\xe2\xdb\x1e\xd0\ Q\xa4\xb8+7\x16\x88W\x04\xd5\xc8\xc3fK@\xbc\ w(D(\x1aqJu\xdf#\x88\x10\x1f\xc1_\xf6\ \xdeu*`[3\xf8\x1d\xc6Y\x94\x86S\xd8MH\ fw\xbf\xa4\xe3\xc4\xfc\x9a\xa5E\x99\x87\x93\xb4\x0c`\ ^G\x0d\xc0\xa4\xc5p=\xd1mo\xdf\xbe\xecH\xc5\ ,\x8cL1X\xd77\xfa\xaf\xe7\xdc\xf4_W\x04E\ 6\xcf#3\x82!L\x90\x9ar\xf0\xf1\xeb\xc7M\xa3\ \x8f\x82\xb8\x8c\x1b\xc3,\x12\x18\xbb\xb5\x86'\xeaf\xc7\ Z\xeb\x81k\xad\xa9\xbb\xe8\x08Bh\xd0\xde\x1a\x94\x8e\ \xa4\xcc\xe3\xd1\xde\xb9\x11\x19\x00\xca@\xe1\x17\xcb\xb4\x0c\ \x17~Z\xbcmt\x8d\xa2M\xcf\xc8\xca\xcb\xe4\xd1D\ \xd9t\x0ap\xaf\xc0k\x11\xc75\xf1l\x9e'\x8e\x22\ \x8e\x06&1S\x93\x96\xc5\x00x<\xe8}\x00\xfa\x9b\ \xd8\x8c\x0a\xdbo%*\xb6\x04\xb2\x22]\x1b\xb4\x02\x1c\ &\xcc\xff\x92\x87\xf1\x04\xfa\xad\xe8\x1a2\x13eIb\ \x22\x90\xb60y\x0a\x97EoC\x00C\xb5\xbbR\xbd\ \x19\x14\x86-\xcal\xb6\xa6\x05i*\x97\x09\x88\x85\xad\ \xf4a\xc4,\x1f\xbe%\x88\x85J\xfe\xe4\xaa2\x10\x89\ I\xb9\x1c\xe2^\xdd%\x1b\x8d\x0a\x03\xf3\xa2F\x9d\x13\ u\xe8\x00S\xe9\x9e78~2I\xf4(\x1a\x1d\x9e\ \x0cwN\xa6\xf1f\xb2\x9bA{\xd3\xcf\x83\xb8\x8b\x91\ \x92\xf8\x14\x8c@\xbeF\xdb\xcb\xfe\xe9X\x90\x94\xa4'\ \x814\x1a\x01F\xd1\x11\xb3u\xa2\xa4$\xbf\x1cJ\x82\ \x9e\x80\xd2h\x04Z\x88\xceFI\xf0\x13Q\xd2&T\ g\xa3$\xe4!\x94\xa6a\xfe\xcd\xe4;\x8a\x08\xdd\xa3\ ov\x9c_\xf2<{\x22\x9fM\x1ao&\xc8r\xdb\ \x1ftt^f\x9b\xca\xdc\x8c\xfe\xd9\xdc3\x94\xff\xd1\ ,\xef\x19\xab\xdar\x06\xceb\x94dO\xc3\xc7I1\ \xb9OL\xcd\x8fYX>\xb4wfk\x18\x97\xac\xb7\ \x03\xdch\x92$~>O\xcc\xd0<\x9a4\x8bc\xc0\ -\xcf\xbe\x19\xdfy\xb4!\x0a\x04\xe1\xeb*\x0b\xc6\xbf\ \xb2I:\xcc\xb3yc=\x9e\x073\xfc\xd5S\x81\xc4\ \x8a+\xa9\xfa,@\x94J\xca\x89\xe7\x93\x80 I\x94\ \xe6}\x14 ,\x10\xa6D\xac)\x15\xeb\xfb@\x8a\xb0\ DRy\x91\xe7\xe3@2\xce4\xd4\x93\x80J\x82\x04\ \xd2\xae\x92r\xc6\x90\xea\xf3@` \xc0P)\x8c/\ \xfb\x0a\xa6\x81\x16\xea}o,\x05\xdc^Z\x80\x1b\x9a\ \xde\xf6\xa6a\x99O\x16\xef`\x04\xdcG\xf0\xc7}Y\ \x95\xde79_\x1b\xd24\x05C\x9a\xe5~4\xcf\x1f\ \xc3r\x9e\x1b\xcb\x8dZ\x18V|?M\x08 \xda\xc8\ \xcb\x8b\x89A{\xb4\xf3\x05\x01\xff?\x0a\xc2Z\x0e\xec\ \xe7\xb5\xa4\xe0k>\x09mD\xf6)\xfd\xf2r!\xe8\ \x1a\xec\x5c\x19\x10\x9a\xb4\xf96\xf5x e\x1fy\xbe\ \x0a\x04\xefs\xcf*\x0c\xf2\xaa\xc2\xf7\xe3\x05f\xf8\x16\ \xa1\xca\xdc7\xe4\x07\xcf\xcan\xe6\x00`\x89y\x07!\ \x22\xe9\xdb\x7f.\xc0\x93\xa3\x9d\x98F\xa781\xc6\x14\ '\xf1\xb9NL\xa3\xd3\x9c\x18BD\x1c\x15Xt\x07\ D\xe8\xa0\x13;\xde\xd5s}\x02J(~Q@$\ \xf0iQc\xac\xf0\x08\x9f\xef\xea\xe9\x05Q:%l\ |a@\xc4O\x0d\x1b\xa5\x91\xe6l\x94\xf8\xc1\xb0q\ \xa3\xa838\xbf\xce@S\xe1\x5c\xb41P\xebcj\ \xb9\xb4\xe7\xce6)\xad\x9dG}\x06\x9e\xdd-n{\ 4\x10\x8a\x11\x016~\x08\x86\x09!!\xb4&\xf0\x1d\ wvX\xde\xf6|\x22\x03p\x19\x1c\xdc\xc0\xd0\xf3\x19\ \x0f\x88\x96\x8a\xb1\xbd]\xbeC\x17&\xc0\x01q)\xb9\ \xed\x82\xc1\xc1p\xcd\x84\xe8\xeeR\xad\xd7\x07\xeb=\x9e\ \xd8\x13\xba[\x0d\xb8E\xfb#\xdb}\xac\x91\xad\x91\xa0\ H\x8b\x1a\xc1W\xc0\xca\xc74`T\x10\xe1\x96\xc4\x02\ Il\xe19\xb0\x104j\x0e>\xd7\xee\x1c\xed\xc3\x87\ 1`\x82\x94\xf4\xf0\xa8;\xe0p\x1b.Hj\xe1\xd7\ \x81\xa0\x9cr\xad\x0e`\xc4^\x17#'\x09\xe8\x10(\ \x18\xd4\xf29H\x88zf\x98N\x11aGI\x08\xc6\ ]\xbb\x07G\xed\x9b\xd1\x08\x88\xd6\x1dW%\xd0\xcco\ &1e\x98\xb4G\xac\xe9)(L\xddV\xdcUa\ \xc1m\xaf\xcc\xe7f\xd3\x00\x1dJ\x93\xa76h\x83\xc0\ \x08~ag\x18\xb5\xdc}\x94\xcd\x96+\xa4\x8b\x89\x8d\ =\xee\xc0\xab\x9b2z05\xd2\xb3<\x9b\xdd97\ \xde\xb4 \xae\xe2ny\x97\x9b\x04b\x850)\xeai\ m~\xc9e\xe4j\x98S\x88\x05\xc2\xe4n\xd7\xec\x95\ \x10\xf1tT\xbb9\xe7\xe9\xa4,\xb6\x07\x87@\xa8\x9c\ \xc0\xdcw\x9b\xcd\xb5\xdbG\xf3\xc2\xdc\x95Yb \x04\ \x89\xdaa\xc4\xc5\x12-`GNI\xb4\xb8p\x89\x9e\ \xe9\x0d`\xae\xd32-]\xb3\xa1c\xbd\x81\x84\xc8\xfd\ \x22\xc7c|\xd1\x93\xd1\xf6hgF\xc5Tk\xbe}\ \x9a\xb1\x8a\xc1\xfb>\x07\x07A\x02\xee\x0a\xdcU\xbe^\ H\x5c\x9dWP\xa0\xdcy\xc5~\x82V^\xed\xd0\x8a\ \xbf\x5c.s\xd1\x1e\xeb\xdc\xc3\x0a\xc2\xe8\xc7a\x8b;\ \xaa\xb8|\x82;\xb3`[\xba\x1ek.\xaa5_.\ \x93O@p\xda\xf8a\xd8\xb3\xe6\x8e\xfd\xbc*o\xc8\ Ey\xb3=\xda\xd9\xbc!\xfcx\xc4\xffwr=(\ \xa0\x95\x14P\xab\xa7B_5\xdb\xf3\xfb\xbc\xfc|\xb9\ tOk\xb4s\xe5\x00\xd3-\x1d\xfd\xcf\xe6{\x9co\ \x0b\xd4\x15x\xf2q\x12N\xb34\xbeL6\xbek\xb0\ \xb35s;\x03g\xad\xa6/\x03$1\x92By\xd5\ W\xa5\x99\x0b\xcdW%\xae\xb4\xb7\xfa\xc6\x04q\xf5\x8d\ \x1eW\x8dH|\xd0\xcc\xab(\xd5\x1a\xf3\x0bY\xd7\xee\ \xe1\xcef\xa2\xa2\xff\xcdL\xbc\x16\x0f\xab \xfd\x82q\ \xe5%T\x10\xc2}\xf5\xe3\x04.\xfe\x9a1\xee\x8b\x7f\ \xa1\x88\xff\xf8\x04\xa6>\xedF\xd7\xfe\x9c\x9d\xc0\xd4\xa7\ \xde\xe8\xee\xcev\xf4\x91\x15f;7\x19~\xe8\xe4\xef\ ^\xaa\x0c\x1f@Jo{o;R\x00\xfb\xe1\x86s\ tm8\x16\xd8e\xcc$f\xaav\x09K\xa8$\x10\ IiMe=\xd2\x82\xdc\xf6(\x0b0\x15\x04\xd5\xb2\ \xbb$]\xb4\xe3j\xae?Vi\x92ya\xf2/\xf6\ e\xcf\xef\xe9\x1f\x85y\xd5d\x1b\x86\x05\xda\xf4\x9f\xcd\ y\x89@Q\x89\xb4|i\xe6\x8d\xe2@+\x08/m\ \x1e\x8f\xa0\x80a\xa1\x08?>\x1b)\xa1\x83K\xf3\xf2\ \x80\x03L\x0a\x1f\xca\xc7\xf9\xf4\xc5\x89\xa1g\xc4\xc3\xdd\ =<\xa7\x8dB\xb7\xc4\x83\xd0\x80\xc29\x8b\xa9\x96|\ \x00\xb8P%\x04k\xcb\x87\x0e\xa8@\x8c\xf2\x96|\xec\ \xd2>/\x1f\xdbT_k\x83\xe5lW\x12\x96\xe6\x9d\ \x0f\xfe\xcb'`\xa7^\x15*\x89\x9f\x85\xaa\xa9\x1e\x00\ \x0a\xc4\xb3\xdc\xe6\xc2\x11\xd9\xc6\x0a+!\x1bcY\xac\ \xe0T\x02\xa7W\xa2\xd96V[\xb4\x17\xc0\x8a\xcb@\ \x09\xac4~}\xc4\xec;\xafg\x10\x03\xf9o\xdb\x1e\ \xdd\xb6:\xa2\x05Q#\xf7b\xb1\xf1\xc9\xb1\x16\xe68\ \x09\xc2(\xd0\x04c\x81\xfb\xe0p\x05f\x92\xaaW\x06\ \x07\x0b\x1f=\x07\x0fa\xe2\xe5;\xac\x83\xadU, \ \xab\x98K*F\xc1z+\xeb\xe5\xa5\xb6?\xee<\xac\ \x15\xa2\x8d\xd3\x90\xe5\x0aU\x01\xb1\xc76\xdef\x0e\x0d\ 0\x18\xb0F\xe0by\xc4p \x94\x16\x1c\xb7X\xc5\ `vv\x10\xcb\x0e\xf9p\x08\xedq\xcf\xf5\x1d3V\ ~\x0dT\xb7\xc7\xef\xf0\xe5*4\x84\xb2\xed\x87~{\ \xa3\x81z:\x82|\xd21]\xc7S\x96\xd6\xad\xbd\xd1\ !\x12\xfb\xa6{\xe9\xad/ u\x0cNWE\xe9\x1a\ \x18\xdd\x0c\xec#U\xf7m\x13\x22\xd8\x97\xc3\xf1\xe3\xc4\ <\xbd\xd9,\xe9>\xdc(\xc9,\x1c\x1b7\x1d(\xe4\ *\x9c\xab\x1a\xee\xb3<6\xf9\xba\xc9\xdd\x95\x89VS\ \xb5\xa2\xd5s\xeej\xec\xfa\x86ll6\xed\xa8\xbb\xbd\ x\x08\xe3\xec\x094g\xbb\xf1{\x96M\xddE3A\ \xee\xd5\xdfVsd\x03\x198\x03X?\xa0v\x1aa\ >b\xc3\x1cD\xa9\xdei\x9c\xe79\x00\xe5'\xe1\xd2\ \xc0\xa6\xdc\xc7\x9a\x05\xc5C\xf64\xce-8\x8d\x9b\xb8\ MO\xdb\xe2\xdf\xdfg\x8b\xee\xe68\x8b\xe6\xf6\xed\xb0\ _\xdd|\xcd\x16\xdb\x14O\x93\x146\xebW\xcf\xd11\ c;\x90T\x14\xeb'\xea`\x8e\xf6P,j!\xdd\ nZ\xeeo\x9a\x86\x8b\xc9t\xf2\xdd\xc4\xb5\xd4\xb5\xb8\ \x11=\x98\x08N'\xf7Y\x98\xc7v\x94\xed \xd4\x22\ \xb0\x16\xd6U\xd0\xb9X\xda\xba\x96\xc1\xb6\x15\x14\xe3\xda\ \x8b\x99\xe9ls\xa9X\x1b\x89\xeeKO\x93\x86P\x19\ o\xd5\x16i8\xab\xe8\xed\xe8V\xe4\x8b,M\x96\x15\ \xd9J\x19n\x06\xbb\xd2\xee\xea\xa7\xa6\x0c\xe3\xb0\x0ck\ \xd1_\xd7P\xa47\x9b\xcc\xe3\xd1\xf0o\x1f\x7f\xdb\xe8\ p\x14\x0d\xff\x9e\xe5\xdfj\xdd\xb4\x04\xe1}6\x07\xbe\ l\xcc\x8a}\x1e\x1e\x0d\xadS\x09\xcb\x0f\x93)@h\ \x9f\xb3\xffy1M@\x097\x0d-b\x8b[=\xe8\ j\xd8\xdc\xac^\xe8w>I\x8f\xa3\xe9\xc4v\x1a|\ )\xe1H\xfb\xc9N\xd2\xb45\x83j\xa1k{\xd0\xd8\ \x07\x9c6\xab\x8d\xba\xd2\xb8\x06\xa0%\xf5\x1b\xf6&\xe1\ \xbd\xbd\x0f\xfel\x1b\xbd\x9d\xd6q\x9e\xcdg\xd3,6\ U\xf7\xaa\xbd\xec\x0a\x1cP\x9f\x92\xf7kd\xc7-\xe9\ P\xb4\x96\x81\x8eg\x80\xd5#@\xc44\xc2\x9c;\xaf\ \xac\x89\x12\x9c\xf0\xf7\xb51\x1f\xd7\x00\xba15\xd6\xcd\ \xd7\xb3\x9dK\xa2\x01\x1c\xca\xb0\x94\xef\x9b\xcc\x1b79\ \xd1\x95\x8d\x91Z`\x89\x88X/\x0b)$)\xebc\ \x1c0.\x18\xd2}\x1d A\x18\xe2\xcdl\xc0fU\ \x8a7&\xdb\x9e\xae\xa2\x92\x14\xb7\xa9\xac,6\x1e\x15\ \xec_\x1d\xae\xae\xb9\xb8RX#\x9b\xcf\x87 CC\ \xd1e\xd7\xdb\x0b\xb2?\xee\x1d\x8e\x0e\x14\x11\x12\xcb\x9d\ V\xb0(2\x80\x9dJ\xc9\xd9N\xe3\xda 1\x02s\ \x08\xa5\xf8\x0eEe\xd4 \xd6\xe1\x88(Bw\x08\xec\ f\xed\xbe$Eb\xa7\xb1\x91\xb3\xd9\xfco\x03\x97\xc0\ \xa9\xd3\x17\xcfeoH\x80(\xd3\xb2y+\x02\x22\xbb\ \xba\x14\xe9\xbe*Y\xd7\x82j\x99<\x01\xa3X\x0e\xd9\ \xba.\x0e\xc1+\xe5y\xb8\x1c\xa6Y\xda\xd45\xc7\x9b\ \xc1\xb8U\xdce\xd5K\x19\xe5\xd8D\x03\x05&\x94\x93\ \xad\xb6\x95\xd7\x833;n\x1cA\xdb,\xa20:\x15\ \x98os\xb8b\x90\x15\x00\x05>u{\xe4\x06{\xd4\ VS\x8b9\x94\x09\x1e\xb2}\xcc\xa9Z\xdb\xa9\xb5\x80\ !\xc1\xaf\xc0\x9c\x16kNTm\xbf\xd6m\x88\xf8\x15\ \x91BP\xdd\x97p\xd2\xe4BI\xdd\xa1\xdd\x00\x14\xeb\ ]A\x140\x9c)\x18\xda\xe5\xf7\xc2\xa5N\x98D\x0c\ m\xb3\xfa\x90\xb6\x1e\xd0\xd5\xb5(\xd8\xff\xb8\xf3\x8c$\ \x98\x11\xd1D\xff\xa8j\xba\xcb\x8c\xd6\xe2C\xe6\x96\xb7\ g\xf1U\xeb\xf5\xc4x\x1f\x03\xb6Ys@\x89\x0f\xd9\ \x80\x85\x8b\x8b\x89\xdaQq+h \xec\x84)\xc4\xb6\ \xa5\xe5t!\xde\xa3\x94\x9b\xaf\xd5\x17\xf7qc\x03\xa6\ \x0fo\xfe\x0d\xbf\xbc\xa1\xb6\ \x00\x00\x09i\ \x00\ \x008Tx\x9c\xed[\xebo\x9b\xc8\x16\xff\xde\xbf\x02\ 9_Z\xd5\xc0\xbc\x07\xdc8U\xef\x8dZ\xad\xb4\xd5\ ^u[\xed\x87\xab\xd5\x8a\xc0\xd8f\x8b\xc1\x17pl\ \xf7\xaf\xbfg0O\x1b\xc7v\xb6\x8fT\x89\xd3*p\ \xe6\xccy\xfc\xcec\x861\xb9|\xbd\x9eG\xc6\xadJ\ \xb30\x89\xc7\x03l\xa1\x81\xa1b?\x09\xc2x:\x1e\ |\xfa\xf8\xd6t\x06F\x96{q\xe0EI\xac\xc6\x83\ 8\x19\xbc\xbezv\x99\xddN\x9f\x19F{\x22\x1eh\ B\x18\x8c\x070F\xa4$\xc5\xfdL\x85\xd3Y>\x1e\ \x08\xb6X\x17\x84U\x18\xe4\xb3\xd6}\x06\xaa\x16\xf0\x7f\ \x14$~\xec\xcdA\x83G\x16\x7f}P\xf3\xe4V]\ \xab\x9b\xe5\x94^[ p+<\xfe\x9c\xf9\xdeB\x8d\ \xdaj-bxFa\xd0\x15\x02\x1f\xb0p\xdd\xe3\ {9\xd4\x07K94\xf7\xd6\xe1<\xfc\xa2\x82&D\ \x8d\xd2e\x9aB\x86\x98\x91\xb7Qi\xb7\x91\xec\xe0\xeb\ \xcf\x94\xffY\xa57\x89\x97\x06Z\x97a\x17\xf9\x14\xa8\ I\xd6\x80\xa5\xef@\x00+r\x0dFS/\x08\xbd\xe8\ \x9d\xfe\x05Z\xb6|\x86\x01\x8a(\xb3(\xe3\xd8q\x06\ \x15q\x02\x1e\x08I\xc0\x7fIEC\xd5\x88\x11n\x11\ \xc1\x10\xa9\xa9~/\xaf\xdf\xcb;-\x95\x7f\x84\xdc\xca\ \xa0i@l\xe6^\x9e\x86\xeb\xe7x\x88\xf4\x8f%\x5c\ \x87\x13\x97\xc15t2\xcb!\x8e\xa0/\xf6\xa6\x7f\x8a\ \xc3\x1c\xfa\xc32S\xe9\xef\xbag\xfd\x16\x7f\xaaC\xbf\ \xf5\xbd\xeb+!u\x12C\x91\xea63\x9a\xa5\x0a\xba\ \xc1\x05\x5c+/\xad\xf8($d\x89\xe5#\xc7\xabe\ \xc3\x13^\xc7\xf1\xc2.;\x1f\xaf\xeeX[z\xcf\xac\ \xabr\xfc2\xcb\x93E\xc5[n8\x80\x02<\x0d6\ \xd0\xf5'\x93L\xe5M\x17\xd2\x9f,\xdfDj\xcbm\ \x16+\xc8\xa8\x5c[^\x15\xa4\xb2\xa1\x8f\xf0\xab\xda\xc2\ \xbb\xb49=\xda\xf0\xf9\xdaP\xa3\xed\xd2\xee\xba\xfd\x94\ U\xd8}\xaa\xc23\xf0\xa2D\xd0'\xbc\xce\xc2\x8b?\ \xe1u\x16^\xf2\x09\xaf\xb3\xf0r\xbf\xd6\xaa\xb8!\xe3\ A+Y\xe1\xce$\x8d\x83\x1b\x0c\x8bO\x83\xe3\x1an\ \xcd\xd6\xfd\xe9\x0e\xec\x18\xe6 l\xe2\x93\x5cp\xa80\ \xd1=\x96\xf6\xed\xbcc\xcb\xadC\x1d\xb3\xf1\xf6\xe4\xe5\ \xddg\x1e<\x05\xdfcyw\x182y\x8f\xbec\x0b\ \xbc\xaf\x5cvx;q`\x81\x7fp\x017O[E\ \x8a\xd0\x99\xe2\xbeA\x87\x99'\x85\xdd\x94\xdf;\xf0\x8f\ 9\xf4gT;\x04\xe6\xbe\xa1\x97'\x86\x9e}\xf7\xd0\ \xa3\xc7\x1b\xfa\xd3\xf6\xda\xdb\x00\xde\xe7)\xae\x9ayZ\ \xe8\xfbj\xf0\x1bW=\xfe\xb1\xb1o\x8e\xc1\x92(R\ >(\xf7\xa2\x95\xb7\xc9\xee\x8c\x1c\xec0\x0ex\xd7c\ \xad\xc7\xd0>@Gpn@\x92\xf80\x94=\xca\xd4\ \x84\xb8\xc4=\xae\x0c\xf7+\xa3\xdf\x08\xc4;s\xbb\xb5\ _\xeb\x03[\xf2\xf6\xd2\xa8\xab\x8f\xf1nq\x22\x06\x9b\ Z\xd1*\xd9\xa2\x84y\x8b\x0b\xee]\xb7`:\xbbr\ \x0foc\x91\xc5\x11u\x05\xa8/\xf7\xb3\xdb[L\x86\ \x12[\x8c1*\xc4\xd0dB\xc25%\xb0\xb3=V\ \xbc\xdf\x0eD\xf7\xc79\xfd5\x03W\x9e7\xdb\xfa\x88\ \xb9\xb8\x9a>k\x1c\xd6\xa7\xd7\xb8:t^x\xf9\xac\ \x0d\x87\xbe\xa7H@\xbb5\x9b\xc7\x16\xa0\xbf7\x18\xb2\ \x90p\x11\x16C\x8e,\xc9\xe1\x91\x84\x19\x94[\x88p\ \xe4\x0e9\xb3\x10\x12\x0cK\x83\xc0\xd3\x0aG\xc4\x19\x12\ i\xb9\x8e\x10\xcc5\xe0\x81G\xb8\x8c 1$\xcc\x92\ T\x12`\xfbR\x0b/ks\x12F\xd1\xe8\x22\xa0\x81\ \xf4u\xc3J\x93\xcfjtA\x14\x05\x9c\xca\xdb\xed\xb7\ \x12#R\xdd\xea\xc8A\x1a\x8cn\x96y\xde\xa6\xfd\x9d\ \x84\xf1h\x1e\xe6*\xad\xa8M}\xd7\x99u\xc0oj\ \xca\xd6\x1e\xa3\xf0\x9b:C\x8e\x0d\xb0\x9c1\x89$\x1b\ \x12aI\x86\x19\xa6\xbd\x1e\xc4I\xacj\xf3\xeb\x13\xb5\ \xefe~{\x95,\x8c\xc7\xcc\xe2\x8e\xc0\x94\x0d9\xb7\ \x18\xa7\xd8\xc1\x86\x03\x0f\xa5\x88K\x07\x0f9\xb5\x5c\x84\ \xe0\xb1\xd9\xc0\x8e\xc5\x80F\xe9\x10\x82%%\x86\x7f\xda\ e\x820q\x8aPR\xc2\x84\xc3\x1fp\xd8v\xfc\xc6\ \x90\xac\x08aW\xfb\x88\xb9\x03^BfjG8s\ i\xeb\xd9\xfb\x01\xc5n\xaf\xdc\xc0j\x89\xb9\xae-\xc9\ \xb8#eQn\x88c\xbe\xf5\x0a\x96/A\x0d(\xc6\ 2r\x8eE\x88\x8e\x920\xb8\xa8\x22\xe7B09l\ Y\x1el\xe0vjMZD2\xe80\x04\x92\x15\xba\ \x8dcp2l}7\xf4\x03\xa25m[=\xa5\x0e\ i7\x88\xbc\xe9\xfa\xc5e\xe4\xe5\xea\xb9n\x94:\x22\ \x1c\xda{q\xc9\x18\x7f\xd1l\x83j\x81\x95H\xe9J\ \xd3m\xed2z\x85R\x0c%H0\xc5C\x90\xc9%\ 4X\xb7\x91\xb9\x83o\x0d\xa7\x09\xbd\x0asA`\x09\ \xe2\xd0\x07\x88 \xc2x\x03\xf5\xef\xba\xd4\xc1\xce\xb0\xb8\ `\x08\x12\x0b\xcc\x04&B Q0\xfc\x98\x18\xf0w\ \xc10:\xc4\x10\x11\x07\xd2\x0a\x9f2\xadG\xdd\x97A\ \xdb\xaa*\xf2\x0c\x16\x0dS\xe2\xce\xd8\xc1\xd8\x12E\xdc\ b[\xd8\x8a-\x06\x1b\xf4\xc7q*z\x11\xc7(\x84\ _#\xb6\x17\xce\x8a\x10x\xd9\xccKSoShh\ \xed\x17\x0f#\xc8,A)\x87R\x12\x96\xe3\xea\x0b@\ P\x94\xda\xe5PZ\xa8\xf8`\x03\x95\xc8\xb1!\x16\x07\ \x18P\x81\xd1\xbe\xc0\xbb0j\xed\xe8vAZ\xa6\xd1\ \xf3\xbd\xdd\x8d~Tz\xf1J\x8f\xefy\xdfz\x1c\xe8\ A\x92\x93\xaf\x83\xe4\xa5=\xad\xf6\xc5\xd3;J\xa8\xe5\ Wo\xbeC*UE\xe4Z\xae\x84]\x03\xe6\xcat\ \x8e\xd6Q\xe7\xc1\xec\xf1T\x92)\x9ej\xe9\x84Z\xea\ \x9c\xd2\x9eXM&\xfd)\xea\xc9\xbd\xbb\x9ep\xb3(\ \x11q\xbc\x8a\xd8\xe3\xac\x22\xe7\xa9\x8aN\xa9\xa2\xc30\ \x1d\xae\xa2\x9fcU\x92G+\x03?\xce\xcax\xda\xab\ \x9dT\x19\xfc\x1e\x95A\x1eTeT\xbf\xe6*\xf7\x02\ /\xf7\x9a\x83\xa3\x8a\xc2!\xc2\xf5;\x8b\xc1d\xf4\xe1\ \xfam-\xcc\xf7G\x7f$\xe9\xe7\x06\x04\xcd\xe0\xdd$\ \xcb|\xe0\x01\x93\ \xec\xdfs\xc0\xf6\x17\xad\xa4\x9bB`i\x14\xfa*\xce\ \xee\x90\xdb\x9d\x01f\x80\xfb\xea\xea}\x12\x1b\xbf\xf9\xb9\ \x81!G\xe8\x88\xb1\x11\xd7g\x0b\x18\x1b/u\xf2\x14\ .\x14|\x9d\x99\xc5k\xc9Iz\xd5R\xa6Mx3\ \xadO\x8c;\xee\x86y\xa4\xae\xfe\xbb\x9a\xeb\xb3\xba?\ \x0b\x91[R{\xba\xbd?\xbf\xe0\xdcS\xa5%\xa6\xfa\ u\xdd\xec,\xf5oS\xa5\xfe\xfd\xe6\xda\xf8\xf5\xdd\x7f\ ~%/\xcf4bW\x9f\x16\xbbX\xdeDa6S\ \xe7\xa1P\x9aq\xa6\xfe\x1e]Zd\x18\x00k8\x09\ \x81^\xca\xb5\xb3\xd4\xb7\xdf'\x81}\x9dz\x93\xdc\xfe\ P\x06?\xb3C?\x89\xb3-\xf5\xaf?\xc2T\xe9\xf7\ \xfc\x0b\xd1-\x19]\x88\x15\xf4\xff0\x89\xafZ\xef\xb0\ O@\x89\xef\x05+uS$\xe6*\xfc\x1c\xdaa\x1c\ \xa8\xb5\xb5\x98-^\x17\xee\x8c\xdf\xa4\xf9\x0ajf\x0b\ [%\xa3\x9b\x92\x02\xf2\xcd\xc6\xf0\x8c\xady\ ;\xf3\xeb\xae]v\xda\xaaw\xb7\x1a\xf1\xa5]u\xea\ \xe2\xaeY+\x0f\xae\xda\xf5wa\xadu\x06\x96E\xe9\ 2\xbe{\x86\x96\xfdo\xe9\xa5\xaaM\xdd?E\xeb[\ \x90\xba\xeb\xcf\xfey\xdb\xd6B\xbd\xca\x18\x14\xf6&B\ \x22\x97\x0d\xa9\xfe\xe2\x80p\xcc\x0cB,,\x19q\xf8\ \xb0\xbc\xaa\x1ew\x9a\xb3DD`\x05\xde\xff+\x82$\ \x06\xc3!oM\x7f\x99\xdez\xf92U\xcd\x17\x88\xcd\ \xdfw$\x81\xd2\xabE6\x1e\xf8~\xf5\xed\xc9O\x06\ \xdc{\x83;\x16e\x186\x83-\xe0\x1a0\xb9\xb4\x1c\ !\x1c\xc4\xfa\x90\x13\xdf\x19\xb9\x9e\xdd\x90\xeb\xbc\xe8\x02\ \x09\x9b/N\x5c\xf9\x93e\xa0\xf8\xd18n\xbf\x07~\ X\xfe\xd3\xa44I}P\xf8\x8f\x01\xbd\xd4\xbb\xcc\ \xabg\xff\x07\xf3\xff;\xbc\ \x00\x00\x05(\ \x00\ \x00\x14Zx\x9c\xedW[o\xdb6\x14~\xcf\xaf\xd0\ \x94\x97\x04\x8b$\xeabY\xd2\xec\x14X\x83\x16\x056\ \x0cX\x1b\xecq\xa0%Z\xd6\x22\x91\x1aI\xc7v\x7f\ \xfd\x0e\xa9\xab\xaf\x0dZ\x14\xed\x8691l\x9esx\ .\x9f\xce\xcd\xb3W\xdb\xaa4\x9e\x09\x17\x05\xa3s\xd3\ \xb5\x91i\x10\x9a\xb2\xac\xa0\xf9\xdc|\xfc\xf0\xc6\x8aL\ CHL3\x5c2J\xe6&e\xe6\xab\xfb\xab\xd9\x0f\ \x96e\xbc\xe6\x04K\x92\x19\x9bB\xae\x8cw\xf4I\xa4\ \xb8&\xc6\xcdJ\xca:q\x9c\xcdfc\x17-\xd1f\ \x90\x92H\xf2\x9aQJR\x09\xaa\x84\x0df\x1b\ \xab\x05\xd9\xfc\xcc\xb6s\x13\x19\xc8\x08\x03\xa3\xf5\x0c\xe0\ \xa2\x22\xe9<\x98\x9b\xe7\xa2U&D\x8dS\x22\x9c\x8e\ >\xba\xdf9\xd3\xdf\xef\x08\xb6`k\x9e\x92%\xa8 \ 6%\xd2y\xf8\xf0\xd03-dg2\x1b\xa9\xd9\x96\ \xa0{\xcf\x87\x8d\xaf\xad\xbbq\x1c;\x9a;H\x9f\x92\ \xf3\x10BN\x17q\xeb\xdas\xfeBI\x9e-\xcf\xda\ F\x9e\x03\xf0\x83\x84%vT\xe2\xadE\xc5\xf5\xe8j\ \x9a\xf67S\x95E\xc53IYU)\xfc5x{\ \xc2\xd9 \x5c\xafy\xa9%\xb2\xd4\x81'W\x11*\x85\ \x03\x0f\xdf1\xefA~\x96\x91\xa5P\xf7\x9a\x04R\xa7\ @3\x80\x05X\x10\xcc\xdfr\x9c\x15p\xa9\x11j\xc4\ \xf69~4\x8d\xcd\x9e\xdd%Z\xca\xca\x12\x12\x04r\ \xa6\xdc\xe0\x9dh\x95\x82Z!Y\xddI\xb7i\x0b\x14\ ?\x8a\x5cs \xb3\xe5R\x10\xb8\x8cF4!w%\ i\xa4-\xd0\xcexr\x8d\x03\xc0\x18\xfd\xa4I\x0cR\ \xa7\x90\xbb\xc45\x0d\xe7\xd3\xc6\xfc\x13\xc6\xdc\xcb\xc6\xc8\ \xd2\x8b\xbd\xf8\x9c\xb1\x99\xb3\x8f\xcae\x10\xcf\xa1t\x09\ \xe50>\x07\xe2\x8b\x91\xb9\x0c\xf0\x00\xcf\xf4\x02\x88/\ F\xe62\xc0#c\xfeW\x02QWs\xb2\xe2\x04\x8a\ \xee\xfa\x04\x9a\x17Sz2\xa8q\xe7\xa6\x15\x0c\xe7\x1d\ \x9c]\x14\x04\xb6\x1fz\xde \xe5\x81\xd4d$\x05\xe7\ 8\xd6Bn\xd4S\xf3\xd6\xc0#-$\xb4\x97\xb5 \ \xfc\xbdjy\xbf\xd1GA\x8e\xa4>pL\x054\xb6\ jnVX\xf2b{\x83\xec(\x0c\x83\xe9\xd4\x9b\xde\ !\xf5\xd7\x1e\xa1{O};\x9c\xf8\x01\x8a\xef\x5c?\ \xb4}\xe4\xc7\xee\xed\x80\xeb\xd7@p\xfa\x09\x04\xa7\xff\ \x1d\x04g\x8e\xea\x8c\xfa[?\x14\xd5\xb8\xca\xd4\xc8\x1b\ \xda\xe7\x02\xf7.\xd48'\xba:\x00\xb8\xa5~\xb5\x8c\ \x05\xe3\x19\xe1\x1d+\xd4\xaf=V[@\xcdfq\xb5\ \xff\x9c\x94\xd6\x9e\x8fN\xf3\xc5\x0agl37\xbdC\ \xe6G\xc6\x00\x86\xd0\x9eL \xdc\xe8\x90\x9b\xc2\xdc\xf6\ }\xdbw\xe3\xc0\x0d\x8f\x98`\xce\xf7\x00*\xc5=d\ \xc2v\xb0Vc\xc5Z7\x8f\xa4\xde\x1e]_s\xae\ \x04J\xbc#\x10\xb5\xfe\xe8\xd4\x88\x15\xdb\xe4\x5c\xa1'\ \xf9\x9a\x1c\xde\xdc\x14\x14\x82\xb1\xda\xcd\xc7\x0d\x82\xa3\x90\ [\x89n\x1b\x8a\x02\xff\x8c\xc4vhv\x87\xac\xddy\ V\x85\xb7EU|$\xd9\xd0\xbdz\x11Aqm\xe5\ %[\xe0\xf2\xb4\xf7Z`\xb1P+\xd1Y6e\x19\ \x11\xa7\xf9:\x87V$}\x22|\xc10\xcf\x94\x97m\ =\xf72\x0a\xba.\xe9\xe5N\xadW\xdb\x9d\xa2\xed\x95\ \xa6\x22\xb8\xee\xc4\x1b\xfa/\xa9j\xb5j\xe9\x95u\xa8\ \xc0\x8cI\xa9\x22]\xe2rTK\xcf\x85(\x16\xaa\xe5\ \x8f|\x04\x0d\x14\x031;\xa0\xaa\x90ZyeT\xf5\ \x04\xc1h\xb9k\xc5\xbaj:.\x22M\xaf\x88\xc4\x19\ \x96x\xa8\xa8\x8e2\xed\x02\x87\xfd(\xf9\xfd\xe1M?\ \x9b\xd24\xf9\x83\xf1\xa7a\xae(\x01\xbc`k\xc8\x85\ ~\x5c\xaa='MT\x1b\xc0\xf2\xbe\xa8\x00V\xb5\x97\ \xfd\x08\xbb\x12\x14v\xcf\xd8\x13VX\x0eJ\x1b\xb5\x9c\ 4\xab\xe6\xc9\xdd*K\xabB]r\xde\xcb\xa2,\xdf\ )#\xe3\x19\xea\xb4\x8evsn\x14\xc7\xcc\xe9\xa2\xd4\ \xa7\xfc \x0bJ\xbc \x90_\xbf\xa8\xa21\x8er0\ \xe7l]W\x90CmY\x99\x03v{e&\x87F\ \xa8\xbf\x96\xf0;\xe4\x06\xddYq\x145\x0d\xf6\xb6C\ 8\xdf\xcb\x9c \x1em\x1d5\x96\xab\xa3E`\x09\xe1\ &\x14~\xe9\xc0\xfc\xe7\xec\x89$\xd7^\xd4\xee\x1e\xea\ \xd8\xd4n\xe2\x86\xddY\xe5\x04\xb8\x9e\x88\xbf\xd7\x98\x93\ 1\xf5/V\xd0\x04P$\xbc\xa3\x9eZ&TV\x18\ \xae\x7f\xe7\x22\xe4\xea\x01b\xf8\x91\xedz\x93\xbb\xe6\xe3\ `\xc5P.\xfb\x08yc\xf20\xf5\xf4o\x18\xc6-\ hP\xcfX\xae99\xd88\xfb4\x05\x80\xd5\xc3\x85\ BM\xd3\xf1c\xfd^\x10\xf9\xd5\x98\xb8\x1a\x84\x01\x15\ \x0d\x91\x1f\xdbA4\xf5\xce\x80b\x85\xdf\x16\x96~o\ \x1c\xc3\xe2}\x0e,\xfaPB\xa7\x96Ip\x04UG\ \xc80\xccF\xce\xf1N{\xf1\xc5)eM\xffG\xef\ \x0b\xd3\xcf\x9a|S\x08\xa1}\xdf\x1c\xaf\xb5\xd3\xdb}\ L\xa3\x7fOB~\xe3\x82>\x8d\xe7\xe4\xbb\xc0\xf3\xf3\ S\xd4\xfa*\xc3c\xe6\xe4\xcd\xf0\x87\x8f\x99ZG\xee\ \xaf\xfe\x01\x8f\xca\xf4\xf8\ \x00\x00\x0b`\ \x00\ \x00?\xfdx\x9c\xedZ[o\xdb8\x16~\xef\xaf\xd0\ \xba/-\xc6\x92y\x93D:I\x07;[\xcc\xa0@\ \x17\x03L\xdb\xbd\xbd\x04\x8aD;\xda\xc8\x92 \xc9\x89\ \xdd_\xbf\x87\xd4]V\x12\xdbq\xb2\xb3;I\x9b\xd8\ $\x0f\x0f\xc9\x8f\x87\xe7F\x9e\xff\xb8YE\xc6\xad\xcc\ \xf20\x89/&\xd8B\x13C\xc6~\x12\x84\xf1\xf2b\ \xf2\xed\xeb\xcf&\x9f\x18y\xe1\xc5\x81\x17%\xb1\xbc\x98\ \xc4\xc9\xe4\xc7\x0fo\xce\xffd\x9a\xc6_2\xe9\x152\ 0\xee\xc2\xe2\xda\xf8\x14\xdf\xe4\xbe\x97J\xe3\xdduQ\ \xa4\xf3\xd9\xec\xee\xee\xce\x0a\xabJ+\xc9\x96\xb3\xf7\x86\ i~x\xf3\xe6<\xbf]\xbe1\x0c\xe8\x15\x14\xd7\x17\ \x13\x87MT\xe9Z\x86\xcb\xeb\xa2)\x86\xc1\xc5\x04\xe8\ (\xe2\xb6.w&\x88K\x82\x8a\xf3\xbc\xdbb\x11\xe3\ \x1d\xf2\x10\xf2\x176\xa5bj\x10D\x88\x89\xe0?{\ \xaf;\xe5\xb0\xac\x14~\xe7A\xe2\xc7\xde\x0aV\xe3\x91\ \xf4\xf2k&\xe5m(\xef,\x18\xb0\x1c\x0c\x0a?%\ \x9b\x8b\x092\x90\xe1:\x16\xd7\x7ft\x13\x80\x15\xe7\xf3\ z\xf0\x8b\xc9}kU\xdc\xf3\xd4\xf3e>\xab\xeb;\ \xfd\xeby4\xfd\xeb\x0a+O\xd6\x99/\x17\xc0BZ\ \xb1,f\x1f\xbf~l\x1aMd\x05E\xd0a\xb3\x89\ \x80wo\x0ewT\x8f\x8e\x85\x103\xdd\xdaR\x8f\xd1\ \x11\x84\xd0\xac^u5\xb5\xdb\xe5\x9e\x94Y\xb0\xb8w\ lDf\x80\x83}\x9fM>\x00\xfdy \x17\xb9\xeaW\ \x8a\x8f*\x81\xfc\xb8\xba\x0dZ\x01\x0e\xe9e\xbfd^\ \x10B\xbf\x92\xae#G~\x12E\xd2\x07\x09\xf4\xa2;\ o\x9bO\x1a\x02`\xd5\xefJE\xc3\x14\xd8\xe6E\x92\ \xd6\xb4 a\xc56\x02\xb1P\x95&pL\xb2\xf9[\ \x82\x98\xc7\xdd3]\x95\x80H\x84\xc5v\x8e'm\x97\ d\xb1\xc8%\x8c\x8b:uZ\xfc\xa1\x03\x0c%&\xc6\ l\xff\xc1\x5c\x22\x16\xfe\xe2\xf1\xc1\xf0\xe8`\x027\x83\ \x9d\xcf\xfa\x8b~\x18\xc4]\x8c\xb8\x8b\x0f\xc1\x08\xe4k\ 1\x9c\xf6\xd9\xbe q\x97\x1e\x04\xd2b\x01\x18\xf9{\ \x8c6\x8a\x12w\xed\xd3\xa1\xe4\xd0\x03PZ,\xe0\x14\ \xa2\xa3Qr\xec\x03Q\x12\xd2\xe3G\xa3\xe4\xb8\x8f\xa1\ \xb4\xf2\xb2\x1b\x99\xed\x1cD\xe8\xee\xdf(>\x7f\xce\xb2\ \xe4\x8e|\x96q\xd0\x0c\x90d\xaa?\x9c\xd1u\x914\ \x95\x99\x5c\xfc\xb3\xbbf(\xff\xa3[\xbe\x87W\xb5\xe4\ \x04\x0c\xc8\x22J\xee\xe6\xb7a\x1e^E\xb2\xdd\x8f\xd4\ +\xae\xfb+S5\xccv\xd9d\x07\xb8E\x18Ef\ \xb6\x8e\xe4\x5c\xde\xca8\x09\x02\xc0-Kn\xa4\xa9\xad\ \xdc\x1cY\x0e\xb1\xeb*\x05\xc6\xbf\x930\x9eg\xc9\xba\ 3\x1f\xc3\x80\x11\xfejp\xcb\xc5\xdc\xe6.\x9f2\x0b\ Q\xeaR\x9b\x18&\xb1\x08r\x09\x17\xf6\x14Y\x08;\ \x08S\xe2\xd4\x94\x9cMM E\xd8E.7|\xc3\ \xc4\x96\xcbl&\xa0\x9eX\xd4%\xc8ABWR\x9b\ 1\xc4\xa7\xb6\xe5` \xc0P\xe9H\xd3\x9dr\x18\x06\ Z\xa8\xf1\xbd3\x95\x22\xf3\xe2\x1c\xcc\xd0\xeab\xb2\xf2\ \x8a,\xdc\xbc\x03\x0ex\x8a\xe0\x9f\xfeR\x96\xdeww\ \xbeU\xa4q\x0c\x8a4\xc9L\x7f\x9d\xddz\xc5:\x93\ j7Za(\xf7\xfd0!\x00\x0f$+N&\x06\ }n\xc7\x0b\x02\xfe#\x0aB-\x07\xea\xf3\xa5\xa4\xe0\ k\x16z\xf12\x92\x9f\xe2/O\x17\x821f\xc7\xca\ \x80#\xc8p\xdfl\xcbu\xa7Hm\x15\x07\x8c\x8d\xbf\ \x19\xa6m\xfck\x7fA\x99\xbfE\xa8R\xf3\x1d\xb9\xc1\ i1\xbe)\x00T$\xdf\x81kHN\xb0\x0d{\xdb\ -\x81\x0e\xb1[\x8cq\x9b\x04\xc7\xda-\x81\x0e\xb3[\ \x08\x11g/_b\xdc\x07B\x8f\xda\xad\xfd\xad\xbb-\ \x0e@\x09\x05O\xf2\x81\x1c|\x98\xa3\x18p\xbc\xc0\xc7\ [wzB\x94\x0e\xf1\x14\x9f\xe8\x03\xd9\x87z\x8a\xae\ t\xe5\xd1(\xd9\x8fz\x8a\xcdAM!\x8cM\xe1\xa4\ B(\xd4\xe8\xa4:Z-\xb6*\xd4\xec\x93\xd2\xd6^\ \xb4\xa1pz\x09A+\xb3\x18\xc1\x18\x83\x1e\x9f\x1b\x0e\ \x98\x03\x8e\xa8\x80\xafx\x94~{11)\xb1\x84\xe0\ \xc4\xc6@e\xda\xcc\xa2\xe0\xe1`ro\x97\xef\xd0\xc5\ \x06\xc66\x17Tw\xc1\xcc\x82\xf1\xa83\xde\xa3\x9a\xad\ \x09\xeaz\x19\xaa0\x1d\xe6\xa7(A=\xaa\x9d\xc4\xfd\ ^J\xaf\xb6HP$\x9c\x16\xc1g\xc0\xca\xc4\x8e\x85\ \x09\xb5\xb1\x9e\x92k9\x0eWf\xf6\x01\xb4\x90j\xc4\ \x8cY\x5c\xad\x17\xdd\x87\x90M\x95\xa1'\xae\xf38\xdf\ \x1d\x80\xc0\x9c\xdb\x88s=\x90e;\x84Q\xf2\x08H\ \xecyA\x82\xc5\xea\x1d{\x14\x17\x88\xe2\x1e\x02\x85\x02\ (\x0f0\xbaGR\xc0M\xd1\x06\x91=\x0c\x02\xc6c\ \x80\x8d6\xe5b\x01Du\xc7\xb2\x04'\xf4FF\ \xb2\xf0\xa2>\xc7\x96\x9e\x22\xc7i\xdb\xf2\xcb\xca#\xb8\ \x98\x14\xd9Z6\x0d\xd0\xa1\x90Y\xac\xec>\xf8D`\ \xec12>\xc3\x9fi\xd7\xe6\xfbI\xba-!\xcfC\ \xe5x\x5c\x82i\x97\x85\x7f-[\xc8\xd3,I/\xb5\ -\xef\xea\x12]q\xb9\xbd\xccd\x04\x0e\x83\x17\xe5\xed\ \xc0*\xb9\xa4St-\xda18\x04^t\xb9\xab\x00\ \x0bpwF\xaa\xf5\x98\xeb8,\xf2!s\xf0\x82\x8a\ \x10\xc6\xbel\x96\xd7o_\xacsyY$\x91\x04?\ \xc4\x97]\x9eQ*\x9b\x84\x5c[{\x1d\x06\xf2\xf2&\ N\x8a\x9aQ\xb3S'K\xca\xb8\xb68$)\xa3%\ \x8a\x1eiF`\xac\xc3\xb22c\xa3\xa1}\xcd\x88\x0b\ ^\xfeIBi|\xd2(j\xc8\xedH\x0f\x9a\x0aa\ \x0f=hu\x92\xec)\xb8\xcd&X\x09[\x17\x9e\xd3\ \x85\xae\xe2\x1adq\x1d\xd7\xa8O8\xc0/\x16\xdc\xe2\ /\xa7\xcbp\xf4y\x1d\x1b\xd4 \x8c~\x1f[\xa2\xc2\ \x9a2\xe7\xa0\xbe@\xe8J^r[NzZ\xbe\x9c\ &\xe7\x80 <\xf9]lM\xbd3\xea\xf3E\xf7\x85\ \x9ct_\x86\xdc\x8e\xde\x17b\xef\x8f\xf8\xffO.\x08\ Y\xb4\x92\x02\xaa\xce\xa8#^4\x1b\xf4\xeb\xba\xf8|\ \xbatP\x8f\xdb\xb1r\x80\xe9\xce\xf9\xfco\xe4\x83\xc0\ \x86\xbd\xc0>|\x0c\xbdU\x12\x07\xa7\xc9\xd0\x8f1;\ \xfa4\xeef\xe5\xc0\x86\xb8\x16r1r\x1dnT_\ \xb9`\xb01hZ\x96 \x9e5\xcao\xcc\x01}\xf6\ \xb2\x0e\x87\x09\x07\xf0E\xceN\x0d\xf3\x89\x94\xe88\xbb\ \xa3\xf7\x8d\xd3\xff\xb1}{\xa9m\xab\x5c\xee\x13z\x8a\ \xa78h\xe0\xbc\xf3\xdf\x87;b\xd6\x9b\xa2\xbf\x98'\ \xf2\xdf\xf7\xcfa\x8a\xc3\xeeq\xd5\xcf\xd19Lq\xe8\ =\xee\xeeh{\x07\x9f0\xda\xb1\xf9\xf0\xc7bx\xfd\ >e~\x0d\x12z1y;\x12\xcc\xdf\x0f7D\xc4\ \xad\x9e\xd8`\x989\xd8X\xccx\xab\xf4\xb7PI\xc0\ ?\x12\x82\xba-\xa7\x0d\xb9\x98Pfa\xea\x10\xd4\xca\ \xed\x96\x8c\xd1.\xab\xb1\xbe\x95\xf9\x91u.\xb3/\xea\ =\xcf\xaf\xf1\xb7n\xfe\xe2\x19\xd2m\xd8\xa2\xb6@\x5c\ \xa7\x0e\x09\xb8\xd7\x08\xdc2\xf7\xc9\xa97nQ\x8e\x08\ Q\x89<\xc2,\x1bWT0\x04(\x9c\xfe2\xca\xbav\x1e*\xcf\x01\ \x06\x09q\x1e\x5c\xe9\xc2\xa0\xad\xbf\xe4:\x07\x82\xafP\ \x80\x06\xf7\x05\xa4{W\x00\x9b;\xbfZ\x17\xc5\xce\xfd\ \x01\x88\x9d\xcc\xeaZ]\x88@\xa1\x14sV\xd7\x05\x1e\ \xa8\xf4,\x03\x5caP\xd9\xad-\xed\xdd\xbcI\xbd\xb4\ \x13-\xe1\x00\xad\x0c\x06\x054B\x09\xa9>9\x9d\xca\ $-\xb4\xea\xfa\x92J\x09S\xbf\x06\xf1\x1bv)\xe4\ \xa6\x18\xd6\x95\xca\xc3\xbc\xf2\xfc\x9b\xa5\xbe\xfc\x98{>\ \xe8\xe9\xb5\x92\xaaAFBI\x11e\xb8\xeb\xc7T\xaa\ \x9au\xedv\xad\x9c{\x84\xfa\xb5\x8fe+\x19\xc5\xdd\ \x1c=\xa8#\xdb\xc2\xc2q\x10\xea]\xea\xff\xd1%6\ \x10\x01'|\x7f\x89\x1d\xcb\xda\xbdJl-\xb1&=\ Rf!`a\xc8q\xc5@dM\xcc-\x84l`\ \xfd*\xb3\xaf2\xfb\x5c2\xdb\x0bP\x0f\x95Z\x873\ 6\x94Z\xc7\xa2\x08\x0bF\xe8\xab\xd4\xbeJ\xed\xb3I\ \xad{\xac\xd4\x12\x8b:\xd4\x16\xac/\xb5\xeaA\xae\x00\ \xaf\xe1\xd5=xuh\x9fKh\xedc]Zb\x11\ ,\x04\x22|\xa0i\x89\xb08\xc3.\x13\x9dD\xd4\xb2\ \x0c/\xe1\xe3\x5c\x05\xbc\x1f\xde\xfc\x07^\x14V\xec\ \x00\x00\x0bV\ \x00\ \x0059x\x9c\xe5[[s\xdb6\x16~\xcf\xaf\xe0\ */\xc9T\xa4p!@@\xb6\xd3i\x9bi'3\ \xd9\xe9N\x93\xee\xed\xc5C\x93\xa0\xc45ErH\xca\ \x96\xf2\xeb\xf7\x80wJ\x94-)\x8a\xb7\xbb+\xc7\x16\ \x09\x1c\xdc\xbespn@\xae\xbf\xdf\xac\x22\xe3Ae\ y\x98\xc47\x13l\xa1\x89\xa1b/\xf1\xc3xq3\ \xf9\xfd\xf3\xcf\xa6\x98\x18y\xe1\xc6\xbe\x1b%\xb1\xba\x99\ \xc4\xc9\xe4\xfbw\xaf\xae\xffd\x9a\xc6O\x99r\x0b\xe5\ \x1b\x8fa\xb14>\xc4\xf7\xb9\xe7\xa6\xcax\xb3,\x8a\ t>\x9b=>>Za]h%\xd9b\xf6\xd60\ \xcdw\xaf^]\xe7\x0f\x8bW\x86\x01\xad\xfcby3\ \xe1\xf6D\xbf-U\xb8X\x16\xedk\xe8\xdfL\x80\x8e\ \x22\xc1\xca\xf7\xde\x04qEP\xf7<\xef\xd7X\xc4x\ \x83\x5c\x84\xbc\x80Q*\xa7\x06A\x84\x98\x08\xfe\xd9o\ \xcbF9,+\x85\xdf\xb9\x9fx\xb1\xbb\x82\xd5\xb8$\ \xbd\xfda\x13\xe6\x7f\x89\xdcX\xfd\x10/\x22\xf5S\x12\ \xe7E\xe6\x86qa\xc1\x04\xaa\xc1C\xf5\xf8c\xb2\xb9\ \x99 \x03\x19\x0e\xb2\xec\xf2OY\x05\xe0\xc5\xf9\xbc\x99\ \xcc\xcd\xe4\xd0\xda\xf5hy\xeaz*\x9f5\xe5\xbd\xf6\ \xcd\xbc\xda\xf6M\x81\x95'\xeb\xccS\x01t\xa1\xacX\ \x15\xb3\xf7\x9f\xdf\xb7\x95&\xb2\xfc\xc2\xefu\xb3\x89\xa0\ \xef\xc1\x1c\x1ei9:\x96R\xce\xca\xda\x8ez\x8c\x8e\ \x84f\xcd\xaa\xeb\xa9=,\x8e\xa4\xcc\xfc\xe0\xe0\xd8\ \x88\xcc\x80\x13@a\xe6\xdb\xb8p7f\x9c\xbf\xee5\ \xf5\xbc\xb6\xa5\xa7e*|P^\xb2Z\x01'*\xf0\ \x06\xc4~G\x9c\xae\xb3\xa8\xa4\xf0\xbd\x99\x8a\xd4J\xc5\ E>\x039\x98M\xde\x01\xfd\xb5\xaf\x82\x5c\xb7\xab\xc4\ I\xbf\x81<9e\x1d\xd4\x02\x1c\xca\xcd~\xc9\x5c?\ \x84v\x15]E9\xac\xa1\xc2\xc1u\x1bh\x95\x17I\ \xda\xd0\x82@\x15\xdb\x08\xb8\xae\x0bM/\x89\x92l\xfe\ \x9a\x004ApU\x16%\xc0\xf1\xb0\xd8\xce\xf1\xd5\xa4\ k\x93\x04A\xae@\xd2Q\xaf\xac\x14wh\x01c\xd1\ \x891;~\xb4 \x08\xbc\xc0;b4<>\x1ak\ G\xbb\x9e\x0d\x97}2J\x9c\x9e\x80R\x10\x80\x00\xa1\ \xb3Q\xe2\xecD\x94\xa4r\xc5\xd9(q\xe79\x94V\ nv\xaf\xb2\x16\x9dF7As\xef^\xf7\xf3C\x96\ %\x8f\xe4\xa3\x8a\xfdv\x80$\xd3\xedA\x03\xad\x8b\xa4\ -\xccT\xf0\x8f\xfe\x9a\xe1\xfd\xef\xfd\xf7\x03}\xd5K\ N@\x17\x06Q\xf28\x7f\x08\xf3\xf0.R\x1d?R\ \xb7X\x0eW\xa6Kl\xe6\xd8\x93=\xe0\x820\x8a\xcc\ l\x1d\xa9\xb9zPq\xe2\xfb\x80[\x96\xdc+\xb3T\ \xd8sdq\xc2\x9a\x22\x0d\xc6\xbf\x920\x9eg\xc9\xba\ 7\x1f\xc3\x80\x11\xfel\x08\xcb\xc1\x82\x09GLm\x0b\ Q\xeaPF\x0c\x93X\x049DH6E\x16\xc2\x1c\ aJxC)\xec\xa9\x09\xa4\x08;\xc8\x11\x86g\x98\ \xd8rlfK('\x16u\x08\xe2H\x96\x85\x94\xd9\ 6\x12Sfq\x0c\x04\x18\x0a\xb92\x9d\xa9\x80a\xa0\ \x86\x1a_zS\x01e\x1e\xe7\xa0AW7\x93\x95[\ d\xe1\xe6\x0d\xf4\x80\xa7\x08~\xca\x87\xea\xedm\x9f\xf3\ \x0d\xff\xbc$\x8e\x95W$\x99\xe9\xad\xb3\x07\xb7Xg\ Js\xa3\x13\x86\x8a\xef\xa7\x09\x01\x18\xd3\xac\xb8\x98\x18\ \x0c{;_\x10\xf0\xff\xa3 4r\xa0\xbf_J\x0a\ >g\xa1\xab\xfd\x8c\x0f\xf1\xa7\xaf\x17\x82\xb1\xce\xce\x95\ \x01.\xc9.\xdf\x98\xe58S\xa4Y%\x00c\xe3\xaf\ \x86\xc9\x8c\x7f\x1e/(\xf3\xd7\x08\xd5j\xbe'78\ -\xc6\x99\x02@E\xea\x0dx5\xe4\x02l8\xdan\ It\x8a\xdd\xb2m\xc1\x88\x7f\xae\xdd\x92\xe84\xbb\x85\ \x10\xe1G\xf9\x12\xa3vK\xa2g\xed\xd6\xf1\xd6\x9d\xc9\ \x13PB\xfeW\xf9@\x1c\x9f\x84\x92\xe3\x0b\x1c\xe0\xf3\ \xad;\xbd J\xa7x\x8a_\xe9\x03\xb1S=EG\ 9\xeal\x94\xd8\xb3\x9eb\xbbQS\x88\xc8R\xd8\xa9\ \xe0\xc5\xb7:\xa9\x09\xbc\x8a\xad\x8e\x92\x86\xa4\xb4\xb3\x17\ ]T\x97\xdeB\xbc\x05&\x80\x11.\x046\xe6\xa0\x8b\ \x18r(\x97\xfa\x19\x8f6\xd8\xdeLL\x0a\xda\xc3\x16\ T:@e\xda\xd2\x12\xc4\xe1D\x1cl\xf2\x05\x9a0\ li\xb7\x9bQ\xdd\x04\x13K\x82\xe5\xc0t\xbcI=\ _\x13\x14\xf6\x22\xd41'\x85\x90\x13(\xb5%\x82\x8f\ =l\xa55k\x87\x05E\x92w\x18~\x03\xb4Ll\ \x83\xbe\x96B\x94\xeb\xe5\x16\x96L\x0a\xf9\x14\x5cHW\ \x22\x80\xc9f\x0c\x1e\xd1!\x8c\x80\x023\xce\x10}\xbe\ \xe3=\x84\x1c\x0b\x0bA\x91S\x0eeAC!\xf93\ 0\xd9\xdf\x16&\xdb*\xf9\xf4\xa4 \x95\xc8`\x84\x9e\ B\x05dM<\xd1\xd1\x01Ya\x16\xd6\xa2B\x9d\xa7\ A\xc0x\x0c\x04\xb0\xd3\xa6\x0a\x02 j\x1aVo\xb0\ K\xef!\x00.\xdch\xd8cGO\x11\xe7]]~\ [{\x057\x93\x22[\xab\xb6\x02\x1a\x14*\x8b\xb5\xed\ \x07\xbf\x08\x0c>F\xc6G\xf83\xed\xdb}/I\xb7\ \x15\xe4y\xa8\x9d\x8f[0\xef\xaa\xf0\x96\xaa\x83<\xcd\ \x92\xf4\xb6\xb4\xe7}}R\x16\xdcno3\x15\x81\xd3\ \xe0Fy7\xb0\xce\x8d\x94\x19\xa7\x0e\xed\x18\x9c\x027\ \xba\xddW\x82\x05\xb8<#\xc5\xe5\x98\xeb8,\xf2\xdd\ \xce\xc1\x13*B\x18\xfb\xb6]\xde\xb0>X\xe7\xea\xb6\ H\x22\x05\xbe\x88\xa7\xfa}F\xa9j\xf3K]\xe92\ \xf4\xd5\xed}\x9c\x14MG-\xa7\x0eX\x8a\xce\x85\x89\ \xa2\x92[n\xf4\xe8n\xf3\x01\xaf\x86M\x1d&\x9dS\ \x0c\xae\xfe\xd03M\x09\x8c%OtK\xf6GC\xc7\ \x9a\x12\x07<\xfd\x8b\x84\xd3\xf8\xa2\x91\xd4nogz\ \xd1TJ\xb6\xebE\xeb\x9d\xc4\xa6\xe0:k\xeb\xc2\xca\ \x97o\xe9F\xd7\xb1\x0d(\xa72\xb6\xd1\xdf\xb0\x81_\ ,\xc0\xc5\x9f.\x97\xe5\x18\xf6un`\x830\xfac\ \xb0D\x876U\xdeA?@\xf8J^\x92-\x17\xdd\ -\x9f.\x93w@\x10\xa2\xfc!X\xd3pF\x7f\xbf\ (_\xc8E\xf9\xb2\xdb\xdb\xd9|!\xecx\xc4\xffw\ \xf2A\xc8\xa2\xb5\x14P\xbdG\xb9|\xd1\x8c\xd0\xaf\xeb\ \xe2\xe3\xe5RB\x83\xde\xce\x95\x03L\xf7\xf6\xe7\x7f\x22\ '\x046\xec\x05\xf8\xf0>tWI\xec_&K?\ \xd6\xd9\xd9\xbbq?3\x076\xc4\xb1\x90\x83\x91\xc3\x85\ Q?\x0ai\x03c\xd0\xb4zc\x10\xa1UO6\x07\ }\xf6\xb2\x0e\x87\x09\x1b\xf0E\xf6N\x03\xf3\x85\x94\xe8\ xwg\xf3M\xd0\xff2\xbe\xbd\x14\xdbj\x97\xfb\x82\ \x9e\xe2%6\x1a8\xef\xe2\x8f\xe1\x8e\x98\x0dS\xca\x07\ \xf3B\xfe\xfb\xf1yLy\xdaY\xae\xfe\x9c\x9d\xc7\x94\ \xa7\x9e\xe5\xee\x8fvt\xf0\x09\xa3\x9d\x9b\x13\x7f.\x86\ /\xafW\xcc\x97 \xa17\x93\xd7#\xc1\xfca\xb8!\ \x22\xee\xf4\xc4\x06\xc3\xcc\xc1\xc6b[tJ\x7f\x0b\x85\ \x04\xfc#)\xa9\xd3\xf5\xb4!7\x13j[\x98r\x82\ :\xb9\xdd\x921\xdaE=\xd6\xefU~d\x9d\xab\xec\ \x93\xbe\x8e\xf2k\xfc{?\x7f\xf1\x0d\xd2m\xe0M\xdb\ L\xd0*w(,\x06sE\xceW\xa7\xde\x98\x85\x05\ \x16\x8e\xce$\xc2ba\x00\x86\x0edyG\x12\x92\xc4\ \xc6L\xe8\x5c\x9c\xc9-\xcc$\xc5\xbbI\xe5\xfdd\x9c\ I\xbf:\xc9\xf3\x84\x80\x94\x87\x10O\xedG.\x07\x02\ B\xa8E!v\xb2\xc5@B0\xb7\xa0\x88s{(\ !\xd2\xa2\x1c\xd9\x94\x0d$d\x9f\xf6i\x09\xd9\xa5\xfa\ \xdc\xa9\xacR{En\xa1\xde\x98`\xb0L\x02\x9a\xea\ \x9bB\xe5\xe0'\xa1\xeao\x10\x00\xc5\x04\x91\xe3\x04v\ \x08\xd9\xc5\x0a\x0b\xee\xf4\xfa\xd2XA\xb4\x01\x11)\x91\ \xf6.V;\xb4\x17\xc0\x8a9\x96\xe0XH|\x1cb\ #\xe7\x96\x98\x9b\xe8\x90\x96\xee\xce\x00\xb10\xf93\xaa\ xD\xc9\x0aW\x11j\xef\xa8\xf4\xc3j\xba\x1b\x8e \ \x93<\xa3\x8b\xc7NU\x95t\x11?4\xdc\xd7\x9e\xca\ \x01R\xc7\xe0\xf4\xa2(\xbd\x04F\xd73}\xe5\xad|\ ju\xb7\xbe\x87\xe8\xeb\xfb\x8c\xaf\xda)\xdd\xb9\xad\xcc\ \xa6\xeeB\x95\xc3\xc1\xb6\xab\xecl]q\x97d\xbe\xca\ \x9a*^~\x06U\xf5\x8c\xaa\x0b\xa4u\xdf\xdd\xa9\xc5\ B\xb5\xf5h\xbc>_\xba~\xf2\x08\x9am\xb7\xf2K\ \x92\xac\xf4A n3\x12\x9d\xf6\x00\xebB`\x1b9\ \xf0#\xf6*\xb7\xa5\x95\xe0\x14~\xec\xbd\xcau\x96\x01\ Hf\xe4n\x15,\xa8\xfcj\xe0\xcf\x97\xc9\xe3\x22\xd3\ \xc0\xf4NF\xda\x96\xba\xc6\xbc\xbb\xd3\x97A\xc7\xaa\xfd\ \xc4[\xeb[\x88f}\x0e\x91nv)\x1e\xc3\x18\x16\ j\xd6\x97_1mC\x84]\x8a\xe6B\xac\xb0\xf7\x00\ \xab)`\x0e\x0c\x1f\xa8\xdbv\xc2\xbb[\xb5r7\xe1\ *\xfc\xa2\xfc\x11\x92R\x00\x96\xca\x03\x9f\xf1.q\xb3\ \x92d\xd75\xd0\x104\x92Z\xb9\x02\x9b\xad.\x1bh\ e]@1\xee\xac\x9aZ\xa5\xed\x19O\xa7!\xc6O\ \xa1T\xecB\xa1\xbfS\x9a\xc7nZ\xd3\xeb\xde\xb5\xbc\ \xe7I\x1cmk\xb2j'\x5c\xcf\xf6E\xbd,_\xa9\ \xc2\xf5\xdd\xc2\xed\xe4\xbe)\xa1H\xb6\x8b\xcc\xfc`\xfe\ \xdb\xfb\x9f\xdb\x0d\xecy\xf3\xbf%\xd9}\xb715\x81\ {\x97\xac\x811\xadN\xd17M\xbd\xb9V\xf0n\xf1\ .\x5c\x01\x84\xfaf\xecw\x9bU\x04;\xb0\xad\x18\x10\ k\xdc\xbaN\xabn3U]\xf6\x1d\xbd\xdd\xea{\xab\ P7\x9a}* \xd0\xf8\xa0\x07\xe9+\x9aY=\xd1\ F\x19\xf4\xd6\x011@\xbd\xd0\xf2m\xd1\x010\x10\xfb\ \x96\xbd\x91{\xa7\x8f\xe7>\xeaJc\xafv\x91%\xeb\ t\x95\xf8\xaan^\xd7\x17c&\x0eM)y\xdb \ \xbb\x18H\x87\xcd;+=\xda\x16\x1c\xd8)\xb1\xda\xe6\ \xfd\x0e\xea.\x1c\x8a\xfa\x97\x17G/w\x09\x04\x1b\xac\ \x0en\x1d$\x088\x9fX\x07\xe0\xc4\x96\x02\x14\xc3T\ X\x12\x82o*z\xe3h!\xe8\x1d\xaf\x96\x82\xd7E\ x\xf3\xd7* \x92\xc8\xab2\xdc\xeb\x82\x9d\xa7b=\ b!jK\xa7\x9f\x19\x05(\xab\xc4\xe8x\xba\xb4)\ \x05\x96\xab,\x82\xcdZ\xcc\xed\xa6\xccwAUf\x99\ \xbb\x9d\xc7I\xac&\xfdyjX\xf4\xdc\xa5\xc4\x83\xf2\ Z\xd7\xd8\xd8b\x88\x08B\x07\x95\x8d\x9a\xb1\x89%9\ \x17\x82\x0dj7e0b;\xc8\x1e$\xea\xc1/\xd2\ \xd7\x0d\xa8\x85m\x84{\xbe\xe9\x01F\xd4'\x1eL\x08\ ,\x91N\xefJ\xce$\xbc\x96\xc9\xd6\xb7=9\x1e\x01\ \xff\xf4\xeev\xa7\xe9\x80\xed\xb0\x05\xb2\xf7VF 4\ \x11H\x8c\xc2A\xa1W\xca1s\xc6\x90$\xd2\x12\x82\ J\x0e\xc0?Dx >\xae]\x0a\xc8\x01\xf1\xa9\ k\x87\xa9\x02\xcbF\x9c}#\xf1\xe9\xab\x90E\xfb8\ \xe4A=\xff\xfe\xd9/\xba\xf2\xa20\xad\xd2\x1d\xd0\xcf\ \x17\xb0\xffW~\x98\xa7\xa0\x12\xe6a\xacgs\xb5\x9b\ {\xb9*\xbf\xc3H/\xb8)\xea\x00\x08\xf3\x04\xb6}\ \x98\xc4s\x9d\xfe\xb9Z\x85\x1b\x13\x08b\xdf\xd4\xaaf\ ^\xdd\x04\xb8*g`\x861\xac*m\xc8\xf3\xdf~\ \xf9q\xac\xc2\x04\x84\xe15\x9fWn\x91\xa6\x82!\xc0\ v\x0f\x97Q\x95u\xf3\xa8\x98\x04\x11@\xe0\x05\xbbL\ \xea2<\xcd\x92\x9f\xda\xf5\x08\xfc\x12\x06\x1e\xfe.\xdf\ \xee\xd6E\xb1\xc7\xb6\x92S\xc7\xb3\xad_Zy\x8f\xf3\ v\xf4n\xbe\x15*\xe0\xe7\x80{\x06f\xb7B\xb64\ O\xbd\xc2$-Jg\xe0S\xaa\x14\x08\xce\x12t\xfc\ n\x93Bm\x8a\xdd\xb2\xcaB\x9bw\xaew\xbf(e\ n\xeez\xe0\xf9\xac\xb5\xee\xdeI\xbbha\xb2\x09\xef\ \xef\x89\xe6\x7f\xfe\xe8\xd4\x05uH?>i\xd5\x91\xb0\ \x10b\x94\xf6\x9bied[\xdc\xb1aC\xf4\x8a\xf5\ \x1eg\xd2\xc2\x9cK\x84\x9f\xb4\x08\xc8\xe2\xfa\xa6\xb3\x8d\ \x1dm\x0f8e\x8e$X\xeb\x12xv\xa8~.)\ \x18\x98\x072TM\xf5\xee(\xbf\xae\xb5u\x7f\xf7\xea\ \xdft\xd8\xa4\x96\ \x00\x00\x0fX\ \x00\ \x00E\x7fx\x9c\xe5[\xdbr\xe3Hr}\xef\xaf\x80\ 9/\xdda\x02\xaa\xfb\x85-\xf5\x86=\x13\xbb\x9e\x88\ \xd9\xd8\x88\xed\x99\xb5=/\x0a\x08\x00%\xb8A\x80\x01\ \x80\x92\xd8_\xef\xcc\x02H\x00$(\x91l\xb6<\xb6\ \xd9\x17\xa2\xb2\xee\xa7\xb22O%\x8a\xd7\x7fz^d\ \xdecRVi\x91\xdfLh@&^\x92GE\x9c\ \xe6\xf77\x93\xdf~\xfd\xb3o&^U\x87y\x1cf\ E\x9e\xdcL\xf2b\xf2\xa7O\xef\xae\xff\xc9\xf7\xbd\x1f\ \xcb$\xac\x93\xd8{J\xeb\x07\xef\xe7\xfcK\x15\x85\xcb\ \xc4{\xffP\xd7\xcb\xd9\xd5\xd5\xd3\xd3S\x90\xb6\xc2\xa0\ (\xef\xaf>x\xbe\xff\xe9\xdd\xbb\xeb\xea\xf1\xfe\x9d\xe7\ A\xad\xb8~\xb8\x99(1\xc1\xd4C\x92\xde?\xd4\xdb\ d\x1a\xdfL\xa0\x1c'F\xbato\x80\xb4)\xd0\xb6\ <\xeb\xe7\x04\xcc{OBB\xa2\xb9\xe4\xdcN=F\ \x18\xf3\x09\xfc\x15\x1f\x5c\xa5\x0a\xa6\xb5\x84\x7f\xb3\xb8\x88\ \xf2p\x01\xb3\x09\xd9\xf2\xf6\xf3\xf2!)\xd3(\xcc>\ \xaf\xcay\x18%?\x16yU\x97a\x9a\xd7\x01\x0c\xc1\ U\x04\x8c\xf2j\xb6\xe9\xf3frh\x8a\xd8h\xb5\x84\ 6\xaa\xab\x8d\xbcW\x7f\xd3\xfd\xb6\xfeF\x10T\xc5\xaa\ \x8c\x9294\x91\x04yR_\xfd\xf4\xebO\xdbL\x9f\ \x04q\x1d\xf7\x9ay\xce\xa0\xed\xc1\x18\x9e\xb8\xeb\x9dZ\ k\xaf\x5cnWz\xac\x1c#\x84\x5c\x0d\xa7\x06\xa9#\ K\x96\xf1\xfc`\xdf\x84]\x01\xe0P\xc2\xaf\xd6y\x1d\ >\xfby\xf5C\xafj\x14mkF\xa8:\xe9c\x12\ \x15\x8b\x05\xc0\xdd\x807(\x1cw\x85\x97\xab2s%\ \xe2\xe8*\xc9\x92E\x92\xd7\xd5\x15,\xf7\xd5\xe4\x13\x94\ \xbf\x8e\x93y\x85\xf5\x1a\xad\xc1\x14\xa8\x8dvy\x90\x0b\ p$a\xf9\x972\x8cS\xa8\xd7\x94\xeb\xa9OTd\ Y\x12\x81\xe2\x85\xd9S\xb8\xae&\xdb\x02\xd0\xd4\xb0\xaa\ \x82\xb4\x8dB\xb3U],7eA\xb1\xeau\x06\ j\x81B\x1fZ,\xca\xd9\x0f\xa1\x00\xec\xc8G'*\ @%\xd2z=\xa3\x93\xaeJ1\x9fW\x09\xf4Kz\ 2\xa7\xf5P\x01\xbab\x13\xef\xea\xf8\xce\x929\xb3\xcc\ \xbe\xde\x19\x1d\xefLl;\xbb\xbe\x1aN\xfa\xd2 r\ k\xc5\x09 2\x22B\xa3\xcf\x03\x11\xbaR'\x81\xa8\ \x99\x9dG\xf3\xf3@\x84\xce\xcc\x99 \xeecd\xac=\ \x01\xa3\xf9|D\xd1>\x1e\x0d\x12\xa1'\x814\xd6\x1b\ \x19\xebm\x1c%\xc2/\x87\x929\x05%\x12\x112\xdf\ Y\x5c\x12X\xad,\xe3D\x1e\x0d\x97\xb1\xa7\xc1E\xec\ H\xb7G\xc3e\xec\x05\xe1\xd2\xf4\x94\x8d\xc7\xf6\xc7}\ \xbcR\x19\xcdOT*\xd8x\xd1\x11\xbd\x8d\xa3\xa4\xe5\ \xe5PR\xfc\xcd\xb6\x9eQ\xf2D\x94l\x12\x9a\xb3Q\ R\xfa5\x94\x16a\xf9%)\xf7\xac;T\x8f\xbe`\ ;\xffR\x96\xc5\x13\xfb%\xc9\xe3m\x07E\x89\xf5\xc1\ \xf0\xaf\xeab+,\x93\xf9\x7f\xf6\xe7\x0c\xe9\xff\xe8\xa7\ \x0f\xb4\xd5N\xb9\x00F7\xcf\x8a\xa7\xd9cZ\xa5w\ Y\xd2\xad\xc72\xac\x1f\x863C\x89\x90ZL\xf6\x80\ \x9b\xa7Y\xe6\x97\xab,\x99%\x8fI^\xc41\xe0V\ \x16_\x12\xdf\xd1N\xd8\xfa\x8a\xc9\x8d\x08\xc1\xf8\xaf\x22\ \xcdge\xb1\xea\x8d\xc7\xf3\xa0\x87\xbfz&\xd0\xd4H\ \xa3\xcdT\x04\x84s\xcd%\xf3|\x160\xa2\x99\xb1r\ J\x02B\x15\xa1\x9c\xa9MI#\xa6>\x14%T\x13\ m\xbc\xc8\xf3i\xa0\x85\x14\x16\xe4,\xe0\x9a\x11E\xac\ \x13r)\x041S\x19(\x0a\x05(\x08U\xe2\xeb\xa9\ \x81n \x87{_{C\x01B\x9aW@\x10\x177\ \x93EX\x97\xe9\xf3{h\x81N\x09\xfcq\x0fM\xea\ C\x7f\xe5;\xef\x9c\xe7\xe0\x9d\x8b\xd2\x8fV\xe5cX\ \xaf\xca\x04W\xa3S\x86f\xddOS\x028\x12\x94\xf5\ \xc5\xd4`\xd8\xda\xf9\x8a@\xff?*\xc2F\x0f\xf0\xfb\ \xad\xb4\xe0\xd72\x0d\xf3\xfb,\xf99\xff\xfc\xedJ0\ \xd6\xd8\xb9:\x00\xfe|\xb8n\x0bO\x06ZO\x89\xe7\ \x9b@\xc9\xa9\xf4p\xc3\x10\xafM|=^a\xc0\x99\ \x93\xd6\xdc\xf7\xf4\x87.\xeb\xf1\xc5\x01\xc0\xb2\xe4=\x1c\ \xde\xd8\x14\xff\xbb\xc0\x9a\x1c\xed\xc4\x90e\x1d\xefV\x84\ 0\x92\xc5\xe7\xf3\xc7\xd3\x9c\x18!L\x1dE,\x0e\xf0\ \xc7W\x9d\xd8\xf1\xae^\x9e\xc4\x1f\xe3o\x22D\xea4\ \xda\xa8cC\xe7\xf4|W\x7fA\xda(O\xa1\x8d\xdf\ H\x88\xe4\xa9\xb4Q':9\x1b%\xf9*m\xdcn\ \xd4eRVK\xd8\xa9\xe9c\xb25P\x9bXR\xbd\ \xc6\x88\xd0\xb0(\xef\x9cG\x17\xa8Z\xde>\xdfLX\ \x04\xe5\x84\x18o\x06\x86IJK\x99\x12\xf0LG\ +\xaco&>\x95\xe8b\x08\xc7\x1a>\xd7\x81\x11\x84\ h}\xb0\xcaW\xa8\x22\x05\xf4b\xb5\x94X\x85\xb2@\ 3\xc5\xe8\x81^\xda\xf1\xfa`\xbd\xefS\x0c\xa31,\ \x07n\x11?;\xdd\xa0\x91\xed\x90\xe0\xa4w\xc0\xfe\x1e\ X\xf9\x94\x07\x82+\x18<\x0eC\xc040\xf1\x12X\ \x042-\xcc\x9e\xe0\xcc\xc9!|\x84\x08\x94\xd1\x9a\xbf\ \xde\xea\x1e8\x12\xe9\x82\xe6\x88\xa5\x0d\x14\x97\x5cZ\xf3\ \x0aF\xe2\xfbb\xe4\x96\x95\xbc\x06\x0a\x85m\xf9\x12$\ \xcc\xbc\xd0\xcc\xa8\x8a\x88\xa34\x84\xd2\xb1\xd9\x83\xa3\xf6\ \x93\xf9\x1c\x0am*6)\xd8\x99_\x92,\xa9\xc3l\ \xd8bW\x9e\x13\xa5\xba\xbc\xea\xb6\xa5\x057\x93\xba\x5c\ %\xdb\x0c\xa8P'e\x8e\xa4\x0d\x88\x11\xfc\x83\x99Q\ 2p\xf7Q\xb1\x5c7HW)r\x8f[\xf0\xeaI\ \x1d=$\x1d\xd2\xcb\xb2X\xde:7\xde\xb7 Np\ \xbb\xbe-\x93\x0c\xb8B\x98U]\xb7\x18\xf9ua\xf3\ \x0e\xe6\x1c\xb8@\x98\xdd\xee\x9b\xbd\x1a\x18\xcf\x88\xd8\xf5\ \xb9\xca\xd3\xba\xdam\x1c\x88P\x8dA\xea\xdb\xed\xe4\x86\ \xf9\xf3U\x95\xdc\xd6E\x96\x00\x05\x89\x864\xe2b\xd1\ ;-\xad>\xc5g\xe2\x87\x9f\xe9\x0d\xa0/{\x22\xb3\ \xd8\xef\xed\xe8P\x8bV\xbd8\xd8\xb7\x1c\x8f\xe9EO\ F\xbb\xad\x9d\xc9\x8a\xb9\xb5r\xf74\x83\x1bCN}\ \xe9\x1c\x84t\x09\xe9\x84\xdf\x8f\x12\xb7\xe7\x15\x12\x18w\ ^\xc1o\xd8\x95ovh\xa5\x9f/\x17\xb9\x18\xb6u\ \xeea\x85P\xf2\xc7Y\x16wTq\xf1\x04wf\xa1\ \x98z\xbb\xa5\xb9\xe8\xae\xf9|\x99x\x02\xf0\xac?\xce\ \xf2lV\x07\xbf\xdftm\xd8E\xd7f\xb7\xb5\xb3\xd7\ \x86\xc9\xe3\x11\xff\xbf\x13\xeb!\x01o\xb5\x80\xe3>U\ \xf6M\xa3=\x7f[\xd5\xbf\x5c.\xdc3h\xed\x5c=\ \xa0|g\x8f\xfe\xcf\xc6{\x9co\x0b\xcc\x1b\xac\xc9O\ i\xb8(\xf2\xf82\xd1\xf8\xb1\xc6\xce\xde\x99\xbb\x118\ \xb4\x9a\xbe\x0e\x88\xa6D+\xe3\xb5\x8f\xc6\x0aG\xcd\x9b\ \x944\xd6k\x9e\x84bN\xde\xab\xf1\xa6\x8c\xc4\x87\x9d\ \xf9&\x9bj\x83\xf9\x85\xac\xebxsg/\xa2\xe1\xff\ \x9b\x17\xf1\xad\xd6\xb0%\xe9\x17\xe4\x95\x97\xd8\x82\xee2\ \xc2\x1f\x86\xb8\xf8\x9b\x85q\x0f\xfe\x85\x18\xff\x09\x97)\ N{\xa3\x8b\x9f\xb3\x03\x98\xf6\xd47\xba\xfb\xbd\x9dr\ ;\xe0\xdc`\xf8k'\x7fw\x87l\xf6\x00Zz3\ \xf9a$\x04p\x18n8Gw\x86\xe3\x99\xba\x88\x99\ \xa6\xc2t.a\x0dB\x06L\xcaZ\xae\xbb\x96\x9e\xd9\ \xcd\x84\x8b\x80r\xc5H\xa7\xbbk6V\xf6\xbe\xed\xeb\ \xb7&L\xb2\xaa\x92\xf23\xde\xb9\xfb[\xfe[\x95|\ \xd7`\x1b\x85\x01b\xf8\x0fc^*0\x5c\x13{8\ \x10{d\xe4\x8d\xd3\xc0\x1a\xa0\x97\x18\xc7c$\x10T\ \x19&\x8f\x8fFj\xa8\xe0\xc2\xbc2\x90\x00\x93\xa1\xaf\ \xc5\xe3|\xfe\xcd\x81\xa1\x17\xd4\xc3\xdd\xcayq7\xca\ \x81z\x00-\xb3T\x105\xd4\x0f\x98\x98\x85\xd9(:\ \xd0\x0f_\x05BHN{\xcc\xbfU\x10-49Y\ ?\xbe\xc7\xe4\xed\x8b\x93\xc7we\xfd\xc9\xc3r+\x01\ \xfad\x86\x93Wx\xe2`\xfd}\x84\x9b\x83\x07Lq\ \xa5\xd9`\xee\xfbe_\x9e\xfcn\xa9_G^&s\ 8Z\xb1\xf6\x8d\xf2\xd4W6\xb0\x94*k\xa7>\x03\ \xbb\xfd=\xd1\xc3\xab\x81\x87\xd1\xc3\xeb\x94C\xf4L\xc0\ \x8c\xd4T\x0e\xd0\x93&\xb0D\xe8^\x94\x18\xd1k\xac\ \x103z\xa89$@\xa1\xe8A\xff\xdeu\xc7\x88\xcfF\xba\ \x1b\xb9\x9c2x\x0f\x9f\xd8\x90\xa8C\xdd\x8d9\xf8\xeb\ +\xbc\xec\xec\x9e\xb6\x0e\x0do\xa0\xc7\x8fi\xf2\xf4n\ ;\xa8\xbbp\xbb\x0e\xcb\xf0>q\xdd\x81\xba4\xe4\xa3\ \xcd\xb8+\xca8)7Y\xee\xcd\x8e\x1ad\xb5#j\ ~!\xf0n\xa8\x9d\xd8\xea6\x9f\x8c\xe7W\x0fa\x5c\ <\x81^\xedf~-\x8a\x05\xbe\x16\x85\xa54T\xca\ \xdd\xec\xe8\xd9\xb9HM\x99Rf/\x13\xfa\x83\xddd\ \x18\xb8A\xb1\x97\xb9*K\x00\xca\xcf\xc2u\x02\x93r\ _\x9b%\xa8\x1e\x8a\xa7\xfb\x12\xc1\xe9\xbd7\xda\xd6\xc4\ \x1c\xff\xee\xaex\x1e\xcf\x8e\x8bh\x85w\xd0\xfd\xf6=\ \xcd\xf2y\xb7\xc4S\x9a\xc3d\xfd\xf6\x17\x0eT\x88=\ H\xda\x12\x9b_=\x98\xed\xfe\xda-\xf1\xdc\xa9\xe9n\ \xd6\xfap\xd6\x22|N\x17\xe9\xd7$\xee\xb4\xae;\xbc\ \xe4\xe1\xf2\x85\xd9\xb9l \xfdI5\x9e\xefT\xe8!\ \x89\x80\x8a\xdf\x15a\x19\xe3 v\x19\x17\x02\xb8\xd1\xf5\ \x86a=\xafQ6\xb0G(\x188\xf3d\xb1\xdc\xbe\ A\xeb\xf6\xcf\xf8\x1b\xbe$\x0fA\x18\xefHq\xecm\ yl\x1dwLU\xe4\xd9\xba-\xb6O\x0dO\x19\xa8\ }\xbb\x81n\x8b5\xbd \xf3T\xbb\xc2\xf5@\x08C\ \xda\xee\xeb\x98\xf4]%\xe4\xf4\xf6&\x93\xc4\x1a\xc2\xbb\ \xb94\x5c\xf2\xb9o\x0c\x1b\xd1\xba;|]_\xed\x9b\ \x17'_$u\x18\x87u\xd8\xd9\x9a\x8d\x84\x13\xbbU\ \x8b2\x9e\xcf\xfe\xfe\xd3\x9f\xb7f3\x8af\xff^\x94\ _:c\x88\x05\xc2\xbbb\x05\x1bak\xcb\xf1w\x1d\ \xd1\x0c\x1dEX\x7fJ\x17\xa0t\xf8;\x94\x7f~^\ d`\xf5\xb6\x19\x83\xc2\xb8\x80]\xa3M\xb3e\xd2\xfc\ \xb4f\xf4\xb7$q\xb4H\xb1\xd2\xd5\xe7\x1aN\xbc?\ c'}\xf3~\xd5\x0etc\x80{\xf3\x80\xc3h;\ Q\x97\xba\xef\x00\x18\x98\x99\xad\x9ee\xe1\x1d\xbe.\xfe\ \x053\xbd\xbd\xdc\xfb\xb2X-\x17\xb0\xe5\xda\xeam~\ =\xe6*\xc9\x94\xb3\x0f\x1bd\xef\x07j\xaax\x8f\x5c\ \x8fV\xf6i >t\xee\xf2\xbeCk\xbc\xb8\xc5\xa3\ \x17|\x06\xe7\xf5\xa6\xab\xde\xe5\xa9\xbd8\xc4 \x90\xb0\ \xfd]\x85\x8b*tg\xeamH\xe1\x8e\x02\xdd\x1c\x86\ \x14X?H\x0f\x1051\xfa\xf1\xc8\xfdF\x0aK\x99\ \x94\x19X\xbdz&6\xb28\x04\xb7S\x96\xe1z\x96\ \x17y\xd2\x976>y\xa66\xb2\xb1\xdf{\xb4\x91\x13\ a\x02\xc7\xdc\xdc\x1d\xdb&\x00B\x13_{?\xf6r\ \xf0\x8e\x0d\xd0fa=\xae\xdd\x93\x9c2\xdefz\xac\ \x9f\x88<\x1f\x98<\xd5Dr\x8cQ+x\xb6\xca\xb8\ `\xbe!\x1a\xf8\x86\x07\xa8o\xfac\xcd\x13\xc7H\x9a\ `\xed]\x06|\x82\xee\x0cpI\xe1\xae\xfdZ\xe8\x98\ b\xd4\xdbp\xa6\x19\xd4\xf2z-x\xed\xd00\xe4\xb3\ \x1d\xc5\x94\x82%\xb0ZH\xd6\x93m\x9f\x8cm>\x83\ \xd0P/\xbaD\x99\x1ef\xbc\x12\xc1\x19(\xc6\xd6\x90\ \x80\xba\xe3\xde\x03/SUQTU\xbd\x9d\xf7\x8aB\ \xc1\x0e~\xbfGv\x09\xf9pH\xc3\xb6\xbf\xeb\xe9\x07\ \xad\x02{A\x1d;Z\x9b\x16\x9e\x90\xed\x9e\x82\xf5\x88\ \xf0f\x0a\xe8\x14\x1c\x10\xb4\xc5\xf7\x15\x96SK\xed\x94\ \xc2\x99K@\x11\xe3\xf9\x9b\xc7\x81\x90\x05xy\x8d\xe1\ \x92\xfa\x22\x90\xccJnP\x81\xe0\x8bs\xd4)\xd5T\ \xf1\xf10\xa7\x98P\xa85\xdc\xa0\xfe\x04\xca0C\x99\ \x13\xe8\x80SM\x8d\x01m\x02\xeff\xa8\xc66\xb4\x96\ x\x1bJ\x80\xa7\xa0V\x1a\xf7\x1eX+\x90y\xfdf\ [Q;x\x03\x03\xe9\x06\xba\x99\x8676\xf6\xc3*\ \xe5\xf3\xef\xabT\xd7W\xf7G\x1b>X\x96\x11\x93\xa7\ \xe4\xb1&oTC\x85:\xa8\xa1\xcc\xec\x87U/i\ \x03O\xb0v\x18\x8ej\xf4\xd3gbc\xb4\xc0\xd4\x89\ \xc6\xc0\x99\xbeX*\xd0\x05\xd1|\xe1\xff\xa0W]9\ \xc66\xc5\xba&{26ef\xf0\xff\xbfy\x8ax\ \xff\x00\xebH\xe0\x913\xef\xf7\xc3\x9a\xa2.\xaa)\x11\ h\xcaQ\xc6\xa7\x7f\xcf\x88|\x9c\x17p\x02p9\xb3\ \xe6\x92W#y\x0c\xf1\xedf=\x90=9\x96?\x10\ \xb5\xb7\xcd\x862 \xec3\xa0W\xe9j\xf1\x11\xd7\xb7\ =\x1d\x0c\xca\xcc\xc3E\x9a\xadg\x15h\xaa\x0f\x07\xed\ t>\xe8\x15\xd4\xe2\xde\xcd\xbb\x1a\x1b\x93\xbf,\xaa\xb4\ N\x8b|4\x13 \x1c\xaf\x95\xc3a\xa7L\xa3\xd1\xbc\ 0\xc3\xabh\xb0e\x86U\xe7\x89\x1b\x05\x8c\xb0\xae\x81\ \xaan3\xeb\xe4\xb9\xf6\xe1\x84\x02\xfbaF\x9aT\x08\ C\xceg\xee\xa5U#\x88\xe1\x80Z\x86\xed0\xc1i\ \xef\x08\x9d\xe6\x8f\xe74\x8bQ\x15Y\x1a\xef\xe5\x0d\xd7\ .K\xf0\x0a\x9d\xdf2\xe9\xcd\xe8\x9e\xe0\xa0\xbb+s\ \xedlmD\xd3\xefS\x99\xe2\xac|dl\xb3\xac\xf4\ \xeb\xbb\x8fqZb\x84\x15\xc6\x9c\xd5eS\xa9y\x0f\ \xd4Ld\x91>'\xf1\xc7\xb8X\xa49\xa2\x86\x07r\ 7\x0d|G\xf4q\x93\xf2\xab\x87t^\xcf6\xc9\x16\ \x9e\ \xbd\xfbop\xeb.)\ \x00\x00\x0ci\ \x00\ \x005cx\x9c\xe5[k\x8f\xdb6\x16\xfd\x9e_\xa1\ u\xb0h\x06\xb5d>EJ\xf3(\x92\x06\xcd\x16H\ \xb1E\xd2v\x81.\x16\x0bY\xa2m\xed\xc8\x92!\xc9\ c;\xbf~/)Y\x96l\xd9c\xcf&\x99.\xea\ &\x88uy\xc9+\x1e\x9e\xfb \xe9\xde|\xb7\x9e'\ \xd6\x83\xca\x8b8Ko\x07\xd8A\x03K\xa5a\x16\xc5\ \xe9\xf4v\xf0\xeb/?\xd8r`\x15e\x90FA\x92\ \xa5\xeav\x90f\x83\xef\xee^\xdc\xfc\xc5\xb6\xad\xefs\ \x15\x94*\xb2Vq9\xb3~L\xef\x8b0X(\xeb\ \xd5\xac,\x17\xfeh\xb4Z\xad\x9c\xb8\x16:Y>\x1d\ ]Y\xb6}\xf7\xe2\xc5M\xf10}aY\xd0+*\ g\xb7\x03\x97\x0d\xf4\xd3L\xc5\xd3Y\xd9<\xc6\xd1\xed\ \x00\xf4(\xe7\x9eyn\xbd \xae\x14\xea\x91\xfdv\x8b\ C\xacW(@(\x9cpJ\xbd\xa1E\x10!6\x82\ ?\xec\xcat*`Z\x0b\xf8\xebGY\x98\x06s\x98\ M@\x16\xff\xfe8\x83q>\xa8\x89\xcaa\xe2\xca\x01\ \xb3\x95\xc9X\xad\xded\xeb\xdb\x01\xb2\x90\xe52\xab~\ 3\x80+-\xfc\xad\xf9\xdb\xc1\xb1\xd9\xea\xf1\x8bE\x10\ \xaab\xb4\x95\xb7\xfao\xdf\xa4\xe9\xbf\x158E\xb6\xcc\ C5\x81!\x94\x93\xaar\xf4\xf6\x97\xb7M\xa3\x8d\x9c\ \xa8\x8cZ\xc3\xac\x13\x18\xbb\xf3\x0e+j\xacc\xcf\xf3\ F\xa6u\xa7\xdd\xa7G\x10B\xa3\xed\x8c\xebW{\x98\ \x9e\xa9\x99G\x93\xa3\xb6\x11\x19\x01\xf6\xa0a\x17\x9b\xb4\ \x0c\xd6vZ\xbclu\x0d\xc3\xa6g\xa8Y\x14?\xa8\ 0\x9b\xcf\xb3\xb4\xa8\xc0\xeb(G;\xe5\xc52O\x8c\ F\x14\x8eT\xa2\xe6*-\x8b\x11\xac\xfchp\x07\xfa\ 7\x91\x9a\x14\xba_E \xfdD\xb9\x8bM\x1b\xb4\x02\ \x1c*\xc8\xdf\xe5A\x14C\xbfJ\xaf\xd2\xec\xb60*\ \xa9M\x07\x8d\xc2\x96ja\x96$*\x04\x92\x06\xc9*\ \xd8\x14\xf5\xb00pQf\x8b\xadv\xcd]\x90\x08\x8a\ \xa5\x1c\xec\xe4\xd9dR(\xe8\x8dZ\xb2\xa2\xdc$\xaa\ R\xb7a\xf8,\xf7_R\xe6\xf2\x80]\x1bQ\x06\x04\ \x8a\xcb\x8d\x8f\x07\xd6\xe8qk\x1e\xea\xb1\x86O[\x13\ \xc4\x9b\x84\x93c\xd6nF]dN\x03y\x0c\xa7\xad\ \x82\xe1\xa3?\xcb\x15\xd0\xe6\xe5i\xc8\xfb\xd6\xc4\xb3w\ \xf3[\xe3\xdb\x01\x11\x0ea\x94S\xd2H7 \xe5\xcc\ \xe1Rb\xbc\x93\xae\x09\xe8\xe2\x03]\x90R\xb4\xaf;\ \xad\xcd\xfd\x9a\xc6%8\xcc\xb2P\xf9G\xed\xc4\x7fO\ \x7f-\xd4\x81\xd6/y\x90\x16\xe0\xaa\xf3\xdbA\xa9\xbf\ &\x10\x0e_\xd9\xb5):\xb4I=\xfc\xd5\x0e\xd0/\ \x01\x9dGm\xef$t\x9eg\x8b\x0etL:\x02\xc3\ Kv\xa1c\x1c\xde\x97\x0b\xc9;\xd01t\xa0\xab\x01\ e\x95\xae\xf8\x9c\xd0\x01r\x92\xbbL\x8a!v\x18f\ \x04S\xf7\x7f\x87\xae\x17\x10\x8d\xd8\x11\x87\xeaq\x12\x82\ X \xc5\xbe\x93\x9c\xf6\xec\xad_\x821\xaes\xe81\ \xff=;\x02\x9cv\xed\x969a?\x83\x03\xeb\xf0\xc3\ \x1e\xf1\xdf\xae\xf7\xa2>\xef\xa5\xa2\xcf{\xf1\xa1\xa7\x13\ \xe3\xff\x7f\x10\xef=\x98\xed\x1e\x1aON P\xc0\x5c\ \x9e@B\x06%\x10zB\x02\x01\x9a_\x9e@&\xa1\ \xf2\xd8\xf3'\x90\xc7\xf8\xe7z\x88\xbb_\x9c(ON\ O\xa4\x8f\xe0\xacIO_0}\xe8e\x97\xa7\x83e\ \xd7q/\xca\x1dn_\xee\xa0l_\xf7\xff'wT\ p\x9d\x1f\xcb\xfb\x9d\xf1\xbc\xd4\x01\xb60\xba(s\xa8\ (b\xe7X\xeb\xcb\x1c\xda\x1ay\x0e\xc7=\xcd?p\ \x5c\xf6\x99#<\xa9H\x89\x876\x16\x15\x13\xdd\xab\xcf\ M\xf1F\xb7\x01T\xbfS\x90\xecC\x97\xc3b \x07\ \x82\x17\xddE\xaf\xc9\xc6\x0c\x80\x89\x80\xac\xb9\x93\xc2V\ \x94P\x07\x09\xe4\xca]\xa5\x1c\xf6\xea\x86\xbd\xba=\xb0\ \xcc\x832\x8f\xd7\xaf\x90\xe3a&1\x19\x22\x07a\xe2\ rD \xac\xc1w$\x09\x86\x07\x10\x83?q\x97\x0c\ !Nq\x0a\xbaC\x88n\xb0\xbb\x91\xde\xd5\x85K\xa3\ \x17\xb8\x8b\x04E\x02\x9fC\x14\x82\xbc\x9d\xdeQ\xc6}\ ~\x8f7v\xcfwAd>{.x}\xa6\xc7\x83\ -z\x91\xc3\xf7YC}\xd6\xfa<\x1e\xac\xf1\xaf\xef\ \xf0\x14qq\x02nh>d\xec\xc5\xee^\xf3\x1a;\ \x1e\xe3@X`0\xfc\xb7{\xb2\x99p\x10\xc4\x05\x9c\ \x93\x81\x22\xf4\x8c\x0d\x83\xf6h\xf3\xe9!\x03\x98\xf4.\ \xa2\x1eS^\x80\xdc3r\xcdI\xa3\xee\x13k\xc5G\ B<\x1d\xea\x95\xe2W\x8f\x07\x8c3\x18\x8b1>\x95\ \xa1\xa0@\xeb\x1eLP\xe4H\xeeq\xd6\xa5\x0ew\xa4\ t\xa5\xa0\xdd\xca\x0ft=\x97`&:\xd4\x81\x0aI\ `\x8f\xf3s+\xa4\xcf\x1f\xf5\xcc\x9c\xcf'\x03\x96A\ \xf4\xd42\x07L\xb1\x8b\x98'\xa2\xc9\xe4 \xe8i\xdf\ F\x9e|t\x0b\xd3\xb2\xea\x9e\xa4\xde\xcdH\x9f\x1f\x9a\ o\xcd\xb9\xb1>\xd4\x8d\xf4\xc1\xf0\x8bf\xacq\xd0D\ \xa2E0U\xe6\x15\x81A\x13\xf3\xa9\x1b\xc6Y\x1e\xa9\ |\xdb\xe4\x9aO\xa7\xa9\x9eEu\xfe\xfe\xa2\xbbfz\ \xd4\xa6\x1d\xf5\xb7\x17\xb3 \xcaV\x10\x9e\xf6\x1b?e\ \x19x\x86\xdc\x17\xeb\xfa\x80B\x9dL\x05?h\xda\x98\ &H\xf6\x87M\xcb<\x07p\xec$\xd8(\x98\x88\xf9\ g\x0bm1\xcbV\xd3\x5c\x03R\xe6K\xb5\xdf3\xca\ \xc2\xa5>\xab\xb5\x97\x15}\x17\xeb}\x0d\xdd\xd7\x1e\x8f\ \xf5y{\xdf\x00\xab8\x85\x09\xda\xf5\x9d\x01f\xec\x00\ \x86Zc{\x8f \x19=\xa2\xb1\xde\xb1p\xbfis\ \xbci\x1e\xac\xe3y\xfcIE;65*E\x1a,\ \xeci\x92\x8d\x83\xa4\xff\xed\x0d1f*\xbcW\xf98\ \x0b\xf2H\x9b\xa9\x89\xd7\x01`\xcb\xd2r\xa3o\x16\xd6\ \x1b-\xeb\xf8\xa8\x16PH)\x8dP\xcd\x17\xfa\x92\xc1\ \x5c\xd6\xec\x98\xff\x10\x17\xf1X{M\xebe@7\x0d\ @\x18\xedI\xf5\xcb\xd7\xfazt\xed\x07E\x96&\x9b\ }\xb5\xca\x8a\x06\xcf\xe1\xfb\xd2M%\xad\xbc\xe9ft\ \xe8.F>We\x10\x05e\xb0\xf3\x9d\xad\x04JK\ \xb6\x05$\x8f&\xfe\x87\xb7?4\xd1 \x0c\xfd\x7fd\ \xf9\xfd\xce\x81\xb5B0\xce\x96\xb0\xc8M\x80\xd2G\xff\ \xa1\xaf\xd3@P\xde\xc5s\x80[_U|\xbb\x9e'\ \xe0\xc5MCGYc\xbc\x1b\xb4\x1a6W\xd5\xedK\ \xefuC\x14\xcec\xddi\xf4\xb1\x8c\x93\xe4Gm\xa4\ \x15\xb5\xeaA\xe32Qw?\x07\xe5\xcc\xfeXf\xe1\ \xbd\xb1^\x09;z0iuG\x10\xe66\x126b\ F\xcd\xc8:Z\xb9\x82l\x16g\xe9]\xeb\x8ee\x92\ +\x15\x06\xd1J\x8d\xcd{\xad\xe2\xfbx\x04\x0cUk\ g1[|gL\xdd\xbe\xce\xcb\x15@fFm\xc6\ \xe8\x8c\xbcX\x8e\x93\xb8\x98\xa9\xfc\xae\x05\x81\x86\xfa\xf5\ \xb4I\xbc\x87\xf3\xfa\x01l\x7f\xff\xfam\xdf\xa4\xf4\xb2\ \x1fv7\x9a=\xb6\xf4\x90q\x04\xaa\xf1$\x06y=\ \xee\xa8\xc8\xc3\xd1OY4\xd2\xf8\x8d\xde-\xe3\xd1\x87\ z=\x8aQ\x1cfi1\xda\x01\xabo\xe9\xcc\xe8\xad\ a\xba\xd8\xe90P\x84\x86W\x87\xb7\ X\xde\xd5\xb5nmm\xfd\xccc\xbeL\x94\x9ff\xe9\ '\xc8\xf5P\xb8\xe4\xd9\xbd\xf2_RD\xc6\xa6\x8e\xd1\ \x8fUn\xf3\xc9\xf6Q\x8f\xfc\x9f,N}\x98|\x1a\ m\xa5\x10\x82T\x9e@&*}\xb6\x95E\x01\xa4\xff\ <\x0f6\xda\x80j\x95:0\x9b\x9f,oH\xb9\xf5\ \x9bE\xb0\x95X\xb0o\xe7\xd6\x03\xfcc}\xda\xab\x88\ \xf44\xf5\x11i\xfb\xb8\xb9U5\xa6)T\x8dYn\ C\x05\xf0\x10\x94\xcb\x5c\xed\x1dB7\x01\x1f\x16I\xc7\ HH\xf1\xa1\xfe\xb4\xcb\xba=$\x8fvy\xca\x0bl\ \xa7\x00\x0b\x80\x0f\x01`\x1e\x00\x00($\x16\x91C\x8c\ \x0e\x11xdY\xcd\xd9\xf1\xb3\xaf\xebW\x87\xd2;\x80\ \x92\x8a!\xd7X2n\xbd\xb78\x1f\x12\xa9\xb1\xa4\x97\ `\xa9\x8f\x93\xfftP2D\x0fY\x09\x1eI<\xf0\ GF4'\x89\xde\xb1Z\xbf\x1f\x01r{\xcb\xf2'\ \xc3\x0d\xbc\xb9uq]#\x87\xf5\x81\x82D\x94\x0f\x99\ p\x5c\xe4\x12\x01\xa2!\x95\xda\xbd\xd9PZ\xe6\xd8\x12\ \x03\xa6\x0e\x96\xfaL\xf3(;\xf5\x94\x1a\xc0\x9ak\xac\ \x93\x80\x19\x8c\xfe\xc8\x80y\xd8F\x07^\xeb\x01\x22\x1c\ 1<\xe4\xcc\xc1\xae$\x1cDC\xe6Z\x9c\x0e)q\ t\x5c\xd4\x98\x11<\x04<\x85+\x998\x0f\xb2\xe6\xb2\ \xe1+A\xf6\xc7\xf3\x87=\xa0\xc1\x87\x19\xd2\xfeLh\ \x1d\x1d!`B\xac\xfc\xbd?\xd9R\xf9\xd5\x92\xed\xa3\ \xf9\x8d\x91g\x0f\xca\xbd`B\xe1\xe2B\xae\xa9b\xe4\ A\xaei\x81\xc9\xd0s\x80\xf9\x15\xfca\x1f\x16>\xa4\ \xae\x86EhX\xa0\xb4e\x00\x8b<\x8a\x0a{vT\ \xbeL`\xed\xcd\x09CJw\x09\x810\xa8y\x87\xf0\ \x1dX\x83\x8e\xe2\xf3\xa5\x5c\xf0f4}|\x93\x82\x1c\ \xe6q\xec2\xa8J\xf5.\x059\x1c\x11\xc98\xc2:\ ,\xbb\x98J]o9\xb0o\xe1.u\xf7v)\xae\ \xf4Z7\x04*I\xe2E\xd1:\xcf\xc87\xb7\x03\xe2\ P\x82\xda\xbf\x8a\x00\xf1\xba\xe7\xba\xb1\xbeDd\x8e\xc7\ \x00\xbc\xb6xm~\x99\xe0q)E[~8\x13\xe2\ \x08H\x1c\x82\xc9\xed=\x8bdH\xc0\xdb\xdb\x142\x0b\ \xa5\x921\xf3Ur\xe4\xba\xf4\xaag-`'\xd6\xf3\ ;\x93\xdd\xe1.F\x920q\xbd\x8b`\x87w\x88\x07\ \x01\xacf\xe0yY\x05\xf6\xb7\xb6\xf9\x0e\xfa\xf9\xf7\x1c\ \x0fa\xbcX_k\x9e\xd7G\x93>&\xfc\xaf\x95\xd2\ $\x98\xc7\xc9\xc6\xff\xe6M\x5c\xea1\x82\xb9\xf5\x9b\xca\ \x03\xeb#\xa0\xfb\xcdu\xa9\xd6\xa5\x1d$\xf14\xf5\x8b\ 2\xc8\xcb\xebU\x1e\x97q:\xb5\xf5F\xd8Or\xbb\ \x1c\xd7:i8\xcb\xf2Z\xa9\xca\x8e\xcd}P\xe5\x82\ X\x90\x00\xb1\xae\x0bbG\xc2F\x97\xb7\x1d\x11\xb8\xef\ \xc3\x0e\xbf<\x1d\xc9\xfbN\xf7\x8d\x0f2\xa03r)\ \x87\x94\xa7\x19\xc6\x99\x10f\xdf\xa91\x10\x94Z\x7f\xb3\ \x00\x0f\x8e\x11\xf0\x01\xe4\x9e\xbeh\xc6\xf0\x07\xe4MO\ \x90\xdb\x1e|\xc7.%\x04\x1a\x88\xd0\xec\x11\x92\xea\xbd\ \xab\xb2\xdd!\x96\x0e\xc3T0\xa6\x87\x13\x8eG\x11F\ B\x170v\xd5L\x1c)=\xd8\xd3{{\x9d\xedn\ \xef\x83p\xa0\x81\xc4\x14\xb3s||\xfb\xb9 r\xfc\ \xa9\xd8\xd7S`\xe8;\xddc\xee\xd9%\xeb\x13\xd8\xd9\ I\x1dG\xd9I\xa5\x0e\xb6\x9e\xf4\x86\xfa\x9b`\x18i\ \x16\x12\x08O.l%4_\xb8p\xb8\xe7\xb9\xae>\ -\xc1:VQ&\x05\xc8\x9b\x9e\x9a\x9d\xa0\xe3\x22\xc2\ \x85\xb4f\x9a\xaa\x9cciv\x1e\xac\xc3/\x09\xdd<\ \x07b \x13\x92h\xfa\x99f\xcf!\x08\x82\xa4!\xb6\ \x84`\xcb07\x872\x0eU6o\x91sf5\x03\ \xf7\xa5-\x81\x84{\x09O\x9fB\xd4]\xfaj\xf3\xb5\ fk\xf7\xa7\x07!d\x9en\x99\x18\xc5\xc5\x22\x81D\ \x1d\xa7z\x8d\xae\xb3\x07\x95O\x92l\xe5\xd7\xb7\x0c\xd7\ \xe6\xdf8\xd1\xcb\xb4\x15\xedX\x11\x17Yu`\xed\x07\ \xcb2\xbb\x9e\xc7k\x1b\x14\xd2\xa8\x22^Mr\xf3\x06\ v\x9c\xc2\xc2/\xb6\xea\xc5\x87wo\xfa\x1al\xa0\x1d\ <\x16~EI\xad\x05&\xe2h\xff\x17\x14F\xd6\xad\ ~\xfb\xa8\xac/{/(\x95!\x02\xa1\x935\xe1y\ A\xf7\xf1\x8a\xa8-\xad\xae=}t\xe0\x14\xd7\xf3 \ \xbfWy\xd5\xa1\xfan\x1b\xcf\xedH\xe6q\xd4y\x06\ \xf4\xab\xe7\x0a\xdd\x5c\xe9cd\x88\x05\xd5\x0a\x99\xdb\x96\ }a\xa1\xff\x97\x9a}\xa1\x89\x17{\xb2\xeaN\xca\x1e\ \x07\xe1\xfd\xd4\xcc\xd8\x0f\xc2p9_\xeak\xfc\x86\xb7\ \xd5\x81\x09\xe4\x05\x8e=1\xa4\xd8q]\xf8\xaa\xfd\x94\ Q\xbdq\xa5\xd8\xf8\x14\x84{\x82\xf5\xc9\x94v%N\ \x90 C\x17;\x98#\xc1<\x0b\xca\x1b)\xb0\x07\xfb\ \xdev\x17\xd8\xf0R\xee\xea\xbc\xb3\x1b\xf5\xf7N\xa1\x95\ \x83\x97\xe8\x1c\xd3\xf7C\x82\x13.d\x1c\xe8F_B\ \xdd\xbd\xf8/\xbc1S,\ \x00\x00\x0bu\ \x00\ \x00'\xcfx\x9c\xedZ\xebs\xdb\xc6\x11\xff\xee\xbf\x02\ \xa5\xa73\xd6\x94\x00\xef\x8d\x03-)\xe3\xd4\xe34m\ \x9avb\xa7\xfd\x98\x01\x81#\x89\x18\x04X\x00\x14I\ \xff\xf5\xdd=\xbcIJ\x96\xe4\xee\x16\xcc\xf5W\x87M\xea\xdc\x99\xa2\ L\xf2\xecfB=2qL\x16\xe5q\x92\xadn&\ ?~x\xe7\xea\x89SVa\x16\x87i\x9e\x99\x9bI\ \x96O\xbe\xba}q\xfd\x07\xd7u\xfe\x5c\x98\xb02\xb1\ \xb3O\xaa\xb5\xf3m\xf6\xb1\x8c\xc2\xadq^\xad\xabj\ ;\x9f\xcd\xf6\xfb\xbd\x974D//V\xb3+\xc7u\ o_\xbc\xb8.\xefV/\x1c\x07\xb4\xe2j}3Q\ b\x82Ok\x93\xac\xd6U\xf7\x98\xc47\x13\x90S\x5c\ Q\xfb\x5c\xc2\x86\xb6\xf0o\xde\xed\x94x\x9c\xd5\xa2\x8d\ \x8d\xf9\xc0\x09\xea1\xe7\x15\x09\x09\x89\x96\x92\xf3`\xea\ 0\xc2\x98K\xe0?q5^/\xce\xa3,\xdc\x80_\ !\xdb\xfe\xf4\x17\x93n=0;^7\xdfU\xdb]\ \xf5\x939T&\xab\x0d\x807\x03\xd7,\x1b\xd5:\x9a\ \xd5\x1fn\xc7\x12\x00\xe8\xac\x9c\xb727\x93\xfbp\xc2\ \xfd\x94\xdb02\xe5l\xb4`\xad\xdf\xee\xbc\xd3o\x09\ ^\x99\xef\x8a\xc8,a\x09\xe3e\xa6\x9a\xbd\xfd\xf0\xb6\ c\xba\xc4\x8b\xabx\xb0\xcc!\x85\xb5G{\xd8sk\ \x9d\x06A0\xb3\xdc^\xfa\x92\x1c#\x84\xccZ\xac\x9a\ \xad\xdd\xad\x1e)Y\xc4\xcb{m\x136\x83X\x81\x84\ [\x1e\xb3*<\xb8Y\xf9r\xa0\x1aE\x9df\x84\xf9\ \x97\xdc\x99(\xdfl\xf2\xac\xac\xc1\x1b\x09\xc7\xbd\xf0v\ W\xa4V\x22\x8ef&5\x1b\x93U\xe5\x0cB3\x9b\ \xdc\x82\xfcul\x96%\xea\xd5\xa9\x87O\xdc2\x80\x05\ X\x98\xb0\xf8\xa6\x08\xe3\x04\x94j\xa1Zl\xcca\x82\ \xd3F\x07\xb4\xca*\xdf\xb6\xb2\x90o\xd51\x85\x90#\ \xd1\x8d\xf24/\xe6/\x97\xf6\xf3\xda\x92r\x08wR\ \x1d\xe7\xf4\xf5\xa4\xd7\xc9\x97\xcb\xd2@I\x90\x01\xcd\xd6\ \x05h\x80->qf\x8f\xb7\xb6\xd0\xf8\xf3\x08k\xf4\ \xb25\xd9Y\xbb\x9e\x8d\xdd~\x18\xa5\xb6\x88`\x1b\xa9\ \x89`\xfd0\xdd\x87\xc7r\xf2\x00\x8cT\x09\xf1\x04\x1c\ \x89\xfd<\x17G0\xa6\x9e\x04\xe4%s\xe4\xd1@\x82\ 9\xfd9$\xf1)L\x9f\x8c\xa4\xad\xd9\xf9\xba0P\ Z//A:\x84|l\x03\xf8\xb2G':\xdcL\ \x98\xf4(\x93=\xe9x3\xe1\xca\xf3{\xca\xf2\x5ch\ y&T\x00\x0arHX5\x06?\x14aVB\xa7\ \xda\xdcL6aU$\x87WtJ\xf0\xc7\x93\x81d\ \x5c\xc3\x9fTx\xda\x97Wg\xaa?fI\x05\x0di\ W\x9a\xe2=6\xc9\x7fd?\x96\xa6\x87\xf4\xd1\xc5\x1a\ p~_\x92u\xd1\x0a\xb8\xfcL\x1e]H\x90 Z\ D\xb19\xc9\xc7\xfbSl`\xcc\xffL\x16]0\xc6\ \x88\x08\xb5\xff;d\x14\xc2\xf7@B1\xe2\x8f\xf3I\ yR\x08\xce\xe8(\xa5\x98\xf6\x84\xd4>;I\xab3\ \xd9\xe5EY\xc8.\xc6<\xee+J\xd5#\xd3\xe4\x11\ y\xe8A\xfaq\xc1 \x15\x09\x81d\x14ZN]\xfc\ \x1b*\xc4\xf7\xd5\x94z\x5cR\xe6\xb3\xa9\xab\xbc `\ \x92\xf2\xa9\x1bx\xbe\x10Z\xb0\xab>\x0e\xbf\x02\xe2x\ \xba<\x80\xb8\xe0c\xc4]\x1ax\x92J\xc5\xf5\x08r\ \xaa<-\xa5R|\x04\xf9\x05\xe1\xe5Ea\xc0\x5cC\ As%\xf8#\xc0\x14\x9e\x102\x08\xea\xda\x86\xb5\x94\ \x92S\xe5{\x0c\xa0\xa4S\x97\x12\xe1)\xe5\x07\xbfT\ \x8d\x7f\x01\xb8\xdc\xd7d\x04\xee\x19\xbb\xcf\xb0\x03\xbd\x99\ \x08\xea)\xc1\xb4\xec!?\x02U\x024@\xa3=4\ \x07V\xe7(\x10\x07\x80\x1d\x81\xea\xd7D\x16\xfcF\xce\ _t\x8a<\xe1\x98\xe5B\xc9P\x9c\xb6\xb5\xc7\x9d\xb2\ `\x8a=\xe9\x90\xf5Y\xb0\x8c\x96\xcf\xc9\xc0Y\xb7\x19'\xa9\x10g\x904\x12\xed\x88\ \xa9\xc5\x99o\x8d\xc4\xa1O\xdfS\xd6\xf1\x02\x0b\x1d\x1b\ \xc2=\xd8\xff2IS\x88ll\x16Z\xb7`\x95U\ \x91\x7f\x84Do\x0f\xeda\xbc\x1b\xdc.!\xd0l`\ \x13\x1e\x92M\xf2\xc9\xc4\xf7\xe4D\xb46\xd1GS,\ \xf2\xb0\x88q\xafM\xfa\x8fp\x1e6\x83o\xe0\xf9]\ \x91o\xfeY\x18\x22\xd4{SU0\xf1\xf7\xfd\xa2:\ \xe2\x88z8\xa2ZG\xcc\x8bd\x95d\x87a\x91\xd7\ \xa4\xe3\x90\x84\xb3+\xacu\x18VgC;\x0eim\ \xfa\xfb\xd4\xa7Qo\xc4l\xb6\x1dg\xe1/\xa2\xbeo\ \x0e\xd2\x9e28\xad\xf4\xe0`\x02\xad\x01[r\xb8(\ \x88`\xc8mv\xd0\x17\x05L\xe8I\x99,\xb0\xf5\x0c\ `\x07\xd9,\x04b|B-\xb3p\xdb\xc8#$\xd8\ T\xca\xb5.\xbd\ \xb4it\xcb\xd9\xe2\xe8\x96\xe1\x8cydv\x96bQ\ \x9e\xc1\x9dr\xb1{jZ\xfc5\xfc\xb8[8\xef+\ \x03\x15[L\x9d7Y\x0c\x1b(\x9d\xef\x93\xb4,\xf3\ ''\xc9\xa5M\xd8D\xb1N\xde6>V\xc9\xca\x14\ \x95\x07.\xd6x\xd5\xcc\x17\x83\xc5\xb1\xb4\x87\xa5\xfe\xdd\ )z\x83j\x7f\x22p\xe3\xb0lM\x01\xe5[~6\ ,{\xb3\xf0Z\xa2]:\x8af?\x98m\x91\xc7\xbb\ \x08\x93p\x1c\x8f/\x5c\xf8mR\xd60^Z\xb80\ \xff\xd9%\xa0\xf1\xac\x95\xbf\xcf+\x80\xe4\x97]\xf3M\ u\xfff\xbf\x08\x05S$w6\xa4\x98\x0d\xe5/\xbb\ \xe9\xf7\xeb\xb00o\xd2\xe4\xe3\x10\x0c\x9bzM\xaa\xb5\ \xd7\xe3\xc1\xb9s=kO%\xfb\xb4\xeaO\xab\xd1}\ \xae\xbbR\xa4\xe1\xc2\xc0-\xe7;d:g\xdcU\x91\ \xef\xb6\x9b<6\x8dz\xc3\xaf\xfa)\xd1\xfe\x99B\xf3\ \x7fE\xa6T]\xb5'\xe1jxMYi5x\x19\ \xb8\x0d\xab\xf5`ph\x0f\xdb\xfa\xb2\x12\x16\xd1\xf9\xcb\ \x12\xbc\x88\x0d\xe6\x09\xbc\x81\xcd_\x92\x05\x95\x8c6\x8f\ \xf5\xcdq\x0e\xb5\xa3t\xa0\xa4\x10-\x1d\xcfx\xf0d\ \x0e~d\xf1\x90\xf8s\x9edc*\xe4\x00\xdc\xe1\xe0\ ~V\xcd;\xf58\x84{aQ\x84\xc7y\x96gf\ \xb03t\x0b\x1daA\xc0&\x17\xbc\xc1[8\xbf\xcc\ 9\xde\xc7)P\x87\x5c\xe4\x1cO8`\xfd\xef\x8eb\ S\xce\x9c7\x0e'SN\x1c\xe2P\xf8\xb1\xa4!\xa1\ \x16\xfa4\xd0\xad\xceF|\xe2\x05\xf5\xf8\xe27/\xf0\ \xbaG\x0a\x80\xda\x0fL\xfa\xc2\x0b8~\xae\x86\xc9\xf8\ \xcc`\xc2\xd5\xe4\xd5\xf9\xf8\xae\xae^#w\xf0\x06\xb8\ \x0d\xf6(\xf6]\xb0\x99\xfdp\xfe[\x06\xdb\xe5\xff\x0b\ \xe1n\xe3<\xe5\x1e~_\x13\x04\x18`\xe6\xe9\x07b\ {\xbe\x0e\xf5`\x00\xf5}0\x89\xabQ\x1cH\x15\xd7\ b\xaa\x94'\xe1\xf2\xae\x84M\x1a.\xe5\xf0\xf5P\x9f\ \x07p\x0c\xbb%\x0cCs.<*9c\xdaW\xdb\ \xc3\xeb\x9a\x8e2\x10\x06\xb8\xfa\xa65\xe5.,\x920\ \xabF\xb4\xbd\x1d\x06\xe7\x8b<\x8d[\xb5\xc2T\xd1\xba\ \x15\xaa\xcc\xa1r\xc34Ye\xf3\xb2\x0a\x8b\xea5\xe6\ B3B\xce)\x93\x7f|\xbd/\x12\x1c\x99\x5clq\ \xf3\xb4p\xabE\xa3\x94E\xeb\xbch\xb4\xfa\x8c=\x7f\ ]\xf7\xa4\x8c\xa5\x00\xb6\xf2\xb5$\xc1i\xc6\xc2\xc9T\ =\x9c\xb0\xbd\x05\xeb\xe92\xdc$\xe9q\xfe5\x9c[\ \xe0s\xb8q\xfee\x8a\xd0y\x0f!\x1a\xa7\xcd\xc6q\ \x19\xf1\x98\x9cJO)*5\xd7N\xe4\xb8P\xd62\ 4\x982Oq\xe3J\x10\xf2\xa8\xf0\x15\x87\x06\x00\ c\x19g\x5c*\xc7\xe5\x1e\xd3\x80\x12\x908x*Q\ \x8dr\x16X\x0a\x83\xf9\x97i\x8e\x8a\x84\x04\x82\xf2\xa9\ \x1d\xd8$\xc8\xa3\x22\xf7\xf1\xb5\xea\x94:\xf8\xda\x95\x12\ X\xd7\xbe\x7f\x85\x89\xcfR\x18\xd1zL\xe1\xd6P-\ \x0eK\xdb7\xb7Z5\xd2LY\x02\x0d\x18\x15\x03\xe9\ \xfa\xf7\xb3u@i\xda\xecn\xf8\x8c{s\xc83$\ S\xf8[B&+&\x09C\x94\x7f\x05\x1b\xb5\x8b\xd3\ \xc6c\xa7qp\xda8\xec\x9c\xba\xf9tq\x1b\xab\xda\ \xbc\xd3\x06\xaa\x7fl\xa2\xf4{\xc9A\xfe\x09(:\x9b\ :>\x0d\x88\xe0@\xd2\x8a)\xc2\xa1\xd5xL\xf9\x14\ \xf2\x9by\x01%\x92\xe0\xcbi\x0fb\x01\x22Dh*\ (jq\xa5}HmHZ\xc1)UH\x82x\x09\ ?@-H\xdf\x86\x80P\x04\x02\xa0\xd2P!\x14\x0b\ \x04\xdf\x15\x8b&\xf5au!A\xc1\x86\x1a\x08\xb5\xbc\ $\xdagX\x06\x02v\x1f\x00\xc1\x87\xe2\xc1o\xc1\xbc\ @s\x0b\xbeo\xab\x89\xc2\xd6\xb5\xad&b\x5c\x8c\x8d\ \xd0DI\x1bt*\x04\xb5~\x07\x12\xf6\x8b\x14\xac;\ \xd0\xa8\xcb\x0fLkf\xdf\xc4\x83\x8eO\xa8B\x92\x0f\ \xe6\x14\xca\x000\x01\xa5X\xa4\xb5\x8e&>U\xca\xf9\ \xce6\x00\xeb\x1b\xc5\xef\xf5\xea\xf2g\x84\x0a\x19\xe0\xf1\ \xae\x89\x08\x90\xe2\xfb`\x14\xbf\x1a\x01\x03\x90\x1d\xb6#\ (\xc9|\x0e\x084\x1b\x06\xf84\xa0\x86>\xfa\x14\xf6\ j\xeds\x19\xf8\x0aWb\x1c\xe4\x87$l)\xe0:\ \xb3\x85AN\xa4\xaf\xb4\xc6\xa5\x9b\xba\x85{\ ?\xb3\xfb\xc6Ka`IP\x11L\xdb\xd2\x83<\x87\ TF)I ?\xa1\x9e\x05\xb6\x82\xb6G\xa4\xd8%\ T\xed\x1c\xd6\x0a\xd8\xb6W_Y\x9fS\x81\x86\xec\xc6\ ^\xc3\xa1T\x03T\xd2Z\xc0\x98\x01M\xa0>\x22\xa1\ Z|\xdc\x0a\xf6\x08H}P\xd1P\x98\x02w\x03f\ \x84f(\x01\xa8j\xde\x90@\x05\xae^\x9aa\x89\xe2\ r\xd6K\xa8\x18\x06\xddL\xd6u\xcd\xb1\x88@\xca\xe7\ P\xe2\xbe\xc6\x8ad\xd4j\x0aOcG\x80S\x06T\ \x05\x1c\xba\x81\x8f{\x82\xb3\x940\xc9\xf0\xfcU\xe0\x8c\ \xb0\xce\x81u\x1f\x8bG\xd50\xd5\x14\x00\xf2\xd3\x85\xfb\ -\x95R\x0c\xc9\xfd\xf7Q\x19\x5cS\xaa\xbcp\xa3]\ \x01\xd3\xee\xae0'\xdf\xa0woL\xe1\x1e\x85w\xff\ \xf2f\x12\xdd\xf7)/\x93\x1f\x98*\x86S`\xf7\x7f\ \xdc<0\x18|\xc1\xed\xea\xf4\xf6\xc4\xfc)\xf3\x1dJ\ \xb0\xa4\xa6\x94`\xd7\x86?/\x81\x07\xf3\x8b~\x02x\ \xfdw[\xabzl\x87_\xd7\xf8\xe2\xf7\xf6\xc5\x7f\x01\ \x94>\x93\xc4\ \x00\x00\x09\xd3\ \x00\ \x00#\x18x\x9c\xe5\x19ko\xdb\xc8\xf1{~\x05\xab\ |\x89q\x22\xb9\x0frI\xca\x96\x0f\xe9\x19\x09\x0e\xc8\ \xa1E\x1e(\xda\xe2\x10\xac\xc8\x95\xb45E\x12K\xca\ \x92\xf2\xeb;\xbb\xa4\xf8\x90hG\xf6\xdd\x87\xa2\x11\xe3\ X\x9c\x99\x9d\x99\x9d\x9d\xe7\xfa\xe6\xe7\xfd&\xb5\x1e\x84\ *e\x9e\xcd'\xd8A\x13Kdq\x9e\xc8l5\x9f\ |\xf9\xfc\xce\x0e'VY\xf1,\xe1i\x9e\x89\xf9$\ \xcb'?\xdf\xbe\xba\xf9\x8bm[\xbf(\xc1+\x91X\ ;Y\xad\xad_\xb3\xfb2\xe6\x85\xb0\xde\xac\xab\xaa\x98\ \xb9\xeen\xb7sd\x03tr\xb5r\xaf,\xdb\xbe}\ \xf5\xea\xa6|X\xbd\xb2,X\x95T\xeb\xf9\x84y\xc5\ ~\xa2\xdf\xd7B\xae\xd6U\x0f \x93\xf9\x04h\xfd\x90\ `\xf3^\x82R\x05\xfc\xccZm\x91CIM\xda\xc8\ \x99\xf56\x82\x1db\xbdA\x1c\xa1x\xe9S\x1aM-\ \x82\x08\xb1\x11\xfc\xf3\xae\x86\xfc\x92<\xce\xf8\x06\xf6\xc6\ I\xf1\xf5\xd3\xbd\xa8\xe2\xf5G\xb1\x14\x0a\xec \x1c\xd0\ `(\x22\xdfV\xc5\xb6\xfa*\xf6\x95\xc8jY\xb0\xb9\ \xdeN\x0dZ/kaf}_\xb3!C\xb1/r\ U\xd9K\x99\x8aZ\x0dw#\x12\xc9\xdd\x84W\xdc\xfd\ g\xae\xe4\xbd\xfbN\x09\xf1\xcb\xdb;W\xc6yV\xba\ \xb5\x8aB9E\xb6\x1ae\xb5O\x0a9\x9fx\xfe(\ \xf2\xd0G\xc2\xe1g\xe5\xecH2\x9f!\xa7\xc8oy\x0e\ \x81\xe3\x81?R/l\xd3B\xe7\x0f\x90IH\x00\xbe\ F\x10\x0d\xcf\x90 \xcf#\x0e\x85\xdc\x11\x05g\xc8\xad\ \x82Y\xa3\xb2S~\x10\xb0\xa9\x15\x85\x5c\xd1\xd0\x94\xeb\ |\xb7R\xda6\x95\xda\x8a\xd3\x850\xb8lu\xd3h\ okOn\x06\xa7\x1e\x85^k/\x16\xf9~\x9c\xc1\ Nf\xb0W\xbb\x19\xc5\xb0\xe7\x9dY\xa4\xa18\x0eg\ \xa1G\x1f\xa1\xd8w\x0ey\x8a:<\x8e\xda\xf0\xbd\xdc\ \xc8o\x22\xe9\x1c\xab%)3^4\xba/yZ\x9e\ )o\xf0Y\x9e\x88r|s\xc6\x85\xd6\x22\xbe\x17j\ \x91s\x95h-N\xab\xb3\xb6\xcf\xd1\x9f\xebj\xbc?\ h\xd8 \x9a5\x80DQ\x97V\xc4\xa6\xd0\xc3\x90\x19\ \x91\xbb\x14\xf4 K\xb9\xd0\xf1\xd5S\x06h3\x0e\xc0\ \xe4\x04\xaauo\xe85w\x1d1e\x9e\xa5\x87\x86\xac\ \x8e\xa5\x1b\xf7\xe6\xc9N,\x8c}v\xf2^\xc2\ \x8c\x9d\x88\xbdS\xac\x8b\x9f\x8d\xa8\xf9[U\xed@\x03\ \xc3\xb5\xe51\xe0\x5cl\x17\xa9,A\xd3gY\xac\xb9\ Wx\xa6\xbdFdi\x962\x01R\xb9\x94\x00?\xde\ W\x94*v\x7f\xcb\x93\xf6\xc6\xc2}\xbf\x95\xee\xc7\xc6\ 7\xca\x93\xeb\x8c\xd6\xc6\xfa\xf2\xc4\x08\xeaq\x1c\x9aQ\ '\xa3\xf2%;\xb5>\xbc\xff\xfb\x07\xf2\xd337|\ *OKKe,\xb2R\x98\x93,\x9b\xa3\x5ce[\ s\x86q^@\xa1]Vn*Jh.\x9cu\xa5\ \xc3\xa7\xb7h\xe8\xeay\x06\x8e\xbb\xd8>\xdb\xdd\xf9J\ \x1d k\xfcn\xbdM\xc5\x9e\x83\xcb(\xeb\xbd\x81<\ \xd7\xff\xcf\x150\xb4\xfa@\x8e5\xbd\x97Ln\xdcc\ \xb61o\xab.\x0b\x99\x02v\x96\xc7S\xbe\x10\xe9|\ \xf2A#\xad3\xecJ\xe5\xdbb\x03Y\xbcY~\xcc\ ^\xabA\x06\xee\x95\xc4'o\xce\xd6\xf9F\xb8\x07s\ gv\xd7\x14\xc7\xd2\xfd\xc0\x17\xee\x9d\xe2p\x1e\xb5\xc3\ %\xfa{{y6\xc6\xb1\xbe@\xa3\x0e\xf1\x82\x10\x9a\ \xf6G\xe9\x0e\x8f\xd0Ug\x8d6\xb4\xf9\x94\x05!\xa3\ \xa6\xd1\xee\xdel\x98K\x1d\xec\xfbX\x0f\x09\xd0\xaa\x86\ \x0cZ\xd8\xab\xae[\x5cu\x07X\x1b\xa2\xbd\x002h\ \x05\x1dh\xdf=\x9a\x0eoxy\x02\xf6IgY\x9e\ \x09h\xf3T~/f\xaf\xb9\xd7\xdc\xaa\xe8\xd7\xba\xfc\ \xcf<\x0a\xc2=D\x99\xcf\xeau\xc4k)t}\x82\ }\xcf\xe0\xac\xb2\xa4\x0f\xfcO.\xb3!\x14R\xbbP\ )\x14\xf5j\xe6\x1da\xdd\x95D\x03H8tYJ\ \xf1C_-\x03\xad\xdb\xcc\x19\xba\xdep\x05\x85\xbb\xc6\ \x9bJ)S\xcd\xa2)\x9a\xd7\x89,\x0b\xf0\x97\x99\xcc\ \xb4\x1a\xd7\xf9\x83P\xcb4\xdf\xb5\xf8\xba\xec\xda\x0b\x1e\ \xdf\xaf\x8c~3\x1e\x83?l!w\x8aI\xdfbf\ \x96\x04+\xd2\x90!\x9b\xb2\x01\xae\xe9\x8bH\x108!\ \xf2\x87\xb8cGD\xbc\xd0\xf1\x19\x89\x06\xc8\xbd\xbe\xaf\ \x08`\x82\x0aQ8@\xe8\xb6\x14\xb3\xd0\x09|\x8f\x0d\ k^\xc1\xab\xf5\x9ft\x920\x1dEa\x04\xf3f\x18\ \xd5\x9f\x80\xfe \x07\xa9\x8d\x08\x07I\xec`\x80:\x0f\ \xc7@\xcf\xfb\xcc\xf7h3\xf7\x12\x1a\xf8,\xc0\xd3\x88\ \x12'\xf2\xa1\xd9\x9bF\x98\xc24\x1c\xf5\xe7^\xfd\x01\ !\xbfYp\xe4\x94\xe9gJ!\xf6\x03xB\xeb\xad\ \x85C\x98\x93\xf53m\xbfY\x08\x1el\xc1`\xda`\ |\xecx><\xec\x09jLzl/a\x8a}\x07\ E(\xc2O\x10\x8fi\xfc\xaf\xc1\xc6N.\xa5\xb8\x8a\ \xc7\xd1J\xbb\xf0\x91\xfb#$\xfb\xef\x92\xe8y\xa8\xd5\ \xe4\x11\x92\xbd\x99\xe8\x1b.\x83Xya\xd6\x13K\x12\ \x91h\x18+\xd8s\x18\x81\xc4\x1bx\xb4^\x87\xb0\xf7\ \x83\x04K\x97\xf5\xfew\x92\xdew\x9c\xf0\x0f\x9c\xb3\x13\ 1F\xf5\xb5[\x93\x13#\xf2\x83\x1cs\x9b\x13\xd9%\ q\xf6\xd2h\xbd \xe6\x1f\xcf\x1c\xff\xb7I\xf5\xd1\xc2\ C\xa3A\xe1i\xea\x0eE\xb8_w\x9e\xdf\x1f\xc4\xa9\ ,l\xb5M\x85v\xadoB\xe5\xdfu\xa5\x11\xef\xeb\ \x1cZ\x96y=k\xce8\x0c\x07\xd7\x1b\xb9\xb7\x81 \ Kl\xdd\xaf\x83\x08\xb5\xe1\xe9\xb5\xd1\xc0\x96\x19DF\ q$/?\xbe\xff\xeb\x18B\xb7\xea\xf0Z\xce\xea+\ BM\x05\x22dr\xfa\xd7>\x03\xeb\xf40!\xbeU\ \xe9\x9b\xb3\xcbd\x82\xae\x0c\xf6\x84xh\x83c^@\ \x94\x9e\xf5J\xbd\xfc\x7f\x9a\x0f` \xaa\x9e\x9f\x0e.\ \x88\xfe\xb3\xc4\xd1O\x07\xf5w\xbb\xac\xb8\xaa\x06\x90\x8d\ L\x06\xefp\x0e\xf5{mg%\xf4\x00(\xb3U}\ V\xe6\xea\xe6\x14\x08\x9a\x15g\xc0J\xec\xabS\xd8\xc5\ \x09F_=Y\xd0_\xea\x00\xc4\xde\x14\x13\xa2\xff\x84\ \x81\x89\xf5`\x85\xe0\xd1\x98\x11km\xd9>u\x22\x84\ #+\x850D\x0e\xf2\x10cS\x0c\x1e\xcf\x82\x80\xb6\ =\xff4 \xbd\x04V\xc3\x04\x02|\xec#\xa3o\ \xa3\x15\x0c\xa3\xde\xdf\xf4\x0c\xa2\xbb\xa0\xcf\xe0 a\xa8\ \xb5\xe3\xadz\xe0\xd5V\x09}\x05\xd8\xbb\x1dwW\xc7\ \xf1vU\x0f\xb6\xf0\xebF\xdfw\xdd\xbe\xfa/\xfbS\ !S\ \x00\x00.\xce\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ id=\x22linea\ rGradient7597\x22>\x0a\ \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a \x0a\ \x0a \x0a \ \x0a \ \x0a \ \x0a <\ /marker>\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \x0a <\ metadata\x0a id\ =\x22metadata3090\x22>\ \x0a \x0a \ \x0a image/sv\ g+xml\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a\ \x0a\ \x0a <\ g\x0a id=\x22g96\ 6\x22>\x0a \x0a Parts\x0a \x0a \ \x0a\x0a\ \x00\x00\x0bV\ \x00\ \x005\x96x\x9c\xe5[[s\xdb\xb8\x15~\xcf\xaf`\ \x95\x97d*R\xb8\x12\x04mgg\xdb\xcc\xee\xec\xcc\ \xb6\xdb\xd9d\xa7\xed\x93\x87&!\x995EjH\xca\ \x92\xf2\xeb{\x00\xde%\xda\x96\x14\xc5\xdd\xb6v\x12\x09\ \xc0\xc1\xed;W\x1c \xd7\xdfm\x97\x89\xf5\xa8\xf2\x22\ \xce\xd2\x9b\x09v\xd0\xc4Ri\x98Eq\xba\xb8\x99\xfc\ \xf6\xf9\x07\xdb\x9bXE\x19\xa4Q\x90d\xa9\xba\x99\xa4\ \xd9\xe4\xbb\x0fo\xae\xff`\xdb\xd6\x9fs\x15\x94*\xb2\ 6qyo\xfd\x94>\x14a\xb0R\xd6\xbb\xfb\xb2\x5c\ \xf9\xb3\xd9f\xb3q\xe2\xba\xd2\xc9\xf2\xc5\xec\xbde\xdb\ \x1f\xde\xbc\xb9.\x1e\x17o,\xcb*`\x8e\x15\xfc\xf5\ \xa3,L\x83%\x0c\x1d\x90\xd5\xed\xf7\xdb\xb8\xf8[\x12\ \xa4\xea\xafY\xbe\x0c\x92?giQ\xe6A\x9c\x96\x0e\ t\x9b\xe8~\xcd\x98~o\xd1\xd8!\xd6;\x14 \x14\ \xce9\xa5rj\x11D\x88\x8d\xe0\x0f{o:\xf5i\ \xabQ\xa2\x9b\x09\x8cH\x91\xc7M\xf9^\xc5\x8b\xfb\xf2\ f\xe22S\xdc\xc4Qy\xdf\x96\x00\xa2\xb4\xf0\x9b\x89\ o&O\xedPo\xa3X\x05\xa1*fM}\xaf\x7f\ \xb3\xe1\xb6\x7fS\xe1\x14\xd9:\x0f\xd5\x1c\x86PN\xaa\ \xca\xd9\xc7\xcf\x1f\xdbF\x1b9Q\x19\xf5\x86\xd9&0\ \xf6`\x0d\x1bjf\xc7R\xca\x99i\xed\xa8\xc7\xe8\x08\ Bh\xd6\xa0Y/\xedqq$e\x1e\xcd\x9f\x9c\x1b\ \x91\x19\xa0\x0e\x14v\xb1K\xcb`k\xa7\xc5\xdb^\xd7\ 0l{\x86Zr\xe2G\x15f\xcb%p\xb8\x02o\ @\x1cu\xc4\xabu\x9e\x18\x8a(\x9c\xa9D-UZ\ \x163\xe0\xe3l\xf2\x01\xe8\xaf#5/t\xbf\x8a\xa7\ \xba\x04L\x15\xa6\x0dZ\x01\x0e\x15\xe4?\xe6A\x14C\ \xbf\x8a\xae\xa2\x1c\xb6PO\xe0\xba\x0f\xf4*\xcal\xd5\ \xd0\x82\xa4\x96\xbb\x04\xb8\xae+\xed0K\xb2\xdc\x7fK\ \x00\x9a\xf9\xfc\xcaTe\xc0\xf1\xb8\xdc\xf9\xf8j\xd2\xf5\ \xc9\xe6\xf3B\x81<\xa1^\x9d\x919\xe8\x01s\xd1\x89\ 5;~\xb6\xf9|\x1e\xce\xc3#f\xc3\xe3\xb3\xf1v\ \xb6\xeb\xd9p\xdb'\xa3\xe4\xd2\x13P\x9a\xcfA\x80\xd0\ \xd9(\xb9\xfcD\x94\xa4\x0a\xbc\xb3Qr\xc5K(-\ \x83\xfcA\xe5-:\x8d\x1d\x82\xee\xe1\x83\x1e\xe7\xfb<\ \xcf6\xe4g\x95F\xed\x04Y\xae\xfb\x83i[\x97Y\ [\x99\xab\xf9?\xfb{\x86\xf2?\xfa\xe5'\xc6\xaa\xb7\ \x9c\x81-\x9b'\xd9\xc6\x7f\x8c\x8b\xf8.Q\x1d?V\ Ay?\xdc\x99\xaea\x5c\xb0\xc9\x01p\xf38I\xec\ |\x9d(_=\xaa4\x8b\x22\xc0-\xcf\x1e\x94m,\ \x9f\x8f\x1c\x97\xf0\xa6J\x83\xf1\xaf,N\xfd<[\xf7\ \xd6cY0\xc3_,\xcf\x11\xd8\xe3\x9e\xf0\xa6\xccA\ \x94\x0a\xca\x89e\x13\x87 A<\xc9\xa7\xc8A\xd8E\ \x98\x12\xb7\xa1\xf4\xd8\xd4\x06R\x84\x05\x12\x9e\x15Z6\ v\x04\xe3LB=q\xa8 \xc8E\xd2TR\xce\x18\ \xf2\xa6\xdcq1\x10`\xa8t\x95-\xa6\x1eL\x03-\ \xd4\xfa\xd2[\x0a8\x89\xb4\x00\x0b\xba\xbc\x99,\x832\ \x8f\xb7\xef`\x04\xdf\xd5\xd3\x0b\xa2tJ\xd8\xf8\x95\ \x01\x11?5l\x14J\xa8\xb3Q\xe2/\x86\x8d\xad\xa2\ \xae\xe0x\xb5\x02M\x85\x90\xbe5P\xcd\xf1\xae\xdc\xe9\ #\xd3\x90\x94v\xce\xa3;\xce\xadn\xb77\x13\xea\xb8\ \x1e#.\xd8x\x1f\x0c\x13B\xae+%\x81\xefx\xb4\ \xc3\xeefb\x13\xe1\x80\xcb\xe0\xe0\x06|\xcbf\xdc!\ Rx\x8c=\xd9\xe5\x0bta.8 .\x04\xd7]\ 08\x18.\x99\xeb\x8ew\xa9\xd7k\x83\xf5^\xc4\xfa\ \x00iV\x03nQ\xff\x88a\x1fmd;$(\x92\ n\x87\xe07\xc0\xca\xc6\xd4a\xd4%\xaeY\x12s\x04\ \xd1\x85\xe7\xc0B\xd0(9\xf8\x5c\xbds\xf4\x14>\x8c\ \x01\x13\x84\xa0/\x8fz\x00\x0e\xd7\xe1\x82\xa0\x1a~\xe9\ \xb8\x94S.\xbd\x170b\xdf\x16##\x09\xe8%P\ 0\xa8\xe5s\x90\x10\xef\x99aFE\x84\x1d%!\x18\ \x8f\xed\x1e\x1c\xb5\xad\xe6s j:V%\xd0\xcc\x07\ 8\x01\x97A2\x1c\xb1\xa3\xa7\xa00][q[\x87\ \x057\x932_\xab\xb6\x01:\x94*Ou\xd0\x06\x81\ \x11\xfc\x85\x9da4p\xf7a\xb6\xdaUH\x17\xb1\x8e\ =n\xc1\xab\xab2\xbcW\x1d\xd2\xab<[\xdd\x1a7\ \xde\xb7 \xa6\xe2vw\x9b\xab\x04b\x85 )\xbai\ uj\xc4\xa4\x95:\x98S\x93\xe5\xb9=4{%D\ <#\xd5f\xceu\x1a\x97\xc5\xfe\xe0\x10\x08\x951\xcc\ }\xdbnn\xd8>_\x17\xea\xb6\xcc\x12\x05!H8\ \x0c#\x9e0\xf6]\x14\x92$\x06\xfc \xd9\x04\xbbb\ \x00\xfd\xb0+\xd8\x11q\x8a\xcf\xd4?\xf4Lo\x00s\ \xc9\x13#\x8b\xc3\xd9\xd0\xb1\xde@@\xe4~\x91\xe31\ \xbe\xe8\xc9h\x7f\xb43\xa3b*%\xdf?\xcdh\xc5\ \xe0S\x9b\x83\x83 \x0e7\x05n*\xbf]H\x5c\x9f\ W\x90\xe3\x99\xf3\x8a\xfe\x04\xad|\xb5C+\xfet\xb9\ \xcc\xc5p\xacs\x0f+\x08\xa3\xdf\x0f[\xccQ\xc5\xe4\ \x13\xcc\x99\x05\xeb\xd2\xeb\xb1\xe6\xa2Z\xf3\xe92\xf9\x04\ \x04\xa7\x8d\xdf\x0d{\x1a\xee\xe8\xcfW\xe5\x0d\xb9(o\ \xf6G;\x9b7\x84\x1f\x8f\xf8\xffN\xae\x079\xb4\x96\ \x02\xaa\xf5\xd4\x95\xaf\x9a\xed\xf9e]\xfe|\xb9t\xcf\ `\xb4s\xe5\x00\xd3=\x1d\xfd\xcf\xe6{\x8cos\xbc\ W\xe0\xc9\xc78Xfit\x99l\xfc\xd8`gk\ \xe6~\x06N[M[8H`$\x5c\xcf\xaa\xbfz\ \x92\x99\xd0\xbc*qOZ\xd57\xe6\x12S\xdf\xeb\xf1\ \xaa\x11\x89\x0d\x9a\xf9*J\xd5`~!\xeb:>\xdc\ \xd9L\xf4\xe8\x7f3\x13_\x8b\x87u\x90~\xc1\xb8\xf2\ \x12*\x08\xe1\xbe\xf7\xfb\x09\x5c\xec\x861\xe6\x8b}\xa1\ \x88\xff\xf8\x04\xa6<\xedFW\xff\x9c\x9d\xc0\x94\xa7\xde\ \xe8\x1e\xcev\xf4\x91\x15f;7\x19\xfe\xd2\xc9\xdf<\ \xb2\xf0\xefAJo&oGR\x00O\xc3\x0d\xe7\xe8\ \xcepl\xb1\xc9\x98\x09\xcc\xbc\xce%\xec\xa0\x92@$\ %%\x15\xddH[r3\xa1\xcc\xc1\xd4%\xa8\x93\xdd\ \x1d\x19\xa3]\xd4s\xfdV\xa5I\xd6\x85\xca?\xe9G\ )\xbf\xa4\xbf\x15\xea\x9b&\xdb0,P\xa7\xfft\xce\ \xcbu<*\x90\x14_\x9by\xa3\xd8\x91\x1e\x84\x97:\ \x8fG\x90\xc3\xb0\xeb\x11~|6R@\x07\x93\xe6\xe5\ \x0e\x07\x98<\xfcR>\xce\xa6_\x9d\x18zF<\xcc\ \xdd\xc3s\xda\xe8\xca\x81x\x10\xeaP8g1o \ \x1f\x00.T\xb9.\x1b\xca\x87t\xa8\x8b\x18\xe5\x03\xf9\ 8\xa4}^>\xf6\xa9>w\x06\xcb\xd8\xae$(\xd5\ ;\x1b\xfc\x97M\xc0N}S\xa8\x04~\x16\xaa\xbez\ \x00(\x10\xcfr\x9d\x0bGd\x1f+\xec\xb9\xa27\x96\ \xc6\x0aN%pz%\x92\xedc\xb5G{\x01\xac\xb8\ p<\x17{\x12\x1f\x87\xd8\xc8u%vm\xf4\x94\x8d\ \xee\xae\xfe\xb0g\xbb/\x18\xe2\x11\x13\xeb\x05\x8aP\xb6\ g\xd0\x9f6\xd2\xddt\x04\xd9\xe4\x05K\x80\x8d\xc2\ e\xac;\xcd>\x95p\x0a\xf9IO\xd2\xb3C\xf5\xa0\ q\x99\xa8\x9eq\x9a\xd5\xabo\x0cHospj\xa8\ woJ\x8b\x0e\x95\x81\xae\xb4k\xea\xa2\x00\ \xacb\x9e\x07;?\xcdR\xd5\xf3\x0e\x1a\x0e\xbdn)\ \xfb>\xa3\xb6)\x0c;\x1c\x11\x8f\xf43\x11\x8d1a\ \xc4\x91\xae\xeby\xfd$\xf0\xd6D\xc4L 6\xc8\xdb\ \xef\xaa\x87\x04\x98!\xdc\x0b>G\x81\xaf/?\xb8\xe7\ a\x89t\x96W\xba\x5cB\xd1\xe4\x5c\xdf\xf7\xfd\xe1\x10\ \xec\xd3\x87\x1a.O\x80yg\x1eb{\xbb!\xd8!\ \x1e\xf2F\xb6\x0f\x0eAR\x17sq\x88\x1a\x91\x8e\xe7\ \x11D\xc9(\xcc},\x07\x22\x120#\x04O\x88H\ \xdd:<\xf7;\x0c\xb9\xfc\x1b\x89H\x17\x0d,\x1a\x8b\ \xd5C\xbc^y\xff\xe2\x17]\x85I\xbc\xaa\xb2\x160\ \xc2\x17p\xe4WQ\x5c\xac@O\xfd8\xd5\xeb\xb8\xda\ O\xa3\x5c\x99\xcf8\xd1[m\xaa\xba\xad\xc7E\x06z\ \x1cg\xa9\xaf39W\xcbxk\x03A\x1a\xd9Z\xff\ \xfd\xea^\xff\xca\xac\xc0\x8eS\xd8\xcf\xaa!/~\xfd\ \xf1Oc\x0d6`\x0b\xc5\xc2\xaf\xe2\x1bM\x05S\x80\ \x17\x1en\xa3\xaa\xeb\xd6Q\xb1\x07B\xf9y8\xdfg\ O\x97\xa8i\xb6\xfc\x9cNC\x84\xc1\xf5\xdb\xa3}\x8e\ \xdd\xad\xcb\xf2\x80a\x86G\xc73\xac_[\x85\x81~\ ;{\xb7\xde\x0a\x15\x88X \xce\x02\x07Y!k\x1c\ I\xaf2[\x95\xc6\xaf\x7fZ)\x05\x22s\x0f\x86w\ \xbfK\xa9\xb6\xe5~]\xe5K\xed\xbb |X\x18i\ \xf3\x83\x10b\x98\xb56\xc6\x03\x8f\xad\x05\x09P\xe84\ \xa1\xf9\xbf0:\xfb\x00f\xb7\xb3D\xad\xb6qGJ\ >HWTz&\xb9\xdb\xf3\xfc\xc6\xd0\x80\x89&D\ \xf4\xae\xdb\xc7\x12\x95\xd2\xfc\x08<\x15\x8e\x0bF\x09\x98\ \xabl\xa6\xed\x05\x02\x1b\xe5q\xa2\xef\x10\x0c\x89\xc7\xbd\ \xa1\xe9\x19d\xfc\x06\x0a<.!\xcf&\xee\xf4\xcdV\ \xef\xb4\xb0\xef\x04\x9b{\x9a\x96\xc0\xdc\xae\x10>\xd5\xbb\ \xc4\x98Q\xc2\xac{\x0b\xbbVb\xd9:\xb1\xd7\xbf\xbb\ jR\x91\xaeh_\x00\x19U\xbe\xd6\x11\xc3\x877\xff\ \x06\x88\xf7\xc6N\ \x00\x00\x0b\xa5\ \x00\ \x00D\x22x\x9c\xed\x5c\xeb\x8e\xdb\xb8\x15\xfe?O\xa1\ :(\x90\xc1\xea\xc2\x9b$\xcasY\xa4\x1b$X \ \x8b,v7-\xd0\xa2(d\x89\xb6\xd5\xc8\x92!\xc9\ c;O\xdfCZ\x92%K\xf6\xd8\x99\x99\xd8m\xe3\ d0\x16y\xc8C~\xe7N*\xb9\xfdq5\x8b\xb5\ \x07\x91\xe5Q\x9a\xdc\x0d\xb0\x89\x06\x9aH\x824\x8c\x92\ \xc9\xdd\xe0\xd3\x1f\xef\x0c>\xd0\xf2\xc2OB?N\x13\ q7H\xd2\xc1\x8f\xf7W\xb7\x7f2\x0c\xed\xa7L\xf8\ \x85\x08\xb5eTL\xb5\x9f\x93\xcfy\xe0\xcf\x85\xf6z\ Z\x14\xf3\xa1e-\x97K3*\x1b\xcd4\x9bX\xd7\ \x9aa\xdc_]\xdd\xe6\x0f\x93+M\x83Qa1\xbd\ \x1b8l \x9f\xa6\x22\x9aL\x8b\xfa1\x0a\xef\x06@\ Gm\xdbS\xcf\x8d\x05\xe2\x0dA9\xf3\xb0\xd9c\x12\ \xed5\xf2\x11\x0a\xc66\xa5\x9e\xae\x11D\x88\x81\xe0/\ \xbbV\x83r\xd8\xd6\x1c~\x86a\x1a$\xfe\x0cv\xe3\ \x93\xf9\xbf\xde~|\x97\x9b\xc0l\xc3(\x12\xcb\xbf\xa4\ \xab\xbb\x01\xd2\x90\xe60\xad\x5c\x0f\x80\x94\xe4\xc3\x8a\xe9\ \xdd`\xdf\x1e\xe5\xac\xf9\xdc\x0fDnU\xed\x8d\xf1\x15\ \xffz|\xd5`\xe6\xe9\x22\x0b\xc4\x18\xa6\x10f\x22\x0a\ \xeb\xed\x1fo\xebN\x03\x99a\x116\xa6Y\xc50w\ k\x0dK\xaa\xb8c\xcf\xf3,\xd5\xbb\xa5\xee\xa3#\x08\ !\xab\xdaq\xb9\xb4\x87\xc9\x91\x94Y8\xde\xcb\x1b\x11\ \x0b\x10\x07\x0a#_'\x85\xbf2\x92\xfcUch\x10\ \xd4#\x03\xa9;\xd1\x83\x08\xd2\xd9,M\xf2\x0dx-\ \xe2pK<_d\xb1\xa2\x08\x03K\xc4b&\x92\x22\ \xb7@\xde\xd6\xe0\x1e\xe8oC1\xce\xe5\xb8\x8d\xda\xc8\ 'j;X\xf5A/\xc0!\xfc\xec}\xe6\x87\x11\x8c\ \xdb\xd0m(\xdb=\x8crj\xd0AMP)X\x90\ \xc6\xb1\x08@5\xfdx\xe9\xaf\xf3rZ\x988/\xd2\ yE]j,\xb4\xb8\x14s>\xd8\xb6\xa7\xe3q.\ `4j\xb4\xe5\xc5:\x16\x1br\x03\xa6O\xb3\xe1+\ \xca\x1c\xdbg7\xaa)\x05\x05\x8a\x8a\xf5\x10\x0f4\xeb\ qn\x1e\xea\xe1\x86\x0fss\x897\x0e\xc6\xfb\xb8\xdd\ Zmd\x0e\x03\xb9\x0f\xa7\x8a@\xe9\xe3p\x9a\x09P\ \x9bW\x87!\xef\x93\x89gl\xf7\xb7\xc2w\x03\xe2\x9a\ \x84Q\x9b\x92\xbau\x0d\xad63m\xce1\xde\xb6\xae\ \x08\xd0\xe2\x0e-\xb4R\xb4K;)\xd9}J\xa2\x02\ \x0cf\x91\x8b\xecwi\xc4\x1f\x93O\xb9\xe8P\xfd\x91\ \xf9I\x0e\xa6:\xbb\x1b\x14\xf2k\x0cN\xf0\xb5Q\xb2\ \xa2\xbaA\xca\xe9\xaf\xb7\x80\xbe\x04t\x1e5\xbc\x83\xd0\ y\x9e\xe1\xb6\xa0c\xdct1,\xb2\x0d\x1d\xb3a\xbd\ \xb6\xcb\xed\x16t\x0cuh%\xa0lC\xeb>'t\ \x80\x1c\xb7\x1d\xc6]\x1d\x9b\x0c3\x82\xa9\xf3t\xe8z\ \x01\x91\x88\xed1\xa8\x1e#!\x88\xf9\xdc\xdd5\x92\xc3\ \x96]\xd9%0\xb3e\xe4\xdcg\xbfG{\x80\xc3\xa6\ \xdd`\xe7\x1ag0`\xe9~\xd8#\xf6\xdb\xb6^\xd4\ g\xbd\xd4\xed\xb3^\xdc\xb5t\xa2\xec\xffB\xac\xb7\xb3\ \xdb\x1d4\xbe:\x80@\xdarz\x00\x09\x18$>\xe8\ +\x02\x08\xa8\xf9\xe9\x01d\x1c\x08\x8f\x9d?\x80<\xa6\ \x7f\x8e\x87l\xe7\xc5\x15\xe5\xab\xc3\x13\xe9SpV\x87\ \xa7\x17\x0c\x1fR\xec\xfc\xb0\xb3l\x1b\xeeI\xb1\xc3\xe9\ \x8b\x1d\x94\xed\xd2\xfe\xf7\xc4\x8e\x0d\x5c\xc7\xfb\xf2~c\ <.t\x00/\x8cN\x8a\x1c\x22\x0c\xd91\xdc\xfa\x22\ \x87\xe4F\xcea\xb8\x87\xf5\x0f\x0c\x97=\xb3\x87'\x1b\ \xa5\xc4\xba\x81\xdd\x8d&:\xd7\xcf\xad\xe25m\x0d\xa8\ \x5c\x93\x1f\xefB\x97\x810\x90\x09\xce\x8bn\xbd\xd7x\ \xad&\xc0\xc4\x85\xa8\xb9m\x85R\x94P\x13\xb9\xc8\xe1\ \xdbL9\xe8\xa5\x0dzi{`\x99\xf9E\x16\xad^\ #\xd3\xc3\x8cc\xa2#\x13a\xe2\xd8\x88\x80[\x83\xef\ \x88\x13\x0c\x0f\xd0\x0c\xf6d;D\x07?eS\xa0\xd5\ \xc1\xbbAu\xc3\xbd\xeb\x13E#\x05\xdcF\x82\x22\x17\ \x1f\xa3(\x04y[\xba\xbd\x1a\xf7\xfc\x16\xaf\xf8\x1eo\ \x82H}vL\xf0\xe6H\x8b\x07^\xf4$\x83\xef\xe3\ \x86\xfa\xb8\xf5Y\xb0\ \xf4N\x02\x8b\x09\xcfG\xce\x11\xde\xf1 S\xe7\x02\xb3\ \x1b\x977\xdc\xc77In\x9e1{\x7f\xd1\xe4\xe6Q\ \xdc\xbe'\x85_\x11\x94\x017\xfe\x9c\xb8\xf5&o/\ \x95t\x9e\x157\x86\x9eW\xdf.)\x97y\x0ar\xed\ \xe8\xdeI\x12\x00\xb8gH\x02\x9f1\xdb\xe9\xcf\xb0\xfa\ \xb3\xb1\xfe\xcc\xad?\xcbk\xe6\x83\x1b\xb8o-y\x8e\ \xad\xbe\xd5\xb7\x16\xf2r!\x94\x17\x14W5^#\xbf\ \xde\xfb\xdc\x9f\x08\x15\xf2\x00\xe5\xb1\xfa\x94\x1d\xa34\x0b\ EVu9\xea\xd3\xea*\xa3\xe2\xe6\xf6\xe7\xaa-T\ 9k\xdd\x8f\xfa\xfb\xf3\xa9\x1f\xa6K\xd8\xedn\xe7\x97\ 4\x05\xfcm\xd3\xb1\x1dn3\xba\xdb\xad\xd0d&\xe3\ \xd4v;c%\xa8\x84\x83\xa8<\x8c\x9cN\xe7\x22\xcb\ @\xc8F\xec\xaf\x05lj\xe2p\xaf:\x92\xcc\xa7\xe9\ r\x92Il\x8al!v\x07\x86i\xb0\x90\xd7\x07\xc6\ b\xa3E\xf3\xd5.\x85\x1ck\x8cF\xf2\x0a\xa8o\x82\ e\x94\xc0^\x8d\xf2\xf2\x0a3\xd6A\xa4\xa4\xa8.\xb4\ xw\xdf%\xc5j\x9b\x0d\xeev\xad\xf7w\xcd\xfcU\ 4\x8b\xbe\x88p\x9b\xdd\xd5$y\xe2\xcf\x8dI\x9c\x8e\ \xfc\xb8\x7f\xf5JG\xa6\x22\xf8,\xb2Q\xeag\xa1d\ S\x1aw\x0b\x80J/\x8b\xb5\xbc\xecZ\xade[\xcb\ Ne\x03Eh{\x0e,fsy\xef\xa5n\x0d\xb7\ \xb1\xf7!\xca\xa3\x91L\xc8\x1a\x8b\x01\xda\xc4\x87\xc6p\ \xa7U.\xbe\xa4\x97\xb3KG\x91\xa7I\xbc\xde%\xdb\ p\x91\xe0\x99\xf6n\xebz\xd3Z\x99P\xd7rT\xfb\ L\x14~\xe8\x17\xfe\xd6\x8c\xaa\x16\xb0\x7fV\x01\x92\x85\ \xe3\xe1oo\xdf\xd5\x89f\x10\x0c\xff\x96f\x9f\xb7\xc9\ \xa1$\xf0G\xe9\x02\x84\x5c\xe7\xc0\xf26*\x18J\xbf\ \xe3\x17\xf7\xd1\x0c\xe0\x96\xb7g?\xacf1\x18t\xdd\ \xd1\x22\x96\x18o'\xddL\x9b\x89\xcd\x85`\xef\x0dX\ \x18\xcc\x229\xc8\xfa\xbd\x88\xe2\xf8g\xc9\xa4\x91\x10\x97\ \x93FE,\xee\x7f\xf5\x8b\xa9\xf1{\x91\x06\x9f\x15\xf7\ Mc\x8b\x0e6-\xee\x09\xc2\xb6\x81\x5c\x031E\xa6\ \xdaZT\x99\x80\xb8\x13\xa5\xc9}\xe3\xdao\x9c\x09\x11\ \xf8\xe1R\x8c\xd4\xba\x96\xd1\xe7\xc8\x02\x0d\x15+s>\ \x9d\xff\xa8X\xdd\xbd\xc9\x8a%@\xa6f\xad\xe7h\xcd\ <_\x8c\xe2(\x9f\x8a\xec\xbe\x01\x81\x84\xfa\xcd\xa4\xce\ \xac\xbb\xfbz\x07\xbc\x7fz\xf3\xb6oSR\xec\xdd\xe1\ \x8a\xb2\x87\x97\x9c2\x0a\x814\x1aG\xd0^\xcek\xe5\ Y`\xfd\x92\x86\x96\xc4\xcfz\xbf\x88\xac\xdfJy\xe4\ V\x14\xa4Inm\x81\x95\x17\xc7j\xf6\xc64m\xec\ \xa4\x1b\xc8\xbff{\xda\x87\xf7\xbf~ ?\x9c\xb8\xcb\ ]~\x92[\x1c\x05\x22\xc9\x85\x12_^\xcao\x92,\ \x94\xe0\x82t\x0e%\xd3\xb8\xb0b\x91CH5\xa7\x85\ \xd4\xd5\xc6\xa0\xd6n`\xf7\x10LG\x8b\x22=Mb\ \xff\xf0'\xd9\x1a\xcc\xf9\x9f\xda\x9bX\xac|\xd0\x93L\ {\xafZN\xdc^\xcf\x02\x14\xad4\xcd\xaaYUb\x07\xa1\xe0'\xeb\ \xd0~\xed|\x0e\xb8\xe5\xf5\xcce\xa2M]\xdd\x96p\ 3[\xfb\xa0\xd96\xb89\x097=\x08\xb7wQp\ Ww\x9b\x97\x88\xae\xa7\x83\xc7!\x1e\xf8\x1bF\xa4&\ \x83\xd7$\x8e\xf6\xf7\xfd\xd82\xb4\xeb\x9a\xcf\x8a\xad\xdc\ Y\x8d[}\x87|\x107\x05\xd5Sq\xc3\xf2p\x97\ #j\xeb\xcc5\x1d\xe4\x10\x17\x9at\xca\xa5K`:\ \xd7\xd41\x00\x06D\xa1\xe0\x97g\x04\x8fx\x87\xc6{\ 5\x97\x06j}\x17\xf8\xf2\xa0RH\x17\x90\x8d\x18\xd6\ mH\x17\x1cNlh\xd2\x99\xa3\xd9T\xa7\xc4\x94\xfe\ V\xe2J\xb0\x0e\x98C~\xc3\xdcG\xbc\x80\xd1\x13\x8a\ \xbf1\xac\xdf\x22\xa7\xa0\xbc\x1fO0f\x86\xa4a\x13\ ZzNp\xa6\xe0G\xbb\xe6}\x81\xee\xear\xe0e\ \xdd\xde\x06\xbc\x90\xb39\x10\x996\xeesOdz<\ \xd7a\xe4\xec\xd1\xf7\x82\x00g{\x00\xb7u\xeaH\xc0\ ]\x098$\xfd\x0c\x00\xe7\x8f\xe0\xfd\x0d\x9c\xd9\x05!\ \xb7\xc7\x13l\xc2\x95N\xe96V\x11\x06\xc5\x86\x0e\xdf\ Ag\xd1)\x18\xbeL\x94mcxkMZ\x8f\x22\ \x8e\xa3y.\xae\xfaVX\xdfWC\xd5\xcb\x09so\ \xb6f\xd6}C\xa0ce\xe5\xaez\x82R\x05+\xa6\ \xcen:\xd9\xadF\x89\xe9B@r\x19/\xabQ\x8f\ 3\xe4\x82\xb75(D,J\xb9,L\xe1+\xb7\x91\ \xe3\xd0\xeb\x9d\xe9\xd4\xb151=\x9bsw\xb7\xa9\xbco@\xd8\x0d\x85/\x05\ \xe1Qe}\xabv=\xba\xe2=P'\x1f*\xaf\x9f\ \xb9\x92\x97\xa8\x96\x9b\x82\x5cv\x17\xa8S\x0f,\xe4\xdb\ \x8a\x07\x0f,\xf6T\xf6\xcd\xaf\x85X\x15\xdbU\xacf\ \xf1P\xfdo\x02 \xfcL\xe4\x22{hjT\xa5\xca\ iR\x18\xea;p\xc9f~|\xa3Z\x96\xea\xfd\xb3\ VS\x1e}\x11CP>\x0e5\xfa|u#\x95\xba\ |Mm\x88\xfe\xbc!\x19\xfb\xb3(^\x0fs\x80\xd9\ \x00~\xd1\xf8&\x16\x05h\xb9Q\xbe`5D0p\ \x99fa\xaba\x13S\xcb\x7f\x95\xb0\x1f\x80\xb6q!\ \x90\x15\xb5\x89\x03\xe3\x1bV\x06z<\x1c-\x8a\xe2\xb0\ \xe5\xf5\xbd\xc7\xaf\xde\x08s9\x08\xd2n\x9a\xc8Z\xbd\ \x8a\x0e\x09K\xcbi\xab\xf7\x03\x01k\xda\xbe|l\xe8\ \x17XT,^\x83\xe6P\x1b\x13\x0a\xc6\x89M\xec\xb9\ \x8cp|=\xb8\xbf-`\xfbIS]j\x9b\xcaR\ )\x14\xb9\xec\xcei\x8b\x1a\x04\x1c\xdbWr{\xd6\xbd\ o\xe5;r\x97\x22U\xaf\xear\xb2#Rl\x12{\ \x1f\xe2\x83\xfb\xb7\x1f\xdf\xddZjA\xf7\xf0\x1b\x90\xa8\ ^\x9e\x99l^\x9b\x81_\xb7\xf2\xd5\xb5\xfb\xab\xff\x00\ \xea)\xbd\xdd\ \x00\x00\x09\x0c\ \x00\ \x00!cx\x9c\xedYY\x8f\xdb8\x12~\xef_\xe1\ u^\x12LK\x22)\xea\xf41\xc8L\x90`\x80,\ v\x90\x03\xfb\xb0X,h\x89\xb6\xb9-K\x02%\xb7\ \xed\xfc\xfa)R\xb7,w\x92M\x06\x83\x05\xe2\xa4\xd1\ VU\x91E~u\xf0\xa3z\xf9\xf3\xf9\x90\xcc\x1e\xb9\ ,D\x96\xae\xe6\xd8D\xf3\x19O\xa3,\x16\xe9n5\ \xff\xf8\xe1\xb5\xe1\xcfgE\xc9\xd2\x98%Y\xcaW\xf3\ 4\x9b\xff\xbc\xbe[\xfe\xcd0f\xbfJ\xceJ\x1e\xcf\ N\xa2\xdc\xcf~K\x1f\x8a\x88\xe5|\xf6|_\x96y\ hY\xa7\xd3\xc9\x14\xb5\xd0\xcc\xe4\xcez13\x8c\xf5\ \xdd\xdd\xb2x\xdc\xdd\xcdf0*.\xf7\xab\xb9K\xe7\ \xeai\xcf\xc5n_\xb6\x8f\x22^\xcd\xc1\xcev\x9c@\ ?\xf7\x16\x88+\x83z\xe6\xb0\xaf1\xc9\xec9b\x08\ E[\xc7\xb6\x83\xfb\x19A\x84\x18\x08\xfe\xd3\x17zP\ \x01\xdb\xca\xe1'\x8c\xb3(e\x07\xd8\x0d#\xf9\x7f\xfe\ \x99\xc9\x87\x0d\xecyo\x82\xc7\xca\x9b\xe0\xa7_\xb2\xf3\ j\x8efh\xe6\xd2Y\xbd(@*-\xc2\xc6\xf3j\ ~k\xa3j\xea\x22g\x11/\xacF\xde\x1b\xdf,\xa2\ \x1d\xdf\x08\xcc\x22;\xca\x88oa\x0an\xa6\xbc\xb4^\ }x\xd5*\x0dd\xc6e\xdc\x9b\xe6\x9c\xc0\xdc\x835\ \x9cl\xed\x1d\x07A`img=eG\x10BV\ \xb3\xe3zi\x8f\xbb/\xb4\x94\xf1\xf6\xa6oD,\x80\ \x1d,\x8c\xe2\x92\x96\xecl\xa4\xc5\xb3\xde\xd0(jG\ F*\x81\xc4#\x8f\xb2\xc3!K\x8b\x0a\xbc\x81q\xdc\ \x19\xe7G\x99h\x8b8\xb2x\xc2\x0f<-\x0b\x0b\x82\ n\xcd\xd7`\xbf\x8c\xf9\xb6P\xe3\xaa\xdcQO\xb6\xe3\ b\xad\x03-\xc0\xc1\x99|#Y,`\x5ceWY\ \x0e5\xd4\xf6m\xc3\x9e\xb7\x06M\x96EY\x92\xf0\x08\ \xf2\x93%'v)\xeaia\xe2\xa2\xcc\xf2\xc6\xbaN\ [\x90x6\xf6\xfdy'\xcf\xb6\xdb\x82\xc3h\xd4\x93\ \x15\xe5%\xe1\x95\xb9\x01\xd3g2|fS\xd7at\ \xa1E\x19$\x90(/!\x9e\xcf\xac\xcf{\x0b\xd0\x84\ 7\xfc\xb47\x8f\x04\xdbh{\xcb\xdb\xd2\x1a\x22\xf34\ \x90\xb7pj\x0ct>\x86{\xc9!m\x9e=\x0d\xf9\ TL\x02\xa3\xdb\xdf\x19\xaf\xe6\xc43\x09\xb5\x1d\x9b\xb4\ \xd2\x0bH\x1dj:\xbe\x8fq'=\x13\xb0\xc5W\xb6\ \xb5\xd1\xd8vW\xbb\xfb\x98\x8a\x12\x0a\xe6Xp\xf9\ ^\x15\xf1?\xd2\x8f\x05\xbf\xb2\xfa YZ@\xa9\x1e\ V\xf3R}M\xa0\x13>7jW\xf6\xbdA\xea\xe9\ _t\x80\xfe\x19\xd0\x05\xb6\x11<\x09]\x10\x18\xde\x00\ :\xea\x9b\x1e\x86E\x0e\xa1\xa3\x0e\xac\xd7\xf1|g\x00\ \x1dEW\xb6\x0aPZ\xd9z\xdf\x13:@\xcew\x5c\ \xea{\xf7\xd8\xa4\x98\x12l\xbb\xdf\x0e\xdd$ \x0a\xb1\ \x1b\x055Q$\x04Q\xe6{\xe3\x22y\xba\xb2\x9b\xba\ \x04g\x8e:>o\xd5\xef\x17w\x80\xa7K\xbb\xe7\xce\ 3\x9e.\xe0\xa5\xa5\x1a\xa3\xfe\xd6\x9e\x85\xea\xb4\x8a\xd5\ \x89\xd7u\xcf\x0dk\xc3\x96\xb3\x1d\xd7k\x83\xe4\xdb\xea\ O\xad\xd8d2\xe6\xb2Q\xb9\xfa3P\xd5\xcb\xaf8\ \xc5\xdd0`j\xd6V\x8f\xa6\xf5\xc5\x9e\xc5\xd9\x09\xd2\ m\xac\xfc\x94e\x90:\x1e$\xa1Kip\xa5\x8e\xce\ \xba\xba\xa1\xab\xe0k\x1d\xb8\xb3\xa9I\xdd\xc0v\xe8\x95\ \xf2(%\xe0d$\xec\xc2aO\xfaW\x83s\xb1\xcf\ N;\xa9\xb0)\xe5\x91\x8fG\x02\x9d8\xaa\xf3\xc88\ V\x05\x90\x9f\xc7\x16j\xac\xb1\xd9(N15\xc1I\ \xa4\xb0W\xa3\xa6D\x98\xd2+Dj\x8b\x86&\xf9\xd4\ \xbeaq\xeerq\xac\xba\xdcV\x1d\xd8Y\x1c\xc4'\ \x1ew\xa9\xd5\x9a\x14)\xcb\x8d]\x92mX\xb2\x9ao\ YR\x5c-_'\xc9\x9eG\x0f\x5cn2&c\xe5\ \xa7N\xc2\x01\x02M\xce\x96\x17E\x9f\xce\x17%\x1b\x14\ \xab\x12\xd8\x08u\x9d\x85\x1fr\xc5\xa44\x19\xa5\xad\xf4\ Q\x14b\xa3J\xa7\x87%\xd8\xa6\x0c\x84\xf1H\xaaV\ _\xdb\xab\xd9UM\x14Y\x9a\x5c\xc6f\x95\x17\x85\x9e\ \xe9\x8c\xa5\x97JZU\xd6\xd2\xba.\x1d-?\xf0\x92\ \xc5\xacd]\x1d5\x12`\x22\xb4\x01\x04xQ\xf8\xee\ \xd5\xeb\xb6%DQ\xa8\x08hW\xce\xca\x80m\xb2#\ D\xb9\xedS\x8a\xdfD\xa1\xea\x99\xac\x5c\x8b\x03\xc0\xad\ \xf8\xd8O\xc0\x91\xa0\xa2[\xc5\xc0Xa\xdcMZM\ +yE1'9U\x1c\x1d\x84\x1ad\xbd/E\x92\ \xfc\xa6\x9c\xf4ZW=\xa9(\x13\xbe\xfe\x9d\x95{\xe3\ }\x99E\x0f\xda{%\x1c\xd8\xc1\xa6\xf9\x9a \xec\x18\ \xc8\x03\xf6\xad\xcd\xb4l`%9\xb4~\xe0\xee\xeb\x1e\ \x91\xdcJ\xce#\x16\x9f\xf8F\xaf\xeb$\x1e\x04\x90\xe8\ \x98\x9f\xcd|\x9f\xff\xac]\xad^\xca\xf2\x04\x90\xe9Y\ \xdb9\x063\xe7\xc7M\x22\x8a=\x97\xeb\x1e\x04\x0a\xea\ \x97\xbb\x96\xca\x5c\xef\xeb5\xf8\xfe\xf5\xe5\xab\xa9M\xa9\ \xb0_\x0f\xd7\x96\x13\xbe\xd4\x94\x22\x06S\xb1\x15 \xaf\ \xe7\xb5\x0a\x19Y\x7f\xcfbK\xe1g\xbd9\x0a\xeb]\ \x1d\x0f\xb8'D\xc0\x7f\xad\x0eXu\x15\xd1\xb3\xf7\xa6\ \x19b\xa7\xfa@\xf1\xbflo\xf6\xf6\xcd\xefo\xc9O\ _\xb9\xcb\xb1?\xe5-\x11\x11O\x0b\xae\xc3W\xd4\xf1\ \xdb\xa5G\x1d\xb8(\xcb\xe1p\xdb\x96V\xc2\x0b\xa0\x03\ \xe6\xbeT\xb9\xda\x1b4\xd8\x0d\xec\xbe\x94bs,\xb3\ \xaf\x8b\xd8\xbf\xd8N^\xa0\x9c\xff={\x99\xf03\x5c\ R\xb9\x9c\xbd\xd1\x92\xaf\xdc\xde\xc4\x02\xb4\xad*\xcd\xe6\ 8\xedU\xee\xd2jJ[?\xed\xba\x92\x1f\x9c\x1am\ \xf3K\xd8\x86C\xf3|\xab\x94\xb3+\xedNf\xc7\xfc\ \x90\xc5\xbc\x1e\xde\xb4\x8a\xdd\xa05b\xe4t,\xb9\xbc\ A?]\x87\x04\xc4\xb7\xef\x09\x90(\xdf\xf5} Q\ \xed~v\x1d\x10\xd3\xc3m\xd3A>&\xaew\x0f\xbc\ \x0fa\x978v}q\x1e,\xc3F\xfd\xbe$\x81x\ \xf5\xa3S\x93\x9a\x9a\xcf \xfdYD\x89\xc8\x0dyL\ x\x98f\xe9'\xe0\x06\x8bX\x149l\x16n\xd3\xaa\ #/2\xb8\xc6o\x93\xec\x14\xd6\xadz\xa1\x7f\x8bD\ \xf1\x9fF\xd4\xf2\xa1\x85(\xb2\xaa\xeaC\x06\x11[\x1c\ \xc4\xd9\x00\x8346\x14\x88\xe0\x02\xbaa\xb2\xd0+0\ DZr\x997\xe6\xc5\xbb7\xbfL)\x8c\xadH\xe0\ \xb1\x08+\xca\xa4\xac\xc0\x05\x1c\xd9\xc3mT\xb2n\x1d\ 0*\x09\x9fE\x91V\xaa\x87\x91n\xb8\xe5\xa2\x94\xd9\ \x03\xef&\xd3\x8f\xd5\x99\x1f\x92\xe6Q-\x00\x92\x22\x84\ T,\xfb\xb2\xfff\x22\x0d\xa1As\xd9H\xf5C\x02\ \xa7v\x19\xd2F\x163`MR\x02\xae\xe0\x94\xf7\xa5\ \x15q\x0c[\xb7\xddB+8\x80\xf9@\xf1\xc0YW\ A\xaa\xcf\x98\x9e0\xcbK\xcd\x0f\xde\xe7\x9c\xc7\x0bp\ \x92\xf3\xf1\x90\x92\x9f\xcb\xb1\xac:\x92\x8d\x0d\x8b\x1eT\ \x92\xa7q\xc8\x22\xa0JG\x95o\xf3~\xd6\xa8\xd4R\ \x99d\xdb\xb6?P4\x94\xc85\x11\x0e|J\x06\xca\ \x86\x0dQRi\xe9@\xabx``\x06\x01\xf0\x89\xe1\ \x9c\x8a\x04V\xf2\xc0\x1d\x1eq7\x92y\x14q\x8d\xed\ (\xdcMp\xf9\x16\x0a0\xf8Lp5\x14W\xd1\x1d\ H\xbf<\xbaS\xd7\x84\x0eP\x8c\x08\x9a\x04\x14\x9b>\ \x5c\xe1|\x7f\x12P\xdb\x9b\xd2\x9e+\xa4]\xf8G\xc7\ \x80\xba\x95\xdc\x0b\x86\xabhZ\x5c\xdbp\x0c\xe8\xfe\xb0\ 3ES\xe1\xcei\x13\x97\x22\xff\x0b\x87\x80\x17\xb8V\ \x13\xa2.\x87^\xffVe\xed\xa6z\x5c\xdd\xad e\ ~t\xab^\xb7\xaao\x98\xdf\xd6\xadL%\xc3(\xf0\ ~\xb4-]e\x14\xd3\xc9*s\xa0\xcfx\x14{t\ \xb2\xca\xb0cz\x18Pt\xc7U\xe6\x9ap\x99&\x18\ \xbb\xe3*S\xaf^\x1c\x1f\xe1\xe1|\xbd\xd3\x1c\xae\x01\ R\x9c\x9f#hoA\xe0\xfbApo\xc0\xf5\x1a\xc1\ \x85\x97\x10\xfb\x1e\xddc\xf8A/\xbew\xd3k\xdf$\ \xf6r\x04\x9b\x01%6\xf6\x91\xff\x97v?\x9bL\xc6\ \x05@q<\xd7\x9b\xee~\x98h\xadO\xc6q\xf1M\ \x97P\x14`|\x15\x17\x17\xfa\x92\x0b\xdc\xe9\xf3m\xe9\ \x16s\xc3n`{\x8e{OM\x02u\xe5\x90\x09\xe2\ E\xdc\x1f\xad\xac\xdf\xcax\x1c\xd3o%^\xd8\xf4\x88\ K\x82\xc0s\x7f\xb4\xb2\x86\x81\xb9\x93\x84\x01\x8e^\xcf\ \xf6\xa6\xe9\x02\xd5:\x84\xc7\x05\x83m\x13\x13\xc7\xf7\xaf\ \xe8\x02\xf09L\xa8\x8d\x9d\xef\xdd\x8a\xb6\x11\x0f\xe8U\ +r<\x1f9\x84\xfc\xb5\xad\x88L\xb6\x22\xdf\x04>\ \x13P\xcf\x99F\x16\xd5\xea+d\x1d\xe8Q\xd8\xbb:\ !\xb0\x0fr \xc3\x93\x9d\xa8\xfb\xa2R\xa5\x19y>\ $\xa1\xfes\xe5j\x9eK\x0e\x97\xf5\xc7\xdek\xb1*\ \x00[\xb8\x1e\x1b\xfa{S\xe4Z\xf2\xc8\xa4`i9\ \x90\x9d\xf4\xca\x07\x22\xc0\x87\x97\xd1~(\x83T\x0e)\ \x86\xc5\x12??/\x14\xf6\xf5\xcbM\x08\x17q*\xa3\ -;\x88\xe4\x12\xbe\x04/\xc9\xc2h\x98\xa1QM\x90\ \xf3HlET\xf5\x97\xca\xa4n\x0b\x9b\xeb\xfb\x18\x5c\ h\x83\x00\xdb\xfegzAP}\xdc\xef\x11\xfc\xb3\xa6\ \xd1\xb6\xef\xa2\xdeA\xa2\x982\x14\x8b\x8f\x82\xdeKN\ \xfdZ\x19\x02Bm\xa7\x13\xf6\xce\x09\xd8u\xa2\xfeB\ \x82(\x80\x85\xe0\x187\x03\xc7U\xa7\x8d\x0d\xb7\xfbe\ \x09\xb1K\xbb,h_N\xcaLEN\x01;:I\ \xf4\x00\xf0\xd5\xcf\xb8\xc9\xc5\xdeX\xee\x9f\x98\x15\xff\x97\ \x01_\x93\xa5\xa51]\xc3o\x08c\xf5\x82\x08*m\ \xa9^\xd2\xae\xef\xfe\x00W\xfe\xfao\ \x00\x00\x0a\xba\ \x00\ \x00A\xc2x\x9c\xedZ\xeb\x8f\xda\xca\x15\xff\xbe\x7f\x85\ K\xbedu\xfd\x98\x97\xed1\xd9\xdd(\xbdQ\xa2+\ \xe5\xaa\xd1M\xd2J\xad\xaa\xca\xd8\x03\xb8kld\x9b\ \x05\xf2\xd7\xf7\x8c\xb1\x8d_\xb0\xb0\xcb\x06\xda\x86$\x0a\ >sf\x8e\xcfo\xces\x86\x9b\xb7\xabY\xa8<\x88\ $\x0d\xe2\xe8v\x80u4PD\xe4\xc5~\x10Mn\ \x07\xdf\xbe~\xd0\xf8@I37\xf2\xdd0\x8e\xc4\xed\ \x8a\x07o\xef\xaen\xfe\xa4i\xca\xaf\x89p3\xe1\ +\xcb \x9b*\xbfE\xf7\xa9\xe7\xce\x85\xf2z\x9ae\ \xf3\xa1a,\x97K=(\x88z\x9cL\x8ckE\xd3\ \xee\xae\xaen\xd2\x87\xc9\x95\xa2\xc0,?\x9b\xde\x0e,\ 6\x90OS\x11L\xa6Y\xf5\x18\xf8\xb7\x03\xe0\xa3\xa6\ \xe9\xe4\xcf\xb5\x17\xc4\x1b\x86b\xe5a}D'\xcak\ \xe4\x22\xe4\x8dMJ\x1dU!\x88\x10\x0d\xc1_v\x9d\ OJA\xad9\xfc\x1b\xfa\xb1\x17\xb93\xd0\xc6%\xf3\ \x7f\xbd_\xcc\xc3\xc0\x03M>\xbbI\xa6\x83\xd4\x8d\xc4\ @,\xff\x1c\xafn\x07HA\x8a\xc5\x94\xe2\xc5\x00\xad\ (\x1d\x96\xd2o\x07\xbb\x94\x95\xcb\xa7s\xd7\x13\xa9Q\ \xd2k\xf3\xcb\x17\xa9\xe6\x97\x04=\x8d\x17\x89'\xc6\xb0\ \x84\xd0#\x91\x19\xef\xbf\xbe\xaf\x065\xa4\xfb\x99_[\ f\x15\xc2\xda\x8dwX\xd2\x5c:v\x1c\xc7\xc8G\xb7\ \xdc}|\x04!d\x94\x1a\x17\xaf\xf609\x903\xf1\ \xc7;e#b\x00\xf4\xc0\xa1\xa5\xeb(sWZ\x94\ \xbe\xaaM\xf5\xbcj\xa6'\x8d(x\x10^<\x9b\xc5\ Q\xba\x01\xaf\xc1\xeco\x99\xe7\x8b$\xcc9|\xcf\x10\ \xa1\x98\x89(K\x0d\xd8xcp\x07\xfc7\xbe\x18\xa7\ r\xde\xc6~\xe4\x135-\x9c\x8f\xc1(\xc0!\xdc\xe4\ c\xe2\xfa\x01\xcc\xdb\xf0m8\x9b#\x8cr\xaa\xd1A\ \xc5PZ\x9a\x17\x87\xa1\xf0\xc0F\xddp\xe9\xae\xd3b\ YX8\xcd\xe2y\xc9]\x98.Pl\x8a9\x1fl\ \xe9\xf1x\x9c\x0a\x98\x8dj\xb44[\x87b\xc3\xae\xc1\ \xf2q2|E\x99e\xba\xecMN\x8a\xc1\x80\x82l\ =\xc4\x03\xc5x\x5c\x9a\x83z\xa4\xe1\xfd\xd2l\xe2\x8c\ \xbd\xf1.i7F\x13\x99\xfd@\xee\xc2\xa9d\xc8\xed\ q8M\x04\x98\xcd\xab\xfd\x90\xf7\xed\x89\xa3m\xf5[\ \xe1\xdb\x01\xb1u\xc2\xa8IIE]\x03\xd5d\xba\xc9\ 9\xc6[\xea\x8a\x00/\xee\xf0\x02\x95\xa26\xef\xa4\x10\ \xf7-\x0a2p\x98E*\x92/\xd2\x89\xff\x12}K\ E\x87\xebk\xe2F)\xb8\xea\xecv\x90\xc9\xaf!\xc4\ \x90\xd7Z!\x8a\xaa\x1a)\x96\xbf\xde\x02\xfa\x12\xd09\ Ts\xf6B\xe78\x9a\xdd\x80\x8eq\xdd\xc6\xf0\x92M\ \xe8\x98\x09\xefk\xda\xdcl@\xc7P\x87W\x02\xca6\ \xbc\xf6)\xa1\x03\xe4\xb8i1n\xabXg\x98\x11L\ \xad\xe7C\xd7\x0b\x88Dl\x87C\xf58\x09A\xcc\xe5\ v\xdbI\xf6{v\xe9\x97 \xcc\x94)t\x97\xff\x1e\ \x1c\x01\xf6\xbbvM\x9c\xad\x9d\xc1\x81e\xf8a\x8f\xf8\ o\xd3{Q\x9f\xf7R\xbb\xcf{q\xd7\xd3I\xee\xff\ \x17\xe2\xbd\x1dm[h<9\x81@\xfdr|\x02\xf1\ \x18T@\xe8\x09\x09\x04\xcc\xfc\xf8\x042\xf6\x84\xc3\xce\ \x9f@\x1e\xb3?\xcbA\xa6\xf5\xe2\x86\xf2\xe4\xf4D\xfa\ \x0c\x9cU\xe9\xe9\x05\xd3\x87\xdcv\xbe?X6\x1d\xf7\ \xa8\xdca\xf5\xe5\x0e\xca\xda\xbc\xff=\xb9c\x03\xd7\xe1\ \xb1\xbc\xdf\x19\x0fK\x1d \x0b\xa3\xa32\x87\xf0}v\ \x88\xb4\xbe\xcc!\xa5\x91s8\xee~\xfb\x03\xc7e'\ \x8e\xf0dc\x94X\xd5\xb0\xbd\xb1D\xeb\xfa\xd4&^\ \xf1V\x80\xcawr\xc36t\x09l\x06\xd2!x\xd1\ m\xf4\x1a\xaf\xf3\x050\xb1!kn\xa9\xd0\x8a\x12\xaa\ #\x1bY|[){\xbd\xbc^/o\x0f,37\ K\x82\xd5k\xa4;\x98qLT\xa4#L,\x13\x11\ \x08k\xf0\x1dq\x82\xe1\x01\xc8\xe0O\xa6ET\x88S\ &\x05^\x15\xa2\x1bt7\xdc\xb9>rk\xe4\x067\ \x91\xa0\xc8\xc6\x87\x18\x0aA\xce\x96o\xa7\xc5\x9d\xde\xe3\ s\xb9\x87\xbb \xca?-\x17|s\xa0\xc7\x83,z\ \x94\xc3\xf7IC}\xd2\xfa<\x1e\xa4\x99Ot\xf8\x0e\ J\x14\x99\xf6\x11(qW\x10z@\x89+m0\xff\ \xf4\xbc>\x88t\x8e\x02\x8b\x09\xc7E\xd6\x01\xd1q\xaf\ P\xeb\x02\xab\x1b\x9b\xd7\xc2\xc7\x0f)nNX\xbd\xbf\ hq\xf3(n?\x8b\xc2'$e\xc0\x8d\x9f\x12\xb7\ \xde\xe2\xed\xa5\x8a\xce\xb3\xe2\xc6\xd0i\xed\xed\x92j\x99\ \xe7 \xd7\xcc\xee\x9d\x22\x01\x80;A\x11x\xc2j\xa7\ \xbf\xc2\xea\xaf\xc6\xfa+\xb7\xfe*\xaf^\x0fn\xe0\xbe\ 1\xe49v\xfe\xad\xba\xbe\x90\x97\x0b\xbe\xbc\xa0\xb8\xaa\ \xf0\x1a\xb9\x95\xeesw\x22\xf2\x94\x07(\x8f\xf3O1\ 0\x8a\x13_$\xe5\x90\x95\x7f\x1aCEV\xdc\x5c\x03\ ]57U\xaeZ\x8d\xa3\xfe\xf1t\xea\xfa\xf1\x12\xb4\ m\x0f~\x8fc\xc0\x9f\xb5\xc9\x12E\xca\x01\xe5\xce\x80\ \x04\xc7\xd2\xbb\xf4E\x92\xc0\x9ej\xa1\xbb\x16\xa0\xc3\xc4\ \xe2Ny\x02\x99N\xe3\xe5$\x91Pd\xc9B\xb4'\ \xfa\xb1\xb7\x90\xb7\x05\xdabc4\xf3U\x9bC\xce\xd5\ F#y\xe3\xd3\xb7\xc02\x88@5\xad\xb8\xb4\x02\xfb\ \xe0;8\xca\x8b,\x1bwP(8V\xdb\xe2\xaf=\ \x04j\x13k\xc7\xd8\xcc]\x05\xb3\xe0\xbb\xf0{\xa6\xa7\ \x91;\xd7&a\x97\xbe!6\xf8@iqG\x1065d\ k\x88\xe5l9\xad\xc1\x95\x08\xc83A\x1c\xdd\xd5\xae\ \xf9\xc6\x89\x10\x9e\xeb/\xc5(\x7f\xafep\x1f\x18`\ \xa1b\xa5\xcf\xa7\xf3\xb7\xb9\xa8\xdbwI\xb6\x04\xc8\xf2\ U\xab5\x1a+\xcf\x17\xa30H\xa7\x22\xb9\xabA \ \xa1~7\xa9*\xe9\xae^\x1f@\xf6\xaf\xef\xde\xf7)\ %\xb7\xbd;=\xe7\xec\x91%\x97\x0c|`\x0d\xc6\x01\ \xd0\x8bu\x8d4\xf1\x8c\xdfc\xdf\x90\xf8\x19\x1f\x17\x81\ \xf1G\xb1\x1f\xa9\x11xq\x94\x1a[`\xe5Eq\xbe\ zm\x99&v2\x0e\xa4OQO\xf9\xf4\xf1\xf3'\ \xf2\xcb\x91Z\xb6\xe5Iia\xe0\x89(\x15\xf9\xf6\xa5\ \xc5\xfeM\xa2E\xbeq^<\x87\x16i\x9c\x19\xa1H\ !\x85\xea\xd3L\xdajmRC\x1b\xd0\x1e\x92\xe7h\ \x91\xc5\xc7\xed\xd8?\xdcI\xb2\x06w\xfe\xa7\xf2.\x14\ +\x17\xec$Q>\xe6\x94#\xd5\xeby\x81\x9cW\xba\ f\xd9\x8e\xd5<\xf7\xc6(];\x7f\x9al]>\xcf\ \x1d\xb8\x1d Cw$ v~\x92\x83Jgt\x92\ \xc4\x8b\xf9,\xf6E1\xbd\x0c\x15\x93*^\xf6T\x19\ &\xb4\xb8\xa6\xc3L\x15\xc9?\xba\xc9(\xb2\x89\xa5\x12\ \xaes\xc6\x1d\xe4\xa8\x5c\xc7\xd06[\xf5\x92-\x0f\xb1\ yV\xab\x94\x9cl\xd1\xc9G\xedFc\x9a\xf5\xd5\x85\ T\xe7\x04\xd9\xd0;\x5c\xd7\xe3\xd3\xa4\xbeE\x9b\xa58\ \xb2\x06uj\x9f\x1av\xa9\x00|\xd1\xb0\xa3#\x8aM\ l\xab\x1a\xd3\xb1\x839\xc2\x0d!m1\xa5 \xd3\xa4\ \x83&\xbd+\x0aC]\x86\xa8e\xdb\xb9<\x0c(a\ j3\xa6j&\x94I\x98\xe4e\x1af\xbaCL\x9b\ 8M\xa1 v\x0e\x9e\xd9\x94P\xfb\xbdG\x04['\ #'d~O~\x06m\xceZ\xed\x1aEP\xbb\xc6\ \x89\x06\xb5\xc6\x83\x9b-\x12\xd1<\xab\xd9j%%\xca\ {\x05\xd2\x19\x85\xc1\xdf\x15G\xa5\xa6\xf2W\x85`%\ T\xa0\x864\x95\x07\xf8O\xf9\xdea.N*\xc6\x10\ \xd2\x87\x10\xec_w\xaf\xc6\x9d\xeb7r\xb4v\x9e\x94\ ?&\x8bP\x80f\xd1w(\xdc\xde\xa4Y\x12\xdf\x8b\ \xe1+\x8a\xc8(?\x11\x92\x8f\x9breH\xcaG\xb9\ \xf2\xbf\xe3 \x1a\x829G~I\x85\xa4\x22\x92\x10j\ \x8bl\xc8J\x9a\xefB-\x97$\xeeZ\x0ahf\x99\ \xddh\xefW$\xbf\x829\xbb&;\xb6\x8a9\xb0U\ \xb0_\xa1B\xb8\x8a\xd1\xae\xbd*\xb7\x1d6\x05?\xdb\ \x86v[\xe7)\xe0\x96\x177\x97\x896\xb5US\xc2\ \xcdL\xe5\x93b\x9a\x10\x10%\xdct/\xdc\xceE\xc1\ ]\xdez^\x22\xba\x8e\x0a\x11\x878\x10o\x18\x91\x96\ \x0cQ\x93X\xca\xdfwc\xcbP;4\x9f\x15[\xa9\ Y\x85[u\xbb\xbc\x17\xb7\x1c\xaa\xe7\xe2\x86\xe5\xb1/\ G\xd4T\x99\xad[\xc8\x226\x90T\xcaeH`*\ W\xf2\x03\x02\x0c\x88\xea\x98\xcb\xd3\x83G\xa2C\xed\x17\ 7\x97\x06juK\xf8\xf2\xa0R(\x17\x90\x89\x18V\ M(\x17,NL \xa9\xccRL\xaaR\xa2\xcbx\ +q%X\x05\xcc\xa1\x12b\xf6#Q@\xebI\xc5\ ?\x18\xd6\x1fQSP\xde\x8f'83C\xd2\xb1\x09\ -\x22'\x04S\x88\xa3]\xf7\xbe\xc0pu9\xf0\xb2\ \xeeh\x0d^\xa8\xd9,\xc8L\x9b\xf0\xb9#3=^\ \xeb0r\xf6\xec{A\x80\xb3\x1d\x80\x9b*\xb5$\xe0\ \xb6\x04\x1c\x8a~\x06\x80\xf3G\xf0\xfe\x01\xc1\xec\x82\x90\ \xdb\x11\x096\xe9J\xa5t\x9b\xab\x08\x83fC\x85\xef\ `\xb3\xe8\x18\x0c_&\xcb61\xbc1&\x8dG\x11\ \x86\xc1<\x15W}oX\xdddC\x7f\xcc\x09\xb3\xdf\ l\xdd\xac\xfb\xdb\x81\x8e\x97\x15Z\xf5$\xa5\x12VL\ \xadv9\xd9\xedF\x89nCB\xb2\x19/\xbaQ\x87\ 3h\xa9\xa1\xef\xa5\x90\xb1(\xe5\xb21\x85\xaf\xdcD\ \x96E\xaf[\xcb\xe5\xd7\x03DwL\xce\xedv{\x98\ \x9fmC\x1b\xcb`\xdfZC\xc9\xaa\xe7\xe7 \xc5\x90\ <\x1a\xd6)A\xf2F\xb3q\xe8W\x07\xb6\xd9|?\ \xd6\xcd\xcb\x9bY\xcbd\x96\xad\x12S\x87\xa0\x880o\ *R\x1c\x12P\xb2\xb7\xc3\x7fv'\xdfw`\xc0\x09\ ?\xa8\xc3\xdf\x1f\x87\xe5\xc5\xf8\xd9\xc3\xf0\xb3N\x07J\ \x9b\xb59\xeaF\x82\xff\xb9\xd2\xc7\xe6xGj>\xb8\ E\x7f\xdc\x22\xce\x7f\x08q9h\xef8\xbb:\xbcE\ \x7f\x1cn\xfe\x13\xee\x0a\xee\x1de\xd0\xa1=\xfb\xcf\xa2\ ~\x0f\xb6\xd6\xbeB\xe9Y}\xfdY\x0b\xa7sB\xba\ \xa3\xf6\ q'/Q-\x94\x82Z\xb6\x0d\xd4\xb1\x07\x16\xf2w\ \x8c{\x0f,vt\xf6\xd5\xd7\xe2K\xfe\xdf\x8d\xfc\x85\ \xd1\xdd\xd5\x7f\x00 \x96\x0eD\ \x00\x00\x0b\xa4\ \x00\ \x00;Cx\x9c\xe5[m\x8f\xdb6\x12\xfe\x9e_\xe1\ s\xbe$\xb8\x15\xc5wR\xee\xee\x16i\x83\x16=\x1c\ \xee\x80\xa6\xc5},d\x89\xf6\xaa+K>I\xde\xb5\ \xfb\xebo(\xc9\xb6d\xd3o\xbbN\x1a\xf4\xec\x04\xb1\ \xc8!\x87|\xe6\xe1p\x86bn\xbf]\xce\xd2\xc1\x93\ )\xca$\xcf\xee\x86\x04\xe1\xe1\xc0dQ\x1e'\xd9\xf4\ n\xf8\xeb/?xz8(\xab0\x8b\xc34\xcf\xcc\ \xdd0\xcb\x87\xdf\xde\xbf\xb9\xfd\x9b\xe7\x0d\xbe/LX\ \x99x\xf0\x9cT\x0f\x83\x9f\xb2\xc72\x0a\xe7f\xf0\xee\ \xa1\xaa\xe6#\xdf\x7f~~FI[\x88\xf2b\xea\xbf\ \x1fx\xde\xfd\x9b7\xb7\xe5\xd3\xf4\xcd`\x00\xad\xe2\xea\ \xe1n(\xf9\xd0>=\x98d\xfaPm\x1e\x93\xf8n\ \x08r\x94\x07\xf5c\x09\xe3\x99\xc3\xdf\xd1f\xa0\x181\ \xdaH\xb6*F\x9d9\x10D\x07\xefp\x88q4\x11\ \x8c\x057\x03\x8a)\xf50\xfc\xe1\xef\xfb\xfd\xc5y\x94\ \x853\x98VH\xe7\xbf}X&a\xfa}\x9e\x95U\ \x11&Y\x85`\x00}\x15f9\xcf\x8b\xca\x9b$\xa9\ iZ\xf9\x0f\xf9\xcc\xf8\xbf'\xb3Y\x18\xf9\xd3\xc9\xd2\ \xcf\xf2'\x93\xa6\xfe<6\xa5_\x15\x8b\xec\xd1\x07\x0d\ \xa5\xff\xddO?\xce\x92\x99\xf1*\xb3\xac\xd0\x83\xef\ \xe5\x82\xd3\x0b\xe2\x83:'\xda\x0d\xb2\xce%?\xe8\xe2\ \x17\x05\x08.mg\x13\x12\xb4\xc9/\xef\x7fk<\x0f\ \xfb_\xa8\xd6=gH9bX\xaa@\xf4\x9d!E\ X\xa9@\xf7|\xe1\xbe\xe8\xc4%j]\xa1@\x9a\x12\ A\xf8\x19\xac&5\x9d1\xa2\x9aC\xd2\x02?\x19d\ \xbe@i\xfd\xfe\xcc\x85s\xb1\xb7%B\xcaK87\ \xa9?;\x9ck\xb2s\xecv\xbc\xebJ\x07+\xac\xf2\ \xcbH8\xd1\xf6{\x81zrB\xfd\x0bYy\x9e\xfb\ \xb2\x94\x90\x1c\x09\xe0\x09\xa6}\xfa`\x04f\xc5Ao\ \xd3\x14\x88\x0a\xd5\xa3\xde~\xe3\xc8\xd9\xd8\xce(L\xa6\ E\xccN%\xbaD\x08\xc5\x8e'\x9a?`\xfbu\xba\ \x91\x93\x9b\xa5\xed\xfe\xf8\xbe\xf86\x08\xed\xf7E&\xdc\ \x9a\xaao\x95+\x99\x8a\x10\x0b\xb7\xe6\xe7YJ\xf6,\ \xb5\xd7\xf6\x84\xa1\x0e\xae\xb9\x0e\x92R~VCI\xfd\ g\x19\xea\x5c\xe7D\xe5%g\x0e!\xb3\xdf+\xb9&\ \xaa\x8e\x80\xe8:\x9d\x89\xec\xf7J\x8e\x89\xaa\x97\x1e\xec\ \xecCx\xd1\xb1\xcd$\xb4\xdfkA(/\x83p\x5c\ \x7f\xae\x05\xa1\xbc\x1a\x84\x84\x0a\xf2\xe7m\x91\xa0\xfc\xb2\ \x83\x1c\xd0-\xe8n\x9c\x06~\x88@ \x81\xb5[\xbf\ 8>\x00u\xe9\x00\xd8^\xa0\xf8\xe2=\x9a\xda\xc8\xe9\ \x8bG\x8e\x8d\xcd\x0f\x87\x8eTm\x9d\xe7y\x1b\x8c\xdd\ \x0fD?\xb0\x04%\xbd\xadF\xf4\x83\xc9n\xb5\x8d#\ !\xe2T\x9dc6\xf7\xa4A\x90)\xa4\xc0f\x84\xf5\ zcP(\x09\xd5}\x95\x1abS\xceI?\xfb\xdf\ \x17\x8d\x5c\xa2\x87\xc3X\x0c\xf9\x98\xa6\x8a\xb5\xc9\x19f\ TIu\xc3\x10\x13L\x08(\x85dKr\xae\xce\x0d\ j\x0f\x9b\x01\x22\xb8\xce>|\xc4\x9ev'9\xc9\x8b\ \xd3\xd0j\x89\x14\xd6\xbco'&\x90b\xd2\xbed\xe8\ \x22\xcb\x18\x80 !x\xebC\xbb'\x1b9e\x1d\xd8\ \xc2\x98SSC\x8by\xc0,\xac\x9c\x10F\xaf\x03\xa2\ >\x0bDq\x15\x10\x99FDh\xb9\x93:)D%\ d\xe0R\xed\xf0\x93p\xd6\x8b\x84\x22\xa7l\xe4\x94\xfd\ :\x18*\xcf\x02\xb7I\xc4^\x0b\xefe>\xaf\x8dD\ \x8f\xb89\xaa\xd9\x85\x10\x1c\xc3\x9c\xd2@a\xb6\xceq\ \x9b\x07\x8e$a\x82\x06\x00~\x00\x993\xd6\xfd\xf3\xc9\ \xfd\x10\xda\x19m\xbb#ugP\xbf\x09\xdf\xaf\x0f%\ ;\x0e\xa5\xf8\x1a\xa1<7?u\xe7\xb2\x9b\xac\xf5\xb5\ \x87aGVF\xfd\xd6\xecpx\x06\xd5[?`\xcf\ \xf8\xa8@\x9a\xe8\x80\xf7\xcf\xf8\x88F0\xf2\xee1\x8c\ =\xe3\x03Y\xac(\xef\xbc\xfc\xb5g|\x84 \xce5\ 8\x82+\x9d\xba\xbcn\xf2\xc1\xd1\xc9K\xd1\x9f\xbcB\ \xac\x13\xb9\xb43'R\x07\x8c\xf6g.!\x9c\xc0\x01\ \xe5\xfd\x993\x84\xb5\x94\xf8\xdc7g\x9fu\xe6\x81\xf0\ \x8e\xcf](\xefz\xee\x09l^\x87\xc1\xa4\xdd\x13\xb8\ \xc2Bkz\xe3\x01\xa4\x5c\xdcx\x1c\xa8b\x0b\xc8\xce\ \x89\xb2F\xc0\x1f\xa6\xfal\xa3\x0c\xf6\xb8 \xe8\x9c\x04\ Z\xcc9A`\x08\xd9\xa1\xb3\xc5\x9c\xc3Z\xe3\x97\x9f\ \xdc\xb5\xf8\x9c\x1f\x97+\x1aL\xa2\xdd\xbc\xe4\xdc\xe3b\ \xd0\xa6\xbc\xcb^\xcbS\xccC\xad\xce\xd0\xe7~\xa5\x1c\ \x04\xde\x0b\xdfalA=\x01\xbe\xdbPN\xa3\x1e\xf3\ \xc5\xba\xc9^T\xeb\x8d\x95\xe6\x8c0\xa9\xadc\xae+\ ,\x89\xecA.\xb8dv\xf6I\xee\x11\xc3\xe3@\x9d\ \xb5\x80\xbaa\xe6\xe9\x80\xe2\xff\x16K\xef\xac\x0c\xc2\xa2\ \xe9\xe1W\xe3\xe9\xbe\x9e\xe4\x1d|\xe5\xde\xbd\xa0\xe49\ \xdfC\x1e?\xc4{\xc5\x15%\x8f\x9eX\xabW\xb9\xa4\ t\xeb\xdbK]\xf5\xaf\xcd5E{\xd3.~J\xcc\ \xf3\x9b\xcd\xa0\xc6\xe1\xc6\x8e\xf3pjju`\xa3\xe6\ \xac\xa5\xad\x18\xe7El\x8au\x95\xac?\xbd\xaavD\ \xcdu\xca\x00\xd2'\xb5\xae\xdf\x98\xd3v\xde\x11\xc3\xae\ \xfa\xf2!\x8c\xf3g\xe0\xfbn\xe5\x1fy>\xb3\x01\x91\ fL\x02\xb3v\xab\xebTO!B(\xc0\xbbW\x09\ \xfa(\xc4(\x90wS\xb2W\xb9(\x0a\xc0\xcbK\xc3\ \x95\x81\xb9\xd5\xff\xac\x85\xca\x87\xfcyZX\x8c\xaab\ av[\xda\x1ao<\xce\x97\xee\xea8\x8f\x16\xf6\xca\ \x9d\xb7h\x16\xce|\xb9+\xf1\x9cd0Y\xaf\xbd\xbe\ J8\xdf\x83\xa4\x95X_i\x85\x15{@b\xb9e\ \xebn\xd5\xcaQe'\xd6\x85\xdb5\xfe2\x0b\xe7\xed\ \xf4&aZ\xba\xeb\xb3<6\xe5\x01\x81V\xff,\x5c\ &\xb3\xe4\x0f\x13o\x19\xdeP\xa6E\xfc\xa0\xeei\x9a\ \x8f\xc3\xf4@\xe75S\x1fL\xf4h\x8aq\x1e\x16\xb1\ \x9dd\xbb\x12z\x06Z/\xa9je\xef\x9f.W\xb6\ \xac\xe7\xb4l\x01\xeb\xbe>7\xb3\xb9\xbd\x8aZ\xdfZ\ \xde.\xd3\xa7\xa4L\xc6vIv\x86\x0b\xb2Y\x08\x85\ \xf1N\xa9\x1d}+o{\xb7\x0b\xb3\xcc\xb3t\xd5\x8a\ 5K\xf6\xd6\xdf_\x93u\xf9\xccTa\x1cV\xe1v\ \x81\xaeK\xf8z\x86E<\x19\xfd\xfc\xf1\x87\x8d\xa3\x89\ \xa2\xd1\x7f\xf2\xe2q\xeb>\xac@8\xce\x17\xc0\x99\x8d\ \xf7\xb37>\xa3\x91\xdd\x13\xc2\xea>\x99\x01~\xf6\x86\ \xea\xdf\x97\xb3\x14\xfc\xc4\xa6\xa2'lA\xdbv\xdat\ [\x98\xe6\xd2\xad\xf3\x96i\x1c\xcd\x12\xdb\xc8\xffT%\ i\xfa\x93U\xd2q\x88M\xa7\xf5\x15\xd6\xbc\xb8\xeft\ l'\xf0a\xba\x89=zCH\xaa\xd4\xdc\xff#|\ \x5c\x8c\x07\x9f*\x03P\x16\xf5p\x9b\xf2n\x1f\xfe~\ '\xb5\xe4\x9e>\xdbm3\x87\xfbv\x0a\xcd\xb5k4\ [\x94I\xf4\x10\xa6)\x8a\xfe\xa8\x9b\xb6R\xdb\x96\xa0\ \x22M\x22\x93\x95\xa7aq\xdd\xd4m\xdb\x96\xfex\xe5\ \x95\xa1O\x11\xf6\xbb\xfb\x85\xdf\xda\xb1k\xd7\x7f\xee\xaa\ \xeb\x98\xf6BM\xfdy\xccM\x01\xb6*O\xce\xe3\xd9\ \x8c\xd1\xba\xb0\xee:\x8a\xfc\x9f\xcd\xbc\xc8\xe3ET%\ y\xd6\xb7\xef+;\xfe\x98\x94\x10\xac\x8c\x17\xce\x8e\x0b\ \xf3\xdfE\x02-^\xd4\xf3\xbf\xf2\x0a \xb9n\x9f\x1f\ \xaa\xc3\x83}\x15\x0a\xa6H\x9ej\x93Z6\x94\xd7\x1d\ \xf4\xa7\x87\xb00\x1f\xd2\xe4\xd1\xecR\xaf\xa5\xda\xe6\xf5\ \xe2\xd6\xc9\xdc\xfak\x17T?Mw|q\x1a\x8e\x0d\ \xf8\xe9O\xf5f\xb2v\xd4q\xbb\x97\xee\x85\x01\xd3\x22\ _\xccg\xb0o\xb4\x02m}\xb5\x8dX\xeb\x9fiX\ \x99w\x90,\xca\xf7k\x879\xdd\xe9yo+o\xc7\ \xf1]\xb8\xbf]\x1cP\xda\x86YqR\xce\xa1x\x94\ d\xd6W\x9f\x1eP\x0b\xd1\xb4\xb7\x8f\xc8\xce[\x81\xca\ u*\x1a\x04\x9cR\x15l\xceE\xb9\x0e\xb0\x84\xe8\x1b\ \x13\x0d\x09\xb1\x86<\x98 \x01\x99\xa7d\xe4\xfd6f\ \x9dn\xad\x5c\xab\xb1\xafO:\x81\xa2s\x94\x1e\x04a\ \x81\xd6R1]\x1ffC>A:}B\xaf\xf3\xb0\ z\xe8\xd2\xa7\x13sg\x19\xc4\xdcy\xe1A`\x04$\ \x5c\x14\xa6\x1f\x087\xc3\xb0\xed\x09\xd1\xa4Wa\xb7\xaa\ \x01\xa7H1\xa6\xf9\x0d\x0dP@\x15&\xc1@\x22\xc1\ \x89\x0en\x08E\x0cc\xc1E\xafUk\x83\x09l\x18\ \xa3,\xcf\xcc7\xf6\x97W,R32O\x06\x02\x8c\ \x18b\xde\x22\x7f4\x90\xf6\x1a\xc6\x99l\x1f\x9b\xb8i\ D\xd7\x8f\xd6t0\x85\x11X:\x8b\xbb\x85\xbf\xe7I\ 6\x82\xc5h\x8aui\xfd\x90BTR\x8d\xf8\xba,\ \x0e!\x18*\x0a`A=\x88Ni\x13\x9f\x8f\xf0\xba\ \xcc\x15\xeb\x03\xa4&M\x93y\x7fc\xe8\x18\xa7\xc8\xab\ \xda2D\xbc\xef\xcd\xbe\xb0\xe7\xa86\xe9\x0aX\xe7=\ J]\xb3l\xce\xdb8f\x01\xeb\xd5\xd4o; \x9f\ SB\x88~\x9b\xfa,2\x80\xd4.\xe0R\x1c0\x1a\ #.\xf8\xb7\xa7\x08\xb5!\xd6'\x1a\xb5-\xb6uk\ Cl.\xac]n\x88^\xe9\xcb\x0c\xd1\xc7\xfd:T\ V\xc1>\x95\x19G\x90]\x13{\x19] .%\xe1\ d\xc0\x90\x10\x00\xef\x0dp\x1aC\xc0\xee\xc4\xf2\xafH\ \xe5\x034i\xff\x7f\xc8\xd7I\x93]K\xb7\xd3\x22\x84\ \xd3\xfdU\x03\x16\xa6\xbd\x17\x09\xeb\x95F\x18\xe2\x0cK\ \xac\xce\x5c\x9d\x87W\xf4\x01w\xf09\xd8\xac\xf6\xd9L\ \x02$$\xf8a\x06\xfb\x0c8b*\x98\x18\x04\xc8\xbe\ \x8b\xbe!\x1aa)\x85\x90\x7fA:\xdf\xfa\xd3uD\ 3mb\x99\xa93\x889\x10!l\xa2\x0d~ \xda\ \xc8\xcc\xf3\xeb\x82\x09;\xd4[\x9b\x8a\xdd\xbf\xf9\x1fp\ \xe4Lq\ \x00\x00\x06,\ \x00\ \x00!zx\x9c\xe5XYo\xdbF\x10~\xf7\xafP\ \x99\x17\x1b5\xc9=xGr\x1e\x1a\xa4\x08P\xa0A\ \xe3\xa0\x8f\xc5\x8a\x5cI\xac)\xae\xb0\xa4,)\xbf\xbe\ \xb3\xbc\xa9\xc3\x96dC\x81\x1b\xd9\x86\xbc3\xb33\xbb\ \xdf~3{\x0c?\xac\xe7\xc9\xe0\x91\xcb,\x16\xe9H\ \xc3\x06\xd2\x06<\x0dE\x14\xa7\xd3\x91\xf6\xed\xfe\x93\xee\ i\x83,gi\xc4\x12\x91\xf2\x91\x96\x0a\xed\xc3\xdd\xd5\ \xf0\x17]\x1f\xfc&9\xcby4X\xc5\xf9l\xf09\ }\xc8B\xb6\xe0\x83\xebY\x9e/\x02\xd3\x5c\xadVF\ \x5c\x09\x0d!\xa7\xe6\xcd@\xd7\xef\xae\xae\x86\xd9\xe3\xf4\ j0\x80^Q>\x1bi\x8e\xa5\xa9\xd6\x8c\xc7\xd3Y\ \xde4\xe3h\xa4\x81\x1dE\x96_\xb4;\x03\xc4\xa5A\ \xe59\xe8j\x0c2\xb8F\x0c\xa1pbS\xea\xdf\x0e\ \x08\x22DG\xf0k\xdd\x14\x9d2\x98\xd6\x02\xfe\x82H\ \x84)\x9b\xc3l\x18Y\xfc\xf3\x85\xc9\ \xad\x9c\x82\xdb,\x17\x8b\xda\x16\xf8\x94o\x12\xa0\x85\x12\ \xea\xe0Q\xc8\xe0\x1d\xb5\x1c\x9bY\xef\x0b\x91\x00J\xc4\ \xf9&\xc0Z\xdbEL&\x19\x87\xb8\xa8#+\xc8\x0e\ \x1d \x94\xad\x0d\xcc\xe3\x83\xb9\xc4\x9f\x84\x93\xe7\x83\xe1\ \xfd\xc1\xdc&\xd8\xd0\xecO\xfai\x10\xf7a\xe4\x9c\x80\ \x11B\x84O\xb6\x87\xfd\xfex\x90\xbc\x93@B\xc5\xe7\ \x88h{Q\xf2\x10:\x13\xa5\xe7\xa8Vdl0\x93\ \x1c\x12\xeb\xdd.\x9e\xba\xff\x14)=\xa8jV\xeb\x0a\ \x17\x95\xdb\xc5\x16\xf1\xbcF\xbaQ\xd2\x8e\x11\x19i\x84\ \x1a\xaeg\xbb\x98\xb6F\xa4g4\xad\x02|K\xe3\x1c\ \x8a\xc82\xe3\xf2\xab*l\x7f\xa6\xdf2\xbecu/\ Y\x9aA\xf9\x9a\x8f\xb49\xcbe\xbc\xbe\x86\xf4\xb4,\ l\xf9\xfe-\x82\x1f\xd5\xb2\xa9\xe7\x92[\x1d\x1b.%\ \x84`\xfbV\xa7\x86G0\xa6\x0e\xbdi\x91=\x85i\ \x80\xcc\x05\xb9\xa6_\x98m\xbas\x1e\xdf\xb6\x16\xf2\xc0\ joQb/o\xceX]d\xf8\xd4\xb2\xa8\x8d\xad\ [\xec\x19\xbec\xd9\xae\x7fs\x22\xa9\xf6\xb1\x1c\xfb\xe7\ \xa4\xcb\xa1\xcc{\x8em/\xcdX\xfa\x5c\xc6\xd2\x9f5\ cO\xd9A_\x9e\xb1\xf8\xc2\x19\x8b\xdf`\xc6\xc2\xea\ \xfa\x18\xb2\x14\xdf\x12d\x10\x1b\x11\xdfz\x8d\x84\xb5\xa9\ \xee\x1e\x9f/\x1d\xdb\xb3\x93\xf6\x00\xe1\xc0\xf5E)\x07\ \xf5\xe7\xc2\xa4\xebD\xbc\xe4\xc1\xe4\xc9\x22\xe7\xfa~\x9f\ \xaan\x9f\xc8\xa4\xc7\xf6NS\xe5\x82\x8e\xf1\x91\x0c|\ \x86\x13{\xd2!W\xff&p[\xbdF\xb7\x14\xdd<\ O\xbb#\xc1\xe82x/\x1c\xb0\x9d\xffx@\xce\xbc\ \xf6\x9c\x94C/\xbd\xf8\xe8\x97\xbd\xfa\xc0\x96tV\xf6\ <\xc9-\xfa\xca\xe4z\xf2\x0a\xa0\xc8E\xde0\xb9N\ 9\xc5\xbf\x98\x5c\xa7\x1d\x09^L.\xf2$\xb9\x86\xa6\ z\xad(\xfek^\xa4\xd4\x13R\xf4\x18\xf3\xd5U\xe3\ m\xcc\x9a\xcdv\xc1\xa6\xbc\x18\x1b\xf0dR|*\xc5\ X\xc8\x88\xcbZ\xe5\x14\x9f\x9e\xaa\x1a~\xf9\xb2w\xd5\ _0\xe5\xb5\xd1\xa3\xfd\xfal\xc6\x22\xb1\x82\x93\xc9\xb6\ \xf2\xbb\x10\xc0}bX\xae\xe5\xb9\xd4\xdbV\x87k\x15\ \xd2\xc3\x1eq-{G\x09\xf1l\xcf\xa0\x9e\xe3ag\ G\xb9\x94\x12\x80\xd2\x13\xb6\xe10\xa9\xe2\xab\x06:\x9b\ \x89\xd5T*pr\xb9\xe4\xdb=\x95F\x1f\x8f\xc5z\ \xbf:\x12\xe1R=\x22\xe9\xcb\x92\xe6\x8b\xf5\xb6\xc5*\ Na\xb2z\xf52\x09'\xa7\x1dH*\x8b\xfa\xb5\xd2\ \xb3\xe8\x01\x8buK\xc6m\xd5\xe6\xb0j\xce\xd6\xf1<\ \xfe\xce\xa3\x96[\xbd\xd5\x08g<|\xe0r,\x98\x8c\ \x94\x97\x8ac=\x04jJ\xe6\x1b\xf5d\xb9\xde(Y\ /\x17\x95\x80\x22\xd4\x92\x97\xcf\x17\xea\xf5\xb2x\xf1m\ \x8b\xc4c\x9c\xc5c\x95\x19\x1d,\xc16e \x8c\xb6\ \xa4Y\xca\x16\x95\xbd\xf2\xae(\x9f\x894\xd9TfM\ 2\x9c5Pz\xb9\x816fe\x14\xc5ag[\xb8\ \xe9\x09\xeb\xd4\xe3\x13\x84\x9a\xac\x84\x0a\xd1\xa6\x15&\xb6\ \xe5#\xd2\x9dD\x9b\xca\xea\x14\xd8\xd5t\xfa\xc1\xa1\xdc\ \xf7\x10m\xf7\x00!\xe3i\x9c\xae\xbbU\xae\x14\x15\x84\ *1\x1e\x9a\xbb\x15\xa5\x90\xcfy\xce\x22\x96\xb3\xb6\xbc\ \xd4\x12\x8al\xab&\x92\x8c&\xc1_\x1f?5\x952\ \x0c\x83\xbf\x85|h\xab\x9c2`c\xb1\x04\xee7\xe5\ [\xbd\xc5\x86\x81\xda\x0bY~\x17\xcf\x81\xa6\xea\xed\xf8\ \xd7\xf5<\x81B\xd7(z\xc6j\xc9[\xa7\xa5[\xc9\ \xcb\xe7\xf0\xbd\xef\xbfQ8\x8fU'\xf3k\x1e'\xc9\ g\x15\xa4[\xd1\xcdj\xa0u\xcd\xed\xccch\xd6\x13\ -Z\xd3\x16\x80^ei\x98\x99\xb01OF\xda\x1f\ J9\xd8\xd1N\xa5X.\xe6\x22\xe2U\xf7J\x9f\xef\ ?ib\xe7\xa6Fv\xda#6\xa5\xa8\xdd\xfd$l\ \x9a;\xdb\xd1\x04\xa6\xd9lD\xaa\xd1\xb9&d\xb9\x14\ \x0f\x1c.\x11cl\x93\xbaYV\xad\x80\xd4MEm\ \x18r\x00\x03N\xa3\xae\xf0_\x11\xa7})@\xcbe\ \x02\x85'\x0f\xacZ\xb6\x1dM\x8f\x18l\x05R\xb2M\ \x90\x8a\x94w\xa5\xe5n\x188Fy\xa9\xa1\xb6_~\ \xec\x96\xba\xe5\xb4\xd5D!\x9f\xed\x8e\xb8*\xb5\xc4\xeb\ \xc8\xea\xe2\xda\x13\x02\xedi\xa7\xb9\xe97\x0f\xe0\xaf\xab\ \x05\xe8\xd0\xe40\xd2@\xb5\xeb\xdd\x13\x98\x7fs\x08\xfa\ \xe6\x84p:\xf4\x05\xda?\x0az\x9d\xee\x01\xdf\xda\x07\ \xbe\xd5\x07\xdf\xee\x83\xafN\x8fG\x01\xfb6)\xec\x1c\ \x82\xef\x95\xb8\x8b\xdd\x17\xd1Rw\xde\x1a1\x0f\x02J\ u\xe7u\x18\x89\xfd\x9f\x92\x90\xee\xb9\x84|eF\x92\ \xff\x11#\xd1\x99\x8c\xa4\x87)94\xa7\xe5a\x04\xbe\ \x86\xeaxtw\xf5\x1fXBo0\ \x00\x00!\xec\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a\ \x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \x0a\ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ ima\ ge/svg+xml\x0a <\ dc:type\x0a \ rdf:resource=\ \x22http://purl.org\ /dc/dcmitype/Sti\ llImage\x22 />\x0a \ Pa\ th-Stock\x0a 2015-07-04<\ /dc:date>\x0a \ h\ ttp://www.freeca\ dweb.org/wiki/in\ dex.php?title=Ar\ twork\x0a \x0a \ \x0a\ FreeCAD\x0a \ \x0a \ \x0a <\ dc:identifier>Fr\ eeCAD/src/Mod/Pa\ th/Gui/Resources\ /icons/Path-Stoc\ k.svg\x0a \x0a \ \x0a \ FreeCAD LGP\ L2+\x0a \ \x0a \x0a \ ht\ tps://www.gnu.or\ g/copyleft/lesse\ r.html\x0a \x0a \ \x0a [agryson\ ] Alexander Grys\ on\x0a \ \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a \x0a \x0a \x0a <\ /g>\x0a\x0a\ \x00\x000[\ \x00\ \x00\xb4\xfbx\x9c\xed\x9d[\x8f]\xd7\x95\x9d\xdf\xfd+\ N\xe8\x17\x1b)\x16\xd7\xfd\x22Hn 6\x1ah\xc0\ \xfd\x92\xee @^\x82R\xb1,\x11&Y\x02IY\ \xb6\x7f}\xc67\xe6>\xc5*JJ:mu\xd2n\ \x1f\xa9\xdd\x22\xd7\xd9\xd7\xb5\xe6e\xcc1\xe7\x9a\xfb\xf3\ \xbf\xfb\xe3\x9b\xd7\xa7?\xdc\xbd{\xff\xea\xfe\xed\x17\xcf\ \xf2uzv\xba{{{\xff\xf2\xd5\xdb\xaf\xbex\xf6\ \xdf\xfe\xf9\xef\x9f\xafg\xa7\xf7\x1fn\xde\xbe\xbcy}\ \xff\xf6\xee\x8bgo\xef\x9f\xfd\xdd\xaf~\xf6\xf9\x7fz\ \xfe\xfc\xf4\xebww7\x1f\xee^\x9e\xbe{\xf5\xe1\xeb\ \xd3?\xbc\xfd\xfd\xfb\xdb\x9bo\xeeN\xbf\xf8\xfa\xc3\x87\ o>{\xf1\xe2\xbb\xef\xbe\xbb~u\x0c^\xdf\xbf\xfb\ \xea\xc5/O\xcf\x9f\xff\xeag?\xfb\xfc\xfd\x1f\xbe\xfa\ \xd9\xe9\xa4\xb3^~\xf8\xfa\x8bg\xa3=\xe3o_\xdf\ \xbd\xfa\xea\xeb\x0f\x0f\x7f}\xf5\xf2\x8bg:\xae\xa6\xb6\ \xfd\xf7G\x0f\x98\xe3\x80\xe3\xca\x9f=\xfe\xe5\xba\x9c~\ \x91nR\xba\xfd]\xafu_\x9dJ*\xe5y\xd2\xff\ \xb5_\xfa\xa4\xf7z\xado\xf4\xbf\xcf^\xde\xdf\xbe\xbd\ y\xa3\xb7\xb9)\xdf\xfc\xcf\x7f\xba\x7f\xad\x8b\x5c\xebv\ q\xabWw\xdf\xfd\x97\xfb?~\xf1,\x9d\xd2\xa9s\ M\xfe\x9f\x7f\xd2T\xbd}\xff\xd9\xf9\xd6_<\xfb\xb1\ 7\xe5\xda\xef\xbf\xb9\xb9\xbd{\xff\xe2<\xfe\xe8\xfc\xf3\ S<\x9c\x7f\x1e\xb8~\x7f\xff\xed\xbb\xdb\xbb\xdf\xe9\x12\ w\xd7o\xef>\xbc\xf8\xcd?\xff\xe6\xe1\xc7\xe7\xe9\xfa\ \xe5\x87\x97\x1f/\xf3\xe4\xee\xdfU\xdf\xb7\xa4\x94^\x9c\ \xdf\xe3\xb8\xd9\x1f\xbe\xfa\x17\x1e\xf9\xee\xe5\xef~\xe8\xc8\ \xbc\xf7~\x91\xca\x0b\xcd\xa4\x8ex\xfe\xfeOo?\xdc\ \xfc\xf1\xf9\xdb\xf7?\x7ft\xea\xed\xed\xc3\x99\xb7\xc8\xc4\ \xab?\xdc\xdd\xde\xbfys\xff\xf6}L\xc7\x93\x83_\ ~<\xf8\x9bo\xdf\xbd\xf6\x11/o_\xdc\xbd\xbe{\ s\xf7\xf6\xc3\xfb\x17Z\xc7\x17\xcf~\xa5\xe3?\x7fy\ \xf7\xbb\xf7\x9c\x17\xe2\xc0\xdfj\xea\xf9\xd9\xe9\x85\x7f}\ XLf\xfb%\xab\xf6\xf1\xd8/o\xde\xc7\x8c\x9fN\ \xdf\xdc|\xa5\x87y}\xff\xee\x8bg?\xff\x9d\xff9\ ~\xf8\xf2\xfe\xdd\xcb\xbbw\xe7\x9f\x86\xffy\xf2\xd3\xbd\ V\xf0\xd5\x87?\x85R\x1c\xd7>K\x1dW}\xf8=\ \xfd\xf0\xef\xef\xbf\xbeyy\xff\xdd\x17\xcf\xca\xa7?\xfe\ \xf9\xfe\xfe\xcd\x17\xcf\xe6\xa7\xc3\xb7\x92\xb9R\xae\xe7\xea\ 3\xb7\xef\xfd\xa8\xfb\x94u\xdd\xbf7\xfe\xed\xbbw\x9a\ \xb6\xe7\xafo\xfet\xa7\xf7\xf0\x7f\xf2q\xd0\xfb\xaf\xef\ \xbf\xfb\xea\x1d\xf3\xf1\xe1\xdd\xb7w\x9f\x9e\xc9/\xcf\xbf\ \xfc\x12I\xff\xa1\x9f\xa5\x22\xdf\xb2 \xcf\xbf}\xfb\xea\ \x83\xa4\xed\x9b?~z\xc4w\xaf\xde\xea\xfd\x9e\x1fz\ \x9c[\xfb\xde,\x1cG\x9cu{\xb5\xfa#G\xa0m\ ?\xf2\xd3\x9f~\xfc\xa777\x7f|\xf5\xe6\xd5\x9f\xef\ \xf4\x82\xf9\x87\x16\xe0\xf6\xeb\xbb\xdb\xdf\xdf\xbd\xfb\xf2\xfe\ \xe6\xdd\xcb\x8fW\xd1\xef\xaf\xef|\xc7\xebu\x96\xa57\ w\x1fn^\xde|\xb8\xf9(A\xe7\x11I\x5c\xb34\ \xea(\xc9\xffg\xff\xf57\x7f\x1f\x7f\xd3\xdfoo?\ \xfb\xef\xf7\xef~\x7f\xfcU\xffp\xc0\xcd\x97\xf7\xdf\xea\ ]\x9f\xfd\xeaa\xf8\xf3\x97\xb7\x9fI\xa7\xdf\xdc|\xf8\ \xd5\xab7z,\xf4\xee?K\x17>\x7f\xf1\xf1\x87'\ \x07\x7f\xf8\xd37w\x1f/\x1a\x97}w\x17\xc6\xe1\x07\ u\xe7\xe5\xed\x9bW\x9c\xf4\xe2\x9f>\xbcz\xfd\xfa\x1f\ \xb8\xc9\xf1f\xbe\xe4\x8b\xe3A\x8f\xd7x\xf1\xe8=>\ \x7fq~Q\xff\xed\xab\x8f\x13\xf0D\x92\x1e\xa6\xf5\xf5\ \xcd\x97w\xaf\xbfx\xf6[~<}\xef\xd7\xaf\xde\xdd\ \x7f\xfb\xcd\x9b\xfb\x97w\xc7\xe9\xe7\x89\xfb\xea\xfc6\x5c\ XF}\xacg\xe7\x91\x0f\xefn\xde\xbeg\x12\x90B\ \xfd\xf1\xb5<\xca/\xca\xf5(y\xe6\xd2\xae\xcau\xdb\ \xa5\xf6\xd4\x7f\xf90\xa1\x9f\x7fs\xf3\xe1\xeb\x8f\xd3\xf3\ \xfe\xc3\x9f^\xeb~\xbf\xd3\x8b\x7f\xf6\xf3\xbb}\xb7K\ \x7f\xf6\xf1WV\xf2T\xfau\xd2:\xa6~\xd5\xe6\xf5\ Ze\xaey\xba=\xc9\xa028\xdb\x95\xfe\x94\xcb\xec\ m\x9c\x9e\xe7\xeb5f\x9d\x8b\xb1=\xea\xce\xa7\xe7\xf5\ \xba\xcd<\x97\x86\xf4c\xd7\xbf\x9b\xc3F\x92\xbc\xfb\xb0\ \xb5\xdb\x98\x83\xe3Ri\xb2O\x1c7\xca\x18\xab3\x96\ {\x9b\xa3>\x1e\xd3\xcdj\x9a9_%\xfe\xbcs\x9b\ q\x9d\x96f\x9a\x9dk\xcfVJ\xf6c\xed\xd4F\xe6\ 0=\xb4\x1e\xd5\x87\xed\xd9\xab\x0e+\xd7y\xce\x91\x06\ \x97.\xbd\xe5\x1d\x8f\x90\xe4\xf2\xe2\x11V\xd6s\xc5\xb9\ e\xe4\xees\xcb,\xb3r\x8b^\xf7\xdc\xbe\x85\x94r\ \x95\x18\xdbu\xd6\xec\xdb\x96>\xe2\xdc\xa4\x03}XZ\ y\xb5\xb8\xda\x1a)\xae\xb6w\xed\xcb\x0f\xac\xc7]#\ \xce\x9c+\xd7\xd3\xafO\xfb\xba\xf5\xda\xf4(u_\xf7\ \xb2{\xaa\xa7u\x9dW\x1d}\x94\xab\xba\xaeW\xcd]\ \x17\x9c\xfa\xb1\x0dM\x1cc\xcc@)\xa7\xdf\x9e\xc6u\ -\xa3\x962\xaf\xea\xbc\x1eZ~\xadC\xbf.\x9a\x96\ \xa5\x17\xae\xedz\xe4\x95\xb2\xee\xa2?\xe9\xec>u`\ \xb9\xde}\x8d<4\x96\xfa\xd0\xb3\xe96Y\xd7\xd1\x84\ \xecS\xbd\xde\xb5d\xadM\xd5#\xce1\xd3\xd0\x90\xde\ -\xcf\xb6\xae0\xabm\xafYNz\x13\xe1\x86\xa4\x89\ .\xed\xba\xae\xd6\xda~:\x96\xeaHuIx\x12/\ [t\xfe\xf2,\xed\xbc\x93g\xae\xcd6b\x9eJ\xd2\ \xe3\xf6\xca \x93\xbd<\x9d\x85\x9fc\xf6r\xdf%Y\ \xe2tjk\xb9\x5c=o\x08g\x1a\x8d\xc5-MK\ \x8e\x10\x0c\xcd\xd0,-N\xef\xba}J\xdbk\xae\x93\ f\xdcI\x8f\xd9\xf5\x06\x8cV\xadf\xeb']\xbe\xb5\ 14\xef!\x0a{g\x06\xf5&=\xe5l9\x1a]\ \xf314\xd5]K\xb2w\xd3\x91\x9a\xa5\xd1%#\x1a\ \xd4\x03\xaf\x9c\xfa\xe3A\xddH\xd3U\xfb\x96\xe0\xeaF\ BfEO\x22%\xd2\xb2\x8dr\x92\xa6\xe61\xaa\x04\ H\xf7\xe9\xb3t\x1d\x94shq\xe2\xb7\xa6)(\xc8\ \x11\xaf\xc3A)km4$\x15\xe9s1\xc4\x9aw\ \x1e4\xcd\x1a\x92(S1\xfd:z\x88=C+\xdb\ `D\x82,\x11\xe6\xf5\xf6NK\xd2\xcfY\xb3ZM\ S\x19\xa5\xf5\xc6Q\xfa\xe3\xf4\xd8\x96r\x22\xfc\x9c)\ \x99/q\xa6\x94*\x9f\xd0\xbd\x22\xa1\xe1\xf2u\xce$\ ye\x0a\xba&`\xb3*E\xf3\xb3'\xc2*\x01\xe6\ \xb9>\x0e\xb1\x8e:\xaajNx\xc9\xb4j\x98\x13M\ \xe9\xf4\x9c\xe9\xcdj\xb6\x14\xd4\xa6\xd5]\x1c\xa6\xbb\xb7\ \x10\x0c=q\xefC\xb2\xad\x17\xcee1\xdbek\xe5\ ZaP\x97\xe8s0\xd8\xb7\xf4K\xab\xa8\xb3eF\ v\xdcD\xd3_\xd7\xdaE\x83k\xca\x1a\x95\x18\x94\xe4\ \xe4\xc6\xec\xd7\xa1\xb9g9R\x9d\xdb\x13\xa4KW\xcd\ \x90\x1ea\xa07\xb2d\xbaI\x97\xce\xad\xab&%N\ {\xe4\xfchL\x8f\xd5g\xda\xa9\xea\xbe:)\x8f\xa9\ \x15\xf6\xacJ[\xda\xe4:E\xb7\xd8\x0ci\xe9\x17W\ \x96\xea\x8d\xb2\x96o\xb6\xba\xde\x9c)\xd5bH)\xc6\ u\x93\xf0\xce\xaa{m\xbd\x17\x8b/\xe9\x93u\xd4\xeb\ t\xcdE\xd2\xfc\xf02\x09q\xbcB\xda\xb5\xc0\xc7\xea\ \xcc\xca\x88Ltn\x8c\xc8\xf2\xad\xc9\xab\xc9\xa46K\ \xcc\x90UJ\xdc\xad\xc8LhM\x87\xcc\xa3\x94\xa5\xf1\ bz\xab\x8a\xa4\xcb\xae\xea\x02\xdck\xe6\xd5\x11\x05\x99\ \x11I\x83\xef\xb5\xb0\x13z\xd82\xe7D\xacu\xb9\x94\ \x1f\x0f\xcc.qY\x9e\x09M\xdf\x96xI\x82r\x95\ \x91\xcdrS;\xaf\xd5\xec-dV\x96\x82\x0f\xbd\xda\ \x96X\x0e\x1by\xbdX\x1dW\xf2\x1f\xabb\x09\xa5\xdf\ 2\xba\xbd\xf1t2\xe1\xd2S\xbb\x0ai\xcb\x1e:Q\ N\xa4jY_s\x83\xaaY\x90m\xc0#\x0e]\xd6\ \xa7j\xe6d\xca\xf0(KX\x11W\xd6\xf4HIG\ \x5c\xe1p\xd6\xe0\xae]\xaf\xab\x97d\xb65#9\x17\ \x86t'-\x17sR\xfb\xb4H4M\x81\xa4\xdcV\ N\xa2\x8a\xc46\x19\x7f\xeeX\x97\xcc\x1d+\xd9{j\ \x19_<\x17\xb6\x8a%J\x16,D\xba\xd6\xd3aM\ j\xd7\xd0\x96\xe4\xd7\xc9c\x8e\x94\x91^\xec\x82d\xbb\ \xf0\x86].P\x9eH\xbfi\xcd\xb1\x88\xb2\xa8If\ V#\xab\xeb\xc7\xc93\xea\x05\xe49\xb8\xffDSN\ \x7f~\xe4\xce\xc1\x0f\xb8\xff\x9aVy<\xfc\x80\x86\xef\ \xdf\xbe\xbd\xbb\xfdp\xff\xee\xb9p\xf1\x1fn>|\xfb\ \xee\x0e\xe0\xf7\x08\x0b\xfdo\xc0\xc3M\xd7\xbf\xed\x02\x1e\ .\xe0\xe1\x02\x1e.\xe0\xe1\x02\x1e.\xe0\xe1\x02\x1e\xfe\ \xea\xc1\xc3\xe9\x8dl\xba\x0c\xa4\x96\xf5\x8a\xd7\xd7\x5cj\ \x22nm\x844\x8b;\xac\x82lc\x961\x91\xd26\ {jM\xfe\xc2\xbahy\xe4\x1c91-)\x8cM\ \x87\x5cS\xb8x\xadm\xd8\x04\xd9\x17-\xb3\xed\xe2\x96\ \x83\xcb\x81\x0e4\xcf\x9d3\xfb\xc0\xf0\xb1\x1c\xb2\x9e\x19\ \x0bP\xaf\xe5\xe6z\x89!\x99\xad\xed\xa12\xed\x0e5\ k\xb2\xe2\x8c\xcc\xbe\xf2\xf6\xc54\xcdsO+c\x8f\ \xa3\xda\x94Kbd\xf5V\x87WV>(\xc9\x10\xeb\ \xe9\xe5O\x96\x05L\x22'[\xac\xa1\xaa7\x93\xf9\xe0\ i\xa4\xc4\xc5\xd2$\xd78\xe6\xa3!\xb9\x0dA\x8b\x95\ CH%|\x1d; \xdb;\xbb\xc5\xbex\xd6%8\ #\xeb\xde\x1a\x01\xbb\xd8p\xea\xad\xd1pT<\xa6\x03\ \x8f\x8e^h\xda\x93\xe7L\xaeg\x96\xc7#I\xf0\xa8\ \xd8\x17\xe4\x85\xc0\xe8%\xe5\xe5tG\x08\x1f\xdd\xc7V\ W\xa8%\xa7\xad5\xfc\xc7S\xd6\x9b\xd64&\x88@\ 8i\xebF\x87\x1f\x95\x07Z\xc3sY\x05\x81r\x18\ ])v\x95\x1e\x1bjy-\xed\x1f5\xc4\x91\xc0\x16\ \x09\x5c\x19\xe1^5\xcd\x96/\x0d\xc8+\xd9\xb4K\xce\ *r\xa85\x90\x7f\xece<\x1e\xc4&-\x99\xb0\x11\ \x18L\xd3\x9f\x96\xcc?(G\x7f\xf2\xefZ\xe7V\xba\ u}ek\x81\xa6V\xda3\xed\xb9\xf4\x93\xe7\x915\ \xdd\x18\xcf,\x13\xeb\x91\x9d\x864\x0b\xa5\xd3P\xc7\x03\ \xc8|\x8e\x1a+?*\xca\xa3\xeb\x15\x0dy\x89\xba\x14\ \x0a\x88!1\xd6#\x5c\xe1\xba\xb2\xd0\x1aW\x12\xbc\xcc\ \x0d\xc3\xa3\x9bj\x015\xad\xb2\xc9[\xd6_G\xc9\xc0\ \xd7\xf5xH\x0f\xd5\xb6\x1c\x8d\xb5\xa5H\x92\x84w\x86\ \x9d\x7f/^\x81[\xeb\xba\xa4=\xbc\x9cn\xa6\x17\x05\ /\xc8\x8d\x15d\x5c\x02.\x89\xd1\x90\x96\xc8\x8e\xf5a\ \x08\xe9\xdd^\x96d\xbd\x96\x17k<\x84\x16C\x00\x87\ !\x19?\xe1\x81+\x5c\xb9\xbc\xba\xe5]\xcaVx\xc5\ \x8co\x0e\x0d\x90Y\xb3\x94U\xd9\xc2\x16\x07\x09\xb6\xd8\ \x8d\xcc\x19~X\xdeI\xf0\x9bih\xf2\x07v\xd6\xc2\ \x19\x99\xbb%)B;\x81\x964\xbf\xf6\x9ey\x0b\x8c\ \x0f\xcb\x96\x10>\x82\xaf\x05-[k\xc7c\xdd\x9e\x8c\ \x90\xe5\x91=\x0b\x82\xd9\x9e0=\xfc\xce\xb6#\xf2\xbd\ \xb2\xb7\x1e\x92\x8b\xb3\x9e\x03\xe9\xe7\xf4\xb4\xde=\x0ft\ \xdc\xa5:\x16M\x94\x08\xc9\x94w\xc4\xbf\x1a\xb9\x09 \ \xe6^\xc0hU\xce6\xa6J.W\xcf\xe5I\xce\xba\ \xac\xad\xa3\x1c\x99\xbcw\xc4\x19\x9a\x8efYU\x140\ xU\xfd\xd2\x96o\xa1W\xd7\xfdY^\xbd\xb5\x0f\x92\ \xf3\xed\xd6\xeb\xdceI,\xce\x92\x895\xb0\xa12O\ B\x1b\xc7\xcc\x86\x8b\x92\x17\xd3\x8bj\x92$\x12\xba\xb9\ \x14\x5c\x88\x1e\x1f\x8a`f`\xc3\x00_\xf0\x8e(\xbb\ \xc0\xa6=f\x97\xec\x14\xbbu\x1ds\xc0\x83\xb0\xfcZ\ \x0e\xd9\x06\x8f\xb4\xd0\x82\xb4[\x84&\x04\x1a\xa7c\x0a\ b\xaad\xa8\xea\xc9!\x88\xa73\x83_\x80\x02\x88d\ \xd6|k\xf5eS\x00O\x13\xa3o\x0b.\xb3.\x9b\ a\xcc&G\x9a\x98\xfb>\xd6\xc2z\x16`\x9c\xd0\xc4\ \x93!b\x1eL\x96\x8d\xf7&E\x88\xcb\x10\x94\x9e\x92\ \xb6\xe7\x00\x8b\xd10\xcbr\xa2\xb8\xd5\xc1zI\xcaV\ \xf2:T\x9b\xc4\x08gd\x00\xed\x11\xb7&\xa4\xcao\ \xca\x81\x18O?\x1a\xd2D\xb7\x16\xc6T\x86\xc5\xb6T\ @Z\xe6^\xb3\xaf\xc8\xb1\xc8-m\x09\x91\xee\x82\xff\ \xc5\x19\x02D\xf4\x9e\xf6\x84BlBb,F^H\ \x09\xe6oK4\x8c\xcc\xe4#\x19\x91Lv\xa3Ya\ \xf1\x92-!I\xb0\xc0\x13[\xe5\xad,\xe7\x02\xf7\xb5\ \xe1\xdb\x08\xd5\x08\x02\x0b\x93/\x0d\xb1\xe8\x13A\xc9b\ \xc8\xb7d@\xd4D\xaf\x7f\xadXK\x81\xa5\xdeB0\ \x01\x88\xa1\xc7\x1c\x18\xe0\x84;\x926U\xb0\x90p\x16\ c\x19\xcd\xd6\x88\xd4\x0a\xe0\xc4\x88\xa2\x85\xc9P\x91\xd0\ \x8fJ8\xb6d\x83\x04C\xb2\xb5>I#\x80\x17<\ agLxM\xb89bjYUi\x1dhMF\ !{B\xc3\xbcJB\x8dq\xf2\xb2\x9b\x97%\xc2\x80\ \xcb\x1d\x00#Z\x09\xe1\x12\xaeH\xc32)\xa3\xdc$\ M\x8a\xf4\x04,\xad\x15\x8a2d\x085\xe9\x0a*\xf4\ o\xf5\x98\x22\xca:\xec\xb1\x9a|.\xf3\x0e\xc4d\xfe\ \x14\x9e\xe4\x15nI6\x95\xe9\xd3\xfc\xb5\x1c\x11Q\x96\ \x81\xaca:4\x9b\x95G\x8d\x97\xd3\xa4\xf5\x90Li\ ^\x8ehX3Y\xb0\x1d\x04Y\xc5!\xc7\xd4\xf4\xd9\ P|\x1c\xdaB\xcf\x08p:\xa2\x88Q\xb3\x05L`\ \xa5\x1f\x1e\xad\xe1\xf4\x0e\x11S\xec\x15c\x12\xbanV\ \x00!]\xf6\x13\xc2X\x8b\xa3d\xf9\x84\xae\x01\x97\x8a\ \xa7f\x09Q\xd7\x9f\xfab\xd2\x88\xf9C\xff\xe5\x1f\x87\ \x95t\xa5\x86F\x08Ci\x8d\xb44\x92}!\xdf\xa4\ \xabi\xb9\x04k$$\x12Y\xe9\xe4(\xe1\xd1\x0e^\ @\xfa\xba\x983\x89\x80$\xc4\xca,\xef\x95y\xe7\xad\ \xa5\xd9\xf6\xa8\x5c\xa0\xfd\x18\x95\x93~r*\xe7\xae\x96\ \xdb\xf2\xf2{TN1\xba\x12\x98nB\xf8\x02\xd3\x05\ \xd7f\xbc\x97\xdb\xf0sJ(1\x112\x95X\xb1\xb1\ \xc2\xd6Kf\x8d\xce7l\x87\x8d}&\xcc(GT\ .\xf1\xf4Dl@cp\x1b\xe5\x08\xdb\x8a\x22\xbd\xf6\ t\xac\x0b\x1c\x10\x99\x1c|L\xdd\x86j\xd2<~\xc6\ \x15\xc9)\x071\x22\xa7\xbc\xed4:qo@\x8f\xde\ g(v\x13B\xc676\x00Y/6p\x15\xb1[\ 'c\x9d\x15\xe8\xd3\xc1@\xb0\x0c\xc3\xe1\xdc\xea6\xd7\ Y\xaa\xe28\x80X\x7f\x1a\xccKz\x85\xbbt\x95^\ \x96\xa3\x17\xf8\x82]\xec@$]\xb6O\x04\xceX0\ \xf9\xf1\xed\xeb\xf0\xd2v\xde\x8a\xbf\xda\xb6Ci\xe7p\ RS\xdc\x8a}\xb5\xac\x92\xcc\xb1\xed\xae&:\xc6\xf4\ \xd8;\xac\xd6\xc7\xb1\x82\x0d*\x01\xac\xf4\xeeu\xe6\x08\ \x88\x1bb\xf8dLq\xc1>L\xb9\x8ch\x80iX\ \x1aP1\xef?\xb2L\xe9\x13\x00\xd8\xc1\x05%\x10\x9c\ ,\x19\xb6\xd8\xcb\xa1\xa1y\x00\xc0,\x08\x91?\x01\x80\ B\xe8\x00\xb7'\x00P\x92\xa3`f\x1e$\x9c]\xa9\ #\x02\xadM\xaa\xfd\xc9\xa0,\xb8\xe0\xcfy\xbd\xe5\xbc\ f=X\x1f\x02,\x9f\xb4\xf0\xd8~\xfb\x0c\x0c\xf1\x95\ \x88\xd7K\xac8X,bv\x19\x05\xc7\x84@\x0cl\ G\x06<\xc8\x00\xb3\xc2\x8c\xc9\x8f\x1bO,\x02\x9bX\ uB\x0e\x9f*\xed\xcc\xc7\xf2\x8c\xe0{4q\x8a=\ z\xdc\xa4\xd4\x92\x02d\xc0V\xf5\x83\x19\xea\xd8b\x83\ \xa5\x00#.NHZ\xe7\xc1md@\x14\x85<\x1d\ \x9dZ\x22\xe9M\x8d\xd7\xc5\xcf\xd9V\xe8\x9a9\x05\xb0\ !:\xe8\xdb\xf2\x06u\x17O\xa7u[HS\xed\x9a\ \xeb^Bzd\x90\x8a\xe3u\x01\x14\xdbX\xbb^\xb3\ E\x92\xf3\xaa%\x0c\xbb\xd5\x09\xac\x89\x8e%F\x98\xc0\ \xbaA\x0b\xf8[\x81\xe5anH\xbf\xe1`\x0d\xd2\xf4\ V\x00\x97\xbd\xf4\xf0\xfd\xf4[\xb9\x04\xe1\x09ia\xbb\ \xca\x13\x02`\xc9+6\x8c\xb6@=^Q\x8f#;\ \x81W\x5c\x12\x1b\xc1\x1c{E\xcd\x98L\xdc'^Q\ \xa0<\xf1\x8a\xd0\xa8\xf6\x9d\x19\x04\xd6\x19\xab6\xff\ \xa7\xad\xc8\x83\xa8\xd7\xc7\x09\x9e\xea\xc4uM\xac+\x0c\ r%\xc0#S\xad\x09\xd3\xa3$\xe13)5c\x99\ \x18T\x0eU2\xae\x13\x9a}\x8e\xcc\xf8\x86\x1d\x11R\ \x93\x9beHhQ\x81\x981\xbbb\x85\xd2\x03\xefB\ V3'\x05q_g\x86Da\x22\xfa.\x7f\x96A\ \x14\x0a@R6\xf7\xa6\x80\xb1G\x04\xa3\xc0\xa52\xe5\ B\x18\x82d\x00\xbcY\x84\xeb<\x99\x19*\x9a!\x85\ -\xcd\x9e\x14z\xbc[\x82\xb3\x80\x5c\x06*Br\xec\ \x83}N\x04\x1e\x1f\x87X\xa2\x05\x0d\x9a\xec#\x16v\ \xc0\xd1a\xe9\xc1\xceaTL\xc5\xa1\xce\xb6gB\x05\ \x92d\xa2\xa5$`7C\x8eY\x97\x09!\x94s0\ \xddZ\x0c\xb9T=\x9c\xc6\x08\xd5@\x9dMK%\x89\ \x9f&j4Y\xebL\xb6e!\x1d\xc4L\xb7\xca\x07\ \x8d\xa7\x80\xca\xc4\xd4\xc71\xc8\x0a9\xde\x90k-D\ E\xeb:\x94m\x0d\xf6s\xf4D\xe4\x0a\xf9\xa7\xf8x\ \xa6\x08\xeaus\xe1 c\x8c\x96v\xcf\x0fK\xd1\xa6\ U\x00\x8d\xb6U\x16\xdc,\xc3T\xd8\x049\x00P'\ \xa3\xcc\xa9\xe6;{\xc5\xb2\x10/NK\xb6\xa8\xb6\x94\ \x08\xe3\xeb\x06\xd3v(i\xa1\xe1e:i\x08\xdd\xcb\ '\x0f\x03\x99\x86{\xd7\xbaW\xe9Z\x06u\x10\xb8\x08\ \xfe\x98\x22\x11\x14Z\x8f\x87:t[;3v\x8a\x8a\ B}\xf5(\xb5\x98\x88\x15\x864\xe4\x1c\x03\x95\x86U\ 3\x1d\xc6c\xee\xb1\xcc\xb3\xc9G\x0aj\xc2\x03g\x01\ \xcd4\xcc\x0e\xca\x81T\x86\x14\xc5\x09\x1c@'(\x0c\ \x9a9\x88\xe1QMn0A\xa6\xec\xe4\xcd\x22\xb8\x90\ c\xd2\x1fY\x07\xdd\xd6S\xf00b\xba4\xc8\xe4\xd1\ \xaa\xa3EE\xf7R\x86S\xc4\xd3m\x05`\xac6\x0e\ S\xe6\xcb\xb6A\xf36\x1d\x09\xa2A\xba\x22\x8ew;\ r\x90\x1f'\xc2\x94H\x0aNV\x04La\xcb@\x19\ =w\xa6>\xa4\xde\x89\xa8\xab`\xa9{p'\x09\xbe\ \x0eh\x80\xac8\xc4-\xab\x17\xc3K\x09j\x0f\xd2E\ \xb1\xcc\x86\x87\x91\x15\x9cp^:\xbe3O\x9a\x9b%\ c\x11D\x9fP<\xa49.y\xd7`\x12$f\x93\ \xc7\x06E4t\xb5x\xbd\xc3\xebi\x01\x1c\xaeu\xdd\ \xd1\x16SO\xae3\x1dh\xcci\x22\xabN\xe0\xbb\x0d\ \xa6\x22,\x0f\xc9\xd7$\x93\xfc\xb2\xa1\xa6-\x08n#\ \xc1\x90!0lS\xbb@\xa3\xbdE\x97C\xaba\x1a\ \x14\xc5L\x1c\xaan\x96\xa7\x8d\xaa\xb0\xd4\xda\x81\x8b\xba\ P\x0dD\xdc\x86$4\xa58\xc1\x98\x9a\x18\xcdj\x1f\ -h\xbe\xb5\xba\xd9\xd1\x86\x9f\x0b\xe0E\xd4y\x05q\ \xad;\xce\xf0\xd72`\x04P\x9a~CbX\x80U\ x\x86\x84D\x9a\x1c\x16\xbc<\xd2^m{9\xe5\x16\ \xc2\xa0$p\x11\xc7\xe8\x88d\xeb0\xb0e\xe8\xc2\x94\ 3(>H\x80\x026\xdd\xc0/G\xee\xe3\x18\x22\xc8\ \x968\x1d\x10D\x9eW\xd2\xc6\xfc\xe7r\xb8\xe3\xe5\x84\ \x071\x9cb\xcf\xe2'&\x80\x9e\xb0\x0c[\xbfe3\ }X\x95M\x9c\xad\xe5V\xe0\xea\xd0[\xa6\x87\xfc\x93\ ,\x89\x90\xd8\x0e\xfew\xcb- \xb9[\xf6\xc6\x9e\xb4\ %\x10\x08$\xdb\xc5\xdca\xd6\x8f!\xe7\x0fd\x0d\xcb\x99\xe9\x19A\ JiZ\xd3\xf4\xab\xe8\x0d\x8a\xe7\xee/fz\x04H\ J\xb6\x13w\xa4\xe7\xa4B5\xbe\xdd\x0a\x94\x92S\x1d\ \xe4\x17M\xf2k\x11\xed\x9aR,?s\xd5m\xdd\x13\ \xf2k\xb9\x9a=\x00\xd8<\x07C\xdb\x93\xf3:\xc4\xd6\ $\xba\x8dP\xf6a\x0a\x22r\xa4j\x09'\x84=o\ O\x0f\xc9\x13O-R\xb3\x83\x1c\x94\x855\x87$\x9f\ ?\x0e5gA\x83W\x92\x99.A\xc2\xacf\x0eB\ \x7f\x12*\x89\xc0L\xb6gu\xf3\xaa\xa9D\x8a\x18h\ e<.\xd7\xba\x83R\x96\x22\xb0V\x19\x88\xd6[\xe0\ @\x0c\x99\xb9!\x1d\x93\x1f\x0f\xe9D\xe9:F\xd7.\ {\x09\xed\xdaE\xac\xd6\xa1{t\xadn\xd38\x16b\ \xd9\xb1\xe8+\xd8K\xd2\xd0\x8e\xac\xe1\xcf\xc7\x01K\x93\ y\x09\xf9\x86\x14\xe6C\xf1\x8a\xac\xa2i\xfc\xdabB\ \x05\xa8\x0fQ\xd2\xab:O,\xbf\xdcs9\xd2\xd3\xcd\ \xd6C\xb3\xb9C\x00\x15K\x90lqd\x8d\xd0\xca)\ 6\x12\xb1\x0a^H8\x18\xd2($\x0d\xbd\xd6zJ\ W\x8c\xfb\xe5\xc1\x01\xaa\x1d\xd8_\xa6-\x0b\x88d\x18\ \xa6\x0aT\x08hFtA\x0a\xcb:BN)\x98\x04\ \x99\xa4iZD\x1ee\xb7\x08\x93\xc9=\x07c$\xaf\ S|n\x96\x097\xcb=\x85\xc2\xb1&\xbd\xc1o^\ \xc9\xcb\xc9\xb06\x1b\x13-\xff\x22w\xd3H@\xda\xe7\ \x8f\x1e\xa4\xaffV\xd8\xd4P\xb3\xc2\x8d\x83ctl\ 'y\xe7DSaB%\xd4\xa1\xb4\xb6\xb8\x9aV\xf3\ j\xf2\xda5\xc8\x1d\x85\x0ef5I\x7fG`$S\ ,I\x86#\x83\xa9\x22G\x18\x04\x83\x8c\xf5\xb8\x90\x98\ \x17\x12\xf3o\x82\xc4\xbc\x90p\xffw$\x1c\xc2\x08\x0e\ \x9c[b[\x06\xc1\xaep\xc29\x9f\xa6\x07p\xd4-\ \x8c'\xd8\x1e\x86v\x06\xe8\xaf\x94?\xd9\x83\xe2\x99\xab\ \xe3u\xa8\x81@\x18\x8a\xe4V\x84\xf0\x010\x0a\x10\xdf\ \x0a#8\xedY\xd1Z\x87\x81X\x84_N\x01\x87K\ \x04W\x87\x87\x97\x9c\x87G|\x18\x92\x81\xee\xf3G\x98\ \xc3\xb9~r\xe6\xb0\x8c/\x15\x01]\x98\xc3\x0bsx\ a\x0e/\xcc\xe1\x859\xbc0\x87\x17\xe6\xf0\xc2\x1c^\ \x98\xc3\x0bsxa\x0e/\xcc\xe1\x859\xbc0\x87\x17\ \xe6\xf0\xc2\x1c^\x98\xc3\xff\x00\xcc\xe1\x1b\x198o0\ h\x04\xc9\x93=\x1f\x94\xd2\x97\xa8\x9e\x0e\x96Pq\x96\ \xc5\x04'xT?K\x0b\xfa\x08\xc3\x0d\xe8\x0d\xc7P\ \x90#\xe3\x92zl\xb0Q\xe8\x1d;\xed\x16\xee\xc4\x13\ 'O\xc3\xce\x0fo\xcd\xd8\x12\x89\x03e\xd8\xa1Qk\ ]\x8a\xb7\xbc@\x06\xad\x1cw\xa0L:{\x93\x89l\ F\xea\xb6\xdc\xec\xb7*\xd5hRo\x19\xd15\x88X\ \xbf\xa3\x12]3\x15\x5c\xc3T\xbc\xe5\xa9\x92\xe5\x1b\xad\ \xc5~\x83%\xd3\xee\x1dT\xc4T6P[\xde)6\ \xc4,\xc1\xa45\x82\x9bi\x86\x8f\x85\xc8\x0d\xf3S\x15\ \xb7\x0a~\x18\xabp^'\xd4J-F:5\x9c'\ W`\xf7\xd8A\xb1\xab\x8c\x00\xb6n\xd5\x15a\xe4\xe0\ U&\xc1\xc6\xee\xfd\x98[6\xa0\xb8\xe6\x1c\xd7\xd1s\ H\xf8\x90`\xd6\xa89\xd7\xac\x97\x1a\xac\x86\xa0B\xf6\ ~:=wDxl_p\xb1\xe6\xc7!\x05\xc6\xad\ \x1f\x0c\x02\xeb\xba\xc1\x93\x93\xd0\xd0T-\x84HJ&\ f\xa5\xe4}\xb6\x18\x1c\x10=\x16q\xc8\x9dCA+\ \x86\x1f\xd1\xf4\x06\x13\x81\xd9\xcc\x0e*.W\xa9*\x87\ \xd2eJ\xf2:;\xe1\xe18\x0b\x8e\xd0\xa8BH\xde\ \x80XQ\x1c;t\x0a\x1bB\xfb\xf4^\x9f\x16\x9b\xd9\ \xf0A\xdd\x1cYu\xf1=>\x03\xaa\xd9#\xc2U\x95\ ]\x8b\xe0V.\x9c2\x9b\xe2.l\xf7\xdf4\xdb=\ ~z\xb6[\x82{s\xa9\x93\xfd\x0b\xd9\xeejQ\xc1\ \x1e\xb3A\x95\xb3\xba0\x8b\xc1\x9a\xb4IRcf\x02\ ?\xc0\xc8\xc4\x81\x84\xd5 \xc2324K\x00(\x82\ \xe7*\xc1\xed\x0a\x1e\xb7\xa7cR\x08\xef\x97\x8c\xd84\ \xe7\x98\x11\x99\x0064\xa3\x9d\x0a\xe9Z\xfet\xdb\x93\ lA\xa0\xab\xbf\x16\xea\x9a\x9d\xd9\x82S\x80\xb7\x1a(\ r\xf6\x13$i\xad\x90Be\x1bpW\xfb\x92\x05\xbe\ \xcfWe\xea\xdds\x0f\xa2\xc3\x81|f\xc7\xb5\xa6\x05\ \xfb\x023\xb3\xa1\xb3K\xb5\x8d7\x98m\x82\x892\x15\ \x8f\xc6n#\x86\x9f\xb6j\xd0\x84Z<#\xf7*\xf4\ :}\x19\xc55\xdd\xb4\xa5)c\x00\x8aP\x85f\xc8\ QQ:\xbb#E,\xdeL \xcf#\xf8\xf1d\x88\ \x96\x01\xfdXB\xf6,Nca\x19\xd7n\x85\xe9\x10\ \xda\xbd9\xc6\xc7$'\x8b\xb5\x16S\xf0\x22\x94H\x87\ \xaey d\xdc$Ta\x02|\x06V\x9f\xec\xc1\xb3\ \xb4\xcb[+\xfa\x8b\xadk\xe7Qo\xa5\x86P\xab\xb1\ \x8a2z\xba\xc5\x0e&]\xde(\x0c\xbb@\x85$4\ \xf6:\xc8\xe8\xc8\x0bXZ\x85\xdd\xbc\xc5\xd4\xc1)\x84\ \xb9W\xb4)\xf0\xad%p\x8c\x5c\x9d)R|U\xf4\ \x1b0\xa7k[\xda\x06;\x1d\x83\xc6\x87d\xe0\xe6\x0d\ \x8a\xc9\x17\x94\x96\xe17\xb1!\xba\xc7t\x84\xdet\xaa\ \x0f\xfc!~~bC\xbc\x0eu\x9b\x9bT4?\x93\ \xc9\xc0M\x8b\x81.\x94\xe5-\x83d{\xb0\xabp\x16\ \xdc\x00\xfa{\xa7\xd8\xe5\xd7\xe1S\xc3y\x16\xd4)\xb6\ \x88'8\x19\xfb\xe7\x22s\xe6Y`7\xfb\xc0C\x8f\ \x05\xbd\xd2\x03F\x8e\x1cX\xa9\xf7r\xe4'\x14\xdc\xcc\ #\x17q$OV\x8d]\xa30\xeb5\xe6Nj\xeb\ \xbd\xdf\xa8@dS\x92}/#\xab\x1cD\xef\x0a\xba\ \x1b\x16)\xc5\x0e\xf4Z\xf4\x90\xdc\x0ef%\xcc\xad\x14\ \xcb\xfc)\x0e\xdb{\xee\xba\xc1\x1d\x12'S5\x91\x08\ \x85\x14\x12\xcfl_\x058>\x96\x808/\x9b\xeb\xa8\ \xec\xd2\x89\xb1|\x10B\xc8Hlh\x14\xea9g\xe6\ \xb6\xb3kp\xd1\xad\xc6\xa6\xd4\x02\xf6\x1dF\x97\xd3\xdc\ \xc0\xe31M\xad\xa2\xec\x12tpe\xef4\xd8\xbd\xd0\ I\xc3\xbc(\x9b\xc4\xf3\xf0\x0e[E\xfc\xd8E\x01\x05\ At\xe2\xe3\xc5\xde\x1b\xa0,3\xb4Y4\xcd?9\ +\x0cw&\x14\xad\x10\xc4\xba%\xe6\xb4{w\xad\xe3\ D\xcf\x827\x02\x0dv\xc0\x0b\x08\xbb\x9dE\x05\xe3\xb5\ \xfetH\xe8K\x1a\xd4\xce\xf0g\xb5\x9e\x0e\xf8\xd3\x0a\ h=\x9aC [O\xe1Om\x87\xd9b;l\x04\ \xdb\xd9\xf4D\xc3\xe4\x996\x92`\xd0\x88\xc0L\x164\ \x0d\x5c;\xd9\xa3mo%\xd5\xa0\x89\x83\x998\x13|\ \xb8\x84\xd4\x97\xa7E\x93\x8cH2&y\xf5fF\xf6\ &y\x95\x15&\xa4\x03\xa1TvE\x03\xca\xf7l\xc3\ \xd2\xb8\x16\x96\x05\xc8HK\x81\xec\xbc\x82P\x99\x94\xd3\ \xfeIQ\x5c,|\xd6\x1dj9\xd2\x22!}dj\ \x877\xb4\x7f\x1c\x93&\xd3\x1f\xe0\x9c\xb3\xe8$\xaf\xc8\ Yt\xb8\xd9\xc8Y\x142\x7f\x9f\xe4,\x14T*v\ \xfa\xdb\xc8Y4g\xb4t\x05\xc1\x00w\x0c\x90K\x95\ \x1fu\xcab\x02\x9b\x055AN\xa0\xda\x86\xe7-G\ \xc3\x87\xe6}\xb9U\xd6b\x86\xd27\xb8{6\x06\xf3\ XN\x87\x10)\xe0\xeeK\x0d\x83*\xec\x9aM\xe8\x99\ \x86\xc2\xfeu\x05t\xf3,X\x9a\x0d\xa9G\xc37\x22\ \xa1\xddn\xa8\xd3Y\xc3\xaa\xa6U)p\x0b\x04\xba`\ \x12\xc9\x18oZ\xd1V\x05Ul\xcd/\x11\x7f\xd3\xac\ \xa3\xc5~\xe0\xbc\xa2W\x82\x5cX\x0d\xab*L\x10-\ \x0a\x92B9\x10=i\xc8\xbc/\x89\x8b\xbf\xc9\xc4\xc5\ \x90}2\x19\xc0;G\xe2Bw\xf2Q\x93n\x0c\x91\ \xb8\xa0\xd8\xc0\x89\x8bNv\x1c\xa7%s\xcd\xf6P\x19\ \x83\x99\x8b\xc1f\xc1\xd9E!H\xa3\x89\x04=\x93\xf4\ \xfai=\x1ab\xe9&J\xe1\x00\xab\x1f\xedr\xce\x9b\ \xeb\xe5\xc3\x0c+=\x155\xda\xb4\x10\x22\xef\x80\xa7G\ \xcb\x01,wYO\x8fjtSz4d/n^\ \xf2\xc8DX\x14\x1cg\xd7x\x81\x0d\x5cv\x8c\xde\x14\ P\x86\xc4\x12\xac;\x13\xc1{\x06*Z\xb6\x0e2\xc5\ \xad:(\x1c\xa8/\x0d0VXG)\xb6\xc9B\xbd\ g\xe4x\xe5\xe7\xcd\x93/lE\x5c\x84\xbc0\xaa!\ \x91h\xed\xa8q\xe9+R\xebZ\x11\xdf\x9b\xb8)\xa0\ \xd1\xe0\xc4\x909\xc2\xffP\x8em\xe7d*\xf8\x10\x1f\ \xd9(Xh\xa6O0$\x1aS\x81\xe1\x22\x0e\x95~\ \xe4\xe8\xbd\xc0\x1aF\x94\xf6\xaf\xcf0\x90W\xb2\x09\xd2\ \xab|\x9a`0\xe5\xf28\xbf@\xd7\x9faS\xdc\xb9\ \x02:-\x98\x02u\x8eI\x1d\xd1\x13h\xd0:\xa4\x0b\ \xeb\x1f\x0a]\xf0\xb4H\xabt\xb1;\xf2\xca\x04\xe6n\ \xee\xd2\xdc!\xc9T\xba|\x11S\x0b\x85\x1e0E\x92\ \x1a\xf6\x14\xfc\x13\x01x*\xdd^g\xee\x88\xcezu\ r#\x02\xd7\xa81\x22\x0d\xf48#1\xc8{\xac'\ \x19\x09]0E\x0b\xad\x87\x8c\xc4\x1bw\x9f\x02K]\ =_\x88\x84N\x8f\x06$\x940D\xe5\xcc\x84\xa6\x04\ \x9dj\xa8\xb7\x83\x9ei\x84)\xd23\xad~\xe0=y\ W\x03NA\xbb \xc4G\xdf\xc7\x0bI\x97\xa2{\xd1\ p\xe3\x13\xaf\x11t\x89\xfdr!\xfc\xb0\xb8\xd0\x87#\ \x00C\x11~\x0a\xcd\x92\xf6\xe5ff\xd4\xa5\x0d\xd1\x99\ F\xde,\xfa7\x09k@g\x1b\xb8\xe6#O\x08\xd2\ 0\xe13\x08%\xbc\x09[\x81o6\xdf3\xf5\xd8\xe4\ *\xa5\x13\xad\x8d\x08\xfa\xbaM`\x81\xe7\xc7\x07b\xaa\ \xe1\x16\xae\xe9\xb7\x91\xec\xab\x04UZ\xbdr\x15\xc6>\ z\xeb\x84\xdb\x91\x14\x92C8\x9c!W\x912W\xfc\ \xbf\xf4\xf1\x08Q;\x9cQ\x10\x89\x03\x8d2b&5\ AF4f\xdaH\xcez.5p\x8a\x1e^\xf2H\ oT\xaa\xcd\x08!\x14\xce\xd3\x12\xad\xb0\xc3\xbbD\x86\ 3\x11\xdb[oh'\xc3\xec\x93\xb4\x0ar\xb85B\ \xbe\x80\x07{\x84\xd2\xcc\xa3\x1c\x8d\xa6A\xf5\xc8dD\ O'\x9da\xd8!O\x87Q\xd7\x08i\xaaN\x0d\ \x80\xfcY\x8e\xe0K\xd3\x9e\xcc\xaaQu\xb5\xc2I\x0a\ \xcf\x1a\x1e\xaeIY\x92\xd7\x82\x88\xba|\x1cr\xee\xa7\ E#\xa9\x9d\xdd\xd8\x8d\xc5v\xac\xa4EM\x91&\x90\ ;\x93K\xbc$\xc9.I\xb2K\x92\xec\x92$\xfb\x97\ &\xc9hf\xe7>[\xd0\xa5\xb2\xea\xe5h\x9f\xa5\xd1\ \x13eG\xa5\xd1\xa7\x07gnJVNw<\x19\ R\xa8\x9a\xd3\xc1\x08\xc2\xab1a$gh=\xc6\xa5\ \xe5\xcav\xa4\x0c\xe4\xf2\xe83\xc6\xc4\x8e\xd6\xcf\xc0'\ \xf2@\x19\xfd\x0e\x98S\x14\xee\x07\x9fL6\xe4\x0c\xd3\ \x8fB2]!\xa0\xb5L\x85k\xb3\x14\xc0\x8d0\xc3\ \xd0\xd5\x03\x17%l\xb4\x22E\xf40\xa4\x97\x96\x99\xf1\ \x82P.8\x175\x93\xd2\xbcI\x14'\x5c\xdc\x5c+\ H\x1d\x86\xfe\x9e\xe9g\xe8\xe4\x81\x22\xcbv\x04\xbb\xd9\ \x01+\xe4\xdb\xee\x91\x98h\x87\x88\xd5h\xf3\x88\xa6\x0c\ R\x83\x91\x80\xdc 7\xda\xc8Eo6\xd3\x1d\x97\xfc\ \xe3%\xff\xf8\xef6\xff\xb8\xe4<\xa0X]W,\xff\ +!\xfb5:!\xdbL\xc7V\xecp!\x8a\xd0\x18\ \x1dy\x1c\xed\x91\x8c\xdb\xa0\x91\xc1\xecv\xaa=cL\ \xc0\xd7\x13\x0d9\xc3\xadY]\x16\xaeRq;\x8b\xa3\ \x87L\xc8]\x9f\x0c9\x1a\xebVSY\x8f\x837\xa0\ \x8c<;\x0c\xab{\xd6s\xf5\xd7@ve\xe8\xd2v\ _YM\x02\xecw\xae\xc6\x0c\x93VG\xb2\xc0\x0ax\ 3\x8a\xb2\xf0\xd7\xe7\x17\xdc\xe7\x17\x94\x0d\xfa\x1f?\x9c\ \x90k?}\x0f\xe2[\xc1\xb2\x1f\xfa\x80\x01\xcc\xa7\xb0\ \x0e=\x88AD\xfd\xa8\x1c\xdb\x94\x9b\x05\xf9\x0c+\x13\ \x194\xc5\x22\x11\xfa\xb6J\x07\xa6\xe7Q\x95\xd6F8\ \xd1v\x84<)\xb6Z\xd0\x06\xb1\x04\xf4,\xac\x97U\ \x83\xc1\xa8\xcc*\xc3$\x0a\xc1\xbcs)\xbf=\x15\xe7\ r\x15\x1c]5B\xb4B\x9dl!p%,\xaf\x1b\ m\x14L\x8c\x84\xa1\xdcI\x18Fh\xf3|\xf0B\xed\ LH\xa4\xe4-\x09\x03B>\xc2\xf7E\xef\xe2\x88\xa9\ \x87I1\xe7\x03\x1c\x0f\xc8\x18\x9b\xf0\x92%)\xc1\x9b\ I\xb4q\x94\xd4\x8f{DvgX\x86\xf4\xda\xa68\ IC\x9b\x13\xab\xa3\x9b[\xa4\xbb\x9e9\x0ay\xe9\x1c\ lO\xa9\xc5\xad\xfc\xa8\xfe8lT\xcfi\x05\xc3@\ )\xfd9Cs\x1e3\xd3z\xe8\xf8\xa4\x0asEK\ d2\x7fN\xe0\x08\x92T\x87\x87\xbb\xd0\xa1\x0a\x87F\ \xb6x\x1eqs>'\xc0`\xb0\x1d\x04\xa4D\xc4j\ \xec\xb1[\x8c\xcd\x5c\x9cT\xcd\xeeX;\x22]\xa8\xd9\ q\xcf\x5c'~f0!\xae\x1e\xd5\xdf\x8f\xde\xb0\xf4\ Ht\x8e\x91\xbctd\xac\xe9\xad\xec\xec\xa5\xf9MLV\x1d\xbb\x8f\x04\ \x1ce\x99\x8e6'\xd4h,yW\xe8\x09\x8e\x17X\ )Q<*\xbb6\xcdGP\xadPm\x0e\x1b\x1d$\ \xa3\xe5\xb3\x00\x93\xd3U\x836i\xdd\xbc\x5c\xa2\xc3\xed\ \xd5\x03\xf5\xc4\x06\x90)'L\xe7\xebJ $4Y\ \xd8*\x22w/\xc7P&\x84!\xb4\xe9\x80\xf4\x14P\ \x99\xd4)l7\xb9\x1c\xdcAX\xae3D\x0aK\xf2\ Q\xf1\x01\x9b\xea\xc8\x12\x01\x96iR\xc2\x9aA>\xb3\ \x07\xc9\x06\xd3]\xf7\xa1$\xcc\xb6\xceY\x81\xc8\xe4\xa8\ \x17c\xf4D\xf3v\x0c!C\x0a\x10\x18#\x12\xdf\x07\ \xbcH\xd4\x94x\xcd%\xfe\xce\x1a$\xf8\xa6(\x02F\ \x85\xa2r\x22WW\x5c<\x1e\xab\xe0\x91H\xa2VX\ \x92\xfa1\x8b\x0aNOl\x8e\xb8dQ/Y\xd4\x9f\ \x8b:\xcf\xea\x9e\xa2H\xa8/\xa2\xab\xc8\x03\xd6\xe1\ \xb4\xd6^\xde\xf1\x861\x9d\xf3`\xbc5\xb7N\x99f\ x\xbf\xa8\xe2\x90.$gV\xd9\xbcF\xce\x8d&\xc9\ \xdd*P\xe8i\x9e\x87\x09\x04\xf9\xbe\x117 \x8f$\ p\xe24\xaaT\xf2\x18\x93)\xb1\xedm\xc2\xd3ne\ (C_\x83!\xf97I\xa3\x96\xefeQ\xf7\xff\xdb\ $\xea\xba$Q\x01bexS\xd2\xa3$*\x0e\xb5\ \x9e7~%\xcdD\x86\xc7\xca\x94\xc2\xfb\x00\xa1v\xbe\ \xd1\xe0\x9e\xc7#E\xc7]\x80\xc9r\x0a_ f\x85\ \xb0\xbb\xd0n\xe3\x94\xf0\xeb+\xba\x11\xf7\xe1\xa2\x16p\ q\x01iD\xdfj\xc5a\xc9\x89\xc6\xb1\xf8\x0cCx\ \xb4~\xde\xea\xb1\xa0\xa4\xc27\x0aU\xa4\xe6\xae\xc3-\ \xed\xb1\x02WH}c\x97\x9b\x1c\x9e\xcc\xae\xe3/\xf9\ @Yn\xebB\x05:\x00\xaf`\xdb\xab\xab\xed\xc8k\ V\x07(\xa5{\x97\x1b\xcf\xedT\x0d\xb0\x84-lQ\ u\xc8^\x0ac\x8c|\xee\xacM9\x03L\x9d\x0c\xb9\ \xe4)\xbb\xb2\xa1\xdad\x81^\x9amV\x05\x0f:\xef\ *\xed:\xb6t\x22\x84+2j\x10\x00\xb6O\x9aH\ \x9fX\xb1{$c\x01kN\xc6\x82\xbc\xe0\xdbi\x1f\ \xdfP\x88\xeeO\x0e\xb4\xd2\xffO\xc9\xd8\x15\xf6\xf5c\ 2\xb6\xe6\xd8\x81\xf8(\x19\xbb\xfc*\x89\xcf\x7f\x90\x0c\ S A~\x92\x9a8\xe8u\xb0\xe9&;\x18\x19\xec\ \xe9c\xa0\x1c|\x0cV\xd3\xf9\xebN\x1fy\xabc\xa3\ }\xf1\xc3\x80\x99s\xf2\xe5Ng!\xc0\xdctgr\ L<\xf2\x8a\x15\x92\xbb\xa8N\x1b\xebm\x86\xe96\x10\ \xda\x11P\xca\xb79\x7f%'Q\x83\xca\x9b\x0b,\xfc\ d(\xf3\x89G\xfb2\x7f\x99\xc1\x81\xe4\x84\xc0u\xce\ \x86\x9d\xbeN5\x8f\xc5\xc6a\xd8\x030L\xabn,\ \xee\xc1`(\xc8\x0e\xb9\xb3\xf3\x92y\xdf\x07A\x91\x14\ \x0f\xf3\xdaHp\x80K\x9a\xd8\xb7\x88\xe3\x9d\xb5\xe7\x99\ \xa4\xd9\xae\xa8K#2\x99,\x99k(A-V\x99\ \xe8\xcc\x8e h\x1e\x8cb\x86\x16\xd1a\xb8VhL\ '\x85{\x0e\xbb\xac\xb7^f\xf4\xb3\xecn\xc0\xe8F\ V\x0c\xa8C\xa8\x1c\xee\xa8f\x92\x84Ls\xdb\x91\x0d\ j\xb1\x11\xc6$j\xb3\xc3k|\xf0\xe2\x98\xca\x11\x19\ \x7fo\x87\x0e\xbe[\xf8\xd2\x9f-\xc8\xec\xef\x09\x08\x92\ \xa67\xe6\xb2\xdbx;5\x8eht\xbf\x1b\xb1\xfd\x88\ O\xaf\xa4eK5\x10\xeaH\x83\xc1\x1b\xbaK\xad\xec\ \xa9M\x97\xc2\xe5\xe4\x9c0\xfb\xe6s\x09z`dg\ \x0d\xe5\x05GP,\x83\xe29\x16X \xe7\x00\xd3z\ \x99H\xfc\x0f6\xd38v\xd2;\x84#\x1a\xe13\xe9\ w_\x02\xcc+\xb4\x9eN\x87\xec#\x0f\xda\xcb4\x84\ \xdb\xc5y4\x03z97\x14[8g\x14\xc7\x879\ \xcbv\xce\xf02l\xe27\xbb\xdak\xa4:\x85\x95]\ \xe41VL\x1cL\xa8i%\x81\xf7\xa3\x10\x11&\xbf\ G\xae\xf0\x80dt\x1b\xce\x08\x8a\xc0\x0a\x0e\x8c+\x12\ \xe8\x99\x12\xa8\xc3\xaf\x0b[\x9d\xfd\xb5\x97\xb01\x9e\xdf\ 4\xe4\x83-\xcf\xb0\xaa\x8e\x1c\xf8\xd4K\xb3[\x83n\ \x89\x84\xb2\x1c\x93?'p\x1e\xba$\x94/\x09\xe5\x9f\ 0\xa1\xdcq f:{\x04\xeb\x8a=\xe1R\x92\xa9\ \x92=\x8e\xfc\xce\x8c=\x95\x10T\xc1;Bg\x90\xf3\ \xc9\xbe\x0fn\xf0\x92\x18\xbe$\x86\xff\xff%\x86\xdfx\ \xb8\x90\xda\x83\x9a\x16\xbe,%\x12\x9d\x95/\xda\x04\xef\ \xa2\xfb;\x85\xa9\xd8a\xe6h\xbf\x00\x04\x03\xd3HP\ \x1c\x184\xbe\xfceJ\x8a\x0c]\xd8\x8e\x01\x86c\xc1\ \xfa\x9a\xc7Y\xcb\x1f\x109\x0f\x10\xa0B\xdc\x05+9\ J:\xf6\x86J\xa8\x0dO\xfb\xf6fa\x88\xe0&5\ \xc53\x90N\xec\x01I\x06\xf9K;\xdaD\xc1\xb9'\ \x83\xcf\xc9\x18\xb1\xc2\xde\x1d\xa4\x86\x0cR5~\x9bT\ \xcb\xd7\xa7\xc7\x8d\xc8\x1b=\x1abC\xea\x11\x80i\x05\ \xc6\x8ae\x05\x02\x84&\xf7\xe9*V9\xdd\xf8P\x9b\ \xe2\xd1\xd5>\xa6\xd8e\xeb\x22\xc3\xce.\x0aS\xdd\x05\ \xc1\xb1\xe4\xf0\x81\x8c\xa3\xc4\xbf\xc3\x99F\x9a\xb7\x1d[\ \xbce\x0d*#c\x07\x07\x87\x01\x1a}\x1e((>\ \xb1\xd65\x15\xf6\xae\xde\xc0`;\x03\x01\x99\x8fXb\ \xbbK\xbf\xf1\x0cmIl^e4\xec?\x12BA\ \xb6(\x80vq`j\x99\xd8)\xaa \xfd=7\xa4\ \x86\xd68f\x1a\x16\x1f\xb2+\xc1\xeb\xf9c\x1fX\x03\ wKX\x824\xe6\x0a\x9a\xa9>\xe6\xadl'\xba\xe5\ \x0a\xb6K\x03\xf1\x17N\x1d2[\xf0\x85\xd8q\xbc\x94\ \xab4\x0b\xe5w\xee\x8f@\x01>\x91\x05\xf5\xff\xde\x12\ L}\xe5xH\xc2\x8f\x14_\xad\x13\xe4\xda\xb3\x5c\x92\ \xf0\xff\x8e\x92\xf0\xffx\xa2!\x0d\x9bq\x9a7d\x14\ \x17\xd4>|\xa6\xa7\x95}\x94\x8e\x18\xb3\xe2\x12$7\ -R\x8a\xb0>f\xee\xa8\xfa\x5c\x87[YGVU\ g\xfa\xfb\x81\x84sR\xb4\xf3\xc2\xee\x0ev\x943\xdf\ c\x1e\x96\x97\xcf\x1d\xb5\xf3V\x93\xe2]Wd2l\ \x07\xfdE3\xdbOJ\x1b\x9d#\xdb3\xbbM\x07\xb9\ g\xc7P\x85\xbe:\xc7Q\xe5\xa0v\x06\xd1\x80\xd1\xaa\ t\xceQ\xa2\x96K\xf8\x06\x90\x01\xfd\xe1\xc8Z\x0a\x16\ \x00L\xf1i1Y\x87!H&\x1f4#\xd0\xac)\ >!f5\x93U\xcf=H\x22\x09\x99C\xdc\xaa\xd0\ \xab\xc1G\xe4az\xa5\x1c\x89z\x12\x04\x90\x94\xae\xac\ \x94zD\xa8wT\xe5\x9e\x8bX\xe6\xac\x07\xe5U\xc6\ \x93\x01\xa9S:\xb4\xa7P\x17\x11\xb58\x03\xde\xa1\x5c\ \xea#~\x9a\xf6\x83>\x80\xf5(\xae\xfacO\x18f\ \x89\x22\xa1\x14\xc4'\x99p\x92\xd8\x02(G\x93\xa1#\ \xa1\x90(\x95\x83\x0bV\xe4\x01pY\xd2\xe3\xa8\ HA\x18B\xe8I$\xa1\x03\x010(Q\xbbT\xaf\ \x5c\xaaW\xfeCU\xaf\xe4\xe6=8\xd6\xc1\x9d\xe6\xd9\ \xb2\xb3\x09\xa5F\xa6=\xebU\x5c@aN\x80 o\ \x91\xaf}<\x02K\xfc \xdeG\x91Jg\x87\xa4)\ \xfbM\xe2\xcf\x80\x93\x8d\x08u>\x1esf\xcf\x1f\x9b\ 3\xfa\x94:\x19\x13Jt\xcd\xf8\xf9\xcb\x81\x18\xfd\x8a\ \xed\x1a\xc7\x07\x0de/\x8d.\x85[\x86\xf7V\xd3\xb2\ \xaf\x99\xaa\x94\x81\xb3\xa5\xd7\x024g0\xc8R\x8dH\ \xd0$G\xe2|\xa5r\xb9\x01\x0d\xbd\xb8\x9c\x10\xa4\xf3\ \x8f\x89t\x09\xb3\xe9\xe1e\xb2\xc0d\x97@\x83oU\ \xec\xe4\xf1\xe3\xcd\xdf\xa3\x03\xec\x1e\x01\x1e\x5c\xb2!\xd9\ \xd8+Z\xcf\xcd\x11m\x92tV\xb3K%\xce\xf3#\ \xd3q\xcf\x80\x98\xbe|\x8e\xf1;6m\xfa\xb1\xee\x07\x8b7\xc2(O0\xd7\xa2\ \x1c\xf9\xd7\xa7\x9a\xfc\xfd\xe9\x0e\xf2UX\x80\x1d;U\ \x18\xe1L\xff\xa5~lQ\xde\x1eK r0\xb3<\ \xaa\x84\x85\xb1\xach(M\x7f\xec\x952$I\xc4\xf0\ G}\x8d\x9bw\xda\xde\xebC\x11\x0e\xf9W\xc7\xa2\x0f\ \x83\x87!k\xeb\x10\xff\xd2X5\x90\xa1\xb0\xfa\x1c\xe1\ \x12\xb0\xf5\xfeV\x19{\x9d\xf9(\xb6\x9do^^\xb8e1D\xd7\xe1\x0e,Z\ \xa5\x11\xacQ'5[\x8f\xe60\xb4\xb6-\x12\x98\x8f\ c\xb7\x91n\xa0*\xa5G\x0d\xce\xf0~\x5c{1=\ l}4\xe4.\x8b\xf5\xdc\x8bBfe\xf7\x88'\xb0\ \xbf\x91\x0b\x87\xdc\xfc\xa4\xe4\x8b*\x8eK\xc5\xd7\xa5\xe2\ \xeb'\xa8\xf8\x02(\xcc\xa3\xdd0\x9b\xe6g\x14)\xd5\ \xf3\xa1\xd2\xbd\xe9\xdd\xeb\xc2Q\xd0(\xed\xa8\xa8\x8c\xe2\ \xa5\xce\xc7\xce\xab\xc9ZYO,6U\x902Y\xc3\ \xac\xaaM{#\xc2H.A\x89\xb1>\x9dF\x1f\xd0\ \x90\xee\xb4\xc4\xc7\xc8\x89\xaa\x0b\x1f\x8a\x8e\xb6\x10\xc8\x1a\ \xd1j\xab)\x1aEt\xe0f\x94b\x91\xa9\xf1\xa3w\ \xb7\xfe\x94\x9a\x8ey\xbc\xac7\xa0#\xe8Z\xd9\xfd\xa4\ \x12\x8b2\x8e\x11\xdc\x8e\x9bR\xbb\xc160\xd0\x01\x1e\ \xc5\x5ca\xfb{-\xc1\xa0L\xf7o\xc6\xeb\xd7\xa3g\ 3\xcdv\x8em\xf2\xf5\xa8\xd7D\xc7\x9c\xc7\xe3\x1b\xf3\ \xad\xaf p\x9b\xe3\x97\xe4\xcf\xc8\x86\xbd\xa7\x15%\x1f\ \xa0\xa5\xd2\xa0\x1c\xedd\x84\x94\x98\x06\xb9\xc1\xa3z \ +\x1a,\xd1\xcc\x9c/\x9d\xcf\x03\xb3F\xfe\x86V\xa4\ a\x94\xc9\x15o\xd3\xfad\xaa\x81\xa4\x93\xf4\xa8\xbb`\ \x83\xf5\xfcE\xf5D\xc3\x19\x13\xd5+\xac0\x8c\xce0\ \xda\x99\x12\x95+\x17\xd3e7C\xd0\x02\xc6\xf6\xf1D\ \xa1\x85f}\xb3i\xdd\x198\x5c\xc8,O\x86H\xaf\ \x90\xf4;z\xe7H\x82\xd3\x88\x9cZ\xc6P\xb8\x9cV\ \xc0\xa7\x9b*\xa3\xd3R^O\x06\x8d\x11\xdd\x1b\xf5\xb0\ \x82\x81c3m\x00\x0e\x92;\xf6\xae\xbb\x021\x99s\ \x8b|\x9a\xf7\xc6\xd3\x12*\xea\x0d$\xf1\xc9\xc6\x90\xf4\ AdJh\xf8\x1d\x1f\xa2_\xae70\xf1\x99z\x90\ \xde28\xd1\xf3\x95]\xf2\xf3\xf8\xbaz\xeb\xeec\x0e\ \xa91\x03\xb6\xc8(\xac\xedb\xac\x8392MI\xbc\ \xe2M\xec\xc1\x13!XK\xb2\xed\xb0\xea\xe3\x18\xfdr\ {>\xe8G\x19\xfaf\x1e\xfcQEU\x05m\xed\xa7\ \x15UU@h\x8e\xbf\xcd\x8a\xaa\x12\x19\x83)\x99\x8a\ \xaa\xd2\xe5\xd2\x0f\xdb\x15\xca\x85\xd0!\xa2\x93\xf6\xa4\xa2\ j\xe2;9\x8f\x96\xfb\x06\xff\xc2\x11|\xea\x1d|\x93\ \x96\x22\xbfH\xa8FtE\x0b\x86\xa3YV%\x8f\xc1\ \xfdV\x8bZI\xf9V\xf7\xcc\xc7$;\x9d\xbe\x8b\x1d\ \xec\xd4JY\xfb\xf5s-QN\x05\x15ng!\xbb\ \xb5\x22kW\xdd\xdcB>F\x90\xcb\xe5T\xbd\xe4K\ 9\xd5\xa5\x9c\xea\xdfW9\x950\xc8\xe1\x0b\x13.\xd3\ \x88p\xb9\x19#+5\xb3\xeb\x14~\xa8;\x07_\xe0\ \x18O\xbasP\x02\xbc\x9ev\xe7\xa8\xae&\x8cJ\xa5\ \x12b+\xdd/\xb1\xfc\x90fV\xb0U\xc6a\xb5I\ I[y\x09D\xa2\x82\x16\xa9)N\xca6\xbe\x5c\x81\ \xdf\xc9\x12\xaa\x088\xd0g\x8b\x0d\xc5X\xeet/\xe7\ 1\xa2\xb3\x9et\xa8\x16\x1b\xa31\xc3w\x1cCL\xe4\ Z;\x22\xf9*+\x97\x02\xec(\xb80\x0b\xdbi\xb7\ \xe8\xe7\x91\xb1\x1c\xdeL\x22\x90s\x14\xa5LR\xa0\x07\ \xf7\xb1\x22DZ\x14\x15\x07\xb7WG\xa4X\xf5j5\ L\xab~\xb4\xed\xa0f7P~\x9b|\x06\xc2zK\ \x06\xdcR\x0a\x01\x1c]\x22\x8f\x8f;x\xa7I\xd4\xd7\ \xcf\x92\x8eN[3z\x85/h\xcah\xf23\xbd\x05\ \x9d\xca\xb3B\xd9\x95\x93\x1d\x14&8\xeb\xb2\x22.\x95\ \xdc\xaezdo\xdd0+[\xc6\x8e^{\xe7!\xad\ \xef\xaa\xe7)\x91~\xb8]\x17\xed+]m\xc078\ N\xb1\xaf\xde\x14\xd2$\x9dgy\x92<8\xef\xa2\x07\ \x0e}\x8d\xe4\x80\x81\xc30\xf6I$xlF\xe9\xa6\ \x19\xa5\xd3k\xb9\xac\xaeRb\x11\xce\xb9\x1e\xec\x94\xc4\ \xaaG\x09\x8f$ \x07\xa5Lb\xfb\xe8,\xdeJ\x9f\ \x07\xbc\xa5(#\xbc\xbf\xe4\x22x\xe5\x91G\xa4\xa0;\ Rc\x0a\x14\xa3\x1b\xf3\xb1,\x80\xc6\xf8k\xc5g]\ \x9aI|\x14\xb2\xd0\xf1\xef\xb9\x0b\xcda\x9f`\xf4\xa4\ \xbe\xe5\x5c\x80\xd0L\xc2&\x9a@\x9d\xdcT@\x97\x80\ \x9b\xe3\xe3\x17\xd3\xda\x80\xe9!w\x0d\x8eq\xad\xcf&\ \xa3\x13\xef\x18\xdf\x0c\xcaFd\x9e\x19\xccEP\xc93\ \x9c\x15m;\xa3\xc6\x06W`\xb3+\xacv\xd4\xb0\xe1\ \xb1{l\xe6\x19a[hAt\xe4\xb8\xe5\x8f\xdb\x91\ \xd0 1\xa3 \x8eN\x1du\x22\x07Q\xb3\x01\xd7\x16\ \x8d*\x89\xf4\x8e\xaf\x03M\x7f\x08\x84\x8fU\xcc\xb5#\ \xb5 \xf8\xea\xa2\x0d\x1a\xf6\x970\xc6\xf9@\xa3r\x97\ }\xba\xe7d? \x13M\xd5\xbb\x8dQ#\xe5\x99\x8e\ =\x0a\x09\x8d<\x1d\xf0;\x12rDMNd6\x80\ \x0b\xf5j2*\xd5\x19\x02\x89\xacBE\xd3\x9e\xd0\xe6\ \xaeL\x88\x90\x89\xd2\x8a\xed\xac\xa3P\x8f\x13\xd8\x14[\ \xca\x22\xd0&\x81\x98\xc3]\x114Q\xfb\xf4\xb8+B\ \xd41&Y\xc9\x98\x1c\x1a\xfc\x9c\xdc\x17h\x06\xfa\xe1\ T-\x06\xf3\xd5H)\xe6\xe8\x08J\x19`\x9d\x97\xfa\ \xb5\x7f\x8b\xfa\xb5\x7f\x89\x8d|\x92\x0aH\xcf\xf3\x00\xa08\x1d\xed\xb9;\ \xbd8\x83\xa0HT\xc9\xe2\x94\x06X\xfe\xd8W\ \x85\x83\xd22\xaa\xff(\xe2\xea\x1e\xeb\xe4\xd9\xf8pt\ '\xca\xdf\xfe\xc0\xd4\x90\xd5\xcfT\xa8.\xb4~\xfa\x8a\ \x89\x1eI\xa7%'\xdd\xd8Q\xcb\x98L \x1f\x18_\ F3\x82\x06\x1e\xab\x04\xac:\x97\xb8\x8e\x08\xbb\xb8\xdc\ T\xa25\xc1)\xb1\x97\x17LD)\xdc\x0f>\xf4\x8f\ \x14\xef\xa5\x7fE\xf1\xde\xe7/\xbe\xe2\x0f\xfe\xcf\xe7/\ \xde\xffA\xff\xf9_:l\x198\ \x00\x00\x0b;\ \x00\ \x00Q\xa5x\x9c\xed\x5cmo\xdb8\x12\xfe\x9e_\xe1\ s\xbf\xb4\xd8H\xe2\x9b(\xcau\xb2\xe8m\xd1E\x0f\ \xc5\xddb\xdb\xe2>\x16\xb4D;\xda\xc8\x92W\x92\x13\ \xbb\xbf\xfe\x86\x92\xac\x17[\xf1K\xa2\xa6H.\xee.\ \x12\xce\x0c9\xe4\xc3\x99\xe1\x9019\xfeu5\x0f\x07\ 7*I\x838\xba\x18b\x13\x0d\x07*\xf2b?\x88\ f\x17\xc3\xaf_>\x18b8H3\x19\xf92\x8c#\ u1\x8c\xe2\xe1\xaf\x97g\xe3\x7f\x18\xc6\xe0\xb7D\xc9\ L\xf9\x83\xdb \xbb\x1a|\x8c\xaeSO.\xd4\xe0\xf5\ U\x96-F\x96u{{k\x06%\xd1\x8c\x93\x99\xf5\ f`\x18\x97gg\xe3\xf4fv6\x18@-?\xbb\ \xba\x18r6\xd4\xa5+\x15\xcc\xae\xb2\xaa\x18\xf8\x17C\ \x90\xc3\x149y9\x85\x0e-\xe0\xffQ\xd5SdR\ R\x88\x96:F\x8dA`\x93\x0c^#\x89\x907\xb5\ )u\xcf\x07\x04\x11b \xf8\x8f\xbdi\xb7\xe7\xc7^\ $\xe70.I\x16\xdf\xfe\x90\xcbT\x99\xa0\xb7\xdd\xb0\ Z-\xe2$3\xa6A\xa8\x0aY\xeb*\x9e++\x94\ \x8b\xd8z\xaf\xd2\xeb,^X\xbf'r\x1ax\xd2\xfa\ \xe8\x01J\xd6\x5c\xf9\x814\xa4\x97A\x7fR#^f\ a\x10\xa9\xd4\x5cD\xdd-\xaf\xfcEp1tQ'\ s\xddd\xb6&\xaa%\x9d|\xf3V\x17\xc3,Y\xaa\ \x1d\xfa\xba\x8b\x0e\x9dZ,\xb3oj\x95\xa9\xa8h\x12\ \xe6\xa81a9[cQ\xd1\xf2\xfa`-Q:\xda\ \x90.\x86wM\xb6\x06*]HO\xa5VG\xfd\x0d\ \xfcU\xfd\x0d\xc1L\xe3e\xe2\xa9)4\xa1\xccHe\ \xd6\xfb/\xef+\xa6\x81L?\xf3\x1b\xcd\xac\x00\xd6\xeb\ V\x1fni\xae\x1d\xbb\xaek\xe5\xdcZ\xbaK\x8e \ \x84\xac\xcd|\x97]\xbb\x99\x1d)\x99\xf8\xd3;u#\ b\x81\xc1\x81\x84\x91\xae\xa3L\xae\x8c(}\xd5\xa8\xea\ yUMO;Qp\xa3\xbcx>\x07c)\xc0k\ \x09\xfb\xb5\xf0b\x99\x84\xb9\x84\xefY*Ts\x15e\ \xa9\x05\xe6n\x0d/A~\xec\xabi\xaa\xeb\x15\xfe\xa3\ K\xe0@n\xce\x03\xae\xb6A\x99\x80\xa1\xfa\x01\xd4+\ \xe4\x1a\x06\xe1\xc5a\xa8\xf9\xacS\xd2\xffD_S\xb5#\xf5%\x91Q\x0a\ \x89\xe7\xfcb8\x97Y\x12\xac^S\xd3\xe6\x04\x12(\ e\xf0s\x03\x12n\x87 \xfb\x1c\x9b\xaeK0b\x9a\ Bl\xc4m\x91\xb3\x1919\xc6\xdc>'\x82\x9a\x8e\ p\xf1\x9bJ\x81\xce\xcb1wM\xc7\xc1N\x0d\xa4\xce\ \xca1B&A\xb8\xdc\xe3\xe8\xcf\xb4Sv\xda)\x9b\ \x00\xb1\x11\x0f\xeei\xb2{\xb1v\x9d=\xa6M0\xe9\ \x01\xebL\xff\x1a\xc2>\xf2\xb5\x81\xc99\xaaa[\xe1\ \x1c\x8a\xaa\xbc\xd6e\x0c\xdb>*\x90]K\x91-)\ (\xbb\x14\x90\x82l\xc6\xfd\x91\xe0\xe4\xf1q/8\xac\ Op0\xa5\xe7\x0e\x02\xdb\x83\xcf\x16F\xb6\x89\x84k\ \x13\xdcF\xca6\x89\x0b[\x11\xd6F\x8a\xb5\x80\xb2\x89\ icd;u\xd4\xf8\x01\x1e\x9bG\xc0}\x1eK\x9d\ \xde<\x16\x9f#\xfd\xcf\x84<\xd6!\x14~\xc5\xdc\x14\ \x0eE\xbc\xed\x8d\x84\x99\x82:\x98\xf0\x967Rn2\ \x1d?\xda\xde\xb8+;\xed\x94Mr\xcc9c\x0e\x8c\ \xe7\xa7\xc2\xe9\xbe\xc0\xd9\x1f\x9c\x0e\xb1_\xe0\xec\x13\xce\ \x17g\xef1\xdbqH\x7f\xce\xfe\x92\xed\xec\xcfv\x1c\ \x8a\x1f\x8e\xf5s\xcdv\x1cJ\xfb\x04\xe7\xf9f;\x0e\ {YOz\x85\xf3e=\xe9s=a/\xeb\xc9\xa3\ \xad'\xf6\xcbz\xb2\x07\x9c\x97\xf5\xe48\x8fu{\xb0\ \xa2\x17\x8f=\xcec\xdd^\x8d\xf2iy\xecapz\ Hl\x9e*8\x07\xc3\x99\xdbC\x9a\xf2\xf8\xe1\xec\xf1\ \x81\x12\x08\xf5jEL\x19\x10\xb9\x90\x89\x5cF\xf8\xd3\ \x82\xea\x90\xc3\x09\xd4C4j\xa5\xbe\x10\xf2\x11\xa3B\ \x87z\x06\xe0 \x1d\xf4\x1dl2N\xec'\xe3\x89\x87\ Q\xe3\xfd\x86\xa9\x0a)\xd7\xd1VF\x7f\x10R\x8f\x9f\ Y\x08\xf4s\xf6\x02\xd8\x81\x9d\x10&\xf8\x9c`\xc81\ \x5c\xe6>\x87\xccB\x7f\x1bh\x9fU\x92\x1e}\xd9\xc4\ \x88\x12N6.m3\x17;\x00+\xa7&&D\x80\ Ks\x93bL\xc5\x96\xa5:z\xafJ9m\xd9\xab\ `&\xe1\x94\x09\xb7m\xaf \xeb0\x9b\xb4\xa3\x22D\ D\x93\xb9\xcd?\xe5\xff\x8c\x05\xa4\x8f\xf3\xfa\x9d\x05\x84\ \xf0\x1f\xbf\x82\xfc\x04\x0f\xef\xe3D\xf3!\x1e\x8e\x05\xff\ \xbf\xf1p[\xd9vP\x86\x99\ \x898\x16O\xcfA\x0f,\xc6\x94\xd1\xfe\x96\x10X\x0b\ \x08,\x94\xf6\xd6b\xcc(\x87U\x1a\xbbO=\xdd\xd6\ W=\xf6 )l\xd4\x1e\x96h\x8d\x87\x91}\x8ed\ \xe0^\x0f{\xf2\x03\xc3\x03X\xecm\x80\xb6\x8e\x1c\x1f\ \x0a\x9b\xc1\x0f\x00g\xd0\xc7\x80\xee\xa1\xc6\xd1}\xfd\x07\ \x06\xf7x\x17\x80\x8c\xfao\xa2\x8fq\x05\xc8\xd8\xff\xed\ \xf0\xb1\xa5/V\xe5\xbfU\xb7\x08\xf5m7\xff&P\ \xb7gUk\x13Y\xd9\xedB\xceT\xde7\xb0\x93\xe2\ \x9b\xeb%c\x12'\xbeJ6,\x9e\x7fZ\xac\xb2\xfb\ \xfa\xb6#v9r\x04\xdb\xd8L5o\xba\xf1\x86\x18\ \xea\xe2\xa7W\xd2\x8fo/\x86d\x9b\xf9=\x8e\xc1\x03\ \xd869\xff376\xa9c\xefp@\x89\x0d\x91\x8d\ \xecr\x96I\x02\x08\x19\xa1\x5c+\x18M\xfec\x83p\ z\x15\xdf\xce\x12\x8dJu\x0f\xb1QSs\x8c\xc9$\ ^u\xb3\xfd\xd8[\xea\x8bn\xc6\xb2\xb0\xef\xc5\xaa\xb3\ \x81E\x1cD\x9a\xddhb\x1a\x84\xa1\x86\xdc\x93S\xaa\ \x9a]Y\x06\xbe\x02\xd1\xa9\x0c\xd3\xdd\xdeh\xe6nw\ rr\x16\x87\x0a\xa2\x85\x07\x06\x87\xabn\xa4Y\x12_\ \x03\xe5\x95C\xdc\xa97\xddn\xef6\x88\x00{\xa3\xbc\ \xed\x8a\x19\xdb\x99\xa1Rbs\x03\xb6c\x8eK\x89U\ \xed\x22\xdb\xacu\xcd\xd2#,\xac\xa7\x1bO\xcdo\x1a\ EC\xa6\xa8V\xce`W\xddR\xdb\x5c\xae\x82y\xf0\ ]\xf9\xb5\x13\xd5\xcdGr\xb1g6s_\xb8R\xde\ \xb5J&\xb1L|\xdd\xef\xd2\xd7*o\xca\xb1\xde\xf8\ f\x9ch\xc7\x93Y~E\xf5\x0aJ\xdfc(\x86\x95\ \xef.\xe24(\x98T\xc0\xc6\x8ds\xd6^\xfa\xf3\xc6\ \x08v\x1b\xd9\xdaC\x15\xb9&\xc2\x0c\x89\xc67y\x9a\ \x8a\xf8I\x8anT\x92\x05\xde=\xd4\x88\xbe\xd4h\xd8\ \x1c\x1b\x0b\xd6\xa1\x86 \xd4\x1fl\x84\x98\x90f\x92\xad\ \x0d\xc1F\x11\xe9k<\x84\x9a\x90\x159\x82w\xaa9\ \xcd\x0c\xf6\xa8\xc1\xb6\x03\xe6\xc6p\x87\xb51JO\x1b\ \xcd^\xd8\x0c\xc8$\x11\xe4\x98\xacc@\xa0\xa9G\xbb\ 6la\x22\xd8xt\x18\x1c(\xea\xcd\xae\xb1\x80e\ \x0a\x11\xd1\x8d\x5cov\x8d\x11L\x10!\x9d\x13\xa4\xa7\ \xad/5\xc45]\xd8\xe6v\xabq\xfb\x9b\x1d\xec\xea\ \xf0&\x9c\x8e\xd9\x81\xed\xe8i\xb3\xb3W\x11\x87\x8d4\ u\xb9\xd3\x11\x10l\xdc\xe7\x88\x18D8\xce)\xea\x1c\ Q\xf3n\xf1\x83\x0d[\x80\x0b!\x07s\xd1\xa1I?\ 1\xd1\x9f&\x8c\xc0\x87\x5c\x84\xdcNM=\x82g\xe8\ \xe3Bl3\xd2\xa1\x09\xf6\x9b\x0d\xf4ZyRS\xf6\ w(\x7fH\xe2\xf9\x1f\x89B\x8c\x7fVY\x16D\xb3\ :\xf3\xcf\xd6\xfa\x81\x87\xd5ZW\x1b6:8\x0b\xa2\ U3Y/H\xeb&I\xbf\xfc\x00m\xad\x9aIv\ I[7i\x9b\xd4\x97Ni\x9d\x15\x0f\x06j\xbe\xb8\ \x83\xd3L\x88\xed\xa6|\x83AE\x93Q\xaa\xad\x93\xdf\ \xc1\xe0&H\x83\x89\xde54\x12\x14\x90\x8d$\x10\xfd\ -\xaaNgJy\x8d\x83\xde\x0e\xa4q\x14n\x9e\xd4\ (@\x1e[\xbb;\x81\x9c>W\x99\xf4e&\xebm\ \xc1\x86\x82)\xde\xdc\x0b\x1d'\xfet\xf4\xe7\xfb\x0f\xd5\ \x0e\xc7\xf3F\xff\x8d\x93\xebzw\xa2\x05\xe4$^B\ vXm\xbb\xf4s\x0f\xdeHoaev\x19\xcc!\ \xad\xd2\xcfS\xfc\xb2\x9a\x87\xb0A\xa9\x18-a=\xa1\ u\xa3E\xb3\x89*^\xdc\xe8|b\xc2\xf7\xe6\x81\xae\ d}\xce \x95\xfe\xa8\x954vbE\xa3\xf9\xfb\x15\ qr\xd9hX\x0f\xe0\xddLEY\x93Xv!\xc8\ Bu\xf9I.\xe2\xc1o2\x94s\x19\xf9\x89\x0a\xf2\ \x1e\x17\xacf3\xd6n;\xb9\xe4\x8eJ\xad0\x0c<\ \x15\xa5\x87\xc7\xd7\xf5\xdeFY7\xb5&k#\x95\x16\ 1\x91\xb53\xcet9\xf9\x0b\xf6\xc7\xad\x0ej\x05\xff\ \x94\xb3\xadajj\x18\x5c\xe6o\xc0\x8c\xad\xb2\xd4)\ \xa2w\x9c\xfb%\x16\x90\x8cO\xa4w\xbd_\xea\x06|\ >\xde/2_\xa6\x81\xd7%R\xd0Z\xa3\xc8A\xde\ \x19o>\xd9\x10\x8d\x92`\xb2m\x1b@\xc3kN\x9c\xfb\xb6e-T\x02\ n\x90\x1e\xb4\xac[517\xc4\xbci\xcf\xb3\xfeT\ \x8b$\xf6\x97\xf9C@m\x93z`\xc3\xef\x83\xb4@\ \xa5\xab\xe1D\xfd\xbd\x0c\xa0\xc6\xbdZ\xfew\x0c\xa9\x8e\ \xea\xb7\xcdw\xd9\xdd\x9d}\x10\x0a*\x09n\xf2)\xd5\ \xd6\x90\xf6\xdb\xe9\xcfW2Q\xef\xc2\xe0\xba\x09Fn\ z\xa5\xa9m\xce\x88\x1a\xf1{lm\x02|^\x9a\xd5\ \x81\xbfu R-\xc9\xa1\x9c\xa8\xf0b\xf8I3\x07\ ;\xdcY\x12/\x17\xf3\xd8We\xf5\xea\xc4!?\xf3\ \xf2\x83T\x87\x87Q\x10\xe9Ui\xbb\xee\xd6{Pm\ \xce\xba\xc5\xc9\xba\x0eC\xf5\xf5\x877\x9b\x15j\xd6J\ 1\x1c\xd1x\x85$\x81 Q\xc3[vM\x9f\xbcT\ \x07q\xba\xd0x\xcc\xa08/\x19\xbd\x22\x8a2\xca\xcb\ bq>2\x22\x9b\xa2\x1e\x11tv\x94\xfe\xbd\x84I\ hR\xff\x8a\x83h\x04\xb8D\xfe\x86\x0a\xd6\xa3\x920\ \x80\x1f#\xb6\xa1m\xab3|\x99\xc2t&\x00W\x14\ G\xaaI-\x8e\x03G:C\xd4\x1fZo\xb3\xca?\ ?\xc3\x00!Gm\x92\xcb\xc3\x9c\xc6\x81|\xfd\x80Y\ \xe3\xef\xfc\x83\x01\xcc\x80\xdd(\xaeu\xda\xd6z\xe9\xe2\ n\xf4`\x19~\xbds\xaal\xa37w\xc1Y\x9dz\ \xde\x03\xce\x1c\xc1\x1f\x05\xe7\xdbN;\xddF\xb7q\x18\ ^\xe3\x8b\xba\xf0em|\x9dm|\xf1q\xf8>U\ \xeb<\x16N\xfb\x9e\xf6J{6X\x83>_\x935\ \xba\x82\xc21FK\xf7X\xed\xd8\x9a\x15+\x09\xfc\x18\ \xeb\x9c\xfe\xf2\xec\x7f_\x14e\xd7\ \x00\x00\x0a5\ \x00\ \x003Ix\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x04\x15\xa9\xbd_\x14;\x07\xc5\x09N\x11 \xc5\ )\x9a\x04m\x9f\x0c\x9a\x5c\xcal(R )[\xca\ \xaf\xef,E\x8a\xa4L\xd9\x92,\xbbi\xeb\xc4\x96v\ g\xaf\xdf\xcc\xcem\xf7\xf2\x97\xd5Y\x5c\ \xff5\xf1S\xf3k\x16\xa7A\x1c\x9a\xb4\xfc5K\x8b\ 2\xf7\xe3\xb4\xf4`\x05U?\x80(-\xa6\xcd\x94W\ \xa3};\xb4c\x16\x0b?0\xc5\xa4\xa9\xef\xf4of\ \xdf\xf6o*\xbc\x22[\xe6\x81\x89`\x08\xe3\xa5\xa6\x9c\ |\xfc\xfaqKt\x91\x17\x96ag\x98U\x02c\xf7\ \xd6pO\xab\xd9\xb1\xd6zRQ\xdb\xd6C\xed\x08B\ h\xd2\xdf\x1a\x94\x0el\x99\x87\xd1\xde\xb9\x11\x99\x00\xde\ \xd0\xc2-\xd6i\xe9\xaf\xdc\xb4x\xd3\xe9\x1a\x04\xdb\x9e\ \x81\x95\x9c\xf8\xce\x04\xd9|\x0epo\xc0\xeb5\x0e\xdb\ \xc6\x8be\x9eT-\xc2`b\x123\x07\x1e\x15\x13\xe0\ \xf6d\xf4\x01\xda_\x86&*l\xbf\x8d\xd0\xd8\x12H\ \x8d\xach@\x058\x8c\x9f\xff9\xf7\xc3\x18\xfam\xda\ mZ\xf6)TI\x5c\xf7\x81^E\x99-\x9a\xb6 \ 6\xe5:\x01\xae\xdbJ7\xc8\x92,\x9f\xbe!\x00M\ \x14\xbd\xaf\xaa2\xe0x\x5c\xae\xa7\xf8\xfd\xa8\xed\x93E\ Qa@\x9eQ\xa7\xae\x12j\xe8\x01s\xd1\x9139\ |\xb6(\x8a\x82(8`6<<\x1b\xdf\xcev9\ \xe9o\xfbh\x94\x04=\x02\xa5(\x02\x01B'\xa3$\ \xf8\x91(i\xe3\xab\x93Q\x12\xf2)\x94\xe6~\xfe\xdd\ \xe4[t\x1a\x0d\x04\xdd\x83\xefv\x9c?\xe5yvO\ >\x9b4\xdcN\x90\xe5\xb6?\xe8\x99e\x99m+s\ \x13\xfd\xb3\xbbg(\xff\xa3[\xde3V\xbd\xe5\x0c4\ ^\x94d\xf7\xd3\xbb\xb8\x88o\x12\xd3\xf2c\xe1\x97\xb7\ \xfd\x9d\xd9\x1a\xc6%\x1b=\x00.\x8a\x93\xc4\xcd\x97\x89\ \x99\x9a;\x93fa\x08\xb8\xe5\xd9w\xe3Vjy\x8a\ \x02%\x14>\xcb!\x12\xf8(\x94d\xa8p\ \x84O7\xf5\xf4\x8c(\x1d\xe36>\xd3!\xe2\xc7\xba\ \x8d\xd2Hs2J\xfcI\xb7q{P\x17\x10\x84-\ \xe0\xa4\x82K\xbfUPM\xacU\xaem\xc8\xd4oJ\ [\xe3\xd1\x06r\x8b\xeb\xd5\xd5\x88zB1\x22@\xc7\ OA1!$\x84\xd6\x04\xbe\xe3\xc1\x0e\xeb\xab\x91K\ \xa4\x07&\x83\x83\x19\x98:.\xe3\x1e\xd1R1\xb6\xb7\ \xcb\x0f\xe8\xc2\x04\x18 .%\xb7]0\x18\x18\xae\x99\ \x10\xc3]\xea\xf5\xba\xa0\xbdg\xb1\x0d3\xab\xd5\x80Y\ \xb4?\xb2\xdf\xc7*\xd9\x16\x09\x8a\xb4h\x11|\x01\xac\ \x5cL=F\x05\x11\xd5\x92\x98'\x89-<\x06\x16\x02\ \xa2\xe6`s\xed\xce\xd1>|\x18\x03&HI\x9f\x1e\ \xf5\x018\xdc\xba\x0b\x92Z\xf8\xb5'(\xa7\x5c\xab'\ 0b/\x8bQ%\x09\xe8)P0\x1c\xcb\xc7 !\ \xea\x91a\x06E\x84\x1d$!\x18\x0f\xed\x1e\x0c\xb5k\ \xa2\x08\x1a5\x1d7%8\x99\xdf!\x02.\xfd\xa4?\ b\xdb\x9e\xc2\x81ii\xc5u\xed\x16\x5c\x8d\xca|i\ \xb6\x04\xe8P\x9a<\xb5N\x1b8F\xf0\x0b;\xc3\xa8\ g\xee\x83l\xb1\xde ]\xc4\xd6\xf7\xb8\x06\xabn\xca\ \xe0\xd6\xb4H/\xf2lq]\x99\xf1\xae\x06\xa9*\xae\ \xd7\xd7\xb9I\xc0W\xf0\x93\xa2\x9d\xd6\xa6F\xaa\xb4R\ \x0bs\x0a\xbe\x80\x9f\x5c?T{%x<\x03\xd5\xd5\ \x9c\xcb4.\x8b\xdd\xc1\xc1\x11*c\x98\xfbz\xbb\xb9\ >=Z\x16\xe6\xba\xcc\x12\x03.H\xd0w#\xf6(\ \xfb\xd6\x0bI\x92\x0a|?\xb9\xf7\xd7E\x0f\xfa~W\ \xd0#\xf2\x18\x9bi\x7f\xe8\x89\xd6\x00\xe6\xd2Gz\x16\ \x0fgC\x87Z\x03\x09\x9e\xfbY\xc2c|\xd6\xc8h\ w\xb4\x13\xbdb\xaa5\xdf\x8df\xec\xc1\xe0c\x97\x83\ \x81 \x1e\xaf\x0a\xbc\xaa|9\x97\xb8\x8eW\x90\xa7\xaa\ x\xc5~\xc2\xa9|\xb5\xa0\x15\x7f9_\xe6\xa2?\xd6\ \xa9\xc1\x0a\xc2\xe8\xe7aK\x15\xaaT\xf9\x84*f\xc1\ \xb6\xf4z\xac9\xeb\xa9\xf9r\x9e|\x02\x82h\xe3\xa7\ aO\xc3\x1d\xfb\xf9\xaa\xbc!g\xe5\xcd\xeeh'\xf3\ \x86\xf0\xc3\x11\xff\xdf\xc9\xf5 \x8f\xd6R@\xed9\x15\ \xfaU\xb3=\xbf/\xcb\xcf\xe7K\xf7\xf4F;U\x0e\ 0\xdd9\xa3\xff\xd9|Oe\xdb<\xf5\x0a<\xf9\x18\ \xfb\xf3,\x0d\xcf\x93\x8d\x1f\x1a\xec\xe4\x93\xb9\x9b\x81\xb3\ Z\xd3\x95\x1e\x92\x18I\xa1\x9c\xfa\xab\xd2\xacr\xcd7\ %\xae\xb4\xb3\xf9\xc6\x04\xa9\xea;=^\xd5#q\xe1\ d\xbe\xca\xa1j0?\x93v\x1d\x1e\xeed&*\xfa\ \xdf\xcc\xc4\xd7\xe2a\xed\xa4\x9f\xd1\xaf<\xc7\x11\x04w\ _\xfd<\x8e\x8b\xdb0\xa6\xfa\xe2\x9e\xc9\xe3?<\x81\ \xa9\x8f\xbb\xd1\xb5?''0\xf5\xb17\xba\x0fg;\ 8d\x85\xd9NM\x86?\x15\xf9W\x8f,\xa6\xb7 \ \xa5W\xa37\x03)\x80\xfdpC\x1c\xdd*\x8e\x15\xae\ 2f\x123\xd5\x9a\x845T\x12\xf0\xa4\xb4\xa6\xb2\x1d\ iE\xaeF\x94y\x98\x0a\x82Z\xd9]\x93\xa1\xb6\xb3\ z\xaeo\x9b4\xc9\xb20\xf9\x17\xfb(\xe5\xf7\xf4[\ a^4\xd9\x86a\x816\xfdgs^\xc2ST\x22\ -\x9f\x9by\xa3\xd8\xd3\x0a\xdcK\x9b\xc7#\xc8cX\ (\xc2\x0f\xcfFJ\xe8P\xa5y\xb9\xc7\x01&\x85\x9f\ \xca\xc7\xb9\xf4\xd9\x89\xa1G\xc4\xa3\xba{x\xec4\x0a\ \xdd\x13\x0fB=\x0aq\x16S=\xf9\x00p\xa1J\x08\ \xd6\x97\x0f\xedQ\x81\x18\xe5=\xf9x\xd8\xf6q\xf9\xd8\ m\xf5\xb5UX\x95\xeeJ\xfc\xd2\xbcu\xc1~\xb9\x04\ \xf4\xd4\x8bB%\xf1\xa3Pu\x8f\x07\x80\x02\xfe,\xb7\ \xb9pDv\xb1\xc2J\xc8\xceX\x16+\x88J z\ %\x9a\xedb\xb5\xd3\xf6\x0cXq\xe9)\x81\x95\xc6\x87\ !6p]\x89\x85\x8b\xf6\xe9\xe8\xf6\xea\x0f+W<\ \xa1\x88\x07T\xac\xf2\x0d\xa1lG\xa1\xefW\xd2\xedt\ \x04\xb9\xe4\x09M\xc0\ \xed\xaf7Z\x95f-\x00=\xa9\xdf\xb27\xf1o\xec\ \xc5\xdcgKt\x1ePgy\xb6\x5c\xcc\xb3\xd0\xd4\xdd\ kz9d\xd7\xd0\x98\x92w\x0d\xb2\xb3\x9etH\xdc\ \x89)\xf2\xce5f/\x84\x9a\xbe\x01\x03\x1c\x05\xd1\xfb\ *\x9ej\xa3\x89\xc7\x82)\xe2!\xca\xb4D\x9ct\xf3\ \x94\xb0\xf6M\x9ar8y\xd9\xd4\x02\xc6&O\xe0t\ \x94S\xd6\xd4\x85>(\xa4<\xf7\xd7\xd34KMG\ 1\xdb\x8d\xd8\xa53\xfb\xc2\xa3\xad\xae\x0f6\xa3\x1e\xa1\ \x04#\xdd!5'\x9a1Or\x89e\xd7\x0a\x0a <\ metadata\x0a id\ =\x22metadata16\x22>\x0a \ \x0a \ \x0a image/svg+\ xml\x0a\ \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a\x0a\ \x00\x00d(\ \x00\ \x01\x8b\x1ex\x9c\xed\xbdYs\x1cI\x92&\xf8^\xbf\ \xc2\x87\xf50U\xb2\x1eN\xbb\x0fVf\xcd\xe2\xe2l\ ?\xb4\xcc\xecv\xf7\xac\xc8\x8e\xb4\xac \x010\x13[\ \xc1\x05\x90W\x8d\xec\x7f_\xfdT\xd5<,<\x82\ \x01\xa6\xa3\x8a\x9d-\x93dU2<\xc2\xc3\xc2\xdcL\ o\xfdT\xed\xab\xff\xf4\xd3\xfb\xbb\xe1\x87\x9b\x87\xc7\xdb\ \xfb\x0f_\xbf\xb2\x93y5\xdc|\xb8\xba\xbf\xbe\xfd\xf0\ \xed\xd7\xaf\xfe\xe5\x9f\xdfn\xca\xab\xe1\xf1\xe9\xf2\xc3\xf5\ \xe5\xdd\xfd\x87\x9b\xaf_}\xb8\x7f\xf5\x9f\xfe\xfc\xbb\xaf\ \xfe\xc3f3\x9c=\xdc\x5c>\xdd\x5c\x0f?\xde>}\ 7\xfc\xc3\x87\xbf<^]~\xbc\x19\xfe\xf0\xdd\xd3\xd3\ \xc77\xaf_\xff\xf8\xe3\x8f\xd3\xad\xbe9\xdd?|\xfb\ \xfa\x8f\xc3f\xf3\xe7\xdf\xfd\xee\xab\xc7\x1f\xbe\xfd\xdd0\ \xd0\xb7\xae\x9f\xbe\xfb\xfaU\x0a\xef\xdf\xbf\xc2\xf5w7\ \xb7\xdf~\xf7\xd4\xbd\xf1\xc3\xed\xcd\x8f\xa7\xf7?}\xfd\ \xca\x0cf\xc89L&d\x97\xb7\xaf\xf8\xa6\xdb\xeb\xaf\ _\xd1\x80N\xbe\xb1}\x0c+\x9f\xea\xef\xbf\xe9?\x99\ \xdc\xf0\x07si\xcc\xd5\xbb\xe8}\x1d\x07g\x9c\xdb\x18\ \xfa_\xf8#\x7f\xe9\x91\x1e\xfe#\xfd\xff\xcd\xf5\xfd\xd5\ \x87\xcb\xf7\xf4\xccg\xe7\xff\xf7\xd9\xfd\x87\xc7\xa7\x87\xcb\ \xdb\x0fO\xff\x8d\xa6u\xf30\xd1\x8f\xf2\xdd\xb4|\x1f\ \x1e\xdf\xb4\x1f\xfa\xfa\xd5\xa7\x9e\x1e#=~\xbc\xbc\xba\ y|\xdd\xde\xef\xbe\xdf~s\xfe~{cz\xbc\xff\ \xfe\xe1\xea\xe6\x1d\x0dq3}\xb8yz}\xfe\xcf\xe7\ \xf3\x87\x1b3]?]o\x87\xd9\xf9\xf5\x1f=\xff\xae\ 3\xc6\xbc\xde\x9d,]}\xe6\x9d\x0f\xd7\xef\x0e\xddi\ k\xad\xaf\x8d{M\xebFwl\x1e\x7f\xfe\xf0t\xf9\ \xd3\xe6\xc3\xe3\xef\xbb\xaf^]\xcd\xdf\xbc\x02\x9d\xdc\xfe\ psu\xff\xfe=-\xa3,\xc7\xce\xcd\xd7\xdb\x9b?\ ~\xffp\xc7w\x5c_\xbd\xbe\xb9\xbby\x7f\xf3\xe1\xe9\ \xf15\xed\xda\xebW\x7f\xa6\xfb\xbf\xba\xbey\xf7\x88\xef\ \xc9\xce\xe3*\xf0\x07\xf4\xd1\xdd\xed\x87\x9b\xcb\x87\xff\xfc\ py}K_\x92\x9b\xe4\xb6\xddOb\x0cV\xbfC\ \xdfz|\xba\xff\xd8\xee\x1d\x86\xfbw\xef\x1eo\x88\x08\ \xcd\xab\xed{\x8fO?\xdf\xd1\xc6\xe2\xc6\xcd\xd5\xfd\xdd\ \xfd\xc3\x9b\xdf\xdf\xf8\xeb\x9b\xebo\xba{\x98\x0c\xe9\x06\ \x1a\xdb\xbf\x1a^?3\xba=>z\xe5?\x87G\x8f\ \xf3\xe8_\xbd\xde}\xac_\xb8\x0a6\x95\xe2_\xb8\x0c\ \xf6\x12\x7f\x0fL\x14\x83\xc7\xbf\xdf:`\xf8\xfc\xdcB\ \xe0\xea\xf2n\xb9\x10\x0f\xf4\xab\xaeL~g\xe4o\xf5\ \xa6\x7f~\xb8\xfc\xf0H\xac\xf6\xfe\xebW\xef/\x9f\x1e\ n\x7f\xfa\x83\x99|2%\x8ef\x0a%\xa64\x12\xc7\ \xd9b\x03\xde\xf0\xb1\xd88\xba\xec\xa6\x9aF\xeb\xd3T\ \xea\x1f\xe7\x11\xaf~\xc2\xef\xa4)\xa6\xed[?\x7f\xfd\ \xcay\x1a\xc8\x1d\xfa\xe9\x7f\xf9p\xfbD\xfc\xfb\xfd\xe3\ \xcd\xc3?AJ\xfc\x97\x0f\xff\xf2x\xf3\xaa\xdf\xbe\xdd\ \xe7I!\xd7_\xb6{m]\xbf~\xf5\xfbw\xef\xde\ \x1d\xa2\xae\x5c\xdd/\xdd\xb3n\xd0\xab\x1b\xfa{\x90j\ s\x0d\xddf\xed>\xc7Q\xaa\xfd\xd9\xd1\x92e?e\ \xd3/\xd9Ox\xb7\xc6\xc9\x92\xbc\xb2\x9f\xb5\x87\xc1T\ [G\x83\xbfSv\x81\xb6\xcf\xb9H\xaf\xc6\xea'\x97\ \xcav\xdb~\xb6\x87~\xf0\xf3\xf6\xe8'\xfa\xae\x8f\x13\ ~\xaa\xfb\xee>\xe3\xa5\x90\xd2\xea\x9d\xbb\xf2W\xfe\x9b\ \xeb\x03\x8bL\xf4`\x9e\xdf\xbc\xc9\xd9d\xf3'\xc9\xe2\ \x1b\xfa{\x88\x9di\xf0\xcf\xa0\x8c)xg\xd2\xa7\x06\ \xbf\xfe\x86\xfe\xe6\xc3\x83\xffbQ\xd1\x8d\xfbM\xa1\xbf\ \xe6\xf0\xb8\xcf\xca\x88O\x93\x9dOi\xaa\xa5'0\x90\ \x9d\xb7f\x8a\x9fGr\xd9\xd8\xa2$'\xafY\x1c\xd4\ \xd1\xd1\x10>\xec\x92\x9c\x0fv\x0a\xf1\x97\x93\xdc\xe3G\ \xd2\xac\xd7\xffx\xf3\xf4\xdd=\x04\xc4\xcd\xbb\xbb\x9b\xab\ \xa7\x1d\x82\xb44r\xb5G\xa8\xd1\x1b\xefVS\xe3a\ \xe9\xec\x8dK\x9fA-\xf5\x17J'\x1f?c\xd4O\ \x92\xc9\xe1Ai\xaa\xe59\x1aa\xc5\xd4\xbe\xfa\xf43\ l\xbc\xa7\x9b\x9f\x9e^_=>\xee\xac+\xdfW\x9c\ !{\xe4\xab\xff\xf0\xdf\xcf\xceO\xfe\xf9\xe4\xbf\xf3\xe7\ \xff\xeb\xbb\xfb\x0fO\x9bw\xb4{\xc3\xff\x18\xf4\xf5\xfb\ \xdb\xbb\x9f\xdf\xbc:y I8\x9c\xde]^\xfd\xe5\ \xd5\x9f\x1e\x1f\xae\xde\x90\xed\xf3\x87W\xbf\x7fK\xf7\xfc\ \xc3\xb9y\xf5\xc7\x01Du\xf9\xf4\x072\xca\xfe\xf8\xff\ \xf1X\x13\x19\xa1a\xf8\x1f\xf4\xdf\xfb\xbf\xdc\xbc\xf9}\ v\xf1$\xba?\xc9\xe5\x86-\xea7\xc1M\xa1:\xdb\ \xde\xc43\x91\xb1\xf9\xe6\xe1\xfe\xfb\x0f\xd7\xfd\x9b\xff\xcf\ \xfd\xed\x07yw;t\xdc\x0e}vq\xf6\xf6\xdc\xec\ \x0e]\x02\xf1Dq\xdb\xfb\xfd\xf1\xa9T\x0b-\xe9\x9f\ \xfbU\xf7\x8bG\xf9\xec\x072\xc7\x87\xb6\xd9N%\xb9\ \xe7F\xb1\xbfx\x94\xcf\x9b\xe0\xbb\xdb;zv\xfa\xef\ \xdd\x9b\x0f\xe4\x5c\xfd\x09\xaf6\x0f\xdf\xdf\xdd\xe0\xf2\xaf\ 7\x0f\xf7\xdb\xfb\xaa\xde\xf7\xfb\xb7\x17\xf8\xbb\xfd \xb4\ \x0fb\x8a9\x96cc\xe4\xf9\xd6\x8b\xf86\xd9c\xb7\ \xa6vkN\xb9\xe4\x93c\xb7\x96v\xeb\xe9\xc5\xe9\xdb\ \xb3\xa3\xa3Z\xd3\xee\xbd8\xf7\xce\xe7c\xf7\x9a\xdd\x07\ >vk\xd4[\xc1=\xbf\xbf\xbd6\x7f<:\x87\xdd\ \x9b\xed\xd1\x9b\xfd\xee\xcd\xee\xc8\xcd\x1f\x9e0cp\xf7\ \x8f\xec\xc8\xbe\xa9\xc6\xfc\x89\xaf\x1fo\xffz\xf3&\xe5\ :U\x93\xfe\xd4\xf3\xff\x7f\xec\xf8\xff?\xf28\xff\xfa\ \xaf\x7f\xfe\xea5\x0b\x925\xc2\xc7-%\x0f\xb3\xa8\xef\ \x98\xda{w\xe6Nv\xa9\xd7w\x8c\x18J'\x00\xea\ Y8;]\xdc\xbb\x8a\x09]\xc8\xdd\xb0\xe5\xcc\x9f-\ \xa70\x91\xdb\xe4\xd7\x89,\x1f\xfc\xe2\xf9\x96s&C\ \xaf\xf8\xd8\x7f#<\xf7\x0d\xf2^\x0e\x88\xadon~\ \xb8\xb9\xeb\xc6\xf1\xe5\xf88a2\xd1\xda\xd2/D\xea\ \x16\x22\x9f\xb9\xb3\xba\xf7\x8djb\x5c\xb7\x10>?7\ \x1d\x1f\x8d\xaf\xfdB,I\xe3\xc07hc\xfao\x98\ \xe7\xbe\x91\xacq\xe1\xb9\xa5s\xfd/\xd3B\xd8\xb3\xb2\ 7\x8e\xcfe%A\xb8\xe7\xe6\x98\xab\xf5\x9f1\xc7\x8e\ L\xce\xd2\x999K\xbb\xe3\x90\x07R\xa2\x09+7+\ \x1d\x9fd\x9c\xbc#\xb2\xed\x1f\xcb~\xd67\x9e\xff\xe5\ \xban\x9c\xc5\xf2\xd8\xd4\xabmR=9/\xc7\x09\xd1\ \xe5\xb4ry\xc2qA\xf4\x92\xc1]/1\xce\x22)\ \xad\xb8\x1c\xa1\xb9\xef-K\xc9\xc6\xac\ \x14\xe1\xde\x1e\xd7\x93y29\xacd\xd0\x98v&~\ \xb2\x9cx\x9e,6t\xe5\x92wqq\xc5\x14\xbb\x1c\ \x9c\xa8<\xad4\x9f]:\xae\xf9i\xf0\x1c\xe3:S\ \xce\xf6Nl\xf1\x87f\xbe\xde\x08u}\xb4\xe2\xf4\xe2\ \xb4\x9c.x\xc8\x9a\xc9\xda\xb0\x96Z\xe2\xce\xcc\xedr\ \xe64\xb8\xcbq\xed\x9a\xc7\xe3\xaa\x1fq\x7f[\xd6\xae\ y\xa7@K zY\x86 \xcdD\xfb\xb9\xd2N\xec\ \x9d\xad\xd3\xf3\xd3|z\xbe78\xd9\xa0+\xd5P\xef\ l!\xaaR\xf6\x97\xa5\x04\xb7\xd26w\xe1\xb8\xea\xc7\ \xe0kC\xc7\xb6wYJ\xa2U_0\x91\xb5\xd3z\ \xd1\xe2\x17K~\xb67\xb6[\xaf\xe4\xfcq\xedL\x83\ \xfb\xba\xd2y\xb6\xbdSQ\xf2\xc1U\x09f\xa5Ad\ {\xf3\xb9 \x08\x17\xf7\x06O\xd5\xadtA{G\xee\ \xf4\xec4\x9d\x9e\xee\x0d\xbeZ(z\xe7\x8e\xabg\x1a\ \xbc\xfa\x95\xd6so\xe0\xd2\xaa\xa4\x92\xf6\xc7\xcei\xe5\ \x92\xf7\xa6\x5c\xa94\xf8\x22^a\xdd\xe4b]\xa7\xfb\ ]\xef\xc7\x9d\x9e\x9e\xc6\xd3\x93\xbd\xc1\xe1\x99\xaf\x5cr\ {\x5c=\xd3\xe0\xa1\x98\x95\xcc\xdf\x9b[\xe5\x84\x08}\ \x7fYV\xdbr\xb67,\xca)mi\xd9\x1b\x9c<\ \xf3\xb5k\xde\xf1\xd0\xe9\xc9i8\xad\xfb\x83\xaf\x0e[\ :\xf3\x8cz\xf6\x08\x12\xad\xa5\xf3^=\x9f\x111.\ g\xeeI\xf7\xafu\x9e{%W\xceiK\x97\xa4\xe8\ I(\xae\xe4P\xd7;rD\x88~o\xcd\xfdz\x89\ \xebm}F=\xfb\xf5\xba\xdf\xf6\x8a\xe8\x13\xcb\x92r\ ^\xb9\xe6\xa9w\x9e\x0f\x84\x88-2-\xbb\xb2\xe5\xf0\ \xf2\x96\x9d\xe5u\xa7K~\xf1S\x0da\xa5i\xd5\xab\ \x85rA\xec\xb8T\x0b4x2k\xf7\xae<\xa3\xe7\ \xc3\xb4\xcc\x97\xfc\x82\x99\xf7\xaa\xf8-q\xcc\xfe\xe0.\ \x84\x95Fa\xef\xb6\xd1\x9a\xd8\xd3\xe5\xde\x85\xf50\x03\ \xdb\xcb\xa8j\x0e\xce|}\xee\xc0\xe6g\xf4|\x98\xd2\ \xeaHV\xcf\xe9\xd5\x12\xc7,\x991L\xc5\xae]\xf2\ \xde\xdf\xcc\xa7\xe6ti\xfd\xc4iu\xac\xc9\xf6Nk\x83\ \x13\xaew\xdaN\xd3\xc9\xdb\xd3\xa55\x1b9\x00\xbfr\ \xe2\xa9\x9fx5ui\x13\xc6\xf5~\x95\xb7\xf1\x195\ \x0f\x80\xa3Y\x19\x0f\xea\x97\xa5\x86j\x0f\xcc|\xb5\xc0\ u\xbd\xd3v\x1a\x0f\xacy\x9aH-\xad\x94\xe6\xfd\xe0\ 5\x92\xaf\xb0\xf4}\xd2\xb4\xccn\xfe\x825\x0f\xcf\xa8\ y\x1a<\xf9\x95y\x89\xdek\xab\xf0r\x96\xbel\x9a\ \x80&X\xb9\xe6\xbd\xbf\x19N.N\x97^x\x9a\xd2\ z\x06\xed4h\xcdD\xe9\xfb\x83\xaf\xce\xedy\xeb\x9f\ \xd1\xfdi*k]\x08\xdb\xbb\x10dn\x86\xba$E\ $\x9aV\xba\xe1\xae_\x96S\x7fr~\xba\x07\x1b{\ \x09)\xbag\xd4s\x9e\xfc\xda\xb0\x8a\xed\xad\xfcZ\x89\ \x8d\xf6\x97e}\xc8\xb67g\xeb\x09Q\xfaR\xcbe\ R\xcfq\xed\x9a\xdb\x9d5?;]\xb2\x7fF\xe4s\ \xadaa\x9f\xd1\xcf\x99\x81C+\x97\xa5\xd7\xcf\xa7\xc4\ FK'?Ou-F\xca\xf6&\x11\x0f\xbe\xa4\x96\ \x02d\xf8:jq;>\xa1;9=]*\x8b2\ \xad\x86Sxk\x9eQ\xd0e\x222_K\x8a\xbd\x82\ >\xab\x9d+2\x0f\xbe\x92\x83z\xed\x5c\xcfQl\xb2\ 7r.~\xe5\x82\xef8\x84\xf6\xe4\xf4di\x10\x15\ \xe4\xdeWFUL}F;\x17r\x87\xc2J\x8b\xa8\ W\xa0\xf5\x82\xb8\x7f\xb9,u2i%\xc4\xc4\xf6\x9a\ \xa2\xbe\xa5\xc1\x97Fh\x05\x00ne\xc6s\xc7\x913\ '''K\xf3\xb9N\xe4S\xac\x14\xe6\xa6<\xa3\x9d\ \xeb\x14M^\xbb,\x9d\xa681\xc4\xfdKw\xa8N\ i\xb5\xb9\xd5\x8b\xc4\x13K<\xb4t\xe4\xeaT\xd7.\ \x8b\xeb\xa5\xd6\xc9[\xda\xcf\xa5\xafU\xd7\x93\xa27\xf9\ \xb8vv\x86\xabLW.K'\xb5N\x1c\x09\x80\xf3\ \xbd\xc1\xddZp\x8c\xed9\x94\x06\xbf80x(+\ \x01I\xae\x17\x89\xb4\xe6e\xb9\xe64\xf8j+\xd4\x9b\ t\x5c;c\xf0\xd5\xdeV\xcfD'\x9e\x04\xc0\xc5\xde\ \xe0y5\xda\xa9\xa7\x96\x93@\x83/D\xae\xb3\xc0\xfa\ \xae\xa3\x16\xd7+\x8b\x93\x8b\x93|rv`\xf0\x95\x01\ >o\xe2q\xed\xec\xd6g\xb1l\xbf\x9f'\xf1\xc4\x9c\ \xec\x8f\xed\xfdJ\x06u\xbd\xae89\xa7U9\xdd\x1b\ <\x99\xb42\x02\xdf\xaf\xcaI:\xb1'KJ\xa4\xc1\ \xbb\xf4\xf0/\x5c\xf2p\x5c?c\xf0\xd5\xb8\x81~p\ Z\x14w`\xe6\xd5\xd8\xb5k\xde\xa9\xd0\x933Z\x98\ \x85\x0aunZ\x0f21~g\xe6\xfed)q\x1d\ \x00\xd5+\x97\xdc\x1fW\xcf4\xf6\xea|\xaa5\xbd\x06\ -'\xe1\xc4\xef\x0d\xbe\x1a\xee\xe4v\xd4\xf3)qQ\ \xdd\x1b<\xaf\x85\xc6\xf9\x9d\x99\x1f\xd0\xa0\x18|-\x8e\ \xd2\xf4\xaa\xbf\xd2\xc4\xc3\xfe\xd8k\x0ds\xd3\xeb\xcf\x13\ \x1a{\xe1i9?\x99\xd5\x18\xcd\x1d\x9b\xe5\x84\xb6\xb3\ \xec\x0d\xbe\xd6\xa3\xf0;\x8brH}\xd2\xd8u%6\ \xa6\xd6\x1dJI\x07\x16e5\xc0\xa4\x96\x1d\xc6\xcf'\ io\xec\xb46O\xe1\xec\xeen\xfa\x93\xbc7x\xae\ u\xed\x8a\x9bg\x94\xa7\x9f\x0a\x19{\xebV%\xef\xa8\ \xa0r`\xe2\xab\x1d\xfe\x9av\xc6\xae{T\x18&\xbb\ VI\xb8\x1d\x13\xb1\x1eX\xf10\x91^^)\xb1v\ \xe8\xf0\x90b\xa6\xc1\xd7\xba\x9fu\xd7\x14:\xd9\x93\x86\ \x01\x85\x1f+W<\xec\xf0\xe6\xe9\x81\xb1Q\x9a\xb1r\ \xc5\xcb\x8e\x8ep{\x0c\x14\xa6\xb2:\xbd\xbc\xe0\xce}\ \xb5\x1cH\xe7\xafL\x0c\xd5]\xcdy\xb67v\x5c\x9f\ \xd1\xafn\xc7\x10:\xdb\xa3\x94\xb8\x1e\xfe\xe1vL\xf2\ L&\xdcR\x1c\xc6)\x04\xb32G\xb1\xc3\xf9\x87\xb4\ r|\x01\x1d\xf6aDG\x1c\xb4\x94X/\xc89\xd5\ \xddX\xdc\xc5\x9e\xfe\x89\xebCCn\xc7\xdcOd\xee\ /5~\xe4\xf2\xf0\x95+\x9e\x9e\xd1\xcaR\xdb\xb4j\ \xf0\xd2\xc7\xb4<\xf1\xfe\xd2:L\xeb\xcd\xda\xb2\x13\xbb\ !\x0e\xda\x1f\xfb\x05d\x18\x9f\xd1\x9c(>ZY\xd8\ \xe4v|\xa0X\xdf\xee\x99\xb5R\xd9\xb4nU\xfa\xe8\ J$\xde_\xba@\x89\x1b\xb1\xac\x1b\xbb\x8f\x22\xa4S\ \xbb\x17E\xc8\x93Y\x1b-s;J\xe2\x90\xe6|A\ \xe9\x91\xdb\xf1\xddB\xbd\xd8\xf3\x80h\xf0\xe2\xd6\xc9\xda\ \xd2\xfb\xf9\xf9\xd4\xed\xc5\xb3\xf2z\xcb\xb3\xf4\x0em9\ \xf5\x07\xc6\x8e\xab\x17\xa5W@\x075'W\x1e\xadU\ \xcb~\xb1\xe2\xfb\xb4\x92\x5c]G+\xc5\xef\xacJX\ Fmi\xec\xd5\xe0\xe3\xd2k\xceJ\x1c\xb4\x14\xb5e\ Z]\x8d\xe5z\xb5|PsJ\xdd\xd1\xca\x15\xef\x07\ \xf7\xf5|/&D\x83\xaf\x05\x94\x95^s\x9e\x10\xef\ \xefO|u2\xc8\xf5j\xf9\xa0v+\xeb\xb1\xc7\xa5\ W\xcb\xa7\xc4\x9eK\x1a/\xd3\xea\x9a&\xb7\xe3s\xba\ z\xb6\x17\x9b,\xebem\xee5\xe7\x19Q\xf9R\x1c\ \x96\xf5Z\xd9\xf5\xc6\xcaA\x05$\xa5A+W\xa5\x1f\ \xdc\xd6\xd3\xbdU\xa1\xc1\xf3J\x0e\xca\xbb\xa8\xbe\xba\xb7\ *u}\x1dI\xee5\xe7\x05\x8d\xbd\xb4\x83\xea\x0b*\ =zC\xe8\xa0\x02\xaa\xeb\xd3\xe3v\xc7/4\xf5d\ /\x00_\xa7\xb26>\x91wK\xb1N\x96\xc8\x1b\x8c\ \xbd\x16\xee\x90\xe3\xce\xd8\xa7K\xf0\x9a7\xeb\xeb\x7fU\xfa\x02\x12G\x9c\xbf\xbf\ \x9b\xab\x8b<\xf2n#\x80\xb7K\xd4\xbe\xb7/\xa8\xf1\ \xe8\xcd\xf1C\xea\xc7\xbf\xa4\xda\xa8\xf7\x0ay\xc5\x97t\ h\xa7\xb0\x16\x9c\x9d\xfb\x8awOT\xbe?\xf1\xd5%\ \x1e\xa9\xaf\xec\x0e\x07\xc7^_\xe1\xd1\x9b\xfa\x87T\x9b\ \x7fA\xadQ\xdd\x05\xae\xe4%\x88\xc2\xbb\xf5\xceU\xda\ )\xbe>\xb3\xcb\xba4\x1a{u}G\xea\xab\x8c\xd3\ \x99;0\xf6\xfa\xf2\x8e\xde\xff9\xa4\xd9h\xf0\xb0\xba\ \x00\xab\xf78\x89{\xd2\x12\x13C\x83\xc7\x18\xd7\x89\xf1\ \xb4\xdbo\xca/\xeb#i\xec\xd5\xd5\x1d\xa9\xafw-\ D\xe4~o\xec\xd5u\x13\xae\xf8gt\xdbK\xea\x8c\ z\x8f\x93\xb8'.a_4\xf8\xea\xa2\x8c\xb4\xdb\xb8\ (.+\xafi\xec\xd55\x19i\xb7\xfbOZV\xd2\ \xd3\xd8\xeb\x9b\x22\xf5\x1e\xe7A\xdd\xf6\x92*\xa3\xde\xe3\ $\xf6\x09K\xfc!\x0d\x9eB]7\xf3\xbe\x0f\xd5\xd9\ \x09Qy\xda\x1b{-\xb2\xb9\xef\xe5tvz`\xe8\ \xb0\xbef\xc2\xf5\xce\xecA\xd5\x86\xc1\xcbZ\xa1\xd2\x0f\ ^\xab\xdf[\xf0\xb0\x1e\x80\xd4\xf7\x89:;#\xd6\xdf\ \x1f{u=F\xef(\x1fT?/\xa8\xdd\xe9\xbbD\ \x9d\x9d\x13\x03-\xd9\x9e\xc6Nk\xbb\xad\xf4\xbe,\xed\ \xa5_\xc2wi\xf0\xb5\x11\xb2\xbeG\xd4\xd9\x05\x91\xf8\ RA\x84\xa9\x86\xb2r\xc1{\x07\xff\xa0\xf6yA\xe5\ N\xdf\x22\x8a&~\xba\xd7\xf61\x92\x7f\xefV\xda\xe2\ \xbd+K\x0b\xee\x960r\x0c\xbe\xb6\xe8\xa0o\x11u\ \xf6\x96h|\xc9\x9aq\x8av-D=\x97g\xb4\xcf\ \x0b\x0aw\xfa\x0eQ\xe7\x86\x88|)\xc4\xe3\xfaL\xbb\ \xed}Y\xe2L{`\xc5W\xfb\xe0}\x83\xa8sK\ \xc4\xb2\xd4\xf7i}d\xdc\xf5!\x95\x83\xda'\xadw\ \x7f\xfa\xfeP\xe7\x8e&\xbe4\x0d\xd3z'\xdc\xf6\xce\ ,\xb1\xa6Y\xd6a`\xf0\xb2v\xe2\x9d\xda<\xf7D\ \xe5\xfb\x13_\xad\x92]\x1f\xae9\xa8~^P\xb4\xd3\ \xf7\x87:\xf7D\xe5K\xef'\xbd\xa0P\xa2wfk\ ,o\x97\xa5L<\xf8J\xf5\xd3i\x88\xf3pn\x97\ \xcd\xb5}~A\x0dF\x1f\xc3:\xa8~^R\x0eT\ v\xaa\x01iQ\x96^D^\x0f8\xee;O\x9d\xc7\ sw\xbe\xf4\xdb\xf2\xca\x12\x8c\xbe3\xd4y\x22BY\ \xeed~A\x05F\x1f\x1e;\xa8|P\x09dWb\ \xea{o\xb3\xfar\xb1,a\xf4eZ\xdd\xcd\xb2\xef\ :u\x9e\x89\x0c\x97\xabR\xd6\x17`\xf4}\xa1\xce\x0b\ \x8d\xbd\x94V\xe5\x05\xf5\x17}\xd0\xf0\xa0\xf2yI\x1d\ \xd0\x8e\xb7\xe9\xca\xf9\xb2\xdc\xd5\xa3\xe7\xdc\xca\xf4L\xdf\ s\xea\xbc\x12\x89\xefO|u\xf9E\xdf\x15\x8a\xc6N\ \xe7K\xae//\xa8\xbe\xe8\x03\x92\x07\x95\xcfK\x0a\x81\ v\xbcMZ\xf1eM\xb7\xaf\xabc\xee}\xc3\xa9\xf3\ \x13\x22\xc4\xa5\xee\xa9\xeb]\x9f\xbe%\xd4\xf9)-\xf9\ \xd2v\xab/(\xbd\xe8\xa3\xb4\x07u\x0f\xaa\x80\xd6\x16\ \xea\xecx\x9b\xb6\x9c-\xcb\xffi\xf0\x94\xfd:\xfe\xe9\ [B\x9d\x9f\xd1\xaa,}\x88\xba\xbe\xf2\xc2\xf5Q\xda\ C\xca'\xa0Nge\x94\xb6o7u~N\x1bz\ \xb2?\xf6\xda\xaa\x0e[v{\x5c\x9c.W\x9c\x06w\ k\xed\xfc\xbe#\xd4\xf9\x05\xad\xf9\xe9\xde\xd8\xeb\x0b/\ \xfa\xd8\xf5!\xfd\x13^P\xa5\xd3w\x9b:\x7fK\x13\ ?\xdb\x1b{u\xdd\x85\xed}\xd9\xf2\xb6\x9c,{s\ \x84\x17T\x00\xf5\xfd\xa0.\x0c\x11\xcb\xfe\xd8\xeb\xcb.\ R9\xae\x7f\xc2\xfa\x1a\x9d\xbe\xd5\xd4\x85%ZYR\ \xa1]]ta{O\xb6\x5c\x90#\xb2\xdcL\xbb:\ \xb9\xd9\xb7\x82\xa2i\xbf=\x7f\xbb7\xf4\xfa\x92\x8b>\ WpH\xf9\x04\xbb>\x10\xd4\xb7\x99\xbap\x17\xe6b\ \x7f+WWE\xf4~,\xcd\xba.;\x15\x05>\x86\ fmk\xf9n\xde\xfe\xc2^,\x99\xde\xbd\xa0\xe2\xa2\ OC\x1cR>\xe1\x05\xd59}\xfb\xa6\x8b@K\xbe\ \x7f\x1c\xd2\xfa\xb6\x9b\xbd\x1fK\xd3.{+\xee\xd6\xa7\ \xc1\xfb\xeeM\x17\x91\xd6\xdc\xef\x8d\xbd\xbe\xe4\xa2O\xce\ \x1cT>\xeb\x0b\x7f\xfa\xdeM\x17\x89\x96|\x7f\xde\xeb\ \xbb \xe4\xdd\x16py\xd9\x8e\x8c\x06\xaf1\xad\xc5\xbd\ u\x13\xcf\xb4\xe4\x0bK<\xf8\xc9\xae5\x81\x5c\x9f\xf7\ 9\xa8{\xfc\x0b\xdam\x97\x9d\x89\xa7\x8b\xb47vX\ \xbb(\xb6we\x89N\xd2\xb2\xe9\x1e\x0d\xbe\xda\xea\xec\ ;7]\x14\x9az\xde\x1b{u7|\xd7g\xc3\x0e\ j\x9f\x17\x14\xfe\xf4\x9d\x9b.*\xa6\xbe\x18;L\xc6\ \xf9\x95\xbeO\xef\xca\x12\xa1\xa4e\xf7\xc7\x10^PK\ \xdc\xeb\xcd\x13L}olZ\x93\x95\xe8\xb1>\xd3v\ P\xff\xbc\xa0\xf0\xa7\xef\xdbtqJS_2~\x98\ b]\x99M\xb6\xbd+K\xd3\x8e\xcbf\x9e<\xf8\xca\ T[\xdfY\xe9\xe2\xec\xe0\xc4W\xf3}\x9f\x7f<\xa8\ ~^P\xf7c{w\x93\x86\x0e\xcb\xae\xb2!Nv\ }\x1f\x9enQ\xcei?\x97\x13\x8f\xeb\x0b.\xfa\x16\ ?4\xf6\xd9\xc5R\xd2\xbe\xa4\xee\xa7\xcfm\x1e\xd4?\ \x18|e\xae\xcd\xf6\xae,\xb7N\xde_\xf1\xf5\xc0\xb7\ ^+_\xd0\xba\xec\xaf\xcaj\x10\xb0\xeb3\xa7\x07u\ \xc4\x0bjs\xfaf6\x17oi\xeaKK%\xad\x07\ \x1c\xd9\xde\x95\xa5\x15\xf7\xcb~\xd24\xb8[}\x1cK\ \xa7\x95\xdf\x1a\x1cR\xb8?\xf6\xda\x82\x0b\xd7\xe7|\x0f\ \xea\x88\x17\x14\xfe\xf4mU\xde\xda\xb7\xe6\xed\xd2EI\ \xeb\xab9l\xef\xca\xd2\xb4\xdd\xb2=xH|\xfa\xda\ \xca\xc1\xbb\x89;\x9a\xfa\xd2\xd4O\xeb\xb1\x9d\xaeOV\ \x1f\xd4\x11(\xfcY)V\xfa\x06\x1f4q\xb77\xf1\ \xbc\xbe\x9a\xc3\xf6\xde,M\xdb.\x1b\xec\xd3\xe0\xde\x97\ \x95\x9a\xb3\xd3\xcao=\xfe\xee\x8d\xbd\xbe\xe0\xa2\xcf\xb2\ \x1fT@/(\xfc\xe9\x1bY\xbc\x0d\xf8\xbb7\xf6\xea\ \x82\x0b\xdb\xbb\xb34m\xb3<\x8c!\xbc\xa4\x0f\xdcV\ s\xfe\xf8\xdd\xed\xd3\xcd\xe3{z\xb97\xfc\xfa\x9a\x8b\ \x1e!pP\x07\xbd\xa0\xf6\xa7o\xac\xf06\xe1\xef\xde\ \xd8\xab\xcb\x22l\xda=\xbbc\x7f\xd1\xcb\xb4\xfa\x0c\xd1\ \xbeA\xc1\xdb\x8c\xbf{c\xaf\xaf\xb9\xe8\xa1\x0d\x07u\ \xd0\x0b\xea\x8a:\xf5\xf6\x16\x8dq\x97Z\xa2\xacGd\ \xd8\x1d\x8f\xd6\xe5\xb7\x07\x16\xbc\xaem\xaf\xdf\xabN4\ SZ\xda\x13\xeb\xb3?\xae\x07d\x1cT@u=\xe8\ (/\xa6\xbd4\x0e\xeb\xfahP\xaf\xdaN\xe8\xef\xd2\ `\xae/0\x0d{\xa8\xc7A\x0d\xf1\x82\xaa\x9f^\xb3\ \x9d\xe2\xef\xde\xd0\xab\xab\x16z\xdds\x86\xbf\xbbCG\ \xf3\x82\xa2\x85\x1eDrH\x84\xc7\xf5u9\xbd\xe6A\ \xe0\xfa|o\xe4\xf5\x87\x80\xed\x0c\x8dS\xb1\x97C\xaf\ /*\xe8\xe1)\x87\xe4+\x06_}\xcce7\xef\x8b\ \x03\xf3\xb6\xeb\xcftr;G\x97\x1d\x10S\xf1\x05\xe5\ '\xe6\xd9y\xaf\x1b\x1a\xc7\x90\xfb\xcf<\xf8\xdd\xcf\x07\ \xa1\xeba\xbd\xc7Nm\x9f\x0f\x83w\xce\x05\x17\x8e\xdd\ \xeb\xe6\x13\xe5\xf3\x19\x1f\x0exl\xdc\xf9\x8c\xf7\x933\ \xfc\xfd\x9c\xf3\xd5\x7f\x7fj\xe8\xef\xf1C\xe6\xe7G;\ \xc71\x7fG\x8f\x83\x8f\xf3\x14\x10M\xb88:\x057\ \xcf\x81\x16!\x1f_27\xcf\x81\xc4\xe4\xa9wG\xef\ u\xf3\xbd\xe7>\xf8\xa3K\x06'\xab\xdb\xb6\x93\xa3\xf7\ \xce\xe3\xc6r\x1a\xc3\xf1-\x9e\xb7-\x9e$\x13\x8f\x8f\ k\xe7\x85\x88g\xe1\xadOG\x07\x8e\xed\xde\x14\xd3I\ :\xba\x19~\x1e7\x95\xf46\x1f\xddd\xbb]\x89\x5c\ \x93'\xd3\xf2\xd8\xcdf~\xbczZ\x82?J\xc1\xdc\ \xbeWo>/\xe9\xf8\xcd3g\xd4\xb7\xcf\xddj\xe7\ 9\x9c\xd4\x93\x8b\xe3$\xcc\xed\xf8\x94\xde\xeds\xf4>\ \xaf\xf0Y>)\xc7\xc9\xb2l\xef-gg\xe7\xe6\xd8\ \xbd\xd9\xcfld\xce\xfdy=\xbas3\xa9\x9d\xbb\xf3\ x~\x94|\xdc<\x87\x0bsFv\xd5Q\xea\x99o\ \xcdg'\xc7\xb9\x88\x1bu\xca\xcdo\xc39R\x0b\xc7\ \x96l~6\x15\xc0G\x07\xfe\x05\xf2\xa4\xdd\xfa\xfd\xc3\ \xdd\x1f~\x7f{m\xfex|\xe4\xbc{\xbb=~\xfb\ \xcc\xd0z\xbb;z\xfbbl\x7f\xf4\xe6\xb2{sx\ f\x22\xbbw\xc7\xa3w\xbb\xc5\xd8\xe9\xf8D\xd2\xee\xdd\ \xf9\xf8\xdd~\xf7\xeer\xf4\xee\xb4\xb8\xbb\x1e\xbd\xbb.\ \x9e\xd2\x1e\xdf\xcc\xba\xd8\x1c{|3\xeb\x82R\xec\xf1\ \xcd,uq\xfb3\xdb\xb9Xs{|C\xcb\x92\x0e\ \x8f\xefh^>\xea\xf1-M\xcb\x85<\xbe\xa7u\xb1\ K\xf6\xf8\xa6\x96\xb0\xb8\xfd\xf8\xae\xe6\xc5d\xdc\xf1]\ \xcd\x8bmr\xc7w5/&\xe3\x8e\xef\xaa_<\xaa\ ;\xbe\xab!.n?\xbe\xabyy\xfb3\xbb\xba\xa0\ \x19w|W\xc3r!\x8f\xef\xaa_\x10\xb0;\xbe\xab\ ~A\x91\xee\xf8\xae\xc6\xc5d\xfc\xf1]\x0d\x8bu\xf7\ \xc7w5,\xe6\xee\x8f\xefjXJ\xde\xe3\xbb\xca}\ `w\xee?\xbe\xadu9\xfc\xf1m\xad\x0b\x92\xf4\xc7\ \xb7\x95\x0f\x8c\xd8\xb9\xff\x99}]\x10\x99?\xbe\xafv\ 9\x9bgd\xf0B-=#\x82\x97\xb7?#\x82\x17\ \xaa&\x1c\xdf\xd6\xb8\xbc\xfd\x19\x11\xbc\x90\x1c\xe1\x19\x9d\ j\x16$\x1c\x8eokY\xde~|[\xf3\x82h\xc2\ \xf1]\xb5v\xc1!\xe1\x19\xcd\xba \xe1p|[\xed\ \x92\x0c\xe23\x86\x92]PY|\xc6RZ\xac}|\ fg\x17\x8b\x13\x9fc\xd8\x05%\xc4\xe7\xb6v9\xfb\ \xe3[\x1b\x97\x8bs|k\x17K\x1f\x9f\xe1\xd7\xc5\xdd\ \xcf\xb0\xeb\xdeJ\x1e\xdfX\xb7X\xc9t|_\xe3b\ a\xd2\xf1m\x8d\x8bGM\xcf\xc8\xe1\xc56\xa5g\xb4\ \xebb\xd9\xd3\xf1]\x8d\x8b\x95I\xc775,\xad\xe0\ g\xb4\xebr\xf4\xe3\xbb\x1a\x96+\xf3\x8cv]N\xe6\ \xf8\xae\xfa\xa5M~|W\xfdb!\xf336\xd3r\ \xf4g\xdc\x9a\x85\x90\xcf\xc7w\xd5-'s|W\xdd\ \x82?\xf23\xbe\xcdr\xee\xcf(W\xb3\x1c\xfe\x19S\ x\xb1O\xf9\xf8\xb6\xd6\x05;\xe5\xe3\xdb\x9a\x16\x93/\ \xcf0\xebb\xe1\xcb\xf1mM\x0bQP\x8eo\xab]\ N\xe6\x19\x19\xbcX\x99\xf2\x8c\x83\xb3\xe0\x8fr|[\ \x97\xea\xa6|r[\xff\xf5_\xff\xfc\xd5\xeb\xc7\xa7\x9f\ \xefn\xfe\xcc\xdf\xfe\xea\xea\xee\xf6\xe3\x7f\xbd|\xfa\x8e\ \xaf\xe8\xcf\xed\xf5\xd7\xaf\xda{.\xbdjo\xb7\xb7\xfe\ \xe5\xc3\xed\xd3\xe3\xd7\xaf\xbe\x7f\xbcy\xf8\xa7\x8f\x97W\ 7\xff\xe5\xc3\xbf<\xde\xbc\xfa\xb3\xde\xf6\xd5\xc7n$\ \x1a\xeb\xc3_\x1e\xaf.?\xde\xbc\xb9\xba\xff\xf0\xe1\xe6\ \xea\xe9\xfeas\xf5\xfd\xc3\x0f\x97O\xdf?\xdc|\xfd\ \xca\xbc\xea\xee\xa4_\xc5w]\xe8\xde\xa4\xf7\xfeq0\ c\x89e*dD\xfeoC\xc2!\xdc\xe4*\xfe\xb7\ \xc1\xd0\x95\x19\xfe\xafW\xc3k}\x8c\xd7m\x82\x9f\xf1\ X\xb9|\xe9\xc7\xcai\xf7\xb1\xde\x0f\x81\x1e\xca\xe70\ zk\xa6@~\xd2\x0f\xc3\x06\xcdw\xedp7\xf8\xa9\ \x1a7\xda\xa9\xd2\xdbh\xb9\x16G\xc0\x8a\xea\xf0\xd7O\ ?-\xa2\xeb\x97\x0f\xff\xf9\xe1\xf2\xfa\xf6\xe6\xc3S\xff\ \xcc\xbb\x9f\xd4\xed\xe4\x1e?>\xdc\x5c^\xff\xe3\xcd\xd3\ w\xf7<\xc9\xeb\xf9\x93o\xf5\xe6\x7f~\xb8\xfc\xf0\xf8\ \xee\xfe\xe1=\xcd\xf7\xf2\xe9\xe1\xf6\xa7?l\x00\xf7\xcc\ >\xf8\xe3\xaby\x8f\x1e\x9f\ \xee?\xee\xae<\xde)a\xe3\xbb\xb5\xbf\x7f\xf7\xee\xf1\ \xe6iw\x93\x98\x1b\xe4\xee\xcd=M\xe8\xf6\xe9\xe77\ \xc8q\xd3\xe5\xd5\xfd\xdd\xfd\xc3\x9b\xdf\xbf\xe3?\xf3\xf2\ \x7f\xfa\xc7\xd2\xa1\x9f\xe2<\xabM\xc1\xfe}~\xb3\x1c\ \xf8\xcd_\xf6S\xdfx\xfc\xed\xa8k\x97h>\x83\xa3\ \xac1_\x9a\xa5j\xf9\x02\x92\xc2v\xf2\xe8\x0b=\x97\ unOV\x840\xb9\x5cG_\xf0Pn\xb8\xa2G\ \xdd\x90\xdc\x00\xc8\x8c\xfe[+]\xe5)dOW\xc1\ \x8f\x1b\xe7\xa6\xe8=\x89\x14\xc3\xb7\x9a\xc1M6\xdbq\ S\x80 \x1cp \xeeH\xc2\xa6\x92~\x94[6f\ JqD\xf3|\x928\x1b?y\x129\x1e\xa5V~\ q\xa5\xb7\xa3R\xd7\xd2\xb0\x1bZ\xe4b\x22\xfd:\xde\ X\x5c\xbe\x5cXY\x9f^$\xad\xf8\xfc\x5cSb\x1d\ i\x0dhV\xf3\xa5\xacg\xf1n\xf4\xa9\xa0\xf3>\x19\ |\xff\xb6R\x8a&\xf6b!U.\xaf\xdc\x8d}^\ `X\xef\x0eJ)cl\x0d\xee\xef\xf4\x93\xe1\xc5B\ \xea\xdd\xd5\xbb\x9bN\x1e\xae\x11R\xe1\x8b\x9b36|\ \x09{\xc6~y\x83\xc6\x1e\xb0h\xb2\xc7I\x81\xc4S\ 8\xb4\x9e-\x9a2U\x1fU\x5c\x91QS\x06\x88\x11\ 7nP\xa7cI*\x85\x9a\xda\x85\x88\x16;\xf9\x12\ Y`E\x93F\xee;\xa9\xaf\xb7wm\x07\xa51\x1d\ I\x1d\x1a\xd3\xf2\xe7i\xd8loNMZY\xb6\xb3\ \x0c>\xe3\xdf\xa3Q}\x9a\xaf\xf8\xd6\xbf\x81\xacz\xa1\ e\x15\x89\xfd\x5cu5\x8b\xac\xda^\xca\xaa\xa6\x82u\ %\x1eM&\xc6\x7fkYU\x0e1\xf3\xdfIV}\ \xc2\xa2\xfa{\xca\xaa\xbf\x81A\xf5rY\xe5\xbe\xbcA\ e\xbf\x88E\xe5\xa3\xfb\xd2\x0f\xe6\xa3Y\xca*\x17\xc9\ \xfeq~t)O\xd1\xba\xe1\xbb!N\xa5\xc0\xc0!\ \x1b)F\xba\xde\xc8\x1b\x7f\x03\x9f\xcb'\xf7B\xd1@\ \x13\xc9\xa5\xda&\x1a\xda\xa5<\x84#\x81\xe92D\xa5\ 1\xe1\xdfX4\xf8X6\x07\x19\xf6\xef\xe2\xf9\x90@\ \xdc\xe4\x17\xf3\xea\xf5\xd5\xe5\xa5\x8f/\xe1U\x9f\xbf<\ Ig\xf3%x\xb5|\xf9\x07+\xfb\xbc\x9a\xe0V\xa4\ \x8eWm\x98B\xcf\xaa|\xfd\xb7\xe0\xd4\xfa2N\xc5\ D|\xad\x88\xde\xc0\xea\xb8\xd9\xa4\xf9\xdf\xed'.\xe7\ \xc9\x99\x14\xc3\xaf\x87k\x0fj\xbc_\xc6\xb3\xd7\x95\x9e\ \xe6\xea3x\xb6\x1ert\xbe4\xc7\x06\xf3\xc5\x09;\ \x98/\xc1\xb1\xc1~\xf9\x07\xb3\xfb\x1c+$\xfeE\xb4\ kp/\xe4Y\x9e\x897\xa6\x90j\xe5\x90&\xffw\ \xfb\xae+d\x80\x97Z~=\xfc\x1a\xec\xcb\xf9\xf5s\ ulp/\xe7\xd7\x97\x87\x17\x83\xff\xf2d\xed\xbf\x08\ \xbf\x86/\xff`a\x8f_=\x9a\x1b\xbb\x8e]\xd3\x14\ S\xec\xd9U\xde\xf8[\xb0k|!\xbb\xf2L\x02<\ \xe3Mbv\xe5\xffn\xdf\xf5hZTb\xfc\xf5\x18\ \xc5!|Av\x8d\xbf\x0a\xf5\x9a\xbe.\xad{\xe2R\xa4\xe4|\ ^\x18\xc1ai\x04\xffM\xf84\xda\xbfS\x88I\x1f\ \xe2\xd7\xa3L\xa3\xf9r\xca4\xda_\x83\xed\x1b\xdd\x97\ \xa7f\xf77a\xd3\xaf^_\xdf\xbc{\xe4W\x8f\xf7\ \xd7\xb7\x1f\xe9\xffo>\x5c\xbe\xbf\xb9\xfe\xe1\xf6\xe6\xc7\ \xdf\xcd\xbf\xf8\xcd\xe5L.\x1f/\xbf\xbd\xe1\x85\xfb\xfa\ U\xdb%\xf9\xe0\x9b\xfb\x87\xeb\x9b\x87\xf6Q\xe2?;\ \x1f\xe9\xea\xd3\xf6Lm\xee\xf3sc\xd4\xf9ss\xf8\ \xf3\xc7\xef.\xaf\xef\x7f\xfc\xfa\x95[~\xf8\xd7\xfb\xfb\ \xf7\xf8V^~p\xf5\xd3\xd7\xaf6\x09G\xdbf\x1b\ \xfc\xde\xa7\xf4S\xce\xd2\xd7,Y\xa5\xcb\x0f\xaf\xef\xaf\ \xbe\x7fO\xbb\xbf\xf9^\xf6\xf1\xe3O{_\xff\xfe\xe1\ \x017\xdc]\xfe|CO\xfc-\x997Q\xefy\xfc\ \xee\xfe\xc7o\x1f\xb0p\xef.\xef\xe6\x95\xe3w\xbf\xbf\ \xbd\xbe\xa1\xe1\x9e\x1e\xbe\xbfY\x0e\xc8\x9fm\xbe\xf9\xe6\ \xfe\xa7\xc3\x9f\xffx\xfb\x81\x9e_\xeayi\x11\xb7N\ \xc2\xf2\x8e\xefnn\xbf\xfd\x8e\xd8\xa0\xec?\xb3\xde\xf1\ \xd3\x96\xa8\x96\x1f\xfd\xfc\xe9\x8f\xde_\xfet\xfb\xfe\xf6\ \xaf7\xd7[\x0e{w\xfbDo?|{\xfbaC\ \x1c\xb5\xfdj\xf7\xfe\xdd\xcd\xbb\xa7\x83\x1f<\xc8,\x0f\ |\xf2\xcd\xfd\xd3\x13o\xe9!2\xb8\xfa\xee\xe6\xea/\ 7\x0f\xdf\xdc_>\x5coo\xa1\xcf\xefn\xf0\x5c~\ r\xcae[\x8a\xe6\x95m\xdc\xf2\xf1\xfe\xf1\xf6\xe9\xf6\ \xfe\x03=DD\x164\x978zc'\xe7r\xdd\x0a\ \x8e\xfb\x07\xf0\xfe\xa5\xdch\xc6\xed\x07\xd8U\x1e\xcf\xa6\ \x94\xb3\xb2\xd5W\xaf\xf7\xb9\x87\xdf\x7f\x7f\xf3ty}\ \xf9t\xb9e\xa5\xf6Nn\xb3|\xb8~\xf7\xe6\xff8\ \x7f;K\x86\xab\xab7\xff\xe7\xfd\xc3_\xb6\xcc\x8d\x1b\ .\xbf\xb9\xff\x9e\xd6j\x96\x1ft\xdf\xf5\xd5\x1b(\x88\ \xcb\xa7?\xdf\xbe\xa7ey\xfd\xf8\xc3\xb7\xff\xcbO\xef\ \xef\x88\xa3\xe7\x0fvn~\xfa\xf9\xe3\xcdvP\x19\xf6\ \xe1\xe6\xf1\xfe\xfb\x87+\x921\xdf==}|\xf3\xfa\ \xf5\xc7\xef\x1f\xee\xa6\xfb\x87oi\x10\xfa\xdf\xfb[|\ \xe9\xf5?=\xdd\xde\xdd\xfd\x03~\xa4\x17\xc8\xafu\xa2\ M\xact\xcf\xf1\xd5\xeb\xf6\x94|\xf5\xedb\x17\xef.\ \xbf\xb9\xb9\xfb\xfa\xd5\xd9\xe5\xdd\xff\xfb\xfd\xcd`\xf7\xf8\ \xe0\xe1\xfe\xfb\x8f\xef\xef\xafiV\xcc[\xaf\xb6\x8b\xc7\ \xd7\xed\x0bO[\x1d\xc9/\xef.\x9fn\xfe\xb0\xb16\ !%\x1d3\xe07qJ\xd1\xfa\xfc\xc7\xb6\xd6\xdf\xb6\ \x05x\xda\xd3\xaf$tj\xac\xb5Hv\xb7]\xa5J\ \xde\xab\xe7F\xcf\x9c\x89v4b\xf1\xa1\xcb\xef2=\ \xd0[\xdb,\x87j\x1c\x88Y\xc1v\xde\xfcp\xf3\xe1\ \xfe\xfa\xbaC{\xb6wx\xe76$FH<\xde~\ \xf8\xf6\xcd\xfd\xc7'\xe6\xb0\xff\xfd\xfb\xcb;Z\xfb?\ \x91\xc8\xfb\xd8\x7fNB\x92V\xf6\xe1\xf6\xea\xbf>\xdc\ \x5c\xdd>\x12q\xfe\xe9\xe9\xe6\xa7\xa7\xa3wlu\xce\ \xb7\xdb\xed\xe7Y\xc7\x10\xfaL\xd0\xfe\x9a\xe0\xc4q\x14\ B\x07\xb19\xb6\x97\xd9\xc7\xa9\xda\x90\xedhs\xc2\x01\ )q^\xe3\xe5/\xb5\xdf\xb2\xa9\xbbay\xcb|S\ o9\xe0\x0f/\x22\xf4\x1diR\xc0f;\x8d\xfb\xc7\ \x9d\xf1\xf6Gl[\xb3\xe3\x9c\xed=\xe9\x96r\x5c\x05\ \xc4\xca\xd6\xd1\xf3\x03y\xda\xe3-\xb5\x1f\xff\x89\xba\x9c\ \xf6'~\xc2G\xa2\xcdJ\x84\xe4\xd1i\xb1\xba\xf4\xd9\ ?aS\xb1\xee\xd8\x8f\xccTl+y8\xd1Y%\ \xe3\xf9\xd2\x15t|\x09\xb1\x8c\x8e\x88\xd88c\xf3r\ \x05\x0f\xfd\xfa'X\xc5\xa4\x10lm\xac\xa2W\xde\x96\ \xc9'S\xd2h+\x19\x22\xc5\xf4\xc8\xd2\xc5\x03u\xda\ \xb2\xff\xa3\xbc\xc38\xe9\xdf\x1b\xfe\xa3\xdd)\xb8\xf9\xc4\ \xde\x84\x0fOy^\xb4\x9a\xf6\x17\xed\xf03Y4\xf0\ B\xf3e~\xa6\xedU*\xc9\x91D1\x90\x03\xd5\x22\ \xd0\x9c\xfc\xfe\xba\xf1DvM\xba\x03O\xb5/\x11\xb6\ \x06\xa9<1\xcc)\xa3\x05\xf4\xbb\x9f\xed\xa0\xc4\xfb%\ \xd9m\xf3a\xa6\xe8\xf3~\xa3\xa3o\xbe\x7fz\xda\xeb\ \xf2\xf1\x0d\xcd\xe2\xae\xbdK\xa2\xfe\xe6\xe1\x8e\x84\xcf\xd3\ \x9b\xb9\x03\xce\xf5%\xc9\x9f\x87\x87\xcb\x9fw~\x08\xef\ \x8a\xa1\xfdfn\xc6\xb7\x9d\xeb\x17\x91h\x87W\x99]\ :0qH\xc0\x0d\x062\xfc2\xca\xa4p\xfcs\x02\ \x003\x90\xf8r\x82K\x9a\x9c\xc9\x99T\x04\x0eC%\ 3\x89\xde\xf0\xb5\x84\x82{\x8aA\x9b\xba\x0d\xb1\x0eQ\ \xb2gO\x0b\x1d\x93\xef\x80\xb3$\x89g\xfd\xc8\xe7\xe1\ \x06;l\xd0\xa0\xd6\x992z\x1c\xadh\xca\xe0\xc1\xdd\ \x85\xaf3\x8dOn\xe3\xe1\x99\x82:\xe9a\x9e\xe8\x87\ R\xd8\xd4M\xdc\xd8O\xdd\xf9\xd9\x8e\xc1\x0e\xbd\xcd\xc6\ \x08iQ\xa8p\xb28\xaf\xe4\xcf'\xbeq\x80!\x22\ N\xbc\xf3Y\x04I\xbb\xa2\x05\xaa\xc1\xf1\x89\x0d\xa4\x0d\ M\xc9n\xaa9\xef\x8b1\xf9\xf3\x1bK\xfc\x1aX\x22\ % \x93\x83\x03K\xa0\x15'\x89j@\xeb|\x8e\x88\ \xd0[\xb2|mH\xcc\x14\xa9:\x12\xe3D\xe7\x05_\ \x00$\xb9\xf8\x1a\xc1\x14\xb5\x9a\xe4\x89\xbe\x93%\xbf\x03\ \xc8d\x9fr,\xc4\x14\xc4S\x91\x04\xe3\x98&\x9bI\ \xcf\x0c\xf2\x09\xc9M\x9c\x81\x17*\x07P\xaa\x0b#\x18\ \x0dE\xc9\x9f\xcd\x12\xbf1\xc4o\x0c\xf1wb\x88\x8c\ \x86i%Fb\x08\xf4\xed$\xf2/\x83\xb2\xc1\x88\xce\ ad\xfb!\xbd\x16sJD\xb7)A\x89\xd8\xc9\x06\ g\xc9cL8\xebpS\xd0\x80\x9f6=L\xc4\ U\xc5A\x19d\xb2\x1e#\x14\x06\xb9\x92\xd6\x7f.\xa9\ \xffF\xe8\xbf\x11\xfa\xdfK\xf2\x17\xa2VC6\xca\x18\ 2\xfa\xdd\x87j\x07k\xa6\xeaj\xa8d\xc5d\xf4\x0a\ \xaa\xc4\x0b>\x93\xd4g\x97w\xc0\xb1C\xc6[Pq\ \xae\xd9\x97aS\xc9Y\x10?\x18\xc7I\x16?l\xac\ \x9f\xac\xa5\xa5\x1d\xa1X\xd0\x1a\xf7\xb3(\xfd\x7f::\ \xff\xe4\x14\xff\xa6+\xb1oK\xa6c$\xb1\xc1\x16\x96\ \x89\xf6\x9f\x5cA\x04?I'\x93c\x1fq\x9e'\x19\ \x03\x1e\xbeN\x1al\xae\xa4\xb7\x817\xf0D\x1f\xae\x0e\ \x8e\xf4\xbc#\xbf\xceF\x22\x1b\x97\x19\xb3\x8f\x93\x08h\ \xf1*\x89\xd0J\x02\xd1\x93\x08\xe5\x8a\x00r4\x8b\x09\ \xc3&E\x0cO\x9e\xa7Gk\xd7H?S!4\xc3\ HK\x9a,\xfdl\xacd-\x90L\xcd\x90\xa9$Q\ +\xc2qDzD\x90\xf4\x05\xfbI\xb2\xfaE\x12\xe4\ \xdd\xbb\xdf$\xc83\x12\xe4\xdf\x11io>%F\x94\ \xb8K\xc1\x91\x89d\xa2\x86\x08\x86.F,PO\xb4\ \xed@^\x1e\xa4k+\xea=\xc3h\x9d#\xb2\xcfC\ \x08\xe4\xec\xd1-6\xe1\xfc\x8b< \xbae\xc8f\xb5\ d\x1dD\x12ow\x03\xb2)>\x8e.\xd1\xe0\xa4\xd9\ \x89\xfa39\x81\xc414B\xa117\xe4N\x92\xf8\ \xf4c\x9c`\xe4\x12\x93\xc5)\x92#h\x05\x94C\xbc\ R\xb8\x02\x86\xaek\x06'X\xf8\xa6\x1e\xb1E\xf2I\ \x89\xf6}\xc2,Q\x97G\xccB\x82\xf77\xda\xff\xb5\ \xd2\xfeL\xca\xb3B\xd9\x5c\xdd|\xa0'\xe6\xcc\xc9\x14\ k u\x1a\x9f\xf5\xe7\xf7\xbe\x8d\x94\x0c4s\xaa\xd5\ \x7f\xca\xf9\xf9\xb7\xe4\xbb\xcd~\x8cS\xfe(\xe7\xc5\x94\ \x0b\xb1@!\xce#\x0fp\xb2\x15\x86\x02\x1fh\xe6\x88\ \xf7\x88\xbc+\x19\x13W\x83C\x03\xdd\x81'\x86B\xe4X\x1c\xe9\x14\xb2\x9f|\x0c\ D\xe7\x16\x06(\x11bB\xb8\xb9\x0e\xe0\xa2\x90\xe2H\ FR5\xb0\xdb\x1di\x86L:\x83\x94Q\xaa\xf4\x05\ \xe0=\xe8'\xb9\x94<#\x16c\x8dG\xe2\x82H\xd9\ O\xc6\x07\xb0\x0a\x99b\x1e\xbfi'\x13\xc9\x96\xb7\xe0\ \xa6\x8a\xac\x8d\x9d<\xd9yP7\x9eL]?\x167\ \x19S\x9a\xa6\x12E\x85\xfbK\x9a\x10\x12\x82~K\x9e\ m\x7fO\x8c\xc2\xcf\xe5\xc8U\xf8\xb4\x97\xfb\x1b\xc3\xfc\ \xcf\xcd0\xcf\xb9!\xa5@l\xc3R\xf3\xce$\x12\xc5\ \x19\x1e\x03\xd9[D\xd1\x81\xc8\x8fF#\x02\xe6\xe4b\ \x16\xa6qD\xf2\xc9\x90$\xcf\xda\x91\xa5\x0c\xe4kd\ \xec\xfe\xe8r%\xc5Q\x86\xe8\x89\x05\x8cg\xa6\x19\xc8\ \x02\xacHS\x92z!\x0f$\x91[S\xc1;\x85\xde\ *\xcfl\xd9\x11w\x06\xe7\xb9\x15J\xc8E\xfc\x9a\ \xc9\x15a\x190H\xf6\x96U\x94#~5\xd6B\xdd\ \x14\x1cAc\x18XI\x19\xf6\ >\xd9Q\xd9\xe2\xb0\xbb\x00xP\xb1\xf4\x0dC\xee\x00\ _\x02\xbeP=\x94\x02)\x15\x8b\xc0\x15\xf1V\xb2\x88\ \x18`.\x96L1O\xbe9x!\x19\x8cJ,\x06\ l@\x82\x17a\xc9mC\xfb\x0bb2\x8b_&S\ \xca9\x9c\xadE7E\xfaZ\xac\xb8'\xe28,\x1a\ \x87L6Vx\xce\x85J#\x8f\xd6\xc0t\xf3\xbf\xb9\ \x1f\xbf\xf1\xd0\xa7y\xe89\xe5\x10\x8d'c\x86\x0c\x93\ @\x0e\x00Y\xf50x\x88\xf4*b\xda\xa49p\x08\ #w\x86\xaadw!O\x95\xc8\xa6\xcf\x1e\xacf\xc8\ `I\x06|D\xbe1q\x0e(\x9cF\xa8\xb0\xc5\x88\ \xc4+q$\xd1s$\xbd\x12\xc9A!~\x8d\x93\x0f\ \xcc\x07\xe8|\x82l\x01\xc9\x7f\xb8=\x85\xf5B\x92P\ \x96c\xbb\xce\x09t\x82x7987\x06\x81d\xcc\ \xc3\x93E\x04W\xc4C\x81\x91\x96\xf24\xafB\xa6\x98\ M\xf4\x83\xb0\xc5\xc8h\xa2w\xc8\xfb\xb0\xd5\xe0\x08p\ 78\x1c'7\x82gRD\x14\x8ffM\x9f\xd2\xcf\ N\x8e8\xd9d\xc0\xfd\x10t\x83\xbfo\x7f\xb3\xb1\xfe\ \xfd1\xd3\x17c\xa5\xe7\x9c\x13\xa0\xe5\xc8\xcd\xc8\x90\xea\ \x08\x11\x93\xf9C\xda\xc8!9\x04#\x1f\x04\x9cI\xa1\ \xc0\xc8\xaf\x08\x01\x93QE\xce\x05\xb9*\x0eL\xc4l\ E_\xc3\xe9\xf2\x16q*h\x22\xf8\xe7\x16]\x18G\ _\xc8\xb3/\xec\x9f'\xf2\xa2I\x1b\x90\x02 \x9a\x07\ \xdf\x91.$\xa7\x82\x14X`\xb4\x12T\x04@\xfd!\ \x8d\xe4\xcb\xd0\xa7\xbf\x11\xf5oD\xfdI\xa2\xfe$\x98\ \xa0\xd9Y\xd1\x076R|N\xc5\x92 &\xe1\x8f(\ \x13\xdc\x07\x8f\xe3\x85\x91\xda(\xc0\xcd\xc1\xaeG\xe4\xca\ W7x\x87\x84\x1d\xc3\x9f\x89\xd639\x03d\xa6\xf1\ i\xde$\xf7\x89*\x0dwD\xdd\xb0\xf4uc@\xfc\ K<\xe9\x80XR\xa9#bN\x99\xcd\x9f0e\x8e\ \xee\x92\x17c\xa1R\x02}\x97\x88\x9b\xbck\x1a\x90\xc8\ \xfe7\xea\xfe\x8d\xba\x8fP\xf7'a\x92\x8d\xbe3\xd2\ \xd3\xc1\x11\xc5Y\x9c\x9d\x09\x88&\xc9Q\x1a\x0d\xb4K\ b\x14\xf4\xcdF\x0bI\xd5q\x03\x9b\xc5gr\xa1-\ Q\xbaAP3\x93\xd8'\x03f\x88\x86l\x0b\xef\x11\ \xaf\xc1\xb9\xa4\x0e\xf4\x1dH\xdc\x9b2F\x0693}\ G\x83\x93.\xc9b\x89\xe4\xa1p\x22\xc2;\xb1\x90\x00\ \xb7\x08L\xe0\xd1\x01Q\x11FG\xde3\xfa\x82\xfeF\ \xe0\xff\xde\x08\x9c\xfe<\xca\xff\x1f\xb7\xd7\xf3\xcb\xab\xfe\ \xe5\xce\x9f\xc7\x9d\x7f?u\xd7\xf3\x1f>s\xd7\xe3c\ \xf7\x03\xdb\x97\x8f\x07\xef\x7f\xdc\x9f\xfa\xee4w\x7f\xee\ \xf1q\xf1\xc6g\xcek\xffG\xfa\xeb\xc7\x9d{\x1e?\ 1\xd5\xbd\xe1\x1f\xb7\xb3\xdd\x9b\xd6\xe3\x81\xfb\xb7_;\ \xf4\x98\xed\xdd\xc5\xb7\x17o,\xa76/\xf2\xe3\xf6s\ \xde\x80\xc7\xab\xc7]\x02\xf9\xe4\xf4\x16o>.>\xfc\ \xe4\x22?\xcao\x1d\xdf3\x99\xce\xa3Njy\xcb\xe7\ \x90\xd9\xe3\xde3<\xb6\x0d\xdc~}\xf7\xd5\xbc\x83\x8f\ \x8f\xfb\xbf\xf0y\xa4}\xf8\xee\xfd\x1f|\xdc\x9f\xde\xde\ \x85\xde\xf27\xd7K\xd2\x98\xa5\xe4\xe3*(\x95\x8cF\ -\xe4\x84\x17\x07\xdb\x88\x01'\x9bB\xda\xc02\xc4\x8e\ S\x0a\x93a\xb0\x15\xfd\x83t4\xe9\x07\xe8\xa7\xc9\x18\ d\xa3#\xf9\x03\xa4\x88\x18x\xb2\xa9\xc8\xdb\xc1\xcc\xaa\ \x80\x8bp\xf6m\xaa\x05j\x89L\xaa\x84\x90\x92\xc5\xbf\ #\xe9!\xce\x84\x93\x8a\xb2v\x84\xdb\x81\xe0R\x8bs\ \xb9\x09\x9e\x059\xc9\x95TS\xe5\xe4\x22MT\xda\xbc\ Z\xae\x0a\x22]\x864`\xe4D\xbc\xa9\x85oG\x8e\ \x9d&\xe2\x01nE\xf22zn\x0f\x11\x01\xe5\x8aH\ \x81\x00TC\xbf\xcf\xce\x11\x07\x9c\xa7\x88Yx3\xa1\ \xc5\xec\x14\x13zSW\xce\x8b\xc26\x8cX\x07\xd2\xbb\ p\x93\x18\x133\xd5\x80\xc9V`\xc1\x1c\xe0\x87\xf8\x96\ \x09\x09\xf7E\x9a\xb9\x81\x9a\x96\x96\xd5\x15\xf6(}\xd6\ ]f\xbe4@\xa7\x93\xce\x05\xf0\x9c\xfbZ\x07\xa0o\ \xd1@;@\xc5;.\xd1\xa0\xf9&\x0e6\xf0u@\ \xc4\xa3\x00\xb6Kfo\xe4\x888C\x04\x8a\xe1\xa0`\ b\x0b`\x83\xd6\xff\x09\xa0Gcdzh\xf2\xcf=\ \xbc\x19\xec\x16a=\xc3<\x90k\xfe\xad,\xdb\x07K\ \x99\xe3(\xa5\xbbN|M\xb3\x05\x02\xc1\xe3\x82&\x8e\ \x9c+\xd6\xde\xc95\xac\x10\xc3\xb3\xc3JG\xc7a\x18\ z\x0bc\x17\x19\x80\xbe\x1b\xe5\x9dh\xb3\xfe\x04v\x91\ \xe6a0\xeb\x8a!AM\xc9\xe2\xb6\xed\x1b\xc1\xf2\xf7\ \xb8\xcd/-0\x9a\xf2\x14\x84\x5c\xb1y#\x17M\xf2\ \x853\x1c\xf1\x01$\x10\x03b\xc1\x940]\x927\x10\ s\xc5\x1b\xf8U\xf2\x17\xaa\xbc\x8b\x82/\x04\x8e\x82\xd5\ \xaf\xc1A\xa0k\xcex\x0dDd\xf2\x80\xf2\xc0N\x9f\ \xd7Zy\xe0\xbb\x01cc\xb1\x0d=N\xe5\x10)&\ P+\xfb\xc8\x00bZzP\xb2\xd6\x10#\xc6\x9a\x1a\ \x90\x0c/\x09]#%\xc2p\xc2\x84%\x1c\xb8\xecS\ &\xc5\xbf\x07\xda\xb7:y\xe7\x93\xbc\x83\x1f\xf0LK\ \xfc\xc3\xfcc\x9e\xb9b\xe7\x9a\xd8\xd4\x00\xd9(S\x0a\ \xb2\xa4>\xc8\xa55zM\x9b\xc1\xe4l\xe0\x11U\x09\ \xa0\xb9\xddK\xcb\xbd\xd8\x9dp#:\xbc\xd3\xb2`W\ \xe5\xb5\xc5\xd4\x123\x1ds\xb7\xd3o\x15\xbd\xf6z\x8d\ \xad\xa6\xdb3\x16\xdd\x8d\x22H\xb0\x10N\xae][\x08\ \xbe\x0bW\x86\x81\xbc\xe0\xf7(+\xa02'\x8f\x89=\ ?Z}\xe4s\xd0\xa2\xb9T\xbe\x8ar\x05\xd1\x10\xf8\ M&_\x8bF\xf2\xd1\xe8\x05?-\x1e\x85s\x9fI\ ~<\x18}\xf0\x9cuv6\xe8;hw\xdfx\x01\ \x94\xebe\xdd\xdaNG%{\x84\xed\xad\x95\xfd)X\ >\x22\x11\xc4\x17\xc1\x7f\x10|\xfc\x86e\xa6a\xf0(\ \xed63\x0b\xc8\x00\xb3\xc9r\x04\x07\xf32\xbf\xe3\xb2\ \xd7w\xd0\xcfZi\x18k\x9d\x18\xae*\xaf!\x8a\xa2\ \xf4\xdd\xe7\xf8\x8bR_\x929Z\x9dc\xd0\xbdf\x09\ \xc3\x1b\x85\xc5\x02\x07\xd3\x92\x00\xd9*\xd7\x89I\x03?\ \x98\x18\x0e\xb8\x09\xc4\xc0\x96C\xa5\xb4\x1d,\xe7#\x00\ P\x10\xcf~\xcb\x06\xc6\xc9<\x8b,.\xd3\x0e\xb6Z\ \x1f\xd5\xb7\x15\x15\xa6\xc4W\x13\xc3\x0b\x89\xdcQrV\ $\x05m\x12\xbe\x9f\x89\x13M\xc6r\x83zx\x19\x18\ \x82\x08\xce\x8eF\xbe\x1f\xa2\x0e\xd8d\xc0\xfc\x0bY\xe4\ \x80g9ed~\x90\xf1\xf8\x8d\xacR\xcb\xcaw\xe8\ _\xd6\x18\x96\xa9\x94\xb7\xac\x14\x04\x09\xb0\x0f\x90\x85\xd6\ \x18\x15UNw5@\xfe\x15z\x01d\x16X\xb7\xa6\ 0\x88l\xe4rmZ:\xcb\xcf\xe0\x86d\x94c\x0b\ \xf2<\xca\xbe\xbe\x9a\x01\x94I\xa3\x87\x22o%r\xd6\ \xf4S\xda\xc9:\x0a\x1fZ|^\xb1\x01*\x07K\x96\ Kk\x82\x88 \x00`\x10\x18w\xb4\x85\x99\xd6\x1e\xd8\ \xe4,\x073\xd0tB\xa1\x01\x9a(\x05\x9b\x11\x97\xb2\ \x88\xa7\x09&L\x17\x9c\xcdRa\xf0\xc6\xcb\xb5\x92\xdd\ \xc0\x05\xe8\x90\xaf\xa4H\xc8Ot\xac*d7+\xc9\ t\x1ftU\xac\x13\xea\xb4\xd0\x97F\xce\x87p\xa4\xd1\ \x1c\x91\x8c\x07r\x88\xde\x8f\xa1\x0e\x1e\x10\x07\xa6\xc0\x0c\ \xa4)\xd0C\x85OJ\xf0\x91\xd3d\x93\xe7\xc2\xf4)\ x\xb1\x00\xbc+\x8co\xb0lk\x04F\xf7@\x7f\x15\ \x1c\xff\x80\xd0\x7fe\x96\xabY\xac\x00\xc7\x0c\x01*\x05\ \xa3\x00\xc0X\x18RT83 \xc7H\x10\x19\xd3\xfd\ `eR\xe0\x18>su$\xa8\x9attr\xa3\xc3\ \xf7Xlp\xe7\xf7\x91\x9c\xee\x0cH7\xe0\xe4XU\ Zm\xcb\x9a\xae\x8cV\xbf\x06\xb6\xf2\x8c@\x12\x16\x0b\ J#H\xa1)\xdb:\xd6j\xf4QT\xe9,\x12w\ \x8c\xb2\xd04\xfbQ\xef\xcc\xa2`\xc0\ \xb3\xb1\xc4\x92\x90\x89\xcb\xa9f\x12\xf8\xbc\x12:\xf6K\ \xd5\x8bg\x0d\xc5\x13f\xb1A\xd7\xac,\x83J\x13\x9d\ \xa7Qz\x9d%\x88\x12\xac\xd5\xefbxD\x88ik\ \x0cC*\x818\x86,\x8aY\xdf\xa0\xc9\xf3\x1b\x16\xbc\ $\x0cZ\x99!u\x91\xb0\xe9\xc2\xa0\xc2\xcf\x22.\xf4\ \xe7\x99\xdf\xfcV\xe68\xeb\xe5\x0d\x11:\x90B`@\ <\xac\x15\x1d\x19UG\xa6\xb4{\x1dYe*\x91\x8b\ \xa93\x88\x8c\x8f[\xbb\x08|Xa\x04\xe7\xc2\x87\xa2\ \x90\xdc\xcb8\x91\x00\x0flU\x05y\x9d\xaf\xd8\x16U\ \xd4_\xd0\x09'\xa7\xfa5*\xd9\xa8\xbe\xb5D\xb6\xc0\ ;\xc4\xc0O\x87\x98\x0dx\xd6\xa0\xa4q\xc4\xb7\x9cs\ \x03p\xdc,\xafYN\xa3\xde\x01\xebG\x92D\x15G\ \x10\xcd\xa5k\xcf\x11}\x5c\x03\xbfcE\x84f\xfd9\ \xd6\xe0u\xa8U.=\xff;\xc8s\xf0\x8dPS,\ @\x87,\xe6(\xbdb5\xce\x9f\x22\xf9\xc5\x95\xc9N\ l*V7j'\xb9!\x16V\x9c\x15RS\xc0G\ \xb6\x18fF\xbc\xf6Y\xb2\xd4\xb0G\x901\xcf\x009\ q.\x0eU\x9e\x90T&\xebV\xd9\x22$\x80\xd0T\ {\xac:\x0a\x8d\x0d\xa2\x04j\x9b\x1c\x8c^\xa5\x0a\xcb\ <\x19F5%\xb6\xcb\xa6\xcce\x1d\xeb\x09\xc7zY\ \x1e\xd7\xc3\x9a$\x8b\xaf\x98\x99\xb4a\xc3V\xb6\xbdU\ \xde\x95\xa8\xd7B\x0b\x8e\xcf\xd1\xa2\x0f\x92\xd0\x8c\x19\x8a\ \x12\x8b\xdc\x1f\xed\xbcZPm\xfc\xb3z\xc5N\xd30\xf8:j_\x13\x17\x13\ \x91\xf3\x8d3\xeb$\xac\x08\x07\x22\x91\xf8%\x060\x82\ \x0c'\xab\x97\xaf\xb1B\x7f\x1d\x101\xc67`\xc3\x18\ \xd4\x83\xe0\xe0\xc0\x88\xaeMn\x84\xaa\x084u\xcb\x16\ |\x84\xfd\x83\x8a\xc6\xcc\x1e\xfd\x94I\x88e\x88;h\ LR\xdb^\xd4vb@.\xdc1\xa0!\x0d\xa2\x9d\ \x1c\xb5\xe4y\x90u6\x15\x8en \xf7O\xf6\x13\x97\ ?\x8e\xe0K\xba\x03.s\xe1x\x1a2\x9e8\xb5\x90\ \x03\xc0\xb4\xe8\x1e\x07|\xc1\xd6C\xd5\x22 \xc7\x13,\ w\x88O\xe2\x0aZ\xf5\x0c\xb1\x0c\xec1\x02\xb6|\x91\ +_\xb0\x03\xc3\x1cF\x0f\xc2\xe62\xbb\x83\x03b\xce\ \x8e\x03A\x01\x1e\xb2C\xf3\x1d\x92j\xb4h\x99\xe5\xae\ \x85\xcd\x07<3Yc\x89y\x1f\xd6\x22B\xddi\xe0\ \xd3\x00\xd9\x94\xce\xc0\xac\x0dx\xbc:0\xcb\x06\xfe\x12\ \xbb\xf7j\xb8\x8b[\xa3\x1a\x85|\x22\x81+gf\xe7\ \xc0ATau8\x22X\xdf\x89\xc3\x86\x11v\x99\xbc\ $q\xcdA\xbb\xc8\x01\x1b\xce-\x0b\x0a\x22r\x81\xb3\ \xbc\x11\x18\x8a\x1d\x100\xc9\x1c\x11\x81\xec\x04M\xbb(\ -\x86\xf0\x99eB!\x9b\x160\xbc\x0d\x96\xd0\xa3%\ :\xeb\xf2@O\x92a\xc7`A\x11k\x07T\xce\xa3\ \x83'\xb8\x9a\x83C\xa3+b?\xe15\xbb\xee\x22E\ X\xe2\x11\xb9G\x09j\xabF\x960X\xe0\xcb\xe6\xef\ V6a|\x8c\x92k\x00\xe3D\xc3\xb4\xa4Ag'\ 1Q\xc7\x01\x1ex!j\x93m#\x1cN\x05\xa3\xd7\ [\xe1\xa0\xf8\xa2\xfa\xc0l=K\x98KY\x9d@\xa8\ 6\x0d;5-o\x9am0\xb2Pg\xd9T\xd4\xc7\ \x17I\xc5\x0a\x90\xa3f#2\x0a\x1c\xa5\x22\xb9#r\ X\x1c\xd3`\xe4\x8aH\x11%\xbbl\xb6I\x91\x06\x1c\ >'\x229\x88\x1f\x8a}'\xd2\x09eTg\x80t\ \xf0\x88\xbd\x05k\x93\xd3\xe2Gz\x0dQ\x06\xfb\xcc5\ \x13\xc5\x8b%\x93\xc9\xc4\x97\xe0#\x14\x0aQ\x03Y\x95\ E\xe2W\x22P\x13\x1b\xf5\xb8v\xedZ\x04\xe3\x84n\ \x09\xe0\x1c\xd2\x90\xdc\x8d\xd5\x03\x140\x8a\xe5\x1f\xc1\xa3\ \xac\x91@\x98\x80\xbfx\x8el\x18\x00\x9b\x113\x22F\ '\x83\xba\x908\xa4w\x0bQsDN\x03\xa4\x1e\xd0\ \x8e\x10\x1b\x8b\x90\x0e\xact\x03\x94Y%\xae\x83\xb73\ \xa1\xb1\x09\xf47\xad\x1c\x18\x9eh\x1f$\x11\x02\x18<\ b^^*P }\xf0\x04\x80\x8c\x92\xf8\xe1\x22I\ \x96?|D\xe0\x863\x1e\xc4\xaa\x99\xad\xae\x80B\x02\ \xaf\x17\xd0\x10\x10\x1c\xe4\x1di|\xb4\xb0'\xa9\xe6\x88\ DQ\x07\x0eP\xeaVDq\xda`y%\xbd\x89}\ \xe52\xa0\x82\x0d)\x02\xd0\x22\xfb%A^[+\x09\ \x00\x84-\xc1\xde\x1c\xac\xf5b\xec\xb6\xd8m\x94\xf89\ \xbb\xa1i\xf0\x1aOe\xcb\x98\xac@\x8dW\xb6\x08J\ \xe0\x9b\xac:\xa3EB<\x1c\x88\xb2-\x15\xc1D\x00\ \xffy\xe0x\x05\xbb\xeeb\xec\xa5\xe6\xe0;1<\xf0\ 3p\x9d\xf5\xd1\xaa\xba\xe7-w\x01\x07\x1e\xd7\xdc\x84\ \x17\xe2\x83(\x22\xa1\x89B\xf0\x22M\x94O\x5c\xb3\x1c\ \xe6w\xbc\xe18\x14J\x8cL\x8bC\xc3R7\xcd'\ \xd6hL\xe4\x08mH\xba\xf4\x1b\x04\x09d\xd9!\x0d\ 6\xcc\xd0\xcd\xfb\xd7\x0c\x8e\x06;:;%\xb2\x8ba\ \xad\xc6R\xdd\x9c\x04j\xb9\x9e(o\xf030\x80]\ \xe2vb\xd9\xb0@j1|}\x83#\x0cl\x97%\ Mc\xb0\xda3\xdb\xb0q\xe1\xa0+\xde\xd44\x8aW\ oq~\xc3\xb5LU\x18\x22\xdb\x93l\x1d\x95A\xad\ K\xa5\x1bR\xa3\x1e[/\x22\xc6\x88\xa9\xdf$\x0c\xa7\ \x86\xe8\x12\xbcj\x85\xfeh\x12m\x7fl1\xb4\x81 \ :q*+\xfbsz\xc1u\x07\x16F:1\x0e\x08\ \x92c\x00\xa4G!*H\xcb#\x80!\xbeH\xc8\xbc\ \xf4\xf0\x87\xcd\xc0O!\xfe\x0ci\xbb\xdc\xbcG\xd6\xda\ p\x0c\x1d\x8bIq\xd7\x87\x22\x94Z\x84k\x22\x89\x1f\ H\x1b5>\xb3\x06\xb0\xadZ\xb1Y\xa4%\xc2$B\ \x96\x96%\x08\xa9\x7f1\xc9u9\xd8e\xf7`\x0dK\ \x1e\x0d\xd2\x9e\x16\xb5A\x8ec\xa4D|`w\x0bg\ \x00%\xa4\x19\xb1j\x8f\x06\xe7\xa8\x195\x5c6\x84\xf4\ \x19f\x9b\x85$\xc5\xd1\xe6h8.%biy\x7f\ E\x9c[\xb1\xdaG\xf1\xbb\xed\xa0\x99B\x8e\xc33\xe4\ \x9c\xd6\x97s\x8b\x9c7BX\x83yK\x93\x09\x92a\ \x10\xb3\xdd\x8f\xb1y\xddY\xc6\xa8\xdb4Ti\x8e\xa7\ \x13\xb9\xc9\x90C\xba\xf4zI\xa6B\xe5l\x90e\x8d\ \x86m\xad\xd8\x10\x90N\x11S\xdeI$\xd6r\x9cZ\ \xc6E\x9cec\x83i\xde1[gM25\xe5\x13\ \x85\x8f\xc4j\xb7\xf3+\xfa\x05\x96\x9d\xe4\xd7 \xcc\x1d\ 9qky\x0d\xa1l\x0d\x9aH\x05H{\x92\x9d\xac\ \xff\xd1+\x10\xd0G\xd8V\xc8]Cz\xd0Nij\ \x97\x89\xa0\xc5G\x85\x85=g\xf0X\x9aJ\xbd/\xbc\ \xf5\xa0\x11aR\xb8\xb8t\x92\xc8\xf5\xf2fHM\xa2\ \xc8u\x9a%\x0c\xd8P\xd2\xeb\xd8\x1b\xaf\x1c\xedu\xaf\ 4\xa8\xb4!\xcf\xc6\x99A\xf3\xc0e\xf4\x1a-qF\ (\xd5k\x1a\x8e\x1e\xc1\x897%\x09G\xc8\x93\xad#\ \x22q\xc3\xc4\x86\x117\x5c$j\x0b\x12\x1b\x81=\x0c\ \x9b\xceH%\xcc\x9c\xc5\xd6\xcc,\x97\x084\xf2\xe1\x9f\ R\x11/,t\x05\xea'\x95\xe5%r(\x89\xe0!\ \x9a\xfe\xca\xc2b\xf6\x12lP\x89\x17\xe5\xca\x89w\x09\ \xbb\x091?Q\x00\x22\xf0I=g\x19\xd3\xb6\xb46\ \x1ek\x08\xb5\x19\xaed(8\x8ep0t\xc1\x0f\x8c\ \x8b\xb0h\x03\x86}2\xdc\x16\x84{\xb92M\xb8\xe4\ \x02\xd7\xfcp6\xc8W\xc6\x1b\xc2\xb3*\xa0\x09\xef\xa0\ \x94\xa2cX\x01\xe0\x1bhdPX\x84\x075H\xdd\ `[B\x953\x02\x95\x19R\xae\xc5\x90KL%\x83\ \xcb\xaa{8\xe8\x06\xd3\xbe\x11\xaf\xa40Ac\x91\xd7\ \xc3\xce\x19\xbc$\xf6\xadZi\x9e\xb5\xfe\x105\x02-\ \xb9\xe3$Q\x8d$4\xc6yi'\x91\x10\xaf\xd9N\ %\xdcFs\x1e\xb6s\x10!\x9b\x19N\xc2\xf1t\xbd\ \xf4B!\x86\xf3\x9aVSz\x9a$\x99\x01\x05r\xc9\ i3\xc9\xe3\x8a\xb1\x04\xa2\xc9\x98\x8c\x87\x07\x97\xac\x98\ \x051\x88$\xf2\x9c\x05d\x7f~\x0b$\xf0j\xc0W\ I\xf2%=L\xd8D\xae #\xa9\x5cx{\xb1\xd5\ \xe4\x85D+A\xd1f\xb5a1\x9d\xcc\xd2\xb5l\x0d\xf5\x8dZ\x5cY\ \xfb\x05\xcd\x81R\xaf\xe6\x84c\x94\x94\x08@+\xa8\x10\ \x04C[\xce\xdfJ>\x8d\xe1\x93\xf2\xac\x0d\x8d\x80l\ \x17g\xf1\x1b\x1cA\x90.-\xc0\xcb\x11\x17\xd1u\x1c\ \x1dR\xf0\x00\xc7|\x075\xce\xc6\x8d(7?\xe8\x8a\ \xc0\xd8\xd57hSc\x0a\xe2\x81\xbaL\xde\x15\xe00\ \x1c\x13\x02\xd6\x1ax/\xa5\x86\xe0\x9b\x99\xcb\xc2\xa6\xa8\ H\x0c\xea\xc5Z]XM\xea\x22\x5c\x90a\xc3s\x1b\ \xcc8\x84\x86|\x01\xb4\x8a\xa4Qh\xf7k\x9a\x98!\ \xc6l\x1e\x09\x8e\x81!\x03*\xda%\x1850\xc0j\ h6b\x14\x05\xdf.\x05\xde4\xfc *\xd9\xf2I\ \x82\x82\xb3\xe3r\xd2\x0a\x01\xa5\xbe\xcc\xa8L'\x12\x10\ \x06\x91^C\x03 \xad\x86bT\xc9r\xc1\xf0\xae\x82\ V\xa7\x15\x13\x0b\xa0\x0d\x8b\x8a\xee\xc9\x13\x8d\xb3G\x83\ \xf8\x12L`\x04 aX2\x02\xc8\x02\xac\xa0\x9e$\ \x9a\xbb\xa9\xbe\xf7$\xeb]\x14]\ \x86\x03J\x02\x97I\xcfi2\x8e\x9eZ!\x1aj\x22\ \xa3\xe1\x87,BD\x04\xbe\x85\xe7\xb0\xd63N\xa0\xc8\ \xa7uP\xa9\x04a\x0d\xa8\x0e= \xa6\x13\xd8C/\ \x0c\x1c\xad\xe21\x07\xaf&Jm\xd0P\xfe<\xe0;\ \xe8\xfa)a\x1e^\x1f\x11}\x03\x07\x1a\x06V\x90\xa0\ W\xe1\x13\xa5WN\x05\xd2%\xe2\x08\x83\xd0\xf2\xa8\xb0\ Y\x85#\x16\x15\xbe\xbc:\x1b\xa7\xd4,\xa2JHF\ \xadr@\x9bd\xc3\xc5\x22W\x8a\x13k\x04\x1d\x88\x9b\ \xd1\x1a%\x19\x22VQK\x86\x80\xb1\xe8\xa15d)\ @3\x05:H\x86\x05\xf1h,(\x98\xc0\x8a:G\ \x9a#J\xd2\x06\x0eW\x10\xd8l\xe4t'>\xcf\x9a\ \xe0\x16@PK\x93\xb0\x98\x1d[\xdc\xae\xf9\x1eE$\ \x0f\xd1\x12\xf2\xc32Q\x85*5\xe3\xb4\xb9bp\xd6\ ,\xd3\xa2\x11\xb8\x05\xe7V\xc4\x1f\x8e\x88{\xf2\xf9\xa8\ F\x8f\x1fgw\xbe\xa6\x9dk\x0bK\x0b;N\xeaM\ \xec\xdd \xbaSCL\xe8E\xa4\x89\x0d\x06\x00\xa3<\ \x19M\x9b\xc9\xcd\x87c[$\xd4G2\x85\xc3\x9e\x05\ Z\x1c~\xb8g\x80\x03\xfb\x12\x98\xb9S@\x09t\x0a\ rw\xe4\x81q\x8f\x98\x18T\x03\xaaI\x894T\x8b\ -\x89\x9d\xad\xa1%\xddXx\xc5\xa9Y\x97\x9a\xd6\xd0\ \xcb*\x97?\xa8\x9dX!\xb0\x15\xe6r\xc5\xc2r[\ _\xd0\xdc\x0d\xf9\xed\xd2\xec/d\xd2%\xca\xad\xee!\ \xe3\xaap\x1d\xf5\x9a\xe3\x9c\x83\xa2JG\xd5\x8c\xedr\ 3{'\xb8G+O\xacjk\x85\xa0o\xa3\xad\x08\ \x02\xb2\xafWFU\xbf3\x82\xa7U\x17\xa42\xce\xd5\ \x00u\x1b\x03\xd4\xb0\x82\xba\x0e\x002q\x80\x17\x19\xd7\ \x16'\xa8\xb1\xb3\x92\x11bS\x0b\xda\x05u\x80\x1a\xbc\ \xbd\x88\x7f\xce\xd9\xc1*X\x0a\xebZFD\x1fZ\xac\ \xffm\xba\x00\x09#\xe4\x9bXKh\xcd\x8c\x9aVU\ U\xf2\xd6\x9aJ\xda\x96\x94$j\xe6p$\x88\xc11\ @\xde\xc3\x93\xf5F\x81\x98V\xf4\x8aE\xc2;b\x1a\ \x1c\xda\xaf\xa3\xa0^\xa3D\xa3\xf9\x8d2o\xce\xd6\xb2\ b\x03S\xf0\x94;`/}\xce\xc0^\xb3U\xa8\x99\ X\x1d\xb2\x08Y\xd0\x84\xc4\xf4p\x05\xbc\xe5\x08\x89A\ 6\x91\x5c]\x1c\xc0E\xe6\x16\xb0\xe1A\x0b[4H\ \x08\xe0)YP\xd1I\xe4%1\xff\x0b\xc3T\x0e9\ g\xd6\x83\x22\xdb\x93\x86\xda\xc5\xe6HDgY\xb4\xa6\ S&V+B\xd7\x976\x14q=\x11\xd6:|\xf3\ \x955\xcc\x97\x18\x02f\x15\x10\xec\x8a\xca\x14\xb9\xf4r\ \xc9\x01\x89\xc1\xb1Y\x1dF\xf5Z\xbd\x02o\x81~\x87\ \x94T\xb1\xa4\x8aM\xcb\x08D\xfc\x90\x09W\x07\x91\xdb\ \xdc^\x99]a\xcd\xa7\xe8\xa3J\xfc\xc0s$^0\ \xe3\x81c\xf3H\xb1\x226o8U\x88\xb4\xcb\x86E\ \x05+F\xc6\xe5\xd0\xc2D\xb6M\xb3h\xaa\x22\xf8.\ \xc8}-?\x91I\xdc\xb1\xf2e\x8d\xaf\x06\x9c\xe6\xc1\ \xc1\xd4\x5cl\xc2F\x1d\xdb}\x8aHh\xf6\xb7W+\ \xecN\xca+\xb8\xd6H\x5c\xad\xef\x18\xd9\x021\x0eC\ .\x0b\x93%\x16z\x92\xd0\xdc\xa0\xc9he<\x8e^\ \xa3\xe5\x02\xf2R\x81\xfb+\xa0\xdfz\xe1L\x17\xb7B\ \x04\xc6ZY$hb0\xb1\x17!\xa9ve\xb72\ \xc36\xa5\xec\xa4\x88\x89*\x95{\x82\x91\x0eB\x98\xaa\ y\xe6\xec\xc8\x18\xd4vcy\xd0\xa2c\x1a\xf4\x0cY\ \xd8\xb6h6I\x1d\xa0\xda\xf2\x9d2!\x86\x15Z\xf1\ \xea\xaa\x22\x11\xd5\x09\xe6J\x02\xbe\x1eQ\xe6\x00X\x83\ Q{\x0c6\x80~\x08\xb2bg\x89\xb6/k\x9aS\ \xc8Z\xcd~D\xfb\x9a\xf4\xe4d\xe2`\xa3\xf0\x1b\xeb\ \x93\x0a\xa0\xb2k\xeeB\x1c\xa3D_\x9d\x15\xbaN\x92\ c\x02\xb4\xd1\x0fUmMX^J\xf6\x06\xbe\x08\xe3\ \x82\xd9\x9f\xb3H\x05J\x02\x07\xe8\xb8\x12\x15R\xc9\xaa\ \xd9\xb2\xa3\xe4DQ\xc3\xb7\xc9D\xf0\x99O\x1d!\xbe\ $\xb9c8\x18\x88~|Q\xe4\xa1\x17\xc5\x9d\x19\x13\ \xcc\x9ev`\x1b\xa1\x86\xf6\x12\xad]\x07\x09\x5c\x8dR\ \x9c\xa6!H\x11N\x1e\xdd\x0dF\xfe/\x9fo\x12\xd3\ \xc8\xa8{F\xb7\xa0S3\x17\xa4\x08\x0e\x80\x182\x83\ \xbe\xa1\xaf,\xc88\xe0\x1d\xb4\xb3A\x15\x0a@\xe8\x16\ \xc7#\x08\x08\xc4!\xf0\xed\x0d{<\xa3$n\xc9&\ \x88\xdc\x0e\x9377#k\x10\x90\x06K\x0c\xd9GE\ \xa5\xcb\xba\xf9E\x8d\x95*\xf1\x87\x96\xff\xd7P\x87\xd4\ \x8ai\xf5\xce\xdc\x8eJ\xd3ZQa\x7f\xa2\x5c|\x1e\ \xa5\xeap\x93\x15W\xca5F\x85\x9e\xc4\x0aX\x89\xa9\ ^J\x13\xc1%@\x8f\x15)\x01l\x04\xc2\xd0?@\ \xe2\xc4\xbf\x93P\x16\x97HI\xeca'\xdd^$\x9d\ \xa29y+\x1b\xac\x0av\xc3z\x15\xefj\xaa\xad\xa9\ \xa5\xd2\x0a)Z\x80\x80\x84]\x92\x1a\x1b'\x95\x16\x15\ \xc58\x08kB\xe1\x09\xc2`\x8eG\xb3n\xb2\xd8\x07\ \xe25\xc1\xfdD\xf2\x86$^/\xf0\xa0V\xa7\xd4P\ \x8bD\xb5\x963\x88\xf4\x05\x98\x1d^\xb7\x05n\x1cF\ (\xb5\x15C5\xdce\x92\x5c\xa2 4\xd4\x0fu\x02\ f\xeb\xaf-{\x97^\x00\xd5\x1c\xb1\xc0Ms\x82X\ j\x119\xd9\xe1\xb5:C\xb7\xa7\x85cZm$R\ u\x9b\xa4\xa9M\x0e*\x98\xb9\xa8\x80AE\xae\x0a\xb4\ \xb3\x15F\xc8\x85&\xf2\x0cI\x0d\x89\x11X\x89Bj\ \xc4\x80%+\x5c\x0eRT\xa2b%\xc91\xa7\x9a\xb4\ \x8e\x0c\xd2$r\x22\x87\xed{#h\x08\xd5Z\x0d\x18\ N\xac\x5c[\x06V\x81\xf8\x1a\x19\xd7X%\x93\x8dD\ \x225\xdd\xd8<<\x99\x93`@\x9d\xe6g\xad\x84a\ \xa4FF3\x8a4Q5$5Sb\x07\x8d&\xb5\ \xfa\x0a\x9a\xe7\x90\xa4\x06\xca\xaa\x22Re\xa8.\x05\x0e\ (\x22\xd7\x92t\x00\xab\xcc\xc2\xf0a\xc9[\x0c\x5c\xd1\ d\xb5\xe3\xa0\xe4\x7f\x075\xf4%\x9f\x0b\xb0@\x12t\ \x92c\xb8@\x22\xd2\x05\xceAz\xdf&d\xec\xcd\xa8\ \x01\x07\x84\xfa\xd1\x84j\x8a\x08\x16\x1b\xeeD]\x18#\ \x09K\x1a\xd6\x14\xdd\x17\xc4\xdc\xae\x90P\x9c\xfav<\ \x94\xa2G\x937(\x0f\x0b\xc7\x09}\x15\x95E\xdd\ \xf6\x92\xb8=1c\xe1\x18\x06NB\x02\x89'\xed\xdf\ A\xcd\xe8\x9f2\x17\xdfF\xd1C\xa8\xd5@_.\x94\ \x0f\x05\xc8\xe8\xc4\xb8>D\x0a\x90\xed5\x1aL\xca^\ \xa2\xc0d\xa5\xe1T'N2r\x8d\x0c\x09\x0b\xce\xf3\ [\xc3g\x92\xb4p^\x94R\x97A8\xa3\xd5\x22\xa8\ +\xdftyl\x05\x7f\x8e\x1du\xfa\xd8r\x8bz\x18\ \x07\x91\xab\x91a_3e\xb4Y;E\xe7s\xb4g\ hog\x8d-\xcd)\x5c1\xe1Ib9\xb6a\x00\ \xeaH\xa4P\xbc\xe4\x96\x13\xf6\x84k\xe7\xda\x17\x0c'\ \xef\xf3\xb6\xc2\xd3+\x1e\xd2\xb2\x88kqN\xdc\x05W\ \x1e\xccf\xa5\x03\x13\xc0,.r\x03\xa8\x22\xcd-\xe7\ \xaa\x9ad\x10\xecv\x92\xa6\x14\x84M\x1c%]\xc4\x22\ \xb9E\x095\x96\xc9\xb8\x12\xd8\xceQ\xab\x86l\x8b\x16\ \x870\x9b\x12\x1a\xfc\x09\x22Om\x8b+\xb3\x85\x9f\xb4\ v\x5c~\x0e+\xef\xb6\xc9E\x91\x87e\xfbFsk\ \xca\xa0\x98\x05\xf5\xd5\x14\xf6\xa5\xf5\x06\x8e1\x86Z\xef\ Z\xc5\x8e\xd2 D\xc3\x85Y\xd4\xb6\x88\x07[G\xad\ O\xcb\xa5\xbf\xe2\xe2m\xe6n\xa9\x22\xf2\x83Vw\xab\ -\xe75T\xe4\x84L\xd4\x0cU{I\xe3]\xc0\xf2\ \x92\x1b\x8a9\xa0\xf5\x1b\x84~\x80]O\x0f\x1d\xc1\xab\ \x22EQ\x8d\x0a\x87\x03f\x8b\x95e\xd4\xa4i\xe8.\ 8\xb1(\xcaT\xf30jW\xb5Xg\x04\xf66\xc9\ h\xa4\x89q\xba\xb5\x8faL(\x07\x02\xb4B\xe3\x16\ .+-\xa2.\xc9\x8dV\x97\x18\xd1<\x8d\x82\xc1\xca\ \xf0\x83\x04=Z\xdc\xa4Q\x9d\x0b\x1a\xf1\xab\xc8\xab#\ 7(\xc16\x94\x22\x03\xe6F[\x08\x8d\xcb.\x91\x86\ \x19Bn\xde!l\xa7\x0d\x032\xd8\x9ec\xbd\xe8F\ \x8e\xd0\x8b9\xe3\xd0\xfe@\x99\xdd\xe3f\x89\x10\x0a\x16\ \x16}\x02\xfc\xfc\x8a\x0b\x0e5\x1d\xda\xaa\xc3\xd5\x8b\xb2\ \xb6U\x8b\x8f1\xe9M\x08\x99\xc9\x83\xa8Zh!~\ I\x07\x81Y\x94V\x12\xd2<\xe4\xda\x90\xf9c\xe4\ \x89\x0b\x8bJ\x8e\xa0\xd5u\x90\xda\xb5\xc0tE#R\ \x0b\xa9\xd3\x82\xeeO\xb0\x9e\xc4\xf1\xd3Tat|\xfe\ \x0c\xb4\x93g\xbd:i\x1c\x09'P\xe4\xa6\xcd$L\ \x87Xg\xe4l<\xe8\xc2qy\xadC\xcb\x0b\xc0B\ Q\xe3\xe5\xf8\xd4Q5\xe3bE\xfdGV\x06/,\ zQ\x85\xa5\x18\xed\x82\xa0R\x05\x96\x9d[\x8c8\xd0\ }\xe4\x06\x1dp\xa3\x83E\xfc\x1aiL\x05\xb0\xb1e\ \x9d\xe6\xab-\x9a\x03\x806\xf5o\xac\x13\xb5;\xbb\x07\ \xb1iC\x98$C\xd4<\x80U\x98Nj\x89\x80$\ Q3\xb6\x0f\x1b\xf2\xbaJ^\xa7\xe5\x14\x8c\x5cJ\xff\ \x01q\xc8\xbdl\x8b\x5cH\x9d\x1f\xb7\x00\x09\x82\xd3\xf0\ \x0c1b\xc1\xdd\xac./\xd3\xe3\xd3\xbc$\xde\xc0\xc1\ \xb2\xa2.\xbc\x0a\xf7\xed\xe5&\xb5\xfaU\xdbJ5\xa4\ =\x0a_\xb7L\x14\xf74\xf0\x836\xd1\xe0\x84\x97\xa4\ \xcb\xb5\x91\xf1f\x0e\x0az\xc9\x87D\xed\xa4\x10%\xd4\ ;\x97\x0cG\xa9@\x91\xfcN\xeb[\xd1B\x01v\xf7\ \x9a}\xc2 \x813A\xd1 \xf8\xa3\xd2\xbaU\x00q\ \x83V\xc4\x8c\x9c\xfc@\xaa\xcdD\xde\xbdF\xe8\x8e\x8f\ \xc0\x8d@\xb1\xb3\xdd( \x13\x14\xf2W4IA\xe0\ \xd9EM\x99$\xa3\x95\x18Y&\xe4\xf0\x1b\x11\xed\x00\ \x83\xacR\xe4D\x00\xb9\x06\x81-~D'\xd8p\xe4\ \x9c\x0bi\x7fnn\x83\x9e\xe2\x85\x13lI\x84\xbb\xe3\ \x93\x95\x11\x90)\xb0@\x91\xe1\xd7H\x90\x85\xdb\x87\x82\ \x07F\xf7\xda\x09\x15&\x85\x8fv\x17,i*Z\x0b\ \xcd\xc6UfL!\x0em\xf4\x5c.\x11\xb8x\x03G\ \xb7\x05\xb1\x8c\xd1u \xa3A\x0d/\xb9eL\x5c\xd0\ Rj$\xbe\x9c\xfc\xa9Z\xcf-G6\xf3/\x03\xe2\xc4c\ VLT\xeb\xc3TG\x99\xb2\x91\xc9\x8aRf\xfc\xca\ \xa4\xc5\xe2\x9ax\x89\x8cQT\xec\x8a\x17Ps\xe4\xa3\ \xc2T\x8a\x8e\xda`\x03\x01:\xf1h,CrZr\ Q\x93\xf4Q\x11\x8cB\x9fv\xe7\x02R\xd5\x89:\xb7\ \xd2\xd0J\xe3\xfaZJ\x05=\x8azE\x8f*=\xcb\ \xcd'\x0c\xf9f\x1cx\x04\xd8\x0d\xe7\x8fE\x9a\x1a\xc4\ \x80g&\x0f0\xe3\xd0S\x1d\x86|I\xc8\xae\x92n\ \xe6\x80\xe2TB\xc5\xe1Lh9\xea\xc0\xdd\x5c\xd6L\ \x1e1\xcc\x18[\x90\x0e\x86\x97\xcc\xe79q]\x22\xba\ i\xa0}K\xe2J0R\xe8l4\xe6\xb0=r\x8d\ u6Q\x9f\xe7\x08\xe2\xe4\x91bC\x1c \xc1}\x0e\ 4$Drt\x5cO\xc8\x07\xc5z\xc4\x959\xbbh\ \x15R\x1cF\xad\x15\xe1\xe3\x0b\xe6+v\x948\xd8,\ \xd5l\xc4oy\x07\xfb\x89:\xa52w\x9ch]\xc7\ \xb4\xc1\x87\x16\xac2\x22\xb44\x9c\x98\x15\x13\xb4\xa1\xc6\ \xacZ\xa0-\x1a\x92Q\xff\x86\xb8k5\x9c_\xb5\xdb\ \xccA\x98\xf3\xb3J-\x004\x1bA\xa7\x15u\xca\xb4\ \xe1\x96^\xc2\xf2S\x91\x22;\xd9\xf0\xa7bR\xc2O\ \x08\x9c\x0fA\xc8\x9fv\x95lgHG\x92\xaf\xb4\xe2\ Z\x22\xa6Y\x0f\xb8veP\x84\xa0\x17P\xb4^\xa9\ \x06a\xcfU\xb3)\xa2\x0f\x9a\xb7\xa3\x08\xc5:V\x05\ 4\xf3\xe7\x0d\xdd\xecZYT\x1e$\x8eo\xe7Z\xa3\ \xee\x0a\x8f\xe2\xd4\xe9\x90/\x9b\xce\x9a\x80+*}\xf8\ \xc2P8H+q\x0a\xc0\x8cK@\x04K\xfd\x09_\ \xe1#:n`'\xe9\xbf+\x1e\xd61z\xd62J\ \xc5r\x5c'\xe2\xc8=\x0eOq\xf1&\xbeV\xe2\xc0\ MX\x9c\xa6\x8d\x9c\x96\x1f\xa0\xc0KC\xc1-\x82\xd2\ D\xa6eA\xa7g\x9f\xb1i\x07\xfb$'F\xe7$\ \xe1r4\xa5\x06\xba\x22rQ\x1c\xe3\xda\xd0n\xdd#\ \xe3*\xd5\xab8{0\x1a\xf1\x8e\xb8n\x14Q%\x84\ \x1f%\xa7\x1f\xb4d%\xb7\xf4y\xeb\xc3\x06q\x9f\xe7\ &0,\x88\x10\x14\x93K\xed\xc1\xc6@\xc9(P^\ \xab%N3\xce\xa0\xb5\xdaAt\xc90\x92\x98\xbc\xfe\ \xe4\x0bw\xb0\xcaQ\xbc\x13\x07g\xa5\xb4\xf6>E\x82\ u\x0e\xbe\xa7\x9a>\x0a@\xeb\xae\xd5\x99\x10\xe1\xdc2\ *\x1a\x5c\x99\xa1s\xad\x8a\xc5\xb0\xb6\x99k\xbd\x1aT\ \xacu\xb6\x93\xa1\xee\x86\xb9\x19Q3)S\x17QH\ \xdaw\x0f\x06\x9f6\x91\xe1\xae\x08u\xf67\x9a\xb2\xa3\ =i\xa8\xc1<6\xd8[C\xffOs!*T\x10\ \x02\xd8\x5cD\x0d\xb5F\xe6 \xd6\x80\xab\xfc\xc5U+\ -`\xce'\xa5B\xd2s'LTu\xb3\xdf\x8f\xf8\ \x12\xf2\x16\xac\xd2q\xdc\x16:6rS<\xc8\xbc\x11\ \x1e\x03\xccV\xcf'\xc2\xc0%H\x82\x8bL|*+\ Z'e\x8eJ\xa2l\x98QPh\xa05\x22v\xc9\ \x91\x01h\x18\xb1\x08\xd5\xd0T\xf3PB<\x06\x91O\ \x0c\x97\x03ZH8x#\x19g\x8a\xe9\xc5\x9d\xc0\xac\ \x12\xb9\xb6h\xc7\xc3\x85\x1f\x22\xe6\xe91\x02\xb9\xdd\xa8\ aO\x0cc\x05M\x91\xc8f#\x0f\xedU68\x02\ \xd6\x8dbO\xa1\xdffE\x866r'CZ\xeb\xf9\ B~\x1b\xfa\x0c\xce\xd4\x88\x22\xf1\xd0\x80\x82F+\xe1\ I[\x00\x94\x00\xeb\x0f\xbd^\x02/\x8b\xb4Z\xa0\xe1\ q~3\x90[4[\xd4Vp\xbe\x87;W\x03\x89\ \x80>\x9f\xc8\x0c\x07^md\x19\xd11\x13c:t\ \xc8\xa0\xad\x12Pk\xc4A\xb9\xc4rI\xed\x024x\ HX\xd8\x81{W\xa9iZ%:\x99`\x9dcC\ \x13\xd7\xe5C|9\x86h\xc3\xaaC\xd0\x18b\x89a\ \x83i\x14\xf5\xachg\xbclH1t\xe9N\x5c\xe5\ A\xbf\xca0\x05\xf2\xd2\x92\x15\xbb\x16>G\xd0\xf6\x06\ F\xe0t\xc8\x0e\x05\x0d\xe4H*l\x1bJr->\ \x84IFT\x11OV\x00\xadhZ\x1a\xb8\x8a\xc2\x08\ \x148iu\x81\xa2\xe6\xd8i\xe1\xf0\x5cm\xba\x0d\xb8\ \x8c*\xfd\xed[\x87,,\xe0\x16\ yO\xee{A\xfa\x10\x1f\x92>B\xe2\x9c\x9c\x06\x84\ \x93\xf9h\x13\xc3a\x1e\x1c\xa9\x08Q\xc8\x9d\x02\xd1(\ \x14cX4n\x02\xca!pO\xa4\xc8\xa2 q\xa0\ \x83n\x87DA\x03@A\x84\x03\xaaF\xdf*2\x8f\ *ex\x10\xc2\x01\xcd\xff\xd0\x1d\xb8\xb0\xc0\x82\x8cr\ 8*e\xe0\xc0\x10W\xd3\x05\x92\xeb\x06S\x83\x1cD\ 9+K\x07\xa4\x9ea\x88\x1b\xf4\x02\xae\x89\xbb\x1f\xa2\ \x99\x7fd\xa0\x17'\x9a3w3\x8aA\xa3A\x10\x0b\ $\x1f\xb9\x17\x83\x05RI\xfa\x12B\x82\x90R\xe0,\ \x0a\x8a\xd9\x0b.\x8a\xd4\x1dZ>\xd9\x1e\x02PN\x17\ Fv\x96\xeb\x17<#\xceCF\x7f2\xe9<\xac=\ #\x8d\xf4\xf6\xc7N%.\xa7\xe7\x9e\xc5\xe4\xfd\xe0\x0c\ %\xee\xe3\xc3@r,\xe1\xc8\x87\xc4X\x06D4\x00\ \x83\xc2\x91\x14@\xbca\xe4\xdb\xf6R(B\xd27\xb6\ 5j\xe0\xa8ck\x8f\xb4\xb1\xb3\x04\x81&n\x8d\x13\ \xab\xf4\xb2m\xe0Y\xef\xa5oMe\x8c:'\xc0\xdb\ \x8dl\xc9\xcc7\xa2\xe8\x22j\x1bA\xf1\xc9`d@\ \xfa\x8d\xadf;q\xb54=`\xe0\xf3\x96p\xc4Z\ \xe5\x82=\x5c;c\xe4:+\xbe\xb4\x08|\x15}\xd1\ \x02\x84\xa3\xfcN\xf6\xdc\xeae\x8c\x887\x92\x18\xa7e\ B\x83g\x80\x98\xb8_\x0b\xe8h@\xbb2\xbcm\x82\ \xda\x9f\x88QX\xeeC\x0d\xe3\x17\xc0\xbd\xa4\xad\xa1\xd1\ $\x14\xcd\x9e\xb9\xec\x81d6\xc3g\xb9\x83`\xe2+\ d\xc3\xf2\xdc\x06T3\xaa\xca>\xad\xe6\x90{\x9aD\ n\xe6\xc7\xc1]\xaf^\x81\x06{\xb5\xba\x01]K\xc9\ qj\xb0\x19\x0e\x06\xc0\xb9h\x98\x04E,f\x86\xcd\ \xc4\x16\x9e\x95\x85l\xd1Ym]\x81\xfa\x07@\xda\xb5\ \x13\xae\xfa\xd7\xa9\xaf\x84\xaf\x03\xc3\xbf\xbdV\xdak\x89\ \xd0\xdc\x15Y3\xc3h\xd7\xc3\xa5\x0a\x95\x8c_\xc9\xf0\ \x14nn\x82&.\xb0\x97\xd1\xa3\xc7s\xee>H\xef\ \x19\x94(\x0b\xac\x00\xcdx\x00\xac\x96\x04\xacE\x02\x19\ \xf2]\x9a\x1b&i\x8a\xc0\xc7\x97\x02m\xcd5>\xe0\ \x01n\xfdM?\x95\xac4\x9d\xc1M\x88\x93\xc1<\x1d\ ZOT\xa9O\xcb;\x0d\x05\xb9\xbd\x8b\xe7\xd2g\xc7\ \xe1\xab\x94\xa5\xe4\xc6!-\xe2\xb9\xa4\x0e\x11\x03q\x13\ \xb8\x81\x0c\xc7P\xa5\x8b\x9d\x93d\xaf\xe3\xe3\xc1\x91\xbb\ H\xdc\x86<\xe1\x13F\xe0Z\xe0x\xe1\xb5\xa3\x88\x8c\ ;\x88{\xcf\xd0Y\xf4\x22B\x19<\xb4\x97\x13s4\ p\x90\x09\xfd~6\x0c\x19\xe5'\x8d\x0cL0^\x8a\ \xa08\xc7\x22%\x1e\xd2\xd9,\xed^r\x83\xb6\xb8\x85\ F\xf5n\x84*\x1f1\xc0%m\xbfi\xc1\x1d\xb3s\ \xc9\x91\x0c\xd7\xea\x98\xc4\xc5\x9d\xabB[%\x09=\xa3\ \xd5j\x8f\xc8\xb28B\xccKx*\xb1<\x96b\x8a\ \x91\x1b]3N\x91\x033\xad\x81\x9e\x9bg\xae@\xaf\ \xed;\xaa\xa9\xcd\x0c\xc1\x9c\xf3=RW\xb3\xb8d\x99\ T\xb5\xd8$K\x1f\x8f\xf9\xba\xceO=\xffp\x90\xb0\ \xbc\x17\xbfu\xe3\xb2\xa4w\xd4\xeb\xc1\x93X\xd9T\x11\ @\xb95~\xc8\x82\x7f\xeb\xde)\xbeMTT\xb0\xa8\ \xed0\xed\xb4]m\xda\x901\xa7^=\x96\xaa@\xa3\ \xd6L\x9a\xc9[\xd2\x8c\x9c\x90\xf1\x12\x09\xd8\xc4.4\ \x97\xe6@\xf2\x16\xa8\xda\xe2\x87R\xda\xb4\xbdV#\xcc\ 0\xe6T\xeb\xb3\xd4elICqw[x\xcam\ s7A}\xb5\xd6:5\xeb5\x1cP\xe4:\x91\xc0\ \x9b;\x22\xc6Q\x83\xec\x92\xe1\xb7\xa2\xe7%\xc6\xa9\xb1\ \xb2\xe6\xb2\xe6f\x00\x93\x07\x02H\x0e\xa3Z\x07\x163\ \x9c6\x89\xe21\xd5\xd6\x19\xc5\xcfXDeYmT\ \x0b\x7f\xc0\xa1\xd9\x1b<(\xed\xfe\xc3\xa7\x19\xb0\xcd\x11\ \x14\xd5^\xe7\xbe\x22\xdc\xf9\x90\xe1\xde\xaaq\x82\xf4\xdb\ \xc0\x83C\x17{\xa9\xa9\x9e{\xd9j%\xaav\xfc\x90\ \xbd\x80&\xad\xb0=\x18.D\xa4B\xb6\xb0\x18\xe7\xda\ fQ\xadlv \x90\xc2E|\x01\x1c\x17=\x0f\x14\ $\xb6%\xb9[a\xb3\xc2\xd9(\xc4\xb5\x0b\xea\xc9\xa5\ z\x14\xdehD\xccYMk\x89\xa8\x82_\x13T\xa6\ \x91\x03\x03\xd0\x80\x07\x16\x03\x0es \x92\x92\xcay\x80\ \xc4\xb5\xe5P\xd2\xf84\xb0\xec\xd2\x07\xd1\xb4\xce\xe5s\ 8S\x1fR\x98H\xbb\x12k\xbc\x83V\x0c\xb9\x06\x01\ \x0c\xc0`\xd6\x96y\xd2\xc5#\xa2\xcd\x16\x1e4\x01\x80\ &\xbd\xc3\xe0\xe5\x16\xa9|v\x0a\xb3\x01\xa0\x0e&\x18\ c\xd5\x5c\x11\x94\x0d\x97r\xe3\xe0x`\x85'n\xc7\ \x8a\xf3\x1f2\x87\x01\xbd\xd4\xd8\x89\xa7\x89\xa0\x1e\xdb=\ \xdc\x82\x0a\x0d\xac\xb8d\x9c\x1b\xef\xb1\xa1\x07\xff\x9d\xcb\ \x84\xe1\x22\xc3\xab\xd4c\x00\xf0\x9b8u\xbb2\x16\xcc\ \x05\x86\x9c{\xcb\x01\x5c\xf8\x8a|D7\xdb\x5cl:\ \xba\xca\xad\xc4\xd9\xfe\xaa\xeap\x94\x8c\x86aQeY\ \xb4\xe2\xb10@\x1c{\x8e\xae\xda|j\xd2FN\xd8\ &\xaf\xa8h\xe8\x1cV\xe9\xdd\xe0\x1a(\xa4\x81D\x95\ \xe1\xc2\x5c\x09\xc5l\xee\xb65\x95\xadop\xbbV\xeb\ \xc7p\xadf\x1ew\x0at\xed\x1c)\xd7x\xb36\xfe\ \xd7\x98\xb9\x1e\xa3 \xd2\xaeM\xa4a\xa6w.!7\ 5_\xc0#*\xcc]\x867[\x19\x13D\x8e\xd9\xf9\ w\xf4Z\x15\x01G\xbf\x15\xd5^\x15u\xa7\xc9\xb2\x86\ \xd1\xf7c;W\x22\xccAw\xb9\xe2js\xc5\xd6\x8a\ NjR\xbd\x8f\x8e*\x88B\xf0\xea\x12\xael)\xc7\ \xe6\x86\xc3%\x15a\x225K\xb2F\x8a-jK\xe6\ ;\xb8\xbf\xd6ui%\x91\xe25D\x22F\xc3\xc7g\ \xe0p\x90\xcc\xac\x08\xdb\x04T\x0c\xa4*)y4#\ \x83A\xaa\xb8\x06.\x81\xf2l_\x10\xb9\xc6\xccf \ t\x0fT>W\xcd\xb0\xd9\xe0\xb8c\x95\xe5\xe6z\xdc\ 8\xd6K\x0b\x8b4\xf8V\x0c,B\xbc\x85\xeb\xb4n\ \xd9\xb1z\xd1\xe6\x22\x1b-d\x9b/\xe7\xddR\xf4\x80\ \xec\xb0h\xaa\xb6\xdfr\xc5\xfd\xe0,\xa3T\x9d\x91\xae\ `Y\x01\xaf6\xc1\x10j\xf9%Mq\xb2K\xea\x04\ \x12\xc1(\xed\xb9\x9dV\xe0z\xa5\x8d\x16XK\x06\xbd\ \xd6m\xbc\x92\x0d\xab\x8aC\x00\xa4\x9fw\xc8\x19\xfd\x09\ *\x80r\xd0\x8a(\x17+s\xff+\xaez\xf3\xd20\ \x86m\xcd<'\xab4\x00!l&\x85\xfa\xa1\x84yn\ q\xa2}\xa8\x07X\x81\xc1I\xb7\x9b\x08D'}\x8f\ \xe1\x06\x18\x90\xf4\x8eT\xffr\xcc@\x14\x0d7\xe0\x93\ N\xdcYZH\xe3e\x91\xbaS#\xb9>\x90\xbbm\ \xa5\xc9E\xf8\x0e\xd7\x0d\xd0!\x07\xd1H\xd7\x83I\x0a\ \xe8\x84Ku\xef\x1a\x8c\x84[{C7\x09\xd4\x9b\x07\ \xf6l\x9f!\x90\x0d5\xda\xd8\xab)wx\xfcM\x81\ :\xab\xd0\xd2\xda\xd2\x98^\xec\x0e[v\x10\xc9V\x22\ \x19M\x13+\x8e@c\x14^\x02\x102\x92\xdb\xceZ\ \x0a\xad\x94K\xe1\xbd\xa2=]\x14q\xee9<\x85\xc8\ &\xc7Rs\xe6\xee\xae\xa9\x14\xe9J\x1c\x18#\x9f\x19\ L\x85,\x13\x83\xb7\xd0)\x8e\x8f\xc0\xa6a\x18>\x1a\ \xd1M\x96\xc5\x0dza\xd2c\xb3\xdf\x8f\x00d\xe2\xce\ \xa1rl\x11:\xf3\xd3\x000?4#\xa8\x05\xb0\xe8\ \x87\x93\xb8\x80\x80}\x15\x9cFO\xca\x07Y\x1d\xc1d\ \x80\x1a\xd1\x8a\xdbZ\x11\xf0\xe4\x84r\xdf%\xbe\x00\xc7\ !\x02\x9b%m\xcb5),W`m%^RL\ k\xe0\xaeE\xd92r\x96#\x92@\xcd!\xc5\x80\xf6\ )\xb8\x1d\xc0k\x80c\x01\xe8\x06d\x0fN\xa3+\x9c\ \xe5\xf3Xl\xf4\x0a\xb0\xdcb\xbb&\x16wD\xf5t\ ;~\x85\x8b3\x82\x84\x03\x8c\xf4\x19E\xe7#\xb2/\ `\xe1z\x8e\xc7f\x86\xd0\xc2\x8b\xe4_C\x1b\x19\xc0\ F\x10\x97\xd9n\x84\xe5\x962H\x15'I\xa9q`\ \x07\x9c\x9d\xc9;\xaf\xd2\xd1\xc5r\x9b9\x0f\xe0\x01\x9f\ \x19T\x90\xc5\x83\xb0F\xc3\x0d\x1e+\xc9\x11\xd0\x93\x18\ \xc0\xd0\xd69\xf3\x19\x0d\x98\x99\x1a\xa1j;\x22\xd7\x17\ \x19B\x81\xce2\x11\x85R\x1c\xd2\x00\xaf\xf0\xc1\x18\x1c\ \x14\xf0\xda\xbc\x14'-\xb3\xe1P-7\x9b\xb9\x82\xc0\ \xcaV\xbaT\xe5\x9c\xb9\xbd\x18K\x14\xb6=\x91\xda\xab\ \xe2\x97&\x9c\xf7)p;\xef\xc4\xb1M\xad\xc8D`\ Q\x8e}\xa0\xca\xd8B W\x0ag7\xb0\x9e^O\ *\x89\x9c\x19\xa8\x80\xc6q\xe1;\x9a\xfbC\x07\xcdR\ \xd4)\xd8\x0a\xc6/\x8e\xaf\xa8\xca\xdbRK\xc2`R\ \xe5n\xee\x82#p{\x81\xf5\xe0\x8e\xc2E\xff\x93\xf6\ \xe0\xd5\xa6\x0fsy0\x9b\x17\xad\xcaG\x83\x02s\x91\ \x8c\x06&7\xbc\xf0\xed\x8c\x05\xab`1\xc6\x17\xf0q\ ^\xa1\x1d}\x12\x8b\xbc#\x15:\x8akrZ}\xa6\ m\x8d\xbc:y\xcd\x9b\xf0zX\x05[\xf1i\xd84\ @Ck\x12!==\xa6\xd6zS\x9a\x87\xb5c\xc6\ \xda\xb5J\x93\x9652SkZ!\x9e[;\xe6\xa0\ U\x1c\xa9\x8cT\xa4\x06\x97D\x86\xed/'\x1d\x1d\xd0\ \xfe\xd4\xcc\x80\xac'[H\xab{\xaepk\x05GN\ k0B\xe7nib\x8d3\xf6a>\xb7H\x8b\x94\ 8z.\xd0\x03\xdd\xe3\xdc\xb6\xb8]\xa7\x86\xa7\xb3\xad\ \xa0\xbc\xceU\xf3\x9bvNC\xed\xfdp\xdb\xaa\xf44\ }\xa5v\x0f{b\xc0n\xb88C47~k8\ 5%\xadK\x8c\xce\x16jyq-K\xd9\xben(\ \x05m;\xc4_`\xd9-\x0dZ[c\xc4Q\xab\xff\ \xec\xd8\xe0'\xa6\xbb\x90\xb2\xbd:\xe75\xac.PK\ l\xb4#F\xd0pG\xce\xfa@BN\xe0\xc1\xed\xa8\ \xacy\x7f\x22c\xc0\xa4\x87\xc3\xd82\x1cNJ\xb8\xb4\ W\xc7\x5c\xc7/\xf1\x84f\xe1)\x14\xc45\xf4\xa6\x95\ \xbai\xe4\xcf\xb8Q\xc2 \xa7S4\x87\xc6s\xaf\x22\ >\xc9#\x8fAr1^\xa2\x16\x8a\xd0F~\x95\x9c\ \x06\x90R\x81S\x05\x18\x1a9J\xe8\x9dNR\xc6E\ -B,\x1a\xb1\xcbR\xdf\x8a\xfe?\xa3\x02l\x00\xf8\ \x90\xe0\x0c\xf7nmHP/\xbf\xa6@P=R\x03\ \xf5\xf3\x0a\x97f\x84\xf2$\xe5\xbd\xcd\x88\xd5\xda\x0d\xa0\ P8\xf0c\xc5`\x8dCe\x16\xd4\xa6(\x9e\x0b7\ 5\xfa\xc0\x9c\xdb.\xa4\xc9\x83A\x01\x8a\x8c\xa8\x8do\ \xfa\x0b\xae\xf9\xd5\x93e\x98\xba\xe1\xf6iO.\xb5k\ \x10\xd1\x1f\xa4\x91G\x83\x03\x04\xbbs%\xaa\x09\xceX\ \x94\x80e\xe6\xdc\xbf\x1a\x9eQ;c\xa1\xe5%W\x81\ 4J\xd3rf\xbdt\x0dC/\xf0u\xc9\x8d+\xd8\ \xb4u\xc3\x94+L\x19\xa0\xcd\xcc\xf1\xe5\xe0`\xb2\xe3\ \x02\xaa\xd1\xf1z\xc9\xa6\xc0\xe5t\x8c\xec\x89\x05_\xc0\ \x05\x89p \xdc\xb1!m\x99\xb2\x80\x07\xdb\x95D?\ \xda4\xacv\xe1\xd7\xae\xad\xfa\xdc\xe2\xa6@'f\x81\ \xdb(\xac\xa26X\x85,\xbd\xe3\xd8>`\xa2h1\ \xce\xb9\x11\xcb\x91\xfc\xccad\xee\xfd-X\xb6\x80\xe3\ R\xa4N\x8c|\xd1\x8c\xa4\x19|l\x0eG:\xb4u\ D!9\x1f\xe6\x8b\xe6\x85\xb0.I\xea!\xed\x0c\x19\ \xef\x03\x1f\x16\xc3\xd5\xcd\x00h\xa3;\x9d\xb5r\xc6\x0c\ \xcc\x0a\xd4\xc7q\x0f\xbd\xc2\xf6\xb8\xc1)\x1a\xe8\xc3\xa3\ \xadq\x10\x9d\x0e\xdc\xe4Yz'\x92TwE\xcaS\ \xb9\xe5\x22\xcdK\xba\x01\xc6A\x9a\xb3J\xf3\x13)\xf1\ W\xb8\xb2v\x00\xe0s\x03\xb8\xb5\x22p\x11v\xe0\xd3\ '#\xcb\x22(\xd0\xf9T\x08\xb1\xbe\xd1\x83v4\x0d\ y\xa8\x09\xfav\xa5\x99'\xc3\xfeE\x0e\xc0v\x94\xea\ \xe4\x97\xbd\x1cz\x02\xbf\x0a`Y\xcf\xad\xf7\xb8\x974\ \xb6\x9cQA\xdc\xa5\x1b\x9b\xe1\xb9&\xb1H\x00\x0eP\ \xc2\x00\x8b\x88E\ \xdc\x9e\x91\xbf^N\xdc\xc3I<\x9c\x8e\xe0~'\xf3\ \x11~\xadg^m\xf8\xd0\xa0\x11z\x84/\x83\xf89\ \x1a\xae\x8c\xa3\x86\xad\x02\xb7D\xd9d3h\x93\xca$\ Q/\xb1\xe4\xe7\xe3q\xa2\x9a\xe0\x1c\x9eg(\xc46\ \x8c\x9aE\xd2\x93Sg\xa4\xc9\x18D\x136\x18V\x84\ \xf6\xe3A)d\x91\x00\x1d\x1f\x0a\xe9\xe78\xa2@6\ d2\x12e\x10m\xdc\xba\xd3\xc8\xb5\xdb\x1e{\xd2\xce\ \x08\x08\xf3K3p)\x9a\xf8\x9d\x10\xab\xb6\x1d\x90#\ \x1d@P~\xaauN\xdc\x9dF$\x99\x19\xda1x\ ZW\xc3U\xe1p\x0b5\xaf\x1d$$\xa1\xad\x8b\xd9\ \xca\xd5\xb26\xe9\xb4\x0b$\x92V7\xd7\xfe\x8a\xb1\x19\ I\x02\x99\xdab\xbf\xedM\x0b+\xa3T\xdcK0.\ J\xf7\x0a\xd7r\x1cz%\x18:\xb1_$\xf5\xa9\xf1\ \x01\xa5A\xf4+\x0cC\xd2\x90Gd\xdbh~h9\ \xe6\x0a\xe1\x08\x11\x18l\xaa\x09\x9c\xb0\xe4Ac\xb9\xa2\ d\xb8[\x85tn\xb0\xd2\xd0`>.N\xc0\xdf\x00\ \xdex\xae\xa61\xdb|W;\xf9c6\x12\x84NY\ \x0eizZ\xeb\x83\xe6\x0a\x22\x8c$\xf3s\xb2&z\ 5\xa7\x04\x14D(\x90\xc8Ap\x8d\xfa\x1a\xc8\x02\x8d\ F\xea1@z%qk\xfa\xb2K\xad[\xacv\xdc\ kk\xa1M\x99p\xb2L\x90\x07S\xaccjzO\ \xfb\xdd\xa5Q+6\xac\xa4\x9eg\xc1\xaab6&~\ \x84\xb4\xedc\xc3\x0f\xa1\xd7N+\x85\xc0\xb3\x05\x0e/\ L{\x14\x0d\x06F,\xa0\x849H\xc9_\xe4\x92\x01\ \x16\xb0\x89f\x10\xf9\x9c\xdb\x8c\x1d\xd4*@\xc7q\x17\ \xedr\x0eh\x173\x81%\x81\x07\xd0>\x1fxFJ\ \x0cM\xbd\xb8$c\x86\x16u]\xd2\xda\x1b-\x9a\xac\ \xa5\x96RL\x1a4bC\xfe\xbc\x08>ET\xc0\xae\ \xd7\x98_C\xef\xa7\x06\xa1U\xd3Q;49\xd7,\ --\x09\x96f/\xad\xe7\xda\x9c\x9f\xcf\xd2,C\xaa\ }\x9dTy\xcf\xad\x97\x5c\x8b*\xd76\x18\xc7\x22F\ \xb5\xab\xc5\x9c(\xcd\xa8Vq!\x10\xf3\xa4\x9d\xb5\xb4\ \xdd\xb5\xf4M\xa9\x1c\xa4g\xaa\xd0\xa6\xe1\xda2R\xac\ \xc3+&t\x1e%\xc8.K\xdf\xe3v\xc8\x9d|!\ \xb6\xd0\x85\xdahRA\xa2\x172\x10\x08U\x9anK\ jA'\xb1\xd1\x83\xa2L\x8b\xeeiS\x07\xe9\xcc\xdf\ *_\xf5p\x9e2\x9bh\xae\xbdJ\x86\xb1\x99\x1c\x81\ \xf2\xb5i\xa4IZTL\x0d\x98\x18\x06\xd0\x17\xfa9\ #\xb5\x0cS\xcf\xf3\xb1\xc1h\xd3\x01\xdc:\x87\x17Z\ b\x98\xbe\x86\xea\x15\xda]zz#yc\xb6\x86\xb9\ \xb8\x09\x82\x96A\x0f\xdc\x0f\x8f\xaf=bP\xf4\x8a;\ \x14\x22\xe9\x87\x8aR\xc3\xc9O\xbe\xe4\xaa9n\xf43\ \x1b\xef\x10\xba\x1cwn\x85\xc3{o\xb0\xa9%\x9d\xf8\ \xa4\x9a;\x90\x1c\x058i\x935\x06\x81\xd0%]c\ l\xf8\x83\xa3\x94Lc\xb9\x8c\xe6\xfe\xd3|\xaaU\xe6\ \x8e\xf9\x5c\x8b!\x09am\xde\x16\xe6ZK\xf5v\x8a\ 4\x89\xdfj\xf1\xf9\xfcV9\x90\xe8n\xd0\x96{-\ 4\xd9N(\xd5\x01\xae\xb8R\x83;\x9d\x08~\xdfo\ K\x92\xe6\xc8\x10\xf1o\x10x\xba\x97`\x90\xcd\x5c9\ \x1c\xf9\x90\x99\xd6T\xcc\xe9\x01I@\x01\xb7\xd4\x97\x1c\ o\xc6\x1e\xae\xb6\xb1\x95\x10\x1b\x03\x88\xb5\xbf\xb1\x82\x13\ \xa4\x91\x9ck\xc7T\x00\x7f\x14#\xf7\xe0\xc6\x99vh\ B\x10d8t\x18\xc8\x82\xf0\x9a\xcd}\x8bu\xb0\xa5\ u;\xe3\x01\xd4a\xd0\xf1\x22{(\xc2C\xfc#\x0c\ \x95m\xbf\x99\xb4(\x1b}\x97\x8b\x94\x16\xea\x99kZ\ 7\xacN\x0f\xfaC\x22R\x9e\xb9AVMx\x8e\x89\ k\x91A\x5cL[Y\x03\xd5d\x15\xa1+iE\x90\ \xc5{\x8e]\x8d\xad\xef`\x8b&\x17\xad\xa2\xb1\xdb\xae\ \xf8\xdc\xc1\x8c\x03\xb1\xd8\x05\xe9\xce\x0a\xb0\x1d\x07c\x1d\ \xc2?\x908\xa5\x05V\x15\xe5\x04\xc4\xc3\xa8\xb5X8\ \x99\x06\xc7YH\x9a\x06\xc7\xdb\x04\xb40\x93\xb2\x01\x12\ \xd8\xec\x7f8/\xc1\xb7\xc8\x9d\xce8-\xc6'\x89Z\ >\xb0+q\x1c\xcb\xb0\x1dZ\xd9\xe6\x85O\x9c\xf9\x04\ *\x1a\x96\xc3\xfb\x5caEj*q\xfd\x95\xa4\x86\x5c\ \xe5\xc2E& \xf2\xae\x81M0\x82!\xc1\xd1\x12 \ f\xf6A\xd9\xdcv\x00\xb8\x8b\xa3ke#\xb9\x07\xf2\ \x14\x89\x7f\xa5tj\xc0\xc9\x1eF\xce\x81%\xc5@\x0c\ \x09\xc3Q\xce\xc2\x9c\x0c\xc2\xbah\xbc\x10\x83k\xf2\x06\ k\x97\xd1\x8c\xa9ps\x8b\x880dR\x7f\x1e\x08\x0c\ U\x84\x93\x1c\xf4\x88\xb0\x117\xde\xf09I\xf7\xfb,\ g\xcf\x92\xe70\xe3C\xda1\xb1\x22k\xd0C\x931\ \x0f\xdc\xc7\x22\x83\x0b\xe4\xa4\ :\x1fg\xa4t\xa7\xc9\xa6\x81\xab\xab\xd5O5\x0aK\ v\x92\x17\x90\xe6\x88r\x94\x19\xb7\x81\x95\xb2\xa2\xb8=\ \xd5Ai\x93+\x0ca\x97e\xa9\xcb\x04\x5cE\xb1\x87\ 64\xbb2s\x7fG\xf1?}\x9ca\xc0\x10T\xad\ \xbbM\x0bT\xc8q\x99}k%\xc4\x9c\xc9]\x1a%\ \xdb\xe2\x01\xb8\xcer\xf81Z\xe8\x86v:\xafb\x5c\ \x92\x17O\x07g9\xd9:\xe4\x00\x96\x10\x08\x8eO\xdc\ \xc6N\x15\xb8\x8e^\x8d\xaa\xc8V\xae\xb5\x91\xd6\x9a\xf3\ \xe56\xe5\x964\xfd\xae\xb1\x16\x86\x9a)T\xa1\xb6s\ \xda\xd26\xd7\x17\xb5\x04\xb2\xb6\xe0Z;\xa6U\x00>\ r\xder\xd2\x9c\xa0\x1f\xb7\xa7\x80\xfb\xddkN/p\ ]\x10P\xb2\x1c\xbb/|0Y\x02f\x142\xbe\x95\ \xf64p J\x0c\xa3\x82\xb2\xb9\xf8\x12\x90&\x98\xe2\ \x13\xcb\x5c\xad\x87\x13Y\xbd\xa9\xbe\x1dp\xc9\xad\xce!\ wZ\x07e9\xa0\x8d\x8b\xa5\x13Lg\x17\x15\xa1\x0a\ eaP\xb8\x854\x99\x15_Ca\xd7R\xb6V8\ \xac.\xd1M\x9d\x96\x16\xe1\x98\x86\x11\xe5\x83s\xc4\x95\ n\xde\xe1\xdc+\xbb9D\x82\x04B\x06=H\xb6\xc1\ s#I\x9cK\x03#\x18G\x7f\x02\xa2O\xb6\x9e\x00\ I\xe1\x80\xf0\x91\xa7\xa5rU\xe9\x15\x07\x1b8\x0d\xcf\ \xbf\xea\x22K\x12\xe6e\xe4\xc4\x00\xf4\xf7\x9c\xd9\xd3\xc3\ \x9fH\xec0\xce\xdb\x032]C\x94\xfe3\x83`\xad\ 7\x0a\x08\x84\xc6E\xe7Z\xcb@=\xd4\x0b\xb0\xdd\x80\ \xda\x03\x98;\xae\xf0\x9cc\xa6-X\ m$\xa7d4Qg[\xef\xd89S\x97\xb4\xbdn\ \xd6\x83c\x94q\xe4\x08\x82\xd9&h\xe6\x8c\xe3\xe6u\ \xda\x005Hr[STU\xc51\x1b\x0dNZ\xac\ F\xad\xfe\x96\xfb\xa5\xee\x82\xfc\xd1h\x9b\xe7\xa2-\xba\ \xd5\xebi\x95\x5c(J.#C\x04\xac@\xc8\xd0I\ \x00\xce\xba\xe5\x94+\xfa,\xe1\x9b\xb6\xd5\xb4\xf0\xc9Q\ \x08\xa1xDtj\x12\xf0Ae\xbb?$\xc6\x1ep\ \x1d\x1e\xd2C\x1c\xd9\xb0Rs\x86+\x98\x8d\xd2\x96\xb8\ e\x8a\xcb|\x86\x90\x1e\xab0\xa2\xf8\xa4Yf\x1c\xce\ 33\x98\x99\xaf\xe36\xdcmCk~\xabM\x1a\xb5\ \x12\xaa\x9d\xcb\x11YKXu\xfe% l\x87\xb9\xf5\ \x9d\xd2T\x90\x0e\x1a\xa2\x22d,nt\xa5%\xf3\xda\ R\x22\xcf\xb6\xbb\xd7`\xb6k\xfePk\x13\xd6\xeaL\ \x0b+}L\x17\x07\x96\xa3\x97\x8a\x1c\xb5N&7\x8e\ \xfdS1\xaaV2\x07K\xd0\x07W\x9e\x8a;\xc0\xc5\ \x99V\xb8\xf3\x00\xce\x17\xcc\xd2UR{Y\x0f\xb9\x15\ [j\xf9#\x0a'\xc4\x80\x93\xb8\xabF\x12\xca\x5c\x91\ \x81O\xf84gN\x0e\x013\xe2\x88\x11C\xe4eF\ B.4\xe3p\x92\xce\x968\xac#\xca\xe1bZ-\ \xa6\x19qi\x9c\x15y\xf1[`\x1b-=\xa4\xbc\xaa\ \x95\x8e9x\xcc\xed\xec -\xd2\xd1\xb6\x90\xea\xdcI\ G<>\x14\x93\xcf\xa6\xa0q\x1d*\x18@\xc2j\xd0\ z>\x10\xb9\x9dC\x8a\xb2\xc2\xe8\xa6\xf9\xac\x84<\xfb\ \xf1\x82r\xf3-\xc6\x9f$\xf6\x0e\xad-x\x09\x06\x0c\ \xc9Y6ck\x9a\xd4\x84\x86v5\x84\x02\x86 \x94\ \xf30\xa4\xce\xab\x9dg'Kr7\xb4\x16\x8d\xca\x9f\ 09\xe2\xdc\x8b\x92\xcf\xe0\xe5t;\xb2\xe8|\x94-\ z\xec;\xad\xc2\xaa\x9c\xf3\xcd\xa6\x05\x0b\xdb\xd9\xa1l\ \x0eH\x87#\xcekg#\xed\xd6\x00G\x80r,z\ \x82D;\xf3<\xc9\xd1\xbd\xda\x92EN\xdb@Rc\ FKi~\x8aE\x87b\xf0\xe72\xcf4g\x1f\x14\ \xba\x5c\x18\xd4\x8e\xf6i\x9c\x0bA\x17\xcf\x02W\xc0q\ aniu\xf5\x1a2\xe4\x22\x93\xa8\x80\xfc\xae\xb9\x8c\ \xe0\x9f\x9b\x1b.MM\xedh[K\xf4\xb9\xc9b\x13\ \xac\x1eG\x7fp\x0e$g\xf1\xcer\xe1p\xbagX\ \xa2\xb6\xf9\xb6\xb5=L\xe5\xe3\xf08\xa8\xa2\x9dO\xfc\ \xfcR\x8a\x83\xad&\x98\x9c\xa6\xfb\x1b\x86\xa2\xe5\xebJ\ \xebF\xecDU\xb5\xaa\xaeV\xf7 w\xf1\x01\xe5I\ \x1a\x1f00R\xdc\x84\xd6\x9dU\xc4\ =\xdc\xff\xe5f\xf3\xe3\xed\xf5\xd3wo\x0c,^\xfa\ \xf3jx\xfd\xe7\xbdo}\xf5\xfa\xdb\xe5\x9b{o-\ \xde\xd8\xb9\xec.\xe6\x97\xfa\x82\xff\xf9\xea\xf5\xe3\x0f\xf4\ \xcf\xff\x0f\xa6\xdf\x90\xfa\ \x00\x00\x0a>\ \x00\ \x002\xdex\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x04\x15\xa9\xbd\x92K\x1d;\x07\xc5\x09N\x11 \ E\x8a&A\xdb'\x83&\x972k\x8a\x14\x96\x94%\ \xe5\xd7wv\xc5\xabL\xd9\x92\xac\xa8ik\xc7\x91v\ \xf6\xfe\xcd\xec\xdcv\xaf\x7f]\xcfS\xebQ\xaa\x22\xc9\ \xb3\x9b\x11v\xd0\xc8\x92Y\x98GI6\xbb\x19}\xfb\ \xfa\xbb-FVQ\x06Y\x14\xa4y&oFY>\ \xfa\xf5\xfd\xd5\xf5\x1fl\xdb\xfaM\xc9\xa0\x94\x91\xb5J\ \xca{\xebc\xf6P\x84\xc1BZo\xef\xcbr1\x9d\ LV\xab\x95\x93TD'W\xb3\xc9;\xcb\xb6\xdf_\ ]]\x17\x8f\xb3+\xcb\x82^Qy\x7f3r\xd9H\ \x97\xeee2\xbb/\x9bb\x12\xdd\x8c\xa0\x1dE\x82\x9b\ rg\x81x\xdb\xa0\x1ay\xda\xadq\x88\xf5\x16\x05\x08\ \x851\xa7\xd4\x1f[\x04\x11b#\xf8\xc7\xde\x99N\x05\ lk\x01\x7f\xd3(\x0f\xb3`\x0e\xbb\x09\xc8\xe2\xf6\xaf\ y\x92\x95\x9f\xb3OI&\x7f\xcb\xb3\xa2T\x01\x94\x1d\ \x98\xdd\xf4\x01x\xb2bZOw3\xda\xb7;=^\ \xb1\x08BYLjz\xa7\x7f=s\xd3\xbf&8E\ \xbeT\xa1\x8ca\x08\xe9d\xb2\x9c|\xf8\xfa\xa1\xa9\xb4\ \x91\x13\x95Qg\x98u\x0ac\xf7\xd6\xb0\xa2fv\xec\ \xfb\xfe\xc4\xd4\xb6\xad\x87\xda\x11\x84\xd0\xa4\xbf5(\x1d\ \xd8RE\xf1\xde\xb9\x11\x99\x00\xd6\xd0\xc2.6Y\x19\ \xac\xed\xacx\xd3\xe9\x1a\x86M\xcfPKM\xf2(\xc3\ |>\x07\xb8\xb7\xe0\xf5\x1aGm\xe3\xc5R\xa5\xa6E\ \x14Nd*\xe72+\x8b\x09pz2z\x0f\xed\xaf\ #\x19\x17\xba\xdfV`t\x09$\xc63uP\x0bp\ \xc8@\xfdY\x05Q\x02\xfd\xb6\xed\xb6-\xfb5Tx\ \xb8\xea\x03\xbd\x8a2_\xd4mAd\xcaM\x0a\x5c\xd7\ D;\xcc\xd3\x5cM\xdf\x10\x80&\x8e\x7f1\xa4\x1c8\ \x9e\x94\x9b)\xfee\xd4\xf6\xc9\xe3\xb8\x90 \xcb\xa8C\ 3\x02\x0d=`.:\xb2&\x87\xcf\x16\xc7q\x18\x87\ \x07\xcc\x86\x87g\xe3\xcdl\xd7\x93\xfe\xb6\x8fF\xc9\xa5\ G\xa0\x14\xc7 @\xe8d\x94\x5c~$J\xbe\x0c\xc4\ \xc9(\xb9\xdeK(\xcd\x03\xf5 U\x83N\xad}\xa0\ {\xf8\xa0\xc7\xf9\x93R\xf9\x8a|\x92Y\xd4L\x90+\ \xdd\x1ft\xcc\xb2\xcc\x1b\xa2\x92\xf1?\xbb{\x86\xf2?\ \xba\xe5=cU[\xceA\xdb\xc5i\xbe\x9a>&E\ r\x97\xca\x96\x1f\x8b\xa0\xbc\xef\xefLS\x18\xf7\xd8\xe8\ \x09pq\x92\xa6\xb6Z\xa6r*\x1fe\x96G\x11\xe0\ \xa6\xf2\x07i\x1b\x95\x81\xefx\xb0\xc3\xe6fd\x13\xcf\x01\x93\xc1\xc1\ \x0cL-\x9bq\x87\xf8\x9e`lo\x97\xef\xd0\x85\xb9\ `\x80\xb8\xe7q\xdd\x05\x83\x81\xe1>s\xdd\xe1.\xd5\ zm\xd0\xde\xb3D\x87\x98f5`\x16\xf5\x8f\xd7\xef\ \xa3\x95l\x8b\x04E\xbe\xdb\x22\xf8\x03\xb0\xb21u\x18\ u\x89k\x96\xc4\x1c\x8f\xe8\xc2s`!\xa8\xf49\xd8\ \x5c\xbds\xb4\x0f\x1f\xc6\x80\x09\x9eG_\x1e\xf5\x098\ \x5c\xbb\x0b\x1e\xd5\xf0\xfb\x8eK9\xe5\xbex\x01#\xf6\ c12\x92\x80^\x02\x05\xc3\xb1|\x0e\x12\x22\x9e\x19\ fPD\xd8A\x12\x82\xf1\xd0\xee\xc1P\xdb2\x8e\xa1\ Q\xddq[\x82\x93\xf9\x00\x11p\x19\xa4\xfd\x11\xdb\xf6\ \x14\x0eL[W\xdcVn\xc1\xcd\xa8TK\xd9T@\ \x87R\xaaL;m\xe0\x18\xc1\x1f\xec\x0c\xa3\x9e\xb9\x0f\ \xf3\xc5f\x8bt\x91h\xdf\xe3\x16\xac\xba,\xc3{\xd9\ \x22\xbdP\xf9\xe2\xd6\x98\xf1\xae\x061\x84\xdb\xcd\xad\x92\ )\xf8\x0aAZ\xb4\xd3\xea\xd4\x88I)\xb50g\xe0\ \x0b\x04\xe9\xedS\xb5W\x82\xc73@6s.\xb3\xa4\ ,v\x07\x07G\xa8L`\xee\xdbfs\xfd\xfaxY\ \xc8\xdb2O%\xb8 a\xdf\x8d\xd8\xa3\xec[/$\ M\x0d\xf8A\xba\x0a6E\x0f\xfa~W\xd0#\xde1\ 6S\xff\xd0\x13\xad\x01\xcc\xe5\x1f\xe9Y<\x9d\x0d\x1d\ j\x0d<\xf0\xdc\xcf\x12\x1e\xe3\xb3FF\xbb\xa3\x9d\xe8\ \x15S\xdf\xe7\xbb\xd1\x8c>\x18|ls0\x10\xc4\xe1\ \xa6\xc0\x0d\xf1\xc7\xb9\xc4U\xbc\x82\x1ca\xe2\x15\xfd\x09\ \xa7\xf2bA+\xfer\xbe\xccE\x7f\xacS\x83\x15\x84\ \xd1\xcf\xc3\x16\x13\xaa\x98|\x82\x89Y\xb0.]\x8e5\ g=5_\xce\x93O@\x10m\xfc4\xec\xa9\xb9\xa3\ ?/\xca\x1brV\xde\xec\x8ev2o\x08?\x1c\xf1\ \xff\x9d\x5c\x0frh%\x05T\x9fS\xd7\xbfh\xb6\xe7\ \xf3\xb2\xfct\xbetOo\xb4S\xe5\x00\xd3\x9d3\xfa\ \x9f\xcd\xf7\x18\xdb\xe6\x88\x0b\xf0\xe4C\x12\xcc\xf3,:\ O6~h\xb0\x93O\xe6n\x06NkM\xdbs\x90\ \x87\x91\xe7\x0a\xab\xfa*|f\x5c\xf3m\x89\x0b\xdf\xda\ ~c.1\xf4N\x8f\x8bz$6\x9c\xcc\x8b\x1c\xaa\ \x1a\xf33i\xd7\xe1\xe1Nf\xa2\xa0\xff\xcdL\xbc\x14\ \x0f+'\xfd\x8c~\xe59\x8e \xb8\xfb\xe2\xe7q\x5c\ \xec\x9a1\xe6\x8b}&\x8f\xff\xf0\x04\xa6\x7f\xdc\x8d\xae\ \xfe99\x81\xe9\x1f{\xa3\xfbt\xb6\x83CV\x98\xed\ \xd4d\xf8K\x91\xbfyd1\xbd\x07)\xbd\x19\xbd\x19\ H\x01\xec\x87\x1b\xe2\xe8Vq\xac\xb1\xc9\x98y\x98\x89\ \xd6$l\x80H\xc0\x93\xf2}\xea\xb5#\xad\xc9\xcd\x88\ 2\x07S\x97\xa0Vv7d\xa8\xed\xac\x9a\xeb\xdb6\ M\xb2,\xa4\xfa\xa2\x1f\xa5|\xce\xbe\x15\xf2\x87&\xdb\ 0,P\xa7\xfft\xce\xcbu\x04\xf5\x90\xef\xbd6\xf3\ F\xb1\xe3\x0bp/u\x1e\x8f \x87aW\x10~x\ 6\xd2\x83\x0e&\xcd\xcb\x1d\x0e0\x09\xfcR>\xce\xa6\ \xafN\x0c=#\x1e\xe6\xee\xe1\xb9\xd3\xe8\xfa=\xf1 \ \xd4\xa1\x10g1\xd1\x93\x0f\x00\x17H\xae\xcb\xfa\xf2\xe1\ ;\xd4E\x8c\xf2\x9e|\x97e\x10\x05e\ \xd0J}M\xa1\xc8o6\xa9\xa2x\xfa\xb7\x0f\xbf7\ \xc77\x0c\xa7\x7f\xcf\xd5C{,u\x83\xe0._\x02\ _\x1a\x8d\xa2\xdf\x9a\x86S\xad\xde\x83\xf2}2\x07\x08\ \xf5\xdb\xd8?\xae\xe7)\x9c\xbf\xa6\xa2\xd7X\xe3\xd6\x0e\ \xba\x1dV\xc9\xeds\xdf\xc1\xf7\xadQ8Ot\xa7\xc9\ \x97\x12\x82\x8c\x8fz\x92\xae\x9a\x99T\x0b\xadUAg\ \x1f\xe0\xffW\x1b5\xa5Y\x0b@O\xea\x1b\xf6\xa6\xc1\ \x9d\xbe\xa1\xfb\xa4+\xad'\xb53\x95/\x17\xf3<\x92\ U\xf7\xaa\xbe\x1c2phL\xc9\xbb\x1a\xd9YO:\ \x5c\xdc\x09.T\xe7>\xb3\x17KM\xdf\x80%\x8e\xc3\ \xf8\x17\x13X\xb5a\xc5sQ\x15\xe9\xe6)a\xc9\xdb\ 4\xe5p\xf2\xb2\xa6\x02\xb4R\xa5p(\xca)\xabi\ Q\x00\x0aI\xa9`3\xcd\xf2Lv\x14\xb3^\xbf^\ 1\xf8\x19\xdd\xe7\x93\xd5y\xf6\x1c\x97a\x02\xbee\xa7\ \xaay\xbe\xeeo+\xbb\x19\x02\xed\x1c\x0bG \xd7\xf3\ \xbb\xf98\xfd~\x01\xfc\x03\xc6\x04\xeaN\xd2\x81Y\xe5\ \xa5\xc6\x98\xf1w]9\x90i\x9a,\x0a\xb9\x07M\x19\ \x13\x9f\xf8G\xa1\xe9h\x1a\xe7\x14\x1f\x06\xabA\xf2p\ X\xbb\xd4\xad\x11\x9c\xba\xcev\x1dL\xd4\x95\xad\xa9\xeb\ 3\xc1D\xec\x10W\xd8\xb4\xe7\xdfh\xa3\x00\xb1\x0fG\ >\xe9\x917\x83d\xa5\x19\xc0\x1c\xf0\xff\x11\xe9\xba-\ J\x1b2\xea\xe8\xb0\x8c\x8aa\x0e4\xe9\x13\x9d\xcf\xc1\ \x82{:P\xf7t\xd2\x9b3<\xee\x90\xbb\xd41\xea\ \xf1+LT\x98\xeecW\xc0\x0cC\xf6\xb0\xabb\xe6\ .\xbb\x04\xf3\x11\xb8\xbb\x978\x05\x86\x01\x82\x88\x1d\xf0\ )\xd9\x81\xbd\x17\xf2\xd7\x8a\xa4\x01\xd2\x0e\xc1\x5cJ\xa5\ \x8d\x19\x86@\x85pJ\xf1A\x1d\xcc\x19\x81\xb8\x0f\xa3\ \xbe\xeb\x06\xf6\x1cCl\xc8\x01\xf0n\x9c?\xdb*C\ \xf8\xb8\xd6\xea\xf9\xfd\xd5\xbf\x01\x22\x10\xe8\xc9\ \x00\x00\x0a\xe4\ \x00\ \x00/\x8ax\x9c\xe5Ym\x8f\xdb6\x12\xfe\xbe\xbfB\ \xe7\xe0\xd0,jI|\x15)\xefK\x916h\xae@\ \x8a+\x9a\xb6\x07\xf4p8\xd0\x12m\xeb\x22K\x86$\ \xaf\xed\xfc\xfa\x1b\xd2\xb2,\xd9\xb2\xb3\xdeK\xb2=\xd4\ M\xb1\xd2p\xc8\x11\x1f\xce3C\x0eo\xbfY\xcfS\ \xe7A\x17e\x92gw\x03\xec\xa1\x81\xa3\xb3(\x8f\x93\ lz7\xf8\xf5\x97\xef]9p\xcaJe\xb1J\xf3\ L\xdf\x0d\xb2|\xf0\xcd\xfd\xd5\xed_\x5c\xd7\xf9\xae\xd0\ \xaa\xd2\xb1\xb3J\xaa\x99\xf3C\xf6\xbe\x8c\xd4B;/\ gU\xb5\x18\xf9\xfej\xb5\xf2\x92Z\xe8\xe5\xc5\xd4\xbf\ v\x5c\xf7\xfe\xea\xea\xb6|\x98^9\x0e\xf4\x8a\xab\xd9\ \xdd `\x03\xf36\xd3\xc9tV5\xafI|7\x00\ =\xcayh\xdf[\x1f\x88\xb7\x0a\xf5\xc8\xa3v\x8bG\ \x9c\x97H!\x14M8\xa5\xe1\xd0!\x88\x10\x17\xc1?\ vm;\x950\xad\x05\xfc?\x8a\xf3(Ss\x98\x8d\ \x22\x8b\x7f\xff0_\xe4E\xf5\x93**\x0fLn\xcd\ %z\xf5m\xbe\xbe\x1b \x079\x01s\xea\xaf\x02\xa8\ \xb2r\xb43}785S3v\xb9P\x91.\xfd\ \x9d\xbc\xd5\x7f\xf7\x15M\xff\x9d\xc0+\xf3e\x11\xe9\x09\ \x0c\xa1\xbdLW\xfe\xeb_^7\x8d.\xf2\xe2*n\ \x0d\xb3Na\xec\xce7\xac\xa8\xb5\x8e\xc30\xf4m\xeb\ ^\xbbO\x8f \x84\xfc\xdd\x8c\xebO{\x98>R\xb3\ \x88''m#\xe2\x03\xee\xa0\xe1\x96\x9b\xacRk7\ +_\xb4\xbaFQ\xd332\x1e\x94<\xe8(\x9f\xcf\ \xf3\xac\xdc\x82\xd7Q\x8e\xf7\xca\x8be\x91Z\x8d8\xf2\ u\xaa\xe7:\xabJ\x1fV\xdd\x1f\xdc\x83\xfem\xac'\ \xa5\xe9\xb7u\x1e\xf3Fy\x80m\x1b\xb4\x02\x1cZ\x15\ o\x0a\x15'\xd0o\xab\xb7\xd5\xec\xb60*\xa9K\x07\ \x8d\xc2\xce\xcd\xa2\xbb\xa3<9=\x91>\x07\ gMz\xfa\x8c\xe9\xc3,\xbb<\x1f,\xbb\xc4\xbd(\ w\x04}\xb9\x83\xb2C\xdd\xff\x9f\xdc\xb1\x85\xeb\xf1\xb1\ \xbc\x9f\x8c\x8fK\x1d`\x0b\xa3\x8b2\x87\x8ec\xf6\x18\ k}\x99\xc3X#\xcfA\xdc\xf3\xfe\x07\xc4e\x9f8\ \xc2\x93\xadS\xe2\xa1\x8b\xc5\xd6\x13\x83\xebO\xed\xe2\x8d\ n\x03\xa8\xf9&\x95\x1eBW\xc0b \x0f\x82\x17\xdd\ G\xaf\xc9\xc6\x0e\x80\x89\x80\xac\xb9\x97\xc2Q\x94P\x0f\ \x09\x14\xc8\xfdN9\xea\xd5\x8dzu{`\x99\xab\xaa\ H\xd6/\x91\x17b&1\x19\x22\x0fa\x12pD \ \xac\xc13\x92\x04\xc3\x0b\x88\x81O< C\x88S\x9c\ \x82\xee\x10\xa2\x1b\x9cndx}\xe1\xd2\x98\x05\xee\x22\ A\x91\xc0\x8fq\x14\x82\xc2\xbd\xdeI\x8f\xfb\xf4\x8c\xb7\ v\x1fOAd\x7f\x07\x14\xbcy$\xe3\xc1\x16\xbd\x88\ \xf0}\xd6P\x9f\xb5>\xc6\x835\xfe\xe5\x09O\x11\x17\ g\xe0\x86\xe6c\x8f\xbd\x98\xee\xb5_c/d\x1c\x1c\ \x16<\x18\xfe\xdb\xbf\xb9Lxa(\xb1\xe4C\x97K\ /\x10\x14\x85\xec \x06`\x8fc\x1c\x12\xdc\x89\x01$\ \xf0\x88\xc0\x90\x93\xbb1\x80x\xa1d\x12\x05\x9d\x18\xc0\ B\x8f\x05\x08\x89\x8f\xa7\xef>\x10\xc4\x05>'\x95&\ \xf4\x11\x07\x06\xc3h\xfb\xebq\x060\x19^\xe4zL\ \x87\x0a\x05\x8f\xc85g\x8d\x06\xe7\xf7\x8a\xb7\xbe)\xe2\ \xd8\xa7\xa6pg*k\xb1\xa9\xce]5c\x8dU\xe3\ \x0e\x0b5\xd5\xf6\x0b\xc1\xf1&\xf6W7\x8c\xf3\x22\xd6\ \xc5\xae)\xb0\xbfNS=\x89m\x01\xf4\xaa\xeb\xe7f\ \xd4\xa6\x1d\xf5\xb7\x973\x15\xe7+\xf0\x91\xc3\xc6\x0fy\ \x0e.\xc9\x0e\xc5&H\xc3y\x87\xf0\xa3\x06\x13\xd3\x03\ \xefX\xbe,\x0a\xc0\xc5M\xd5F\xc3\x1c\xec\x9f\x1d\xe2\ \xe5,_M\x0b\x83EU,\xf5a\xcf8\x8f\x96\xa6\ V\xe6.\xb7DZ\xac\x0f5L_w<6\xf5\xce\ \xbe\x01VI\x06ss\xebz-\xe4\x02yBcW\ \xc3\x15\xf8\x08\x86Zc\xbd\x0f}\x87M\x1bC\xb0\x13\ ms\xb5N\xe6\xc9\x07\x1d\xf7t/3\xb5p\xa7i\ >Vi\xff\xe7[\xa7\x98\xe9\xe8\xbd.\xc6\xb9*\xec\ \x18\xb5\xd3u\x10\xd8yh\xb51\xa5\xdd\xf5\xc6\xc8:\ \xb1\xca\x08(p\xba\x11\xea\xf9\xc2Tym\xa5|\x9f\ \xc1\x1f\x922\x19\x1b\xc2\xb4>\x06t3\x05\xc2\xf8@\ j>\xbe\xd67\xa3\x1b\x0e\x94y\x96n\x0e\xd5\xb6V\ \x0cz\x1e?\x94n\xb6\xd2-\x93n\xfdc\xaaX\xf9\ \x5cW*V\x95\xda\xf3f'\x81\xdc\xcev\x80\x14\xf1\ d\xf4\xf3\xeb\xef\x9b@\x10E\xa3\x7f\xe4\xc5\xfb=y\ \x8d\x82\x1a\xe7KX\xe5&F\x99\xdak42\xb1W\ U\xf7\xc9\x1c\xe06\xb5\xe2\xaf\xd7\xf3\x14\x18\xdc4t\ \x94\x0d\xc6\xfbA\xb7\xc3\x16z[\xfe\xee\xad\xf7\xc6\xd1\ <1\x9d\xfcwU\x92\xa6?\x18#\xad\x80U\x0f\x9a\ T\xa9\xbe\xffIU3\xf7]\x95G\xef\xad\xf5\xad\xb0\ \xa3\x07\x93\xd6\xf7\x04a\xee\x22\xe1\x22f\xd5\xac\xac\xa3\ Uh\xd81&yv\xdf*rO\x0a\xad#\x15\xaf\ \xf4\xd8~\xd7*y\x9f\xf8\xe0\xa1z\xed-f\x8bo\ \xac\xa9\xbbWE\xb5\x02\xc8\xec\xa8\xcd\x18\x9d\x91\x17\xcb\ q\x9a\x943]\xdc\xb7 0P\xbf\x9a6\xb9\xf7x\ ^\xdf\x83\xed\xef^\xbd\xee\x9b\x94Y\xf6\xe3\xeeV\xb3\ \xc7\x96\x192\x89A5\x99$ \xaf\xc7\xf5\xcb\x22\xf2\ \x7f\xccc\xdf\xe0\xe7\xbfY&\xfe\xcf\xf5z\x94~\x12\ \xe5Y\xe9\xef\x815\xd7$v\xf4\xd60]\xecL\x1c\ (\x9f2=\xe7\xed\x9b\x9f\xde\x92\xaf/\x9c\xe5\xa1=\ c-M\x22\x9d\x95\xda._Y\xaf\xdf4[\xda\x85\ \x8b\xf2\x05\xa4\xb4I\xe5\xa7\xba\x84m\x857\xab\x8c\xaf\ \xb6:uf\x03\xb3\x87\x0d\xc5xY\xe5\x97\xad\xd8?\ \xd5\xb4\xd8\x00\x9d\xff\xe5\xbcJ\xf5Z\x81\x9f\x14\xce\x1b\ +\xb9pz=\x1f`u\x0d5w\xe9\xb3\xc5\xdc[\ \x7fGm\xfb6\xddS\xbe\x935\x9a\xe0\x97\xaa\xb1\x86\ \xd8\xf9\xd64:G\xad\xd3\x22_.\xe6y\xac\xeb\xee\ \xbbP1m\xe2e\xdfA\xcbl\xb8h(\x04b\x81\ v\xf9u7\x8e\x0a\xd8\x88\xedw8\x0b\xf0\xab\xa3\xcd\ \xc6\x04X>\x02\xfe\xbf<\xbe+\x08\xafoLkk\ \x83m_\x8be\xaaGY\x9e}\x80d\x0e\x1b\x93\x22\ \x7f\xafG/(\x22c\xbbE6\xaf\xdb\x0c6\x22\xbb\ W3\xf2\x7f\xf2$\x1b\xc1\x0c\xb3x'\x858\xa3\x8b\ \x14\xd2M5b;Y\xac \xbf\x17\x85\xda\x18\x03\xba\ \xb5\x97\x81\xd9\xfc\xe8\x84C\xca\x9d\xdf\x1c\x82\x9d\xd4\x81\ \xd3\x11w\x1e\xe0\x8f\xf3\xe1`\xcbc\xa6i\x0aQ\xed\ \xa2^k+\x9de\xb0\x95\xce\x0b\x17\xf2\xfc\x83\xaa\x96\ \x85>(\xf55Q\x1dV\xc2\x04BH\xe4\x91\xf9\xb5\ \xb7m\x07H\x9e\xec\xf2\x94\x0f\xd8M\x01\x16\x00\x1f\x03\ \xc0B\x00\x00PH\x1d\x22\x87\x18\x1d#\xf0\x91e\xb5\ \x15\xbag_\xd7/\x0eex\x04%\x15Cn\xb0d\ \xdcy\xebp>$\xd2`I/\xc1\xd2\x14\xed\xfet\ P2D\x8f\xbd\x12\x18IB\xe0##\xc6'\x09\x1d\ \x92\xc0\xf9\xfd\x04\x90\xbbZ\xf6\x9f\x0c7`s\xebz\ \xb0F\x0e\x9bc\x9bD\x94\x0f\xe1\xa8\x1c\xa0\x80\x08\x10\ \x0d\xa94\xf4fC\xe9\xd8\xe2\x10\x06L=,M\xe5\ \xe8\xa4w\x9a)5\x805\x97\x05g\x01\xb3\x18\xfd\x91\ \x01\x0b\xb1\x8b\x8eX\x1b\x02\x22\x1c1<\xe4\xcc\xc3\x81\ $\x1cDC\x168\x9c\x0e)\xf1L\x5c4\x98\x11<\ \x04O`\xed\xcd\x09\ CJ\xf7\x09\x810\xd8\xf3\x0e\xe1\x19\xbc\x06\x9d\xc4\xe7\ sQ\xf0\xd6\x9f\x9e9\x894w\x1b\x01\x92\x941a\ k\xc0\xe6J\x95R\x1b\x87\x09\xf587W\x85C\xe9\ 1\x09'\x15*\x0f\x0e)\x81\x0c[eX\x9d\xa6\xc9\ \xa2l\xd5,\x0aS\xaf\xf2(A\xed\xabg\x10\xaf{\ \xeet\xea\x9b\x1a\xe6\x85\x0c\xb0k\x8b\xd7\xf6\xfa7\xe4\ R\x8a\xb6\xfcx\x22\xc4\x13\x907\x04\x93\xbbb\xb6d\ H@\xecs)$\x16J%c\xf6Qr\x14\x04\xf4\ \xbag)0\x0dz.\xf3\x9bk\x03\x0f#I\x98\xb8\ \xd9\x07\xb0\xe3\x8b\x9a\xa3\xf8U;\xe0\xe3\x92\x0a\x9ca\ ]\xfb\x0c\xfa\xc5\x5c\xa57V\xf2\xa0\x8aDeUG\ \xb6\xb2e\xc4\xd18O\xe3\x9b\xba[\xa1\xabh\xd6Q\ *\x93\x0fz\xc4C/D\x18/\xd67\xc6\xcd\xeb\xfa\ \xe3\x08\x13\xfe\xd7\xad\xd2D\xcd\x93t3\xfa\xea\xdb\xa4\ 2c\xa8\xb9\xf3\x9b.\x94\xf3\x0e\xd0\xfd\xea\xa6\xd2\xeb\ \xcaUi2\xcdFe\xa5\x8a\xeafU$U\x92M\ ]s\xd8\x1d\xa5\x85[\x8dk\x9d,\x9a\xe5E\xad\xb4\ M\x8eM\xd1}\xcb@,\x88B\xac\xcb@\xecI8\ \xe7\xf26\x0f\xc1\xf5Gp\x8a\xaf\xce\x07\xf2\xbez\xba\ \xa5 C\x1e\xf8\x0f\xe5\x90\xf1\x8c\x87q&\x84=v\ \x1a\x0c\x04\xa5\xce\xdf\x1c\xc0\x83c\x04\xfe\x00\xf2\xd0\xdc\ \xe6a\xf8\x07\xf2\xa6'\xc8\xdd\x10\x9eq@\x09\x81\x06\ \x22\x8c\xf7\x08I\xcd\xd1U\xbb\xc1\x10\x03\x1d0\x15\x8c\ \x99\xe1\x84\x17R\x84\x910\xfb\x17w\xdbL<)\xc3\ \x80\xa0\xf0\xa0\xb3\xdb\xed}\x14\x0d\x0c\x90\x98b\xf6\x18\ \x8a\xef~\x17\x04\x8e?\x95\xf7\xf5\xec/\xcc\xc5\xd9)\ zv\x9d\xf5\x09\xde\xd9\xc9\x1c'\xbd\x93\xc2\xda\x87<\ \x94\xe1\xd0<\x09\x86\x91\xf1B\x02\xe1)\x80\x93\x84\xf1\ \x17.<\x1e\x86A`\x8a%\xd8\xc4*\xca\xa4\x00y\ \xd3\xd3x'\xe8\x04\x88p!\x9d\x99qU\xce\xb1\xb4\ \x07\x0f\xd6\xf1/\x09\xddB\x0fb \x13\x92\x18\xf7\xb3\ \xcd\xa1G\x10\x04I\xeb\xd8\x12\x82-\xc3\xdc\xd6d<\ \xaa]\xder\xce\x99\xd3\x0c\xdc\x97\xb5\x04\x12\xc1%~\ \xfa\x14G\xad\xb3\x97\xfdsk\xca\xe5\xf7W\xff\x05\x08\ u\x890\ \x00\x00\x10\xb4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \x0a \ \x0a \x0a\ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a \ \ \x0a image/svg+xm\ l\x0a \ \x0a \x0a \x0a \ \x0a \x0a \x0a <\ g\x0a id=\x22g\ 702\x22>\x0a \x0a \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x0aH\ \x00\ \x004\xbcx\x9c\xe5Z[o\xdb\xc8\x15~\xf7\xaf`\ \x95\x97\x045\xa9\xb9_\xb4v\x16\xc5\x06[\x04H\xb1\ \x8b&A\xdb'\x83&\x872\x1b\x8a\x14H\xca\x96\xf2\ \xeb{\x86\xe2U\x17[\x92eo\xda\xdaq\xa4\x993\ \x17\xcew\xeegx\xf5\xf3r\x968\xf7&/\xe2,\ \xbd\x1ea\x0f\x8d\x1c\x93\x06Y\x18\xa7\xd3\xeb\xd1\xd7/\ \xbf\xbaj\xe4\x14\xa5\x9f\x86~\x92\xa5\xe6z\x94f\xa3\ \x9f\xdf_\x5c\xfd\xc9u\x9d_r\xe3\x97&t\x1e\xe2\ \xf2\xce\xf9\x98~+\x02\x7fn\x9c\xb7we9\x9f\x8c\ \xc7\x0f\x0f\x0f^\x5cwzY>\x1d\xbfs\x5c\xf7\xfd\ \xc5\xc5Uq?\xbdp\x1c\x98\x15\x96w\xd7#\xc1F\ \xb6ug\xe2\xe9]\xd96\xe3\xf0z\x04\xe3(R\xbc\ j\xf7\x1e\x10\xaf\x07\xd4+O\xfa\x14\x8f8o\x91\x8f\ P\x10qJ\xf5\xa5C\x10!.\x82\x7f\xec]5\xa9\ \x80c\xcd\xe1o\x12fA\xea\xcf\xe04>\x99\xdf\xfc\ \x9e\xf8\xa9)~\xf7s?IL\xf2K\x96\x16e\xee\ \xc7i\xe9\xc1\x03T\xd3\x00\xa1\xb4\x984;^\x8f\xf6\ \x1d\xd0.Y\xcc\xfd\xc0\x14\xe3\xa6\xbf7\xbf\xd9\xbc\x9d\ \xdftxE\xb6\xc8\x03\x13\xc1\x12\xc6KM9\xfe\xf0\ \xe5CKt\x91\x17\x96ao\x99e\x02k\x0f\x9e\xe1\ \x81V\xbbc\xad\xf5\xb8\xa2v\xa3w\x8d#\x08\xa1\xf1\ \xf0h\xd0:pd\x1eF{\xf7Fd\x0cp\xc3\x08\ \xb7X\xa5\xa5\xbft\xd3\xe2Moj\x10\xb43\x03+\ 8\xf1\xbd\x09\xb2\xd9\x0c\xe0^\x837\x18\x1cv\x83\xe7\ \x8b<\xa9F\x84\xc1\xd8$ff\xd2\xb2\x18\x03\xb3\xc7\ \xa3\xf70\xfe*4Qa\xe7\xade\xc6\xb6@hd\ E\x03*\xc0a\xfc\xfc\xaf\xb9\x1f\xc60o=n=\ rH\xa1J\xe2z\x0e\xcc*\xcal\xde\x8c\x05\xa9)\ W\x09p\xddv\xbaA\x96d\xf9\xe4\x0d\x01h\xa2\xe8\ \xa7\xaa+\x03\x8e\xc7\xe5j\x82\x7f\x1aus\xb2(*\ \x0c\x883\xea\xf5U2\x0d3`/:r\xc6\x87\xef\ \x16EQ\x10\x05\x07\xec\x86w\xef\xc6\xdb\xdd\xae\xc6\xc3\ c\x1f\x8d\x92\xa0G\xa0\x14E @\xe8d\x94\x04?\ \x12%m|u2JB>\x85\xd2\xcc\xcf\xbf\x99\xbc\ E\xa71@0=\xf8f\xd7\xf9K\x9eg\x0f\xe4\x93\ I\xc3v\x83,\xb7\xf3\xc1\xcc,\xca\xac\xed\xccM\xf4\ \xaf\xfe\x99\xa1\xfd\xcf~{\xcfZ\xf5\x9130xQ\ \x92=L\xee\xe3\x22\xbeML\xc7\x8f\xb9_\xde\x0dO\ f{\x18\x97l\xb4\x05\x5c\x14'\x89\x9b/\x1231\ \xf7&\xcd\xc2\x10p\xcb\xb3o\xc6\xad\xac\xf2\x04y\x82\ \xf0\xa6\xcb\x82\xf1\xef,N'y\xb6\xe8=\x8f\xe3\xc0\ \x0e\x7fs\x94'\xb1\xe2J\xaaK\xe6!J%\xe5\xc4\ q\x89G\x90$J\xf3K\xe4!,\x10\xa6D4#\ \x15\xbbta(\xc2\x12I\xe5\x04\x8e\x8b=\xc98\xd3\ \xd0O<*\x09\x12HW\x9d\x943\x86\xd4%\xf7\x04\ \x86\x01\x18:\x85q\xe5\xa5\x82m\x80B\x9d\xef\xbdG\ \x01\x8b\x9d\x16`Ag\xd7\xa3\x99_\xe6\xf1\xf2-\xac\ \x80/\x11\xfcV_\xd6\xadw}\xce7\xfc\x0b\xb24\ 5A\x99\xe5n\xb0\xc8\xef\xfdr\x91\x1b\xcb\x8dN\x18\ \xd6|?N\x08\xc0c\xe6\xe5\xd9\xc4`\xb8\xda\xe9\x82\ \x80\xff\x1f\x05\xa1\x91\x03\xfb\xf9ZR\xf0%\x8f\xfdt\ \x9a\x98\x8f\xe9\xe7\xe7\x0b\xc1\xae\xc5N\x95\x01\xa1\xc9\x90\ o3\x87{R^\x22\xc7U\x9e\xe0\x97\xdc\xb1\x0a\x83\ \x9c\xba\xf1\xfdp\x81\x99\xbcA\xa86\xf7=\xf9\xc1\xf3\ r7s\x00\xb0\xc4\xbc\x85\xe8\x86\x5c\xda\xff\xce\xc0\x93\ \x83\x9d\x98F\xc781\xc6\x14'\xe1\xa9NL\xa3\xe3\ \x9c\x18BD\x1c\x14X\xectb\x1a=\xe9\xc4\x0ew\ \xf5\x5c\x1f\x81\x12\x0a\x9f\x15\x10\x09|\x14J2T8\ \xc2\xa7\xbbzzF\x94\x8e\x09\x1b\x9f\x19\x10\xf1c\xc3\ Fi\xa49\x19%\xfed\xd8\xd8*\xea\x1cr\xb09\ h*\x84\xf4\xad\x81jR\xadreS\xa6\xe1P\xda\ 9\x8f.\x8f\x9b\xdf,\xafG\xd4\x13\x8a\x11\x016~\ \x02\x86\x09!!\xb4&\xf0\x1d\xef\x9c\xb0\xba\x1e\xb9D\ z\xe028\xb8\x81\x89\xe32\xee\x11-\x15c{\xa7\ |\x87)L\x80\x03\xe2Rr;\x05\x83\x83\xe1\x9a\x09\ \xb1{J\xfd\xbc.X\xefil\xb3\xcc\xeai\xc0-\ \xda\x1f9\x9cc\x8dl\x87\x04EZt\x08\xbe\x00V\ .\xa6\x1e\xa3\x82\x88\xea\x91\x98'\x89m<\x06\x16\x02\ \xa2\xe6\xe0s\xed\xc9\xd1>|\x18\x03&HI\x9f^\ u\x0b\x1cn\xc3\x05I-\xfc\xda\x13\x94S\xae\xd5\x13\ \x18\xb1\x97\xc5\xa8\x92\x04\xf4\x14(\x18\xd4\xf21H\x88\ zd\x99\x9d\x22\xc2\x0e\x92\x10\x8cw\x9d\x1e\x1c\xb5k\ \xa2\x08\x065\x13\xd7-\xd0\xcco\x90\x01\x97~2\x5c\ \xb1\x1bOAa:ZqS\x87\x05\xd7\xa32_\x98\ \x96\x00\x13J\x93\xa76h\x83\xc0\x08\xfe\xe0d\x18\x0d\ \xdc}\x90\xcdWk\xa4\x8b\xd8\xc6\x1e7\xe0\xd5M\x19\ \xdc\x99\x0e\xe9y\x9e\xcdo*7\xde\xb7 U\xc7\xcd\ \xea&7\x09\xc4\x0a~Rt\xdb\xda\xd2HUU\xea\ `N!\x16\xf0\x93\x9bm\xb3WB\xc4\xb3\xa3\xbb\xda\ s\x91\xc6e\xb1\xb98\x04Be\x0c{\xdf\xb4\x87\x1b\ \xd2\xa3Ean\xca,1\x10\x82\x04\xc30b\x8f\xb1\ \xef\xa2\x90$\xa9\xc0\xf7\x93\x07\x7fU\x0c\xa0\x1fN\x05\ ;\x22\x8f\xf1\x99\xf6\x87\x9e\xe8\x0d`/}dd\xb1\ \xbd\x1b:\xd4\x1bH\x88\xdc\xcf\x92\x1e\xe3\xb3fF\x9b\ \xab\x9d\x18\x15S\xad\xf9f6c\x15\x83_\xba\x1c\x1c\ \x04\xf1x\xd5\xe0U\xe7\xcb\x85\xc4u\xbe\x82\xc4\xfe\ ,K\xc3\xf3T\xe3w-v\xb2fnV\xe0\xac\xd5\ t\xa5\x87$FR(\xa7\xfe\xaa4\xabB\xf3u\x8b\ +\xed\xac\xbf1A\xaa\xfe\xde\x8cW\x8dH\x5c\xd0\xcc\ WQ\xaa\x06\xf33Y\xd7\xdd\xcb\x9d\xccDE\xff\x9b\ \x99\xf8Z<\xac\x83\xf43\xc6\x95\xe7PA\x08\xf7\xd5\ \x8f\x13\xb8\xb8\x0dc\xaa/\xee\x99\x22\xfe\xc3\x0b\x98\xfa\ \xb8\x1b]\xfbsr\x01S\x1f{\xa3\xbb\xbd\xdb\xc1)\ +\xecvj1\xfc\xa9\xcc\xbfz\xc9br\x07Rz\ =z\xb3\xa3\x04\xb0\x1fn\xc8\xa3;\xc3\xb1\xc4U\xc5\ Lb\xa6:\x97\xb0\x82N\x02\x91\x94\xd6Tv+-\ \xc9\xf5\x882\x0fSAP'\xbb+\xb2k\xec\xb4\xde\ \xeb\xeb\xbaL\xb2(L\xfe\xd9\xbe\x94\xf2[\xfa\xb50\ /Zl\xc3\xf0\x80\xb6\xfcgk^\xc2ST\x22-\ \x9f[y\xa3\xd8\xd3\x0a\xc2K[\xc7#\xc8cX(\ \xc2\x0f\xafFJ\x98P\x95y\xb9\xc7\x01&\x85\x9f\xaa\ \xc7\xb9\xf4\xd9\x85\xa1G\xc4\xa3\xba{xL\x1b\x85\x1e\ \x88\x07\xa1\x1e\x85<\x8b\xa9\x81|\x00\xb8\xd0%\x04\x1b\ \xca\x87\xf6\xa8@\x8c\xf2\x81|l\x8f}\x5c>6G\ }\xe9\x0cVe\xbb\x12\xbf4o]\xf0_.\x01;\ \xf5\xa2PI\xfc(T}\xf5\x00P \x9e\xe5\xb6\x16\ \x8e\xc8&VX\x09\xd9[\xcbb\x05Y\x09d\xafD\ \xb3M\xac6\xc6\x9e\x01+.=%\xb0\xd2\xf80\xc4\ v\x5cWb\xe1\xa2}6\xba\xbb\xfa\xc3\xca\x15O\x18\ \xe2\x1d&V\xf9\x86P\xb6a\xd0\xf7\x1b\xe9n;\x82\ \x5c\xf2\x84%\xdeu\x99j\xb4\x8f\xc4\xbe\xed\x9e{\x19\ \x07H\x1d\x82\xd3\xab\xa2\xf4\x1a\x18]\x8d\xedko\xd5\ \xb7\xd6r\xdbw\x11\xc3\xfb\xd8<\x5c\xb4\x8ft\xeb\xb7\ 2;\xf7\xa7\xa6\xda\x0e\xd4n\xedek\xc2m\x96\x87\ &oH\xd5\x15\x86\x18\x90\xea'Z\xbf)Z\xaf\xdd\ ]\x5cLMKG\xbb\xe9\xc5\x9d\x1ff\x0f`\xd96\ \x89\xdf\xb3lf\x15\xb3-\x5ct\xc6\xc3\xde\x0b\x22O\ \x0b\xf8\x95[\xc4\xd5\xdaGP\xf8e[\xc4E\x9e\x03\ Fn\xe2\xaf\x0c\x9c\xa7\xfah\xd0/\xee\xb2\x87in\ q\xe9\xdd\x8d\xb43-\xc5\xbd\xbd\xcd\x96\xbb\xc9a\x16\ ,\xec\x8b\x88n}\x171_n\x8ex\x88S8\xa7\ [\xbf\xe4\x8a\x19\xdbB\xa3\x1e\xd1\xbc\xf8\xaa\x18\xdd3\ b\xd9\xc9\xe7&i\xb5\x9f4\xf3\x97\xf1,\xfen\xc2\ N\xe0\x06\x8c\x08\xeeL\x00\xf1\xe2m\xe6\xe7\xa1]e\ 3,\xb0\x084r\xba\x0e\x03\x96+\xdb7\xb0\xc9\xb6\ \x83b\xdc\xf943\x9b\xb7\xd7<\x9d}\xd8}\x0de\ R\x1f:\xc3\x8d\xde\x22\xf5\xe7\xf5x\xbb\xba\x95\xf6\x22\ K\x93U=l\xad\x07W\xe3mA\xaf\xfag\xa6\xf4\ C\xbf\xf4;\xa9oz(\xd2\xed!\xf30\x9a\xfc\xfd\ \xc3\xaf\xad\xfa\x06\xc1\xe4\x1fY\xfe\xadSK;\xc0\xbf\ \xcd\x16\xc0\x97\xd6\xa2\xd8wM\x83\x895\xef~\xf9>\ \x9e\x01\x84\xf6\xdd\xd8?/g\x09\xe8_K\x18\x0c\xb6\ \xb8u\x8b\xae\x97\xcd\xcd\xfau\xdf\x9d\xef\xb7\x86\xc1,\ \xb6\x93\xc6\x9fKH2>\xdaM\xfaff\x5c?h\ c\x0az\xe7\x80\xf8\xbf>h\xd5\x9av\x00\x0c\xa4\xbe\ eo\xe2\xdf\xda\x1b\xbaO\x96\xe8lQ\xa7y\xb6\x98\ \xcf\xb2\xd0\xd4\xd3kz\xb9\xcb\xc1\xa1KJ\xde5\xc8\ N\x07\xd2!h\xef>l\xda!Q\x11%\xc5\xbc\x0f\ n\xde\xbb\xef\xdc\xd8\xacy\x93\xab\xae\xbes\xa5\xb0F\ \xb6\xcc\xa8\x05\xd7\xd0\xac\x8a~\xfd\xac\x09\xfc\xb9}5\ @{\x8a\x08\x89\xe5\x80\x02\xea\x04i7\xf4K\xce\x06\ \x84F\x13\x19\x81u\x85R|@\xad5\x99a\x8f#\ \xa2\x08\x1d\x10\xed\x81\xec\xf3K\x8a\xc4\x80\xd0K\x19'\ o \xe0\x88\x82\xe8\xa7*\x7f\xec\xb2\xa7\xc7\x92G\xe2\ !\xca\xb4D\x9c\xf4\xeb\xb2\xc0\xa2uYvw\xb1\xb6\ \xe9\x05Q2y\x02F\xa0\x9c\xb0\xa6/\xf4\xc1\x00\xe7\ \xb9\xbf\x9a\xa4Y:\x94\xadi\xfbu\xc8\x89\xe7\xf0\xa1\ \xe2\x02\xf5\x14\x98\x08\xde\x0f\x17l\xb2@l\x86\x80{\ \x01o\xc7\x01k\xed\xa9\xc0\xbc\xcf\xb8\x1a\x7f\xcbSE\ \x10\xed\xaf\xd6C\xbf\xef\xdc\x07\xd8S&\xb8\xcf\xf6a\ _S\x87\x89\xbb\xc7\x90\xe0\xf0\x84\xf4\xc5\xb1\xdfV\x0d\ \xc4\x1eS\x8d\xc1\xc9LD4\xd1\xa7H\x15c/s\ \xb2]\x9a\xa15>\x5c\x9d\x1e\xd7\xc4e\x95\xda1x\ ~$\xb7t\x1eS\x0f34\x14\xabSd\xb8\xe3\xce\ \x8b\x98&\xe9a\xc2\x14b['#\xd8#j \xc6\ \x8f\xab\xc5\xa3\x8a\xd1\x87\x9f\xee\xb7K>\xabdd\x8f\ \x04\xd5\xd4?J7\x1a\xbbT\x7f\xa9>\xae\xac\xe7}\ \x7f\xf1\x1f!+Qw\ \x00\x00\x08~\ \x00\ \x00\x1d\xd1x\x9c\xcdYm\x8f\xdb\xb8\x11\xfe\xbe\xbf\xc2\ \xd5\xa2@\x16\xb7z!E\xbd\xae\xed \xbd \xc1\x01\ )z\xb8$\xe8\x87\xa2(h\x89\x96\xd5\x95%\x83\xa2\ \xd7\xf6\xfd\xfa\x1bR\xef\xb2\xec\xac\xd3+\x10'\x8b\xb5\ f\x863\x9c\x873\xc3\x19\xed\xfc\xedq\x9b\xcd^\x18\ /\xd3\x22_h\xc8\xb0\xb4\x19\xcb\xa3\x22N\xf3d\xa1\ }\xfd\xf2A\xf7\xb5Y)h\x1e\xd3\xac\xc8\xd9B\xcb\ \x0b\xed\xed\xf2n\xfe\x17]\x9f\xfd\xcc\x19\x15,\x9e\x1d\ R\xb1\x99\xfd\x92?\x97\x11\xdd\xb1\xd9\x9b\x8d\x10\xbb\xd0\ 4\x0f\x87\x83\x91\xd6D\xa3\xe0\x89\xf90\xd3\xf5\xe5\xdd\ \xdd\xbc|I\xeef3X\x15\x8b\xcdBs\x89&\x9f\ 6,M6\xa2}L\xe3\x85\x06r\xb6\xe3\x04\xea\xb9\ \xb7AT\x09\xd4\x9a\xc3>\xc7\xc0\xb37\x16\xb5\xach\ \xed\xd8v\xf08\xc3\x16\xc6\xba\x05\xff\xc9\x83ZT\x82\ [;\xf8\x09\xe3\x22\xca\xe9\x16\xbc\xa1x\xf7\x9f/E\ \x92d\xec\xdd^\x14\x9f\x8b\xec\x85\x19`\xb7\xb2\x99\xb2\ \xc3\xdf\x8a\xe3B\xb3f\xd6\xcc%\xb3zk\x80W^\ \x86\x8d\xfd\x85v\xc9]i\xa0\xdc\xd1\x88\x95fC\xef\ \xado\xb6\xd2\xaeo\x08FY\xecy\xc4\xd6\xa0\x82\x19\ 9\x13\xe6\xfb/\xef[\xa6n\x19\xb1\x88{j\x8e\x19\ \xe8\x1e\xec\xe1`+\xeb(\x08\x02Sq;\xe9)9\ lY\x96\xd9x\x5co\xed%y\xa5$\x8f\xd7\x17m\ [\xd8\x04\xf0AB/O\xb9\xa0G=/\xef{K\ \xa3\xa8]\x19\xc90J_XTl\xb7E^V\xe0\ \x0d\x84\xe3Nx\xb7\xe7\x99\x92\x88#\x93el\xcbr\ Q\x9ap\xf4\xa6\xb6\x04\xf9y\xcc\xd6\xa5\x5cWE\x90\ |\xb2\x1d\x17)\x1ep\x01\x0eF\xf9GN\xe3\x14\xd6\ Ur\x95\xe4\x90Cl\xdf\xd6m\xad\x15hb-*\ \xb2\x8cE\x10\xa54;\xd0SY\xab\x05\xc5\xa5(v\ \x8dt\x1d\xbc@\xf1l\xe4\xfbZG/\xd6\xeb\x92\xc1\ j\xabG+\xc5)c\x95\xb8\x0e\xea\x0b\x1e\xde\xdb\xc4\ u(yR\xa4\x02\x02(\x15\xa7\x10i3\xf3\xdb\xd6\ \x02k\xc2\x1a\xban\xcd\xc3\xc1:Z_\xb267\x87\ \xc8\x5c\x07\xf2\x12N\x8d\x80\x8a\xc7p\xc3\x19\x84\xcd\xfd\ u\xc8\xa7\xce$\xd0;\xff\x8eh\xa1a\xcf\xc0\xc4v\ l\xdcRO@u\x88\xe1\xf8>B\x1d\xf5\x88A\x16\ \x9d\xc9\x02\xd5\xb6\xc6\xb2Im\xeek\x9e\x0aH\x98}\ \xc9\xf8g\x99\xc4\xff\xc8\xbf\x96\xecL\xea\x0b\xa7y\x09\ \xa9\xba]hB~\xcd\xa0\x1e\xbe\xd1kS\xf6\xa3\x8e\ k\xf5\x0f\x1d\xa0\xff\x0f\xe8\x02[\x0f\xaeB\x17\x04\xba\ 7\x80\x8e\xf8\x86\x87`\x93C\xe8\x88\x03\xfbu<\xdf\ \x19@G\xac3Y\x09(\xa9d\xbd?\x13:@\xce\ w\x5c\xe2{\x8f\xc8 \x88`d\xbb\xff;t\x93\x80\ H\xc4.$\xd4D\x92`\x8bP\xdf\x1b'\xc9\xf5\xcc\ n\xf2\x12\x8c9\xf2\x12\xbd\x94\xbf\xaf\xae\x00\xd7S\xbb\ g\xce\xd3\xbf7\x81\xcf\x90\xb2-\xc7\xbb\x01'\x9f2\ l\xbfb\xe3\x96aU\x9f\x09\x07\xc0dp\x13Z\x84\ \x05\xd4r_\x81\xd6U\xa3\xeeu\xcc\xe6\xa6\xbcL\xd4\ \xb7\xb6\x8b\x907|,\xbb\x84\xee\xc6Y\xd16\xd4w\ 4aj\x87\x90\xb0k\xf5\xa9\x19\xab\x82\xc7\x8c7,\ W}\x06\xac\xda\x89\xaa\x1b\xabu7A.\xb5\xb6|\ k\x9a_nh\x5c\x1c E\xc7\xcc\xdf\x8b\x02\xd2\x0d\ \x1b>\xf6\x09\xf6\xd0\x98\x1dA\xaf\x83<\xc3w\x08!\ \xee\x19\x13\xec\xd9\x8e\xe1C~\xba\xc1\x19s\xcf9\x00\ \xa5g\xf4\xc4\xc0\xa9\xc4\xf5\x83\xa6.\x94\x9b\xe2\x90p\ \x89\x8d\xe0{6^\x08\x8d\xd8^\xde\xe1\xfa\xbe*\x1a\ \xbb\xe3XB\xae\xd5W+\xd9\x87M)8\xa49\xf8\ \xaa\xd7\xcd$\x22\xe4\x0c\x91Z\xa2i0}b_\x90\ 8v\xf9;f\x9d.\xb3\xb6\xf4\x98n\xd3\xdfY\xdc\ \xa5c+R\xe6t\xa7'Y\xb1\xa2\xd9B[\xd3\xac\ <\xdb\xbe\x0a\x92\x0d\x8b\x9e\x19_\x15\x94\xc7\xd2N\x1d\ \x84\x03\x04\x9a\x88\x15'\xd9r\x1eO\x926(p\x92\ `[VW\x8d\xd9v'\xbbO\xd5\xc6\x93\x96\xfa\x92\ \x96\xe9J&P\x0fK\x90\xcd)\x10\xe3\x11U\xee\xbe\ \x96\x97\xdaeN\x94E\x9e\x9d\xc6b\x95\x15\x89\x9e\xe1\ \x8c\xa9\xa7\x8aZe\xd6\xdc\xfe\xfa\x09\ \xfft\xa3\x97c{\xd2Z\x96F,/\x99:\xbe\xb2\ >\xbf$\xdf\xab\x83\x8b\x8a\x1d\x5cqkaf\xac\x84\ \x16\xca\xd8\x08\x19\xab\xbdE\x03o\xc0{\xc1\xd3\x15\x0c\ \xaf\xb7\x9d\xd8\xbfh\xc2O\x90\xce\xff\x9e\xbd\xcb\xd8\x11\ \xc6{\xc6g\x1f\x15\xe5F\xf7&6\xa0dej6\ \xd7i/s\xe7f\x93\xda\xea)\xe9R^\xdd\x1dg\ %4\xa3+\x06\xc5\xf3\x93d\xce\xce\xb8\x09/\xf6\xbb\ m\x11\xb3zyS*\x92\xb6^v]&\xe49O\ \x8fo\xa0\x1cA\x8b\xe2\x04\xc4y\xb4\xe4?\xc3!\xb6\ \xe5a\xf7\x11\xfb\x86O\xfc\xc0\x0a\x1e}\x03A\xdb\xe3\ \xfa\xee\xc3\xb0\xc4\xaa[\xadu2\xe9\xd0Q\x5c\xe4\xd8\ ^\xaf\xb3\x10\x93\xa3\x01\xdc\xd8\x1e\xf2l\x0b:\x5c\xf8\ \x8e\xb0c#\x17\xd9\x0f\xfdr\x95\xf4OLi\x0e\x5c\ \xac\xf5\x89\x13NA\xbf\xec\x13d{\xe0\x15\x8c\x1f\x01\ \xb2l\xd7s\xc1=\xdd1\x5c\xcf!\x1e\xcc\x22(0\ \x10\x81a\xb8oll\xae1\x08\xbd\xfe(pFb\ \x8d \x19\x0b\xca:\x0dM\xf8X\xbam\xdc\xda\x06\xed\ i\x0d\xb52\xbc\x8f\x22\xd9\x91\xa9\x87\xaey\x83^\x8e\ \x17\xcf,\xbc\xaf\xfa\xb5\xfa\xb1\xba\xe4C\xdc<\xca\x0b\ \x09\xa2 \x84\x18\xc8\xe3>\xf1\xbfE\x9a\x0f\xa9P\x9f\ \x19\xcf\xe0\x9e\x16!ih1\x85>\x89sz\x0a\xf3\ \x22g\x0du\xaa\x81\xec\xbb,\x9d\x0b\x10\x99\xe0\xd6-\ \x08\x0c\x9a\x9e\x0b1\xe5N\x884=\xc85\x19\xb8G\ m8)\x88H\xe4L\xb0\xe1B\x853E\x18\x05\x1e\ B\x83[\xe6;\xd0W\x8e_\x80\x9e\xadq\x80\x83\x1f\ \x0ez|\x05z\xd9\xbbz\x04\xdbS\xb85\xd0_\x93\ \x01\xe8\x092\x10\xf2\xf1\xe4\x01K\xe8m8\x19\xd7\xf6\ ,\xf7\x0c\xfa\xb9\x99|+e&K\x02\xe4(\xb6\xeb\ px8\xb3Ze\x19\x04\xca+\xcfy\x18\x1e7G\ \xd7k\x02\xf4\x15q\xde\x9e\x96\x8d'\xb8\x17*A=\ \xc6\xfd\x80\x95\xe0\xd5Y6\x8c\x90\x9b\x03\xec51\xfa\ \x8aP\xef\xd0\x9f2r{%h\x87\xfa\x1f\x00\xfaQ\ \x96\x8d\x1f\xcf\x8f\xe5vw\x7f\x9c;\xa7=H2>\ \xc8.\x07]\xdfB\xc4\x1e\xb1\x9b@\x22N\xc5\x1f+\ \xae\xaa\x00F\x0ev\xc7Ke\x08C'\x04-\x87\x05\ w\xfb`\x8a\xe9c=\x17\xec8@\xbaW\xdb\xa05\ \xcb\xe4\xab<\x0b\xf9\xd0n\x04\xd0b\x05>\xf2 )\ F\xf5M\xbd\x13\x005\xc8\xf5\x87\xbb\x90o\x1a\x90\x81\ \xdd\xc0\x0d\x06t\xd8\xb6N\xb0\xe1b\x0c\xf5k\xc0\xa9\ Oy\x0d\xbd\xa8\xae\xbe\x03\xbe0\xd8eO\x8arP\ p\x0cH%L\xec\xa1\x03\xdd\x18\x22\xfe\xee\xf8$O\ \xb0~C\x10BS\xf6\xd7JhM\xb7iv\x0aK\ \xf0L\x87N<]?eL\xc0\xa1\xea\xf5p\x1bZ\ \xb0\x14\xe6\xa9x@\xa8\xaaY\x1dE\x17blEW\ \xf1\xca\x1d\xc6\x98|\xe3\xe9yd\x1ci\xd0Y\x8b\xb3\ @S\xb1\xf5g\x05\x1a\xcc\xc2\xa1\xfaC\xd5B\xdb\xc1\ \x9c\xcb\xf8\x0b\xd3\x96s\x01\xa4|2\x97.\xa0\xfcB\ yJs\xf1M\xe4\x05g\x22\xda\x9c\x9f\x06\x04\xab\x85\ l[\x22\xd8\x03\xff\xebj\x9f\x8b\xfd\x93\xde\xb4\xfcz\ \xb5`\xc7\x22\x18\xed\x225\xc062\x03\xe0o@\xfa\ \xdb\xf8\x9d\xe7\xc8d|^\x8b\xd0:\xdc%\xa8\x10\xef\ \xe3\x84l\xdf\x8b\xf0B\x22,\xcfY[\xca\xbfH\xce\ M\xb5d\x09\xbf!S\xba\x01+iF\xab\xa4\x1a\xaa\ \xe0\xd7\x5c\xbe\xd8X\xde\xfd\x01j]O\x17\ \x00\x00\x0a\xe3\ \x00\ \x007\xc9x\x9c\xe5[[s\xdb\xba\x11~\xf7\xaf`\ \x95\x17{*R\xb8\x92\x80\x8e\x953\xa7\xcd\x9cNf\ \xd293urzy\xf1\xd0$$\xb1\xa6H\x0dI\ YR~}\x17\xbcS\xa2lIV\x9c\xb4Ul\x8b\ \x04\x16\x0b\xee\xb7\x0b\xec\x85\xc8\xed\xcf\x9bEh<\xa9\ $\x0d\xe2h2\xc0\x16\x1a\x18*\xf2b?\x88f\x93\ \xc1\x97\xcf\xbf\x9ab`\xa4\x99\x1b\xf9n\x18Gj2\ \x88\xe2\xc1\xcf\xef\xafn\xff`\x9a\xc6\x9f\x13\xe5f\xca\ 7\xd6A67>F\x8f\xa9\xe7.\x95q=\xcf\xb2\ \xe5x4Z\xaf\xd7VP6Zq2\x1b\xdd\x18\xa6\ \xf9\xfe\xea\xea6}\x9a]\x19\x06\x8c\xf2\xb3\xf9d`\ \xb3\x81\xbe\x9b\xab`6\xcf\xea\xdb\xc0\x9f\x0c\x80\x8e\x22\ \xc1\xf3\xfb\xd6\x03\xe2\x82\xa0\xe4\ (\x05\xb1\x96\xf0;\xf6c/r\x17 \x8dK\x96\xf7\ \xbf\xac\xb2\xf8.\x0e\x9f\x94\x053\x16\xb3\x05j\xfd\xa7\ x3\x19 \x03\x19\x0e\xb2X\xfe'\xef\x02\xb4\xa2t\ \x5c\xcd>\x19\x1c\x12V\xb3O\x97\xae\xa7\xd2Q\xd5\xde\ \x1a_=H=\xbej\xb0\xd2x\x95xj\x0a,\x94\ \x15\xa9l\xf4\xe1\xf3\x87\xba\xd3D\x96\x9f\xf9-6\x9b\ \x10xw\x9eaM\xf3\xd9\xb1\x94r\x94\xf76\xd4}\ t\x04!4\xaa\xa4.\x1f\xediv$e\xe2O\x0f\ \xce\x8d\xc8\x08\xa0\x07\x0a3\xddF\x99\xbb1\xa3\xf4]\ k\xa8\xe7\xd5#=mD\xc1\x93\xf2\xe2\xc5\x22\x8e\xd2\ \x02\xbc\x0e\xb1\xdf\x10/WI\x98S\xf8\xdeH\x85j\ \xa1\xa2,\x1d\x81\xe2G\x83\xf7@\x7f\xeb\xabi\xaa\xc7\ \x15\xf6\xa3\xef\xc0\x80\x9c\xbc\x0fz\x01\x0e\xe5&\x7fI\ \x5c?\x80q\x05]\xcb\x90\xbc8\x0c\x95\x07&\xe8\x86\ kw\x9b\x0ej\x02`\xd5\x1dJ%!%S`\x9b\ f\xf1\xb2\xa2\x05\x13\xcb\xb6!\x98\x85n4\x81c\x9c\ \x8c\xdfy\x0cL\x12\xfd\x947\xc5`\x12A\xb6\x1d\xe3\ A3$\x9eNS\x05\xf3\xa2V[n\xff0\x00\xa6\ b\x03ct\xfcdSOI6}y2\xdc?\x99\ ]Ov;\xea\x0a}q\x10\x85d'\x80H\x10s\ \x85s&\x88B\xda'\x81\xe8\x109\xf5\xce\x05QH\ q&\x88=\x189\xf8\x14\x8c`\x91Nw\x1f\xfb\xa7\ \xa3Ar\xe8i\x966\x05\x8c\xbc#f\xebG\xc9\xe1\ \x97C\xc9\xa6'\xa04\x9d\xa2\xfd\xe5x-P\xf4\x05\x9e\xe2\xf3\xbd;\xbd J\xa7D\x8a\ \xaf\x8c\x81\xf8\xa9\x91\xa2\xa3\x1cu6J\xfc\xc5H\xb1\ ^\xa8K\x95\xa4KX\xa9\x90O\xd6{R\x95\xf3g\ [\x9d\xafwIi\xe3/\x9a\x82\xc2\xf2\x1e2\x7fp\ \x01\x9c\xd8B`c\x0c{\x11G\x0e\xb5\xa5\xbe\xc6\xbd\ \x03\xb6\x93\x81Ia\xf7`\x82J\x07\xa8L&-A\ \x1c\x9b\x88\x83C\xbe\xc2\x10\x8e-\x1dvs\xaa\x87`\ bI\xf0\x1c\x98\xf6\x0f)\x9f\xd7\x84\x0d{\x16\xe8r\ \x07\xb5\x88\xa6\xd4\x9e\x08>\xac;J\xef\xac\x0d\x16\x14\ \xb5\x12\xa0o\x81\x96\x89\x19\xec\xd7R\x88\x5c^\xdb\xc2\ \x92K!\x9f\x83\x0b\xe9N\x0401\xce\xe1\x12\x1d\xc2\ \x08(0\xb79\xa2/3\xdeC\xc8\xb1\xb0\x10\x149\ \xf9T\x16\x0c\x84<\xf0\x05\x98\xd8\xb7\x85\x89Y\xb9\x9e\ \x9e5\xa4\x1c\x19\x8c\xd0s\xa8\x80\xad\x89g\x18\x1d\xb0\ \x15nam*\xd4y\x1e\x04\x8c\xfb@\x00?m\xaa\ \xe9\x14\x88\xaa\x81\xc5\x1d\xac\xd2G\x15\xaa\xcc\x0d\xbb\x1c\ \x1bz\x8al\xbb\xe9K\xef\xcb\xa8`2\xc8\x92\x95\xaa\ ;`@\xa6\x92H\xfb~\x88\x8b\xc0\xe1cd|\x82\ ?\xc3\xb6\xdf\xf7\xe2\xe5\xb6\x80<\x0dt\xf0q\x0f\xee\ ]e\xde\x5c5\x90/\x93xy\x9f\xfb\xf3\xf6~\x92\ 7\xdco\xef\x13\x15B\xd0\xe0\x86i3\xb1\xae\xd2\xe5\ \xc5\xce\x06\xed\x08\x82\x027\xbc\xdf\xdf\x043\x08yz\ \x9a\xf39WQ\x90\xa5\xbb\xcc!\x12\xca\x02\x98\xfb\xbe\ \x16\xaf\xdb?]\xa5\xea>\x8bC\x05\xb1\x88\xa7\xda<\ \xc3\xa5\xaaK\x9bM\xeb<\xf0\xd5\xfdc\x14g\x15\xa3\ ZS\x17+\xcc8\x5c:\xa78\x5c\xfd\xa1g\xba\x12\ \x98K\x9e\x18\x96\xec\xcf\x86\x8eu%\x0eD\xfa\x17I\ \xa7\xf1E3\xa9]ngF\xd1TJ\xbe\x1bE\xeb\ \x95\xc4\x87\x10:k\xef\xc2\xf3\x9bo\x19F\x97\xb9\x0d\ lNyn\xa3\xbfa\x01\xbfY\x82\x8b\xef.W\xe5\ \xe8\xf2:7\xb1A\x18\xfd\x18*\xd1\xa9MQw\xd0\ \x17\x90\xbe\x92\xb7T\xcbEW\xcb\xdde\xea\x0e\x08R\ \x94\x1fB5\x95f\xf4\xf7\x9b\xea\x85\x5cT/\xbb\xdc\ \xce\xd6\x0b\xe1\xc7#\xfe\xbfS\x0fB\x16-\xad\x80\xea\ 5j\xcb7\xad\x08\xfd\xb6\xca>]\xae$\xd4\xe1v\ \xae\x1d`\xba\xb7>\xbfGM\x08|\xd8\x1b\xe8\xe1C\ \xe0.\xe2\xc8\xbfL\x95\xbe\x8f\xd9\xd9\xabq\xbf2\x07\ >\xc4\xb1\x90\x83\x91c\x0b\xa3\xbc\x14\x92\x81b\xd0\xb0\ \xb8\xe3\x90\xa1\x15W\xcc\x86\xfd\xecm\x03\x0e\x13\x16\xe0\ \x9b\xac\x9d\x0a\xe6\x0bm\xa2\xfd\xec\xce\xd6\x9b\xa0\xffe\ z{+\xb5\x95!\xf7\x05#\xc5K,4\x08\xde\xc5\ \x8f\x11\x8e\x98\x95R\xf2\x0b\xf3B\xf1\xfb\xf1uLy\ \xda\xbb\x5c\xfd9\xbb\x8e)O}\x97\xbb?\xdb\xd1\xc9\ '\xccvnM\xfc\xa5\x1c>?\xe83\x9e\x83\x85N\ \x06\xefz\x92\xf9\xc3pCF\xdc\xec\x13\x1b\x0cO\x0e\ >\x163\xd1l\xfa[h$\x10\x1fII\x9d\x86\xd3\ \x86L\x06\x94Y\x98\xda\x045v\xbb%}\xb4\xb3r\ \xae/E}d\x95\xaa\xe4N\x1f\x8c\xfa-\xfa\xd2\xae\ _|\x83r\x1bD\xd3\x8c\x0bZ\xd4\x0e\x85\xc5\xe1Y\ \x91\xf3\xea\xd2\x1b\xb7\xb0\xc0\xc2\xd1\x95D\x10\x16&\xe0\ \xe8@\x95\xb7\xa7 I\x18\xe6B\xd7\xe2L\xdb\xc2\x5c\ R\xbc[T\xde/\xc6\x99\xf4\xd5E\x9eg\x0c$\x7f\ \x09\xf1\xdcz\xb4e\xc7@\x08\xb5(\xe4NLt,\ \x04\xdb\x164\xd96\xebZ\x88\xb4\xa8\x8d\x18\xe5\x1d\x0b\ \xd9\xa7=\xd2B\xbe\x85\xf0\x0e~V\xf8\xb6\xc9\x83\x98\ &\x18\x91M\xc0\xe6\xc9\xae\xf4X\xd8N\x8b\x97\x96\x1e\ \xf2\x07\xc81\x89d\xbb\xd2\xef\xd0>/\xfd.\xd5\xe7\ >'\x8a\x18\x81<\x86\x96/\x94\x89\xb01\x93\x04<\ *\x98\x17\xd8?\xd6\x09\x0cd)\x08\x11\xe7\xe6;\xc2\ \xc9\x10G]8\x91\xc5$\xa5\xac\xbd[\xe4x\xc2\xce\ \x82\x18k\x85\x9e\x1aO\x22,\xe2\xd8\x9c\xd9]<\xf7\ h\xbf\xa35\xb5t\xdd\xfb\xba\xb7+>#\x90I\x22\ \x87u\x8d\x89\x0bKpHm\ \xb3\xb8\x1d\xe9\xb3\x9f\xf9U\xed:\xf4\x81\x5c_\x1f\xec\ \xbd\xaa\x1f\xf1\xc1\xad\x17\xd8\xd2\x9d\xa9\xdc\xcb\x83`\x85\ \x9b/;\x1e\xe2\xc4WI\xd5e\xe7\x9fNW\x19\x08\ \x14G\xa7\xaf\xba8j\xaeu?\xea\xefO\xe7\xae\x1f\ \xafA\xe4\xdd\xce\xafq\xbc\xc8U\xbc\xd7\xe3\x81o#\ \x8e\xc5\x18f\xc8\xde\xeb\x84\xa9\x98~Q\x06\x9d\xce^\ \xe7*I\x00;3t\xb7\x0a\xe4\xc9\xbf\xaa%\x9b\xce\ \xe3\xf5,\xd1\xb8\xb4\xde\xcb\xd4#u\x8f\xf9\xf0\xa0\x0f\ E\xf7u\xfb\xb1\xb7\xd2\xa7q\xcd\xf2-\xc8r\xb3K\ \xb1\x0e\x22\x90\xd3,O}c\xc6\xf6\xd0()\xaa\x93\ \xe0\x82\xd1\x03\x14\x9b&\x9e\xdb\xed\xda\x1e\xeeZ\xb8\x9b\ `\x11|U~\x13\x9fu\x14\xe1\xcd\x95\x07\x01\xebC\ \xec&\xbe\xe6\xb2\x1b\x97h\x04*#,\xe2\x90\xcdV\ \xb7u\xac^7@\xc0\xd1\x98\xafZ,\xeb\x17L\xcd\ \x02\xe9\x7f\x05\xa6\x22\x17\x1a\xfd\x9d\xd64r\x97%\xbd\ \xe6\xae\xd7U\x1aG\xe1\xb6$\xdb\x0f\xa0NyP\xf1\ v\x0fZ\x93\x15\xb3\xe8\xf8\xcc\xdem\xdcv\x1a\x8b\xb8\ i\xd3\x8e\xde\x8b\xa6m\x93i\xdc\x8e\xf6Wx\xde\xbe\ P\x99\xeb\xbb\x99\xdb,\xf7\xaa\x85\x82+\xac\xb4\x9b\xf8\ \xd3\xf1\xdf>\xfcZ\xe7\x00\x9e7\xfe{\x9c<6\xe1\ \xbb&p\x1f\xe2\x15\x18d\x9d\x97\xe8\x93\xe6\xdeX;\ a7{\x1f,\xc0v\xf4\xc9\xf8?n\x16!l<\ uG\x87X\xeb\xa1aZ\xb0MTq\xd8\xbf\xf7t\ \xbb\xef-\x02=ht\x97Az\xf7QO\xd2\xceU\ F\xe5\x83V\xe9DK\x0e\xc8\xbcJA\xf3\xbbY\x03\ @g\xb9\xd7\xe6\x12\xba\x0f\xfa\xa5\xe8'\xddi\xec\xf5\ \xce\x92x\xb5\x5c\xc4\xbe*\x87\x97\xfd\xad\xbc1\xbf\x0c\ \xddL]\xa3!%7\x15\xb2\xb3\x8e\xb5\xd9\xb2\x892\ {\xc7B\xda0$V=\x5c\xab\x22H\xbc\xb0\x05Z\ +\xdb\xadOh\xe7\xa9o\x93\xf8\xd5y\xef\x03\xe6\x04\ w\xf3^\xd2\xae\x0f\x83hEyx\xafh\x0c\xa8\xab\ \xa4j\xcdoB\xd85\xb21\xab\xda|\x17v\xec$\ q\xb7\xe3(\x8eT\xbb\xb5\xc8\xfe\xc6v\xd5\xd6wr\ \xbc\xce\xf7\x11k\xa7\xa4\x07\xe04i\xe7<\x9a\xde\xf7\ i\xbb\x1e\xa7\xf7\xfaN\x03\xec\xe9\xa4\xf3Bu\x17\xc4\ \xbe\x1a\x0cd!\x882V\x95b\xca[\xa9\xd5\x81l\ !m{h\x12i9\xba\x9d\xb5\x1f\xa7\xad\x10\xb0\xdc\ \xeb\xbd\x88\x00\xa1\x9bC\x1a\xaaO\xd8\xb75\x94G3\ \xfc\x87\xd3\x93I_\xa7\x83n\xc5\xa7c\xc6\xf5\xff\xd6\ (P\xa1\x88<\xec\xd6k\xf6\xec\xf6a\x95e\xfd\xef\ :\x9e\x13(\xaf(\x112\xc4\xc4\xf8\xdd\xe0\xc4\xf8d\ p\x06\xcb\xb5SOj\x8aQ\xa8-\xd0K%\x9f\xe3\ \xcc\xf8(@z\xcd\x88\x88\x83f\xd4\xc1\xef$\xc0:\ \xf6s\x18064!c\x03@l\xa2_8\xc05\ $\xf0\x88J\x8d\x1f\xb2\x08\x96\x0eqv*\xa5m\x14\ M\xfb,\x1c\x1b\x97\x06\x1b\xaf\xf6\x02\x10Qy\xf0i\ \xd5\x8ff\xc5V\x0f_\xb7\xda\xf9\xbc\xbf\xfa\x0fz\x1b\ N|\ \x00\x00\x19\xf1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4393-9\x22\x0a \ id=\x22linearGradi\ ent4399-7\x22\x0a \ x1=\x2248.714352\x22\ \x0a y1=\x2245.5\ 85785\x22\x0a x2\ =\x2240.714352\x22\x0a \ y2=\x2224.58578\ 7\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(1.2\ 856487,1.4142136\ )\x22 />\x0a \x0a \ \x0a \ \x0a <\ /linearGradient>\ \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a <\ stop\x0a id\ =\x22stop3418\x22\x0a \ offset=\x220.5\ \x22\x0a style\ =\x22stop-color:#ef\ 2929;stop-opacit\ y:1;\x22 />\x0a <\ stop\x0a id\ =\x22stop3420\x22\x0a \ offset=\x221\x22\x0a\ style=\x22\ stop-color:#a400\ 00;stop-opacity:\ 1;\x22 />\x0a \x0a <\ /defs>\x0a \x0a \ \x0a \x0a \x0a\ \x0a \ \x0a image/svg\ +xml\ \x0a \x0a Path-Sto\ ck\x0a \ 2\ 015-07-04\x0a http://\ www.freecadweb.o\ rg/wiki/index.ph\ p?title=Artwork<\ /dc:relation>\x0a \ \x0a <\ cc:Agent>\x0a \ \ FreeCAD\x0a \x0a \ \ \x0a FreeCAD/\ src/Mod/Path/Gui\ /Resources/icons\ /Path-Stock.svg<\ /dc:identifier>\x0a\ \x0a \x0a \ F\ reeCAD LGPL2+\x0a \ \x0a \ \x0a https://\ www.gnu.org/copy\ left/lesser.html\ \x0a \ \x0a \ \x0a \ [agryson] Alex\ ander Gryson\x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a <\ g\x0a id=\x22g68\ 5\x22\x0a transf\ orm=\x22translate(-\ 0.00545247,0.011\ 36021)\x22>\x0a <\ g\x0a id=\x22g\ 1001\x22>\x0a <\ path\x0a \ d=\x22M 34.38968,12\ .296249 26.13314\ 3,9.1276952 c 0,\ 0 0.698213,-1.61\ 097 1.413433,-2.\ 147553 0.715222,\ -0.536585 1.2802\ 51,-0.692294 1.3\ 09743,-1.246019 \ 0.02949,-0.55372\ 9 -0.32632,-1.88\ 6354 -2.147541,-\ 2.536291 -1.8211\ 75,-0.649947 -3.\ 878365,-0.701376\ -4.252944,0.408\ 176 -0.374579,1.\ 109555 0.564174,\ 1.602571 0.33978\ 9,2.33125 -0.224\ 388,0.728681 -0.\ 534601,1.675005 \ -0.534601,1.6750\ 05 L 12.269135,3\ .5761202 9.13838\ 4,11.834795 c 0,\ 0 -0.894049,-0.2\ 87095 -1.3983,-0\ .924099 C 7.2358\ 3,10.273693 6.80\ 5774,9.2888832 5\ .868817,9.110609\ 2 4.931859,8.932\ 3332 2.981092,10\ .367131 2.627968\ ,11.422274 c -0.\ 353124,1.055144 \ -0.505964,2.8795\ 56 0.128818,3.50\ 4837 0.634782,0.\ 625281 2.438949,\ 0.200839 3.35445\ 1,0.433524 0.915\ 504,0.232684 1.4\ 06336,0.424782 1\ .406336,0.424782\ l -3.992574,9.8\ 0561 9.78357,3.7\ 66191 c 0,0 0.06\ 975,0.780993 -0.\ 709836,1.480805 \ -0.779588,0.6998\ 14 -1.268626,0.8\ 22458 -1.590464,\ 1.638618 -0.3218\ 35,0.816157 1.10\ 3304,2.630067 2.\ 172588,3.111358 \ 1.069283,0.48129\ 6 3.868534,0.885\ 952 4.190371,0.0\ 698 0.321838,-0.\ 816158 -0.67684,\ -2.274741 -0.345\ 171,-3.275473 0.\ 331668,-1.000734\ 0.481857,-1.381\ 606 0.481857,-1.\ 381606 l 8.18054\ 5,3.201619 3.807\ 507,-9.815236 c \ 0,0 0.09565,-0.4\ 02216 -1.090739,\ -0.426881 -1.186\ 392,-0.02466 -1.\ 9329,0.750905 -2\ .741124,0.246167\ -0.808224,-0.50\ 4738 -1.395649,-\ 2.367637 -0.9996\ 15,-3.531602 0.3\ 96034,-1.163964 \ 2.1331,-3.812936\ 3.12639,-3.2985\ 75 0.993291,0.51\ 4358 0.574005,1.\ 417992 1.633458,\ 2.08386 1.059453\ ,0.66587 1.71389\ 5,0.922 1.713895\ ,0.922 z\x22\x0a \ id=\x22path424\ 3\x22\x0a st\ yle=\x22fill:#a4000\ 0;fill-opacity:1\ ;fill-rule:eveno\ dd;stroke:#00000\ 0;stroke-width:0\ .892755;stroke-l\ inecap:butt;stro\ ke-linejoin:mite\ r;stroke-miterli\ mit:4;stroke-das\ harray:none;stro\ ke-opacity:1\x22\x0a \ inkscap\ e:connector-curv\ ature=\x220\x22 />\x0a \ \x0a \ \x0a \ \x0a \x0a \ \x0a <\ path\x0a \ d=\x22m 48.661765,3\ 2.042461 c -0.06\ 648,0.0011 -0.13\ 246,0.0056 -0.20\ 0229,0.0093 -2.1\ 68596,0.116885 -\ 3.105868,1.57814\ 1 -3.105868,1.98\ 7235 0,0.409097 \ 1.229309,1.75296\ 2 1.229309,2.395\ 825 10e-7,0.6428\ 62 0.06053,1.462\ 567 0.06053,1.46\ 2567 l -8.675012\ ,-0.06036 h -0.0\ 6053 v 8.594324 \ c 0,0 -0.817715,\ -0.003 -1.755491\ ,-0.236796 -0.93\ 7772,-0.233769 -\ 1.233258,-0.8728\ 96 -2.346863,-0.\ 872898 -1.113604\ ,0 -1.464056,2.0\ 44164 -1.522666,\ 3.213005 -0.0586\ 1,1.168843 0.762\ 953,3.387521 1.8\ 76559,3.329082 0\ .999033,0.0014 1\ .322291,-0.36893\ 1 2.286328,-1.04\ 9334 0.703331,-0\ .292211 1.578547\ ,0.05572 1.57854\ 5,0.05572 V 61.4\ 5169 h 8.623791 \ c 0.01741,-0.152\ 406 0.135284,-1.\ 324035 -0.358548\ ,-1.871158 -0.52\ 7497,-0.584421 -\ 1.055098,-1.2878\ 47 -0.996486,-2.\ 047595 0.05861,-\ 0.759747 1.28893\ 3,-1.869239 3.10\ 5868,-1.810797 1\ .816934,0.05844 \ 3.86953,0.759951\ 3.86953,1.98723\ 5 0,1.227287 -1.\ 172621,1.109795 \ -1.289843,2.1033\ 1 -0.117225,0.99\ 3515 -0.05588,1.\ 694722 -0.05588,\ 1.694722 H 61.64\ 8672 V 50.814396\ c -3e-6,3e-6 -0\ .701003,-0.52708\ 9 -1.345721,-0.1\ 76437 -0.64472,0\ .35065 -1.290756\ ,1.462567 -2.169\ 918,1.462567 -0.\ 879164,-2e-6 -2.\ 697717,-2.164377\ -2.463274,-3.74\ 2315 0.234443,-1\ .577941 1.232143\ ,-3.388331 2.169\ 916,-3.213004 0.\ 937776,0.175326 \ 1.289945,0.99281\ 2.28633,1.10969\ 4 0.996387,0.116\ 882 1.639079,0.1\ 16076 1.639079,0\ .116076 L 61.648\ 672,36.221225 v \ 1.676148 H 50.92\ 4811 c 0,-2e-6 -\ 0.472428,-0.7012\ 05 0.17229,-1.69\ 4721 0.644715,-0\ .993516 1.05702,\ -1.28704 1.05702\ ,-2.163671 0,-0.\ 849235 -1.431386\ ,-2.029958 -3.49\ 2356,-1.99652 z\x22\ \x0a id=\x22\ path5248\x22\x0a \ style=\x22fill\ :#888a85;fill-op\ acity:1;fill-rul\ e:evenodd;stroke\ :#000000;stroke-\ width:0.892755;s\ troke-linecap:bu\ tt;stroke-linejo\ in:miter;stroke-\ miterlimit:4;str\ oke-dasharray:no\ ne;stroke-opacit\ y:1\x22\x0a \ inkscape:connect\ or-curvature=\x220\x22\ />\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x0dj\ \x00\ \x00]\xafx\x9c\xed\x5cio\xe3F\x12\xfd>\xbf\x82\ +\x7f\x19#$\xd5\xf7\xa1\xd8\x0efg\x92A\x80\x09\ 6\xc8\xb1\x0bd\xb1X\xd0$%sG&\x05\x92\xb2\ \xa5\xf9\xf5[E\x89\x12iQ\xb6\xe5\x91-'\xb6s\ X\xec\x93\xfd\xaa\xeaUUw\xcb'\xdf\xcd.\xc7\xce\ U\x9c\x17I\x96\x9e\xf6\xa8OzN\x9c\x86Y\x94\xa4\ \xa3\xd3\xde\xef\xbf\xfd\xe0\x99\x9eS\x94A\x1a\x05\xe3,\ \x8dO{i\xd6\xfb\xee\xec\xcd\xc9\xdf<\xcfy\x9f\xc7\ A\x19G\xceuR^8?\xa6\x9f\x8b0\x98\xc4\xce\ \xdb\x8b\xb2\x9c\x0c\xfa\xfd\xeb\xebk?Y\x16\xfaY>\ \xea\x1f;\x9ew\xf6\xe6\xcdIq5z\xe38\xd0+\ */N{J\xf4\xf0\xe9\x22NF\x17\xe5\xea1\x89\ N{\xd0\x8eKi\xab\xe7\xc6\x0b\xd2E\x83\xe5\xc8\x83\ f\x8d\xcf\x9c\xb7$ $\x1cJ\xce\xad\xeb0\xc2\x98\ G\xe0_q\x5cu*`Y\x13\xf8o\x10ea\x1a\ \x5c\xc2j\x026\xf9\xef\xf7QR\xbe\xcf\xd2\xa2\xcc\x83\ $-}\x98v1e\x12_\xff=\x9b\x9d\xf6\x88C\ \x1cM|Q\xfd\xaf\xaa\x02\xc8\xd2bP\xbf\xc2io\ \xdb\x8aq\x8eb\x12\x84q\xd1\xaf\xcb\x1b\xfd\xeb\xb7Y\ \xf5\xaf\x0b\xfc\x22\x9b\xe6a<\x84!b?\x8d\xcb\xfe\ \x87\xdf>\xac*=\xe2Ge\xd4\x18f6\x86\xb1[\ \xefp\xcd\xab\xd9\xa9\xb5\xb6_\xd5\xae[w\xb5c\x84\ \x90~\xbd\xea\xe5\xab]\x8d\xee\xd92\x8f\x86[\xe7&\ \xac\x0f\xf8C\x0b\xaf\x98\xa7e0\xf3\xd2\xe2\xa8\xd15\ \x0cW=C\xd4\xa4\xe4*\x0e\xb3\xcbK\x90\xc4\x02\xbc\ V\xe3h\xddx2\xcd\xc7U\x8b(\xec\xc7\xe3\xf82\ N\xcb\xa2\x0f\xd2\xef\xf7\xce\xa0\xfdI\x14\x0f\x0b\xec\xb7\ P\x22|\xe2R\xd1\xaa\x0ej\x01\x8e8\xc8?\xe6A\ \x94@\xbfE\xbb\x866\x85\xd9x\x1c\x87\xa0\x87\xc1\xf8\ :\x98\x17\xbdU\x03\x18\xaa\xddUsF\xccrT\x18\ \xb7(\xb3I\xdd\x18\x14\xad\x9c\x8fA/\xb0\xd0\x83!\ \xb3|p\x14\x0aPL\xf2mU\x94\x81N$\xe5|\ @{\xeb.\xd9pX\xc401i\x94UV\x00\x1d\ `.\x0av\xd9\xbf\xfflq\x14\x89\xfb\xccF\xb7\xcc\ \xc6V\xb3\x9d\xf4\xdb\xeb\xbe\x1d\xc7\x0e\x98\xa8\x15\xbd;\ q\xde\xb2\xb2\xc6+\x11v\x07X\xf7\xc6|+\x8e\xcd\ \xd9\xc4\x1d`u\xcc6\x0cc+\x86\xdbf\xfbJ\x1c\ \x057\xdc\xe3{\x00\x92\x1a\xb3;\x90\x5c(\x19\x88\x07\ \x00I-\xd9\x1dH\xcd\xec0\xdc\x13\x90w\x19v\xc5\ \x8f\x83\x8b<\x06\x1a;\xbaUu\xbbDb\xd7\xe3\xd0\ \xd3\x1e#>\x13\x5c\xf2\xb5\xa6\xce\xa1\x94k_\x1aC\ \xe9\xbat\xc6\x00\x02\xbd\xd1\x16J\xd9F\xdb\xd1r\xb2\ \xdf\xd3\xa4\x04\xf6\x9e\x16q\xfe+z\x94\x7f\xa4\xbf\x17\ \xf1F\xab\xdf\xf2 -\xc0o\x5c\x9e\xf6J\xfc8\x06\ \xff\xfc\xd6\xa3\x8b\xa9\xb8\xeb\xb1\xe5\xf0\xc7k4\x1f\x03\ 7d\xc6\xdbp\xb3m\xdc\x84\xf15\x857l\xe3&\ $\xbc\xac\xd4F\xb6p\x13j\xa3-\x94rq\xb3\xed\ \x1ep\x03\xd8\x8cT\xc2h\x97\xfa\x82\x0aF\xb9zT\ \xdcn\x9ax\xa7\xc2y\xa4\xadr\x9bj\x04\xa5Rt\ \xa9\x1c\xa3]*\xc7\xc9_@\xe5@\xa5\xb8g\xef\xd0\ 9O?\x5c\xebH\x97\xd6\xb1\xa5\xd6\xe9g\xafu\x9d\ \x80 b\xf7\x8f(\xc0%\x06F?,~\x81\xc9$\ \xe6\x11;\x040\xdd\x1e\xe7~\x01\x0cL\xa7\xbd\x838\ \x8c\xdb\x89OY\x22\xf6lfl\xa1\x97\xd4\xf5\xa8^\ (\xa3:\xde7\xb7\xae\xda>\xaa\xcf\xb8\xdd\xd7\x02t\ R=:C=\x98YY\x17\xb3\x8a\x15\xb3\x1e\x108\ \xb0#\xf1\x8a\xdb\xee\xb6\x0a\xb8\xedY\xdf^\x8a\xa9r\ \xa1\xed\xd3j\xdc\x1e\xc3\xee\x83\xe2f\xe8\xab\xa5>\xc4\ R\x0d\xdf'n\x9d\x01\xd8c\xa5+\x87\xc5m\xaf\xe9\ \xd2\x0bb8I\xcd\xab\xa5>@\xe3$#\xaf\x1a\xf7\ 0\x8d\xe3{\xe5\xb8\x17\xe3S%\xdf3\xc7\xbd\x14K\ \xe5\x8f\xbf\xa9\xf1W\xf4\xa9\x92\xef9\xf6=\x00\xc3\x9d\ \xf4\xf1\xd0\xac\xfa\xb4:0\xc5\x93\xcc\x08OD\xdf\xac\ V~\x1e\xacV1\x09Fq\xb5o\x03\x80\x0d\xab\x9f\ e\xc5y\x96Gq^W\xa9\xea\xa7U\xb5\xdc\xdaY\ \x1c<\xbfi\xcb\x07G]\xd5\x93\xee\xfa\xe2\x22\x88\xb2\ k\xb0\xa5\x9b\x95_\xb2\x0c\x90d\xbe\xa5\xcaP)o\ V\x87\xb3\x8a\xe3,\xe5\x8c\xda\x8d\xcaye\x9cV\x13\ \xb6\xdatXWN\xf3\x1c\xc4\xe5\x8d\x83y\x0c\x8b\xaa\ ~\xd5q{q\x91]\x8fr\x04\xa7\xcc\xa7\xf1\xcd\x9e\ Q\x16N\xf1\xb0\xd2\x9b.\x14b2\xbb\xd9\x02\xfbz\ \xe7\xe7x\xe8\xdc5\xc0u\x92\xc2b\xbd\xe5\xc19\xe5\ \x84oiQ\x1f\xa6\x1b\xb1\x01\xda\xb2\xc5\x0c\xfb\xd3-\ \x95\xf3\xf5.\xde\xcd\xaa\xcb`\x96\x5c&_\xe2\xa8\xa3\ I\x91\x06\x13o4\xce\xce\x83q\xf7\xfbWjr\x11\ \x87\x9f\xe3\xfc<\x0b\xf2j\x8c\xa5\xa9\xb6 \xa8\x95\xb3\ \x9c\xe3\xe1\xfal\x8ee-\xa3\xc3\x02N\xc8\x9a\xa2\xe2\ \xcb\x09\x9e\xb3Ww\x16\xd6\xfe\xe0*)\x92s\xdcX\ l\xbc\x0c\xb4M\x03(\x8cn\x94\xe2\xcb/\xdb\xe3\xe8\ h\xd6E\x96\x8e\xe77\x9b-f\xc1[\x01\xbe\xbcY\ :_\x94\xd6V\xb4i'}\xd0\xd0x\xe6O.\ &\xdfUS\x9d\xbe\xcb\xcbk\x80\xac\x1au5Fk\ \xe4\xc9\xf4|\x9c\x14\x17q~\xd6\x80\x00\xa1~7Z\ \xed\x13o\xae\xeb\x07\x98\xfb\xfd\xbb\x0f]\x8bB\xb1o\ v\xafZv\xcc\x85C&\x114M\x86\x09\x94/\xc7\ \xed\x17y\xd8\xff)\x8b\xfa\x88_\xff\xe34\xe9\xff\xb2\ \x94G\xd1O\xc2,-\xfak`\xf1\xb2J5zc\ \x986vH\x04\xc5C\x96\xe7|\xfa\xf8\xf3'\xf6\xcd\ \x8e\xab\xbc9\x1f\xce6N\xc28-\xe2J|\xc5R\ ~\xa3tZ\x09.\xcc&\xf3q<,\xfb\xe3\xb8\x00\ \xff\xe8_\x94\xa8\xab\x8dN\xad\xd5\xc0\xea\xcb<9\x9f\ \x96\xd9n\x12\xfbw0\xca\xe7`\xce\xffq\xde\x8d\xe3\ Y\x00z\x92;\x1f\xab\x92\x1d\x97\xd7\xf1\x02U[4\ \xcd\xfa\xb0\xa1a\xb9'\xfd\xda\xb4\xab\xa7\xd1\xda\xe4[\ ncE~\xe3\xe0<\x06\xee\xfc\x84\x95\xceF\xed(\ \xcf\xa6\x93\xcb,\x8a\x97\xddk\xaa\x18\xb5\xa8\x11\x1c\xf9\ z\x1b\xa9\xec\x0a* \xect\x85/\x8e\xd7\x87?\xa3\ \xf5\xda\xab1\xa8\xa5\xcd\xfb\x0f\x8dQ\x80?\xf2d\xf6\ \x16hNq\xc695.\xc1\x7f|)\x0d\x97\x02\x1e\ !.V\x96Pf\x84\xcb\x8co\x19\x91\xdc\x1c7\x09\ j\x02\xca\xdb\x14\xd3\xf2\xecg\x08d2\x00\x9ay\xbb\ y(j\x8f\xbf\xc5\xda\xf51\xd0\xe21\x9f\x8e\xe3A\ \x9a\xa5_ \x8a\xf8\xb6(\xf3\xecs<8\xe2\x84\x9d\ W7>\xf0q\xe1)\x07\xac~\xc4\x91\xff\x97%\xe9\ \x00\x80L\xa3\xba\x14\xe8,\xce\xc7\xe0\xd5\xca\x81\xa8\xcb\ \xa2\x00\x02\x8b<\x0f\xe68A\xdck\xbe/\xe0\xf3\x93\ c].\x9d\x7f:\x8c:c\x87\x0aW:W\xf0\xcb\ \xf9\xd2j\x88H\xe2b\xf1\xe8\x82\xb5k\xd6\x11h\x9a\ B\x04\x9a\xe5\x1eD\x15WA9\xcd\xe3\xf6\x01Z\xe3\ \xcaZ\x0a\x82G\xde\x85\xc0!\xc4\x9f6\xe9n\xa0\xba\ \xb5\xdbC_\xa4^\x0e\x08\x84v\x01\x22,\x00\x02\xa8\ \x8c\x1df\x5cJ\xba\x10\xb9C\xd4\xd5\x19\xcf\xc1e}\ 0Xm\x07\xac\x5c\xbb\x12q\x15\xd2\xf9\xe4H\x09&\ \x85\xb8\xf2\xddp\xc5\xb3\xef\x17\x0b\xab \xbcK[\xc1\ r\x99\x05\xbb\x15\x0cu\x95q\x97)\xe7\x8f\xad\xa0\xd6\ W\xbb^(\x86`\xf1\x8d\xbb\x13+\x14)\xe4l\xc4\ \x10.]\xa1}E\x14\xd3P\xe4r\x83\x14 \x5c\xe3\ \x10\xac\xa6\x80\xafO\x8d0\x94\xdd\xa2\xb5\xb8\xbc\x15x\ \xab{t\xb7\x82W\xe1\xf5g\x00\xcfR\x8ftX\xb6\ \x05t$\x11\xd4\x95\xc2\x87\x1c\x95I(r\x85r$\ w9\xf3\x91G\x11?F]\xc0V+#\xf4}\xe1\ []\xfd|B\xf8\x9e\x9f\xadl\x00\x0e6.\x08\xda\ ;\xe3K&\x05r\x05^\xfdc\x9b\xd3\xe6\xe6\xc9\x9d\ \xf6\x9d\xfeQ\xb0\x83\x13\xf9\x16`!\x18R\xe0\xa3\x16\ |\xda\xe1\xa3\x1a\xc0\x0arH`\x9f\xc0V6!\x92\ .W\x08\x91F\x88\x88\x0b\x91\xd1\x95cnAH<\ \x1b\x84\x1e\x87\x8c\xb7\xf8\x12\x97\xf3\xb5#a\x02\xe2k\ \x17>\x836\x91[\xb0z\x5c3=\xe9\x8fnM\x93\ \xbcfx\xb1K\xa2\x04$\xcf\xa8\xb1\x8ac\x9eD9\ S\xeak\xd2$\xbct\xf1\xfc\xa8a\xe74\xc9\x93O\ \xae\xf8\x8f\x1b6\xa9.P\xbe>U\xc2\xbb\x22\x07\x17\ \xf7!#*\xd6\x11Q\xed#W\xc2\xcb$/\x16X\ \xc8\x95\x1a\x97\xa8\x1b\x0a\xfb\x9a-\xed\x9a-y\x1d\xc9\ \xfck\xbet\xef|\xa9\xd3\xbe_3\xa6g\x9f1\xdd\ \xd8&8|\xce\x84\x97\xdc\x0e\xce\xe7\xfbH\x99\xbc\xd7\ \xa4\xe9\xce\xa4\xe9\x86\xf3zM\x9bnM\x9b<\xfe\xa8\ h\xdd\x9985C\xe3]\x12'*|+\x14\xe3\x0a\ \xcf\x9a\xa8&\x5c\x13\xfdU\xa9\x93\xe4\x87\x0f\xf9\xf6\x90\ :\xd1'W\xfe\xc7\x8d\xa1L\x17({H\x9d$?\ \xbcG8dp\xd5\xb1\x93\xbf\x9f\xd4Ir\xfdb\x81\ \xadR\xa7\x8e\xa0\xf55wz@\xee\xd4q\x5c\xf2\x9a\ ;\xed\x90;u\x9cx\xbe&O\x7f\x86\xe4\xe9\xe9w\ ?\xef\xa4\xf4g\xb8\xab\xfc\x90\xec\xe9\xf9d\x06\xcf7\ {z\xfaKJ\x7f\xe6\xec\xe9q\xd1jfOm\xd8\ Z\xe4\x17\x0e\x85\x90t\xbb\x85\xc6W1L\x12\xad\x80\ %\xd5O\x1bX\xe2k\xcb\xa5\x99\xcc\x9a\x00\xc3Z\x06\ \xe7\xd3\xb2\xbc\x1d\xf4\xae?\xccP!+\x89o\xb4\x96\ \x04\x5c\xb4\x04\x8fl!os\xde\x03\x03\xfaFZ\xcb\ \x85K\xad\xcf(\xf8\x19{\xef\xb2\xb1\xe3q_sn\ 4\x90\xa9o\x95\x840\x1e\x5c\x16\xa30\x89t\xf1{\ \x12\x9c\x0a\x09\xe9\xc1\x95C0e\x22\xbe5J\xe1\x0b\ \xf8\x82j\x0b\xfe\xac\xeeO\xeb\xfe\x02H\xc3'TK\ \xa5]*}\xab\x99\x02\xaf\xb8h\x84\xb9\xe5r\x12\xfc\ \xce\x0fU\x80\x90\x8b\xfab\xa41\xc2\xf1,\x0c/\x99\ \x12U\x0ej,3\xed\x88\xa3V\x15\xccX=\xd3b\ \x9f\xbb4\xa5\xa1\x03\xb7\x08^F*\x8c\xf4\xd7\x0a\xde\ (\xca\x95\xde\xab\xe4\x15\x08\x9ei\xae\x18J^\x80\xec\ (\x08\x1e\xff\xf2\x8c\x12\x96C\xf0\x8b\x7fHEr\xa2\ \xef]\x06\x82W>\x11V\x09\x143\xbc2\x93\xca8\ T\xf9\x9aIf\xb8\x0bbU\x86X#j\xc9\xfb\x82\ q\xc5\x99\x0b\xaa\xa3\x8c2\xba\xee\x8f\x1b\x06\xcb\xfe\x16\ \x84*|n\x19\xb5\x0c\xf7\x134\xa1\x82Hg9\x0f\ wW\xd3x\xa0\x17\x8a\x1aj\x85\x02\xad\x91\xa0kD\ 9\xf8\xd5/x3f\xb4q=<\xbb\xd50\xffv\ \xf1\xeb\x87\x09\xbfc\xcf\xa4I#\x8d\x1d\x93<+\x17\ \xdf\x15\x22\xf0\x8eT2\xab)\x84\x1d\x04\xe2w\xc0\x8e\xe1$\xec\xd6{\x0e\x92\ ^P\xc8\xed\xf3\xe6n\xee`\x84\x11c\x1e\xa7\xfd\xdf\ N\xd9\x82\xfb\x1b\xf8M\xf3&\xabE\x05^\x0b\xbay\ \xf7\x8bP\xba\xfd\xb1h\xf5\xbb\x177\xda\xbc\xff\xbc\xd1\ EU\xbc\x97\xca\x83\xab\xfak\x07\x7f\xd3\xfd\xfb<\x8a\ \x1ec\x81q\xb6\x0c\x19\xe3O\x11\xc5\x94\xba\x18~\x82\ '\xdd&\x00\xb0nS\xbbu\xee\x9c\x8b\xdfx\xd2n\ D&[\xdf\xca\xf7\xf6[\x9f\xc7\xfdV\xe0\xb5\xcd\x8d\ \xca\xe4\x12\x8e\x90^-\xb5\xff\xf2\xed\xcbQ\xe9b/\ \xd7\xf9t\xcc\xc1\xed[\xd6\xddK1\xc6\xbe\x8dp\xb8\ \xecv\xf5\x89\x96*_\x9e\xb2$\x9cs\x1fS\x1f\x90\ \x00\x0b\xb7\xdd\xd5Z\xdc\xb9u\xfbhok\x96\x8d;\ 3S)\xc5\xad\xcc\x9a\xaaj\xea\xb6\x87\xe3\xc08\x9f\ \x8c77\xaa\xec,\xf2\xcc\x97\xa5\xacd\xad[\x1f\xf2\ \xe0;\x0b\xb0\x9f\x8d\xc95x\xe6\xa6\x0e\xcc)}\xc9\ \x8c\x22\x1a9\xbdt#Vpk\xd9\xa8\xb9\xf3h\xd9\ \xbd\x06\xc5U\xa3r\xa9\xac*\xea^\x07\xaa\x06RU\ \xe8]\xdf\x13\xc3\x15\xb6<\xcc\xa9\xedZ\xe4\xcdv\xee\ \xd0S\xcaq3>\xbd9[\xcb\xecZ\xaa\xabF(\ p\xdb\x9a\xb4\xebf\xbbR&\x90\xa5([y\xbc\xf1\ }\xd3T\xe0\x0e\x14$\x0bX\x1c\x1e\xab3\xe8\x06v\ \xcf\x9blwJ\xba-jp\xde\x1dz\x90pz\xcf\ \xcb\xc1\xc2\xf6%\xc1\x84\x9f1\xb9\x9b\x028V\xc1\xdd\ AxNY\x89\xbb\xae\xfd \x5cr\xcf\xeb\x1b\xa5 \ \xefn)vRMT\x80\xfc\xae\x04r\xb9l\xa7\xa4\ \x9b\x15hc\xab\xad\xa4\x16\xb9\xd0b\xb2\xb0\x12\x869\ \xee\x8a\x08\xac\xa0l\xd3__\xbe\xeaW\xb0\xce\xb2\xf4\ \x8fF]\x0fKx\x19\x03q\xd5\xdc@\xf0\xceb\x14\ \xcf\xf2,\x85V\xac\x84^\x14\x15$\xd2\xb4\xcb\xf7P\ \xc23\x7fR\x1c\x18\xeb\xddFN\x87\xf6\xc7*\xd9\xf7\ \xf4\xc9\x92\xcf\xb3\xaa0\x9b\xfc7\xba(\xcb\xd7\xe6\x92\ !\xb2\xeeH\x7fpt\x08\xc3\xdf\x8bc\xe6\xdb@\xbb\ \xd5j\x02`\x05\x19&\xd4\x86\xbe\x11zm]j\xf5\ \xae\x04?\x96pU\xfa(\xe6I\x94]]\xb6Z5\ \xd7\xf2h\xd9\xd7J\x0a\xf5\x1cE\xd4\xd6\x1eBp\xf8\ O\x88z!\x89\xc3\xa7$\xf1 \xdb\xa0E\xbf#\xc2\ \xbc$0\x1f\x7f@$\xf6H\x98\xc4!b\xc4K\x80\ a01\xfa\xd1\x962\x0f\x87\x07v\xfdq\xe8\xcf\xf1\ \x12\x13\x82q\x9a\x11\x1a$#\x183-\xef\xf4\xbe\x89\ Y3L\xe2q\x1f\x94\x1f%\x1e\xa3$\xa1\x93\x10\xca\ \x95{1\xe7\x98\xc6\x81s\x0cC\x035\xd7}Nk\ \x93\xcb\xf2\xb2\x93l\xbb&H\xaf\x9a2\xbf,\x8bZ\ \x0e]\x91\xe2o{\xfdRTE\xb9K[Q\xb7n\ +U\xb1\xbctm%\xbb\xfd\x91\x1b\x99\x15\xcb\x22\x03\ \x12l\xea\xf4\xbb7`\x88\x9e\xc3i\xdf]\x96Rk\ \xa9\x5c3\x17`\xe2\xa6xsw\xb9\x05\xfa9\x10\xf4\ \xc9\xc1\xdd\xab[\xb8\x03\xbd\xa4\xc4\xe6\xaa\x86\xd9\x9f\x0c\x0e\xe9\x80&\xe0<\x87A\x05\xed\ N\x03/\x8cMo\xaf\x11\x09\xbc( \xd0\xf8\xf6\x03\ A\xb7\x88y\x11\xe9\xd8`\xf8\x10}\x90\x0f\xf6\x19\xc1\ \x8c\xae\x91\x11\xfa\xca9G\x0d\x04\xe3\x03j\xe0p~\ \x1c\xc5|\x9f\x1a\x80\xb6\xa2\x18\xc6+\x7f\x005L\xbd\ d\xd2v\xd4N\xf8\xb3\xa9\xc2\xc4\xe0\x8a\xb2X\xd5)\ <\x90+\xfdI\xdc\xd1o\xaa\xb3u\xa3\x86]_\x86\ MN!\xe0%\xe7\x08\xe5~l\xf7\xfc>\xc5\x22I\ \x12\x8c\xedr6\x7fG\xb9^\x0c\x0f\xffh|\xfa?\ \xcf@\xc7\x134\xfe\xb7'h\xec\x05\xd4t\x0b0\x01\ 9?;;+\xa0\x0b\x96\x18\xcd\xa7\x0d\xce(\x09>\ :8\xd9~w\x10\x0c\xe7\x07\x84\x87\xfb\xdd\x11{\xc0\ \xdb1\xc3\xd1\xff\x83\xf3\x1f\x18\x9c\xf7!>\x03\xf2\xe1\ \xe0\x0c\x9dE\xf7U\xf6?59\x1f<5M_c\ \x18-\xd3\xd4\x1cD\xdc\xce\xc5\xaf\x10\x0d7|(\x1e\ \x86'\xfa\xe8\x0f\xf0\x88\x12\xfaU\xe3\xc1\x1e^\x1f8\ f!'d\xc2\xe3\xef=U}\x95h\xb9\x91\xcbO\ #\x16~\x141\xf8>F\x22\xc2\x13z\x84X\xccI\ \xc4\xbf8b\x0c\xc6\xee\x97B\xcc\xa5'0ct|\ \xc4\x181\x83\x1eK\xc2$9j;\x1e\x8c\x94=`\ \x86\x03\x0aO(\x1f\xc5lf\xfe\x89\xb0\xb8\xf8\x0b\xfc\ u5\xad\ \x00\x00\x0d\xa5\ \x00\ \x00D3x\x9c\xed[k\x8f\xd3H\x16\xfd\xce\xaf\xf0\ \x86/\xa0\xb1\x9dz?B7#\x164h$\xd0\x8e\ \x96\x19\xedK\xab\x95\xdbv\xd2^\xd2vd;t7\ \xbf~O9Nb'N\xe8\xa6y4,\x01D\xa7\ \xea\xba\x1e\xf7q\xee\xb9U\xee\x93\x9f\xaf.\xe6\xde\xbb\ \xb4\xac\xb2\x22?\x1d\xd1\x90\x8c\xbc4\x8f\x8b$\xcbg\ \xa7\xa3?~\xff%0#\xaf\xaa\xa3<\x89\xe6E\x9e\ \x9e\x8e\xf2b\xf4\xf3\xd3\x07'\x7f\x0a\x02\xefy\x99F\ u\x9ax\x97Y}\xee\xfd\x9a\xbf\xad\xe2h\x91z\x8f\ \xce\xebz1\x19\x8f///\xc3\xacm\x0c\x8br6\ ~\xec\x05\xc1\xd3\x07\x0fN\xaaw\xb3\x07\x9e\x87\xa7\x92\ \xfa\xfct\xa4\xc4\xc8};O\xb3\xd9y\xbd\xf9\x9a%\ \xa7#\xc8q)m\xf3\xbd\xb3@\xba\x12hG\x9et\ {B\xe6=\x22\x11!\xf1Trn}\x8f\x11\xc6\x02\ \x82\xbf\xe2q\xf3P\x85m-\xf0o\x92\x14q\x1e]\ `7\x11[\xfc\xe7y\x91c\x90\xfa\xb7\xa8\xacC\xcc\ \xb9\x9a/K/\xff\x5c\x5c\x9d\x8e\x88G<%\xbcv\ Y\xd0U^M\xd6s\x9f\x8e\x0em\xd5\x0d^-\xa2\ 8\xad\xc6\xeb\xf6\xce\xf3\xebel\x9e_7\x84U\xb1\ ,\xe3t\x8a!\xd20O\xeb\xf1\x8b\xdf_l:\x03\ \x12&u\xd2\x19\xe6j\x8e\xb1{k\xb8\xe4\xcd\xec\xd4\ Z;nz\xb7\xd2Cr\x8c\x102^\xef\xb8]\xda\ \xbb\xd9\x0d%\xcbdzpn\xc2\xc6P<$\x82\xea\ :\xaf\xa3\xab \xaf\x1ev\x1e\x8d\xe3\xcd\x93\xb1s\xa1\ \xec]\x1a\x17\x17\x17E^\xad\x94\xd7\x13N\xb6\xc2\x8b\ e9o$\x92x\x9c\xce\xd3\x8b4\xaf\xab1\xcc>\ \x1e=\x85\xfcI\x92N+\xf7\xdc\xca{\xdc7.\x15\ m\xfa\xd0{\x11\x95o\xd3r\xd5\xdfq\x9f\xac\xaa\xea\ \x22\x86\x1a\xebr\xb9\xb2\x91\xfbT\xf5\xf5\x1c\xe6-\xe0\ \x17\xd3yq9y\x97U\xd9\xd9<}\xb2\x11p3\ \xacFd\xdc\xb0Ms\x99N\xff\x0e\x9fA\x10uZ\ \xfe\xd1o)\xca\x0c\x0b\x87\xeb-\xebb\xb4\xb7\x9ef\ 5n\xf4geY\x5c\xb27i\x9e\xb4;\xc0\x1e\x16\ Q}\xbe~\xc2\xf3\xea2\xca+\xf8\xca\x05B%\x8e\ \xe6\xe9#\x12\xf2\xc7^Y\xd4\x08\xcaG\xd4\x90\xc7+\ \x89\xb9\xfb\x1a\xb0\x90\xfb\xe4\xf1h\xfb4\xa6x\xed\x99\ PS#\x8d6\xbe\x08\x09\xe7\x9aK\xe6\xbd\xf2 \xcc\ \x88f\xc6J\x1f\x0b\xa7\x8aP\xce\xa4BG+n\x84\ \x1f@\x9ePM\xb4\xf1\x9e{*\xb4\x9a\x13K\x88\x1f\ \xd0P1\xab\x84\xb2\xae\xd1p*\xb4\xf2\xd1F\xa5\x16\ \x82\x0eN\xf7\xde\xeb,\xaa\xd5\xfb4\x9b\xcf\x83r9\ O'\xe9\xbb4/\x92\xe4IU\x97\xc5\xdb4h0\ cB0\x89\x5c7\xc1\xcd\xd3\xff\x16Y>)\x8be\ \xbe\x16\x9c\x937Q%\xf8\ \xae\x15\xb1\x1ag(\x18H\xe2\xa7@6?\x06\x94\x85\ \xb2\xd3\xbcj]\x8b\xde&3\xedz\xda\xcaC\xe9\xa2\ \xfeX\xd7\x1b\xb0\xb28dezw3\x7f\xe24E\ ?I\x9a\xfa\xb0\x99\xedwhfv\xc8\xcc\xea\xce\xa9\ \xe1\x0d\x0a\xb9\xb2\xfe\xa4t\xa4?\xe2\x01K\xdf\xd9\xd0\ m\xf9u#\x1b\xdd\x22;\x90\xe6s\xc8vm\xef7\ \x9f\x1d\xf8=\xa6\x18\x03\xe3}6\xb4P\xf4\x87\x13\xdd\ G\x8a\xf1\xea\x13\xe7\x9eW_\xc4\x9b\xb8\xfe\xe2\xb9\xa7\ \xefi\x1f\xcc=\x1fr\xbd\x01+\x9b\x83\x14\xa3\xd9\xc5\ AC\xbb\xd0\x88\xca\x97e\x948\xebuM\xd2\xef\x11\ \xdc\xf0\x80\xef\xeb\xfe`\xfd\x09\x93,\xfa\xdaw-\x9a\ Sc:;)\xa6\xd3*\xc5\xd3\x035\x84\x13\x0f0\ |Qvr7\x9a\xb6\x0aYo\xe9\xd8l\xbd\xead\ =\xdb\x00\x9ctg\xd3\xccN\xe3\xe9\xa1\xd9N\xc6}\ \xcd\x1cW\xe4!=\xad\x05\x9a\xc3\xbe\xc99\xa2\xe2t\ \xf4\xf0\xb8\xca\x87lb\x83\xed\xfe\xae\xe8\xe9\x88\xe9\x90\ \x09.\xf9\xb6\xee\xbbF\xab\x14!@\x87\xd2m\xeb\x15\ \x83,\xdd\x93E+'\xbb\xb2\xb3v\xba?\xf2\xac\xae\ NG\xcb*-\xdf\xb8\x13\xd2\xbf\xe4\x7fT\xe9\x9e\xd4\ \xef[\xdf\xec\xe4\xaev*\xee\x03\x1aW\xc3w<\xf2\ s\xa8\xce\xf2\xc0\x1eU\x9d\xb5\x81\xee\xa9N8p\xc5\ \x22\xfb\xaa\x13\x12\xeb\x95\xda\xc8\x9e\xea\x04\xd9\x93u\x0a\ \x15+Y\xfd)U\x07\xcd\x19\xa9\x84\xd1H\x03\x82\x0a\ F\xb9\xba\xbb\xea\x06\x15\xe24v \xa0\x06\x82ds\ \xe0\xd3\x0b\x92\xe3\x91\xbd\x8eKL&\xdd\xed\xc4\xa1\xf8\ \xbd1\x02\x1c\x0f\xed\xcet:\xf8\xd8\x00\xde\xd3\x14'\ R\xdfBO&J\x19\xbf\xc1\xc2\x91TV\x9f\x81\x0d\ `J{+m\x89\xd4FD\xdd@[G'U\xc7\ uv2v'\xf5\xcdO\x9b\xeb\x19w}\x92\xb8+\ \x98\x07\x9b\xb1\xce\xa2\x8d\xab/\xa2Y\xda\xac\x10\x01;\ m>m\xc7YQ&i\xb9\xeeR\xcd\xa7\xd7\xd5n\ bu\xcd\xd5\x8e\xbdvr7\xea\xa6\x9f\x0c\xf7W\xe7\ QR\x5c\x22Dw;\xdf\x17\x05\xc2M\xec6\xc7W\ @B\x11\x1a-\xf7z0\x093!e\xfb=\xcb\xb2\ \x84j\x82yt\x9db\x1b3e\xec\x1a\x09\xaa\xf3\xe2\ rV:mtNq7\x0f&E\xbctW\x22\xc1\ r\x05\x13\x8b\xab]\x09\xf7lpv\xe6\xae\xb5\x86\x06\ \xb8\xccr\xec.h\xef\xe5\xa8\x10{:h%\xd6w\ ufs\xcc\xb2+q\xb5\x8d\xd8\xdd\xae\xeb\xc3]\x17\ \xd1Uv\x91\xbdO\x93m\x00n9c\x1e-\x82\xd9\ \xbc8\x8b\xe6\xa0H\xd1\xbc\xda[~\xe3\x16\xe7i\x0c\ VrVDe\xe2\xe6i\xdd\xae\xa7\x81\xb5\x8f\xd6\xd7\ \xee\x06\xef\xea\xda\xb5\xf5 \xcd5pB\xb6\xf8\x9b^\ ,\xdce^s#\xba-D[&\xb9s\xa4\x9e\xe6\ \x11\x1a\x93\xdd\xfb$\xac\xbe\x95w\xa3\xbb(\xa8\x8a|\ ~\xbd+\xb6\x9a\xc5i/\x94\xbb\xad\xd7\xab\xd6U,\ \x9d\x8c\xf7\x83\xa5i\xbfH\xeb(\x89\xeah\x1b9\xeb\ \x16\x0e\xfc_+\xa4L\xa6\x93\xbf\xbe\xf8e\x03\x05q\ <\xf9[Q\xbe\xdd\x86\xaf\x13\x88\xce\x8a%\xac\xbcA\ )w\xc5\x16O\x5cf\x89\xea\xa7\xd9\x05\xd4\xed\xae\x04\ \x7f\xba\xba\x98#\x867\x1d=a\xa7\xe3\xed\xa0\xaba\ \xcbtu\xcb9x\xad\x97\xc4\x17\x99{h\xfc\xa6\x06\ m\xfd\xd5M\xd2\x81\xacv\xd0\xac\x9e\xa7O\x7f\x03\x0b\ \x0f\xde8\xc6\xde\xcc\xbej\xec\xc9a\xd3\xe9SF\xa8\ \x0c\x88\x0e\x88h\xc4\x9a\xb6\x9eT\x99\x22AfE\xfe\ \xb4s\x979-\xd34\x8e\x92\xcb\xf4\xacY\xd7e\xf6\ 6\x1b\xc3E\xd3\xabpq\xbe\xf8\xb9\x99\xea\xf4YY\ _Be\xcd\xa8\x9b1z#/\x96g\xf3\xac:_\ \x93\xe4\xad\xaa\x9f\xcd6\xf9b\x7f_\xbf`\xee\xe7\xcf\ ^\x0cm\xca\x99}\xff\xf1Fr`.7d\x96@\ 4\x9bfho\xc7\x1dWe<~]$c\xa7\xbf\ \xf1\xcbe6\xfekk\x8fj\x9c\xc5E^\x8d\xb7\x8a\ u\xb7\xe1\xcd\xe8\x9da\xfa\xbas8P}\xcc\xf6\xbc\ W/\x7f{\xc5~\xba\xe5.w\xe7s\xb3\xcd\xb38\ \xcd\xab\xb41_\xd5\xdao\x96/\x1b\xc3\xc5\xc5\x02I\ mZ\x8f\xe7i\x05\xd2\x14\x9e\xd7\xceW;\x0f\xf5v\ \x83\xdd\xd7ev\x86\xc2\xf3v\x16\xfbW4+\xaf\x11\ \xce\xff\xf6\x9e\xcd\xd3\xab\x08~Rz/\x9b\x96[n\ o`\x01\x8d\xac\x0b\xcdu\x02\xedD.j\xb06\xb4\ \x9bo\xb3m\xc87\xb9c\x0fB\xe7\xd1Y\x0a\xf0|\ \xe5:\xbd\xbd\xdeYY,\x17\x17E\x92\xb6\x8f\xaf\xa1\ b\xb6\xc1\xcb-\xafD\x9c\x97\xd9\x15\xeaE\x09R\x22\ \xad@i\xe8\xfe\x84Rp\xa2\x99\xf2\x91\xd9\x8c0\x96\ X\x1f)\x0eDG\x19\xf5\xb8\x0f\xb1MV\xdblr\ \xb6\xd5N\xd3+\xa5\xec\xa2\xce\xac\xab\xf8F\x80Z\xdd\ =\x11\xec-nKzQ\x9ap\xc2\x85\x15>\x95X\ \x90\xb2\xe6\xf1\xa8g\x88~m\xef>[T\x85&\x1c\ \x10!\x91\xc6\xee3\xea\xcbu\xb8q\x9e\x83\x1b\x17e\ \x80\xc4\xfd.\xaa\x97e\xdag\xab\xeb57\xa7\x06\xb6\ S&\xad>\x0e\xa0\xbd@\x83\x9fS\xa3\xb5\xf4\xa9\x08\ \xb5\x95L\x09\x8f\x84\x8a(.\x84\x1fP\x8b^A,\ \xf7\x18\x03e\xb0\x92\xfa:\x94Ts\xc1\xbc\xa0\x15\xc3\ \x93\xad\x14\xf3\xde\xef\xcc\xd19X\x98\x94g\xa5b\x96\x02\x94\x04\xe1\ \x0c\xbe\x1eP\x1eR\xd4r\xd2z\x5c\xbbu\x10\xc9}\ \x8aLC\x98b\x0d(\x09f(l\x059\xab\x0d\xd7\ \xe2\x88\xbe\xc5^\xee\xfb\x9a1\xf0\xb5T\xee0\x07\xf8\ \xce\x19\x11\xd4\x17pl\xa2\xa9\x83\x1c\x1e\x1a\xa385\ \xce\x0c\xdc*)\x9cv-\xe8\x8e\xd2N\xbb\xa0S\x86\ S\xcf\x9ds\x1ax;u\xa8C\xa4\xb5D\x1cA\x1d\ \xb1K)\xbe\x9c\xc6?3Y\x12\xbb\x09n\xe5\xcc\xc2\ \x86\xc0rC\x11\xff,$\xce!\xb9\xb7I\x9c\x1d\xb2\ \xb4\xc5\x89`\x03\x14P\xb7T\x8e\x14\xfaT\x83\x12R\ %\xf5wF\x97>\xb7Mvs\x5ck\x13\xe9X\x8f\ \xd1`3*4\x92rma\x13\x0e\x96o\xa1~\x80\ \x09\xd0\xc7R\xe4Sw\xbaM$k\xb8\x10\x92,\x82\ \xc0\x0a\xeb\xcc\x02\x06\x84\xfc\xeaS\xc4\x83F\xa6\xa5\xf6\ \xa8]\xbe$\xa0~}\x9d\xef\xe6\xb0\x15\xc2\x00\xd4\x99\ 4\x845\xc0\x0c\x00'\x00\xe6@\xc1\xad\xa5\xd0\xc2\xb8\ ;\x12\xc3`\x14\xad\xd3\x00\x1d\x92\xb9\x9c\x0a@\xf2\xdd\ \xfd\x82\xb0M4\xa0Q\xb8x\x00\xfa\x18\xd4J\x96\xcb\ =\xa0\xf9\xbf\xd5\xba\xdc\xedZi}\x08}\x02\xea\xea\ \x5c\x14d\xe03\xf0d\xc5\x0d\x1a\xf7\xb9\xe4 \xe5<\ \xa6\xef\xfb\x8c>'\xe3\xd9\xf1\x12\xdd\x90\xbe\x02\x07K\ \xf4\xe6]\x05\xf0\x11\x0eE~\xb88\xff\xc6\xca\x0e\xea\ \xee+\x05\xea\x0d_!\xe6\x148\x94s\x15\xa4*n\ \x84\x92>0\x93KA\x8c\x079a)A\xf6B<\ \x1a8\x05X\x17\xc4\x0c8\x80\xaf\xe1dF\xca\x01G\ Y{\xaa\xb2\xc0\xd3@~\x9f$@pC\x03>\x98\ r\xa05\xcb\x94F0\x190'\xa8\x99\xf3OZh\ \xdfgo\xfb\xeaV\xb1t\xcf\xe3\x1a\x9fG\x11\xc79\ \xe3\xd4\xfa\xd6 \xcd0M\x95kC\x19\xa6\x94\xf0\xb5\ \x058\x1aD\xbb\xa7\x80\x8eD\xa2\xda\xf3%\xf8\x82\xb6\ \xd2x\x0a\xa5\xb6`\xa0\xc2\xbe\x16\xa1f\x14\x5c\xf88\ 8\xfe\xb0I\xcf&\xa8\xe6\x82\x01r\xf6\xba\x81\x1c\x80\ \x0a\xcai\x079\x94Z#\x8c\xc7\xdc1\x155\xd64\ 5\x86U\x06\xa9_\xb8\x94%\x99\xa2\xae\x0a\x0a\ \x0a\x0a \x0a \x0a \ \x0a \x0a \ \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \x0a <\ stop\x0a id\ =\x22stop73188\x22\x0a \ offset=\x220\x22\ \x0a style=\ \x22stop-color:#346\ 5a4;stop-opacity\ :1\x22 />\x0a \x0a \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4383-3\x22\x0a \ id=\x22linearGradi\ ent4389-0\x22\x0a \ x1=\x2227.243532\x22\ \x0a y1=\x2254.5\ 88112\x22\x0a x2\ =\x2221.243532\x22\x0a \ y2=\x2230.58811\ 2\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(-1.\ 243533,-2.588112\ )\x22 />\x0a \ \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \ \x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0a \x0a \ 2015\ -07-04\ \x0a http://www\ .freecadweb.org/\ wiki/index.php?t\ itle=Artwork\x0a \ \x0a \x0a \ Fre\ eCAD\x0a\ \x0a \x0a \ FreeCAD/src\ /Mod/Path/Gui/Re\ sources/icons/Pa\ th-Stock.svg\x0a \ \ \x0a \x0a \ Free\ CAD LGPL2+\x0a \ \x0a \ \ \x0a https://www\ .gnu.org/copylef\ t/lesser.html\x0a \ \x0a \x0a \ [\ agryson] Alexand\ er Gryson\x0a <\ /cc:Agent>\x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \ \x0a <\ g\x0a id=\x22g\ 1042\x22>\x0a <\ rect\x0a \ style=\x22color:#00\ 0000;clip-rule:n\ onzero;display:i\ nline;overflow:v\ isible;visibilit\ y:visible;opacit\ y:1;isolation:au\ to;mix-blend-mod\ e:normal;color-i\ nterpolation:sRG\ B;color-interpol\ ation-filters:li\ nearRGB;solid-co\ lor:#000000;soli\ d-opacity:1;fill\ :#3465a4;fill-op\ acity:1;fill-rul\ e:nonzero;stroke\ :#000000;stroke-\ width:2.00001097\ ;stroke-linecap:\ butt;stroke-line\ join:miter;strok\ e-miterlimit:4;s\ troke-dasharray:\ none;stroke-dash\ offset:0;stroke-\ opacity:1;color-\ rendering:auto;i\ mage-rendering:o\ ptimizeSpeed;sha\ pe-rendering:aut\ o;text-rendering\ :auto;enable-bac\ kground:accumula\ te\x22\x0a i\ d=\x22rect4140\x22\x0a \ width=\x225\ 3.974174\x22\x0a \ height=\x2215.\ 711096\x22\x0a \ x=\x226.6662116\x22\ \x0a y=\x222\ 4.558014\x22\x0a \ transform=\x22\ matrix(0.9999889\ 9,-0.00469223,0,\ 1,0,0)\x22 />\x0a \ \x0a \x0a\ \x0a \x0a \x0a \ \x0a \x0a 2\x0a \x0a \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a<\ /svg>\x0a\ \x00\x00\x0a\x8a\ \x00\ \x00,\x98x\x9c\xedZ\xe9o\xdb\xc8\x15\xff\xee\xbf\x82\ \xd5\xa2\xd8\x04\x15\xa9\xb9\x0f\xf9Xt7\xd8v\x81\x14\ [4I\xaf/\x06M\x8e$\xd6\x14)\x90#K\xda\ \xbf\xbeoF\xbcdK\x89c\xbb\x8b\xa4X'\xb1\xc8\ \xf7\xe6\xfc\xbd\xfb)\x17\xdfm\x97ypg\xaa:+\ \x8b\xcb\x11\x8e\xd0(0ER\xa6Y1\xbf\x1c}x\ \xffc\xa8FAm\xe3\x22\x8d\xf3\xb20\x97\xa3\xa2\x1c\ }wuv\xf1\xbb0\x0c~\xa8LlM\x1al2\ \xbb\x08~*n\xeb$^\x99\xe0\xd5\xc2\xda\xd5t2\ \xd9l6Q\xd6\x10\xa3\xb2\x9aO^\x07axuv\ vQ\xdf\xcd\xcf\x82\x00f\xa5vq9\x12l\xe4\xde\ \x16&\x9b/l\xf7\x9a\xa5\x97#\x18G\x91\xe2\xfe}\ p@\xbc\x1f\xd0\xac<\x1dr\x22\x12\xbcB1B\xc9\ \x8cS\xaa\xc7\x01A\x84\x84\x08\xfe\xb2\xd7~R\x0d\xd7\ Z\xc1\xbfiZ&E\xbc\x84\xdb\xc4du\xfd\xd7\xb8\ \xb2\xf5\xdb\xac\xb6\x11\xec\xb8\xdf-3\x9b\xef\xcb\xed\xe5\ \x08\x05(\xa04\xd2d\xff\xdb3\x01\xaf\xa2\x9e\xb6\xfb\ _\x8eN]\xd7mP\xaf\xe2\xc4\xd4\x93\x96>\x98\xdf\ \x1e\xa5\x9b\xdf\x12\xa2\xba\x5cW\x89\x99\xc1\x12&*\x8c\ \x9d\xbcy\xff\xa6c\x86(Jm:Xf\x9b\xc3\xda\ \x07g\xd8P\xbf;\xd6ZO<\xb7\x1f}l\x1cA\ \x08M\xda{7G\xbb\x9b?rd\x95\xceN\xee\x8d\ \xc8\x04\xc0\x87\x11a\xbd+l\xbc\x0d\x8b\xfa\x9b\xc1\xd4\ $\xe9f&N\x8d\xb2;\x93\x94\xcbeY\xd4{\xf0\ \x0e\x06\xa7\xfd\xe0\xd5\xba\xca\xfd\x884\x99\x98\xdc,M\ a\xeb\x09\x88~2\xba\x82\xf1\x17\xa9\x99\xd5n\xde^\ \x83\xdc\x1b\xa8\x90\xf4<\xe0vJ\xb3\x8a\xed\x224\xb3\ \x99I\xec~t\x10\xec\xdf@\xebnaY\x1b\xe7\xa3\ \x96\xe1\x16\x1a\x8c\xa7H\x88\x9eW_\xdfeuv\x93\ \x83\x1e\xd8jm:\x06L\xb0\xa6\x02\xad\xfcK\x80\xc6\ (\xf8{\x80Q\xf0\x16~\x8dy\xf0\xefnPR\xae\ vv\xe7t\xa8\x06k\xcb\xcdum+c\x93\x85I\ \xfbu\xaaru\x0dgv\x1b\xe0\x8e\xea\x09\xd7\xbb\xeb\ \xca\xe4\x97\xa3Y\x9c\xd7\xfd\xc6N\xe3\xbc\xe9\xa2\x8eT\ \x94\xd52\xce\xaf\xcb\xd9\xac6v\xc8\x00\xab\x9e\x1f!\ \xfb=\xd7Ef\xeb\xfb\x8b\x83\xad\xd9\x0c\xf6\xbe\xee\xae\ w\xc8\x9f\xadksm\xcb\xdcTq\x91\x98\xe1\x9a\xf9\ \xcat\x86\xdaS\x17Yj\xaeo\x8b\xd2\xb6\x0b\x05\x93\ FR\xa0\xb8&\xae\xfeT\xc5i\x06\x12\xee\xe0n\xe5\ \x97\x94y\xee\xa5\x15\xe7\x9bxW\x1f\xc8\xeap\xaa\xe4\ \xba\x15?,[\xdbr\xd5\x8e\x05\xac\xec\xce\xe1\xea\x88\ !\xacXV\xd3o\x90\xfb\xa1\xe7\x9eT:(\xedn\ \x8a\xcfG\xfd\x9c\x87p5\xce\x0af\xc0^\xba\xbb\xc2\ SwC\xc7v\xc3\xc7v\x13\x08\xf7\x80M\x0e\xaf\xdd\ P\x97quk\xaa\x07\xf0\xc1\xf4\xe4\xd6\xad\xf3\xc7\xaa\ *7\xf8-\xf8\xf7\xcav[\x94\x95[\x01\xb0]\xdb\ \xb2#Vf\xf6\xaf\xe1\xad\xe1\xfd\x9f\xc3\xf7\x93\xab5\ \xd7.A\xfc\xb3\xbc\xdcL\x1b{\xe9e\xe2l\xeb\xf0\ v\x8eB\xb5\xe6\x83K\xa7\xad%\xf1q\xc8\x83\x10\x93\ \x88\xfb\x97\xa19u{\xcd\xb2<\x0f\xabun\xa6\xa0\ tE\x99\xa6\x80pU\xde\x9a\x06p\xd4\xbc\x86>\x02\ M\xf1\xca\x0e\x96\xb0\xa0\xba58\xdf\xe5\xe5h\x19\xdb\ *\xdb\xbeB\x91\x1a#\xf7\x07>\xc1\x80\xd1\xeb\x01\xe8\ {|?\x0b\xecw\xa6H_\x0a\xea\x83\xb5\x9e\x084\ C\x18}\x19@Cp#\x1ei\xff\x10b\xf7\xf6\x5c\ \xb0_T\xb3\xdf\xbd\x88f3\x84\xe4\x97\x01x\x8b\xb7\ \xfb|\x01\xb4\xc9\x8b\xa2}\x7f\xb5'\xa3M\xf8\xe3q\ l\x80C\x91 \xbc%9\xc7\xfa\x9f2+\xa6U\xb9\ \x1e\x98[#9\x15I\xac\xb8\x92j\xcc\x22D\xa9\xa4\ \x9c\x04!\x89\x08\x92Di\x90d\x840\xf8iJD\ ;R\xb1q\x08C\x11\x96H\xaa \x01\x89G\x92q\ \xa6\x81N\x22*\x09\x12H{\x22\xe5\x8c!5\xe6\x91\ \xc00\x00\x03Q\x98P\x8e\x15l\x03\x1c\x1a\xfc\xf2\x09\ \xd9\xd2F\xb6\xd4\xd9\x93\xd0\xcf\x90\xee\xfb*\x8b]~\ \xf2\xf3\xda\xbe}\xbet\x8f\xae\xf6T\xe9b\xfa\xc0\x96\ x$%X\x10\x08A\x01z\x90z\x85\xffKS\xf2\ \xa9\x98\x8b\x11OF\xf7M\x16C\xda\x9b\xbe}\x91\xb8\ pl\xb1'[NS\xf0\x0c\xb0\x05\xdf,#$1\ \x92B\x05\xcd\xa3\xd2\x0c\xe0F\xe3\xfd\x1bW:\xd8?\ 1\x01\x1e\xe5\xd7\x0d\xcf!\x18\xcb3\xf4\xbc\x05\xef\x85\ \xdc\xd8\xf1\xe5\x9e,\x0dE\xbf2it\ \xf5\xf6\xc5\xc45J\xfcS\xd7!s\xdd\xab\xd4\xf5\xc1\ \xce\xba\xc3\xdf\xc4]\xa9\xbf\x8a\xe7\xc6\x8b\x05\xae\xbc\x97\ K\xc3\xb8)\xab\xd4T-K\xf8\x9f\x03V#\xb9}\ \xa7\xf1\xec\x10a\xb7j\xc7G\xc7\xf9\xf5\x22N\xcb\x0d\ \xdc\xf4>\xf3\x97\xb2\x04\xe3\x00\x9f\xc3\x85\xe2\xec\x01;\ \xd9\xc2\x1c\x0d\xaeP\xcb\xeeD=\x13\xf6#<\x02\x1d\ \x91\xea!s]U\x00`\x98\xc7;\x03\x97\xf2\x1f\xad\ \x8a\xd5\x8br3\xaf\x1c8\x83\xeeO7\xd3q\xc2\x9b\ \x1b\xd7H<\xc6N\xcbd\xed\xfaWa\xd3kYm\ \xef\x8f\xd8d\x05\x5c6l:\xa5\x18\xf2\xc1\x13#\xda\ \xee\xa9b\xf4\xc4\x88mo\x85\xf7Y\xbb\xd3\xace\xbc\ \xcd\x96\xd9/&\xed\xad\xea@\x1a\xc9\xc2$\xe0fn\ \xca\xb8J\xfbU\xba\xcenw#\x9f%\xf93D\xbc\ \xb5\xfa\x8b\xa5\xb1q\x1a\xdb\xb8\xd7\xb0\x96B\x91Fm\ \xcf\xaeJg\xd3\xbf\xbd\xf9\xb1\xf3\x13I2\xfdGY\ \xdd\xf6&\xee\x06\xc47\xe5\x1a\xae\xdf\xf9.\xd7\x09L\ \xa6\xce_\xc6\xf6*[\xc2I]\xe7\xf2\x0f\xdbe\x0e\ \xba\xde1\x0e\x06\xbbF\x5c\xbf\xe8~\xd9\xca\xec\x9b\xb1\ G\xbb\x8fi\xb2\xcc\xdc\xa4\xc9;\x0b\x8e\xfd'\xb7\xc9\ \xd0\x9fM\x9a\x83\xb6.gp\x0f\xf0\xce\xcdE\xfd\xdb\ \xbc\x07\xe0@\xb9:\xa4\xf3\xf8\xc65\xfa\xde:f\xf0\ \x80;\x87\xbad\xb5,S\xd3L\xef\x80\x1b47\x07\ \x11\xa8\x8b6>\x1c\xf5n\xfbc\xb1\x08E\x183\xcc\ \xd5\xb0$\x82\xbd\xa77kk[\x1a\x80a\xaa\x1c\xb4\ \xc5NYKKc0\xd7\xaa\x8aw\xd3\xa2,LK\ \xed\xf6\x95B\xf4\xae\x15d\xe5\x14\x07L>i\ \x7f\x86!\xab\x0f8\x05\xc0l\xcb*\x04\x17t\x17\xdb\ ue\x1e\x86R\x9f\x94P\xa1\x07d\x9f\x94\xe0\x88\x11\ \xa2)\xa6c\x02\x09 \x82*XB)Dh\xc4\x18\ \x11P\x8d\xfe9\xc0\x02\xa0\xd3\x18\x89\x80B}\x08u\ \xab\x0a\xee\x02\x0a\xf6)\x05\xc5\xfd\xc3p`\xb7\xe8\xa9\ \xf4\xa6\x8b\xd2\x87\xca5\xb4\x0bk\xb6\xf6\xf0\x0a\x8eB\ 1\x1a\xde\xcc\xf9c\x09\xb1\x90b1\xac\xde\x9dp\xe1\ \x0c\x94r\xcd\x8e\x1c\xa0\x04_\xea\x9f\xa7\xfb\x96\xf7\xb9\ \xa7l\xbc\xaaLo\xca<=w\x8a\xdb8\xcb)\xfa\ \xfd\x9e?\x8b\x97Y\xbe\x9b\xd6 \xc7\x10\xa2c6;\ \x0f[\x11\x84\xfb%W&\xc9fY\x12\xdb\xac,\xa6\ \xdf\xbe\x83\x81\xc1\xf7\xb0\xda\xb7\xe7\xb9qm\xf0\xb0\xe9\ \xb9O\xd1j{\xbe\x81(w@x\x84\xcd9\xe3\x18\ \xder\x99O\xfd\x17G ]\xf0@\xa6\xba\x83\xb4\xf4\ \xc2\x02\xa9\x18:\xa8\x83[\x83\x8f\x9e*\xd8mxA\ \xb0\x1a~\xe2\x8a\xa3\xe1B'\xc0>\x09w#5w\ \x1e\x10\x1b9\xe0tJ^\x95\xeep\xee8\xa3\xab(\ \x8a.&~\xfc\x15|\x82\xb4[\x9f8o\x1e\x86\x86\ \xf2\x08mj\x87zE\x97\x11U\x8ch\xc4\xc6\x22b\ \x920\xca4(:\xe4\x01\x12C.E\x82E\x001\ \x87\xb8\xc6\x0c\x0d\x12\xf7\xac\x14a\xccu\x08P$]\ \x02\xa5\x88\xeb\xd20,\x15\x05\x92\x16T\x0a\xce\x5cO\ \x0c\xf0\xa0\x1a\x07?\x04:\xc2\xc4\xb1a\x07L\x95\xd0\ \x84;\x92 \x5cq \x09\xac\xb0B2P\x91\xe6\x0a\ k\x89\x81\xa6\xb1\x92\x92\xfb\x9e\x0f\xa4\xb9LR\xa8\xc7\ \xb0\x10\x0ai\x054\xae\x88`T\x01\x8dP\x98\xa28\ \x5cB3E\x15v$\xce\xb9B4\xc8\x03H\xec\xb9\ \x80*\x1c\x09\xdfF\x92\x5c\xf2A\xd3\xa77~\xd9K\ \xedS\xbe\xa3sn\xcfA\x1c\xfc\xab&\x94H>\xd6\ \x11\xc7\x84\xc2\xdd\x7fpD(61\x06\x1aD\x0a.\ \x88\xa30\x0aX\x891 \x039\x99\x14\x8e$8R\ \xd8u\xb1\x84\xd6\x02kOS\x88k\xa1\x81\xc6\x11\x08\ \x0ajY\xb7\x83\xc2\x00:\xd0\x18\x07\xed\x938\xc0\xe0\ \x91$B\x9c\x0fh^\xb6\x14\x90qh\xc1v\xca\x84\ Nr\x98Q\xf0\x5c\xd85\xd7\x1c\xec{\x22\x08\x98S\ W'\x83d5\x83\x11\xaeF\x85\xa8F\xa9\xa7\x09I\ \x85k\x92E\x1ai'Y?\x8e2!\xbdvp\xed\ \x9ar(\x82\xc4D\x80\xe0<\x85s/!\xa8\xac\xb1\ [\x1f!\xea\x0e\x84M(\x8eKI~\xbe\x94\x0eC\ \x10\x08\x9a=/\x04=%\xb4\xc8\x07m\x87>\xb4\x88\ \x08\xc0\x07\xf3s\xdfoF\x14\xa4B\xf5\xa9\xc0\xc2\x22\ \xb0\x0c\xc5x\xff\xf0\x22\x81\xe5\xb1\xe1\xf5\xd3\x01\x08a\ z\x18\x80tD\x14\xc3\x9a\xe9\xc3\x00\xc4\xe0\xcc\x92\x82\ \xf9\xfe\x16\x80^0\x00\x1d\x03\xfb$\xdc\xc3\x00\x840\ \xfft\x00\xf2\xff\xc3\xe3\xe3!\xe8+\xcd\x96\x9f\x99)\ G\x98\xbb\xaf!z\xd7\xb4\xeb\x88\xfd7\xd9_+6\ !\x7f\x1e:\x14Gj\x8f\xc4=t\x84\x22\xff\x07\xe8\ \xd0\xe7\xea\x0e\x82\x9c\x0a\x22\xfe\xf3\xaa\xac\xaf\x16\xbdP\ \x84\xfa\x14\x82\xfcQ\x08B1\x86!\x05\x1a\xb6\xfb\x1a\ \x04\xa5\xc6\x83\x8a\xee\xd7E\x10R6\xfc\xeb!\x18\x92\ \xa3\x18BvI\x1fb\x08\xf6\xe8\xbe@}`\xa4\x9a\ !q\x1fC\xc4 \xa0\x1c\xad\xd8\x1fU\xeb\x93c3\ \xbf\x8cZ_\x0e\xb3\x9e{\x09\x19\x86jHpM\x5c\ \xad\x0fI\xb4dP\xc2\x9f\xac\xf5\x99+]\x80\xda>\ \x90\x17I\xc9\x869\xc5CMxL\x1e6\xfcF\xd7\ \xd5\xa6\x90\x88\x138\xdf\x90\x0c\x82\x97\x90zK\x85\x8f\ ~\xbb\xff[\x1e\xf6\xe4F\xc0\x11\xb0O\xc2}\x98\x87\ \x1d\xa6nG\xf30\xf7\x9fl?\x92\x86\xf9\x8f\x0b\xd7\ \xa9\xbd:\xfb/\x1e\x8e%\x88\ \x00\x00\x12\x0f\ \x00\ \x00i\xd6x\x9c\xed\x5c\xebn\xdb\xc8\x92\xfe\x9f\xa7\xe0\ :\x7f\x12\x1c\x91\xea\xae\xbe;\xb6\x07A\x82\x19\x1c \ \xc1\x1e\x9c\xcc`\x81]\x1c\x04\x94D\xc9\xda\xc8\xa2@\ \xd2\xb1<\x0f\xb6/\xb0/\xb6UM\x91\x22%\xca\x92\ O\xb2\xf4z\x11\xe1\ \xdc\xed\xc1\xd3\xebbq]|N\x96E2/gA\ \xb6\x1a<\xfaf\xeaV\xd7\xf9\xfe\xcd5\xf9\x0a\x94\xf8\ *\x0c)\xc2\xfcv^\xc4\ \xcbp\x9e\xbflt\x1d\x0e\xeb\x9eC\x02\xe2\xf4k2\ L\xaf\xae\xd2y^\x0a\xafE\x91\x0f\xf9\xf7\xf9\x1fyR\ S\x0dQ\xa4\x5c\xda\xc8Zdm]\x8bb\xb4<\xb2\ \xda)m\xeb\xdaq'\xed\xb8\x936CR\x17Im\ $\xa2dsI\xbfg\xf1\xc8\xc4\ Mo/2\x81uae\x0f2\xc7\xf1x\x0c\x83{\ \x13\x1a\xca;\x18\x99\xe3q\x1c\xff\x10\xc8\xdc\xe34\ \xb5\x83\x16\xe6\xa4\xf2\x1e\x0eL\x0bs`\xbb\xdc\xe16\ \xed\xb8\x93\xf6N\xccu\x9b\xc1\xf1\xb8!\x0b\xdc\xafI\ \xfb=q\xc3\xd9\xcf\x8b\x1b\x7ft\xdb\x8d\x1blfG\ z\xb4\xbb\xf6?\xd0\xe8D\xe4\xe6\xf6\x87\xd8e\xce\xa9\ \xe6\xf6'E\xc4\x853\x96\xe3\xf6\x07LJf\xcc\xeb\ \xef\xbb\x9d\xefC\xe6_\xb1U+t\xc8B\x1d:\x08\ e\x08a{K\xd9\xa4e<\xe4\xa1\x08\xb9\xc4..\ [O\xf9x\xbe\xf21\xbd\xe5\x0f\xe0/C\ }\x84\xcb\x0c\xc5\xb1A\x8c\xa7\x82\xcfGr\x9c\xb8K\ =\x168\xf9\x0f\x00\xcd\xc6&}\x88\xf34\xcf\x14\x9c\ \xe1\xce\xa0\xc4\x83;OxD\xe7\xc9\x1e\x1f\xa1\xe2\x08\ |\xc2\xf3D\xa7x,l\xaaG\x83\xa6\xbb'0\xb7\ d\xa9\x0dW-\x05k\xe6\x22\xc5Y#\xc2x \x96\ \xb0\xaf`\x10Y\xe5\xdc\xf6\xc5g\x1b$\x08\x00#\xa5\ \x07\x08\x8f\x9cv\xa6\x87Ht\x10A/\xb4\x06\x87q\ \xaf[\xb0\x14ZGZ6\x87&\xf0\xae'\xdc\x13\x8c\ RL\xb5\xc3\x5ck\x1d\xb4u\xbd\xd6\xff\xde\x00\x17\x8e\ \xa9;zFw\xa0\xa2\xd1\x15\x8eZ\xce\xde\xadrG\ \x04l+p\x85\xfa6\x87\xb8!E\x0f\xb3\x8eC\x00\ \x05\x9a\xa4\xddT\x13\x05\xa54S\x91ALm\xfb\xa7\ Cq\xc1#\xbd\x8d\x0b\x8aKq\x13qy\xbc\x0b\xf1\ \xec\xedU\x92\x86\xfb\x22C\xcbGS\xaf\xfb\xa1\xd5\x1b\ n\xeb\x97s\xac;L\xbd\x87\x8a\x01\x84\xbd\x07w\xc2\ \xa0\xe7\xb3M>\x88;\xc0\xfd\x8b\x1d\xe8\xd4x\xc4\x94\ \xf2a\x5c0BR\xe4\x96\x1b\x83\x1cF\xdc1\xd7\x0b\ E\xa4\x0c\xa0\x83C\xa6@\x89\x16\xa7\x82E\x0e}\x14\ \xba\xdd=\xd8\xe2\xc6my2\xbf\xc1\xa0\x8e\x81\xd1\xef\ \xfd0\x8b\xe3\xf2]\xe3\x0e\x1c\xfd\xee\xc1m[\x03G\ ?\xf6bk\x8b\xf1\xdbP\x84\x9a\x10]\x98\xda\xbf\x0d\ q\x85zl\xecj\xb4Q\xf0H4\x22\xdaK\x7f\xd0\ \x898\x17\x07H\x5c0gwI\x06O9\xf8{?\ \x89#\xcf;5i\x1aO\xad\x8ep\x13\x07'\xa64\ t\xed\xa5\xad#+\xe4=D\xed\xd0b-;\xd48\ \x14\xd7\xb6:\x122\xecH\x96b\x8dS\xe4\xe3#\xc1\ -\xb4\xf7|.\xd0W\x88\x96\xd2t\x04\xe0\xbc\x89\xee\ \x13\xae\xb3[.\xb8\x12\xeex<\xde\xe9\x9dq=\x1a\ \xba\x9f\xfb\xefW\xa8\xb3\xea\x8e9\xc7\xe3d\xe7\xb4\xf7\ \xda\x14\x0e\xd5\xb63\xa6}\x88\x17\x101\xf2\xe2G\x07\ \xa8\xb1/`_\xad\x9a\xe7\xc3\xf2x\x169\xd4\xe4\xc6\ \xf1\x0ci\xb9\xd1\x07\x98\x983z\xa7\x89i\xee\xe4p\ p?\x8d \xe7\xbbM\x0c\xdcx8~H\xb9\x8b\x8d\ \xbb\x93\xc4\xcd\xd3\xda\xfb\x89\x9d\xd3Aw\xdbB\xbb\xac\ Lp\xa3VVf\xb9\x06\xbd\xc7\xca\x10\x0cJ\x9b\xa6\ B\x97\xa5\xedQ\x8a\xd7\xfe'\xca\x87\x19\xd91V\x04\ ;\xf7\xa1\xbb\x0c\xf7x\x0b:\xebS^\x9f\xffT\xa7\ \xa3Q\xb2\xe5\xe8\xeb4\xb9yQ\xafi\x10\xd7\xaaX\ \xc4\x93\xa4e\xd0\xd5r\x06i6J\xb2\x1a\xb1\xfe\xa7\ \xd5T/\x93RkWc\xd7\x19g8\xea\x9a\x8d\xee\ \xf6\xfc2\x1e\xa57hQ\x9b\x8d\x7f\xa6\xe9\x95\xdf-\ \xb5\xc4\xe3\xaa\xdal\xf6)\x0d\x9c\x8e\x1b\xd2l7\x96\ \xd9\x0ah\xce\xaeN\xdfY7^g\x19\x0a*\x9c\xc5\ \xb7\x092\xe5\xffT\x8a\xc9/\xd3\x9bIF\xc2)\xb2\ \xebd\xb3\xe7(\x1d^S>ex]\xa2z\x95\xc8\ \xdb\xa0\xa0\xbe\xe1`\x90.\xbb\x07\xb8\x99\xce\x91\xd9p\ \x95\x1a\xcc\xa5\xdd\xe2zEQ%\x0b\xe3\xe5x\x07\x05\ \xce\xa0v\xb55@\xb3\xd9t\x15/\xa7W\xd3?\x93\ Q\x07\x89\x07\xc1e2\xfc\x92d\x834\xce<\xc9f\ \xc6#1X\xc1\xb1\xccp\x5c\xdeR]+\x96C\x15\ \x82\x99\xf5\x1d2\xb9ZP\xa2\xaf\xcf\xb9^{\x8e\xaf\ \xd3|:\xa0XBCTH;\x8f\xb1r\xb4Q\x9b\ \xcf\xe3\xc5\x8a\x9eF'\xcc\xe7\xe9|v\xbb\x22+\xad\ \xe1\xac\xbf\x0dw_\x7f\x95\x14\xf1(.\xe25\xf6\xab\ \x1a\xc1T\x95/w\x96\x8d\xc6\xa7\xff|\xffkm\xc5\ \xc3\xe1\xe9\x7f\xa4\xd9\x97\xb5\xf5\x11A\xc9\xa7\x93\xf9\xe7w)\xfa\x89\xe9<.\x92\ O\xb7y\x91\x5cuMB\x1dQ\x1b\xc9\x050\xaeB\ \xa6\xf0b\xec\xc9|]\x8b*Kfq1M\xe7\x17\ \x8d\xa4\xeaq\x96$\xc3xt\x93\x0c\xbc\xc0n\xa6_\ \xa6}D{\xb2\x8c\x16\x97\x8b_\xfcT\xe7o\xb3\xe2\ \x06u\xe9G\xad\xc7h\x8d\xbc\xb8\x1e\xcc\xa6\xf9er\ \x9c\x08\x7f\xc5\xb9\xdf\xbd}\x7f\xa4\xe4:\xe6\xa2!\xa7\ #$\x9d\x8e\xa7X\xbf\x1a\xb7\x9fg\xc3\xfe\xc7t\xd4\ _\x0b\xb4\xff\xdb\xf5\xb4\xff\xcf\x15\x5c\xf2\xfet\x98\xce\ \xf3\xfe\x1d\xf2\xa6\x84}?ic\xf4\xb6H\xc9\xd5\xe4\ \xf7\xe1:\xf8\xf0\xdb?>\xc0\xdf\x8ed~s>\x9a\ m6\x1d&\xf3<\xf1Z\xcdWj\x9d\xcc\xaf\xbd>\ \x87\xe9\xe2v\x96\x8c\x8b\xfe,\xc9\xf1\x18\x11]\x16d\ [\x8dNm;H\xe7xZ\x18\x5c\x1fm\x0b\xf1$\ \xbbE\x97\xf2\xaf\xe0\xed,Y\xc6\x08\x9f,\xf8\xcd\xd7\ \x1ck\x15\xdb\x0b\xf0\xb4\xe4J\xea\x1b\xe5\xda\xd3\x9c\xf5\ +W\xe4K\x93\xb5\x8bjmL\xb5\x03\x9e\xc5\x83d\ v~\xf2\x81\x1a\x83\xadV\xfff\xc7U:JV\xdd\ +\xd76i\xb9g%\x1ba\xc5\xc9\x9a\xa9\xa2\xf3\xcc\ \xc5\x8c\xd1\xab\xa8\x86\xd4\x96\x1b\xa0\x14.a\x84\x04\xae\ ,\x05\xbe\xad\x05\xe5L\xe3\xd6\xdf\x5c\x7f#\x86\xdd\x9e\ l\xb5\x16<\xa05/\x84]\x8b\xa0\xa0\x03h\x90\xab\ \xa3\x1f\x03f\xf1\xb6%\x05\xa5\xc5\xf6\xf0|N\xa1\xf6\ \x96j\xb2dX\xb4\xd4\x5c\x05\xad\xab\xe04\x8b$\x8e\ \xa2\xdf\x8c\xd1\x9d\x9e\xa2\xa3}\xf5r;v\xfc\xfa\xa4\ =\x84\x8f\xc5\xe0\xc0\xb8`\xb7\xd1T\xed\xd6\xd2\xd8H\ \xb4\x02*\xe5O\xb5\xdf\x0b\xe1\x22\xbd\xd1vK\x0f*\ \x14^\x1b7\xea\x97\xbe^\xb9H\xb4\x5c=r\xb7\x88\ \x8b\xcb#\xb9\xdb\x8e\x94nq\xb7~\xb03\x9f#\x97\ i\x16\xe29\xe9k\x5c\x5cgI\xfb\x08Z\xc9\x82\x96\ \x81#\xf1\x8d&\xda[\x83\x108rJI\xed\xc8\x99\ \xb6\x01\xeby\xd1\x88`\x18p\x89\xe7}K\x99\x7f\x81\ \x90*\x92\x94\xf8n\xf02U\x95\x00e\x04\xd8!\xe4\ t\x97\x83\x00\x87p\x91\x5c5p\x11\x84\x0d:,\xfe\ \xf9\x10\xd2q\xdfL:\xa2S:\xa5^\xbb\xa4\x13z\ \xf1x\xe9\x84m\xf1\x84;\xe4C\xe2Q\xb58\xee\x12\ \xceY\x7f\xd2(l\xcai%\xa5]R\x01a_\xbf\ \xc9\x8b,\xfd\x92t\x19\x0cE\xb9\xaa\xf6\x90\x9aPZ\ \xa7\xe8\x8b\xe6\xa3f\xe5\x7f\xa7\xd3yY\xdb\x12\xcb1\ \xd2\xadd\x0b\xbcmH^\xb02R\xc0mOX\x94\ \xaaAi\x92\xaf\xe0$M\x89\x02\xc4\x7f\xd14\xe9\xea\ \x88\x92f>\x1a\xb2*\xcc\x02\x0a\xa2\x81\xe91\xdfG\ rtwD\xc1y\x99\x10\xaf\xb1`\xac\xcf\x8e'\xf2\ \x0f\x01\xfa\x1cel\x8f\x93C\xe4\xa45\xef\xa1V\xd9\ \xf3T\x92\xba\x22\xf67TS\x95f\xa8`\x11\xadf\ \x22:KS\xe1\xe5\x15\x84\x0f\xae\x0a\x9c\x0bK\x08P\ \xba\xd1r\xa65\xce\x06~\xd8\x1e^\xb1\xc1\xca\xe0\x1d\ \x95\xd1\x1b\xf6Td\x1d\x98\x00\x0dMag\x15\xe1U\ GQ\x89sW\x95h:\x19\x19\xe3\xea\xf981\xed\ \x17\x85\xb0\xf2\x82\xd1~\x8d\x06o\xef^\x1a\xa0\xb1\x17\ \xc2\x0f\xbdr\x0f\x01\x06Zn\xa2h\x07p\xd6\xe6\xc5\ \xb9\xd0\xc29[Z\xd8*\x1aQa\xe7%c\xab\xc7\ \x94\xdf\x0d*\x0e\x99\xdb\xc6\x8a\x8apO\xd1=\xa0\x18\ \x01\x04\x82d\xaaz\xec\xe7gUv\xb1\xca$\xc2\x93\ \xdb\x8aU)\xcd\x13`\xd5thUF\xce\x22ry\ \xadU\xc5\x9e\x02\xab\xae\x13\xc0\xc2\xa25\x8b\x9aU\xce\ \xdc\xcf\xcf\xaae\xac\x8bU\xc5\x1c\xef\x09\xe9Y\x05\x87\ J\xb6??\xab\xc6\xc2n[\xd5O\xcbVm\xa7V\ \x19\xe7\xb2\xc7e\xcd\xaay\x0aZ5\x9d\x07\x13\x07\xc0\ {\x9cyV9\xee=\x96?\x05V;6\x1b\xbc\x0e\ \x1aa{~\xaf\xc1\xf3\x08\x1e?\xe8\x95\x9f\x9f\x9eU\ \xd7\xb9\xaf\x0a@\xeb\x84z_\xe5\xfa\x09x`\xe3:\ \xdd\x12X\x84,\xd4n\x09\xd8S8-\xb9N\xb7T\ \x1e\x0c\xe5\x13;\x18v\xb8%\x15q\xa7\x5c\x0fX\xcd\ \xaa\xd3O\x80U\xd7\xc9\xaa\xb7U\xc1\x9e\x94\xadZ\xd6\ i\xab\xe5iI\x1f\x7fZ\x1aM\xf3\xc5,\xbe=\x1d\ \xcc\xd2\xe1\x977\x8d\x88\x89\xe2\x92RVv\x06\xcc\xa4\ \xe3\xaf\xff2;\xc0\xdd&7\x1f\x03\x1d1Ma>\ z\xf7\x98n\xbfX\xb6\xa4HG\x0f\xe0\x03zO\xd9\ H*\x09\xbc\x1b#\xe7\xdaY*\x81%;\xa6oX\ \xa8\x09\xe9\x9b\x15p\x14\xa7\xad?yh\xe3\xe3\x04\x8a\ n\xd8\x12\xe7px\xc1V\x8e\xe3\x0cXR\xa0\xb1\x08\ \xe8\x0a\xb1\x04Br,1\xc74E\x18\xa4\x96Ui\ F\xfb\x9b,o\xfeL\x9a2\xe4 \xb8\xf0\xe1\x03'\ (\xbe\x80R\xc3]0\xe289\xc5\x18\x00\xfc\xf5Z\ \xe1\x9a\x01\xef\xe0\xca\xad\xee\xe5\xe0C\x04\x92\x96\xe3\xaf\ \xe9\xe5\xab\xf8\x96\x0a\x1awS\x0a\x06(\xc3\xe9BO\ \xe1+M\x15\xa0pu\xbe7\x94\xe4\x06\x8c\xef\xadW\ \xe9'\x82;\x0a&0^\x97(\x1e@\xd17[\xc5\ \x03\x04\x87U<\x00!CI]\xc0,\xf89\x9c\xa0\ /\xa7P\xc0d\x19\x0f\xc0E\x08JsQ\xd4\x8a7\ \x0d\x1f\xe0\xe0\x8c\xa2\x03-\x95\x95\x00:?\xf1\x08j\ cn\xd2\x01\xb8\xd2\x90\xca'\xce\x1e\x5c\xe1\x1atF\ \xf9\xec4\xb3\x85\x95\x09@\x1b@]qk&\x99-\ \xc3\xc5J\x227\xbdUM\x88:7\x0cP\xfa\xf8G\ o\xc4\x8dw\xc6\x0e\xefZ\xa6\x22<~\x93x!@\ G0\xf5c \xc1\xc7\x7f,I\x1f\x08\x9f\xe01g\ \xb1\xd6r*\x81uX\x02\x8d\xaa\xc3\x12\xb7P\x95>\ \x90\xf5s\xc5}\xd9G\xaaX\x09M\xee\x95k\x8d\x0b\ \xb07\xf3\x05\xa7\x09\x9a\x9c\xf2\xfc\xe8\x1b!\x98\xe1e\ \x00\xad\x0c\x82\x01\xf7\x114\xc6\x84/)\xbdn\xf2\xab\ \xb8G\xa4\xb1\xedkv9\x16\xca\xf0\xa9\x03\x8f/\x05\ ZH,\x1f*\xa4(\xc4\xb63E\xf7a\xacw0\ \x8a\x93D\xd0\x10\xa5(\xed]\x06\x94\xe6Ia\x5c\xf4\ \x06&\xa0\xcc#\xb4b@+\xe7\x140t\xf4}\x19\ h2\xd2!\x9d\xc6m6\x04\x8a\xf3\xc1F\x89D\xed\ \x1d\x08\x94\xe6N\x89d\xde\x00U\x19 \xac\x0a3\x8a\ \x00G\xc2\xf0\xd2ve\x12\xca2th)\xc4\x01\xf4\ j\xbb\xd9*\xd2\x96\xe5\x935\xdd\xca\xac\xf1`\x83M\ h\xb6\xa1_\x99\xed\x11^|\x04\xd4{6\xcf\x18\x83\ #\x8cz\xef\x9e\x89\x1as\x94t_jx\x9e\xce\x93\ \xbb\xc2\xc8P+\xbbL\x928\xe5\x8be\xe7\x8e\xfa\x97\ \xb5-X\xc7\x89\x9e\x1eZ0\x7f\xfbF/\x1f\x08\xf0\ Zd\x94G\xe2\x05F^\xbb\x14P\x19\xf3E`p\ o)$ZE\xcf\xc7p\xdf!\x1d\xa0F[\x05T\ \x14\x90\xe3\xf1\xdad\xa8\xf5\x90\x22\xceNUE\xd4\xbe\ XE\x80=x\x84\x10~Cp\xd6\xf9\x92\xf2 \xc3\ \x9d\xe4C\xb9DY-\xf1?\x0f\xd2\xc6]\xee\x8bY\ \x07\xb6|\x1a\x12f\xd7\xb3\xe44\xf9\x9a\xcc\xd3\xd17\ \x100l\x99\xd3\xc7\x86\x80\x01D\x80.L\x09M\x1b\ \x8b\xd5z\xe5\x9d,\x1dB%=V\xe4h\x10\x1c\xa5\ \x86\x98\xadJ\x8c\xbe\xf4\x86B\xe6\x94\x08K\xf9\xc8\x14\ \x82G\xe3\xd8(\x92\xad\x08\x9f\xb0\xccZ\x9e\xa9\xe1\x97\ 6D\xd5\x14T\x13\xa3/\xd9\x00\x9d.oc\xd2n\ \x22rp]\x14[N\xe9jZ$YU\xdb\xf5V\ \x8cG\x1c\x1e4\x84\xc6\xf3h\x8f\xb3$ln#\xb5\ \x18\xb9V\xcdW\x95\x8eQ\xc6:\x1b&\x1d%\x94@\ \x92\x9f\x9f\x0c\x87M\x81\x1c(\x85\xb6\xdf-\xa5 \xbf\ \xbb\x14\x5ch\x1fW\x0c\xad\x03\xffJ\x0c\xf0\xcd\xc4\xf0\ \xd1\x8bA\xd2W\xa2\xe0O\xa0\xb0\xa0v\x8b\x82\x87\xee\ q\x85\xf1\xb0\x96\x81\xc2\xb0\x84\x09\xa0P\x92\xbfXm\ \xbe<\xb66\x8e\xa7l\x1bG\xc8\xc1\xb5-\xe7\x09\x9a\ \x87\xf1\x920\x07H\x82\x87\xeci[\x07}+[\x09\ \x8d\xbbe\xf1\xb4m\xe3P)<\xb6\xaf|X\xcb\xb8\ \x0aL$zJE\x22\x00J\x0cq\xab-\xe4\x0e\xf3\ x q\xdc\x99KF\xa17.\x8c\xa5\xb7\xc6\x94\xc6\ k#\x88$,\xef\xe8J+\xa3\x9d?5\xe3a\x14\ Ox\x14hV\xd6q\xbd\x99T6\x11\x16\x8c\x7f3\ \xdc\x01\xfe1;\x93\xcb\x1a\xf3\xfb\x8f\xb3\xb8H^\xf9\ <\x0f\xe0\x82\xf7$\x05a\x18\xd8\x8dT\x9fr\x0a\xe3\ \x0c\x0aI\x85Z\x87&T\xfbb\x04\xc7]\xf6[G\ \xf2\xfa\xc5\xe9\x12&`\x9b\x11\xc4\x12&\x02\xefe\xd6\ 2\x05\xb5\xddxH\xcc\xa6\xf8gmK\xeb/\x94[\ U\x8c\xe2\xfc2\xce2\xbc_\x13\x10w\x04\x1c$(\ \x16\x1a\x1e\xeaP\xba\x10\xc2\xcd\xb45ob!\xaa\x82\ \xa3\xae\x80\xf7\x14\x9e\xc5\xa5\x10\xd2\x04o\xf1\x98\xeeH\ LN\xf4(0g\x9912\xc0c9\xfeR\x88I\ I\xa6\x05^R\xe8\xab\xdc|\xa4\xec\x0e\xf2\xae\xf1\x0f\ \xc8\xea\xba\xbf\xd4\xbb\xee\x9d\xed\xaf\x1bx\xdd\xbe$\xf1\ ZA-}\xb5\x15\x84\xb7\xbd\x87R\x10\xae\x0b\x10\x8d\ &\x84m\x05Q\xae\x9d\xa0\x84!\xdc\x16M\xe4\x8c\x94\ V\xd9 \xa6x\xb7\x14\xce0\x8dR\x15\x0c\x148\xbb\ \x128\xbd\x1ch\x1c\xc50\xad\xb3\x5c*\xd8AK\xd4\ aE\x1c\xae\xa9w\x86z\x9a\x1f\xff\xb2#\x80\xca\x13\ \x1c\xea\x08\xee\xc83\xfdv\xae\xe099\x83p3S\ \xf5\xd9\xba\x83P\xfc\xb0\x0e\xe1Y\xba\x04\x0a\x9dJ\xc9\ \x99\x95\xfb\x9dB\xe3[\xfb\x1e\xd2-4\xbe\x82\xed\x9b\ \x03\xf4\xc7s\x0ca\xe7s\x8a\xe7\xe9\x1a~h\xe7\x10\ \xda\xe7\xe3\x1e\xa4;\xfa\xc4\xf0\x9d\xce\x0c!\x7fV\xce\ \xe1\xff\xaf\x11\x8do\xd5\xfb\x91\x9d\x83\xfc9\x9c\xc3\xea\ \x83\xffsF/\xd7^\xbc\xf8?\xaa\xe1\x9a\xe8\ \x00\x00\x07\x9f\ \x00\ \x00\x1f\xe4x\x9c\xcdXi\x8f\xdb8\x12\xfd\xde\xbfB\ \xeb|I0:x\xe9r\xda\x1dd'H0@\x06\ 3\x98$\xbb\xc0\x0c\x16\x0bZ\xa2mM\xcb\xa2A\xc9\ m;\xbf~\x8a\xbae\xcb}\xa1\xd3\x89\x91\xb4\xad\xaa\ b\x15\xf9X\xf5X\xd4\xe5\x9b\xfd:5n\x84\xca\x13\ \x99\xcd&\xd8F\x13Cd\x91\x8c\x93l9\x9b|\xf9\ \xfc\xde\x0a&F^\xf0,\xe6\xa9\xcc\xc4l\x92\xc9\xc9\ \x9b\xab\x8b\xcb\x7fY\x96\xf1\xb3\x12\xbc\x10\xb1\xb1K\x8a\ \x95\xf1Kv\x9dG|#\x8c\x97\xab\xa2\xd8L\x1dg\ \xb7\xdb\xd9I-\xb4\xa5Z:\xaf\x0c\xcb\xba\xba\xb8\xb8\ \xcco\x96\x17\x86\x01\xa3\xe2b5\x9bxl\xa2\x9fV\ \x22Y\xae\x8a\xf61\x89g\x13\xb0\xa3\xae\x1b\x96\xcf\xbd\ \x09\xe2\xca\xa0\xf6<\xedklb\xbcD\x1c\xa1h\xe1\ R\x1a\x9a\x06A\x84X\x08\xfe\xb1W\xe5\xa0\x1c\x96\xb5\ \x81\xff\xd3XF\x19_\xc3j8\xd9\xfc\xff\xb7\xf9\xdf\ 6\xc4\xaa\xe2$b\xf7o\xb9\x9fM\x90\x81\x0c\x8f\x19\ \xf5t\x00\xa3,\x9f61g\x93sK\xd4N\xf3\x0d\ \x8fD\xee4\xf2\xde\xf8&|;\xbe\x11\xd8\xb9\xdc\xaa\ H,\xc0\x85\xb03Q8\xef>\xbfk\x95\x16\xb2\xe3\ \x22\xee\xb9\xd9\xa7\xe0{0\x87\x1d-\xa3\xe30\x0c\x9d\ R\xdbY\x8f\xd9\x11\x84\x90\xd3\xac\xb8\x9e\xda\xcd\xf2\x9e\ \x96*^\x9c\x8d\x8d\x88\x03\x80\x83\x85\x95\x1f\xb2\x82\xef\ \xad,\x7f\xd1\x1b\x1aE\xed\xc8H\xa7Nr#\x22\xb9\ ^\xcb,\xaf\xc0\x1b\x18\xc7\x9d\xf1f\xab\xd2\xd2\x22\x8e\ \x1c\x91\x8a\xb5\xc8\x8a\xdc\x81\xedv&W`\x7f\x19\x8b\ E\xae\xc7UY\xa3\x9f\xa8\xeb\xe1R\x07Z\x80Cp\ \xf5A\xf18\x81q\x95]e9\xd40\x1aP\x8bN\ Z\x83&\xbf\x22\x99\xa6\x22\x82\xcc\xe4\xe9\x8e\x1f\xf2\xda\ -8\xce\x0b\xb9i\xac\xeb\x84\x05\x89Oq\x10L:\ \xb9\x5c,r\x01\xa3QO\x96\x17\x87TT\xe6\x16\xb8\ \x97j\xfa\x822\xcf\xe5\xecu)\x92\x90@Iq\x98\ \xe2\x89\xe1\xdc\x1d-D#\xd1\xf0\xed\xd1|\x12.\xa2\ \xc5\xb9h\x97\xce\x10\x99\xdb\x81<\x87ScP\xe6\xe3\ t\xa5\x04\xa4\xcd\x8b\xa1\x0f\x1a\xb8\xdd\xe4\xc7v$\x0c\ ;7x6a\x81\xedcF]\xd2J\x0fZ\xea\xda\ n\xe0\xfa\x81\xdb\xd9\x12\x90z'\xb6 \xa5\xec\xd8v\ Y\x07\xfb\x92%\x05\x14\xcb6\x17\xea\x93.\xe0\xdf\xb2\ /\xb98\xb1\xfa\xacx\x96C\x99\xaeg\x93B\xffL\ \x81\xff^\x02\xed\x04\xae\xc7\x02\xdf\xc46\xc3\x8c`\xea\ \xbd\xea\xc0|z\xd8\x8e3u,\x95C\x0b\x0d\xa0#\ \xbeM\x00\x0d:\x84\xce\xd5p\x04\x18\x93\x01t\x04\x9f\ \xd8j\xe8\xd0\xb1\xed\x13@g\xd5\xa1\xa8i\x91\xda\xfd\ 7\x86.\xa4VxG\xceY\xfe\xe3\xb3\x0e\x8de\x1d\ \xa9\xb3\xce\xff\xe1\xb3n\x14\x10\x8d\xd8\x19\x1e\x1a\xe1\x16\ \x82\x18\x0f\xfccn\xb9\x9d\x10\x1b:\x83`\xae\xee7\ \xce\xd1\xde\xbd\x89\xf3vF\xec\x85\xf3\xad\xef\xc1{~\ \x18\xdc\x02\xb9\x17\x22\xf6\xc4UF\xaa\xb4\xc4\xa6\x85\xfd\ *\x17\xbdWOM\xad\xad\xed7\xac\xdf\xbb\x91s\xbd\ o\xceO}\xdc\xe8)W\x82\xd4;\xe1J\x8d\x1b\xa6\ \xb5\xb3!9x\x8d\xed]\xb8\x9d,wx~>\xb2\ a\x01'\xe4\x8e\xf2\x1c);7\x82\x1e\xcb{p\xbf\ \x02\xc1\xd8#\xda\x15\xd7E\xfe\xfcy\xda\x95\x11\x94u\ \xce\xdd\x9f\x90F'\xfb\xfa\x9e\x04H\x03\x84\x1eD\x7f\ <\xf6\x17\xfb\ 2GV\x22\xba\x16j.\xb9\x8au\x98:\x07\x07\x00\ 4\x09[\x1c\xf4\x8d{\x7f\xd0\xb2A\x99j\x01E\xa8\ \xeb\xaa\xc4z\xa3/\xdf\xe5\x9b\x8b\x8efn\x92<\x99\ \xeb\xba\xe9M\x06l3\x0e\xc2\xf8H\xaa'_\xdbk\ \xef\xba$r\x99\xa5\x87c\xb3*\x8a\x06\xcfv\x8f\xa5\ \x87JZ\x15\xd6\xa5sZ9\xa5|-\x0a\x1e\xf3\x82\ we\xd4H\x80XY\x03\x08\x5c\xa5\xa7\x7f\xbc{\xdf\ \xf2A\x14M\xff+\xd5uW\xcb\xda\x80\xcf\xe5\x166\ \xb9\xe5(}%\x8e\xa6\xfa(\xe3\xc5U\xb2\x06\xb8\xf5\ \x15\xfe'\xb8VCA\xb7\x8a\x81\xb1\xc6\xb8sZ\xb9\ U\xa2z+1z\x0d\x8f\xa3u\xa2\x079\x9f\x8a$\ M\x7f\xd1Az\xbcU;M\x8aT\x5c\xfd\xce\x8b\x95\ \xf5\xa9\x90\xd1u\x19\xbd\x12\x0e\xec`\xd1\xe2\x8a \xec\ Z\xc8\xb7\x10+\xcdJ\xd9\xc0J\x098\x91\x13\x99]\ \xf5\xde=,\x94\x10\x11\x8fwb^\xcek\x97\x5c'\ \x0ed\xa8\xd8\xdb\x9b\xd5\xe6M\x19j\xf6V\x15;\x80\ \xac\xf4\xda\xfa\x18x\xdel\xe7i\x92\xaf\x84\xba\xeaA\ \xa0\xa1~\xbbl\x8f\x93\xd3u\xbd\x87\xd8?\xbf}7\ \xb6(\xbd\xed\xa7\xc3K\xcb\x91X\xdae\x12\x83i\xb2\ H@^\xfbur\x159\xbf\xca\xd8\xd1\xf89\x1f\xb6\ \x89\xf3G\xbd\x1f\xb9\x93D2\xcb\x9d\x0eX\xfd\xf6\xaa\ \xf4\xdes3\xc4N\xd3@\xfe\x98\xe5\x19\x1f?\xfc\xfe\ \x91\xfc\xf4\xc0U\x1e\xc7\xd3\xd1\xd2$\x12Y.\xca\xed\ \xcb\xeb\xfd[f\xdbr\xe3\x22\xb9\x81\x93mQ8\xa9\ \xc8\xa1K\xb3W\x85\xce\xd5\xde\xa0\xc1j`\xf5\x85J\ \xe6\xdbB>l\xc7\xfe\xe2Ku\x80r\xfe\x9f\xf16\ \x15{\x0ey\xa2\x8c\x0f\xa5\xe4\x81\xcb\x1b\x99@i\xab\ K\xb39M{\x95{\xe94\xa5]>-\xbb\x92\x1f\ \x1c\x1a-\xf9\xa5|.\x80;?j\xa5q\xa2]*\ \xb9\xdd\xace,\xea\xe1\x0dU,\x07\xd4\xc8p\xafg\ \xd9@\xa6\x9ct\x11\x0b\xa8\xdb)T\xf4\xcb\x17#=\ \xf4\xab\xd7Z\xdd\xeb_\xcaG\xb5M\xc54\x93\xd9W\ 8\xae\xa1\xe5P\xf2Z\xc0\x05\x0c\x919B\xf5cu\ &MI\xf3\xa8]\xff-\x93l\x0a\x93\xce\xe2F\x0a\ \xd4!T\x0a'H1e\x8d,\xe6p\x82+\xc5\x0f\ :\x80\xe8u+\xb0\x9a_\x8d\xd0d\xa1\xf1\x1f\x83`\ #503]\xe3\x06\xbe\x06\xbf\xbf\x1e58z\xcd\ \x8c\x06\x83\xbe\xa7\xeb\xfd\xb2\x0cz?\xa9,8\xc4o\ x\xb1U\xe2\xa8\xe1m9\x1bp\xd64\x07\xa7tT\ }\xfa\xdd\xd9\x83p\xd5o\x16\x8ea\xb5\xd1\xf7\x06\x96\ \xfa\xa6\x1b\xea\xbf\xcc5\x5c\xd7$\x81\xfe\xcb\xb0\xf1\xe7\ (\x9c\xe1\x13\xc3y?0\x9b&\xf7GKI\xc8F\ \x12B\xfe1bbd\x10j\x12o\x1c7\x86\xe8\xf7\ \xc0M\xcf\xba\xc5\xa4\xbd(\xdc\x8aI\x09\xc3\xe31\xc1\ \x90\xd1(@\x14R\xc8\xb7=\xe4\x11\x1fD&)+\ \x15\x99\xd4v\x0ddb\xfdU\xd6-\xd2\xc6\x18\xb0\xb3\ q\xc0\x02L\xce\xd6p\xef\x85\xdc\xb3V\xf1\x00\xc0\xf6\ ^\xf7-\x01\xa4!`\xe2\x22\x86M\x97\xd9\xd8\x0b\x88\ \x0b\x22\x93y\x86KMJ\x00\xb8\xb4D\x8d`\x13\xf0\ \xf5\xbd\x80\xf9g@\x0b\xb1\x85\x9e-\xe7\xce\x0ey\xcc\ \x04\x9a5\xc09D\x83c|\xa0\xc8\x18\xd2\x05Gh\ MW\x15u\xf5\xcb\xee\x07\xa4\x8e\xe7\x87\x8e\xa1q\xe8\ *\x96\xaa\x18\xab\x82\xf1\x1ct\xe3\xad\x01#?\xc0\x19\ \xf6\x1d\xe0dC8\xd7\x06qM\xea\x01\x9dY\xa1\x81\ ]\xd3\xc2\x14~\x07\x83b|f*\xee^\xe4,\xab\ \xa6\x13\xbe.\xf5\xc5\xef\xea\xe2\x1f\xeb\xe4+\xc5\ \x00\x00\x0c\xff\ \x00\ \x00L0x\x9c\xed[ko\xdbF\x16\xfd\x9e_\xc1\ U\xbe\xc4(I\xcd\xfb\xa1\xd8.\xb2\x0d\x1a\x14H\xb1\ E\xdb\xec\x02],\x0a\x8a\xa4dn(R )[\ \xce\xaf\xdf;\x94\xf8\x14eK~\xc4\xde\xc6n\x03\x93\ 3w\xe6\xce\x9c9\xf713\xf4\xe9\xf7\xebEl]\ \x86Y\x1e\xa5\xc9\xd9\x08\xbbhd\x85\x89\x9f\x06Q2\ ?\x1b}\xfa\xfdGG\x8d\xac\xbc\xf0\x92\xc0\x8b\xd3$\ <\x1b%\xe9\xe8\xfb\xf3W\xa7\x7fs\x1c\xeb\x87,\xf4\ \x8a0\xb0\xae\xa2\xe2\xc2\xfa)\xf9\x9c\xfb\xde2\xb4\xde\ \x5c\x14\xc5r2\x1e_]]\xb9\xd1\xb6\xd0M\xb3\xf9\ \xf8\xc4r\x9c\xf3W\xafN\xf3\xcb\xf9+\xcb\x82VA\ qq6\x12ld\xde.\xc2h~Q\xd4\xafQp\ 6\x029\xca\xb9.\xdf[\x03\xc4\x1b\x81m\xcf\x93v\ \x8dK\xac7\xc8C\xc8\x9fqJ\xb5m\x11D\x88\x83\ \xe0\x7fvR6\xcaaZK\xf87\x09R?\xf1\x16\ 0\x1b\x8f,\xff\xfc5\xf4W\xd0\xc7e\xf8i\x19\xc0\ |\x5c\xd0\xbb\xd1\x19\x85W\x7fO\xd7g#d!K\ 0k;4\xc0+\xc9'\x95\xfe\xb3\xd1\xbe\xe9\x1a\x05\ \xf9\xd2\xf3\xc3|\x5c\x95\xb7\xdaWC\xa9\xdbW\x05n\ \x9e\xae2?\x9cA\x17\xa1\x9b\x84\xc5\xf8\xfd\xef\xef\xeb\ J\x07\xb9A\x11\xb4\xbaY\xc7\xd0wg\x0cW\xb4\xd4\ \x8e\xb5\xd6\xe3\xb2\xb6\x91\x1e\x92#\x08\xa1q5\xe3\xed\ \xd0.\xe7\x07Jf\xc1l\xafnD\xc6\x00>H8\ \xf9uRxk'\xc9_\xb7\x9a\xfa~\xdd\xd274\ \x02\xf8\xfdt\xb1H\x93|\x03^G8h\x84\x97\xab\ ,.%\x02\x7f\x1c\xc6\xe1\x22L\x8a|\x0cK?\x1e\ \x9d\x83\xfci\x10\xcer\xd3n\xc3 \xf3F\xb9\xc0e\ \x1d\xd4\x02\x1c\xa1\x97}\xc8\xbc \x82v\x1b\xb9\x16\x95\ \xfc4\x8eC\x1fH\xe8\xc5W\xdeu>\xaa\x05\xa0\xab\ nSI\x09R\xdb^\xa1\xdf\xbcH\x97\x950\xb0\xac\ \xb8\x8e\x81\x17\xa6\xd0\x81.\xd3l\xf2\xdag\xc0J\xf4\ \xb6,J\x81\x13Qq=\xc1\xa3\xa6I:\x9b\xe5!\ (F\xad\xb2\xd2\x04\xa0\x01\xe8\xc2`\x94\xe3\xc3\xb5\x85\ A\xc0\x0e\xd1\x86\xf7h#\xb5\xb6\xd3qw\xde7\xe3\ 8\x00\x13\xd6lt+\xce{f\xd6\x1a\x12\x22\xb7\x80\ u0\xe6{qlkc\xb7\x805\xa0m\xe6\x87\x9a\ \xcd\xf6i\xbb'\x8e\x8c*\xea\xd0\x07\x00\x12+u<\ \x90\x94\x09\xee\xb1;\x00\x895:\x1eHI\xf4\xcc\x7f\ o3\xec\xd2?N.\xb2\x10\xdc\xd8\xeb\x1b\xa9\ ;\xb4$\xba\xe9\x07\x9f\x8d\x08r\x09\xa3\x9c6L\xbd\ \x86R*]\xae\x14\xc6M\xe9\x9a\x00\x04rG\x16J\ \xc9\x8e\xec|\xab\xecS\x12\x15\xe0\xbdWy\x98\xfdf\ \x22\xca?\x92Oy\xb8#\xf5{\xe6%9\xc4\x8d\xc5\ \xd9\xa80\x8f1\x04\xb37\x0e\xde\xa8\xa2\xb6C\xb6\xdd\ \x9f4h>\x06n\xc63\xde\x84\x9b\xee\xe2\xc6\x94+\ 1\x8c\xb0\x8b\x1b\xe30X.\x15\xef\xe0\xc6\xc4\x8e,\ \x94R\xd6\x97}\x00\xdc\x006\xc5\x05S\xd2\xc6.\xc3\ \x8c`*\x1e\x15\xb7\xbe\x89\x0f\x12\xceA]\xca\xed\xd2\ \x08J9\x1b\xa2\x1c\xc1C\x94\xa3\xe8/@9\xa0\x14\ u\xf4-\x9cs\xe4\xddY\x87\x86XG\xb6\xac\x93\xcf\ \x9eu\x83\x80\x18\xc4\x0e\xcf( $zJ\xde-\x7f\ \x01e\xdcl\x22\x8eH`\x86#\xcea\x09\x0c\xa8\x93\ \xce\x93\x04\x8c\x9b\x1d\x9f\xd0\x88=\xb0\x99\x91\x0d/\xb1\ \xed`\xb9!\xa38yh\xdfZ\xcb>j\xcc\xb89\ \xd6\x02t\x5c<\xba\x87\xba\xb3g%C\x9e\x95\xd5\x9e\ \xf51=\x1f\x91\xe4\x06\xdc\xb0d\xc7z'3y\x81\ \x5c\xa4)i\xf1\xc3L\x9e\x08\x97c%\xa9\xeaL\x1e\ d\xa9P0\xfd\xce\xe4\xb1r1VD\xc8\xc7\xf0]\ f\xce\x87\xbb\x12\xe5\x85\x84\xf6]\xc9\xdbC]\x17\x91\ \xec(\xc75\xa4\x0d\x0di\x1b\xf4\x5cD\x8a\xaf\xef\xb7\ \x18\x11\xb7pH\xdf\x81C\x8c\xba\x94a%t\x97C\ \x14\x8cB\x08\xd15 \xa6]\x8e\x10\xc7\xb8\xc3!\xc8\ \xa7\x11G\x94\xd1G\xe1\x908\x86C,\xd4\x1e\x12w\ \xe6\x90\xb8\x81C\xad\xb5\x1f\xda+!\x97Q$\xb9\x92\ \xed\x1d\xe9\x81#\x84\xb6Z!\xaa\x09y{\x14\x87\x07\ \xfb:\x9c\xc3\xe2I8|\xb3\x1fT\xfa\xd8\xf0\xf1\xdc\ \xfc\xe0=\x0cXi\xf5\x7fn\xc0\xf7Xy\x8d\xd0\xb7\ \xbb\xf2\x1a\x1d\x9bp>\xce\xca\x9f\x8e\xcdAl\xf9T\ \x9f\xc0\x9b\xd3\xf1\xc0\x9c\xb0\xbf\xaaG?\xf5\xea\x91,\ \xbdyX\xba#\x98\xf3\xac\xfc\xd9VL\xd3,\x08\xb3\ \xaaJ\x94?\x9d\xaa\xad\xc7\xda\xdcd\xbc\xeaBlz\ \xad\xeb\xd1p}~\xe1\x05\xe9\x15\xcc\xa1_\xf9%M\ !\x87\xe4\xae\xa2TP\xa4\xfb\xd5\xfe\x1a\xdah\x97\xea\ \x9a4M\xd5u\x99P\x02\xa8L\xect\xeb\xaf\xb2\x0c\ \x96\xc5\x89\xbd\xeb\x10\xa6T\xfe\xaa\xd0\xcc/\xd2\xaby\ f\xa0)\xb2U\xd8o\x19\xa4\xfe\xca\x1c\x7f;\xab\xcd\ \x92.\xd7}\x09\xd3\xd6\x99N\xcd\x15\xc6P\x07WQ\ \x02Su\xb6\xf70\x98\xb1\x1d@\xb6\x12\xd5\xdd\x0c\xb0\ |\x8f\xc4\xba\x89}\xfd\xaa\xeb\xfdU\x0bo\x1d-\xa2\ /a\xd0\xc4\x92Z$O\xbc\xa53\x8f\xd3\xa9\x17\x0f\ \x8f\xbe\xa4\xc8E\xe8\x7f\x0e\xb3i\xeae\x81Q\xb3\xb5\ \xb4\x0e\x00\x151\x8bksY\xb3\xbe6e\x1d\xa31\ \x05\x14\xa1&S\x0e\x17KsoS^\x805q\xf7\ 2\xca\xa3\xa9\x89\x95\xad\xc1\x80l\xe2Aa\xd0+5\ \x83\xdf\xca\x9b\xde\x8dY\xe6i\x12_\xf7\xc56Z\x0c\ x.\xef\x97^oJ+\x0b\xda5\x9c\xb2|\x11\x16\ ^\xe0\x15^cEU\x09\xe5\x90wl\x01\xc9\x82\xd9\ \xe4\xd7\xf7?\xd69\x80\xefO\xfe\x95f\x9f\x9b\xf0m\ \x04\xbci\xba\x82E\xae\xf3\x22s\x9b\xe2O\xcc\xd6\xc9\ +\xce\xa3\x05\xc0mn\x7f\xbe[/b\xb0\xe7\xba\xa2\ #l0n:\xddt\x9b\x85\x9b\x0b\xad\xc1\x1b\x9c\xc0\ _D\xa6\xd1\xf8\xb7\x22\x8a\xe3\x9f\x8c\x92V\xae\xb2\xed\ 4*\xe2\xf0\xfc\x17\xaf\xb8p~+R\xffs\xa9}\ S\xd8\x913ww\xe7\x04a\xee \xe9 V\x8a\x95\ e\x1d\xa9,\x84\x1d`\x94&\xe7\xadk\xabY\x16\x86\ \xbe\x17\x5c\x85\xd3r\x5cW\xd1\xe7h\x0c\x0c\x0d\xd7\xee\ \xf2b\xf9}\xa9\xea\xec]V\x5c\x01de\xafu\x1f\ \x9d\x9e\x97\xabi\x1c\xe5\x17av\xde\x82\xc0@\xfdn\ ^\xe7>\xbb\xf3\xfa\x11t\xff\xf0\xee\xfd\xd0\xa4\xcc\xb2\ \xef6/%\x07t\x99.\xa3\x00D\xa3Y\x04\xe5\xdb\ ~\xc7y\xe6\x8f\x7fN\x83\xb1\xc1o\xfca\x15\x8d\x7f\ \xdd\xaeG>\x8e\xfc4\xc9\xc7\x0d\xb0\xe6\xe2\xb3\xec\xbd\ \xd5M\x17;\xe3\x06\xf2\xbbL\xcf\xfa\xf8\xe1\x97\x8f\xe4\ \xbb#g\xd9\xd7g\xb4\xc5\x91\x1f&yX._\xbe\ ]\xbfy\xb2*\x17\xceO\x97\x90\xcd\xce\x8aq\x1c\xe6\ \x10\xdf\xdc\x8b\xc2p\xb5\xd5\xa83\x1b\x98}\x91E\xd3\ U\x91\x1e\xb7b\xff\xf6\xe6\xd95\x98\xf3\x7f\xacwq\ \xb8\xf6\x80'\x99\xf5\xa1,9rz\x03\x03(e\x8d\ iV\x09t\xcbrO\xc7\x95i\x97o\xf3\xc6\xe4;\ A\xa3v~\xb17\x0d\xc1w~4\x95\xd6N\xed<\ KW\xcbE\x1a\x84\xdb\xe6\x95\xab\x98w\x5c#\xd6\xb8\ \xf1\x80Es\x94\x02\x96\x9fE\xeb7\xd8\xc5\x9c`I\ \xb5\x8d\xe0?\x88\xb8\x04\xd21ImG@N\xa4\xb9\ \xe0\xc4v\x10$B\x101\x05;iv\x5cK\xe0\xdc\ \xce\x1ed\x06\x1e`\x02\xbe\xe1\xcd\xee\xc9\xb8>yk\ j[\x9b\xaf\xf25[\xc5\xe1$I\x93/\x10\xf6a\ \xbf\x92\xa5\x9f\xc3\xc9k\x8a\xc8\xb4\xbc\xf63\xaf\x9b\xe0\ 6!\xd5\xab\xe9\xf9\xbfi\x94L`\xf6IP\x95\x82\ \x0f\x0a\xb3\x18BQ1aUY\xe0A&\x90e\xde\ \xb5Q\xd0\xb8l\xcb\x02X~\xb6\xb4M\xb9\xf5O\x8b\ `+\xb60\xb3\xb9u\x09\xbf\xac/\xbd\x0d\x91\x99\xa6\ 9\xbbj_^\xb6\xf2\xbd$\x81|/\xcd\x1cH\x01\ .\xbdb\x95\x85\xbd\x9b\xb8\xda\xe3\xc3*\x19'\x091\ \xde7?\xed\xdd\x5c\x0f\xc9\xbdM\xee2\x80j\x0a\xb0\ \x00x\x17\x00\xa6\x01\x00@!\xb6\x88\xb21\xdaE\xe0\ \x96e-\x0f\xf5\x9e|]\xbf:\x94z\x07J*m\ n\xb0d\xdc\xfahqn\x13e\xb0\xa4\xc7`i.\ 8\xbe9(\x19\xa2\xbb\xac\x04\x8b$\x1a\xec\x91\x11\xc3\ IBm\x22\xac?\xf6\x00Y\xdd\xd9\x7fc\xb8\x815\ \xb7.\xc3\xb6\xc8ap\xdeH!\xcam&]\x81\x04\ \x91PdSe\xcc\x9b\xd9\xcaB\xa6\x1a\x03\xa6.V\ La\xb2\x97\x9dfJ5`\xf5G\x117\x02Vb\ \xf4\x9c\x01\xd3\xd8A;V\xab\x01\x11\x8e\x18\xb69s\ \xb1P\x84C\x91\xcd\x84\xc5\xa9M\x89k\xfc\xa2\xc1\x8c\ `\x1b\xf0\x94B1y\x18d\xf5\xb7;_\x09\xb2\xe7\ g\x0f=\xa0\xc1\x86\x192\xf6L\xe8\xd6;\x82\xc3\x04\ _\xf9\xc7p\xb0\xa5\xea\xab\x05\xdb[\xe3\x1b#O\xee\ \x94\x07\xc1\x84\xc4E@\xac\xd9\xf8\xc8\x9dX\xd3\x02\x93\ \xa1\xa7\x00\xf3+\xd8C\x1f\x16nSa`\x91\x06\x16\ \xc8d\x19\xc0\xa2\xf6\xa2\xc2\x9e\x1c\x95\xc7q\xac\x831\ \xc1\xa6\xb4\x09\x08\x84A\xcek\xc33\xb0\x06\xed\xc5\xe7\ \xb1L\xf0t<\xef\xefR\xb6\x08\x05Q\xbe\x84m\xcc\ $J\xcc\xe4\xbb\xc7;X\xb2\xe6pew\x0f\x83\x5c\ !\x10\xe1\x5c\xf3r\x13\x83\x5c\xae\xb1\xc4\x14C.A\ ]E\x05\xe7\xd8\xd6.\xc1\x0cR\xacf\x073\xef\xce\ \x1c\x94\xb4\xbe\x07\xddY\xc7z\x9c\xdb+\x16T\xfe\xbc\ \xadF=\x8da\xf7\xfd6\xbd\x0c\xb3Y\x9c^M\xb6\ 'Go\xcb\xdfQl\x1cGU\xb4\xcf\xd9\x98\x1b\x8e\ \xc3}\xcdp\x07\xea\xe4\x06>\xc1\x12N`\xa7Z\xdc\ \x97c\xed\xd2\xcd=\xd2\xa46\xeef\xe4\x0b/\xfb\x1c\ f}R\x96\xb4\x5cXT\xb8BS\x09\x91\x17\x98\xc9\ \x14RB[\xbe\x05+gas\x13/\xa9T\xb0\x8a\ \x8aiJ,\xe52\xa94g\xb6\x83A\x16k\x88\xd2\ \x17\xc0\x5c\x97S\xc6\xb8\xdc6\x83-\xaaP\x1cb\xb8\ \x8d\x85\x8b\xa9D\x92Z\x0e\x86\xf8\x8e)\x03\xce\xd7-\ \xbft\xc6R\x11\x1eV\x1eu+*\xc6g\x7f\xfa\xeb\ \xde\x89_\xbf\xbe\x7f\x22x\x93\x1d\x0cw\xb2\xc7\xac:\ \x87h}2\x1en\x93\xb7\x8f\xf6\xb6\xd9>$\xf1\xab\ \xeb\xf5\x83cj}\x95y4\xad\x8f\x8c\xb3\x0f@k\ \xce\x81\xab\x92\x98O\xbf4\xf8 A!\x08\xf9\x16w\ \x11$\x06\xc8d?\xae`@j\xcb!\xe6R\x18\x0b\ V\xa6\x99\x94\x12!,\x87\x11W\x10M\x10\xb517\ \xd9(\x02\xee\xc7\x96#\x5c\xce\x08\x91\x0crPL\x08\ \xc7&\x8f\x07\xd7\x86\x85\xed@\x7fD\x197gA\x7f\ \x1c\x11%\x8c\xd5\x80*\xcd*\xb3\x10\xae\x22\x8c\xd22\ \x83ERAn;P\x04\xfa\x04\xc6F1v%%\ &=\x83\x12\xc4@\x99\xd9-(\xce\x10L\x04\xca\xa8\ \xc0`\x98\xd0\x83\xa0\x0a\xf5R\x8e\x8e5\x91\x83\xac\xa1\ \x1b7\xbb\x1e\xb9\x97\xd6J\x1a\x10,\xfa\xac\xa98R\ \x7f\xb2\xd1\xe2\x082SQH\xef,\xe1\x83\x9a\xc6`\ ,\xd2B\x09\x8e\xa5\x89C\x8a*.\x85(\x1f\x15<\ \x90\xf24Mh\x8c8\x87\xbd\x86\xa3\x5c\xca9\x116\ \xd1\xb0*\x98rv\xb2\x03\xa9\x89Kb\xd49\x8d\xec\ ;\x83\xdb\xe7q\xfbL\x1e\xd8\xcc\x8f_0p\xfc@\ 3}\xaf\x88E\xf0c\xd8\xf66\x97\xe2\xc4\xdc\x12\xc3\ z\xda`\xaa\x10| *Y?X\x5c\xba\x94\x0a\xad\ Y\x19\xca\x04\x17\x98[L\xbbX\x0ad,\x0a\x8c\x1a\ a\x05\xf6m\x82\x11\x87\xb5.\x8b\xc0Gp\x0cy*\ V\xf0,5\x176\x18\x9c\xa0\x94\x09jIp\x0dR\ !Y:\x11\xa2\x08d/\xa61&\x1a\xe8a\x88\x82\ \x854\x16\x0em\x8d\x14l\xed\x8d\xf5s\xa6\xcb`\x08\ \xa5\x84A\xdc4\xec\xa3\x0akI,\x18\x97\x82m\x00\ 8 \xed2\xf3\x1d 6E0PL\xa9M\xc0\xe4\ !o\xa0\xa4g\xcc\x1dsf}\xa6\xdc`\xd0{X\ wH\x8c\xabR\xc3\xee\xe3n\x9a\x86oL\xd3\x8e\x89\ \x8c\xc7\xc5\xe9;\xfa\x88\x06H\x8c\x9em*\xf4\xd8\xc9\ \xadF\xe8~\xc9\xadF\xe4y&\xb77\xa6i\x87Z\ J\x8b#\xe4%\xafx)\xf0\xc9S\x1e\xc1I\ &\xef\x97\xa5H\xa6\x9fg\x96\xf2\x5c\xf3\xce\xc6s\x91\ \x97#\xb8\x97#\xb8\x97#\xb8\x07:\x82#/Gp\ \x0fz\x04G^\x8e\xe0^\x8e\xe0\x9e\xee\x08\x8e<\xdd\ \x11\x5c\xf3\xd0\xe6|\xf7\xa3\x13\xc2\xa7H\xed\x0f(\xe1\ e\x08\xc3\x0cj\xeem\x89\xdds\x16\x80\x0a\xd6z\xb9\ >\x9e~\xbb\x8ees\xf9-]\xc9\xc1)\x13\x031\ \xd1\xe0\xa6\xa5Ie8\x05\xdfi3\x0c\xcb\xad\x04x\ nHWL\xde\x82\xb9Ma\xe5\x08\xc4\x07\x0cb\x8a\ \x80\xe7\xb09u5\x85\x15\x04B\x81\x9b \xe0\xd7\xcd\ \xb7BT\x13\xcd\x89%la\xe2\x83\x06\x02Qp1\ \xc6\x95`\x04=\x9aH\x02Q\x88\x0a\x02\x0c\x00u\xc6\ \x9d\x83_\x17\x92\x97\x7f\xe7\xad]\x0dd5R\xd8\xfc\ }\x1f\xe4\x9c\xd8\x86>\x11\x01NBg\xd0\x13\x82\xb1\ \x189\x0c$\x13-VT|\xa00\x80\xa6\xf0\xa0\xf5\ -W\xf1\xd4|\xfd\x7f\xfe\xea\x7f[-h9\ \x00\x00\x13\xe4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a <\ defs\x0a id=\x22de\ fs3020\x22>\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \x0a\ \x0a \x0a \x0a \x0a \x0a \x0a \ im\ age/svg+xml\x0a \ \x0a \ \x0a \ \x0a <\ /metadata>\x0a \x0a\ \x0a \x0a \ \x0a \x0a <\ circle\x0a \ style=\x22display\ :inline;overflow\ :visible;visibil\ ity:visible;fill\ :#302b00;fill-op\ acity:1;fill-rul\ e:evenodd;stroke\ :#302b00;stroke-\ width:4.30417;st\ roke-linecap:but\ t;stroke-linejoi\ n:bevel;stroke-m\ iterlimit:4;stro\ ke-dasharray:non\ e;stroke-dashoff\ set:0;stroke-opa\ city:1;marker:no\ ne;enable-backgr\ ound:accumulate\x22\ \x0a id=\x22\ path3859\x22\x0a \ transform=\x22\ matrix(0.923416,\ -1.8493317e-6,-1\ .852795e-6,0.923\ 41381,12.656479,\ 12.866193)\x22\x0a \ cx=\x22176.3\ 7895\x22\x0a \ cy=\x22153.97134\x22\x0a\ r=\x222.\ 1655145\x22 />\x0a \ \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x0ab\ \x00\ \x003Nx\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x045\xa9\xbdrw\x15;\x07\xc5\x09\xceA\x80\ \x149h\x12\xb4}2hr)\xb3\xa6H\x81\xa4,\ )\xbf\xbe\xb3\x14\xaf\x12eK\xb2\xec\xa6\xad\x1dG\xda\ \x99\xbdp\xbf\x99\x9d\xdb\xf2\xea\x97\xd5,\xb6\x1et\x96\ Gir=\xc2\x0e\x1aY:\xf1\xd3 J\xa6\xd7\xa3\ \xef\xdf~\xb3\xe5\xc8\xca\x0b/\x09\xbc8M\xf4\xf5(\ IG\xbf|\xb8\xb8\xfa\x93m[\xbff\xda+t`\ -\xa3\xe2\xce\xfa\x94\xdc\xe7\xbe7\xd7\xd6\xdb\xbb\xa2\x98\ O\xc6\xe3\xe5r\xe9D\x15\xd1I\xb3\xe9\xf8\x9de\xdb\ \x1f..\xae\xf2\x87\xe9\x85e\xc1\xa8\xa0\xb8\xbb\x1e\xb9\ ldZw:\x9a\xde\x15M3\x0a\xaeG\xd0\x8f\x22\ \xc9\xcbv\xe7\x01\xf1\xa6C5\xf3\xa4\xcbq\x88\xf5\x16\ y\x08\xf9!\xa7T]Z\x04\x11b#\xf8\xc7\xde\x95\ \x83r\xd8\xd6\x1c\xfe&A\xea'\xde\x0cv\xe3\x91\xf9\ \xcd\x1fi\x94\x14_\x92?b/\xd1\xbf\xa6I^d\ \x1e\x10\x1cX\xbe\x1c\x04\xf8$\xf9\xa4^\xefz\xb4o\ {f\xc2|\xee\xf9:\x1f\xd7\xf4\xce\xf8z\xe9f|\ Mp\xf2t\x91\xf9:\x84)\xb4\x93\xe8b\xfc\xf1\xdb\ \xc7\x86i#'(\x82\xce4\xab\x18\xe6\xee=\xc3\x92\ \x96\xabc\xa5\xd4\xb8\xe4\xb6\xbd\x87\xfa\x11\x84\xd0\xb8\xbf\ 5h\x1d\xd83\x0b\xc2\xbdk#2\x06\xb0\xa1\x87\x9d\ \xaf\x93\xc2[\xd9I\xfe\xa63\xd4\xf7\x9b\x91\xbeQ\x9b\ \xe8A\xfb\xe9l\x06po\xc0\xebu\x0e\xda\xce\xf3E\ \x16\x97=\x02\x7f\xacc=\xd3I\x91\x8fA\xd4\xe3\xd1\ \x07\xe8\x7f\x15\xe807\xe36\x1acZ\xa02\xa2\xe4\ \x01\x17\xe0\xd0^\xf6{\xe6\x05\x11\x8c\xdb\xf4\xdb\xf4\xec\ s\xa8\x14\xb8\x1a\x03\xa3\xf2\x22\x9d\xd7}Ag\x8au\ \x0cR7D\xdbO\xe34\x9b\xbc!\x00M\x18\xbe/\ I)H<*\xd6\x13\xfc~\xd4\x8eI\xc30\xd7\xa0\ \xcc\xa8C+5\x1aF\xc0Ztd\x8d\x0f_-\x0c\ C?\xf4\x0fX\x0d\x0f\xaf\xc6\x9b\xd5\xae\xc6\xfdm\x1f\ \x8d\x92K\x8f@)\x0cA\x81\xd0\xc9(\xb9\xfcH\x94\ \x94\xf6\xe4\xc9(\xb9\xe2)\x94f^v\xaf\xb3\x06\x9d\ \xda\xfc\xc0p\xff\xde\xcc\xf3\x97,K\x97\xe4\xb3N\x82\ f\x8143\xe3\xc1\xc8,\x8a\xb4!f:\xfcgw\ \xcf\xd0\xfeG\xb7\xbdg\xaej\xcb)\x98\xbb0N\x97\ \x93\x87(\x8fnc\xdd\xcac\xee\x15w\xfd\x9d\x19\x0a\ \xe3\x82\x8dv\x80\x0b\xa38\xb6\xb3E\xac'\xfaA'\ i\x10\x00nYz\xaf\xed\xd2&O\x90\xe3\x12^\x93\ \x0c\x18\xff\x02\x0b9\xc9\xd2E\xe7y,\x0bV\xf8\xab\ %\x1d\x81%\x97B^2\x07Q*('\x96M\x1c\ \x82\x04\x91\x8a_\x22\x07a\x17aJ\xdc\xba\xa7d\x97\ 6tEX !-\xdf\xb2\xb1#\x18g\x0a\xe8\xc4\ \xa1\x82 \x17\xa9\x92H9cH^r\xc7\xc5\xd0\x01\ \x03\xd1\xd5\xb6\xb8\x94\xb0\x0cp\xa8\xf5\xa3\xf3(`\xb1\ \x93\x1c,\xe8\xecz4\xf3\x8a,Z\xbd\x85\x19\xf0%\ \x82\xdf\xf2\xcb\xa6\xf5\xae+\xf9Z~~\x9a$\xda/\ \xd2\xcc\xf6\x17\xd9\x83W,2m\xa4\xd1*\xc3F\xee\ \xc7)\x01\xf8\xcb\xac8\x9b\x1a\xf4g;]\x11\xf0\xff\ \xa3\x22\xd4z`>_K\x0b\xbee\x91\x97Lc\xfd\ )\xf9\xfa|%\x18\x9a\xecT\x1dp\x15\xe9\xcbmf\ qG\x88Kd\xd9\xd2q\xf9%\xb7\xcc\x81AV\xd5\ \xf8q\xb8\xc2L\xde T\x99\xfb\x8e\xfe\xe0y1,\ \x1c\x00,\xd6o!\xba!\x97\xe6\xbf3\xc8\xe4`'\ \xa6\xd01N\x8c1\xc9Ip\xaa\x13S\xe88'\x86\ \x10q\x0f\x0a,\x06\x9d\x98BO:\xb1\xc3]=W\ G\xa0\x84\x82g\x05D.>\x0a%\x11H\x1c\xe2\xd3\ ]==#J\xc7\x84\x8d\xcf\x0c\x88\xf8\xb1a\xa3\xd0\ B\x9f\x8c\x12\x7f2ll\x0e\xea\x1c2\xb09\x9cT\ \x08\xe9\x1b\x03U'Z\xc5\xda\xa4L\xfd\xae\xb4u\x1e\ m\x167\xbfY]\x8f\xa8\xe3JF\x5c\xb0\xf1\x130\ L\x08\xb9\xaeR\x04\xbe\xe3\xc1\x01\xeb\xeb\x91M\x84\x03\ .\x83\x83\x1b\x98X6\xe3\x0eQB2\xb6w\xc8\x0f\ \x18\xc2\x5cp@\x5c\x08n\x86`p0\x5c1\xd7\x1d\ \x1eR=\xaf\x0d\xd6{\x1a\x99\x1c\xb3|\x1ap\x8b\xe6\ G\xf4\xc7\x18#\xdb\x22A\x91r[\x04_\x00+\x1b\ S\x87Q\x97\xb8\xe5#1G\x10\xd3x\x0c,\x04L\ \xc5\xc1\xe7\x9a\x9d\xa3}\xf80\x06B\x10\x82>=\xeb\ \x0e8\xdc\x84\x0b\x82\x1a\xf8\x95\xe3RN\xb9\x92O`\ \xc4^\x16\xa3R\x13\xd0S\xa0`8\x96\x8fAB\xe4\ #\xd3\x0c\xaa\x08;HC0\x1e\xda=8j[\x87\ !t\xaa\x07nZp2\xef!\x03.\xbc\xb8?c\ \xdb\x9f\xc2\x81iy\xf9M\x15\x16\x5c\x8f\x8al\xa1\x1b\ \x06\x0c(t\x96\x98\xa0\x0d\x02#\xf8\x83\x9da\xd4s\ \xf7~:_o\x90\xce#\x13{\xdc\x80W\xd7\x85\x7f\ \xa7[\xa4\xe7Y:\xbf)\xddx\xd7\x82\x94\x84\x9b\xf5\ M\xa6c\x88\x15\xbc8o\x975\xa5\x91\xb2\xa6\xd4\xc2\ \x9c@,\xe0\xc57\xbbf\xaf\x80\x88g\x80\x5c\xae\xb9\ H\xa2\x22\xdf\x9e\x1c\x02\xa1\x22\x82\xb5o\x9a\xcd\xf5\xf9\ \xe1\x22\xd77E\x1ak\x08A\xfc~\x18\xb1\xc7\xd8\xb7\ QH\x1c\x97\xe0{\xf1\xd2[\xe7=\xe8\xfbC\xc1\x8e\ \x88c|\xa6\xf9\xa1'z\x03XK\x1d\x19Y\xec\xae\ \x86\x0e\xf5\x06\x02\x22\xf7\xb3\xa4\xc7\xf8\xac\x99\xd1\xf6l\ 'F\xc5T)\xbe\x9d\xcd\x98\x83\xc1/m\x0e\x0e\x82\ 8\xbcl\xf0\x92\xf8r!q\x95\xaf G\x96\xf9\x8a\ \xf9\x84S\xf9jI+\xfez\xbe\xcaE\x7f\xaeS\x93\ \x15\x84\xd1\xcf#\x962U)\xeb\x09e\xce\x82M\xeb\ \xf5Ds\xd6S\xf3\xf5<\xf5\x04\x04\xd9\xc6O#\x9e\ Z:\xe6\xf3UeC\xce*\x9b\xed\xd9N\x96\x0d\xe1\ \x87#\xfe\xbfS\xebA\x0e\xad\xb4\x80\x9as\xea\xaaW\ \xad\xf6|Y\x14\x9f\xcfW\xee\xe9\xcdv\xaa\x1e`\xba\ uF\xff\xb3\xf5\x9e\xd2\xb79\xf2\x15d\xf21\xf2f\ i\x12\x9c\xa7\x1a?4\xd9\xc9's\xbb\x02g\xac\xa6\ -\x1c$0\x12\xae\xb4\xaa\xafR\xb124\xdf\xb4\xb8\ T\xd6\xe6\x1bsII\xef\x8cx\xd5\x88\xc4\x86\x93\xf9\ *\x87\xaa\xc6\xfcL\xd6ux\xba\x93\x85(\xe9\x7f\xb3\ \x10_K\x86U\x90~\xc6\xb8\xf2\x1cG\x10\xc2}\xf9\ \xf3\x04.v-\x98\xf2\x8b}\xa6\x88\xff\xf0\x02\xa6:\ \xeeF\xd7\xfc\x9c\x5c\xc0T\xc7\xde\xe8\xee\xaevp\xca\ \x0a\xab\x9dZ\x0c\x7f*\xf3/_\xb2\x98\xdc\x81\x96^\ \x8f\xde\x0c\x94\x00\xf6\xc3\x0dytk8V\xb8\xac\x98\ \x09\xccd\xeb\x12\xd6@$\x10I)EE;\xd3\x8a\ \x5c\x8f(s0u\x09juwM\x86\xfaN\xab\xb5\ \xbeo\xca$\x8b\x5cg_\xcdK)_\x92\xef\xb9~\ \xd1b\x1b\x86\x074\xe5?S\xf3r\x1dI\x05R\xe2\ \xb9\x957\x8a\x1d%!\xbc4u<\x82\x1c\x86]I\ \xf8\xe1\xd5H\x01\x03\xca2/w8\xc0$\xf1S\xf5\ 8\x9b>\xbb0\xf4\x88z\x94w\x0f\x8f\x9dFW\xf5\ \xd4\x83P\x87B\x9e\xc5dO?\x00\x5c \xb9.\xeb\ \xeb\x87r\xa8\x8b\x18\xe5=\xfd\xd8\xed\xfb\xb8~l\xf7\ \xfa\xd6\x1a\xac\xd2v\xc5^\xa1\xdf\xda\xe0\xbfl\x02v\ \xeaE\xa1\x12\xf8Q\xa8\xba\xc7\x03@\x81x\x96\x9bZ\ 8\x22\xdbXa\xe9\x8a\xce\x5c\x06+\xc8J {%\ \x8amc\xb5\xd5\xf7\x0cXq\xe1H\x17K\x85\x0fC\ l\xe0\xba\x12\xbb6\xdag\xa3\xdb\xab?,m\xf7\x09\ C<`b\xa5\xa7\x09e[\x06}\xbf\x91n\x97#\ \xc8&OX\xe2\xa1\xcbT\xad<\xe4\xee[\xee\xb9\x97\ q\x80\xd4!8\xbd*J\xaf\x81\xd1\xd5\xd8\xbc\xf6V\ ~k,\xb7y\x171x\x88\xf4\xf2\xa2y\xa4[\xaf\ \xd1\xd9\xb97\xd5\xe5rp\xec6^\xb6b\xdc\xa6Y\ \xa0\xb3\x9aU^a\xb8=V\xf5D\x9b\xf7D\xab\xb9\ \xdb\x8b\x8b\xa9n\xf8h\x98\x9f\xdfyA\xba\x04\xcb\xb6\ \xcd\xfc\x91\xa63s0\x9b\xc2Ek\ \xed\xea\x15W\xcc\xd8\x0e\x1aU\x8f\xfa\xb5W\xc9\xe8\x9e\ \x1e\xabV?\xb7Y\xeb\xfd\xac\x99\xb7\x8af\xd1\x0f\x1d\ \xb4\x0a\xd7\x13\x84\x7f\xa7}\x88\x17oS/\x0b\xcc,\ \xdba\x81A\xa0\xd6\xd3M\x18\xb0Z\x1bZ\xcf&\x1b\ \x02\xc5\xb8\xf5iz6o\xaeyZ\xfb0|\x0d\xa5\ \x13\x0f\x88\xc1\x165O\xbcy\xd5\xdf\xccn\xb4=O\ \x93x]u\xdb\x9c\x83\xab\xf1\xae\xa2\x97\xf4\x99.\xbc\ \xc0+\xbcV\xebk\x0aE\xaa\xd9d\x16\x84\x93\xbf}\ \xfc\xad9\xbe\xbe?\xf9{\x9a\xdd\xb7\xc7\xd2t\xf0n\ \xd3\x05\xc8\xa5\xb1(\xe6]S\x7fb\xcc\xbbW|\x88\ f\x00\xa1y7\xf6\xcf\xabY\x0c\xe7\xafa\xf4:\x1b\ \xdc\xdaI7\xd3fz\xf3\xba\xef\xe0\xfb\xad\x81?\x8b\ \xcc\xa0\xf1\xd7\x02\x92\x8cOf\x91\xae\x99\x19W\x0fZ\ \x9b\x82\xce> \xfe\xaf6Z\xb6\xa6-\x00=\xado\ \xc4\x1b{\xb7\xe6\x86\xee\xb3aZ;\xdci\x96.\xe6\ \xb34\xd0\xd5\xf0\x8a_\x0c98tI\xc9\xbb\x1a\xd9\ iO;\x5c\xd91\xc8Y\xe7>\xb3\x97KM\xde\x80\ '\x0e\xfd\xf0}\x99X\xb5i\xc5cY\x15q\x10e\ J N\xba\x05Kx\xf6M\xbdr\xb8\x8aYS\x01\ c\x9d\xc5p:\x8a\x09\xabi\x81\x07\x96)\xcb\xbc\xf5\ $I\x13\xdd\xb1\xd0f#\xe6\xd1\x99y\xd5\xa3%W\ \x07\x9bQ\x87P\x82\x91\xea\xb0\xea\x13\xcd\x98#\xb8\xc0\ \xa2\xeb'M\x94\x8c\x1c*\xc1Xu\x0b\xb4\xe5\x8b\x0c\ \xa6\x10*\xb9\xecz\xf1\x81\xb7\xd9\xaa\x1b\x08.%V\ \xc8\x94Z\x95\xcb\x154\xcb\xc2\xe7\xbb\xae\xb6L\xfb\x9b\ \x98\xc2\xaa\xb2\xab\xcd:\x8e\xa3y\xdeS\xd0\xa1\xb2\x81\ \xa9c`\xc9\x85YV\x98b/g\xf0\x10-\xb9K\ \xed\xe7\xae\xa0\xf0\xc6QP\xc7\xa4=T\xf69\x06\x09\ \x06H`DH\x8fc,:`\xc1\x91\x22n\x9f\xb1\ \xda\xc3h\x12{H?lj\xf7\x99=E\xd3!Q\ D\x1d\xa9h\xf0\xc39\xc5\x87)Z\xa9[\x87+Z\ \x97\xba\x89\x0f&\xae\xb3y\x0e&k\xe6P\xc8a\xac\ V\x94\xf9q\xdf\xbe\x00\xa6\xe0\x0b9\x08C\xf4\x11\xaa\ \x0fv#`\xdb\x07\xf7\xa53\xe3A 7b\x18T\ \x18\xcb\x03\xc7\x18\xd1A\xb2A8\xa5xGthG\ f\x94\x0cKK\x12\xb9_R\x1e+e\xb1GR\x95\ \x1c\xb7%%\x19\x1c\x09\xf7\x85LB\xd7\x0eOk\x0b\ <\xdd\xd8^\xf8\xb82\xde\xe0\xc3\xc5\xbf\x01@\xe0\xfb\ \xd8\ \x00\x00\x18\xf7\ \x00\ \x00S^x\x9c\xbd\x5c\xeb\x8f#7r\xff\xee\xbf\xa2\ 3\xfeb#\xea\x1e\xbe\x9b\x5c\xec\xee\xe1b\xe3\x82\x00\ 9\x1cp\x0f\x07\xc87Y\xa3\x9d\x19xF\x1aH\xda\ \x97\xff\xfa\xd4\x93\xcd\x96Z\xebG\x92\xdb\xbd\xb3\x96\xcd\ _\x15\xc9b\xb1XUd\xf7\xeb?|z~\xea>\ l\x0f\xc7\xc7\xfd\xee\xcd\x8d\x1d\xccM\xb7\xddm\xf6w\ \x8f\xbb\xfb77\xff\xf8\xfb\x9f\xfa|\xd3\x1dO\xeb\xdd\ \xdd\xfai\xbf\xdb\xbe\xb9\xd9\xedo\xfe\xf0\xf6\xab\xd7\xff\ \xd2\xf7\xddw\x87\xed\xfa\xb4\xbd\xeb~\xfc\xdc\x1d\x1f?\ \xc1\xff\xde=~\xd8v\x00\xed^\xde\xff\xf8\xf4x|\ \x80\xba\xf7\xbb\xbb\xed\xa1\xfb\xee;\xd3}\x00\xde\xdf<\ \x9cN/\xafno7H\x09\xe0\xcd\xfe\xf9y\xbf;\ \x0e\xfb\xc3\xfd-\xd1l\xee\xf6\xcf\xeb\xc7\xdd\xed\xcf\xdb\ \xc3\xfe\x16\x08n\xef\xb6\xdb\xbba\xbb\xfb\xb6\xdb\xef\xba\ \xfd\x0b\xf4\xec\xe9\xf1e}8!E\xd7\xf7o\xbf\xfa\ \xea\xf5\xf1\xc3\xfdW]7\x1f\x02=x\xdc~\xfc\xb7\ \xfd\xa777\xa63]\x08C\xa6\xffP\xd5\xe3\xdd\x9b\ \x1b \xf3c\xa1\xe2\x11F\xfb\x02\xff\x7fu\xb7\xdf\xec\ \xd6\xcf0\xc8\xf7/w0\xb2?\xba\x01P\x04\xf9\xf8\ xwzxs\x93\x02\x95\x1e\xb6\x8f\xf7\x0f\xa7Z|\ \xdc\xfdt\xdc\xac_\xb6\xaf\x9a>\xd8\xc1u\xdf\x98\xb5\ 1\x9bw\xd1\xfb\xb2\xea\x9cq\xae7\xf0\xbf\xf0-\x11\ \x81\xd8w\xc7WJ\xfa\xe6F$\xf3\xf1\xe3\xc7A\x1f\ \x92X\xb0C\xc7\x97\xf5f{\xbc\xd5\xe7\x0d\xbdv\xbd\ \xd2\xeb\x83\xe1\xb8\x7f\x7f\xd8l\xdf\x01\x8b\xed\xb0\xdb\x9e\ n\xbf\xff\xfb\xf7\xb5\xb27\xc3\xdd\xe9\xaea\xf3\xe9\x09\ x\xcf\xfa\xf0\xd1S\xeb\xb6\x94rK\xb5\x13z\x09\xe7\ \x8c1\xb7*,\xe9\xda\x87\xfb_\x89<\xdc\xbd\xbb\xda\ \xb6q\xb7 7@\xf4\xc7\xcf\xbb\xd3\xfaS\xbf;~\ \xdd\x90n6\x95rI\xa7\xe6\xe0\xbb\x09\xfc\xf2\xfe\xf0\ D\x88\xbb\xcd\xed\xf6i\xfb\xbc\xdd\x9d\x8e\xa0o\xf6\xf6\ \xe6-\xe0_W\x8d@\xe9\xdf\xa1&!\x17V\x9c\xfa\ \xc8g{\xc3\x8f_\xd6\xf7\xd0\xec\xd3\xfe\xf0\xe6\xe6\xeb\ w\xf4G*~\xdc\x1f@\xfd\xb5*\xd1\x9fY\xd5\x1e\ f\xf6\xf1\xf4y\xd2\xdaF\x9b\x90\xeb\xf1a}\xb7\xff\ \xf8\xe6\xc6-UVb\xb3L\xbcy\xd8n~\xda\x1e\ ~\xdc\xaf\x0f\xd0o\x85\x1c\x1f\xf6\x1f\xef\x0f8\x92w\ \xeb\xa7\xe3V\x9fn\xd6O\xdb\x1eW\xcb0\x9e\xf3\xfa\ y\xbf\x7f\x06e\x1fbt&{\x7f^\xbd\x01*\xe7\ \x86\x94B\x0c\x17\xb4\x1b\xe8\x9eK\xc3\x98\xa3\x1f\xc3y\ \xe5\xc7\xc7\x1d\x8c\xae\x97\xc5eC\xb8\x18\x86 t\xc1\ \xe5p\xd1\xba >M\x03<\xaf\xfa|\xbd\xeay\xfd\ \xe9\xf1\xf9\xf1\xe7-\x08\xc3^\xf4\xfc\xfd\xe1\x00j\xd1\ ?\xad?o\x0f\xd5^t\xb7\xa4 w\xdbw\xc7I\ %\xb0\x14Hs\xa0\x0a\x16\xcbv}\xf8\xf7\xc3\xfa\xee\ \x11\xc8\x19\xc4\xb0yM\x00q\x09\x0dj\xdci\xff\xa2\ X1P\xf0\x040\xaa/4I\xf0\xa8_T\xb4Z\ [uBL\x1d\xff\xd9\xbf{w\xdc\x9eP\x0e\xdc\xff\ /7\x99\x7fg\x93f\xa1E[[|};\x1f\xff\ o\x15W\xb4\xb6\xf2'\x8b\xf4\xea\xe1\xb0\x05\xc3\xf1\xf5\ \x82X\x15w/\x0f\xff\xb1{<\x81\xddz\x7f\xdc\x1e\ \xfe\x86\xb6\xf4/\xbb\x7fT\xcd\x07n\xae\xed\xfbg\xfb\ \xe6f\x1cLrqz\x04\x00?N#\xf9\x0d}\xf6\ \xff\xb4>\x87\xc1\xd9\x9c\x8d\xb1\xb3n\x07\x0fk\xcf\x94\ \x92\x7fW\xef\xcfD\xe0\x87b\x22\xf2\xfa\xed}\xb5q\ p\x0b\x84\x7f?\xacwG\xd8\xa4\xc0\xbe\x9c\xf0\x9fO\ \xb0\xed~\x03&\xc8$\xd83{;\xc4ogc\xec\ c\x1e\x8cu\xed ?\xd1\xd0M\xf14\xf4_Pn\ \xff\x05\xe5\xde\xe2\x9f\xcd\xef[4>$\xf3\xab\xf9\xfe\ \x1f,\x1a,\xad\x9f\x96\xa6p^\x03S8\xfe\xc6\xc9\ B\x83\x1d\xe2P\x825\xc6MO\xd1\xc6\x87\xc1\x8fc\ +\xfb\x85Y|^\x9f\x0e\x8f\x9f\xbe\xb1+\x83\x7f\x07\ \x1bb\x0c\xf0/_\x06\x17\x9b\xc9\x04\xc18?\x98q\ \xfc\xe5\x19\x1b\xaf\xce\x98\xdb\xfa\xe0\xd3\xef\x9d\xb1|u\ \xc6.\xf8\xfe\xb6\x19\x9bO\x01m\x17\xb7\xb8C\xd0\xbf\ \xee\xa7]\x836\x16\x15\xe6ii!\xc0\x02\x08\xce\x95\ \xf1[\xdd[^\xd6\xa7\x87v\xb6\xb1\x0c\x12\x9a\x8cG\ \xe3\x12Lb{\xf7\xf8\xf4\x04\xf3}x\xfa\xe6\xebK\ \xf5\x98\xe6\x04\xf8=wa\x1c\xc0\x18\xadX\x03\xbau\ \xc7\xb3\xb4\xf2\x83\x8f9\x81#m\xe1o\x1f\xd2`q\ Z\x17kk\xe5\xcf\x95\xf3\xf2\xe0\x0c\xa9\x93_\xf5n\ \xc0\xb5;u\xe4x\xfa\xfc\x04\x1e1v\xfb\xd5\xd5^\ Wy\xdf\xb7\x02\xb9\x0f!\xe5_l\x97\xcc\xcb\xb7\x93\ \xea\x1d\xb6\x9b\xd3\x5cE\xf0\x89K\xd17S}\x80%\ \xd0*\x85\xfa$\xc15\x0f\xc5\x95\x99=#\xef.6\ \x0f\x80\x91\xe7>\x94\xd2<\xe6iR\xedk4\xb8\x9d\ \xf5i\xde\xa1{\x0b\xd41\xc6q\xd6m@\xff\xb9+\ +6\x91\xddw]\x1a\x5c2\xb5\xcc?+~\xa8\xa5\ \xd2}\xe8\xbc\xe96\x9dY\xb9a\xf4\xc5vn\xb0i\ \xb4@T`_\xec\xf8GK\x0f\x8ce$L\xbb\xd4\ \xf6LS\x8b\x82\xfe\xa1+\xc4\xb8\x17\xce\x0c\xab\xd5\xfc\ [\x8b\x0f]\xef[E\xba2\xa5\xf3\x0d\xa3\x91\xdc\xfd\ \x5cl\xa8\x1d\xaeN\xfb\x85d\x9b5\x95Rku\xce\ \xe7\xa6\xad!\xf9\x92y\x03\x81@-\xca\x98\xad\x1d\x95\ ]\xc1\x92\xc9(q?&O\xa5\x12\xa8\x14\xb9\xc0U\ ~\xec|\x1e\x8aG\xb9\x06_\x1c\x972\x95\x10\x09\xa5\ \xe0\xa9\x143\x96\xc61A)\x1ag\xa9\x94qv\x22\ \xff\x13+B\x19\x0b\x96h\x9eb\x8a\xfc\xefH\x05\x17\ q\x0a\x06cB^\xf5\xf8\xeb\x22H\x1e\x8cu2c\ \x06\xa3m\x0a\xf8\xf2#=A0=\xc1>\x10I\x14\ \x92B\xf5\xae8\xa6\x80}!\xf3\x933\xbcg\xbcw\ I\x08\x18\x0e\xf6w\x09.hG\xad\x83\xaf\x01\xe2\x80\ \xdf\x04\xa3$8\x01+\x01>\xb06P\x07\xac\xb5#\ \x13yg\xc7\x15\xfd:\xc7D^Z\xc1\xdf\xee\x09T\ j\x880\x03\x1e%\x11@\x12\xa8\x8a\x99\xcc\x901\x09\ z\x09\xf6\xcb\x80Fz\x9cM`Y\x86l\xddT\xcc\ 0\x03\x16\x9a\xeczpiB(\xb0v@\x81\xa1!\ \x9b\x86\x1c\xc2\xca\xa2\x1fV`\x99Y\x1b\xb7}\x90\xd1\ G\xd4l\x18\x04>\xa1\xf1\xc3\x08M\x1dH\xad\xaa`\ 7xS\x18l]\x8e\x81\xc0\xd8\xfdZQ\xa1<\xb0\ \xacr\x9d\x8d\x98\xb8\x83\xd7\xe6\xb7}\xac\x14\xb0H\x5c\ \x5c\xe2\xdd\xd7\x1a\x85\x12+\x14\x16C}7\xf1&\x02\ \x0f\xc2\x98u<\x82\x94\xa61\xa6f\x8c\xbdV\xcdx\ C\x87\x997\xe8\xdb\x19\xefq\x80\xf9;'p\xd0\x1b\ f\x0e\x0aq>\xd0~\xac\xf0\xc0\xe8\xc4\xda,\xe3`\ \x09\x08\xf4E\xf82\x90[\x15\x96^\xbb@@?\ \x03\x8e\xdc\xba\xb4M\x85 @]\x1a\xdeam\x0a\xd6\ \xb1\x1cR\xa1\xb2\x9b+\xae\xb1h\x15'\xbc\xf7&0\ \xbf\x94\xed\xe5\xd0\x88b,Ba\xb9\x05p\xae\xa8\xab\ #\x0f1M\xc2#x\x89M\xd7SH\xdc_\xd8\xd5\ b\xd3\xa1\xa4p\xe7\x1ati$\x07\x1dh%\xe7t\ \x8d2\xd72\x09D\x87(\x02q\xa1\x05\xc6\x89\xe19\ .6\xb8\x92\x02w\xb2i99\x01\xa6\x190\xb5@\ 2\x02I\xbb\x98g\xc0\xf1*\xd0/\xe0\xc2B\xcbs\ \x5c\xb9\x8e\x13\xad\xa2\xf9)_hWdm\xb9r4\ NLV\xb2]c\xe5|\x9dK\xafC\xb2\xd8,h\ \xaag\x80\x0b\xbe\xabV\xb4\x81{\x91\xa9\xe5.\x8f\xe4\ \x91a\xfb\xa1\xb4\x0d\xd4\xc9\xf70W\x05v\x18X@\ L\xe0`\xcc\x10ke}@\x04\x8a\x05\xe6S\x1d.\ \xde\xc2\xcd\xe7q\xb13P\x0dF\xd5\xd9\x899\x8f\xd6\ \xa6|e\xb4\x91\x1c\x06ok\x0b\xd0}7\x04-N\ ]\x81\xe7}S\x91i\xd7\x85\x8e\xc5\x8a{\x00\x9b\x04\ K*\xa3\xa1G\x12\xa4\x00\xd3/\x90\x04\x7f\xb1)\x13\ \x85\x05ox\x15\xda\xd4\xc0N\xc7\xb3\xeb\x9dA!\xc2\ hY\xc8S\xbf#\xca,8!H6\x8cB\x10]\ \xe5}FAK\x12\x8c\x0c\x13\xc8\xb4yW\xe25\x02\ \xcb\x04#\x13X\xb6\x08\xb8\xb8g\x04ubyj\xd0\ K _\xc3\xcb\xc6\x18\x92\xac7\xe9xX\xf4\xa0r\ \x9dD6\xb2\xc2<6\xeeN\xbb\xf0]U(\x82\x93\ \x03\x00\xbcm\x5c\xe0\xad^O\xe0\x1d?\xd1N\x80~\ \xfcd\x84Z\xb4\xf6\x84\xc1\xacLy\x0cKXuB\ \xfc(\xce\xc5(\xee\xfb\x22X\xdd\xdb(\x1b\xe8\xe4\xe0\ ^\xf8\x9f^t\xda\xb3\x8b8F\xf1\xe9F\xdfn\xe3\ \x0d>O\x1e%\xaeY\xcb\xf0j\x95\xe7\x9bC\x8d\xfc\ Xf\xe2d\xe52\x81\xa7mJ\x04\xedx\x9f5\x89\ 9\xc74G\x8b\ w+\x0a\xc7QJ\xd2e\x9e8Xb\xa4\x9d#\xe3\ \x0c\x99\x1b\xa4\x93UQ\xa1\x9c\xa3\xc2\xa9\x9ae\x00j\ \xe0\xadQ}\xd4\xdd\xc6{\x0e!1\xdb(6a\x1e\ \xa9g\xa5\xd0M\x8fzZ\xfcY\x9c\x9cG\x0d\xd6\xb5\ GI\xf0\xd6\x14n\xa1\xb8\x19\x055\x01\xfa[\x5c\x0d\ k\xa3\xf2\xe4d<{c\xe7\xad\xe0\x1a\xf2m$\x5c\ \x06\xaf\x076\x96\xb2\xf7m4\x9e\xab\xf7\x03\xe1\x8f\xa3\ \xa4\xa9\xe4\x861\xdc\xa9\xea\xfe\xa1\xb3\x1e\xbd\x7ftz\ 2p\xf5D\x08\xf8c\xe4\xe0\xa6p?\xb5\x0d\xd4\ :\x05\x1b>\xb7\x11\xec\xe4\x91U\x0a\x88[\x8c=\xa3\ 0V\x22\x7f:\x028\x0b\xc9\xcd\xd8\xc6\xf0\x98\xd4r\ \x92,qKA\xb9\xf6\x9b\x03~\x11\xbdt\x838\x8f\ \x02T\xd5\xd1\xf0=\x8e\x12\xec\xfb\xa5`\xdf\xd5n\x88\ \xc3\xcck[\xd3\x88sMc\x0a/k5\xc8\x11\x87\ \x95\xe4W\xe1\xf4\xc6y\x03\xa94=\x07\x0b\xe0$\x8c\ o\xb3\xe0\x13\xba\xe4\xbaP\x8d\x1e&@\x98\xe2\x1ap\ \x1bk\xbb\x96\xb7\x9e\xaau\xd3z\x9ar\xebmP\x9e\ /\xc3}9\x95\x11\x1f]\x0e\x9b(1\xc1\x86\x8bs\ \xd9\x17\xb9\x01=l\xa2F)\xe9\xc1p\xb7\x08\x0f:\ \x8b\x12\x83\xebAoHi\x82Oq\x8f\x8e\x8e\x99%\ #Av\xf0M\xe0\xdc\xe2kP.\x9dQ\xb3\xcey\ \xef\x8b\x88_\xe6\xc5J\xda[7\x8d`[\xeem\xc8\ \xaf\x871N\x82m\xcb\x04f\xbcB\x80)fIo\ \x09\x85 \xc6kM\xe4\x95&\xd0x\x04\x19\xb7hJ\ \xbc\xe9\x08\x14\xe8W}S\x93h5I:\xef2\xab\ \xe0VM\x15f\x0c\xc5\xe5\xc8\xd7\xce\x1b\xa0#\x15n\ P%%\xffx\xc1z\x5c55x\xc3\x84mc\xbc\ \xca\x98\xa3S+\xc9\xa1\x18\xd4+\xd4\x03\xad~>G\ \xea\x17\x12\xf7\xa4>dH3\xf6\x8d\x06\x88\x1fk8\ \xfd\xab\xdeq^d\xee\xd5\x95\xe6\xc5+\xaed4e\ \x11m\xd5\x9d\xe7\xc5\xab\xfe|j;\xde.\x0c\x8d)\ \x0c\xa7\xc55\xa4\xb1\xcb\xf0Qc%v)\xad\x06k\ \x17G*\xcbN\x91\x99\xc4\xfc\xd4yN\xdd\xd3\x85\x07\ \x9f\xf9\x92Nq\xa8\x03\xe8\x1f\xa5\xc1z\x10\xa4\xe7[\ +\x85\x8f\x03\xa4\x84\xc7X\x98\x9a\xef\xe4\x92\x03^\x8a\ \xf0\xb0A\xca%\x87\xde\x06\xd8\xaa2\xdd\x95pM\xb8\ \x1ahc\x09\x1a\xe1\x8em\xe4\xdck\xa5`y\xab\xaa\ \x81s\x98\x22\xdb^\xab\x04\xc9\x03\xaa\x89\x9a6\x07 \ \xac\xfdPd\xd7\xa3\xa0\x19\xef1,\xb3\xd6\x1aE\x1a\ \x8e\xfa\x15\xd9\xdc\x9e\xe85\x88\x0f\xa1%ho1\xc8\ \x0d\x87\xda\x8d\xe6\xf2\xc3\xc4\x9cC\x08\xbe\xe1p\xce\x1c\ vJ\x7fN\xe0\xe4\xe4\x80n8\xf4\x17C-51\ \xdfD\xe9^\xfbc\xdd\x02\x09-\x1c;\xa7\x885\xb2\ \xb7\x17\xbd\xe2e\xc9x\x11\x88S%/\xe5Z\x03q\ \x1e\xe3[M\xc3M\xc7#s|j\xf1x\xf9A\xf0\ \xd9^k!\xcfS\x03A2qx\xf9\xa1ib9\ \xe8\xaf'\x9f>\xce\xfaS\xbdFY\xd4Y\xbdL\xab\ \x01}s\xefh\xde\x1d\x22\x90x_\xa6,\xb6)\x86\ \xc2Q\xa2\x0bm\xf4\x8f\x81\x82\xc6\xffnY2\x92W\ s\xea\xf0J\xb2\x1bz\xe2\xe7]\xa9}\x1fg\x99\x80\ \x14\xd5\xda\xa5|\x85 \xcf\xf2\x01\xa9Z\xd3x\xad\x85\ \xd2f\x05\xe4\xc0\x14\xb7\xdfq\x19?O\x0d\xa4\xacx\ w\x05^\xcf\xb4Eet\x00\xe6J\x7f\xbc$\x88E\ D\xa3\xdc\xcf\xa0\xeb\x133\x82)\x96n\x93\x05|}\ \x82)\xc2Y\x12\xe0\x0c\xaf\x89\x10qW\xe8\xfe\xc4r\ \x97\xc2J\xefO\x88i\x98\xeeHT\x82\x1a&75\ |}\x82\x1b\xcf\xe3rg0{\xe0\xda\xd8^\xd2\x12\ \xf6|\x86\xe7\xb9\x03?\xe5\x09rsQ\xa2\xbfH\x1c\ \x84\x06\x17\xd1\xf1\x98r\x03|n\xd0\xd7;\x14\x86\x02\ \xa5\x95\xdc\xa0\xe8\x8d\x5c\xa1\xd0{\x12\xfd\xe4\x16\x08\xb2\ o\xab\xe8\x0e\x85\x91+\x14\xfdR@\xeeQl\xa1&\ \x0c\xe8\x0e\x85X\xacY\xfc;Qh\xc0\xef5\x22\x97\ \xe8\x87W\xe3\x02\x81\xde\xd1\x195\x22\x17\xe7\x90\x95\xe7\ \x22\x84\xd7\x80\xbc\x86\xfc\x12\xf0_A\xd7+\x95\x12\x8d\ O7*\xaf\xc4\xef\xd7.TN\xf1\xf5\xd2mJ\x01\ \xb3\x9b\x1f\xcbe0\xae\xde\xbb\x5c\xbb\xccI.j\xa5\ \xb8\xc4XCw_t\x81\xa4\x1a\xfbL\xacc\xa3\xed\ \x04\x0f\x8dI\xe0\xb4\xc0\xf2\xa9\x7f\x8d\xc3\x18\xcd\x11I\ \xd2X\xe32\x86\xd7\xac\x83dW\x83\x06ny\x16\xc2\ +ZC\x9fR#~\x8e\x09\xfd\x95x_Bq\xd9\ H|\x91\xfc\x80\x1e\xed\xcf\x8fus\x1aa\x85\x14\xdc\ \x96\xd0\x9d*+\xba/\x81\x9e\x0f\xf8KZ0C\xf1\ \x18F`^|D\xffc\x1c9#\x0e\xfa\x1e\xc9\xa1\ A\x07\x0c\x1f\xa4\xc8\xd7(\xf0\x16\x05\xb9\xe90\xa4\x1f\ :\x97\xc0u\x08r\xa7\xc291\xb0.\xe8aL\xdd\ \x1cgG7\xf3\xf0\x8f\xa7\x91\xf1\x9a\xff\xceyl\x09\ \x9a\xe0r%\xb3\xcd\xf3\xa1WT\xcc\x15\xb8\x1cS\xc9\ \xb5C\xbe\x16\xc4\xd7*\xccl\xe3e\xb4\x5c\x98\x91S\ \xf0P\xaf\xd7\xd8E4\x83\xf9\xfaJ\xb0r\xfd\xc5\x8c\ \xa5\x057\xc9\x02\xe9\x0a\xb7\xec\xb5'i\xb1'\xe2\xc5\ \xe8\xdd\x00'\xbc\xcbtutb\xae\xf7*\x84\xa0\x1e\ \xba\xc8\xb5\x8a\x09\x98*J\xd8D\xc5\x8d\x0bl\xf5b\ \x85\x10\xb4\xb7'\xf4fE\x05O\x97.\x18\xdb\xdc\xa0\ \x90\xab\x152\xb8\xe9\xca\xc5t\xbbC\xd2\x17|\xb7\xa2\ \xbf\xe8\x88^\xae\x98\x91\x04\xab\x12\x09\x0b$\xbc\x01\xaa\ @\x98b\xd4\xabU\xf9*\x85\x9c\x80&]\x8c\xda\xff\ \xb0\xe8\xa6\x89W\xa7\xd7dB\xd2\x06$\x8b\x93\xce\xf9\ \xeb})\xf5\xec\xd4\xbf.6.\xf1w\xf5@\x96W\ Pu|Kc\xa9Z|n\xfc\xba\x92D\xbf\xf0\xa6\ \xc5\x12Z<\x17\xf5\x83F\xa3\xce\xfe2s\xf1*|\ \xcd\xbb\xebY`\xbb\xedO69\xb5>8]\xb7\x10\ c{\xe6\x16M\x14yrz\xf9\xc2\x05\x13LF|\ \x06\x17\xcfTZ/\xf5.a.-\xbc\xeelr\xe0\ \xa4ifq\xa9\xe9\xd6E\xdd\xd9\xe6\xfc\xa5\x01\xc9\x1d\ W\xb7\xce\xc5E\xfe\xb1\xf1\x029\xf1\xcd:\x97\xd2\x9c\ \x7f\xdd\xc95\x85 \xa3\xc3\xab\x17l\xd1\xe3\xb8\xd8\x00\ \xfb\xc9V\xf7q\xbc\xd2%w,*\x7f\xa3\x9bxS\ A\xb7/\xb8\xe1\xe4\xaeu\x05#\xe7\xe9\xe0\x87\xee_\ \xf4r\x01\xa3a\x0e\x9e\x94\xf5\x83\xd3\xcbs\x10Bc\ \xd6D\x8fh\xfc(\xef\xbeX}2%X,\xbe\x07\ \xb6R~`\x06=B\xa1\xc14\xadC\xf1\xe8`\x8d\ \xda!\xd7\x03\x1aPy\x0a\xf9\xc7\x99O\x875\x01B\ \x0a|\xef\xa1\x1e\x11\xa5\x08n\xab\x9d\xdc/\xf5Z\xaf\ \x9f\xbf\x08\xe0\xe7\xd9+1\xa7\x8b\xd7\x01a\x7f$\x8f\ \x82\xde\x09,\xe2\x5c8\xce\xe2A\xd0\xeaS\xfb\xd6\xce\ \x97\xdf\xcb\x09K\xef\xe5\xacSX\x1b\xb3\xf8^\x0e&\ 5\x22\xef\xb3\x7f\xecp\x9fvt\xe0A\xbf2\x10|\ \xb7\x06\xa4\x19\x87\x91.8\xd2\xdb\x18\xab\xc0\xb9x~\ =\x84\xaee:\x88\xd61\x06J\xe0\xc7\x06\xbaE\xcc\ \x19xS\xff\x89\xa7j\xb8\xe7t\x98\x1f\x09\x96X&\ +\xf5\xab\xab:\ \xdd\xbc\x9e}{\xff\x0b\xef\xb8\xfb\xe0m\xfb\xb5\x85\xe5\ \x85T_q'\xf1\xe2+\xee\x11\x1d4)\xf3\xcf\x8a\ \x1fji\xf6\x8a{\xc0\xab\x1cx\x91\x22\xa2:\x93\x8e\ \xf1\x8f\x96\xea+\xee\x88\x14\x83\x8aZ\xcb4\xb5(\xe8\ \xe6\x15w\xe2\xcc\xb0Z\xcd\xbf\xb5\xf8\xbb^qo?\ M\x81\xd2\xee\xef\xd6\xc7\x07\xfd\x16\x857\x17\xf5\xd7L\ \x8c_`\x85\xa0\xcd\xfa\xe5\xcd\xcda\xff~ww\xf1\ \x85\x813\x03\xf4k&\xdd\x7f\xfb\xcb_3\xf0\x80[\ \x9e\xe9t\xd1\x85\xe5Vfba\x95@\x99\xe1F\x17\ \xf5\xd3\x07\x18;k9\xe0W'p\x8aG\xfe\xf4\x01\ \x95\xc4\x12\x8c\x94\xd6\xdb\xe0\x0a\x05\xc7\x98\xde\x91\x820\ \xdcEX\xf3\x96\x8e\xc0\x13\xbd\xd6\x8f\xce>\xdbA\xcb\ \x96e\xe1\xd3\x06\xf6\xec\xdb\x06\xee\x0b\x1f7\xb8\xf8\xf0\ \xc5\xd2 \xa7\x0f\x8d\xdc\xf3\xb7E\xf8\xe7y{Z\xdf\ \xadO\xeb\xe9\xfb\x22\xfa\xc4\xd7\xaf\xac\xbc>\xdc\xbd{\ \xf5\xd7\xef\xffT\xe7b\xb3y\xf5_\xfb\xc3O\xcd\xa6\ v\xb7y\x85\xaa\xb7>\xbd}|^\xdfo\xf1Km\ \xff\xfa\xe9\xf9\xe9\xf5\xedT1\x03\x9f>\xbfl[#\ \x80-\x1c\xb6\xfc\xf1\xb9\xc5\xaf\xad\xddm\x9e\x1f\x91\xe8\ \xf6o'\x18\xe6\x7f`#\xf3m\x15\xfa\xf4\xf4\xb8\xd9\ \xee\x8e\xbf\xcc\xf7\xd7\x7fFp\xde\x04\xf4[\xbfPx\ x\xdb\xb4\x82m\xff\xf1\xbe\xf9\xa2\xce\xd4\xf6\xfa\xc7\xfd\ \xfbSm\xf8\xecK\x84\xb77og\x14$\x98\xc7\xd3\ \xd3\xf6\xed_& \x89\x90\x9f\xb6M\xdej\x9bM\xff\ n\x97:H\xc8v\xb6\xb0\xb7\xffy.\xa9\xcb\xbe.\ \x09I\x04|\x9cK\xebf>\x0b/\xdb\x03L\xd5\xf1\ w\xcd\xc2\xee\xf8\xf5_\xb7/\x87\xfd\xdd\xfb\xcd\xe9q\ \xbf\xbb\x98\xe1\xff%\xef\xef\x1f\xc1\xe0<\xfe\xf8\xfe\xff\ \x85\xf7\xf6\xf0\xf8\x81*P\xd8\xc7\xd9~5I\xbc~\ \xecgZQ\xafou\xc5\xbd\xfd\xea5.\x9c\xb7_\ \xfd\x0f\x1a\xbc\x9dB\ \x00\x00\x0a\xf7\ \x00\ \x00LMx\x9c\xed\x5c[o\xdb8\x16~\xef\xaf\xf0\ \xba/-6\x92x\x13E\xb9I\x06\xb3St\xd0E\ \xb1\xbb\x98\xb6\xd8\xc7\x82\x96hG\x13Y\xf2Hrb\ \xf7\xd7\xef\xa1n\xa6l\xc5\x8e\x1b5E\xbaqZ$\ :\xe7\x90\x87\xfcxn\x94E\x9d\xff\xb2^\xc4\xa3\x1b\ \x95\xe5Q\x9a\x5c\x8c\xb1\x8d\xc6#\x95\x04i\x18%\xf3\ \x8b\xf1\xe7O\xef,1\x1e\xe5\x85LB\x19\xa7\x89\xba\ \x18'\xe9\xf8\x97\xcb\x17\xe7\x7f\xb3\xac\xd1o\x99\x92\x85\ \x0aG\xb7Qq5z\x9f\x5c\xe7\x81\x5c\xaa\xd1\xab\xab\ \xa2XN\x1c\xe7\xf6\xf6\xd6\x8ej\xa2\x9dfs\xe7\xf5\ \xc8\xb2._\xbc8\xcfo\xe6/F#h\x15\x16W\ \x17c\xce\xc6\xfa\xeaJE\xf3\xab\xa2\xbd\x8c\xc2\x8b1\ \xc8a\x8a\xbc\xf2:\x87\x01-\xe1\xff\xa4\x1d)\xb2)\ \xa9Dk\x1d\x13c\x12\xd8&\xa3WH\x22\x14\xcc\x5c\ J\xfd\xb3\x11A\x84X\x08\xfe\xb1\xd7\xdd\xfe\xc24H\ \xe4\x02\xe6%\xc9\xf2\xcb\xc7\x22]\xda\xa0\xb6\xdb\xafZ\ /\xd3\xac\xb0fQ\xac*Q\xe7*]('\x96\xcb\ \xd4y\xab\xf2kh\xe4\xfc\x9e\xc9Y\x14H\xe7}\x00\ 9\x0b\x15F\xd2\x92A\x01\xc3\xc9\xadtU\xc4Q\ \xa2r{\x99\xf4\xf7\xbc\x0e\x97\xd1\xc5\xd8G\xbd\xcc\x8d\ \xc9\xec\xacSG:\xfb\x12\xac/\xc6E\xb6R{\xf4\ M\x1f\x1d\x06\xb5\x5c\x15_\xd4\xbaPI\xd5%,\x91\ \xb1^%[c\xd1\xd2\xca\xf6`,I>iH\x17\ \xe3\xbb\xd6Z\x03\x95/e\xa0r\xa7\xa7}\x83~\xdb\ \xbe!\xd8y\xba\xca\x025\x83.\x94\x9d\xa8\xc2y\xfb\ \xe9m\xcb\xb4\x90\x1d\x16\xa1\xd1\xcd\x1a`\xbd\xee\x8c\xe1\ \x96\x96\xda\xb1\xef\xfbN\xc9\xddJ\xf7\xc9\x11\x84\x90\xd3\ \xacw=\xb4\x9b\xf9=%\xb3pv\xa7nD\x1c\xb0\ 7\x90\xb0\xf2MR\xc8\xb5\x95\xe4/\x8d\xa6A\xd0\xb6\ \x0c\xb4\x0fE7*H\x17\x0b0\x96\x0a\xbc\x8ep\xb8\ \x15^\xae\xb2\xb8\x94\x08\x03G\xc5j\xa1\x92\x22w\xc0\ \xda\x9d\xf1%\xc8\x9f\x87j\x96\xebv\x95\xfb\xe8+\xf0\ \x1f\xbf\xe4\x01W\xdb\xa0\xcc\xc0P\xc3\x08\xdaUr\x86\ A\x04i\x1c\xab\x00e2\xc9\xa1\xf0\ \x5c\x5c\x8c\x17\xb2\xc8\xa2\xf5+j\xbb\x9c@\x01\xa5,\ ~fA\xc1\xed\x11\xe4\x9ea\xdb\xf7\x09FLS\x88\ \x8b\xb8+J6#6\xc7\x98\xbbgDP\xdb\x13>\ ~\xdd*\xd0u9\xe6\xbe\xedy\xd8\xdb\x02\xa9\xabr\ \x8c\x90M\x10\xae\xb78\xfa3\xeb\x95\x9d\xf5\xcaf@\ 4\xe2\xc17\x9a\xecA\xac}\xef\x80i\x13L\x06\xc0\ \xba\xd0\x7f\xc6\xb0\x8d|ear\x86\xb6\xb0\xadq\x09\ E{\xbd\xd1\xd7\x18v}T w+Ev\xa4\xe0\ \xda\xa7\x80\x14T3\xfe\xf7\x04\xa7\x8c\x8f\x07\xc1aC\ \x82\x83)=\xf3\x10\xd8\x1e|v0rm$|\x97\ \xe0.R\xaeM|\xd8\x8a\xb0.R\xac\x03\x94Kl\ \x17#\xd7\xdbF\x8d\xef\xe0\xb1e\x04<\xe4\xb1\xd4\x1b\ \xccc\xf1\x19\xd2?6\xd4\xb1\x1e\xa1\xf0'\xe6\xb6\xf0\ (\xe2]o$\xcc\x16\xd4\xc3\x84w\xbc\x91r\x9b\xe9\ \xf8\xd1\xf5\xc6}\xd9Y\xaflVb\xce\x19\xf3`>\ ?\x14N\xff\x19\xce\xe1\xe0\xf4\x88\xfb\x0c\xe7\x90p>\ ;\xfb\x80\xd5\x8eG\x86s\xf6\xe7j\xe7p\xb5\xe3Q\ \xfcp\xac\x7f\xd6j\xc7\xa3tHp~\xdej\xc7c\ \xcf\xf9dP8\x9f\xf3\xc9\x90\xf9\x84=\xe7\x93G\xcb\ '\xees>9\x00\xces>\xb9\x9f\xc7\xfa\x03X\xd1\ \xb3\xc7\xde\xcfc\xfdA\x8d\xf2iy\xecqp\x06(\ l\x9e*8G\xc3\x99?@\x99\xf2\xf8\xe1\xec\xf1\x81\ \x12\x08\x0djELY\x10\xb9\x90\x8d|F\xf8\xd3\x82\ \xea\x98\xc3\x094@4\xea\x94\xbe\x10\xf2\x11\xa3B\x87\ z\x06\xe0 \x1d\xf4=l3N\xdc'\xe3\x89\xc7Q\ \xe3\xc3\x86\xa9\x16)\xdf\xd3VF\xbf\x13R\x8f_Y\ \x08\xf4c\xf6\x02\xd8\x83\x9d\x10&\xf8\x8c`\xa81|\ \xe6\xff\x0c\x95\x85~\x1a\xe8\x90U\x92\x01}\xd9\xc6\x88\ \x12N\x1a\x97v\x99\x8f=\x80\x95S\x1b\x13\x22\xc0\xa5\ \xb9M1\xa6b\xc7R=\xbdW\xa5\x9cv\xecU0\ \x9bp\xca\x84\xdf\xb5W\x90\xf5\x98K\xbaQ\x11\x22\xa2\ \xcd|\xf3\xab\xfc\x1f\x91@\x86\xb8_\xbf\x97@\x08\xff\ \xfe\x19\xe4\x07x\xf8\x10w4\x1f\xe2\xe1X\xf0\xff\x1b\ \x0fw\xc5O\xe9\xe1?\xc0j\xf9\x00%\xe2s^\xba\ _\xb5\xc4\x87{\x9a\xe6\xe7\xa91\x8f\xe6 >\xe8\xa3\ \x1fOy\x13s\x04*\xca\xc8\x90)\x08\xcc\x09\xfb\xa2\ \xb2\xb33\x8bCA\x8e\xf8\x13\x05\xee\x88g\x02p\x03\ \xd8X\x0d\x1c\x81\xa0.\x04\xf8d\xd7A\x19f6\xe2\ X<=\x07=\x92\x8c)\xa3\xc3\xa5\x10\xc8\x05\x04\x12\ \xa5\xbb\x93\x8c\x19\xe5\x90\xa5\xb1\xff\xd4\xcbm}\xd4\xe3\ \x00\x92\xc2E\x9diQ\xde\x99\x0f#\x9d\x89\x18\xdf\x83\ \xe9\x19X\xf8\xbe\xcbP\xcd\xf0\xdc\xd1GZ\xca\xbf\xda\ \xe3[\xfa\x9cQx\x13\xa9\xdb\x17\xed\x10\xa7\xb2]\xb8\ \xa5\x9c\xab\xf2YW\x98X\xf5\xccp\xcd\x98\xa6Y\xa8\ \xb2\x86\xc5\xcbO\x87U?\x0e\xab\x8f\x99a\x9f#O\ \xb0f\xa5Z8u\xe7\x86\x18\xea\xe3\xe7W2Lo\ a\xe6\xbb\xcc\xafi\x0a6\x04\x15\x85\xcb\x85\xbb\xdf\xb7\ \xae(\x5c\xb0\x10\xe1\xe36\x99l\x99\xa0\x8fq\xdb\x15\ P\x9b\xf8{\xccU\x96\x01\x8eV,7\x0a\xe6V\xfe\ j\x82\x5c~\x95\xde\xce3\x8dQ{\x1e\xcch\xa99\ \xd6t\x9a\xae\xfb\xd9a\x1a\xac\xf4\x81#kU-\xd1\ r\xdd\xdb\xc12\x8d\x12\xcd6\xba\x98Eq\xac\x17 \ \x903\xaa\xcc\xa1\xac\xa2P\x81\xe8L\xc6\xf9\xfeh4\ s\x7f8%\xb9Hc\x05\x8e\x18(\xf0\x82v\x18y\ \x91\xa5\xd7@y\xe9\x11\x7f\x16\xccv\xfb\xbb\x8d\x12X\ \x09\xab>t\x88\x19\xdb[\xafZ\xa29\x88\xd8\xb3\xe2\ \xb5\xc4z\xfb\xf8\xf5.k\xb3e\xe9\x19V\xb6\xd4\x8f\ \xa7\xe6\x9b&b\xc8T\xcd\xea\x15\xeck[k[\xc8\ u\xb4\x88\xbe\xaap\xfb\x84v\xc7\xfa\x82+\x15\x5c\xab\ l\x9a\xca,\xd4\x03\xab\xc3D\xeb<%\x98\x8d\x07\xa6\ \x99\xf6?Y\x94g\x01\xaf\xe0\xeak\x0a\x97q\xeb\xa1\ \xcb4\x8f*&\x15P!s\xce\xba1\xb6\xec\x8c`\ \xdfH\x8b\x0fU\xe4\xdb\x083$\x8cG&LE\xfc\ $E7*+\xa2\xe0\x1b\xd4\x88\xa1\xd4h\xd8<\x17\ \x0b\xd6\xa3\x86 4\x1cl\x84\xd8\x90\xcf\xc9N\xe5\xd5\ (\x22C\xcd\x87P\x1b\xd2\x8f'x\xaf\x9a\xd3\xcc\xe0\ \x80\x1a\xecz`n\x0c\xf7X\x1b\xa3\xf4\xb4\xd9\x1c\x84\ \xcd\x82\x94\x8d \x99\xb3\x9e\x09\x81\xa6\x01\xed\xdar\x85\ \x8d\xa0\xc2\xeb18P4\x98]c\x01Y\x09\x11\xd1\ \x8f\xdc`v\x0d;V\xdb'\xa4w\x81\xf4\xb2\x0d\xa5\ \x86\xf8\xb6\x0f\xfb\x89~5\xfep\xab\x83}\x1d\xde\x84\ \xd7\xb3:P\xf7\x9f\xb6:\x07\x15q\xd8\xb1P\x9f{\ =\x01\xc1\xc5C\xce\x88A\x84\xe3\x9c\xa2\xde\x19\x99\x87\ 8\x1fl\xd8\x02\x5c\x08y\x98\x8b\x1eM\xfa(\xffp\ \x9a0\x02\x1f\xf2\x11\xf2{5\x0d\x08\x9e\xa5\xef\xcb`\ \x97\x91\x1eMP\xd8\x1b\xe8u\x0a!S\xf6w\xb8~\ \x97\xa5\x8b\xffd\x0a1\xfeQ\x15E\x94\xcc\xb7\xf5w\ \xb1\xd1'\xe9\xd7\x1b\xddll\x0cp\x1e%k\xf3\xa4\ WE\xda\x98$}\xc4\x1e\xfaZ\x9bG\xb4j\xda\xc6\ \xa45\x95.\x9d\xd1m\x11<\x1a\xa9\xc5\xf2\x0e\x8eY\ \xff\xba\xa6\xbc\xc1\xa0\xc2d\xd4j\xb7\xb5\xeeht\x13\ \xe5\xd1T\x1f:3j\x18\x90M$\x10\xc3\x1dj\x9e\ \xc8e-\xafq\xd0\xfb\x8c\xec\xa0?^\xc9L\xfd\x1aG\xd7&\x18\xa5\xe9\ \xd5\xa6\xd6\x9c16\xe2\xf7\xb9\xd3\x04\xf8\xf2j\xbe\x0d\ \xfc\x9d;\x1emJ\x8e\xe5T\xc5\x17\xe3\x0f\x9a9\xda\ \xe3\xce\xb3t\xb5\x5c\xa4\xa1\xaa\x9b\xb7\xb7\x14\xca#\xd3\ a\x94\xeb\xf00\x89\x12\x9d\x95v\xdb\xee\xbcx\xa7\xcb\ \xd9t8E\xdf\xed}\xfd\x9c\xf9\xeb6CA$h\ 3b\xa5]\xdf=i\xdfk\xa2/\x8c\x83\xe1\xd5=\ \x8f\xc9K\xa2(\xa3\xbc\xbe\xac\xeeqLHs\xa9\x07\ \x0d\xe3\x99\xe4\x7f\xad\x00g\x93\xfag\x1a%\x13\x98z\ \x126T0\x10\x95\xc5\x11\xfc\x9a\xb0\x86\xb6\xab\xce\x0a\ e\x0e+\x96\x01\x22I\x9a(\x93Z\x9d\x17\x9f\xe8\x22\ P\x7f\xa8\xebW\x1fw\xe7\x1b=\x98%T\xa3\xdb}\ V}W\xc6\xf8\x8e\xb4\xb9\x0bc\x90\x00e\xe3n\xa9\ yq\x07\xae\x96\x06v\xfbM\xe5\x1d\xd0B\x1a~\xb5\ w\xd7\xd3E\xaf\xef\xc2\xba}\xc3\xcc7`]\xc2\xfb\ \xdd\xb1~\xd3k\xb0]\xe8-\xba\x07>\xdb\x07\x9f\x99\ \xe0\xbb&\xf8V[\xf8\x9e;\x90\xd1\xceuMt\xf9\ \xe2\x7f\xf7\xcd\xdd\xc6\ \x00\x00\x0e\x86\ \x00\ \x00Xtx\x9c\xed\x5c}o\xdb6\x1a\xff\xbf\x9fB\ \xe7\xe2\x80\x06\x93d\xbe\x8bt\x93\x0c\xbd\x15-\x06t\ \xd8\xb0\xadw\xc0\x1d\x0e\x83b\xd1\x8e\xae\xb2\xe4\x93\xe4\ \xc4\xe9\xa7\xbf\x87\xb4$K\xb6\xec8o\x8b\xdb\xab\xb7\ !\x12\xf9\x88\x0f\xf9{\xde)j\xa7\xdf/g\x89s\ \xa5\xf3\x22\xce\xd2\xb3\x01\xf6\xd1\xc0\xd1\xe98\x8b\xe2t\ z6\xf8\xf8\xfb;O\x0e\x9c\xa2\x0c\xd3(L\xb2T\ \x9f\x0d\xd2l\xf0\xfd\xf9\x8b\xd3\xbfx\x9e\xf3C\xae\xc3\ RG\xceu\x5c^:?\xa6\x9f\x8aq8\xd7\xce\xab\ \xcb\xb2\x9c\x8f\x86\xc3\xeb\xebk?\xae\x1a\xfd,\x9f\x0e\ O\x1c\xcf;\x7f\xf1\xe2\xb4\xb8\x9a\xbep\x1cx**\ /\xcf\x06\x82\x0d\xcc\xdd\xa5\x8e\xa7\x97es\x1bGg\ \x03\xa0\xa3\x9c+{\xdf\x9a ^\x11T#\x8f\xda=\ >q^\xa1\x10\xa1\xf1\x84S\xaa\x5c\x87 B<\x04\ \xff\xb2\x13\xfbP\x01\xcb\x9a\xc3\x7f\xa3(\x1b\xa7\xe1\x0c\ V\x13\x92\xf9\x1f\x1f\xd3$\xbc\xd0\xc9\x1fo\x7f~W\ \xf8\xc0t\xc50\xd6\xd7\x7f\xcb\x96g\x03\xe4 G0\ \xa7\x9a\x17\x80\x95\x16\xa3\x9a\xf9\xd9`\xd7Z\xcd\xe8\xc5\ <\x1c\xebbX\xb7\xb7\x9e\xaf\xe7\xd1<_7\xf8E\ \xb6\xc8\xc7z\x02Ch?\xd5\xe5\xf0\xed\xefo\x9bN\ \x0f\xf9Q\x19\xb5\x86Y&0vg\x0e\xd7\xd4r\xc7\ J\xa9\xa1\xed]S\xf7\xd1\x11\x84\xd0\xb0^q5\xb5\ \xab\xe9\x81\x94y4\xd9\xc9\x1b\x91! \x0f\x14^q\ \x93\x96\xe1\xd2K\x8b\x97\xadG\xc7\xe3\xe6\xc9\xb1\xd1\xa1\ \xf8J\x8f\xb3\xd9,K\x8b\x15x\x1d\xe2hM<_\ \xe4\x89\xa5\x88\xc6C\x9d\xe8\x99N\xcbb\x08r\x1f\x0e\ \xce\x81\xfe4\xd2\x93\xc2<\xb7R\x1fsG\xb9\xc0\xb6\ \x0fz\x01\x0e\x1d\xe6\xef\xf30\x8a\xe1\xb9\x15\xdd\x8a\xb2\ \xdb\xc3\xa8\xa4\x1e\x1d4\x04\xb5\xa2\x8d\xb3$\xd1cP\ \xd10\xb9\x0eo\x8ajX\x18\xb8(\xb3yM]i\ .\xb4\x04\x14K9X\xb7g\x93I\xa1\xe1i\xd4j\ +\xca\x9bD\xaf\xc8=\x18>\xcbG/)\x13\x99(o\xbd\xbe%>\x1b\x90\xc0'\x8crJ\ \x9a\xd6\x1bh\xe5\xcc\xe7Rb\xbcn]\x12\xa0\xc5[\ \xb4\xd0J\xd1&\xed\xb4b\xf71\x8dK0\x98E\xa1\ \xf3\xdf\x8c\x11\xff\x9c~,\xf4\x16\xd5\xefy\x98\x16`\ \xaa\xb3\xb3Ai.\x13p\x86\xaf\xbc\x8a\x15u=R\ \x0d\x7f\xb2\x06\xf4)\xa0S\xd4S{\xa1S\xca\x0b:\ \xd01\xe9\x07\x18&\xd9\x85\x8eq\x98/\x0f$\xef@\ \xc7\xd0\x16\xad\x01\x94\xadh\x83\xc7\x84\x0e\x90\x93\x5c0\ \x19\xb8\xd8g\x98\x11L\xc5\xc3\xa1\xeb\x05\xc4 \xb6\xc3\ \xa0z\x8c\x84 \x16\xca`\xd3H\xf6[vm\x97\xc0\ \x8c\x9b\x08\xba\xcb~\x0f\xf6\x00\xfbM\xbb\xc5.\xf0\x9e\ \xc1\x80\x8d\xfba\xb7\xd8o\xd7zQ\x9f\xf5\xd2\xa0\xcf\ z\xf1\xb6\xa5\x13k\xffGb\xbd[\xab\xdd@\xe3\xde\ \x01\x04\xd2\x97\xbb\x07\x901\x83\x04\x08\xdd#\x80\x80\x9a\ \xdf=\x80L\xc6Z\xb1\xe7\x0f \xb7\xe9\x9fP\x88\x8b\ 'W\x94{\x87'\xd2\xa7\xe0\xac\x09OO\x18>\x8c\ \xd8\xe5~g\xd95\xdc;\xc5\x0e\xd1\x17;(\xdb\xa4\ \xfdrb\xc7\x0a\xae\xc3}y\xbf1\x1e\x16:\x80\x17\ Fw\x8a\x1c:\x8a\xd8!\xdc\xfa\x22\x87\xe1F\x9e\xc3\ p\xf7\xeb\x1f\x18.{d\x0fOVJ\x89]\x0f\x07\ +M\x14'\x8f\xad\xe2\x0dm\x03\xa8\x99S\x98lB\ \x97\x830\x90\x0f\xce\x8b\xae\xbd\xd7\xe4\xc6\x0e\x80I\x00\ Qs\xdd\x0a\xa5(\xa1>\x0a\x90\x90\xebLy\xdcK\ ;\xee\xa5\xed\x81e\x16\x96y\xbc|\x85|\x85\x99\xc4\ \xc4E>\xc2DpD\xc0\xad\xc15\x92\x04\xc3\x0d4\ \x83=qA\x5c\xf0S\x9c\x02\xad\x0b\xde\x0d\xaa\x1b\xa9\ N\xee(\x1a#\xe0.\x12\x14\x05\xf8\x10E!H\xad\ \xe9vj\xdc\xe3[\xbc\xe5{\xb8\x09\x22\xfb\xdb0\xc1\ \xd7\x07Z<\xf0\xa2w2\xf8>n\xa8\x8f[\x9f\xc5\ \x037~O\x83\xdfB\x89\x22\x1e\xdc\x01%\x19jB\ \x0fHq\x8d\x0e\xda_\xcf\xf4\x81\xa5\xba\x13XL\xab\ \x10\x89\x03\xbc\xe3^\xa6\xe2\x19\xb2\x1b*\xc5\xbe\x0a\x8f\ \xca\x80w\x1c\x98\xc7x\xc7ua\xc4\x98O\x05\xe9f\ \x1d\x1e\xe7\x1d\xa7\xa5\x94%\xc2\xf2\xe1\xee\xb6\xf1+\x8c\ 2N(\x97.2\xff\xf84 \x8c3\xc4\xc0\xf5\xfa\ \x10\xae\x11b&\x7fR\xca\x07]\x0c\xe4S\x04l\x0b\ \xdd\xe1:\x12\xb2\x1e\xf3=\xd0zA\x0c{\xf2\xec\xbe\ p=!\x8a\xa8\xfb\x85k`F\x8fO\x11\x19\xdb\x0e\ 7\xf7W\x1e\x8e\x02\xae$R\x95\xf20a\xbc\x0cq\ \xa9/\xa9\x94\x94+\xd7\xa3\xa0\xb2\x98C\xf8=yT\ \xfd\xbfE\x0dw\xcf\x19\x5c\x07\xf0\x0ah=e% \ 9\x80 \xeaz\xdc\xcc_\x0a\xd0w\x86}A\x98b\ \xad\xd8\xf9 \x91\x04\xad}\xbf\x1e\x91\x04Jt\xb0a\ \x00\x9f\x14\x94l\xd4%\x14l\x93\x93\xa0\x9b\xdc`\xe1\ #\x89D+A38A\xba\xc1!\xe1\xc0\x87\x8a\xfa\ \x09\x8c\xda\xac\xf9p;\x8bh\x14lor\x1eh\xd4\ \x81\x22w2\xea\x89\xfd\xdd\xd3\xa8\x03(b\x8f\xaev\ \xb6{\xaf\xb4\xa3D_\xd3\xee\xcdS\xef:x\x8fZ\ \xe7\xfe?\xed;l(\xdd\xff\xd3\xce\xc3C+f\xef\ [\xcd\xec|\xdd5s\xeb\x9d\xcf#U\xcd\xa7C\xf3\ \xc6\xd4^5\xef\xc9\xcdk\xec\xc8\xbc\x0a\x7f\xd1L\xe5\ \x22l\xe66\x0f\xa7\xda\x86=\xe0\xbb\x8a{U\xc7E\ \x96G:\xaf\xbb\x84\xfdu\xba\xaa\xc8\xb8:o\xf0\xa2\ ;;3j\xd3\x8f\xfa\xfb\x8b\xcb0\xca\xaeAb\x9b\ \x9d\x9f\xb3\x0cd$7\x9b\xadt\xb9\xafh\x93\xe1\xac\ \xbb\x80\x0b\x11 \x9a\x9e\xaeE\x9e\x03\x88^\x12\xdeh\ X\xc8THU\xbf\xf0*.\xb3\xebin\xf0(\xf3\ \x85\xde|0\xca\xc6\x0b\xf3r\xda[\xac$;_n\ R\x98g\xbd\x8b\x0bs\xc0\xa0o\x80\xeb8\x85\xf5y\ \xd5\x11\x09\xcc\xd8\x16\x0a\x15E}lB6\x99\xf7&\ \xc5r\x9d\xd8lv\xdd\xec\xee\x9a\x85\xcbx\x16\x7f\xd6\ \xd1:SiH\x8a4\x9c{\xd3$\xbb\x08\x93\xfe\xd9\ [\xbd\xb8\xd4\xe3O:\xbf\xc8\xc2<2l*\x93\xee\ \x00P+fyc\x8eR,oL[G\xedM\x03\ Eh\xfd\x96Q\xcf\xe6\xe6T\x85=\x9b\xb2\xb6\xfe\xab\ \xb8\x88/L\x22\xd6\x9a\x0c\xd0\xa6!4F\x1b\xadf\ \xf2\x15\xbd\x19\xdd\x98K\x91\xa5\xc9\xcd&\xd9\x8a\x8b\x01\ \xcf\xe7\x9b\xad7\xab\xd6\xdal\xb6\xad\xc5\xb6\xcft\x19\ Fa\x19\xaeM\xa7n\x01\xbf\xc0j@\xf2h2\xfa\ \xf5\xed\xbb&\xc1\x1c\x8fG\xff\xc8\xf2O\xeb\xe4\xd0\x10\ \x84\x17\xd9\x02\x84\xdc\xe4\xbc\xe6\xac\xc3xd\xfcQX\ \x9e\xc73\x80\xdb\x9c\xcd\xf8n9K\xc0\x88\x9b\x8e\x0e\ \xb1\xc1x=\xe8j\xd8\x5c\xaf\x8e\x9b\xf4\x9e\xaf\x88\xc6\ \xb3\xd8<4\xfc\xad\x8c\x93\xe4G\xc3\xa4\x95\x08W\x83\ \xc6e\xa2\xcf\x7f\x09\xcbK\xef\xb72\x1b\x7f\xb2\xdcW\ \x8d\x1d:X\xb4>'\x08s\x0f\x05\x1eb\x96\xcc\xb6\ u\xa8r\x0d\xd1&\xce\xd2\xf3\xd6\xa1\x92I\xae\xf58\ \x8c\xae\xf5\x85\x9d\xd7u\xfc)\x1e\x82\x86\xea\xa5?\xbf\ \x9c\x7foY\x9d\xbd\xc9\xcbk\x80\xcc\x8e\xda\x8c\xd1\x19\ y\xbe\xb8H\xe2\xe2R\xe7\xe7-\x08\x0c\xd4o\xa6M\ f\xbd\xbd\xaew\xc0\xfb\x877o\xfb\x16e\xc4\xbe\xfd\ \xb8\xa5\xec\xe1e\x86\x8c# \x8d'1\xb4W\xe3\x0e\ \x8b|<\xfc)\x8b\x86\x06\xbf\xe1\xfbE<\xfc\xb5\x92\ G1\x8c\xc7YZ\x0c\xd7\xc0\x9acIv\xf4\xd60\ ]\xec\x8c\x1b(\xee\xb3<\xe7\xc3\xfb_>\x90\xef\xee\ \xb8\xcaM~\x86[\x12\x8fuZh+\xbe\xa2\x92\xdf\ 4]X\xc1\x8d\xb39\x94J\x93r\x98\xe8\x02\xc2\x9c\ \x7fY\x1a]m=\xd4Y\x0d\xac\x1e\x82\xec\xc5\xa2\xcc\ \xee&\xb1\x7f\x85\xd3\xfc\x06\xcc\xf9\xdf\xce\x9bD/C\ \xd0\x93\xdcyo[\xee\xb8\xbc\x9e\x09XZc\x9au\ y\xd6\xb2\xdc\xd3am\xda\xf6n\xba6y\x1b:\xb6\ <\xa8=ov6\xf8`:\x9d\xad\xdei\x9e-\xe6\ \xb3,\xd2\xd5\xe3\xb5\xab\x986\xfe\xb2o\xb3\x84P\xc6\ \x15\xe3\xd5\xce\x03g\x90$\x10\xe1\x12\xe9K&\x15R\ \xae\xf41\xe2\x81h'n\xd6\xc5\xda\xa0\xd6,r\xba\ F\xc7\xf6\x06P\xff\xb7*\xd5>\xceA\xcd\x13.<\ ()$'\x84\x13\xd7c>VX\x22LO\xda~\ k\xda\x16\xdd\x8a\x05\xe7t\xd0n\xddf\x82!\xd9B\ T\x04\x81\xe5\x84aI\x98\x06\x8c\xb9\x1e\x87<\x0e\x13\ \x9b{a\xe6+\xc2\x03\xa2\xda\xec\x80\xe1\x1c\x8c\xa8\xa3\ .\xebS\x80)`l\x5c\x1cD\xe8\xb1\xf9\x0d\xbat\ \xad|)M!_\xcar\x0f2\x82\xab\xb0\x5c\xe4\xba\ \xbb[P\xaf\xc5\xf02E\x1f\xd9\xe8\x83\xae\x9f\x1c\xe5\ R\xee\xfc\xdd!\xd8I\x1cH\x07\xb9s\x05\x7f\x9c\xcf\ \x1b\xa4\xd5\x96\xc2\x04|\xee\x08\xbc\xf1\xab\xed\x93R\xea\ \xe4\xb5\xe9m\xbd^\xb0\xb7\xf9\x22\xd1\xb0\xa2\xf43d\ W\xaf\x8b2\xcf>\xe9\xd1K\x8a\xc8\x85\xdd\xcf4\xb7\ \xabtbD\xea[3\xf2\x7f\xb28\x1d\x81\xbe\xa5Q\ \xdd\x0a^_\xe7\x09\x04\xffr\xc4\xea\xb6(\x84\x84+\ \xcf\xc3\x1b\xc3\xa0\x1b\x06\xfa\x11\xde\xbf\x08[\x17?\xfb\ *zE\xc4\x14\x88\x08\xe4\x948D\xba\x18\xf5\xcb\xa8\ \x165\x08\x03?Hgvk\xe2C!6\xf5\xf31\ \x22L\x03\x97\x1b\x88\x19w>8\x9c\x83\x7f2\x10\xd3\ =\x10\xab\xa3\x80\xb8>\xe8r|\x88*\x17<\x0aQ\ \xe0O\x181\x1a\x0b\xbe\x90\x08\xe7\x9f\xbb\xf0d\x88\x1e\ \x03\x9ef5\x0dV\xcd!\xa2\xbdXYx\x1e\x86\x15\ 6\xef\xf6$\xa2\xdce\x81/\x90 \x014\xb9T\x1a\ sg\xaetl\xfd\x8e\x01E(\x07Mq\xbf\xd7\xf2\ [\x87*\x8f\x05\xc8\xe6\x00\xc8S\x03I\x15 \xc5\x11\ \xc3.\x870/$\xe1\xd0\xe42\xe1p\xeaR\xe2\x1b\ \xffi\xb0$\xd8\x05\x9c!\xe9`\xc1^\x0b\xf7\xb6\x82\ \xe9\x9f\x06\xe5S\xe7\x02T\xf6\xe1\x07F\xca\x901X\ B+/\x08\x8e\x11|\xe2\xa6\xd9\x1e\xa1\x0bz~H\ \xd9f_\x0bR\xc8\xaf\x04D\x96\x95+\xec\x8d,\xb7\ \xe7&\x8c<{\xe4<\x02\x90Y/\xc8\xdc\xa5\xc2\x80\ \x1c\x18\x90!\x15g\x00\xb2\xdc\x8b\xf1\x9f\xe0\xa0\x8e\x00\ \xad^+_\x85\x1b\x97\xd2u\xac!\x0c\x0a\x00\x17\xae\ A7\xd1\xe1\xb8=M\x84\xecl\xe7\x0c\xa7\xad\x1b\x9d\ $\xf1\xbc\xe8l\x18Usk\x8e\x19A9)\x09\x0b\ ^\xaf\x0di{\x93z\xcb\x8e\xaa\xf5l\x85\x95\x1aJ\ LE7\xdd\xdb\xae\x05\x89\x1f@@\x09\x98\xacjA\ %\x19\x0a\xc0{z\x14\x22\x0e\xa5\xd2\x94\x85p)9\ \x12\x82\x9et\x06\xb3\xbb\xc0\xc4W\x5c\xca\xa0[\xa2\xd9\ w\x02P@2\x90S\xa7#_\xf6\xbcm\xb0\x1df\ \xdb\xd8\xa7\x04\xe1\xd6;\xdb\x0e\x8c\xbd\xb5t'i\xb8\ \xad\x9a\xc6\xdc\xa7\x9ccS\xc4+N\x14U\x07T\xd2\ \x1b\xa1\xf4+\xa8\xa5[o:V\xbf\xc7\xad\xa6=\xfa\ \x05x\xfb\x03\xeai\x8f?\xfb:\x1e\xa7\xa2\xf6\x8e\xa2\ @\xd9QS\x1f\x81\xb6\xe3\x84\xc8\xb6.\xd8sm\x80(\xed\xbe\ }k)\x08\x18p\xa2_\x81\xe8\x99\xc2\x18\x0bs\xf8\ \x15\x07A\x800;\x19\x9c\x9f\x96\xb0\xf0\xb4\xa3\xd4\xb5\ k\xc83\x03\xbd\x99\xf7\x96V\xda\x87\x80c\xb7\xfc\xdb\ 1\xf1\x9dS\xdf\x10o\xfcY\x8f\xa89\xdd\xc7(@\ \xd9\x96&\xf6\x09\x1f\x9c\xbf\xfd\xf9\xdd\xe9\xd0r>\x87\ \xbf\xb0\xe4F\xa3\xba\xfe\xedp\x9fuK\xf43\x1fd\ \xec2\xd6\x97DSF\xc5\x86\x0a\xf8*\x080\x0b\x98\ 8H\x13\xee\x18\x05\xf7\xe9\x8c9\xb1\xe6x\x90\xcf3\ \x1a\x10\x13\xfc\x99\xcf\x89\x00\x019\xe0\x0b\x94O\x19Q\ \x829T\xfaTI\x84T\x00A\xcb\x0f8\x16\x94:\ \xe6\x03\x01\xa4\x18\x14\x04\xaeW\x93b\xc7\xabh1x\ \x8d\x8aT8^M\xeb\x82\x9fvf\x8e\xf2\x03)\x95\ p\xb9/\x11\x81+g\xec\x10\x9f\x10\x0e\x09\x87\x07\xce\ P\xe0\x00\xaa\x0af$\x8a\x859rM\x05\x027\xcf\ |\xca\x03PC\xeaspEP\x0c\x03i@\xb99\ ~\x8b)\xb8*\xeax\xd8\xe7\x08|\xa5\xcb X(\ $%L\xc7\x0f\x88\xc0\x04Zp\x00N6\x80\xb9X\ N\xd8\xad\x18)\xc7[q\xe2\xe6\x8b5\xcbJ\x98\xa6\ \x15/\xafa\xe6\xad\xb8as(\xdf\xb2#N\xcd\xcd\ \xab\xd8\x05N\xcd\xcdk\xd8}\xde09\xa3r\x14I\ \xd1\xf6q]5\xdc\x19\xb8\xee\xa69\x1d%9\xdc\x89\ \xd8`kN\x80#L\x18\xc5\xae0'\x9a\x99\x90\x8e\ \xfd\x9c\x8fSl\x8e\x19\x81\xb5*\xac6?o1\xcb\ \xe0\xb8s0\xe6\x0e&\xd5\x9bX\x1c7J\x04r\x12\ \xce\xa8\xa9\xd2\xcc\x15\x85\x12\xc4\x03\x95V`I\x06%\ \x0e\xaa\x83\xf8\x0e\x90:Y\xceW\x0e\x13\xf7\x91\x12\xc4\ \xc0d\xf6\x9c1\xd8\x89\xa7|\x05q\xc7*\x93\xf2\xc1\ s\xec\xd2\xa5\xceF\xe1\xd3\xc1t?\xd7\xdfM+\xeb\ \x8f\xc2\xee\xef\xd7\xef\x98s\xde\xea\xd7!Z\xfb\x02\xec\ \x94\xbb\x12A^'\x980^]\xf8\x822\xc5\x1dp\ \xcf\x90\x9ea\xf0\xa7\xcc\xb7\x16n>\xfb\xe0LI\xf0\ \x83@#\x183\xde\x5c\xf8\x5c\x82#\x03G\x08T\xe0\ \x00\xd9N\x8f\xd6\x11\xd5\xce:\xe1^\xba*\xab/v\ [\xd0\xda\xd7%\x0c\x83\xb7\xdd\x84\xb6\xf8\xef\x22\xcc\xf5\ \xbd\x94\x15B!5\xbe\x0d\xdc;s\x85\xf41c\x8c\ C\xa4\x83\xc4\x14\xac\x05C\xf8#\xe6\x03g\xd6\xf5q\ \x0d\x06\xe8\xb9]\xdf\x9f\x85\xd3O\xc6\x80)\x97\xe6\x13\ \x9f\x16N-\xf0\xa4\xf49\x06OHw\x00\xd5\xd9\xd2\ y\x06\xa8\x9a\xef\xb2[P\xad>Y\x02W\xa5\xee\x03\ \xd5c\xe4a\x0fS\xbe\xe7\x0e)G\x88\xe9c(\xaa\ \xc7\x9f\x15\xd6\xbe\xfa\x821z\xd2\xc5\x99\xf9,\x10\x04\ \x09\xfa\xa5\xaa\xee3;\x84>\x94e\xc07P\xa6F\ \x9b\xa1\x16}6\x07\x81\xa9\x8f9\x15\x98\xb9\x011a\ \x1cJ5\xc7\x14_\x18+\xc4Lh\x87I+\xb9G\ \x95\xbd'\x09Q\xd5.\x8d\xfdsj>S:\x7f\xf1\ ?'\xc3\x9e\x10\ \x00\x00\x0a.\ \x00\ \x005\xc0x\x9c\xedZ\xebo\xdb8\x12\xff\x9e\xbfB\ \xe7~iq\x96\xcc\x87H\x89\xde\xb8\x8b\xc5\x15{(\ \xd0\xc3\x02\xdb\x16w\xf7)P$\xca\xd1E\x96\x0cI\ \x8e\xed\xfe\xf57\xa4\xde\xb6\x1c?\xea\xa4{\x8f\xa4\xa9\ \xad\x99!)\xfef8/\xe9\xf6\xe7\xcd\x226\x9ed\ \x96Gi2\x1ba\x0b\x8d\x0c\x99\xf8i\x10%\xf3\xd9\ \xe8\xeb\x97_Mwd\xe4\x85\x97\x04^\x9c&r6\ J\xd2\xd1\xcf\xefon\xffd\x9a\xc6_2\xe9\x152\ 0\xd6Q\xf1`|L\x1es\xdf[J\xe3\xedCQ\ ,\xa7\x93\xc9z\xbd\xb6\xa2\x8ah\xa5\xd9|\xf2\xce0\ \xcd\xf777\xb7\xf9\xd3\xfc\xc60`TP<\xccF\ \xdc\x1e\xa9\xab\x07\x19\xcd\x1f\x8a\xe62\x0af#\x90\xa3\ \xc8e\xfa\xbas\x83\xb8\x14\xa8f\x9ev9\x161\xde\ \x22\x0f!?d\x94\x8a\xb1A\x10!&\x82\x7f\xf6;\ =(\x87m-\xe1o\x1a\xa4~\xe2-`7\x1eY\ \xde}J\xfd\xc7\xdf\xd3\xc2+`\x1a\x0b\x16\xd5\xa2\x80\ J\x92O\xebUf\xa3C\x9bR\xd3\xe4K\xcf\x97\xf9\ \xa4\xa6w\xc6\xd7\x0b6\xe3k\x82\x95\xa7\xab\xcc\x97!\ L!\xadD\x16\x93\x0f_>4L\x13YA\x11t\ \xa6\xd9\xc40w\xef\x1e\xd6T\xaf\x8e\x85\x10\x13\xcdm\ \xa5\x87\xe4\x08Bh\xd2\xdf\x1a\x5c\x9d(\x99\x05\xe1\xc1\ \xb5\x11\x99\x00\xc4 a\xe6\xdb\xa4\xf06f\x92\xbf\xe9\ \x0c\xf5\xfdf\xa4\xaf\x8c%z\x92~\xbaX\xa4I^\ \x82\xd7\x13\x0eZ\xe1\xe5*\x8b\xb5D\xe0Od,\x17\ 2)\xf2\x09(x2z\x0f\xf2\xb7\x81\x0cs5\xae\ \xb4\x13u\x05\x86\xe2h\x1ep\x01\x0e\xe9e\x7f\xcd\xbc\ \x82q\xa5\x5c)\xd9\xe7P\xd7\xc1\xd5\x18\x18\x95\x17\ \xe9\xb2\x96\x05K)\xb61h]\x11M?\x8d\xd3l\ \xfa\x86\x004a\xf8\x93&\xa5\xa0\xf1\xa8\xd8N\xf1O\ \xa3vL\x1a\x86\xb9\x04\x13F\x1d\x9a\xb6c\x18\x01k\ \xd1\x9119}\xb50\x0c\xfd\xd0?a5<\xbc\x1a\ kV\xbb\x9d\xf4\xb7}6J\x9c\x9e\x81R\x18\x82\x01\ \xa1\x8bQ\xe2\xecL\x94\x84\xf4\xdc\x8bQ\xe2\xce1\x94\ \x16^\xf6(\xb3\x06\x9d\xda\xe9\xc0p\xffQ\xcd\xf3K\ \x96\xa5k\xf2I&A\xb3@\x9a\xa9\xf1\xe0ZVE\ \xda\x103\x19\xfe\xb3\xbbg\xb8\xfeG\xf7\xfa\xc0\x5c\xd5\ \x96Spra\x9c\xae\xa7OQ\x1e\xdd\xc7\xb2\xd5\xc7\ \xd2+\x1e\xfa;S\x14\x9b9\xf6h\x0f\xb80\x8ac\ 3[\xc5r*\x9fd\x92\x06\x01\xe0\x96\xa5\x8f\xd2\xd4\ \x9ex\x8a,NXMR`\xfc+\x8d\x92i\x96\xae\ :\xf7c\x18\xb0\xc2\xdf\x0c\xd7r\xb0\xcb\x5c\xc7\x1d\xdb\ \x16\xa2\xd4\xa1\x8c\x18&\xb1\x08r\x88+\xd8\x18Y\x08\ s\x84)\xe1\xb5\xa4k\x8fM\x10E\xd8A\x8ek\xf8\ \x86\x89-\xc7f\xb6\x00:\xb1\xa8C\x10GB\x13)\ \xb3m\xe4\x8e\x99\xc51\x08` ri:c\x17\x96\ \x01\x0e5\xbeun\xa5\xc8\xbc$\x07\x0f\xba\x98\x8d\x16\ ^\x91E\x9b\xb70\x03\x1e#\xf8\xd5_\xca\xabw]\ \xcd\xd7\xfa\xf3\xd3$\x91~\x91f\xa6\xbf\xca\x9e\xbcb\ \x95I\xa5\x8d\xd6\x18J\xbd\x9fg\x04\x10%\xb3\xe2j\ f\xd0\x9f\xedrC\xc0\xff\x8b\x86P\xdb\x81\xfa|-\ +\xf8\x92E^2\x8f\xe5\xc7\xe4\xf3\xf7\x1b\xc1\xd0d\ \x97\xda\x00\x17\xa4\xaf\xb7\x85\xc1,\xc7\x19#\xc3t-\ \xce\xc6\xccP\x07\x06\x19\xd5\xc5\xb7\xd3\x0df\xfa\x06\xa1\ \xca\xddw\xec\x07/\x8ba\xe5\x00`\xb1|\x0b\xd9\x0d\ \x19\xab\xff\xae\xa0\x93\x93\x83\x98@\xe7\x041\xdbv\x19\ \x09.\x0db\x02\x9d\x17\xc4\x10\x22\xfc\xa4\xc4b0\x88\ \x09t4\x88\x9d\x1e\xea\x998\x03%\x14|WB\xc4\ \xf1Y(9\x81\x8bC|y\xa8\xa7WD\xe9\x9c\xb4\ \xf1;\x13\x22vn\xda\xe8HG^\x8c\x12;\x9a6\ 6\x07u\x09u\xd7\x12N*\xa4\xf4\x8d\x83\xaa\xcb\xab\ b\xabJ\xa6\xbe(m\x83G[\xbb-\xef6\xb3\x11\ \xb5\xb8k\x13\x0e>~\x0a\x8e\x09!\xce\x85 \xf0\x1d\ \x0f\x0e\xd8\xceF&q,\x08\x19\x0c\xc2\xc0\xd40m\ f\x11\xe1\xb8\xb6}p\xc87\x18bs\x08@\xccq\ \x98\x1a\x82!\xc00as><\xa4\xba_\x13\xbc\xf7\ 3\xcd\xa0\x89\xd8'\ Y\x08\xc6C\xbb\x87@m\xca0\x04\xa1z`y\x05\ '\xf3\x11*\xe0\xc2\x8b\xfb3\xb6\xf2\x14\x0eL\xcb\xcb\ \xef\xaa\xb4`6*\xb2\x95l\x180\xa0\x90Y\xa2\x92\ 6H\x8c\xe0\x0fv\x86Q/\xdc\xfb\xe9r[\x22\x9d\ G*\xf7\xb8\x83\xa8.\x0b\xffA\xb6H/\xb3ty\ \xa7\xc3x\xd7\x83h\xc2\xdd\xf6.\x931\xe4\x0a^\x9c\ \xb7\xcb\xaa\xd6\x88\xee$\xb50'\x90\x0bx\xf1\xdd\xbe\ \xdb+ \xe3\x19 \xeb5WIT\xe4\xbb\x93C\x22\ TD\xb0\xf6]\xb3\xb9>?\x5c\xe5\xf2\xaeHc\x09\ )\x88\xdfO#\x0e8\xfb6\x0b\x89c\x0d\xbe\x17\xaf\ \xbdm\xde\x83\xbe?\x14\xfc\x88sN\xccT?\xf4\xc2\ h\x00k\x8933\x8b\xfd\xd5\xd0\xa9\xd1\xc0\x81\xcc\xfd\ *\xe51\xbeje\xb4;\xdb\x85Y1\x15\x82\xedV\ 3\xea`\xb0\xb1\xc9 @\x10\x8b\xe9\x0b\xa6\x89/\x97\ \x12W\xf5\x0a\xb2\x5c]\xaf\xa8O8\x95\xafV\xb4\xe2\ \xcf\xd7\xeb\x5c\xf4\xe7\xba\xb4XA\x18\xfdq\xd4\xa2K\ \x15\xddO\xd05\x0bVW\xaf\xa7\x9a\xab\x9e\x9a\xcf\xd7\ \xe9' \xa86\xfe0\xea\xa9\xb5\xa3>_U7\xe4\ \xaa\xba\xd9\x9d\xedb\xdd\x10v:\xe2\xff=\xbd\x1ed\ \xd1\xca\x0a\xa8:\xa7\x5c\xbcj\xb7\xe7\xb7U\xf1\xe9z\ \xed\x9e\xdel\x97\xda\x01\xa6;g\xf4\xc7\xf6{tl\ \xb3\xdcW\xd0\xc9\x87\xc8[\xa4Ip\x9dn\xfc\xd0d\ \x17\x9f\xcc\xdd\x0e\x9c\xf2\x9a\xa6c!\x07#\x87\xbbF\ \xf5\xd5\x15\xb6N\xcd\xcb+\xe6\x0a\xa3\xfcfs\xa2\xe9\ \x9d\x11\xaf\x9a\x91\x98p2_\xe5P\xd5\x98_\xc9\xbb\ \x0eOw\xb1\x12]\xfa\x9f\xac\xc4\xd7\xd2a\x95\xa4_\ 1\xaf\xbc\xc6\x11\x84t\xdf\xfd\xe3$.f\xad\x18\xfd\ \xc5\xbcR\xc6\x7fz\x03S\x9c\xf7DW\xfd\x5c\xdc\xc0\ \x14\xe7>\xd1\xdd_\xed\xe4\x92\x15V\xbb\xb4\x19~\xac\ \xf2\xd7/YL\x1f\xc0Jg\xa37\x03-\x80\xc3p\ C\x1d\xdd:\x8e\x0d\xd6\x1d3\x07\xdbn\x1b\x12\xb6@\ $\x90I\x09A\x9dv\xa6\x0d\x99\x8d\xa8ma\xca\x09\ jmwK\x86d\xe7\xd5Z_\xcb6\xc9*\x97\xd9\ g\xf5R\xcao\xc9\xd7\x5c\xbeh\xb3\x0d\xc3\x0d\xaa\xf6\ \x9f\xeayq\xcb\xa5\x0e\x12\xce\xf7v\xde(\xb6\x84\x0b\ \xe9\xa5\xea\xe3\x11d\xd9\x98\xbb\x84\x9d\xde\x8dt`\x80\ n\xf32\x8b\x01L.>\xd6\x8f3\xe9w7\x86\x9e\ 1\x0f\xfd\xec\xe1\xb9\xd3\xc8E\xcf<\x08\xb5(\xd4Y\ \xb6\xdb\xb3\x0f\x00\x17H\x9c\xdb}\xfb\x10\x16\xe5\xc8\xa6\ \xacg\x1f\xfb\xb2\xcf\xdb\xc7\xae\xd4\x97\xd6ai\xdf\x15\ {\x85|k\xea\xfa\xeaEqr\xf0\xb38u\xcf\x06\ \x02\xc9,S\x8dpDv\x81\xc2.w:s)\ \xa0\xa0$\x81\xd2\x95\x08{\x17\xa8\x1d\xd9\xab\x00\x05G\ \xc2\xc5\x90\xf3\xb5\x80\xddN\xd4KJ\xfa[s\xce\xd4\ \x9bc\xc1S$\xd77\xcd\x8e\xef\xbdf\x91\xa57\x97\ \xda%\x02N\xa5O\xac\x18\xf7i\x16\xc8\xacf\xe9\x86\ 3\xef\xb1*\xafY\xbe\xcbw\xb3s\x5c`\xd6\x86\x8f\ \x86\xf9\xf9\x83\x17\xa4k\xb0\xc3]\xe6\xb74]\xa8\xa7\ 5\x02\xaa4\xdb\x11\xbbl\x1f\xbc\x01\x81\xe3\x07%\x1b\ s\xf6\x98\xb0\x1e#\x16p8\xd9\x9b\x18\x82[\x06h\ \x9a\xb1\xb7\x95\xb0)\xfdQ\xab$\x7fH\xd7\xf3L\x81\ \xd3ig7#\x15\xc7\xbc\xbfO7\xc3\xec \xf5W\ \xea\xdd1\xb3j\x1f/7\xbb\x12\xeb(\x81\xcd\x9a\xd5\ \xbb\x88\x18\xea\xd0\x03\x12\xf5\xfb\x89\xaeM\x0fHl\xda\ \x08\xb8\xcb\xda\x1ef-\xbcM\xb4\x88\xbe\xc9\xa0\x8dh\ mN\x95x\xcbgv\xa7\xd9\x90\x8b\xc8|\x98\xafM\ \xe8A\xfa\x90!\xdc\xa7^\x16\xa8\x9b\xd8\x0d\x04\x0a\xc0\ \xda\xaaK\xc7\xbf\xd9*Z\xef *\x02E\xb4}\xca\ \x17\xcb\xa6\xb1\xdf\x9e\xbe\xe1\x07\x0f2\xf1\x80\x18\xec\ P\xd5\xbdW\xf2jvu\xd4\xf34\x89\xb7\x95\xd8~\ \xc4:\xe7F\xdd\xd7\xbb\xd1F\xac\x5cE\x05D\xbeK\ \xdc\xf6\x88pK\xed\xb9V\xa9c\x97\xd39\x9b\x84!\ \xe1\x22\xda\xc6\x862\xc4m\xbayVI\xda\xb69\xe1\ \xedd\xdf\xbdh\xfaB\x16^\xe0\x15^\xebkj\x0a\ E\xa21\x8b,\x08\xa7\xbf\x7f\xf8\xb5\xc9\xd6|\x7f\xfa\ \xf74{l\x13-%\xe0\xdd\xa7+8\x08M\x06\xa9\ \xde\xc7\xf4\xa7\xca\x0bz\xc5\xfbh\x01F\xa7\xde\x1f\xfd\ \xf3f\x11\x83\xd7k\x18=a\xa5\xc0v\xd2r\xdaL\ \x96\xaf\xc4\x0e\xbe\x03\x1a\xf8\x8bH\x0d\x9a|. \x11\ \xff\xa8\x16\xe9f\x95\x93\xeaF\xeb\xc4\xaf\xb3\x0f\xc8\x91\ \xab\x8d\xea\xaby\x0b@\xcf\xcd4v\x16{\xf7\xea)\ \xd6'\xc54\xf6\xb8\xf3,]-\x17p\xe4\xaa\xe1\x15\ \xbf\x18\x8a\x03hL\xc9\xbb\x1a\xd9y\xcfLm\x8a\x0e\ \x15,;i\x98\x97\xf9\xc3\xc5\xc84I\x13\xd9\x14!\ DR\x9b\xf2~\x11\x22,\xcc\x1c\xa8F1\xed\xf6\xf7\ `\x1be{o\xb8\xe9WS\x01n\x99\xc5\xe0\x99\x8a\ \xa9]\xd3\xda\xe4\xbf\x22\x04\x1e\xc4\x8a,\xf3\xb6\xdd\x9b\ \xd1\xd42I\x9fB\x1eR>\x82\xe2\x9dM4%\x19\ \xb2\xbb\x15C\xb3q\x15G(\x19\xe4l\x0fq2\x15\ {\xc4 g\xbb\xc3\xd1\xa5\x1f\xc7\xa0\x1c\xe3\x17\x83\x88\ 1\x11\x0620\xfcRE\xea\x12J\xa1c\xcdG\xce\ \x18v\x88]\xd5\xd9\xf5\x15\x86\xe0Km[\xb5@!\ \x83\x15\x8a\xcc\xdfuM\xf6\x1aZ\x0fh\xe0\xf8a_\ \xeb\xd4B\x8cp\x8a9T\xbc\xe5\x8f\xfb\xe3\xd5\xcf\xaa\ [a\xe2\x80\x1d\x98\xf4\xff\x96pD\xd9\xb6\x14\x1e\xda\ 9\xe2\xfc4\xd5jm\xee\xa9q\xafG\xb3>\xc6\x0f\x99\xef-\xb4\xf5v\x96\xe7\x8b\xf1\ h\xf4\xf4\xf4\xe4\x84e\xa3\x93\xa4\xd3\xd1\xb5e\xdb\xef\ \xaf\xaen\xb2\xc7\xe9\x95e\xc1\xac \x9f\xdd\x0e\x04\x1b\ \x98\xbb\x99\x0e\xa7\xb3\xbc\xbe\x0d\x83\xdb\x01\x8c\xa3H\xf2\ \xe2\xbe\xf5\x80x3\xa0\xa4\xd4\x9d6r\x82\xac\xc5ODI\ iO\x9e\x8d\x92p\x0f\xa14\xf7\xd2\x07\x9d\xeeXN\ \x98\xee?\x18:\x7fI\xd3\xe4\x89|\xd2q\xa3vI\ j\xe6\x83Q]\xe6I\xdd\x98\xea\xc9\xbf\xda{\x86\xfb\ \x7f\xb6\xef\xf7\xd0*\xb7\x9c\x80\xfcO\xa2\xe4i\x5cZ\ \x8d\x86\x1f\xc6\xc2twfZ\x18w\xd9`\x07\xb8I\ \x18Ev\xba\x8c\xf4\x18\xf4)N\x82\x00pK\x93\x07\ m\x17\x81\xc9\x189\x82\xf0\xaa\xc9\x80\xf1\x9f$\x8c\xc7\ i\xb2l=\x8fe\xc1\x0a?[\xd2q\xb1\xe4\xd2\x95\ C\xe6 J]\xca\x89\x05f\x8a \x97H\xc5\x87\xc8\ AX L\x89\xa8FJ6\xb4a(\xc2.r\xa5\ \xe5[6v\x5c\xc6\x99\x82v\xe2P\x97 \x81T\xd1\ H9cH\x0e\xb9#0\x0c\xc0\xd0(\xb4\xed\x0e%\ ,\x03=\xd4\xfa\xdaz\x94\x1c,E\x06q\xc3\x1c\xcc\ \xa5\x97\xa7\xe1\xea-P\xc0C\x04\x7f\x8a\x8b\xcd\xddu\ \x9b\xf3\x8d\xe7+\xa2\x9f$\xb5\xfde\xfa\xe8\xe5\xcb\xb4\ \xb08\x8d0l\xf8~\x9a\x10@\xd0\x98\xe6\x17\x13\x83\ .\xb5\xf3\x05\x01\xff\x11\x05\xa1\x92\x03\xf3\xfdZR\xf0\ %\x0d=\xe3\x89?\xc6\x9f_.\x04}\xc4\xce\x95\x01\ \xa1\xc86\xdf\xb8\xe3\xbaCdX%\x01c\xeb7\xcb\ \xe6\xd6\xbf\x8f\x17\x94\xf1\x1b\x84J3\xdf\x92\x1b\xbc\xc8\ \xfb\x99R\x84\x1co!\x96'\x17`\xc3\xd1~K\xa1\ S\xfc\x16c\x92\x93\xe0\x5c\xbf\xa5\xd0i~\x0b!\x22\ \x8e\x8a%z\xfd\x96B\x07\xfd\xd6\xf1\xde\x1d\xc2\xd2\x13\ \x9e;xQ\x0c$\xf0I(\xb9\x81\xc4\x13|\xbew\ \xa7\x17D\xe9\x94H\xf1\x851\x10?5Rt\xb5\xab\ \xcfF\x89\x1f\x8c\x14\x9b\xf4\x07\xa2\xf0\x85)\x1a<\xea\ \xda&U\x05\x86M.\xd2\x1dJ\x1b\x7f\xd1T/\x16\ w\xab\xdb\x01u\x84dD\x80Y\x1f\x83-BH\x08\ \xa50\x5c\xe3\xde\x09\xeb\xdb\x81M\x5c\xc8\x82$\x07\xcb\ ?\xb6l\xc6\x1d\xa2\x5c\xc9\xd8\xde)_a\x0a\x13\xe0\ s\xb8\xebr3\x05\x83O\xe1\x8a\x09\xd1?\xa5|^\ \x1b\x0c\xf644\xb5\x15b\xc6\x81'4\x1f\xb7;\xc7\ \xd8\xd5\x06\x09\x8aT\x93\xae~\x0b\xaclL\x1dF\x05\ \x11\xc5#1\xc7%\xe6\xe69\xb0\x10t*\x0en\xd6\ \xec\x1c\xed\xc3\x871`\x82\xeb\xd2\xc3Tw\xc0\xe1&\ Bp\xa9\x81_9\x82r*\x0e \xc4\xbe-B\x85\ \x1c\xa0C\x90`P\xca\xe7\x00!\xf2\x192\xbd\x02\xc2\ J\xf9\xa0\xcfo\x1f\xe3\xbe\xed\x9f_K\xa0\xa0/'\ \xd4\x12~\xb6 \x14\x02\x1f\x0f[\xfb\x04\xff\x0d\xdb\xae\ \xfe\xc42B\xb3\xc9?l\x19\xe1\xf4\xe2\x19\xd8\x1d\xf7\ \x14\x1fk>\xf4L\xef\x01k\xa9\x13#\x91\xdd\xd5\x8e\ .\x9e\xb9\x10\xdc_$\x83\xc6\x17M\x9e\xb6\xa9\x9d\x19\ 8S\xa5\xf8v\xe0l4\x89\x0f!Z\xb61qx\ q\xf3-#\xe72\x9dA\x8e,\xd2\x19\xf3\x0d\x0a\xfc\ j9-\xfe|\xb9\xc2F\x97\xd6\xb9\xb9\x0c\xc2\xe8\xfb\ `\x89\xc9f6\xa5\x06s\x01\x19+yM\xb6\x5cT\ [>_\xa6\xd4\x80 +\xf9.XSq\xc6|\xbf\ *_\xc8E\xf9\xb2M\xedl\xbe\x10~<\xe2\xff?\ % \xe4\xd0R\x0a\xa8\xd1Q\xa1^\xb5\x08\xf4\xcb2\ \xfft\xb9*P\x87\xda\xb9r\x80\xe9\x8e~\xfe\x1ee\ \xf0a\xaf\xc0\x87\x0f\xa17O\xe2\xe02\x85\xf9>\ bgk\xe3n1\x0e|\x88\xeb \x17#WH\xab\ \xbc\x94\x8a\x01c\xd0ps\xc7\xa5\xb26WL\x80=\ {\xdd\x80\xc3\x06\x05|\x15\xdd\xa9`\xbe\x90\x11\xed'\ w6\xdf$\xfd\x1f\xe3\xdbk\xb1\xad\x0c\xb9/\x18)\ ^B\xd1 x\x97\xdfG8bWL).\xec\x0b\ \xc5\xef\xc7\x97.\xd5i\xc7\xb7\xe6sv\xe9R\x9dz\ |\xbb\xbb\xda\xd1\xc9'\xacvn\x19\xfcP\x0e_\xbc\ G4\x9e\x81\x84\xde\x0e\xde\xf4$\xf3\xfb\xe1\x86\x8c\xb8\ \xb1\x13+\x5c\xd4\xca\x5c\xccdc\xf4\xd7\xd0H >\ R\x8a\xba\x0d\xa5\x15\xb9\x1dP\xe6`*\x08j\xe4v\ M\xfa\xc6N\xcb\xb5~\xdd\xd4G\x96\x99N?\x9b\xf7\ \xae~\x89\x7fm\xd7/\xbeA\xa1\x0d\xc3\x03\x9a\xc2\x9f\ )w\x09GR\x17)\xf7\xa5U7\x8a\x1d%!h\ 45<\x82\x1c\x86\x85$\xfc\xf8:\xa4\x0b\x13\x8a\x02\ /w8\xc0$\x91:T\x8b\xb3\xe9\x8bk<\xcf\xc8\ Gq\xec\xf0\x9c:\x0a\xd5\x91\x0fB\x1d\x0a\xa9\x13\x93\ \x1d\x01\x01t\xa1I\x08\xd6\x15\x10\xe5P\x81\x18\xe5\x1d\ \x01\xd9\x1d\xfb\xbc\x80l\x8f\xfa\xd2X\xac\xc2xE^\ \xae\xdf\xda\xe4\xfa\xdb\xa2\xe4\xe2gQj\xab\x06\xe0a\ K\x87\x9b\x0a8\x22\xdb0a)\xdc\x16-\x03\x13\xe4\ \x19\x90\x8b\x12\xc5\xb6a\xda\x1a{\x11\x98@#$\x86\ \xa0\xee0\x5c='\x94X\xec3\xcd\xcdY\x1f\x96\x07\ \xaco\x8f]\x95\x9e&\x94mY\xf1\xfd\x96\xb9Y\x8c\ \xa0\x03\xc6\xb7\xef\xe4T+\x0f\x89}\x8b\x9dd\x98\x0d\ \x9f\x18x\xc9\xae\xd83\xec\x08\xa9\x04\xc7]\x1bJ\x1d\ \x0c\x1a\xdf\xf2\xf2FP\xa8t\x88\xc9t\xf8s\xfck\ \x82\xa5\x8d?w\xcb\x98\xc9\x95\x8c\x82\x05\x96\xc6S\xbb\ \xca|\x8aLUID[9\xcbqb\xd3\xc7n*\ \x8f\xd2\x0d\x10\x0b\xbb\xc7\x5cn\xab\xd9Y\xf2f\xef}\ \x8d\xb3-q\xb6xU\x99\xb3\xc9\xef*u/1d\ \xc5\x8b\xb1\xfb!\x87n\xd2\x91OS\xeb\x00\x07'\xba\ v\x0c\x92\x07\x0a6\x9c\xb1-\xc1\xe7\xe5\xe8\x8e!\xeb\ \x19|\x09K\x06O&\x95r!\x7f\xc1\xd2Q\x14R\ \x19\x5c\xd9\xb4\x9b\x91y\xb1\xb8\xb8\xaa\x03\x07\xf3\xb6w\ `\xde\x18\xbf\xaa\xb7~\xef\xd5\x8b-\xbc\xa9.\x18\x05\ \x80m\x82\xbc\xb2\xe3>I\x03\x9dV]\xc5\xe9\x99\xe8\ t\x95\xbc\xdc\xbc\x98\x7f\xd5\xe5\x8f\xa1Z\xf7\xa3\xfe\xfe\ l\xe6\x05\xc9S\xf3\xc2k\xdd\xf95I`\xc3\x10b\ \xd5\xe5\xb0\x86\xef\x10\xda\x10\x01\xa8\xd2:xk\xfa\xd6\ \x85\xdf\xc5\xdc\xfc\xd9\xe9\x5c\xa6)\x00jG\xdeZ\xc3\ ~\x8a\xafJn\xb3Y\xf24M\x0d.\xadS\xb9z\ \xa6\xe9\xb1\xef\xef\xcd\xdb\xf6}\xddA\xe2/\xcd\xab\xde\ vy\x06\xb6Xm\x8fx\x0ac\xd8\xa7]\xfe\xa6\x00\ 3\xb6\x83F9\xa2\xfa\x9d\x01\xd8\xb6=#V\x8dn\ ow\xad\xf7w\xcd\xbdU8\x0f\xbf\xea\xa0Q\xd5\x0e\ #\xfc\x99\xf6!]\xb9O\xbc4h\xa8\x94\xcf\xcb$\ \xech;N5\x98T\xb2\xba\x89KWk\xd3\xd6\xd1\ /\xd3\x00F\xbaQ:=_\xd4\x07\x8e\x8dV\xf5\x1f\ \x89\xea\xd8\x83\xc6`\xab5\x8b\xbdE9\xdeP7\x1a\ \x9c%q\xb4.\x87U:\xb0+\xfaE\xfb\x5c\xe7^\ \xe0\xe5^\xa3\x07U\x0bE\xaa\xb2\xb67i0\x19\xff\ \xfd\xc3O\xb51\xf4\xfd\xf1?\x92\xf4\xa11qf\x80\ w\x9f,\x81S\xb5\x856\xef\xf7\xfbc\xa3\xa9^\xfe\ >\x9c\x03\xa8\xe6\xf7\x08\x7f^\xcd#\xd0\xc8\xba\xa33\ \xd8\xe0\xd6\x10\xdd\x90M\xf5\xe6'\x16\xbd\xbf)\x08\xfc\ yh&\x8d>\xe7\x90\xf5~4\x8b\xb4\x8d\xf6\xa8|\ \xd0\xca\xac\xb6\xf6\x01\x09i\xb9\xd1\xe2n\xda\x00\xd0\xd1\ \x83\x9a\xbd\x91wo\xce\x8a?\x99Nk\xa7w\x9a&\ \xcb\xc5<\x09t9\xbd\xec\xcf\xfbl\x15\x1aR\x88\xb7\ \xcaG\x9av\xa4\x83\xe3&p\xec\x9d\x0b\xae\x1d!\x8a\ 1s\xd5\xb0\xb8\x06\xd5\xe1\x88_\xef\xab'4\x5c\x87\ g3@\x816\xfa\xe6sB\x0a\xdf\xf5ziq\x82\ \xcfw\x8a\xb1\x90\xfe1*0\x13C\xe5\x08\xa2\x84\x90\ \xccbxH-a\xaa\xd7\x98\xbbCb\xea\xb4\x0aQ\ bqc\xc7 \x96\x15C\xa2\x1cn\xe2Z\xb5\xaf\x90\ 1~\xa3'D\x11\xf5\xae\xa8j49}]\xd2`\ \xc4#\xdeVI\x03r;U8\xf3\xfa\x00\x00\xf6\xb7\ \xa9\xff\xf7\x9f\x0aT\xad L:\x8d\xc00\xe4\xe3z\ z\xe0\x81-,\xbc\xfa\x98@\xaaR5\xf7\x06\x09[\ \xc5\x9c\x93\x80-\xca>\xe6\x0d\xf2-`9$\x0fL\ \x092\x84\x90\x11\x11)\x08\xb1 \xc8\x14\xd8\xa5j\xc8\ !\xbc\x13\x0c\xd1=\xd8\xc5I\xack\xa4J\x1c;H\ \x91m\x8c\xee\x97y\xbe\x03Q\x81\xca\xb3\xfb\xd6Q\x14\ .\xb2\x96\xea\xa6`~ \x1d.\xa2\xd0v\x06\x90\x1a\ _\xb5]\x0e)v\x8e\xf8\x9es\x9e1\xa8\xfb\xdb\xdd\ \xb8\x85\x5c\x9f\x22\x12;\x1b}\x810xi\xea\xad\xdb\ \xd8\x1e\x16\x91fc\x85\xb3\xc6\x8e\xe2\xa0\x1f\xed0\xd5\ 8j\x0c\x99\x02\xc4V\x9d\x83\x8e\x96\x15H\x93\xbc0\ \x01\x8c_\xb7\xb1\xf7\xc3\xd4\x8ft?\xa2\xf6\x9e\xd7\xa7\ \xcf\x90\x8c\xdf\x150\xeaH!\x11\xdb\xc2\xab\x0a%\xa9\ jK\x18\xe0\xa8Z\x91\xf4tc\xec\xe1\xeb\xc6\xb8\x9f\ \xf7W\xff\x05\xeb\x17\xb9\x88\ \x00\x00\x0b\x02\ \x00\ \x00>\xc0x\x9c\xedZ\xdbn\xdbH\x12}\xf7Wp\ \x95\x97\x04\xc3K_y\xd1\xd8\x1ed'H2@\x82\ \x1d\xcc%\x0b\xccb\xb1\xa0\xc8\x96\xc45E\x0a$e\ K\xf9\xfa\xad\x22)\x8a\x14)\xd9\xf2\xd8\xb13\x1b%\ \x86\xcd\xeabW\xf7\xe9\xaa\xd3U\xdd:\xffa\xbd\x88\ \xb5k\x95\xe5Q\x9a\x5c\x8c\xa8IF\x9aJ\x824\x8c\ \x92\xd9\xc5\xe8\xf7\xdf\xde\x1a\xeeH\xcb\x0b?\x09\xfd8\ M\xd4\xc5(IG?\x5c\x9e\x9d\xff\xcd0\xb4\x1f3\ \xe5\x17*\xd4n\xa2b\xae\xfd\x94\x5c\xe5\x81\xbfT\xda\ \xcbyQ,\xc7\x96usscF\xb5\xd0L\xb3\x99\ \xf5J3\x8c\xcb\xb3\xb3\xf3\xfczv\xa6i\xf0VX\ \xcc/F\xb6\x18\xe1\xd3\x5cE\xb3y\xd1\xde\x1a\xbe\x18\x1d\x9a'\xf6\x9c/\xfd@\xe5\xd6\ V\xdez\x7f;\x86\xe6\xfd\xad\xc0\xcc\xd3U\x16\xa8)\ t\xa1\xccD\x15\xd6\x9b\xdf\xde4\x8d\x061\xc3\x22l\ u\xb3\x8e\xa1\xef\xce\x18nxi\x9dz\x9eg\x95\xad\ ;\xed!=F\x08\xb1\xb63\xae\x87v=\xbb\xa3f\ \x16N\x0f\xda&\xcc\x02\xd4A\xc3\xc87I\xe1\xaf\x8d\ $\x7f\xd1z5\x08\x9a7\x03\xf4\x9f\xe8Z\x05\xe9b\ \x91&y\x05^G9\xdc)/WY\x5cj\x84\x81\ \xa5b\xb5PI\x91[\xb0\xe6\xd6\xe8\x12\xf4\xcfC5\ \xcd\xf1\xbd\xcau\xf0\x89K\x9b\x96m\xd0\x0ap(?\ {\x97\xf9a\x04\xefUz-\x1f\x0a\xd28V\x01x\ \x9f\x1f\xdf\xf8\x9b|\xd4(@W\xddW\x1d\xce\x88[\ \xf7\x0a\xfd\xe6E\xba\xdc*\x83{\x15\x9b\x18\xfc\x02\x85\ \x06t\x99f\xe3\x17\x81\x00w$\xdf\x97\xa2\x14|\x22\ *6c:\xda\xbd\x92N\xa7\xb9\x02\xc3\xa4%+}\ \x1f^\x00[\x14\xa2\xd1\xba\xbb5\x15\x86\xe2.\xd6\xe8\ \x01k\xac\xb1vnu\xe7}\x1c\xc7\x01\x98\xa8'F\ \xb7\xe2|`f\xad!\x11v\x0bXw\xc6\xfc \x8e\ mk\xe2\x16\xb0\x06\xacM\x03\xe5\x89\xe9!k\x7f\x12\ G\xc1]n\xf0\x07\x00\x92\xba\xee\xe9@raK_\ \xdc\x03H\xea\x91\xd3\x81t\x987\x0d\x1e\x08\xc8\xdb\x02\ \xbb\xe4\xc7\xf1\x00n\x00\x9b+m\xe1::5\x05\x15\x8cr\xfb\ Qq\xdb\x0f\xf1A\x873H\xd7\xe5\xfan\x04R)\ \x86\x5c\x8e\xd1!\x97\xe3\xe4/\xe0r\xe0R\xdc\xf0n\ \xf19\xc3\xb9\xbf\xd7\x91!\xafc\xb5\xd79\xcf\xde\xeb\ \x06\x01A\xc4\xee\x9eQ\xc0\x96\xe8\xbb\xce\xfd\xf2\x170\ &\xb1z8!\x81\x19\xdeq\xee\x96\xc0\x809\xc7x\ \x92\x0d\xe38\xf1\xd9\x1e\x11\x0f\x1cf\xac\xf2K\xaa\x1b\ \xd4\xa9\x9c\xd1~\xf5\xd0\xdc\xda\xe8>\xea\x9eq|\xaf\ \x05\xe8\xa4\xfd\xe8\x0cuofeC\xcc*\x1af}\ D\xe0`K\x90G\x99\x0f\xe2\xdc\xeeN\x8ctf\xb4\ 7\x15!:s\x90w\xf5\xd7\xdb\xa6\xd8\x1fW5\xf0\ \xbb3\xc2`V\xf8\xfd\x1d\x19\x08\xac9\xb0\xb7\x9e\xc2\ @\x83\x847do\x88\x82\xc0\x9eg\xd8_\x9e\x82n\ w\x07*\xc5\x9f\x8f\xa3\x85_d\xd1\xfa%\xd1\x0d\xf4\ q\x82\x1f\xae\x97\xee\xce\x80>\x1c\x9d\xe8\x94\x9b\xd4\xb1\ \x85Cu\xee\x9a\xdc\xf1\xe0\xb3GL\xd2\x14.sZ\ \xa3)\xbd\x91\x9a\x12u\xbd\x8eS\x1a\x8cW\xca\xde\x9e\ s\x9a\x02M?q\x80Q\xe9>\x1c\xa2-8\xf1\xdf\ \x0eR&M\x1b\xcf_\xe8\x0e\xda.\xa0\x86g\xda\xae\ gK\x9bw\x10\x05z+;$N\x07RN+m\ \xdaA\xd4\xb6\x9f\x1a\xca\x07 \xf9\x1aJ\xe30\x96\x8d\ K\x1e\xc2r\x00\x9d\xc3P\x0e\x01\xff\x1c\xb0\xb4\xc9\x03\ \x06\xfa\xedq\xde8\xe8\x9e[\x0e\xc4\xee\xc1@\x1f \ \x85g\x13\xe7\xd4\xa5\xa72\xe7}\xb6\xdbj\x8a\xe7\x16\ \x1e\x5c\x96\x7f5G\xd5x\x9a\x1c\xe2\x89\xf4Y3\xc2\ \x89\xdfX[\xfa3U\xee\x5c0\xb3i\xf9\xa9\x1b&\ i\x16\xaal\xdbd\x97\x9fNS\xbd\xb9UG\xfeg\ ] \xb1\xd7\xa6\x9d\x0c\xb7\xe7s?Lo`\xa6\xfb\ \x8d\x9f\xd3\x14\x5cH\x9a.\xe76'\xde~s\xb0.\ K(\xc1 o\x96\xbdF\xb0\xc7!\x1f\xb5=)y\ \xafq\x95e\x00\xbe\x11\xfb\x1b\x05\x93*\x7fmC5\ \x9f\xa77\xb3\x0c\xc1)\xb2\x95\xda\x7f3L\x83\x15\x1e\ \x18\x1b\xabj\xe1\x96\xeb}\x0d|\xd7\x98L\xf0\xd0\x7f\ \xa8\x83\x9b(\x81\xc9\x1a\xf5\x95\x05\x15\xa2\x07I\xad\xb1\ \xbd\xc6pEo\xf8\xb5\xc6z\x97\xaa\xec7m\x0e7\ -\xfcu\xb4\x88>\xabp\x97x4*y\xe2/\x8d\ Y\x9cN\xfc\xf8b4\xf5\xe3\xbc7\xfc\xd2K\xe6*\ \xb8R\xd9$\xf5\xb3\x10\xed\xd4!\xd5A`\xeb\x94\xc5\ \x06\xef7\xd6\x1b\x94ub\x03\x05\xbc\xcd\x84j\xb1\xc4\ \xab\x8e\xf2\xb2h\xe7\xd4\xd7Q\x1eM0\xb3ja\x09\ \xba\x89\x0f\xc2pO\x8a\xa3\xaf\xf5\xb1w\x8c\xbe\x92\xc7\x07_\x1e<\ =\xf9\xe8{K\x22\xaa\xfaV\xb9\ 5O\x17\xca\xda\xa4Yte\xbd\xa9\xcf\x9es\xeb\x83\ ?\xb1\xded\xfe\xb4\xa8O\x93\x82\xb9\x9f\xcc\xd42K\ \x97\xe62\x99\x1d\xe9x\x1d.\xa3\x8bQ\x99*AQ\ \xed\x1e\xd1\xdc\xeci>\xb0\xa7t\x18\xac\xb9\x99?y\ \xd1Od\xb5\xdb\x17\x1dr$,\xe7(\x855f\xa6\ \x0bQ\x07\xe5]\xb9\xf6\xd2t\x08\xb3=\xee@F\x80\ \xa88\x90t\x82\xda{\xa8a\xd0\x17\xdc\x03\xbe\xd0\x89\ \xd9o\xdep\x0ao\xb8_!o,\x907\xc0G\xe6\ Z\x99\xe2 o\xd8P\xc11MR\xacwQ\xf2\x1e\ T\x0e9\xcb7\xea\xf8J\xa9c\x81\xd4\xc1%\xae;\ \x9e\x00\xb5\xa8C\xba&\xf3\x1cN\xec\xd2\x0b\xf0\x90\xa3\ f\x0fL\x87=\xf4\x06q\x90:\x0c\xf9\xcd\x1f\xeeI\ \x1e\xc7\xce\x5c\x9f+y@\x9dT\x92\xc7{L:*\ \xf2\xc0c\x0cx\xdar\x07\xd2\xcaA\xee\xf8\xb6\xd5|\ \xad\xec\xf1\x11\x0fB\x81=\xdec\xe2\xd1e\x8f*\xeb\ \x10\xa5\x1b\xd0}\xf2\x00w\xf0\x8e\x90G\xe7\x14\xf0\x9b\ C\x9c@\x1f6\xf9\x0a\xe9\xa3\xca=\xaa\xcadW\xb3\ \xd8\x14\x8b\x16IK\xc9'\x8d\xdb\x87\x1c\xe6N\xa7\x9a\ \xff\xe7\xce\xf2,\xd9\xa3\xca=0\xdd\xa4^\xbfl\xd9\ \xa6\x1f\xad\xb2E\xf2\xaal\xf9t4\xf7\xb0\xff\xca\xfe\ P\x1fk\x95\xbf\xce\xf1\x1b6\x97g\xff\x03p\x1f\x15\ \x15\ \x00\x00\x0a\x9f\ \x00\ \x004\xddx\x9c\xe5Z[o\xdb\xc8\x15~\xf7\xaf`\ \xe5\x97\x04\x15\xa9\xb9s\xa8\xb5\xb3(\x1a\xec\x22@\x8a\ -\x9a,\xda>\x1949\x94\xd9P\xa4@R\xb6\x94\ _\xdf3\xc3\xbbD\xd9\x92\xa2\xb8ik\xc7\x91\xe6\x9c\ \xb9~\xe7\xcc\xb9\x917?o\x96\x89\xf5\xa8\xf2\x22\xce\ \xd2\xdb\x09v\xd0\xc4Ri\x90\x85q\xba\xb8\x9d\xfc\xfe\ \xf9\x17[N\xac\xa2\xf4\xd3\xd0O\xb2T\xddN\xd2l\ \xf2\xf3\xbb\xab\x9b?\xd8\xb6\xf5\xe7\x5c\xf9\xa5\x0a\xad\xa7\ \xb8|\xb0>\xa4_\x8a\xc0_)\xeb\xcdCY\xae\xe6\ \xb3\xd9\xd3\xd3\x93\x13\xd7D'\xcb\x17\xb3\xb7\x96m\xbf\ \xbb\xba\xba)\x1e\x17W\x96\x05\xa3\xc2\xf2\xe1v\x22\xd8\ D\xb7\x1eT\xbcx(\xdbf\x1c\xdeN\xa0\x1fE\x92\ \x9bvo\x83\xb8\xeaP\xcf<\xefs\x1cb\xbdA>\ BA\xc4)\xf5\xa6\x16A\x84\xd8\x08\xfe\xb1\xb7fP\ \x01\xc7Z\xc1\xdf<\xcc\x82\xd4_\xc2i|\xb2\xba\xfb\ k\x16\xa7\xe5\x87P\xa5e\x5cn\x1dX\xd5\xf4\x05X\ \xd2b\xde,s;9t*=O\xb1\xf2\x03U\xcc\ \x1azo|\xb3b;\xbe!8E\xb6\xce\x03\x15\xc1\ \x14\xcaIU9{\xff\xf9}\xcb\xb4\x91\x13\x96ao\ \x9aM\x02s\x0f\xf6\xf0D\xcd\xea\xd8\xf3\xbc\x99\xe1v\ \xbd\xc7\xfa\x11\x84\xd0lx4h\x1d\xd93\x0f\xa3\x83\ k#2\x03\x8c\xa1\x87]l\xd3\xd2\xdf\xd8iq\xdd\ \x1b\x1a\x04\xed\xc8@kK\xfc\xa8\x82l\xb9\xcc\xd2\xa2\ \x02o\xd09\xec:\xaf\xd6ybz\x84\xc1L%j\ \x09\xc2)f \xe1\xd9\xe4\x1d\xf4\xbf\x09UT\xe8q\ \x95\xa2\xe8\x16h\x8akx\xc0\x058\x94\x9f\xff\x9a\xfb\ a\x0c\xe3\xaa~U\xcf!\x87J\x17\xd7c`TQ\ f\xab\xa6/\xa8J\xb9M@\xea\x9ah\x07Y\x92\xe5\ \xf3k\x02\xd0D\xd1O\x86\x94\x81\xc4A[\xe6\xf8\xa7\ I7&\x8b\xa2B\x81\x0e\xa3\x1e\xcd(2\x8c\x80\xb5\ \xe8\xc4\x9a\x1d\xbfZ\x14EA\x14\x1c\xb1\x1a\x1e_\x8d\ \xb7\xab\xdd\xcc\x86\xc7>\x19%AO@)\x8a@\x81\ \xd0\xd9(\x09~\x22J\x9e\xf2\xe5\xd9(\x09\xf7%\x94\ \x96~\xfeE\xe5-:\x8d\xd5\x81\xe1\xc1\x17=\xcf\x9f\ \xf2<{\x22\x1fU\x1a\xb6\x0bd\xb9\x1e\x0f\xb6e]\ f-1W\xd1?\xfbg\x86\xf6?\xfa\xed\x03s\xd5\ G\xce\xc0\xcaEI\xf64\x7f\x8c\x8b\xf8>Q\x9d<\ V~\xf90<\x99\xa60\xee\xb2\xc9\x1epQ\x9c$\ v\xbeN\xd4\x5c=\xaa4\x0bC\xc0-\xcf\xbe(\xdb\ \x98\xe29r\x04\xe1\x0dI\x83\xf1/0\x8c\xf3<[\ \xf7\xf6cY\xb0\xc2_,\xe9\xb8Xr\xe9\xca)s\ \x10\xa5.\xe5\xc4\xb2\x89C\x90K\xa4\xc7\xa7\xc8AX\ L\x89hzJ6\xb5\xa1+\xc2.r\xa5\x15X\ 6v\x5c\xc6\x99\x07t\xe2P\x97 \x81\xe7\xb1\x9f.\x12\xf5!\xfd\xf4\xedJ06\xd9\xb9\ : <2\x94\xdb\xd2\xe2\x8e\xebN\x91eKG\xf0\ )\xb7\xf4\x85AV\xdd\xf8z\xbc\xc2\xcc\xaf\x11\xaa\xcd\ }O\x7f\xf0\xaa\x1c\x17\x0e\x00\x96\xa87\x10\xdd\x90\xa9\ \xfe\xef\x0229\xda\x89y\xe8\x14'\xc6\x98\xe4$<\ \xd7\x89y\xe84'\x86\x10\x11G\x05\x16\xa3N\xccC\ /:\xb1\xe3]=\xf7N@\x09\x85\xdf\x14\x10\x09|\ \x12Jn(q\x84\xcfw\xf5\xf4\x82(\x9d\x126~\ c@\xc4O\x0d\x1b]\xe5\xaa\xb3Q\xe2/\x86\x8d\xed\ E]A\xe2\xb5\x82\x9b\x0a!}k\xa0\x9a\xfc\xaa\xdc\ \xea\x94i\xd8\x95v\xce\xa3K\xdeVw\x9b\xdb\x09u\ \x84dD\x80\x8d\x9f\x83aBH\x08\xcf#\xf0\x1d\x8f\ \x0e\xd8\xdeNl\xe2:\xe028\xb8\x81\xb9e3\xee\ \x10\xcf\x95\x8c\x1d\x1c\xf2\x15\x860\x01\x0e\x88\xbb.\xd7\ C08\x18\xee1!\xc6\x87\xd4\xfb\xb5\xc1z/b\ \x9dZ\x9a\xdd\x80[\xd4?\xeep\x8c6\xb2\x1d\x12\x14\ y\xa2C\xf0;`ec\xea0*\x880[b\x8e\ Kt\xe39\xb0\x100=\x0e>W\x9f\x1c\x1d\xc2\x87\ 1\x10\x82\xeb\xd2\x97g\xdd\x03\x87\xebp\xc1\xa5\x1a~\ \xcf\x11\x94S\xee\xc9\x170b\xdf\x17#\xa3\x09\xe8%\ P0\x5c\xcb\xe7 !\xf2\x99iFU\x84\x1d\xa5!\ \x18\x8f\x9d\x1e\x1c\xb5\xad\xa2\x08:5\x03\xab\x16\xdc\xcc\ /\x90\x01\x97~2\x9c\xb1\xebO\xe1\xc2t\xbc\xe2\xae\ \x0e\x0bn'e\xbeV-\x03\x06\x94*Ou\xd0\x06\ \x81\x11\xfc\xc1\xc90\x1a\xb8\xfb [m+\xa4\x8bX\ \xc7\x1ew\xe0\xd5U\x19<\xa8\x0e\xe9U\x9e\xad\xee\x8c\ \x1b\xef[\x10C\xb8\xdb\xde\xe5*\x81X\xc1O\x8an\ Y]\x1a1\xa5\xa4\x0e\xe6\x14b\x01?\xb9\xdb7{\ %D<#d\xb3\xe6:\x8d\xcbbwr\x08\x84\xca\ \x18\xd6\xbek\x0f7\xe4G\xebB\xdd\x95Y\xa2 \x04\ \x09\x86a\xc4\x01c\xdfE!Ib\xc0\xf7\x93'\x7f\ [\x0c\xa0\x1f\x0e\x05;\xe2\x9e\xe23\xf5\x0f=\xd3\x1b\ \xc0Z\xde\x89\x91\xc5\xfej\xe8Xo\xe0B\xe4~\x91\ \xf4\x18_43\xda\x9d\xed\xcc\xa8\x98z\x1e\xdf\xcdf\ \xf4\xc5\xe0S\x9b\x83\x83 \x0e7\x0dn\x88\xdf/$\ \xae\xf3\x15\xe4H\x93\xaf\xe8O\xb8\x95\xaf\x96\xb4\xe2O\ \x97\xab\x5c\x0c\xe7:7YA\x18\xfd8b1\xa9\x8a\ \xa9'\x98\x9c\x05\xeb\xd6\xeb\x89\xe6\xa2\xb7\xe6\xd3e\xea\ \x09\x08\xb2\x8d\x1fF<\x8dt\xf4\xe7\xab\xca\x86\x5cT\ 6\xbb\xb3\x9d-\x1b\xc2\x8fG\xfc\x7f\xa7\xd6\x83\x1cZ\ k\x01\xd5\xf7Tx\xafZ\xed\xf9m]~\xbc\x5c\xb9\ g0\xdb\xb9z\x80\xe9\xce\x1d\xfd\xcf\xd6{\x8cos\ \xe4+\xc8\xe4}\xec/\xb34\xbcL5~l\xb2\xb3\ o\xe6n\x05N[M\xdbu\x90\x8b\x91+\xa4U\x7f\ \x95\x1e3\xa1y\xd5\xe2\xd2\xb3\xaaoL\x10C\xef\x8d\ x\xd5\x88\xc4\x86\x9b\xf9*\x97\xaa\xc1\xfcB\xd6u|\ \xba\xb3\x85(\xe9\x7f\xb3\x10_K\x86u\x90~\xc1\xb8\ \xf2\x12W\x10\xc2}\xf9\xe3\x04.v#\x18\xf3\xc5\xbe\ P\xc4\x7f|\x01\xd3;\xed\x89\xae\xfe9\xbb\x80\xe9\x9d\ \xfaDw\x7f\xb5\xa3SVX\xed\xdcb\xf8K\x99\xbf\ y\xc9b\xfe\x00Zz;\xb9\x1e)\x01\x1c\x86\x1b\xf2\ \xe8\xcepl\xb0\xa9\x98\xb9\x98\xc9\xce%l\x81H \ \x92\xf2<\xeav3m\xc8\xed\x842\x07SAP\xa7\ \xbb[2\xd6wQ\xaf\xf5{U&Y\x17*\xff\xa4\ _J\xf9-\xfd\xbdP\xdf\xb5\xd8\x86a\x83\xba\xfc\xa7\ k^\xc2\x91\xd4E\x9e\xfb\xad\x957\x8a\x1dOBx\ \xa9\xebx\x049\x0c\x0bI\xf8\xf1\xd5H\x17\x06\x982\ /w8\xc0$\xf1K\xf58\x9b~sa\xe8\x19\xf5\ 0\xcf\x1e\x9e\xbb\x8d\xc2\x1b\xa8\x07\xa1\x0e\x85<\x8b\xc9\ \x81~\x00\xb8@\x12\x82\x0d\xf5\xc3s\xa8@\x8c\xf2\x81\ ~\xec\xf7}^?v{}\xee\x0c\x96\xb1]\x89_\ \xaa7\xb6\xc9\xaf\xbe+N.~\x16\xa7\xfe\xdd\x00D\ \x98\xe5\xba\x10\x8e\xc8.PX\x0a\xb77\x97\x06\x0a\ R\x12H]\x89\xc7v\x81\xda\xe9{\x11\xa0\xe0JH\ \x0c1\xdf1\x80\x8d<\xaa\xc4\xe2\x90u\xee\x1e\xfaa\ \xf9\x82\x01\x1e1\xad\xd2W\x84\xb2\x1dC~\xd88w\ \x8b\x11\xf4\x82\xfd\x1d{\x84\xaa<\x1f\x89C\x8b\x9dd\ \x9b\xb5\xa4\x188\xca\xa1\xea3\xec\x08\xe9\x09\x8e\x87f\ \x94:\x18.}\xcf\xd9kU\xa1\xd2!:-\xe2\xcf\ I\xb0\x8b\x99*\x97\xee\xd6\xa1\x93+\x19\x05#,\xb5\ \xb3v=\xfdc\xd2ZO\x22\xdaKj\x8eS\x9c1\ qSy\xd4\xed\x00\xb5\xb0G,\xe6\xeeE;K\xdf\ `\xe2#4\xce\x16\xaf\xaas6y\x0d\xad\xbb\x99\xe9\ \xd7\x07\xcd\xb7\xd6\x03\xeaw:\xc3\xc7X=]\xb5\x9b\ \xba\xf7[)\xae\xfc\x852\xcb\x81\x8c\xaah\xa5f\xdc\ gy\xa8\xf2\x86e\x1e\x05\x89\x01\xab\xdeQ\xf5\x9a\xed\ \xd5P\x8ez\xd6\x96\x8f\xc6\xf9\xc5\x83\x1ffO\xa0\xe4\ \xbb\xcc\xafY\xb6\xd46\xae-\x00u\xea\xa1\x9f\xaf\x12\ \x07\x09\xfd\xbb\xc7\xdcV\xbe\x16t\xb05\x8c\x1ds\x9d\ \xe7\x80\x91\x9d\xf8[\x05\xe71\x1f\x0d\xfa\xc5C\xf6\xb4\ \xc85.\xbdgL\xedH\xcd\xb1\xef\xef\xb3\xcd8;\ \xcc\x82\xb5~\xa1\xd3\xae\x9f\xe9\xac6\xbb=\x9e\xe2\x14\ \xcei\xd7o\x08c\xc6\xf6\xd0\xa8{4o\x0d\xc3\x0d\ =\xd0c\xd3i\xe8.k{\x98\xb5\xf47\xf12\xfe\ \xaa\xc2N\xe1\x06\x82\x08\x1eT\x00q\xf7}\xe6\xe7\xa1\ \x9ee7\xbc\xd2\x084zZ\x85S\x9b\xad\xa6\x0d\xec\ \x80&\x80a\xe9.\x90Z\xae\xda\xc7e\x9d\xee\x8f?\ \xceS\xa9\x0f\xc4p\x87Z\xa4\xfe\xaa\xee\xafg\xd7\xda\ ^di\xb2\xad\xbbU\xf7\xe0f\xb6\xaf\xe8\x86\xbeT\ \xa5\x1f\xfa\xa5\xdfi}C\xa1\xc8k\x0f\x99\x87\xd1\xfc\ o\xef\x7fi/p\x10\xcc\xff\x9e\xe5_\xbak\xa9;\ \xf8\xf7\xd9\x1a\xe4\xd2Z\x15\xfd\xcen0\xd7v\xd6/\ \xdf\xc5K\x80P\xbfc\xfc\xc7\xcd2\x81\xfb\xd72\x06\ \x9d5n\xdd\xa4\xd5\xb4\xb9\xaa^\x9b\x1e}O8\x0c\ \x96\xb1\x1e4\xfbTB\xb2\xf6A/\xd274\xb3z\ \xa3\x8d)\xe8\x9d\x03\xf2\xa8\xfa\xa0\xa6\xb5\xe8\x00\x18h\ }+\xde\xc4\xbf\xd7O:?j\xa6\xb5\xc7]\xe4\xd9\ z\xb5\xccBU\x0f\xaf\xf9\xe5X\xac\x80\xa6\x94\xbcm\ \x90]\x0c\xb4\x83A\xe2\xd4n^%I\xbc*zx\ 4ip\x9b\x8f\xe9\x04u~\x0d\x11N\x14D\xa6\xd1\ \xcb\xd5\x9eKU\xc16 \x08\x81\x05\x16\xfd*0\x1c\ \xa4*\x02\xef\x95\x86\x01c\x957T\xd3H\xe0\xaa\x94\ s\xd6\xd0B\x1f\xccT\x9e\xfb\xdby\x9a\xa5\xaaO\xad\ l\xf8\x5c8\xd5>\x98l\x98\x9d\xa5\x1ez\x02\x93\xb8\ CzaS[\xd8\xfd\xe2\x8b\xb6j\x90\x04I\x84%\ \xeb\xbf\xe8\xaa\x0d\xda\x18=\xdf\x98\xc8\xc0%\x0c\xc2\x80\ >}k\xe8\x82PD\xfb\xb5\xf3\xb1J\x8a\x8b\xb0\xf0\ \x5c\xc1M\x18\x80\x09s\x99\xd4E\xef\x96\xdc\xa7\xf6\x03\ \xbf\xbe`k\xd1R\x09>\xbf\xa7\xed{\xd2=\xb0\x03\ \x8c$\x96\xdc5;\xd0\x15x\xce\xf0\xb4G\xeeS\x87\ \x05\x85\xea\xa4\x18\x10\x80\x5c\x94\xca!G'q\xcc\xd1\ \x11+!\x03N\x8d&\x87HV\x0c\x19\x9b\x03\x8c}\ \xa1\x0d\xf9\xbdb\xca\xfcZE\xc4#\xde\xc9\xba\x8a8\ \xa7\xf8G\xd0\xd5N\xc0\xda\x0a\xc6y\x90\x0c\xed\x15\xc0\ \x0a\xbe\x95\x83<\xdc!H\x8d\xa1hel\x07\xe0\x0e\ U\xae=\x12\xe4\xac\x0cC\xee\x80\xe5\x91c\xb4\xf4 \ \x09$\x9cR\xbc'=\xb4'6J\xc6\x05&\x89<\ ,)\x9f\x19Y\x1c\x90T-\xc7]II\xe6!\xc8\ \xcf\x8e\x93\xd4\x80\xfa\xb2\xa4\x06v}\xd1X\xf4Ee\ \xcb\xe1\xe3F{\x97wW\xff\x06\x05\xd1d\xdd\ " qt_resource_name = b"\ \x00\x05\ \x00o\xa6S\ \x00i\ \x00c\x00o\x00n\x00s\ \x00\x0f\ \x0bA\x15\x87\ \x00a\ \x002\x00p\x00_\x00U\x00p\x00g\x00r\x00a\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x1b\ \x0b\x8d\x8b'\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00A\x00d\x00j\x00u\x00s\x00t\x00C\x00o\x00n\x00s\x00t\ \x00r\x00a\x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00\x1b\ \x07kE\xe7\ \x00a\ \x002\x00p\x00_\x00S\x00i\x00m\x00p\x00l\x00e\x00A\x00s\x00s\x00e\x00m\x00b\x00l\ \x00y\x00S\x00h\x00a\x00p\x00e\x00.\x00s\x00v\x00g\ \x00\x1e\ \x08\xc2T\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00a\x00r\x00a\x00l\x00l\x00e\x00l\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x10\ \x03\xe1m\xc7\ \x00a\ \x002\x00p\x00_\x00E\x00d\x00i\x00t\x00U\x00n\x00d\x00o\x00.\x00s\x00v\x00g\ \x00\x16\ \x07\x9cs\xa7\ \x00a\ \x002\x00p\x00_\x00F\x00l\x00i\x00p\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\ \x00t\x00.\x00s\x00v\x00g\ \x00 \ \x09T\x85\xe7\ \x00a\ \x002\x00p\x00_\x00M\x00o\x00v\x00e\x00P\x00a\x00r\x00t\x00U\x00n\x00d\x00e\x00r\ \x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00#\ \x0a\xcb\xf9\xe7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00V\x00e\x00r\x00t\ \x00i\x00c\x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\ \x00v\x00g\ \x00\x15\ \x03\x1c\x1d\xa7\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00P\x00a\x00r\x00t\x00i\x00a\x00l\ \x00.\x00s\x00v\x00g\ \x00#\ \x05\xe1\xdeg\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00P\x00a\x00r\x00a\ \x00l\x00l\x00e\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\ \x00v\x00g\ \x00\x17\ \x02\xfe2g\ \x00a\ \x002\x00p\x00_\x00A\x00n\x00g\x00l\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x15\ \x0a`\x1c\xa7\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00m\x00o\x00v\x00e\x00D\x00e\x00b\x00u\x00g\x003\x00D\ \x00.\x00s\x00v\x00g\ \x00\x19\ \x03Z\xb2\x87\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00l\x00e\x00t\x00e\x00C\x00o\x00n\x00n\x00e\x00c\x00t\ \x00i\x00o\x00n\x00s\x00.\x00s\x00v\x00g\ \x00\x10\ \x06\xa2\x06\xc7\ \x00a\ \x002\x00p\x00_\x00T\x00r\x00e\x00e\x00v\x00i\x00e\x00w\x00.\x00s\x00v\x00g\ \x00 \ \x00F\x91\x87\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00A\x00n\x00g\x00l\ \x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x22\ \x01\xdb~\x87\ \x00a\ \x002\x00p\x00_\x00S\x00p\x00h\x00e\x00r\x00i\x00c\x00a\x00l\x00S\x00u\x00r\x00f\ \x00a\x00c\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\ \x00g\ \x00\x16\ \x07\xa9\x9b\xc7\ \x00a\ \x002\x00p\x00_\x00S\x00h\x00a\x00p\x00e\x00R\x00e\x00f\x00e\x00r\x00e\x00n\x00c\ \x00e\x00.\x00s\x00v\x00g\ \x00\x0c\ \x08\xa1\x9d\x07\ \x00a\ \x002\x00p\x00_\x00H\x00e\x00l\x00p\x00.\x00s\x00v\x00g\ \x00\x17\ \x0e\xbb\xdeg\ \x00a\ \x002\x00p\x00_\x00S\x00k\x00e\x00t\x00c\x00h\x00R\x00e\x00f\x00e\x00r\x00e\x00n\ \x00c\x00e\x00.\x00s\x00v\x00g\ \x00\x11\ \x08Sm\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00s\x00I\x00n\x00f\x00o\x00.\x00s\x00v\x00g\ \ \x00!\ \x04n\xc0\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00N\x00o\x00r\x00m\ \x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \ \x00\x0c\ \x0fH\x9d\xe7\ \x00a\ \x002\x00p\x00_\x00D\x00O\x00F\x00s\x00.\x00s\x00v\x00g\ \x00\x11\ \x09\xdb2g\ \x00a\ \x002\x00p\x00_\x00W\x00o\x00r\x00k\x00b\x00e\x00n\x00c\x00h\x00.\x00s\x00v\x00g\ \ \x00\x15\ \x0fJ6\x07\ \x00a\ \x002\x00p\x00_\x00D\x00u\x00p\x00l\x00i\x00c\x00a\x00t\x00e\x00P\x00a\x00r\x00t\ \x00.\x00s\x00v\x00g\ \x00\x17\ \x04{\x9eg\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x19\ \x00\xed\xf8'\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00i\x00a\x00l\x00P\x00r\x00o\x00c\x00e\x00s\ \x00s\x00i\x00n\x00g\x00.\x00s\x00v\x00g\ \x00\x1a\ \x0cja\xc7\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00T\x00r\x00a\x00n\x00s\x00p\x00a\ \x00r\x00e\x00n\x00c\x00y\x00.\x00s\x00v\x00g\ \x00\x0e\ \x0e\x0c\x0f\x87\ \x00a\ \x002\x00p\x00_\x00S\x00o\x00l\x00v\x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x0d\ \x05\xbc\xd6G\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00u\x00s\x00e\x00.\x00s\x00v\x00g\ \x00!\ \x0c\xe2{\x07\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00n\x00e\x00C\x00o\x00i\x00n\x00c\x00i\x00d\x00e\ \x00n\x00t\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \ \x00\x10\ \x07\xe3\x8a\xa7\ \x00C\ \x00D\x00_\x00O\x00n\x00e\x00B\x00u\x00t\x00t\x00o\x00n\x00.\x00s\x00v\x00g\ \x00\x17\ \x06!9\x87\ \x00C\ \x00D\x00_\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00V\x00i\x00e\x00w\ \x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x1d\ \x04\x98\xa3\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00O\x00n\x00L\x00i\x00n\x00e\x00C\x00o\ \x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x12\ \x09_\xf8'\ \x00a\ \x002\x00p\x00_\x00I\x00m\x00p\x00o\x00r\x00t\x00P\x00a\x00r\x00t\x00.\x00s\x00v\ \x00g\ \x00\x15\ \x0e\xcd\x98g\ \x00a\ \x002\x00p\x00_\x00C\x00h\x00e\x00c\x00k\x00A\x00s\x00s\x00e\x00m\x00b\x00l\x00y\ \x00.\x00s\x00v\x00g\ \x00 \ \x04,\x9d\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00n\x00e\x00s\x00P\x00a\x00r\x00a\x00l\x00l\x00e\ \x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x17\ \x0c\x06\xf6'\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00A\x00u\x00t\x00o\x00S\x00o\x00l\ \x00v\x00e\x00.\x00s\x00v\x00g\ \x00\x11\ \x03\xc4\x96g\ \x00a\ \x002\x00p\x00_\x00A\x00u\x00t\x00o\x00S\x00o\x00l\x00v\x00e\x00.\x00s\x00v\x00g\ \ \x00\x18\ \x0f\xa9@g\ \x00C\ \x00D\x00_\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00C\x00h\x00e\x00c\ \x00k\x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x14\ \x00\x80\x9b\xe7\ \x00a\ \x002\x00p\x00_\x00O\x00b\x00j\x00R\x00e\x00f\x00e\x00r\x00e\x00n\x00c\x00e\x00.\ \x00s\x00v\x00g\ \x00\x1c\ \x096fG\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00s\x00t\x00o\x00r\x00e\x00_\x00T\x00r\x00a\x00n\x00s\ \x00p\x00a\x00r\x00e\x00n\x00c\x00y\x00.\x00s\x00v\x00g\ \x00\x17\ \x0eI\xa9\x07\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00L\x00a\x00b\x00e\x00l\x00R\x00e\x00m\x00o\ \x00v\x00e\x00.\x00s\x00v\x00g\ \x00\x0c\ \x0e\x1a\x92'\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00y\x00.\x00s\x00v\x00g\ \x00\x19\ \x02\xfd\x89\xc7\ \x00a\ \x002\x00p\x00_\x00I\x00m\x00p\x00o\x00r\x00t\x00P\x00a\x00r\x00t\x00_\x00U\x00p\ \x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\ \x00\x0b\ \x08Yv\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00s\x00m\x00.\x00s\x00v\x00g\ \x00\x15\ \x0b+\x07'\ \x00a\ \x002\x00p\x00_\x00S\x00a\x00v\x00e\x00_\x00a\x00n\x00d\x00_\x00e\x00x\x00i\x00t\ \x00.\x00s\x00v\x00g\ \x00\x10\ \x0f\xf8m\x87\ \x00a\ \x002\x00p\x00_\x00E\x00d\x00i\x00t\x00P\x00a\x00r\x00t\x00.\x00s\x00v\x00g\ \x00\x1e\ \x0a@\xb7\xe7\ \x00a\ \x002\x00p\x00_\x00C\x00e\x00n\x00t\x00e\x00r\x00O\x00f\x00M\x00a\x00s\x00s\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x1e\ \x0a\xcdcG\ \x00a\ \x002\x00p\x00_\x00C\x00i\x00r\x00c\x00u\x00l\x00a\x00r\x00E\x00d\x00g\x00e\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x19\ \x09B\xef\xe7\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00f\x00i\x00n\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\ \x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00!\ \x0b\xba\xafg\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00g\x00r\x00e\x00e\x00s\x00O\x00f\x00F\x00r\x00e\x00e\ \x00d\x00o\x00m\x00A\x00n\x00i\x00m\x00a\x00t\x00i\x00o\x00n\x00.\x00s\x00v\x00g\ \ \x00\x19\ \x0d\xf4aG\ \x00a\ \x002\x00p\x00_\x00S\x00e\x00t\x00R\x00e\x00l\x00a\x00t\x00i\x00v\x00e\x00P\x00a\ \x00t\x00h\x00e\x00s\x00.\x00s\x00v\x00g\ \x00\x12\ \x09]\xc7\xa7\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00p\x00a\x00i\x00r\x00T\x00r\x00e\x00e\x00.\x00s\x00v\ \x00g\ \x00!\ \x02\x09\xde\x07\ \x00a\ \x002\x00p\x00_\x00S\x00e\x00a\x00r\x00c\x00h\x00C\x00o\x00n\x00s\x00t\x00r\x00a\ \x00i\x00n\x00t\x00C\x00o\x00n\x00f\x00l\x00i\x00c\x00t\x00s\x00.\x00s\x00v\x00g\ \ \x00\x17\ \x0f\x9b\x12\x07\ \x00a\ \x002\x00p\x00_\x00I\x00s\x00o\x00l\x00a\x00t\x00e\x00_\x00E\x00l\x00e\x00m\x00e\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x16\ \x06''\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00L\x00a\x00b\x00e\x00l\x00.\x00s\x00v\x00g\ \ \x00\x1e\ \x04\xc9\xfa\x87\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00O\x00n\x00P\x00l\x00a\x00n\x00e\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x0e\ \x0aq\xce\xa7\ \x00a\ \x002\x00p\x00_\x00U\x00p\x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\ \x00\x0c\ \x07\xf1\x93\x87\ \x00a\ \x002\x00p\x00_\x00S\x00t\x00o\x00p\x00.\x00s\x00v\x00g\ \x00\x14\ \x09a;'\ \x00a\ \x002\x00p\x00_\x00U\x00n\x00l\x00a\x00b\x00e\x00l\x00_\x00D\x00O\x00F\x00s\x00.\ \x00s\x00v\x00g\ \x00\x14\ \x0d\x1c\xefG\ \x00a\ \x002\x00p\x00_\x00L\x00o\x00c\x00k\x00R\x00o\x00t\x00a\x00t\x00i\x00o\x00n\x00.\ \x00s\x00v\x00g\ \x00\x16\ \x04\x05J'\ \x00a\ \x002\x00p\x00_\x00V\x00i\x00e\x00w\x00C\x00o\x00n\x00n\x00e\x00c\x00t\x00i\x00o\ \x00n\x00.\x00s\x00v\x00g\ \x00\x10\ \x00\x03\xeb\x87\ \x00a\ \x002\x00p\x00_\x00M\x00o\x00v\x00e\x00P\x00a\x00r\x00t\x00.\x00s\x00v\x00g\ \x00\x15\ \x08S4g\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00I\x00d\x00e\x00n\x00t\x00i\x00t\x00y\ \x00.\x00s\x00v\x00g\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00H\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x0e\x08\x00\x01\x00\x00\x00\x01\x00\x05\xb5m\ \x00\x00\x01\x8e)6\x1f\x08\ \x00\x00\x03\x16\x00\x01\x00\x00\x00\x01\x00\x00\xecl\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x0b\x88\x00\x01\x00\x00\x00\x01\x00\x04\xb8M\ \x00\x00\x01\x91G\xafz\xcc\ \x00\x00\x08\x0c\x00\x01\x00\x00\x00\x01\x00\x03\x85\x0b\ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x05D\x00\x01\x00\x00\x00\x01\x00\x01\x8e*\ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x0b\xd2\x00\x01\x00\x00\x00\x01\x00\x04\xbe\x05\ \x00\x00\x01\x8e)6\x1f\x03\ \x00\x00\x03\x5c\x00\x01\x00\x00\x00\x01\x00\x00\xf7\xc6\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x0a\xda\x00\x01\x00\x00\x00\x01\x00\x04*\x8f\ \x00\x00\x01\x8e)6\x1f\x0c\ \x00\x00\x08\xca\x00\x01\x00\x00\x00\x01\x00\x03\xad\xe9\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x02T\x00\x01\x00\x00\x00\x01\x00\x00\xc72\ \x00\x00\x01\x8e)6\x1f\x01\ \x00\x00\x01\xd8\x00\x01\x00\x00\x00\x01\x00\x00\xb3Q\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x02\xb8\x00\x01\x00\x00\x00\x01\x00\x00\xdb\xdc\ \x00\x00\x01\x8e)6\x1f\x06\ \x00\x00\x07\xae\x00\x01\x00\x00\x00\x01\x00\x03`/\ \x00\x00\x01\x8e)6\x1f\x01\ \x00\x00\x00\xee\x00\x01\x00\x00\x00\x01\x00\x00[\xd5\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x0d\xd6\x00\x01\x00\x00\x00\x01\x00\x05\xaa \ \x00\x00\x01\x8e)6\x1f\x0f\ \x00\x00\x074\x00\x01\x00\x00\x00\x01\x00\x03Ma\ \x00\x00\x01\x8e)6\x1f\x0a\ \x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x05O \ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x04R\x00\x01\x00\x00\x00\x01\x00\x01W\xb1\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x05\x10\x00\x01\x00\x00\x00\x01\x00\x01\x82\x82\ \x00\x00\x01\x8e)6\x1f\x01\ \x00\x00\x06\x9a\x00\x01\x00\x00\x00\x01\x00\x03'\x7f\ \x00\x00\x01\x8e)6\x1f\x0b\ \x00\x00\x0c\xf8\x00\x01\x00\x00\x00\x01\x00\x05c\x08\ \x00\x00\x01\x8e)6\x1f\x0b\ \x00\x00\x0c\x80\x00\x01\x00\x00\x00\x01\x00\x05:z\ \x00\x00\x01\x8e)6\x1f\x08\ \x00\x00\x05\xd8\x00\x01\x00\x00\x00\x01\x00\x01\xe6\xa9\ \x00\x00\x01\x8e)6\x1f\x0a\ \x00\x00\x02\x08\x00\x01\x00\x00\x00\x01\x00\x00\xbc\x13\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x06f\x00\x01\x00\x00\x00\x01\x00\x02\xc3S\ \x00\x00\x01\x8e)6\x1f\x00\ \x00\x00\x0bV\x00\x01\x00\x00\x00\x01\x00\x04\xaa\xdf\ \x00\x00\x01\x8e)6\x1f\x06\ \x00\x00\x0cX\x00\x01\x00\x00\x00\x01\x00\x05(g\ \x00\x00\x01\x8e)6\x1f\x08\ \x00\x00\x02\xf0\x00\x01\x00\x00\x00\x01\x00\x00\xe1\x08\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x00p\x00\x00\x00\x00\x00\x01\x00\x00\x18\xd0\ \x00\x00\x01\x8e)6\x1f\x0d\ \x00\x00\x01\x14\x00\x01\x00\x00\x00\x01\x00\x00e=\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x03\xa6\x00\x01\x00\x00\x00\x01\x00\x01\x07\x22\ \x00\x00\x01\x8e)6\x1f\x0d\ \x00\x00\x06@\x00\x00\x00\x00\x00\x01\x00\x01\xfc!\ \x00\x00\x01\x8e)6\x1f\x01\ \x00\x00\x0d\x5c\x00\x01\x00\x00\x00\x01\x00\x05\x86i\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x0b\xfe\x00\x00\x00\x00\x00\x01\x00\x04\xcb\xae\ \x00\x00\x01\x8e)6\x1f\x10\ \x00\x00\x0e.\x00\x01\x00\x00\x00\x01\x00\x05\xc0s\ \x00\x00\x01\x8e)6\x1f\x0a\ \x00\x00\x04*\x00\x00\x00\x00\x00\x01\x00\x01(\xdf\ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x09\x02\x00\x01\x00\x00\x00\x01\x00\x03\xba$\ \x00\x00\x01\x8e)6\x1f\x01\ \x00\x00\x03\xd8\x00\x01\x00\x00\x00\x01\x00\x01\x13\x8f\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x00\xac\x00\x01\x00\x00\x00\x01\x00\x00Q\xf2\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x0c\x9c\x00\x01\x00\x00\x00\x01\x00\x05B\x1d\ \x00\x00\x01\x8e)6\x1f\x0b\ \x00\x00\x08:\x00\x01\x00\x00\x00\x01\x00\x03\x8eD\ \x00\x00\x01\x8e)6\x1f\x0c\ \x00\x00\x09\xf8\x00\x01\x00\x00\x00\x01\x00\x03\xfaz\ \x00\x00\x01\x8e)6\x1f\x05\ \x00\x00\x01F\x00\x01\x00\x00\x00\x01\x00\x00o*\ \x00\x00\x01\x8e)6\x1f\x08\ \x00\x00\x0a\xb0\x00\x01\x00\x00\x00\x01\x00\x04\x1a\xc9\ \x00\x00\x01\x8e)6\x1f\x0c\ \x00\x00\x06\xda\x00\x01\x00\x00\x00\x01\x00\x031\xc1\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x0dz\x00\x01\x00\x00\x00\x01\x00\x05\x91d\ \x00\x00\x01\x8e)6\x1f\x0f\ \x00\x00\x04\xb8\x00\x01\x00\x00\x00\x01\x00\x01n\xb4\ \x00\x00\x01\x8e)6\x1f\x0f\ \x00\x00\x09t\x00\x01\x00\x00\x00\x01\x00\x03\xe5\x02\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x02\x88\x00\x01\x00\x00\x00\x01\x00\x00\xd2o\ \x00\x00\x01\x8e)6\x1f\x0b\ \x00\x00\x0d:\x00\x01\x00\x00\x00\x01\x00\x05mn\ \x00\x00\x01\x8e)6\x1f\x0f\ \x00\x00\x01\x8c\x00\x01\x00\x00\x00\x01\x00\x00\xa8\x1a\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x09\xb6\x00\x01\x00\x00\x00\x01\x00\x03\xef\xd7\ \x00\x00\x01\x8e)6\x1f\x03\ \x00\x00\x09\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xc2\xd2\ \x00\x00\x01\x8e)6\x1f\x0c\ \x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x8e)6\x1f\x0f\ \x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x0b\x93\ \x00\x00\x01\x8e)6\x1f\x0b\ \x00\x00\x0a0\x00\x01\x00\x00\x00\x01\x00\x04\x05q\ \x00\x00\x01\x8e)6\x1f\x06\ \x00\x00\x07z\x00\x01\x00\x00\x00\x01\x00\x03W\xad\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x0c0\x00\x01\x00\x00\x00\x01\x00\x05\x1d\xd9\ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x05|\x00\x00\x00\x00\x00\x01\x00\x01\x94Z\ \x00\x00\x01\x8e)6\x1f\x0e\ \x00\x00\x05\xf8\x00\x01\x00\x00\x00\x01\x00\x01\xf1\xe8\ \x00\x00\x01\x8e)6\x1f\x0a\ \x00\x00\x0d\xa8\x00\x01\x00\x00\x00\x01\x00\x05\x9f\xee\ \x00\x00\x01\x8e)6\x1f\x08\ \x00\x00\x0ax\x00\x01\x00\x00\x00\x01\x00\x04\x10Y\ \x00\x00\x01\x8e)6\x1f\x0c\ \x00\x00\x05\xb6\x00\x01\x00\x00\x00\x01\x00\x01\xb6J\ \x00\x00\x01\x8e)6\x1f\x0d\ \x00\x00\x08\xac\x00\x01\x00\x00\x00\x01\x00\x03\xa3\xf3\ \x00\x00\x01\x8e)6\x1f\x0a\ \x00\x00\x08x\x00\x01\x00\x00\x00\x01\x00\x03\x9ba\ \x00\x00\x01\x8e)6\x1f\x09\ \x00\x00\x03\xf6\x00\x01\x00\x00\x00\x01\x00\x01\x1f\x08\ \x00\x00\x01\x8e)6\x1f\x0d\ \x00\x00\x07\x04\x00\x00\x00\x00\x00\x01\x00\x03<\xa9\ \x00\x00\x01\x8e)6\x1f\x02\ \x00\x00\x04\x9a\x00\x01\x00\x00\x00\x01\x00\x01c\x0b\ \x00\x00\x01\x8e)6\x1f\x05\ \x00\x00\x04\xe0\x00\x01\x00\x00\x00\x01\x00\x01w\xc4\ \x00\x00\x01\x8e)6\x1f\x06\ \x00\x00\x0b\x22\x00\x00\x00\x00\x00\x01\x00\x04]\x85\ \x00\x00\x01\x8e)6\x1f\x07\ \x00\x00\x07\xd6\x00\x00\x00\x00\x00\x01\x00\x03k\x16\ \x00\x00\x01\x8e)6\x1e\xff\ \x00\x00\x09N\x00\x01\x00\x00\x00\x01\x00\x03\xda\x1a\ \x00\x00\x01\x8e)6\x1f\x06\ " def qInitResources(): QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() ================================================ FILE: a2p_Resources3_Qt6.py ================================================ # Resource object code (Python 3) # Created by: object code # Created by: The Resource Compiler for Qt version 5.15.14 # WARNING! All changes made in this file will be lost! from PySide6 import QtCore qt_resource_data = b"\ \x00\x00\x0b\x8f\ \x00\ \x00H\xd4x\x9c\xed[\xeb\x8f\xdb6\x12\xff\xbe\x7f\x85\ \xce\xf9\x92E\xf5\xe0C\xd4\xc3\xfb\x08\xd2\x06I\x0b\xa4\ \xb8C\xda\xdc\xe1z(\x02Y\xa2mueI\xa0\xe4\ \xb5\x9d\xbf\xfe\x86\x94\xad\x87-g\xedM\xd6\xc96k\ \xb4Yk8\x1c\x923\xf3\x9b\x19R\xf4\xe5\x8b\xe5,\ \xd1n\xb9(\xe2,\xbd\x1a`\x13\x0d4\x9e\x86Y\x14\ \xa7\x93\xab\xc1\xfb\xdf_\x1b\xde@+\xca \x8d\x82$\ K\xf9\xd5 \xcd\x06/\xae\xcf.\xffa\x18\xdaO\x82\ \x07%\x8f\xb4E\x5cN\xb5_\xd2\x9b\x22\x0cr\xae=\ \x9f\x96e>\xb4\xac\xc5ba\xc6k\xa2\x99\x89\x89u\ \xae\x19\xc6\xf5\xd9\xd9eq;9\xd34\xe8\x15\x95\xd3\ \xab\x81c\x0f\xe4\xd3\x94\xc7\x93iY?\xc6\xd1\xd5\x00\ \xf8\x88\xe7 \xf5\x5c\xc0\x84r\xf8\x7fX\xcf\x14\x99\x94\ T\xac\xeb1\x86\xadE`\x93h\xcfQ\x80P8f\ \x94\xfa\xbaF\x10!\x06\x82\xff\xec\xf3\xae\xbc(\x0b\xd3\ `\x06\xeb\x0aH\xfe\xe1}>\x11A\xc4M\x18\xb9+\ :\x9b\x97\xf9\xbc\xfc\xc0\x97%O\xab1`A\xad\xd5\ \xa9f\xd9\xad\xa6\xa9\xfe\xed\x19U\x84\x98/~\xcc\x96\ 0{\x0di\x8e\xad\xadW\x0b&H\x8b\xe1\xa6\xeb\xd5\ `\x9f\x06\xe5L\x8b<\x08yau\xc6\xa9\xfao\xd6\ T\xf7\xdf\x10\xcc\x22\x9b\x8b\x90\x8fA\x047S^Z\ \xaf~\x7fU7\x1a\xc8\x8c\xca\xa8%f\x99\x80\xec\xce\ \x1c\x16T\x8d\x8e}\xdf\xb7Tk\xc3\xdd\xc7G\x10B\ \xd6F\x85\xeb\xa9\xddN\x0e\xe4\x14\xd1x\xef\xd8\x88X\ `E\xe00\x8aUZ\x06K#-\x9e\xb5\xba\x86a\ \xdd3\x94\x9e\x19\xdf\xf20\x9b\xcd\xb2\xb4\xa8\x94\xd7a\ \x8e\x1a\xe6|.\x12\xc5\x11\x85\x16O\xf8\x8c\xa7ea\ \x81\xc5\xac\xc15\xf0_F|\x5c\xc8~\x95S\xca'\ \xf0J\xa2\xda\xa0\x15\xd4\xc1\x03\xf1\x06\xdc&\x86~\x15\ _\xcbq\xc2,Ix\x08~\x1d$\x8b`U\x0cj\ \x06\x10\xd5\xedJ=\xd7_\x0b\x05\xb1E\x99\xe5\x1b^\ \xf0\xd6r\x95\x80[H\xa2\x01\x1231|\xc6\xa3\xc8\ F\xe8B\x912p\x89\xb8\x5c\x0d\xf1\xc5\xa0\xe9\x93\x8d\ \xc7\x05\x87\x81Q\x8b\xa6P\x05=\xa8\xe7\xe1\x81f\x1d\ >Zh\x03\x96\xb6G\xeb\x19\x0c\xf7\x0fF\xeb\xc1.\ \xad\xee\xaa\xd7T\xf9\x14$GkQ9\xe3p*8\ \xf8\xcc\xb3-uR\xd7\xedh\xbb;\x04u|R7\ \x87\x00H\x9b\x990OJ\x9aN\xe1\xeaj@<\xd3\ s|\xe6x5u\xdc\xcb;\xee\xe5\x15\xa0\x10\xdf\xb4\ \x1d\xd7\xa6NM\x9c\xacg\xf0>\x8dK\x80\xcf\xbc\xe0\ \xe27\x09\xe9\x7f\xa6\xef\x0b\xde\xe8\xe9\xf4\x1aq\x11=\ p\x92m\xbda\xcaL\x0a\xca\xa0\x1d\xbd\xf9\xaeIw\ \xf5\xb6\xcb;\xee\xe5\xfd\xa4\xde~\x17AZ@(\x9b\ ]\x0dfA)\xe2\xe5sd\xfa\xc0\xc9td\x12\xc2\ \x10u}\x1db\x9a\xed\x10\x8a\x11\xd3\x89\x89\x10v\x5c\ \xe2\xe9\xb6g\xda\x9e\xcb\x98\xad\x1b\x98\xb8\xa6\xef\x83\x0d\ \xcf\x1b\x85\xef\x01\xf2.N\xa5\x1a\xf7 \xa7vy\x98\ \xc4\x1dP\xec\x01\xd98\x18\x8f\xc9h\x07\xd2{q\xda\ \x8c\xe6\xdd\x85\xc5\xbe\xd1\xc6A\xd0\x13@\xbe9\xa0\xba\ \x88\xdd\xc7-\xc1\xda\xde\x8e[z\xb8\x0f\xce\xbb\xbc\xe3\ ^\xde#\xdd\x12\x83\xaf3\xc2!f=\x03#\x13\xf1$\x86\x1aH\xf1\ \x11\xd0\x8a\xfc\xd8\xdd>`\xf6\xd6\xda \xbfz_3\ \x12B\xadx\x0f\x97;y\x06i\xb9\x5c)\xbf&P\ \x8c?\x87\xd8\xe6\x9b.\xc3\x0c\x9c\xca3\x1d\x0f\x13\x87\ \x9c\x7f]ezG*\xf3\xcb@\x0a#\x0c\xcbw|\ \x08\xf7\xaeoR\xe6\xbb\xae{~\xda\x18\xf1\xc0Z7\ \x9cO\xeb\x9d\x19\xf6\x17\xd3\xfc\x819\xd6\x00\x8d\xb8\xae\ G\x80h`\x9f\x986um\xb6\xa5\xf5\x87.\x18\xee\ \x95\xd1A\x97\x07\xe4\xf4\x96BO\x92\xd5\x0d\xd63\xde\ \x83\xe4\xf5\xe3tex\x87i\xcb\xe8\xabK\x1eT_\ F_\xdd\xf5\x88*\xa1\x96\x87\xed\xc1\xf4\xa1;\x89'\ L\x83.\x0f\xf1Rrb\x1f\xfd\xca\x1e\xda[R\xf4\ \x9b\xa0\xdf\x5c\xfd\xa6\xedw\x83\xcfw>\xe6\x9b\x04\x92\ \xbb\xe7\xe8\x06\x81\xca\x06\xd9\x0c\xb5\x9c\xef0\x08\xf4!\ \xc9vZP\xbb3\xd1\x1a=\xf5\xed6\xc2\xef\x99w\ @\xf4a\xb1\x14\x9d<\x96\xf6!\xe31\xc5\xd2;\xea\ R\xd6R\xe9S,\xbd\xc3O\x0f:\xf3h%\xa7\xd3\ \xf8h\x1f&\x9eb\xe9>\xe7\x83=\x0c\x06\x89\x0e\x85\ Xj\x13\x13\x22)\xf1\xbeP,u\x8f\x89\xa5\x0f\x19\ L\x0f\x8d\xa6\xa7\xf6T\xd6\xbbwxL\xd1\x94\xdc\x15\ M\x8f=\xa7\xfb\x8e\xa3)9\xc8KO\x9d\xf1\xbfr\ \xbe\x7f|\xd1\x94:\x0e\xa32\x9aRbz\xd8\xc3\xee\ \x97\x88\xa6^{\x8fw\x04(\xef\x0c\xa5\x0fu\x0au\ g\x99u\xec{\xa5/\x12\x18\x10C\xbe:\x07\xf4=\ \x13\xb9\xe0\xde\x8f\x2208\x87\xd5Y}\xe7B\x0f\x19\ \x19\xe8\xa9\x22\xc3\x91\xe9\xfe\xc0S\xbb\x93\xef\xf1\x99\xe1\ ?\xf2Wr-\x93\xef\xdb<\xf9O\xb0>\xd4S\xe9\ a\xbb\xa7S'\xfc\xbe\x22\xf8\x9b\x80\xf5\xa1U\xbcw\ r\x5c\xbb_Ye\x9f\x03k\xafu+\xa1\xef\x02\x92\ \xd7\xa4\x95%\xbe\x1aT\x05\x8eG\x9b%\xaf\x80\x8aa\ \x13\x89]\xe47\xaa_\x12\xc5\xcb\x08!^\x13hW\ @%\xc4$\xd4\xa5\x07\xbf\xc1\xbf\x0b\x5c\x9f\xb9\xf8\xad\ \x03\xa1\xdd\xe5\xb7\x82\xde\xe3T@\xff\xb5\xb2\xfd\x877\ \x0fq\xb1\x0c\x8a\x93S^-3\xfc\xaf\x83$\xc3\xa5\ wy\x93\xff7\xf5\xa6\xbd\xd9\xecA\xdc\xc99\xad;\ \xe1O\xba\xd3\xa5%/\x80\xaao\xf5\xcd\x1by+7\ \x927{\xcfji\xa3\xa0\xae{\xf2`\xc2\xd5\xdc\xc0\ \x8b\xc6\xea\xb3n\x18e\x22\xe2b\xd3\xe4\xa8O\xa7i\ =\xfd\xeaR\xf6Y\xd7dRj\xdd\x8e\xfa\xdb\x8bi\ \x10e\x0bp\x9b\xed\xc6\x8fY\x06\xb5\x97m\x22\x0f\xd9\ \x948\xdb\xcd\xb2\x8e\x226\x94F\xb6\xe3\xf8;\x8d0\ \x1e\xc5\xa6K\xc1\x93\xf1N\xe3\x5c\x08P\x94\x91\x04+\ \x0e\x8bR\x7f6L\xc54[L\x84TN)\xe6|\ \xbbg\x94\x85sy\xf1\xd6\x98W\x9e\x9c/\xb79d\ _c4\x92\x97\xa7\xfb\x04,\xe2\x14\x16k\xac/\x95\ c\xdb\xdeQ\xc9\x9acs\xd1\xdc\xb3\xe9\x1e\x8ee\xe3\ \x8c\xdbM\xab\xfdM\xb3`\x19\xcf\xe2\x8f>\xfa\x0b\xf0e\xe4A9-\xfa\xa7\xbf\xe6H\ \xb3\x88\xef\xe1(\xd2 7&I6\x0a\x92~\x06\xe5\ hS\x1e\xdep1\xca\x02\x115S\xdd\xdc\xb4\xa7\xb5\ V\xa1G\xc2\xe5B7\x85\xd6eG\xcf\x1bhTw\ \xca\x96+I\xebD\x05I\xa0\x886 \xe2\xb3\x5c^\ LW?\x1ah\x82\xd6m\x5c\xc4#\x89\xd0\xd6|\x81\ 7\x0d\x80\x18mQ\xe5\xfa\xd6\xfcR\xba\x84^\x91\xa5\ \xc9j\xcdV\x81\xf2\xd2\xdaE\x9d\xa2\xcfx\x19DA\ \x194\x10\xdcP\x88\xe7\xb0\xcd\x22E4\x1e\xbe{\xf5\ \xba\x8e&a8\xfcO&n\x9aH \x19\x82Q6\ \x07\xff\xa8c\x9c\xbc\x02\x1e\x0e\xe5~%(\xaf\xe3\x19\ hY^Y\xffa9K \x18\xd4\x0d\x1df\xa9\xb7\ Fh%V\xf0\xea\x16~\xef\xb5\xf3(\x9c\xc5\xb2\x93\ \xf5[\x19'\xc9/r\x90V\xd4\xab\x84\xaa;\xed\x99\ \xb8n\x09\x96\x0bx9\xa93]g\x0aq\x99\xf0\xeb\ \xff\xfd7\x13\xf1\x8dv\x1b\xa4\xda\xcf\xc1\xad\xe0\x7f\xaa\ )Wmm9\xd6\xae \xc5\xb93f#\xfa\xa5\x08\ \xa7\x1f~+\x83X\x14}B%#\xa8\x9f_\x13\x84\ \xa9\x81\x5c\x830\xc5\xa6h\x1d.\xc1\x93\xa0\x8c\xb3\xf4\ \xbau\xeb\x7f,8\x0f\x83h\xc1GJC\x8b\xf8&\ \xb6\x00f|i\xe6\xd3\xfc\x85\x1a\xea\xea\xa5(\x17`\ <%\xb5\x96\xd1\x91\x9c\xcfGI\x5cL\xf9q:{\ \x0dc\xff\xf4\xf2\xd5\x91\x9a\xea\x19K\x8a\x8c#`\x8d\ \xc71\xd0\xd7r\xadB\x84\xd6\xafYdI\x05Z\xef\ \xd6^QXq\x98\xa5\x85\xd5\xd2\xaa\xfc9\x89\x12\xdd\ \x92\xd1U\x9c\x0cd\xc5}\xd6\xa6\xbd}\xf3\xaf\xb7\xe4\ \x87#\x97\xb8=\x9e\x1c-\x89C\x9e\x16\x5c\xd9\xaeX\ \x1bo\x92\xce\x95\xd5\xc2,\x87\xf4<.\xad\x84\x17P\ \x98\x98\xd3RB\xa6\xd5\xa9\xeb\xdeYZ\x8ax4?\ \xda\xc5\x83\x89XA\xa4\xf8S{\x99\xf0e\x00N\x22\ \xb47\x8ar\xac\xaf\xefN@\xf1\xca\x08\xb1)\x08Z\ \x01\xe4\xd2\xdaD\x18\xf54i\x22O'\xed\xd5q5\ \x09F\x1c\x22\xf7[\xd9\xa8\xed\xb4ND6\xcfg\x10\ \xfd\xd7\xdd7\x11K\xa6\x8c\x9ez-M![d\xc2\ \x80\x84{\x1b\x94s\xc1\xdb\xf5S\x13\x22A\x9e\x8c*\ \x90QB\xf9\xe9\x9e\xe8\x80\x04\xca\x08j\xedy\x80\xfa\ \xab\x86\x99N\x99f\xbb\xba\x8d5\xcat\x9biT\xa7\ \xbe\xf6G#\xbe*\xba\xa2\xb8\xc8a\xaa\xc38\x95\xa1\ \xfa\x22\xbb\xe5b\x9cd\x8b\xe1:\x86_\xa8\xbfq\x22\ \xeb\xaf\x0di\x0c\xb1\x0d\xb6\xc3!\xf7\xed\xb1zhU\ \x84\xeaQ\xcc\x13>\xe4\xb7\x1c&\x1eA\x09'\xb2\x1b\ >|F\x11\x19\xa9\x8aN>V\x09~H6\x8fr\ l\xd0\xc9\x10\xccV\xb6i\x7feq:\x04\x9d\xa6\x1b\ 9\x06\x04X.\x12H\xd1\xe5\xd0\xde\xd0\xa2\x00j$\ !`\x15i\x06khQ\xab2qX\x0f\xdbLt\ \x16\x08\xc8\xb0U\x87*\x93\x19\xa3 \xbc\x99\xa8\xc1\x86\ A\x08u\xcc\x5c\xde\xc4m\xca\xc8S\xd8\xb0\xb5\xb5U\ V$\xaeN\xb0\xc6|\x9d\xb8\xd2\x96\x14K\xbb\x12\xf6\ d\xc6o\xc4\x8c{\xedH\xdav\x9ci\xd4\xd7]\x8d\ \x10\xdd\xd6n5\xa6%\x9aAt\xac\x19\xea'\x03\xda\ \xc7'[\xde\xd7\x96\x93N1\x0b\xfb\xbe\xd6\x09I\xdb\ \xce\x9f\xadZ\xa8\xf1\x9e\xef\x1c\x1ex\xec\xfc\xef\xaf\xeb\ F\x85\xca\x91! aH(Dw\xb4\x7f\xc3\x83\xf6\ v\x1d\xa2\xfeh1v\xa0@:\xe7\xb8w\x86\xc3\xbb\ 1\xd9:E\xd82\xf1\x17\x10\xde]\x84\x94O1\xf2\ w\x94\xe0\x9b\x98\x10\x06\xa0\xc6\xd4d\x8eG<[\x83\ \xcd\xbb\xcb@/\xcct\x5c\xc7w\x1c\xd0\x8b\xe9\xbaH\ \xbe\x0ea&\xc1\xbe\xedSM\xfe\xda\x81b\x17\xeb\x06\ 3]$\x7f\xe2\xd0\x02\x7f\xed\xa3\xca\xe1Z\x96\xacq\ }\x0f\xdfQ\xee\xb2c\xfd\xd6\xd1\xc8d\x1bI\xe5\x9e\ _\xa3\xe8\xd8>\x1f\xec\xc0\xad}\x03\xe2\x14\x803\xe8\ \x13\xe4\x0e\x80\x5c\xe7E\xe9#\x05]\xe7\xa5\xd0w\x0a\ ;b\xeb\xed\xab}-\xd8\xf9'\xc6\x9d\xff\x84\xbbC\ pG\xff\x06\xb8\xc3\xdf\x01\xee\xda\xca\x5c\xcfc\xfd\xe2\ \x01\xa9\xcfE\x98\xc4y\xe5\xdd0\xb5\x8f\x5cd\x17\xf7\ @T\xe3\x83q\x91U'[\xc3`^f\x17\xb3x\ i\x00C\x1a\x19\xf2\xac\x00\x86\x10\xb3 \xb9P30\ \xe2\x14\xd6\x90o\xd8\x8bwo~\xeck0@m\xf0\ X\x0c+\xacJ.\x18\x22\x8e\x8c\xee2*Z\x17\xb4\ \xf2M\xb6j\xdc\x0b\xe8\xcd\x927\x06A\x94\xa2\x1d@\ \x83m=\x86\xbf\x0dXW\xdf\x8d\xa2\x0cD\xd9\xa1\xcc\ \xe2\xa8\xf3\x0c*\xaf\x9e+\x95\x0a.\xcf\x99\xe2tR\ \x99E\x9d\x0ao\x13af\xf9\x0e\xb1\xe4\xcbr\x9bv\ Pl\xa9\xcef|\xd3\xb1\x91\xe7`\x9d9\x10`L\ \x1f\xf9\xae\xc3t\xea\x9b\xd4F\x88\x12\x8d:\xba-\xef\ \xcb\xb8\x14v\xfc\x0c\x99\x94!\xc4<\xdd7\xa1\x17\x80\ \x8dh\xea\x15\x22\x83^:E\x00N\x17\x84i\x04\x80\ \xe7x>\xb2u\x10\xe9\xda\xb6\x0f\xb1\x0a\xea6[\xf6\ \xb2=`\xf8cg\xb3\x8a\x01\xc4\x0d\xf1\xc0pQ\xf3\ \xd59\xcb\x08\xb9\xf4M\xf9\x22BN\x07{\xc8\xe9\xb9\ \xd0\xb8\xc3\xbe\xba\x1a\x18\x18\x996s\xe5+\x88\xcd\x9b\ \x01\x80\xe8\xa5<\x99\xbf>\xfb?Gn\x98\xe9\ \x00\x00\x0d9\ \x00\ \x00Vcx\x9c\xed\x5ci\x8f\xdbF\x12\xfd\xee_\xc1\ U\xbe\xd8\x08I\xf5\xddlyf\x02o\x8c\x18\x01\x1c\ l\x90c\x17\xc8b\xb1\xe0\x90\x94\x86\xb1$\x0a$5\ \x87\x7f\xfd\xbe\xa2nQ\x9a\xfb\xda\xcc\x8c\x9d\x8cT]\ \xdd\xcd~]\xf5\xaa\x8al\xfa\xe0\xbb\xf3\xd1\xd0;\xcd\ \xca*/\xc6\x87\x1d\x1e\xb2\x8e\x97\x8d\x93\x22\xcd\xc7\x83\ \xc3\xce\xef\xbf\xfd\x10D\x1d\xaf\xaa\xe3q\x1a\x0f\x8bq\ v\xd8\x19\x17\x9d\xef\x8e\xde\x1c\xfc-\x08\xbc\xef\xcb,\ \xae\xb3\xd4;\xcb\xeb\x13\xef\xc7\xf1\x97*\x89'\x99\xf7\ \xf6\xa4\xae'\xbdn\xf7\xec\xec,\xcc\xe7\xc2\xb0(\x07\ \xddw^\x10\x1c\xbdysP\x9d\x0e\xdex\x1ez\xa5\ \xf5\xc9a\xc7\xa8\x0e};\xc9\xf2\xc1I\xbd\xfc\x9a\xa7\ \x87\x1d\xe8I\xad]\xf3}\xed\x02\xf9La>ro\ \xbd%\x14\xde[\x163\x96\xf4\xb5\x94\xce\xf7\x04\x13\x22\ `\xf8\xab\xde5\x9d*,k\x82\xffzi\x91\x8c\xe3\ \x11V\x13\x8b\xc9\x7f\x7f\xc9>\xa4\x7fN\xab\xfa\xfbb\ \x5c\xd5e\x9c\x8f\xeb*\xc4\xdc\xb3y\xf3\xec\xec\xef\xc5\ \xf9a\x87y\xcc\xb3,T\xcd\xff\x9a&\xe06\xaez\ \x8b\xeb8\xec\xec[6MTM\xe2$\xab\xba\x0b\xf9\ Z\xff\xc5%-\xfb/\x04aUL\xcb$\xebc\x88\ ,\x1cgu\xf7\xe3o\x1f\x97\x8d\x01\x0b\xd3:]\x1b\ \xe6|\x88\xb17\xae\xe1L6\xb3s\xe7\x5c\xb7i]\ i\xef\xd2\x13\x8c\xb1\xeeb\xd5\xf3K;\x1d\x5cS\xb3\ L\xfb{\xe7f\xa2\x8bM\x80FP]\x8c\xeb\xf8<\ \x18W\xdf\xacuM\x92e\xcf\x84\xcc)?\xcd\x92b\ 4\xc2V\xcc\xc0\xdbPNW\xca\x93i9l4\xd2\ \xa4\x9b\x0d\xb3Q\x86]\xeb\xc2\x04\xba\x9d#\xe8\x1f\xa4\ Y\xbf\xa2~3K\xa2oR\x1b\xde\xb4\xa1\x15pd\ q\xf9\xa9\x8c\xd3\x1c\xfdfzk&\x95\x14\xc3a\x96\ \xc0\x18\xe3\xe1Y|Qu\x96\x0a\x18j\xb3\xab\x95\x82\ E\xf3Q1nU\x17\x93\x852\xac\xad\xbe\x18\xc2.\ H\x18`\xc8\xa2\xec}\x93(X'{\xdf\x88\x0a\xd8\ D^_\xf4xg\xd5\xa5\xe8\xf7\xab\x0c\x13\xb35Y\ \xe3\x0a\xe8\x80\xb98\x9c\xb3{\xfd\xd9\xb24U\xd7\x99\ \x8d\xef\x99M,g;\xe8n\xae\xfbr\x1cw\xc0\xc4\ \x9d\xea\x5c\x89\xf3\x9e\x95\xad]\x12\x13W\x80um\xcc\ \xf7\xe2\xb8>\x9b\xba\x02\xac\x1d\xb3\xf5\x93\xcc\xa9\xfe\xbe\ \xd9\xee\x88\xa3\x92\x91\x0c\xe4=\x00\xc9\xa3\xe8\xe6@J\ et\xacn\x01$w\xec\xe6@Z\xe1\xfa\xc9=\x01\ y\x95c7\xfc\xd8;)3\xd0\xd87\x97\x9a\xee\xae\ -q\xabq\xf8aG\xb0P(\xa9\xe5\xcaR/ \ \x956\xd4Q\xc4\xf9Jz.\x00\x81m\xe9B*Z\ \xba\x83\xf9d\xbf\x8f\xf3\x1a\xec=\xad\xb2\xf2W\x8a(\ \xff\x18\xff^e-\xad\xdf\xcax\x5c!n\x8c\x0e;\ 5}\x1c\x22H\xbf\x0d\xf8l*\xe9\x07b>\xfc\xbb\ \x15\x9a\x0f\x81\x1b1\xe3e\xb8\xb9M\xdcT\x14Z\x8e\ +\xdc\xc4Mi\x5c\xac\xb6\x91\xde\xc0M\x99\x96.\xa4\ Rm\xeb\xde\x03n\x80-\xd2FE\xd6\xe7\xa1\xe2J\ pi\x1e\x14\xb7m\x17\xdfip\x01\xdb4\xb9\xb6\x19\ A\xaa\xd5.\x93\x13|\x97\xc9I\xf6\x1709\x98\x94\ \x0c\xdc\x156\x17\xd8\xdb[\x1d\xdbeubnu\xf6\ \xd9[\xddN@\x08\xb1\xebg\x14\x08\x89qdo\x97\ \xbf`2M\xc5\xc4\x0d\x12\x98\xdd\x11\xe7z\x09\x0c\xa6\ \xb3\xc1\x93\x04\x8c\xcb\x89\xcf8\xa6\xee\xd9\xcd\xc4\xcc.\ \xb9\x1fp;3F\xf3\xee\xbe\xb9u\xa9\xfb\xa01\xe3\ \xf2X\x0b\xe8\xb4yp\x86\xba5\xb3\x8a]\xcc\xaa\x96\ \xcc\xfa\x84\xc0\xc1\x8f\xd4+n7\xf7U\xe0v\xcf\xf6\ \xf6R\x5cU*\xeb\x1e\xd7\xe2\xee1\xed~R\xdc\x22\ \xfe\xea\xa9\xb7\xf1\xd4H\xde'n;\x13\xb0\x87*W\ \x9e\x16\xb7{-\x97^\x10\xc3i\x1e\xbdz\xea-,\ N\x0b\xf6jq\xb7\xb38y\xaf\x1c\xf7bb\xaa\x96\ \xf7\xccq/\xc5S\xe5\xc3\xdf\xd4\xf8+\xc6T-\xef\ 9\xf7}V\x0c\xd7^\xaft\xf2\x06\xf7\x90\x98q\x91\ \x8bow\x0f\x09S\xe9\x1b\xdeA\xcaX&nw\x07\ \x09\x93\xd9\xc7\xbf\x7f\xd4\xa0y)\xd8.X\xe33\xda\ }n\x9c\x0b\x8d3nc\xf7yD,\xe2\xd6*\xff\ \x86o\x98R\xe1\x86*\x91\xb7\x11\x8e\x9c\xf3\x1e\xeeK\ \x8d\xe2\xba\xcc\xcf\xdf\x06,dZ\x08\xdd\xb0$>\x1b\ \xce9c\xca'\xb1\xb3R\xaaF\xaa\x91\xb5GZ\xf9\ \x12\x9f\xb9a\xd0\x15\x86\x87\x9a9\xb5\xbcS|\xd0\xa5\ \x87\xb7\xcd\xa7\xe5\xd3{z\xa2\x9e\xd2\x93\xf97K\x90\ \x8e\xe3\xe5eM\xe2A\xd6\xec>\xa0\xed7?\xf3\x86\ \xe3\xa2L\xb3r\xd1d\x9a\x9f\x8d\xa6\xb9\x81\xccNA\ \xbc\xd9\xdcI\x1au\xd9\xcev\xb7W'qZ\x9c\x01\ \xe3\xed\xc6\xafE\x01hT\xc8\x85\xdenJ\xce\xe1{\ `FK\x7fZ\x8d\x98K\xca\xd0\xc1$\x96\x11n\xd5\ 8-K`\x1f\x0c\xe3\x8b\x0c\x0bj~-\xcc\xb8:\ )\xce\x06%\x01S\x97\xd3l\xbbgZ$Sz`\ \x1eLg\xbb;9\xdf\xd6\xa0\xbe\xc1\xf11\x1d|\xd8\ 5\xc0Y>\xc6B\x83\xf9\x09\x0e\xcemkYs\x8d\ \xc5\xa9\x0e\x98\xe2\x1e\x0d\xcc \xb4\xdb\xd3x\xb1b\x81\ \xed\xa6Q|\x9e\x8f\xf2\xafY\xbaC\xa5\x1a\xc7\x93`\ 0,\x8e\xe3\xe1\xee\xeboL\xe4$K\xbed\xe5q\ \x11\x97\xcd\x18s\x87\xde\x80`a\xe7\xf5\x05\x1d\xf08\ \xbf \xd9\x86o\x92@2\xb6\x0a\x93\xd9hBg=\ \x9a\xc33+\xc7;\xcd\xab\xfc\x98\xa8i\xedb\xa0;\ \x8e!L\xb7\xa4t\xf1s}\x1a\x9d\xbc\xbf*\xc6\xc3\ \x8bm\xb5\xd9,t2%\xd4\xdb\xd2\x8b\x99t\xe1A\ m\xc7i\xe4\xa3\xac\x8e\xd3\xb8\x8eW^\xb4\x90H\x84\ \xe9\x05 e\xda\xef\xfd\xf2\xf1\x87%\xe5&I\xef_\ E\xf9eE\x97\xa4\x10\x1f\x17Sl\xf32\x0a\xd0\x09\ \x8c\xa4G\x8c\x10\xd7G\xf9\x08p\xd3\x89\x91o\xcfG\ C\xf8\xf3\xb2aC\x990^\x0d:\x1b\xb6\xccf\x87\ `v\x9e\xfaH\x93QN\x9d\xba\xbf\xd6\xf9p\xf8#\ M\xb2\x16\x1a\xe6\x83\xe6\xf50;\xfa9\xaeO\x82_\ \xeb\x22\xf9\xd2\xcc>\x13n\xe8a\xd1\xd9\x91`\x5c\x07\ \xcc\x06L5j\x8dlC\xab\xcc\x10\x8f\xf3b|\xb4\ v\xd4\xa5_fY\x12\xa7g\xd9qs]g\xf9\x97\ \xbc\x0b\x0b\xcd\xce\xc3\xc9\xc9\xe4\xbbf\xaa\xc3\x0fe}\ \x06\xc8\x9aQ\x97cl\x8c<\x99\x1e\x0f\xf3\xea$+\ \x8f\xd6 \xa8?\x0c\x96\xb1\xa6\xbd\xae\x1f0\xf7\xf7\ \x1f>\xeeZ\x14m{\xbb{\xa3\xb9c.\x1a2O\ \xa1\x9a\xf7s\xc8\xe7\xe3v\xab2\xe9\xfeT\xa4]\xc2\ \xaf\xfbi\x9aw\x7f\x99\xefG\xd5\xcd\x93b\x5cuW\ \xc0\xd2\x81\xa9f\xf4\xb5a6\xb1#\x22\xa8n\xb3<\ \xef\xf3\xa7\x9f?\x8boo\xb8\xca\xed\xf9h\xb6a\x9e\ d\xe3*k\xb6\xaf\x9a\xef\xdf`\xf9\xbe>:\x94\xae\x05\xa5\xb4\xbe&\ ,\x95\xf6>{Z\xfb\x22\x22,\xe5M\xb0\xa4S\x11\ /\x0eJ\xc5d\xdb*\xe1\x91\xc2\xc1\x1f\x95 \x9b\x14\ T\x8dx\x7f\xec\x01rq\xd0\xef\x85\xe1\x06o^;\ A3G\x8e\xa3^b\x11\x93\xdaW64\xcc\x08\x0b\ \x91/#ro\xe5G\x1e\xa3f\x0eLC\xd4\xa4\x11\ \x17{\xad\x93\x96\xb4\x04ly\x92\xf2R\xc0\x1a\x8c\x9e\ 3`\x8e\x07\xac\xe5\xb5\x0e\x88h\xa6\xb8\xafQ\x14\x9a\ Hh\x88|e<-})B\xe2E\xc2Lp\x1f\ xZ\x13){=\xc8\x96\x07~\x1f\x09\xb2\xe7\xe7\x0f\ [@\xc3\x87\x15#\x7f\x16r\xce\x8e Lp\xe5\x1f\ \xbb\x83\xad\x8c\x1e-\xd8^\x19\xdf\x94xrR\xde\x09\ &\x12\x17\x83X3\xe3\xc8V\xacY\x03S\xb1\xa7\x00\ \xf3\x11\xfca\x1b\x16\xedKC\xb0X\x82\x85\xf9\xc8d\ N\xbdh/*\xea\xc9Qy\x18b\xdd\x19\x13|)\ W\x01A(\xe4\xbc>>\xc3j\xd8^|\x1e\xca\x05\ \x0f\xba\x83\xbde\xca\xda\x81\xdb\x9d\x85\x8aT\x96\xa38\ \x99\x17*:\xa2\xbb\x99\xd2\xd0m\xcb(\x12\xdc*\x22\ m'\x94C\xadq\xcb:\x85\xce\xcb<7\x7f\xbfa\ \x9d\x12\xe8G\xb3\xec\x87\xcbmL\x1b\x84\xbb\xd6*t\ \xa4\xe7\xc9\xb7\xf6)\xd2\x1e\xd1J{\xee^\xac\xd09\ \x9f\x17\x07&\x8a\x95\xb5s\xed\xaf\xe5\xca\x0d\xcb\x95\xa0\ U5\xbf\x16,W\x14,;|\xf7\xb5dy\xa6%\ \xcbF=\xfe\x94E\x0b\x9d%|rn\xbek\xcd\x12\ \xbcV-\xbbpQ\x1b\x01\xe8\xb5ni#\x14\x05\xf2\ \x81\x10\xba\xb4rY%\xac\xbb+\x17\xc3\xb8\xe6\xcbG\ ,\x5c2\xa5\xb9\xf4\xb9\x09\x8d\xb6V\x19\x08#mP\ \xc2\xe8[W.Z>}Fv\xc7\xca\x85?\x9am\ ?\x5c\x9a\x13\xb5A\xb8s\xe5\xa2\xe5\xd3\x13\xfaS\xe4\ ?\xad;\xdc\xf7Q\xb9hi_\x1c\x98M\xe5\xd2\xca\ %_K\x97k\x97.\xadG\x07\xaf\xa5\xcb\x95\xa5K\ \xeb\xc9\xdek\xed\xf2|k\x97\xc7\xbbix%=?\ \xbb\x1b\xb07/^\x9e>I\x7f\x9e\xc5\xcb\xe3\x1d\xa2\ \xf9\x7f-^\x1e\x0a\xa1U\xf1\xb2\x0e\xd4\x06\x95%}\ \x85\xa2d\xbf\xefe\xa7\x19\x86O\x97P\xb2\xe6g\x13\ J\x16:\xaeQ\xc5L\xce\xd71\xc5\x22z\xc7\xd3\xba\ \xbe\x1c\xe7\xf6{\x01\x0d\x98\x88\x15\x91a\xce\x08_\xa9\ P2'\xb4\xf4\xbe\x87\x1b\x86\xdcZ\xc9\x08Yz\xfa\ \xa3@r\xd7\x95\x0d\xbd@\x87\x18HZHCM/\ aXO\xa0H\x93\x22\xd2~\xc0e\xc8\xb5\x898\xe5\ \x96\x8c*\x174Q\x1a\x80\xdc\x93*7\xab\xf9\xa2\xbf\ 1\xab\xfe\xa4\x15A\x82\x98\xefB%\x10\xdd\xc0\xbd\x0b\ \xad`\xaef\xbc\x80l\x22rJ\xf90\x12c\x04X\ 9h>E\xdcX?@\x5c\xe4NF\xeb\xe5\xc1\xc2\ >\xa4V\xa8.\xd6\xffa\x95+\xccc\xb9\xf5{w\ \x5c\xa7&I\xed]w\x1c\xab\x8e\xcc}\xee8\x92&\ \x17E\x16\x99)v\x0f\xb8\x1b'\xb0\xe3B\xd2\x1b\x09\ T+\x0b\x03\x8b0\xf8xmY\xb3\xe3\xc2H\xce\x1c\ \xed\x05\x13\x8c\x92\x0b\xaeB\xad\x99\xb5\xc2\xc7\xae8'\ -\xe6\xa1-\xff\xecI\x15\x22\xb5s\x9a\x1e-:F\ \x83\xa0t\x0b\xa1\x19)\x0a\xa70$\x1b\x09\x0f\xd5\xbb\ \xd0<\x92\x8de\xd2\x1b\x14H\xff\x04\xa7\x9dv\xc8q\ \x14f\xd7\xd8K\xeb\xd9\xd0\x09+\x05\xfc_\xb9\xd0\x08\ #`\x18Vh#\xd0\x91\x85\xd6!\xd3Qk\xb1y\ c\xc3\xed\x1d\xb7{\x071TU\xd5pC\xf3\xbb\xba\ \xf6\xf8[\x16\x94\xe6\xd5d\x08\xfe\xcb\xc7\xb4\xb7\xef\x8b\ \xd3\xac\xec\x0f\x8b\xb3\xde\xfc\xcc\xfc\xfb\xe6w>\xa4\xed\ ]\x88\xf6\xc6\xfc\xd9\xbb4\x97\x84\xfd\x96!*\x11\x8b\ x\xd3\x1092m\xab\xf8\xb6\x15n\xc4\xfe\xdbf\x04\ \xeb\xd2\xd9\xabJ=\xd62\xe2\xf7\xa3\xb8\xfc\x92\x95\xb3\ \x0e\xb3\x97\x0a\x82\xe38\xf92h&\xeb\xc5I2\x1d\ M\xe9M\xb2uk\x1fy\xb0\x09\x10\x83\xb0\xda7\xc8\ ~\x9d2\x91\xf3\x12\x0f\xa6I\xaf\x13I?\xb0\xa1\x92\ F\x09\x01\x86\x92N\x0b\xa6\x9b\xb7\xcfx\x14q\x07:\ Q\xa1\x95\x06\xe6\x0c\xb3\xe6\xa15\xd6\xb2\xc8C\x17.\ \xb9\xe2\x9a\xf8D[\x07s\x04\xc9\x98PG\xca\x09\xb2\ \x7f\x01>\xe5\xe8\x8c.\x9cq'\x220\x1b\xb7Z\xd1\ \x80\x98%b\x8a\x9e\xaa\x83\xca\x1dc\x96D\xd0\xb6\xd6\ \x8fB\x151\xe1$\x06\x0b\xa9\xa8\xf19\xbdw\x09\xc2\ '\xffR\xa1\x88\x04C\xed\xc3C\x85\x1f\xc6\xc9\x8dQ\ \x02Y\x12\xd1-/\x8c&\xb1,\x84\x18\xf8\x07\xd6\xa0\ @z\x8a\xd1hD\xf0X\xa2\xf6\xe1\x0c\x91\xc2\x07\xac\ ?\xa0\x83\xc8 Q\xba\x5c#\xb8u\x96DBG4\ \x05\x9cY3\xa3\xb0\x04\x0e\x91\x88x\x03\x13y\xb0\x86\ \xa3\x86\xf0>p-->RpP\xe7\xa1\xeep\xe0\ Z\x88\x0c\xb0\xc6h\x12\xe9[h\x15\xd3\xe0a\xf8\xbe\ \xb4\xa8:\x1c.\x0e<\xef(L\x83\x7f\x04b\x80g\ @\x15\x96n\xd4a\x8f\x10\x1c\xe0\xf3\x12k\x02\x81\x1b\ \xe4:\x0ddHyp]\x11\xae\x05Y\x22\x07vZ\ \x1bC\x00a#\x0d.B\x84@UZK\xc4/\x90\ \x1a\x82\x800\x1f\x22\x80\x94\x943\x01\x0f\xdf\x80\x9a\xb0\ b\xea\xa2\xad\xa4c\xd7B#}@\xd2\x1e\x1a\xad\x89\ \xc8h\x07`\x02\x88H*t3[\x01\x04\x9ci\xc9\ \xf9\x8eH\xe14\xa2\xc4\xe2\xa5\x13\x84\xfd\x03z\xe9\xe3\ \xe8\xcd\xff\x00\xe3\x05~\x8c\ \x00\x009\x1e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ id=\x22linea\ rGradient1049\x22>\x0a\ \x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a \x0a \ \x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4393-9\x22\x0a \ id=\x22linearGradi\ ent4399-7\x22\x0a \ x1=\x2248.714352\x22\ \x0a y1=\x2245.5\ 85785\x22\x0a x2\ =\x2240.714352\x22\x0a \ y2=\x2224.58578\ 7\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(1.2\ 856487,1.4142136\ )\x22 />\x0a \x0a \ \x0a \ \x0a <\ /linearGradient>\ \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a <\ stop\x0a id\ =\x22stop3418\x22\x0a \ offset=\x220.5\ \x22\x0a style\ =\x22stop-color:#ef\ 2929;stop-opacit\ y:1;\x22 />\x0a <\ stop\x0a id\ =\x22stop3420\x22\x0a \ offset=\x221\x22\x0a\ style=\x22\ stop-color:#a400\ 00;stop-opacity:\ 1;\x22 />\x0a \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \x0a \ \x0a \x0a\ \x0a image/s\ vg+xml\x0a \x0a \ Path-S\ tock\x0a\ 2015-07-04\x0a http:\ //www.freecadweb\ .org/wiki/index.\ php?title=Artwor\ k\x0a\ \x0a \ \x0a \ FreeCAD\x0a <\ /cc:Agent>\x0a \ \x0a FreeCA\ D/src/Mod/Path/G\ ui/Resources/ico\ ns/Path-Stock.sv\ g\x0a \x0a \ \x0a \ FreeCAD LGPL2+<\ /dc:title>\x0a \ \ \x0a \x0a https:\ //www.gnu.org/co\ pyleft/lesser.ht\ ml\x0a\ \x0a \ \x0a \ [agryson] Al\ exander Gryson\x0a \ \x0a\ \x0a \ \x0a <\ /rdf:RDF>\x0a \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a\x0a\ \x00\x00\x09\xdf\ \x00\ \x001\xb0x\x9c\xe5Z[s\xdb\xb8\x15~\xcf\xaf`\ \x95\x97d*R\xb8\x10\x00\xa1\xb5\xb2\xb3\xb3\x99\xdd\xc9\ L:\xdbi\x92i\xfb\xe4\xa1IPfM\x91\x1a\x92\ \xb2\xa4\xfc\xfa\x1e@\xbc\xca\x94-\xc9\xb2\x9b\xb6v\x1c\ \x89\xc09\x00\xf1\x9d\x83s\x03\xae~\xde,\x12\xeb^\ \xe5E\x9c\xa5\xb3\x11v\xd0\xc8Ri\x90\x85q:\x9f\ \x8d\xbe}\xfd\xcd\xf6FVQ\xfai\xe8'Y\xaaf\ \xa34\x1b\xfd\xfc\xe1\xcd\xd5\x9fl\xdb\xfa5W~\xa9\ Bk\x1d\x97\xb7\xd6\xa7\xf4\xae\x08\xfc\xa5\xb2\xde\xdd\x96\ \xe5r:\x99\xac\xd7k'\xae\x1a\x9d,\x9fO\xde[\ \xb6\xfd\xe1\xcd\x9b\xab\xe2~\xfe\xc6\xb2\x80+,og\ #\xee\x8e\xf4\xd3\xad\x8a\xe7\xb7e\xf3\x18\x87\xb3\x11\xd0\ Q\xe41\xf3\xdcyA\xbc#\xa8F\x9ev{\x1cb\ \xbdC>BA\xc4(\x95c\x8b Bl\x04\xff\xdc\ \xf7\x86\xa9\x80e-\xe1o\x1afA\xea/`5>\ Y^\xff\xb2\x89\x8b\xbf\xfa\xb9\x9f$*\xf95K\x8b\ 2\xf7\xe3\xb4t`z\xc3\x04\xf8\xa4\xc5\xb4\x9eo6\ :\xb4<=`\xb1\xf4\x03UL\xea\xf6\x0e\x7f=u\ \xc3_78E\xb6\xca\x03\x15\xc1\x10\xcaIU9\xf9\ \xf8\xf5c\xd3i#',\xc3\xce0\x9b\x04\xc6\xee\xbd\ \xc3\x9a\x9a\xd9\xb1\x94rbz[\xea!:\x82\x10\x9a\ \xf4\x97\x06OGR\xe6atpnD&\x006P\ \xd8\xc56-\xfd\x8d\x9d\x16o;\xacA\xd0p\x06Z\ m\xe2{\x15d\x8b\x05\xc0\xbd\x03\xafG\x1c\xb6\xc4\xcb\ U\x9e\x18\x8a0\x98\xa8D-TZ\x16\x13\x10\xf5d\ \xf4\x01\xe8\xafB\x15\x15\x9ao\xa71\xfa\x09TF\x98\ >\xe8\x058\x94\x9f\xff\x9e\xfba\x0c|;\xba\x1de\ \xbf\x87z\x02W<\xc0U\x94\xd9\xb2\xa6\x05\x9d)\xb7\ \x09H]7\xdaA\x96d\xf9\xf4-\x01h\xa2\xe8'\ \xd3\x94\x81\xc4\xe3r;\xc5?\x8dZ\x9e,\x8a\x0a\x05\ \xca\x8c:mF\xa3\x81\x03\xe6\xa2#kr\xfclQ\ \x14\x05Qp\xc4lxx6\xd6\xccv5\xe9/\xfb\ d\x948=\x01\xa5(\x02\x05Bg\xa3\xc4\xd9\x89(\ I\xe5{g\xa3\xc4\xc5S(-\xfc\xfcN\xe5\x0d:\ \xb5\xf9\x01\xf6\xe0N\x8f\xf3K\x9egk\xf2Y\xa5a\ 3A\x96k~02\xab2k\x1as\x15\xfd\xb3\xbb\ fx\xfeG\xf7\xf9\xc0X\xd5\x9230wQ\x92\xad\ \xa7\xf7q\x11\xdf$\xaa\x95\xc7\xd2/o\xfb+\xd3-\ .\x13\xee\xe8\x01pQ\x9c$v\xbeJ\xd4T\xdd\xab\ 4\x0bC\xc0-\xcf\xee\x94ml\xf2\x149\x9c\xb0\xba\ I\x83\xf1\xaf,N\xa7y\xb6\xea\xbc\x8fe\xc1\x0c\x7f\ \xb1)m\x9d\ G\x9b\xc5-\xaf7\xb3\x11u\xb8\xe7\x12\x0e6~\x0a\ \x86\x09!\xce\xa5$\xf0\x1d\x0f2lg#\x9b\x08\x07\ \x5c\x06\x0370\xb5l\x979D\x0a\xcfu\x0f\xb2|\ \x07\x16\x97\x83\x03bB0\xcd\x82\xc1\xc10\xe9r>\ \xccR\xbd\xaf\x0d\xd6{\x1e\xeb\x1c\xd3\xbc\x0d\xb8E\xfd\ #\xfa<\xda\xc8\xb6HP$y\x8b\xe0\x0b`ec\ \xea\xb8\x94\x13n^\xc9u\x04\xd1\x0f\x8f\x81\x85\xa0S\ 2\xf0\xb9z\xe5\xe8\x10>\xae\x0bB\x10\x82>=\xea\ \x03p\x98\x0e\x17\x04\xd5\xf0K\x87SF\x99\xf4\x9e\xc0\ \xc8}Y\x8c\x8c&\xa0\xa7@\xc1\xb0-\x1f\x83\x84x\ \x8f\x0c3\xa8\x22\xeeQ\x1a\x82\xf1\xd0\xea\xc1Q\xdb*\ \x8a\x80\xa8f\xdc=\xc1\xce\xbc\x83\x0c\xb8\xf4\x93\xfe\x88\ -=\x85\x0d\xd3\xf6\x15\xd7UX0\x1b\x95\xf9J5\ \x1d\xc0P\xaa<\xd5A\x1b\x04F\xf0\x07+\xc3\xa8\xe7\ \xee\x83l\xb9\xdd!]\xc4:\xf6\xb8\x06\xaf\xae\xca\xe0\ V\xb5H/\xf3lym\xdcx\xd7\x82\x98\x86\xeb\xed\ u\xae\x12\x88\x15\xfc\xa4h\xa7\xd5\xa5\x11SSja\ N!\x16\xf0\x93\xeb\x87f\xaf\x84\x88g\xa0\xd9\xcc\xb9\ J\xe3\xb2\xd8\x1f\x1c\x02\xa12\x86\xb9\xaf\x9b\xc5\xf5\xfb\ \xa3U\xa1\xae\xcb,Q\x10\x82\x04\xfd0\xe2\x80\xb1o\ \xa3\x90$1\xe0\xfb\xc9\xda\xdf\x16=\xe8\xfb\xac`G\ \xc4)>S\xff\xd03\xbd\x01\xcc%O\x8c,\x1e\xce\ \x86\x8e\xf5\x06\x02\x22\xf7\x8b\xa4\xc7\xf8\xa2\x99\xd1\xfeh\ gF\xc5TJ\xb6\x9f\xcd\xe8\x8d\xc1\xc66\x03\x07A\ \x1cf\x1e\x98i|\xb9\x90\xb8\xcaW\x90\xe3\x99|E\ \x7f\xc2\xae|\xb5\xa4\x15\x7f\xb9\x5c\xe5\xa2?\xd6\xb9\xc9\ \x0a\xc2\xe8\xc7\x11\x8bIUL=\xc1\xe4,X?\xbd\ \x9eh.\xbak\xbe\x5c\xa6\x9e\x80 \xdb\xf8a\xc4S\ KG\x7f\xbe\xaal\xc8Ee\xb3?\xda\xd9\xb2!\xec\ x\xc4\xffwj=\xc8\xa1\x95\x16P\xbdO\xb9|\xd5\ j\xcf\x1f\xab\xf2\xf3\xe5\xca=\xbd\xd1\xce\xd5\x03L\xf7\ \xf6\xe8\x7f\xb6\xdec|\x9b\xe3\xbd\x82L>\xc6\xfe\x22\ K\xc3\xcbT\xe3\x87\x06;{g\xeeW\xe0\xb4\xd5\xb4\ \x85\x83\x04F\x82{V\xf5\xd5\x93\xae\x09\xcdwO\xcc\ \x93\xd6\xee\x9b\xcb\x89i\xefp\xbcjDb\xc3\xce|\ \x95MUc~!\xeb:<\xdc\xd9B\xf4\xe8\x7f\xb3\ \x10_K\x86U\x90~\xc1\xb8\xf2\x12[\x10\xc2}\xef\ \xc7\x09\x5c\xecZ0\xe6\x8b}\xa1\x88\xff\xf8\x02\xa6<\ \xedDW\xff\x9c]\xc0\x94\xa7\x9e\xe8>\x9c\xed\xe8\x94\ \x15f;\xb7\x18\xfeT\xe6o.YLoAKg\ \xa3\xb7\x03%\x80\xc3pC\x1e\xdd\x1a\x8e\x0d6\x153\ \x81]\xafu\x09[h$\x10IIIE;\xd2\x86\ \xccF\xd4u0\xe5\x04\xb5\xba\xbb%C\xb4\xf3j\xae\ o\xbb2\xc9\xaaP\xf9\x17})\xe5\x8f\xf4[\xa1^\ \xb4\xd8\x86\xe1\x05u\xf9O\xd7\xbc\xb8\xe3Q\x81\xa4x\ n\xe5\x8dbGz\x10^\xea:\x1eA\x8e\x8b\xb9G\ \xd8\xf1\xd5H\x01\x0c\xa6\xcc\xcb\x1c\x060y\xf8\xa9z\ \x9cM\x9f]\x18zD=\xcc\xd9\xc3c\xbb\x91\xcb\x9e\ z\x10\xeaP\xc8\xb3\x5c\xaf\xa7\x1f\x00.4q\xee\xf6\ \xf5C:\x94#\x97\xb2\x9e~<\xa4}\x5c?\xf6\xa9\ \xbe\xb6\x06\xcb\xd8\xae\xc4/\xd5;\x1b\xfc\x97M\xc0N\ \xbd(T\x02?\x0aUw{\x00(\x10\xcf2]\x0b\ Gd\x1f+\xecq\xd1\x19Kc\x05Y\x09d\xafD\ \xba\xfbX\xed\xd1^\x00+&\x1c\x8fcO\xe2\xe3\x10\ \x1b8\xae\xc4\xdcF\x87lt{\xf4\x87=\x9b?a\ \x88\x07L\xac\xe7+B\xdd=\x83~\xd8H\xb7\xd3\x11\ d\x93',\xf1\xd0a\xaa\x92>\xe2\x87\xa6{\xeea\ \x1c u\x0cN\xaf\x8a\xd2k`t5\xd1\xd7\xde\xcc\ \xb7\xc6r\xeb\xbb\x88\xe1}\xac\xd6o\x9aW\xba\xf1\x1b\ \x9d]\xfase\xa6\x83m\xb7\xf3\xb2U\xc7M\x96\x87\ *\xaf\xbb\xcc\x11\x06\xefuUo\xb4\xbb'Z\x8d\xdd\ \x1e\x5c\xccU\xd3\x8f\x86\xfb\x8b[?\xcc\xd6`\xd9\xf6\ ;\xbfg\x19\xec\x1b\xf0qM\xe5\xa2\xb5\x1e\x1b\xe3\x07\ \xa8\xd4\xbf\x0f:\xb7\xe6\xc4\x8a\xb8\xfa\xf7A\xe7*\xcf\ \x01$;\xf1\xb7\x0a\x16d>j\xf8\x8b\xdbl=\xcf\ 50\x9d\xc3\x91\x86S\xf7\xd877\xd9f\xb8;\xcc\ \x82\x95\xbe\x89hW\x87\x11\xcb\xcd>\xc5:Na\xa1\ vu\xc7\x15\xbb\xee\x038*\x8a\xfa\xde\xab\xe7\xd2\x03\ \x14\x9bVA\xf7\xbb\xb6\x87\xbb\x16\xfe&^\xc4\xdfU\ \xd8j\x5cO\x12\xc1\xad\x0a `\xbc\xc9\xfc<\xd4\xa3\ \xec\xc7\x05\x1a\x81ZQwq\xc0f\xab\xdbzFY\ 7P\x8c[\xa7\xa6\x16\xcb\xe6\x9c\xa75\x10\xc3\xe7P\ *\xf5\xa11\xdck-R\x7fY\xd1\xeb\xd1\xb5\xba\x17\ Y\x9al+\xb2\xddF\xb8\x9a<\xd4t\xd3\xbeP\xa5\ \x1f\xfa\xa5\xdf\xaa}\xddB\x91l\x16\x99\x87\xd1\xf4o\ \x1f\x7fk\xf6o\x10L\xff\x9e\xe5w\xed\xbe\xd4\x04\xfe\ M\xb6\x02\xb94&E_6\x0d\xa6\xda\xbe\xfb\xe5\x87\ x\x01\x10\xea\xcb\xb1\x7f\xde,\x12\xd8\x80MG\x8fX\ \xe3\xd6\x0e\xba\x1b6W\xbb\xfb\xbe\x83\x17\x5c\xc3`\x11\ k\xa6\xc9\x97\x12\xb2\x8cOz\x92\xae\x9d\x99T/Z\ \xdb\x82\xce: \x01\xa8\x16j\x9e\xe6-\x00=\xado\ \xc4\x9b\xf87\xfa\x88\xee\xb3\xee\xb4\x1e\xf4\xce\xf3l\xb5\ \x5cd\xa1\xaa\xd8\xab\xfer\xc8\xc3\xa11%\xefkd\ \xe7=\xed`\xb4\x8dg\x06nfU\x09\xa9\x84\xcc\xd8\ \xf5\xa8I\x83\x1c!\x88K\xe9\xfb\xd6\x90\xe7\x9ds\xd0\ ^\x0e6}\x0b\x1e<\x0a\xa2\x9fLB\xd6\xa6#\x8f\ fc\x8e`\x10\x13v\xab\x9c\xb0\xde]\x91s\xb8\xf4\ Y\xb7\x82\x5cT\x9e\xc0\x8e*\xa7n\xdd\x16\xfa`\xce\ \xf2\xdc\xdfN\xd3,U\x1d\xb3\xae\x17\xaf\xdf\x1b\xa2\x94\ \xee\xe5\xcb\xfa\xc2\xbb\xc3\xb9\xe7J\xb7\xeb@\x9b\xdb\xef\ \xd8\xe1\x98\xb9]\x1f\xa1#k\x08\x22\x04\xe5\xb2[\xcc\ \xd3\x97\x1f \xe6#\x8cI\xaf[\xec\x1dJ\xfd%\x01\ n\xcc\xa8.\x8c\xea\x90\x983s\xed\x0a\xd2\x09\xec1\ ,\xb4\x0c(\xc1\x88c>6\xf9gG\xe5\x1e\x81_\ ED\x12\xf9\x83\xc3o\xd3K\x08\x80R\x87SL\x88\ \xdc\x13\x80\xcb\x1c\x04\xd9\x17\x11/$\x80\xab\xc9|\xb7\ \xb9\xe1\xe3J\x9b\x9b\x0fo\xfe\x0d!\xe8\x88|\ \x00\x00\x09d\ \x00\ \x00\x22\xf0x\x9c\xcdY\xebs\xdb\xb8\x11\xff\x9e\xbf\x82\ U\xbe\xc4S\x11\xc4\x8b\x00!?nr\x97^\xe7:\ i;sI\xda\x99~\xb9\xa1HHbL\x91*I\ YR\xfe\xfa.\xf8\xa6E\xd9\x96\xed^N\x89\x22r\ \xb1\xd8]\xfc\xf6\x01,r\xf5\xc3~\x1d[w:\xcb\ \xa34\xb9\x9e\x10\x84'\x96N\x824\x8c\x92\xe5\xf5\xe4\ \xcb\xe7\x9fmob\xe5\x85\x9f\x84~\x9c&\xfaz\x92\ \xa4\x93\x1fn\xde\x5c\xfd\xc9\xb6\xad\x9f2\xed\x17:\xb4\ vQ\xb1\xb2~In\xf3\xc0\xdfh\xeb\xdd\xaa(6\ 3\xc7\xd9\xedv(\xaa\x89(\xcd\x96\xce\x85e\xdb7\ o\xde\x5c\xe5w\xcb7\x96e5c3\xbd\xdf\xa4Y\ a\x1f\xc2Mt=Q\x18\xe1\xf23\x19\xe3\xd9?\x81\ g\x11\xc5:\xf1\xd7`\xaa\xb3J\xd7\xda\xf9\x1a\xad\xd7\ ~\xe0|\xd0\xf9m\x91n\x9c]\x04\x1ch\x93,\xcb\ \xc9\xbb(,V\xd7\x13\xc1\xcb\xb7\x95\x8e\x96\xab\xa2}\ \x8d\xc2\xeb\x09\x18K\x08\xabU\xe5\x00\xcb\x06\xbe\xb3\x16\ /\x8c\x18\x1dZ\xd1\x83\x92 j\xbd\xc3>\xc6\xc1\xc2\ eLM-\x8a)\xb51\xfc\xe5\x17Cya\x1aT\ &\xfbt\xf3\xdb_\xc2\xa8\xf8\x92\x84)\x02\xddC\xd9\ \xe9\xb6\xd8l\x8b\xdf\xf4\xbe\xd0I\xa5\x04p\xed\x81\x5c\ \x0e\x9bi-\xad\x9c\xdf7\xa9\x22Dz\xf7c\xba\x07\ \xf3-l\xb9\xc6L\xf3O9\x04\xd1\x90\xe4\xb3f\xfa\ \xf5\xe4\x943\x8d\xb9\xf9\xc6\x0ft\xee\x0ctU\xf3\x9b\ \x85\xb5\xf3\x1b\x02\xca\xd3m\x16\xe8\x05\x88\xd0(\xd1\x85\ \xf3\xe1\xf3\x87v\xd0\xc6(,\xc2\x9e\x98}\x0c\xb2\x07\ 6\xecX\xa9\x9d(\xa5\x9cr\xb4\xe3\x1e\xe3\xa3\x10$\ N\x03cm\xda\xdd\xf2\x89\x9cY\xb88\xa9\x1bS\x07\ \x5c\x09\x1cv~H\x0a\x7fo'\xf9\xdb\xde\xd4 h\ g\x06&I\xa2;\x1d\xa4\xebu\x9a\xe4\x15x\x03\xe6\ \xb0c\xdel\xb3\xb8\xe4\x08\x03G\xc7z\xad\x93\x22w\ \xc0k\xce\xe4\x06\xf8\xafB\xbd\xc8\xcd\xbc*4\xcd\x1b\ +\x07`\x08\xb0\xd0~\xf6\xd7\xcc\x0f#\x98T1\xf5\ \x22'H\xe3X\x07\x10\xda~\xbc\xf3\x0f\xf9\xa4e\x00\ 9\xc3\xa9\x94QQ\x0b\x05\xb19\xa4L\xc3\x0b\xf1Z\ \x1cb\x88\x09C\xb4Ab\x9a\xcd\xde.\xca\xcfeI\ J!\x1e\xa2\xe20#\x97\x93nN\xbaX\xe4\x1a\x14\ \xe3\x1e\xadL,\x98\x01\xba\xa0\xba8/\xd3\x86\xc7\xb4\ \x91Qm\x0c\xb7\xda\xae\x9c\xe1\xb2_\x1fFr\x0e\x8c\ \x01\x872\x81\x9f\x0d#9\x0f\xc61mg\xc0H\x7f\ O\x18\xb1w\x06\x8c:\x0c\xf9K`\xc4g\xc18\xa6\ \xed\x0c\x18\x09\xfd\xdd`\xf4\x84\xa0g\xc0X\xed\xae\xcf\ \x84\x11t\xf1\xb3`\x1c\xd3\xf6d\x18A\x9bx\x0cF\ \xf3\xe6\xc7g\xc3X\xee/\xb3U\xa6a\x1bx;\x82\ g\x1f\xee\xa1\x0a\x18\xf6\xda\xe1\x00\xf6Y\xca\x91\xc7$\ \x81\xca\xdaR\x0f\xd7\x13&\x10\xa7\x84P\xd9R\x17\xa3\ \xbc\x8bQ\xde\x0c\x00q\x91\xe0\x5c\xb2\x8e\xb8\xac-\xf8\ \x9c\xf9I\x0e\xbb\xec\xfaz\xb2\xf6\x8b,\xda\xbf#S\ l\xfe \x97\x09I\x19<\x12\x81<\xc9\xb0\xb88\x9a\ \xfc%\x89\x0a\xd8N\xb7\xb9\xce>\x99-\xfe\x9f\xc9\x97\ \x5cw \x9f\x88\xca\xe3\xdc%^g\xd8I\xb4O\xc4\ I\x9b&\xc4S\x8f\x04\xde\xd3w\xa5\x93Q\xd9iS\ \xe4\x91\xc0{\xfa\xae\xf4\xffI\xee\x07\xa2r\x08\xf8\x91\ ?\x88\xac\xcf\xb5\x8f\xfb\xfa\xf1p\xc2S\x1b\xce%\x92\ (*zOx\xca\x05u9\x22\x98\x10\xd2\ E\xd7\x9e\x00\x90\x12a\x81=\xdc\xc5\xf6\xc1P\x09b\ \xca\xc5]F\xed)\x10)\x12\x94\xb3^l\x1f*\xaa\ \x0b\xd9!\xd4\xa3\xe1\xf8\x12\x1c\xcd\xa6\xf3\xe0\xd6\xce\x07\ \xab\xa2\x02\xb9\x83\x051\x8e\xa8;X\x0d\xb0\xf4(f\ %\x9c!W\x12\x8f\x91WJ\xbf\x17\xad\x97\x88\x07\xd7\ K\xe9w\x5c\xef\xebW\xef\xf2\x88{\xbaz\xc39\xb1\ [\xaf\xa9\xdePf\xb1\xe2\x98\x0d\x8a7a\x88zT\ \xd2n=\x8b1\xd6\xc5(\xab\xa9\xdd\x18\x11\xc1\x85x\ B\xaeQ\xc4\x95\xc0\xac\xaa\xe0\x14A7*<5\xb5\ \xa9\x8b\x08\xe5\x98B\xfeI\xe4Q\xc1\xce,\xe5W\x8e\ \xe9 \xca\xa7\xb6\x115m]h\xda\xc3JP^d\ \xe9-T\xbb\xfa\xc4X\x8b\x87\x0e;\x06Zu\xfc\x99\ t\x0d\xc9\xdcoK\xc7\xc6_\xea\xb2:\x02_U\x1e\ \xeb\x81y\x9a\x85:k\x86D\xf9\x19\x0c\xd5\x05\xd4\xb4\ \xd6\xd4\xe5\x0a\x13\xd5\x8c\xb7.7\xc2{lxl<\ _\xf9a\xba\x83@\xbc?\xf8-M\x01Y\x0a\x80y\ \x9cJr\x7f\xd8\xf8\x9bI\xc4egW7\x06\xeal\ \xf00\xb4\xf1\xf2\xd8\xaa`\x9be\x80\xb8\x1d\xfb\x07\x0d\ k+\x7f\x1a\xf1\xf9*\xdd-3\x83\xd1\xc2\x8f[\x90\ \xda\xa9f\xc8\x9e\xcfMG^d\xdb\xa3\xe10\x0d\xb6\ \xa6\x15\xb4\xb7\x9577\xfb\xfb\x1cF~\x7f\xd5\xa3Z\ vQ\x02\x83v}\xe5\x01\xb5\xf9h\xf15Gs\x0d\ \xe2\xf1#hk\x0esLQ\xfc\xc4\xe0\xa1\xdb\x9e\x07\ .\x09V:\xb8\xd5\xd9<\xf5\xb3p\x84\xa5\x9e\xbd\xf6\ \xf7\xd1:\xfa\xa6K\x96:P\xd7\xba\xf0C\xbf\xf0\xbb\ Pk(\xbc\xe9\x7f\xa1\x15\x9f\xfd\xfa\xe1\xe7v\x7f\x0f\ \x82\xd9\xbf\xd3\xec\xb6\xdb\xb7\x0d\x83?O\xb7\xb0\xae\xf6\ \xccaZ\xea`fr\xcd/n\xa25\xd8h\xae\x00\ \xfe\x0cm9\xe4F;0`.\x0e\x1b\xdd\x09\xad\xc4\ f\xba\xba\xd5\x18m\xe3\xc3`\x1d\x99I\xce\xa7\x02\xd2\ \xe6\x17\xa3\xa4w\x0e\xa9\x84\x96w\x04iv\xd3\x13l\ \x16\xf0~\xd9\x9e\x16\x06&DE\xaco\xfe\xe6\xdfn\ \xe7\xd6\xa7BCi\xcbJs+z_\x86s,\xa4\ \xe4<\xd2g\xc4Vk\xb8\xa9\x97P\xdd\x9a\xa1\xf56\ \x8f\x82\x95\x1f\xc7(\xf8VN\xad\xb9\xba\x99\xa0\x22\x8e\ \x02\x9d\xe4\x8f\xc32v\x15R\xcf\xcd\x9d\xf9\xc1\xce}\ \x87\x22\xec\x1c\xc1S-\xcc\x5c\x8bY\xe6^ll\xb1\ \xe5\x02\xb6\xf3\xaf\xb0\x13\x0c\x100v\xfc\xe8/\xef\x81\ h\xa8qt\xa3A\xe2\x95S\xbf\x8crlKu\x0f\ qd\xfaNg\xa3R*\xda@y\x85\xe0\xd0\xcc\xd2\ I&T\xfb\xa1\xfb\xf1>\xa2\xbd\xe8=\x13\xcc\xa1\xab\ 6:\x83p\xcc\x1fu\xd5N\xcfQC,E\x07\x81\ \xf3\xab\xdedi\xb8\x0d\x8a(M\x86>z\xa1\xe0\x0f\ \x11\xec3\xd1|;*8\xd3\xff\xddF0\xe3Y\x92\ \xff\x91\x16\x00\xc9\xeb\xca|_\x9c6\xf6E(\xe8,\ \xba+]j\xa2!\x7f]\xa3?\xad\xfcL\xbf\x8f\xa3\ \xdb>\x18e\xe8\xd5\xa1\xd6\xb4*\xbd:z\xe54U\ \xb6|[v\xd5w\xb0\xb7\xb5\x05<\xf6\xe7\x1a\xce\x05\ \x1f\xcd\xa0u4\xba\xcc\xd2\xedf\x9d\x86\xba\x9e\xde\x14\ \xeee\xff \xb6d^wt*\xba\x83P\xf9\x18\xfb\ \x85~G\x90\x98\xc2\xf7\xa2\xeb\x1bu\x1cG\x9b~\xae\ \x14G\x07(hP\xb8\xa7$\x13\xe5\x09\x0a\xde0&\ \xd4\xa5S\x81\x91\xc0\x1c\xc8\xd2E\x0c:\xee\xee\xfcT\ \x99\xb3\xf1\x8b\x15\xf4\xf2#\xcd\xe6\xf0\xea\x22\x8c\xf2\x0d\ ,j\x16%\xe6\xa0y\x99BIX\xc4\xe9nv\x17\ \xe5\xd1<\xd6\x97\xe5o\x14\x9b\xbe\xb0!\xb5}\x22\x22\ \x9c@gvi\x0eU3\xd87\xde\xbd=\xbeK\xb8\ (G{\x9dl\xf9\x9amc=\x83\xf2\x93\xa4ax\ Y\x9d\xd4fI\x0a\xfa\xab\xe7j\xa3\x07\xe6\xfa\xd5\x98\ \x06\x9e\x98A\xe8\x16}\xda\xd74Jf\x10\xb5:k\ \xa8\xe5K\x0c\xbbp1#\xb8!\x86>\x1c.\xb2\x0c\ V\xd9\xd7a\xa8U\x97\xe0[\ @\xe1\x1b\x1c\x88\x1b\xdf\x8e\x0a\xa0\xf4\xe25\xfd\xcd\xff\ \x08\xee\x86\xcc\xfb\xbb\xa5\xa0\xd1\xa7\x9c\x93)\x87\x96\x8a\ A\x92*\xeb'\x8b+HX +s\xcf\xc0\x5c\xd7\ \xc5\xca\xe2ew\xc5\xb1;%\x14Qp\xackQ\xe8\ \x98\x04\x85\xbc2$\xae\xa4p\xad\x7fY\x0c\xba%J\ \xc1\xf9\xd6G\xcbE\x1ea\x8a*o\x0a\xad\x93\xc4\x9e\ GTo\x12cP \x04\xe3\xca\x0a,(\x18\xf0\xb5\ A\xaf\xf0\x98\xd7\x7f$\x1c\x01\x13\xb0\xdb\x18Lu\x95\ \xb4\x88\x87\x88\x94.\xf5\xa6\x14\x0a\x0e\xa3\xaeg\xd9`\ \x80'\x95\x92\x86$\x94\xe0\xd6\xb7\x91\x1aCx\xaf\xe3\ \xec\xfd\xb7 d\xb66gG8\xf3\x07\xd5\xe7\x81\xa0\ }`\xd2\xb1F\x0a\x86\x0e\x11_[\x0c\xea\x22\xc4\x93\ \x07\x00((\x87\xaeK\x0c\x00\x84 I\x19V\xd0p\ \x0a\x84\xa1\xef\xa1\xd2\x82uzR*\xe8HS\ \xdb\xe21\xb28a5I\x81\xf1\xaf4J\xc6Y\xba\ \xec<\x8fa\xc0\x0c\x7f5\x5c\xcb\xc1.s\x1dwh\ [\x88R\x872b\x98\xc4\x22\xc8!\xae`Cd!\ \xcc\x11\xa6\x84\xd7\x92\xae=4A\x14a\x079\xae\xe1\ \x1b&\xb6\x1c\x9b\xd9\x02\xe8\xc4\xa2\x0eA\x1c\x09M\xa4\ \xcc\xb6\x91;d\x16\xc7 \x80\x81\xc8\xa5\xe9\x0c]\x98\ \x068\xd4\xf8\xdey\x14\xb0\xd8I\x0e\x16t>\x19\xcc\ \xbd\x22\x8b\xd6oa\x04\xdf\xd5\xd3\x0b\xa2tJ\ \xd8\xf8\xc2\x80\x88\x9d\x1a6:\xd2\x91g\xa3\xc4\x9e\x0d\ \x1b\x9b\x83\xba\x80\xcck\x01'\x15B\xfa\xc6@\xd5\x09\ V\xb1Q)S_\x94\xb6\xce\xa3\xcd\xde\x16w\xeb\xc9\ \x80Z\xdc\xb5\x09\x07\x1b?\x06\xc3\x84\x10\xe7B\x10\xf8\ \x8e\xf7v\xd8L\x06&q,p\x19\x0c\xdc\xc0\xd80\ mf\x11\xe1\xb8\xb6}\xb0\xcbw\xe8bsp@\xcc\ q\x98\xea\x82\xc1\xc10as\xbe\xbfK\xf5\xbc&X\ \xefi\xa4rK\xfd4\xe0\x16\xd5\x8f\xd3\xef\xa3\x8cl\ \x8b\x04E\x82\xb7\x08\xbe\x02V&\xa6\x96M9\xe1\xfa\ \x91l\xcb!\xaa\xf1\x14X\x08\x98\x82\x81\xcfU+G\ \x87\xf0\xb1m\xd8\x04\xc7\xa1\xcf\x8f\xba\x03\x0eS\xe1\x82\ C\x15\xfc\xc2\xe2\x94Q&\xdcg0\xb2_\x17#\xad\ \x09\xe89P0\x1c\xcb\xa7 !\xee\x13\xc3\xecU\x11\ \xfb(\x0d\xc1x\xdf\xea\xc1Q\x9b2\x0cA\xa8\xeeX\ \xb6\xe0d>@\x06\x5cxq\x7f\xc4V\x9e\xc2\x81i\ y\xf9]\x15\x16L\x06E\xb6\x94\x0d\x03:\x142K\ T\xd0\x06\x81\x11\xfc\xc2\xca0\xea\xb9{?]lJ\ \xa4\xf3H\xc5\x1ew\xe0\xd5e\xe1\xcfd\x8b\xf4\x22K\ \x17w\xda\x8dw-\x88&\xdcm\xee2\x19C\xac\xe0\ \xc5y;\xad*\x8d\xe8ZR\x0bs\x02\xb1\x80\x17\xdf\ \xed\x9a\xbd\x02\x22\x9e=d=\xe72\x89\x8a|{p\ \x08\x84\x8a\x08\xe6\xbek\x16\xd7\xe7\x87\xcb\x5c\xde\x15i\ ,!\x04\xf1\xfba\xc4\x01c\xdfF!q\xac\xc1\xf7\ \xe2\x95\xb7\xc9{\xd0\xf7\xbb\x82\x1dqN\xf1\x99\xea\x87\ \x9e\xe9\x0d`.qbd\xb1;\x1b:\xd6\x1b8\x10\ \xb9_$=\xc6\x17\xcd\x8c\xb6G;3*\xa6B\xb0\ \xedlF\x1d\x0c64\x198\x08b1\xdd`\x9a\xf8\ z!q\x95\xaf \xcb\xd5\xf9\x8a\xfa\x84Sy\xb5\xa4\ \x15\x7f\xb9\x5c\xe5\xa2?\xd6\xb9\xc9\x0a\xc2\xe8\xc7\xd9\x16\ \x9d\xaa\xe8z\x82\xceY\xb0j]ok.zj\xbe\ \x5c\xa6\x9e\x80 \xdb\xf8a\xb6\xa7\xde\x1d\xf5y\xd5\xbd\ !\x17\xdd\x9b\xed\xd1\xce\xde\x1b\xc2\x8eG\xfc\xbf\xa7\xd6\ \x83,Zi\x01U\xe7\x94\x8b\xabV{\xfeX\x16\x9f\ /W\xee\xe9\x8dv\xae\x1e`\xbauF\xff\xb3\xf5\x1e\ \xed\xdb,\xf7\x0a{\xf2!\xf2\xe6i\x12\x5c\xa6\x1a\xbf\ o\xb0\xb3O\xe6v\x05NYM\xd3\xb1\x90\x83\x91\xc3\ ]\xa3\xfa\xea\x0a[\x87\xe6e\x8b\xb9\xc2(\xbf\xd9\x9c\ hz\xa7\xc7U#\x12\x13N\xe6U\x0eU\x8d\xf9\x85\ \xac\xeb\xfe\xe1\xce\xdeD\x97\xfe\xcc\x9bx\xad=\xac\x82\ \xf4\x0b\xc6\x95\x978\x82\x10\xee\xbb?N\xe0b\xd6\x1b\ \xa3\xbf\x98\x17\x8a\xf8\x8f/`\x8a\xd3\xde\xe8\xaa\x9f\xb3\ \x0b\x98\xe2\xd47\xba\xbb\xb3\x1d\x9d\xb2\xc2l\xe7\x16\xc3\ \x9f\xcb\xfc\xf5%\x8b\xf1\x0c\xb4t2x\xb3\xa7\x04p\ \x18n\xc8\xa3[\xc3\xb1\xc6\xbab\xe6`\xdbm]\xc2\ \x06\x88\x04\x22)!\xa8\xd3\x8e\xb4&\x93\x01\xb5-L\ 9A\xad\xeen\xc8>\xd9i5\xd7\xb7\xb2L\xb2\xcc\ e\xf6E]J\xf9#\xf9\x96\xcbW-\xb6ax@\ U\xfeS5/n\xb9\xd4A\xc2yi\xe5\x8dbK\ \xb8\x10^\xaa:\x1eA\x96\x8d\xb9K\xd8\xf1\xd5H\x07\ :\xe82/\xb3\x18\xc0\xe4\xe2\xe7\xeaq&}qa\ \xe8\x09\xf5\xd0\xef\x1e\x9e:\x8d\x5c\xf4\xd4\x83P\x8bB\ \x9ee\xbb=\xfd\x00p\x81\xc4\xb9\xdd\xd7\x0faQ\x8e\ l\xcaz\xfa\xb1+\xfb\xb4~lK}m\x0d\x96\xb6\ ]\xb1W\xc8\xb7\xa6\xce\xaf^\x15'\x07?\x89S\xf7\ l\x00\x22\x10\xcc2U\x08Gd\x1b(\xecr\xa73\ \x96\x02\x0aR\x12H]\x89\xb0\xb7\x81\xda\x92\xbd\x08P\ p$\x5c\x0c1_\x0b\xd8\xedH]R\xd2\xdf\x9as\ \xa6n\x8e\x05\x8f\x91\x5c\xdd4+\xbe\xf7\x9aI\x16\xde\ Tj\x93\x088\x956\xb1b\xdc\xa7Y \xb3\x9a\xa5\ \x0b\xce\xbc\xc7\xaa\xacfy\x9b\xeff\xeb\xb8\xc0\xa8\x0d\ \x1f\xed\xe7\xe73/HW\xa0\x87\xdb\xcc\xefi\x0a\x0b\ \xe5\x96\x80\xf3E\xb1\xbb\xcd\xf6\xc1\x1a\x10fA\xe2g\ ;t\x87\x09\xf3\x11\x1b\x98\x08q\xb6\xc3\x5cf\x19\xa0\ i\xc6\xdeF\xc2\xa2\xf4G\xbd%\xf9,]M3\x05\ N\xa7\x9c\xdd\xf4T\x1c\xf3\xfe>]\xefg\x07\xa9\xbf\ Tw\xc7\xcc\xaa|\xbcXoK\xac\xa2\x04\x16kV\ \xb7\x111\xe4\xa1\x07$\xea\x1b\x8a\xae\xbd\xb3\xb6Jb\ \xddz\xc0m\xd6\xe60k\xee\xad\xa3y\xf4]\x06\xad\ G\xeb\xed\x86?\x93>\xb8\xf8\xfb\xd4\xcb\x025\xca\xb6\ %W\x08\xd4jYZ\xee\xf5F\xd1z'I\x11(\ \xa2\xedk\x029_4\x95\xf9\xf6\xf8\xec\x7fs \x13\ \x0f\x88\xc1\x165O\xbcE%\xafFWg5O\x93\ xS\x89\xed\xba\x9c\xe3\x1f\xd4\x15\xe8z\x0f\xda\x88\x95\ \xb3(\x8f\xc6\xb7\x89\x9b\x1e\x11\x1e\xa99\x98\x81\x8a\xfd\ \xba\x9c\xce\xe1\x22\x0c\x09\x17\xd1\xd6\xb8\x97>j\xdd\x0d\ \x94J\xd2\xa6\x0d\xeanG\xbb\xf6A\xd3\xe7\xb2\xf0\x02\ \xaf\xf0ZcQS(\x12\x8dZdA8\xfe\xdb\x87\ \x8fM\xb8\xe5\xfb\xe3\xbf\xa7\xd9C\x1b))\x01\xef>\ ]\x82&7!\xa0\xbaP\xe9\x8f\x95\x19\xf3\x8a\xf7\xd1\ \x1c\x94N]\x00\xfd\xf3z\x1e\x83\xd9j\x18=a\xb5\ \x81\xed\xa0\xe5\xb0\x99,\xef\xb4\xee\xbd\xc4\x19\xf8\xf3H\ u\x1a}) \x92\xfe\xa4&\xe9\x84\x85\xd5\xa0Q\x11\ \xcbN\xac8\xaa\x9e\xbe\x0e\xe7:\x8b\x83\xc8\xb7Z\xbd\ nM[Tz\xc6\xa3Q\xbe\xd8\xbbW\xef\xa6>+\ \xa6\xb1\xc3\x9df\xe9r1O\x03Yu\xaf\xf8\xc5>\ \xeb\x8e\x86\x94\xbc\xab\xe1\xee\xe6\x1a\x9dDa\x9c\xa4\x89\ l\x12\x04[\x0a\x0f\xf1~\x82\xc0\xbb%7x\x86\xb2\ \xe2\xb6S\x87\x03\xccdVSu#\x06cQ\x8c\xed\ \x9a\xd6\xc6\xe3\x15!\xf0\xc0|g\x99\xb7\xe9>\x83\xa6\ \x96q\xf3\xb8\xd5=]\x18\xa2dh\x12\x07\xb2\x1ef\ \xf7\x0e\xa2Z\x19\xb3Q\xe7\xc5\xe239\xc9N\x18\x09\ I\x92T;\x0ef\xd7\xf7[{p\x14d\xae'\x09\ \xb5\xfb\x90\x91\x9f\x052\x93^\x1c\xb4i\xcfFR\x81\ \xd1\xa1|w\xffH\xfe\x09\xc9e?\xab*\x17\x85\x91\ ):\x0c\x9d=SH\x5c!*gbH\xb0j\x90\ \x03\x17\x0d\xfb;K$\xb5\xe9y\x87\xa1G=cg\ \xbbi\xe8\xb5@3\xf9e`\x0bh\xe0\xf8\xe1Y\x07\ \xe2b\xb0\xdd\x8e\xa6\xdb\xea\xb8\xef\x06ny\xefr\xc8\ \xednM\xa3\xd1[\xd3\xb9\xbe\xe6\x9a;/z\xff\xaf\ \xbbG\xe9\xae\xb9S\xf0\xfc\xe9\xb5W\x7f\xdc\xaa\xf8\xe6\ \xfd\xcd\xbf\x011\x8f\xba5\ \x00\x008\xec\ \x00\ \x00\xed}x\x9c\xed}\xfbo\x9bW\x92\xe5\xef\xf9+\ \xb8\xee_:\x18\x92\xba\xef\x87;\xce\xa07Aw\x0f\ \x90`\x1b\xd3\x8f\x05f\xb1X\xd0\x12mk#K\x02\ %\xbf\xfa\xaf\x9fsN]R\xa4D\xf9\x15\xa7\x9dt\ \x98LO\xec\xcb\xefY\xb7n\xd5\xa9Su\xeb\xfb\xea\ \xdf_??\x9b\xbc\x5c\xae\xaeN/\xce\x1f=\xf0s\ \xf7`\xb2\xc3\xb5w\x9e\xe1U\xd4\xdd}\xef\xfd\ H\xbf\xde\x1c\xbd\xef\xb8\xe0\x9c;Z\xbf\xf5x\xb4\x97\ O\xdf\xf3\xc8\xd5\xc9\x93{\xef\xed\xc2\x11f\x02G\xcc\ \xae\xde\x9c_/^\xcf\xce\xaf~\xb3u\xea\xf1\xf1\xe6\ \xccc\xea\xd4\xe9\xcb\xe5\xf1\xc5\xf3\xe7\x98\x0a\x13\xde\xce\ \xc1'7\x07_\xbeX\x9d\xe9\x88\x93\xe3\xa3\xe5\xd9\xf2\ \xf9\x12\xb3v\x04=8z\xf05\x8e\xff\xead\xf9\xe4\ \x8a\xe7\x99:\xf1o1\x17\xaf\xdf\xf0+\xc4\xb1\x5c\xac\ \xfe\xb8Z\x9c\x9c\xe2<;nK\xaf\x8e/\xce\xce\x96\ \xc7\xd0\xc8\xc5\xd9\xab\xc5\x9b\xab\x07\x9b\x03p\xa9\xddS\ k\x0c\xae\x8d\xab\xe2\xbaW\xd7\x17\x97\xeb\x83\xa1r\xd7\ o\xce\xa0\x17\x1c\x9c\xe1\x92\x17\xab\x87\xbf9NPQ\ \xf7;\x0d]@'N\xaf\xdf<\xf4\x0fnN\xb9x\ \xf2\xe4j\x89\x1b\xbb\xad1\xad\x07\x9c\x80{y\xac\xd0\ \xa3\xf7\xbf\xdb\xf2\xe4$\xbd\xcf\xdd\xfc=w\x0b\x9b\xbb\ }u\xb4\xfb\xdeo\x97\xe3\x1e1\xf9\x9e\x1e\xbcS\xce\ \xf7\xbc\xd9\xd6#\xb9\xf0\x0ea\xbd\xb7\xcc\xef\x95\xe3\xf6\ \xdd\xd2;\x84\xb5\xe7nO\x8e\x97==\xb9\xefn?\ R\x8e)\xb68\x8b\x9f@\x90\xbe\xb5\x0f\x17dL%\ /\xd2G\x08\xd2w\xf7\xe1\x82\xac\xa1?9\xfeD\x82\ |\xd7\xc2\x96}|\xf8l\xb5\x84\x19\xfb\xcd[Uw\ \xdf\x94\xf4\x9b\xeb\xf8G\x0f\x82\x9b\x87\x14s\xbc\xd1\xd4\ 7\x18\x8du\x9e[\xf3\xfef\xf4u\x80\x08\xea\x9dc\ 1\x1a\xee\x1c\xfbt\xdc\xeco\xe7\xa7\xd7\xb0\xde/\xae\ \x96\xab\xbf\xd0\xa3\xfc\xaf\xf3\xbf]-\xef\x1c\xf5\xd7\xd5\ \xe2\xfc\x0a~\xe3\xf9\xa3\x07\xd7\xfc\xe3\x19<\xf5og\ \xden\x15\xa7\xb30.\xff\xe5\x8d4\x7f\x0a\xb9\xd12\ \xbeMn}Wn\xa9\xcd\xab\xc7\x13\xee\xca-e<\ l\xae-\xef\xc8-\x95;\xc7b4\xa6\xdb\xc7~\x02\ \xb9Al-\x97\xd4\xea\xd4\xcf\x93O\xc1\xc7\xf2\x93\xca\ \xed\xf6\x12\xdf\xabp3\xb7\xabrw\xd5\x08\xa39\xed\ S\xb9\xe0\xf7\xa9\x5ct\xff\x02*\x07\x95\x8a\xb3\xfe\x0e\ \x9d\x9b\xd5\x8f\xd7:\xb7O\xeb\xc2\xd0\xba\xfa\xb3\xd7\xba\ \xbd\x02\xa1\xc4\xde\x1fQ\xc0%.Z\xfd8\xfc\x82\x9b\ eF\x14\x1f\x00`\xf6{\x9c\xf7\x030\xb8]\x9d}\ \x16\x87\xf1v\xc3W\xbaK\x9fx\x99\x05\xd3K?\x9d\ \xf9j\xcaX\xbe\xfc\xd4\xb6us\xecO\xea3\xde\xee\ k!\xba\x5c~r\x0b\xf5\xd1\x965\xec\xb3\xacic\ Y\x7fB\xc1\xc1%\xe4\xb7Z>\xac\xf3\xb2\xfbbn\ \xe7\x8dn\xbdJJ;\xef\x90\xdfW_\xdf\xf5\x8aw\ \x9f\xcb\x1e\xfc\xfd-\xc2^T\xf8\xbb\xf7\xb4@\xb8[\ \x85o\xfd\x10\x0b\xb4\xd7\xe0\xed\xbb\xdf>\x13\x84\xfb\xf5\ Y\xf9\xe7\x9b\xa0w\xab\x83\xcf\xe9\xc7\xaf\xa3\xe7\x8b\xeb\ \xd5\xe9\xeb\xdf\xba\xe9\x8c:\xee\xf8O\x9cJ\xdd\x03\xcc\ G\x9d\xba\xa9\x8fs_K\xaa~\x1a\xdb<\xd6\x8e\x7f\ n\x19\xa6\x86v\xcf\x11\xeb\xccFKwd6\x8e\ \xc0\x1d\xfc\xddw\x1b?\xbe\xb9\x811\xb7\x7fz\xbex\ }\xfa\xfc\xf4\x1f\xcb\x93=\x87\x5c\x9d/.gO\xcf\ .\x1e/\xce\x1e=x\xb28\xbb\xba\xf3\x02R\x93g\ \xcb\xe3\x1f\x96\xab\xc7\x17\x8b\x95.2\xd6\xd4\x8e\x0c\xd6\ Zy\xfd\x86\x09\x8e\xd7o8\xb6\xb388\x10\xb7M\ \xe1\xf2\xf9%s\x1d\xca \xddh\xf5\xcb\xd3\xab\xd3\xc7\ \x84V[\xd2\xc4\xb1\xe7\x0b\x0c\x9e\xdc\x1a\xe5\xd3\x8f\xe3\ yu.\xbf\xab\x8b\xf3\xb37\xb7\x0f\xb3\xbb033\ \xcf\xb7G\xdf\xd8\xe8z\x15\xdd]<\x1a\x7f\xbe\xbc^\ \x9c,\xae\x177+i=\x12\x11{\xaf\x05\xb2:y\ \xf2\xf0?\xbf\xfd\xc3\x062\x1e\x1f?\xfc\xdf\x17\xab\x1f\ n\xd0\x1e\x0fX<\xbex\x81y\xde\x00Yf \x8e\ \x1f\xd2z.\xae\xbf>}\x0eq3c\xf2o\xaf\x9f\ \x9faMo~\xd89\x982\xbe\xb9\xa8]v\xb5\xb4\ $\xd0\xde\xac\xc7\xc9\xf1\xf3S\x9et\xf4\x97\xeb\xd3\xb3\ \xb3\xff\xe0M\xb6\xa0\xed\xb8\xe8\xe9\xf5\xd9\xf2\xeb?/\ \xae\x9f\xcd\xfer}q\xfc\x83\xeen\x83;\xc7\xe1\xa5\ \x97_\x07\xe7\xf3\xcc\xd5\x99K:Lc;G\xad\x96\ \x88\x9aN/\xce\xbf\xdeJ\xf5\xe6\xf5&\xdf\xfd\xf1\xcf\xdf\x85\x7f\xfb\xc0\xb7\xbc\ }?\xde\xed\xec\xf4xy~\xb5\xd4\xf4]\x8d\xf9{\ z\xfeB\x13w|q\x89\xe0\xe7\xc9\xf5\xd1\xd9\xf2\x0a\ ~l\xfe\xec\x9a\xba\xbau\xd2\xce\xdb\xe0\xed\x01\x09\x1e\ \xbf\xb8\xbe\xf8\xb0\x19\xfb?\x8b\xa7\xab7X\xce\xffw\ \xf2\xfb\xb3\xe5\xeb\x05\xb3\xae\x93?j\xe4\x03_o\xcf\ \x03\xe8X.\xcdu\xb4\xb5\xb5r\xbf:Z/m\xfd\ \xed\xe9\xcd\x92\xdf\xf1\x1b\x1b\xe3w\xb6x\xbc\x84\xf1\xfc\ \x8e?N\xee\xfc\xfatu\xf1\xe2\xf2\xf9\xc5\xc9r\x9c\ \xbe6\x15OwLc\x0f70\xf6z\x0f\xc6\xaf\xbd\ \xb9\xeaZ\x1f\xb8\x14`\xaa\xa7N\x12'\xcckk\xb1\ \xbb\xcc\xc0\xaa\x03e\xb5\xea\xf3\x977A\xf2%\xb4n\ +h\xdd\x187<\x10\xed\x01<\xda1\xff\xd9\x0eH\ o \xd1\xf99 \xd1\xc5j\x06\xf7\xf9rq\xfdb\ \xb5\xbc\x1b*\xf3\xfa\xa4Z\xb6sm\x18\xfe~\xd2\xa7\ 1O\xfe>\x09~r6\xf1i\x9a'/\xf1\x9f\xc9\ ?\xb6\x0e\x1b\x11\xf4\x13\x18\xa4\x870U\xbf\xbdKn\ \xf7/\x7f\xc7_\xb7\x82i\xfdu\xf5\xe2l\x8978\ \xff\x07\x90\x08\xa2\xed\xd5\xc5\x0f\xcb\x87\xbf\x89.^&\x88l\x9dk.\ \xe6i\xaa\xf3\xe2J\xa8\x18\x9a\xc6\xc6e\x9a\xa6m\xe2\ \xf8\xb3\x87\xb4\xe6\xbe\xa5\xe6\xc3\xbd+v+_\xf5\xb9\ \x04\xb6)#\xf9)\x05\x16;$\x92]\xf2\xd3\x9c\xe6\ \xbe\xb4\x9014Me\x92\xe34\x869\xed\x1be\x16\ \xfc\x14\xf2\xac\xa5\xa5z\xef\xca\x9c\xb9\x7f\x9a\xc8~*\ \xdf\x1b\xdbm\xf9`Q%\xc7\x05\x16\xe2\xb0N0X\ \xb0U\xffu\x8f\xf7\xfd\x99\x98\x8a\x7f\xbe\xe8\x92\xdb/\ :\xe0\x96\x02\xcbn&\xea\x8ee\x7f\xb7\xefO\xe1\xb3\ {\xac\xcf \xcctG\x98y\x1a\x0b\x85Y)L7\ \x05\xd8x9i\xf7\xca\xf2\x9f`H>\x83T\xee\xac\ N3\xf7\xd3\x18ol}H\x00\xcaS\xfc\x19\xba\xe6\ \xdeO>?\x8dg\xbaI?=\xdd\x1b\xa7\xf8\xean\ \x08\x94}\x81J\xea\xb5\x97\x9c\xf2\x08T\x12\xf3\xc0\x81\ \xa5\x09y\x8e(\xc5w\xc5)4\xd9>\xf8\xba\x15\xa7\ \xac \xcf\xf7^a$V\xef,\xb0!\x98[\xfe\x82\ O\xcdkG\xbf\x15am\x8a\x8a\xfdv\xd8\xb2)-\ \xde\x1a{\xfd\xe8\xc1\xceyo\xf0\xf7\xbe\xadE\x1f\xf4\ \xdc\xcc\xac~\xc4s\xcf\xc2\xdd'/{\x1e\x1c\x8a\xd5\ w\x19r{\x81~\xeb\x05\xca\xfd\xcb\xe0\x03<\xe0;\ ^\xd5\xe7\xbbStc\x03\x97/\x97Xh'\x1bm\ v\x8f}\x0e\xfe-\xda\x8c\x87z\x88\x08\xfe\xfa\xc7\xda\ \xc5\xf5\xe8\xbe\x0a\x915\xb4\x87\xbf\xfc;m\xfe\xb3\x09\ \x9d@\x0c\xd3\xc8\xd59\x06\xb0B\xf3\x9e\x95\x1ec\x8a\ \xef\x83\x0f\xf6\x1b\x94\xe5\xeb\xcb\x8b\xd5\xf5\x0c\xf2YZ\ \xbd\xf9\xd1\xb3\x8b\xe7\xcb\xa37\x17\xab\xd3\x1f\x8e\xbe\x1d\ \x14\xf4\xd5\xd1w\x8b\xc7G\xdf\xae\x16O\xae\x07\xa5t\ \xfclq\xfety\xb9\xba\xb8\x9c_\x9e?}\xcb\x85\ _\x9f\x5c\x9e>z \xac\x84\xa8\xba\xbd\xe5\xc87\xb7\ \x8e\xfc\xc4\x9a\xb2c\xc26\xf9\xf9\x0f\x9e\xf4\x0f4k\ \xef\x9et\x80$\xc6s\xdec\x8e\xc3\xbca\xd5!\xbe\ \xd3\xdc\xe7yu\xa1\xf4X\x01\x09(\x95\x0a\xd4\x89\xc3\ \xfe\x84 \x86\xba\xd0\xee\xd1\x85\x9d5{\xd0\x86\x0f\xb1\ \x1b\xed\x17h7\x9e\xd3n@G\x9eM\x84qh7\ \x0aB\xb80\xc9\x9e\x01/G\xfe\x84C\xeeS\x96\x83\ \xe9\xf8\x85\x9a\x8e\xe74\x1d1s\xdeI\x01m\x99\x8e\ \xdc\xe6\xa1\xd7\xe8\x8a\xb4\x80,\xc7\xb0\x1e\xc4\xc3\x9d\xda\ \x90\xee5\x1d\xb3|\xd0\x87\x8f4\x1eo#]\x7f\xae\ \xc6\x03\x81\x92\x8c\xc7\x9f\x08:\xccx\x90\xc7\xc0\xdf\xd6\ \xb6\x83f\xe5^\xdbqp5\xbfT\xeb\xf1=\x99P\ X\x8f?\x11x\xecZ\x0fC\x1dIj\xe0o\x1b\x0f\ \xa8C\x7f\x8b\xf1\xd8\xa1\x01\x0f\x0a\xf1\x01\xe6\xa3\xb8_\ \xa0\xf90\xeca\x91\xc9M\xccR<\x83\x96\xec5\xf2\ \xf7I,\xf7)\xcc{\xd1\x9a\xbfre\xf9YZ\x0f\ \xc3\x1e\x84\x9b\xbe\xdf\x0d[\xd6\xf0c+l\xc9\xd1\xc2\ \x96\xbf\xbf\x15{\x94\x7fe}\xd8\xc3k\xedM\xb7\x17\ W\xbc\x8b~\xb0X5\x94\xe0\x1b9\xbb0O\xdc,\ \xde\xc9\xde5\xdfZ\xba)]\x14?\x06\x81\xb7{\x93\ \xef\xdb\x8c\xfb\xb2/{\xc8\xb7'4\xe4\xb9\x8b.;\ e\x82Z\x0b\xb5\xd5\xc9\xf1d\xe6\xe6\x1c\xacI\xdc\x19\ \x8b\x1d\xcbd\xe6\xe7\xad\xd4X\x9b\xf2\xfe%v?\x99\ \xc5y\xaa\xbe6\x0c\xe1\xc7\x8c\x7f;\x0f+.%\xa7\ \xc3ZO\xa5\x16\x1e\xe7Br\xda\x022/\xa1\x94\x96\ 9\xe6s\xaa%n\x8f\xe1f\xd1U\xb8\x1f\xc7?w\ \x9f\xaa]'\xb9\xeaj\xe6\xb5k\x0a\xc1\xeb\xb1\xbaK\ \xb08\xbc\x09\x9e\xcfU\x1d\xd6k\x86s\x9b\x85\xb9\xaf\ \x14(/\x1dr\xf2\xdd\x1e\xc1A\x8e\xf6\x08\xcd\xe3\xb9\ \xec\xdcP\xbc\x18\xc2\x14j\xa8\x91\xb7\xc8\xb1\xd7\xae[\ \xb4\x14[\xb01\x84\xe3\x98\x1c\xde6\xe4b\xe7:\x1c\ \xa8\xc3\x1c\xe6%\xd9\xd5Z\xb1\xba\x88\xd4{\xccM\x0f\ \x8c\xc7m\xc5\xce\xac\x0dp\xeb\x9bI\x9f\xa7\x1c\x13\x1e\ %\xf6y\x0e=\xbb8is\xdfb\xc9%\xb0\xee\xb7\ 1$M\x93\x8a\x1fS\x81\xe08F\x09\x84\xc0 o\ \x1eC\x89A\xf8m^bv\x98\x87<\x0f\x10K#\ \xf2O\xf3\x02\xbd\xf1\xb8\x0b\xfe\x84\xb3s\xad\xd4\xa1\x9e\ [\xf1\x05c.\x17<\x1bn\xe3q\x1d\x08\xa4O\xe2\ \xbc\xc7\xe017\x11\x8fXK\xc5\x02\x8e|7_S\ \x9b\x866\xcf\xa9\xb7\x0aL0\xaf1v\x07A\x874\ \x8f-\xa5\xd4w\xc7\x5c,.6(\x8f*\xee\x03\xce\ o\x92R\xf7\xddIr\xa9\xa6br\x0a\x0e\x8f\x8b\x08\ \x85\xe5\xcf\x10v\x938\x03\x7f6\xe9\xf9\xdc\x83\x93\xc6\ \xe1\xd4\x94|\x98\xce\x12\x95\xd3\x95\xc4\xc9\x0d\xac\xbf\xa5\ \x12\x14H\xa8\x86d\xa7g\xdc\xde\xb9\xae9\xc7I\xd5\ \xee\x84\xc7\xccx\x03\x8e\xc2\xd8\xb4\x94'\xb8|J\xa5\ \x04\x12\xc3*\xa1\xee\x9e\x83x\x93\xec\xbc\x97\x1e\x95\x0c\ y\x14\x88:cJzO8\x12R*\x19:\x82A\ \xa8\xab\xd14\x11\x0b\xbf\xeau\xf0\x10\xbd\xda\xaa\ L\x85#Pd\xa80_\xafw\xd7\xa0\xfd<\xabF\ -S\x80\xbc\x90r\xe2Q\xf8c\xd5X\xc7\xe2\xa4\xf2\ \xf3L\xe8|\xb03\xb1\xa8\xfc\x84k/@ix\xf9\ X\xab\x83\xbeR\x04\x19\x02\xe8\x9c\x15@\xc6\xde+\x95\ \x15\x0a\xcc\xe7\xba\x19\xe2<\xe2\xa8\x08\x99\xf0%]\x8b\ fN \xd2*\x99\xe1\xcd\xa2\x97\x16\xc4\xc4:\x22\x1e\ \x86\xbb'S\x0cXG\xbcN\x86,\x1c\xe4\xc3\x97qT\xc7)\xb5\ \x1d\x13\xb6\ \xed!\x04&\x03\x00\x87\ C0~\xc0\x03S\xbarxu\xe9;\x16[\xe0+\ z\xfaf[\x010k\xd2\xb2\x08[\x98\xec \xc0\x16\ \xb9\x91Z\xcd\x0f\xc3;\x01~S\x0c\x09\xfe@\xce\x1a\ 8\xc3\xf3n\x0e\x0b!M\x88\x96 _yO\xdf\x01\ \xc6\x8bt\x0b\x08\x9f\x8a\x8f\x09\x0d}N\xb2\x97\xba%\ \x84\x0c\x8f,)\x00fK`x\xf8\xeeeG\xe0{\ ao5\xd4Yb\xce\x17\x86\xcck\x95X\x973C\ \xc7\x19KG\xaa\xc9ED\xcd\x84w\xa4\x7f\x15r\x03\ @\xf49\x10\xa3E8[\x13\x15\x5c.\x9eKB\xf6\ \xb8\xac\xac#\x1c\x19\xbc\xb7\xc5\x19\x10G\x92\xae\x22\x0a\ (|U\xfc\x92\x9an\x81WwjV\xe4\xf1\xd6:\ \xc8q\x03Q\x91`aI\xa4\xce\xd0\x89VhCa\ \x9e\x806\x86d\xcdE\xc1\x8b\xe1E!$\xa8\x04n\ \x8e\x05\x0eDO\x1fJ\xc5\xf4\x84\x0d\x85\xf8\x82\xef\xc8\ \xc5\x0e\xb0)\x8f\x99\xa1;An\x1d\xc7\x0cx`\x96\ \x1f\xd3\x01\xdb\xa0\x91d\xab\xc0\xf5d\xa1\x09\x03\x8d\xc9\ \x10\x81\x89\x0a\x86*N\x14\x82H\x9c\x9e\xf8\x85P\x80\ *\xe9!o\xcc>l\x0a\xc1S\xa5\xd1\x97\x05\x87Y\ \x87\xcd\x10f\x83#u\x94}.\xad\xd1z\x06\xc28\ \xa0\x89\x9d!\xc6<4Y2\xde\x9dMJ\xe92\x00\ \xa5+\xb4mF`Q\x12\xcd2\x9c(\xddj\xe1|\ A\xcb\x9a\xd3a\x9e\xaa\xb8\x12\xb6z\xc4\xd4\xb0\ \xaaXuDk0\x0a^\x025\xf3\x0a\x0d\x15\xc6\xf1\ Mn\x1e\x96\x88\x06\x1c\xee\x800\x22\x05S.\xe0\x0a\ W\xa4\x930\xca\x09\xda\x84H\x0f\xc0R\xab\x02Q\x06\ \x0c!\x84\x8e\xa0\x02\xffF\x8d!\xa2\x8cE\x1e+\xc1\ \xe7R\xee\x84\x98\x94\x1f\xc2\x13\xdf\xcc-\xc1\xa6R|\ \x90_\xf2\x16\x11y\x18\xc8h\xa6\x03\xd2\x8c|T{\ 9\x08-\x9bfb\xe5y\x8b\x86!\xc9@\xdb\xc1 \ +(\xe4\xa8\x10\x9f\x0c\xc5\xcdP\x07z\xa6\x02\xbb\x11\ E\x94\xe8\xa5`\x00+yx\xb4D\xa77T\x0c\xb1\ \x97\x8dA\xe9\xb2X\x01*i\x93\x9f\x00\xc6j<\x0a\ \x96\x0f\xe8\x9a\xe0\x12\xf1T\x0d\xa6\xea\xf8Sn\x14\x1a\ c~[\xff\xf0\x8fE\x8b\xb4\xb9\xc4\x15\x01\x0c\x859\ \xc2\xd4@\xf7\x81|\x1d\xae\x86\xe9\x02\xac\x81\x92@e\ \xb1&K0\x8f6x\x01\xac\xd7F\x99A\x05\xb8\x9f\ \x86\x8b\x19\xde\xcb\xf3\x9d;\xa6\xa6\xcb\xa3\xf2\x02\xfb\xf7\ \xc4\xc1j}\xc8f\x91\xf7\xa3r\x961\x1c\x87\x93;\ TN\x10\xba\x02\x98N@\xf8\x00\xd3\x81\xaeMx\xcf\ \xa7\xa2\xe7\x84R\xd2D\xc0T\xd2\x8a\x95f\xb6\x1e:\ +t\xde\xc9v\xc8\xd8{\x86\x19aD\xe5PO\x09\ \xa2\x134\x1a\xb7\x11F\xd8\x16\x10\xe9\xa5\xdd\xb1\x0cp\ \xc0\xc8d\xf01\xb1\x0b\xaaa\xe5\xf1g\xba\x228e\ #F\xe0\x94\xbb\x9cFf\xdck\xd0#\xe7j\x0b;\ \x01!\xd37&\x02\xb2\x1cd\xe0\x22\xd5\xaeM\x84u\ \x9a\xa1O\x05\x03\xc62\x14\x85s-\xcb\x5c{,\x15\ \xc5\x01\x8c\xf5\xab\xc0<\xb4\x17\xb8\x0bW\xc9\xa1)z\ !_\xd0\x83\x1c\x08\xb4K\xf6\x89\x813-\x18\xfcx\ \xd7u\xf8\xd2r\xde\x88\xbfR\x97CI\xebp\x12\x22\ NA\xbe\x1aV\x09\xe6Xv\x17\x82\xb61\xa2\ \xd1\x0e(:\x0c\xd9\xd89\x1a\x15Qq\x5c\xce\xb2g\ @\x05\xd0dFK\x0e\xc0\xae\x9a\x1es^*\x09!\ \xef\x8d\xe9\xc6d\xc0\xa5\xe2\xe10\xc6P\x8d\xa83a\ \xaa\xa0\xf1UD\x0d\x84\xd5\xd6d\x9b\x07\xd2\xa1\x9a\xe1\ V~\xd0x\x08\xa8DL\xdd\x8c\x91\xac\x80\xe35\xbd\ \xc6DD\xae\xbaL\xca6\x1a\xfbY\xb2c\xe4J\xf2\ \x0f\xf1qu\x16\xd4\xe3\xe6\xc0A\xc2\x18\xc9\xa9\xb5\xc0\ \x98\x8aT\xb5\x04\xb8\xa2e\x95\x017C\x11\x15V\x89\ \x1c\x08P+G)S\xc8\xdbk\xc6<\x10/\x9d\x16\ lQL\xce1\x8c\x8f\x9d\x986\x93\x92\x06\x1an\xa2\ \x93\x0a\xd0=|r\x11\x90It\xef\x98\xf7\x88\xb5\xe6\ \x89:\x18\xb8p;\x06)\x12@\xa1\xb6=\x94I\xb7\ \xa55c\x87\xa8\xc8\x96/\x1e%\x06\x11\xb1\xc0\x90\x82\ \x9c\xa5pI\x93U\x13\x1d\xc6\xc7\xec\xa5\x89g\x83\x8f\ \x04\xd4$\x0f\xec\x014]\x11;\x08\x07\x129\x84(\ \xces\x9b7c*\x9ci\xc4p\x89\x227( Q\ v\xf0f\x16\x5c\xc01\xe1\x8f\x9c\x07\xdcV\x22\xd8\x8c\ \x88.52\xb9\xa4\xa8h\x11\xd1=\x16\xc3\xc4\xe2\xe9\ \xd4\x0c0F\x19\x87\xca\xa6\x90U$1\xd4\x87A\x0e\ W\x10\xaeH\xc7\xdb\x159\xc0\x8f3\xc2\x84J\x02N\ F*\x18\xc2\x96\xc2\xc5(\xd9\x89\xfa\xc0\xf2v\x8c\xba\ \x02-u6\xee\xc4\x91\xaf#4\xa0\xae(\xc4\x0d\x8d\ -\xb9\x88\xf3\x00\x85\x8dtA,\xd3\xc9\xc3\xc0\x0aV\ r^8>SN\x90M\x83\xb10\xa2\x0f(\x9e\xa4\ 9]r\x8f\xc6$@\xcd*\x1f\x9b(\x22q\xad\x06\ \xcd\xb7y=L\x80\xc2\xb5\x8c;\xcab\xe2\xc9q\xa6\ \x02\x8dZEd\xc5J\xf8.\x83\x89\x08KC\xf05\ N$?l\xa8h\x0b\x06\xb7\x96`\xf0$0dS\ 3@\xa3\xbcE\x86C\x8bf\x1a\x10\xc5T:T\xdc\ \xccW\x19U`\xa9\xd6\x0d\x17\xe5\xcczJ\x00)\x92\ \x84\xa2\x14+1&\x04\x03\xa9\xe6\x92\x8c\xe6k-\x8b\ \x1dM\xf4s\x06\xbc\x18uNI\x5c\xe3\x8e\xd5\xfc5\ \x0c\x18\x03(\x88_\x90\x98,@\x0b|\x06G\x8d\x14\ 9\x0cx9\xd2^\xa9k:\xe1\x16\xcc\xa08\xe2\x22\ \x1e\x83#\x9c\xacC\xa1-\xe3Z\xa8p\x06A\x07\x01\ P\x90M\x17\xf0\xf3\x96\xfb\x18C\x0c\xb2\xa1N\x03\x82\ \xc0\xf3B\xdb(\x7f\x1f\x86;nJx0\x86C\xec\ \x19\xf4\xc4\x0c\xa0+Y\x06\xf6\x9e\xf3b\xfahU:\ \xe3lL7\x02W\x85\xde0=\xcc?\xc1\x92\x00\x89\ u\xe3\x7f;\xdc\x025\xb7\xc3\xde\xc8\x93&G\x04B\ \x92\xad\x8e\x5c\x0e\xde\x82p\xca\x0bz\xc3D\x9c)N\ \x8a\xe4\x14E~\xc0\xbe{\xc5\x80\xb1\x99b@I\xa3\ K\xb2\xff\x88\x94\x8b\xac?m}\xd1b\xc3\xf3W\xf9\ a\x04\x19\xc5\x8b gH\xaf\xc0\x06\x91\x03\xe2\xc7\xe1\ 7\xcc\x10*J\xb0l\x81E\xeeZ\x80b\xf9\x10s\ \x9bY\x1fC\xca\x1f\xc0\x1a\x865\xd3S\x8c\x94\x82X\ ]\xd5\xab\xe0\x0d\x82d\xf7\xa3\x99\x1e\x00\x92\xe0\xe5\xc4\ \x15\xe9)\xa9\x10\x85o;\x02%\xa7T\x07\xf3\x8b\x22\ \xf91\x89rM\xce\xa6\x9f\xb2\xca\xb2\xee\xae\xa9\xf7\x0b\ I\xabl\x00\xac\xae\x83\xa1.\xe1\x9c\x99\xda\x8aD\x97\ \x11\xf2:\x0cA\x84\xb7T-\xc3\x09`\xcf\xe3\xc9&\ y\x22\xd1Rk\xba\x91\x83\xb0\xb0\xe2\x90\xe0\xf3\xcbX\ \xe6\x9cP\xe3\x95`\xa6\x83\x910-\x89\x83\xc0\x9f\x80\ J,0\x83\xediY\xbc\xaa\x0b\x96\x22&\xb4\x12\x1e\ \x87k\xedF)c!p\xaeM\xb2\x93Zc2\x01/l\x11ev\x9d\x1a\x08\ \x99n\x92T\xa1#\xf84\xac^\xb9\x07O\xda\x0eo\ \x8d\xe8\xcf\xb6\xae\xadG\xb5\x95\x9a\x84Z\xb4Y\x84\xd1\ \xc3-\xba1\xe9\xf0Ff\xd8\x01*\xa0\xa1\xb6\xd7\x01\ F\x07^@\xda\x0a\xec\xa6-\xa6\x0aNI\x98kF\ \x13\x02\xdf\x18\x0c\xc7\xc0\xd5\x89\x22\xa5\xaf\xb2~\x03\xe2\ teKS\xe1NG\xa3\xf1I2\xf0\xe6\x89\x14\x93\ .\x88UF\xbfI\x1b\x82{TE\xe8\x09\xa7\xea\xc0\ }\xfc|\xa5\x0d\xd1<\xc4.n\x12\xd1|u\x22\x03\ ;[\x0c\xd8\xc7*\xb8\xb1\x0c\x0b\x9bv\x95\x9c\x05o\ @\xfa\xbb;\xdb\xe5\x97\xc9\xa7\x9a\xf3\x0c\x5cN\xb6E\ \xdc\x91\x93\x91\x7ff7uI\x81\xbb\xd9\x0b=ti\ \xa4W\xb2\xc1\xc8\xe2\x0d+\xe5\x1cF~\x02\xc1M\x1d\ \xb9\x88\x91\x89\x19Ui\x83u\xa6\x817\ \xb3\xfeM\xc0\x1a\xa4\xb3\x05\x5c\xfd\xc8\x13\x12i\x88\xf0\ )\x0c%\xb4\x09\x1b\x81\xaf\x17\xdfS\xf1\xd8\xccUb\ M\xa4T,\xe8\xcb2\x81\x81\xd6q\x9a\x8aEk\xf3\xc8\ \x95R\x98\x1a\xb4\x04d'rc\x1b9\xeb\xcd&\xba\ \xe3\x90\x7f<\xe4\x1f\x7f\xb6\xf9\xc7\x06\xe7A\x8aUu\ \xc5\xf0\xbfP\xb2o\xb8&`\x9b\xd9\xb1\x95v80\ \x8a\xc0\x18;\xf2(\xdac2\xae\x13\x8d\x14J7\xb3\ \xda\xd3\xc6\x00|%h\x923\xbc5g\x97\x13\x17Y\ q[\x83\xa2\x07~\x22\xa0\xc7\x9d!EcY\xcb\x14\ \xd6c\xf0\x06,#\xf7\x0a\xc3b\xafq]\xfdU\xa8\ \xbb0t\xae\xab\xaf,\x84@\xf6\xdbGa\x86\xcaV\ G\xb0\xc0\xfc\x22-\x17J\xa3\xbf^\xbf`_\xbf\xe0\ \xadO\xfcn%\xe4\xd2\xa7\xefA|\x0cX\xb6\xef\x03\ \x06d>\x81u\xd8\x83\x98\x88(\x8f\xca\xb1\xcer3\ #\x9f\xc9\xcaX\x06\x0d\xb1\x88\x85\xbe)\xb2\x03\xd3\xcc\ \xaa\xd2R1'\x9aF\xc8\xe3l\xab\x05\xdb \x06\x83\ \x9e\x81\xf3\xa5\xa5\xc1A\xab\xcc\x0aE$\x0a\x83y\xe5\ R\xbe\x9b\x04\xe5r\x11\x1cM\x13C\xb4\xc0:\xd9\xc0\ \xc0\x95ay\xec\x5c\x8d\x80\x89\x960\x84;1\xc3H\ \xda\xdc\x0f^(\xad\x09\x09\xe7\xb4%\xa1\x90\x90\xb7\xf0\ \xbd\xb1w\xb1\xc5\xd4E\xa4\x98\xf2\x01\x8a\x07`\x8cE\ x\xc1\x92\x04\xe3\xcd\xa0\xdat\x94\xac\x1f\xd7\x08\xecN\ \x91\x0e\xe1\xb5Eq2\x0d-N,\x96,n\x91\xdd\ \xf5\xc4Q\xc0K{c{B\x0cj\xe5\xc7\xea\x8fa\ \xa3\xb2w\xcd\x18\x06\x96\xd2\xaf34\xeb11\xadc\ \x8dWVa6k\x89\xcc\xcc\x9f\x128\x80$Q\xe1\ a\x0f\xecPE\x87\xc6lq\x1dq\xb3_'\xc0\xc8\ `+\x08p\x8e\x11\xab\xb0GO6V}PR\xd5\ \xabcm\xb1t!\xa4\xa3\x9e\xb9J\xfcTcBT\ =\x8a\xbf\x8f\xde\xb0\xec\x91\xa8\x1c#\xf3\xd2\x96\xb1f\ oee/\xc5\xe7\xb1d\xbd\xd8\x12/>\x0f\xfe\x91\ \xee\x8dy3\xb8Mc\xfbY\x00/\xb8\x97\xd8\xfd\xd4\ \x92\x90\xd5\x99\xa2\xb1\xafq+\xbbc\xe4t\xd6v\x8f\ q\xb7\x1b\x89\xc9\xac\xee\xd4x\x1d\xee\xc2h\xb7\xf3\x92\ \x09\xd8<\x7f\x82\xc4$qP-\xfenb\xb2p~\ n'&#\x8e\xed#\x01\xc7\xb2LE\x9b\x95\xd4\xa8\ MyF\xe8I\x1c\x0f\xb0\x12\xacx\x14v\xad\x8a\x8f\ `\xb5B\x949L\xec i-\x9f\x01\x98\x94\xae*\ l\x93\x96\xc5\xcb9v\xb8\x9dn\xa8'n\x00\xa9p\ \xc2\xec|\xcdO\x9d\xb0ys\xe0V\x11\xb8{8\x86\ PI\x18\x926-$=\x01T*\xeb\x14\xba\x9a\x5c\ \x16\xde\x01X.s\x88),\xe8G\xa4\x0f\xe8\xac\x8e\ \x0c\x16`\x89&eXS\x98\xcf\xccF\xb2\x91\xe9\x8e\ },\x12J\x1b\xe74Cdp\xd4\x8dc\xec\x89\xa6\ \xed\x18@\x86,@\xe0\x18#\xf1>\xe0\x85cM\x89\ \xe6\x1c\xea\xaf\xac\x81#\xdfdE\xc0\x5cBV9\xe1\ \xa3*.\xb6\xc7\x22\xf1\x88%Q#Y\x92x\x93E\ %Nw\xdc\x1cq\xc8\xa2\x1e\xb2\xa8\x9f \x8bZ\xd7\ \xcb\xddY\x91Pn\x8c\xae,\x0f\x18\x8b\xd2Z\xbdi\ \xc7\x1b\x8di\xad\x83\xf1\x86l\x952\xf5\xe4\xfd\xac\x8a\ \x03k\xc1)\xb3\xca\xcdk\xcc\xb9\xb1Ir\xd6\x12\x08\ \xeci\xee\x8b\x08\x04\xf8\xbeb7`\x1e\x09\xe0Di\ T,\xc91\x06S\x22\xdb\x9b\x80\xa7\xd5\xca\x10\x86>\ \x1aC\xf2\x93\xa4Q\xc3\x9d,j\xff\xe7&Q\xdb!\ \x89J \x16\x8a6%m%Q\xe9P\xe3z\xe3\x97\ \x83$\x10\x96\ [k!\x12:\x10^\x91m\x8f\xaa\xb6c^3*\ @\x09Y\xbb\xdc\xf8\xdcJ\xd5\x10\x96p\x0b\x9bU\x1d\ r/\x850\x86_w\xd6f9\x03\x99:\x18r\xe8\ \x93WeC\x94\xc9\x22zI\xb2Y\x91xPyW\ \xac\xae\xb1\xa5\x93J\xd8,\xa3F\x02@\xf6\x09\x82\xd4\ \x89\x91v\x8f\xc9X\x825%c\x89\xbc\xc8\xb7\xb3}\ |\xe2\x82\xc8\xfa\xe4@\x0a\xf9]\xc9\xd8f\xf6\xf5&\ \x19\x1b\xbd\xed@\xdcJ\xc66\xbd\x8a\xe3\xe7?\x98\x0c\ C \xc1\xfc$k\xe2H\xaf\x13\x9bvf\x07-\x83\ \xadO\x5c\xd3\x86w\x1dC\xab\xa9\xfcuf\x1fy-\ \xc7\xc4\xf6\xc5\x9b\x011\xe7\xcc\x97+\x9dE\x05\xe6M\ \xbbg\x8e\x89\x8f\xdcl\x86\xe0.\xa2\xd2\xc6x\x9b\x22\ \xba\x8d\x08m\x04\x94\xf0m\xca_\xc1ID\xa3\xf2j\ #\x16\xde\x19\x82\xcd\xee\xfa\x08\xc1L_fP Y\ I\xe0*g\xc3\x9d\xbeJ5\x97\xc6\x8d\xc3d\x0f\x88\ aRTcq\x0d\x1aC\xc1\xec\x90:;7\x98\xf7\ >\x08\x0a\x87x\x98\xafM\x0d6p\xc9&\xf6\xc9\xe2\ xe\xed\xf9LX\xd9\xaa\xa8s\xc52\x99\x9c2\xd5\ P\x12\xb5h\xc9Xgv*\x02\xe4 \x14S0\x89\ \x0a\xc31C\xa5*)\x9c\xbd\xd9e\xbcu\x13\xa3\xef\ aw\x0dF'f\xc5\x08u\x18*\x9b;\x8a\x9eI\ B\x8a9u\xcb\x06%\xdb\x08#\x125\xc9\xe1%~\ \xf0b\x88\xb2X\xc6_\xdb\xa1\x8d\xef\x06\xbe\xd4g\x0b\ <\xf7\xf7\x18\x04qU\x1bs\xb9\xdb\xb8+5N\xd5\ \xc8z7\xc6\xf6\xc5>\xbd\xe2\x9a,U\xa1R[\x1a\ \x8c\xbc\xa1\xba\xd4\xc2\x9e\xcat!\x5cv\xca\x09s\xdf\ \xbc\x0fF\x0f\x14\xaf\xac!\xbc`1\x8a\xa5\xb0x\x8e\ \x13\x0c\x903\xc04^\xc6\x12\xff\x85\x9bi\x14;\xe1\ \x1d\xcc\x11\x15\xf3\x99\xecw\x1f\x0c\xcc#\xb4\xaeJ\x87\ \xf4\x91\x07\xcd\xa1\x0a\xc2\xf5\xa0<\x9a\x00=\x9c\x1b\x17\ 6pN\x09\x8a\x0f\xbd\x87\xed\xac\xe6e\xb8\x89_\xec\ j\x8e\x96\xea\x04VV\x91Gi&82\xa1\xa2\x95\ \x00\xdeG!\x22\x99\xfcl\xb9\xc2\x01\xc9\xd8m\xd8S\ Q\x00V\xe8\xc0xE\x06z\xa2\x04b\xd1\xeb\x92\xad\ \xf6\xfa\xda\x8b\xd9\x18\xc9\xd7\x15\xf8`\xe93YUE\ \x0e\xfc\xd4K\x92[#\xddb\x09e8&}N`\ =tH(\x1f\x12\xca\x9f0\xa1\x9c\xe9@\xc4tf\ \x0b\xd6\x11{\x92Kq\xa2Jz\x19\xf9\x9dj{*\ IP\x19\xefH:\x839\x1f\xaf\xfb\xd0\x0d\x1e\x12\xc3\ \x87\xc4\xf0\xe7K\x0c?\xd7p`j\x8f\xd44\xf0e\ \x08\x96\xe8\x8c\xfc\xa2\x8d\xf1.\xb8\xbfR\x98\x88\x1d\xaa\ \xb7\xf6\x0b\x84`\xc44P\x14\x05\x06\x89_\xfe\x12%\ \xc5\x0c\x9d\xd9\x8eB\x0c\xc7\x09\xcb\xad\x8e\xb3\x9a> \ \xb2\x1e`\x80J\xe2\xceX\xc9\x12\xdc\xd8\x1b\x0a\xa5\x16\ <\xcd]\x9b\x85I\x04',Sz\x06\xa6\x13\xb3A\ \x92\xc2\xfc\xa5\x1c\xadc\xc1\xb9\x84\xc1\xcf\xc9\x08\xb1\x92\ \xbd\x1b\xa4\x06\x0cR\x14~\xab\xac\x96\x8f\xbb\xc7\x15\xcb\ \x1bm\x0dqC\xea\x08\xc00\x03\xa5\xd9\xb4\x12\x02\xd8\ J\xceUU\xacp\xba\xf6\xa16\xc4\xa3-\xdd\xa4\xd8\ a\xeb,\xc3\xce]\x14\xa2\xba\x03\x15G\x9a\xc3\x0fd\ \x8c\x12\xffL\xce\xd4\xd2\xbcil\xf1\x865\x88\x1c)\ \xdd88\x1a\xa0\x92\xeb@A\xf6\x89\xb5\x0cQ\xc8\xbb\ j\x03\x83\xec\x0c\x09H?b\x89\xae.\xfd\xc23l\ K\x22\xf3\x0a\xa3!\xff\xe1\xa8\x14\xcc\x16\x19\xd0\x0e\x0a\ L\xa5\x13\xddY\x15\xa4\xbe\xe7F\xadak\x1c1\x0d\ \x8d\x1f\xb2\x0b\xc6\xeb\xe9c\x1f\xb4\x06\xea\x96\xd0\x00i\ \xc4\x15$Q}\x94[\xe8Jt\xc3\x15t\x95\x06\xd2\ _(uHi\x91/\xa4\x1d\xa7\x97R\x95f`\xf9\ \x9d\xfa#\xb0\x00\x9f\x91\x05\xeb\xff\xb5%\x98\xf5\x95e\ \x93\x84/\xce\xbeZ\x07\xc8\xd5k8$\xe1\x7fFI\ \xf8\xef'lH\xc3\xcd8I\x1b2\x82\x0aj7\x9f\ \xe9I\xa1\x8f\xd2\x11aV\xba\x04\xe8M\xb2\x94\x22Y\ \x1f1w\xac\xfal\xc3\xad\xb4\x91U\xc5\x99\xfa~ \ \xc39,\xb4\xf5\xc4\xf6L\xec\x08g\xdeK\x1d\x96\x97\ \x9f;J\xeb\xad&A\xbb\xae\x98\xc9\x90\x1d\xd4\x17\xcd\ d?Y\xda\xa8\x1cY\xaf^m:\x98{V\x0c\x15\ \xd8Wg\x1c\x15\x06\xb5S\x18\x0d\x08\xadb\xcd)J\ \xc4t\x01\xdf\x10d\x90\xfePd\x8d\x05f\x00\x0c\xf1\ i\x10YGC\xe0D>@\x22\xa4Y\x9d}BL\ \xcb\x0cV\xddg#\x89\xa0d\x0aq#B\xafD>\ \xc2\x17\xd1+a$\xea\x99 I\xa9\xcaJ,\x0f\ \x0b\xf5FU\xee\xba\x88\xa5\xd68(\xafPv\x06\xb0\ \x9c\xdcX=\x81u\x11V\x8bS\xc8;\x84C}\xc4\ \xa7i?\xa8\x038\x1fAU\x7f\xdc\x13F\xb3\xc4\x22\ !g\xc4'3\xe1Lb\x03\xa0\x8c&C#1$\xf8O2,q\xef0\xe0s\xe7\xcb\x03\xb7\ 4\x0e\xb1\xebp&,j!1Xc\x9dTM\xd9\ \x9a\xc3\xb0\xb5m\x80\xc2\xdc\x8c\x1d[\xba\x81U)\xd9\ jp\x8a\xf6\xe3\xca\x8b\xe1a\xe3\xd6\x90\xba,\xc6u\ /\x0a\x98\x95\x9e-\x9e\xa0\xfd\xb5\x5c8\xc9\xcd[%\ _\xac\xe28T|\x1d*\xbe>A\xc5\x17\x81B\x1d\ \xed\x86\xb9i\xbeZ\x91R\x5c\x1f\x8a\xb5W\xb5{\x1d\ 8\x8a4J\x1a\x15\x95V\xbc\x94\xf9\xb1\xf3(\xb2\x16\ \xd6\x93\x16\x9bU\x900YE\xac\xaaL{b\x84\xe1\ T\x82bc\xb9*\x8d^HC\xaa\xd3\x12?F\xce\ \xa8:\xf0C\xd1\xd6\x16\x82\xba\xc6h5Eg\x8d\x22\ 2\xe1\xa6\x95b1S\xa3G\xcfj\xfd\x89eZ\xea\ xYm@\xa7\xa2cf\xfbN%\x16\xcb8\x8aq\ ;jJ\xad\x06\xdb\x84\x81\x0a\xf0X\xcce\xb6?\xc7\ `\x0cJU\xfffz\xfd8z6\xb3\xd9\xce\xd8&\ \x1fG\xbd&\xd7\x98\xf2x\xfc\xc6|\xca\xcd\x08\xdc\xa4\ \xf8\xc5\xe93\xb2f\xef\xd9\x8a\x92\x1f\xa0e\xa5A\x18\ \xedd\x80\x94(\x06\xb8\xc1Q=\xe0\x11\x0d\x06kf\ \xce/\x9d\xd7\x81Y-\x7f\xc3V\xa4f\x94\x99+\xee\ \xa2\xf5\x99\xa9&$\xadL\x8f\xaa\x0b6\xb1\x9e\xbe\xa8\ \xee\xd8pFDu3+LF\xa7\x08\xedT\xa8\xca\ T\xc5t^\xcd\x100\x81\xb6}\xdc\xb1\xd0\x02R\xef\ \xdc\xb4\xae\x0c\x1c]H\x0d;CL\xaf0\xe97z\ \xe7@\x83]\xb1\x9c\x9a\xa7\xa1P9-\x80O\x16U\ \xc6NK\xbe\xed\x0c\x0a#\xaa7\xea\xb0\x82\x86c=\ \xdb\x00\x0c\x92\xdb\xf6\xae\xab\x02\xd1\x89s\xb3|\x9a\xf6\ \xc6\xb3%\x94\xd5\x1b@\xe3\x9d\x8c!\xd3\x07\x96)a\ \xc3o\xfb\x10}S\xbd\x81\x88O\x97\x8d\xf4\x86\xc1\xb1\ \x9e\xaf\xdc%_\xc7\xd7\xd5SV\x1fs\x92\x1a\xd5`\ \x0b\x8cB\xeb*\xc6\x1a\xcc\x91hJ\xc6+\xda\xc4n\ <\x11\x15\xabA\xb7\x15V\xdd\x8c\xb1_n\xf6\x83~\ \x84\xa1O\xe2\xc1\xb7*\xaa\x22\xd1V\xdf\xad\xa8\x8a\x00\ B\xb5\xfc:+\xaa\x82e\x0c*t\xca\xaaJ\x9bJ\ ?dWX.\xc45\xc4\xe8$\xedTTU\xfaN\ \x9e\xc7\x96\xfb\x02\xff\xc0\x11\xfc\xd4;\xf1\x8dk\x88\xfc\ ,\xa1j\xd1\x15[0\x8cfY\x91y\x0c\xde\xaf%\ \xab\x95\x84oU\xcf|\x9ad\xa5\xd3{\x90\x83\xad\x98\ )\xad~\xfc\x1c\x83\x95S\x91\x0a\x97\xb3\x80\xddj\x96\ \xb5\x8bjn\x01\x1f\x03\xc8\xa5r\xaa\x1c\xfc\xa1\x9c\xea\ PN\xf5\xf3*\xa7\x02\x06\x19\xbe\xd0\xd1e\x0a\x116\ 5c\xe4LU\xaf:\x85}\xdd9\xf8\x05\x8e\xb2\xd3\ \x9d\x83%\xc0m\xb7;GT5\xa1U*\x05S[\ \xac\xfd`\xd3O\xd2L\x0b\xac\x852\xac6S\xd2Z\ \xbc\x0cD\xac\x82\x96Z\x13\x94\x94M\xfcr\x05\xfd\x8e\ \x87RY\xc0\xc1\xf5,\xb5a1\x96:\xdd\xc3y\x14\ \xeb\xac\x875\x14\x83\x8cQ\xa9\xe6;\xc6\x10\x05\xd9Z\ \xb7H>\xc2\xca9\x03;\x08.\xc4\xc2f\xb6[\xd4\ \xf3\xc0X\x16m&\x01\xc8\x19E)\x95)\xd0\xc1}\ 4\x0b\x91\x1a\x8b\x8a\x8d\xdb\x8b\xc5R\xacx\xb5h\xa6\ \x15?\xcav\xb0f\xd7P~\xaa\xfc\x0c\x84\xd6-3\ \xe0\xd2R\x12\xc0\xd6%r|\xdcA;M\xac\xbe\xbe\ \x067:mU\xeb\x15\xdeHSZ\x93\x9f\xaa-\xe8\ \xac<\x0b,\xbbR\xb2\x83\x85\x09\xca\xba4\x8bK\xa1\ \xb7-\x8e\xec\xad\x1afy\xe9\xd8\xe8\xb5\xb7\x1e\xc2\xfc\ \xb6\xb8\x16\x09\xd6\x87\xdau\xb1}\xa5\xaa\x0d\xf8\x0d\x8e\ \x89\xed\xab\x17\x85T\x99\xce\x93>A\x1f\x94w\xc1\x03\ \xdbz\xb5\xe4\x80\x80C\x11\xf6qL\xf0\xc8\x8c\xb2\x9b\ \xa6\x95N\xb7\xa6\xb2\xba\xc8\x12\x0bs\xceq\xb0SP\ \xabl%<\xd0\x00o\x942\x13\xdb\xa3\xb3x\x0a\xb9\ \x0ex\xcb\xa2\x0c\xf3\xfe\xd0\x0b\xe3\x95\x8b/\x96\x82\xce\ \xd4\x1aQ\xa04\xba&\x8f&\x05\x14\xc6o\xcd>\xeb\ \x92D\xe2sA\x06v\xfc\x9b\xa9\xd0\x9c\xec\x13\x19=\ ,\xdf\xb0.@H\x22a\x1d\x9b@M\xd4T\x00\x97\ 7\xc7\x8f_T\xad\x06\x9a\x1e\xe6\xae\x89cT\xeb\ \xd3\x99\xd1\xb1w\xb4o\x06y!2I\x86\xe6\xc2\xa8\ \xe4j\xce\x8am;\xad\xc6\x86\xae@f\x17Xm\xd4\ \xb0\xd1cg\xdb\xccS\xcc\xb6\xb0\x05\xd1\xc8q\xc3\x1f\ \xa7\x91\xd0`b\x06A\x1c;u\xc4J=\xb0\x9a\x0d\ rm\xd6\xa8\x92\x91\xde\xf8:P\xd5\x87@\xf8\xb1\x8a\ \xda\xba\xa5\x16\x00_U\xb4\xc1\x86\xfd\xc1\x8c\xb1\x1fh\ \x14\xee2W\xf5\x9c\xcc\x032\xb1\xa9z\x961JL\ y\xba\xb1G\xc1qEN\x06\xfc\xb6\x84\x1c\xa3&%\ 2\x13\x81\x0b\xeb\xd5`T\xa22\x04PY\x84\x8a\xa2\ =I\x9b\xab2\xc1B&\x96Vte\x1d\x81z\x94\ \xc0f\xb1%,\x02\xdb$0\xe6PW\x04\x08\xaaO\ \xb6\xbb\x22X\x1d\xa3\x83\x954\xe1\xb0\xc1\xcfD}\x81\ \xaa\xa1\x1f\x9e\x8a\xc9\xa0\xbc\x12S\x8a\xde:\x82\xb2\x0c\ 0\xd6C\xfd\xdaOQ\xbf\xf6\xfd\xc4\x03f5b\xc3\ id~\x9c\xd5\x06\xeb\xca\x0a,)\xf8\x183\xa2\xb0\ \x17\xca%\x93h\x90\x05gI\xabSbA-\xd7\xf2\ \xda\x1d\x1bW\xc2\x9c\xaa\xd2\xba\x9d-\xffl6\x18n\ )\xd3\xc3\x8cx\xb1\x8a\xb9\xcc2\x85\xc1\xf5\xb3\x8aK\ F\xa62^U\xb6\x90\xcd\xb8\xb4\x94\xf9\x85\x14\xab\xaa\ d\xc0\xcd\xa1\xc6\xac\xbc\x0a\x8c\x92\x95\x98\xf0\xebGA\ \xdb.\x1a\xfbmK\x07iM&\xcc-tK\x02\xd3\ V\xf8\xdd2\x87\xb2]\xd4\xe0\x0b{\x99m\x8f\xd0\xb5\ \x94\xd1\x08\xa2q\xf3H]W\xab\xd0P\x1cJ\xfd\x0e\ \xa5~\x87R\xbf_X\xa9\x1f\x89J\xab\x1c\xaf\x9d\xa6\ \xdat\x13^)\x8ed'TC\xb9\xae@\xee\x5c~\ \x04\xce1T\xdb\xe9\xd6\x93\x161\xccy6t\x0b\x83\ h\x1b\xb5\x00-\xecS,JE\x99\xe7\xea\x03%\xd4\ `\xdf\x9a\x8b|\xb9\xd1\xad\x9b\xbdU\xb3u0b\xca\ \xaeY\xd4G\xb2M^$\x00\xdf\x09O\xb0\xdfeQ\ \xbe\x85\xfb\x09\x8c5d\xeau\xa4T\x93\xb3\x96a@\ \xe9Nx\x90.I\x15\x82\x80\x8cj\x81\xa8\xc2\xb7d\ \x9f\x86\xea\x82\xeb\x95\x15>\xb6I\xa03\x1c\xa0\xc6\xf7\ Q\xf9\xbe\x19\x81z\x10\x91\xb8\xa9!;m1\x0bl\ ~\xedU\xe4\x91\xb8\xcb\x9b\xf7%\x08\x10\xb8\x82#\x12\ Np\xc0\xe5\xdac\xc8\x007X\xbe\xb9[\x13&9\ \x12\x12\x8d\xbe\x0a\x0cY3\xf5|(\xf2\xfb%\x14\xf9\ \xd1{\xd8>\xd6\x02C\xdeF\x1b\xa4\xce\xb0H\x81\x00\ \xf9\xf9\xa26\xa81\xd9\xc2aP^wFx\xe7R\ \xd6\xfb:\x93K*\xd5\xe3\x1e\x0b\xaf\xd2&\x0f\xbd\xe7\ \xbc\x10\xe9\xd6P\xe2\xf6\x18\x97\x0c\xe1\x87%\xc4\x1b\x9b\ \x8d\xb2\xf6\xa3\x88p\xdb\x8c$V\x1b\xc5d\x85`,\ |\xc9L\xf5\xc0s\xd0Z)\xe7\xe3\xb8\x91\x0fZA\ \xd2s=@P\xecF{\xee\xcc^\x9cFP8V\ \xc9\xd2)\x15b\xf9\xb1\xaf\xb8\xb4h\xa0\xde\xb3\xe9\x7f\ #\xc9\xc7\xae\xb1\x9e\xbb+\x0f\xf5y\x87\xfa\xbc\x7f\xf5\ \xfa<\x05\x0d\xacb!Hl\xe43}6(\x5c\x5c\ \x1f{\xf6\x8aB1\xd6t\xdb\x87\x11\xb8\x1d\xdf6\x8b\ \xf3\xeb\x95\x03l\xc0\xb4\x8e\x02\xf4\xb6\xc6\xb3pqE\ \xe8\x95\x05n\xd9\xbe\xc7\x09\xa8d\x1f\x0b\xc1C\xe9\xc3\ \x19\xfcFg\x08\xa3E\x07?\xf3j\xb5EM\x81I\ \xa4\xe9\x14\xc7\x91|\xb1>\xb0P\xa4\xa4*,\x12\xe9\ e,+\xbai\xc3&]\x13\xa8&\xe7\xb8\x83\xb00\ \xbfRW-j\x8f\xaci\x9aJ\x11\x06\xcf\x81\x106\ \xa9\x12\xc1S\x0b\xfc\xce\x10\x89\xcc`N\x13@\x9c\x9e\ x\xf3c\x83,\xad\xfa\x8e\xdf-\x0d\xd2i\x82\xc5\xa2\ \xaa\xa5\xcd}p\x96\x91\xf3zD\xad/~\xcd#\x98\ \x1de\x9aW\x84=\xf7\xd5q~\x98\x80uc\x88\xc1\ \xb1V\x0c\xa42\xaa\xc5\xe4\xa2\x99\xea\xb1\xec\x04[*\ t6hn\xfc\xe6\xac\xf9\xbc\xc2\x9c\xc9(\xf7s\xac\ \x8c\x12\x11\x18\xa4\xea\x87r\xbf_V\xb9\x1f\xf3\xb2\xa3\ \x5c\xbed\xfb\xe4\x22\xb1j\x8c\xd6`\x12\xaa\xc9~\xeb\ \x81qK\xb5\xed\xb5\x1d\xe0Y\xcfNJ\xbfj\x0a#\ \x0d\x99\x11EZ\x82\x8cdb\xb3%\x88%\xdb\xac\xd9\ Bb\x19J0\xc3\x07\x94\x9d\xb6\xc7\xf8r\x08\xf1\xd3\ z*\x89E\x08\xf1+\xbf\x95\xad!~\xac\x94\xa1)\ \x91\x9b\xb1\x99)\xae\xbbe[\x85\x1a0\x8e\xd2B\xdd\ \x93\xfd\xcf\x0a\xf5T\x8f\xcf\xf27\xd5\xe3Cz\xc1\xda\ \xbe\x8b\x12\x89\xfc\xdcb1\x91\xf8\x1c\xd5L$0\xad\ \xa2\xe0H\xcc\xdf\xa1\xd0\xef\xc7\x15\xfaU*6\x13\xa5\ \xaa\xe9\x8bl<\xa1J\xbf\xc2-\xc6\xc0^\xac\xe0C\ 8\x88U\xc6\xea?\x16qe\x8de\xe6\xd9\xf8\xe1\xe8\ \xcc(\xbf\xeb\x03S\x05V\xdf\xb3B\xb5q\xd5W]\ \xd1\xb1G\xd2\xa4\xc1I'\xee\xa8\xe5\x18L ?0\ \xde\x84f\x00\x0d4\x16\x19\xb0\xe2\x5c\xc6u\x8c\xb0\x83\ \xcaM\xa1Z\x958\xc5\xf6\xf2\x12\x13\xb1\x14n\xefC\ \xdfS\xbc\xe7>\xa2x\xef\xab\xa3\xa7\xfc\x83\xfe\xf3\xd5\ \xd1\xd5K\xfc\xe7\xbf\x01\xce\xabK\xbd\ \x00\x00\x0b3\ \x00\ \x0056x\x9c\xe5[\xebs\xdb\xb8\x11\xff\x9e\xbf\x82\ U\xbe$S\x91\xc2\x93\x04h;7\xd7f\xee\xe6f\ \xaes\x9dK\xae\x8fO\x1e\x9a\x84d\xd6\x14\xa9!)\ [\xca_\xdf\x05\xf8\x96([R\x14\xf7\xda\xdaI$\ ,\x16\xaf\xdf.v\x17\x0b\xe4\xfa\xbb\xcd2\xb1\x1eU\ ^\xc4Yz3\xc1\x0e\x9aX*\x0d\xb3(N\x177\ \x93\xdf>\xff`\x8b\x89U\x94A\x1a\x05I\x96\xaa\x9b\ I\x9aM\xbe\xfb\xf0\xe6\xfa\x0f\xb6m\xfd9WA\xa9\ \x22\xeb).\xef\xad\x9f\xd2\x87\x22\x0cV\xcazw_\ \x96+\x7f6{zzr\xe2\x9a\xe8d\xf9b\xf6\xde\ \xb2\xed\x0fo\xde\x5c\x17\x8f\x8b7\x96\x05\xad\xa2\xf2\xfe\ f\xe2\xb2\x89.\xdd\xabxq_\xb6\xc58\xba\x99\x00\ \x1fE\x82\x9bro\x82\xb8b\xa8{\xf6\xfb5\x0e\xb1\ \xde\xa1\x00\xa1p\xce)\x95S\x8b Bl\x04\x7f\xd8\ {\xd3\xa8\x80e\xad\xe0\xaf\x1fea\x1a,a5\x01\ Y\xdd~\xbf\x89\x8b\xbf&A\xaa\xfe\xa6\xf22\x0e\x83\ \xe4\xcfYZ\x94y\x10\xa7\xa5\x03s0-\x01\xa4\xb4\ \xf0\x9bAo&\x87\xd6\xa8{-VA\xa8\x8aYC\ \xef\xb5o\xc6o\xdb7\x04\xa7\xc8\xd6y\xa8\xe6\xd0\x85\ rRU\xce>~\xfe\xd8V\xda\xc8\x89\xca\xa8\xd7\xcd\ &\x81\xbe\x07sx\xa2ft,\xa5\x9c\x99\xda\x8e{\ \x8c\x8f \x84f\xc3\xa5A\xe9H\xce<\x9a\x1f\x1c\x1b\ \x91\x19 \x0e\x1cv\xb1M\xcb`c\xa7\xc5\xdb^\xd3\ 0l[\x86Zw\xe2G\x15f\xcb%\xc0]\x817\ `\x8e:\xe6\xd5:O\x0cG\x14\xceT\xa2\x96*-\ \x8b\x19\xc8{6\xf9\x00\xfc\xd7\x91\x9a\x17\xba]\xa56\ \xba\x04z\xe3\x99:\xa8\x058T\x90\xff\x98\x07Q\x0c\ \xed*\xbe\x8asXC\x85\x87\xeb6\xd0\xaa(\xb3U\ \xc3\x0b\x8aSn\x13\x90\xba&\xdaa\x96d\xb9\xff\x96\ \x004\xf3\xf9\x95!e \xf1\xb8\xdc\xfa\xf8j\xd2\xb5\ \xc9\xe6\xf3B\x81F\xa3\x1e\xcd\xa85\xb4\x80\xb1\xe8\xc4\ \x9a\x1d?\xda|>\x0f\xe7\xe1\x11\xa3\xe1\xf1\xd1x;\ \xda\xf5l\xb8\xec\x93Qr\xe9\x09(\xcd\xe7\xa0@\xe8\ l\x94\x5c~\x22JR\x05\xe2l\x94\x5c\xef%\x94\x96\ A\xfe\xa0\xf2\x16\x9d\xc6\x06A\xf3\xf0A\xf7\xf3}\x9e\ gO\xe4g\x95F\xed\x00Y\xae\xdb\x83\xa5Y\x97Y\ K\xcc\xd5\xfc\x9f\xfd5C\xf9\x1f\xfd\xf2\x81\xbe\xea%\ g`\xf3\xe6I\xf6\xe4?\xc6E|\x97\xa8N\x1e\xab\ \xa0\xbc\x1f\xaeLS\x18\xf7\xd8d\x0f\xb8y\x9c$v\ \xbeN\x94\xaf\x1eU\x9aE\x11\xe0\x96g\x0f\xca6\x86\ \xd9G\x8eKxC\xd2`\xfc+\x8bS?\xcf\xd6\xbd\ \xf9X\x16\x8c\xf0\x17K8\x1e\x16\x5cxb\xca\x1cD\ \xa9G9\xb1l\xe2\x10\xe4\x11!\xf9\x149\x08\xbb\x08\ S\xe26\x9c\x82Mm`E\xd8C\x9e\xb0B\xcb\xc6\ \x8e\xc78\x93@'\x0e\xf5\x08r\x914D\xca\x19C\ b\xca\x1d\x17\x03\x03\x06\xa2\xablo*`\x18\xa8\xa1\ \xd6\x97\xdeT\xc0b\xa7\x05X\xd0\xe5\xcdd\x19\x94y\ \xbcy\x07=\xe0)\x82_\xf3\xa5*\xbd\xefK\xbe\x91\ _\x98\xa5\xa9\x0a\xcb,\xb7\xc3u\xfe\x18\x94\xeb\x5ci\ it\xcaP\xc9\xfd4%\x00\xa7\x99\x97\x17S\x83a\ o\xe7+\x02\xfe\x7fT\x84F\x0f\xf4\xe7ki\xc1\xe7\ <\x0e\xd2E\xa2~J?}\xbd\x12\x8cuv\xae\x0e\ \xb8\x92\x0c\xe5\xb6\xb4\xb8\xe3ySd\xd9\xc2q\xf9\x94\ [z\xc3 \xab.|9^a\xfc\xb7\x08\xd5\xe6\xbe\ \xa7?xU\x8e\x0b\x07\x00K\xd4;\x88n\xc8T\xff\ s\x01\x99\x1c\xed\xc4$:\xc5\x891&8\x89\xceu\ b\x12\x9d\xe6\xc4\x10\x22\xeeQ\x81\xc5\xa8\x13\x93\xe8E\ 'v\xbc\xab\xe7\xf2\x04\x94P\xf4U\x01\x91\x8bOB\ \xc9\x8b\x04\x9e\xe3\xf3]=\xbd J\xa7\x84\x8d_\x19\ \x10\xf1S\xc3FOy\xeal\x94\xf8\x8bac\xbbQ\ Wp\x0c[\xc1N\x85\x90\xbe5P\xcdi\xab\xdc\xea\ #\xd3\x90\x95v\xce\xa3;\xca\xadn77\x13\xea\xb8\ \x82\x11\x17l\xbc\x0f\x86\x09!\xd7\x95\x92\xc0w<\xda\ `{3\xb1\x89\xe7\x80\xcb\xe0\xe0\x06|\xcbf\xdc!\ \xd2\x13\x8c\x1dl\xf2\x05\x9a0\x17\x1c\x10\xf7<\xae\x9b\ `p0\x5c2\xd7\x1doR\xcf\xd7\x06\xeb\xbd\x88\xf5\ A\xd3\xcc\x06\xdc\xa2\xfe\xf1\x86m\xb4\x91\xed\x90\xa0H\ \xba\x1d\x82\xdf\x00+\x1bS\x87Q\x97\xb8fJ\xcc\xf1\ \x88.<\x07\x16\x82J\xc9\xc1\xe7\xea\x95\xa3C\xf80\ \x06B\xf0<\xfar\xaf{\xe0p\x1d.xT\xc3/\ \x1d\x97r\xca\xa5x\x01#\xf6m12\x9a\x80^\x02\ \x05\xc3\xb6|\x0e\x12\x22\x9e\xe9fTE\xd8Q\x1a\x82\ \xf1\xd8\xea\xc1Q\xdbj>\x07\xa6\xa6aU\x82\x9d\xf9\ \x00'\xe02H\x86=v\xfc\x146LWW\xdc\xd6\ a\xc1\xcd\xa4\xcc\xd7\xaa\xad\x80\x06\xa5\xcaS\x1d\xb4A\ `\x04\x7fae\x18\x0d\xdc}\x98\xad\xb6\x15\xd2E\xac\ c\x8f[\xf0\xea\xaa\x0c\xefU\x87\xf4*\xcfV\xb7\xc6\ \x8d\xf7-\x88!\xdcnos\x95@\xac\x10$E7\ \xacN\x8d\x98\xc4R\x07s\x0a\xb1@\x90\xdc\xee\x9b\xbd\ \x12\x22\x9e\x11\xb2\x19s\x9d\xc6e\xb1\xdb\xf9c\x9d\xbe\ \xb9m\x177\xac\x9f\xaf\x0bu[f\x89\x82\x10$\x1c\ \x86\x11\x07\x8c}\x17\x85$\x89\x01?H\x9e\x82m1\ \x80~\xd8\x14\xec\x88w\x8a\xcf\xd4?\xf4Lo\x00c\ \xc9\x13#\x8b\xfd\xd1\xd0\xb1\xde\xc0\x83\xc8\xfd\x22\xc7c\ |\xd1\x93\xd1nogF\xc5TJ\xbe{\x9a\xd1\x1b\ \x83Om\x0e\x0e\x828\xdc\x14\xb8!~\xbb\x90\xb8>\ \xaf G\x98\xf3\x8a\xfe\x84]\xf9j\x87V\xfc\xe9r\ \x99\x8ba_\xe7\x1eV\x10F\xbf\x1f\xb1\x98\xa3\x8a\xc9\ '\x983\x0b\xd6\xa5\xd7\x13\xcdEw\xcd\xa7\xcb\xe4\x13\ \x10\x9c6~7\xe2i\xa4\xa3?_U6\xe4\xa2\xb2\ \xd9\xed\xedl\xd9\x10~<\xe2\xff;\xb9\x1e\xe4\xd0Z\ \x0b\xa8\xde\xa7\xae|\xd5l\xcf/\xeb\xf2\xe7\xcb\xa5{\ \x06\xbd\x9d\xab\x07\x98\xee\xec\xd1\xffl\xbe\xc7\xf86G\ \xbc\x82L>\xc6\xc12K\xa3\xcbd\xe3\xc7:;{\ g\xeef\xe0\xb4\xd5\xb4=\x07y\x18y\xae\xb0\xea\xaf\ B2\x13\x9aW%.\xa4U}c.1\xf4^\x8b\ W\x8dHl\xd8\x99\xaf\xb2\xa9\x1a\xcc/d]\xc7\xbb\ ;[\x88\x82\xfe7\x0b\xf1\xb5dX\x07\xe9\x17\x8c+\ /\xb1\x05!\xdc\x17\xbf\x9f\xc0\xc5n\x04c\xbe\xd8\x17\ \x8a\xf8\x8fO`\xca\xd3nt\xf5\xcf\xd9\x09Ly\xea\ \x8d\xee\xfehG\x1fYa\xb4s\x93\xe1/\x9d\xfc\xcd\ #\x0b\xff\x1e\xb4\xf4f\xf2v$\x05p\x18n8G\ w\x86c\x83M\xc6\xcc\xc3Lt.a\x0bD\x02\x91\ \x94\x94\xd4\xebz\xda\x90\x9b\x09e\x0e\xa6.A\x9d\xee\ n\xc9\x18\xef\xa2\x1e\xeb\xb7*M\xb2.T\xfeI?\ J\xf9%\xfd\xadP\xdf4\xd9\x86a\x82:\xfd\xa7s\ ^\xae#\xa8\x87\xa4\xf7\xb5\x997\x8a\x1d) \xbc\xd4\ y<\x82\x1c\x86]A\xf8\xf1\xd9H\x0f\x1a\x984/\ w8\xc0$\xf0K\xf98\x9b~ub\xe8\x19\xf50\ w\x0f\xcf\xedFW\x0e\xd4\x83P\x87\xc29\x8b\x89\x81\ ~\x00\xb8@r]6\xd4\x0f\xe9P\x171\xca\x07\xfa\ \xb1\xcf\xfb\xbc~\xecr}\xee\x0c\x96\xb1]IP\xaa\ w6\xf8/\x9b\x80\x9d\xfa\xa6Py\xf8Y\xa8\xfa\xdb\ \x03@\x81x\x96\xeb\x5c8\x22\xbbXa\xe1z\xbd\xbe\ 4Vp*\x81\xd3+\x91l\x17\xab\x1d\xde\x0b`\xc5\ =G\xb8XH|\x1cb#\xd7\x95\xd8\xb5\xd1!\x1b\ \xdd]\xfdaa\xbb/\x18\xe2\x11\x13+\x02E(\xdb\ 1\xe8\x87\x8dt7\x1cA6y\xc1\x12\x8f]\xa6*\ \x19 \xf7\xd0p_{\x19\x07H\x1d\x83\xd3\xab\xa2\xf4\ \x1a\x18]\xcf\xf4\xb37\xf3\xad\xb5\xdc\xfa-b\xf4\x18\ \xab\xa77\xed\x94\xee\x82VgW\xc1B\x99\xe1`\xdb\ U^\xb6\xae\xb8\xcb\xf2H\xe5M\x95\xb9\xc2p\x07U\ \xf5\x8c\xaa\xc7\xa2u\xdf\xdd\xc5\xc5B\xb5\xf5h\xbc\xbe\ \xb8\x0f\xa2\xec\x09,\xdbn\xe5\x97,\x83}\x03>\xae\ \xcd\x5ct\xd6\x03|\x0b\xe3\x8e\xa4\xf0\xcb\xf6*\xb7\xfa\ \xdd\xa8#\x18\xfc\xee\xb7\x5c\xe79\x80d'\xc1V\xc1\ \x82\xccG\x03\x7fq\x9f=-r\x0dL\xefr\xa4m\ \xa9k\xec\xbb\xbbl3^\x1de\xe1Z\xbfD\xb4\xeb\ \xcb\x88\xd5f\x97\xe3)Na\xa1v\xfd\xd0\x153\xb6\ \x07G\xcd\xd1<~\x15\x8c\x1e\xe0\xd8t\x0a\xba[\xb5\ =\x5c\xb5\x0c6\xf12\xfe\xa2\xa2N\xe3\x06\x92\x08\xef\ U\x08\x01\xe3]\x16\xe4\x91\xeee7.\xd0\x084\x8a\ Z\xc5\x01\x9b\xad\xa6\x0d\x8c\xb2&P\x8c;\xa7\xa6\x96\ \xab\xf6\x9e\xa73\x10\xe3\xf7P*\x0d\x80\x18\xedP\x8b\ 4X\xd5\xfc\xbaw\xad\xeeE\x96&\xdb\x9a\xad\xda\x08\ \xd7\xb3}M7\xf4\xa5*\x83((\x83N\xed\x1b\x0a\ E\xb2]d\x1e\xcd\xfd_?\xfe\xd0\xee\xdf0\xf4\xff\ \x9e\xe5\x0f\xdd\xbe\xd4\x0c\xc1]\xb6\x06\xb9\xb4&E?\ 6\x0d}m\xdf\x83\xf2C\xbc\x04\x08\xf5\xe3\xd8?n\ \x96\x09l\xc0\xb6b\xc0\xacq\xeb:\xad\xba\xcdU\xf5\ \xdew\xf4\x81k\x14.c\xddh\xf6\xa9\x84S\xc6O\ z\x90\xbe\x9d\x99\xd5\x13mlAo\x1dp\x00\xa8\x17\ jJ\x8b\x0e\x80\x81\xd6\xb7\xe2M\x82;}E\xf7\xb3\ \xae\xb4\xf6j\x17y\xb6^-\xb3H\xd5\xcd\xeb\xfar\ \xcc\xc3\xa1)%\xef\x1bd\x17\x03\xed\x10\xbdpw\xec\ H*%\x22\x9c\xf3\xfa\x81\x96\xc9\x1b\xeam\xec\xe93\ P\xbb\xe8E\x87\xa0\xe9\xd4\xa3\xa8\xff\xa2q\xf4\xc5\x17\ \xa7\xd4\xc3MF\x983\x89=L\x859o3B=\ >\xc5\xd4\xe1\x1eq1{\xdf\x17o\xde\xbbr5\xaa\ \xd8\x1d\xf8\xfc\xb7jN$\x91W\xe6\xf4\xd7\x9d}\x9e\ ;\xfa\x11\x07Q&\xbd~J\x15\xc0\xad2\xaa\xe3y\ \xd6\x86\x0aJ\xa0\xf2\x04\xb6o\xe9\xb3\x86\x16\x05`;\ \xf3<\xd8\xfai\x96\xaaI\x7f\x9e\x1a\x16=w)\xf1\ \x80^\x1b\x1f\x86\x1d\x8e\x88 tP\xd9\xd8\x1dF\x1c\ \xe9\xbaB\xf0A\xed\xc6\xc4\xcf\xccCl\x90\xe5\x87@\ \xa9zx\x80\x19\xc2\xbd`\xf5\x80 \xea\xeb\x12.\x04\ \x96H\xe7\x85\xa5\xcb%\x14M\x96\xf6}O\xb3G\xc0\ ?\xbd\xbb\xddiz\xe0L\x98@loe\x04;D\ 1\x0a\x07\x85^\xa9\x8b\xb97\x86$\x91\x8e\x10\x04\ Qr\x00\xfe!\xc2\x03\xf5\x09\x98Q\x90\x03\xeaS\xd7\ \x0e3\x07\x0eC.\xffF\xea\xd37*\x8b\xf6\xebP\ \x06\xf5\xfc\xfb\x17\xc8\xe8*L\xe2U\x95\xfd\x80~\xbe\ @@p\x15\xc5\xc5\x0a\x8c\x84\x1f\xa7z6W\xbb\xe9\ \x98+\xf3\x19'z\xc1\x0d\xa9\x03 .20\x22q\ \x96\xfa:#t\xb5\x8c760\xa4\x91\xad\x8d\x8f_\ \xbd\x0f\xb823\xb0\xe3\x14V\xb5j\xd8\x8b_\x7f\xfc\ \xd3X\x85\x0d\x08C\xb1\xf0\xab8Is\xc1\x10\xe0\xcc\ \x87\xcb\xa8h\xdd<*!\xc1\x91`\x1e\xcew\x85\xd4\ %|\x9a%?\xb7\xeb\x11\xc4\xfb`\xf7\xd8\xae\xdc\xee\ \xd6e\xb9'6#\xa9\xe3\xc5\xd6\xa7V\xe1\xa4\xdf\x8e\ \xde\xcd\xb7B\x05\x02\x1f\x88\xd7\xc0\x11W\xc8\x1a\x87\xd5\ #f\xab\xd2\x84\x07\x9fVJ\x81\xe2\xdc\x83\xd5\xdfm\ R\xaaM\xb9K\xab|\xb6}\x17\x84\x0f\x0b\xa3s~\ \x10B(\xb4\xd6\x9e`'\x0b\xa3\x95\x89\x11\xb7\xbf'\ \x9a\xff\xf6\xa33\x19\x14\xeco\xaf\xaa5G\xb0k9\ \xc6\xb2_\xb71;\xcf\x15\x18\xa3\xbe\x81\xd3{\x1c\xb6\ +\x22\xd2}\xde!hG\xa3\x7f\xf8T:\xd2\xf3\x5c\ \xeebe3mK\x10\xc2D\xb8\xdc\xd8\x12\xf3\x83\xbd\ \xa1i\xaaw\x87\xf9\xb8\xd6\xfe\xfe\xc3\x9b\x7f\x03\x8f\xcf\ \x9f\xf4\ \x00\x00\x08\xbe\ \x00\ \x00 \xbfx\x9c\xcdY[\xaf\x9bH\x12~\xcf\xaf`\ \xc9K\x8e\xc6@_\xb9x\x8eO\x94\x9d(\xd1HY\ m4If\x1eV\xabU\x1b\xda\x98=\x18,\xc0\xc7\ v~\xfdTs\x07\xc3\x89=3\xab\x0d\xc9hLU\ uU\xd7W\x97\xae&\xf7\xafO\xbbX{\x92Y\x1e\ \xa5\xc9J\xc7&\xd25\x99\xf8i\x10%\xe1J\xff\xf2\ \xf9\x9d\xe1\xeaZ^\x88$\x10q\x9a\xc8\x95\x9e\xa4\xfa\ \xeb\x87\x17\xf7\x7f3\x0c\xed\xa7L\x8aB\x06\xda1*\ \xb6\xda\xcf\xc9c\xee\x8b\xbd\xd4^m\x8bb\xbf\xb4\xac\ \xe3\xf1hF5\xd1L\xb3\xd0\xba\xd3\x0c\xe3\xe1\xc5\x8b\ \xfb\xfc)|\xa1i\xb0*(\xb6+\xddf\xbaz\xdb\ \xca(\xdc\x16\xedk\x14\xact\x90\xa3\x9c{\xe5{o\ \x83\xb8\x12\xa85/\xfb\x1c\x93h\xaf\x90@\xc8\xdfp\ J\xbd\x85F\x10!\x06\x82\xbf\xec\xae\x5c\x94\x83[{\ \xf8o\x19\xa4~\x22v\xe0\x8d \xfb\xff|N\xc30\ \x96\x1fEVD\x226\xc1je1\x92\xc7\xbf\xa7\xa7\ \x95\x8e4\xa4\xd9L\xab7\x06h%\xf9\xb2\xb1\xbe\xd2\ \xe7\x9cU\xea\xf3\xbd\xf0en5\xf4\xde\xfaf#\xed\ \xfa\x86`\xe6\xe9!\xf3\xe5\x06TH3\x91\x85\xf5\xf6\ \xf3\xdb\x96i 3(\x82\x9e\x9aS\x0c\xba\x07{8\ \xd2\xd2:\xf6<\xcf*\xb9\x9d\xf4\x94\x1cA\x08Y\x8d\ \xc7\xf5\xd6\x9e\xc2+%\xb3`3k\x1b\x11\x0b\xa0\x07\ \x09#?'\x858\x19I\xfe\xb2\xb7\xd4\xf7\xdb\x95\xbe\ J\xa2\xe8I\xfa\xe9n\x97&y\x05\xde@8\xe8\x84\ \xf7\x87,.%\x02\xdf\x92\xb1\xdc\xc9\xa4\xc8-\x08\xbc\ \xa5?\x80\xfc} 7\xb9ZW\xe5\x8fz\xa3\xdc\xc6\ %\x0f\xb8\x00\x87\x14\xd9\xfbL\x04\x11\xac\xab\xe4*\xc9\ !\x87Q\x97\x1aTo\x05\x9aL\xf3\xd38\x96>\xe4\ \xa8\x88\x8f\xe2\x9c\xd7jAq^\xa4\xfbF\xbaN]\ \xa08\x14\xbb\xae\xde\xd1\xd3\xcd&\x97\xb0\x1a\xf5hy\ q\x8ee%n\x80\xfa4[\xbe\xa4\xcc\xe6\x82\xfdX\ \x92RH\xa0\xa88/\xb1\xaeY\xdf\xb6\xe6\xa1\x09k\ \xf8yk\x0e\xf16\xfef\xce\xda\xbd5D\xe6y \ \xe7pj\x04\xca|\x5cn3\x09i\xf3\xf2y\xc8\xa7\ b\xe2\x19\x9d\x7f'\xbc\xd2\x89c\x12F9%-\xf5\ \x0cT\xceL\xee\xba\x18w\xd4\x13\x01Y|!\x0bT\ \x8a\xc6\xb2am\xeeK\x12\x15P0\x87\x5cf\x9fT\ \x11\xff3\xf9\x92\xcb\x0b\xa9\xcf\x99Hr(\xd5\xddJ\ /\xd4\xcf\x18\xba\xe1+\xa36E\x17\x06\xa9\xd5\xdfu\ \x80\xfe/\xa0\xf3\xa8\xe1=\x0b\x9d\xe7\x19\xce\x00:\xe6\ \x9a\x0e\x86M\x0e\xa1c\x1c\xf6\xcb\x1d\x97\x0f\xa0c\xe8\ BV\x01\xca*Y\xe7\xaf\x84\x0e\x90s\xb9\xcd\x5cg\ \x81M\x86\x19\xc1\xd4\xfe\xf3\xd0M\x02\xa2\x10\x9b)\xa8\ \x89\x22!\x88\x09\xd7\x19\x17\xc9\xf3\x95\xdd\xd4%\x18\xe3\ \xea\x08\x9d\xab\xdf\xab;\xc0\xf3\xa5\xdd3\xe7\x18\x7f\xb4\ \x80/\x90\xa2\x88;7\xe0\xe4\x0aI\xe8\x15\x1bG&\ \xaa\x9e\x09\x07\xc0\xa4w\x13ZLz\x02\xd9W\xa0\xf5\ \xacQ\xfby\xcc\xee-u\x98\x94\xbf\xda\x19B\x9d\xf0\ \x81\x9a\x12\xba\x13g-\xdaT\xdf\x8bP\x96;\x84\x82\ \xdd\x94O\xcdX\xa7Y \xb3\x86e\x97\xcf\x80U;\ Q\xcdb\xb5\xee&\xc9\x95\xd6\x96\x8f\xa6\xf9\xf9V\x04\ \xe9\x11Jt\xcc\xfc\x9a\xa6Pn\xaeI\xf8\x98\xe3\xc3\ \x98C\xb1I\xcb\xe7\x82y.\x99\x1eT\x8d\xc7.\x98\ \x87,\x03\x8c\x8cX\x9c%\xf8\x13\xda\xae\xd7\xb4\x84|\ \x9b\x1e\xc3L\xc1Rd\x079^\x08\x13\xd8A\x1d\xdf\ \xc6\xa1\xea\x17\xfb\xd3XB\xad5\xd6k5\x82M)\ 8F\x09\xb8i\xd4S$f\xec\x02\x8cZ\xa2\x99,\ ]v\xe1Z-q\xeaJw\xcc:\xcf\xb3v\xe2\x14\ \xed\xa2\xaf2\xe8*\xb1\x15\xc9\x13\xb17\xc28]\x8b\ x\xa5oD\x9c_l\xbf\xcc\x8f\xad\xf4\x1fe\xb6N\ E\x16(;u\xfe\x0d\x10h\x92\xb58\xabi\xf3t\ V\xb4AoS\x04\x8aP\xd7\x88\xe5n\xaf\x06\xcfr\ ~g-\xf5)\xca\xa3\xb5\xaa\x9d\x1e\x96 \x9b\x08 \ \x06#\xaa\xda}-\xaf\xb4\xabr\xc8\xd3$>\x8f\xc5\ *+\x0a=\x93\x8f\xa9\xe7\x8aZ\x15\xd5\xbduY5\ %}'\x0b\x11\x88Bt%\xd4P`pc\x0d \ 0F.\x7fy\xfb\xae\xed\x09\xbe\xbf\xfc-\xcd\x1e\xbb\ :V\x02b\x9d\x1e \xcam\xbbR\xe3\xa0\xbfTG\ \x8c(\x1e\xa2\x1d\xc0\xad\xc6\xd7\x1f`\xa4\x84bn\x19\ \x03a\x85q\xa7\xb4R\x9b\xc9j\x22\x9f\x1cA\x03\x7f\ \x17\xa9E\xd6\xa7\x22\x8a\xe3\x9f\x95\x91^\xef\xaa\x95F\ E,\x1f>\x8abk|*R\xff\xb1\xb4^\x11\x07\ r\xe0\xb4| \x08s\x039pa)\xc5J\xda@\ *\x93pR\xc2u\xe7\xa17wo2)}\x11\x1c\ \xe5\xba\xdc\xd71z\x8c\xe0\xce\x11\xc8\x93\xb9\xdf\xee_\ \x97\xa6Vo\xb2\xe2\x08\x90\x95Z[\x1d\x03\xcd\xfb\xc3\ :\x8e\xf2\xad\xcc\x1ez\x10(\xa8\xdf\x84\xed\xc1q\xe9\ \xd7;\xb0\xfd\xd3\x9b\xb7SN\xa9\xb0_./%'\ l)\x95Q\x00\xa2\xd1&\x02z\xad\xd7\xca3\xdf\xfa\ G\x1aX\x0a?\xeb\xfd!\xb2~\xa9\xe3\x01\xd7*\x1f\ \xae\x0bV\x07\xac\xba\xb9\x95\xda{j\x86\xd8\xa9>\x90\ \xff\x11\xf7\xb4\x0f\xef?~ ?\xdc\xe8\xe5\xd8\x9e\xb2\ \x16G\xbeLrY\x86/\xaf\xe3\x17&\x872p~\ \xba\x87\xd3mSX\xb1\xccaz2\xb7\x85\xca\xd5\xde\ \xa2\x817\xe0}\x91E\xebC\x91\xde\x16\xb1\x7f\x890\ ;C9\xff[{\x13\xcb\x13\xdc\xebe\xa6\xbd/)\ 7\xba7\xb1\x81RV\x95fs\x92\xf6*\xf7\xdej\ J\xbb|\x0b\xbb\x92/\xcf\x8e\x8b\x16\x1a\x8b\xb5\x84\xe6\ \xf9A1\xb5\x0bn\x98\xa5\x87\xfd.\x0dd\xbd\xbci\ \x15a\xdb/\xbb\x01\x13\xea<\x8bN\xaf\xa0\x1d\xc1t\ \xc2=\xc6\x17H\xfd19\xa3\xc8!\xf6\x82\xb8\xa6\xcb\ \x5c\x0fy\x0b\xd7\xc40\xf1\xd8\xae}7l\xb1\xe5\xa9\ \xd6:\x19v\xe8\x94\x5c\xcfvz3E1y)@\ &\x86#\x0an\x03|\x01\xbf\x91\x0d\x85\xee!0\xd3\ \xc34\xec\x07\xacT\x8c\x11\xc2\xfa \x16\x03\x99\xc6\xbc\ \xe3\xea\xa3`\x8f\xc4&\xd1\x80\x19\xdbe\x98:\x00\x07\ \x5cY<\x8c\xa8\xed\xd8\x80\x8b\xc1M\xdb\xe1\xcc\x81\xfb\ \x0b\xf6L\xcc\xe0\x02}\xa7\x8f\xf5\xd5~\x93\x91\xe1)\ \xd3\x8d0\xbf\x14\x9e\x16o\x16\xb0\xa9\x05\xea4\x80)\ \x7fj\x15\x5cLV:\xec\x1e\x13\xec9\x18_\xec\xb9\ z\xd4\xa4\x03nA\xdc1\x9f\x11i\x06\x06\xb84:\ 6$\x89=#W\x8f\x1e\xdf\x12S\xde\xa8={\x98\ \xcdH\xd4Sm;\xbd\xfe\xb8\x81\xd3d\xf9\xd2\xf7\xd5\ \xb8Z\xbet\x93-\x0c\xbaY\xfa(\x97/\xaba\xb6\ ~\xad\xc6\xa0%i^\xd5\x91\x0du\xb2\x84*I\x82\ >\xf1\xbfi\x94\x0c\xa9p\x82\xc9,\x86I\xa6X\xb2\ \x86\x16\x08\x18\x22\xb3L\x9c\x97I\x9a\xc8\x86:\xf55\ \xa2\xff|#2\x14P\xb7\xa9\x83\xe6p\x82\xc80\x0c\ e\xe2\x92Y\xa0\x9a\xc8`\xc7t\x1dF\xe8\x5c\x04\x9b\ \xa1\xf0\x1bbmd\xc8m\x91)A\x99\x09\x8b\xdc\x10\ \x8fx\xdfOX\xee\xad\xf0\xb6\xb2\x9b\xc9\xe3\xc9\xb6\x06\ \xdd\x82\xd0:\xfb\xefn\xad\xd6\x99\xac\xaf\xefs\xdfa\ \xd6\x7f#\x89z\x1f\x97\x86\xcf\x95}\xe2\xda\xb6sE\ \x07\x1b6\xc2\x9b\xab\xf5\xf6\xacoo\xfe\xdfaX\xe6\ j\xfb\xca&qm\xcf\xb9\xa2}\x0d\xbb\xe0\x95\xd5:\ E\x9a\x0e\x9dR\x0f\xb3\x0c\x1c\xcb\x88M\xe5b\x958\ \x04sb\xd3\x09v\xe3(\x83\x01\xc0E\x98M!\xdb\ \xa5r)2\xa5\xa6\x05\x9eM\xc1p{j}O\xe7\ \xdc(\x16\xe3\xd7=\xdcEF\x03Z\xf7u2\x81\x9d\ \xc2\xa8l\xf8\x87\xecI\x14\x87L\x0e\xbf\x176\xd0)\ \x1d\xdeE|\xd4\xc5X3\x88g2l;\xde\x82:\ &r(\xa6\x9a\xafAB\xc1 \xc9\xc9\x02i\x06P\ ]\xa7\xfa\xeel3\xc7\xe3\x1d\x85\xabo\xb8\x8e\xcb\xb4\ _5\x18?m\x06\x8f\x0b\x8b\xa1\x7fC>2\xcfs\ =\x0d~\xb8\xc8q[Y\xae\x8d\x16sm\xab9\x08\ \x8a\x80\x22\x8eaqmXY\xae$\x11_\xd4\x96\xed\ \x8e\xd2.~\xd2(1\x11\x22\x8e\xc7J\xcb\xada\xa3\ \xb6L\x17\xed.\x8d\xf1r\xa6}\x1d!R'Ru\ f\xb8\xeb\xb5\xb3A\xcf\xa6\x0c\x1cS\x1cc\xfcWe\ \xc3 \xf4\x17\xf5xR\x95\xe8\x98\x0c\xe6|g\x18J\ \xf5-\xcd\xa4\xdc%\xc4\x1d\x96\xc7\xc0\x9f\xea\x83a\xeb\ O\xfb\xfdy\xe0\x0f\xcc\x19\xdc\xb9\xde\x9f\x81\xb5\xe6\xdf\ ^]\x932J\xeda\xa9\xb7\x07\x113!p\x94\xb8\ \x03nS\xdf\x98\x90\x11$c\x14J_\xa1\xd7\xb9|\ \xa8\xbfD\xc76\xb9\x87=o\xd62\xe1x\xdc\xba\xeb\ M3fb\x8e9\xf5&\xb7\xe5\x8d\x9c\x99\x992\x1c\ \x1a\x10|\xd3\x94\x81M\x84\xb9\xe3\xfe\x1f:\xcf\x05\xb0\ \xad\xaf\xae}C\xe0\x9e\x8dy?\xfdz;\x9a\xab\xa5\ ?\x93{\xb3%0\xac\x9a\xde\xbf\x014\xb5V\xff(\ \xffw\xaf\xbe\xe6=\xbc\xf8\x1dD:\xb8\x82\ \x00\x00\x0b\x1b\ \x00\ \x004\xefx\x9c\xe5Z[s\xdb\xc6\x15~\xf7\xaf@\ \xe9\x17{J\x80{\x07\x16\x92\x9cI\xebI&3\xe9\ $\x13;\xd3\xf6I\x03\x01K\x0a\x15\x08p\x00P\x22\ \xfd\xeb{vq'A\x89\xa4i5m\xc58\xe4\xee\ \x9e\xbd}\xe7\xbag\xf7\xfa\xbb\xcd2\xb1\x1eU^\xc4\ Yz3\xc1\x0e\x9aX*\x0d\xb3(N\x177\x93\xdf\ ?\xff`{\x13\xab(\x834\x0a\x92,U7\x934\ \x9b|\xf7\xe1\xcd\xf5\x9fl\xdb\xfak\xae\x82RE\xd6\ S\x5c\xde[?\xa5\x0fE\x18\xac\x94\xf5\xee\xbe,W\ \xfel\xf6\xf4\xf4\xe4\xc4u\xa5\x93\xe5\x8b\xd9{\xcb\xb6\ ?\xbcys]<.\xdeX\x16\xf4\x8a\xca\xfb\x9b\x89\ `\x13]\xbaW\xf1\xe2\xbel\x8bqt3\x01:\x8a\ \xbf2U\x19p<.\xb7>\xbe\x9at}\xb2\ \xf9\xbcP \xd1\xa8Wg\xc4\x1az\xc0\x5ctb\xcd\ \x8e\x9fm>\x9f\x87\xf3\xf0\x88\xd9\xf0\xf8l\xbc\x9d\xed\ z6\xdc\xf6\xc9(\x09z\x02J\xf39\x08\x10:\x1b\ %\xc1ODI\xaa\xc0;\x1b%\xe1\xbe\x84\xd22\xc8\ \x1fT\xde\xa2\xd3\xd8 \xe8\x1e>\xe8q\xbe\xcf\xf3\xec\ \x89\xfc\xac\xd2\xa8\x9d \xcbu\x7f\xb04\xeb2k+\ s5\xffg\x7f\xcfP\xfeG\xbf|`\xacz\xcb\x19\ \xd8\xbcy\x92=\xf9\x8fq\x11\xdf%\xaa\xe3\xc7*(\ \xef\x87;\xd35\x8c\xbbl\xb2\x07\xdc\xdf\xd5\xd3\x0b\xa2tJ\xd8\xf8\x95\x01\ \x11?5lt\x95\xab\xceF\x89\xbf\x186\xb6\x8a\xba\ \x82c\xd8\x0a4\x15B\xfa\xd6@5\xa7\xadr\xab\x8f\ LCR\xda9\x8f\xee(\xb7\xba\xdd\xdcL\xa8#<\ F\x04\xd8x\x1f\x0c\x13BBHI\xe07\x1e\xed\xb0\ \xbd\x99\xd8\xc4u\xc0epp\x03\xbee3\xee\x10\xe9\ z\x8c\x1d\xec\xf2\x05\xba0\x01\x0e\x88\xbb.\xd7]0\ 8\x18.\x99\x10\xe3]\xea\xf5\xda`\xbd\x17\xb1>h\ \x9a\xd5\x80[\xd4\x7f\xee\xb0\x8f6\xb2\x1d\x12\x14I\xd1\ !\xf8\x0d\xb0\xb21u\x18\x15D\x98%1\xc7%\xba\ \xf0\x1cX\x08\x1a%\x07\x9f\xabw\x8e\x0e\xe1\xc3\x180\ \xc1u\xe9\xcb\xa3\xee\x81\xc3u\xb8\xe0R\x0d\xbft\x04\ \xe5\x94K\xef\x05\x8c\xd8\xb7\xc5\xc8H\x02z\x09\x14\x0c\ j\xf9\x1c$\xc4{f\x98Q\x11aGI\x08\xc6c\ \xbb\x07Gm\xab\xf9\x1c\x88\x9a\x8eU\x094\xf3\x01N\ \xc0e\x90\x0cG\xec\xe8)(L\xd7V\xdc\xd6a\xc1\ \xcd\xa4\xcc\xd7\xaam\x80\x0e\xa5\xcaS\x1d\xb4A`\x04\ \xff`g\x18\x0d\xdc}\x98\xad\xb6\x15\xd2E\xacc\x8f\ [\xf0\xea\xaa\x0c\xefU\x87\xf4*\xcfV\xb7\xc6\x8d\xf7\ -\x88\xa9\xb8\xdd\xde\xe6*\x81X!H\x8anZ\x9d\ \x1a1\x89\xa5\x0e\xe6\x14b\x81 \xb9\xdd7{%D\ <#\xd5f\xceu\x1a\x97\xc5\xee\xe0\x10\x08\x951\xcc\ }\xdbnn\xd8>_\x17\xea\xb6\xcc\x12\x05!H8\ \x0c#\x0e\x18\xfb.\x0aI\x12\x03~\x90<\x05\xdbb\ \x00\xfd\xb0+\xd8\x11\xf7\x14\x9f\xa9\xff\xe8\x99\xde\x00\xe6\ \x92'F\x16\xfb\xb3\xa1c\xbd\x81\x0b\x91\xfbE\x8e\xc7\ \xf8\xa2'\xa3\xdd\xd1\xce\x8c\x8a\xa9\x94|\xf74\xa3\x15\ \x83Om\x0e\x0e\x828\xdc\x14\xb8\xa9\xfcv!q}\ ^A\x8eg\xce+\xfa\x1b\xb4\xf2\xd5\x0e\xad\xf8\xd3\xe5\ 2\x17\xc3\xb1\xce=\xac \x8c\xfe8l1G\x15\x93\ O0g\x16\xacK\xaf\xc7\x9a\x8bj\xcd\xa7\xcb\xe4\x13\ \x10\x9c6\xfe0\xeci\xb8\xa3\xbf_\x957\xe4\xa2\xbc\ \xd9\x1d\xedl\xde\x10~<\xe2\xff;\xb9\x1e\xe4\xd0Z\ \x0a\xa8\xd6S!_5\xdb\xf3\xcb\xba\xfc\xf9r\xe9\x9e\ \xc1h\xe7\xca\x01\xa6;:\xfa\x9f\xcd\xf7\x18\xdf\xe6x\ \xaf\xc0\x93\x8fq\xb0\xcc\xd2\xe82\xd9\xf8\xb1\xc1\xce\xd6\ \xcc\xdd\x0c\x9c\xb6\x9a\xb6\xeb \x17#WxV\xfd\xd3\ \x93\xcc\x84\xe6U\x89{\xd2\xaa~1AL}\xaf\xc7\ \xabF$6h\xe6\xab(U\x83\xf9\x85\xac\xeb\xf8p\ g3\xd1\xa3\xff\xcdL|-\x1e\xd6A\xfa\x05\xe3\xca\ K\xa8 \x84\xfb\xde\x1f'p\xb1\x1b\xc6\x98\x1f\xf6\x85\ \x22\xfe\xe3\x13\x98\xf2\xb4\x1b]\xfdwv\x02S\x9ez\ \xa3\xbb?\xdb\xd1GV\x98\xed\xdcd\xf8K'\x7f\xf3\ \xc8\xc2\xbf\x07)\xbd\x99\xbc\x1dI\x01\x1c\x86\x1b\xce\xd1\ \x9d\xe1\xd8`\x931s1\xf3:\x97\xb0\x85J\x02\x91\ \x94\x94\xd4\xedF\xda\x90\x9b\x09e\x0e\xa6\x82\xa0Nv\ \xb7d\x8cvQ\xcf\xf5{\x95&Y\x17*\xff\xa4\x1f\ \xa5\xfc\x92\xfe^\xa8o\x9al\xc3\xb0@\x9d\xfe\xd39\ /\xe1x\xd4E\xd2\xfd\xda\xcc\x1b\xc5\x8e\xf4 \xbc\xd4\ y<\x82\x1c\x86\x85G\xf8\xf1\xd9H\x17:\x984/\ w8\xc0\xe4\xe1\x97\xf2q6\xfd\xea\xc4\xd03\xe2a\ \xee\x1e\x9e\xd3F!\x07\xe2A\xa8C\xe1\x9c\xc5\xbc\x81\ |\x00\xb8P%\x04\x1b\xca\x87t\xa8@\x8c\xf2\x81|\ \xec\xd3>/\x1f\xbbT\x9f;\x83elW\x12\x94\xea\ \x9d\x0d\xfe\xcb&`\xa7\xbe)T.~\x16\xaa\xbez\ \x00(\x10\xcfr\x9d\x0bGd\x17+\xec\x09\xb77\x96\ \xc6\x0aN%pz%\x92\xedb\xb5C{\x01\xac\xb8\ \xebx\x02{\x12\x1f\x87\xd8\xc8u%\x166:d\xa3\ \xbb\xab?\xec\xd9\xe2\x05C{Z\xe4\x1a\x98\xde\xe5H\xdbS\ \xb7\xd8ww\xd9f\xbc9\xca\xc2\xb5~\x89h\xd7\x97\ \x11\xab\xcd.\xc5S\x9c\xc2F\xed\xfa\xa1+fl\x0f\ \x8e\x9a\xa2y\xfc\xea1z\x80b\xd3\x09\xe8n\xd3\xf6\ p\xd32\xd8\xc4\xcb\xf8\x8b\x8a:\x89\x1bp\x22\xbcW\ !\x04\x8cwY\x90Gz\x94\xdd\xb8@#\xd0\x08j\ \x15\x07l\xb6\xban`\x94u\x05\xc5\xb8sjj\xb9\ j\xefy:\x031~\x0f\xa5\xd2\x00*\xa3\x9d\xda\x22\ \x0dV5\xbd\x1e]\x8b{\x91\xa5\xc9\xb6&\xab\x14\xe1\ z\xb6/\xe9\xa6~\xa9\xca \x0a\xca\xa0\x13\xfb\xa6\x86\ \x22\xd9n2\x8f\xe6\xfeo\x1f\x7fh\xf57\x0c\xfd\xbf\ g\xf9C\xa7\x97\x9a \xb8\xcb\xd6\xc0\x97\xd6\xa4\xe8\xc7\ \xa6\xa1\xaf\xed{P~\x88\x97\x00\xa1~\x1c\xfb\xe7\xcd\ 2\x01\x05l\x1b\x06\xc4\x1a\xb7n\xd0j\xd8\x5cU\xef\ }G\x1f\xb8F\xe12\xd6\x9df\x9fJ8e\xfc\xa4\ '\xe9\xdb\x99Y\xbd\xd0\xc6\x16\xf4\xf6\x01\x07\x80z\xa3\ \xa6\xb4\xe8\x00\x18H}\xcb\xde$\xb8\xd3Wt?\xeb\ Fk\xafu\x91g\xeb\xd52\x8bT\xdd\xbdn/\xc7\ <\x1c\x9aR\xf2\xbeAv1\x90\x0e\xed\xa4\xdb\xc5/\ :$L\xa3KQ\xffe\xe2\xe8\xd86q(2\x9f\ )8x*\xf4\x87\xbd\xef\xb3$\xef]\x93\x1a\xf1\xe9\ \x0ei\xfe[5'\x92\xc8+sb\xeb\xce+\xcf\x1d\ \xd7\x88\x83(\x93.\xe2\xa4\x9f\x09\x05L\xaaD\xe8x\ z\xb4\xa9\x05\xde\xa9<\x01\xad+}\xd6\xd4E\x01\x98\ \xbc<\x0f\xb6~\x9a\xa5j\xd2_\xaaFA/_J\ <\xa8\xafm\x06\xc3\x0eG\xc4#t\xd0\xd8\x98\x0bF\ \x1c)\x84\xe7\xf1A\xeb\xc6\x84\xbd\xccEl\x90\x9c\x87\ \xf8\xa6z/\x80\x19\xc2\xbd\x18s\x07\xf7\xe6\xc5\x5c}\ \xcb\xc1=\x0fK\xa4\xd3\xb9Rp\x09E\x93\x5c}\xdf\ \x13\xc8\x11\xfcO\x1fnw\x99.\xf8\x00\xe6!\xb6\xb7\ 3\x82\x1d\xe2!o\x14\x0e\x0a\xa3R\x81\xb9;\x86$\ \x91\x8e\xe7\x11D\xc9\x01\xf8\x87\x08\x0f$(`FF\ \x0eHP\xdd:<\xf0;\x0c\x09\xeebA\xbf\x8d\x04\ \xf5\xcd\xc1\xa2\xfd9dC\xbd\x85\xfe\xd5/\xba\x0a\x93\ xU\xe5-`\x9c/\xe0\xca\xaf\xa2\xb8X\x81z\xfb\ q\xaaWs\xb5\x9bH\xb92\xdfq\xa2\xf7\xdcTu\ \x18\xc4E\x06*\x1ag\xa9\xafs9W\xcbxc\x03\ A\x1a\xd9\xdal\xf8\xd5\xcd\xfe\x95Y\x81\x1d\xa7\xb0\xab\ UC^\xfc\xf6\xe3_\xc6\x1al\x00\x19\x8a\x85_E\ 8\x9a\x0a\xa6\x007<\xdcFU\xd7\xad\xa3\xe2\x13\x04\ \xf3\xf3p\xbe\xcb\xa7.U\xd3l\xf9\xd9T\x8d\x83\x84\ \x14l\x97mw\xeb\xb2\xdc\xe3\x9aa\xd4\xf1\x5c\xeb\xd7\ Vq\xa0\xdfN\xde-\xb7\x02\x05\x22\x16\x08\xb4\xc0\x83\ V\xc0\x1aO\xd3\xab\xccV\xa5\xf1\xeb\x9fVJ\x81\xdc\ \xdc\x83\xb9\xde\xedR\xaaM\xb9[W9[\xfb.\x08\ \x1f\x16F\xe4\xfc \x84\x18f\xad\xcd\xecN\xfaD\xcb\ \x12#\xa2\xaf\x15\xb5\x22\xb9\x0e%\x8cx\xb4o\xaf\x1a\ \x0d\xe4\x12N\xea`y\xfa\xdd\xb4\xd22PL\x97\x0d\ \xd4Vk9u\x1d\x97b:\xb0ncYK)\x88\ Vz\xa2o\xf6\x5c\x82\xb8\x87\xcd\xd5\x0e\x85\xf3\x9b\xcb\ \x84\xd0\xd6\x84S!9aC\xe3T+\x87\xf9\xba\xd6\ \x8e\xfa\xc3\x9b\x7f\x03\x7fS\x8f\xb4\ \x00\x00\x0b9\ \x00\ \x00:\x1dx\x9c\xe5[[o\xdb\xc8\x15~\xcf\xaf`\ \x95\x97\x04\x15\xa9\xb9_\xb4v\x16\x8b\x0d\xb6\x08\x90b\ \x81&\x8b\xb6O\x06M\x8ed5\x14)\x90\x94-\xe5\ \xd7\xf7\xcc\x88\x12I\x89\xb2.\x96\xd5\xb4u\xe2H3\ s\xe6\xf6\x9d\xeb\x9c\x99\xdc\xfc\xbc\x98&\xde\xa3\xc9\x8b\ I\x96\xde\xf6p\x80z\x9eI\xa3,\x9e\xa4\xe3\xdb\xde\ \x1f_\x7f\xf3U\xcf+\xca0\x8d\xc3$K\xcdm/\ \xcdz?\x7fxs\xf3'\xdf\xf7~\xcdMX\x9a\xd8\ {\x9a\x94\x0f\xde\xa7\xf4[\x11\x853\xe3\xbd{(\xcb\ \xd9p0xzz\x0a&Ue\x90\xe5\xe3\xc1{\xcf\ \xf7?\xbcysS<\x8e\xdfx\x1e\xf4\x8a\xcb\x87\xdb\ \x9e`=[z0\x93\xf1C\xb9)N\xe2\xdb\x1e\xd0\ Q\xa4\xb8+7\x16\x88W\x04\xd5\xc8\xc3fK@\xbc\ w(D(\x1aqJu\xdf#\x88\x10\x1f\xc1_\xf6\ \xdeu*`[3\xf8\x1d\xc6Y\x94\x86S\xd8MH\ fw\xbf\xa4\xe3\xc4\xfc\x9a\xa5E\x99\x87\x93\xb4\x0c`\ ^G\x0d\xc0\xa4\xc5p=\xd1mo\xdf\xbe\xecH\xc5\ ,\x8cL1X\xd77\xfa\xaf\xe7\xdc\xf4_W\x04E\ 6\xcf#3\x82!L\x90\x9ar\xf0\xf1\xeb\xc7M\xa3\ \x8f\x82\xb8\x8c\x1b\xc3,\x12\x18\xbb\xb5\x86'\xeaf\xc7\ Z\xeb\x81k\xad\xa9\xbb\xe8\x08Bh\xd0\xde\x1a\x94\x8e\ \xa4\xcc\xe3\xd1\xde\xb9\x11\x19\x00\xca@\xe1\x17\xcb\xb4\x0c\ \x17~Z\xbcmt\x8d\xa2M\xcf\xc8\xca\xcb\xe4\xd1D\ \xd9t\x0ap\xaf\xc0k\x11\xc75\xf1l\x9e'\x8e\x22\ \x8e\x06&1S\x93\x96\xc5\x00x<\xe8}\x00\xfa\x9b\ \xd8\x8c\x0a\xdbo%*\xb6\x04\xb2\x22]\x1b\xb4\x02\x1c\ &\xcc\xff\x92\x87\xf1\x04\xfa\xad\xe8\x1a2\x13eIb\ \x22\x90\xb60y\x0a\x97EoC\x00C\xb5\xbbR\xbd\ \x19\x14\x86-\xcal\xb6\xa6\x05i*\x97\x09\x88\x85\xad\ \xf4a\xc4,\x1f\xbe%\x88\x85J\xfe\xe4\xaa2\x10\x89\ I\xb9\x1c\xe2^\xdd%\x1b\x8d\x0a\x03\xf3\xa2F\x9d\x13\ u\xe8\x00S\xe9\x9e78~2I\xf4(\x1a\x1d\x9e\ \x0cwN\xa6\xf1f\xb2\x9bA{\xd3\xcf\x83\xb8\x8b\x91\ \x92\xf8\x14\x8c@\xbeF\xdb\xcb\xfe\xe9X\x90\x94\xa4'\ \x814\x1a\x01F\xd1\x11\xb3u\xa2\xa4$\xbf\x1cJ\x82\ \x9e\x80\xd2h\x04Z\x88\xceFI\xf0\x13Q\xd2&T\ g\xa3$\xe4!\x94\xa6a\xfe\xcd\xe4;\x8a\x08\xdd\xa3\ ov\x9c_\xf2<{\x22\x9fM\x1ao&\xc8r\xdb\ \x1ftt^f\x9b\xca\xdc\x8c\xfe\xd9\xdc3\x94\xff\xd1\ ,\xef\x19\xab\xdar\x06\xceb\x94dO\xc3\xc7I1\ \xb9OL\xcd\x8fYX>\xb4wfk\x18\x97\xac\xb7\ \x03\xdch\x92$~>O\xcc\xd0<\x9a4\x8bc\xc0\ -\xcf\xbe\x19\xdfy\xb4!\x0a\x04\xe1\xeb*\x0b\xc6\xbf\ \xb2I:\xcc\xb3yc=\x9e\x073\xfc\xd5S\x81\xc4\ \x8a+\xa9\xfa,@\x94J\xca\x89\xe7\x93\x80 I\x94\ \xe6}\x14 ,\x10\xa6D\xac)\x15\xeb\xfb@\x8a\xb0\ DRy\x91\xe7\xe3@2\xce4\xd4\x93\x80J\x82\x04\ \xd2\xae\x92r\xc6\x90\xea\xf3@` \xc0P)\x8c/\ \xfb\x0a\xa6\x81\x16\xea}o,\x05\xdc^Z\x80\x1b\x9a\ \xde\xf6\xa6a\x99O\x16\xef`\x04\xdcG\xf0\xc7}Y\ \x95\xde79_\x1b\xd24\x05C\x9a\xe5~4\xcf\x1f\ \xc3r\x9e\x1b\xcb\x8dZ\x18V|?M\x08 \xda\xc8\ \xcb\x8b\x89A{\xb4\xf3\x05\x01\xff?\x0a\xc2Z\x0e\xec\ \xe7\xb5\xa4\xe0k>\x09mD\xf6)\xfd\xf2r!\xe8\ \x1a\xec\x5c\x19\x10\x9a\xb4\xf96\xf5x e\x1fy\xbe\ \x0a\x04\xefs\xcf*\x0c\xf2\xaa\xc2\xf7\xe3\x05f\xf8\x16\ \xa1\xca\xdc7\xe4\x07\xcf\xcan\xe6\x00`\x89y\x07!\ \x22\xe9\xdb\x7f.\xc0\x93\xa3\x9d\x98F\xa781\xc6\x14\ '\xf1\xb9NL\xa3\xd3\x9c\x18BD\x1c\x15Xt\x07\ D\xe8\xa0\x13;\xde\xd5s}\x02J(~Q@$\ \xf0iQc\xac\xf0\x08\x9f\xef\xea\xe9\x05Q:%l\ |a@\xc4O\x0d\x1b\xa5\x91\xe6l\x94\xf8\xc1\xb0q\ \xa3\xa838\xbf\xce@S\xe1\x5c\xb41P\xebcj\ \xb9\xb4\xe7\xce6)\xad\x9dG}\x06\x9e\xdd-n{\ 4\x10\x8a\x11\x016~\x08\x86\x09!!\xb4&\xf0\x1d\ wvX\xde\xf6|\x22\x03p\x19\x1c\xdc\xc0\xd0\xf3\x19\ \x0f\x88\x96\x8a\xb1\xbd]\xbeC\x17&\xc0\x01q)\xb9\ \xed\x82\xc1\xc1p\xcd\x84\xe8\xeeR\xad\xd7\x07\xeb=\x9e\ \xd8\x13\xba[\x0d\xb8E\xfb#\xdb}\xac\x91\xad\x91\xa0\ H\x8b\x1a\xc1W\xc0\xca\xc74`T\x10\xe1\x96\xc4\x02\ Il\xe19\xb0\x104j\x0e>\xd7\xee\x1c\xed\xc3\x87\ 1`\x82\x94\xf4\xf0\xa8;\xe0p\x1b.Hj\xe1\xd7\ \x81\xa0\x9cr\xad\x0e`\xc4^\x17#'\x09\xe8\x10(\ \x18\xd4\xf29H\x88zf\x98N\x11aGI\x08\xc6\ ]\xbb\x07G\xed\x9b\xd1\x08\x88\xd6\x1dW%\xd0\xcco\ &1e\x98\xb4G\xac\xe9)(L\xddV\xdcUa\ \xc1m\xaf\xcc\xe7f\xd3\x00\x1dJ\x93\xa76h\x83\xc0\ \x08~ag\x18\xb5\xdc}\x94\xcd\x96+\xa4\x8b\x89\x8d\ =\xee\xc0\xab\x9b2z05\xd2\xb3<\x9b\xdd97\ \xde\xb4 \xae\xe2ny\x97\x9b\x04b\x850)\xeai\ m~\xc9e\xe4j\x98S\x88\x05\xc2\xe4n\xd7\xec\x95\ \x10\xf1tT\xbb9\xe7\xe9\xa4,\xb6\x07\x87@\xa8\x9c\ \xc0\xdcw\x9b\xcd\xb5\xdbG\xf3\xc2\xdc\x95Yb \x04\ \x89\xdaa\xc4\xc5\x12-`GNI\xb4\xb8p\x89\x9e\ \xe9\x0d`\xae\xd32-]\xb3\xa1c\xbd\x81\x84\xc8\xfd\ \x22\xc7c|\xd1\x93\xd1\xf6hgF\xc5Tk\xbe}\ \x9a\xb1\x8a\xc1\xfb>\x07\x07A\x02\xee\x0a\xdcU\xbe^\ H\x5c\x9dWP\xa0\xdcy\xc5~\x82V^\xed\xd0\x8a\ \xbf\x5c.s\xd1\x1e\xeb\xdc\xc3\x0a\xc2\xe8\xc7a\x8b;\ \xaa\xb8|\x82;\xb3`[\xba\x1ek.\xaa5_.\ \x93O@p\xda\xf8a\xd8\xb3\xe6\x8e\xfd\xbc*o\xc8\ Ey\xb3=\xda\xd9\xbc!\xfcx\xc4\xffwr=(\ \xa0\x95\x14P\xab\xa7B_5\xdb\xf3\xfb\xbc\xfc|\xb9\ tOk\xb4s\xe5\x00\xd3-\x1d\xfd\xcf\xe6{\x9co\ \x0b\xd4\x15x\xf2q\x12N\xb34\xbeL6\xbek\xb0\ \xb35s;\x03g\xad\xa6/\x03$1\x92By\xd5\ W\xa5\x99\x0b\xcdW%\xae\xb4\xb7\xfa\xc6\x04q\xf5\x8d\ \x1eW\x8dH|\xd0\xcc\xab(\xd5\x1a\xf3\x0bY\xd7\xee\ \xe1\xcef\xa2\xa2\xff\xcdL\xbc\x16\x0f\xab \xfd\x82q\ \xe5%T\x10\xc2}\xf5\xe3\x04.\xfe\x9a1\xee\x8b\x7f\ \xa1\x88\xff\xf8\x04\xa6>\xedF\xd7\xfe\x9c\x9d\xc0\xd4\xa7\ \xde\xe8\xee\xcev\xf4\x91\x15f;7\x19~\xe8\xe4\xef\ ^\xaa\x0c\x1f@Jo{o;R\x00\xfb\xe1\x86s\ tm8\x16\xd8e\xcc$f\xaav\x09K\xa8$\x10\ IiMe=\xd2\x82\xdc\xf6(\x0b0\x15\x04\xd5\xb2\ \xbb$]\xb4\xe3j\xae?Vi\x92ya\xf2/\xf6\ e\xcf\xef\xe9\x1f\x85y\xd5d\x1b\x86\x05\xda\xf4\x9f\xcd\ y\x89@Q\x89\xb4|i\xe6\x8d\xe2@+\x08/m\ \x1e\x8f\xa0\x80a\xa1\x08?>\x1b)\xa1\x83K\xf3\xf2\ \x80\x03L\x0a\x1f\xca\xc7\xf9\xf4\xc5\x89\xa1g\xc4\xc3\xdd\ =<\xa7\x8dB\xb7\xc4\x83\xd0\x80\xc29\x8b\xa9\x96|\ \x00\xb8P%\x04k\xcb\x87\x0e\xa8@\x8c\xf2\x96|\xec\ \xd2>/\x1f\xdbT_k\x83\xe5lW\x12\x96\xe6\x9d\ \x0f\xfe\xcb'`\xa7^\x15*\x89\x9f\x85\xaa\xa9\x1e\x00\ \x0a\xc4\xb3\xdc\xe6\xc2\x11\xd9\xc6\x0a+!\x1bcY\xac\ \xe0T\x02\xa7W\xa2\xd96V[\xb4\x17\xc0\x8a\xcb@\ \x09\xac4~}\xc4\xec;\xafg\x10\x03\xf9o\xdb\x1e\ \xdd\xb6:\xa2\x05Q#\xf7b\xb1\xf1\xc9\xb1\x16\xe68\ \x09\xc2(\xd0\x04c\x81\xfb\xe0p\x05f\x92\xaaW\x06\ \x07\x0b\x1f=\x07\x0fa\xe2\xe5;\xac\x83\xadU, \ \xab\x98K*F\xc1z+\xeb\xe5\xa5\xb6?\xee<\xac\ \x15\xa2\x8d\xd3\x90\xe5\x0aU\x01\xb1\xc76\xdef\x0e\x0d\ 0\x18\xb0F\xe0by\xc4p \x94\x16\x1c\xb7X\xc5\ `vv\x10\xcb\x0e\xf9p\x08\xedq\xcf\xf5\x1d3V\ ~\x0dT\xb7\xc7\xef\xf0\xe5*4\x84\xb2\xed\x87~{\ \xa3\x81z:\x82|\xd21]\xc7S\x96\xd6\xad\xbd\xd1\ !\x12\xfb\xa6{\xe9\xad/ u\x0cNWE\xe9\x1a\ \x18\xdd\x0c\xec#U\xf7m\x13\x22\xd8\x97\xc3\xf1\xe3\xc4\ <\xbd\xd9,\xe9>\xdc(\xc9,\x1c\x1b7\x1d(\xe4\ *\x9c\xab\x1a\xee\xb3<6\xf9\xba\xc9\xdd\x95\x89VS\ \xb5\xa2\xd5s\xeej\xec\xfa\x86ll6\xed\xa8\xbb\xbd\ x\x08\xe3\xec\x094g\xbb\xf1{\x96M\xddE3A\ \xee\xd5\xdfVsd\x03\x198\x03X?\xa0v\x1aa\ >b\xc3\x1cD\xa9\xdei\x9c\xe79\x00\xe5'\xe1\xd2\ \xc0\xa6\xdc\xc7\x9a\x05\xc5C\xf64\xce-8\x8d\x9b\xb8\ MO\xdb\xe2\xdf\xdfg\x8b\xee\xe68\x8b\xe6\xf6\xed\xb0\ _\xdd|\xcd\x16\xdb\x14O\x93\x146\xebW\xcf\xd11\ c;\x90T\x14\xeb'\xea`\x8e\xf6P,j!\xdd\ nZ\xeeo\x9a\x86\x8b\xc9t\xf2\xdd\xc4\xb5\xd4\xb5\xb8\ \x11=\x98\x08N'\xf7Y\x98\xc7v\x94\xed \xd4\x22\ \xb0\x16\xd6U\xd0\xb9X\xda\xba\x96\xc1\xb6\x15\x14\xe3\xda\ \x8b\x99\xe9ls\xa9X\x1b\x89\xeeKO\x93\x86P\x19\ o\xd5\x16i8\xab\xe8\xed\xe8V\xe4\x8b,M\x96\x15\ \xd9J\x19n\x06\xbb\xd2\xee\xea\xa7\xa6\x0c\xe3\xb0\x0ck\ \xd1_\xd7P\xa47\x9b\xcc\xe3\xd1\xf0o\x1f\x7f\xdb\xe8\ p\x14\x0d\xff\x9e\xe5\xdfj\xdd\xb4\x04\xe1}6\x07\xbe\ l\xcc\x8a}\x1e\x1e\x0d\xadS\x09\xcb\x0f\x93)@h\ \x9f\xb3\xffy1M@\x097\x0d-b\x8b[=\xe8\ j\xd8\xdc\xac^\xe8w>I\x8f\xa3\xe9\xc4v\x1a|\ )\xe1H\xfb\xc9N\xd2\xb45\x83j\xa1k{\xd0\xd8\ \x07\x9c6\xab\x8d\xba\xd2\xb8\x06\xa0%\xf5\x1b\xf6&\xe1\ \xbd\xbd\x0f\xfel\x1b\xbd\x9d\xd6q\x9e\xcdg\xd3,6\ U\xf7\xaa\xbd\xec\x0a\x1cP\x9f\x92\xf7kd\xc7-\xe9\ P\xb4\x96\x81\x8eg\x80\xd5#@\xc44\xc2\x9c;\xaf\ \xac\x89\x12\x9c\xf0\xf7\xb51\x1f\xd7\x00\xba15\xd6\xcd\ \xd7\xb3\x9dK\xa2\x01\x1c\xca\xb0\x94\xef\x9b\xcc\x1b79\ \xd1\x95\x8d\x91Z`\x89\x88X/\x0b)$)\xebc\ \x1c0.\x18\xd2}\x1d A\x18\xe2\xcdl\xc0fU\ \x8a7&\xdb\x9e\xae\xa2\x92\x14\xb7\xa9\xac,6\x1e\x15\ \xec_\x1d\xae\xae\xb9\xb8RX#\x9b\xcf\x87 CC\ \xd1e\xd7\xdb\x0b\xb2?\xee\x1d\x8e\x0e\x14\x11\x12\xcb\x9d\ V\xb0(2\x80\x9dJ\xc9\xd9N\xe3\xda 1\x02s\ \x08\xa5\xf8\x0eEe\xd4 \xd6\xe1\x88(Bw\x08\xec\ f\xed\xbe$Eb\xa7\xb1\x91\xb3\xd9\xfco\x03\x97\xc0\ \xa9\xd3\x17\xcfeoH\x80(\xd3\xb2y+\x02\x22\xbb\ \xba\x14\xe9\xbe*Y\xd7\x82j\x99<\x01\xa3X\x0e\xd9\ \xba.\x0e\xc1+\xe5y\xb8\x1c\xa6Y\xda\xd45\xc7\x9b\ \xc1\xb8U\xdce\xd5K\x19\xe5\xd8D\x03\x05&\x94\x93\ \xad\xb6\x95\xd7\x833;n\x1cA\xdb,\xa20:\x15\ \x98os\xb8b\x90\x15\x00\x05>u{\xe4\x06{\xd4\ VS\x8b9\x94\x09\x1e\xb2}\xcc\xa9Z\xdb\xa9\xb5\x80\ !\xc1\xaf\xc0\x9c\x16kNTm\xbf\xd6m\x88\xf8\x15\ \x91BP\xdd\x97p\xd2\xe4BI\xdd\xa1\xdd\x00\x14\xeb\ ]A\x140\x9c)\x18\xda\xe5\xf7\xc2\xa5N\x98D\x0c\ m\xb3\xfa\x90\xb6\x1e\xd0\xd5\xb5(\xd8\xff\xb8\xf3\x8c$\ \x98\x11\xd1D\xff\xa8j\xba\xcb\x8c\xd6\xe2C\xe6\x96\xb7\ g\xf1U\xeb\xf5\xc4x\x1f\x03\xb6Ys@\x89\x0f\xd9\ \x80\x85\x8b\x8b\x89\xdaQq+h \xec\x84)\xc4\xb6\ \xa5\xe5t!\xde\xa3\x94\x9b\xaf\xd5\x17\xf7qc\x03\xa6\ \x0fo\xfe\x0d\xbf\xbc\xa1\xb6\ \x00\x00\x09i\ \x00\ \x008Tx\x9c\xed[\xebo\x9b\xc8\x16\xff\xde\xbf\x02\ 9_Z\xd5\xc0\xbc\x07\xdc8U\xef\x8dZ\xad\xb4\xd5\ ^u[\xed\x87\xab\xd5\x8a\xc0\xd8f\x8b\xc1\x17pl\ \xf7\xaf\xbfg0O\x1b\xc7v\xb6\x8fT\x89\xd3*p\ \xe6\xccy\xfc\xcec\x861\xb9|\xbd\x9eG\xc6\xadJ\ \xb30\x89\xc7\x03l\xa1\x81\xa1b?\x09\xc2x:\x1e\ |\xfa\xf8\xd6t\x06F\x96{q\xe0EI\xac\xc6\x83\ 8\x19\xbc\xbezv\x99\xddN\x9f\x19F{\x22\x1eh\ B\x18\x8c\x070F\xa4$\xc5\xfdL\x85\xd3Y>\x1e\ \x08\xb6X\x17\x84U\x18\xe4\xb3\xd6}\x06\xaa\x16\xf0\x7f\ \x14$~\xec\xcdA\x83G\x16\x7f}P\xf3\xe4V]\ \xab\x9b\xe5\x94^[ p+<\xfe\x9c\xf9\xdeB\x8d\ \xdaj-bxFa\xd0\x15\x02\x1f\xb0p\xdd\xe3\ {9\xd4\x07K94\xf7\xd6\xe1<\xfc\xa2\x82&D\ \x8d\xd2e\x9aB\x86\x98\x91\xb7Qi\xb7\x91\xec\xe0\xeb\ \xcf\x94\xffY\xa57\x89\x97\x06Z\x97a\x17\xf9\x14\xa8\ I\xd6\x80\xa5\xef@\x00+r\x0dFS/\x08\xbd\xe8\ \x9d\xfe\x05Z\xb6|\x86\x01\x8a(\xb3(\xe3\xd8q\x06\ \x15q\x02\x1e\x08I\xc0\x7fIEC\xd5\x88\x11n\x11\ \xc1\x10\xa9\xa9~/\xaf\xdf\xcb;-\x95\x7f\x84\xdc\xca\ \xa0i@l\xe6^\x9e\x86\xeb\xe7x\x88\xf4\x8f%\x5c\ \x87\x13\x97\xc15t2\xcb!\x8e\xa0/\xf6\xa6\x7f\x8a\ \xc3\x1c\xfa\xc32S\xe9\xef\xbag\xfd\x16\x7f\xaaC\xbf\ \xf5\xbd\xeb+!u\x12C\x91\xea63\x9a\xa5\x0a\xba\ \xc1\x05\x5c+/\xad\xf8($d\x89\xe5#\xc7\xabe\ \xc3\x13^\xc7\xf1\xc2.;\x1f\xaf\xeeX[z\xcf\xac\ \xabr\xfc2\xcb\x93E\xc5[n8\x80\x02<\x0d6\ \xd0\xf5'\x93L\xe5M\x17\xd2\x9f,\xdfDj\xcbm\ \x16+\xc8\xa8\x5c[^\x15\xa4\xb2\xa1\x8f\xf0\xab\xda\xc2\ \xbb\xb49=\xda\xf0\xf9\xdaP\xa3\xed\xd2\xee\xba\xfd\x94\ U\xd8}\xaa\xc23\xf0\xa2D\xd0'\xbc\xce\xc2\x8b?\ \xe1u\x16^\xf2\x09\xaf\xb3\xf0r\xbf\xd6\xaa\xb8!\xe3\ A+Y\xe1\xce$\x8d\x83\x1b\x0c\x8bO\x83\xe3\x1an\ \xcd\xd6\xfd\xe9\x0e\xec\x18\xe6 l\xe2\x93\x5cp\xa80\ \xd1=\x96\xf6\xed\xbcc\xcb\xadC\x1d\xb3\xf1\xf6\xe4\xe5\ \xddg\x1e<\x05\xdfcyw\x182y\x8f\xbec\x0b\ \xbc\xaf\x5cvx;q`\x81\x7fp\x017O[E\ \x8a\xd0\x99\xe2\xbeA\x87\x99'\x85\xdd\x94\xdf;\xf0\x8f\ 9\xf4gT;\x04\xe6\xbe\xa1\x97'\x86\x9e}\xf7\xd0\ \xa3\xc7\x1b\xfa\xd3\xf6\xda\xdb\x00\xde\xe7)\xae\x9ayZ\ \xe8\xfbj\xf0\x1bW=\xfe\xb1\xb1o\x8e\xc1\x92(R\ >(\xf7\xa2\x95\xb7\xc9\xee\x8c\x1c\xec0\x0ex\xd7c\ \xad\xc7\xd0>@Gpn@\x92\xf80\x94=\xca\xd4\ \x84\xb8\xc4=\xae\x0c\xf7+\xa3\xdf\x08\xc4;s\xbb\xb5\ _\xeb\x03[\xf2\xf6\xd2\xa8\xab\x8f\xf1nq\x22\x06\x9b\ Z\xd1*\xd9\xa2\x84y\x8b\x0b\xee]\xb7`:\xbbr\ \x0foc\x91\xc5\x11u\x05\xa8/\xf7\xb3\xdb[L\x86\ \x12[\x8c1*\xc4\xd0dB\xc25%\xb0\xb3=V\ \xbc\xdf\x0eD\xf7\xc79\xfd5\x03W\x9e7\xdb\xfa\x88\ \xb9\xb8\x9a>k\x1c\xd6\xa7\xd7\xb8:t^x\xf9\xac\ \x0d\x87\xbe\xa7H@\xbb5\x9b\xc7\x16\xa0\xbf7\x18\xb2\ \x90p\x11\x16C\x8e,\xc9\xe1\x91\x84\x19\x94[\x88p\ \xe4\x0e9\xb3\x10\x12\x0cK\x83\xc0\xd3\x0aG\xc4\x19\x12\ i\xb9\x8e\x10\xcc5\xe0\x81G\xb8\x8c 1$\xcc\x92\ T\x12`\xfbR\x0b/ks\x12F\xd1\xe8\x22\xa0\x81\ \xf4u\xc3J\x93\xcfjtA\x14\x05\x9c\xca\xdb\xed\xb7\ \x12#R\xdd\xea\xc8A\x1a\x8cn\x96y\xde\xa6\xfd\x9d\ \x84\xf1h\x1e\xe6*\xad\xa8M}\xd7\x99u\xc0oj\ \xca\xd6\x1e\xa3\xf0\x9b:C\x8e\x0d\xb0\x9c1\x89$\x1b\ \x12aI\x86\x19\xa6\xbd\x1e\xc4I\xacj\xf3\xeb\x13\xb5\ \xefe~{\x95,\x8c\xc7\xcc\xe2\x8e\xc0\x94\x0d9\xb7\ \x18\xa7\xd8\xc1\x86\x03\x0f\xa5\x88K\x07\x0f9\xb5\x5c\x84\ \xe0\xb1\xd9\xc0\x8e\xc5\x80F\xe9\x10\x82%%\x86\x7f\xda\ e\x820q\x8aPR\xc2\x84\xc3\x1fp\xd8v\xfc\xc6\ \x90\xac\x08aW\xfb\x88\xb9\x03^BfjG8s\ i\xeb\xd9\xfb\x01\xc5n\xaf\xdc\xc0j\x89\xb9\xae-\xc9\ \xb8#eQn\x88c\xbe\xf5\x0a\x96/A\x0d(\xc6\ 2r\x8eE\x88\x8e\x920\xb8\xa8\x22\xe7B09l\ Y\x1el\xe0vjMZD2\xe80\x04\x92\x15\xba\ \x8dcp2l}7\xf4\x03\xa25m[=\xa5\x0e\ i7\x88\xbc\xe9\xfa\xc5e\xe4\xe5\xea\xb9n\x94:\x22\ \x1c\xda{q\xc9\x18\x7f\xd1l\x83j\x81\x95H\xe9J\ \xd3m\xed2z\x85R\x0c%H0\xc5C\x90\xc9%\ 4X\xb7\x91\xb9\x83o\x0d\xa7\x09\xbd\x0asA`\x09\ \xe2\xd0\x07\x88 \xc2x\x03\xf5\xef\xba\xd4\xc1\xce\xb0\xb8\ `\x08\x12\x0b\xcc\x04&B Q0\xfc\x98\x18\xf0w\ \xc10:\xc4\x10\x11\x07\xd2\x0a\x9f2\xadG\xdd\x97A\ \xdb\xaa*\xf2\x0c\x16\x0dS\xe2\xce\xd8\xc1\xd8\x12E\xdc\ b[\xd8\x8a-\x06\x1b\xf4\xc7q*z\x11\xc7(\x84\ _#\xb6\x17\xce\x8a\x10x\xd9\xccKSoShh\ \xed\x17\x0f#\xc8,A)\x87R\x12\x96\xe3\xea\x0b@\ P\x94\xda\xe5PZ\xa8\xf8`\x03\x95\xc8\xb1!\x16\x07\ \x18P\x81\xd1\xbe\xc0\xbb0j\xed\xe8vAZ\xa6\xd1\ \xf3\xbd\xdd\x8d~Tz\xf1J\x8f\xefy\xdfz\x1c\xe8\ A\x92\x93\xaf\x83\xe4\xa5=\xad\xf6\xc5\xd3;J\xa8\xe5\ Wo\xbeC*UE\xe4Z\xae\x84]\x03\xe6\xcat\ \x8e\xd6Q\xe7\xc1\xec\xf1T\x92)\x9ej\xe9\x84Z\xea\ \x9c\xd2\x9eXM&\xfd)\xea\xc9\xbd\xbb\x9ep\xb3(\ \x11q\xbc\x8a\xd8\xe3\xac\x22\xe7\xa9\x8aN\xa9\xa2\xc30\ \x1d\xae\xa2\x9fcU\x92G+\x03?\xce\xcax\xda\xab\ \x9dT\x19\xfc\x1e\x95A\x1eTeT\xbf\xe6*\xf7\x02\ /\xf7\x9a\x83\xa3\x8a\xc2!\xc2\xf5;\x8b\xc1d\xf4\xe1\ \xfam-\xcc\xf7G\x7f$\xe9\xe7\x06\x04\xcd\xe0\xdd$\ \xcb|\xe0\x01\x93\ \xec\xdfs\xc0\xf6\x17\xad\xa4\x9bB`i\x14\xfa*\xce\ \xee\x90\xdb\x9d\x01f\x80\xfb\xea\xea}\x12\x1b\xbf\xf9\xb9\ \x81!G\xe8\x88\xb1\x11\xd7g\x0b\x18\x1b/u\xf2\x14\ .\x14|\x9d\x99\xc5k\xc9Iz\xd5R\xa6Mx3\ \xadO\x8c;\xee\x86y\xa4\xae\xfe\xbb\x9a\xeb\xb3\xba?\ \x0b\x91[R{\xba\xbd?\xbf\xe0\xdcS\xa5%\xa6\xfa\ u\xdd\xec,\xf5oS\xa5\xfe\xfd\xe6\xda\xf8\xf5\xdd\x7f\ ~%/\xcf4bW\x9f\x16\xbbX\xdeDa6S\ \xe7\xa1P\x9aq\xa6\xfe\x1e]Zd\x18\x00k8\x09\ \x81^\xca\xb5\xb3\xd4\xb7\xdf'\x81}\x9dz\x93\xdc\xfe\ P\x06?\xb3C?\x89\xb3-\xf5\xaf?\xc2T\xe9\xf7\ \xfc\x0b\xd1-\x19]\x88\x15\xf4\xff0\x89\xafZ\xef\xb0\ O@\x89\xef\x05+uS$\xe6*\xfc\x1c\xdaa\x1c\ \xa8\xb5\xb5\x98-^\x17\xee\x8c\xdf\xa4\xf9\x0ajf\x0b\ [%\xa3\x9b\x92\x02\xf2\xcd\xc6\xf0\x8c\xady\ ;\xf3\xeb\xae]v\xda\xaaw\xb7\x1a\xf1\xa5]u\xea\ \xe2\xaeY+\x0f\xae\xda\xf5wa\xadu\x06\x96E\xe9\ 2\xbe{\x86\x96\xfdo\xe9\xa5\xaaM\xdd?E\xeb[\ \x90\xba\xeb\xcf\xfey\xdb\xd6B\xbd\xca\x18\x14\xf6&B\ \x22\x97\x0d\xa9\xfe\xe2\x80p\xcc\x0cB,,\x19q\xf8\ \xb0\xbc\xaa\x1ew\x9a\xb3DD`\x05\xde\xff+\x82$\ \x06\xc3!oM\x7f\x99\xdez\xf92U\xcd\x17\x88\xcd\ \xdfw$\x81\xd2\xabE6\x1e\xf8~\xf5\xed\xc9O\x06\ \xdc{\x83;\x16e\x186\x83-\xe0\x1a0\xb9\xb4\x1c\ !\x1c\xc4\xfa\x90\x13\xdf\x19\xb9\x9e\xdd\x90\xeb\xbc\xe8\x02\ \x09\x9b/N\x5c\xf9\x93e\xa0\xf8\xd18n\xbf\x07~\ X\xfe\xd3\xa44I}P\xf8\x8f\x01\xbd\xd4\xbb\xcc\ \xabg\xff\x07\xf3\xff;\xbc\ \x00\x00\x05(\ \x00\ \x00\x14Zx\x9c\xedW[o\xdb6\x14~\xcf\xaf\xd0\ \x94\x97\x04\x8b$\xeabY\xd2\xec\x14X\x83\x16\x056\ \x0cX\x1b\xecq\xa0%Z\xd6\x22\x91\x1aI\xc7v\x7f\ \xfd\x0e\xa9\xab\xaf\x0dZ\x14\xed\x8691l\x9esx\ .\x9f\xce\xcd\xb3W\xdb\xaa4\x9e\x09\x17\x05\xa3s\xd3\ \xb5\x91i\x10\x9a\xb2\xac\xa0\xf9\xdc|\xfc\xf0\xc6\x8aL\ CHL3\x5c2J\xe6&e\xe6\xab\xfb\xab\xd9\x0f\ \x96e\xbc\xe6\x04K\x92\x19\x9bB\xae\x8cw\xf4I\xa4\ \xb8&\xc6\xcdJ\xca:q\x9c\xcdfc\x17-\xd1f\ \x90\x92H\xf2\x9aQJR\x09\xaa\x84\x0df\x1b\ \xab\x05\xd9\xfc\xcc\xb6s\x13\x19\xc8\x08\x03\xa3\xf5\x0c\xe0\ \xa2\x22\xe9<\x98\x9b\xe7\xa2U&D\x8dS\x22\x9c\x8e\ >\xba\xdf9\xd3\xdf\xef\x08\xb6`k\x9e\x92%\xa8 \ 6%\xd2y\xf8\xf0\xd03-dg2\x1b\xa9\xd9\x96\ \xa0{\xcf\x87\x8d\xaf\xad\xbbq\x1c;\x9a;H\x9f\x92\ \xf3\x10BN\x17q\xeb\xdas\xfeBI\x9e-\xcf\xda\ F\x9e\x03\xf0\x83\x84%vT\xe2\xadE\xc5\xf5\xe8j\ \x9a\xf67S\x95E\xc53IYU)\xfc5x{\ \xc2\xd9 \x5c\xafy\xa9%\xb2\xd4\x81'W\x11*\x85\ \x03\x0f\xdf1\xefA~\x96\x91\xa5P\xf7\x9a\x04R\xa7\ @3\x80\x05X\x10\xcc\xdfr\x9c\x15p\xa9\x11j\xc4\ \xf69~4\x8d\xcd\x9e\xdd%Z\xca\xca\x12\x12\x04r\ \xa6\xdc\xe0\x9dh\x95\x82Z!Y\xddI\xb7i\x0b\x14\ ?\x8a\x5cs \xb3\xe5R\x10\xb8\x8cF4!w%\ i\xa4-\xd0\xcexr\x8d\x03\xc0\x18\xfd\xa4I\x0cR\ \xa7\x90\xbb\xc45\x0d\xe7\xd3\xc6\xfc\x13\xc6\xdc\xcb\xc6\xc8\ \xd2\x8b\xbd\xf8\x9c\xb1\x99\xb3\x8f\xcae\x10\xcf\xa1t\x09\ \xe50>\x07\xe2\x8b\x91\xb9\x0c\xf0\x00\xcf\xf4\x02\x88/\ F\xe62\xc0#c\xfeW\x02QWs\xb2\xe2\x04\x8a\ \xee\xfa\x04\x9a\x17Sz2\xa8q\xe7\xa6\x15\x0c\xe7\x1d\ \x9c]\x14\x04\xb6\x1fz\xde \xe5\x81\xd4d$\x05\xe7\ 8\xd6Bn\xd4S\xf3\xd6\xc0#-$\xb4\x97\xb5 \ \xfc\xbdjy\xbf\xd1GA\x8e\xa4>pL\x054\xb6\ jnVX\xf2b{\x83\xec(\x0c\x83\xe9\xd4\x9b\xde\ !\xf5\xd7\x1e\xa1{O};\x9c\xf8\x01\x8a\xef\x5c?\ \xb4}\xe4\xc7\xee\xed\x80\xeb\xd7@p\xfa\x09\x04\xa7\xff\ \x1d\x04g\x8e\xea\x8c\xfa[?\x14\xd5\xb8\xca\xd4\xc8\x1b\ \xda\xe7\x02\xf7.\xd48'\xba:\x00\xb8\xa5~\xb5\x8c\ \x05\xe3\x19\xe1\x1d+\xd4\xaf=V[@\xcdfq\xb5\ \xff\x9c\x94\xd6\x9e\x8fN\xf3\xc5\x0agl37\xbdC\ \xe6G\xc6\x00\x86\xd0\x9eL \xdc\xe8\x90\x9b\xc2\xdc\xf6\ }\xdbw\xe3\xc0\x0d\x8f\x98`\xce\xf7\x00*\xc5=d\ \xc2v\xb0Vc\xc5Z7\x8f\xa4\xde\x1e]_s\xae\ \x04J\xbc#\x10\xb5\xfe\xe8\xd4\x88\x15\xdb\xe4\x5c\xa1'\ \xf9\x9a\x1c\xde\xdc\x14\x14\x82\xb1\xda\xcd\xc7\x0d\x82\xa3\x90\ [\x89n\x1b\x8a\x02\xff\x8c\xc4vhv\x87\xac\xddy\ V\x85\xb7EU|$\xd9\xd0\xbdz\x11Aqm\xe5\ %[\xe0\xf2\xb4\xf7Z`\xb1P+\xd1Y6e\x19\ \x11\xa7\xf9:\x87V$}\x22|\xc10\xcf\x94\x97m\ =\xf72\x0a\xba.\xe9\xe5N\xadW\xdb\x9d\xa2\xed\x95\ \xa6\x22\xb8\xee\xc4\x1b\xfa/\xa9j\xb5j\xe9\x95u\xa8\ \xc0\x8cI\xa9\x22]\xe2rTK\xcf\x85(\x16\xaa\xe5\ \x8f|\x04\x0d\x14\x031;\xa0\xaa\x90ZyeT\xf5\ \x04\xc1h\xb9k\xc5\xbaj:.\x22M\xaf\x88\xc4\x19\ \x96x\xa8\xa8\x8e2\xed\x02\x87\xfd(\xf9\xfd\xe1M?\ \x9b\xd24\xf9\x83\xf1\xa7a\xae(\x01\xbc`k\xc8\x85\ ~\x5c\xaa='MT\x1b\xc0\xf2\xbe\xa8\x00V\xb5\x97\ \xfd\x08\xbb\x12\x14v\xcf\xd8\x13VX\x0eJ\x1b\xb5\x9c\ 4\xab\xe6\xc9\xdd*K\xabB]r\xde\xcb\xa2,\xdf\ )#\xe3\x19\xea\xb4\x8evsn\x14\xc7\xcc\xe9\xa2\xd4\ \xa7\xfc \x0bJ\xbc \x90_\xbf\xa8\xa21\x8er0\ \xe7l]W\x90CmY\x99\x03v{e&\x87F\ \xa8\xbf\x96\xf0;\xe4\x06\xddYq\x145\x0d\xf6\xb6C\ 8\xdf\xcb\x9c \x1em\x1d5\x96\xab\xa3E`\x09\xe1\ &\x14~\xe9\xc0\xfc\xe7\xec\x89$\xd7^\xd4\xee\x1e\xea\ \xd8\xd4n\xe2\x86\xddY\xe5\x04\xb8\x9e\x88\xbf\xd7\x98\x93\ 1\xf5/V\xd0\x04P$\xbc\xa3\x9eZ&TV\x18\ \xae\x7f\xe7\x22\xe4\xea\x01b\xf8\x91\xedz\x93\xbb\xe6\xe3\ `\xc5P.\xfb\x08yc\xf20\xf5\xf4o\x18\xc6-\ hP\xcfX\xae99\xd88\xfb4\x05\x80\xd5\xc3\x85\ BM\xd3\xf1c\xfd^\x10\xf9\xd5\x98\xb8\x1a\x84\x01\x15\ \x0d\x91\x1f\xdbA4\xf5\xce\x80b\x85\xdf\x16\x96~o\ \x1c\xc3\xe2}\x0e,\xfaPB\xa7\x96Ip\x04UG\ \xc80\xccF\xce\xf1N{\xf1\xc5)eM\xffG\xef\ \x0b\xd3\xcf\x9a|S\x08\xa1}\xdf\x1c\xaf\xb5\xd3\xdb}\ L\xa3\x7fOB~\xe3\x82>\x8d\xe7\xe4\xbb\xc0\xf3\xf3\ S\xd4\xfa*\xc3c\xe6\xe4\xcd\xf0\x87\x8f\x99ZG\xee\ \xaf\xfe\x01\x8f\xca\xf4\xf8\ \x00\x00\x0b`\ \x00\ \x00?\xfdx\x9c\xedZ[o\xdb8\x16~\xef\xaf\xd0\ \xba/-\xc6\x92y\x93D:I\x07;[\xcc\xa0@\ \x17\x03L\xdb\xbd\xbd\x04\x8aD;\xda\xc8\x92 \xc9\x89\ \xdd_\xbf\x87\xd4]V\x12\xdbq\xb2\xb3;I\x9b\xd8\ $\x0f\x0f\xc9\x8f\x87\xe7F\x9e\xff\xb8YE\xc6\xad\xcc\ \xf20\x89/&\xd8B\x13C\xc6~\x12\x84\xf1\xf2b\ \xf2\xed\xeb\xcf&\x9f\x18y\xe1\xc5\x81\x17%\xb1\xbc\x98\ \xc4\xc9\xe4\xc7\x0fo\xce\xffd\x9a\xc6_2\xe9\x152\ 0\xee\xc2\xe2\xda\xf8\x14\xdf\xe4\xbe\x97J\xe3\xdduQ\ \xa4\xf3\xd9\xec\xee\xee\xce\x0a\xabJ+\xc9\x96\xb3\xf7\x86\ i~x\xf3\xe6<\xbf]\xbe1\x0c\xe8\x15\x14\xd7\x17\ \x13\x87MT\xe9Z\x86\xcb\xeb\xa2)\x86\xc1\xc5\x04\xe8\ (\xe2\xb6.w&\x88K\x82\x8a\xf3\xbc\xdbb\x11\xe3\ \x1d\xf2\x10\xf2\x176\xa5bj\x10D\x88\x89\xe0?{\ \xaf;\xe5\xb0\xac\x14~\xe7A\xe2\xc7\xde\x0aV\xe3\x91\ \xf4\xf2k&\xe5m(\xef,\x18\xb0\x1c\x0c\x0a?%\ \x9b\x8b\x092\x90\xe1:\x16\xd7\x7ft\x13\x80\x15\xe7\xf3\ z\xf0\x8b\xc9}kU\xdc\xf3\xd4\xf3e>\xab\xeb;\ \xfd\xeby4\xfd\xeb\x0a+O\xd6\x99/\x17\xc0BZ\ \xb1,f\x1f\xbf~l\x1aMd\x05E\xd0a\xb3\x89\ \x80wo\x0ewT\x8f\x8e\x85\x103\xdd\xdaR\x8f\xd1\ \x11\x84\xd0\xac^u5\xb5\xdb\xe5\x9e\x94Y\xb0\xb8w\ lDf\x80\x83}\x9fM>\x00\xfdy \x17\xb9\xeaW\ \x8a\x8f*\x81\xfc\xb8\xba\x0dZ\x01\x0e\xe9e\xbfd^\ \x10B\xbf\x92\xae#G~\x12E\xd2\x07\x09\xf4\xa2;\ o\x9bO\x1a\x02`\xd5\xefJE\xc3\x14\xd8\xe6E\x92\ \xd6\xb4 a\xc56\x02\xb1P\x95&pL\xb2\xf9[\ \x82\x98\xc7\xdd3]\x95\x80H\x84\xc5v\x8e'm\x97\ d\xb1\xc8%\x8c\x8b:uZ\xfc\xa1\x03\x0c%&\xc6\ l\xff\xc1\x5c\x22\x16\xfe\xe2\xf1\xc1\xf0\xe8`\x027\x83\ \x9d\xcf\xfa\x8b~\x18\xc4]\x8c\xb8\x8b\x0f\xc1\x08\xe4k\ 1\x9c\xf6\xd9\xbe q\x97\x1e\x04\xd2b\x01\x18\xf9{\ \x8c6\x8a\x12w\xed\xd3\xa1\xe4\xd0\x03PZ,\xe0\x14\ \xa2\xa3Qr\xec\x03Q\x12\xd2\xe3G\xa3\xe4\xb8\x8f\xa1\ \xb4\xf2\xb2\x1b\x99\xed\x1cD\xe8\xee\xdf(>\x7f\xce\xb2\ \xe4\x8e|\x96q\xd0\x0c\x90d\xaa?\x9c\xd1u\x914\ \x95\x99\x5c\xfc\xb3\xbbf(\xff\xa3[\xbe\x87W\xb5\xe4\ \x04\x0c\xc8\x22J\xee\xe6\xb7a\x1e^E\xb2\xdd\x8f\xd4\ +\xae\xfb+S5\xccv\xd9d\x07\xb8E\x18Ef\ \xb6\x8e\xe4\x5c\xde\xca8\x09\x02\xc0-Kn\xa4\xa9\xad\ \xdc\x1cY\x0e\xb1\xeb*\x05\xc6\xbf\x930\x9eg\xc9\xba\ 3\x1f\xc3\x80\x11\xfejp\xcb\xc5\xdc\xe6.\x9f2\x0b\ Q\xeaR\x9b\x18&\xb1\x08r\x09\x17\xf6\x14Y\x08;\ \x08S\xe2\xd4\x94\x9cMM E\xd8E.7|\xc3\ \xc4\x96\xcbl&\xa0\x9eX\xd4%\xc8ABWR\x9b\ 1\xc4\xa7\xb6\xe5` \xc0P\xe9H\xd3\x9dr\x18\x06\ Z\xa8\xf1\xbd3\x95\x22\xf3\xe2\x1c\xcc\xd0\xeab\xb2\xf2\ \x8a,\xdc\xbc\x03\x0ex\x8a\xe0\x9f\xfeR\x96\xdeww\ \xbeU\xa4q\x0c\x8a4\xc9L\x7f\x9d\xddz\xc5:\x93\ j7Za(\xf7\xfd0!\x00\x0f$+N&\x06\ }n\xc7\x0b\x02\xfe#\x0aB-\x07\xea\xf3\xa5\xa4\xe0\ k\x16z\xf12\x92\x9f\xe2/O\x17\x821f\xc7\xca\ \x80#\xc8p\xdfl\xcbu\xa7Hm\x15\x07\x8c\x8d\xbf\ \x19\xa6m\xfck\x7fA\x99\xbfE\xa8R\xf3\x1d\xb9\xc1\ i1\xbe)\x00T$\xdf\x81kHN\xb0\x0d{\xdb\ -\x81\x0e\xb1[\x8cq\x9b\x04\xc7\xda-\x81\x0e\xb3[\ \x08\x11g/_b\xdc\x07B\x8f\xda\xad\xfd\xad\xbb-\ \x0e@\x09\x05O\xf2\x81\x1c|\x98\xa3\x18p\xbc\xc0\xc7\ [wzB\x94\x0e\xf1\x14\x9f\xe8\x03\xd9\x87z\x8a\xae\ t\xe5\xd1(\xd9\x8fz\x8a\xcdAM!\x8cM\xe1\xa4\ B(\xd4\xe8\xa4:Z-\xb6*\xd4\xec\x93\xd2\xd6^\ \xb4\xa1pz\x09A+\xb3\x18\xc1\x18\x83\x1e\x9f\x1b\x0e\ \x98\x03\x8e\xa8\x80\xafx\x94~{11)\xb1\x84\xe0\ \xc4\xc6@e\xda\xcc\xa2\xe0\xe1`ro\x97\xef\xd0\xc5\ \x06\xc66\x17Tw\xc1\xcc\x82\xf1\xa83\xde\xa3\x9a\xad\ \x09\xeaz\x19\xaa0\x1d\xe6\xa7(A=\xaa\x9d\xc4\xfd\ ^J\xaf\xb6HP$\x9c\x16\xc1g\xc0\xca\xc4\x8e\x85\ \x09\xb5\xb1\x9e\x92k9\x0eWf\xf6\x01\xb4\x90j\xc4\ \x8cY\x5c\xad\x17\xdd\x87\x90M\x95\xa1'\xae\xf38\xdf\ \x1d\x80\xc0\x9c\xdb\x88s=\x90e;\x84Q\xf2\x08H\ \xecyA\x82\xc5\xea\x1d{\x14\x17\x88\xe2\x1e\x02\x85\x02\ (\x0f0\xbaGR\xc0M\xd1\x06\x91=\x0c\x02\xc6c\ \x80\x8d6\xe5b\x01Du\xc7\xb2\x04'\xf4FF\ \xb2\xf0\xa2>\xc7\x96\x9e\x22\xc7i\xdb\xf2\xcb\xca#\xb8\ \x98\x14\xd9Z6\x0d\xd0\xa1\x90Y\xac\xec>\xf8D`\ \xec12>\xc3\x9fi\xd7\xe6\xfbI\xba-!\xcfC\ \xe5x\x5c\x82i\x97\x85\x7f-[\xc8\xd3,I/\xb5\ -\xef\xea\x12]q\xb9\xbd\xccd\x04\x0e\x83\x17\xe5\xed\ \xc0*\xb9\xa4St-\xda18\x04^t\xb9\xab\x00\ \x0bpwF\xaa\xf5\x98\xeb8,\xf2!s\xf0\x82\x8a\ \x10\xc6\xbel\x96\xd7o_\xacsyY$\x91\x04?\ \xc4\x97]\x9eQ*\x9b\x84\x5c[{\x1d\x06\xf2\xf2&\ N\x8a\x9aQ\xb3S'K\xca\xb8\xb68$)\xa3%\ \x8a\x1eiF`\xac\xc3\xb22c\xa3\xa1}\xcd\x88\x0b\ ^\xfeIBi|\xd2(j\xc8\xedH\x0f\x9a\x0aa\ \x0f=hu\x92\xec)\xb8\xcd&X\x09[\x17\x9e\xd3\ \x85\xae\xe2\x1adq\x1d\xd7\xa8O8\xc0/\x16\xdc\xe2\ /\xa7\xcbp\xf4y\x1d\x1b\xd4 \x8c~\x1f[\xa2\xc2\ \x9a2\xe7\xa0\xbe@\xe8J^r[NzZ\xbe\x9c\ &\xe7\x80 <\xf9]lM\xbd3\xea\xf3E\xf7\x85\ \x9ct_\x86\xdc\x8e\xde\x17b\xef\x8f\xf8\xffO.\x08\ Y\xb4\x92\x02\xaa\xce\xa8#^4\x1b\xf4\xeb\xba\xf8|\ \xbatP\x8f\xdb\xb1r\x80\xe9\xce\xf9\xfco\xe4\x83\xc0\ \x86\xbd\xc0>|\x0c\xbdU\x12\x07\xa7\xc9\xd0\x8f1;\ \xfa4\xeef\xe5\xc0\x86\xb8\x16r1r\x1dnT_\ \xb9`\xb01hZ\x96 \x9e5\xcao\xcc\x01}\xf6\ \xb2\x0e\x87\x09\x07\xf0E\xceN\x0d\xf3\x89\x94\xe88\xbb\ \xa3\xf7\x8d\xd3\xff\xb1}{\xa9m\xab\x5c\xee\x13z\x8a\ \xa78h\xe0\xbc\xf3\xdf\x87;b\xd6\x9b\xa2\xbf\x98'\ \xf2\xdf\xf7\xcfa\x8a\xc3\xeeq\xd5\xcf\xd19Lq\xe8\ =\xee\xeeh{\x07\x9f0\xda\xb1\xf9\xf0\xc7bx\xfd\ >e~\x0d\x12z1y;\x12\xcc\xdf\x0f7D\xc4\ \xad\x9e\xd8`\x989\xd8X\xccx\xab\xf4\xb7PI\xc0\ ?\x12\x82\xba-\xa7\x0d\xb9\x98Pfa\xea\x10\xd4\xca\ \xed\x96\x8c\xd1.\xab\xb1\xbe\x95\xf9\x91u.\xb3/\xea\ =\xcf\xaf\xf1\xb7n\xfe\xe2\x19\xd2m\xd8\xa2\xb6@\x5c\ \xa7\x0e\x09\xb8\xd7\x08\xdc2\xf7\xc9\xa97nQ\x8e\x08\ Q\x89<\xc2,\x1bWT0\x04(\x9c\xfe2\xca\xbav\x1e*\xcf\x01\ \x06\x09q\x1e\x5c\xe9\xc2\xa0\xad\xbf\xe4:\x07\x82\xafP\ \x80\x06\xf7\x05\xa4{W\x00\x9b;\xbfZ\x17\xc5\xce\xfd\ \x01\x88\x9d\xcc\xeaZ]\x88@\xa1\x14sV\xd7\x05\x1e\ \xa8\xf4,\x03\x5caP\xd9\xad-\xed\xdd\xbcI\xbd\xb4\ \x13-\xe1\x00\xad\x0c\x06\x054B\x09\xa9>9\x9d\xca\ $-\xb4\xea\xfa\x92J\x09S\xbf\x06\xf1\x1bv)\xe4\ \xa6\x18\xd6\x95\xca\xc3\xbc\xf2\xfc\x9b\xa5\xbe\xfc\x98{>\ \xe8\xe9\xb5\x92\xaaAFBI\x11e\xb8\xeb\xc7T\xaa\ \x9au\xedv\xad\x9c{\x84\xfa\xb5\x8fe+\x19\xc5\xdd\ \x1c=\xa8#\xdb\xc2\xc2q\x10\xea]\xea\xff\xd1%6\ \x10\x01'|\x7f\x89\x1d\xcb\xda\xbdJl-\xb1&=\ Rf!`a\xc8q\xc5@dM\xcc-\x84l`\ \xfd*\xb3\xaf2\xfb\x5c2\xdb\x0bP\x0f\x95Z\x873\ 6\x94Z\xc7\xa2\x08\x0bF\xe8\xab\xd4\xbeJ\xed\xb3I\ \xad{\xac\xd4\x12\x8b:\xd4\x16\xac/\xb5\xeaA\xae\x00\ \xaf\xe1\xd5=xuh\x9fKh\xedc]Zb\x11\ ,\x04\x22|\xa0i\x89\xb08\xc3.\x13\x9dD\xd4\xb2\ \x0c/\xe1\xe3\x5c\x05\xbc\x1f\xde\xfc\x07^\x14V\xec\ \x00\x00\x0bV\ \x00\ \x0059x\x9c\xe5[[s\xdb6\x16~\xcf\xaf\xe0\ */\xc9T\xa4p!@@\xb6\xd3i\x9bi'3\ \xd9\xe9N\x93\xee\xed\xc5C\x93\xa0\xc45ErH\xca\ \x96\xf2\xeb\xf7\x80wJ\x94-)\x8a\xb7\xbb+\xc7\x16\ \x09\x1c\xdc\xbespn@\xae\xbf\xdf\xac\x22\xe3Ae\ y\x98\xc47\x13l\xa1\x89\xa1b/\xf1\xc3xq3\ \xf9\xfd\xf3\xcf\xa6\x98\x18y\xe1\xc6\xbe\x1b%\xb1\xba\x99\ \xc4\xc9\xe4\xfbw\xaf\xae\xffd\x9a\xc6O\x99r\x0b\xe5\ \x1b\x8fa\xb14>\xc4\xf7\xb9\xe7\xa6\xcax\xb3,\x8a\ t>\x9b=>>Za]h%\xd9b\xf6\xd60\ \xcdw\xaf^]\xe7\x0f\x8bW\x86\x01\xad\xfcby3\ \xe1\xf6D\xbf-U\xb8X\x16\xedk\xe8\xdfL\x80\x8e\ \x22\xc1\xca\xf7\xde\x04qEP\xf7<\xef\xd7X\xc4x\ \x83\x5c\x84\xbc\x80Q*\xa7\x06A\x84\x98\x08\xfe\xd9o\ \xcbF9,+\x85\xdf\xb9\x9fx\xb1\xbb\x82\xd5\xb8$\ \xbd\xfda\x13\xe6\x7f\x89\xdcX\xfd\x10/\x22\xf5S\x12\ \xe7E\xe6\x86qa\xc1\x04\xaa\xc1C\xf5\xf8c\xb2\xb9\ \x99 \x03\x19\x0e\xb2\xec\xf2OY\x05\xe0\xc5\xf9\xbc\x99\ \xcc\xcd\xe4\xd0\xda\xf5hy\xeaz*\x9f5\xe5\xbd\xf6\ \xcd\xbc\xda\xf6M\x81\x95'\xeb\xccS\x01t\xa1\xacX\ \x15\xb3\xf7\x9f\xdf\xb7\x95&\xb2\xfc\xc2\xefu\xb3\x89\xa0\ \xef\xc1\x1c\x1ei9:\x96R\xce\xca\xda\x8ez\x8c\x8e\ \x84f\xcd\xaa\xeb\xa9=,\x8e\xa4\xcc\xfc\xe0\xe0\xd8\ \x88\xcc\x80\x13@a\xe6\xdb\xb8p7f\x9c\xbf\xee5\ \xf5\xbc\xb6\xa5\xa7e*|P^\xb2Z\x01'*\xf0\ \x06\xc4~G\x9c\xae\xb3\xa8\xa4\xf0\xbd\x99\x8a\xd4J\xc5\ E>\x039\x98M\xde\x01\xfd\xb5\xaf\x82\x5c\xb7\xab\xc4\ I\xbf\x81<9e\x1d\xd4\x02\x1c\xca\xcd~\xc9\x5c?\ \x84v\x15]E9\xac\xa1\xc2\xc1u\x1bh\x95\x17I\ \xda\xd0\x82@\x15\xdb\x08\xb8\xae\x0bM/\x89\x92l\xfe\ \x9a\x004ApU\x16%\xc0\xf1\xb0\xd8\xce\xf1\xd5\xa4\ k\x93\x04A\xae@\xd2Q\xaf\xac\x14wh\x01c\xd1\ \x891;~\xb4 \x08\xbc\xc0;b4<>\x1ak\ G\xbb\x9e\x0d\x97}2J\x9c\x9e\x80R\x10\x80\x00\xa1\ \xb3Q\xe2\xecD\x94\xa4r\xc5\xd9(q\xe79\x94V\ nv\xaf\xb2\x16\x9dF7As\xef^\xf7\xf3C\x96\ %\x8f\xe4\xa3\x8a\xfdv\x80$\xd3\xedA\x03\xad\x8b\xa4\ -\xccT\xf0\x8f\xfe\x9a\xe1\xfd\xef\xfd\xf7\x03}\xd5K\ N@\x17\x06Q\xf28\x7f\x08\xf3\xf0.R\x1d?R\ \xb7X\x0eW\xa6Kl\xe6\xd8\x93=\xe0\x820\x8a\xcc\ l\x1d\xa9\xb9zPq\xe2\xfb\x80[\x96\xdc+\xb3T\ \xd8sdq\xc2\x9a\x22\x0d\xc6\xbf\x920\x9eg\xc9\xba\ 7\x1f\xc3\x80\x11\xfel\x08\xcb\xc1\x82\x09GLm\x0b\ Q\xeaPF\x0c\x93X\x049DH6E\x16\xc2\x1c\ aJxC)\xec\xa9\x09\xa4\x08;\xc8\x11\x86g\x98\ \xd8rlfK('\x16u\x08\xe2H\x96\x85\x94\xd9\ 6\x12Sfq\x0c\x04\x18\x0a\xb92\x9d\xa9\x80a\xa0\ \x86\x1a_zS\x01e\x1e\xe7\xa0AW7\x93\x95[\ d\xe1\xe6\x0d\xf4\x80\xa7\x08~\xca\x87\xea\xedm\x9f\xf3\ \x0d\xff\xbc$\x8e\x95W$\x99\xe9\xad\xb3\x07\xb7Xg\ Js\xa3\x13\x86\x8a\xef\xa7\x09\x01\x18\xd3\xac\xb8\x98\x18\ \x0c{;_\x10\xf0\xff\xa3 4r\xa0\xbf_J\x0a\ >g\xa1\xab\xfd\x8c\x0f\xf1\xa7\xaf\x17\x82\xb1\xce\xce\x95\ \x01.\xc9.\xdf\x98\xe58S\xa4Y%\x00c\xe3\xaf\ \x86\xc9\x8c\x7f\x1e/(\xf3\xd7\x08\xd5j\xbe'78\ -\xc6\x99\x02@E\xea\x0dx5\xe4\x02l8\xdan\ It\x8a\xdd\xb2m\xc1\x88\x7f\xae\xdd\x92\xe84\xbb\x85\ \x10\xe1G\xf9\x12\xa3vK\xa2g\xed\xd6\xf1\xd6\x9d\xc9\ \x13PB\xfeW\xf9@\x1c\x9f\x84\x92\xe3\x0b\x1c\xe0\xf3\ \xad;\xbd J\xa7x\x8a_\xe9\x03\xb1S=EG\ 9\xeal\x94\xd8\xb3\x9eb\xbbQS\x88\xc8R\xd8\xa9\ \xe0\xc5\xb7:\xa9\x09\xbc\x8a\xad\x8e\x92\x86\xa4\xb4\xb3\x17\ ]T\x97\xdeB\xbc\x05&\x80\x11.\x046\xe6\xa0\x8b\ \x18r(\x97\xfa\x19\x8f6\xd8\xdeLL\x0a\xda\xc3\x16\ T:@e\xda\xd2\x12\xc4\xe1D\x1cl\xf2\x05\x9a0\ li\xb7\x9bQ\xdd\x04\x13K\x82\xe5\xc0t\xbcI=\ _\x13\x14\xf6\x22\xd41'\x85\x90\x13(\xb5%\x82\x8f\ =l\xa55k\x87\x05E\x92w\x18~\x03\xb4Ll\ \x83\xbe\x96B\x94\xeb\xe5\x16\x96L\x0a\xf9\x14\x5cHW\ \x22\x80\xc9f\x0c\x1e\xd1!\x8c\x80\x023\xce\x10}\xbe\ \xe3=\x84\x1c\x0b\x0bA\x91S\x0eeAC!\xf93\ 0\xd9\xdf\x16&\xdb*\xf9\xf4\xa4 \x95\xc8`\x84\x9e\ B\x05dM<\xd1\xd1\x01Ya\x16\xd6\xa2B\x9d\xa7\ A\xc0x\x0c\x04\xb0\xd3\xa6\x0a\x02 j\x1aVo\xb0\ K\xef!\x00.\xdch\xd8cGO\x11\xe7]]~\ [{\x057\x93\x22[\xab\xb6\x02\x1a\x14*\x8b\xb5\xed\ \x07\xbf\x08\x0c>F\xc6G\xf83\xed\xdb}/I\xb7\ \x15\xe4y\xa8\x9d\x8f[0\xef\xaa\xf0\x96\xaa\x83<\xcd\ \x92\xf4\xb6\xb4\xe7}}R\x16\xdcno3\x15\x81\xd3\ \xe0Fy7\xb0\xce\x8d\x94\x19\xa7\x0e\xed\x18\x9c\x027\ \xba\xddW\x82\x05\xb8<#\xc5\xe5\x98\xeb8,\xf2\xdd\ \xce\xc1\x13*B\x18\xfb\xb6]\xde\xb0>X\xe7\xea\xb6\ H\x22\x05\xbe\x88\xa7\xfa}F\xa9j\xf3K]\xe92\ \xf4\xd5\xed}\x9c\x14MG-\xa7\x0eX\x8a\xce\x85\x89\ \xa2\x92[n\xf4\xe8n\xf3\x01\xaf\x86M\x1d&\x9dS\ \x0c\xae\xfe\xd03M\x09\x8c%OtK\xf6GC\xc7\ \x9a\x12\x07<\xfd\x8b\x84\xd3\xf8\xa2\x91\xd4nogz\ \xd1TJ\xb6\xebE\xeb\x9d\xc4\xa6\xe0:k\xeb\xc2\xca\ \x97o\xe9F\xd7\xb1\x0d(\xa72\xb6\xd1\xdf\xb0\x81_\ ,\xc0\xc5\x9f.\x97\xe5\x18\xf6un`\x830\xfac\ \xb0D\x876U\xdeA?@\xf8J^\x92-\x17\xdd\ -\x9f.\x93w@\x10\xa2\xfc!X\xd3pF\x7f\xbf\ (_\xc8E\xf9\xb2\xdb\xdb\xd9|!\xecx\xc4\xffw\ \xf2A\xc8\xa2\xb5\x14P\xbdG\xb9|\xd1\x8c\xd0\xaf\xeb\ \xe2\xe3\xe5RB\x83\xde\xce\x95\x03L\xf7\xf6\xe7\x7f\x22\ '\x046\xec\x05\xf8\xf0>tWI\xec_&K?\ \xd6\xd9\xd9\xbbq?3\x076\xc4\xb1\x90\x83\x91\xc3\x85\ Q?\x0ai\x03c\xd0\xb4zc\x10\xa1UO6\x07\ }\xf6\xb2\x0e\x87\x09\x1b\xf0E\xf6N\x03\xf3\x85\x94\xe8\ xwg\xf3M\xd0\xff2\xbe\xbd\x14\xdbj\x97\xfb\x82\ \x9e\xe2%6\x1a8\xef\xe2\x8f\xe1\x8e\x98\x0dS\xca\x07\ \xf3B\xfe\xfb\xf1yLy\xdaY\xae\xfe\x9c\x9d\xc7\x94\ \xa7\x9e\xe5\xee\x8fvt\xf0\x09\xa3\x9d\x9b\x13\x7f.\x86\ /\xafW\xcc\x97 \xa17\x93\xd7#\xc1\xfca\xb8!\ \x22\xee\xf4\xc4\x06\xc3\xcc\xc1\xc6b[tJ\x7f\x0b\x85\ \x04\xfc#)\xa9\xd3\xf5\xb4!7\x13j[\x98r\x82\ :\xb9\xdd\x921\xdaE=\xd6\xefU~d\x9d\xab\xec\ \x93\xbe\x8e\xf2k\xfc{?\x7f\xf1\x0d\xd2m\xe0M\xdb\ L\xd0*w(,\x06sE\xceW\xa7\xde\x98\x85\x05\ \x16\x8e\xce$\xc2ba\x00\x86\x0edyG\x12\x92\xc4\ \xc6L\xe8\x5c\x9c\xc9-\xcc$\xc5\xbbI\xe5\xfdd\x9c\ I\xbf:\xc9\xf3\x84\x80\x94\x87\x10O\xedG.\x07\x02\ B\xa8E!v\xb2\xc5@B0\xb7\xa0\x88s{(\ !\xd2\xa2\x1c\xd9\x94\x0d$d\x9f\xf6i\x09\xd9\xa5\xfa\ \xdc\xa9\xacR{En\xa1\xde\x98`\xb0L\x02\x9a\xea\ \x9bB\xe5\xe0'\xa1\xeao\x10\x00\xc5\x04\x91\xe3\x04v\ \x08\xd9\xc5\x0a\x0b\xee\xf4\xfa\xd2XA\xb4\x01\x11)\x91\ \xf6.V;\xb4\x17\xc0\x8a9\x96\xe0XH|\x1cb\ #\xe7\x96\x98\x9b\xe8\x90\x96\xee\xce\x00\xb10\xf93\xaa\ xD\xc9\x0aW\x11j\xef\xa8\xf4\xc3j\xba\x1b\x8e \ \x93<\xa3\x8b\xc7NU\x95t\x11?4\xdc\xd7\x9e\xca\ \x01R\xc7\xe0\xf4\xa2(\xbd\x04F\xd73}\xe5\xad|\ ju\xb7\xbe\x87\xe8\xeb\xfb\x8c\xaf\xda)\xdd\xb9\xad\xcc\ \xa6\xeeB\x95\xc3\xc1\xb6\xab\xecl]q\x97d\xbe\xca\ \x9a*^~\x06U\xf5\x8c\xaa\x0b\xa4u\xdf\xdd\xa9\xc5\ B\xb5\xf5h\xbc>_\xba~\xf2\x08\x9am\xb7\xf2K\ \x92\xac\xf4A n3\x12\x9d\xf6\x00\xebB`\x1b9\ \xf0#\xf6*\xb7\xa5\x95\xe0\x14~\xec\xbd\xcau\x96\x01\ Hf\xe4n\x15,\xa8\xfcj\xe0\xcf\x97\xc9\xe3\x22\xd3\ \xc0\xf4NF\xda\x96\xba\xc6\xbc\xbb\xd3\x97A\xc7\xaa\xfd\ \xc4[\xeb[\x88f}\x0e\x91nv)\x1e\xc3\x18\x16\ j\xd6\x97_1mC\x84]\x8a\xe6B\xac\xb0\xf7\x00\ \xab)`\x0e\x0c\x1f\xa8\xdbv\xc2\xbb[\xb5r7\xe1\ *\xfc\xa2\xfc\x11\x92R\x00\x96\xca\x03\x9f\xf1.q\xb3\ \x92d\xd75\xd0\x104\x92Z\xb9\x02\x9b\xad.\x1bh\ e]@1\xee\xac\x9aZ\xa5\xed\x19O\xa7!\xc6O\ \xa1T\xecB\xa1\xbfS\x9a\xc7nZ\xd3\xeb\xde\xb5\xbc\ \xe7I\x1cmk\xb2j'\x5c\xcf\xf6E\xbd,_\xa9\ \xc2\xf5\xdd\xc2\xed\xe4\xbe)\xa1H\xb6\x8b\xcc\xfc`\xfe\ \xdb\xfb\x9f\xdb\x0d\xecy\xf3\xbf%\xd9}\xb715\x81\ {\x97\xac\x811\xadN\xd17M\xbd\xb9V\xf0n\xf1\ .\x5c\x01\x84\xfaf\xecw\x9bU\x04;\xb0\xad\x18\x10\ k\xdc\xbaN\xabn3U]\xf6\x1d\xbd\xdd\xea{\xab\ P7\x9a}* \xd0\xf8\xa0\x07\xe9+\x9aY=\xd1\ F\x19\xf4\xd6\x011@\xbd\xd0\xf2m\xd1\x010\x10\xfb\ \x96\xbd\x91{\xa7\x8f\xe7>\xeaJc\xafv\x91%\xeb\ t\x95\xf8\xaan^\xd7\x17c&\x0eM)y\xdb \ \xbb\x18H\x87\xcd;+=\xda\x16\x1c\xd8)\xb1\xda\xe6\ \xfd\x0e\xea.\x1c\x8a\xfa\x97\x17G/w\x09\x04\x1b\xac\ \x0en\x1d$\x088\x9fX\x07\xe0\xc4\x96\x02\x14\xc3T\ X\x12\x82o*z\xe3h!\xe8\x1d\xaf\x96\x82\xd7E\ x\xf3\xd7* \x92\xc8\xab2\xdc\xeb\x82\x9d\xa7b=\ b!jK\xa7\x9f\x19\x05(\xab\xc4\xe8x\xba\xb4)\ \x05\x96\xab,\x82\xcdZ\xcc\xed\xa6\xccwAUf\x99\ \xbb\x9d\xc7I\xac&\xfdyjX\xf4\xdc\xa5\xc4\x83\xf2\ Z\xd7\xd8\xd8b\x88\x08B\x07\x95\x8d\x9a\xb1\x89%9\ \x17\x82\x0dj7e0b;\xc8\x1e$\xea\xc1/\xd2\ \xd7\x0d\xa8\x85m\x84{\xbe\xe9\x01F\xd4'\x1eL\x08\ ,\x91N\xefJ\xce$\xbc\x96\xc9\xd6\xb7=9\x1e\x01\ \xff\xf4\xeev\xa7\xe9\x80\xed\xb0\x05\xb2\xf7VF 4\ \x11H\x8c\xc2A\xa1W\xca1s\xc6\x90$\xd2\x12\x82\ J\x0e\xc0?Dx >\xae]\x0a\xc8\x01\xf1\xa9\ k\x87\xa9\x02\xcbF\x9c}#\xf1\xe9\xab\x90E\xfb8\ \xe4A=\xff\xfe\xd9/\xba\xf2\xa20\xad\xd2\x1d\xd0\xcf\ \x17\xb0\xffW~\x98\xa7\xa0\x12\xe6a\xacgs\xb5\x9b\ {\xb9*\xbf\xc3H/\xb8)\xea\x00\x08\xf3\x04\xb6}\ \x98\xc4s\x9d\xfe\xb9Z\x85\x1b\x13\x08b\xdf\xd4\xaaf\ ^\xdd\x04\xb8*g`\x861\xac*m\xc8\xf3\xdf~\ \xf9q\xac\xc2\x04\x84\xe15\x9fWn\x91\xa6\x82!\xc0\ v\x0f\x97Q\x95u\xf3\xa8\x98\x04\x11@\xe0\x05\xbbL\ \xea2<\xcd\x92\x9f\xda\xf5\x08\xfc\x12\x06\x1e\xfe.\xdf\ \xee\xd6E\xb1\xc7\xb6\x92S\xc7\xb3\xad_Zy\x8f\xf3\ v\xf4n\xbe\x15*\xe0\xe7\x80{\x06f\xb7B\xb64\ O\xbd\xc2$-Jg\xe0S\xaa\x14\x08\xce\x12t\xfc\ n\x93Bm\x8a\xdd\xb2\xcaB\x9bw\xaew\xbf(e\ n\xeez\xe0\xf9\xac\xb5\xee\xdeI\xbbha\xb2\x09\xef\ \xef\x89\xe6\x7f\xfe\xe8\xd4\x05uH?>i\xd5\x91\xb0\ \x10b\x94\xf6\x9bied[\xdc\xb1aC\xf4\x8a\xf5\ \x1eg\xd2\xc2\x9cK\x84\x9f\xb4\x08\xc8\xe2\xfa\xa6\xb3\x8d\ \x1dm\x0f8e\x8e$X\xeb\x12xv\xa8~.)\ \x18\x98\x072TM\xf5\xee(\xbf\xae\xb5u\x7f\xf7\xea\ \xdft\xd8\xa4\x96\ \x00\x00\x0fX\ \x00\ \x00E\x7fx\x9c\xe5[\xdbr\xe3Hr}\xef\xaf\x80\ 9/\xdda\x02\xaa\xfb\x85-\xf5\x86=\x13\xbb\x9e\x88\ \xd9\xd8\x88\xed\x99\xb5=/\x0a\x08\x00%\xb8A\x80\x01\ \x80\x92\xd8_\xef\xcc\x02H\x00$(\x91l\xb6<\xb6\ \xd9\x17\xa2\xb2\xee\xa7\xb22O%\x8a\xd7\x7fz^d\ \xdecRVi\x91\xdfLh@&^\x92GE\x9c\ \xe6\xf77\x93\xdf~\xfd\xb3o&^U\x87y\x1cf\ E\x9e\xdcL\xf2b\xf2\xa7O\xef\xae\xff\xc9\xf7\xbd\x1f\ \xcb$\xac\x93\xd8{J\xeb\x07\xef\xe7\xfcK\x15\x85\xcb\ \xc4{\xffP\xd7\xcb\xd9\xd5\xd5\xd3\xd3S\x90\xb6\xc2\xa0\ (\xef\xaf>x\xbe\xff\xe9\xdd\xbb\xeb\xea\xf1\xfe\x9d\xe7\ A\xad\xb8~\xb8\x99(1\xc1\xd4C\x92\xde?\xd4\xdb\ d\x1a\xdfL\xa0\x1c'F\xbato\x80\xb4)\xd0\xb6\ <\xeb\xe7\x04\xcc{OBB\xa2\xb9\xe4\xdcN=F\ \x18\xf3\x09\xfc\x15\x1f\x5c\xa5\x0a\xa6\xb5\x84\x7f\xb3\xb8\x88\ \xf2p\x01\xb3\x09\xd9\xf2\xf6\xf3\xf2!)\xd3(\xcc>\ \xaf\xcay\x18%?\x16yU\x97a\x9a\xd7\x01\x0c\xc1\ U\x04\x8c\xf2j\xb6\xe9\xf3frh\x8a\xd8h\xb5\x84\ 6\xaa\xab\x8d\xbcW\x7f\xd3\xfd\xb6\xfeF\x10T\xc5\xaa\ \x8c\x9294\x91\x04yR_\xfd\xf4\xebO\xdbL\x9f\ \x04q\x1d\xf7\x9ay\xce\xa0\xed\xc1\x18\x9e\xb8\xeb\x9dZ\ k\xaf\x5cnWz\xac\x1c#\x84\x5c\x0d\xa7\x06\xa9#\ K\x96\xf1\xfc`\xdf\x84]\x01\xe0P\xc2\xaf\xd6y\x1d\ >\xfby\xf5C\xafj\x14mkF\xa8:\xe9c\x12\ \x15\x8b\x05\xc0\xdd\x807(\x1cw\x85\x97\xab2s%\ \xe2\xe8*\xc9\x92E\x92\xd7\xd5\x15,\xf7\xd5\xe4\x13\x94\ \xbf\x8e\x93y\x85\xf5\x1a\xad\xc1\x14\xa8\x8dvy\x90\x0b\ p$a\xf9\x972\x8cS\xa8\xd7\x94\xeb\xa9OTd\ Y\x12\x81\xe2\x85\xd9S\xb8\xae&\xdb\x02\xd0\xd4\xb0\xaa\ \x82\xb4\x8dB\xb3U],7eA\xb1\xeau\x06\ j\x81B\x1fZ,\xca\xd9\x0f\xa1\x00\xec\xc8G'*\ @%\xd2z=\xa3\x93\xaeJ1\x9fW\x09\xf4Kz\ 2\xa7\xf5P\x01\xbab\x13\xef\xea\xf8\xce\x929\xb3\xcc\ \xbe\xde\x19\x1d\xefLl;\xbb\xbe\x1aN\xfa\xd2 r\ k\xc5\x09 2\x22B\xa3\xcf\x03\x11\xbaR'\x81\xa8\ \x99\x9dG\xf3\xf3@\x84\xce\xcc\x99 \xeecd\xac=\ \x01\xa3\xf9|D\xd1>\x1e\x0d\x12\xa1'\x814\xd6\x1b\ \x19\xebm\x1c%\xc2/\x87\x929\x05%\x12\x112\xdf\ Y\x5c\x12X\xad,\xe3D\x1e\x0d\x97\xb1\xa7\xc1E\xec\ H\xb7G\xc3e\xec\x05\xe1\xd2\xf4\x94\x8d\xc7\xf6\xc7}\ \xbcR\x19\xcdOT*\xd8x\xd1\x11\xbd\x8d\xa3\xa4\xe5\ \xe5PR\xfc\xcd\xb6\x9eQ\xf2D\x94l\x12\x9a\xb3Q\ R\xfa5\x94\x16a\xf9%)\xf7\xac;T\x8f\xbe`\ ;\xffR\x96\xc5\x13\xfb%\xc9\xe3m\x07E\x89\xf5\xc1\ \xf0\xaf\xeab+,\x93\xf9\x7f\xf6\xe7\x0c\xe9\xff\xe8\xa7\ \x0f\xb4\xd5N\xb9\x00F7\xcf\x8a\xa7\xd9cZ\xa5w\ Y\xd2\xad\xc72\xac\x1f\x863C\x89\x90ZL\xf6\x80\ \x9b\xa7Y\xe6\x97\xab,\x99%\x8fI^\xc41\xe0V\ \x16_\x12\xdf\xd1N\xd8\xfa\x8a\xc9\x8d\x08\xc1\xf8\xaf\x22\ \xcdge\xb1\xea\x8d\xc7\xf3\xa0\x87\xbfz&\xd0\xd4H\ \xa3\xcdT\x04\x84s\xcd%\xf3|\x160\xa2\x99\xb1r\ J\x02B\x15\xa1\x9c\xa9MI#\xa6>\x14%T\x13\ m\xbc\xc8\xf3i\xa0\x85\x14\x16\xe4,\xe0\x9a\x11E\xac\ \x13r)\x041S\x19(\x0a\x05(\x08U\xe2\xeb\xa9\ \x81n \x87{_{C\x01B\x9aW@\x10\x177\ \x93EX\x97\xe9\xf3{h\x81N\x09\xfcq\x0fM\xea\ C\x7f\xe5;\xef\x9c\xe7\xe0\x9d\x8b\xd2\x8fV\xe5cX\ \xaf\xca\x04W\xa3S\x86f\xddOS\x028\x12\x94\xf5\ \xc5\xd4`\xd8\xda\xf9\x8a@\xff?*\xc2F\x0f\xf0\xfb\ \xad\xb4\xe0\xd72\x0d\xf3\xfb,\xf99\xff\xfc\xedJ0\ \xd6\xd8\xb9:\x00\xfe|\xb8n\x0bO\x06ZO\x89\xe7\ \x9b@\xc9\xa9\xf4p\xc3\x10\xafM|=^a\xc0\x99\ \x93\xd6\xdc\xf7\xf4\x87.\xeb\xf1\xc5\x01\xc0\xb2\xe4=\x1c\ \xde\xd8\x14\xff\xbb\xc0\x9a\x1c\xed\xc4\x90e\x1d\xefV\x84\ 0\x92\xc5\xe7\xf3\xc7\xd3\x9c\x18!L\x1dE,\x0e\xf0\ \xc7W\x9d\xd8\xf1\xae^\x9e\xc4\x1f\xe3o\x22D\xea4\ \xda\xa8cC\xe7\xf4|W\x7fA\xda(O\xa1\x8d\xdf\ H\x88\xe4\xa9\xb4Q':9\x1b%\xf9*m\xdcn\ \xd4eRVK\xd8\xa9\xe9c\xb25P\x9bXR\xbd\ \xc6\x88\xd0\xb0(\xef\x9cG\x17\xa8Z\xde>\xdfLX\ \x04\xe5\x84\x18o\x06\x86IJK\x99\x12\xf0LG\ +\xaco&>\x95\xe8b\x08\xc7\x1a>\xd7\x81\x11\x84\ h}\xb0\xcaW\xa8\x22\x05\xf4b\xb5\x94X\x85\xb2@\ 3\xc5\xe8\x81^\xda\xf1\xfa`\xbd\xefS\x0c\xa31,\ \x07n\x11?;\xdd\xa0\x91\xed\x90\xe0\xa4w\xc0\xfe\x1e\ X\xf9\x94\x07\x82+\x18<\x0eC\xc040\xf1\x12X\ \x042-\xcc\x9e\xe0\xcc\xc9!|\x84\x08\x94\xd1\x9a\xbf\ \xde\xea\x1e8\x12\xe9\x82\xe6\x88\xa5\x0d\x14\x97\x5cZ\xf3\ \x0aF\xe2\xfbb\xe4\x96\x95\xbc\x06\x0a\x85m\xf9\x12$\ \xcc\xbc\xd0\xcc\xa8\x8a\x88\xa34\x84\xd2\xb1\xd9\x83\xa3\xf6\ \x93\xf9\x1c\x0am*6)\xd8\x99_\x92,\xa9\xc3l\ \xd8bW\x9e\x13\xa5\xba\xbc\xea\xb6\xa5\x057\x93\xba\x5c\ %\xdb\x0c\xa8P'e\x8e\xa4\x0d\x88\x11\xfc\x83\x99Q\ 2p\xf7Q\xb1\x5c7HW)r\x8f[\xf0\xeaI\ \x1d=$\x1d\xd2\xcb\xb2X\xde:7\xde\xb7 Np\ \xbb\xbe-\x93\x0c\xb8B\x98U]\xb7\x18\xf9ua\xf3\ \x0e\xe6\x1c\xb8@\x98\xdd\xee\x9b\xbd\x1a\x18\xcf\x88\xd8\xf5\ \xb9\xca\xd3\xba\xdam\x1c\x88P\x8dA\xea\xdb\xed\xe4\x86\ \xf9\xf3U\x95\xdc\xd6E\x96\x00\x05\x89\x864\xe2b\xd1\ ;-\xad>\xc5g\xe2\x87\x9f\xe9\x0d\xa0/{\x22\xb3\ \xd8\xef\xed\xe8P\x8bV\xbd8\xd8\xb7\x1c\x8f\xe9EO\ F\xbb\xad\x9d\xc9\x8a\xb9\xb5r\xf74\x83\x1bCN}\ \xe9\x1c\x84t\x09\xe9\x84\xdf\x8f\x12\xb7\xe7\x15\x12\x18w\ ^\xc1o\xd8\x95ovh\xa5\x9f/\x17\xb9\x18\xb6u\ \xeea\x85P\xf2\xc7Y\x16wTq\xf1\x04wf\xa1\ \x98z\xbb\xa5\xb9\xe8\xae\xf9|\x99x\x02\xf0\xac?\xce\ \xf2lV\x07\xbf\xdftm\xd8E\xd7f\xb7\xb5\xb3\xd7\ \x86\xc9\xe3\x11\xff\xbf\x13\xeb!\x01o\xb5\x80\xe3>U\ \xf6M\xa3=\x7f[\xd5\xbf\x5c.\xdc3h\xed\x5c=\ \xa0|g\x8f\xfe\xcf\xc6{\x9co\x0b\xcc\x1b\xac\xc9O\ i\xb8(\xf2\xf82\xd1\xf8\xb1\xc6\xce\xde\x99\xbb\x118\ \xb4\x9a\xbe\x0e\x88\xa6D+\xe3\xb5\x8f\xc6\x0aG\xcd\x9b\ \x944\xd6k\x9e\x84bN\xde\xab\xf1\xa6\x8c\xc4\x87\x9d\ \xf9&\x9bj\x83\xf9\x85\xac\xebxsg/\xa2\xe1\xff\ \x9b\x17\xf1\xad\xd6\xb0%\xe9\x17\xe4\x95\x97\xd8\x82\xee2\ \xc2\x1f\x86\xb8\xf8\x9b\x85q\x0f\xfe\x85\x18\xff\x09\x97)\ N{\xa3\x8b\x9f\xb3\x03\x98\xf6\xd47\xba\xfb\xbd\x9dr\ ;\xe0\xdc`\xf8k'\x7fw\x87l\xf6\x00Zz3\ \xf9a$\x04p\x18n8Gw\x86\xe3\x99\xba\x88\x99\ \xa6\xc2t.a\x0dB\x06L\xcaZ\xae\xbb\x96\x9e\xd9\ \xcd\x84\x8b\x80r\xc5H\xa7\xbbk6V\xf6\xbe\xed\xeb\ \xb7&L\xb2\xaa\x92\xf23\xde\xb9\xfb[\xfe[\x95|\ \xd7`\x1b\x85\x01b\xf8\x0fc^*0\x5c\x13{8\ \x10{d\xe4\x8d\xd3\xc0\x1a\xa0\x97\x18\xc7c$\x10T\ \x19&\x8f\x8fFj\xa8\xe0\xc2\xbc2\x90\x00\x93\xa1\xaf\ \xc5\xe3|\xfe\xcd\x81\xa1\x17\xd4\xc3\xdd\xcayq7\xca\ \x81z\x00-\xb3T\x105\xd4\x0f\x98\x98\x85\xd9(:\ \xd0\x0f_\x05BHN{\xcc\xbfU\x10-49Y\ ?\xbe\xc7\xe4\xed\x8b\x93\xc7we\xfd\xc9\xc3r+\x01\ \xfad\x86\x93Wx\xe2`\xfd}\x84\x9b\x83\x07Lq\ \xa5\xd9`\xee\xfbe_\x9e\xfcn\xa9_G^&s\ 8Z\xb1\xf6\x8d\xf2\xd4W6\xb0\x94*k\xa7>\x03\ \xbb\xfd=\xd1\xc3\xab\x81\x87\xd1\xc3\xeb\x94C\xf4L\xc0\ \x8c\xd4T\x0e\xd0\x93&\xb0D\xe8^\x94\x18\xd1k\xac\ \x103z\xa89$@\xa1\xe8A\xff\xdeu\xc7\x88\xcfF\xba\ \x1b\xb9\x9c2x\x0f\x9f\xd8\x90\xa8C\xdd\x8d9\xf8\xeb\ +\xbc\xec\xec\x9e\xb6\x0e\x0do\xa0\xc7\x8fi\xf2\xf4n\ ;\xa8\xbbp\xbb\x0e\xcb\xf0>q\xdd\x81\xba4\xe4\xa3\ \xcd\xb8+\xca8)7Y\xee\xcd\x8e\x1ad\xb5#j\ ~!\xf0n\xa8\x9d\xd8\xea6\x9f\x8c\xe7W\x0fa\x5c\ <\x81^\xedf~-\x8a\x05\xbe\x16\x85\xa54T\xca\ \xdd\xec\xe8\xd9\xb9HM\x99Rf/\x13\xfa\x83\xddd\ \x18\xb8A\xb1\x97\xb9*K\x00\xca\xcf\xc2u\x02\x93r\ _\x9b%\xa8\x1e\x8a\xa7\xfb\x12\xc1\xe9\xbd7\xda\xd6\xc4\ \x1c\xff\xee\xaex\x1e\xcf\x8e\x8bh\x85w\xd0\xfd\xf6=\ \xcd\xf2y\xb7\xc4S\x9a\xc3d\xfd\xf6\x17\x0eT\x88=\ H\xda\x12\x9b_=\x98\xed\xfe\xda-\xf1\xdc\xa9\xe9n\ \xd6\xfap\xd6\x22|N\x17\xe9\xd7$\xee\xb4\xae;\xbc\ \xe4\xe1\xf2\x85\xd9\xb9l \xfdI5\x9e\xefT\xe8!\ \x89\x80\x8a\xdf\x15a\x19\xe3 v\x19\x17\x02\xb8\xd1\xf5\ \x86a=\xafQ6\xb0G(\x188\xf3d\xb1\xdc\xbe\ A\xeb\xf6\xcf\xf8\x1b\xbe$\x0fA\x18\xefHq\xecm\ yl\x1dwLU\xe4\xd9\xba-\xb6O\x0dO\x19\xa8\ }\xbb\x81n\x8b5\xbd \xf3T\xbb\xc2\xf5@\x08C\ \xda\xee\xeb\x98\xf4]%\xe4\xf4\xf6&\x93\xc4\x1a\xc2\xbb\ \xb94\x5c\xf2\xb9o\x0c\x1b\xd1\xba;|]_\xed\x9b\ \x17'_$u\x18\x87u\xd8\xd9\x9a\x8d\x84\x13\xbbU\ \x8b2\x9e\xcf\xfe\xfe\xd3\x9f\xb7f3\x8af\xff^\x94\ _:c\x88\x05\xc2\xbbb\x05\x1bak\xcb\xf1w\x1d\ \xd1\x0c\x1dEX\x7fJ\x17\xa0t\xf8;\x94\x7f~^\ d`\xf5\xb6\x19\x83\xc2\xb8\x80]\xa3M\xb3e\xd2\xfc\ \xb4f\xf4\xb7$q\xb4H\xb1\xd2\xd5\xe7\x1aN\xbc?\ c'}\xf3~\xd5\x0etc\x80{\xf3\x80\xc3h;\ Q\x97\xba\xef\x00\x18\x98\x99\xad\x9ee\xe1\x1d\xbe.\xfe\ \x053\xbd\xbd\xdc\xfb\xb2X-\x17\xb0\xe5\xda\xeam~\ =\xe6*\xc9\x94\xb3\x0f\x1bd\xef\x07j\xaax\x8f\x5c\ \x8fV\xf6i >t\xee\xf2\xbeCk\xbc\xb8\xc5\xa3\ \x17|\x06\xe7\xf5\xa6\xab\xde\xe5\xa9\xbd8\xc4 \x90\xb0\ \xfd]\x85\x8b*tg\xeamH\xe1\x8e\x02\xdd\x1c\x86\ \x14X?H\x0f\x1051\xfa\xf1\xc8\xfdF\x0aK\x99\ \x94\x19X\xbdz&6\xb28\x04\xb7S\x96\xe1z\x96\ \x17y\xd2\x976>y\xa66\xb2\xb1\xdf{\xb4\x91\x13\ a\x02\xc7\xdc\xdc\x1d\xdb&\x00B\x13_{?\xf6r\ \xf0\x8e\x0d\xd0fa=\xae\xdd\x93\x9c2\xdefz\xac\ \x9f\x88<\x1f\x98<\xd5Dr\x8cQ+x\xb6\xca\xb8\ `\xbe!\x1a\xf8\x86\x07\xa8o\xfac\xcd\x13\xc7H\x9a\ `\xed]\x06|\x82\xee\x0cpI\xe1\xae\xfdZ\xe8\x98\ b\xd4\xdbp\xa6\x19\xd4\xf2z-x\xed\xd00\xe4\xb3\ \x1d\xc5\x94\x82%\xb0ZH\xd6\x93m\x9f\x8cm>\x83\ \xd0P/\xbaD\x99\x1ef\xbc\x12\xc1\x19(\xc6\xd6\x90\ \x80\xba\xe3\xde\x03/SUQTU\xbd\x9d\xf7\x8aB\ \xc1\x0e~\xbfGv\x09\xf9pH\xc3\xb6\xbf\xeb\xe9\x07\ \xad\x02{A\x1d;Z\x9b\x16\x9e\x90\xed\x9e\x82\xf5\x88\ \xf0f\x0a\xe8\x14\x1c\x10\xb4\xc5\xf7\x15\x96SK\xed\x94\ \xc2\x99K@\x11\xe3\xf9\x9b\xc7\x81\x90\x05xy\x8d\xe1\ \x92\xfa\x22\x90\xccJnP\x81\xe0\x8bs\xd4)\xd5T\ \xf1\xf10\xa7\x98P\xa85\xdc\xa0\xfe\x04\xca0C\x99\ \x13\xe8\x80SM\x8d\x01m\x02\xeff\xa8\xc66\xb4\x96\ x\x1bJ\x80\xa7\xa0V\x1a\xf7\x1eX+\x90y\xfdf\ [Q;x\x03\x03\xe9\x06\xba\x99\x8676\xf6\xc3*\ \xe5\xf3\xef\xabT\xd7W\xf7G\x1b>X\x96\x11\x93\xa7\ \xe4\xb1&oTC\x85:\xa8\xa1\xcc\xec\x87U/i\ \x03O\xb0v\x18\x8ej\xf4\xd3gbc\xb4\xc0\xd4\x89\ \xc6\xc0\x99\xbeX*\xd0\x05\xd1|\xe1\xff\xa0W]9\ \xc66\xc5\xba&{26ef\xf0\xff\xbfy\x8ax\ \xff\x00\xebH\xe0\x913\xef\xf7\xc3\x9a\xa2.\xaa)\x11\ h\xcaQ\xc6\xa7\x7f\xcf\x88|\x9c\x17p\x02p9\xb3\ \xe6\x92W#y\x0c\xf1\xedf=\x90=9\x96?\x10\ \xb5\xb7\xcd\x862 \xec3\xa0W\xe9j\xf1\x11\xd7\xb7\ =\x1d\x0c\xca\xcc\xc3E\x9a\xadg\x15h\xaa\x0f\x07\xed\ t>\xe8\x15\xd4\xe2\xde\xcd\xbb\x1a\x1b\x93\xbf,\xaa\xb4\ N\x8b|4\x13 \x1c\xaf\x95\xc3a\xa7L\xa3\xd1\xbc\ 0\xc3\xabh\xb0e\x86U\xe7\x89\x1b\x05\x8c\xb0\xae\x81\ \xaan3\xeb\xe4\xb9\xf6\xe1\x84\x02\xfbaF\x9aT\x08\ C\xceg\xee\xa5U#\x88\xe1\x80Z\x86\xed0\xc1i\ \xef\x08\x9d\xe6\x8f\xe74\x8bQ\x15Y\x1a\xef\xe5\x0d\xd7\ .K\xf0\x0a\x9d\xdf2\xe9\xcd\xe8\x9e\xe0\xa0\xbb+s\ \xedlmD\xd3\xefS\x99\xe2\xac|dl\xb3\xac\xf4\ \xeb\xbb\x8fqZb\x84\x15\xc6\x9c\xd5eS\xa9y\x0f\ \xd4Ld\x91>'\xf1\xc7\xb8X\xa49\xa2\x86\x07r\ 7\x0d|G\xf4q\x93\xf2\xab\x87t^\xcf6\xc9\x16\ \x9e\ \xbd\xfbop\xeb.)\ \x00\x00\x0ci\ \x00\ \x005cx\x9c\xe5[k\x8f\xdb6\x16\xfd\x9e_\xa1\ u\xb0h\x06\xb5d>EJ\xf3(\x92\x06\xcd\x16H\ \xb1E\xd2v\x81.\x16\x0bY\xa2m\xed\xc8\x92!\xc9\ c;\xbf~/)Y\x96l\xd9c\xcf&\x99.\xea\ &\x88uy\xc9+\x1e\x9e\xfb \xe9\xde|\xb7\x9e'\ \xd6\x83\xca\x8b8Ko\x07\xd8A\x03K\xa5a\x16\xc5\ \xe9\xf4v\xf0\xeb/?\xd8r`\x15e\x90FA\x92\ \xa5\xeav\x90f\x83\xef\xee^\xdc\xfc\xc5\xb6\xad\xefs\ \x15\x94*\xb2Vq9\xb3~L\xef\x8b0X(\xeb\ \xd5\xac,\x17\xfeh\xb4Z\xad\x9c\xb8\x16:Y>\x1d\ ]Y\xb6}\xf7\xe2\xc5M\xf10}aY\xd0+*\ g\xb7\x03\x97\x0d\xf4\xd3L\xc5\xd3Y\xd9<\xc6\xd1\xed\ \x00\xf4(\xe7\x9eyn\xbd \xae\x14\xea\x91\xfdv\x8b\ C\xacW(@(\x9cpJ\xbd\xa1E\x10!6\x82\ ?\xec\xcat*`Z\x0b\xf8\xebGY\x98\x06s\x98\ M@\x16\xff\xfe8\x83q>\xa8\x89\xcaa\xe2\xca\x01\ \xb3\x95\xc9X\xad\xded\xeb\xdb\x01\xb2\x90\xe52\xab~\ 3\x80+-\xfc\xad\xf9\xdb\xc1\xb1\xd9\xea\xf1\x8bE\x10\ \xaab\xb4\x95\xb7\xfao\xdf\xa4\xe9\xbf\x158E\xb6\xcc\ C5\x81!\x94\x93\xaar\xf4\xf6\x97\xb7M\xa3\x8d\x9c\ \xa8\x8cZ\xc3\xac\x13\x18\xbb\xf3\x0e+j\xacc\xcf\xf3\ F\xa6u\xa7\xdd\xa7G\x10B\xa3\xed\x8c\xebW{\x98\ \x9e\xa9\x99G\x93\xa3\xb6\x11\x19\x01\xf6\xa0a\x17\x9b\xb4\ \x0c\xd6vZ\xbclu\x0d\xc3\xa6g\xa8Y\x14?\xa8\ 0\x9b\xcf\xb3\xb4\xa8\xc0\xeb(G;\xe5\xc52O\x8c\ F\x14\x8eT\xa2\xe6*-\x8b\x11\xac\xfchp\x07\xfa\ 7\x91\x9a\x14\xba_E \xfdD\xb9\x8bM\x1b\xb4\x02\ \x1c*\xc8\xdf\xe5A\x14C\xbfJ\xaf\xd2\xec\xb60*\ \xa9M\x07\x8d\xc2\x96ja\x96$*\x04\x92\x06\xc9*\ \xd8\x14\xf5\xb00pQf\x8b\xadv\xcd]\x90\x08\x8a\ \xa5\x1c\xec\xe4\xd9dR(\xe8\x8dZ\xb2\xa2\xdc$\xaa\ R\xb7a\xf8,\xf7_R\xe6\xf2\x80]\x1bQ\x06\x04\ \x8a\xcb\x8d\x8f\x07\xd6\xe8qk\x1e\xea\xb1\x86O[\x13\ \xc4\x9b\x84\x93c\xd6nF]dN\x03y\x0c\xa7\xad\ \x82\xe1\xa3?\xcb\x15\xd0\xe6\xe5i\xc8\xfb\xd6\xc4\xb3w\ \xf3[\xe3\xdb\x01\x11\x0ea\x94S\xd2H7 \xe5\xcc\ \xe1Rb\xbc\x93\xae\x09\xe8\xe2\x03]\x90R\xb4\xaf;\ \xad\xcd\xfd\x9a\xc6%8\xcc\xb2P\xf9G\xed\xc4\x7fO\ \x7f-\xd4\x81\xd6/y\x90\x16\xe0\xaa\xf3\xdbA\xa9\xbf\ &\x10\x0e_\xd9\xb5):\xb4I=\xfc\xd5\x0e\xd0/\ \x01\x9dGm\xef$t\x9eg\x8b\x0etL:\x02\xc3\ Kv\xa1c\x1c\xde\x97\x0b\xc9;\xd01t\xa0\xab\x01\ e\x95\xae\xf8\x9c\xd0\x01r\x92\xbbL\x8a!v\x18f\ \x04S\xf7\x7f\x87\xae\x17\x10\x8d\xd8\x11\x87\xeaq\x12\x82\ X \xc5\xbe\x93\x9c\xf6\xec\xad_\x821\xaes\xe81\ \xff=;\x02\x9cv\xed\x969a?\x83\x03\xeb\xf0\xc3\ \x1e\xf1\xdf\xae\xf7\xa2>\xef\xa5\xa2\xcf{\xf1\xa1\xa7\x13\ \xe3\xff\x7f\x10\xef=\x98\xed\x1e\x1aON P\xc0\x5c\ \x9e@B\x06%\x10zB\x02\x01\x9a_\x9e@&\xa1\ \xf2\xd8\xf3'\x90\xc7\xf8\xe7z\x88\xbb_\x9c(ON\ O\xa4\x8f\xe0\xacIO_0}\xe8e\x97\xa7\x83e\ \xd7q/\xca\x1dn_\xee\xa0l_\xf7\xff'wT\ p\x9d\x1f\xcb\xfb\x9d\xf1\xbc\xd4\x01\xb60\xba(s\xa8\ (b\xe7X\xeb\xcb\x1c\xda\x1ay\x0e\xc7=\xcd?p\ \x5c\xf6\x99#<\xa9H\x89\x876\x16\x15\x13\xdd\xab\xcf\ M\xf1F\xb7\x01T\xbfS\x90\xecC\x97\xc3b \x07\ \x82\x17\xddE\xaf\xc9\xc6\x0c\x80\x89\x80\xac\xb9\x93\xc2V\ \x94P\x07\x09\xe4\xca]\xa5\x1c\xf6\xea\x86\xbd\xba=\xb0\ \xcc\x832\x8f\xd7\xaf\x90\xe3a&1\x19\x22\x07a\xe2\ rD \xac\xc1w$\x09\x86\x07\x10\x83?q\x97\x0c\ !Nq\x0a\xbaC\x88n\xb0\xbb\x91\xde\xd5\x85K\xa3\ \x17\xb8\x8b\x04E\x02\x9fC\x14\x82\xbc\x9d\xdeQ\xc6}\ ~\x8f7v\xcfwAd>{.x}\xa6\xc7\x83\ -z\x91\xc3\xf7YC}\xd6\xfa<\x1e\xac\xf1\xaf\xef\ \xf0\x14qq\x02nh>d\xec\xc5\xee^\xf3\x1a;\ \x1e\xe3@X`0\xfc\xb7{\xb2\x99p\x10\xc4\x05\x9c\ \x93\x81\x22\xf4\x8c\x0d\x83\xf6h\xf3\xe9!\x03\x98\xf4.\ \xa2\x1eS^\x80\xdc3r\xcdI\xa3\xee\x13k\xc5G\ B<\x1d\xea\x95\xe2W\x8f\x07\x8c3\x18\x8b1>\x95\ \xa1\xa0@\xeb\x1eLP\xe4H\xeeq\xd6\xa5\x0ew\xa4\ t\xa5\xa0\xdd\xca\x0ft=\x97`&:\xd4\x81\x0aI\ `\x8f\xf3s+\xa4\xcf\x1f\xf5\xcc\x9c\xcf'\x03\x96A\ \xf4\xd42\x07L\xb1\x8b\x98'\xa2\xc9\xe4 \xe8i\xdf\ F\x9e|t\x0b\xd3\xb2\xea\x9e\xa4\xde\xcdH\x9f\x1f\x9a\ o\xcd\xb9\xb1>\xd4\x8d\xf4\xc1\xf0\x8bf\xacq\xd0D\ \xa2E0U\xe6\x15\x81A\x13\xf3\xa9\x1b\xc6Y\x1e\xa9\ |\xdb\xe4\x9aO\xa7\xa9\x9eEu\xfe\xfe\xa2\xbbfz\ \xd4\xa6\x1d\xf5\xb7\x17\xb3 \xcaV\x10\x9e\xf6\x1b?e\ \x19x\x86\xdc\x17\xeb\xfa\x80B\x9dL\x05?h\xda\x98\ &H\xf6\x87M\xcb<\x07p\xec$\xd8(\x98\x88\xf9\ g\x0bm1\xcbV\xd3\x5c\x03R\xe6K\xb5\xdf3\xca\ \xc2\xa5>\xab\xb5\x97\x15}\x17\xeb}\x0d\xdd\xd7\x1e\x8f\ \xf5y{\xdf\x00\xab8\x85\x09\xda\xf5\x9d\x01f\xec\x00\ \x86Zc{\x8f \x19=\xa2\xb1\xde\xb1p\xbfis\ \xbci\x1e\xac\xe3y\xfcIE;65*E\x1a,\ \xeci\x92\x8d\x83\xa4\xff\xed\x0d1f*\xbcW\xf98\ \x0b\xf2H\x9b\xa9\x89\xd7\x01`\xcb\xd2r\xa3o\x16\xd6\ \x1b-\xeb\xf8\xa8\x16PH)\x8dP\xcd\x17\xfa\x92\xc1\ \x5c\xd6\xec\x98\xff\x10\x17\xf1X{M\xebe@7\x0d\ @\x18\xedI\xf5\xcb\xd7\xfazt\xed\x07E\x96&\x9b\ }\xb5\xca\x8a\x06\xcf\xe1\xfb\xd2M%\xad\xbc\xe9ft\ \xe8.F>We\x10\x05e\xb0\xf3\x9d\xad\x04JK\ \xb6\x05$\x8f&\xfe\x87\xb7?4\xd1 \x0c\xfd\x7fd\ \xf9\xfd\xce\x81\xb5B0\xce\x96\xb0\xc8M\x80\xd2G\xff\ \xa1\xaf\xd3@P\xde\xc5s\x80[_U|\xbb\x9e'\ \xe0\xc5MCGYc\xbc\x1b\xb4\x1a6W\xd5\xedK\ \xefuC\x14\xcec\xddi\xf4\xb1\x8c\x93\xe4Gm\xa4\ \x15\xb5\xeaA\xe32Qw?\x07\xe5\xcc\xfeXf\xe1\ \xbd\xb1^\x09;z0iuG\x10\xe66\x126b\ F\xcd\xc8:Z\xb9\x82l\x16g\xe9]\xeb\x8ee\x92\ +\x15\x06\xd1J\x8d\xcd{\xad\xe2\xfbx\x04\x0cUk\ g1[|gL\xdd\xbe\xce\xcb\x15@fFm\xc6\ \xe8\x8c\xbcX\x8e\x93\xb8\x98\xa9\xfc\xae\x05\x81\x86\xfa\xf5\ \xb4I\xbc\x87\xf3\xfa\x01l\x7f\xff\xfam\xdf\xa4\xf4\xb2\ \x1fv7\x9a=\xb6\xf4\x90q\x04\xaa\xf1$\x06y=\ \xee\xa8\xc8\xc3\xd1OY4\xd2\xf8\x8d\xde-\xe3\xd1\x87\ z=\x8aQ\x1cfi1\xda\x01\xabo\xe9\xcc\xe8\xad\ a\xba\xd8\xe90P\x84\x86W\x87\xb7\ X\xde\xd5\xb5nmm\xfd\xccc\xbeL\x94\x9ff\xe9\ '\xc8\xf5P\xb8\xe4\xd9\xbd\xf2_RD\xc6\xa6\x8e\xd1\ \x8fUn\xf3\xc9\xf6Q\x8f\xfc\x9f,N}\x98|\x1a\ m\xa5\x10\x82T\x9e@&*}\xb6\x95E\x01\xa4\xff\ <\x0f6\xda\x80j\x95:0\x9b\x9f,oH\xb9\xf5\ \x9bE\xb0\x95X\xb0o\xe7\xd6\x03\xfcc}\xda\xab\x88\ \xf44\xf5\x11i\xfb\xb8\xb9U5\xa6)T\x8dYn\ C\x05\xf0\x10\x94\xcb\x5c\xed\x1dB7\x01\x1f\x16I\xc7\ HH\xf1\xa1\xfe\xb4\xcb\xba=$\x8fvy\xca\x0bl\ \xa7\x00\x0b\x80\x0f\x01`\x1e\x00\x00($\x16\x91C\x8c\ \x0e\x11xdY\xcd\xd9\xf1\xb3\xaf\xebW\x87\xd2;\x80\ \x92\x8a!\xd7X2n\xbd\xb78\x1f\x12\xa9\xb1\xa4\x97\ `\xa9\x8f\x93\xfftP2D\x0fY\x09\x1eI<\xf0\ GF4'\x89\xde\xb1Z\xbf\x1f\x01r{\xcb\xf2'\ \xc3\x0d\xbc\xb9uq]#\x87\xf5\x81\x82D\x94\x0f\x99\ p\x5c\xe4\x12\x01\xa2!\x95\xda\xbd\xd9PZ\xe6\xd8\x12\ \x03\xa6\x0e\x96\xfaL\xf3(;\xf5\x94\x1a\xc0\x9ak\xac\ \x93\x80\x19\x8c\xfe\xc8\x80y\xd8F\x07^\xeb\x01\x22\x1c\ 1<\xe4\xcc\xc1\xae$\x1cDC\xe6Z\x9c\x0e)q\ t\x5c\xd4\x98\x11<\x04<\x85+\x998\x0f\xb2\xe6\xb2\ \xe1+A\xf6\xc7\xf3\x87=\xa0\xc1\x87\x19\xd2\xfeLh\ \x1d\x1d!`B\xac\xfc\xbd?\xd9R\xf9\xd5\x92\xed\xa3\ \xf9\x8d\x91g\x0f\xca\xbd`B\xe1\xe2B\xae\xa9b\xe4\ A\xaei\x81\xc9\xd0s\x80\xf9\x15\xfca\x1f\x16>\xa4\ \xae\x86EhX\xa0\xb4e\x00\x8b<\x8a\x0a{vT\ \xbeL`\xed\xcd\x09CJw\x09\x810\xa8y\x87\xf0\ \x1dX\x83\x8e\xe2\xf3\xa5\x5c\xf0f4}|\x93\x82\x1c\ \xe6q\xec2\xa8J\xf5.\x059\x1c\x11\xc98\xc2:\ ,\xbb\x98J]o9\xb0o\xe1.u\xf7v)\xae\ \xf4Z7\x04*I\xe2E\xd1:\xcf\xc87\xb7\x03\xe2\ P\x82\xda\xbf\x8a\x00\xf1\xba\xe7\xba\xb1\xbeDd\x8e\xc7\ \x00\xbc\xb6xm~\x99\xe0q)E[~8\x13\xe2\ \x08H\x1c\x82\xc9\xed=\x8bdH\xc0\xdb\xdb\x142\x0b\ \xa5\x921\xf3Ur\xe4\xba\xf4\xaag-`'\xd6\xf3\ ;\x93\xdd\xe1.F\x920q\xbd\x8b`\x87w\x88\x07\ \x01\xacf\xe0yY\x05\xf6\xb7\xb6\xf9\x0e\xfa\xf9\xf7\x1c\ \x0fa\xbcX_k\x9e\xd7G\x93>&\xfc\xaf\x95\xd2\ $\x98\xc7\xc9\xc6\xff\xe6M\x5c\xea1\x82\xb9\xf5\x9b\xca\ \x03\xeb#\xa0\xfb\xcdu\xa9\xd6\xa5\x1d$\xf14\xf5\x8b\ 2\xc8\xcb\xebU\x1e\x97q:\xb5\xf5F\xd8Or\xbb\ \x1c\xd7:i8\xcb\xf2Z\xa9\xca\x8e\xcd}P\xe5\x82\ X\x90\x00\xb1\xae\x0bbG\xc2F\x97\xb7\x1d\x11\xb8\xef\ \xc3\x0e\xbf<\x1d\xc9\xfbN\xf7\x8d\x0f2\xa03r)\ \x87\x94\xa7\x19\xc6\x99\x10f\xdf\xa91\x10\x94Z\x7f\xb3\ \x00\x0f\x8e\x11\xf0\x01\xe4\x9e\xbeh\xc6\xf0\x07\xe4MO\ \x90\xdb\x1e|\xc7.%\x04\x1a\x88\xd0\xec\x11\x92\xea\xbd\ \xab\xb2\xdd!\x96\x0e\xc3T0\xa6\x87\x13\x8eG\x11F\ B\x170v\xd5L\x1c)=\xd8\xd3{{\x9d\xedn\ \xef\x83p\xa0\x81\xc4\x14\xb3s||\xfb\xb9 r\xfc\ \xa9\xd8\xd7S`\xe8;\xddc\xee\xd9%\xeb\x13\xd8\xd9\ I\x1dG\xd9I\xa5\x0e\xb6\x9e\xf4\x86\xfa\x9b`\x18i\ \x16\x12\x08O.l%4_\xb8p\xb8\xe7\xb9\xae>\ -\xc1:VQ&\x05\xc8\x9b\x9e\x9a\x9d\xa0\xe3\x22\xc2\ \x85\xb4f\x9a\xaa\x9cciv\x1e\xac\xc3/\x09\xdd<\ \x07b \x13\x92h\xfa\x99f\xcf!\x08\x82\xa4!\xb6\ \x84`\xcb07\x872\x0eU6o\x91sf5\x03\ \xf7\xa5-\x81\x84{\x09O\x9fB\xd4]\xfaj\xf3\xb5\ fk\xf7\xa7\x07!d\x9en\x99\x18\xc5\xc5\x22\x81D\ \x1d\xa7z\x8d\xae\xb3\x07\x95O\x92l\xe5\xd7\xb7\x0c\xd7\ \xe6\xdf8\xd1\xcb\xb4\x15\xedX\x11\x17Yu`\xed\x07\ \xcb2\xbb\x9e\xc7k\x1b\x14\xd2\xa8\x22^Mr\xf3\x06\ v\x9c\xc2\xc2/\xb6\xea\xc5\x87wo\xfa\x1al\xa0\x1d\ <\x16~EI\xad\x05&\xe2h\xff\x17\x14F\xd6\xad\ ~\xfb\xa8\xac/{/(\x95!\x02\xa1\x935\xe1y\ A\xf7\xf1\x8a\xa8-\xad\xae=}t\xe0\x14\xd7\xf3 \ \xbfWy\xd5\xa1\xfan\x1b\xcf\xedH\xe6q\xd4y\x06\ \xf4\xab\xe7\x0a\xdd\x5c\xe9cd\x88\x05\xd5\x0a\x99\xdb\x96\ }a\xa1\xff\x97\x9a}\xa1\x89\x17{\xb2\xeaN\xca\x1e\ \x07\xe1\xfd\xd4\xcc\xd8\x0f\xc2p9_\xeak\xfc\x86\xb7\ \xd5\x81\x09\xe4\x05\x8e=1\xa4\xd8q]\xf8\xaa\xfd\x94\ Q\xbdq\xa5\xd8\xf8\x14\x84{\x82\xf5\xc9\x94v%N\ \x90 C\x17;\x98#\xc1<\x0b\xca\x1b)\xb0\x07\xfb\ \xdev\x17\xd8\xf0R\xee\xea\xbc\xb3\x1b\xf5\xf7N\xa1\x95\ \x83\x97\xe8\x1c\xd3\xf7C\x82\x13.d\x1c\xe8F_B\ \xdd\xbd\xf8/\xbc1S,\ \x00\x00\x0bu\ \x00\ \x00'\xcfx\x9c\xedZ\xebs\xdb\xc6\x11\xff\xee\xbf\x02\ \xa5\xa73\xd6\x94\x00\xef\x8d\x03-)\xe3\xd4\xe34m\ \x9avb\xa7\xfd\x98\x01\x81#\x89\x18\x04X\x00\x14I\ \xff\xf5\xdd=\xbcIJ\x96\xe4\xee\x16\xcc\xf5W\x87M\xea\xdc\x99\xa2\ L\xf2\xecfB=2qL\x16\xe5q\x92\xadn&\ ?~x\xe7\xea\x89SVa\x16\x87i\x9e\x99\x9bI\ \x96O\xbe\xba}q\xfd\x07\xd7u\xfe\x5c\x98\xb02\xb1\ \xb3O\xaa\xb5\xf3m\xf6\xb1\x8c\xc2\xadq^\xad\xabj\ ;\x9f\xcd\xf6\xfb\xbd\x974D//V\xb3+\xc7u\ o_\xbc\xb8.\xefV/\x1c\x07\xb4\xe2j}3Q\ b\x82Ok\x93\xac\xd6U\xf7\x98\xc47\x13\x90S\x5c\ Q\xfb\x5c\xc2\x86\xb6\xf0o\xde\xed\x94x\x9c\xd5\xa2\x8d\ \x8d\xf9\xc0\x09\xea1\xe7\x15\x09\x09\x89\x96\x92\xf3`\xea\ 0\xc2\x98K\xe0?q5^/\xce\xa3,\xdc\x80_\ !\xdb\xfe\xf4\x17\x93n=0;^7\xdfU\xdb]\ \xf5\x939T&\xab\x0d\x807\x03\xd7,\x1b\xd5:\x9a\ \xd5\x1fn\xc7\x12\x00\xe8\xac\x9c\xb727\x93\xfbp\xc2\ \xfd\x94\xdb02\xe5l\xb4`\xad\xdf\xee\xbc\xd3o\x09\ ^\x99\xef\x8a\xc8,a\x09\xe3e\xa6\x9a\xbd\xfd\xf0\xb6\ c\xba\xc4\x8b\xabx\xb0\xcc!\x85\xb5G{\xd8sk\ \x9d\x06A0\xb3\xdc^\xfa\x92\x1c#\x84\xccZ\xac\x9a\ \xad\xdd\xad\x1e)Y\xc4\xcb{m\x136\x83X\x81\x84\ [\x1e\xb3*<\xb8Y\xf9r\xa0\x1aE\x9df\x84\xf9\ \x97\xdc\x99(\xdfl\xf2\xac\xac\xc1\x1b\x09\xc7\xbd\xf0v\ W\xa4V\x22\x8ef&5\x1b\x93U\xe5\x0cB3\x9b\ \xdc\x82\xfcul\x96%\xea\xd5\xa9\x87O\xdc2\x80\x05\ X\x98\xb0\xf8\xa6\x08\xe3\x04\x94j\xa1Zl\xcca\x82\ \xd3F\x07\xb4\xca*\xdf\xb6\xb2\x90o\xd51\x85\x90#\ \xd1\x8d\xf24/\xe6/\x97\xf6\xf3\xda\x92r\x08wR\ \x1d\xe7\xf4\xf5\xa4\xd7\xc9\x97\xcb\xd2@I\x90\x01\xcd\xd6\ \x05h\x80->qf\x8f\xb7\xb6\xd0\xf8\xf3\x08k\xf4\ \xb25\xd9Y\xbb\x9e\x8d\xdd~\x18\xa5\xb6\x88`\x1b\xa9\ \x89`\xfd0\xdd\x87\xc7r\xf2\x00\x8cT\x09\xf1\x04\x1c\ \x89\xfd<\x17G0\xa6\x9e\x04\xe4%s\xe4\xd1@\x82\ 9\xfd9$\xf1)L\x9f\x8c\xa4\xad\xd9\xf9\xba0P\ Z//A:\x84|l\x03\xf8\xb2G':\xdcL\ \x98\xf4(\x93=\xe9x3\xe1\xca\xf3{\xca\xf2\x5ch\ y&T\x00\x0arHX5\x06?\x14aVB\xa7\ \xda\xdcL6aU$\x87WtJ\xf0\xc7\x93\x81d\ \x5c\xc3\x9fTx\xda\x97Wg\xaa?fI\x05\x0di\ W\x9a\xe2=6\xc9\x7fd?\x96\xa6\x87\xf4\xd1\xc5\x1a\ p~_\x92u\xd1\x0a\xb8\xfcL\x1e]H\x90 Z\ D\xb19\xc9\xc7\xfbSl`\xcc\xffL\x16]0\xc6\ \x88\x08\xb5\xff;d\x14\xc2\xf7@B1\xe2\x8f\xf3I\ yR\x08\xce\xe8(\xa5\x98\xf6\x84\xd4>;I\xab3\ \xd9\xe5EY\xc8.\xc6<\xee+J\xd5#\xd3\xe4\x11\ y\xe8A\xfaq\xc1 \x15\x09\x81d\x14ZN]\xfc\ \x1b*\xc4\xf7\xd5\x94z\x5cR\xe6\xb3\xa9\xab\xbc `\ \x92\xf2\xa9\x1bx\xbe\x10Z\xb0\xab>\x0e\xbf\x02\xe2x\ \xba<\x80\xb8\xe0c\xc4]\x1ax\x92J\xc5\xf5\x08r\ \xaa<-\xa5R|\x04\xf9\x05\xe1\xe5Ea\xc0\x5cC\ As%\xf8#\xc0\x14\x9e\x102\x08\xea\xda\x86\xb5\x94\ \x92S\xe5{\x0c\xa0\xa4S\x97\x12\xe1)\xe5\x07\xbfT\ \x8d\x7f\x01\xb8\xdc\xd7d\x04\xee\x19\xbb\xcf\xb0\x03\xbd\x99\ \x08\xea)\xc1\xb4\xec!?\x02U\x024@\xa3=4\ \x07V\xe7(\x10\x07\x80\x1d\x81\xea\xd7D\x16\xfcF\xce\ _t\x8a<\xe1\x98\xe5B\xc9P\x9c\xb6\xb5\xc7\x9d\xb2\ `\x8a=\xe9\x90\xf5Y\xb0\x8c\x96\xcf\xc9\xc0Y\xb7\x19'\xa9\x10g\x904\x12\xed\x88\ \xa9\xc5\x99o\x8d\xc4\xa1O\xdfS\xd6\xf1\x02\x0b\x1d\x1b\ \xc2=\xd8\xff2IS\x88ll\x16Z\xb7`\x95U\ \x91\x7f\x84Do\x0f\xeda\xbc\x1b\xdc.!\xd0l`\ \x13\x1e\x92M\xf2\xc9\xc4\xf7\xe4D\xb46\xd1GS,\ \xf2\xb0\x88q\xafM\xfa\x8fp\x1e6\x83o\xe0\xf9]\ \x91o\xfeY\x18\x22\xd4{SU0\xf1\xf7\xfd\xa2:\ \xe2\x88z8\xa2ZG\xcc\x8bd\x95d\x87a\x91\xd7\ \xa4\xe3\x90\x84\xb3+\xacu\x18VgC;\x0eim\ \xfa\xfb\xd4\xa7Qo\xc4l\xb6\x1dg\xe1/\xa2\xbeo\ \x0e\xd2\x9e28\xad\xf4\xe0`\x02\xad\x01[r\xb8(\ \x88`\xc8mv\xd0\x17\x05L\xe8I\x99,\xb0\xf5\x0c\ `\x07\xd9,\x04b|B-\xb3p\xdb\xc8#$\xd8\ T\xca\xb5.\xbd\ \xb4it\xcb\xd9\xe2\xe8\x96\xe1\x8cydv\x96bQ\ \x9e\xc1\x9dr\xb1{jZ\xfc5\xfc\xb8[8\xef+\ \x03\x15[L\x9d7Y\x0c\x1b(\x9d\xef\x93\xb4,\xf3\ ''\xc9\xa5M\xd8D\xb1N\xde6>V\xc9\xca\x14\ \x95\x07.\xd6x\xd5\xcc\x17\x83\xc5\xb1\xb4\x87\xa5\xfe\xdd\ )z\x83j\x7f\x22p\xe3\xb0lM\x01\xe5[~6\ ,{\xb3\xf0Z\xa2]:\x8af?\x98m\x91\xc7\xbb\ \x08\x93p\x1c\x8f/\x5c\xf8mR\xd60^Z\xb80\ \xff\xd9%\xa0\xf1\xac\x95\xbf\xcf+\x80\xe4\x97]\xf3M\ u\xfff\xbf\x08\x05S$w6\xa4\x98\x0d\xe5/\xbb\ \xe9\xf7\xeb\xb00o\xd2\xe4\xe3\x10\x0c\x9bzM\xaa\xb5\ \xd7\xe3\xc1\xb9s=kO%\xfb\xb4\xeaO\xab\xd1}\ \xae\xbbR\xa4\xe1\xc2\xc0-\xe7;d:g\xdcU\x91\ \xef\xb6\x9b<6\x8dz\xc3\xaf\xfa)\xd1\xfe\x99B\xf3\ \x7fE\xa6T]\xb5'\xe1jxMYi5x\x19\ \xb8\x0d\xab\xf5`ph\x0f\xdb\xfa\xb2\x12\x16\xd1\xf9\xcb\ \x12\xbc\x88\x0d\xe6\x09\xbc\x81\xcd_\x92\x05\x95\x8c6\x8f\ \xf5\xcdq\x0e\xb5\xa3t\xa0\xa4\x10-\x1d\xcfx\xf0d\ \x0e~d\xf1\x90\xf8s\x9edc*\xe4\x00\xdc\xe1\xe0\ ~V\xcd;\xf58\x84{aQ\x84\xc7y\x96gf\ \xb03t\x0b\x1daA\xc0&\x17\xbc\xc1[8\xbf\xcc\ 9\xde\xc7)P\x87\x5c\xe4\x1cO8`\xfd\xef\x8eb\ S\xce\x9c7\x0e'SN\x1c\xe2P\xf8\xb1\xa4!\xa1\ \x16\xfa4\xd0\xad\xceF|\xe2\x05\xf5\xf8\xe27/\xf0\ \xbaG\x0a\x80\xda\x0fL\xfa\xc2\x0b8~\xae\x86\xc9\xf8\ \xcc`\xc2\xd5\xe4\xd5\xf9\xf8\xae\xae^#w\xf0\x06\xb8\ \x0d\xf6(\xf6]\xb0\x99\xfdp\xfe[\x06\xdb\xe5\xff\x0b\ \xe1n\xe3<\xe5\x1e~_\x13\x04\x18`\xe6\xe9\x07b\ {\xbe\x0e\xf5`\x00\xf5}0\x89\xabQ\x1cH\x15\xd7\ b\xaa\x94'\xe1\xf2\xae\x84M\x1a.\xe5\xf0\xf5P\x9f\ \x07p\x0c\xbb%\x0cCs.<*9c\xdaW\xdb\ \xc3\xeb\x9a\x8e2\x10\x06\xb8\xfa\xa65\xe5.,\x920\ \xabF\xb4\xbd\x1d\x06\xe7\x8b<\x8d[\xb5\xc2T\xd1\xba\ \x15\xaa\xcc\xa1r\xc34Ye\xf3\xb2\x0a\x8b\xea5\xe6\ B3B\xce)\x93\x7f|\xbd/\x12\x1c\x99\x5clq\ \xf3\xb4p\xabE\xa3\x94E\xeb\xbch\xb4\xfa\x8c=\x7f\ ]\xf7\xa4\x8c\xa5\x00\xb6\xf2\xb5$\xc1i\xc6\xc2\xc9T\ =\x9c\xb0\xbd\x05\xeb\xe92\xdc$\xe9q\xfe5\x9c[\ \xe0s\xb8q\xfee\x8a\xd0y\x0f!\x1a\xa7\xcd\xc6q\ \x19\xf1\x98\x9cJO)*5\xd7N\xe4\xb8P\xd62\ 4\x982Oq\xe3J\x10\xf2\xa8\xf0\x15\x87\x06\x00\ c\x19g\x5c*\xc7\xe5\x1e\xd3\x80\x12\x908x*Q\ \x8dr\x16X\x0a\x83\xf9\x97i\x8e\x8a\x84\x04\x82\xf2\xa9\ \x1d\xd8$\xc8\xa3\x22\xf7\xf1\xb5\xea\x94:\xf8\xda\x95\x12\ X\xd7\xbe\x7f\x85\x89\xcfR\x18\xd1zL\xe1\xd6P-\ \x0eK\xdb7\xb7Z5\xd2LY\x02\x0d\x18\x15\x03\xe9\ \xfa\xf7\xb3u@i\xda\xecn\xf8\x8c{s\xc83$\ S\xf8[B&+&\x09C\x94\x7f\x05\x1b\xb5\x8b\xd3\ \xc6c\xa7qp\xda8\xec\x9c\xba\xf9tq\x1b\xab\xda\ \xbc\xd3\x06\xaa\x7fl\xa2\xf4{\xc9A\xfe\x09(:\x9b\ :>\x0d\x88\xe0@\xd2\x8a)\xc2\xa1\xd5xL\xf9\x14\ \xf2\x9by\x01%\x92\xe0\xcbi\x0fb\x01\x22Dh*\ (jq\xa5}HmHZ\xc1)UH\x82x\x09\ ?@-H\xdf\x86\x80P\x04\x02\xa0\xd2P!\x14\x0b\ \x04\xdf\x15\x8b&\xf5au!A\xc1\x86\x1a\x08\xb5\xbc\ $\xdagX\x06\x02v\x1f\x00\xc1\x87\xe2\xc1o\xc1\xbc\ @s\x0b\xbeo\xab\x89\xc2\xd6\xb5\xad&b\x5c\x8c\x8d\ \xd0DI\x1bt*\x04\xb5~\x07\x12\xf6\x8b\x14\xac;\ \xd0\xa8\xcb\x0fLkf\xdf\xc4\x83\x8eO\xa8B\x92\x0f\ \xe6\x14\xca\x000\x01\xa5X\xa4\xb5\x8e&>U\xca\xf9\ \xce6\x00\xeb\x1b\xc5\xef\xf5\xea\xf2g\x84\x0a\x19\xe0\xf1\ \xae\x89\x08\x90\xe2\xfb`\x14\xbf\x1a\x01\x03\x90\x1d\xb6#\ (\xc9|\x0e\x084\x1b\x06\xf84\xa0\x86>\xfa\x14\xf6\ j\xeds\x19\xf8\x0aWb\x1c\xe4\x87$l)\xe0:\ \xb3\x85AN\xa4\xaf\xb4\xc6\xa5\x9b\xba\x85{\ ?\xb3\xfb\xc6Ka`IP\x11L\xdb\xd2\x83<\x87\ TF)I ?\xa1\x9e\x05\xb6\x82\xb6G\xa4\xd8%\ T\xed\x1c\xd6\x0a\xd8\xb6W_Y\x9fS\x81\x86\xec\xc6\ ^\xc3\xa1T\x03T\xd2Z\xc0\x98\x01M\xa0>\x22\xa1\ Z|\xdc\x0a\xf6\x08H}P\xd1P\x98\x02w\x03f\ \x84f(\x01\xa8j\xde\x90@\x05\xae^\x9aa\x89\xe2\ r\xd6K\xa8\x18\x06\xddL\xd6u\xcd\xb1\x88@\xca\xe7\ P\xe2\xbe\xc6\x8ad\xd4j\x0aOcG\x80S\x06T\ \x05\x1c\xba\x81\x8f{\x82\xb3\x940\xc9\xf0\xfcU\xe0\x8c\ \xb0\xce\x81u\x1f\x8bG\xd50\xd5\x14\x00\xf2\xd3\x85\xfb\ -\x95R\x0c\xc9\xfd\xf7Q\x19\x5cS\xaa\xbcp\xa3]\ \x01\xd3\xee\xae0'\xdf\xa0woL\xe1\x1e\x85w\xff\ \xf2f\x12\xdd\xf7)/\x93\x1f\x98*\x86S`\xf7\x7f\ \xdc<0\x18|\xc1\xed\xea\xf4\xf6\xc4\xfc)\xf3\x1dJ\ \xb0\xa4\xa6\x94`\xd7\x86?/\x81\x07\xf3\x8b~\x02x\ \xfdw[\xabzl\x87_\xd7\xf8\xe2\xf7\xf6\xc5\x7f\x01\ \x94>\x93\xc4\ \x00\x00\x09\xd3\ \x00\ \x00#\x18x\x9c\xe5\x19ko\xdb\xc8\xf1{~\x05\xab\ |\x89q\x22\xb9\x0frI\xca\x96\x0f\xe9\x19\x09\x0e\xc8\ \xa1E\x1e(\xda\xe2\x10\xac\xc8\x95\xb45E\x12K\xca\ \x92\xf2\xeb;\xbb\xa4\xf8\x90hG\xf6\xdd\x87\xa2\x11\xe3\ X\x9c\x99\x9d\x99\x9d\x9d\xe7\xfa\xe6\xe7\xfd&\xb5\x1e\x84\ *e\x9e\xcd'\xd8A\x13Kdq\x9e\xc8l5\x9f\ |\xf9\xfc\xce\x0e'VY\xf1,\xe1i\x9e\x89\xf9$\ \xcb'?\xdf\xbe\xba\xf9\x8bm[\xbf(\xc1+\x91X\ ;Y\xad\xad_\xb3\xfb2\xe6\x85\xb0\xde\xac\xab\xaa\x98\ \xb9\xeen\xb7sd\x03tr\xb5r\xaf,\xdb\xbe}\ \xf5\xea\xa6|X\xbd\xb2,X\x95T\xeb\xf9\x84y\xc5\ ~\xa2\xdf\xd7B\xae\xd6U\x0f \x93\xf9\x04h\xfd\x90\ `\xf3^\x82R\x05\xfc\xccZm\x91CIM\xda\xc8\ \x99\xf56\x82\x1db\xbdA\x1c\xa1x\xe9S\x1aM-\ \x82\x08\xb1\x11\xfc\xf3\xae\x86\xfc\x92<\xce\xf8\x06\xf6\xc6\ I\xf1\xf5\xd3\xbd\xa8\xe2\xf5G\xb1\x14\x0a\xec \x1c\xd0\ `(\x22\xdfV\xc5\xb6\xfa*\xf6\x95\xc8jY\xb0\xb9\ \xdeN\x0dZ/kaf}_\xb3!C\xb1/r\ U\xd9K\x99\x8aZ\x0dw#\x12\xc9\xdd\x84W\xdc\xfd\ g\xae\xe4\xbd\xfbN\x09\xf1\xcb\xdb;W\xc6yV\xba\ \xb5\x8aB9E\xb6\x1ae\xb5O\x0a9\x9fx\xfe(\ \xf2\xd0G\xc2\xe1g\xe5\xecH2\x9f!\xa7\xc8oy\x0e\ \x81\xe3\x81?R/l\xd3B\xe7\x0f\x90IH\x00\xbe\ F\x10\x0d\xcf\x90 \xcf#\x0e\x85\xdc\x11\x05g\xc8\xad\ \x82Y\xa3\xb2S~\x10\xb0\xa9\x15\x85\x5c\xd1\xd0\x94\xeb\ |\xb7R\xda6\x95\xda\x8a\xd3\x850\xb8lu\xd3h\ okOn\x06\xa7\x1e\x85^k/\x16\xf9~\x9c\xc1\ Nf\xb0W\xbb\x19\xc5\xb0\xe7\x9dY\xa4\xa18\x0eg\ \xa1G\x1f\xa1\xd8w\x0ey\x8a:<\x8e\xda\xf0\xbd\xdc\ \xc8o\x22\xe9\x1c\xab%)3^4\xba/yZ\x9e\ )o\xf0Y\x9e\x88r|s\xc6\x85\xd6\x22\xbe\x17j\ \x91s\x95h-N\xab\xb3\xb6\xcf\xd1\x9f\xebj\xbc?\ h\xd8 \x9a5\x80DQ\x97V\xc4\xa6\xd0\xc3\x90\x19\ \x91\xbb\x14\xf4 K\xb9\xd0\xf1\xd5S\x06h3\x0e\xc0\ \xe4\x04\xaauo\xe85w\x1d1e\x9e\xa5\x87\x86\xac\ \x8e\xa5\x1b\xf7\xe6\xc9N,\x8c}v\xf2^\xc2\ \x8c\x9d\x88\xbdS\xac\x8b\x9f\x8d\xa8\xf9[U\xed@\x03\ \xc3\xb5\xe51\xe0\x5cl\x17\xa9,A\xd3gY\xac\xb9\ Wx\xa6\xbdFdi\x962\x01R\xb9\x94\x00?\xde\ W\x94*v\x7f\xcb\x93\xf6\xc6\xc2}\xbf\x95\xee\xc7\xc6\ 7\xca\x93\xeb\x8c\xd6\xc6\xfa\xf2\xc4\x08\xeaq\x1c\x9aQ\ '\xa3\xf2%;\xb5>\xbc\xff\xfb\x07\xf2\xd337|\ *OKKe,\xb2R\x98\x93,\x9b\xa3\x5ce[\ s\x86q^@\xa1]Vn*Jh.\x9cu\xa5\ \xc3\xa7\xb7h\xe8\xeay\x06\x8e\xbb\xd8>\xdb\xdd\xf9J\ \x1d k\xfcn\xbdM\xc5\x9e\x83\xcb(\xeb\xbd\x81<\ \xd7\xff\xcf\x150\xb4\xfa@\x8e5\xbd\x97Ln\xdcc\ \xb61o\xab.\x0b\x99\x02v\x96\xc7S\xbe\x10\xe9|\ \xf2A#\xad3\xecJ\xe5\xdbb\x03Y\xbcY~\xcc\ ^\xabA\x06\xee\x95\xc4'o\xce\xd6\xf9F\xb8\x07s\ gv\xd7\x14\xc7\xd2\xfd\xc0\x17\xee\x9d\xe2p\x1e\xb5\xc3\ %\xfa{{y6\xc6\xb1\xbe@\xa3\x0e\xf1\x82\x10\x9a\ \xf6G\xe9\x0e\x8f\xd0Ug\x8d6\xb4\xf9\x94\x05!\xa3\ \xa6\xd1\xee\xdel\x98K\x1d\xec\xfbX\x0f\x09\xd0\xaa\x86\ \x0cZ\xd8\xab\xae[\x5cu\x07X\x1b\xa2\xbd\x002h\ \x05\x1dh\xdf=\x9a\x0eoxy\x02\xf6IgY\x9e\ \x09h\xf3T~/f\xaf\xb9\xd7\xdc\xaa\xe8\xd7\xba\xfc\ \xcf<\x0a\xc2=D\x99\xcf\xeau\xc4k)t}\x82\ }\xcf\xe0\xac\xb2\xa4\x0f\xfcO.\xb3!\x14R\xbbP\ )\x14\xf5j\xe6\x1da\xdd\x95D\x03H8tYJ\ \xf1C_-\x03\xad\xdb\xcc\x19\xba\xdep\x05\x85\xbb\xc6\ \x9bJ)S\xcd\xa2)\x9a\xd7\x89,\x0b\xf0\x97\x99\xcc\ \xb4\x1a\xd7\xf9\x83P\xcb4\xdf\xb5\xf8\xba\xec\xda\x0b\x1e\ \xdf\xaf\x8c~3\x1e\x83?l!w\x8aI\xdfbf\ \x96\x04+\xd2\x90!\x9b\xb2\x01\xae\xe9\x8bH\x108!\ \xf2\x87\xb8cGD\xbc\xd0\xf1\x19\x89\x06\xc8\xbd\xbe\xaf\ \x08`\x82\x0aQ8@\xe8\xb6\x14\xb3\xd0\x09|\x8f\x0d\ k^\xc1\xab\xf5\x9ft\x920\x1dEa\x04\xf3f\x18\ \xd5\x9f\x80\xfe \x07\xa9\x8d\x08\x07I\xec`\x80:\x0f\ \xc7@\xcf\xfb\xcc\xf7h3\xf7\x12\x1a\xf8,\xc0\xd3\x88\ \x12'\xf2\xa1\xd9\x9bF\x98\xc24\x1c\xf5\xe7^\xfd\x01\ !\xbfYp\xe4\x94\xe9gJ!\xf6\x03xB\xeb\xad\ \x85C\x98\x93\xf53m\xbfY\x08\x1el\xc1`\xda`\ |\xecx><\xec\x09jLzl/a\x8a}\x07\ E(\xc2O\x10\x8fi\xfc\xaf\xc1\xc6N.\xa5\xb8\x8a\ \xc7\xd1J\xbb\xf0\x91\xfb#$\xfb\xef\x92\xe8y\xa8\xd5\ \xe4\x11\x92\xbd\x99\xe8\x1b.\x83Xya\xd6\x13K\x12\ \x91h\x18+\xd8s\x18\x81\xc4\x1bx\xb4^\x87\xb0\xf7\ \x83\x04K\x97\xf5\xfew\x92\xdew\x9c\xf0\x0f\x9c\xb3\x13\ 1F\xf5\xb5[\x93\x13#\xf2\x83\x1cs\x9b\x13\xd9%\ q\xf6\xd2h\xbd \xe6\x1f\xcf\x1c\xff\xb7I\xf5\xd1\xc2\ C\xa3A\xe1i\xea\x0eE\xb8_w\x9e\xdf\x1f\xc4\xa9\ ,l\xb5M\x85v\xadoB\xe5\xdfu\xa5\x11\xef\xeb\ \x1cZ\x96y=k\xce8\x0c\x07\xd7\x1b\xb9\xb7\x81 \ Kl\xdd\xaf\x83\x08\xb5\xe1\xe9\xb5\xd1\xc0\x96\x19DF\ q$/?\xbe\xff\xeb\x18B\xb7\xea\xf0Z\xce\xea+\ BM\x05\x22dr\xfa\xd7>\x03\xeb\xf40!\xbeU\ \xe9\x9b\xb3\xcbd\x82\xae\x0c\xf6\x84xh\x83c^@\ \x94\x9e\xf5J\xbd\xfc\x7f\x9a\x0f` \xaa\x9e\x9f\x0e.\ \x88\xfe\xb3\xc4\xd1O\x07\xf5w\xbb\xac\xb8\xaa\x06\x90\x8d\ L\x06\xefp\x0e\xf5{mg%\xf4\x00(\xb3U}\ V\xe6\xea\xe6\x14\x08\x9a\x15g\xc0J\xec\xabS\xd8\xc5\ \x09F_=Y\xd0_\xea\x00\xc4\xde\x14\x13\xa2\xff\x84\ \x81\x89\xf5`\x85\xe0\xd1\x98\x11km\xd9>u\x22\x84\ #+\x850D\x0e\xf2\x10cS\x0c\x1e\xcf\x82\x80\xb6\ =\xff4 \xbd\x04V\xc3\x04\x02|\xec#\xa3o\ \xa3\x15\x0c\xa3\xde\xdf\xf4\x0c\xa2\xbb\xa0\xcf\xe0 a\xa8\ \xb5\xe3\xadz\xe0\xd5V\x09}\x05\xd8\xbb\x1dwW\xc7\ \xf1vU\x0f\xb6\xf0\xebF\xdfw\xdd\xbe\xfa/\xfbS\ !S\ \x00\x00.\xce\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ id=\x22linea\ rGradient7597\x22>\x0a\ \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a \x0a\ \x0a \x0a \ \x0a \ \x0a \ \x0a <\ /marker>\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a \x0a <\ metadata\x0a id\ =\x22metadata3090\x22>\ \x0a \x0a \ \x0a image/sv\ g+xml\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a\ \x0a\ \x0a <\ g\x0a id=\x22g96\ 6\x22>\x0a \x0a Parts\x0a \x0a \ \x0a\x0a\ \x00\x00\x0bV\ \x00\ \x005\x96x\x9c\xe5[[s\xdb\xb8\x15~\xcf\xaf`\ \x95\x97d*R\xb8\x12\x04mgg\xdb\xcc\xee\xec\xcc\ \xb6\xdb\xd9d\xa7\xed\x93\x87&!\x995EjH\xca\ \x92\xf2\xeb{\x00\xde%\xda\x96\x14\xc5\xdd\xb6v\x12\x09\ \xc0\xc1\xed;W\x1c \xd7\xdfm\x97\x89\xf5\xa8\xf2\x22\ \xce\xd2\x9b\x09v\xd0\xc4Ri\x98Eq\xba\xb8\x99\xfc\ \xf6\xf9\x07\xdb\x9bXE\x19\xa4Q\x90d\xa9\xba\x99\xa4\ \xd9\xe4\xbb\x0fo\xae\xff`\xdb\xd6\x9fs\x15\x94*\xb2\ 6qyo\xfd\x94>\x14a\xb0R\xd6\xbb\xfb\xb2\x5c\ \xf9\xb3\xd9f\xb3q\xe2\xba\xd2\xc9\xf2\xc5\xec\xbde\xdb\ \x1f\xde\xbc\xb9.\x1e\x17o,\xcb*`\x8e\x15\xfc\xf5\ \xa3,L\x83%\x0c\x1d\x90\xd5\xed\xf7\xdb\xb8\xf8[\x12\ \xa4\xea\xafY\xbe\x0c\x92?giQ\xe6A\x9c\x96\x0e\ t\x9b\xe8~\xcd\x98~o\xd1\xd8!\xd6;\x14 \x14\ \xce9\xa5rj\x11D\x88\x8d\xe0\x0f{o:\xf5i\ \xabQ\xa2\x9b\x09\x8cH\x91\xc7M\xf9^\xc5\x8b\xfb\xf2\ f\xe22S\xdc\xc4Qy\xdf\x96\x00\xa2\xb4\xf0\x9b\x89\ o&O\xedPo\xa3X\x05\xa1*fM}\xaf\x7f\ \xb3\xe1\xb6\x7fS\xe1\x14\xd9:\x0f\xd5\x1c\x86PN\xaa\ \xca\xd9\xc7\xcf\x1f\xdbF\x1b9Q\x19\xf5\x86\xd9&0\ \xf6`\x0d\x1bjf\xc7R\xca\x99i\xed\xa8\xc7\xe8\x08\ Bh\xd6\xa0Y/\xedqq$e\x1e\xcd\x9f\x9c\x1b\ \x91\x19\xa0\x0e\x14v\xb1K\xcb`k\xa7\xc5\xdb^\xd7\ 0l{\x86Zr\xe2G\x15f\xcb%p\xb8\x02o\ @\x1cu\xc4\xabu\x9e\x18\x8a(\x9c\xa9D-UZ\ \x163\xe0\xe3l\xf2\x01\xe8\xaf#5/t\xbf\x8a\xa7\ \xba\x04L\x15\xa6\x0dZ\x01\x0e\x15\xe4?\xe6A\x14C\ \xbf\x8a\xae\xa2\x1c\xb6PO\xe0\xba\x0f\xf4*\xcal\xd5\ \xd0\x82\xa4\x96\xbb\x04\xb8\xae+\xed0K\xb2\xdc\x7fK\ \x00\x9a\xf9\xfc\xcaTe\xc0\xf1\xb8\xdc\xf9\xf8j\xd2\xf5\ \xc9\xe6\xf3B\x81<\xa1^\x9d\x919\xe8\x01s\xd1\x89\ 5;~\xb6\xf9|\x1e\xce\xc3#f\xc3\xe3\xb3\xf1v\ \xb6\xeb\xd9p\xdb'\xa3\xe4\xd2\x13P\x9a\xcfA\x80\xd0\ \xd9(\xb9\xfcD\x94\xa4\x0a\xbc\xb3Qr\xc5K(-\ \x83\xfcA\xe5-:\x8d\x1d\x82\xee\xe1\x83\x1e\xe7\xfb<\ \xcf6\xe4g\x95F\xed\x04Y\xae\xfb\x83i[\x97Y\ [\x99\xab\xf9?\xfb{\x86\xf2?\xfa\xe5'\xc6\xaa\xb7\ \x9c\x81-\x9b'\xd9\xc6\x7f\x8c\x8b\xf8.Q\x1d?V\ Ay?\xdc\x99\xaea\x5c\xb0\xc9\x01p\xf38I\xec\ |\x9d(_=\xaa4\x8b\x22\xc0-\xcf\x1e\x94m,\ \x9f\x8f\x1c\x97\xf0\xa6J\x83\xf1\xaf,N\xfd<[\xf7\ \xd6cY0\xc3_,\xcf\x11\xd8\xe3\x9e\xf0\xa6\xccA\ \x94\x0a\xca\x89e\x13\x87 A<\xc9\xa7\xc8A\xd8E\ \x98\x12\xb7\xa1\xf4\xd8\xd4\x06R\x84\x05\x12\x9e\x15Z6\ v\x04\xe3LB=q\xa8 \xc8E\xd2TR\xce\x18\ \xf2\xa6\xdcq1\x10`\xa8t\x95-\xa6\x1eL\x03-\ \xd4\xfa\xd2[\x0a8\x89\xb4\x00\x0b\xba\xbc\x99,\x832\ \x8f\xb7\xef`\x04\xdf\xd5\xd3\x0b\xa2tJ\xd8\xf8\x95\ \x01\x11?5l\x14J\xa8\xb3Q\xe2/\x86\x8d\xad\xa2\ \xae\xe0x\xb5\x02M\x85\x90\xbe5P\xcd\xf1\xae\xdc\xe9\ #\xd3\x90\x94v\xce\xa3;\xce\xadn\xb77\x13\xea\xb8\ \x1e#.\xd8x\x1f\x0c\x13B\xae+%\x81\xefx\xb4\ \xc3\xeefb\x13\xe1\x80\xcb\xe0\xe0\x06|\xcbf\xdc!\ Rx\x8c=\xd9\xe5\x0bta.8 .\x04\xd7]\ 08\x18.\x99\xeb\x8ew\xa9\xd7k\x83\xf5^\xc4\xfa\ \x00iV\x03nQ\xff\x88a\x1fmd;$(\x92\ n\x87\xe07\xc0\xca\xc6\xd4a\xd4%\xaeY\x12s\x04\ \xd1\x85\xe7\xc0B\xd0(9\xf8\x5c\xbds\xf4\x14>\x8c\ \x01\x13\x84\xa0/\x8fz\x00\x0e\xd7\xe1\x82\xa0\x1a~\xe9\ \xb8\x94S.\xbd\x170b\xdf\x16##\x09\xe8%P\ 0\xa8\xe5s\x90\x10\xef\x99aFE\x84\x1d%!\x18\ \x8f\xed\x1e\x1c\xb5\xad\xe6s j:V%\xd0\xcc\x07\ 8\x01\x97A2\x1c\xb1\xa3\xa7\xa00][q[\x87\ \x057\x932_\xab\xb6\x01:\x94*Ou\xd0\x06\x81\ \x11\xfc\x85\x9da4p\xf7a\xb6\xdaUH\x17\xb1\x8e\ =n\xc1\xab\xab2\xbcW\x1d\xd2\xab<[\xdd\x1a7\ \xde\xb7 \xa6\xe2vw\x9b\xab\x04b\x85 )\xbai\ uj\xc4\xa4\x95:\x98S\x93\xe5\xb9=4{%D\ <#\xd5f\xceu\x1a\x97\xc5\xfe\xe0\x10\x08\x951\xcc\ }\xdbnn\xd8>_\x17\xea\xb6\xcc\x12\x05!H8\ \x0c#\x9e0\xf6]\x14\x92$\x06\xfc \xd9\x04\xbbb\ \x00\xfd\xb0+\xd8\x11q\x8a\xcf\xd4?\xf4Lo\x00s\ \xc9\x13#\x8b\xc3\xd9\xd0\xb1\xde@@\xe4~\x91\xe31\ \xbe\xe8\xc9h\x7f\xb43\xa3b*%\xdf?\xcdh\xc5\ \xe0S\x9b\x83\x83 \x0e7\x05n*\xbf]H\x5c\x9f\ W\x90\xe3\x99\xf3\x8a\xfe\x04\xad|\xb5C+\xfet\xb9\ \xcc\xc5p\xacs\x0f+\x08\xa3\xdf\x0f[\xccQ\xc5\xe4\ \x13\xcc\x99\x05\xeb\xd2\xeb\xb1\xe6\xa2Z\xf3\xe92\xf9\x04\ \x04\xa7\x8d\xdf\x0d{\x1a\xee\xe8\xcfW\xe5\x0d\xb9(o\ \xf6G;\x9b7\x84\x1f\x8f\xf8\xffN\xae\x079\xb4\x96\ \x02\xaa\xf5\xd4\x95\xaf\x9a\xed\xf9e]\xfe|\xb9t\xcf\ `\xb4s\xe5\x00\xd3=\x1d\xfd\xcf\xe6{\x8cos\xbc\ W\xe0\xc9\xc78Xfit\x99l\xfc\xd8`gk\ \xe6~\x06N[M[8H`$\x5c\xcf\xaa\xbfz\ \x92\x99\xd0\xbc*qOZ\xd57\xe6\x12S\xdf\xeb\xf1\ \xaa\x11\x89\x0d\x9a\xf9*J\xd5`~!\xeb:>\xdc\ \xd9L\xf4\xe8\x7f3\x13_\x8b\x87u\x90~\xc1\xb8\xf2\ \x12*\x08\xe1\xbe\xf7\xfb\x09\x5c\xec\x861\xe6\x8b}\xa1\ \x88\xff\xf8\x04\xa6<\xedFW\xff\x9c\x9d\xc0\x94\xa7\xde\ \xe8\x1e\xcev\xf4\x91\x15f;7\x19\xfe\xd2\xc9\xdf<\ \xb2\xf0\xefAJo&oGR\x00O\xc3\x0d\xe7\xe8\ \xcepl\xb1\xc9\x98\x09\xcc\xbc\xce%\xec\xa0\x92@$\ %%\x15\xddH[r3\xa1\xcc\xc1\xd4%\xa8\x93\xdd\ \x1d\x19\xa3]\xd4s\xfdV\xa5I\xd6\x85\xca?\xe9G\ )\xbf\xa4\xbf\x15\xea\x9b&\xdb0,P\xa7\xfft\xce\ \xcbu<*\x90\x14_\x9by\xa3\xd8\x91\x1e\x84\x97:\ \x8fG\x90\xc3\xb0\xeb\x11~|6R@\x07\x93\xe6\xe5\ \x0e\x07\x98<\xfcR>\xce\xa6_\x9d\x18zF<\xcc\ \xdd\xc3s\xda\xe8\xca\x81x\x10\xeaP8g1o \ \x1f\x00.T\xb9.\x1b\xca\x87t\xa8\x8b\x18\xe5\x03\xf9\ 8\xa4}^>\xf6\xa9>w\x06\xcb\xd8\xae$(\xd5\ ;\x1b\xfc\x97M\xc0N}S\xa8\x04~\x16\xaa\xbez\ \x00(\x10\xcfr\x9d\x0bGd\x1f+\xec\xb9\xa27\x96\ \xc6\x0aN%pz%\x92\xedc\xb5G{\x01\xac\xb8\ p<\x17{\x12\x1f\x87\xd8\xc8u%vm\xf4\x94\x8d\ \xee\xae\xfe\xb0g\xbb/\x18\xe2\x11\x13\xeb\x05\x8aP\xb6\ g\xd0\x9f6\xd2\xddt\x04\xd9\xe4\x05K\x80\x8d\xc2\ e\xac;\xcd>\x95p\x0a\xf9IO\xd2\xb3C\xf5\xa0\ q\x99\xa8\x9eq\x9a\xd5\xabo\x0cHospj\xa8\ woJ\x8b\x0e\x95\x81\xae\xb4k\xea\xa2\x00\ \xacb\x9e\x07;?\xcdR\xd5\xf3\x0e\x1a\x0e\xbdn)\ \xfb>\xa3\xb6)\x0c;\x1c\x11\x8f\xf43\x11\x8d1a\ \xc4\x91\xae\xeby\xfd$\xf0\xd6D\xc4L 6\xc8\xdb\ \xef\xaa\x87\x04\x98!\xdc\x0b>G\x81\xaf/?\xb8\xe7\ a\x89t\x96W\xba\x5cB\xd1\xe4\x5c\xdf\xf7\xfd\xe1\x10\ \xec\xd3\x87\x1a.O\x80yg\x1eb{\xbb!\xd8!\ \x1e\xf2F\xb6\x0f\x0eAR\x17sq\x88\x1a\x91\x8e\xe7\ \x11D\xc9(\xcc},\x07\x22\x120#\x04O\x88H\ \xdd:<\xf7;\x0c\xb9\xfc\x1b\x89H\x17\x0d,\x1a\x8b\ \xd5C\xbc^y\xff\xe2\x17]\x85I\xbc\xaa\xb2\x160\ \xc2\x17p\xe4WQ\x5c\xac@O\xfd8\xd5\xeb\xb8\xda\ O\xa3\x5c\x99\xcf8\xd1[m\xaa\xba\xad\xc7E\x06z\ \x1cg\xa9\xaf39W\xcbxk\x03A\x1a\xd9Z\xff\ \xfd\xea^\xff\xca\xac\xc0\x8eS\xd8\xcf\xaa!/~\xfd\ \xf1Oc\x0d6`\x0b\xc5\xc2\xaf\xe2\x1bM\x05S\x80\ \x17\x1en\xa3\xaa\xeb\xd6Q\xb1\x07B\xf9y8\xdfg\ O\x97\xa8i\xb6\xfc\x9cNC\x84\xc1\xf5\xdb\xa3}\x8e\ \xdd\xad\xcb\xf2\x80a\x86G\xc73\xac_[\x85\x81~\ ;{\xb7\xde\x0a\x15\x88X \xce\x02\x07Y!k\x1c\ I\xaf2[\x95\xc6\xaf\x7fZ)\x05\x22s\x0f\x86w\ \xbfK\xa9\xb6\xe5~]\xe5K\xed\xbb |X\x18i\ \xf3\x83\x10b\x98\xb56\xc6\x03\x8f\xad\x05\x09P\xe84\ \xa1\xf9\xbf0:\xfb\x00f\xb7\xb3D\xad\xb6qGJ\ >HWTz&\xb9\xdb\xf3\xfc\xc6\xd0\x80\x89&D\ \xf4\xae\xdb\xc7\x12\x95\xd2\xfc\x08<\x15\x8e\x0bF\x09\x98\ \xabl\xa6\xed\x05\x02\x1b\xe5q\xa2\xef\x10\x0c\x89\xc7\xbd\ \xa1\xe9\x19d\xfc\x06\x0a<.!\xcf&\xee\xf4\xcdV\ \xef\xb4\xb0\xef\x04\x9b{\x9a\x96\xc0\xdc\xae\x10>\xd5\xbb\ \xc4\x98Q\xc2\xac{\x0b\xbbVb\xd9:\xb1\xd7\xbf\xbb\ jR\x91\xaeh_\x00\x19U\xbe\xd6\x11\xc3\x877\xff\ \x06\x88\xf7\xc6N\ \x00\x00\x0b\xa5\ \x00\ \x00D\x22x\x9c\xed\x5c\xeb\x8e\xdb\xb8\x15\xfe?O\xa1\ :(\x90\xc1\xea\xc2\x9b$\xcasY\xa4\x1b$X \ \x8b,v7-\xd0\xa2(d\x89\xb6\xd5\xc8\x92!\xc9\ c;O\xdfCZ\x92%K\xf6\xd8\x99\x99\xd8m\xe3\ d0\x16y\xc8C~\xe7N*\xb9\xfdq5\x8b\xb5\ \x07\x91\xe5Q\x9a\xdc\x0d\xb0\x89\x06\x9aH\x824\x8c\x92\ \xc9\xdd\xe0\xd3\x1f\xef\x0c>\xd0\xf2\xc2OB?N\x13\ q7H\xd2\xc1\x8f\xf7W\xb7\x7f2\x0c\xed\xa7L\xf8\ \x85\x08\xb5eTL\xb5\x9f\x93\xcfy\xe0\xcf\x85\xf6z\ Z\x14\xf3\xa1e-\x97K3*\x1b\xcd4\x9bX\xd7\ \x9aa\xdc_]\xdd\xe6\x0f\x93+M\x83Qa1\xbd\ \x1b8l \x9f\xa6\x22\x9aL\x8b\xfa1\x0a\xef\x06@\ Gm\xdbS\xcf\x8d\x05\xe2\x0dA9\xf3\xb0\xd9c\x12\ \xed5\xf2\x11\x0a\xc66\xa5\x9e\xae\x11D\x88\x81\xe0/\ \xbbV\x83r\xd8\xd6\x1c~\x86a\x1a$\xfe\x0cv\xe3\ \x93\xf9\xbf\xde~|\x97\x9b\xc0l\xc3(\x12\xcb\xbf\xa4\ \xab\xbb\x01\xd2\x90\xe60\xad\x5c\x0f\x80\x94\xe4\xc3\x8a\xe9\ \xdd`\xdf\x1e\xe5\xac\xf9\xdc\x0fDnU\xed\x8d\xf1\x15\ \xffz|\xd5`\xe6\xe9\x22\x0b\xc4\x18\xa6\x10f\x22\x0a\ \xeb\xed\x1fo\xebN\x03\x99a\x116\xa6Y\xc50w\ k\x0dK\xaa\xb8c\xcf\xf3,\xd5\xbb\xa5\xee\xa3#\x08\ !\xab\xdaq\xb9\xb4\x87\xc9\x91\x94Y8\xde\xcb\x1b\x11\ \x0b\x10\x07\x0a#_'\x85\xbf2\x92\xfcUch\x10\ \xd4#\x03\xa9;\xd1\x83\x08\xd2\xd9,M\xf2\x0dx-\ \xe2pK<_d\xb1\xa2\x08\x03K\xc4b&\x92\x22\ \xb7@\xde\xd6\xe0\x1e\xe8oC1\xce\xe5\xb8\x8d\xda\xc8\ 'j;X\xf5A/\xc0!\xfc\xec}\xe6\x87\x11\x8c\ \xdb\xd0m(\xdb=\x8crj\xd0AMP)X\x90\ \xc6\xb1\x08@5\xfdx\xe9\xaf\xf3rZ\x988/\xd2\ yE]j,\xb4\xb8\x14s>\xd8\xb6\xa7\xe3q.\ `4j\xb4\xe5\xc5:\x16\x1br\x03\xa6O\xb3\xe1+\ \xca\x1c\xdbg7\xaa)\x05\x05\x8a\x8a\xf5\x10\x0f4\xeb\ qn\x1e\xea\xe1\x86\x0fss\x897\x0e\xc6\xfb\xb8\xdd\ Zmd\x0e\x03\xb9\x0f\xa7\x8a@\xe9\xe3p\x9a\x09P\ \x9bW\x87!\xef\x93\x89gl\xf7\xb7\xc2w\x03\xe2\x9a\ \x84Q\x9b\x92\xbau\x0d\xad63m\xce1\xde\xb6\xae\ \x08\xd0\xe2\x0e-\xb4R\xb4K;)\xd9}J\xa2\x02\ \x0cf\x91\x8b\xecwi\xc4\x1f\x93O\xb9\xe8P\xfd\x91\ \xf9I\x0e\xa6:\xbb\x1b\x14\xf2k\x0cN\xf0\xb5Q\xb2\ \xa2\xbaA\xca\xe9\xaf\xb7\x80\xbe\x04t\x1e5\xbc\x83\xd0\ y\x9e\xe1\xb6\xa0c\xdct1,\xb2\x0d\x1d\xb3a\xbd\ \xb6\xcb\xed\x16t\x0cuh%\xa0lC\xeb>'t\ \x80\x1c\xb7\x1d\xc6]\x1d\x9b\x0c3\x82\xa9\xf3t\xe8z\ \x01\x91\x88\xed1\xa8\x1e#!\x88\xf9\xdc\xdd5\x92\xc3\ \x96]\xd9%0\xb3e\xe4\xdcg\xbfG{\x80\xc3\xa6\ \xdd`\xe7\x1ag0`\xe9~\xd8#\xf6\xdb\xb6^\xd4\ g\xbd\xd4\xed\xb3^\xdc\xb5t\xa2\xec\xffB\xac\xb7\xb3\ \xdb\x1d4\xbe:\x80@\xdarz\x00\x09\x18$>\xe8\ +\x02\x08\xa8\xf9\xe9\x01d\x1c\x08\x8f\x9d?\x80<\xa6\ \x7f\x8e\x87l\xe7\xc5\x15\xe5\xab\xc3\x13\xe9SpV\x87\ \xa7\x17\x0c\x1fR\xec\xfc\xb0\xb3l\x1b\xeeI\xb1\xc3\xe9\ \x8b\x1d\x94\xed\xd2\xfe\xf7\xc4\x8e\x0d\x5c\xc7\xfb\xf2~c\ <.t\x00/\x8cN\x8a\x1c\x22\x0c\xd91\xdc\xfa\x22\ \x87\xe4F\xcea\xb8\x87\xf5\x0f\x0c\x97=\xb3\x87'\x1b\ \xa5\xc4\xba\x81\xdd\x8d&:\xd7\xcf\xad\xe25m\x0d\xa8\ \x5c\x93\x1f\xefB\x97\x810\x90\x09\xce\x8bn\xbd\xd7x\ \xad&\xc0\xc4\x85\xa8\xb9m\x85R\x94P\x13\xb9\xc8\xe1\ \xdbL9\xe8\xa5\x0dzi{`\x99\xf9E\x16\xad^\ #\xd3\xc3\x8cc\xa2#\x13a\xe2\xd8\x88\x80[\x83\xef\ \x88\x13\x0c\x0f\xd0\x0c\xf6d;D\x07?eS\xa0\xd5\ \xc1\xbbAu\xc3\xbd\xeb\x13E#\x05\xdcF\x82\x22\x17\ \x1f\xa3(\x04y[\xba\xbd\x1a\xf7\xfc\x16\xaf\xf8\x1eo\ \x82H}vL\xf0\xe6H\x8b\x07^\xf4$\x83\xef\xe3\ \x86\xfa\xb8\xf5Y\xb0\ \xf4N\x02\x8b\x09\xcfG\xce\x11\xde\xf1 S\xe7\x02\xb3\ \x1b\x977\xdc\xc77In\x9e1{\x7f\xd1\xe4\xe6Q\ \xdc\xbe'\x85_\x11\x94\x017\xfe\x9c\xb8\xf5&o/\ \x95t\x9e\x157\x86\x9eW\xdf.)\x97y\x0ar\xed\ \xe8\xdeI\x12\x00\xb8gH\x02\x9f1\xdb\xe9\xcf\xb0\xfa\ \xb3\xb1\xfe\xcc\xad?\xcbk\xe6\x83\x1b\xb8o-y\x8e\ \xad\xbe\xd5\xb7\x16\xf2r!\x94\x17\x14W5^#\xbf\ \xde\xfb\xdc\x9f\x08\x15\xf2\x00\xe5\xb1\xfa\x94\x1d\xa34\x0b\ EVu9\xea\xd3\xea*\xa3\xe2\xe6\xf6\xe7\xaa-T\ 9k\xdd\x8f\xfa\xfb\xf3\xa9\x1f\xa6K\xd8\xedn\xe7\x97\ 4\x05\xfcm\xd3\xb1\x1dn3\xba\xdb\xad\xd0d&\xe3\ \xd4v;c%\xa8\x84\x83\xa8<\x8c\x9cN\xe7\x22\xcb\ @\xc8F\xec\xaf\x05lj\xe2p\xaf:\x92\xcc\xa7\xe9\ r\x92Il\x8al!v\x07\x86i\xb0\x90\xd7\x07\xc6\ b\xa3E\xf3\xd5.\x85\x1ck\x8cF\xf2\x0a\xa8o\x82\ e\x94\xc0^\x8d\xf2\xf2\x0a3\xd6A\xa4\xa4\xa8.\xb4\ xw\xdf%\xc5j\x9b\x0d\xeev\xad\xf7w\xcd\xfcU\ 4\x8b\xbe\x88p\x9b\xdd\xd5$y\xe2\xcf\x8dI\x9c\x8e\ \xfc\xb8\x7f\xf5JG\xa6\x22\xf8,\xb2Q\xeag\xa1d\ S\x1aw\x0b\x80J/\x8b\xb5\xbc\xecZ\xade[\xcb\ Ne\x03Eh{\x0e,fsy\xef\xa5n\x0d\xb7\ \xb1\xf7!\xca\xa3\x91L\xc8\x1a\x8b\x01\xda\xc4\x87\xc6p\ \xa7U.\xbe\xa4\x97\xb3KG\x91\xa7I\xbc\xde%\xdb\ p\x91\xe0\x99\xf6n\xebz\xd3Z\x99P\xd7rT\xfb\ L\x14~\xe8\x17\xfe\xd6\x8c\xaa\x16\xb0\x7fV\x01\x92\x85\ \xe3\xe1oo\xdf\xd5\x89f\x10\x0c\xff\x96f\x9f\xb7\xc9\ \xa1$\xf0G\xe9\x02\x84\x5c\xe7\xc0\xf26*\x18J\xbf\ \xe3\x17\xf7\xd1\x0c\xe0\x96\xb7g?\xacf1\x18t\xdd\ \xd1\x22\x96\x18o'\xddL\x9b\x89\xcd\x85`\xef\x0dX\ \x18\xcc\x229\xc8\xfa\xbd\x88\xe2\xf8g\xc9\xa4\x91\x10\x97\ \x93FE,\xee\x7f\xf5\x8b\xa9\xf1{\x91\x06\x9f\x15\xf7\ Mc\x8b\x0e6-\xee\x09\xc2\xb6\x81\x5c\x031E\xa6\ \xdaZT\x99\x80\xb8\x13\xa5\xc9}\xe3\xdao\x9c\x09\x11\ \xf8\xe1R\x8c\xd4\xba\x96\xd1\xe7\xc8\x02\x0d\x15+s>\ \x9d\xff\xa8X\xdd\xbd\xc9\x8a%@\xa6f\xad\xe7h\xcd\ <_\x8c\xe2(\x9f\x8a\xec\xbe\x01\x81\x84\xfa\xcd\xa4\xce\ \xac\xbb\xfbz\x07\xbc\x7fz\xf3\xb6oSR\xec\xdd\xe1\ \x8a\xb2\x87\x97\x9c2\x0a\x814\x1aG\xd0^\xcek\xe5\ Y`\xfd\x92\x86\x96\xc4\xcfz\xbf\x88\xac\xdfJy\xe4\ V\x14\xa4Inm\x81\x95\x17\xc7j\xf6\xc64m\xec\ \xa4\x1b\xc8\xbff{\xda\x87\xf7\xbf~ ?\x9c\xb8\xcb\ ]~\x92[\x1c\x05\x22\xc9\x85\x12_^\xcao\x92,\ \x94\xe0\x82t\x0e%\xd3\xb8\xb0b\x91CH5\xa7\x85\ \xd4\xd5\xc6\xa0\xd6n`\xf7\x10LG\x8b\x22=Mb\ \xff\xf0'\xd9\x1a\xcc\xf9\x9f\xda\x9bX\xac|\xd0\x93L\ {\xafZN\xdc^\xcf\x02\x14\xad4\xcd\xaaYUb\x07\xa1\xe0'\xeb\ \xd0~\xed|\x0e\xb8\xe5\xf5\xcce\xa2M]\xdd\x96p\ 3[\xfb\xa0\xd96\xb89\x097=\x08\xb7wQp\ Ww\x9b\x97\x88\xae\xa7\x83\xc7!\x1e\xf8\x1bF\xa4&\ \x83\xd7$\x8e\xf6\xf7\xfd\xd82\xb4\xeb\x9a\xcf\x8a\xad\xdc\ Y\x8d[}\x87|\x107\x05\xd5Sq\xc3\xf2p\x97\ #j\xeb\xcc5\x1d\xe4\x10\x17\x9at\xca\xa5K`:\ \xd7\xd41\x00\x06D\xa1\xe0\x97g\x04\x8fx\x87\xc6{\ 5\x97\x06j}\x17\xf8\xf2\xa0RH\x17\x90\x8d\x18\xd6\ mH\x17\x1cNlh\xd2\x99\xa3\xd9T\xa7\xc4\x94\xfe\ V\xe2J\xb0\x0e\x98C~\xc3\xdcG\xbc\x80\xd1\x13\x8a\ \xbf1\xac\xdf\x22\xa7\xa0\xbc\x1fO0f\x86\xa4a\x13\ ZzNp\xa6\xe0G\xbb\xe6}\x81\xee\xear\xe0e\ \xdd\xde\x06\xbc\x90\xb39\x10\x996\xeesOdz<\ \xd7a\xe4\xec\xd1\xf7\x82\x00g{\x00\xb7u\xeaH\xc0\ ]\x098$\xfd\x0c\x00\xe7\x8f\xe0\xfd\x0d\x9c\xd9\x05!\ \xb7\xc7\x13l\xc2\x95N\xe96V\x11\x06\xc5\x86\x0e\xdf\ Ag\xd1)\x18\xbeL\x94mcxkMZ\x8f\x22\ \x8e\xa3y.\xae\xfaVX\xdfWC\xd5\xcb\x09so\ \xb6f\xd6}C\xa0ce\xe5\xaez\x82R\x05+\xa6\ \xcen:\xd9\xadF\x89\xe9B@r\x19/\xabQ\x8f\ 3\xe4\x82\xb75(D,J\xb9,L\xe1+\xb7\x91\ \xe3\xd0\xeb\x9d\xe9\xd4\xb151=\x9bsw\xb7\xa9\xbco@\xd8\x0d\x85/\x05\ \xe1Qe}\xabv=\xba\xe2=P'\x1f*\xaf\x9f\ \xb9\x92\x97\xa8\x96\x9b\x82\x5cv\x17\xa8S\x0f,\xe4\xdb\ \x8a\x07\x0f,\xf6T\xf6\xcd\xaf\x85X\x15\xdbU\xacf\ \xf1P\xfdo\x02 \xfcL\xe4\x22{hjT\xa5\xca\ iR\x18\xea;p\xc9f~|\xa3Z\x96\xea\xfd\xb3\ VS\x1e}\x11CP>\x0e5\xfa|u#\x95\xba\ |Mm\x88\xfe\xbc!\x19\xfb\xb3(^\x0fs\x80\xd9\ \x00~\xd1\xf8&\x16\x05h\xb9Q\xbe`5D0p\ \x99fa\xaba\x13S\xcb\x7f\x95\xb0\x1f\x80\xb6q!\ \x90\x15\xb5\x89\x03\xe3\x1bV\x06z<\x1c-\x8a\xe2\xb0\ \xe5\xf5\xbd\xc7\xaf\xde\x08s9\x08\xd2n\x9a\xc8Z\xbd\ \x8a\x0e\x09K\xcbi\xab\xf7\x03\x01k\xda\xbe|l\xe8\ \x17XT,^\x83\xe6P\x1b\x13\x0a\xc6\x89M\xec\xb9\ \x8cp|=\xb8\xbf-`\xfbIS]j\x9b\xcaR\ )\x14\xb9\xec\xcei\x8b\x1a\x04\x1c\xdbWr{\xd6\xbd\ o\xe5;r\x97\x22U\xaf\xear\xb2#Rl\x12{\ \x1f\xe2\x83\xfb\xb7\x1f\xdf\xddZjA\xf7\xf0\x1b\x90\xa8\ ^\x9e\x99l^\x9b\x81_\xb7\xf2\xd5\xb5\xfb\xab\xff\x00\ \xea)\xbd\xdd\ \x00\x00\x09\x0c\ \x00\ \x00!cx\x9c\xedYY\x8f\xdb8\x12~\xef_\xe1\ u^\x12LK\x22)\xea\xf41\xc8L\x90`\x80,\ v\x90\x03\xfb\xb0X,h\x89\xb6\xb9-K\x02%\xb7\ \xed\xfc\xfa)R\xb7,w\x92M\x06\x83\x05\xe2\xa4\xd1\ VU\x91E~u\xf0\xa3z\xf9\xf3\xf9\x90\xcc\x1e\xb9\ ,D\x96\xae\xe6\xd8D\xf3\x19O\xa3,\x16\xe9n5\ \xff\xf8\xe1\xb5\xe1\xcfgE\xc9\xd2\x98%Y\xcaW\xf3\ 4\x9b\xff\xbc\xbe[\xfe\xcd0f\xbfJ\xceJ\x1e\xcf\ N\xa2\xdc\xcf~K\x1f\x8a\x88\xe5|\xf6|_\x96y\ hY\xa7\xd3\xc9\x14\xb5\xd0\xcc\xe4\xcez13\x8c\xf5\ \xdd\xdd\xb2x\xdc\xdd\xcdf0*.\xf7\xab\xb9K\xe7\ \xeai\xcf\xc5n_\xb6\x8f\x22^\xcd\xc1\xcev\x9c@\ ?\xf7\x16\x88+\x83z\xe6\xb0\xaf1\xc9\xec9b\x08\ E[\xc7\xb6\x83\xfb\x19A\x84\x18\x08\xfe\xd3\x17zP\ \x01\xdb\xca\xe1'\x8c\xb3(e\x07\xd8\x0d#\xf9\x7f\xfe\ \x99\xc9\x87\x0d\xecyo\x82\xc7\xca\x9b\xe0\xa7_\xb2\xf3\ j\x8efh\xe6\xd2Y\xbd(@*-\xc2\xc6\xf3j\ ~k\xa3j\xea\x22g\x11/\xacF\xde\x1b\xdf,\xa2\ \x1d\xdf\x08\xcc\x22;\xca\x88oa\x0an\xa6\xbc\xb4^\ }x\xd5*\x0dd\xc6e\xdc\x9b\xe6\x9c\xc0\xdc\x835\ \x9cl\xed\x1d\x07A`img=eG\x10BV\ \xb3\xe3zi\x8f\xbb/\xb4\x94\xf1\xf6\xa6oD,\x80\ \x1d,\x8c\xe2\x92\x96\xecl\xa4\xc5\xb3\xde\xd0(jG\ F*\x81\xc4#\x8f\xb2\xc3!K\x8b\x0a\xbc\x81q\xdc\ \x19\xe7G\x99h\x8b8\xb2x\xc2\x0f<-\x0b\x0b\x82\ n\xcd\xd7`\xbf\x8c\xf9\xb6P\xe3\xaa\xdcQO\xb6\xe3\ b\xad\x03-\xc0\xc1\x99|#Y,`\x5ceWY\ \x0e5\xd4\xf6m\xc3\x9e\xb7\x06M\x96EY\x92\xf0\x08\ \xf2\x93%'v)\xeaia\xe2\xa2\xcc\xf2\xc6\xbaN\ [\x90x6\xf6\xfdy'\xcf\xb6\xdb\x82\xc3h\xd4\x93\ \x15\xe5%\xe1\x95\xb9\x01\xd3g2|fS\xd7at\ \xa1E\x19$\x90(/!\x9e\xcf\xac\xcf{\x0b\xd0\x84\ 7\xfc\xb47\x8f\x04\xdbh{\xcb\xdb\xd2\x1a\x22\xf34\ \x90\xb7pj\x0ct>\x86{\xc9!m\x9e=\x0d\xf9\ TL\x02\xa3\xdb\xdf\x19\xaf\xe6\xc43\x09\xb5\x1d\x9b\xb4\ \xd2\x0bH\x1dj:\xbe\x8fq'=\x13\xb0\xc5W\xb6\ \xb5\xd1\xd8vW\xbb\xfb\x98\x8a\x12\x0a\xe6Xp\xf9\ ^\x15\xf1?\xd2\x8f\x05\xbf\xb2\xfa YZ@\xa9\x1e\ V\xf3R}M\xa0\x13>7jW\xf6\xbdA\xea\xe9\ _t\x80\xfe\x19\xd0\x05\xb6\x11<\x09]\x10\x18\xde\x00\ :\xea\x9b\x1e\x86E\x0e\xa1\xa3\x0e\xac\xd7\xf1|g\x00\ \x1dEW\xb6\x0aPZ\xd9z\xdf\x13:@\xcew\x5c\ \xea{\xf7\xd8\xa4\x98\x12l\xbb\xdf\x0e\xdd$ \x0a\xb1\ \x1b\x055Q$\x04Q\xe6{\xe3\x22y\xba\xb2\x9b\xba\ \x04g\x8e:>o\xd5\xef\x17w\x80\xa7K\xbb\xe7\xce\ 3\x9e.\xe0\xa5\xa5\x1a\xa3\xfe\xd6\x9e\x85\xea\xb4\x8a\xd5\ \x89\xd7u\xcf\x0dk\xc3\x96\xb3\x1d\xd7k\x83\xe4\xdb\xea\ O\xad\xd8d2\xe6\xb2Q\xb9\xfa3P\xd5\xcb\xaf8\ \xc5\xdd0`j\xd6V\x8f\xa6\xf5\xc5\x9e\xc5\xd9\x09\xd2\ m\xac\xfc\x94e\x90:\x1e$\xa1Kip\xa5\x8e\xce\ \xba\xba\xa1\xab\xe0k\x1d\xb8\xb3\xa9I\xdd\xc0v\xe8\x95\ \xf2(%\xe0d$\xec\xc2aO\xfaW\x83s\xb1\xcf\ N;\xa9\xb0)\xe5\x91\x8fG\x02\x9d8\xaa\xf3\xc88\ V\x05\x90\x9f\xc7\x16j\xac\xb1\xd9(N15\xc1I\ \xa4\xb0W\xa3\xa6D\x98\xd2+Dj\x8b\x86&\xf9\xd4\ \xbeaq\xeerq\xac\xba\xdcV\x1d\xd8Y\x1c\xc4'\ \x1ew\xa9\xd5\x9a\x14)\xcb\x8d]\x92mX\xb2\x9ao\ YR\x5c-_'\xc9\x9eG\x0f\x5cn2&c\xe5\ \xa7N\xc2\x01\x02M\xce\x96\x17E\x9f\xce\x17%\x1b\x14\ \xab\x12\xd8\x08u\x9d\x85\x1fr\xc5\xa44\x19\xa5\xad\xf4\ Q\x14b\xa3J\xa7\x87%\xd8\xa6\x0c\x84\xf1H\xaaV\ _\xdb\xab\xd9UM\x14Y\x9a\x5c\xc6f\x95\x17\x85\x9e\ \xe9\x8c\xa5\x97JZU\xd6\xd2\xba.\x1d-?\xf0\x92\ \xc5\xacd]\x1d5\x12`\x22\xb4\x01\x04xQ\xf8\xee\ \xd5\xeb\xb6%DQ\xa8\x08hW\xce\xca\x80m\xb2#\ D\xb9\xedS\x8a\xdfD\xa1\xea\x99\xac\x5c\x8b\x03\xc0\xad\ \xf8\xd8O\xc0\x91\xa0\xa2[\xc5\xc0Xa\xdcMZM\ +yE1'9U\x1c\x1d\x84\x1ad\xbd/E\x92\ \xfc\xa6\x9c\xf4ZW=\xa9(\x13\xbe\xfe\x9d\x95{\xe3\ }\x99E\x0f\xda{%\x1c\xd8\xc1\xa6\xf9\x9a \xec\x18\ \xc8\x03\xf6\xad\xcd\xb4l`%9\xb4~\xe0\xee\xeb\x1e\ \x91\xdcJ\xce#\x16\x9f\xf8F\xaf\xeb$\x1e\x04\x90\xe8\ \x98\x9f\xcd|\x9f\xff\xac]\xad^\xca\xf2\x04\x90\xe9Y\ \xdb9\x063\xe7\xc7M\x22\x8a=\x97\xeb\x1e\x04\x0a\xea\ \x97\xbb\x96\xca\x5c\xef\xeb5\xf8\xfe\xf5\xe5\xab\xa9M\xa9\ \xb0_\x0f\xd7\x96\x13\xbe\xd4\x94\x22\x06S\xb1\x15 \xaf\ \xe7\xb5\x0a\x19Y\x7f\xcfbK\xe1g\xbd9\x0a\xeb]\ \x1d\x0f\xb8'D\xc0\x7f\xad\x0eXu\x15\xd1\xb3\xf7\xa6\ \x19b\xa7\xfa@\xf1\xbflo\xf6\xf6\xcd\xefo\xc9O\ _\xb9\xcb\xb1?\xe5-\x11\x11O\x0b\xae\xc3W\xd4\xf1\ \xdb\xa5G\x1d\xb8(\xcb\xe1p\xdb\x96V\xc2\x0b\xa0\x03\ \xe6\xbeT\xb9\xda\x1b4\xd8\x0d\xec\xbe\x94bs,\xb3\ \xaf\x8b\xd8\xbf\xd8N^\xa0\x9c\xff={\x99\xf03\x5c\ R\xb9\x9c\xbd\xd1\x92\xaf\xdc\xde\xc4\x02\xb4\xad*\xcd\xe6\ 8\xedU\xee\xd2jJ[?\xed\xba\x92\x1f\x9c\x1am\ \xf3K\xd8\x86C\xf3|\xab\x94\xb3+\xedNf\xc7\xfc\ \x90\xc5\xbc\x1e\xde\xb4\x8a\xdd\xa05b\xe4t,\xb9\xbc\ A?]\x87\x04\xc4\xb7\xef\x09\x90(\xdf\xf5} Q\ \xed~v\x1d\x10\xd3\xc3m\xd3A>&\xaew\x0f\xbc\ \x0fa\x978v}q\x1e,\xc3F\xfd\xbe$\x81x\ \xf5\xa3S\x93\x9a\x9a\xcf \xfdYD\x89\xc8\x0dyL\ x\x98f\xe9'\xe0\x06\x8bX\x149l\x16n\xd3\xaa\ #/2\xb8\xc6o\x93\xec\x14\xd6\xadz\xa1\x7f\x8bD\ \xf1\x9fF\xd4\xf2\xa1\x85(\xb2\xaa\xeaC\x06\x11[\x1c\ \xc4\xd9\x00\x8346\x14\x88\xe0\x02\xbaa\xb2\xd0+0\ DZr\x997\xe6\xc5\xbb7\xbfL)\x8c\xadH\xe0\ \xb1\x08+\xca\xa4\xac\xc0\x05\x1c\xd9\xc3mT\xb2n\x1d\ 0*\x09\x9fE\x91V\xaa\x87\x91n\xb8\xe5\xa2\x94\xd9\ \x03\xef&\xd3\x8f\xd5\x99\x1f\x92\xe6Q-\x00\x92\x22\x84\ T,\xfb\xb2\xfff\x22\x0d\xa1As\xd9H\xf5C\x02\ \xa7v\x19\xd2F\x163`MR\x02\xae\xe0\x94\xf7\xa5\ \x15q\x0c[\xb7\xddB+8\x80\xf9@\xf1\xc0YW\ A\xaa\xcf\x98\x9e0\xcbK\xcd\x0f\xde\xe7\x9c\xc7\x0bp\ \x92\xf3\xf1\x90\x92\x9f\xcb\xb1\xac:\x92\x8d\x0d\x8b\x1eT\ \x92\xa7q\xc8\x22\xa0JG\x95o\xf3~\xd6\xa8\xd4R\ \x99d\xdb\xb6?P4\x94\xc85\x11\x0e|J\x06\xca\ \x86\x0dQRi\xe9@\xabx``\x06\x01\xf0\x89\xe1\ \x9c\x8a\x04V\xf2\xc0\x1d\x1eq7\x92y\x14q\x8d\xed\ (\xdcMp\xf9\x16\x0a0\xf8Lp5\x14W\xd1\x1d\ H\xbf<\xbaS\xd7\x84\x0eP\x8c\x08\x9a\x04\x14\x9b>\ \x5c\xe1|\x7f\x12P\xdb\x9b\xd2\x9e+\xa4]\xf8G\xc7\ \x80\xba\x95\xdc\x0b\x86\xabhZ\x5c\xdbp\x0c\xe8\xfe\xb0\ 3ES\xe1\xcei\x13\x97\x22\xff\x0b\x87\x80\x17\xb8V\ \x13\xa2.\x87^\xffVe\xed\xa6z\x5c\xdd\xad e\ ~t\xab^\xb7\xaao\x98\xdf\xd6\xadL%\xc3(\xf0\ ~\xb4-]e\x14\xd3\xc9*s\xa0\xcfx\x14{t\ \xb2\xca\xb0cz\x18Pt\xc7U\xe6\x9ap\x99&\x18\ \xbb\xe3*S\xaf^\x1c\x1f\xe1\xe1|\xbd\xd3\x1c\xae\x01\ R\x9c\x9f#hoA\xe0\xfbApo\xc0\xf5\x1a\xc1\ \x85\x97\x10\xfb\x1e\xddc\xf8A/\xbew\xd3k\xdf$\ \xf6r\x04\x9b\x01%6\xf6\x91\xff\x97v?\x9bL\xc6\ \x05@q<\xd7\x9b\xee~\x98h\xadO\xc6q\xf1M\ \x97P\x14`|\x15\x17\x17\xfa\x92\x0b\xdc\xe9\xf3m\xe9\ \x16s\xc3n`{\x8e{OM\x02u\xe5\x90\x09\xe2\ E\xdc\x1f\xad\xac\xdf\xcax\x1c\xd3o%^\xd8\xf4\x88\ K\x82\xc0s\x7f\xb4\xb2\x86\x81\xb9\x93\x84\x01\x8e^\xcf\ \xf6\xa6\xe9\x02\xd5:\x84\xc7\x05\x83m\x13\x13\xc7\xf7\xaf\ \xe8\x02\xf09L\xa8\x8d\x9d\xef\xdd\x8a\xb6\x11\x0f\xe8U\ +r<\x1f9\x84\xfc\xb5\xad\x88L\xb6\x22\xdf\x04>\ \x13P\xcf\x99F\x16\xd5\xea+d\x1d\xe8Q\xd8\xbb:\ !\xb0\x0fr \xc3\x93\x9d\xa8\xfb\xa2R\xa5\x19y>\ $\xa1\xfes\xe5j\x9eK\x0e\x97\xf5\xc7\xdek\xb1*\ \x00[\xb8\x1e\x1b\xfa{S\xe4Z\xf2\xc8\xa4`i9\ \x90\x9d\xf4\xca\x07\x22\xc0\x87\x97\xd1~(\x83T\x0e)\ \x86\xc5\x12??/\x14\xf6\xf5\xcbM\x08\x17q*\xa3\ -;\x88\xe4\x12\xbe\x04/\xc9\xc2h\x98\xa1QM\x90\ \xf3HlET\xf5\x97\xca\xa4n\x0b\x9b\xeb\xfb\x18\x5c\ h\x83\x00\xdb\xfegzAP}\xdc\xef\x11\xfc\xb3\xa6\ \xd1\xb6\xef\xa2\xdeA\xa2\x982\x14\x8b\x8f\x82\xdeKN\ \xfdZ\x19\x02Bm\xa7\x13\xf6\xce\x09\xd8u\xa2\xfeB\ \x82(\x80\x85\xe0\x187\x03\xc7U\xa7\x8d\x0d\xb7\xfbe\ \x09\xb1K\xbb,h_N\xcaLEN\x01;:I\ \xf4\x00\xf0\xd5\xcf\xb8\xc9\xc5\xdeX\xee\x9f\x98\x15\xff\x97\ \x01_\x93\xa5\xa51]\xc3o\x08c\xf5\x82\x08*m\ \xa9^\xd2\xae\xef\xfe\x00W\xfe\xfao\ \x00\x00\x0a\xba\ \x00\ \x00A\xc2x\x9c\xedZ\xeb\x8f\xda\xca\x15\xff\xbe\x7f\x85\ K\xbedu\xfd\x98\x97\xed1\xd9\xdd(\xbdQ\xa2+\ \xe5\xaa\xd1M\xd2J\xad\xaa\xca\xd8\x03\xb8kld\x9b\ \x05\xf2\xd7\xf7\x8c\xb1\x8d_\xb0\xb0\xcb\x06\xda\x86$\x0a\ >sf\x8e\xcfo\xces\x86\x9b\xb7\xabY\xa8<\x88\ $\x0d\xe2\xe8v\x80u4PD\xe4\xc5~\x10Mn\ \x07\xdf\xbe~\xd0\xf8@I37\xf2\xdd0\x8e\xc4\xed\ \x8a\x07o\xef\xaen\xfe\xa4i\xca\xaf\x89p3\xe1\ +\xcb \x9b*\xbfE\xf7\xa9\xe7\xce\x85\xf2z\x9ae\ \xf3\xa1a,\x97K=(\x88z\x9cL\x8ckE\xd3\ \xee\xae\xaen\xd2\x87\xc9\x95\xa2\xc0,?\x9b\xde\x0e,\ 6\x90OS\x11L\xa6Y\xf5\x18\xf8\xb7\x03\xe0\xa3\xa6\ \xe9\xe4\xcf\xb5\x17\xc4\x1b\x86b\xe5a}D'\xcak\ \xe4\x22\xe4\x8dMJ\x1dU!\x88\x10\x0d\xc1_v\x9d\ OJA\xad9\xfc\x1b\xfa\xb1\x17\xb93\xd0\xc6%\xf3\ \x7f\xbd_\xcc\xc3\xc0\x03M>\xbbI\xa6\x83\xd4\x8d\xc4\ @,\xff\x1c\xafn\x07HA\x8a\xc5\x94\xe2\xc5\x00\xad\ (\x1d\x96\xd2o\x07\xbb\x94\x95\xcb\xa7s\xd7\x13\xa9Q\ \xd2k\xf3\xcb\x17\xa9\xe6\x97\x04=\x8d\x17\x89'\xc6\xb0\ \x84\xd0#\x91\x19\xef\xbf\xbe\xaf\x065\xa4\xfb\x99_[\ f\x15\xc2\xda\x8dwX\xd2\x5c:v\x1c\xc7\xc8G\xb7\ \xdc}|\x04!d\x94\x1a\x17\xaf\xf609\x903\xf1\ \xc7;e#b\x00\xf4\xc0\xa1\xa5\xeb(sWZ\x94\ \xbe\xaaM\xf5\xbcj\xa6'\x8d(x\x10^<\x9b\xc5\ Q\xba\x01\xaf\xc1\xeco\x99\xe7\x8b$\xcc9|\xcf\x10\ \xa1\x98\x89(K\x0d\xd8xcp\x07\xfc7\xbe\x18\xa7\ r\xde\xc6~\xe4\x135-\x9c\x8f\xc1(\xc0!\xdc\xe4\ c\xe2\xfa\x01\xcc\xdb\xf0m8\x9b#\x8cr\xaa\xd1A\ \xc5PZ\x9a\x17\x87\xa1\xf0\xc0F\xddp\xe9\xae\xd3b\ YX8\xcd\xe2y\xc9]\x98.Pl\x8a9\x1fl\ \xe9\xf1x\x9c\x0a\x98\x8dj\xb44[\x87b\xc3\xae\xc1\ \xf2q2|E\x99e\xba\xecMN\x8a\xc1\x80\x82l\ =\xc4\x03\xc5x\x5c\x9a\x83z\xa4\xe1\xfd\xd2l\xe2\x8c\ \xbd\xf1.i7F\x13\x99\xfd@\xee\xc2\xa9d\xc8\xed\ q8M\x04\x98\xcd\xab\xfd\x90\xf7\xed\x89\xa3m\xf5[\ \xe1\xdb\x01\xb1u\xc2\xa8IIE]\x03\xd5d\xba\xc9\ 9\xc6[\xea\x8a\x00/\xee\xf0\x02\x95\xa26\xef\xa4\x10\ \xf7-\x0a2p\x98E*\x92/\xd2\x89\xff\x12}K\ E\x87\xebk\xe2F)\xb8\xea\xecv\x90\xc9\xaf!\xc4\ \x90\xd7Z!\x8a\xaa\x1a)\x96\xbf\xde\x02\xfa\x12\xd09\ Ts\xf6B\xe78\x9a\xdd\x80\x8eq\xdd\xc6\xf0\x92M\ \xe8\x98\x09\xefk\xda\xdcl@\xc7P\x87W\x02\xca6\ \xbc\xf6)\xa1\x03\xe4\xb8i1n\xabXg\x98\x11L\ \xad\xe7C\xd7\x0b\x88Dl\x87C\xf58\x09A\xcc\xe5\ v\xdbI\xf6{v\xe9\x97 \xcc\x94)t\x97\xff\x1e\ \x1c\x01\xf6\xbbvM\x9c\xad\x9d\xc1\x81e\xf8a\x8f\xf8\ o\xd3{Q\x9f\xf7R\xbb\xcf{q\xd7\xd3I\xee\xff\ \x17\xe2\xbd\x1dm[h<9\x81@\xfdr|\x02\xf1\ \x18T@\xe8\x09\x09\x04\xcc\xfc\xf8\x042\xf6\x84\xc3\xce\ \x9f@\x1e\xb3?\xcbA\xa6\xf5\xe2\x86\xf2\xe4\xf4D\xfa\ \x0c\x9cU\xe9\xe9\x05\xd3\x87\xdcv\xbe?X6\x1d\xf7\ \xa8\xdca\xf5\xe5\x0e\xca\xda\xbc\xff=\xb9c\x03\xd7\xe1\ \xb1\xbc\xdf\x19\x0fK\x1d \x0b\xa3\xa32\x87\xf0}v\ \x88\xb4\xbe\xcc!\xa5\x91s8\xee~\xfb\x03\xc7e'\ \x8e\xf0dc\x94X\xd5\xb0\xbd\xb1D\xeb\xfa\xd4&^\ \xf1V\x80\xcawr\xc36t\x09l\x06\xd2!x\xd1\ m\xf4\x1a\xaf\xf3\x050\xb1!kn\xa9\xd0\x8a\x12\xaa\ #\x1bY|[){\xbd\xbc^/o\x0f,37\ K\x82\xd5k\xa4;\x98qLT\xa4#L,\x13\x11\ \x08k\xf0\x1dq\x82\xe1\x01\xc8\xe0O\xa6ET\x88S\ &\x05^\x15\xa2\x1bt7\xdc\xb9>rk\xe4\x067\ \x91\xa0\xc8\xc6\x87\x18\x0aA\xce\x96o\xa7\xc5\x9d\xde\xe3\ s\xb9\x87\xbb \xca?-\x17|s\xa0\xc7\x83,z\ \x94\xc3\xf7IC}\xd2\xfa<\x1e\xa4\x99Ot\xf8\x0e\ J\x14\x99\xf6\x11(qW\x10z@\x89+m0\xff\ \xf4\xbc>\x88t\x8e\x02\x8b\x09\xc7E\xd6\x01\xd1q\xaf\ P\xeb\x02\xab\x1b\x9b\xd7\xc2\xc7\x0f)nNX\xbd\xbf\ hq\xf3(n?\x8b\xc2'$e\xc0\x8d\x9f\x12\xb7\ \xde\xe2\xed\xa5\x8a\xce\xb3\xe2\xc6\xd0i\xed\xed\x92j\x99\ \xe7 \xd7\xcc\xee\x9d\x22\x01\x80;A\x11x\xc2j\xa7\ \xbf\xc2\xea\xaf\xc6\xfa+\xb7\xfe*\xaf^\x0fn\xe0\xbe\ 1\xe49v\xfe\xad\xba\xbe\x90\x97\x0b\xbe\xbc\xa0\xb8\xaa\ \xf0\x1a\xb9\x95\xeesw\x22\xf2\x94\x07(\x8f\xf3O1\ 0\x8a\x13_$\xe5\x90\x95\x7f\x1aCEV\xdc\x5c\x03\ ]57U\xaeZ\x8d\xa3\xfe\xf1t\xea\xfa\xf1\x12\xb4\ m\x0f~\x8fc\xc0\x9f\xb5\xc9\x12E\xca\x01\xe5\xce\x80\ \x04\xc7\xd2\xbb\xf4E\x92\xc0\x9ej\xa1\xbb\x16\xa0\xc3\xc4\ \xe2Ny\x02\x99N\xe3\xe5$\x91Pd\xc9B\xb4'\ \xfa\xb1\xb7\x90\xb7\x05\xdabc4\xf3U\x9bC\xce\xd5\ F#y\xe3\xd3\xb7\xc02\x88@5\xad\xb8\xb4\x02\xfb\ \xe0;8\xca\x8b,\x1bwP(8V\xdb\xe2\xaf=\ \x04j\x13k\xc7\xd8\xcc]\x05\xb3\xe0\xbb\xf0{\xa6\xa7\ \x91;\xd7&a\x97\xbe!6\xf8@iqG\x1065d\ k\x88\xe5l9\xad\xc1\x95\x08\xc83A\x1c\xdd\xd5\xae\ \xf9\xc6\x89\x10\x9e\xeb/\xc5(\x7f\xafep\x1f\x18`\ \xa1b\xa5\xcf\xa7\xf3\xb7\xb9\xa8\xdbwI\xb6\x04\xc8\xf2\ U\xab5\x1a+\xcf\x17\xa30H\xa7\x22\xb9\xabA \ \xa1~7\xa9*\xe9\xae^\x1f@\xf6\xaf\xef\xde\xf7)\ %\xb7\xbd;=\xe7\xec\x91%\x97\x0c|`\x0d\xc6\x01\ \xd0\x8bu\x8d4\xf1\x8c\xdfc\xdf\x90\xf8\x19\x1f\x17\x81\ \xf1G\xb1\x1f\xa9\x11xq\x94\x1a[`\xe5Eq\xbe\ zm\x99&v2\x0e\xa4OQO\xf9\xf4\xf1\xf3'\ \xf2\xcb\x91Z\xb6\xe5Iia\xe0\x89(\x15\xf9\xf6\xa5\ \xc5\xfeM\xa2E\xbeq^<\x87\x16i\x9c\x19\xa1H\ !\x85\xea\xd3L\xdajmRC\x1b\xd0\x1e\x92\xe7h\ \x91\xc5\xc7\xed\xd8?\xdcI\xb2\x06w\xfe\xa7\xf2.\x14\ +\x17\xec$Q>\xe6\x94#\xd5\xeby\x81\x9cW\xba\ f\xd9\x8e\xd5<\xf7\xc6(];\x7f\x9al]>\xcf\ \x1d\xb8\x1d Cw$ v~\x92\x83Jgt\x92\ \xc4\x8b\xf9,\xf6E1\xbd\x0c\x15\x93*^\xf6T\x19\ &\xb4\xb8\xa6\xc3L\x15\xc9?\xba\xc9(\xb2\x89\xa5\x12\ \xaes\xc6\x1d\xe4\xa8\x5c\xc7\xd06[\xf5\x92-\x0f\xb1\ yV\xab\x94\x9cl\xd1\xc9G\xedFc\x9a\xf5\xd5\x85\ T\xe7\x04\xd9\xd0;\x5c\xd7\xe3\xd3\xa4\xbeE\x9b\xa58\ \xb2\x06uj\x9f\x1av\xa9\x00|\xd1\xb0\xa3#\x8aM\ l\xab\x1a\xd3\xb1\x839\xc2\x0d!m1\xa5 \xd3\xa4\ \x83&\xbd+\x0aC]\x86\xa8e\xdb\xb9<\x0c(a\ j3\xa6j&\x94I\x98\xe4e\x1af\xbaCL\x9b\ 8M\xa1 v\x0e\x9e\xd9\x94P\xfb\xbdG\x04['\ #'d~O~\x06m\xceZ\xed\x1aEP\xbb\xc6\ \x89\x06\xb5\xc6\x83\x9b-\x12\xd1<\xab\xd9j%%\xca\ {\x05\xd2\x19\x85\xc1\xdf\x15G\xa5\xa6\xf2W\x85`%\ T\xa0\x864\x95\x07\xf8O\xf9\xdea.N*\xc6\x10\ \xd2\x87\x10\xec_w\xaf\xc6\x9d\xeb7r\xb4v\x9e\x94\ ?&\x8bP\x80f\xd1w(\xdc\xde\xa4Y\x12\xdf\x8b\ \xe1+\x8a\xc8(?\x11\x92\x8f\x9breH\xcaG\xb9\ \xf2\xbf\xe3 \x1a\x829G~I\x85\xa4\x22\x92\x10j\ \x8bl\xc8J\x9a\xefB-\x97$\xeeZ\x0ahf\x99\ \xddh\xefW$\xbf\x829\xbb&;\xb6\x8a9\xb0U\ \xb0_\xa1B\xb8\x8a\xd1\xae\xbd*\xb7\x1d6\x05?\xdb\ \x86v[\xe7)\xe0\x96\x177\x97\x896\xb5US\xc2\ \xcdL\xe5\x93b\x9a\x10\x10%\xdct/\xdc\xceE\xc1\ ]\xdez^\x22\xba\x8e\x0a\x11\x878\x10o\x18\x91\x96\ \x0cQ\x93X\xca\xdfwc\xcbP;4\x9f\x15[\xa9\ Y\x85[u\xbb\xbc\x17\xb7\x1c\xaa\xe7\xe2\x86\xe5\xb1/\ G\xd4T\x99\xad[\xc8\x226\x90T\xcaeH`*\ W\xf2\x03\x02\x0c\x88\xea\x98\xcb\xd3\x83G\xa2C\xed\x17\ 7\x97\x06juK\xf8\xf2\xa0R(\x17\x90\x89\x18V\ M(\x17,NL \xa9\xccRL\xaaR\xa2\xcbx\ +q%X\x05\xcc\xa1\x12b\xf6#Q@\xebI\xc5\ ?\x18\xd6\x1fQSP\xde\x8f'83C\xd2\xb1\x09\ -\x22'\x04S\x88\xa3]\xf7\xbe\xc0pu9\xf0\xb2\ \xeeh\x0d^\xa8\xd9,\xc8L\x9b\xf0\xb9#3=^\ \xeb0r\xf6\xec{A\x80\xb3\x1d\x80\x9b*\xb5$\xe0\ \xb6\x04\x1c\x8a~\x06\x80\xf3G\xf0\xfe\x01\xc1\xec\x82\x90\ \xdb\x11\x096\xe9J\xa5t\x9b\xab\x08\x83fC\x85\xef\ `\xb3\xe8\x18\x0c_&\xcb61\xbc1&\x8dG\x11\ \x86\xc1<\x15W}oX\xdddC\x7f\xcc\x09\xb3\xdf\ l\xdd\xac\xfb\xdb\x81\x8e\x97\x15Z\xf5$\xa5\x12VL\ \xadv9\xd9\xedF\x89nCB\xb2\x19/\xbaQ\x87\ 3h\xa9\xa1\xef\xa5\x90\xb1(\xe5\xb21\x85\xaf\xdcD\ \x96E\xaf[\xcb\xe5\xd7\x03DwL\xce\xedv{\x98\ \x9fmC\x1b\xcb`\xdfZC\xc9\xaa\xe7\xe7 \xc5\x90\ <\x1a\xd6)A\xf2F\xb3q\xe8W\x07\xb6\xd9|?\ \xd6\xcd\xcb\x9bY\xcbd\x96\xad\x12S\x87\xa0\x880o\ *R\x1c\x12P\xb2\xb7\xc3\x7fv'\xdfw`\xc0\x09\ ?\xa8\xc3\xdf\x1f\x87\xe5\xc5\xf8\xd9\xc3\xf0\xb3N\x07J\ \x9b\xb59\xeaF\x82\xff\xb9\xd2\xc7\xe6xGj>\xb8\ E\x7f\xdc\x22\xce\x7f\x08q9h\xef8\xbb:\xbcE\ \x7f\x1cn\xfe\x13\xee\x0a\xee\x1de\xd0\xa1=\xfb\xcf\xa2\ ~\x0f\xb6\xd6\xbeB\xe9Y}\xfdY\x0b\xa7sB\xba\ \xa3\xf6\ q'/Q-\x94\x82Z\xb6\x0d\xd4\xb1\x07\x16\xf2w\ \x8c{\x0f,vt\xf6\xd5\xd7\xe2K\xfe\xdf\x8d\xfc\x85\ \xd1\xdd\xd5\x7f\x00 \x96\x0eD\ \x00\x00\x0b\xa4\ \x00\ \x00;Cx\x9c\xe5[m\x8f\xdb6\x12\xfe\x9e_\xe1\ s\xbe$\xb8\x15\xc5wR\xee\xee\x16i\x83\x16=\x1c\ \xee\x80\xa6\xc5},d\x89\xf6\xaa+K>I\xde\xb5\ \xfb\xebo(\xc9\xb6d\xd3o\xbbN\x1a\xf4\xec\x04\xb1\ \xc8!\x87|\xe6\xe1p\x86bn\xbf]\xce\xd2\xc1\x93\ )\xca$\xcf\xee\x86\x04\xe1\xe1\xc0dQ\x1e'\xd9\xf4\ n\xf8\xeb/?xz8(\xab0\x8b\xc34\xcf\xcc\ \xdd0\xcb\x87\xdf\xde\xbf\xb9\xfd\x9b\xe7\x0d\xbe/LX\ \x99x\xf0\x9cT\x0f\x83\x9f\xb2\xc72\x0a\xe7f\xf0\xee\ \xa1\xaa\xe6#\xdf\x7f~~FI[\x88\xf2b\xea\xbf\ \x1fx\xde\xfd\x9b7\xb7\xe5\xd3\xf4\xcd`\x00\xad\xe2\xea\ \xe1n(\xf9\xd0>=\x98d\xfaPm\x1e\x93\xf8n\ \x08r\x94\x07\xf5c\x09\xe3\x99\xc3\xdf\xd1f\xa0\x181\ \xdaH\xb6*F\x9d9\x10D\x07\xefp\x88q4\x11\ \x8c\x057\x03\x8a)\xf50\xfc\xe1\xef\xfb\xfd\xc5y\x94\ \x853\x98VH\xe7\xbf}X&a\xfa}\x9e\x95U\ \x11&Y\x85`\x00}\x15f9\xcf\x8b\xca\x9b$\xa9\ iZ\xf9\x0f\xf9\xcc\xf8\xbf'\xb3Y\x18\xf9\xd3\xc9\xd2\ \xcf\xf2'\x93\xa6\xfe<6\xa5_\x15\x8b\xec\xd1\x07\x0d\ \xa5\xff\xddO?\xce\x92\x99\xf1*\xb3\xac\xd0\x83\xef\ \xe5\x82\xd3\x0b\xe2\x83:'\xda\x0d\xb2\xce%?\xe8\xe2\ \x17\x05\x08.mg\x13\x12\xb4\xc9/\xef\x7fk<\x0f\ \xfb_\xa8\xd6=gH9bX\xaa@\xf4\x9d!E\ X\xa9@\xf7|\xe1\xbe\xe8\xc4%j]\xa1@\x9a\x12\ A\xf8\x19\xac&5\x9d1\xa2\x9aC\xd2\x02?\x19d\ \xbe@i\xfd\xfe\xcc\x85s\xb1\xb7%B\xcaK87\ \xa9?;\x9ck\xb2s\xecv\xbc\xebJ\x07+\xac\xf2\ \xcbH8\xd1\xf6{\x81zrB\xfd\x0bYy\x9e\xfb\ \xb2\x94\x90\x1c\x09\xe0\x09\xa6}\xfa`\x04f\xc5Ao\ \xd3\x14\x88\x0a\xd5\xa3\xde~\xe3\xc8\xd9\xd8\xce(L\xa6\ E\xccN%\xbaD\x08\xc5\x8e'\x9a?`\xfbu\xba\ \x91\x93\x9b\xa5\xed\xfe\xf8\xbe\xf86\x08\xed\xf7E&\xdc\ \x9a\xaao\x95+\x99\x8a\x10\x0b\xb7\xe6\xe7YJ\xf6,\ \xb5\xd7\xf6\x84\xa1\x0e\xae\xb9\x0e\x92R~VCI\xfd\ g\x19\xea\x5c\xe7D\xe5%g\x0e!\xb3\xdf+\xb9&\ \xaa\x8e\x80\xe8:\x9d\x89\xec\xf7J\x8e\x89\xaa\x97\x1e\xec\ \xecCx\xd1\xb1\xcd$\xb4\xdfkA(/\x83p\x5c\ \x7f\xae\x05\xa1\xbc\x1a\x84\x84\x0a\xf2\xe7m\x91\xa0\xfc\xb2\ \x83\x1c\xd0-\xe8n\x9c\x06~\x88@ \x81\xb5[\xbf\ 8>\x00u\xe9\x00\xd8^\xa0\xf8\xe2=\x9a\xda\xc8\xe9\ \x8bG\x8e\x8d\xcd\x0f\x87\x8eTm\x9d\xe7y\x1b\x8c\xdd\ \x0fD?\xb0\x04%\xbd\xadF\xf4\x83\xc9n\xb5\x8d#\ !\xe2T\x9dc6\xf7\xa4A\x90)\xa4\xc0f\x84\xf5\ zcP(\x09\xd5}\x95\x1abS\xceI?\xfb\xdf\ \x17\x8d\x5c\xa2\x87\xc3X\x0c\xf9\x98\xa6\x8a\xb5\xc9\x19f\ TIu\xc3\x10\x13L\x08(\x85dKr\xae\xce\x0d\ j\x0f\x9b\x01\x22\xb8\xce>|\xc4\x9ev'9\xc9\x8b\ \xd3\xd0j\x89\x14\xd6\xbco'&\x90b\xd2\xbed\xe8\ \x22\xcb\x18\x80 !x\xebC\xbb'\x1b9e\x1d\xd8\ \xc2\x98SSC\x8by\xc0,\xac\x9c\x10F\xaf\x03\xa2\ >\x0bDq\x15\x10\x99FDh\xb9\x93:)D%\ d\xe0R\xed\xf0\x93p\xd6\x8b\x84\x22\xa7l\xe4\x94\xfd\ :\x18*\xcf\x02\xb7I\xc4^\x0b\xefe>\xaf\x8dD\ \x8f\xb89\xaa\xd9\x85\x10\x1c\xc3\x9c\xd2@a\xb6\xceq\ \x9b\x07\x8e$a\x82\x06\x00~\x00\x993\xd6\xfd\xf3\xc9\ \xfd\x10\xda\x19m\xbb#ugP\xbf\x09\xdf\xaf\x0f%\ ;\x0e\xa5\xf8\x1a\xa1<7?u\xe7\xb2\x9b\xac\xf5\xb5\ \x87aGVF\xfd\xd6\xecpx\x06\xd5[?`\xcf\ \xf8\xa8@\x9a\xe8\x80\xf7\xcf\xf8\x88F0\xf2\xee1\x8c\ =\xe3\x03Y\xac(\xef\xbc\xfc\xb5g|\x84 \xce5\ 8\x82+\x9d\xba\xbcn\xf2\xc1\xd1\xc9K\xd1\x9f\xbcB\ \xac\x13\xb9\xb43'R\x07\x8c\xf6g.!\x9c\xc0\x01\ \xe5\xfd\x993\x84\xb5\x94\xf8\xdc7g\x9fu\xe6\x81\xf0\ \x8e\xcf](\xefz\xee\x09l^\x87\xc1\xa4\xdd\x13\xb8\ \xc2Bkz\xe3\x01\xa4\x5c\xdcx\x1c\xa8b\x0b\xc8\xce\ \x89\xb2F\xc0\x1f\xa6\xfal\xa3\x0c\xf6\xb8 \xe8\x9c\x04\ Z\xcc9A`\x08\xd9\xa1\xb3\xc5\x9c\xc3Z\xe3\x97\x9f\ \xdc\xb5\xf8\x9c\x1f\x97+\x1aL\xa2\xdd\xbc\xe4\xdc\xe3b\ \xd0\xa6\xbc\xcb^\xcbS\xccC\xad\xce\xd0\xe7~\xa5\x1c\ \x04\xde\x0b\xdfalA=\x01\xbe\xdbPN\xa3\x1e\xf3\ \xc5\xba\xc9^T\xeb\x8d\x95\xe6\x8c0\xa9\xadc\xae+\ ,\x89\xecA.\xb8dv\xf6I\xee\x11\xc3\xe3@\x9d\ \xb5\x80\xbaa\xe6\xe9\x80\xe2\xff\x16K\xef\xac\x0c\xc2\xa2\ \xe9\xe1W\xe3\xe9\xbe\x9e\xe4\x1d|\xe5\xde\xbd\xa0\xe49\ \xdfC\x1e?\xc4{\xc5\x15%\x8f\x9eX\xabW\xb9\xa4\ t\xeb\xdbK]\xf5\xaf\xcd5E{\xd3.~J\xcc\ \xf3\x9b\xcd\xa0\xc6\xe1\xc6\x8e\xf3pjju`\xa3\xe6\ \xac\xa5\xad\x18\xe7El\x8au\x95\xac?\xbd\xaavD\ \xcdu\xca\x00\xd2'\xb5\xae\xdf\x98\xd3v\xde\x11\xc3\xae\ \xfa\xf2!\x8c\xf3g\xe0\xfbn\xe5\x1fy>\xb3\x01\x91\ fL\x02\xb3v\xab\xebTO!B(\xc0\xbbW\x09\ \xfa(\xc4(\x90wS\xb2W\xb9(\x0a\xc0\xcbK\xc3\ \x95\x81\xb9\xd5\xff\xac\x85\xca\x87\xfcyZX\x8c\xaab\ av[\xda\x1ao<\xce\x97\xee\xea8\x8f\x16\xf6\xca\ \x9d\xb7h\x16\xce|\xb9+\xf1\x9cd0Y\xaf\xbd\xbe\ J8\xdf\x83\xa4\x95X_i\x85\x15{@b\xb9e\ \xebn\xd5\xcaQe'\xd6\x85\xdb5\xfe2\x0b\xe7\xed\ \xf4&aZ\xba\xeb\xb3<6\xe5\x01\x81V\xff,\x5c\ &\xb3\xe4\x0f\x13o\x19\xdeP\xa6E\xfc\xa0\xeei\x9a\ \x8f\xc3\xf4@\xe75S\x1fL\xf4h\x8aq\x1e\x16\xb1\ \x9dd\xbb\x12z\x06Z/\xa9je\xef\x9f.W\xb6\ \xac\xe7\xb4l\x01\xeb\xbe>7\xb3\xb9\xbd\x8aZ\xdfZ\ \xde.\xd3\xa7\xa4L\xc6vIv\x86\x0b\xb2Y\x08\x85\ \xf1N\xa9\x1d}+o{\xb7\x0b\xb3\xcc\xb3t\xd5\x8a\ 5K\xf6\xd6\xdf_\x93u\xf9\xccTa\x1cV\xe1v\ \x81\xaeK\xf8z\x86E<\x19\xfd\xfc\xf1\x87\x8d\xa3\x89\ \xa2\xd1\x7f\xf2\xe2q\xeb>\xac@8\xce\x17\xc0\x99\x8d\ \xf7\xb37>\xa3\x91\xdd\x13\xc2\xea>\x99\x01~\xf6\x86\ \xea\xdf\x97\xb3\x14\xfc\xc4\xa6\xa2'lA\xdbv\xdat\ [\x98\xe6\xd2\xad\xf3\x96i\x1c\xcd\x12\xdb\xc8\xffT%\ i\xfa\x93U\xd2q\x88M\xa7\xf5\x15\xd6\xbc\xb8\xeft\ l'\xf0a\xba\x89=zCH\xaa\xd4\xdc\xff#|\ \x5c\x8c\x07\x9f*\x03P\x16\xf5p\x9b\xf2n\x1f\xfe~\ '\xb5\xe4\x9e>\xdbm3\x87\xfbv\x0a\xcd\xb5k4\ [\x94I\xf4\x10\xa6)\x8a\xfe\xa8\x9b\xb6R\xdb\x96\xa0\ \x22M\x22\x93\x95\xa7aq\xdd\xd4m\xdb\x96\xfex\xe5\ \x95\xa1O\x11\xf6\xbb\xfb\x85\xdf\xda\xb1k\xd7\x7f\xee\xaa\ \xeb\x98\xf6BM\xfdy\xccM\x01\xb6*O\xce\xe3\xd9\ \x8c\xd1\xba\xb0\xee:\x8a\xfc\x9f\xcd\xbc\xc8\xe3ET%\ y\xd6\xb7\xef+;\xfe\x98\x94\x10\xac\x8c\x17\xce\x8e\x0b\ \xf3\xdfE\x02-^\xd4\xf3\xbf\xf2\x0a \xb9n\x9f\x1f\ \xaa\xc3\x83}\x15\x0a\xa6H\x9ej\x93Z6\x94\xd7\x1d\ \xf4\xa7\x87\xb00\x1f\xd2\xe4\xd1\xecR\xaf\xa5\xda\xe6\xf5\ \xe2\xd6\xc9\xdc\xfak\x17T?Mw|q\x1a\x8e\x0d\ \xf8\xe9O\xf5f\xb2v\xd4q\xbb\x97\xee\x85\x01\xd3\x22\ _\xccg\xb0o\xb4\x02m}\xb5\x8dX\xeb\x9fiX\ \x99w\x90,\xca\xf7k\x879\xdd\xe9yo+o\xc7\ \xf1]\xb8\xbf]\x1cP\xda\x86YqR\xce\xa1x\x94\ d\xd6W\x9f\x1eP\x0b\xd1\xb4\xb7\x8f\xc8\xce[\x81\xca\ u*\x1a\x04\x9cR\x15l\xceE\xb9\x0e\xb0\x84\xe8\x1b\ \x13\x0d\x09\xb1\x86<\x98 \x01\x99\xa7d\xe4\xfd6f\ \x9dn\xad\x5c\xab\xb1\xafO:\x81\xa2s\x94\x1e\x04a\ \x81\xd6R1]\x1ffC>A:}B\xaf\xf3\xb0\ z\xe8\xd2\xa7\x13sg\x19\xc4\xdcy\xe1A`\x04$\ \x5c\x14\xa6\x1f\x087\xc3\xb0\xed\x09\xd1\xa4Wa\xb7\xaa\ \x01\xa7H1\xa6\xf9\x0d\x0dP@\x15&\xc1@\x22\xc1\ \x89\x0en\x08E\x0cc\xc1E\xafUk\x83\x09l\x18\ \xa3,\xcf\xcc7\xf6\x97W,R32O\x06\x02\x8c\ \x18b\xde\x22\x7f4\x90\xf6\x1a\xc6\x99l\x1f\x9b\xb8i\ D\xd7\x8f\xd6t0\x85\x11X:\x8b\xbb\x85\xbf\xe7I\ 6\x82\xc5h\x8aui\xfd\x90BTR\x8d\xf8\xba,\ \x0e!\x18*\x0a`A=\x88Ni\x13\x9f\x8f\xf0\xba\ \xcc\x15\xeb\x03\xa4&M\x93y\x7fc\xe8\x18\xa7\xc8\xab\ \xda2D\xbc\xef\xcd\xbe\xb0\xe7\xa86\xe9\x0aX\xe7=\ J]\xb3l\xce\xdb8f\x01\xeb\xd5\xd4o; \x9f\ SB\x88~\x9b\xfa,2\x80\xd4.\xe0R\x1c0\x1a\ #.\xf8\xb7\xa7\x08\xb5!\xd6'\x1a\xb5-\xb6uk\ Cl.\xac]n\x88^\xe9\xcb\x0c\xd1\xc7\xfd:T\ V\xc1>\x95\x19G\x90]\x13{\x19] .%\xe1\ d\xc0\x90\x10\x00\xef\x0dp\x1aC\xc0\xee\xc4\xf2\xafH\ \xe5\x034i\xff\x7f\xc8\xd7I\x93]K\xb7\xd3\x22\x84\ \xd3\xfdU\x03\x16\xa6\xbd\x17\x09\xeb\x95F\x18\xe2\x0cK\ \xac\xce\x5c\x9d\x87W\xf4\x01w\xf09\xd8\xac\xf6\xd9L\ \x02$$\xf8a\x06\xfb\x0c8b*\x98\x18\x04\xc8\xbe\ \x8b\xbe!\x1aa)\x85\x90\x7fA:\xdf\xfa\xd3uD\ 3mb\x99\xa93\x889\x10!l\xa2\x0d~ \xda\ \xc8\xcc\xf3\xeb\x82\x09;\xd4[\x9b\x8a\xdd\xbf\xf9\x1fp\ \xe4Lq\ \x00\x00\x06,\ \x00\ \x00!zx\x9c\xe5XYo\xdbF\x10~\xf7\xafP\ \x99\x17\x1b5\xc9=xGr\x1e\x1a\xa4\x08P\xa0A\ \xe3\xa0\x8f\xc5\x8a\x5cI\xac)\xae\xb0\xa4,)\xbf\xbe\ \xb3\xbc\xa9\xc3\x96dC\x81\x1b\xd9\x86\xbc3\xb33\xbb\ \xdf~3{\x0c?\xac\xe7\xc9\xe0\x91\xcb,\x16\xe9H\ \xc3\x06\xd2\x06<\x0dE\x14\xa7\xd3\x91\xf6\xed\xfe\x93\xee\ i\x83,gi\xc4\x12\x91\xf2\x91\x96\x0a\xed\xc3\xdd\xd5\ \xf0\x17]\x1f\xfc&9\xcby4X\xc5\xf9l\xf09\ }\xc8B\xb6\xe0\x83\xebY\x9e/\x02\xd3\x5c\xadVF\ \x5c\x09\x0d!\xa7\xe6\xcd@\xd7\xef\xae\xae\x86\xd9\xe3\xf4\ j0\x80^Q>\x1bi\x8e\xa5\xa9\xd6\x8c\xc7\xd3Y\ \xde4\xe3h\xa4\x81\x1dE\x96_\xb4;\x03\xc4\xa5A\ \xe59\xe8j\x0c2\xb8F\x0c\xa1pbS\xea\xdf\x0e\ \x08\x22DG\xf0k\xdd\x14\x9d2\x98\xd6\x02\xfe\x82H\ \x84)\x9b\xc3l\x18Y\xfc\xf3\x85\xc9\ \xad\x9c\x82\xdb,\x17\x8b\xda\x16\xf8\x94o\x12\xa0\x85\x12\ \xea\xe0Q\xc8\xe0\x1d\xb5\x1c\x9bY\xef\x0b\x91\x00J\xc4\ \xf9&\xc0Z\xdbEL&\x19\x87\xb8\xa8#+\xc8\x0e\ \x1d \x94\xad\x0d\xcc\xe3\x83\xb9\xc4\x9f\x84\x93\xe7\x83\xe1\ \xfd\xc1\xdc&\xd8\xd0\xecO\xfai\x10\xf7a\xe4\x9c\x80\ \x11B\x84O\xb6\x87\xfd\xfex\x90\xbc\x93@B\xc5\xe7\ \x88h{Q\xf2\x10:\x13\xa5\xe7\xa8Vdl0\x93\ \x1c\x12\xeb\xdd.\x9e\xba\xff\x14)=\xa8jV\xeb\x0a\ \x17\x95\xdb\xc5\x16\xf1\xbcF\xbaQ\xd2\x8e\x11\x19i\x84\ \x1a\xaeg\xbb\x98\xb6F\xa4g4\xad\x02|K\xe3\x1c\ \x8a\xc82\xe3\xf2\xab*l\x7f\xa6\xdf2\xbecu/\ Y\x9aA\xf9\x9a\x8f\xb49\xcbe\xbc\xbe\x86\xf4\xb4,\ l\xf9\xfe-\x82\x1f\xd5\xb2\xa9\xe7\x92[\x1d\x1b.%\ \x84`\xfbV\xa7\x86G0\xa6\x0e\xbdi\x91=\x85i\ \x80\xcc\x05\xb9\xa6_\x98m\xbas\x1e\xdf\xb6\x16\xf2\xc0\ joQb/o\xceX]d\xf8\xd4\xb2\xa8\x8d\xad\ [\xec\x19\xbec\xd9\xae\x7fs\x22\xa9\xf6\xb1\x1c\xfb\xe7\ \xa4\xcb\xa1\xcc{\x8em/\xcdX\xfa\x5c\xc6\xd2\x9f5\ cO\xd9A_\x9e\xb1\xf8\xc2\x19\x8b\xdf`\xc6\xc2\xea\ \xfa\x18\xb2\x14\xdf\x12d\x10\x1b\x11\xdfz\x8d\x84\xb5\xa9\ \xee\x1e\x9f/\x1d\xdb\xb3\x93\xf6\x00\xe1\xc0\xf5E)\x07\ \xf5\xe7\xc2\xa4\xebD\xbc\xe4\xc1\xe4\xc9\x22\xe7\xfa~\x9f\ \xaan\x9f\xc8\xa4\xc7\xf6NS\xe5\x82\x8e\xf1\x91\x0c|\ \x86\x13{\xd2!W\xff&p[\xbdF\xb7\x14\xdd<\ O\xbb#\xc1\xe82x/\x1c\xb0\x9d\xffx@\xce\xbc\ \xf6\x9c\x94C/\xbd\xf8\xe8\x97\xbd\xfa\xc0\x96tV\xf6\ <\xc9-\xfa\xca\xe4z\xf2\x0a\xa0\xc8E\xde0\xb9N\ 9\xc5\xbf\x98\x5c\xa7\x1d\x09^L.\xf2$\xb9\x86\xa6\ z\xad(\xfek^\xa4\xd4\x13R\xf4\x18\xf3\xd5U\xe3\ m\xcc\x9a\xcdv\xc1\xa6\xbc\x18\x1b\xf0dR|*\xc5\ X\xc8\x88\xcbZ\xe5\x14\x9f\x9e\xaa\x1a~\xf9\xb2w\xd5\ _0\xe5\xb5\xd1\xa3\xfd\xfal\xc6\x22\xb1\x82\x93\xc9\xb6\ \xf2\xbb\x10\xc0}bX\xae\xe5\xb9\xd4\xdbV\x87k\x15\ \xd2\xc3\x1eq-{G\x09\xf1l\xcf\xa0\x9e\xe3ag\ G\xb9\x94\x12\x80\xd2\x13\xb6\xe10\xa9\xe2\xab\x06:\x9b\ \x89\xd5T*pr\xb9\xe4\xdb=\x95F\x1f\x8f\xc5z\ \xbf:\x12\xe1R=\x22\xe9\xcb\x92\xe6\x8b\xf5\xb6\xc5*\ Na\xb2z\xf52\x09'\xa7\x1dH*\x8b\xfa\xb5\xd2\ \xb3\xe8\x01\x8buK\xc6m\xd5\xe6\xb0j\xce\xd6\xf1<\ \xfe\xce\xa3\x96[\xbd\xd5\x08g<|\xe0r,\x98\x8c\ \x94\x97\x8ac=\x04jJ\xe6\x1b\xf5d\xb9\xde(Y\ /\x17\x95\x80\x22\xd4\x92\x97\xcf\x17\xea\xf5\xb2x\xf1m\ \x8b\xc4c\x9c\xc5c\x95\x19\x1d,\xc16e \x8c\xb6\ \xa4Y\xca\x16\x95\xbd\xf2\xae(\x9f\x894\xd9TfM\ 2\x9c5Pz\xb9\x816fe\x14\xc5ag[\xb8\ \xe9\x09\xeb\xd4\xe3\x13\x84\x9a\xac\x84\x0a\xd1\xa6\x15&\xb6\ \xe5#\xd2\x9dD\x9b\xca\xea\x14\xd8\xd5t\xfa\xc1\xa1\xdc\ \xf7\x10m\xf7\x00!\xe3i\x9c\xae\xbbU\xae\x14\x15\x84\ *1\x1e\x9a\xbb\x15\xa5\x90\xcfy\xce\x22\x96\xb3\xb6\xbc\ \xd4\x12\x8al\xab&\x92\x8c&\xc1_\x1f?5\x952\ \x0c\x83\xbf\x85|h\xab\x9c2`c\xb1\x04\xee7\xe5\ [\xbd\xc5\x86\x81\xda\x0bY~\x17\xcf\x81\xa6\xea\xed\xf8\ \xd7\xf5<\x81B\xd7(z\xc6j\xc9[\xa7\xa5[\xc9\ \xcb\xe7\xf0\xbd\xef\xbfQ8\x8fU'\xf3k\x1e'\xc9\ g\x15\xa4[\xd1\xcdj\xa0u\xcd\xed\xccch\xd6\x13\ -Z\xd3\x16\x80^ei\x98\x99\xb01OF\xda\x1f\ J9\xd8\xd1N\xa5X.\xe6\x22\xe2U\xf7J\x9f\xef\ ?ib\xe7\xa6Fv\xda#6\xa5\xa8\xdd\xfd$l\ \x9a;\xdb\xd1\x04\xa6\xd9lD\xaa\xd1\xb9&d\xb9\x14\ \x0f\x1c.\x11cl\x93\xbaYV\xad\x80\xd4MEm\ \x18r\x00\x03N\xa3\xae\xf0_\x11\xa7})@\xcbe\ \x02\x85'\x0f\xacZ\xb6\x1dM\x8f\x18l\x05R\xb2M\ \x90\x8a\x94w\xa5\xe5n\x188Fy\xa9\xa1\xb6_~\ \xec\x96\xba\xe5\xb4\xd5D!\x9f\xed\x8e\xb8*\xb5\xc4\xeb\ \xc8\xea\xe2\xda\x13\x02\xedi\xa7\xb9\xe97\x0f\xe0\xaf\xab\ \x05\xe8\xd0\xe40\xd2@\xb5\xeb\xdd\x13\x98\x7fs\x08\xfa\ \xe6\x84p:\xf4\x05\xda?\x0az\x9d\xee\x01\xdf\xda\x07\ \xbe\xd5\x07\xdf\xee\x83\xafN\x8fG\x01\xfb6)\xec\x1c\ \x82\xef\x95\xb8\x8b\xdd\x17\xd1Rw\xde\x1a1\x0f\x02J\ u\xe7u\x18\x89\xfd\x9f\x92\x90\xee\xb9\x84|eF\x92\ \xff\x11#\xd1\x99\x8c\xa4\x87)94\xa7\xe5a\x04\xbe\ \x86\xeaxtw\xf5\x1fXBo0\ \x00\x00!\xec\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \ \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a\ \x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \x0a\ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ ima\ ge/svg+xml\x0a <\ dc:type\x0a \ rdf:resource=\ \x22http://purl.org\ /dc/dcmitype/Sti\ llImage\x22 />\x0a \ Pa\ th-Stock\x0a 2015-07-04<\ /dc:date>\x0a \ h\ ttp://www.freeca\ dweb.org/wiki/in\ dex.php?title=Ar\ twork\x0a \x0a \ \x0a\ FreeCAD\x0a \ \x0a \ \x0a <\ dc:identifier>Fr\ eeCAD/src/Mod/Pa\ th/Gui/Resources\ /icons/Path-Stoc\ k.svg\x0a \x0a \ \x0a \ FreeCAD LGP\ L2+\x0a \ \x0a \x0a \ ht\ tps://www.gnu.or\ g/copyleft/lesse\ r.html\x0a \x0a \ \x0a [agryson\ ] Alexander Grys\ on\x0a \ \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a \x0a \x0a \x0a <\ /g>\x0a\x0a\ \x00\x000[\ \x00\ \x00\xb4\xfbx\x9c\xed\x9d[\x8f]\xd7\x95\x9d\xdf\xfd+\ N\xe8\x17\x1b)\x16\xd7\xfd\x22Hn 6\x1ah\xc0\ \xfd\x92\xee @^\x82R\xb1,\x11&Y\x02IY\ \xb6\x7f}\xc67\xe6>\xc5*JJ:mu\xd2n\ \x1f\xa9\xdd\x22\xd7\xd9\xd7\xb5\xe6e\xcc1\xe7\x9a\xfb\xf3\ \xbf\xfb\xe3\x9b\xd7\xa7?\xdc\xbd{\xff\xea\xfe\xed\x17\xcf\ \xf2uzv\xba{{{\xff\xf2\xd5\xdb\xaf\xbex\xf6\ \xdf\xfe\xf9\xef\x9f\xafg\xa7\xf7\x1fn\xde\xbe\xbcy}\ \xff\xf6\xee\x8bgo\xef\x9f\xfd\xdd\xaf~\xf6\xf9\x7fz\ \xfe\xfc\xf4\xebww7\x1f\xee^\x9e\xbe{\xf5\xe1\xeb\ \xd3?\xbc\xfd\xfd\xfb\xdb\x9bo\xeeN\xbf\xf8\xfa\xc3\x87\ o>{\xf1\xe2\xbb\xef\xbe\xbb~u\x0c^\xdf\xbf\xfb\ \xea\xc5/O\xcf\x9f\xff\xeag?\xfb\xfc\xfd\x1f\xbe\xfa\ \xd9\xe9\xa4\xb3^~\xf8\xfa\x8bg\xa3=\xe3o_\xdf\ \xbd\xfa\xea\xeb\x0f\x0f\x7f}\xf5\xf2\x8bg:\xae\xa6\xb6\ \xfd\xf7G\x0f\x98\xe3\x80\xe3\xca\x9f=\xfe\xe5\xba\x9c~\ \x91nR\xba\xfd]\xafu_\x9dJ*\xe5y\xd2\xff\ \xb5_\xfa\xa4\xf7z\xado\xf4\xbf\xcf^\xde\xdf\xbe\xbd\ y\xa3\xb7\xb9)\xdf\xfc\xcf\x7f\xba\x7f\xad\x8b\x5c\xebv\ q\xabWw\xdf\xfd\x97\xfb?~\xf1,\x9d\xd2\xa9s\ M\xfe\x9f\x7f\xd2T\xbd}\xff\xd9\xf9\xd6_<\xfb\xb1\ 7\xe5\xda\xef\xbf\xb9\xb9\xbd{\xff\xe2<\xfe\xe8\xfc\xf3\ S<\x9c\x7f\x1e\xb8~\x7f\xff\xed\xbb\xdb\xbb\xdf\xe9\x12\ w\xd7o\xef>\xbc\xf8\xcd?\xff\xe6\xe1\xc7\xe7\xe9\xfa\ \xe5\x87\x97\x1f/\xf3\xe4\xee\xdfU\xdf\xb7\xa4\x94^\x9c\ \xdf\xe3\xb8\xd9\x1f\xbe\xfa\x17\x1e\xf9\xee\xe5\xef~\xe8\xc8\ \xbc\xf7~\x91\xca\x0b\xcd\xa4\x8ex\xfe\xfeOo?\xdc\ \xfc\xf1\xf9\xdb\xf7?\x7ft\xea\xed\xed\xc3\x99\xb7\xc8\xc4\ \xab?\xdc\xdd\xde\xbfys\xff\xf6}L\xc7\x93\x83_\ ~<\xf8\x9bo\xdf\xbd\xf6\x11/o_\xdc\xbd\xbe{\ s\xf7\xf6\xc3\xfb\x17Z\xc7\x17\xcf~\xa5\xe3?\x7fy\ \xf7\xbb\xf7\x9c\x17\xe2\xc0\xdfj\xea\xf9\xd9\xe9\x85\x7f}\ XLf\xfb%\xab\xf6\xf1\xd8/o\xde\xc7\x8c\x9fN\ \xdf\xdc|\xa5\x87y}\xff\xee\x8bg?\xff\x9d\xff9\ ~\xf8\xf2\xfe\xdd\xcb\xbbw\xe7\x9f\x86\xffy\xf2\xd3\xbd\ V\xf0\xd5\x87?\x85R\x1c\xd7>K\x1dW}\xf8=\ \xfd\xf0\xef\xef\xbf\xbeyy\xff\xdd\x17\xcf\xca\xa7?\xfe\ \xf9\xfe\xfe\xcd\x17\xcf\xe6\xa7\xc3\xb7\x92\xb9R\xae\xe7\xea\ 3\xb7\xef\xfd\xa8\xfb\x94u\xdd\xbf7\xfe\xed\xbbw\x9a\ \xb6\xe7\xafo\xfet\xa7\xf7\xf0\x7f\xf2q\xd0\xfb\xaf\xef\ \xbf\xfb\xea\x1d\xf3\xf1\xe1\xdd\xb7w\x9f\x9e\xc9/\xcf\xbf\ \xfc\x12I\xff\xa1\x9f\xa5\x22\xdf\xb2 \xcf\xbf}\xfb\xea\ \x83\xa4\xed\x9b?~z\xc4w\xaf\xde\xea\xfd\x9e\x1fz\ \x9c[\xfb\xde,\x1cG\x9cu{\xb5\xfa#G\xa0m\ ?\xf2\xd3\x9f~\xfc\xa777\x7f|\xf5\xe6\xd5\x9f\xef\ \xf4\x82\xf9\x87\x16\xe0\xf6\xeb\xbb\xdb\xdf\xdf\xbd\xfb\xf2\xfe\ \xe6\xdd\xcb\x8fW\xd1\xef\xaf\xef|\xc7\xebu\x96\xa57\ w\x1fn^\xde|\xb8\xf9(A\xe7\x11I\x5c\xb34\ \xea(\xc9\xffg\xff\xf57\x7f\x1f\x7f\xd3\xdfoo?\ \xfb\xef\xf7\xef~\x7f\xfcU\xffp\xc0\xcd\x97\xf7\xdf\xea\ ]\x9f\xfd\xeaa\xf8\xf3\x97\xb7\x9fI\xa7\xdf\xdc|\xf8\ \xd5\xab7z,\xf4\xee?K\x17>\x7f\xf1\xf1\x87'\ \x07\x7f\xf8\xd37w\x1f/\x1a\x97}w\x17\xc6\xe1\x07\ u\xe7\xe5\xed\x9bW\x9c\xf4\xe2\x9f>\xbcz\xfd\xfa\x1f\ \xb8\xc9\xf1f\xbe\xe4\x8b\xe3A\x8f\xd7x\xf1\xe8=>\ \x7fq~Q\xff\xed\xab\x8f\x13\xf0D\x92\x1e\xa6\xf5\xf5\ \xcd\x97w\xaf\xbfx\xf6[~<}\xef\xd7\xaf\xde\xdd\ \x7f\xfb\xcd\x9b\xfb\x97w\xc7\xe9\xe7\x89\xfb\xea\xfc6\x5c\ XF}\xacg\xe7\x91\x0f\xefn\xde\xbeg\x12\x90B\ \xfd\xf1\xb5<\xca/\xca\xf5(y\xe6\xd2\xae\xcau\xdb\ \xa5\xf6\xd4\x7f\xf90\xa1\x9f\x7fs\xf3\xe1\xeb\x8f\xd3\xf3\ \xfe\xc3\x9f^\xeb~\xbf\xd3\x8b\x7f\xf6\xf3\xbb}\xb7K\ \x7f\xf6\xf1WV\xf2T\xfau\xd2:\xa6~\xd5\xe6\xf5\ Ze\xaey\xba=\xc9\xa028\xdb\x95\xfe\x94\xcb\xec\ m\x9c\x9e\xe7\xeb5f\x9d\x8b\xb1=\xea\xce\xa7\xe7\xf5\ \xba\xcd<\x97\x86\xf4c\xd7\xbf\x9b\xc3F\x92\xbc\xfb\xb0\ \xb5\xdb\x98\x83\xe3Ri\xb2O\x1c7\xca\x18\xab3\x96\ {\x9b\xa3>\x1e\xd3\xcdj\x9a9_%\xfe\xbcs\x9b\ q\x9d\x96f\x9a\x9dk\xcfVJ\xf6c\xed\xd4F\xe6\ 0=\xb4\x1e\xd5\x87\xed\xd9\xab\x0e+\xd7y\xce\x91\x06\ \x97.\xbd\xe5\x1d\x8f\x90\xe4\xf2\xe2\x11V\xd6s\xc5\xb9\ e\xe4\xees\xcb,\xb3r\x8b^\xf7\xdc\xbe\x85\x94r\ \x95\x18\xdbu\xd6\xec\xdb\x96>\xe2\xdc\xa4\x03}XZ\ y\xb5\xb8\xda\x1a)\xae\xb6w\xed\xcb\x0f\xac\xc7]#\ \xce\x9c+\xd7\xd3\xafO\xfb\xba\xf5\xda\xf4(u_\xf7\ \xb2{\xaa\xa7u\x9dW\x1d}\x94\xab\xba\xaeW\xcd]\ \x17\x9c\xfa\xb1\x0dM\x1cc\xcc@)\xa7\xdf\x9e\xc6u\ -\xa3\x962\xaf\xea\xbc\x1eZ~\xadC\xbf.\x9a\x96\ \xa5\x17\xae\xedz\xe4\x95\xb2\xee\xa2?\xe9\xec>u`\ \xb9\xde}\x8d<4\x96\xfa\xd0\xb3\xe96Y\xd7\xd1\x84\ \xecS\xbd\xde\xb5d\xadM\xd5#\xce1\xd3\xd0\x90\xde\ -\xcf\xb6\xae0\xabm\xafYNz\x13\xe1\x86\xa4\x89\ .\xed\xba\xae\xd6\xda~:\x96\xeaHuIx\x12/\ [t\xfe\xf2,\xed\xbc\x93g\xae\xcd6b\x9eJ\xd2\ \xe3\xf6\xca \x93\xbd<\x9d\x85\x9fc\xf6r\xdf%Y\ \xe2tjk\xb9\x5c=o\x08g\x1a\x8d\xc5-MK\ \x8e\x10\x0c\xcd\xd0,-N\xef\xba}J\xdbk\xae\x93\ f\xdcI\x8f\xd9\xf5\x06\x8cV\xadf\xeb']\xbe\xb5\ 14\xef!\x0a{g\x06\xf5&=\xe5l9\x1a]\ \xf314\xd5]K\xb2w\xd3\x91\x9a\xa5\xd1%#\x1a\ \xd4\x03\xaf\x9c\xfa\xe3A\xddH\xd3U\xfb\x96\xe0\xeaF\ BfEO\x22%\xd2\xb2\x8dr\x92\xa6\xe61\xaa\x04\ H\xf7\xe9\xb3t\x1d\x94shq\xe2\xb7\xa6)(\xc8\ \x11\xaf\xc3A)km4$\x15\xe9s1\xc4\x9aw\ \x1e4\xcd\x1a\x92(S1\xfd:z\x88=C+\xdb\ `D\x82,\x11\xe6\xf5\xf6NK\xd2\xcfY\xb3ZM\ S\x19\xa5\xf5\xc6Q\xfa\xe3\xf4\xd8\x96r\x22\xfc\x9c)\ \x99/q\xa6\x94*\x9f\xd0\xbd\x22\xa1\xe1\xf2u\xce$\ ye\x0a\xba&`\xb3*E\xf3\xb3'\xc2*\x01\xe6\ \xb9>\x0e\xb1\x8e:\xaajNx\xc9\xb4j\x98\x13M\ \xe9\xf4\x9c\xe9\xcdj\xb6\x14\xd4\xa6\xd5]\x1c\xa6\xbb\xb7\ \x10\x0c=q\xefC\xb2\xad\x17\xcee1\xdbek\xe5\ ZaP\x97\xe8s0\xd8\xb7\xf4K\xab\xa8\xb3eF\ v\xdcD\xd3_\xd7\xdaE\x83k\xca\x1a\x95\x18\x94\xe4\ \xe4\xc6\xec\xd7\xa1\xb9g9R\x9d\xdb\x13\xa4KW\xcd\ \x90\x1ea\xa07\xb2d\xbaI\x97\xce\xad\xab&%N\ {\xe4\xfchL\x8f\xd5g\xda\xa9\xea\xbe:)\x8f\xa9\ \x15\xf6\xacJ[\xda\xe4:E\xb7\xd8\x0ci\xe9\x17W\ \x96\xea\x8d\xb2\x96o\xb6\xba\xde\x9c)\xd5bH)\xc6\ u\x93\xf0\xce\xaa{m\xbd\x17\x8b/\xe9\x93u\xd4\xeb\ t\xcdE\xd2\xfc\xf02\x09q\xbcB\xda\xb5\xc0\xc7\xea\ \xcc\xca\x88Ltn\x8c\xc8\xf2\xad\xc9\xab\xc9\xa46K\ \xcc\x90UJ\xdc\xad\xc8LhM\x87\xcc\xa3\x94\xa5\xf1\ bz\xab\x8a\xa4\xcb\xae\xea\x02\xdck\xe6\xd5\x11\x05\x99\ \x11I\x83\xef\xb5\xb0\x13z\xd82\xe7D\xacu\xb9\x94\ \x1f\x0f\xcc.qY\x9e\x09M\xdf\x96xI\x82r\x95\ \x91\xcdrS;\xaf\xd5\xec-dV\x96\x82\x0f\xbd\xda\ \x96X\x0e\x1by\xbdX\x1dW\xf2\x1f\xabb\x09\xa5\xdf\ 2\xba\xbd\xf1t2\xe1\xd2S\xbb\x0ai\xcb\x1e:Q\ N\xa4jY_s\x83\xaaY\x90m\xc0#\x0e]\xd6\ \xa7j\xe6d\xca\xf0(KX\x11W\xd6\xf4HIG\ \x5c\xe1p\xd6\xe0\xae]\xaf\xab\x97d\xb65#9\x17\ \x86t'-\x17sR\xfb\xb4H4M\x81\xa4\xdcV\ N\xa2\x8a\xc46\x19\x7f\xeeX\x97\xcc\x1d+\xd9{j\ \x19_<\x17\xb6\x8a%J\x16,D\xba\xd6\xd3aM\ j\xd7\xd0\x96\xe4\xd7\xc9c\x8e\x94\x91^\xec\x82d\xbb\ \xf0\x86].P\x9eH\xbfi\xcd\xb1\x88\xb2\xa8If\ V#\xab\xeb\xc7\xc93\xea\x05\xe49\xb8\xffDSN\ \x7f~\xe4\xce\xc1\x0f\xb8\xff\x9aVy<\xfc\x80\x86\xef\ \xdf\xbe\xbd\xbb\xfdp\xff\xee\xb9p\xf1\x1fn>|\xfb\ \xee\x0e\xe0\xf7\x08\x0b\xfdo\xc0\xc3M\xd7\xbf\xed\x02\x1e\ .\xe0\xe1\x02\x1e.\xe0\xe1\x02\x1e.\xe0\xe1\x02\x1e\xfe\ \xea\xc1\xc3\xe9\x8dl\xba\x0c\xa4\x96\xf5\x8a\xd7\xd7\x5cj\ \x22nm\x844\x8b;\xac\x82lc\x961\x91\xd26\ {jM\xfe\xc2\xbahy\xe4\x1c91-)\x8cM\ \x87\x5cS\xb8x\xadm\xd8\x04\xd9\x17-\xb3\xed\xe2\x96\ \x83\xcb\x81\x0e4\xcf\x9d3\xfb\xc0\xf0\xb1\x1c\xb2\x9e\x19\ \x0bP\xaf\xe5\xe6z\x89!\x99\xad\xed\xa12\xed\x0e5\ k\xb2\xe2\x8c\xcc\xbe\xf2\xf6\xc54\xcdsO+c\x8f\ \xa3\xda\x94Kbd\xf5V\x87WV>(\xc9\x10\xeb\ \xe9\xe5O\x96\x05L\x22'[\xac\xa1\xaa7\x93\xf9\xe0\ i\xa4\xc4\xc5\xd2$\xd78\xe6\xa3!\xb9\x0dA\x8b\x95\ CH%|\x1d; \xdb;\xbb\xc5\xbex\xd6%8\ #\xeb\xde\x1a\x01\xbb\xd8p\xea\xad\xd1pT<\xa6\x03\ \x8f\x8e^h\xda\x93\xe7L\xaeg\x96\xc7#I\xf0\xa8\ \xd8\x17\xe4\x85\xc0\xe8%\xe5\xe5tG\x08\x1f\xdd\xc7V\ W\xa8%\xa7\xad5\xfc\xc7S\xd6\x9b\xd64&\x88@\ 8i\xebF\x87\x1f\x95\x07Z\xc3sY\x05\x81r\x18\ ])v\x95\x1e\x1bjy-\xed\x1f5\xc4\x91\xc0\x16\ \x09\x5c\x19\xe1^5\xcd\x96/\x0d\xc8+\xd9\xb4K\xce\ *r\xa85\x90\x7f\xece<\x1e\xc4&-\x99\xb0\x11\ \x18L\xd3\x9f\x96\xcc?(G\x7f\xf2\xefZ\xe7V\xba\ u}ek\x81\xa6V\xda3\xed\xb9\xf4\x93\xe7\x915\ \xdd\x18\xcf,\x13\xeb\x91\x9d\x864\x0b\xa5\xd3P\xc7\x03\ \xc8|\x8e\x1a+?*\xca\xa3\xeb\x15\x0dy\x89\xba\x14\ \x0a\x88!1\xd6#\x5c\xe1\xba\xb2\xd0\x1aW\x12\xbc\xcc\ \x0d\xc3\xa3\x9bj\x015\xad\xb2\xc9[\xd6_G\xc9\xc0\ \xd7\xf5xH\x0f\xd5\xb6\x1c\x8d\xb5\xa5H\x92\x84w\x86\ \x9d\x7f/^\x81[\xeb\xba\xa4=\xbc\x9cn\xa6\x17\x05\ /\xc8\x8d\x15d\x5c\x02.\x89\xd1\x90\x96\xc8\x8e\xf5a\ \x08\xe9\xdd^\x96d\xbd\x96\x17k<\x84\x16C\x00\x87\ !\x19?\xe1\x81+\x5c\xb9\xbc\xba\xe5]\xcaVx\xc5\ \x8co\x0e\x0d\x90Y\xb3\x94U\xd9\xc2\x16\x07\x09\xb6\xd8\ \x8d\xcc\x19~X\xdeI\xf0\x9bih\xf2\x07v\xd6\xc2\ \x19\x99\xbb%)B;\x81\x964\xbf\xf6\x9ey\x0b\x8c\ \x0f\xcb\x96\x10>\x82\xaf\x05-[k\xc7c\xdd\x9e\x8c\ \x90\xe5\x91=\x0b\x82\xd9\x9e0=\xfc\xce\xb6#\xf2\xbd\ \xb2\xb7\x1e\x92\x8b\xb3\x9e\x03\xe9\xe7\xf4\xb4\xde=\x0ft\ \xdc\xa5:\x16M\x94\x08\xc9\x94w\xc4\xbf\x1a\xb9\x09 \ \xe6^\xc0hU\xce6\xa6J.W\xcf\xe5I\xce\xba\ \xac\xad\xa3\x1c\x99\xbcw\xc4\x19\x9a\x8efYU\x140\ xU\xfd\xd2\x96o\xa1W\xd7\xfdY^\xbd\xb5\x0f\x92\ \xf3\xed\xd6\xeb\xdceI,\xce\x92\x895\xb0\xa12O\ B\x1b\xc7\xcc\x86\x8b\x92\x17\xd3\x8bj\x92$\x12\xba\xb9\ \x14\x5c\x88\x1e\x1f\x8a`f`\xc3\x00_\xf0\x8e(\xbb\ \xc0\xa6=f\x97\xec\x14\xbbu\x1ds\xc0\x83\xb0\xfcZ\ \x0e\xd9\x06\x8f\xb4\xd0\x82\xb4[\x84&\x04\x1a\xa7c\x0a\ b\xaad\xa8\xea\xc9!\x88\xa73\x83_\x80\x02\x88d\ \xd6|k\xf5eS\x00O\x13\xa3o\x0b.\xb3.\x9b\ a\xcc&G\x9a\x98\xfb>\xd6\xc2z\x16`\x9c\xd0\xc4\ \x93!b\x1eL\x96\x8d\xf7&E\x88\xcb\x10\x94\x9e\x92\ \xb6\xe7\x00\x8b\xd10\xcbr\xa2\xb8\xd5\xc1zI\xcaV\ \xf2:T\x9b\xc4\x08gd\x00\xed\x11\xb7&\xa4\xcao\ \xca\x81\x18O?\x1a\xd2D\xb7\x16\xc6T\x86\xc5\xb6T\ @Z\xe6^\xb3\xaf\xc8\xb1\xc8-m\x09\x91\xee\x82\xff\ \xc5\x19\x02D\xf4\x9e\xf6\x84BlBb,F^H\ \x09\xe6oK4\x8c\xcc\xe4#\x19\x91Lv\xa3Ya\ \xf1\x92-!I\xb0\xc0\x13[\xe5\xad,\xe7\x02\xf7\xb5\ \xe1\xdb\x08\xd5\x08\x02\x0b\x93/\x0d\xb1\xe8\x13A\xc9b\ \xc8\xb7d@\xd4D\xaf\x7f\xadXK\x81\xa5\xdeB0\ \x01\x88\xa1\xc7\x1c\x18\xe0\x84;\x926U\xb0\x90p\x16\ c\x19\xcd\xd6\x88\xd4\x0a\xe0\xc4\x88\xa2\x85\xc9P\x91\xd0\ \x8fJ8\xb6d\x83\x04C\xb2\xb5>I#\x80\x17<\ agLxM\xb89bjYUi\x1dhMF\ !{B\xc3\xbcJB\x8dq\xf2\xb2\x9b\x97%\xc2\x80\ \xcb\x1d\x00#Z\x09\xe1\x12\xaeH\xc32)\xa3\xdc$\ M\x8a\xf4\x04,\xad\x15\x8a2d\x085\xe9\x0a*\xf4\ o\xf5\x98\x22\xca:\xec\xb1\x9a|.\xf3\x0e\xc4d\xfe\ \x14\x9e\xe4\x15nI6\x95\xe9\xd3\xfc\xb5\x1c\x11Q\x96\ \x81\xaca:4\x9b\x95G\x8d\x97\xd3\xa4\xf5\x90Li\ ^\x8ehX3Y\xb0\x1d\x04Y\xc5!\xc7\xd4\xf4\xd9\ P|\x1c\xdaB\xcf\x08p:\xa2\x88Q\xb3\x05L`\ \xa5\x1f\x1e\xad\xe1\xf4\x0e\x11S\xec\x15c\x12\xbanV\ \x00!]\xf6\x13\xc2X\x8b\xa3d\xf9\x84\xae\x01\x97\x8a\ \xa7f\x09Q\xd7\x9f\xfab\xd2\x88\xf9C\xff\xe5\x1f\x87\ \x95t\xa5\x86F\x08Ci\x8d\xb44\x92}!\xdf\xa4\ \xabi\xb9\x04k$$\x12Y\xe9\xe4(\xe1\xd1\x0e^\ @\xfa\xba\x983\x89\x80$\xc4\xca,\xef\x95y\xe7\xad\ \xa5\xd9\xf6\xa8\x5c\xa0\xfd\x18\x95\x93~r*\xe7\xae\x96\ \xdb\xf2\xf2{TN1\xba\x12\x98nB\xf8\x02\xd3\x05\ \xd7f\xbc\x97\xdb\xf0sJ(1\x112\x95X\xb1\xb1\ \xc2\xd6Kf\x8d\xce7l\x87\x8d}&\xcc(GT\ .\xf1\xf4Dl@cp\x1b\xe5\x08\xdb\x8a\x22\xbd\xf6\ t\xac\x0b\x1c\x10\x99\x1c|L\xdd\x86j\xd2<~\xc6\ \x15\xc9)\x071\x22\xa7\xbc\xed4:qo@\x8f\xde\ g(v\x13B\xc676\x00Y/6p\x15\xb1[\ 'c\x9d\x15\xe8\xd3\xc1@\xb0\x0c\xc3\xe1\xdc\xea6\xd7\ Y\xaa\xe28\x80X\x7f\x1a\xccKz\x85\xbbt\x95^\ \x96\xa3\x17\xf8\x82]\xec@$]\xb6O\x04\xceX0\ \xf9\xf1\xed\xeb\xf0\xd2v\xde\x8a\xbf\xda\xb6Ci\xe7p\ RS\xdc\x8a}\xb5\xac\x92\xcc\xb1\xed\xae&:\xc6\xf4\ \xd8;\xac\xd6\xc7\xb1\x82\x0d*\x01\xac\xf4\xeeu\xe6\x08\ \x88\x1bb\xf8dLq\xc1>L\xb9\x8ch\x80iX\ \x1aP1\xef?\xb2L\xe9\x13\x00\xd8\xc1\x05%\x10\x9c\ ,\x19\xb6\xd8\xcb\xa1\xa1y\x00\xc0,\x08\x91?\x01\x80\ B\xe8\x00\xb7'\x00P\x92\xa3`f\x1e$\x9c]\xa9\ #\x02\xadM\xaa\xfd\xc9\xa0,\xb8\xe0\xcfy\xbd\xe5\xbc\ f=X\x1f\x02,\x9f\xb4\xf0\xd8~\xfb\x0c\x0c\xf1\x95\ \x88\xd7K\xac8X,bv\x19\x05\xc7\x84@\x0cl\ G\x06<\xc8\x00\xb3\xc2\x8c\xc9\x8f\x1bO,\x02\x9bX\ uB\x0e\x9f*\xed\xcc\xc7\xf2\x8c\xe0{4q\x8a=\ z\xdc\xa4\xd4\x92\x02d\xc0V\xf5\x83\x19\xea\xd8b\x83\ \xa5\x00#.NHZ\xe7\xc1md@\x14\x85<\x1d\ \x9dZ\x22\xe9M\x8d\xd7\xc5\xcf\xd9V\xe8\x9a9\x05\xb0\ !:\xe8\xdb\xf2\x06u\x17O\xa7u[HS\xed\x9a\ \xeb^Bzd\x90\x8a\xe3u\x01\x14\xdbX\xbb^\xb3\ E\x92\xf3\xaa%\x0c\xbb\xd5\x09\xac\x89\x8e%F\x98\xc0\ \xbaA\x0b\xf8[\x81\xe5anH\xbf\xe1`\x0d\xd2\xf4\ V\x00\x97\xbd\xf4\xf0\xfd\xf4[\xb9\x04\xe1\x09ia\xbb\ \xca\x13\x02`\xc9+6\x8c\xb6@=^Q\x8f#;\ \x81W\x5c\x12\x1b\xc1\x1c{E\xcd\x98L\xdc'^Q\ \xa0<\xf1\x8a\xd0\xa8\xf6\x9d\x19\x04\xd6\x19\xab6\xff\ \xa7\xad\xc8\x83\xa8\xd7\xc7\x09\x9e\xea\xc4uM\xac+\x0c\ r%\xc0#S\xad\x09\xd3\xa3$\xe13)5c\x99\ \x18T\x0eU2\xae\x13\x9a}\x8e\xcc\xf8\x86\x1d\x11R\ \x93\x9beHhQ\x81\x981\xbbb\x85\xd2\x03\xefB\ V3'\x05q_g\x86Da\x22\xfa.\x7f\x96A\ \x14\x0a@R6\xf7\xa6\x80\xb1G\x04\xa3\xc0\xa52\xe5\ B\x18\x82d\x00\xbcY\x84\xeb<\x99\x19*\x9a!\x85\ -\xcd\x9e\x14z\xbc[\x82\xb3\x80\x5c\x06*Br\xec\ \x83}N\x04\x1e\x1f\x87X\xa2\x05\x0d\x9a\xec#\x16v\ \xc0\xd1a\xe9\xc1\xceaTL\xc5\xa1\xce\xb6gB\x05\ \x92d\xa2\xa5$`7C\x8eY\x97\x09!\x94s0\ \xddZ\x0c\xb9T=\x9c\xc6\x08\xd5@\x9dMK%\x89\ \x9f&j4Y\xebL\xb6e!\x1d\xc4L\xb7\xca\x07\ \x8d\xa7\x80\xca\xc4\xd4\xc71\xc8\x0a9\xde\x90k-D\ E\xeb:\x94m\x0d\xf6s\xf4D\xe4\x0a\xf9\xa7\xf8x\ \xa6\x08\xeaus\xe1 c\x8c\x96v\xcf\x0fK\xd1\xa6\ U\x00\x8d\xb6U\x16\xdc,\xc3T\xd8\x049\x00P'\ \xa3\xcc\xa9\xe6;{\xc5\xb2\x10/NK\xb6\xa8\xb6\x94\ \x08\xe3\xeb\x06\xd3v(i\xa1\xe1e:i\x08\xdd\xcb\ '\x0f\x03\x99\x86{\xd7\xbaW\xe9Z\x06u\x10\xb8\x08\ \xfe\x98\x22\x11\x14Z\x8f\x87:t[;3v\x8a\x8a\ B}\xf5(\xb5\x98\x88\x15\x864\xe4\x1c\x03\x95\x86U\ 3\x1d\xc6c\xee\xb1\xcc\xb3\xc9G\x0aj\xc2\x03g\x01\ \xcd4\xcc\x0e\xca\x81T\x86\x14\xc5\x09\x1c@'(\x0c\ \x9a9\x88\xe1QMn0A\xa6\xec\xe4\xcd\x22\xb8\x90\ c\xd2\x1fY\x07\xdd\xd6S\xf00b\xba4\xc8\xe4\xd1\ \xaa\xa3EE\xf7R\x86S\xc4\xd3m\x05`\xac6\x0e\ S\xe6\xcb\xb6A\xf36\x1d\x09\xa2A\xba\x22\x8ew;\ r\x90\x1f'\xc2\x94H\x0aNV\x04La\xcb@\x19\ =w\xa6>\xa4\xde\x89\xa8\xab`\xa9{p'\x09\xbe\ \x0eh\x80\xac8\xc4-\xab\x17\xc3K\x09j\x0f\xd2E\ \xb1\xcc\x86\x87\x91\x15\x9cp^:\xbe3O\x9a\x9b%\ c\x11D\x9fP<\xa49.y\xd7`\x12$f\x93\ \xc7\x06E4t\xb5x\xbd\xc3\xebi\x01\x1c\xaeu\xdd\ \xd1\x16SO\xae3\x1dh\xcci\x22\xabN\xe0\xbb\x0d\ \xa6\x22,\x0f\xc9\xd7$\x93\xfc\xb2\xa1\xa6-\x08n#\ \xc1\x90!0lS\xbb@\xa3\xbdE\x97C\xaba\x1a\ \x14\xc5L\x1c\xaan\x96\xa7\x8d\xaa\xb0\xd4\xda\x81\x8b\xba\ P\x0dD\xdc\x86$4\xa58\xc1\x98\x9a\x18\xcdj\x1f\ -h\xbe\xb5\xba\xd9\xd1\x86\x9f\x0b\xe0E\xd4y\x05q\ \xad;\xce\xf0\xd72`\x04P\x9a~CbX\x80U\ x\x86\x84D\x9a\x1c\x16\xbc<\xd2^m{9\xe5\x16\ \xc2\xa0$p\x11\xc7\xe8\x88d\xeb0\xb0e\xe8\xc2\x94\ 3(>H\x80\x026\xdd\xc0/G\xee\xe3\x18\x22\xc8\ \x968\x1d\x10D\x9eW\xd2\xc6\xfc\xe7r\xb8\xe3\xe5\x84\ \x071\x9cb\xcf\xe2'&\x80\x9e\xb0\x0c[\xbfe3\ }X\x95M\x9c\xad\xe5V\xe0\xea\xd0[\xa6\x87\xfc\x93\ ,\x89\x90\xd8\x0e\xfew\xcb- \xb9[\xf6\xc6\x9e\xb4\ %\x10\x08$\xdb\xc5\xdca\xd6\x8f!\xe7\x0fd\x0d\xcb\x99\xe9\x19A\ JiZ\xd3\xf4\xab\xe8\x0d\x8a\xe7\xee/fz\x04H\ J\xb6\x13w\xa4\xe7\xa4B5\xbe\xdd\x0a\x94\x92S\x1d\ \xe4\x17M\xf2k\x11\xed\x9aR,?s\xd5m\xdd\x13\ \xf2k\xb9\x9a=\x00\xd8<\x07C\xdb\x93\xf3:\xc4\xd6\ $\xba\x8dP\xf6a\x0a\x22r\xa4j\x09'\x84=o\ O\x0f\xc9\x13O-R\xb3\x83\x1c\x94\x855\x87$\x9f\ ?\x0e5gA\x83W\x92\x99.A\xc2\xacf\x0eB\ \x7f\x12*\x89\xc0L\xb6gu\xf3\xaa\xa9D\x8a\x18h\ e<.\xd7\xba\x83R\x96\x22\xb0V\x19\x88\xd6[\xe0\ @\x0c\x99\xb9!\x1d\x93\x1f\x0f\xe9D\xe9:F\xd7.\ {\x09\xed\xdaE\xac\xd6\xa1{t\xadn\xd38\x16b\ \xd9\xb1\xe8+\xd8K\xd2\xd0\x8e\xac\xe1\xcf\xc7\x01K\x93\ y\x09\xf9\x86\x14\xe6C\xf1\x8a\xac\xa2i\xfc\xdabB\ \x05\xa8\x0fQ\xd2\xab:O,\xbf\xdcs9\xd2\xd3\xcd\ \xd6C\xb3\xb9C\x00\x15K\x90lqd\x8d\xd0\xca)\ 6\x12\xb1\x0a^H8\x18\xd2($\x0d\xbd\xd6zJ\ W\x8c\xfb\xe5\xc1\x01\xaa\x1d\xd8_\xa6-\x0b\x88d\x18\ \xa6\x0aT\x08hFtA\x0a\xcb:BN)\x98\x04\ \x99\xa4iZD\x1ee\xb7\x08\x93\xc9=\x07c$\xaf\ S|n\x96\x097\xcb=\x85\xc2\xb1&\xbd\xc1o^\ \xc9\xcb\xc9\xb06\x1b\x13-\xff\x22w\xd3H@\xda\xe7\ \x8f\x1e\xa4\xaffV\xd8\xd4P\xb3\xc2\x8d\x83ctl\ 'y\xe7DSaB%\xd4\xa1\xb4\xb6\xb8\x9aV\xf3\ j\xf2\xda5\xc8\x1d\x85\x0ef5I\x7fG`$S\ ,I\x86#\x83\xa9\x22G\x18\x04\x83\x8c\xf5\xb8\x90\x98\ \x17\x12\xf3o\x82\xc4\xbc\x90p\xffw$\x1c\xc2\x08\x0e\ \x9c[b[\x06\xc1\xaep\xc29\x9f\xa6\x07p\xd4-\ \x8c'\xd8\x1e\x86v\x06\xe8\xaf\x94?\xd9\x83\xe2\x99\xab\ \xe3u\xa8\x81@\x18\x8a\xe4V\x84\xf0\x010\x0a\x10\xdf\ \x0a#8\xedY\xd1Z\x87\x81X\x84_N\x01\x87K\ \x04W\x87\x87\x97\x9c\x87G|\x18\x92\x81\xee\xf3G\x98\ \xc3\xb9~r\xe6\xb0\x8c/\x15\x01]\x98\xc3\x0bsx\ a\x0e/\xcc\xe1\x859\xbc0\x87\x17\xe6\xf0\xc2\x1c^\ \x98\xc3\x0bsxa\x0e/\xcc\xe1\x859\xbc0\x87\x17\ \xe6\xf0\xc2\x1c^\x98\xc3\xff\x00\xcc\xe1\x1b\x198o0\ h\x04\xc9\x93=\x1f\x94\xd2\x97\xa8\x9e\x0e\x96Pq\x96\ \xc5\x04'xT?K\x0b\xfa\x08\xc3\x0d\xe8\x0d\xc7P\ \x90#\xe3\x92zl\xb0Q\xe8\x1d;\xed\x16\xee\xc4\x13\ 'O\xc3\xce\x0fo\xcd\xd8\x12\x89\x03e\xd8\xa1Qk\ ]\x8a\xb7\xbc@\x06\xad\x1cw\xa0L:{\x93\x89l\ F\xea\xb6\xdc\xec\xb7*\xd5hRo\x19\xd15\x88X\ \xbf\xa3\x12]3\x15\x5c\xc3T\xbc\xe5\xa9\x92\xe5\x1b\xad\ \xc5~\x83%\xd3\xee\x1dT\xc4T6P[\xde)6\ \xc4,\xc1\xa45\x82\x9bi\x86\x8f\x85\xc8\x0d\xf3S\x15\ \xb7\x0a~\x18\xabp^'\xd4J-F:5\x9c'\ W`\xf7\xd8A\xb1\xab\x8c\x00\xb6n\xd5\x15a\xe4\xe0\ U&\xc1\xc6\xee\xfd\x98[6\xa0\xb8\xe6\x1c\xd7\xd1s\ H\xf8\x90`\xd6\xa89\xd7\xac\x97\x1a\xac\x86\xa0B\xf6\ ~:=wDxl_p\xb1\xe6\xc7!\x05\xc6\xad\ \x1f\x0c\x02\xeb\xba\xc1\x93\x93\xd0\xd0T-\x84HJ&\ f\xa5\xe4}\xb6\x18\x1c\x10=\x16q\xc8\x9dCA+\ \x86\x1f\xd1\xf4\x06\x13\x81\xd9\xcc\x0e*.W\xa9*\x87\ \xd2eJ\xf2:;\xe1\xe18\x0b\x8e\xd0\xa8BH\xde\ \x80XQ\x1c;t\x0a\x1bB\xfb\xf4^\x9f\x16\x9b\xd9\ \xf0A\xdd\x1cYu\xf1=>\x03\xaa\xd9#\xc2U\x95\ ]\x8b\xe0V.\x9c2\x9b\xe2.l\xf7\xdf4\xdb=\ ~z\xb6[\x82{s\xa9\x93\xfd\x0b\xd9\xeejQ\xc1\ \x1e\xb3A\x95\xb3\xba0\x8b\xc1\x9a\xb4IRcf\x02\ ?\xc0\xc8\xc4\x81\x84\xd5 \xc2324K\x00(\x82\ \xe7*\xc1\xed\x0a\x1e\xb7\xa7cR\x08\xef\x97\x8c\xd84\ \xe7\x98\x11\x99\x0064\xa3\x9d\x0a\xe9Z\xfet\xdb\x93\ lA\xa0\xab\xbf\x16\xea\x9a\x9d\xd9\x82S\x80\xb7\x1a(\ r\xf6\x13$i\xad\x90Be\x1bpW\xfb\x92\x05\xbe\ \xcfWe\xea\xdds\x0f\xa2\xc3\x81|f\xc7\xb5\xa6\x05\ \xfb\x023\xb3\xa1\xb3K\xb5\x8d7\x98m\x82\x892\x15\ \x8f\xc6n#\x86\x9f\xb6j\xd0\x84Z<#\xf7*\xf4\ :}\x19\xc55\xdd\xb4\xa5)c\x00\x8aP\x85f\xc8\ QQ:\xbb#E,\xdeL \xcf#\xf8\xf1d\x88\ \x96\x01\xfdXB\xf6,Nca\x19\xd7n\x85\xe9\x10\ \xda\xbd9\xc6\xc7$'\x8b\xb5\x16S\xf0\x22\x94H\x87\ \xaey d\xdc$Ta\x02|\x06V\x9f\xec\xc1\xb3\ \xb4\xcb[+\xfa\x8b\xadk\xe7Qo\xa5\x86P\xab\xb1\ \x8a2z\xba\xc5\x0e&]\xde(\x0c\xbb@\x85$4\ \xf6:\xc8\xe8\xc8\x0bXZ\x85\xdd\xbc\xc5\xd4\xc1)\x84\ \xb9W\xb4)\xf0\xad%p\x8c\x5c\x9d)R|U\xf4\ \x1b0\xa7k[\xda\x06;\x1d\x83\xc6\x87d\xe0\xe6\x0d\ \x8a\xc9\x17\x94\x96\xe17\xb1!\xba\xc7t\x84\xdet\xaa\ \x0f\xfc!~~bC\xbc\x0eu\x9b\x9bT4?\x93\ \xc9\xc0M\x8b\x81.\x94\xe5-\x83d{\xb0\xabp\x16\ \xdc\x00\xfa{\xa7\xd8\xe5\xd7\xe1S\xc3y\x16\xd4)\xb6\ \x88'8\x19\xfb\xe7\x22s\xe6Y`7\xfb\xc0C\x8f\ \x05\xbd\xd2\x03F\x8e\x1cX\xa9\xf7r\xe4'\x14\xdc\xcc\ #\x17q$OV\x8d]\xa30\xeb5\xe6Nj\xeb\ \xbd\xdf\xa8@dS\x92}/#\xab\x1cD\xef\x0a\xba\ \x1b\x16)\xc5\x0e\xf4Z\xf4\x90\xdc\x0ef%\xcc\xad\x14\ \xcb\xfc)\x0e\xdb{\xee\xba\xc1\x1d\x12'S5\x91\x08\ \x85\x14\x12\xcfl_\x058>\x96\x808/\x9b\xeb\xa8\ \xec\xd2\x89\xb1|\x10B\xc8Hlh\x14\xea9g\xe6\ \xb6\xb3kp\xd1\xad\xc6\xa6\xd4\x02\xf6\x1dF\x97\xd3\xdc\ \xc0\xe31M\xad\xa2\xec\x12tpe\xef4\xd8\xbd\xd0\ I\xc3\xbc(\x9b\xc4\xf3\xf0\x0e[E\xfc\xd8E\x01\x05\ At\xe2\xe3\xc5\xde\x1b\xa0,3\xb4Y4\xcd?9\ +\x0cw&\x14\xad\x10\xc4\xba%\xe6\xb4{w\xad\xe3\ D\xcf\x827\x02\x0dv\xc0\x0b\x08\xbb\x9dE\x05\xe3\xb5\ \xfetH\xe8K\x1a\xd4\xce\xf0g\xb5\x9e\x0e\xf8\xd3\x0a\ h=\x9aC [O\xe1Om\x87\xd9b;l\x04\ \xdb\xd9\xf4D\xc3\xe4\x996\x92`\xd0\x88\xc0L\x164\ \x0d\x5c;\xd9\xa3mo%\xd5\xa0\x89\x83\x998\x13|\ \xb8\x84\xd4\x97\xa7E\x93\x8cH2&y\xf5fF\xf6\ &y\x95\x15&\xa4\x03\xa1TvE\x03\xca\xf7l\xc3\ \xd2\xb8\x16\x96\x05\xc8HK\x81\xec\xbc\x82P\x99\x94\xd3\ \xfeIQ\x5c,|\xd6\x1dj9\xd2\x22!}dj\ \x877\xb4\x7f\x1c\x93&\xd3\x1f\xe0\x9c\xb3\xe8$\xaf\xc8\ Yt\xb8\xd9\xc8Y\x142\x7f\x9f\xe4,\x14T*v\ \xfa\xdb\xc8Y4g\xb4t\x05\xc1\x00w\x0c\x90K\x95\ \x1fu\xcab\x02\x9b\x055AN\xa0\xda\x86\xe7-G\ \xc3\x87\xe6}\xb9U\xd6b\x86\xd27\xb8{6\x06\xf3\ XN\x87\x10)\xe0\xeeK\x0d\x83*\xec\x9aM\xe8\x99\ \x86\xc2\xfeu\x05t\xf3,X\x9a\x0d\xa9G\xc37\x22\ \xa1\xddn\xa8\xd3Y\xc3\xaa\xa6U)p\x0b\x04\xba`\ \x12\xc9\x18oZ\xd1V\x05Ul\xcd/\x11\x7f\xd3\xac\ \xa3\xc5~\xe0\xbc\xa2W\x82\x5cX\x0d\xab*L\x10-\ \x0a\x92B9\x10=i\xc8\xbc/\x89\x8b\xbf\xc9\xc4\xc5\ \x90}2\x19\xc0;G\xe2Bw\xf2Q\x93n\x0c\x91\ \xb8\xa0\xd8\xc0\x89\x8bNv\x1c\xa7%s\xcd\xf6P\x19\ \x83\x99\x8b\xc1f\xc1\xd9E!H\xa3\x89\x04=\x93\xf4\ \xfai=\x1ab\xe9&J\xe1\x00\xab\x1f\xedr\xce\x9b\ \xeb\xe5\xc3\x0c+=\x155\xda\xb4\x10\x22\xef\x80\xa7G\ \xcb\x01,wYO\x8fjtSz4d/n^\ \xf2\xc8DX\x14\x1cg\xd7x\x81\x0d\x5cv\x8c\xde\x14\ P\x86\xc4\x12\xac;\x13\xc1{\x06*Z\xb6\x0e2\xc5\ \xad:(\x1c\xa8/\x0d0VXG)\xb6\xc9B\xbd\ g\xe4x\xe5\xe7\xcd\x93/lE\x5c\x84\xbc0\xaa!\ \x91h\xed\xa8q\xe9+R\xebZ\x11\xdf\x9b\xb8)\xa0\ \xd1\xe0\xc4\x909\xc2\xffP\x8em\xe7d*\xf8\x10\x1f\ \xd9(Xh\xa6O0$\x1aS\x81\xe1\x22\x0e\x95~\ \xe4\xe8\xbd\xc0\x1aF\x94\xf6\xaf\xcf0\x90W\xb2\x09\xd2\ \xab|\x9a`0\xe5\xf28\xbf@\xd7\x9faS\xdc\xb9\ \x02:-\x98\x02u\x8eI\x1d\xd1\x13h\xd0:\xa4\x0b\ \xeb\x1f\x0a]\xf0\xb4H\xabt\xb1;\xf2\xca\x04\xe6n\ \xee\xd2\xdc!\xc9T\xba|\x11S\x0b\x85\x1e0E\x92\ \x1a\xf6\x14\xfc\x13\x01x*\xdd^g\xee\x88\xcezu\ r#\x02\xd7\xa81\x22\x0d\xf48#1\xc8{\xac'\ \x19\x09]0E\x0b\xad\x87\x8c\xc4\x1bw\x9f\x02K]\ =_\x88\x84N\x8f\x06$\x940D\xe5\xcc\x84\xa6\x04\ \x9dj\xa8\xb7\x83\x9ei\x84)\xd23\xad~\xe0=y\ W\x03NA\xbb \xc4G\xdf\xc7\x0bI\x97\xa2{\xd1\ p\xe3\x13\xaf\x11t\x89\xfdr!\xfc\xb0\xb8\xd0\x87#\ \x00C\x11~\x0a\xcd\x92\xf6\xe5ff\xd4\xa5\x0d\xd1\x99\ F\xde,\xfa7\x09k@g\x1b\xb8\xe6#O\x08\xd2\ 0\xe13\x08%\xbc\x09[\x81o6\xdf3\xf5\xd8\xe4\ *\xa5\x13\xad\x8d\x08\xfa\xbaM`\x81\xe7\xc7\x07b\xaa\ \xe1\x16\xae\xe9\xb7\x91\xec\xab\x04UZ\xbdr\x15\xc6>\ z\xeb\x84\xdb\x91\x14\x92C8\x9c!W\x912W\xfc\ \xbf\xf4\xf1\x08Q;\x9cQ\x10\x89\x03\x8d2b&5\ AF4f\xdaH\xcez.5p\x8a\x1e^\xf2H\ oT\xaa\xcd\x08!\x14\xce\xd3\x12\xad\xb0\xc3\xbbD\x86\ 3\x11\xdb[oh'\xc3\xec\x93\xb4\x0ar\xb85B\ \xbe\x80\x07{\x84\xd2\xcc\xa3\x1c\x8d\xa6A\xf5\xc8dD\ O'\x9da\xd8!O\x87Q\xd7\x08i\xaaN\x0d\ \x80\xfcY\x8e\xe0K\xd3\x9e\xcc\xaaQu\xb5\xc2I\x0a\ \xcf\x1a\x1e\xaeIY\x92\xd7\x82\x88\xba|\x1cr\xee\xa7\ E#\xa9\x9d\xdd\xd8\x8d\xc5v\xac\xa4EM\x91&\x90\ ;\x93K\xbc$\xc9.I\xb2K\x92\xec\x92$\xfb\x97\ &\xc9hf\xe7>[\xd0\xa5\xb2\xea\xe5h\x9f\xa5\xd1\ \x13eG\xa5\xd1\xa7\x07gnJVNw<\x19\ R\xa8\x9a\xd3\xc1\x08\xc2\xab1a$gh=\xc6\xa5\ \xe5\xcav\xa4\x0c\xe4\xf2\xe83\xc6\xc4\x8e\xd6\xcf\xc0'\ \xf2@\x19\xfd\x0e\x98S\x14\xee\x07\x9fL6\xe4\x0c\xd3\ \x8fB2]!\xa0\xb5L\x85k\xb3\x14\xc0\x8d0\xc3\ \xd0\xd5\x03\x17%l\xb4\x22E\xf40\xa4\x97\x96\x99\xf1\ \x82P.8\x175\x93\xd2\xbcI\x14'\x5c\xdc\x5c+\ H\x1d\x86\xfe\x9e\xe9g\xe8\xe4\x81\x22\xcbv\x04\xbb\xd9\ \x01+\xe4\xdb\xee\x91\x98h\x87\x88\xd5h\xf3\x88\xa6\x0c\ R\x83\x91\x80\xdc 7\xda\xc8Eo6\xd3\x1d\x97\xfc\ \xe3%\xff\xf8\xef6\xff\xb8\xe4<\xa0X]W,\xff\ +!\xfb5:!\xdbL\xc7V\xecp!\x8a\xd0\x18\ \x1dy\x1c\xed\x91\x8c\xdb\xa0\x91\xc1\xecv\xaa=cL\ \xc0\xd7\x13\x0d9\xc3\xadY]\x16\xaeRq;\x8b\xa3\ \x87L\xc8]\x9f\x0c9\x1a\xebVSY\x8f\x837\xa0\ \x8c<;\x0c\xab{\xd6s\xf5\xd7@ve\xe8\xd2v\ _YM\x02\xecw\xae\xc6\x0c\x93VG\xb2\xc0\x0ax\ 3\x8a\xb2\xf0\xd7\xe7\x17\xdc\xe7\x17\x94\x0d\xfa\x1f?\x9c\ \x90k?}\x0f\xe2[\xc1\xb2\x1f\xfa\x80\x01\xcc\xa7\xb0\ \x0e=\x88AD\xfd\xa8\x1c\xdb\x94\x9b\x05\xf9\x0c+\x13\ \x194\xc5\x22\x11\xfa\xb6J\x07\xa6\xe7Q\x95\xd6F8\ \xd1v\x84<)\xb6Z\xd0\x06\xb1\x04\xf4,\xac\x97U\ \x83\xc1\xa8\xcc*\xc3$\x0a\xc1\xbcs)\xbf=\x15\xe7\ r\x15\x1c]5B\xb4B\x9dl!p%,\xaf\x1b\ m\x14L\x8c\x84\xa1\xdcI\x18Fh\xf3|\xf0B\xed\ LH\xa4\xe4-\x09\x03B>\xc2\xf7E\xef\xe2\x88\xa9\ \x87I1\xe7\x03\x1c\x0f\xc8\x18\x9b\xf0\x92%)\xc1\x9b\ I\xb4q\x94\xd4\x8f{DvgX\x86\xf4\xda\xa68\ IC\x9b\x13\xab\xa3\x9b[\xa4\xbb\x9e9\x0ay\xe9\x1c\ lO\xa9\xc5\xad\xfc\xa8\xfe8lT\xcfi\x05\xc3@\ )\xfd9Cs\x1e3\xd3z\xe8\xf8\xa4\x0asEK\ d2\x7fN\xe0\x08\x92T\x87\x87\xbb\xd0\xa1\x0a\x87F\ \xb6x\x1eqs>'\xc0`\xb0\x1d\x04\xa4D\xc4j\ \xec\xb1[\x8c\xcd\x5c\x9cT\xcd\xeeX;\x22]\xa8\xd9\ q\xcf\x5c'~f0!\xae\x1e\xd5\xdf\x8f\xde\xb0\xf4\ Ht\x8e\x91\xbctd\xac\xe9\xad\xec\xec\xa5\xf9MLV\x1d\xbb\x8f\x04\ \x1ce\x99\x8e6'\xd4h,yW\xe8\x09\x8e\x17X\ )Q<*\xbb6\xcdGP\xadPm\x0e\x1b\x1d$\ \xa3\xe5\xb3\x00\x93\xd3U\x836i\xdd\xbc\x5c\xa2\xc3\xed\ \xd5\x03\xf5\xc4\x06\x90)'L\xe7\xebJ $4Y\ \xd8*\x22w/\xc7P&\x84!\xb4\xe9\x80\xf4\x14P\ \x99\xd4)l7\xb9\x1c\xdcAX\xae3D\x0aK\xf2\ Q\xf1\x01\x9b\xea\xc8\x12\x01\x96iR\xc2\x9aA>\xb3\ \x07\xc9\x06\xd3]\xf7\xa1$\xcc\xb6\xceY\x81\xc8\xe4\xa8\ \x17c\xf4D\xf3v\x0c!C\x0a\x10\x18#\x12\xdf\x07\ \xbcH\xd4\x94x\xcd%\xfe\xce\x1a$\xf8\xa6(\x02F\ \x85\xa2r\x22WW\x5c<\x1e\xab\xe0\x91H\xa2VX\ \x92\xfa1\x8b\x0aNOl\x8e\xb8dQ/Y\xd4\x9f\ \x8b:\xcf\xea\x9e\xa2H\xa8/\xa2\xab\xc8\x03\xd6\xe1\ \xb4\xd6^\xde\xf1\x861\x9d\xf3`\xbc5\xb7N\x99f\ x\xbf\xa8\xe2\x90.$gV\xd9\xbcF\xce\x8d&\xc9\ \xdd*P\xe8i\x9e\x87\x09\x04\xf9\xbe\x117 \x8f$\ p\xe24\xaaT\xf2\x18\x93)\xb1\xedm\xc2\xd3ne\ (C_\x83!\xf97I\xa3\x96\xefeQ\xf7\xff\xdb\ $\xea\xba$Q\x01bexS\xd2\xa3$*\x0e\xb5\ \x9e7~%\xcdD\x86\xc7\xca\x94\xc2\xfb\x00\xa1v\xbe\ \xd1\xe0\x9e\xc7#E\xc7]\x80\xc9r\x0a_ f\x85\ \xb0\xbb\xd0n\xe3\x94\xf0\xeb+\xba\x11\xf7\xe1\xa2\x16p\ q\x01iD\xdfj\xc5a\xc9\x89\xc6\xb1\xf8\x0cCx\ \xb4~\xde\xea\xb1\xa0\xa4\xc27\x0aU\xa4\xe6\xae\xc3-\ \xed\xb1\x02WH}c\x97\x9b\x1c\x9e\xcc\xae\xe3/\xf9\ @Yn\xebB\x05:\x00\xaf`\xdb\xab\xab\xed\xc8k\ V\x07(\xa5{\x97\x1b\xcf\xedT\x0d\xb0\x84-lQ\ u\xc8^\x0ac\x8c|\xee\xacM9\x03L\x9d\x0c\xb9\ \xe4)\xbb\xb2\xa1\xdad\x81^\x9amV\x05\x0f:\xef\ *\xed:\xb6t\x22\x84+2j\x10\x00\xb6O\x9aH\ \x9fX\xb1{$c\x01kN\xc6\x82\xbc\xe0\xdbi\x1f\ \xdfP\x88\xeeO\x0e\xb4\xd2\xffO\xc9\xd8\x15\xf6\xf5c\ 2\xb6\xe6\xd8\x81\xf8(\x19\xbb\xfc*\x89\xcf\x7f\x90\x0c\ S A~\x92\x9a8\xe8u\xb0\xe9&;\x18\x19\xec\ \xe9c\xa0\x1c|\x0cV\xd3\xf9\xebN\x1fy\xabc\xa3\ }\xf1\xc3\x80\x99s\xf2\xe5Ng!\xc0\xdctgr\ L<\xf2\x8a\x15\x92\xbb\xa8N\x1b\xebm\x86\xe96\x10\ \xda\x11P\xca\xb79\x7f%'Q\x83\xca\x9b\x0b,\xfc\ d(\xf3\x89G\xfb2\x7f\x99\xc1\x81\xe4\x84\xc0u\xce\ \x86\x9d\xbeN5\x8f\xc5\xc6a\xd8\x030L\xabn,\ \xee\xc1`(\xc8\x0e\xb9\xb3\xf3\x92y\xdf\x07A\x91\x14\ \x0f\xf3\xdaHp\x80K\x9a\xd8\xb7\x88\xe3\x9d\xb5\xe7\x99\ \xa4\xd9\xae\xa8K#2\x99,\x99k(A-V\x99\ \xe8\xcc\x8e h\x1e\x8cb\x86\x16\xd1a\xb8VhL\ '\x85{\x0e\xbb\xac\xb7^f\xf4\xb3\xecn\xc0\xe8F\ V\x0c\xa8C\xa8\x1c\xee\xa8f\x92\x84Ls\xdb\x91\x0d\ j\xb1\x11\xc6$j\xb3\xc3k|\xf0\xe2\x98\xca\x11\x19\ \x7fo\x87\x0e\xbe[\xf8\xd2\x9f-\xc8\xec\xef\x09\x08\x92\ \xa67\xe6\xb2\xdbx;5\x8eht\xbf\x1b\xb1\xfd\x88\ O\xaf\xa4eK5\x10\xeaH\x83\xc1\x1b\xbaK\xad\xec\ \xa9M\x97\xc2\xe5\xe4\x9c0\xfb\xe6s\x09z`dg\ \x0d\xe5\x05GP,\x83\xe29\x16X \xe7\x00\xd3z\ \x99H\xfc\x0f6\xd38v\xd2;\x84#\x1a\xe13\xe9\ w_\x02\xcc+\xb4\x9eN\x87\xec#\x0f\xda\xcb4\x84\ \xdb\xc5y4\x03z97\x14[8g\x14\xc7\x879\ \xcbv\xce\xf02l\xe27\xbb\xdak\xa4:\x85\x95]\ \xe41VL\x1cL\xa8i%\x81\xf7\xa3\x10\x11&\xbf\ G\xae\xf0\x80dt\x1b\xce\x08\x8a\xc0\x0a\x0e\x8c+\x12\ \xe8\x99\x12\xa8\xc3\xaf\x0b[\x9d\xfd\xb5\x97\xb01\x9e\xdf\ 4\xe4\x83-\xcf\xb0\xaa\x8e\x1c\xf8\xd4K\xb3[\x83n\ \x89\x84\xb2\x1c\x93?'p\x1e\xba$\x94/\x09\xe5\x9f\ 0\xa1\xdcq f:{\x04\xeb\x8a=\xe1R\x92\xa9\ \x92=\x8e\xfc\xce\x8c=\x95\x10T\xc1;Bg\x90\xf3\ \xc9\xbe\x0fn\xf0\x92\x18\xbe$\x86\xff\xff%\x86\xdfx\ \xb8\x90\xda\x83\x9a\x16\xbe,%\x12\x9d\x95/\xda\x04\xef\ \xa2\xfb;\x85\xa9\xd8a\xe6h\xbf\x00\x04\x03\xd3HP\ \x1c\x184\xbe\xfceJ\x8a\x0c]\xd8\x8e\x01\x86c\xc1\ \xfa\x9a\xc7Y\xcb\x1f\x109\x0f\x10\xa0B\xdc\x05+9\ J:\xf6\x86J\xa8\x0dO\xfb\xf6fa\x88\xe0&5\ \xc53\x90N\xec\x01I\x06\xf9K;\xdaD\xc1\xb9'\ \x83\xcf\xc9\x18\xb1\xc2\xde\x1d\xa4\x86\x0cR5~\x9bT\ \xcb\xd7\xa7\xc7\x8d\xc8\x1b=\x1abC\xea\x11\x80i\x05\ \xc6\x8ae\x05\x02\x84&\xf7\xe9*V9\xdd\xf8P\x9b\ \xe2\xd1\xd5>\xa6\xd8e\xeb\x22\xc3\xce.\x0aS\xdd\x05\ \xc1\xb1\xe4\xf0\x81\x8c\xa3\xc4\xbf\xc3\x99F\x9a\xb7\x1d[\ \xbce\x0d*#c\x07\x07\x87\x01\x1a}\x1e((>\ \xb1\xd65\x15\xf6\xae\xde\xc0`;\x03\x01\x99\x8fXb\ \xbbK\xbf\xf1\x0cmIl^e4\xec?\x12BA\ \xb6(\x80vq`j\x99\xd8)\xaa \xfd=7\xa4\ \x86\xd68f\x1a\x16\x1f\xb2+\xc1\xeb\xf9c\x1fX\x03\ wKX\x824\xe6\x0a\x9a\xa9>\xe6\xadl'\xba\xe5\ \x0a\xb6K\x03\xf1\x17N\x1d2[\xf0\x85\xd8q\xbc\x94\ \xab4\x0b\xe5w\xee\x8f@\x01>\x91\x05\xf5\xff\xde\x12\ L}\xe5xH\xc2\x8f\x14_\xad\x13\xe4\xda\xb3\x5c\x92\ \xf0\xff\x8e\x92\xf0\xffx\xa2!\x0d\x9bq\x9a7d\x14\ \x17\xd4>|\xa6\xa7\x95}\x94\x8e\x18\xb3\xe2\x12$7\ -R\x8a\xb0>f\xee\xa8\xfa\x5c\x87[YGVU\ g\xfa\xfb\x81\x84sR\xb4\xf3\xc2\xee\x0ev\x943\xdf\ c\x1e\x96\x97\xcf\x1d\xb5\xf3V\x93\xe2]Wd2l\ \x07\xfdE3\xdbOJ\x1b\x9d#\xdb3\xbbM\x07\xb9\ g\xc7P\x85\xbe:\xc7Q\xe5\xa0v\x06\xd1\x80\xd1\xaa\ t\xceQ\xa2\x96K\xf8\x06\x90\x01\xfd\xe1\xc8Z\x0a\x16\ \x00L\xf1i1Y\x87!H&\x1f4#\xd0\xac)\ >!f5\x93U\xcf=H\x22\x09\x99C\xdc\xaa\xd0\ \xab\xc1G\xe4az\xa5\x1c\x89z\x12\x04\x90\x94\xae\xac\ \x94zD\xa8wT\xe5\x9e\x8bX\xe6\xac\x07\xe5U\xc6\ \x93\x01\xa9S:\xb4\xa7P\x17\x11\xb58\x03\xde\xa1\x5c\ \xea#~\x9a\xf6\x83>\x80\xf5(\xae\xfacO\x18f\ \x89\x22\xa1\x14\xc4'\x99p\x92\xd8\x02(G\x93\xa1#\ \xa1\x90(\x95\x83\x0bV\xe4\x01pY\xd2\xe3\xa8\ HA\x18B\xe8I$\xa1\x03\x010(Q\xbbT\xaf\ \x5c\xaaW\xfeCU\xaf\xe4\xe6=8\xd6\xc1\x9d\xe6\xd9\ \xb2\xb3\x09\xa5F\xa6=\xebU\x5c@aN\x80 o\ \x91\xaf}<\x02K\xfc \xdeG\x91Jg\x87\xa4)\ \xfbM\xe2\xcf\x80\x93\x8d\x08u>\x1esf\xcf\x1f\x9b\ 3\xfa\x94:\x19\x13Jt\xcd\xf8\xf9\xcb\x81\x18\xfd\x8a\ \xed\x1a\xc7\x07\x0de/\x8d.\x85[\x86\xf7V\xd3\xb2\ \xaf\x99\xaa\x94\x81\xb3\xa5\xd7\x024g0\xc8R\x8dH\ \xd0$G\xe2|\xa5r\xb9\x01\x0d\xbd\xb8\x9c\x10\xa4\xf3\ \x8f\x89t\x09\xb3\xe9\xe1e\xb2\xc0d\x97@\x83oU\ \xec\xe4\xf1\xe3\xcd\xdf\xa3\x03\xec\x1e\x01\x1e\x5c\xb2!\xd9\ \xd8+Z\xcf\xcd\x11m\x92tV\xb3K%\xce\xf3#\ \xd3q\xcf\x80\x98\xbe|\x8e\xf1;6m\xfa\xb1\xee\x07\x8b7\xc2(O0\xd7\xa2\ \x1c\xf9\xd7\xa7\x9a\xfc\xfd\xe9\x0e\xf2UX\x80\x1d;U\ \x18\xe1L\xff\xa5~lQ\xde\x1eK r0\xb3<\ \xaa\x84\x85\xb1\xach(M\x7f\xec\x952$I\xc4\xf0\ G}\x8d\x9bw\xda\xde\xebC\x11\x0e\xf9W\xc7\xa2\x0f\ \x83\x87!k\xeb\x10\xff\xd2X5\x90\xa1\xb0\xfa\x1c\xe1\ \x12\xb0\xf5\xfeV\x19{\x9d\xf9(\xb6\x9do^^\xb8e1D\xd7\xe1\x0e,Z\ \xa5\x11\xacQ'5[\x8f\xe60\xb4\xb6-\x12\x98\x8f\ c\xb7\x91n\xa0*\xa5G\x0d\xce\xf0~\x5c{1=\ l}4\xe4.\x8b\xf5\xdc\x8bBfe\xf7\x88'\xb0\ \xbf\x91\x0b\x87\xdc\xfc\xa4\xe4\x8b*\x8eK\xc5\xd7\xa5\xe2\ \xeb'\xa8\xf8\x02(\xcc\xa3\xdd0\x9b\xe6g\x14)\xd5\ \xf3\xa1\xd2\xbd\xe9\xdd\xeb\xc2Q\xd0(\xed\xa8\xa8\x8c\xe2\ \xa5\xce\xc7\xce\xab\xc9ZYO,6U\x902Y\xc3\ \xac\xaaM{#\xc2H.A\x89\xb1>\x9dF\x1f\xd0\ \x90\xee\xb4\xc4\xc7\xc8\x89\xaa\x0b\x1f\x8a\x8e\xb6\x10\xc8\x1a\ \xd1j\xab)\x1aEt\xe0f\x94b\x91\xa9\xf1\xa3w\ \xb7\xfe\x94\x9a\x8ey\xbc\xac7\xa0#\xe8Z\xd9\xfd\xa4\ \x12\x8b2\x8e\x11\xdc\x8e\x9bR\xbb\xc160\xd0\x01\x1e\ \xc5\x5ca\xfb{-\xc1\xa0L\xf7o\xc6\xeb\xd7\xa3g\ 3\xcdv\x8em\xf2\xf5\xa8\xd7D\xc7\x9c\xc7\xe3\x1b\xf3\ \xad\xaf p\x9b\xe3\x97\xe4\xcf\xc8\x86\xbd\xa7\x15%\x1f\ \xa0\xa5\xd2\xa0\x1c\xedd\x84\x94\x98\x06\xb9\xc1\xa3z \ +\x1a,\xd1\xcc\x9c/\x9d\xcf\x03\xb3F\xfe\x86V\xa4\ a\x94\xc9\x15o\xd3\xfad\xaa\x81\xa4\x93\xf4\xa8\xbb`\ \x83\xf5\xfcE\xf5D\xc3\x19\x13\xd5+\xac0\x8c\xce0\ \xda\x99\x12\x95+\x17\xd3e7C\xd0\x02\xc6\xf6\xf1D\ \xa1\x85f}\xb3i\xdd\x198\x5c\xc8,O\x86H\xaf\ \x90\xf4;z\xe7H\x82\xd3\x88\x9cZ\xc6P\xb8\x9cV\ \xc0\xa7\x9b*\xa3\xd3R^O\x06\x8d\x11\xdd\x1b\xf5\xb0\ \x82\x81c3m\x00\x0e\x92;\xf6\xae\xbb\x021\x99s\ \x8b|\x9a\xf7\xc6\xd3\x12*\xea\x0d$\xf1\xc9\xc6\x90\xf4\ AdJh\xf8\x1d\x1f\xa2_\xae70\xf1\x99z\x90\ \xde28\xd1\xf3\x95]\xf2\xf3\xf8\xbaz\xeb\xeec\x0e\ \xa91\x03\xb6\xc8(\xac\xedb\xac\x8392MI\xbc\ \xe2M\xec\xc1\x13!XK\xb2\xed\xb0\xea\xe3\x18\xfdr\ {>\xe8G\x19\xfaf\x1e\xfcQEU\x05m\xed\xa7\ \x15UU@h\x8e\xbf\xcd\x8a\xaa\x12\x19\x83)\x99\x8a\ \xaa\xd2\xe5\xd2\x0f\xdb\x15\xca\x85\xd0!\xa2\x93\xf6\xa4\xa2\ j\xe2;9\x8f\x96\xfb\x06\xff\xc2\x11|\xea\x1d|\x93\ \x96\x22\xbfH\xa8FtE\x0b\x86\xa3YV%\x8f\xc1\ \xfdV\x8bZI\xf9V\xf7\xcc\xc7$;\x9d\xbe\x8b\x1d\ \xec\xd4JY\xfb\xf5s-QN\x05\x15ng!\xbb\ \xb5\x22kW\xdd\xdcB>F\x90\xcb\xe5T\xbd\xe4K\ 9\xd5\xa5\x9c\xea\xdfW9\x950\xc8\xe1\x0b\x13.\xd3\ \x88p\xb9\x19#+5\xb3\xeb\x14~\xa8;\x07_\xe0\ \x18O\xbasP\x02\xbc\x9ev\xe7\xa8\xae&\x8cJ\xa5\ \x12b+\xdd/\xb1\xfc\x90fV\xb0U\xc6a\xb5I\ I[y\x09D\xa2\x82\x16\xa9)N\xca6\xbe\x5c\x81\ \xdf\xc9\x12\xaa\x088\xd0g\x8b\x0d\xc5X\xeet/\xe7\ 1\xa2\xb3\x9et\xa8\x16\x1b\xa31\xc3w\x1cCL\xe4\ Z;\x22\xf9*+\x97\x02\xec(\xb80\x0b\xdbi\xb7\ \xe8\xe7\x91\xb1\x1c\xdeL\x22\x90s\x14\xa5LR\xa0\x07\ \xf7\xb1\x22DZ\x14\x15\x07\xb7WG\xa4X\xf5j5\ L\xab~\xb4\xed\xa0f7P~\x9b|\x06\xc2zK\ \x06\xdcR\x0a\x01\x1c]\x22\x8f\x8f;x\xa7I\xd4\xd7\ \xcf\x92\x8eN[3z\x85/h\xcah\xf23\xbd\x05\ \x9d\xca\xb3B\xd9\x95\x93\x1d\x14&8\xeb\xb2\x22.\x95\ \xdc\xaezdo\xdd0+[\xc6\x8e^{\xe7!\xad\ \xef\xaa\xe7)\x91~\xb8]\x17\xed+]m\xc078\ N\xb1\xaf\xde\x14\xd2$\x9dgy\x92<8\xef\xa2\x07\ \x0e}\x8d\xe4\x80\x81\xc30\xf6I$xlF\xe9\xa6\ \x19\xa5\xd3k\xb9\xac\xaeRb\x11\xce\xb9\x1e\xec\x94\xc4\ \xaaG\x09\x8f$ \x07\xa5Lb\xfb\xe8,\xdeJ\x9f\ \x07\xbc\xa5(#\xbc\xbf\xe4\x22x\xe5\x91G\xa4\xa0;\ Rc\x0a\x14\xa3\x1b\xf3\xb1,\x80\xc6\xf8k\xc5g]\ \x9aI|\x14\xb2\xd0\xf1\xef\xb9\x0b\xcda\x9f`\xf4\xa4\ \xbe\xe5\x5c\x80\xd0L\xc2&\x9a@\x9d\xdcT@\x97\x80\ \x9b\xe3\xe3\x17\xd3\xda\x80\xe9!w\x0d\x8eq\xad\xcf&\ \xa3\x13\xef\x18\xdf\x0c\xcaFd\x9e\x19\xccEP\xc93\ \x9c\x15m;\xa3\xc6\x06W`\xb3+\xacv\xd4\xb0\xe1\ \xb1{l\xe6\x19a[hAt\xe4\xb8\xe5\x8f\xdb\x91\ \xd0 1\xa3 \x8eN\x1du\x22\x07Q\xb3\x01\xd7\x16\ \x8d*\x89\xf4\x8e\xaf\x03M\x7f\x08\x84\x8fU\xcc\xb5#\ \xb5 \xf8\xea\xa2\x0d\x1a\xf6\x970\xc6\xf9@\xa3r\x97\ }\xba\xe7d? \x13M\xd5\xbb\x8dQ#\xe5\x99\x8e\ =\x0a\x09\x8d<\x1d\xf0;\x12rDMNd6\x80\ \x0b\xf5j2*\xd5\x19\x02\x89\xacBE\xd3\x9e\xd0\xe6\ \xaeL\x88\x90\x89\xd2\x8a\xed\xac\xa3P\x8f\x13\xd8\x14[\ \xca\x22\xd0&\x81\x98\xc3]\x114Q\xfb\xf4\xb8+B\ \xd41&Y\xc9\x98\x1c\x1a\xfc\x9c\xdc\x17h\x06\xfa\xe1\ T-\x06\xf3\xd5H)\xe6\xe8\x08J\x19`\x9d\x97\xfa\ \xb5\x7f\x8b\xfa\xb5\x7f\x89\x8d|\x92\x0aH\xcf\xf3\x00\xa08\x1d\xed\xb9;\ \xbd8\x83\xa0HT\xc9\xe2\x94\x06X\xfe\xd8W\ \x85\x83\xd22\xaa\xff(\xe2\xea\x1e\xeb\xe4\xd9\xf8pt\ '\xca\xdf\xfe\xc0\xd4\x90\xd5\xcfT\xa8.\xb4~\xfa\x8a\ \x89\x1eI\xa7%'\xdd\xd8Q\xcb\x98L \x1f\x18_\ F3\x82\x06\x1e\xab\x04\xac:\x97\xb8\x8e\x08\xbb\xb8\xdc\ T\xa25\xc1)\xb1\x97\x17LD)\xdc\x0f>\xf4\x8f\ \x14\xef\xa5\x7fE\xf1\xde\xe7/\xbe\xe2\x0f\xfe\xcf\xe7/\ \xde\xffA\xff\xf9_:l\x198\ \x00\x00\x0b;\ \x00\ \x00Q\xa5x\x9c\xed\x5cmo\xdb8\x12\xfe\x9e_\xe1\ s\xbf\xb4\xd8H\xe2\x9b(\xcau\xb2\xe8m\xd1E\x0f\ \xc5\xddb\xdb\xe2>\x16\xb4D;\xda\xc8\x92W\x92\x13\ \xbb\xbf\xfe\x86\x92\xac\x17[\xf1K\xa2\xa6H.\xee.\ \x12\xce\x0c9\xe4\xc3\x99\xe1\x9019\xfeu5\x0f\x07\ 7*I\x838\xba\x18b\x13\x0d\x07*\xf2b?\x88\ f\x17\xc3\xaf_>\x18b8H3\x19\xf92\x8c#\ u1\x8c\xe2\xe1\xaf\x97g\xe3\x7f\x18\xc6\xe0\xb7D\xc9\ L\xf9\x83\xdb \xbb\x1a|\x8c\xaeSO.\xd4\xe0\xf5\ U\x96-F\x96u{{k\x06%\xd1\x8c\x93\x99\xf5\ f`\x18\x97gg\xe3\xf4fv6\x18@-?\xbb\ \xba\x18r6\xd4\xa5+\x15\xcc\xae\xb2\xaa\x18\xf8\x17C\ \x90\xc3\x149y9\x85\x0e-\xe0\xffQ\xd5SdR\ R\x88\x96:F\x8dA`\x93\x0c^#\x89\x907\xb5\ )u\xcf\x07\x04\x11b \xf8\x8f\xbdi\xb7\xe7\xc7^\ $\xe70.I\x16\xdf\xfe\x90\xcbT\x99\xa0\xb7\xdd\xb0\ Z-\xe2$3\xa6A\xa8\x0aY\xeb*\x9e++\x94\ \x8b\xd8z\xaf\xd2\xeb,^X\xbf'r\x1ax\xd2\xfa\ \xe8\x01J\xd6\x5c\xf9\x814\xa4\x97A\x7fR#^f\ a\x10\xa9\xd4\x5cD\xdd-\xaf\xfcEp1tQ'\ s\xddd\xb6&\xaa%\x9d|\xf3V\x17\xc3,Y\xaa\ \x1d\xfa\xba\x8b\x0e\x9dZ,\xb3oj\x95\xa9\xa8h\x12\ \xe6\xa81a9[cQ\xd1\xf2\xfa`-Q:\xda\ \x90.\x86wM\xb6\x06*]HO\xa5VG\xfd\x0d\ \xfcU\xfd\x0d\xc1L\xe3e\xe2\xa9)4\xa1\xccHe\ \xd6\xfb/\xef+\xa6\x81L?\xf3\x1b\xcd\xac\x00\xd6\xeb\ V\x1fni\xae\x1d\xbb\xaek\xe5\xdcZ\xbaK\x8e \ \x84\xac\xcd|\x97]\xbb\x99\x1d)\x99\xf8\xd3;u#\ b\x81\xc1\x81\x84\x91\xae\xa3L\xae\x8c(}\xd5\xa8\xea\ yUMO;Qp\xa3\xbcx>\x07c)\xc0k\ \x09\xfb\xb5\xf0b\x99\x84\xb9\x84\xefY*Ts\x15e\ \xa9\x05\xe6n\x0d/A~\xec\xabi\xaa\xeb\x15\xfe\xa3\ K\xe0@n\xce\x03\xae\xb6A\x99\x80\xa1\xfa\x01\xd4+\ \xe4\x1a\x06\xe1\xc5a\xa8\xf9\xacS\xd2\xffD_S\xb5#\xf5%\x91Q\x0a\ \x89\xe7\xfcb8\x97Y\x12\xac^S\xd3\xe6\x04\x12(\ e\xf0s\x03\x12n\x87 \xfb\x1c\x9b\xaeK0b\x9a\ Bl\xc4m\x91\xb3\x1919\xc6\xdc>'\x82\x9a\x8e\ p\xf1\x9bJ\x81\xce\xcb1wM\xc7\xc1N\x0d\xa4\xce\ \xca1B&A\xb8\xdc\xe3\xe8\xcf\xb4Sv\xda)\x9b\ \x00\xb1\x11\x0f\xeei\xb2{\xb1v\x9d=\xa6M0\xe9\ \x01\xebL\xff\x1a\xc2>\xf2\xb5\x81\xc99\xaaa[\xe1\ \x1c\x8a\xaa\xbc\xd6e\x0c\xdb>*\x90]K\x91-)\ (\xbb\x14\x90\x82l\xc6\xfd\x91\xe0\xe4\xf1q/8\xac\ Op0\xa5\xe7\x0e\x02\xdb\x83\xcf\x16F\xb6\x89\x84k\ \x13\xdcF\xca6\x89\x0b[\x11\xd6F\x8a\xb5\x80\xb2\x89\ icd;u\xd4\xf8\x01\x1e\x9bG\xc0}\x1eK\x9d\ \xde<\x16\x9f#\xfd\xcf\x84<\xd6!\x14~\xc5\xdc\x14\ \x0eE\xbc\xed\x8d\x84\x99\x82:\x98\xf0\x967Rn2\ \x1d?\xda\xde\xb8+;\xed\x94Mr\xcc9c\x0e\x8c\ \xe7\xa7\xc2\xe9\xbe\xc0\xd9\x1f\x9c\x0e\xb1_\xe0\xec\x13\xce\ \x17g\xef1\xdbqH\x7f\xce\xfe\x92\xed\xec\xcfv\x1c\ \x8a\x1f\x8e\xf5s\xcdv\x1cJ\xfb\x04\xe7\xf9f;\x0e\ {YOz\x85\xf3e=\xe9s=a/\xeb\xc9\xa3\ \xad'\xf6\xcbz\xb2\x07\x9c\x97\xf5\xe48\x8fu{\xb0\ \xa2\x17\x8f=\xcec\xdd^\x8d\xf2iy\xecapz\ Hl\x9e*8\x07\xc3\x99\xdbC\x9a\xf2\xf8\xe1\xec\xf1\ \x81\x12\x08\xf5jEL\x19\x10\xb9\x90\x89\x5cF\xf8\xd3\ \x82\xea\x90\xc3\x09\xd4C4j\xa5\xbe\x10\xf2\x11\xa3B\ \x87z\x06\xe0 \x1d\xf4\x1dl2N\xec'\xe3\x89\x87\ Q\xe3\xfd\x86\xa9\x0a)\xd7\xd1VF\x7f\x10R\x8f\x9f\ Y\x08\xf4s\xf6\x02\xd8\x81\x9d\x10&\xf8\x9c`\xc81\ \x5c\xe6>\x87\xccB\x7f\x1bh\x9fU\x92\x1e}\xd9\xc4\ \x88\x12N6.m3\x17;\x00+\xa7&&D\x80\ Ks\x93bL\xc5\x96\xa5:z\xafJ9m\xd9\xab\ `&\xe1\x94\x09\xb7m\xaf \xeb0\x9b\xb4\xa3\x22D\ D\x93\xb9\xcd?\xe5\xff\x8c\x05\xa4\x8f\xf3\xfa\x9d\x05\x84\ \xf0\x1f\xbf\x82\xfc\x04\x0f\xef\xe3D\xf3!\x1e\x8e\x05\xff\ \xbf\xf1p[\xd9vP\x86\x99\ \x898\x16O\xcfA\x0f,\xc6\x94\xd1\xfe\x96\x10X\x0b\ \x08,\x94\xf6\xd6b\xcc(\x87U\x1a\xbbO=\xdd\xd6\ W=\xf6 )l\xd4\x1e\x96h\x8d\x87\x91}\x8ed\ \xe0^\x0f{\xf2\x03\xc3\x03X\xecm\x80\xb6\x8e\x1c\x1f\ \x0a\x9b\xc1\x0f\x00g\xd0\xc7\x80\xee\xa1\xc6\xd1}\xfd\x07\ \x06\xf7x\x17\x80\x8c\xfao\xa2\x8fq\x05\xc8\xd8\xff\xed\ \xf0\xb1\xa5/V\xe5\xbfU\xb7\x08\xf5m7\xff&P\ \xb7gUk\x13Y\xd9\xedB\xceT\xde7\xb0\x93\xe2\ \x9b\xeb%c\x12'\xbeJ6,\x9e\x7fZ\xac\xb2\xfb\ \xfa\xb6#v9r\x04\xdb\xd8L5o\xba\xf1\x86\x18\ \xea\xe2\xa7W\xd2\x8fo/\x86d\x9b\xf9=\x8e\xc1\x03\ \xd869\xff376\xa9c\xefp@\x89\x0d\x91\x8d\ \xecr\x96I\x02\x08\x19\xa1\x5c+\x18M\xfec\x83p\ z\x15\xdf\xce\x12\x8dJu\x0f\xb1QSs\x8c\xc9$\ ^u\xb3\xfd\xd8[\xea\x8bn\xc6\xb2\xb0\xef\xc5\xaa\xb3\ \x81E\x1cD\x9a\xddhb\x1a\x84\xa1\x86\xdc\x93S\xaa\ \x9a]Y\x06\xbe\x02\xd1\xa9\x0c\xd3\xdd\xdeh\xe6nw\ rr\x16\x87\x0a\xa2\x85\x07\x06\x87\xabn\xa4Y\x12_\ \x03\xe5\x95C\xdc\xa97\xddn\xef6\x88\x00{\xa3\xbc\ \xed\x8a\x19\xdb\x99\xa1Rbs\x03\xb6c\x8eK\x89U\ \xed\x22\xdb\xacu\xcd\xd2#,\xac\xa7\x1bO\xcdo\x1a\ EC\xa6\xa8V\xce`W\xddR\xdb\x5c\xae\x82y\xf0\ ]\xf9\xb5\x13\xd5\xcdGr\xb1g6s_\xb8R\xde\ \xb5J&\xb1L|\xdd\xef\xd2\xd7*o\xca\xb1\xde\xf8\ f\x9ch\xc7\x93Y~E\xf5\x0aJ\xdfc(\x86\x95\ \xef.\xe24(\x98T\xc0\xc6\x8ds\xd6^\xfa\xf3\xc6\ \x08v\x1b\xd9\xdaC\x15\xb9&\xc2\x0c\x89\xc67y\x9a\ \x8a\xf8I\x8anT\x92\x05\xde=\xd4\x88\xbe\xd4h\xd8\ \x1c\x1b\x0b\xd6\xa1\x86 \xd4\x1fl\x84\x98\x90f\x92\xad\ \x0d\xc1F\x11\xe9k<\x84\x9a\x90\x159\x82w\xaa9\ \xcd\x0c\xf6\xa8\xc1\xb6\x03\xe6\xc6p\x87\xb51JO\x1b\ \xcd^\xd8\x0c\xc8$\x11\xe4\x98\xacc@\xa0\xa9G\xbb\ 6la\x22\xd8xt\x18\x1c(\xea\xcd\xae\xb1\x80e\ \x0a\x11\xd1\x8d\x5cov\x8d\x11L\x10!\x9d\x13\xa4\xa7\ \xad/5\xc45]\xd8\xe6v\xabq\xfb\x9b\x1d\xec\xea\ \xf0&\x9c\x8e\xd9\x81\xed\xe8i\xb3\xb3W\x11\x87\x8d4\ u\xb9\xd3\x11\x10l\xdc\xe7\x88\x18D8\xce)\xea\x1c\ Q\xf3n\xf1\x83\x0d[\x80\x0b!\x07s\xd1\xa1I?\ 1\xd1\x9f&\x8c\xc0\x87\x5c\x84\xdcNM=\x82g\xe8\ \xe3Bl3\xd2\xa1\x09\xf6\x9b\x0d\xf4ZyRS\xf6\ w(\x7fH\xe2\xf9\x1f\x89B\x8c\x7fVY\x16D\xb3\ :\xf3\xcf\xd6\xfa\x81\x87\xd5ZW\x1b6:8\x0b\xa2\ U3Y/H\xeb&I\xbf\xfc\x00m\xad\x9aIv\ I[7i\x9b\xd4\x97Ni\x9d\x15\x0f\x06j\xbe\xb8\ \x83\xd3L\x88\xed\xa6|\x83AE\x93Q\xaa\xad\x93\xdf\ \xc1\xe0&H\x83\x89\xde54\x12\x14\x90\x8d$\x10\xfd\ -\xaaNgJy\x8d\x83\xde\x0e\xa4q\x14n\x9e\xd4\ (@\x1e[\xbb;\x81\x9c>W\x99\xf4e&\xebm\ \xc1\x86\x82)\xde\xdc\x0b\x1d'\xfet\xf4\xe7\xfb\x0f\xd5\ \x0e\xc7\xf3F\xff\x8d\x93\xebzw\xa2\x05\xe4$^B\ vXm\xbb\xf4s\x0f\xdeHoaev\x19\xcc!\ \xad\xd2\xcfS\xfc\xb2\x9a\x87\xb0A\xa9\x18-a=\xa1\ u\xa3E\xb3\x89*^\xdc\xe8|b\xc2\xf7\xe6\x81\xae\ d}\xce \x95\xfe\xa8\x954vbE\xa3\xf9\xfb\x15\ qr\xd9hX\x0f\xe0\xddLEY\x93Xv!\xc8\ Bu\xf9I.\xe2\xc1o2\x94s\x19\xf9\x89\x0a\xf2\ \x1e\x17\xacf3\xd6n;\xb9\xe4\x8eJ\xad0\x0c<\ \x15\xa5\x87\xc7\xd7\xf5\xdeFY7\xb5&k#\x95\x16\ 1\x91\xb53\xcet9\xf9\x0b\xf6\xc7\xad\x0ej\x05\xff\ \x94\xb3\xadajj\x18\x5c\xe6o\xc0\x8c\xad\xb2\xd4)\ \xa2w\x9c\xfb%\x16\x90\x8cO\xa4w\xbd_\xea\x06|\ >\xde/2_\xa6\x81\xd7%R\xd0Z\xa3\xc8A\xde\ \x19o>\xd9\x10\x8d\x92`\xb2m\x1b@\xc3kN\x9c\xfb\xb6e-T\x02\ n\x90\x1e\xb4\xac[517\xc4\xbci\xcf\xb3\xfeT\ \x8b$\xf6\x97\xf9C@m\x93z`\xc3\xef\x83\xb4@\ \xa5\xab\xe1D\xfd\xbd\x0c\xa0\xc6\xbdZ\xfew\x0c\xa9\x8e\ \xea\xb7\xcdw\xd9\xdd\x9d}\x10\x0a*\x09n\xf2)\xd5\ \xd6\x90\xf6\xdb\xe9\xcfW2Q\xef\xc2\xe0\xba\x09Fn\ z\xa5\xa9m\xce\x88\x1a\xf1{lm\x02|^\x9a\xd5\ \x81\xbfu R-\xc9\xa1\x9c\xa8\xf0b\xf8I3\x07\ ;\xdcY\x12/\x17\xf3\xd8We\xf5\xea\xc4!?\xf3\ \xf2\x83T\x87\x87Q\x10\xe9Ui\xbb\xee\xd6{Pm\ \xce\xba\xc5\xc9\xba\x0eC\xf5\xf5\x877\x9b\x15j\xd6J\ 1\x1c\xd1x\x85$\x81 Q\xc3[vM\x9f\xbcT\ \x07q\xba\xd0x\xcc\xa08/\x19\xbd\x22\x8a2\xca\xcb\ bq>2\x22\x9b\xa2\x1e\x11tv\x94\xfe\xbd\x84I\ hR\xff\x8a\x83h\x04\xb8D\xfe\x86\x0a\xd6\xa3\x920\ \x80\x1f#\xb6\xa1m\xab3|\x99\xc2t&\x00W\x14\ G\xaaI-\x8e\x03G:C\xd4\x1fZo\xb3\xca?\ ?\xc3\x00!Gm\x92\xcb\xc3\x9c\xc6\x81|\xfd\x80Y\ \xe3\xef\xfc\x83\x01\xcc\x80\xdd(\xaeu\xda\xd6z\xe9\xe2\ n\xf4`\x19~\xbds\xaal\xa37w\xc1Y\x9dz\ \xde\x03\xce\x1c\xc1\x1f\x05\xe7\xdbN;\xddF\xb7q\x18\ ^\xe3\x8b\xba\xf0em|\x9dm|\xf1q\xf8>U\ \xeb<\x16N\xfb\x9e\xf6J{6X\x83>_\x935\ \xba\x82\xc21FK\xf7X\xed\xd8\x9a\x15+\x09\xfc\x18\ \xeb\x9c\xfe\xf2\xec\x7f_\x14e\xd7\ \x00\x00\xc7.\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a <\ metadata\x0a id\ =\x22metadata16\x22>\x0a \ \x0a \ \x0a image/svg+\ xml\x0a\ \x0a \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \ \x0a\x0a\ \x00\x00\x0a5\ \x00\ \x003Ix\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x04\x15\xa9\xbd_\x14;\x07\xc5\x09N\x11 \xc5\ )\x9a\x04m\x9f\x0c\x9a\x5c\xcal(R )[\xca\ \xaf\xef,E\x8a\xa4L\xd9\x92,\xbbi\xeb\xc4\x96v\ g\xaf\xdf\xcc\xcem\xf7\xf2\x97\xd5Y\x5c\ \xff5\xf1S\xf3k\x16\xa7A\x1c\x9a\xb4\xfc5K\x8b\ 2\xf7\xe3\xb4\xf4`\x05U?\x80(-\xa6\xcd\x94W\ \xa3};\xb4c\x16\x0b?0\xc5\xa4\xa9\xef\xf4of\ \xdf\xf6o*\xbc\x22[\xe6\x81\x89`\x08\xe3\xa5\xa6\x9c\ |\xfc\xfaqKt\x91\x17\x96ag\x98U\x02c\xf7\ \xd6pO\xab\xd9\xb1\xd6zRQ\xdb\xd6C\xed\x08B\ h\xd2\xdf\x1a\x94\x0el\x99\x87\xd1\xde\xb9\x11\x99\x00\xde\ \xd0\xc2-\xd6i\xe9\xaf\xdc\xb4x\xd3\xe9\x1a\x04\xdb\x9e\ \x81\x95\x9c\xf8\xce\x04\xd9|\x0epo\xc0\xeb5\x0e\xdb\ \xc6\x8be\x9eT-\xc2`b\x123\x07\x1e\x15\x13\xe0\ \xf6d\xf4\x01\xda_\x86&*l\xbf\x8d\xd0\xd8\x12H\ \x8d\xach@\x058\x8c\x9f\xff9\xf7\xc3\x18\xfam\xda\ mZ\xf6)TI\x5c\xf7\x81^E\x99-\x9a\xb6 \ 6\xe5:\x01\xae\xdbJ7\xc8\x92,\x9f\xbe!\x00M\ \x14\xbd\xaf\xaa2\xe0x\x5c\xae\xa7\xf8\xfd\xa8\xed\x93E\ Qa@\x9eQ\xa7\xae\x12j\xe8\x01s\xd1\x9139\ |\xb6(\x8a\x82(8`6<<\x1b\xdf\xcev9\ \xe9o\xfbh\x94\x04=\x02\xa5(\x02\x01B'\xa3$\ \xf8\x91(i\xe3\xab\x93Q\x12\xf2)\x94\xe6~\xfe\xdd\ \xe4[t\x1a\x0d\x04\xdd\x83\xefv\x9c?\xe5yvO\ >\x9b4\xdcN\x90\xe5\xb6?\xe8\x99e\x99m+s\ \x13\xfd\xb3\xbbg(\xff\xa3[\xde3V\xbd\xe5\x0c4\ ^\x94d\xf7\xd3\xbb\xb8\x88o\x12\xd3\xf2c\xe1\x97\xb7\ \xfd\x9d\xd9\x1a\xc6%\x1b=\x00.\x8a\x93\xc4\xcd\x97\x89\ \x99\x9a;\x93fa\x08\xb8\xe5\xd9w\xe3Vjy\x8a\ \x02%\x14>\xcb!\x12\xf8(\x94d\xa8p\ \x84O7\xf5\xf4\x8c(\x1d\xe36>\xd3!\xe2\xc7\xba\ \x8d\xd2Hs2J\xfcI\xb7q{P\x17\x10\x84-\ \xe0\xa4\x82K\xbfUPM\xacU\xaem\xc8\xd4oJ\ [\xe3\xd1\x06r\x8b\xeb\xd5\xd5\x88zB1\x22@\xc7\ OA1!$\x84\xd6\x04\xbe\xe3\xc1\x0e\xeb\xab\x91K\ \xa4\x07&\x83\x83\x19\x98:.\xe3\x1e\xd1R1\xb6\xb7\ \xcb\x0f\xe8\xc2\x04\x18 .%\xb7]0\x18\x18\xae\x99\ \x10\xc3]\xea\xf5\xba\xa0\xbdg\xb1\x0d3\xab\xd5\x80Y\ \xb4?\xb2\xdf\xc7*\xd9\x16\x09\x8a\xb4h\x11|\x01\xac\ \x5cL=F\x05\x11\xd5\x92\x98'\x89-<\x06\x16\x02\ \xa2\xe6`s\xed\xce\xd1>|\x18\x03&HI\x9f\x1e\ \xf5\x018\xdc\xba\x0b\x92Z\xf8\xb5'(\xa7\x5c\xab'\ 0b/\x8bQ%\x09\xe8)P0\x1c\xcb\xc7 !\ \xea\x91a\x06E\x84\x1d$!\x18\x0f\xed\x1e\x0c\xb5k\ \xa2\x08\x1a5\x1d7%8\x99\xdf!\x02.\xfd\xa4?\ b\xdb\x9e\xc2\x81ii\xc5u\xed\x16\x5c\x8d\xca|i\ \xb6\x04\xe8P\x9a<\xb5N\x1b8F\xf0\x0b;\xc3\xa8\ g\xee\x83l\xb1\xde ]\xc4\xd6\xf7\xb8\x06\xabn\xca\ \xe0\xd6\xb4H/\xf2lq]\x99\xf1\xae\x06\xa9*\xae\ \xd7\xd7\xb9I\xc0W\xf0\x93\xa2\x9d\xd6\xa6F\xaa\xb4R\ \x0bs\x0a\xbe\x80\x9f\x5c?T{%x<\x03\xd5\xd5\ \x9c\xcb4.\x8b\xdd\xc1\xc1\x11*c\x98\xfbz\xbb\xb9\ >=Z\x16\xe6\xba\xcc\x12\x03.H\xd0w#\xf6(\ \xfb\xd6\x0bI\x92\x0a|?\xb9\xf7\xd7E\x0f\xfa~W\ \xd0#\xf2\x18\x9bi\x7f\xe8\x89\xd6\x00\xe6\xd2Gz\x16\ \x0fgC\x87Z\x03\x09\x9e\xfbY\xc2c|\xd6\xc8h\ w\xb4\x13\xbdb\xaa5\xdf\x8df\xec\xc1\xe0c\x97\x83\ \x81 \x1e\xaf\x0a\xbc\xaa|9\x97\xb8\x8eW\x90\xa7\xaa\ x\xc5~\xc2\xa9|\xb5\xa0\x15\x7f9_\xe6\xa2?\xd6\ \xa9\xc1\x0a\xc2\xe8\xe7aK\x15\xaaT\xf9\x84*f\xc1\ \xb6\xf4z\xac9\xeb\xa9\xf9r\x9e|\x02\x82h\xe3\xa7\ aO\xc3\x1d\xfb\xf9\xaa\xbc!g\xe5\xcd\xeeh'\xf3\ \x86\xf0\xc3\x11\xff\xdf\xc9\xf5 \x8f\xd6R@\xed9\x15\ \xfaU\xb3=\xbf/\xcb\xcf\xe7K\xf7\xf4F;U\x0e\ 0\xdd9\xa3\xff\xd9|Oe\xdb<\xf5\x0a<\xf9\x18\ \xfb\xf3,\x0d\xcf\x93\x8d\x1f\x1a\xec\xe4\x93\xb9\x9b\x81\xb3\ Z\xd3\x95\x1e\x92\x18I\xa1\x9c\xfa\xab\xd2\xacr\xcd7\ %\xae\xb4\xb3\xf9\xc6\x04\xa9\xea;=^\xd5#q\xe1\ d\xbe\xca\xa1j0?\x93v\x1d\x1e\xeed&*\xfa\ \xdf\xcc\xc4\xd7\xe2a\xed\xa4\x9f\xd1\xaf<\xc7\x11\x04w\ _\xfd<\x8e\x8b\xdb0\xa6\xfa\xe2\x9e\xc9\xe3?<\x81\ \xa9\x8f\xbb\xd1\xb5?''0\xf5\xb17\xba\x0fg;\ 8d\x85\xd9NM\x86?\x15\xf9W\x8f,\xa6\xb7 \ \xa5W\xa37\x03)\x80\xfdpC\x1c\xdd*\x8e\x15\xae\ 2f\x123\xd5\x9a\x845T\x12\xf0\xa4\xb4\xa6\xb2\x1d\ iE\xaeF\x94y\x98\x0a\x82Z\xd9]\x93\xa1\xb6\xb3\ z\xaeo\x9b4\xc9\xb20\xf9\x17\xfb(\xe5\xf7\xf4[\ a^4\xd9\x86a\x816\xfdgs^\xc2ST\x22\ -\x9f\x9by\xa3\xd8\xd3\x0a\xdcK\x9b\xc7#\xc8cX\ (\xc2\x0f\xcfFJ\xe8P\xa5y\xb9\xc7\x01&\x85\x9f\ \xca\xc7\xb9\xf4\xd9\x89\xa1G\xc4\xa3\xba{x\xec4\x0a\ \xdd\x13\x0fB=\x0aq\x16S=\xf9\x00p\xa1J\x08\ \xd6\x97\x0f\xedQ\x81\x18\xe5=\xf9x\xd8\xf6q\xf9\xd8\ m\xf5\xb5UX\x95\xeeJ\xfc\xd2\xbcu\xc1~\xb9\x04\ \xf4\xd4\x8bB%\xf1\xa3Pu\x8f\x07\x80\x02\xfe,\xb7\ \xb9pDv\xb1\xc2J\xc8\xceX\x16+\x88J z\ %\x9a\xedb\xb5\xd3\xf6\x0cXq\xe9)\x81\x95\xc6\x87\ !6p]\x89\x85\x8b\xf6\xe9\xe8\xf6\xea\x0f+W<\ \xa1\x88\x07T\xac\xf2\x0d\xa1lG\xa1\xefW\xd2\xedt\ \x04\xb9\xe4\x09M\xc0\ \xed\xaf7Z\x95f-\x00=\xa9\xdf\xb27\xf1o\xec\ \xc5\xdcgKt\x1ePgy\xb6\x5c\xcc\xb3\xd0\xd4\xdd\ kz9d\xd7\xd0\x98\x92w\x0d\xb2\xb3\x9etH\xdc\ \x89)\xf2\xce5f/\x84\x9a\xbe\x01\x03\x1c\x05\xd1\xfb\ *\x9ej\xa3\x89\xc7\x82)\xe2!\xca\xb4D\x9ct\xf3\ \x94\xb0\xf6M\x9ar8y\xd9\xd4\x02\xc6&O\xe0t\ \x94S\xd6\xd4\x85>(\xa4<\xf7\xd7\xd34KMG\ 1\xdb\x8d\xd8\xa53\xfb\xc2\xa3\xad\xae\x0f6\xa3\x1e\xa1\ \x04#\xdd!5'\x9a1Or\x89e\xd7\xdd\x5c\x0f?\xde>}\ 7\xfc\xc3\x87\xbf<^]~\xbc\x19\xfe\xf0\xdd\xd3\xd3\ \xc77\xaf_\xff\xf8\xe3\x8f\xd3\xad\xbe9\xdd?|\xfb\ \xfa\x8f\xc3f\xf3\xe7\xdf\xfd\xee\xab\xc7\x1f\xbe\xfd\xdd0\ \xd0\xb7\xae\x9f\xbe\xfb\xfaU\x0a\xef\xdf\xbf\xc2\xf5w7\ \xb7\xdf~\xf7\xd4\xbd\xf1\xc3\xed\xcd\x8f\xa7\xf7?}\xfd\ \xca\x0cf\xc89L&d\x97\xb7\xaf\xf8\xa6\xdb\xeb\xaf\ _\xd1\x80N\xbe\xb1}\x0c+\x9f\xea\xef\xbf\xe9?\x99\ \xdc\xf0\x07si\xcc\xd5\xbb\xe8}\x1d\x07g\x9c\xdb\x18\ \xfa_\xf8#\x7f\xe9\x91\x1e\xfe#\xfd\xff\xcd\xf5\xfd\xd5\ \x87\xcb\xf7\xf4\xccg\xe7\xff\xf7\xd9\xfd\x87\xc7\xa7\x87\xcb\ \xdb\x0fO\xff\x8d\xa6u\xf30\xd1\x8f\xf2\xdd\xb4|\x1f\ \x1e\xdf\xb4\x1f\xfa\xfa\xd5\xa7\x9e\x1e#=~\xbc\xbc\xba\ y|\xdd\xde\xef\xbe\xdf~s\xfe~{cz\xbc\xff\ \xfe\xe1\xea\xe6\x1d\x0dq3}\xb8yz}\xfe\xcf\xe7\ \xf3\x87\x1b3]?]o\x87\xd9\xf9\xf5\x1f=\xff\xae\ 3\xc6\xbc\xde\x9d,]}\xe6\x9d\x0f\xd7\xef\x0e\xddi\ k\xad\xaf\x8d{M\xebFwl\x1e\x7f\xfe\xf0t\xf9\ \xd3\xe6\xc3\xe3\xef\xbb\xaf^]\xcd\xdf\xbc\x02\x9d\xdc\xfe\ psu\xff\xfe=-\xa3,\xc7\xce\xcd\xd7\xdb\x9b?\ ~\xffp\xc7w\x5c_\xbd\xbe\xb9\xbby\x7f\xf3\xe1\xe9\ \xf15\xed\xda\xebW\x7f\xa6\xfb\xbf\xba\xbey\xf7\x88\xef\ \xc9\xce\xe3*\xf0\x07\xf4\xd1\xdd\xed\x87\x9b\xcb\x87\xff\xfc\ py}K_\x92\x9b\xe4\xb6\xddOb\x0cV\xbfC\ \xdfz|\xba\xff\xd8\xee\x1d\x86\xfbw\xef\x1eo\x88\x08\ \xcd\xab\xed{\x8fO?\xdf\xd1\xc6\xe2\xc6\xcd\xd5\xfd\xdd\ \xfd\xc3\x9b\xdf\xdf\xf8\xeb\x9b\xebo\xba{\x98\x0c\xe9\x06\ \x1a\xdb\xbf\x1a^?3\xba=>z\xe5?\x87G\x8f\ \xf3\xe8_\xbd\xde}\xac_\xb8\x0a6\x95\xe2_\xb8\x0c\ \xf6\x12\x7f\x0fL\x14\x83\xc7\xbf\xdf:`\xf8\xfc\xdcB\ \xe0\xea\xf2n\xb9\x10\x0f\xf4\xab\xaeL~g\xe4o\xf5\ \xa6\x7f~\xb8\xfc\xf0H\xac\xf6\xfe\xebW\xef/\x9f\x1e\ n\x7f\xfa\x83\x99|2%\x8ef\x0a%\xa64\x12\xc7\ \xd9b\x03\xde\xf0\xb1\xd88\xba\xec\xa6\x9aF\xeb\xd3T\ \xea\x1f\xe7\x11\xaf~\xc2\xef\xa4)\xa6\xed[?\x7f\xfd\ \xcay\x1a\xc8\x1d\xfa\xe9\x7f\xf9p\xfbD\xfc\xfb\xfd\xe3\ \xcd\xc3?AJ\xfc\x97\x0f\xff\xf2x\xf3\xaa\xdf\xbe\xdd\ \xe7I!\xd7_\xb6{m]\xbf~\xf5\xfbw\xef\xde\ \x1d\xa2\xae\x5c\xdd/\xdd\xb3n\xd0\xab\x1b\xfa{\x90j\ s\x0d\xddf\xed>\xc7Q\xaa\xfd\xd9\xd1\x92e?e\ \xd3/\xd9Ox\xb7\xc6\xc9\x92\xbc\xb2\x9f\xb5\x87\xc1T\ [G\x83\xbfSv\x81\xb6\xcf\xb9H\xaf\xc6\xea'\x97\ \xcav\xdb~\xb6\x87~\xf0\xf3\xf6\xe8'\xfa\xae\x8f\x13\ ~\xaa\xfb\xee>\xe3\xa5\x90\xd2\xea\x9d\xbb\xf2W\xfe\x9b\ \xeb\x03\x8bL\xf4`\x9e\xdf\xbc\xc9\xd9d\xf3'\xc9\xe2\ \x1b\xfa{\x88\x9di\xf0\xcf\xa0\x8c)xg\xd2\xa7\x06\ \xbf\xfe\x86\xfe\xe6\xc3\x83\xffbQ\xd1\x8d\xfbM\xa1\xbf\ \xe6\xf0\xb8\xcf\xca\x88O\x93\x9dOi\xaa\xa5'0\x90\ \x9d\xb7f\x8a\x9fGr\xd9\xd8\xa2$'\xafY\x1c\xd4\ \xd1\xd1\x10>\xec\x92\x9c\x0fv\x0a\xf1\x97\x93\xdc\xe3G\ \xd2\xac\xd7\xffx\xf3\xf4\xdd=\x04\xc4\xcd\xbb\xbb\x9b\xab\ \xa7\x1d\x82\xb44r\xb5G\xa8\xd1\x1b\xefVS\xe3a\ \xe9\xec\x8dK\x9fA-\xf5\x17J'\x1f?c\xd4O\ \x92\xc9\xe1Ai\xaa\xe59\x1aa\xc5\xd4\xbe\xfa\xf43\ l\xbc\xa7\x9b\x9f\x9e^_=>\xee\xac+\xdfW\x9c\ !{\xe4\xab\xff\xf0\xdf\xcf\xceO\xfe\xf9\xe4\xbf\xf3\xe7\ \xff\xeb\xbb\xfb\x0fO\x9bw\xb4{\xc3\xff\x18\xf4\xf5\xfb\ \xdb\xbb\x9f\xdf\xbc:y I8\x9c\xde]^\xfd\xe5\ \xd5\x9f\x1e\x1f\xae\xde\x90\xed\xf3\x87W\xbf\x7fK\xf7\xfc\ \xc3\xb9y\xf5\xc7\x01Du\xf9\xf4\x072\xca\xfe\xf8\xff\ \xf1X\x13\x19\xa1a\xf8\x1f\xf4\xdf\xfb\xbf\xdc\xbc\xf9}\ v\xf1$\xba?\xc9\xe5\x86-\xea7\xc1M\xa1:\xdb\ \xde\xc43\x91\xb1\xf9\xe6\xe1\xfe\xfb\x0f\xd7\xfd\x9b\xff\xcf\ \xfd\xed\x07yw;t\xdc\x0e}vq\xf6\xf6\xdc\xec\ \x0e]\x02\xf1Dq\xdb\xfb\xfd\xf1\xa9T\x0b-\xe9\x9f\ \xfbU\xf7\x8bG\xf9\xec\x072\xc7\x87\xb6\xd9N%\xb9\ \xe7F\xb1\xbfx\x94\xcf\x9b\xe0\xbb\xdb;zv\xfa\xef\ \xdd\x9b\x0f\xe4\x5c\xfd\x09\xaf6\x0f\xdf\xdf\xdd\xe0\xf2\xaf\ 7\x0f\xf7\xdb\xfb\xaa\xde\xf7\xfb\xb7\x17\xf8\xbb\xfd \xb4\ \x0fb\x8a9\x96cc\xe4\xf9\xd6\x8b\xf86\xd9c\xb7\ \xa6vkN\xb9\xe4\x93c\xb7\x96v\xeb\xe9\xc5\xe9\xdb\ \xb3\xa3\xa3Z\xd3\xee\xbd8\xf7\xce\xe7c\xf7\x9a\xdd\x07\ >vk\xd4[\xc1=\xbf\xbf\xbd6\x7f<:\x87\xdd\ \x9b\xed\xd1\x9b\xfd\xee\xcd\xee\xc8\xcd\x1f\x9e0cp\xf7\ \x8f\xec\xc8\xbe\xa9\xc6\xfc\x89\xaf\x1fo\xffz\xf3&\xe5\ :U\x93\xfe\xd4\xf3\xff\x7f\xec\xf8\xff?\xf28\xff\xfa\ \xaf\x7f\xfe\xea5\x0b\x925\xc2\xc7-%\x0f\xb3\xa8\xef\ \x98\xda{w\xe6Nv\xa9\xd7w\x8c\x18J'\x00\xea\ Y8;]\xdc\xbb\x8a\x09]\xc8\xdd\xb0\xe5\xcc\x9f-\ \xa70\x91\xdb\xe4\xd7\x89,\x1f\xfc\xe2\xf9\x96s&C\ \xaf\xf8\xd8\x7f#<\xf7\x0d\xf2^\x0e\x88\xadon~\ \xb8\xb9\xeb\xc6\xf1\xe5\xf88a2\xd1\xda\xd2/D\xea\ \x16\x22\x9f\xb9\xb3\xba\xf7\x8djb\x5c\xb7\x10>?7\ \x1d\x1f\x8d\xaf\xfdB,I\xe3\xc07hc\xfao\x98\ \xe7\xbe\x91\xacq\xe1\xb9\xa5s\xfd/\xd3B\xd8\xb3\xb2\ 7\x8e\xcfe%A\xb8\xe7\xe6\x98\xab\xf5\x9f1\xc7\x8e\ L\xce\xd2\x999K\xbb\xe3\x90\x07R\xa2\x09+7+\ \x1d\x9fd\x9c\xbc#\xb2\xed\x1f\xcb~\xd67\x9e\xff\xe5\ \xban\x9c\xc5\xf2\xd8\xd4\xabmR=9/\xc7\x09\xd1\ \xe5\xb4ry\xc2qA\xf4\x92\xc1]/1\xce\x22)\ \xad\xb8\x1c\xa1\xb9\xef-K\xc9\xc6\xac\ \x14\xe1\xde\x1e\xd7\x93y29\xacd\xd0\x98v&~\ \xb2\x9cx\x9e,6t\xe5\x92wqq\xc5\x14\xbb\x1c\ \x9c\xa8<\xad4\x9f]:\xae\xf9i\xf0\x1c\xe3:S\ \xce\xf6Nl\xf1\x87f\xbe\xde\x08u}\xb4\xe2\xf4\xe2\ \xb4\x9c.x\xc8\x9a\xc9\xda\xb0\x96Z\xe2\xce\xcc\xedr\ \xe64\xb8\xcbq\xed\x9a\xc7\xe3\xaa\x1fq\x7f[\xd6\xae\ y\xa7@K zY\x86 \xcdD\xfb\xb9\xd2N\xec\ \x9d\xad\xd3\xf3\xd3|z\xbe78\xd9\xa0+\xd5P\xef\ l!\xaaR\xf6\x97\xa5\x04\xb7\xd26w\xe1\xb8\xea\xc7\ \xe0kC\xc7\xb6wYJ\xa2U_0\x91\xb5\xd3z\ \xd1\xe2\x17K~\xb67\xb6[\xaf\xe4\xfcq\xedL\x83\ \xfb\xba\xd2y\xb6\xbdSQ\xf2\xc1U\x09f\xa5Ad\ {\xf3\xb9 \x08\x17\xf7\x06O\xd5\xadtA{G\xee\ \xf4\xec4\x9d\x9e\xee\x0d\xbeZ(z\xe7\x8e\xabg\x1a\ \xbc\xfa\x95\xd6so\xe0\xd2\xaa\xa4\x92\xf6\xc7\xcei\xe5\ \x92\xf7\xa6\x5c\xa94\xf8\x22^a\xdd\xe4b]\xa7\xfb\ ]\xef\xc7\x9d\x9e\x9e\xc6\xd3\x93\xbd\xc1\xe1\x99\xaf\x5cr\ {\x5c=\xd3\xe0\xa1\x98\x95\xcc\xdf\x9b[\xe5\x84\x08}\ \x7fYV\xdbr\xb67,\xca)mi\xd9\x1b\x9c<\ \xf3\xb5k\xde\xf1\xd0\xe9\xc9i8\xad\xfb\x83\xaf\x0e[\ :\xf3\x8cz\xf6\x08\x12\xad\xa5\xf3^=\x9f\x111.\ g\xeeI\xf7\xafu\x9e{%W\xceiK\x97\xa4\xe8\ I(\xae\xe4P\xd7;rD\x88~o\xcd\xfdz\x89\ \xebm}F=\xfb\xf5\xba\xdf\xf6\x8a\xe8\x13\xcb\x92r\ ^\xb9\xe6\xa9w\x9e\x0f\x84\x88-2-\xbb\xb2\xe5\xf0\ \xf2\x96\x9d\xe5u\xa7K~\xf1S\x0da\xa5i\xd5\xab\ \x85rA\xec\xb8T\x0b4x2k\xf7\xae<\xa3\xe7\ \xc3\xb4\xcc\x97\xfc\x82\x99\xf7\xaa\xf8-q\xcc\xfe\xe0.\ \x84\x95Fa\xef\xb6\xd1\x9a\xd8\xd3\xe5\xde\x85\xf50\x03\ \xdb\xcb\xa8j\x0e\xce|}\xee\xc0\xe6g\xf4|\x98\xd2\ \xeaHV\xcf\xe9\xd5\x12\xc7,\x991L\xc5\xae]\xf2\ \xde\xdf\xcc\xa7\xe6ti\xfd\xc4iu\xac\xc9\xf6Nk\x83\ \x13\xaew\xdaN\xd3\xc9\xdb\xd3\xa55\x1b9\x00\xbfr\ \xe2\xa9\x9fx5ui\x13\xc6\xf5~\x95\xb7\xf1\x195\ \x0f\x80\xa3Y\x19\x0f\xea\x97\xa5\x86j\x0f\xcc|\xb5\xc0\ u\xbd\xd3v\x1a\x0f\xacy\x9aH-\xad\x94\xe6\xfd\xe0\ 5\x92\xaf\xb0\xf4}\xd2\xb4\xccn\xfe\x825\x0f\xcf\xa8\ y\x1a<\xf9\x95y\x89\xdek\xab\xf0r\x96\xbel\x9a\ \x80&X\xb9\xe6\xbd\xbf\x19N.N\x97^x\x9a\xd2\ z\x06\xed4h\xcdD\xe9\xfb\x83\xaf\xce\xedy\xeb\x9f\ \xd1\xfdi*k]\x08\xdb\xbb\x10dn\x86\xba$E\ $\x9aV\xba\xe1\xae_\x96S\x7fr~\xba\x07\x1b{\ \x09)\xbag\xd4s\x9e\xfc\xda\xb0\x8a\xed\xad\xfcZ\x89\ \x8d\xf6\x97e}\xc8\xb67g\xeb\x09Q\xfaR\xcbe\ R\xcfq\xed\x9a\xdb\x9d5?;]\xb2\x7fF\xe4s\ \xadaa\x9f\xd1\xcf\x99\x81C+\x97\xa5\xd7\xcf\xa7\xc4\ FK'?Ou-F\xca\xf6&\x11\x0f\xbe\xa4\x96\ \x02d\xf8:jq;>\xa1;9=]*\x8b2\ \xad\x86Sxk\x9eQ\xd0e\x222_K\x8a\xbd\x82\ >\xab\x9d+2\x0f\xbe\x92\x83z\xed\x5c\xcfQl\xb2\ 7r.~\xe5\x82\xef8\x84\xf6\xe4\xf4di\x10\x15\ \xe4\xdeWFUL}F;\x17r\x87\xc2J\x8b\xa8\ W\xa0\xf5\x82\xb8\x7f\xb9,u2i%\xc4\xc4\xf6\x9a\ \xa2\xbe\xa5\xc1\x97Fh\x05\x00ne\xc6s\xc7\x913\ '''K\xf3\xb9N\xe4S\xac\x14\xe6\xa6<\xa3\x9d\ \xeb\x14M^\xbb,\x9d\xa681\xc4\xfdKw\xa8N\ i\xb5\xb9\xd5\x8b\xc4\x13K<\xb4t\xe4\xeaT\xd7.\ \x8b\xeb\xa5\xd6\xc9[\xda\xcf\xa5\xafU\xd7\x93\xa27\xf9\ \xb8vv\x86\xabLW.K'\xb5N\x1c\x09\x80\xf3\ \xbd\xc1\xddZp\x8c\xed9\x94\x06\xbf80x(+\ \x01I\xae\x17\x89\xb4\xe6e\xb9\xe64\xf8j+\xd4\x9b\ t\x5c;c\xf0\xd5\xdeV\xcfD'\x9e\x04\xc0\xc5\xde\ \xe0y5\xda\xa9\xa7\x96\x93@\x83/D\xae\xb3\xc0\xfa\ \xae\xa3\x16\xd7+\x8b\x93\x8b\x93|rv`\xf0\x95\x01\ >o\xe2q\xed\xec\xd6g\xb1l\xbf\x9f'\xf1\xc4\x9c\ \xec\x8f\xed\xfdJ\x06u\xbd\xae89\xa7U9\xdd\x1b\ <\x99\xb42\x02\xdf\xaf\xcaI:\xb1'KJ\xa4\xc1\ \xbb\xf4\xf0/\x5c\xf2p\x5c?c\xf0\xd5\xb8\x81~p\ Z\x14w`\xe6\xd5\xd8\xb5k\xde\xa9\xd0\x933Z\x98\ \x85\x0aunZ\x0f21~g\xe6\xfed)q\x1d\ \x00\xd5+\x97\xdc\x1fW\xcf4\xf6\xea|\xaa5\xbd\x06\ -'\xe1\xc4\xef\x0d\xbe\x1a\xee\xe4v\xd4\xf3)qQ\ \xdd\x1b<\xaf\x85\xc6\xf9\x9d\x99\x1f\xd0\xa0\x18|-\x8e\ \xd2\xf4\xaa\xbf\xd2\xc4\xc3\xfe\xd8k\x0ds\xd3\xeb\xcf\x13\ \x1a{\xe1i9?\x99\xd5\x18\xcd\x1d\x9b\xe5\x84\xb6\xb3\ \xec\x0d\xbe\xd6\xa3\xf0;\x8brH}\xd2\xd8u%6\ \xa6\xd6\x1dJI\x07\x16e5\xc0\xa4\x96\x1d\xc6\xcf'\ io\xec\xb46O\xe1\xec\xeen\xfa\x93\xbc7x\xae\ u\xed\x8a\x9bg\x94\xa7\x9f\x0a\x19{\xebV%\xef\xa8\ \xa0r`\xe2\xab\x1d\xfe\x9av\xc6\xae{T\x18&\xbb\ VI\xb8\x1d\x13\xb1\x1eX\xf10\x91^^)\xb1v\ \xe8\xf0\x90b\xa6\xc1\xd7\xba\x9fu\xd7\x14:\xd9\x93\x86\ \x01\x85\x1f+W<\xec\xf0\xe6\xe9\x81\xb1Q\x9a\xb1r\ \xc5\xcb\x8e\x8ep{\x0c\x14\xa6\xb2:\xbd\xbc\xe0\xce}\ \xb5\x1cH\xe7\xafL\x0c\xd5]\xcdy\xb67v\x5c\x9f\ \xd1\xafn\xc7\x10:\xdb\xa3\x94\xb8\x1e\xfe\xe1vL\xf2\ L&\xdcR\x1c\xc6)\x04\xb32G\xb1\xc3\xf9\x87\xb4\ r|\x01\x1d\xf6aDG\x1c\xb4\x94X/\xc89\xd5\ \xddX\xdc\xc5\x9e\xfe\x89\xebCCn\xc7\xdcOd\xee\ /5~\xe4\xf2\xf0\x95+\x9e\x9e\xd1\xcaR\xdb\xb4j\ \xf0\xd2\xc7\xb4<\xf1\xfe\xd2:L\xeb\xcd\xda\xb2\x13\xbb\ !\x0e\xda\x1f\xfb\x05d\x18\x9f\xd1\x9c(>ZY\xd8\ \xe4v|\xa0X\xdf\xee\x99\xb5R\xd9\xb4nU\xfa\xe8\ J$\xde_\xba@\x89\x1b\xb1\xac\x1b\xbb\x8f\x22\xa4S\ \xbb\x17E\xc8\x93Y\x1b-s;J\xe2\x90\xe6|A\ \xe9\x91\xdb\xf1\xddB\xbd\xd8\xf3\x80h\xf0\xe2\xd6\xc9\xda\ \xd2\xfb\xf9\xf9\xd4\xed\xc5\xb3\xf2z\xcb\xb3\xf4\x0em9\ \xf5\x07\xc6\x8e\xab\x17\xa5W@\x075'W\x1e\xadU\ \xcb~\xb1\xe2\xfb\xb4\x92\x5c]G+\xc5\xef\xacJX\ Fmi\xec\xd5\xe0\xe3\xd2k\xceJ\x1c\xb4\x14\xb5e\ Z]\x8d\xe5z\xb5|PsJ\xdd\xd1\xca\x15\xef\x07\ \xf7\xf5|/&D\x83\xaf\x05\x94\x95^s\x9e\x10\xef\ \xefO|u2\xc8\xf5j\xf9\xa0v+\xeb\xb1\xc7\xa5\ W\xcb\xa7\xc4\x9eK\x1a/\xd3\xea\x9a&\xb7\xe3s\xba\ z\xb6\x17\x9b,\xebem\xee5\xe7\x19Q\xf9R\x1c\ \x96\xf5Z\xd9\xf5\xc6\xcaA\x05$\xa5A+W\xa5\x1f\ \xdc\xd6\xd3\xbdU\xa1\xc1\xf3J\x0e\xca\xbb\xa8\xbe\xba\xb7\ *u}\x1dI\xee5\xe7\x05\x8d\xbd\xb4\x83\xea\x0b*\ =zC\xe8\xa0\x02\xaa\xeb\xd3\xe3v\xc7/4\xf5d\ /\x00_\xa7\xb26>\x91wK\xb1N\x96\xc8\x1b\x8c\ \xbd\x16\xee\x90\xe3\xce\xd8\xa7K\xf0\x9a7\xeb\xeb\x7fU\xfa\x02\x12G\x9c\xbf\xbf\ \x9b\xab\x8b<\xf2n#\x80\xb7K\xd4\xbe\xb7/\xa8\xf1\ \xe8\xcd\xf1C\xea\xc7\xbf\xa4\xda\xa8\xf7\x0ay\xc5\x97t\ h\xa7\xb0\x16\x9c\x9d\xfb\x8awOT\xbe?\xf1\xd5%\ \x1e\xa9\xaf\xec\x0e\x07\xc7^_\xe1\xd1\x9b\xfa\x87T\x9b\ \x7fA\xadQ\xdd\x05\xae\xe4%\x88\xc2\xbb\xf5\xceU\xda\ )\xbe>\xb3\xcb\xba4\x1a{u}G\xea\xab\x8c\xd3\ \x99;0\xf6\xfa\xf2\x8e\xde\xff9\xa4\xd9h\xf0\xb0\xba\ \x00\xab\xf78\x89{\xd2\x12\x13C\x83\xc7\x18\xd7\x89\xf1\ \xb4\xdbo\xca/\xeb#i\xec\xd5\xd5\x1d\xa9\xafw-\ D\xe4~o\xec\xd5u\x13\xae\xf8gt\xdbK\xea\x8c\ z\x8f\x93\xb8'.a_4\xf8\xea\xa2\x8c\xb4\xdb\xb8\ (.+\xafi\xec\xd55\x19i\xb7\xfbOZV\xd2\ \xd3\xd8\xeb\x9b\x22\xf5\x1e\xe7A\xdd\xf6\x92*\xa3\xde\xe3\ $\xf6\x09K\xfc!\x0d\x9eB]7\xf3\xbe\x0f\xd5\xd9\ \x09Qy\xda\x1b{-\xb2\xb9\xef\xe5tvz`\xe8\ \xb0\xbef\xc2\xf5\xce\xecA\xd5\x86\xc1\xcbZ\xa1\xd2\x0f\ ^\xab\xdf[\xf0\xb0\x1e\x80\xd4\xf7\x89:;#\xd6\xdf\ \x1f{u=F\xef(\x1fT?/\xa8\xdd\xe9\xbbD\ \x9d\x9d\x13\x03-\xd9\x9e\xc6Nk\xbb\xad\xf4\xbe,\xed\ \xa5_\xc2wi\xf0\xb5\x11\xb2\xbeG\xd4\xd9\x05\x91\xf8\ RA\x84\xa9\x86\xb2r\xc1{\x07\xff\xa0\xf6yA\xe5\ N\xdf\x22\x8a&~\xba\xd7\xf61\x92\x7f\xefV\xda\xe2\ \xbd+K\x0b\xee\x960r\x0c\xbe\xb6\xe8\xa0o\x11u\ \xf6\x96h|\xc9\x9aq\x8av-D=\x97g\xb4\xcf\ \x0b\x0aw\xfa\x0eQ\xe7\x86\x88|)\xc4\xe3\xfaL\xbb\ \xed}Y\xe2L{`\xc5W\xfb\xe0}\x83\xa8sK\ \xc4\xb2\xd4\xf7i}d\xdc\xf5!\x95\x83\xda'\xadw\ \x7f\xfa\xfeP\xe7\x8e&\xbe4\x0d\xd3z'\xdc\xf6\xce\ ,\xb1\xa6Y\xd6a`\xf0\xb2v\xe2\x9d\xda<\xf7D\ \xe5\xfb\x13_\xad\x92]\x1f\xae9\xa8~^P\xb4\xd3\ \xf7\x87:\xf7D\xe5K\xef'\xbd\xa0P\xa2wfk\ ,o\x97\xa5L<\xf8J\xf5\xd3i\x88\xf3pn\x97\ \xcd\xb5}~A\x0dF\x1f\xc3:\xa8~^R\x0eT\ v\xaa\x01iQ\x96^D^\x0f8\xee;O\x9d\xc7\ sw\xbe\xf4\xdb\xf2\xca\x12\x8c\xbe3\xd4y\x22BY\ \xeed~A\x05F\x1f\x1e;\xa8|P\x09dWb\ \xea{o\xb3\xfar\xb1,a\xf4eZ\xdd\xcd\xb2\xef\ :u\x9e\x89\x0c\x97\xabR\xd6\x17`\xf4}\xa1\xce\x0b\ \x8d\xbd\x94V\xe5\x05\xf5\x17}\xd0\xf0\xa0\xf2yI\x1d\ \xd0\x8e\xb7\xe9\xca\xf9\xb2\xdc\xd5\xa3\xe7\xdc\xca\xf4L\xdf\ s\xea\xbc\x12\x89\xefO|u\xf9E\xdf\x15\x8a\xc6N\ \xe7K\xae//\xa8\xbe\xe8\x03\x92\x07\x95\xcfK\x0a\x81\ v\xbcMZ\xf1eM\xb7\xaf\xabc\xee}\xc3\xa9\xf3\ \x13\x22\xc4\xa5\xee\xa9\xeb]\x9f\xbe%\xd4\xf9)-\xf9\ \xd2v\xab/(\xbd\xe8\xa3\xb4\x07u\x0f\xaa\x80\xd6\x16\ \xea\xecx\x9b\xb6\x9c-\xcb\xffi\xf0\x94\xfd:\xfe\xe9\ [B\x9d\x9f\xd1\xaa,}\x88\xba\xbe\xf2\xc2\xf5Q\xda\ C\xca'\xa0Nge\x94\xb6o7u~N\x1bz\ \xb2?\xf6\xda\xaa\x0e[v{\x5c\x9c.W\x9c\x06w\ k\xed\xfc\xbe#\xd4\xf9\x05\xad\xf9\xe9\xde\xd8\xeb\x0b/\ \xfa\xd8\xf5!\xfd\x13^P\xa5\xd3w\x9b:\x7fK\x13\ ?\xdb\x1b{u\xdd\x85\xed}\xd9\xf2\xb6\x9c,{s\ \x84\x17T\x00\xf5\xfd\xa0.\x0c\x11\xcb\xfe\xd8\xeb\xcb.\ R9\xae\x7f\xc2\xfa\x1a\x9d\xbe\xd5\xd4\x85%ZYR\ \xa1]]ta{O\xb6\x5c\x90#\xb2\xdcL\xbb:\ \xb9\xd9\xb7\x82\xa2i\xbf=\x7f\xbb7\xf4\xfa\x92\x8b>\ WpH\xf9\x04\xbb>\x10\xd4\xb7\x99\xbap\x17\xe6b\ \x7f+WWE\xf4~,\xcd\xba.;\x15\x05>\x86\ fmk\xf9n\xde\xfe\xc2^,\x99\xde\xbd\xa0\xe2\xa2\ OC\x1cR>\xe1\x05\xd59}\xfb\xa6\x8b@K\xbe\ \x7f\x1c\xd2\xfa\xb6\x9b\xbd\x1fK\xd3.{+\xee\xd6\xa7\ \xc1\xfb\xeeM\x17\x91\xd6\xdc\xef\x8d\xbd\xbe\xe4\xa2O\xce\ \x1cT>\xeb\x0b\x7f\xfa\xdeM\x17\x89\x96|\x7f\xde\xeb\ \xbb \xe4\xdd\x16py\xd9\x8e\x8c\x06\xaf1\xad\xc5\xbd\ u\x13\xcf\xb4\xe4\x0bK<\xf8\xc9\xae5\x81\x5c\x9f\xf7\ 9\xa8{\xfc\x0b\xdam\x97\x9d\x89\xa7\x8b\xb47vX\ \xbb(\xb6we\x89N\xd2\xb2\xe9\x1e\x0d\xbe\xda\xea\xec\ ;7]\x14\x9az\xde\x1b{u7|\xd7g\xc3\x0e\ j\x9f\x17\x14\xfe\xf4\x9d\x9b.*\xa6\xbe\x18;L\xc6\ \xf9\x95\xbeO\xef\xca\x12\xa1\xa4e\xf7\xc7\x10^PK\ \xdc\xeb\xcd\x13L}olZ\x93\x95\xe8\xb1>\xd3v\ P\xff\xbc\xa0\xf0\xa7\xef\xdbtqJS_2~\x98\ b]\x99M\xb6\xbd+K\xd3\x8e\xcbf\x9e<\xf8\xca\ T[\xdfY\xe9\xe2\xec\xe0\xc4W\xf3}\x9f\x7f<\xa8\ ~^P\xf7c{w\x93\x86\x0e\xcb\xae\xb2!Nv\ }\x1f\x9enQ\xcei?\x97\x13\x8f\xeb\x0b.\xfa\x16\ ?4\xf6\xd9\xc5R\xd2\xbe\xa4\xee\xa7\xcfm\x1e\xd4?\ \x18|e\xae\xcd\xf6\xae,\xb7N\xde_\xf1\xf5\xc0\xb7\ ^+_\xd0\xba\xec\xaf\xcaj\x10\xb0\xeb3\xa7\x07u\ \xc4\x0bjs\xfaf6\x17oi\xeaKK%\xad\x07\ \x1c\xd9\xde\x95\xa5\x15\xf7\xcb~\xd24\xb8[}\x1cK\ \xa7\x95\xdf\x1a\x1cR\xb8?\xf6\xda\x82\x0b\xd7\xe7|\x0f\ \xea\x88\x17\x14\xfe\xf4mU\xde\xda\xb7\xe6\xed\xd2EI\ \xeb\xab9l\xef\xca\xd2\xb4\xdd\xb2=xH|\xfa\xda\ \xca\xc1\xbb\x89;\x9a\xfa\xd2\xd4O\xeb\xb1\x9d\xaeOV\ \x1f\xd4\x11(\xfcY)V\xfa\x06\x1f4q\xb77\xf1\ \xbc\xbe\x9a\xc3\xf6\xde,M\xdb.\x1b\xec\xd3\xe0\xde\x97\ \x95\x9a\xb3\xd3\xcao=\xfe\xee\x8d\xbd\xbe\xe0\xa2\xcf\xb2\ \x1fT@/(\xfc\xe9\x1bY\xbc\x0d\xf8\xbb7\xf6\xea\ \x82\x0b\xdb\xbb\xb34m\xb3<\x8c!\xbc\xa4\x0f\xdcV\ s\xfe\xf8\xdd\xed\xd3\xcd\xe3{z\xb97\xfc\xfa\x9a\x8b\ \x1e!pP\x07\xbd\xa0\xf6\xa7o\xac\xf06\xe1\xef\xde\ \xd8\xab\xcb\x22l\xda=\xbbc\x7f\xd1\xcb\xb4\xfa\x0c\xd1\ \xbeA\xc1\xdb\x8c\xbf{c\xaf\xaf\xb9\xe8\xa1\x0d\x07u\ \xd0\x0b\xea\x8a:\xf5\xf6\x16\x8dq\x97Z\xa2\xacGd\ \xd8\x1d\x8f\xd6\xe5\xb7\x07\x16\xbc\xaem\xaf\xdf\xabN4\ SZ\xda\x13\xeb\xb3?\xae\x07d\x1cT@u=\xe8\ (/\xa6\xbd4\x0e\xeb\xfahP\xaf\xdaN\xe8\xef\xd2\ `\xae/0\x0d{\xa8\xc7A\x0d\xf1\x82\xaa\x9f^\xb3\ \x9d\xe2\xef\xde\xd0\xab\xab\x16z\xdds\x86\xbf\xbbCG\ \xf3\x82\xa2\x85\x1eDrH\x84\xc7\xf5u9\xbd\xe6A\ \xe0\xfa|o\xe4\xf5\x87\x80\xed\x0c\x8dS\xb1\x97C\xaf\ /*\xe8\xe1)\x87\xe4+\x06_}\xcce7\xef\x8b\ \x03\xf3\xb6\xeb\xcftr;G\x97\x1d\x10S\xf1\x05\xe5\ '\xe6\xd9y\xaf\x1b\x1a\xc7\x90\xfb\xcf<\xf8\xdd\xcf\x07\ \xa1\xeba\xbd\xc7Nm\x9f\x0f\x83w\xce\x05\x17\x8e\xdd\ \xeb\xe6\x13\xe5\xf3\x19\x1f\x0exl\xdc\xf9\x8c\xf7\x933\ \xfc\xfd\x9c\xf3\xd5\x7f\x7fj\xe8\xef\xf1C\xe6\xe7G;\ \xc71\x7fG\x8f\x83\x8f\xf3\x14\x10M\xb88:\x057\ \xcf\x81\x16!\x1f_27\xcf\x81\xc4\xe4\xa9wG\xef\ u\xf3\xbd\xe7>\xf8\xa3K\x06'\xab\xdb\xb6\x93\xa3\xf7\ \xce\xe3\xc6r\x1a\xc3\xf1-\x9e\xb7-\x9e$\x13\x8f\x8f\ k\xe7\x85\x88g\xe1\xadOG\x07\x8e\xed\xde\x14\xd3I\ :\xba\x19~\x1e7\x95\xf46\x1f\xddd\xbb]\x89\x5c\ \x93'\xd3\xf2\xd8\xcdf~\xbczZ\x82?J\xc1\xdc\ \xbeWo>/\xe9\xf8\xcd3g\xd4\xb7\xcf\xddj\xe7\ 9\x9c\xd4\x93\x8b\xe3$\xcc\xed\xf8\x94\xde\xeds\xf4>\ \xaf\xf0Y>)\xc7\xc9\xb2l\xef-gg\xe7\xe6\xd8\ \xbd\xd9\xcfld\xce\xfdy=\xbas3\xa9\x9d\xbb\xf3\ x~\x94|\xdc<\x87\x0bsFv\xd5Q\xea\x99o\ \xcdg'\xc7\xb9\x88\x1bu\xca\xcdo\xc39R\x0b\xc7\ \x96l~6\x15\xc0G\x07\xfe\x05\xf2\xa4\xdd\xfa\xfd\xc3\ \xdd\x1f~\x7f{m\xfex|\xe4\xbc{\xbb=~\xfb\ \xcc\xd0z\xbb;z\xfbbl\x7f\xf4\xe6\xb2{sx\ f\x22\xbbw\xc7\xa3w\xbb\xc5\xd8\xe9\xf8D\xd2\xee\xdd\ \xf9\xf8\xdd~\xf7\xeer\xf4\xee\xb4\xb8\xbb\x1e\xbd\xbb.\ \x9e\xd2\x1e\xdf\xcc\xba\xd8\x1c{|3\xeb\x82R\xec\xf1\ \xcd,uq\xfb3\xdb\xb9Xs{|C\xcb\x92\x0e\ \x8f\xefh^>\xea\xf1-M\xcb\x85<\xbe\xa7u\xb1\ K\xf6\xf8\xa6\x96\xb0\xb8\xfd\xf8\xae\xe6\xc5d\xdc\xf1]\ \xcd\x8bmr\xc7w5/&\xe3\x8e\xef\xaa_<\xaa\ ;\xbe\xab!.n?\xbe\xabyy\xfb3\xbb\xba\xa0\ \x19w|W\xc3r!\x8f\xef\xaa_\x10\xb0;\xbe\xab\ ~A\x91\xee\xf8\xae\xc6\xc5d\xfc\xf1]\x0d\x8bu\xf7\ \xc7w5,\xe6\xee\x8f\xefjXJ\xde\xe3\xbb\xca}\ `w\xee?\xbe\xadu9\xfc\xf1m\xad\x0b\x92\xf4\xc7\ \xb7\x95\x0f\x8c\xd8\xb9\xff\x99}]\x10\x99?\xbe\xafv\ 9\x9bgd\xf0B-=#\x82\x97\xb7?#\x82\x17\ \xaa&\x1c\xdf\xd6\xb8\xbc\xfd\x19\x11\xbc\x90\x1c\xe1\x19\x9d\ j\x16$\x1c\x8eokY\xde~|[\xf3\x82h\xc2\ \xf1]\xb5v\xc1!\xe1\x19\xcd\xba \xe1p|[\xed\ \x92\x0c\xe23\x86\x92]PY|\xc6RZ\xac}|\ fg\x17\x8b\x13\x9fc\xd8\x05%\xc4\xe7\xb6v9\xfb\ \xe3[\x1b\x97\x8bs|k\x17K\x1f\x9f\xe1\xd7\xc5\xdd\ \xcf\xb0\xeb\xdeJ\x1e\xdfX\xb7X\xc9t|_\xe3b\ a\xd2\xf1m\x8d\x8bGM\xcf\xc8\xe1\xc56\xa5g\xb4\ \xebb\xd9\xd3\xf1]\x8d\x8b\x95I\xc775,\xad\xe0\ g\xb4\xebr\xf4\xe3\xbb\x1a\x96+\xf3\x8cv]N\xe6\ \xf8\xae\xfa\xa5M~|W\xfdb!\xf336\xd3r\ \xf4g\xdc\x9a\x85\x90\xcf\xc7w\xd5-'s|W\xdd\ \x82?\xf23\xbe\xcdr\xee\xcf(W\xb3\x1c\xfe\x19S\ x\xb1O\xf9\xf8\xb6\xd6\x05;\xe5\xe3\xdb\x9a\x16\x93/\ \xcf0\xebb\xe1\xcb\xf1mM\x0bQP\x8eo\xab]\ N\xe6\x19\x19\xbcX\x99\xf2\x8c\x83\xb3\xe0\x8fr|[\ \x97\xea\xa6|r[\xff\xf5_\xff\xfc\xd5\xeb\xc7\xa7\x9f\ \xefn\xfe\xcc\xdf\xfe\xea\xea\xee\xf6\xe3\x7f\xbd|\xfa\x8e\ \xaf\xe8\xcf\xed\xf5\xd7\xaf\xda{.\xbdjo\xb7\xb7\xfe\ \xe5\xc3\xed\xd3\xe3\xd7\xaf\xbe\x7f\xbcy\xf8\xa7\x8f\x97W\ 7\xff\xe5\xc3\xbf<\xde\xbc\xfa\xb3\xde\xf6\xd5\xc7n$\ \x1a\xeb\xc3_\x1e\xaf.?\xde\xbc\xb9\xba\xff\xf0\xe1\xe6\ \xea\xe9\xfeas\xf5\xfd\xc3\x0f\x97O\xdf?\xdc|\xfd\ \xca\xbc\xea\xee\xa4_\xc5w]\xe8\xde\xa4\xf7\xfeq0\ c\x89e*dD\xfeoC\xc2!\xdc\xe4*\xfe\xb7\ \xc1\xd0\x95\x19\xfe\xafW\xc3k}\x8c\xd7m\x82\x9f\xf1\ X\xb9|\xe9\xc7\xcai\xf7\xb1\xde\x0f\x81\x1e\xca\xe70\ zk\xa6@~\xd2\x0f\xc3\x06\xcdw\xedp7\xf8\xa9\ \x1a7\xda\xa9\xd2\xdbh\xb9\x16G\xc0\x8a\xea\xf0\xd7O\ ?-\xa2\xeb\x97\x0f\xff\xf9\xe1\xf2\xfa\xf6\xe6\xc3S\xff\ \xcc\xbb\x9f\xd4\xed\xe4\x1e?>\xdc\x5c^\xff\xe3\xcd\xd3\ w\xf7<\xc9\xeb\xf9\x93o\xf5\xe6\x7f~\xb8\xfc\xf0\xf8\ \xee\xfe\xe1=\xcd\xf7\xf2\xe9\xe1\xf6\xa7?l\x00\xf7\xcc\ >\xf8\xe3\xaby\x8f\x1e\x9f\ \xee?\xee\xae<\xde)a\xe3\xbb\xb5\xbf\x7f\xf7\xee\xf1\ \xe6iw\x93\x98\x1b\xe4\xee\xcd=M\xe8\xf6\xe9\xe77\ \xc8q\xd3\xe5\xd5\xfd\xdd\xfd\xc3\x9b\xdf\xbf\xe3?\xf3\xf2\ \x7f\xfa\xc7\xd2\xa1\x9f\xe2<\xabM\xc1\xfe}~\xb3\x1c\ \xf8\xcd_\xf6S\xdfx\xfc\xed\xa8k\x97h>\x83\xa3\ \xac1_\x9a\xa5j\xf9\x02\x92\xc2v\xf2\xe8\x0b=\x97\ unOV\x840\xb9\x5cG_\xf0Pn\xb8\xa2G\ \xdd\x90\xdc\x00\xc8\x8c\xfe[+]\xe5)dOW\xc1\ \x8f\x1b\xe7\xa6\xe8=\x89\x14\xc3\xb7\x9a\xc1M6\xdbq\ S\x80 \x1cp \xeeH\xc2\xa6\x92~\x94[6f\ JqD\xf3|\x928\x1b?y\x129\x1e\xa5V~\ q\xa5\xb7\xa3R\xd7\xd2\xb0\x1bZ\xe4b\x22\xfd:\xde\ X\x5c\xbe\x5cXY\x9f^$\xad\xf8\xfc\x5cSb\x1d\ i\x0dhV\xf3\xa5\xacg\xf1n\xf4\xa9\xa0\xf3>\x19\ |\xff\xb6R\x8a&\xf6b!U.\xaf\xdc\x8d}^\ `X\xef\x0eJ)cl\x0d\xee\xef\xf4\x93\xe1\xc5B\ \xea\xdd\xd5\xbb\x9bN\x1e\xae\x11R\xe1\x8b\x9b36|\ \x09{\xc6~y\x83\xc6\x1e\xb0h\xb2\xc7I\x81\xc4S\ 8\xb4\x9e-\x9a2U\x1fU\x5c\x91QS\x06\x88\x11\ 7nP\xa7cI*\x85\x9a\xda\x85\x88\x16;\xf9\x12\ Y`E\x93F\xee;\xa9\xaf\xb7wm\x07\xa51\x1d\ I\x1d\x1a\xd3\xf2\xe7i\xd8loNMZY\xb6\xb3\ \x0c>\xe3\xdf\xa3Q}\x9a\xaf\xf8\xd6\xbf\x81\xacz\xa1\ e\x15\x89\xfd\x5cu5\x8b\xac\xda^\xca\xaa\xa6\x82u\ %\x1eM&\xc6\x7fkYU\x0e1\xf3\xdfIV}\ \xc2\xa2\xfa{\xca\xaa\xbf\x81A\xf5rY\xe5\xbe\xbcA\ e\xbf\x88E\xe5\xa3\xfb\xd2\x0f\xe6\xa3Y\xca*\x17\xc9\ \xfeq~t)O\xd1\xba\xe1\xbb!N\xa5\xc0\xc0!\ \x1b)F\xba\xde\xc8\x1b\x7f\x03\x9f\xcb'\xf7B\xd1@\ \x13\xc9\xa5\xda&\x1a\xda\xa5<\x84#\x81\xe92D\xa5\ 1\xe1\xdfX4\xf8X6\x07\x19\xf6\xef\xe2\xf9\x90@\ \xdc\xe4\x17\xf3\xea\xf5\xd5\xe5\xa5\x8f/\xe1U\x9f\xbf<\ Ig\xf3%x\xb5|\xf9\x07+\xfb\xbc\x9a\xe0V\xa4\ \x8eWm\x98B\xcf\xaa|\xfd\xb7\xe0\xd4\xfa2N\xc5\ D|\xad\x88\xde\xc0\xea\xb8\xd9\xa4\xf9\xdf\xed'.\xe7\ \xc9\x99\x14\xc3\xaf\x87k\x0fj\xbc_\xc6\xb3\xd7\x95\x9e\ \xe6\xea3x\xb6\x1ert\xbe4\xc7\x06\xf3\xc5\x09;\ \x98/\xc1\xb1\xc1~\xf9\x07\xb3\xfb\x1c+$\xfeE\xb4\ kp/\xe4Y\x9e\x897\xa6\x90j\xe5\x90&\xffw\ \xfb\xae+d\x80\x97Z~=\xfc\x1a\xec\xcb\xf9\xf5s\ ulp/\xe7\xd7\x97\x87\x17\x83\xff\xf2d\xed\xbf\x08\ \xbf\x86/\xff`a\x8f_=\x9a\x1b\xbb\x8e]\xd3\x14\ S\xec\xd9U\xde\xf8[\xb0k|!\xbb\xf2L\x02<\ \xe3Mbv\xe5\xffn\xdf\xf5hZTb\xfc\xf5\x18\ \xc5!|Av\x8d\xbf\x0a\xf5\x9a\xbe.\xad{\xe2R\xa4\xe4|\ ^\x18\xc1ai\x04\xffM\xf84\xda\xbfS\x88I\x1f\ \xe2\xd7\xa3L\xa3\xf9r\xca4\xda_\x83\xed\x1b\xdd\x97\ \xa7f\xf77a\xd3\xaf^_\xdf\xbc{\xe4W\x8f\xf7\ \xd7\xb7\x1f\xe9\xffo>\x5c\xbe\xbf\xb9\xfe\xe1\xf6\xe6\xc7\ \xdf\xcd\xbf\xf8\xcd\xe5L.\x1f/\xbf\xbd\xe1\x85\xfb\xfa\ U\xdb%\xf9\xe0\x9b\xfb\x87\xeb\x9b\x87\xf6Q\xe2?;\ \x1f\xe9\xea\xd3\xf6Lm\xee\xf3sc\xd4\xf9ss\xf8\ \xf3\xc7\xef.\xaf\xef\x7f\xfc\xfa\x95[~\xf8\xd7\xfb\xfb\ \xf7\xf8V^~p\xf5\xd3\xd7\xaf6\x09G\xdbf\x1b\ \xfc\xde\xa7\xf4S\xce\xd2\xd7,Y\xa5\xcb\x0f\xaf\xef\xaf\ \xbe\x7fO\xbb\xbf\xf9^\xf6\xf1\xe3O{_\xff\xfe\xe1\ \x017\xdc]\xfe|CO\xfc-\x997Q\xefy\xfc\ \xee\xfe\xc7o\x1f\xb0p\xef.\xef\xe6\x95\xe3w\xbf\xbf\ \xbd\xbe\xa1\xe1\x9e\x1e\xbe\xbfY\x0e\xc8\x9fm\xbe\xf9\xe6\ \xfe\xa7\xc3\x9f\xffx\xfb\x81\x9e_\xeayi\x11\xb7N\ \xc2\xf2\x8e\xefnn\xbf\xfd\x8e\xd8\xa0\xec?\xb3\xde\xf1\ \xd3\x96\xa8\x96\x1f\xfd\xfc\xe9\x8f\xde_\xfet\xfb\xfe\xf6\ \xaf7\xd7[\x0e{w\xfbDo?|{\xfbaC\ \x1c\xb5\xfdj\xf7\xfe\xdd\xcd\xbb\xa7\x83\x1f<\xc8,\x0f\ |\xf2\xcd\xfd\xd3\x13o\xe9!2\xb8\xfa\xee\xe6\xea/\ 7\x0f\xdf\xdc_>\x5coo\xa1\xcf\xefn\xf0\x5c~\ r\xcae[\x8a\xe6\x95m\xdc\xf2\xf1\xfe\xf1\xf6\xe9\xf6\ \xfe\x03=DD\x164\x978zc'\xe7r\xdd\x0a\ \x8e\xfb\x07\xf0\xfe\xa5\xdch\xc6\xed\x07\xd8U\x1e\xcf\xa6\ \x94\xb3\xb2\xd5W\xaf\xf7\xb9\x87\xdf\x7f\x7f\xf3ty}\ \xf9t\xb9e\xa5\xf6Nn\xb3|\xb8~\xf7\xe6\xff8\ \x7f;K\x86\xab\xab7\xff\xe7\xfd\xc3_\xb6\xcc\x8d\x1b\ .\xbf\xb9\xff\x9e\xd6j\x96\x1ft\xdf\xf5\xd5\x1b(\x88\ \xcb\xa7?\xdf\xbe\xa7ey\xfd\xf8\xc3\xb7\xff\xcbO\xef\ \xef\x88\xa3\xe7\x0fvn~\xfa\xf9\xe3\xcdvP\x19\xf6\ \xe1\xe6\xf1\xfe\xfb\x87+\x921\xdf==}|\xf3\xfa\ \xf5\xc7\xef\x1f\xee\xa6\xfb\x87oi\x10\xfa\xdf\xfb[|\ \xe9\xf5?=\xdd\xde\xdd\xfd\x03~\xa4\x17\xc8\xafu\xa2\ M\xact\xcf\xf1\xd5\xeb\xf6\x94|\xf5\xedb\x17\xef.\ \xbf\xb9\xb9\xfb\xfa\xd5\xd9\xe5\xdd\xff\xfb\xfd\xcd`\xf7\xf8\ \xe0\xe1\xfe\xfb\x8f\xef\xef\xafiV\xcc[\xaf\xb6\x8b\xc7\ \xd7\xed\x0bO[\x1d\xc9/\xef.\x9fn\xfe\xb0\xb16\ !%\x1d3\xe07qJ\xd1\xfa\xfc\xc7\xb6\xd6\xdf\xb6\ \x05x\xda\xd3\xaf$tj\xac\xb5Hv\xb7]\xa5J\ \xde\xab\xe7F\xcf\x9c\x89v4b\xf1\xa1\xcb\xef2=\ \xd0[\xdb,\x87j\x1c\x88Y\xc1v\xde\xfcp\xf3\xe1\ \xfe\xfa\xbaC{\xb6wx\xe76$FH<\xde~\ \xf8\xf6\xcd\xfd\xc7'\xe6\xb0\xff\xfd\xfb\xcb;Z\xfb?\ \x91\xc8\xfb\xd8\x7fNB\x92V\xf6\xe1\xf6\xea\xbf>\xdc\ \x5c\xdd>\x12q\xfe\xe9\xe9\xe6\xa7\xa7\xa3wlu\xce\ \xb7\xdb\xed\xe7Y\xc7\x10\xfaL\xd0\xfe\x9a\xe0\xc4q\x14\ B\x07\xb19\xb6\x97\xd9\xc7\xa9\xda\x90\xedhs\xc2\x01\ )q^\xe3\xe5/\xb5\xdf\xb2\xa9\xbbay\xcb|S\ o9\xe0\x0f/\x22\xf4\x1diR\xc0f;\x8d\xfb\xc7\ \x9d\xf1\xf6Gl[\xb3\xe3\x9c\xed=\xe9\x96r\x5c\x05\ \xc4\xca\xd6\xd1\xf3\x03y\xda\xe3-\xb5\x1f\xff\x89\xba\x9c\ \xf6'~\xc2G\xa2\xcdJ\x84\xe4\xd1i\xb1\xba\xf4\xd9\ ?aS\xb1\xee\xd8\x8f\xccTl+y8\xd1Y%\ \xe3\xf9\xd2\x15t|\x09\xb1\x8c\x8e\x88\xd88c\xf3r\ \x05\x0f\xfd\xfa'X\xc5\xa4\x10lm\xac\xa2W\xde\x96\ \xc9'S\xd2h+\x19\x22\xc5\xf4\xc8\xd2\xc5\x03u\xda\ \xb2\xff\xa3\xbc\xc38\xe9\xdf\x1b\xfe\xa3\xdd)\xb8\xf9\xc4\ \xde\x84\x0fOy^\xb4\x9a\xf6\x17\xed\xf03Y4\xf0\ B\xf3e~\xa6\xedU*\xc9\x91D1\x90\x03\xd5\x22\ \xd0\x9c\xfc\xfe\xba\xf1DvM\xba\x03O\xb5/\x11\xb6\ \x06\xa9<1\xcc)\xa3\x05\xf4\xbb\x9f\xed\xa0\xc4\xfb%\ \xd9m\xf3a\xa6\xe8\xf3~\xa3\xa3o\xbe\x7fz\xda\xeb\ \xf2\xf1\x0d\xcd\xe2\xae\xbdK\xa2\xfe\xe6\xe1\x8e\x84\xcf\xd3\ \x9b\xb9\x03\xce\xf5%\xc9\x9f\x87\x87\xcb\x9fw~\x08\xef\ \x8a\xa1\xfdfn\xc6\xb7\x9d\xeb\x17\x91h\x87W\x99]\ :0qH\xc0\x0d\x062\xfc2\xca\xa4p\xfcs\x02\ \x003\x90\xf8r\x82K\x9a\x9c\xc9\x99T\x04\x0eC%\ 3\x89\xde\xf0\xb5\x84\x82{\x8aA\x9b\xba\x0d\xb1\x0eQ\ \xb2gO\x0b\x1d\x93\xef\x80\xb3$\x89g\xfd\xc8\xe7\xe1\ \x06;l\xd0\xa0\xd6\x992z\x1c\xadh\xca\xe0\xc1\xdd\ \x85\xaf3\x8dOn\xe3\xe1\x99\x82:\xe9a\x9e\xe8\x87\ R\xd8\xd4M\xdc\xd8O\xdd\xf9\xd9\x8e\xc1\x0e\xbd\xcd\xc6\ \x08iQ\xa8p\xb28\xaf\xe4\xcf'\xbeq\x80!\x22\ N\xbc\xf3Y\x04I\xbb\xa2\x05\xaa\xc1\xf1\x89\x0d\xa4\x0d\ M\xc9n\xaa9\xef\x8b1\xf9\xf3\x1bK\xfc\x1aX\x22\ % \x93\x83\x03K\xa0\x15'\x89j@\xeb|\x8e\x88\ \xd0[\xb2|mH\xcc\x14\xa9:\x12\xe3D\xe7\x05_\ \x00$\xb9\xf8\x1a\xc1\x14\xb5\x9a\xe4\x89\xbe\x93%\xbf\x03\ \xc8d\x9fr,\xc4\x14\xc4S\x91\x04\xe3\x98&\x9bI\ \xcf\x0c\xf2\x09\xc9M\x9c\x81\x17*\x07P\xaa\x0b#\x18\ \x0dE\xc9\x9f\xcd\x12\xbf1\xc4o\x0c\xf1wb\x88\x8c\ \x86i%Fb\x08\xf4\xed$\xf2/\x83\xb2\xc1\x88\xce\ ad\xfb!\xbd\x16sJD\xb7)A\x89\xd8\xc9\x06\ g\xc9cL8\xebpS\xd0\x80\x9f6=L\xc4\ U\xc5A\x19d\xb2\x1e#\x14\x06\xb9\x92\xd6\x7f.\xa9\ \xffF\xe8\xbf\x11\xfa\xdfK\xf2\x17\xa2VC6\xca\x18\ 2\xfa\xdd\x87j\x07k\xa6\xeaj\xa8d\xc5d\xf4\x0a\ \xaa\xc4\x0b>\x93\xd4g\x97w\xc0\xb1C\xc6[Pq\ \xae\xd9\x97aS\xc9Y\x10?\x18\xc7I\x16?l\xac\ \x9f\xac\xa5\xa5\x1d\xa1X\xd0\x1a\xf7\xb3(\xfd\x7f::\ \xff\xe4\x14\xff\xa6+\xb1oK\xa6c$\xb1\xc1\x16\x96\ \x89\xf6\x9f\x5cA\x04?I'\x93c\x1fq\x9e'\x19\ \x03\x1e\xbeN\x1al\xae\xa4\xb7\x817\xf0D\x1f\xae\x0e\ \x8e\xf4\xbc#\xbf\xceF\x22\x1b\x97\x19\xb3\x8f\x93\x08h\ \xf1*\x89\xd0J\x02\xd1\x93\x08\xe5\x8a\x00r4\x8b\x09\ \xc3&E\x0cO\x9e\xa7Gk\xd7H?S!4\xc3\ HK\x9a,\xfdl\xacd-\x90L\xcd\x90\xa9$Q\ +\xc2qDzD\x90\xf4\x05\xfbI\xb2\xfaE\x12\xe4\ \xdd\xbb\xdf$\xc83\x12\xe4\xdf\x11io>%F\x94\ \xb8K\xc1\x91\x89d\xa2\x86\x08\x86.F,PO\xb4\ \xed@^\x1e\xa4k+\xea=\xc3h\x9d#\xb2\xcfC\ \x08\xe4\xec\xd1-6\xe1\xfc\x8b< \xbae\xc8f\xb5\ d\x1dD\x12ow\x03\xb2)>\x8e.\xd1\xe0\xa4\xd9\ \x89\xfa39\x81\xc414B\xa117\xe4N\x92\xf8\ \xf4c\x9c`\xe4\x12\x93\xc5)\x92#h\x05\x94C\xbc\ R\xb8\x02\x86\xaek\x06'X\xf8\xa6\x1e\xb1E\xf2I\ \x89\xf6}\xc2,Q\x97G\xccB\x82\xf77\xda\xff\xb5\ \xd2\xfeL\xca\xb3B\xd9\x5c\xdd|\xa0'\xe6\xcc\xc9\x14\ k u\x1a\x9f\xf5\xe7\xf7\xbe\x8d\x94\x0c4s\xaa\xd5\ \x7f\xca\xf9\xf9\xb7\xe4\xbb\xcd~\x8cS\xfe(\xe7\xc5\x94\ \x0b\xb1@!\xce#\x0fp\xb2\x15\x86\x02\x1fh\xe6\x88\ \xf7\x88\xbc+\x19\x13W\x83C\x03\xdd\x81'\x86B\xe4X\x1c\xe9\x14\xb2\x9f|\x0c\ D\xe7\x16\x06(\x11bB\xb8\xb9\x0e\xe0\xa2\x90\xe2H\ FR5\xb0\xdb\x1di\x86L:\x83\x94Q\xaa\xf4\x05\ \xe0=\xe8'\xb9\x94<#\x16c\x8dG\xe2\x82H\xd9\ O\xc6\x07\xb0\x0a\x99b\x1e\xbfi'\x13\xc9\x96\xb7\xe0\ \xa6\x8a\xac\x8d\x9d<\xd9yP7\x9eL]?\x167\ \x19S\x9a\xa6\x12E\x85\xfbK\x9a\x10\x12\x82~K\x9e\ m\x7fO\x8c\xc2\xcf\xe5\xc8U\xf8\xb4\x97\xfb\x1b\xc3\xfc\ \xcf\xcd0\xcf\xb9!\xa5@l\xc3R\xf3\xce$\x12\xc5\ \x19\x1e\x03\xd9[D\xd1\x81\xc8\x8fF#\x02\xe6\xe4b\ \x16\xa6qD\xf2\xc9\x90$\xcf\xda\x91\xa5\x0c\xe4kd\ \xec\xfe\xe8r%\xc5Q\x86\xe8\x89\x05\x8cg\xa6\x19\xc8\ \x02\xacHS\x92z!\x0f$\x91[S\xc1;\x85\xde\ *\xcfl\xd9\x11w\x06\xe7\xb9\x15J\xc8E\xfc\x9a\ \xc9\x15a\x190H\xf6\x96U\x94#~5\xd6B\xdd\ \x14\x1cAc\x18XI\x19\xf6\ >\xd9Q\xd9\xe2\xb0\xbb\x00xP\xb1\xf4\x0dC\xee\x00\ _\x02\xbeP=\x94\x02)\x15\x8b\xc0\x15\xf1V\xb2\x88\ \x18`.\x96L1O\xbe9x!\x19\x8cJ,\x06\ l@\x82\x17a\xc9mC\xfb\x0bb2\x8b_&S\ \xca9\x9c\xadE7E\xfaZ\xac\xb8'\xe28,\x1a\ \x87L6Vx\xce\x85J#\x8f\xd6\xc0t\xf3\xbf\xb9\ \x1f\xbf\xf1\xd0\xa7y\xe89\xe5\x10\x8d'c\x86\x0c\x93\ @\x0e\x00Y\xf50x\x88\xf4*b\xda\xa49p\x08\ #w\x86\xaadw!O\x95\xc8\xa6\xcf\x1e\xacf\xc8\ `I\x06|D\xbe1q\x0e(\x9cF\xa8\xb0\xc5\x88\ \xc4+q$\xd1s$\xbd\x12\xc9A!~\x8d\x93\x0f\ \xcc\x07\xe8|\x82l\x01\xc9\x7f\xb8=\x85\xf5B\x92P\ \x96c\xbb\xce\x09t\x82x7987\x06\x81d\xcc\ \xc3\x93E\x04W\xc4C\x81\x91\x96\xf24\xafB\xa6\x98\ M\xf4\x83\xb0\xc5\xc8h\xa2w\xc8\xfb\xb0\xd5\xe0\x08p\ 78\x1c'7\x82gRD\x14\x8ffM\x9f\xd2\xcf\ N\x8e8\xd9d\xc0\xfd\x10t\x83\xbfo\x7f\xb3\xb1\xfe\ \xfd1\xd3\x17c\xa5\xe7\x9c\x13\xa0\xe5\xc8\xcd\xc8\x90\xea\ \x08\x11\x93\xf9C\xda\xc8!9\x04#\x1f\x04\x9cI\xa1\ \xc0\xc8\xaf\x08\x01\x93QE\xce\x05\xb9*\x0eL\xc4l\ E_\xc3\xe9\xf2\x16q*h\x22\xf8\xe7\x16]\x18G\ _\xc8\xb3/\xec\x9f'\xf2\xa2I\x1b\x90\x02 \x9a\x07\ \xdf\x91.$\xa7\x82\x14X`\xb4\x12T\x04@\xfd!\ \x8d\xe4\xcb\xd0\xa7\xbf\x11\xf5oD\xfdI\xa2\xfe$\x98\ \xa0\xd9Y\xd1\x076R|N\xc5\x92 &\xe1\x8f(\ \x13\xdc\x07\x8f\xe3\x85\x91\xda(\xc0\xcd\xc1\xaeG\xe4\xca\ W7x\x87\x84\x1d\xc3\x9f\x89\xd639\x03d\xa6\xf1\ i\xde$\xf7\x89*\x0dwD\xdd\xb0\xf4uc@\xfc\ K<\xe9\x80XR\xa9#bN\x99\xcd\x9f0e\x8e\ \xee\x92\x17c\xa1R\x02}\x97\x88\x9b\xbck\x1a\x90\xc8\ \xfe7\xea\xfe\x8d\xba\x8fP\xf7'a\x92\x8d\xbe3\xd2\ \xd3\xc1\x11\xc5Y\x9c\x9d\x09\x88&\xc9Q\x1a\x0d\xb4K\ b\x14\xf4\xcdF\x0bI\xd5q\x03\x9b\xc5gr\xa1-\ Q\xbaAP3\x93\xd8'\x03f\x88\x86l\x0b\xef\x11\ \xaf\xc1\xb9\xa4\x0e\xf4\x1dH\xdc\x9b2F\x0693}\ G\x83\x93.\xc9b\x89\xe4\xa1p\x22\xc2;\xb1\x90\x00\ \xb7\x08L\xe0\xd1\x01Q\x11FG\xde3\xfa\x82\xfeF\ \xe0\xff\xde\x08\x9c\xfe<\xca\xff\x1f\xb7\xd7\xf3\xcb\xab\xfe\ \xe5\xce\x9f\xc7\x9d\x7f?u\xd7\xf3\x1f>s\xd7\xe3c\ \xf7\x03\xdb\x97\x8f\x07\xef\x7f\xdc\x9f\xfa\xee4w\x7f\xee\ \xf1q\xf1\xc6g\xcek\xffG\xfa\xeb\xc7\x9d{\x1e?\ 1\xd5\xbd\xe1\x1f\xb7\xb3\xdd\x9b\xd6\xe3\x81\xfb\xb7_;\ \xf4\x98\xed\xdd\xc5\xb7\x17o,\xa76/\xf2\xe3\xf6s\ \xde\x80\xc7\xab\xc7]\x02\xf9\xe4\xf4\x16o>.>\xfc\ \xe4\x22?\xcao\x1d\xdf3\x99\xce\xa3Njy\xcb\xe7\ \x90\xd9\xe3\xde3<\xb6\x0d\xdc~}\xf7\xd5\xbc\x83\x8f\ \x8f\xfb\xbf\xf0y\xa4}\xf8\xee\xfd\x1f|\xdc\x9f\xde\xde\ \x85\xde\xf27\xd7K\xd2\x98\xa5\xe4\xe3*(\x95\x8cF\ -\xe4\x84\x17\x07\xdb\x88\x01'\x9bB\xda\xc02\xc4\x8e\ S\x0a\x93a\xb0\x15\xfd\x83t4\xe9\x07\xe8\xa7\xc9\x18\ d\xa3#\xf9\x03\xa4\x88\x18x\xb2\xa9\xc8\xdb\xc1\xcc\xaa\ \x80\x8bp\xf6m\xaa\x05j\x89L\xaa\x84\x90\x92\xc5\xbf\ #\xe9!\xce\x84\x93\x8a\xb2v\x84\xdb\x81\xe0R\x8bs\ \xb9\x09\x9e\x059\xc9\x95TS\xe5\xe4\x22MT\xda\xbc\ Z\xae\x0a\x22]\x864`\xe4D\xbc\xa9\x85oG\x8e\ \x9d&\xe2\x01nE\xf22zn\x0f\x11\x01\xe5\x8aH\ \x81\x00TC\xbf\xcf\xce\x11\x07\x9c\xa7\x88Yx3\xa1\ \xc5\xec\x14\x13zSW\xce\x8b\xc26\x8cX\x07\xd2\xbb\ p\x93\x18\x133\xd5\x80\xc9V`\xc1\x1c\xe0\x87\xf8\x96\ \x09\x09\xf7E\x9a\xb9\x81\x9a\x96\x96\xd5\x15\xf6(}\xd6\ ]f\xbe4@\xa7\x93\xce\x05\xf0\x9c\xfbZ\x07\xa0o\ \xd1@;@\xc5;.\xd1\xa0\xf9&\x0e6\xf0u@\ \xc4\xa3\x00\xb6Kfo\xe4\x888C\x04\x8a\xe1\xa0`\ b\x0b`\x83\xd6\xff\x09\xa0Gcdzh\xf2\xcf=\ \xbc\x19\xec\x16a=\xc3<\x90k\xfe\xad,\xdb\x07K\ \x99\xe3(\xa5\xbbN|M\xb3\x05\x02\xc1\xe3\x82&\x8e\ \x9c+\xd6\xde\xc95\xac\x10\xc3\xb3\xc3JG\xc7a\x18\ z\x0bc\x17\x19\x80\xbe\x1b\xe5\x9dh\xb3\xfe\x04v\x91\ \xe6a0\xeb\x8a!AM\xc9\xe2\xb6\xed\x1b\xc1\xf2\xf7\ \xb8\xcd/-0\x9a\xf2\x14\x84\x5c\xb1y#\x17M\xf2\ \x853\x1c\xf1\x01$\x10\x03b\xc1\x940]\x927\x10\ s\xc5\x1b\xf8U\xf2\x17\xaa\xbc\x8b\x82/\x04\x8e\x82\xd5\ \xaf\xc1A\xa0k\xcex\x0dDd\xf2\x80\xf2\xc0N\x9f\ \xd7Zy\xe0\xbb\x01cc\xb1\x0d=N\xe5\x10)&\ P+\xfb\xc8\x00bZzP\xb2\xd6\x10#\xc6\x9a\x1a\ \x90\x0c/\x09]#%\xc2p\xc2\x84%\x1c\xb8\xecS\ &\xc5\xbf\x07\xda\xb7:y\xe7\x93\xbc\x83\x1f\xf0LK\ \xfc\xc3\xfcc\x9e\xb9b\xe7\x9a\xd8\xd4\x00\xd9(S\x0a\ \xb2\xa4>\xc8\xa55zM\x9b\xc1\xe4l\xe0\x11U\x09\ \xa0\xb9\xddK\xcb\xbd\xd8\x9dp#:\xbc\xd3\xb2`W\ \xe5\xb5\xc5\xd4\x123\x1ds\xb7\xd3o\x15\xbd\xf6z\x8d\ \xad\xa6\xdb3\x16\xdd\x8d\x22H\xb0\x10N\xae][\x08\ \xbe\x0bW\x86\x81\xbc\xe0\xf7(+\xa02'\x8f\x89=\ ?Z}\xe4s\xd0\xa2\xb9T\xbe\x8ar\x05\xd1\x10\xf8\ M&_\x8bF\xf2\xd1\xe8\x05?-\x1e\x85s\x9fI\ ~<\x18}\xf0\x9cuv6\xe8;hw\xdfx\x01\ \x94\xebe\xdd\xdaNG%{\x84\xed\xad\x95\xfd)X\ >\x22\x11\xc4\x17\xc1\x7f\x10|\xfc\x86e\xa6a\xf0(\ \xed63\x0b\xc8\x00\xb3\xc9r\x04\x07\xf32\xbf\xe3\xb2\ \xd7w\xd0\xcfZi\x18k\x9d\x18\xae*\xaf!\x8a\xa2\ \xf4\xdd\xe7\xf8\x8bR_\x929Z\x9dc\xd0\xbdf\x09\ \xc3\x1b\x85\xc5\x02\x07\xd3\x92\x00\xd9*\xd7\x89I\x03?\ \x98\x18\x0e\xb8\x09\xc4\xc0\x96C\xa5\xb4\x1d,\xe7#\x00\ P\x10\xcf~\xcb\x06\xc6\xc9<\x8b,.\xd3\x0e\xb6Z\ \x1f\xd5\xb7\x15\x15\xa6\xc4W\x13\xc3\x0b\x89\xdcQrV\ $\x05m\x12\xbe\x9f\x89\x13M\xc6r\x83zx\x19\x18\ \x82\x08\xce\x8eF\xbe\x1f\xa2\x0e\xd8d\xc0\xfc\x0bY\xe4\ \x80g9ed~\x90\xf1\xf8\x8d\xacR\xcb\xcaw\xe8\ _\xd6\x18\x96\xa9\x94\xb7\xac\x14\x04\x09\xb0\x0f\x90\x85\xd6\ \x18\x15UNw5@\xfe\x15z\x01d\x16X\xb7\xa6\ 0\x88l\xe4rmZ:\xcb\xcf\xe0\x86d\x94c\x0b\ \xf2<\xca\xbe\xbe\x9a\x01\x94I\xa3\x87\x22o%r\xd6\ \xf4S\xda\xc9:\x0a\x1fZ|^\xb1\x01*\x07K\x96\ Kk\x82\x88 \x00`\x10\x18w\xb4\x85\x99\xd6\x1e\xd8\ \xe4,\x073\xd0tB\xa1\x01\x9a(\x05\x9b\x11\x97\xb2\ \x88\xa7\x09&L\x17\x9c\xcdRa\xf0\xc6\xcb\xb5\x92\xdd\ \xc0\x05\xe8\x90\xaf\xa4H\xc8Ot\xac*d7+\xc9\ t\x1ftU\xac\x13\xea\xb4\xd0\x97F\xce\x87p\xa4\xd1\ \x1c\x91\x8c\x07r\x88\xde\x8f\xa1\x0e\x1e\x10\x07\xa6\xc0\x0c\ \xa4)\xd0C\x85OJ\xf0\x91\xd3d\x93\xe7\xc2\xf4)\ x\xb1\x00\xbc+\x8co\xb0lk\x04F\xf7@\x7f\x15\ \x1c\xff\x80\xd0\x7fe\x96\xabY\xac\x00\xc7\x0c\x01*\x05\ \xa3\x00\xc0X\x18RT83 \xc7H\x10\x19\xd3\xfd\ `eR\xe0\x18>su$\xa8\x9attr\xa3\xc3\ \xf7Xlp\xe7\xf7\x91\x9c\xee\x0cH7\xe0\xe4XU\ Zm\xcb\x9a\xae\x8cV\xbf\x06\xb6\xf2\x8c@\x12\x16\x0b\ J#H\xa1)\xdb:\xd6j\xf4QT\xe9,\x12w\ \x8c\xb2\xd04\xfbQ\xef\xcc\xa2`\xc0\ \xb3\xb1\xc4\x92\x90\x89\xcb\xa9f\x12\xf8\xbc\x12:\xf6K\ \xd5\x8bg\x0d\xc5\x13f\xb1A\xd7\xac,\x83J\x13\x9d\ \xa7Qz\x9d%\x88\x12\xac\xd5\xefbxD\x88ik\ \x0cC*\x818\x86,\x8aY\xdf\xa0\xc9\xf3\x1b\x16\xbc\ $\x0cZ\x99!u\x91\xb0\xe9\xc2\xa0\xc2\xcf\x22.\xf4\ \xe7\x99\xdf\xfcV\xe68\xeb\xe5\x0d\x11:\x90B`@\ <\xac\x15\x1d\x19UG\xa6\xb4{\x1dYe*\x91\x8b\ \xa93\x88\x8c\x8f[\xbb\x08|Xa\x04\xe7\xc2\x87\xa2\ \x90\xdc\xcb8\x91\x00\x0flU\x05y\x9d\xaf\xd8\x16U\ \xd4_\xd0\x09'\xa7\xfa5*\xd9\xa8\xbe\xb5D\xb6\xc0\ ;\xc4\xc0O\x87\x98\x0dx\xd6\xa0\xa4q\xc4\xb7\x9cs\ \x03p\xdc,\xafYN\xa3\xde\x01\xebG\x92D\x15G\ \x10\xcd\xa5k\xcf\x11}\x5c\x03\xbfcE\x84f\xfd9\ \xd6\xe0u\xa8U.=\xff;\xc8s\xf0\x8dPS,\ @\x87,\xe6(\xbdb5\xce\x9f\x22\xf9\xc5\x95\xc9N\ l*V7j'\xb9!\x16V\x9c\x15RS\xc0G\ \xb6\x18fF\xbc\xf6Y\xb2\xd4\xb0G\x901\xcf\x009\ q.\x0eU\x9e\x90T&\xebV\xd9\x22$\x80\xd0T\ {\xac:\x0a\x8d\x0d\xa2\x04j\x9b\x1c\x8c^\xa5\x0a\xcb\ <\x19F5%\xb6\xcb\xa6\xcce\x1d\xeb\x09\xc7zY\ \x1e\xd7\xc3\x9a$\x8b\xaf\x98\x99\xb4a\xc3V\xb6\xbdU\ \xde\x95\xa8\xd7B\x0b\x8e\xcf\xd1\xa2\x0f\x92\xd0\x8c\x19\x8a\ \x12\x8b\xdc\x1f\xed\xbcZPm\xfc\xb3z\xc5N\xd30\xf8:j_\x13\x17\x13\ \x91\xf3\x8d3\xeb$\xac\x08\x07\x22\x91\xf8%\x060\x82\ \x0c'\xab\x97\xaf\xb1B\x7f\x1d\x101\xc67`\xc3\x18\ \xd4\x83\xe0\xe0\xc0\x88\xaeMn\x84\xaa\x084u\xcb\x16\ |\x84\xfd\x83\x8a\xc6\xcc\x1e\xfd\x94I\x88e\x88;h\ LR\xdb^\xd4vb@.\xdc1\xa0!\x0d\xa2\x9d\ \x1c\xb5\xe4y\x90u6\x15\x8en \xf7O\xf6\x13\x97\ ?\x8e\xe0K\xba\x03.s\xe1x\x1a2\x9e8\xb5\x90\ \x03\xc0\xb4\xe8\x1e\x07|\xc1\xd6C\xd5\x22 \xc7\x13,\ w\x88O\xe2\x0aZ\xf5\x0c\xb1\x0c\xec1\x02\xb6|\x91\ +_\xb0\x03\xc3\x1cF\x0f\xc2\xe62\xbb\x83\x03b\xce\ \x8e\x03A\x01\x1e\xb2C\xf3\x1d\x92j\xb4h\x99\xe5\xae\ \x85\xcd\x07<3Yc\x89y\x1f\xd6\x22B\xddi\xe0\ \xd3\x00\xd9\x94\xce\xc0\xac\x0dx\xbc:0\xcb\x06\xfe\x12\ \xbb\xf7j\xb8\x8b[\xa3\x1a\x85|\x22\x81+gf\xe7\ \xc0ATau8\x22X\xdf\x89\xc3\x86\x11v\x99\xbc\ $q\xcdA\xbb\xc8\x01\x1b\xce-\x0b\x0a\x22r\x81\xb3\ \xbc\x11\x18\x8a\x1d\x100\xc9\x1c\x11\x81\xec\x04M\xbb(\ -\x86\xf0\x99eB!\x9b\x160\xbc\x0d\x96\xd0\xa3%\ :\xeb\xf2@O\x92a\xc7`A\x11k\x07T\xce\xa3\ \x83'\xb8\x9a\x83C\xa3+b?\xe15\xbb\xee\x22E\ X\xe2\x11\xb9G\x09j\xabF\x960X\xe0\xcb\xe6\xef\ V6a|\x8c\x92k\x00\xe3D\xc3\xb4\xa4Ag'\ 1Q\xc7\x01\x1ex!j\x93m#\x1cN\x05\xa3\xd7\ [\xe1\xa0\xf8\xa2\xfa\xc0l=K\x98KY\x9d@\xa8\ 6\x0d;5-o\x9am0\xb2Pg\xd9T\xd4\xc7\ \x17I\xc5\x0a\x90\xa3f#2\x0a\x1c\xa5\x22\xb9#r\ X\x1c\xd3`\xe4\x8aH\x11%\xbbl\xb6I\x91\x06\x1c\ >'\x229\x88\x1f\x8a}'\xd2\x09eTg\x80t\ \xf0\x88\xbd\x05k\x93\xd3\xe2Gz\x0dQ\x06\xfb\xcc5\ \x13\xc5\x8b%\x93\xc9\xc4\x97\xe0#\x14\x0aQ\x03Y\x95\ E\xe2W\x22P\x13\x1b\xf5\xb8v\xedZ\x04\xe3\x84n\ \x09\xe0\x1c\xd2\x90\xdc\x8d\xd5\x03\x140\x8a\xe5\x1f\xc1\xa3\ \xac\x91@\x98\x80\xbfx\x8el\x18\x00\x9b\x113\x22F\ '\x83\xba\x908\xa4w\x0bQsDN\x03\xa4\x1e\xd0\ \x8e\x10\x1b\x8b\x90\x0e\xact\x03\x94Y%\xae\x83\xb73\ \xa1\xb1\x09\xf47\xad\x1c\x18\x9eh\x1f$\x11\x02\x18<\ b^^*P }\xf0\x04\x80\x8c\x92\xf8\xe1\x22I\ \x96?|D\xe0\x863\x1e\xc4\xaa\x99\xad\xae\x80B\x02\ \xaf\x17\xd0\x10\x10\x1c\xe4\x1di|\xb4\xb0'\xa9\xe6\x88\ DQ\x07\x0eP\xeaVDq\xda`y%\xbd\x89}\ \xe52\xa0\x82\x0d)\x02\xd0\x22\xfb%A^[+\x09\ \x00\x84-\xc1\xde\x1c\xac\xf5b\xec\xb6\xd8m\x94\xf89\ \xbb\xa1i\xf0\x1aOe\xcb\x98\xac@\x8dW\xb6\x08J\ \xe0\x9b\xac:\xa3EB<\x1c\x88\xb2-\x15\xc1D\x00\ \xffy\xe0x\x05\xbb\xeeb\xec\xa5\xe6\xe0;1<\xf0\ 3p\x9d\xf5\xd1\xaa\xba\xe7-w\x01\x07\x1e\xd7\xdc\x84\ \x17\xe2\x83(\x22\xa1\x89B\xf0\x22M\x94O\x5c\xb3\x1c\ \xe6w\xbc\xe18\x14J\x8cL\x8bC\xc3R7\xcd'\ \xd6hL\xe4\x08mH\xba\xf4\x1b\x04\x09d\xd9!\x0d\ 6\xcc\xd0\xcd\xfb\xd7\x0c\x8e\x06;:;%\xb2\x8ba\ \xad\xc6R\xdd\x9c\x04j\xb9\x9e(o\xf030\x80]\ \xe2vb\xd9\xb0@j1|}\x83#\x0cl\x97%\ Mc\xb0\xda3\xdb\xb0q\xe1\xa0+\xde\xd44\x8aW\ oq~\xc3\xb5LU\x18\x22\xdb\x93l\x1d\x95A\xad\ K\xa5\x1bR\xa3\x1e[/\x22\xc6\x88\xa9\xdf$\x0c\xa7\ \x86\xe8\x12\xbcj\x85\xfeh\x12m\x7fl1\xb4\x81 \ :q*+\xfbsz\xc1u\x07\x16F:1\x0e\x08\ \x92c\x00\xa4G!*H\xcb#\x80!\xbeH\xc8\xbc\ \xf4\xf0\x87\xcd\xc0O!\xfe\x0ci\xbb\xdc\xbcG\xd6\xda\ p\x0c\x1d\x8bIq\xd7\x87\x22\x94Z\x84k\x22\x89\x1f\ H\x1b5>\xb3\x06\xb0\xadZ\xb1Y\xa4%\xc2$B\ \x96\x96%\x08\xa9\x7f1\xc9u9\xd8e\xf7`\x0dK\ \x1e\x0d\xd2\x9e\x16\xb5A\x8ec\xa4D|`w\x0bg\ \x00%\xa4\x19\xb1j\x8f\x06\xe7\xa8\x195\x5c6\x84\xf4\ \x19f\x9b\x85$\xc5\xd1\xe6h8.%biy\x7f\ E\x9c[\xb1\xdaG\xf1\xbb\xed\xa0\x99B\x8e\xc33\xe4\ \x9c\xd6\x97s\x8b\x9c7BX\x83yK\x93\x09\x92a\ \x10\xb3\xdd\x8f\xb1y\xddY\xc6\xa8\xdb4Ti\x8e\xa7\ \x13\xb9\xc9\x90C\xba\xf4zI\xa6B\xe5l\x90e\x8d\ \x86m\xad\xd8\x10\x90N\x11S\xdeI$\xd6r\x9cZ\ \xc6E\x9cec\x83i\xde1[gM25\xe5\x13\ \x85\x8f\xc4j\xb7\xf3+\xfa\x05\x96\x9d\xe4\xd7 \xcc\x1d\ 9qky\x0d\xa1l\x0d\x9aH\x05H{\x92\x9d\xac\ \xff\xd1+\x10\xd0G\xd8V\xc8]Cz\xd0Nij\ \x97\x89\xa0\xc5G\x85\x85=g\xf0X\x9aJ\xbd/\xbc\ \xf5\xa0\x11aR\xb8\xb8t\x92\xc8\xf5\xf2fHM\xa2\ \xc8u\x9a%\x0c\xd8P\xd2\xeb\xd8\x1b\xaf\x1c\xedu\xaf\ 4\xa8\xb4!\xcf\xc6\x99A\xf3\xc0e\xf4\x1a-qF\ (\xd5k\x1a\x8e\x1e\xc1\x897%\x09G\xc8\x93\xad#\ \x22q\xc3\xc4\x86\x117\x5c$j\x0b\x12\x1b\x81=\x0c\ \x9b\xceH%\xcc\x9c\xc5\xd6\xcc,\x97\x084\xf2\xe1\x9f\ R\x11/,t\x05\xea'\x95\xe5%r(\x89\xe0!\ \x9a\xfe\xca\xc2b\xf6\x12lP\x89\x17\xe5\xca\x89w\x09\ \xbb\x091?Q\x00\x22\xf0I=g\x19\xd3\xb6\xb46\ \x1ek\x08\xb5\x19\xaed(8\x8ep0t\xc1\x0f\x8c\ \x8b\xb0h\x03\x86}2\xdc\x16\x84{\xb92M\xb8\xe4\ \x02\xd7\xfcp6\xc8W\xc6\x1b\xc2\xb3*\xa0\x09\xef\xa0\ \x94\xa2cX\x01\xe0\x1bhdPX\x84\x075H\xdd\ `[B\x953\x02\x95\x19R\xae\xc5\x90KL%\x83\ \xcb\xaa{8\xe8\x06\xd3\xbe\x11\xaf\xa40Ac\x91\xd7\ \xc3\xce\x19\xbc$\xf6\xadZi\x9e\xb5\xfe\x105\x02-\ \xb9\xe3$Q\x8d$4\xc6yi'\x91\x10\xaf\xd9N\ %\xdcFs\x1e\xb6s\x10!\x9b\x19N\xc2\xf1t\xbd\ \xf4B!\x86\xf3\x9aVSz\x9a$\x99\x01\x05r\xc9\ i3\xc9\xe3\x8a\xb1\x04\xa2\xc9\x98\x8c\x87\x07\x97\xac\x98\ \x051\x88$\xf2\x9c\x05d\x7f~\x0b$\xf0j\xc0W\ I\xf2%=L\xd8D\xae #\xa9\x5cx{\xb1\xd5\ \xe4\x85D+A\xd1f\xb5a1\x9d\xcc\xd2\xb5l\x0d\xf5\x8dZ\x5cY\ \xfb\x05\xcd\x81R\xaf\xe6\x84c\x94\x94\x08@+\xa8\x10\ \x04C[\xce\xdfJ>\x8d\xe1\x93\xf2\xac\x0d\x8d\x80l\ \x17g\xf1\x1b\x1cA\x90.-\xc0\xcb\x11\x17\xd1u\x1c\ \x1dR\xf0\x00\xc7|\x075\xce\xc6\x8d(7?\xe8\x8a\ \xc0\xd8\xd57hSc\x0a\xe2\x81\xbaL\xde\x15\xe00\ \x1c\x13\x02\xd6\x1ax/\xa5\x86\xe0\x9b\x99\xcb\xc2\xa6\xa8\ H\x0c\xea\xc5Z]XM\xea\x22\x5c\x90a\xc3s\x1b\ \xcc8\x84\x86|\x01\xb4\x8a\xa4Qh\xf7k\x9a\x98!\ \xc6l\x1e\x09\x8e\x81!\x03*\xda%\x1850\xc0j\ h6b\x14\x05\xdf.\x05\xde4\xfc *\xd9\xf2I\ \x82\x82\xb3\xe3r\xd2\x0a\x01\xa5\xbe\xcc\xa8L'\x12\x10\ \x06\x91^C\x03 \xad\x86bT\xc9r\xc1\xf0\xae\x82\ V\xa7\x15\x13\x0b\xa0\x0d\x8b\x8a\xee\xc9\x13\x8d\xb3G\x83\ \xf8\x12L`\x04 aX2\x02\xc8\x02\xac\xa0\x9e$\ \x9a\xbb\xa9\xbe\xf7$\xeb]\x14]\ \x86\x03J\x02\x97I\xcfi2\x8e\x9eZ!\x1aj\x22\ \xa3\xe1\x87,BD\x04\xbe\x85\xe7\xb0\xd63N\xa0\xc8\ \xa7uP\xa9\x04a\x0d\xa8\x0e= \xa6\x13\xd8C/\ \x0c\x1c\xad\xe21\x07\xaf&Jm\xd0P\xfe<\xe0;\ \xe8\xfa)a\x1e^\x1f\x11}\x03\x07\x1a\x06V\x90\xa0\ W\xe1\x13\xa5WN\x05\xd2%\xe2\x08\x83\xd0\xf2\xa8\xb0\ Y\x85#\x16\x15\xbe\xbc:\x1b\xa7\xd4,\xa2JHF\ \xadr@\x9bd\xc3\xc5\x22W\x8a\x13k\x04\x1d\x88\x9b\ \xd1\x1a%\x19\x22VQK\x86\x80\xb1\xe8\xa15d)\ @3\x05:H\x86\x05\xf1h,(\x98\xc0\x8a:G\ \x9a#J\xd2\x06\x0eW\x10\xd8l\xe4t'>\xcf\x9a\ \xe0\x16@PK\x93\xb0\x98\x1d[\xdc\xae\xf9\x1eE$\ \x0f\xd1\x12\xf2\xc32Q\x85*5\xe3\xb4\xb9bp\xd6\ ,\xd3\xa2\x11\xb8\x05\xe7V\xc4\x1f\x8e\x88{\xf2\xf9\xa8\ F\x8f\x1fgw\xbe\xa6\x9dk\x0bK\x0b;N\xeaM\ \xec\xdd \xbaSCL\xe8E\xa4\x89\x0d\x06\x00\xa3<\ \x19M\x9b\xc9\xcd\x87c[$\xd4G2\x85\xc3\x9e\x05\ Z\x1c~\xb8g\x80\x03\xfb\x12\x98\xb9S@\x09t\x0a\ rw\xe4\x81q\x8f\x98\x18T\x03\xaaI\x894T\x8b\ -\x89\x9d\xad\xa1%\xddXx\xc5\xa9Y\x97\x9a\xd6\xd0\ \xcb*\x97?\xa8\x9dX!\xb0\x15\xe6r\xc5\xc2r[\ _\xd0\xdc\x0d\xf9\xed\xd2\xec/d\xd2%\xca\xad\xee!\ \xe3\xaap\x1d\xf5\x9a\xe3\x9c\x83\xa2JG\xd5\x8c\xedr\ 3{'\xb8G+O\xacjk\x85\xa0o\xa3\xad\x08\ \x02\xb2\xafWFU\xbf3\x82\xa7U\x17\xa42\xce\xd5\ \x00u\x1b\x03\xd4\xb0\x82\xba\x0e\x002q\x80\x17\x19\xd7\ \x16'\xa8\xb1\xb3\x92\x11bS\x0b\xda\x05u\x80\x1a\xbc\ \xbd\x88\x7f\xce\xd9\xc1*X\x0a\xebZFD\x1fZ\xac\ \xffm\xba\x00\x09#\xe4\x9bXKh\xcd\x8c\x9aVU\ U\xf2\xd6\x9aJ\xda\x96\x94$j\xe6p$\x88\xc11\ @\xde\xc3\x93\xf5F\x81\x98V\xf4\x8aE\xc2;b\x1a\ \x1c\xda\xaf\xa3\xa0^\xa3D\xa3\xf9\x8d2o\xce\xd6\xb2\ b\x03S\xf0\x94;`/}\xce\xc0^\xb3U\xa8\x99\ X\x1d\xb2\x08Y\xd0\x84\xc4\xf4p\x05\xbc\xe5\x08\x89A\ 6\x91\x5c]\x1c\xc0E\xe6\x16\xb0\xe1A\x0b[4H\ \x08\xe0)YP\xd1I\xe4%1\xff\x0b\xc3T\x0e9\ g\xd6\x83\x22\xdb\x93\x86\xda\xc5\xe6HDgY\xb4\xa6\ S&V+B\xd7\x976\x14q=\x11\xd6:|\xf3\ \x955\xcc\x97\x18\x02f\x15\x10\xec\x8a\xca\x14\xb9\xf4r\ \xc9\x01\x89\xc1\xb1Y\x1dF\xf5Z\xbd\x02o\x81~\x87\ \x94T\xb1\xa4\x8aM\xcb\x08D\xfc\x90\x09W\x07\x91\xdb\ \xdc^\x99]a\xcd\xa7\xe8\xa3J\xfc\xc0s$^0\ \xe3\x81c\xf3H\xb1\x226o8U\x88\xb4\xcb\x86E\ \x05+F\xc6\xe5\xd0\xc2D\xb6M\xb3h\xaa\x22\xf8.\ \xc8}-?\x91I\xdc\xb1\xf2e\x8d\xaf\x06\x9c\xe6\xc1\ \xc1\xd4\x5cl\xc2F\x1d\xdb}\x8aHh\xf6\xb7W+\ \xecN\xca+\xb8\xd6H\x5c\xad\xef\x18\xd9\x021\x0eC\ .\x0b\x93%\x16z\x92\xd0\xdc\xa0\xc9he<\x8e^\ \xa3\xe5\x02\xf2R\x81\xfb+\xa0\xdfz\xe1L\x17\xb7B\ \x04\xc6ZY$hb0\xb1\x17!\xa9ve\xb72\ \xc36\xa5\xec\xa4\x88\x89*\x95{\x82\x91\x0eB\x98\xaa\ y\xe6\xec\xc8\x18\xd4vcy\xd0\xa2c\x1a\xf4\x0cY\ \xd8\xb6h6I\x1d\xa0\xda\xf2\x9d2!\x86\x15Z\xf1\ \xea\xaa\x22\x11\xd5\x09\xe6J\x02\xbe\x1eQ\xe6\x00X\x83\ Q{\x0c6\x80~\x08\xb2bg\x89\xb6/k\x9aS\ \xc8Z\xcd~D\xfb\x9a\xf4\xe4d\xe2`\xa3\xf0\x1b\xeb\ \x93\x0a\xa0\xb2k\xeeB\x1c\xa3D_\x9d\x15\xbaN\x92\ c\x02\xb4\xd1\x0fUmMX^J\xf6\x06\xbe\x08\xe3\ \x82\xd9\x9f\xb3H\x05J\x02\x07\xe8\xb8\x12\x15R\xc9\xaa\ \xd9\xb2\xa3\xe4DQ\xc3\xb7\xc9D\xf0\x99O\x1d!\xbe\ $\xb9c8\x18\x88~|Q\xe4\xa1\x17\xc5\x9d\x19\x13\ \xcc\x9ev`\x1b\xa1\x86\xf6\x12\xad]\x07\x09\x5c\x8dR\ \x9c\xa6!H\x11N\x1e\xdd\x0dF\xfe/\x9fo\x12\xd3\ \xc8\xa8{F\xb7\xa0S3\x17\xa4\x08\x0e\x80\x182\x83\ \xbe\xa1\xaf,\xc88\xe0\x1d\xb4\xb3A\x15\x0a@\xe8\x16\ \xc7#\x08\x08\xc4!\xf0\xed\x0d{<\xa3$n\xc9&\ \x88\xdc\x0e\x9377#k\x10\x90\x06K\x0c\xd9GE\ \xa5\xcb\xba\xf9E\x8d\x95*\xf1\x87\x96\xff\xd7P\x87\xd4\ \x8ai\xf5\xce\xdc\x8eJ\xd3ZQa\x7f\xa2\x5c|\x1e\ \xa5\xeap\x93\x15W\xca5F\x85\x9e\xc4\x0aX\x89\xa9\ ^J\x13\xc1%@\x8f\x15)\x01l\x04\xc2\xd0?@\ \xe2\xc4\xbf\x93P\x16\x97HI\xeca'\xdd^$\x9d\ \xa29y+\x1b\xac\x0av\xc3z\x15\xefj\xaa\xad\xa9\ \xa5\xd2\x0a)Z\x80\x80\x84]\x92\x1a\x1b'\x95\x16\x15\ \xc58\x08kB\xe1\x09\xc2`\x8eG\xb3n\xb2\xd8\x07\ \xe25\xc1\xfdD\xf2\x86$^/\xf0\xa0V\xa7\xd4P\ \x8bD\xb5\x963\x88\xf4\x05\x98\x1d^\xb7\x05n\x1cF\ (\xb5\x15C5\xdce\x92\x5c\xa2 4\xd4\x0fu\x02\ f\xeb\xaf-{\x97^\x00\xd5\x1c\xb1\xc0Ms\x82X\ j\x119\xd9\xe1\xb5:C\xb7\xa7\x85cZm$R\ u\x9b\xa4\xa9M\x0e*\x98\xb9\xa8\x80AE\xae\x0a\xb4\ \xb3\x15F\xc8\x85&\xf2\x0cI\x0d\x89\x11X\x89Bj\ \xc4\x80%+\x5c\x0eRT\xa2b%\xc91\xa7\x9a\xb4\ \x8e\x0c\xd2$r\x22\x87\xed{#h\x08\xd5Z\x0d\x18\ N\xac\x5c[\x06V\x81\xf8\x1a\x19\xd7X%\x93\x8dD\ \x225\xdd\xd8<<\x99\x93`@\x9d\xe6g\xad\x84a\ \xa4FF3\x8a4Q5$5Sb\x07\x8d&\xb5\ \xfa\x0a\x9a\xe7\x90\xa4\x06\xca\xaa\x22Re\xa8.\x05\x0e\ (\x22\xd7\x92t\x00\xab\xcc\xc2\xf0a\xc9[\x0c\x5c\xd1\ d\xb5\xe3\xa0\xe4\x7f\x075\xf4%\x9f\x0b\xb0@\x12t\ \x92c\xb8@\x22\xd2\x05\xceAz\xdf&d\xec\xcd\xa8\ \x01\x07\x84\xfa\xd1\x84j\x8a\x08\x16\x1b\xeeD]\x18#\ \x09K\x1a\xd6\x14\xdd\x17\xc4\xdc\xae\x90P\x9c\xfav<\ \x94\xa2G\x937(\x0f\x0b\xc7\x09}\x15\x95E\xdd\ \xf6\x92\xb8=1c\xe1\x18\x06NB\x02\x89'\xed\xdf\ A\xcd\xe8\x9f2\x17\xdfF\xd1C\xa8\xd5@_.\x94\ \x0f\x05\xc8\xe8\xc4\xb8>D\x0a\x90\xed5\x1aL\xca^\ \xa2\xc0d\xa5\xe1T'N2r\x8d\x0c\x09\x0b\xce\xf3\ [\xc3g\x92\xb4p^\x94R\x97A8\xa3\xd5\x22\xa8\ +\xdftyl\x05\x7f\x8e\x1du\xfa\xd8r\x8bz\x18\ \x07\x91\xab\x91a_3e\xb4Y;E\xe7s\xb4g\ hog\x8d-\xcd)\x5c1\xe1Ib9\xb6a\x00\ \xeaH\xa4P\xbc\xe4\x96\x13\xf6\x84k\xe7\xda\x17\x0c'\ \xef\xf3\xb6\xc2\xd3+\x1e\xd2\xb2\x88kqN\xdc\x05W\ \x1e\xccf\xa5\x03\x13\xc0,.r\x03\xa8\x22\xcd-\xe7\ \xaa\x9ad\x10\xecv\x92\xa6\x14\x84M\x1c%]\xc4\x22\ \xb9E\x095\x96\xc9\xb8\x12\xd8\xceQ\xab\x86l\x8b\x16\ \x870\x9b\x12\x1a\xfc\x09\x22Om\x8b+\xb3\x85\x9f\xb4\ v\x5c~\x0e+\xef\xb6\xc9E\x91\x87e\xfbFsk\ \xca\xa0\x98\x05\xf5\xd5\x14\xf6\xa5\xf5\x06\x8e1\x86Z\xef\ Z\xc5\x8e\xd2 D\xc3\x85Y\xd4\xb6\x88\x07[G\xad\ O\xcb\xa5\xbf\xe2\xe2m\xe6n\xa9\x22\xf2\x83Vw\xab\ -\xe75T\xe4\x84L\xd4\x0cU{I\xe3]\xc0\xf2\ \x92\x1b\x8a9\xa0\xf5\x1b\x84~\x80]O\x0f\x1d\xc1\xab\ \x22EQ\x8d\x0a\x87\x03f\x8b\x95e\xd4\xa4i\xe8.\ 8\xb1(\xcaT\xf30jW\xb5Xg\x04\xf66\xc9\ h\xa4\x89q\xba\xb5\x8faL(\x07\x02\xb4B\xe3\x16\ .+-\xa2.\xc9\x8dV\x97\x18\xd1<\x8d\x82\xc1\xca\ \xf0\x83\x04=Z\xdc\xa4Q\x9d\x0b\x1a\xf1\xab\xc8\xab#\ 7(\xc16\x94\x22\x03\xe6F[\x08\x8d\xcb.\x91\x86\ \x19Bn\xde!l\xa7\x0d\x032\xd8\x9ec\xbd\xe8F\ \x8e\xd0\x8b9\xe3\xd0\xfe@\x99\xdd\xe3f\x89\x10\x0a\x16\ \x16}\x02\xfc\xfc\x8a\x0b\x0e5\x1d\xda\xaa\xc3\xd5\x8b\xb2\ \xb6U\x8b\x8f1\xe9M\x08\x99\xc9\x83\xa8Zh!~\ I\x07\x81Y\x94V\x12\xd2<\xe4\xda\x90\xf9c\xe4\ \x89\x0b\x8bJ\x8e\xa0\xd5u\x90\xda\xb5\xc0tE#R\ \x0b\xa9\xd3\x82\xeeO\xb0\x9e\xc4\xf1\xd3Tat|\xfe\ \x0c\xb4\x93g\xbd:i\x1c\x09'P\xe4\xa6\xcd$L\ \x87Xg\xe4l<\xe8\xc2qy\xadC\xcb\x0b\xc0B\ Q\xe3\xe5\xf8\xd4Q5\xe3bE\xfdGV\x06/,\ zQ\x85\xa5\x18\xed\x82\xa0R\x05\x96\x9d[\x8c8\xd0\ }\xe4\x06\x1dp\xa3\x83E\xfc\x1aiL\x05\xb0\xb1e\ \x9d\xe6\xab-\x9a\x03\x806\xf5o\xac\x13\xb5;\xbb\x07\ \xb1iC\x98$C\xd4<\x80U\x98Nj\x89\x80$\ Q3\xb6\x0f\x1b\xf2\xbaJ^\xa7\xe5\x14\x8c\x5cJ\xff\ \x01q\xc8\xbdl\x8b\x5cH\x9d\x1f\xb7\x00\x09\x82\xd3\xf0\ \x0c1b\xc1\xdd\xac./\xd3\xe3\xd3\xbc$\xde\xc0\xc1\ \xb2\xa2.\xbc\x0a\xf7\xed\xe5&\xb5\xfaU\xdbJ5\xa4\ =\x0a_\xb7L\x14\xf74\xf0\x836\xd1\xe0\x84\x97\xa4\ \xcb\xb5\x91\xf1f\x0e\x0az\xc9\x87D\xed\xa4\x10%\xd4\ ;\x97\x0cG\xa9@\x91\xfcN\xeb[\xd1B\x01v\xf7\ \x9a}\xc2 \x813A\xd1 \xf8\xa3\xd2\xbaU\x00q\ \x83V\xc4\x8c\x9c\xfc@\xaa\xcdD\xde\xbdF\xe8\x8e\x8f\ \xc0\x8d@\xb1\xb3\xdd( \x13\x14\xf2W4IA\xe0\ \xd9EM\x99$\xa3\x95\x18Y&\xe4\xf0\x1b\x11\xed\x00\ \x83\xacR\xe4D\x00\xb9\x06\x81-~D'\xd8p\xe4\ \x9c\x0bi\x7fnn\x83\x9e\xe2\x85\x13lI\x84\xbb\xe3\ \x93\x95\x11\x90)\xb0@\x91\xe1\xd7H\x90\x85\xdb\x87\x82\ \x07F\xf7\xda\x09\x15&\x85\x8fv\x17,i*Z\x0b\ \xcd\xc6UfL!\x0em\xf4\x5c.\x11\xb8x\x03G\ \xb7\x05\xb1\x8c\xd1u \xa3A\x0d/\xb9eL\x5c\xd0\ Rj$\xbe\x9c\xfc\xa9Z\xcf-G6\xf3/\x03\xe2\xc4c\ VLT\xeb\xc3TG\x99\xb2\x91\xc9\x8aRf\xfc\xca\ \xa4\xc5\xe2\x9ax\x89\x8cQT\xec\x8a\x17Ps\xe4\xa3\ \xc2T\x8a\x8e\xda`\x03\x01:\xf1h,CrZr\ Q\x93\xf4Q\x11\x8cB\x9fv\xe7\x02R\xd5\x89:\xb7\ \xd2\xd0J\xe3\xfaZJ\x05=\x8azE\x8f*=\xcb\ \xcd'\x0c\xf9f\x1cx\x04\xd8\x0d\xe7\x8fE\x9a\x1a\xc4\ \x80g&\x0f0\xe3\xd0S\x1d\x86|I\xc8\xae\x92n\ \xe6\x80\xe2TB\xc5\xe1Lh9\xea\xc0\xdd\x5c\xd6L\ \x1e1\xcc\x18[\x90\x0e\x86\x97\xcc\xe79q]\x22\xba\ i\xa0}K\xe2J0R\xe8l4\xe6\xb0=r\x8d\ u6Q\x9f\xe7\x08\xe2\xe4\x91bC\x1c \xc1}\x0e\ 4$Drt\x5cO\xc8\x07\xc5z\xc4\x959\xbbh\ \x15R\x1cF\xad\x15\xe1\xe3\x0b\xe6+v\x948\xd8,\ \xd5l\xc4oy\x07\xfb\x89:\xa52w\x9ch]\xc7\ \xb4\xc1\x87\x16\xac2\x22\xb44\x9c\x98\x15\x13\xb4\xa1\xc6\ \xacZ\xa0-\x1a\x92Q\xff\x86\xb8k5\x9c_\xb5\xdb\ \xccA\x98\xf3\xb3J-\x004\x1bA\xa7\x15u\xca\xb4\ \xe1\x96^\xc2\xf2S\x91\x22;\xd9\xf0\xa7bR\xc2O\ \x08\x9c\x0fA\xc8\x9fv\x95lgHG\x92\xaf\xb4\xe2\ Z\x22\xa6Y\x0f\xb8veP\x84\xa0\x17P\xb4^\xa9\ \x06a\xcfU\xb3)\xa2\x0f\x9a\xb7\xa3\x08\xc5:V\x05\ 4\xf3\xe7\x0d\xdd\xecZYT\x1e$\x8eo\xe7Z\xa3\ \xee\x0a\x8f\xe2\xd4\xe9\x90/\x9b\xce\x9a\x80+*}\xf8\ \xc2P8H+q\x0a\xc0\x8cK@\x04K\xfd\x09_\ \xe1#:n`'\xe9\xbf+\x1e\xd61z\xd62J\ \xc5r\x5c'\xe2\xc8=\x0eOq\xf1&\xbeV\xe2\xc0\ MX\x9c\xa6\x8d\x9c\x96\x1f\xa0\xc0KC\xc1-\x82\xd2\ D\xa6eA\xa7g\x9f\xb1i\x07\xfb$'F\xe7$\ \xe1r4\xa5\x06\xba\x22rQ\x1c\xe3\xda\xd0n\xdd#\ \xe3*\xd5\xab8{0\x1a\xf1\x8e\xb8n\x14Q%\x84\ \x1f%\xa7\x1f\xb4d%\xb7\xf4y\xeb\xc3\x06q\x9f\xe7\ &0,\x88\x10\x14\x93K\xed\xc1\xc6@\xc9(P^\ \xab%N3\xce\xa0\xb5\xdaAt\xc90\x92\x98\xbc\xfe\ \xe4\x0bw\xb0\xcaQ\xbc\x13\x07g\xa5\xb4\xf6>E\x82\ u\x0e\xbe\xa7\x9a>\x0a@\xeb\xae\xd5\x99\x10\xe1\xdc2\ *\x1a\x5c\x99\xa1s\xad\x8a\xc5\xb0\xb6\x99k\xbd\x1aT\ \xacu\xb6\x93\xa1\xee\x86\xb9\x19Q3)S\x17QH\ \xdaw\x0f\x06\x9f6\x91\xe1\xae\x08u\xf67\x9a\xb2\xa3\ =i\xa8\xc1<6\xd8[C\xffOs!*T\x10\ \x02\xd8\x5cD\x0d\xb5F\xe6 \xd6\x80\xab\xfc\xc5U+\ -`\xce'\xa5B\xd2s'LTu\xb3\xdf\x8f\xf8\ \x12\xf2\x16\xac\xd2q\xdc\x16:6rS<\xc8\xbc\x11\ \x1e\x03\xccV\xcf'\xc2\xc0%H\x82\x8bL|*+\ Z'e\x8eJ\xa2l\x98QPh\xa05\x22v\xc9\ \x91\x01h\x18\xb1\x08\xd5\xd0T\xf3PB<\x06\x91O\ \x0c\x97\x03ZH8x#\x19g\x8a\xe9\xc5\x9d\xc0\xac\ \x12\xb9\xb6h\xc7\xc3\x85\x1f\x22\xe6\xe91\x02\xb9\xdd\xa8\ aO\x0cc\x05M\x91\xc8f#\x0f\xedU68\x02\ \xd6\x8dbO\xa1\xdffE\x866r'CZ\xeb\xf9\ B~\x1b\xfa\x0c\xce\xd4\x88\x22\xf1\xd0\x80\x82F+\xe1\ I[\x00\x94\x00\xeb\x0f\xbd^\x02/\x8b\xb4Z\xa0\xe1\ q~3\x90[4[\xd4Vp\xbe\x87;W\x03\x89\ \x80>\x9f\xc8\x0c\x07^md\x19\xd11\x13c:t\ \xc8\xa0\xad\x12Pk\xc4A\xb9\xc4rI\xed\x024x\ HX\xd8\x81{W\xa9iZ%:\x99`\x9dcC\ \x13\xd7\xe5C|9\x86h\xc3\xaaC\xd0\x18b\x89a\ \x83i\x14\xf5\xachg\xbclH1t\xe9N\x5c\xe5\ A\xbf\xca0\x05\xf2\xd2\x92\x15\xbb\x16>G\xd0\xf6\x06\ F\xe0t\xc8\x0e\x05\x0d\xe4H*l\x1bJr->\ \x84IFT\x11OV\x00\xadhZ\x1a\xb8\x8a\xc2\x08\ \x148iu\x81\xa2\xe6\xd8i\xe1\xf0\x5cm\xba\x0d\xb8\ \x8c*\xfd\xed[\x87,,\xe0\x16\ yO\xee{A\xfa\x10\x1f\x92>B\xe2\x9c\x9c\x06\x84\ \x93\xf9h\x13\xc3a\x1e\x1c\xa9\x08Q\xc8\x9d\x02\xd1(\ \x14cX4n\x02\xca!pO\xa4\xc8\xa2 q\xa0\ \x83n\x87DA\x03@A\x84\x03\xaaF\xdf*2\x8f\ *ex\x10\xc2\x01\xcd\xff\xd0\x1d\xb8\xb0\xc0\x82\x8cr\ 8*e\xe0\xc0\x10W\xd3\x05\x92\xeb\x06S\x83\x1cD\ 9+K\x07\xa4\x9ea\x88\x1b\xf4\x02\xae\x89\xbb\x1f\xa2\ \x99\x7fd\xa0\x17'\x9a3w3\x8aA\xa3A\x10\x0b\ $\x1f\xb9\x17\x83\x05RI\xfa\x12B\x82\x90R\xe0,\ \x0a\x8a\xd9\x0b.\x8a\xd4\x1dZ>\xd9\x1e\x02PN\x17\ Fv\x96\xeb\x17<#\xceCF\x7f2\xe9<\xac=\ #\x8d\xf4\xf6\xc7N%.\xa7\xe7\x9e\xc5\xe4\xfd\xe0\x0c\ %\xee\xe3\xc3@r,\xe1\xc8\x87\xc4X\x06D4\x00\ \x83\xc2\x91\x14@\xbca\xe4\xdb\xf6R(B\xd27\xb6\ 5j\xe0\xa8ck\x8f\xb4\xb1\xb3\x04\x81&n\x8d\x13\ \xab\xf4\xb2m\xe0Y\xef\xa5oMe\x8c:'\xc0\xdb\ \x8dl\xc9\xcc7\xa2\xe8\x22j\x1bA\xf1\xc9`d@\ \xfa\x8d\xadf;q\xb54=`\xe0\xf3\x96p\xc4Z\ \xe5\x82=\x5c;c\xe4:+\xbe\xb4\x08|\x15}\xd1\ \x02\x84\xa3\xfcN\xf6\xdc\xeae\x8c\x887\x92\x18\xa7e\ B\x83g\x80\x98\xb8_\x0b\xe8h@\xbb2\xbcm\x82\ \xda\x9f\x88QX\xeeC\x0d\xe3\x17\xc0\xbd\xa4\xad\xa1\xd1\ $\x14\xcd\x9e\xb9\xec\x81d6\xc3g\xb9\x83`\xe2+\ d\xc3\xf2\xdc\x06T3\xaa\xca>\xad\xe6\x90{\x9aD\ n\xe6\xc7\xc1]\xaf^\x81\x06{\xb5\xba\x01]K\xc9\ qj\xb0\x19\x0e\x06\xc0\xb9h\x98\x04E,f\x86\xcd\ \xc4\x16\x9e\x95\x85l\xd1Ym]\x81\xfa\x07@\xda\xb5\ \x13\xae\xfa\xd7\xa9\xaf\x84\xaf\x03\xc3\xbf\xbdV\xdak\x89\ \xd0\xdc\x15Y3\xc3h\xd7\xc3\xa5\x0a\x95\x8c_\xc9\xf0\ \x14nn\x82&.\xb0\x97\xd1\xa3\xc7s\xee>H\xef\ \x19\x94(\x0b\xac\x00\xcdx\x00\xac\x96\x04\xacE\x02\x19\ \xf2]\x9a\x1b&i\x8a\xc0\xc7\x97\x02m\xcd5>\xe0\ \x01n\xfdM?\x95\xac4\x9d\xc1M\x88\x93\xc1<\x1d\ ZOT\xa9O\xcb;\x0d\x05\xb9\xbd\x8b\xe7\xd2g\xc7\ \xe1\xab\x94\xa5\xe4\xc6!-\xe2\xb9\xa4\x0e\x11\x03q\x13\ \xb8\x81\x0c\xc7P\xa5\x8b\x9d\x93d\xaf\xe3\xe3\xc1\x91\xbb\ H\xdc\x86<\xe1\x13F\xe0Z\xe0x\xe1\xb5\xa3\x88\x8c\ ;\x88{\xcf\xd0Y\xf4\x22B\x19<\xb4\x97\x13s4\ p\x90\x09\xfd~6\x0c\x19\xe5'\x8d\x0cL0^\x8a\ \xa08\xc7\x22%\x1e\xd2\xd9,\xed^r\x83\xb6\xb8\x85\ F\xf5n\x84*\x1f1\xc0%m\xbfi\xc1\x1d\xb3s\ \xc9\x91\x0c\xd7\xea\x98\xc4\xc5\x9d\xabB[%\x09=\xa3\ \xd5j\x8f\xc8\xb28B\xccKx*\xb1<\x96b\x8a\ \x91\x1b]3N\x91\x033\xad\x81\x9e\x9bg\xae@\xaf\ \xed;\xaa\xa9\xcd\x0c\xc1\x9c\xf3=RW\xb3\xb8d\x99\ T\xb5\xd8$K\x1f\x8f\xf9\xba\xceO=\xffp\x90\xb0\ \xbc\x17\xbfu\xe3\xb2\xa4w\xd4\xeb\xc1\x93X\xd9T\x11\ @\xb95~\xc8\x82\x7f\xeb\xde)\xbeMTT\xb0\xa8\ \xed0\xed\xb4]m\xda\x901\xa7^=\x96\xaa@\xa3\ \xd6L\x9a\xc9[\xd2\x8c\x9c\x90\xf1\x12\x09\xd8\xc4.4\ \x97\xe6@\xf2\x16\xa8\xda\xe2\x87R\xda\xb4\xbdV#\xcc\ 0\xe6T\xeb\xb3\xd4elICqw[x\xcam\ s7A}\xb5\xd6:5\xeb5\x1cP\xe4:\x91\xc0\ \x9b;\x22\xc6Q\x83\xec\x92\xe1\xb7\xa2\xe7%\xc6\xa9\xb1\ \xb2\xe6\xb2\xe6f\x00\x93\x07\x02H\x0e\xa3Z\x07\x163\ \x9c6\x89\xe21\xd5\xd6\x19\xc5\xcfXDeYmT\ \x0b\x7f\xc0\xa1\xd9\x1b<(\xed\xfe\xc3\xa7\x19\xb0\xcd\x11\ \x14\xd5^\xe7\xbe\x22\xdc\xf9\x90\xe1\xde\xaaq\x82\xf4\xdb\ \xc0\x83C\x17{\xa9\xa9\x9e{\xd9j%\xaav\xfc\x90\ \xbd\x80&\xad\xb0=\x18.D\xa4B\xb6\xb0\x18\xe7\xda\ fQ\xadlv \x90\xc2E|\x01\x1c\x17=\x0f\x14\ $\xb6%\xb9[a\xb3\xc2\xd9(\xc4\xb5\x0b\xea\xc9\xa5\ z\x14\xdehD\xccYMk\x89\xa8\x82_\x13T\xa6\ \x91\x03\x03\xd0\x80\x07\x16\x03\x0es \x92\x92\xcay\x80\ \xc4\xb5\xe5P\xd2\xf84\xb0\xec\xd2\x07\xd1\xb4\xce\xe5s\ 8S\x1fR\x98H\xbb\x12k\xbc\x83V\x0c\xb9\x06\x01\ \x0c\xc0`\xd6\x96y\xd2\xc5#\xa2\xcd\x16\x1e4\x01\x80\ &\xbd\xc3\xe0\xe5\x16\xa9|v\x0a\xb3\x01\xa0\x0e&\x18\ c\xd5\x5c\x11\x94\x0d\x97r\xe3\xe0x`\x85'n\xc7\ \x8a\xf3\x1f2\x87\x01\xbd\xd4\xd8\x89\xa7\x89\xa0\x1e\xdb=\ \xdc\x82\x0a\x0d\xac\xb8d\x9c\x1b\xef\xb1\xa1\x07\xff\x9d\xcb\ \x84\xe1\x22\xc3\xab\xd4c\x00\xf0\x9b8u\xbb2\x16\xcc\ \x05\x86\x9c{\xcb\x01\x5c\xf8\x8a|D7\xdb\x5cl:\ \xba\xca\xad\xc4\xd9\xfe\xaa\xeap\x94\x8c\x86aQeY\ \xb4\xe2\xb10@\x1c{\x8e\xae\xda|j\xd2FN\xd8\ &\xaf\xa8h\xe8\x1cV\xe9\xdd\xe0\x1a(\xa4\x81D\x95\ \xe1\xc2\x5c\x09\xc5l\xee\xb65\x95\xadop\xbbV\xeb\ \xc7p\xadf\x1ew\x0at\xed\x1c)\xd7x\xb36\xfe\ \xd7\x98\xb9\x1e\xa3 \xd2\xaeM\xa4a\xa6w.!7\ 5_\xc0#*\xcc]\x867[\x19\x13D\x8e\xd9\xf9\ w\xf4Z\x15\x01G\xbf\x15\xd5^\x15u\xa7\xc9\xb2\x86\ \xd1\xf7c;W\x22\xccAw\xb9\xe2js\xc5\xd6\x8a\ NjR\xbd\x8f\x8e*\x88B\xf0\xea\x12\xael)\xc7\ \xe6\x86\xc3%\x15a\x225K\xb2F\x8a-jK\xe6\ ;\xb8\xbf\xd6ui%\x91\xe25D\x22F\xc3\xc7g\ \xe0p\x90\xcc\xac\x08\xdb\x04T\x0c\xa4*)y4#\ \x83A\xaa\xb8\x06.\x81\xf2l_\x10\xb9\xc6\xccf \ t\x0fT>W\xcd\xb0\xd9\xe0\xb8c\x95\xe5\xe6z\xdc\ 8\xd6K\x0b\x8b4\xf8V\x0c,B\xbc\x85\xeb\xb4n\ \xd9\xb1z\xd1\xe6\x22\x1b-d\x9b/\xe7\xddR\xf4\x80\ \xec\xb0h\xaa\xb6\xdfr\xc5\xfd\xe0,\xa3T\x9d\x91\xae\ `Y\x01\xaf6\xc1\x10j\xf9%Mq\xb2K\xea\x04\ \x12\xc1(\xed\xb9\x9dV\xe0z\xa5\x8d\x16XK\x06\xbd\ \xd6m\xbc\x92\x0d\xab\x8aC\x00\xa4\x9fw\xc8\x19\xfd\x09\ *\x80r\xd0\x8a(\x17+s\xff+\xaez\xf3\xd20\ \x86m\xcd<'\xab4\x00!l&\x85\xfa\xa1\x84yn\ q\xa2}\xa8\x07X\x81\xc1I\xb7\x9b\x08D'}\x8f\ \xe1\x06\x18\x90\xf4\x8eT\xffr\xcc@\x14\x0d7\xe0\x93\ N\xdcYZH\xe3e\x91\xbaS#\xb9>\x90\xbbm\ \xa5\xc9E\xf8\x0e\xd7\x0d\xd0!\x07\xd1H\xd7\x83I\x0a\ \xe8\x84Ku\xef\x1a\x8c\x84[{C7\x09\xd4\x9b\x07\ \xf6l\x9f!\x90\x0d5\xda\xd8\xab)wx\xfcM\x81\ :\xab\xd0\xd2\xda\xd2\x98^\xec\x0e[v\x10\xc9V\x22\ \x19M\x13+\x8e@c\x14^\x02\x102\x92\xdb\xceZ\ \x0a\xad\x94K\xe1\xbd\xa2=]\x14q\xee9<\x85\xc8\ &\xc7Rs\xe6\xee\xae\xa9\x14\xe9J\x1c\x18#\x9f\x19\ L\x85,\x13\x83\xb7\xd0)\x8e\x8f\xc0\xa6a\x18>\x1a\ \xd1M\x96\xc5\x0dza\xd2c\xb3\xdf\x8f\x00d\xe2\xce\ \xa1rl\x11:\xf3\xd3\x000?4#\xa8\x05\xb0\xe8\ \x87\x93\xb8\x80\x80}\x15\x9cFO\xca\x07Y\x1d\xc1d\ \x80\x1a\xd1\x8a\xdbZ\x11\xf0\xe4\x84r\xdf%\xbe\x00\xc7\ !\x02\x9b%m\xcb5),W`m%^RL\ k\xe0\xaeE\xd92r\x96#\x92@\xcd!\xc5\x80\xf6\ )\xb8\x1d\xc0k\x80c\x01\xe8\x06d\x0fN\xa3+\x9c\ \xe5\xf3Xl\xf4\x0a\xb0\xdcb\xbb&\x16wD\xf5t\ ;~\x85\x8b3\x82\x84\x03\x8c\xf4\x19E\xe7#\xb2/\ `\xe1z\x8e\xc7f\x86\xd0\xc2\x8b\xe4_C\x1b\x19\xc0\ F\x10\x97\xd9n\x84\xe5\x962H\x15'I\xa9q`\ \x07\x9c\x9d\xc9;\xaf\xd2\xd1\xc5r\x9b9\x0f\xe0\x01\x9f\ \x19T\x90\xc5\x83\xb0F\xc3\x0d\x1e+\xc9\x11\xd0\x93\x18\ \xc0\xd0\xd69\xf3\x19\x0d\x98\x99\x1a\xa1j;\x22\xd7\x17\ \x19B\x81\xce2\x11\x85R\x1c\xd2\x00\xaf\xf0\xc1\x18\x1c\ \x14\xf0\xda\xbc\x14'-\xb3\xe1P-7\x9b\xb9\x82\xc0\ \xcaV\xbaT\xe5\x9c\xb9\xbd\x18K\x14\xb6=\x91\xda\xab\ \xe2\x97&\x9c\xf7)p;\xef\xc4\xb1M\xad\xc8D`\ Q\x8e}\xa0\xca\xd8B W\x0ag7\xb0\x9e^O\ *\x89\x9c\x19\xa8\x80\xc6q\xe1;\x9a\xfbC\x07\xcdR\ \xd4)\xd8\x0a\xc6/\x8e\xaf\xa8\xca\xdbRK\xc2`R\ \xe5n\xee\x82#p{\x81\xf5\xe0\x8e\xc2E\xff\x93\xf6\ \xe0\xd5\xa6\x0fsy0\x9b\x17\xad\xcaG\x83\x02s\x91\ \x8c\x06&7\xbc\xf0\xed\x8c\x05\xab`1\xc6\x17\xf0q\ ^\xa1\x1d}\x12\x8b\xbc#\x15:\x8akrZ}\xa6\ m\x8d\xbc:y\xcd\x9b\xf0zX\x05[\xf1i\xd84\ @Ck\x12!==\xa6\xd6zS\x9a\x87\xb5c\xc6\ \xda\xb5J\x93\x9652SkZ!\x9e[;\xe6\xa0\ U\x1c\xa9\x8cT\xa4\x06\x97D\x86\xed/'\x1d\x1d\xd0\ \xfe\xd4\xcc\x80\xac'[H\xab{\xaepk\x05GN\ k0B\xe7nib\x8d3\xf6a>\xb7H\x8b\x94\ 8z.\xd0\x03\xdd\xe3\xdc\xb6\xb8]\xa7\x86\xa7\xb3\xad\ \xa0\xbc\xceU\xf3\x9bvNC\xed\xfdp\xdb\xaa\xf44\ }\xa5v\x0f{b\xc0n\xb88C47~k8\ 5%\xadK\x8c\xce\x16jyq-K\xd9\xben(\ \x05m;\xc4_`\xd9-\x0dZ[c\xc4Q\xab\xff\ \xec\xd8\xe0'\xa6\xbb\x90\xb2\xbd:\xe75\xac.PK\ l\xb4#F\xd0pG\xce\xfa@BN\xe0\xc1\xed\xa8\ \xacy\x7f\x22c\xc0\xa4\x87\xc3\xd82\x1cNJ\xb8\xb4\ W\xc7\x5c\xc7/\xf1\x84f\xe1)\x14\xc45\xf4\xa6\x95\ \xbai\xe4\xcf\xb8Q\xc2 \xa7S4\x87\xc6s\xaf\x22\ >\xc9#\x8fAr1^\xa2\x16\x8a\xd0F~\x95\x9c\ \x06\x90R\x81S\x05\x18\x1a9J\xe8\x9dNR\xc6E\ -B,\x1a\xb1\xcbR\xdf\x8a\xfe?\xa3\x02l\x00\xf8\ \x90\xe0\x0c\xf7nmHP/\xbf\xa6@P=R\x03\ \xf5\xf3\x0a\x97f\x84\xf2$\xe5\xbd\xcd\x88\xd5\xda\x0d\xa0\ P8\xf0c\xc5`\x8dCe\x16\xd4\xa6(\x9e\x0b7\ 5\xfa\xc0\x9c\xdb.\xa4\xc9\x83A\x01\x8a\x8c\xa8\x8do\ \xfa\x0b\xae\xf9\xd5\x93e\x98\xba\xe1\xf6iO.\xb5k\ \x10\xd1\x1f\xa4\x91G\x83\x03\x04\xbbs%\xaa\x09\xceX\ \x94\x80e\xe6\xdc\xbf\x1a\x9eQ;c\xa1\xe5%W\x81\ 4J\xd3rf\xbdt\x0dC/\xf0u\xc9\x8d+\xd8\ \xb4u\xc3\x94+L\x19\xa0\xcd\xcc\xf1\xe5\xe0`\xb2\xe3\ \x02\xaa\xd1\xf1z\xc9\xa6\xc0\xe5t\x8c\xec\x89\x05_\xc0\ \x05\x89p \xdc\xb1!m\x99\xb2\x80\x07\xdb\x95D?\ \xda4\xacv\xe1\xd7\xae\xad\xfa\xdc\xe2\xa6@'f\x81\ \xdb(\xac\xa26X\x85,\xbd\xe3\xd8>`\xa2h1\ \xce\xb9\x11\xcb\x91\xfc\xccad\xee\xfd-X\xb6\x80\xe3\ R\xa4N\x8c|\xd1\x8c\xa4\x19|l\x0eG:\xb4u\ D!9\x1f\xe6\x8b\xe6\x85\xb0.I\xea!\xed\x0c\x19\ \xef\x03\x1f\x16\xc3\xd5\xcd\x00h\xa3;\x9d\xb5r\xc6\x0c\ \xcc\x0a\xd4\xc7q\x0f\xbd\xc2\xf6\xb8\xc1)\x1a\xe8\xc3\xa3\ \xadq\x10\x9d\x0e\xdc\xe4Yz'\x92TwE\xcaS\ \xb9\xe5\x22\xcdK\xba\x01\xc6A\x9a\xb3J\xf3\x13)\xf1\ W\xb8\xb2v\x00\xe0s\x03\xb8\xb5\x22p\x11v\xe0\xd3\ '#\xcb\x22(\xd0\xf9T\x08\xb1\xbe\xd1\x83v4\x0d\ y\xa8\x09\xfav\xa5\x99'\xc3\xfeE\x0e\xc0v\x94\xea\ \xe4\x97\xbd\x1cz\x02\xbf\x0a`Y\xcf\xad\xf7\xb8\x974\ \xb6\x9cQA\xdc\xa5\x1b\x9b\xe1\xb9&\xb1H\x00\x0eP\ \xc2\x00\x8b\x88E\ \xdc\x9e\x91\xbf^N\xdc\xc3I<\x9c\x8e\xe0~'\xf3\ \x11~\xadg^m\xf8\xd0\xa0\x11z\x84/\x83\xf89\ \x1a\xae\x8c\xa3\x86\xad\x02\xb7D\xd9d3h\x93\xca$\ Q/\xb1\xe4\xe7\xe3q\xa2\x9a\xe0\x1c\x9eg(\xc46\ \x8c\x9aE\xd2\x93Sg\xa4\xc9\x18D\x136\x18V\x84\ \xf6\xe3A)d\x91\x00\x1d\x1f\x0a\xe9\xe78\xa2@6\ d2\x12e\x10m\xdc\xba\xd3\xc8\xb5\xdb\x1e{\xd2\xce\ \x08\x08\xf3K3p)\x9a\xf8\x9d\x10\xab\xb6\x1d\x90#\ \x1d@P~\xaauN\xdc\x9dF$\x99\x19\xda1x\ ZW\xc3U\xe1p\x0b5\xaf\x1d$$\xa1\xad\x8b\xd9\ \xca\xd5\xb26\xe9\xb4\x0b$\x92V7\xd7\xfe\x8a\xb1\x19\ I\x02\x99\xdab\xbf\xedM\x0b+\xa3T\xdcK0.\ J\xf7\x0a\xd7r\x1cz%\x18:\xb1_$\xf5\xa9\xf1\ \x01\xa5A\xf4+\x0cC\xd2\x90Gd\xdbh~h9\ \xe6\x0a\xe1\x08\x11\x18l\xaa\x09\x9c\xb0\xe4Ac\xb9\xa2\ d\xb8[\x85tn\xb0\xd2\xd0`>.N\xc0\xdf\x00\ \xdex\xae\xa61\xdb|W;\xf9c6\x12\x84NY\ \x0eizZ\xeb\x83\xe6\x0a\x22\x8c$\xf3s\xb2&z\ 5\xa7\x04\x14D(\x90\xc8Ap\x8d\xfa\x1a\xc8\x02\x8d\ F\xea1@z%qk\xfa\xb2K\xad[\xacv\xdc\ kk\xa1M\x99p\xb2L\x90\x07S\xaccjzO\ \xfb\xdd\xa5Q+6\xac\xa4\x9eg\xc1\xaab6&~\ \x84\xb4\xedc\xc3\x0f\xa1\xd7N+\x85\xc0\xb3\x05\x0e/\ L{\x14\x0d\x06F,\xa0\x849H\xc9_\xe4\x92\x01\ \x16\xb0\x89f\x10\xf9\x9c\xdb\x8c\x1d\xd4*@\xc7q\x17\ \xedr\x0eh\x173\x81%\x81\x07\xd0>\x1fxFJ\ \x0cM\xbd\xb8$c\x86\x16u]\xd2\xda\x1b-\x9a\xac\ \xa5\x96RL\x1a4bC\xfe\xbc\x08>ET\xc0\xae\ \xd7\x98_C\xef\xa7\x06\xa1U\xd3Q;49\xd7,\ --\x09\x96f/\xad\xe7\xda\x9c\x9f\xcf\xd2,C\xaa\ }\x9dTy\xcf\xad\x97\x5c\x8b*\xd76\x18\xc7\x22F\ \xb5\xab\xc5\x9c(\xcd\xa8Vq!\x10\xf3\xa4\x9d\xb5\xb4\ \xdd\xb5\xf4M\xa9\x1c\xa4g\xaa\xd0\xa6\xe1\xda2R\xac\ \xc3+&t\x1e%\xc8.K\xdf\xe3v\xc8\x9d|!\ \xb6\xd0\x85\xdahRA\xa2\x172\x10\x08U\x9anK\ jA'\xb1\xd1\x83\xa2L\x8b\xeeiS\x07\xe9\xcc\xdf\ *_\xf5p\x9e2\x9bh\xae\xbdJ\x86\xb1\x99\x1c\x81\ \xf2\xb5i\xa4IZTL\x0d\x98\x18\x06\xd0\x17\xfa9\ #\xb5\x0cS\xcf\xf3\xb1\xc1h\xd3\x01\xdc:\x87\x17Z\ b\x98\xbe\x86\xea\x15\xda]zz#yc\xb6\x86\xb9\ \xb8\x09\x82\x96A\x0f\xdc\x0f\x8f\xaf=bP\xf4\x8a;\ \x14\x22\xe9\x87\x8aR\xc3\xc9O\xbe\xe4\xaa9n\xf43\ \x1b\xef\x10\xba\x1cwn\x85\xc3{o\xb0\xa9%\x9d\xf8\ \xa4\x9a;\x90\x1c\x058i\x935\x06\x81\xd0%]c\ l\xf8\x83\xa3\x94Lc\xb9\x8c\xe6\xfe\xd3|\xaaU\xe6\ \x8e\xf9\x5c\x8b!\x09am\xde\x16\xe6ZK\xf5v\x8a\ 4\x89\xdfj\xf1\xf9\xfcV9\x90\xe8n\xd0\x96{-\ 4\xd9N(\xd5\x01\xae\xb8R\x83;\x9d\x08~\xdfo\ K\x92\xe6\xc8\x10\xf1o\x10x\xba\x97`\x90\xcd\x5c9\ \x1c\xf9\x90\x99\xd6T\xcc\xe9\x01I@\x01\xb7\xd4\x97\x1c\ o\xc6\x1e\xae\xb6\xb1\x95\x10\x1b\x03\x88\xb5\xbf\xb1\x82\x13\ \xa4\x91\x9ck\xc7T\x00\x7f\x14#\xf7\xe0\xc6\x99vh\ B\x10d8t\x18\xc8\x82\xf0\x9a\xcd}\x8bu\xb0\xa5\ u;\xe3\x01\xd4a\xd0\xf1\x22{(\xc2C\xfc#\x0c\ \x95m\xbf\x99\xb4(\x1b}\x97\x8b\x94\x16\xea\x99kZ\ 7\xacN\x0f\xfaC\x22R\x9e\xb9AVMx\x8e\x89\ k\x91A\x5cL[Y\x03\xd5d\x15\xa1+iE\x90\ \xc5{\x8e]\x8d\xad\xef`\x8b&\x17\xad\xa2\xb1\xdb\xae\ \xf8\xdc\xc1\x8c\x03\xb1\xd8\x05\xe9\xce\x0a\xb0\x1d\x07c\x1d\ \xc2?\x908\xa5\x05V\x15\xe5\x04\xc4\xc3\xa8\xb5X8\ \x99\x06\xc7YH\x9a\x06\xc7\xdb\x04\xb40\x93\xb2\x01\x12\ \xd8\xec\x7f8/\xc1\xb7\xc8\x9d\xce8-\xc6'\x89Z\ >\xb0+q\x1c\xcb\xb0\x1dZ\xd9\xe6\x85O\x9c\xf9\x04\ *\x1a\x96\xc3\xfb\x5caEj*q\xfd\x95\xa4\x86\x5c\ \xe5\xc2E& \xf2\xae\x81M0\x82!\xc1\xd1\x12 \ f\xf6A\xd9\xdcv\x00\xb8\x8b\xa3ke#\xb9\x07\xf2\ \x14\x89\x7f\xa5tj\xc0\xc9\x1eF\xce\x81%\xc5@\x0c\ \x09\xc3Q\xce\xc2\x9c\x0c\xc2\xbah\xbc\x10\x83k\xf2\x06\ k\x97\xd1\x8c\xa9ps\x8b\x880dR\x7f\x1e\x08\x0c\ U\x84\x93\x1c\xf4\x88\xb0\x117\xde\xf09I\xf7\xfb,\ g\xcf\x92\xe70\xe3C\xda1\xb1\x22k\xd0C\x931\ \x0f\xdc\xc7\x22\x83\x0b\xe4\xa4\ :\x1fg\xa4t\xa7\xc9\xa6\x81\xab\xab\xd5O5\x0aK\ v\x92\x17\x90\xe6\x88r\x94\x19\xb7\x81\x95\xb2\xa2\xb8=\ \xd5Ai\x93+\x0ca\x97e\xa9\xcb\x04\x5cE\xb1\x87\ 64\xbb2s\x7fG\xf1?}\x9ca\xc0\x10T\xad\ \xbbM\x0bT\xc8q\x99}k%\xc4\x9c\xc9]\x1a%\ \xdb\xe2\x01\xb8\xcer\xf81Z\xe8\x86v:\xafb\x5c\ \x92\x17O\x07g9\xd9:\xe4\x00\x96\x10\x08\x8eO\xdc\ \xc6N\x15\xb8\x8e^\x8d\xaa\xc8V\xae\xb5\x91\xd6\x9a\xf3\ \xe56\xe5\x964\xfd\xae\xb1\x16\x86\x9a)T\xa1\xb6s\ \xda\xd26\xd7\x17\xb5\x04\xb2\xb6\xe0Z;\xa6U\x00>\ r\xder\xd2\x9c\xa0\x1f\xb7\xa7\x80\xfb\xddkN/p\ ]\x10P\xb2\x1c\xbb/|0Y\x02f\x142\xbe\x95\ \xf64p J\x0c\xa3\x82\xb2\xb9\xf8\x12\x90&\x98\xe2\ \x13\xcb\x5c\xad\x87\x13Y\xbd\xa9\xbe\x1dp\xc9\xad\xce!\ wZ\x07e9\xa0\x8d\x8b\xa5\x13Lg\x17\x15\xa1\x0a\ eaP\xb8\x854\x99\x15_Ca\xd7R\xb6V8\ \xac.\xd1M\x9d\x96\x16\xe1\x98\x86\x11\xe5\x83s\xc4\x95\ n\xde\xe1\xdc+\xbb9D\x82\x04B\x06=H\xb6\xc1\ s#I\x9cK\x03#\x18G\x7f\x02\xa2O\xb6\x9e\x00\ I\xe1\x80\xf0\x91\xa7\xa5rU\xe9\x15\x07\x1b8\x0d\xcf\ \xbf\xea\x22K\x12\xe6e\xe4\xc4\x00\xf4\xf7\x9c\xd9\xd3\xc3\ \x9fH\xec0\xce\xdb\x032]C\x94\xfe3\x83`\xad\ 7\x0a\x08\x84\xc6E\xe7Z\xcb@=\xd4\x0b\xb0\xdd\x80\ \xda\x03\x98;\xae\xf0\x9cc\xa6-X\ m$\xa7d4Qg[\xef\xd89S\x97\xb4\xbdn\ \xd6\x83c\x94q\xe4\x08\x82\xd9&h\xe6\x8c\xe3\xe6u\ \xda\x005Hr[STU\xc51\x1b\x0dNZ\xac\ F\xad\xfe\x96\xfb\xa5\xee\x82\xfc\xd1h\x9b\xe7\xa2-\xba\ \xd5\xebi\x95\x5c(J.#C\x04\xac@\xc8\xd0I\ \x00\xce\xba\xe5\x94+\xfa,\xe1\x9b\xb6\xd5\xb4\xf0\xc9Q\ \x08\xa1xDtj\x12\xf0Ae\xbb?$\xc6\x1ep\ \x1d\x1e\xd2C\x1c\xd9\xb0Rs\x86+\x98\x8d\xd2\x96\xb8\ e\x8a\xcb|\x86\x90\x1e\xab0\xa2\xf8\xa4Yf\x1c\xce\ 33\x98\x99\xaf\xe36\xdcmCk~\xabM\x1a\xb5\ \x12\xaa\x9d\xcb\x11YKXu\xfe% l\x87\xb9\xf5\ \x9d\xd2T\x90\x0e\x1a\xa2\x22d,nt\xa5%\xf3\xda\ R\x22\xcf\xb6\xbb\xd7`\xb6k\xfePk\x13\xd6\xeaL\ \x0b+}L\x17\x07\x96\xa3\x97\x8a\x1c\xb5N&7\x8e\ \xfdS1\xaaV2\x07K\xd0\x07W\x9e\x8a;\xc0\xc5\ \x99V\xb8\xf3\x00\xce\x17\xcc\xd2UR{Y\x0f\xb9\x15\ [j\xf9#\x0a'\xc4\x80\x93\xb8\xabF\x12\xca\x5c\x91\ \x81O\xf84gN\x0e\x013\xe2\x88\x11C\xe4eF\ B.4\xe3p\x92\xce\x968\xac#\xca\xe1bZ-\ \xa6\x19qi\x9c\x15y\xf1[`\x1b-=\xa4\xbc\xaa\ \x95\x8e9x\xcc\xed\xec -\xd2\xd1\xb6\x90\xea\xdcI\ G<>\x14\x93\xcf\xa6\xa0q\x1d*\x18@\xc2j\xd0\ z>\x10\xb9\x9dC\x8a\xb2\xc2\xe8\xa6\xf9\xac\x84<\xfb\ \xf1\x82r\xf3-\xc6\x9f$\xf6\x0e\xad-x\x09\x06\x0c\ \xc9Y6ck\x9a\xd4\x84\x86v5\x84\x02\x86 \x94\ \xf30\xa4\xce\xab\x9dg'Kr7\xb4\x16\x8d\xca\x9f\ 09\xe2\xdc\x8b\x92\xcf\xe0\xe5t;\xb2\xe8|\x94-\ z\xec;\xad\xc2\xaa\x9c\xf3\xcd\xa6\x05\x0b\xdb\xd9\xa1l\ \x0eH\x87#\xcekg#\xed\xd6\x00G\x80r,z\ \x82D;\xf3<\xc9\xd1\xbd\xda\x92EN\xdb@Rc\ FKi~\x8aE\x87b\xf0\xe72\xcf4g\x1f\x14\ \xba\x5c\x18\xd4\x8e\xf6i\x9c\x0bA\x17\xcf\x02W\xc0q\ aniu\xf5\x1a2\xe4\x22\x93\xa8\x80\xfc\xae\xb9\x8c\ \xe0\x9f\x9b\x1b.MM\xedh[K\xf4\xb9\xc9b\x13\ \xac\x1eG\x7fp\x0e$g\xf1\xcer\xe1p\xbagX\ \xa2\xb6\xf9\xb6\xb5=L\xe5\xe3\xf08\xa8\xa2\x9dO\xfc\ \xfcR\x8a\x83\xad&\x98\x9c\xa6\xfb\x1b\x86\xa2\xe5\xebJ\ \xebF\xecDU\xb5\xaa\xaeV\xf7 w\xf1\x01\xe5I\ \x1a\x1f00R\xdc\x84\xd6\x9dU\xc4\ =\xdc\xff\xe5f\xf3\xe3\xed\xf5\xd3wo\x0c,^\xfa\ \xf3jx\xfd\xe7\xbdo}\xf5\xfa\xdb\xe5\x9b{o-\ \xde\xd8\xb9\xec.\xe6\x97\xfa\x82\xff\xf9\xea\xf5\xe3\x0f\xf4\ \xcf\xff\x0f\xa6\xdf\x90\xfa\ \x00\x00\x0a>\ \x00\ \x002\xdex\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x04\x15\xa9\xbd\x92K\x1d;\x07\xc5\x09N\x11 \ E\x8a&A\xdb'\x83&\x972k\x8a\x14\x96\x94%\ \xe5\xd7wv\xc5\xabL\xd9\x92\xac\xa8ik\xc7\x91v\ \xf6\xfe\xcd\xec\xdcv\xaf\x7f]\xcfS\xebQ\xaa\x22\xc9\ \xb3\x9b\x11v\xd0\xc8\x92Y\x98GI6\xbb\x19}\xfb\ \xfa\xbb-FVQ\x06Y\x14\xa4y&oFY>\ \xfa\xf5\xfd\xd5\xf5\x1fl\xdb\xfaM\xc9\xa0\x94\x91\xb5J\ \xca{\xebc\xf6P\x84\xc1BZo\xef\xcbr1\x9d\ LV\xab\x95\x93TD'W\xb3\xc9;\xcb\xb6\xdf_\ ]]\x17\x8f\xb3+\xcb\x82^Qy\x7f3r\xd9H\ \x97\xeee2\xbb/\x9bb\x12\xdd\x8c\xa0\x1dE\x82\x9b\ rg\x81x\xdb\xa0\x1ay\xda\xadq\x88\xf5\x16\x05\x08\ \x851\xa7\xd4\x1f[\x04\x11b#\xf8\xc7\xde\x99N\x05\ lk\x01\x7f\xd3(\x0f\xb3`\x0e\xbb\x09\xc8\xe2\xf6\xaf\ y\x92\x95\x9f\xb3OI&\x7f\xcb\xb3\xa2T\x01\x94\x1d\ \x98\xdd\xf4\x01x\xb2bZOw3\xda\xb7;=^\ \xb1\x08BYLjz\xa7\x7f=s\xd3\xbf&8E\ \xbeT\xa1\x8ca\x08\xe9d\xb2\x9c|\xf8\xfa\xa1\xa9\xb4\ \x91\x13\x95Qg\x98u\x0ac\xf7\xd6\xb0\xa2fv\xec\ \xfb\xfe\xc4\xd4\xb6\xad\x87\xda\x11\x84\xd0\xa4\xbf5(\x1d\ \xd8RE\xf1\xde\xb9\x11\x99\x00\xd6\xd0\xc2.6Y\x19\ \xac\xed\xacx\xd3\xe9\x1a\x86M\xcfPKM\xf2(\xc3\ |>\x07\xb8\xb7\xe0\xf5\x1aGm\xe3\xc5R\xa5\xa6E\ \x14Nd*\xe72+\x8b\x09pz2z\x0f\xed\xaf\ #\x19\x17\xba\xdfV`t\x09$\xc63uP\x0bp\ \xc8@\xfdY\x05Q\x02\xfd\xb6\xed\xb6-\xfb5Tx\ \xb8\xea\x03\xbd\x8a2_\xd4mAd\xcaM\x0a\x5c\xd7\ D;\xcc\xd3\x5cM\xdf\x10\x80&\x8e\x7f1\xa4\x1c8\ \x9e\x94\x9b)\xfee\xd4\xf6\xc9\xe3\xb8\x90 \xcb\xa8C\ 3\x02\x0d=`.:\xb2&\x87\xcf\x16\xc7q\x18\x87\ \x07\xcc\x86\x87g\xe3\xcdl\xd7\x93\xfe\xb6\x8fF\xc9\xa5\ G\xa0\x14\xc7 @\xe8d\x94\x5c~$J\xbe\x0c\xc4\ \xc9(\xb9\xdeK(\xcd\x03\xf5 U\x83N\xad}\xa0\ {\xf8\xa0\xc7\xf9\x93R\xf9\x8a|\x92Y\xd4L\x90+\ \xdd\x1ft\xcc\xb2\xcc\x1b\xa2\x92\xf1?\xbb{\x86\xf2?\ \xba\xe5=cU[\xceA\xdb\xc5i\xbe\x9a>&E\ r\x97\xca\x96\x1f\x8b\xa0\xbc\xef\xefLS\x18\xf7\xd8\xe8\ \x09pq\x92\xa6\xb6Z\xa6r*\x1fe\x96G\x11\xe0\ \xa6\xf2\x07i\x1b\x95\x81\xefx\xb0\xc3\xe6fd\x13\xcf\x01\x93\xc1\xc1\ \x0cL-\x9bq\x87\xf8\x9e`lo\x97\xef\xd0\x85\xb9\ `\x80\xb8\xe7q\xdd\x05\x83\x81\xe1>s\xdd\xe1.\xd5\ zm\xd0\xde\xb3D\x87\x98f5`\x16\xf5\x8f\xd7\xef\ \xa3\x95l\x8b\x04E\xbe\xdb\x22\xf8\x03\xb0\xb21u\x18\ u\x89k\x96\xc4\x1c\x8f\xe8\xc2s`!\xa8\xf49\xd8\ \x5c\xbds\xb4\x0f\x1f\xc6\x80\x09\x9eG_\x1e\xf5\x098\ \x5c\xbb\x0b\x1e\xd5\xf0\xfb\x8eK9\xe5\xbex\x01#\xf6\ c12\x92\x80^\x02\x05\xc3\xb1|\x0e\x12\x22\x9e\x19\ fPD\xd8A\x12\x82\xf1\xd0\xee\xc1P\xdb2\x8e\xa1\ Q\xddq[\x82\x93\xf9\x00\x11p\x19\xa4\xfd\x11\xdb\xf6\ \x14\x0eL[W\xdcVn\xc1\xcd\xa8TK\xd9T@\ \x87R\xaaL;m\xe0\x18\xc1\x1f\xec\x0c\xa3\x9e\xb9\x0f\ \xf3\xc5f\x8bt\x91h\xdf\xe3\x16\xac\xba,\xc3{\xd9\ \x22\xbdP\xf9\xe2\xd6\x98\xf1\xae\x061\x84\xdb\xcd\xad\x92\ )\xf8\x0aAZ\xb4\xd3\xea\xd4\x88I)\xb50g\xe0\ \x0b\x04\xe9\xedS\xb5W\x82\xc73@6s.\xb3\xa4\ ,v\x07\x07G\xa8L`\xee\xdbfs\xfd\xfaxY\ \xc8\xdb2O%\xb8 a\xdf\x8d\xd8\xa3\xec[/$\ M\x0d\xf8A\xba\x0a6E\x0f\xfa~W\xd0#\xde1\ 6S\xff\xd0\x13\xad\x01\xcc\xe5\x1f\xe9Y<\x9d\x0d\x1d\ j\x0d<\xf0\xdc\xcf\x12\x1e\xe3\xb3FF\xbb\xa3\x9d\xe8\ \x15S\xdf\xe7\xbb\xd1\x8c>\x18|ls0\x10\xc4\xe1\ \xa6\xc0\x0d\xf1\xc7\xb9\xc4U\xbc\x82\x1ca\xe2\x15\xfd\x09\ \xa7\xf2bA+\xfer\xbe\xccE\x7f\xacS\x83\x15\x84\ \xd1\xcf\xc3\x16\x13\xaa\x98|\x82\x89Y\xb0.]\x8e5\ g=5_\xce\x93O@\x10m\xfc4\xec\xa9\xb9\xa3\ ?/\xca\x1brV\xde\xec\x8ev2o\x08?\x1c\xf1\ \xff\x9d\x5c\x0frh%\x05T\x9fS\xd7\xbfh\xb6\xe7\ \xf3\xb2\xfct\xbetOo\xb4S\xe5\x00\xd3\x9d3\xfa\ \x9f\xcd\xf7\x18\xdb\xe6\x88\x0b\xf0\xe4C\x12\xcc\xf3,:\ O6~h\xb0\x93O\xe6n\x06NkM\xdbs\x90\ \x87\x91\xe7\x0a\xab\xfa*|f\x5c\xf3m\x89\x0b\xdf\xda\ ~c.1\xf4N\x8f\x8bz$6\x9c\xcc\x8b\x1c\xaa\ \x1a\xf33i\xd7\xe1\xe1Nf\xa2\xa0\xff\xcdL\xbc\x14\ \x0f+'\xfd\x8c~\xe59\x8e \xb8\xfb\xe2\xe7q\x5c\ \xec\x9a1\xe6\x8b}&\x8f\xff\xf0\x04\xa6\x7f\xdc\x8d\xae\ \xfe99\x81\xe9\x1f{\xa3\xfbt\xb6\x83CV\x98\xed\ \xd4d\xf8K\x91\xbfyd1\xbd\x07)\xbd\x19\xbd\x19\ H\x01\xec\x87\x1b\xe2\xe8Vq\xac\xb1\xc9\x98y\x98\x89\ \xd6$l\x80H\xc0\x93\xf2}\xea\xb5#\xad\xc9\xcd\x88\ 2\x07S\x97\xa0Vv7d\xa8\xed\xac\x9a\xeb\xdb6\ M\xb2,\xa4\xfa\xa2\x1f\xa5|\xce\xbe\x15\xf2\x87&\xdb\ 0,P\xa7\xfft\xce\xcbu\x04\xf5\x90\xef\xbd6\xf3\ F\xb1\xe3\x0bp/u\x1e\x8f \x87aW\x10~x\ 6\xd2\x83\x0e&\xcd\xcb\x1d\x0e0\x09\xfcR>\xce\xa6\ \xafN\x0c=#\x1e\xe6\xee\xe1\xb9\xd3\xe8\xfa=\xf1 \ \xd4\xa1\x10g1\xd1\x93\x0f\x00\x17H\xae\xcb\xfa\xf2\xe1\ ;\xd4E\x8c\xf2\x9e|\x97e\x10\x05e\ \xd0J}M\xa1\xc8o6\xa9\xa2x\xfa\xb7\x0f\xbf7\ \xc77\x0c\xa7\x7f\xcf\xd5C{,u\x83\xe0._\x02\ _\x1a\x8d\xa2\xdf\x9a\x86S\xad\xde\x83\xf2}2\x07\x08\ \xf5\xdb\xd8?\xae\xe7)\x9c\xbf\xa6\xa2\xd7X\xe3\xd6\x0e\ \xba\x1dV\xc9\xeds\xdf\xc1\xf7\xadQ8Ot\xa7\xc9\ \x97\x12\x82\x8c\x8fz\x92\xae\x9a\x99T\x0b\xadUAg\ \x1f\xe0\xffW\x1b5\xa5Y\x0b@O\xea\x1b\xf6\xa6\xc1\ \x9d\xbe\xa1\xfb\xa4+\xad'\xb53\x95/\x17\xf3<\x92\ U\xf7\xaa\xbe\x1c2phL\xc9\xbb\x1a\xd9YO:\ \x5c\xdc\x09.T\xe7>\xb3\x17KM\xdf\x80%\x8e\xc3\ \xf8\x17\x13X\xb5a\xc5sQ\x15\xe9\xe6)a\xc9\xdb\ 4\xe5p\xf2\xb2\xa6\x02\xb4R\xa5p(\xca)\xabi\ Q\x00\x0aI\xa9`3\xcd\xf2Lv\x14\xb3^\xbf^\ 1\xf8\x19\xdd\xe7\x93\xd5y\xf6\x1c\x97a\x02\xbee\xa7\ \xaay\xbe\xeeo+\xbb\x19\x02\xed\x1c\x0bG \xd7\xf3\ \xbb\xf98\xfd~\x01\xfc\x03\xc6\x04\xeaN\xd2\x81Y\xe5\ \xa5\xc6\x98\xf1w]9\x90i\x9a,\x0a\xb9\x07M\x19\ \x13\x9f\xf8G\xa1\xe9h\x1a\xe7\x14\x1f\x06\xabA\xf2p\ X\xbb\xd4\xad\x11\x9c\xba\xcev\x1dL\xd4\x95\xad\xa9\xeb\ 3\xc1D\xec\x10W\xd8\xb4\xe7\xdfh\xa3\x00\xb1\x0fG\ >\xe9\x917\x83d\xa5\x19\xc0\x1c\xf0\xff\x11\xe9\xba-\ J\x1b2\xea\xe8\xb0\x8c\x8aa\x0e4\xe9\x13\x9d\xcf\xc1\ \x82{:P\xf7t\xd2\x9b3<\xee\x90\xbb\xd41\xea\ \xf1+LT\x98\xeecW\xc0\x0cC\xf6\xb0\xabb\xe6\ .\xbb\x04\xf3\x11\xb8\xbb\x978\x05\x86\x01\x82\x88\x1d\xf0\ )\xd9\x81\xbd\x17\xf2\xd7\x8a\xa4\x01\xd2\x0e\xc1\x5cJ\xa5\ \x8d\x19\x86@\x85pJ\xf1A\x1d\xcc\x19\x81\xb8\x0f\xa3\ \xbe\xeb\x06\xf6\x1cCl\xc8\x01\xf0n\x9c?\xdb*C\ \xf8\xb8\xd6\xea\xf9\xfd\xd5\xbf\x01\x22\x10\xe8\xc9\ \x00\x00\x0a\xe4\ \x00\ \x00/\x8ax\x9c\xe5Ym\x8f\xdb6\x12\xfe\xbe\xbfB\ \xe7\xe0\xd0,jI|\x15)\xefK\x916h\xae@\ \x8a+\x9a\xb6\x07\xf4p8\xd0\x12m\xeb\x22K\x86$\ \xaf\xed\xfc\xfa\x1b\xd2\xb2,\xd9\xb2\xb3\xdeK\xb2=\xd4\ M\xb1\xd2p\xc8\x11\x1f\xce3C\x0eo\xbfY\xcfS\ \xe7A\x17e\x92gw\x03\xec\xa1\x81\xa3\xb3(\x8f\x93\ lz7\xf8\xf5\x97\xef]9p\xcaJe\xb1J\xf3\ L\xdf\x0d\xb2|\xf0\xcd\xfd\xd5\xed_\x5c\xd7\xf9\xae\xd0\ \xaa\xd2\xb1\xb3J\xaa\x99\xf3C\xf6\xbe\x8c\xd4B;/\ gU\xb5\x18\xf9\xfej\xb5\xf2\x92Z\xe8\xe5\xc5\xd4\xbf\ v\x5c\xf7\xfe\xea\xea\xb6|\x98^9\x0e\xf4\x8a\xab\xd9\ \xdd `\x03\xf36\xd3\xc9tV5\xafI|7\x00\ =\xcayh\xdf[\x1f\x88\xb7\x0a\xf5\xc8\xa3v\x8bG\ \x9c\x97H!\x14M8\xa5\xe1\xd0!\x88\x10\x17\xc1?\ vm;\x950\xad\x05\xfc?\x8a\xf3(Ss\x98\x8d\ \x22\x8b\x7f\xff0_\xe4E\xf5\x93**\x0fLn\xcd\ %z\xf5m\xbe\xbe\x1b \x079\x01s\xea\xaf\x02\xa8\ \xb2r\xb43}785S3v\xb9P\x91.\xfd\ \x9d\xbc\xd5\x7f\xf7\x15M\xff\x9d\xc0+\xf3e\x11\xe9\x09\ \x0c\xa1\xbdLW\xfe\xeb_^7\x8d.\xf2\xe2*n\ \x0d\xb3Na\xec\xce7\xac\xa8\xb5\x8e\xc30\xf4m\xeb\ ^\xbbO\x8f \x84\xfc\xdd\x8c\xebO{\x98>R\xb3\ \x88''m#\xe2\x03\xee\xa0\xe1\x96\x9b\xacRk7\ +_\xb4\xbaFQ\xd332\x1e\x94<\xe8(\x9f\xcf\ \xf3\xac\xdc\x82\xd7Q\x8e\xf7\xca\x8be\x91Z\x8d8\xf2\ u\xaa\xe7:\xabJ\x1fV\xdd\x1f\xdc\x83\xfem\xac'\ \xa5\xe9\xb7u\x1e\xf3Fy\x80m\x1b\xb4\x02\x1cZ\x15\ o\x0a\x15'\xd0o\xab\xb7\xd5\xec\xb60*\xa9K\x07\ \x8d\xc2\xce\xcd\xa2\xbb\xa3<9=\x91>\x07\ gMz\xfa\x8c\xe9\xc3,\xbb<\x1f,\xbb\xc4\xbd(\ w\x04}\xb9\x83\xb2C\xdd\xff\x9f\xdc\xb1\x85\xeb\xf1\xb1\ \xbc\x9f\x8c\x8fK\x1d`\x0b\xa3\x8b2\x87\x8ec\xf6\x18\ k}\x99\xc3X#\xcfA\xdc\xf3\xfe\x07\xc4e\x9f8\ \xc2\x93\xadS\xe2\xa1\x8b\xc5\xd6\x13\x83\xebO\xed\xe2\x8d\ n\x03\xa8\xf9&\x95\x1eBW\xc0b \x0f\x82\x17\xdd\ G\xaf\xc9\xc6\x0e\x80\x89\x80\xac\xb9\x97\xc2Q\x94P\x0f\ \x09\x14\xc8\xfdN9\xea\xd5\x8dzu{`\x99\xab\xaa\ H\xd6/\x91\x17b&1\x19\x22\x0fa\x12pD \ \xac\xc13\x92\x04\xc3\x0b\x88\x81O< C\x88S\x9c\ \x82\xee\x10\xa2\x1b\x9cndx}\xe1\xd2\x98\x05\xee\x22\ A\x91\xc0\x8fq\x14\x82\xc2\xbd\xdeI\x8f\xfb\xf4\x8c\xb7\ v\x1fOAd\x7f\x07\x14\xbcy$\xe3\xc1\x16\xbd\x88\ \xf0}\xd6P\x9f\xb5>\xc6\x835\xfe\xe5\x09O\x11\x17\ g\xe0\x86\xe6c\x8f\xbd\x98\xee\xb5_c/d\x1c\x1c\ \x16<\x18\xfe\xdb\xbf\xb9Lxa(\xb1\xe4C\x97K\ /\x10\x14\x85\xec \x06`\x8fc\x1c\x12\xdc\x89\x01$\ \xf0\x88\xc0\x90\x93\xbb1\x80x\xa1d\x12\x05\x9d\x18\xc0\ B\x8f\x05\x08\x89\x8f\xa7\xef>\x10\xc4\x05>'\x95&\ \xf4\x11\x07\x06\xc3h\xfb\xebq\x060\x19^\xe4zL\ \x87\x0a\x05\x8f\xc85g\x8d\x06\xe7\xf7\x8a\xb7\xbe)\xe2\ \xd8\xa7\xa6pg*k\xb1\xa9\xce]5c\x8dU\xe3\ \x0e\x0b5\xd5\xf6\x0b\xc1\xf1&\xf6W7\x8c\xf3\x22\xd6\ \xc5\xae)\xb0\xbfNS=\x89m\x01\xf4\xaa\xeb\xe7f\ \xd4\xa6\x1d\xf5\xb7\x973\x15\xe7+\xf0\x91\xc3\xc6\x0fy\ \x0e.\xc9\x0e\xc5&H\xc3y\x87\xf0\xa3\x06\x13\xd3\x03\ \xefX\xbe,\x0a\xc0\xc5M\xd5F\xc3\x1c\xec\x9f\x1d\xe2\ \xe5,_M\x0b\x83EU,\xf5a\xcf8\x8f\x96\xa6\ V\xe6.\xb7DZ\xac\x0f5L_w<6\xf5\xce\ \xbe\x01VI\x06ss\xebz-\xe4\x02yBcW\ \xc3\x15\xf8\x08\x86Zc\xbd\x0f}\x87M\x1bC\xb0\x13\ ms\xb5N\xe6\xc9\x07\x1d\xf7t/3\xb5p\xa7i\ >Vi\xff\xe7[\xa7\x98\xe9\xe8\xbd.\xc6\xb9*\xec\ \x18\xb5\xd3u\x10\xd8yh\xb51\xa5\xdd\xf5\xc6\xc8:\ \xb1\xca\x08(p\xba\x11\xea\xf9\xc2Tym\xa5|\x9f\ \xc1\x1f\x922\x19\x1b\xc2\xb4>\x06t3\x05\xc2\xf8@\ j>\xbe\xd67\xa3\x1b\x0e\x94y\x96n\x0e\xd5\xb6V\ \x0cz\x1e?\x94n\xb6\xd2-\x93n\xfdc\xaaX\xf9\ \x5cW*V\x95\xda\xf3f'\x81\xdc\xcev\x80\x14\xf1\ d\xf4\xf3\xeb\xef\x9b@\x10E\xa3\x7f\xe4\xc5\xfb=y\ \x8d\x82\x1a\xe7KX\xe5&F\x99\xdak42\xb1W\ U\xf7\xc9\x1c\xe06\xb5\xe2\xaf\xd7\xf3\x14\x18\xdc4t\ \x94\x0d\xc6\xfbA\xb7\xc3\x16z[\xfe\xee\xad\xf7\xc6\xd1\ <1\x9d\xfcwU\x92\xa6?\x18#\xad\x80U\x0f\x9a\ T\xa9\xbe\xffIU3\xf7]\x95G\xef\xad\xf5\xad\xb0\ \xa3\x07\x93\xd6\xf7\x04a\xee\x22\xe1\x22f\xd5\xac\xac\xa3\ Uh\xd81&yv\xdf*rO\x0a\xad#\x15\xaf\ \xf4\xd8~\xd7*y\x9f\xf8\xe0\xa1z\xed-f\x8bo\ \xac\xa9\xbbWE\xb5\x02\xc8\xec\xa8\xcd\x18\x9d\x91\x17\xcb\ q\x9a\x943]\xdc\xb7 0P\xbf\x9a6\xb9\xf7x\ ^\xdf\x83\xed\xef^\xbd\xee\x9b\x94Y\xf6\xe3\xeeV\xb3\ \xc7\x96\x192\x89A5\x99$ \xaf\xc7\xf5\xcb\x22\xf2\ \x7f\xccc\xdf\xe0\xe7\xbfY&\xfe\xcf\xf5z\x94~\x12\ \xe5Y\xe9\xef\x815\xd7$v\xf4\xd60]\xecL\x1c\ (\x9f2=\xe7\xed\x9b\x9f\xde\x92\xaf/\x9c\xe5\xa1=\ c-M\x22\x9d\x95\xda._Y\xaf\xdf4[\xda\x85\ \x8b\xf2\x05\xa4\xb4I\xe5\xa7\xba\x84m\x857\xab\x8c\xaf\ \xb6:uf\x03\xb3\x87\x0d\xc5xY\xe5\x97\xad\xd8?\ \xd5\xb4\xd8\x00\x9d\xff\xe5\xbcJ\xf5Z\x81\x9f\x14\xce\x1b\ +\xb9pz=\x1f`u\x0d5w\xe9\xb3\xc5\xdc[\ \x7fGm\xfb6\xddS\xbe\x935\x9a\xe0\x97\xaa\xb1\x86\ \xd8\xf9\xd64:G\xad\xd3\x22_.\xe6y\xac\xeb\xee\ \xbbP1m\xe2e\xdfA\xcbl\xb8h(\x04b\x81\ v\xf9u7\x8e\x0a\xd8\x88\xedw8\x0b\xf0\xab\xa3\xcd\ \xc6\x04X>\x02\xfe\xbf<\xbe+\x08\xafoLkk\ \x83m_\x8be\xaaGY\x9e}\x80d\x0e\x1b\x93\x22\ \x7f\xafG/(\x22c\xbbE6\xaf\xdb\x0c6\x22\xbb\ W3\xf2\x7f\xf2$\x1b\xc1\x0c\xb3x'\x858\xa3\x8b\ \x14\xd2M5b;Y\xac \xbf\x17\x85\xda\x18\x03\xba\ \xb5\x97\x81\xd9\xfc\xe8\x84C\xca\x9d\xdf\x1c\x82\x9d\xd4\x81\ \xd3\x11w\x1e\xe0\x8f\xf3\xe1`\xcbc\xa6i\x0aQ\xed\ \xa2^k+\x9de\xb0\x95\xce\x0b\x17\xf2\xfc\x83\xaa\x96\ \x85>(\xf55Q\x1dV\xc2\x04BH\xe4\x91\xf9\xb5\ \xb7m\x07H\x9e\xec\xf2\x94\x0f\xd8M\x01\x16\x00\x1f\x03\ \xc0B\x00\x00PH\x1d\x22\x87\x18\x1d#\xf0\x91e\xb5\ \x15\xbag_\xd7/\x0eex\x04%\x15Cn\xb0d\ \xdcy\xebp>$\xd2`I/\xc1\xd2\x14\xed\xfet\ P2D\x8f\xbd\x12\x18IB\xe0##\xc6'\x09\x1d\ \x92\xc0\xf9\xfd\x04\x90\xbbZ\xf6\x9f\x0c7`s\xebz\ \xb0F\x0e\x9bc\x9bD\x94\x0f\xe1\xa8\x1c\xa0\x80\x08\x10\ \x0d\xa94\xf4fC\xe9\xd8\xe2\x10\x06L=,M\xe5\ \xe8\xa4w\x9a)5\x805\x97\x05g\x01\xb3\x18\xfd\x91\ \x01\x0b\xb1\x8b\x8eX\x1b\x02\x22\x1c1<\xe4\xcc\xc3\x81\ $\x1cDC\x168\x9c\x0e)\xf1L\x5c4\x98\x11<\ \x04O`\xed\xcd\x09\ CJ\xf7\x09\x810\xd8\xf3\x0e\xe1\x19\xbc\x06\x9d\xc4\xe7\ sQ\xf0\xd6\x9f\x9e9\x894w\x1b\x01\x92\x941a\ k\xc0\xe6J\x95R\x1b\x87\x09\xf587W\x85C\xe9\ 1\x09'\x15*\x0f\x0e)\x81\x0c[eX\x9d\xa6\xc9\ \xa2l\xd5,\x0aS\xaf\xf2(A\xed\xabg\x10\xaf{\ \xeet\xea\x9b\x1a\xe6\x85\x0c\xb0k\x8b\xd7\xf6\xfa7\xe4\ R\x8a\xb6\xfcx\x22\xc4\x13\x907\x04\x93\xbbb\xb6d\ H@\xecs)$\x16J%c\xf6Qr\x14\x04\xf4\ \xbag)0\x0dz.\xf3\x9bk\x03\x0f#I\x98\xb8\ \xd9\x07\xb0\xe3\x8b\x9a\xa3\xf8U;\xe0\xe3\x92\x0a\x9ca\ ]\xfb\x0c\xfa\xc5\x5c\xa57V\xf2\xa0\x8aDeUG\ \xb6\xb2e\xc4\xd18O\xe3\x9b\xba[\xa1\xabh\xd6Q\ *\x93\x0fz\xc4C/D\x18/\xd67\xc6\xcd\xeb\xfa\ \xe3\x08\x13\xfe\xd7\xad\xd2D\xcd\x93t3\xfa\xea\xdb\xa4\ 2c\xa8\xb9\xf3\x9b.\x94\xf3\x0e\xd0\xfd\xea\xa6\xd2\xeb\ \xcaUi2\xcdFe\xa5\x8a\xeafU$U\x92M\ ]s\xd8\x1d\xa5\x85[\x8dk\x9d,\x9a\xe5E\xad\xb4\ M\x8eM\xd1}\xcb@,\x88B\xac\xcb@\xecI8\ \xe7\xf26\x0f\xc1\xf5Gp\x8a\xaf\xce\x07\xf2\xbez\xba\ \xa5 C\x1e\xf8\x0f\xe5\x90\xf1\x8c\x87q&\x84=v\ \x1a\x0c\x04\xa5\xce\xdf\x1c\xc0\x83c\x04\xfe\x00\xf2\xd0\xdc\ \xe6a\xf8\x07\xf2\xa6'\xc8\xdd\x10\x9eq@\x09\x81\x06\ \x22\x8c\xf7\x08I\xcd\xd1U\xbb\xc1\x10\x03\x1d0\x15\x8c\ \x99\xe1\x84\x17R\x84\x910\xfb\x17w\xdbL<)\xc3\ \x80\xa0\xf0\xa0\xb3\xdb\xed}\x14\x0d\x0c\x90\x98b\xf6\x18\ \x8a\xef~\x17\x04\x8e?\x95\xf7\xf5\xec/\xcc\xc5\xd9)\ zv\x9d\xf5\x09\xde\xd9\xc9\x1c'\xbd\x93\xc2\xda\x87<\ \x94\xe1\xd0<\x09\x86\x91\xf1B\x02\xe1)\x80\x93\x84\xf1\ \x17.<\x1e\x86A`\x8a%\xd8\xc4*\xca\xa4\x00y\ \xd3\xd3x'\xe8\x04\x88p!\x9d\x99qU\xce\xb1\xb4\ \x07\x0f\xd6\xf1/\x09\xddB\x0fb \x13\x92\x18\xf7\xb3\ \xcd\xa1G\x10\x04I\xeb\xd8\x12\x82-\xc3\xdc\xd6d<\ \xaa]\xder\xce\x99\xd3\x0c\xdc\x97\xb5\x04\x12\xc1%~\ \xfa\x14G\xad\xb3\x97\xfdsk\xca\xe5\xf7W\xff\x05\x08\ u\x890\ \x00\x00\x10\xb4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \x0a \ \x0a \x0a\ \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a \ \ \x0a image/svg+xm\ l\x0a \ \x0a \x0a \x0a \ \x0a \x0a \x0a <\ g\x0a id=\x22g\ 702\x22>\x0a \x0a \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x0aH\ \x00\ \x004\xbcx\x9c\xe5Z[o\xdb\xc8\x15~\xf7\xaf`\ \x95\x97\x045\xa9\xb9_\xb4v\x16\xc5\x06[\x04H\xb1\ \x8b&A\xdb'\x83&\x872\x1b\x8a\x14H\xca\x96\xf2\ \xeb{\x86\xe2U\x17[\x92eo\xda\xdaq\xa4\x993\ \x17\xcew\xeegx\xf5\xf3r\x968\xf7&/\xe2,\ \xbd\x1ea\x0f\x8d\x1c\x93\x06Y\x18\xa7\xd3\xeb\xd1\xd7/\ \xbf\xbaj\xe4\x14\xa5\x9f\x86~\x92\xa5\xe6z\x94f\xa3\ \x9f\xdf_\x5c\xfd\xc9u\x9d_r\xe3\x97&t\x1e\xe2\ \xf2\xce\xf9\x98~+\x02\x7fn\x9c\xb7we9\x9f\x8c\ \xc7\x0f\x0f\x0f^\x5cwzY>\x1d\xbfs\x5c\xf7\xfd\ \xc5\xc5Uq?\xbdp\x1c\x98\x15\x96w\xd7#\xc1F\ \xb6ug\xe2\xe9]\xd96\xe3\xf0z\x04\xe3(R\xbc\ j\xf7\x1e\x10\xaf\x07\xd4+O\xfa\x14\x8f8o\x91\x8f\ P\x10qJ\xf5\xa5C\x10!.\x82\x7f\xec]5\xa9\ \x80c\xcd\xe1o\x12fA\xea\xcf\xe04>\x99\xdf\xfc\ \x9e\xf8\xa9)~\xf7s?IL\xf2K\x96\x16e\xee\ \xc7i\xe9\xc1\x03T\xd3\x00\xa1\xb4\x984;^\x8f\xf6\ \x1d\xd0.Y\xcc\xfd\xc0\x14\xe3\xa6\xbf7\xbf\xd9\xbc\x9d\ \xdftxE\xb6\xc8\x03\x13\xc1\x12\xc6KM9\xfe\xf0\ \xe5CKt\x91\x17\x96ao\x99e\x02k\x0f\x9e\xe1\ \x81V\xbbc\xad\xf5\xb8\xa2v\xa3w\x8d#\x08\xa1\xf1\ \xf0h\xd0:pd\x1eF{\xf7Fd\x0cp\xc3\x08\ \xb7X\xa5\xa5\xbft\xd3\xe2Moj\x10\xb43\x03+\ 8\xf1\xbd\x09\xb2\xd9\x0c\xe0^\x837\x18\x1cv\x83\xe7\ \x8b<\xa9F\x84\xc1\xd8$ff\xd2\xb2\x18\x03\xb3\xc7\ \xa3\xf70\xfe*4Qa\xe7\xade\xc6\xb6@hd\ E\x03*\xc0a\xfc\xfc\xaf\xb9\x1f\xc60o=n=\ rH\xa1J\xe2z\x0e\xcc*\xcal\xde\x8c\x05\xa9)\ W\x09p\xddv\xbaA\x96d\xf9\xe4\x0d\x01h\xa2\xe8\ \xa7\xaa+\x03\x8e\xc7\xe5j\x82\x7f\x1aus\xb2(*\ \x0c\x883\xea\xf5U2\x0d3`/:r\xc6\x87\xef\ \x16EQ\x10\x05\x07\xec\x86w\xef\xc6\xdb\xdd\xae\xc6\xc3\ c\x1f\x8d\x92\xa0G\xa0\x14E @\xe8d\x94\x04?\ \x12%m|u2JB>\x85\xd2\xcc\xcf\xbf\x99\xbc\ E\xa71@0=\xf8f\xd7\xf9K\x9eg\x0f\xe4\x93\ I\xc3v\x83,\xb7\xf3\xc1\xcc,\xca\xac\xed\xccM\xf4\ \xaf\xfe\x99\xa1\xfd\xcf~{\xcfZ\xf5\x9130xQ\ \x92=L\xee\xe3\x22\xbeML\xc7\x8f\xb9_\xde\x0dO\ f{\x18\x97l\xb4\x05\x5c\x14'\x89\x9b/\x1231\ \xf7&\xcd\xc2\x10p\xcb\xb3o\xc6\xad\xac\xf2\x04y\x82\ \xf0\xa6\xcb\x82\xf1\xef,N'y\xb6\xe8=\x8f\xe3\xc0\ \x0e\x7fs\x94'\xb1\xe2J\xaaK\xe6!J%\xe5\xc4\ q\x89G\x90$J\xf3K\xe4!,\x10\xa6D4#\ \x15\xbbta(\xc2\x12I\xe5\x04\x8e\x8b=\xc98\xd3\ \xd0O<*\x09\x12HW\x9d\x943\x86\xd4%\xf7\x04\ \x86\x01\x18:\x85q\xe5\xa5\x82m\x80B\x9d\xef\xbdG\ \x01\x8b\x9d\x16`Ag\xd7\xa3\x99_\xe6\xf1\xf2-\xac\ \x80/\x11\xfcV_\xd6\xadw}\xce7\xfc\x0b\xb24\ 5A\x99\xe5n\xb0\xc8\xef\xfdr\x91\x1b\xcb\x8dN\x18\ \xd6|?N\x08\xc0c\xe6\xe5\xd9\xc4`\xb8\xda\xe9\x82\ \x80\xff\x1f\x05\xa1\x91\x03\xfb\xf9ZR\xf0%\x8f\xfdt\ \x9a\x98\x8f\xe9\xe7\xe7\x0b\xc1\xae\xc5N\x95\x01\xa1\xc9\x90\ o3\x87{R^\x22\xc7U\x9e\xe0\x97\xdc\xb1\x0a\x83\ \x9c\xba\xf1\xfdp\x81\x99\xbcA\xa86\xf7=\xf9\xc1\xf3\ r7s\x00\xb0\xc4\xbc\x85\xe8\x86\x5c\xda\xff\xce\xc0\x93\ \x83\x9d\x98F\xc781\xc6\x14'\xe1\xa9NL\xa3\xe3\ \x9c\x18BD\x1c\x14X\xectb\x1a=\xe9\xc4\x0ew\ \xf5\x5c\x1f\x81\x12\x0a\x9f\x15\x10\x09|\x14J2T8\ \xc2\xa7\xbbzzF\x94\x8e\x09\x1b\x9f\x19\x10\xf1c\xc3\ Fi\xa49\x19%\xfed\xd8\xd8*\xea\x1cr\xb09\ h*\x84\xf4\xad\x81jR\xadreS\xa6\xe1P\xda\ 9\x8f.\x8f\x9b\xdf,\xafG\xd4\x13\x8a\x11\x016~\ \x02\x86\x09!!\xb4&\xf0\x1d\xef\x9c\xb0\xba\x1e\xb9D\ z\xe028\xb8\x81\x89\xe32\xee\x11-\x15c{\xa7\ |\x87)L\x80\x03\xe2Rr;\x05\x83\x83\xe1\x9a\x09\ \xb1{J\xfd\xbc.X\xefil\xb3\xcc\xeai\xc0-\ \xda\x1f9\x9cc\x8dl\x87\x04EZt\x08\xbe\x00V\ .\xa6\x1e\xa3\x82\x88\xea\x91\x98'\x89m<\x06\x16\x02\ \xa2\xe6\xe0s\xed\xc9\xd1>|\x18\x03&HI\x9f^\ u\x0b\x1cn\xc3\x05I-\xfc\xda\x13\x94S\xae\xd5\x13\ \x18\xb1\x97\xc5\xa8\x92\x04\xf4\x14(\x18\xd4\xf21H\x88\ zd\x99\x9d\x22\xc2\x0e\x92\x10\x8cw\x9d\x1e\x1c\xb5k\ \xa2\x08\x065\x13\xd7-\xd0\xcco\x90\x01\x97~2\x5c\ \xb1\x1bOAa:ZqS\x87\x05\xd7\xa32_\x98\ \x96\x00\x13J\x93\xa76h\x83\xc0\x08\xfe\xe0d\x18\x0d\ \xdc}\x90\xcdWk\xa4\x8b\xd8\xc6\x1e7\xe0\xd5M\x19\ \xdc\x99\x0e\xe9y\x9e\xcdo*7\xde\xb7 U\xc7\xcd\ \xea&7\x09\xc4\x0a~Rt\xdb\xda\xd2HUU\xea\ `N!\x16\xf0\x93\x9bm\xb3WB\xc4\xb3\xa3\xbb\xda\ s\x91\xc6e\xb1\xb98\x04Be\x0c{\xdf\xb4\x87\x1b\ \xd2\xa3Ean\xca,1\x10\x82\x04\xc30b\x8f\xb1\ \xef\xa2\x90$\xa9\xc0\xf7\x93\x07\x7fU\x0c\xa0\x1fN\x05\ ;\x22\x8f\xf1\x99\xf6\x87\x9e\xe8\x0d`/}dd\xb1\ \xbd\x1b:\xd4\x1bH\x88\xdc\xcf\x92\x1e\xe3\xb3fF\x9b\ \xab\x9d\x18\x15S\xad\xf9f6c\x15\x83_\xba\x1c\x1c\ \x04\xf1x\xd5\xe0U\xe7\xcb\x85\xc4u\xbe\x82\xc4\xfe\ ,K\xc3\xf3T\xe3w-v\xb2fnV\xe0\xac\xd5\ t\xa5\x87$FR(\xa7\xfe\xaa4\xabB\xf3u\x8b\ +\xed\xac\xbf1A\xaa\xfe\xde\x8cW\x8dH\x5c\xd0\xcc\ WQ\xaa\x06\xf33Y\xd7\xdd\xcb\x9d\xccDE\xff\x9b\ \x99\xf8Z<\xac\x83\xf43\xc6\x95\xe7PA\x08\xf7\xd5\ \x8f\x13\xb8\xb8\x0dc\xaa/\xee\x99\x22\xfe\xc3\x0b\x98\xfa\ \xb8\x1b]\xfbsr\x01S\x1f{\xa3\xbb\xbd\xdb\xc1)\ +\xecvj1\xfc\xa9\xcc\xbfz\xc9br\x07Rz\ =z\xb3\xa3\x04\xb0\x1fn\xc8\xa3;\xc3\xb1\xc4U\xc5\ Lb\xa6:\x97\xb0\x82N\x02\x91\x94\xd6Tv+-\ \xc9\xf5\x882\x0fSAP'\xbb+\xb2k\xec\xb4\xde\ \xeb\xeb\xbaL\xb2(L\xfe\xd9\xbe\x94\xf2[\xfa\xb50\ /Zl\xc3\xf0\x80\xb6\xfcgk^\xc2ST\x22-\ \x9f[y\xa3\xd8\xd3\x0a\xc2K[\xc7#\xc8cX(\ \xc2\x0f\xafFJ\x98P\x95y\xb9\xc7\x01&\x85\x9f\xaa\ \xc7\xb9\xf4\xd9\x85\xa1G\xc4\xa3\xba{xL\x1b\x85\x1e\ \x88\x07\xa1\x1e\x85<\x8b\xa9\x81|\x00\xb8\xd0%\x04\x1b\ \xca\x87\xf6\xa8@\x8c\xf2\x81|l\x8f}\x5c>6G\ }\xe9\x0cVe\xbb\x12\xbf4o]\xf0_.\x01;\ \xf5\xa2PI\xfc(T}\xf5\x00P \x9e\xe5\xb6\x16\ \x8e\xc8&VX\x09\xd9[\xcbb\x05Y\x09d\xafD\ \xb3M\xac6\xc6\x9e\x01+.=%\xb0\xd2\xf80\xc4\ v\x5cWb\xe1\xa2}6\xba\xbb\xfa\xc3\xca\x15O\x18\ \xe2\x1d&V\xf9\x86P\xb6a\xd0\xf7\x1b\xe9n;\x82\ \x5c\xf2\x84%\xdeu\x99j\xb4\x8f\xc4\xbe\xed\x9e{\x19\ \x07H\x1d\x82\xd3\xab\xa2\xf4\x1a\x18]\x8d\xedko\xd5\ \xb7\xd6r\xdbw\x11\xc3\xfb\xd8<\x5c\xb4\x8ft\xeb\xb7\ 2;\xf7\xa7\xa6\xda\x0e\xd4n\xedek\xc2m\x96\x87\ &oH\xd5\x15\x86\x18\x90\xea'Z\xbf)Z\xaf\xdd\ ]\x5cLMKG\xbb\xe9\xc5\x9d\x1ff\x0f`\xd96\ \x89\xdf\xb3lf\x15\xb3-\x5ct\xc6\xc3\xde\x0b\x22O\ \x0b\xf8\x95[\xc4\xd5\xdaGP\xf8e[\xc4E\x9e\x03\ Fn\xe2\xaf\x0c\x9c\xa7\xfah\xd0/\xee\xb2\x87in\ q\xe9\xdd\x8d\xb43-\xc5\xbd\xbd\xcd\x96\xbb\xc9a\x16\ ,\xec\x8b\x88n}\x171_n\x8ex\x88S8\xa7\ [\xbf\xe4\x8a\x19\xdbB\xa3\x1e\xd1\xbc\xf8\xaa\x18\xdd3\ b\xd9\xc9\xe7&i\xb5\x9f4\xf3\x97\xf1,\xfen\xc2\ N\xe0\x06\x8c\x08\xeeL\x00\xf1\xe2m\xe6\xe7\xa1]e\ 3,\xb0\x084r\xba\x0e\x03\x96+\xdb7\xb0\xc9\xb6\ \x83b\xdc\xf943\x9b\xb7\xd7<\x9d}\xd8}\x0de\ R\x1f:\xc3\x8d\xde\x22\xf5\xe7\xf5x\xbb\xba\x95\xf6\x22\ K\x93U=l\xad\x07W\xe3mA\xaf\xfag\xa6\xf4\ C\xbf\xf4;\xa9oz(\xd2\xed!\xf30\x9a\xfc\xfd\ \xc3\xaf\xad\xfa\x06\xc1\xe4\x1fY\xfe\xadSK;\xc0\xbf\ \xcd\x16\xc0\x97\xd6\xa2\xd8wM\x83\x895\xef~\xf9>\ \x9e\x01\x84\xf6\xdd\xd8?/g\x09\xe8_K\x18\x0c\xb6\ \xb8u\x8b\xae\x97\xcd\xcd\xfau\xdf\x9d\xef\xb7\x86\xc1,\ \xb6\x93\xc6\x9fKH2>\xdaM\xfaff\x5c?h\ c\x0az\xe7\x80\xf8\xbf>h\xd5\x9av\x00\x0c\xa4\xbe\ eo\xe2\xdf\xda\x1b\xbaO\x96\xe8lQ\xa7y\xb6\x98\ \xcf\xb2\xd0\xd4\xd3kz\xb9\xcb\xc1\xa1KJ\xde5\xc8\ N\x07\xd2!h\xef>l\xda!Q\x11%\xc5\xbc\x0f\ n\xde\xbb\xef\xdc\xd8\xacy\x93\xab\xae\xbes\xa5\xb0F\ \xb6\xcc\xa8\x05\xd7\xd0\xac\x8a~\xfd\xac\x09\xfc\xb9}5\ @{\x8a\x08\x89\xe5\x80\x02\xea\x04i7\xf4K\xce\x06\ \x84F\x13\x19\x81u\x85R|@\xad5\x99a\x8f#\ \xa2\x08\x1d\x10\xed\x81\xec\xf3K\x8a\xc4\x80\xd0K\x19'\ o \xe0\x88\x82\xe8\xa7*\x7f\xec\xb2\xa7\xc7\x92G\xe2\ !\xca\xb4D\x9c\xf4\xeb\xb2\xc0\xa2uYvw\xb1\xb6\ \xe9\x05Q2y\x02F\xa0\x9c\xb0\xa6/\xf4\xc1\x00\xe7\ \xb9\xbf\x9a\xa4Y:\x94\xadi\xfbu\xc8\x89\xe7\xf0\xa1\ \xe2\x02\xf5\x14\x98\x08\xde\x0f\x17l\xb2@l\x86\x80{\ \x01o\xc7\x01k\xed\xa9\xc0\xbc\xcf\xb8\x1a\x7f\xcbSE\ \x10\xed\xaf\xd6C\xbf\xef\xdc\x07\xd8S&\xb8\xcf\xf6a\ _S\x87\x89\xbb\xc7\x90\xe0\xf0\x84\xf4\xc5\xb1\xdfV\x0d\ \xc4\x1eS\x8d\xc1\xc9LD4\xd1\xa7H\x15c/s\ \xb2]\x9a\xa15>\x5c\x9d\x1e\xd7\xc4e\x95\xda1x\ ~$\xb7t\x1eS\x0f34\x14\xabSd\xb8\xe3\xce\ \x8b\x98&\xe9a\xc2\x14b['#\xd8#j \xc6\ \x8f\xab\xc5\xa3\x8a\xd1\x87\x9f\xee\xb7K>\xabdd\x8f\ \x04\xd5\xd4?J7\x1a\xbbT\x7f\xa9>\xae\xac\xe7}\ \x7f\xf1\x1f!+Qw\ \x00\x00\x08~\ \x00\ \x00\x1d\xd1x\x9c\xcdYm\x8f\xdb\xb8\x11\xfe\xbe\xbf\xc2\ \xd5\xa2@\x16\xb7z!E\xbd\xae\xed \xbd \xc1\x01\ )z\xb8$\xe8\x87\xa2(h\x89\x96\xd5\x95%\x83\xa2\ \xd7\xf6\xfd\xfa\x1bR\xef\xb2\xec\xac\xd3+\x10'\x8b\xb5\ f\x863\x9c\x873\xc3\x19\xed\xfc\xedq\x9b\xcd^\x18\ /\xd3\x22_h\xc8\xb0\xb4\x19\xcb\xa3\x22N\xf3d\xa1\ }\xfd\xf2A\xf7\xb5Y)h\x1e\xd3\xac\xc8\xd9B\xcb\ \x0b\xed\xed\xf2n\xfe\x17]\x9f\xfd\xcc\x19\x15,\x9e\x1d\ R\xb1\x99\xfd\x92?\x97\x11\xdd\xb1\xd9\x9b\x8d\x10\xbb\xd0\ 4\x0f\x87\x83\x91\xd6D\xa3\xe0\x89\xf90\xd3\xf5\xe5\xdd\ \xdd\xbc|I\xeef3X\x15\x8b\xcdBs\x89&\x9f\ 6,M6\xa2}L\xe3\x85\x06r\xb6\xe3\x04\xea\xb9\ \xb7AT\x09\xd4\x9a\xc3>\xc7\xc0\xb37\x16\xb5\xach\ \xed\xd8v\xf08\xc3\x16\xc6\xba\x05\xff\xc9\x83ZT\x82\ [;\xf8\x09\xe3\x22\xca\xe9\x16\xbc\xa1x\xf7\x9f/E\ \x92d\xec\xdd^\x14\x9f\x8b\xec\x85\x19`\xb7\xb2\x99\xb2\ \xc3\xdf\x8a\xe3B\xb3f\xd6\xcc%\xb3zk\x80W^\ \x86\x8d\xfd\x85v\xc9]i\xa0\xdc\xd1\x88\x95fC\xef\ \xado\xb6\xd2\xaeo\x08FY\xecy\xc4\xd6\xa0\x82\x19\ 9\x13\xe6\xfb/\xef[\xa6n\x19\xb1\x88{j\x8e\x19\ \xe8\x1e\xec\xe1`+\xeb(\x08\x02Sq;\xe9)9\ lY\x96\xd9x\x5co\xed%y\xa5$\x8f\xd7\x17m\ [\xd8\x04\xf0AB/O\xb9\xa0G=/\xef{K\ \xa3\xa8]\x19\xc90J_XTl\xb7E^V\xe0\ \x0d\x84\xe3Nx\xb7\xe7\x99\x92\x88#\x93el\xcbr\ Q\x9ap\xf4\xa6\xb6\x04\xf9y\xcc\xd6\xa5\x5cWE\x90\ |\xb2\x1d\x17)\x1ep\x01\x0eF\xf9GN\xe3\x14\xd6\ Ur\x95\xe4\x90Cl\xdf\xd6m\xad\x15hb-*\ \xb2\x8cE\x10\xa54;\xd0SY\xab\x05\xc5\xa5(v\ \x8dt\x1d\xbc@\xf1l\xe4\xfbZG/\xd6\xeb\x92\xc1\ j\xabG+\xc5)c\x95\xb8\x0e\xea\x0b\x1e\xde\xdb\xc4\ u(yR\xa4\x02\x02(\x15\xa7\x10i3\xf3\xdb\xd6\ \x02k\xc2\x1a\xban\xcd\xc3\xc1:Z_\xb267\x87\ \xc8\x5c\x07\xf2\x12N\x8d\x80\x8a\xc7p\xc3\x19\x84\xcd\xfd\ u\xc8\xa7\xce$\xd0;\xff\x8eh\xa1a\xcf\xc0\xc4v\ l\xdcRO@u\x88\xe1\xf8>B\x1d\xf5\x88A\x16\ \x9d\xc9\x02\xd5\xb6\xc6\xb2Im\xeek\x9e\x0aH\x98}\ \xc9\xf8g\x99\xc4\xff\xc8\xbf\x96\xecL\xea\x0b\xa7y\x09\ \xa9\xba]hB~\xcd\xa0\x1e\xbe\xd1kS\xf6\xa3\x8e\ k\xf5\x0f\x1d\xa0\xff\x0f\xe8\x02[\x0f\xaeB\x17\x04\xba\ 7\x80\x8e\xf8\x86\x87`\x93C\xe8\x88\x03\xfbu<\xdf\ \x19@G\xac3Y\x09(\xa9d\xbd?\x13:@\xce\ w\x5c\xe2{\x8f\xc8 \x88`d\xbb\xff;t\x93\x80\ H\xc4.$\xd4D\x92`\x8bP\xdf\x1b'\xc9\xf5\xcc\ n\xf2\x12\x8c9\xf2\x12\xbd\x94\xbf\xaf\xae\x00\xd7S\xbb\ g\xce\xd3\xbf7\x81\xcf\x90\xb2-\xc7\xbb\x01'\x9f2\ l\xbfb\xe3\x96aU\x9f\x09\x07\xc0dp\x13Z\x84\ \x05\xd4r_\x81\xd6U\xa3\xeeu\xcc\xe6\xa6\xbcL\xd4\ \xb7\xb6\x8b\x907|,\xbb\x84\xee\xc6Y\xd16\xd4w\ 4aj\x87\x90\xb0k\xf5\xa9\x19\xab\x82\xc7\x8c7,\ W}\x06\xac\xda\x89\xaa\x1b\xabu7A.\xb5\xb6|\ k\x9a_nh\x5c\x1c E\xc7\xcc\xdf\x8b\x02\xd2\x0d\ \x1b>\xf6\x09\xf6\xd0\x98\x1dA\xaf\x83<\xc3w\x08!\ \xee\x19\x13\xec\xd9\x8e\xe1C~\xba\xc1\x19s\xcf9\x00\ \xa5g\xf4\xc4\xc0\xa9\xc4\xf5\x83\xa6.\x94\x9b\xe2\x90p\ \x89\x8d\xe0{6^\x08\x8d\xd8^\xde\xe1\xfa\xbe*\x1a\ \xbb\xe3XB\xae\xd5W+\xd9\x87M)8\xa49\xf8\ \xaa\xd7\xcd$\x22\xe4\x0c\x91Z\xa2i0}b_\x90\ 8v\xf9;f\x9d.\xb3\xb6\xf4\x98n\xd3\xdfY\xdc\ \xa5c+R\xe6t\xa7'Y\xb1\xa2\xd9B[\xd3\xac\ <\xdb\xbe\x0a\x92\x0d\x8b\x9e\x19_\x15\x94\xc7\xd2N\x1d\ \x84\x03\x04\x9a\x88\x15'\xd9r\x1eO\x926(p\x92\ `[VW\x8d\xd9v'\xbbO\xd5\xc6\x93\x96\xfa\x92\ \x96\xe9J&P\x0fK\x90\xcd)\x10\xe3\x11U\xee\xbe\ \x96\x97\xdaeN\x94E\x9e\x9d\xc6b\x95\x15\x89\x9e\xe1\ \x8c\xa9\xa7\x8aZe\xd6\xdc\xfe\xfa\x09\ \xfft\xa3\x97c{\xd2Z\x96F,/\x99:\xbe\xb2\ >\xbf$\xdf\xab\x83\x8b\x8a\x1d\x5cqkaf\xac\x84\ \x16\xca\xd8\x08\x19\xab\xbdE\x03o\xc0{\xc1\xd3\x15\x0c\ \xaf\xb7\x9d\xd8\xbfh\xc2O\x90\xce\xff\x9e\xbd\xcb\xd8\x11\ \xc6{\xc6g\x1f\x15\xe5F\xf7&6\xa0dej6\ \xd7i/s\xe7f\x93\xda\xea)\xe9R^\xdd\x1dg\ %4\xa3+\x06\xc5\xf3\x93d\xce\xce\xb8\x09/\xf6\xbb\ m\x11\xb3zyS*\x92\xb6^v]&\xe49O\ \x8fo\xa0\x1cA\x8b\xe2\x04\xc4y\xb4\xe4?\xc3!\xb6\ \xe5a\xf7\x11\xfb\x86O\xfc\xc0\x0a\x1e}\x03A\xdb\xe3\ \xfa\xee\xc3\xb0\xc4\xaa[\xadu2\xe9\xd0Q\x5c\xe4\xd8\ ^\xaf\xb3\x10\x93\xa3\x01\xdc\xd8\x1e\xf2l\x0b:\x5c\xf8\ \x8e\xb0c#\x17\xd9\x0f\xfdr\x95\xf4OLi\x0e\x5c\ \xac\xf5\x89\x13NA\xbf\xec\x13d{\xe0\x15\x8c\x1f\x01\ \xb2l\xd7s\xc1=\xdd1\x5c\xcf!\x1e\xcc\x22(0\ \x10\x81a\xb8oll\xae1\x08\xbd\xfe(pFb\ \x8d \x19\x0b\xca:\x0dM\xf8X\xbam\xdc\xda\x06\xed\ i\x0d\xb52\xbc\x8f\x22\xd9\x91\xa9\x87\xaey\x83^\x8e\ \x17\xcf,\xbc\xaf\xfa\xb5\xfa\xb1\xba\xe4C\xdc<\xca\x0b\ \x09\xa2 \x84\x18\xc8\xe3>\xf1\xbfE\x9a\x0f\xa9P\x9f\ \x19\xcf\xe0\x9e\x16!ih1\x85>\x89sz\x0a\xf3\ \x22g\x0du\xaa\x81\xec\xbb,\x9d\x0b\x10\x99\xe0\xd6-\ \x08\x0c\x9a\x9e\x0b1\xe5N\x884=\xc85\x19\xb8G\ m8)\x88H\xe4L\xb0\xe1B\x853E\x18\x05\x1e\ B\x83[\xe6;\xd0W\x8e_\x80\x9e\xadq\x80\x83\x1f\ \x0ez|\x05z\xd9\xbbz\x04\xdbS\xb85\xd0_\x93\ \x01\xe8\x092\x10\xf2\xf1\xe4\x01K\xe8m8\x19\xd7\xf6\ ,\xf7\x0c\xfa\xb9\x99|+e&K\x02\xe4(\xb6\xeb\ px8\xb3Ze\x19\x04\xca+\xcfy\x18\x1e7G\ \xd7k\x02\xf4\x15q\xde\x9e\x96\x8d'\xb8\x17*A=\ \xc6\xfd\x80\x95\xe0\xd5Y6\x8c\x90\x9b\x03\xec51\xfa\ \x8aP\xef\xd0\x9f2r{%h\x87\xfa\x1f\x00\xfaQ\ \x96\x8d\x1f\xcf\x8f\xe5vw\x7f\x9c;\xa7=H2>\ \xc8.\x07]\xdfB\xc4\x1e\xb1\x9b@\x22N\xc5\x1f+\ \xae\xaa\x00F\x0ev\xc7Ke\x08C'\x04-\x87\x05\ w\xfb`\x8a\xe9c=\x17\xec8@\xbaW\xdb\xa05\ \xcb\xe4\xab<\x0b\xf9\xd0n\x04\xd0b\x05>\xf2 )\ F\xf5M\xbd\x13\x005\xc8\xf5\x87\xbb\x90o\x1a\x90\x81\ \xdd\xc0\x0d\x06t\xd8\xb6N\xb0\xe1b\x0c\xf5k\xc0\xa9\ Oy\x0d\xbd\xa8\xae\xbe\x03\xbe0\xd8eO\x8arP\ p\x0cH%L\xec\xa1\x03\xdd\x18\x22\xfe\xee\xf8$O\ \xb0~C\x10BS\xf6\xd7JhM\xb7iv\x0aK\ \xf0L\x87N<]?eL\xc0\xa1\xea\xf5p\x1bZ\ \xb0\x14\xe6\xa9x@\xa8\xaaY\x1dE\x17blEW\ \xf1\xca\x1d\xc6\x98|\xe3\xe9yd\x1ci\xd0Y\x8b\xb3\ @S\xb1\xf5g\x05\x1a\xcc\xc2\xa1\xfaC\xd5B\xdb\xc1\ \x9c\xcb\xf8\x0b\xd3\x96s\x01\xa4|2\x97.\xa0\xfcB\ yJs\xf1M\xe4\x05g\x22\xda\x9c\x9f\x06\x04\xab\x85\ l[\x22\xd8\x03\xff\xebj\x9f\x8b\xfd\x93\xde\xb4\xfcz\ \xb5`\xc7\x22\x18\xed\x225\xc062\x03\xe0o@\xfa\ \xdb\xf8\x9d\xe7\xc8d|^\x8b\xd0:\xdc%\xa8\x10\xef\ \xe3\x84l\xdf\x8b\xf0B\x22,\xcfY[\xca\xbfH\xce\ M\xb5d\x09\xbf!S\xba\x01+iF\xab\xa4\x1a\xaa\ \xe0\xd7\x5c\xbe\xd8X\xde\xfd\x01j]O\x17\ \x00\x00\x0a\xe3\ \x00\ \x007\xc9x\x9c\xe5[[s\xdb\xba\x11~\xf7\xaf`\ \x95\x17{*R\xb8\x92\x80\x8e\x953\xa7\xcd\x9cNf\ \xd293urzy\xf1\xd0$$\xb1\xa6H\x0dI\ YR~}\x17\xbcS\xa2lIV\x9c\xb4Ul\x8b\ \x04\x16\x0b\xee\xb7\x0b\xec\x85\xc8\xed\xcf\x9bEh<\xa9\ $\x0d\xe2h2\xc0\x16\x1a\x18*\xf2b?\x88f\x93\ \xc1\x97\xcf\xbf\x9ab`\xa4\x99\x1b\xf9n\x18Gj2\ \x88\xe2\xc1\xcf\xef\xafn\xff`\x9a\xc6\x9f\x13\xe5f\xca\ 7\xd6A67>F\x8f\xa9\xe7.\x95q=\xcf\xb2\ \xe5x4Z\xaf\xd7VP6Zq2\x1b\xdd\x18\xa6\ \xf9\xfe\xea\xea6}\x9a]\x19\x06\x8c\xf2\xb3\xf9d`\ \xb3\x81\xbe\x9b\xab`6\xcf\xea\xdb\xc0\x9f\x0c\x80\x8e\x22\ \xc1\xf3\xfb\xd6\x03\xe2\x82\xa0\xe4\ (\x05\xb1\x96\xf0;\xf6c/r\x17 \x8dK\x96\xf7\ \xbf\xac\xb2\xf8.\x0e\x9f\x94\x053\x16\xb3\x05j\xfd\xa7\ x3\x19 \x03\x19\x0e\xb2X\xfe'\xef\x02\xb4\xa2t\ \x5c\xcd>\x19\x1c\x12V\xb3O\x97\xae\xa7\xd2Q\xd5\xde\ \x1a_=H=\xbej\xb0\xd2x\x95xj\x0a,\x94\ \x15\xa9l\xf4\xe1\xf3\x87\xba\xd3D\x96\x9f\xf9-6\x9b\ \x10xw\x9eaM\xf3\xd9\xb1\x94r\x94\xf76\xd4}\ t\x04!4\xaa\xa4.\x1f\xediv$e\xe2O\x0f\ \xce\x8d\xc8\x08\xa0\x07\x0a3\xddF\x99\xbb1\xa3\xf4]\ k\xa8\xe7\xd5#=mD\xc1\x93\xf2\xe2\xc5\x22\x8e\xd2\ \x02\xbc\x0e\xb1\xdf\x10/WI\x98S\xf8\xdeH\x85j\ \xa1\xa2,\x1d\x81\xe2G\x83\xf7@\x7f\xeb\xabi\xaa\xc7\ \x15\xf6\xa3\xef\xc0\x80\x9c\xbc\x0fz\x01\x0e\xe5&\x7fI\ \x5c?\x80q\x05]\xcb\x90\xbc8\x0c\x95\x07&\xe8\x86\ kw\x9b\x0ej\x02`\xd5\x1dJ%!%S`\x9b\ f\xf1\xb2\xa2\x05\x13\xcb\xb6!\x98\x85n4\x81c\x9c\ \x8c\xdfy\x0cL\x12\xfd\x947\xc5`\x12A\xb6\x1d\xe3\ A3$\x9eNS\x05\xf3\xa2V[n\xff0\x00\xa6\ b\x03ct\xfcdSOI6}y2\xdc?\x99\ ]Ov;\xea\x0a}q\x10\x85d'\x80H\x10s\ \x85s&\x88B\xda'\x81\xe8\x109\xf5\xce\x05QH\ q&\x88=\x189\xf8\x14\x8c`\x91Nw\x1f\xfb\xa7\ \xa3Ar\xe8i\x966\x05\x8c\xbc#f\xebG\xc9\xe1\ \x97C\xc9\xa6'\xa04\x9d\xa2\xfd\xe5x-P\xf4\x05\x9e\xe2\xf3\xbd;\xbd J\xa7D\x8a\ \xaf\x8c\x81\xf8\xa9\x91\xa2\xa3\x1cu6J\xfc\xc5H\xb1\ ^\xa8K\x95\xa4KX\xa9\x90O\xd6{R\x95\xf3g\ [\x9d\xafwIi\xe3/\x9a\x82\xc2\xf2\x1e2\x7fp\ \x01\x9c\xd8B`c\x0c{\x11G\x0e\xb5\xa5\xbe\xc6\xbd\ \x03\xb6\x93\x81Ia\xf7`\x82J\x07\xa8L&-A\ \x1c\x9b\x88\x83C\xbe\xc2\x10\x8e-\x1dvs\xaa\x87`\ bI\xf0\x1c\x98\xf6\x0f)\x9f\xd7\x84\x0d{\x16\xe8r\ \x07\xb5\x88\xa6\xd4\x9e\x08>\xac;J\xef\xac\x0d\x16\x14\ \xb5\x12\xa0o\x81\x96\x89\x19\xec\xd7R\x88\x5c^\xdb\xc2\ \x92K!\x9f\x83\x0b\xe9N\x0401\xce\xe1\x12\x1d\xc2\ \x08(0\xb79\xa2/3\xdeC\xc8\xb1\xb0\x10\x149\ \xf9T\x16\x0c\x84<\xf0\x05\x98\xd8\xb7\x85\x89Y\xb9\x9e\ \x9e5\xa4\x1c\x19\x8c\xd0s\xa8\x80\xad\x89g\x18\x1d\xb0\ \x15nam*\xd4y\x1e\x04\x8c\xfb@\x00?m\xaa\ \xe9\x14\x88\xaa\x81\xc5\x1d\xac\xd2G\x15\xaa\xcc\x0d\xbb\x1c\ \x1bz\x8al\xbb\xe9K\xef\xcb\xa8`2\xc8\x92\x95\xaa\ ;`@\xa6\x92H\xfb~\x88\x8b\xc0\xe1cd|\x82\ ?\xc3\xb6\xdf\xf7\xe2\xe5\xb6\x80<\x0dt\xf0q\x0f\xee\ ]e\xde\x5c5\x90/\x93xy\x9f\xfb\xf3\xf6~\x92\ 7\xdco\xef\x13\x15B\xd0\xe0\x86i3\xb1\xae\xd2\xe5\ \xc5\xce\x06\xed\x08\x82\x027\xbc\xdf\xdf\x043\x08yz\ \x9a\xf39WQ\x90\xa5\xbb\xcc!\x12\xca\x02\x98\xfb\xbe\ \x16\xaf\xdb?]\xa5\xea>\x8bC\x05\xb1\x88\xa7\xda<\ \xc3\xa5\xaaK\x9bM\xeb<\xf0\xd5\xfdc\x14g\x15\xa3\ ZS\x17+\xcc8\x5c:\xa78\x5c\xfd\xa1g\xba\x12\ \x98K\x9e\x18\x96\xec\xcf\x86\x8eu%\x0eD\xfa\x17I\ \xa7\xf1E3\xa9]ngF\xd1TJ\xbe\x1bE\xeb\ \x95\xc4\x87\x10:k\xef\xc2\xf3\x9bo\x19F\x97\xb9\x0d\ lNyn\xa3\xbfa\x01\xbfY\x82\x8b\xef.W\xe5\ \xe8\xf2:7\xb1A\x18\xfd\x18*\xd1\xa9MQw\xd0\ \x17\x90\xbe\x92\xb7T\xcbEW\xcb\xdde\xea\x0e\x08R\ \x94\x1fB5\x95f\xf4\xf7\x9b\xea\x85\x5cT/\xbb\xdc\ \xce\xd6\x0b\xe1\xc7#\xfe\xbfS\x0fB\x16-\xad\x80\xea\ 5j\xcb7\xad\x08\xfd\xb6\xca>]\xae$\xd4\xe1v\ \xae\x1d`\xba\xb7>\xbfGM\x08|\xd8\x1b\xe8\xe1C\ \xe0.\xe2\xc8\xbfL\x95\xbe\x8f\xd9\xd9\xabq\xbf2\x07\ >\xc4\xb1\x90\x83\x91c\x0b\xa3\xbc\x14\x92\x81b\xd0\xb0\ \xb8\xe3\x90\xa1\x15W\xcc\x86\xfd\xecm\x03\x0e\x13\x16\xe0\ \x9b\xac\x9d\x0a\xe6\x0bm\xa2\xfd\xec\xce\xd6\x9b\xa0\xffe\ z{+\xb5\x95!\xf7\x05#\xc5K,4\x08\xde\xc5\ \x8f\x11\x8e\x98\x95R\xf2\x0b\xf3B\xf1\xfb\xf1uLy\ \xda\xbb\x5c\xfd9\xbb\x8e)O}\x97\xbb?\xdb\xd1\xc9\ '\xccvnM\xfc\xa5\x1c>?\xe83\x9e\x83\x85N\ \x06\xefz\x92\xf9\xc3pCF\xdc\xec\x13\x1b\x0cO\x0e\ >\x163\xd1l\xfa[h$\x10\x1fII\x9d\x86\xd3\ \x86L\x06\x94Y\x98\xda\x045v\xbb%}\xb4\xb3r\ \xae/E}d\x95\xaa\xe4N\x1f\x8c\xfa-\xfa\xd2\xae\ _|\x83r\x1bD\xd3\x8c\x0bZ\xd4\x0e\x85\xc5\xe1Y\ \x91\xf3\xea\xd2\x1b\xb7\xb0\xc0\xc2\xd1\x95D\x10\x16&\xe0\ \xe8@\x95\xb7\xa7 I\x18\xe6B\xd7\xe2L\xdb\xc2\x5c\ R\xbc[T\xde/\xc6\x99\xf4\xd5E\x9eg\x0c$\x7f\ \x09\xf1\xdcz\xb4e\xc7@\x08\xb5(\xe4NLt,\ \x04\xdb\x164\xd96\xebZ\x88\xb4\xa8\x8d\x18\xe5\x1d\x0b\ \xd9\xa7=\xd2B\xbe\x85\xf0\x0e~V\xf8\xb6\xc9\x83\x98\ &\x18\x91M\xc0\xe6\xc9\xae\xf4X\xd8N\x8b\x97\x96\x1e\ \xf2\x07\xc81\x89d\xbb\xd2\xef\xd0>/\xfd.\xd5\xe7\ >'\x8a\x18\x81<\x86\x96/\x94\x89\xb01\x93\x04<\ *\x98\x17\xd8?\xd6\x09\x0cd)\x08\x11\xe7\xe6;\xc2\ \xc9\x10G]8\x91\xc5$\xa5\xac\xbd[\xe4x\xc2\xce\ \x82\x18k\x85\x9e\x1aO\x22,\xe2\xd8\x9c\xd9]<\xf7\ h\xbf\xa35\xb5t\xdd\xfb\xba\xb7+>#\x90I\x22\ \x87u\x8d\x89\x0bKpHm\ \xb3\xb8\x1d\xe9\xb3\x9f\xf9U\xed:\xf4\x81\x5c_\x1f\xec\ \xbd\xaa\x1f\xf1\xc1\xad\x17\xd8\xd2\x9d\xa9\xdc\xcb\x83`\x85\ \x9b/;\x1e\xe2\xc4WI\xd5e\xe7\x9fNW\x19\x08\ \x14G\xa7\xaf\xba8j\xaeu?\xea\xefO\xe7\xae\x1f\ \xafA\xe4\xdd\xce\xafq\xbc\xc8U\xbc\xd7\xe3\x81o#\ \x8e\xc5\x18f\xc8\xde\xeb\x84\xa9\x98~Q\x06\x9d\xce^\ \xe7*I\x00;3t\xb7\x0a\xe4\xc9\xbf\xaa%\x9b\xce\ \xe3\xf5,\xd1\xb8\xb4\xde\xcb\xd4#u\x8f\xf9\xf0\xa0\x0f\ E\xf7u\xfb\xb1\xb7\xd2\xa7q\xcd\xf2-\xc8r\xb3K\ \xb1\x0e\x22\x90\xd3,O}c\xc6\xf6\xd0()\xaa\x93\ \xe0\x82\xd1\x03\x14\x9b&\x9e\xdb\xed\xda\x1e\xeeZ\xb8\x9b\ `\x11|U~\x13\x9fu\x14\xe1\xcd\x95\x07\x01\xebC\ \xec&\xbe\xe6\xb2\x1b\x97h\x04*#,\xe2\x90\xcdV\ \xb7u\xac^7@\xc0\xd1\x98\xafZ,\xeb\x17L\xcd\ \x02\xe9\x7f\x05\xa6\x22\x17\x1a\xfd\x9d\xd64r\x97%\xbd\ \xe6\xae\xd7U\x1aG\xe1\xb6$\xdb\x0f\xa0NyP\xf1\ v\x0fZ\x93\x15\xb3\xe8\xf8\xcc\xdem\xdcv\x1a\x8b\xb8\ i\xd3\x8e\xde\x8b\xa6m\x93i\xdc\x8e\xf6Wx\xde\xbe\ P\x99\xeb\xbb\x99\xdb,\xf7\xaa\x85\x82+\xac\xb4\x9b\xf8\ \xd3\xf1\xdf>\xfcZ\xe7\x00\x9e7\xfe{\x9c<6\xe1\ \xbb&p\x1f\xe2\x15\x18d\x9d\x97\xe8\x93\xe6\xdeX;\ a7{\x1f,\xc0v\xf4\xc9\xf8?n\x16!l<\ uG\x87X\xeb\xa1aZ\xb0MTq\xd8\xbf\xf7t\ \xbb\xef-\x02=ht\x97Az\xf7QO\xd2\xceU\ F\xe5\x83V\xe9DK\x0e\xc8\xbcJA\xf3\xbbY\x03\ @g\xb9\xd7\xe6\x12\xba\x0f\xfa\xa5\xe8'\xddi\xec\xf5\ \xce\x92x\xb5\x5c\xc4\xbe*\x87\x97\xfd\xad\xbc1\xbf\x0c\ \xddL]\xa3!%7\x15\xb2\xb3\x8e\xb5\xd9\xb2\x892\ {\xc7B\xda0$V=\x5c\xab\x22H\xbc\xb0\x05Z\ +\xdb\xadOh\xe7\xa9o\x93\xf8\xd5y\xef\x03\xe6\x04\ w\xf3^\xd2\xae\x0f\x83hEyx\xafh\x0c\xa8\xab\ \xa4j\xcdoB\xd85\xb21\xab\xda|\x17v\xec$\ q\xb7\xe3(\x8eT\xbb\xb5\xc8\xfe\xc6v\xd5\xd6wr\ \xbc\xce\xf7\x11k\xa7\xa4\x07\xe04i\xe7<\x9a\xde\xf7\ i\xbb\x1e\xa7\xf7\xfaN\x03\xec\xe9\xa4\xf3Bu\x17\xc4\ \xbe\x1a\x0cd!\x882V\x95b\xca[\xa9\xd5\x81l\ !m{h\x12i9\xba\x9d\xb5\x1f\xa7\xad\x10\xb0\xdc\ \xeb\xbd\x88\x00\xa1\x9bC\x1a\xaaO\xd8\xb75\x94G3\ \xfc\x87\xd3\x93I_\xa7\x83n\xc5\xa7c\xc6\xf5\xff\xd6\ (P\xa1\x88<\xec\xd6k\xf6\xec\xf6a\x95e\xfd\xef\ :\x9e\x13(\xaf(\x112\xc4\xc4\xf8\xdd\xe0\xc4\xf8d\ p\x06\xcb\xb5SOj\x8aQ\xa8-\xd0K%\x9f\xe3\ \xcc\xf8(@z\xcd\x88\x88\x83f\xd4\xc1\xef$\xc0:\ \xf6s\x18064!c\x03@l\xa2_8\xc05\ $\xf0\x88J\x8d\x1f\xb2\x08\x96\x0eqv*\xa5m\x14\ M\xfb,\x1c\x1b\x97\x06\x1b\xaf\xf6\x02\x10Qy\xf0i\ \xd5\x8ff\xc5V\x0f_\xb7\xda\xf9\xbc\xbf\xfa\x0fz\x1b\ N|\ \x00\x00\x19\xf1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \x0a \x0a \ \x0a \ \x0a \x0a\ \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4393-9\x22\x0a \ id=\x22linearGradi\ ent4399-7\x22\x0a \ x1=\x2248.714352\x22\ \x0a y1=\x2245.5\ 85785\x22\x0a x2\ =\x2240.714352\x22\x0a \ y2=\x2224.58578\ 7\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(1.2\ 856487,1.4142136\ )\x22 />\x0a \x0a \ \x0a \ \x0a <\ /linearGradient>\ \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \ \x0a <\ stop\x0a id\ =\x22stop3418\x22\x0a \ offset=\x220.5\ \x22\x0a style\ =\x22stop-color:#ef\ 2929;stop-opacit\ y:1;\x22 />\x0a <\ stop\x0a id\ =\x22stop3420\x22\x0a \ offset=\x221\x22\x0a\ style=\x22\ stop-color:#a400\ 00;stop-opacity:\ 1;\x22 />\x0a \x0a <\ /defs>\x0a \x0a \ \x0a \x0a \x0a\ \x0a \ \x0a image/svg\ +xml\ \x0a \x0a Path-Sto\ ck\x0a \ 2\ 015-07-04\x0a http://\ www.freecadweb.o\ rg/wiki/index.ph\ p?title=Artwork<\ /dc:relation>\x0a \ \x0a <\ cc:Agent>\x0a \ \ FreeCAD\x0a \x0a \ \ \x0a FreeCAD/\ src/Mod/Path/Gui\ /Resources/icons\ /Path-Stock.svg<\ /dc:identifier>\x0a\ \x0a \x0a \ F\ reeCAD LGPL2+\x0a \ \x0a \ \x0a https://\ www.gnu.org/copy\ left/lesser.html\ \x0a \ \x0a \ \x0a \ [agryson] Alex\ ander Gryson\x0a \ \x0a \ \x0a \x0a \x0a \x0a \x0a <\ g\x0a id=\x22g68\ 5\x22\x0a transf\ orm=\x22translate(-\ 0.00545247,0.011\ 36021)\x22>\x0a <\ g\x0a id=\x22g\ 1001\x22>\x0a <\ path\x0a \ d=\x22M 34.38968,12\ .296249 26.13314\ 3,9.1276952 c 0,\ 0 0.698213,-1.61\ 097 1.413433,-2.\ 147553 0.715222,\ -0.536585 1.2802\ 51,-0.692294 1.3\ 09743,-1.246019 \ 0.02949,-0.55372\ 9 -0.32632,-1.88\ 6354 -2.147541,-\ 2.536291 -1.8211\ 75,-0.649947 -3.\ 878365,-0.701376\ -4.252944,0.408\ 176 -0.374579,1.\ 109555 0.564174,\ 1.602571 0.33978\ 9,2.33125 -0.224\ 388,0.728681 -0.\ 534601,1.675005 \ -0.534601,1.6750\ 05 L 12.269135,3\ .5761202 9.13838\ 4,11.834795 c 0,\ 0 -0.894049,-0.2\ 87095 -1.3983,-0\ .924099 C 7.2358\ 3,10.273693 6.80\ 5774,9.2888832 5\ .868817,9.110609\ 2 4.931859,8.932\ 3332 2.981092,10\ .367131 2.627968\ ,11.422274 c -0.\ 353124,1.055144 \ -0.505964,2.8795\ 56 0.128818,3.50\ 4837 0.634782,0.\ 625281 2.438949,\ 0.200839 3.35445\ 1,0.433524 0.915\ 504,0.232684 1.4\ 06336,0.424782 1\ .406336,0.424782\ l -3.992574,9.8\ 0561 9.78357,3.7\ 66191 c 0,0 0.06\ 975,0.780993 -0.\ 709836,1.480805 \ -0.779588,0.6998\ 14 -1.268626,0.8\ 22458 -1.590464,\ 1.638618 -0.3218\ 35,0.816157 1.10\ 3304,2.630067 2.\ 172588,3.111358 \ 1.069283,0.48129\ 6 3.868534,0.885\ 952 4.190371,0.0\ 698 0.321838,-0.\ 816158 -0.67684,\ -2.274741 -0.345\ 171,-3.275473 0.\ 331668,-1.000734\ 0.481857,-1.381\ 606 0.481857,-1.\ 381606 l 8.18054\ 5,3.201619 3.807\ 507,-9.815236 c \ 0,0 0.09565,-0.4\ 02216 -1.090739,\ -0.426881 -1.186\ 392,-0.02466 -1.\ 9329,0.750905 -2\ .741124,0.246167\ -0.808224,-0.50\ 4738 -1.395649,-\ 2.367637 -0.9996\ 15,-3.531602 0.3\ 96034,-1.163964 \ 2.1331,-3.812936\ 3.12639,-3.2985\ 75 0.993291,0.51\ 4358 0.574005,1.\ 417992 1.633458,\ 2.08386 1.059453\ ,0.66587 1.71389\ 5,0.922 1.713895\ ,0.922 z\x22\x0a \ id=\x22path424\ 3\x22\x0a st\ yle=\x22fill:#a4000\ 0;fill-opacity:1\ ;fill-rule:eveno\ dd;stroke:#00000\ 0;stroke-width:0\ .892755;stroke-l\ inecap:butt;stro\ ke-linejoin:mite\ r;stroke-miterli\ mit:4;stroke-das\ harray:none;stro\ ke-opacity:1\x22\x0a \ inkscap\ e:connector-curv\ ature=\x220\x22 />\x0a \ \x0a \ \x0a \ \x0a \x0a \ \x0a <\ path\x0a \ d=\x22m 48.661765,3\ 2.042461 c -0.06\ 648,0.0011 -0.13\ 246,0.0056 -0.20\ 0229,0.0093 -2.1\ 68596,0.116885 -\ 3.105868,1.57814\ 1 -3.105868,1.98\ 7235 0,0.409097 \ 1.229309,1.75296\ 2 1.229309,2.395\ 825 10e-7,0.6428\ 62 0.06053,1.462\ 567 0.06053,1.46\ 2567 l -8.675012\ ,-0.06036 h -0.0\ 6053 v 8.594324 \ c 0,0 -0.817715,\ -0.003 -1.755491\ ,-0.236796 -0.93\ 7772,-0.233769 -\ 1.233258,-0.8728\ 96 -2.346863,-0.\ 872898 -1.113604\ ,0 -1.464056,2.0\ 44164 -1.522666,\ 3.213005 -0.0586\ 1,1.168843 0.762\ 953,3.387521 1.8\ 76559,3.329082 0\ .999033,0.0014 1\ .322291,-0.36893\ 1 2.286328,-1.04\ 9334 0.703331,-0\ .292211 1.578547\ ,0.05572 1.57854\ 5,0.05572 V 61.4\ 5169 h 8.623791 \ c 0.01741,-0.152\ 406 0.135284,-1.\ 324035 -0.358548\ ,-1.871158 -0.52\ 7497,-0.584421 -\ 1.055098,-1.2878\ 47 -0.996486,-2.\ 047595 0.05861,-\ 0.759747 1.28893\ 3,-1.869239 3.10\ 5868,-1.810797 1\ .816934,0.05844 \ 3.86953,0.759951\ 3.86953,1.98723\ 5 0,1.227287 -1.\ 172621,1.109795 \ -1.289843,2.1033\ 1 -0.117225,0.99\ 3515 -0.05588,1.\ 694722 -0.05588,\ 1.694722 H 61.64\ 8672 V 50.814396\ c -3e-6,3e-6 -0\ .701003,-0.52708\ 9 -1.345721,-0.1\ 76437 -0.64472,0\ .35065 -1.290756\ ,1.462567 -2.169\ 918,1.462567 -0.\ 879164,-2e-6 -2.\ 697717,-2.164377\ -2.463274,-3.74\ 2315 0.234443,-1\ .577941 1.232143\ ,-3.388331 2.169\ 916,-3.213004 0.\ 937776,0.175326 \ 1.289945,0.99281\ 2.28633,1.10969\ 4 0.996387,0.116\ 882 1.639079,0.1\ 16076 1.639079,0\ .116076 L 61.648\ 672,36.221225 v \ 1.676148 H 50.92\ 4811 c 0,-2e-6 -\ 0.472428,-0.7012\ 05 0.17229,-1.69\ 4721 0.644715,-0\ .993516 1.05702,\ -1.28704 1.05702\ ,-2.163671 0,-0.\ 849235 -1.431386\ ,-2.029958 -3.49\ 2356,-1.99652 z\x22\ \x0a id=\x22\ path5248\x22\x0a \ style=\x22fill\ :#888a85;fill-op\ acity:1;fill-rul\ e:evenodd;stroke\ :#000000;stroke-\ width:0.892755;s\ troke-linecap:bu\ tt;stroke-linejo\ in:miter;stroke-\ miterlimit:4;str\ oke-dasharray:no\ ne;stroke-opacit\ y:1\x22\x0a \ inkscape:connect\ or-curvature=\x220\x22\ />\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x0dj\ \x00\ \x00]\xafx\x9c\xed\x5cio\xe3F\x12\xfd>\xbf\x82\ +\x7f\x19#$\xd5\xf7\xa1\xd8\x0efg\x92A\x80\x09\ 6\xc8\xb1\x0bd\xb1X\xd0$%sG&\x05\x92\xb2\ \xa5\xf9\xf5[E\x89\x12iQ\xb6\xe5\x91-'\xb6s\ X\xec\x93\xfd\xaa\xeaUUw\xcb'\xdf\xcd.\xc7\xce\ U\x9c\x17I\x96\x9e\xf6\xa8OzN\x9c\x86Y\x94\xa4\ \xa3\xd3\xde\xef\xbf\xfd\xe0\x99\x9eS\x94A\x1a\x05\xe3,\ \x8dO{i\xd6\xfb\xee\xec\xcd\xc9\xdf<\xcfy\x9f\xc7\ A\x19G\xceuR^8?\xa6\x9f\x8b0\x98\xc4\xce\ \xdb\x8b\xb2\x9c\x0c\xfa\xfd\xeb\xebk?Y\x16\xfaY>\ \xea\x1f;\x9ew\xf6\xe6\xcdIq5z\xe38\xd0+\ */N{J\xf4\xf0\xe9\x22NF\x17\xe5\xea1\x89\ N{\xd0\x8eKi\xab\xe7\xc6\x0b\xd2E\x83\xe5\xc8\x83\ f\x8d\xcf\x9c\xb7$ $\x1cJ\xce\xad\xeb0\xc2\x98\ G\xe0_q\x5cu*`Y\x13\xf8o\x10ea\x1a\ \x5c\xc2j\x026\xf9\xef\xf7QR\xbe\xcf\xd2\xa2\xcc\x83\ $-}\x98v1e\x12_\xff=\x9b\x9d\xf6\x88C\ \x1cM|Q\xfd\xaf\xaa\x02\xc8\xd2bP\xbf\xc2io\ \xdb\x8aq\x8eb\x12\x84q\xd1\xaf\xcb\x1b\xfd\xeb\xb7Y\ \xf5\xaf\x0b\xfc\x22\x9b\xe6a<\x84!b?\x8d\xcb\xfe\ \x87\xdf>\xac*=\xe2Ge\xd4\x18f6\x86\xb1[\ \xefp\xcd\xab\xd9\xa9\xb5\xb6_\xd5\xae[w\xb5c\x84\ \x90~\xbd\xea\xe5\xab]\x8d\xee\xd92\x8f\x86[\xe7&\ \xac\x0f\xf8C\x0b\xaf\x98\xa7e0\xf3\xd2\xe2\xa8\xd15\ \x0cW=C\xd4\xa4\xe4*\x0e\xb3\xcbK\x90\xc4\x02\xbc\ V\xe3h\xddx2\xcd\xc7U\x8b(\xec\xc7\xe3\xf82\ N\xcb\xa2\x0f\xd2\xef\xf7\xce\xa0\xfdI\x14\x0f\x0b\xec\xb7\ P\x22|\xe2R\xd1\xaa\x0ej\x01\x8e8\xc8?\xe6A\ \x94@\xbfE\xbb\x866\x85\xd9x\x1c\x87\xa0\x87\xc1\xf8\ :\x98\x17\xbdU\x03\x18\xaa\xddUsF\xccrT\x18\ \xb7(\xb3I\xdd\x18\x14\xad\x9c\x8fA/\xb0\xd0\x83!\ \xb3|p\x14\x0aPL\xf2mU\x94\x81N$\xe5|\ @{\xeb.\xd9pX\xc401i\x94UV\x00\x1d\ `.\x0av\xd9\xbf\xfflq\x14\x89\xfb\xccF\xb7\xcc\ \xc6V\xb3\x9d\xf4\xdb\xeb\xbe\x1d\xc7\x0e\x98\xa8\x15\xbd;\ q\xde\xb2\xb2\xc6+\x11v\x07X\xf7\xc6|+\x8e\xcd\ \xd9\xc4\x1d`u\xcc6\x0cc+\x86\xdbf\xfbJ\x1c\ \x057\xdc\xe3{\x00\x92\x1a\xb3;\x90\x5c(\x19\x88\x07\ \x00I-\xd9\x1dH\xcd\xec0\xdc\x13\x90w\x19v\xc5\ \x8f\x83\x8b<\x06\x1a;\xbaUu\xbbDb\xd7\xe3\xd0\ \xd3\x1e#>\x13\x5c\xf2\xb5\xa6\xce\xa1\x94k_\x1aC\ \xe9\xbat\xc6\x00\x02\xbd\xd1\x16J\xd9F\xdb\xd1r\xb2\ \xdf\xd3\xa4\x04\xf6\x9e\x16q\xfe+z\x94\x7f\xa4\xbf\x17\ \xf1F\xab\xdf\xf2 -\xc0o\x5c\x9e\xf6J\xfc8\x06\ \xff\xfc\xd6\xa3\x8b\xa9\xb8\xeb\xb1\xe5\xf0\xc7k4\x1f\x03\ 7d\xc6\xdbp\xb3m\xdc\x84\xf15\x857l\xe3&\ $\xbc\xac\xd4F\xb6p\x13j\xa3-\x94rq\xb3\xed\ \x1ep\x03\xd8\x8cT\xc2h\x97\xfa\x82\x0aF\xb9zT\ \xdcn\x9ax\xa7\xc2y\xa4\xadr\x9bj\x04\xa5Rt\ \xa9\x1c\xa3]*\xc7\xc9_@\xe5@\xa5\xb8g\xef\xd0\ 9O?\x5c\xebH\x97\xd6\xb1\xa5\xd6\xe9g\xafu\x9d\ \x80 b\xf7\x8f(\xc0%\x06F?,~\x81\xc9$\ \xe6\x11;\x040\xdd\x1e\xe7~\x01\x0cL\xa7\xbd\x838\ \x8c\xdb\x89OY\x22\xf6lfl\xa1\x97\xd4\xf5\xa8^\ (\xa3:\xde7\xb7\xae\xda>\xaa\xcf\xb8\xdd\xd7\x02t\ R=:C=\x98YY\x17\xb3\x8a\x15\xb3\x1e\x108\ \xb0#\xf1\x8a\xdb\xee\xb6\x0a\xb8\xedY\xdf^\x8a\xa9r\ \xa1\xed\xd3j\xdc\x1e\xc3\xee\x83\xe2f\xe8\xab\xa5>\xc4\ R\x0d\xdf'n\x9d\x01\xd8c\xa5+\x87\xc5m\xaf\xe9\ \xd2\x0bb8I\xcd\xab\xa5>@\xe3$#\xaf\x1a\xf7\ 0\x8d\xe3{\xe5\xb8\x17\xe3S%\xdf3\xc7\xbd\x14K\ \xe5\x8f\xbf\xa9\xf1W\xf4\xa9\x92\xef9\xf6=\x00\xc3\x9d\ \xf4\xf1\xd0\xac\xfa\xb4:0\xc5\x93\xcc\x08OD\xdf\xac\ V~\x1e\xacV1\x09Fq\xb5o\x03\x80\x0d\xab\x9f\ e\xc5y\x96Gq^W\xa9\xea\xa7U\xb5\xdc\xdaY\ \x1c<\xbfi\xcb\x07G]\xd5\x93\xee\xfa\xe2\x22\x88\xb2\ k\xb0\xa5\x9b\x95_\xb2\x0c\x90d\xbe\xa5\xcaP)o\ V\x87\xb3\x8a\xe3,\xe5\x8c\xda\x8d\xcaye\x9cV\x13\ \xb6\xdatXWN\xf3\x1c\xc4\xe5\x8d\x83y\x0c\x8b\xaa\ ~\xd5q{q\x91]\x8fr\x04\xa7\xcc\xa7\xf1\xcd\x9e\ Q\x16N\xf1\xb0\xd2\x9b.\x14b2\xbb\xd9\x02\xfbz\ \xe7\xe7x\xe8\xdc5\xc0u\x92\xc2b\xbd\xe5\xc19\xe5\ \x84oiQ\x1f\xa6\x1b\xb1\x01\xda\xb2\xc5\x0c\xfb\xd3-\ \x95\xf3\xf5.\xde\xcd\xaa\xcb`\x96\x5c&_\xe2\xa8\xa3\ I\x91\x06\x13o4\xce\xce\x83q\xf7\xfbWjr\x11\ \x87\x9f\xe3\xfc<\x0b\xf2j\x8c\xa5\xa9\xb6 \xa8\x95\xb3\ \x9c\xe3\xe1\xfal\x8ee-\xa3\xc3\x02N\xc8\x9a\xa2\xe2\ \xcb\x09\x9e\xb3Ww\x16\xd6\xfe\xe0*)\x92s\xdcX\ l\xbc\x0c\xb4M\x03(\x8cn\x94\xe2\xcb/\xdb\xe3\xe8\ h\xd6E\x96\x8e\xe77\x9b-f\xc1[\x01\xbe\xbcY\ :_\x94\xd6V\xb4i'}\xd0\xd0x\xe6O.\ &\xdfUS\x9d\xbe\xcb\xcbk\x80\xac\x1au5Fk\ \xe4\xc9\xf4|\x9c\x14\x17q~\xd6\x80\x00\xa1~7Z\ \xed\x13o\xae\xeb\x07\x98\xfb\xfd\xbb\x0f]\x8bB\xb1o\ v\xafZv\xcc\x85C&\x114M\x86\x09\x94/\xc7\ \xed\x17y\xd8\xff)\x8b\xfa\x88_\xff\xe34\xe9\xff\xb2\ \x94G\xd1O\xc2,-\xfak`\xf1\xb2J5zc\ \x986vH\x04\xc5C\x96\xe7|\xfa\xf8\xf3'\xf6\xcd\ \x8e\xab\xbc9\x1f\xce6N\xc28-\xe2J|\xc5R\ ~\xa3tZ\x09.\xcc&\xf3q<,\xfb\xe3\xb8\x00\ \xff\xe8_\x94\xa8\xab\x8dN\xad\xd5\xc0\xea\xcb<9\x9f\ \x96\xd9n\x12\xfbw0\xca\xe7`\xce\xffq\xde\x8d\xe3\ Y\x00z\x92;\x1f\xab\x92\x1d\x97\xd7\xf1\x02U[4\ \xcd\xfa\xb0\xa1a\xb9'\xfd\xda\xb4\xab\xa7\xd1\xda\xe4[\ ncE~\xe3\xe0<\x06\xee\xfc\x84\x95\xceF\xed(\ \xcf\xa6\x93\xcb,\x8a\x97\xddk\xaa\x18\xb5\xa8\x11\x1c\xf9\ z\x1b\xa9\xec\x0a* \xect\x85/\x8e\xd7\x87?\xa3\ \xf5\xda\xab1\xa8\xa5\xcd\xfb\x0f\x8dQ\x80?\xf2d\xf6\ \x16hNq\xc695.\xc1\x7f|)\x0d\x97\x02\x1e\ !.V\x96Pf\x84\xcb\x8co\x19\x91\xdc\x1c7\x09\ j\x02\xca\xdb\x14\xd3\xf2\xecg\x08d2\x00\x9ay\xbb\ y(j\x8f\xbf\xc5\xda\xf51\xd0\xe21\x9f\x8e\xe3A\ \x9a\xa5_ \x8a\xf8\xb6(\xf3\xecs<8\xe2\x84\x9d\ W7>\xf0q\xe1)\x07\xac~\xc4\x91\xff\x97%\xe9\ \x00\x80L\xa3\xba\x14\xe8,\xce\xc7\xe0\xd5\xca\x81\xa8\xcb\ \xa2\x00\x02\x8b<\x0f\xe68A\xdck\xbe/\xe0\xf3\x93\ c].\x9d\x7f:\x8c:c\x87\x0aW:W\xf0\xcb\ \xf9\xd2j\x88H\xe2b\xf1\xe8\x82\xb5k\xd6\x11h\x9a\ B\x04\x9a\xe5\x1eD\x15WA9\xcd\xe3\xf6\x01Z\xe3\ \xcaZ\x0a\x82G\xde\x85\xc0!\xc4\x9f6\xe9n\xa0\xba\ \xb5\xdbC_\xa4^\x0e\x08\x84v\x01\x22,\x00\x02\xa8\ \x8c\x1df\x5cJ\xba\x10\xb9C\xd4\xd5\x19\xcf\xc1e}\ 0Xm\x07\xac\x5c\xbb\x12q\x15\xd2\xf9\xe4H\x09&\ \x85\xb8\xf2\xddp\xc5\xb3\xef\x17\x0b\xab \xbcK[\xc1\ r\x99\x05\xbb\x15\x0cu\x95q\x97)\xe7\x8f\xad\xa0\xd6\ W\xbb^(\x86`\xf1\x8d\xbb\x13+\x14)\xe4l\xc4\ \x10.]\xa1}E\x14\xd3P\xe4r\x83\x14 \x5c\xe3\ \x10\xac\xa6\x80\xafO\x8d0\x94\xdd\xa2\xb5\xb8\xbc\x15x\ \xab{t\xb7\x82W\xe1\xf5g\x00\xcfR\x8ftX\xb6\ \x05t$\x11\xd4\x95\xc2\x87\x1c\x95I(r\x85r$\ w9\xf3\x91G\x11?F]\xc0V+#\xf4}\xe1\ []\xfd|B\xf8\x9e\x9f\xadl\x00\x0e6.\x08\xda\ ;\xe3K&\x05r\x05^\xfdc\x9b\xd3\xe6\xe6\xc9\x9d\ \xf6\x9d\xfeQ\xb0\x83\x13\xf9\x16`!\x18R\xe0\xa3\x16\ |\xda\xe1\xa3\x1a\xc0\x0arH`\x9f\xc0V6!\x92\ .W\x08\x91F\x88\x88\x0b\x91\xd1\x95cnAH<\ \x1b\x84\x1e\x87\x8c\xb7\xf8\x12\x97\xf3\xb5#a\x02\xe2k\ \x17>\x836\x91[\xb0z\x5c3=\xe9\x8fnM\x93\ \xbcfx\xb1K\xa2\x04$\xcf\xa8\xb1\x8ac\x9eD9\ S\xeak\xd2$\xbct\xf1\xfc\xa8a\xe74\xc9\x93O\ \xae\xf8\x8f\x1b6\xa9.P\xbe>U\xc2\xbb\x22\x07\x17\ \xf7!#*\xd6\x11Q\xed#W\xc2\xcb$/\x16X\ \xc8\x95\x1a\x97\xa8\x1b\x0a\xfb\x9a-\xed\x9a-y\x1d\xc9\ \xfck\xbet\xef|\xa9\xd3\xbe_3\xa6g\x9f1\xdd\ \xd8&8|\xce\x84\x97\xdc\x0e\xce\xe7\xfbH\x99\xbc\xd7\ \xa4\xe9\xce\xa4\xe9\x86\xf3zM\x9bnM\x9b<\xfe\xa8\ h\xdd\x9985C\xe3]\x12'*|+\x14\xe3\x0a\ \xcf\x9a\xa8&\x5c\x13\xfdU\xa9\x93\xe4\x87\x0f\xf9\xf6\x90\ :\xd1'W\xfe\xc7\x8d\xa1L\x17({H\x9d$?\ \xbcG8dp\xd5\xb1\x93\xbf\x9f\xd4Ir\xfdb\x81\ \xadR\xa7\x8e\xa0\xf55wz@\xee\xd4q\x5c\xf2\x9a\ ;\xed\x90;u\x9cx\xbe&O\x7f\x86\xe4\xe9\xe9w\ ?\xef\xa4\xf4g\xb8\xab\xfc\x90\xec\xe9\xf9d\x06\xcf7\ {z\xfaKJ\x7f\xe6\xec\xe9q\xd1jfOm\xd8\ Z\xe4\x17\x0e\x85\x90t\xbb\x85\xc6W1L\x12\xad\x80\ %\xd5O\x1bX\xe2k\xcb\xa5\x99\xcc\x9a\x00\xc3Z\x06\ \xe7\xd3\xb2\xbc\x1d\xf4\xae?\xccP!+\x89o\xb4\x96\ \x04\x5c\xb4\x04\x8fl!os\xde\x03\x03\xfaFZ\xcb\ \x85K\xad\xcf(\xf8\x19{\xef\xb2\xb1\xe3q_sn\ 4\x90\xa9o\x95\x840\x1e\x5c\x16\xa30\x89t\xf1{\ \x12\x9c\x0a\x09\xe9\xc1\x95C0e\x22\xbe5J\xe1\x0b\ \xf8\x82j\x0b\xfe\xac\xeeO\xeb\xfe\x02H\xc3'TK\ \xa5]*}\xab\x99\x02\xaf\xb8h\x84\xb9\xe5r\x12\xfc\ \xce\x0fU\x80\x90\x8b\xfab\xa41\xc2\xf1,\x0c/\x99\ \x12U\x0ej,3\xed\x88\xa3V\x15\xccX=\xd3b\ \x9f\xbb4\xa5\xa1\x03\xb7\x08^F*\x8c\xf4\xd7\x0a\xde\ (\xca\x95\xde\xab\xe4\x15\x08\x9ei\xae\x18J^\x80\xec\ (\x08\x1e\xff\xf2\x8c\x12\x96C\xf0\x8b\x7fHEr\xa2\ \xef]\x06\x82W>\x11V\x09\x143\xbc2\x93\xca8\ T\xf9\x9aIf\xb8\x0bbU\x86X#j\xc9\xfb\x82\ q\xc5\x99\x0b\xaa\xa3\x8c2\xba\xee\x8f\x1b\x06\xcb\xfe\x16\ \x84*|n\x19\xb5\x0c\xf7\x134\xa1\x82Hg9\x0f\ wW\xd3x\xa0\x17\x8a\x1aj\x85\x02\xad\x91\xa0kD\ 9\xf8\xd5/x3f\xb4q=<\xbb\xd50\xffv\ \xf1\xeb\x87\x09\xbfc\xcf\xa4I#\x8d\x1d\x93<+\x17\ \xdf\x15\x22\xf0\x8eT2\xab)\x84\x1d\x04\xe2w\xc0\x8e\xe1$\xec\xd6{\x0e\x92\ ^P\xc8\xed\xf3\xe6n\xee`\x84\x11c\x1e\xa7\xfd\xdf\ N\xd9\x82\xfb\x1b\xf8M\xf3&\xabE\x05^\x0b\xbay\ \xf7\x8bP\xba\xfd\xb1h\xf5\xbb\x177\xda\xbc\xff\xbc\xd1\ EU\xbc\x97\xca\x83\xab\xfak\x07\x7f\xd3\xfd\xfb<\x8a\ \x1ec\x81q\xb6\x0c\x19\xe3O\x11\xc5\x94\xba\x18~\x82\ '\xdd&\x00\xb0nS\xbbu\xee\x9c\x8b\xdfx\xd2n\ D&[\xdf\xca\xf7\xf6[\x9f\xc7\xfdV\xe0\xb5\xcd\x8d\ \xca\xe4\x12\x8e\x90^-\xb5\xff\xf2\xed\xcbQ\xe9b/\ \xd7\xf9t\xcc\xc1\xed[\xd6\xddK1\xc6\xbe\x8dp\xb8\ \xecv\xf5\x89\x96*_\x9e\xb2$\x9cs\x1fS\x1f\x90\ \x00\x0b\xb7\xdd\xd5Z\xdc\xb9u\xfbhok\x96\x8d;\ 3S)\xc5\xad\xcc\x9a\xaaj\xea\xb6\x87\xe3\xc08\x9f\ \x8c77\xaa\xec,\xf2\xcc\x97\xa5\xacd\xad[\x1f\xf2\ \xe0;\x0b\xb0\x9f\x8d\xc95x\xe6\xa6\x0e\xcc)}\xc9\ \x8c\x22\x1a9\xbdt#Vpk\xd9\xa8\xb9\xf3h\xd9\ \xbd\x06\xc5U\xa3r\xa9\xac*\xea^\x07\xaa\x06RU\ \xe8]\xdf\x13\xc3\x15\xb6<\xcc\xa9\xedZ\xe4\xcdv\xee\ \xd0S\xcaq3>\xbd9[\xcb\xecZ\xaa\xabF(\ p\xdb\x9a\xb4\xebf\xbbR&\x90\xa5([y\xbc\xf1\ }\xd3T\xe0\x0e\x14$\x0bX\x1c\x1e\xab3\xe8\x06v\ \xcf\x9blwJ\xba-jp\xde\x1dz\x90pz\xcf\ \xcb\xc1\xc2\xf6%\xc1\x84\x9f1\xb9\x9b\x028V\xc1\xdd\ AxNY\x89\xbb\xae\xfd \x5cr\xcf\xeb\x1b\xa5 \ \xefn)vRMT\x80\xfc\xae\x04r\xb9l\xa7\xa4\ \x9b\x15hc\xab\xad\xa4\x16\xb9\xd0b\xb2\xb0\x12\x869\ \xee\x8a\x08\xac\xa0l\xd3__\xbe\xeaW\xb0\xce\xb2\xf4\ \x8fF]\x0fKx\x19\x03q\xd5\xdc@\xf0\xceb\x14\ \xcf\xf2,\x85V\xac\x84^\x14\x15$\xd2\xb4\xcb\xf7P\ \xc23\x7fR\x1c\x18\xeb\xddFN\x87\xf6\xc7*\xd9\xf7\ \xf4\xc9\x92\xcf\xb3\xaa0\x9b\xfc7\xba(\xcb\xd7\xe6\x92\ !\xb2\xeeH\x7fpt\x08\xc3\xdf\x8bc\xe6\xdb@\xbb\ \xd5j\x02`\x05\x19&\xd4\x86\xbe\x11zm]j\xf5\ \xae\x04?\x96pU\xfa(\xe6I\x94]]\xb6Z5\ \xd7\xf2h\xd9\xd7J\x0a\xf5\x1cE\xd4\xd6\x1eBp\xf8\ O\x88z!\x89\xc3\xa7$\xf1 \xdb\xa0E\xbf#\xc2\ \xbc$0\x1f\x7f@$\xf6H\x98\xc4!b\xc4K\x80\ a01\xfa\xd1\x962\x0f\x87\x07v\xfdq\xe8\xcf\xf1\ \x12\x13\x82q\x9a\x11\x1a$#\x183-\xef\xf4\xbe\x89\ Y3L\xe2q\x1f\x94\x1f%\x1e\xa3$\xa1\x93\x10\xca\ \x95{1\xe7\x98\xc6\x81s\x0cC\x035\xd7}Nk\ \x93\xcb\xf2\xb2\x93l\xbb&H\xaf\x9a2\xbf,\x8bZ\ \x0e]\x91\xe2o{\xfdRTE\xb9K[Q\xb7n\ +U\xb1\xbctm%\xbb\xfd\x91\x1b\x99\x15\xcb\x22\x03\ \x12l\xea\xf4\xbb7`\x88\x9e\xc3i\xdf]\x96Rk\ \xa9\x5c3\x17`\xe2\xa6xsw\xb9\x05\xfa9\x10\xf4\ \xc9\xc1\xdd\xab[\xb8\x03\xbd\xa4\xc4\xe6\xaa\x86\xd9\x9f\x0c\x0e\xe9\x80&\xe0<\x87A\x05\xed\ N\x03/\x8cMo\xaf\x11\x09\xbc( \xd0\xf8\xf6\x03\ A\xb7\x88y\x11\xe9\xd8`\xf8\x10}\x90\x0f\xf6\x19\xc1\ \x8c\xae\x91\x11\xfa\xca9G\x0d\x04\xe3\x03j\xe0p~\ \x1c\xc5|\x9f\x1a\x80\xb6\xa2\x18\xc6+\x7f\x005L\xbd\ d\xd2v\xd4N\xf8\xb3\xa9\xc2\xc4\xe0\x8a\xb2X\xd5)\ <\x90+\xfdI\xdc\xd1o\xaa\xb3u\xa3\x86]_\x86\ MN!\xe0%\xe7\x08\xe5~l\xf7\xfc>\xc5\x22I\ \x12\x8c\xedr6\x7fG\xb9^\x0c\x0f\xffh|\xfa?\ \xcf@\xc7\x134\xfe\xb7'h\xec\x05\xd4t\x0b0\x01\ 9?;;+\xa0\x0b\x96\x18\xcd\xa7\x0d\xce(\x09>\ :8\xd9~w\x10\x0c\xe7\x07\x84\x87\xfb\xdd\x11{\xc0\ \xdb1\xc3\xd1\xff\x83\xf3\x1f\x18\x9c\xf7!>\x03\xf2\xe1\ \xe0\x0c\x9dE\xf7U\xf6?59\x1f<5M_c\ \x18-\xd3\xd4\x1cD\xdc\xce\xc5\xaf\x10\x0d7|(\x1e\ \x86'\xfa\xe8\x0f\xf0\x88\x12\xfaU\xe3\xc1\x1e^\x1f8\ f!'d\xc2\xe3\xef=U}\x95h\xb9\x91\xcbO\ #\x16~\x141\xf8>F\x22\xc2\x13z\x84X\xccI\ \xc4\xbf8b\x0c\xc6\xee\x97B\xcc\xa5'0ct|\ \xc4\x181\x83\x1eK\xc2$9j;\x1e\x8c\x94=`\ \x86\x03\x0aO(\x1f\xc5lf\xfe\x89\xb0\xb8\xf8\x0b\xfc\ u5\xad\ \x00\x00R'\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a \x0a \x0a \ \x0a \x0a \ \x0a \x0a \x0a \x0a \ \x0a \ \x0a \ \x0a \x0a <\ stop\x0a id\ =\x22stop73188\x22\x0a \ offset=\x220\x22\ \x0a style=\ \x22stop-color:#346\ 5a4;stop-opacity\ :1\x22 />\x0a \x0a \x0a <\ linearGradient\x0a \ inkscape:c\ ollect=\x22always\x22\x0a\ xlink:hre\ f=\x22#linearGradie\ nt4383-3\x22\x0a \ id=\x22linearGradi\ ent4389-0\x22\x0a \ x1=\x2227.243532\x22\ \x0a y1=\x2254.5\ 88112\x22\x0a x2\ =\x2221.243532\x22\x0a \ y2=\x2230.58811\ 2\x22\x0a gradie\ ntUnits=\x22userSpa\ ceOnUse\x22\x0a \ gradientTransfor\ m=\x22translate(-1.\ 243533,-2.588112\ )\x22 />\x0a \ \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \ \x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0a \x0a \ 2015\ -07-04\ \x0a http://www\ .freecadweb.org/\ wiki/index.php?t\ itle=Artwork\x0a \ \x0a \x0a \ Fre\ eCAD\x0a\ \x0a \x0a \ FreeCAD/src\ /Mod/Path/Gui/Re\ sources/icons/Pa\ th-Stock.svg\x0a \ \ \x0a \x0a \ Free\ CAD LGPL2+\x0a \ \x0a \ \ \x0a https://www\ .gnu.org/copylef\ t/lesser.html\x0a \ \x0a \x0a \ [\ agryson] Alexand\ er Gryson\x0a <\ /cc:Agent>\x0a \ \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ \x0a \x0a \ \x0a <\ g\x0a id=\x22g\ 1042\x22>\x0a <\ rect\x0a \ style=\x22color:#00\ 0000;clip-rule:n\ onzero;display:i\ nline;overflow:v\ isible;visibilit\ y:visible;opacit\ y:1;isolation:au\ to;mix-blend-mod\ e:normal;color-i\ nterpolation:sRG\ B;color-interpol\ ation-filters:li\ nearRGB;solid-co\ lor:#000000;soli\ d-opacity:1;fill\ :#3465a4;fill-op\ acity:1;fill-rul\ e:nonzero;stroke\ :#000000;stroke-\ width:2.00001097\ ;stroke-linecap:\ butt;stroke-line\ join:miter;strok\ e-miterlimit:4;s\ troke-dasharray:\ none;stroke-dash\ offset:0;stroke-\ opacity:1;color-\ rendering:auto;i\ mage-rendering:o\ ptimizeSpeed;sha\ pe-rendering:aut\ o;text-rendering\ :auto;enable-bac\ kground:accumula\ te\x22\x0a i\ d=\x22rect4140\x22\x0a \ width=\x225\ 3.974174\x22\x0a \ height=\x2215.\ 711096\x22\x0a \ x=\x226.6662116\x22\ \x0a y=\x222\ 4.558014\x22\x0a \ transform=\x22\ matrix(0.9999889\ 9,-0.00469223,0,\ 1,0,0)\x22 />\x0a \ \x0a \x0a\ \x0a \x0a \x0a \ \x0a \x0a 2\x0a \x0a \x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \x0a<\ /svg>\x0a\ \x00\x00\x0d\xa5\ \x00\ \x00D3x\x9c\xed[k\x8f\xd3H\x16\xfd\xce\xaf\xf0\ \x86/\xa0\xb1\x9dz?B7#\x164h$\xd0\x8e\ \x96\x19\xedK\xab\x95\xdbv\xd2^\xd2vd;t7\ \xbf~O9Nb'N\xe8\xa6y4,\x01D\xa7\ \xea\xba\x1e\xf7q\xee\xb9U\xee\x93\x9f\xaf.\xe6\xde\xbb\ \xb4\xac\xb2\x22?\x1d\xd1\x90\x8c\xbc4\x8f\x8b$\xcbg\ \xa7\xa3?~\xff%0#\xaf\xaa\xa3<\x89\xe6E\x9e\ \x9e\x8e\xf2b\xf4\xf3\xd3\x07'\x7f\x0a\x02\xefy\x99F\ u\x9ax\x97Y}\xee\xfd\x9a\xbf\xad\xe2h\x91z\x8f\ \xce\xebz1\x19\x8f///\xc3\xacm\x0c\x8br6\ ~\xec\x05\xc1\xd3\x07\x0fN\xaaw\xb3\x07\x9e\x87\xa7\x92\ \xfa\xfct\xa4\xc4\xc8};O\xb3\xd9y\xbd\xf9\x9a%\ \xa7#\xc8q)m\xf3\xbd\xb3@\xba\x12hG\x9et\ {B\xe6=\x22\x11!\xf1Trn}\x8f\x11\xc6\x02\ \x82\xbf\xe2q\xf3P\x85m-\xf0o\x92\x14q\x1e]\ `7\x11[\xfc\xe7y\x91c\x90\xfa\xb7\xa8\xacC\xcc\ \xb9\x9a/K/\xff\x5c\x5c\x9d\x8e\x88G<%\xbcv\ Y\xd0U^M\xd6s\x9f\x8e\x0em\xd5\x0d^-\xa2\ 8\xad\xc6\xeb\xf6\xce\xf3\xebel\x9e_7\x84U\xb1\ ,\xe3t\x8a!\xd20O\xeb\xf1\x8b\xdf_l:\x03\ \x12&u\xd2\x19\xe6j\x8e\xb1{k\xb8\xe4\xcd\xec\xd4\ Z;nz\xb7\xd2Cr\x8c\x102^\xef\xb8]\xda\ \xbb\xd9\x0d%\xcbdzpn\xc2\xc6P<$\x82\xea\ :\xaf\xa3\xab \xaf\x1ev\x1e\x8d\xe3\xcd\x93\xb1s\xa1\ \xec]\x1a\x17\x17\x17E^\xad\x94\xd7\x13N\xb6\xc2\x8b\ e9o$\x92x\x9c\xce\xd3\x8b4\xaf\xab1\xcc>\ \x1e=\x85\xfcI\x92N+\xf7\xdc\xca{\xdc7.\x15\ m\xfa\xd0{\x11\x95o\xd3r\xd5\xdfq\x9f\xac\xaa\xea\ \x22\x86\x1a\xebr\xb9\xb2\x91\xfbT\xf5\xf5\x1c\xe6-\xe0\ \x17\xd3yq9y\x97U\xd9\xd9<}\xb2\x11p3\ \xacFd\xdc\xb0Ms\x99N\xff\x0e\x9fA\x10uZ\ \xfe\xd1o)\xca\x0c\x0b\x87\xeb-\xebb\xb4\xb7\x9ef\ 5n\xf4geY\x5c\xb27i\x9e\xb4;\xc0\x1e\x16\ Q}\xbe~\xc2\xf3\xea2\xca+\xf8\xca\x05B%\x8e\ \xe6\xe9#\x12\xf2\xc7^Y\xd4\x08\xcaG\xd4\x90\xc7+\ \x89\xb9\xfb\x1a\xb0\x90\xfb\xe4\xf1h\xfb4\xa6x\xed\x99\ PS#\x8d6\xbe\x08\x09\xe7\x9aK\xe6\xbd\xf2 \xcc\ \x88f\xc6J\x1f\x0b\xa7\x8aP\xce\xa4BG+n\x84\ \x1f@\x9ePM\xb4\xf1\x9e{*\xb4\x9a\x13K\x88\x1f\ \xd0P1\xab\x84\xb2\xae\xd1p*\xb4\xf2\xd1F\xa5\x16\ \x82\x0eN\xf7\xde\xeb,\xaa\xd5\xfb4\x9b\xcf\x83r9\ O'\xe9\xbb4/\x92\xe4IU\x97\xc5\xdb4h0\ cB0\x89\x5c7\xc1\xcd\xd3\xff\x16Y>)\x8be\ \xbe\x16\x9c\x937Q%\xf8\ \xae\x15\xb1\x1ag(\x18H\xe2\xa7@6?\x06\x94\x85\ \xb2\xd3\xbcj]\x8b\xde&3\xedz\xda\xcaC\xe9\xa2\ \xfeX\xd7\x1b\xb0\xb28dezw3\x7f\xe24E\ ?I\x9a\xfa\xb0\x99\xedwhfv\xc8\xcc\xea\xce\xa9\ \xe1\x0d\x0a\xb9\xb2\xfe\xa4t\xa4?\xe2\x01K\xdf\xd9\xd0\ m\xf9u#\x1b\xdd\x22;\x90\xe6s\xc8vm\xef7\ \x9f\x1d\xf8=\xa6\x18\x03\xe3}6\xb4P\xf4\x87\x13\xdd\ G\x8a\xf1\xea\x13\xe7\x9eW_\xc4\x9b\xb8\xfe\xe2\xb9\xa7\ \xefi\x1f\xcc=\x1fr\xbd\x01+\x9b\x83\x14\xa3\xd9\xc5\ AC\xbb\xd0\x88\xca\x97e\x948\xebuM\xd2\xef\x11\ \xdc\xf0\x80\xef\xeb\xfe`\xfd\x09\x93,\xfa\xdaw-\x9a\ Sc:;)\xa6\xd3*\xc5\xd3\x035\x84\x13\x0f0\ |Qvr7\x9a\xb6\x0aYo\xe9\xd8l\xbd\xead\ =\xdb\x00\x9ctg\xd3\xccN\xe3\xe9\xa1\xd9N\xc6}\ \xcd\x1cW\xe4!=\xad\x05\x9a\xc3\xbe\xc99\xa2\xe2t\ \xf4\xf0\xb8\xca\x87lb\x83\xed\xfe\xae\xe8\xe9\x88\xe9\x90\ \x09.\xf9\xb6\xee\xbbF\xab\x14!@\x87\xd2m\xeb\x15\ \x83,\xdd\x93E+'\xbb\xb2\xb3v\xba?\xf2\xac\xae\ NG\xcb*-\xdf\xb8\x13\xd2\xbf\xe4\x7fT\xe9\x9e\xd4\ \xef[\xdf\xec\xe4\xaev*\xee\x03\x1aW\xc3w<\xf2\ s\xa8\xce\xf2\xc0\x1eU\x9d\xb5\x81\xee\xa9N8p\xc5\ \x22\xfb\xaa\x13\x12\xeb\x95\xda\xc8\x9e\xea\x04\xd9\x93u\x0a\ \x15+Y\xfd)U\x07\xcd\x19\xa9\x84\xd1H\x03\x82\x0a\ F\xb9\xba\xbb\xea\x06\x15\xe24v \xa0\x06\x82ds\ \xe0\xd3\x0b\x92\xe3\x91\xbd\x8eKL&\xdd\xed\xc4\xa1\xf8\ \xbd1\x02\x1c\x0f\xed\xcet:\xf8\xd8\x00\xde\xd3\x14'\ R\xdfBO&J\x19\xbf\xc1\xc2\x91TV\x9f\x81\x0d\ `J{+m\x89\xd4FD\xdd@[G'U\xc7\ uv2v'\xf5\xcdO\x9b\xeb\x19w}\x92\xb8+\ \x98\x07\x9b\xb1\xce\xa2\x8d\xab/\xa2Y\xda\xac\x10\x01;\ m>m\xc7YQ&i\xb9\xeeR\xcd\xa7\xd7\xd5n\ bu\xcd\xd5\x8e\xbdvr7\xea\xa6\x9f\x0c\xf7W\xe7\ QR\x5c\x22Dw;\xdf\x17\x05\xc2M\xec6\xc7W\ @B\x11\x1a-\xf7z0\x093!e\xfb=\xcb\xb2\ \x84j\x82yt\x9db\x1b3e\xec\x1a\x09\xaa\xf3\xe2\ rV:mtNq7\x0f&E\xbctW\x22\xc1\ r\x05\x13\x8b\xab]\x09\xf7lpv\xe6\xae\xb5\x86\x06\ \xb8\xccr\xec.h\xef\xe5\xa8\x10{:h%\xd6w\ ufs\xcc\xb2+q\xb5\x8d\xd8\xdd\xae\xeb\xc3]\x17\ \xd1Uv\x91\xbdO\x93m\x00n9c\x1e-\x82\xd9\ \xbc8\x8b\xe6\xa0H\xd1\xbc\xda[~\xe3\x16\xe7i\x0c\ VrVDe\xe2\xe6i\xdd\xae\xa7\x81\xb5\x8f\xd6\xd7\ \xee\x06\xef\xea\xda\xb5\xf5 \xcd5pB\xb6\xf8\x9b^\ ,\xdce^s#\xba-D[&\xb9s\xa4\x9e\xe6\ \x11\x1a\x93\xdd\xfb$\xac\xbe\x95w\xa3\xbb(\xa8\x8a|\ ~\xbd+\xb6\x9a\xc5i/\x94\xbb\xad\xd7\xab\xd6U,\ \x9d\x8c\xf7\x83\xa5i\xbfH\xeb(\x89\xeah\x1b9\xeb\ \x16\x0e\xfc_+\xa4L\xa6\x93\xbf\xbe\xf8e\x03\x05q\ <\xf9[Q\xbe\xdd\x86\xaf\x13\x88\xce\x8a%\xac\xbcA\ )w\xc5\x16O\x5cf\x89\xea\xa7\xd9\x05\xd4\xed\xae\x04\ \x7f\xba\xba\x98#\x867\x1d=a\xa7\xe3\xed\xa0\xaba\ \xcbtu\xcb9x\xad\x97\xc4\x17\x99{h\xfc\xa6\x06\ m\xfd\xd5M\xd2\x81\xacv\xd0\xac\x9e\xa7O\x7f\x03\x0b\ \x0f\xde8\xc6\xde\xcc\xbej\xec\xc9a\xd3\xe9SF\xa8\ \x0c\x88\x0e\x88h\xc4\x9a\xb6\x9eT\x99\x22AfE\xfe\ \xb4s\x979-\xd34\x8e\x92\xcb\xf4\xacY\xd7e\xf6\ 6\x1b\xc3E\xd3\xabpq\xbe\xf8\xb9\x99\xea\xf4YY\ _Be\xcd\xa8\x9b1z#/\x96g\xf3\xac:_\ \x93\xe4\xad\xaa\x9f\xcd6\xf9b\x7f_\xbf`\xee\xe7\xcf\ ^\x0cm\xca\x99}\xff\xf1Fr`.7d\x96@\ 4\x9bfho\xc7\x1dWe<~]$c\xa7\xbf\ \xf1\xcbe6\xfekk\x8fj\x9c\xc5E^\x8d\xb7\x8a\ u\xb7\xe1\xcd\xe8\x9da\xfa\xbas8P}\xcc\xf6\xbc\ W/\x7f{\xc5~\xba\xe5.w\xe7s\xb3\xcd\xb38\ \xcd\xab\xb41_\xd5\xdao\x96/\x1b\xc3\xc5\xc5\x02I\ mZ\x8f\xe7i\x05\xd2\x14\x9e\xd7\xceW;\x0f\xf5v\ \x83\xdd\xd7ev\x86\xc2\xf3v\x16\xfbW4+\xaf\x11\ \xce\xff\xf6\x9e\xcd\xd3\xab\x08~Rz/\x9b\x96[n\ o`\x01\x8d\xac\x0b\xcdu\x02\xedD.j\xb06\xb4\ \x9bo\xb3m\xc87\xb9c\x0fB\xe7\xd1Y\x0a\xf0|\ \xe5:\xbd\xbd\xdeYY,\x17\x17E\x92\xb6\x8f\xaf\xa1\ b\xb6\xc1\xcb-\xafD\x9c\x97\xd9\x15\xeaE\x09R\x22\ \xad@i\xe8\xfe\x84Rp\xa2\x99\xf2\x91\xd9\x8c0\x96\ X\x1f)\x0eDG\x19\xf5\xb8\x0f\xb1MV\xdblr\ \xb6\xd5N\xd3+\xa5\xec\xa2\xce\xac\xab\xf8F\x80Z\xdd\ =\x11\xec-nKzQ\x9ap\xc2\x85\x15>\x95X\ \x90\xb2\xe6\xf1\xa8g\x88~m\xef>[T\x85&\x1c\ \x10!\x91\xc6\xee3\xea\xcbu\xb8q\x9e\x83\x1b\x17e\ \x80\xc4\xfd.\xaa\x97e\xdag\xab\xeb57\xa7\x06\xb6\ S&\xad>\x0e\xa0\xbd@\x83\x9fS\xa3\xb5\xf4\xa9\x08\ \xb5\x95L\x09\x8f\x84\x8a(.\x84\x1fP\x8b^A,\ \xf7\x18\x03e\xb0\x92\xfa:\x94Ts\xc1\xbc\xa0\x15\xc3\ \x93\xad\x14\xf3\xde\xef\xcc\xd19X\x98\x94g\xa5b\x96\x02\x94\x04\xe1\ \x0c\xbe\x1eP\x1eR\xd4r\xd2z\x5c\xbbu\x10\xc9}\ \x8aLC\x98b\x0d(\x09f(l\x059\xab\x0d\xd7\ \xe2\x88\xbe\xc5^\xee\xfb\x9a1\xf0\xb5T\xee0\x07\xf8\ \xce\x19\x11\xd4\x17pl\xa2\xa9\x83\x1c\x1e\x1a\xa385\ \xce\x0c\xdc*)\x9cv-\xe8\x8e\xd2N\xbb\xa0S\x86\ S\xcf\x9ds\x1ax;u\xa8C\xa4\xb5D\x1cA\x1d\ \xb1K)\xbe\x9c\xc6?3Y\x12\xbb\x09n\xe5\xcc\xc2\ \x86\xc0rC\x11\xff,$\xce!\xb9\xb7I\x9c\x1d\xb2\ \xb4\xc5\x89`\x03\x14P\xb7T\x8e\x14\xfaT\x83\x12R\ %\xf5wF\x97>\xb7Mvs\x5ck\x13\xe9X\x8f\ \xd1`3*4\x92rma\x13\x0e\x96o\xa1~\x80\ \x09\xd0\xc7R\xe4Sw\xbaM$k\xb8\x10\x92,\x82\ \xc0\x0a\xeb\xcc\x02\x06\x84\xfc\xeaS\xc4\x83F\xa6\xa5\xf6\ \xa8]\xbe$\xa0~}\x9d\xef\xe6\xb0\x15\xc2\x00\xd4\x99\ 4\x845\xc0\x0c\x00'\x00\xe6@\xc1\xad\xa5\xd0\xc2\xb8\ ;\x12\xc3`\x14\xad\xd3\x00\x1d\x92\xb9\x9c\x0a@\xf2\xdd\ \xfd\x82\xb0M4\xa0Q\xb8x\x00\xfa\x18\xd4J\x96\xcb\ =\xa0\xf9\xbf\xd5\xba\xdc\xedZi}\x08}\x02\xea\xea\ \x5c\x14d\xe03\xf0d\xc5\x0d\x1a\xf7\xb9\xe4 \xe5<\ \xa6\xef\xfb\x8c>'\xe3\xd9\xf1\x12\xdd\x90\xbe\x02\x07K\ \xf4\xe6]\x05\xf0\x11\x0eE~\xb88\xff\xc6\xca\x0e\xea\ \xee+\x05\xea\x0d_!\xe6\x148\x94s\x15\xa4*n\ \x84\x92>0\x93KA\x8c\x079a)A\xf6B<\ \x1a8\x05X\x17\xc4\x0c8\x80\xaf\xe1dF\xca\x01G\ Y{\xaa\xb2\xc0\xd3@~\x9f$@pC\x03>\x98\ r\xa05\xcb\x94F0\x190'\xa8\x99\xf3OZh\ \xdfgo\xfb\xeaV\xb1t\xcf\xe3\x1a\x9fG\x11\xc79\ \xe3\xd4\xfa\xd6 \xcd0M\x95kC\x19\xa6\x94\xf0\xb5\ \x058\x1aD\xbb\xa7\x80\x8eD\xa2\xda\xf3%\xf8\x82\xb6\ \xd2x\x0a\xa5\xb6`\xa0\xc2\xbe\x16\xa1f\x14\x5c\xf88\ 8\xfe\xb0I\xcf&\xa8\xe6\x82\x01r\xf6\xba\x81\x1c\x80\ \x0a\xcai\x079\x94Z#\x8c\xc7\xdc1\x155\xd64\ 5\x86U\x06\xa9_\xb8\x94%\x99\xa2\xae\x98\xdf\ \x1e\xa5\x9b\xdf\x12\xa2\xba\x5cW\x89\x99\xc1\x12&*\x8c\ \x9d\xbcy\xff\xa6c\x86(Jm:Xf\x9b\xc3\xda\ \x07g\xd8P\xbf;\xd6ZO<\xb7\x1f}l\x1cA\ \x08M\xda{7G\xbb\x9b?rd\x95\xceN\xee\x8d\ \xc8\x04\xc0\x87\x11a\xbd+l\xbc\x0d\x8b\xfa\x9b\xc1\xd4\ $\xe9f&N\x8d\xb2;\x93\x94\xcbeY\xd4{\xf0\ \x0e\x06\xa7\xfd\xe0\xd5\xba\xca\xfd\x884\x99\x98\xdc,M\ a\xeb\x09\x88~2\xba\x82\xf1\x17\xa9\x99\xd5n\xde^\ \x83\xdc\x1b\xa8\x90\xf4<\xe0vJ\xb3\x8a\xed\x224\xb3\ \x99I\xec~t\x10\xec\xdf@\xebnaY\x1b\xe7\xa3\ \x96\xe1\x16\x1a\x8c\xa7H\x88\x9eW_\xdfeuv\x93\ \x83\x1e\xd8jm:\x06L\xb0\xa6\x02\xad\xfcK\x80\xc6\ (\xf8{\x80Q\xf0\x16~\x8dy\xf0\xefnPR\xae\ vv\xe7t\xa8\x06k\xcb\xcdum+c\x93\x85I\ \xfbu\xaaru\x0dgv\x1b\xe0\x8e\xea\x09\xd7\xbb\xeb\ \xca\xe4\x97\xa3Y\x9c\xd7\xfd\xc6N\xe3\xbc\xe9\xa2\x8eT\ \x94\xd52\xce\xaf\xcb\xd9\xac6v\xc8\x00\xab\x9e\x1f!\ \xfb=\xd7Ef\xeb\xfb\x8b\x83\xad\xd9\x0c\xf6\xbe\xee\xae\ w\xc8\x9f\xadksm\xcb\xdcTq\x91\x98\xe1\x9a\xf9\ \xcat\x86\xdaS\x17Yj\xaeo\x8b\xd2\xb6\x0b\x05\x93\ FR\xa0\xb8&\xae\xfeT\xc5i\x06\x12\xee\xe0n\xe5\ \x97\x94y\xee\xa5\x15\xe7\x9bxW\x1f\xc8\xeap\xaa\xe4\ \xba\x15?,[\xdbr\xd5\x8e\x05\xac\xec\xce\xe1\xea\x88\ !\xacXV\xd3o\x90\xfb\xa1\xe7\x9eT:(\xedn\ \x8a\xcfG\xfd\x9c\x87p5\xce\x0af\xc0^\xba\xbb\xc2\ SwC\xc7v\xc3\xc7v\x13\x08\xf7\x80M\x0e\xaf\xdd\ P\x97quk\xaa\x07\xf0\xc1\xf4\xe4\xd6\xad\xf3\xc7\xaa\ *7\xf8-\xf8\xf7\xcav[\x94\x95[\x01\xb0]\xdb\ \xb2#Vf\xf6\xaf\xe1\xad\xe1\xfd\x9f\xc3\xf7\x93\xab5\ \xd7.A\xfc\xb3\xbc\xdcL\x1b{\xe9e\xe2l\xeb\xf0\ v\x8eB\xb5\xe6\x83K\xa7\xad%\xf1q\xc8\x83\x10\x93\ \x88\xfb\x97\xa19u{\xcd\xb2<\x0f\xabun\xa6\xa0\ tE\x99\xa6\x80pU\xde\x9a\x06p\xd4\xbc\x86>\x02\ M\xf1\xca\x0e\x96\xb0\xa0\xba58\xdf\xe5\xe5h\x19\xdb\ *\xdb\xbeB\x91\x1a#\xf7\x07>\xc1\x80\xd1\xeb\x01\xe8\ {|?\x0b\xecw\xa6H_\x0a\xea\x83\xb5\x9e\x084\ C\x18}\x19@Cp#\x1ei\xff\x10b\xf7\xf6\x5c\ \xb0_T\xb3\xdf\xbd\x88f3\x84\xe4\x97\x01x\x8b\xb7\ \xfb|\x01\xb4\xc9\x8b\xa2}\x7f\xb5'\xa3M\xf8\xe3q\ l\x80C\x91 \xbc%9\xc7\xfa\x9f2+\xa6U\xb9\ \x1e\x98[#9\x15I\xac\xb8\x92j\xcc\x22D\xa9\xa4\ \x9c\x04!\x89\x08\x92Di\x90d\x840\xf8iJD\ ;R\xb1q\x08C\x11\x96H\xaa \x01\x89G\x92q\ \xa6\x81N\x22*\x09\x12H{\x22\xe5\x8c!5\xe6\x91\ \xc00\x00\x03Q\x98P\x8e\x15l\x03\x1c\x1a\xfc\xf2\x09\ \xd9\xd2F\xb6\xd4\xd9\x93\xd0\xcf\x90\xee\xfb*\x8b]~\ \xf2\xf3\xda\xbe}\xbet\x8f\xae\xf6T\xe9b\xfa\xc0\x96\ x$%X\x10\x08A\x01z\x90z\x85\xffKS\xf2\ \xa9\x98\x8b\x11OF\xf7M\x16C\xda\x9b\xbe}\x91\xb8\ pl\xb1'[NS\xf0\x0c\xb0\x05\xdf,#$1\ \x92B\x05\xcd\xa3\xd2\x0c\xe0F\xe3\xfd\x1bW:\xd8?\ 1\x01\x1e\xe5\xd7\x0d\xcf!\x18\xcb3\xf4\xbc\x05\xef\x85\ \xdc\xd8\xf1\xe5\x9e,\x0dE\xbf2it\ \xf5\xf6\xc5\xc45J\xfcS\xd7!s\xdd\xab\xd4\xf5\xc1\ \xce\xba\xc3\xdf\xc4]\xa9\xbf\x8a\xe7\xc6\x8b\x05\xae\xbc\x97\ K\xc3\xb8)\xab\xd4T-K\xf8\x9f\x03V#\xb9}\ \xa7\xf1\xec\x10a\xb7j\xc7G\xc7\xf9\xf5\x22N\xcb\x0d\ \xdc\xf4>\xf3\x97\xb2\x04\xe3\x00\x9f\xc3\x85\xe2\xec\x01;\ \xd9\xc2\x1c\x0d\xaeP\xcb\xeeD=\x13\xf6#<\x02\x1d\ \x91\xea!s]U\x00`\x98\xc7;\x03\x97\xf2\x1f\xad\ \x8a\xd5\x8br3\xaf\x1c8\x83\xeeO7\xd3q\xc2\x9b\ \x1b\xd7H<\xc6N\xcbd\xed\xfaWa\xd3kYm\ \xef\x8f\xd8d\x05\x5c6l:\xa5\x18\xf2\xc1\x13#\xda\ \xee\xa9b\xf4\xc4\x88mo\x85\xf7Y\xbb\xd3\xace\xbc\ \xcd\x96\xd9/&\xed\xad\xea@\x1a\xc9\xc2$\xe0fn\ \xca\xb8J\xfbU\xba\xcenw#\x9f%\xf93D\xbc\ \xb5\xfa\x8b\xa5\xb1q\x1a\xdb\xb8\xd7\xb0\x96B\x91Fm\ \xcf\xaeJg\xd3\xbf\xbd\xf9\xb1\xf3\x13I2\xfdGY\ \xdd\xf6&\xee\x06\xc47\xe5\x1a\xae\xdf\xf9.\xd7\x09L\ \xa6\xce_\xc6\xf6*[\xc2I]\xe7\xf2\x0f\xdbe\x0e\ \xba\xde1\x0e\x06\xbbF\x5c\xbf\xe8~\xd9\xca\xec\x9b\xb1\ G\xbb\x8fi\xb2\xcc\xdc\xa4\xc9;\x0b\x8e\xfd'\xb7\xc9\ \xd0\x9fM\x9a\x83\xb6.gp\x0f\xf0\xce\xcdE\xfd\xdb\ \xbc\x07\xe0@\xb9:\xa4\xf3\xf8\xc65\xfa\xde:f\xf0\ \x80;\x87\xbad\xb5,S\xd3L\xef\x80\x1b47\x07\ \x11\xa8\x8b6>\x1c\xf5n\xfbc\xb1\x08E\x183\xcc\ \xd5\xb0$\x82\xbd\xa77kk[\x1a\x80a\xaa\x1c\xb4\ \xc5NYKKc0\xd7\xaa\x8aw\xd3\xa2,LK\ \xed\xf6\x95B\xf4\xae\x15d\xe5\x14\x07L>i\ \x7f\x86!\xab\x0f8\x05\xc0l\xcb*\x04\x17t\x17\xdb\ ue\x1e\x86R\x9f\x94P\xa1\x07d\x9f\x94\xe0\x88\x11\ \xa2)\xa6c\x02\x09 \x82*XB)Dh\xc4\x18\ \x11P\x8d\xfe9\xc0\x02\xa0\xd3\x18\x89\x80B}\x08u\ \xab\x0a\xee\x02\x0a\xf6)\x05\xc5\xfd\xc3p`\xb7\xe8\xa9\ \xf4\xa6\x8b\xd2\x87\xca5\xb4\x0bk\xb6\xf6\xf0\x0a\x8eB\ 1\x1a\xde\xcc\xf9c\x09\xb1\x90b1\xac\xde\x9dp\xe1\ \x0c\x94r\xcd\x8e\x1c\xa0\x04_\xea\x9f\xa7\xfb\x96\xf7\xb9\ \xa7l\xbc\xaaLo\xca<=w\x8a\xdb8\xcb)\xfa\ \xfd\x9e?\x8b\x97Y\xbe\x9b\xd6 \xc7\x10\xa2c6;\ \x0f[\x11\x84\xfb%W&\xc9fY\x12\xdb\xac,\xa6\ \xdf\xbe\x83\x81\xc1\xf7\xb0\xda\xb7\xe7\xb9qm\xf0\xb0\xe9\ \xb9O\xd1j{\xbe\x81(w@x\x84\xcd9\xe3\x18\ \xder\x99O\xfd\x17G ]\xf0@\xa6\xba\x83\xb4\xf4\ \xc2\x02\xa9\x18:\xa8\x83[\x83\x8f\x9e*\xd8mxA\ \xb0\x1a~\xe2\x8a\xa3\xe1B'\xc0>\x09w#5w\ \x1e\x10\x1b9\xe0tJ^\x95\xeep\xee8\xa3\xab(\ \x8a.&~\xfc\x15|\x82\xb4[\x9f8o\x1e\x86\x86\ \xf2\x08mj\x87zE\x97\x11U\x8ch\xc4\xc6\x22b\ \x920\xca4(:\xe4\x01\x12C.E\x82E\x001\ \x87\xb8\xc6\x0c\x0d\x12\xf7\xac\x14a\xccu\x08P$]\ \x02\xa5\x88\xeb\xd20,\x15\x05\x92\x16T\x0a\xce\x5cO\ \x0c\xf0\xa0\x1a\x07?\x04:\xc2\xc4\xb1a\x07L\x95\xd0\ \x84;\x92 \x5cq \x09\xac\xb0B2P\x91\xe6\x0a\ k\x89\x81\xa6\xb1\x92\x92\xfb\x9e\x0f\xa4\xb9LR\xa8\xc7\ \xb0\x10\x0ai\x054\xae\x88`T\x01\x8dP\x98\xa28\ \x5cB3E\x15v$\xce\xb9B4\xc8\x03H\xec\xb9\ \x80*\x1c\x09\xdfF\x92\x5c\xf2A\xd3\xa77~\xd9K\ \xedS\xbe\xa3sn\xcfA\x1c\xfc\xab&\x94H>\xd6\ \x11\xc7\x84\xc2\xdd\x7fpD(61\x06\x1aD\x0a.\ \x88\xa30\x0aX\x891 \x039\x99\x14\x8e$8R\ \xd8u\xb1\x84\xd6\x02kOS\x88k\xa1\x81\xc6\x11\x08\ \x0ajY\xb7\x83\xc2\x00:\xd0\x18\x07\xed\x938\xc0\xe0\ \x91$B\x9c\x0fh^\xb6\x14\x90qh\xc1v\xca\x84\ Nr\x98Q\xf0\x5c\xd85\xd7\x1c\xec{\x22\x08\x98S\ W'\x83d5\x83\x11\xaeF\x85\xa8F\xa9\xa7\x09I\ \x85k\x92E\x1ai'Y?\x8e2!\xbdvp\xed\ \x9ar(\x82\xc4D\x80\xe0<\x85s/!\xa8\xac\xb1\ [\x1f!\xea\x0e\x84M(\x8eKI~\xbe\x94\x0eC\ \x10\x08\x9a=/\x04=%\xb4\xc8\x07m\x87>\xb4\x88\ \x08\xc0\x07\xf3s\xdfoF\x14\xa4B\xf5\xa9\xc0\xc2\x22\ \xb0\x0c\xc5x\xff\xf0\x22\x81\xe5\xb1\xe1\xf5\xd3\x01\x08a\ z\x18\x80tD\x14\xc3\x9a\xe9\xc3\x00\xc4\xe0\xcc\x92\x82\ \xf9\xfe\x16\x80^0\x00\x1d\x03\xfb$\xdc\xc3\x00\x840\ \xfft\x00\xf2\xff\xc3\xe3\xe3!\xe8+\xcd\x96\x9f\x99)\ G\x98\xbb\xaf!z\xd7\xb4\xeb\x88\xfd7\xd9_+6\ !\x7f\x1e:\x14Gj\x8f\xc4=t\x84\x22\xff\x07\xe8\ \xd0\xe7\xea\x0e\x82\x9c\x0a\x22\xfe\xf3\xaa\xac\xaf\x16\xbdP\ \x84\xfa\x14\x82\xfcQ\x08B1\x86!\x05\x1a\xb6\xfb\x1a\ \x04\xa5\xc6\x83\x8a\xee\xd7E\x10R6\xfc\xeb!\x18\x92\ \xa3\x18BvI\x1fb\x08\xf6\xe8\xbe@}`\xa4\x9a\ !q\x1fC\xc4 \xa0\x1c\xad\xd8\x1fU\xeb\x93c3\ \xbf\x8cZ_\x0e\xb3\x9e{\x09\x19\x86jHpM\x5c\ \xad\x0fI\xb4dP\xc2\x9f\xac\xf5\x99+]\x80\xda>\ \x90\x17I\xc9\x869\xc5CMxL\x1e6\xfcF\xd7\ \xd5\xa6\x90\x88\x138\xdf\x90\x0c\x82\x97\x90zK\x85\x8f\ ~\xbb\xff[\x1e\xf6\xe4F\xc0\x11\xb0O\xc2}\x98\x87\ \x1d\xa6nG\xf30\xf7\x9fl?\x92\x86\xf9\x8f\x0b\xd7\ \xa9\xbd:\xfb/\x1e\x8e%\x88\ \x00\x00\x12\x0f\ \x00\ \x00i\xd6x\x9c\xed\x5c\xebn\xdb\xc8\x92\xfe\x9f\xa7\xe0\ :\x7f\x12\x1c\x91\xea\xae\xbe;\xb6\x07A\x82\x19\x1c \ \xc1\x1e\x9c\xcc`\x81]\x1c\x04\x94D\xc9\xda\xc8\xa2@\ \xd2\xb1<\x0f\xb6/\xb0/\xb6UM\x91\x22%\xca\x92\ O\xb2\xf4z\x11\xe1\ \xdc\xed\xc1\xd3\xebbq]|N\x96E2/gA\ \xb6\x1a<\xfaf\xeaV\xd7\xf9\xfe\xcd5\xf9\x0a\x94\xf8\ *\x0c)\xc2\xfcv^\xc4\ \xcbp\x9e\xbflt\x1d\x0e\xeb\x9eC\x02\xe2\xf4k2\ L\xaf\xae\xd2y^\x0a\xafE\x91\x0f\xf9\xf7\xf9\x1fyR\ S\x0dQ\xa4\x5c\xda\xc8Zdm]\x8bb\xb4<\xb2\ \xda)m\xeb\xdaq'\xed\xb8\x936CR\x17Im\ $\xa2dsI\xbfg\xf1\xc8\xc4\ Mo/2\x81uae\x0f2\xc7\xf1x\x0c\x83{\ \x13\x1a\xca;\x18\x99\xe3q\x1c\xff\x10\xc8\xdc\xe34\ \xb5\x83\x16\xe6\xa4\xf2\x1e\x0eL\x0bs`\xbb\xdc\xe16\ \xed\xb8\x93\xf6N\xccu\x9b\xc1\xf1\xb8!\x0b\xdc\xafI\ \xfb=q\xc3\xd9\xcf\x8b\x1b\x7ft\xdb\x8d\x1blfG\ z\xb4\xbb\xf6?\xd0\xe8D\xe4\xe6\xf6\x87\xd8e\xce\xa9\ \xe6\xf6'E\xc4\x853\x96\xe3\xf6\x07LJf\xcc\xeb\ \xef\xbb\x9d\xefC\xe6_\xb1U+t\xc8B\x1d:\x08\ e\x08a{K\xd9\xa4e<\xe4\xa1\x08\xb9\xc4..\ [O\xf9x\xbe\xf21\xbd\xe5\x0f\xe0/C\ }\x84\xcb\x0c\xc5\xb1A\x8c\xa7\x82\xcfGr\x9c\xb8K\ =\x168\xf9\x0f\x00\xcd\xc6&}\x88\xf34\xcf\x14\x9c\ \xe1\xce\xa0\xc4\x83;OxD\xe7\xc9\x1e\x1f\xa1\xe2\x08\ |\xc2\xf3D\xa7x,l\xaaG\x83\xa6\xbb'0\xb7\ d\xa9\x0dW-\x05k\xe6\x22\xc5Y#\xc2x \x96\ \xb0\xaf`\x10Y\xe5\xdc\xf6\xc5g\x1b$\x08\x00#\xa5\ \x07\x08\x8f\x9cv\xa6\x87Ht\x10A/\xb4\x06\x87q\ \xaf[\xb0\x14ZGZ6\x87&\xf0\xae'\xdc\x13\x8c\ RL\xb5\xc3\x5ck\x1d\xb4u\xbd\xd6\xff\xde\x00\x17\x8e\ \xa9;zFw\xa0\xa2\xd1\x15\x8eZ\xce\xde\xadrG\ \x04l+p\x85\xfa6\x87\xb8!E\x0f\xb3\x8eC\x00\ \x05\x9a\xa4\xddT\x13\x05\xa54S\x91ALm\xfb\xa7\ Cq\xc1#\xbd\x8d\x0b\x8aKq\x13qy\xbc\x0b\xf1\ \xec\xedU\x92\x86\xfb\x22C\xcbGS\xaf\xfb\xa1\xd5\x1b\ n\xeb\x97s\xac;L\xbd\x87\x8a\x01\x84\xbd\x07w\xc2\ \xa0\xe7\xb3M>\x88;\xc0\xfd\x8b\x1d\xe8\xd4x\xc4\x94\ \xf2a\x5c0BR\xe4\x96\x1b\x83\x1cF\xdc1\xd7\x0b\ E\xa4\x0c\xa0\x83C\xa6@\x89\x16\xa7\x82E\x0e}\x14\ \xba\xdd=\xd8\xe2\xc6my2\xbf\xc1\xa0\x8e\x81\xd1\xef\ \xfd0\x8b\xe3\xf2]\xe3\x0e\x1c\xfd\xee\xc1m[\x03G\ ?\xf6bk\x8b\xf1\xdbP\x84\x9a\x10]\x98\xda\xbf\x0d\ q\x85zl\xecj\xb4Q\xf0H4\x22\xdaK\x7f\xd0\ \x898\x17\x07H\x5c0gwI\x06O9\xf8{?\ \x89#\xcf;5i\x1aO\xad\x8ep\x13\x07'\xa64\ t\xed\xa5\xad#+\xe4=D\xed\xd0b-;\xd48\ \x14\xd7\xb6:\x122\xecH\x96b\x8dS\xe4\xe3#\xc1\ -\xb4\xf7|.\xd0W\x88\x96\xd2t\x04\xe0\xbc\x89\xee\ \x13\xae\xb3[.\xb8\x12\xeex<\xde\xe9\x9dq=\x1a\ \xba\x9f\xfb\xefW\xa8\xb3\xea\x8e9\xc7\xe3d\xe7\xb4\xf7\ \xda\x14\x0e\xd5\xb63\xa6}\x88\x17\x101\xf2\xe2G\x07\ \xa8\xb1/`_\xad\x9a\xe7\xc3\xf2x\x169\xd4\xe4\xc6\ \xf1\x0ci\xb9\xd1\x07\x98\x983z\xa7\x89i\xee\xe4p\ p?\x8d \xe7\xbbM\x0c\xdcx8~H\xb9\x8b\x8d\ \xbb\x93\xc4\xcd\xd3\xda\xfb\x89\x9d\xd3Aw\xdbB\xbb\xac\ Lp\xa3VVf\xb9\x06\xbd\xc7\xca\x10\x0cJ\x9b\xa6\ B\x97\xa5\xedQ\x8a\xd7\xfe'\xca\x87\x19\xd91V\x04\ ;\xf7\xa1\xbb\x0c\xf7x\x0b:\xebS^\x9f\xffT\xa7\ \xa3Q\xb2\xe5\xe8\xeb4\xb9yQ\xafi\x10\xd7\xaaX\ \xc4\x93\xa4e\xd0\xd5r\x06i6J\xb2\x1a\xb1\xfe\xa7\ \xd5T/\x93RkWc\xd7\x19g8\xea\x9a\x8d\xee\ \xf6\xfc2\x1e\xa57hQ\x9b\x8d\x7f\xa6\xe9\x95\xdf-\ \xb5\xc4\xe3\xaa\xdal\xf6)\x0d\x9c\x8e\x1b\xd2l7\x96\ \xd9\x0ah\xce\xaeN\xdfY7^g\x19\x0a*\x9c\xc5\ \xb7\x092\xe5\xffT\x8a\xc9/\xd3\x9bIF\xc2)\xb2\ \xebd\xb3\xe7(\x1d^S>ex]\xa2z\x95\xc8\ \xdb\xa0\xa0\xbe\xe1`\x90.\xbb\x07\xb8\x99\xce\x91\xd9p\ \x95\x1a\xcc\xa5\xdd\xe2zEQ%\x0b\xe3\xe5x\x07\x05\ \xce\xa0v\xb55@\xb3\xd9t\x15/\xa7W\xd3?\x93\ Q\x07\x89\x07\xc1e2\xfc\x92d\x834\xce<\xc9f\ \xc6#1X\xc1\xb1\xccp\x5c\xdeR]+\x96C\x15\ \x82\x99\xf5\x1d2\xb9ZP\xa2\xaf\xcf\xb9^{\x8e\xaf\ \xd3|:\xa0XBCTH;\x8f\xb1r\xb4Q\x9b\ \xcf\xe3\xc5\x8a\x9eF'\xcc\xe7\xe9|v\xbb\x22+\xad\ \xe1\xac\xbf\x0dw_\x7f\x95\x14\xf1(.\xe25\xf6\xab\ \x1a\xc1T\x95/w\x96\x8d\xc6\xa7\xff|\xffkm\xc5\ \xc3\xe1\xe9\x7f\xa4\xd9\x97\xb5\xf5\x11A\xc9\xa7\x93\xf9\xe7w)\xfa\x89\xe9<.\x92\ O\xb7y\x91\x5cuMB\x1dQ\x1b\xc9\x050\xaeB\ \xa6\xf0b\xec\xc9|]\x8b*Kfq1M\xe7\x17\ \x8d\xa4\xeaq\x96$\xc3xt\x93\x0c\xbc\xc0n\xa6_\ \xa6}D{\xb2\x8c\x16\x97\x8b_\xfcT\xe7o\xb3\xe2\ \x06u\xe9G\xad\xc7h\x8d\xbc\xb8\x1e\xcc\xa6\xf9er\ \x9c\x08\x7f\xc5\xb9\xdf\xbd}\x7f\xa4\xe4:\xe6\xa2!\xa7\ #$\x9d\x8e\xa7X\xbf\x1a\xb7\x9fg\xc3\xfe\xc7t\xd4\ _\x0b\xb4\xff\xdb\xf5\xb4\xff\xcf\x15\x5c\xf2\xfet\x98\xce\ \xf3\xfe\x1d\xf2\xa6\x84}?ic\xf4\xb6H\xc9\xd5\xe4\ \xf7\xe1:\xf8\xf0\xdb?>\xc0\xdf\x8ed~s>\x9a\ m6\x1d&\xf3<\xf1Z\xcdWj\x9d\xcc\xaf\xbd>\ \x87\xe9\xe2v\x96\x8c\x8b\xfe,\xc9\xf1\x18\x11]\x16d\ [\x8dNm;H\xe7xZ\x18\x5c\x1fm\x0b\xf1$\ \xbbE\x97\xf2\xaf\xe0\xed,Y\xc6\x08\x9f,\xf8\xcd\xd7\ \x1ck\x15\xdb\x0b\xf0\xb4\xe4J\xea\x1b\xe5\xda\xd3\x9c\xf5\ +W\xe4K\x93\xb5\x8bjmL\xb5\x03\x9e\xc5\x83d\ v~\xf2\x81\x1a\x83\xadV\xfff\xc7U:JV\xdd\ +\xd76i\xb9g%\x1ba\xc5\xc9\x9a\xa9\xa2\xf3\xcc\ \xc5\x8c\xd1\xab\xa8\x86\xd4\x96\x1b\xa0\x14.a\x84\x04\xae\ ,\x05\xbe\xad\x05\xe5L\xe3\xd6\xdf\x5c\x7f#\x86\xdd\x9e\ l\xb5\x16<\xa05/\x84]\x8b\xa0\xa0\x03h\x90\xab\ \xa3\x1f\x03f\xf1\xb6%\x05\xa5\xc5\xf6\xf0|N\xa1\xf6\ \x96j\xb2dX\xb4\xd4\x5c\x05\xad\xab\xe04\x8b$\x8e\ \xa2\xdf\x8c\xd1\x9d\x9e\xa2\xa3}\xf5r;v\xfc\xfa\xa4\ =\x84\x8f\xc5\xe0\xc0\xb8`\xb7\xd1T\xed\xd6\xd2\xd8H\ \xb4\x02*\xe5O\xb5\xdf\x0b\xe1\x22\xbd\xd1vK\x0f*\ \x14^\x1b7\xea\x97\xbe^\xb9H\xb4\x5c=r\xb7\x88\ \x8b\xcb#\xb9\xdb\x8e\x94nq\xb7~\xb03\x9f#\x97\ i\x16\xe29\xe9k\x5c\x5cgI\xfb\x08Z\xc9\x82\x96\ \x81#\xf1\x8d&\xda[\x83\x108rJI\xed\xc8\x99\ \xb6\x01\xeby\xd1\x88`\x18p\x89\xe7}K\x99\x7f\x81\ \x90*\x92\x94\xf8n\xf02U\x95\x00e\x04\xd8!\xe4\ t\x97\x83\x00\x87p\x91\x5c5p\x11\x84\x0d:,\xfe\ \xf9\x10\xd2q\xdfL:\xa2S:\xa5^\xbb\xa4\x13z\ \xf1x\xe9\x84m\xf1\x84;\xe4C\xe2Q\xb58\xee\x12\ \xceY\x7f\xd2(l\xcai%\xa5]R\x01a_\xbf\ \xc9\x8b,\xfd\x92t\x19\x0cE\xb9\xaa\xf6\x90\x9aPZ\ \xa7\xe8\x8b\xe6\xa3f\xe5\x7f\xa7\xd3yY\xdb\x12\xcb1\ \xd2\xadd\x0b\xbcmH^\xb02R\xc0mOX\x94\ \xaaAi\x92\xaf\xe0$M\x89\x02\xc4\x7f\xd14\xe9\xea\ \x88\x92f>\x1a\xb2*\xcc\x02\x0a\xa2\x81\xe91\xdfG\ rtwD\xc1y\x99\x10\xaf\xb1`\xac\xcf\x8e'\xf2\ \x0f\x01\xfa\x1cel\x8f\x93C\xe4\xa45\xef\xa1V\xd9\ \xf3T\x92\xba\x22\xf67TS\x95f\xa8`\x11\xadf\ \x22:KS\xe1\xe5\x15\x84\x0f\xae\x0a\x9c\x0bK\x08P\ \xba\xd1r\xa65\xce\x06~\xd8\x1e^\xb1\xc1\xca\xe0\x1d\ \x95\xd1\x1b\xf6Td\x1d\x98\x00\x0dMag\x15\xe1U\ GQ\x89sW\x95h:\x19\x19\xe3\xea\xf981\xed\ \x17\x85\xb0\xf2\x82\xd1~\x8d\x06o\xef^\x1a\xa0\xb1\x17\ \xc2\x0f\xbdr\x0f\x01\x06Zn\xa2h\x07p\xd6\xe6\xc5\ \xb9\xd0\xc29[Z\xd8*\x1aQa\xe7%c\xab\xc7\ \x94\xdf\x0d*\x0e\x99\xdb\xc6\x8a\x8apO\xd1=\xa0\x18\ \x01\x04\x82d\xaaz\xec\xe7gUv\xb1\xca$\xc2\x93\ \xdb\x8aU)\xcd\x13`\xd5thUF\xce\x22ry\ \xadU\xc5\x9e\x02\xab\xae\x13\xc0\xc2\xa25\x8b\x9aU\xce\ \xdc\xcf\xcf\xaae\xac\x8bU\xc5\x1c\xef\x09\xe9Y\x05\x87\ J\xb6??\xab\xc6\xc2n[\xd5O\xcbVm\xa7V\ \x19\xe7\xb2\xc7e\xcd\xaay\x0aZ5\x9d\x07\x13\x07\xc0\ {\x9cyV9\xee=\x96?\x05V;6\x1b\xbc\x0e\ \x1aa{~\xaf\xc1\xf3\x08\x1e?\xe8\x95\x9f\x9f\x9eU\ \xd7\xb9\xaf\x0a@\xeb\x84z_\xe5\xfa\x09x`\xe3:\ \xdd\x12X\x84,\xd4n\x09\xd8S8-\xb9N\xb7T\ \x1e\x0c\xe5\x13;\x18v\xb8%\x15q\xa7\x5c\x0fX\xcd\ \xaa\xd3O\x80U\xd7\xc9\xaa\xb7U\xc1\x9e\x94\xadZ\xd6\ i\xab\xe5iI\x1f\x7fZ\x1aM\xf3\xc5,\xbe=\x1d\ \xcc\xd2\xe1\x977\x8d\x88\x89\xe2\x92RVv\x06\xcc\xa4\ \xe3\xaf\xff2;\xc0\xdd&7\x1f\x03\x1d1Ma>\ z\xf7\x98n\xbfX\xb6\xa4HG\x0f\xe0\x03zO\xd9\ H*\x09\xbc\x1b#\xe7\xdaY*\x81%;\xa6oX\ \xa8\x09\xe9\x9b\x15p\x14\xa7\xad?yh\xe3\xe3\x04\x8a\ n\xd8\x12\xe7px\xc1V\x8e\xe3\x0cXR\xa0\xb1\x08\ \xe8\x0a\xb1\x04Br,1\xc74E\x18\xa4\x96Ui\ F\xfb\x9b,o\xfeL\x9a2\xe4 \xb8\xf0\xe1\x03'\ (\xbe\x80R\xc3]0\xe289\xc5\x18\x00\xfc\xf5Z\ \xe1\x9a\x01\xef\xe0\xca\xad\xee\xe5\xe0C\x04\x92\x96\xe3\xaf\ \xe9\xe5\xab\xf8\x96\x0a\x1awS\x0a\x06(\xc3\xe9BO\ \xe1+M\x15\xa0pu\xbe7\x94\xe4\x06\x8c\xef\xadW\ \xe9'\x82;\x0a&0^\x97(\x1e@\xd17[\xc5\ \x03\x04\x87U<\x00!CI]\xc0,\xf89\x9c\xa0\ /\xa7P\xc0d\x19\x0f\xc0E\x08JsQ\xd4\x8a7\ \x0d\x1f\xe0\xe0\x8c\xa2\x03-\x95\x95\x00:?\xf1\x08j\ cn\xd2\x01\xb8\xd2\x90\xca'\xce\x1e\x5c\xe1\x1atF\ \xf9\xec4\xb3\x85\x95\x09@\x1b@]qk&\x99-\ \xc3\xc5J\x227\xbdUM\x88:7\x0cP\xfa\xf8G\ o\xc4\x8dw\xc6\x0e\xefZ\xa6\x22<~\x93x!@\ G0\xf5c \xc1\xc7\x7f,I\x1f\x08\x9f\xe01g\ \xb1\xd6r*\x81uX\x02\x8d\xaa\xc3\x12\xb7P\x95>\ \x90\xf5s\xc5}\xd9G\xaaX\x09M\xee\x95k\x8d\x0b\ \xb07\xf3\x05\xa7\x09\x9a\x9c\xf2\xfc\xe8\x1b!\x98\xe1e\ \x00\xad\x0c\x82\x01\xf7\x114\xc6\x84/)\xbdn\xf2\xab\ \xb8G\xa4\xb1\xedkv9\x16\xca\xf0\xa9\x03\x8f/\x05\ ZH,\x1f*\xa4(\xc4\xb63E\xf7a\xacw0\ \x8a\x93D\xd0\x10\xa5(\xed]\x06\x94\xe6Ia\x5c\xf4\ \x06&\xa0\xcc#\xb4b@+\xe7\x140t\xf4}\x19\ h2\xd2!\x9d\xc6m6\x04\x8a\xf3\xc1F\x89D\xed\ \x1d\x08\x94\xe6N\x89d\xde\x00U\x19 \xac\x0a3\x8a\ \x00G\xc2\xf0\xd2ve\x12\xca2th)\xc4\x01\xf4\ j\xbb\xd9*\xd2\x96\xe5\x935\xdd\xca\xac\xf1`\x83M\ h\xb6\xa1_\x99\xed\x11^|\x04\xd4{6\xcf\x18\x83\ #\x8cz\xef\x9e\x89\x1as\x94t_jx\x9e\xce\x93\ \xbb\xc2\xc8P+\xbbL\x928\xe5\x8be\xe7\x8e\xfa\x97\ \xb5-X\xc7\x89\x9e\x1eZ0\x7f\xfbF/\x1f\x08\xf0\ Zd\x94G\xe2\x05F^\xbb\x14P\x19\xf3E`p\ o)$ZE\xcf\xc7p\xdf!\x1d\xa0F[\x05T\ \x14\x90\xe3\xf1\xdad\xa8\xf5\x90\x22\xceNUE\xd4\xbe\ XE\x80=x\x84\x10~Cp\xd6\xf9\x92\xf2 \xc3\ \x9d\xe4C\xb9DY-\xf1?\x0f\xd2\xc6]\xee\x8bY\ \x07\xb6|\x1a\x12f\xd7\xb3\xe44\xf9\x9a\xcc\xd3\xd17\ \x100l\x99\xd3\xc7\x86\x80\x01D\x80.L\x09M\x1b\ \x8b\xd5z\xe5\x9d,\x1dB%=V\xe4h\x10\x1c\xa5\ \x86\x98\xadJ\x8c\xbe\xf4\x86B\xe6\x94\x08K\xf9\xc8\x14\ \x82G\xe3\xd8(\x92\xad\x08\x9f\xb0\xccZ\x9e\xa9\xe1\x97\ 6D\xd5\x14T\x13\xa3/\xd9\x00\x9d.oc\xd2n\ \x22rp]\x14[N\xe9jZ$YU\xdb\xf5V\ \x8cG\x1c\x1e4\x84\xc6\xf3h\x8f\xb3$ln#\xb5\ \x18\xb9V\xcdW\x95\x8eQ\xc6:\x1b&\x1d%\x94@\ \x92\x9f\x9f\x0c\x87M\x81\x1c(\x85\xb6\xdf-\xa5 \xbf\ \xbb\x14\x5ch\x1fW\x0c\xad\x03\xffJ\x0c\xf0\xcd\xc4\xf0\ \xd1\x8bA\xd2W\xa2\xe0O\xa0\xb0\xa0v\x8b\x82\x87\xee\ q\x85\xf1\xb0\x96\x81\xc2\xb0\x84\x09\xa0P\x92\xbfXm\ \xbe<\xb66\x8e\xa7l\x1bG\xc8\xc1\xb5-\xe7\x09\x9a\ \x87\xf1\x920\x07H\x82\x87\xeci[\x07}+[\x09\ \x8d\xbbe\xf1\xb4m\xe3P)<\xb6\xaf|X\xcb\xb8\ \x0aL$zJE\x22\x00J\x0cq\xab-\xe4\x0e\xf3\ x q\xdc\x99KF\xa17.\x8c\xa5\xb7\xc6\x94\xc6\ k#\x88$,\xef\xe8J+\xa3\x9d?5\xe3a\x14\ Ox\x14hV\xd6q\xbd\x99T6\x11\x16\x8c\x7f3\ \xdc\x01\xfe1;\x93\xcb\x1a\xf3\xfb\x8f\xb3\xb8H^\xf9\ <\x0f\xe0\x82\xf7$\x05a\x18\xd8\x8dT\x9fr\x0a\xe3\ \x0c\x0aI\x85Z\x87&T\xfbb\x04\xc7]\xf6[G\ \xf2\xfa\xc5\xe9\x12&`\x9b\x11\xc4\x12&\x02\xefe\xd6\ 2\x05\xb5\xddxH\xcc\xa6\xf8gmK\xeb/\x94[\ U\x8c\xe2\xfc2\xce2\xbc_\x13\x10w\x04\x1c$(\ \x16\x1a\x1e\xeaP\xba\x10\xc2\xcd\xb45ob!\xaa\x82\ \xa3\xae\x80\xf7\x14\x9e\xc5\xa5\x10\xd2\x04o\xf1\x98\xeeH\ LN\xf4(0g\x9912\xc0c9\xfeR\x88I\ I\xa6\x05^R\xe8\xab\xdc|\xa4\xec\x0e\xf2\xae\xf1\x0f\ \xc8\xea\xba\xbf\xd4\xbb\xee\x9d\xed\xaf\x1bx\xdd\xbe$\xf1\ ZA-}\xb5\x15\x84\xb7\xbd\x87R\x10\xae\x0b\x10\x8d\ &\x84m\x05Q\xae\x9d\xa0\x84!\xdc\x16M\xe4\x8c\x94\ V\xd9 \xa6x\xb7\x14\xce0\x8dR\x15\x0c\x148\xbb\ \x128\xbd\x1ch\x1c\xc50\xad\xb3\x5c*\xd8AK\xd4\ aE\x1c\xae\xa9w\x86z\x9a\x1f\xff\xb2#\x80\xca\x13\ \x1c\xea\x08\xee\xc83\xfdv\xae\xe099\x83p3S\ \xf5\xd9\xba\x83P\xfc\xb0\x0e\xe1Y\xba\x04\x0a\x9dJ\xc9\ \x99\x95\xfb\x9dB\xe3[\xfb\x1e\xd2-4\xbe\x82\xed\x9b\ \x03\xf4\xc7s\x0ca\xe7s\x8a\xe7\xe9\x1a~h\xe7\x10\ \xda\xe7\xe3\x1e\xa4;\xfa\xc4\xf0\x9d\xce\x0c!\x7fV\xce\ \xe1\xff\xaf\x11\x8do\xd5\xfb\x91\x9d\x83\xfc9\x9c\xc3\xea\ \x83\xffsF/\xd7^\xbc\xf8?\xaa\xe1\x9a\xe8\ \x00\x00\x07\x9f\ \x00\ \x00\x1f\xe4x\x9c\xcdXi\x8f\xdb8\x12\xfd\xde\xbfB\ \xeb|I0:x\xe9r\xda\x1dd'H0@\x06\ 3\x98$\xbb\xc0\x0c\x16\x0bZ\xa2mM\xcb\xa2A\xc9\ m;\xbf~\x8a\xbae\xcb}\xa1\xd3\x89\x91\xb4\xad\xaa\ b\x15\xf9X\xf5X\xd4\xe5\x9b\xfd:5n\x84\xca\x13\ \x99\xcd&\xd8F\x13Cd\x91\x8c\x93l9\x9b|\xf9\ \xfc\xde\x0a&F^\xf0,\xe6\xa9\xcc\xc4l\x92\xc9\xc9\ \x9b\xab\x8b\xcb\x7fY\x96\xf1\xb3\x12\xbc\x10\xb1\xb1K\x8a\ \x95\xf1Kv\x9dG|#\x8c\x97\xab\xa2\xd8L\x1dg\ \xb7\xdb\xd9I-\xb4\xa5Z:\xaf\x0c\xcb\xba\xba\xb8\xb8\ \xcco\x96\x17\x86\x01\xa3\xe2b5\x9bxl\xa2\x9fV\ \x22Y\xae\x8a\xf61\x89g\x13\xb0\xa3\xae\x1b\x96\xcf\xbd\ \x09\xe2\xca\xa0\xf6<\xedklb\xbcD\x1c\xa1h\xe1\ R\x1a\x9a\x06A\x84X\x08\xfe\xb1W\xe5\xa0\x1c\x96\xb5\ \x81\xff\xd3XF\x19_\xc3j8\xd9\xfc\xff\xb7\xf9\xdf\ 6\xc4\xaa\xe2$b\xf7o\xb9\x9fM\x90\x81\x0c\x8f\x19\ \xf5t\x00\xa3,\x9f61g\x93sK\xd4N\xf3\x0d\ \x8fD\xee4\xf2\xde\xf8&|;\xbe\x11\xd8\xb9\xdc\xaa\ H,\xc0\x85\xb03Q8\xef>\xbfk\x95\x16\xb2\xe3\ \x22\xee\xb9\xd9\xa7\xe0{0\x87\x1d-\xa3\xe30\x0c\x9d\ R\xdbY\x8f\xd9\x11\x84\x90\xd3\xac\xb8\x9e\xda\xcd\xf2\x9e\ \x96*^\x9c\x8d\x8d\x88\x03\x80\x83\x85\x95\x1f\xb2\x82\xef\ \xad,\x7f\xd1\x1b\x1aE\xed\xc8H\xa7Nr#\x22\xb9\ ^\xcb,\xaf\xc0\x1b\x18\xc7\x9d\xf1f\xab\xd2\xd2\x22\x8e\ \x1c\x91\x8a\xb5\xc8\x8a\xdc\x81\xedv&W`\x7f\x19\x8b\ E\xae\xc7UY\xa3\x9f\xa8\xeb\xe1R\x07Z\x80Cp\ \xf5A\xf18\x81q\x95]e9\xd40\x1aP\x8bN\ Z\x83&\xbf\x22\x99\xa6\x22\x82\xcc\xe4\xe9\x8e\x1f\xf2\xda\ -8\xce\x0b\xb9i\xac\xeb\x84\x05\x89Oq\x10L:\ \xb9\x5c,r\x01\xa3QO\x96\x17\x87TT\xe6\x16\xb8\ \x97j\xfa\x822\xcf\xe5\xecu)\x92\x90@Iq\x98\ \xe2\x89\xe1\xdc\x1d-D#\xd1\xf0\xed\xd1|\x12.\xa2\ \xc5\xb9h\x97\xce\x10\x99\xdb\x81<\x87ScP\xe6\xe3\ t\xa5\x04\xa4\xcd\x8b\xa1\x0f\x1a\xb8\xdd\xe4\xc7v$\x0c\ ;7x6a\x81\xedcF]\xd2J\x0fZ\xea\xda\ n\xe0\xfa\x81\xdb\xd9\x12\x90z'\xb6 \xa5\xec\xd8v\ Y\x07\xfb\x92%\x05\x14\xcb6\x17\xea\x93.\xe0\xdf\xb2\ /\xb98\xb1\xfa\xacx\x96C\x99\xaeg\x93B\xffL\ \x81\xff^\x02\xed\x04\xae\xc7\x02\xdf\xc46\xc3\x8c`\xea\ \xbd\xea\xc0|z\xd8\x8e3u,\x95C\x0b\x0d\xa0#\ \xbeM\x00\x0d:\x84\xce\xd5p\x04\x18\x93\x01t\x04\x9f\ \xd8j\xe8\xd0\xb1\xed\x13@g\xd5\xa1\xa8i\x91\xda\xfd\ 7\x86.\xa4VxG\xceY\xfe\xe3\xb3\x0e\x8de\x1d\ \xa9\xb3\xce\xff\xe1\xb3n\x14\x10\x8d\xd8\x19\x1e\x1a\xe1\x16\ \x82\x18\x0f\xfccn\xb9\x9d\x10\x1b:\x83`\xae\xee7\ \xce\xd1\xde\xbd\x89\xf3vF\xec\x85\xf3\xad\xef\xc1{~\ \x18\xdc\x02\xb9\x17\x22\xf6\xc4UF\xaa\xb4\xc4\xa6\x85\xfd\ *\x17\xbdWOM\xad\xad\xed7\xac\xdf\xbb\x91s\xbd\ o\xceO}\xdc\xe8)W\x82\xd4;\xe1J\x8d\x1b\xa6\ \xb5\xb3!9x\x8d\xed]\xb8\x9d,wx~>\xb2\ a\x01'\xe4\x8e\xf2\x1c);7\x82\x1e\xcb{p\xbf\ \x02\xc1\xd8#\xda\x15\xd7E\xfe\xfcy\xda\x95\x11\x94u\ \xce\xdd\x9f\x90F'\xfb\xfa\x9e\x04H\x03\x84\x1eD\x7f\ <\xf6\x17\xfb\ 2GV\x22\xba\x16j.\xb9\x8au\x98:\x07\x07\x00\ 4\x09[\x1c\xf4\x8d{\x7f\xd0\xb2A\x99j\x01E\xa8\ \xeb\xaa\xc4z\xa3/\xdf\xe5\x9b\x8b\x8efn\x92<\x99\ \xeb\xba\xe9M\x06l3\x0e\xc2\xf8H\xaa'_\xdbk\ \xef\xba$r\x99\xa5\x87c\xb3*\x8a\x06\xcfv\x8f\xa5\ \x87JZ\x15\xd6\xa5sZ9\xa5|-\x0a\x1e\xf3\x82\ we\xd4H\x80XY\x03\x08\x5c\xa5\xa7\x7f\xbc{\xdf\ \xf2A\x14M\xff+\xd5uW\xcb\xda\x80\xcf\xe5\x166\ \xb9\xe5(}%\x8e\xa6\xfa(\xe3\xc5U\xb2\x06\xb8\xf5\ \x15\xfe'\xb8VCA\xb7\x8a\x81\xb1\xc6\xb8sZ\xb9\ U\xa2z+1z\x0d\x8f\xa3u\xa2\x079\x9f\x8a$\ M\x7f\xd1Az\xbcU;M\x8aT\x5c\xfd\xce\x8b\x95\ \xf5\xa9\x90\xd1u\x19\xbd\x12\x0e\xec`\xd1\xe2\x8a \xec\ Z\xc8\xb7\x10+\xcdJ\xd9\xc0J\x098\x91\x13\x99]\ \xf5\xde=,\x94\x10\x11\x8fwb^\xcek\x97\x5c'\ \x0ed\xa8\xd8\xdb\x9b\xd5\xe6M\x19j\xf6V\x15;\x80\ \xac\xf4\xda\xfa\x18x\xdel\xe7i\x92\xaf\x84\xba\xeaA\ \xa0\xa1~\xbbl\x8f\x93\xd3u\xbd\x87\xd8?\xbf}7\ \xb6(\xbd\xed\xa7\xc3K\xcb\x91X\xdae\x12\x83i\xb2\ H@^\xfbur\x159\xbf\xca\xd8\xd1\xf89\x1f\xb6\ \x89\xf3G\xbd\x1f\xb9\x93D2\xcb\x9d\x0eX\xfd\xf6\xaa\ \xf4\xdes3\xc4N\xd3@\xfe\x98\xe5\x19\x1f?\xfc\xfe\ \x91\xfc\xf4\xc0U\x1e\xc7\xd3\xd1\xd2$\x12Y.\xca\xed\ \xcb\xeb\xfd[f\xdbr\xe3\x22\xb9\x81\x93mQ8\xa9\ \xc8\xa1K\xb3W\x85\xce\xd5\xde\xa0\xc1j`\xf5\x85J\ \xe6\xdbB>l\xc7\xfe\xe2Ku\x80r\xfe\x9f\xf16\ \x15{\x0ey\xa2\x8c\x0f\xa5\xe4\x81\xcb\x1b\x99@i\xab\ K\xb39M{\x95{\xe94\xa5]>-\xbb\x92\x1f\ \x1c\x1a-\xf9\xa5|.\x80;?j\xa5q\xa2]*\ \xb9\xdd\xace,\xea\xe1\x0dU,\x07\xd4\xc8p\xafg\ \xd9@\xa6\x9ct\x11\x0b\xa8\xdb)T\xf4\xcb\x17#=\ \xf4\xab\xd7Z\xdd\xeb_\xcaG\xb5M\xc54\x93\xd9W\ 8\xae\xa1\xe5P\xf2Z\xc0\x05\x0c\x919B\xf5cu\ &MI\xf3\xa8]\xff-\x93l\x0a\x93\xce\xe2F\x0a\ \xd4!T\x0a'H1e\x8d,\xe6p\x82+\xc5\x0f\ :\x80\xe8u+\xb0\x9a_\x8d\xd0d\xa1\xf1\x1f\x83`\ #503]\xe3\x06\xbe\x06\xbf\xbf\x1e58z\xcd\ \x8c\x06\x83\xbe\xa7\xeb\xfd\xb2\x0cz?\xa9,8\xc4o\ x\xb1U\xe2\xa8\xe1m9\x1bp\xd64\x07\xa7tT\ }\xfa\xdd\xd9\x83p\xd5o\x16\x8ea\xb5\xd1\xf7\x06\x96\ \xfa\xa6\x1b\xea\xbf\xcc5\x5c\xd7$\x81\xfe\xcb\xb0\xf1\xe7\ (\x9c\xe1\x13\xc3y?0\x9b&\xf7GKI\xc8F\ \x12B\xfe1bbd\x10j\x12o\x1c7\x86\xe8\xf7\ \xc0M\xcf\xba\xc5\xa4\xbd(\xdc\x8aI\x09\xc3\xe31\xc1\ \x90\xd1(@\x14R\xc8\xb7=\xe4\x11\x1fD&)+\ \x15\x99\xd4v\x0ddb\xfdU\xd6-\xd2\xc6\x18\xb0\xb3\ q\xc0\x02L\xce\xd6p\xef\x85\xdc\xb3V\xf1\x00\xc0\xf6\ ^\xf7-\x01\xa4!`\xe2\x22\x86M\x97\xd9\xd8\x0b\x88\ \x0b\x22\x93y\x86KMJ\x00\xb8\xb4D\x8d`\x13\xf0\ \xf5\xbd\x80\xf9g@\x0b\xb1\x85\x9e-\xe7\xce\x0ey\xcc\ \x04\x9a5\xc09D\x83c|\xa0\xc8\x18\xd2\x05Gh\ MW\x15u\xf5\xcb\xee\x07\xa4\x8e\xe7\x87\x8e\xa1q\xe8\ *\x96\xaa\x18\xab\x82\xf1\x1ct\xe3\xad\x01#?\xc0\x19\ \xf6\x1d\xe0dC8\xd7\x06qM\xea\x01\x9dY\xa1\x81\ ]\xd3\xc2\x14~\x07\x83b|f*\xee^\xe4,\xab\ \xa6\x13\xbe.\xf5\xc5\xef\xea\xe2\x1f\xeb\xe4+\xc5\ \x00\x00\x0c\xff\ \x00\ \x00L0x\x9c\xed[ko\xdbF\x16\xfd\x9e_\xc1\ U\xbe\xc4(I\xcd\xfb\xa1\xd8.\xb2\x0d\x1a\x14H\xb1\ E\xdb\xec\x02],\x0a\x8a\xa4dn(R )[\ \xce\xaf\xdf;\x94\xf8\x14eK~\xc4\xde\xc6n\x03\x93\ 3w\xe6\xce\x9c9\xf713\xf4\xe9\xf7\xebEl]\ \x86Y\x1e\xa5\xc9\xd9\x08\xbbhd\x85\x89\x9f\x06Q2\ ?\x1b}\xfa\xfdGG\x8d\xac\xbc\xf0\x92\xc0\x8b\xd3$\ <\x1b%\xe9\xe8\xfb\xf3W\xa7\x7fs\x1c\xeb\x87,\xf4\ \x8a0\xb0\xae\xa2\xe2\xc2\xfa)\xf9\x9c\xfb\xde2\xb4\xde\ \x5c\x14\xc5r2\x1e_]]\xb9\xd1\xb6\xd0M\xb3\xf9\ \xf8\xc4r\x9c\xf3W\xafN\xf3\xcb\xf9+\xcb\x82VA\ qq6\x12ld\xde.\xc2h~Q\xd4\xafQp\ 6\x029\xca\xb9.\xdf[\x03\xc4\x1b\x81m\xcf\x93v\ \x8dK\xac7\xc8C\xc8\x9fqJ\xb5m\x11D\x88\x83\ \xe0\x7fvR6\xcaaZK\xf87\x09R?\xf1\x16\ 0\x1b\x8f,\xff\xfc5\xf4W\xd0\xc7e\xf8i\x19\xc0\ |\x5c\xd0\xbb\xd1\x19\x85W\x7fO\xd7g#d!K\ 0k;4\xc0+\xc9'\x95\xfe\xb3\xd1\xbe\xe9\x1a\x05\ \xf9\xd2\xf3\xc3|\x5c\x95\xb7\xdaWC\xa9\xdbW\x05n\ \x9e\xae2?\x9cA\x17\xa1\x9b\x84\xc5\xf8\xfd\xef\xef\xeb\ J\x07\xb9A\x11\xb4\xbaY\xc7\xd0wg\x0cW\xb4\xd4\ \x8e\xb5\xd6\xe3\xb2\xb6\x91\x1e\x92#\x08\xa1q5\xe3\xed\ \xd0.\xe7\x07Jf\xc1l\xafnD\xc6\x00>H8\ \xf9uRxk'\xc9_\xb7\x9a\xfa~\xdd\xd274\ \x02\xf8\xfdt\xb1H\x93|\x03^G8h\x84\x97\xab\ ,.%\x02\x7f\x1c\xc6\xe1\x22L\x8a|\x0cK?\x1e\ \x9d\x83\xfci\x10\xcer\xd3n\xc3 \xf3F\xb9\xc0e\ \x1d\xd4\x02\x1c\xa1\x97}\xc8\xbc \x82v\x1b\xb9\x16\x95\ \xfc4\x8eC\x1fH\xe8\xc5W\xdeu>\xaa\x05\xa0\xab\ nSI\x09R\xdb^\xa1\xdf\xbcH\x97\x950\xb0\xac\ \xb8\x8e\x81\x17\xa6\xd0\x81.\xd3l\xf2\xdag\xc0J\xf4\ \xb6,J\x81\x13Qq=\xc1\xa3\xa6I:\x9b\xe5!\ (F\xad\xb2\xd2\x04\xa0\x01\xe8\xc2`\x94\xe3\xc3\xb5\x85\ A\xc0\x0e\xd1\x86\xf7h#\xb5\xb6\xd3qw\xde7\xe3\ 8\x00\x13\xd6lt+\xce{f\xd6\x1a\x12\x22\xb7\x80\ u0\xe6{qlkc\xb7\x805\xa0m\xe6\x87\x9a\ \xcd\xf6i\xbb'\x8e\x8c*\xea\xd0\x07\x00\x12+u<\ \x90\x94\x09\xee\xb1;\x00\x895:\x1eHI\xf4\xcc\x7f\ o3\xec\xd2?N.\xb2\x10\xdc\xd8\xeb\x1b\xa9\ ;\xb4$\xba\xe9\x07\x9f\x8d\x08r\x09\xa3\x9c6L\xbd\ \x86R*]\xae\x14\xc6M\xe9\x9a\x00\x04rG\x16J\ \xc9\x8e\xec|\xab\xecS\x12\x15\xe0\xbdWy\x98\xfdf\ \x22\xca?\x92Oy\xb8#\xf5{\xe6%9\xc4\x8d\xc5\ \xd9\xa80\x8f1\x04\xb37\x0e\xde\xa8\xa2\xb6C\xb6\xdd\ \x9f4h>\x06n\xc63\xde\x84\x9b\xee\xe2\xc6\x94+\ 1\x8c\xb0\x8b\x1b\xe30X.\x15\xef\xe0\xc6\xc4\x8e,\ \x94R\xd6\x97}\x00\xdc\x006\xc5\x05S\xd2\xc6.\xc3\ \x8c`*\x1e\x15\xb7\xbe\x89\x0f\x12\xceA]\xca\xed\xd2\ \x08J9\x1b\xa2\x1c\xc1C\x94\xa3\xe8/@9\xa0\x14\ u\xf4-\x9cs\xe4\xddY\x87\x86XG\xb6\xac\x93\xcf\ \x9eu\x83\x80\x18\xc4\x0e\xcf( $zJ\xde-\x7f\ \x01e\xdcl\x22\x8eH`\x86#\xcea\x09\x0c\xa8\x93\ \xce\x93\x04\x8c\x9b\x1d\x9f\xd0\x88=\xb0\x99\x91\x0d/\xb1\ \xed`\xb9!\xa38yh\xdfZ\xcb>j\xcc\xb89\ \xd6\x02t\x5c<\xba\x87\xba\xb3g%C\x9e\x95\xd5\x9e\ \xf51=\x1f\x91\xe4\x06\xdc\xb0d\xc7z'3y\x81\ \x5c\xa4)i\xf1\xc3L\x9e\x08\x97c%\xa9\xeaL\x1e\ d\xa9P0\xfd\xce\xe4\xb1r1VD\xc8\xc7\xf0]\ f\xce\x87\xbb\x12\xe5\x85\x84\xf6]\xc9\xdbC]\x17\x91\ \xec(\xc75\xa4\x0d\x0di\x1b\xf4\x5cD\x8a\xaf\xef\xb7\ \x18\x11\xb7pH\xdf\x81C\x8c\xba\x94a%t\x97C\ \x14\x8cB\x08\xd15 \xa6]\x8e\x10\xc7\xb8\xc3!\xc8\ \xa7\x11G\x94\xd1G\xe1\x908\x86C,\xd4\x1e\x12w\ \xe6\x90\xb8\x81C\xad\xb5\x1f\xda+!\x97Q$\xb9\x92\ \xed\x1d\xe9\x81#\x84\xb6Z!\xaa\x09y{\x14\x87\x07\ \xfb:\x9c\xc3\xe2I8|\xb3\x1fT\xfa\xd8\xf0\xf1\xdc\ \xfc\xe0=\x0cXi\xf5\x7fn\xc0\xf7Xy\x8d\xd0\xb7\ \xbb\xf2\x1a\x1d\x9bp>\xce\xca\x9f\x8e\xcdAl\xf9T\ \x9f\xc0\x9b\xd3\xf1\xc0\x9c\xb0\xbf\xaaG?\xf5\xea\x91,\ \xbdyX\xba#\x98\xf3\xac\xfc\xd9VL\xd3,\x08\xb3\ \xaaJ\x94?\x9d\xaa\xad\xc7\xda\xdcd\xbc\xeaBlz\ \xad\xeb\xd1p}~\xe1\x05\xe9\x15\xcc\xa1_\xf9%M\ !\x87\xe4\xae\xa2TP\xa4\xfb\xd5\xfe\x1a\xdah\x97\xea\ \x9a4M\xd5u\x99P\x02\xa8L\xect\xeb\xaf\xb2\x0c\ \x96\xc5\x89\xbd\xeb\x10\xa6T\xfe\xaa\xd0\xcc/\xd2\xaby\ f\xa0)\xb2U\xd8o\x19\xa4\xfe\xca\x1c\x7f;\xab\xcd\ \x92.\xd7}\x09\xd3\xd6\x99N\xcd\x15\xc6P\x07WQ\ \x02Su\xb6\xf70\x98\xb1\x1d@\xb6\x12\xd5\xdd\x0c\xb0\ |\x8f\xc4\xba\x89}\xfd\xaa\xeb\xfdU\x0bo\x1d-\xa2\ /a\xd0\xc4\x92Z$O\xbc\xa53\x8f\xd3\xa9\x17\x0f\ \x8f\xbe\xa4\xc8E\xe8\x7f\x0e\xb3i\xeae\x81Q\xb3\xb5\ \xb4\x0e\x00\x151\x8bksY\xb3\xbe6e\x1d\xa31\ \x05\x14\xa1&S\x0e\x17KsoS^\x805q\xf7\ 2\xca\xa3\xa9\x89\x95\xad\xc1\x80l\xe2Aa\xd0+5\ \x83\xdf\xca\x9b\xde\x8dY\xe6i\x12_\xf7\xc56Z\x0c\ x.\xef\x97^oJ+\x0b\xda5\x9c\xb2|\x11\x16\ ^\xe0\x15^cEU\x09\xe5\x90wl\x01\xc9\x82\xd9\ \xe4\xd7\xf7?\xd69\x80\xefO\xfe\x95f\x9f\x9b\xf0m\ \x04\xbci\xba\x82E\xae\xf3\x22s\x9b\xe2O\xcc\xd6\xc9\ +\xce\xa3\x05\xc0mn\x7f\xbe[/b\xb0\xe7\xba\xa2\ #l0n:\xddt\x9b\x85\x9b\x0b\xad\xc1\x1b\x9c\xc0\ _D\xa6\xd1\xf8\xb7\x22\x8a\xe3\x9f\x8c\x92V\xae\xb2\xed\ 4*\xe2\xf0\xfc\x17\xaf\xb8p~+R\xffs\xa9}\ S\xd8\x913ww\xe7\x04a\xee \xe9 V\x8a\x95\ e\x1d\xa9,\x84\x1d`\x94&\xe7\xadk\xabY\x16\x86\ \xbe\x17\x5c\x85\xd3r\x5cW\xd1\xe7h\x0c\x0c\x0d\xd7\xee\ \xf2b\xf9}\xa9\xea\xec]V\x5c\x01de\xafu\x1f\ \x9d\x9e\x97\xabi\x1c\xe5\x17av\xde\x82\xc0@\xfdn\ ^\xe7>\xbb\xf3\xfa\x11t\xff\xf0\xee\xfd\xd0\xa4\xcc\xb2\ \xef6/%\x07t\x99.\xa3\x00D\xa3Y\x04\xe5\xdb\ ~\xc7y\xe6\x8f\x7fN\x83\xb1\xc1o\xfca\x15\x8d\x7f\ \xdd\xaeG>\x8e\xfc4\xc9\xc7\x0d\xb0\xe6\xe2\xb3\xec\xbd\ \xd5M\x17;\xe3\x06\xf2\xbbL\xcf\xfa\xf8\xe1\x97\x8f\xe4\ \xbb#g\xd9\xd7g\xb4\xc5\x91\x1f&yX._\xbe\ ]\xbfy\xb2*\x17\xceO\x97\x90\xcd\xce\x8aq\x1c\xe6\ \x10\xdf\xdc\x8b\xc2p\xb5\xd5\xa83\x1b\x98}\x91E\xd3\ U\x91\x1e\xb7b\xff\xf6\xe6\xd95\x98\xf3\x7f\xacwq\ \xb8\xf6\x80'\x99\xf5\xa1,9rz\x03\x03(e\x8d\ iV\x09t\xcbrO\xc7\x95i\x97o\xf3\xc6\xe4;\ A\xa3v~\xb17\x0d\xc1w~4\x95\xd6N\xed<\ KW\xcbE\x1a\x84\xdb\xe6\x95\xab\x98w\x5c#\xd6\xb8\ \xf1\x80Es\x94\x02\x96\x9fE\xeb7\xd8\xc5\x9c`I\ \xb5\x8d\xe0?\x88\xb8\x04\xd21ImG@N\xa4\xb9\ \xe0\xc4v\x10$B\x101\x05;iv\x5cK\xe0\xdc\ \xce\x1ed\x06\x1e`\x02\xbe\xe1\xcd\xee\xc9\xb8>yk\ j[\x9b\xaf\xf25[\xc5\xe1$I\x93/\x10\xf6a\ \xbf\x92\xa5\x9f\xc3\xc9k\x8a\xc8\xb4\xbc\xf63\xaf\x9b\xe0\ 6!\xd5\xab\xe9\xf9\xbfi\x94L`\xf6IP\x95\x82\ \x0f\x0a\xb3\x18BQ1aUY\xe0A&\x90e\xde\ \xb5Q\xd0\xb8l\xcb\x02X~\xb6\xb4M\xb9\xf5O\x8b\ `+\xb60\xb3\xb9u\x09\xbf\xac/\xbd\x0d\x91\x99\xa6\ 9\xbbj_^\xb6\xf2\xbd$\x81|/\xcd\x1cH\x01\ .\xbdb\x95\x85\xbd\x9b\xb8\xda\xe3\xc3*\x19'\x091\ \xde7?\xed\xdd\x5c\x0f\xc9\xbdM\xee2\x80j\x0a\xb0\ \x00x\x17\x00\xa6\x01\x00@!\xb6\x88\xb21\xdaE\xe0\ \x96e-\x0f\xf5\x9e|]\xbf:\x94z\x07J*m\ n\xb0d\xdc\xfahqn\x13e\xb0\xa4\xc7`i.\ 8\xbe9(\x19\xa2\xbb\xac\x04\x8b$\x1a\xec\x91\x11\xc3\ IBm\x22\xac?\xf6\x00Y\xdd\xd9\x7fc\xb8\x815\ \xb7.\xc3\xb6\xc8ap\xdeH!\xcam&]\x81\x04\ \x91PdSe\xcc\x9b\xd9\xcaB\xa6\x1a\x03\xa6.V\ La\xb2\x97\x9dfJ5`\xf5G\x117\x02Vb\ \xf4\x9c\x01\xd3\xd8A;V\xab\x01\x11\x8e\x18\xb69s\ \xb1P\x84C\x91\xcd\x84\xc5\xa9M\x89k\xfc\xa2\xc1\x8c\ `\x1b\xf0\x94B1y\x18d\xf5\xb7;_\x09\xb2\xe7\ g\x0f=\xa0\xc1\x86\x192\xf6L\xe8\xd6;\x82\xc3\x04\ _\xf9\xc7p\xb0\xa5\xea\xab\x05\xdb[\xe3\x1b#O\xee\ \x94\x07\xc1\x84\xc4E@\xac\xd9\xf8\xc8\x9dX\xd3\x02\x93\ \xa1\xa7\x00\xf3+\xd8C\x1f\x16nSa`\x91\x06\x16\ \xc8d\x19\xc0\xa2\xf6\xa2\xc2\x9e\x1c\x95\xc7q\xac\x831\ \xc1\xa6\xb4\x09\x08\x84A\xcek\xc33\xb0\x06\xed\xc5\xe7\ \xb1L\xf0t<\xef\xefR\xb6\x08\x05Q\xbe\x84m\xcc\ $J\xcc\xe4\xbb\xc7;X\xb2\xe6pew\x0f\x83\x5c\ !\x10\xe1\x5c\xf3r\x13\x83\x5c\xae\xb1\xc4\x14C.A\ ]E\x05\xe7\xd8\xd6.\xc1\x0cR\xacf\x073\xef\xce\ \x1c\x94\xb4\xbe\x07\xddY\xc7z\x9c\xdb+\x16T\xfe\xbc\ \xadF=\x8da\xf7\xfd6\xbd\x0c\xb3Y\x9c^M\xb6\ 'Go\xcb\xdfQl\x1cGU\xb4\xcf\xd9\x98\x1b\x8e\ \xc3}\xcdp\x07\xea\xe4\x06>\xc1\x12N`\xa7Z\xdc\ \x97c\xed\xd2\xcd=\xd2\xa46\xeef\xe4\x0b/\xfb\x1c\ f}R\x96\xb4\x5cXT\xb8BS\x09\x91\x17\x98\xc9\ \x14RB[\xbe\x05+gas\x13/\xa9T\xb0\x8a\ \x8aiJ,\xe52\xa94g\xb6\x83A\x16k\x88\xd2\ \x17\xc0\x5c\x97S\xc6\xb8\xdc6\x83-\xaaP\x1cb\xb8\ \x8d\x85\x8b\xa9D\x92Z\x0e\x86\xf8\x8e)\x03\xce\xd7-\ \xbft\xc6R\x11\x1eV\x1eu+*\xc6g\x7f\xfa\xeb\ \xde\x89_\xbf\xbe\x7f\x22x\x93\x1d\x0cw\xb2\xc7\xac:\ \x87h}2\x1en\x93\xb7\x8f\xf6\xb6\xd9>$\xf1\xab\ \xeb\xf5\x83cj}\x95y4\xad\x8f\x8c\xb3\x0f@k\ \xce\x81\xab\x92\x98O\xbf4\xf8 A!\x08\xf9\x16w\ \x11$\x06\xc8d?\xae`@j\xcb!\xe6R\x18\x0b\ V\xa6\x99\x94\x12!,\x87\x11W\x10M\x10\xb517\ \xd9(\x02\xee\xc7\x96#\x5c\xce\x08\x91\x0crPL\x08\ \xc7&\x8f\x07\xd7\x86\x85\xed@\x7fD\x197gA\x7f\ \x1c\x11%\x8c\xd5\x80*\xcd*\xb3\x10\xae\x22\x8c\xd22\ \x83ERAn;P\x04\xfa\x04\xc6F1v%%\ &=\x83\x12\xc4@\x99\xd9-(\xce\x10L\x04\xca\xa8\ \xc0`\x98\xd0\x83\xa0\x0a\xf5R\x8e\x8e5\x91\x83\xac\xa1\ \x1b7\xbb\x1e\xb9\x97\xd6J\x1a\x10,\xfa\xac\xa98R\ \x7f\xb2\xd1\xe2\x082SQH\xef,\xe1\x83\x9a\xc6`\ ,\xd2B\x09\x8e\xa5\x89C\x8a*.\x85(\x1f\x15<\ \x90\xf24Mh\x8c8\x87\xbd\x86\xa3\x5c\xca9\x116\ \xd1\xb0*\x98rv\xb2\x03\xa9\x89Kb\xd49\x8d\xec\ ;\x83\xdb\xe7q\xfbL\x1e\xd8\xcc\x8f_0p\xfc@\ 3}\xaf\x88E\xf0c\xd8\xf66\x97\xe2\xc4\xdc\x12\xc3\ z\xda`\xaa\x10| *Y?X\x5c\xba\x94\x0a\xad\ Y\x19\xca\x04\x17\x98[L\xbbX\x0ad,\x0a\x8c\x1a\ a\x05\xf6m\x82\x11\x87\xb5.\x8b\xc0Gp\x0cy*\ V\xf0,5\x176\x18\x9c\xa0\x94\x09jIp\x0dR\ !Y:\x11\xa2\x08d/\xa61&\x1a\xe8a\x88\x82\ \x854\x16\x0em\x8d\x14l\xed\x8d\xf5s\xa6\xcb`\x08\ \xa5\x84A\xdc4\xec\xa3\x0akI,\x18\x97\x82m\x00\ 8 \xed2\xf3\x1d 6E0PL\xa9M\xc0\xe4\ !o\xa0\xa4g\xcc\x1dsf}\xa6\xdc`\xd0{X\ wH\x8c\xabR\xc3\xee\xe3n\x9a\x86oL\xd3\x8e\x89\ \x8c\xc7\xc5\xe9;\xfa\x88\x06H\x8c\x9em*\xf4\xd8\xc9\ \xadF\xe8~\xc9\xadF\xe4y&\xb77\xa6i\x87Z\ J\x8b#\xe4%\xafx)\xf0\xc9S\x1e\xc1I\ &\xef\x97\xa5H\xa6\x9fg\x96\xf2\x5c\xf3\xce\xc6s\x91\ \x97#\xb8\x97#\xb8\x97#\xb8\x07:\x82#/Gp\ \x0fz\x04G^\x8e\xe0^\x8e\xe0\x9e\xee\x08\x8e<\xdd\ \x11\x5c\xf3\xd0\xe6|\xf7\xa3\x13\xc2\xa7H\xed\x0f(\xe1\ e\x08\xc3\x0cj\xeem\x89\xdds\x16\x80\x0a\xd6z\xb9\ >\x9e~\xbb\x8ees\xf9-]\xc9\xc1)\x13\x031\ \xd1\xe0\xa6\xa5Ie8\x05\xdfi3\x0c\xcb\xad\x04x\ nHWL\xde\x82\xb9Ma\xe5\x08\xc4\x07\x0cb\x8a\ \x80\xe7\xb09u5\x85\x15\x04B\x81\x9b \xe0\xd7\xcd\ \xb7BT\x13\xcd\x89%la\xe2\x83\x06\x02Qp1\ \xc6\x95`\x04=\x9aH\x02Q\x88\x0a\x02\x0c\x00u\xc6\ \x9d\x83_\x17\x92\x97\x7f\xe7\xad]\x0dd5R\xd8\xfc\ }\x1f\xe4\x9c\xd8\x86>\x11\x01NBg\xd0\x13\x82\xb1\ \x189\x0c$\x13-VT|\xa00\x80\xa6\xf0\xa0\xf5\ -W\xf1\xd4|\xfd\x7f\xfe\xea\x7f[-h9\ \x00\x00\x13\xe4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ no\x22?>\x0a\x0a\ \x0a\x0a <\ defs\x0a id=\x22de\ fs3020\x22>\x0a \x0a \ \x0a \ \x0a \x0a \ \x0a \ \x0a \x0a \x0a\ \x0a \x0a \x0a \x0a \x0a \x0a \ im\ age/svg+xml\x0a \ \x0a \ \x0a \ \x0a <\ /metadata>\x0a \x0a\ \x0a \x0a \ \x0a \x0a <\ circle\x0a \ style=\x22display\ :inline;overflow\ :visible;visibil\ ity:visible;fill\ :#302b00;fill-op\ acity:1;fill-rul\ e:evenodd;stroke\ :#302b00;stroke-\ width:4.30417;st\ roke-linecap:but\ t;stroke-linejoi\ n:bevel;stroke-m\ iterlimit:4;stro\ ke-dasharray:non\ e;stroke-dashoff\ set:0;stroke-opa\ city:1;marker:no\ ne;enable-backgr\ ound:accumulate\x22\ \x0a id=\x22\ path3859\x22\x0a \ transform=\x22\ matrix(0.923416,\ -1.8493317e-6,-1\ .852795e-6,0.923\ 41381,12.656479,\ 12.866193)\x22\x0a \ cx=\x22176.3\ 7895\x22\x0a \ cy=\x22153.97134\x22\x0a\ r=\x222.\ 1655145\x22 />\x0a \ \ \x0a \x0a \ \x0a \x0a\x0a\ \x00\x00\x18\xf7\ \x00\ \x00S^x\x9c\xbd\x5c\xeb\x8f#7r\xff\xee\xbf\xa2\ 3\xfeb#\xea\x1e\xbe\x9b\x5c\xec\xee\xe1b\xe3\x82\x00\ 9\x1cp\x0f\x07\xc87Y\xa3\x9d\x19xF\x1aH\xda\ \x97\xff\xfa\xd4\x93\xcd\x96Z\xebG\x92\xdb\xbd\xb3\x96\xcd\ _\x15\xc9b\xb1XUd\xf7\xeb?|z~\xea>\ l\x0f\xc7\xc7\xfd\xee\xcd\x8d\x1d\xccM\xb7\xddm\xf6w\ \x8f\xbb\xfb77\xff\xf8\xfb\x9f\xfa|\xd3\x1dO\xeb\xdd\ \xdd\xfai\xbf\xdb\xbe\xb9\xd9\xedo\xfe\xf0\xf6\xab\xd7\xff\ \xd2\xf7\xddw\x87\xed\xfa\xb4\xbd\xeb~\xfc\xdc\x1d\x1f?\ \xc1\xff\xde=~\xd8v\x00\xed^\xde\xff\xf8\xf4x|\ \x80\xba\xf7\xbb\xbb\xed\xa1\xfb\xee;\xd3}\x00\xde\xdf<\ \x9cN/\xafno7H\x09\xe0\xcd\xfe\xf9y\xbf;\ \x0e\xfb\xc3\xfd-\xd1l\xee\xf6\xcf\xeb\xc7\xdd\xed\xcf\xdb\ \xc3\xfe\x16\x08n\xef\xb6\xdb\xbba\xbb\xfb\xb6\xdb\xef\xba\ \xfd\x0b\xf4\xec\xe9\xf1e}8!E\xd7\xf7o\xbf\xfa\ \xea\xf5\xf1\xc3\xfdW]7\x1f\x02=x\xdc~\xfc\xb7\ \xfd\xa777\xa63]\x08C\xa6\xffP\xd5\xe3\xdd\x9b\ \x1b \xf3c\xa1\xe2\x11F\xfb\x02\xff\x7fu\xb7\xdf\xec\ \xd6\xcf0\xc8\xf7/w0\xb2?\xba\x01P\x04\xf9\xf8\ xwzxs\x93\x02\x95\x1e\xb6\x8f\xf7\x0f\xa7Z|\ \xdc\xfdt\xdc\xac_\xb6\xaf\x9a>\xd8\xc1u\xdf\x98\xb5\ 1\x9bw\xd1\xfb\xb2\xea\x9cq\xae7\xf0\xbf\xf0-\x11\ \x81\xd8w\xc7WJ\xfa\xe6F$\xf3\xf1\xe3\xc7A\x1f\ \x92X\xb0C\xc7\x97\xf5f{\xbc\xd5\xe7\x0d\xbdv\xbd\ \xd2\xeb\x83\xe1\xb8\x7f\x7f\xd8l\xdf\x01\x8b\xed\xb0\xdb\x9e\ n\xbf\xff\xfb\xf7\xb5\xb27\xc3\xdd\xe9\xaea\xf3\xe9\x09\ x\xcf\xfa\xf0\xd1S\xeb\xb6\x94rK\xb5\x13z\x09\xe7\ \x8c1\xb7*,\xe9\xda\x87\xfb_\x89<\xdc\xbd\xbb\xda\ \xb6q\xb7 7@\xf4\xc7\xcf\xbb\xd3\xfaS\xbf;~\ \xdd\x90n6\x95rI\xa7\xe6\xe0\xbb\x09\xfc\xf2\xfe\xf0\ D\x88\xbb\xcd\xed\xf6i\xfb\xbc\xdd\x9d\x8e\xa0o\xf6\xf6\ \xe6-\xe0_W\x8d@\xe9\xdf\xa1&!\x17V\x9c\xfa\ \xc8g{\xc3\x8f_\xd6\xf7\xd0\xec\xd3\xfe\xf0\xe6\xe6\xeb\ w\xf4G*~\xdc\x1f@\xfd\xb5*\xd1\x9fY\xd5\x1e\ f\xf6\xf1\xf4y\xd2\xdaF\x9b\x90\xeb\xf1a}\xb7\xff\ \xf8\xe6\xc6-UVb\xb3L\xbcy\xd8n~\xda\x1e\ ~\xdc\xaf\x0f\xd0o\x85\x1c\x1f\xf6\x1f\xef\x0f8\x92w\ \xeb\xa7\xe3V\x9fn\xd6O\xdb\x1eW\xcb0\x9e\xf3\xfa\ y\xbf\x7f\x06e\x1fbt&{\x7f^\xbd\x01*\xe7\ \x86\x94B\x0c\x17\xb4\x1b\xe8\x9eK\xc3\x98\xa3\x1f\xc3y\ \xe5\xc7\xc7\x1d\x8c\xae\x97\xc5eC\xb8\x18\x86 t\xc1\ \xe5p\xd1\xba >M\x03<\xaf\xfa|\xbd\xeay\xfd\ \xe9\xf1\xf9\xf1\xe7-\x08\xc3^\xf4\xfc\xfd\xe1\x00j\xd1\ ?\xad?o\x0f\xd5^t\xb7\xa4 w\xdbw\xc7I\ %\xb0\x14Hs\xa0\x0a\x16\xcbv}\xf8\xf7\xc3\xfa\xee\ \x11\xc8\x19\xc4\xb0yM\x00q\x09\x0dj\xdci\xff\xa2\ X1P\xf0\x040\xaa/4I\xf0\xa8_T\xb4Z\ [uBL\x1d\xff\xd9\xbf{w\xdc\x9eP\x0e\xdc\xff\ /7\x99\x7fg\x93f\xa1E[[|};\x1f\xff\ o\x15W\xb4\xb6\xf2'\x8b\xf4\xea\xe1\xb0\x05\xc3\xf1\xf5\ \x82X\x15w/\x0f\xff\xb1{<\x81\xddz\x7f\xdc\x1e\ \xfe\x86\xb6\xf4/\xbb\x7fT\xcd\x07n\xae\xed\xfbg\xfb\ \xe6f\x1cLrqz\x04\x00?N#\xf9\x0d}\xf6\ \xff\xb4>\x87\xc1\xd9\x9c\x8d\xb1\xb3n\x07\x0fk\xcf\x94\ \x92\x7fW\xef\xcfD\xe0\x87b\x22\xf2\xfa\xed}\xb5q\ p\x0b\x84\x7f?\xacwG\xd8\xa4\xc0\xbe\x9c\xf0\x9fO\ \xb0\xed~\x03&\xc8$\xd83{;\xc4ogc\xec\ c\x1e\x8cu\xed ?\xd1\xd0M\xf14\xf4_Pn\ \xff\x05\xe5\xde\xe2\x9f\xcd\xef[4>$\xf3\xab\xf9\xfe\ \x1f,\x1a,\xad\x9f\x96\xa6p^\x03S8\xfe\xc6\xc9\ B\x83\x1d\xe2P\x825\xc6MO\xd1\xc6\x87\xc1\x8fc\ +\xfb\x85Y|^\x9f\x0e\x8f\x9f\xbe\xb1+\x83\x7f\x07\ \x1bb\x0c\xf0/_\x06\x17\x9b\xc9\x04\xc18?\x98q\ \xfc\xe5\x19\x1b\xaf\xce\x98\xdb\xfa\xe0\xd3\xef\x9d\xb1|u\ \xc6.\xf8\xfe\xb6\x19\x9bO\x01m\x17\xb7\xb8C\xd0\xbf\ \xee\xa7]\x836\x16\x15\xe6ii!\xc0\x02\x08\xce\x95\ \xf1[\xdd[^\xd6\xa7\x87v\xb6\xb1\x0c\x12\x9a\x8cG\ \xe3\x12Lb{\xf7\xf8\xf4\x04\xf3}x\xfa\xe6\xebK\ \xf5\x98\xe6\x04\xf8=wa\x1c\xc0\x18\xadX\x03\xbau\ \xc7\xb3\xb4\xf2\x83\x8f9\x81#m\xe1o\x1f\xd2`q\ Z\x17kk\xe5\xcf\x95\xf3\xf2\xe0\x0c\xa9\x93_\xf5n\ \xc0\xb5;u\xe4x\xfa\xfc\x04\x1e1v\xfb\xd5\xd5^\ Wy\xdf\xb7\x02\xb9\x0f!\xe5_l\x97\xcc\xcb\xb7\x93\ \xea\x1d\xb6\x9b\xd3\x5cE\xf0\x89K\xd17S}\x80%\ \xd0*\x85\xfa$\xc15\x0f\xc5\x95\x99=#\xef.6\ \x0f\x80\x91\xe7>\x94\xd2<\xe6iR\xedk4\xb8\x9d\ \xf5i\xde\xa1{\x0b\xd41\xc6q\xd6m@\xff\xb9+\ +6\x91\xddw]\x1a\x5c2\xb5\xcc?+~\xa8\xa5\ \xd2}\xe8\xbc\xe96\x9dY\xb9a\xf4\xc5vn\xb0i\ \xb4@T`_\xec\xf8GK\x0f\x8ce$L\xbb\xd4\ \xf6LS\x8b\x82\xfe\xa1+\xc4\xb8\x17\xce\x0c\xab\xd5\xfc\ [\x8b\x0f]\xef[E\xba2\xa5\xf3\x0d\xa3\x91\xdc\xfd\ \x5cl\xa8\x1d\xaeN\xfb\x85d\x9b5\x95Rku\xce\ \xe7\xa6\xad!\xf9\x92y\x03\x81@-\xca\x98\xad\x1d\x95\ ]\xc1\x92\xc9(q?&O\xa5\x12\xa8\x14\xb9\xc0U\ ~\xec|\x1e\x8aG\xb9\x06_\x1c\x972\x95\x10\x09\xa5\ \xe0\xa9\x143\x96\xc61A)\x1ag\xa9\x94qv\x22\ \xff\x13+B\x19\x0b\x96h\x9eb\x8a\xfc\xefH\x05\x17\ q\x0a\x06cB^\xf5\xf8\xeb\x22H\x1e\x8cu2c\ \x06\xa3m\x0a\xf8\xf2#=A0=\xc1>\x10I\x14\ \x92B\xf5\xae8\xa6\x80}!\xf3\x933\xbcg\xbcw\ I\x08\x18\x0e\xf6w\x09.hG\xad\x83\xaf\x01\xe2\x80\ \xdf\x04\xa3$8\x01+\x01>\xb06P\x07\xac\xb5#\ \x13yg\xc7\x15\xfd:\xc7D^Z\xc1\xdf\xee\x09T\ j\x880\x03\x1e%\x11@\x12\xa8\x8a\x99\xcc\x901\x09\ z\x09\xf6\xcb\x80Fz\x9cM`Y\x86l\xddT\xcc\ 0\x03\x16\x9a\xeczpiB(\xb0v@\x81\xa1!\ \x9b\x86\x1c\xc2\xca\xa2\x1fV`\x99Y\x1b\xb7}\x90\xd1\ G\xd4l\x18\x04>\xa1\xf1\xc3\x08M\x1dH\xad\xaa`\ 7xS\x18l]\x8e\x81\xc0\xd8\xfdZQ\xa1<\xb0\ \xacr\x9d\x8d\x98\xb8\x83\xd7\xe6\xb7}\xac\x14\xb0H\x5c\ \x5c\xe2\xdd\xd7\x1a\x85\x12+\x14\x16C}7\xf1&\x02\ \x0f\xc2\x98u<\x82\x94\xa61\xa6f\x8c\xbdV\xcdx\ C\x87\x997\xe8\xdb\x19\xefq\x80\xf9;'p\xd0\x1b\ f\x0e\x0aq>\xd0~\xac\xf0\xc0\xe8\xc4\xda,\xe3`\ \x09\x08\xf4E\xf82\x90[\x15\x96^\xbb@@?\ \x03\x8e\xdc\xba\xb4M\x85 @]\x1a\xdeam\x0a\xd6\ \xb1\x1cR\xa1\xb2\x9b+\xae\xb1h\x15'\xbc\xf7&0\ \xbf\x94\xed\xe5\xd0\x88b,Ba\xb9\x05p\xae\xa8\xab\ #\x0f1M\xc2#x\x89M\xd7SH\xdc_\xd8\xd5\ b\xd3\xa1\xa4p\xe7\x1ati$\x07\x1dh%\xe7t\ \x8d2\xd72\x09D\x87(\x02q\xa1\x05\xc6\x89\xe19\ .6\xb8\x92\x02w\xb2i99\x01\xa6\x190\xb5@\ 2\x02I\xbb\x98g\xc0\xf1*\xd0/\xe0\xc2B\xcbs\ \x5c\xb9\x8e\x13\xad\xa2\xf9)_hWdm\xb9r4\ NLV\xb2]c\xe5|\x9dK\xafC\xb2\xd8,h\ \xaag\x80\x0b\xbe\xabV\xb4\x81{\x91\xa9\xe5.\x8f\xe4\ \x91a\xfb\xa1\xb4\x0d\xd4\xc9\xf70W\x05v\x18X@\ L\xe0`\xcc\x10ke}@\x04\x8a\x05\xe6S\x1d.\ \xde\xc2\xcd\xe7q\xb13P\x0dF\xd5\xd9\x899\x8f\xd6\ \xa6|e\xb4\x91\x1c\x06ok\x0b\xd0}7\x04-N\ ]\x81\xe7}S\x91i\xd7\x85\x8e\xc5\x8a{\x00\x9b\x04\ K*\xa3\xa1G\x12\xa4\x00\xd3/\x90\x04\x7f\xb1)\x13\ \x85\x05ox\x15\xda\xd4\xc0N\xc7\xb3\xeb\x9dA!\xc2\ hY\xc8S\xbf#\xca,8!H6\x8cB\x10]\ \xe5}FAK\x12\x8c\x0c\x13\xc8\xb4yW\xe25\x02\ \xcb\x04#\x13X\xb6\x08\xb8\xb8g\x04ubyj\xd0\ K _\xc3\xcb\xc6\x18\x92\xac7\xe9xX\xf4\xa0r\ \x9dD6\xb2\xc2<6\xeeN\xbb\xf0]U(\x82\x93\ \x03\x00\xbcm\x5c\xe0\xad^O\xe0\x1d?\xd1N\x80~\ \xfcd\x84Z\xb4\xf6\x84\xc1\xacLy\x0cKXuB\ \xfc(\xce\xc5(\xee\xfb\x22X\xdd\xdb(\x1b\xe8\xe4\xe0\ ^\xf8\x9f^t\xda\xb3\x8b8F\xf1\xe9F\xdfn\xe3\ \x0d>O\x1e%\xaeY\xcb\xf0j\x95\xe7\x9bC\x8d\xfc\ Xf\xe2d\xe52\x81\xa7mJ\x04\xedx\x9f5\x89\ 9\xc74G\x8b\ w+\x0a\xc7QJ\xd2e\x9e8Xb\xa4\x9d#\xe3\ \x0c\x99\x1b\xa4\x93UQ\xa1\x9c\xa3\xc2\xa9\x9ae\x00j\ \xe0\xadQ}\xd4\xdd\xc6{\x0e!1\xdb(6a\x1e\ \xa9g\xa5\xd0M\x8fzZ\xfcY\x9c\x9cG\x0d\xd6\xb5\ GI\xf0\xd6\x14n\xa1\xb8\x19\x055\x01\xfa[\x5c\x0d\ k\xa3\xf2\xe4d<{c\xe7\xad\xe0\x1a\xf2m$\x5c\ \x06\xaf\x076\x96\xb2\xf7m4\x9e\xab\xf7\x03\xe1\x8f\xa3\ \xa4\xa9\xe4\x861\xdc\xa9\xea\xfe\xa1\xb3\x1e\xbd\x7ftz\ 2p\xf5D\x08\xf8c\xe4\xe0\xa6p?\xb5\x0d\xd4\ :\x05\x1b>\xb7\x11\xec\xe4\x91U\x0a\x88[\x8c=\xa3\ 0V\x22\x7f:\x028\x0b\xc9\xcd\xd8\xc6\xf0\x98\xd4r\ \x92,qKA\xb9\xf6\x9b\x03~\x11\xbdt\x838\x8f\ \x02T\xd5\xd1\xf0=\x8e\x12\xec\xfb\xa5`\xdf\xd5n\x88\ \xc3\xcck[\xd3\x88sMc\x0a/k5\xc8\x11\x87\ \x95\xe4W\xe1\xf4\xc6y\x03\xa94=\x07\x0b\xe0$\x8c\ o\xb3\xe0\x13\xba\xe4\xbaP\x8d\x1e&@\x98\xe2\x1ap\ \x1bk\xbb\x96\xb7\x9e\xaau\xd3z\x9ar\xebmP\x9e\ /\xc3}9\x95\x11\x1f]\x0e\x9b(1\xc1\x86\x8bs\ \xd9\x17\xb9\x01=l\xa2F)\xe9\xc1p\xb7\x08\x0f:\ \x8b\x12\x83\xebAoHi\x82Oq\x8f\x8e\x8e\x99%\ #Av\xf0M\xe0\xdc\xe2kP.\x9dQ\xb3\xcey\ \xef\x8b\x88_\xe6\xc5J\xda[7\x8d`[\xeem\xc8\ \xaf\x871N\x82m\xcb\x04f\xbcB\x80)fIo\ \x09\x85 \xc6kM\xe4\x95&\xd0x\x04\x19\xb7hJ\ \xbc\xe9\x08\x14\xe8W}S\x93h5I:\xef2\xab\ \xe0VM\x15f\x0c\xc5\xe5\xc8\xd7\xce\x1b\xa0#\x15n\ P%%\xffx\xc1z\x5c55x\xc3\x84mc\xbc\ \xca\x98\xa3S+\xc9\xa1\x18\xd4+\xd4\x03\xad~>G\ \xea\x17\x12\xf7\xa4>dH3\xf6\x8d\x06\x88\x1fk8\ \xfd\xab\xdeq^d\xee\xd5\x95\xe6\xc5+\xaed4e\ \x11m\xd5\x9d\xe7\xc5\xab\xfe|j;\xde.\x0c\x8d)\ \x0c\xa7\xc55\xa4\xb1\xcb\xf0Qc%v)\xad\x06k\ \x17G*\xcbN\x91\x99\xc4\xfc\xd4yN\xdd\xd3\x85\x07\ \x9f\xf9\x92Nq\xa8\x03\xe8\x1f\xa5\xc1z\x10\xa4\xe7[\ +\x85\x8f\x03\xa4\x84\xc7X\x98\x9a\xef\xe4\x92\x03^\x8a\ \xf0\xb0A\xca%\x87\xde\x06\xd8\xaa2\xdd\x95pM\xb8\ \x1ahc\x09\x1a\xe1\x8em\xe4\xdck\xa5`y\xab\xaa\ \x81s\x98\x22\xdb^\xab\x04\xc9\x03\xaa\x89\x9a6\x07 \ \xac\xfdPd\xd7\xa3\xa0\x19\xef1,\xb3\xd6\x1aE\x1a\ \x8e\xfa\x15\xd9\xdc\x9e\xe85\x88\x0f\xa1%ho1\xc8\ \x0d\x87\xda\x8d\xe6\xf2\xc3\xc4\x9cC\x08\xbe\xe1p\xce\x1c\ vJ\x7fN\xe0\xe4\xe4\x80n8\xf4\x17C-51\ \xdfD\xe9^\xfbc\xdd\x02\x09-\x1c;\xa7\x885\xb2\ \xb7\x17\xbd\xe2e\xc9x\x11\x88S%/\xe5Z\x03q\ \x1e\xe3[M\xc3M\xc7#s|j\xf1x\xf9A\xf0\ \xd9^k!\xcfS\x03A2qx\xf9\xa1ib9\ \xe8\xaf'\x9f>\xce\xfaS\xbdFY\xd4Y\xbdL\xab\ \x01}s\xefh\xde\x1d\x22\x90x_\xa6,\xb6)\x86\ \xc2Q\xa2\x0bm\xf4\x8f\x81\x82\xc6\xffnY2\x92W\ s\xea\xf0J\xb2\x1bz\xe2\xe7]\xa9}\x1fg\x99\x80\ \x14\xd5\xda\xa5|\x85 \xcf\xf2\x01\xa9Z\xd3x\xad\x85\ \xd2f\x05\xe4\xc0\x14\xb7\xdfq\x19?O\x0d\xa4\xacx\ w\x05^\xcf\xb4Eet\x00\xe6J\x7f\xbc$\x88E\ D\xa3\xdc\xcf\xa0\xeb\x133\x82)\x96n\x93\x05|}\ \x82)\xc2Y\x12\xe0\x0c\xaf\x89\x10qW\xe8\xfe\xc4r\ \x97\xc2J\xefO\x88i\x98\xeeHT\x82\x1a&75\ |}\x82\x1b\xcf\xe3rg0{\xe0\xda\xd8^\xd2\x12\ \xf6|\x86\xe7\xb9\x03?\xe5\x09rsQ\xa2\xbfH\x1c\ \x84\x06\x17\xd1\xf1\x98r\x03|n\xd0\xd7;\x14\x86\x02\ \xa5\x95\xdc\xa0\xe8\x8d\x5c\xa1\xd0{\x12\xfd\xe4\x16\x08\xb2\ o\xab\xe8\x0e\x85\x91+\x14\xfdR@\xeeQl\xa1&\ \x0c\xe8\x0e\x85X\xacY\xfc;Qh\xc0\xef5\x22\x97\ \xe8\x87W\xe3\x02\x81\xde\xd1\x195\x22\x17\xe7\x90\x95\xe7\ \x22\x84\xd7\x80\xbc\x86\xfc\x12\xf0_A\xd7+\x95\x12\x8d\ O7*\xaf\xc4\xef\xd7.TN\xf1\xf5\xd2mJ\x01\ \xb3\x9b\x1f\xcbe0\xae\xde\xbb\x5c\xbb\xccI.j\xa5\ \xb8\xc4XCw_t\x81\xa4\x1a\xfbL\xacc\xa3\xed\ \x04\x0f\x8dI\xe0\xb4\xc0\xf2\xa9\x7f\x8d\xc3\x18\xcd\x11I\ \xd2X\xe32\x86\xd7\xac\x83dW\x83\x06ny\x16\xc2\ +ZC\x9fR#~\x8e\x09\xfd\x95x_Bq\xd9\ H|\x91\xfc\x80\x1e\xed\xcf\x8fus\x1aa\x85\x14\xdc\ \x96\xd0\x9d*+\xba/\x81\x9e\x0f\xf8KZ0C\xf1\ \x18F`^|D\xffc\x1c9#\x0e\xfa\x1e\xc9\xa1\ A\x07\x0c\x1f\xa4\xc8\xd7(\xf0\x16\x05\xb9\xe90\xa4\x1f\ :\x97\xc0u\x08r\xa7\xc291\xb0.\xe8aL\xdd\ \x1cgG7\xf3\xf0\x8f\xa7\x91\xf1\x9a\xff\xceyl\x09\ \x9a\xe0r%\xb3\xcd\xf3\xa1WT\xcc\x15\xb8\x1cS\xc9\ \xb5C\xbe\x16\xc4\xd7*\xccl\xe3e\xb4\x5c\x98\x91S\ \xf0P\xaf\xd7\xd8E4\x83\xf9\xfaJ\xb0r\xfd\xc5\x8c\ \xa5\x057\xc9\x02\xe9\x0a\xb7\xec\xb5'i\xb1'\xe2\xc5\ \xe8\xdd\x00'\xbc\xcbtutb\xae\xf7*\x84\xa0\x1e\ \xba\xc8\xb5\x8a\x09\x98*J\xd8D\xc5\x8d\x0bl\xf5b\ \x85\x10\xb4\xb7'\xf4fE\x05O\x97.\x18\xdb\xdc\xa0\ \x90\xab\x152\xb8\xe9\xca\xc5t\xbbC\xd2\x17|\xb7\xa2\ \xbf\xe8\x88^\xae\x98\x91\x04\xab\x12\x09\x0b$\xbc\x01\xaa\ @\x98b\xd4\xabU\xf9*\x85\x9c\x80&]\x8c\xda\xff\ \xb0\xe8\xa6\x89W\xa7\xd7dB\xd2\x06$\x8b\x93\xce\xf9\ \xeb})\xf5\xec\xd4\xbf.6.\xf1w\xf5@\x96W\ Pu|Kc\xa9Z|n\xfc\xba\x92D\xbf\xf0\xa6\ \xc5\x12Z<\x17\xf5\x83F\xa3\xce\xfe2s\xf1*|\ \xcd\xbb\xebY`\xbb\xedO69\xb5>8]\xb7\x10\ c{\xe6\x16M\x14yrz\xf9\xc2\x05\x13LF|\ \x06\x17\xcfTZ/\xf5.a.-\xbc\xeelr\xe0\ \xa4ifq\xa9\xe9\xd6E\xdd\xd9\xe6\xfc\xa5\x01\xc9\x1d\ W\xb7\xce\xc5E\xfe\xb1\xf1\x029\xf1\xcd:\x97\xd2\x9c\ \x7f\xdd\xc95\x85 \xa3\xc3\xab\x17l\xd1\xe3\xb8\xd8\x00\ \xfb\xc9V\xf7q\xbc\xd2%w,*\x7f\xa3\x9bxS\ A\xb7/\xb8\xe1\xe4\xaeu\x05#\xe7\xe9\xe0\x87\xee_\ \xf4r\x01\xa3a\x0e\x9e\x94\xf5\x83\xd3\xcbs\x10Bc\ \xd6D\x8fh\xfc(\xef\xbeX}2%X,\xbe\x07\ \xb6R~`\x06=B\xa1\xc14\xadC\xf1\xe8`\x8d\ \xda!\xd7\x03\x1aPy\x0a\xf9\xc7\x99O\x875\x01B\ \x0a|\xef\xa1\x1e\x11\xa5\x08n\xab\x9d\xdc/\xf5Z\xaf\ \x9f\xbf\x08\xe0\xe7\xd9+1\xa7\x8b\xd7\x01a\x7f$\x8f\ \x82\xde\x09,\xe2\x5c8\xce\xe2A\xd0\xeaS\xfb\xd6\xce\ \x97\xdf\xcb\x09K\xef\xe5\xacSX\x1b\xb3\xf8^\x0e&\ 5\x22\xef\xb3\x7f\xecp\x9fvt\xe0A\xbf2\x10|\ \xb7\x06\xa4\x19\x87\x91.8\xd2\xdb\x18\xab\xc0\xb9x~\ =\x84\xaee:\x88\xd61\x06J\xe0\xc7\x06\xbaE\xcc\ \x19xS\xff\x89\xa7j\xb8\xe7t\x98\x1f\x09\x96X&\ +\xf5\xab\xab:\ \xdd\xbc\x9e}{\xff\x0b\xef\xb8\xfb\xe0m\xfb\xb5\x85\xe5\ \x85T_q'\xf1\xe2+\xee\x11\x1d4)\xf3\xcf\x8a\ \x1fji\xf6\x8a{\xc0\xab\x1cx\x91\x22\xa2:\x93\x8e\ \xf1\x8f\x96\xea+\xee\x88\x14\x83\x8aZ\xcb4\xb5(\xe8\ \xe6\x15w\xe2\xcc\xb0Z\xcd\xbf\xb5\xf8\xbb^qo?\ M\x81\xd2\xee\xef\xd6\xc7\x07\xfd\x16\x857\x17\xf5\xd7L\ \x8c_`\x85\xa0\xcd\xfa\xe5\xcd\xcda\xff~ww\xf1\ \x85\x813\x03\xf4k&\xdd\x7f\xfb\xcb_3\xf0\x80[\ \x9e\xe9t\xd1\x85\xe5Vfba\x95@\x99\xe1F\x17\ \xf5\xd3\x07\x18;k9\xe0W'p\x8aG\xfe\xf4\x01\ \x95\xc4\x12\x8c\x94\xd6\xdb\xe0\x0a\x05\xc7\x98\xde\x91\x820\ \xdcEX\xf3\x96\x8e\xc0\x13\xbd\xd6\x8f\xce>\xdbA\xcb\ \x96e\xe1\xd3\x06\xf6\xec\xdb\x06\xee\x0b\x1f7\xb8\xf8\xf0\ \xc5\xd2 \xa7\x0f\x8d\xdc\xf3\xb7E\xf8\xe7y{Z\xdf\ \xadO\xeb\xe9\xfb\x22\xfa\xc4\xd7\xaf\xac\xbc>\xdc\xbd{\ \xf5\xd7\xef\xffT\xe7b\xb3y\xf5_\xfb\xc3O\xcd\xa6\ v\xb7y\x85\xaa\xb7>\xbd}|^\xdfo\xf1Km\ \xff\xfa\xe9\xf9\xe9\xf5\xedT1\x03\x9f>\xbfl[#\ \x80-\x1c\xb6\xfc\xf1\xb9\xc5\xaf\xad\xddm\x9e\x1f\x91\xe8\ \xf6o'\x18\xe6\x7f`#\xf3m\x15\xfa\xf4\xf4\xb8\xd9\ \xee\x8e\xbf\xcc\xf7\xd7\x7fFp\xde\x04\xf4[\xbfPx\ x\xdb\xb4\x82m\xff\xf1\xbe\xf9\xa2\xce\xd4\xf6\xfa\xc7\xfd\ \xfbSm\xf8\xecK\x84\xb77og\x14$\x98\xc7\xd3\ \xd3\xf6\xed_& \x89\x90\x9f\xb6M\xdej\x9bM\xff\ n\x97:H\xc8v\xb6\xb0\xb7\xffy.\xa9\xcb\xbe.\ \x09I\x04|\x9cK\xebf>\x0b/\xdb\x03L\xd5\xf1\ w\xcd\xc2\xee\xf8\xf5_\xb7/\x87\xfd\xdd\xfb\xcd\xe9q\ \xbf\xbb\x98\xe1\xff%\xef\xef\x1f\xc1\xe0<\xfe\xf8\xfe\xff\ \x85\xf7\xf6\xf0\xf8\x81*P\xd8\xc7\xd9~5I\xbc~\ \xecgZQ\xafou\xc5\xbd\xfd\xea5.\x9c\xb7_\ \xfd\x0f\x1a\xbc\x9dB\ \x00\x00\x0ab\ \x00\ \x003Nx\x9c\xe5Z[o\xdb\xca\x11~\xf7\xaf`\ \x95\x97\x045\xa9\xbdrw\x15;\x07\xc5\x09\xceA\x80\ \x149h\x12\xb4}2hr)\xb3\xa6H\x81\xa4,\ )\xbf\xbe\xb3\x14\xaf\x12eK\xb2\xec\xa6\xad\x1dG\xda\ \x99\xbdp\xbf\x99\x9d\xdb\xf2\xea\x97\xd5,\xb6\x1et\x96\ Gir=\xc2\x0e\x1aY:\xf1\xd3 J\xa6\xd7\xa3\ \xef\xdf~\xb3\xe5\xc8\xca\x0b/\x09\xbc8M\xf4\xf5(\ IG\xbf|\xb8\xb8\xfa\x93m[\xbff\xda+t`\ -\xa3\xe2\xce\xfa\x94\xdc\xe7\xbe7\xd7\xd6\xdb\xbb\xa2\x98\ O\xc6\xe3\xe5r\xe9D\x15\xd1I\xb3\xe9\xf8\x9de\xdb\ \x1f..\xae\xf2\x87\xe9\x85e\xc1\xa8\xa0\xb8\xbb\x1e\xb9\ ldZw:\x9a\xde\x15M3\x0a\xaeG\xd0\x8f\x22\ \xc9\xcbv\xe7\x01\xf1\xa6C5\xf3\xa4\xcbq\x88\xf5\x16\ y\x08\xf9!\xa7T]Z\x04\x11b#\xf8\xc7\xde\x95\ \x83r\xd8\xd6\x1c\xfe&A\xea'\xde\x0cv\xe3\x91\xf9\ \xcd\x1fi\x94\x14_\x92?b/\xd1\xbf\xa6I^d\ \x1e\x10\x1cX\xbe\x1c\x04\xf8$\xf9\xa4^\xefz\xb4o\ {f\xc2|\xee\xf9:\x1f\xd7\xf4\xce\xf8z\xe9f|\ Mp\xf2t\x91\xf9:\x84)\xb4\x93\xe8b\xfc\xf1\xdb\ \xc7\x86i#'(\x82\xce4\xab\x18\xe6\xee=\xc3\x92\ \x96\xabc\xa5\xd4\xb8\xe4\xb6\xbd\x87\xfa\x11\x84\xd0\xb8\xbf\ 5h\x1d\xd83\x0b\xc2\xbdk#2\x06\xb0\xa1\x87\x9d\ \xaf\x93\xc2[\xd9I\xfe\xa63\xd4\xf7\x9b\x91\xbeQ\x9b\ \xe8A\xfb\xe9l\x06po\xc0\xebu\x0e\xda\xce\xf3E\ \x16\x97=\x02\x7f\xacc=\xd3I\x91\x8fA\xd4\xe3\xd1\ \x07\xe8\x7f\x15\xe807\xe36\x1acZ\xa02\xa2\xe4\ \x01\x17\xe0\xd0^\xf6{\xe6\x05\x11\x8c\xdb\xf4\xdb\xf4\xec\ s\xa8\x14\xb8\x1a\x03\xa3\xf2\x22\x9d\xd7}Ag\x8au\ \x0cR7D\xdbO\xe34\x9b\xbc!\x00M\x18\xbe/\ I)H<*\xd6\x13\xfc~\xd4\x8eI\xc30\xd7\xa0\ \xcc\xa8C+5\x1aF\xc0Ztd\x8d\x0f_-\x0c\ C?\xf4\x0fX\x0d\x0f\xaf\xc6\x9b\xd5\xae\xc6\xfdm\x1f\ \x8d\x92K\x8f@)\x0cA\x81\xd0\xc9(\xb9\xfcH\x94\ \x94\xf6\xe4\xc9(\xb9\xe2)\x94f^v\xaf\xb3\x06\x9d\ \xda\xfc\xc0p\xff\xde\xcc\xf3\x97,K\x97\xe4\xb3N\x82\ f\x8143\xe3\xc1\xc8,\x8a\xb4!f:\xfcgw\ \xcf\xd0\xfeG\xb7\xbdg\xaej\xcb)\x98\xbb0N\x97\ \x93\x87(\x8fnc\xdd\xcac\xee\x15w\xfd\x9d\x19\x0a\ \xe3\x82\x8dv\x80\x0b\xa38\xb6\xb3E\xac'\xfaA'\ i\x10\x00nYz\xaf\xed\xd2&O\x90\xe3\x12^\x93\ \x0c\x18\xff\x02\x0b9\xc9\xd2E\xe7y,\x0bV\xf8\xab\ %\x1d\x81%\x97B^2\x07Q*('\x96M\x1c\ \x82\x04\x91\x8a_\x22\x07a\x17aJ\xdc\xba\xa7d\x97\ 6tEX !-\xdf\xb2\xb1#\x18g\x0a\xe8\xc4\ \xa1\x82 \x17\xa9\x92H9cH^r\xc7\xc5\xd0\x01\ \x03\xd1\xd5\xb6\xb8\x94\xb0\x0cp\xa8\xf5\xa3\xf3(`\xb1\ \x93\x1c,\xe8\xecz4\xf3\x8a,Z\xbd\x85\x19\xf0%\ \x82\xdf\xf2\xcb\xa6\xf5\xae+\xf9Z~~\x9a$\xda/\ \xd2\xcc\xf6\x17\xd9\x83W,2m\xa4\xd1*\xc3F\xee\ \xc7)\x01\xf8\xcb\xac8\x9b\x1a\xf4g;]\x11\xf0\xff\ \xa3\x22\xd4z`>_K\x0b\xbee\x91\x97Lc\xfd\ )\xf9\xfa|%\x18\x9a\xecT\x1dp\x15\xe9\xcbmf\ qG\x88Kd\xd9\xd2q\xf9%\xb7\xcc\x81AV\xd5\ \xf8q\xb8\xc2L\xde T\x99\xfb\x8e\xfe\xe0y1,\ \x1c\x00,\xd6o!\xba!\x97\xe6\xbf3\xc8\xe4`'\ \xa6\xd01N\x8c1\xc9Ip\xaa\x13S\xe88'\x86\ \x10q\x0f\x0a,\x06\x9d\x98BO:\xb1\xc3]=W\ G\xa0\x84\x82g\x05D.>\x0a%\x11H\x1c\xe2\xd3\ ]==#J\xc7\x84\x8d\xcf\x0c\x88\xf8\xb1a\xa3\xd0\ B\x9f\x8c\x12\x7f2ll\x0e\xea\x1c2\xb09\x9cT\ \x08\xe9\x1b\x03U'Z\xc5\xda\xa4L\xfd\xae\xb4u\x1e\ m\x167\xbfY]\x8f\xa8\xe3JF\x5c\xb0\xf1\x130\ L\x08\xb9\xaeR\x04\xbe\xe3\xc1\x01\xeb\xeb\x91M\x84\x03\ .\x83\x83\x1b\x98X6\xe3\x0eQB2\xb6w\xc8\x0f\ \x18\xc2\x5cp@\x5c\x08n\x86`p0\x5c1\xd7\x1d\ \x1eR=\xaf\x0d\xd6{\x1a\x99\x1c\xb3|\x1ap\x8b\xe6\ G\xf4\xc7\x18#\xdb\x22A\x91r[\x04_\x00+\x1b\ S\x87Q\x97\xb8\xe5#1G\x10\xd3x\x0c,\x04L\ \xc5\xc1\xe7\x9a\x9d\xa3}\xf80\x06B\x10\x82>=\xeb\ \x0e8\xdc\x84\x0b\x82\x1a\xf8\x95\xe3RN\xb9\x92O`\ \xc4^\x16\xa3R\x13\xd0S\xa0`8\x96\x8fAB\xe4\ #\xd3\x0c\xaa\x08;HC0\x1e\xda=8j[\x87\ !t\xaa\x07nZp2\xef!\x03.\xbc\xb8?c\ \xdb\x9f\xc2\x81iy\xf9M\x15\x16\x5c\x8f\x8al\xa1\x1b\ \x06\x0c(t\x96\x98\xa0\x0d\x02#\xf8\x83\x9da\xd4s\ \xf7~:_o\x90\xce#\x13{\xdc\x80W\xd7\x85\x7f\ \xa7[\xa4\xe7Y:\xbf)\xddx\xd7\x82\x94\x84\x9b\xf5\ M\xa6c\x88\x15\xbc8o\x975\xa5\x91\xb2\xa6\xd4\xc2\ \x9c@,\xe0\xc57\xbbf\xaf\x80\x88g\x80\x5c\xae\xb9\ H\xa2\x22\xdf\x9e\x1c\x02\xa1\x22\x82\xb5o\x9a\xcd\xf5\xf9\ \xe1\x22\xd77E\x1ak\x08A\xfc~\x18\xb1\xc7\xd8\xb7\ QH\x1c\x97\xe0{\xf1\xd2[\xe7=\xe8\xfbC\xc1\x8e\ \x88c|\xa6\xf9\xa1'z\x03XK\x1d\x19Y\xec\xae\ \x86\x0e\xf5\x06\x02\x22\xf7\xb3\xa4\xc7\xf8\xac\x99\xd1\xf6l\ 'F\xc5T)\xbe\x9d\xcd\x98\x83\xc1/m\x0e\x0e\x82\ 8\xbcl\xf0\x92\xf8r!q\x95\xaf G\x96\xf9\x8a\ \xf9\x84S\xf9jI+\xfez\xbe\xcaE\x7f\xaeS\x93\ \x15\x84\xd1\xcf#\x962U)\xeb\x09e\xce\x82M\xeb\ \xf5Ds\xd6S\xf3\xf5<\xf5\x04\x04\xd9\xc6O#\x9e\ Z:\xe6\xf3UeC\xce*\x9b\xed\xd9N\x96\x0d\xe1\ \x87#\xfe\xbfS\xebA\x0e\xad\xb4\x80\x9as\xea\xaaW\ \xad\xf6|Y\x14\x9f\xcfW\xee\xe9\xcdv\xaa\x1e`\xba\ uF\xff\xb3\xf5\x9e\xd2\xb79\xf2\x15d\xf21\xf2f\ i\x12\x9c\xa7\x1a?4\xd9\xc9's\xbb\x02g\xac\xa6\ -\x1c$0\x12\xae\xb4\xaa\xafR\xb124\xdf\xb4\xb8\ T\xd6\xe6\x1bsII\xef\x8cx\xd5\x88\xc4\x86\x93\xf9\ *\x87\xaa\xc6\xfcL\xd6ux\xba\x93\x85(\xe9\x7f\xb3\ \x10_K\x86U\x90~\xc6\xb8\xf2\x1cG\x10\xc2}\xf9\ \xf3\x04.v-\x98\xf2\x8b}\xa6\x88\xff\xf0\x02\xa6:\ \xeeF\xd7\xfc\x9c\x5c\xc0T\xc7\xde\xe8\xee\xaevp\xca\ \x0a\xab\x9dZ\x0c\x7f*\xf3/_\xb2\x98\xdc\x81\x96^\ \x8f\xde\x0c\x94\x00\xf6\xc3\x0dytk8V\xb8\xac\x98\ \x09\xccd\xeb\x12\xd6@$\x10I)EE;\xd3\x8a\ \x5c\x8f(s0u\x09juwM\x86\xfaN\xab\xb5\ \xbeo\xca$\x8b\x5cg_\xcdK)_\x92\xef\xb9~\ \xd1b\x1b\x86\x074\xe5?S\xf3r\x1dI\x05R\xe2\ \xb9\x957\x8a\x1d%!\xbc4u<\x82\x1c\x86]I\ \xf8\xe1\xd5H\x01\x03\xca2/w8\xc0$\xf1S\xf5\ 8\x9b>\xbb0\xf4\x88z\x94w\x0f\x8f\x9dFW\xf5\ \xd4\x83P\x87B\x9e\xc5dO?\x00\x5c \xb9.\xeb\ \xeb\x87r\xa8\x8b\x18\xe5=\xfd\xd8\xed\xfb\xb8~l\xf7\ \xfa\xd6\x1a\xac\xd2v\xc5^\xa1\xdf\xda\xe0\xbfl\x02v\ \xeaE\xa1\x12\xf8Q\xa8\xba\xc7\x03@\x81x\x96\x9bZ\ 8\x22\xdbXa\xe9\x8a\xce\x5c\x06+\xc8J {%\ \x8amc\xb5\xd5\xf7\x0cXq\xe1H\x17K\x85\x0fC\ l\xe0\xba\x12\xbb6\xdag\xa3\xdb\xab?,m\xf7\x09\ C<`b\xa5\xa7\x09e[\x06}\xbf\x91n\x97#\ \xc8&OX\xe2\xa1\xcbT\xad<\xe4\xee[\xee\xb9\x97\ q\x80\xd4!8\xbd*J\xaf\x81\xd1\xd5\xd8\xbc\xf6V\ ~k,\xb7y\x171x\x88\xf4\xf2\xa2y\xa4[\xaf\ \xd1\xd9\xb97\xd5\xe5rp\xec6^\xb6b\xdc\xa6Y\ \xa0\xb3\x9aU^a\xb8=V\xf5D\x9b\xf7D\xab\xb9\ \xdb\x8b\x8b\xa9n\xf8h\x98\x9f\xdfyA\xba\x04\xcb\xb6\ \xcd\xfc\x91\xa63s0\x9b\xc2Ek\ \xed\xea\x15W\xcc\xd8\x0e\x1aU\x8f\xfa\xb5W\xc9\xe8\x9e\ \x1e\xabV?\xb7Y\xeb\xfd\xac\x99\xb7\x8af\xd1\x0f\x1d\ \xb4\x0a\xd7\x13\x84\x7f\xa7}\x88\x17oS/\x0b\xcc,\ \xdba\x81A\xa0\xd6\xd3M\x18\xb0Z\x1bZ\xcf&\x1b\ \x02\xc5\xb8\xf5iz6o\xaeyZ\xfb0|\x0d\xa5\ \x13\x0f\x88\xc1\x165O\xbcy\xd5\xdf\xccn\xb4=O\ \x93x]u\xdb\x9c\x83\xab\xf1\xae\xa2\x97\xf4\x99.\xbc\ \xc0+\xbcV\xebk\x0aE\xaa\xd9d\x16\x84\x93\xbf}\ \xfc\xad9\xbe\xbe?\xf9{\x9a\xdd\xb7\xc7\xd2t\xf0n\ \xd3\x05\xc8\xa5\xb1(\xe6]S\x7fb\xcc\xbbW|\x88\ f\x00\xa1y7\xf6\xcf\xabY\x0c\xe7\xafa\xf4:\x1b\ \xdc\xdaI7\xd3fz\xf3\xba\xef\xe0\xfb\xad\x81?\x8b\ \xcc\xa0\xf1\xd7\x02\x92\x8cOf\x91\xae\x99\x19W\x0fZ\ \x9b\x82\xce> \xfe\xaf6Z\xb6\xa6-\x00=\xado\ \xc4\x1b{\xb7\xe6\x86\xee\xb3aZ;\xdci\x96.\xe6\ \xb34\xd0\xd5\xf0\x8a_\x0c98tI\xc9\xbb\x1a\xd9\ iO;\x5c\xd91\xc8Y\xe7>\xb3\x97KM\xde\x80\ '\x0e\xfd\xf0}\x99X\xb5i\xc5cY\x15q\x10e\ J N\xba\x05Kx\xf6M\xbdr\xb8\x8aYS\x01\ c\x9d\xc5p:\x8a\x09\xabi\x81\x07\x96)\xcb\xbc\xf5\ $I\x13\xdd\xb1\xd0f#\xe6\xd1\x99y\xd5\xa3%W\ \x07\x9bQ\x87P\x82\x91\xea\xb0\xea\x13\xcd\x98#\xb8\xc0\ \xa2\xeb'M\x94\x8c\x1c*\xc1Xu\x0b\xb4\xe5\x8b\x0c\ \xa6\x10*\xb9\xecz\xf1\x81\xb7\xd9\xaa\x1b\x08.%V\ \xc8\x94Z\x95\xcb\x154\xcb\xc2\xe7\xbb\xae\xb6L\xfb\x9b\ \x98\xc2\xaa\xb2\xab\xcd:\x8e\xa3y\xdeS\xd0\xa1\xb2\x81\ \xa9c`\xc9\x85YV\x98b/g\xf0\x10-\xb9K\ \xed\xe7\xae\xa0\xf0\xc6QP\xc7\xa4=T\xf69\x06\x09\ \x06H`DH\x8fc,:`\xc1\x91\x22n\x9f\xb1\ \xda\xc3h\x12{H?lj\xf7\x99=E\xd3!Q\ D\x1d\xa9h\xf0\xc39\xc5\x87)Z\xa9[\x87+Z\ \x97\xba\x89\x0f&\xae\xb3y\x0e&k\xe6P\xc8a\xac\ V\x94\xf9q\xdf\xbe\x00\xa6\xe0\x0b9\x08C\xf4\x11\xaa\ \x0fv#`\xdb\x07\xf7\xa53\xe3A 7b\x18T\ \x18\xcb\x03\xc7\x18\xd1A\xb2A8\xa5xGthG\ f\x94\x0cKK\x12\xb9_R\x1e+e\xb1GR\x95\ \x1c\xb7%%\x19\x1c\x09\xf7\x85LB\xd7\x0eOk\x0b\ <\xdd\xd8^\xf8\xb82\xde\xe0\xc3\xc5\xbf\x01@\xe0\xfb\ \xd8\ \x00\x00\x0a\xf7\ \x00\ \x00LMx\x9c\xed\x5c[o\xdb8\x16~\xef\xaf\xf0\ \xba/-6\x92x\x13E\xb9I\x06\xb3St\xd0E\ \xb1\xbb\x98\xb6\xd8\xc7\x82\x96hG\x13Y\xf2Hrb\ \xf7\xd7\xef\xa1n\xa6l\xc5\x8e\x1b5E\xbaqZ$\ :\xe7\x90\x87\xfcxn\x94E\x9d\xff\xb2^\xc4\xa3\x1b\ \x95\xe5Q\x9a\x5c\x8c\xb1\x8d\xc6#\x95\x04i\x18%\xf3\ \x8b\xf1\xe7O\xef,1\x1e\xe5\x85LB\x19\xa7\x89\xba\ \x18'\xe9\xf8\x97\xcb\x17\xe7\x7f\xb3\xac\xd1o\x99\x92\x85\ \x0aG\xb7Qq5z\x9f\x5c\xe7\x81\x5c\xaa\xd1\xab\xab\ \xa2XN\x1c\xe7\xf6\xf6\xd6\x8ej\xa2\x9dfs\xe7\xf5\ \xc8\xb2._\xbc8\xcfo\xe6/F#h\x15\x16W\ \x17c\xce\xc6\xfa\xeaJE\xf3\xab\xa2\xbd\x8c\xc2\x8b1\ \xc8a\x8a\xbc\xf2:\x87\x01-\xe1\xff\xa4\x1d)\xb2)\ \xa9Dk\x1d\x13c\x12\xd8&\xa3WH\x22\x14\xcc\x5c\ J\xfd\xb3\x11A\x84X\x08\xfe\xb1\xd7\xdd\xfe\xc24H\ \xe4\x02\xe6%\xc9\xf2\xcb\xc7\x22]\xda\xa0\xb6\xdb\xafZ\ /\xd3\xac\xb0fQ\xac*Q\xe7*]('\x96\xcb\ \xd4y\xab\xf2kh\xe4\xfc\x9e\xc9Y\x14H\xe7}\x00\ 9\x0b\x15F\xd2\x92A\x01\xc3\xc9\xadtU\xc4Q\ \xa2r{\x99\xf4\xf7\xbc\x0e\x97\xd1\xc5\xd8G\xbd\xcc\x8d\ \xc9\xec\xacSG:\xfb\x12\xac/\xc6E\xb6R{\xf4\ M\x1f\x1d\x06\xb5\x5c\x15_\xd4\xbaPI\xd5%,\x91\ \xb1^%[c\xd1\xd2\xca\xf6`,I>iH\x17\ \xe3\xbb\xd6Z\x03\x95/e\xa0r\xa7\xa7}\x83~\xdb\ \xbe!\xd8y\xba\xca\x025\x83.\x94\x9d\xa8\xc2y\xfb\ \xe9m\xcb\xb4\x90\x1d\x16\xa1\xd1\xcd\x1a`\xbd\xee\x8c\xe1\ \x96\x96\xda\xb1\xef\xfbN\xc9\xddJ\xf7\xc9\x11\x84\x90\xd3\ \xacw=\xb4\x9b\xf9=%\xb3pv\xa7nD\x1c\xb0\ 7\x90\xb0\xf2MR\xc8\xb5\x95\xe4/\x8d\xa6A\xd0\xb6\ \x0c\xb4\x0fE7*H\x17\x0b0\x96\x0a\xbc\x8ep\xb8\ \x15^\xae\xb2\xb8\x94\x08\x03G\xc5j\xa1\x92\x22w\xc0\ \xda\x9d\xf1%\xc8\x9f\x87j\x96\xebv\x95\xfb\xe8+\xf0\ \x1f\xbf\xe4\x01W\xdb\xa0\xcc\xc0P\xc3\x08\xdaUr\x86\ A\x04i\x1c\xab\x00e2\xc9\xa1\xf0\ \x5c\x5c\x8c\x17\xb2\xc8\xa2\xf5+j\xbb\x9c@\x01\xa5,\ ~fA\xc1\xed\x11\xe4\x9ea\xdb\xf7\x09FLS\x88\ \x8b\xb8+J6#6\xc7\x98\xbbgDP\xdb\x13>\ ~\xdd*\xd0u9\xe6\xbe\xedy\xd8\xdb\x02\xa9\xabr\ \x8c\x90M\x10\xae\xb78\xfa3\xeb\x95\x9d\xf5\xcaf@\ 4\xe2\xc17\x9a\xecA\xac}\xef\x80i\x13L\x06\xc0\ \xba\xd0\x7f\xc6\xb0\x8d|ear\x86\xb6\xb0\xadq\x09\ E{\xbd\xd1\xd7\x18v}T w+Ev\xa4\xe0\ \xda\xa7\x80\x14T3\xfe\xf7\x04\xa7\x8c\x8f\x07\xc1aC\ \x82\x83)=\xf3\x10\xd8\x1e|v0rm$|\x97\ \xe0.R\xaeM|\xd8\x8a\xb0.R\xac\x03\x94Kl\ \x17#\xd7\xdbF\x8d\xef\xe0\xb1e\x04<\xe4\xb1\xd4\x1b\ \xccc\xf1\x19\xd2?6\xd4\xb1\x1e\xa1\xf0'\xe6\xb6\xf0\ (\xe2]o$\xcc\x16\xd4\xc3\x84w\xbc\x91r\x9b\xe9\ \xf8\xd1\xf5\xc6}\xd9Y\xaflVb\xce\x19\xf3`>\ ?\x14N\xff\x19\xce\xe1\xe0\xf4\x88\xfb\x0c\xe7\x90p>\ ;\xfb\x80\xd5\x8eG\x86s\xf6\xe7j\xe7p\xb5\xe3Q\ \xfcp\xac\x7f\xd6j\xc7\xa3tHp~\xdej\xc7c\ \xcf\xf9dP8\x9f\xf3\xc9\x90\xf9\x84=\xe7\x93G\xcb\ '\xees>9\x00\xces>\xb9\x9f\xc7\xfa\x03X\xd1\ \xb3\xc7\xde\xcfc\xfdA\x8d\xf2iy\xecqp\x06(\ l\x9e*8G\xc3\x99?@\x99\xf2\xf8\xe1\xec\xf1\x81\ \x12\x08\x0djELY\x10\xb9\x90\x8d|F\xf8\xd3\x82\ \xea\x98\xc3\x094@4\xea\x94\xbe\x10\xf2\x11\xa3B\x87\ z\x06\xe0 \x1d\xf4=l3N\xdc'\xe3\x89\xc7Q\ \xe3\xc3\x86\xa9\x16)\xdf\xd3VF\xbf\x13R\x8f_Y\ \x08\xf4c\xf6\x02\xd8\x83\x9d\x10&\xf8\x8c`\xa81|\ \xe6\xff\x0c\x95\x85~\x1a\xe8\x90U\x92\x01}\xd9\xc6\x88\ \x12N\x1a\x97v\x99\x8f=\x80\x95S\x1b\x13\x22\xc0\xa5\ \xb9M1\xa6b\xc7R=\xbdW\xa5\x9cv\xecU0\ \x9bp\xca\x84\xdf\xb5W\x90\xf5\x98K\xbaQ\x11\x22\xa2\ \xcd|\xf3\xab\xfc\x1f\x91@\x86\xb8_\xbf\x97@\x08\xff\ \xfe\x19\xe4\x07x\xf8\x10w4\x1f\xe2\xe1X\xf0\xff\x1b\ \x0fw\xc5O\xe9\xe1?\xc0j\xf9\x00%\xe2s^\xba\ _\xb5\xc4\x87{\x9a\xe6\xe7\xa91\x8f\xe6 >\xe8\xa3\ \x1fOy\x13s\x04*\xca\xc8\x90)\x08\xcc\x09\xfb\xa2\ \xb2\xb33\x8bCA\x8e\xf8\x13\x05\xee\x88g\x02p\x03\ \xd8X\x0d\x1c\x81\xa0.\x04\xf8d\xd7A\x19f6\xe2\ X<=\x07=\x92\x8c)\xa3\xc3\xa5\x10\xc8\x05\x04\x12\ \xa5\xbb\x93\x8c\x19\xe5\x90\xa5\xb1\xff\xd4\xcbm}\xd4\xe3\ \x00\x92\xc2E\x9diQ\xde\x99\x0f#\x9d\x89\x18\xdf\x83\ \xe9\x19X\xf8\xbe\xcbP\xcd\xf0\xdc\xd1GZ\xca\xbf\xda\ \xe3[\xfa\x9cQx\x13\xa9\xdb\x17\xed\x10\xa7\xb2]\xb8\ \xa5\x9c\xab\xf2YW\x98X\xf5\xccp\xcd\x98\xa6Y\xa8\ \xb2\x86\xc5\xcbO\x87U?\x0e\xab\x8f\x99a\x9f#O\ \xb0f\xa5Z8u\xe7\x86\x18\xea\xe3\xe7W2Lo\ a\xe6\xbb\xcc\xafi\x0a6\x04\x15\x85\xcb\x85\xbb\xdf\xb7\ \xae(\x5c\xb0\x10\xe1\xe36\x99l\x99\xa0\x8fq\xdb\x15\ P\x9b\xf8{\xccU\x96\x01\x8eV,7\x0a\xe6V\xfe\ j\x82\x5c~\x95\xde\xce3\x8dQ{\x1e\xcch\xa99\ \xd6t\x9a\xae\xfb\xd9a\x1a\xac\xf4\x81#kU-\xd1\ r\xdd\xdb\xc12\x8d\x12\xcd6\xba\x98Eq\xac\x17 \ \x903\xaa\xcc\xa1\xac\xa2P\x81\xe8L\xc6\xf9\xfeh4\ s\x7f8%\xb9Hc\x05\x8e\x18(\xf0\x82v\x18y\ \x91\xa5\xd7@y\xe9\x11\x7f\x16\xccv\xfb\xbb\x8d\x12X\ \x09\xab>t\x88\x19\xdb[\xafZ\xa29\x88\xd8\xb3\xe2\ \xb5\xc4z\xfb\xf8\xf5.k\xb3e\xe9\x19V\xb6\xd4\x8f\ \xa7\xe6\x9b&b\xc8T\xcd\xea\x15\xeck[k[\xc8\ u\xb4\x88\xbe\xaap\xfb\x84v\xc7\xfa\x82+\x15\x5c\xab\ l\x9a\xca,\xd4\x03\xab\xc3D\xeb<%\x98\x8d\x07\xa6\ \x99\xf6?Y\x94g\x01\xaf\xe0\xeak\x0a\x97q\xeb\xa1\ \xcb4\x8f*&\x15P!s\xce\xba1\xb6\xec\x8c`\ \xdfH\x8b\x0fU\xe4\xdb\x083$\x8cG&LE\xfc\ $E7*+\xa2\xe0\x1b\xd4\x88\xa1\xd4h\xd8<\x17\ \x0b\xd6\xa3\x86 4\x1cl\x84\xd8\x90\xcf\xc9N\xe5\xd5\ (\x22C\xcd\x87P\x1b\xd2\x8f'x\xaf\x9a\xd3\xcc\xe0\ \x80\x1a\xecz`n\x0c\xf7X\x1b\xa3\xf4\xb4\xd9\x1c\x84\ \xcd\x82\x94\x8d \x99\xb3\x9e\x09\x81\xa6\x01\xed\xdar\x85\ \x8d\xa0\xc2\xeb18P4\x98]c\x01Y\x09\x11\xd1\ \x8f\xdc`v\x0d;V\xdb'\xa4w\x81\xf4\xb2\x0d\xa5\ \x86\xf8\xb6\x0f\xfb\x89~5\xfep\xab\x83}\x1d\xde\x84\ \xd7\xb3:P\xf7\x9f\xb6:\x07\x15q\xd8\xb1P\x9f{\ =\x01\xc1\xc5C\xce\x88A\x84\xe3\x9c\xa2\xde\x19\x99\x87\ 8\x1fl\xd8\x02\x5c\x08y\x98\x8b\x1eM\xfa(\xffp\ \x9a0\x02\x1f\xf2\x11\xf2{5\x0d\x08\x9e\xa5\xef\xcb`\ \x97\x91\x1eMP\xd8\x1b\xe8u\x0a!S\xf6w\xb8~\ \x97\xa5\x8b\xffd\x0a1\xfeQ\x15E\x94\xcc\xb7\xf5w\ \xb1\xd1'\xe9\xd7\x1b\xddll\x0cp\x1e%k\xf3\xa4\ WE\xda\x98$}\xc4\x1e\xfaZ\x9bG\xb4j\xda\xc6\ \xa45\x95.\x9d\xd1m\x11<\x1a\xa9\xc5\xf2\x0e\x8eY\ \xff\xba\xa6\xbc\xc1\xa0\xc2d\xd4j\xb7\xb5\xeeht\x13\ \xe5\xd1T\x1f:3j\x18\x90M$\x10\xc3\x1dj\x9e\ \xc8e-\xafq\xd0\xfb\x8c\xec\xa0?^\xc9L\xfd\x1aG\xd7&\x18\xa5\xe9\ \xd5\xa6\xd6\x9c16\xe2\xf7\xb9\xd3\x04\xf8\xf2j\xbe\x0d\ \xfc\x9d;\x1emJ\x8e\xe5T\xc5\x17\xe3\x0f\x9a9\xda\ \xe3\xce\xb3t\xb5\x5c\xa4\xa1\xaa\x9b\xb7\xb7\x14\xca#\xd3\ a\x94\xeb\xf00\x89\x12\x9d\x95v\xdb\xee\xbcx\xa7\xcb\ \xd9t8E\xdf\xed}\xfd\x9c\xf9\xeb6CA$h\ 3b\xa5]\xdf=i\xdfk\xa2/\x8c\x83\xe1\xd5=\ \x8f\xc9K\xa2(\xa3\xbc\xbe\xac\xeeqLHs\xa9\x07\ \x0d\xe3\x99\xe4\x7f\xad\x00g\x93\xfag\x1a%\x13\x98z\ \x126T0\x10\x95\xc5\x11\xfc\x9a\xb0\x86\xb6\xab\xce\x0a\ e\x0e+\x96\x01\x22I\x9a(\x93Z\x9d\x17\x9f\xe8\x22\ P\x7f\xa8\xebW\x1fw\xe7\x1b=\x98%T\xa3\xdb}\ V}W\xc6\xf8\x8e\xb4\xb9\x0bc\x90\x00e\xe3n\xa9\ yq\x07\xae\x96\x06v\xfbM\xe5\x1d\xd0B\x1a~\xb5\ w\xd7\xd3E\xaf\xef\xc2\xba}\xc3\xcc7`]\xc2\xfb\ \xdd\xb1~\xd3k\xb0]\xe8-\xba\x07>\xdb\x07\x9f\x99\ \xe0\xbb&\xf8V[\xf8\x9e;\x90\xd1\xceuMt\xf9\ \xe2\x7f\xf7\xcd\xdd\xc6\ \x00\x00\x0e\x86\ \x00\ \x00Xtx\x9c\xed\x5c}o\xdb6\x1a\xff\xbf\x9fB\ \xe7\xe2\x80\x06\x93d\xbe\x8bt\x93\x0c\xbd\x15-\x06t\ \xd8\xb0\xadw\xc0\x1d\x0e\x83b\xd1\x8e\xae\xb2\xe4\x93\xe4\ \xc4\xe9\xa7\xbf\x87\xb4$K\xb6\xec8o\x8b\xdb\xab\xb7\ !\x12\xf9\x88\x0f\xf9{\xde)j\xa7\xdf/g\x89s\ \xa5\xf3\x22\xce\xd2\xb3\x01\xf6\xd1\xc0\xd1\xe98\x8b\xe2t\ z6\xf8\xf8\xfb;O\x0e\x9c\xa2\x0c\xd3(L\xb2T\ \x9f\x0d\xd2l\xf0\xfd\xf9\x8b\xd3\xbfx\x9e\xf3C\xae\xc3\ RG\xceu\x5c^:?\xa6\x9f\x8aq8\xd7\xce\xab\ \xcb\xb2\x9c\x8f\x86\xc3\xeb\xebk?\xae\x1a\xfd,\x9f\x0e\ O\x1c\xcf;\x7f\xf1\xe2\xb4\xb8\x9a\xbep\x1cx**\ /\xcf\x06\x82\x0d\xcc\xdd\xa5\x8e\xa7\x97es\x1bGg\ \x03\xa0\xa3\x9c+{\xdf\x9a ^\x11T#\x8f\xda=\ >q^\xa1\x10\xa1\xf1\x84S\xaa\x5c\x87 B<\x04\ \xff\xb2\x13\xfbP\x01\xcb\x9a\xc3\x7f\xa3(\x1b\xa7\xe1\x0c\ V\x13\x92\xf9\x1f\x1f\xd3$\xbc\xd0\xc9\x1fo\x7f~W\ \xf8\xc0t\xc50\xd6\xd7\x7f\xcb\x96g\x03\xe4 G0\ \xa7\x9a\x17\x80\x95\x16\xa3\x9a\xf9\xd9`\xd7Z\xcd\xe8\xc5\ <\x1c\xebbX\xb7\xb7\x9e\xaf\xe7\xd1<_7\xf8E\ \xb6\xc8\xc7z\x02Ch?\xd5\xe5\xf0\xed\xefo\x9bN\ \x0f\xf9Q\x19\xb5\x86Y&0vg\x0e\xd7\xd4r\xc7\ J\xa9\xa1\xed]S\xf7\xd1\x11\x84\xd0\xb0^q5\xb5\ \xab\xe9\x81\x94y4\xd9\xc9\x1b\x91! \x0f\x14^q\ \x93\x96\xe1\xd2K\x8b\x97\xadG\xc7\xe3\xe6\xc9\xb1\xd1\xa1\ \xf8J\x8f\xb3\xd9,K\x8b\x15x\x1d\xe2hM<_\ \xe4\x89\xa5\x88\xc6C\x9d\xe8\x99N\xcbb\x08r\x1f\x0e\ \xce\x81\xfe4\xd2\x93\xc2<\xb7R\x1fsG\xb9\xc0\xb6\ \x0fz\x01\x0e\x1d\xe6\xef\xf30\x8a\xe1\xb9\x15\xdd\x8a\xb2\ \xdb\xc3\xa8\xa4\x1e\x1d4\x04\xb5\xa2\x8d\xb3$\xd1cP\ \xd10\xb9\x0eo\x8ajX\x18\xb8(\xb3yM]i\ .\xb4\x04\x14K9X\xb7g\x93I\xa1\xe1i\xd4j\ +\xca\x9bD\xaf\xc8=\x18>\xcbG/)\x13\x99(o\xbd\xbe%>\x1b\x90\xc0'\x8crJ\ \x9a\xd6\x1bh\xe5\xcc\xe7Rb\xbcn]\x12\xa0\xc5[\ \xb4\xd0J\xd1&\xed\xb4b\xf71\x8dK0\x98E\xa1\ \xf3\xdf\x8c\x11\xff\x9c~,\xf4\x16\xd5\xefy\x98\x16`\ \xaa\xb3\xb3Ai.\x13p\x86\xaf\xbc\x8a\x15u=R\ \x0d\x7f\xb2\x06\xf4)\xa0S\xd4S{\xa1S\xca\x0b:\ \xd01\xe9\x07\x18&\xd9\x85\x8eq\x98/\x0f$\xef@\ \xc7\xd0\x16\xad\x01\x94\xadh\x83\xc7\x84\x0e\x90\x93\x5c0\ \x19\xb8\xd8g\x98\x11L\xc5\xc3\xa1\xeb\x05\xc4 \xb6\xc3\ \xa0z\x8c\x84 \x16\xca`\xd3H\xf6[vm\x97\xc0\ \x8c\x9b\x08\xba\xcb~\x0f\xf6\x00\xfbM\xbb\xc5.\xf0\x9e\ \xc1\x80\x8d\xfba\xb7\xd8o\xd7zQ\x9f\xf5\xd2\xa0\xcf\ z\xf1\xb6\xa5\x13k\xffGb\xbd[\xab\xdd@\xe3\xde\ \x01\x04\xd2\x97\xbb\x07\x901\x83\x04\x08\xdd#\x80\x80\x9a\ \xdf=\x80L\xc6Z\xb1\xe7\x0f \xb7\xe9\x9fP\x88\x8b\ 'W\x94{\x87'\xd2\xa7\xe0\xac\x09OO\x18>\x8c\ \xd8\xe5~g\xd95\xdc;\xc5\x0e\xd1\x17;(\xdb\xa4\ \xfdrb\xc7\x0a\xae\xc3}y\xbf1\x1e\x16:\x80\x17\ Fw\x8a\x1c:\x8a\xd8!\xdc\xfa\x22\x87\xe1F\x9e\xc3\ p\xf7\xeb\x1f\x18.{d\x0fOVJ\x89]\x0f\x07\ +M\x14'\x8f\xad\xe2\x0dm\x03\xa8\x99S\x98lB\ \x97\x830\x90\x0f\xce\x8b\xae\xbd\xd7\xe4\xc6\x0e\x80I\x00\ Qs\xdd\x0a\xa5(\xa1>\x0a\x90\x90\xebLy\xdcK\ ;\xee\xa5\xed\x81e\x16\x96y\xbc|\x85|\x85\x99\xc4\ \xc4E>\xc2DpD\xc0\xad\xc15\x92\x04\xc3\x0d4\ \x83=qA\x5c\xf0S\x9c\x02\xad\x0b\xde\x0d\xaa\x1b\xa9\ N\xee(\x1a#\xe0.\x12\x14\x05\xf8\x10E!H\xad\ \xe9vj\xdc\xe3[\xbc\xe5{\xb8\x09\x22\xfb\xdb0\xc1\ \xd7\x07Z<\xf0\xa2w2\xf8>n\xa8\x8f[\x9f\xc5\ \x037~O\x83\xdfB\x89\x22\x1e\xdc\x01%\x19jB\ \x0fHq\x8d\x0e\xda_\xcf\xf4\x81\xa5\xba\x13XL\xab\ \x10\x89\x03\xbc\xe3^\xa6\xe2\x19\xb2\x1b*\xc5\xbe\x0a\x8f\ \xca\x80w\x1c\x98\xc7x\xc7ua\xc4\x98O\x05\xe9f\ \x1d\x1e\xe7\x1d\xa7\xa5\x94%\xc2\xf2\xe1\xee\xb6\xf1+\x8c\ 2N(\x97.2\xff\xf84 \x8c3\xc4\xc0\xf5\xfa\ \x10\xae\x11b&\x7fR\xca\x07]\x0c\xe4S\x04l\x0b\ \xdd\xe1:\x12\xb2\x1e\xf3=\xd0zA\x0c{\xf2\xec\xbe\ p=!\x8a\xa8\xfb\x85k`F\x8fO\x11\x19\xdb\x0e\ 7\xf7W\x1e\x8e\x02\xae$R\x95\xf20a\xbc\x0cq\ \xa9/\xa9\x94\x94+\xd7\xa3\xa0\xb2\x98C\xf8=yT\ \xfd\xbfE\x0dw\xcf\x19\x5c\x07\xf0\x0ah=e% \ 9\x80 \xeaz\xdc\xcc_\x0a\xd0w\x86}A\x98b\ \xad\xd8\xf9 \x91\x04\xad}\xbf\x1e\x91\x04Jt\xb0a\ \x00\x9f\x14\x94l\xd4%\x14l\x93\x93\xa0\x9b\xdc`\xe1\ #\x89D+A38A\xba\xc1!\xe1\xc0\x87\x8a\xfa\ \x09\x8c\xda\xac\xf9p;\x8bh\x14lor\x1eh\xd4\ \x81\x22w2\xea\x89\xfd\xdd\xd3\xa8\x03(b\x8f\xaev\ \xb6{\xaf\xb4\xa3D_\xd3\xee\xcdS\xef:x\x8fZ\ \xe7\xfe?\xed;l(\xdd\xff\xd3\xce\xc3C+f\xef\ [\xcd\xec|\xdd5s\xeb\x9d\xcf#U\xcd\xa7C\xf3\ \xc6\xd4^5\xef\xc9\xcdk\xec\xc8\xbc\x0a\x7f\xd1L\xe5\ \x22l\xe66\x0f\xa7\xda\x86=\xe0\xbb\x8a{U\xc7E\ \x96G:\xaf\xbb\x84\xfdu\xba\xaa\xc8\xb8:o\xf0\xa2\ ;;3j\xd3\x8f\xfa\xfb\x8b\xcb0\xca\xaeAb\x9b\ \x9d\x9f\xb3\x0cd$7\x9b\xadt\xb9\xafh\x93\xe1\xac\ \xbb\x80\x0b\x11 \x9a\x9e\xaeE\x9e\x03\x88^\x12\xdeh\ X\xc8THU\xbf\xf0*.\xb3\xebin\xf0(\xf3\ \x85\xde|0\xca\xc6\x0b\xf3r\xda[\xac$;_n\ R\x98g\xbd\x8b\x0bs\xc0\xa0o\x80\xeb8\x85\xf5y\ \xd5\x11\x09\xcc\xd8\x16\x0a\x15E}lB6\x99\xf7&\ \xc5r\x9d\xd8lv\xdd\xec\xee\x9a\x85\xcbx\x16\x7f\xd6\ \xd1:SiH\x8a4\x9c{\xd3$\xbb\x08\x93\xfe\xd9\ [\xbd\xb8\xd4\xe3O:\xbf\xc8\xc2<2l*\x93\xee\ \x00P+fyc\x8eR,oL[G\xedM\x03\ Eh\xfd\x96Q\xcf\xe6\xe6T\x85=\x9b\xb2\xb6\xfe\xab\ \xb8\x88/L\x22\xd6\x9a\x0c\xd0\xa6!4F\x1b\xadf\ \xf2\x15\xbd\x19\xdd\x98K\x91\xa5\xc9\xcd&\xd9\x8a\x8b\x01\ \xcf\xe7\x9b\xad7\xab\xd6\xdal\xb6\xad\xc5\xb6\xcft\x19\ Fa\x19\xaeM\xa7n\x01\xbf\xc0j@\xf2h2\xfa\ \xf5\xed\xbb&\xc1\x1c\x8fG\xff\xc8\xf2O\xeb\xe4\xd0\x10\ \x84\x17\xd9\x02\x84\xdc\xe4\xbc\xe6\xac\xc3xd\xfcQX\ \x9e\xc73\x80\xdb\x9c\xcd\xf8n9K\xc0\x88\x9b\x8e\x0e\ \xb1\xc1x=\xe8j\xd8\x5c\xaf\x8e\x9b\xf4\x9e\xaf\x88\xc6\ \xb3\xd8<4\xfc\xad\x8c\x93\xe4G\xc3\xa4\x95\x08W\x83\ \xc6e\xa2\xcf\x7f\x09\xcbK\xef\xb72\x1b\x7f\xb2\xdcW\ \x8d\x1d:X\xb4>'\x08s\x0f\x05\x1eb\x96\xcc\xb6\ u\xa8r\x0d\xd1&\xce\xd2\xf3\xd6\xa1\x92I\xae\xf58\ \x8c\xae\xf5\x85\x9d\xd7u\xfc)\x1e\x82\x86\xea\xa5?\xbf\ \x9c\x7foY\x9d\xbd\xc9\xcbk\x80\xcc\x8e\xda\x8c\xd1\x19\ y\xbe\xb8H\xe2\xe2R\xe7\xe7-\x08\x0c\xd4o\xa6M\ f\xbd\xbd\xaew\xc0\xfb\x877o\xfb\x16e\xc4\xbe\xfd\ \xb8\xa5\xec\xe1e\x86\x8c# \x8d'1\xb4W\xe3\x0e\ \x8b|<\xfc)\x8b\x86\x06\xbf\xe1\xfbE<\xfc\xb5\x92\ G1\x8c\xc7YZ\x0c\xd7\xc0\x9acIv\xf4\xd60\ ]\xec\x8c\x1b(\xee\xb3<\xe7\xc3\xfb_>\x90\xef\xee\ \xb8\xcaM~\x86[\x12\x8fuZh+\xbe\xa2\x92\xdf\ 4]X\xc1\x8d\xb39\x94J\x93r\x98\xe8\x02\xc2\x9c\ \x7fY\x1a]m=\xd4Y\x0d\xac\x1e\x82\xec\xc5\xa2\xcc\ \xee&\xb1\x7f\x85\xd3\xfc\x06\xcc\xf9\xdf\xce\x9bD/C\ \xd0\x93\xdcyo[\xee\xb8\xbc\x9e\x09XZc\x9au\ y\xd6\xb2\xdc\xd3am\xda\xf6n\xba6y\x1b:\xb6\ <\xa8=ov6\xf8`:\x9d\xad\xdei\x9e-\xe6\ \xb3,\xd2\xd5\xe3\xb5\xab\x986\xfe\xb2o\xb3\x84P\xc6\ \x15\xe3\xd5\xce\x03g\x90$\x10\xe1\x12\xe9K&\x15R\ \xae\xf41\xe2\x81h'n\xd6\xc5\xda\xa0\xd6,r\xba\ F\xc7\xf6\x06P\xff\xb7*\xd5>\xceA\xcd\x13.<\ ()$'\x84\x13\xd7c>VX\x22LO\xda~\ k\xda\x16\xdd\x8a\x05\xe7t\xd0n\xddf\x82!\xd9B\ T\x04\x81\xe5\x84aI\x98\x06\x8c\xb9\x1e\x87<\x0e\x13\ \x9b{a\xe6+\xc2\x03\xa2\xda\xec\x80\xe1\x1c\x8c\xa8\xa3\ .\xebS\x80)`l\x5c\x1cD\xe8\xb1\xf9\x0d\xbat\ \xad|)M!_\xcar\x0f2\x82\xab\xb0\x5c\xe4\xba\ \xbb[P\xaf\xc5\xf02E\x1f\xd9\xe8\x83\xae\x9f\x1c\xe5\ R\xee\xfc\xdd!\xd8I\x1cH\x07\xb9s\x05\x7f\x9c\xcf\ \x1b\xa4\xd5\x96\xc2\x04|\xee\x08\xbc\xf1\xab\xed\x93R\xea\ \xe4\xb5\xe9m\xbd^\xb0\xb7\xf9\x22\xd1\xb0\xa2\xf43d\ W\xaf\x8b2\xcf>\xe9\xd1K\x8a\xc8\x85\xdd\xcf4\xb7\ \xabtbD\xea[3\xf2\x7f\xb28\x1d\x81\xbe\xa5Q\ \xdd\x0a^_\xe7\x09\x04\xffr\xc4\xea\xb6(\x84\x84+\ \xcf\xc3\x1b\xc3\xa0\x1b\x06\xfa\x11\xde\xbf\x08[\x17?\xfb\ *zE\xc4\x14\x88\x08\xe4\x948D\xba\x18\xf5\xcb\xa8\ \x165\x08\x03?Hgvk\xe2C!6\xf5\xf31\ \x22L\x03\x97\x1b\x88\x19w>8\x9c\x83\x7f2\x10\xd3\ =\x10\xab\xa3\x80\xb8>\xe8r|\x88*\x17<\x0aQ\ \xe0O\x181\x1a\x0b\xbe\x90\x08\xe7\x9f\xbb\xf0d\x88\x1e\ \x03\x9ef5\x0dV\xcd!\xa2\xbdXYx\x1e\x86\x15\ 6\xef\xf6$\xa2\xdce\x81/\x90 \x014\xb9T\x1a\ sg\xaetl\xfd\x8e\x01E(\x07Mq\xbf\xd7\xf2\ [\x87*\x8f\x05\xc8\xe6\x00\xc8S\x03I\x15 \xc5\x11\ \xc3.\x870/$\xe1\xd0\xe42\xe1p\xeaR\xe2\x1b\ \xffi\xb0$\xd8\x05\x9c!\xe9`\xc1^\x0b\xf7\xb6\x82\ \xe9\x9f\x06\xe5S\xe7\x02T\xf6\xe1\x07F\xca\x901X\ B+/\x08\x8e\x11|\xe2\xa6\xd9\x1e\xa1\x0bz~H\ \xd9f_\x0bR\xc8\xaf\x04D\x96\x95+\xec\x8d,\xb7\ \xe7&\x8c<{\xe4<\x02\x90Y/\xc8\xdc\xa5\xc2\x80\ \x1c\x18\x90!\x15g\x00\xb2\xdc\x8b\xf1\x9f\xe0\xa0\x8e\x00\ \xad^+_\x85\x1b\x97\xd2u\xac!\x0c\x0a\x00\x17\xae\ A7\xd1\xe1\xb8=M\x84\xecl\xe7\x0c\xa7\xad\x1b\x9d\ $\xf1\xbc\xe8l\x18Usk\x8e\x19A9)\x09\x0b\ ^\xaf\x0di{\x93z\xcb\x8e\xaa\xf5l\x85\x95\x1aJ\ LE7\xdd\xdb\xae\x05\x89\x1f@@\x09\x98\xacjA\ %\x19\x0a\xc0{z\x14\x22\x0e\xa5\xd2\x94\x85p)9\ \x12\x82\x9et\x06\xb3\xbb\xc0\xc4W\x5c\xca\xa0[\xa2\xd9\ w\x02P@2\x90S\xa7#_\xf6\xbcm\xb0\x1df\ \xdb\xd8\xa7\x04\xe1\xd6;\xdb\x0e\x8c\xbd\xb5t'i\xb8\ \xad\x9a\xc6\xdc\xa7\x9ccS\xc4+N\x14U\x07T\xd2\ \x1b\xa1\xf4+\xa8\xa5[o:V\xbf\xc7\xad\xa6=\xfa\ \x05x\xfb\x03\xeai\x8f?\xfb:\x1e\xa7\xa2\xf6\x8e\xa2\ @\xd9QS\x1f\x81\xb6\xe3\x84\xc8\xb6.\xd8sm\x80(\xed\xbe\ }k)\x08\x18p\xa2_\x81\xe8\x99\xc2\x18\x0bs\xf8\ \x15\x07A\x800;\x19\x9c\x9f\x96\xb0\xf0\xb4\xa3\xd4\xb5\ k\xc83\x03\xbd\x99\xf7\x96V\xda\x87\x80c\xb7\xfc\xdb\ 1\xf1\x9dS\xdf\x10o\xfcY\x8f\xa89\xdd\xc7(@\ \xd9\x96&\xf6\x09\x1f\x9c\xbf\xfd\xf9\xdd\xe9\xd0r>\x87\ \xbf\xb0\xe4F\xa3\xba\xfe\xedp\x9fuK\xf43\x1fd\ \xec2\xd6\x97DSF\xc5\x86\x0a\xf8*\x080\x0b\x98\ 8H\x13\xee\x18\x05\xf7\xe9\x8c9\xb1\xe6x\x90\xcf3\ \x1a\x10\x13\xfc\x99\xcf\x89\x00\x019\xe0\x0b\x94O\x19Q\ \x829T\xfaTI\x84T\x00A\xcb\x0f8\x16\x94:\ \xe6\x03\x01\xa4\x18\x14\x04\xaeW\x93b\xc7\xabh1x\ \x8d\x8aT8^M\xeb\x82\x9fvf\x8e\xf2\x03)\x95\ p\xb9/\x11\x81+g\xec\x10\x9f\x10\x0e\x09\x87\x07\xce\ P\xe0\x00\xaa\x0af$\x8a\x859rM\x05\x027\xcf\ |\xca\x03PC\xeaspEP\x0c\x03i@\xb99\ ~\x8b)\xb8*\xeax\xd8\xe7\x08|\xa5\xcb X(\ $%L\xc7\x0f\x88\xc0\x04Zp\x00N6\x80\xb9X\ N\xd8\xad\x18)\xc7[q\xe2\xe6\x8b5\xcbJ\x98\xa6\ \x15/\xafa\xe6\xad\xb8as(\xdf\xb2#N\xcd\xcd\ \xab\xd8\x05N\xcd\xcdk\xd8}\xde09\xa3r\x14I\ \xd1\xf6q]5\xdc\x19\xb8\xee\xa69\x1d%9\xdc\x89\ \xd8`kN\x80#L\x18\xc5\xae0'\x9a\x99\x90\x8e\ \xfd\x9c\x8fSl\x8e\x19\x81\xb5*\xac6?o1\xcb\ \xe0\xb8s0\xe6\x0e&\xd5\x9bX\x1c7J\x04r\x12\ \xce\xa8\xa9\xd2\xcc\x15\x85\x12\xc4\x03\x95V`I\x06%\ \x0e\xaa\x83\xf8\x0e\x90:Y\xceW\x0e\x13\xf7\x91\x12\xc4\ \xc0d\xf6\x9c1\xd8\x89\xa7|\x05q\xc7*\x93\xf2\xc1\ s\xec\xd2\xa5\xceF\xe1\xd3\xc1t?\xd7\xdfM+\xeb\ \x8f\xc2\xee\xef\xd7\xef\x98s\xde\xea\xd7!Z\xfb\x02\xec\ \x94\xbb\x12A^'\x980^]\xf8\x822\xc5\x1dp\ \xcf\x90\x9ea\xf0\xa7\xcc\xb7\x16n>\xfb\xe0LI\xf0\ \x83@#\x183\xde\x5c\xf8\x5c\x82#\x03G\x08T\xe0\ \x00\xd9N\x8f\xd6\x11\xd5\xce:\xe1^\xba*\xab/v\ [\xd0\xda\xd7%\x0c\x83\xb7\xdd\x84\xb6\xf8\xef\x22\xcc\xf5\ \xbd\x94\x15B!5\xbe\x0d\xdc;s\x85\xf41c\x8c\ C\xa4\x83\xc4\x14\xac\x05C\xf8#\xe6\x03g\xd6\xf5q\ \x0d\x06\xe8\xb9]\xdf\x9f\x85\xd3O\xc6\x80)\x97\xe6\x13\ \x9f\x16N-\xf0\xa4\xf49\x06OHw\x00\xd5\xd9\xd2\ y\x06\xa8\x9a\xef\xb2[P\xad>Y\x02W\xa5\xee\x03\ \xd5c\xe4a\x0fS\xbe\xe7\x0e)G\x88\xe9c(\xaa\ \xc7\x9f\x15\xd6\xbe\xfa\x821z\xd2\xc5\x99\xf9,\x10\x04\ \x09\xfa\xa5\xaa\xee3;\x84>\x94e\xc07P\xa6F\ \x9b\xa1\x16}6\x07\x81\xa9\x8f9\x15\x98\xb9\x011a\ \x1cJ5\xc7\x14_\x18+\xc4Lh\x87I+\xb9G\ \x95\xbd'\x09Q\xd5.\x8d\xfdsj>S:\x7f\xf1\ ?'\xc3\x9e\x10\ \x00\x00\x0a.\ \x00\ \x005\xc0x\x9c\xedZ\xebo\xdb8\x12\xff\x9e\xbfB\ \xe7~iq\x96\xcc\x87H\x89\xde\xb8\x8b\xc5\x15{(\ \xd0\xc3\x02\xdb\x16w\xf7)P$\xca\xd1E\x96\x0cI\ \x8e\xed\xfe\xf57\xa4\xde\xb6\x1c?\xea\xa4{\x8f\xa4\xa9\ \xad\x99!)\xfef8/\xe9\xf6\xe7\xcd\x226\x9ed\ \x96Gi2\x1ba\x0b\x8d\x0c\x99\xf8i\x10%\xf3\xd9\ \xe8\xeb\x97_Mwd\xe4\x85\x97\x04^\x9c&r6\ J\xd2\xd1\xcf\xefon\xffd\x9a\xc6_2\xe9\x152\ 0\xd6Q\xf1`|L\x1es\xdf[J\xe3\xedCQ\ ,\xa7\x93\xc9z\xbd\xb6\xa2\x8ah\xa5\xd9|\xf2\xce0\ \xcd\xf777\xb7\xf9\xd3\xfc\xc60`TP<\xccF\ \xdc\x1e\xa9\xab\x07\x19\xcd\x1f\x8a\xe62\x0af#\x90\xa3\ \xc8e\xfa\xbas\x83\xb8\x14\xa8f\x9ev9\x161\xde\ \x22\x0f!?d\x94\x8a\xb1A\x10!&\x82\x7f\xf6;\ =(\x87m-\xe1o\x1a\xa4~\xe2-`7\x1eY\ \xde}J\xfd\xc7\xdf\xd3\xc2+`\x1a\x0b\x16\xd5\xa2\x80\ J\x92O\xebUf\xa3C\x9bR\xd3\xe4K\xcf\x97\xf9\ \xa4\xa6w\xc6\xd7\x0b6\xe3k\x82\x95\xa7\xab\xcc\x97!\ L!\xadD\x16\x93\x0f_>4L\x13YA\x11t\ \xa6\xd9\xc40w\xef\x1e\xd6T\xaf\x8e\x85\x10\x13\xcdm\ \xa5\x87\xe4\x08Bh\xd2\xdf\x1a\x5c\x9d(\x99\x05\xe1\xc1\ \xb5\x11\x99\x00\xc4 a\xe6\xdb\xa4\xf06f\x92\xbf\xe9\ \x0c\xf5\xfdf\xa4\xaf\x8c%z\x92~\xbaX\xa4I^\ \x82\xd7\x13\x0eZ\xe1\xe5*\x8b\xb5D\xe0Od,\x17\ 2)\xf2\x09(x2z\x0f\xf2\xb7\x81\x0cs5\xae\ \xb4\x13u\x05\x86\xe2h\x1ep\x01\x0e\xe9e\x7f\xcd\xbc\ \x82q\xa5\x5c)\xd9\xe7P\xd7\xc1\xd5\x18\x18\x95\x17\ \xe9\xb2\x96\x05K)\xb61h]\x11M?\x8d\xd3l\ \xfa\x86\x004a\xf8\x93&\xa5\xa0\xf1\xa8\xd8N\xf1O\ \xa3vL\x1a\x86\xb9\x04\x13F\x1d\x9a\xb6c\x18\x01k\ \xd1\x9119}\xb50\x0c\xfd\xd0?a5<\xbc\x1a\ kV\xbb\x9d\xf4\xb7}6J\x9c\x9e\x81R\x18\x82\x01\ \xa1\x8bQ\xe2\xecL\x94\x84\xf4\xdc\x8bQ\xe2\xce1\x94\ \x16^\xf6(\xb3\x06\x9d\xda\xe9\xc0p\xffQ\xcd\xf3K\ \x96\xa5k\xf2I&A\xb3@\x9a\xa9\xf1\xe0ZVE\ \xda\x103\x19\xfe\xb3\xbbg\xb8\xfeG\xf7\xfa\xc0\x5c\xd5\ \x96Spra\x9c\xae\xa7OQ\x1e\xdd\xc7\xb2\xd5\xc7\ \xd2+\x1e\xfa;S\x14\x9b9\xf6h\x0f\xb80\x8ac\ 3[\xc5r*\x9fd\x92\x06\x01\xe0\x96\xa5\x8f\xd2\xd4\ \x9ex\x8a,NXMR`\xfc+\x8d\x92i\x96\xae\ :\xf7c\x18\xb0\xc2\xdf\x0c\xd7r\xb0\xcb\x5c\xc7\x1d\xdb\ \x16\xa2\xd4\xa1\x8c\x18&\xb1\x08r\x88+\xd8\x18Y\x08\ s\x84)\xe1\xb5\xa4k\x8fM\x10E\xd8A\x8ek\xf8\ \x86\x89-\xc7f\xb6\x00:\xb1\xa8C\x10GB\x13)\ \xb3m\xe4\x8e\x99\xc51\x08` ri:c\x17\x96\ \x01\x0e5\xbeun\xa5\xc8\xbc$\x07\x0f\xba\x98\x8d\x16\ ^\x91E\x9b\xb70\x03\x1e#\xf8\xd5_\xca\xabw]\ \xcd\xd7\xfa\xf3\xd3$\x91~\x91f\xa6\xbf\xca\x9e\xbcb\ \x95I\xa5\x8d\xd6\x18J\xbd\x9fg\x04\x10%\xb3\xe2j\ f\xd0\x9f\xedrC\xc0\xff\x8b\x86P\xdb\x81\xfa|-\ +\xf8\x92E^2\x8f\xe5\xc7\xe4\xf3\xf7\x1b\xc1\xd0d\ \x97\xda\x00\x17\xa4\xaf\xb7\x85\xc1,\xc7\x19#\xc3t-\ \xce\xc6\xccP\x07\x06\x19\xd5\xc5\xb7\xd3\x0df\xfa\x06\xa1\ \xca\xddw\xec\x07/\x8ba\xe5\x00`\xb1|\x0b\xd9\x0d\ \x19\xab\xff\xae\xa0\x93\x93\x83\x98@\xe7\x041\xdbv\x19\ \x09.\x0db\x02\x9d\x17\xc4\x10\x22\xfc\xa4\xc4b0\x88\ \x09t4\x88\x9d\x1e\xea\x998\x03%\x14|WB\xc4\ \xf1Y(9\x81\x8bC|y\xa8\xa7WD\xe9\x9c\xb4\ \xf1;\x13\x22vn\xda\xe8HG^\x8c\x12;\x9a6\ 6\x07u\x09u\xd7\x12N*\xa4\xf4\x8d\x83\xaa\xcb\xab\ b\xabJ\xa6\xbe(m\x83G[\xbb-\xef6\xb3\x11\ \xb5\xb8k\x13\x0e>~\x0a\x8e\x09!\xce\x85 \xf0\x1d\ \x0f\x0e\xd8\xceF&q,\x08\x19\x0c\xc2\xc0\xd40m\ f\x11\xe1\xb8\xb6}p\xc87\x18bs\x08@\xccq\ \x98\x1a\x82!\xc00as><\xa4\xba_\x13\xbc\xf7\ 3\xcd\xa0\x89\xd8'\ Y\x08\xc6C\xbb\x87@m\xca0\x04\xa1z`y\x05\ '\xf3\x11*\xe0\xc2\x8b\xfb3\xb6\xf2\x14\x0eL\xcb\xcb\ \xef\xaa\xb4`6*\xb2\x95l\x180\xa0\x90Y\xa2\x92\ 6H\x8c\xe0\x0fv\x86Q/\xdc\xfb\xe9r[\x22\x9d\ G*\xf7\xb8\x83\xa8.\x0b\xffA\xb6H/\xb3ty\ \xa7\xc3x\xd7\x83h\xc2\xdd\xf6.\x931\xe4\x0a^\x9c\ \xb7\xcb\xaa\xd6\x88\xee$\xb50'\x90\x0bx\xf1\xdd\xbe\ \xdb+ \xe3\x19 \xeb5WIT\xe4\xbb\x93C\x22\ TD\xb0\xf6]\xb3\xb9>?\x5c\xe5\xf2\xaeHc\x09\ )\x88\xdfO#\x0e8\xfb6\x0b\x89c\x0d\xbe\x17\xaf\ \xbdm\xde\x83\xbe?\x14\xfc\x88sN\xccT?\xf4\xc2\ h\x00k\x8933\x8b\xfd\xd5\xd0\xa9\xd1\xc0\x81\xcc\xfd\ *\xe51\xbeje\xb4;\xdb\x85Y1\x15\x82\xedV\ 3\xea`\xb0\xb1\xc9 @\x10\x8b\xe9\x0b\xa6\x89/\x97\ \x12W\xf5\x0a\xb2\x5c]\xaf\xa8O8\x95\xafV\xb4\xe2\ \xcf\xd7\xeb\x5c\xf4\xe7\xba\xb4XA\x18\xfdq\xd4\xa2K\ \x15\xddO\xd05\x0bVW\xaf\xa7\x9a\xab\x9e\x9a\xcf\xd7\ \xe9' \xa86\xfe0\xea\xa9\xb5\xa3>_U7\xe4\ \xaa\xba\xd9\x9d\xedb\xdd\x10v:\xe2\xff=\xbd\x1ed\ \xd1\xca\x0a\xa8:\xa7\x5c\xbcj\xb7\xe7\xb7U\xf1\xe9z\ \xed\x9e\xdel\x97\xda\x01\xa6;g\xf4\xc7\xf6{tl\ \xb3\xdcW\xd0\xc9\x87\xc8[\xa4Ip\x9dn\xfc\xd0d\ \x17\x9f\xcc\xdd\x0e\x9c\xf2\x9a\xa6c!\x07#\x87\xbbF\ \xf5\xd5\x15\xb6N\xcd\xcb+\xe6\x0a\xa3\xfcfs\xa2\xe9\ \x9d\x11\xaf\x9a\x91\x98p2_\xe5P\xd5\x98_\xc9\xbb\ \x0eOw\xb1\x12]\xfa\x9f\xac\xc4\xd7\xd2a\x95\xa4_\ 1\xaf\xbc\xc6\x11\x84t\xdf\xfd\xe3$.f\xad\x18\xfd\ \xc5\xbcR\xc6\x7fz\x03S\x9c\xf7DW\xfd\x5c\xdc\xc0\ \x14\xe7>\xd1\xdd_\xed\xe4\x92\x15V\xbb\xb4\x19~\xac\ \xf2\xd7/YL\x1f\xc0Jg\xa37\x03-\x80\xc3p\ C\x1d\xdd:\x8e\x0d\xd6\x1d3\x07\xdbn\x1b\x12\xb6@\ $\x90I\x09A\x9dv\xa6\x0d\x99\x8d\xa8ma\xca\x09\ jmwK\x86d\xe7\xd5Z_\xcb6\xc9*\x97\xd9\ g\xf5R\xcao\xc9\xd7\x5c\xbeh\xb3\x0d\xc3\x0d\xaa\xf6\ \x9f\xeayq\xcb\xa5\x0e\x12\xce\xf7v\xde(\xb6\x84\x0b\ \xe9\xa5\xea\xe3\x11d\xd9\x98\xbb\x84\x9d\xde\x8dt`\x80\ n\xf32\x8b\x01L.>\xd6\x8f3\xe9w7\x86\x9e\ 1\x0f\xfd\xec\xe1\xb9\xd3\xc8E\xcf<\x08\xb5(\xd4Y\ \xb6\xdb\xb3\x0f\x00\x17H\x9c\xdb}\xfb\x10\x16\xe5\xc8\xa6\ \xacg\x1f\xfb\xb2\xcf\xdb\xc7\xae\xd4\x97\xd6ai\xdf\x15\ {\x85|k\xea\xfa\xeaEqr\xf0\xb38u\xcf\x06\ \x02\xc9,S\x8dpDv\x81\xc2.w:s)\ \xa0\xa0$\x81\xd2\x95\x08{\x17\xa8\x1d\xd9\xab\x00\x05G\ \xc2\xc5\x90\xf3\xb5\x80\xddN\xd4KJ\xfa[s\xce\xd4\ \x9bc\xc1S$\xd77\xcd\x8e\xef\xbdf\x91\xa57\x97\ \xda%\x02N\xa5O\xac\x18\xf7i\x16\xc8\xacf\xe9\x86\ 3\xef\xb1*\xafY\xbe\xcbw\xb3s\x5c`\xd6\x86\x8f\ \x86\xf9\xf9\x83\x17\xa4k\xb0\xc3]\xe6\xb74]\xa8\xa7\ 5\x02\xaa4\xdb\x11\xbbl\x1f\xbc\x01\x81\xe3\x07%\x1b\ s\xf6\x98\xb0\x1e#\x16p8\xd9\x9b\x18\x82[\x06h\ \x9a\xb1\xb7\x95\xb0)\xfdQ\xab$\x7fH\xd7\xf3L\x81\ \xd3ig7#\x15\xc7\xbc\xbfO7\xc3\xec \xf5W\ \xea\xdd1\xb3j\x1f/7\xbb\x12\xeb(\x81\xcd\x9a\xd5\ \xbb\x88\x18\xea\xd0\x03\x12\xf5\xfb\x89\xaeM\x0fHl\xda\ \x08\xb8\xcb\xda\x1ef-\xbcM\xb4\x88\xbe\xc9\xa0\x8dh\ mN\x95x\xcbgv\xa7\xd9\x90\x8b\xc8|\x98\xafM\ \xe8A\xfa\x90!\xdc\xa7^\x16\xa8\x9b\xd8\x0d\x04\x0a\xc0\ \xda\xaaK\xc7\xbf\xd9*Z\xef *\x02E\xb4}\xca\ \x17\xcb\xa6\xb1\xdf\x9e\xbe\xe1\x07\x0f2\xf1\x80\x18\xec\ P\xd5\xbdW\xf2jvu\xd4\xf34\x89\xb7\x95\xd8~\ \xc4:\xe7F\xdd\xd7\xbb\xd1F\xac\x5cE\x05D\xbeK\ \xdc\xf6\x88pK\xed\xb9V\xa9c\x97\xd39\x9b\x84!\ \xe1\x22\xda\xc6\x862\xc4m\xbayVI\xda\xb69\xe1\ \xedd\xdf\xbdh\xfaB\x16^\xe0\x15^\xebkj\x0a\ E\xa21\x8b,\x08\xa7\xbf\x7f\xf8\xb5\xc9\xd6|\x7f\xfa\ \xf74{l\x13-%\xe0\xdd\xa7+8\x08M\x06\xa9\ \xde\xc7\xf4\xa7\xca\x0bz\xc5\xfbh\x01F\xa7\xde\x1f\xfd\ \xf3f\x11\x83\xd7k\x18=a\xa5\xc0v\xd2r\xdaL\ \x96\xaf\xc4\x0e\xbe\x03\x1a\xf8\x8bH\x0d\x9a|. \x11\ \xff\xa8\x16\xe9f\x95\x93\xeaF\xeb\xc4\xaf\xb3\x0f\xc8\x91\ \xab\x8d\xea\xaby\x0b@\xcf\xcd4v\x16{\xf7\xea)\ \xd6'\xc54\xf6\xb8\xf3,]-\x17p\xe4\xaa\xe1\x15\ \xbf\x18\x8a\x03hL\xc9\xbb\x1a\xd9y\xcfLm\x8a\x0e\ \x15,;i\x98\x97\xf9\xc3\xc5\xc84I\x13\xd9\x14!\ DR\x9b\xf2~\x11\x22,\xcc\x1c\xa8F1\xed\xf6\xf7\ `\x1be{o\xb8\xe9WS\x01n\x99\xc5\xe0\x99\x8a\ \xa9]\xd3\xda\xe4\xbf\x22\x04\x1e\xc4\x8a,\xf3\xb6\xdd\x9b\ \xd1\xd42I\x9fB\x1eR>\x82\xe2\x9dM4%\x19\ \xb2\xbb\x15C\xb3q\x15G(\x19\xe4l\x0fq2\x15\ {\xc4 g\xbb\xc3\xd1\xa5\x1f\xc7\xa0\x1c\xe3\x17\x83\x88\ 1\x11\x0620\xfcRE\xea\x12J\xa1c\xcdG\xce\ \x18v\x88]\xd5\xd9\xf5\x15\x86\xe0Km[\xb5@!\ \x83\x15\x8a\xcc\xdfuM\xf6\x1aZ\x0fh\xe0\xf8a_\ \xeb\xd4B\x8cp\x8a9T\xbc\xe5\x8f\xfb\xe3\xd5\xcf\xaa\ [a\xe2\x80\x1d\x98\xf4\xff\x96pD\xd9\xb6\x14\x1e\xda\ 9\xe2\xfc4\xd5jm\xee\xa9q\xafG\xb3>\xc6\x0f\x99\xef-\xb4\xf5v\x96\xe7\x8b\xf1\ h\xf4\xf4\xf4\xe4\x84e\xa3\x93\xa4\xd3\xd1\xb5e\xdb\xef\ \xaf\xaen\xb2\xc7\xe9\x95e\xc1\xac \x9f\xdd\x0e\x04\x1b\ \x98\xbb\x99\x0e\xa7\xb3\xbc\xbe\x0d\x83\xdb\x01\x8c\xa3H\xf2\ \xe2\xbe\xf5\x80x3\xa0\xa4\xd4\x9d6r\x82\xac\xc5ODI\ iO\x9e\x8d\x92p\x0f\xa14\xf7\xd2\x07\x9d\xeeXN\ \x98\xee?\x18:\x7fI\xd3\xe4\x89|\xd2q\xa3vI\ j\xe6\x83Q]\xe6I\xdd\x98\xea\xc9\xbf\xda{\x86\xfb\ \x7f\xb6\xef\xf7\xd0*\xb7\x9c\x80\xfcO\xa2\xe4i\x5cZ\ \x8d\x86\x1f\xc6\xc2twfZ\x18w\xd9`\x07\xb8I\ \x18Ev\xba\x8c\xf4\x18\xf4)N\x82\x00pK\x93\x07\ m\x17\x81\xc9\x189\x82\xf0\xaa\xc9\x80\xf1\x9f$\x8c\xc7\ i\xb2l=\x8fe\xc1\x0a?[\xd2q\xb1\xe4\xd2\x95\ C\xe6 J]\xca\x89\x05f\x8a \x97H\xc5\x87\xc8\ AX L\x89\xa8FJ6\xb4a(\xc2.r\xa5\ \xe5[6v\x5c\xc6\x99\x82v\xe2P\x97 \x81T\xd1\ H9cH\x0e\xb9#0\x0c\xc0\xd0(\xb4\xed\x0e%\ ,\x03=\xd4\xfa\xdaz\x94\x1c,E\x06q\xc3\x1c\xcc\ \xa5\x97\xa7\xe1\xea-P\xc0C\x04\x7f\x8a\x8b\xcd\xddu\ \x9b\xf3\x8d\xe7+\xa2\x9f$\xb5\xfde\xfa\xe8\xe5\xcb\xb4\ \xb08\x8d0l\xf8~\x9a\x10@\xd0\x98\xe6\x17\x13\x83\ .\xb5\xf3\x05\x01\xff\x11\x05\xa1\x92\x03\xf3\xfdZR\xf0\ %\x0d=\xe3\x89?\xc6\x9f_.\x04}\xc4\xce\x95\x01\ \xa1\xc86\xdf\xb8\xe3\xbaCdX%\x01c\xeb7\xcb\ \xe6\xd6\xbf\x8f\x17\x94\xf1\x1b\x84J3\xdf\x92\x1b\xbc\xc8\ \xfb\x99R\x84\x1co!\x96'\x17`\xc3\xd1~K\xa1\ S\xfc\x16c\x92\x93\xe0\x5c\xbf\xa5\xd0i~\x0b!\x22\ \x8e\x8a%z\xfd\x96B\x07\xfd\xd6\xf1\xde\x1d\xc2\xd2\x13\ \x9e;xQ\x0c$\xf0I(\xb9\x81\xc4\x13|\xbew\ \xa7\x17D\xe9\x94H\xf1\x851\x10?5Rt\xb5\xab\ \xcfF\x89\x1f\x8c\x14\x9b\xf4\x07\xa2\xf0\x85)\x1a<\xea\ \xda&U\x05\x86M.\xd2\x1dJ\x1b\x7f\xd1T/\x16\ w\xab\xdb\x01u\x84dD\x80Y\x1f\x83-BH\x08\ \xa50\x5c\xe3\xde\x09\xeb\xdb\x81M\x5c\xc8\x82$\x07\xcb\ ?\xb6l\xc6\x1d\xa2\x5c\xc9\xd8\xde)_a\x0a\x13\xe0\ s\xb8\xebr3\x05\x83O\xe1\x8a\x09\xd1?\xa5|^\ \x1b\x0c\xf644\xb5\x15b\xc6\x81'4\x1f\xb7;\xc7\ \xd8\xd5\x06\x09\x8aT\x93\xae~\x0b\xaclL\x1dF\x05\ \x11\xc5#1\xc7%\xe6\xe69\xb0\x10t*\x0en\xd6\ \xec\x1c\xed\xc3\x871`\x82\xeb\xd2\xc3Tw\xc0\xe1&\ Bp\xa9\x81_9\x82r*\x0e \xc4\xbe-B\x85\ \x1c\xa0C\x90`P\xca\xe7\x00!\xf2\x192\xbd\x02\xc2\ J\xf9\xa0\xcfo\x1f\xe3\xbe\xed\x9f_K\xa0\xa0/'\ \xd4\x12~\xb6 \x14\x02\x1f\x0f[\xfb\x04\xff\x0d\xdb\xae\ \xfe\xc42B\xb3\xc9?l\x19\xe1\xf4\xe2\x19\xd8\x1d\xf7\ \x14\x1fk>\xf4L\xef\x01k\xa9\x13#\x91\xdd\xd5\x8e\ .\x9e\xb9\x10\xdc_$\x83\xc6\x17M\x9e\xb6\xa9\x9d\x19\ 8S\xa5\xf8v\xe0l4\x89\x0f!Z\xb61qx\ q\xf3-#\xe72\x9dA\x8e,\xd2\x19\xf3\x0d\x0a\xfc\ j9-\xfe|\xb9\xc2F\x97\xd6\xb9\xb9\x0c\xc2\xe8\xfb\ `\x89\xc9f6\xa5\x06s\x01\x19+yM\xb6\x5cT\ [>_\xa6\xd4\x80 +\xf9.XSq\xc6|\xbf\ *_\xc8E\xf9\xb2M\xedl\xbe\x10~<\xe2\xff?\ % \xe4\xd0R\x0a\xa8\xd1Q\xa1^\xb5\x08\xf4\xcb2\ \xfft\xb9*P\x87\xda\xb9r\x80\xe9\x8e~\xfe\x1ee\ \xf0a\xaf\xc0\x87\x0f\xa17O\xe2\xe02\x85\xf9>\ bgk\xe3n1\x0e|\x88\xeb \x17#WH\xab\ \xbc\x94\x8a\x01c\xd0ps\xc7\xa5\xb26WL\x80=\ {\xdd\x80\xc3\x06\x05|\x15\xdd\xa9`\xbe\x90\x11\xed'\ w6\xdf$\xfd\x1f\xe3\xdbk\xb1\xad\x0c\xb9/\x18)\ ^B\xd1 x\x97\xdfG8bWL).\xec\x0b\ \xc5\xef\xc7\x97.\xd5i\xc7\xb7\xe6sv\xe9R\x9dz\ |\xbb\xbb\xda\xd1\xc9'\xacvn\x19\xfcP\x0e_\xbc\ G4\x9e\x81\x84\xde\x0e\xde\xf4$\xf3\xfb\xe1\x86\x8c\xb8\ \xb1\x13+\x5c\xd4\xca\x5c\xccdc\xf4\xd7\xd0H >\ R\x8a\xba\x0d\xa5\x15\xb9\x1dP\xe6`*\x08j\xe4v\ M\xfa\xc6N\xcb\xb5~\xdd\xd4G\x96\x99N?\x9b\xf7\ \xae~\x89\x7fm\xd7/\xbeA\xa1\x0d\xc3\x03\x9a\xc2\x9f\ )w\x09GR\x17)\xf7\xa5U7\x8a\x1d%!h\ 45<\x82\x1c\x86\x85$\xfc\xf8:\xa4\x0b\x13\x8a\x02\ /w8\xc0$\x91:T\x8b\xb3\xe9\x8bk<\xcf\xc8\ Gq\xec\xf0\x9c:\x0a\xd5\x91\x0fB\x1d\x0a\xa9\x13\x93\ \x1d\x01\x01t\xa1I\x08\xd6\x15\x10\xe5P\x81\x18\xe5\x1d\ \x01\xd9\x1d\xfb\xbc\x80l\x8f\xfa\xd2X\xac\xc2xE^\ \xae\xdf\xda\xe4\xfa\xdb\xa2\xe4\xe2gQj\xab\x06\xe0a\ K\x87\x9b\x0a8\x22\xdb0a)\xdc\x16-\x03\x13\xe4\ \x19\x90\x8b\x12\xc5\xb6a\xda\x1a{\x11\x98@#$\x86\ \xa0\xee0\x5c='\x94X\xec3\xcd\xcdY\x1f\x96\x07\ \xaco\x8f]\x95\x9e&\x94mY\xf1\xfd\x96\xb9Y\x8c\ \xa0\x03\xc6\xb7\xef\xe4T+\x0f\x89}\x8b\x9dd\x98\x0d\ \x9f\x18x\xc9\xae\xd83\xec\x08\xa9\x04\xc7]\x1bJ\x1d\ \x0c\x1a\xdf\xf2\xf2FP\xa8t\x88\xc9t\xf8s\xfck\ \x82\xa5\x8d?w\xcb\x98\xc9\x95\x8c\x82\x05\x96\xc6S\xbb\ \xca|\x8aLUID[9\xcbqb\xd3\xc7n*\ \x8f\xd2\x0d\x10\x0b\xbb\xc7\x5cn\xab\xd9Y\xf2f\xef}\ \x8d\xb3-q\xb6xU\x99\xb3\xc9\xef*u/1d\ \xc5\x8b\xb1\xfb!\x87n\xd2\x91OS\xeb\x00\x07'\xba\ v\x0c\x92\x07\x0a6\x9c\xb1-\xc1\xe7\xe5\xe8\x8e!\xeb\ \x19|\x09K\x06O&\x95r!\x7f\xc1\xd2Q\x14R\ \x19\x5c\xd9\xb4\x9b\x91y\xb1\xb8\xb8\xaa\x03\x07\xf3\xb6w\ `\xde\x18\xbf\xaa\xb7~\xef\xd5\x8b-\xbc\xa9.\x18\x05\ \x80m\x82\xbc\xb2\xe3>I\x03\x9dV]\xc5\xe9\x99\xe8\ t\x95\xbc\xdc\xbc\x98\x7f\xd5\xe5\x8f\xa1Z\xf7\xa3\xfe\xfe\ l\xe6\x05\xc9S\xf3\xc2k\xdd\xf95I`\xc3\x10b\ \xd5\xe5\xb0\x86\xef\x10\xda\x10\x01\xa8\xd2:xk\xfa\xd6\ \x85\xdf\xc5\xdc\xfc\xd9\xe9\x5c\xa6)\x00jG\xdeZ\xc3\ ~\x8a\xafJn\xb3Y\xf24M\x0d.\xadS\xb9z\ \xa6\xe9\xb1\xef\xef\xcd\xdb\xf6}\xddA\xe2/\xcd\xab\xde\ vy\x06\xb6Xm\x8fx\x0ac\xd8\xa7]\xfe\xa6\x00\ 3\xb6\x83F9\xa2\xfa\x9d\x01\xd8\xb6=#V\x8dn\ ow\xad\xf7w\xcd\xbdU8\x0f\xbf\xea\xa0Q\xd5\x0e\ #\xfc\x99\xf6!]\xb9O\xbc4h\xa8\x94\xcf\xcb$\ \xech;N5\x98T\xb2\xba\x89KWk\xd3\xd6\xd1\ /\xd3\x00F\xbaQ:=_\xd4\x07\x8e\x8dV\xf5\x1f\ \x89\xea\xd8\x83\xc6`\xab5\x8b\xbdE9\xdeP7\x1a\ \x9c%q\xb4.\x87U:\xb0+\xfaE\xfb\x5c\xe7^\ \xe0\xe5^\xa3\x07U\x0bE\xaa\xb2\xb67i0\x19\xff\ \xfd\xc3O\xb51\xf4\xfd\xf1?\x92\xf4\xa11qf\x80\ w\x9f,\x81S\xb5\x856\xef\xf7\xfbc\xa3\xa9^\xfe\ >\x9c\x03\xa8\xe6\xf7\x08\x7f^\xcd#\xd0\xc8\xba\xa33\ \xd8\xe0\xd6\x10\xdd\x90M\xf5\xe6'\x16\xbd\xbf)\x08\xfc\ yh&\x8d>\xe7\x90\xf5~4\x8b\xb4\x8d\xf6\xa8|\ \xd0\xca\xac\xb6\xf6\x01\x09i\xb9\xd1\xe2n\xda\x00\xd0\xd1\ \x83\x9a\xbd\x91wo\xce\x8a?\x99Nk\xa7w\x9a&\ \xcb\xc5<\x09t9\xbd\xec\xcf\xfbl\x15\x1aR\x88\xb7\ \xcaG\x9av\xa4\x83\xe3&p\xec\x9d\x0b\xae\x1d!\x8a\ 1s\xd5\xb0\xb8\x06\xd5\xe1\x88_\xef\xab'4\x5c\x87\ g3@\x816\xfa\xe6sB\x0a\xdf\xf5ziq\x82\ \xcfw\x8a\xb1\x90\xfe1*0\x13C\xe5\x08\xa2\x84\x90\ \xccbxH-a\xaa\xd7\x98\xbbCb\xea\xb4\x0aQ\ bqc\xc7 \x96\x15C\xa2\x1cn\xe2Z\xb5\xaf\x90\ 1~\xa3'D\x11\xf5\xae\xa8j49}]\xd2`\ \xc4#\xdeVI\x03r;U8\xf3\xfa\x00\x00\xf6\xb7\ \xa9\xff\xf7\x9f\x0aT\xad L:\x8d\xc00\xe4\xe3z\ z\xe0\x81-,\xbc\xfa\x98@\xaaR5\xf7\x06\x09[\ \xc5\x9c\x93\x80-\xca>\xe6\x0d\xf2-`9$\x0fL\ \x092\x84\x90\x11\x11)\x08\xb1 \xc8\x14\xd8\xa5j\xc8\ !\xbc\x13\x0c\xd1=\xd8\xc5I\xack\xa4J\x1c;H\ \x91m\x8c\xee\x97y\xbe\x03Q\x81\xca\xb3\xfb\xd6Q\x14\ .\xb2\x96\xea\xa6`~ \x1d.\xa2\xd0v\x06\x90\x1a\ _\xb5]\x0e)v\x8e\xf8\x9es\x9e1\xa8\xfb\xdb\xdd\ \xb8\x85\x5c\x9f\x22\x12;\x1b}\x810xi\xea\xad\xdb\ \xd8\x1e\x16\x91fc\x85\xb3\xc6\x8e\xe2\xa0\x1f\xed0\xd5\ 8j\x0c\x99\x02\xc4V\x9d\x83\x8e\x96\x15H\x93\xbc0\ \x01\x8c_\xb7\xb1\xf7\xc3\xd4\x8ft?\xa2\xf6\x9e\xd7\xa7\ \xcf\x90\x8c\xdf\x150\xeaH!\x11\xdb\xc2\xab\x0a%\xa9\ jK\x18\xe0\xa8Z\x91\xf4tc\xec\xe1\xeb\xc6\xb8\x9f\ \xf7W\xff\x05\xeb\x17\xb9\x88\ \x00\x00\x0b\x02\ \x00\ \x00>\xc0x\x9c\xedZ\xdbn\xdbH\x12}\xf7Wp\ \x95\x97\x04\xc3K_y\xd1\xd8\x1ed'H2@\x82\ \x1d\xcc%\x0b\xccb\xb1\xa0\xc8\x96\xc45E\x0a$e\ K\xf9\xfa\xad\x22)\x8a\x14)\xd9\xf2\xd8\xb13\x1b%\ \x86\xcd\xeabW\xf7\xe9\xaa\xd3U\xdd:\xffa\xbd\x88\ \xb5k\x95\xe5Q\x9a\x5c\x8c\xa8IF\x9aJ\x824\x8c\ \x92\xd9\xc5\xe8\xf7\xdf\xde\x1a\xeeH\xcb\x0b?\x09\xfd8\ M\xd4\xc5(IG?\x5c\x9e\x9d\xff\xcd0\xb4\x1f3\ \xe5\x17*\xd4n\xa2b\xae\xfd\x94\x5c\xe5\x81\xbfT\xda\ \xcbyQ,\xc7\x96usscF\xb5\xd0L\xb3\x99\ \xf5J3\x8c\xcb\xb3\xb3\xf3\xfczv\xa6i\xf0VX\ \xcc/F\xb6\x18\xe1\xd3\x5cE\xb3y\xd1\xde\x1a\xbe\x18\x1d\x9a'\xf6\x9c/\xfd@\xe5\xd6\ V\xdez\x7f;\x86\xe6\xfd\xad\xc0\xcc\xd3U\x16\xa8)\ t\xa1\xccD\x15\xd6\x9b\xdf\xde4\x8d\x061\xc3\x22l\ u\xb3\x8e\xa1\xef\xce\x18nxi\x9dz\x9eg\x95\xad\ ;\xed!=F\x08\xb1\xb63\xae\x87v=\xbb\xa3f\ \x16N\x0f\xda&\xcc\x02\xd4A\xc3\xc87I\xe1\xaf\x8d\ $\x7f\xd1z5\x08\x9a7\x03\xf4\x9f\xe8Z\x05\xe9b\ \x91&y\x05^G9\xdc)/WY\x5cj\x84\x81\ \xa5b\xb5PI\x91[\xb0\xe6\xd6\xe8\x12\xf4\xcfC5\ \xcd\xf1\xbd\xcau\xf0\x89K\x9b\x96m\xd0\x0ap(?\ {\x97\xf9a\x04\xefUz-\x1f\x0a\xd28V\x01x\ \x9f\x1f\xdf\xf8\x9b|\xd4(@W\xddW\x1d\xce\x88[\ \xf7\x0a\xfd\xe6E\xba\xdc*\x83{\x15\x9b\x18\xfc\x02\x85\ \x06t\x99f\xe3\x17\x81\x00w$\xdf\x97\xa2\x14|\x22\ *6c:\xda\xbd\x92N\xa7\xb9\x02\xc3\xa4%+}\ \x1f^\x00[\x14\xa2\xd1\xba\xbb5\x15\x86\xe2.\xd6\xe8\ \x01k\xac\xb1vnu\xe7}\x1c\xc7\x01\x98\xa8'F\ \xb7\xe2|`f\xad!\x11v\x0bXw\xc6\xfc \x8e\ mk\xe2\x16\xb0\x06\xacM\x03\xe5\x89\xe9!k\x7f\x12\ G\xc1]n\xf0\x07\x00\x92\xba\xee\xe9@raK_\ \xdc\x03H\xea\x91\xd3\x81t\x987\x0d\x1e\x08\xc8\xdb\x02\ \xbb\xe4\xc7\xf1\x00n\x00\x9b+m\xe1::5\x05\x15\x8cr\xfb\ Qq\xdb\x0f\xf1A\x873H\xd7\xe5\xfan\x04R)\ \x86\x5c\x8e\xd1!\x97\xe3\xe4/\xe0r\xe0R\xdc\xf0n\ \xf19\xc3\xb9\xbf\xd7\x91!\xafc\xb5\xd79\xcf\xde\xeb\ \x06\x01A\xc4\xee\x9eQ\xc0\x96\xe8\xbb\xce\xfd\xf2\x170\ &\xb1z8!\x81\x19\xdeq\xee\x96\xc0\x809\xc7x\ \x92\x0d\xe38\xf1\xd9\x1e\x11\x0f\x1cf\xac\xf2K\xaa\x1b\ \xd4\xa9\x9c\xd1~\xf5\xd0\xdc\xda\xe8>\xea\x9eq|\xaf\ \x05\xe8\xa4\xfd\xe8\x0cuofeC\xcc*\x1af}\ D\xe0`K\x90G\x99\x0f\xe2\xdc\xeeN\x8ctf\xb4\ 7\x15!:s\x90w\xf5\xd7\xdb\xa6\xd8\x1fW5\xf0\ \xbb3\xc2`V\xf8\xfd\x1d\x19\x08\xac9\xb0\xb7\x9e\xc2\ @\x83\x847do\x88\x82\xc0\x9eg\xd8_\x9e\x82n\ w\x07*\xc5\x9f\x8f\xa3\x85_d\xd1\xfa%\xd1\x0d\xf4\ q\x82\x1f\xae\x97\xee\xce\x80>\x1c\x9d\xe8\x94\x9b\xd4\xb1\ \x85Cu\xee\x9a\xdc\xf1\xe0\xb3GL\xd2\x14.sZ\ \xa3)\xbd\x91\x9a\x12u\xbd\x8eS\x1a\x8cW\xca\xde\x9e\ s\x9a\x02M?q\x80Q\xe9>\x1c\xa2-8\xf1\xdf\ \x0eR&M\x1b\xcf_\xe8\x0e\xda.\xa0\x86g\xda\xae\ gK\x9bw\x10\x05z+;$N\x07RN+m\ \xdaA\xd4\xb6\x9f\x1a\xca\x07 \xf9\x1aJ\xe30\x96\x8d\ K\x1e\xc2r\x00\x9d\xc3P\x0e\x01\xff\x1c\xb0\xb4\xc9\x03\ \x06\xfa\xedq\xde8\xe8\x9e[\x0e\xc4\xee\xc1@\x1f \ \x85g\x13\xe7\xd4\xa5\xa72\xe7}\xb6\xdbj\x8a\xe7\x16\ \x1e\x5c\x96\x7f5G\xd5x\x9a\x1c\xe2\x89\xf4Y3\xc2\ \x89\xdfX[\xfa3U\xee\x5c0\xb3i\xf9\xa9\x1b&\ i\x16\xaal\xdbd\x97\x9fNS\xbd\xb9UG\xfeg\ ] \xb1\xd7\xa6\x9d\x0c\xb7\xe7s?Lo`\xa6\xfb\ \x8d\x9f\xd3\x14\x5cH\x9a.\xe76'\xde~s\xb0.\ K(\xc1 o\x96\xbdF\xb0\xc7!\x1f\xb5=)y\ \xafq\x95e\x00\xbe\x11\xfb\x1b\x05\x93*\x7fmC5\ \x9f\xa77\xb3\x0c\xc1)\xb2\x95\xda\x7f3L\x83\x15\x1e\ \x18\x1b\xabj\xe1\x96\xeb}\x0d|\xd7\x98L\xf0\xd0\x7f\ \xa8\x83\x9b(\x81\xc9\x1a\xf5\x95\x05\x15\xa2\x07I\xad\xb1\ \xbd\xc6pEo\xf8\xb5\xc6z\x97\xaa\xec7m\x0e7\ -\xfcu\xb4\x88>\xabp\x97x4*y\xe2/\x8d\ Y\x9cN\xfc\xf8b4\xf5\xe3\xbc7\xfc\xd2K\xe6*\ \xb8R\xd9$\xf5\xb3\x10\xed\xd4!\xd5A`\xeb\x94\xc5\ \x06\xef7\xd6\x1b\x94ub\x03\x05\xbc\xcd\x84j\xb1\xc4\ \xab\x8e\xf2\xb2h\xe7\xd4\xd7Q\x1eM0\xb3ja\x09\ \xba\x89\x0f\xc2pO\x8a\xa3\xaf\xf5\xb1w\x8c\xbe\x92\xc7\x07_\x1e<\ =\xf9\xe8{K\x22\xaa\xfaV\xb9\ 5O\x17\xca\xda\xa4Yte\xbd\xa9\xcf\x9es\xeb\x83\ ?\xb1\xded\xfe\xb4\xa8O\x93\x82\xb9\x9f\xcc\xd42K\ \x97\xe62\x99\x1d\xe9x\x1d.\xa3\x8bQ\x99*AQ\ \xed\x1e\xd1\xdc\xeci>\xb0\xa7t\x18\xac\xb9\x99?y\ \xd1Od\xb5\xdb\x17\x1dr$,\xe7(\x855f\xa6\ \x0bQ\x07\xe5]\xb9\xf6\xd2t\x08\xb3=\xee@F\x80\ \xa88\x90t\x82\xda{\xa8a\xd0\x17\xdc\x03\xbe\xd0\x89\ \xd9o\xdep\x0ao\xb8_!o,\x907\xc0G\xe6\ Z\x99\xe2 o\xd8P\xc11MR\xacwQ\xf2\x1e\ T\x0e9\xcb7\xea\xf8J\xa9c\x81\xd4\xc1%\xae;\ \x9e\x00\xb5\xa8C\xba&\xf3\x1cN\xec\xd2\x0b\xf0\x90\xa3\ f\x0fL\x87=\xf4\x06q\x90:\x0c\xf9\xcd\x1f\xeeI\ \x1e\xc7\xce\x5c\x9f+y@\x9dT\x92\xc7{L:*\ \xf2\xc0c\x0cx\xdar\x07\xd2\xcaA\xee\xf8\xb6\xd5|\ \xad\xec\xf1\x11\x0fB\x81=\xdec\xe2\xd1e\x8f*\xeb\ \x10\xa5\x1b\xd0}\xf2\x00w\xf0\x8e\x90G\xe7\x14\xf0\x9b\ C\x9c@\x1f6\xf9\x0a\xe9\xa3\xca=\xaa\xcadW\xb3\ \xd8\x14\x8b\x16IK\xc9'\x8d\xdb\x87\x1c\xe6N\xa7\x9a\ \xff\xe7\xce\xf2,\xd9\xa3\xca=0\xdd\xa4^\xbfl\xd9\ \xa6\x1f\xad\xb2E\xf2\xaal\xf9t4\xf7\xb0\xff\xca\xfe\ P\x1fk\x95\xbf\xce\xf1\x1b6\x97g\xff\x03p\x1f\x15\ \x15\ \x00\x00\x0a\x9f\ \x00\ \x004\xddx\x9c\xe5Z[o\xdb\xc8\x15~\xf7\xaf`\ \xe5\x97\x04\x15\xa9\xb9s\xa8\xb5\xb3(\x1a\xec\x22@\x8a\ -\x9a,\xda>\x1949\x94\xd9P\xa4@R\xb6\x94\ _\xdf3\xc3\xbbD\xd9\x92\xa2\xb8ik\xc7\x91\xe6\x9c\ \xb9~\xe7\xcc\xb9\x917?o\x96\x89\xf5\xa8\xf2\x22\xce\ \xd2\xdb\x09v\xd0\xc4Ri\x90\x85q\xba\xb8\x9d\xfc\xfe\ \xf9\x17[N\xac\xa2\xf4\xd3\xd0O\xb2T\xddN\xd2l\ \xf2\xf3\xbb\xab\x9b?\xd8\xb6\xf5\xe7\x5c\xf9\xa5\x0a\xad\xa7\ \xb8|\xb0>\xa4_\x8a\xc0_)\xeb\xcdCY\xae\xe6\ \xb3\xd9\xd3\xd3\x93\x13\xd7D'\xcb\x17\xb3\xb7\x96m\xbf\ \xbb\xba\xba)\x1e\x17W\x96\x05\xa3\xc2\xf2\xe1v\x22\xd8\ D\xb7\x1eT\xbcx(\xdbf\x1c\xdeN\xa0\x1fE\x92\ \x9bvo\x83\xb8\xeaP\xcf<\xefs\x1cb\xbdA>\ BA\xc4)\xf5\xa6\x16A\x84\xd8\x08\xfe\xb1\xb7fP\ \x01\xc7Z\xc1\xdf<\xcc\x82\xd4_\xc2i|\xb2\xba\xfb\ k\x16\xa7\xe5\x87P\xa5e\x5cn\x1dX\xd5\xf4\x05X\ \xd2b\xde,s;9t*=O\xb1\xf2\x03U\xcc\ \x1azo|\xb3b;\xbe!8E\xb6\xce\x03\x15\xc1\ \x14\xcaIU9{\xff\xf9}\xcb\xb4\x91\x13\x96ao\ \x9aM\x02s\x0f\xf6\xf0D\xcd\xea\xd8\xf3\xbc\x99\xe1v\ \xbd\xc7\xfa\x11\x84\xd0lx4h\x1d\xd93\x0f\xa3\x83\ k#2\x03\x8c\xa1\x87]l\xd3\xd2\xdf\xd8iq\xdd\ \x1b\x1a\x04\xed\xc8@kK\xfc\xa8\x82l\xb9\xcc\xd2\xa2\ \x02o\xd09\xec:\xaf\xd6ybz\x84\xc1L%j\ \x09\xc2)f \xe1\xd9\xe4\x1d\xf4\xbf\x09UT\xe8q\ \x95\xa2\xe8\x16h\x8akx\xc0\x058\x94\x9f\xff\x9a\xfb\ a\x0c\xe3\xaa~U\xcf!\x87J\x17\xd7c`TQ\ f\xab\xa6/\xa8J\xb9M@\xea\x9ah\x07Y\x92\xe5\ \xf3k\x02\xd0D\xd1O\x86\x94\x81\xc4A[\xe6\xf8\xa7\ I7&\x8b\xa2B\x81\x0e\xa3\x1e\xcd(2\x8c\x80\xb5\ \xe8\xc4\x9a\x1d\xbfZ\x14EA\x14\x1c\xb1\x1a\x1e_\x8d\ \xb7\xab\xdd\xcc\x86\xc7>\x19%AO@)\x8a@\x81\ \xd0\xd9(\x09~\x22J\x9e\xf2\xe5\xd9(\x09\xf7%\x94\ \x96~\xfeE\xe5-:\x8d\xd5\x81\xe1\xc1\x17=\xcf\x9f\ \xf2<{\x22\x1fU\x1a\xb6\x0bd\xb9\x1e\x0f\xb6e]\ f-1W\xd1?\xfbg\x86\xf6?\xfa\xed\x03s\xd5\ G\xce\xc0\xcaEI\xf64\x7f\x8c\x8b\xf8>Q\x9d<\ V~\xf90<\x99\xa60\xee\xb2\xc9\x1epQ\x9c$\ v\xbeN\xd4\x5c=\xaa4\x0bC\xc0-\xcf\xbe(\xdb\ \x98\xe29r\x04\xe1\x0dI\x83\xf1/0\x8c\xf3<[\ \xf7\xf6cY\xb0\xc2_,\xe9\xb8Xr\xe9\xca)s\ \x10\xa5.\xe5\xc4\xb2\x89C\x90K\xa4\xc7\xa7\xc8AX\ L\x89hzJ6\xb5\xa1+\xc2.r\xa5\x15X\ 6v\x5c\xc6\x99\x07t\xe2P\x97 \x81\xe7\xb1\x9f.\x12\xf5!\xfd\xf4\xedJ06\xd9\xb9\ : <2\x94\xdb\xd2\xe2\x8e\xebN\x91eKG\xf0\ )\xb7\xf4\x85AV\xdd\xf8z\xbc\xc2\xcc\xaf\x11\xaa\xcd\ }O\x7f\xf0\xaa\x1c\x17\x0e\x00\x96\xa87\x10\xdd\x90\xa9\ \xfe\xef\x0229\xda\x89y\xe8\x14'\xc6\x98\xe4$<\ \xd7\x89y\xe84'\x86\x10\x11G\x05\x16\xa3N\xccC\ /:\xb1\xe3]=\xf7N@\x09\x85\xdf\x14\x10\x09|\ \x12Jn(q\x84\xcfw\xf5\xf4\x82(\x9d\x126~\ c@\xc4O\x0d\x1b]\xe5\xaa\xb3Q\xe2/\x86\x8d\xed\ E]A\xe2\xb5\x82\x9b\x0a!}k\xa0\x9a\xfc\xaa\xdc\ \xea\x94i\xd8\x95v\xce\xa3K\xdeVw\x9b\xdb\x09u\ \x84dD\x80\x8d\x9f\x83aBH\x08\xcf#\xf0\x1d\x8f\ \x0e\xd8\xdeNl\xe2:\xe028\xb8\x81\xb9e3\xee\ \x10\xcf\x95\x8c\x1d\x1c\xf2\x15\x860\x01\x0e\x88\xbb.\xd7\ C08\x18\xee1!\xc6\x87\xd4\xfb\xb5\xc1z/b\ \x9dZ\x9a\xdd\x80[\xd4?\xeep\x8c6\xb2\x1d\x12\x14\ y\xa2C\xf0;`ec\xea0*\x880[b\x8e\ Kt\xe39\xb0\x100=\x0e>W\x9f\x1c\x1d\xc2\x87\ 1\x10\x82\xeb\xd2\x97g\xdd\x03\x87\xebp\xc1\xa5\x1a~\ \xcf\x11\x94S\xee\xc9\x170b\xdf\x17#\xa3\x09\xe8%\ P0\x5c\xcb\xe7 !\xf2\x99iFU\x84\x1d\xa5!\ \x18\x8f\x9d\x1e\x1c\xb5\xad\xa2\x08:5\x03\xab\x16\xdc\xcc\ /\x90\x01\x97~2\x9c\xb1\xebO\xe1\xc2t\xbc\xe2\xae\ \x0e\x0bn'e\xbeV-\x03\x06\x94*Ou\xd0\x06\ \x81\x11\xfc\xc1\xc90\x1a\xb8\xfb [m+\xa4\x8bX\ \xc7\x1ew\xe0\xd5U\x19<\xa8\x0e\xe9U\x9e\xad\xee\x8c\ \x1b\xef[\x10C\xb8\xdb\xde\xe5*\x81X\xc1O\x8an\ Y]\x1a1\xa5\xa4\x0e\xe6\x14b\x01?\xb9\xdb7{\ %D<#d\xb3\xe6:\x8d\xcbbwr\x08\x84\xca\ \x18\xd6\xbek\x0f7\xe4G\xebB\xdd\x95Y\xa2 \x04\ \x09\x86a\xc4\x01c\xdfE!Ib\xc0\xf7\x93'\x7f\ [\x0c\xa0\x1f\x0e\x05;\xe2\x9e\xe23\xf5\x0f=\xd3\x1b\ \xc0Z\xde\x89\x91\xc5\xfej\xe8Xo\xe0B\xe4~\x91\ \xf4\x18_43\xda\x9d\xed\xcc\xa8\x98z\x1e\xdf\xcdf\ \xf4\xc5\xe0S\x9b\x83\x83 \x0e7\x0dn\x88\xdf/$\ \xae\xf3\x15\xe4H\x93\xaf\xe8O\xb8\x95\xaf\x96\xb4\xe2O\ \x97\xab\x5c\x0c\xe7:7YA\x18\xfd8b1\xa9\x8a\ \xa9'\x98\x9c\x05\xeb\xd6\xeb\x89\xe6\xa2\xb7\xe6\xd3e\xea\ \x09\x08\xb2\x8d\x1fF<\x8dt\xf4\xe7\xab\xca\x86\x5cT\ 6\xbb\xb3\x9d-\x1b\xc2\x8fG\xfc\x7f\xa7\xd6\x83\x1cZ\ k\x01\xd5\xf7Tx\xafZ\xed\xf9m]~\xbc\x5c\xb9\ g0\xdb\xb9z\x80\xe9\xce\x1d\xfd\xcf\xd6{\x8cos\ \xe4+\xc8\xe4}\xec/\xb34\xbcL5~l\xb2\xb3\ o\xe6n\x05N[M\xdbu\x90\x8b\x91+\xa4U\x7f\ \x95\x1e3\xa1y\xd5\xe2\xd2\xb3\xaaoL\x10C\xef\x8d\ x\xd5\x88\xc4\x86\x9b\xf9*\x97\xaa\xc1\xfcB\xd6u|\ \xba\xb3\x85(\xe9\x7f\xb3\x10_K\x86u\x90~\xc1\xb8\ \xf2\x12W\x10\xc2}\xf9\xe3\x04.v#\x18\xf3\xc5\xbe\ P\xc4\x7f|\x01\xd3;\xed\x89\xae\xfe9\xbb\x80\xe9\x9d\ \xfaDw\x7f\xb5\xa3SVX\xed\xdcb\xf8K\x99\xbf\ y\xc9b\xfe\x00Zz;\xb9\x1e)\x01\x1c\x86\x1b\xf2\ \xe8\xcepl\xb0\xa9\x98\xb9\x98\xc9\xce%l\x81H \ \x92\xf2<\xeav3m\xc8\xed\x842\x07SAP\xa7\ \xbb[2\xd6wQ\xaf\xf5{U&Y\x17*\xff\xa4\ _J\xf9-\xfd\xbdP\xdf\xb5\xd8\x86a\x83\xba\xfc\xa7\ k^\xc2\x91\xd4E\x9e\xfb\xad\x957\x8a\x1dOBx\ \xa9\xebx\x049\x0c\x0bI\xf8\xf1\xd5H\x17\x06\x982\ /w8\xc0$\xf1K\xf58\x9b~sa\xe8\x19\xf5\ 0\xcf\x1e\x9e\xbb\x8d\xc2\x1b\xa8\x07\xa1\x0e\x85<\x8b\xc9\ \x81~\x00\xb8@\x12\x82\x0d\xf5\xc3s\xa8@\x8c\xf2\x81\ ~\xec\xf7}^?v{}\xee\x0c\x96\xb1]\x89_\ \xaa7\xb6\xc9\xaf\xbe+N.~\x16\xa7\xfe\xdd\x00D\ \x98\xe5\xba\x10\x8e\xc8.PX\x0a\xb77\x97\x06\x0a\ R\x12H]\x89\xc7v\x81\xda\xe9{\x11\xa0\xe0JH\ \x0c1\xdf1\x80\x8d<\xaa\xc4\xe2\x90u\xee\x1e\xfaa\ \xf9\x82\x01\x1e1\xad\xd2W\x84\xb2\x1dC~\xd88w\ \x8b\x11\xf4\x82\xfd\x1d{\x84\xaa<\x1f\x89C\x8b\x9dd\ \x9b\xb5\xa4\x188\xca\xa1\xea3\xec\x08\xe9\x09\x8e\x87f\ \x94:\x18.}\xcf\xd9kU\xa1\xd2!:-\xe2\xcf\ I\xb0\x8b\x99*\x97\xee\xd6\xa1\x93+\x19\x05#,\xb5\ \xb3v=\xfdc\xd2ZO\x22\xdaKj\x8eS\x9c1\ qSy\xd4\xed\x00\xb5\xb0G,\xe6\xeeE;K\xdf\ `\xe2#4\xce\x16\xaf\xaas6y\x0d\xad\xbb\x99\xe9\ \xd7\x07\xcd\xb7\xd6\x03\xeaw:\xc3\xc7X=]\xb5\x9b\ \xba\xf7[)\xae\xfc\x852\xcb\x81\x8c\xaah\xa5f\xdc\ gy\xa8\xf2\x86e\x1e\x05\x89\x01\xab\xdeQ\xf5\x9a\xed\ \xd5P\x8ez\xd6\x96\x8f\xc6\xf9\xc5\x83\x1ffO\xa0\xe4\ \xbb\xcc\xafY\xb6\xd46\xae-\x00u\xea\xa1\x9f\xaf\x12\ \x07\x09\xfd\xbb\xc7\xdcV\xbe\x16t\xb05\x8c\x1ds\x9d\ \xe7\x80\x91\x9d\xf8[\x05\xe71\x1f\x0d\xfa\xc5C\xf6\xb4\ \xc85.\xbdgL\xedH\xcd\xb1\xef\xef\xb3\xcd8;\ \xcc\x82\xb5~\xa1\xd3\xae\x9f\xe9\xac6\xbb=\x9e\xe2\x14\ \xcei\xd7o\x08c\xc6\xf6\xd0\xa8{4o\x0d\xc3\x0d\ =\xd0c\xd3i\xe8.k{\x98\xb5\xf47\xf12\xfe\ \xaa\xc2N\xe1\x06\x82\x08\x1eT\x00q\xf7}\xe6\xe7\xa1\ \x9ee7\xbc\xd2\x084zZ\x85S\x9b\xad\xa6\x0d\xec\ \x80&\x80a\xe9.\x90Z\xae\xda\xc7e\x9d\xee\x8f?\ \xceS\xa9\x0f\xc4p\x87Z\xa4\xfe\xaa\xee\xafg\xd7\xda\ ^di\xb2\xad\xbbU\xf7\xe0f\xb6\xaf\xe8\x86\xbeT\ \xa5\x1f\xfa\xa5\xdfi}C\xa1\xc8k\x0f\x99\x87\xd1\xfc\ o\xef\x7fi/p\x10\xcc\xff\x9e\xe5_\xbak\xa9;\ \xf8\xf7\xd9\x1a\xe4\xd2Z\x15\xfd\xcen0\xd7v\xd6/\ \xdf\xc5K\x80P\xbfc\xfc\xc7\xcd2\x81\xfb\xd72\x06\ \x9d5n\xdd\xa4\xd5\xb4\xb9\xaa^\x9b\x1e}O8\x0c\ \x96\xb1\x1e4\xfbTB\xb2\xf6A/\xd274\xb3z\ \xa3\x8d)\xe8\x9d\x03\xf2\xa8\xfa\xa0\xa6\xb5\xe8\x00\x18h\ }+\xde\xc4\xbf\xd7O:?j\xa6\xb5\xc7]\xe4\xd9\ z\xb5\xccBU\x0f\xaf\xf9\xe5X\xac\x80\xa6\x94\xbcm\ \x90]\x0c\xb4\x83A\xe2\xd4n^%I\xbc*zx\ 4ip\x9b\x8f\xe9\x04u~\x0d\x11N\x14D\xa6\xd1\ \xcb\xd5\x9eKU\xc16 \x08\x81\x05\x16\xfd*0\x1c\ \xa4*\x02\xef\x95\x86\x01c\x957T\xd3H\xe0\xaa\x94\ s\xd6\xd0B\x1f\xccT\x9e\xfb\xdby\x9a\xa5\xaaO\xad\ l\xf8\x5c8\xd5>\x98l\x98\x9d\xa5\x1ez\x02\x93\xb8\ CzaS[\xd8\xfd\xe2\x8b\xb6j\x90\x04I\x84%\ \xeb\xbf\xe8\xaa\x0d\xda\x18=\xdf\x98\xc8\xc0%\x0c\xc2\x80\ >}k\xe8\x82PD\xfb\xb5\xf3\xb1J\x8a\x8b\xb0\xf0\ \x5c\xc1M\x18\x80\x09s\x99\xd4E\xef\x96\xdc\xa7\xf6\x03\ \xbf\xbe`k\xd1R\x09>\xbf\xa7\xed{\xd2=\xb0\x03\ \x8c$\x96\xdc5;\xd0\x15x\xce\xf0\xb4G\xeeS\x87\ \x05\x85\xea\xa4\x18\x10\x80\x5c\x94\xca!G'q\xcc\xd1\ \x11+!\x03N\x8d&\x87HV\x0c\x19\x9b\x03\x8c}\ \xa1\x0d\xf9\xbdb\xca\xfcZE\xc4#\xde\xc9\xba\x8a8\ \xa7\xf8G\xd0\xd5N\xc0\xda\x0a\xc6y\x90\x0c\xed\x15\xc0\ \x0a\xbe\x95\x83<\xdc!H\x8d\xa1hel\x07\xe0\x0e\ U\xae=\x12\xe4\xac\x0cC\xee\x80\xe5\x91c\xb4\xf4 \ \x09$\x9cR\xbc'=\xb4'6J\xc6\x05&\x89<\ ,)\x9f\x19Y\x1c\x90T-\xc7]II\xe6!\xc8\ \xcf\x8e\x93\xd4\x80\xfa\xb2\xa4\x06v}\xd1X\xf4Ee\ \xcb\xe1\xe3F{\x97wW\xff\x06\x05\xd1d\xdd\ " qt_resource_name = b"\ \x00\x05\ \x00o\xa6S\ \x00i\ \x00c\x00o\x00n\x00s\ \x00\x0f\ \x0bA\x15\x87\ \x00a\ \x002\x00p\x00_\x00U\x00p\x00g\x00r\x00a\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x1b\ \x0b\x8d\x8b'\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00A\x00d\x00j\x00u\x00s\x00t\x00C\x00o\x00n\x00s\x00t\ \x00r\x00a\x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00\x1b\ \x07kE\xe7\ \x00a\ \x002\x00p\x00_\x00S\x00i\x00m\x00p\x00l\x00e\x00A\x00s\x00s\x00e\x00m\x00b\x00l\ \x00y\x00S\x00h\x00a\x00p\x00e\x00.\x00s\x00v\x00g\ \x00\x1e\ \x08\xc2T\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00a\x00r\x00a\x00l\x00l\x00e\x00l\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x10\ \x03\xe1m\xc7\ \x00a\ \x002\x00p\x00_\x00E\x00d\x00i\x00t\x00U\x00n\x00d\x00o\x00.\x00s\x00v\x00g\ \x00\x16\ \x07\x9cs\xa7\ \x00a\ \x002\x00p\x00_\x00F\x00l\x00i\x00p\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\ \x00t\x00.\x00s\x00v\x00g\ \x00 \ \x09T\x85\xe7\ \x00a\ \x002\x00p\x00_\x00M\x00o\x00v\x00e\x00P\x00a\x00r\x00t\x00U\x00n\x00d\x00e\x00r\ \x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00#\ \x0a\xcb\xf9\xe7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00V\x00e\x00r\x00t\ \x00i\x00c\x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\ \x00v\x00g\ \x00\x15\ \x03\x1c\x1d\xa7\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00P\x00a\x00r\x00t\x00i\x00a\x00l\ \x00.\x00s\x00v\x00g\ \x00#\ \x05\xe1\xdeg\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00P\x00a\x00r\x00a\ \x00l\x00l\x00e\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\ \x00v\x00g\ \x00\x17\ \x02\xfe2g\ \x00a\ \x002\x00p\x00_\x00A\x00n\x00g\x00l\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x15\ \x0a`\x1c\xa7\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00m\x00o\x00v\x00e\x00D\x00e\x00b\x00u\x00g\x003\x00D\ \x00.\x00s\x00v\x00g\ \x00\x19\ \x03Z\xb2\x87\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00l\x00e\x00t\x00e\x00C\x00o\x00n\x00n\x00e\x00c\x00t\ \x00i\x00o\x00n\x00s\x00.\x00s\x00v\x00g\ \x00\x10\ \x06\xa2\x06\xc7\ \x00a\ \x002\x00p\x00_\x00T\x00r\x00e\x00e\x00v\x00i\x00e\x00w\x00.\x00s\x00v\x00g\ \x00 \ \x00F\x91\x87\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00A\x00n\x00g\x00l\ \x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x22\ \x01\xdb~\x87\ \x00a\ \x002\x00p\x00_\x00S\x00p\x00h\x00e\x00r\x00i\x00c\x00a\x00l\x00S\x00u\x00r\x00f\ \x00a\x00c\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\ \x00g\ \x00\x16\ \x07\xa9\x9b\xc7\ \x00a\ \x002\x00p\x00_\x00S\x00h\x00a\x00p\x00e\x00R\x00e\x00f\x00e\x00r\x00e\x00n\x00c\ \x00e\x00.\x00s\x00v\x00g\ \x00\x0c\ \x08\xa1\x9d\x07\ \x00a\ \x002\x00p\x00_\x00H\x00e\x00l\x00p\x00.\x00s\x00v\x00g\ \x00\x17\ \x0e\xbb\xdeg\ \x00a\ \x002\x00p\x00_\x00S\x00k\x00e\x00t\x00c\x00h\x00R\x00e\x00f\x00e\x00r\x00e\x00n\ \x00c\x00e\x00.\x00s\x00v\x00g\ \x00\x11\ \x08Sm\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00s\x00I\x00n\x00f\x00o\x00.\x00s\x00v\x00g\ \ \x00!\ \x04n\xc0\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00s\x00P\x00l\x00a\x00n\x00e\x00N\x00o\x00r\x00m\ \x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \ \x00\x0c\ \x0fH\x9d\xe7\ \x00a\ \x002\x00p\x00_\x00D\x00O\x00F\x00s\x00.\x00s\x00v\x00g\ \x00\x11\ \x09\xdb2g\ \x00a\ \x002\x00p\x00_\x00W\x00o\x00r\x00k\x00b\x00e\x00n\x00c\x00h\x00.\x00s\x00v\x00g\ \ \x00\x15\ \x0fJ6\x07\ \x00a\ \x002\x00p\x00_\x00D\x00u\x00p\x00l\x00i\x00c\x00a\x00t\x00e\x00P\x00a\x00r\x00t\ \x00.\x00s\x00v\x00g\ \x00\x17\ \x04{\x9eg\ \x00a\ \x002\x00p\x00_\x00A\x00x\x00i\x00a\x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x19\ \x00\xed\xf8'\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00i\x00a\x00l\x00P\x00r\x00o\x00c\x00e\x00s\ \x00s\x00i\x00n\x00g\x00.\x00s\x00v\x00g\ \x00\x1a\ \x0cja\xc7\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00T\x00r\x00a\x00n\x00s\x00p\x00a\ \x00r\x00e\x00n\x00c\x00y\x00.\x00s\x00v\x00g\ \x00\x0e\ \x0e\x0c\x0f\x87\ \x00a\ \x002\x00p\x00_\x00S\x00o\x00l\x00v\x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x0d\ \x05\xbc\xd6G\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00u\x00s\x00e\x00.\x00s\x00v\x00g\ \x00\x10\ \x07\xe3\x8a\xa7\ \x00C\ \x00D\x00_\x00O\x00n\x00e\x00B\x00u\x00t\x00t\x00o\x00n\x00.\x00s\x00v\x00g\ \x00!\ \x0c\xe2{\x07\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00n\x00e\x00C\x00o\x00i\x00n\x00c\x00i\x00d\x00e\ \x00n\x00t\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \ \x00\x17\ \x06!9\x87\ \x00C\ \x00D\x00_\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00V\x00i\x00e\x00w\ \x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x1d\ \x04\x98\xa3\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00O\x00n\x00L\x00i\x00n\x00e\x00C\x00o\ \x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x12\ \x09_\xf8'\ \x00a\ \x002\x00p\x00_\x00I\x00m\x00p\x00o\x00r\x00t\x00P\x00a\x00r\x00t\x00.\x00s\x00v\ \x00g\ \x00\x15\ \x0e\xcd\x98g\ \x00a\ \x002\x00p\x00_\x00C\x00h\x00e\x00c\x00k\x00A\x00s\x00s\x00e\x00m\x00b\x00l\x00y\ \x00.\x00s\x00v\x00g\ \x00 \ \x04,\x9d\xc7\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00n\x00e\x00s\x00P\x00a\x00r\x00a\x00l\x00l\x00e\ \x00l\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x17\ \x0c\x06\xf6'\ \x00a\ \x002\x00p\x00_\x00T\x00o\x00g\x00g\x00l\x00e\x00A\x00u\x00t\x00o\x00S\x00o\x00l\ \x00v\x00e\x00.\x00s\x00v\x00g\ \x00\x11\ \x03\xc4\x96g\ \x00a\ \x002\x00p\x00_\x00A\x00u\x00t\x00o\x00S\x00o\x00l\x00v\x00e\x00.\x00s\x00v\x00g\ \ \x00\x18\ \x0f\xa9@g\ \x00C\ \x00D\x00_\x00C\x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00C\x00h\x00e\x00c\ \x00k\x00e\x00r\x00.\x00s\x00v\x00g\ \x00\x14\ \x00\x80\x9b\xe7\ \x00a\ \x002\x00p\x00_\x00O\x00b\x00j\x00R\x00e\x00f\x00e\x00r\x00e\x00n\x00c\x00e\x00.\ \x00s\x00v\x00g\ \x00\x1c\ \x096fG\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00s\x00t\x00o\x00r\x00e\x00_\x00T\x00r\x00a\x00n\x00s\ \x00p\x00a\x00r\x00e\x00n\x00c\x00y\x00.\x00s\x00v\x00g\ \x00\x17\ \x0eI\xa9\x07\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00L\x00a\x00b\x00e\x00l\x00R\x00e\x00m\x00o\ \x00v\x00e\x00.\x00s\x00v\x00g\ \x00\x0c\ \x0e\x1a\x92'\ \x00a\ \x002\x00p\x00_\x00P\x00l\x00a\x00y\x00.\x00s\x00v\x00g\ \x00\x19\ \x02\xfd\x89\xc7\ \x00a\ \x002\x00p\x00_\x00I\x00m\x00p\x00o\x00r\x00t\x00P\x00a\x00r\x00t\x00_\x00U\x00p\ \x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\ \x00\x0b\ \x08Yv\xa7\ \x00a\ \x002\x00p\x00_\x00A\x00s\x00m\x00.\x00s\x00v\x00g\ \x00\x15\ \x0b+\x07'\ \x00a\ \x002\x00p\x00_\x00S\x00a\x00v\x00e\x00_\x00a\x00n\x00d\x00_\x00e\x00x\x00i\x00t\ \x00.\x00s\x00v\x00g\ \x00\x10\ \x0f\xf8m\x87\ \x00a\ \x002\x00p\x00_\x00E\x00d\x00i\x00t\x00P\x00a\x00r\x00t\x00.\x00s\x00v\x00g\ \x00\x1e\ \x0a\xcdcG\ \x00a\ \x002\x00p\x00_\x00C\x00i\x00r\x00c\x00u\x00l\x00a\x00r\x00E\x00d\x00g\x00e\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x1e\ \x0a@\xb7\xe7\ \x00a\ \x002\x00p\x00_\x00C\x00e\x00n\x00t\x00e\x00r\x00O\x00f\x00M\x00a\x00s\x00s\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x19\ \x09B\xef\xe7\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00f\x00i\x00n\x00e\x00C\x00o\x00n\x00s\x00t\x00r\x00a\ \x00i\x00n\x00t\x00s\x00.\x00s\x00v\x00g\ \x00!\ \x0b\xba\xafg\ \x00a\ \x002\x00p\x00_\x00D\x00e\x00g\x00r\x00e\x00e\x00s\x00O\x00f\x00F\x00r\x00e\x00e\ \x00d\x00o\x00m\x00A\x00n\x00i\x00m\x00a\x00t\x00i\x00o\x00n\x00.\x00s\x00v\x00g\ \ \x00\x12\ \x09]\xc7\xa7\ \x00a\ \x002\x00p\x00_\x00R\x00e\x00p\x00a\x00i\x00r\x00T\x00r\x00e\x00e\x00.\x00s\x00v\ \x00g\ \x00\x19\ \x0d\xf4aG\ \x00a\ \x002\x00p\x00_\x00S\x00e\x00t\x00R\x00e\x00l\x00a\x00t\x00i\x00v\x00e\x00P\x00a\ \x00t\x00h\x00e\x00s\x00.\x00s\x00v\x00g\ \x00!\ \x02\x09\xde\x07\ \x00a\ \x002\x00p\x00_\x00S\x00e\x00a\x00r\x00c\x00h\x00C\x00o\x00n\x00s\x00t\x00r\x00a\ \x00i\x00n\x00t\x00C\x00o\x00n\x00f\x00l\x00i\x00c\x00t\x00s\x00.\x00s\x00v\x00g\ \ \x00\x17\ \x0f\x9b\x12\x07\ \x00a\ \x002\x00p\x00_\x00I\x00s\x00o\x00l\x00a\x00t\x00e\x00_\x00E\x00l\x00e\x00m\x00e\ \x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x16\ \x06''\ \x00a\ \x002\x00p\x00_\x00P\x00a\x00r\x00t\x00L\x00a\x00b\x00e\x00l\x00.\x00s\x00v\x00g\ \ \x00\x0e\ \x0aq\xce\xa7\ \x00a\ \x002\x00p\x00_\x00U\x00p\x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\ \x00\x1e\ \x04\xc9\xfa\x87\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00O\x00n\x00P\x00l\x00a\x00n\x00e\x00C\ \x00o\x00n\x00s\x00t\x00r\x00a\x00i\x00n\x00t\x00.\x00s\x00v\x00g\ \x00\x0c\ \x07\xf1\x93\x87\ \x00a\ \x002\x00p\x00_\x00S\x00t\x00o\x00p\x00.\x00s\x00v\x00g\ \x00\x14\ \x09a;'\ \x00a\ \x002\x00p\x00_\x00U\x00n\x00l\x00a\x00b\x00e\x00l\x00_\x00D\x00O\x00F\x00s\x00.\ \x00s\x00v\x00g\ \x00\x14\ \x0d\x1c\xefG\ \x00a\ \x002\x00p\x00_\x00L\x00o\x00c\x00k\x00R\x00o\x00t\x00a\x00t\x00i\x00o\x00n\x00.\ \x00s\x00v\x00g\ \x00\x16\ \x04\x05J'\ \x00a\ \x002\x00p\x00_\x00V\x00i\x00e\x00w\x00C\x00o\x00n\x00n\x00e\x00c\x00t\x00i\x00o\ \x00n\x00.\x00s\x00v\x00g\ \x00\x10\ \x00\x03\xeb\x87\ \x00a\ \x002\x00p\x00_\x00M\x00o\x00v\x00e\x00P\x00a\x00r\x00t\x00.\x00s\x00v\x00g\ \x00\x15\ \x08S4g\ \x00a\ \x002\x00p\x00_\x00P\x00o\x00i\x00n\x00t\x00I\x00d\x00e\x00n\x00t\x00i\x00t\x00y\ \x00.\x00s\x00v\x00g\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00H\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x0e\x08\x00\x01\x00\x00\x00\x01\x00\x05\xb5m\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x03\x16\x00\x01\x00\x00\x00\x01\x00\x00\xecl\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x0b\x88\x00\x01\x00\x00\x00\x01\x00\x04\xb8M\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x08\x0c\x00\x01\x00\x00\x00\x01\x00\x03\x85\x0b\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x05D\x00\x01\x00\x00\x00\x01\x00\x01\x8e*\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0c\x04\x00\x01\x00\x00\x00\x01\x00\x05\x100\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x03\x5c\x00\x01\x00\x00\x00\x01\x00\x00\xf7\xc6\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0a\xda\x00\x01\x00\x00\x00\x01\x00\x04*\x8f\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x08\xca\x00\x01\x00\x00\x00\x01\x00\x03\xad\xe9\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x02T\x00\x01\x00\x00\x00\x01\x00\x00\xc72\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x01\xd8\x00\x01\x00\x00\x00\x01\x00\x00\xb3Q\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x02\xb8\x00\x01\x00\x00\x00\x01\x00\x00\xdb\xdc\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x07\xae\x00\x01\x00\x00\x00\x01\x00\x03`/\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x00\xee\x00\x01\x00\x00\x00\x01\x00\x00[\xd5\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x0d\xd6\x00\x01\x00\x00\x00\x01\x00\x05\xaa \ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x074\x00\x01\x00\x00\x00\x01\x00\x03Ma\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x05O \ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x04R\x00\x01\x00\x00\x00\x01\x00\x01W\xb1\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x05\x10\x00\x01\x00\x00\x00\x01\x00\x01\x82\x82\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x06\x9a\x00\x01\x00\x00\x00\x01\x00\x03'\x7f\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0d\x1a\x00\x01\x00\x00\x00\x01\x00\x05|\x03\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0c\x80\x00\x01\x00\x00\x00\x01\x00\x05:z\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x05\xd8\x00\x01\x00\x00\x00\x01\x00\x01\xe6\xa9\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x02\x08\x00\x01\x00\x00\x00\x01\x00\x00\xbc\x13\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x06f\x00\x01\x00\x00\x00\x01\x00\x02\xc3S\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x0bV\x00\x01\x00\x00\x00\x01\x00\x04\xaa\xdf\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x0cX\x00\x01\x00\x00\x00\x01\x00\x05(g\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x02\xf0\x00\x01\x00\x00\x00\x01\x00\x00\xe1\x08\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x00p\x00\x00\x00\x00\x00\x01\x00\x00\x18\xd0\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x01\x14\x00\x01\x00\x00\x00\x01\x00\x00e=\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x03\xa6\x00\x01\x00\x00\x00\x01\x00\x01\x07\x22\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x01\xf1\xe8\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x0d\x5c\x00\x01\x00\x00\x00\x01\x00\x05\x86i\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0b\xd2\x00\x00\x00\x00\x00\x01\x00\x04\xbe\x05\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0e.\x00\x01\x00\x00\x00\x01\x00\x05\xc0s\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x04*\x00\x00\x00\x00\x00\x01\x00\x01(\xdf\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x09\x02\x00\x01\x00\x00\x00\x01\x00\x03\xba$\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x03\xd8\x00\x01\x00\x00\x00\x01\x00\x01\x13\x8f\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x00\xac\x00\x01\x00\x00\x00\x01\x00\x00Q\xf2\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x0c\x9c\x00\x01\x00\x00\x00\x01\x00\x05B\x1d\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x08:\x00\x01\x00\x00\x00\x01\x00\x03\x8eD\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x09\xf8\x00\x01\x00\x00\x00\x01\x00\x03\xfaz\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x01F\x00\x01\x00\x00\x00\x01\x00\x00o*\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0ax\x00\x01\x00\x00\x00\x01\x00\x04\x10Y\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x06\xda\x00\x01\x00\x00\x00\x01\x00\x031\xc1\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x0dz\x00\x01\x00\x00\x00\x01\x00\x05\x91d\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x04\xb8\x00\x01\x00\x00\x00\x01\x00\x01n\xb4\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x09\xb6\x00\x01\x00\x00\x00\x01\x00\x03\xef\xa5\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x02\x88\x00\x01\x00\x00\x00\x01\x00\x00\xd2o\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0c\xf8\x00\x01\x00\x00\x00\x01\x00\x05c\x08\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x01\x8c\x00\x01\x00\x00\x00\x01\x00\x00\xa8\x1a\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x09t\x00\x01\x00\x00\x00\x01\x00\x03\xe5\x02\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x09\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xc2\xd2\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x0b\x93\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0a0\x00\x01\x00\x00\x00\x01\x00\x04\x05q\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x07z\x00\x01\x00\x00\x00\x01\x00\x03W\xad\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0c0\x00\x01\x00\x00\x00\x01\x00\x05\x1d\xd9\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x05|\x00\x00\x00\x00\x00\x01\x00\x01\x94Z\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x06\x1e\x00\x01\x00\x00\x00\x01\x00\x02\xb9\x1a\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0d\xa8\x00\x01\x00\x00\x00\x01\x00\x05\x9f\xee\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x0a\xa2\x00\x01\x00\x00\x00\x01\x00\x04 \x1f\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x05\xb6\x00\x01\x00\x00\x00\x01\x00\x01\xb6J\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x08\xac\x00\x01\x00\x00\x00\x01\x00\x03\xa3\xf3\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x08x\x00\x01\x00\x00\x00\x01\x00\x03\x9ba\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x03\xf6\x00\x01\x00\x00\x00\x01\x00\x01\x1f\x08\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x07\x04\x00\x00\x00\x00\x00\x01\x00\x03<\xa9\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x04\x9a\x00\x01\x00\x00\x00\x01\x00\x01c\x0b\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x04\xe0\x00\x01\x00\x00\x00\x01\x00\x01w\xc4\ \x00\x00\x01\x91\xa2I5\xa2\ \x00\x00\x0b\x22\x00\x00\x00\x00\x00\x01\x00\x04]\x85\ \x00\x00\x01\x91\xa2I5\xa6\ \x00\x00\x07\xd6\x00\x00\x00\x00\x00\x01\x00\x03k\x16\ \x00\x00\x01\x91\xa2I5\x9f\ \x00\x00\x09N\x00\x01\x00\x00\x00\x01\x00\x03\xda\x1a\ \x00\x00\x01\x91\xa2I5\xa2\ " def qInitResources(): QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() ================================================ FILE: a2p_constraintServices.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2020 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** from PySide import QtGui import FreeCAD import FreeCADGui import a2plib import a2p_constraints translate = FreeCAD.Qt.translate def reAdjustConstraintDirections(doc): """ Recalculate value of property 'direction' and the sign of property 'offset' of all a2p-constraints of a document, in order to reach a solvable state if possible, especially used after updating of imported parts. """ result = [] # Added for Constraint Diagnostic function unknown_constraints = [] constraints = [obj for obj in doc.Objects if 'ConstraintInfo' in obj.Content] for c in constraints: try: # process as much constraints as possible if c.Type == 'pointIdentity': a2p_constraints.PointIdentityConstraint.recalculateMatingDirection(c) elif c.Type == 'pointOnLine': a2p_constraints.PointOnLineConstraint.recalculateMatingDirection(c) elif c.Type == 'pointOnPlane': a2p_constraints.PointOnPlaneConstraint.recalculateMatingDirection(c) elif c.Type == 'circularEdge': a2p_constraints.CircularEdgeConstraint.recalculateMatingDirection(c) elif c.Type == 'axial': a2p_constraints.AxialConstraint.recalculateMatingDirection(c) elif c.Type == 'axisParallel': a2p_constraints.AxisParallelConstraint.recalculateMatingDirection(c) elif c.Type == 'axisPlaneParallel': a2p_constraints.AxisPlaneParallelConstraint.recalculateMatingDirection(c) elif c.Type == 'axisPlaneAngle': a2p_constraints.AxisPlaneAngleConstraint.recalculateMatingDirection(c) elif c.Type == 'axisPlaneNormal': a2p_constraints.AxisPlaneNormalConstraint.recalculateMatingDirection(c) elif c.Type == 'planesParallel': a2p_constraints.PlanesParallelConstraint.recalculateMatingDirection(c) elif c.Type == 'plane': a2p_constraints.PlaneConstraint.recalculateMatingDirection(c) elif c.Type == 'angledPlanes': a2p_constraints.AngledPlanesConstraint.recalculateMatingDirection(c) elif c.Type == 'sphereCenterIdent': a2p_constraints.SphericalConstraint.recalculateMatingDirection(c) elif c.Type == 'CenterOfMass': a2p_constraints.CenterOfMassConstraint.recalculateMatingDirection(c) else: unknown_constraints.append(c.Type) except: # Print - All not Ok, we have errors print(translate( "A2plus", "Errors occurred during processing of {}").format( c.Label ) ) result.append(c.Name) # Added for Constraint Diagnostic function if len(unknown_constraints) > 0: # Print - All not Ok, we have problem print(translate( "A2plus_Constraints", "reAdjustConstraintDirections(): Found unknown constraints: {}" ).format( set(unknown_constraints) ) ) else: # Print - All Ok print(translate( "A2plus_Constraints", "reAdjustConstraintDirections(): All constraints are recalculated." )) return(result) # Added for Constraint Diagnostic function class a2p_reAdjustConstraintDirectionsCommand: def Activated(self): flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus_Constraints", "Recalculate direction of constraints"), translate("A2plus_Constraints", "Do you really want to recalculate the directions of all constraints?"), flags ) if response == QtGui.QMessageBox.Yes: doc = FreeCAD.activeDocument() doc.openTransaction("Readjust constraint's directions") reAdjustConstraintDirections(doc) doc.commitTransaction() def IsActive(self): if FreeCAD.activeDocument() is None: return False return True def GetResources(self): return { 'Pixmap': a2plib.get_module_path()+'/icons/a2p_ReAdjustConstraints.svg', 'MenuText': translate("A2plus_Constraints", "Re-adjust directions of all constraints"), 'ToolTip': translate("A2plus_Constraints", "Re-adjust directions of all constraints to best fit") } FreeCADGui.addCommand('a2p_reAdjustConstraintDirectionsCommand', a2p_reAdjustConstraintDirectionsCommand()) ================================================ FILE: a2p_constraints.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import math import FreeCAD import Part import a2plib from a2plib import ( vertexSelected, LinearEdgeSelected, planeSelected, sphericalSurfaceSelected, cylindricalFaceSelected, CircularEdgeSelected, ClosedEdgeSelected, getPos, getAxis, getObjectEdgeFromName, getObjectFaceFromName ) from a2p_viewProviderProxies import ConstraintObjectProxy, ConstraintViewProviderProxy translate = FreeCAD.Qt.translate class BasicConstraint(): """ Base class of all Constraints, only use inherited classes... """ def __init__(self, selection): self.typeInfo = None # give the appropriate type string for A2plus solver self.constraintBaseName = None # <== give a base name here self.iconPath = None # # Fields for storing data of the two constrained objects self.ob1Name = None self.ob2Name = None self.ob1Label = None self.ob2Label = None self.ob1 = None # the two constrained FC objects self.ob2 = None self.sub1 = None # the two constrained FC subelements self.sub2 = None # self.constraintObject = None # self.direction = None self.offset = None self.angle = None self.lockRotation = None def create(self, selection): cName = a2plib.findUnusedObjectName(self.constraintBaseName) ob = FreeCAD.activeDocument().addObject("App::FeaturePython", cName) s1, s2 = selection self.ob1Name = s1.ObjectName self.ob2Name = s2.ObjectName self.ob1Label = s1.Object.Label self.ob2Label = s2.Object.Label self.ob1 = FreeCAD.activeDocument().getObject(s1.ObjectName) self.ob2 = FreeCAD.activeDocument().getObject(s2.ObjectName) self.sub1 = s1.SubElementNames[0] self.sub2 = s2.SubElementNames[0] ob.addProperty("App::PropertyString", "Type", "ConstraintInfo").Type = self.typeInfo ob.addProperty("App::PropertyString", "Object1", "ConstraintInfo").Object1 = self.ob1Name ob.addProperty("App::PropertyString", "SubElement1", "ConstraintInfo").SubElement1 = self.sub1 ob.addProperty("App::PropertyString", "Object2", "ConstraintInfo").Object2 = self.ob2Name ob.addProperty("App::PropertyString", "SubElement2", "ConstraintInfo").SubElement2 = self.sub2 ob.addProperty("App::PropertyString", "Toponame1", "ConstraintInfo").Toponame1 = '' ob.addProperty("App::PropertyString", "Toponame2", "ConstraintInfo").Toponame2 = '' ob.addProperty("App::PropertyBool", "Suppressed", "ConstraintInfo").Suppressed = False for prop in ["Object1", "Object2", "SubElement1", "SubElement2", "Type"]: ob.setEditorMode(prop, 1) self.constraintObject = ob self.calcInitialValues() # override in subclass ! self.setInitialValues() self.groupUnderParentTreeObject() self.setupProxies() def setupProxies(self): c = self.constraintObject c.Proxy = ConstraintObjectProxy() c.ViewObject.Proxy = ConstraintViewProviderProxy( c, self.iconPath, True, self.ob2Label, self.ob1Label ) def groupUnderParentTreeObject(self): c = self.constraintObject parent = FreeCAD.ActiveDocument.getObject(c.Object1) c.addProperty("App::PropertyLink", "ParentTreeObject", "ConstraintInfo").ParentTreeObject = parent c.setEditorMode('ParentTreeObject', 1) # this is needed to trigger an update parent.touch() def setInitialValues(self): c = self.constraintObject if self.direction is not None: c.addProperty("App::PropertyEnumeration", "directionConstraint", "ConstraintInfo") c.directionConstraint = ["aligned", "opposed"] c.directionConstraint = self.direction c.setEditorMode("directionConstraint", 0) # set not editable... if self.offset is not None: c.addProperty("App::PropertyDistance", "offset", "ConstraintInfo").offset = self.offset c.setEditorMode("offset", 0) # set not editable... if self.angle is not None: c.addProperty("App::PropertyAngle", "angle", "ConstraintInfo").angle = self.angle c.setEditorMode("angle", 0) # set not editable... if self.lockRotation is not None: c.addProperty("App::PropertyBool", "lockRotation", "ConstraintInfo").lockRotation = self.lockRotation c.setEditorMode("lockRotation", 0) # set not editable... def calcInitialValues(self): raise NotImplementedError( "Class {} doesn't implement calcInitialValues(), use inherited classes instead!".format( self.__class__.__name__ ) ) @staticmethod def recalculateMatingDirection(c): raise NotImplementedError( "Class {} doesn't implement recalculateMatingDirection(), use inherited classes instead!".format( c.__class__.__name__ ) ) @staticmethod def getToolTip(self): return 'Invalid Base Class BasicConstraint' @staticmethod def isValidSelection(selection): return True class PointIdentityConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'pointIdentity' self.constraintBaseName = 'pointIdentity' self.iconPath = ':/icons/a2p_PointIdentity.svg' self.create(selection) def calcInitialValues(self): pass @staticmethod def recalculateMatingDirection(c): pass @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Point-to-Point constraint (PointIdentity)" + "\n\n" + "Select:" + "\n" + "1) A vertex, a circle, or a sphere (on a part)" + "\n" + "2) A vertex, a circle, or a sphere (on another part)" + "\n\n" + "If the Circle or Sphere is selected," + "\n" + "centre of feature will be taken as Point definition." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (vertexSelected(s1) or sphericalSurfaceSelected(s1) or CircularEdgeSelected(s1) ) and (vertexSelected(s2) or sphericalSurfaceSelected(s2) or CircularEdgeSelected(s2) ) ): validSelection = True return validSelection class PointOnLineConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'pointOnLine' self.constraintBaseName = 'pointOnLine' self.iconPath = ':/icons/a2p_PointOnLineConstraint.svg' self.create(selection) def calcInitialValues(self): pass @staticmethod def recalculateMatingDirection(c): pass @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Point-on-Line constraint (PointOnLine)" + "\n\n" + "Select:" + "\n" + "1) A vertex, a sphere, or a circle (on a part)" + "\n" + "2) A linear/circular edge, or a cylindrical/conical face (on another part)" + "\n\n" + "If the circular edge is selected," + "\n" + "it's axis will be taken as line definition." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (vertexSelected(s1) or sphericalSurfaceSelected(s1) or CircularEdgeSelected(s1)) and (LinearEdgeSelected(s2) or cylindricalFaceSelected(s2) or CircularEdgeSelected(s2)) ): validSelection = True return validSelection class PointOnPlaneConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'pointOnPlane' self.constraintBaseName = 'pointOnPlane' self.iconPath = ':/icons/a2p_PointOnPlaneConstraint.svg' self.create(selection) def calcInitialValues(self): self.offset = 0.0 @staticmethod def recalculateMatingDirection(c): point = getPos(c.Object1, c.SubElement1) plane = getObjectFaceFromName(c.Object2, c.SubElement2) planeNormal = a2plib.getPlaneNormal(plane.Surface) planePos = getPos(c.Object2, c.SubElement2) # calculate recent offset... delta = point.sub(planePos) offset = delta.dot(planeNormal) if offset >= 0: c.offset = abs(c.offset) else: c.offset = -abs(c.offset) @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Point-on-Plane constraint (PointOnPlane)" + "\n\n" + "Select:" + "\n" + "1) A vertex, a center of a circle, or a sphere (on a part)" + "\n" + "2) A plane (on another part)" ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (vertexSelected(s1) or CircularEdgeSelected(s1) or sphericalSurfaceSelected(s1) ) and planeSelected(s2) ): validSelection = True return validSelection class SphericalConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'sphereCenterIdent' self.constraintBaseName = 'sphereCenterIdent' self.iconPath = ':/icons/a2p_SphericalSurfaceConstraint.svg' self.create(selection) def calcInitialValues(self): pass @staticmethod def recalculateMatingDirection(c): pass @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Sphere-to-Sphere constraint (SphereCenterIdentity)" + "\n\n" + "Select:" + "\n" + "1) A spherical surface, or a vertex (on a part)" + "\n" + "2) A spherical surface, or a vertex (on another part)" + "\n\n" + "When selecting a Sphere," + "\n" + "it's center is used as a vertex." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (vertexSelected(s1) or sphericalSurfaceSelected(s1) or CircularEdgeSelected(s1) ) and (vertexSelected(s2) or sphericalSurfaceSelected(s2) or CircularEdgeSelected(s2) ) ): validSelection = True return validSelection class CircularEdgeConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'circularEdge' self.constraintBaseName = 'circularEdge' self.iconPath = ':/icons/a2p_CircularEdgeConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject # circleEdge1 = getObjectEdgeFromName(self.ob1, c.SubElement1) # circleEdge2 = getObjectEdgeFromName(self.ob2, c.SubElement2) # axis1 = circleEdge1.Curve.Axis # axis2 = circleEdge2.Curve.Axis axis1 = getAxis(self.ob1, c.SubElement1) axis2 = getAxis(self.ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" self.offset = 0.0 self.lockRotation = False @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) # circleEdge1 = getObjectEdgeFromName(ob1, c.SubElement1) # circleEdge2 = getObjectEdgeFromName(ob2, c.SubElement2) # axis1 = circleEdge1.Curve.Axis # axis2 = circleEdge2.Curve.Axis axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: direction = "aligned" else: direction = "opposed" if c.directionConstraint != direction: c.offset = -c.offset c.directionConstraint = direction @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Circular-Edge constraint (CircularEdge)" + "\n\n" + "Select:" + "\n" + "1) A circular edge (on a part)" + "\n" + "2) A circular edge (on another part)" + "\n\n" + "When selecting a circle," + "\n" + "it's center is used as a vertex." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if CircularEdgeSelected(s1) and CircularEdgeSelected(s2): validSelection = True return validSelection class AxialConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'axial' self.constraintBaseName = 'axisCoincident' self.iconPath = ':/icons/a2p_AxialConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject axis1 = getAxis(self.ob1, c.SubElement1) axis2 = getAxis(self.ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" self.lockRotation = False @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: c.directionConstraint = "aligned" else: c.directionConstraint = "opposed" @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Axis-to-Axis constraint (AxisCoincident)" + "\n\n" + "Select:" + "\n" + "1) A linear edge or cylindrical/conical face (on a part)" + "\n" + "2) A linear edge or cylindrical/conical face (on another part)" + "\n\n" + "Non fixed axis will be aligned and moved to be coincident." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): def ValidSelection(selectionExObj): return cylindricalFaceSelected(selectionExObj) \ or LinearEdgeSelected(selectionExObj) \ or CircularEdgeSelected(selectionExObj) validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ValidSelection(s1) and ValidSelection(s2): validSelection = True return validSelection class AxisParallelConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'axisParallel' self.constraintBaseName = 'axisParallel' self.iconPath = ':/icons/a2p_AxisParallelConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject axis1 = getAxis(self.ob1, c.SubElement1) axis2 = getAxis(self.ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: c.directionConstraint = "aligned" else: c.directionConstraint = "opposed" @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Axes-Parallel constraint (AxesParallel)" + "\n\n" + "Select:" + "\n" + "1) A linear/circular edge or cylindrical/conical face (on a part)" + "\n" + "2) A linear/circular edge or cylindrical/conical face (on another part)" + "\n\n" + "Axes will only rotate to be parallel, but will not" + "\n" + "be moved to be coincident." + "\n\n" + "If using circular edge or cylindrical/conical face," + "\n" + "it's axis will be taken as line." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (LinearEdgeSelected(s1) or cylindricalFaceSelected(s1) or CircularEdgeSelected(s1)) and (LinearEdgeSelected(s2) or cylindricalFaceSelected(s2) or CircularEdgeSelected(s2)) ): validSelection = True return validSelection class AxisPlaneParallelConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'axisPlaneParallel' self.constraintBaseName = 'axisPlaneParallel' self.iconPath = ':/icons/a2p_AxisPlaneParallelConstraint.svg' self.create(selection) def calcInitialValues(self): pass @staticmethod def recalculateMatingDirection(c): pass @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel)" + "\n\n" + "Select:" + "\n" + "1) A linear edge, or cylinder/cone axis (on a part)" + "\n" + "2) A plane face (on another part)" + "\n\n" + "This constraint adjusts an axis parallel to a" + "\n" + "selected plane. The parts are not moved to be coincident." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (LinearEdgeSelected(s1) or cylindricalFaceSelected(s1)) and planeSelected(s2) ): validSelection = True return validSelection class AxisPlaneAngleConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'axisPlaneAngle' self.constraintBaseName = 'axisPlaneAngle' self.iconPath = ':/icons/a2p_AxisPlaneAngleConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject axis1 = getAxis(self.ob1, c.SubElement1) plane2 = getObjectFaceFromName(self.ob2, c.SubElement2) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) # the following section has been tested and is working, # just it does not meet expectations. # opposed/aligned are set to the opposite of expectation # this has to be checked again. if angle <= 90.0: self.direction = "opposed" self.angle = 90 - angle else: self.direction = "aligned" self.angle = -90 + angle @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: direction = "opposed" else: direction = "aligned" c.directionConstraint = direction @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the angular Axis-to-Plane constraint (AxisPlaneAngle)" + "\n\n" + "Select:" + "\n" + "1) A linear edge, or cylinder/cone axis (on a part)" + "\n" + "2) A plane face (on another part)" + "\n\n" + "At first this constraint adjusts an axis parallel to a" + "\n" + "selected plane. Within the following popUp dialog you" + "\n" + "can define an angle." + "\n\n" + "The parts are not moved to be coincident." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (LinearEdgeSelected(s1) or cylindricalFaceSelected(s1)) and planeSelected(s2) ): validSelection = True return validSelection class AxisPlaneNormalConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'axisPlaneNormal' self.constraintBaseName = 'axisPlaneNormal' self.iconPath = ':/icons/a2p_AxisPlaneNormalConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject axis1 = getAxis(self.ob1, c.SubElement1) plane2 = getObjectFaceFromName(self.ob2, c.SubElement2) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: c.directionConstraint = "aligned" else: c.directionConstraint = "opposed" @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Axis-Plane-Normal constraint (AxisPlaneNormal)" + "\n\n" + "Select:" + "\n" + "1) A linear edge, or cylinder/cone axis (on a part)" + "\n" + "2) A plane face (on another part)" + "\n\n" + "This constraint adjusts an axis vertical to a" + "\n" + "selected plane." + "\n\n" + "The parts are not moved to be coincident." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if ( (LinearEdgeSelected(s1) or cylindricalFaceSelected(s1)) and planeSelected(s2) ): validSelection = True return validSelection class PlanesParallelConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'planesParallel' self.constraintBaseName = 'planesParallel' self.iconPath = ':/icons/a2p_PlanesParallelConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject plane1 = getObjectFaceFromName(self.ob1, c.SubElement1) plane2 = getObjectFaceFromName(self.ob2, c.SubElement2) normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(normal1.getAngle(normal2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) plane1 = getObjectFaceFromName(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(normal1.getAngle(normal2)) if angle <= 90.0: c.directionConstraint = "aligned" else: c.directionConstraint = "opposed" @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Planes-Parallelism constraint (PlanesParallel)" + "\n\n" + "Select:" + "\n" + "1) A plane (on a part)" + "\n" + "2) A plane (on another part)" + "\n\n" + "Planes will only rotate to be parallel, but not" + "\n" + "moved to be coincident." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: # if not planeSelected(s1): #???? # s2, s1 = s1, s2 #????? if planeSelected(s1) and planeSelected(s2): validSelection = True return validSelection class PlaneConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'plane' self.constraintBaseName = 'planeCoincident' self.iconPath = ':/icons/a2p_PlaneCoincidentConstraint.svg' self.create(selection) def calcInitialValues(self): c = self.constraintObject plane1 = getObjectFaceFromName(self.ob1, c.SubElement1) plane2 = getObjectFaceFromName(self.ob2, c.SubElement2) normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(normal1.getAngle(normal2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" self.offset = 0.0 @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) plane1 = getObjectFaceFromName(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(normal1.getAngle(normal2)) if angle <= 90.0: direction = "aligned" else: direction = "opposed" # if c.directionConstraint != direction: # c.offset = -c.offset c.directionConstraint = direction @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Plane-Coincident constraint (PlaneCoincident)" + "\n\n" + "Select:" + "\n" + "1) A plane (on a part)" + "\n" + "2) A plane (on another part)" + "\n\n" + "It is possible to change the offset in object editor." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: # if not planeSelected(s1): # s2, s1 = s1, s2 if planeSelected(s1) and planeSelected(s2): validSelection = True return validSelection class AngledPlanesConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'angledPlanes' self.constraintBaseName = 'angledPlanes' self.iconPath = ':/icons/a2p_AngleConstraint.svg' self.create(selection) def calcInitialValues(self): plane1 = getObjectFaceFromName(self.ob1, self.sub1) plane2 = getObjectFaceFromName(self.ob2, self.sub2) normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) self.angle = math.degrees(normal2.getAngle(normal1)) @staticmethod def recalculateMatingDirection(c): pass @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Angled-Planes constraint (AngledPlanes)" + "\n\n" + "Select:" + "\n" + "1) A plane (on a part)" + "\n" + "2) A plane (on another part)" + "\n\n" + "After setting this constraint at first the actual" + "\n" + "angle between both planes is been calculated and" + "\n" + "stored to entry 'angle' in object editor." + "\n\n" + "The angle can be changed in the object editor." + "\n\n" + "Avoid using angles equals to 0 and 180 degrees - you could" + "\n" + "get strange results." + "\n" + "For that, is better to use PlanesParallel constraint." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if (planeSelected(s1) and planeSelected(s2)): validSelection = True return validSelection class CenterOfMassConstraint(BasicConstraint): def __init__(self, selection): BasicConstraint.__init__(self, selection) self.typeInfo = 'CenterOfMass' self.constraintBaseName = 'centerOfMass' self.iconPath = ':/icons/a2p_CenterOfMassConstraint.svg' self.create(selection) def calcInitialValues(self): if self.sub1.startswith('Face'): plane1 = getObjectFaceFromName(self.ob1, self.sub1) elif self.sub1.startswith('Edge'): # print(self.sub1) plane1 = Part.Face(Part.Wire(getObjectEdgeFromName(self.ob1, self.sub1))) if self.sub2.startswith('Face'): plane2 = getObjectFaceFromName(self.ob2, self.sub2) elif self.sub2.startswith('Edge'): plane2 = Part.Face(Part.Wire(getObjectEdgeFromName(self.ob2, self.sub2))) # plane2 = getObjectFaceFromName(self.ob2, self.sub2) axis1 = a2plib.getPlaneNormal(plane1.Surface) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: self.direction = "aligned" else: self.direction = "opposed" self.offset = 0.0 self.lockRotation = False @staticmethod def recalculateMatingDirection(c): ob1 = c.Document.getObject(c.Object1) ob2 = c.Document.getObject(c.Object2) if c.SubElement1.startswith('Face'): plane1 = getObjectFaceFromName(ob1, c.SubElement1) elif c.SubElement1.startswith('Edge'): # print(self.sub1) plane1 = Part.Face(Part.Wire(getObjectEdgeFromName(ob1, c.SubElement1))) if c.SubElement2.startswith('Face'): plane2 = getObjectFaceFromName(ob2, c.SubElement2) elif c.SubElement2.startswith('Edge'): plane2 = Part.Face(Part.Wire(getObjectEdgeFromName(ob2, c.SubElement2))) axis1 = a2plib.getPlaneNormal(plane1.Surface) axis2 = a2plib.getPlaneNormal(plane2.Surface) angle = math.degrees(axis1.getAngle(axis2)) if angle <= 90.0: c.directionConstraint = "aligned" else: c.directionConstraint = "opposed" @staticmethod def getToolTip(): return (translate("A2plus_Constraints", "Create the Center-of-Mass constraint (CenterOfMass)" + "\n\n" + "Select:" + "\n" + "1) A face, or a closed edge (on a part)" + "\n" + "2) A face, or a closed edge (on another part)" + "\n\n" + "It is possible to change the offset in object editor." ) + "\n\n" + translate("A2plus_Constraints", "Button gets active after correct selection." ) ) @staticmethod def isValidSelection(selection): validSelection = False if len(selection) == 2: s1, s2 = selection if s1.ObjectName != s2.ObjectName: if (planeSelected(s1) or ClosedEdgeSelected(s1)) and (planeSelected(s2) or ClosedEdgeSelected(s2)): validSelection = True return validSelection ================================================ FILE: a2p_convertPart.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 WandererFan * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCADGui import FreeCAD from PySide import QtGui import copy import time from a2p_translateUtils import * import a2plib from a2p_MuxAssembly import createTopoInfo from a2p_importedPart_class import Proxy_importPart from a2p_importedPart_class import Proxy_convertPart # for compat. from a2p_importedPart_class import ImportedPartViewProviderProxy # for compat. from a2p_topomapper import TopoMapper def updateConvertedPart(doc, obj): obj.timeLastImport = time.time() baseObject = doc.getObject(obj.localSourceObject) savedPlacement = obj.Placement obj.ViewObject.ShapeColor = baseObject.ViewObject.ShapeColor topoMapper = TopoMapper(doc) # imports the objects and creates toponames if wanted baseObject.ViewObject.Visibility = True #the topomapper ignores invisible shapes obj.muxInfo, obj.Shape, obj.ViewObject.DiffuseColor, obj.ViewObject.Transparency = \ topoMapper.createTopoNames(desiredShapeLabel = baseObject.Label) baseObject.ViewObject.Visibility = False #set baseObject invisible again. obj.Placement = savedPlacement for p in baseObject.ViewObject.PropertiesList: if hasattr(baseObject.ViewObject, p) and p not in [ 'DiffuseColor', 'Proxy', 'MappedColors', 'DisplayModeBody' ]: try: setattr(obj.ViewObject, p, getattr( baseObject.ViewObject, p)) except: pass # a lot of attributes related e.g. to sketcher if not a2plib.getPerFaceTransparency(): # switch of perFaceTransparency obj.ViewObject.Transparency = 1 obj.ViewObject.Transparency = 0 # default = nontransparent obj.recompute() obj.ViewObject.Visibility = True def convertToImportedPart(doc, obj): """ convertToImportedPart(document, documentObject) - changes a regular FreeCAD object into an A2plus importedPart, adds the importedPart to the document and hides the original object from the document. Updating the assembly will also update the converted part """ partName = a2plib.findUnusedObjectName( obj.Label, document=doc ) partLabel = a2plib.findUnusedObjectLabel( obj.Label, document=doc ) filename = "converted" #or none? if obj is already in this doc, we don't know it's original filename newObj = doc.addObject("Part::FeaturePython",partName) newObj.Label = partLabel Proxy_importPart(newObj) ImportedPartViewProviderProxy(newObj.ViewObject) newObj.a2p_Version = a2plib.getA2pVersion() newObj.sourceFile = filename newObj.localSourceObject = obj.Name #newObj.sourcePart = "" newObj.setEditorMode("timeLastImport",1) newObj.timeLastImport = time.time() newObj.fixedPosition = False newObj.subassemblyImport = False newObj.setEditorMode("subassemblyImport",1) newObj.updateColors = True newObj.ViewObject.ShapeColor = obj.ViewObject.ShapeColor #------------------------------------------- # Initialize the new TopoMapper #------------------------------------------- topoMapper = TopoMapper(doc) newObj.muxInfo, newObj.Shape, newObj.ViewObject.DiffuseColor, newObj.ViewObject.Transparency = \ topoMapper.createTopoNames(desiredShapeLabel = obj.Label) for p in obj.ViewObject.PropertiesList: if hasattr(obj.ViewObject, p) and p not in [ 'DiffuseColor', 'Proxy', 'MappedColors', 'DisplayModeBody' ]: try: setattr(newObj.ViewObject, p, getattr( obj.ViewObject, p)) except: #some sketcher attributes e.g. pass if not a2plib.getPerFaceTransparency(): # switch of perFaceTransparency newObj.ViewObject.Transparency = 1 newObj.ViewObject.Transparency = 0 # default = nontransparent newObj.Placement.Base = obj.Placement.Base newObj.Placement.Rotation = obj.Placement.Rotation obj.ViewObject.Visibility = False newObj.recompute() toolTip = \ translate("A2plus_convertPart", ''' Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. ''' ) class a2p_ConvertPartCommand(): def GetResources(self): return {'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ConvertPart.svg', # 'Accel' : "Shift+C", # a default shortcut (optional) 'MenuText': translate("A2plus_convertPart", "Convert a part to A2plus"), 'ToolTip' : toolTip } def Activated(self): doc = FreeCAD.activeDocument() selection = FreeCADGui.Selection.getSelection() for s in selection: if s.ViewObject.Visibility == False: msg = translate("A2plus_convertPart","Please select only visible parts!") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus_convertPart","Conversion Aborted"), msg ) return for s in selection: doc.openTransaction(u"part converted to A2plus") convertToImportedPart(doc, s) doc.commitTransaction() def IsActive(self): if FreeCAD.activeDocument() is None: return False selection = FreeCADGui.Selection.getSelection() if not selection: return False for s in selection: if a2plib.isA2pPart(s): return False if ( not s.isDerivedFrom("Part::Feature") and not s.Name.startswith('Sketch') ): return False return True FreeCADGui.addCommand('a2p_ConvertPart',a2p_ConvertPartCommand()) ================================================ FILE: a2p_dependencies.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import random import math import FreeCAD, FreeCADGui, Part from FreeCAD import Base from a2p_translateUtils import * import a2plib from a2plib import ( getObjectEdgeFromName, getObjectFaceFromName, getPos, getAxis ) from a2p_libDOF import ( AxisAlignment, AxisDistance, PlaneOffset, AngleAlignment, PointIdentity, create_Axis, cleanAxis, create_Axis2Points ) #------------------------------------------------------------------------------ class Dependency(): def __init__(self, constraint, refType, axisRotation): self.Enabled = False self.Type = None self.refType = refType self.isPointConstraint = False self.refPoint = None self.refAxisEnd = None self.direction = None self.offset = None self.angle = None self.foreignDependency = None self.moveVector = None self.currentRigid = None self.dependedRigid = None self.constraint = constraint self.axisRotationEnabled = axisRotation self.lockRotation = False self.useRefPointSpin = True self.Type = constraint.Type try: self.direction = constraint.directionConstraint except: pass # not all constraints do have direction-Property try: self.offset = constraint.offset except: pass # not all constraints do have offset-Property try: self.angle = constraint.angle except: pass # not all constraints do have angle-Property try: self.lockRotation = constraint.lockRotation except: pass # not all constraints do have lockRotation def clear(self): self.Type = None self.Enabled = False self.refType = None self.refPoint = None self.isPointConstraint = None self.refAxisEnd = None self.direction = None self.offset = None self.angle = None self.foreignDependency = None self.moveVector = None self.currentRigid = None self.dependedRigid = None self.constraint = None self.axisRotationEnabled = False self.lockRotation = False def __str__(self): return translate("A2plus", "Dependencies between {} - {}, type {}").format( self.currentRigid.label, self.dependedRigid.label, self.Type ) @staticmethod def Create(doc, constraint, solver, rigid1, rigid2): c = constraint if c.Type == "sphereCenterIdent" or c.Type == "pointIdentity": dep1 = DependencyPointIdentity(c, "point") dep2 = DependencyPointIdentity(c, "point") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) vert1 = getPos(ob1, c.SubElement1) vert2 = getPos(ob2, c.SubElement2) dep1.refPoint = vert1 dep2.refPoint = vert2 elif c.Type == "pointOnLine": dep1 = DependencyPointOnLine(c, "point") dep2 = DependencyPointOnLine(c, "pointAxis") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) dep1.refPoint = getPos(ob1, c.SubElement1) dep2.refPoint = getPos(ob2, c.SubElement2) axis2 = getAxis(ob2, c.SubElement2) dep2.refAxisEnd = dep2.refPoint.add(axis2) elif c.Type == "pointOnPlane": dep1 = DependencyPointOnPlane(c, "point") dep2 = DependencyPointOnPlane(c, "plane") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) dep1.refPoint = getPos(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep2.refPoint = plane2.Faces[0].BoundBox.Center normal2 = a2plib.getPlaneNormal(plane2.Surface) #shift refPoint of plane by offset try: offs = c.offset except: offs = 0.0 offsetVector = Base.Vector(normal2) offsetVector.multiply(offs) dep2.refPoint = dep2.refPoint.add(offsetVector) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "circularEdge": dep1 = DependencyCircularEdge(c, "pointAxis") dep2 = DependencyCircularEdge(c, "pointAxis") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) dep1.refPoint = getPos(ob1, c.SubElement1) dep2.refPoint = getPos(ob2, c.SubElement2) axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) if dep2.direction == "opposed": axis2.multiply(-1.0) dep1.refAxisEnd = dep1.refPoint.add(axis1) dep2.refAxisEnd = dep2.refPoint.add(axis2) # if abs(dep2.offset) > solver.mySOLVER_SPIN_ACCURACY * 1e-1: offsetAdjustVec = Base.Vector(axis2.x,axis2.y,axis2.z) offsetAdjustVec.multiply(dep2.offset) dep2.refPoint = dep2.refPoint.add(offsetAdjustVec) dep2.refAxisEnd = dep2.refAxisEnd.add(offsetAdjustVec) elif c.Type == "planesParallel": dep1 = DependencyParallelPlanes(c, "pointNormal") dep2 = DependencyParallelPlanes(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) plane1 = getObjectFaceFromName(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = plane1.Faces[0].BoundBox.Center dep2.refPoint = plane2.Faces[0].BoundBox.Center normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) if dep2.direction == "opposed": normal2.multiply(-1.0) dep1.refAxisEnd = dep1.refPoint.add(normal1) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "angledPlanes": dep1 = DependencyAngledPlanes(c, "pointNormal") dep2 = DependencyAngledPlanes(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) plane1 = getObjectFaceFromName(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = plane1.Faces[0].BoundBox.Center dep2.refPoint = plane2.Faces[0].BoundBox.Center normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) dep1.refAxisEnd = dep1.refPoint.add(normal1) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "plane": dep1 = DependencyPlane(c, "pointNormal") dep2 = DependencyPlane(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) plane1 = getObjectFaceFromName(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = plane1.Faces[0].BoundBox.Center dep2.refPoint = plane2.Faces[0].BoundBox.Center normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) if dep2.direction == "opposed": normal2.multiply(-1.0) dep1.refAxisEnd = dep1.refPoint.add(normal1) dep2.refAxisEnd = dep2.refPoint.add(normal2) # if abs(dep2.offset) > solver.mySOLVER_SPIN_ACCURACY * 1e-1: offsetAdjustVec = Base.Vector(normal2.x,normal2.y,normal2.z) offsetAdjustVec.multiply(dep2.offset) dep2.refPoint = dep2.refPoint.add(offsetAdjustVec) dep2.refAxisEnd = dep2.refAxisEnd.add(offsetAdjustVec) elif c.Type == "axial": dep1 = DependencyAxial(c, "pointAxis") dep2 = DependencyAxial(c, "pointAxis") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) dep1.refPoint = getPos(ob1,c.SubElement1) dep2.refPoint = getPos(ob2,c.SubElement2) axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) if dep2.direction == "opposed": axis2.multiply(-1.0) dep1.refPoint = dep1.adjustRefPoints(ob1,c.SubElement1,dep1.refPoint,axis1) dep2.refPoint = dep2.adjustRefPoints(ob2,c.SubElement2,dep2.refPoint,axis2) dep1.refAxisEnd = dep1.refPoint.add(axis1) dep2.refAxisEnd = dep2.refPoint.add(axis2) elif c.Type == "axisParallel": dep1 = DependencyAxisParallel(c, "pointAxis") dep2 = DependencyAxisParallel(c, "pointAxis") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) dep1.refPoint = getPos(ob1,c.SubElement1) dep2.refPoint = getPos(ob2,c.SubElement2) axis1 = getAxis(ob1, c.SubElement1) axis2 = getAxis(ob2, c.SubElement2) if dep2.direction == "opposed": axis2.multiply(-1.0) dep1.refAxisEnd = dep1.refPoint.add(axis1) dep2.refAxisEnd = dep2.refPoint.add(axis2) elif c.Type == "axisPlaneParallel": dep1 = DependencyAxisPlaneParallel(c, "pointAxis") dep2 = DependencyAxisPlaneParallel(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = getPos(ob1,c.SubElement1) dep2.refPoint = plane2.Faces[0].BoundBox.Center axis1Normalized = Base.Vector(axis1) axis1Normalized.normalize() dep1.refAxisEnd = dep1.refPoint.add(axis1Normalized) normal2 = a2plib.getPlaneNormal(plane2.Surface) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "axisPlaneAngle": dep1 = DependencyAxisPlaneAngle(c, "pointAxis") dep2 = DependencyAxisPlaneAngle(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = getPos(ob1,c.SubElement1) dep2.refPoint = plane2.Faces[0].BoundBox.Center axis1Normalized = Base.Vector(axis1) axis1Normalized.normalize() dep1.refAxisEnd = dep1.refPoint.add(axis1Normalized) normal2 = a2plib.getPlaneNormal(plane2.Surface) if dep2.direction == "opposed": normal2.multiply(-1.0) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "axisPlaneVertical" or c.Type == "axisPlaneNormal": # axisPlaneVertical for compat. dep1 = DependencyAxisPlaneNormal(c, "pointAxis") dep2 = DependencyAxisPlaneNormal(c, "pointNormal") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) axis1 = getAxis(ob1, c.SubElement1) plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep1.refPoint = getPos(ob1,c.SubElement1) dep2.refPoint = plane2.Faces[0].BoundBox.Center axis1Normalized = Base.Vector(axis1) axis1Normalized.normalize() dep1.refAxisEnd = dep1.refPoint.add(axis1Normalized) normal2 = a2plib.getPlaneNormal(plane2.Surface) if dep2.direction == "opposed": normal2.multiply(-1.0) dep2.refAxisEnd = dep2.refPoint.add(normal2) elif c.Type == "CenterOfMass": dep1 = DependencyCenterOfMass(c, "point") dep2 = DependencyCenterOfMass(c, "point") ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) if c.SubElement1.startswith('Face'): plane1 = getObjectFaceFromName(ob1, c.SubElement1) dep1.refPoint = plane1.Faces[0].CenterOfMass elif c.SubElement1.startswith('Edge'): plane1 = Part.Face(Part.Wire(getObjectEdgeFromName(ob1, c.SubElement1))) dep1.refPoint = plane1.CenterOfMass if c.SubElement2.startswith('Face'): plane2 = getObjectFaceFromName(ob2, c.SubElement2) dep2.refPoint = plane2.Faces[0].CenterOfMass elif c.SubElement2.startswith('Edge'): plane2 = Part.Face(Part.Wire(getObjectEdgeFromName(ob2, c.SubElement2))) dep2.refPoint = plane2.CenterOfMass normal1 = a2plib.getPlaneNormal(plane1.Surface) normal2 = a2plib.getPlaneNormal(plane2.Surface) if dep2.direction == "opposed": normal2.multiply(-1.0) dep1.refAxisEnd = dep1.refPoint.add(normal1) dep2.refAxisEnd = dep2.refPoint.add(normal2) # to be improved: toggle direction even if offset == 0.0 if abs(dep2.offset) > solver.mySOLVER_SPIN_ACCURACY * 1e-1: offsetAdjustVec = Base.Vector(normal2.x,normal2.y,normal2.z) offsetAdjustVec.multiply(dep2.offset) dep2.refPoint = dep2.refPoint.add(offsetAdjustVec) dep2.refAxisEnd = dep2.refAxisEnd.add(offsetAdjustVec) else: raise NotImplementedError("Constraint type {} was not implemented!".format(c.Type)) # Assignments dep1.currentRigid = rigid1 dep1.dependedRigid = rigid2 dep1.foreignDependency = dep2 dep2.currentRigid = rigid2 dep2.dependedRigid = rigid1 dep2.foreignDependency = dep1 rigid1.dependencies.append(dep1) rigid2.dependencies.append(dep2) def applyPlacement(self, placement): if self.refPoint is not None: self.refPoint = placement.multVec(self.refPoint) if self.refAxisEnd is not None: self.refAxisEnd = placement.multVec(self.refAxisEnd) def enable(self, workList): if self.dependedRigid not in workList: return self.Enabled = True self.foreignDependency.Enabled = True def disable(self): self.Enabled = False self.foreignDependency.Enabled = False def getMovement(self): raise NotImplementedError("Dependency class {} doesn't implement movement, use inherited classes instead!".format(self.__class__.__name__)) def calcDOF(self, _dofRot, _dofPos, _pointconstraints = []): raise NotImplementedError("Dependency class {} doesn't implement calcDOF, use inherited classes instead!".format(self.__class__.__name__)) def getRotation(self, solver): if not self.Enabled: return None if not self.axisRotationEnabled: return None # The rotation is the same for all dependencies that enabled it # Special dependency cases are implemented in its own class axis = None # Rotation axis to be returned if self.direction != "none": rigAxis = self.refAxisEnd.sub(self.refPoint) foreignDep = self.foreignDependency foreignAxis = foreignDep.refAxisEnd.sub(foreignDep.refPoint) # #do we have wrong alignment of axes ?? dot = rigAxis.dot(foreignAxis) if abs(dot+1.0) < solver.mySOLVER_SPIN_ACCURACY*1e-1: #both axes nearly aligned but false orientation... x = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) y = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) z = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) disturbVector = Base.Vector(x,y,z) foreignAxis = foreignAxis.add(disturbVector) #axis = foreignAxis.cross(rigAxis) axis = rigAxis.cross(foreignAxis) try: axis.multiply(1.0e6) axis.normalize() angle = foreignAxis.getAngle(rigAxis) axis.multiply(math.degrees(angle)) except: axis = None else: #if dep.direction... (== none) rigAxis = self.refAxisEnd.sub(self.refPoint) foreignDep = self.foreignDependency foreignAxis = foreignDep.refAxisEnd.sub(foreignDep.refPoint) angle1 = abs(foreignAxis.getAngle(rigAxis)) angle2 = math.pi-angle1 # if angle1<=angle2: axis = rigAxis.cross(foreignAxis) else: foreignAxis.multiply(-1.0) axis = rigAxis.cross(foreignAxis) try: axis.multiply(1.0e6) axis.normalize() angle = foreignAxis.getAngle(rigAxis) axis.multiply(math.degrees(angle)) except: axis = None return axis #------------------------------------------------------------------------------ class DependencyPointIdentity(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, False) self.isPointConstraint = True self.useRefPointSpin = True def getMovement(self): if not self.Enabled: return None, None moveVector = self.foreignDependency.refPoint.sub(self.refPoint) return self.refPoint, moveVector def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #PointIdentity, PointOnLine, PointOnPlane, Spherical Constraints: # PointIdentityPos() needs to know the point constrained as vector, the dofpos array, the rigid center point as vector and # the pointconstraints which stores all point constraints of the rigid # PointIdentityRot() needs to know the point constrained as vector, the dofrot array, and # the pointconstraints which stores all point constraints of the rigid # These constraint have to be the last evaluated in the chain of constraints. tmpaxis = cleanAxis(create_Axis(self.refPoint, self.currentRigid.getRigidCenter())) #dofpos = PointIdentityPos(tmpaxis,_dofPos,_pointconstraints) #dofrot = PointIdentityRot(tmpaxis,_dofRot,_pointconstraints) return PointIdentity(tmpaxis, _dofPos, _dofRot, _pointconstraints) class DependencyPointOnLine(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, False) self.isPointConstraint = True self.useRefPointSpin = True def getMovement(self): if not self.Enabled: return None, None if self.refType == "point": vec1 = self.foreignDependency.refPoint.sub(self.refPoint) axis1 = self.foreignDependency.refAxisEnd.sub(self.foreignDependency.refPoint) dot = vec1.dot(axis1) axis1.multiply(dot) #projection of vec1 on axis1 moveVector = vec1.sub(axis1) return self.refPoint, moveVector elif self.refType == "pointAxis": # refPoint is calculated in special way below vec1 = self.foreignDependency.refPoint.sub(self.refPoint) axis1 = self.refAxisEnd.sub(self.refPoint) dot = vec1.dot(axis1) axis1.multiply(dot) #projection of vec1 on axis1 verticalRefOnLine = self.refPoint.add(axis1) #makes spinning around possible moveVector = vec1.sub(axis1) return verticalRefOnLine, moveVector else: raise NotImplementedError("Wrong refType for class {}".format(self.__class__.__name__)) def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #PointIdentity, PointOnLine, PointOnPlane, Spherical Constraints: # PointIdentityPos() needs to know the point constrained as vector, the dofpos array, the rigid center point as vector and # the pointconstraints which stores all point constraints of the rigid # PointIdentityRot() needs to know the point constrained as vector, the dofrot array, and # the pointconstraints which stores all point constraints of the rigid # These constraint have to be the last evaluated in the chain of c tmpaxis = cleanAxis(create_Axis(self.refPoint, self.currentRigid.getRigidCenter())) #dofpos = PointIdentityPos(tmpaxis,_dofPos,_pointconstraints) #dofrot = PointIdentityRot(tmpaxis,_dofRot,_pointconstraints) return PointIdentity(tmpaxis, _dofPos, _dofRot, _pointconstraints) class DependencyPointOnPlane(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, False) self.isPointConstraint = True self.useRefPointSpin = True def getMovement(self): if not self.Enabled: return None, None if self.refType == "point": vec1 = self.foreignDependency.refPoint.sub(self.refPoint) # Now move along foreign axis normal1 = self.foreignDependency.refAxisEnd.sub(self.foreignDependency.refPoint) dot = vec1.dot(normal1) normal1.multiply(dot) moveVector = normal1 return self.refPoint, moveVector elif self.refType == "plane": # refPoint is calculated in special way below vec1 = self.foreignDependency.refPoint.sub(self.refPoint) normal1 = self.refAxisEnd.sub(self.refPoint) # move along own axis dot = vec1.dot(normal1) normal1.multiply(dot) moveVector = normal1 verticalRefPointOnPlane = self.refPoint.add(vec1.sub(moveVector)) #makes spinning around possible return verticalRefPointOnPlane, moveVector else: raise NotImplementedError("Wrong refType for class {}".format(self.__class__.__name__)) def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #PointIdentity, PointOnLine, PointOnPlane, Spherical Constraints: # PointIdentityPos() needs to know the point constrained as vector, the dofpos array, the rigid center point as vector and # the pointconstraints which stores all point constraints of the rigid # PointIdentityRot() needs to know the point constrained as vector, the dofrot array, and # the pointconstraints which stores all point constraints of the rigid # These constraint have to be the last evaluated in the chain of constraints. tmpaxis = cleanAxis(create_Axis(self.refPoint, self.currentRigid.getRigidCenter())) #dofpos = PointIdentityPos(tmpaxis,_dofPos,_pointconstraints) #dofrot = PointIdentityRot(tmpaxis,_dofRot,_pointconstraints) return PointIdentity(tmpaxis, _dofPos, _dofRot, _pointconstraints) class DependencyCircularEdge(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = True def getMovement(self): if not self.Enabled: return None, None moveVector = self.foreignDependency.refPoint.sub(self.refPoint) return self.refPoint, moveVector def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #function used to determine the dof lost due to this constraint #CircularEdgeConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # PlaneOffset() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot # # honestly speaking this would be simplified like this: # if LockRotation: # dofpos = [] # dofrot = [] # else: # dofpos = [] # dofrot = AxisAlignment(ConstraintAxis, dofrot) if self.lockRotation: return [], [] else: tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) return [], AxisAlignment(tmpaxis,_dofRot) class DependencyParallelPlanes(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0,0,0) def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #PlanesParallelConstraint: # AxisAlignment() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) tmpaxis.Direction.Length = 2.0 return _dofPos, AxisAlignment(tmpaxis,_dofRot) class DependencyAngledPlanes(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0,0,0) def getRotation(self, solver): if not self.Enabled: return None axis = None # Rotation axis to be returned rigAxis = self.refAxisEnd.sub(self.refPoint) foreignDep = self.foreignDependency foreignAxis = foreignDep.refAxisEnd.sub(foreignDep.refPoint) recentAngle = math.degrees(foreignAxis.getAngle(rigAxis)) deltaAngle = abs(self.angle.Value) - recentAngle try: axis = rigAxis.cross(foreignAxis) axis.normalize() axis.multiply(-deltaAngle) except: # axis = Vector(0,0,0) and cannot be normalized... # return a random axis with very small angle... x = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) y = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) z = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) axis = Base.Vector(x,y,z) return axis def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AngleBetweenPlanesConstraint # AngleAlignment() needs to know the axis normal to plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) tmpaxis.Direction.Length = 2.0 return _dofPos, AngleAlignment(tmpaxis,_dofRot) class DependencyPlane(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None vec1 = self.foreignDependency.refPoint.sub(self.refPoint) # move along foreign axis... normal1 = self.foreignDependency.refAxisEnd.sub(self.foreignDependency.refPoint) dot = vec1.dot(normal1) normal1.multiply(dot) moveVector = normal1 return self.refPoint, moveVector def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #PlaneCoincident: # AxisAlignment() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array # PlaneOffset() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofpos array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) # the axis used on axisalignment isn't a real axis but a random axis normal to the plane #set it to length = 2 instead of normalize it pos = PlaneOffset(tmpaxis,_dofPos) tmpaxis.Direction.Length = 2.0 return pos, AxisAlignment(tmpaxis,_dofRot) class DependencyAxial(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = True """ def getMovement1(self): if not self.Enabled: return None, None vec1 = self.foreignDependency.refPoint.sub(self.refPoint) destinationAxis = self.foreignDependency.refAxisEnd.sub(self.foreignDependency.refPoint) dot = vec1.dot(destinationAxis) parallelToAxisVec = destinationAxis.normalize().multiply(dot) moveVector = vec1.sub(parallelToAxisVec) return self.refPoint, moveVector """ def getMovement(self): if not self.Enabled: return None, None vec1 = self.foreignDependency.refPoint.sub(self.refPoint) ownAxis = self.refAxisEnd.sub(self.refPoint) dot = vec1.dot(ownAxis) parallelToAxisVec = ownAxis.normalize().multiply(dot) moveVector = vec1.sub(parallelToAxisVec) return self.refPoint.add(parallelToAxisVec), moveVector def adjustRefPoints(self,obj,sub,refPoint,axis): if sub.startswith("Edge"): return refPoint face = getObjectFaceFromName(obj,sub) bbCenter = face.BoundBox.Center if bbCenter.distanceToLine(refPoint,axis) < 1.0e-12: return bbCenter v1 = bbCenter.sub(refPoint) v2 = Base.Vector(axis) v2.normalize() dot = v1.dot(v2) v2.multiply(dot) refPoint = refPoint.add(v2) return refPoint def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AxialConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) if self.lockRotation: return AxisDistance(tmpaxis,_dofPos), [] else: return AxisDistance(tmpaxis,_dofPos), AxisAlignment(tmpaxis,_dofRot) class DependencyAxisParallel(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0.0, 0.0, 0.0) def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AxialConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) return _dofPos, AxisAlignment(tmpaxis,_dofRot) class DependencyAxisPlaneParallel(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0,0,0) def getRotation(self, solver): if not self.Enabled: return None axis = None # Rotation axis to be returned rigAxis = self.refAxisEnd.sub(self.refPoint) foreignDep = self.foreignDependency foreignAxis = foreignDep.refAxisEnd.sub(foreignDep.refPoint) recentAngle = math.degrees(foreignAxis.getAngle(rigAxis)) deltaAngle = 90.0 - recentAngle #axis of linearEdge and plane normal have to be rectangular try: axis = rigAxis.cross(foreignAxis) axis.normalize() axis.multiply(-deltaAngle) except: #axis = Vector(0,0,0) and cannot be normalized... #axis and normal are parallel, do small random rotation x = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) y = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) z = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) axis = Base.Vector(x,y,z) return axis def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AngleBetweenPlanesConstraint # AngleAlignment() needs to know the axis normal to plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) tmpaxis.Direction.Length = 2.0 return _dofPos, AngleAlignment(tmpaxis,_dofRot) class DependencyAxisPlaneAngle(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0,0,0) def getRotation(self, solver): if not self.Enabled: return None axis = None # Rotation axis to be returned rigAxis = self.refAxisEnd.sub(self.refPoint) foreignDep = self.foreignDependency foreignAxis = foreignDep.refAxisEnd.sub(foreignDep.refPoint) recentAngle = math.degrees(foreignAxis.getAngle(rigAxis)) deltaAngle = abs(self.angle.Value) + 90.0 - recentAngle try: axis = rigAxis.cross(foreignAxis) axis.normalize() axis.multiply(-deltaAngle) except: #axis = Vector(0,0,0) and cannot be normalized... #axis and normal are parallel, do small random rotation x = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) y = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) z = random.uniform(-solver.mySOLVER_SPIN_ACCURACY*1e-1,solver.mySOLVER_SPIN_ACCURACY*1e-1) axis = Base.Vector(x,y,z) return axis def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AxisPlaneAngleConstraint # AngleAlignment() needs to know the axis normal to plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) tmpaxis.Direction.Length = 2.0 return _dofPos, AngleAlignment(tmpaxis,_dofRot) class DependencyAxisPlaneNormal(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = False def getMovement(self): if not self.Enabled: return None, None return self.refPoint, Base.Vector(0,0,0) def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #AngleBetweenPlanesConstraint # AngleAlignment() needs to know the axis normal to plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) tmpaxis.Direction.Length = 2.0 return _dofPos, AngleAlignment(tmpaxis,_dofRot) class DependencyCenterOfMass(Dependency): def __init__(self, constraint, refType): Dependency.__init__(self, constraint, refType, True) self.isPointConstraint = False self.useRefPointSpin = True def getMovement(self): if not self.Enabled: return None, None moveVector = self.foreignDependency.refPoint.sub(self.refPoint) return self.refPoint, moveVector def calcDOF(self, _dofPos, _dofRot, _pointconstraints=[]): #function used to determine the dof lost due to this constraint #CircularEdgeConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # PlaneOffset() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot # # honestly speaking this would be simplified like this: # if LockRotation: # dofpos = [] # dofrot = [] # else: # dofpos = [] # dofrot = AxisAlignment(ConstraintAxis, dofrot) if self.lockRotation: return [], [] else: tmpaxis = cleanAxis(create_Axis2Points(self.refPoint,self.refAxisEnd)) return [], AxisAlignment(tmpaxis,_dofRot) ================================================ FILE: a2p_fcdocumentreader.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD, FreeCADGui, os from a2p_translateUtils import * import zipfile try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET #------------------------------------------------------------------------------ class A2p_xmldoc_Property(object): """ BaseClass for xml-Properties """ def __init__(self,treeElement, name,_type): self.treeElement = treeElement self.name = name self.type = _type def __str__(self): return "PropertyName: {}, Type: {}".format(self.name,self.type) #------------------------------------------------------------------------------ class A2p_xmldoc_PropertyString(A2p_xmldoc_Property): def getStringValue(self): s = self.treeElement.find('String') return s.attrib['value'] #------------------------------------------------------------------------------ class A2p_xmldoc_PropertyBool(A2p_xmldoc_Property): def getBool(self): s = self.treeElement.find('Bool') if s.attrib['value'] == 'true': return True else: return False #------------------------------------------------------------------------------ class A2p_xmldoc_PropertyFloat(A2p_xmldoc_Property): def getFloat(self): s = self.treeElement.find('Float') return float( s.attrib['value'] ) #------------------------------------------------------------------------------ class A2p_xmldoc_PropertyFile(A2p_xmldoc_Property): def getStringValue(self): s = self.treeElement.find('String') return s.attrib['value'] #------------------------------------------------------------------------------ class A2p_xmldoc_PropertySheet(A2p_xmldoc_Property): def getCellValues(self): """returns a dict: cellAddress:value""" cellEntries = self.treeElement.findall('Cells/Cell') cellDict = {} for ce in cellEntries: try: cellDict[ce.attrib['address']] = ce.attrib['content'] except: pass # no content attribute, perhaps backgroundcolor or something else return cellDict #------------------------------------------------------------------------------ class A2p_xmldoc_Object(object): """ class prototype to store FC objects found in document.xml """ def __init__(self,name,_type, tree): self.tree = tree self.dataElement = None self.name = name self.type = _type self.propertyDict = {} self.loadPropertyDict(self.tree) self.label = self.propertyDict['Label'].getStringValue() def __str__(self): return u"ObjName: {}, Label: {}, Type: {}".format( self.name, self.label, self.type ) def loadPropertyDict(self,tree): for elem in tree.iterfind('ObjectData/Object'): if elem.attrib['name'] == self.name: self.dataElement = elem for e in elem.findall('Properties/Property'): if e.attrib['type'] == 'App::PropertyString': p = A2p_xmldoc_PropertyString( e, e.attrib['name'], e.attrib['type'] ) self.propertyDict[e.attrib['name']] = p elif e.attrib['type'] == 'App::PropertyBool': p = A2p_xmldoc_PropertyBool( e, e.attrib['name'], e.attrib['type'] ) self.propertyDict[e.attrib['name']] = p elif e.attrib['type'] == 'App::PropertyFloat': p = A2p_xmldoc_PropertyFloat( e, e.attrib['name'], e.attrib['type'] ) self.propertyDict[e.attrib['name']] = p elif e.attrib['type'] == 'App::PropertyFile': p = A2p_xmldoc_PropertyFile( e, e.attrib['name'], e.attrib['type'] ) self.propertyDict[e.attrib['name']] = p elif e.attrib['type'] == 'Spreadsheet::PropertySheet': p = A2p_xmldoc_PropertySheet( e, e.attrib['name'], e.attrib['type'] ) self.propertyDict[e.attrib['name']] = p else: pass # unsupported property type #------------------------------------------------------------------------------ class A2p_xmldoc_SpreadSheet(A2p_xmldoc_Object): def getCells(self): return self.propertyDict['cells'].getCellValues() #------------------------------------------------------------------------------ class A2p_xmldoc_FeaturePython(A2p_xmldoc_Object): def isA2pObject(self): if self.propertyDict.get('a2p_Version',None) is not None: return True return False def getA2pSource(self): if self.isA2pObject: return self.propertyDict['sourceFile'].getStringValue() return None def isSubassembly(self): if self.isA2pObject: propFound = self.propertyDict.get('subassemblyImport',None) if propFound: return propFound.getBool() else: return False return False def getTimeLastImport(self): if self.isA2pObject: propFound = self.propertyDict.get('timeLastImport',None) if propFound: return propFound.getFloat() else: return 0 return 0 #------------------------------------------------------------------------------ class FCdocumentReader(object): """ class for extracting the XML-Documentdata from a fcstd-file given by filepath. Some data can be extracted without opening the whole document within FreeCAD """ def __init__(self): self.tree = None self.root = None self.objects = [] def clear(self): self.realPath = '' self.tree = None self.root = None self.objects = [] def openDocument(self,fileName): self.clear() # check whether file exists or not... if not os.path.exists( fileName ): print (u"fcDocumentReader: file {} does not exist!".format(fileName)) return # # decompress the file f = zipfile.ZipFile(fileName,'r') xml = f.read('Document.xml') f.close() # # load the ElementTree self.tree = ET.ElementTree(ET.fromstring(xml)) # self.loadObjects() def loadObjects(self): self.objects = [] for elem in self.tree.iterfind('Objects/Object'): if elem.attrib['type'].startswith('Spreadsheet'): ob = A2p_xmldoc_SpreadSheet( elem.attrib['name'], elem.attrib['type'], self.tree ) self.objects.append(ob) if elem.attrib['type'].startswith('Part::FeaturePython'): ob = A2p_xmldoc_FeaturePython( elem.attrib['name'], elem.attrib['type'], self.tree ) self.objects.append(ob) else: pass # unhandled object types def getA2pObjects(self): out = [] for ob in self.objects: if ob.propertyDict.get('a2p_Version',None) is not None: out.append(ob) continue elif ob.propertyDict.get('assembly2Version',None) is not None: # for very old a2p projects... out.append(ob) continue return out def getSpreadsheetObjects(self): out = [] for ob in self.objects: if ob.type.startswith('Spreadsheet'): out.append(ob) return out def getObjectByName(self,name): for ob in self.objects: if ob.name == name: return ob return None #------------------------------------------------------------------------------ if __name__ == "__main__": doc = FreeCAD.activeDocument() dr = FCdocumentReader() dr.openDocument(doc.FileName) for ob in dr.getSpreadsheetObjects(): if ob.name == '_PARTINFO_': cellDict = ob.getCells() for k in cellDict.keys(): print(u"Address: {}, content {}".format( k, cellDict[k] ) ) for ob in dr.getA2pObjects(): print(u"sourcefile: {}".format( ob.getA2pSource() ) ) ================================================ FILE: a2p_importedPart_class.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2019 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD import FreeCADGui import Part import os import copy import numpy from FreeCAD import Base from PySide import QtGui from a2p_translateUtils import * import a2plib #============================================================================== class Proxy_importPart: """The a2p importPart object.""" def __init__(self,obj): obj.Proxy = self Proxy_importPart.setProperties(self,obj) self.type = "a2p_importPart" def setProperties(self,obj): propList = obj.PropertiesList if not "objectType" in propList: obj.addProperty("App::PropertyString", "objectType", "importPart") obj.objectType = 'a2pPart' if not "a2p_Version" in propList: obj.addProperty("App::PropertyString", "a2p_Version", "importPart") obj.a2p_Version = a2plib.getA2pVersion() if not "sourceFile" in propList: obj.addProperty("App::PropertyFile", "sourceFile", "importPart") if not "sourcePart" in propList: obj.addProperty("App::PropertyString", "sourcePart", "importPart") if not "localSourceObject" in propList: obj.addProperty("App::PropertyString", "localSourceObject", "importPart") if not "muxInfo" in propList: obj.addProperty("App::PropertyStringList","muxInfo","importPart") if not "timeLastImport" in propList: obj.addProperty("App::PropertyFloat", "timeLastImport","importPart") if not "fixedPosition" in propList: obj.addProperty("App::PropertyBool","fixedPosition","importPart") if not "subassemblyImport" in propList: obj.addProperty("App::PropertyBool","subassemblyImport","importPart") obj.subassemblyImport = False if not "updateColors" in propList: obj.addProperty("App::PropertyBool","updateColors","importPart") obj.updateColors = True if a2plib.GRAPHICALDEBUG == True and not "debugmode" in propList: obj.addProperty("App::PropertyBool","debugmode","importPart") obj.debugmode = False if a2plib.GRAPHICALDEBUG == False and "debugmode" in propList: obj.removeProperty("debugmode") self.type = "a2p_importPart" def onDocumentRestored(self,obj): Proxy_importPart.setProperties(self,obj) def __getstate__(self): return None def __setstate__(self, state): return None def dumps(self): return None def loads(self, state): return None def execute(self, obj): # if a group containing LCS's exists, then move it # according to the imported part if hasattr(obj,"lcsLink"): if len(obj.lcsLink) > 0: lcsGroup = obj.lcsLink[0] lcsGroup.Placement = obj.Placement lcsGroup.purgeTouched() #untouch the lcsGroup, otherwise it stays touched. #============================================================================== class ImportedPartViewProviderProxy: """A ViewProvider for the a2p importPart object.""" def __init__(self,vobj): vobj.Proxy = self def claimChildren(self): if hasattr(self,'Object'): try: children = list() for obj in self.Object.InList: if a2plib.isA2pObject(obj): children.append(obj) if hasattr(self.Object,'lcsLink'): for obj in self.Object.lcsLink: children.append(obj) return children except: # FreeCAD has already deleted self.Object !! return[] else: return [] def onDelete(self, viewObject, subelements): # subelements is a tuple of strings if FreeCAD.activeDocument() != viewObject.Object.Document: return False # only delete objects in the active Document anytime !! obj = viewObject.Object doc = obj.Document deleteList = [] for c in doc.Objects: if 'ConstraintInfo' in c.Content: # a related Constraint if obj.Name in [ c.Object1, c.Object2 ]: deleteList.append(c) if len(deleteList) > 0: for c in deleteList: a2plib.removeConstraint(c) # also deletes the mirrors... if hasattr(obj,"lcsLink"): if len(obj.lcsLink)>0: lscGroup = doc.getObject(obj.lcsLink[0].Name) lscGroup.deleteContent(doc) doc.removeObject(lscGroup.Name) return True # If False is returned the object won't be deleted def getIcon(self): if hasattr(self,"Object"): if a2plib.isA2pSketch(self.Object): return a2plib.get_module_path()+'/icons/a2p_SketchReference.svg' if hasattr(self.Object,"sourceFile") and hasattr(self.Object,"sourcePart"): if self.Object.sourcePart is not None and self.Object.sourcePart !='': return a2plib.get_module_path()+'/icons/a2p_ObjReference.svg' if hasattr(self.Object,"subassemblyImport"): if self.Object.subassemblyImport: return ":/icons/a2p_Asm.svg" if hasattr(self.Object,"sourceFile"): if self.Object.sourceFile == 'converted': return ":/icons/a2p_ConvertPart.svg" return ":/icons/a2p_Obj.svg" def __getstate__(self): return None def __setstate__(self, state): return None def dumps(self): return None def loads(self, state): return None def attach(self, vobj): self.object_Name = vobj.Object.Name self.Object = vobj.Object def setupContextMenu(self, ViewObject, popup_menu): pass #============================================================================== class Proxy_muxAssemblyObj(Proxy_importPart): """ A wrapper for compatibility reasons... """ pass #============================================================================== class Proxy_convertPart(Proxy_importPart): """ A wrapper for compatibility reasons... """ pass #============================================================================== ================================================ FILE: a2p_importpart.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import os import sys import FreeCAD, FreeCADGui from PySide import QtGui, QtCore import copy import platform from a2p_translateUtils import * import a2plib from a2p_MuxAssembly import muxAssemblyWithTopoNames import a2p_solversystem from a2plib import getRelativePathesEnabled import a2p_importedPart_class import a2p_convertPart from a2p_topomapper import TopoMapper import a2p_lcs_support from a2p_importedPart_class import Proxy_importPart, ImportedPartViewProviderProxy import a2p_constraintServices #PYVERSION = sys.version_info[0] #============================================================================== class DataContainer(): def __init__(self): self.tx = None #============================================================================== class ObjectCache: """ An assembly could use multiple instances of then same importPart. Cache them here so fileImports have to be executed only one time... """ def __init__(self): self.objects = {} # dict, key=fileName, val=object def cleanUp(self,doc): for key in self.objects.keys(): try: doc.removeObject(self.objects[key].Name) #remove temporaryParts from doc except: pass self.objects = {} # dict, key=fileName def add(self,fileName,obj): # pi_obj = PartInformation-Object self.objects[fileName] = obj def get(self,fileName): obj = self.objects.get(fileName,None) if obj: return obj else: return None def isCached(self,fileName): if fileName in self.objects.keys(): return True else: return False def len(self): return len(self.objects.keys()) objectCache = ObjectCache() #============================================================================== class a2p_multiShapeExtractDialog(QtGui.QDialog): """ Select a label from shape which has to be imported from a file. """ Deleted = QtCore.Signal() Accepted = QtCore.Signal() def __init__(self, parent, labelList = [], iconList = [], data = None): super(a2p_multiShapeExtractDialog,self).__init__(parent=parent) self.labelList = labelList self.iconList = iconList self.data = data self.initUI() def initUI(self): self.setWindowTitle(translate("A2plus", "Import Objects")) self.mainLayout = QtGui.QGridLayout() # a VBoxLayout for the whole form lzip = sorted(zip(self.labelList, self.iconList)) self.labelList = [li[0] for li in lzip] self.iconList = [li[1] for li in lzip] l = self.labelList self.label = QtGui.QLabel(self) self.label.setText(translate("A2plus", "Select objects to import")) self.listView = QtGui.QListWidget() for i, item in enumerate(l): icon = self.iconList[i] item = QtGui.QListWidgetItem(item) item.setIcon(icon) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) item.setCheckState(QtCore.Qt.Unchecked) self.listView.addItem(item) self.buttons = QtGui.QDialogButtonBox(self) self.buttons.setOrientation(QtCore.Qt.Horizontal) self.buttons.addButton(translate("A2plus", "Cancel"), QtGui.QDialogButtonBox.RejectRole) self.buttons.addButton(translate("A2plus", "Import"), QtGui.QDialogButtonBox.AcceptRole) self.connect(self.buttons, QtCore.SIGNAL("accepted()"), self, QtCore.SLOT("accept()")) self.connect(self.buttons, QtCore.SIGNAL("rejected()"), self, QtCore.SLOT("reject()")) self.mainLayout.addWidget(self.label) self.mainLayout.addWidget(self.listView) self.mainLayout.addWidget(self.buttons) self.setLayout(self.mainLayout) def accept(self): if self.data is not None: checked_items = [] for index in range(self.listView.count()): if self.listView.item(index).checkState() == QtCore.Qt.Checked: checked_items.append(self.listView.item(index).text()) if checked_items: for i in checked_items: print(translate("A2plus", "Importing"), i) self.data.tx = checked_items self.deleteLater() def reject(self): self.deleteLater() #============================================================================== class a2p_shapeExtractDialog(QtGui.QDialog): """ Select a label from shape which has to be imported from a file. """ Deleted = QtCore.Signal() Accepted = QtCore.Signal() def __init__(self,parent,labelList = [], data = None): super(a2p_shapeExtractDialog,self).__init__(parent=parent) #super(a2p_shapeExtractDialog,self).__init__() self.labelList = labelList self.data = data self.initUI() def initUI(self): self.resize(400,100) self.setWindowTitle(translate("A2plus", "Select a shape to be imported")) self.mainLayout = QtGui.QGridLayout() # a VBoxLayout for the whole form self.shapeCombo = QtGui.QComboBox(self) l = sorted(self.labelList) self.shapeCombo.addItems(l) self.buttons = QtGui.QDialogButtonBox(self) self.buttons.setOrientation(QtCore.Qt.Horizontal) self.buttons.addButton(translate("A2plus", "Cancel"), QtGui.QDialogButtonBox.RejectRole) self.buttons.addButton(translate("A2plus", "Choose"), QtGui.QDialogButtonBox.AcceptRole) self.connect(self.buttons, QtCore.SIGNAL("accepted()"), self, QtCore.SLOT("accept()")) self.connect(self.buttons, QtCore.SIGNAL("rejected()"), self, QtCore.SLOT("reject()")) self.mainLayout.addWidget(self.shapeCombo,0,0,1,1) self.mainLayout.addWidget(self.buttons,1,0,1,1) self.setLayout(self.mainLayout) def accept(self): if self.data is not None: self.data.tx = self.shapeCombo.currentText() self.deleteLater() def reject(self): self.deleteLater() #============================================================================== def importPartFromFile( _doc, filename, extractSingleShape = False, # load only a single user defined shape from file desiredShapeLabel = None, importToCache = False, cacheKey = "" ): doc = _doc #------------------------------------------- # Get the importDocument #------------------------------------------- # look only for filenames, not paths, as there are problems on WIN10 (Address-translation??) importDoc = None importDocIsOpen = False requestedFile = os.path.split(filename)[1] for d in FreeCAD.listDocuments().values(): recentFile = os.path.split(d.FileName)[1] if requestedFile == recentFile: importDoc = d # file is already open... importDocIsOpen = True break if not importDocIsOpen: if filename.lower().endswith('.fcstd'): importDoc = FreeCAD.openDocument(filename) elif filename.lower().endswith('.stp') or filename.lower().endswith('.step'): import ImportGui fname = os.path.splitext(os.path.basename(filename))[0] FreeCAD.newDocument(fname) newname = FreeCAD.ActiveDocument.Name FreeCAD.setActiveDocument(newname) ImportGui.insert(filename,newname) importDoc = FreeCAD.ActiveDocument else: msg = translate("A2plus", "A part can only be imported from a FreeCAD '*.FCStd' file") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Value Error"), msg ) return #------------------------------------------- # recalculate imported part if requested by preferences # This can be useful if the imported part depends on an # external master-spreadsheet #------------------------------------------- if a2plib.getRecalculateImportedParts(): for ob in importDoc.Objects: ob.recompute() importDoc.save() # useless without saving... #------------------------------------------- # Initialize the new TopoMapper #------------------------------------------- topoMapper = TopoMapper(importDoc) #------------------------------------------- # Get a list of the importable Objects #------------------------------------------- importableObjects = topoMapper.getTopLevelObjects(allowSketches=True) if len(importableObjects) == 0: msg = translate("A2plus", "No visible Part to import found. Aborting operation") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Import Error"), msg ) return #------------------------------------------- # if only one single shape of the importdoc is wanted.. #------------------------------------------- labelList = [] dc = DataContainer() if extractSingleShape: if desiredShapeLabel is None: # ask for a shape label for io in importableObjects: labelList.append(io.Label) dialog = a2p_shapeExtractDialog( QtGui.QApplication.activeWindow(), labelList, dc) dialog.exec_() if dc.tx is None: msg = translate("A2plus", "Import of a shape reference aborted by user") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Import Error"), msg ) return else: # use existent shape label dc.tx = desiredShapeLabel #------------------------------------------- # Discover whether we are importing a subassembly or a single part #------------------------------------------- subAssemblyImport = False if all([ 'importPart' in obj.Content for obj in importableObjects]) == 1: subAssemblyImport = True #------------------------------------------- # create new object #------------------------------------------- if importToCache: partName = 'CachedObject_'+str(objectCache.len()) newObj = doc.addObject("Part::FeaturePython",partName) newObj.Label = partName else: partName = a2plib.findUnusedObjectName( importDoc.Label, document=doc ) if extractSingleShape == False: partLabel = a2plib.findUnusedObjectLabel( importDoc.Label, document=doc ) else: partLabel = a2plib.findUnusedObjectLabel( importDoc.Label, document=doc, extension=dc.tx ) newObj = doc.addObject( "Part::FeaturePython", str(partName.encode('utf-8')) ) # works on Python 3.6.5 newObj.Label = partLabel Proxy_importPart(newObj) if FreeCAD.GuiUp: ImportedPartViewProviderProxy(newObj.ViewObject) newObj.a2p_Version = a2plib.getA2pVersion() assemblyPath = os.path.normpath(os.path.split(doc.FileName)[0]) absPath = os.path.normpath(filename) if getRelativePathesEnabled(): if platform.system() == "Windows": prefix = '.\\' else: prefix = './' relativePath = prefix+os.path.relpath(absPath, assemblyPath) newObj.sourceFile = relativePath else: newObj.sourceFile = absPath if dc.tx is not None: newObj.sourcePart = dc.tx newObj.setEditorMode("timeLastImport",1) newObj.timeLastImport = os.path.getmtime( filename ) if a2plib.getForceFixedPosition(): newObj.fixedPosition = True else: newObj.fixedPosition = not any([i.fixedPosition for i in doc.Objects if hasattr(i, 'fixedPosition') ]) newObj.subassemblyImport = subAssemblyImport newObj.setEditorMode("subassemblyImport",1) if subAssemblyImport: if extractSingleShape: newObj.muxInfo, newObj.Shape, newObj.ViewObject.DiffuseColor, newObj.ViewObject.Transparency = \ muxAssemblyWithTopoNames(importDoc,desiredShapeLabel = dc.tx) else: newObj.muxInfo, newObj.Shape, newObj.ViewObject.DiffuseColor, newObj.ViewObject.Transparency = \ muxAssemblyWithTopoNames(importDoc) else: # TopoMapper manages import of non A2p-Files. It generates the shapes and appropriate topo names... if extractSingleShape: newObj.muxInfo, newObj.Shape, newObj.ViewObject.DiffuseColor, newObj.ViewObject.Transparency = \ topoMapper.createTopoNames(desiredShapeLabel = dc.tx) else: newObj.muxInfo, newObj.Shape, newObj.ViewObject.DiffuseColor, newObj.ViewObject.Transparency = \ topoMapper.createTopoNames() newObj.objectType = 'a2pPart' if extractSingleShape == True: if a2plib.isA2pSketch(newObj): newObj.objectType = 'a2pSketch' newObj.setEditorMode("objectType",1) doc.recompute() if importToCache: # this import is used to update already imported parts objectCache.add(cacheKey, newObj) else: # this is a first time import of a part if not a2plib.getPerFaceTransparency(): # turn of perFaceTransparency by accessing ViewObject.Transparency and set to zero (non transparent) newObj.ViewObject.Transparency = 1 newObj.ViewObject.Transparency = 0 # import assembly first time as non transparent. lcsList = a2p_lcs_support.getListOfLCS(doc,importDoc) if not importDocIsOpen: FreeCAD.closeDocument(importDoc.Name) if len(lcsList) > 0: #========================================= # create a group containing imported LCS's lcsGroupObjectName = 'LCS_Collection' lcsGroupLabel = translate("A2plus", "LCS_Collection") lcsGroup = doc.addObject( "Part::FeaturePython", str(lcsGroupObjectName.encode('utf-8')) ) # works on Python 3.6.5 lcsGroup.Label = lcsGroupLabel a2p_lcs_support.LCS_Group(lcsGroup) a2p_lcs_support.VP_LCS_Group(lcsGroup.ViewObject) for lcs in lcsList: lcsGroup.addObject(lcs) lcsGroup.Owner = newObj.Name newObj.addProperty("App::PropertyLinkList","lcsLink","importPart").lcsLink = lcsGroup newObj.Label = newObj.Label # this is needed to trigger an update lcsGroup.Label = lcsGroup.Label #========================================= return newObj #============================================================================== toolTip = \ translate("A2plus", ''' Add shapes from an external file to the assembly ''' ) class a2p_ImportShapeReferenceCommand(): def GetResources(self): return {'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ShapeReference.svg', 'Accel' : "Ctrl+Shift+A", # a default shortcut (optional) 'MenuText': translate("A2plus", "Add shapes from an external file"), 'ToolTip' : toolTip } def Activated(self): if FreeCAD.ActiveDocument is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "First create an empty file and save it under desired name") ) return # if FreeCAD.ActiveDocument.FileName == '': QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Unnamed document"), translate("A2plus", "Before inserting first part, please save the empty assembly to give it a name") ) FreeCADGui.SendMsgToActiveView("Save") return doc = FreeCAD.activeDocument() guidoc = FreeCADGui.activeDocument() view = guidoc.activeView() dialog = QtGui.QFileDialog( QtGui.QApplication.activeWindow(), translate("A2plus", "Select FreeCAD document to import part from") ) # set option "DontUseNativeDialog"=True, as native Filedialog shows # misbehavior on Ubuntu 18.04 LTS. It works case sensitively, what is not wanted... if a2plib.getNativeFileManagerUsage(): dialog.setOption(QtGui.QFileDialog.DontUseNativeDialog, False) else: dialog.setOption(QtGui.QFileDialog.DontUseNativeDialog, True) dialog.setNameFilter(translate("A2plus", "Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*)")) if dialog.exec_(): filename = str(dialog.selectedFiles()[0]) else: return if not a2plib.checkFileIsInProjectFolder(filename): msg = translate("A2plus", "The part you try to import is outside of your project-folder! Check your settings of A2plus preferences.") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Import Error"), msg ) return #========================================================================================== # for multiple part import: first open the importDoc, if possible #========================================================================================== # look only for filenames, not paths, as there are problems on WIN10 (Address-translation??) #========================================================================================== importDoc = None importDocIsOpen = False requestedFile = os.path.split(filename)[1] for d in FreeCAD.listDocuments().values(): recentFile = os.path.split(d.FileName)[1] if requestedFile == recentFile: importDoc = d # file is already open... importDocIsOpen = True break if not importDocIsOpen: if filename.lower().endswith('.fcstd'): importDoc = FreeCAD.openDocument(filename) elif filename.lower().endswith('.stp') or filename.lower().endswith('.step'): import ImportGui fname = os.path.splitext(os.path.basename(filename))[0] FreeCAD.newDocument(fname) newname = FreeCAD.ActiveDocument.Name FreeCAD.setActiveDocument(newname) ImportGui.insert(filename,newname) importDoc = FreeCAD.ActiveDocument else: msg = translate("A2plus", "A part can only be imported from a FreeCAD '*.FCStd' file") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Value Error"), msg ) return #========================================================================================== # file seems to be open.... # detect the importable objects... #========================================================================================== topoMapper = TopoMapper(importDoc) importableObjects = topoMapper.getTopLevelObjects(allowSketches=True) if len(importableObjects) == 0: msg = translate("A2plus", "No visible Part to import found. Aborting operation") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Import Error"), msg ) return #========================================================================================== # creates a dialog for selecting the parts #========================================================================================== labelList = [] iconList = [] dc = DataContainer() for io in importableObjects: labelList.append(io.Label) iconList.append(io.ViewObject.Icon) dialog = a2p_multiShapeExtractDialog( QtGui.QApplication.activeWindow(), labelList, iconList, dc ) dialog.exec_() if dialog.rejected: FreeCAD.closeDocument(importDoc.Name) if dc.tx is None or len(dc.tx)==0: return selectedObjects = dc.tx importedObjectsList = [] for so in selectedObjects: importedObject = importPartFromFile(doc, filename, extractSingleShape=True, desiredShapeLabel = so) if not importedObject: a2plib.Msg(translate("A2plus", "Imported Object is empty/none") + "\n") continue importedObjectsList.append(importedObject) try: FreeCAD.closeDocument(importDoc.Name) #avoid errormessage if doc already closed... except: pass mw = FreeCADGui.getMainWindow() mdi = mw.findChild(QtGui.QMdiArea) sub = mdi.activeSubWindow() if sub is not None: sub.showMaximized() self.timer = QtCore.QTimer() QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.GuiViewFit) self.timer.start( 200 ) #0.2 seconds for io in importedObjectsList: if io and a2plib.isA2pSketch(io): if not any([i.fixedPosition for i in doc.Objects if hasattr(i, 'fixedPosition') ]): io.fixedPosition = True # At first, make all imported Objects invisible, for io in importedObjectsList: io.ViewObject.Visibility = False for io in importedObjectsList: io.ViewObject.Visibility = True # make imported objects visible step by step, # in order to see, which one is recently being placed.. if io and not a2plib.isA2pSketch(io) and not io.fixedPosition: pm = PartMover( view, io, deleteOnEscape = True ) while pm.isActive: FreeCADGui.updateGui() # keeping the UI responsible del pm return # def IsActive(self): # doc = FreeCAD.activeDocument() # if doc is None: return False # return True def GuiViewFit(self): FreeCADGui.SendMsgToActiveView("ViewFit") self.timer.stop() FreeCADGui.addCommand('a2p_ImportShapeReferenceCommand',a2p_ImportShapeReferenceCommand()) #============================================================================== toolTip = \ translate("A2plus", ''' Restore transparency to active document objects ''' ) class a2p_Restore_Transparency_Command(): def GetResources(self): return {'Pixmap' : a2plib.get_module_path()+'/icons/a2p_Restore_Transparency.svg', 'Accel' : "Shift+T", # a default shortcut (optional) 'MenuText': translate("A2plus", "Restore transparency to active document objects"), 'ToolTip' : toolTip } def Activated(self): doc = FreeCAD.ActiveDocument if doc is None: FreeCAD.Console.Print(translate("A2plus", "No active document found!")) return else: for obj in doc.Objects: if hasattr (obj, 'ViewObject'): if hasattr (obj.ViewObject, 'Transparency'): if obj.ViewObject.Transparency < 100: transparency = obj.ViewObject.Transparency obj.ViewObject.Transparency = transparency + 1 obj.ViewObject.Transparency = transparency return def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False return True FreeCADGui.addCommand('a2p_Restore_Transparency',a2p_Restore_Transparency_Command()) #============================================================================== toolTip = \ translate("A2plus", ''' Add a part from an external file to the assembly ''' ) class a2p_ImportPartCommand(): def GetResources(self): return {'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ImportPart.svg', 'Accel' : "Shift+A", # a default shortcut (optional) 'MenuText': translate("A2plus", "Add a part from an external file"), 'ToolTip' : toolTip } def Activated(self): if FreeCAD.ActiveDocument is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "First create an empty file and save it under desired name") ) return # if FreeCAD.ActiveDocument.FileName == '': QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Unnamed document"), translate("A2plus", "Before inserting first part, please save the empty assembly to give it a name") ) FreeCADGui.SendMsgToActiveView("Save") return doc = FreeCAD.activeDocument() guidoc = FreeCADGui.activeDocument() view = guidoc.activeView() dialog = QtGui.QFileDialog( QtGui.QApplication.activeWindow(), translate("A2plus", "Select FreeCAD document to import part from") ) # set option "DontUseNativeDialog"=True, as native Filedialog shows # misbehavior on Ubuntu 18.04 LTS. It works case sensitively, what is not wanted... if a2plib.getNativeFileManagerUsage(): dialog.setOption(QtGui.QFileDialog.DontUseNativeDialog, False) else: dialog.setOption(QtGui.QFileDialog.DontUseNativeDialog, True) dialog.setNameFilter(translate("A2plus", "Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*)")) if dialog.exec_(): filename = str(dialog.selectedFiles()[0]) else: return if not a2plib.checkFileIsInProjectFolder(filename): msg = translate("A2plus", "The part you try to import is outside of your project-folder! Check your settings of A2plus preferences.") QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus","Import Error"), msg ) return #TODO: change for multi separate part import importedObject = importPartFromFile(doc, filename) if not importedObject: a2plib.Msg(translate("A2plus", "Imported Object is empty/none\n")) return mw = FreeCADGui.getMainWindow() mdi = mw.findChild(QtGui.QMdiArea) sub = mdi.activeSubWindow() if sub is not None: sub.showMaximized() # WF: how will this work for multiple imported objects? # only A2p AI's will have property "fixedPosition" if importedObject and not importedObject.fixedPosition: PartMover( view, importedObject, deleteOnEscape = True ) else: self.timer = QtCore.QTimer() QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.GuiViewFit) self.timer.start( 200 ) #0.2 seconds return # def IsActive(self): # doc = FreeCAD.activeDocument() # if doc is None: return False # return True def GuiViewFit(self): FreeCADGui.SendMsgToActiveView("ViewFit") self.timer.stop() FreeCADGui.addCommand('a2p_ImportPart',a2p_ImportPartCommand()) #============================================================================== def updateImportedParts(doc, partial=False): doc.openTransaction("updateImportParts") objectCache.cleanUp(doc) selectedObjects=[] selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument and (a2plib.isA2pPart(s) or a2plib.isA2pSketch(s)) ] if selection and len(selection)>0: if partial==True: response = QtGui.QMessageBox.Yes else: flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "ASSEMBLY UPDATE"), translate("A2plus", "Do you want to update only the selected parts?"), flags ) if response == QtGui.QMessageBox.Yes: for s in selection: selectedObjects.append(s) if len(selectedObjects) >0: workingSet = selectedObjects else: workingSet = doc.Objects for obj in workingSet: if hasattr(obj, 'sourceFile') and a2plib.to_str(obj.sourceFile) == a2plib.to_str('converted'): if hasattr(obj,'localSourceObject') and obj.localSourceObject is not None and obj.localSourceObject != "": a2p_convertPart.updateConvertedPart(doc, obj) continue if hasattr(obj, 'sourceFile') and a2plib.to_str(obj.sourceFile) != a2plib.to_str('converted'): #repair data structures (perhaps an old Assembly2 import was found) if hasattr(obj,"Content") and 'importPart' in obj.Content: # be sure to have an assembly object if obj.Proxy is None: #print (u"Repair Proxy of: {}, Proxy: {}".format(obj.Label, obj.Proxy)) Proxy_importPart(obj) ImportedPartViewProviderProxy(obj.ViewObject) assemblyPath = os.path.normpath(os.path.split(doc.FileName)[0]) absPath = a2plib.findSourceFileInProject(obj.sourceFile, assemblyPath) if absPath is None: QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "Source file not found"), translate("A2plus", "Unable to find '{}'").format( obj.sourceFile ) ) if absPath is not None and os.path.exists( absPath ): newPartCreationTime = os.path.getmtime( absPath ) if ( newPartCreationTime > obj.timeLastImport or obj.a2p_Version != a2plib.getA2pVersion() or a2plib.getRecalculateImportedParts() # open always all parts as they could depend on spreadsheets ): cacheKeyExtension = obj.sourcePart if cacheKeyExtension is None: cacheKeyExtension = "AllShapes" elif cacheKeyExtension == "": cacheKeyExtension = "AllShapes" cacheKeyExtension = '-' + cacheKeyExtension cacheKey = absPath+cacheKeyExtension if not objectCache.isCached(cacheKey): # Load every changed object one time to cache if obj.sourcePart is not None and obj.sourcePart != '': importPartFromFile( doc, absPath, importToCache=True, cacheKey = cacheKey, extractSingleShape = True, desiredShapeLabel = obj.sourcePart ) # the version is now in the cache else: importPartFromFile( doc, absPath, importToCache=True, cacheKey = cacheKey ) # the version is now in the cache newObject = objectCache.get(cacheKey) obj.timeLastImport = newPartCreationTime if hasattr(newObject, 'a2p_Version'): obj.a2p_Version = a2plib.getA2pVersion() importUpdateConstraintSubobjects( doc, obj, newObject ) # do this before changing shape and mux if hasattr(newObject, 'muxInfo'): obj.muxInfo = newObject.muxInfo # save Placement because following newObject.Shape.copy() isn't resetting it to zeroes... savedPlacement = obj.Placement obj.Shape = newObject.Shape.copy() if a2plib.isA2pSketch(obj): pass else: obj.Placement = savedPlacement # restore the old placement a2plib.copyObjectColors(obj,newObject) #repair constraint directions if for e.g. face-normals flipped around during updating of parts. a2p_constraintServices.reAdjustConstraintDirections(doc) mw = FreeCADGui.getMainWindow() mdi = mw.findChild(QtGui.QMdiArea) sub = mdi.activeSubWindow() if sub is not None: sub.showMaximized() objectCache.cleanUp(doc) a2p_solversystem.autoSolveConstraints( doc, useTransaction = False, callingFuncName = "updateImportedParts" ) #transaction is already open... doc.recompute() doc.commitTransaction() toolTip = \ translate("A2plus", ''' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) ''' ) class a2p_UpdateImportedPartsCommand: def Activated(self): doc = FreeCAD.ActiveDocument updateImportedParts(doc) def GetResources(self): return { 'Pixmap' : a2plib.path_a2p + '/icons/a2p_ImportPart_Update.svg', 'MenuText': translate("A2plus", "Update parts imported into the assembly"), 'ToolTip' : toolTip } def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False return True FreeCADGui.addCommand('a2p_updateImportedParts', a2p_UpdateImportedPartsCommand()) def duplicateImportedPart( part ): doc = FreeCAD.ActiveDocument nameBase = part.Label partName = a2plib.findUnusedObjectName(nameBase,document=doc) partLabel = a2plib.findUnusedObjectLabel(nameBase,document=doc) newObj = doc.addObject("Part::FeaturePython", str(partName.encode("utf-8")) ) newObj.Label = partLabel Proxy_importPart(newObj) ImportedPartViewProviderProxy(newObj.ViewObject) newObj.a2p_Version = part.a2p_Version newObj.sourceFile = part.sourceFile newObj.sourcePart = part.sourcePart newObj.localSourceObject = part.localSourceObject newObj.timeLastImport = part.timeLastImport newObj.setEditorMode("timeLastImport",1) newObj.fixedPosition = False newObj.updateColors = getattr(part,'updateColors',True) newObj.muxInfo = part.muxInfo newObj.subassemblyImport = part.subassemblyImport newObj.Shape = part.Shape.copy() for p in part.ViewObject.PropertiesList: #assuming that the user may change the appearance of parts differently depending on their role in the assembly. if hasattr(part.ViewObject, p) and p not in ['DiffuseColor','Proxy','MappedColors']: setattr(newObj.ViewObject, p, getattr( part.ViewObject, p)) newObj.ViewObject.DiffuseColor = copy.copy( part.ViewObject.DiffuseColor ) newObj.ViewObject.Transparency = part.ViewObject.Transparency newObj.Placement.Base = part.Placement.Base newObj.Placement.Rotation = part.Placement.Rotation return newObj toolTip = \ translate("A2plus", ''' Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. ''' ) class a2p_DuplicatePartCommand: def __init__(self): self.partMover = None def Activated(self): doc = FreeCAD.activeDocument() selection = [s for s in FreeCADGui.Selection.getSelectionEx() if s.Document == doc ] self.partMover = PartMover( FreeCADGui.activeDocument().activeView(), duplicateImportedPart(selection[0].Object), deleteOnEscape = True ) self.timer = QtCore.QTimer() QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.onTimer) self.timer.start( 100 ) def onTimer(self): if self.partMover is not None: if self.partMover.objectToDelete is not None: FreeCAD.activeDocument().removeObject(self.partMover.objectToDelete.Name) self.partMover.objectToDelete = None self.timer.start(100) def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False # selection = [s for s in FreeCADGui.Selection.getSelectionEx() if s.Document == doc ] if len(selection) != 1: return False # obj = selection[0].Object if not a2plib.isA2pPart(obj): return False # return True def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_DuplicatePart.svg', 'MenuText': translate("A2plus", "Create duplicate of a part"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_duplicatePart', a2p_DuplicatePartCommand()) toolTip = \ translate("A2plus", ''' Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. ''' ) class a2p_EditPartCommand: def Activated(self): doc = FreeCAD.activeDocument() selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument ] #==================================================== # Do we deal with a converted Part ? #==================================================== obj = selection[0] if obj.sourceFile == 'converted': try: originalPart = doc.getObject(obj.localSourceObject) FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.addSelection(originalPart) QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Information"), translate("A2plus", "Please edit the highlighted object. When finished, update the assembly") ) return except: pass QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "File error!"), translate("A2plus", "Cannot find the local source object. Has it been deleted?") ) return #==================================================== # Does the file exist ? #==================================================== obj = selection[0] FreeCADGui.Selection.clearSelection() # very important! Avoid Editing the assembly the part was called from! assemblyPath = os.path.normpath(os.path.split(doc.FileName)[0]) fileNameWithinProjectFile = a2plib.findSourceFileInProject(obj.sourceFile, assemblyPath) if fileNameWithinProjectFile is None: msg = translate("A2plus", "You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder") QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "File error!"), msg ) return #==================================================== # Open the file for editing and switch the window #==================================================== #Workaround to detect open files on Win10 (Address Translation problem??) importDocIsOpen = False requestedFile = os.path.split(fileNameWithinProjectFile)[1] for d in FreeCAD.listDocuments().values(): recentFile = os.path.split(d.FileName)[1] if requestedFile == recentFile: importDoc = d # file is already open... importDocIsOpen = True break if not importDocIsOpen: if fileNameWithinProjectFile.lower().endswith('.stp') or fileNameWithinProjectFile.lower().endswith('.step'): import ImportGui fname = os.path.splitext(os.path.basename(fileNameWithinProjectFile))[0] FreeCAD.newDocument(fname) newname = FreeCAD.ActiveDocument.Name ImportGui.open(fileNameWithinProjectFile, newname) FreeCAD.ActiveDocument.Label = fname FreeCADGui.SendMsgToActiveView("ViewFit") msg = translate("A2plus", "Editing a STEP file as '*.FCStd' file.\nPlease export the saved file as \'.step\'\n") + fileNameWithinProjectFile QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Info"), msg ) else: FreeCAD.open(fileNameWithinProjectFile) else: name = importDoc.Name # Search and activate the corresponding document window.. mw=FreeCADGui.getMainWindow() mdi=mw.findChild(QtGui.QMdiArea) sub=mdi.subWindowList() for s in sub: mdi.setActiveSubWindow(s) if FreeCAD.activeDocument().Name == name: break def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument ] if len(selection) != 1: return False if not a2plib.isEditableA2pPart(selection[0]): return False return True def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_EditPart.svg', 'MenuText': translate("A2plus", "Edit an imported part (open linked FCStd file)"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_editImportedPart', a2p_EditPartCommand()) #=============================================================================== class PartMover: def __init__(self, view, obj, deleteOnEscape): self.obj = obj self.initialPosition = self.obj.Placement.Base self.view = view self.deleteOnEscape = deleteOnEscape self.callbackMove = self.view.addEventCallback("SoLocation2Event",self.moveMouse) self.callbackClick = self.view.addEventCallback("SoMouseButtonEvent",self.clickMouse) self.callbackKey = self.view.addEventCallback("SoKeyboardEvent",self.KeyboardEvent) self.objectToDelete = None # object reference when pressing the escape key self.isActive = True def moveMouse(self, info): newPos = self.view.getPoint( *info['Position'] ) self.obj.Placement.Base = newPos def removeCallbacks(self): self.view.removeEventCallback("SoLocation2Event",self.callbackMove) self.view.removeEventCallback("SoMouseButtonEvent",self.callbackClick) self.view.removeEventCallback("SoKeyboardEvent",self.callbackKey) self.isActive = False def clickMouse(self, info): if info['Button'] == 'BUTTON1' and info['State'] == 'DOWN': #if not info['ShiftDown'] and not info['CtrlDown']: #struggles within Inventor Navigation if not info['ShiftDown']: self.removeCallbacks() FreeCAD.activeDocument().recompute() elif info['ShiftDown']: self.obj = duplicateImportedPart(self.obj) self.deleteOnEscape = True def KeyboardEvent(self, info): if info['State'] == 'UP' and info['Key'] == 'ESCAPE': self.removeCallbacks() if not self.deleteOnEscape: self.obj.Placement.Base = self.initialPosition else: self.objectToDelete = self.obj #This can be asked by a timer in a calling func... #This causes a crash in FC0.19/Qt5/Py3 #FreeCAD.activeDocument().removeObject(self.obj.Name) #=============================================================================== toolTip = \ translate("A2plus", ''' Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. ''' ) class a2p_MovePartCommand: def __init__(self): self.partMover = None def Activated(self): doc = FreeCAD.activeDocument() selection = [s for s in FreeCADGui.Selection.getSelectionEx() if s.Document == doc ] FreeCADGui.ActiveDocument.setEdit(selection[0].Object) def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False # selection = [s for s in FreeCADGui.Selection.getSelectionEx() if s.Document == doc ] if len(selection) != 1: return False # obj = selection[0].Object if not a2plib.isA2pPart(obj): return False # return True def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_MovePart.svg', 'MenuText': translate("A2plus", "Move the selected part"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_movePart', a2p_MovePartCommand()) class ConstrainedPartsMover: def __init__(self, view): self.obj = None self.view = view self.doc = FreeCAD.activeDocument() self.callbackMove = self.view.addEventCallback("SoLocation2Event",self.onMouseMove) self.callbackClick = self.view.addEventCallback("SoMouseButtonEvent",self.onMouseClicked) self.callbackKey = self.view.addEventCallback("SoKeyboardEvent",self.KeyboardEvent) self.motionActivated = False def setPreselection(self,doc,obj,sub): if not self.motionActivated: doc = FreeCAD.activeDocument() self.obj = doc.getObject(obj) def addSelection(self,doc,obj,sub,pnt): pass def removeSelection(self,doc,obj,sub): pass def clearSelection(self,doc): pass def onMouseMove(self, info): if self.obj is None: return if self.motionActivated: newPos = self.view.getPoint( *info['Position'] ) self.obj.Placement.Base = newPos a2plib.setSimulationState(True) systemSolved = a2p_solversystem.solveConstraints(self.doc, useTransaction = False) a2plib.setSimulationState(False) if systemSolved == False: self.doc.commitTransaction() QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Animation problem detected"), translate("A2plus", "Use system undo if necessary.") ) self.removeCallbacks() def removeCallbacks(self): self.view.removeEventCallback("SoLocation2Event",self.callbackMove) self.view.removeEventCallback("SoMouseButtonEvent",self.callbackClick) self.view.removeEventCallback("SoKeyboardEvent",self.callbackKey) FreeCADGui.Selection.removeObserver(self) def onMouseClicked(self, info): if self.obj is None: return if info['Button'] == 'BUTTON1' and info['State'] == 'DOWN': if hasattr(self.obj, 'fixedPosition') and self.obj.fixedPosition == True: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Invalid selection"), translate("A2plus", "A2plus will not move a part with property ") + '''fixedPosition == True''' ) self.removeCallbacks() del self else: self.motionActivated = not self.motionActivated if self.motionActivated == True: self.doc.openTransaction("drag constrained parts") if self.motionActivated == False: # Solve last time with high accuracy to finish a2plib.setSimulationState(False) a2p_solversystem.solveConstraints(self.doc, useTransaction = False) self.doc.commitTransaction() self.removeCallbacks() def KeyboardEvent(self, info): doc = FreeCAD.activeDocument() if info['State'] == 'UP' and info['Key'] == 'ESCAPE': doc.commitTransaction() self.removeCallbacks() #=============================================================================== toolTip = \ translate("A2plus", ''' Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates ''' ) class a2p_MovePartUnderConstraints: def __init__(self): self.partMover = None def Activated(self): self.partMover = ConstrainedPartsMover( FreeCADGui.activeDocument().activeView() ) FreeCADGui.Selection.addObserver(self.partMover) def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False # #selection = [s for s in FreeCADGui.Selection.getSelectionEx() if s.Document == doc ] #if len(selection) != 1: return False # #obj = selection[0].Object #if not a2plib.isA2pPart(obj): return False # return True def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_MovePartUnderConstraints.svg', 'MenuText': translate("A2plus", "Move the selected part under constraints"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_MovePartUnderConstraints', a2p_MovePartUnderConstraints()) #=============================================================================== toolTipText = \ translate("A2plus", ''' Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. ''' ) class DeleteConnectionsCommand: def Activated(self): selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument ] #if len(selection) == 1: not required as this check is done in initGui # WF: still get 'list index out of range' if nothing selected. if len(selection) != 1: QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "Selection Error"), translate("A2plus", "Select exactly 1 part")) return part = selection[0] deleteList = [] for c in FreeCAD.ActiveDocument.Objects: if 'ConstraintInfo' in c.Content: if part.Name in [ c.Object1, c.Object2 ]: deleteList.append(c) if len(deleteList) == 0: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Info"), translate("A2plus", "No constraints refer to '%s'") % part.Name) else: flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate("A2plus", "Delete {}'s constraint(s):\n - {}?").format( part.Label, u'\n - '.join( c.Name for c in deleteList) ) response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Delete constraints?"), msg, flags ) if response == QtGui.QMessageBox.Yes: doc = FreeCAD.activeDocument() doc.openTransaction(translate("A2plus", "Deleting part's constraints")) #TODO Need "\n" on end of Transaction? for c in deleteList: a2plib.removeConstraint(c) doc.commitTransaction() def IsActive(self): selection = FreeCADGui.Selection.getSelection() if len(selection) != 1: return False obj = selection[0] if a2plib.isConstrainedPart(FreeCAD.activeDocument(), obj): return True else: return False def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_DeleteConnections.svg', 'MenuText': translate("A2plus", "Delete all constraints of selected parts"), 'ToolTip' : toolTipText } FreeCADGui.addCommand('a2p_DeleteConnectionsCommand', DeleteConnectionsCommand()) #=============================================================================== toolTip = \ translate("A2plus", ''' Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. ''' ) class ViewConnectionsCommand: def Activated(self): doc = FreeCAD.ActiveDocument selected = a2plib.getSelectedConstraint() if selected is None: return initialTransparencyState = a2plib.isTransparencyEnabled() if not initialTransparencyState: a2plib.setTransparency() FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.addSelection( doc.getObject(selected.Object1), selected.SubElement1) FreeCADGui.Selection.addSelection( doc.getObject(selected.Object2), selected.SubElement2) # Add observer to remove the transparency when the selection is changing or removing FreeCADGui.Selection.addObserver(ViewConnectionsObserver(initialTransparencyState)) def IsActive(self): #return (a2plib.getSelectedConstraint() is not None and a2plib.isTransparencyEnabled() == False) return (a2plib.getSelectedConstraint() is not None) def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ViewConnection.svg', 'MenuText': translate("A2plus", "Highlight both constrained parts"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_ViewConnectionsCommand', ViewConnectionsCommand()) #=============================================================================== class ViewConnectionsObserver: def __init__(self,initialTransparencyState): self.ignoreClear = False self.initialTransparencyState = initialTransparencyState a2plib.setConstraintViewMode(True) def clearSelection(self, doc): if self.ignoreClear: self.ignoreClear = False else: # remove observer at once, as restoreTransparency would trigger it again... FreeCADGui.Selection.removeObserver(self) # if a2plib.isTransparencyEnabled() and not self.initialTransparencyState: a2plib.restoreTransparency() a2plib.setConstraintViewMode(False) def setSelection(self, doc): selected = a2plib.getSelectedConstraint() if selected is not None: self.ignoreClear = True FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.addSelection( FreeCAD.ActiveDocument.getObject(selected.Object1), selected.SubElement1) FreeCADGui.Selection.addSelection( FreeCAD.ActiveDocument.getObject(selected.Object2), selected.SubElement2) toolTip = \ translate("A2plus", ''' Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. ''' ) class a2p_isolateCommand: def hasFaces(self,ob): if hasattr(ob,"Shape") and hasattr(ob.Shape,"Faces") and len(ob.Shape.Faces)>0: return True return False def Activated(self): if FreeCAD.activeDocument() is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument ] FreeCADGui.Selection.clearSelection() doc = FreeCAD.ActiveDocument if len(selection) == 0: # Show all elements for obj in doc.Objects: if obj.Name == 'PartInformation': continue if obj.Name[:4] == 'Page': continue if obj.Name == 'SimpleAssemblyShape': continue if not self.hasFaces(obj): continue if hasattr(obj,'ViewObject'): if hasattr(obj.ViewObject,'Visibility'): obj.ViewObject.Visibility = True else: # Show only selected elements for obj in doc.Objects: if obj.Name == 'PartInformation': continue if obj.Name[:4] == 'Page': continue if obj.Name == 'SimpleAssemblyShape': continue if a2plib.isA2pConstraint(obj): continue if hasattr(obj,'ViewObject'): if hasattr(obj.ViewObject,'Visibility'): if obj in selection: obj.ViewObject.Visibility = True else: obj.ViewObject.Visibility = False def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_Isolate_Element.svg', 'MenuText': translate("A2plus", "Show only selected elements or all if none is selected"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_isolateCommand', a2p_isolateCommand()) #=============================================================================== class a2p_ToggleTransparencyCommand: def Activated(self, checked): if FreeCAD.activeDocument() is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return if a2plib.isTransparencyEnabled(): a2plib.restoreTransparency() else: a2plib.setTransparency() def IsChecked(self): return a2plib.isTransparencyEnabled() def IsActive(self): return not a2plib.getConstraintViewMode() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ToggleTransparency.svg', 'MenuText' : translate("A2plus", "Toggle transparency of assembly"), 'ToolTip' : translate("A2plus", "Toggles transparency of assembly"), 'Checkable': self.IsChecked() } FreeCADGui.addCommand('a2p_ToggleTransparencyCommand', a2p_ToggleTransparencyCommand()) #=============================================================================== toolTipMessage = \ translate("A2plus", ''' Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button ''' ) class a2p_ToggleAutoSolveCommand: def Activated(self, checked): a2plib.setAutoSolve(checked) def IsChecked(self): return a2plib.getAutoSolveState() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_ToggleAutoSolve.svg', 'MenuText' : translate("A2plus", "Toggle auto solve"), 'ToolTip' : toolTipMessage, 'Checkable': self.IsChecked() } FreeCADGui.addCommand('a2p_ToggleAutoSolveCommand', a2p_ToggleAutoSolveCommand()) #=============================================================================== class a2p_TogglePartialProcessingCommand: def Activated(self, checked): a2plib.setPartialProcessing(checked) def IsChecked(self): return a2plib.isPartialProcessing() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_TogglePartial.svg', 'MenuText' : translate("A2plus", "Toggle partial processing"), 'ToolTip' : translate("A2plus", "Toggle partial processing"), 'Checkable': self.IsChecked() } FreeCADGui.addCommand('a2p_TogglePartialProcessingCommand', a2p_TogglePartialProcessingCommand()) #=============================================================================== toolTipMessage = \ translate("A2plus", "Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again.") class a2p_repairTreeViewCommand: def Activated(self): if FreeCAD.activeDocument() is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return a2plib.a2p_repairTreeView() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_RepairTree.svg', 'MenuText': translate("A2plus", "Repair the tree view if it is somehow damaged"), 'ToolTip' : toolTipMessage } FreeCADGui.addCommand('a2p_repairTreeViewCommand', a2p_repairTreeViewCommand()) #=============================================================================== toolTip = \ translate("A2plus", ''' Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) ''' ) class a2p_FlipConstraintDirectionCommand: def Activated(self): if FreeCAD.activeDocument() is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return a2p_FlipConstraintDirection() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_FlipConstraint.svg', 'MenuText': translate("A2plus", "Flip direction of last constraint"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_FlipConstraintDirectionCommand', a2p_FlipConstraintDirectionCommand()) #=============================================================================== def a2p_FlipConstraintDirection(): """Updating constraints, deactivated at moment.""" constraints = [ obj for obj in FreeCAD.ActiveDocument.Objects if 'ConstraintInfo' in obj.Content ] if len(constraints) == 0: QtGui.QMessageBox.information( QtGui.qApp.activeWindow(), translate("A2plus", "Command Aborted"), translate("A2plus", "Flip aborted since no a2p constraints in active document.") ) return lastConstraintAdded = constraints[-1] try: if lastConstraintAdded.directionConstraint == 'aligned': lastConstraintAdded.directionConstraint = 'opposed' else: lastConstraintAdded.directionConstraint = 'aligned' a2p_solversystem.autoSolveConstraints(FreeCAD.activeDocument(), callingFuncName="a2p_FlipConstraintDirection") except: pass class a2p_Show_Hierarchy_Command: def Activated(self): doc = FreeCAD.activeDocument() if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return ss = a2p_solversystem.SolverSystem() ss.loadSystem(doc) ss.assignParentship(doc) ss.visualizeHierarchy() def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_Treeview.svg', 'MenuText': translate("A2plus", "Generate HTML file with detailed constraining structure"), 'ToolTip' : translate("A2plus", "Generates HTML file with detailed constraining structure") } FreeCADGui.addCommand('a2p_Show_Hierarchy_Command', a2p_Show_Hierarchy_Command()) #=============================================================================== class a2p_Show_PartLabels_Command: def Activated(self, index): doc = FreeCAD.activeDocument() if index == 0: """Remove labels from 3D view.""" dofGroup = doc.getObject("partLabels") if dofGroup is not None: for lbl in dofGroup.Group: doc.removeObject(lbl.Name) doc.removeObject("partLabels") else: """Create or update labels within 3D view.""" a2pObjects = [] for ob in doc.Objects: if a2plib.isA2pPart(ob): a2pObjects.append(ob) if len(a2pObjects) == 0: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Nothing found to be labeled!"), translate("A2plus", "This document does not contain A2p-objects") ) return labelGroup = doc.getObject("partLabels") if labelGroup is None: labelGroup=doc.addObject("App::DocumentObjectGroup", "partLabels") else: for lbl in labelGroup.Group: doc.removeObject(lbl.Name) doc.removeObject("partLabels") labelGroup=doc.addObject("App::DocumentObjectGroup", "partLabels") for ob in a2pObjects: if ob.ViewObject.Visibility == True: bbCenter = ob.Shape.BoundBox.Center partLabel = doc.addObject("App::AnnotationLabel","partLabel") partLabel.LabelText = a2plib.to_str(ob.Label) partLabel.BasePosition.x = bbCenter.x partLabel.BasePosition.y = bbCenter.y partLabel.BasePosition.z = bbCenter.z # partLabel.ViewObject.BackgroundColor = a2plib.YELLOW partLabel.ViewObject.TextColor = a2plib.BLACK labelGroup.addObject(partLabel) def IsChecked(self): doc = FreeCAD.activeDocument() if not doc: return False labelGroup = doc.getObject("partLabels") return labelGroup is not None def IsActive(self): doc = FreeCAD.activeDocument() return doc is not None def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_PartLabel.svg', 'MenuText' : translate("A2plus", "Show part labels in 3D view"), 'ToolTip' : translate("A2plus", "Toggle showing part labels in 3D view"), 'Checkable': False } FreeCADGui.addCommand('a2p_Show_PartLabels_Command', a2p_Show_PartLabels_Command()) #=============================================================================== class a2p_Show_DOF_info_Command: def Activated(self, index): if index == 0: """Remove the existing labels from screen.""" doc = FreeCAD.activeDocument() dofGroup = doc.getObject("dofLabels") if dofGroup is not None: for lbl in dofGroup.Group: doc.removeObject(lbl.Name) doc.removeObject("dofLabels") else: ss = a2p_solversystem.SolverSystem() ss.DOF_info_to_console() def IsActive(self): doc = FreeCAD.activeDocument() return doc is not None def IsChecked(self): doc = FreeCAD.activeDocument() if not doc: return False dofGroup = doc.getObject("dofLabels") return dofGroup is not None def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_DOFs.svg', 'MenuText' : translate("A2plus", "Print detailed DOF information"), 'ToolTip' : translate("A2plus", "Toggle printing detailed DOF information"), 'Checkable': False } FreeCADGui.addCommand('a2p_Show_DOF_info_Command', a2p_Show_DOF_info_Command()) #=============================================================================== class a2p_absPath_to_relPath_Command: def Activated(self): doc = FreeCAD.activeDocument() if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "You have to open an assembly file first.") ) return assemblyPath = os.path.normpath( os.path.split( os.path.normpath(doc.FileName) )[0]) importParts = [ob for ob in doc.Objects if "importPart" in ob.Content] for iPart in importParts: if ( iPart.sourceFile.startswith("./") or iPart.sourceFile.startswith("../") or iPart.sourceFile.startswith(".\\") or iPart.sourceFile.startswith("..\\") ): continue # path is already relative filePath = os.path.normpath(iPart.sourceFile) if platform.system() == "Windows": prefix = '.\\' else: prefix = './' iPart.sourceFile = prefix + os.path.relpath(filePath, assemblyPath) def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_SetRelativePathes.svg', 'MenuText': translate("A2plus", "Convert absolute paths of imported parts to relative ones"), 'ToolTip' : translate("A2plus", "Converts absolute paths of imported parts to relative ones") } FreeCADGui.addCommand('a2p_absPath_to_relPath_Command', a2p_absPath_to_relPath_Command()) #============================================================================== class a2p_SaveAndExit_Command: def Activated(self): doc = FreeCAD.activeDocument() try: doc.save() FreeCAD.closeDocument(doc.Name) except: FreeCADGui.SendMsgToActiveView("Save") if not FreeCADGui.activeDocument().Modified: # user really saved the file FreeCAD.closeDocument(doc.Name) # mw = FreeCADGui.getMainWindow() mdi = mw.findChild(QtGui.QMdiArea) sub = mdi.activeSubWindow() if sub is not None: sub.showMaximized() def IsActive(self): return FreeCAD.activeDocument() is not None def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_Save_and_exit.svg', 'MenuText': translate("A2plus", "Save and exit the active document"), 'ToolTip' : translate("A2plus", "Save and exit the active document") } FreeCADGui.addCommand('a2p_SaveAndExit_Command', a2p_SaveAndExit_Command()) #============================================================================== toolTip = \ translate("A2plus", ''' Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. ''' ) class a2p_MigrateProxiesCommand(): def Activated(self): flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Migrate proxies of imported Parts to recent version"), translate("A2plus", "Make sure you have a backup of your files. Proceed?"), flags ) if response == QtGui.QMessageBox.Yes: doc = FreeCAD.activeDocument() for ob in doc.Objects: if a2plib.isA2pPart(ob): #setup proxies a2p_importedPart_class.Proxy_importPart(ob) if FreeCAD.GuiUp: a2p_importedPart_class.ImportedPartViewProviderProxy(ob.ViewObject) #delete obsolete properties deleteList = [] tmp = ob.PropertiesList for prop in tmp: if prop.startswith('pi_') or prop == 'assembly2Version': deleteList.append(prop) for prop in deleteList: ob.removeProperty(prop) QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "The proxies have been migrated."), translate("A2plus", "Please save and reopen this assembly file") ) def GetResources(self): return { 'Pixmap' : ':/icons/a2p_Upgrade.svg', 'MenuText': translate("A2plus", "Migrate proxies of imported parts"), 'ToolTip': toolTip } FreeCADGui.addCommand('a2p_MigrateProxiesCommand', a2p_MigrateProxiesCommand()) #============================================================================== def importUpdateConstraintSubobjects( doc, oldObject, newObject ): if not a2plib.getUseTopoNaming(): return # return if there are no constraints linked to the object if len([c for c in doc.Objects if 'ConstraintInfo' in c.Content and oldObject.Name in [c.Object1, c.Object2] ]) == 0: return # check, whether object is an assembly with muxInformations. # Then find edgenames with mapping in muxinfo... deletionList = [] #for broken constraints if hasattr(oldObject, 'muxInfo'): if hasattr(newObject, 'muxInfo'): # oldVertexNames = [] oldEdgeNames = [] oldFaceNames = [] for item in oldObject.muxInfo: if item[:1] == 'V': oldVertexNames.append(item) if item[:1] == 'E': oldEdgeNames.append(item) if item[:1] == 'F': oldFaceNames.append(item) # newVertexNames = [] newEdgeNames = [] newFaceNames = [] for item in newObject.muxInfo: if item[:1] == 'V': newVertexNames.append(item) if item[:1] == 'E': newEdgeNames.append(item) if item[:1] == 'F': newFaceNames.append(item) # partName = oldObject.Name for c in doc.Objects: if 'ConstraintInfo' in c.Content: if partName == c.Object1: SubElement = "SubElement1" elif partName == c.Object2: SubElement = "SubElement2" else: SubElement = None if SubElement: #same as subElement <> None subElementName = getattr(c, SubElement) if subElementName[:4] == 'Face': try: oldIndex = int(subElementName[4:])-1 oldConstraintString = oldFaceNames[oldIndex] newIndex = newFaceNames.index(oldConstraintString) newSubElementName = 'Face'+str(newIndex+1) except: newIndex = -1 newSubElementName = 'INVALID' elif subElementName[:4] == 'Edge': try: oldIndex = int(subElementName[4:])-1 oldConstraintString = oldEdgeNames[oldIndex] newIndex = newEdgeNames.index(oldConstraintString) newSubElementName = 'Edge'+str(newIndex+1) except: newIndex = -1 newSubElementName = 'INVALID' elif subElementName[:6] == 'Vertex': try: oldIndex = int(subElementName[6:])-1 oldConstraintString = oldVertexNames[oldIndex] newIndex = newVertexNames.index(oldConstraintString) newSubElementName = 'Vertex'+str(newIndex+1) except: newIndex = -1 newSubElementName = 'INVALID' else: newIndex = -1 newSubElementName = 'INVALID' if newIndex >= 0: setattr(c, SubElement, newSubElementName ) FreeCAD.Console.PrintMessage ( "oldConstraintString (KEY): {}".format( oldConstraintString ) ) FreeCAD.Console.PrintMessage (translate("A2plus", " Updating by SubElement-Map: '{}' => '{}'").format( subElementName,newSubElementName ) + "\n" ) continue # # if code coming here, constraint is broken if c.Name not in deletionList: deletionList.append(c.Name) if len(deletionList) > 0: # there are broken constraints.. for cName in deletionList: flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.Abort message = translate("A2plus", "Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage.") % cName #response = QtGui.QMessageBox.critical(QtGui.qApp.activeWindow(), translate("A2plus", "Broken Constraint"), message, flags ) response = QtGui.QMessageBox.critical(None, translate("A2plus", "Broken Constraint"), message, flags ) if response == QtGui.QMessageBox.Yes: FreeCAD.Console.PrintError(translate("A2plus", "Removing constraint %s") % cName) c = doc.getObject(cName) a2plib.removeConstraint(c) #============================================================================== class a2p_cleanUpDebug3dCommand(): def Activated(self): sg = FreeCADGui.ActiveDocument.ActiveView.getSceneGraph() if sg is not None: print(translate("A2plus", "3D-Debug contained '{}' vectors").format(len(a2plib.solver_debug_objects))) for vec in a2plib.solver_debug_objects: sg.removeChild(vec) a2plib.graphical_debug_output = [] def GetResources(self): return { 'Pixmap' : ':/icons/a2p_RemoveDebug3D.svg', 'MenuText': translate("A2plus", "Clean up solver debug output from 3D view"), 'ToolTip' : translate("A2plus", "Clean up solver debug output from 3D view") } FreeCADGui.addCommand('a2p_cleanUpDebug3dCommand', a2p_cleanUpDebug3dCommand()) #============================================================================== ================================================ FILE: a2p_lcs_support.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2019 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD import FreeCADGui from a2p_translateUtils import * #============================================================================== def LCS_Group_deleteContent(_self,doc): """ LCS_Group featurepython extending function deleteContent """ if len(_self.Group) > 0: deleteList = [] deleteList.extend(_self.Group) _self.Group = [] for ob in deleteList: doc.removeObject(ob.Name) # delete the imported LCS' #============================================================================== class LCS_Group(object): def __init__(self, obInstance): obInstance.addExtension('App::GeoFeatureGroupExtensionPython', self) obInstance.addProperty("App::PropertyString", "Owner").Owner = '' obInstance.setEditorMode('Owner', 1) obInstance.setEditorMode('Placement', 1) # read-only # KBWBE: does not work... obInstance.deleteContent = LCS_Group_deleteContent # add a function to this featurepython class def execute(self, obj): pass def onChanged(self, obj, prop): pass #============================================================================== class VP_LCS_Group(object): def __init__(self,vobj): vobj.addExtension('Gui::ViewProviderGeoFeatureGroupExtensionPython', self) vobj.Proxy = self def attach(self, vobj): self.ViewObject = vobj self.Object = vobj.Object # restore lost functions to featurePython object during reload if not hasattr(self.Object,'deleteContent'): self.Object.deleteContent = LCS_Group_deleteContent def onDelete(self, viewObject, subelements): # subelements is a tuple of strings if FreeCAD.activeDocument() != viewObject.Object.Document: return False # only delete objects in the active Document anytime !! obj = viewObject.Object doc = obj.Document try: if obj.Owner != '': owner = doc.getObject(obj.Owner) owner.lcsLink = [] # delete link entry within owning A2p part. except: pass obj.deleteContent(doc) # Clean up this group complete with all content return True def getIcon(self): return ":/icons/a2p_LCS_group.svg" def __getstate__(self): return None def __setstate__(self, state): return None def dumps(self): return None def loads(self, state): return None #============================================================================== def getListOfLCS(targetDoc,sourceDoc): lcsOut = [] for sourceOb in sourceDoc.Objects: if ( sourceOb.Name.startswith("Local_CS") or sourceOb.Name.startswith("App__Placement") or sourceOb.Name.startswith("a2pLCS") or sourceOb.Name.startswith("PartDesign__CoordinateSystem") ): newLCS = targetDoc.addObject("PartDesign::CoordinateSystem","a2pLCS") pl = sourceOb.getGlobalPlacement() newLCS.Placement = pl newLCS.setEditorMode('Placement', 1) #read-only # KBWBE: does not work... lcsOut.append(newLCS) return lcsOut ================================================ FILE: a2p_libDOF.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 Turro75 * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD, FreeCADGui, Part from FreeCAD import Base from PySide import QtGui, QtCore from a2p_translateUtils import * """ Library that defines the DOF of a Rigid, each rigids has several dependencies which define a refPoint(cross point the the axis) and a refAxisEnd which is a vector that defines the direction, togeher we can define an axis used in the constraint. This code was possible only after the reading of the Hamish's code on His wonderful Assembly2 Workbench for FreeCAD This code was possible only after the reading of the code of the wonderful WorkFeature Macro for FreeCAD This code was possible only after the reading of Wikipedia pages on vector math """ #define some reference axis SystemOrigin = FreeCAD.Vector(0.0,0.0,0.0) SystemXAxis = FreeCAD.Axis() SystemXAxis.Base = SystemOrigin SystemXAxis.Direction = SystemXAxis.Direction.add(FreeCAD.Vector(1.0,0.0,0.0)) SystemYAxis = FreeCAD.Axis() SystemYAxis.Base = SystemOrigin SystemYAxis.Direction = SystemYAxis.Direction.add(FreeCAD.Vector(0.0,1.0,0.0)) SystemZAxis = FreeCAD.Axis() SystemZAxis.Base = SystemOrigin SystemZAxis.Direction = SystemZAxis.Direction.add(FreeCAD.Vector(0.0,0.0,1.0)) #at the beginning each rigid is able to move along and around all six DOF initPosDOF = [SystemXAxis , SystemYAxis, SystemZAxis] initRotDOF = [SystemXAxis , SystemYAxis, SystemZAxis] #another array which stores the vertex used in points constraints (pointIdentity, SphericalIdentity, pointOnLine, pointOnPlane) PointConstraints = [] tolerance = 1e-4 #--> may be equal to parameter accuracy? #as first some helper functions #create an axis from refpoint and refAxisEnd taken from rigid deps def create_Axis(_base, _direction): axis=FreeCAD.Axis() axis.Base = _base axis.Direction = _direction return axis #create an axis that has Base in the first vector argument and direction defined by _start to _end shifted at SystemOrigin def create_Axis2Points(_start, _end): axis=FreeCAD.Axis() axis.Base = _start axis.Direction = _end.sub(_start) #axis.Direction = _end return axis def zeroIfLessThanTol(vector): _vector = FreeCAD.Vector(vector) if abs(_vector.x) <= tolerance: _vector.x = 0.0 if abs(_vector.y) <= tolerance: _vector.y = 0.0 if abs(_vector.z) <= tolerance: _vector.z = 0.0 return _vector def cleanAxis(axisa): axis=FreeCAD.Axis(axisa) axis.Base = zeroIfLessThanTol(axis.Base) try: axis.Direction.normalize() except: pass axis.Direction = zeroIfLessThanTol(axis.Direction) return axis def copynorm_AxisToOrigin(axisa, dbg=False): offset = SystemOrigin.sub(axisa.Base) axisb = FreeCAD.Axis(axisa) axisb.Base = SystemOrigin return cleanAxis(axisb) def normal_2Axis(axisa,axisb,dbg=False): """ create an axis which is normal to the plane defined by given 2 axes as argument """ #move vectors to origin and normalize axis1 = copynorm_AxisToOrigin(axisa) axis2 = copynorm_AxisToOrigin(axisb) #create an axis with base at SystemOrigin axisN = FreeCAD.Axis() #set the right direction axisN.Direction = axis1.Direction.cross(axis2.Direction) return cleanAxis(axisN) def make_planeNormal(axisa,dbg=False): """ create a plane normal to the given axis, return the 2 axis which define that plane """ axis1 = copynorm_AxisToOrigin(axisa) planenormal = Part.makePlane(1.0,1.0, axis1.Base, axis1.Direction) freeAx1 = FreeCAD.Axis() freeAx2 = FreeCAD.Axis() freeAx1.Direction = FreeCAD.Vector(planenormal.Vertexes[2].Point) freeAx2.Direction = FreeCAD.Vector(planenormal.Vertexes[1].Point) return [copynorm_AxisToOrigin(freeAx1),copynorm_AxisToOrigin(freeAx2)] def check_ifParallel(axisa,axisb,dbg=False): """ Check if 2 axes are parallel. """ # shift edges to the origin and normalize them # move vectors to origin and normalize axis1 = copynorm_AxisToOrigin(axisa) axis2 = copynorm_AxisToOrigin(axisb) if abs((axis1.Direction.cross(axis2.Direction)).Length) <= tolerance: return True else: return False def check_ifPerpendicular(axisa,axisb,dbg=False): """ Check if 2 axes are perpendicular. """ # shift edges to the origin and normalize them # move vectors to origin and normalize axis1 = copynorm_AxisToOrigin(axisa) axis2 = copynorm_AxisToOrigin(axisb) if abs(axis1.Direction.dot(axis2.Direction)) <= tolerance: return True else: return False def check_ifCollinear(axisa,axisb,dbg=False): """ Check if 2 axes are collinear. """ #shift edges to the origin and normalize them #move vectors to origin and normalize axis1 = FreeCAD.Axis(axisa) axis2 = FreeCAD.Axis(axisb) if check_ifCoincident(axis1.Base, axis2.Base): #same base, if parallel the axis are collinear if check_ifParallel(axis1,axis2): return True else: return False baseMove = SystemOrigin.sub(axis1.Base) axis1.Base = SystemOrigin axis2.move(baseMove) axis1.Direction = axis1.Direction.normalize() #useless? axis2.Direction = axis2.Direction.normalize() #useless? axis3 = FreeCAD.Axis() axis3.Direction = axis2.Base #create an axis with direction base1 to base2 if check_ifParallel(axis1,axis3) and check_ifParallel(axis2,axis3): return True else: return False def check_ifCoincident(Vertex1, Vertex2, dbg=False): """ Check if 2 vertexes are coincident. """ X1=Vertex1.x X2=Vertex2.x Y1=Vertex1.y Y2=Vertex2.y Z1=Vertex1.z Z2=Vertex2.z if (abs(Z2 - Z1) <= tolerance) and (abs(X2 - X1) <= tolerance) and (abs(Y2 - Y1) <= tolerance): return True else: return False def check_ifPointOnAxis(vertexa, axisa, dbg=False): """ check if a point is on an axis """ #shift edges to the origin and normalize them #move vectors to origin and normalize axis1 = copynorm_AxisToOrigin(axisa) vertex1 = FreeCAD.Vector(vertexa) _offset = SystemOrigin.sub(axis1.Base) vertex1 = vertex1.add(axis1.Base) #apply the same offset to the point if abs((axis1.Direction.cross(vertex1)).Length) <= tolerance: return True else: return False #now that all helper functions are in place let's start to analyse all basic constraints #constraints in the toolbar are a combination of basic constraints #start with Axis Alignment which takes an axis as arguments and operates according to the remaining dof #this basic constraint affects only rotation DOF def AxisAlignment(axisa , dofrot, pointconstraints = None, dbg=True): currentDOFROTnum = len(dofrot) if currentDOFROTnum == 0 : #already locked on rotation so ignore it return [] elif currentDOFROTnum == 1 : #partially locked on rotation so compare to the given axis if check_ifCollinear(axisa,dofrot[0]): #the axis are collinear, so the constraint is redundant, skip it if (dofrot[0].Direction.Length == 2): #ok return the axisa as new dofrot #axisa.Direction.Length = 1 return [axisa] else:# (axisa.Direction.Length == 2): #ok return the dofrot #dofrot[0].Direction.Length = 1 return dofrot elif check_ifParallel(axisa, dofrot[0]): #the stored axis isn't a specific axis so check if parallel if (dofrot[0].Direction.Length == 2): #ok return the axisa as new dofrot #axisa.Direction.Length = 1 return [axisa] elif (axisa.Direction.Length == 2): #ok return the dofrot #dofrot[0].Direction.Length = 1 return dofrot else: return [] else: #the axis locks permanently the rotation so DOFRot=[] return [] elif currentDOFROTnum == 3 : #no constraints on rotation so the given axis is the one left free return [axisa] else: #this shouldn't happens...ignore it and return the current dofrot return dofrot #then Lock Rotation which locks the remaining rotation axis when enabled #this basic constraint affects only rotation DOF def LockRotation(enabled, dofrot, pointconstraints = None, dbg=True): if enabled and (len(dofrot)==1): #lock rotation is only read when a dofrot is 1 return [] else: #nothing to do return the given dofrot return dofrot #then Angle Alignment which takes an axis as arguments and operates according to the remaining dof #the axis is the normal of the angled plane, that said it acts exactly as axis alignment, maybe I'll remove it #this basic constraint affects only rotation DOF def AngleAlignment(axisa , dofrot, pointconstraints = None, dbg=True): currentDOFROTnum = len(dofrot) if currentDOFROTnum == 0 : #already locked on rotation so ignore it return [] elif currentDOFROTnum == 1 : #partially locked on rotation so compare to the given axis if check_ifCollinear(axisa,dofrot[0]): #the axis are collinear, so the constraint is redundant, skip it if (dofrot[0].Direction.Length == 2): #ok return the axisa as new dofrot #axisa.Direction.Length = 1 return [axisa] else:# (axisa.Direction.Length == 2): #ok return the dofrot #dofrot[0].Direction.Length = 1 return dofrot elif check_ifParallel(axisa, dofrot[0]): #the stored axis isn't a specific axis so check if parallel if (dofrot[0].Direction.Length == 2): #ok return the axisa as new dofrot #axisa.Direction.Length = 1 return [axisa] elif (axisa.Direction.Length == 2): #ok return the dofrot #dofrot[0].Direction.Length = 1 return dofrot else: return [] else: #the axis locks permanently the rotation so DOFRot=[] return [] elif currentDOFROTnum == 3 : #no constraints on rotation so the given axis is the one left free return [axisa] else: #this shouldn't happens...ignore it and return the current dofrot return dofrot #Ok not switch on positional constraints #the first is axis normal on plane to plane distance #arguments are #axisa which the axis used in constraint (axial, circular edge, etc...) #dofpos which is the array of left free positional axes def AxisDistance(axisa, dofpos, pointconstraints = None, dbg=False): currentDOFPOSnum = len(dofpos) if currentDOFPOSnum == 0 : #already locked on position so ignore it return [] elif currentDOFPOSnum == 1 : #partially locked on position so compare axis free to the given axis if check_ifParallel(axisa,dofpos[0]): #the axis are parallel, so the constraint is redundant, skip it DOFPOS=1 return dofpos else: #the axis locks permanently the position so DOFPOS=0 return [] elif currentDOFPOSnum == 2 : #there are 2 axis which define a plane where the plane can slide on #calculate the axis normal to the plane defined by the 2 axes left free tempNormAxis = normal_2Axis(dofpos[0], dofpos[1]) #now compare it to the given axis if check_ifPerpendicular(axisa,tempNormAxis): #axes are perpendicular so the axis left free is the normal to the plane defined by given axis and tempNormAxis DOFPOS=1 return [ copynorm_AxisToOrigin(normal_2Axis(axisa, tempNormAxis))] else: #the object is fully constrained DOFPOS=0 return [] elif currentDOFPOSnum == 3 : # there are no constraints on position, so the rigid can slides along the given axis, DOFPOS=1 return [cleanAxis(axisa)] else: #this shouldn't happens...ignore it and return the current dofrot return dofpos #then plane to plane constraint #arguments are #axisa which the axis normal to the plane constrained #dofpos which is the array of left free positional axes def PlaneOffset(axisa, dofpos, pointconstraints = [], dbg=False): currentDOFPOSnum = len(dofpos) if currentDOFPOSnum == 0 : #already locked on position so ignore it return [] elif currentDOFPOSnum == 1 : #partially locked on position so compare to the given axis if check_ifParallel(axisa,dofpos[0]): #the axis are parallel, so #the axis locks permanently the position so DOFPos=[] return [] else: #as the axes are not parallel, the constraint is redundant as it locks a direction already locked, skip it return dofpos elif currentDOFPOSnum == 2 : #there are 2 axis which define a plane where the plane can slide on #calculate the axis normal to the plane defined by the 2 axes left free tempNormAxis = normal_2Axis(dofpos[0], dofpos[1]) #now compare it to the given axis if check_ifParallel(axisa,tempNormAxis): #the plane is parallel to the plane where it can slide, so the constraint is redundant, return dofpos as is DOFPOS=2 return dofpos else: #now calculate the axis normal to the plane create by the given axis and the tempNormAxis #and return it as last free DOFPOS=1 return [ copynorm_AxisToOrigin(normal_2Axis(axisa, tempNormAxis)) ] elif currentDOFPOSnum == 3 : # there are no constraints on position, so the left axes free are the two axes which define a plane normal to the given axis DOFPOS=2 return make_planeNormal(axisa) else: #this shouldn't happens...ignore it and return the current dofrot return dofpos def PointIdentity(axisa, dofpos, dofrot, pointconstraints, dbg=False): pointA = zeroIfLessThanTol(axisa.Base) rigidCenterpoint = zeroIfLessThanTol(axisa.Direction) if len(pointconstraints)>0: for a in range(0, len(pointconstraints)): if check_ifCoincident(pointA,pointconstraints[a]): #the same point is already constrained so skip it , redundant return dofpos,dofrot pointconstraints.append(pointA) if check_ifCoincident(pointA,rigidCenterpoint): #the center of rigid is coincident to the point constrained, the obj can't move anymore DOFPOS=0 return [], dofrot else: currentDOFPOSnum = len(dofpos) if currentDOFPOSnum <= 2 : #already locked on position so ignore it tmpdofpos = [] elif currentDOFPOSnum == 3 : #if there is only 1 pointidentity do nothing, as single point constraint doesn't lock anything just store the point if len(pointconstraints) == 1: tmpdofpos = dofpos else: #check again the count of the point constraint if len(pointconstraints) >= 2: #there are 3 unique points so the object is fully constrained DOFPOS=0 #this is a circularedge constraint with an axis with Base on pointA and Direction pointconstraint[0] to pointconstraints[1] #so DOFPOS=0 as circular edge always locks all 3 axes in position tmpdofpos = [] else: #this shouldn't happens...ignore it and return the current dofrot tmpdofpos = dofpos currentDOFROTnum = len(dofrot) if currentDOFROTnum == 0 : #already locked on rotation so ignore it tmpdofrot = [] elif currentDOFROTnum == 1 : #already partially locked, an additional point identity locks the object if dofrot[0].Direction.Length == 2: # the stored axis isn't a specific axis. #get the point projected to the plane created by current axis dofrot[0].Base = pointA dofrot[0].Direction.Length = 1 tmpdofrot = dofrot elif check_ifPointOnAxis(pointA,dofrot[0]): #check if the point is on the same direction of the axis left free #the point is on the rotation axis left free, it doesn't lock anything tmpdofrot = dofrot else: #the pointidentity locks permanently tmpdofrot = [] elif currentDOFROTnum == 3 : #no constraints on rotation the point identity does nothing on its own #here I have to insert the point on pointconstraint, only if the point is not coincident to some point already stored in pointconstraint #return back here #if there is only 1 pointidentity do nothing, as single point constraint doesn't lock anything just store the point if len(pointconstraints) == 1: tmpdofrot = dofrot elif len(pointconstraints) >= 3: #there are 3 unique points so the object is fully constrained DOFROT=0 tmpdofrot = [] elif len(pointconstraints) == 2: #this is a circularedge constraint with an axis with Base on pointA and Direction pointconstraint[0] to pointconstraints[1] #so DOFROT as circular edge always locks all 3 axes in position tmpAxis = create_Axis2Points(pointconstraints[0],pointconstraints[1]) tmpAxis = cleanAxis(tmpAxis) tmpdofrot = AxisAlignment(tmpAxis, dofrot) else: #this shouldn't happens...ignore it and return the current dofrot tmpdofrot = dofrot return tmpdofpos , tmpdofrot #in the end there are the toolbar constraints, those are simply a combination of the ones above #PointIdentity, PointOnLine, PointOnPlane, Spherical Constraints: # PointIdentityPos() needs to know the point constrained as vector, the dofpos array, the rigid center point as vector and # the pointconstraints which stores all point constraints of the rigid # PointIdentityRot() needs to know the point constrained as vector, the dofrot array, and # the pointconstraints which stores all point constraints of the rigid # These constraint have to be the last evaluated in the chain of constraints. #CircularEdgeConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # PlaneOffset() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot # # honestly speaking this would be simplified like this: # if LockRotation: # dofpos = [] # dofrot = [] # else: # dofpos = [] # dofrot = AxisAlignment(ConstraintAxis, dofrot) #PlanesParallelConstraint: # AxisAlignment() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array #PlaneCoincident: # AxisAlignment() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array # PlaneOffset() needs to know the axis normal to the plane constrained (stored in dep as refpoint and refAxisEnd) and the dofpos array #AxialConstraint: # AxisAlignment() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofrot array # AxisDistance() needs to know the axis normal to circle (stored in dep as refpoint and refAxisEnd) and the dofpos array # LockRotation() need to know if LockRotation is True or False and the array dofrot #AngleBetweenPlanesConstraint # AngleAlignment() needs to know the axis normal to plane constrained (stored in dep as refpoint and refAxisEnd) and the dofrot array #some test for helper functions if __name__ == "__main__": """ AXIS1=FreeCAD.Axis() AXIS1.Base = FreeCAD.Vector(2,10,12) AXIS1.Direction = AXIS1.Direction.add(SystemXAxis.Direction) AXIS2=FreeCAD.Axis() AXIS2.Base = FreeCAD.Vector(2,10,12) AXIS2.Direction = AXIS2.Direction.add(SystemXAxis.Direction) AXIS3=FreeCAD.Axis() AXIS3.Base = SystemOrigin AXIS3.Direction = AXIS3.Direction.add(SystemZAxis.Direction) #print "Axis Normal to plane defined by 2 axes = " , normal_2Axis(AXIS1,AXIS2)) print AXIS1 print "Axes defining a plane normal to given axis = " , make_planeNormal(AXIS1) print "test recursive get normal to a plane created by 2axes defined by 1 axis normal= " , normal_2Axis(make_planeNormal(AXIS1)[0], make_planeNormal(AXIS1)[1]) print "Axes Parallel? = " , check_ifParallel(AXIS1,AXIS2) print "Axes Perpendicular? = " , check_ifPerpendicular(AXIS1,AXIS2) print "Axes Collinear? = " , check_ifCollinear(AXIS1,AXIS2) print "Vertexes are Coincident ? = " , check_ifCoincident(AXIS1.Base, AXIS2.Base) dfdfdf = create_Axis(FreeCAD.Vector(12.0,33.5,12.7), FreeCAD.Vector(23.5,22.0,99.0)) print copynorm_AxisToOrigin(dfdfdf) print create_Axis2Points(FreeCAD.Vector(1.0,1.0,1.0), FreeCAD.Vector(3,3,3)) """ ================================================ FILE: a2p_observers.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCADGui,FreeCAD from PySide import QtGui, QtCore import os, copy, time from a2p_translateUtils import * import a2plib class RedoUndoObserver(object): def slotRedoDocument(self,doc): a2plib.a2p_repairTreeView() def slotUndoDocument(self,doc): a2plib.a2p_repairTreeView() redoUndoObserver = RedoUndoObserver() ================================================ FILE: a2p_partinformation.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD, FreeCADGui import Spreadsheet from PySide import QtGui, QtCore import os, copy, time, sys, platform from a2p_translateUtils import * import a2plib from a2p_partlistglobals import PARTLIST_COLUMN_NAMES from a2p_partlistglobals import ( PARTINFORMATION_SHEET_NAME, PARTINFORMATION_SHEET_LABEL ) #------------------------------------------------------------------------------ toolTip = \ translate("A2plus", """ Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. """ ) class a2p_CreatePartInformationSheet_Command: def Activated(self): doc = FreeCAD.activeDocument() if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus","No active document found!"), translate("A2plus","You have to open a FCStd file first.") ) return try: found = doc.getObject(PARTINFORMATION_SHEET_NAME) if found is not None: return # object already exists except: pass # proceed and create the shett # create a spreadsheet with a special reserved name... ss = doc.addObject('Spreadsheet::Sheet',PARTINFORMATION_SHEET_NAME) ss.Label = PARTINFORMATION_SHEET_LABEL for idx,name in enumerate(PARTLIST_COLUMN_NAMES): ss.set('A'+str(idx+1), name) ss.set('B'+str(idx+1), '') ss.setColumnWidth('A', 220) ss.setColumnWidth('B', 300) ss.setBackground('A1:A'+str(len(PARTLIST_COLUMN_NAMES)), (0.000000,1.000000,0.000000,1.000000)) ss.setBackground('B1:B'+str(len(PARTLIST_COLUMN_NAMES)), (0.85,0.85,0.85,1.000000)) doc.recompute() FreeCAD.Console.PrintMessage(translate("A2p_BoM", "#PARTINFO# spreadsheet has been created") + "\n") def GetResources(self): return { 'Pixmap' : ':/icons/a2p_PartsInfo.svg', 'MenuText': translate("A2plus", "Create a spreadsheet for ordering or logistics information"), 'ToolTip' : toolTip } FreeCADGui.addCommand('a2p_CreatePartInformationSheet_Command', a2p_CreatePartInformationSheet_Command()) #------------------------------------------------------------------------------ ================================================ FILE: a2p_partlistglobals.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** from a2p_translateUtils import * PARTINFORMATION_SHEET_NAME = "_PARTINFO_" PARTINFORMATION_SHEET_LABEL = "#" + translate("A2p_BoM", "PARTINFO") + "#" # BOM = BillOfMaterials... BOM_SHEET_NAME = "_PARTSLIST_" BOM_SHEET_LABEL = "#" + translate("A2p_BoM", "PARTSLIST") + "#" # CutListOptimizer BillOfMaterials... CLO_BOM_SHEET_NAME = "_PARTSLIST_CUT-LIST-OPTIMIZER_" CLO_BOM_SHEET_LABEL = "#" + translate("A2p_BoM", "CLO_PARTSLIST") + "#" BOM_MAX_COLS = 10 BOM_MAX_LENGTH = 150 CLO_BOM_MAX_COLS = 10 CLO_BOM_MAX_LENGTH = BOM_MAX_LENGTH PARTLIST_COLUMN_NAMES = [ translate("A2p_BoM", "IDENTNO"), translate("A2p_BoM", "DESCRIPTION"), translate("A2p_BoM", "SUPPLIER"), translate("A2p_BoM", "SUPP.IDENTNO"), translate("A2p_BoM", "SUPP.DESCRIPTION"), translate("A2p_BoM", "(FILENAME)") ] CLO_PARTLIST_COLUMN_NAMES = [ translate("A2p_BoM", "Length"), translate("A2p_BoM", "Width"), translate("A2p_BoM", "Qty"), translate("A2p_BoM", "Material"), translate("A2p_BoM", "Label"), translate("A2p_BoM", "Enabled") ] ================================================ FILE: a2p_recursiveUpdatePlanner.py ================================================ # *************************************************************************** # * * # * Copyright (c) 2018 kbwbe * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os from PySide import QtGui import FreeCAD import FreeCADGui import a2plib from a2p_importpart import updateImportedParts from a2p_simpleXMLreader import FCdocumentReader translate = FreeCAD.Qt.translate def createUpdateFileList( importPath, parentAssemblyDir, filesToUpdate, recursive=False, selectedFiles=[] # only update parts with these sourceFiles ): # do not update converted parts print( translate( "A2plus", "createUpdateFileList(): ImportPath = {}").format( importPath ) ) if a2plib.to_bytes(importPath) == b'converted': return False, filesToUpdate fileNameInProject = a2plib.findSourceFileInProject( importPath, parentAssemblyDir ) workingDir, basicFileName = os.path.split(fileNameInProject) docReader1 = FCdocumentReader() docReader1.openDocument(fileNameInProject) needToUpdate = False subAsmNeedsUpdate = False for ob in docReader1.getA2pObjects(): if a2plib.to_bytes(ob.getA2pSource()) == b'converted': print( translate( "A2plus", "Did not update converted part '{}'").format( ob.name ) ) continue # Only update parts which are selected by the user... fDir, fName = os.path.split(ob.getA2pSource()) if len(selectedFiles) > 0 and fName not in selectedFiles: continue if ob.isSubassembly() and recursive: subAsmNeedsUpdate, filesToUpdate = createUpdateFileList( ob.getA2pSource(), workingDir, filesToUpdate, recursive ) if subAsmNeedsUpdate: needToUpdate = True objFileNameInProject = a2plib.findSourceFileInProject( ob.getA2pSource(), workingDir ) mtime = os.path.getmtime(objFileNameInProject) if ob.getTimeLastImport() < mtime: needToUpdate = True if needToUpdate: if fileNameInProject not in filesToUpdate: filesToUpdate.append(fileNameInProject) return needToUpdate, filesToUpdate class a2p_recursiveUpdateImportedPartsCommand: def Activated(self): a2plib.setAutoSolve(True) # makes no sense without autosolve = ON doc = FreeCAD.activeDocument() fileName = doc.FileName workingDir, basicFileName = os.path.split(fileName) selectedFiles = [] partial = False selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument and (a2plib.isA2pPart(s) or a2plib.isA2pSketch(s)) ] if selection and len(selection) > 0: flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No msg = translate("A2plus", "Do you want to update the selected parts only?") response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "RECURSIVE UPDATE"), msg, flags ) if response == QtGui.QMessageBox.Yes: for s in selection: fDir, fName = os.path.split(s.sourceFile) selectedFiles.append(fName) partial = True filesToUpdate = [] subAsmNeedsUpdate, filesToUpdate = createUpdateFileList( fileName, workingDir, filesToUpdate, True, selectedFiles ) for f in filesToUpdate: # update necessary documents # look only for filenames, not paths, as there are problems on WIN10 (Address-translation??) importDoc = None importDocIsOpen = False requestedFile = os.path.split(f)[1] for d in FreeCAD.listDocuments().values(): recentFile = os.path.split(d.FileName)[1] if requestedFile == recentFile: importDoc = d # file is already open... importDocIsOpen = True break if not importDocIsOpen: if f.lower().endswith('.fcstd'): importDoc = FreeCAD.openDocument(f) elif f.lower().endswith('.stp') or f.lower().endswith('.step'): import ImportGui fname = os.path.splitext(os.path.basename(f))[0] FreeCAD.newDocument(fname) newname = FreeCAD.ActiveDocument.Name FreeCAD.setActiveDocument(newname) ImportGui.insert(filename, newname) importDoc = FreeCAD.ActiveDocument else: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Value Error"), translate("A2plus", "A part can only be imported from a FreeCAD '*.FCStd' file") ) return if importDoc == doc and partial is True: updateImportedParts(importDoc, True) else: updateImportedParts(importDoc) FreeCADGui.updateGui() importDoc.save() FreeCAD.Console.PrintMessage( "===== " + translate( "A2plus", "Assembly '{}' has been updated!").format( importDoc.FileName ) + " =====\n" ) if importDoc != doc: FreeCAD.closeDocument(importDoc.Name) def GetResources(self): return { 'Pixmap': ':/icons/a2p_RecursiveUpdate.svg', 'MenuText': translate("A2plus", "Update imports recursively"), 'ToolTip': translate( "A2plus", "Update parts, which have been" + "\n" + "imported to the assembly." + "\n\n" + "(If you modify a part in an" + "\n" + "external file, the new shape" + "\n" + "is taken to the assembly by" + "\n" + "this function)." + "\n\n" + "This command does this recursively" + "\n" + "over all involved subassemblies." + "\n\n" + "Subassemblies are updated," + "\n" + "if necessary, too." ) } def IsActive(self): doc = FreeCAD.activeDocument() if doc is None: return False return True FreeCADGui.addCommand('a2p_recursiveUpdateImportedPartsCommand', a2p_recursiveUpdateImportedPartsCommand()) ================================================ FILE: a2p_rigid.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import os, sys import random import time import traceback import math import copy import FreeCAD, FreeCADGui, Part from PySide import QtGui, QtCore from FreeCAD import Base from a2p_translateUtils import * import a2plib from a2plib import ( drawVector, path_a2p, getObjectVertexFromName, getObjectEdgeFromName, getObjectFaceFromName, isLine, getPos, getAxis, appVersionStr, Msg, DebugMsg, A2P_DEBUG_LEVEL, A2P_DEBUG_1, A2P_DEBUG_2, A2P_DEBUG_3, PARTIAL_SOLVE_STAGE1, ) import a2p_libDOF from a2p_libDOF import ( SystemOrigin, SystemXAxis, SystemYAxis, SystemZAxis ) #from __builtin__ import False SPINSTEP_DIVISOR = 12.0 #12 WEIGHT_LINEAR_MOVE = 0.5 WEIGHT_REFPOINT_ROTATION = 8.0 class Rigid(): """All data necessary for one rigid body.""" def __init__(self, name, label, fixed, placement, debugMode ): self.objectName = name self.label = label self.fixed = fixed self.tempfixed = fixed self.moved = False self.placement = placement # Cached state attributes self.initialPlacement = placement self.debugMode = debugMode self.savedPlacement = placement self.dependencies = [] self.linkedRigids = [] self.hierarchyLinkedRigids = [] self.depsPerLinkedRigids = {} #dict for each linked obj as key, the value # is an array with all dep related to it self.dofPOSPerLinkedRigids = {} #for each linked rigid (Key) the related dof left free self.dofROTPerLinkedRigids = {} #for each linked rigid (Key) the related dof left free self.pointConstraints = [] self.parentRigids = [] self.childRigids = [] self.disatanceFromFixed = None self.spinCenter = None self.spin = None self.moveVectorSum = None self.maxPosError = 0.0 self.maxAxisError = 0.0 # This is an avaverage of all single spins self.maxSingleAxisError = 0.0 # Also the max single Axis spin has to be checked for solvability self.refPointsBoundBoxSize = 0.0 self.countSpinVectors = 0 self.currentDOFCount = 6 self.superRigid = None #if not None, it means that when action performed to this rigid, #actually the action must be done on the superRigid self.posDOF = a2p_libDOF.initPosDOF #each rigid has DOF for position self.rotDOF = a2p_libDOF.initRotDOF #each rigid has DOF for rotation #dof are useful only for animation at the moment? maybe it can be used to set tempfixed property def prepareRestart(self): self.tempfixed = self.fixed for d in self.dependencies: d.disable() def countDependencies(self): return len(self.dependencies) def enableDependencies(self, workList): for dep in self.dependencies: dep.enable(workList) # The function only sets parentship for children that are distant+1 from fixed rigid # The function should be called in a loop with increased distance until it return False def assignParentship(self, distance): # Current rigid was already set, pass the call to children if self.disatanceFromFixed < distance: haveMore = False for rig in self.childRigids: if rig.assignParentship(distance): haveMore = True return haveMore elif self.disatanceFromFixed == distance: while len(self.hierarchyLinkedRigids) > 0: rig = self.hierarchyLinkedRigids[0] # Got to a new rigid, set current as it's father if rig.disatanceFromFixed is None: rig.parentRigids.append(self) self.childRigids.append(rig) rig.hierarchyLinkedRigids.remove(self) self.hierarchyLinkedRigids.remove(rig) rig.disatanceFromFixed = distance+1 # That child was already assigned by another (and closer to fixed) father # Leave only child relationship, but don't add current as a father else: self.childRigids.append(rig) rig.hierarchyLinkedRigids.remove(self) self.hierarchyLinkedRigids.remove(rig) if len(self.childRigids) + len(self.hierarchyLinkedRigids) > 0: return True else: return False def printHierarchy(self, level): Msg((level*3)*" ") Msg("{} - distance {}\n".format(self.label, self.disatanceFromFixed)) for rig in self.childRigids: rig.printHierarchy(level+1) def getCandidates(self, solverStage = None): candidates = [] for linkedRig in self.linkedRigids: if linkedRig.tempfixed: continue candidates.append(linkedRig) return set(candidates) def addChildrenByDistance(self, addList, distance): # Current rigid is the father of the needed distance, so it might have needed children if self.disatanceFromFixed == distance-1: # No children if len(self.childRigids) == 0: return False else: # There are some children, add with the matching distance for rig in self.childRigids: if rig.disatanceFromFixed == distance: addList.append(rig) # That rigid have children for needed distance else: return False def areAllParentTempFixed(self): for rig in self.linkedRigids: if not rig.tempfixed: return False return True def applyPlacementStep(self, pl): self.placement = pl.multiply(self.placement) self.spinCenter = pl.multVec(self.spinCenter) # Update dependencies for dep in self.dependencies: dep.applyPlacement(pl) def clear(self): for d in self.dependencies: d.clear() self.dependencies = [] self.superRigid = None def applySolution(self, doc, solver): if self.tempfixed or self.fixed: return # Update FreeCAD's placements if deltaPlacement above Tolerances base1 = self.placement.Base base2 = self.savedPlacement.Base absPosMove = base1.sub(base2).Length axis1 = self.placement.Rotation.Axis axis2 = self.savedPlacement.Rotation.Axis angle = math.degrees(axis2.getAngle(axis1)) ''' if absPosMove >= solver.mySOLVER_POS_ACCURACY*1e-2 or angle >= solver.mySOLVER_SPIN_ACCURACY*1e-2: ob1 = doc.getObject(self.objectName) ob1.Placement = self.placement ''' ob1 = doc.getObject(self.objectName) ob1.Placement = self.placement def getRigidCenter(self): _currentRigid = FreeCAD.ActiveDocument.getObject(self.objectName) return _currentRigid.Shape.BoundBox.Center def calcSpinCenterDepsEnabled(self): newSpinCenter = Base.Vector(self.spinCenter) countRefPoints = 0 for dep in self.dependencies: if dep.Enabled: if dep.refPoint is not None: newSpinCenter = newSpinCenter.add(dep.refPoint) countRefPoints += 1 if countRefPoints > 0: newSpinCenter.multiply(1.0/countRefPoints) self.spinCenter = newSpinCenter def calcSpinCenter(self): newSpinCenter = Base.Vector(0,0,0) countRefPoints = 0 for dep in self.dependencies: if dep.refPoint is not None: newSpinCenter = newSpinCenter.add(dep.refPoint) countRefPoints += 1 if countRefPoints > 0: newSpinCenter.multiply(1.0/countRefPoints) self.spinCenter = newSpinCenter def calcSpinBasicDataDepsEnabled(self): newSpinCenter = Base.Vector(0,0,0) countRefPoints = 0 xmin = 0 xmax = 0 ymin = 0 ymax = 0 zmin = 0 zmax = 0 for dep in self.dependencies: if dep.Enabled: newSpinCenter = newSpinCenter.add(dep.refPoint) countRefPoints += 1 if dep.refPoint.x < xmin: xmin=dep.refPoint.x if dep.refPoint.x > xmax: xmax=dep.refPoint.x if dep.refPoint.y < ymin: ymin=dep.refPoint.y if dep.refPoint.y > ymax: ymax=dep.refPoint.y if dep.refPoint.z < zmin: zmin=dep.refPoint.z if dep.refPoint.z > zmax: zmax=dep.refPoint.z vmin = Base.Vector(xmin,ymin,zmin) vmax = Base.Vector(xmax,ymax,zmax) self.refPointsBoundBoxSize = vmax.sub(vmin).Length if countRefPoints > 0: newSpinCenter.multiply(1.0/countRefPoints) self.spinCenter = newSpinCenter def calcRefPointsBoundBoxSizeDepsEnabled(self): xmin = 0 xmax = 0 ymin = 0 ymax = 0 zmin = 0 zmax = 0 for dep in self.dependencies: if dep.Enabled: if dep.refPoint.x < xmin: xmin=dep.refPoint.x if dep.refPoint.x > xmax: xmax=dep.refPoint.x if dep.refPoint.y < ymin: ymin=dep.refPoint.y if dep.refPoint.y > ymax: ymax=dep.refPoint.y if dep.refPoint.z < zmin: zmin=dep.refPoint.z if dep.refPoint.z > zmax: zmax=dep.refPoint.z self.refPointsBoundBoxSize = math.sqrt( (xmax-xmin)**2 + (ymax-ymin)**2 + (zmax-zmin)**2 ) def calcRefPointsBoundBoxSize(self): xmin = 0 xmax = 0 ymin = 0 ymax = 0 zmin = 0 zmax = 0 for dep in self.dependencies: if dep.refPoint.x < xmin: xmin=dep.refPoint.x if dep.refPoint.x > xmax: xmax=dep.refPoint.x if dep.refPoint.y < ymin: ymin=dep.refPoint.y if dep.refPoint.y > ymax: ymax=dep.refPoint.y if dep.refPoint.z < zmin: zmin=dep.refPoint.z if dep.refPoint.z > zmax: zmax=dep.refPoint.z self.refPointsBoundBoxSize = math.sqrt( (xmax-xmin)**2 + (ymax-ymin)**2 + (zmax-zmin)**2 ) def calcMoveData(self, doc, solver): if self.tempfixed or self.fixed: return depRefPoints = [] #collect Data to compute central movement of rigid depMoveVectors = [] #all moveVectors depRefPoints_Spin = [] #refPoints, relevant for spin generation... depMoveVectors_Spin = [] #depMoveVectors, relevant for spin generation... # Initialize error variables self.maxPosError = 0.0 self.maxAxisError = 0.0 # SpinError is an average of all single spins self.maxSingleAxisError = 0.0 # avoid average, to detect unsolvable assemblies self.countSpinVectors = 0 self.moveVectorSum = Base.Vector(0,0,0) self.spin = None for dep in self.dependencies: refPoint, moveVector = dep.getMovement() if refPoint is None or moveVector is None: continue # Should not happen depRefPoints.append(refPoint) depMoveVectors.append(moveVector) if dep.useRefPointSpin: depRefPoints_Spin.append(refPoint) depMoveVectors_Spin.append(moveVector) ''' if not self.tempfixed: a2plib.drawSphere(refPoint, a2plib.RED) a2plib.drawVector(refPoint, refPoint.add(moveVector), a2plib.RED) ''' # Calculate max move error if moveVector.Length > self.maxPosError: self.maxPosError = moveVector.Length # Calculate max move error move_length = moveVector.Length if move_length > self.maxPosError: self.maxPosError = move_length # Accumulate all movements for later average calculations self.moveVectorSum += moveVector # Calculate the average of all movements num_vectors = len(depMoveVectors) if num_vectors > 0: self.moveVectorSum *= (1.0 / num_vectors) #compute rotation caused by refPoint-attractions if len(depMoveVectors_Spin) >= 2: self.spin = Base.Vector(0, 0, 0) tmpSpinCenter = depRefPoints_Spin[0] for i in range(1, len(depRefPoints_Spin)): vec1 = depRefPoints_Spin[i] - tmpSpinCenter vec2 = depMoveVectors_Spin[i] axis = vec1.cross(vec2) axis_length = axis.Length if axis_length > 0: vec1.normalize() vec1.multiply(self.refPointsBoundBoxSize) vec3 = vec1.add(vec2) beta = math.degrees(vec3.getAngle(vec1)) if beta > self.maxSingleAxisError: self.maxSingleAxisError = beta axis *= (beta * WEIGHT_REFPOINT_ROTATION) / axis_length self.spin += axis self.countSpinVectors += 1 #compute rotation caused by axis' of the dependencies //FIXME (align,opposed,none) if len(self.dependencies) > 0: if self.spin is None: self.spin = Base.Vector(0,0,0) for dep in self.dependencies: rotation = dep.getRotation(solver) if rotation is None: continue # No rotation for that dep # Accumulate all rotations for later average calculation self.spin = self.spin.add(rotation) rotationLength = rotation.Length if rotationLength > self.maxSingleAxisError: self.maxSingleAxisError = rotationLength self.countSpinVectors += 1 # Calculate max rotation error if self.spin is not None: axisErr = self.spin.Length if axisErr > self.maxAxisError : self.maxAxisError = axisErr def updateCachedState(self, newPlacement): """ Update the cached state of the rigid with the new placement. """ self.initialPlacement = newPlacement def move(self,doc): if self.tempfixed or self.fixed: return # #Linear moving of a rigid moveDist = Base.Vector(0,0,0) if self.moveVectorSum is not None: moveDist = Base.Vector(self.moveVectorSum) moveDist.multiply(WEIGHT_LINEAR_MOVE) # stabilize computation, adjust if needed... if self.debugMode == True: a2plib.drawDebugVectorAt(self.spinCenter, moveDist, a2plib.BLUE) # #Rotate the rigid... center = None rotation = None if (self.spin is not None and self.spin.Length != 0.0 and self.countSpinVectors != 0): savedSpin = copy.copy(self.spin) spinAngle = self.spin.Length / self.countSpinVectors if spinAngle>15.0: spinAngle=15.0 # do not accept more degrees try: spinStep = spinAngle/(SPINSTEP_DIVISOR) #it was 250.0 self.spin.multiply(1.0e12) self.spin.normalize() rotation = FreeCAD.Rotation(self.spin, spinStep) center = self.spinCenter if self.debugMode == True: a2plib.drawDebugVectorAt(center, savedSpin, a2plib.RED) except: pass if center is not None and rotation is not None: pl = FreeCAD.Placement(moveDist,rotation,center) self.applyPlacementStep(pl) else: if moveDist.Length > 1e-8: pl = FreeCAD.Placement() pl.move(moveDist) self.applyPlacementStep(pl) def currentDOF(self): """ update whole DOF of the rigid (useful for animation and get the number useful to determine if an object is fully constrained. """ self.pointConstraints = [] _dofPos = a2p_libDOF.initPosDOF _dofRot = a2p_libDOF.initRotDOF self.reorderDependencies() if not self.fixed: if len(self.dependencies) > 0: for x in self.dependencies: _dofPos, _dofRot = x.calcDOF(_dofPos,_dofRot, self.pointConstraints) else: _dofPos, _dofRot = [] , [] self.posDOF = _dofPos self.rotDOF = _dofRot self.currentDOFCount = len(self.posDOF) + len(self.rotDOF) return self.currentDOFCount def isFullyConstrainedByRigid(self,rig): if rig not in self.linkedRigids: return False dofPOS = self.dofPOSPerLinkedRigids[rig] dofROT = self.dofROTPerLinkedRigids[rig] if len(dofPOS) + len(dofROT) == 0: return True return False def isFullyConstrainedByFixedRigids(self): _dofPos = a2p_libDOF.initPosDOF _dofRot = a2p_libDOF.initRotDOF self.reorderDependencies() if len(self.dependencies) > 0: for dep in self.dependencies: if dep.dependedRigid.tempfixed: _dofPos, _dofRot = dep.calcDOF(_dofPos,_dofRot, self.pointConstraints) else: return False if len(_dofPos) + len(_dofRot): return False else: return True def linkedTempFixedDOF(self): #pointConstraints = [] _dofPos = a2p_libDOF.initPosDOF _dofRot = a2p_libDOF.initRotDOF self.reorderDependencies() if not self.tempfixed: if len(self.dependencies) > 0: for x in self.dependencies: if x.dependedRigid.tempfixed: _dofPos, _dofRot = x.calcDOF(_dofPos,_dofRot, self.pointConstraints) else: _dofPos, _dofRot = [] , [] return len(_dofPos) + len(_dofRot) def reorderDependencies(self): """ place all kind of pointconstraints at the end of the dependencies list. """ tmplist1 = [] tmplist2 = [] for dep in self.dependencies: if dep.isPointConstraint: tmplist1.append(dep) else: tmplist2.append(dep) self.dependencies = [] self.dependencies.extend(tmplist2) self.dependencies.extend(tmplist1) def beautyDOFPrint(self): """ pretty print output that describe the current DOF of the rigid. """ Msg('\n') Msg(translate("A2plus", "Current Rigid = '{}'").format(self.label) + "\n") if self.fixed: Msg(translate("A2plus", " is Fixed") + "\n") else: Msg(translate("A2plus", " is not Fixed and has {} DegreesOfFreedom").format(self.currentDOF()) + "\n") for rig in self.depsPerLinkedRigids.keys(): Msg(translate("A2plus", " Depends on Rigid = {}").format(rig.label) + "\n") for dep in self.depsPerLinkedRigids[rig]: Msg(u" {}\n".format(dep) ) Msg(translate("A2plus", " DOF Position free with this rigid = {}").format( len(self.dofPOSPerLinkedRigids[rig])) + "\n") Msg(translate("A2plus", " DOF Rotation free with this rigid = {}").format( len(self.dofROTPerLinkedRigids[rig])) + "\n") ================================================ FILE: a2p_searchConstraintConflicts.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2020 kbwbe * #* * #* Based on Work of Dan Miel (Thank you) * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD import FreeCADGui from PySide import QtGui from a2p_translateUtils import * import a2plib import a2p_solversystem #============================================================================== toolTipMessage = \ translate("A2plus_searchConstraintConflicts", ''' Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another ''' ) class a2p_SearchConstraintConflictsCommand: ''' Search conflicting constraints by solving them one after each other. ''' def Activated(self): doc = FreeCAD.activeDocument() workList = [] constraints = [ obj for obj in doc.Objects if 'ConstraintInfo' in obj.Content] if len(constraints) == 0: flags = QtGui.QMessageBox.StandardButton.Yes QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus_searchConstraintConflicts",'Searching for conflicting constraints'), translate("A2plus_searchConstraintConflicts",'There are no a2p constraints within this document.'), flags ) return a2plib.SHOW_WARNING_FLOATING_PARTS = False for c in constraints: workList.append(c) solved = a2p_solversystem.solveConstraints(doc,matelist = workList, showFailMessage=False) if solved == False: cMirrorName = c.ViewObject.Proxy.mirror_name cmirror = doc.getObject(cMirrorName) ob1 = doc.getObject(c.Object1) ob2 = doc.getObject(c.Object2) message = \ translate("A2plus_searchConstraintConflicts", u''' The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? ''').format( c.Label, cmirror.Label, ob1.Label, ob2.Label ) flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus_searchConstraintConflicts",'Searching for conflicting constraints'), message, flags ) if response == QtGui.QMessageBox.Yes: a2plib.removeConstraint(c) a2plib.SHOW_WARNING_FLOATING_PARTS = True def IsActive(self): if FreeCAD.activeDocument() is None: return False return True def GetResources(self): return { 'Pixmap' : a2plib.get_module_path()+'/icons/a2p_SearchConstraintConflicts.svg', 'MenuText': translate("A2plus_searchConstraintConflicts", "Identify conflicting constraints"), 'ToolTip' : toolTipMessage } FreeCADGui.addCommand('a2p_SearchConstraintConflictsCommand', a2p_SearchConstraintConflictsCommand()) #============================================================================== ================================================ FILE: a2p_simpleXMLreader.py ================================================ # -*- coding: utf-8 -*- #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** #=========================================================================== # Classes for reading "document.xml" file directly from compressed .fcstd file # # This file is a temporary replacement for a2p docreader using xml.etree.ElementTree. # Elementree depends on libexpat. There is a conflict within the libexpat, # libcoin-buildin and the OS system one on various OS. #=========================================================================== import os import FreeCAD import zipfile import xml.sax.saxutils as saxutils #from a2p_translateUtils import * import a2plib translate = FreeCAD.Qt.translate #=========================================================================== class simpleXMLObject(object): def __init__(self): self.xmlDefs = [] self.name = None self.propertyDict = {} def clear(self): self.xmlDefs = [] self.name = None self.propertyDict = {} def initialize(self,xmlDefs): remainingLines = [] inputXML = xmlDefs #if len(inputXML) == 0: return xmlDefs #todo: raise error strippedLine = inputXML[0].lstrip(b' ') if not strippedLine.startswith(b''): remainingLines = xmlDefs[idx:] break self.scanForProperties() return remainingLines def scanForProperties(self): sourceFileFound = False a2pVersionFound = False subAssemblyImportFound = False timeLastImportFound = False spreadSheetCellsFound = False a2pObjectTypeFound = False numLines = len(self.xmlDefs) # Readout object's name and save it (1rst line) if numLines > 0: line = self.xmlDefs[0] segments = line.split(b'"') self.name = segments[1] idx = 0 while idx'): break if line.startswith(b'= 4: if len(segments[2]) > 0: if b"content" in segments[2]: cellContent = segments[3] return cellAdress, cellContent def isA2pObject(self): if self.propertyDict.get(b'a2p_Version',None) is not None: return True return False def isA2pSketch(self): if self.isA2pObject: value = self.propertyDict.get(b'objectType',None) if value is not None: if value == b'a2pSketch': #print("Sketch detected") return True return False def isSpreadSheet(self): if self.propertyDict.get(b'cells',None) is not None: return True return False def getA2pSource(self): if self.isA2pObject: return self.propertyDict[b'sourceFile'] return None def isSubassembly(self): if self.isA2pObject: propFound = self.propertyDict.get(b'subassemblyImport',None) if propFound: return self.propertyDict[b'subassemblyImport'] else: return False return False def getTimeLastImport(self): if self.isA2pObject: propFound = self.propertyDict.get(b'timeLastImport',None) if propFound: return self.propertyDict[b'timeLastImport'] else: return 0.0 return 0.0 def getCells(self): return self.propertyDict[b'cells'] #============================================================================== class FCdocumentReader(object): ''' class for extracting the XML-Documentdata from a fcstd-file given by filepath. Some data can be extracted without opening the whole document within FreeCAD As xml.etree.ElementTree is not working within FC due to broken libexpat.so (ATM), this file is a workaround as there is not much data to be extracted. ''' def __init__(self): self.xmlLines = [] self.objects = [] self.successfulOpened = False def clear(self): self.xmlLines = [] self.objects = [] self.successfulOpened = False def openDocument(self,_fileName): fileName = _fileName fileName = a2plib.to_str(fileName) self.clear() # got a fileName is not None ? if fileName is None: FreeCAD.Console.PrintMessage("fcDocumentReader: " + translate("A2plus", "failed to open file with None name!") + "\n") return # check whether file exists or not... if not os.path.exists( fileName ): FreeCAD.Console.PrintMessage("fcDocumentReader: " + translate("A2plus", "file '{}' does not exist!").format(fileName) + "\n") return # check for fcstd file if not fileName.lower().endswith(a2plib.to_str('.fcstd')): FreeCAD.Console.PrintMessage("fcDocumentReader: " + translate("A2plus", "file '{}' is no FCStd file!").format(fileName) + "\n") return # decompress the file f = zipfile.ZipFile(fileName,'r') xml = f.read('Document.xml') f.close() self.successfulOpened = True # #self.xmlLines = xml.split("\r\n") #Windows self.xmlLines = xml.split(b'\r\n') #Windows if len(self.xmlLines) <= 1: self.xmlLines = xml.split(b"\n") #Linux del(xml) # remove not needed data above first section 0: if not self.xmlLines[0].strip(b' ').startswith(b' 0: return rigs[0] return None def removeFaultyConstraints(self, doc): """ Remove constraints where referenced objects do not exist anymore. """ constraints = [ obj for obj in doc.Objects if 'ConstraintInfo' in obj.Content] faultyConstraintList = [] for c in constraints: constraintOK = True for attr in ['Object1','Object2']: objectName = getattr(c, attr, None) o = doc.getObject(objectName) if o is None: constraintOK = False if not constraintOK: faultyConstraintList.append(c) if len(faultyConstraintList) > 0: for fc in faultyConstraintList: FreeCAD.Console.PrintMessage(translate("A2plus", "Remove faulty constraint '{}'").format(fc.Label) + "\n") doc.removeObject(fc.Name) def loadSystem(self,doc, matelist=None): self.clear() self.doc = doc self.status = "loading" self.removeFaultyConstraints(doc) self.convergencyCounter = 0 self.lastPositionError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE self.lastAxisError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE # self.constraints = [] constraints =[] # temporary list if matelist is not None: # Transfer matelist to the temp list for obj in matelist: if 'ConstraintInfo' in obj.Content: constraints.append(obj) else: # if there is not a list of my mates get the list from the doc constraints = [ obj for obj in doc.Objects if 'ConstraintInfo' in obj.Content] # check for Suppressed mates here and transfer mates to self.constraints for obj in constraints: if hasattr(obj,'Suppressed'): #if the mate is suppressed do not add it if obj.Suppressed == False: self.constraints.append(obj) # # Extract all the objectnames which are affected by constraints.. self.objectNames = [] for c in self.constraints: for attr in ['Object1','Object2']: objectName = getattr(c, attr, None) if objectName is not None and not objectName in self.objectNames: self.objectNames.append( objectName ) # # create a Rigid() dataStructure for each of these objectnames... for o in self.objectNames: ob1 = doc.getObject(o) if hasattr(ob1, "fixedPosition"): fx = ob1.fixedPosition else: fx = False if hasattr(ob1, "debugmode"): debugMode = ob1.debugmode else: debugMode = False rig = Rigid( o, ob1.Label, fx, ob1.Placement, debugMode ) rig.spinCenter = ob1.Shape.BoundBox.Center self.rigids.append(rig) # # link constraints to rigids using dependencies deleteList = [] # a list to collect broken constraints for c in self.constraints: rigid1 = self.getRigid(c.Object1) rigid2 = self.getRigid(c.Object2) # create and update list of constrained rigids if rigid2 is not None and not rigid2 in rigid1.linkedRigids: rigid1.linkedRigids.append(rigid2); if rigid1 is not None and not rigid1 in rigid2.linkedRigids: rigid2.linkedRigids.append(rigid1); try: Dependency.Create(doc, c, self, rigid1, rigid2) except: self.status = "loadingDependencyError" deleteList.append(c) for rig in self.rigids: rig.hierarchyLinkedRigids.extend(rig.linkedRigids) if len(deleteList) > 0: msg = translate("A2plus", "The following constraints are broken:") + "\n" for c in deleteList: msg += "{}\n".format(c.Label) msg += translate("A2plus", "Do you want to delete them?") flags = QtGui.QMessageBox.StandardButton.Yes | QtGui.QMessageBox.StandardButton.No response = QtGui.QMessageBox.critical( QtGui.QApplication.activeWindow(), translate("A2plus", "Delete broken constraints?"), msg, flags ) if response == QtGui.QMessageBox.Yes: for c in deleteList: a2plib.removeConstraint(c) if self.status == "loadingDependencyError": return for rig in self.rigids: rig.calcSpinCenter() rig.calcRefPointsBoundBoxSize() self.retrieveDOFInfo() # function only once used here at this place in whole program self.status = "loaded" def DOF_info_to_console(self): doc = FreeCAD.activeDocument() dofGroup = doc.getObject("dofLabels") if dofGroup is None: dofGroup=doc.addObject("App::DocumentObjectGroup", "dofLabels") else: for lbl in dofGroup.Group: doc.removeObject(lbl.Name) doc.removeObject("dofLabels") dofGroup=doc.addObject("App::DocumentObjectGroup", "dofLabels") self.loadSystem( doc ) # look for unconstrained objects and label them solverObjectNames = [] for rig in self.rigids: solverObjectNames.append(rig.objectName) shapeObs = a2plib.filterShapeObs(doc.Objects) for so in shapeObs: if so.Name not in solverObjectNames: ob = doc.getObject(so.Name) if ob.ViewObject.Visibility == True: bbCenter = ob.Shape.BoundBox.Center dofLabel = doc.addObject("App::AnnotationLabel","dofLabel") dofLabel.LabelText = translate("A2plus", "FREE") dofLabel.BasePosition.x = bbCenter.x dofLabel.BasePosition.y = bbCenter.y dofLabel.BasePosition.z = bbCenter.z # dofLabel.ViewObject.BackgroundColor = a2plib.BLUE dofLabel.ViewObject.TextColor = a2plib.WHITE dofGroup.addObject(dofLabel) numdep = 0 self.retrieveDOFInfo() #function only once used here at this place in whole program for rig in self.rigids: dofCount = rig.currentDOF() ob = doc.getObject(rig.objectName) if ob.ViewObject.Visibility == True: bbCenter = ob.Shape.BoundBox.Center dofLabel = doc.addObject("App::AnnotationLabel","dofLabel") if rig.fixed: dofLabel.LabelText = translate("A2plus", "Fixed") else: dofLabel.LabelText = translate("A2plus", "DOFs: {}").format(dofCount) dofLabel.BasePosition.x = bbCenter.x dofLabel.BasePosition.y = bbCenter.y dofLabel.BasePosition.z = bbCenter.z if rig.fixed: dofLabel.ViewObject.BackgroundColor = a2plib.RED dofLabel.ViewObject.TextColor = a2plib.BLACK elif dofCount == 0: dofLabel.ViewObject.BackgroundColor = a2plib.RED dofLabel.ViewObject.TextColor = a2plib.BLACK elif dofCount < 6: dofLabel.ViewObject.BackgroundColor = a2plib.YELLOW dofLabel.ViewObject.TextColor = a2plib.BLACK dofGroup.addObject(dofLabel) rig.beautyDOFPrint() numdep+=rig.countDependencies() Msg(translate("A2plus", "There are {:.0f} dependencies").format(numdep/2) + "\n") def retrieveDOFInfo(self): """ Method used to retrieve all info related to DOF handling. the method scans each rigid, and on each not tempfixed rigid scans the list of linkedobjects then for each linked object compile a dict where each linked object has its dependencies then for each linked object compile a dict where each linked object has its dof position then for each linked object compile a dict where each linked object has its dof rotation """ for rig in self.rigids: #if not rig.tempfixed: #skip already fixed objs for linkedRig in rig.linkedRigids: tmplinkedDeps = [] tmpLinkedPointDeps = [] for dep in rig.dependencies: if linkedRig==dep.dependedRigid: #be sure pointconstraints are at the end of the list if dep.isPointConstraint : tmpLinkedPointDeps.append(dep) else: tmplinkedDeps.append(dep) #add at the end the point constraints tmplinkedDeps.extend(tmpLinkedPointDeps) rig.depsPerLinkedRigids[linkedRig] = tmplinkedDeps #dofPOSPerLinkedRigid is a dict where for each for linkedRig in rig.depsPerLinkedRigids.keys(): linkedRig.pointConstraints = [] _dofPos = linkedRig.posDOF _dofRot = linkedRig.rotDOF for dep in rig.depsPerLinkedRigids[linkedRig]: _dofPos, _dofRot = dep.calcDOF(_dofPos,_dofRot, linkedRig.pointConstraints) rig.dofPOSPerLinkedRigids[linkedRig] = _dofPos rig.dofROTPerLinkedRigids[linkedRig] = _dofRot #ok each rigid has a dict for each linked objects, #so we now know the list of linked objects and which #dof rot and pos both limits. # TODO: maybe instead of traversing from the root every time, save a list of objects on current distance # and use them to propagate next distance to their children def assignParentship(self, doc): # Start from fixed parts for rig in self.rigids: if rig.fixed: rig.disatanceFromFixed = 0 haveMore = True distance = 0 while haveMore: haveMore = rig.assignParentship(distance) distance += 1 if A2P_DEBUG_LEVEL > 0: Msg(20*"=" + "\n") Msg(translate("A2plus", "Hierarchy:") + "\n") Msg(20*"=" + "\n") for rig in self.rigids: if rig.fixed: rig.printHierarchy(0) Msg(20*"=" + "\n") #self.visualizeHierarchy() def visualizeHierarchy(self): ''' Generate an html file with constraints structure. The html file is in the same folder with the same filename of the assembly ''' out_file = os.path.splitext(self.doc.FileName)[0] + '_asm_hierarchy.html' Msg(translate("A2plus", "Writing visual hierarchy to: '{}'").format(out_file) + "\n") f = open(out_file, "w") f.write("\n") f.write("\n") f.write("\n") f.write(' \n') f.write(' \n') f.write(' ' + translate("A2plus", "A2P assembly hierarchy visualization") + '\n') f.write("\n") f.write("\n") f.write('
\n') f.write("graph TD\n") for rig in self.rigids: rigLabel = a2plib.to_str(rig.label).replace(u' ',u'_') # No children, add current rogod as a leaf entry if len(rig.childRigids) == 0: message = u"{}\n".format(rigLabel) f.write(message) else: # Rigid have children, add them based on the dependency list for d in rig.dependencies: if d.dependedRigid in rig.childRigids: dependedRigLabel = a2plib.to_str(d.dependedRigid.label).replace(u' ',u'_') if rig.fixed: message = "{}({}
*" + translate("A2plus", "FIXED") + "*) -- {} --> {}\n".format(rigLabel, rigLabel, d.Type, dependedRigLabel) f.write(message) else: message = u"{} -- {} --> {}\n".format(rigLabel, d.Type, dependedRigLabel) f.write(message) f.write("
\n") f.write(' \n') f.write(" \n") f.write("") f.write("") f.close() def calcMoveData(self,doc): for rig in self.rigids: rig.calcMoveData(doc, self) def prepareRestart(self): for rig in self.rigids: rig.prepareRestart() self.partialSolverCurrentStage = PARTIAL_SOLVE_STAGE1 def detectUnmovedParts(self): doc = FreeCAD.activeDocument() self.unmovedParts = [] for rig in self.rigids: if rig.fixed: continue if not rig.moved: self.unmovedParts.append( doc.getObject(rig.objectName) ) def solveAccuracySteps(self,doc, matelist=None): self.level_of_accuracy=1 self.mySOLVER_POS_ACCURACY = self.getSolverControlData()[self.level_of_accuracy][0] self.mySOLVER_SPIN_ACCURACY = self.getSolverControlData()[self.level_of_accuracy][1] self.loadSystem(doc, matelist) if self.status == "loadingDependencyError": return self.assignParentship(doc) while True: systemSolved = self.calculateChain(doc) if self.level_of_accuracy == 1: self.detectUnmovedParts() # do only once here. It can fail at higher accuracy levels # where not a final solution is required. if a2plib.SOLVER_ONESTEP > 0: systemSolved = True break if systemSolved: self.level_of_accuracy+=1 if self.level_of_accuracy > len(self.getSolverControlData()): self.solutionToParts(doc) break self.mySOLVER_POS_ACCURACY = self.getSolverControlData()[self.level_of_accuracy][0] self.mySOLVER_SPIN_ACCURACY = self.getSolverControlData()[self.level_of_accuracy][1] self.loadSystem(doc, matelist) else: completeSolvingRequired = self.getSolverControlData()[self.level_of_accuracy][2] if not completeSolvingRequired: systemSolved = True break self.maxAxisError = 0.0 self.maxSingleAxisError = 0.0 self.maxPosError = 0.0 for rig in self.rigids: if rig.maxPosError > self.maxPosError: self.maxPosError = rig.maxPosError if rig.maxAxisError > self.maxAxisError: self.maxAxisError = rig.maxAxisError if rig.maxSingleAxisError > self.maxSingleAxisError: self.maxSingleAxisError = rig.maxSingleAxisError if not a2plib.SIMULATION_STATE: Msg(translate("A2plus", "TARGET POS-ACCURACY :{}").format(self.mySOLVER_POS_ACCURACY) + "\n") Msg(translate("A2plus", "REACHED POS-ACCURACY :{}").format(self.maxPosError) + "\n") Msg(translate("A2plus", "TARGET SPIN-ACCURACY :{}").format(self.mySOLVER_SPIN_ACCURACY) + "\n") Msg(translate("A2plus", "REACHED SPIN-ACCURACY :{}").format(self.maxAxisError) + "\n") Msg(translate("A2plus", "SA SPIN-ACCURACY :{}").format(self.maxSingleAxisError) + "\n") return systemSolved def solveSystem(self,doc,matelist=None, showFailMessage=True): if not a2plib.SIMULATION_STATE: Msg("===== " + translate("A2plus", "Start Solving System") + " =====\n") systemSolved = self.solveAccuracySteps(doc,matelist) if self.status == "loadingDependencyError": return systemSolved if systemSolved: self.status = "solved" if not a2plib.SIMULATION_STATE: Msg("===== " + translate("A2plus", "System solved using partial + recursive unfixing") + " =====\n") self.checkForUnmovedParts() else: if a2plib.SIMULATION_STATE == True: self.status = "unsolved" return systemSolved else: # a2plib.SIMULATION_STATE == False self.status = "unsolved" if showFailMessage == True: Msg("===== " + translate("A2plus", "Could not solve system") + " =====\n") msg = \ translate("A2plus", ''' Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! ''' ) QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraint mismatch"), msg ) return systemSolved def checkForUnmovedParts(self): """ If there are parts, which are constrained but have no constraint path to a fixed part, the solver will ignore them and they are not moved. This function detects this and signals it to the user. """ if len(self.unmovedParts) != 0: FreeCADGui.Selection.clearSelection() for obj in self.unmovedParts: FreeCADGui.Selection.addSelection(obj) msg = translate("A2plus", ''' The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! ''') if a2plib.SHOW_WARNING_FLOATING_PARTS: #dialog is not needet during conflict finding QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Could not move some parts"), msg ) else: print ('') print (msg) # during conflict finding do a print to console output print ('') def printList(self, name, l): Msg("{} = (".format(name)) for e in l: Msg( "{} ".format(e.label) ) Msg("):\n") def calculateChain(self, doc): # Initialize step count and work list self.stepCount = 0 workList = [] if a2plib.SIMULATION_STATE or not a2plib.PARTIAL_PROCESSING_ENABLED: # Solve complete system at once if simulation is running or partial processing is disabled workList = self.rigids return self.calculateWorkList(doc, workList) # Normal partial solving if no simulation is running and partial processing is enabled # Load initial worklist with all fixed parts workList.extend(rig for rig in self.rigids if rig.fixed) while True: addList = set() newRigFound = False # Check linked rigids for possible additions to the work list for rig in workList: for linkedRig in rig.linkedRigids: if linkedRig not in workList and rig.isFullyConstrainedByRigid(linkedRig): addList.add(linkedRig) newRigFound = True break if not newRigFound: # If no new rigids found, consider candidates for addition to the work list for rig in workList: addList.update(rig.getCandidates()) if addList: # Update cached state for rigids being added to the work list for rig in addList: rig.updateCachedState(rig.placement) workList.extend(addList) solutionFound = self.calculateWorkList(doc, workList) if not solutionFound: return False else: break if a2plib.SOLVER_ONESTEP > 2: break return True def calculateWorkList(self, doc, workList): reqPosAccuracy = self.mySOLVER_POS_ACCURACY reqSpinAccuracy = self.mySOLVER_SPIN_ACCURACY for rig in workList: rig.enableDependencies(workList) for rig in workList: rig.calcSpinBasicDataDepsEnabled() self.lastPositionError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE self.lastAxisError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE self.convergencyCounter = 0 calcCount = 0 goodAccuracy = False pos_error_check=True maxAxisError_check=True maxSingleAxisError_check=True pos_error_save=[] axis_error_save=[] single_axis_error_save=[] while not goodAccuracy: maxPosError = 0.0 maxAxisError = 0.0 maxSingleAxisError = 0.0 calcCount += 1 self.stepCount += 1 self.convergencyCounter += 1 # First calculate all the movement vectors for w in workList: w.moved = True w.calcMoveData(doc, self) if w.maxPosError > maxPosError: maxPosError = w.maxPosError if w.maxAxisError > maxAxisError: maxAxisError = w.maxAxisError if w.maxSingleAxisError > maxSingleAxisError: maxSingleAxisError = w.maxSingleAxisError # Perform the move for w in workList: w.move(doc) # The accuracy is good, apply the solution to FreeCAD's objects if (maxPosError <= reqPosAccuracy and # relevant check maxAxisError <= reqSpinAccuracy and # relevant check maxSingleAxisError <= reqSpinAccuracy * 10 # additional check for insolvable assemblies # sometimes spin can be solved but singleAxis not.. ) or (a2plib.SOLVER_ONESTEP > 0): # The accuracy is good, we're done here goodAccuracy = True # Mark the rigids as tempfixed and add its constrained rigids to pending list to be processed next for r in workList: r.applySolution(doc, self) r.tempfixed = True if self.convergencyCounter > SOLVER_STEPS_CONVERGENCY_CHECK: if ( maxPosError >= SOLVER_CONVERGENCY_FACTOR * self.lastPositionError or maxAxisError >= SOLVER_CONVERGENCY_FACTOR * self.lastAxisError ): foundRigidToUnfix = False # search for unsolved dependencies... for rig in workList: if rig.fixed or rig.tempfixed: continue #if rig.maxAxisError >= maxAxisError or rig.maxPosError >= maxPosError: if rig.maxAxisError > reqSpinAccuracy or rig.maxPosError > reqPosAccuracy: for r in rig.linkedRigids: if r.tempfixed and not r.fixed: r.tempfixed = False #Msg("unfixed Rigid {}\n".format(r.label)) foundRigidToUnfix = True if foundRigidToUnfix: self.lastPositionError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE self.lastAxisError = SOLVER_CONVERGENCY_ERROR_INIT_VALUE self.convergencyCounter = 0 continue else: Msg('\n') Msg('convergency-conter: {}\n'.format(self.convergencyCounter)) Msg(translate("A2plus", "No convergency anymore, retrying") + "\n") pass self.lastPositionError = maxPosError self.lastAxisError = maxAxisError self.maxSingleAxisError = maxSingleAxisError self.convergencyCounter = 0 if self.stepCount > SOLVER_MAXSTEPS: Msg(translate("A2plus", "Reached max calculations count: {}").format(SOLVER_MAXSTEPS) + "\n") return False return True def solutionToParts(self,doc): for rig in self.rigids: rig.applySolution(doc, self); #------------------------------------------------------------------------------ def solveConstraints( doc, cache=None, useTransaction = True, matelist=None, showFailMessage=True): if doc is None: QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "No active document found!"), translate("A2plus", "Before running solver, you have to open an assembly file.") ) return if useTransaction: doc.openTransaction("a2p_systemSolving") ss = SolverSystem() systemSolved = ss.solveSystem(doc, matelist, showFailMessage ) if useTransaction: doc.commitTransaction() a2plib.unTouchA2pObjects() return systemSolved def autoSolveConstraints( doc, callingFuncName, cache=None, useTransaction=True, matelist=None): if not a2plib.getAutoSolveState(): return if callingFuncName is not None: """ print ( translate("A2plus", "AutoSolveConstraints called from '{}'").format( callingFuncName ) ) """ solveConstraints(doc, useTransaction) class a2p_SolverCommand: def Activated(self): solveConstraints( FreeCAD.ActiveDocument ) #the new iterative solver def GetResources(self): return { 'Pixmap' : path_a2p + '/icons/a2p_Solver.svg', 'MenuText': translate("A2plus", "Solve constraints"), 'ToolTip' : translate("A2plus", "Solves constraints") } FreeCADGui.addCommand('a2p_SolverCommand', a2p_SolverCommand()) #------------------------------------------------------------------------------ if __name__ == "__main__": DebugMsg(A2P_DEBUG_1, translate("A2plus", "Starting solveConstraints latest script...") + "\n") doc = FreeCAD.activeDocument() solveConstraints(doc) ================================================ FILE: a2p_topomapper.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** """ Experimental mapper for a2p related topological naming. It is used during first level import of fcstd documents to a2p Working principle: - History of toplevel shapes within the fcstd doc is analyzed starting from the very first basefeature (found recursively from toplevel shapes) - The algorithm analyses the vertexes/edges/faces of each shape in history - Each topo element is described by geometrical values (position,axis,etc) - A dictionary is build, the geometrical values are used as keys and the values are the names of the topo-elements. - during processing of a new shape/feature, it's keys are calculated and looked up in the dictionary. If a key already exists, the algo assumes, that the geometry belongs to a former analysed shape. If the key does not exist, a new key/name pair is added to the dictionary. - When all shapes are processed, there exists a dict with (multiple) entries of all geometry. - Some geometry causes multiple keys. So for plane faces there are stored two keys per vertex. One with positive axis value, one with neg.axis value. This is necessary because normals can flip during build history. Key-generation: keys for vertexes: "xvalue;yvalue;zvalue" keys for edges: (different ones for different edge types) straight lines 2 keys are uses, each consists of: - vertexkey of the endpoint - an axiskey pointing to the other endpoint circles: two keys are used for each vertex on the curve - key consisting of center-vertex and positive axis data + radius - key consisting of center-vertex and negative axis data + radius - both marked with "CIRC" at the beginning other edge types are put to dict with dummy entries. keys for faces: Plane faces are described by vertex/normal for each vertex. Additionally a second entry by vertex/neg.normal for each vertex. Spheres are described by center-vertex + radius Cylindrical faces are described by vertex/pos.axis+radius and second one with neg.axis per vertex. Newer shapes in history can delete geo elements of previous ones. If the algorithm finds one relicting key of an old shape in the dict, it assumes that the geo element belongs to the old shape. Newly created geo elements, which belong together, then get the old name, otherwise a new name is defined and put to the dict. Example: A new feature cuts away an endpoint of a line, but one still exists: the newly linesegment belongs logically to the old existing one. The new vertex gets the existing name. So if a constraint was linked to the old linesegment, we can map it to the new linesegment and the assembly keeps consistent. After building the dict, the compound shape of total doc is analysed. Keys of this are build and looked up in the dict to get the names. A List of names (same indexes as vertexes[n],edges[],faces[] is generated for output. All this helps A2plus to identify the correct subelements for constraints, if imported parts are been edited. """ import FreeCAD import Part from FreeCAD import Base from a2p_translateUtils import * import a2plib class TopoMapper(object): def __init__(self,doc): self.doc = doc self.fileName = self.doc.FileName self.shapeDict = {} self.vertexNames = [] self.edgeNames = [] self.faceNames = [] self.treeNodes = {} self.topLevelShapes = [] self.doneObjects = [] self.totalNumVertexes = 0 self.totalNumEdges = 0 self.totalNumFaces = 0 self.isPartDesignDocument = False def calcFloatKey(self,val): return "%014.3f;" % val def calcVertexKey(self,inOb): """ Create a unique key defined by vertex-position, accepts also vectors as input """ try: coords = ( inOb.Point.x, inOb.Point.y, inOb.Point.z ) except: coords = ( inOb.x, inOb.y, inOb.z, ) key = '' for value in coords: keyPartial = "%014.3f;" % value if keyPartial == "-000000000.000;": keyPartial = "0000000000.000;" key += keyPartial return key def calcAxisKey(self,axis): """ Create a unique key defined by axis-direction. """ coords = ( axis.x, axis.y, axis.z ) key = '' for value in coords: keyPartial = "%012.9f;" % value if keyPartial == "-0.000000000;": keyPartial = "00.000000000;" key += keyPartial return key def calcEdgeKeys(self, edge, pl): keys = [] # workaround for hasattr(edge,"Curve"), which does not work with spheres on conda builds curveAttributeExists = False try: if hasattr(edge,"Curve"): # throws exception on Conda build (spheres), curveAttributeExists = True except: pass # circular edge #hasattr(edge,"Curve") because of spheres... if ( curveAttributeExists and hasattr(edge.Curve,'Axis') and hasattr(edge.Curve,'Radius') ): axisStart = pl.multVec(edge.Curve.Center) axisEnd = pl.multVec(edge.Curve.Center.add(edge.Curve.Axis)) axis = axisEnd.sub(axisStart) keys.append( 'CIRC;'+ self.calcVertexKey(pl.multVec(edge.Curve.Center))+ self.calcAxisKey(axis)+ self.calcFloatKey(edge.Curve.Radius) ) else: endPoint1 = pl.multVec(edge.Vertexes[0].Point) endPoint2 = pl.multVec(edge.Vertexes[-1].Point) direction1 = endPoint2.sub(endPoint1) direction2 = endPoint1.sub(endPoint2) try: direction1.normalize() direction2.normalize() except: pass keys.append( self.calcVertexKey(endPoint1)+ self.calcAxisKey(direction1) ) keys.append( self.calcVertexKey(endPoint2)+ self.calcAxisKey(direction2) ) return keys def calcFaceKeys(self, face, pl): keys = [] # A sphere... if str( face.Surface ).startswith('Sphere'): keys.append( 'SPH;'+ self.calcVertexKey(pl.multVec(face.Surface.Center))+ self.calcFloatKey(face.Surface.Radius) ) # a cylindric face... elif all( hasattr(face.Surface,a) for a in ['Axis','Center','Radius'] ): axisStart = pl.multVec(face.Surface.Center) axisEnd = pl.multVec(face.Surface.Center.add(face.Surface.Axis)) axis = axisEnd.sub(axisStart) axisKey = self.calcAxisKey(axis) negativeAxis = Base.Vector(axis) negativeAxis.multiply(-1.0) negativeAxisKey = self.calcAxisKey(negativeAxis) radiusKey = self.calcFloatKey(face.Surface.Radius) # for v in face.Vertexes: vertexKey = self.calcVertexKey(pl.multVec(v.Point)) keys.append( 'CYL;'+ vertexKey+ axisKey+ radiusKey ) keys.append( 'CYL;'+ vertexKey+ negativeAxisKey+ radiusKey ) elif str( face.Surface ) == '': pt = face.Vertexes[0].Point uv=face.Surface.parameter(pt) u=uv[0] v=uv[1] normal=face.normalAt(u,v) normalStart = pl.multVec(pt) normalEnd = pl.multVec(pt.add(normal)) normal = normalEnd.sub(normalStart) negativeNormal = Base.Vector(normal) negativeNormal.multiply(-1.0) normalKey = self.calcAxisKey(normal) negativeNormalKey = self.calcAxisKey(negativeNormal) for vert in face.Vertexes: vertexKey = self.calcVertexKey(pl.multVec(vert.Point)) keys.append( 'PLANE;'+ vertexKey+ normalKey ) keys.append( 'PLANE;'+ vertexKey+ negativeNormalKey ) else: keys.append("NOTRACE") return keys #FIXME def populateShapeDict(self,objName): self.doneObjects.append(objName) ob = self.doc.getObject(objName) shape = ob.Shape if objName.startswith("Link"): pl = ob.Placement else: pl = ob.getGlobalPlacement().multiply(ob.Placement.inverse()) # # Populate vertex entries... vertexes = shape.Vertexes numNewlyCreatedVertexes = len(shape.Vertexes) - self.totalNumVertexes self.totalNumVertexes = len(shape.Vertexes) vertexNamePrefix = 'V;'+objName + ';' vertexNameSuffix = str(numNewlyCreatedVertexes)+';' #only correct for PartDesign, PartWB gives false counts i = 1 # do not enumerate the following, count new vertexes ! for vertex in vertexes: vertexKey = self.calcVertexKey(pl.multVec(vertex.Point)) if self.isPartDesignDocument: vertexName = vertexNamePrefix + str(i) + ';' + vertexNameSuffix else: vertexName = vertexNamePrefix + str(i) + ';' vertexFound = self.shapeDict.get(vertexKey,False) if vertexFound == False: self.shapeDict[vertexKey] = vertexName i+=1 # new vertex counting per feature # # populate edge entries... edges = shape.Edges numNewlyCreatedEdges = len(edges) - self.totalNumEdges self.totalNumEdges = len(edges) edgeNamePrefix = 'E;' + objName + ';' edgeNameSuffix = str(numNewlyCreatedEdges)+';' #only correct for PartDesign, PartWB gives false counts i = 1 # do not enumerate the following, count new Edges ! for edge in edges: edgeKeys = self.calcEdgeKeys(edge, pl) # 2 keys for a linear edge, 1 key per circular edge entryFound=False for k in edgeKeys: tmp = self.shapeDict.get(k,False) if tmp != False: entryFound = True break if not entryFound: if self.isPartDesignDocument: edgeName = edgeNamePrefix + str(i) + ';' + edgeNameSuffix else: edgeName = edgeNamePrefix + str(i) + ';' i+=1 else: edgeName = tmp # the old edge name... for k in edgeKeys: self.shapeDict[k] = edgeName # # populate face entries... faces = shape.Faces self.totalNumFaces = 0 numNewlyCreatedFaces = len(faces) - self.totalNumFaces self.totalNumFaces = len(faces) faceNamePrefix = 'F;' + objName + ';' faceNameSuffix = str(numNewlyCreatedFaces)+';' #only correct for PartDesign, PartWB gives false counts i = 1 # do not enumerate the following, count new Faces ! for face in faces: faceKeys = self.calcFaceKeys(face, pl) # one key per vertex of a face entryFound=False # if one key matches, it is the old face name for k in faceKeys: tmp = self.shapeDict.get(k,False) if tmp != False: entryFound = True break if not entryFound: if self.isPartDesignDocument: faceName = faceNamePrefix + str(i) + ';' + faceNameSuffix else: faceName = faceNamePrefix + str(i) + ';' i+=1 else: faceName = tmp # the old face name... for k in faceKeys: self.shapeDict[k] = faceName def processTopoData(self,objName,level=0): """ Recursive function which populates the shapeDict with geometricKey/toponame entries """ level+=1 if not objName.startswith("Link"): inList, outList = self.treeNodes[objName] for ob in outList: self.processTopoData(ob.Name,level) if ( not objName.startswith("Body") and objName not in self.doneObjects ): self.populateShapeDict(objName) def makePlacedShape(self,obj): """ Return a copy of obj.Shape with proper placement applied. """ tempShape = obj.Shape.copy() plmGlobal = obj.Placement try: plmGlobal = obj.getGlobalPlacement(); except: pass tempShape.Placement = plmGlobal return tempShape def addedByPathWB(self,obName): """ Function detects, whether special object belongs to a milling job of Path WB It is looking for "Stock" and contents of Model-group """ ob = self.doc.getObject(obName) if ob.Name.startswith('Stock'): for o in ob.InList: if o.Name.startswith('Job'): return True for o in ob.InList: if o.Name.startswith('Model'): for o1 in o.InList: if o1.Name.startswith('Job'): return True return False def isTopLevelInList(self,lst): if len(lst) == 0: return True for ob in lst: if ob.isDerivedFrom('PartDesign::SubShapeBinder'): continue if ob.isDerivedFrom('Part::SubShapeBinder'): continue if ob.Name.startswith("Group"): continue if ob.Name.startswith("ShapeBinder"): continue if ob.Name.startswith("Clone"): continue if ob.Name.startswith("Part__Mirroring"): continue if ob.Name.startswith("mirror"): continue if ob.hasExtension('App::GeoFeatureGroupExtension') and ob.Name.startswith("Part"): continue else: return False return True def getTopLevelObjects(self, allowSketches=False): #------------------------------------------- # Create treenodes of the importable Objects with a shape #------------------------------------------- self.treeNodes = {} shapeObs = a2plib.filterShapeObs(self.doc.Objects,allowSketches) S = set(shapeObs) for ob in S: inList = a2plib.filterShapeObs(ob.InList,allowSketches) outList = a2plib.filterShapeObs(ob.OutList,allowSketches) self.treeNodes[ob.Name] = ( inList, outList ) #------------------------------------------- # nodes with empty inList are top level shapes for sure # (cloned objects could be missing) #------------------------------------------- self.topLevelShapes = [] for objName in self.treeNodes.keys(): inList,dummy = self.treeNodes[objName] if self.isTopLevelInList(inList): self.topLevelShapes.append(objName) elif allowSketches==True and objName.startswith('Sketch'): # want to have all sketches self.topLevelShapes.append(objName) else: #------------------------------------------- # search for missing non top-level clone-basefeatures # Maybe a clone as basefeature of a body.. #------------------------------------------- numBodies = 0 numClones = 0 invalidObjects = False if len(inList) % 2 == 0: # pairs of Clone/Bodies for o in inList: if o.Name.startswith('Clone'): numClones += 1 elif o.Name.startswith('Body'): numBodies += 1 else: invalidObjects = True break if not invalidObjects: if numBodies == numClones: self.topLevelShapes.append(objName) #------------------------------------------- # search for missing non top-level objects, # as they are referenced by fasteners WB objects #------------------------------------------- allObjectsAreFasteners = True for o in inList: if not a2plib.isFastenerObject(o): allObjectsAreFasteners = False break if allObjectsAreFasteners == True: self.topLevelShapes.append(objName) #------------------------------------------- # Got some shapes used by sections? # collect them to a blacklist # InLists of objects used by section are empty, therefore they # are recognized falsely as topLevelShapes # # 2020-02-23: "Group" added to blackList #------------------------------------------- blackList = [] for ob in self.doc.Objects: if ob.Name.startswith("Group"): blackList.append(ob.Name) elif ob.Name.startswith("Section"): if hasattr(ob,"Base"): if ob.Base is not None: blackList.append(ob.Base.Name) if hasattr(ob,"Tool"): if ob.Tool is not None: blackList.append(ob.Tool.Name) #------------------------------------------- # Got some shapes created by PathWB? filter out... # also filter out invisible shapes... # also filter out the blackList #------------------------------------------- tmp = [] for n in self.topLevelShapes: if self.addedByPathWB(n): continue if n in blackList: continue # if a2plib.doNotImportInvisibleShapes(): ob = self.doc.getObject(n) if hasattr(ob,"ViewObject"): if hasattr(ob.ViewObject,"Visibility"): if ob.ViewObject.Visibility == False or not a2plib.isGlobalVisible(ob): print( translate("A2plus", "Import ignored invisible shape: '{}'").format( ob.Name ) ) continue tmp.append(n) self.topLevelShapes = tmp #------------------------------------------- # return complete topLevel document objects for external use #------------------------------------------- outObs = [] for objName in self.topLevelShapes: outObs.append(self.doc.getObject(objName)) return outObs def detectPartDesignDocument(self): self.isPartDesignDocument = False for ob in self.doc.Objects: if ob.Name.startswith('Body'): self.isPartDesignDocument = True break def getLinkedObjectRecursive(self,ob): if ob.ViewObject.TypeId == "Gui::ViewProviderLinkPython": # a link is involved... linkedObject = None for p in ob.PropertiesList: try: linkedObject = getattr(ob,p).getLinkedObject() if linkedObject is not None: linkedObject = self.getLinkedObjectRecursive(linkedObject) break except: pass if linkedObject is not None: return linkedObject else: return ob else: return ob def createTopoNames(self, desiredShapeLabel = None): """ creates a combined shell of all toplevel objects and assigns toponames to its geometry if toponaming is enabled. """ if desiredShapeLabel is not None: allowSketches = True else: allowSketches = False self.detectPartDesignDocument() self.getTopLevelObjects(allowSketches) # filter topLevelShapes if there is a desiredShapeLabel # means: extract only one desired shape out of whole file... if desiredShapeLabel: #is not None tmp = [] for objName in self.topLevelShapes: o = self.doc.getObject(objName) if o.Label == desiredShapeLabel: tmp.append(o.Name) self.topLevelShapes = tmp #------------------------------------------- # analyse the toplevel shapes #------------------------------------------- if a2plib.getUseTopoNaming(): for n in self.topLevelShapes: self.totalNumVertexes = 0 self.totalNumEdges = 0 self.totalNumFaces = 0 self.processTopoData(n) # analyse each toplevel object... # #------------------------------------------- # MUX the toplevel shapes #------------------------------------------- faces = [] faceColors = [] transparency = 0 shape_list = [] if len(self.topLevelShapes)==1 and self.topLevelShapes[0].startswith("Sketch"): importingSketch = True else: importingSketch = False if importingSketch == True: # We are importing a sketch object objName = self.topLevelShapes[0] sketchOb = self.doc.getObject(objName) solid = sketchOb.Shape else: # We are importing no sketch object for objName in self.topLevelShapes: ob = self.doc.getObject(objName) tempShape = self.makePlacedShape(ob) faces.extend(tempShape.Faces) #let python libs extend faces, much faster #manage colors of faces if ob.ViewObject.TypeId == "Gui::ViewProviderLinkPython": # a link is involved... linkedObject = self.getLinkedObjectRecursive(ob) needDiffuseExtension = ( len(linkedObject.ViewObject.DiffuseColor) < len(linkedObject.Shape.Faces) ) shapeCol = linkedObject.ViewObject.ShapeColor diffuseCol = linkedObject.ViewObject.DiffuseColor transparency = linkedObject.ViewObject.Transparency shape_list.append(ob.Shape) if needDiffuseExtension: diffuseElement = a2plib.makeDiffuseElement(shapeCol,transparency) for i in range(0,len(tempShape.Faces)): faceColors.append(diffuseElement) else: count = len(ob.Shape.Faces)//len(linkedObject.Shape.Faces) for c in range(0,count): # add colors to multiple representations of linkedObject faceColors.extend(diffuseCol) else: # no link is involved... if hasattr(ob.ViewObject, "ShapeColor") and hasattr(ob.ViewObject,"DiffuseColor"): needDiffuseExtension = ( len(ob.ViewObject.DiffuseColor) < len(ob.Shape.Faces) ) shapeCol = ob.ViewObject.ShapeColor diffuseCol = ob.ViewObject.DiffuseColor transparency = ob.ViewObject.Transparency shape_list.append(ob.Shape) if needDiffuseExtension: diffuseElement = a2plib.makeDiffuseElement(shapeCol,transparency) for i in range(0,len(tempShape.Faces)): faceColors.append(diffuseElement) else: faceColors.extend(diffuseCol) elif hasattr(ob.ViewObject, "ShapeColor"): shapeCol = ob.ViewObject.ShapeColor transparency = ob.Color[3] shape_list.append(ob.Shape) diffuseElement = a2plib.makeDiffuseElement(shapeCol,transparency) for i in range(0,len(tempShape.Faces)): faceColors.append(diffuseElement) else: shapeCol = ob.Color transparency = ob.Color[3] shape_list.append(ob.Shape) diffuseElement = a2plib.makeDiffuseElement(shapeCol,transparency) for i in range(0,len(tempShape.Faces)): faceColors.append(diffuseElement) shell = Part.makeShell(faces) try: if a2plib.getUseSolidUnion(): if len(shape_list) > 1: shape_base=shape_list[0] shapes=shape_list[1:] solid = shape_base.fuse(shapes) else: #one shape only solid = Part.Solid(shape_list[0]) else: solid = Part.Solid(shell) # fails with missing faces if shell contains spheres if len(shell.Faces) != len(solid.Faces): solid = shell # fall back to shell if faces are missing except: # keeping a shell if solid is failing FreeCAD.Console.PrintWarning(translate("A2plus", "Union of Shapes FAILED") + "\n") solid = shell #------------------------------------------- # if toponaming is used, assign toponames to # shells geometry #------------------------------------------- muxInfo = [] if a2plib.getUseTopoNaming(): #------------------------------------------- # map vertexnames to the MUX #------------------------------------------- muxInfo.append("[VERTEXES]") for i,v in enumerate(solid.Vertexes): k = self.calcVertexKey(v) defaultVal = "V;NONAME;{};".format(i) name = self.shapeDict.get(k,defaultVal) muxInfo.append(name) #------------------------------------------- # map edgenames to the MUX #------------------------------------------- muxInfo.append("[EDGES]") pl = FreeCAD.Placement() for i,edge in enumerate(solid.Edges): keys = self.calcEdgeKeys(edge, pl) defaultVal = "E;NONAME;{};".format(i) name = self.shapeDict.get(keys[0],defaultVal) muxInfo.append(name) #------------------------------------------- # map facenames to the MUX #------------------------------------------- muxInfo.append("[FACES]") pl = FreeCAD.Placement() for i,face in enumerate(solid.Faces): keys = self.calcFaceKeys(face, pl) defaultVal = "F;NONAME;{};".format(i) name = self.shapeDict.get(keys[0],defaultVal) muxInfo.append(name) return muxInfo, solid, faceColors, transparency ================================================ FILE: a2p_translateUtils.py ================================================ # -*- coding: utf8 -*- #*************************************************************************** #* * #* Copyright (c) 2020 kbwbe * #* * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD if FreeCAD.GuiUp: from PySide.QtCore import QT_TRANSLATE_NOOP from DraftGui import translate else: def QT_TRANSLATE_NOOP(context, text): return text def translate(context, text): return text def tr_(text): return translate("A2plus", text) ================================================ FILE: a2p_viewProviderProxies.py ================================================ #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import FreeCAD, FreeCADGui from pivy import coin import traceback from a2p_translateUtils import * import a2plib #============================================================================== class PopUpMenuItem: def __init__( self, proxy, menu, label, Freecad_cmd ): self.Object = proxy.Object self.Freecad_cmd = Freecad_cmd action = menu.addAction(label) action.triggered.connect( self.execute ) proxy.pop_up_menu_items.append( self ) def execute( self ): try: FreeCADGui.runCommand( self.Freecad_cmd ) except: FreeCAD.Console.PrintError( traceback.format_exc() ) #============================================================================== class ConstraintViewProviderProxy: def __init__( self, constraintObj, iconPath, createMirror=True, origLabel = '', mirrorLabel = '', extraLabel = '' ): self.iconPath = iconPath self.constraintObj_name = constraintObj.Name constraintObj.purgeTouched() if createMirror: self.mirror_name = create_constraint_mirror( constraintObj, iconPath, origLabel, mirrorLabel, extraLabel ) self.enableDeleteCounterPart = True #allow to delete the mirror self.onChangedEnabled = True def getIcon(self): ob = FreeCAD.ActiveDocument.getObject(self.constraintObj_name) if ob is not None: return a2plib.A2P_CONSTRAINTS_ICON_MAP[ ob.Type ] def doubleClicked(self,vobj): FreeCADGui.activateWorkbench('A2plusWorkbench') FreeCADGui.runCommand("a2p_EditConstraintCommand") #WF: next 3 methods not required def attach(self, vobj): #attach to what document? vobj.addDisplayMode( coin.SoGroup(),"Standard" ) def getDisplayModes(self,obj): return ["Standard"] def getDefaultDisplayMode(self): return "Standard" def onChanged(self,viewObject,prop): if not hasattr(viewObject.Proxy, "onChangedEnabled"): viewObject.Proxy.onChangedEnabled = True if viewObject.Proxy.onChangedEnabled == False: return if prop == "Visibility": obj = viewObject.Object if hasattr(obj,"Suppressed"): obj.Suppressed = not viewObject.isVisible() doc = obj.Document if hasattr( obj.Proxy, 'mirror_name'): try: m = doc.getObject(obj.Proxy.mirror_name) m.ViewObject.Proxy.onChangedEnabled = False m.ViewObject.Visibility = viewObject.Visibility m.ViewObject.Proxy.onChangedEnabled = True except: pass # if original has already been removed... def onDelete(self, viewObject, subelements): # subelements is a tuple of strings if FreeCAD.activeDocument() != viewObject.Object.Document: return False if not hasattr(self,'enableDeleteCounterPart'): self.enableDeleteCounterPart = True if not self.enableDeleteCounterPart: return True # nothing more to do... # first delete the mirror... obj = viewObject.Object doc = obj.Document if hasattr( obj.Proxy, 'mirror_name'): try: m = doc.getObject(obj.Proxy.mirror_name) m.Proxy.enableDeleteCounterPart = False doc.removeObject( obj.Proxy.mirror_name ) # also delete mirror except: pass # if mirror is already deleted... return True #============================================================================== class ConstraintMirrorViewProviderProxy: def __init__( self, constraintObj, iconPath ): self.iconPath = iconPath self.constraintObj_name = constraintObj.Name self.enableDeleteCounterPart = True #allow to delete the original of the mirror self.onChangedEnabled = True def doubleClicked(self,vobj): FreeCADGui.activateWorkbench('A2plusWorkbench') FreeCADGui.runCommand("a2p_EditConstraintCommand") def getIcon(self): ob = FreeCAD.ActiveDocument.getObject(self.constraintObj_name) if ob is not None: return a2plib.A2P_CONSTRAINTS_ICON_MAP[ ob.Type ] #WF: next 3 methods not required def attach(self, vobj): vobj.addDisplayMode( coin.SoGroup(),"Standard" ) def getDisplayModes(self,obj): return ["Standard"] def getDefaultDisplayMode(self): return "Standard" def onChanged(self,viewObject,prop): if not hasattr(viewObject.Proxy, "onChangedEnabled"): viewObject.Proxy.onChangedEnabled = True if viewObject.Proxy.onChangedEnabled == False: return if prop == "Visibility": obj = viewObject.Object if hasattr(obj,"Suppressed"): obj.Suppressed = not viewObject.isVisible() doc = obj.Document try: c = doc.getObject(obj.Proxy.constraintObj_name) c.ViewObject.Proxy.onChangedEnabled = False c.ViewObject.Visibility = viewObject.Visibility c.ViewObject.Proxy.onChangedEnabled = True except: pass # if original has already been removed... def onDelete(self, viewObject, subelements): # subelements is a tuple of strings if FreeCAD.activeDocument() != viewObject.Object.Document: return False if not hasattr(self,'enableDeleteCounterPart'): self.enableDeleteCounterPart = True if not self.enableDeleteCounterPart: return True # nothing more to do... # First delete the original... obj = viewObject.Object doc = obj.Document try: c = doc.getObject(obj.Proxy.constraintObj_name) c.Proxy.enableDeleteCounterPart = False doc.removeObject(obj.Proxy.constraintObj_name) # also delete the original except: pass # if original has already been removed... return True #============================================================================== def create_constraint_mirror( constraintObj, iconPath, origLabel= '', mirrorLabel='', extraLabel = '' ): #FreeCAD.Console.PrintMessage("creating constraint mirror\n") cName = constraintObj.Name + '_mirror' cMirror = constraintObj.Document.addObject("App::FeaturePython", cName) if origLabel == '': cMirror.Label = constraintObj.Label + '_' else: cMirror.Label = constraintObj.Label + '__' + mirrorLabel constraintObj.Label = constraintObj.Label + '__' + origLabel if extraLabel != '': cMirror.Label += '__' + extraLabel constraintObj.Label += '__' + extraLabel for pName in constraintObj.PropertiesList: if pName == "ParentTreeObject": continue #causes problems with fc0.16 if constraintObj.getGroupOfProperty( pName ) == 'ConstraintInfo': #if constraintObj.getTypeIdOfProperty( pName ) == 'App::PropertyEnumeration': # continue #App::Enumeration::contains(const char*) const: Assertion `_EnumArray' failed. cMirror.addProperty( constraintObj.getTypeIdOfProperty( pName ), pName, "ConstraintNfo" #instead of ConstraintInfo, as to not confuse the assembly2sovler ) if pName == 'directionConstraint': v = constraintObj.directionConstraint if v != "none": #then updating a document with mirrors cMirror.directionConstraint = ["aligned","opposed"] cMirror.directionConstraint = v else: cMirror.directionConstraint = ["none","aligned","opposed"] else: setattr( cMirror, pName, getattr( constraintObj, pName) ) if constraintObj.getEditorMode(pName) == ['ReadOnly']: cMirror.setEditorMode( pName, 1 ) cMirror.addProperty("App::PropertyLink","ParentTreeObject","ConstraintNfo") # this was not copied because fc0.16 parent = FreeCAD.ActiveDocument.getObject(constraintObj.Object2) cMirror.ParentTreeObject = parent cMirror.setEditorMode('ParentTreeObject',1) # this is needed to trigger an update parent.touch() ConstraintMirrorObjectProxy( cMirror, constraintObj ) cMirror.ViewObject.Proxy = ConstraintMirrorViewProviderProxy( constraintObj, iconPath ) return cMirror.Name #============================================================================== class ConstraintObjectProxy: def __init__(self,obj=None): self.disable_onChanged = False if obj is not None: ConstraintObjectProxy.setProperties(self,obj) self.type = "a2p_constraint" def setProperties(self,obj): propList = obj.PropertiesList if not "Toponame1" in propList: obj.addProperty("App::PropertyString", "Toponame1", "ConstraintInfo") if not "Toponame2" in propList: obj.addProperty("App::PropertyString", "Toponame2", "ConstraintInfo") if not "Suppressed" in propList: obj.addProperty("App::PropertyBool", "Suppressed", "ConstraintInfo") obj.setEditorMode('Suppressed',1) obj.Suppressed = False # do not suppress constraints after document loading... # remove relict from renaming... if "suppressed" in propList: obj.removeProperty("suppressed") self.type = "a2p_constraint" def onDocumentRestored(self,obj): ConstraintObjectProxy.setProperties(self,obj) def execute(self, obj): return # functionality removed with new UserInterface, avoid nested recomputes... def onChanged(self, obj, prop): # Add new property "disable_onChanged" if not already existing... if not hasattr(self, 'disable_onChanged'): self.disable_onChanged = False if self.disable_onChanged: return if hasattr(self, 'mirror_name'): cMirror = obj.Document.getObject( self.mirror_name ) if cMirror is None: return #catch issues during deleting... if cMirror.Proxy is None: return #this occurs during document loading ... if obj.getGroupOfProperty( prop ) == 'ConstraintInfo': cMirror.Proxy.disable_onChanged = True setattr( cMirror, prop, getattr( obj, prop) ) cMirror.Proxy.disable_onChanged = False def reduceDirectionChoices( self, obj, value): if hasattr(self, 'mirror_name'): cMirror = obj.Document.getObject( self.mirror_name ) cMirror.directionConstraint = ["aligned","opposed"] #value should be updated in onChanged call due to assignment in 2 lines obj.directionConstraint = ["aligned","opposed"] obj.directionConstraint = value def callSolveConstraints(self): from a2p_solversystem import autoSolveConstraints autoSolveConstraints( FreeCAD.activeDocument(), cache = None, callingFuncName = "ConstraintObjectProxy::callSolveConstraints" ) #============================================================================== class ConstraintMirrorObjectProxy: def __init__(self, obj, constraintObj ): self.constraintObj_name = constraintObj.Name constraintObj.Proxy.mirror_name = obj.Name self.disable_onChanged = False obj.Proxy = self if obj is not None: ConstraintMirrorObjectProxy.setProperties(self,obj) self.type = "a2p_constraint_mirror" def setProperties(self,obj): propList = obj.PropertiesList if not "Toponame1" in propList: obj.addProperty("App::PropertyString", "Toponame1", "ConstraintNfo") if not "Toponame2" in propList: obj.addProperty("App::PropertyString", "Toponame2", "ConstraintNfo") if not "Suppressed" in propList: obj.addProperty("App::PropertyBool", "Suppressed", "ConstraintNfo") obj.setEditorMode('Suppressed',1) obj.Suppressed = False # do not suppress constraints after document loading... # remove relict from renaming... if "suppressed" in propList: obj.removeProperty("suppressed") self.type = "a2p_constraint_mirror" def onDocumentRestored(self,obj): ConstraintMirrorObjectProxy.setProperties(self,obj) def execute(self, obj): return #no work required in onChanged causes touched in original constraint ... def onChanged(self, obj, prop): ''' is triggered by Python code! And on document loading... ''' #FreeCAD.Console.PrintMessage("%s.%s property changed\n" % (obj.Name, prop)) if getattr( self, 'disable_onChanged', True): return if obj.getGroupOfProperty( prop ) == 'ConstraintNfo': if hasattr( self, 'constraintObj_name' ): constraintObj = obj.Document.getObject( self.constraintObj_name ) try: if getattr(constraintObj, prop) != getattr( obj, prop): setattr( constraintObj, prop, getattr( obj, prop) ) except: pass #loading issues... #============================================================================== ================================================ FILE: a2plib.py ================================================ # -*- coding: utf-8 -*- #*************************************************************************** #* * #* Copyright (c) 2018 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** import os import sys import FreeCAD import FreeCADGui from FreeCAD import Base import Part from PySide import QtGui from PySide import QtCore import copy import platform import numpy from pivy import coin translate = FreeCAD.Qt.translate preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") USE_PROJECTFILE = preferences.GetBool('useProjectFolder', False) PARTIAL_PROCESSING_ENABLED = preferences.GetBool('usePartialSolver', True) AUTOSOLVE_ENABLED = preferences.GetBool('autoSolve', True) RELATIVE_PATHES_ENABLED = preferences.GetBool('useRelativePathes',True) FORCE_FIXED_POSITION = preferences.GetBool('forceFixedPosition',True) SHOW_CONSTRAINTS_ON_TOOLBAR= preferences.GetBool('showConstraintsOnToolbar',True) RECURSIVE_UPDATE_ENABLED = preferences.GetBool('enableRecursiveUpdate',False) USE_SOLID_UNION = preferences.GetBool('useSolidUnion',True) SHOW_WARNING_FLOATING_PARTS = True # if SIMULATION_STATE == True assemblies are solved with less accuracy SIMULATION_STATE = False SAVED_TRANSPARENCY = [] path_a2p = os.path.dirname(__file__) path_a2p_resources = os.path.join( path_a2p, 'GuiA2p', 'Resources', 'resources.rcc') resourcesLoaded = QtCore.QResource.registerResource(path_a2p_resources) assert resourcesLoaded wb_globals = {} RED = (1.0,0.0,0.0) GREEN = (0.0,1.0,0.0) BLUE = (0.0,0.0,1.0) YELLOW = (1.0,1.0,0.0) WHITE = (1.0,1.0,1.0) BLACK = (0.0,0.0,0.0) # DEFINE DEBUG LEVELS FOR CONSOLE OUTPUT A2P_DEBUG_NONE = 0 A2P_DEBUG_1 = 1 A2P_DEBUG_2 = 2 A2P_DEBUG_3 = 3 #=================================================== # do debug settings here: #=================================================== A2P_DEBUG_LEVEL = A2P_DEBUG_NONE #normal: A2P_DEBUG_NONE GRAPHICALDEBUG = False #normal: False # for debug purposes # 0:normal # 1:one step in each worklist # 2:one step in first worklist SOLVER_ONESTEP = 0 #normal: 0 #=================================================== solver_debug_objects = [] #collect solver 3d output for later removal #=================================================== PARTIAL_SOLVE_STAGE1 = 1 #solve all rigid fully constrained to tempfixed rigid, enable only involved dep, then set them as tempfixed CONSTRAINT_DIALOG_REF = None CONSTRAINT_EDITOR__REF = None CONSTRAINT_VIEWMODE = False # This Icon map is necessary to show correct icons within very old assemblies A2P_CONSTRAINTS_ICON_MAP = { # constraintType: iconPath 'pointIdentity': ':/icons/a2p_PointIdentity.svg', 'pointOnLine': ':/icons/a2p_PointOnLineConstraint.svg', 'pointOnPlane': ':/icons/a2p_PointOnPlaneConstraint.svg', 'circularEdge': ':/icons/a2p_CircularEdgeConstraint.svg', 'axial': ':/icons/a2p_AxialConstraint.svg', 'axisParallel': ':/icons/a2p_AxisParallelConstraint.svg', 'axisPlaneParallel': ':/icons/a2p_AxisPlaneParallelConstraint.svg', 'axisPlaneNormal': ':/icons/a2p_AxisPlaneNormalConstraint.svg', 'axisPlaneAngle': ':/icons/a2p_AxisPlaneAngleConstraint.svg', 'planesParallel': ':/icons/a2p_PlanesParallelConstraint.svg', 'plane': ':/icons/a2p_PlaneCoincidentConstraint.svg', 'angledPlanes': ':/icons/a2p_AngleConstraint.svg', 'sphereCenterIdent': ':/icons/a2p_SphericalSurfaceConstraint.svg', 'CenterOfMass': ':/icons/a2p_CenterOfMassConstraint.svg' } #------------------------------------------------------------------------------ # Detect the operating system... #------------------------------------------------------------------------------ tmp = platform.system() tmp = tmp.upper() tmp = tmp.split(' ') OPERATING_SYSTEM = 'UNKNOWN' if "WINDOWS" in tmp: OPERATING_SYSTEM = "WINDOWS" elif "LINUX" in tmp: OPERATING_SYSTEM = "LINUX" else: OPERATING_SYSTEM = "OTHER" #------------------------------------------------------------------------------ def get_module_path(): """ Function return A2p module path. It tested in FreeCAD 0.19 and 0.21 in Linux 64-bit: Not work in both FreeCAd versions (return different end of string in different FreeCAD versions): print("os.path.dirname(): " + os.path.dirname(__file__)) Work in both FreeCAd versions: print("os.path.abspath(): " + os.path.abspath(__file__)) print("os.path.dirname(os.path.abspath(__file__)): " + os.path.dirname(os.path.abspath(__file__))) # FreeCAD 0.19: # os.path.dirname(): /home/user/.FreeCAD/Mod/A2plus # os.path.abspath(): /home/user/.FreeCAD/Mod/A2plus/a2plib.py # os.path.dirname(os.path.abspath(__file__)): /home/user/.FreeCAD/Mod/A2plus # FreeCAD 0.21: # os.path.dirname(): /home/user/.local/share/FreeCAD/Mod/A2plus/. # os.path.abspath(): /home/user/.local/share/FreeCAD/Mod/A2plus/a2plib.py # os.path.dirname(os.path.abspath(__file__)): /home/user/.local/share/FreeCAD/Mod/A2plus """ s_path = os.path.dirname(os.path.abspath(__file__)) return s_path #------------------------------------------------------------------------------ def getLanguagePath(): """ Function return path for localization files. It tested in FreeCAD 0.19 and 0.21 in Linux 64-bit: Work in both FreeCAd versions: print("os.path.join(get_module_path(), 'translations'): " + os.path.join(get_module_path(), "translations")) # FreeCAD 0.19: # os.path.join(get_module_path(), 'translations'): /home/user/.FreeCAD/Mod/A2plus/translations # FreeCAD 0.21: # os.path.join(get_module_path(), 'translations'): /home/user/.local/share/FreeCAD/Mod/A2plus/translations """ s_path = os.path.join(get_module_path(), "translations") return s_path #------------------------------------------------------------------------------ def getA2pVersion(): """ Function return A2Plus version for storing in assembly file """ A2plus_path = get_module_path() try: metadata = FreeCAD.Metadata(os.path.join(A2plus_path, 'package.xml')) return metadata.Version except: # Older FreeCAD versions do not support FreeCAD.Metadata, do a workaround tx = ' ?? ' f = open(os.path.join(A2plus_path, 'package.xml'),'r') lines = f.readlines() for line in lines: strippedLine = line.strip(' ').strip('\n').strip('\r') if strippedLine.startswith(''): tx = strippedLine.lstrip('').rstrip('') return tx #------------------------------------------------------------------------------ def drawDebugVectorAt(position,direction,rgbColor): """ Function draws a vector directly to 3D view using pivy/Coin. expects position and direction as Base.vector type color as tuple like (1,0,0) """ color = coin.SoBaseColor() color.rgb = rgbColor # Line style. lineStyle = coin.SoDrawStyle() lineStyle.style = coin.SoDrawStyle.LINES lineStyle.lineWidth = 2 points = coin.SoCoordinate3() lines = coin.SoLineSet() startPoint = position.x,position.y,position.z ep = position.add(direction) endPoint = ep.x,ep.y,ep.z points.point.values = (startPoint,endPoint) #create and feed data to separator sep=coin.SoSeparator() sep.addChild(points) sep.addChild(color) sep.addChild(lineStyle) sep.addChild(lines) #add separator to sceneGraph sg = FreeCADGui.ActiveDocument.ActiveView.getSceneGraph() sg.addChild(sep) solver_debug_objects.append(sep) #------------------------------------------------------------------------------ def isGlobalVisible(ob): """ Part containers do not propagate visibility to all its children. This function checks, whether at least one Part container is invisible in tree upwards direction. This function returns always true, except one Part- or Group-Container in tree-structure above is invisible """ result = True #remove constraints from the InList inList = [] for i in ob.InList: if isA2pConstraint(i): continue inList.append(i) if len(inList) == 0: if ( ob.Name.startswith('Group') or ob.Name.startswith('Part') ): return ob.ViewObject.Visibility # break the recursion elif len(inList) == 1: if ( inList[0].Name.startswith('Group') or inList[0].Name.startswith('Part') ): if inList[0].ViewObject.Visibility == False: return False # break instantly # do search in tree upwards result = isGlobalVisible(inList[0]) return result #------------------------------------------------------------------------------ def to_bytes(tx): if isinstance(tx, str): value = tx.encode("utf-8") else: value = tx return value # Instance of bytes #------------------------------------------------------------------------------ def to_str(tx): if isinstance(tx, bytes): value = tx.decode("utf-8") else: value = tx return value # Instance of unicode string #------------------------------------------------------------------------------ def setSimulationState(boolVal): global SIMULATION_STATE SIMULATION_STATE = boolVal #------------------------------------------------------------------------------ def doNotImportInvisibleShapes(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('doNotImportInvisibleShapes',True) #------------------------------------------------------------------------------ def getPerFaceTransparency(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('usePerFaceTransparency',False) #------------------------------------------------------------------------------ def getNativeFileManagerUsage(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('useNativeFileManager',False) #------------------------------------------------------------------------------ def getRecalculateImportedParts(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('recalculateImportedParts',False) #------------------------------------------------------------------------------ def getRecursiveUpdateEnabled(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('enableRecursiveUpdate',False) #------------------------------------------------------------------------------ def getForceFixedPosition(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('forceFixedPosition',False) #------------------------------------------------------------------------------ def getUseSolidUnion(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('useSolidUnion',False) #------------------------------------------------------------------------------ def getConstraintEditorRef(): global CONSTRAINT_EDITOR__REF return CONSTRAINT_EDITOR__REF #------------------------------------------------------------------------------ def setConstraintEditorRef(ref): global CONSTRAINT_EDITOR__REF CONSTRAINT_EDITOR__REF = ref #------------------------------------------------------------------------------ def setConstraintViewMode(active): global CONSTRAINT_VIEWMODE CONSTRAINT_VIEWMODE = active #------------------------------------------------------------------------------ def getConstraintViewMode(): global CONSTRAINT_VIEWMODE return CONSTRAINT_VIEWMODE #------------------------------------------------------------------------------ def getConstraintDialogRef(): global CONSTRAINT_DIALOG_REF return CONSTRAINT_DIALOG_REF #------------------------------------------------------------------------------ def setConstraintDialogRef(ref): global CONSTRAINT_DIALOG_REF CONSTRAINT_DIALOG_REF = ref #------------------------------------------------------------------------------ def getUseTopoNaming(): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") return preferences.GetBool('useTopoNaming',False) #------------------------------------------------------------------------------ def getRelativePathesEnabled(): global RELATIVE_PATHES_ENABLED return RELATIVE_PATHES_ENABLED #------------------------------------------------------------------------------ def setAutoSolve(enabled): global AUTOSOLVE_ENABLED AUTOSOLVE_ENABLED = enabled #------------------------------------------------------------------------------ def getAutoSolveState(): return AUTOSOLVE_ENABLED #------------------------------------------------------------------------------ def setPartialProcessing(enabled): global PARTIAL_PROCESSING_ENABLED PARTIAL_PROCESSING_ENABLED = enabled #------------------------------------------------------------------------------ def isPartialProcessing(): return PARTIAL_PROCESSING_ENABLED #------------------------------------------------------------------------------ def filterShapeObs(_list, allowSketches=False): lst = [] for ob in _list: if allowSketches == True: if ob.Name.startswith("Sketch"): lst.append(ob) continue if ( #Following object now have App::GeoFeatureGroupExtension in FC0.19 #prevent them from being filtered out. ob.Name.startswith("Boolean") or ob.Name.startswith("Body") ): pass elif ob.hasExtension('App::GeoFeatureGroupExtension'): #Part Containers within FC0.19.18405 seem to have a shape property.. #filter it out continue elif ob.Name.startswith("Group"): #Group Containers within FC0.19 (Release >= 2020/03/31) seem to have a shape property.. #filter it out continue if hasattr(ob,"Shape") and ob.Shape is not None and ob.Shape != 'None': #str 'None': TechDraw Balloons... if len(ob.Shape.Faces) > 0 and len(ob.Shape.Vertexes) > 0: lst.append(ob) S = set(lst) lst = [] lst.extend(S) return lst #------------------------------------------------------------------------------ def setTransparency(): global SAVED_TRANSPARENCY # Save Transparency of Objects and make all transparent doc = FreeCAD.ActiveDocument if len(SAVED_TRANSPARENCY) > 0: # Transparency is already saved, no need to set transparency again return shapedObs = filterShapeObs(doc.Objects) # filter out partlist, spreadsheets etc.. sel = FreeCADGui.Selection for obj in shapedObs: if hasattr(obj,'ViewObject'): # save "all-in" *MK if hasattr(obj.ViewObject,'DiffuseColor'): SAVED_TRANSPARENCY.append( (obj.Name, obj.ViewObject.Transparency, obj.ViewObject.ShapeColor, obj.ViewObject.DiffuseColor) ) else: SAVED_TRANSPARENCY.append( (obj.Name, obj.ViewObject.Transparency, obj.ViewObject.ShapeColor, None) ) obj.ViewObject.Transparency = 80 sel.addSelection(obj) # Transparency workaround. Transparency is taken when once been selected sel.clearSelection() #------------------------------------------------------------------------------ def restoreTransparency(): global SAVED_TRANSPARENCY # restore transparency of objects... doc = FreeCAD.ActiveDocument sel = FreeCADGui.Selection for setting in SAVED_TRANSPARENCY: obj = doc.getObject(setting[0]) if obj is not None: # restore "all-in" *MK obj.ViewObject.Transparency = setting[1] obj.ViewObject.ShapeColor = setting[2] obj.ViewObject.DiffuseColor = setting[3] # diffuse always at last sel.addSelection(obj) sel.clearSelection() SAVED_TRANSPARENCY = [] #------------------------------------------------------------------------------ def isTransparencyEnabled(): global SAVED_TRANSPARENCY return (len(SAVED_TRANSPARENCY) > 0) #------------------------------------------------------------------------------ def getSelectedConstraint(): # Check that constraint is selected selection = [s for s in FreeCADGui.Selection.getSelection() if s.Document == FreeCAD.ActiveDocument ] if len(selection) == 0: return None connectionToView = selection[0] if not 'ConstraintInfo' in connectionToView.Content and not 'ConstraintNfo' in connectionToView.Content: return None return connectionToView #------------------------------------------------------------------------------ def appVersionStr(): version = int(FreeCAD.Version()[0]) subVersion = int(float(FreeCAD.Version()[1])) return "%03d.%03d" %(version,subVersion) #------------------------------------------------------------------------------ def numpyVecToFC(nv): assert len(nv) == 3 return Base.Vector(nv[0],nv[1],nv[2]) #------------------------------------------------------------------------------ def fit_rotation_axis_to_surface1( surface, n_u=3, n_v=3 ): 'should work for cylinders and possibly cones (depending on the u,v mapping)' uv = sum( [ [ (u,v) for u in numpy.linspace(0,1,n_u)] for v in numpy.linspace(0,1,n_v) ], [] ) P = [ numpy.array(surface.value(u,v)) for u,v in uv ] #positions at u,v points N = [ numpy.cross( *surface.tangent(u,v) ) for u,v in uv ] intersections = [] for i in range(len(N)-1): for j in range(i+1,len(N)): # based on the distance_between_axes( p1, u1, p2, u2) function, if 1 - abs(numpy.dot( N[i], N[j])) < 10**-6: continue #ignore parallel case p1_x, p1_y, p1_z = P[i] u1_x, u1_y, u1_z = N[i] p2_x, p2_y, p2_z = P[j] u2_x, u2_y, u2_z = N[j] t1_t1_coef = u1_x**2 + u1_y**2 + u1_z**2 #should equal 1 t1_t2_coef = -2*u1_x*u2_x - 2*u1_y*u2_y - 2*u1_z*u2_z # collect( expand(d_sqrd), [t1*t2] ) t2_t2_coef = u2_x**2 + u2_y**2 + u2_z**2 #should equal 1 too t1_coef = 2*p1_x*u1_x + 2*p1_y*u1_y + 2*p1_z*u1_z - 2*p2_x*u1_x - 2*p2_y*u1_y - 2*p2_z*u1_z t2_coef =-2*p1_x*u2_x - 2*p1_y*u2_y - 2*p1_z*u2_z + 2*p2_x*u2_x + 2*p2_y*u2_y + 2*p2_z*u2_z A = numpy.array([ [ 2*t1_t1_coef , t1_t2_coef ] , [ t1_t2_coef, 2*t2_t2_coef ] ]) b = numpy.array([ t1_coef, t2_coef]) try: t1, t2 = numpy.linalg.solve(A,-b) except numpy.linalg.LinAlgError: continue #print('distance_between_axes, failed to solve problem due to LinAlgError, using numerical solver instead') pos_t1 = P[i] + numpy.array(N[i])*t1 pos_t2 = P[j] + N[j]*t2 intersections.append( pos_t1 ) intersections.append( pos_t2 ) if len(intersections) < 2: error = numpy.inf return None, None, error else: #fit vector to intersection points; http://mathforum.org/library/drmath/view/69103.html X = numpy.array(intersections) centroid = numpy.mean(X,axis=0) M = numpy.array([i - centroid for i in intersections ]) A = numpy.dot(M.transpose(), M) U,s,V = numpy.linalg.svd(A) #numpy docs: s : (..., K) The singular values for every matrix, sorted in descending order. axis_pos = centroid axis_dir = V[0] error = s[1] #dont know if this will work return numpyVecToFC(axis_dir), numpyVecToFC(axis_pos), error #------------------------------------------------------------------------------ def fit_plane_to_surface1( surface, n_u=3, n_v=3 ): uv = sum( [ [ (u,v) for u in numpy.linspace(0,1,n_u)] for v in numpy.linspace(0,1,n_v) ], [] ) P = [ surface.value(u,v) for u,v in uv ] #positions at u,v points N = [ numpy.cross( *surface.tangent(u,v) ) for u,v in uv ] plane_norm = sum(N) / len(N) #planes normal, averaging done to reduce error plane_pos = P[0] error = sum([ abs( numpy.dot(p - plane_pos, plane_norm) ) for p in P ]) return numpyVecToFC(plane_norm), numpyVecToFC(plane_pos), error #------------------------------------------------------------------------------ def isLine(param): if hasattr(Part,"LineSegment"): return isinstance(param,(Part.Line,Part.LineSegment)) else: return isinstance(param,Part.Line) #------------------------------------------------------------------------------ def getObjectFaceFromName( obj, faceName ): assert faceName.startswith('Face') ind = int( faceName[4:]) -1 return obj.Shape.Faces[ind] #------------------------------------------------------------------------------ def getProjectFolder(): """ #------------------------------------------------------------------------------------ # A new Parameter is required: projectFolder... # All Parts will be searched below this projectFolder-Value... #------------------------------------------------------------------------------------ """ preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") if not preferences.GetBool('useProjectFolder', False): return "" return preferences.GetString('projectFolder', '~') #------------------------------------------------------------------------------ def pathToOS(path): if path is None: return None p = to_str(path) if OPERATING_SYSTEM == 'WINDOWS': p = p.replace(u'/',u'\\') else: p = p.replace(u'\\',u'/') return p # unicode string #------------------------------------------------------------------------------ def findFile(_name, _path): """ Searches a file within a directory and its subdirectories. """ name = to_str(_name) path = to_str(_path) for root, dirs, files in os.walk(path): if name in files: return os.path.join(root, name) return None #------------------------------------------------------------------------------ def findSourceFileInProject(_pathImportPart, _assemblyPath): """ #------------------------------------------------------------------------------------ # interpret the sourcefile name of imported part # if working with preference "useProjectFolder: # - path of sourcefile is ignored # - filename is looked up beneath projectFolder # # if not working with preference "useProjectFolder": # - path of sourcefile is checked for being relative to assembly or absolute # - path is interpreted in appropriate way #------------------------------------------------------------------------------------ """ pathImportPart = _pathImportPart assemblyPath = _assemblyPath pathImportPart = to_bytes(pathImportPart) assemblyPath = to_bytes(assemblyPath) preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") if not preferences.GetBool('useProjectFolder', False): # not working with useProjectFolder preference, # check whether path is relative or absolute... if ( pathImportPart.startswith(b'../') or pathImportPart.startswith(b'..\\') or pathImportPart.startswith(b'./') or pathImportPart.startswith(b'.\\') ): # relative path # calculate the absolute path p1 = to_str(assemblyPath) p2 = to_str(pathImportPart) joinedPath = os.path.join(p1,p2) absolutePath = os.path.normpath(joinedPath) absolutePath = pathToOS(absolutePath) return to_str(absolutePath) else: pathImportPart = pathToOS(pathImportPart) return to_str(pathImportPart) projectFolder = os.path.abspath(getProjectFolder()) # get normalized path fileName = os.path.basename(pathImportPart) retval = findFile(fileName,projectFolder) retval = pathToOS(retval) if retval: return to_str(retval) else: return None #------------------------------------------------------------------------------ def checkFileIsInProjectFolder(path): preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/A2plus") if not preferences.GetBool('useProjectFolder', False): return True projectFolder = os.path.abspath(getProjectFolder()) # get normalized path fileName = os.path.basename(path) nameInProject = findFile(fileName,projectFolder) if nameInProject == path: return True else: return False #------------------------------------------------------------------------------ def Msg(tx): FreeCAD.Console.PrintMessage(tx) #------------------------------------------------------------------------------ def DebugMsg(level, tx): if A2P_DEBUG_LEVEL >= level: FreeCAD.Console.PrintMessage(tx) #------------------------------------------------------------------------------ def drawSphere(center, color): doc = FreeCAD.ActiveDocument s = Part.makeSphere(2.0,center) sphere = doc.addObject("Part::Feature","Sphere") sphere.Shape = s sphere.ViewObject.ShapeColor = color doc.recompute() #------------------------------------------------------------------------------ def drawVector(fromPoint,toPoint, color): if fromPoint == toPoint: return doc = FreeCAD.ActiveDocument l = Part.LineSegment() l.StartPoint = fromPoint l.EndPoint = toPoint line = doc.addObject("Part::Feature","Line") line.Shape = l.toShape() line.ViewObject.LineColor = color line.ViewObject.LineWidth = 1 c = Part.makeCone(0,1,4) cone = doc.addObject("Part::Feature","ArrowHead") cone.Shape = c cone.ViewObject.ShapeColor = color # mov = Base.Vector(0,0,0) zAxis = Base.Vector(0,0,-1) rot = FreeCAD.Rotation(zAxis,toPoint.sub(fromPoint)) cent = Base.Vector(0,0,0) conePlacement = FreeCAD.Placement(mov,rot,cent) cone.Placement = conePlacement.multiply(cone.Placement) cone.Placement.move(toPoint) doc.recompute() #------------------------------------------------------------------------------ def findUnusedObjectName(base, counterStart=1, fmt='%03i', document=None): if document is None: document = FreeCAD.ActiveDocument i = counterStart usedNames = [ obj.Name for obj in document.Objects ] base2 = base if base[-4:-3] == '_': try: int(base[-3:]) base2 = base[:-4] except: pass base2 = base2 + '_' objName = '%s%s' % (base2, fmt%i) while objName in usedNames: i += 1 objName = '%s%s' % (base2, fmt%i) return objName #------------------------------------------------------------------------------ def findUnusedObjectLabel(base, counterStart=1, fmt='%03i', document=None, extension=None): if document is None: document = FreeCAD.ActiveDocument i = counterStart usedLabels = [ obj.Label for obj in document.Objects ] base2 = base if base[-4:-3] == '_': try: int(base[-3:]) base2 = base[:-4] except: pass base2 = base2 + '_' if extension is None: base3 = base2 else: base3 = base2+extension+'_' objLabel = '%s%s' % (base3, fmt%i) while objLabel in usedLabels: i += 1 objLabel = '%s%s' % (base3, fmt%i) return objLabel #------------------------------------------------------------------------------ class ConstraintSelectionObserver: def __init__(self, selectionGate, parseSelectionFunction, taskDialog_title, taskDialog_iconPath, taskDialog_text, secondSelectionGate=None): self.selections = [] self.parseSelectionFunction = parseSelectionFunction self.secondSelectionGate = secondSelectionGate FreeCADGui.Selection.addObserver(self) FreeCADGui.Selection.removeSelectionGate() FreeCADGui.Selection.addSelectionGate( selectionGate ) wb_globals['selectionObserver'] = self self.taskDialog = SelectionTaskDialog(taskDialog_title, taskDialog_iconPath, taskDialog_text) FreeCADGui.Control.showDialog( self.taskDialog ) def addSelection( self, docName, objName, sub, pnt ): self.selections.append( SelectionRecord( docName, objName, sub )) if len(self.selections) == 2: self.stopSelectionObservation() self.parseSelectionFunction( self.selections) elif self.secondSelectionGate is not None and len(self.selections) == 1: FreeCADGui.Selection.removeSelectionGate() FreeCADGui.Selection.addSelectionGate( self.secondSelectionGate ) def stopSelectionObservation(self): FreeCADGui.Selection.removeObserver(self) del wb_globals['selectionObserver'] FreeCADGui.Selection.removeSelectionGate() FreeCADGui.Control.closeDialog() #------------------------------------------------------------------------------ class SelectionRecord: def __init__(self, docName, objName, sub): self.Document = FreeCAD.getDocument(docName) self.ObjectName = objName self.Object = self.Document.getObject(objName) self.SubElementNames = [sub] #------------------------------------------------------------------------------ class SelectionTaskDialog: def __init__(self, title, iconPath, textLines ): self.form = SelectionTaskDialogForm( textLines ) self.form.setWindowTitle( title ) if iconPath is not None: self.form.setWindowIcon( QtGui.QIcon( iconPath ) ) def reject(self): wb_globals['selectionObserver'].stopSelectionObservation() def getStandardButtons(self): #http://forum.freecadweb.org/viewtopic.php?f=10&t=11801 return 0x00400000 #cancel button #------------------------------------------------------------------------------ class SelectionTaskDialogForm(QtGui.QWidget): def __init__(self, textLines ): super(SelectionTaskDialogForm, self).__init__() self.textLines = textLines self.initUI() def initUI(self): vbox = QtGui.QVBoxLayout() for line in self.textLines.split('\n'): vbox.addWidget( QtGui.QLabel(line) ) self.setLayout(vbox) #------------------------------------------------------------------------------ class SelectionExObject: """Allows for selection gate functions to interface with classification functions below.""" def __init__(self, doc, Object, subElementName): self.doc = doc self.Object = Object self.ObjectName = Object.Name self.SubElementNames = [subElementName] #------------------------------------------------------------------------------ def getObjectEdgeFromName( obj, name ): assert name.startswith('Edge') ind = int( name[4:]) -1 return obj.Shape.Edges[ind] #------------------------------------------------------------------------------ def CircularEdgeSelected( selection ): if len( selection.SubElementNames ) == 1: subElement = selection.SubElementNames[0] if subElement.startswith('Edge'): edge = getObjectEdgeFromName( selection.Object, subElement) if not hasattr(edge, 'Curve'): #issue 39 return False if isLine(edge.Curve): return False if hasattr( edge.Curve, 'Radius' ): return True # the following section fails for linear edges, protect it # by try/except block try: BSpline = edge.Curve.toBSpline() arcs = BSpline.toBiArcs(10**-6) if all( hasattr(a,'Center') for a in arcs ): centers = numpy.array([a.Center for a in arcs]) sigma = numpy.std( centers, axis=0 ) if max(sigma) < 10**-6: #then circular curve return True except: pass return False #------------------------------------------------------------------------------ def ClosedEdgeSelected( selection ): if len( selection.SubElementNames ) == 1: subElement = selection.SubElementNames[0] if subElement.startswith('Edge'): edge = getObjectEdgeFromName( selection.Object, subElement) if edge.isClosed(): return True else: return False return False #------------------------------------------------------------------------------ def AxisOfPlaneSelected( selection ): #adding Planes/Faces selection for Axial constraints if len( selection.SubElementNames ) == 1: subElement = selection.SubElementNames[0] if subElement.startswith('Face'): face = getObjectFaceFromName( selection.Object, subElement) if str(face.Surface) == '': return True else: axis, center, error = fit_rotation_axis_to_surface1(face.Surface) error_normalized = error / face.BoundBox.DiagonalLength if error_normalized < 10**-6: return True return False #------------------------------------------------------------------------------ def printSelection(selection): entries = [] for s in selection: for e in s.SubElementNames: entries.append(' - %s:%s' % (s.ObjectName, e)) if e.startswith('Face'): ind = int( e[4:]) -1 face = s.Object.Shape.Faces[ind] entries[-1] = entries[-1] + ' %s' % str(face.Surface) return '\n'.join( entries[:5] ) #------------------------------------------------------------------------------ def updateObjectProperties( c ): return #------------------------------------------------------------------------------ def planeSelected( selection ): if len( selection.SubElementNames ) == 1: subElement = selection.SubElementNames[0] if subElement.startswith('Face'): face = getObjectFaceFromName( selection.Object, subElement) if str(face.Surface) == '': return True elif str(face.Surface) == '': normal,pos,error = fit_plane_to_surface1(face.Surface) if abs(error) < 1e-9: return True return False #------------------------------------------------------------------------------ def vertexSelected( selection ): if len( selection.SubElementNames ) == 1: return selection.SubElementNames[0].startswith('Vertex') return False #------------------------------------------------------------------------------ def cylindricalFaceSelected( selection ): if len( selection.SubElementNames ) == 1: subElement = selection.SubElementNames[0] if subElement.startswith('Face'): face = getObjectFaceFromName( selection.Object, subElement) if hasattr(face.Surface,'Radius'): return True elif str(face.Surface).startswith('': pos = getObjectFaceFromName(obj, subElementName).Faces[0].BoundBox.Center # axial constraint for Planes # pos = surface.Position elif str(surface) == "": pos = surface.Center elif all( hasattr(surface,a) for a in ['Axis','Center','Radius'] ): pos = surface.Center elif str(surface).startswith(' otherwise toggle transparency wont work elif hasattr(obj,"subassemblyImport"): # another possible assembly item result = True elif hasattr(obj,"assembly2Version"): # another possible assembly item (very old a2p versions) result = True return result #------------------------------------------------------------------------------ def isEditableA2pPart(obj): if not isA2pPart(obj): return False if hasattr(obj,"sourceFile"): if obj.sourceFile == "": return False return True #------------------------------------------------------------------------------ def isA2pConstraint(obj): result = False if hasattr(obj,"Content"): if ('ConstraintInfo' in obj.Content) or ('ConstraintNfo'in obj.Content): result = True return result #------------------------------------------------------------------------------ def isA2pObject(obj): result = False if isA2pPart(obj) or isA2pConstraint(obj): result = True return result #------------------------------------------------------------------------------ def isFastenerObject(obj): """ Recognize an object created by the Fasteners WB. """ if hasattr(obj,'Proxy'): if str(obj.Proxy).startswith(' 0: t = ob1.ViewObject.Transparency ob1.ViewObject.Transparency = 0 ob1.ViewObject.Transparency = t else: ob1.ViewObject.Transparency = 1 ob1.ViewObject.Transparency = 0 # select/deselect object once to trigger update of 3D View FreeCADGui.Selection.addSelection(ob1) FreeCADGui.Selection.removeSelection(ob1) #------------------------------------------------------------------------------ def isConstrainedPart(doc,obj): if not isA2pPart(obj): return False constraints = [ ob for ob in doc.Objects if 'ConstraintInfo' in ob.Content] for c in constraints: if c.Object1 == obj.Name: return True if c.Object2 == obj.Name: return True return False #------------------------------------------------------------------------------ def objectExists(name): doc = FreeCAD.activeDocument() try: ob = doc.getObject(name) if ob is not None: return True except: pass return False #------------------------------------------------------------------------------ def deleteConstraintsOfDeletedObjects(): doc = FreeCAD.activeDocument() deleteList = [] missingObjects = [] for c in doc.Objects: if 'ConstraintInfo' in c.Content: if not objectExists(c.Object1): deleteList.append(c) missingObjects.append(c.Object1) continue if not objectExists(c.Object2): deleteList.append(c) missingObjects.append(c.Object2) if len(deleteList) != 0: for c in deleteList: removeConstraint(c) missingObjects = set(missingObjects) msg = translate("A2plus", "Not existing part(s):") + "\n - {}".format( u'\n - '.join( objName for objName in missingObjects) ) QtGui.QMessageBox.information( QtGui.QApplication.activeWindow(), translate("A2plus", "Constraints of missing parts removed!"), msg ) #------------------------------------------------------------------------------ def a2p_repairTreeView(): doc = FreeCAD.activeDocument() if doc is None: return deleteConstraintsOfDeletedObjects() constraints = [ obj for obj in doc.Objects if 'ConstraintInfo' in obj.Content] for c in constraints: if c.Proxy is not None: c.Proxy.disable_onChanged = True if not hasattr(c,"ParentTreeObject"): c.addProperty("App::PropertyLink","ParentTreeObject","ConstraintInfo") c.setEditorMode("ParentTreeObject", 1) parent = doc.getObject(c.Object1) c.ParentTreeObject = parent if parent is not None: parent.touch() if c.Proxy is not None: c.Proxy.disable_onChanged = False # mirrors = [ obj for obj in doc.Objects if 'ConstraintNfo' in obj.Content] for m in mirrors: if m.Proxy is not None: m.Proxy.disable_onChanged = True if not hasattr(m,"ParentTreeObject"): m.addProperty("App::PropertyLink","ParentTreeObject","ConstraintNfo") m.setEditorMode("ParentTreeObject", 1) parent = doc.getObject(m.Object2) m.ParentTreeObject = parent if parent is not None: parent.touch() if m.Proxy is not None: m.Proxy.disable_onChanged = False unTouchA2pObjects() #------------------------------------------------------------------------------ ================================================ FILE: compileA2pResources.py ================================================ #!/usr/bin/env python # -*- coding: utf-8 -*- #*************************************************************************** #* * #* Copyright (c) 2019 kbwbe * #* * #* Portions of code based on hamish's assembly 2 * #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU Lesser General Public License (LGPL) * #* as published by the Free Software Foundation; either version 2 of * #* the License, or (at your option) any later version. * #* for detail see the LICENCE text file. * #* * #* This program is distributed in the hope that it will be useful, * #* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Library General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * #*************************************************************************** # This script compiles the A2plus icons for py2 and py3 # For Linux only # Start this file in A2plus main directory # Make sure pyside-rcc is installed import os, glob qrc_filename = 'temp.qrc' if os.path.exists(qrc_filename): os.remove(qrc_filename) qrc = ''' \t''' for fn in glob.glob('./icons/*.svg'): qrc = qrc + '\n\t\t%s' % fn qrc = qrc + '''\n\t ''' print(qrc) f = open(qrc_filename,'w') f.write(qrc) f.close() #os.system( # 'pyside-rcc -o a2p_Resources2.py {}'.format( # qrc_filename # ) # ) os.system( 'rcc -o a2p_Resources3.py -g python {}'.format( qrc_filename ) ) # Need to determine if we are on a system using PySide2 or PySide6 try: import PySide6 # try Qt6 first os.system( 'pyside6-lupdate *.py -ts translations/A2plus.ts -verbose' ) except ImportError: os.system( 'pyside2-lupdate *.py -ts translations/A2plus.ts -verbose' ) ''' os.system( 'lrelease "translations/A2plus.ts"' ) ''' os.remove(qrc_filename) """NOTES: (adding Translations...) # gather the strings from the .py files of the WB pyside-lupdate *.py -ts translations/pyfiles.ts -verbose # merge ts files if there is more then one... # lconvert is not found on my system without path ??? /usr/lib/x86_64-linux-gnu/qt5/bin/lconvert -i translations/pyfiles.ts another.ts -o translations/A2plus # convert .ts files to .qm files (compiled translations) lrelease "translations/A2plus.ts" """ ================================================ FILE: crowdin.yml ================================================ files: - source: /translations/A2plus.ts translation: /translations/A2plus_%two_letters_code%.ts ================================================ FILE: package.xml ================================================ A2plus Another assembly workbench for FreeCAD, following and extending Hamish's Assembly 2 workbench hence Assembly2plus. The main goal of A2plus is to create a very simple, easy to use, and not over-featured workbench for FreeCAD assemblies. Using the KISS principle: KEEP IT SIMPLE, STUPID 0.4.68 2024-10-01 kbwbe LGPL-2.1-or-later https://github.com/kbwbe/A2plus https://github.com/kbwbe/A2plus/issues icons/a2p_Workbench.svg A2plusWorkbench ./ assembly 0.19 ================================================ FILE: translations/A2plus.ts ================================================ A2p_BoM BOM ERROR: Could not open sourcefile '{}' POS QTY #PARTSLIST# spreadsheet has been created #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_LENGTH Length CLO_WIDTH Width CLO_QTY Qty CLO_MATERIAL Material CLO_LABEL Label CLO_ENABLED Enabled PARTINFO PARTSLIST CLO_PARTSLIST IDENTNO DESCRIPTION SUPPLIER SUPP.IDENTNO SUPP.DESCRIPTION (FILENAME) #PARTINFO# spreadsheet has been created Length Width Qty Material Label Enabled A2plus Updating Assembly. Update complete. All surfaces found Update complete: Total constraints - {} Repaired constraints - {} Features not found - {} Status Showing editing part Import Objects Select objects to import Import Importing Select a shape to be imported Cancel Choose Import of a shape reference aborted by user LCS_Collection Add shapes from an external file to the assembly Add shapes from an external file No visible Part to import found. Aborting operation Imported Object is empty/none Restore transparency to active document objects Restore transparency to active document objects Add a part from an external file to the assembly Add a part from an external file First create an empty file and save it under desired name Unnamed document Before inserting first part, please save the empty assembly to give it a name Select FreeCAD document to import part from Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. Import Error Imported Object is empty/none ASSEMBLY UPDATE Do you want to update only the selected parts? Source file not found Unable to find '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Update parts imported into the assembly Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Create duplicate of a part Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Information Please edit the highlighted object. When finished, update the assembly Cannot find the local source object. Has it been deleted? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder File error! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Edit an imported part (open linked FCStd file) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Move the selected part Animation problem detected Use system undo if necessary. Invalid selection A2plus will not move a part with property Move the selected part under constraints Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Selection Error Select exactly 1 part Info No constraints refer to '%s' Delete {}'s constraint(s): - {}? Delete constraints? Deleting part's constraints Delete all constraints of selected parts Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Highlight both constrained parts Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Show only selected elements or all if none is selected Toggle transparency of assembly Toggles transparency of assembly Toggle auto solve Toggle partial processing Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repair the tree view if it is somehow damaged Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Flip direction of last constraint Command Aborted Flip aborted since no a2p constraints in active document. Generate HTML file with detailed constraining structure Generates HTML file with detailed constraining structure Nothing found to be labeled! This document does not contain A2p-objects Show part labels in 3D view Toggle showing part labels in 3D view Print detailed DOF information Toggle printing detailed DOF information You have to open an assembly file first. Convert absolute paths of imported parts to relative ones Converts absolute paths of imported parts to relative ones Save and exit the active document Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Make sure you have a backup of your files. Proceed? The proxies have been migrated. Please save and reopen this assembly file Migrate proxies of imported parts Updating by SubElement-Map: '{}' => '{}' Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Broken Constraint Removing constraint %s 3D-Debug contained '{}' vectors Clean up solver debug output from 3D view Constraint Checker To view the constraints, press 'Open Viewer' View the listed constraints in the the Constraint Viewer. Open Viewer Close this form. A A2plus file must be opened to start this checker Please open a file and try again Cannot find any constraints in this file. Checking constraints No constraint errors found Checking {} of {} Checking Constraints Checks constraints This checks all constraints. After checking it will list all constraints that it found problems with. The list can then be opened in the Constraint viewer. Create Labels Add labels to all of the faces on a selected part Add labels to all of the edges on a selected part Add labels to all of the vertices on a selected part Delete all labels Close this window Add Face Labels Add Edge Labels Add Vertex Labels Delete Labels Close One part must be selected. Please select One part and try again Face Edge Vertex Constraint Viewer Labels Places of accuracy = {} Broken Constraints Select a part and import all of the constraints for that part Copy selected constraints from the Tree Clear the table Select the feature to change in table. Select surface to change to. Remove search color from tree. Finds the constraint in the tree for the select row in table. Same as the solver above. Press to toggle a label for selected feature. Import from part Import from Tree Clear Table Attach to Clear Tree Find in Tree Std Solver Find w label A part feature must be selected in the table The table has lost focus. Please reselect in the table. The selected text in the table is not a proper feature name: {} {} Find Constraint Open Dialog Delete labels Open Help CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? Suppress A file must be opened to start this selector. Please open a file and try again Nothing was selected in the Tree. There were no constraints selected in the Tree. Select one or more constraints and try again. No parts were selected in the window. There are no constraints for this part. There are no constraints between these parts. Both parts are fixed. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' No feature has been selected The constraint can only be moved to another surface of the same part removeObserver failed in C checker View and edit selected constraints Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Direction aligned opposed none Flip direction between 'aligned' and 'opposed' Flip direction Offset Set 0 to 'Offset' field Set Zero Flip sign between '+' and '-' in 'Offset' field Flip sign Angle Angle in the range 0 - 180 degrees Round Round angle to multiples of 5 Perpendicular Adds/deletes 90 degrees Lock Rotation False True Toggle between 'False' and 'True' Toggle Delete this constraint Delete Solve Accept the settings Accept Really delete this constraint? Constraint does not exist anymore Constraint has already been deleted Confirmation required Exit and delete new constraint? Values changed! Accept Constraint? Help Constraint Tools help Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Constraint properties Constraint Tools Define constraints Opens a dialog to define constraints Selection Error! Please select exact one constraint first. Edit selected constraint Select a constraint in the treeview and hit this button. SelObserverOFF by except Use one mouse button to select features Use left mouse button to select two features. Do not use the control key. No file is opened. You must open an assembly file first. OneButton is ON OneButton is OFF Warning An other assembly workbench for FreeCAD. Initializing A2plus Workbench v{} Remove faulty constraint '{}' The following constraints are broken: Do you want to delete them? Delete broken constraints? FREE Fixed DOFs: {} There are {:.0f} dependencies Hierarchy: Writing visual hierarchy to: '{}' A2P assembly hierarchy visualization FIXED TARGET POS-ACCURACY :{} REACHED POS-ACCURACY :{} TARGET SPIN-ACCURACY :{} REACHED SPIN-ACCURACY :{} SA SPIN-ACCURACY :{} Start Solving System System solved using partial + recursive unfixing Could not solve system Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Constraint mismatch The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Could not move some parts No convergency anymore, retrying Reached max calculations count: {} No active document found! Before running solver, you have to open an assembly file. Solve constraints Solves constraints Starting solveConstraints latest script... Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. You have to open a FCStd file first. Create a spreadsheet for ordering or logistics information Create a spreadsheet with a parts list of this file Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Please save before generating a parts list! Save now? Save document? Parts list generation aborted! You have to save the assembly file first. Do you want to iterate recursively over all included subassemblies? Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Import ignored invisible shape: '{}' Union of Shapes FAILED Cannot create SimpleAssemblyShape Union of Shapes passed. 'SimpleAssemblyShape' are created. Create or refresh simple shape of complete assembly Errors occurred during processing of {} Dependencies between {} - {}, type {} createUpdateFileList(): ImportPath = {} Did not update converted part '{}' Do you want to update the selected parts only? RECURSIVE UPDATE A part can only be imported from a FreeCAD '*.FCStd' file Value Error Assembly '{}' has been updated! Update imports recursively Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Current Rigid = '{}' is Fixed is not Fixed and has {} DegreesOfFreedom Depends on Rigid = {} DOF Position free with this rigid = {} DOF Rotation free with this rigid = {} failed to open file with None name! file '{}' does not exist! file '{}' is no FCStd file! Not existing part(s): Constraints of missing parts removed! A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Add PointOnLine constraint Add PointOnPlane constraint Add SphereCenterIdent constraint Add CircularEdge constraint Add AxisCoincident constraint Add AxisParallel constraint Add AxisPlaneParallel constraint Add AxisPlaneAngle constraint Add AxisPlaneNormal constraint Add PlanesParallel constraint Add PlaneCoincident constraint Add AngledPlanes constraint Add CenterOfMass constraint reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): All constraints are recalculated. Recalculate direction of constraints Do you really want to recalculate the directions of all constraints? Re-adjust directions of all constraints Re-adjust directions of all constraints to best fit Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Button gets active after correct selection. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Convert a part to A2plus Please select only visible parts! Conversion Aborted A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another There are no a2p constraints within this document. Searching for conflicting constraints Identify conflicting constraints Workbench Constraint Solver View Misc Diagnostic ================================================ FILE: translations/A2plus_de.ts ================================================ A2p_BoM PARTINFO TEILINFO PARTSLIST TEILELISTE IDENTNO IDENTNR DESCRIPTION BEZEICHNUNG SUPPLIER ANBIETER SUPP.IDENTNO ANB.IDENTNR SUPP.DESCRIPTION ANB.BEZEICHNUNG (FILENAME) (DATEINAME) #PARTINFO# spreadsheet has been created #TEILINFO#-Tabelle wurde erstellt BOM ERROR: Could not open sourcefile '{}' BOM-FEHLER: Quelldatei '{}' konnte nicht geöffnet werden POS STEL QTY ANHL #PARTSLIST# spreadsheet has been created #TEILELISTE#-Tabelle wurde erstellt #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus Updating Assembly. Baugruppe aktualisieren. Constraint Checker Showing editing part Bearbeitungsteil anzeigen Updates parts from the A2plus program that has been modified Aktualisiert Teile aus dem geänderten A2plus-Programm Import Objects Objekte importieren Select objects to import Wählen Sie die zu importierenden Objekte aus Import Importieren Importing Importieren Select a shape to be imported Wählen Sie eine zu importierende Form aus Cancel Absagen Choose Wählen Import of a shape reference aborted by user Import einer Formenreferenz abgebrochen vom Benutzer LCS_Collection LCS_Sammlung Add shapes from an external file to the assembly Füge Formen aus einer externen Datei zur Baugruppe hinzu Add shapes from an external file Formen aus einer externen Datei hinzufügen A part can only be imported from a FreeCAD '*.FCStd' file Ein Teil kann nur aus einer FreeCAD '*.FCStd' Datei importiert werden Value Error Wert-Fehler No visible Part to import found. Aborting operation Kein sichtbarer Teil zum Importieren gefunden. Vorgang abbrechen Restore transparency to active document objects Transparenz für aktive Dokumentenobjekte wiederherstellen Restore transparency to active document objects Transparenz für aktive Dokumentenobjekte wiederherstellen Add a part from an external file to the assembly Füge ein Teil aus einer externen Datei zur Baugruppe hinzu Add a part from an external file Ein Teil aus einer externen Datei hinzufügen First create an empty file and save it under desired name Erstellen Sie zuerst eine leere Datei und speichern Sie sie unter dem gewünschten Namen Unnamed document Unbenanntes Dokument Before inserting first part, please save the empty assembly to give it a name Bevor Sie den ersten Teil einfügen, speichern Sie bitte die leere Baugruppe um ihm einen Namen zu geben Select FreeCAD document to import part from FreeCAD-Dokument zum Importieren des Teils auswählen Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Unterstützte Formate (*.FCStd *.fcstd *.stp *.step);;Alle Dateien (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. Der Teil, den Sie importieren möchten, befindet sich außerhalb Ihres Projekt-Ordners! Überprüfen Sie Ihre Einstellungen in den A2plus-Einstellungen. Import Error Importfehler Imported Object is empty/none Importiertes Objekt ist leer/kein Before updating parts, you have to open an assembly file. Bevor Sie Teile aktualisieren, müssen Sie eine Baugruppen Datei öffnen. Do you want to update only the selected parts? Möchten Sie nur die ausgewählten Teile aktualisieren? ASSEMBLY UPDATE ASSEMBLY UPDATE Source file not found Quelldatei nicht gefunden Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Teile aktualisieren, die in die Assembly importiert wurden. (Wenn Sie ein Teil in einer externen Datei ändern, wird die neue Form von auf die Assembly gebracht Update parts imported into the assembly In die Baugruppe importierte Teile aktualisieren Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Erstelle ein Duplikat eines Teils, das bereits in die Assembly importiert wurde. Wählen Sie ein importiertes Bauteil aus und drücken Sie diesen Button. Ein Duplikat wird erstellt und kann mit der Maus platziert werden. Halten Sie &quot;Schicht&quot; für dieses mehrmals gedrückt. Create duplicate of a part Duplikat eines Teils erstellen Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Ein importiertes Teil bearbeiten. Wählen Sie einen importierten Teil und klicken Sie auf diesen Button. Die passende FCStd-Datei, die mit diesem Teil verbunden ist, wird geöffnet und Sie können an diesem Ort ändern. Nach dem Bearbeiten und Speichern Sie müssen die Funktion 'importierte Teile' in aktualisieren, um die neue Form innerhalb der Assembly zu sehen. Information Informationen Please edit the highlighted object. When finished, update the assembly Bitte bearbeiten Sie das hervorgehobene Objekt. Nach Fertigstellung aktualisieren Sie die Baugruppe Cannot find the local source object. Has it been deleted? Kann das lokale Quellcode-Objekt nicht finden. Wurde es gelöscht? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Sie möchten eine Datei bearbeiten, die nicht unter Ihrem Projekt-Ordner gefunden wurde. Dies ist nicht zulässig, wenn Sie den Projektordner verwenden File error! Dateifehler! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Bearbeiten einer STEP-Datei als '*.FCStd' Datei. Bitte exportieren Sie die gespeicherte Datei als '.step' Edit an imported part (open linked FCStd file) Ein importiertes Teil bearbeiten (verknüpfte FCStd-Datei öffnen) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Verschieben Sie das ausgewählte Teil. Wählen Sie ein Teil aus und klicken Sie auf diese Schaltfläche. Das Teil kann mit der Maus verschoben werden. Wenn das Teil eingeschränkt ist, springt es beim nächsten Lösen der Baugruppe zurück. Move the selected part Ausgewähltes Teil verschieben Animation problem detected Animationsproblem erkannt Use system undo if necessary. System rückgängig machen, falls nötig. Invalid selection Ungültige Auswahl Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Bewege das Teil unter der Regel der Einschränkungen. 1) Drücke diesen Knopf 2) Klicke auf ein Teil und es ist an den Cursor geklebt und kann verschoben werden 3) Klicke erneut (oder drücke ESC) und der Befehl beendet Move the selected part under constraints Den ausgewählten Teil unter Einschränkungen verschieben Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Lösche alle Einschränkungen eines ausgewählten Teils. Wähle exakte einen Teil aus und klicke auf diesen Button. Ein Bestätigungsdialog erscheint und zeigt alle Beschränkungen an, die mit dem ausgewählten Teil zusammenhängen. Nach der Bestätigung werden alle zugehörigen Einschränkungen auf einmal gelöscht. Selection Error Fehler bei der Auswahl Select exactly 1 part Wählen Sie genau 1 Teil Info No constraints refer to '%s' Keine Einschränkungen beziehen sich auf '%s' Delete {}'s constraint(s): - {}? Einschränkung(en) von {} löschen: - {}? Delete constraints? Einschränkung löschen? Deleting part's constraints Lösche Teil's Einschränkungen Delete all constraints of selected parts Alle Einschränkungen der ausgewählten Teile löschen Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Markieren Sie beide Teile, die sich auf eine ausgewählte Einschränkung beziehen. Wählen Sie eine Einschränkung in der Baumansicht aus und klicken Sie auf diese Schaltfläche. Die gesamte Baugruppe wird in den transparenten Modus geschaltet und Sie können die gewünschte Abhängigkeit überprüfen. Highlight both constrained parts Hervorheben von beiden beschränkten Teilen Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Nur ausgewählte Elemente anzeigen oder alle wenn keine ausgewählt ist. Wählen Sie einen oder mehrere Teile,, die die einzigen sind, die Sie in einer großen Montage sehen möchten. Drücken Sie diesen Knopf und alle anderen Teile werden unsichtbar. Wenn Sie nichts auswählen und auf drücken, werden alle unsichtbaren Teile wieder sichtbar. Show only selected elements or all if none is selected Nur ausgewählte Elemente oder alle anzeigen wenn keines ausgewählt ist Toggle transparency of assembly Transparenz der Baugruppe ein-/ausschalten Toggles transparency of assembly Umschaltet Transparenz der Montage Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton AutoSolve umschalten Durch Drücken dieser Schaltfläche können Sie die automatische Lösung aktivieren oder deaktivieren nachdem eine Einschränkung bearbeitet wurde Wenn die automatische Lösung deaktiviert ist müssen Sie sie manuell starten indem Sie den Solvenebutton drücken Toggle auto solve Auto-Lösung umschalten Toggle partial processing Teilbearbeitung umschalten Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repariere den Baum, wenn er irgendwie beschädigt ist. Nach Drücken dieses Buttons werden die Einschränkungen wieder unter den entsprechenden Bauteilen gruppiert. Repair the tree view if it is somehow damaged Baumansicht reparieren, wenn sie irgendwie beschädigt ist Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Richtung der letzten Einschränkung umkehren. Wenn die letzte definierte Einschränkung eine Eigenschaft &quot;Richtung&quot; hat, wird ihr Wert zwischen &quot;ausgerichtet&quot; und &quot;entgegengesetzt&quot; (Ausrichtung der Achse) umgeschaltet. Flip direction of last constraint Richtung der letzten Einschränkung spiegeln Command Aborted Befehl abgebrochen Flip aborted since no a2p constraints in active document. Flip abgebrochen, da keine A2P-Einschränkungen im aktiven Dokument vorhanden sind. Generate HTML file with detailed constraining structure HTML-Datei mit detaillierter restriktiver Struktur erzeugen Generates HTML file with detailed constraining structure HTML-Datei mit detaillierter restriktiver Struktur erzeugen Nothing found to be labeled! Keine Kennzeichnung gefunden! This document does not contain A2p-objects Dieses Dokument enthält keine A2p-Objekte Show part labels in 3D view Bauteilbezeichnungen in der 3D-Ansicht anzeigen Toggle showing part labels in 3D view Bauteilbezeichnungen in der 3D-Ansicht anzeigen Print detailed DOF information Detaillierte DOF Informationen drucken Toggle printing detailed DOF information Drucken von DOF Informationen umschalten No active document found! Kein aktives Dokument gefunden! You have to open an assembly file first. Sie müssen zuerst eine Assembly-Datei öffnen. Convert absolute paths of imported parts to relative ones Konvertiere absolute Pfade importierter Bauteile in relativ Converts absolute paths of imported parts to relative ones Konvertiert absolute Pfade von importierten Bauteilen in relativ Save and exit the active document Speichern und das aktive Dokument beenden Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrate proxies of importedParts to recent version Migrieren Sie Proxies von importierten Teilen in die aktuelle Version Make sure you have a backup of your files. Proceed? Stellen Sie sicher, dass Sie eine Sicherung Ihrer Dateien haben. Fortfahren? The proxies have been migrated. Die Stellvertreter wurden migriert. Please save and reopen this assembly file Bitte speichern und diese Assembly-Datei erneut öffnen Migrate proxies of imported parts Proxies von importierten Teilen migrieren Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Einschränkung %s ist verletzt. Einschränkung löschen? Andernfalls auf falsche Verknüpfung prüfen. Broken Constraint Gebrochene Einschränkung Removing constraint %s Einschränkung %s wird entfernt Clean up solver debug output from 3D view Lösemittel-Debug-Ausgabe aus der 3D-Ansicht bereinigen Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Erstellen oder aktualisieren Sie eine einfache Form der gesamten Assembly. Alle Teile innerhalb der Baugruppe werden zu einer einzigen Form zusammengefasst. Diese Form kann verwendet werden.. für das Techdraw Modul oder den 3D-Druck. Die erstellte Form befindet sich in der Baumansicht. Standardmäßig ist es zur ersten Zeit unsichtbar. Cannot create SimpleAssemblyShape Kann SimpleAssemblyShape nicht erstellen No visible ImportParts found Keine sichtbaren Importteile gefunden Union of Shapes FAILED Vereinigung von Formen FEHLGESCHLAGEN Create or refresh simple shape of complete assembly Erstelle oder aktualisiere die einfache Form der kompletten Baugruppe Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Erstellen Sie eine Tabellenkalkulation mit einer Teileliste dieser Datei. Diese Funktion liest die Tabelle #PARTINFO# von aller beteiligten Teile der Baugruppe aus und erstellt eine neue Tabelle mit der Liste der Bauteile. Dieser Button öffnet einen Dialog mit der Frage: - Rekursiv über alle Subassenblies? Antwort Ja: Alle Teile aller Unterbaugruppen werden in der Teileliste abgeholt Antwort-Nein: Nur die Teile der letzten werden gesammelt. Please save before generating a parts list! Save now? Bitte speichern, bevor eine Ersatzteilliste erstellt wird! Jetzt speichern? Save document? Dokument speichern? Parts list generation aborted! Ersatzteillistenerstellung abgebrochen! You have to save the assembly file first. Sie müssen die Assembly-Datei zuerst speichern. Do you want to iterate recursively over all included subassemblies? Möchten Sie rekursiv über alle mitgelieferten Untergruppen iterieren? Create a spreadsheet with a parts list of this file Erstellen Sie eine Tabellenkalkulation mit einer Teileliste dieser Datei Constraint properties Einschränkungseigenschaften Direction Richtung aligned opposed entgegen none Flip direction Richtung umkehren Offset Set Zero Flip sign Angle Angle in the range 0 - 180 degrees Round Round angle to multiples of 5 Perpendicular Aufrecht Adds/deletes 90 degrees Lock Rotation False True Toggle Delete this constraint Löschen Sie diese Einschränkung Delete Löschen Solve constraints Begrenzungen lösen Solve Lösen Accept the settings Accept Constraint does not exist anymore Einschränkung existiert nicht mehr Constraint has already been deleted Einschränkung wurde bereits gelöscht Confirmation required Bestätigung erforderlich Really delete this constraint? Diese Einschränkung wirklich löschen? Exit and delete new constraint? Neue Einschränkung beenden und löschen? Values changed! Accept Constraint? Werte geändert! Einschränkung akzeptieren? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Wählen Sie die Geometrie aus, die in der 3D-Ansicht eingeschränkt werden soll! Passende Schaltflächen werden aktiviert. Bitte lesen Sie auch die Tooltips von jedem Knopf. Constraint Tools Restriktive Werkzeuge Help Opens a dialog to define constraints Öffnet einen Dialog um Einschränkungen zu definieren Define constraints Einschränkungen definieren Edit selected constraint Select a constraint in the treeview and hit this button Bearbeite die ausgewählte Einschränkung Wähle eine Einschränkung in der Baumansicht aus und drücke diese Taste Selection Error! Fehler bei der Auswahl! Please select exact one constraint first. Bitte wählen Sie zuerst genau eine Einschränkung aus. Edit selected constraint Ausgewählte Beziehung bearbeiten A2plus will not move a part with property A2plus wird kein Teil mit Objekt verschieben 3D-Debug contained '{}' vectors Did not update converted part '{}' Konvertierter Teil '{}' wurde nicht aktualisiert Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Teile aktualisieren, die in die Assembly importiert wurden. (Wenn Sie ein Teil in einer externen Datei ändern, wird die neue Form von auf die Assembly gebracht. Dieser Befehl führt rekursiv über alle beteiligten Baugruppen aus. Baugruppen werden aktualisiert, falls nötig. RECURSIVE UPDATE A part can only be imported from a FreeCAD '*.fcstd' file Ein Teil kann nur aus einer FreeCAD '*.fcstd' Datei importiert werden Update imports recursively Importe rekursiv aktualisieren Remove faulty constraint '{}' The following constraints are broken: Die folgenden Einschränkungen werden aufgehoben: Do you want to delete them? Möchten Sie sie löschen? Delete broken constraints? Defekte Beschränkungen löschen? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Zwängt inkonsistent. System kann nicht gelöst werden. Bitte führen Sie das Konfliktfinder-Tool aus! Constraint mismatch Restriktive Abweichung The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Die markierten Teile wurden nicht verschoben. Sie sind nicht beschränkt (auch über Einschränkungsketten) auf einen festen Teil! Could not move some parts Konnte Teile nicht verschieben Before running solver, you have to open an assembly file. Solves constraints Löst Einschränkungen Import ignored invisible shape: '{}' You have to open a FCStd file first. Sie müssen zuerst eine FCStd-Datei öffnen. Please open a file and try again. Bitte öffnen Sie eine Datei und versuchen Sie es erneut. Select one part and try again. Wählen Sie Ein Teil und versuchen Sie es erneut. Update complete. All surfaces found Status Constraint Viewer Constraint-Viewer Labels Etiketten Open Dialog Delete labels Etiketten löschen Places of accuracy = {} Orte der Genauigkeit = {} Open Help Broken Constraints Suppress Import from part Select a part and import all of the constraints for that part Wählen Sie ein Teil aus und importieren Sie alle Beschränkungen für dieses Teil Import from Tree Copy selected constraints from the Tree Clear Table Clear the table Attach to Select the feature to change in table. Select surface to change to. Clear Tree Remove search color from tree. Find in Tree Finds the constraint in the tree for the select row in table. Std Solver Same as the solver above. Find w label Press to toggle a label for selected feature. Drücken Sie, um eine Bezeichnung für die ausgewählte Funktion umzuschalten. Close Close this window A part feature must be selected in the table The table has lost focus. Please reselect in the table. The selected text in the table is not a proper feature name: {} {} Find Constraint CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? Einschränkung ist nicht in der Datei. Wurde es gelöscht? A file must be opened to start this selector. Please open a file and try again Nothing was selected in the Tree. There were no constraints selected in the Tree. Select one or more constraints and try again. No parts were selected in the window. There are no constraints for this part. There are no constraints between these parts. No feature has been selected The constraint can only be moved to another surface of the same part removeObserver failed in C checker View and edit selected constraints SelObserverOFF by except Use one mouse button to select features Verwenden Sie eine Maustaste, um Features auszuwählen Use left mouse button to select two features. Do not use the control key. No file is opened. You must open an assembly file first. OneButton is ON OneButton is OFF Warning Warnung To view the constraints, press 'Open Viewer' View the listed constraints in the the Constraint Viewer. Open Viewer Close this form. A A2plus file must be opened to start this checker Please open a file and try again Bitte öffnen Sie eine Datei und versuchen Sie es erneut Cannot find any constraints in this file. Checking constraints No constraint errors found Checking Constraints This checks all constraints. After checking it will list all constraints that it found problems with. The list can then be opened in the Constraint viewer. Checks constraints Create Labels Etiketten erstellen Add Face Labels Add labels to all of the faces on a selected part Add Edge Labels Add labels to all of the edges on a selected part Add Vertex Labels Add labels to all of the vertices on a selected part Delete Labels Etiketten löschen Delete all labels Alle Etiketten löschen Face Fläche Edge Rand Vertex Scheitel One part must be selected. Please select One part and try again Bitte wählen Sie Ein Teil und versuchen Sie es erneut An other assembly workbench for FreeCAD. Eine weitere Montagewerkbank für FreeCAD. Initializing A2plus Workbench v{} Union of Shapes passed. 'SimpleAssemblyShape' are created. Constraint Tools help Hilfe für restriktive Werkzeuge Dependencies between {} - {}, type {} Abhängigkeiten zwischen {} - {}, geben Sie {} ein Imported Object is empty/none Unable to find '{}' Updating by SubElement-Map: '{}' => '{}' Current Rigid = '{}' Aktuell starr = '{}' is Fixed Ist repariert is not Fixed and has {} DegreesOfFreedom Depends on Rigid = {} DOF Position free with this rigid = {} DOF Rotation free with this rigid = {} failed to open file with None name! file '{}' does not exist! file '{}' is no FCStd file! FREE Fixed Fest DOFs: {} There are {:.0f} dependencies Es gibt {:.0f}-Abhängigkeiten Hierarchy: Rangordnung: Writing visual hierarchy to: '{}' Visuelle Hierarchie schreiben nach: '{}' A2P assembly hierarchy visualization Visualisierung der A2P-Assembly-Hierarchie FIXED TARGET POS-ACCURACY :{} REACHED POS-ACCURACY :{} TARGET SPIN-ACCURACY :{} REACHED SPIN-ACCURACY :{} SA SPIN-ACCURACY :{} Start Solving System Lösungssystem starten System solved using partial + recursive unfixing System gelöst mit partiellem + rekursivem Unfixing Could not solve system System konnte nicht gelöst werden Calculation stopped, no convergency anymore! Berechnung gestoppt, keine Konvergenz mehr! Reached max calculations count: {} Maximale Berechnungsanzahl erreicht: {} Starting solveConstraints latest script... Das neueste Skript von solveConstraints wird gestartet... Not existing part(s): Nicht vorhanden(e) Teil(e): Constraints of missing parts removed! Beschränkungen von fehlenden Teilen entfernt! Create a spreadsheet for ordering or logistics information Erstellen Sie eine Tabellenkalkulation für Bestell- oder Logistikinformationen Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Erstellen Sie eine Tabellenkalkulation zur Bestellung oder Logistikinformationen. Die erstellte Tabellenkalkulation befindet sich in der Baumansicht. Bitte geben Sie Ihre Informationen ein. Diese Tabelle wird durch die Funktion der Bauteilliste von A2plus ausgelesen. Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Aktualisiert die A2plus.assembly, wenn Teile geändert werden. Um die Baugruppe zu aktualisieren, wählen Sie das geänderte Teil aus und drücken Sie auf das Symbol. Wenn die Aktualisierung abgeschlossen ist, führen Sie den A2plus-Solver aus, um zu überprüfen, ob es fehlerhafte Einschränkungen gibt. Dies ist ein Versuch, die Anzahl der gebrochenen Beschränkungen zu reduzieren, die verursacht werden, wenn ein Teil aus dem FreeCAD A2plus Montageprogramm modifiziert wird. Dadurch werden die zusammenpassenden Oberflächen der Beschränkungen unmittelbar vor der Aktualisierung aufgezeichnet und versucht, sie nach der Aktualisierung erneut zu verbinden. Wenn dies fehlschlägt, können Sie dieses Update rückgängig machen, indem Sie die Schaltfläche „Rückgängig“ verwenden und den standardmäßigen A2plus-Updater ausführen. Update complete: Aktualisierung abgeschlossen: Total constraints - {} Einschränkungen insgesamt - {} Repaired constraints - {} Reparierte Einschränkungen - {} Features not found - {} Funktionen nicht gefunden - {} Checking {} of {} Both parts are fixed. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Erstellen Sie eine Tabellenkalkulation mit einer Teileliste dieser Datei. Diese Funktion liest die Tabelle #PARTINFO# von aller beteiligten Teile der Baugruppe aus und erstellt eine neue Tabelle mit der Liste der Bauteile. Dieser Button öffnet einen Dialog mit der Frage: - Rekursiv über alle Subassenblies? Antwort Ja: Alle Teile aller Unterbaugruppen werden in der Teileliste abgeholt Antwort-Nein: Nur die Teile der letzten werden gesammelt. Flip direction between 'aligned' and 'opposed' Set 0 to 'Offset' field Flip sign between '+' and '-' in 'Offset' field Toggle between 'False' and 'True' Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Opens a dialog to define constraints Öffnet einen Dialog um Einschränkungen zu definieren Select a constraint in the treeview and hit this button. Wähle eine Einschränkung in der Baumansicht aus und drücke diese Taste. Errors occurred during processing of {} createUpdateFileList(): ImportPath = {} createUpdateFileList(): Importpfad = {} Do you want to update the selected parts only? Assembly '{}' has been updated! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Add PointOnLine constraint Add PointOnPlane constraint Add SphereCenterIdent constraint Add CircularEdge constraint Add AxisCoincident constraint Add AxisParallel constraint Add AxisPlaneParallel constraint Add AxisPlaneAngle constraint Add AxisPlaneNormal constraint Add PlanesParallel constraint Add PlaneCoincident constraint Add AngledPlanes constraint Add CenterOfMass constraint reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): All constraints are recalculated. Recalculate direction of constraints Richtung der Einschränkungen neu berechnen Do you really want to recalculate the directions of all constraints? Möchten Sie wirklich die Richtungen aller Beschränkungen neu berechnen? Re-adjust directions of all constraints Richtungen aller Einschränkungen neu anpassen Re-adjust directions of all constraints to best fit Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Button gets active after correct selection. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. A2plus_constraintServices Recalculate direction of constraints Richtung der Einschränkungen neu berechnen Do you really want to recalculate the directions of all constraints? Möchten Sie wirklich die Richtungen aller Beschränkungen neu berechnen? Re-adjust directions of all constraints Richtungen aller Einschränkungen neu anpassen Re-adjust directions of all constraints to fit best Richtungen aller Einschränkungen neu anpassen, um am besten zu passen A2plus_constraintcommands Add pointIdentity constraint PointIdentity Beziehungsart hinzufügen Add pointOnLine constraint PunktOnLine Beziehungslinie hinzufügen Add pointOnPlane constraint PunktOnPlane Beziehung hinzufügen Add sphereCenterIdent constraint Kugel-Zentrier-Beziehung hinzufügen Add circularEdge constraint ZirkularEdge-Bedingung hinzufügen Add axis Coincident constraint Achsen-Koordinations-Beschränkung hinzufügen Add axisParallel constraint AxisParallel Beziehung hinzufügen Add axisPlaneParallel constraint AxisPlaneParallele Beziehung hinzufügen Add axisPlaneAngle constraint AxisPlaneWinkel-Beziehung hinzufügen Add axisPlaneNormal constraint AxisPlaneNormal Beziehung hinzufügen Add planesParallel constraint Flächenparallele Beschränkung hinzufügen Add planeCoincident constraint PlaneCoincident Beziehungsart hinzufügen Add angledPlanes constraint AngledPlanes-Einschränkung hinzufügen Add centerOfMass constraint MitteOfMass-Beziehung hinzufügen A2plus_constraints Create the point-to-point constraint (pointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) Button gets active after correct selection. Erstellt die Punkt-zu-Punkt-Beziehung (pointIdentity) Auswahl: 1) Ein Scheitel, ein Kreis, oder eine Kugel (auf einem Teil) 2) Ein Scheitelpunkt, ein Kreis oder eine Kugel (auf einem anderen Teil) Button wird nach der korrekten Auswahl aktiv. Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. Erstellen Sie die Punkt-auf-Linie-Einschränkung (pointOnLine) Auswählen: 1) Ein Scheitelpunkt, eine Kugel oder ein Kreis (auf einem Teil) 2) Eine lineare/kreisförmige Kante oder eine zylindrische Fläche (auf einem anderen Teil) Wenn die kreisförmige Kante ausgewählt ist, wird ihre Achse als Liniendefinition verwendet. Schaltfläche wird nach korrekter Auswahl aktiv. Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. Erstelle die Punkt-On-Ebenen-Beziehung (pointOnPlane) Auswahl: 1) Ein Scheitel, eine Mitte eines Kreises, oder eine Kugel (auf einem Teil) 2) Eine Ebene (auf einem anderen Teil) Button wird nach der korrekten Auswahl aktiv. Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. Erstellt die zirkuläre Kantenverbindung (zirkularEdge) Auswahl: 1) Eine kreisförmige Kante (auf einem Teil) 2) Eine kreisförmige Kante (auf einem anderen Teil) Taste wird nach der korrekten Auswahl aktiviert. Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. Erstellen Sie die Achsen-zu-Achsen-Einschränkung (axisCoincident) 2 Achsen sind ausgerichtet und werden verschoben um zufällig zu sein. Auswahl: 1) Ein zylindrisches Gesicht oder linearer Rand (auf einem Teil) 2) Ein zylindrisches Gesicht oder eine lineare Kante (auf einem anderen Teil) Button wird nach der korrekten Auswahl aktiv. Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. Erstellen Sie die Parallelachsverbindung (axisParallel) Achse' dreht nur um parallel zu sein, aber wird nicht verschoben werden, um zufällig zu sein. Auswahl: 1) Eine linear/kreisförmige Kante oder eine zylindrische Fläche (auf einem Teil) 2) Eine linear/kreisförmige Kante, oder zylindrische Fläche (auf einem anderen Teil) Bei Verwendung von Kreiskanten wird diese's Achse als Linie genommen. Button wird nach korrekter Auswahl aktiv. Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Erstellen Sie die Achse zu Ebene Parallelität (axisPlaneParallel) Auswahl: 1) Eine lineare Kante, oder Zylinderachse (auf einem Teil) 2) Eine Ebenenfläche (auf einem anderen Teil) Diese Einschränkung passt eine Achse parallel zu einer ausgewählten Ebene an. Die Bauteile werden nicht auf zufällig verschoben. Button wird nach korrekter Auswahl aktiviert. Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. Erstellt die Winkelachse zu Ebene Beziehung (axisPlaneWinkel) Auswahl: 1) Eine lineare Kante, oder Zylinderachse (auf einem Teil) 2) Eine Ebenenfläche (auf einem anderen Teil) Diese Einschränkung passt eine Achse parallel zu einer ausgewählten Ebene an. Im folgenden PopUp-Dialog können Sie einen Winkel definieren. Die Teile werden nicht auf den Zufall verschoben. Button wird nach korrekter Auswahl aktiv. Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Erstellt die Achsen-Ebenen-normale Beziehung (axisPlaneNormal) Auswahl: 1) Eine lineare Kante, oder Zylinderachse (auf einem Teil) 2) Eine Ebenenfläche (auf einem anderen Teil) Diese Einschränkung passt eine Achse vertikal an eine ausgewählte Ebene an. Die Bauteile werden nicht auf zufällig verschoben. Button wird nach korrekter Auswahl aktiviert. Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Erstellen Sie die Ebenen-Parallelität (planesParallel) Ebenen werden nur parallel gedreht, aber nicht verschoben um zufällig zu sein. Auswahl: 1) Eine Ebene (auf einem Teil) 2) Eine Ebene (auf einem anderen Teil) Button wird nach der korrekten Auswahl aktiv. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Erstellen Sie die Zufallsschwelle (planeCoincident) Auswahl: 1) Eine Ebene (auf einem Teil) 2) Eine Ebene (auf einem anderen Teil) Button wird nach der korrekten Auswahl aktiv. Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry "angle" in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. Erstellt die Winkelebene Beziehung (Winkelebenen) Auswahl: 1) Eine Ebene (auf einem Teil) 2) Eine Ebene (auf einem anderen Teil) Nach dem Setzen dieser Einschränkung wird der tatsächliche Winkel zwischen beiden Ebenen berechnet und für den Eintrag &quot;Winkel&quot; im Objekteditor gespeichert. Der Winkel kann im Objekteditor geändert werden. Vermeiden Sie Winkel gleich 0 und 180 Grad. Sie könnten seltsame Ergebnisse erhalten. Dafür ist es besser, planesParallel Einschränkung zu verwenden. Button wird nach korrekter Auswahl aktiv. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. Erstellt die Kugel-zu-Kugel-Beziehung (Kugel-CenterIdent) Auswahl: 1) Eine kugelförmige Oberfläche oder ein Scheitelpunkt (auf einem Teil) 2) Eine kugelförmige Oberfläche oder ein Scheitelpunkt (auf einem anderen Teil) Bei der Auswahl eines Kreises wird es's Mitte als Scheitelpunkt verwendet. Button wird nach korrekter Auswahl aktiv. Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. Erstellt die Mitte-of-Massenverbindung (Mitte-OfMass) Auswahl: 1) Ein Gesicht, oder eine geschlossene Kante (an einem Teil) 2) Ein Gesicht oder ein geschlossener Rand (auf einem anderen Teil) Es ist möglich, den Offset im Objekteditor zu ändern. Button wird nach korrekter Auswahl aktiv. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Konvertieren Sie ein mit erstelltes Teil in ein voll funktionsfähiges A2plus-Teil. Nach der Konvertierung können Einschränkungen angewendet werden. Außerdem können Sie das umgebaute Teil duplizieren. Zum Bearbeiten eines konvertierten Teils drücken Sie die Schaltfläche Bearbeiten und folgen den Anweisungen, die auf dem Bildschirm angezeigt werden. Diese Funktion ist nützlich, wenn Sie z.B. Befestigungselemente in dieser Werkbank verwenden möchten. Convert a part to A2plus Ein Teil in A2plus konvertieren Please select only visible parts! Bitte wählen Sie nur sichtbare Teile! Conversion Aborted Konvertierung abgebrochen A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Konfliktfinderwerkzeug: Behebt widersprüchliche Einschränkungen durch den Versuch, diese nacheinander zu lösen There are no a2p constraints within this document. Es gibt keine a2p Einschränkungen in diesem Dokument. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? Das folgende Beziehungspaar widerspricht mit zuvor definierten Einschränkungen: Beziehung: {} mit Spiegel: {} Das Beziehungspaar gehört zu den Objekten: Objekt1: {} Objekt2: {} Möchten Sie dieses Beziehungspaar löschen? Searching for conflicting constraints Suche nach widersprüchlichen Einschränkungen Identify conflicting constraints Widersprüchliche Einschränkungen identifizieren Gui::Dialog::DlgSettingsA2Plus A2plus settings A2plus-Einstellungen User interface settings Einstellungen der Benutzeroberfläche Adds a creation button for every constraint type to the toolbar Fügt der Symbolleiste eine Erstellungsschaltfläche für jeden Einschränkungstyp hinzu Show constraints in toolbar Einschränkungen in der Symbolleiste anzeigen Use native file manager of your OS Verwenden Sie den nativen Dateimanager Ihres Betriebssystems Behavior when updating imported parts Verhalten beim Aktualisieren importierter Artikel All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Alle Teile der Baugruppe werden in FreeCAD geöffnet um mit Werten aus Tabellenkalkulationen zu rekonstruieren Recalculate imported parts before updating them (experimental) Importierte Teile neu berechnen, bevor sie aktualisiert werden (experimentell) Opens all subassemblies recursively to update them Öffnet alle Unterbaugruppen rekursiv, um sie zu aktualisieren Enable recursive update of imported parts Aktivieren Sie die rekursive Aktualisierung importierter Teile While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Beim Importieren von Teilen in die Assembly werden die Topologischen Namen in &quot;mux Info&quot; Eigenschaft geschrieben. Wenn die Teile später aktualisiert wurden, werden die Eigenschaften &quot;Sub Elementx&quot; der Einschränkungen gemäß der &quot;Mux Info&quot; topology aktualisiert. Use experimental topological naming Verwenden Sie experimentelle topologische Benennung Inherit per face color and transparency from parts and subassemblies (experimental) Farbe und Transparenz pro Fläche von Teilen und Unterbaugruppen übernehmen (experimentell) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Unsichtbare Datenträger/Konstruktionsformen werden ausgeblendet. Hinweis: Keine Einschränkungen müssen mit Datum/Konstruktionsformen in höheren oder anderen Unterbaugruppen verbunden sein. Andernfalls können Sie das Bauteil brechen. All imported parts will directly be put together as union. Alle importierten Teile werden direkt als Union zusammengestellt. Do not import invisible shapes (for expert users) Keine unsichtbaren Formen importieren (für erfahrene Benutzer) Use solid union for importing parts and subassemblies (experimental) Solid Union zum Importieren von Teilen und Unterbaugruppen verwenden (experimentell) Storage of files Speicherung von Dateien Use relative paths for imported parts Verwenden Sie relative Pfade für importierte Teile Use absolute paths for imported parts Verwenden Sie absolute Pfade für importierte Teile Specify the project folder in the field below Geben Sie im Feld darunter den Projektordner an All files are in this project folder: Alle Dateien befinden sich in diesem Projektordner: Default solver behavior Standard-Solver-Verhalten Solve automatically if a constraint property is changed Automatisch lösen, wenn eine Bedingungseigenschaft geändert wird Default solving method Standardlösungsmethode Solver tries to move all parts at once in direction to a fixed part Solver versucht, alle Teile auf einmal in Richtung eines festen Teils zu bewegen Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Verwenden Sie &quot;magnetischen&quot; Solver, lösen Sie alle Teile auf einmal (für dynamische Baugruppen) All parts will be fixed to the positions where they were created Alle Teile werden an den Positionen befestigt, wo sie erstellt wurden Force fixed position to all imports Feste Position für alle Importe erzwingen Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. Der Löser beginnt mit einem festen Teil und einem darauf beschränkten Teil. Alle anderen Teile sind nicht berechnet. Wenn eine Lösung gefunden werden konnte, wird das nächste eingeschränkte Teil für die Berechnung hinzugefügt und so weiter. Use solving of partial systems (recommended for static assemblies) Verwenden Sie das Lösen von Teilsystemen (empfohlen für statische Baugruppen) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Verwenden Sie Farb- und Transparenzeinstellungen aus importierten Teilen. Hinweis: Für WB PartDesign funktioniert es nur für Body. Workbench Constraint Zwang Solver Löser View Aussicht Misc Sonstiges Diagnostic Diagnose ================================================ FILE: translations/A2plus_es-AR.ts ================================================ A2p_BoM BOM ERROR: Could not open sourcefile '{}' ERROR DE BOM: No se pudo abrir el archivo fuente '{}' PARTSLIST LISTA DE PARTES POS POS QTY CANTIDAD #PARTSLIST# spreadsheet has been created La hoja de cálculo # LISTA DE PARTES # ha sido creada #PARTINFO# spreadsheet has been created La hoja de cálculo # INFORMACIÓN DE PARTES # ha sido creada PARTINFO INFORMACIÓN DE PARTES IDENTNO NÚMERO DE IDENTIFICACIÓN DESCRIPTION DESCRIPCIÓN SUPPLIER PROVEEDOR SUPP.IDENTNO NO.IDENTIFICACIÓN DE PROVEEDOR SUPP.DESCRIPTION DESCRIPCIÓN DE PROVEEDOR (FILENAME) (NOMBRE DE ARCHIVO) #PARTSLIST_CutListOptimizer# spreadsheet has been created La hoja de cálculo #PARTSLIST_CutListOptimizer# ha sido creada CLO_PARTSLIST CLO_LISTADEPARTES Length Longitud Width Ancho Qty Cantidad Material Material Label Etiqueta Enabled Habilitado A2plus No active document found! ¡No se encontró ningún documento activo! You have to open a FCStd file first. Primero tiene que abrir un archivo FCStd. Please save before generating a parts list! Save now? ¡Por favor, guarde antes de generar una lista de partes! ¿Guardar ahora? Save document? ¿Guardar documento? Parts list generation aborted! ¡Generación de la lista de partes abortada! You have to save the assembly file first. Primero tiene que guardar el archivo de ensamblaje. Do you want to iterate recursively over all included subassemblies? ¿Quiere iterar recursivamente sobre todos los subensamblajes incluidos? Create a spreadsheet with a parts list of this file Crear una hoja de cálculo con una lista de partes de este archivo Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes de este archivo. Esta función leerá la hoja de cálculo #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: - ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajes son colectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente son colectadas. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes de este archivo. Esta función leerá la hoja de cálculo #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: - ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajes son colectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente son colectadas. Constraint properties Propiedades de restricción Direction Dirección aligned alineado opposed opuesto none ninguno Flip direction between 'aligned' and 'opposed' Invertir dirección entre 'alineado' y 'opuesto' Flip direction Invertir dirección Offset Desplazamiento Set 0 to 'Offset' field Establecer 0 en campo 'Offset' Set Zero Establecer cero Flip sign between '+' and '-' in 'Offset' field Voltear signo entre '+' y '-' en el campo 'Offset' Flip sign Voltear signo Angle Ángulo Angle in the range 0 - 180 degrees Ángulo en el rango de 0 - 180 grados Round Redondear Round angle to multiples of 5 Redondear ángulo a múltiplos de 5 Perpendicular Perpendicular Adds/deletes 90 degrees Agrega/Elimina 90 grados Lock Rotation Bloquear rotación False Falso True Verdadero Toggle between 'False' and 'True' Alternar entre 'Falso' y 'Verdadero' Toggle Alternar Delete this constraint Eliminar esta restricción Delete Eliminar Select a constraint in the treeview and hit this button. Seleccione una restricción en la vista de árbol y presione este botón. Solve constraints Resolver restricciones Solve Resolver Accept the settings Aceptar los ajustes Accept Aceptar Constraint does not exist anymore La restricción ya no existe Constraint has already been deleted La restricción ya ha sido eliminada Confirmation required Confirmación necesaria Really delete this constraint? ¿Realmente desea eliminar esta restricción? Exit and delete new constraint? ¿Salir y eliminar nueva restricción? Information Información Values changed! Accept Constraint? ¡Valores cambiados! ¿Aceptar restricción? Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Seleccione la geometría a ser restringida dentro de la vista 3D! Los botones de restricción adecuados serán activados. Por favor, lea también información sobre herramientas de cada botón. Constraint Tools Herramientas de restricción Help Ayuda Constraint Tools help Ayuda de herramientas de restricción Define constraints Definir restricciones Opens a dialog to define constraints Abre un diálogo para definir restricciones Selection Error! ¡Error de selección! Please select exact one constraint first. Por favor, primero seleccione exactamente una restricción. Edit selected constraint Editar restricción seleccionada Errors occurred during processing of {} Errores ocurrieron durante el procesado de {} Dependencies between {} - {}, type {} Dependencias entre {} - {}, tipo {} Import Objects Importar Objetos Select objects to import Seleccionar objetos a importar Cancel Cancelar Import Importar Importing Importando Select a shape to be imported Seleccione una forma a ser importada Choose Escoger A part can only be imported from a FreeCAD '*.FCStd' file Una parte sólo puede importarse de un archivo de FreeCAD '*.FCStd' Value Error Error de valor No visible Part to import found. Aborting operation No se encontró ninguna parte visible para importar. Abortando operación Import Error Error al importar Import of a shape reference aborted by user Importación de referencia de una forma abortada por el usuario LCS_Collection LCS_Colección Add shapes from an external file to the assembly Agregar formas desde un archivo externo al ensamblaje Add shapes from an external file Agregar formas desde un archivo externo First create an empty file and save it under desired name Primero cree un archivo vacío y guárdelo con el nombre deseado Unnamed document Documento sin nombre Before inserting first part, please save the empty assembly to give it a name Antes de insertar la primera parte, por favor guarde el ensamblaje vacío para darle un nombre Select FreeCAD document to import part from Seleccione el documento FreeCAD del cuál importar una parte Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Formatos soportados (*.FCStd *.fcstd *.stp *.step);;Todos los archivos (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. ¡La parte que intentas importar está fuera de tu carpeta de proyecto! Revisa los ajustes de las preferencias A2plus. Imported Object is empty/none El objeto importado está vacío/es none Restore transparency to active document objects Restaurar transparencia a objetos del documento activo Restore transparency to active document objects Restaurar transparencia a los objetos del documento activo Add a part from an external file to the assembly Agregar una parte de un archivo externo al ensamblaje Add a part from an external file Agregar una parte de un archivo externo Imported Object is empty/none El objeto importado está vacío/es none ASSEMBLY UPDATE ACTUALIZACIÓN DE ENSAMBLAJE Do you want to update only the selected parts? ¿Desea actualizar sólo las partes seleccionadas? Source file not found Archivo fuente no encontrado Unable to find '{}' No se puede encontrar '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Actualiza las piezas, que han sido importadas al ensamblaje. (Si modifica una parte en un archivo externo, la nueva forma es llevada al ensamblaje por esta función.) Update parts imported into the assembly Actualizar partes importadas en el ensamblaje Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Crear un duplicado de una parte, que ya ha sido importada en el ensamblaje. Seleccione una pieza importada y pulse este botón. Se creará un duplicado y puede ser colocado en algún lugar por el ratón. Mantenga pulsado "Shift" para hacer esto varias veces. Create duplicate of a part Crear duplicado de una parte Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Editar una parte importada. Seleccione una parte importada y presione este botón. El archivo FCStd apropiado, vinculado a esta parte será abierto y puede modificar esta parte en este lugar. Después de editar y guardar, tiene que utilizar la función 'actualizar las piezas importadas' para poder ver la nueva forma en el ensamblaje. Please edit the highlighted object. When finished, update the assembly Por favor edite el objeto resaltado. Cuando termine, actualice el ensamblaje File error! ¡Error de archivo! Cannot find the local source object. Has it been deleted? No se puede encontrar el objeto fuente local. ¿Ha sido eliminado? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Quiere editar un archivo que no se encuentra dentro de tu carpeta de proyecto. Esto no está permitido cuando se utiliza la preferencia Usar carpeta de proyecto Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Editando un archivo STEP como archivo '*.FCStd'. Por favor, exporte el archivo guardado como '.step' Info Información Edit an imported part (open linked FCStd file) Editar una parte importada (abrir archivo FCStd enlazado) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Mover la parte seleccionada. Seleccione una parte y presione este botón. La pieza puede moverse con el ratón. Si la parte está restringida, saltará hacia atrás en la siguiente resolución el ensamblaje. Move the selected part Mover la parte seleccionada Animation problem detected Problema de animación detectado Use system undo if necessary. Usar deshacer del sistema si es necesario. Invalid selection Selección inválida A2plus will not move a part with property A2plus no moverá una parte con propiedad Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover una parte bajo restricciones. 1) Pulse este botón 2) De clic en una parte y se pega al cursor y se puede mover 3) De clic de nuevo (o pulse ESC) y el comando termina Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover una parte bajo restricciones. 1) Pulse este botón 2) De clic en una parte y se pega al cursor y se puede mover 3) De clic de nuevo (o pulse ESC) y el comando termina Move the selected part under constraints Mover la parte seleccionada bajo restricciones Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Eliminar todas las restricciones de una parte seleccionada. Seleccione exactamente una parte y pulse este botón. Un diálogo de confirmación aparece mostrando todas las restricciones relacionadas con la parte seleccionada. Después de la confirmación todas las restricciones relacionadas se eliminan a la vez. Selection Error Error de selección Select exactly 1 part Seleccione exactamente 1 parte No constraints refer to '%s' No constraints refer to '%s' Delete {}'s constraint(s): - {}? ¿Eliminar la(s) restricción(es) de {}: - {}? Delete constraints? ¿Eliminar restricciones? Deleting part's constraints Eliminando restricciones de la parte Delete all constraints of selected parts Eliminar todas las restricciones de las partes seleccionadas Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Resaltar ambas partes, las cuales están relacionadas con una restricción seleccionada. Seleccione una restricción dentro de la vista de árbol y pulse este botón. Todo el ensamblaje cambia a modo transparente y puede inspeccionar la restricción deseada. Highlight both constrained parts Resaltar ambas partes restringidas Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Mostrar solo los elementos seleccionados, o todos si ninguno está seleccionado. Seleccione una o más partes, que son las únicas que desea ver en un ensamblaje grande. Presiona este botón, y todas las otras partes serán invisibles. Si no selecciona nada y pulsa este botón, todas las partes invisibles se harán visibles de nuevo. You have to open an assembly file first. Primero tiene que abrir un archivo de ensamblaje. Show only selected elements or all if none is selected Mostrar sólo los elementos seleccionados o todos si ninguno está seleccionado Toggle transparency of assembly Alternar transparencia del ensamblaje Toggles transparency of assembly Alterna la transparencia del ensamblaje Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Alternar Resolver Automáticamente Pulsando este botón puede activar o desactivar la resolución automática después de que una restricción ha sido editada Si la resolución automática está desactivada tiene que iniciarla manualmente pulsando el botón Resolver Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Alternar Resolver Automáticamente Pulsando este botón puede activar o desactivar la resolución automática después de que una restricción ha sido editada Si la resolución automática está desactivada tiene que iniciarla manualmente pulsando el botón Resolver Toggle auto solve Alternar resolución automática Toggle partial processing Alternar procesamiento parcial Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repara la vista de árbol, si está dañado de alguna manera. Después de pulsar este botón, las restricciones se agruparán bajo las partes correspondientes de nuevo. Repair the tree view if it is somehow damaged Repara la vista del árbol si de alguna manera está dañada Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Invertir dirección de la última restricción. Si la última restricción, que ha sido definida, tiene una propiedad 'dirección', su valor estará alternado entre 'alineado' y 'opuesto' (alineación del eje) Flip direction of last constraint Invertir dirección de la última restricción Command Aborted Comando abortado Flip aborted since no a2p constraints in active document. Inversión abortada ya que no hay restricciones A2p en el documento activo. Generate HTML file with detailed constraining structure Generar archivo HTML con una estructura de restricciones detallada Generates HTML file with detailed constraining structure Genera un archivo HTML con una estructura de restricciones detallada Nothing found to be labeled! ¡No se ha encontrado nada para ser etiquetado! This document does not contain A2p-objects Este documento no contiene objetos A2p Show part labels in 3D view Mostrar etiquetas de partes en la vista 3D Toggle showing part labels in 3D view Alternar el mostrar etiquetas de partes en la vista 3D Print detailed DOF information Imprimir información detallada de DOF Toggle printing detailed DOF information Alternar la impresión de información detallada de DOF Convert absolute paths of imported parts to relative ones Convertir rutas absolutas de las partes importadas a relativas Converts absolute paths of imported parts to relative ones Convierte rutas absolutas de las partes importadas a relativas Save and exit the active document Guardar y salir del documento activo Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrar proxies de las partes importadas Los ensamblajes A2plus muy antiguos no muestran los iconos correctos para las partes importadas y tienen propiedades obsoletas. Con esta función, puede migrar los viewProviders de partes antiguas importadas al estado más reciente. Después de ejecutar esta función, debería guardar y volver a abrir su archivo de ensamblaje. Migrate proxies of importedParts to recent version Migrar proxies de partes importadas a la versión más reciente Migrate proxies of imported Parts to recent version Migrar proxies de partes importadas a la versión más reciente Make sure you have a backup of your files. Proceed? Asegúrese de tener una copia de seguridad de sus archivos. ¿Proceder? The proxies have been migrated. Los proxies han sido migrados. Please save and reopen this assembly file Por favor, guarde y vuelva a abrir este archivo de ensamblaje Migrate proxies of imported parts Migrar proxies de partes importadas Updating by SubElement-Map: '{}' => '{}' Actualizando mapeo de subelementos: '{}' => '{}' Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. La restricción %s está rota. ¿Eliminar restricción? De lo contrario, verifique si hay un enlace incorrecto. Broken Constraint Restricción rota Removing constraint %s Eliminando restricción %s 3D-Debug contained '{}' vectors Debug 3D contenido '{}' vectores Clean up solver debug output from 3D view Limpiar la salida de depuración del solucionador desde la vista 3D Not existing part(s): Parte(s) no existente(s): Constraints of missing parts removed! ¡Restricciones de partes faltantes eliminadas! Union of Shapes FAILED Unión de formas FALLÓ Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crear o actualizar una forma simple del ensamblaje completo. Todas las partes del ensamblaje se combinan a una sola forma. Esta forma se puede utilizar, por ejemplo, para el módulo TechDraw o impresión 3D. La forma creada se puede encontrar en la vista de árbol. Por defecto es invisible la primera vez. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crear o actualizar una forma simple del ensamblaje completo. Todas las partes del ensamblaje se combinan a una sola forma. Esta forma se puede utilizar, por ejemplo, para el módulo TechDraw o impresión 3D. La forma creada se puede encontrar en la vista de árbol. Por defecto es invisible la primera vez. No visible ImportParts found No se encontraron partes de importación visibles Cannot create SimpleAssemblyShape No se puede crear FormaEnsamblajeSimple No visible Import Parts found No se encontraron partes de importación visibles Union of Shapes passed. 'SimpleAssemblyShape' are created. Unión de formas pasó. 'FormaEnsamblajeSimple' es creada. Create or refresh simple shape of complete assembly Crear o actualizar la forma simple del ensamblaje completo Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crear una hoja de cálculo para pedidos o información logística. La hoja de cálculo creada se puede encontrar en la vista de árbol. Rellene con su información. Esta hoja de cálculo será leída por la función de la lista de partes de A2plus. Create a spreadsheet for ordering or logistics information Crear una hoja de cálculo para pedidos o información logística createUpdateFileList(): ImportPath = {} createUpdateFileList(): RutaImportar = {} Did not update converted part '{}' No se actualizó parte convertida '{}' Do you want to update the selected parts only? ¿Quiere actualizar solo las partes seleccionadas? RECURSIVE UPDATE ACTUALIZACIÓN RECURSIVA Assembly '{}' has been updated! ¡El ensamblaje '{}' ha sido actualizado! Update imports recursively Actualizar las importaciones recursivamente Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Actualizar partes, que han sido importadas al ensamblaje. (Si modifica una parte en un archivo externo, la nueva forma es llevada al ensamblaje por esta función.) Este comando hace esto recursivamente sobre todos los subensamblajes involucrados . Los subensamblajes también son actualizados, de ser necesario. Current Rigid = '{}' Rígido actual = '{}' is Fixed está fijo is not Fixed and has {} DegreesOfFreedom no está fijo y tiene {} grados de libertad Depends on Rigid = {} Depende en rígido = {} DOF Position free with this rigid = {} DOF Posición libre con este rígido = {} DOF Rotation free with this rigid = {} DOF Rotación libre con este rígido = {} failed to open file with None name! ¡no se pudo abrir el archivo sin nombre! file '{}' does not exist! ¡el archivo '{}' no existe! file '{}' is no FCStd file! ¡el archivo '{}' no es un archivo FCStd! Remove faulty constraint '{}' Eliminar restricción defectuosa '{}' The following constraints are broken: Las siguientes restricciones están rotas: Do you want to delete them? ¿Quiere eliminarlas? Delete broken constraints? ¿Eliminar restricciones rotas? FREE LIBRE Fixed Fijo DOFs: {} DOFs:. {} There are {:.0f} dependencies Hay {:.0f} dependencias Hierarchy: Jerarquía: Writing visual hierarchy to: '{}' Escribiendo jerarquía visual a '{}' A2P assembly hierarchy visualization A2p visualización de la jerarquía del ensamblaje FIXED FIJO TARGET POS-ACCURACY :{} EXACTITUD DE POSICIÓN OBJETIVO :{} REACHED POS-ACCURACY :{} EXACTITUD DE POSICIÓN ALCANZADA :{} TARGET SPIN-ACCURACY :{} EXACTITUD DE GIRO OBJETIVO :{} REACHED SPIN-ACCURACY :{} EXACTITUD DE GIRO ALCANZADA :{} SA SPIN-ACCURACY :{} SA EXACTITUD DE GIRO :{} Start Solving System Iniciar sistema de resolución System solved using partial + recursive unfixing Sistema resuelto usando desfijación parcial + recursiva Could not solve system No se pudo resolver el sistema Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Restricciones inconsistentes. No se puede resolver el sistema. ¡Por favor, ejecute la herramienta de búsqueda de conflictos! Constraint mismatch Restricción no coincide The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Las partes resaltadas no fueron movidas. ¡No están restringidas (también sobre restringidas) a una parte fija! Could not move some parts No se pudo mover algunas partes Calculation stopped, no convergency anymore! Cálculo parado, ¡ya no hay convergencia! No convergency anymore, retrying Ya nohay convergencia, reintentando Reached max calculations count: {} Se alcanzó el número máximo de cálculos: {} Before running solver, you have to open an assembly file. Antes de ejecutar el solver, debe abrir un archivo de ensamblaje. Solves constraints Resuelve las restricciones Starting solveConstraints latest script... Iniciar último script solveConstraints ... Import ignored invisible shape: '{}' Importar forma invisible ignorada: '{}' A file must be selected to start this selector. Un archivo debe de ser seleccionado para iniciar este selector. Please open a file and try again. Por favor, abra un archivo e intente de nuevo. A file must be selected to start this selector. Please open a file and try again. Un archivo debe de ser seleccionado para iniciar este selector. Por favor, abra un archivo e intente de nuevo. No parts were selected to update. No se seleccionaron partes para actualizar. Select one part and try again. Seleccione una parte e intente de nuevo. I have limited the number of parts that can be updated to 1. He limitado el número de partes que se pueden actualizar a 1. No parts were selected to update. Select one part and try again. No se seleccionaron partes para actualizar. Seleccione una parte e intente de nuevo. I have limited the number of parts that can be updated to 1. Select one part and try again. He limitado el número de partes que se pueden actualizar a 1. Seleccione una parte e intente de nuevo. Updating Assembly. Actualizando ensamblaje Update complete. Actualización completada All surfaces found Todas las superficies encontradas Update complete: Actualización completa: Total constraints - {} Restricciones totales - {} Repaired constraints - {} Restricciones reparadas - {} Features not found - {} Características no encontradas - {} Updates parts from the A2plus program that has been modified Actualizar partes del banco de trabajo A2plus que ha sido modificadas Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly program. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. Constraint Checker Comprobador de restricciones Status Estado Showing editing part Mostrando la parte en edición Updates parts from the A2plus workbench that has been modified Actualizar partes del banco de trabajo A2plus que ha sido modificadas Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. To view the constraints, press 'Open Viewer' Para ver las restricciones, presione 'Abrir visor' View the listed constraints in the the Constraint Viewer. Ver las restricciones listadas en el visor de restricciones. Open Viewer Abrir visor Close this form. Cerrar este formulario Close Cerrar A A2plus file must be opened to start this checker Un archivo de A2plus debe de ser abierto para iniciar este comprobador Please open a file and try again Por favor, abra un archivo e intente de nuevo Cannot find any constraints in this file. No se puede encontrar ninguna restricción en este archivo. Checking constraints Comprobando restricciones No constraint errors found No se encontraron errores de restricciones Checking {} of {} Comprobando {} de {} Checking Constraints Comprobando restricciones Checks constraints Comprobar restricciones This checks all constraints. After checking it will list all constraints that it found problems with. Esto comprueba todas las restricciones. Después de comprobar, enumerará todas las restricciones con las que encontró problemas. The list can then be opened in the Constraint viewer. La lista puede ser abierta en el visor de restricciones después. Constraint Viewer Visor de restricciones Labels Etiquetas Open Dialog Abrir diálogo Delete labels Eliminar etiquetas Places of accuracy = {} Lugares de exactitud = {} Open Help Abrir ayuda Broken Constraints Restricciones rotas Suppress Suprimir Import from part Importar desde parte Select a part and import all of the constraints for that part Seleccione una parte e importe todas las restricciones para esa parte Import from Tree Importar desde árbol Copy selected constraints from the Tree Copiar restricciones seleccionadas desde el árbol Clear Table Limpiar tabla Clear the table Limpiar la tabla Attach to Adjuntar a Select the feature to change in table. Select surface to change to. Seleccione la función para cambiar en la tabla. Seleccione la superficie a la cual cambiar. Clear Tree Limpiar árbol Remove search color from tree. Elimine el color de búsqueda del árbol. Find in Tree Encontrar en árbol Finds the constraint in the tree for the select row in table. Encuentra la restricción en el árbol para la fila seleccionada en la tabla. Std Solver Solucionador estándar Same as the solver above. Igual que el solucionador de arriba. Find w label Encontrar etiqueta w Press to toggle a label for selected feature. Presionar para alternar una etiqueta para la característica seleccionada. Close this window Cerrar esta ventana A part feature must be selected in the table Una característica de parte debe de ser seleccionada en la tabla The table has lost focus. Please reselect in the table. La mesa ha perdido el enfoque. Por favor, vuelva a seleccionarla en la mesa. The selected text in the table is not a proper feature name: {} {} El texto seleccionado en la tabla no es nombre adecuado de una característica: {} {} Find Constraint Encontrar restricción CD_Help for Diagnostic tools.pdf CD_Ayuda para herramientas de diagnóstico.pdf Constraint is not in file. Was it deleted? La restricción no está en el archivo ¿Fue eliminada? A file must be opened to start this selector. Please open a file and try again Se debe abrir un archivo para iniciar este selector. Por favro, abra un archivo e intente de nuevo Nothing was selected in the Tree. Nada fue seleccionado en el árbol. There were no constraints selected in the Tree. Select one or more constraints and try again. No se seleccionaron restricciones en el árbol. Seleccione una o más restricciones e intente de nuevo. No parts were selected in the window. No se seleccionaron partes en la ventana. There are no constraints for this part. No hay restricciones para esta parte. There are no constraints between these parts. No hay restricciones entre estas partes. Both parts are fixed. Ambas partes están fijas. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Las superficies solo se pueden reemplazar en columnas 'Part1 Feat' o 'Part2 feat' No feature has been selected No se ha seleccionado característica The constraint can only be moved to another surface of the same part La restricción solo se puede ser movida a otra superficie de la misma parte removeObserver failed in C checker removeObserver falló en comprobador C View and edit selected constraints Ver y editar restricciones seleccionadas Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Visor de restricciones. Puede ver las características a las que se adjunta la restricción, ejecutar una sola restricción o cambiar la característica a la que se adjunta la restricción. Consulte la ayuda para obtener más información. Create Labels Crear etiquetas Add Face Labels Agregue etiquetas de cara Add labels to all of the faces on a selected part Agregue etiquetas a todas las caras en una parte seleccionada Add Edge Labels Agregue etiquetas de arista Add labels to all of the edges on a selected part Agregue etiquetas a todas las aristas en una parte seleccionada Add Vertex Labels Agregue etiquetas de vértice Add labels to all of the vertices on a selected part Agregue etiquetas a todas los vértices en una parte seleccionada Delete Labels Eliminar etiquetas Delete all labels Eliminar todas las etiquetas Face Cara Edge Arista Vertex Vértice One part must be selected. Una parte debe de ser seleccionada Please select One part and try again Por favor, seleccione una parte e intente de nuevo SelObserverOFF by except SelObserverOFF por excepción Use one mouse button to select features Usar un botón del ratón para seleccionar características Use left mouse button to select two features. Do not use the control key. Use el botón izquierdo del mouse para seleccionar dos características. No use la tecla control. No file is opened. You must open an assembly file first. No hay archivo abierto. Debe abrir un archivo de ensamblaje primero. OneButton is ON OneButton está PRENDIDO OneButton is OFF OneButton está APAGADO Warning Advertencia An other assembly workbench for FreeCAD. Otro banco de trabajo de ensamblaje para FreeCAD. Initializing A2plus Workbench v{} Inicializando banco de trabajo A2plus v{} Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Crear una hoja de cálculo con una lista de partes para https://cutlistoptimizer.com/ de este archivo Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes para https://cutlistoptimizer.com/ de este archivo. Esta función leerá la hoja de cálculo de #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajess son recolectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente se recogen. A2plus_Constraints Add PointIdentity constraint Agregar restricción PuntoIdentidad Add PointOnLine constraint Agregar restricción PuntoEnLínea Add PointOnPlane constraint Agregar restricción PuntoEnPlano Add SphereCenterIdent constraint Agregar restricción EsferaCentroIdentidad Add CircularEdge constraint Agregar restricción BordeCircular Add AxisCoincident constraint Agregar restricción EjeCoincidente Add AxisParallel constraint Agregar restricción EjeParalelo Add AxisPlaneParallel constraint Agregar restricción EjePlanoParalelo Add AxisPlaneAngle constraint Agregar restricción EjePlanoÁngulo Add AxisPlaneNormal constraint Agregar restricción EjePlanoNormal Add PlanesParallel constraint Agregar restricción PlanosParalelos Add PlaneCoincident constraint Agregar restricción PlanoCoincidente Add AngledPlanes constraint Agregar restricción PlanosConÁngulo Add CenterOfMass constraint Agregar restricción CentroDeMasa reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): Se encontraron restricciones desconocidas: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Todas las restricciones son recalculadas. Recalculate direction of constraints Recalcular la dirección de las restricciones Do you really want to recalculate the directions of all constraints? ¿Realmente desea recalcular las direcciones de todas las restricciones? Re-adjust directions of all constraints Reajustar las direcciones de todas las restricciones Re-adjust directions of all constraints to best fit Reajustar las direcciones de todas las restricciones para el mejor ajuste Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Crear la restricción punto a punto (PuntoIdentidad) Seleccione: 1) Un vértice, un círculo o una esfera (en una parte) 2) un vértice, un círculo o una esfera (en otra parte) Si se selecciona el círculo o la esfera, el centro de característica se tomará como definición de punto. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Crear la restricción de punto en línea (PuntoEnLínea) Seleccione: 1) Un vértice, una esfera o un círculo (en una parte) 2) Un borde lineal/circular, o una cara cilíndrica/cónica (en otra parte) Si se selecciona el borde circular, su eje se tomará como definición de línea. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Crear la restricción de punto contra el plano (PuntoEnPlano) Seleccione: 1) Un vértice, un centro de un círculo o una esfera (en una parte) 2) Un plano (en otra parte) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Crear la restricción de esfera a esfera (EsferaCentroIdentidad) Seleccione: 1) Una superficie esférica, o un vértice (en una parte) 2) Una superficie esférica, o un vértice (en otra parte) Al seleccionar una esfera, su centro se usa como vértice. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Crear la restricción de borde circular (BordeCIrcular) Seleccione: 1) Un borde circular (en una parte) 2) Un borde circular (en otra parte) Al seleccionar un círculo, su centro se usa como vértice. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Crear la restricción de eje a eje (EjeCoincidente) Seleccione: 1) Un borde lineal o cara cilíndrica/cónica (en una parte) 2) Un borde lineal o cara cilíndrica/cónica (en otra parte) El eje no fijo se alineará y se moverá para ser coincidente. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Crear la restricción de ejes-paralelos (EjesParalelos) Seleccione: 1) Un borde lineal/circular o cara cilíndrica/cónica (en una parte) 2) Un borde lineal/circular o cara cilíndrica/cónica (en otra parte) Los ejes solo girarán para ser paralelos, pero no se moverán para ser coincidentes. Si usa el borde circular o la cara cilíndrica/cónica, su eje se tomará como línea. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Crear la restricción de paralelismo de eje a plano (EjePlanoParalelo) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Esta restricción ajusta un eje paralelo a un plano seleccionado. Las partes no se mueven para ser coincidentes. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Crear la restricción angular de eje a plano (EjePlanoÁngulo) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Primero, esta restricción ajusta un eje paralelo a un plano seleccionado. Dentro del siguiente diálogo emergente puede definir un ángulo. Las partes no se mueven para ser coincidentes. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Crear la restricción eje-plano-normal (EjePlanoNormal) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Esta restricción ajusta un eje vertical a un plano seleccionado. Las partes no se mueven para ser coincidentes. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Crear la restricción de planos-paralelismo (PlanosParalelos) Seleccione: 1) Un plano (en una parte) 2) Un plano (en otra parte) Los planossolo girarán para ser paralelos, pero no serán movidos para ser coincidentes. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Crear la restricción de plano-coincidente (PlanoCoincidente) Seleccione: 1) Un plano (en una parte) 2) Un plano(en otra parte) Es posible cambiar el desplazamiento en el editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Crear la restricción de planos angulados (PlanosConÁngulo) Seleccione: 1) Un plano (en una parte) 2) Un plano (en otra parte) Después de establecer esta restricción al principio, el ángulo entre ambos planos se ha calculado y almacenado en la entrada 'ángulo' en el editor de objetos. El ángulo se puede cambiar en el editor de objetos. Evite usar ángulos es igual a 0 y 180 grados; - podría obtener resultados extraños. Para eso, es mejor usar la restricción de PlanosParalelos. Button gets active after correct selection. El botón se activa después una selección correcta. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Crear la restricción de centro de masa (CentroDeMasa) Seleccione: 1) Una cara o un borde cerrado (en una parte) 2) Una cara o un borde cerrado (en otra parte) Es posible cambiar el desplazamiento en el editor de objetos. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Convertir una parte, creada con otro WB, a una parte completamente funcional de A2plus. Después de convertir, se pueden aplicar restricciones. También puede duplicar la parte convertida. Para editar una parte convertida, haga clic en en el botón editar y siga las instrucciones que se muestran en la pantalla. Esta función es útil, si desea usar, por ejemplo, elementos de sujeción dentro de este banco de trabajo. Convert a part to A2plus Convertir una parte a A2plus Please select only visible parts! ¡Por favor, seleccione sólo partes visibles! Conversion Aborted Conversión abortada A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Herramienta de búsqueda de conflictos: Resuelve restricciones en conflicto tratando de resolverlas una tras otra. Searching for conflicting constraints Buscando restricciones en conflicto There are no a2p constraints within this document. No hay restricciones A2p en este documento. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? El siguiente par de restricciones está en conflicto con restricciones previamente definidas: restricción : {} con espejo: {} El par de restricción pertenece a los objetos: objeto 1: {} objeto 2: {} ¿Desea eliminar este par de restricciones? Identify conflicting constraints Identificar restricciones en conflicto Gui::Dialog::DlgSettingsA2Plus A2plus settings Ajustes de A2plus User interface settings Ajustes de la interfaz de usuario Adds a creation button for every constraint type to the toolbar Agrega un botón de creación para cada tipo de restricción a la barra de herramientas Show constraints in toolbar Mostrar restricciones en la barra de herramientas Use native file manager of your OS Usar el administrador de archivos nativo de tu sistema operativo Behavior when updating imported parts Comportamiento al actualizar partes importadas All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Todas las partes del ensamblaje se abrirán en FreeCAD para ser reconstruidas utilizando los valores de las hojas de cálculo Recalculate imported parts before updating them (experimental) Recalcular partes importadas antes de actualizarlas (experimental) Opens all subassemblies recursively to update them Abre todos los subensamblajes recursivamente para actualizarlos Enable recursive update of imported parts Habilitar actualización recursiva de partes importadas While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Mientras se importan partes al ensamblaje, los nombres topológicos se escriben en la propiedad "mux Info". Cuando las partes son actualizadas más tarde las propiedades "Sub Elementx" de las restricciones se actualizarán de acuerdo con la topología "mux Info". Use experimental topological naming Usar nombrado topológico experimental Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Usar ajustes de color y transparencia de las partes importadas. Nota: Para el banco de trabajo PartDesign, solo funciona para Cuerpo. Inherit per face color and transparency from parts and subassemblies (experimental) Heredar por cara, color y transparencia de partes y subensamblajes (experimental) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Los datum/formas construcción invisibles serán ocultados. Nota: No se deben conectar restricciones a datum/formas de construcción en ensamblajes superiores u otros subensamblajes. De lo contrario, puede romper el ensamblaje. All imported parts will directly be put together as union. Todas las partes importadas serán juntadas como unión. Do not import invisible shapes (for expert users) No importar formas invisibles (para usuarios expertos) Use solid union for importing parts and subassemblies (experimental) Utilizar unión sólida para importar piezas y subensamblajes (experimental) Storage of files Almacenamiento de archivos Use relative paths for imported parts Usar rutas relativas para las partes importadas Use absolute paths for imported parts Usar rutas absolutas para las partes importadas Specify the project folder in the field below Especificar la carpeta del proyecto en el campo de abajo All files are in this project folder: Todos los archivos están en esta carpeta del proyecto: Default solver behavior Comportamiento por defecto del solucionador Solve automatically if a constraint property is changed Resolver automáticamente si se cambia una propiedad de restricción Default solving method Método de resolución predeterminado Solver tries to move all parts at once in direction to a fixed part El solucionador intenta mover todas las partes a la vez en la dirección a una pieza fija Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Usar solucionador "magnético", resolviendo todas las partes a la vez (para ensamblajes dinámicos) All parts will be fixed to the positions where they were created Todas las partes se fijarán en las posiciones donde fueron creadas Force fixed position to all imports Forzar posición fija a todas las importaciones Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. El solucionador comienza con una parte fija y una parte restringida a ella. No se calculan todas las demás partes. Si una solución es encontrada, la siguiente parte restringida es añadida para el cálculo y así sucesivamente. Use solving of partial systems (recommended for static assemblies) Usar la resolución de sistemas parciales (recomendado para ensamblajes estáticos) Workbench Constraint Restricción Solver Solucionador View Ver Misc Miscelánea Diagnostic Diagnóstico ================================================ FILE: translations/A2plus_es-ES.ts ================================================ A2p_BoM BOM ERROR: Could not open sourcefile '{}' ERROR DE BOM: No se pudo abrir el archivo fuente '{}' PARTSLIST LISTA DE PARTES POS POS QTY CANTIDAD #PARTSLIST# spreadsheet has been created La hoja de cálculo # LISTA DE PARTES # ha sido creada #PARTINFO# spreadsheet has been created La hoja de cálculo # INFORMACIÓN DE PARTES # ha sido creada PARTINFO INFORMACIÓN DE PARTES IDENTNO NÚMERO DE IDENTIFICACIÓN DESCRIPTION DESCRIPCIÓN SUPPLIER PROVEEDOR SUPP.IDENTNO NO.IDENTIFICACIÓN DE PROVEEDOR SUPP.DESCRIPTION DESCRIPCIÓN DE PROVEEDOR (FILENAME) (NOMBRE DE ARCHIVO) #PARTSLIST_CutListOptimizer# spreadsheet has been created La hoja de cálculo #PARTSLIST_CutListOptimizer# ha sido creada CLO_PARTSLIST CLO_LISTADEPARTES Length Longitud Width Ancho Qty Cantidad Material Material Label Etiqueta Enabled Habilitado A2plus No active document found! ¡No se encontró ningún documento activo! You have to open a FCStd file first. Primero tiene que abrir un archivo FCStd. Please save before generating a parts list! Save now? ¡Por favor, guarde antes de generar una lista de partes! ¿Guardar ahora? Save document? ¿Guardar documento? Parts list generation aborted! ¡Generación de la lista de partes abortada! You have to save the assembly file first. Primero tiene que guardar el archivo de ensamblaje. Do you want to iterate recursively over all included subassemblies? ¿Quiere iterar recursivamente sobre todos los subensamblajes incluidos? Create a spreadsheet with a parts list of this file Crear una hoja de cálculo con una lista de partes de este archivo Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes de este archivo. Esta función leerá la hoja de cálculo #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: - ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajes son colectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente son colectadas. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes de este archivo. Esta función leerá la hoja de cálculo #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: - ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajes son colectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente son colectadas. Constraint properties Propiedades de restricción Direction Dirección aligned alineado opposed opuesto none ninguno Flip direction between 'aligned' and 'opposed' Invertir dirección entre 'alineado' y 'opuesto' Flip direction Invertir dirección Offset Desplazamiento Set 0 to 'Offset' field Establecer 0 en campo 'Offset' Set Zero Establecer cero Flip sign between '+' and '-' in 'Offset' field Voltear signo entre '+' y '-' en el campo 'Offset' Flip sign Voltear signo Angle Ángulo Angle in the range 0 - 180 degrees Ángulo en el rango de 0 - 180 grados Round Redondear Round angle to multiples of 5 Redondear ángulo a múltiplos de 5 Perpendicular Perpendicular Adds/deletes 90 degrees Agrega/Elimina 90 grados Lock Rotation Bloquear rotación False Falso True Verdadero Toggle between 'False' and 'True' Alternar entre 'Falso' y 'Verdadero' Toggle Alternar Delete this constraint Eliminar esta restricción Delete Eliminar Select a constraint in the treeview and hit this button. Seleccione una restricción en la vista de árbol y presione este botón. Solve constraints Resolver restricciones Solve Resolver Accept the settings Aceptar los ajustes Accept Aceptar Constraint does not exist anymore La restricción ya no existe Constraint has already been deleted La restricción ya ha sido eliminada Confirmation required Confirmación necesaria Really delete this constraint? ¿Realmente desea eliminar esta restricción? Exit and delete new constraint? ¿Salir y eliminar nueva restricción? Information Información Values changed! Accept Constraint? ¡Valores cambiados! ¿Aceptar restricción? Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Seleccione la geometría a ser restringida dentro de la vista 3D! Los botones de restricción adecuados serán activados. Por favor, lea también información sobre herramientas de cada botón. Constraint Tools Herramientas de restricción Help Ayuda Constraint Tools help Ayuda de herramientas de restricción Define constraints Definir restricciones Opens a dialog to define constraints Abre un diálogo para definir restricciones Selection Error! ¡Error de selección! Please select exact one constraint first. Por favor, primero seleccione exactamente una restricción. Edit selected constraint Editar restricción seleccionada Errors occurred during processing of {} Errores ocurrieron durante el procesado de {} Dependencies between {} - {}, type {} Dependencias entre {} - {}, tipo {} Import Objects Importar Objetos Select objects to import Seleccionar objetos a importar Cancel Cancelar Import Importar Importing Importando Select a shape to be imported Seleccione una forma a ser importada Choose Escoger A part can only be imported from a FreeCAD '*.FCStd' file Una parte sólo puede importarse de un archivo de FreeCAD '*.FCStd' Value Error Error de valor No visible Part to import found. Aborting operation No se encontró ninguna parte visible para importar. Abortando operación Import Error Error al importar Import of a shape reference aborted by user Importación de referencia de una forma abortada por el usuario LCS_Collection LCS_Colección Add shapes from an external file to the assembly Agregar formas desde un archivo externo al ensamblaje Add shapes from an external file Agregar formas desde un archivo externo First create an empty file and save it under desired name Primero cree un archivo vacío y guárdelo con el nombre deseado Unnamed document Documento sin nombre Before inserting first part, please save the empty assembly to give it a name Antes de insertar la primera parte, por favor guarde el ensamblaje vacío para darle un nombre Select FreeCAD document to import part from Seleccione el documento FreeCAD del cuál importar una parte Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Formatos soportados (*.FCStd *.fcstd *.stp *.step);;Todos los archivos (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. ¡La parte que intentas importar está fuera de tu carpeta de proyecto! Revisa los ajustes de las preferencias A2plus. Imported Object is empty/none El objeto importado está vacío/es none Restore transparency to active document objects Restaurar transparencia a objetos del documento activo Restore transparency to active document objects Restaurar transparencia a los objetos del documento activo Add a part from an external file to the assembly Agregar una parte de un archivo externo al ensamblaje Add a part from an external file Agregar una parte de un archivo externo Imported Object is empty/none El objeto importado está vacío/es none ASSEMBLY UPDATE ACTUALIZACIÓN DE ENSAMBLAJE Do you want to update only the selected parts? ¿Desea actualizar sólo las partes seleccionadas? Source file not found Archivo fuente no encontrado Unable to find '{}' No se puede encontrar '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Actualiza las piezas, que han sido importadas al ensamblaje. (Si modifica una parte en un archivo externo, la nueva forma es llevada al ensamblaje por esta función.) Update parts imported into the assembly Actualizar partes importadas en el ensamblaje Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Crear un duplicado de una parte, que ya ha sido importada en el ensamblaje. Seleccione una pieza importada y pulse este botón. Se creará un duplicado y puede ser colocado en algún lugar por el ratón. Mantenga pulsado "Shift" para hacer esto varias veces. Create duplicate of a part Crear duplicado de una parte Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Editar una parte importada. Seleccione una parte importada y presione este botón. El archivo FCStd apropiado, vinculado a esta parte será abierto y puede modificar esta parte en este lugar. Después de editar y guardar, tiene que utilizar la función 'actualizar las piezas importadas' para poder ver la nueva forma en el ensamblaje. Please edit the highlighted object. When finished, update the assembly Por favor edite el objeto resaltado. Cuando termine, actualice el ensamblaje File error! ¡Error de archivo! Cannot find the local source object. Has it been deleted? No se puede encontrar el objeto fuente local. ¿Ha sido eliminado? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Quiere editar un archivo que no se encuentra dentro de tu carpeta de proyecto. Esto no está permitido cuando se utiliza la preferencia Usar carpeta de proyecto Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Editando un archivo STEP como archivo '*.FCStd'. Por favor, exporte el archivo guardado como '.step' Info Información Edit an imported part (open linked FCStd file) Editar una parte importada (abrir archivo FCStd enlazado) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Mover la parte seleccionada. Seleccione una parte y presione este botón. La pieza puede moverse con el ratón. Si la parte está restringida, saltará hacia atrás en la siguiente resolución el ensamblaje. Move the selected part Mover la parte seleccionada Animation problem detected Problema de animación detectado Use system undo if necessary. Usar deshacer del sistema si es necesario. Invalid selection Selección inválida A2plus will not move a part with property A2plus no moverá una parte con propiedad Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover una parte bajo restricciones. 1) Pulse este botón 2) De clic en una parte y se pega al cursor y se puede mover 3) De clic de nuevo (o pulse ESC) y el comando termina Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover una parte bajo restricciones. 1) Pulse este botón 2) De clic en una parte y se pega al cursor y se puede mover 3) De clic de nuevo (o pulse ESC) y el comando termina Move the selected part under constraints Mover la parte seleccionada bajo restricciones Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Eliminar todas las restricciones de una parte seleccionada. Seleccione exactamente una parte y pulse este botón. Un diálogo de confirmación aparece mostrando todas las restricciones relacionadas con la parte seleccionada. Después de la confirmación todas las restricciones relacionadas se eliminan a la vez. Selection Error Error de selección Select exactly 1 part Seleccione exactamente 1 parte No constraints refer to '%s' No constraints refer to '%s' Delete {}'s constraint(s): - {}? ¿Eliminar la(s) restricción(es) de {}: - {}? Delete constraints? ¿Eliminar restricciones? Deleting part's constraints Eliminando restricciones de la parte Delete all constraints of selected parts Eliminar todas las restricciones de las partes seleccionadas Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Resaltar ambas partes, las cuales están relacionadas con una restricción seleccionada. Seleccione una restricción dentro de la vista de árbol y pulse este botón. Todo el ensamblaje cambia a modo transparente y puede inspeccionar la restricción deseada. Highlight both constrained parts Resaltar ambas partes restringidas Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Mostrar solo los elementos seleccionados, o todos si ninguno está seleccionado. Seleccione una o más partes, que son las únicas que desea ver en un ensamblaje grande. Presiona este botón, y todas las otras partes serán invisibles. Si no selecciona nada y pulsa este botón, todas las partes invisibles se harán visibles de nuevo. You have to open an assembly file first. Primero tiene que abrir un archivo de ensamblaje. Show only selected elements or all if none is selected Mostrar sólo los elementos seleccionados o todos si ninguno está seleccionado Toggle transparency of assembly Alternar transparencia del ensamblaje Toggles transparency of assembly Alterna la transparencia del ensamblaje Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Alternar Resolver Automáticamente Pulsando este botón puede activar o desactivar la resolución automática después de que una restricción ha sido editada Si la resolución automática está desactivada tiene que iniciarla manualmente pulsando el botón Resolver Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Alternar Resolver Automáticamente Pulsando este botón puede activar o desactivar la resolución automática después de que una restricción ha sido editada Si la resolución automática está desactivada tiene que iniciarla manualmente pulsando el botón Resolver Toggle auto solve Alternar resolución automática Toggle partial processing Alternar procesamiento parcial Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repara la vista de árbol, si está dañado de alguna manera. Después de pulsar este botón, las restricciones se agruparán bajo las partes correspondientes de nuevo. Repair the tree view if it is somehow damaged Repara la vista del árbol si de alguna manera está dañada Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Invertir dirección de la última restricción. Si la última restricción, que ha sido definida, tiene una propiedad 'dirección', su valor estará alternado entre 'alineado' y 'opuesto' (alineación del eje) Flip direction of last constraint Invertir dirección de la última restricción Command Aborted Comando abortado Flip aborted since no a2p constraints in active document. Inversión abortada ya que no hay restricciones A2p en el documento activo. Generate HTML file with detailed constraining structure Generar archivo HTML con una estructura de restricciones detallada Generates HTML file with detailed constraining structure Genera un archivo HTML con una estructura de restricciones detallada Nothing found to be labeled! ¡No se ha encontrado nada para ser etiquetado! This document does not contain A2p-objects Este documento no contiene objetos A2p Show part labels in 3D view Mostrar etiquetas de partes en la vista 3D Toggle showing part labels in 3D view Alternar el mostrar etiquetas de partes en la vista 3D Print detailed DOF information Imprimir información detallada de DOF Toggle printing detailed DOF information Alternar la impresión de información detallada de DOF Convert absolute paths of imported parts to relative ones Convertir rutas absolutas de las partes importadas a relativas Converts absolute paths of imported parts to relative ones Convierte rutas absolutas de las partes importadas a relativas Save and exit the active document Guardar y salir del documento activo Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrar proxies de las partes importadas Los ensamblajes A2plus muy antiguos no muestran los iconos correctos para las partes importadas y tienen propiedades obsoletas. Con esta función, puede migrar los viewProviders de partes antiguas importadas al estado más reciente. Después de ejecutar esta función, debería guardar y volver a abrir su archivo de ensamblaje. Migrate proxies of importedParts to recent version Migrar proxies de partes importadas a la versión más reciente Migrate proxies of imported Parts to recent version Migrar proxies de partes importadas a la versión más reciente Make sure you have a backup of your files. Proceed? Asegúrese de tener una copia de seguridad de sus archivos. ¿Proceder? The proxies have been migrated. Los proxies han sido migrados. Please save and reopen this assembly file Por favor, guarde y vuelva a abrir este archivo de ensamblaje Migrate proxies of imported parts Migrar proxies de partes importadas Updating by SubElement-Map: '{}' => '{}' Actualizando mapeo de subelementos: '{}' => '{}' Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. La restricción %s está rota. ¿Eliminar restricción? De lo contrario, verifique si hay un enlace incorrecto. Broken Constraint Restricción rota Removing constraint %s Eliminando restricción %s 3D-Debug contained '{}' vectors Debug 3D contenido '{}' vectores Clean up solver debug output from 3D view Limpiar la salida de depuración del solucionador desde la vista 3D Not existing part(s): Parte(s) no existente(s): Constraints of missing parts removed! ¡Restricciones de partes faltantes eliminadas! Union of Shapes FAILED Unión de formas FALLÓ Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crear o actualizar una forma simple del ensamblaje completo. Todas las partes del ensamblaje se combinan a una sola forma. Esta forma se puede utilizar, por ejemplo, para el módulo TechDraw o impresión 3D. La forma creada se puede encontrar en la vista de árbol. Por defecto es invisible la primera vez. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crear o actualizar una forma simple del ensamblaje completo. Todas las partes del ensamblaje se combinan a una sola forma. Esta forma se puede utilizar, por ejemplo, para el módulo TechDraw o impresión 3D. La forma creada se puede encontrar en la vista de árbol. Por defecto es invisible la primera vez. No visible ImportParts found No se encontraron partes de importación visibles Cannot create SimpleAssemblyShape No se puede crear FormaEnsamblajeSimple No visible Import Parts found No se encontraron partes de importación visibles Union of Shapes passed. 'SimpleAssemblyShape' are created. Unión de formas pasó. 'FormaEnsamblajeSimple' es creada. Create or refresh simple shape of complete assembly Crear o actualizar la forma simple del ensamblaje completo Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crear una hoja de cálculo para pedidos o información logística. La hoja de cálculo creada se puede encontrar en la vista de árbol. Rellene con su información. Esta hoja de cálculo será leída por la función de la lista de partes de A2plus. Create a spreadsheet for ordering or logistics information Crear una hoja de cálculo para pedidos o información logística createUpdateFileList(): ImportPath = {} createUpdateFileList(): RutaImportar = {} Did not update converted part '{}' No se actualizó parte convertida '{}' Do you want to update the selected parts only? ¿Quiere actualizar solo las partes seleccionadas? RECURSIVE UPDATE ACTUALIZACIÓN RECURSIVA Assembly '{}' has been updated! ¡El ensamblaje '{}' ha sido actualizado! Update imports recursively Actualizar las importaciones recursivamente Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Actualizar partes, que han sido importadas al ensamblaje. (Si modifica una parte en un archivo externo, la nueva forma es llevada al ensamblaje por esta función.) Este comando hace esto recursivamente sobre todos los subensamblajes involucrados . Los subensamblajes también son actualizados, de ser necesario. Current Rigid = '{}' Rígido actual = '{}' is Fixed está fijo is not Fixed and has {} DegreesOfFreedom no está fijo y tiene {} grados de libertad Depends on Rigid = {} Depende en rígido = {} DOF Position free with this rigid = {} DOF Posición libre con este rígido = {} DOF Rotation free with this rigid = {} DOF Rotación libre con este rígido = {} failed to open file with None name! ¡no se pudo abrir el archivo sin nombre! file '{}' does not exist! ¡el archivo '{}' no existe! file '{}' is no FCStd file! ¡el archivo '{}' no es un archivo FCStd! Remove faulty constraint '{}' Eliminar restricción defectuosa '{}' The following constraints are broken: Las siguientes restricciones están rotas: Do you want to delete them? ¿Quiere eliminarlas? Delete broken constraints? ¿Eliminar restricciones rotas? FREE LIBRE Fixed Fijo DOFs: {} DOFs:. {} There are {:.0f} dependencies Hay {:.0f} dependencias Hierarchy: Jerarquía: Writing visual hierarchy to: '{}' Escribiendo jerarquía visual a '{}' A2P assembly hierarchy visualization A2p visualización de la jerarquía del ensamblaje FIXED FIJO TARGET POS-ACCURACY :{} EXACTITUD DE POSICIÓN OBJETIVO :{} REACHED POS-ACCURACY :{} EXACTITUD DE POSICIÓN ALCANZADA :{} TARGET SPIN-ACCURACY :{} EXACTITUD DE GIRO OBJETIVO :{} REACHED SPIN-ACCURACY :{} EXACTITUD DE GIRO ALCANZADA :{} SA SPIN-ACCURACY :{} SA EXACTITUD DE GIRO :{} Start Solving System Iniciar sistema de resolución System solved using partial + recursive unfixing Sistema resuelto usando desfijación parcial + recursiva Could not solve system No se pudo resolver el sistema Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Restricciones inconsistentes. No se puede resolver el sistema. ¡Por favor, ejecute la herramienta de búsqueda de conflictos! Constraint mismatch Restricción no coincide The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Las partes resaltadas no fueron movidas. ¡No están restringidas (también sobre restringidas) a una parte fija! Could not move some parts No se pudo mover algunas partes Calculation stopped, no convergency anymore! Cálculo parado, ¡ya no hay convergencia! No convergency anymore, retrying Ya nohay convergencia, reintentando Reached max calculations count: {} Se alcanzó el número máximo de cálculos: {} Before running solver, you have to open an assembly file. Antes de ejecutar el solver, debe abrir un archivo de ensamblaje. Solves constraints Resuelve las restricciones Starting solveConstraints latest script... Iniciar último script solveConstraints ... Import ignored invisible shape: '{}' Importar forma invisible ignorada: '{}' A file must be selected to start this selector. Un archivo debe de ser seleccionado para iniciar este selector. Please open a file and try again. Por favor, abra un archivo e intente de nuevo. A file must be selected to start this selector. Please open a file and try again. Un archivo debe de ser seleccionado para iniciar este selector. Por favor, abra un archivo e intente de nuevo. No parts were selected to update. No se seleccionaron partes para actualizar. Select one part and try again. Seleccione una parte e intente de nuevo. I have limited the number of parts that can be updated to 1. He limitado el número de partes que se pueden actualizar a 1. No parts were selected to update. Select one part and try again. No se seleccionaron partes para actualizar. Seleccione una parte e intente de nuevo. I have limited the number of parts that can be updated to 1. Select one part and try again. He limitado el número de partes que se pueden actualizar a 1. Seleccione una parte e intente de nuevo. Updating Assembly. Actualizando ensamblaje Update complete. Actualización completada All surfaces found Todas las superficies encontradas Update complete: Actualización completa: Total constraints - {} Restricciones totales - {} Repaired constraints - {} Restricciones reparadas - {} Features not found - {} Características no encontradas - {} Updates parts from the A2plus program that has been modified Actualizar partes del banco de trabajo A2plus que ha sido modificadas Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly program. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. Constraint Checker Comprobador de restricciones Status Estado Showing editing part Mostrando la parte en edición Updates parts from the A2plus workbench that has been modified Actualizar partes del banco de trabajo A2plus que ha sido modificadas Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Actualiza el ensamblaje de A2plus cuando las partes se modifican. Para actualizar el ensamblaje, seleccione la parte que ha modificado y presione el icono. Cuando la actualización haya terminado, ejecute el solucionador A2plus para verificar si hay restricciones rotas. Este es un intento de reducir el número de restricciones rotas causadas al modificar una parte del banco de trabajo de ensamblaje Freecad A2plus. Esto registra las restricciones de las superficies emparejadas inmediatamente antes de la actualización e intenta reconectarlos después de la actualización. Si esto falla, puede deshacer esta actualización utilizando el botón deshacer y ejecutar el actualizador de A2plus estándar. To view the constraints, press 'Open Viewer' Para ver las restricciones, presione 'Abrir visor' View the listed constraints in the the Constraint Viewer. Ver las restricciones listadas en el visor de restricciones. Open Viewer Abrir visor Close this form. Cerrar este formulario Close Cerrar A A2plus file must be opened to start this checker Un archivo de A2plus debe de ser abierto para iniciar este comprobador Please open a file and try again Por favor, abra un archivo e intente de nuevo Cannot find any constraints in this file. No se puede encontrar ninguna restricción en este archivo. Checking constraints Comprobando restricciones No constraint errors found No se encontraron errores de restricciones Checking {} of {} Comprobando {} de {} Checking Constraints Comprobando restricciones Checks constraints Comprobar restricciones This checks all constraints. After checking it will list all constraints that it found problems with. Esto comprueba todas las restricciones. Después de comprobar, enumerará todas las restricciones con las que encontró problemas. The list can then be opened in the Constraint viewer. La lista puede ser abierta en el visor de restricciones después. Constraint Viewer Visor de restricciones Labels Etiquetas Open Dialog Abrir diálogo Delete labels Eliminar etiquetas Places of accuracy = {} Lugares de exactitud = {} Open Help Abrir ayuda Broken Constraints Restricciones rotas Suppress Suprimir Import from part Importar desde parte Select a part and import all of the constraints for that part Seleccione una parte e importe todas las restricciones para esa parte Import from Tree Importar desde árbol Copy selected constraints from the Tree Copiar restricciones seleccionadas desde el árbol Clear Table Limpiar tabla Clear the table Limpiar la tabla Attach to Adjuntar a Select the feature to change in table. Select surface to change to. Seleccione la función para cambiar en la tabla. Seleccione la superficie a la cual cambiar. Clear Tree Limpiar árbol Remove search color from tree. Elimine el color de búsqueda del árbol. Find in Tree Encontrar en árbol Finds the constraint in the tree for the select row in table. Encuentra la restricción en el árbol para la fila seleccionada en la tabla. Std Solver Solucionador estándar Same as the solver above. Igual que el solucionador de arriba. Find w label Encontrar etiqueta w Press to toggle a label for selected feature. Presionar para alternar una etiqueta para la característica seleccionada. Close this window Cerrar esta ventana A part feature must be selected in the table Una característica de parte debe de ser seleccionada en la tabla The table has lost focus. Please reselect in the table. La mesa ha perdido el enfoque. Por favor, vuelva a seleccionarla en la mesa. The selected text in the table is not a proper feature name: {} {} El texto seleccionado en la tabla no es nombre adecuado de una característica: {} {} Find Constraint Encontrar restricción CD_Help for Diagnostic tools.pdf CD_Ayuda para herramientas de diagnóstico.pdf Constraint is not in file. Was it deleted? La restricción no está en el archivo ¿Fue eliminada? A file must be opened to start this selector. Please open a file and try again Se debe abrir un archivo para iniciar este selector. Por favro, abra un archivo e intente de nuevo Nothing was selected in the Tree. Nada fue seleccionado en el árbol. There were no constraints selected in the Tree. Select one or more constraints and try again. No se seleccionaron restricciones en el árbol. Seleccione una o más restricciones e intente de nuevo. No parts were selected in the window. No se seleccionaron partes en la ventana. There are no constraints for this part. No hay restricciones para esta parte. There are no constraints between these parts. No hay restricciones entre estas partes. Both parts are fixed. Ambas partes están fijas. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Las superficies solo se pueden reemplazar en columnas 'Part1 Feat' o 'Part2 feat' No feature has been selected No se ha seleccionado característica The constraint can only be moved to another surface of the same part La restricción solo se puede ser movida a otra superficie de la misma parte removeObserver failed in C checker removeObserver falló en comprobador C View and edit selected constraints Ver y editar restricciones seleccionadas Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Visor de restricciones. Puede ver las características a las que se adjunta la restricción, ejecutar una sola restricción o cambiar la característica a la que se adjunta la restricción. Consulte la ayuda para obtener más información. Create Labels Crear etiquetas Add Face Labels Agregue etiquetas de cara Add labels to all of the faces on a selected part Agregue etiquetas a todas las caras en una parte seleccionada Add Edge Labels Agregue etiquetas de arista Add labels to all of the edges on a selected part Agregue etiquetas a todas las aristas en una parte seleccionada Add Vertex Labels Agregue etiquetas de vértice Add labels to all of the vertices on a selected part Agregue etiquetas a todas los vértices en una parte seleccionada Delete Labels Eliminar etiquetas Delete all labels Eliminar todas las etiquetas Face Cara Edge Arista Vertex Vértice One part must be selected. Una parte debe de ser seleccionada Please select One part and try again Por favor, seleccione una parte e intente de nuevo SelObserverOFF by except SelObserverOFF por excepción Use one mouse button to select features Usar un botón del ratón para seleccionar características Use left mouse button to select two features. Do not use the control key. Use el botón izquierdo del mouse para seleccionar dos características. No use la tecla control. No file is opened. You must open an assembly file first. No hay archivo abierto. Debe abrir un archivo de ensamblaje primero. OneButton is ON OneButton está PRENDIDO OneButton is OFF OneButton está APAGADO Warning Advertencia An other assembly workbench for FreeCAD. Otro banco de trabajo de ensamblaje para FreeCAD. Initializing A2plus Workbench v{} Inicializando banco de trabajo A2plus v{} Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Crear una hoja de cálculo con una lista de partes para https://cutlistoptimizer.com/ de este archivo Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crear una hoja de cálculo con un lista de partes para https://cutlistoptimizer.com/ de este archivo. Esta función leerá la hoja de cálculo de #PARTINFO# de todas las partes involucradas del ensamblaje y creará una nueva hoja de cálculo que contiene la lista de partes. Este botón abrirá un cuadro de diálogo con la pregunta: ¿Iterar recursivamente sobre todos los subensamblajes? Respuesta Sí: Todas las partes de todos los subensamblajess son recolectadas a la lista de partes. Respuesta No: Solo las partes dentro del ensamblaje reciente se recogen. A2plus_Constraints Add PointIdentity constraint Agregar restricción PuntoIdentidad Add PointOnLine constraint Agregar restricción PuntoEnLínea Add PointOnPlane constraint Agregar restricción PuntoEnPlano Add SphereCenterIdent constraint Agregar restricción EsferaCentroIdentidad Add CircularEdge constraint Agregar restricción BordeCircular Add AxisCoincident constraint Agregar restricción EjeCoincidente Add AxisParallel constraint Agregar restricción EjeParalelo Add AxisPlaneParallel constraint Agregar restricción EjePlanoParalelo Add AxisPlaneAngle constraint Agregar restricción EjePlanoÁngulo Add AxisPlaneNormal constraint Agregar restricción EjePlanoNormal Add PlanesParallel constraint Agregar restricción PlanosParalelos Add PlaneCoincident constraint Agregar restricción PlanoCoincidente Add AngledPlanes constraint Agregar restricción PlanosConÁngulo Add CenterOfMass constraint Agregar restricción CentroDeMasa reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): Se encontraron restricciones desconocidas: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Todas las restricciones son recalculadas. Recalculate direction of constraints Recalcular la dirección de las restricciones Do you really want to recalculate the directions of all constraints? ¿Realmente desea recalcular las direcciones de todas las restricciones? Re-adjust directions of all constraints Reajustar las direcciones de todas las restricciones Re-adjust directions of all constraints to best fit Reajustar las direcciones de todas las restricciones para el mejor ajuste Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Crear la restricción punto a punto (PuntoIdentidad) Seleccione: 1) Un vértice, un círculo o una esfera (en una parte) 2) un vértice, un círculo o una esfera (en otra parte) Si se selecciona el círculo o la esfera, el centro de característica se tomará como definición de punto. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Crear la restricción de punto en línea (PuntoEnLínea) Seleccione: 1) Un vértice, una esfera o un círculo (en una parte) 2) Un borde lineal/circular, o una cara cilíndrica/cónica (en otra parte) Si se selecciona el borde circular, su eje se tomará como definición de línea. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Crear la restricción de punto contra el plano (PuntoEnPlano) Seleccione: 1) Un vértice, un centro de un círculo o una esfera (en una parte) 2) Un plano (en otra parte) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Crear la restricción de esfera a esfera (EsferaCentroIdentidad) Seleccione: 1) Una superficie esférica, o un vértice (en una parte) 2) Una superficie esférica, o un vértice (en otra parte) Al seleccionar una esfera, su centro se usa como vértice. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Crear la restricción de borde circular (BordeCIrcular) Seleccione: 1) Un borde circular (en una parte) 2) Un borde circular (en otra parte) Al seleccionar un círculo, su centro se usa como vértice. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Crear la restricción de eje a eje (EjeCoincidente) Seleccione: 1) Un borde lineal o cara cilíndrica/cónica (en una parte) 2) Un borde lineal o cara cilíndrica/cónica (en otra parte) El eje no fijo se alineará y se moverá para ser coincidente. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Crear la restricción de ejes-paralelos (EjesParalelos) Seleccione: 1) Un borde lineal/circular o cara cilíndrica/cónica (en una parte) 2) Un borde lineal/circular o cara cilíndrica/cónica (en otra parte) Los ejes solo girarán para ser paralelos, pero no se moverán para ser coincidentes. Si usa el borde circular o la cara cilíndrica/cónica, su eje se tomará como línea. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Crear la restricción de paralelismo de eje a plano (EjePlanoParalelo) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Esta restricción ajusta un eje paralelo a un plano seleccionado. Las partes no se mueven para ser coincidentes. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Crear la restricción angular de eje a plano (EjePlanoÁngulo) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Primero, esta restricción ajusta un eje paralelo a un plano seleccionado. Dentro del siguiente diálogo emergente puede definir un ángulo. Las partes no se mueven para ser coincidentes. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Crear la restricción eje-plano-normal (EjePlanoNormal) Seleccione: 1) Un borde lineal o eje de cilindro/cono (en una parte) 2) Una cara de un plano (en otra parte) Esta restricción ajusta un eje vertical a un plano seleccionado. Las partes no se mueven para ser coincidentes. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Crear la restricción de planos-paralelismo (PlanosParalelos) Seleccione: 1) Un plano (en una parte) 2) Un plano (en otra parte) Los planossolo girarán para ser paralelos, pero no serán movidos para ser coincidentes. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Crear la restricción de plano-coincidente (PlanoCoincidente) Seleccione: 1) Un plano (en una parte) 2) Un plano(en otra parte) Es posible cambiar el desplazamiento en el editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Crear la restricción de planos angulados (PlanosConÁngulo) Seleccione: 1) Un plano (en una parte) 2) Un plano (en otra parte) Después de establecer esta restricción al principio, el ángulo entre ambos planos se ha calculado y almacenado en la entrada 'ángulo' en el editor de objetos. El ángulo se puede cambiar en el editor de objetos. Evite usar ángulos es igual a 0 y 180 grados; - podría obtener resultados extraños. Para eso, es mejor usar la restricción de PlanosParalelos. Button gets active after correct selection. El botón se activa después una selección correcta. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Crear la restricción de centro de masa (CentroDeMasa) Seleccione: 1) Una cara o un borde cerrado (en una parte) 2) Una cara o un borde cerrado (en otra parte) Es posible cambiar el desplazamiento en el editor de objetos. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Convertir una parte, creada con otro WB, a una parte completamente funcional de A2plus. Después de convertir, se pueden aplicar restricciones. También puede duplicar la parte convertida. Para editar una parte convertida, haga clic en en el botón editar y siga las instrucciones que se muestran en la pantalla. Esta función es útil, si desea usar, por ejemplo, elementos de sujeción dentro de este banco de trabajo. Convert a part to A2plus Convertir una parte a A2plus Please select only visible parts! ¡Por favor, seleccione sólo partes visibles! Conversion Aborted Conversión abortada A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Herramienta de búsqueda de conflictos: Resuelve restricciones en conflicto tratando de resolverlas una tras otra. Searching for conflicting constraints Buscando restricciones en conflicto There are no a2p constraints within this document. No hay restricciones A2p en este documento. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? El siguiente par de restricciones está en conflicto con restricciones previamente definidas: restricción : {} con espejo: {} El par de restricción pertenece a los objetos: objeto 1: {} objeto 2: {} ¿Desea eliminar este par de restricciones? Identify conflicting constraints Identificar restricciones en conflicto Gui::Dialog::DlgSettingsA2Plus A2plus settings Ajustes de A2plus User interface settings Ajustes de la interfaz de usuario Adds a creation button for every constraint type to the toolbar Agrega un botón de creación para cada tipo de restricción a la barra de herramientas Show constraints in toolbar Mostrar restricciones en la barra de herramientas Use native file manager of your OS Usar el administrador de archivos nativo de tu sistema operativo Behavior when updating imported parts Comportamiento al actualizar partes importadas All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Todas las partes del ensamblaje se abrirán en FreeCAD para ser reconstruidas utilizando los valores de las hojas de cálculo Recalculate imported parts before updating them (experimental) Recalcular partes importadas antes de actualizarlas (experimental) Opens all subassemblies recursively to update them Abre todos los subensamblajes recursivamente para actualizarlos Enable recursive update of imported parts Habilitar actualización recursiva de partes importadas While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Mientras se importan partes al ensamblaje, los nombres topológicos se escriben en la propiedad "mux Info". Cuando las partes son actualizadas más tarde las propiedades "Sub Elementx" de las restricciones se actualizarán de acuerdo con la topología "mux Info". Use experimental topological naming Usar nombrado topológico experimental Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Usar ajustes de color y transparencia de las partes importadas. Nota: Para el banco de trabajo PartDesign, solo funciona para Cuerpo. Inherit per face color and transparency from parts and subassemblies (experimental) Heredar por cara, color y transparencia de partes y subensamblajes (experimental) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Los datum/formas construcción invisibles serán ocultados. Nota: No se deben conectar restricciones a datum/formas de construcción en ensamblajes superiores u otros subensamblajes. De lo contrario, puede romper el ensamblaje. All imported parts will directly be put together as union. Todas las partes importadas serán juntadas como unión. Do not import invisible shapes (for expert users) No importar formas invisibles (para usuarios expertos) Use solid union for importing parts and subassemblies (experimental) Utilizar unión sólida para importar piezas y subensamblajes (experimental) Storage of files Almacenamiento de archivos Use relative paths for imported parts Usar rutas relativas para las partes importadas Use absolute paths for imported parts Usar rutas absolutas para las partes importadas Specify the project folder in the field below Especificar la carpeta del proyecto en el campo de abajo All files are in this project folder: Todos los archivos están en esta carpeta del proyecto: Default solver behavior Comportamiento por defecto del solucionador Solve automatically if a constraint property is changed Resolver automáticamente si se cambia una propiedad de restricción Default solving method Método de resolución predeterminado Solver tries to move all parts at once in direction to a fixed part El solucionador intenta mover todas las partes a la vez en la dirección a una pieza fija Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Usar solucionador "magnético", resolviendo todas las partes a la vez (para ensamblajes dinámicos) All parts will be fixed to the positions where they were created Todas las partes se fijarán en las posiciones donde fueron creadas Force fixed position to all imports Forzar posición fija a todas las importaciones Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. El solucionador comienza con una parte fija y una parte restringida a ella. No se calculan todas las demás partes. Si una solución es encontrada, la siguiente parte restringida es añadida para el cálculo y así sucesivamente. Use solving of partial systems (recommended for static assemblies) Usar la resolución de sistemas parciales (recomendado para ensamblajes estáticos) Workbench Constraint Restricción Solver Solucionador View Ver Misc Miscelánea Diagnostic Diagnóstico ================================================ FILE: translations/A2plus_fr.ts ================================================ A2p_BoM Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No active document found! Aucun document actif trouvé ! You have to open a FCStd file first. Il faut d'abord ouvrir un fichier FCStd. Please save before generating a parts list! Save now? Veuillez enregistrer avant de générer une liste de pièces! Enregistrez maintenant? Save document? Enregistrer ce document ? Parts list generation aborted! Génération de la liste des pièces annulée ! You have to save the assembly file first. Vous devez d'abord enregistrer le fichier de l'assemblage. Do you want to iterate recursively over all included subassemblies? Do you want to iterate recursively over all included subassemblies? Create a spreadsheet with a parts list of this file Créer une feuille de calcul avec une liste des parties de ce fichier PARTINFO PARTSLIST IDENTNO DESCRIPTION SUPPLIER SUPP.IDENTNO SUPP.DESCRIPTION (FILENAME) BOM ERROR: Could not open sourcefile '{}' POS QTY #PARTSLIST# spreadsheet has been created #PARTINFO# spreadsheet has been created #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus Updating Assembly. Constraint Checker Showing editing part Import Objects Select objects to import Import Importing Select a shape to be imported Cancel Choose Import of a shape reference aborted by user LCS_Collection Add shapes from an external file to the assembly Add shapes from an external file Ajouter des formes à partir d'un fichier extérieur A part can only be imported from a FreeCAD '*.FCStd' file Value Error Erreur valeur No visible Part to import found. Aborting operation Restore transparency to active document objects Restaurer la transparence des objets de document actif Restore transparency to active document objects Restore transparency to active document objects No active document found Aucun document actif Add a part from an external file to the assembly Ajoute une partie d'un fichier externe à l'assemblage Add a part from an external file Ajouter une pièce d'un fichier externe First create an empty file and save it under desired name Créez d'abord un fichier vide et sauvegardez-le sous le nom souhaité Unnamed document Documents sans nom Before inserting first part, please save the empty assembly to give it a name Before inserting first part, please save the empty assembly to give it a name Select FreeCAD document to import part from Select FreeCAD document to import part from Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. Import Error Erreur d'import Imported Object is empty/none Before updating parts, you have to open an assembly file. Avant de mettre à jour les pièces, vous devez ouvrir un fichier de montage. Do you want to update only the selected parts? Voulez-vous ne mettre à jour que les pièces sélectionnées ? ASSEMBLY UPDATE ASSEMBLY UPDATE Source file not found Le fichier source est introuvable Unable to find {} {} introuvable Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Update parts imported into the assembly Mettre à jour les pièces importées dans l'assembleur Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold &quot;Shift&quot; for doing this multiple times. Create duplicate of a part Créer un dupliqué d'une pièce Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Information Information Please edit the highlighted object. When finished, update the assembly Please edit the highlighted object. When finished, update the assembly Cannot find the local source object. Has it been deleted? Cannot find the local source object. Has it been deleted? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder File error! Erreur fichier ! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Editing a STEP file as '*.FCStd' file Please export the saved file as '.step' Edit an imported part (open linked FCStd file) Edit an imported part (open linked FCStd file) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Move the selected part Déplacer la section sélectionnée Animation problem detected Problème d'animation détectée Use system undo if necessary. Utilisez le système d'annulation si nécessaire. Invalid selection Sélection non valable A2plus will not move a part with property A2plus ne déplacera pas une pièce avec propriété Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Move the selected part under constraints Move the selected part under constraints Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Selection Error Erreur sélection Select exactly 1 part Sélectionner exactement 1 pièce Info No constraints refer to '%s' Delete {}'s constraint(s): - {}? Delete constraints? Effacer les contraintes ? Deleting part's constraints Deleting part's constraints Delete all constraints of selected parts Supprimer toutes les contraintes de la sélection Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Highlight both constrained parts Surligner les deux éléments contraints Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Show only selected elements or all if none is selected Show only selected elements or all if none is selected Toggle transparency of assembly Activer/désactiver la transparence de l'assembly Toggles transparency of assembly Active la transparence de l'assemblage Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Toggle auto solve Basculer la résolution auto Toggle partial processing Activer/désactiver traitement partiel Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repair the tree view if it is somehow damaged Repair the tree view if it is somehow damaged Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Flip direction of last constraint Basculer la direction de la dernière contrainte Command Aborted Flip aborted since no a2p constraints in active document. Generate HTML file with detailed constraining structure Generate HTML file with detailed constraining structure Generates HTML file with detailed constraining structure Generates HTML file with detailed constraining structure Nothing found to be labeled! Aucune étiquette trouvée ! This document does not contain A2p-objects This document does not contain A2p-objects Show part labels in 3D view Afficher les étiquettes de pièces en vue 3D Toggle showing part labels in 3D view Toggle showing part labels in 3D view Print detailed DOF information Print detailed DOF information Toggle printing detailed DOF information Toggle printing detailed DOF information No active document found! No active document found! You have to open an assembly file first. You have to open an assembly file first. Convert absolute paths of imported parts to relative ones Convertir les chemins absolus des pièces importées en chemins relatifs Converts absolute paths of imported parts to relative ones Convertit les chemins absolus des pièces importées en chemins relatifs Save and exit the active document Enregistrez et quittez le document Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrate proxies of importedParts to recent version Migrate proxies of importedParts to recent version Make sure you have a backup of your files. Proceed? Make sure you have a backup of your files. Proceed? The proxies have been migrated. The proxies have been migrated. Please save and reopen this assembly file Please save and reopen this assembly file Migrate proxies of imported parts Migrate proxies of imported parts Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Broken Constraint Removing constraint %s Clean up solver debug output from 3D view Clean up solver debug output from 3D view Clean up solver debug output from 3D view Nettoyer la sortie de débogage du solveur en 3D Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Cannot create SimpleAssemblyShape Impossible de créer la forme SimpleAssemblyShape No visible ImportParts found Aucune partie visible trouvée Union of Shapes FAILED Create or refresh simple shape of complete assembly Créer ou actualiser la forme simple de l'assemblage Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Please save before generating a parts list! Save now? Veuillez enregistrer avant de générer une liste de pièces! Enregistrez maintenant? Save document? Enregistrer ce document ? Parts list generation aborted! Génération de la liste des pièces annulée ! You have to save the assembly file first. Vous devez d'abord enregistrer le fichier de l'assemblage. Do you want to iterate recursively over all included subassemblies? Do you want to iterate recursively over all included subassemblies? Create a spreadsheet with a parts list of this file Créer une feuille de calcul avec une liste des parties de ce fichier Constraint properties Propriétés de contraintes Direction aligned opposed none Flip direction Offset Set Zero Flip sign Angle Angle in the range 0 - 180 degrees Round Round angle to multiples of 5 Perpendicular Adds/deletes 90 degrees Lock Rotation False True Toggle Delete this constraint Delete Solve constraints Résoudre des contraintes Solve Accept the settings Accept Constraint does not exist anymore La contrainte n'existe pas Constraint has already been deleted La contrainte a déjà été supprimé Confirmation required La confirmation requise Really delete this constraint? Vraiment supprimer cette contrainte? Exit and delete new constraint? Quitter et supprimer une nouvelle contrainte? Values changed! Accept Constraint? Les valeurs ont été modifiées ! Accepter la contrainte ? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Constraint Tools Outils de contrainte Help Constraint tools help Aide pour les outils de contraintes Opens a dialog to define constraints Ouvre une boîte de dialogue à définir des contraintes Define constraints Définition des contraintes Edit selected constraint Select a constraint in the treeview and hit this button Modifier la contrainte sélectionnée Sélectionnez une contrainte dans l'arborescence et cliquez sur ce bout Selection Error! Please select exact one constraint first. Veuillez d'abord sélectionner une contrainte exact. Edit selected constraint Modifier les contraintes sélectionnées 3D-Debug contained '{}' vectors Did not update converted part '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. RECURSIVE UPDATE RECURSIVE UPDATE A part can only be imported from a FreeCAD '*.fcstd' file A part can only be imported from a FreeCAD '*.fcstd' file Update imports recursively Mettre à jour les importations en récursif Remove faulty constraint '{}' The following constraints are broken: Les contraintes suivantes sont brisées : Do you want to delete them? Delete broken constraints? Supprimer les contraintes brisées? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Constraint mismatch Discordance de contrainte The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Could not move some parts Impossible de déplacer des pièces Before running solver, you have to open an assembly file. Solves constraints Résolution des contraintes Import ignored invisible shape: '{}' You have to open a FCStd file first. Il faut d'abord ouvrir un fichier FCStd. Update complete. All surfaces found Update complete: Total constraints - {} Repaired constraints - {} Features not found - {} Status To view the constraints, press 'Open Viewer' View the listed constraints in the the Constraint Viewer. Open Viewer Close this form. Close A A2plus file must be opened to start this checker Please open a file and try again Cannot find any constraints in this file. Checking constraints No constraint errors found Checking {} of {} Checking Constraints Checks constraints This checks all constraints. After checking it will list all constraints that it found problems with. The list can then be opened in the Constraint viewer. Constraint Viewer Labels Open Dialog Delete labels Places of accuracy = {} Open Help Broken Constraints Suppress Import from part Select a part and import all of the constraints for that part Import from Tree Copy selected constraints from the Tree Clear Table Clear the table Attach to Select the feature to change in table. Select surface to change to. Clear Tree Remove search color from tree. Find in Tree Finds the constraint in the tree for the select row in table. Std Solver Same as the solver above. Find w label Press to toggle a label for selected feature. Close this window A part feature must be selected in the table The table has lost focus. Please reselect in the table. The selected text in the table is not a proper feature name: {} {} Find Constraint CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? A file must be opened to start this selector. Please open a file and try again Nothing was selected in the Tree. There were no constraints selected in the Tree. Select one or more constraints and try again. No parts were selected in the window. There are no constraints for this part. There are no constraints between these parts. Both parts are fixed. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' No feature has been selected The constraint can only be moved to another surface of the same part removeObserver failed in C checker View and edit selected constraints Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Create Labels Add Face Labels Add labels to all of the faces on a selected part Add Edge Labels Add labels to all of the edges on a selected part Add Vertex Labels Add labels to all of the vertices on a selected part Delete Labels Delete all labels Face Edge Vertex One part must be selected. Please select One part and try again SelObserverOFF by except Use one mouse button to select features Use left mouse button to select two features. Do not use the control key. No file is opened. You must open an assembly file first. OneButton is ON OneButton is OFF Warning An other assembly workbench for FreeCAD. An other assembly workbench for FreeCAD. Initializing A2plus Workbench v{} Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Flip direction between 'aligned' and 'opposed' Set 0 to 'Offset' field Flip sign between '+' and '-' in 'Offset' field Toggle between 'False' and 'True' Constraint Tools help Aide pour les outils de contraintes Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Opens a dialog to define constraints Select a constraint in the treeview and hit this button. Union of Shapes passed. 'SimpleAssemblyShape' are created. Errors occurred during processing of {} Dependencies between {} - {}, type {} Imported Object is empty/none Unable to find '{}' Updating by SubElement-Map: '{}' => '{}' Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Create a spreadsheet for ordering or logistics information Créer une feuille de calcul pour les informations de commande ou de logistique createUpdateFileList(): ImportPath = {} Do you want to update the selected parts only? Assembly '{}' has been updated! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Current Rigid = '{}' is Fixed is not Fixed and has {} DegreesOfFreedom Depends on Rigid = {} DOF Position free with this rigid = {} DOF Rotation free with this rigid = {} failed to open file with None name! file '{}' does not exist! file '{}' is no FCStd file! FREE Fixed DOFs: {} There are {:.0f} dependencies Hierarchy: Writing visual hierarchy to: '{}' A2P assembly hierarchy visualization FIXED TARGET POS-ACCURACY :{} REACHED POS-ACCURACY :{} TARGET SPIN-ACCURACY :{} REACHED SPIN-ACCURACY :{} SA SPIN-ACCURACY :{} Start Solving System System solved using partial + recursive unfixing Could not solve system Reached max calculations count: {} Starting solveConstraints latest script... Not existing part(s): Pièce(s) existante(s): Constraints of missing parts removed! Contraintes des pièces manquantes retirées ! Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Add PointOnLine constraint Add PointOnPlane constraint Add SphereCenterIdent constraint Add CircularEdge constraint Add AxisCoincident constraint Add AxisParallel constraint Add AxisPlaneParallel constraint Add AxisPlaneAngle constraint Add AxisPlaneNormal constraint Add PlanesParallel constraint Add PlaneCoincident constraint Add AngledPlanes constraint Add CenterOfMass constraint reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): All constraints are recalculated. Recalculate direction of constraints Recalculer l'orientation des contraintes Do you really want to recalculate the directions of all constraints? Voulez-vous vraiment recalculer les directions de toutes les contraintes ? Re-adjust directions of all constraints Réajuster la direction de toutes les contraintes Re-adjust directions of all constraints to best fit Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Button gets active after correct selection. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. A2plus_MuxAssembly Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Cannot create SimpleAssemblyShape Impossible de créer la forme SimpleAssemblyShape No visible ImportParts found Aucune partie visible trouvée Create or refresh simple shape of complete assembly Créer ou actualiser la forme simple de l'assemblage No active document found! Aucun document actif n'a été trouvé! You have to open an assembly file first. Vous devez d'abord ouvrir un fichier assemblé. A2plus_appendMenu Constraint Contrainte Solver Solveur View Voir Misc Divers A2plus_constraintDialog Really delete this constraint? Vraiment supprimer cette contrainte? Constraint does not exist anymore La contrainte n'existe pas Constraint has already been deleted La contrainte a déjà été supprimé Confirmation required La confirmation requise Exit and delete new constraint? Quitter et supprimer une nouvelle contrainte? Information Informations Values changed! Accept Constraint? Les valeurs ont été modifiées ! Accepter la contrainte ? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Constraint tools help Aide pour les outils de contraintes Constraint properties Propriétés de contraintes Constraint Tools Outils de contrainte Opens a dialog to define constraints Ouvre une boîte de dialogue à définir des contraintes Define constraints Définition des contraintes Edit selected constraint Select a constraint in the treeview and hit this button Modifier la contrainte sélectionnée Sélectionnez une contrainte dans l'arborescence et cliquez sur ce bout Selection Error ! Erreur lors de la sélection! Please select exact one constraint first. Veuillez d'abord sélectionner une contrainte exact. Edit selected constraint Modifier les contraintes sélectionnées A2plus_constraintServices Recalculate direction of constraints Recalculer l'orientation des contraintes Do you really want to recalculate the directions of all constraints? Do you really want to recalculate the directions of all constraints? Re-adjust directions of all constraints Réajuster la direction de toutes les contraintes Re-adjust directions of all constraints to fit best Ré-ajuster les directions de toutes les contraintes pour correspondre au mieux A2plus_constraintcommands Add pointIdentity constraint Ajouter une contrainte point Identity Add pointOnLine constraint Ajouter une contrainte de pointOnLine Add pointOnPlane constraint Ajouter une contrainte point OnPlane Add sphereCenterIdent constraint Ajouter une contrainte sphereCenter Add circularEdge constraint Ajouter des contraintes circularEdge Add axis Coincident constraint Ajouter une contrainte de Coincident Add axisParallel constraint Ajouter une contrainte axisParallelle Add axisPlaneParallel constraint Ajouter la contrainte axisPlaneParallel Add axisPlaneAngle constraint Ajouter une contrainte axisPlaneAnggle Add axisPlaneNormal constraint Ajouter une contrainte axisPlaneNormal Add planesParallel constraint Ajouter la contrainte planesParallèle Add planeCoincident constraint Ajouter la contrainte planeCoincident Add angledPlanes constraint Ajouter une contrainte d'angledPlanes Add centerOfMass constraint Ajouter une contrainte au centreDeMasse A2plus_constraints Create the point-to-point constraint (pointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) Button gets active after correct selection. Crée la contrainte point à point (pointIdentity) Sélectionnée : 1) Un sommet, un cercle, ou une sphère (sur une partie) 2) Un sommet, un cercle ou une sphère (sur une autre partie) Le bouton est actif après une sélection correcte. Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry "angle" in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry &quot;angle&quot; in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Convertissez une pièce, créée avec un autre WB, en une pièce A2plus entièrement fonctionnelle. Après la conversion, des contraintes peuvent être appliquées. Vous pouvez également dupliquer la partie convertie. Pour éditer une pièce convertie, appuyez sur le bouton d'édition et suivez les instructions affichées à l'écran. Cette fonction est utile si vous souhaitez utiliser par ex. fixations dans cet établi. Convert a part to A2plus Convertir une partie en A2plus Please select only visible parts! Veuillez ne sélectionner que les pièces visibles ! Conversion Aborted Conversion abandonnée A2plus_lib Not existing part(s): Pièce(s) existante(s): Constraints of missing parts removed! Contraintes des pièces manquantes retirées ! A2plus_partinformation Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. No active document found! Aucun document actif! You have to open a FCStd file first. Il faut d'abord ouvrir un fichier FCStd. Create a spreadsheet for ordering or logistics information Create a spreadsheet for ordering or logistics information A2plus_recursiveUpdatePlanner Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Do you want to update only the selected parts? Do you want to update only the selected parts? RECURSIVE UPDATE RECURSIVE UPDATE A part can only be imported from a FreeCAD '*.fcstd' file A part can only be imported from a FreeCAD '*.fcstd' file Update imports recursively Mettre à jour les importations en récursif A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another There are no a2p constraints within this document. There are no a2p constraints within this document. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? Searching for conflicting constraints Recherche de contraintes conflictuelles Identify conflicting constraints Identifier les contraintes contradictoires A2plus_solversystem An other assembly workbench for FreeCAD. An other assembly workbench for FreeCAD. The following constraints are broken: Les contraintes suivantes sont brisées : Do you want to delete them ? Voulez-vous les effacer ? Delete broken constraints? Supprimer les contraintes brisées? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool ! Constraints inconsistent. Cannot solve System. Please run the conflict finder tool ! Constraint mismatch Discordance de contrainte The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Could not move some parts Impossible de déplacer des pièces Solve constraints Résoudre des contraintes Solves constraints Résolution des contraintes Gui::Dialog::DlgSettingsA2Plus A2plus settings Paramètres A2plus User interface settings Paramètres de l'interface utilisateur Adds a creation button for every constraint type to the toolbar Ajoute un bouton de création pour chaque type de contrainte à la barre d'outils Show constraints in toolbar Afficher les contraintes dans la barre d'outils Use native file manager of your OS Utilisez le gestionnaire de fichiers natif de votre système d'exploitation Behavior when updating imported parts Comportement lors de la mise à jour des pièces importées All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Toutes les pièces de l'assemblage seront ouvertes dans FreeCAD pour être reconstruites à l'aide des valeurs des feuilles de calcul Recalculate imported parts before updating them (experimental) Recalculer les pièces importées avant de les mettre à jour (expérimental) Opens all subassemblies recursively to update them Ouvre tous les sous-ensembles récursivement pour les mettre à jour Enable recursive update of imported parts Activer la mise à jour récursive des pièces importées While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Lors de l'importation de pièces dans l'assemblage, les noms topologiques sont écrits dans la propriété &quot;mux Info&quot;. Lors de la mise à jour ultérieure des pièces, les propriétés &quot;Sub Elementx&quot; des contraintes seront mises à jour en fonction de la topologie &quot;mux Info&quot;. Use experimental topological naming Utiliser la dénomination topologique expérimentale Use color and transparency settings from imported parts Utiliser les paramètres de couleur et de transparence des pièces importées Inherit per face color and transparency from parts and subassemblies (experimental) Héritage de la couleur et de la transparence par face des pièces et des sous-assemblages (expérimental) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Les formes de référence/construction invisibles seront masquées. Remarque : Aucune contrainte ne doit être connectée aux formes de référence/construction dans les sous-assemblages supérieurs ou autres. Sinon, vous pouvez casser l'assemblage. All imported parts will directly be put together as union. Toutes les pièces importées seront directement assemblées en tant qu’union. Do not import invisible shapes (for expert users) Ne pas importer de formes invisibles (pour les utilisateurs experts) Use solid union for importing parts and subassemblies (experimental) Utiliser l'union solide pour importer des pièces et des sous-assemblages (expérimental) Storage of files Stockage de fichiers Use relative paths for imported parts Utiliser des chemins relatifs pour les pièces importées Use absolute paths for imported parts Utiliser des chemins absolus pour les pièces importées Specify the project folder in the field below Spécifiez le dossier du projet dans le champ ci-dessous All files are in this project folder: Tous les fichiers sont dans ce dossier de projet : Default solver behavior Comportement par défaut du solveur Solve automatically if a constraint property is changed Résoudre automatiquement si une propriété de contrainte est modifiée Default solving method Méthode de résolution par défaut Solver tries to move all parts at once in direction to a fixed part Le solveur essaie de déplacer toutes les pièces à la fois dans la direction d'une pièce fixe Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Utiliser un solveur &quot;magnétique&quot;, résolvant toutes les pièces à la fois (pour les assemblages dynamiques) All parts will be fixed to the positions where they were created Toutes les pièces seront fixées aux positions où elles ont été créées Force fixed position to all imports Forcer une position fixe à toutes les importations Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. Le solveur commence par une partie fixe et une partie contrainte à celle-ci. Toutes les autres parties ne sont pas calculées. Si une solution peut être trouvée, la pièce contrainte suivante est ajoutée pour le calcul et ainsi de suite. Use solving of partial systems (recommended for static assemblies) Utiliser la résolution de systèmes partiels (recommandé pour les assemblages statiques) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Utilisez les paramètres de couleur et de transparence des pièces importées. Remarque : pour WB PartDesign, cela ne fonctionne que pour le corps. Workbench Constraint Contrainte Solver Solveur View Voir Misc Divers Diagnostic Diagnostique ================================================ FILE: translations/A2plus_it.ts ================================================ A2p_BoM BOM ERROR: Could not open sourcefile '{}' ERRORE-LISTA: Non si può aprire il file sorgente '{}' POS POS QTY QTA #PARTSLIST# spreadsheet has been created #LISTA PARTI#foglio elettronico creato PARTINFO INFO PARTI PARTSLIST LISTA PARTI IDENTNO N. IDENT DESCRIPTION DESCRIZIONE SUPPLIER FORNITORE SUPP.IDENTNO N. IDENT FORNITORE SUPP.DESCRIPTION DESCRIZIONE FORNITORE (FILENAME) (NOMEFILE) #PARTINFO# spreadsheet has been created #INFO PARTI#foglio elettronico creato #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus A file must be selected to start this selector. Bisogna selezionare un file per usare questo selettore. Please open a file and try again. Per favore apri un file e prova ancora. No parts were selected to update. Nessuna parte selezionata da aggiornare. Select one part and try again. Seleziona una parte e prova ancora. I have limited the number of parts that can be updated to 1. Ho limitato ad 1 il numero di parti che possono essere aggiornate. Updating Assembly. Aggiornamento assieme. Update complete. Aggiornamento completo. All surfaces found Trovate tutte le superfici Update complete: Aggiornamento completo: Total constraints - {} Vincoli totali - {} Repaired constraints - {} Ripara vincoli - {} Features not found - {} Funzionalità non trovate - {} Status Stato Showing editing part Mostra la parte sotto modifica Updates parts from the A2plus program that has been modified Aggiorna parti dal programma A2plus che è stato modificato Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Aggiorna l'assieme A2plus quando le parti sono modificate. Per aggiornare l'assieme seleziona la parte che hai modificato e premi l'icona. Quando l'aggiornamento è finito lancia il Solutore A2plus per verificare se ci sono vincoli inconsistenti. Questo è un tentativo di ridurre il numero di vincoli interrotti causato quando si modifica una parte dell'assime. Registra le superfici accoppiate da vincoli prima dell'aggiornamento e prova a riconnetterle dopo. Se fallisce puoi annullare questo aggiornamento usando il pulsante annulla e lanciando l'aggiornamento standard di A2plus. Import Objects Importazione oggetti Select objects to import Seleziona oggetti da importare Import Importa Importing Importazione Select a shape to be imported seleziona una forma da importare Cancel Annulla Choose Scegli Import of a shape reference aborted by user Importazione di riferimento di forma interrotto dall'utente LCS_Collection Collezione LCS Add shapes from an external file to the assembly Aggiungi forme da un file esterno all'assieme Add shapes from an external file Aggiungi forme da un file esterno No visible Part to import found. Aborting operation Non è stata trovata alcuna parte visibile da importare. Operazione interrotta Imported Object is empty/none L'oggetto importato è nullo/vuoto Restore transparency to active document objects Ripristina la trasparenza su oggetti del documento attivo Restore transparency to active document objects Ripristina la trasparenza su oggetti del documento attivo Add a part from an external file to the assembly Add a part from an external file to the assembly Add a part from an external file Aggiungi una parte da un file esterno First create an empty file and save it under desired name Prima crea un file vuoto e salvalo col nome desiderato Unnamed document Documento senza nome Before inserting first part, please save the empty assembly to give it a name Prima di inserire la prima parte salva l'assieme vuoto in un file Select FreeCAD document to import part from Seleziona un documento FreeCAD da cui importare una parte Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Formati supportati (*.FCStd *.fcstd *.stp *.step);;Tutti i file (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. La parte che cerchi di importare è salvata fuori dalla cartella di progetto! Controlla le preferenze A2plus. Import Error Errore importazione Imported Object is empty/none L'oggetto importato è nullo/vuoto ASSEMBLY UPDATE AGGIORNA ASSIEME Do you want to update only the selected parts? Vuoi aggiornare solo le parti selezionate? Source file not found File sorgente non trovato Unable to find '{}' Impossibile trovare '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Aggiorna le parti che sono state importate nell'assieme. (Se modifichi una parte in un file esterno con questa funzione si aggiorna la nuova forma nell'assieme.) Update parts imported into the assembly Aggiorna le parti importate nell'assieme Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Fa il duplicato di una parte già importata nell'assieme. Seleziona una parte importata e premi questo pulsante. Verrà creata una copia che può essere posizionata con il mouse. Tieni premuto &quot;Shift&quot; per ripetere molte volte. Create duplicate of a part Crea il duplicato di una parte Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Modifica una parte importata. Seleziona una parte importata e premi questo pulsante. Il file FCStd appropiato, collegato a questa parte sarà apertoe potrai modificare questa parte direttamente. Dopo la modifica e il salvataggio devi usare la funzione 'aggiorna parti importate' per vedere la nuova forma nell'assieme. Information Informazione Please edit the highlighted object. When finished, update the assembly Per favore modifica l'oggetto evidenziato. Quando hai finito aggiorna l'assieme Cannot find the local source object. Has it been deleted? Non posso trovare l'oggetto sorgente locale. Lo hai eliminato? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Vuoi modificare un file che non si trova nella cartella del progetto. Questo non è permesso quando è impostata la preferenza: 'Usa cartella di progetto' File error! Errore di file! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Modifica un file STEP come '*.FCStd'. Per favore esporta il file salvato come '.step' Edit an imported part (open linked FCStd file) Modifica una parte importata (apri il file FCStd collegato) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Muovi la parte selezionata. Seleziona una parte e premi questo pulsante. La parte sarà mossa vicino al mouse. Se la parte è vincolata ritornerà alla soluzione successiva dell'assieme. Move the selected part Muovi la parte selezionata Animation problem detected Scoperto problema di animazione Use system undo if necessary. Usa annulla di sistema se necessario. Invalid selection Selezione non valida A2plus will not move a part with property A2plus non muoverà una parte con proprietà Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Muovi la parte sotto le regole dei vincoli. 1) Premi questo pulsante 2) Clicca una parte che resterà attaccata al cursore del mouse e verrà mossa 3) Clicca ancora (o premi ESC) e il comando finisce Move the selected part under constraints Muovi la parte selezionata sotto vincoli Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Elimina tutti i vincoli della parte selezionata. Seleziona esattamente una parte e premi questo pulsante. Appare una finestra di conferma che mostra tutti i vincoli relativi alla parte. Dopo la conferma tutti i vincoli relativi sono cancellati in una volta. Selection Error Errore di selezione Select exactly 1 part Seleziona esattamente 1 parte Info Info No constraints refer to '%s' Nessun vincolo si riferisce a '%s' Delete {}'s constraint(s): - {}? Elimina vincolo(i): di {} - {}? Delete constraints? Elimina vincoli? Deleting part's constraints Elimina vincoli della parte Delete all constraints of selected parts Elimina tutti i vincoli delle parti selezionate Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Evidenzia entrambe le parti che sono relative al vincolo selezionato. Seleziona un vincolo dentro la vista elbero e premi questo pulsante. L'intero assieme è commutato al modo trasparente e puoi ispezionare il vincolo desiderato. Highlight both constrained parts Evidenzia entrambe le parti vincolate Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Mostra solo gli elementi selezionati o tutti se non c'è selezione. Seleziona una o più parti che sono le uniche che vuoi vedere in un assieme grande. Premi questo pulsante e tutte le altre parti verranno rese invisibili. Se non selezioni alcunché e premi il pulsante tutte le parti invisibili saranno nuovamente visibili. Show only selected elements or all if none is selected Mostra solo gli elementi selezionati o tutti se non c'è selezione Toggle transparency of assembly Attiva/disattiva trasparenza assieme Toggles transparency of assembly Attiva/disattiva trasparenza assieme Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Attiva/disattiva Risolutore automatico Premendo questo pulsante puoi abilitare o disabilitare la risoluzione automatica dei vincoli dopo che un vincolo è stato modificato. Se la risoluzione automatica è disabilitata devi azionarla manualmente premendo il pulsante Risolutore Toggle auto solve Attiva/disattiva risolutore automatico Toggle partial processing Attiva/disattiva elaborazione parziale Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Ripara la vista albero se qualcosa è danneggiato. Dopo aver premuto questo pulsante i vincoli verranno raggruppati di nuovo sotto le parti corrispondenti. Repair the tree view if it is somehow damaged Ripara la vista albero se qualcosa è danneggiato Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Scambia direzione dell'ultimo vincolo. Se ò'ultimo vincolo definito ha una proprietà 'direzione' il suo valore sarà scambiato tra 'allineata' e 'opposta' Flip direction of last constraint Scambia direzione dell'ultimo vincolo Command Aborted Comando interrotto Flip aborted since no a2p constraints in active document. Scambio interrotto perché non ci sono vincoli nel documento attivo. Generate HTML file with detailed constraining structure Genera file HTML con una struttura vincoli dettagliata Generates HTML file with detailed constraining structure Genera file HTML con una struttura vincoli dettagliata Nothing found to be labeled! Niente da etichettare! This document does not contain A2p-objects Questo documento non contiene oggetti A2p Show part labels in 3D view Mostra etichette nella vista 3D Toggle showing part labels in 3D view Attiva/disattiva visualizzazione delle etichette parti nella vista 3D Print detailed DOF information Stampa informazioni DOF dettagliate Toggle printing detailed DOF information Attiva/disattiva la stampa di informazioni dettagliate DOF You have to open an assembly file first. Devi aprire prima un file di assieme. Convert absolute paths of imported parts to relative ones Converti i percorsi assoluti delle parte importate a relativi Converts absolute paths of imported parts to relative ones Converti i percorsi assoluti delle parte importate a relativi Save and exit the active document Salva ed esci dal documento attivo Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrare i proxy delle parti importate Assiemi A2plus molto vecchi non mostrano l'icona corretta per le parti importate ed hanno proprietà obsolete. Con questa funzione puoi migrare le impostazioni delle vecchie parti allo stato più recente. Dopo l'avvio di questa funzione dovresti salvare e riaprire il tuo assieme. Migrate proxies of importedParts to recent version Migrare i proxy delle parti importate alla versione recente Make sure you have a backup of your files. Proceed? Sii sicuro di avere un backup dei tuoi file. Eseguire? The proxies have been migrated. I proxies sono stati migrati. Please save and reopen this assembly file Per favore salva e riapri questo file di assieme Migrate proxies of imported parts Migrare i proxy delle parti importate Updating by SubElement-Map: '{}' => '{}' Aggiornamento per mappa sotto elemento: '{}' =&gt; '{}' Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Il vincolo %s è rovinato. Eliminare il vincolo? Altrimenti verificare il collegamento errato. Broken Constraint Vincolo rovinato Removing constraint %s Rimuovi vincolo %s 3D-Debug contained '{}' vectors Clean up solver debug output from 3D view Ripulisci output di debug del risolutore dalla vista 3D Constraint Checker Controllo vincolo To view the constraints, press 'Open Viewer' Per vedere i vincoli premi 'Apri visualizzatore' View the listed constraints in the the Constraint Viewer. Vedi i vincoli elencati nel Visualizzatore Vincolo. Open Viewer Apri visualizzatore Close this form. Chiudi questo modulo. A A2plus file must be opened to start this checker Bisogna aprire un file A2plus per usare questo controllo Please open a file and try again Per favore apri un file e prova ancora Cannot find any constraints in this file. Non posso trovare vincoli in questo file. Checking constraints Controllo vincoli No constraint errors found Nessun errore di vincolo trovato Checking {} of {} Controllo {} di {} Checking Constraints Controllo vincoli Checks constraints Controlli vincoli This checks all constraints. After checking it will list all constraints that it found problems with. Questo controlla tutti i vincoli. Dopo il controllo elenca tutti i vincoli con problemi. The list can then be opened in the Constraint viewer. La lista può essere aperta nel visualizzatore vincoli. Create Labels Crea etichette Add labels to all of the faces on a selected part Aggiunge etichette a tutti le facce sulla parte selezionata Add labels to all of the edges on a selected part Aggiunge etichette a tutti i bordi sulla parte selezionata Add labels to all of the vertices on a selected part Aggiunge etichette a tutti i vertici sulla parte selezionata Delete all labels Elimina tutte le etichette Close this window Chiudi questa finestra Add Face Labels Aggiungi etichette di faccia Add Edge Labels Aggiungi etichette di bordo Add Vertex Labels Aggiunge etichette al vertice Delete Labels Elimina etichette Close Chiudi One part must be selected. Deve essere selezionata una parte. Please select One part and try again Per favore una parte e prova ancora Face Faccia Edge Bordo Vertex Vertice Constraint Viewer Visualizzatore vincoli Labels Etichette Places of accuracy = {} Cifre di precisione = {} Broken Constraints Vincoli rovinati Select a part and import all of the constraints for that part Seleziona una parte e importa tutti i vincoli da essa Copy selected constraints from the Tree Copia i vincoli selezionati dall'albero Clear the table Pulisci la tabella Select the feature to change in table. Select surface to change to. Seleziona la funzione da cambiare nella tabella. Seleziona la superficie su cui passare. Remove search color from tree. Rimuovi il colore di ricerca dall'albero. Finds the constraint in the tree for the select row in table. Trova i vincoli nell'albero per la riga selezionata nella tabella. Same as the solver above. Uguale al risolutore sopra. Press to toggle a label for selected feature. Premi per scambiare un'etichetta per la funzione selezionata. Import from part Importa da parte Import from Tree Importa da albero Clear Table Pulisci tabella Attach to Attacca a Clear Tree Pulisci l'albero Find in Tree Trova nella vista albero Std Solver Risolutore Std Find w label Trova etichetta w A part feature must be selected in the table Bisogna selezionare una funzione parte nella tabella The table has lost focus. Please reselect in the table. La tabella ha perso il fuoco. Per favore riseleziona la tabella. The selected text in the table is not a proper feature name: {} {} Il testo selezionato nella tabella non è un nome di funzionalità corretto: {} {} Find Constraint Trova vincolo Open Dialog Apri finestra di dialogo Delete labels Elimina etichette Open Help Apri aiuto CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? Il vincolo manca nel file. E' stato eliminato? Suppress Sopprimi A file must be opened to start this selector. Please open a file and try again Bisogna aprire un file per usare questo selettore. Per favore apri un file e prova ancora Nothing was selected in the Tree. Nessuna selezione nella vista albero. There were no constraints selected in the Tree. Select one or more constraints and try again. Non c'erano vincoli selezionati nella vista albero. Seleziona uno o più vincoli e prova ancora. No parts were selected in the window. Nessuna parte selezionata nella finestra. There are no constraints for this part. Non ci sono vincoli per questa parte. There are no constraints between these parts. Non ci sono vincoli tra queste parti. Both parts are fixed. Entrambe le parti sono fissate. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Le superfici possono essere solo rimpiazzate in colonne 'Part1 feat' o 'Part2 feat' No feature has been selected Nessuna funzionalità è stata selezionata The constraint can only be moved to another surface of the same part Il vincolo può essere mosso solo su un'altra superficie della stessa parte removeObserver failed in C checker View and edit selected constraints Vedi e modifica i vincoli selezionati Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Visualizzatore vincoli. Puoi vedere l'oggetto a cui è collegato il vincolo, eseguire un singolo vincolo o modificare la funzione a cui è collegato il vincolo. Vedi l'aiuto per più informazioni. Direction Direzione aligned allineato/a opposed opposto none nessuna Flip direction between 'aligned' and 'opposed' Scambia direzione tra 'allineata' e 'opposta' Flip direction Scambia direzione Offset Distanza Set 0 to 'Offset' field Imposta 0 nel campo 'Distanza' Set Zero Imposta zero Flip sign between '+' and '-' in 'Offset' field Cambia segno tra '+' e '-' nel campo distanza Flip sign Cambia segno Angle Angolo Angle in the range 0 - 180 degrees Angolo tra i valori 0 e 180° Round Arrotonda Round angle to multiples of 5 Arrotonda gli angoli a multipli di 5 Perpendicular Perpendicolare Adds/deletes 90 degrees Aggiunge/elimina 90° Lock Rotation Blocca rotazione False Falso True Vero Toggle between 'False' and 'True' Attiva/disattiva 'Vero' e 'Falso' Toggle Attiva/disattiva Delete this constraint Elimina questo vincolo Delete Elimina Solve Risolvi Accept the settings Accetta le impostazioni Accept Accetta Really delete this constraint? Eliminare davvero questo vincolo? Constraint does not exist anymore Il vincolo non esiste più Constraint has already been deleted Il vincolo è già stato eliminato Confirmation required Richiesta conferma Exit and delete new constraint? Esci ed elimina il nuovo vincolo? Values changed! Accept Constraint? Valore cambiato! Accetti il vincolo? Help Aiuto Constraint Tools help Aiuto su strumenti vincolo Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Seleziona la geometria da vincolare dentro la sita 3D! I Pulsanti dei vincoli adatti saranno attivati. Per favore leggi gli aiuti di ciascun pulsante. Constraint properties Proprietà vincolo Constraint Tools Strumenti vincolo Define constraints Definisci vincoli Opens a dialog to define constraints Apre una finestra di dialogo per definire vincoli Selection Error! Errore di selezione! Please select exact one constraint first. Per favore prima seleziona esattamente un vincolo. Edit selected constraint Modifica vincolo selezionato Select a constraint in the treeview and hit this button. Seleziona un vincolo nella vista ad albero e premi questo pulsante. SelObserverOFF by except Use one mouse button to select features Usa un pulsante del mouse per selezionare le funzioni Use left mouse button to select two features. Do not use the control key. Usa il pulsante sinistro del mouse per selezionare due funzioni. Non usare il tasto CTRL. No file is opened. You must open an assembly file first. Nessun file è aperto. Devi prima aprire un file di assieme. OneButton is ON Uso di un pulsante è ABILITATO OneButton is OFF Uso di un pulsante è DISABILITATO Warning Attenzione An other assembly workbench for FreeCAD. Un altro ambiente di assemblaggio per FreeCAD. Initializing A2plus Workbench v{} Inizializzazione ambiente A2plus v{} Remove faulty constraint '{}' Rimuovi vincolo errato '{}' The following constraints are broken: I seguenti vincoli sono inconsistenti: Do you want to delete them? Vuoi eliminarle? Delete broken constraints? Elimina vincoli inconstistenti? FREE LIBERO Fixed Fissato DOFs: {} DOFs: {} There are {:.0f} dependencies Ci sono :.{:.0f} dipendenze Hierarchy: Gerarchia: Writing visual hierarchy to: '{}' Scrittura gerarchia visuale in: '{}' A2P assembly hierarchy visualization Visualizzazione gerarchia assieme A2p FIXED FISSATO TARGET POS-ACCURACY :{} OBIETTIVO CIFRE DI PRECISIONE :{} REACHED POS-ACCURACY :{} RAGGIUNTA LA CIFRA DI PRECISIONE :{} TARGET SPIN-ACCURACY :{} OBIETTIVO PRECISIONE DI GIRO: {} REACHED SPIN-ACCURACY :{} RAGGIUNTA PRECISIONE DI GIRO :{} SA SPIN-ACCURACY :{} SA PRECISIONE DI ROTAZIONE :{} Start Solving System Inizia a risolvere il sistema System solved using partial + recursive unfixing Sistema risolto usando smontaggio parziale + ricorsivo Could not solve system Impossibile risolvere il sistema Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Vincolo inconsistente. Non posso risolvere il sistema. Per favore lancia lo strumento ricerca conflitti! Constraint mismatch Mancata corrispondenza dei vincoli The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Le parti evidenziate non sono state mosse. Non sono vincolate (anche con una catena di vincoli) ad una parte fissata! Could not move some parts Potrebbe non essere possibile muovere alcune parti Calculation stopped, no convergency anymore! Calcolo fermato, non c'è più convergenza! Reached max calculations count: {} Raggiunto il massimo conteggio: {} No active document found! Nessun documento attivo trovato! Before running solver, you have to open an assembly file. Prima di lanciare il risolutore devi aprire un file di assieme. Solve constraints Risolvi vincoli Solves constraints Risolve vincoli Starting solveConstraints latest script... Lancio l'ultimo script Risoluzione vincoli... Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crea un foglio di calcolo per informazioni sugli ordini o sulla logistica. Il foglio di calcolo creato può essere trovato nella vista ad albero. Per favore compila le informazioni. Questo foglio di calcolo sarà letto dalla funzione Lista parti di A2plus. You have to open a FCStd file first. Devi aprire prima un file FCStd. Create a spreadsheet for ordering or logistics information Crea un foglio di calcolo per informazioni sugli ordini o sulla logistica Please save before generating a parts list! Save now? Per favore salva prima di generare una Lista parti! Salvare ora? Save document? Salvare il documento? Parts list generation aborted! La generazione della Lista parti è stata interrotta! You have to save the assembly file first. Devi salvare prima il file di assieme. Do you want to iterate recursively over all included subassemblies? Vuoi eseguire ricorsivamente su tutti i sottoassiemi inclusi? Create a spreadsheet with a parts list of this file Crea un foglio di calcolo con la Lista parti di questo documento Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crea un foglio di calcolo con la Lista parti di questo documento. Questa funzione leggerà dal foglio di calcolo #INFO PARTI# tutte le parti di questo assieme e creerà un nuovo foglio di calcolo contenente la lista parti. Questo pulsante aprirà una finestra di dialogo con la domanda: - esegui ricorsivamente su tutti i sottoassiemi? Se rispodi Si: Tutte le parti di tutti i sottoassiemi verranno raccolte nella lista parte Se rispodi No: Saranno raccolte solo le part dentro l'assieme più recente. Import ignored invisible shape: '{}' Ignorata mportazione di forma invisibile: '{}' Union of Shapes FAILED Unione delle forme è FALLITA Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crea o rigenera una forma semplificata dell'assieme completo. Tutte le partidentro l'assieme sono combinate in una singola forma. Questa forma può essere usata ad es. per il modulo techdraw o la stampa 3D. La forma creata può essere trovata nella vista ad albero. Per default essa è inizialmente invisibile. Cannot create SimpleAssemblyShape Non posso creare la forma semplificata dell'assieme No visible ImportParts found Nessuna parte visibile trovata Union of Shapes passed. 'SimpleAssemblyShape' are created. L'unione delle forme ha funzionato. Creata 'Forma semplificata assieme'. Create or refresh simple shape of complete assembly Crea o rigenera una forma semplificata dell'assieme completo Errors occurred during processing of {} Si sono verificati degli errori durante l'elaborazione di {} Dependencies between {} - {}, type {} Dipendenze tra {} - {}, tipo {} createUpdateFileList(): ImportPath = {} createUpdateFileList(): Percorso importazione = {} Did not update converted part '{}' La parte convertita '{}' non è stata aggiornata Do you want to update the selected parts only? Vuoi aggiornare solo le parti selezionate? RECURSIVE UPDATE AGGIORNAMENTO RICORSIVO A part can only be imported from a FreeCAD '*.FCStd' file Una parte può essere importata solo da un file FreeCAD '*.FCStd' Value Error Errore di valore Assembly '{}' has been updated! L'assieme '{}' è stato aggiornato! Update imports recursively Aggiorna importazioni ricorsivamente Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Aggiorna parti che sono state importate nell'assieme. (Se modifichi una parte in un file esterno con questa funzione si aggiorna la nuova forma nell'assieme.) Questo comando viene eseguito ricorsivamente su tutti i sotto-assiemi. Anche i sottoassiemi sono aggiornati se necessario. Current Rigid = '{}' Attuale rigido = '{}' is Fixed è fissato is not Fixed and has {} DegreesOfFreedom non è fissato ed ha {} gradi di libertà Depends on Rigid = {} Dipende da Rigido = {} DOF Position free with this rigid = {} DOF Positione libera con questo rigido = {} DOF Rotation free with this rigid = {} DOF Rotazione libera con questo rigido = {} failed to open file with None name! Fallita l'apertura del file senza nome! file '{}' does not exist! il file {} non esiste! file '{}' is no FCStd file! il file {} non è un file FCStd! Not existing part(s): Nessuna parte(i) esistente: Constraints of missing parts removed! Rimossi vincoli di parti mancanti! Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Aggiungi vincolo coincidenza tra punti Add PointOnLine constraint Aggiungi vincolo punto su linea Add PointOnPlane constraint Aggiungi vincolo punto su piano Add SphereCenterIdent constraint Aggiungi vincolo centro sfere coincidente Add CircularEdge constraint Aggiungi vincolo tra bordi circolari Add AxisCoincident constraint Aggiungi vincolo assi coincidenti Add AxisParallel constraint Aggiungi vincolo assi paralleli Add AxisPlaneParallel constraint Aggiungi vincolo asse parallelo a piano Add AxisPlaneAngle constraint Aggiungi vincolo angolo tra asse e piano Add AxisPlaneNormal constraint Aggiungi vincolo asse normale a piano Add PlanesParallel constraint Aggiungi vincolo piani paralleli Add PlaneCoincident constraint Aggiungi vincolo piani coincidenti Add AngledPlanes constraint Aggiungi vincolo angolo tra piani Add CenterOfMass constraint Aggiungi vincolo centro di massa reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): Trovati vincoli sconosciuti: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Tutti i vincoli sono ricalcolati. Recalculate direction of constraints Ricalcola direzione dei vincoli Do you really want to recalculate the directions of all constraints? Vuoi davvero ricalcolare le direzioni di tutti i vincoli? Re-adjust directions of all constraints Riaggiusta direzioni di tutti i vincoli Re-adjust directions of all constraints to best fit Riaggiusta direzioni di tutti i vincoli per migliore addattamento Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Crea vincolo punto su punto (Coincidenza) Seleziona: 1) Un vertice, un cerchio o una sfera (su una parte) 2) Un vertice, un cerchio o una sfera (su un'altra parte) ISe il cerchio o la sfera è selezionato, sarà preso il centro come punto. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Crea vincolo punto su linea Seleziona: 1) Un vertice, un cerchio o una sfera (su una parte)) 2) Un bordo circolare/linea o una faccia cilindrica/conica (su un'altra parte) Se viene selezionatoil cerchio verrà scelto il suo asse come linea. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Crea vincolo punto su piano Seleziona: 1) Un vertice, il centro di un cerchio o una sfera (su una parte) 2) Un piano (su un'altra parte) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Crea vincolo sfera su sfera (coincidenza tra centri) Seleziona: 1) Una superficie sferica o un vertice (su una parte) 2) Una superficie sferica o un vertice (su un'altra parte) Quando viene seleziona una sfera il suo centro verrà usato come vertice. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Crea vincolo tra bordi circolari Seleziona: 1) Un bordo circolare (su una parte) 2) Un bordo circolare (su un'altra parte) Se un cerchio è selezionato, sarà preso il centro come punto. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Crea vincolo asse su asse (coincidenza tra assi) Seleziona: 1) Una linea o una faccia cilindrica/conica (su una parte) 2) Una linea o una faccia cilindrica/conica (su un'altra parte) Le assi non fisse saranno allineate e mosse per coincidere. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Crea vincolo assi paralleli Seleziona: 1) Un bordo circolare/linea o una faccia cilindrica/conica (su una parte) 2) Un bordo circolare/linea o una faccia cilindrica/conica (su un'altra parte) Gli assi saranno ruotati per essere paralleli ma non mossi. Se è selezionata una faccia cilindrica/conica, sarà preso il suo asse come linea. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Crea vincolo asse parallelo a piano Seleziona: 1) Una linea, l'asse di un cilindro/cono (su una parte) 2) Una faccia piana (su un'altra parte) Questo vincolo aggiusta un asse parallelo al piano selezionato. Le parti non sono mosse. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Crea vincolo amgolo tra asse e piano Seleziona: 1) Una linea, l'asse di un cilindro/cono (su una parte) 2) Una faccia piana (su un'altra parte) Prima il vincolo aggiusta l'asse parallela al piano selezionato. In una finestra di dialogo puoi impostare un angolo. Le parti non vengono mosse. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Crea vincolo asse ortogonale a piano Seleziona: 1) Una linea, l'asse di un cilindro/cono (su una parte) 2) Una faccia piana (su un'altra parte) Questo vincolo aggiusta un asse verticale al piano selezionato. Le parti non sono mosse per essere coincidenti. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Crea vincolo piani paralleli Seleziona: 1) Un piano (su una parte) 2) Un piano (su un'altra parte) I piani saranno solo ruotati per diventare paralleli ma non coincidenti. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Crea vincolo piani coincidenti Seleziona: 1) Un piano (su una parte) 2) Un piano (su un'altra parte) Puoi cambiare la distanza nell'editor oggetto. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Crea vincolo angolo tra piani Seleziona: 1) Un piano (su una parte) 2) Un piano (su un'altra parte) Dopo l'impostazione del vincolo verrà prima calcolato l'angolo tra i piani e memorizzato nell'editor oggetto. L'angolo può essere modificato nell'editor oggetto. Evita angoli di 0° o 180°, potresti avere risutati strani. Per quello è meglio usare il vincolo piani paralleli. Button gets active after correct selection. Il pulsante diventa attivo dopo la selezione corretta. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Crea vincolo centro di massa Seleziona: 1) Una faccia o un bordo chiuso (su una parte) 2) Una faccia o un bordo chiuso (su un'altra parte) Puoi modificare la distanza nell'editor oggetto. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Converte una parte creata con un altro ambiente, in una parte A2plus funzionale. Dopo la conversione, posso essere applicati i vincoli. Puoi anche duplicare la parte convertita. Per modificare una parte convertita, usa il pulsante modifica e segui le instruzioni su schermo. Questa funzione è utile, se vuoi usare es. elementi di fissaggio in questo ambiente. Convert a part to A2plus Converte una parte per A2plus Please select only visible parts! Per favore seleziona solo parti visibili! Conversion Aborted Conversione interrotta A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Strumento risoluzione conflitti: Risolve i vincoli in contrasto provando a risolverli uno alla volta There are no a2p constraints within this document. Non ci sono vincoli a2p in questo documento. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? Questa coppia di vincoli è in contrasto con i vincoli precedenti: vincolo : {} con : {} La coppia di vincoli appartiene agli oggetti: oggetto1: {} oggetto2: {} Vuoi cancella questa coppia di vincoli? Searching for conflicting constraints Ricerca vincoli in conflitto Identify conflicting constraints Ricerca vincoli in conflitto Gui::Dialog::DlgSettingsA2Plus A2plus settings Impostazioni A2plus User interface settings Impostazioni interfaccia utente Adds a creation button for every constraint type to the toolbar Aggiungi pulsante di creazione per ogni tipo di vincolo nella barra strumenti Show constraints in toolbar Mostra i vincoli nella barra degli strumenti Use native file manager of your OS Utilizza il file manager nativo del tuo sistema operativo Behavior when updating imported parts Comportamento all'aggiornamento delle parti importate All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Tutte le parti dell'assieme saranno aperte in FreeCAD per essere ricostruite usando i valori del fogli di calcolo Recalculate imported parts before updating them (experimental) Ricalcolare le parti importate prima di aggiornarle (sperimentale) Opens all subassemblies recursively to update them Apre tutti i sottoassiemi in modo ricorsivo per aggiornarli Enable recursive update of imported parts Abilita l'aggiornamento ricorsivo delle parti importate While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Durante l'importazione delle parti nell'assieme, i nomi topologici sono scritti nella proprietà &quot;mux Info&quot;. Quando le parti sono successivamente aggiornate le proprietà &quot;Sub Elementx&quot; dei vincoli verrà aggiornato secondo la topologia &quot;mux Info&quot;. Use experimental topological naming Utilizzare la denominazione topologica sperimentale Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Utilizza le impostazioni di colore e trasparenza da parti importate. Nota: per l'ambiente PartDesign funziona solo per Body. Inherit per face color and transparency from parts and subassemblies (experimental) Eredita il colore della faccia e la trasparenza da parti e sottoassiemi (sperimentale) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Le forme di riferimento/costruzione invisibili verranno nascoste. Nota: non è necessario collegare alcun vincolo alle forme di riferimento/costruzione superiori o ad altri sottoassiemi. Altrimenti potresti rompere l'assememe. All imported parts will directly be put together as union. Tutte le parti importate saranno messe direttamente come unione. Do not import invisible shapes (for expert users) Non importare forme invisibili (per utenti esperti) Use solid union for importing parts and subassemblies (experimental) Utilizzare l'unione solida per importare parti e sottoassiemi (sperimentale) Storage of files Archiviazione di file Use relative paths for imported parts Utilizza percorsi relativi per le parti importate Use absolute paths for imported parts Utilizza percorsi assoluti per le parti importate Specify the project folder in the field below Specificare la cartella del progetto nel campo sottostante All files are in this project folder: Tutti i file sono in questa cartella di progetto: Default solver behavior Comportamento predefinito del risolutore Solve automatically if a constraint property is changed Risolvi automaticamente se una proprietà di vincolo viene modificata Default solving method Metodo predefinito di soluzione Solver tries to move all parts at once in direction to a fixed part Il risolutore tenta di spostare tutte le parti contemporaneamente in direzione di una parte fissa Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Utilizzare un risolutore &quot;magnetico&quot;, risolvendo tutte le parti in una volta (per assiemi dinamici) All parts will be fixed to the positions where they were created Tutte le parti daranno fissate alle posizioni dove sono state create Force fixed position to all imports Forza posizione fissa per tutte le importazioni Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. Il risolutore inizia con una parte fissa e una parte ad essa vincolata. Tutte le altre parti non vengono calcolate. Se può essere trovata una soluzione si aggiunge la parte vincolata successiva per il calcolo e così via. Use solving of partial systems (recommended for static assemblies) Utilizzare la risoluzione di sistemi parziali (consigliato per assemblaggi statici) Workbench Constraint Vincolo Solver Risolutore View Vista Misc Altro Diagnostic Diagnostica ================================================ FILE: translations/A2plus_pt-br.ts ================================================ A2p_BoM Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Criar uma planilha com uma lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as peças presentes na montagem e criar uma nova planilha contendo a lista de peças. Este botão irá abrir uma caixa de diálogo com a pergunta: - Repitir recursivamente todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são listadas para a lista de peças Resposta Não: Apenas as partes dentro da montagem principal são listadas. No active document found! Nenhum documento ativo encontrado! You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. Please save before generating a parts list! Save now? Salve antes de gerar uma lista de peças! Salvar agora? Save document? Salvar documento? Parts list generation aborted! A geração da lista de peças foi cancelada! You have to save the assembly file first. Você tem que salvar o arquivo de montagem primeiro. Do you want to iterate recursively over all included subassemblies? Você deseja iterar recursivamente em todas as submontagens incluídas? Create a spreadsheet with a parts list of this file Cria uma planilha com uma lista de peças deste arquivo PARTINFO PARTINFO PARTSLIST LISTAPEÇA IDENTNO IDENTNO DESCRIPTION DESCRIÇÃO SUPPLIER FORNECEDOR SUPP.IDENTNO FORN.IDENTNO SUPP.DESCRIPTION FORN.DESCRIÇÃO (FILENAME) (NOME_DO_ARQUIVO) spreadsheet has been created a planilha foi criada BOM ERROR: Could not open sourcefile '{}' ERRO DA LISTA: não foi possível abrir o arquivo de origem '{}' POS POS QTY QTD #PARTSLIST# spreadsheet has been created #LISTA_DE_PEÇAS# spreadsheet has been created #PARTINFO# spreadsheet has been created #PARTINFO# planilha foi criada #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus A file must be selected to start this selector Please open a file and try again Um arquivo deve ser selecionado para iniciar este seletor Abra um arquivo e tente novamente No parts were selected to update. Select one part and try again. Nenhuma peça foi selecionada para atualização. Selecione uma peça e tente novamente. I have limited the number of parts that can be updated to 1. Select one part and try again. Eu limitei o número de peças que podem ser atualizadas para 1. Selecione uma peça e tente novamente. Updating Assembly. Atualizando Montagem. Update complete. All surfaces found Atualização completa. Todas as superfícies encontradas Update complete Atualização completa Total Constraints Restrições totais Repaired constraints Restrições reparadas Features not found Recursos não encontrados Constraint Checker Verificador de restrições Showing editing part Mostrando a peça de edição Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly program. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Atualiza a montagem A2plus. quando as peças são modificadas. Para atualizar a montagem, selecione a peça que você modificou e pressione o ícone. Quando a atualização terminar, execute o solver A2plus para verificar se há restrições quebradas. Esta é uma tentativa de reduzir o número de restrições quebradas causadas ao modificar uma peça do programa de montagem FreeCAD A2plus. Isso registra o restrições de correspondência de superfícies imediatamente antes da atualização e tenta reconecte-os após a atualização. Se isso falhar, você pode desfazer esta atualização usando o botão desfazer e executando o atualizador A2plus padrão. Updates parts from the A2plus program that has been modified Atualiza peças do programa A2plus que foram modificadas Updates modified parts. Atualiza peças modificadas. Import Objects Importar objetos Select objects to import Selecione objetos para importar Import Importar Importing importando Select a shape to be imported Selecione uma forma a ser importada Cancel Cancelar Choose Escolher Import of a shape reference aborted by user Importação de uma referência de forma abortada pelo usuário LCS_Collection LCS_Collection Add shapes from an external file to the assembly Adicionar formas de um arquivo externo à montagem Add shapes from an external file Adicionar formas de um arquivo externo A part can only be imported from a FreeCAD '*.FCStd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .FCStd' Value Error Erro de valor No visible Part to import found. Aborting operation Nenhuma peça visível para importar encontrada. Abortando operação Restore transparency to active document objects Restaurar transparência para objetos de documentos ativos Restore transparency to active document objects Restaurar transparência para objetos de documentos ativos Add a part from an external file to the assembly Adicionar uma peça de um arquivo externo à montagem Add a part from an external file Adicionar uma peça de um arquivo externo No active Document found Nenhum Documento ativo encontrado First create an empty file and save it under desired name Primeiro crie um arquivo vazio e salve-o com o nome desejado Unnamed document Documento sem nome Before inserting first part, please save the empty assembly to give it a name Antes de inserir a primeira peça, salve a montagem vazia para dar-lhe um nome Select FreeCAD document to import part from Selecione o documento FreeCAD para importar a peça Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Formatos suportados (* .FCStd * .fcstd * .stp * .step) ;; Todos os arquivos (*. *) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. A peça que você está tentando importar está fora da pasta do projeto! Verifique as configurações de preferência de montagem. Import Error Erro de importação Imported Object is empty/none O objeto importado está vazio/nenhum Before updating parts, you have to open an assembly file. Antes de atualizar as peças, você deve abrir um arquivo de montagem. Do you want to update only the selected parts? Você quer atualizar apenas as peças selecionadas? ASSEMBLY UPDATE ATUALIZAÇÃO DE MONTAGEM Source file not found Arquivo de origem não encontrado Unable to find {} Incapaz de achar {} Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, o novo formato é levado para a montagem por esta função.) Update parts imported into the assembly Atualizar peças importadas para a montagem Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Duplicar uma peça que já foi importada para a montagem. Selecione uma peça importada e clique neste botão. Uma cópia será criada e pode ser colocada em qualquer lugar com o mouse. Segure &quot;Shift&quot; para fazer isso várias vezes. Create duplicate of a part Duplicar uma peça Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Edite uma peça importada. Selecione uma peça importada e clique neste botão. O arquivo FCStd apropriado, vinculado a esta peça será aberto e você pode modificar a peça aqui. Após editar e salvar, você deve usar a função 'atualizar peças importadas' para ver o novo formato da peça dentro da montagem. Information Informação Please edit the highlighted object. When finished, update the assembly Edite o objeto destacado. Quando terminar, atualize a montagem Cannot find the local source object. Has it been deleted? Não é possível encontrar o objeto de origem local. Ele foi excluído? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Você deseja editar um arquivo que não se encontra na pasta do projeto. Isso não é permitido ao usar a preferência. Use pasta do projeto File error! Erro de arquivo! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Editando um arquivo STEP como arquivo '*.FCStd' Exporte o arquivo salvo como '.step' Edit an imported part (open linked FCStd file) Editar uma peça importada (abrir arquivo FCStd vinculado) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Mover a peça selecionada. Selecione uma peça e aperte este botão. A peça pode ser movida com o mouse. Se a peça estiver restrita, ela voltará a posição original na próxima resolução da montagem. Move the selected part Mover a peça selecionada Animation problem detected Problema de animação detectado Use system undo if necessary. Use o desfazer do sistema, se necessário. Invalid selection Seleção inválida A2plus will not move a part with property A2plus não moverá uma peça com propriedade Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover a peça obedecendo as regras de restrições. 1) Clique neste botão 2) Clique em uma peça e ela ficará colada ao cursor e pode ser movida 3) Clique novamente (ou pressione ESC) e o comando termina Move the selected part under constraints Mover a peça selecionada seguindo as restrições Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Excluir todas as restrições de uma peça selecionada. Selecione extamente uma peça e aperte este botão. Uma caixa de diálogo de confirmação é exibida, mostrando todas as restrições relacionadas à peça selecionada. Após a confirmação, todas as restrições relacionadas são excluídas de uma só vez. Selection Error Erro de Seleção Select exactly 1 part Selecione exatamente 1 peça Info Info No constraints refer to '%s' Nenhuma restrição refere-se a '%s' Delete {}'s constraint(s): - {}? Exclua as restrições de {}: - {}? Delete constraints? Excluir restrições? Deleting part's constraints Deletando as restrições da peça Delete all constraints of selected parts Deletar todas as restrições das peças selecionadas Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Destacar todas as peças que estão relacionadas a uma restrição selecionada. Selecione uma restrição na visualização em árvore e clique neste botão. A montagem inteira é alternada para o modo transparente e você pode inspecionar a restrição desejada. Highlight both constrained parts Destacar ambas as peças restritas Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Mostra apenas os elementos selecionados ou todos, se nenhum estiver selecionado. Selecione uma ou mais peças, que são as únicas que você deseja ver em uma grande montagem. Aperte este botão e todas as outras peças ficarão invisíveis. Se você não selecionar nada e clicar neste botão, todas as partes invisíveis ficarão visíveis novamente. Show only selected elements or all if none is selected Mostrar apenas os elementos selecionados ou todos se nenhum estiver selecionado Toggle transparency of assembly Alterar transparência da montagem Toggles transparency of assembly Altera transparência da montagem Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Alternar resolução automática. Ao pressionar este botão, você pode habilitar ou desabilitar a resolução automática após a edição de uma restrição. Se a solução automática estiver desabilitada, você deve iniciá-la manualmente pressionando o botão resolver Toggle auto solve Alternar resolução automática Toggle partial processing Alternar processamento parcial Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repare a visualização em árvore, se estiver danificada de alguma forma. Depois de pressionar este botão, as restrições serão agrupadas nas peças correspondentes novamente. Repair the tree view if it is somehow damaged Repare a visualização em árvore se estiver danificada de alguma forma Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Inverta a direção da última restrição. Se a última restrição que foi definida tem uma propriedade 'direção', seu valor será alternado entre 'alinhado' e 'oposto' (alinhamento do eixo) Flip direction of last constraint Inverter direção da última restrição Command Aborted Comando Abortado Flip aborted since no a2p constraints in active document. Inversão abortada porque não há restrições a2p no documento ativo. Generate HTML file with detailed constraining structure Gerar arquivo HTML com estrutura de restrição detalhada Generates HTML file with detailed constraining structure Gera arquivo HTML com estrutura de restrição detalhada Nothing found to be labeled! Nada foi encontrado para ser rotulado! This document does not contain A2p-objects Este documento não contém objetos de montagem Show part labels in 3D view Mostrar rótulos de peças na vista 3D Toggle showing part labels in 3D view Alternar para mostrar/ocultar os rótulos das peças na vista 3D Print detailed DOF information Imprima informações detalhadas sobre os graus de liberdade Toggle printing detailed DOF information Alterna a impressão de informações detalhadas sobre os graus de liberdade No active document found! Nenhum documento ativo encontrado! You have to open an assembly file first. Você deve abrir um arquivo de montagem primeiro. Convert absolute paths of imported parts to relative ones Converter caminhos absolutos de peças importadas em relativos Converts absolute paths of imported parts to relative ones Converte caminhos absolutos de peças importadas em relativos Save and exit the active document Salvar e sair do documento ativo Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrar proxies de peças importadas Montagens muito antigas feitas com a bancada A2plus não mostram os ícones corretos para peças importadas e têm propriedades obsoletas. Com esta função, você pode migrar os viewProviders de peças importadas antigas para o estado recente. Depois de executar esta função, você deve salvar e reabrir o arquivo de montagem. Migrate proxies of importedParts to recent version Migrar proxies de peças importadas para a versão recente Make sure you have a backup of your files. Proceed? Certifique-se de ter um backup de seus arquivos. Continuar? The proxies have been migrated. Os proxies foram migrados. Please save and reopen this assembly file Salve e reabra este arquivo de montagem Migrate proxies of imported parts Migrar proxies de peças importadas Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. A restrição %s foi quebrada. Excluir restrição? Caso contrário, verifique a ligação errada. Broken Constraint Restrição quebrada Removing constraint %s Removendo restrição %s Clean up solver debug output from 3D view Limpe a saída de depuração do solucionador da visualização 3D Clean up solver debug output from 3D view Limpe a saída de depuração do solucionador da visualização 3D Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crie ou atualize uma forma simples da montagem completa. Todas as peças da montagem são combinadas em uma única forma. Esta forma pode ser usada, por exemplo para outros módulos ou impressão 3D. A forma criada pode ser encontrada na visualização em árvore. Por padrão, ela fica invisível na primeira vez. Cannot create SimpleAssemblyShape SimpleAssemblyShape não pode ser criado No visible ImportParts found Nenhuma peça importada visível foi encontrada Union of Shapes FAILED União de Formas FALHOU Create or refresh simple shape of complete assembly Crie ou atualize formas simples de montagem completa BOM ERROR: Could not open sourcefile {} ERRO DA LISTA: não foi possível abrir o arquivo de origem {} Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Criar uma planilha com uma lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as peças presentes na montagem e criar uma nova planilha contendo a lista de peças. Este botão irá abrir uma caixa de diálogo com a pergunta: - Repitir recursivamente todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são listadas para a lista de peças Resposta Não: Apenas as partes dentro da montagem principal são listadas. Please save before generating a parts list! Save now? Salve antes de gerar uma lista de peças! Salvar agora? Save document? Salvar documento? Parts list generation aborted! A geração da lista de peças foi cancelada! You have to save the assembly file first. Você tem que salvar o arquivo de montagem primeiro. Do you want to iterate recursively over all included subassemblies? Você deseja iterar recursivamente em todas as submontagens incluídas? PARTSLIST LISTA_DE_PEÇAS POS POS QTY QTD spreadsheet has been created a planilha foi criada Create a spreadsheet with a parts list of this file Cria uma planilha com uma lista de peças deste arquivo Constraint properties Propriedades de restrição Direction Direção aligned alinhado opposed oposto none nenhum Flip direction Inverter direção Offset Deslocamento Set Zero Defina Zero Flip sign Inverter sinal Angle Ângulo Angle in the range 0 - 180 degrees Ângulo na faixa de 0 a 180 graus Round Arredondar Round angle to multiples of 5 Arredondar ângulo para múltiplos de 5 Perpendicular Perpendicular Adds/deletes 90 degrees Adiciona/exclui 90 graus Lock Rotation Bloquear Rotação False Falso True Verdadeiro Toggle Alternar Delete this constraint Excluir esta restrição Delete Excluir Solve constraints Resolver restrições Solve Resolver Accept the settings Aceitar as configurações Accept Aceitar Constraint does not exist anymore A restrição não existe mais Constraint has already been deleted A restrição já foi excluída Confirmation required Confirmação necessária Really delete this constraint? Deseja realmente excluir esta restrição? Exit and delete new constraint? Sair e excluir a nova restrição? Values changed! Accept Constraint? Valores alterados! Aceita a restrição? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida na vista 3D! Os botões de restrição adequados serão ativados. Leia também as dicas de cada botão. Constraint Tools Ferramentas de restrição Help Ajuda Constraint tools help Ajuda da ferramenta de restrição Opens a dialog to define constraints Abre uma janela para definir as restrições Define constraints Definir restrições Edit selected constraint Select a constraint in the treeview and hit this button Editar restrição selecionada Selecione uma restrição na visualização em árvore e aperte este botão Selection Error! Erro de seleção! Please select exact one constraint first. Primeiro selecione exatamente uma restrição. Edit selected constraint Editar restrições selecionadas 3D-Debug contained '{}' vectors 3D-Debug continha vetores '{}' Did not update converted part '{}' Não atualizou a parte convertida '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levada para a montagem por esta função.) Este comando faz isso recursivamente em todas as submontagens envolvidas. As submontagens também são atualizadas, se necessário. Before recursive updating parts, you have to open an assembly file. Antes de atualizar peças recursivamente, você deve abrir um arquivo de montagem. RECURSIVE UPDATE ATUALIZAÇÃO RECURSIVA A part can only be imported from a FreeCAD '*.fcstd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .fcstd' ==== Assembly '{}' has been updated! ===== ==== A montagem '{}' foi atualizada! ===== Update imports recursively Atualizar as importações recursivamente Remove faulty constraint '{}' Remova a restrição defeituosa '{}' The following constraints are broken: As seguintes restrições foram quebradas: Do you want to delete them? Deseja excluí-los? Delete broken constraints? Excluir restrições quebradas? There are '{}' dependencies Existem dependências '{}' Writing visual hierarchy to: '{}' Escrevendo hierarquia visual para: '{}' ===== Start Solving System ====== ======= Inicar sistema de resolução ==== ===== System solved using partial + recursive unfixing ===== ======= Sistema resolvido usando desfixação parcial + recursivo ===== ===== Could not solve system ====== ===== Não foi possível resolver o sistema ====== Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Restrições inconsistentes. Não é possível resolver System. Execute a ferramenta de localização de conflitos! Constraint mismatch Restrição incompatível The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! As peças destacadas não foram movidas. Elas não estão restritas (também nas cadeias de restrição) para uma peça fixa! Could not move some parts Não foi possível mover algumas peças Calculation stopped, no convergency anymore! Cálculo interrompido, não há mais convergência! Reached max calculations count: {} Contagem máxima de cálculos alcançada: {} Before running solver, you have to open an assembly file. Antes de executar o solver, você deve abrir um arquivo de montagem. Solves constraints Resolve restrições Import ignored invisible shape: '{}' Importar forma invisível ignorada: '{}' You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. Set 0 to Defina 0 para field campo Toggle between Alternar entre Flip direction between Inverter a direção entre and e Flip sign between '+' and '-' in Inverter o sinal entre '+' e '-' em Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crie uma planilha com um lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as partes envolvidas do montagem e criar um novo planilha contendo o lista de peças. Este botão abrirá uma caixa de diálogo com a pergunta: - Iterar recursivamente sobre todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são coletados para a lista de peças Resposta Não: Somente as peças dentro do montagem recente são coletados. Flip direction between 'aligned' and 'opposed' Inverta a direção entre 'alinhado' e 'oposto' Set 0 to 'Offset' field Definir 0 para o campo 'Deslocamento' Flip sign between '+' and '-' in 'Offset' field Inverter o sinal entre '+' e '-' no campo 'Deslocamento' Toggle between 'False' and 'True' Alternar entre 'Falso' e 'Verdadeiro' Constraint Tools help Ajuda das Ferramentas de Restrição Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida dentro da visualização 3D! Os botões de restrição adequados seja ativado. Leia também as dicas de ferramentas de cada botão. Opens a dialog to define constraints Abre uma caixa de diálogo para definir restrições Select a constraint in the treeview and hit this button. Selecione uma restrição na árvore e aperte este botão. Errors occurred during processing of {} Ocorreram erros durante o processamento de {} Dependencies between {} - {}, type {} Dependências entre {} - {}, digite {} Imported Object is empty/none O objeto importado está vazio/nenhum Unable to find '{}' Incapaz de achar '{}' Updating by SubElement-Map: '{}' => '{}' Atualizando por SubElement-Map: '{}' =&gt; '{}' Not existing part(s): Peça(s) não existente(s): Constraints of missing parts removed! Restrições de peças ausentes removidas! Union of Shapes passed. 'SimpleAssemblyShape' are created. União das Formas aprovada. 'SimpleAssemblyShape' foram criados. Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crie uma planilha para pedidos ou informações de logística. A planilha criada pode ser encontrada na visualização em árvore. Por favor, preencha suas informações. Esta planilha será lida pela função de lista de peças do A2plus. Create a spreadsheet for ordering or logistics information Criar uma planilha para pedidos ou informações de logística createUpdateFileList(): ImportPath = {} createUpdateFileList(): ImportPath = {} Do you want to update the selected parts only? Deseja atualizar apenas as peças selecionadas? Assembly '{}' has been updated! A montagem '{}' foi atualizada! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar peças, que foram importados para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levado à montagem por esta função). Este comando faz isso recursivamente sobre todas as submontagens envolvidas. As submontagens são atualizadas, se necessário também. Current Rigid = '{}' Atualmente Rígido = '{}' is Fixed está fixado is not Fixed and has {} DegreesOfFreedom não está fixo e tem {} graus de liberdade Depends on Rigid = {} Depende do rígido = {} DOF Position free with this rigid = {} GDL de Posição livre com este rígido = {} DOF Rotation free with this rigid = {} GDL de Rotação livre com este rígido = {} failed to open file with None name! falha ao abrir arquivo com nenhum nome! file '{}' does not exist! arquivo '{}' não existe! file '{}' is no FCStd file! arquivo '{}' não é um arquivo FCStd! FREE LIVRE Fixed Fixo DOFs: {} GDLs: {} There are {:.0f} dependencies Existem {:.0f} dependências Hierarchy: Hierarquia: Writing visual hierarchy to: '{}' Escrevendo hierarquia visual para: '{}' A2P assembly hierarchy visualization Visualização da hierarquia de montagem A2P FIXED FIXO TARGET POS-ACCURACY :{} ALVO DA PRECISÃO DA POSIÇÃO :{} REACHED POS-ACCURACY :{} PRECISÃO DA POSIÇÃO ALCANÇADA :{} TARGET SPIN-ACCURACY :{} PRECISÃO DE GIRO ALVO :{} REACHED SPIN-ACCURACY :{} PRECISÃO DE GIRO ALCANÇADA:{} SA SPIN-ACCURACY :{} SA PRECISÃO DE GIRO :{} Start Solving System Iniciar Sistema de Resolução System solved using partial + recursive unfixing Sistema resolvido usando desfixação parcial + recursivo Could not solve system Não foi possível resolver o sistema Calculation stopped, no convergency anymore! Cálculo interrompido, não há mais convergência! Reached max calculations count: {} Contagem máxima de cálculos alcançada: {} Starting solveConstraints latest script... Iniciando o script mais recente de resolução de restrições... A file must be selected to start this selector. Um arquivo deve ser selecionado para iniciar este seletor. Please open a file and try again. Abra um arquivo e tente novamente. No parts were selected to update. Nenhuma peça foi selecionada para atualização. Select one part and try again. Selecione uma peça e tente novamente. I have limited the number of parts that can be updated to 1. Eu limitei o número de partes que podem ser atualizadas para 1. Update complete. Atualização completa. All surfaces found Todas as superfícies encontradas Update complete: Atualização completa: Total constraints - {} Restrições totais - {} Repaired constraints - {} Restrições reparadas - {} Features not found - {} Recursos não encontrados - {} Status Status Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Atualiza a montagem A2plus quando as peças são modificadas. Para atualizar a montagem, selecione a peça que você modificou e pressione o ícone. Quando a atualização terminar, execute o solver A2plus para verificar se há restrições quebradas. Esta é uma tentativa de reduzir o número de restrições quebradas causadas ao modificar uma peça do programa de montagem FreeCAD A2plus. Isso registra as superfícies de correspondência de restrições imediatamente antes da atualização e tenta reconectá-las após a atualização. Se isso falhar, você pode desfazer esta atualização usando o botão Desfazer e executando o atualizador A2plus padrão. To view the constraints, press 'Open Viewer' Para visualizar as restrições, pressione 'Abrir visualizador' View the listed constraints in the the Constraint Viewer. Visualize as restrições listadas no Visualizador de restrições. Open Viewer Abrir visualizador Close this form. Feche este formulário. Close Fechar A A2plus file must be opened to start this checker Um arquivo A2plus deve ser aberto para iniciar este verificador Please open a file and try again Abra um arquivo e tente novamente Cannot find any constraints in this file. Não foi possível encontrar nenhuma restrição neste arquivo. Checking constraints Verificando restrições No constraint errors found Nenhum erro de restrição encontrado Checking {} of {} Verificando {} de {} Checking Constraints Verificando Restrições Checks constraints Verifica restrições This checks all constraints. After checking it will list all constraints that it found problems with. Isso verifica todas as restrições. Após a verificação, ele listará todas as restrições com as quais encontrou problemas. The list can then be opened in the Constraint viewer. A lista pode ser aberta no visualizador de restrições. Constraint Viewer Visualizador de restrições Labels Etiquetas Open Dialog Abrir Diálogo Delete labels Excluir etiquetas Places of accuracy = {} Lugares de precisão = {} Open Help Abrir Ajuda Broken Constraints Restrições quebradas Suppress Suprimir Import from part Importar da peça Select a part and import all of the constraints for that part Selecione uma peça e importe todas as restrições para essa peça Import from Tree Importar da Árvore Copy selected constraints from the Tree Copie as restrições selecionadas da Árvore Clear Table Limpar Tabela Clear the table Limpar a tabela Attach to Anexar a Select the feature to change in table. Select surface to change to. Selecione o recurso a ser alterado na tabela. Selecione a superfície para a qual mudar. Clear Tree Limpar Árvore Remove search color from tree. Remova a cor de pesquisa da árvore. Find in Tree Encontrar na Árvore Finds the constraint in the tree for the select row in table. Encontra a restrição na árvore para a linha selecionada na tabela. Std Solver Solucionador Padrão Same as the solver above. Igual ao solucionador acima. Find w label Encontre o rótulo w Press to toggle a label for selected feature. Pressione para alternar um rótulo para o recurso selecionado. Close this window Fechar esta janela A part feature must be selected in the table Um recurso de peça deve ser selecionado na tabela The table has lost focus. Please reselect in the table. A tabela perdeu o foco. Selecione novamente na tabela. The selected text in the table is not a proper feature name: {} {} O texto selecionado na tabela não é um nome de recurso adequado: {} {} Find Constraint Encontrar Restrição CD_Help for Diagnostic tools.pdf CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? A restrição não está no arquivo. Foi deletada? A file must be opened to start this selector. Please open a file and try again Um arquivo deve ser aberto para iniciar este seletor. Abra um arquivo e tente novamente Nothing was selected in the Tree. Nada foi selecionado na Árvore. There were no constraints selected in the Tree. Select one or more constraints and try again. Não havia restrições selecionadas na Árvore. Selecione uma ou mais restrições e tente novamente. No parts were selected in the window. Nenhuma peça foi selecionada na janela. There are no constraints for this part. Não existem restrições para esta peça. There are no constraints between these parts. Não há restrições entre essas peças. Both parts are fixed. As duas peças estão fixas. Surfaces can only be replaced in columns Part1 feat or Part2 feat As superfícies só podem ser substituídas em colunas Part1 feat or Part2 feat No feature has been selected Nenhum recurso foi selecionado The constraint can only be moved to another surface of the same part A restrição só pode ser movida para outra superfície da mesma peça removeObserver failed in C checker remover o observador falhou no verificador C View and edit selected constraints Visualize e edite as restrições selecionadas Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Visualizador de restrições. Você pode visualizar os recursos aos quais a restrição está anexada, execute uma única restrição ou altere o recurso ao qual a restrição está anexada. Consulte a ajuda para obter mais informações. Create Labels Criar etiquetas Add Face Labels Adicionar rótulos na face Add labels to all of the faces on a selected part Adicionar legendas a todas as faces em uma peça selecionada Add Edge Labels Adicionar rótulos de aresta Add labels to all of the edges on a selected part Adicione rótulos a todas as arestas de uma peça selecionada Add Vertex Labels Adicionar rótulos de vértice Add labels to all of the vertices on a selected part Adicionar rótulos a todos os vértices em uma peça selecionada Delete Labels Excluir rótulos Delete all labels Excluir todas as etiquetas Face Face Edge Aresta Vertex Vértice One part must be selected. Uma peça deve ser selecionada. Please select One part and try again Selecione uma peça e tente novamente SelObserverOFF by except SelObserverOFF by except Use one mouse button to select features Use um botão do mouse para selecionar recursos Use left mouse button to select two features. Do not use the control key. Use o botão esquerdo do mouse para selecionar dois recursos. Não use a tecla Ctrl. No file is opened. You must open an assembly file first. Nenhum arquivo é aberto. Você deve abrir um arquivo de montagem primeiro. OneButton is ON OneButton está LIGADO OneButton is OFF OneButton está DESLIGADO Warning Aviso An other assembly workbench for FreeCAD. Uma outra bancada de montagem para o FreeCAD. Initializing A2plus Workbench v{} Inciando Bancada de Trabalho A2Plus v{} Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Select a constraint in the treeview and hit this button. Selecione uma restrição na árvore e aperte este botão. Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Adicionar restrição de identidade de ponto Add PointOnLine constraint Adicionar restrição de ponto na linha Add PointOnPlane constraint Adicionar restrição de ponto no plano Add SphereCenterIdent constraint Adicionar restrição de identidade do centro da esfera Add CircularEdge constraint Adicionar restrição de aresta circular Add AxisCoincident constraint Adicionar restrição de Coincidência de Eixo Add AxisParallel constraint Adicionar restrição de eixo paralelo Add AxisPlaneParallel constraint Adicionar restrição de eixo-plano paralelo Add AxisPlaneAngle constraint Adicionar restrição de ângulo de plano e eixo Add AxisPlaneNormal constraint Adicionar restrição normal de plano e eixo Add PlanesParallel constraint Adicionar restrição de planos paralelos Add PlaneCoincident constraint Adicionar restrição de Plano Coincidente Add AngledPlanes constraint Adicionar restrição de planos angulares Add CenterOfMass constraint Adicionar restrição de centro de massa reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): restrições desconhecidas encontradas: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Todas as restrições foram recalculadas. Recalculate direction of constraints Recalcular a direção das restrições Do you really want to recalculate the directions of all constraints? Você realmente deseja recalcular as direções de todas as restrições? Re-adjust directions of all constraints Reajustar as direções de todas as restrições Re-adjust directions of all constraints to best fit Reajuste as direções de todas as restrições para melhor ajuste Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Crie a restrição ponto a ponto (identidade do ponto) Selecione: 1) Um vértice, um círculo ou uma esfera (em uma peça) 2) Um vértice, um círculo ou uma esfera (em outra peça) Se o Círculo ou Esfera for selecionado, centro do recurso será considerado como definição de ponto. Button gets active after correct selection. O botão fica ativo após a seleção correta. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Crie a restrição Ponto na Linha Selecione: 1) Um vértice, uma esfera ou um círculo (em uma peça) 2) Uma aresta linear/circular ou uma face cilíndrica/cônica (em outra peça) Se a aresta circular for selecionada, seu eixo será tomado como definição de linha. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Criar a restrição Ponto no Plano Selecione: 1) Um vértice, um centro de um círculo ou uma esfera (em uma peça) 2) Um avião (em outra peça) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Crie a restrição Esfera para Esfera Selecione: 1) Uma superfície esférica ou um vértice (em uma peça) 2) Uma superfície esférica, ou um vértice (em outra peça) Ao selecionar uma esfera, seu centro é usado como um vértice. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Crie a restrição Circular Edge Selecione: 1) Uma aresta circular (em uma peça) 2) Uma borda circular (em outra peça) Ao selecionar um círculo, seu centro é usado como um vértice. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Crie a restrição Eixo a Eixo Selecione: 1) Uma aresta linear ou face cilíndrica/cônica (em uma peça) 2) Uma aresta linear ou face cilíndrica/cônica (em outra peça) Eixos não fixos serão alinhados e movidos para serem coincidentes. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Crie a restrição de eixos paralelos Selecione: 1) Uma aresta linear/circular ou face cilíndrica/cônica (em uma peça) 2) Uma aresta linear/circular ou face cilíndrica/cônica (em outra peça) Os eixos irão girar apenas para ficarem paralelos, mas não ser movido para ser coincidente. Se estiver usando aresta circular ou face cilíndrica/cônica, seu eixo será tomado como linha. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Crie uma restrição de paralelismo de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo paralelo a um plano selecionado. As partes não são movidas para serem coincidentes. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Crie a restrição angular de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) A princípio, essa restrição ajusta um eixo paralelo a um plano selecionado. Na caixa de diálogo pop-up a seguir, você pode definir um ângulo. As partes não são movidas para serem coincidentes. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Crie uma restrição Normal de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo vertical a um plano selecionado. As partes não são movidas para serem coincidentes. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Crie a restrição de paralelismo de planos Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Os planos só irão girar para serem paralelos, mas não movidos para ser coincidentes. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Crie a restrição Plano-Coincidente Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) É possível alterar o deslocamento no editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use planesParallel constraint. Criar a restrição de planos angulares Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Depois de definir essa restrição no início, o real ângulo entre ambos os planos é calculado e armazenado na entrada 'ângulo' no editor de objetos. O ângulo pode ser alterado no editor de objetos. Evite usar ângulos iguais a 0 e 180 graus - você pode obter resultados estranhos. Para isso, é melhor usar a restrição planesParallel. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Crie a restrição do centro de massa Selecione: 1) Uma face ou aresta fechada (em uma peça) 2) Uma face ou aresta fechada (em outra peça) É possível alterar o deslocamento no editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. A2plus_MuxAssembly Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crie ou atualize uma forma simples da montagem completa. Todas as peças da montagem são combinadas em uma única forma. Esta forma pode ser usada, por exemplo para outros módulos ou impressão 3D. A forma criada pode ser encontrada na visualização em árvore. Por padrão, ela fica invisível na primeira vez. Cannot create SimpleAssemblyShape SimpleAssemblyShape não pode ser criado No visible ImportParts found Nenhuma peça importada visível foi encontrada Create or refresh simple shape of complete assembly Crie ou atualize formas simples de montagem completa No active document found! Nenhum documento ativo encontrado! You have to open an assembly file first. Você deve abrir um arquivo de montagem primeiro. A2plus_appendMenu Initializing A2plus Workbench Iniciando Bancada de Trabalho A2Plus Constraint Restrição Solver Solucionador View Visão Misc Diversas A2plus_constraintDialog Really delete this constraint? Deseja realmente excluir esta restrição? Constraint does not exist anymore A restrição não existe mais Constraint has already been deleted A restrição já foi excluída Confirmation required Confirmação necessária Exit and delete new constraint? Sair e excluir a nova restrição? Information Informação Values changed! Accept Constraint? Valores alterados! Aceita a restrição? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida na vista 3D! Os botões de restrição adequados serão ativados. Leia também as dicas de cada botão. Constraint tools help Ajuda da ferramenta de restrição Constraint properties Propriedades de restrição Constraint Tools Ferramentas de restrição Opens a dialog to define constraints Abre uma janela para definir as restrições Define constraints Definir restrições Edit selected constraint Select a constraint in the treeview and hit this button Editar restrição selecionada Selecione uma restrição na visualização em árvore e aperte este botão Selection Error ! Erro de seleção! Please select exact one constraint first. Primeiro selecione exatamente uma restrição. Edit selected constraint Editar restrições selecionadas A2plus_constraintServices Recalculate direction of constraints Recalcular a direção das restrições Do you really want to recalculate the directions of all constraints? Você realmente deseja recalcular as direções de todas as restrições? Re-adjust directions of all constraints Reajustar as direções de todas as restrições Re-adjust directions of all constraints to fit best Reajustar as direções de todas as restrições para se ajustarem melhor A2plus_constraintcommands Add pointIdentity constraint Adicionar restrição de coincidência entre pontos Add pointOnLine constraint Adicionar restrição ponto na linha Add pointOnPlane constraint Adicionar restrição ponto no plano Add sphereCenterIdent constraint Adicionar restrição centro de esfera Add circularEdge constraint Adicionar restrição de borda circular Add axis Coincident constraint Adicionar restrição de coincidência de eixo Add axisParallel constraint Adicionar restrição de eixo paralelo Add axisPlaneParallel constraint Adicionar restrição de plano paralelo Add axisPlaneAngle constraint Adicionar restrição angular de plano Add axisPlaneNormal constraint Adicionar restrição de eixo normal ao plano Add planesParallel constraint Adicionar restrição de planos paralelos Add planeCoincident constraint Adicionar restrição de coincidência de planos Add angledPlanes constraint Adicionar restrição angular entre planos Add centerOfMass constraint Adicionar uma restrição de centro de massa A2plus_constraints Create the point-to-point constraint (pointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) Button gets active after correct selection. Crie a restrição ponto a ponto (pointIdentity) Selecione: 1) Um vértice, um círculo ou uma esfera (em uma peça) 2) Um vértice, um círculo ou uma esfera (em outra peça) O botão fica ativo após a seleção correta. Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. Crie a restrição ponto sobre linha (pointOnLine) Selecione: 1) Um vértice, uma esfera ou um círculo (em uma peça) 2) Uma aresta linear / circular ou uma face cilíndrica (em outra peça) Se a aresta circular for selecionada, seu eixo será considerado como definição de linha. O botão fica ativo após a seleção correta. Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de ponto no plano (pointOnPlane) Selecione: 1) Um vértice, um centro de um círculo ou uma esfera (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. Crie a restrição de borda circular (circularEdge) Selecione: 1) Uma aresta circular (em uma peça) 2) Uma aresta circular (em outra peça) O botão fica ativo após a seleção correta. Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. Crie a restrição de coicidência entre eixos (axisCoincident) 2 eixos estão alinhados e serão movidos para serem coincidentes. Selecione: 1) Uma face cilíndrica ou aresta linear (em uma peça) 2) Uma face cilíndrica ou aresta linear (em outra peça) O botão fica ativo após a seleção correta. Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. Crie a restrição de eixo paralelo (axisParallel) Os eixos irão girar apenas para ficarem paralelos, mas não serão movidos para serem coincidentes. Selecione: 1) Uma aresta linear / circular ou face cilíndrica (em uma peça) 2) Uma aresta linear / circular ou face cilíndrica (em outra peça) Se estiver usando uma aresta circular, seu eixo será considerado uma linha. O botão fica ativo após a seleção correta. Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição de paralelismo entre eixo e plano (axisPlaneParallel) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo paralelo a um plano selecionado. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição angular de eixo e plano (axisPlaneAngle) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) A princípio, essa restrição ajusta um eixo paralelo a um plano selecionado. Na caixa de diálogo a seguir, você pode definir um ângulo. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição normal entre plano e eixo (axisPlaneNormal) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo vertical a um plano selecionado. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de paralelismo entre planos (planesParallel) Os planos irão girar apenas para serem paralelos, mas não serão movidos para serem coincidentes. Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de plano coincidente (planeCoincident) Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry "angle" in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. Crie a restrição de ângulo entre planos (angledPlanes) Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Depois de definir esta restrição, o ângulo real entre os dois planos é calculado e armazenado na entrada &quot;ângulo&quot; no editor de objetos. O ângulo pode ser alterado no editor de objetos Evite usar ângulos iguais a 0 e 180 graus. Você pode obter resultados estranhos. Para isso, é melhor usar a restrição de planos paralelos. O botão fica ativo após a seleção correta. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. Crie a restrição entre esferas (sphereCenterIdent) Selecione: 1) Uma superfície esférica ou um vértice (em uma peça) 2) Uma superfície esférica, ou um vértice (em outra peça) Ao selecionar um círculo, seu centro é usado como um vértice. O botão fica ativo após a seleção correta. Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. Crie a restrição de centro de massa (centerOfMass) Selecione: 1) Uma face ou uma aresta fechada (em uma peça) 2) Uma face ou uma aresta fechada (em outra peça) É possível alterar o deslocamento no editor de objetos. O botão fica ativo após a seleção correta. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Converta uma peça, criada com outra bancada, em uma peça de montagem totalmente funcional. Após a conversão, as restrições podem ser aplicadas. Além disso, você pode duplicar a peça convertida. Para editar uma peça convertida, aperte o botão editar e siga as instruções mostradas na tela. Esta função é útil se você quiser usar, por exemplo, parafusos dentro desta bancada. Convert a part to A2plus Converter para peça de montagem Please select only visible parts! Selecione apenas peças visíveis! Conversion Aborted Conversão cancelada A2plus_lib Not existing part(s): Peça(s) não existente(s): Constraints of missing parts removed! Restrições de peças ausentes removidas! A2plus_partinformation Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crie uma planilha para pedidos ou informações de logística. A planilha criada pode ser encontrada na visualização em árvore. Por favor, preencha suas informações. Esta planilha será lida pela função de lista de peças do A2plus. No active document found! Nenhum documento ativo encontrado! You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. PARTINFO PARTINFO Create a spreadsheet for ordering or logistics information Criar uma planilha para pedidos ou informações de logística A2plus_recursiveUpdatePlanner Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levada para a montagem por esta função.) Este comando faz isso recursivamente em todas as submontagens envolvidas. As submontagens também são atualizadas, se necessário. Do you want to update only the selected parts? Quer atualizar apenas as peças selecionadas? RECURSIVE UPDATE ATUALIZAÇÃO RECURSIVA A part can only be imported from a FreeCAD '*.fcstd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .fcstd' Update imports recursively Atualizar as importações recursivamente A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Ferramenta de localização de conflitos: Resolva as restrições conflitantes tentando resolvê-las uma após a outra There are no a2p constraints within this document. Não há restrições de montagem neste documento. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? O seguinte par de restrições está em conflito com as restrições definidas anteriormente: restrição : {} com espelho: {} O par de restrição pertence aos objetos: objeto1: {} objeto2: {} Você deseja excluir este par de restrição? Searching for conflicting constraints Procurando por restrições conflitantes Identify conflicting constraints Identificar restrições conflitantes A2plus_solversystem An other assembly workbench for FreeCAD. Uma outra bancada de montagem para o FreeCAD. The following constraints are broken: As seguintes restrições foram quebradas: Do you want to delete them ? Você deseja excluí-las? Delete broken constraints? Excluir restrições quebradas? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool ! Restrições inconsistentes. Não é possível resolver o sistema. Execute a ferramenta de localização de conflito! Constraint mismatch Restrição incompatível The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! As peças destacadas não foram movidas. Elas não estão restritas (também nas cadeias de restrição) para uma peça fixa! Could not move some parts Não foi possível mover algumas peças Solve constraints Resolver restrições Solves constraints Resolve restrições Gui::Dialog::DlgSettingsA2Plus A2plus settings Configurações A2Plus User interface settings Configurações de interface Adds a creation button for every constraint type to the toolbar Adicionar um botão de criação para cada tipo de restrição na barra de ferramentas Show constraints in toolbar Mostrar restrições na barra de ferramentas Use native file manager of your OS Use o gerenciador de arquivos nativo do seu sistema operacional Behavior when updating imported parts Comportamento ao atualizar peças importadas All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Todas as peças da montagem serão abertas no FreeCAD para serem reconstruídas usando os valores das tabelas Recalculate imported parts before updating them (experimental) Recalcular as peças importadas antes de atualizá-las (experimental) Opens all subassemblies recursively to update them Abre todas as submontagens recursivamente para atualizá-las Enable recursive update of imported parts Ativar atualização recursiva de peças importadas While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Ao importar peças para a montagem, os nomes topológicos são gravados na propriedade &quot;mux Info&quot;. Quando as peças forem atualizadas posteriormente, as propriedades &quot;Sub Elementx&quot; das restrições serão atualizadas de acordo com a topologia &quot;mux Info&quot;. Use experimental topological naming Use nomenclatura topológica experimental Use color and transparency settings from imported parts Use as configurações de cor e transparência de peças importadas Inherit per face color and transparency from parts and subassemblies (experimental) Herdar transparência por face de peças e subconjuntos (experimental) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Formas de datum / construção invisíveis serão ocultadas. Nota: Nenhuma restrição deve ser conectada a formas de datum / construção superiores ou outras submontagens. Caso contrário, você pode quebrar a montagem. All imported parts will directly be put together as union. Todas as peças importadas serão reunidas diretamente como união. Do not import invisible shapes (for expert users) Não importe formas invisíveis (para usuários experientes) Use solid union for importing parts and subassemblies (experimental) Use união sólida para importar peças e submontagens (experimental) Storage of files Armazenamento de arquivos Use relative paths for imported parts Use caminhos relativos para peças importadas Use absolute paths for imported parts Use caminhos absolutos para peças importadas Specify the project folder in the field below Especifique a pasta do projeto no campo abaixo All files are in this project folder: Todos os arquivos estão nesta pasta de projeto: Default solver behavior Comportamento do solucionador padrão Solve automatically if a constraint property is changed Resolução automaticamente se uma propriedade de restrição for alterada Default solving method Método de solução padrão Solver tries to move all parts at once in direction to a fixed part O solucionador tenta mover todas as peças de uma vez em direção a uma parte fixa Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Use o solucionador &quot;magnético&quot;, resolvendo todas as peças de uma vez (para montagens dinâmicas) All parts will be fixed to the positions where they were created Todas as peças serão fixadas nas posições onde elas foram criadas Force fixed position to all imports Forçar posição fixa para todas as importações Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. O solucionador começa com uma peça fixa e outra restrita a ela. Todas as outras peças não são calculadas. Se uma solução puder ser encontrada, a próxima peça restrita é adicionada para o cálculo e assim por diante. Use solving of partial systems (recommended for static assemblies) Use a resolução de sistemas parciais (recomendado para montagens estáticas) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Usar configurações de cor e transparência de peças importadas. Nota: Para WB PartDesign, funciona apenas para Corpo. Workbench Constraint Restrição Solver Solucionador View Visão Misc Diversas Diagnostic Diagnóstico ================================================ FILE: translations/A2plus_pt-pt.ts ================================================ A2p_BoM Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Criar uma planilha com uma lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as peças presentes na montagem e criar uma nova planilha contendo a lista de peças. Este botão irá abrir uma caixa de diálogo com a pergunta: - Repitir recursivamente todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são listadas para a lista de peças Resposta Não: Apenas as partes dentro da montagem principal são listadas. No active document found! Nenhum documento ativo encontrado! You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. Please save before generating a parts list! Save now? Salve antes de gerar uma lista de peças! Salvar agora? Save document? Salvar documento? Parts list generation aborted! A geração da lista de peças foi cancelada! You have to save the assembly file first. Você tem que salvar o arquivo de montagem primeiro. Do you want to iterate recursively over all included subassemblies? Você deseja iterar recursivamente em todas as submontagens incluídas? Create a spreadsheet with a parts list of this file Cria uma planilha com uma lista de peças deste arquivo PARTINFO PARTINFO PARTSLIST LISTAPEÇA IDENTNO IDENTNO DESCRIPTION DESCRIÇÃO SUPPLIER FORNECEDOR SUPP.IDENTNO FORN.IDENTNO SUPP.DESCRIPTION FORN.DESCRIÇÃO (FILENAME) (NOME_DO_ARQUIVO) spreadsheet has been created a planilha foi criada BOM ERROR: Could not open sourcefile '{}' ERRO DA LISTA: não foi possível abrir o arquivo de origem '{}' POS POS QTY QTD #PARTSLIST# spreadsheet has been created #LISTA_DE_PEÇAS# spreadsheet has been created #PARTINFO# spreadsheet has been created #PARTINFO# planilha foi criada #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus A file must be selected to start this selector Please open a file and try again Um arquivo deve ser selecionado para iniciar este seletor Abra um arquivo e tente novamente No parts were selected to update. Select one part and try again. Nenhuma peça foi selecionada para atualização. Selecione uma peça e tente novamente. I have limited the number of parts that can be updated to 1. Select one part and try again. Eu limitei o número de peças que podem ser atualizadas para 1. Selecione uma peça e tente novamente. Updating Assembly. Atualizando Montagem. Update complete. All surfaces found Atualização completa. Todas as superfícies encontradas Update complete Atualização completa Total Constraints Restrições totais Repaired constraints Restrições reparadas Features not found Recursos não encontrados Constraint Checker Verificador de restrições Showing editing part Mostrando a peça de edição Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly program. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Atualiza a montagem A2plus. quando as peças são modificadas. Para atualizar a montagem, selecione a peça que você modificou e pressione o ícone. Quando a atualização terminar, execute o solver A2plus para verificar se há restrições quebradas. Esta é uma tentativa de reduzir o número de restrições quebradas causadas ao modificar uma peça do programa de montagem FreeCAD A2plus. Isso registra o restrições de correspondência de superfícies imediatamente antes da atualização e tenta reconecte-os após a atualização. Se isso falhar, você pode desfazer esta atualização usando o botão desfazer e executando o atualizador A2plus padrão. Updates parts from the A2plus program that has been modified Atualiza peças do programa A2plus que foram modificadas Updates modified parts. Atualiza peças modificadas. Import Objects Importar objetos Select objects to import Selecione objetos para importar Import Importar Importing importando Select a shape to be imported Selecione uma forma a ser importada Cancel Cancelar Choose Escolher Import of a shape reference aborted by user Importação de uma referência de forma abortada pelo usuário LCS_Collection LCS_Collection Add shapes from an external file to the assembly Adicionar formas de um arquivo externo à montagem Add shapes from an external file Adicionar formas de um arquivo externo A part can only be imported from a FreeCAD '*.FCStd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .FCStd' Value Error Erro de valor No visible Part to import found. Aborting operation Nenhuma peça visível para importar encontrada. Abortando operação Restore transparency to active document objects Restaurar transparência para objetos de documentos ativos Restore transparency to active document objects Restaurar transparência para objetos de documentos ativos Add a part from an external file to the assembly Adicionar uma peça de um arquivo externo à montagem Add a part from an external file Adicionar uma peça de um arquivo externo No active Document found Nenhum Documento ativo encontrado First create an empty file and save it under desired name Primeiro crie um arquivo vazio e salve-o com o nome desejado Unnamed document Documento sem nome Before inserting first part, please save the empty assembly to give it a name Antes de inserir a primeira peça, salve a montagem vazia para dar-lhe um nome Select FreeCAD document to import part from Selecione o documento FreeCAD para importar a peça Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Formatos suportados (* .FCStd * .fcstd * .stp * .step) ;; Todos os arquivos (*. *) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. A peça que você está tentando importar está fora da pasta do projeto! Verifique as configurações de preferência de montagem. Import Error Erro de importação Imported Object is empty/none O objeto importado está vazio/nenhum Before updating parts, you have to open an assembly file. Antes de atualizar as peças, você deve abrir um arquivo de montagem. Do you want to update only the selected parts? Você quer atualizar apenas as peças selecionadas? ASSEMBLY UPDATE ATUALIZAÇÃO DE MONTAGEM Source file not found Arquivo de origem não encontrado Unable to find {} Incapaz de achar {} Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, o novo formato é levado para a montagem por esta função.) Update parts imported into the assembly Atualizar peças importadas para a montagem Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Duplicar uma peça que já foi importada para a montagem. Selecione uma peça importada e clique neste botão. Uma cópia será criada e pode ser colocada em qualquer lugar com o mouse. Segure &quot;Shift&quot; para fazer isso várias vezes. Create duplicate of a part Duplicar uma peça Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Edite uma peça importada. Selecione uma peça importada e clique neste botão. O arquivo FCStd apropriado, vinculado a esta peça será aberto e você pode modificar a peça aqui. Após editar e salvar, você deve usar a função 'atualizar peças importadas' para ver o novo formato da peça dentro da montagem. Information Informação Please edit the highlighted object. When finished, update the assembly Edite o objeto destacado. Quando terminar, atualize a montagem Cannot find the local source object. Has it been deleted? Não é possível encontrar o objeto de origem local. Ele foi excluído? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Você deseja editar um arquivo que não se encontra na pasta do projeto. Isso não é permitido ao usar a preferência. Use pasta do projeto File error! Erro de arquivo! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Editando um arquivo STEP como arquivo '*.FCStd' Exporte o arquivo salvo como '.step' Edit an imported part (open linked FCStd file) Editar uma peça importada (abrir arquivo FCStd vinculado) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Mover a peça selecionada. Selecione uma peça e aperte este botão. A peça pode ser movida com o mouse. Se a peça estiver restrita, ela voltará a posição original na próxima resolução da montagem. Move the selected part Mover a peça selecionada Animation problem detected Problema de animação detectado Use system undo if necessary. Use o desfazer do sistema, se necessário. Invalid selection Seleção inválida A2plus will not move a part with property A2plus não moverá uma peça com propriedade Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Mover a peça obedecendo as regras de restrições. 1) Clique neste botão 2) Clique em uma peça e ela ficará colada ao cursor e pode ser movida 3) Clique novamente (ou pressione ESC) e o comando termina Move the selected part under constraints Mover a peça selecionada seguindo as restrições Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Excluir todas as restrições de uma peça selecionada. Selecione extamente uma peça e aperte este botão. Uma caixa de diálogo de confirmação é exibida, mostrando todas as restrições relacionadas à peça selecionada. Após a confirmação, todas as restrições relacionadas são excluídas de uma só vez. Selection Error Erro de Seleção Select exactly 1 part Selecione exatamente 1 peça Info Info No constraints refer to '%s' Nenhuma restrição refere-se a '%s' Delete {}'s constraint(s): - {}? Exclua as restrições de {}: - {}? Delete constraints? Excluir restrições? Deleting part's constraints Deletando as restrições da peça Delete all constraints of selected parts Deletar todas as restrições das peças selecionadas Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Destacar todas as peças que estão relacionadas a uma restrição selecionada. Selecione uma restrição na visualização em árvore e clique neste botão. A montagem inteira é alternada para o modo transparente e você pode inspecionar a restrição desejada. Highlight both constrained parts Destacar ambas as peças restritas Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Mostra apenas os elementos selecionados ou todos, se nenhum estiver selecionado. Selecione uma ou mais peças, que são as únicas que você deseja ver em uma grande montagem. Aperte este botão e todas as outras peças ficarão invisíveis. Se você não selecionar nada e clicar neste botão, todas as partes invisíveis ficarão visíveis novamente. Show only selected elements or all if none is selected Mostrar apenas os elementos selecionados ou todos se nenhum estiver selecionado Toggle transparency of assembly Alterar transparência da montagem Toggles transparency of assembly Altera transparência da montagem Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Alternar resolução automática. Ao pressionar este botão, você pode habilitar ou desabilitar a resolução automática após a edição de uma restrição. Se a solução automática estiver desabilitada, você deve iniciá-la manualmente pressionando o botão resolver Toggle auto solve Alternar resolução automática Toggle partial processing Alternar processamento parcial Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repare a visualização em árvore, se estiver danificada de alguma forma. Depois de pressionar este botão, as restrições serão agrupadas nas peças correspondentes novamente. Repair the tree view if it is somehow damaged Repare a visualização em árvore se estiver danificada de alguma forma Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Inverta a direção da última restrição. Se a última restrição que foi definida tem uma propriedade 'direção', seu valor será alternado entre 'alinhado' e 'oposto' (alinhamento do eixo) Flip direction of last constraint Inverter direção da última restrição Command Aborted Comando Abortado Flip aborted since no a2p constraints in active document. Inversão abortada porque não há restrições a2p no documento ativo. Generate HTML file with detailed constraining structure Gerar arquivo HTML com estrutura de restrição detalhada Generates HTML file with detailed constraining structure Gera arquivo HTML com estrutura de restrição detalhada Nothing found to be labeled! Nada foi encontrado para ser rotulado! This document does not contain A2p-objects Este documento não contém objetos de montagem Show part labels in 3D view Mostrar rótulos de peças na vista 3D Toggle showing part labels in 3D view Alternar para mostrar/ocultar os rótulos das peças na vista 3D Print detailed DOF information Imprima informações detalhadas sobre os graus de liberdade Toggle printing detailed DOF information Alterna a impressão de informações detalhadas sobre os graus de liberdade No active document found! Nenhum documento ativo encontrado! You have to open an assembly file first. Você deve abrir um arquivo de montagem primeiro. Convert absolute paths of imported parts to relative ones Converter caminhos absolutos de peças importadas em relativos Converts absolute paths of imported parts to relative ones Converte caminhos absolutos de peças importadas em relativos Save and exit the active document Salvar e sair do documento ativo Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrar proxies de peças importadas Montagens muito antigas feitas com a bancada A2plus não mostram os ícones corretos para peças importadas e têm propriedades obsoletas. Com esta função, você pode migrar os viewProviders de peças importadas antigas para o estado recente. Depois de executar esta função, você deve salvar e reabrir o arquivo de montagem. Migrate proxies of importedParts to recent version Migrar proxies de peças importadas para a versão recente Make sure you have a backup of your files. Proceed? Certifique-se de ter um backup de seus arquivos. Continuar? The proxies have been migrated. Os proxies foram migrados. Please save and reopen this assembly file Salve e reabra este arquivo de montagem Migrate proxies of imported parts Migrar proxies de peças importadas Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. A restrição %s foi quebrada. Excluir restrição? Caso contrário, verifique a ligação errada. Broken Constraint Restrição quebrada Removing constraint %s Removendo restrição %s Clean up solver debug output from 3D view Limpe a saída de depuração do solucionador da visualização 3D Clean up solver debug output from 3D view Limpe a saída de depuração do solucionador da visualização 3D Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crie ou atualize uma forma simples da montagem completa. Todas as peças da montagem são combinadas em uma única forma. Esta forma pode ser usada, por exemplo para outros módulos ou impressão 3D. A forma criada pode ser encontrada na visualização em árvore. Por padrão, ela fica invisível na primeira vez. Cannot create SimpleAssemblyShape SimpleAssemblyShape não pode ser criado No visible ImportParts found Nenhuma peça importada visível foi encontrada Union of Shapes FAILED União de Formas FALHOU Create or refresh simple shape of complete assembly Crie ou atualize formas simples de montagem completa BOM ERROR: Could not open sourcefile {} ERRO DA LISTA: não foi possível abrir o arquivo de origem {} Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Criar uma planilha com uma lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as peças presentes na montagem e criar uma nova planilha contendo a lista de peças. Este botão irá abrir uma caixa de diálogo com a pergunta: - Repitir recursivamente todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são listadas para a lista de peças Resposta Não: Apenas as partes dentro da montagem principal são listadas. Please save before generating a parts list! Save now? Salve antes de gerar uma lista de peças! Salvar agora? Save document? Salvar documento? Parts list generation aborted! A geração da lista de peças foi cancelada! You have to save the assembly file first. Você tem que salvar o arquivo de montagem primeiro. Do you want to iterate recursively over all included subassemblies? Você deseja iterar recursivamente em todas as submontagens incluídas? PARTSLIST LISTA_DE_PEÇAS POS POS QTY QTD spreadsheet has been created a planilha foi criada Create a spreadsheet with a parts list of this file Cria uma planilha com uma lista de peças deste arquivo Constraint properties Propriedades de restrição Direction Direção aligned alinhado opposed oposto none nenhum Flip direction Inverter direção Offset Deslocamento Set Zero Defina Zero Flip sign Inverter sinal Angle Ângulo Angle in the range 0 - 180 degrees Ângulo na faixa de 0 a 180 graus Round Arredondar Round angle to multiples of 5 Arredondar ângulo para múltiplos de 5 Perpendicular Perpendicular Adds/deletes 90 degrees Adiciona/exclui 90 graus Lock Rotation Bloquear Rotação False Falso True Verdadeiro Toggle Alternar Delete this constraint Excluir esta restrição Delete Excluir Solve constraints Resolver restrições Solve Resolver Accept the settings Aceitar as configurações Accept Aceitar Constraint does not exist anymore A restrição não existe mais Constraint has already been deleted A restrição já foi excluída Confirmation required Confirmação necessária Really delete this constraint? Deseja realmente excluir esta restrição? Exit and delete new constraint? Sair e excluir a nova restrição? Values changed! Accept Constraint? Valores alterados! Aceita a restrição? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida na vista 3D! Os botões de restrição adequados serão ativados. Leia também as dicas de cada botão. Constraint Tools Ferramentas de restrição Help Ajuda Constraint tools help Ajuda da ferramenta de restrição Opens a dialog to define constraints Abre uma janela para definir as restrições Define constraints Definir restrições Edit selected constraint Select a constraint in the treeview and hit this button Editar restrição selecionada Selecione uma restrição na visualização em árvore e aperte este botão Selection Error! Erro de seleção! Please select exact one constraint first. Primeiro selecione exatamente uma restrição. Edit selected constraint Editar restrições selecionadas 3D-Debug contained '{}' vectors 3D-Debug continha vetores '{}' Did not update converted part '{}' Não atualizou a parte convertida '{}' Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levada para a montagem por esta função.) Este comando faz isso recursivamente em todas as submontagens envolvidas. As submontagens também são atualizadas, se necessário. Before recursive updating parts, you have to open an assembly file. Antes de atualizar peças recursivamente, você deve abrir um arquivo de montagem. RECURSIVE UPDATE ATUALIZAÇÃO RECURSIVA A part can only be imported from a FreeCAD '*.fcstd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .fcstd' ==== Assembly '{}' has been updated! ===== ==== A montagem '{}' foi atualizada! ===== Update imports recursively Atualizar as importações recursivamente Remove faulty constraint '{}' Remova a restrição defeituosa '{}' The following constraints are broken: As seguintes restrições foram quebradas: Do you want to delete them? Deseja excluí-los? Delete broken constraints? Excluir restrições quebradas? There are '{}' dependencies Existem dependências '{}' Writing visual hierarchy to: '{}' Escrevendo hierarquia visual para: '{}' ===== Start Solving System ====== ======= Inicar sistema de resolução ==== ===== System solved using partial + recursive unfixing ===== ======= Sistema resolvido usando desfixação parcial + recursivo ===== ===== Could not solve system ====== ===== Não foi possível resolver o sistema ====== Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Restrições inconsistentes. Não é possível resolver System. Execute a ferramenta de localização de conflitos! Constraint mismatch Restrição incompatível The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! As peças destacadas não foram movidas. Elas não estão restritas (também nas cadeias de restrição) para uma peça fixa! Could not move some parts Não foi possível mover algumas peças Calculation stopped, no convergency anymore! Cálculo interrompido, não há mais convergência! Reached max calculations count: {} Contagem máxima de cálculos alcançada: {} Before running solver, you have to open an assembly file. Antes de executar o solver, você deve abrir um arquivo de montagem. Solves constraints Resolve restrições Import ignored invisible shape: '{}' Importar forma invisível ignorada: '{}' You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. Set 0 to Defina 0 para field campo Toggle between Alternar entre Flip direction between Inverter a direção entre and e Flip sign between '+' and '-' in Inverter o sinal entre '+' e '-' em Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Crie uma planilha com um lista de peças deste arquivo. Esta função irá ler a planilha #PARTINFO# de todas as partes envolvidas do montagem e criar um novo planilha contendo o lista de peças. Este botão abrirá uma caixa de diálogo com a pergunta: - Iterar recursivamente sobre todos os subconjuntos? Resposta Sim: Todas as peças de todos os subconjuntos são coletados para a lista de peças Resposta Não: Somente as peças dentro do montagem recente são coletados. Flip direction between 'aligned' and 'opposed' Inverta a direção entre 'alinhado' e 'oposto' Set 0 to 'Offset' field Definir 0 para o campo 'Deslocamento' Flip sign between '+' and '-' in 'Offset' field Inverter o sinal entre '+' e '-' no campo 'Deslocamento' Toggle between 'False' and 'True' Alternar entre 'Falso' e 'Verdadeiro' Constraint Tools help Ajuda das Ferramentas de Restrição Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida dentro da visualização 3D! Os botões de restrição adequados seja ativado. Leia também as dicas de ferramentas de cada botão. Opens a dialog to define constraints Abre uma caixa de diálogo para definir restrições Select a constraint in the treeview and hit this button. Selecione uma restrição na árvore e aperte este botão. Errors occurred during processing of {} Ocorreram erros durante o processamento de {} Dependencies between {} - {}, type {} Dependências entre {} - {}, digite {} Imported Object is empty/none O objeto importado está vazio/nenhum Unable to find '{}' Incapaz de achar '{}' Updating by SubElement-Map: '{}' => '{}' Atualizando por SubElement-Map: '{}' =&gt; '{}' Not existing part(s): Peça(s) não existente(s): Constraints of missing parts removed! Restrições de peças ausentes removidas! Union of Shapes passed. 'SimpleAssemblyShape' are created. União das Formas aprovada. 'SimpleAssemblyShape' foram criados. Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crie uma planilha para pedidos ou informações de logística. A planilha criada pode ser encontrada na visualização em árvore. Por favor, preencha suas informações. Esta planilha será lida pela função de lista de peças do A2plus. Create a spreadsheet for ordering or logistics information Criar uma planilha para pedidos ou informações de logística createUpdateFileList(): ImportPath = {} createUpdateFileList(): ImportPath = {} Do you want to update the selected parts only? Deseja atualizar apenas as peças selecionadas? Assembly '{}' has been updated! A montagem '{}' foi atualizada! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar peças, que foram importados para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levado à montagem por esta função). Este comando faz isso recursivamente sobre todas as submontagens envolvidas. As submontagens são atualizadas, se necessário também. Current Rigid = '{}' Atualmente Rígido = '{}' is Fixed está fixado is not Fixed and has {} DegreesOfFreedom não está fixo e tem {} graus de liberdade Depends on Rigid = {} Depende do rígido = {} DOF Position free with this rigid = {} GDL de Posição livre com este rígido = {} DOF Rotation free with this rigid = {} GDL de Rotação livre com este rígido = {} failed to open file with None name! falha ao abrir arquivo com nenhum nome! file '{}' does not exist! arquivo '{}' não existe! file '{}' is no FCStd file! arquivo '{}' não é um arquivo FCStd! FREE LIVRE Fixed Fixo DOFs: {} GDLs: {} There are {:.0f} dependencies Existem {:.0f} dependências Hierarchy: Hierarquia: Writing visual hierarchy to: '{}' Escrevendo hierarquia visual para: '{}' A2P assembly hierarchy visualization Visualização da hierarquia de montagem A2P FIXED FIXO TARGET POS-ACCURACY :{} ALVO DA PRECISÃO DA POSIÇÃO :{} REACHED POS-ACCURACY :{} PRECISÃO DA POSIÇÃO ALCANÇADA :{} TARGET SPIN-ACCURACY :{} PRECISÃO DE GIRO ALVO :{} REACHED SPIN-ACCURACY :{} PRECISÃO DE GIRO ALCANÇADA:{} SA SPIN-ACCURACY :{} SA PRECISÃO DE GIRO :{} Start Solving System Iniciar Sistema de Resolução System solved using partial + recursive unfixing Sistema resolvido usando desfixação parcial + recursivo Could not solve system Não foi possível resolver o sistema Calculation stopped, no convergency anymore! Cálculo interrompido, não há mais convergência! Reached max calculations count: {} Contagem máxima de cálculos alcançada: {} Starting solveConstraints latest script... Iniciando o script mais recente de resolução de restrições... A file must be selected to start this selector. Um arquivo deve ser selecionado para iniciar este seletor. Please open a file and try again. Abra um arquivo e tente novamente. No parts were selected to update. Nenhuma peça foi selecionada para atualização. Select one part and try again. Selecione uma peça e tente novamente. I have limited the number of parts that can be updated to 1. Eu limitei o número de partes que podem ser atualizadas para 1. Update complete. Atualização completa. All surfaces found Todas as superfícies encontradas Update complete: Atualização completa: Total constraints - {} Restrições totais - {} Repaired constraints - {} Restrições reparadas - {} Features not found - {} Recursos não encontrados - {} Status Status Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Atualiza a montagem A2plus quando as peças são modificadas. Para atualizar a montagem, selecione a peça que você modificou e pressione o ícone. Quando a atualização terminar, execute o solver A2plus para verificar se há restrições quebradas. Esta é uma tentativa de reduzir o número de restrições quebradas causadas ao modificar uma peça do programa de montagem FreeCAD A2plus. Isso registra as superfícies de correspondência de restrições imediatamente antes da atualização e tenta reconectá-las após a atualização. Se isso falhar, você pode desfazer esta atualização usando o botão Desfazer e executando o atualizador A2plus padrão. To view the constraints, press 'Open Viewer' Para visualizar as restrições, pressione 'Abrir visualizador' View the listed constraints in the the Constraint Viewer. Visualize as restrições listadas no Visualizador de restrições. Open Viewer Abrir visualizador Close this form. Feche este formulário. Close Fechar A A2plus file must be opened to start this checker Um arquivo A2plus deve ser aberto para iniciar este verificador Please open a file and try again Abra um arquivo e tente novamente Cannot find any constraints in this file. Não foi possível encontrar nenhuma restrição neste arquivo. Checking constraints Verificando restrições No constraint errors found Nenhum erro de restrição encontrado Checking {} of {} Verificando {} de {} Checking Constraints Verificando Restrições Checks constraints Verifica restrições This checks all constraints. After checking it will list all constraints that it found problems with. Isso verifica todas as restrições. Após a verificação, ele listará todas as restrições com as quais encontrou problemas. The list can then be opened in the Constraint viewer. A lista pode ser aberta no visualizador de restrições. Constraint Viewer Visualizador de restrições Labels Etiquetas Open Dialog Abrir Diálogo Delete labels Excluir etiquetas Places of accuracy = {} Lugares de precisão = {} Open Help Abrir Ajuda Broken Constraints Restrições quebradas Suppress Suprimir Import from part Importar da peça Select a part and import all of the constraints for that part Selecione uma peça e importe todas as restrições para essa peça Import from Tree Importar da Árvore Copy selected constraints from the Tree Copie as restrições selecionadas da Árvore Clear Table Limpar Tabela Clear the table Limpar a tabela Attach to Anexar a Select the feature to change in table. Select surface to change to. Selecione o recurso a ser alterado na tabela. Selecione a superfície para a qual mudar. Clear Tree Limpar Árvore Remove search color from tree. Remova a cor de pesquisa da árvore. Find in Tree Encontrar na Árvore Finds the constraint in the tree for the select row in table. Encontra a restrição na árvore para a linha selecionada na tabela. Std Solver Solucionador Padrão Same as the solver above. Igual ao solucionador acima. Find w label Encontre o rótulo w Press to toggle a label for selected feature. Pressione para alternar um rótulo para o recurso selecionado. Close this window Fechar esta janela A part feature must be selected in the table Um recurso de peça deve ser selecionado na tabela The table has lost focus. Please reselect in the table. A tabela perdeu o foco. Selecione novamente na tabela. The selected text in the table is not a proper feature name: {} {} O texto selecionado na tabela não é um nome de recurso adequado: {} {} Find Constraint Encontrar Restrição CD_Help for Diagnostic tools.pdf CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? A restrição não está no arquivo. Foi deletada? A file must be opened to start this selector. Please open a file and try again Um arquivo deve ser aberto para iniciar este seletor. Abra um arquivo e tente novamente Nothing was selected in the Tree. Nada foi selecionado na Árvore. There were no constraints selected in the Tree. Select one or more constraints and try again. Não havia restrições selecionadas na Árvore. Selecione uma ou mais restrições e tente novamente. No parts were selected in the window. Nenhuma peça foi selecionada na janela. There are no constraints for this part. Não existem restrições para esta peça. There are no constraints between these parts. Não há restrições entre essas peças. Both parts are fixed. As duas peças estão fixas. Surfaces can only be replaced in columns Part1 feat or Part2 feat As superfícies só podem ser substituídas em colunas Part1 feat or Part2 feat No feature has been selected Nenhum recurso foi selecionado The constraint can only be moved to another surface of the same part A restrição só pode ser movida para outra superfície da mesma peça removeObserver failed in C checker remover o observador falhou no verificador C View and edit selected constraints Visualize e edite as restrições selecionadas Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Visualizador de restrições. Você pode visualizar os recursos aos quais a restrição está anexada, execute uma única restrição ou altere o recurso ao qual a restrição está anexada. Consulte a ajuda para obter mais informações. Create Labels Criar etiquetas Add Face Labels Adicionar rótulos na face Add labels to all of the faces on a selected part Adicionar legendas a todas as faces em uma peça selecionada Add Edge Labels Adicionar rótulos de aresta Add labels to all of the edges on a selected part Adicione rótulos a todas as arestas de uma peça selecionada Add Vertex Labels Adicionar rótulos de vértice Add labels to all of the vertices on a selected part Adicionar rótulos a todos os vértices em uma peça selecionada Delete Labels Excluir rótulos Delete all labels Excluir todas as etiquetas Face Face Edge Aresta Vertex Vértice One part must be selected. Uma peça deve ser selecionada. Please select One part and try again Selecione uma peça e tente novamente SelObserverOFF by except SelObserverOFF by except Use one mouse button to select features Use um botão do mouse para selecionar recursos Use left mouse button to select two features. Do not use the control key. Use o botão esquerdo do mouse para selecionar dois recursos. Não use a tecla Ctrl. No file is opened. You must open an assembly file first. Nenhum arquivo é aberto. Você deve abrir um arquivo de montagem primeiro. OneButton is ON OneButton está LIGADO OneButton is OFF OneButton está DESLIGADO Warning Aviso An other assembly workbench for FreeCAD. Uma outra bancada de montagem para o FreeCAD. Initializing A2plus Workbench v{} Inciando Bancada de Trabalho A2Plus v{} Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Select a constraint in the treeview and hit this button. Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Adicionar restrição de identidade de ponto Add PointOnLine constraint Adicionar restrição de ponto na linha Add PointOnPlane constraint Adicionar restrição de ponto no plano Add SphereCenterIdent constraint Adicionar restrição de identidade do centro da esfera Add CircularEdge constraint Adicionar restrição de aresta circular Add AxisCoincident constraint Adicionar restrição de Coincidência de Eixo Add AxisParallel constraint Adicionar restrição de eixo paralelo Add AxisPlaneParallel constraint Adicionar restrição de eixo-plano paralelo Add AxisPlaneAngle constraint Adicionar restrição de ângulo de plano e eixo Add AxisPlaneNormal constraint Adicionar restrição normal de plano e eixo Add PlanesParallel constraint Adicionar restrição de planos paralelos Add PlaneCoincident constraint Adicionar restrição de Plano Coincidente Add AngledPlanes constraint Adicionar restrição de planos angulares Add CenterOfMass constraint Adicionar restrição de centro de massa reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): restrições desconhecidas encontradas: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Todas as restrições foram recalculadas. Recalculate direction of constraints Recalcular a direção das restrições Do you really want to recalculate the directions of all constraints? Você realmente deseja recalcular as direções de todas as restrições? Re-adjust directions of all constraints Reajustar as direções de todas as restrições Re-adjust directions of all constraints to best fit Reajuste as direções de todas as restrições para melhor ajuste Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Crie a restrição ponto a ponto (identidade do ponto) Selecione: 1) Um vértice, um círculo ou uma esfera (em uma peça) 2) Um vértice, um círculo ou uma esfera (em outra peça) Se o Círculo ou Esfera for selecionado, centro do recurso será considerado como definição de ponto. Button gets active after correct selection. O botão fica ativo após a seleção correta. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Crie a restrição Ponto na Linha Selecione: 1) Um vértice, uma esfera ou um círculo (em uma peça) 2) Uma aresta linear/circular ou uma face cilíndrica/cônica (em outra peça) Se a aresta circular for selecionada, seu eixo será tomado como definição de linha. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Criar a restrição Ponto no Plano Selecione: 1) Um vértice, um centro de um círculo ou uma esfera (em uma peça) 2) Um avião (em outra peça) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Crie a restrição Esfera para Esfera Selecione: 1) Uma superfície esférica ou um vértice (em uma peça) 2) Uma superfície esférica, ou um vértice (em outra peça) Ao selecionar uma esfera, seu centro é usado como um vértice. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Crie a restrição Circular Edge Selecione: 1) Uma aresta circular (em uma peça) 2) Uma borda circular (em outra peça) Ao selecionar um círculo, seu centro é usado como um vértice. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Crie a restrição Eixo a Eixo Selecione: 1) Uma aresta linear ou face cilíndrica/cônica (em uma peça) 2) Uma aresta linear ou face cilíndrica/cônica (em outra peça) Eixos não fixos serão alinhados e movidos para serem coincidentes. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Crie a restrição de eixos paralelos Selecione: 1) Uma aresta linear/circular ou face cilíndrica/cônica (em uma peça) 2) Uma aresta linear/circular ou face cilíndrica/cônica (em outra peça) Os eixos irão girar apenas para ficarem paralelos, mas não ser movido para ser coincidente. Se estiver usando aresta circular ou face cilíndrica/cônica, seu eixo será tomado como linha. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Crie uma restrição de paralelismo de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo paralelo a um plano selecionado. As partes não são movidas para serem coincidentes. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Crie a restrição angular de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) A princípio, essa restrição ajusta um eixo paralelo a um plano selecionado. Na caixa de diálogo pop-up a seguir, você pode definir um ângulo. As partes não são movidas para serem coincidentes. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Crie uma restrição Normal de eixo e plano Selecione: 1) Uma aresta linear ou eixo de cilindro/cone (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo vertical a um plano selecionado. As partes não são movidas para serem coincidentes. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Crie a restrição de paralelismo de planos Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Os planos só irão girar para serem paralelos, mas não movidos para ser coincidentes. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Crie a restrição Plano-Coincidente Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) É possível alterar o deslocamento no editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use planesParallel constraint. Criar a restrição de planos angulares Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Depois de definir essa restrição no início, o real ângulo entre ambos os planos é calculado e armazenado na entrada 'ângulo' no editor de objetos. O ângulo pode ser alterado no editor de objetos. Evite usar ângulos iguais a 0 e 180 graus - você pode obter resultados estranhos. Para isso, é melhor usar a restrição planesParallel. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Crie a restrição do centro de massa Selecione: 1) Uma face ou aresta fechada (em uma peça) 2) Uma face ou aresta fechada (em outra peça) É possível alterar o deslocamento no editor de objetos. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. A2plus_MuxAssembly Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Crie ou atualize uma forma simples da montagem completa. Todas as peças da montagem são combinadas em uma única forma. Esta forma pode ser usada, por exemplo para outros módulos ou impressão 3D. A forma criada pode ser encontrada na visualização em árvore. Por padrão, ela fica invisível na primeira vez. Cannot create SimpleAssemblyShape SimpleAssemblyShape não pode ser criado No visible ImportParts found Nenhuma peça importada visível foi encontrada Create or refresh simple shape of complete assembly Crie ou atualize formas simples de montagem completa No active document found! Nenhum documento ativo encontrado! You have to open an assembly file first. Você deve abrir um arquivo de montagem primeiro. A2plus_appendMenu Initializing A2plus Workbench Iniciando Bancada de Trabalho A2Plus Constraint Restrição Solver Solucionador View Visão Misc Diversas A2plus_constraintDialog Really delete this constraint? Deseja realmente excluir esta restrição? Constraint does not exist anymore A restrição não existe mais Constraint has already been deleted A restrição já foi excluída Confirmation required Confirmação necessária Exit and delete new constraint? Sair e excluir a nova restrição? Information Informação Values changed! Accept Constraint? Valores alterados! Aceita a restrição? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Selecione a geometria a ser restringida na vista 3D! Os botões de restrição adequados serão ativados. Leia também as dicas de cada botão. Constraint tools help Ajuda da ferramenta de restrição Constraint properties Propriedades de restrição Constraint Tools Ferramentas de restrição Opens a dialog to define constraints Abre uma janela para definir as restrições Define constraints Definir restrições Edit selected constraint Select a constraint in the treeview and hit this button Editar restrição selecionada Selecione uma restrição na visualização em árvore e aperte este botão Selection Error ! Erro de seleção! Please select exact one constraint first. Primeiro selecione exatamente uma restrição. Edit selected constraint Editar restrições selecionadas A2plus_constraintServices Recalculate direction of constraints Recalcular a direção das restrições Do you really want to recalculate the directions of all constraints? Você realmente deseja recalcular as direções de todas as restrições? Re-adjust directions of all constraints Reajustar as direções de todas as restrições Re-adjust directions of all constraints to fit best Reajustar as direções de todas as restrições para se ajustarem melhor A2plus_constraintcommands Add pointIdentity constraint Adicionar restrição de coincidência entre pontos Add pointOnLine constraint Adicionar restrição ponto na linha Add pointOnPlane constraint Adicionar restrição ponto no plano Add sphereCenterIdent constraint Adicionar restrição centro de esfera Add circularEdge constraint Adicionar restrição de borda circular Add axis Coincident constraint Adicionar restrição de coincidência de eixo Add axisParallel constraint Adicionar restrição de eixo paralelo Add axisPlaneParallel constraint Adicionar restrição de plano paralelo Add axisPlaneAngle constraint Adicionar restrição angular de plano Add axisPlaneNormal constraint Adicionar restrição de eixo normal ao plano Add planesParallel constraint Adicionar restrição de planos paralelos Add planeCoincident constraint Adicionar restrição de coincidência de planos Add angledPlanes constraint Adicionar restrição angular entre planos Add centerOfMass constraint Adicionar uma restrição de centro de massa A2plus_constraints Create the point-to-point constraint (pointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) Button gets active after correct selection. Crie a restrição ponto a ponto (pointIdentity) Selecione: 1) Um vértice, um círculo ou uma esfera (em uma peça) 2) Um vértice, um círculo ou uma esfera (em outra peça) O botão fica ativo após a seleção correta. Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. Crie a restrição ponto sobre linha (pointOnLine) Selecione: 1) Um vértice, uma esfera ou um círculo (em uma peça) 2) Uma aresta linear / circular ou uma face cilíndrica (em outra peça) Se a aresta circular for selecionada, seu eixo será considerado como definição de linha. O botão fica ativo após a seleção correta. Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de ponto no plano (pointOnPlane) Selecione: 1) Um vértice, um centro de um círculo ou uma esfera (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. Crie a restrição de borda circular (circularEdge) Selecione: 1) Uma aresta circular (em uma peça) 2) Uma aresta circular (em outra peça) O botão fica ativo após a seleção correta. Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. Crie a restrição de coicidência entre eixos (axisCoincident) 2 eixos estão alinhados e serão movidos para serem coincidentes. Selecione: 1) Uma face cilíndrica ou aresta linear (em uma peça) 2) Uma face cilíndrica ou aresta linear (em outra peça) O botão fica ativo após a seleção correta. Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. Crie a restrição de eixo paralelo (axisParallel) Os eixos irão girar apenas para ficarem paralelos, mas não serão movidos para serem coincidentes. Selecione: 1) Uma aresta linear / circular ou face cilíndrica (em uma peça) 2) Uma aresta linear / circular ou face cilíndrica (em outra peça) Se estiver usando uma aresta circular, seu eixo será considerado uma linha. O botão fica ativo após a seleção correta. Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição de paralelismo entre eixo e plano (axisPlaneParallel) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo paralelo a um plano selecionado. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição angular de eixo e plano (axisPlaneAngle) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) A princípio, essa restrição ajusta um eixo paralelo a um plano selecionado. Na caixa de diálogo a seguir, você pode definir um ângulo. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. Crie a restrição normal entre plano e eixo (axisPlaneNormal) Selecione: 1) Uma borda linear ou eixo do cilindro (em uma peça) 2) Uma face plana (em outra peça) Esta restrição ajusta um eixo vertical a um plano selecionado. As peças não são movidas para serem coincidentes. O botão fica ativo após a seleção correta. Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de paralelismo entre planos (planesParallel) Os planos irão girar apenas para serem paralelos, mas não serão movidos para serem coincidentes. Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. Crie a restrição de plano coincidente (planeCoincident) Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) O botão fica ativo após a seleção correta. Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry "angle" in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. Crie a restrição de ângulo entre planos (angledPlanes) Selecione: 1) Um plano (em uma peça) 2) Um plano (em outra peça) Depois de definir esta restrição, o ângulo real entre os dois planos é calculado e armazenado na entrada &quot;ângulo&quot; no editor de objetos. O ângulo pode ser alterado no editor de objetos Evite usar ângulos iguais a 0 e 180 graus. Você pode obter resultados estranhos. Para isso, é melhor usar a restrição de planos paralelos. O botão fica ativo após a seleção correta. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. Crie a restrição entre esferas (sphereCenterIdent) Selecione: 1) Uma superfície esférica ou um vértice (em uma peça) 2) Uma superfície esférica, ou um vértice (em outra peça) Ao selecionar um círculo, seu centro é usado como um vértice. O botão fica ativo após a seleção correta. Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. Crie a restrição de centro de massa (centerOfMass) Selecione: 1) Uma face ou uma aresta fechada (em uma peça) 2) Uma face ou uma aresta fechada (em outra peça) É possível alterar o deslocamento no editor de objetos. O botão fica ativo após a seleção correta. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Converta uma peça, criada com outra bancada, em uma peça de montagem totalmente funcional. Após a conversão, as restrições podem ser aplicadas. Além disso, você pode duplicar a peça convertida. Para editar uma peça convertida, aperte o botão editar e siga as instruções mostradas na tela. Esta função é útil se você quiser usar, por exemplo, parafusos dentro desta bancada. Convert a part to A2plus Converter para peça de montagem Please select only visible parts! Selecione apenas peças visíveis! Conversion Aborted Conversão cancelada A2plus_lib Not existing part(s): Peça(s) não existente(s): Constraints of missing parts removed! Restrições de peças ausentes removidas! A2plus_partinformation Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Crie uma planilha para pedidos ou informações de logística. A planilha criada pode ser encontrada na visualização em árvore. Por favor, preencha suas informações. Esta planilha será lida pela função de lista de peças do A2plus. No active document found! Nenhum documento ativo encontrado! You have to open a FCStd file first. Você deve abrir um arquivo FCStd primeiro. PARTINFO PARTINFO Create a spreadsheet for ordering or logistics information Criar uma planilha para pedidos ou informações de logística A2plus_recursiveUpdatePlanner Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Atualizar as peças que foram importadas para a montagem. (Se você modificar uma peça em um arquivo externo, a nova forma é levada para a montagem por esta função.) Este comando faz isso recursivamente em todas as submontagens envolvidas. As submontagens também são atualizadas, se necessário. Do you want to update only the selected parts? Quer atualizar apenas as peças selecionadas? RECURSIVE UPDATE ATUALIZAÇÃO RECURSIVA A part can only be imported from a FreeCAD '*.fcstd' file Uma peça só pode ser importada de um arquivo FreeCAD '* .fcstd' Update imports recursively Atualizar as importações recursivamente A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Ferramenta de localização de conflitos: Resolva as restrições conflitantes tentando resolvê-las uma após a outra There are no a2p constraints within this document. Não há restrições de montagem neste documento. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? O seguinte par de restrições está em conflito com as restrições definidas anteriormente: restrição : {} com espelho: {} O par de restrição pertence aos objetos: objeto1: {} objeto2: {} Você deseja excluir este par de restrição? Searching for conflicting constraints Procurando por restrições conflitantes Identify conflicting constraints Identificar restrições conflitantes A2plus_solversystem An other assembly workbench for FreeCAD. Uma outra bancada de montagem para o FreeCAD. The following constraints are broken: As seguintes restrições foram quebradas: Do you want to delete them ? Você deseja excluí-las? Delete broken constraints? Excluir restrições quebradas? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool ! Restrições inconsistentes. Não é possível resolver o sistema. Execute a ferramenta de localização de conflito! Constraint mismatch Restrição incompatível The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! As peças destacadas não foram movidas. Elas não estão restritas (também nas cadeias de restrição) para uma peça fixa! Could not move some parts Não foi possível mover algumas peças Solve constraints Resolver restrições Solves constraints Resolve restrições Gui::Dialog::DlgSettingsA2Plus A2plus settings Configurações A2Plus User interface settings Configurações de interface Adds a creation button for every constraint type to the toolbar Adicionar um botão de criação para cada tipo de restrição na barra de ferramentas Show constraints in toolbar Mostrar restrições na barra de ferramentas Use native file manager of your OS Use o gerenciador de arquivos nativo do seu sistema operacional Behavior when updating imported parts Comportamento ao atualizar peças importadas All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Todas as peças da montagem serão abertas no FreeCAD para serem reconstruídas usando os valores das tabelas Recalculate imported parts before updating them (experimental) Recalcular as peças importadas antes de atualizá-las (experimental) Opens all subassemblies recursively to update them Abre todas as submontagens recursivamente para atualizá-las Enable recursive update of imported parts Ativar atualização recursiva de peças importadas While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. Ao importar peças para a montagem, os nomes topológicos são gravados na propriedade &quot;mux Info&quot;. Quando as peças forem atualizadas posteriormente, as propriedades &quot;Sub Elementx&quot; das restrições serão atualizadas de acordo com a topologia &quot;mux Info&quot;. Use experimental topological naming Use nomenclatura topológica experimental Use color and transparency settings from imported parts Use as configurações de cor e transparência de peças importadas Inherit per face color and transparency from parts and subassemblies (experimental) Herdar transparência por face de peças e subconjuntos (experimental) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Formas de datum / construção invisíveis serão ocultadas. Nota: Nenhuma restrição deve ser conectada a formas de datum / construção superiores ou outras submontagens. Caso contrário, você pode quebrar a montagem. All imported parts will directly be put together as union. Todas as peças importadas serão reunidas diretamente como união. Do not import invisible shapes (for expert users) Não importe formas invisíveis (para usuários experientes) Use solid union for importing parts and subassemblies (experimental) Use união sólida para importar peças e submontagens (experimental) Storage of files Armazenamento de arquivos Use relative paths for imported parts Use caminhos relativos para peças importadas Use absolute paths for imported parts Use caminhos absolutos para peças importadas Specify the project folder in the field below Especifique a pasta do projeto no campo abaixo All files are in this project folder: Todos os arquivos estão nesta pasta de projeto: Default solver behavior Comportamento do solucionador padrão Solve automatically if a constraint property is changed Resolução automaticamente se uma propriedade de restrição for alterada Default solving method Método de solução padrão Solver tries to move all parts at once in direction to a fixed part O solucionador tenta mover todas as peças de uma vez em direção a uma parte fixa Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Use o solucionador &quot;magnético&quot;, resolvendo todas as peças de uma vez (para montagens dinâmicas) All parts will be fixed to the positions where they were created Todas as peças serão fixadas nas posições onde elas foram criadas Force fixed position to all imports Forçar posição fixa para todas as importações Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. O solucionador começa com uma peça fixa e outra restrita a ela. Todas as outras peças não são calculadas. Se uma solução puder ser encontrada, a próxima peça restrita é adicionada para o cálculo e assim por diante. Use solving of partial systems (recommended for static assemblies) Use a resolução de sistemas parciais (recomendado para montagens estáticas) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Usar configurações de cor e transparência de peças importadas. Nota: Para WB PartDesign, funciona apenas para Corpo. Workbench Constraint Restrição Solver Solucionador View Visão Misc Diversas Diagnostic Diagnóstico ================================================ FILE: translations/A2plus_ru.ts ================================================ A2p_BoM POS № пп QTY Кол-во PARTINFO ИнфоОДетали PARTSLIST Спецификация IDENTNO Артикул DESCRIPTION Описание SUPPLIER Поставщик SUPP.IDENTNO Арт.Поставщика SUPP.DESCRIPTION Описание Поставщика (FILENAME) (Название файла) #PARTINFO# spreadsheet has been created Была создана электронная таблица #ИнфоОДетали# BOM ERROR: Could not open sourcefile '{}' Ошибка BOM: Невозможно открыть исходный файл '{}' #PARTSLIST# spreadsheet has been created Была создана электронная таблица #Спецификация# #PARTSLIST_CutListOptimizer# spreadsheet has been created Была создана электронная таблица #PARTSLIST_CutListOptimizer# CLO_PARTSLIST Length Длина Width Ширина Qty Кол-во Material Материал Label Метка Enabled Разрешено A2plus Updating Assembly. Обновление Сборки. Constraint Checker Проверка Ограничений Showing editing part Показ изменяемой детали Updates parts from the A2plus program that has been modified Обновить детали, которые были изменены, из программы A2plus Import Objects Импорт Объектов Select objects to import Выберите объекты для импорта Import Импорт Importing Импортирование Select a shape to be imported Выбрать форму для импорта Cancel Отмена Choose Выбор Import of a shape reference aborted by user Импорт ссылки фигуры прерван пользователем LCS_Collection Коллекция_LCS Add shapes from an external file to the assembly Добавление фигур из внешнего файла в сборку Add shapes from an external file Добавить фигуры из внешнего файла A part can only be imported from a FreeCAD '*.FCStd' file Деталь может быть импортирована только из файла FreeCAD '*.FCStd' Value Error Ошибка значения No visible Part to import found. Aborting operation Видимая деталь для импорта не найдена. Операция прервана Restore transparency to active document objects Восстановить прозрачность для активных объектов документа Restore transparency to active document objects Восстановить прозрачность для активных объектов документа Add a part from an external file to the assembly Добавление детали из внешнего файла в сборку Add a part from an external file Добавить деталь из внешнего файла First create an empty file and save it under desired name Сначала создайте пустой файл и сохраните его под желаемым именем Unnamed document Безымянный документ Before inserting first part, please save the empty assembly to give it a name Перед вставкой первой детали сохраните пустую сборку, чтобы дать ей имя Select FreeCAD document to import part from Выберите документ FreeCAD, из которого нужно импортировать деталь Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) Поддерживаемые форматы (*.FCStd *.fcstd *.stp *.step);;Все файлы (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. Деталь, которую Вы пытаетесь импортировать, находится за пределами папки Вашего проекта! Проверьте свои настройки в настройках A2plus. Import Error Ошибка импорта Imported Object is empty/none Импортированный Объект пуст/отсутствует Do you want to update only the selected parts? Вы хотите обновить только выбранные детали? ASSEMBLY UPDATE ОБНОВЛЕНИЕ СБОРКИ Source file not found Исходный файл не найден Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Обновление деталей, которые были импортированы в сборку. (Если Вы изменяете деталь во внешнем файле, новая форма переносится в сборку этой функцией.) Update parts imported into the assembly Обновить детали, импортированные в сборку Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Сделайте дубликат детали, которая уже импортирована в сборку. Выберите импортированную деталь и нажмите эту кнопку. Дубликат будет создан и может быть помещен куда-нибудь с помощью мыши. Удерживайте «Shift», чтобы сделать это несколько раз. Create duplicate of a part Создать дубликат детали Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Изменить импортированную деталь. Выберите импортированную деталь и нажмите эту кнопку. Откроется соответствующий файл FCStd, связанный с этой деталью, и Вы сможете изменить эту деталь в этом месте. После изменения и сохранения Вы должны использовать функцию «Обновить импортированные детали», чтобы увидеть новую форму в сборке. Information Информация Please edit the highlighted object. When finished, update the assembly Пожалуйста, измените выделенный объект. Когда закончите, обновите сборку Cannot find the local source object. Has it been deleted? Не удаётся найти локальный исходный объект. Он был удалён? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder Вы хотите изменить файл, которого нет в папке Вашего проекта. Это не разрешено при использовании параметра «Использовать папку проекта» File error! Ошибка файла! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' Редактирование файла STEP как файла '*.FCStd' Пожалуйста, экспортируйте сохранённый файл как '.step' Edit an imported part (open linked FCStd file) Изменить импортированную деталь (открыть связанный файл FCStd) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Переместить выбранную деталь. Выберите деталь и нажмите эту кнопку. Деталь можно перемещать мышью. Если деталь ограничена, она отскочит назад при следующем решении сборки. Move the selected part Переместить выбранную деталь Animation problem detected Обнаружена проблема с анимацией Use system undo if necessary. При необходимости используйте системную отмену. Invalid selection Неверный выбор A2plus will not move a part with property A2plus не будет перемещать деталь со свойством Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Переместить деталь в соответствии с правилами ограничений. 1) Нажмите эту кнопку 2) Нажмите на деталь, она приклеится к курсору и её можно будет перемещать 3) Нажмите ещё раз (или нажмите ESC), и команда завершится Move the selected part under constraints Переместить выбранную деталь под ограничениями Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Удалить все ограничения выбранной детали. Выберите только одну деталь и нажмите эту кнопку. Появится диалог подтверждения, показывающий все ограничения, связанные с выбранной деталью. После подтверждения все связанные ограничения удаляются одновременно. Selection Error Ошибка выбора Select exactly 1 part Выберите только 1 деталь Info Информация No constraints refer to '%s' Нет ограничений для '%s' Delete {}'s constraint(s): - {}? Удалить ограничия у {}: - {}? Delete constraints? Удалить ограничения? Deleting part's constraints Удаление ограничения детали Delete all constraints of selected parts Удалить все ограничения выделенных деталей Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Выделить обе детали, связанные с выбранным ограничением. Выберите ограничение в дереве и нажмите эту кнопку. Вся сборка переключится в прозрачный режим, и Вы сможете проверить желаемое ограничение. Highlight both constrained parts Выделить обе ограниченные детали Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Показать только выбранные элементы или все, если ничего не выбрано. Выберите одну или несколько деталей, которые являются единственными, которые Вы хотите увидеть в большой сборке. Нажмите эту кнопку, и все остальные детали станут невидимыми. Если Вы ничего не выберете и нажмёте эту кнопку, все невидимые детали снова будут видимыми. Show only selected elements or all if none is selected Показать только выбранные элементы или все, если ни один из них не выбран Toggle transparency of assembly Переключить прозрачность сборки Toggles transparency of assembly Переключить прозрачность сборки Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solvebutton Переключить АвтоРешение Нажав эту кнопку, Вы можете включить или отключить автоматическое решение после редактирования ограничения Если автоматическое решение отключено, Вы должны запустить его вручную, нажав кнопку решения Toggle auto solve Включить авто решение Toggle partial processing Переключить частичную обработку Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Восстановить древовидную структуру, если она каким-либо образом повреждена. После нажатия этой кнопки ограничения снова будут сгруппированы по соответствующим деталям. Repair the tree view if it is somehow damaged Исправить древовидное представление, если оно каким-либо образом повреждено Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Поменять направление последнего ограничения. Если последнее ограничение, которое было определено, имеет свойство «направление», его значение будет переключаться между «выровнено» и «противоположно» (выравнивание оси) Flip direction of last constraint Изменить направление последнего ограничения Command Aborted Команда отменена Flip aborted since no a2p constraints in active document. Отражение прервано, так как в активном документе нет ограничений a2p. Generate HTML file with detailed constraining structure Создать файл HTML с подробной структурой ограничений Generates HTML file with detailed constraining structure Создаёт файл HTML с подробной структурой ограничений Nothing found to be labeled! Ничего не найдено для маркировки! This document does not contain A2p-objects Этот документ не содержит A2p-объектов Show part labels in 3D view Показать метки деталей в 3D-виде Toggle showing part labels in 3D view Переключить отображение меток деталей в 3D-виде Print detailed DOF information Распечатать подробную информацию о Степенях Свободы Toggle printing detailed DOF information Переключить печать подробной информации о Степенях Свободы No active document found! Активный документ не найден! You have to open an assembly file first. Сначала нужно открыть файл сборки. Convert absolute paths of imported parts to relative ones Преобразовать абсолютные пути импортируемых деталей в относительные Converts absolute paths of imported parts to relative ones Преобразовывает абсолютные пути импортируемых деталей в относительные Save and exit the active document Сохранить и закрыть активный документ Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Перенос с обновлением импортированных деталей Очень старые сборки A2plus не отображают правильные значки для импортированных деталей и имеют устаревшие свойства. С помощью этой функции Вы можете перевести ViewProviders старых импортированных деталей в свежее состояние. После запуска этой функции Вы должны сохранить и снова открыть файл сборки. Migrate proxies of importedParts to recent version Перенос с обновлением импортированных деталей до последней версии Make sure you have a backup of your files. Proceed? Убедитесь, что у Вас есть резервная копия Ваших файлов. Продолжить? The proxies have been migrated. Детали были перенесены и обновлены. Please save and reopen this assembly file Сохранить и снова открыть этот файл сборки Migrate proxies of imported parts Перенос с обновлением импортированных деталей Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Ограничение %s нарушено. Удалить ограничение? В противном случае проверьте неправильное соединение. Broken Constraint Нарушенное Ограничение Removing constraint %s Удаление ограничения %s Clean up solver debug output from 3D view Очистить выходные данные после отладки решателя из 3D-вида Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the techdraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. Создать или обновить простую форму полной сборки. Все детали в сборке объединяются в единую форму. Эту форму можно использовать, например, для модуля techdraw или 3D-печати. Созданную форму можно найти в дереве. По умолчанию она невидима в первый раз. Cannot create SimpleAssemblyShape Не удаётся создать SimpleAssemblyShape No visible ImportParts found Не найдено видимых объектов ImportParts Union of Shapes FAILED Объединение форм НЕ ПОЛУЧИЛОСЬ Create or refresh simple shape of complete assembly Создать или обновить простую форму полной сборки Please save before generating a parts list! Save now? Пожалуйста, сохранитесь перед созданием списка деталей! Сохранить сейчас? Save document? Сохранить документ? Parts list generation aborted! Генерация списка деталей прервана! You have to save the assembly file first. Сначала необходимо сохранить файл сборки. Do you want to iterate recursively over all included subassemblies? Вы хотите рекурсивно перебирать все включенные подсборки? Create a spreadsheet with a parts list of this file Создать электронную таблицу со списком деталей (Спецификацией) этого файла Constraint properties Свойства ограничения Direction Направление aligned выровнено opposed напротив none нет Flip direction Перевернуть направление Offset Смещение Set Zero Установить Ноль Flip sign Перевернуть знак Angle Угол Angle in the range 0 - 180 degrees Угол в диапазоне 0-180 градусов Round Вращать Round angle to multiples of 5 Вращать угол до 5 раз Perpendicular Перпендикуляр Adds/deletes 90 degrees Добавить/удалить 90 градусов Lock Rotation Блокировать вращение False Ложь True Истина Toggle Переключить Delete this constraint Удалить это ограничение Delete Удалить Solve constraints Решить ограничения Solve Решить Accept the settings Принять настройки Accept Принять Constraint does not exist anymore Ограничения больше нет Constraint has already been deleted Ограничение уже удалено Confirmation required Требуется подтверждение Really delete this constraint? Действительно удалить это ограничение? Exit and delete new constraint? Выйти и удалить новое ограничение? Values changed! Accept Constraint? Значения изменились! Принять ограничение? Constraint Tools Инструменты ограничения Help Помощь Define constraints Определить ограничения Selection Error! Ошибка выбора! Please select exact one constraint first. Сначала выберите только одно ограничение. Edit selected constraint Изменить выбранные ограничения 3D-Debug contained '{}' vectors 3D-Debug содержал векторы '{}' Did not update converted part '{}' Не обновлена преобразованная часть '{}' RECURSIVE UPDATE РЕКУРСИВНОЕ ОБНОВЛЕНИЕ Update imports recursively Обновить все импорты рекурсивно Remove faulty constraint '{}' Удалить ошибочное ограничение '{}' The following constraints are broken: Нарушаются следующие ограничения: Do you want to delete them? Вы хотите удалить их? Delete broken constraints? Удалить нарушенные ограничения? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! Ограничения несовместимы. Не могу решить систему. Пожалуйста, запустите инструмент поиска конфликтов! Constraint mismatch Несоответствие ограничений The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! Выделенные детали не перемещены. Они не ограничены (также через цепочки ограничений) фиксированной деталью! Could not move some parts Не удалось переместить некоторые детали Before running solver, you have to open an assembly file. Перед запуском Решателя Вы должны открыть файл сборки. Solves constraints Решения ограничений Import ignored invisible shape: '{}' Импорт игнорирует невидимую форму: '{}' You have to open a FCStd file first. Сначала Вы должны открыть файл FCStd. A file must be selected to start this selector. Должен быть выбран файл для запуска этого переключателя. Please open a file and try again. Пожалуйста, откройте файл и попробуйте повторить. No parts were selected to update. Не выбраны детали для обновления. Select one part and try again. Выберите одну деталь и повторите попытку. I have limited the number of parts that can be updated to 1. Я ограничен количеством деталей, которые можно обновить, до 1. Update complete. Обновление выполнено. All surfaces found Все поверхности найдены Status Статус To view the constraints, press 'Open Viewer' Чтобы просмотреть ограничения, нажмите 'Открыть Просмотр' View the listed constraints in the the Constraint Viewer. Просмотрите перечисленные ограничения в средстве Просмотра ограничений. Open Viewer Открыть Просмотр Close this form. Закрыть эту форму. Close Закрыть A A2plus file must be opened to start this checker Для запуска этой программы проверки необходимо открыть файл A2plus Please open a file and try again Пожалуйста, откройте файл и повторите попытку Cannot find any constraints in this file. Не удаётся найти какие-либо ограничения в этом файле. Checking constraints Проверка ограничений No constraint errors found Ошибки ограничений не найдены Checking Constraints Проверка Ограничений This checks all constraints. After checking it will list all constraints that it found problems with. Это проверяет все ограничения. После проверки он выведет список всех ограничений, с которыми были обнаружены проблемы. The list can then be opened in the Constraint viewer. Затем список можно открыть в Просмотре ограничений. Checks constraints Проверить ограничения Create Labels Создать Метки Add Face Labels Добавить Метки Граней Add labels to all of the faces on a selected part Добавить метки ко всем граням выбранной детали Add Edge Labels Добавить Метки Кромок Add labels to all of the edges on a selected part Добавить метки ко всем кромкам выбранной детали Add Vertex Labels Добавить Метки Вершин Add labels to all of the vertices on a selected part Добавить метки ко всем вершинам выбранной детали Delete Labels Удалить Метки Delete all labels Удалить все метки Face Грань Edge Кромка Vertex Вершина One part must be selected. Должна быть выбрана одна деталь. Please select One part and try again Пожалуйста, выберите Одну деталь и повторите попытку Constraint Tools help Справка по Инструментам ограничения Dependencies between {} - {}, type {} Зависимости между {} - {}, тип {} Imported Object is empty/none Импортированный Объект пуст/отсутствует Unable to find '{}' Невозможно найти '{}' Current Rigid = '{}' Текущий Rigid = '{}' is Fixed фиксированный is not Fixed and has {} DegreesOfFreedom не фиксированный и имеет Степеней Свободы - {} Depends on Rigid = {} Зависимости Rigid = {} DOF Position free with this rigid = {} Степени Свободы Положения с этим rigid = {} DOF Rotation free with this rigid = {} Степени Свободы Вращения с этим rigid = {} SelObserverOFF by except SelObserverOFF за исключением Use one mouse button to select features Использовать одну кнопку мыши для выбора элементов Use left mouse button to select two features. Do not use the control key. Использование левой кнопки мыши для выбора двух элементов. Не используя клавишу Ctrl. No file is opened. You must open an assembly file first. Нет открытого файла. Сначала необходимо открыть файл сборки. Warning Предупреждение OneButton is ON OneButton ВКЛ OneButton is OFF OneButton ОТКЛ There are {:.0f} dependencies Всего зависимостей: {:.0f} Constraint Viewer Просмотр Ограничений Labels Метки Open Dialog Открыть Диалог Delete labels Удалить метки Broken Constraints Нарушенные Ограничения View and edit selected constraints Посмотреть и изменить выбранные ограничения Open Help Открыть Помощь Places of accuracy = {} Знаков точности = {} Suppress Подавление Run Проход Import from part Импорт из детали Select a part and import all of the constraints for that part Выберите деталь и импортируйте все ограничения для этой детали Import from Tree Импорт из Дерева Copy selected constraints from the Tree Копировать выбранные ограничения из Дерева Clear Table Очистить Таблицу Clear the table Очистить таблицу Attach to Прикрепить к Select the feature to change in table. Select surface to change to. Выберите элемент для изменения в таблице. Выберите поверхность для перехода. Clear Tree Очистить Дерево Remove search color from tree. Удалить цвет поиска из дерева. Find in Tree Найти в Дереве Finds the constraint in the tree for the select row in table. Находит ограничение в дереве для выбранной строки в таблице. Std Solver Станд. Решатель Same as the solver above. Подобно решателю выше. Find w label Найти с меткой Press to toggle a label for selected feature. Нажмите, чтобы переключить метку для выбранного элемента. Close this window Закрыть это окно A part feature must be selected in the table Элемент детали должен быть выбран в таблице The selected text in the table is not a proper feature name: {} {} Выбранный текст в таблице не является правильным именем элемента: {} {} Find Constraint Найти Ограничение CD_Help for Diagnostic tools.pdf CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? Ограничение отсутствует в файле. Оно было удалено? A file must be opened to start this selector. Please open a file and try again Для запуска этого селектора необходимо открыть файл. Пожалуйста, откройте файл и повторите попытку Nothing was selected in the Tree. Ничто не выбрано в Дереве. There were no constraints selected in the Tree. Select one or more constraints and try again. В Дереве не выбраны ограничения. Выберите одно или несколько ограничений и повторите попытку. No parts were selected in the window. Не выбраны детали в окне. There are no constraints for this part. Для этой детали ограничений нет. There are no constraints between these parts. Между этими деталями нет ограничений. No feature has been selected Элемент не выбран The constraint can only be moved to another surface of the same part Ограничение можно переместить только на другую поверхность той же детали removeObserver failed in C checker Ошибка removeObserver в программе проверки C An other assembly workbench for FreeCAD. Другой сборочный верстак для FreeCAD. Initializing A2plus Workbench v{} Запуск верстака A2plus в.{} Union of Shapes passed. 'SimpleAssemblyShape' are created. Объединение форм прошло успешно. «SimpleAssemblyShape» создана. failed to open file with None name! не удалось открыть файл с именем None! file '{}' does not exist! файл '{}' отсутствует! file '{}' is no FCStd file! файл '{}' - не FCStd файл! FREE СВОБОДНО Fixed Фиксированно DOFs: {} Степ.Св: {} Hierarchy: Иерархия: Writing visual hierarchy to: '{}' Запись визуальной иерархии в: '{}' A2P assembly hierarchy visualization Визуализация иерархии сборки A2P FIXED ФИКСИРОВАННО TARGET POS-ACCURACY :{} Ожидаемая ТОЧНОСТЬ ПОЗИЦИОНИРОВАНИЯ: {} REACHED POS-ACCURACY :{} Достигнутая ТОЧНОСТЬ ПОЗИЦИОНИРОВАНИЯ: {} TARGET SPIN-ACCURACY :{} Ожидаемая ТОЧНОСТЬ ВРАЩЕНИЯ: {} REACHED SPIN-ACCURACY :{} Достигнутая ТОЧНОСТЬ ВРАЩЕНИЯ: {} SA SPIN-ACCURACY :{} ТОЧНОСТЬ ВРАЩЕНИЯ одной Оси: {} Start Solving System Запуск Системы Решений System solved using partial + recursive unfixing Система решена с использованием частичного + рекурсивного ослабления Could not solve system Невозможно решить систему Calculation stopped, no convergency anymore! Расчёт остановлен, больше нет сходимости! Reached max calculations count: {} Достигнуто максимальное количество вычислений: {} Starting solveConstraints latest script... Запуск последнего сценария solveConstraints... Not existing part(s): Отсутствует деталь(и): Constraints of missing parts removed! Ограничение отсутствующих деталей удалено! Updating by SubElement-Map: '{}' => '{}' Обновление Карты Подэлементов: '{}' =&gt; '{}' The table has lost focus. Please reselect in the table. Таблица потеряла фокус. Пожалуйста, повторите выбор в таблице. Create a spreadsheet for ordering or logistics information Создать электронную таблицу с информацией для заказа или логистики Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Создать электронную таблицу для заказа или информации о логистике. Созданную электронную таблицу можно найти в древовидном представлении. Пожалуйста, заполните Вашу информацию. Эта электронная таблица будет прочитана функцией A2plus из списка деталей. Updates the A2plus.assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to vereify if there are broken constraints. This is an attempt to reduce the number of broken constraints causedwhen modifying a part from FreeCAD A2plus assembly program. This records theconstraints mating surfaces immediately before the update and tries toreconnect them after the update. If this fails you can undo this update by using the undo buttonand running the standard A2plus updater. Обновить сборку A2plus.assembly при изменении деталей. Чтобы обновить сборку, выберите изменённую деталь и нажмите значок. Когда обновление завершится, запустите решатель A2plus, чтобы проверить наличие нарушенных ограничений. Это попытка уменьшить количество нарушенных зависимостей, возникающих при изменении детали из программы сборки FreeCAD A2plus. Это записывает сопряженные поверхности зависимостей непосредственно перед обновлением и пытается повторно соединить их после обновления. Если это не удаётся, Вы можете отменить это обновление, используя кнопку отмены и запустив стандартную программу обновления A2plus. Update complete: Обновление выполнено: Total constraints - {} Всего ограничений - {} Repaired constraints - {} Восстановлено ограничений - {} Features not found - {} Элементов не найдено - {} Checking {} of {} Проверка {} из {} Both parts are fixed. Обе детали зафиксированы. Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Средство просмотра ограничений. Вы можете просмотреть объекты, к которым прикреплено ограничение, запустить одно ограничение или изменить объект, к которому привязано ограничение. См. справку для получения дополнительной информации. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Создать электронную таблицу со списком деталей этого файла. Эта функция считывает электронную таблицу #ИнфоОДетали# всех задействованных частей сборки и создаёт новую электронную таблицу, содержащую список деталей. Эта кнопка откроет диалог с Вопросом: - Рекурсивно перебирать все подсборки? Ответ Да: Все детали во всех подсборках будут собраны в список деталей Ответ Нет: Будут собраны только детали из текущей последней сборки. Flip direction between 'aligned' and 'opposed' Перевернуть направление между 'выровнено' и 'напротив' Set 0 to 'Offset' field Установить 0 в поле 'Смещение' Flip sign between '+' and '-' in 'Offset' field Переключение знака между '+' и '-' в поле 'Смещение' Toggle between 'False' and 'True' Переключение между 'Ложь' и 'Истина' Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Выберите геометрию для ограничения в 3D-просмотре! Будут активированы подходящие кнопки Ограничений. Также прочтите всплывающие подсказки для каждой кнопки. Opens a dialog to define constraints Открывает диалоговое окно для определения ограничений Errors occurred during processing of {} Обнаружены ошибки в процессе {} createUpdateFileList(): ImportPath = {} createUpdateFileList(): ПутьИмпорта = {} Do you want to update the selected parts only? Вы хотите обновить только выбранные детали? Assembly '{}' has been updated! Сборка '{}' была обновлена! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Обновление деталей, которые были импортированы в сборку. (Если Вы изменяете деталь во внешнем файле, эта функция переносит новую форму в сборку). Эта команда делает это рекурсивно для всех задействованных подсборок. Подсборки также обновляются, если это необходимо. Select a constraint in the treeview and hit this button. Выберите ограничение в дереве и нажмите эту кнопку. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Поверхности могут быть заменены только в столбцах 'Part1 feat' или 'Part2 feat' Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Добавить ограничение PointIdentity (Совпадение точек) Add PointOnLine constraint Добавить ограничение PointOnLine (Точка на линии) Add PointOnPlane constraint Добавить ограничение PointOnPlane (Точка на плоскости) Add SphereCenterIdent constraint Добавить ограничение SphereCenterIdent (Совпадение центра сфер) Add CircularEdge constraint Добавить ограничение CircularEdge (Кромки Окружностей) Add AxisCoincident constraint Добавить ограничение AxisCoincident (Соосность осей) Add AxisParallel constraint Добавить ограничение AxisParallel (Параллельность Осей) Add AxisPlaneParallel constraint Добавить ограничение AxisPlaneParallel (Ось и Плоскость Параллельны) Add AxisPlaneAngle constraint Добавить ограничение AxisPlaneAngle (Ось под Углом к Плоскости) Add AxisPlaneNormal constraint Добавить ограничение AxisPlaneNormal (Ось перпендикулярна Плоскости) Add PlanesParallel constraint Добавить ограничение PlanesParallel (Плоскости параллельны) Add PlaneCoincident constraint Добавить ограничение PlaneCoincident (Совпадение Плоскостей) Add AngledPlanes constraint Добавить ограничение AngledPlanes (Плоскости под Углом) Add CenterOfMass constraint Добавить ограничение CenterOfMass (Центр масс) reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): Обнаружено неизвестные ограничения: {} reAdjustConstraintDirections(): All constraints are recalculated. reAdjustConstraintDirections(): Все ограничения пересчитаны. Recalculate direction of constraints Пересчитать направление ограничений Do you really want to recalculate the directions of all constraints? Вы действительно хотите пересчитать направления всех ограничений? Re-adjust directions of all constraints Перенастроить направления всех ограничений Re-adjust directions of all constraints to best fit Перенастроить направления всех ограничений для лучшей формы Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Создать ограничение Точка-Точка (PointIdentity) Выберите: 1) Вершину, окружность или сферу (на детали) 2) Вершину, окружность или сферу (на другой детали) Если выбрана Окружность или Сфера, то центр элемента будет взят как описание точки. Button gets active after correct selection. Кнопка станет активной после правильного выбора. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Создать ограничение Точка-На-Линии (PointOnLine) Выберите: 1) Вершину, сферу или окружность (на детали) 2) Кромку Линии/Окружности или поверхность цилиндра/конуса (на другой детали) Если выбрана кромка Окружности, то её ось будет принята за определение линии. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Создать ограничение Точка-На-Плоскости (PointOnPlane) Выберите: 1) Вершину, центр окружности или сферы (на детали) 2) Плоскость (на другой детали) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Создать ограничение Сфера-Сфера (SphereCenterIdent) Выберите: 1) Сферическую поверхность, или вершину (на детали) 2) Сферическую поверхность или вершину (на другой детали) При выборе Сферы её центр используется как вершина. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Создать ограничение Кромки-Окружности (CircularEdge) Выберите: 1) Кромку Окружности (на детали) 2) Кромку Окружности (на другой детали) Если выбрана окружность, то её центр будет использован как вершина. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Создать ограничение между осями (AxisCoincident) Выберите: 1) Линейную кромку или поверхность цилиндра/конуса (на детали) 2) Линейную кромку или поверхность цилиндра/конуса (на другой детали) Не фиксированные оси будут выровнены и перемещены для совмещения. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Создать ограничение ПараллельностьОсей (AxisParallel) Выберите: 1) Кромку Линии/Окружности или грань Цилиндра/Конуса (на детали) 2) Кромку Линии/Окружности или грань Цилиндра/Конуса (на другой детали) Оси смогут только вращаться, чтобы быть параллельными, но не будут перемещаться, чтобы совпадать. Если используется круглая кромка или грань Цилиндра/Конуса, то её ось будет принята за линию. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Создать ограничение параллельности оси и плоскости (AxisPlaneParallel) Выберите: 1) Линейную кромку или ось цилиндра/конуса (на детали) 2) Плоскую поверхность (на другой части) Это ограничение настраивает ось параллельно выбранной плоскости. Детали не перемещаются для совпадения. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Создать ограничение угла между осью и плоскостью (AxisPlaneAngle) Выберите: 1) Линейную кромку или ось цилиндра/конуса (на детали) 2) Плоскую грань (на другой детали) Сначала это ограничение настраивает ось параллельно выбранной плоскости. В следующем всплывающем диалоговом окне Вы можете указать угол. Детали не перемещаются для совпадения. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Создать ограничение оси-по нормали к плоскости (AxisPlaneNormal) Выберите: 1) Линейную кромку или ось цилиндра/конуса (на детали) 2) Плоскую грань (на другой детали) Это ограничение настраивает ось вертикально к выбранной плоскости. Детали не перемещаются для совпадения. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Создать ограничение Параллельность Плоскостей (PlanesParallel) Выберите: 1) Плоскость (на детали) 2) Плоскость (на другой детали) Плоскости смогут только вращаться, чтобы быть параллельными, но не будут перемещаться, чтобы совпадать. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Создать ограничение Совпадение Плоскостей (PlaneCoincident) Выберите: 1) Плоскость (на детали) 2) Плоскость (на другой детали) В редакторе объектов возможно изменить смещение. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Создать ограничение центра масс (CenterOfMass) Выберите: 1) Грань или замкнутую кромку (на детали) 2) Грань или замкнутую кромку (на другой детали) Смещение можно изменить в редакторе объектов. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Создать ограничение наклона плоскостей (AngledPlanes) Выберите: 1) Плоскость (на детали) 2) Плоскость (на другой детали) После установки этого ограничения сначала рассчитывается фактический угол между обеими плоскостями и сохраняется в поле «угол» в редакторе объектов. Угол можно изменить в редакторе объектов Избегайте использования углов, равных 0 и 180 градусов. Вы можете получить странные результаты. Для этого лучше использовать ограничение PlanesParallel. A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. Преобразовать деталь, созданную с помощью другого верстака, в полнофункциональную деталь A2plus. После преобразования можно применять ограничения. Также Вы можете дублировать преобразованную деталь. Для изменения преобразованной детали нажмите кнопку редактирования и следуйте инструкциям на экране. Эта функция полезна, если Вы хотите использовать, например, крепёж внутри этого верстака. Convert a part to A2plus Преобразовать деталь в A2plus Please select only visible parts! Пожалуйста, выберите только видимые детали! Conversion Aborted Преобразование прервано A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another Инструмент поиска конфликтов: Разрешает конфликтующие ограничения, пытаясь решить их одно за другим There are no a2p constraints within this document. В этом документе нет ограничений для a2p. The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? Следующая пара ограничений конфликтует с ранее определёнными ограничениями: ограничение: {} с зеркалом: {} Пара ограничений принадлежит объектам: объект1: {} объект2: {} Вы хотите удалить эту пару ограничений? Searching for conflicting constraints Поиск конфликтующих ограничений Identify conflicting constraints Выявить конфликтующие ограничения Gui::Dialog::DlgSettingsA2Plus A2plus settings Настройки A2plus User interface settings Настройки интерфейса пользователя Adds a creation button for every constraint type to the toolbar Добавляет на панель инструментов кнопку создания для каждого типа ограничения Show constraints in toolbar Показать ограничения на панели инструментов Use native file manager of your OS Использовать файловый менеджер Вашей ОС Behavior when updating imported parts Поведение при обновлении импортированных деталей All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets Все детали сборки будут открыты в FreeCAD для реконструкции с использованием значений из электронных таблиц Recalculate imported parts before updating them (experimental) Пересчитывать импортированные детали перед их обновлением (экспериментально) Opens all subassemblies recursively to update them Открывать все подсборки рекурсивно для их обновления Enable recursive update of imported parts Включить рекурсивное обновление импортированных деталей While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. При импорте деталей в сборку топологические имена записываются в свойство «mux Info». При последующем обновлении деталей свойства «Sub Elementx» ограничений будут обновлены в соответствии с топологией «mux Info». Use experimental topological naming Использовать экспериментальные топологические именования Inherit per face color and transparency from parts and subassemblies (experimental) Наследовать цвет и прозрачность граней от деталей и узлов (экспериментально) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. Невидимые системы координат/вспомогательные формы будут скрыты. Примечание: Никакие ограничения не должны быть связаны с системами координат/вспомогательными формами в более высоких или других узлах сборки. Иначе Вы можете сломать сборку. All imported parts will directly be put together as union. Все импортированные детали будут напрямую соединены как объединение. Do not import invisible shapes (for expert users) Не импортировать невидимые фигуры (для опытных пользователей) Use solid union for importing parts and subassemblies (experimental) Использовать твёрдотельное объединение для импорта деталей и подсборок (экспериментально) Storage of files Хранение файлов Use relative paths for imported parts Использовать относительные пути для импортируемых деталей Use absolute paths for imported parts Использовать абсолютные пути для импортируемых деталей Specify the project folder in the field below Укажите папку проекта в поле ниже All files are in this project folder: Все файлы находятся в этой папке проекта: Default solver behavior Поведение решателя по умолчанию Solve automatically if a constraint property is changed Решать автоматически при изменении свойства ограничения Default solving method Метод решения по умолчанию Solver tries to move all parts at once in direction to a fixed part Решатель пытается переместить все детали одновременно в направлении к зафиксированной детали Use "magnetic" solver, solving all parts at once (for dynamical assemblies) Использовать &quot;магнитный&quot; решатель сразу для всех деталей (для динамической сборки) All parts will be fixed to the positions where they were created Все детали будут закреплены на позициях, где они были созданы Force fixed position to all imports Принудительно установить фиксированную позицию для всего импорта Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. Решатель начинает с фиксированной детали и детали, ограниченной ею. Все остальные детали не рассчитываются. Если решение может быть найдено, то для расчёта добавляется следующая ограниченная деталь и так далее. Use solving of partial systems (recommended for static assemblies) Использовать решение частичных систем (рекомендуется для статической сборки) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. Использовать настройки цвета и прозрачности из импортированных деталей. Примечание: Для верстака PartDesign это действует только на Body. Workbench Constraint Ограничение Solver Решатель View Вид Misc Разное Diagnostic Диагностика ================================================ FILE: translations/A2plus_zh-CN.ts ================================================ A2p_BoM PARTINFO PARTSLIST IDENTNO DESCRIPTION 描述 SUPPLIER 供应商 SUPP.IDENTNO SUPP.DESCRIPTION (FILENAME) #PARTINFO# spreadsheet has been created BOM ERROR: Could not open sourcefile '{}' POS QTY #PARTSLIST# spreadsheet has been created #PARTSLIST_CutListOptimizer# spreadsheet has been created CLO_PARTSLIST Length Width Qty Material Label Enabled A2plus Updating Assembly. Constraint Checker Showing editing part Import Objects Select objects to import Import Importing Select a shape to be imported Cancel 取消 Choose Import of a shape reference aborted by user 导入形状引用被用户中止 LCS_Collection Add shapes from an external file to the assembly 从外部文件 添加形状到程序集 Add shapes from an external file 从外部文件中添加形状 A part can only be imported from a FreeCAD '*.FCStd' file 只能从 FreeCAD '*.FCStd' 文件导入部分 Value Error 值错误 No visible Part to import found. Aborting operation 找不到可导入的可见部件。中止操作 Restore transparency to active document objects 恢复透明度到 活动文档对象 Restore transparency to active document objects 恢复透明度到活动文档对象 Add a part from an external file to the assembly 从外部文件 添加一个部件到程序集 Add a part from an external file 从外部文件中添加部分 First create an empty file and save it under desired name 首先创建一个空文件并在所需名称下保存 Unnamed document 未命名文档 Before inserting first part, please save the empty assembly to give it a name 在插入第一部分之前,请保存空组件给它一个名称 Select FreeCAD document to import part from 选择 FreeCAD 文档导入部分 Supported Formats (*.FCStd *.fcstd *.stp *.step);;All files (*.*) 支持的格式 (*.FCStd *.fcstd *.stp *.step);;所有文件 (*.*) The part you try to import is outside of your project-folder! Check your settings of A2plus preferences. 您尝试导入的部分在您的项目文件夹之外!请检查您的 A2 plus 首选项设置。 Import Error 导入错误 Imported Object is empty/none 导入的对象为空/无 Before updating parts, you have to open an assembly file. 在更新配件之前,您必须打开一个装配文件。 Do you want to update only the selected parts? 您想只更新选定的配件吗? ASSEMBLY UPDATE Source file not found 找不到源文件 Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function.) Update parts imported into the assembly 更新导入程序集的元件 Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold "Shift" for doing this multiple times. Make a duplicate of a part, which is already imported to the assembly. Select a imported part and hit this button. A duplicate will be created and can be placed somewhere by mouse. Hold &quot;Shift&quot; for doing this multiple times. Create duplicate of a part 创建一个部件的副本 Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Edit an imported part. Select an imported part and hit this button. The appropriate FCStd file, linked to this part will be opened and you can modify this part at this place. After editing and saving, you have to use the function 'update imported parts' in order to see the new shape within the assembly. Information 信息 Please edit the highlighted object. When finished, update the assembly 请编辑突出显示的对象。完成后,更新程序集 Cannot find the local source object. Has it been deleted? 找不到本地源对象。它是否已被删除? You want to edit a file which is not found below your project-folder. This is not allowed when using preference Use project Folder 您想要编辑一个在您的项目文件夹下找不到的文件。在使用首选项时不允许使用项目文件夹 File error! 文件错误! Editing a STEP file as '*.FCStd' file. Please export the saved file as '.step' 将STEP文件编辑为 '*.FCStd' 文件 请将保存的文件导出为 '步' Edit an imported part (open linked FCStd file) 编辑导入的部分 (打开链接的 FCStd 文件) Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Move the selected part. Select a part and hit this button. The part can be moved around by mouse. If the part is constrained, it will jump back by next solving of the assembly. Move the selected part 移动选中的部分 Animation problem detected 检测到动画问题 Use system undo if necessary. 必要时使用系统撤消。 Invalid selection 无效选择 A2plus will not move a part with property A2plus 不会移动带属性的部件 Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Move the a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Move the selected part under constraints 在约束下移动选中的部分 Delete all constraints of a selected part. Select exact one part and hit this button. A confirmation dialog pops up, showing all constraints related to the selected part. After confirmation all related constraints are deleted at once. Selection Error 选择错误 Select exactly 1 part 只选择一个部分 Info No constraints refer to '%s' Delete {}'s constraint(s): - {}? Delete constraints? 删除约束吗? Deleting part's constraints 正在删除部分's 约束 Delete all constraints of selected parts 删除选中部件的所有限制 Highlight both parts, which are related to a selected constraint. Select a constraint within the treeview and hit this button. The whole assembly is switched to transparent mode and you can inspect the desired constraint. Highlight both constrained parts 突出显示两个受约束部分 Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Show only selected elements, or all if none is selected. Select one or more parts, which are the only ones you want to see in a big assembly. Hit this button, and all other parts will be made invisible. If you select nothing and hit this button, all invisible parts will be made visible again. Show only selected elements or all if none is selected Show only selected elements or all if none is selected Toggle transparency of assembly 切换组装的透明度 Toggles transparency of assembly 切换组装的透明度 Toggle auto solve 切换自动解决 Toggle partial processing 切换部分处理 Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repair the treeview, if it is damaged somehow. After pressing this button, constraints will grouped under corresponding parts again. Repair the tree view if it is somehow damaged Repair the tree view if it is somehow damaged Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Flip direction of last constraint. If the last constraint, which has been defined, has a property 'direction', its value will be toggled between 'aligned' and 'opposed' (alignment of axis) Flip direction of last constraint 翻转最后约束的方向 Command Aborted Flip aborted since no a2p constraints in active document. Generate HTML file with detailed constraining structure Generate HTML file with detailed constraining structure Generates HTML file with detailed constraining structure Generates HTML file with detailed constraining structure Nothing found to be labeled! 未找到标签! This document does not contain A2p-objects Show part labels in 3D view 在3D 视图中显示部件标签 Toggle showing part labels in 3D view Toggle showing part labels in 3D view Print detailed DOF information 打印详细的 DOF 信息 Toggle printing detailed DOF information No active document found! 未找到活动文档! You have to open an assembly file first. 您必须先打开程序集文件。 Convert absolute paths of imported parts to relative ones 将导入部分的绝对路径转换为相对路径 Converts absolute paths of imported parts to relative ones 将导入部分的绝对路径转换为相对路径 Save and exit the active document 保存并退出活动文档 Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrate proxies of imported parts Very old A2plus assemblies do not show the correct icons for imported parts and have obsolete properties. With this function, you can migrate the viewProviders of old imported parts to the recent state. After running this function, you should save and reopen your assembly file. Migrate proxies of importedParts to recent version Migrate proxies of importedParts to recent version Make sure you have a backup of your files. Proceed? 请确保您备份了您的文件。继续吗? The proxies have been migrated. The proxies have been migrated. Please save and reopen this assembly file 请保存并重新打开这个程序集文件 Migrate proxies of imported parts Migrate proxies of imported parts Constraint %s is broken. Delete constraint? Otherwise check for wrong linkage. Broken Constraint Removing constraint %s Clean up solver debug output from 3D view Cannot create SimpleAssemblyShape 无法创建SimpleAssemblyShape No visible ImportParts found 未找到可见的导入部件 Union of Shapes FAILED Create or refresh simple shape of complete assembly 创建或刷新完整组装的简单形状 Please save before generating a parts list! Save now? 请在生成零件列表之前保存!现在保存吗? Save document? 保存文档? Parts list generation aborted! 部件列表生成中止! You have to save the assembly file first. 您必须先保存程序集文件。 Do you want to iterate recursively over all included subassemblies? 您想要在所有包含的子组件上递归重复吗? Create a spreadsheet with a parts list of this file 创建带有此文件的部件列表的电子表格 Constraint properties 约束属性 Direction 方向 aligned 对齐 opposed 反对 none Flip direction Offset Set Zero Flip sign Angle 角度 Angle in the range 0 - 180 degrees Round Round angle to multiples of 5 Perpendicular Adds/deletes 90 degrees Lock Rotation False True Toggle Delete this constraint Delete Solve constraints 解决约束 Solve Accept the settings Accept Constraint does not exist anymore 约束不再存在 Constraint has already been deleted 约束已被删除 Confirmation required 需要确认 Really delete this constraint? 真的要删除此约束吗? Exit and delete new constraint? 退出并删除新约束? Values changed! Accept Constraint? 值已更改!接受约束? Select geometry to be constrained within 3D View ! Suitable Constraint buttons will get activated. Please also read tooltips of each button. 在 3D 视图中选择要约束的 几何形状! 合适的约束按钮将被激活 也请阅读每个 按钮的工具提示. Constraint Tools 约束工具 Help Opens a dialog to define constraints 打开对话框到 定义约束 Define constraints 定义约束 Edit selected constraint Select a constraint in the treeview and hit this button 编辑选中的约束 在 树视图中选择一个约束并点击此按钮 Selection Error! 选择错误! Please select exact one constraint first. 请先选择一个具体的约束。 Edit selected constraint 编辑选定的约束 3D-Debug contained '{}' vectors Did not update converted part '{}' RECURSIVE UPDATE A part can only be imported from a FreeCAD '*.fcstd' file 只能从 FreeCAD '*.FCStd' 文件导入部分 Update imports recursively 递归更新导入 Remove faulty constraint '{}' The following constraints are broken: 以下制约因素被打破: Do you want to delete them? 你想要删除他们吗? Delete broken constraints? 删除损坏的约束吗? Constraints inconsistent. Cannot solve System. Please run the conflict finder tool! 约束不一致。无法解决系统。 请运行冲突寻找器工具! Constraint mismatch 约束不匹配 The highlighted parts were not moved. They are not constrained (also over constraint chains) to a fixed part! 突出显示的部件没有移动。它们不受限制 (也不受约束链的约束) 到一个固定的部件! Could not move some parts 无法移动某些部分 Before running solver, you have to open an assembly file. Solves constraints 解析约束 Import ignored invisible shape: '{}' You have to open a FCStd file first. 您必须先打开 FCStd 文件。 Update complete. 更新完成。 All surfaces found Status Constraint Viewer 约束查看器 Labels Open Dialog Delete labels Places of accuracy = {} Open Help Broken Constraints Suppress Import from part Select a part and import all of the constraints for that part Import from Tree Copy selected constraints from the Tree Clear Table Clear the table Attach to Select the feature to change in table. Select surface to change to. Clear Tree Remove search color from tree. Find in Tree Finds the constraint in the tree for the select row in table. Std Solver Same as the solver above. Find w label Press to toggle a label for selected feature. Close Close this window A part feature must be selected in the table The table has lost focus. Please reselect in the table. The selected text in the table is not a proper feature name: {} {} Find Constraint CD_Help for Diagnostic tools.pdf Constraint is not in file. Was it deleted? A file must be opened to start this selector. Please open a file and try again Nothing was selected in the Tree. There were no constraints selected in the Tree. Select one or more constraints and try again. No parts were selected in the window. There are no constraints for this part. There are no constraints between these parts. No feature has been selected The constraint can only be moved to another surface of the same part removeObserver failed in C checker View and edit selected constraints SelObserverOFF by except Use one mouse button to select features Use left mouse button to select two features. Do not use the control key. No file is opened. You must open an assembly file first. OneButton is ON OneButton is OFF Warning To view the constraints, press 'Open Viewer' View the listed constraints in the the Constraint Viewer. Open Viewer Close this form. A A2plus file must be opened to start this checker Please open a file and try again Cannot find any constraints in this file. Checking constraints No constraint errors found Checking Constraints This checks all constraints. After checking it will list all constraints that it found problems with. The list can then be opened in the Constraint viewer. Checks constraints Create Labels 创建标签 Add Face Labels Add labels to all of the faces on a selected part Add Edge Labels Add labels to all of the edges on a selected part Add Vertex Labels Add labels to all of the vertices on a selected part Delete Labels Delete all labels Face Edge Vertex One part must be selected. Please select One part and try again An other assembly workbench for FreeCAD. FreeCAD 的其他组装工作台。 Initializing A2plus Workbench v{} Union of Shapes passed. 'SimpleAssemblyShape' are created. Constraint Tools help 约束工具帮助 Dependencies between {} - {}, type {} Imported Object is empty/none Unable to find '{}' 找不到 '{}' Updating by SubElement-Map: '{}' => '{}' Current Rigid = '{}' is Fixed is not Fixed and has {} DegreesOfFreedom Depends on Rigid = {} DOF Position free with this rigid = {} DOF Rotation free with this rigid = {} failed to open file with None name! file '{}' does not exist! file '{}' is no FCStd file! FREE Fixed DOFs: {} There are {:.0f} dependencies Hierarchy: Writing visual hierarchy to: '{}' A2P assembly hierarchy visualization FIXED TARGET POS-ACCURACY :{} REACHED POS-ACCURACY :{} TARGET SPIN-ACCURACY :{} REACHED SPIN-ACCURACY :{} SA SPIN-ACCURACY :{} Start Solving System System solved using partial + recursive unfixing Could not solve system 无法解决系统 Reached max calculations count: {} Starting solveConstraints latest script... Not existing part(s): 不存在的零件: Constraints of missing parts removed! Create a spreadsheet for ordering or logistics information Create a spreadsheet for ordering or logistics information. The created spreadsheet can be found within the tree view. Please fill in your information. This spreadsheet will be read out by the parts list function of A2plus. Update complete: 更新完成: Total constraints - {} Repaired constraints - {} Features not found - {} Checking {} of {} Both parts are fixed. Surfaces can only be replaced in columns 'Part1 feat' or 'Part2 feat' Constraint Viewer. You can view the features the constraint is attached to, run a single constraint or change the the feature the constraint is attached to. See the help for more information. Create a spreadsheet with a parts list of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. Flip direction between 'aligned' and 'opposed' Set 0 to 'Offset' field Flip sign between '+' and '-' in 'Offset' field Toggle between 'False' and 'True' Select geometry to be constrained within 3D View! Suitable Constraint buttons will get activated. Please also read tooltips of each button. Opens a dialog to define constraints Select a constraint in the treeview and hit this button. Errors occurred during processing of {} createUpdateFileList(): ImportPath = {} Do you want to update the selected parts only? Assembly '{}' has been updated! Update parts, which have been imported to the assembly. (If you modify a part in an external file, the new shape is taken to the assembly by this function). This command does this recursively over all involved subassemblies. Subassemblies are updated, if necessary, too. Create a spreadsheet with a parts list for https://cutlistoptimizer.com/ of this file Create a spreadsheet with a parts list https://cutlistoptimizer.com/ of this file. This function will read out the #PARTINFO# spreadsheet of all involved parts of the assembly and create a new spreadsheet containing the parts list. This button will open a dialog with the Question: - Iterate recursively over all subassenblies? Answer Yes: All parts of all subassemblies are collected to the partlist Answer No: Only the parts within the recent assembly are collected. No convergency anymore, retrying A file must be selected to start this selector. Please open a file and try again. No parts were selected to update. Select one part and try again. I have limited the number of parts that can be updated to 1. Select one part and try again. Updates parts from the A2plus workbench that has been modified Updates the A2plus assembly when parts are modified. To update the assembly, select the part that you have modified and press the icon. When the update has finished run the A2plus solver to verify if there are broken constraints. This is an attempt to reduce the number of broken constraints caused when modifying a part from FreeCAD A2plus assembly workbench. This records the constraints mating surfaces immediately before the update and tries to reconnect them after the update. If this fails you can undo this update by using the undo button and running the standard A2plus updater. Create or refresh a simple shape of the complete Assembly. All parts within the assembly are combined to a single shape. This shape can be used e.g. for the TechDraw module or 3D printing. The created shape can be found in the treeview. By default it is invisible at first time. No visible Import Parts found Move a part under rule of constraints. 1) Hit this button 2) Click a part and it is glued to the cursor and can be moved 3) Click again (or press ESC) and the command terminates Toggle AutoSolve By pressing this button you can enable or disable automatic solving after a constraint has been edited If automatic solving is disabled you have to start it manually by hitting the solve button Migrate proxies of imported Parts to recent version A2plus_Constraints Add PointIdentity constraint Add PointOnLine constraint Add PointOnPlane constraint Add SphereCenterIdent constraint Add CircularEdge constraint Add AxisCoincident constraint Add AxisParallel constraint Add AxisPlaneParallel constraint Add AxisPlaneAngle constraint Add AxisPlaneNormal constraint Add PlanesParallel constraint Add PlaneCoincident constraint Add AngledPlanes constraint Add CenterOfMass constraint reAdjustConstraintDirections(): Found unknown constraints: {} reAdjustConstraintDirections(): All constraints are recalculated. Recalculate direction of constraints 重新计算约束方向 Do you really want to recalculate the directions of all constraints? 您真的想要重新计算所有限制的方向吗? Re-adjust directions of all constraints 重新调整所有约束的方向 Re-adjust directions of all constraints to best fit Create the Point-to-Point constraint (PointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) If the Circle or Sphere is selected, centre of feature will be taken as Point definition. Button gets active after correct selection. Create the Point-on-Line constraint (PointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical/conical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Create the Point-on-Plane constraint (PointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Create the Sphere-to-Sphere constraint (SphereCenterIdentity) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a Sphere, it's center is used as a vertex. Create the Circular-Edge constraint (CircularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) When selecting a circle, it's center is used as a vertex. Create the Axis-to-Axis constraint (AxisCoincident) Select: 1) A linear edge or cylindrical/conical face (on a part) 2) A linear edge or cylindrical/conical face (on another part) Non fixed axis will be aligned and moved to be coincident. Create the Axes-Parallel constraint (AxesParallel) Select: 1) A linear/circular edge or cylindrical/conical face (on a part) 2) A linear/circular edge or cylindrical/conical face (on another part) Axes will only rotate to be parallel, but will not be moved to be coincident. If using circular edge or cylindrical/conical face, it's axis will be taken as line. Create the Axis-to-Plane parallelism constraint (AxisPlaneParallel) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Create the angular Axis-to-Plane constraint (AxisPlaneAngle) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Create the Axis-Plane-Normal constraint (AxisPlaneNormal) Select: 1) A linear edge, or cylinder/cone axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Create the Planes-Parallelism constraint (PlanesParallel) Select: 1) A plane (on a part) 2) A plane (on another part) Planes will only rotate to be parallel, but not moved to be coincident. Create the Plane-Coincident constraint (PlaneCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) It is possible to change the offset in object editor. Create the Angled-Planes constraint (AngledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry 'angle' in object editor. The angle can be changed in the object editor. Avoid using angles equals to 0 and 180 degrees - you could get strange results. For that, is better to use PlanesParallel constraint. Create the Center-of-Mass constraint (CenterOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. A2plus_constraintServices Recalculate direction of constraints 重新计算约束方向 Do you really want to recalculate the directions of all constraints? 您真的想要重新计算所有限制的方向吗? Re-adjust directions of all constraints 重新调整所有约束的方向 Re-adjust directions of all constraints to fit best 重新调整所有制约因素的方向以适应最佳环境 A2plus_constraintcommands Add pointIdentity constraint 添加点识别约束 Add pointOnLine constraint 添加 pointOnLine 约束 Add pointOnPlane constraint 添加 pointOnPlane 约束 Add sphereCenterIdent constraint 添加拼写中心标识约束 Add circularEdge constraint 添加循环边缘约束 Add axis Coincident constraint 添加轴并发约束 Add axisParallel constraint 添加轴并联约束 Add axisPlaneParallel constraint 添加轴平行约束 Add axisPlaneAngle constraint 添加轴平面角约束 Add axisPlaneNormal constraint 添加轴平面约束性 Add planesParallel constraint 添加 planesParal 约束 Add planeCoincident constraint 添加 planeCoincent 约束 Add angledPlanes constraint 添加角度图形约束 Add centerOfMass constraint 添加中心高炉约束 A2plus_constraints Create the point-to-point constraint (pointIdentity) Select: 1) A vertex, a circle, or a sphere (on a part) 2) A vertex, a circle, or a sphere (on another part) Button gets active after correct selection. 创建点对点约束 (点身份) 选择: 1) 一个顶点,一个圆圈, 或者球体(部分) 2) 顶点、圆圈或球体(另一部分) 按钮在正确选择后生效。 Create the point-on-line constraint (pointOnLine) Select: 1) A vertex, a sphere, or a circle (on a part) 2) A linear/circular edge, or a cylindrical face (on another part) If the circular edge is selected, it's axis will be taken as line definition. Button gets active after correct selection. 创建点在线约束 (pointOnLine) 选择: 1) 顶点, a领域或圆圈(部分) 2) 线性/圆边缘, 或圆柱面(另一部分) 如果圆形边缘被选中, 它's轴将被用作线定义。 按钮在正确选择后激活。 Create the point-on-plane constraint (pointOnPlane) Select: 1) A vertex, a center of a circle, or a sphere (on a part) 2) A plane (on another part) Button gets active after correct selection. 创建平面上的点约束 (pointOnPlane) 选择: 1) 顶点、圆心或球体(在零件上) 2)飞机(在另一部分) 正确选择后按钮变为活动状态。 Create the circular-edge constraint (circularEdge) Select: 1) A circular edge (on a part) 2) A circular edge (on another part) Button gets active after correct selection. 创建循环边缘约束 (循环边缘) 选择: 1) 循环边缘(部分) 2) 循环边缘(另一部分) 按钮在正确选择后被激活。 Create the axis-to-axis constraint (axisCoincident) 2 axis are aligned and will be moved to be coincident. Select: 1) A cylindrical face or linear edge (on a part) 2) A cylindrical face or linear edge (on another part) Button gets active after correct selection. 创建轴对轴约束 (axisCoincident) 2 轴对齐,并将被移动为巧合。 选择: 1) 气瓶面或线性边缘(部分) 2) 气瓶面或线性边缘(另一部分) 按钮在正确选择后生效。 Create the parallel-axis constraint (axisParallel) Axis' will only rotate to be parallel, but will not be moved to be coincident. Select: 1) A linear/circular edge, or cylindrical face (on a part) 2) A linear/circular edge, or cylindrical face (on another part) If using circular edge, it's axis will be taken as line. Button gets active after correct selection. 创建并行轴约束 (axisParallel) 轴' 只会旋转为平行轴, 但不会移动 为巧合。 选择: 1) 线性/圆形边缘,或圆柱面(部分) 2) 线性/圆形边缘。 或圆柱面(另一部分) 如果使用圆形边缘,它's 轴将被用作直线。 按钮在正确选择后激活。 Create the axis-to-plane parallelism constraint (axisPlaneParallel) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis parallel to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. 创建轴对平行约束(axisPlaneParallel) 选择: 1) 线性边缘。 或圆柱形轴(部分) 2) 平面面(另一部分) 此约束调整一个轴与 选定的平行平行。 零件不会被移动为正则表达式。 按钮在正确选择后激活。 Create the angular axis-to-plane constraint (axisPlaneAngle) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) At first this constraint adjusts an axis parallel to a selected plane. Within the following popUp dialog you can define an angle. The parts are not moved to be coincident. Button gets active after correct selection. 创建角轴对平面约束 (axisPlaneAngle) 选择: 1) 线性边缘。 或圆柱轴(部分) 2) 平面面(另一部分) 此约束首先调整一个轴与 选定的平行平行。 在下面的弹出式对话框中,您 可以定义一个角度。 零件不会被移动为巧合。 按钮在正确选择后被激活。 Create the axis-plane-normal constraint (axisPlaneNormal) Select: 1) A linear edge, or cylinder axis (on a part) 2) A plane face (on another part) This constraint adjusts an axis vertical to a selected plane. The parts are not moved to be coincident. Button gets active after correct selection. 创建轴对平行约束(axisPlaneParallel) 选择: 1) 线性边缘。 或圆柱形轴(部分) 2) 平面面(另一部分) 此约束调整一个轴与 选定的平行平行。 零件不会被移动为正则表达式。 按钮在正确选择后激活。 Create the planes-parallelism constraint (planesParallel) Planes will only rotate to be parallel, but not moved to be coincident. Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. 创建平行的约束 (平行平行平行平行平行平行) 平面只会旋转,但不 移动至巧合。 选择: 1) 一架平面(部分) 2) 一架平面(另一部分) 在正确选择后激活按钮. Create the coincident-plane constraint (planeCoincident) Select: 1) A plane (on a part) 2) A plane (on another part) Button gets active after correct selection. 创建适合平面约束 (planeCoincent) 选择: 1) 一架平面(部分) 2) 一架平面(另一部分) 按钮在正确选择后生效。 Create the angled-planes constraint (angledPlanes) Select: 1) A plane (on a part) 2) A plane (on another part) After setting this constraint at first the actual angle between both planes is been calculated and stored to entry "angle" in object editor. The angle can be changed in the object editor Avoid using angles equals to 0 and 180 degrees. You could get strange results. For that, is better to use planesParallel constraint. Button gets active after correct selection. 创建对角平面约束(角度平面) 选择: 1) 飞机(部分) 2) 飞机(另一部分) 在首次在两架平面之间设置实际的 角度后,计算出了这个约束,并且 存储到对象编辑器中的 &quot;角度&quot; 。 可以在对象编辑器中改变角度 避免使用角度等于0和180度。 你可能会得到奇怪的结果。 为此,最好使用平行约束。 按钮在正确选择后激活. Create the sphere-to-sphere constraint (sphereCenterIdent) Select: 1) A spherical surface, or a vertex (on a part) 2) A spherical surface, or a vertex (on another part) When selecting a circle, it's center is used as a vertex. Button gets active after correct selection. 创建领域到领域的约束 (旋转中心身份) 选择: 1) 球形面. 或一个顶点(部分) 2) 一种球形表面 或者一个顶点(在另一个部分) 当选择一个圆时,它's 中心被用作顶点。 按钮在正确选择后激活。 Create the center-of-mass constraint (centerOfMass) Select: 1) A face, or a closed edge (on a part) 2) A face, or a closed edge (on another part) It is possible to change the offset in object editor. Button gets active after correct selection. 创建群众中心约束 (centerOfMass) 选择: 1) 面部。 或封闭的边缘(部分) 2) A面 或关闭边缘(另一部分) 可以更改对象编辑器中的偏移。 按钮在正确选择后激活。 A2plus_convertPart Convert a part, created with another WB, to a full functional A2plus part. After converting, constraints can be applied. Also you can duplicate the converted part. For editing a converted part, hit the edit button and follow the instructions shown on screen. This function is useful, if you want to use e.g. fasteners within this workbench. 将使用另一个 WB 创建的零件转换为功能齐全的 A2plus 零件。 转换后,可以应用约束。 您也可以复制转换后的部分。 要编辑转换的部分, 请点击编辑按钮并按照屏幕上显示的说明进行操作。 这个功能很有用, 如果你想使用例如 这个工作台内的紧固件。 Convert a part to A2plus 转换元件到 A2plus Please select only visible parts! 请只选择可见的配件! Conversion Aborted 转换已中止 A2plus_searchConstraintConflicts Conflict finder tool: Resolves conflicting constraints by trying to solve them one after another 冲突查找工具: 通过尝试一个接一个地解决它们来解决冲突的约束 There are no a2p constraints within this document. 此文档中没有 a2p 限制。 The following constraint-pair is conflicting with previously defined constraints: constraint : {} with mirror: {} The constraint-pair belongs to the objects: object1: {} object2: {} Do you want to delete this constraint-pair? 以下约束对与先前定义的约束冲突: 约束:{} 带镜子:{} 约束对属于对象: 对象1:{} 对象2:{} 你想删除这个约束对吗? Searching for conflicting constraints 搜索冲突约束 Identify conflicting constraints 确定冲突约束 Gui::Dialog::DlgSettingsA2Plus A2plus settings A2plus设置 User interface settings 用户界面设置 Adds a creation button for every constraint type to the toolbar 为每个约束类型添加创建按钮到工具栏 Show constraints in toolbar 在工具栏中显示约束 Use native file manager of your OS 使用您操作系统的本地文件管理器 Behavior when updating imported parts 更新导入部件时的行为 All parts of the assembly will be opened in FreeCAD to be reconstructed using values from spreadsheets 程序集的所有部分将在 FreeCAD 中打开,然后使用 从电子表格中的值进行重建 Recalculate imported parts before updating them (experimental) 在更新前重新计算导入的元件(实验性) Opens all subassemblies recursively to update them 递归打开所有子装配以更新它们 Enable recursive update of imported parts 启用导入部件的递归更新 While importing parts to the assembly, the topological names are written into "mux Info" property. When the parts are later updated the properties "Sub Elementx" of the constraints will be updated according to the "mux Info" topology. 在向组件导入部件时, 的地名被写入 &quot;mux Info&quot; 属性。 当组件是 稍后更新时,约束的属性 &quot;子元素&quot; 将根据 &quot;mux信息&quot; 地形更新 。 Use experimental topological naming 使用实验拓扑命名 Inherit per face color and transparency from parts and subassemblies (experimental) 从零部件和子组件中继承每个脸色和透明度(实验性) Invisible datum/construction shapes will be hidden. Note: No constraints must be connected to datum/construction shapes in higher or other subassemblies. Otherwise you can break the assembly. 隐藏的数据/构造形状将被隐藏。 注意:没有约束必须连接到 数据/构建形状在较高或其他 子组件中。否则您可以破坏组合。 All imported parts will directly be put together as union. 所有进口的部件都将作为结合直接组合。 Do not import invisible shapes (for expert users) 不要导入隐形形状 (适用于专家用户) Use solid union for importing parts and subassemblies (experimental) 使用固体结合来导入零部件和分组件(实验性) Storage of files 文件存储 Use relative paths for imported parts 对导入的零件使用相对路径 Use absolute paths for imported parts 导入零件时使用绝对路径 Specify the project folder in the field below 指定下面字段中的项目文件夹 All files are in this project folder: 所有文件都在此项目文件夹中: Default solver behavior 默认求解器行为 Solve automatically if a constraint property is changed 更改约束属性时自动求解 Default solving method 默认解决方法 Solver tries to move all parts at once in direction to a fixed part 求解器试图一次性将所有部件移动到一个固定部分 Use "magnetic" solver, solving all parts at once (for dynamical assemblies) 使用 &quot;磁力&quot; 解析所有部件 (用于动态组件) All parts will be fixed to the positions where they were created 所有配件都将被修复到 创建的位置 Force fixed position to all imports 强制所有进口的固定位置 Solver begins with a fixed part and a part constrained to it. All other parts are not calculated. If a solution could be found, the next constrained part is added for the calculation and so on. 求解器以固定的部件开始,并且被约束。 所有其他部件都不会被计算。 如果找到了一个解决方案 ,下一个受限制的部分将被添加到 计算中,等等。 Use solving of partial systems (recommended for static assemblies) 使用部分系统 (推荐给静态组装) Use color and transparency settings from imported parts. Note: For WB PartDesign it work for Body only. 从导入的部件使用颜色和透明度设置. 注意:对于 WB PartDesign,它仅适用于 Body。 Workbench Constraint 制约因素 Solver 求解 View 查看 Misc 其他 Diagnostic 诊断 ================================================ FILE: translations/README.md ================================================ # About translating A2plus Workbench A2plus Workbench supported 10 locales: English: en, Chinese Simplified: zh-CN, French: fr, German: de, Lithuanian: lt, Portuguese: pt-PT, Portuguese, Brazilian: pt-BR, Russian: ru, Spanish: es-ES, Spanish, Argentina: es-AR, You can add your own language in this list! Join to us! **Note**: all commands **must** be run in `A2plus/translations/` directory. ## 1. Creating file for missing locale To create a file for a new language with all **A2plus** translatable strings execute: ```shell python3 update_ts.py -c ``` ## 2. Renaming file Now you can rename new `A2plus.ts` file by: - appending the locale code, example: `A2plus_it.ts` for Italy or - using command: ```shell pylupdate6 --verbose ../*.py --ts A2plus_it.ts ``` ## 3. Translating To edit your language file open your file in `Qt Linguist` from `qt6-tools` or in a text editor like `xed`, `mousepad`, `gedit`, `nano`, `vim`/`nvim`, `geany` etc and translate it. ## 4. Sending translations Now you can contribute your translated `.ts` file to **A2plus** repository For developers only: ## 5. Updating translations To update all language files from source files you should use this command: ```shell python3 update_ts.py -u ``` ## 6. Compiling translations To convert all `.ts` files to `.qm` files (merge) you can use this command: ```shell python3 update_ts.py -m ``` If you are a translator that wants to update only their language file to test it on **FreeCAD** before doing a PR you can use this command: ```shell lrelease A2plus_it.ts ``` This will update the `.qm` file for your language (Italian in this case). ## More information You can read more about translating external workbenches here: ================================================ FILE: translations/update_ts.py ================================================ #! /usr/bin/env python3 # # *************************************************************************** # * * # * Copyright (c) 2019 kbwbe * # * * # * Portions of code based on hamish's assembly 2 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * # * as published by the Free Software Foundation; either version 2 of * # * the License, or (at your option) any later version. * # * for detail see the LICENCE text file. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU Library General Public License for more details. * # * * # * You should have received a copy of the GNU Library General Public * # * License along with this program; if not, write to the Free Software * # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # * USA * # * * # *************************************************************************** import os import sys import subprocess # ============================================================================== # Script for create translations file for A2plus Workbench # # The script has to be started within the A2plus/translations Folder # ============================================================================== def create_ts(): print("1. Scan UI file for strings:") os.system("lupdate ../GuiA2p/Resources/ui/*.ui -ts uifiles.ts") print("2. Scan .py files for strings:") status, result = subprocess.getstatusoutput("pylupdate6 -V") if status == 127: print("\033[31m'pylupdate6' not found. May be you need run:\033[0m") print("apt install pyqt6-dev-tools") quit() else: os.system("pylupdate6 ../*.py --ts pyfiles.ts") print("3. Combine both scans above:") os.system( "lconvert -i uifiles.ts pyfiles.ts -o A2plus.ts -sort-contexts -no-obsolete -verbose" ) print(" Content from uifiles.ts & pyfiles.ts > A2plus.ts") print("4. Remove temporary files:") os.system("rm uifiles.ts") print(" uifiles.ts") os.system("rm pyfiles.ts") print(" pyfiles.ts") print("You have fresh A2plus.ts file now!") # ============================================================================== # Script for merging different translations of A2plus Workbench # # The script has to be started within the A2plus/translations Folder # ============================================================================== def merge_ts(): os.system("lrelease *_*.ts") print("You have fresh all A2plus_*.qm files now") # ============================================================================== # Script for update all translations of A2plus Workbench # # The script has to be started within the A2plus/translations folder # ============================================================================== def update_ts(): status, result = subprocess.getstatusoutput("pylupdate6 -V") if status == 127: print("\033[31m'pylupdate6' not found. May be you need run:\033[0m") print("apt install pyqt6-dev-tools") quit() else: os.system("pylupdate6 ../GuiA2p/Resources/ui/*.ui ../*.py --ts ../*.ts") print("You have fresh all A2plus_*.ts files now") par = '' if __name__ == '__main__': if len(sys.argv) > 1: par = sys.argv[1] if par == '-c': print("Script for create translation file for A2plus Workbench:") create_ts() elif par == '-h': print("Script for preparing translation files for A2plus Workbench") print("Copyright (c) 2019 kbwbe") print("") print("Commands:") print(" -c - create A2plus.ts file from *.ui file and from all *.py files") print(" -h - this help") print(" -m - merge all A2plus_*.ts files to A2plus_*.qm files") print(" -u - update all A2plus_*.ts files") elif par == '-m': print("Script for merging all translations of A2plus Workbench:") merge_ts() elif par == '-u': print("Script for update all translations of A2plus Workbench:") update_ts() else: print(f"Parameter '{par}' not present.") print("Use 'python3 update_ts.py -h' for information")