2002/07/16 00:39:23
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:03 +0000 (06:49 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:03 +0000 (06:49 +0000)
darcs-hash:20040130064903-2ba56-1a4c2869ee98ac860b6c7f16036a922e5e6befc8.gz

src/org/xwt/Resources.java
src/org/xwt/Static.java
src/org/xwt/Template.java
src/org/xwt/XWT.java
src/org/xwt/builtin/lithium.png [new file with mode: 0644]
src/org/xwt/builtin/splash.xwt [new file with mode: 0644]
src/org/xwt/plat/GCJ.xml
src/org/xwt/util/JSObject.java

index eebef05..c11562c 100644 (file)
@@ -25,12 +25,12 @@ public class Resources {
     /** Holds resources added at runtime. Initialized to hold 2000 to work around a NetscapeJVM bug. */
     private static Hash bytes = new Hash(2000, 3);
 
-    /** The number of bytes read from the initial-xwar stream; used to display a progress bar on the splash screen */
-    public static int bytesDownloaded = 0;
+    /** keeps track of which archive loaded templates into which package */
+    private static Hash usedPackages = new Hash();
 
     /** Returns true iff <tt>name</tt> is a valid resource name */
     private static boolean validResourceName(String name) {
-        if (name == null || name.equals("")) return false;
+        if (name == null || name.equals("")) return true;
         if (name.endsWith("/box.xwt") || name.endsWith("/svg.xwt")) return false;
         if (name.equals("box.xwt") || name.equals("svg.xwt")) return false;
         if (!((name.charAt(0) >= 'A' && name.charAt(0) <= 'Z') ||
@@ -56,17 +56,20 @@ public class Resources {
             String name = prefix + subfiles[i];
             File file = new File(dir.getPath() + File.separatorChar + subfiles[i]);
             if (file.isDirectory()) loadDirectory(file, name + File.separatorChar);
-            else {
-                bytes.put(name.replace(File.separatorChar, '.'), file);
-                bytesDownloaded += file.length();
-                Main.updateSplashScreen();
-            }
+            else bytes.put(name.replace(File.separatorChar, '.'), file);
         }
     }
 
     /** Load an archive from an inputstream. */
-    public static synchronized void loadArchive(InputStream is) throws IOException {
+    public static synchronized void loadArchive(InputStream is) throws IOException { loadArchive(is, 0, null); }
+    public static synchronized void loadArchive(InputStream is, final int length, final Function callback) throws IOException {
+
+        // random placeholder
+        Object thisArchive = new Object();
+
         ZipInputStream zis = new ZipInputStream(new FilterInputStream(is) {
+                int bytesDownloaded = 0;
+                boolean clear = true;
                 public int read() throws IOException {
                     bytesDownloaded++;
                     return super.read();
@@ -74,23 +77,46 @@ public class Resources {
                 public int read(byte[] b, int off, int len) throws IOException {
                     int ret = super.read(b, off, len);
                     if (ret != -1) bytesDownloaded += ret;
-                    Main.updateSplashScreen();
+                    if (clear && callback != null) {
+                        clear = false;
+                        ThreadMessage.newthread(new JSObject.JSFunction() {
+                                public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
+                                    try {
+                                        callback.call(cx, null, null, new Object[] { new Double(bytesDownloaded), new Double(length) });
+                                    } finally {
+                                        clear = true;
+                                    }
+                                    return null;
+                                }                            
+                            });
+                    }
                     return ret;
                 }
             });
+
         for(ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
             String name = ze.getName();
             if (!validResourceName(name.substring(name.lastIndexOf('/') + 1))) {
                 if (Log.on) Log.log(Resources.class, "WARNING: ignoring xwar entry with invalid name: " + name);
                 continue;
             }
-            if (ze.isDirectory()) {
-                new Static(name.replace('/', '.'));
-                continue;
-            }
+
             if (name.endsWith(".xwt")) {
-                Template.buildTemplate(zis, name.substring(0, name.length() - 4).replace('/', '.'));
-                bytes.put(name.replace('/', '.'), new byte[] { });                          // placeholder so resolveResource() works properly
+                // placeholder so resolveResource() works properly
+                bytes.put(name.replace('/', '.'), new byte[] { });
+                name = name.substring(0, name.length() - 4);
+
+                String packageName = JSObject.nodeNameToPackageName(name.replace('/', '.'));
+                Object user = usedPackages.get(packageName);
+                if (user != null && user != thisArchive) {
+                    if (Log.on) Log.log(Resources.class, "templates have already been loaded into " + packageName + "; refusing to load " + name);
+                } else {
+                    usedPackages.put(packageName, thisArchive);
+                    for(int i=0; i<name.length() && i != -1; i = name.indexOf('/', i + 1))
+                        Static.createStatic(name.substring(0, i).replace('/', '.'));
+                    Template.buildTemplate(zis, name.replace('/', '.'));
+                }
+
             } else {
                 bytes.put(name.replace('/', '.'), isToByteArray(zis));
             }
index 035a4ed..cb7a510 100644 (file)
@@ -8,13 +8,14 @@ import org.mozilla.javascript.*;
 public class Static extends JSObject {
 
     public static Static getStatic(String resourcename) {
+        return (Static)cache.get(resourcename);
+    }
+
+    public static Static createStatic(String resourcename) {
         Static ret = (Static)cache.get(resourcename);
         if (ret == null) {
             Template t = Template.getTemplate(resourcename, null);
-
-            // FIXME: ugly
             if (t == null) return new Static(resourcename, true);
-
             ret = new Static(resourcename, false);
             t.link();
             return ret;
@@ -58,4 +59,6 @@ public class Static extends JSObject {
         return getStatic(resourcename + (resourcename.length() == 0 ? "" : ".") + name);
     }
 
+    static { createStatic(""); }
+
 }
index 74eceee..859c39e 100644 (file)
@@ -90,6 +90,8 @@ public class Template {
     /** number of lines in <tt>content</tt> */
     private int content_lines = 0;
 
+    /** the line number that this element starts on */
+    private int startLine = -1;
 
     // Static data/methods ///////////////////////////////////////////////////////////////////
 
@@ -161,7 +163,9 @@ public class Template {
      *  @param pboxes a vector of all box parents on which to put $-references
      *  @param ptemplates a vector of the nodeNames to recieve private references on the pboxes
      */
-    void apply(Box b, Vec pboxes, Vec ptemplates) {
+    void apply(Box b, Vec pboxes, Vec ptemplates, Function callback, int numerator, int denominator) {
+
+        int original_numerator = numerator;
 
         if (pboxes == null) {
             pboxes = new Vec();
@@ -185,10 +189,15 @@ public class Template {
         link();
 
         for(int i=0; _preapply != null && i<_preapply.length; i++)
-            if (_preapply[i] != null) _preapply[i].apply(b, null, null);
+            if (_preapply[i] != null) {
+                _preapply[i].apply(b, null, null, callback, numerator, denominator);
+                numerator += _preapply[i].numUnits();
+            }
 
-        for (int i=0; children != null && i<children.length; i++)
-            b.put(Integer.MAX_VALUE, null, new Box(children[i], pboxes, ptemplates));
+        for (int i=0; children != null && i<children.length; i++) {
+            b.put(Integer.MAX_VALUE, null, new Box(children[i], pboxes, ptemplates, callback, numerator, denominator));
+            numerator += children[i].numUnits();
+        }
 
         // whom to redirect to; doesn't take effect until after script runs
         Box redir = null;
@@ -206,7 +215,9 @@ public class Template {
             if (Log.on) Log.log(this, "         thrown while instantiating " + nodeName + " at " + e.sourceFile + ":" + e.line);
         }
 
-        for(int i=0; keys != null && i<keys.length; i++)
+        for(int i=0; keys != null && i<keys.length; i++) {
+            Context.enter().interpreterSourceFile = nodeName;
+            Context.enter().interpreterLine = startLine;
             if (keys[i] == null) { }
             else if (keys[i].equals("border") || keys[i].equals("image") &&
                      !vals[i].toString().startsWith("http://") && !vals[i].toString().startsWith("https://")) {
@@ -215,17 +226,38 @@ public class Template {
                 else if (Log.on) Log.log(this, "unable to resolve image " + vals[i].toString() + " referenced in attributes of " + nodeName); 
             }
             else b.put(keys[i], null, vals[i]);
+        }
 
         if (redirect != null && !"self".equals(redirect)) b.redirect = redir;
 
         for(int i=0; _postapply != null && i<_postapply.length; i++)
-            if (_postapply[i] != null) _postapply[i].apply(b, null, null);
+            if (_postapply[i] != null) {
+                _postapply[i].apply(b, null, null, callback, numerator, denominator);
+                numerator += _postapply[i].numUnits();
+            }
 
         pboxes.setSize(numids);
         ptemplates.setSize(numids);
 
-        Main.instantiatedUnits += 1 + (script == null ? 0 : 10) + (keys == null ? 0 : keys.length);
-        Main.updateSplashScreen();
+        numerator = original_numerator + numUnits();
+
+        if (callback != null)
+            try {
+                callback.call(Context.enter(), null, null, new Object[] { new Double(numerator), new Double(denominator) });
+            } catch (EcmaError e) {
+                if (Log.on) Log.log(this, "WARNING: uncaught interpreter exception: " + e.getMessage());
+                if (Log.on) Log.log(this, "         thrown from within progress callback at " + e.getSourceName() + ":" + e.getLineNumber());
+            } catch (JavaScriptException e) {
+                if (Log.on) Log.log(this, "WARNING: uncaught ecmascript exception: " + e.getMessage());
+                if (Log.on) Log.log(this, "         thrown from within progress callback at " + e.sourceFile + ":" + e.line);
+            }
+
+        if (Thread.currentThread() instanceof ThreadMessage) try {
+            XWT.yield.call(Context.enter(), null, null, null);
+        } catch (JavaScriptException e) {
+            if (Log.on) Log.log(this, "WARNING: uncaught ecmascript exception: " + e.getMessage());
+            if (Log.on) Log.log(this, "         thrown from within yield at " + e.sourceFile + ":" + e.line);
+        }
     }
 
 
@@ -307,7 +339,7 @@ public class Template {
             Trap.removeAllTrapsByBox(b);
             
             // Ref 7.5.7: "Apply the template to the box according to the usual application procedure"
-            b.template.apply(b, null, null);
+            b.template.apply(b, null, null, null, 0, 1);
             
             // Ref 7.5.8: "Re-add the saved children which were removed in step 3"
             for(int i=0; kids != null && i<kids.length; i++) b.put(Integer.MAX_VALUE, null, kids[i]);
@@ -327,7 +359,7 @@ public class Template {
     private void link(boolean force) {
 
         if (staticscript != null) try { 
-            Scriptable s = Static.getStatic(nodeName);
+            Scriptable s = Static.createStatic(nodeName);
             if (staticscript != null) {
                 Script temp = staticscript;
                 ((InterpretedScript)temp).setParentScope(s);     // so we know how to handle Static.get("xwt")
@@ -476,6 +508,7 @@ public class Template {
 
                 } else if (name.equals("template")) {
                     // finalize importlist/preapply/postapply, since they can't change from here on
+                    t.startLine = line;
                     importlist.toArray(t.importlist = new String[importlist.size()]);
                     if (preapply.size() > 0) preapply.copyInto(t.preapply = new String[preapply.size()]);
                     if (postapply.size() > 0) postapply.copyInto(t.postapply = new String[postapply.size()]);
@@ -496,6 +529,7 @@ public class Template {
                 Template t2 = new Template();
                 t2.nodeName = t.nodeName + "." + t.childvect.size();
                 t2.importlist = t.importlist;
+                t2.startLine = line;
                 if (!name.equals("box")) t2.preapply = new String[] { name };
 
                 // make the new node the current node
index 340033f..6ea3c0e 100644 (file)
@@ -62,6 +62,8 @@ public final class XWT extends JSObject {
         }
         else if (name.equals("println")) return println;
         else if (name.equals("math")) return org.xwt.util.JSObject.defaultObjects.get("Math", null);
+        else if (name.equals("loadArchive")) return loadArchive;
+        else if (name.equals("prefetchImage")) return prefetchImage;
         else return super.get(name, start);
     }
 
@@ -75,13 +77,7 @@ public final class XWT extends JSObject {
 
     // JSFunction Instances ///////////////////////////////////////////////////////////////////
 
-    /** Helper class for defining functions. */
-    private static abstract class JSFunction extends JSObject implements Function {
-        JSFunction() { setSeal(true); }
-        public Scriptable construct(Context cx, Scriptable scope, java.lang.Object[] args) { return null; }
-    }
-
-    private static final JSFunction newBrowserWindow = new JSFunction() {
+    private static final JSObject.JSFunction newBrowserWindow = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 1 || args[0] == null) return null;
                 Platform.newBrowserWindow(args[0].toString());
@@ -89,23 +85,26 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction yield = new JSFunction() {
+    public static final JSObject.JSFunction yield = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 sleep.call(cx, null, null, null);
                 return null;
             }
         };
 
-    private static final JSFunction println = new JSFunction() {
+    private static final JSObject.JSFunction println = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length == 1)
-                    if (Log.on)
-                        Log.log(cx.interpreterSourceFile, args[0] == null ? "null" : args[0].toString());
+                    if (Log.on) {
+                        String source = cx.interpreterSourceFile;
+                        if (source.endsWith("._")) source = source.substring(0, source.length() - 2);
+                        Log.log(source, args[0] == null ? "null" : args[0].toString());
+                    }
                 return null;
             }
         };
 
-    private static final JSFunction date = new JSFunction() {
+    private static final JSObject.JSFunction date = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 try { return Context.enter().newObject(org.xwt.util.JSObject.defaultObjects, "Date", args);
                 } catch (Exception e) {
@@ -116,7 +115,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction regexp = new JSFunction() {
+    private static final JSObject.JSFunction regexp = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 try { return Context.enter().newObject(org.xwt.util.JSObject.defaultObjects, "RegExp", args);
                 } catch (Exception e) {
@@ -127,13 +126,13 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction listfonts = new JSFunction() {
+    private static final JSObject.JSFunction listfonts = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 return Context.enter().newArray(org.xwt.util.JSObject.defaultObjects,  Platform.listFonts());
             }
         };
 
-    private static final JSFunction theme = new JSFunction() {
+    private static final JSObject.JSFunction theme = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 2) return null;
                 if (args[0] == null || args[1] == null) return null;
@@ -142,14 +141,14 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction xmlrpc = new JSFunction() {
+    private static final JSObject.JSFunction xmlrpc = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 1 || args[0] == null) return null;
                 return new XMLRPC(args[0].toString(), "");
             }
         };
 
-    private static final JSFunction soap = new JSFunction() {
+    private static final JSObject.JSFunction soap = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length == 1 && args[0] != null) return new SOAP(args[0].toString(), "", null, null);
                 else if (args.length == 2 && args[0] != null && args[1] != null)
@@ -160,7 +159,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction textwidth = new JSFunction() {
+    private static final JSObject.JSFunction textwidth = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) throws JavaScriptException {
                 if (args.length < 1 || args.length > 2) return null;
                 if (args[0] == null || (args.length == 2 && args[1] == null)) return null;
@@ -173,7 +172,7 @@ public final class XWT extends JSObject {
         };
 
 
-    private static final JSFunction textheight = new JSFunction() {
+    private static final JSObject.JSFunction textheight = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length > 1) return null;
                 if (args.length == 1 && args[0] == null) return null;
@@ -184,14 +183,21 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction newBox = new JSFunction() {
+    private static final JSObject.JSFunction newBox = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
-                Box ret = new Box(args.length == 0 || args[0] == null ? "box" : args[0].toString(), Template.defaultImportList);
+
+                Function callback = null;
+                for(int i=1; i<args.length; i++)
+                    if (args[i] instanceof Function && callback == null)
+                        callback = (Function)args[i];
+
+                Box ret = new Box(args.length == 0 || args[0] == null ? "box" : args[0].toString(), Template.defaultImportList, callback);
+
                 for(int i=1; i<args.length; i++)
                     if (args[i] instanceof Box)
                         ret.put(ret.numChildren(), null, (Box)args[i]);
                 for(int i=1; i<args.length; i++)
-                    if (args[i] instanceof Scriptable && !(args[i] instanceof Box)) {
+                    if (args[i] instanceof Scriptable && !(args[i] instanceof Box) && !(args[i] instanceof Function)) {
                         Scriptable s = (Scriptable)args[i];
                         Object[] keys = s.getIds();
 
@@ -202,7 +208,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction sleep = new JSFunction() {
+    private static final JSObject.JSFunction sleep = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args != null && (args.length != 1 || args[0] == null)) return null;
                 int i = args == null ? 0 : SpecialBoxProperty.stoi(args[0].toString());
@@ -223,7 +229,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction openFile = new JSFunction() {
+    private static final JSObject.JSFunction openFile = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 1) return null;
                 String file = Platform.fileDialog(args[0].toString(), false);
@@ -231,7 +237,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction saveFile = new JSFunction() {
+    private static final JSObject.JSFunction saveFile = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 2) return null;
                 if (!(args[1] instanceof ByteStream)) return null;
@@ -252,7 +258,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction saveFileAs = new JSFunction() {
+    private static final JSObject.JSFunction saveFileAs = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args.length != 2) return null;
                 if (!(args[1] instanceof ByteStream)) return null;
@@ -271,7 +277,7 @@ public final class XWT extends JSObject {
             }
         };
 
-    private static final JSFunction utfEncode = new JSFunction() {
+    private static final JSObject.JSFunction utfEncode = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args == null || args.length != 1) return null;
                 return new ByteStream(args[0].toString().getBytes());
@@ -279,7 +285,7 @@ public final class XWT extends JSObject {
         };
 
     
-    private static final JSFunction parseHTML = new JSFunction() {
+    private static final JSObject.JSFunction parseHTML = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args == null || args.length != 1 || args[0] == null) return null;
                 try {
@@ -322,7 +328,7 @@ public final class XWT extends JSObject {
         }
     }
 
-    private static final JSFunction recursivePrintObject = new JSFunction() {
+    private static final JSObject.JSFunction recursivePrintObject = new JSObject.JSFunction() {
             public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
                 if (args == null || args.length != 1) return null;
                 recurse("", "", args[0], cx);
@@ -330,6 +336,74 @@ public final class XWT extends JSObject {
             }
         };
 
+    private static final JSObject.JSFunction loadArchive = new JSObject.JSFunction() {
+            public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
+                if (!ThreadMessage.suspendThread()) return null;
+
+                try {
+                    if (args == null || args.length < 1 || args[0] == null) return null;
+                    URL u = new URL(args[0].toString());
+                    
+                    Function callback = null;
+                    if (args.length == 2 && args[1] != null && args[1] instanceof Function) callback = (Function)args[1];
+                    
+                    if (!u.getFile().endsWith(".xwar")) {
+                        if (Log.on) Log.log(this, "Error: archive names must end with .xwar: " + u.getFile());
+                        throw new JavaScriptException("Error: archive names must end with .xwar: " + u.getFile());
+                    }
+                    
+                    if (u.getProtocol().equals("http")) {
+                        HTTP http = new HTTP(u.toString());
+                        if (Main.originAddr == null) {
+                            try {
+                                Main.originAddr = InetAddress.getByName(u.getHost());
+                            } catch (UnknownHostException e) {
+                                if (Log.on) Log.log(this, "couldn't resolve " + u.getHost() + "; proceeding without permissions");
+                                Main.originAddr = InetAddress.getByName("0.0.0.0");
+                            }
+                        } else {
+                            Main.originAddr = InetAddress.getByName("0.0.0.0");
+                        }
+                        Resources.loadArchive(http.getInputStream(), (int)http.getContentLength(), callback);
+                        
+                    } else if (u.getProtocol().equals("file")) {
+                        if (Main.originAddr != null) {
+                            if (Log.on) Log.log(this, "scripts downloaded from the network may not load xwars from the local filesystem");
+                            throw new JavaScriptException("scripts downloaded from the network may not load xwars from the local filesystem");
+                        }
+                        Resources.loadArchive(new FileInputStream(u.getFile()), (int)new File(u.getFile()).length(), callback);
+                        
+                    } else {
+                        if (Log.on) Log.log(this, "unknown protocol \"" + u.getProtocol() + "\"");
+                        throw new JavaScriptException("unknown protocol \"" + u.getProtocol() + "\"");
+                    }
+                    
+                } catch (MalformedURLException me) {
+                    if (Log.on) Log.log(this, "Malformed URL: " + args[0]);
+                    if (Log.on) Log.log(this, me);
+                    throw new JavaScriptException(me.toString());
+                    
+                } catch (IOException ioe) {
+                    if (Log.on) Log.log(this, "IOException while loading archive:");
+                    if (Log.on) Log.log(this, ioe);
+                    throw new JavaScriptException(ioe.toString());
+
+                } finally {
+                    ThreadMessage.resumeThread();
+
+                }
+                return null;
+            }
+        };
+
+    private static final JSObject.JSFunction prefetchImage = new JSObject.JSFunction() {
+            public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
+                if (args == null || args.length < 1 || args[0] == null) return null;
+                Box.getImage(args[0].toString(), args.length > 1 && args[1] instanceof Function ? (Function)args[1] : null);
+                return null;
+            }
+        };
+
 }
 
 
diff --git a/src/org/xwt/builtin/lithium.png b/src/org/xwt/builtin/lithium.png
new file mode 100644 (file)
index 0000000..54c5df0
--- /dev/null
@@ -0,0 +1,335 @@
+\89PNG\r
+\1a
+
+Â3¥\95\12b\15Q¨i\82Z\12«\92(ñÚ½\12oJ¬à(K\9c#­*\96$)\e\92j¨ë\92;`ÙîÙݤü¸\87ÝÙï Z\7f \9aÆF÷ÔV»\87\ 6çþÙâ\86\9f\eå\83?orÇ\8f\fí³ÏÚÖï\8e,çÌÝ?|r<üôÉéÑgg\9d\93ãÁðè`ðdà\1e\rÜÓ\83Þ°k9C«\a\18\ 6®ít»mÓ°LÍhmµÚmkÃ\80_¡ÉÆƦn(\8a"­«r}\1dи#    \82\ 4\7f\9a¨Ô\94sãcÐôc~\7f \fm=î\1fóZýGnø\83ð3¢\84ÿ¢G\ 1ß\ 4¬\93\1e#"
+bT\8efy\96)­£¥ê=\8a\12%rÙ\90³òàNÎ>å\91~Ô ë¦d\18UɲÊ\94ûD!ìÿp¨îÿ{ÄÙ\9f\ feóó¡a\9côº\9d^gÐ3Ýßî8\8f>Ö¬³\81â|²¿~öÃ~ÿ\87Cçñpëè¬ã\1e9Çgnÿà sгÜ\8eáZVÏÞîv,×6\8c\96i\99\86nêÚ¦Ö²5ÍÛ7\f­ÕR\14MRWdh{¡!\89¢Ä±\15\96\11eQ\90Ï\ 1\80\ f\97B\ 1\1f\ 2&\8cù.½(C~\1f\ 5ý\80F\10JVptt\12¸
+bÓobá©Ø%\9c\8e%¦b\ 5\1c#\133ED¢\fËËËKXY É<kÑh\89³wr$)÷U¶R%òd~\19¸!\rîa\88gp2\9b\998\86V
+E®Fa+\ 2\91ã\ eÖÉå­u\ 2IM\1eHÁ¯R\14ÃÞ¾Ã)l\9a¸Ïçr÷%<g×ò¬^Å\96õ\12VaYÄ\8a\15Áh\10ôÐ%sî\89\82Ì\13­ÒøÄÑ­\8fº'®Û;v7\8cÓßþ\9f­³£êú§G´ñé\80i\7fºû\9bÁ\9fUöè\89ª\1f\1d6Ý'½\8d\8fÏz\1f=\19t\1e\ f¬¡»w<4º®n÷ôNWo\ 3\ 4½MͲ\r@ mhÖ¦&7DY1UÕÐ7[\8aiªZMä\81\14\12#\buAP\84\a+U¡*\b<'Ë
+@\ 1½\188
+\87'Cáà$ÜBãA(ÿÁ\80\7f\15¥ÀøXÌç}\80'=S¾±ÐEßTp&îq\ 3\85ÃSA,:\89ðhn*.Px,\1e¯°\19\92Àé\1aM\v\1aWX*\ e\\ 6\91\en\9d\91Û|\91Ä\98®Ài\9dúr©\80§sñ\19
+å0±Nf*{|\81µU
+GL\ 6[b«\14"i\8e)b<_Ä\91ÊåHq­H¬+\f)¨,S×\18į3\84b0\94Õ¦X\87Ç\8d=
\9djÙ´4ûî¶vd¬\8a\8f\¾úøwTùé\9fïP\8fþ|\ f\1d~ºÆ\1c<ªÝíôôÖ\96;ØÛþp\7f}룮j\9d\ eÔáSwçøÈ<zìô\1f\ fÛ§G\86ëî\1d¸]Ûr\ 6½­N·Ýé\1a\8eµm;m¨LÀ        u[Ûl@9ÒLÓ²LSWL½e*RC\90dA\10¡\8cÖÅ{b¥Â³U\81\17DáÜ\98ß\93\ 6Rà5%4?\10\ 1V\ f\9e` 8þ¢\\814\aBahüðääd$\12
+\9d©Ø÷\8a´ÔD\88\17ù"ER¹÷ãñ"z?\9d\14+Ŭ \14rK\15¡\\15y¡Z\11\98{,#­ó,¿µÎð;u$\1atU±ª\8c)óJ»^Stå\ 3ù`-·~Ò!\99ÁC\9arÏø\92{¤oî\f@SU÷Ь÷\8e\14Ö=\96Ø\93'\8aôño\15å\13wÍ}²§\1d\1f9\eO\8e¬\83³\ f\9d'\1f\1f~|6\18\9cZîqÏ\1d¸î£\9eu4°Ýî^×ÖÚmÃpÌ\8eѶt­¹®* Ó \18\16È÷:¨\85®¨JSÓU\90\bXD\10
+X0Ë«\88?76Z^\18¥¿Z©\91l_
+A]
+yZí\81\ 4Ë¥Ka
+$\184"\98Àâ\11xy8\1e\8f\83¨\8c\ 5§\ 2¡\178ÆGb~i,\1f\vD&âD\90-Æ°hxi\86HD±é\b\8f\12¹ØÄýjz\99À\90\`\9b÷\11[ I´\9c­
+$\8d¤\81ɱ¬°Y¥\97Í\ exY#G\14¡DMÇã\89\f\16'ʹéD¥\18#\84
+\95a\ 5\12ÕÚU\82WîÜ&U\89¢\90÷}X\9e+\17\19\91Ëq*\82\92EÅé6Âx±H\82\19(­1\9c ü\ 6µÔLÖéßË©\8f­¢úÙIUùìÈ0Î>êì\ e\9cÃÃ-ýhÐÐ\1e[¼ñ;«ì|ªÝ9|(òGG\9cõû\83ÚÑg\86q| »G\9aõÈÔ\8f\ãx`\f\86æ`¸×?Þ\1f\9ct\1c×\ 4ÔtSÛ´Ô\9a!˦
+\1cT6\rYmÉjMÓeE\ 6
\89%\96ÄH\81ó°eðªºF\16,\19¡V\ 3Q\86\8a(Ó(\97ÍFZê2Ŷ\85+C>£:|UvÀ×ZÊÁþ½µ\8fOÕÊÙïùõã\1fDæñ_ÖÈÓOyöøX\90 ý¥Áà\ 1¨²e\f\Ó<í\19ö°«\ e\ e\8c\83\81á\9eX ÚÖáA\aØ0t\9c¡k\f\ f¬n¿íl·Ì¦j\19r\vÒCKkµ[\90&@¸[\8a¤\b2T$©©\82\Hl]à\18¾*\ 2#P\11\15\882/\9có¬' áé5\10Â7~)x)èE\8cð%\90làFØÓ\8b Wv.\85\80\13S
+Dâ\17    &\9e\8dÆ\93¡\19&\82E|KÒL\1e\vÓ:üúTÆÜ, Y(±L\ 1  \88S*4BfOã\95\9e\ 4y\82¬Pù%¡\ e\ 1\90Çs\94²\9a#\10\85ã\14\85e\92i\f'ÒñÜ2\89\f\96F,MP\ 2d@N\90\ 5®ªñ<+é\1coh\1f¬ª\1a
+IëÒª$WëÒ]AÞ\13qþÀ¢¹ÁGy¢ÿ{æͽ'ëÌÎ#­â|\fJ»ßí6\1e\1c\1c4äÁ\81¨\1dvªû\9f\98ÌÖ#S\1e\1c*Û§®28Þ¶Î\ eö\8e\Ý}ä~øÐ\ 1 zG½Þ\81Ûë;Π\ fzÝnwôí=ÓØmCÂÛ´\95V{So·5­Ý\ 2É6TIUÕ\auYæ\ 4\ 6\94­T\ 3ï´
\1a±«\15\88xàe¡2ÁvÌcÁøH2À:\85<\16x\91:0Ê× Óá\89°G\8ah$\b¦t*ì\ f\98\97;¦g
+\ f Ph:\95\8c\133D\16\82\ 5¼5\97\9c\86\825>\95\9aHÃá±é©I>\1d\9c\ eD\88H\15\vÇÇÃäT26\91\8cEÙt\14\8bO\8b(\95\8aÇX.2ÝêÞ\ 1\v\95Q*Ù¥Z½r_c\ 5J<üP\10$\11\f\88²YºB\11\ 5\91\82ÉáH\11É\1cß g\80Ò\18\8e(\82Àrd\ 6Kb\141\8d\7f@Mã|\8dÀx\9d\8aS\12\85Q\ 6\9bå[|\8e7YÜ0\8b¤-\14M\9bªö5\8aw÷«¼c¶Ô\8eé8ÍÖà¡¡\f?\93\9fIìÇO)áñ\11µúä\185ÎlBy¤QöPâ\1dG2\8f\©3\90Ô~·a:ªý±Ñ92:\a\8e5°Z½\96é\98jÛ0míþ&䡦Ò\81V\97\84MÃPôz{ÓÐ4\ 5|\94\ 4X\81\9b]\97¤\9a*\88üݺP¥YÄ0P\9e\88*\98\ eÈ\15#\ 3\ 5Í\r\16il4¦çi7T\9a \88\eç¸4\11\bD|áI
+\87çé\12QĨ"XÚt.\83Mg\vÙ4F#<N \12K\93\ 5<O "\8bx\96\ 6åà\19zUZF\82Âr²Áß\16vÙ;
+tEå\1ex\18^r×ùjwH¿yð\84Ê\r~XÇ?üÁ¹m}¦R{gî\a\96«o«\9dnKr\ etÎèË\8cÓç\95~\976\1eZâp(\99\87Û\8d£¾ÔëëîѶ}Øé\1ct¬~×ìíÂ\8eÙíB!S\9aº¢\81Të²Þj\81\99\ 2RX\86®j\9a~\7f\ 3JÕÖvCU\84ºÌסBIb\95a\852ÍzhÐÌ9Ðk(QÞ\80Ó%\9fw\ fJ\ 1É.è\r \ 6#\93¡KaØ\9d\b\ 6&\ 1\9aÈh46\1c\8aÆ£áP>\8fÅ¢¡èÔL\f\1cÔ\85X$µ4\19\ 5I÷3\bÐ\8b%Æh\1elîôôX\86\8e\80¡JLÎ\10Áp<\90&¢ÉD0^ËÆ\b:íFò]\ 5±\ 2W 8­Â,×\ f\1c\16Qâ&\87´n}¹,T\80¼\19¢°D`$\96\9cÆÈL\12\83\88\8ea
+x V{ꬶ\1fÛdç3\8bî\7fª¡ÁÇ\8axØå7NL¾ÝÕÖ\aÝ\9dý#w³w`v 2u{[î9<ñv¬®Ù=Øê¸\86Õ3\9a\9a,\1ar\r\90\9b\9a
+Ò­\99ª±­µÔÖ\86Òjm¶ {?\80L\ 1Y\9bçA-x\89\13Ê<Ãp¨Xb=Ùö\ 27¸¨\17#«/¼ÔÈ3\85áK/4\eLmd\12Ò\84§\1eÁ0\9e\88ø\ 3áT!\e\ 3£\15)ƧAµ}Å8\86\87"¡É|\ 4\11ÁD,\12÷Q\14\ 4ÀKÓ\93E\ 2\18]HÆ}cXf\1alT¢\92Éæ\82\9efhT*\15X\99\9df©¦Û&è©Ë3ð7æ\88L\96Eù,ôs\ 2\92 \96¯Ð¹¥\92Be\97\ 4\96"i\ 6Ë\95\18:Kq@
+\8aH¦o\93Ù\99\1cA@¾ \b@\85\81\f\ e\12M±ÂoV9\86¡Ùª`ˬ¬K\84ð°\83\97\9e\f\búé§\ 2óô\89"?>3Õ\93\9em}´ïl9;ûÆNÏ­«\ 3[ÕÝuià®m\9cXòG]Ù\1e¨;G»\8d½mÅínôÚµ\ ed\89®fÛÚ¶©ÚV£¡C\9e\96[*Ü×!ÑAÖnn© \16\9a,7\94æ\ 3Azð &       àð\ 4\8e»·Â\8b<Ï      \88Fe\ 61ü¹\91\93õFf='\vº\ 1¹mÔù\ 3\80E
+%\12_VP:ÇòE\9c °t\86 I\fË\12X<]ÌÎL\97îä¦1éN\12\93ï¦qMʤ5ãý¼.¥Ù½;\19Þ.\17\1d5§¶\117tøâÐYc\8e\aë\92å¶-ËÝuw\8cÁÇ{­áû£CZ}2 jO¶n[\9f¬¡þa\95?ܧÛG\12ÿ¡+l\1c\eâÀ\91ÝAmó@Ûê\8bZOS\ eÛë\8eat\ 1\bµÕ6ê\90§Õ\9a¬@Ê\96ÔƺØl©:$<I\95UEV\14A\14%Y\a(øªÀÜ©\vJ\95\ 5ç]Zeá\e3çü£|\aÕéâ\88\18~ÏI\8d\86bA³\ 1\94K`\9f.\81\93\9d
+\15"CE\85=´TBË+%YYE\9am\8auk\9bGE¾­p\82¦Ó$'ÐE´Ê\90\ 4\96y\1fü,Fäð\1c\93X\81\89Bnz\86\18\19ÛéÉ\)\93Ä!^ä  \90\fWe\98;àmWk|\15z\1eËü+Ü)¢ªI\8ajnlu\ e¥;ÎÇõ²ýù\83ÜÎÿ½\953þb\91î_z¤õ\99\a\7f¢¬Y\8e,´Ü\9d\87\ 6ßéHR_«6]Y\1dXZÏÑz®ÑùÐl»»N¯­÷ím«Ûîئ¥oA\820\9br\ 3@iéjk]Ù\ 6\a«ê\86¨ªM \88´!Uä{R\1d\82\1e\aJ!¬Ýã×ÖE\ e\95Ù;,\ 3²í\9d9\1aaàó\ 6
\9d\92ë+\ 5Y,T»\a\r$t\1cU\10Ú6Ï\14
+\15¾\94A\15\92("ØYª²ù\8cx\9fH\10\1cÊA6Ì¥)\ 6\9f!JËi É\e\18º\9dNC\ 6\a\95À³ØZ!K°\b+\96ËKT¹Z\ 2QgA"\18F¤KU~µ*\bõ{¢(+Ú¶z\9b\1f\1eÐôÙC¦xr¶¶öô±Ä\7fö\89¤<9R­³\9e´7hË»nwÛÙµUõÀVözªlYw{û[{\ 3Óv75k«}`·\9d}g`\9aÎN{Ð3;\86ÚikVK1ÚMݨm\9a-}SU·Ô\86t_Ñj"è9ð\13\ 4[\16\99;õ®(qü=\91\85DÁq<\94
+¿w¶\ 2 \b¼\18\7f\85p11"\83\aÈDÐ3P/\ e\a\82~\8f\1dáX"\fö4CÄcá\80\8fH%¦'"¾x CD@³#ãË\847\14\e\1c\ 33\ 5!<ðºg¼B¾\b8à@$\11\9e\88\85C±T8Ã& &\v\95|Eã
+%©¶¬\r,¶¬»®,\88J\93\98­*\84   a\99\ 2
+\9f\88]\1a\v^ôrH\f4&\1cÏû\ 3ÑT*\1f\r±%,\13Ãú&*sÂ2Û®Ðò\81û\80\13»\8e´"Ø}\95åuu¹H!<\93Éå33X"\9e°é\ 41\15\8b\88¥sÓÓ \14ñi,;\1dI!l\ 2ãðx\8eer9^ÉÌ \99Æ)\8d'¡ý¹ßÔ8\9e\11!l©\ 2Û\90j\12øË\83¶½³×\1e\1a\86uºQo\7f²\7fÇ8Ûg¬Ï­Ûî_´Û\87\9fñäÁcI8rKÂ\91\83\9a§]Nq\95»{\1diýpûn»}WûÐ4û¶\ 4\95Êìnï9ínoÇrÚV§µÕi\99¶bBa² J\18º®z\ fÚ\9b\9b\86\9b¢¢xºÝPeO½AÇ5µ¦\8a\9e\ 6DeE¡Â­ÒP .\80\89ý__\7f1çÃwÑ;\a4:½}\11\ 5K|\97Æ.zG!\ 4\8eCùò\87\13)pN3\89x$8\1eòÅ\89 wºÂ\97\89¥RÐæá\88¯\88E¦B\81h`"\1a\89\85^\ f\a!\12\ 6 \8c\87#áX,º\94\8a%²©\15\84\15\84\12½T\91\97+f\9b\13§Î¨Ý\8e¬´Û\ 2M#Ò\eêÃ\vD2^ Ò)\fpOç3ñ©4\81ͤ\13x&ç)\ 5\81çg²ñl*\aá\8eõ\ 6Úy(h\1cYd4\ 6CM)Wu6²h¯\95â\9d{\98d\12T×ÈívIéó\1e±ó\1f\83\1fvIé¬\87W\8f]F\1dºëª»oÔ[]K\92\8f>\\93\\83w\8fdöt@7\1e\9a¼{ü@=Ý\91:N];è®\83P\f\©7´»Ý¶ã\9aÖ Õ¶[vwÓ²\9a-Û0Í\86nµ4So¶õ­-\r¢v£¹¡
+uá\81¶®\1az}}[\91\80\13R£Þ\10D\81W$~ý\ 1Ãó+,{îÂ\85±\vc¯½~á\ 2\90ãâÅ1¯V\8dÃ\8eï\12ØY@Á\ 3È#Ç\98ï"ì\82'\r\83ù($      p±\9e\85õ\85| ,<q)æó\17£ñ\19@"\\98\ 4¦$ÂcÀ\8e\10äC\1fäöDÜ\a¡#\91÷\87\96³1<\10k®`X^,Ñ+2/´»kÄýã\81ÄÊ\8e}¿*T¹Êr\81\12\94\b\ 2\8bá\88ͦ3«(\19Ïйx"\87¥1
+eã$õf\9aDÉ4Aeq\8a/&)ñ\83$Qm`ñ\ f\14\1c¯®ç\bY&3\82À N \90È,©\1a\b5ËR\8dý\7f³Öïnô{â\9dá\ 1·öð\88\17\9f\1e2­Ï;äÖ\13{Õ}º}w0h¨'®b»¦Ò\81´ìô\8cöÀnl;ê¾Ûî\1eXÖp¯Õ3\8d\ f÷\fw¿Ó³å¶®w\8cºÙÚl\9b\e\86Z×d¨P²Úô
+Ò¦\ e\86V\13 Û­)MEU4å\81\13\ 5\ e\1e?X¯Hª\b*"1«\12\ fP\øù\85×`ëM´ñ\ 1\ 6°\8e\a
+G#Qð`þh&6\ 6\8c\88E\ 2
+Óßf©\ 1%Æ/\8e¦á\84¡ÌL\84\93\19°I¾p4\9aò\¯/\90\8fxíì\83t\9d\8eG£¡xd"\12\8e§À[\81f\87Â\13cÁh`*æ\ feb\89\98?QÊÏÄ\82µ*\91É\b¬ÖÕ\99;Å\90R¿-²÷mc¥PQ¤U\8a¢\b\ 2\12\91K¦2\14\1eÇ°ÔT,\9d\89Çf\b<\99\ 6s;\9dGx2Iå§\93t!\15¯\bé\18±\92\8d\11
+3õ¦&¤s¢\96+¶dÄ\9a*˶5Vj×+Ý\8e`ö´æI·½÷õ\ 4
+\94ö¦nj¶c\98ZKÚØlè\1aÈG»¡©\ fê\92\13ÖU°\89Ò\ 3\89\atTP\8c5N\10¸
+/Þ\95<­ðøð\1a\94©\v/¬Ô¸wúbl4\ f\aÄÃ\ 3\ 5|¬G\15?\18¦\90?\94H\84ý\818\86\a'B¾ÀT$>\15\fû#\91H&\1a\ e\87§ÆG\1e6\98\b\80oMçcþ\bDEH\13\81@<\92Ì\aÂ\95\19à\8a¬àÙ¸Y)\88÷Kµ®ZZ\86>K!ÉP\8aDI¨±Å\92©\94°B­V(¬H<\81!D¤q\9c\98Á0ò\1fã\ 4º\9dÁI\12Ãi8Z(\13\18-
+(MÑ\18\88B*é\r\97Ç°X8\1eö\87\ 3\91t,\ e\8dîK@ÃÇ¢¡±°?\18\f\ 4¤»8\16\v\8eJV&\1f
+\v\99\146^\92±ä\ 4\ 2kS©,Õt®t_A\ 4'Öè\\ 1²]\91à\84êR\86 \8a\994A\16\10\91Ì\9386\93Ê'\12q"\9b\9aIæ0\9c(.ͤ\b\94Ã\88jnÆóVI$Pñ\8cJÅ2\1c\8ag%*\91\93ä\14®4ò¤iæhàä\9e¶l\9c*âc\8b=z$íý¥×øð¬­[G\86¡\rì\9d\9dý}§i¸Ý»\ f\8e÷èÆïLÎù¸Îô?¢ªC\93Ø>]aOºÈ<ª3\a\16môÙZ_.\9b\f\ 4Ý\16L\93ïtdË\96ÍÍÆæ¦bêºÒ\82Èà--C5ÍM\ 5\92·ÙÚî8\101\fU\92eQ\96¥õ\86\ 1ºÎ\ 3\r8Eð&\94ò¢P¯Ë<ÿ`Ä\8a×~¬R#\82¼î\81qñEÄ\18\7f14\18ô¦á@\8d\ 2ó
+)Ú\e\94\ 5ë\14\9cȧbQÈy ã9l*\1a\8e\ 60 J4\18\e\ f\aCÓ±H\18\v§ÂáT\12Â]$\ 5¡0\15/`\18\8e\v\ 2\96)`K5\11U\14\ 1¸@cÄ\8aÂ\12E\81%A\1d
+|\95 i\1ea\ 4b\11tm\94Íds¹$\96'`'O½Ð\ e\8a$H\84\938`V(Âk(\94¡Ê9\82\81rÆÞ) ªÁSèÎ]aMhp\82¡ËÚV»atÝMc`o\9f\f\8dÞï;üÞç;HûÔ¡´ßý[ÎølýýÁï\14²{´zÇuh©g2¬³Å7Ý6oì7\14ËR\fWºçXõ-[Ô\1cQ0Z\9ak4u[îØFÛÙjY-s»á¥ë½ÍMÛÚ³ >\99
+°¶\9bV§³½·en¨\9a®È\rÅ\10dEÝxð@X_«ß«ów\ 5\91_«²\1c¸YE\90ÏyNö¥\1fq\18-?j·g^\ 3\9eX{ã³\9e³õùýaoT6:\11\88Ä\13±Ñ8ùL,\ 6\aÆ\13Qx\8c\85\ 3É     PëT|,8\19\8e\ 6\94?\ 6Â\92\88Î\84©h>\e*l\16
+Ñ|W$\12ËlaS©\94+\15TÓØ\fN×ר¥<WC\99em³\86Ê\15\8d#     ¶Bæ(\10\8aì2Â0\82"23x\8eÈRL.\8b±å7ß`Ê`ayz&#0·     ^"p^Ì¥9\85\1aM\b\90òD£\9aSÌUr{\9fá\1förÖçw¸'viø1¥~vx[>\1aTåþ¡$:.´­mI\92ÓU¤\ 3\93Q\ f\1e6\90;¨*'6m\1d\b|ß-Y\ 3pN\8e¼µ«è\8e*÷Úz·kôwÕ\9eÙúÐ6zºÚnÊV[ë\18ë\96ÓÙq\8c]Çr,Ã6¶\8d¶µwÐ1w,£©\82h«ª´1\9a\e\ 5NJ\92EA\90êlU\94ª<ËÖEñÜK/\8d
+¥e°Ø([¨Ë\1c\93\11EèÌJK \97KB¹@â4\9d§²d\ 6'P1\93\88§Él2\99!\và\81Óä\12\99#rq\1c#\88÷q
+Að\16\8aé÷=*ñl\9aÒ\847(m\r~\97Ä0²\\12Ì:o8\rÉ2\fÃrtÅ2ïn\1fõ\18åä¸Ê\1e\1fsüÓ#F{:DÆÙþ\9dÞ±!\f\ 6-ù`WiÚ¶ªÙm©i)\ f,Snï(\eýmywçAÛ®ÛÝmëÀض\e-§µ³«µÚ²\17é\8c\ 4\ 17uøE¶³µÕ´Ú@\10Èã½-«­B\81\92 JAã7¤ºTçï    \92ÈI\12#V+\95ºg¡^D¼\17ËK\7f½{í\17/háM>\18\99ÚÑ\89¼\8b@\8a©X(\92ÊcQ\88k\89|,\16\8d\ 1\18±Xl&\ 6f5\95\98IysТ\81p\ 2\1e&}\89Pª@\ 4<ÂDãùh^X*¥b¶Fà\ 5\8d-h\9b¥ååREX"\80\16La©¦ðÔû\14\83(\92òÎ\90\12\ 1\8a\91¡ò\99\99\6     ÂMÆ\13Å\ 26\93E\14\886¦1\96\ 6\87»\1a\8f\91,\8a\10<\93Ä\11\97Ä\99U\1c\9e \18\91ͱº\ 4B!\13Õ\8e\8føå\93\13ÆøT\97\7f·Wí?Õ*'\9f\99U÷iWrNµºãº¶å\ e[ÚÎ\91*9\ 3^=Üç7N\1a$ìV\87:¡í­H½\16\85\9d¡(ô\14ÞjÃM´;5»-\98¶Ô²\14Í\ 6#Ö4mYk\9bVÛT´Í}0V\96\ 1ÅkDzö­\9d¶¥·[\9anê²ú¯÷<J(uAb\eU\8e\17\99J\99¯p\ 2ÏÖ\ 1
+ ÅÏGÔxíÂÿ(Rc\17=8ü\17=Á¸è\19(¿/\bª\1d\ e\85&\138ès8>å\89t8á\ak\eNä£\91$\bz*3å\e\9dÐ\9bI$/Å¢)PÛåðT\ 2LP¸P(Ô±Ì
+«¡J©´²Ù¨\14òÀ\b2S
++4\b\ 5Ff³y\1c|S\81Ì\15
+D¶\88y×,\11ù\1cI¼OÑï\13x\99ÎåY\99 Ø:\95B\8dU¼ª!\Ò\19¤µxJ5jUË\92õÃÝuûØÞ;èõ:Ý¡Õî\1f\eV÷¡*\9a\8fÚ\92óHeO\8eèê'GKÂ\13çMáDÈ9ÃÊ\aî\90©wͲ\ 6 \1a\1a¥8¢|°%\ f­ºÑ\975[\95¡JÙ\96ÒVô]]\87\80\ e\19²\9a\96¾m;\96\96elw÷l×Úuö¶¬}Ç°v¶v\r\vÔ\Õ\94\aâ=QÐ\15Iâ8od\96^¥xéîÈÞ\9e\ 3 ~þÒ\85ÿ´ü/?N¡õy`@¾¸\ 4\84\18\85¾Pè\85Z$¦§=ñNDcSyPc/sGÃ1 L01\91\8aÆ/AÀö|S6\b\84I¥üQo¨#\93\bËv\81\88mj\ 5t¿V\10j(\9fÏÔDº\98[\91\19È\b¬È\92\ 5¶& ²Ä¯ J\80\87\14½r;C\80Òch      üRÙ\9bÐAã)¢L¦1ê}l\86©\10ÿ\eÆ#<ËIT\8eZcH$°tµÁR|\83Fr\8b)©:\85 Ù±Ã½²öÔ\94NNèݧ2÷t\80\9c¿ô)ë÷GÅÖc\97\sMZq\e5¡g֥ݮX·:\9c\ 4Ç\8c\83a\aÝë7ùA\97Õ\1ceý`W³zòöÁ¶Ú×5g³é:\9a«jûú\86Ó\91;\9dÖîÎúN\eÚÞìZ\96Ó6»=ÇuÚ \18N×;¿·c©Æ\86¤7×U]\82\ 2ÅÝeY¡Ì²\\99ñΨr\8c\11´â%\8f\17ðó£j
\12\1a\14bÙj¹\88\18\ 4Î\89\85:SÌg    \ 4\91ËåIH\ e\ 4Ke½Tñ~\1a\9fÉ\10\99dÎ;±\8d\18\1ccT\94¢ê|\9aRë)RU oJí²t\aC:\8b\v½{9{P]9²(óP»ßµëZ\ fÒ±kn\9b\a®Z7\1d%g\ e$z÷\94'zý*:îÑêG\ 6²\86j}ØU4·½f·×w\1cS°ú\8a~ØÞ\1c\98R\7fØ\1c\f\15««:.\10B³lÍ´¼sÛ¦c\ 2' ñ-k\v|\94éè
\ 3\ 4\bP\14]á       Ð\89\12"ñ¥RÑ\9b¹\81P*I\16ñ\14\9e)¤Ó\ 4\83\12Ky\16\17KgK¹é\\19\16ßÀF\13\80\1e`HC´ã%ø\86@\11\86¡\18I[-\e]\9eíY\8c:ÔÄG½\95½\87jõÑc¹öø\13\89\7fzZ«\1eî­J®]\97\1cM6wÛ\86ºg«j³'®;mÉèK¼\ 3oì«Þ³\9d}~Û©\9b®\ 1\81ÏèYJ·#\99\80\90\86lvU³\a\1a¯Ú\80H×ê¸înÏiÛºÓÑôVk£©é\9aªH\10Å\15U5%Ad8\86â\19Và«l\95\ 1óR\81lË0+\1e\14\7f[~þÒ_ÃÞk?\9eP\1ae\8c\17N
+\18\11òB3$¸@\ 4\1a=\9c\b@q\ 2>\ 4BÑ@Ä\a\1e*\92\aâL`\91\89\17\99\88¥\12\81T8\9aÉd¢ã%hã<[j߯µk\1cÄh¬
+d\84e\86£\19Ö»æ\b¢\11³vîo8¼ðP/rÞk£½×þ
\8b«+^\d\ 1T\b\8dy\ 3\83\13\91\1f\8aD\83ÑTÄ\1f\r\81hcñÀ\ 4¸Ù d  \1f\ 4ÁèT*\13J,¥°H"\91´\1a4.\18\95\8aP].Uó\99R\85¡\88bI$Á®r,³\94©VYºÌ
+\14\84ìU´\94)AáAD.\93A(\97Æi*û\ 6+0¨È¯REÄ®þc\ e\95sy\9a\ 5\fõÁ\1d\16J.ÇVï2,\94
+\8c\8f&\1d@qòû½+\89\81 ÁQ¡\ 2k\9b\84m<6\95Á"\81D8\r\96*ï÷\ 6 b\89T(UÁðX¦Æ×
+\95åJ©\90_©        å<*ÕKD®,³t\11Ä\9a\aµfyº
+\12\ 6p\89¬"\1c§Ø÷s\88_ÅHYÆñ»
+\9bF-\ 1g\8d\1aUÚn n\93Ï1\90¸å.CÚ\16&\9cm\93Î\13I8³Êýá]ã¬Ï«\ f\87\94\19Þî¨Õ\86Ó¦¤¡E4ú2Ñé3üG\10î>Þâ\ f\ e$}`±\8eÃKG}ýøXÞ{hm\9c9µáPu\ f´®\ 3\1c3\1cwÃq´Þ\ 1 Ý4ݶ\ 50¹»VogÛ\ 1ó´»ïî´Í¶©×\1a\r\16A2Ö\15©Z_\83ê$U×x\81¡\ 1\15\8e\93
+AÛÇcñ`,\88aÓ±|8\96I¥òþ,¾\Íçc\9bj~©t¿´\ 4
+QYÍe\ 4\85GD\89[Cм,Y,\12Årá6\9e\83b\9fÇ\8a¥<\86\91ÅÜL\1eB6äB\1aË.Wé\f\ 1NûÈ\82ôÖ\1c½ò\e\92¢\10Í!T\92x@\94_&ù\16
+KÝÕȺX`6XBlJ¬lÊ\82ÖiÉ\9d\9e¤>¶¤îC\87Ù\7f¼ËXÇ
+é<T¨\ fOÛ«î\81Â÷,Yí\19\8aæì+\86㨦ã\8d\a\8aFGëþ¶­\9fºú
+m­^,p5\91"\97\10K!\9cDä2EÒeT\"
+eê6\96£rX\12Ãp°°8A\10E\9a¼½\ 4^\96\19\82\92i$#\82\12\19\8c\10\1aL\8e\11\18\ 2É|6§¨\1cR\15
+i
+S64\92m+¸Ð-c\96ÃT\87=æà\89ª}ÒWN>ÙP\9f\9e\99ÒqßÐ\87®¹î\80\v2ݾÔ\18Ú¬:lqÖ\89È\ f\FyÈs\ 3\97j\9f\9aõ#WpNTíØR\a{R·+túÒÞ\81\92Ù\95õ\9e¶±¿m»ûM·­÷:6$º\8e¹gÚ\96ãìµ\9dÝí]HáÞ\19;\19\9a\9b¯®Kk\90¶y\89áW\85U\81\81º$0UÎ\9b\8d¶vg\95¢\80\15\1e
+\7f÷Òß\83|¿6\1aü\18\81ñ7, B½6\9a\10â\87j\14\82\9d·\v\87¢S\81\92ß;©\17     @ü\ eG\80\1aÁx0\19\8b{cOÑX>\96O\ 5°\ 2¤¿\18\8ek\19"\8f
+\85LM]É.o\9akTv\89c©\\1a£WPq\19ì\ f\ 1m½DÒÞ\ 4\ 3\92^°\1c\81'1\92ÎaY\9a³Ë\88Îxó\9b<>P\ 5Â\9bÝ$TQ\95FU\11`
+Gg\97+\9b5j        :\aK,\v\ 2ç\9d\92àQ\11|\90W\91\88\92gª dà¹\ 2ʧò\ 5\94I\12\85\f\96\86òõÆ\9b\80\15\81\88"\88C\1e\87°GR¬wöN$i©ñ\ 1%5\18Òû§\ 5HWPÙTsrOE\8a+\13\86û\810h£­CEèõŦ«ÉÖ\81"9½-É<´éæQ¯¬\9d\99\84sÜ/ï\9döVÝÃ:{ÔûoÊ£\81Òuw\eîа\aVëä¨utöoî'\a\e\9f\f\ 6\87뽡¼ÛÛ°ú \17ÛZ×Ú\1ank\8em\r\fË6×-Gµ
+\ 2è$¤ë»Þd^\86-\ 1\10Ð\r\19D\8c´âïþþ?YÚ\v¿øñ\fÆë\7f\9d\9a\17½A$"áÑ?>ðGB\9e·õ\87¦ÃÞ\ 5Û\81p*\16NxW\8b¥¢`\9a\ 2±`&\9aÈ\17\15,\13Ë'°Íe\82Leò¥
+\87\96몼J\94D\11´\96F Ð¸7ü\97~#\83Þ\aË\8aXè 4*b9Deq\8cô®k)ÓY\f/ l¦X¦3äru)K\ 17\90\§rÌ]t\9b\91««ô\1a»z¯!{¦\ 4\1a\14fï_6lÉkª!
+\96Q·ödyØ\97¶ÏLñQ_°\1fë¨\7fb\81\97Õ¤ÁÁ\96xØS\e\83Á\96ÒëY­NWçu·Õì¹|ë¡#\ e\87\82}¸î\1c:ÍÃ\13åðã\9dÎÐ0\Kq\1di×ñHÐÝ\93´=µÝÓ:î\16ä>/{÷Lcßã\83Ú´¶\fµ©)JS\16U\81\13\ 5^d
+\1e¾óÎ;_zÏÀ1x\17\1c|ûKïþ\vïIxî\8b\ fúâ\vïS¿ôö¾þúí/¾úúË/¾úæ«·¿þæ«/¾ü\ 6\9bo¾ü\ 2Ö¯¾{±~óÍ×£»\7fÿúë?|÷Õ7ß}óõw\7føú\eo\81íW_Á+¿þî¿ÃúÍ\17ß|÷õ\17\7føîË/¿ûæí¯ÿý«¯¾û\ eÞä½ÿËo¾ûê«\7fÿî«?üûW\7fø\ 3|ÂWÞ[ÿ
+¨¼\ 2\8dþê\7f9ÿ3\8f6ç_ý\99÷\bØóKh¨ÿ
+?¿\82ûË¿¼|ù2\1c¹zþ²×ÈW/_~\v\9aòÊå¹ë×/_\86f»æ\810\vM\ f»\97¯^¹æmÞº\ 2/¸òÖUx\ 5à\ 1ûÞ;f=\80¼7ÿxä\9fàµW~ueö\9a÷ÔÕ\7fº:7û«+sׯ]^¸9{e~aîª×|ó\8b·
+\90\\87ï|}öê[×®^ûÕ[°\y\vXðòÿ \84·û\93s¯¼|ΣÃ˯¾âÁàÝ¿òê˯¾ì1\ 2 8ÿ_½"ö³W\7fö³W`{þUÀàü/\7fvùgÐdPË`\ 5(®þ\1aÚ\7fö²×¼\97=\14 i=(
+$\95J\8a\83¾]{ÿ~¿½÷÷}&\fÎ\86\82\8dÛ\16üÝ\9c·\ 5Â\15ºEa!\9a\ 1\ e\8a4h\v\15À\83\ 2ê\10\9dÀE
\14ÃIp\85\12\8dþpc3XÃØ\80F@oÀ\8bZO£[\18q\84IüÁÈ\8f\11ÈlÒ\13Ç H\92s\ f\13\öh\a\ 1\11,ôz\8cVFÊ`¶@ R`\82FOg \1c±V\8aÃ\88`£!Ò3\b\19\94\8dg)&Ã\ 2ZØh\eD\8e£08<\è«\10â³
+\13\1c\18\9aõÍ\ 6\13\8cG3X\ 2|B\85^QH\8cAîh\84<¬\88\11\8aÐ+\10\e "\15"T\94h4ªBò¢¨°¤\bí /lÐ\94àE¯Á\88D\8cALB!\ 6[ðØ\82\87è
+Íh\râ=ø¨<¡\15ð\95\19Í\ 2\7f±ÞD\93\90\e\16ô     °)x\80\ 1\91\1a^P\ 6xAÑ4Ä&\86\85±\87P
+y
+"\9bºlç\8e]»^ܹóÅ\9d/íxi\9b\1a]ÎÆq¶Òm/í|iç\8e\97^zñ{;¿÷=5èÕßÃÛ¶ooÛö=øÁßmÛòó-\96\ 2|cÛ÷ðµr:\1fÃ\82ÙlÎC²ô8àÄãè\rà\e[òT\85Ê\ f:\aA
+
+<,*\ 1\87\80\13à\ 4Åð&¸G ¼\83ÒÂp¸H£\êFB\9eÌ\ 4\16\fäú7\10C454Á\80\e\9a\88\ 5\9a\9b\9bõMÍ\86\r\v5\11\7f2c|\ 2h\ 1\10Çèf\ 4º\ 4ÿ\16DX\13\84&#\92\ 1üq\84\18\83\8c`QEÐ
+\80      à«\8a²ã`¼m\8e\f¸\ 5òW\ 6|\81ø\ 5À<H+dú`§ûl\95¼\10\15Ò³Á¾ô|\97z\9bÝhÌd-Tv\95R\97\9d\f¼;\97öGç'{&/'ßûâ³\15\e |ÙëñôÇrâÊÜèå\8f\92ñûe\80üL&«~5*Î\î\97oÆ&æ£C\17\aW¶Ù8»\8dÍðêSr<!Å\13çû¥É\91\9f-3¼ú¥Ä@\1cüDðù\ 3¾ ¯§Çëq»\îÒ|ó­¦Ý]>·×ãóù;ÛOü²õ\16\84'\fÐ_q'ð\8aÍ[\10°Á\14y¨&À,ª<Â\95\8a\90¬\16\91g\15ZB¥!ð\81:\ fA\ 4´\9d\82\13\86\r\1a\vîp\98\84~\18A}\13¾¥oÔÀ\98\19\9a\e\e\1a\1a\e\9b\80û665Á©&ô\10b5\18w$¯èPz\v­Ð+\84 \ 4\ eÚl\863à2T\93\ 1¥+m\ 5\9b \82
+k\18¾ö\13î#ø=\11+PSly@i·\90Ø\84w\14\16\80\ 5Ey*eøÁ\11\81y)\15±\8d\ 6M\80¶ÀÁÖ\1c\82þa£ñk ÐD\ 4GSCI\ 3\18¥±\11­\ 1\ e¤/ilÌé\10\ 2'ø@$\aÒ'¢$ð\80BIbD2EP\9a\88\14ÚØld)P\1e\94¾\19õ\12\8f\90\9de,ÈíAÚ\99h\9bÕL!T°
+PÈ\92,VäR\1c\1dYT\14V+\10K3cgM´\9d\ 5cÙðCF\94º \ 2©L\86ºûZKxJr   ²|Â\97\9a*ÝäàõF\87ºÀ\7fYv\ f/EÝ#\v¾\1eùý[wW\19#\10+þ^é®Ë©ØÔÜÔäÜ\8c\9f\97\1dYÐpju2)^[\18J§Å¹ôðüttêóW1\vâP¿1\97\90§Gä\99ñ±Ôø?\ 1T\80)ÄððP,æ\7f÷l°ËÓÛÙyª§Ý\8d\9aÒ|Ó-ÓnoW ÷´ç\84Ûã¾\8d¢Êd"^\81Á   3\82*ÌÈb
+\90\10(LË\12/P\10B\85A\8a\18£X1\88\868D  \8e1à5\891\r9fªG¬Þ F\b\rà\16\87·6 !0aÕ\80^\85Q­QÓÔDÐCoÌå\ f\r\ 6\85oáK Q\16\88H&\vf\9d0w\v.\ 1\bbÆ\\ 2ÅAh\ 2o
+\92\8eUm~\1c\91âñ<%\17\88yAb\f\8d¢*\14Ch\8ar\18\ e\ eR\T\R\8c\86\80\9f\92\86&DâæF\12ppT\9b\1a1\ f\82\97>
+HÀ\91\ 4,ÉÌâ3\9ba(,©A\1c\ 2\9e
+W\8bÅb-h=\eèêõâÔy_\8fçonQf\93ÉôªÉÜüª\19\8bÊ\14V2ò\80BmÎ9Åã_s\ e¬¥\12C\10ÏÐä2´
+}"ÕìbM\83\12\80rq\b/ôÜE^\84H\80\ 2°¸¸Dq
+\88N`\89\92­h\1d|\ fí£/9¬!A\rà>\972'u\r¸ìÁ\ 4F¢«\8d\16B`I\7f\ 1\85\7f2y\1f®x«\91Âd,\19\81\1dÂ\91Ý\ 6çì@¥xÚÈe\8c\16\8e1\1aX\9eØ\ 4\8c\ 6
+\1cÜ\83eoYOõ{\84© /\16ó\ 5\ 2?Ê·¬°û\84iÑ7ûïwî824&ZíG-|Öj[+­ZL\87/-öÍ_\95\12\17¿Xq\94ª\93\17\a¥\99©ø\zlq^J'E9\9d\98ÿýçÙUõtz*uaèBzd:Ù½|ßa³1\9c\15\84\ eËZÑ\124¥nñõ`2ÊçÇiFÇPJ C`ù\12Ø\93\ 5é\89%OA
+\15\1a\ 2i\93â\14è\12\b\18X·ÈÓlXD¥ÙàOÄ (Ø\8a\14\95\80à\9cK\83hÐJE%ÅÅ[·bú¼\84\88C,\87\17\13\v\15+\ e\83\88\12\ f\947a]\8a_\98õ¹\ 6\113eÁb\13\1fR\177am\1c\83\95\99$CP0@4·Z\1d ìlY«5\ 3\90\8d  r~ÕffyÎHÙÑ\1d\80Jñ \ 1\19ÖBYÁ5\18#ØB\7fd[X×&HZ\8f4\ãù\au>u\7f[Múú\99\93÷?£Ù\f\87\15k>\v!Êfµ\97í\1a\9b¿$Î\\15åëéñÿõ){lGìZZº\9e\1e½\94\8eO_\19N§¥ôÕ\89©\7f_á³jQ\1e\91ä iJ\9aLþí2`6\98\82%Idt \8b\85\9eñ\9f\ e\82¸ö{;;½Çn\99MÍMÍØ[@\84\9e0Ƽ\876mh
+\15QÛä\99
+Ø£îÐ7\96`v\16S\83H¢,¤g\870'Ò_
\1cÜ\82 6\85\98Á¢ªÀ¯È\82²p
+EV - ò¨rÙÚBRíÆ\9e\1cRø.,ÜZ\9c; ½<p+&\99\8cÂ\1cÖc@kjÒ Í">\91Ë\9c\93ÌG\ e\19(x¤\10Ä\r$C\ 3\ f\14At=\18\84\14VÍðU!,±
+n\ 5-Á .rã\vz\ 2> ³pÉ5\9bôÀIL¨\9d0­chÎÃ\b\ 5À­Â¤ìã*\85>årå\842\15å\91¸¤\80·ò£tã +`ñ\9bè6lZS\15\11c(\8dm䱨\10ßØ\8aG\1a¢Í\89S\10\82¥!\12\90¨\93F,)\19\94\f;\96³\91Å"}¢i\v*<8À$9\8bÅm\90y\14±\ 3\84%`®t6òüÚQ\88î\fV\1f¬Ü\9aÍH\83²`!fa\1f\ e 0\v¯-f\865\199\b[\f«§íì\11õpØ\15\9fî\ 2¸ho?¥Î§?]>ò9üskØ\13Esk\1c³\9aa\1cYFýãôhzq|ôæÜðÒÒúçë¥o,M,^K,|<þÙ\8f\8eË\8brúj"=\97úàS6Sz^\92ÇÄäTLúàîkà\ f¬Ò­HQ¤+\8d¦Õ-\ 1_w¸Ó\17öõ\ 4<\9do\1d1c\"qØ\ 4\11Ød2\83{äm Åã$\ 3ò\15R(r;\8f\80E\9e\ 2Ú9E¡RàCÉ\r\92'ÀøBrnÃ\ 6\98PTmA#å|\83PßbP\1aD\19\96`Æ\ÓØL\8az\80\19J\89;§,,Xc
+R3B\13\10"\85ù[0\ 3æM\9a\80QXrMQXå\ 6o\80¿\14{oÀ( ðh=À\84É\ 4ÀkBZkÆn/\8cà¥hLkÓ\19\9b\85ãY`M\10»ø,ö¨q \ e\18£ÍN\9b\98\b\ fö\81;W\9a¯Vg>yÕ\7f±ïì\Ü-N\ f\9c@¸À~\ 3\a\9dY\ 5#8
+Ll&4
+E\ 5XCéõÇè\94ëüÈõlnüäåú¢ð#¹Á×\14æÞÓ`6\974\17\92^\10\ 54°!¡\b\ 56D)ÀmL¦74a\85»\19\8bxx]\18I§µ\11[Ë-X=\ 5ØƦ:\b\9d°\a\8aD{\v)V`M\82\87ðÃ\80ºs¬³&f\956ÚxÆ\8c\8a\8fËfÁFØ\8bf·XxÆ\ 2o .4\1a\ 1ÁÕêçö©KíwÊ\92±·G/\9cúU,îõ\9c*-@DáÁ\9a\ e\9a^c\91\12\80ãe-s\1f^¸0\9b\96\16®&\16î«3ÇêR¿IÈ\1fþzù~FýSY\\ 2e\91\98HG?-ûDíO\bA1&Fï®°4\18ÂJrÇ
+Ii\95\b\fQ\v\9b\ 5U
+\93ÊËyÇF¿T\ e.\14}^¤Ú(ö\15\16\85\96b\r(>\92\84Âä`£\92¿jÐ(L\96´\9e\9bH\ f iÈ$\aØõd&\ fX} ¬\89\ 4\19»ÍhÆÜ\1e\87å\b\a\v&\ 1KÙÀFv\ e\90\99³\18áâ6\ 2D4\83ü3C\f\82ê6\ 2èCLÓS\1cµY\1d\ fìP\97en=wEhO^py¦â§Îü»ZmÃN\ 5\ 6'
+!\ 2ýÃÊpf\8aØ\80Ãz\9e\91HtuÁË\91x¸¬\80½Ë¼yq¤GNûÂS³g¢¿-5ñkìÑ{Vî\v\a³v\94^_·ÚìLæ\87;G\17æ\86\16.\8d%Ó©Ñ?¬Ð¥»¢\92Ü/Ü»Ëð+êáñØ\84,&¥ØÔïVØWwDĸ8\19þý\1dÄ\a
+çz`\82\18-\ 2Hg)8Þïó\ 4}]\1eÜGñ\9dcGÌ\84:a\9d\12\11\eû&±}ù+¤Ø¬LzQ©\14]\91ë)WÊÞ\84Ó\12^«R0¤HéýW\9au`Èóre?b\ el\15)$\8eQ¬´î\14\91\14HI®=\ 4;\f
+\9b~Y¥{\1c\139
+;      °E\90æ \1cñ\1c\18¬©Òv\87ÑjÏZ)»Ýjáí\fÀ\ 4\8dêÂÈei PTAé±<L\11
+H½ÎQüúQ\8b\95Gø¶Y,\19¢4à\18Ô\ 5Ç\14¨'ã¾\90\94zC]Æßy1%½\9bH\ f\84f§Cñ\7fP«³vÐ+$èñv@~¬\Ð¥}Sé\ 5yp~V\9c¹öëÏÖÖÔÉ\844ÿ·wVí¬Cýòtb@NÆ\87\13ÑóËjNÝ26*\88â\9d»<Ë
+0Ûw!ê\8aKÃ/©\7f\98¹µ+\1dö]¼Ü#Í'b©?¨K±Û\9f£q&Åj\96µ¯Ò¶u\9bú×\17ǯÎ\89ó\8bbêÆÔÊ\ e¾Ô?&Lÿþ\ eJ\9a\8cZ\9a\14\ 6&Äø\90\10½÷*[ú² Iâûw\18\9c\8dF\99\10¶1\ f\88.AY\8cù\aÚ;½Þ.¬\1dy~å\ 2¬0\990\8b@¦Æa\1fy3\\98Ä\10à\19\ f©\88s`×G\8eÖ\12§P\11øÀð\94\97cUE¹ÞæÂ\a\ 1
+\87~\8b\7fI=£(\87\13`\8bBü)"éZø)*&"\ f¼a#\aجÑ\93P\89)\ e=Mº\9f(#©ý`h\87Ë\94Âl8ö\97\ 1\19Á¦LÞ\8a \f¡\18¢\92\15\1eå-à#`\ 3\9c\83\e\1c¥¬vð\17ÞÁ\18\19 ·,¼\ 1V4Xx*¿`W¿kT\ e\92]eê×VnUM\a"3sý3\8bs±ôߨ_½Çñë\14ý\85Ã\92]³Ú×q\1e\9f\9c\ fM\Æ\95Tîeìê7ä\91Øçw
+\92\ 1Qåô7Þ·\90¬y\1e\11àE\eu¾B\riª%\88\9dcS9\10'Ì©\88ÌÁ LVIÝ\92\ 4b®ÂDêM8a\f¢¤Ié1\80ëÃ\ 4r\ ee\ f¢2FY\vé\8dÅ,\1eEÒy6Ð\ 5vÚlµc\ 3\ 1V±3Àh³\f\85S\7f\98µu«5\93\ 5;d-`\v
\90\ 5\19\80o\81Ê`ÁG
\ 51\12\90\16ãÁáY\ 5.ÎÏ\ 5ä/\13ÂâGÁ\vsêÒu\86Ͳ\b-\10¥pú\ 5¿Æ\95]L\8b\8bKRzijjîw˼zç\84ük\80
+ÖNÓê\1f\vq\ü= \ eýtÅ|k[T\8cD~{\97ÍI
+ÌzP\98·±àL»\82
+·Çu¼ÕÕÞö¶®Í}ì\aJg7\16ò1é\86ÈA\ 1\99}(o\13ünB\93(µ¼\8d\ 4\bzÄãyÊ\94°\9c\15>\bSE\ f\ 1 
+Ig\82â0E\e\14
+b\92\86°'4FÑÖ\É\ 2¡\eÑ\ 2ûd\e\e\e\94\9eLLS\1a7Z HÏ\13K\1a3Á"H¡h«\91Tì¬V\ 6«\10¬\11'\1cZÁ',ü\1aCÙ×y«#k·dîñ\96̺Ípt\9d5Ú26\92¨\ 5Ñm2°\98ñà\8c\ 6µº¢{J\fDäI_x&õFY\19ÿÉ\8eé!1}AH-\8c\9e\9b}?_\9d1Ò¨H\8e\ 27àlö¬mm­Ô\7fuNZüXº0\eOü¯\95×Ê^\1c\9cÿÃ];\8f³\aÔ»úãR0*\9e\13¢\9d\9f\941êÚèùÐ\9d»$\15K1$/\80\93\13\føm\fùûZÛÛ]µ:§»Í­m9vKoÁi$\88×\ 6e>
+|
+-A\90â!\ 5)6#\84\96\9c~<ç\14XiÍSºA\14XP¨\136\12ªH¸*ú*Z\15)\9d\84¹iàJ\1aª\98ÀÇV\80ï­%XõÆ~A\bV¹®s\9cý¨Çb\ 4x+Ñuf¥e\1f]\82QJE\14ű& F\16\13(
+=\ 5W;Π\ 3!fd@\1f\ 3s¢Y»\83\8eZ±Û\ 6ÁÅ@ÙI\v\94ÉhÅPÇæ«wEÛú¤°SL\84Ü\933qÇçÙÛwvÉÞp:\ eèí      Ïý\8dzÛQƶ\8a\9dÐìú*Ëß{\8d¿WV{m^X¼9\9a¾6,þç2s_\1dþûß\81ªÀ\ 6u^}N\10Î\ 5£á ø\7f¯¯0ê\9dÑ°\1fL\81³U­è\13 Û°ð\ 5\98`2l>àÒÕÿâ\17¿pÕ×Öëj\8fý\80ÌÀ5\91Ù\9f¤3\15Sú0Ü\ f\11C slÚ\9c³\v\9ab\13\91\1a\9b7«ré\10"8¶(é\10Å/64Ä\ 6p\17å
+àp'5\vU1Q\14ðJ©!\15\91
+\12i=\87
+4|Ó\er@þÐ\ 6}ÂLm¡Ò\a\92\13Ú9\9fÀü\93Fé9ÏU\94rª¢\10k|\eÒBY¤¥x+
\12ÒúѨ)VæK\1a\9a\9b\14EA[Pqb\85\885\1a±3\99åÈäS\v¢³\99Æum°\10\ 3þ\813_ NqÀ²l\94\19\ 2*EQ6;gå×­\96LÆÊ®:p­!\v\8dy'\87ÃBÛø\82}ï¿ÿæ\e\1f|ðæOßÿ§7ßü\8f?ܹ\9b=Je×­À¾\8c`VúÓÏñÍ\7fúõû\1füóûoþÛ§,\9ba\98\8c\9dæ³ á_ýíÿøç\ fþù?ÿé\1fÿÇ?¿ÿ»e\9b\1d\17»Á\8a\96\154õ«Ù7\7fúæ\9b?þÉ\8fßxý'·LH`\810a\8cÊMElh\ 4Æ\8eµãüco¼þúOÞ|ýõ\9fþä¹×ß¿÷ßô\1c\ f\93\1a\83G6B\86~\ 3³É\11\10"\ 5ª=\ 4k4D!\81o\92\8awa.ïQ¸Á\9f4\ 4\13¶¨rå
+ÍÆdÖbâBDo\83\9e(,&,\16\93\82\8dMÊ,nRÂ\ 3U\81íÊ\80v4\8b­\1c\1cØ\ 3\8bC(°qa\15«\r\15\ 5\83Z\1aK©Vr\92£\19\ e Ûaµ­gÍÌ=¸¯²&ö(o¦\1cv\vcÏà|\17\b"\føËÝ[·\96ïÞº½|÷Èòò]\\82\ e§ÄØì@Já\13pYÞZ¹}\eßX¾KV¡C\9fàm«\ eÀ!\86»¿|÷þgË÷ï//ß_þì3Þ\ 1®Â³\1c\8fZ\8eº\9b[|îÈí#·néq)\13\ 2\ e\eS\12É\84ÜF\\vè\b|âÈ\9d;Gn-ßþÁí»w!@Al2r
\ 3fdNX.âÈ\"\bD\9c\ 5Á\19<\17\v¤8C\98\80\89\94\ e`°$ÿ\8akÍÁÝn5\81\91\9a¸U«\91áÁO²Y#w\8f78ÖYP\1a\88\ 2ð§Ì¬Íh\85\7f\83Y§ÍàA\94\ 3l\91Á\95\83hn\8d¡×yjÕNe²\14s\8f·}±ÆfÀ-Öì̪\83_]\ 5ÞÌãJv\19\16»~Hû%öE\90\bç°`×
+!uo\12\9a°\8aW\98³\a1E\89²
+59[¨
+\eT¹V\7f$±dvE     ±\ 4ÎFjÀIÝd­(²0#\(dµI\ 2\13¬\15«§F\13\84(\14ÙV¬\eáòN4ö\8aÑØ-\ fnÀX \ 4Y2v\86\ 1  \80Ëþ\ 1$°&\bü&>Ã[YPÝÙ/lÔz\96%å=\ e\13"àX6ø\b¶4óV\10\a\14\87E;ð    \a\83k\9bfÀ¤«\19\1aç\1eaO9Ïe\1d4ºAÖ\86\8e\9a\8fC¦À!\98\91Y,¸\ 6\9dÁÔdhVÀ:·6\86\11\9d\ 2©,^d\80\ 6\16\rJkÀf\rAk=2E2\83\81"ýDf2Ù\8d¦ó\1e~\98\8cÿù\e9Ì{økn\92Gò \9b\94\fúC\ f\1eò\14´\a\9e\85R\84Ü\88(y(§ÚÉ\91
+\1e\1fÁ\93*Õ#\9b\1eÙ\84¿ùp'·G6åÃmÓ¦Í\9b
+
+rË·©á@­VÃ\1d\ fð\ 4\1c}íLiAA\99\1aW\95Sç«w¨óKËJá\1d\j\ e^ì(ÃOáBreùe;ÕxN½£¬\80¬T\a\1f+(Û\86ÿR\ 1®Z\87÷2xk\a<\95nü«ÛàsÛðWù\b\1c\95â\7f\88«Õ\95\92óøª\94<æþ(üóó\vò7ãÓf\ynófr¼\89|+8.È\7f¨ 
+\8fû£)¡K\94\83\93éÁèøL<\99NFÒ²(§'\12\8bÉ\91t">+\8f¦çã\89ä{qÉ\1fëí\rú:=5^g»ÇÓþË\ e·Îù¶\ eS}X\8eжè´Úú\1a·[ÛÑUÑ\11=XÞ\11=PÓí®¨¨m­Ø]á÷ë\§¼Õ\15\15Î\9aÚîî®3µÚ\9a}Unw\97÷¤¶eÃ\14\ f?\8c\ fß´\86b\8boå¶}ùöc\8f>öõ¥Ëq!\7f\Mþ©§àà»Ï|\97,]\8e¿OâFÑÏ>÷,î\aó\ 2Ù\ f\ 67\9bÜýü³{Ë÷îÁÍ\15Êw\97W\96ï{E«­®¨¬ok©®uº\m\9e>\8f»/\16v»CQ_{§àóö\9c\8f\87}g\ 4Áï\ föûzÜ}\82Ç\13\8c\86\94à\1d¿\10        Âà$Ã\91t:\9c¸>ß\1d»¶xZ¾\91>+]M\9f\b&ÓçB\89y)qírHþðr0qYî\1dJ\ fûS3!¿\98ê\15åÓgS±³\91é\88?\91j÷%\ 4¿ 
+ýRª/.\r\ 4Ó²\90¸\14\8eÌÊÂÜÂ@r^\98º>.^\94\14\94\93g\13\89\91øH(\14?\17õùz½\9e\13ímn\97ë\84ó\84ÓY\8fK\8a»0óZSÿýj­¶¥®Í\7fà¸ÿä¡3\91\9c  TV¶úë*ݧt\15Zwž\8aÖ3º\1a÷q\9d®²Vw⤻µ®¦ª¢ÕãqãV"\eÆø\8b\87\1fý/\86Èù\ 5ú\ 2\18ã[O<\86\87¸\8fÞ·p×°'\9füÚÖ#O?ñ\97Oåv½x\82\18á\99ï>ûü³ß}ö\85ç\9e\7f\ 1\9câ\85íä¶{÷ö½{ö\96ﯨÔVâM[Q      \7fþ÷u¾\80[\87½s=§Á\f¾°ç¸×/t»\ 3\11¿Ç\17\ f»»Âq\7fû\19¸û\ 6ûC½ñ¸\18\8eÌÌ\ f\ 4/,\9c\ e/,DN_[\1cô$æ¤wä\85\84/±x!8´°ðÎä\97óï~ts º´\18:\7fm)rnv6$Ì_\f\8b©D¯\90N\fÊ3áñË\92o,é\17\16R¸Q°8\1f\ eÎ\8bAy´wX\8e\84RRHNôI©¨xa,0<&\fã6Îñ±DL\8c\a}\81°ßëñö¸Ý.w»»\r\8dЦs¶é\.]M}m½V«­<~¼Êï®ôFu'£\1dåµÞãå\15]µÏ?WÞZÕ¢ëò××¹\ f¾¢=èì>ÕÑV]\ eÎÔ}ÊÝr¨R×åÎû\8b¯\99â\eN\81¿¹eü1D\91}.\9eP6\1ey"·©áÆ60pð4\89Uß}\9al¨÷\1cn\10M¶`}\9alaÿüîçÑ\18{÷ 5Ê÷¼R¹\7f\7fuÕÁ\83\a«]Î\83:W­Nçéí­uy}\1d.o°Ï×ÓÕÛåv÷\ 5û:¼þpGÏ{ç|=\81HÐå\11Ķvq<è\99O\87ýóéþÎ\88\94è\8b¥ä`8}q _\9e\93N'n^ê\9bûsúôµëá\91\9béw\a¦§½ç/\8c{\93©\84'!\8f½3¶0æ\93çc\ 3×æ\ 3òõXø£TÏÈ\ 5ÏÙô WJúÂRÀ#%B\82t®+%ù\ 2£b0\95
+       \93aqB\8cÈbH\8a\87/ÄáÍpØ\7fÂãñxOtÀÈ\83\11Ú]mNWM[[\8dÓ¥{\eâÓq]\8dV«ëhé8³¯6î.wÇkv\1fòéÊ÷{ýÕÕ.÷Áòòãµµ]=Ý­\15å\95\15uÞS:·nß+Õ¸\99Y\95Û©ý\ 6V|#H}µ\97\ 2¸Â·¿¶a\e\1ad\ 3+¾ó`o¤\1c\<\8b{]<óÌs/<Cì°ý\99çö>¿ýÙíå{\9f}~{Åöò=\95\95å»÷\11\8fÀ\r\9bÝn]M\9dÛ\8bûѾãöø\a»Ü]1ÁÝæ\8f\9cvv\ e\85]îÐx Å'õ¹{Î\8bnç9ñ\1dw`¸ß\13\9b\1aë\ fJÃ~ïÈÂp\8f\98N\8f\87çn&"\1f^\1f\88ÝX\1a\1c_ºØ727Ñ+ÏOö%æ\12=\93sâ©dBèK¤ãAy,\1aO\9cíK$úF\13gOH\13íá\84àî\8fûú&¤_
+bÐ?)\84DéìÙ      ÉwfJ\18\91Åþ\99\89P2\19\96&\ 5iâL¢_\10\1e\18~¯»½Ýín÷¸<®_¸ :ÕU;ëêÜ5Ngu]½Ö­«ín«ô\9fªðǵûug\8e¿âôVìÙÞRS~@\e8Y{ÜYYyà\80ÿT\9b»¶ò`Õ~]W\87·u_e}\8b³=t\8a\98âáo:Ã×l\81Û =ªx\ 2\ 26\81ìÜæ\92\ 4»É\9e\9fO~ç\89\aûL>õ,1Ç3ð°\9dìáö\ 2\1cìÝþü\9eòí/<»»¼ü\ 5@\89½»+j\ eî¯Ôµj+µº¶\9aCõ'<µ-`\15×ÉP\97Û\e
+øÛÎÄBn·ït§»;\1aóµw{½.\7f8Ðîô\9eëió\8f  mÁ¤èóMH1!>s94   \17yâO\17ß\9d½~1\18\9f»è\eº²0 -.\85S7gûfþ4|6}]
+Ë7Ƥë7\87¤\8brhR\16\85¤tz8\19    %\86úÄ\94è\e\9e\vôÏ\ruM%:cé¨\7f\1fN÷G&Âáy©\7fjÐ'\8a½ÑhH\12ýBPèõø»p§\89_\ 2H\9cðz\'ܺ_Ô××ÔÔ¹\9cõ.\80êZ]}kwÝ{gö»'Ý\15Ýç«ö»ý­\87\8e\16]ëþòÊCÕ\95º:²)`eEK]«?ÔZSY®=énëнR©u\9eñç}Ã%¾\11\9b\1e ÅW`ý\98b    ²ûËÆ®aO\93@õTnûte÷6â\1f0øh\8eg\9eß\ eÄi{ùËÛ÷VT@\84z¥òåòª:À\8a:gM¥¶Ö]]YÛþ\8bêz\9d×Uïô÷\9dpùþÁ\rø
+Ká\13ïÆúÛ]Ò Ç\19\17\ 5w(>ú\8eox:ä\93\13\ 3}\v×?\9c\94®Þ\10¥\8f¯\87äß\\11\12\10\87Ò7Ó\82¼(\afÒÒ¹ôG³±\8b7ä©\8fo\fNÿf&2\7f-\1e\9f\9e\16\86R\ 3âÜ°\90\1c\ f\ 6\13\89t¼/>\13\11\12£¾XÂ\17\93ÃaYê\9e\1aêOHçÄþ°ðnÀ\1f\f\86Ï
+\83ÂY\7f°·\1dH+PO§ëmçÛo\ 3Fh\ f\ 2i\82H\ 3ºÁ_[\e?Y\15=W¡\vuéZ»ÝÕÕÎZ\bÁ¸í¢ÓY\87;@9O¸ºO\1dz¥²ú\84×é\rwWî¯q\81Ð8äíÐêºýî¼ÿ\1a\9d¾\16\99\94\1dó
\bb\9fÇ\eî\ f¸ÛÏ\85\9d\1dáá.wl\ð\86e±çì\85%ñt|éC\8f\fñçê¿^\88L\¹è\eÿóUñê\1f¯\ e¦¿\9cû»/\7f3(-,Fã_.E\92\7fNG\97.\8f¤oN\aç\97¤ÈåÅøäGØ\1f>\18\9d\96ûÆ\97\ 4!5ã\9b¹&öÍÅ=à$ÑxPHDÃ\93RÿÀ\80\10\13Bg\82AA\88\fûÈ\8e\9e.ï   W-îØ¥Ó¹ê!>ÕÿUM}ÅÞíûµ\95§z*;¢mΰ_«\rûëtáðq·7Сm;¸\e0±£»½ãÀñ\8eªJgk«»ª¦ãä~o\ f w\85®Ûí\f\9cíÒVÖxBy_E¥\aî\913Æc¹\r©\14§P?ö=\ 5·\9f~`\85'ɦ\92\e,ê±Ü\8eÄO)l*'70@\ 1£zö\85í{p\9b°Ýå¯T\94﫨¬(?x\10 [ë¬:tHÛvh?øÅ!\88µºº\16OЫë\88t9½¡H·»3æû\95ç|_Ï\89@4äò       \91^\9f\90\9aè  Í&=ñk   ¯xíB¿ O\vÂÜü\84oî7rìê\1f¯\8c\ÿczè_.\82XKôÍΤÃ\17/\r'æå\98|yN\90SI)\99\8e\8d§\13±tz(uA:=?\1d\1eNÇzeY\18\99\19B|è\82¡\17\12¡h2,NEã\91!!\18\1e\14\ 6¢B,,ôú|ÁàÙÀ      \ f\1elñv=D§j­®f?Ð\92\83îª\8a@«ö½35\1d\93¡\83îèÉ
+\9d¿®¢üdO]GwOHÛ¢­¬w×ûbþÚ\96=\95îCm¡¨»ò\95ªî`GÏp¸¦²¾#äw\1f÷\9fÉû\86ÌV
+.\9d zµÝq¿»35é\ 3Ü\18\8eǽþ\94Ô\17LM¥º¢S\89ÀÀ\8dÅ`ê\86ì\e]L÷§\97æÄK\7fþxôÒ\9få¡\9b¿\11¥?},Þøߣ£\7f\9c\17\96®N\9d[\94ãÑùtLúð\82\14\9bº¸\10\91?\8cÇS\89\90tu(\98\92\82ÑTP
+ºBá¨'0\928}"(\a\Ss\91öáô`ûPBì\8b\NÇ\84Å\85qqþ\9aüw7oü\9d´tIH,Ì        \13é¹QùÊdjéc      @dôOÿ\12\9fû8\11\98½\9e\12Ò\97G\12³é\81±ÉóRB\8a$\93ñÉI98>-\82\8c\13ÇB\ 3ápß
+nð\aä¯O=­|æ;ßAÓüå\83Ò\ 5\86&%3\ 5\1e\81\8c¶bïó\10£*@d×î׶¶ÕTºO´\1fÒº\82u\aë»ÝZ­ÏW[w<ØérùCÝNÿ\98Ïu2"¾[ï\8b\9c\1d\1fës\9f\99\15\12\83Áè\87é³ÁøÜDçÌ\r¡ï£KéðÂü°\7fj^\1eºv]\16?þrbâ\8fWÂWoÀ\88ËrböZrúæÜÀÂMQZ¸\1cIÌÌ\88`\16Y\1e\16¦\13áIù|hZ
+\ fOG\83\ 3AA\f\83\98\e\18è\ fö\ 5AÒÁ½\ føS(\12\19è\1f\14úß\81h\12ðw\ 1`;Û\o»tû÷ïÙ½ÿùòWÊ+O\1eÚ]£«¬:ãÖVÖVV\1eÐÕ\1c8^\7fª£\15Ô_˾ÊãU'|~o\8fó@eM\87«µö\8c»²ÒåïÒUÔwéêÎÍL\9d¬«>!\86\8f÷Í&]ºH\1cL\ 1·¯%\ 1\15\83äop¨Ç6RP\ f0âÛ9\15ATÝS\e¦y\9a
+\8e\1c3\84Ï\96oßþ̳å{\9eÛ~°ºr\7f\ eýB§­Ñ\91t\1a¨\8a\1a\92¥u½]ëöC0î\8bºÛºÂb\87G\18ñ·\ 6âAoh8\1eòM\8e\8a½Ñtút$\9dð\r,L
+aù\82\10»\ 4B[^\9c\8c|øåÄÀ\8d\85Á+×å~ùâ\85\81¹\8fÓò\9f¿\94~ó§±á\9bé°¼$   éé\11q~^JÜøHJÌ&âé©ó       y "OJK ¥£QAÙ)^è\fúü½B¿/üß\81½\ 6|g\83B\7f0èëôµwöx\Î6LuTWì\ 6©ºgO\8dv·³[{ Ã_Ù\16:\ 3\84édM\8d»¾¦²bï>]\1d°^mÍþ\8a:­«;äs\1ez¥õx\95'ÚÕvpo\95»Í\1d;ï<Øâ\ eøOVû\92ÁVaz¸µêP{.@}\ 5\15\8fn°Ùü\9cÂSüâ\89o\7fûÿcëýÚÚ6·}Ѭv%\\9cO\90\90\86<\18¬+\1e[\89*K\11(2\92%}\17r+\10ï\81-a)±#4Ͷ\1cËK¦\96\1d×\96\ 3ÆPÀÜâ$N\9a6i\9b6«sÏìùEÖì3×9Ï\19¯mH:÷!\81\1a\9a´ ¡ñû3Æx\87.üÃõ±³\9b\14h/\92äÆô\8d  \8a\ 1}ÌÄÀm\8f©\ 2\7f\82\8b´óD2\895m<I±l
+hBbe0xì\8a\91\11yU\ 4Waè¢nÙÖ\ 3§ì\19\96k\eÈo×\1e\8bР   ú=§ò¢ïø/\ f+öËAàî\9f÷ÜÆá°\11ýø®\17ýü×\83Ã?~ª\f>\fÜÁ»ãò/¿¿\88Þÿóèù?ÞDÿëm¯ÿýàèèí°v\f\12öåi08?i¿\1d´O~=jÿücëäÇg­AÔì\ 3E7ëÅj\11®½[ð-ϵ\¼ã¯\1c\ 4n>ç\82².í¸\81µ\91Ã\8böU\85c¨$ðD2A©"\95Q\17Ä\92ÆBDh
\90yèeU´¢®Ò     
+H{ëѪH¥Ä­\87«\8f[&+*N «aiQtüÇ\ 6Ã\a\81a\9c¾öx³Ðò\rÖ¹2N\8a?Q÷'ÞÆ¡¸vaºGwýèáècñzóÂnOaþ¸>u\91.3³·FR
+7÷f¦Gñ â¸mAÆæã4\9d h\8ee9Ñ\90Xøæ\ 4V±TüÍ\8a쪫\89Fè¯\8avd«X4e\9f\1d\94\1e\16O:yïd¿â´ö[®ßî{þÉ»£àlpâG\7f\1d\16_ý´¿3üáÈ\7fóãYùÕ\9bnýÝ\1f\83\83¿¿¯¼ùxÖýáí ÿ·÷Ñ\8fÿûeøî}ïð?\87\9dWoÏN^\ eO÷_½zv\ 6\97ÿ<jõA$=ëí\85a§ê\ 5\95Ð/\ 5eÏÏåí<~ÌA~Ç÷,w»
+B÷¡ßk¸þI¯R\ 6\1dZi\f\86Ovßüµ\19þôÜo½\19Da¿ßî¼z×\ f\86?ì·~}\9d\7fñ·\81ûÃ÷ýæÏ¿\9e\9dýícïýïgýwýÖ\9b\9f\80¹_õ\86o\87\9dÁÛÁþË\1f;Ï~\1dT^\9cî÷\e­°ÙløÀ\fQ\ 3pÈ      \80\9fË®k;\9ee{¶]À{\17\vnu§ê\8dU,â\182E%\89y\82!(m\95e\1f\ 3`
\89$F` \10        \9aH°,±øx%µj°\8b« X5Ë\ 3{¤o)L\926T5¿ª²IZ]\94\r{\85¥Ø¼¡e\9f
\88\9a\86\13[d\ 5d­³â£Õ\8cæú&*=©hv;r\8dÝn\94\a­Ç{¿ôs§\7fíd÷\87ç»ýïÏ\83ÞË7Qõíoµú/¯Ýá\1f\83à·_êíw¯\ fz\1f~i\9fÿýmøáç(úñ¯/\a\7f¼ß\7f÷±\7fúûo'/>\9cõ?¾9y1\88\86gýçÏ»½(
++ïú\92\1a\9cZ\ 2û¹ìZëyGÅ¡\18[\8bQj\\ e¢}ù§¼\98HW¸Ü7¦.GÒ.ê!S\97±¸6q\16\93\86ÅôÌ\98+p\8b{>\8e?\99\9b\9d'1mß\13hêkö\1eÅ\ 2C\80¬åiVRAÝÚH\15³VV3óy\ 3å;\11²¢C×\búe#\18\1cºù³~Xì÷#\7fðö<8úa¸Ó\7fwj\r?\1cø\83×ÍpøÃàøÝï\83ïÿûcýÝ/\9d\1e~\10ÑoïÛ¯ÿùvï··Ñ
\81\13\ 1\88ä\f§dÌG\f\11g\f\1d4à"E\10²(yî\ 3\92\86löOVHÙ0tVÈ»¼Ý9y(¤\ 4Ë\16X§c\8a\95\93\86.
+ªï\19xZùs\87wu\9c\17\9fÁÔ\84\91¯]\ e}L]Ô\ 3§¦&þâ\92¶/ì7\84àæ¸s\84G\ 4gçF1\99\83`Pd\1c\82\91\98#X\8e$)\9e'iUdhÉÔyQ7T <Kà\f×\94ÍG\1e~²AѬ\9c\87\86wx\8a \ 5êÅóÁ ´ÿò]gÿ?ß\ 5g\1f\8eý_Þ5\1aoßõ\9bÏ\7f\1f\1c¾þ¯ï\86\7f|è}øïáþ\ fïú\83\7füÑýù×ÁàÍÇ\17\83ß^\1f\ e\87\9dþëá
+6;\ 1Ñ ©d\8a¢¿fH 8cT²\11\13T\82Í(\86o\8a\89\ 4«0âCPO±¤ÆÑv¨B*É\86$\94\ 3þk      \aå.z¢©\95\81+JÎî\96ÊóùÇ+¨³ÿH¹ò\7f\14\ 3'Yñ\99ó\9eº¨     \8enÿÏ\ 6£¦/º\18\9fO5Oájà\ 5kÇÀz\8c²!       !¡\92±\18E/Äb´@Æ(F
+)Íe\93\82ª.&\12àÿäv\90¡\92\8c½\95\8e.9¡'±¼á\99âÖ^\19\99µÿ°å\8b\83\15\7f\9e   ü,\14×ÆCýÓcë=zuõ¢Øq1\9b6=Á¯\e\93\86\12x»ÉL3äÆ-pyx>mvf>\11\8fÅH&\11\9f£SÄ\B
\rû\95þ\ f/ÂáÇ^ó¿ÿWõõÇão¿\7fý|øá\9f\83WÿýaïÃÇwÇ\7f|8~ý\ e3ô÷çÏ\81\1a\9e÷\ fÏ\8f\ e\aýÓÃ^ïøø°wÐ\ 2|ª×þ\12àú«çX\ 5˲6-ÃÂÏþÝØ\18¥\ 3\82&Js\f\103\95¤\19<44O¥\18*\95\12y\9aL°É$qOH\e¦¤Ð\8a\9bYH\92ª¢X\8f%\8aH*\1a§´ò\89\ 4-j÷H\15Q        \ e"\94HòH\96Ü\13\8bQ\10Ú\12Si÷\91ªïï#F³­-\91Í>1'n{\8cQWÿ\7fÊ\81Sc\84\1a¿_ÔÌo\8cå\14\ 6¦\e7.LÙfO
+àÉ6ó\19Ùi<\14ÝÀ\12½\93
\1a\81å\9d\9c\86~kp\9e?ýéØÞ\7f÷­58;Þ\8b^¼Ú={¿·÷ûûÆ\8b\9f\ 6íã\9f\a\87¿|89úøº÷ËO\83\97\ 5\10KÃ×ýãs@¤C\88H\1f\b¢\17î\1dw¢vÍ\ f\82\92_ªá\a\8eiå<×ÛÉ!ÉTuà  \váaXiQ¡ÙÅ\14\rf\80b\92I@¡»\898(\r°¨\94ô5EB\9e\88Â=\96\154p{"RÌ0à\88ù»«\12\83|\15ÈB\92\85ÕÀeã\94J\131R\95\12\93\12$£"V
\8b\82\17¹ü¢¸lehÉɯXû\1do¢e±xºö¯#P\97ùð\19O_½~ù¥éÉ\87\eS×Ç5ªQ,¦&Ó\9a#\831&ïÛ·g\17p^\90\89ØL\82"cq\12¬h
\ 5µ\bb\9d\95p9*-\90¬VâX§´º¸\1aº\ fä|É5ÀU\ 4ntêz\aoKÞ»7\15÷Í ð:¯Ïüÿ\1f\96?\f\9e\ 1\81\87\83çßû¯~=\8b~\1eî\9d¿\7f{òêÇþpØ\7f;|ùÃ`0J\89ãÁóãW\90\13½^¯Þk\86õ½°S\ 1\11ë\aÅ Xp]ü@Yü$ì\9cåZ¹MÀ¥\8dM<I\90N\v,\ 3ßT\8a\ 6K\a8J\81pJ%\13l\8a\ 2\16\97\15l&(°«÷XYU\15|b%%ÊYQX@\8fY\82WT\8eâ\9f\98)Ý3x2ƪLr«,/PÈV¾&Xϸç\9c62\82\8c\1eê\10ì,Ú-OZQsÖ\95O\8eâ\8bÉ\11¼//)âó8`
+\82\17oÜÓ\8f½Â«~\14\r\87õhø¢óËßû\1dPHßc~8\1ebH\1a¼\19\9ec7\87\8dÄ\11ü«Þa»±[óÃJ5,\87#;á»\85b¡T©\96v\8ayÏ/¹\85|       \9c\85\8d§w%` >\95by\12òa\1eð\89\ 6'A3  \96¡8\86] á>'\ 4I\94s\1aG|md)\82Í<\90UO[X`dU$µ@NelÈ\b\12i\14ç:à5\18Ce\16m\9bãÍÐù\9aLJ:\97Ò\1e«`²+ê"'\19¦@¯áó\15\97Z\16ÇáÚÕÉy£«\17~nR
\1c§&\85Úk\17í¢©qÃ{4±ycô{$i±ÃÃ\837ó   \ý\98\8fÇfãøÌ\ 5\91¢b\90\16\v\bÚ\\92¥\14k
+áEuö¢\ 62*ã\8e\98Ãq\11\10ÌD|\16\80\8a\98\99I2\ 4(s\96&9\81K\10´\b±\903"hq\99\15LpxyÃ\10\84\9c¥HÞ®µâ´\1dÑîùN8x\19TÏß´\82ק[ÞÉþNþl`5^G¥ÎÏýö»_zý÷oúÃïû¯_\1e\ eûÍþ°;\18ôÀY\ f_\1f\ e\8e\ f\8e{\9dý~o\7f¿\11\ 5\80IuÏõ\8b\ 6y\813Â/TªE¿\®ø­°\90ßÚ\82ü\14\15A\108\86#!\ 3\12 \9câ`®\934I\92\14\9bJÄSB\8aHÒ,'\89<\9b\10\r\86 ¿\86\ 2\1d<øºÊ¥Ëy\9e\ 3òå³-Öðl9±Ài)Æm\99ð\93*\12\9b\7f±d?â)\rY*I©¦*È\ eZ\14\fïʸ\14øo_þ¹kôy\1aL®÷E-ürÔ\1f¿\9c¾0ÙS£ÆÞä\88$.¥ÏÌLMO&fÁT
+\1f­\ 5#·H\11$+¨\9e-\921Rgh\1dR\80ºûÐdµÊcø˪ËË\87¯}&% \8d\15\1c[ ¬]\10R\94¨«\8cZQ©\8cë(,Ū\196\8dl\99Í\97\f^\10ÐÅù\8a«\7f\17ÓOW'#\9a7&¾î¢<xy`rjT\9a\9d\19\95\ 6g&415ªÎÞº1\19\88\8a\11À\17\ 4ƨ\ 5б   Hó\85;\14\9bd¹L\92\12d
+R\ 4«µÊf,\a0A0\fE\1a\97\ 3/\9aÚ\17§R¯]\86â\82.¦¯}¢ì©Ï»Ù\17s\1e£¡\83\v/\81\8f_|5óÕ,¼\ 2?\ 1ïxb\96\88ÏÄ\12\141\1f£RÔ\ 2\99\11\12\v SHZÉ°¬¸\85$JqÔ\14\93¶Åò\ f]\93Ó\9fØ¢\1djÂNÛÍ>9\19\9a­\1f\7fZ¶NNJÛ'½\8aßë·ûÃèäü°7è\ 1/\1fö:Qÿ4ê÷»ÇÏG\ 5§~\7f8
+\10\8b\82[,»¾ç\18Èz\84=¶$P\fGÓÜ\12\18\1e\81I1I\92¤áW\ 2¨\80\84`Ðpë$\19Q\ 6¯ÁJ<[rÉù8£ª«\95\12GS¼mjù\93ü=I·M\91×=\965|\83ZH±"O¡@\a1e©4É["Íz\95\15Õ\8dJ\8a\90\ 1²àqx2Ƨ¬¸úÙ@ÿEuãÓ\84æÅE\87wÜKºq1\8c6\1e=¸q9 6\99X\ey¼Û¸w4\87gpæ©\18¸
+òö\1cÅ\91@\13\ 4/\8a\f-ÂýÄ
+H`\96M\99äLU\82\9f
+x3k2¢W\96\16Ë®&;¡¥¹ý\92Ô\ eËÎITñ^\9c{ÞpØjí÷\9eµO:Ña´\a\8eax\88½ôÞa»w|pÚÛ??îõ\a}\1c\ fÐSð\87¢^÷$Úo7w+å\1d ëbÁ¯\96ðúêb¡\98/\ 3Paýd\81Ã\ 6·Æ+,Ë\vä\1d\86½Ã0\fI\83&J0T\8a¡\19\ 6\80»^\9c(j"Eb[$\18*\ f×[£\ 5\88¢È¬zºì\a\9e\92º»aI«m/E0\12Rîr9\93\13[\8d\87l
+OA\92÷\91ÁJ%Wa\ 5\vþ\12\9fÖE      ÈB\94'¡øâ²\14x1C>:ltã"\14£rÓµqÅéÆÈhÜ\98ô)F\7fæÓq\97ѬÇd\80\1c\ f\aÎÞ\ 4dº=3OB^\10¸m´È&ççY\89¥S\92Î0¬\90JÐHI¥2\bQlÖS(Å\16h=/-\9aYGYñ{\9aÔ® +ì>´ÏOò\957=«rÖÚm>?ìtÏ£¨\7f\18õ\ eº\98\17^\1e\1e\1eEý£ð´Ó;=\8a\ e\ f\8f\9f\9f÷\87\87`, \18½cøsÝF­\15U\83
+È[`\13óB\ 6\8c7+.ê\86\98\88S¢"9­,K\92\8a¾\82Âg«4#å·\ 4T©ðòãU\91"\16-\95q\ 6\15\96\95\10\12îÞQ\14\91͸\88çáç]I±\9a&d\1cGç³®¡
\95OݻϻE£ÆõeN\8c+\1a#¶¸~㢩:bóñ¼\aN\82©Ës\15£ý\12Ó±[3\93iÙ8\98»y\8a$\16@\12\12I\86\12<\97J\88ªH\90¢&S_¯dh\82}
+\98¿´¡KÌ\92\8atIõ<ð\13\81        Ä£\ 1H|\ 6P\9f\95\ 3/Ê{#\ f}sfzÂÚ\939åéÉÀÍu¬¬&Ý¢\99Ï\87È!
+üÄ¢L\ 3}Q)CaïÙð½\19®\9arÛª`V\1eÈÁó²Ñ:iÕüÓÞntÚ\82ËßìíUB
+ b!04\19çpH\18\96\11M!\11#5^µ\91\9c$h¤*îÙ\93e\8aÔ\1eë\eÝ3\95\16Öm$\b®'ËAd        K\8ch\bôzÅà×w[\\82áT\95Y2òª°Ýö¥Å\a\8f\90ÈðHY\11®\\18í\89©¸h\10]\9dº\18Þ¸1®3]\f\ 6NMÝÂE×Ñ\89°ñ¬ìøXä\f¸:\\8c½=\87\anfgqÉ\ 3×=â\90\19I
\90\13É9\10é1ZâA\9f\8b\1a5\97Òî%Àë1
+/ê¶\ 4jPËH(\90X\15\99\ f\85\94mgVÛ=O\87X9\92\908\19¢Ì¤À0±þ\99E§5IM%SºÆiA`qZÞ\16S\8c\90\91pcV¸X·rõÓ¢\9bQ¹ãÆèXêõI\eûú\f¼¼qãSuiúb\9c`<à1Î\89\99QNÌÎÆ
+P6CÓwX\\84"\19\8a%   \86¾\ 3@ų\8aN'b)\91_\ 4\ 1ÊP²*\e^\19)¸ew\ fõ\1a\ 2Ë\99\ 5Cq÷-ÖnW²\JÍ#!\1c¸\ 2·é\e¸í!rô\86§ór\16>\b¢\828VÖEÞ´låÒW\ý,\12ã6ÐdÉÍ89fÆÛU¦/&Ò.N\aÏL
+\1c3\13\96\18­E\eÍvà\89\e¼\9fk.\91
+ø!\85¥I  \89ɵG2µZ1y#¨)¦oWüÿQ¯çÂÈ{Ò\ ek­vØÝoµ{\8dh\7fïøø Úk\ 2q\1cô\8f\8fúÏûýýn·Û?íCl\8e\ f\ e\9a\90\e\87ͨÙ\r}\17\82\búÕu«ewÇÝ\86_VÑ-\15ÀK\98\8ee\82)\83k2Rr\8c(\bÒ\92Àà¶\ 4\10\ 4\96±\18T\19\ ex,Í&©\f@\15+ð4B      \12¸;#z\ e>Zè\9a"
+\fFÊy¶Ào¸\8aºÛ\83ÿXÊʯ      yO\15Kçðe^TäÔ\92\ e."_~ȳ÷ä\8cÊÜ\ 5¾\14\94-\85ÕM[ä¯|Z®ò好\9bì¥\9bºè\91^\ 6
+KP\92N$$1EP\82DR ¥(y\95¥DWa@ÅÊFa#¯¡°b\ 5=¿´ë»aP¯Ö[>ØæN§{tÜ\8dö\8e{§{à)N÷\ f¢ã£h\ fx¼Û?<888\8aZQ÷¸\19ÖÃ:.ÿÕ\8a~aÇß)îx ¡¬¼\9fswvÊ^~Ýzhغæ®\81VXT4\81ÕxNÐ8\81cYpw4\b¨\14f\ar\89Â\15(\92G:\15Oð"à\89Î\83ÈU¨Å\87\bnnµ¬       \96\94\12:\8a\14\8e\ 3Vf\18Ï\16å \83\18\16\19\9atG0\15Vò=1\ 5.[d(\10òlÚ4DIÑ×U9£¬\8f²âê¸$\8b߯áýtW/½õõÉÈÓÔ\8dë\9f\96\18ÌLNO\8c\8duãØÜÄ\85¿I^`xÂõØYðu³\14îÝ\11|r>NqDl\91g\12¸\ 1\83Ƕ\18\92\97ÒÉ\98 ÑÄ=\99»Ëª\19¸ý\14\813²rÆF\9aeh®c¸¡U\88|«à»A·\1cF¥`?\f£fçè¨~
+\9a½\83½\83Z³Úí6\82ÆÓV£î\a5w\14\ 4\1fW\9evvj>8ì<>ý \8bø\19iJZÖxIÃËæ\84ûw!) $\fEß!SI\86LÑ ¤ä\14-I\90\b"˪º¢\80\ 5âè\94(I)Á{È\80T29Jwd)\1f>\86\9f
+KzE_t\83\82Ê\90ðÓ°\8aûH\11¶}5E\89r\86'YCeÕ\1dOeÒ¢¸*Ð\8a®«i\94U1@]½<K1\19*¸v鯯ßÄ'P§FÛ        ¦ñ5¾\1d\eG\ 2\v¤q\86\\9f\94;fnߺ=\8a\ 5\91$ff     \ëÀ,1CÌÌÌ/\90ÉØ|\82\15\88\84¢§(\1a¬\12\91\12\19"\99\16Ù\ 4%JÉ8|\89\19
+¼,ËH²jJJ.§­zë¨`©\8e\9fó}Ûò½J»éúµR#zº×ëì\1f\85í.è§F\134ÕqØlÖ\82p¯Ú\b\9e¶ëQ\13buÔëwzõÝ*>ºâBJ\95s¥ÑK?l\84;\9em mÝ\91\90±,h\88\91\14î\ e\væ\ e\12\80\97\15\95\97Ø»4Ïò\14$Á]\92\8a\934\96³\12-¨÷i\8a\15E)\9b\97\93TB^Სŧ\18-\v²õTKaÓ\9d¢,C`ó-\9b\aäÒ8Ö,ˬ²[\ 2\v\8b4©àöDÅP¥|^cÉ\94 òi«d\v\9aSBW®~.bÇ£\80£A\9aÉj¡©OKé°wÃï·G·úd\1evBÛxÔf\84LI\1c\v
\81ÀG¾\92 eAÎ\82Å#©¹Ø×\1c³\90`\95\15\`^$ÁãQqðSx\1f
+îEnY\10\91Àë\9aj(
+^\9d¶ã\189\ fá§l\15üjP/úUßo\ 1\ 45:­F»Ñ\8aêQXïv\8f¢0\bþ\12Ô\9bÍz³^\ f[Qk¯\196\1aåRPu \1f \ 2Aq§\us;®ïúO\Ûò²+\9a©H¦È+¢\8cT)­¤\ 4\8cÀ*\12\8f«\81 _\19æ.E
+,³,
+è8]ÕM¼Qó³¹\82©ËÆÑÕ\8bÉØÑ\8c\r¾õÇØtk\16\8foÌÎá3¨·Æ\841}éìf\81\e\92³x\8b)Π  *>Ú#8s;IÌÍ\10Ô\12\11§D&\95ø\1a\14l\8cW¨$Ü^\14A\v<\11g\ 4\12r\ 6\88\ 3¨Q\ 6\aŲ\92,\b\9aªm\98zÎË\1a tv\ 3·\12\86Õ¨\ 4\1e-\b£ÖQ¯ÕlïVjA\145\1a\8dÞAã\9bb±Ú¨\1e4B<jV\8djAà\aŪãàU\10®\ 36"ïm»;\8eç\8dæö·m\v!´& ]QѲ¤
+é r(\9b\ 6D\14ð\e˨p\95D^\96\96\18¸ü)Ja\19\ 5î\13
+¾_v\11îbd¤R\f°\8aäWd\9a\95\15qÉé:l\ 6åu\9eq*\8aâG85\90*¤ÌÀ\14wz\81\ 4CM±\b±´S1X°óª@±\ fD\865l\r\bÑ\94\15YÙ@ \f +®]\14Æ/\e¦\93\1eꥫ¸èÒÍ|us¼²tn4\88\19ûj\1aÏ8\8d¦\941Qß\1a5%@Ï\92ñùøh¢\80JàåË\90\ 5<\16\98áq©_\8e'h\95\ 6×*2IÈú$\91\92\19ZºG²
+       ÁH\80\97\8eÓ\8c\8cO\8bPø¼È]P'\ 2Ma÷ÏÞ%á§_\84\97\8aÀH\9cªãÍPë\9a\89Ô¬ålù¥¼ï\ 3ßú\95\86ß>
+KÊ\86Æ\89®\v \98·À¼/\ehI\92\r1­[\eiYÕ¯\8c\8cÝ\88©¯\8fj\80\9fzt\93´¸>úýUl´C6v±À\14k¨[±Û\93yØÛ \9ab3x´f\96 @+\11\98+ðLcb\1eÂr\v¾\86×̲T2A3£V±À$H\85\83\1f5\ 1i\ 1Ô\9d\92\ 5
\14-+ 'E
+s\96¿£»y\¨St\13¥µ5\1d\ 1W(²\ 6ñ\17\15`\ 2\81\919°Ùð½ALhfùî=¤0$-\88kÈR9\82Ò\91\84\82¶Ä\bÈL³Èá\99õ\9c¥      LÖ\95\850B\1cØiK\10̼È\1a¾#2"\18\16Ða*ϸ\8dG\10!uEH       2$ÈZ6àË^\11ä\a
+¾      ®\»v9Äq}\ó\9eú4\1e~cÜ\9c\9bäÄôd\ fÝ(-f1\81ÏQ#î\80\ f$\85C\82'ÿHf    /òHQɸH'c ¨\b\88\18ÁP1
+ü%¤Rb\9adh\16/a\ 1\18à$VT
+|]\83ÌhÖÿg\10\14á\9a\97Ê~ÃÝÞqwp\8b¢ê\96ÊîhªÀØ        \rÃGH74ÕDâ*BËx\17  )ëkÒ\9a(ëÀ\19 kiU\ 6Êæ¨$ (
+°(YÎ\1a\18(Káh!\83ÖxñʵO£6\13<º1îÚ]\1fï\8f½<5ÿÕ§}¾\ 4.là\86õl\92\18+$âö\b\ 1o÷MPx\1c\16\9f\9c S\ 4\91àAE\ 1@%çoc\ 5\ 5\ 4\92àð\99\ 3\8a`q\1f\8fŶ\96ÃÝd`\vü\8aáï\v\1e'\e\8a\ 4\8c\r7!\2¸`V>\8f\15(\98\8bǾ[¬Tj{M,¡\1auðÕ¸\93ר5ºß\ 4;~\13\b\ 2Þv #\8a;a\15\8c\9d»ã\97½²[­z ¥\80r:¹­üö&*ç4\90\ 4iu}M\91Ô\fR\f\ eÀD\95\15 ²"­ÜgîSðÍ°©%\89\96Ò\ 2C0RZÍ\82GþZ0$     WÇ\18\16¹ÿ·Õ­È¬¬n\89I©l¦7ÂÈ¢îH\96+X½]Iö*\ 6\90¾¢
+ÜrN¥\95 Ð\19\ 1xák\8aU\ 5v}'§È6.Ç*\8a®p n\955õÊ\9fæÀGãN×'%ð©Ëúëh       ÝôÍ     E\80S\88\ 1\r×@\17\ 46u  `\83Ñèß,ÞU\10O.>\10â\84¤\80L\ 5q\8eÏl'!=\12ñ\18>cË$À.%î²L\82YÆ»5Sü}\9aa 'X\ 6oyÄÙÁr\8a\b\19\81²\16RM\r9ÛÈÙÉ\15ð-\9ds¼2@Mû yÐm\86a\ 3"qü-¼¨Ö\1aÕÿ    \94\rL\11\16vpõÕ\rv
\ eëúÛÛÛÕÀs<\17X<h9Î\8e\97u\8bxw/  Þ\8b®¢5u\rÀ
+`Q\91\85å5MYJ\8b\82ÂÜ#©E\\16\17Áh«"À\11(_\15É }LMP<;£V\1ek<\9eô]t:\ 6Ã\ 2û¦\19ÝwE÷YIf\96åm=uß´î¥Ë-\8dÁp\b\8c\7fưвé\95up°\92.\82Ó\13åeøDBW¦.çþ®\7f\9a<\1e¯T\1e¿úêÖej\\1ct\1c\9dq\8c\8dGôçH\88H\fl\10àSr\81\98\8fS`ïIJV¨9Ðã)@¬$\11¿=\e§â\89T\9c \18à\r\8a¾¿
+âî¾/®eóY\88 «óz\10d$Ã7\81û%EHI ª\96\v-SQ6Íõµ´\f9Èáç\8fÈÙõ´¬\¹ú\89 /®þÔÅ\80Ç\b\94¦§gg.\8a±±Qucvþöìl\12\85d|~\ e
+ð¨\ 3âÉ
+æêÑS½¾øòb\99ï\8dë
+üB\1c\88yDã ªâó#ü\9a\9dÅ38£/áµCq¼÷\10\ fd\93ã        
+\fOð    ÅÐÉ;\14~8\e\17è\14Çð©\91ÃHs\9c"+Ë<ð\ 5r´õu´¾¾±\81ÌM
\10Ⱥ\1aúÕ#¸ØA
+lÃMl\1dfg
+T,ö\13Ü\1dÜ:f\97\96Ø;
+w\1dÅ
+Ü5\83ó\80¡qÕ\83\ 3gÁã\873\81´\ 2\83!HËx\ 2
+\8a\ e~2½¾»«j­ý¢²\ 6
+\1aÉzÁÛpú\ 3ß\8cú¾%ËëYCæÕí\8dµò®gdý
+·ÖYi;«l\96\9a[u7\11¤&\92EYCÒFþ!\88h×½r±sÿÆ\97ÿ\ e¶zÔ[Åæîæ\88\16fF}ºQ¦Lã\9aø¨q4\8b'\aâ£Wຯ~\89\9bF£­\1e£?xëÖhL6\ e¸\14Çi\81\11*1\8f·7bª¾\83=\1d>cHâê\14\viA/á, \19\16þ .\ fDÔ]ø\17Ë
+¤{36\r\11\99\e\1d\90\98\88\17F#\1e·Æ»|§Çk"nÍ\8eV+_½
+Fb¼ÕãÖ\bÕp,@Õ&\12 \88@\12 \f<\1dN        |*=\ 5Fâ.\1e\v\ 6® hÀ$ ê¥%H\fiY\ 4\86¸\8fÇÂðoIR\ 4m=\9d^\83¬À µ\ 1j\16ð\ 3\97»«Õ:\bÙZ\11<Eõ\9búÓî·Ñ·ß}Û
+Þ¸¤ð \89d¶æöªàWÌb®Ù7\85²gïÑ\14{l\14ÄO\9d¢h\ fL:'Wö
+9VW3\95\8eg\16\14ɵì\16\9fËJÕ|F°Í2­è
+
+       \9e\87\9cä¨-®<ñ¯E×W?@:¼}õ\7f\ 5ýk^"3¼ù  hyæ§çF[3Á\89SH
+-àÊ\1f¨¦Å¥yðÝË\81xJ\ 4»G«1$ð`#y\19@êýZ2I\80\90\10\86,\80y2Cå9\86áä\8a¤É¢ÖØW\90±\ f\80!ÀG@JX\r\vw\8fNZ¶b
\16D¶°ÇoÓ9\91å*\ 5^d\14V``\1c\98\14°vq+K­\83\89\ 4\91$¶Ò\19~=õ>\92øÛú*µ[È\89²È\ 2ä«yºÓo\15·DÃä\ 5Ëf·m¿[¦Yý\18\8fC\1doÛ_/Ê\©q¨sTÍ*2\86ßå\15ç¢&@ðE*CU¶ÿV84¶©R½ÅÓ9Vä\80\fËå¢R«æaÊLà\95\9bÁ6é\ f/
+Ô&/\95¤\12èW\10¯xåGmÿà \ e\12ª\81ètR³\80°íCµ®J\86Y>´´R³^\14­\83\89¬R\17`\82²\1c_f8JØ\ 5\89_\16\12\90&%ìÇ\85¦\e\f
+C°e\86\92-ckëg£\f\99Y.\82`(\80ÏÖÌ=¾i¶Àê\17'þ:\89÷\1a\80\9f\83éýîßqyéßÞ¼\9a\fòäÅ\8bç\88\80^ÅH¼\98\9aF\17=ýýÒÚ\80)@A½x=?\87öúÙ\91Ã+xë<Äbnn>\ 4ù\ 1A\99\9d_ZZ^\f\85\17¢8ò8ö±Å\ 5PN¸¥\aÁX\fÅÑ[DPÌÆðiz\r0!M\ 2M`½\16À5\ 5æ\8e.0%\19Ä\93¨í£\82\96ah¸Üqð\8ba\9d\18õ\ 3£¡\9b5Ý,Õ\9bjÉ8ÜmÚz©®\8b<ÀÀ\1a\85¼ÂJ:»\9då+4_ ¥DFW\80!\18\bÆV\8eäI\92Ì0Y\9aN\13é4µµF3 ¥#\ 4½\9a¦Øuðe\15\89Ê×\ 4\9eJ4¡4TAõ\8eË¢~¤ä×X«\99WÎ/\8f¤ÎEGÍmÕT\89\99¬y5²yÁ8®\8a[%Me6m»Røù¬ÅRÛ»\90^ §Ù\ 2»»+Q\86m\88ú¯\86\85\89\7f\89PPPà±\91¨ß.¾|ñÓ\9bç¦\10h\e&\7fÀ3\8e¸Üñîû`\83RzÖP3\98\153¡w(p\9f?ááí<\98
+\88ÈÜ[\88ÅÜìÜ<`ÓR\18Â0¿\10Z\8aB\ e@V,\ 2e
+\10"\97ÍåR \12\9ee3T\81¤6Y\9e\97$ù`_>¨ïk*ÀR}ߨY\80N\a¿@(\1a\86\1f\8a¦]­éb±q"\97\1aFQ4÷$Å\10EU ¨\92\ 2\13\11\ 4­&îÊôöVA£Áh(@Ü\ 2WàsÔúÚ\16\b\9bµ\1c»F0ÀTI\96MäXb\95È\80¶J\10\ 2KW\8fÕ-ª¨\e<Õü¤\88gã~yk\vtêVË?a+\17w½Ý]Ýl²ÒiGÙî^»%¶åXb\81Vk\ 2o¸¶h|ö\15¾¬ª,Ì®<\9f[ÛV8V³\15v{Ïlòüö\7f\16·ÙÂÄ_ÿuÏ\ 4 Í\9bw/ÿú\16\1cÙääìÌs\93\8eÉÿ\v»?AD~\9c\9e\9e\9c\99}99ýfz
+{xL¾\98¶P3³ð\e\8b\9d\18\r\ 3\80þ\ e\ÅkL\rì?  \9faøÄp,ÌÁ\90G#K+\11\98ü        <\18½¼\82\f\81fo!\14\ 3Õ´\9aH&âéT"±\ eô@\92D\96Ê\12Ù<        èÄ°\82$\7f(I\15°\13Æ>¸;½\ 6D\rê©qÒv\7fû͵M³Ö2õ\9e¡|´÷$]©`ñ²ªËå¦\ 2ºU)p\8a$Pe\88\b9Eá%\ 14\13M\ 3èð\ 5\10\96<\85%&I\82Ï&ø|\96NÆÉl</¬ãZ\11Kå¤*½U\84q§r\95ævÑ\1d4y±sj±\ 5ÝÚÕÏG\1dE4\1c¯Å+í&ß¼¹lJmÏÕxN\86|\14\7fk\89bïs·*·ÏöXpøT6Å\9a
+%H{ÛŲÑ\14ÁÍðÛðÏó\85\ 2f\ 5\88S$é\17/þúæÝ4îZÏü0ùïo\10\91`¸_¼\9c\99~1\8dÉñòÅ\8f \§ß@Ȧ_üÛ÷ú\9cW3\18\8e\10.ÇÎâê Æb~\1eAiö5¼\b"j\16\17=à#\f¡
+\9f\17'ðdé3@\ 1W¼Cüù\v\88)
+ hf~j*²<ù24ób!òjfa\1e\98`\1er&ôLÕ!ø\1a\88b\1eÆ\1féâÍ\f\90\ 4ÀÔ<öÈ\ 57\11      \87\16!\f\98\aKÑh \9f \1e«ðG8\9a\ 2W\97ZK®¥\13)"\97J®¥\884\ 5ø\94%)2\9fg\80´w¤\ f\9a¤©;\86¡×4°yûu\ 5´ì/\166-0][ï\99ÍÎǪZ\97EloS?,+\rS\ 5ÉT\96E]\92\fYâI±\\10%\86ÛàDP\ 1<MW`:Ò\15\8ag3<\91e\bb\ehi-+dI\ 6\9cÜz\92¢ßKªÂ¬\83e\96hÎÔE\ 5\ 2
+Oã±h2\95N\83£H%    2\99J$ÓI"E$Àèa«Q\ 6Ð\94ç\15ôwÚþ¾º£I\12$ÇÁ\81~tÔîýâ^t\1d÷¸ëª\86{T3¬\8avt"(¦*\89:ª¤\9fù\92Q©I\½$J[,\9d­Ð¤\byFU\80Ã\8b\12ÃÒ¹B\96\11\18>Sɧ\ 4:QÈge&[`)²\+\vT¦TáòÇGrAi\99àÉNNªÆŨ§\e®ßÚãÛ\9eQ;ÿ½¯\1f\8e\86=CÐzÝ\8aqñÅÞu\1f\a{\92öñ£ÉóuSÂÜÐJݾU\ 4\9d-QD\16S\11Ô\1eÇ[¶^(\1d6Ù­ÿØâXvâù¸\ 4ø¹\17\9cy\837¨Í@:¼\9azñÃ$FäÅÔìô\8bwA(^ÌGf¦æ\819"ó\93\91å©\97\91ð\8b\1fCáÉ\173\91Èl0êhíf\91±çC\88P
+-½^\8c\87Þb-_bq.\91\9c\ f%!\19\12aH\9dåe\f
+%¹nS>é»:»«+»b\ 1¥,xs>¯\1d\1d\ 3@\81Xúi:تøW÷ øÀR\8d \12ó¹­\16\9bw\81I
+\ e\82B\15<È|$\1aÔt\ 4q\b\ 5\18\85\8700AæßÂ+s¨¬f\82`\84@È.,-ã2\a°w"pÞAlb\90\1fñD\8a\8c§3kY \89\f
+\92Ûn¶n\1f\1dݾ\18\8a5üøëðÆ«·G\ f­Ê®ÑmíÉÞ¨Sé\]\1díû\8f\83º¤){ê6\r\9eDêúvEÿä\9d\94\9b¶¾[.ðÛ"ËiM\856\80ËyÕ¶q9ðÕó­³à"fg\83£\8e?M\a\vL?½y\8bÎ\1a[\13\ 4ë­àÜææCÿ7Da.ô&Ø+\851\ eMþ8\17Ã[v1@óÁ\16êüÛ·¨bá«·¯\83À y\ 3U̾\v\85\97Á]àAh\\ 6O&£±D\fDn,±\9a\88ÇV\12     \84\fz\ 3\ 6\86$2Y\8a\ 4\80Ñæ>\80àá!#v\ 4Fà%¹¦Éº¾kÖUë¨~ú       òâÈ<ý¨ÔNê¢lØ*ÐuåȪ×dM¬Õõ\1a\84¡!é;|\8d\114\9e\9166\98¬(\88\e¼Æ
+\fH\82,\b4~\83\15\92\ 5\81Ì°\f\b%O
+5])\91b½"\9aÝú¶úñ¬.n\19\9dV¥=ôtûæÆ«I lUõóÐ2¯ÿ8?¬\9a=[/j¾»gÜ?\9e«Í\8b\8bCU³,]âÕnkÛüâìJÝ+W¬Ø\1dà~¶\Ó¹Z»%ò§½c±jwT°\9e<dÅO3Á.èô\8b\1f^ý;^\ eõêõÌ\9b·¸®\ 1\ 1ú)(\1e\bβÌÎàZ÷Ür(àdL\90y\98ósóS\93óIlÎ\83«N0êÀ\f³ßC\82P\85aø.o\83\1eWKË\vá\18®\aFã©D$\99
+\b\a+q´¤È{ª^W\e¶^ûh4»§\8dãÏnK·5óh¯b\1fj\92lÈêvÝ\90Ú\96ª     \9a.\9c4äz\8dß\17(EfJyq7\97§Y\9e\12
+=[îïª)`ðglz6!ß}và,B!Ü®
+LyMn\18º±[·4<\15&\b5Yn4d\8bÙ\ 1\93TIh\94j<+Ò|\85\17*lé\ 3¹Éghð{ÌÚ\86\90%Á=\96ò\14_׸ \9fì®Y+\9b\9fNôÎÀmØ\83ѧCÃö\aN÷êë©ýð?\ f\8eé\7f\1ewkG_|ãìþ\1f\83\86ûpÛ3\81·\1d]q/¼Æ\97oßz\aw\7f\8cÌ]Ën*\92h\18ª|:ðê\1f¯¯A}]^¶ Ö¿\1aµ
+oTøZ÷{VÌ\ 4U4\18\8a\80¹!\ 3ð Ý\8bÉÙ%<Í?»\ 4ÒgaæåôÛðÊ2@~\b7«Ãa\88F$<5¹\90\ 4\80
+\96\ 3qøC\81¿\86¯\ 2ºÆ\17\ 29\85¢v1\12\9e\8d-/ÇÂËáåx\14\98:\89Ù\10_M \9cJÆ¢I"\95M%2\192\ 5±
+`S\18kù¦§ÞER     ìó\19^\b\a\ 5É¡ååÐäT8\96\f\18{.\90PÏÀ\14\88Ûù\80±Qf\ 5\ 5j\98\85åX"\1a\ 4¡XM\ 2UD\13ð\ 5\88¨÷ké$8l2GeY\b\ 6ÈX\1e-E\16Dl\19Ш\Õù²®\88z\9d\17\1auéЬ+\rÓ\84,¨×j¦^k\1cÔ´ßNÔCÕÐj§¨\9c\8aaî·-\88\8bP·j5õ\83!Ê *w@OIÚ¦ÀoH\1a#\8b¼"ä$\81\12$ÈÂì\86Ì0`A þê¡ÈÖ\8e÷\94\96ë4Ì\8f\9e\7f¼g\¸¦óõÚ9ú|wÝ5ª½Ë_\f÷êâØ\ 5s]µúÃ~Ow¾ôÍÓû»\8e9úóÁ<ö\87^Gª´íjµ;h\e\8d«;ßrïî|\134ÓqU­\9dØ\9aå\ fº5ÿîÖiúW\1e\84çy¿\ 2¹\1aåRhæmè\19ëç_Ͼ\9dý·ÉYÈ\a¼×\ 4XaéÕäL$\9a\b²\ 1G~qqaai Äl(\91\ eh`>\98ýóÏü\1cø\8b\12\88òwþ\99³CáÅH"\1c\8bÅ!\16Y ê4v\99I¦ 9R©l:\99Êf!\16$MR\ 4\99ßH\91y\8aÎ\v\f\a.\v\84k­TÜm\96¶µf±(\e
+Ìø\92q¸§·\81\1d\8cºª\ 2-[Ö\89©\1dÕ±j°-·O5È\ f«.4,ÅÐ$M\17!\1cجN¬i\12\10¹±Y©    "»¡ÖpI\85¢I\16²Aá\99Ü6'\9b\83gÿxz¨ÚgnGÙµ\9d\8eå\r>\9bîÍï¾e\9fù®zà_v\8eo\1e\87vûóõ \vü1r!(W-÷éÉÙs.¼³=Åð»{æÅ\10´îÓ¸y2z¸h[xù\95¦\9dºûõË+×òÿþä\e]\b¬ÞèÚ\87jyâÙT\a\\ 1Ä\10\9c\8d\98Å\9dR\18\8awàÂ\10Z@\80\9e|³¼\1a\v-"m£¡[\ 4è\99Å\92\84X\fB\82FzþûJ9Rø¿<÷ü3¡\a\80¶¸\18\8e<W\9fÅÓñl\ 6üv*\ 6Ï\90)\12     àïL*õ=\14$Ø®\8d\r\86\81h0\8a*îí\16ÅJEV@8Õ\1a\82z¤*æ±±»WWT¡!U\8d\ 60º¤î\v\86X±ôFMþE\93,ðä\93Sm\1f¾am\82É8©í@~è5\ 3Ü\1eÏkÒN\8d\95\e\9c$3\ 4Kñj~Cà¨\1d\8d\97\8a\94
+jv!\8c»DÈ\11sACõp\90\ 6aÜÅx~\ 1Ó\ 5\e\97b\10\89D"\ 6\14\9d\8eÆRIÌ\8dx8\9eÂ\88d\83\ 24\8a*0ø\91\a\87ÍËb©^bÔ
+Å©%¥¡ï\82x\12å#\18ß\13E\a»­¨\8a,i\15à\91ºT²\ 4Á
+$\14\96\ 4BDRéT\9c H"\v#²ÁÓ\f\ 3ìɳ\92Ê
+\12+Ö¹í\92Z,ê\9aXÓËb­\ 1n\rh\ 3\8c^U­«;\aân\81ÿÀ«à\18ĦÆÖdEâ\f×°Nµ\1dcÇp5é
+¿
+\9aÀWê%±lÖj\9a¢7\ e\8f\14Ý(\8b\1fð\98<\ f\1c`
+\8ei\85#K\vó/CI"\11Ìw\1cíw¸\9c\ 1\99óc(\16Åcñßù\1a2!\14¤\ 4è,\fÍsÅÇìB\90\ 1º\85#\v«Éh\f\98!\99\88\ 1\81¯&@צ\885\88\ 2Db\83$3\e\90\10\94P**\Q\95x^åóÅj¹¸­×\14\15Æ¿®\16Árk*öS6dI¬°BI
+\10F4üvz>A\10ËK\8bÁì\9fCV\86\1f\ 2\\8b&\83\99¿\10\94w`\80æ\82\rí \e\9eK>\ 2t\9a\ fc\8cÂ\11ì±\12\92@\13ñl\12²"\1e_YM$\bÜÑÆ\95'0Û,-\br³,VY®Vå\15½(ª\8d¼¨È»,§ÊØ\ 1GÑe\91\16x\8e\15µm©\8e\85f|î\83²£\95P¡B<¤\9döÉ\8ev°³oh¿ìkG\80T\8c| Ö\ f\808\ 4cGÚßQk\9b|MÚ4\90Jh|/¹´-Bþ\19,äXAj\9d\9e\1dV\9bÝ®\ 5\86âÔp¯Ç\8eå\f/zfcðÅ;\e\f}@©GÿÐtû\17\87ê§\91ã\fî\87\96\7fÿç½\v\9aéÜi\9a®{x8zðÕþý-À×\15Ð\89\ 1ÎÂ4N\a®áÞݺݻ?\7fïv??~±¬îI˨TÛ\8a8\11T\93áÇä\8fs\91\15°\ 2ï`\1e\a®,\ 2BuéÝìËç«vfCÓð\ 3Df!²´ô\1c©`#b\ 1
+ØW\92\85²*VJ\9a\bæº(\ 3Çî\ 2-(ØDY(R0ôünEâ·Å<¿\95\97¸m­\b>P¦xE\14e¾^Ú
+'°4«Uh¶Ìeļ \8a\82 ª¼t\ 2á©5êզݵõ\9fñ\9eI÷Ú7Ûý\9b«nû·\8b\91\væ¬ß9\7fú\87×rnÁÇYî\9d\87ÞãÜ»úcäöoþ\ 1þÃDG×öÎ[½\87ÛAûëÿü9ê~þ}䶻\8eëv-\7fàüâ\ f\86N{øp}¦û_ÝCÝ°Í        \9cÿ\ 1ÁNNÍ­<_xõ\ eï\81[^
+cqßÒóª8\8c6\84"\ 5o\10Ô\17Ì>oW É\ 6\93±\10ì`\84q\r\17ÔÓÂ\12
+\90\1e\94ȳ\1c\18AJúÀi\9b\9c\9cÏkBAæ%,î\90ÀÂé\1a¯Ë\9aÌò¿àaÊR!ËK\9b\9a\fìB×\14H\14Q\16©"Çr\1f \1f
+Y¡\86º\8cãµ\ 6¸I¥vÒ¨ìÙGu³ë6õ®×wLóÌs\rãËWϹ~zì97O\97\ ep\81\1e<\fÚ\ 3pt½ñ\1f·\9eÛí{\81½è¶\1fïÇNïþéÆ÷¯¯\aö\89ë\9e\9e\18î`äúÿ\r(ç?=ù\867òLmïÐhéê\89\10Ü \ 3¿¦&\97\98!\8b0§q}  £²\ 4Ä»\14¼ôlÒÀ),GÂK\91\85\99 @\16Àgrr!\18ê@rý\9f\12\83`\816جX\b¬7\96ô\87cKË\v\90\eXz\13IÄÒ««) \8d\18\98»l6Ad\89`\ 5\90\16DN\15\18E\84\88TK¬\bã¦\e"¯Ö@#\89\8cXQ\ 4ºÈ\92\ 5\8e\95\19QaÁKð\eyE\10>Ð<CI¸_-ì\90¤ÄSµúÎ\ eÅÕJ\9a
+VÆ     J\10ò\12\9b\979\183\1e\88\81\95uS\14\812\14Ua·T\16\8b5Y^.æsï±Ç#¯ð\ 5\8eÊ
\ eO\95d\92\ 3\97Ç\92ºÂìr9\9e\17\82.\7f
+Nþw\8b\81K@!5\87û\10\81\16\9a{î@
\1c\85\f\85G/h6Ï°Y\9e$*"«°\f¿M\96\ fx\11ä-\88ªú\a\90À%\9eS9F\94t\ 55\95PàÁK\18\15\96§\8b{b\81\97x\12\17Ø]\91¦*
+¨6©R\81\10W\94bÑØã\7f\9cæ\9eÒ:k\9b\96éõ,\13\88ºÝ\7f¸ó\¿?\1e\9eµû£\1e@<Dæþiìy7÷ã¾ã\rû\9dîx\f©ñÇã¥{ýíiè\r\17\1dÇ»p\eí¯ÀÔà\ fmwô4î:\83ËnsÏhÿvV·>÷Ûíë\89ÈûÕø\ 2
+\bJ4\86çæ\97ñ8\ 5îÝ\ 1C`af2\9dNG\9eÅl2EBTÒ\ 4\95{\9fßJ\13,E\14\8cXÊe\88ÒÖVYdÒ¹mn\1dR\82Èæ©L¦PÀ^\98\19*\95&)j\93ÉSI\9aÎ
+\ 2Åä³,\9bWT^®1y\8e*Ui\11\90ª¸Ý06÷Uð!\15\80ü*P²T\ 4QVaò¼T`Ä\ 2Åã\11\17FP\80Êó¢*Ñ\ 5I)\16Ô:h\86ª]UÀT\1cî\89§½ãcgж¼ñðâ\f@Ý·[\ e\8bÇKϽÿãÑwî\1fqª÷ïûíñӵ߿ÿc\fùñØ÷À\7f\80ûsÆ\97\9d³\9bÛ\8bÎùãã°íÝÝ8\967òÛ\86f}´ÔÓ/£®1xºqNo&¢Ñ\95%\10\98K\91©\97à¨Ãx\13\1c\16²ÎL¾       ¿\99K$"Ë3S\89ôì«$1=\13
+e      `ßY"µ\8c±\b\ 3ÆÄbÓ/ÃéT\90%\98\11sX\9c\86Yñ¼Ü\ 1ø6\ fd\1d\ e´Ór\14\8bÏâ\8b\10\12Ü·K¥âÁBy\ 2ôS*M\11I:·Î²ëi\9aËghn\9d­| ³¹B\8e\12Y\9aZÏs4/Ð$\91     :\e°\19\92Ê\90\ 5ø\ 6\9eñ¥\ 5\86\97ò\9bB\ e¤,¶ë\122
+LîD,\12\9f\9a\ e'\93\18\88`ñü9!\16\9e\17Ò±>!POÀÓK\91d$\96\ 6\96\8e\84ÁÕ\ 1?Åß\83\8cÅb\ 3l3´\96ˤñv_JÈ\82¼Ì¦òL.\91ßÊ`\87þ\fÅ®\134\95£ðx\1c²ÆZ6·¶\ 6\ 6$O\92\\8a\90ñÀ\10ü\b]aI\8dÞ\ 4¾>Ðx\15×      5½"(\9cÈ1;\9aXÛUPb  ,E\83^\16\19\8eÀó3\ 5\9a\11©\1c(*\9aÞÚTñ°
+¿\9c\8e\11ÄJday\11,uüÍ\14\91O¼[Y\89D#sáÄÌtjáå\9bÙ©\10ø\82\99¿dÉH4\ eÓ\99H'V\92\91T6\8a¡\b¢\10\90HôYna\9a,\ 5|\ 1L\91
+\véXÖ%\88\ 5¸øæa¥Òô\8e÷v\9b\1d×lîÚg¦ÞñÏÔ³Qß=snïà±ã÷A\89\ 2\1f\f\9fnúã§?\1eÇýáÍ\18^\eÜöÝ\87?\9fú£§?à¥Û\e¯Óq:\9dN\13\94ÓÙ§\vÿã±\7f5ìuGO¿{®ë\7fîZV»×µ\9dAÿälb        /n\8d\80·\9e\ 21\9bD\12\88\81R\8dÆf"¡\1f§Ó\99W³s¯¦ßÎFÈD\88J.f\19&5ûr\9dLÇÀ&'À,Ç\92Ó\7f  \93d\1c\87;\1cEQ\ 5ú6\1a\8e\87\17\16ðµ0JX¬ñ\80Pà¹Ç8¶¶\ 1\9a\8e¤RA©\r@>^\18B0\14±õ\9fäßð\90\\8e\akQaÖ    ª°\ e\90\94%\80ÊI>_à7¶\ 1 \ 4\86¦\12T>ÃÊ4Ã\10\82@×v!/@iQ\9cD\15$\9a\96*\10\f^\13%øTDx\ e\94$q[S\18ö\ 3[ØÚ.R\14\ 4\82\ 5/Oodsy\86\12¤Ü:68¢ømµÂï\99\95RiÏT*\8as¦WK\8dã\8efv\9cºéô»f{0î÷`Ü|çÈ\19\9f\83z\ 237üv\ 3Ü<¾\1f\ 3\ fÜÁýýpüøíÑ\aE5\ 4\a~î8­\16\84ãìv\fa\e\8eÛ\1fÝa¿Ûõ\a}·c´=0\1aîe¿;z¼vÏ&
+w\ 4aèC\18\86·c\88ÈåØ9ë\a\1e\1c9Áî9î±;¸ì]ÞÝ\r»þ\97Ǿi÷=Û\9e\88­\ 2Yàñ\9f©\97« \90â+Ø1+\11_I¼O¤Éh4\92J¬F±´5\92
\90H éd\82da¢²ëk9\91gK\1c\93Í
+ký2ÙT<µ\96&âiÈ\13¬{\8aÄV!\9f\92Ñ8
+W\bäs\1ch\16ûEP\e
+/\88dv\93å\14\81\13Á\ 5\16@\14Uë%\96\ 2£(Ê\8a"\16
+l\9e\ 6;'²Û\ 2\9dc\ 5t%y\8ae\19pÚy¼²\ 4=\fpwµ"Um\13Dl§Ý©\1e\9eµZJµcW,Çs»öð\1e\18Ûí\ fÜ6HYwtw3êß?=]\ fo +Àbß\ f½ñ·Gø\1608|\ 3é¡\ fda9gÍ_;@\1a\9d~¿×é_]^t/ÆCÇõü3·Ýn;\8euì÷]ð\15É\95ÔJ<\1a\99~\19\8b\9czù#üÆ\9bE¦àajzzz
+;ÕMc\8fÆé¿üåÕôOÓÓ¯§_þå¯ð­\97Óð09\9d\ 6í\12\b¤$Ìýl\1c
+/\80\88eñª\1eAf\19\ 6\9c
+öï\13\98\\9e\ab\81ô(\805̳ÿ/Ö÷TZ\9dÃênãøPQìãCµí:\80M\97£nËë\ füVk0èô®¯ûþøÛÓp0¼¿¿\ 3~\ 6\92ö.Á\83?~ûÇл¾¿\87( ï\ 3\15Ûù¯c\18là     \ f«\ e\86\1dÀ&ÇvÚN×Ö[¾ßî\9d\7fö;\83ñe\7f"\11M¯à¬]\99~\95\bͽ\f\ 2\10\\ 3ö\97© \10Øì
+H\9c\18\1f\168?[Rxtn,-)\82(\89Ê\7f\88Û MeCæ%\ 5\12@\ 4\13·],ló\12+b\9b~\12\1d\ 6®Õ\ 2G\81\1eá¬Xn\99»ÅªÑÚ+·ìòÙq;jÇõzmç\ 2°ª3\18ºîàúâÌ»¿»ô/ïïnA&Ý^\ fÆ×\ f\9c\1e
+×é¨5\8a\ 5ÕE\91\902[øf\ 4-æ(:\95Í\90lY\ 6ô¢À)\94¤\ 2\ 4³V\12ä\ f\96\82w$aF
+ÝáÍ\85ãøÞñD2\92
+ü7Á¬\11\12\93\ 6ú\17\94ü\ 6\90:6\86\831¥H\81c·å]\11B²¸ó¡Hà»ù`¯[,Ðä\ 6Ï\924M3 \16X@;\10\[`Ø·\98r¹²[UkU¥sît\8cÎY×þYívë\87ç>(Ô\9b\9bón\1fȺÝù|÷\15ÔÓÈ\1fÜ\7fû}Ô¿ùóa|\ eÙÐo{\97÷\9e3
\1ds\ 5âãdÔNWìºc\ e:¦õh6\9f\ 3¤&L\88\11\97ó&È\83ÿI¨\11\84Ó\98\8cÑ=ï"\rÎ`XÞw\ 1KtäÃK¨Þ      \ 3Õ_Éæ²\92Zàñd\1cî\fÇÚF*P\ 2I\85\1c\1fÅÐK9)\97Saâ\8c¢#dC\98\82SßsMÛ3Ít\17\9dBv0LÂ\17Ƥ`§ks\ 6Oÿ\13Ì\97UMRMG\8f\f£lk¡\87ÀÙÐK¦ªb\16\a\9e\8d\bV@L\9b\9e0£ªéTªnÉ\8fx\ 68@#v<\ 1Õ
\81¸¼¶K\18ù\8aÏ\95<\87í£H\ 3\8bºÏµ$øp*¢ -ÛZ\98ý\90Ä¥¨ä\95Ê\81ﯻn\9cD\9b\95 Vq«\eø\ e¥RR­Äe_à³\9c\8a³õwÞ\14¶³µµ½WK¶\8f\8eÞ×w\8e{­æÞQ£}xØû\95í\99ýî/Ý       cqý\9fáIs
+Ia¨\8e®Yª¢ùHO0\92¡\97ª\8eaðö9Ä\8cÿúl,\ f\ 3¿l\ 4a\1c\ 4\8eÇ\9e§dÝK¶*Ðc\9b\9bU°C)\f\93\92\aõ\æ¹i[áú÷{l\8fn\1cïî5\9aï\ fw~ì´\9a\9d³\9fÁ\15ðÚ§\ 3Ðëq\9bØO\89Ú\85§k\ fÇ\98ýÃé\ 4h\84Ü`\85\16¼=\ 3J±0\vEE\8c"q#\ 5Úé'°pHÀ\1a´¡¶úÍF§7hwh>Î.W²j\8e[\7f$\15Ó\1còSCD¤Üóô\bdMNûÅ\84¬iy\99'úaâÛ¬\`ú\9b@u\8f;\17áÛ\94t5N2U\16^í´­F\96ðÅÀ§º\1e\18BV\8b\8e*ñú^\v\a\9eR\10%!ù^\8cy\8f¼\89#S_\8f\ e¾\ 3ª¸\86éVL\16½\rØ@\91\16«\80ü²ºªy
+$«(YºkiA\8c§\b\8fB\15E*\ 2Ð\11À©Ê³ý\ 1XQ\ 5Éá\95¸XÇz-¨%¬²0Å¢Hü]%Þ\89\9d\88m7<PÖÕâ$(\95\93¸¶YûùèûZóàýAm·ÛÜ?jt\8e\e§\83~ç°Ýûµ{\ 2\1c
+ÎxEàW\84&B\16P\96*\f\88 ù³Æóª\15z¾´Æ$\812È,9        \ 3Ä«\b\1cM\18ªÄñ2\8bÁº\ 6\97«\ 5\18~\83¥@\ fßÔ3\1d'vðÕÃÐßä\15Y^,\82·UÇõ]¥ §\a¡`Þc&à;h\9aÂó±E\81×4\81mm   \9aN8\96-\90\ fð\9fÈ\1dXs|SaZÂ\85\8d´È?°}\81\e\9azP\v\93
+8\ 2\93[\96´P±ÂØV$Ý)\8ahM¬\95 *7«,\94GkÐU¼=$\10\9aL\eçèÌ[5/å\fK\8bCSÖt\84A\ 3úi.\9e6\v\8e\a\ 3<q1*4\fÝÂ\ fí\ 5JÈ%Y\1e\v¿\16Cby\95\9d\8d­JÕ\83ŨÖ
+[\96Þæ\1aúfX\85c\80\9d\805P\94×\91,û±]\14%[3âJ
+ÒêìwÿØKÂíÐ+ÅÐÉk`\92\9d­õ­­ÚV}\7fw\8fý\80\a\87ï\9b\8dzý ÙÞoþ«YÛ=\ 3Û\1eC>õ:g\9d~§ÕÂdÆô¾èöÇ\1cí)K²\18s
\82\ 4g^úD\80ÂüÂ\90+\ e\ f~u!h<\ f\8b\11\94ÈC\94¨d%nâbË¥.$M}­³¬¡©@\9eÀ×Ãðµî[¼Ý\15\ 6Áð6Ùñ
+\83\8c\f\11~IÉ\83º\8b
+\99½\1c Qaú±VÄ\98j%'P\v\9aV**¯]¤\9b0àE¡%\8a\16¬!·\ 1äT#/\99®À£P\bf Âg°\95\a3ÀÒá2ôô~\1eÇa¡\f(U\ e\9cà»jò]ôf\13\83\90(xY}9ÞÜ>j\1cÔ÷\ e\9aÍý£ãÖááÏ­æþûöIc¯3à\9aC\93\85îÞåY«G¹\94ê $ø\7fÅ÷ÆéJÞ\fzvz\8f\94\98ÌFçü\8fÕÀ\94Ú\99.iÎÜÞ\8cYIÇC×ÃÞIÿ·\1ec\ 4r¿\81\ eXùr_\ 4\1c\83V
+<\1dC\ 3\96\f\99\10\ 5ëfÃV1\ e\ 2\90Ä©\ 4mÂsibg\8dùÁz¬j¨
+\ f®á-ÞÂàl\14\14±@7LÒuø4\ 4²l9aÅ7ýPË\v×5\f/\96%\1d\82\16ZI\91ýPq1B6d§,\ 5\81íG\9e\80\95Äl\87Y\16\96\8b1/Êx\83\1c\90-H\80W¯^Áó\98ZN¶\90\83yCÓ`ôtZyCÇü\81à\10ìbÀ\ fÀ^çRÄUoL èØ\98M8<M\14²\18ÎÂ\8d«[åÝݽr­~Ôl~¿wÔj6\ f\1a\8dF«}vzôÓÙ)Þé\9eõÛÍ\93þÙéÙhÔ;í_\8d¹z=\86\1c\1aÓYÌ\ 1\bÃpr?%@Ý\90\1ehòè­Ù\ 5\ 2\95{ss5\9e\9d«\8bó³sD\a\1ì]^\8e®\a\1f\10¿\8b_?L¯ú\b\ 5¯Ü\ 2
+áwTÍ¢PÀ\85\82u\ f8k\95×G\ 4VÀ½\ fü½\ 2\17úÕÆ\14\8bßTªoð/p
+Ñ@À\18BU5\fI\ 5Y\eps\9a®\17UÊ'M7\1cM\v\8dð\ 5b]6=\eÒßa\ 3\14Ì\1cd)D\97D.ò\93XHJ\18Ú°Ú¶öMÈ\ 6(W¡d\95¤¢\90\v\9a£ð\94ìÂó\ft3~Ö\82\,\88b6O\10\85Ï\10ùBQFn\98º\9c\86Áæâ/\9e ÔÀW\ f\ 3¶§\ 5\81ÉFÛ\92»^Û\8cÝôÔù­êVT«ï×÷k{?\1e|\7fp|Ô<n\9f6\ eÿÙë÷N\9aÍÓ\93\16H¢Û8í\8fú¿\f \860\8b§7Ô«ãÑÕ\ 4Ön2\9bÎ\86ãÙdrÁ8¤j\8aÏ\91-îoSò
+\15Srا\1f\83@\ 2SV\ 3d\94eC\9a\86¶éÅ\81\ 4\ba%¶+¡g\bÕæ \87B/é
+;\81L©PÐ$ÙÑØ×ÃÝ\9a¬\1c\83ãò\ 5êæÀÑ$)\rÊkü2d\19ÃB:ë\9a\ 1ZâñÚ6\ fH\ 5ǹìyf·,8\ f?ûöN%ÙI¶kGõ\ 3\fý\ 1H»õ¾\ 5\r\ 5Ên
+q\e±\1c2¾A\14®în¯îîï§x\19\ 1nt1\1e\õ.Gççi¸&77ã\15üØ\9a -`ì\85\81iHß&تM\8a l²\81\e\1e\85lÌ< OÀ\10EÀý
+¦V\89\859]|+\80!E\ 3¿º\r°\ 3o\96²\9a&òÈ\88u¸9Ìp \95m\85\9b\91my6(Õ\83½NBYq=Ùæj\81íÂÂØ%Öd\1dØ\1aÛ´¾\r=ÄT°>\9f\96\83\95\Qå50yMÊI2B\ e\\92XÆG\1c ¥\ 5ï\rÓ\8b\ 5¥\b\r\ eq®¥æ4½«\16ÎÒÐ\8bk\-'[»ø\93Ä\7fÅw*¹ñ6\80ª\96líìî5~¨\1d\1e½k4\8e\9bà\89³Vó§\7fA¿¶»ýþÙÉI·\7fÖê\9c\ f\ 6§\97ãÛA\97+\15\98Å·\93\ 1&?Fq
+B\9eÍ\1ff£4<ãÔͱ"8\ 1mL'£é\84/C\88n\80\Ó;\108Èb4¾þpyýáj:ºþ\92.Óéõ\8a¡\81ñÔ¬\ 2Ò\96ÙÄD\845á¤\ 2\90ª\ 2ç%xv\1c,\84ç®\81$¼Jü\8f\8dÊw\\9a\ e\93u\7f]7Ò\85jݦxQ)1E^st\10\8e¤\83ÃA÷v\ 5A\ryU¶cGp\11\92\13[F\f\99\ 40TEH^¶³\ 5áY­z<\8a\1cSÝ/!qbGÍÈ
+\97"\ 1b`nöp©
+|\1ecÁk'iýl§\ 2\905y¦\8b»îã'vܤ¶\83àìÖ77jµ\ 6\8cvý§V«urpØîÀD¼?m_ô\9bÍ\1e\97BaìÎ.¯..0£\87\97×\97DÿQº\96}?½\9aÜ\81,&ó;v=ÝqÎ\13\98Æ\18sÄh\82\8ff7w7,ÛÒý\r/\80Q\93ñÝtüñö?\1fofÓ»Éå\ 4\1f\8dûãÙÕ
+p(Çæ\18VaÕ\ 2û     0§\rÅv\ 3\13êÕ o
+(g\957U=[]µð\91ɳÌ1wò2ÒNw¹¼"!îº\91ÖãUx\ e\833Bfg´ÅcæU¡è\86\v`\8dmËñK¡å\b7ð0ÁLèÚúv\Ù¨ïoíìíó\8c©Öq³uvÒ8>=ku\eíÓ~³Ýî7[Ç,QôG\1f.ɱ×\17½Áxty\89A\9eÌ\1e\96\9dÒ`Ïað¦÷ÓÙì~þ\80 Ì\11\9bi*¥¦7\8cÏíÍÝ=ÞNîîng\ f\8bùäãì÷ëÿ%Äèöæ\12/û¸â\98lJ+p\ 1Oæd.Ú@
\ 5\94\1eã§`Öó\84\ 1\97ìð]T\85)\8eÂhã[®íøðk@uý[ö2AÎc&ç\85\95_\ráÏ\8c¢n)0]º¶n)J%v\8aFhD;U3¯DNÑ\89#\ 5\92LÎ03ÔÀ,`*Û*<\86b\96\1cC.ðÎFÖ\97\10@±º*)\99g\19ùÕ«\fÏÊÎ@fä$WpAP\95\14\f6KXE\95+\8fE\16\1dÅ\17J7lÝ(²\95\1dkÍv\10
+}'\10\ûF¢Àfì$    bQ®V7\93íÝÝ\9dÝæÉië\9f­N§{Ðø¥{ÜnõÚín÷¼ÿïAoÔï·;\1d&Ãä7ÆcüÛx:¿\9fÝM'wð\18\0\9a/\10\9a       `j:{\98¥©AfO3\ 51\99ÞÞßÏî\97\ f÷ü{7[.nîn\89eP
+¬±Â\11Ú\8a\1c\88çB\83\ 2r\10\13z\eÙv1\93}Z8\95³Û\84L5xû\8b\9cyñÕ3:        Õ\94$K("ÃJ\17\\84µ-µ\88Ø
+Dæõg\86ã#\97\91Ý \b\9b«1\ 1Ï\ 5\82\ 2¬\80\e¾«UjÉn­¼\15Ç%?ÔË[~\14A\87èß®[\82[\16\ 3@·£\18®
+yÞM©RÛÝ®¿}wpøS\83\8d\18í\ 6þ6»\83N\9bkÕýÁ\ 5\97\86®¯.'\1f>ü6a\91\8f\8eá\9aV\9bP¿\98\8d8\8a\bÊrÁX<.æËÇÅ4\r\ fÑ  Æ\ e<\80a^0\17æ\8b\87\a¤ÂÃÃ#É{\86\14ºý\bÌÂÓóå|þÇÃb¹²\8aüW¥oT\15êßâÕ®6dë\eÇ\ e\98Ù\10\81A\14Ä \89ÊÆÆÆN\98T6wÓë/£JÍwj\8e¿a\18%öFÚN¹*\90\8fT\b\8e\1d-\88 N1hº\85\84\89*pß\95P²Ãª\r¾ð\fð
+H$\16\8aá;\ 5E·e\b\1cØq\87À&ÌBF\95
+PK\85Ìó\97/\8aÒ×/3¹l&\97ϼx\91U¤üª`.\e*\840ïÀà¾\e.µ zzQÓ¸]\93΢Èú¿Á\8cWl--r±ì/¸\ 6\1eTÂÐ÷×KëÛµZmûà§z\vr©yPo¶N»ýöYç´\7f  ó0º\18ö` n>\8eF\8cÄ\84\15<8;\80\14æþ-\89\80#NnfF,\1f\1f\17\8bÇ\19Â0Çßñìþ\ e\f1½ÇØ?"\ 4\9f\1eø\a\ 2êáÓÃ\1dÆ~>»ûãw¼\99-\96\8båòéáããã
+\92?'å4EXª\ 1\rË\83\8f£7N°\ 6²X\83\8eâYùQåMRIÖÃ0©\85\9bam/ÜJØz\9f\94\9d\12üÛVIÿ[â\87[A©Ä2\87c\841\88$V4\1d\19¡0$¦ç\99¦\1f{ Pöò{<pÈ,0÷dLqÍ\86á µ\94Õ\ 2Âg\ 56¦|>ÿu\86\97#}\8dé\9d\13j>óêåjæÙ\8b\17ì\ 4\12Ú*²\ 2Ä!Éа\98ûù\9cÎÅ.Cà\ 3.x#\15`orR\ 6Â
+\8f"Ù-RyÑ\10¾\8fPx\95t\87Y¼»]Û­\1fÖ\e\8dÔf·\1a­\93\7fu¹øÜ\1fâ\ fòbtÙë\ e.¹V7\1e~üð\11\b\84\HUêä\8a\8d\1d`\fÌùùã#ì\ 54Ô=?\ 2\14\81\91\81\84ùìþñé\11ï.\17\ f\8b»ûû\aÄbùðôô¸ÄË\11@|îâw`ÖÇ\a(¨Õ\9c,Awä³\92\ e6d\87,\97\85\\ 4\ 4\16Û][\8b¢
+\17\9b\ç[õÜ\88\13&\88À\13?Ôwk{õúáþa\9d­g\9dsDââ¢\9f\ 6¢Ûí\ f\ 6ÿ¾\1cÜ°\7û0ù8¿\9b}\ 4º\832à¥ÇW÷
+4º\báZмܤ­\9a0\ 1`]\84\83\87\88\14¹§2½-]B\142¹¯^dxj-\83ò"[ÈP]er\92\14´/ùy\92¦Óq\18\1a\b\ 4\90\8duB \94¬I,\e³\18å\94KVe}+Bª'[;;o·\ fëï\9aÍÃFëçn§É\92õùÿÖßF\97ôl4\9apq\1a\91¸üxûû\aNcâÊìvzON\98"\r\18\vfÄâ\ 1c\ fR\86»\18\83?RÁ\84(< \b\8bǧÏ\9f\1e\90\11w)¥,>áõxj>\aVñ5O\8f\vd\85°1k\14Bµ0MM\87\8c\ 5çÂÐU\90\a \8d¨Z\8d\92\1d\88&H¨ \19&ûNò6ÜÛ\ eª{A\\v\9dò¶í×b/Ù`\87ªUZwÌ\8dPp\11Ô\ 5lék%d\ 6@ËMªé>\r\9býK\86îÚé uB\8f+tÙ0m¶(丬g¥&Y\12\99\17_KÒ³W\12ÜÄ*\9cö×\99Õg¼m\12n\e>ïEúáË,ܶª\9by¶ÑÉRÚtÍC\10L\ 34\ 3\82É\91ïF\91\95\14\10\13\b\eéÍ\rÈåõrm»¶Íf\9bÃwï~8Ük´\8e\eÍî)÷\ 5q}a4\1dÿ\87õoFá\86of£ë\8fw\18ûÙã\13ç;¼öx¾¸\e\83®1æK26Õ\13\92!\15Edc<4\7füü¸\<!\12\8fä\87å§'\92Åãã'\fÿÓ\9fÀ©§Ï\9fÿ|Zü\17/[,VØïgØi9Ö.²÷\9bÝ\14%7\88ßÄoÞD\15HØrRÛØ\8böJõ(ü!¬E~mˬUÍ\8d\8a\19mFëûßù¼\19w#4Â\8d\80\b\83),U«Ü\9a\15#3"Ç\81\95²Ó\83\1fª\1e<\88G¢6\14Ó\v\1dŬ\84\94Þ\99\1aú\82MLiË    \95P湤\14@\f«\99¯\9f\9f\91ªÏ\90\fÜd\ e¸bKc^ËåYÝÏ\17\ 4÷H È(ݤ?É®B\7fñøZ\15¾\86î£È\1e\10\ fãu?\bÊ!ÂPßÛÙùþ-y¢¾·\8f¼ètûÝοS\8e\1e^Là±/G·£Ëë\8fSÖí¦\1fïæ\ f);\83£oa\1dƤp \14\bù\ 1
diff --git a/src/org/xwt/builtin/splash.xwt b/src/org/xwt/builtin/splash.xwt
new file mode 100644 (file)
index 0000000..aba4a34
--- /dev/null
@@ -0,0 +1,42 @@
+<xwt>
+
+    <template thisbox="window" orient="vertical">
+
+        width = $inner.width;
+        height = $inner.height;
+        x = (xwt.screenWidth - width) / 2;
+        y = (xwt.screenHeight - height) / 2;
+
+        xwt.thread = function() {
+            var origin = xwt.origin;
+            if (origin.substring(0, 21) == "http://launch.xwt.org")
+                origin = origin.substring(22);
+
+            xwt.loadArchive(origin, function(num, den) {
+                    $left.flex = 50 * (num / den);
+                    $right.flex = 50 + 50 * (1.0 - num /den);
+                    $status.text = "Downloading: " + xwt.math.ceil(num * 100 / den) + "% [" + num + " bytes]";
+                });
+
+            xwt.newBox("main", function(num, den) {
+                    $left.flex = 50 + 50 * (num / den);
+                    $right.flex = 50 * (1.0 - num / den);
+                    $status.text = "Initializing: " + xwt.math.ceil(num * 100 / den) + "%";
+                    xwt.yield();
+                });
+
+            thisbox = null;
+        }
+
+        <box absolute="true" sizetoimage="true" id="inner" image="org.xwt.builtin.lithium"/>
+
+        <box/>
+        <box text="Downloading user interface..." vshrink="true" hpad="20" vpad="3" id="status" textcolor="white"/>
+
+        <box vpad="5" hpad="30" height="20">
+            <box color="red" flex="0.0" id="left"/>
+            <box flex="100.0" id="right" color="blue"/>
+        </box>
+
+    </template>
+
index e8b514b..55bb86d 100644 (file)
@@ -43,7 +43,7 @@
         </apply>
 
         <echo message='compiling     .cc -> .o'/>
-            <apply failonerror='true' executable='${gcc-path}/bin/${gcc-target}gcj' dest='bin-${plat}/'>
+        <apply failonerror='true' executable='${gcc-path}/bin/${gcc-target}gcj' dest='bin-${plat}/'>
             <arg value='-g'/>
             <arg value='-Ibin-${plat}'/>
             <arg value='-c'/>
             <mapper type='glob' from='*.cc' to='*-nat.o'/>
         </apply>
                                                                               
+        <echo message='wrapping    .xwar -> .o'/>
+        <bash>
+            ${gcc-path}/bin/${gcc-target}gcj --resource org/xwt/builtin.xwar -c bin/org/xwt/builtin.xwar -o bin-${plat}/org/xwt/builtin.o
+        </bash>
+
         <echo message='linking        .o -> ${binaryname}'/>
+        <uptodate property="linked" targetfile="bin-${plat}/${binaryname}">
+            <srcfiles dir="bin-${plat}/" includes="**/*.o" excludes='*.o'/>
+        </uptodate>
+        <antcall target="link"/>
+
+    </target>
+
+    <target name="link" unless="linked">
         <apply failonerror='true' executable='${gcc-path}/bin/${gcc-target}gcj' parallel='true'>
             <fileset dir='bin-${plat}/' includes='**/*.o' excludes='*.o'/>
             <arg value='-fCLASSPATH=${gcc-path}/share/libgcj.jar'/>
@@ -63,7 +76,6 @@
             <srcfile/>
             <arg line='${linkflags}'/>
        </apply>
-
     </target>
 
 </project>
index 2866d60..4739a24 100644 (file)
@@ -41,7 +41,7 @@ public class JSObject implements Scriptable {
     private static Hash nodeNameToPackageNameHash = new Hash(1000, 2);
 
     /** converts a nodeName (source code filename) into the 'package name' (resource name of its directory) */
-    private static String nodeNameToPackageName(String nodeName) {
+    public static String nodeNameToPackageName(String nodeName) {
         if (nodeName == null) return null;
         String ret = (String)nodeNameToPackageNameHash.get(nodeName);
         if (ret != null) return ret;