checking in version 3.0
Marc Liyanage [Wed, 17 Dec 2003 22:47:19 +0000 (22:47 +0000)]
git-svn-id: svn+ssh://www.entropy.ch/Users/liyanage/Documents/svnroot/trunk/TestXSLT@83 153f8dbc-cef0-0310-8e0e-ba1d6c9f8c6b

17 files changed:
Distribution/readme.html
Distribution/readme.pdf
Distribution/readme.rtf
Distribution/readme.xml
Distribution/readme2fo.xsl
English.lproj/Credits.rtf
English.lproj/InfoPlist.strings
English.lproj/MainMenu.nib/classes.nib
English.lproj/MainMenu.nib/info.nib
English.lproj/MainMenu.nib/objects.nib
English.lproj/MyDocument.nib/classes.nib
English.lproj/MyDocument.nib/info.nib
English.lproj/MyDocument.nib/keyedobjects.nib
MyDocument.h
MyDocument.m
TestXSLT.pbproj/liyanage.pbxuser
TestXSLT.pbproj/project.pbxproj

index f5c4d4c..ac324e2 100644 (file)
@@ -1,11 +1,11 @@
 <html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <title>Readme for TestXSLT v2.9</title>
+    <title>Readme for TestXSLT v3.0</title>
     <META name="Author" content="Written by Marc Liyanage ">
   </head>
   <body>
-<h1>Readme for TestXSLT v2.9</h1>
+<h1>Readme for TestXSLT v3.0</h1>
 
 <p>
       <b>
@@ -23,9 +23,9 @@
 
 <p>You can either edit the XML and XSLT code directly in the program or you can load them from files on disk. Try drag and drop for the latter.</p>
 
-<p>There are some examples included to get you started. The first is this Readme document that you are reading now. It was written and is maintained in XML. I have included two stylesheets which convert the XML input file into an RTF document and into an HTML page. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.</p>
+<p>There are some examples included to get you started. The first is this Readme document which you are reading right now. It was written and is maintained in XML. I have included several stylesheets which convert the XML input file into an RTF document, into an HTML page and into XSL-FO and thus PDF. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.</p>
 
-<p>There are also various other example files to get you started with XSLT. Just play around with the files and see what happens...</p>
+<p>I also add new interesting examples to the "More Examples" directory all the time. Just play around with the files and see what happens...</p>
 
 <p>Comments, feedback and feature suggestions are welcome to the address above.</p>
 
@@ -34,6 +34,9 @@
 <p>The latest version of this software is available at <a href="http://www.entropy.ch/software/macosx/">http://www.entropy.ch/software/macosx/</a>
     </p>
 
+<p>If you need help or would like to comment on the program, there is an online user forum for TestXSLT at <a href="http://www.entropy.ch/phpbb2/">http://www.entropy.ch/phpbb2/</a>
+    </p>
+
 
 
 <p> </p>
@@ -52,6 +55,20 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
       </tr>
 
 <tr>
+        <td bgcolor="#eeeeee" valign="top" align="right">17-DEC-2003</td>
+        <td bgcolor="#eeeeee" valign="top" align="center">3.0</td>
+        <td bgcolor="#eeeeee" valign="top">
+          <ul>
+            <li>Changed keyboard shortcut for "Find Again" from Cmd-D to Cmd-Shift-G as 1.) that seems to be the new convention for Cocoa apps, 2.) it's used in BBEdit, and 3.) I like it better :-)</li>
+            <li>When dragging a file to the document window, you can now hover the mouse pointer over the tab labels to switch tabs without interrupting the drag. This is useful for example if you want to drag an XML document to the XML tab, but you forgot to switch to that tab first and the XSLT tab is in front.</li>
+            <li>there's now a base URL text field in the HTML preview pane. It allows you to enter a URL against which relative references are resolved.</li>
+            <li>There are two new "File" menu commands with associated keyboard shortcuts to "Save As..." and "Save" the text in the current pane (XML, XSLT, Result) to a file. This is the equivalent of the corresponding buttons on each of the panes.</li>
+          </ul>
+        </td>
+      </tr>
+
+
+<tr>
         <td bgcolor="#eeeeee" valign="top" align="right">08-SEP-2003</td>
         <td bgcolor="#eeeeee" valign="top" align="center">2.9</td>
         <td bgcolor="#eeeeee" valign="top">
@@ -67,6 +84,9 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
         </td>
       </tr>
 
+
+
+
 <tr>
         <td bgcolor="#eeeeee" valign="top" align="right">17-AUG-2003</td>
         <td bgcolor="#eeeeee" valign="top" align="center">2.8</td>
index d2b309f..b66d998 100644 (file)
Binary files a/Distribution/readme.pdf and b/Distribution/readme.pdf differ
index 53d617d..04786d4 100644 (file)
@@ -34,11 +34,11 @@ You can either edit the XML and XSLT code directly in the program or you can loa
 \
 
 
-There are some examples included to get you started. The first is this Readme document that you are reading now. It was written and is maintained in XML. I have included two stylesheets which convert the XML input file into an RTF document and into an HTML page. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.\
+There are some examples included to get you started. The first is this Readme document which you are reading right now. It was written and is maintained in XML. I have included several stylesheets which convert the XML input file into an RTF document, into an HTML page and into XSL-FO and thus PDF. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.\
 \
 
 
-There are also various other example files to get you started with XSLT. Just play around with the files and see what happens...\
+I also add new interesting examples to the "More Examples" directory all the time. Just play around with the files and see what happens...\
 \
 
 
@@ -56,6 +56,12 @@ The latest version of this software is available at
 \
 
 
+If you need help or would like to comment on the program, there is an online user forum for TestXSLT at 
+\cf2 http://www.entropy.ch/phpbb2/\cf0 
+\
+\
+
+
 
 
 
@@ -71,6 +77,20 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
 \f1\b0 \
 
 
+17-DEC-2003 Version 3.0\
+
+- Changed keyboard shortcut for "Find Again" from Cmd-D to Cmd-Shift-G as 1.) that seems to be the new convention for Cocoa apps, 2.) it's used in BBEdit, and 3.) I like it better :-)\
+
+- When dragging a file to the document window, you can now hover the mouse pointer over the tab labels to switch tabs without interrupting the drag. This is useful for example if you want to drag an XML document to the XML tab, but you forgot to switch to that tab first and the XSLT tab is in front.\
+
+- there's now a base URL text field in the HTML preview pane. It allows you to enter a URL against which relative references are resolved.\
+
+- There are two new "File" menu commands with associated keyboard shortcuts to "Save As..." and "Save" the text in the current pane (XML, XSLT, Result) to a file. This is the equivalent of the corresponding buttons on each of the panes.\
+
+\
+
+
+
 08-SEP-2003 Version 2.9\
 
 - The highlight of this release is a new tag scanner, resulting in much smarter tag completion, and a list of the currently open tags at the top of the editor window. Check it out...\
@@ -90,6 +110,9 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
 \
 
 
+
+
+
 17-AUG-2003 Version 2.8\
 
 - Embedded the FOP XSL-FO rendering engine from the Apache Project. This means that you can now view the result of a translation which produces XSL-FO instructions directly in the application. You can also save the output as a PDF file. With this addition, TestXSLT is now a useful learning tool for the XSL-FO language.\
index 0fceb05..cdac7ef 100644 (file)
@@ -14,9 +14,9 @@
 
 <para>You can either edit the XML and XSLT code directly in the program or you can load them from files on disk. Try drag and drop for the latter.</para>
 
-<para>There are some examples included to get you started. The first is this Readme document that you are reading now. It was written and is maintained in XML. I have included two stylesheets which convert the XML input file into an RTF document and into an HTML page. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.</para>
+<para>There are some examples included to get you started. The first is this Readme document which you are reading right now. It was written and is maintained in XML. I have included several stylesheets which convert the XML input file into an RTF document, into an HTML page and into XSL-FO and thus PDF. Study the input, the stylesheets and the output files carefully to learn some basics. The stylesheets are commented.</para>
 
-<para>There are also various other example files to get you started with XSLT. Just play around with the files and see what happens...</para>
+<para>I also add new interesting examples to the "More Examples" directory all the time. Just play around with the files and see what happens...</para>
 
 <para>Comments, feedback and feature suggestions are welcome to the address above.</para>
 
@@ -24,6 +24,8 @@
 
 <para>The latest version of this software is available at <url>http://www.entropy.ch/software/macosx/</url></para>
 
+<para>If you need help or would like to comment on the program, there is an online user forum for TestXSLT at <url>http://www.entropy.ch/phpbb2/</url></para>
+
 </description>
 
 <requirements>
@@ -33,6 +35,16 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
 <history>
 
 <entry>
+       <version>3.0</version>
+       <date>17-DEC-2003</date>
+       <item>Changed keyboard shortcut for "Find Again" from Cmd-D to Cmd-Shift-G as 1.) that seems to be the new convention for Cocoa apps, 2.) it's used in BBEdit, and 3.) I like it better :-)</item>
+       <item>When dragging a file to the document window, you can now hover the mouse pointer over the tab labels to switch tabs without interrupting the drag. This is useful for example if you want to drag an XML document to the XML tab, but you forgot to switch to that tab first and the XSLT tab is in front.</item>
+       <item>there's now a base URL text field in the HTML preview pane. It allows you to enter a URL against which relative references are resolved.</item>
+       <item>There are two new "File" menu commands with associated keyboard shortcuts to "Save As..." and "Save" the text in the current pane (XML, XSLT, Result) to a file. This is the equivalent of the corresponding buttons on each of the panes.</item>
+</entry>
+
+
+<entry>
        <version>2.9</version>
        <date>08-SEP-2003</date>
        <item>The highlight of this release is a new tag scanner, resulting in much smarter tag completion, and a list of the currently open tags at the top of the editor window. Check it out...</item>
