Merge lp:~villemvainio/leo-editor/fix-nhist into lp:leo-editor/old-trunk

Proposed by Ville M. Vainio
Status: Needs review
Proposed branch: lp:~villemvainio/leo-editor/fix-nhist
Merge into: lp:leo-editor/old-trunk
Diff against target: None lines
To merge this branch: bzr merge lp:~villemvainio/leo-editor/fix-nhist
Reviewer Review Type Date Requested Status
The Leo editor team Pending
Review via email: mp+9271@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ville M. Vainio (villemvainio) wrote :

- Fix linear slowdown as you keep using Leo (e.g. unit tests run much faster)
- Nodehistory (back/forward arrows) work predictably
- c.positionExists works for root level nodes

Unmerged revisions

2264. By Ville M. Vainio

validPosition considers 'root' (for chapter support)

2263. By Ville M. Vainio

augment unit test for c.positionExists() (handle root level positions)

2262. By Ville M. Vainio

different implementation of positionExists(): if we are at root node, check in children of hidden root vnode

2261. By Ville M. Vainio

use try-finally with skipBeadUpdate

2260. By Ville M. Vainio

safety precaution of skipping over nonexisting positions

2259. By Ville M. Vainio

Remove trace

2258. By Ville M. Vainio

fix nodeHistory & beadList logic

2257. By Edward K. Ream

added tag

2256. By Edward K. Ream

Preparing for Leo 4.6.1 final.
Updated version info.
Added @int qt_max_colorized_chars setting with default zero.
Added support for qt_max_colorized_chars setting in qtGui.py.
All unit tests pass.

2255. By Edward K. Ream