@@ -44,6 +56,9 @@ Mac OS X 10.2. and Safari 1.0 must be installed on your system.
 
 </entry>
 
+
+
+
 <entry>
        <version>2.8</version>
        <date>17-AUG-2003</date>
index 6359536..69e8b1b 100644 (file)
@@ -7,8 +7,6 @@
        <xsl:output method="xml" indent="yes" encoding="UTF-8" />
        <xsl:param name="version" />
 
-
-
        <!-- This template matches the root element of the readme document and emits the page
          master definitions -->
        <xsl:template match='readme'>
index 9418309..79f2bce 100644 (file)
@@ -22,6 +22,7 @@ Engineering:
 \f0\b Beta-Testing:
 \f1\b0 \
        Andy Liyanage\
+       The futureLAB engineers\
 \
 
 \f0\b Enduser-Testing:
index 2cc80a7..8041749 100644 (file)
Binary files a/English.lproj/InfoPlist.strings and b/English.lproj/InfoPlist.strings differ
index 0b118aa..03d10c3 100644 (file)
@@ -12,6 +12,8 @@
                 findPrevious = id; 
                 openResultURL = id; 
                 process = id; 
+                saveCurrent = id; 
+                saveCurrentAs = id; 
                 selectTab = id; 
                 showFindPanel = id; 
                 showJumpToLinePanel = id; 
index 55cd777..e6b2647 100644 (file)
@@ -3,19 +3,19 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>359 92 415 279 0 0 1280 832 </string>
+       <string>59 116 415 279 0 0 1280 832 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>29</key>
                <string>338 734 277 44 0 0 1280 832 </string>
        </dict>
        <key>IBFramework Version</key>
-       <string>347.0</string>
+       <string>349.0</string>
        <key>IBOpenObjects</key>
        <array>
                <integer>29</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>7B49</string>
+       <string>7D20</string>
 </dict>
 </plist>
index bdaf29f..7ff857c 100644 (file)
Binary files a/English.lproj/MainMenu.nib/objects.nib and b/English.lproj/MainMenu.nib/objects.nib differ
index e8affbc..3bd3e83 100644 (file)
@@ -63,6 +63,7 @@
                 saveXsltButton = NSButton; 
                 saveXsltFilenameField = NSTextField; 
                 tabView = NSTabView; 
+                webViewBaseURL = NSTextField; 
                 xmlTagStackField = NSTextField; 
                 xmlView = XMLTextView; 
                 xmlWellFormedIcon = NSImageView; 
index 526ef0a..68c11d2 100644 (file)
                <string>439 467 401 208 0 0 1280 832 </string>
        </dict>
        <key>IBFramework Version</key>
-       <string>348.0</string>
+       <string>349.0</string>
        <key>IBOpenObjects</key>
        <array>
                <integer>154</integer>
                <integer>5</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>7B53</string>
+       <string>7B85</string>
 </dict>
 </plist>
index 25ef43d..67b4ff2 100644 (file)
Binary files a/English.lproj/MyDocument.nib/keyedobjects.nib and b/English.lproj/MyDocument.nib/keyedobjects.nib differ
index ec73dc5..2cbe069 100644 (file)
@@ -90,6 +90,8 @@ enum {
        IBOutlet NSTextField *drawerMessageField;
        NSData *pdfData;
 
+       IBOutlet NSTextField *webViewBaseURL;
+
        FindPanelController *findPanelController;
        JumpToLinePanelController *jumpToLinePanelController;
        UnsavedChangesPanelController *unsavedChangesPanelController;
@@ -150,12 +152,22 @@ enum {
 - (IBAction)process:(id)sender;
 - (IBAction)loadXml:(id)sender;
 - (IBAction)loadXslt:(id)sender;
+
+- (BOOL)canSaveXmlAsNow;
+- (BOOL)canSaveXmlNow;
+- (BOOL)canSaveXsltAsNow;
+- (BOOL)canSaveXsltNow;
+- (BOOL)canSaveResultAsNow;
+- (BOOL)canSaveResultNow;
+
 - (IBAction)saveResultAs:(id)sender;
 - (IBAction)saveResult:(id)sender;
 - (IBAction)saveXmlAs:(id)sender;
 - (IBAction)saveXml:(id)sender;
 - (IBAction)saveXsltAs:(id)sender;
 - (IBAction)saveXslt:(id)sender;
+- (IBAction)saveCurrentAs:(id)sender;
+- (IBAction)saveCurrent:(id)sender;
 - (IBAction)newParameter:(id)sender;
 - (IBAction)removeParameter:(id)sender;
 - (IBAction)openResultURL:(id)sender;
index 893f60b..89c6611 100644 (file)
                xsltDirty = NO;
        }
 
+       NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+    NSDictionary *appDefaults = [NSDictionary
+        dictionaryWithObject:@"YES" forKey:@"AnalyzeCode"];
+       
+    [defaults registerDefaults:appDefaults];
        
        
        return self;
 
        [uiUpdateTimer retain];
 
+       
 }
 
 - (void)uiUpdateTimerTarget:(NSTimer *)timer {
 
 
 
+
 - (void)doUpdateUI {
 
        NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
        if (xmlTabIsVisible) {
                [saveXmlFilenameField setObjectValue:[workset xmlFilename]];
                [saveXmlFilenameField setToolTip:[workset xmlFilename]];
-               [saveXmlButton setEnabled:[workset hasXmlFilename] && xmlDirty];
-               [saveXmlAsButton setEnabled:[workset hasXmlCode]];
+               [saveXmlButton setEnabled:[self canSaveXmlNow]];
+               [saveXmlAsButton setEnabled:[self canSaveXmlAsNow]];
                [xmlTagStackField setStringValue:[xmlView calculateTagStack]];
        
                [xmlView checkWellFormed];
        } else if (xsltTabIsVisible) {
                [saveXsltFilenameField setObjectValue:[workset xsltFilename]];
                [saveXsltFilenameField setToolTip:[workset xsltFilename]];
-               [saveXsltButton setEnabled:[workset hasXsltFilename] && xsltDirty];
-               [saveXsltAsButton setEnabled:[workset hasXsltCode]];
+               [saveXsltButton setEnabled:[self canSaveXsltNow]];
+               [saveXsltAsButton setEnabled:[self canSaveXsltAsNow]];
                [xsltTagStackField setStringValue:[xsltView calculateTagStack]];
 
                [xsltView checkWellFormed];
                [paramRemoveButton setEnabled:[parameterTable selectedRow] != -1];
                [parameterTable reloadData];
        } else if (resultTabIsVisible) {
-               [saveResultAsButton setEnabled:[workset hasResult]];
-               [saveResultButton setEnabled:[workset hasResultFilename] && resultDirty];
+               [saveResultAsButton setEnabled:[self canSaveResultAsNow]];
+               [saveResultButton setEnabled:[self canSaveResultNow]];
                [autoSaveCheckbox setEnabled:[workset hasResultFilename]];
                [openResultURLButton setEnabled:[workset hasResultFilename]];
                [autoShowCheckbox setEnabled:[openResultURLButton isEnabled]];
 - (void)updateResultWebView {
        if (!webViewUpToDate) {
                WebFrame *mainFrame = [resultWebView mainFrame];
-               [mainFrame loadHTMLString:[workset stringResult] baseURL:nil];
+//             [mainFrame loadHTMLString:[workset stringResult] baseURL:nil];
+               [mainFrame loadHTMLString:[workset stringResult] baseURL:[NSURL URLWithString:[webViewBaseURL stringValue]]];
+//             [mainFrame loadHTMLString:[workset stringResult] baseURL:[NSURL URLWithString:@"file:///Users/liyanage/Sites/primavera/images/x"]];
                webViewUpToDate = YES;
        }
 }
 
 //     NSLog(@"validate: %@, tag: %d", menuItem, [menuItem tag]);
 
+       NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+       BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+       BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+       BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+       BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+
+       
        switch ([menuItem tag]) {
 
                case 10:        // Process
                        return [self canJumpToLineNow];
                        break;
                        
+               case 17:        // Save Current Pane
+                       if (xmlTabIsVisible) {
+                               return [self canSaveXmlNow];
+                       } else if (xsltTabIsVisible) {
+                               return [self canSaveXsltNow];
+                       } else if (resultTabIsVisible) {
+                               return [self canSaveResultNow];
+                       }
+                       break;
+                       
+               case 18:        // Save Current Pane As...
+                       if (xmlTabIsVisible) {
+                               return [self canSaveXmlAsNow];
+                       } else if (xsltTabIsVisible) {
+                               return [self canSaveXsltAsNow];
+                       } else if (resultTabIsVisible) {
+                               return [self canSaveResultAsNow];
+                       }
+                       break;
                        
                default:
                        return YES;
 
 
 
+
+- (BOOL)canSaveXmlAsNow {
+       return [workset hasXmlCode];
+}
+
+- (BOOL)canSaveXmlNow {
+       return [workset hasXmlFilename] && xmlDirty;
+}
+
+- (BOOL)canSaveXsltAsNow {
+       return [workset hasXsltCode];
+}
+
+- (BOOL)canSaveXsltNow {
+       return [workset hasXsltFilename] && xsltDirty;
+}
+
+- (BOOL)canSaveResultAsNow {
+       return [workset hasResult];
+}
+
+- (BOOL)canSaveResultNow {
+       return [workset hasResultFilename] && resultDirty;
+}
+
+
+
+
 - (IBAction)saveXmlAs:(id)sender {
 
        NSSavePanel *panel = [NSSavePanel savePanel];
 }
 
 
+- (IBAction)saveCurrentAs:(id)sender {
+       
+       NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+       BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+       BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+       BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+       BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+       
+       if (xmlTabIsVisible) {
+               return [self saveXmlAs:sender];
+       } else if (xsltTabIsVisible) {
+               return [self saveXsltAs:sender];
+       } else if (resultTabIsVisible) {
+               return [self saveResultAs:sender];
+       }
+
+}
+
+
+
+
+- (IBAction)saveCurrent:(id)sender {
+
+       NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+       BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+       BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+       BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+       BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+       
+       if (xmlTabIsVisible) {
+               return [self saveXml:sender];
+       } else if (xsltTabIsVisible) {
+               return [self saveXslt:sender];
+       } else if (resultTabIsVisible) {
+               return [self saveResult:sender];
+       }
+       
+}
+
+
+
+
+
+
 - (IBAction)openResultURL:(id)sender {
 
 //     NSLog(@"openResultURL running...");
@@ -1066,7 +1173,7 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn
 
 - (void)resizeWebView {
        
-       [[[resultWebView mainFrame] frameView] setFrame:[resultWebView frame]];
+//     [[[resultWebView mainFrame] frameView] setFrame:[resultWebView frame]];
        [resultWebView setNeedsDisplay:YES];
 
 }
@@ -1108,6 +1215,10 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn
        
        NSFont *computerFont = [NSFont fontWithName:@"Courier" size:12.0];
        [resultView setFont:computerFont];
+
+       [tabView registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
+
+       
        
        if (findPanelController == nil) {
                findPanelController = [[FindPanelController alloc] initWithWindowNibName:@"FindPanel"];
index a7a07d2..8b795fc 100644 (file)
@@ -3,7 +3,7 @@
        089C1660FE840EACC02AAC07 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {828, 405}}";
-                       sepNavSelRange = "{248, 0}";
+                       sepNavSelRange = "{311, 0}";
                        sepNavVisRect = "{{0, 0}, {828, 405}}";
                };
        };
                        sepNavVisRect = "{{0, 4487}, {828, 405}}";
                };
        };
+       1B0908BD042BE88C00A8A905 = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 12880}}";
+                       sepNavSelRange = "{18534, 33}";
+                       sepNavVisRect = "{{0, 9828}, {828, 405}}";
+               };
+       };
+       1B0908C9042BE88C00A8A905 = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 5572}}";
+                       sepNavSelRange = "{6469, 0}";
+                       sepNavVisRect = "{{0, 3347}, {828, 405}}";
+               };
+       };
        1B09090F042BE88C00A8A905 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {871, 153538}}";
@@ -75,9 +89,9 @@
        };
        1B17499B04FEB2BE00E5CBC3 = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {709, 980}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {955, 980}}";
                        sepNavSelRange = "{886, 0}";
-                       sepNavVisRect = "{{0, 364}, {709, 443}}";
+                       sepNavVisRect = "{{0, 271}, {955, 481}}";
                        sepNavWindowFrame = "{{193, 205}, {996, 596}}";
                };
        };
                        sepNavWindowFrame = "{{68, 165}, {1098, 572}}";
                };
        };
+       1B29B933054C66D700A9B888 = {
+               fRef = 2A37F4B5FDCFA73011CA2CEA;
+               isa = PBXBookmark;
+       };
        1B2B18A3042DEBC500000103 = {
                activeExec = 0;
        };
+       1B2B1944042DEFBA00000103 = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 25172}}";
+                       sepNavSelRange = "{30049, 18}";
+                       sepNavVisRect = "{{0, 3122}, {828, 405}}";
+               };
+       };
        1B2B20D8042DFDCF00000103 = {
                activeExec = 0;
        };
                sourceDirectories = (
                );
        };
-       1B387DAE0503FD030064611D = {
-               fileReference = F786D09402FB227701000103;
-               isa = PBXFileBreakpoint;
-               lineNumber = 15;
-               state = 1;
+       1B309ECF059111800012D011 = {
+               fRef = 2A37F4ACFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.m: 636";
+               rLen = 415;
+               rLoc = 15071;
+               rType = 0;
+               vrLen = 473;
+               vrLoc = 14930;
+       };
+       1B309ED0059111800012D011 = {
+               fRef = 2A37F4AEFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.h: loadXslt:";
+               rLen = 0;
+               rLoc = 4176;
+               rType = 0;
+               vrLen = 782;
+               vrLoc = 4177;
+       };
+       1B309ED1059111800012D011 = {
+               fRef = F7641DAF02FFB2FA01A8A905;
+               isa = PBXBookmark;
+       };
+       1B309ED2059111800012D011 = {
+               fRef = 2A37F4ACFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.m: 274";
+               rLen = 0;
+               rLoc = 7555;
+               rType = 0;
+               vrLen = 417;
+               vrLoc = 6840;
+       };
+       1B309ED3059111800012D011 = {
+               fRef = 2A37F4AEFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.h: saveCurrentAs:";
+               rLen = 74;
+               rLoc = 4537;
+               rType = 0;
+               vrLen = 870;
+               vrLoc = 3781;
+       };
+       1B309ED4059111800012D011 = {
+               fRef = 2A37F4ACFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.m: saveResult:";
+               rLen = 39;
+               rLoc = 16634;
+               rType = 0;
+               vrLen = 752;
+               vrLoc = 16584;
+       };
+       1B309ED5059111800012D011 = {
+               fRef = 2A37F4AEFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.h: saveCurrentAs:";
+               rLen = 74;
+               rLoc = 4537;
+               rType = 0;
+               vrLen = 870;
+               vrLoc = 3781;
+       };
+       1B309ED6059111800012D011 = {
+               fRef = 2A37F4ACFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.m: 636";
+               rLen = 415;
+               rLoc = 15071;
+               rType = 0;
+               vrLen = 473;
+               vrLoc = 14930;
+       };
+       1B309ED7059111800012D011 = {
+               fRef = 2A37F4AEFDCFA73011CA2CEA;
+               isa = PBXTextBookmark;
+               name = "MyDocument.h: loadXslt:";
+               rLen = 0;
+               rLoc = 4176;
+               rType = 0;
+               vrLen = 782;
+               vrLoc = 4177;
+       };
+       1B309ED8059111800012D011 = {
+               fRef = F7641DAF02FFB2FA01A8A905;
+               isa = PBXTextBookmark;
+               name = "readme.xml: 43";
+               rLen = 0;
+               rLoc = 3297;
+               rType = 0;
+               vrLen = 1302;
+               vrLoc = 2259;
        };
        1B387DB50503FDF50064611D = {
                fileReference = 2A37F4ACFDCFA73011CA2CEA;
                isa = PBXFileBreakpoint;
-               lineNumber = 1089;
+               lineNumber = 1197;
                state = 1;
        };
        1B387DC70504118D0064611D = {
                vrLen = 591;
                vrLoc = 149;
        };
-       1B387DC80504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 216";
-               rLen = 25;
-               rLoc = 2962;
-               rType = 0;
-               vrLen = 544;
-               vrLoc = 2818;
-       };
        1B387DC90504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 610;
                vrLoc = 149;
        };
-       1B387DCA0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 15";
-               rLen = 0;
-               rLoc = 209;
-               rType = 0;
-               vrLen = 369;
-               vrLoc = 149;
-       };
-       1B387DCC0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 15";
-               rLen = 0;
-               rLoc = 209;
-               rType = 0;
-               vrLen = 366;
-               vrLoc = 152;
-       };
-       1B387DCE0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 24";
-               rLen = 0;
-               rLoc = 209;
-               rType = 0;
-               vrLen = 431;
-               vrLoc = 152;
-       };
        1B387DCF0504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 610;
                vrLoc = 149;
        };
-       1B387DD00504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 24";
-               rLen = 0;
-               rLoc = 209;
-               rType = 0;
-               vrLen = 431;
-               vrLoc = 152;
-       };
        1B387DD10504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 610;
                vrLoc = 149;
        };
-       1B387DD40504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 23";
-               rLen = 0;
-               rLoc = 209;
-               rType = 0;
-               vrLen = 418;
-               vrLoc = 178;
-       };
-       1B387DD60504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 211";
-               rLen = 23;
-               rLoc = 2939;
-               rType = 0;
-               vrLen = 774;
-               vrLoc = 3428;
-       };
        1B387DD70504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 610;
                vrLoc = 149;
        };
-       1B387DD80504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 224";
-               rLen = 0;
-               rLoc = 4447;
-               rType = 0;
-               vrLen = 713;
-               vrLoc = 3416;
-       };
        1B387DD90504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 610;
                vrLoc = 149;
        };
-       1B387DDA0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 227";
-               rLen = 0;
-               rLoc = 4448;
-               rType = 0;
-               vrLen = 770;
-               vrLoc = 3419;
-       };
-       1B387DDC0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 227";
-               rLen = 0;
-               rLoc = 4445;
-               rType = 0;
-               vrLen = 742;
-               vrLoc = 3419;
-       };
        1B387DDD0504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 637;
                vrLoc = 187;
        };
-       1B387DDE0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 23";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 415;
-               vrLoc = 3;
-       };
        1B387DDF0504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 654;
                vrLoc = 187;
        };
-       1B387DE00504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 26";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 339;
-               vrLoc = 178;
-       };
        1B387DE10504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 688;
                vrLoc = 153;
        };
-       1B387DE20504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 27";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 341;
-               vrLoc = 178;
-       };
        1B387DE30504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 687;
                vrLoc = 153;
        };
-       1B387DE40504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 240";
-               rLen = 0;
-               rLoc = 4357;
-               rType = 0;
-               vrLen = 565;
-               vrLoc = 4031;
-       };
        1B387DE50504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 585;
                vrLoc = 263;
        };
-       1B387DE60504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 41";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 492;
-               vrLoc = 371;
-       };
        1B387DE70504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                name = "XMLTextView.h: 38";
                rLen = 0;
-               rLoc = 1117;
+               rLoc = 891;
                rType = 0;
-               vrLen = 661;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387DE80504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 32";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 415;
-               vrLoc = 283;
-       };
        1B387DE90504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                name = "XMLTextView.h: 39";
                rLen = 0;
-               rLoc = 1136;
+               rLoc = 891;
                rType = 0;
-               vrLen = 679;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387DEA0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 156";
-               rLen = 0;
-               rLoc = 2403;
-               rType = 0;
-               vrLen = 617;
-               vrLoc = 3290;
-       };
-       1B387DEC0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 205";
-               rLen = 0;
-               rLoc = 4398;
-               rType = 0;
-               vrLen = 697;
-               vrLoc = 3093;
-       };
-       1B387DEE0504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 211";
-               rLen = 0;
-               rLoc = 4446;
-               rType = 0;
-               vrLen = 505;
-               vrLoc = 3650;
-       };
        1B387DEF0504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 17;
                rLoc = 701;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387DF00504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 41";
-               rLen = 0;
-               rLoc = 1271;
-               rType = 0;
-               vrLen = 437;
-               vrLoc = 370;
-       };
        1B387DF10504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 17;
                rLoc = 701;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387DF30504118D0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 200";
-               rLen = 0;
-               rLoc = 2987;
-               rType = 0;
-               vrLen = 738;
-               vrLoc = 3026;
-       };
        1B387DF40504118D0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 17;
                rLoc = 701;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387DFE050414590064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 178";
-               rLen = 1;
-               rLoc = 3188;
-               rType = 0;
-               vrLen = 685;
-               vrLoc = 2692;
-       };
-       1B387E5D050415590064611D = {
-               fileReference = F786D09402FB227701000103;
-               isa = PBXFileBreakpoint;
-               lineNumber = 28;
-               state = 1;
-       };
-       1B387E68050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 29";
-               rLen = 0;
-               rLoc = 602;
-               rType = 0;
-               vrLen = 614;
-               vrLoc = 209;
-       };
-       1B387E6A050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 27";
-               rLen = 0;
-               rLoc = 597;
-               rType = 0;
-               vrLen = 615;
-               vrLoc = 209;
-       };
-       1B387E6D050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 214";
-               rLen = 18;
-               rLoc = 3894;
-               rType = 0;
-               vrLen = 389;
-               vrLoc = 3788;
-       };
        1B387E6E050416FA0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 17;
                rLoc = 701;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387E6F050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 214";
-               rLen = 18;
-               rLoc = 3894;
-               rType = 0;
-               vrLen = 389;
-               vrLoc = 3788;
-       };
        1B387E70050416FA0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 0;
                rLoc = 549;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387E71050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 214";
-               rLen = 18;
-               rLoc = 3894;
-               rType = 0;
-               vrLen = 389;
-               vrLoc = 3788;
-       };
        1B387E72050416FA0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 0;
                rLoc = 549;
                rType = 0;
-               vrLen = 696;
+               vrLen = 628;
                vrLoc = 263;
        };
-       1B387E73050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 214";
-               rLen = 18;
-               rLoc = 3894;
-               rType = 0;
-               vrLen = 389;
-               vrLoc = 3788;
-       };
        1B387E74050416FA0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                rLen = 17;
                rLoc = 543;
                rType = 0;
-               vrLen = 696;
-               vrLoc = 263;
-       };
-       1B387E75050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 301";
-               rLen = 0;
-               rLoc = 5376;
-               rType = 0;
-               vrLen = 716;
-               vrLoc = 5288;
-       };
-       1B387E76050416FA0064611D = {
-               fRef = F786D09302FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.h: 37";
-               rLen = 0;
-               rLoc = 765;
-               rType = 0;
                vrLen = 628;
                vrLoc = 263;
        };
-       1B387E77050416FA0064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 337";
-               rLen = 5;
-               rLoc = 6157;
-               rType = 0;
-               vrLen = 486;
-               vrLoc = 5676;
-       };
-       1B387E830504B7E80064611D = {
+       1B387E76050416FA0064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                name = "XMLTextView.h: 37";
                vrLen = 628;
                vrLoc = 263;
        };
-       1B387E840504B7E80064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 185";
-               rLen = 5;
-               rLoc = 3241;
-               rType = 0;
-               vrLen = 790;
-               vrLoc = 2963;
-       };
        1B387E890504B7E80064611D = {
                fRef = F786D09302FB227701000103;
                isa = PBXTextBookmark;
                vrLen = 628;
                vrLoc = 263;
        };
-       1B387E8A0504B7E80064611D = {
-               fRef = F786D09402FB227701000103;
-               isa = PBXTextBookmark;
-               name = "XMLTextView.m: 185";
-               rLen = 5;
-               rLoc = 3241;
-               rType = 0;
-               vrLen = 790;
-               vrLoc = 2963;
-       };
        1B3BC83B0436364A006C8631 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {740, 431}}";
        1B60A82C04DBDD3600ADF3F9 = {
                activeExec = 0;
        };
+       1B66073905794E8A00AFBBE1 = {
+               fRef = 1B0908BD042BE88C00A8A905;
+               isa = PBXTextBookmark;
+               name = "globals.c: __xmlGenericErrorContext";
+               rLen = 33;
+               rLoc = 18534;
+               rType = 0;
+               vrLen = 613;
+               vrLoc = 18292;
+       };
+       1B66073B05794E8A00AFBBE1 = {
+               fRef = 1B0908BD042BE88C00A8A905;
+               isa = PBXTextBookmark;
+               name = "globals.c: __xmlGenericErrorContext";
+               rLen = 33;
+               rLoc = 18534;
+               rType = 0;
+               vrLen = 613;
+               vrLoc = 18292;
+       };
        1B6AEEBE0493442600000102 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {828, 405}}";
        };
        1B6E18240427C5C700A8A905 = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {871, 80584}}";
-                       sepNavSelRange = "{43734, 0}";
-                       sepNavVisRect = "{{0, 20961}, {871, 235}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 36666}}";
+                       sepNavSelRange = "{14506, 39}";
+                       sepNavVisRect = "{{0, 6315}, {828, 405}}";
                };
        };
        1B6E187A0427CDD300A8A905 = {
                indexTemplatePath = "";
                isa = PBXCodeSenseManager;
                usesDefaults = 1;
-               wantsCodeCompletion = 0;
+               wantsCodeCompletion = 1;
                wantsCodeCompletionAutoPopup = 1;
                wantsCodeCompletionAutoSuggestions = 1;
                wantsCodeCompletionCaseSensitivity = 0;
                wantsCodeCompletionParametersIncluded = 1;
                wantsCodeCompletionPlaceholdersInserted = 1;
                wantsCodeCompletionTabCompletes = 1;
-               wantsIndex = 0;
+               wantsIndex = 1;
        };
        1B7E474A05028B5A00A3FD82 = {
                fRef = F7D29C2402D6439F013CD129;
                vrLen = 384;
                vrLoc = 0;
        };
-       1B7E474E05028B5A00A3FD82 = {
-               fRef = F7641DAF02FFB2FA01A8A905;
-               isa = PBXTextBookmark;
-               name = "readme.xml: 39";
-               rLen = 0;
-               rLoc = 2934;
-               rType = 0;
-               vrLen = 1411;
-               vrLoc = 2081;
-       };
        1B7E474F05028B5A00A3FD82 = {
                fRef = 1B6AEEC80493DF6900000102;
                isa = PBXTextBookmark;
                vrLen = 754;
                vrLoc = 3;
        };
-       1B7E476F05028B5A00A3FD82 = {
-               fRef = F7641DAF02FFB2FA01A8A905;
-               isa = PBXTextBookmark;
-               name = "readme.xml: 39";
-               rLen = 0;
-               rLoc = 2934;
-               rType = 0;
-               vrLen = 1411;
-               vrLoc = 2081;
-       };
        1B7E477005028B5A00A3FD82 = {
                fRef = F7D20D1502F9AB3B01000103;
                isa = PBXTextBookmark;
                vrLen = 912;
                vrLoc = 0;
        };
-       1B894BA905090AF700D46ABC = {
-               fRef = 2A37F4AEFDCFA73011CA2CEA;
-               isa = PBXTextBookmark;
-               name = "MyDocument.h: 106";
-               rLen = 0;
-               rLoc = 2760;
-               rType = 0;
-               vrLen = 950;
-               vrLoc = 1577;
-       };
        1B894BAD05090AF700D46ABC = {
                fRef = F739177802FCAAF401000103;
                isa = PBXTextBookmark;
                vrLen = 912;
                vrLoc = 0;
        };
-       1B894BAE05090AF700D46ABC = {
-               fRef = 2A37F4AEFDCFA73011CA2CEA;
-               isa = PBXTextBookmark;
-               name = "MyDocument.h: 106";
-               rLen = 0;
-               rLoc = 2760;
-               rType = 0;
-               vrLen = 950;
-               vrLoc = 1577;
-       };
        1B894BB105090AF700D46ABC = {
                fRef = 1BF7F12404F2BE74007723F5;
                isa = PBXTextBookmark;
        };
        1BD3D5C705015C8400FF9835 = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {709, 588}}";
-                       sepNavSelRange = "{350, 0}";
-                       sepNavVisRect = "{{0, 0}, {709, 443}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 658}}";
+                       sepNavSelRange = "{432, 58}";
+                       sepNavVisRect = "{{0, 0}, {828, 405}}";
                        sepNavWindowFrame = "{{134, 164}, {750, 558}}";
                };
        };
                        sepNavWindowFrame = "{{249, 53}, {750, 558}}";
                };
        };
-       1BEF77EB050B4959000F103D = {
-               fRef = 2A37F4ACFDCFA73011CA2CEA;
+       1BDE2E94054C1C6300D5B2E9 = {
+               fRef = F786D09302FB227701000103;
+               isa = PBXTextBookmark;
+               name = "XMLTextView.h: 17";
+               rLen = 49;
+               rLoc = 315;
+               rType = 0;
+               vrLen = 628;
+               vrLoc = 263;
+       };
+       1BDE2ED4054C28BB00D5B2E9 = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 405}}";
+                       sepNavSelRange = "{346, 0}";
+                       sepNavVisRect = "{{0, 0}, {828, 405}}";
+                       sepNavWindowFrame = "{{130, 164}, {750, 558}}";
+               };
+       };
+       1BDE2ED5054C28BB00D5B2E9 = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 518}}";
+                       sepNavSelRange = "{488, 0}";
+                       sepNavVisRect = "{{0, 71}, {828, 405}}";
+                       sepNavWindowFrame = "{{107, 185}, {750, 558}}";
+               };
+       };
+       1BDE2EE6054C299F00D5B2E9 = {
+               fRef = F786D09302FB227701000103;
+               isa = PBXTextBookmark;
+               name = "XMLTextView.h: checkWellFormed";
+               rLen = 24;
+               rLoc = 765;
+               rType = 0;
+               vrLen = 628;
+               vrLoc = 263;
+       };
+       1BDE2EE7054C299F00D5B2E9 = {
+               fRef = 1BD3D60E050160EC00FF9835;
+               isa = PBXTextBookmark;
+               name = "ragel_xmldeclscanner_out.c: XMLDeclScanner";
+               rLen = 14;
+               rLoc = 1284;
+               rType = 0;
+               vrLen = 727;
+               vrLoc = 965;
+       };
+       1BDE2EE8054C299F00D5B2E9 = {
+               fRef = 1B0908C9042BE88C00A8A905;
                isa = PBXTextBookmark;
-               name = "MyDocument.m: 1008";
-               rLen = 176;
-               rLoc = 21860;
+               name = "globals.h: xmlDefaultSAXLocator";
+               rLen = 0;
+               rLoc = 6469;
                rType = 0;
-               vrLen = 949;
-               vrLoc = 21489;
+               vrLen = 855;
+               vrLoc = 6222;
+       };
+       1BDE2EF0054C299F00D5B2E9 = {
+               fRef = F786D09302FB227701000103;
+               isa = PBXTextBookmark;
+               name = "XMLTextView.h: checkWellFormed";
+               rLen = 24;
+               rLoc = 765;
+               rType = 0;
+               vrLen = 628;
+               vrLoc = 263;
+       };
+       1BDE2EF1054C299F00D5B2E9 = {
+               fRef = 1BD3D60E050160EC00FF9835;
+               isa = PBXTextBookmark;
+               name = "ragel_xmldeclscanner_out.c: XMLDeclScanner";
+               rLen = 14;
+               rLoc = 1284;
+               rType = 0;
+               vrLen = 727;
+               vrLoc = 965;
+       };
+       1BDE2EF2054C299F00D5B2E9 = {
+               fRef = 1B0908C9042BE88C00A8A905;
+               isa = PBXTextBookmark;
+               name = "globals.h: xmlDefaultSAXLocator";
+               rLen = 0;
+               rLoc = 6469;
+               rType = 0;
+               vrLen = 855;
+               vrLoc = 6222;
        };
        1BEF77EC050B4959000F103D = {
                fRef = 1B0908B4042BE88C00A8A905;
                vrLen = 928;
                vrLoc = 8417;
        };
-       1BEF77EE050B4959000F103D = {
-               fRef = 2A37F4ACFDCFA73011CA2CEA;
-               isa = PBXTextBookmark;
-               name = "MyDocument.m: 1008";
-               rLen = 176;
-               rLoc = 21860;
-               rType = 0;
-               vrLen = 949;
-               vrLoc = 21489;
-       };
        1BEF77EF050B4959000F103D = {
                fRef = 1B09119C042BE89100A8A905;
                isa = PBXTextBookmark;
                vrLen = 758;
                vrLoc = 6018;
        };
-       1BEF7808050B73C3000F103D = {
-               fRef = 2A37F4BAFDCFA73011CA2CEA;
-               isa = PBXBookmark;
-       };
        1BEF7809050B73C3000F103D = {
                fRef = 1B09119C042BE89100A8A905;
                isa = PBXTextBookmark;
                vrLen = 758;
                vrLoc = 6018;
        };
-       1BEF780A050B73C3000F103D = {
-               fRef = 2A37F4BAFDCFA73011CA2CEA;
-               isa = PBXTextBookmark;
-               name = "English: 13";
-               rLen = 0;
-               rLoc = 144;
-               rType = 0;
-               vrLen = 458;
-               vrLoc = 0;
-       };
        1BF7F12304F2BE74007723F5 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {709, 490}}";
                        1B58427A04324E97004404A5,
                        1B8B40170502692200371325,
                        1B7E482005028EEB00A3FD82,
-                       1B387DAE0503FD030064611D,
                        1B387DB50503FDF50064611D,
-                       1B387E5D050415590064611D,
                );
                codeSenseManager = 1B7C2A2704AA3BA500B1C44B;
                executables = (
                                        PBXFileDataSource_Warnings_ColumnID,
                                );
                        };
+                       PBXConfiguration.PBXFileTableDataSource3.PBXBookmarksDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXBookmarksDataSource_NameID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       430.2085,
+                                       415.5991,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXBookmarksDataSource_LocationID,
+                                       PBXBookmarksDataSource_NameID,
+                               );
+                       };
                        PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
-                               PBXFileTableDataSourceColumnSortingDirectionKey = -1;
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
                                PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
                                PBXFileTableDataSourceColumnWidthsKey = (
                                        20,
                                PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
                                PBXFileTableDataSourceColumnWidthsKey = (
                                        22,
-                                       735.7974,
+                                       823.7974,
                                );
                                PBXFileTableDataSourceColumnsKey = (
                                        PBXExecutablesDataSource_ActiveFlagID,
                                PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
                                PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
                                PBXFileTableDataSourceColumnWidthsKey = (
-                                       456.2974,
-                                       389.2085,
+                                       421.2974,
+                                       424.2085,
                                );
                                PBXFileTableDataSourceColumnsKey = (
                                        PBXFindDataSource_MessageID,
                                        PBXFindDataSource_LocationID,
                                );
                        };
+                       PBXConfiguration.PBXFileTableDataSource3.PBXSymbolsDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXSymbolsDataSource_SymbolNameID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       16,
+                                       262.8008,
+                                       291.0356,
+                                       268.2085,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXSymbolsDataSource_SymbolTypeIconID,
+                                       PBXSymbolsDataSource_SymbolNameID,
+                                       PBXSymbolsDataSource_SymbolTypeID,
+                                       PBXSymbolsDataSource_ReferenceNameID,
+                               );
+                       };
                        PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
-                               PBXFileTableDataSourceColumnSortingDirectionKey = -1;
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
                                PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
                                PBXFileTableDataSourceColumnWidthsKey = (
                                        20,
                                        PBXFileDataSource_Warnings_ColumnID,
                                );
                        };
-                       PBXPerProjectTemplateStateSaveDate = 84591447;
+                       PBXPerProjectTemplateStateSaveDate = 93376895;
                        PBXWorkspaceContents = (
                                {
                                        PBXProjectWorkspaceModule_StateKey_Rev36 = {
+                                               PBXProjectWorkspaceModule_BuildResultsWindowVisible = true;
                                                PBXProjectWorkspaceModule_EditorOpen = true;
                                                PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
                                                        Split0 = {
-                                                               bookmark = 1BEF780A050B73C3000F103D;
+                                                               bookmark = 1B309ED8059111800012D011;
                                                                history = (
                                                                        1B8B40180502698E00371325,
                                                                        1B7E474A05028B5A00A3FD82,
-                                                                       1B7E474E05028B5A00A3FD82,
                                                                        1B7E474F05028B5A00A3FD82,
                                                                        1B7E475005028B5A00A3FD82,
                                                                        1B7E475105028B5A00A3FD82,
                                                                        1B7E48510502AB1C00A3FD82,
                                                                        1B7E48530502AB1C00A3FD82,
                                                                        1B7E48560502AB1C00A3FD82,
-                                                                       1B387E830504B7E80064611D,
-                                                                       1B387E840504B7E80064611D,
                                                                        1B894BA805090AF700D46ABC,
-                                                                       1B894BA905090AF700D46ABC,
                                                                        1B894BD405092F0C00D46ABC,
                                                                        1B894BD505092F0C00D46ABC,
-                                                                       1BEF77EB050B4959000F103D,
                                                                        1BEF77EC050B4959000F103D,
                                                                        1BEF77F4050B49E2000F103D,
                                                                        1BEF7807050B73C3000F103D,
-                                                                       1BEF7808050B73C3000F103D,
+                                                                       1BDE2EE6054C299F00D5B2E9,
+                                                                       1BDE2EE7054C299F00D5B2E9,
+                                                                       1BDE2EE8054C299F00D5B2E9,
+                                                                       1B29B933054C66D700A9B888,
+                                                                       1B66073905794E8A00AFBBE1,
+                                                                       1B309ECF059111800012D011,
+                                                                       1B309ED0059111800012D011,
+                                                                       1B309ED1059111800012D011,
                                                                );
                                                                prevStack = (
                                                                        1B8B40190502698E00371325,
                                                                        1B7E476B05028B5A00A3FD82,
                                                                        1B7E476C05028B5A00A3FD82,
                                                                        1B7E476E05028B5A00A3FD82,
-                                                                       1B7E476F05028B5A00A3FD82,
                                                                        1B7E477005028B5A00A3FD82,
                                                                        1B7E477105028B5A00A3FD82,
                                                                        1B7E477205028B5A00A3FD82,
                                                                        1B7E48620502AB1C00A3FD82,
                                                                        1B7E48670502AB1C00A3FD82,
                                                                        1B387DC70504118D0064611D,
-                                                                       1B387DC80504118D0064611D,
                                                                        1B387DC90504118D0064611D,
-                                                                       1B387DCA0504118D0064611D,
-                                                                       1B387DCC0504118D0064611D,
-                                                                       1B387DCE0504118D0064611D,
                                                                        1B387DCF0504118D0064611D,
-                                                                       1B387DD00504118D0064611D,
                                                                        1B387DD10504118D0064611D,
-                                                                       1B387DD40504118D0064611D,
-                                                                       1B387DD60504118D0064611D,
                                                                        1B387DD70504118D0064611D,
-                                                                       1B387DD80504118D0064611D,
                                                                        1B387DD90504118D0064611D,
-                                                                       1B387DDA0504118D0064611D,
-                                                                       1B387DDC0504118D0064611D,
                                                                        1B387DDD0504118D0064611D,
-                                                                       1B387DDE0504118D0064611D,
                                                                        1B387DDF0504118D0064611D,
-                                                                       1B387DE00504118D0064611D,
                                                                        1B387DE10504118D0064611D,
-                                                                       1B387DE20504118D0064611D,
                                                                        1B387DE30504118D0064611D,
-                                                                       1B387DE40504118D0064611D,
                                                                        1B387DE50504118D0064611D,
-                                                                       1B387DE60504118D0064611D,
                                                                        1B387DE70504118D0064611D,
-                                                                       1B387DE80504118D0064611D,
                                                                        1B387DE90504118D0064611D,
-                                                                       1B387DEA0504118D0064611D,
-                                                                       1B387DEC0504118D0064611D,
-                                                                       1B387DEE0504118D0064611D,
                                                                        1B387DEF0504118D0064611D,
-                                                                       1B387DF00504118D0064611D,
                                                                        1B387DF10504118D0064611D,
-                                                                       1B387DF30504118D0064611D,
                                                                        1B387DF40504118D0064611D,
-                                                                       1B387DFE050414590064611D,
-                                                                       1B387E68050416FA0064611D,
-                                                                       1B387E6A050416FA0064611D,
-                                                                       1B387E6D050416FA0064611D,
                                                                        1B387E6E050416FA0064611D,
-                                                                       1B387E6F050416FA0064611D,
                                                                        1B387E70050416FA0064611D,
-                                                                       1B387E71050416FA0064611D,
                                                                        1B387E72050416FA0064611D,
-                                                                       1B387E73050416FA0064611D,
                                                                        1B387E74050416FA0064611D,
-                                                                       1B387E75050416FA0064611D,
                                                                        1B387E76050416FA0064611D,
-                                                                       1B387E77050416FA0064611D,
                                                                        1B387E890504B7E80064611D,
-                                                                       1B387E8A0504B7E80064611D,
                                                                        1B894BAD05090AF700D46ABC,
-                                                                       1B894BAE05090AF700D46ABC,
                                                                        1B894BB105090AF700D46ABC,
                                                                        1B894BB305090AF700D46ABC,
                                                                        1B894BD705092F0C00D46ABC,
-                                                                       1BEF77EE050B4959000F103D,
                                                                        1BEF77EF050B4959000F103D,
                                                                        1BEF77F0050B4959000F103D,
                                                                        1BEF77F6050B49E2000F103D,
                                                                        1BEF77F7050B49E2000F103D,
                                                                        1BEF7809050B73C3000F103D,
+                                                                       1BDE2E94054C1C6300D5B2E9,
+                                                                       1BDE2EF0054C299F00D5B2E9,
+                                                                       1BDE2EF1054C299F00D5B2E9,
+                                                                       1BDE2EF2054C299F00D5B2E9,
+                                                                       1B66073B05794E8A00AFBBE1,
+                                                                       1B309ED2059111800012D011,
+                                                                       1B309ED3059111800012D011,
+                                                                       1B309ED4059111800012D011,
+                                                                       1B309ED5059111800012D011,
+                                                                       1B309ED6059111800012D011,
+                                                                       1B309ED7059111800012D011,
                                                                );
                                                        };
                                                        SplitCount = 1;
                                                PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {869, 164}}";
                                                PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 164}, {869, 422}}";
                                                PBXProjectWorkspaceModule_OldSuperviewFrame = "{{246, 0}, {869, 586}}";
+                                               PBXProjectWorkspaceModule_RunWindowVisible = true;
                                                PBXProjectWorkspaceModule_SGTM = {
                                                        PBXBottomSmartGroupGIDs = (
                                                                1C37FBAC04509CD000000102,
                        };
                        "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
                                Split0 = {
-                                       bookmark = 1BEF7803050B4B7C000F103D;
+                                       bookmark = 1BCDE8E6058466B40040B6B8;
                                        history = (
-                                               1BEF7800050B4B76000F103D,
+                                               1BCDE8E5058466B40040B6B8,
                                        );
                                };
                                SplitCount = 1;
                        };
                        "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
                                PBXProjectWorkspaceModule_StateKey_Rev36 = {
+                                       PBXProjectWorkspaceModule_BuildResultsWindowVisible = true;
                                        PBXProjectWorkspaceModule_EditorOpen = true;
                                        PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
                                                Split0 = {
-                                                       bookmark = 1BC7FE6E0507E2CB0095D353;
+                                                       bookmark = 1B29B952054C6A5600A9B888;
                                                        history = (
                                                                1B8B40180502698E00371325,
                                                                1B7E474A05028B5A00A3FD82,
-                                                               1B7E474E05028B5A00A3FD82,
                                                                1B7E474F05028B5A00A3FD82,
                                                                1B7E475005028B5A00A3FD82,
                                                                1B7E475105028B5A00A3FD82,
                                                                1B7E475405028B5A00A3FD82,
                                                                1B7E475505028B5A00A3FD82,
                                                                1B7E475605028B5A00A3FD82,
-                                                               1B7E475805028B5A00A3FD82,
-                                                               1B7E475905028B5A00A3FD82,
                                                                1B7E475A05028B5A00A3FD82,
                                                                1B7E475B05028B5A00A3FD82,
                                                                1B7E475F05028B5A00A3FD82,
                                                                1B7E48510502AB1C00A3FD82,
                                                                1B7E48530502AB1C00A3FD82,
                                                                1B7E48560502AB1C00A3FD82,
-                                                               1B387E830504B7E80064611D,
-                                                               1B387E840504B7E80064611D,
-                                                               1BC7FE1C0507E2470095D353,
+                                                               1B894BA805090AF700D46ABC,
+                                                               1B894BD405092F0C00D46ABC,
+                                                               1B894BD505092F0C00D46ABC,
+                                                               1BEF77EC050B4959000F103D,
+                                                               1BEF77F4050B49E2000F103D,
+                                                               1BEF7807050B73C3000F103D,
+                                                               1BDE2E90054C1C6300D5B2E9,
+                                                               1BDE2EE6054C299F00D5B2E9,
+                                                               1BDE2EE7054C299F00D5B2E9,
+                                                               1BDE2EE8054C299F00D5B2E9,
+                                                               1BDE2EE9054C299F00D5B2E9,
+                                                               1BDE2EEA054C299F00D5B2E9,
+                                                               1BDE2EEB054C299F00D5B2E9,
+                                                               1B29B924054C664800A9B888,
+                                                               1B29B925054C664800A9B888,
+                                                               1B29B933054C66D700A9B888,
+                                                               1B29B94E054C6A5500A9B888,
+                                                       );
+                                                       nextStack = (
+                                                               1B29B934054C66D700A9B888,
                                                        );
                                                        prevStack = (
                                                                1B8B40190502698E00371325,
                                                                1B7E476B05028B5A00A3FD82,
                                                                1B7E476C05028B5A00A3FD82,
                                                                1B7E476E05028B5A00A3FD82,
-                                                               1B7E476F05028B5A00A3FD82,
                                                                1B7E477005028B5A00A3FD82,
                                                                1B7E477105028B5A00A3FD82,
                                                                1B7E477205028B5A00A3FD82,
                                                                1B7E47B005028B5A00A3FD82,
                                                                1B7E47B205028B5A00A3FD82,
                                                                1B7E47B305028B5A00A3FD82,
-                                                               1B7E47B505028B5A00A3FD82,
                                                                1B7E47B605028B5A00A3FD82,
-                                                               1B7E47B705028B5A00A3FD82,
                                                                1B7E47B805028B5A00A3FD82,
                                                                1B7E47B905028B5A00A3FD82,
-                                                               1B7E47BA05028B5A00A3FD82,
                                                                1B7E47BB05028B5A00A3FD82,
                                                                1B7E47BC05028B5A00A3FD82,
                                                                1B7E47BD05028B5A00A3FD82,
                                                                1B387E77050416FA0064611D,
                                                                1B387E890504B7E80064611D,
                                                                1B387E8A0504B7E80064611D,
+                                                               1B894BAD05090AF700D46ABC,
+                                                               1B894BB105090AF700D46ABC,
+                                                               1B894BB305090AF700D46ABC,
+                                                               1B894BD705092F0C00D46ABC,
+                                                               1BEF77EF050B4959000F103D,
+                                                               1BEF77F0050B4959000F103D,
+                                                               1BEF77F6050B49E2000F103D,
+                                                               1BEF77F7050B49E2000F103D,
+                                                               1BEF7809050B73C3000F103D,
+                                                               1BDE2E93054C1C6300D5B2E9,
+                                                               1BDE2E94054C1C6300D5B2E9,
+                                                               1BDE2E95054C1C6300D5B2E9,
+                                                               1BDE2EF0054C299F00D5B2E9,
+                                                               1BDE2EF1054C299F00D5B2E9,
+                                                               1BDE2EF2054C299F00D5B2E9,
+                                                               1BDE2EF3054C299F00D5B2E9,
+                                                               1BDE2EF4054C299F00D5B2E9,
+                                                               1BDE2EF5054C299F00D5B2E9,
+                                                               1B29B928054C664800A9B888,
+                                                               1B29B929054C664800A9B888,
                                                        );
                                                };
                                                SplitCount = 1;
                                                        );
                                                };
                                        };
-                                       WindowFrame = "{{114, 149}, {1115, 668}}";
+                                       WindowFrame = "{{29, 142}, {1115, 668}}";
                                },
                        );
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBatchFindModule" = {
                                Frame = "{{0, 0}, {543, 158}}";
-                               WindowFrame = "{{323, 641}, {543, 158}}";
+                               WindowFrame = "{{364, 629}, {543, 158}}";
                        };
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
-                               Frame = "{{0, 0}, {1008, 460}}";
-                               WindowFrame = "{{61, 107}, {1008, 538}}";
+                               Frame = "{{0, 0}, {578, 417}}";
+                               WindowFrame = "{{256, 112}, {578, 495}}";
                        };
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXCVSModule" = {
                                Frame = "{{0, 0}, {482, 296}}";
                                WindowFrame = "{{20, 632}, {400, 88}}";
                        };
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
-                               Frame = "{{0, 0}, {750, 480}}";
-                               WindowFrame = "{{62, 220}, {750, 558}}";
+                               Frame = "{{0, 0}, {990, 468}}";
+                               WindowFrame = "{{126, 239}, {990, 546}}";
                        };
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
                                Frame = "{{0, 0}, {1115, 606}}";
                                                );
                                        };
                                };
-                               WindowFrame = "{{114, 149}, {1115, 668}}";
+                               WindowFrame = "{{29, 142}, {1115, 668}}";
                        };
                        "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = {
                                Frame = "{{0, 0}, {904, 293}}";
-                               WindowFrame = "{{307, 93}, {904, 315}}";
+                               WindowFrame = "{{343, 79}, {904, 315}}";
                        };
-                       PBXWorkspaceStateSaveDate = 84591447;
+                       PBXWorkspaceStateSaveDate = 93376895;
                };
                perUserProjectItems = {
+                       1B29B933054C66D700A9B888 = 1B29B933054C66D700A9B888;
+                       1B309ECF059111800012D011 = 1B309ECF059111800012D011;
+                       1B309ED0059111800012D011 = 1B309ED0059111800012D011;
+                       1B309ED1059111800012D011 = 1B309ED1059111800012D011;
+                       1B309ED2059111800012D011 = 1B309ED2059111800012D011;
+                       1B309ED3059111800012D011 = 1B309ED3059111800012D011;
+                       1B309ED4059111800012D011 = 1B309ED4059111800012D011;
+                       1B309ED5059111800012D011 = 1B309ED5059111800012D011;
+                       1B309ED6059111800012D011 = 1B309ED6059111800012D011;
+                       1B309ED7059111800012D011 = 1B309ED7059111800012D011;
+                       1B309ED8059111800012D011 = 1B309ED8059111800012D011;
                        1B387DC70504118D0064611D = 1B387DC70504118D0064611D;
-                       1B387DC80504118D0064611D = 1B387DC80504118D0064611D;
                        1B387DC90504118D0064611D = 1B387DC90504118D0064611D;
-                       1B387DCA0504118D0064611D = 1B387DCA0504118D0064611D;
-                       1B387DCC0504118D0064611D = 1B387DCC0504118D0064611D;
-                       1B387DCE0504118D0064611D = 1B387DCE0504118D0064611D;
                        1B387DCF0504118D0064611D = 1B387DCF0504118D0064611D;
-                       1B387DD00504118D0064611D = 1B387DD00504118D0064611D;
                        1B387DD10504118D0064611D = 1B387DD10504118D0064611D;
-                       1B387DD40504118D0064611D = 1B387DD40504118D0064611D;
-                       1B387DD60504118D0064611D = 1B387DD60504118D0064611D;
                        1B387DD70504118D0064611D = 1B387DD70504118D0064611D;
-                       1B387DD80504118D0064611D = 1B387DD80504118D0064611D;
                        1B387DD90504118D0064611D = 1B387DD90504118D0064611D;
-                       1B387DDA0504118D0064611D = 1B387DDA0504118D0064611D;
-                       1B387DDC0504118D0064611D = 1B387DDC0504118D0064611D;
                        1B387DDD0504118D0064611D = 1B387DDD0504118D0064611D;
-                       1B387DDE0504118D0064611D = 1B387DDE0504118D0064611D;
                        1B387DDF0504118D0064611D = 1B387DDF0504118D0064611D;
-                       1B387DE00504118D0064611D = 1B387DE00504118D0064611D;
                        1B387DE10504118D0064611D = 1B387DE10504118D0064611D;
-                       1B387DE20504118D0064611D = 1B387DE20504118D0064611D;
                        1B387DE30504118D0064611D = 1B387DE30504118D0064611D;
-                       1B387DE40504118D0064611D = 1B387DE40504118D0064611D;
                        1B387DE50504118D0064611D = 1B387DE50504118D0064611D;
-                       1B387DE60504118D0064611D = 1B387DE60504118D0064611D;
                        1B387DE70504118D0064611D = 1B387DE70504118D0064611D;
-                       1B387DE80504118D0064611D = 1B387DE80504118D0064611D;
                        1B387DE90504118D0064611D = 1B387DE90504118D0064611D;
-                       1B387DEA0504118D0064611D = 1B387DEA0504118D0064611D;
-                       1B387DEC0504118D0064611D = 1B387DEC0504118D0064611D;
-                       1B387DEE0504118D0064611D = 1B387DEE0504118D0064611D;
                        1B387DEF0504118D0064611D = 1B387DEF0504118D0064611D;
-                       1B387DF00504118D0064611D = 1B387DF00504118D0064611D;
                        1B387DF10504118D0064611D = 1B387DF10504118D0064611D;
-                       1B387DF30504118D0064611D = 1B387DF30504118D0064611D;
                        1B387DF40504118D0064611D = 1B387DF40504118D0064611D;
-                       1B387DFE050414590064611D = 1B387DFE050414590064611D;
-                       1B387E68050416FA0064611D = 1B387E68050416FA0064611D;
-                       1B387E6A050416FA0064611D = 1B387E6A050416FA0064611D;
-                       1B387E6D050416FA0064611D = 1B387E6D050416FA0064611D;
                        1B387E6E050416FA0064611D = 1B387E6E050416FA0064611D;
-                       1B387E6F050416FA0064611D = 1B387E6F050416FA0064611D;
                        1B387E70050416FA0064611D = 1B387E70050416FA0064611D;
-                       1B387E71050416FA0064611D = 1B387E71050416FA0064611D;
                        1B387E72050416FA0064611D = 1B387E72050416FA0064611D;
-                       1B387E73050416FA0064611D = 1B387E73050416FA0064611D;
                        1B387E74050416FA0064611D = 1B387E74050416FA0064611D;
-                       1B387E75050416FA0064611D = 1B387E75050416FA0064611D;
                        1B387E76050416FA0064611D = 1B387E76050416FA0064611D;
-                       1B387E77050416FA0064611D = 1B387E77050416FA0064611D;
-                       1B387E830504B7E80064611D = 1B387E830504B7E80064611D;
-                       1B387E840504B7E80064611D = 1B387E840504B7E80064611D;
                        1B387E890504B7E80064611D = 1B387E890504B7E80064611D;
-                       1B387E8A0504B7E80064611D = 1B387E8A0504B7E80064611D;
+                       1B66073905794E8A00AFBBE1 = 1B66073905794E8A00AFBBE1;
+                       1B66073B05794E8A00AFBBE1 = 1B66073B05794E8A00AFBBE1;
                        1B7E474A05028B5A00A3FD82 = 1B7E474A05028B5A00A3FD82;
-                       1B7E474E05028B5A00A3FD82 = 1B7E474E05028B5A00A3FD82;
                        1B7E474F05028B5A00A3FD82 = 1B7E474F05028B5A00A3FD82;
                        1B7E475005028B5A00A3FD82 = 1B7E475005028B5A00A3FD82;
                        1B7E475105028B5A00A3FD82 = 1B7E475105028B5A00A3FD82;
                        1B7E476B05028B5A00A3FD82 = 1B7E476B05028B5A00A3FD82;
                        1B7E476C05028B5A00A3FD82 = 1B7E476C05028B5A00A3FD82;
                        1B7E476E05028B5A00A3FD82 = 1B7E476E05028B5A00A3FD82;
-                       1B7E476F05028B5A00A3FD82 = 1B7E476F05028B5A00A3FD82;
                        1B7E477005028B5A00A3FD82 = 1B7E477005028B5A00A3FD82;
                        1B7E477105028B5A00A3FD82 = 1B7E477105028B5A00A3FD82;
                        1B7E477205028B5A00A3FD82 = 1B7E477205028B5A00A3FD82;
                        1B7E48620502AB1C00A3FD82 = 1B7E48620502AB1C00A3FD82;
                        1B7E48670502AB1C00A3FD82 = 1B7E48670502AB1C00A3FD82;
                        1B894BA805090AF700D46ABC = 1B894BA805090AF700D46ABC;
-                       1B894BA905090AF700D46ABC = 1B894BA905090AF700D46ABC;
                        1B894BAD05090AF700D46ABC = 1B894BAD05090AF700D46ABC;
-                       1B894BAE05090AF700D46ABC = 1B894BAE05090AF700D46ABC;
                        1B894BB105090AF700D46ABC = 1B894BB105090AF700D46ABC;
                        1B894BB305090AF700D46ABC = 1B894BB305090AF700D46ABC;
                        1B894BD405092F0C00D46ABC = 1B894BD405092F0C00D46ABC;
                        1B894BD705092F0C00D46ABC = 1B894BD705092F0C00D46ABC;
                        1B8B40180502698E00371325 = 1B8B40180502698E00371325;
                        1B8B40190502698E00371325 = 1B8B40190502698E00371325;
-                       1BEF77EB050B4959000F103D = 1BEF77EB050B4959000F103D;
+                       1BDE2E94054C1C6300D5B2E9 = 1BDE2E94054C1C6300D5B2E9;
+                       1BDE2EE6054C299F00D5B2E9 = 1BDE2EE6054C299F00D5B2E9;
+                       1BDE2EE7054C299F00D5B2E9 = 1BDE2EE7054C299F00D5B2E9;
+                       1BDE2EE8054C299F00D5B2E9 = 1BDE2EE8054C299F00D5B2E9;
+                       1BDE2EF0054C299F00D5B2E9 = 1BDE2EF0054C299F00D5B2E9;
+                       1BDE2EF1054C299F00D5B2E9 = 1BDE2EF1054C299F00D5B2E9;
+                       1BDE2EF2054C299F00D5B2E9 = 1BDE2EF2054C299F00D5B2E9;
                        1BEF77EC050B4959000F103D = 1BEF77EC050B4959000F103D;
-                       1BEF77EE050B4959000F103D = 1BEF77EE050B4959000F103D;
                        1BEF77EF050B4959000F103D = 1BEF77EF050B4959000F103D;
                        1BEF77F0050B4959000F103D = 1BEF77F0050B4959000F103D;
                        1BEF77F4050B49E2000F103D = 1BEF77F4050B49E2000F103D;
                        1BEF77F6050B49E2000F103D = 1BEF77F6050B49E2000F103D;
                        1BEF77F7050B49E2000F103D = 1BEF77F7050B49E2000F103D;
                        1BEF7807050B73C3000F103D = 1BEF7807050B73C3000F103D;
-                       1BEF7808050B73C3000F103D = 1BEF7808050B73C3000F103D;
                        1BEF7809050B73C3000F103D = 1BEF7809050B73C3000F103D;
-                       1BEF780A050B73C3000F103D = 1BEF780A050B73C3000F103D;
                };
                sourceControlManager = 1B7C2A2604AA3BA500B1C44B;
                userBuildSettings = {
        };
        2A37F4ACFDCFA73011CA2CEA = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {828, 16576}}";
-                       sepNavSelRange = "{21860, 176}";
-                       sepNavVisRect = "{{0, 14070}, {828, 405}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 18200}}";
+                       sepNavSelRange = "{15071, 415}";
+                       sepNavVisRect = "{{0, 8950}, {828, 405}}";
                        sepNavWindowFrame = "{{126, 239}, {990, 546}}";
                };
        };
        2A37F4AEFDCFA73011CA2CEA = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {828, 2590}}";
-                       sepNavSelRange = "{2760, 0}";
-                       sepNavVisRect = "{{0, 942}, {828, 405}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 2758}}";
+                       sepNavSelRange = "{4176, 0}";
+                       sepNavVisRect = "{{0, 2169}, {828, 405}}";
                        sepNavWindowFrame = "{{126, 239}, {990, 546}}";
                };
        };
                        sepNavWindowFrame = "{{15, 269}, {750, 558}}";
                };
        };
+       2A37F4B5FDCFA73011CA2CEA = {
+               uiCtxt = {
+                       sepNavWindowFrame = "{{38, 248}, {750, 558}}";
+               };
+       };
        2A37F4BAFDCFA73011CA2CEA = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {828, 713}}";
-                       sepNavSelRange = "{144, 0}";
-                       sepNavVisRect = "{{0, 0}, {828, 405}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 725}}";
+                       sepNavSelRange = "{159, 0}";
+                       sepNavVisRect = "{{0, 12}, {828, 405}}";
                        sepNavWindowFrame = "{{38, 218}, {750, 502}}";
                };
        };
        };
        F739177802FCAAF401000103 = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {828, 1176}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {709, 1204}}";
                        sepNavSelRange = "{63, 0}";
-                       sepNavVisRect = "{{0, 0}, {828, 405}}";
+                       sepNavVisRect = "{{0, 0}, {709, 443}}";
+                       sepNavWindowFrame = "{{15, 269}, {750, 558}}";
                };
        };
        F739178302FCB43A01000103 = {
        };
        F7641DAF02FFB2FA01A8A905 = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {828, 3192}}";
-                       sepNavSelRange = "{2934, 0}";
-                       sepNavVisRect = "{{0, 586}, {828, 405}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {828, 3640}}";
+                       sepNavSelRange = "{3297, 0}";
+                       sepNavVisRect = "{{0, 553}, {828, 405}}";
                        sepNavWindowFrame = "{{15, 269}, {750, 558}}";
                };
        };
        F786D09302FB227701000103 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {828, 588}}";
-                       sepNavSelRange = "{765, 0}";
+                       sepNavSelRange = "{765, 24}";
                        sepNavVisRect = "{{0, 182}, {828, 405}}";
                        sepNavWindowFrame = "{{383, 236}, {750, 558}}";
                };
        F786D09402FB227701000103 = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {828, 4746}}";
-                       sepNavSelRange = "{534, 98}";
-                       sepNavVisRect = "{{0, 245}, {828, 405}}";
+                       sepNavSelRange = "{1274, 35}";
+                       sepNavVisRect = "{{0, 855}, {828, 405}}";
                        sepNavWindowFrame = "{{383, 236}, {750, 558}}";
                };
        };
index c5755e0..ee76e6c 100644 (file)
                        settings = {
                        };
                };
+               1BDE2ED4054C28BB00D5B2E9 = {
+                       expectedFileType = sourcecode.c.h;
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       path = TabViewDraggingCategory.h;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               1BDE2ED5054C28BB00D5B2E9 = {
+                       expectedFileType = sourcecode.c.objc;
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       path = TabViewDraggingCategory.m;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               1BDE2ED6054C28BB00D5B2E9 = {
+                       fileRef = 1BDE2ED4054C28BB00D5B2E9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               1BDE2ED7054C28BB00D5B2E9 = {
+                       fileRef = 1BDE2ED5054C28BB00D5B2E9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
                1BF7F12304F2BE74007723F5 = {
                        expectedFileType = sourcecode.c.h;
                        fileEncoding = 4;
                                F7AE2417032024D601000103,
                                1B3BC83B0436364A006C8631,
                                1B3BC83C0436364A006C8631,
+                               1BDE2ED4054C28BB00D5B2E9,
+                               1BDE2ED5054C28BB00D5B2E9,
                        );
                        isa = PBXGroup;
                        name = "View/Controller Classes";
        <key>CFBundleExecutable</key>
        <string>TestXSLT</string>
        <key>CFBundleGetInfoString</key>
-       <string>TestXSLT 2.9 by Marc Liyanage, http://www.entropy.ch</string>
+       <string>TestXSLT 3.0 by Marc Liyanage, http://www.entropy.ch</string>
        <key>CFBundleHelpBookFolder</key>
        <string>TestXSLT Help</string>
        <key>CFBundleIconFile</key>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>2.9</string>
+       <string>3.0</string>
        <key>CFBundleSignature</key>
        <string>XsLt</string>
        <key>CFBundleVersion</key>
-       <string>2.9</string>
+       <string>3.0</string>
        <key>Java</key>
        <dict>
                <key>JVMVersion</key>
                                1B17499D04FEB2BE00E5CBC3,
                                1BD3D5CB05015C8400FF9835,
                                1BD3D6580501681E00FF9835,
+                               1BDE2ED6054C28BB00D5B2E9,
                        );
                        isa = PBXHeadersBuildPhase;
                        runOnlyForDeploymentPostprocessing = 0;
                                1B1749C404FEB65B00E5CBC3,
                                1BD3D610050160EC00FF9835,
                                1BD3D6590501681E00FF9835,
+                               1BDE2ED7054C28BB00D5B2E9,
                        );
                        isa = PBXSourcesBuildPhase;
                        runOnlyForDeploymentPostprocessing = 0;