Made minimal change to eliminate properties dialog crasher.
Implementation of g.app.gui.runProperties dialog will happen in Leo 4.7.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'leo/config/leoSettings.leo'
--- leo/config/leoSettings.leo 2009-07-17 18:23:31 +0000
+++ leo/config/leoSettings.leo 2009-07-24 15:35:43 +0000
@@ -9,7 +9,7 @@
9<preferences/>9<preferences/>
10<find_panel_settings/>10<find_panel_settings/>
11<vnodes>11<vnodes>
12<v t="ekr.20070622214401" str_leo_pos="5,7,9"><vh>Startup</vh>12<v t="ekr.20070622214401" str_leo_pos="5"><vh>Startup</vh>
13<v t="ekr.20070326094544"><vh>@chapters</vh></v>13<v t="ekr.20070326094544"><vh>@chapters</vh></v>
14<v t="ekr.20060112110750"><vh>Buttons</vh>14<v t="ekr.20060112110750"><vh>Buttons</vh>
15<v t="ekr.20051010093913"><vh>@@button Save</vh></v>15<v t="ekr.20051010093913"><vh>@@button Save</vh></v>
@@ -98,7 +98,7 @@
98<v t="ekr.20080514065934.1"><vh>About vim-like bindings</vh></v>98<v t="ekr.20080514065934.1"><vh>About vim-like bindings</vh></v>
99<v t="ekr.20080513060549.3"><vh>@strings [command,insert, overwrite] top_level_unbound_key_action = command</vh></v>99<v t="ekr.20080513060549.3"><vh>@strings [command,insert, overwrite] top_level_unbound_key_action = command</vh></v>
100</v>100</v>
101<v t="ekr.20041119034357.1" a="E"><vh>@settings</vh>101<v t="ekr.20041119034357.1"><vh>@settings</vh>
102<v t="ekr.20070926132045"><vh>Common @button nodes</vh>102<v t="ekr.20070926132045"><vh>Common @button nodes</vh>
103<v t="ekr.20070926082407"><vh>@buttons</vh>103<v t="ekr.20070926082407"><vh>@buttons</vh>
104<v t="ekr.20090703122042.7463"><vh>@@button a-common-button</vh></v>104<v t="ekr.20090703122042.7463"><vh>@@button a-common-button</vh></v>
@@ -320,7 +320,7 @@
320</v>320</v>
321</v>321</v>
322</v>322</v>
323<v t="ekr.20061003173413" a="E"><vh>File options</vh>323<v t="ekr.20061003173413"><vh>File options</vh>
324<v t="ekr.20041119034357.7"><vh>.leo file options</vh>324<v t="ekr.20041119034357.7"><vh>.leo file options</vh>
325<v t="ekr.20041119034357.8"><vh>@string output_initial_comment = None</vh></v>325<v t="ekr.20041119034357.8"><vh>@string output_initial_comment = None</vh></v>
326<v t="ekr.20041119034357.9"><vh>@string stylesheet = ekr_test</vh></v>326<v t="ekr.20041119034357.9"><vh>@string stylesheet = ekr_test</vh></v>
@@ -1078,6 +1078,7 @@
1078<v t="ekr.20060919171527.2"><vh>@string opml_namespace = leo:com:leo-opml-version-1</vh></v>1078<v t="ekr.20060919171527.2"><vh>@string opml_namespace = leo:com:leo-opml-version-1</vh></v>
1079</v>1079</v>
1080<v t="ekr.20081018053140.11"><vh>qtGui plugin</vh>1080<v t="ekr.20081018053140.11"><vh>qtGui plugin</vh>
1081<v t="ekr.20090724102452.6058"><vh>@int qt_max_colorized_chars = 0</vh></v>
1081<v t="ekr.20081023060109.14"><vh>@bool qt-use-scintilla = False</vh></v>1082<v t="ekr.20081023060109.14"><vh>@bool qt-use-scintilla = False</vh></v>
1082<v t="leohag.20081204085551.13"><vh>@string qt-ui-file-name = qt_main.ui</vh></v>1083<v t="leohag.20081204085551.13"><vh>@string qt-ui-file-name = qt_main.ui</vh></v>
1083<v t="ekr.20081018053140.12"><vh>@data qt-gui-plugin-style-sheet</vh></v>1084<v t="ekr.20081018053140.12"><vh>@data qt-gui-plugin-style-sheet</vh></v>
@@ -7924,6 +7925,8 @@
7924<t tx="ekr.20090630073313.8521"></t>7925<t tx="ekr.20090630073313.8521"></t>
7925<t tx="ekr.20090630073313.8522"></t>7926<t tx="ekr.20090630073313.8522"></t>
7926<t tx="ekr.20090703122042.7463">print 'hi'</t>7927<t tx="ekr.20090703122042.7463">print 'hi'</t>
7928<t tx="ekr.20090724102452.6058">If zero, all nodes are colorized, regardless of length of body text.
7929If &gt; 0, only nodes whose body text are smaller than this limit are colorized.</t>
7927<t tx="leohag.20081204085551.13"></t>7930<t tx="leohag.20081204085551.13"></t>
7928<t tx="tbrown.20081003103821.1">True: if the same file (basename) occurs more than once in the recent files7931<t tx="tbrown.20081003103821.1">True: if the same file (basename) occurs more than once in the recent files
7929list, i.e. on two different paths it will appear as a submenu with the basename7932list, i.e. on two different paths it will appear as a submenu with the basename
79307933
=== modified file 'leo/core/leoApp.py'
--- leo/core/leoApp.py 2009-07-18 14:53:39 +0000
+++ leo/core/leoApp.py 2009-07-18 14:55:12 +0000
@@ -711,7 +711,7 @@
711 def computeSignon (self):711 def computeSignon (self):
712712
713 app = self713 app = self
714 # buildNumber = leoVersion.buildNumber714 buildNumber = leoVersion.buildNumber
715 date = leoVersion.date715 date = leoVersion.date
716 guiVersion = app.gui.getFullVersion()716 guiVersion = app.gui.getFullVersion()
717 leoVer = leoVersion.version717 leoVer = leoVersion.version
@@ -727,10 +727,8 @@
727727
728 else: sysVersion = sys.platform728 else: sysVersion = sys.platform
729729
730 # app.signon = 'Leo %s build %s, %s' % (730 app.signon = 'Leo %s build %s, %s' % (
731 # leoVer,buildNumber,date)731 leoVer,buildNumber,date)
732 app.signon = 'Leo %s, %s' % (
733 leoVer,date)
734 app.signon2 = 'Python %s.%s.%s, %s\n%s' % (732 app.signon2 = 'Python %s.%s.%s, %s\n%s' % (
735 n1,n2,n3,guiVersion,sysVersion)733 n1,n2,n3,guiVersion,sysVersion)
736 #@nonl734 #@nonl
737735
=== modified file 'leo/core/leoCommands.py'
--- leo/core/leoCommands.py 2009-07-18 14:53:39 +0000
+++ leo/core/leoCommands.py 2009-07-25 12:02:30 +0000
@@ -5407,8 +5407,12 @@
5407 p = c.nodeHistory.goNext()5407 p = c.nodeHistory.goNext()
54085408
5409 if p:5409 if p:
5410 c.selectPosition(p)5410 c.nodeHistory.skipBeadUpdate = True
5411 c.redraw_after_select(p)5411 try:
5412 c.selectPosition(p)
5413 finally:
5414 c.nodeHistory.skipBeadUpdate = False
5415 c.redraw_after_select(p)
54125416
5413 #@-node:ekr.20031218072017.1628:goNextVisitedNode5417 #@-node:ekr.20031218072017.1628:goNextVisitedNode
5414 #@+node:ekr.20031218072017.1627:goPrevVisitedNode5418 #@+node:ekr.20031218072017.1627:goPrevVisitedNode
@@ -5421,8 +5425,12 @@
5421 p = c.nodeHistory.goPrev()5425 p = c.nodeHistory.goPrev()
54225426
5423 if p:5427 if p:
5424 c.selectPosition(p)5428 c.nodeHistory.skipBeadUpdate = True
5425 c.redraw_after_select(p)5429 try:
5430 c.selectPosition(p)
5431 finally:
5432 c.nodeHistory.skipBeadUpdate = False
5433 c.redraw_after_select(p)
5426 #@-node:ekr.20031218072017.1627:goPrevVisitedNode5434 #@-node:ekr.20031218072017.1627:goPrevVisitedNode
5427 #@+node:ekr.20031218072017.2914:goToFirstNode5435 #@+node:ekr.20031218072017.2914:goToFirstNode
5428 def goToFirstNode (self,event=None):5436 def goToFirstNode (self,event=None):
@@ -7145,7 +7153,12 @@
7145 if i >= len(children) or children[i] != old_v:7153 if i >= len(children) or children[i] != old_v:
7146 return False7154 return False
7147 else:7155 else:
7148 p.moveToBack()7156 # root position, check from hidden root vnode
7157 i = p._childIndex
7158 rootchildren = root.v.parents[0].t.children
7159 if i >= len(rootchildren) or rootchildren[i] != p.v:
7160 return False
7161 return True
71497162
7150 return False7163 return False
7151 #@-node:ekr.20040307104131.3:c.positionExists7164 #@-node:ekr.20040307104131.3:c.positionExists
@@ -7884,6 +7897,7 @@
7884 # nav_buttons and nodenavigator plugins.7897 # nav_buttons and nodenavigator plugins.
7885 self.beadPointer = -17898 self.beadPointer = -1
7886 self.trace = False7899 self.trace = False
7900 self.skipBeadUpdate = False
7887 #@nonl7901 #@nonl
7888 #@-node:ekr.20070615131604.1: ctor (nodeHistory)7902 #@-node:ekr.20070615131604.1: ctor (nodeHistory)
7889 #@+node:ekr.20070615131604.3:canGoToNext/Prev7903 #@+node:ekr.20070615131604.3:canGoToNext/Prev
@@ -7914,24 +7928,35 @@
7914 def goNext (self):7928 def goNext (self):
79157929
7916 '''Return the next visited node, or None.'''7930 '''Return the next visited node, or None.'''
7917 if self.beadPointer + 1 < len(self.beadList):7931
7932 c = self.c
7933 while self.beadPointer + 1 < len(self.beadList):
7918 self.beadPointer += 17934 self.beadPointer += 1
7919 p,chapter = self.beadList[self.beadPointer]7935 p,chapter = self.beadList[self.beadPointer]
7920 self.selectChapter(chapter)7936 if c.positionExists(p):
7921 return p7937 break
7922 else:7938 else:
7923 return None7939 return None
79247940
7941 self.selectChapter(chapter)
7942 return p
7943
7925 def goPrev (self):7944 def goPrev (self):
79267945
7927 '''Return the previous visited node, or None.'''7946 '''Return the previous visited node, or None.'''
7928 if self.beadPointer > 0:7947
7948 c = self.c
7949 while self.beadPointer > 0:
7929 self.beadPointer -= 17950 self.beadPointer -= 1
7930 p,chapter = self.beadList[self.beadPointer]7951 p,chapter = self.beadList[self.beadPointer]
7931 self.selectChapter(chapter)7952 if c.positionExists(p):
7932 return p7953 break
7933 else:7954 else:
7934 return None7955 return None
7956
7957
7958 self.selectChapter(chapter)
7959 return p
7935 #@-node:ekr.20070615134813:goNext/Prev7960 #@-node:ekr.20070615134813:goNext/Prev
7936 #@+node:ekr.20070615132939.1:remove7961 #@+node:ekr.20070615132939.1:remove
7937 def remove (self,p):7962 def remove (self,p):
@@ -7961,30 +7986,36 @@
7961 if cc and chapter and chapter != cc.getSelectedChapter():7986 if cc and chapter and chapter != cc.getSelectedChapter():
7962 cc.selectChapterByName(chapter.name)7987 cc.selectChapterByName(chapter.name)
7963 #@-node:ekr.20070615140032:selectChapter7988 #@-node:ekr.20070615140032:selectChapter
7964 #@+node:ekr.20070615131604.2:update7989 #@+node:ville.20090724234020.14676:update
7965 def update (self,p):7990 def update (self,p):
79667991
7967 c = self.c7992 c = self.c
79687993 if self.skipBeadUpdate:
7969 self.beadList = [z for z in self.beadList7994 return
7970 if c.positionExists(z[0])]7995
79717996 p = p.copy()
7972 positions = [z[0] for z in self.beadList]7997 if self.beadList and self.beadList[-1][0] == p:
79737998 # do not re-append the same node
7974 try:7999 return
7975 self.beadPointer = positions.index(p)8000
7976 except ValueError:8001 cc = c.chapterController
7977 cc = c.chapterController8002 theChapter = cc and cc.getSelectedChapter()
7978 theChapter = cc and cc.getSelectedChapter()8003 data = (p,theChapter)
7979 data = (p.copy(),theChapter)8004
7980 self.beadList.append(data)8005 if self.beadPointer < len(self.beadList) - 1:
7981 self.beadPointer = len(self.beadList)-18006 # if we came to new node, truncate bead list
79828007 self.beadList = self.beadList[0:self.beadPointer]
7983 if self.trace:8008
8009 self.beadList.append(data)
8010 self.beadPointer = len(self.beadList) - 1
8011
8012
8013 if self.trace:
7984 g.trace('bead list',p.h)8014 g.trace('bead list',p.h)
7985 g.pr([z[0].h for z in self.beadList])8015 g.pr([z[0].h for z in self.beadList])
79868016
7987 #@-node:ekr.20070615131604.2:update8017
8018 #@-node:ville.20090724234020.14676:update
7988 #@+node:ekr.20070615140655:visitedPositions8019 #@+node:ekr.20070615140655:visitedPositions
7989 def visitedPositions (self):8020 def visitedPositions (self):
79908021
79918022
=== modified file 'leo/core/leoProjects.txt'
--- leo/core/leoProjects.txt 2009-07-18 14:53:39 +0000
+++ leo/core/leoProjects.txt 2009-07-18 14:55:12 +0000
@@ -466,7 +466,7 @@
466def computeSignon (self):466def computeSignon (self):
467467
468 app = self468 app = self
469 # buildNumber = leoVersion.buildNumber469 buildNumber = leoVersion.buildNumber
470 date = leoVersion.date470 date = leoVersion.date
471 guiVersion = app.gui.getFullVersion()471 guiVersion = app.gui.getFullVersion()
472 leoVer = leoVersion.version472 leoVer = leoVersion.version
@@ -482,10 +482,8 @@
482482
483 else: sysVersion = sys.platform483 else: sysVersion = sys.platform
484484
485 # app.signon = 'Leo %s build %s, %s' % (485 app.signon = 'Leo %s build %s, %s' % (
486 # leoVer,buildNumber,date)486 leoVer,buildNumber,date)
487 app.signon = 'Leo %s, %s' % (
488 leoVer,date)
489 app.signon2 = 'Python %s.%s.%s, %s\n%s' % (487 app.signon2 = 'Python %s.%s.%s, %s\n%s' % (
490 n1,n2,n3,guiVersion,sysVersion)488 n1,n2,n3,guiVersion,sysVersion)
491#@nonl489#@nonl
492490
=== modified file 'leo/core/leoVersion.py'
--- leo/core/leoVersion.py 2009-07-17 18:23:06 +0000
+++ leo/core/leoVersion.py 2009-07-24 15:35:43 +0000
@@ -5,10 +5,10 @@
5#@@language python5#@@language python
6#@@tabwidth -46#@@tabwidth -4
77
8buildString = "$Revision: 4.7.0$" # sccs updates this.8buildNumber = 2255
9buildNumber = buildString[10:-1] # Strip off $Revision and training $9 # For now, just manually updated to bzr branch number.
10date = "July 17, 2009"10date = "July 24, 2009"
11version = "4.7 devel"11version = "4.6.1 final"
12#@nonl12#@nonl
13#@-node:ekr.20090717092906.12765:@thin leoVersion.py13#@-node:ekr.20090717092906.12765:@thin leoVersion.py
14#@-leo14#@-leo
1515
=== modified file 'leo/dist/leo-post-install-script.py'
--- leo/dist/leo-post-install-script.py 2009-07-10 17:08:24 +0000
+++ leo/dist/leo-post-install-script.py 2009-07-18 14:35:31 +0000
@@ -12,7 +12,7 @@
12#@nl12#@nl
13#@<< make version >>13#@<< make version >>
14#@+node:ekr.20080916084557.2:<< make version >>14#@+node:ekr.20080916084557.2:<< make version >>
15version = '4-6-rc1'15version = '4-6-1-final'
16#@nonl16#@nonl
17#@-node:ekr.20080916084557.2:<< make version >>17#@-node:ekr.20080916084557.2:<< make version >>
18#@nl18#@nl
1919
=== modified file 'leo/dist/leoDist.leo'
--- leo/dist/leoDist.leo 2009-07-10 19:13:07 +0000
+++ leo/dist/leoDist.leo 2009-07-18 14:35:31 +0000
@@ -9,7 +9,7 @@
9<preferences/>9<preferences/>
10<find_panel_settings/>10<find_panel_settings/>
11<vnodes>11<vnodes>
12<v t="ekr.20050315084904" str_leo_pos="2,4"><vh>Startup</vh>12<v t="ekr.20050315084904" str_leo_pos="5"><vh>Startup</vh>
13<v t="ekr.20070325123540"><vh>@chapters</vh></v>13<v t="ekr.20070325123540"><vh>@chapters</vh></v>
14<v t="ekr.20050315084922"><vh>@button Spell</vh></v>14<v t="ekr.20050315084922"><vh>@button Spell</vh></v>
15</v>15</v>
@@ -20,7 +20,7 @@
20<v t="EKR.20040519082027.34"><vh>@@file-thin ../../uninstall</vh></v>20<v t="EKR.20040519082027.34"><vh>@@file-thin ../../uninstall</vh></v>
21</v>21</v>
22</v>22</v>
23<v t="EKR.20040519091259" a="E"><vh>Annoucements</vh>23<v t="EKR.20040519091259"><vh>Annoucements</vh>
24<v t="EKR.20040519091259.1"><vh>Download statistics</vh></v>24<v t="EKR.20040519091259.1"><vh>Download statistics</vh></v>
25<v t="EKR.20040519091259.2"><vh>Quotes of the month</vh>25<v t="EKR.20040519091259.2"><vh>Quotes of the month</vh>
26<v t="ekr.20080901114425.2"><vh>Sept 2008</vh></v>26<v t="ekr.20080901114425.2"><vh>Sept 2008</vh></v>
@@ -33,10 +33,13 @@
33<v t="EKR.20040519091259.3"><vh>November 2003</vh></v>33<v t="EKR.20040519091259.3"><vh>November 2003</vh></v>
34<v t="EKR.20040519091259.4"><vh>October 2003</vh></v>34<v t="EKR.20040519091259.4"><vh>October 2003</vh></v>
35</v>35</v>
36<v t="ekr.20090718093249.5927"><vh>ANN: Leo 4.6.1 final</vh></v>
37<v t="EKR.20040519091259.30"><vh>Previous announcements</vh>
38<v t="ekr.20090718093249.5928"><vh>4.6</vh>
39<v t="ekr.20090709085944.1401"><vh>ANN: Leo 4.6 rc1</vh></v>
40<v t="ekr.20090620122333.1392"><vh>ANN: Leo 4.6 b2</vh></v>
36<v t="ekr.20090325065530.1"><vh>ANN: Leo 4.6 b1</vh></v>41<v t="ekr.20090325065530.1"><vh>ANN: Leo 4.6 b1</vh></v>
37<v t="ekr.20090620122333.1392"><vh>ANN: Leo 4.6 b2</vh></v>42</v>
38<v t="ekr.20090709085944.1401"><vh>ANN: Leo 4.6 rc1</vh></v>
39<v t="EKR.20040519091259.30"><vh>Previous announcements</vh>
40<v t="ekr.20080807093308.2"><vh>4.5</vh>43<v t="ekr.20080807093308.2"><vh>4.5</vh>
41<v t="ekr.20080628062747.73"><vh>ANN: Leo 4.5 b1</vh></v>44<v t="ekr.20080628062747.73"><vh>ANN: Leo 4.5 b1</vh></v>
42<v t="ekr.20080807093308.1"><vh>ANN: Leo 4.5 b2</vh></v>45<v t="ekr.20080807093308.1"><vh>ANN: Leo 4.5 b2</vh></v>
@@ -49,7 +52,7 @@
49</v>52</v>
50</v>53</v>
51</v>54</v>
52<v t="EKR.20040519090846" a="E"><vh>Distribution files</vh>55<v t="EKR.20040519090846"><vh>Distribution files</vh>
53<v t="EKR.20040519090846.2"><vh>@asis ../doc/INSTALL.TXT</vh>56<v t="EKR.20040519090846.2"><vh>@asis ../doc/INSTALL.TXT</vh>
54<v t="EKR.20040519090846.3"><vh>System requirements</vh></v>57<v t="EKR.20040519090846.3"><vh>System requirements</vh></v>
55<v t="ekr.20080825083632.262"><vh>Leo's HOME directory</vh></v>58<v t="ekr.20080825083632.262"><vh>Leo's HOME directory</vh></v>
@@ -63,7 +66,7 @@
63<v t="EKR.20040519090846.9"><vh>@asis ../doc/README.TXT</vh></v>66<v t="EKR.20040519090846.9"><vh>@asis ../doc/README.TXT</vh></v>
64</v>67</v>
65<v t="ekr.20090620072519.1389"><vh>Distribution checklist</vh></v>68<v t="ekr.20090620072519.1389"><vh>Distribution checklist</vh></v>
66<v t="ekr.20080916084557.1" a="E"><vh>Make stuff</vh>69<v t="ekr.20080916084557.1"><vh>Make stuff</vh>
67<v t="ekr.20080916084557.2" a="M"><vh>&lt;&lt; make version &gt;&gt;</vh></v>70<v t="ekr.20080916084557.2" a="M"><vh>&lt;&lt; make version &gt;&gt;</vh></v>
68<v t="ekr.20080913110741.1"71<v t="ekr.20080913110741.1"
69marks="ekr.20080916084557.2,"><vh>@thin leo-post-install-script.py</vh></v>72marks="ekr.20080916084557.2,"><vh>@thin leo-post-install-script.py</vh></v>
@@ -168,7 +171,7 @@
168171
169Do a search and replace on this suffix.172Do a search and replace on this suffix.
170173
171Latest suffix: -rc1174Latest suffix: -final
172175
173176
174</t>177</t>
@@ -308,7 +311,7 @@
308</t>311</t>
309<t tx="EKR.20040519090846.8">Metadata-Version: 1.0312<t tx="EKR.20040519090846.8">Metadata-Version: 1.0
310Name: leo313Name: leo
311Version: 4.6-rc1314Version: 4.6.1-final
312Summary: Leo: Literate Editor with Outlines315Summary: Leo: Literate Editor with Outlines
313Home-page: http://webpages.charter.net/edreamleo/front.html316Home-page: http://webpages.charter.net/edreamleo/front.html
314Author: Edward K. Ream317Author: Edward K. Ream
@@ -328,15 +331,20 @@
328 Download tkIcon from http://www.effbot.org/downloads/#tkIcon331 Download tkIcon from http://www.effbot.org/downloads/#tkIcon
329Platform: Windows, Linux, Macintosh332Platform: Windows, Linux, Macintosh
330</t>333</t>
331<t tx="EKR.20040519090846.9">Leo 4.6 release candidate 1 July 9, 2009334<t tx="EKR.20040519090846.9">Leo 4.6.1 final July 18, 2009
332335
333Leo 4.6 rc1 is now available at:336Leo 4.6.1 final is now available at:
334http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=29106337http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=29106
335338
336Leo is a text editor, data organizer, project manager and much more. See:339Leo is a text editor, data organizer, project manager and much more. See:
337http://webpages.charter.net/edreamleo/intro.html340http://webpages.charter.net/edreamleo/intro.html
338341
339The highlights of Leo 4.6:342Leo 4.6.1 fixes two bugs in Leo 4.6:
343
344- Leo's signon is now printed properly.
345- Opening a file from the File menu now leaves the new window on top.
346
347The highlights of Leo 4.6
340--------------------------348--------------------------
341349
342- Cached external files *greatly* reduces the time to load .leo files.350- Cached external files *greatly* reduces the time to load .leo files.
@@ -1035,7 +1043,7 @@
1035 os.system('dir %s' % (top))1043 os.system('dir %s' % (top))
1036</t>1044</t>
1037<t tx="ekr.20080916084557.1"></t>1045<t tx="ekr.20080916084557.1"></t>
1038<t tx="ekr.20080916084557.2">version = '4-6-rc1'</t>1046<t tx="ekr.20080916084557.2">version = '4-6-1-final'</t>
1039<t tx="ekr.20090325065530.1">Leo 4.6 b1 is now available at:1047<t tx="ekr.20090325065530.1">Leo 4.6 b1 is now available at:
1040http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=291061048http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=29106
10411049
@@ -1189,5 +1197,41 @@
1189Bzr: http://code.launchpad.net/leo-editor/1197Bzr: http://code.launchpad.net/leo-editor/
1190Quotes: http://webpages.charter.net/edreamleo/testimonials.html1198Quotes: http://webpages.charter.net/edreamleo/testimonials.html
1191</t>1199</t>
1200<t tx="ekr.20090718093249.5927">Leo 4.6.1 final July 18, 2009
1201
1202Leo 4.6.1 final is now available at:
1203http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=29106
1204
1205Leo is a text editor, data organizer, project manager and much more. See:
1206http://webpages.charter.net/edreamleo/intro.html
1207
1208Leo 4.6.1 fixes two bugs in Leo 4.6:
1209
1210- Leo's signon is now printed properly.
1211- Opening a file from the File menu now leaves the new window on top.
1212
1213The highlights of Leo 4.6
1214--------------------------
1215
1216- Cached external files *greatly* reduces the time to load .leo files.
1217- Leo now features a modern Qt interface by default.
1218 Leo's legacy Tk interface can also be used.
1219- New --config, --file and --gui command-line options.
1220- Leo tests syntax of .py files when saving them.
1221- Leo can now open any kind of file into @edit nodes.
1222- @auto-rst nodes allow easy editing of reStructuredText files.
1223- Properties of commanders, positions and nodes simplify programming.
1224- Improved Leo's unit testing framework.
1225- Leo now requires Python 2.5 or later.
1226- Dozens of small improvements and bug fixes.
1227
1228Links:
1229------
1230Leo: http://webpages.charter.net/edreamleo/front.html
1231Forum: http://groups.google.com/group/leo-editor
1232Download: http://sourceforge.net/project/showfiles.php?group_id=3458
1233Bzr: http://code.launchpad.net/leo-editor/
1234Quotes: http://webpages.charter.net/edreamleo/testimonials.html</t>
1235<t tx="ekr.20090718093249.5928"></t>
1192</tnodes>1236</tnodes>
1193</leo_file>1237</leo_file>
11941238
=== modified file 'leo/doc/LeoDocs.leo'
--- leo/doc/LeoDocs.leo 2009-07-17 18:23:31 +0000
+++ leo/doc/LeoDocs.leo 2009-07-18 14:32:43 +0000
@@ -9,7 +9,7 @@
9<preferences/>9<preferences/>
10<find_panel_settings/>10<find_panel_settings/>
11<vnodes>11<vnodes>
12<v t="ekr.20070610174018" str_leo_pos="4"><vh>Startup</vh>12<v t="ekr.20070610174018" str_leo_pos="6,1,1"><vh>Startup</vh>
13<v t="ekr.20070325123558"><vh>@chapters</vh></v>13<v t="ekr.20070325123558"><vh>@chapters</vh></v>
14<v t="ekr.20050404094627"><vh>Buttons</vh>14<v t="ekr.20050404094627"><vh>Buttons</vh>
15<v t="ekr.20090712122931.10453"><vh>Disabled buttons</vh>15<v t="ekr.20090712122931.10453"><vh>Disabled buttons</vh>
@@ -64,7 +64,7 @@
64<v t="ekr.20080301071818.1"><vh>@thin html/front.html</vh></v>64<v t="ekr.20080301071818.1"><vh>@thin html/front.html</vh></v>
65</v>65</v>
66<v t="ekr.20090711120622.10446"><vh>Screen shots page</vh>66<v t="ekr.20090711120622.10446"><vh>Screen shots page</vh>
67<v t="ekr.20090711120622.10447" tnodeList="ekr.20090711120622.10447"><vh>@edit screen-shots.html</vh></v>67<v t="ekr.20090711120622.10447"><vh>@@edit screen-shots.html</vh></v>
68</v>68</v>
69<v t="ekr.20090717084250.10703"><vh>Leo's users Guide</vh>69<v t="ekr.20090717084250.10703"><vh>Leo's users Guide</vh>
70<v t="ville.20090521211406.6348" descendentVnodeUnknownAttributes="7d710028550b302e302e31302e302e313971017d710258120000007273745f687474705f61747472696275746571035d71042855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343122206e616d653d22687474702d6e6f64652d6d61726b65722d3431223e710555043c2f613e71065d710728553d3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e710855063c2f6469763e71095d710a28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e710b55063c2f6469763e710c5d710d2855063c626f64793e710e55073c2f626f64793e710f5d71102855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e711155073c2f68746d6c3e71124e6565656555073c2f6469763e0a7113553b3c64697620636c6173733d2273656374696f6e222069643d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e0a711455783c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323122206e616d653d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e5265646972656374696e67206f75747075742066726f6d20736372697074733c2f613e3c2f68313e0a71156573550b302e302e31302e302e313571167d711758120000007273745f687474705f61747472696275746571185d71192855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333122206e616d653d22687474702d6e6f64652d6d61726b65722d3331223e711a55043c2f613e711b5d711c28553a3c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e711d55063c2f6469763e711e5d711f28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e712055063c2f6469763e71215d71222855063c626f64793e712355073c2f626f64793e71245d71252855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e712655073c2f68746d6c3e71274e6565656555073c2f6469763e0a712855503c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e0a712955a23c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313622206e616d653d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e46756e6374696f6e7320666f722066696e64696e6720616e64206368616e67696e6720746578742066726f6d20736372697074733c2f613e3c2f68313e0a712a6573550b302e302e31302e302e3134712b7d712c58120000007273745f687474705f617474726962757465712d5d712e2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323922206e616d653d22687474702d6e6f64652d6d61726b65722d3239223e712f55043c2f613e71305d71312855393c64697620636c6173733d2273656374696f6e222069643d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e713255063c2f6469763e71335d713428553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e713555063c2f6469763e71365d71372855063c626f64793e713855073c2f626f64793e71395d713a2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e713b55073c2f68746d6c3e713c4e6565656555073c2f6469763e0a713d553b3c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e0a713e55783c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313522206e616d653d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e47657474696e6720616e642073657474696e6720707265666572656e6365733c2f613e3c2f68313e0a713f6573550b302e302e31302e302e313671407d714158120000007273745f687474705f61747472696275746571425d71432855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333922206e616d653d22687474702d6e6f64652d6d61726b65722d3339223e714455043c2f613e71455d71462855343c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e714755063c2f6469763e71485d714928553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e714a55063c2f6469763e714b5d714c2855063c626f64793e714d55073c2f626f64793e714e5d714f2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e715055073c2f68746d6c3e71514e6565656555073c2f6469763e0a7152553e3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e0a7153557e3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323022206e616d653d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e46756e6374696f6e7320646566696e656420696e206c656f476c6f62616c732e70793c2f613e3c2f68313e0a71546573550b302e302e31302e302e313171557d715658120000007273745f687474705f61747472696275746571575d71582855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323522206e616d653d22687474702d6e6f64652d6d61726b65722d3235223e715955043c2f613e715a5d715b28553e3c64697620636c6173733d2273656374696f6e222069643d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e715c55063c2f6469763e715d5d715e28552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e715f55063c2f6469763e71605d716128553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e716255063c2f6469763e71635d71642855063c626f64793e716555073c2f626f64793e71665d71672855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e716855073c2f68746d6c3e71694e656565656555073c2f6469763e0a716a55073c2f6469763e0a716b552f3c64697620636c6173733d2273656374696f6e222069643d227570646174696e672d7468652d73637265656e223e0a716c55603c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313322206e616d653d227570646174696e672d7468652d73637265656e223e5570646174696e67207468652073637265656e3c2f613e3c2f68313e0a716d6573550b302e302e31302e302e3130716e7d716f58120000007273745f687474705f61747472696275746571705d71712855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313122206e616d653d22687474702d6e6f64652d6d61726b65722d3131223e717255043c2f613e71735d71742855453c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e717555063c2f6469763e71765d717728553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e717855063c2f6469763e71795d717a2855063c626f64793e717b55073c2f626f64793e717c5d717d2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e717e55073c2f68746d6c3e717f4e6565656555073c2f6469763e0a7180552f3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e0a7181555f3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643622206e616d653d2274726176657273696e672d6f75746c696e6573223e54726176657273696e67206f75746c696e65733c2f613e3c2f68313e0a71826573550b302e302e31302e302e313271837d718458120000007273745f687474705f61747472696275746571855d71862855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323722206e616d653d22687474702d6e6f64652d6d61726b65722d3237223e718755043c2f613e71885d718928552e3c64697620636c6173733d2273656374696f6e222069643d227570646174696e672d7468652d73637265656e223e718a55063c2f6469763e718b5d718c28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e718d55063c2f6469763e718e5d718f2855063c626f64793e719055073c2f626f64793e71915d71922855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e719355073c2f68746d6c3e71944e6565656555073c2f6469763e0a7195553a3c64697620636c6173733d2273656374696f6e222069643d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e0a719655763c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313422206e616d653d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e496e766f6b696e6720636f6d6d616e64732066726f6d20736372697074733c2f613e3c2f68313e0a71976573550d302e302e31302e302e32352e3171987d719958120000007273745f687474705f617474726962757465719a5d719b2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343722206e616d653d22687474702d6e6f64652d6d61726b65722d3437223e719c55043c2f613e719d5d719e2855243c64697620636c6173733d2273656374696f6e222069643d226974657261746f7273223e719f55063c2f6469763e71a05d71a12855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71a255063c2f6469763e71a35d71a428553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71a555063c2f6469763e71a65d71a72855063c626f64793e71a855073c2f626f64793e71a95d71aa2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71ab55073c2f68746d6c3e71ac4e656565656555073c2f6469763e0a71ad55233c64697620636c6173733d2273656374696f6e222069643d2267657474657273223e0a71ae55483c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323422206e616d653d2267657474657273223e476574746572733c2f613e3c2f68323e0a71af6573550d302e302e31302e302e32352e3071b07d71b158120000007273745f687474705f61747472696275746571b25d71b32855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343522206e616d653d22687474702d6e6f64652d6d61726b65722d3435223e71b455043c2f613e71b55d71b62855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71b755063c2f6469763e71b85d71b928553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71ba55063c2f6469763e71bb5d71bc2855063c626f64793e71bd55073c2f626f64793e71be5d71bf2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71c055073c2f68746d6c3e71c14e6565656555253c64697620636c6173733d2273656374696f6e222069643d226974657261746f7273223e0a71c2554c3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323322206e616d653d226974657261746f7273223e4974657261746f72733c2f613e3c2f68323e0a71c36573550d302e302e31302e302e32352e3271c47d71c558120000007273745f687474705f61747472696275746571c65d71c72855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343922206e616d653d22687474702d6e6f64652d6d61726b65722d3439223e71c855043c2f613e71c95d71ca2855223c64697620636c6173733d2273656374696f6e222069643d2267657474657273223e71cb55063c2f6469763e71cc5d71cd2855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71ce55063c2f6469763e71cf5d71d028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71d155063c2f6469763e71d25d71d32855063c626f64793e71d455073c2f626f64793e71d55d71d62855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71d755073c2f68746d6c3e71d84e656565656555073c2f6469763e0a71d955233c64697620636c6173733d2273656374696f6e222069643d2273657474657273223e0a71da55483c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323522206e616d653d2273657474657273223e536574746572733c2f613e3c2f68323e0a71db65735509302e302e342e302e3971dc7d71dd58120000007273745f687474705f61747472696275746571de5d71df2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333722206e616d653d22687474702d6e6f64652d6d61726b65722d3337223e71e055043c2f613e71e15d71e22855263c64697620636c6173733d2273656374696f6e222069643d22672d726566696e64616c6c223e71e355063c2f6469763e71e45d71e528554f3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e71e655063c2f6469763e71e75d71e828553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71e955063c2f6469763e71ea5d71eb2855063c626f64793e71ec55073c2f626f64793e71ed5d71ee2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71ef55073c2f68746d6c3e71f04e656565656555073c2f6469763e0a71f155073c2f6469763e0a71f255353c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e0a71f3556c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313922206e616d653d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e52756e6e696e67204c656f20696e206261746368206d6f64653c2f613e3c2f68313e0a71f46573550b302e302e31302e302e323571f57d71f658120000007273745f687474705f61747472696275746571f75d71f82855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343322206e616d653d22687474702d6e6f64652d6d61726b65722d3433223e71f955043c2f613e71fa5d71fb28553a3c64697620636c6173733d2273656374696f6e222069643d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e71fc55063c2f6469763e71fd5d71fe28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71ff55063c2f6469763e72000100005d72010100002855063c626f64793e720201000055073c2f626f64793e72030100005d72040100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e720501000055073c2f68746d6c3e72060100004e6565656555073c2f6469763e0a720701000055453c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e0a7208010000558c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323222206e616d653d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e53756d6d617279206f662074686520766e6f646520616e6420706f736974696f6e20636c61737365733c2f613e3c2f68313e0a72090100006573550b302e302e31302e302e3237720a0100007d720b01000058120000007273745f687474705f617474726962757465720c0100005d720d0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333722206e616d653d22687474702d6e6f64652d6d61726b65722d3337223e720e01000055043c2f613e720f0100005d72100100002855263c64697620636c6173733d2273656374696f6e222069643d22672d726566696e64616c6c223e721101000055063c2f6469763e72120100005d721301000028554f3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e721401000055063c2f6469763e72150100005d721601000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e721701000055063c2f6469763e72180100005d72190100002855063c626f64793e721a01000055073c2f626f64793e721b0100005d721c0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e721d01000055073c2f68746d6c3e721e0100004e656565656555073c2f6469763e0a721f01000055073c2f6469763e0a722001000055353c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e0a7221010000556c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313922206e616d653d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e52756e6e696e67204c656f20696e206261746368206d6f64653c2f613e3c2f68313e0a72220100006573550d302e302e31352e302e31382e3072230100007d72240100005808000000616e6e6f746174657225010000540c01000037643731303032383535303837303732363936663732363937343739373130313238363336313665366536663734363137343635306135343662353036393633366236633635353636313732306137313032366637313033346430663237363235353034366536663634363537313035323836383032366637313036353530343636363936633635373130373632353530323632363737313038323836383032366637313039353530303731306136323535303936313732363336383635373437393730363537313062323836383032366637313063353530353466373436383635373237313064363235353032363636373731306532383638303236663731306636383061363237353265722601000073550a302e302e31302e302e3272270100007d722801000058120000007273745f687474705f61747472696275746572290100005d722a0100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3122206e616d653d22687474702d6e6f64652d6d61726b65722d31223e722b01000055043c2f613e722c0100005d722d01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e722e01000055063c2f6469763e722f0100005d72300100002855063c626f64793e723101000055073c2f626f64793e72320100005d72330100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e723401000055073c2f68746d6c3e72350100004e65656555243c64697620636c6173733d2273656374696f6e222069643d226f76657276696577223e0a723601000055493c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643122206e616d653d226f76657276696577223e4f766572766965773c2f613e3c2f68313e0a72370100006573550a302e302e31302e302e3572380100007d723901000058120000007273745f687474705f617474726962757465723a0100005d723b0100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3722206e616d653d22687474702d6e6f64652d6d61726b65722d37223e723c01000055043c2f613e723d0100005d723e0100002855353c64697620636c6173733d2273656374696f6e222069643d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e723f01000055063c2f6469763e72400100005d724101000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e724201000055063c2f6469763e72430100005d72440100002855063c626f64793e724501000055073c2f626f64793e72460100005d72470100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e724801000055073c2f68746d6c3e72490100004e6565656555073c2f6469763e0a724a01000055463c64697620636c6173733d2273656374696f6e222069643d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e0a724b010000558e3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643422206e616d653d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e6170702e77696e646f774c6973743a20746865206c697374206f6620616c6c206f70656e206672616d65733c2f613e3c2f68313e0a724c0100006573550a302e302e31302e302e34724d0100007d724e01000058120000007273745f687474705f617474726962757465724f0100005d72500100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3522206e616d653d22687474702d6e6f64652d6d61726b65722d35223e725101000055043c2f613e72520100005d72530100002855403c64697620636c6173733d2273656374696f6e222069643d22672d746f702d7468652d636f6d6d616e6465722d6f662d7468652d746f702d77696e646f77223e725401000055063c2f6469763e72550100005d725601000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e725701000055063c2f6469763e72580100005d72590100002855063c626f64793e725a01000055073c2f626f64793e725b0100005d725c0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e725d01000055073c2f68746d6c3e725e0100004e6565656555073c2f6469763e0a725f01000055363c64697620636c6173733d2273656374696f6e222069643d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e0a726001000055703c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643322206e616d653d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e672e657328293a20777269746520746f20746865206c6f672070616e653c2f613e3c2f68313e0a72610100006573550a302e302e31302e302e3672620100007d726301000058120000007273745f687474705f61747472696275746572640100005d72650100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3922206e616d653d22687474702d6e6f64652d6d61726b65722d39223e726601000055043c2f613e72670100005d72680100002855453c64697620636c6173733d2273656374696f6e222069643d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e726901000055063c2f6469763e726a0100005d726b01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e726c01000055063c2f6469763e726d0100005d726e0100002855063c626f64793e726f01000055073c2f626f64793e72700100005d72710100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e727201000055073c2f68746d6c3e72730100004e6565656555073c2f6469763e0a727401000055463c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e0a7275010000558d3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643522206e616d653d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e47657474696e6720616e642073657474696e6720686561646c696e6520616e6420626f647920746578743c2f613e3c2f68313e0a72760100006573550d302e302e31302e302e31302e3172770100007d727801000058120000007273745f687474705f61747472696275746572790100005d727a0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313522206e616d653d22687474702d6e6f64652d6d61726b65722d3135223e727b01000055043c2f613e727c0100005d727d01000028552a3c64697620636c6173733d2273656374696f6e222069643d22632d616c6c6e6f6465732d69746572223e727e01000055063c2f6469763e727f0100005d728001000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e728101000055063c2f6469763e72820100005d728301000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e728401000055063c2f6469763e72850100005d72860100002855063c626f64793e728701000055073c2f626f64793e72880100005d72890100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e728a01000055073c2f68746d6c3e728b0100004e656565656555073c2f6469763e0a728c010000552b3c64697620636c6173733d2273656374696f6e222069643d22702d6368696c6472656e2d69746572223e0a728d01000055573c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643822206e616d653d22702d6368696c6472656e2d69746572223e702e6368696c6472656e5f697465723c2f613e3c2f68323e0a728e0100006573550d302e302e31302e302e31302e30728f0100007d729001000058120000007273745f687474705f61747472696275746572910100005d72920100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313322206e616d653d22687474702d6e6f64652d6d61726b65722d3133223e729301000055043c2f613e72940100005d729501000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e729601000055063c2f6469763e72970100005d729801000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e729901000055063c2f6469763e729a0100005d729b0100002855063c626f64793e729c01000055073c2f626f64793e729d0100005d729e0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e729f01000055073c2f68746d6c3e72a00100004e65656565552b3c64697620636c6173733d2273656374696f6e222069643d22632d616c6c6e6f6465732d69746572223e0a72a101000055573c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643722206e616d653d22632d616c6c6e6f6465732d69746572223e632e616c6c4e6f6465735f697465723c2f613e3c2f68323e0a72a20100006573550d302e302e31302e302e31302e3372a30100007d72a401000058120000007273745f687474705f61747472696275746572a50100005d72a60100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313922206e616d653d22687474702d6e6f64652d6d61726b65722d3139223e72a701000055043c2f613e72a80100005d72a90100002855453c64697620636c6173733d2273656374696f6e222069643d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e72aa01000055063c2f6469763e72ab0100005d72ac01000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72ad01000055063c2f6469763e72ae0100005d72af01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72b001000055063c2f6469763e72b10100005d72b20100002855063c626f64793e72b301000055073c2f626f64793e72b40100005d72b50100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72b601000055073c2f68746d6c3e72b70100004e656565656555073c2f6469763e0a72b801000055493c64697620636c6173733d2273656374696f6e222069643d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e0a72b901000055943c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313022206e616d653d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e702e7369626c696e67735f6974657220616e6420702e666f6c6c6f77696e675f7369626c696e67735f697465723c2f613e3c2f68323e0a72ba0100006573550d302e302e31302e302e31302e3272bb0100007d72bc01000058120000007273745f687474705f61747472696275746572bd0100005d72be0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313722206e616d653d22687474702d6e6f64652d6d61726b65722d3137223e72bf01000055043c2f613e72c00100005d72c101000028552a3c64697620636c6173733d2273656374696f6e222069643d22702d6368696c6472656e2d69746572223e72c201000055063c2f6469763e72c30100005d72c401000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72c501000055063c2f6469763e72c60100005d72c701000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72c801000055063c2f6469763e72c90100005d72ca0100002855063c626f64793e72cb01000055073c2f626f64793e72cc0100005d72cd0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72ce01000055073c2f68746d6c3e72cf0100004e656565656555073c2f6469763e0a72d001000055463c64697620636c6173733d2273656374696f6e222069643d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e0a72d1010000558d3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643922206e616d653d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e702e706172656e74735f6974657220616e6420702e73656c665f616e645f706172656e74735f697465723c2f613e3c2f68323e0a72d20100006573550d302e302e31302e302e31302e3572d30100007d72d401000058120000007273745f687474705f61747472696275746572d50100005d72d60100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323322206e616d653d22687474702d6e6f64652d6d61726b65722d3233223e72d701000055043c2f613e72d80100005d72d90100002855453c64697620636c6173733d2273656374696f6e222069643d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e72da01000055063c2f6469763e72db0100005d72dc01000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72dd01000055063c2f6469763e72de0100005d72df01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72e001000055063c2f6469763e72e10100005d72e20100002855063c626f64793e72e301000055073c2f626f64793e72e40100005d72e50100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72e601000055073c2f68746d6c3e72e70100004e656565656555073c2f6469763e0a72e8010000553f3c64697620636c6173733d2273656374696f6e222069643d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e0a72e901000055803c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313222206e616d653d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e54657374696e672077686574686572206120706f736974696f6e2069732076616c69643c2f613e3c2f68323e0a72ea0100006573550d302e302e31302e302e31302e3472eb0100007d72ec01000058120000007273745f687474705f61747472696275746572ed0100005d72ee0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323122206e616d653d22687474702d6e6f64652d6d61726b65722d3231223e72ef01000055043c2f613e72f00100005d72f10100002855483c64697620636c6173733d2273656374696f6e222069643d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e72f201000055063c2f6469763e72f30100005d72f401000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72f501000055063c2f6469763e72f60100005d72f701000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72f801000055063c2f6469763e72f90100005d72fa0100002855063c626f64793e72fb01000055073c2f626f64793e72fc0100005d72fd0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72fe01000055073c2f68746d6c3e72ff0100004e656565656555073c2f6469763e0a720002000055463c64697620636c6173733d2273656374696f6e222069643d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e0a7201020000558e3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313122206e616d653d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e702e737562747265655f6974657220616e6420702e73656c665f616e645f737562747265655f697465723c2f613e3c2f68323e0a72020200006573752e"70<v t="ville.20090521211406.6348" descendentVnodeUnknownAttributes="7d710028550b302e302e31302e302e313971017d710258120000007273745f687474705f61747472696275746571035d71042855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343122206e616d653d22687474702d6e6f64652d6d61726b65722d3431223e710555043c2f613e71065d710728553d3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e710855063c2f6469763e71095d710a28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e710b55063c2f6469763e710c5d710d2855063c626f64793e710e55073c2f626f64793e710f5d71102855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e711155073c2f68746d6c3e71124e6565656555073c2f6469763e0a7113553b3c64697620636c6173733d2273656374696f6e222069643d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e0a711455783c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323122206e616d653d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e5265646972656374696e67206f75747075742066726f6d20736372697074733c2f613e3c2f68313e0a71156573550b302e302e31302e302e313571167d711758120000007273745f687474705f61747472696275746571185d71192855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333122206e616d653d22687474702d6e6f64652d6d61726b65722d3331223e711a55043c2f613e711b5d711c28553a3c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e711d55063c2f6469763e711e5d711f28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e712055063c2f6469763e71215d71222855063c626f64793e712355073c2f626f64793e71245d71252855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e712655073c2f68746d6c3e71274e6565656555073c2f6469763e0a712855503c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e0a712955a23c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313622206e616d653d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e46756e6374696f6e7320666f722066696e64696e6720616e64206368616e67696e6720746578742066726f6d20736372697074733c2f613e3c2f68313e0a712a6573550b302e302e31302e302e3134712b7d712c58120000007273745f687474705f617474726962757465712d5d712e2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323922206e616d653d22687474702d6e6f64652d6d61726b65722d3239223e712f55043c2f613e71305d71312855393c64697620636c6173733d2273656374696f6e222069643d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e713255063c2f6469763e71335d713428553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e713555063c2f6469763e71365d71372855063c626f64793e713855073c2f626f64793e71395d713a2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e713b55073c2f68746d6c3e713c4e6565656555073c2f6469763e0a713d553b3c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e0a713e55783c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313522206e616d653d2267657474696e672d616e642d73657474696e672d707265666572656e636573223e47657474696e6720616e642073657474696e6720707265666572656e6365733c2f613e3c2f68313e0a713f6573550b302e302e31302e302e313671407d714158120000007273745f687474705f61747472696275746571425d71432855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333922206e616d653d22687474702d6e6f64652d6d61726b65722d3339223e714455043c2f613e71455d71462855343c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e714755063c2f6469763e71485d714928553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e714a55063c2f6469763e714b5d714c2855063c626f64793e714d55073c2f626f64793e714e5d714f2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e715055073c2f68746d6c3e71514e6565656555073c2f6469763e0a7152553e3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e0a7153557e3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323022206e616d653d2266756e6374696f6e732d646566696e65642d696e2d6c656f676c6f62616c732d7079223e46756e6374696f6e7320646566696e656420696e206c656f476c6f62616c732e70793c2f613e3c2f68313e0a71546573550b302e302e31302e302e313171557d715658120000007273745f687474705f61747472696275746571575d71582855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323522206e616d653d22687474702d6e6f64652d6d61726b65722d3235223e715955043c2f613e715a5d715b28553e3c64697620636c6173733d2273656374696f6e222069643d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e715c55063c2f6469763e715d5d715e28552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e715f55063c2f6469763e71605d716128553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e716255063c2f6469763e71635d71642855063c626f64793e716555073c2f626f64793e71665d71672855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e716855073c2f68746d6c3e71694e656565656555073c2f6469763e0a716a55073c2f6469763e0a716b552f3c64697620636c6173733d2273656374696f6e222069643d227570646174696e672d7468652d73637265656e223e0a716c55603c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313322206e616d653d227570646174696e672d7468652d73637265656e223e5570646174696e67207468652073637265656e3c2f613e3c2f68313e0a716d6573550b302e302e31302e302e3130716e7d716f58120000007273745f687474705f61747472696275746571705d71712855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313122206e616d653d22687474702d6e6f64652d6d61726b65722d3131223e717255043c2f613e71735d71742855453c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e717555063c2f6469763e71765d717728553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e717855063c2f6469763e71795d717a2855063c626f64793e717b55073c2f626f64793e717c5d717d2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e717e55073c2f68746d6c3e717f4e6565656555073c2f6469763e0a7180552f3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e0a7181555f3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643622206e616d653d2274726176657273696e672d6f75746c696e6573223e54726176657273696e67206f75746c696e65733c2f613e3c2f68313e0a71826573550b302e302e31302e302e313271837d718458120000007273745f687474705f61747472696275746571855d71862855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323722206e616d653d22687474702d6e6f64652d6d61726b65722d3237223e718755043c2f613e71885d718928552e3c64697620636c6173733d2273656374696f6e222069643d227570646174696e672d7468652d73637265656e223e718a55063c2f6469763e718b5d718c28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e718d55063c2f6469763e718e5d718f2855063c626f64793e719055073c2f626f64793e71915d71922855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e719355073c2f68746d6c3e71944e6565656555073c2f6469763e0a7195553a3c64697620636c6173733d2273656374696f6e222069643d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e0a719655763c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313422206e616d653d22696e766f6b696e672d636f6d6d616e64732d66726f6d2d73637269707473223e496e766f6b696e6720636f6d6d616e64732066726f6d20736372697074733c2f613e3c2f68313e0a71976573550d302e302e31302e302e32352e3171987d719958120000007273745f687474705f617474726962757465719a5d719b2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343722206e616d653d22687474702d6e6f64652d6d61726b65722d3437223e719c55043c2f613e719d5d719e2855243c64697620636c6173733d2273656374696f6e222069643d226974657261746f7273223e719f55063c2f6469763e71a05d71a12855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71a255063c2f6469763e71a35d71a428553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71a555063c2f6469763e71a65d71a72855063c626f64793e71a855073c2f626f64793e71a95d71aa2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71ab55073c2f68746d6c3e71ac4e656565656555073c2f6469763e0a71ad55233c64697620636c6173733d2273656374696f6e222069643d2267657474657273223e0a71ae55483c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323422206e616d653d2267657474657273223e476574746572733c2f613e3c2f68323e0a71af6573550d302e302e31302e302e32352e3071b07d71b158120000007273745f687474705f61747472696275746571b25d71b32855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343522206e616d653d22687474702d6e6f64652d6d61726b65722d3435223e71b455043c2f613e71b55d71b62855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71b755063c2f6469763e71b85d71b928553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71ba55063c2f6469763e71bb5d71bc2855063c626f64793e71bd55073c2f626f64793e71be5d71bf2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71c055073c2f68746d6c3e71c14e6565656555253c64697620636c6173733d2273656374696f6e222069643d226974657261746f7273223e0a71c2554c3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323322206e616d653d226974657261746f7273223e4974657261746f72733c2f613e3c2f68323e0a71c36573550d302e302e31302e302e32352e3271c47d71c558120000007273745f687474705f61747472696275746571c65d71c72855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343922206e616d653d22687474702d6e6f64652d6d61726b65722d3439223e71c855043c2f613e71c95d71ca2855223c64697620636c6173733d2273656374696f6e222069643d2267657474657273223e71cb55063c2f6469763e71cc5d71cd2855443c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e71ce55063c2f6469763e71cf5d71d028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71d155063c2f6469763e71d25d71d32855063c626f64793e71d455073c2f626f64793e71d55d71d62855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71d755073c2f68746d6c3e71d84e656565656555073c2f6469763e0a71d955233c64697620636c6173733d2273656374696f6e222069643d2273657474657273223e0a71da55483c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323522206e616d653d2273657474657273223e536574746572733c2f613e3c2f68323e0a71db65735509302e302e342e302e3971dc7d71dd58120000007273745f687474705f61747472696275746571de5d71df2855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333722206e616d653d22687474702d6e6f64652d6d61726b65722d3337223e71e055043c2f613e71e15d71e22855263c64697620636c6173733d2273656374696f6e222069643d22672d726566696e64616c6c223e71e355063c2f6469763e71e45d71e528554f3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e71e655063c2f6469763e71e75d71e828553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71e955063c2f6469763e71ea5d71eb2855063c626f64793e71ec55073c2f626f64793e71ed5d71ee2855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e71ef55073c2f68746d6c3e71f04e656565656555073c2f6469763e0a71f155073c2f6469763e0a71f255353c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e0a71f3556c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313922206e616d653d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e52756e6e696e67204c656f20696e206261746368206d6f64653c2f613e3c2f68313e0a71f46573550b302e302e31302e302e323571f57d71f658120000007273745f687474705f61747472696275746571f75d71f82855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d343322206e616d653d22687474702d6e6f64652d6d61726b65722d3433223e71f955043c2f613e71fa5d71fb28553a3c64697620636c6173733d2273656374696f6e222069643d227265646972656374696e672d6f75747075742d66726f6d2d73637269707473223e71fc55063c2f6469763e71fd5d71fe28553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e71ff55063c2f6469763e72000100005d72010100002855063c626f64793e720201000055073c2f626f64793e72030100005d72040100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e720501000055073c2f68746d6c3e72060100004e6565656555073c2f6469763e0a720701000055453c64697620636c6173733d2273656374696f6e222069643d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e0a7208010000558c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964323222206e616d653d2273756d6d6172792d6f662d7468652d766e6f64652d616e642d706f736974696f6e2d636c6173736573223e53756d6d617279206f662074686520766e6f646520616e6420706f736974696f6e20636c61737365733c2f613e3c2f68313e0a72090100006573550b302e302e31302e302e3237720a0100007d720b01000058120000007273745f687474705f617474726962757465720c0100005d720d0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d333722206e616d653d22687474702d6e6f64652d6d61726b65722d3337223e720e01000055043c2f613e720f0100005d72100100002855263c64697620636c6173733d2273656374696f6e222069643d22672d726566696e64616c6c223e721101000055063c2f6469763e72120100005d721301000028554f3c64697620636c6173733d2273656374696f6e222069643d2266756e6374696f6e732d666f722d66696e64696e672d616e642d6368616e67696e672d746578742d66726f6d2d73637269707473223e721401000055063c2f6469763e72150100005d721601000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e721701000055063c2f6469763e72180100005d72190100002855063c626f64793e721a01000055073c2f626f64793e721b0100005d721c0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e721d01000055073c2f68746d6c3e721e0100004e656565656555073c2f6469763e0a721f01000055073c2f6469763e0a722001000055353c64697620636c6173733d2273656374696f6e222069643d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e0a7221010000556c3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313922206e616d653d2272756e6e696e672d6c656f2d696e2d62617463682d6d6f6465223e52756e6e696e67204c656f20696e206261746368206d6f64653c2f613e3c2f68313e0a72220100006573550d302e302e31352e302e31382e3072230100007d72240100005808000000616e6e6f746174657225010000540c01000037643731303032383535303837303732363936663732363937343739373130313238363336313665366536663734363137343635306135343662353036393633366236633635353636313732306137313032366637313033346430663237363235353034366536663634363537313035323836383032366637313036353530343636363936633635373130373632353530323632363737313038323836383032366637313039353530303731306136323535303936313732363336383635373437393730363537313062323836383032366637313063353530353466373436383635373237313064363235353032363636373731306532383638303236663731306636383061363237353265722601000073550a302e302e31302e302e3272270100007d722801000058120000007273745f687474705f61747472696275746572290100005d722a0100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3122206e616d653d22687474702d6e6f64652d6d61726b65722d31223e722b01000055043c2f613e722c0100005d722d01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e722e01000055063c2f6469763e722f0100005d72300100002855063c626f64793e723101000055073c2f626f64793e72320100005d72330100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e723401000055073c2f68746d6c3e72350100004e65656555243c64697620636c6173733d2273656374696f6e222069643d226f76657276696577223e0a723601000055493c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643122206e616d653d226f76657276696577223e4f766572766965773c2f613e3c2f68313e0a72370100006573550a302e302e31302e302e3572380100007d723901000058120000007273745f687474705f617474726962757465723a0100005d723b0100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3722206e616d653d22687474702d6e6f64652d6d61726b65722d37223e723c01000055043c2f613e723d0100005d723e0100002855353c64697620636c6173733d2273656374696f6e222069643d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e723f01000055063c2f6469763e72400100005d724101000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e724201000055063c2f6469763e72430100005d72440100002855063c626f64793e724501000055073c2f626f64793e72460100005d72470100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e724801000055073c2f68746d6c3e72490100004e6565656555073c2f6469763e0a724a01000055463c64697620636c6173733d2273656374696f6e222069643d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e0a724b010000558e3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643422206e616d653d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e6170702e77696e646f774c6973743a20746865206c697374206f6620616c6c206f70656e206672616d65733c2f613e3c2f68313e0a724c0100006573550a302e302e31302e302e34724d0100007d724e01000058120000007273745f687474705f617474726962757465724f0100005d72500100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3522206e616d653d22687474702d6e6f64652d6d61726b65722d35223e725101000055043c2f613e72520100005d72530100002855403c64697620636c6173733d2273656374696f6e222069643d22672d746f702d7468652d636f6d6d616e6465722d6f662d7468652d746f702d77696e646f77223e725401000055063c2f6469763e72550100005d725601000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e725701000055063c2f6469763e72580100005d72590100002855063c626f64793e725a01000055073c2f626f64793e725b0100005d725c0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e725d01000055073c2f68746d6c3e725e0100004e6565656555073c2f6469763e0a725f01000055363c64697620636c6173733d2273656374696f6e222069643d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e0a726001000055703c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643322206e616d653d22672d65732d77726974652d746f2d7468652d6c6f672d70616e65223e672e657328293a20777269746520746f20746865206c6f672070616e653c2f613e3c2f68313e0a72610100006573550a302e302e31302e302e3672620100007d726301000058120000007273745f687474705f61747472696275746572640100005d72650100002855443c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d3922206e616d653d22687474702d6e6f64652d6d61726b65722d39223e726601000055043c2f613e72670100005d72680100002855453c64697620636c6173733d2273656374696f6e222069643d226170702d77696e646f776c6973742d7468652d6c6973742d6f662d616c6c2d6f70656e2d6672616d6573223e726901000055063c2f6469763e726a0100005d726b01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e726c01000055063c2f6469763e726d0100005d726e0100002855063c626f64793e726f01000055073c2f626f64793e72700100005d72710100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e727201000055073c2f68746d6c3e72730100004e6565656555073c2f6469763e0a727401000055463c64697620636c6173733d2273656374696f6e222069643d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e0a7275010000558d3c68313e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643522206e616d653d2267657474696e672d616e642d73657474696e672d686561646c696e652d616e642d626f64792d74657874223e47657474696e6720616e642073657474696e6720686561646c696e6520616e6420626f647920746578743c2f613e3c2f68313e0a72760100006573550d302e302e31302e302e31302e3172770100007d727801000058120000007273745f687474705f61747472696275746572790100005d727a0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313522206e616d653d22687474702d6e6f64652d6d61726b65722d3135223e727b01000055043c2f613e727c0100005d727d01000028552a3c64697620636c6173733d2273656374696f6e222069643d22632d616c6c6e6f6465732d69746572223e727e01000055063c2f6469763e727f0100005d728001000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e728101000055063c2f6469763e72820100005d728301000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e728401000055063c2f6469763e72850100005d72860100002855063c626f64793e728701000055073c2f626f64793e72880100005d72890100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e728a01000055073c2f68746d6c3e728b0100004e656565656555073c2f6469763e0a728c010000552b3c64697620636c6173733d2273656374696f6e222069643d22702d6368696c6472656e2d69746572223e0a728d01000055573c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643822206e616d653d22702d6368696c6472656e2d69746572223e702e6368696c6472656e5f697465723c2f613e3c2f68323e0a728e0100006573550d302e302e31302e302e31302e30728f0100007d729001000058120000007273745f687474705f61747472696275746572910100005d72920100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313322206e616d653d22687474702d6e6f64652d6d61726b65722d3133223e729301000055043c2f613e72940100005d729501000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e729601000055063c2f6469763e72970100005d729801000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e729901000055063c2f6469763e729a0100005d729b0100002855063c626f64793e729c01000055073c2f626f64793e729d0100005d729e0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e729f01000055073c2f68746d6c3e72a00100004e65656565552b3c64697620636c6173733d2273656374696f6e222069643d22632d616c6c6e6f6465732d69746572223e0a72a101000055573c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643722206e616d653d22632d616c6c6e6f6465732d69746572223e632e616c6c4e6f6465735f697465723c2f613e3c2f68323e0a72a20100006573550d302e302e31302e302e31302e3372a30100007d72a401000058120000007273745f687474705f61747472696275746572a50100005d72a60100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313922206e616d653d22687474702d6e6f64652d6d61726b65722d3139223e72a701000055043c2f613e72a80100005d72a90100002855453c64697620636c6173733d2273656374696f6e222069643d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e72aa01000055063c2f6469763e72ab0100005d72ac01000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72ad01000055063c2f6469763e72ae0100005d72af01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72b001000055063c2f6469763e72b10100005d72b20100002855063c626f64793e72b301000055073c2f626f64793e72b40100005d72b50100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72b601000055073c2f68746d6c3e72b70100004e656565656555073c2f6469763e0a72b801000055493c64697620636c6173733d2273656374696f6e222069643d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e0a72b901000055943c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313022206e616d653d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e702e7369626c696e67735f6974657220616e6420702e666f6c6c6f77696e675f7369626c696e67735f697465723c2f613e3c2f68323e0a72ba0100006573550d302e302e31302e302e31302e3272bb0100007d72bc01000058120000007273745f687474705f61747472696275746572bd0100005d72be0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d313722206e616d653d22687474702d6e6f64652d6d61726b65722d3137223e72bf01000055043c2f613e72c00100005d72c101000028552a3c64697620636c6173733d2273656374696f6e222069643d22702d6368696c6472656e2d69746572223e72c201000055063c2f6469763e72c30100005d72c401000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72c501000055063c2f6469763e72c60100005d72c701000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72c801000055063c2f6469763e72c90100005d72ca0100002855063c626f64793e72cb01000055073c2f626f64793e72cc0100005d72cd0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72ce01000055073c2f68746d6c3e72cf0100004e656565656555073c2f6469763e0a72d001000055463c64697620636c6173733d2273656374696f6e222069643d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e0a72d1010000558d3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d222369643922206e616d653d22702d706172656e74732d697465722d616e642d702d73656c662d616e642d706172656e74732d69746572223e702e706172656e74735f6974657220616e6420702e73656c665f616e645f706172656e74735f697465723c2f613e3c2f68323e0a72d20100006573550d302e302e31302e302e31302e3572d30100007d72d401000058120000007273745f687474705f61747472696275746572d50100005d72d60100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323322206e616d653d22687474702d6e6f64652d6d61726b65722d3233223e72d701000055043c2f613e72d80100005d72d90100002855453c64697620636c6173733d2273656374696f6e222069643d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e72da01000055063c2f6469763e72db0100005d72dc01000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72dd01000055063c2f6469763e72de0100005d72df01000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72e001000055063c2f6469763e72e10100005d72e20100002855063c626f64793e72e301000055073c2f626f64793e72e40100005d72e50100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72e601000055073c2f68746d6c3e72e70100004e656565656555073c2f6469763e0a72e8010000553f3c64697620636c6173733d2273656374696f6e222069643d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e0a72e901000055803c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313222206e616d653d2274657374696e672d776865746865722d612d706f736974696f6e2d69732d76616c6964223e54657374696e672077686574686572206120706f736974696f6e2069732076616c69643c2f613e3c2f68323e0a72ea0100006573550d302e302e31302e302e31302e3472eb0100007d72ec01000058120000007273745f687474705f61747472696275746572ed0100005d72ee0100002855463c6120636c6173733d22746172676574222069643d22687474702d6e6f64652d6d61726b65722d323122206e616d653d22687474702d6e6f64652d6d61726b65722d3231223e72ef01000055043c2f613e72f00100005d72f10100002855483c64697620636c6173733d2273656374696f6e222069643d22702d7369626c696e67732d697465722d616e642d702d666f6c6c6f77696e672d7369626c696e67732d69746572223e72f201000055063c2f6469763e72f30100005d72f401000028552e3c64697620636c6173733d2273656374696f6e222069643d2274726176657273696e672d6f75746c696e6573223e72f501000055063c2f6469763e72f60100005d72f701000028553f3c64697620636c6173733d22646f63756d656e74222069643d22636861707465722d372d736372697074696e672d6c656f2d776974682d707974686f6e223e72f801000055063c2f6469763e72f90100005d72fa0100002855063c626f64793e72fb01000055073c2f626f64793e72fc0100005d72fd0100002855433c68746d6c20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c2220786d6c3a6c616e673d22656e22206c616e673d22656e223e72fe01000055073c2f68746d6c3e72ff0100004e656565656555073c2f6469763e0a720002000055463c64697620636c6173733d2273656374696f6e222069643d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e0a7201020000558e3c68323e3c6120636c6173733d22746f632d6261636b7265662220687265663d22236964313122206e616d653d22702d737562747265652d697465722d616e642d702d73656c662d616e642d737562747265652d69746572223e702e737562747265655f6974657220616e6420702e73656c665f616e645f737562747265655f697465723c2f613e3c2f68323e0a72020200006573752e"
@@ -89,7 +89,7 @@
89</v>89</v>
90</v>90</v>
91</v>91</v>
92<v t="edream.110203163054.46"><vh>Release Notes</vh>92<v t="edream.110203163054.46" a="E"><vh>Release Notes</vh>
93<v t="edream.110203163054.117"><vh>Previous versions...</vh>93<v t="edream.110203163054.117"><vh>Previous versions...</vh>
94<v t="ekr.20050210102358"><vh>4.0... New read logic eliminates read errors, eliminated child indices</vh>94<v t="ekr.20050210102358"><vh>4.0... New read logic eliminates read errors, eliminated child indices</vh>
95<v t="edream.110203163054.66"><vh>4.0.1 through 4.0.4</vh></v>95<v t="edream.110203163054.66"><vh>4.0.1 through 4.0.4</vh></v>
@@ -1996,23 +1996,6 @@
1996</v>1996</v>
1997</v>1997</v>
1998</v>1998</v>
1999</v>
2000</v>
2001<v t="edream.110203163054.63"><vh>Latest version</vh>
2002<v t="ekr.20090324145450.20"><vh>What's New in Leo 4.6</vh>
2003<v t="ekr.20090324145450.21"><vh>@rst html\new-4-6.html</vh>
2004<v t="ekr.20090324145450.22"><vh>@rst-no-head links</vh></v>
2005<v t="ekr.20090620073906.12095"><vh>Improved unit testing</vh></v>
2006<v t="ekr.20090324145450.23" a="M"><vh>Improved file handling</vh></v>
2007<v t="ekr.20090620082840.5608"><vh>Improved handling of rST files</vh></v>
2008<v t="ekr.20090324145450.27"><vh>New code features</vh></v>
2009<v t="ekr.20090324145450.36"><vh>New command-line options</vh></v>
2010<v t="ekr.20090324145450.40"><vh>New commands</vh></v>
2011<v t="ekr.20090324145450.46"><vh>New and improved directives</vh></v>
2012<v t="ekr.20090324145450.49" a="M"><vh>New settings</vh></v>
2013<v t="ekr.20090324145450.54"><vh>Plugins</vh></v>
2014</v>
2015</v>
2016<v t="ekr.20090717084250.10808"><vh>4.6 final</vh>1999<v t="ekr.20090717084250.10808"><vh>4.6 final</vh>
2017<v t="ekr.20090717084250.10809"><vh>Bug fixes</vh>2000<v t="ekr.20090717084250.10809"><vh>Bug fixes</vh>
2018<v t="ekr.20090717084250.10810"><vh>Bugs fixed in 4.6 b2</vh>2001<v t="ekr.20090717084250.10810"><vh>Bugs fixed in 4.6 b2</vh>
@@ -2132,6 +2115,140 @@
2132</v>2115</v>
2133</v>2116</v>
2134</v>2117</v>
2118<v t="edream.110203163054.63" a="E"><vh>Latest version</vh>
2119<v t="ekr.20090324145450.20"><vh>What's New in Leo 4.6</vh>
2120<v t="ekr.20090324145450.21"><vh>@rst html\new-4-6.html</vh>
2121<v t="ekr.20090324145450.22"><vh>@rst-no-head links</vh></v>
2122<v t="ekr.20090620073906.12095"><vh>Improved unit testing</vh></v>
2123<v t="ekr.20090324145450.23" a="M"><vh>Improved file handling</vh></v>
2124<v t="ekr.20090620082840.5608"><vh>Improved handling of rST files</vh></v>
2125<v t="ekr.20090324145450.27"><vh>New code features</vh></v>
2126<v t="ekr.20090324145450.36"><vh>New command-line options</vh></v>
2127<v t="ekr.20090324145450.40"><vh>New commands</vh></v>
2128<v t="ekr.20090324145450.46"><vh>New and improved directives</vh></v>
2129<v t="ekr.20090324145450.49" a="M"><vh>New settings</vh></v>
2130<v t="ekr.20090324145450.54"><vh>Plugins</vh></v>
2131</v>
2132</v>
2133<v t="ekr.20090718092032.10405"><vh>4.6.1 final</vh>
2134<v t="ekr.20090718092032.10406"><vh>Bug fixes</vh>
2135<v t="ekr.20090718092032.10407"><vh>Bugs fixed in 4.6 b2</vh>
2136<v t="ekr.20090718092032.10408"><vh>Added patch for startup logic</vh></v>
2137<v t="ekr.20090718092032.10409"><vh>Allocate gnx's when nodes are created</vh></v>
2138<v t="ekr.20090718092032.10410"><vh>Allow block comments in private shadow files</vh></v>
2139<v t="ekr.20090718092032.10411"><vh>Compute delims from private shadow file as needed</vh></v>
2140<v t="ekr.20090718092032.10412"><vh>Don't copy @edit trees to outline</vh></v>
2141<v t="ekr.20090718092032.10413"><vh>Don't expand ancestors of @chapter node when selecting chapter</vh></v>
2142<v t="ekr.20090718092032.10414"><vh>Entries in recent files menu now have absolute paths</vh></v>
2143<v t="ekr.20090718092032.10415"><vh>Fixed (worked around) tk chapters bug</vh></v>
2144<v t="ekr.20090718092032.10416"><vh>Fixed @edit bug</vh></v>
2145<v t="ekr.20090718092032.10417"><vh>Fixed @shadow crasher</vh></v>
2146<v t="ekr.20090718092032.10418"><vh>Fixed @thin bug</vh></v>
2147<v t="ekr.20090718092032.10419"><vh>Fixed back-to-home so it works as expected</vh></v>
2148<v t="ekr.20090718092032.10420"><vh>Fixed bad @verbatim bug</vh></v>
2149<v t="ekr.20090718092032.10421"><vh>Fixed binding problem with notebook</vh></v>
2150<v t="ekr.20090718092032.10422"><vh>Fixed bug: sorting could revert headline changes</vh></v>
2151<v t="ekr.20090718092032.10423"><vh>Fixed crash when reading .zip files</vh></v>
2152<v t="ekr.20090718092032.10424"><vh>Fixed crasher when creating .leoID.txt</vh></v>
2153<v t="ekr.20090718092032.10425"><vh>Fixed dabbrev-expands bug</vh></v>
2154<v t="ekr.20090718092032.10426"><vh>Fixed elisp importer problem</vh></v>
2155<v t="ekr.20090718092032.10427"><vh>Fixed F10/11/12 key bug</vh></v>
2156<v t="ekr.20090718092032.10428"><vh>Fixed file bug re unicode characters</vh></v>
2157<v t="ekr.20090718092032.10429"><vh>Fixed hoist problems</vh></v>
2158<v t="ekr.20090718092032.10430"><vh>Fixed lost anchor bug page up/down</vh></v>
2159<v t="ekr.20090718092032.10431"><vh>Fixed minor @auto bug</vh></v>
2160<v t="ekr.20090718092032.10432"><vh>Fixed multiple-editor focus problems</vh></v>
2161<v t="ekr.20090718092032.10433"><vh>Fixed new command</vh></v>
2162<v t="ekr.20090718092032.10434"><vh>Fixed problems with change-all command</vh></v>
2163<v t="ekr.20090718092032.10435"><vh>Fixed read clone bug</vh></v>
2164<v t="ekr.20090718092032.10436"><vh>Fixed rst import bug</vh></v>
2165<v t="ekr.20090718092032.10437"><vh>Fixed rst3 problem</vh></v>
2166<v t="ekr.20090718092032.10438"><vh>Fixed seg-fault bug</vh></v>
2167<v t="ekr.20090718092032.10439"><vh>Fixed Shift-Arrow in headlines</vh></v>
2168<v t="ekr.20090718092032.10440"><vh>Fixed startup problem</vh></v>
2169<v t="ekr.20090718092032.10441"><vh>Fixed stubConfig problems</vh></v>
2170<v t="ekr.20090718092032.10442"><vh>Fixed undo bug</vh></v>
2171<v t="ekr.20090718092032.10443"><vh>Fixed vim bindings (dd) bug</vh></v>
2172<v t="ekr.20090718092032.10444"><vh>Investigated bug: File-&gt;Export-&gt;write failed due to incorrect path</vh></v>
2173<v t="ekr.20090718092032.10445"><vh>Investigated speed of external unit tests</vh></v>
2174<v t="ekr.20090718092032.10446"><vh>Made @url nodes work with qt gui</vh></v>
2175<v t="ekr.20090718092032.10447"><vh>Mark @&lt;file&gt; nodes dirty when @path nodes change</vh></v>
2176<v t="ekr.20090718092032.10448"><vh>Removed duplicate messages when opening non-existent .leo file</vh></v>
2177<v t="ekr.20090718092032.10449"><vh>Reversed messages about redefined keys</vh></v>
2178<v t="ekr.20090718092032.10450"><vh>Scroll commands now affect only scrollbars</vh></v>
2179</v>
2180<v t="ekr.20090718092032.10451"><vh>Bugs fixed in 4.6 b1</vh>
2181<v t="ekr.20090718092032.10452"><vh>Fixed goto-global-line crasher</vh></v>
2182<v t="ekr.20090718092032.10453"><vh>Fixed bug that prevented Leo from opening files on the XP desktop</vh></v>
2183<v t="ekr.20090718092032.10454"><vh>Save/restore tnodeList in atFile.write</vh></v>
2184<v t="ekr.20090718092032.10455"><vh>Paste outline problem</vh></v>
2185<v t="ekr.20090718092032.10456"><vh>Made sure $Home works for @nosent</vh></v>
2186<v t="ekr.20090718092032.10457"><vh>Fixed atFile unicode bug</vh></v>
2187<v t="ekr.20090718092032.10458"><vh>Fixed Mark Edgington's @shadow bug</vh></v>
2188<v t="ekr.20090718092032.10459"><vh>Fixed whitespace problems with @auto/@shadow</vh></v>
2189<v t="ekr.20090718092032.10460"><vh>Fixed nested @path problem</vh></v>
2190<v t="ekr.20090718092032.10461"><vh>Fixed encoding problems with rst3 plugin</vh></v>
2191<v t="ekr.20090718092032.10462"><vh>Fixed new rst3 crash</vh></v>
2192<v t="ekr.20090718092032.10463"><vh>Fixed two c syntax-coloring bugs</vh></v>
2193</v>
2194</v>
2195<v t="ekr.20090718092032.10464"><vh>New features</vh>
2196<v t="ekr.20090718092032.10465"><vh>New features in 4.6 b1</vh>
2197<v t="ekr.20090718092032.10466"><vh>Improved file handling</vh>
2198<v t="ekr.20090718092032.10467"><vh>Open a default .leo file if no other is specified</vh></v>
2199<v t="ekr.20090718092032.10468"><vh>Added escapes for underindented lines</vh></v>
2200<v t="ekr.20090718092032.10469"><vh>Warn when writing an externally changed file</vh></v>
2201</v>
2202<v t="ekr.20090718092032.10470"><vh>New code features</vh>
2203<v t="ekr.20090718092032.10471"><vh>Added autoCompleter.getExternalCompletions</vh></v>
2204<v t="ekr.20090718092032.10472"><vh>Added g.posList</vh></v>
2205<v t="ekr.20090718092032.10473"><vh>Better plugin info</vh></v>
2206<v t="ekr.20090718092032.10474"><vh>Added properties to leoNodes.py</vh></v>
2207<v t="ekr.20090718092032.10475"><vh>Added script to leoSettings.leo to ensure all menu items are valid</vh></v>
2208<v t="ekr.20090718092032.10476"><vh>Added c.config.getSettingSource</vh></v>
2209<v t="ekr.20090718092032.10477"><vh>Predefined 'self' in @test/@suite nodes</vh></v>
2210<v t="ekr.20090718092032.10478"><vh>Added c.getNodePath and c.getNodeFileName</vh></v>
2211</v>
2212<v t="ekr.20090718092032.10479"><vh>New command-line options</vh>
2213<v t="ekr.20090718092032.10480"><vh>Added -c option to specify config files</vh></v>
2214<v t="ekr.20090718092032.10481"><vh>Added support for --file=fileName command-line option</vh></v>
2215<v t="ekr.20090718092032.10482"><vh>Added support for --gui option</vh></v>
2216</v>
2217<v t="ekr.20090718092032.10483"><vh>New commands</vh>
2218<v t="ekr.20090718092032.10484"><vh>Added smart home (back-to-home) command</vh></v>
2219<v t="ekr.20090718092032.10485"><vh>The open command creates @edit nodes when opening non-.leo files</vh></v>
2220<v t="ekr.20090718092032.10486"><vh>added pdb minibuffer command</vh></v>
2221<v t="ekr.20090718092032.10487"><vh>Added support for smart_tab setting</vh></v>
2222<v t="ekr.20090718092032.10488"><vh>Improved isearch commands</vh></v>
2223</v>
2224<v t="ekr.20090718092032.10489"><vh>New and improved directives</vh>
2225<v t="ekr.20090718092032.10490"><vh>Added @nocolor-node directive</vh></v>
2226<v t="ekr.20090718092032.10491"><vh>Improved @path handling</vh></v>
2227</v>
2228<v t="ekr.20090718092032.10492"><vh>New settings</vh>
2229<v t="ekr.20090718092032.10493"><vh>Added better default fonts for Leo on Linux</vh></v>
2230<v t="ekr.20090718092032.10494"><vh>Added support for @int icon_bar_widgets_per_row setting</vh></v>
2231<v t="ekr.20090718092032.10495"><vh>Added support for meta keys</vh></v>
2232<v t="ekr.20090718092032.10496"><vh>Use myLeoSettings when opening leoSettings.leo</vh></v>
2233</v>
2234<v t="ekr.20090718092032.10497"><vh>Plugins</vh>
2235<v t="ekr.20090718092032.10498"><vh>Improved nav_buttons plugin and corresponding nodeHistory class</vh></v>
2236<v t="ekr.20090718092032.10499"><vh>Created qtGui and tkGui plugins</vh></v>
2237<v t="ekr.20090718092032.10500"><vh>Created leoGuiPluginsRef.leo</vh></v>
2238</v>
2239</v>
2240<v t="ekr.20090718092032.10501"><vh>New features in 4.6 b2</vh>
2241<v t="ekr.20090718092032.10502"><vh>Allow Leo to open any file</vh></v>
2242<v t="ekr.20090718092032.10503"><vh>Improved unit testing</vh></v>
2243<v t="ekr.20090718092032.10504"><vh>Leo tests syntax of .py files when saving them</vh></v>
2244<v t="ekr.20090718092032.10505"><vh>Made qt gui the default</vh></v>
2245<v t="ekr.20090718092032.10506"><vh>Support @auto-rst</vh></v>
2246</v>
2247<v t="ekr.20090718092032.10507"><vh>New features in 4.6 final</vh></v>
2248</v>
2249</v>
2250</v>
2251</v>
2135</vnodes>2252</vnodes>
2136<tnodes>2253<tnodes>
2137<t tx="EKR.20040518070558">Leo 4.2 alpha 2 May 18, 20042254<t tx="EKR.20040518070558">Leo 4.2 alpha 2 May 18, 2004
@@ -13971,6 +14088,7 @@
1397114088
13972http://leo-editor.googlegroups.com/web/625-leo-window.png?gda=Fjn-hkQAAACaem1_7XPo9S1KnEkCtDqka_lw8qfHa3YHzOgIlt5IjVd5eKdLdCg0nUt3E6wDF75V6u9SiETdg0Q2ffAyHU-dzc4BZkLnSFWX59nr5BxGqA14089http://leo-editor.googlegroups.com/web/625-leo-window.png?gda=Fjn-hkQAAACaem1_7XPo9S1KnEkCtDqka_lw8qfHa3YHzOgIlt5IjVd5eKdLdCg0nUt3E6wDF75V6u9SiETdg0Q2ffAyHU-dzc4BZkLnSFWX59nr5BxGqA
13973</t>14090</t>
14091<t tx="ekr.20090711120622.10447"></t>
13974<t tx="ekr.20090712122931.10453"></t>14092<t tx="ekr.20090712122931.10453"></t>
13975<t tx="ekr.20090717084250.10702"></t>14093<t tx="ekr.20090717084250.10702"></t>
13976<t tx="ekr.20090717084250.10703"></t>14094<t tx="ekr.20090717084250.10703"></t>
@@ -14352,6 +14470,388 @@
14352<t tx="ekr.20090717084250.10908"></t>14470<t tx="ekr.20090717084250.10908"></t>
14353<t tx="ekr.20090717084250.10909"></t>14471<t tx="ekr.20090717084250.10909"></t>
14354<t tx="ekr.20090717084250.10910">Leo now warns on dangerous writes to @thin and @file nodes.</t>14472<t tx="ekr.20090717084250.10910">Leo now warns on dangerous writes to @thin and @file nodes.</t>
14473<t tx="ekr.20090718092032.10405">Leo 4.6.1 final July 18, 2009
14474
14475Leo 4.6.1 final is now available at:
14476http://sourceforge.net/project/showfiles.php?group_id=3458&amp;package_id=29106
14477
14478Leo is a text editor, data organizer, project manager and much more. See:
14479http://webpages.charter.net/edreamleo/intro.html
14480
14481Leo 4.6.1 fixes two bugs in Leo 4.6:
14482
14483- Leo's signon is now printed properly.
14484- Opening a file from the File menu now leaves the new window on top.
14485
14486The highlights of Leo 4.6
14487--------------------------
14488
14489- Cached external files *greatly* reduces the time to load .leo files.
14490- Leo now features a modern Qt interface by default.
14491 Leo's legacy Tk interface can also be used.
14492- New --config, --file and --gui command-line options.
14493- Leo tests syntax of .py files when saving them.
14494- Leo can now open any kind of file into @edit nodes.
14495- @auto-rst nodes allow easy editing of reStructuredText files.
14496- Properties of commanders, positions and nodes simplify programming.
14497- Improved Leo's unit testing framework.
14498- Leo now requires Python 2.5 or later.
14499- Dozens of small improvements and bug fixes.
14500
14501Links:
14502------
14503Leo: http://webpages.charter.net/edreamleo/front.html
14504Forum: http://groups.google.com/group/leo-editor
14505Download: http://sourceforge.net/project/showfiles.php?group_id=3458
14506Bzr: http://code.launchpad.net/leo-editor/
14507Quotes: http://webpages.charter.net/edreamleo/testimonials.html</t>
14508<t tx="ekr.20090718092032.10406"></t>
14509<t tx="ekr.20090718092032.10407"></t>
14510<t tx="ekr.20090718092032.10408">A patch at the start of loadOnePlugin prevents leo from crashing and allows the
14511gui prompt for a leoID to come up.</t>
14512<t tx="ekr.20090718092032.10409">This is reasonable now that old-style file indices are rare.</t>
14513<t tx="ekr.20090718092032.10410">Html files are a good test case.</t>
14514<t tx="ekr.20090718092032.10411"></t>
14515<t tx="ekr.20090718092032.10412">http://bugs.launchpad.net/leo-editor/+bug/376634
14516
14517The fix was to putVnodes.</t>
14518<t tx="ekr.20090718092032.10413"></t>
14519<t tx="ekr.20090718092032.10414">http://bugs.launchpad.net/leo-editor/+bug/383204</t>
14520<t tx="ekr.20090718092032.10415">http://groups.google.com/group/leo-editor/browse_thread/thread/981c27d5c24c90f8</t>
14521<t tx="ekr.20090718092032.10416">The generated @nocolor line now ends with a newline.</t>
14522<t tx="ekr.20090718092032.10417">http://groups.google.com/group/leo-editor/browse_thread/thread/6cab5e676d4d75a0</t>
14523<t tx="ekr.20090718092032.10418">- Removed forceGnxOnPosition from leoImport.py and leoAtFile.py.
14524
14525- readStartNode now always uses root.v for the first node
14526 instead of calling createThinChild4</t>
14527<t tx="ekr.20090718092032.10419">https://bugs.launchpad.net/leo-editor/+bug/367462
14528
14529The expected/customary behaviour (one you get used to in almost every editor) is:
14530
14531End: always move to end of line
14532Home: Move to first visible chararacter on the line. When pressing home again, move to column zero. If Home is pressed one more time, move to first visible character again.
14533
14534This is also the way emacs behaves, though ctrl+a always moves to column zero.</t>
14535<t tx="ekr.20090718092032.10420">The @verbatim was being inserted into the outline.
14536</t>
14537<t tx="ekr.20090718092032.10421"></t>
14538<t tx="ekr.20090718092032.10422"></t>
14539<t tx="ekr.20090718092032.10423">The problem arose when reading a zipped file:
14540
14541 File "C:\Programme\Leo-4-6-b1\leo\core\leoFileCommands.py", line
145421265, in parse_leo_file
14543 s = theFile.read()
14544TypeError: read() takes at least 2 arguments (1 given)
14545saved: [zipped] Dive-into-Python-3.leo
14546</t>
14547<t tx="ekr.20090718092032.10424">exception loading plugin
14548Traceback (most recent call last):
14549
14550 File "C:\leo.repo\trunk\leo\core\leoPlugins.py", line 429, in loadOnePlugin
14551 loadedModulesFilesDict[moduleName] = g.app.config.enabledPluginsFileName
14552
14553AttributeError: StubConfig instance has no attribute 'enabledPluginsFileName'
14554
14555leoID='ekr'
14556.leoID.txt created in C:\Documents and Settings\HP_Administrator\My Documents\Edward\.leo
14557load </t>
14558<t tx="ekr.20090718092032.10425">http://bugs.launchpad.net/leo-editor/+bug/362048
14559
14560I have 'dabbrev-expands' bound to the F4 key. When I press F4 after
14561the word "freq" in a body pane containing the word "frequency" then
14562Leo 4.5.1 shows a hour-glass for a while before giving an empty
14563dabbrev-expand: prompt in the minibuffer.
14564
14565If I back up one character, putting point between the e and q and then
14566type F4, I get the expected behavior: the word "frequency" is inserted
14567immediately.
14568
14569What I did:
14570
14571- Removed "not ready messages".
14572- Made the code undoable.
14573- Added wimpy unit test.</t>
14574<t tx="ekr.20090718092032.10426"></t>
14575<t tx="ekr.20090718092032.10427">Added call to isFKey in k.handleUnboundKeys.
14576</t>
14577<t tx="ekr.20090718092032.10428">http://bugs.launchpad.net/leo-editor/+bug/376189</t>
14578<t tx="ekr.20090718092032.10429">http://bugs.launchpad.net/leo-editor/+bug/382221
14579</t>
14580<t tx="ekr.20090718092032.10430">http://bugs.launchpad.net/leo-editor/+bug/363403
14581
14582With a long body text you might place the cursor on a line, hold down Shift, and
14583PgDn several pages to select a large block of text. The last PgDn may overshoot
14584the range you want selected, so you should be able to use UpArrow to bring the
14585bottom of the range back up to where you want it. However, on the first UpArrow
14586the selection is lost and restarted from the current cursor position. I.e. you
14587end up with just one line selected, instead of trimming one line of the
14588selection of several pages, as intended.
14589</t>
14590<t tx="ekr.20090718092032.10431">http://bugs.launchpad.net/leo-editor/+bug/306671
14591
14592If a Leo editor window is opened, and the "NewHeadline" node is renamed to
14593"@auto &lt;path to some valid file&gt;", and then the "File-&gt;Read/Write-&gt;Read @auto
14594nodes" menu option is selected, the renamed node reverts to its previous name
14595("NewHeadline"), and nothing is loaded into the node.</t>
14596<t tx="ekr.20090718092032.10432">http://groups.google.com/group/leo-editor/browse_thread/thread/21bddd50f3400bdc?hl=en</t>
14597<t tx="ekr.20090718092032.10433">The outline wasn't being redrawn properly.</t>
14598<t tx="ekr.20090718092032.10434">http://groups.google.com/group/leo-editor/browse_thread/thread/430287018f9d773d
14599
14600The fix to minibufferFind.changeAll fixes a bug that is several years old.
14601The fix to findNextMatch fixes a bug that is likely much older than that.</t>
14602<t tx="ekr.20090718092032.10435"></t>
14603<t tx="ekr.20090718092032.10436"></t>
14604<t tx="ekr.20090718092032.10437">http://mail.google.com/mail/#inbox/11ef0076a3f4d866</t>
14605<t tx="ekr.20090718092032.10438">The crash happened inside the call to::
14606
14607 c.widgetWantsFocusNow(event.widget)
14608
14609in callAltXFunction. Actually, the crash happened later, in c.outerUpdate.
14610
14611A better fix would be to use wrappers for all edit widgets, and recalculate the
14612edit widget any it needs to be used.</t>
14613<t tx="ekr.20090718092032.10439"></t>
14614<t tx="ekr.20090718092032.10440">http://groups.google.com/group/leo-editor/browse_thread/thread/606277d73b193037</t>
14615<t tx="ekr.20090718092032.10441"></t>
14616<t tx="ekr.20090718092032.10442">onTextChanged in the qt gui was calling setUndoTypingParams, in many case
14617redundently and with bad params.
14618
14619It remains to be seen whether onTextChanged is ever needed. If it is, it may be
14620difficult to set the old selection properly.</t>
14621<t tx="ekr.20090718092032.10443">http://bugs.launchpad.net/leo-editor/+bug/353925
14622
14623The "kill-region" function did nothing when using the qt gui.
14624
14625The fix was to replace tag_ranges with w.getSelectionRange, etc.
14626This was the only call to tag_ranges in the core.</t>
14627<t tx="ekr.20090718092032.10444">http://bugs.launchpad.net/leo-editor/+bug/377907
14628
14629I'm going to mark this invalid, although the behavior is way too confusing.
14630
14631I added the following to the plugin's docstring:
14632
14633Configuration
14634~~~~~~~~~~~~~
14635
14636At present, the file leo/plugins/leo_to_html.ini contains configuration settings.
14637In particular, the default export path, "c:\" must be changed for *nix systems.
14638</t>
14639<t tx="ekr.20090718092032.10445">The problem is imports in the Commands ctor. When executed the first time from
14640the bridge the imports take about 3/4 sec. on my machine. There is nothing that
14641can or should be done. Ctrl-5 is still hugely faster than opening unitTest.leo!</t>
14642<t tx="ekr.20090718092032.10446"></t>
14643<t tx="ekr.20090718092032.10447"></t>
14644<t tx="ekr.20090718092032.10448"></t>
14645<t tx="ekr.20090718092032.10449">http://groups.google.com/group/leo-editor/browse_thread/thread/a04dcefbb672078f</t>
14646<t tx="ekr.20090718092032.10450"></t>
14647<t tx="ekr.20090718092032.10451"></t>
14648<t tx="ekr.20090718092032.10452"></t>
14649<t tx="ekr.20090718092032.10453"></t>
14650<t tx="ekr.20090718092032.10454">The code should save/restore, just as in the clean_file function (from scripts.leo)</t>
14651<t tx="ekr.20090718092032.10455">The problem was missing calls to initAfterLoad in c.new.</t>
14652<t tx="ekr.20090718092032.10456">http://groups.google.com/group/leo-editor/browse_thread/thread/f27e3514310a5c90</t>
14653<t tx="ekr.20090718092032.10457"></t>
14654<t tx="ekr.20090718092032.10458"></t>
14655<t tx="ekr.20090718092032.10459">Pulled trunk, got r1599
14656
14657python launchLeo.py leo/plugins/leoPlugins.leo
14658
14659go to
14660
14661Plugins--&gt;Graph world--&gt;@shadow backlink.py--&gt;backlink declarations
14662
14663All I did was add the full stop at the end of the docstring, but see
14664the diff:
14665
14666=== modified file 'leo/plugins/backlink.py'
14667--- leo/plugins/backlink.py 2009-02-19 18:16:01 +0000
14668+++ leo/plugins/backlink.py 2009-02-25 22:14:46 +0000
14669@@ -1,4 +1,4 @@
14670-'''Backlink - allow arbitrary links between nodes
14671+'''Backlink - allow arbitrary links between nodes.
14672 '''
14673
14674 # Notes
14675@@ -296,7 +296,7 @@
14676 break
14677 else:
14678 self.showMessage("Error: no such link")
14679-
14680+
14681 gcc = getattr(self.c, 'graphcanvasController')
14682 if gcc:
14683 gcc.update()
14684</t>
14685<t tx="ekr.20090718092032.10460">http://groups.google.com/group/leo-editor/browse_thread/thread/7d8325d055cbef30</t>
14686<t tx="ekr.20090718092032.10461">http://groups.google.com/group/leo-editor/browse_thread/thread/5f5219fedd977ec2
14687</t>
14688<t tx="ekr.20090718092032.10462">http://groups.google.com/group/leo-editor/browse_thread/thread/414137b93c7e4b90
14689
14690Calls g.makeAllNonExistentDirectories instead of os.mkdir.</t>
14691<t tx="ekr.20090718092032.10463">http://groups.google.com/group/leo-editor/browse_thread/thread/707a910f975f3715
14692
14693http://groups.google.com/group/leo-editor/browse_thread/thread/74c6ab4809bde980
14694
14695There were two separate bugs:
14696
146971. The eol_span and eol_span_regex now honor the mode's escape character.
14698
146992. colorRangeWithTag now colors delegates with the default tag color.
14700
14701No changes were made in modes/c.py or modes/c.xml.</t>
14702<t tx="ekr.20090718092032.10464"></t>
14703<t tx="ekr.20090718092032.10465"></t>
14704<t tx="ekr.20090718092032.10466"></t>
14705<t tx="ekr.20090718092032.10467">http://groups.google.com/group/leo-editor/browse_thread/thread/d6449236bc140713#
14706
14707Added support for @string default_leo_file = ~/.leo/workbook.leo</t>
14708<t tx="ekr.20090718092032.10468">@string underindent-escape-string = \-</t>
14709<t tx="ekr.20090718092032.10469">http://groups.google.com/group/leo-editor/browse_thread/thread/c80fd8375534afdf</t>
14710<t tx="ekr.20090718092032.10470"></t>
14711<t tx="ekr.20090718092032.10471">@nocolor
14712
14713http://groups.google.com/group/leo-editor/browse_thread/thread/4ad91984a6d0acac
14714
14715&gt; As I said, all I need would be is for leo to call callback/hook with
14716&gt; signature like
14717&gt; def complete(line-up-to-cursor, current_node) =&gt; list of strings
14718
14719The actual signature is:
14720
14721theObject,completionList = getExternalCompletions (self,s,p=None,language='python')
14722
14723p is used only to get the language, or you can set the language by hand.
14724
14725@color</t>
14726<t tx="ekr.20090718092032.10472"></t>
14727<t tx="ekr.20090718092032.10473">c.config.doEnabledPlugins sets g.app.config.enabledPluginsFileName</t>
14728<t tx="ekr.20090718092032.10474">p.b, p.h and p.gnx
14729t.b, t.h, t.gnx and t.u
14730v.b, v.h, v.gnx, and v.u</t>
14731<t tx="ekr.20090718092032.10475"></t>
14732<t tx="ekr.20090718092032.10476">c.config.getSettingSource('show_full_tracebacks_in_scripts')
14733returns the name of the file which Leo used to determine the setting
14734
14735- D indicates default settings.
14736- F indicates the file being loaded
14737- L indicates leoSettings.leo
14738- M indicates myLeoSettings.leo</t>
14739<t tx="ekr.20090718092032.10477"></t>
14740<t tx="ekr.20090718092032.10478">http://groups.google.com/group/leo-editor/browse_thread/thread/3b5f1232ecc6bba7</t>
14741<t tx="ekr.20090718092032.10479"></t>
14742<t tx="ekr.20090718092032.10480">@nocolor
14743
14744The setting is called -c or --config. The one-config-file arg no longer exists.
14745
14746http://groups.google.com/group/leo-editor/browse_thread/thread/f3f95d93bcd93b94
14747
14748Personally, I'd like to see another config file available via -c on
14749the command line:
14750(a common idiom)
14751
14752leo myproject.leo -c /usr/lib/myproject/myLeoSettings.leo
14753
14754or better yet:
14755
14756leo myproject.leo -c /etc/leo/style01.leo
14757leo myotherproject.leo -c /etc/leo/style02.leo
14758leo anotherproject.leo -c /etc/leo/style23.leo
14759
14760Each file opens in an editor with the shortcuts, buttons, commands,
14761plugins, appearance etc. that has been tuned for that data management task.
14762
14763or best yet:
14764
14765leo myproject.leo -c /usr/lib/python2.5/site-packages/leo/config/style94.leo
14766
14767==================
14768
14769http://groups.google.com/group/leo-editor/browse_thread/thread/b5a736089079acaf#
14770
14771Please, I think each file has a distinct and required role.
14772
14773- config/leoSettings.leo = Edward's base, required for a sane starting point
14774
14775- home/.leo/myLeoSettings.leo = adjust Edwards suggestions to taste
14776
14777- cwd/myLeoSettings.leo = provide a customized working environment in
14778this folder
14779
14780- leo -c /usr/lib/leo-editor/src/config/zope3_ide.leo =
14781 - open this file in a specialized environments, mine or community contributed
14782 - ...
14783
14784- currentfile/@settings =
14785 - I'm working on some customization ideas
14786 - Here, try out this Leo file I sent you, check out all the spiffy
14787modifications
14788
14789@color</t>
14790<t tx="ekr.20090718092032.10481">Only .zip and .leo extensions are allowed at present.</t>
14791<t tx="ekr.20090718092032.10482"></t>
14792<t tx="ekr.20090718092032.10483"></t>
14793<t tx="ekr.20090718092032.10484"></t>
14794<t tx="ekr.20090718092032.10485">http://groups.google.com/group/leo-editor/browse_thread/thread/3417ff5e9c02c626
14795
14796The open file dialog now shows all files by default.
14797Selecting a non-.leo file will load that file into a new node in the present outline.
14798
14799This plugs what may have been the biggest hole in Leo's history.
14800</t>
14801<t tx="ekr.20090718092032.10486">This works, but stops Leo in the middle of the command-handling logic.
14802
14803However, it is possible to pick up the commander by stepping out into
14804k.masterKeyHandler or k.masterCommandHandler. Using c, one can then get all
14805other info.</t>
14806<t tx="ekr.20090718092032.10487">- Tab = indent when there is a text selection
14807- Shift-Tab unindents always</t>
14808<t tx="ekr.20090718092032.10488">Escape now ends isearch
14809</t>
14810<t tx="ekr.20090718092032.10489"></t>
14811<t tx="ekr.20090718092032.10490"># Useful: we don't need a closing @color to enable coloring in descendants.</t>
14812<t tx="ekr.20090718092032.10491"></t>
14813<t tx="ekr.20090718092032.10492"></t>
14814<t tx="ekr.20090718092032.10493">http://groups.google.com/group/leo-editor/browse_thread/thread/f1c7c5134b95c77e
14815</t>
14816<t tx="ekr.20090718092032.10494"></t>
14817<t tx="ekr.20090718092032.10495">http://groups.google.com/group/leo-editor/browse_thread/thread/b6a39ed672a28c65?pli=1</t>
14818<t tx="ekr.20090718092032.10496">Changed config.get so that settings in leoSettings.leo are read *last*.
14819This means that myLeoSettings.leo will override leoSettings.leo,
14820even when leoSettings.leo is the local file.</t>
14821<t tx="ekr.20090718092032.10497"></t>
14822<t tx="ekr.20090718092032.10498"></t>
14823<t tx="ekr.20090718092032.10499"></t>
14824<t tx="ekr.20090718092032.10500">This contains all gui plugins.</t>
14825<t tx="ekr.20090718092032.10501"></t>
14826<t tx="ekr.20090718092032.10502">Leo can now open, for example, any .py file.
14827It will be put in an @edit node in an otherwise-empty outline.
14828
14829This allows Leo to be associated with the edit action of .py files.
14830Something like this::
14831
14832C:\Python26\python.exe "c:\leo.repo\trunk\launchLeo.py" --gui=qt %1 %2</t>
14833<t tx="ekr.20090718092032.10503">- leoDynamicTest.py now supports a --path argument giving the .leo file.
14834 This is so useful!
14835
14836- leoDynamicTest.py now honors the --silent argument.
14837
14838- leoTest.runUnitTestLeoFile runs all unit tests in a given .leo file
14839 in a separate process.
14840
14841- leoTest.runTestsExternally calls runUnitTestLeoFile after creating
14842 dynamicUnitTest.leo.
14843
14844- When reporting that no unit tests were found, all unit tests commands tell
14845 whether the entire outline or just the selected outline was searched.
14846 This fixes sometimes-misleading error messages.
14847
14848- test.leo contains a 'run-test.leo-tests' button.
14849
14850- leoPy.leo contains a 'run-all-core-tests' button.</t>
14851<t tx="ekr.20090718092032.10504"></t>
14852<t tx="ekr.20090718092032.10505"></t>
14853<t tx="ekr.20090718092032.10506"></t>
14854<t tx="ekr.20090718092032.10507">Leo now warns on dangerous writes to @thin and @file nodes.</t>
14355<t tx="ville.20090520232034.6345">g.app.gui.runScrolledMessageDialog(c=c, msg = u'rst:' + p.b)</t>14855<t tx="ville.20090520232034.6345">g.app.gui.runScrolledMessageDialog(c=c, msg = u'rst:' + p.b)</t>
14356<t tx="ville.20090705224948.5734">import os14856<t tx="ville.20090705224948.5734">import os
14357pos = c.find_h("@thin leoUserGuide.txt")[0]14857pos = c.find_h("@thin leoUserGuide.txt")[0]
1435814858
=== modified file 'leo/doc/PKG-INFO.TXT'
--- leo/doc/PKG-INFO.TXT 2009-07-09 14:33:18 +0000
+++ leo/doc/PKG-INFO.TXT 2009-07-18 14:35:31 +0000
@@ -1,6 +1,6 @@
1Metadata-Version: 1.01Metadata-Version: 1.0
2Name: leo2Name: leo
3Version: 4.6-rc13Version: 4.6.1-final
4Summary: Leo: Literate Editor with Outlines4Summary: Leo: Literate Editor with Outlines
5Home-page: http://webpages.charter.net/edreamleo/front.html5Home-page: http://webpages.charter.net/edreamleo/front.html
6Author: Edward K. Ream6Author: Edward K. Ream
77
=== modified file 'leo/doc/README.TXT'
--- leo/doc/README.TXT 2009-07-10 19:07:58 +0000
+++ leo/doc/README.TXT 2009-07-18 14:35:31 +0000
@@ -1,12 +1,17 @@
1Leo 4.6 release candidate 1 July 9, 20091Leo 4.6.1 final July 18, 2009
22
3Leo 4.6 rc1 is now available at:3Leo 4.6.1 final is now available at:
4http://sourceforge.net/project/showfiles.php?group_id=3458&package_id=291064http://sourceforge.net/project/showfiles.php?group_id=3458&package_id=29106
55
6Leo is a text editor, data organizer, project manager and much more. See:6Leo is a text editor, data organizer, project manager and much more. See:
7http://webpages.charter.net/edreamleo/intro.html7http://webpages.charter.net/edreamleo/intro.html
88
9The highlights of Leo 4.6:9Leo 4.6.1 fixes two bugs in Leo 4.6:
10
11- Leo's signon is now printed properly.
12- Opening a file from the File menu now leaves the new window on top.
13
14The highlights of Leo 4.6
10--------------------------15--------------------------
1116
12- Cached external files *greatly* reduces the time to load .leo files.17- Cached external files *greatly* reduces the time to load .leo files.
1318
=== modified file 'leo/plugins/nav_qt.py'
--- leo/plugins/nav_qt.py 2009-06-29 13:16:25 +0000
+++ leo/plugins/nav_qt.py 2009-07-24 21:00:30 +0000
@@ -88,15 +88,15 @@
88 #@+node:ville.20090518182905.7867:clickPrev88 #@+node:ville.20090518182905.7867:clickPrev
89 def clickPrev(self):89 def clickPrev(self):
90 c = self.c90 c = self.c
91 p = c.nodeHistory.goPrev()91 p = c.goPrevVisitedNode()
92 # g.trace(p)92 # g.trace(p)
93 if p: c.selectPosition(p)93 #if p: c.selectPosition(p)
9494
95 #@-node:ville.20090518182905.7867:clickPrev95 #@-node:ville.20090518182905.7867:clickPrev
96 #@+node:ville.20090518182905.7868:clickNext96 #@+node:ville.20090518182905.7868:clickNext
97 def clickNext(self):97 def clickNext(self):
98 c = self.c98 c = self.c
99 p = c.nodeHistory.goNext()99 p = c.goNextVisitedNode()
100 # g.trace(p)100 # g.trace(p)
101 if p: c.selectPosition(p)101 if p: c.selectPosition(p)
102 #@-node:ville.20090518182905.7868:clickNext102 #@-node:ville.20090518182905.7868:clickNext
103103
=== modified file 'leo/plugins/plugins_menu.py'
--- leo/plugins/plugins_menu.py 2009-06-19 13:56:12 +0000
+++ leo/plugins/plugins_menu.py 2009-07-22 15:16:22 +0000
@@ -476,6 +476,7 @@
476 def properties(self, event=None):476 def properties(self, event=None):
477 """Display a modal properties dialog for this plugin"""477 """Display a modal properties dialog for this plugin"""
478478
479 if g.app.gui.guiName() != 'tkinter': return
479480
480 if self.hasapply:481 if self.hasapply:
481482
482483
=== modified file 'leo/plugins/qtGui.py'
--- leo/plugins/qtGui.py 2009-07-18 13:46:03 +0000
+++ leo/plugins/qtGui.py 2009-07-24 15:35:43 +0000
@@ -7557,7 +7557,7 @@
7557 self.flag = True # Per-node enable/disable flag.7557 self.flag = True # Per-node enable/disable flag.
7558 self.killColorFlag = False7558 self.killColorFlag = False
7559 self.language = 'python' # set by scanColorDirectives.7559 self.language = 'python' # set by scanColorDirectives.
7560 self.max_chars_to_colorize = 100007560 self.max_chars_to_colorize = c.config.getInt('qt_max_colorized_chars') or 0
75617561
7562 # Step 2: create the highlighter.7562 # Step 2: create the highlighter.
7563 self.highlighter = leoQtSyntaxHighlighter(c,w,colorizer=self)7563 self.highlighter = leoQtSyntaxHighlighter(c,w,colorizer=self)
@@ -7577,7 +7577,7 @@
75777577
7578 self.count += 1 # For unit testing.7578 self.count += 1 # For unit testing.
75797579
7580 if len(p.b) > self.max_chars_to_colorize:7580 if len(p.b) > self.max_chars_to_colorize > 0:
7581 self.flag = False7581 self.flag = False
7582 elif self.enabled:7582 elif self.enabled:
7583 oldLanguage = self.language7583 oldLanguage = self.language
@@ -7691,7 +7691,7 @@
7691 trace = False and not g.unitTesting7691 trace = False and not g.unitTesting
7692 p = p.copy()7692 p = p.copy()
76937693
7694 if len(p.b) > self.max_chars_to_colorize:7694 if len(p.b) > self.max_chars_to_colorize > 0:
7695 self.flag = False7695 self.flag = False
7696 else:7696 else:
7697 # self.flag is True unless an unambiguous @nocolor is seen.7697 # self.flag is True unless an unambiguous @nocolor is seen.
76987698
=== modified file 'leo/test/unitTest.leo'
--- leo/test/unitTest.leo 2009-07-04 15:46:03 +0000
+++ leo/test/unitTest.leo 2009-07-25 11:19:51 +0000
@@ -3,7 +3,7 @@
3<leo_file>3<leo_file>
4<leo_header file_format="2" tnodes="0" max_tnode_index="0" clone_windows="0"/>4<leo_header file_format="2" tnodes="0" max_tnode_index="0" clone_windows="0"/>
5<globals body_outline_ratio="0.5">5<globals body_outline_ratio="0.5">
6 <global_window_position top="117" left="488" height="822" width="783"/>6 <global_window_position top="97" left="341" height="839" width="1133"/>
7 <global_log_window_position top="0" left="0" height="0" width="0"/>7 <global_log_window_position top="0" left="0" height="0" width="0"/>
8</globals>8</globals>
9<preferences/>9<preferences/>
@@ -2077,7 +2077,7 @@
2077</v>2077</v>
2078<v t="ekr.20040712101754.182"></v>2078<v t="ekr.20040712101754.182"></v>
2079</v>2079</v>
2080<v t="ekr.20040712101754.187" annotate="7d71002e"><vh> Position tests</vh>2080<v t="ekr.20040712101754.187" a="E" annotate="7d71002e"><vh> Position tests</vh>
2081<v t="ekr.20080418101332.1"><vh> Diabled tests</vh>2081<v t="ekr.20080418101332.1"><vh> Diabled tests</vh>
2082<v t="ekr.20040712101754.184"><vh>@@test consistency of p.v.t.vnodeList &amp; v.parents for cloned nodes</vh></v>2082<v t="ekr.20040712101754.184"><vh>@@test consistency of p.v.t.vnodeList &amp; v.parents for cloned nodes</vh></v>
2083<v t="ekr.20040712101754.208" annotate="7d71002e"><vh>@@test consistency of tnodeListAndParents</vh></v>2083<v t="ekr.20040712101754.208" annotate="7d71002e"><vh>@@test consistency of tnodeListAndParents</vh></v>
@@ -17411,6 +17411,12 @@
17411<t tx="ekr.20090102061858.2">child = p.insertAsLastChild()17411<t tx="ekr.20090102061858.2">child = p.insertAsLastChild()
17412assert c.positionExists(child)17412assert c.positionExists(child)
17413child.doDelete()17413child.doDelete()
17414assert not c.positionExists(child)
17415
17416# also check the same on root level
17417child = c.rootPosition().insertAfter()
17418assert c.positionExists(child)
17419child.doDelete()
17414assert not c.positionExists(child)</t>17420assert not c.positionExists(child)</t>
17415<t tx="ekr.20090102062037.2">root = c.rootPosition()17421<t tx="ekr.20090102062037.2">root = c.rootPosition()
1741617422

Subscribers

People subscribed via source and target branches

to status/vote changes: