Show More
@@ -36,7 +36,6 b' from . import (' | |||||
36 |
|
36 | |||
37 | from .utils import ( |
|
37 | from .utils import ( | |
38 | interfaceutil, |
|
38 | interfaceutil, | |
39 | stringutil, |
|
|||
40 | ) |
|
39 | ) | |
41 |
|
40 | |||
42 | _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s") |
|
41 | _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s") | |
@@ -537,11 +536,11 b' def _revisiondeltatochunks(delta, header' | |||||
537 | yield prefix |
|
536 | yield prefix | |
538 | yield data |
|
537 | yield data | |
539 |
|
538 | |||
540 |
def _sortnodesnormal(store, nodes |
|
539 | def _sortnodesnormal(store, nodes): | |
541 | """Sort nodes for changegroup generation and turn into revnums.""" |
|
540 | """Sort nodes for changegroup generation and turn into revnums.""" | |
542 | # for generaldelta revlogs, we linearize the revs; this will both be |
|
541 | # for generaldelta revlogs, we linearize the revs; this will both be | |
543 | # much quicker and generate a much smaller bundle |
|
542 | # much quicker and generate a much smaller bundle | |
544 |
if |
|
543 | if store._generaldelta: | |
545 | revs = set(store.rev(n) for n in nodes) |
|
544 | revs = set(store.rev(n) for n in nodes) | |
546 | return dagop.linearize(revs, store.parentrevs) |
|
545 | return dagop.linearize(revs, store.parentrevs) | |
547 | else: |
|
546 | else: | |
@@ -656,7 +655,6 b' def _makenarrowdeltarequest(cl, store, i' | |||||
656 | ) |
|
655 | ) | |
657 |
|
656 | |||
658 | def deltagroup(repo, store, nodes, ischangelog, lookup, forcedeltaparentprev, |
|
657 | def deltagroup(repo, store, nodes, ischangelog, lookup, forcedeltaparentprev, | |
659 | allowreorder, |
|
|||
660 | topic=None, |
|
658 | topic=None, | |
661 | ellipses=False, clrevtolocalrev=None, fullclnodes=None, |
|
659 | ellipses=False, clrevtolocalrev=None, fullclnodes=None, | |
662 | precomputedellipsis=None): |
|
660 | precomputedellipsis=None): | |
@@ -691,7 +689,7 b' def deltagroup(repo, store, nodes, ischa' | |||||
691 | elif ellipses: |
|
689 | elif ellipses: | |
692 | revs = _sortnodesellipsis(store, nodes, cl, lookup) |
|
690 | revs = _sortnodesellipsis(store, nodes, cl, lookup) | |
693 | else: |
|
691 | else: | |
694 |
revs = _sortnodesnormal(store, nodes |
|
692 | revs = _sortnodesnormal(store, nodes) | |
695 |
|
693 | |||
696 | # In the first pass, collect info about the deltas we'll be |
|
694 | # In the first pass, collect info about the deltas we'll be | |
697 | # generating. |
|
695 | # generating. | |
@@ -756,7 +754,7 b' def deltagroup(repo, store, nodes, ischa' | |||||
756 | progress.complete() |
|
754 | progress.complete() | |
757 |
|
755 | |||
758 | class cgpacker(object): |
|
756 | class cgpacker(object): | |
759 |
def __init__(self, repo, filematcher, version, |
|
757 | def __init__(self, repo, filematcher, version, | |
760 | builddeltaheader, manifestsend, |
|
758 | builddeltaheader, manifestsend, | |
761 | forcedeltaparentprev=False, |
|
759 | forcedeltaparentprev=False, | |
762 | bundlecaps=None, ellipses=False, |
|
760 | bundlecaps=None, ellipses=False, | |
@@ -766,10 +764,6 b' class cgpacker(object):' | |||||
766 | filematcher is a matcher that matches on files to include in the |
|
764 | filematcher is a matcher that matches on files to include in the | |
767 | changegroup. Used to facilitate sparse changegroups. |
|
765 | changegroup. Used to facilitate sparse changegroups. | |
768 |
|
766 | |||
769 | allowreorder controls whether reordering of revisions is allowed. |
|
|||
770 | This value is used when ``bundle.reorder`` is ``auto`` or isn't |
|
|||
771 | set. |
|
|||
772 |
|
||||
773 | forcedeltaparentprev indicates whether delta parents must be against |
|
767 | forcedeltaparentprev indicates whether delta parents must be against | |
774 | the previous revision in a delta group. This should only be used for |
|
768 | the previous revision in a delta group. This should only be used for | |
775 | compatibility with changegroup version 1. |
|
769 | compatibility with changegroup version 1. | |
@@ -813,13 +807,6 b' class cgpacker(object):' | |||||
813 | # Maps ellipsis revs to their roots at the changelog level. |
|
807 | # Maps ellipsis revs to their roots at the changelog level. | |
814 | self._precomputedellipsis = ellipsisroots |
|
808 | self._precomputedellipsis = ellipsisroots | |
815 |
|
809 | |||
816 | # experimental config: bundle.reorder |
|
|||
817 | reorder = repo.ui.config('bundle', 'reorder') |
|
|||
818 | if reorder == 'auto': |
|
|||
819 | self._reorder = allowreorder |
|
|||
820 | else: |
|
|||
821 | self._reorder = stringutil.parsebool(reorder) |
|
|||
822 |
|
||||
823 | self._repo = repo |
|
810 | self._repo = repo | |
824 |
|
811 | |||
825 | if self._repo.ui.verbose and not self._repo.ui.debugflag: |
|
812 | if self._repo.ui.verbose and not self._repo.ui.debugflag: | |
@@ -862,17 +849,16 b' class cgpacker(object):' | |||||
862 | # The fastpath is usually safer than the slowpath, because the filelogs |
|
849 | # The fastpath is usually safer than the slowpath, because the filelogs | |
863 | # are walked in revlog order. |
|
850 | # are walked in revlog order. | |
864 | # |
|
851 | # | |
865 |
# When taking the slowpath w |
|
852 | # When taking the slowpath when the manifest revlog uses generaldelta, | |
866 |
# |
|
853 | # the manifest may be walked in the "wrong" order. Without 'clrevorder', | |
867 |
# |
|
854 | # we would get an incorrect linkrev (see fix in cc0ff93d0c0c). | |
868 | # cc0ff93d0c0c). |
|
|||
869 | # |
|
855 | # | |
870 | # When taking the fastpath, we are only vulnerable to reordering |
|
856 | # When taking the fastpath, we are only vulnerable to reordering | |
871 |
# of the changelog itself. The changelog never uses generaldelta |
|
857 | # of the changelog itself. The changelog never uses generaldelta and is | |
872 |
# |
|
858 | # never reordered. To handle this case, we simply take the slowpath, | |
873 |
# |
|
859 | # which already has the 'clrevorder' logic. This was also fixed in | |
874 |
# |
|
860 | # cc0ff93d0c0c. | |
875 | fastpathlinkrev = fastpathlinkrev and not self._reorder |
|
861 | ||
876 | # Treemanifests don't work correctly with fastpathlinkrev |
|
862 | # Treemanifests don't work correctly with fastpathlinkrev | |
877 | # either, because we don't discover which directory nodes to |
|
863 | # either, because we don't discover which directory nodes to | |
878 | # send along with files. This could probably be fixed. |
|
864 | # send along with files. This could probably be fixed. | |
@@ -1003,8 +989,6 b' class cgpacker(object):' | |||||
1003 | gen = deltagroup( |
|
989 | gen = deltagroup( | |
1004 | self._repo, cl, nodes, True, lookupcl, |
|
990 | self._repo, cl, nodes, True, lookupcl, | |
1005 | self._forcedeltaparentprev, |
|
991 | self._forcedeltaparentprev, | |
1006 | # Reorder settings are currently ignored for changelog. |
|
|||
1007 | True, |
|
|||
1008 | ellipses=self._ellipses, |
|
992 | ellipses=self._ellipses, | |
1009 | topic=_('changesets'), |
|
993 | topic=_('changesets'), | |
1010 | clrevtolocalrev={}, |
|
994 | clrevtolocalrev={}, | |
@@ -1087,7 +1071,7 b' class cgpacker(object):' | |||||
1087 |
|
1071 | |||
1088 | deltas = deltagroup( |
|
1072 | deltas = deltagroup( | |
1089 | self._repo, store, prunednodes, False, lookupfn, |
|
1073 | self._repo, store, prunednodes, False, lookupfn, | |
1090 |
self._forcedeltaparentprev, |
|
1074 | self._forcedeltaparentprev, | |
1091 | ellipses=self._ellipses, |
|
1075 | ellipses=self._ellipses, | |
1092 | topic=_('manifests'), |
|
1076 | topic=_('manifests'), | |
1093 | clrevtolocalrev=clrevtolocalrev, |
|
1077 | clrevtolocalrev=clrevtolocalrev, | |
@@ -1184,7 +1168,7 b' class cgpacker(object):' | |||||
1184 |
|
1168 | |||
1185 | deltas = deltagroup( |
|
1169 | deltas = deltagroup( | |
1186 | self._repo, filerevlog, filenodes, False, lookupfilelog, |
|
1170 | self._repo, filerevlog, filenodes, False, lookupfilelog, | |
1187 |
self._forcedeltaparentprev, |
|
1171 | self._forcedeltaparentprev, | |
1188 | ellipses=self._ellipses, |
|
1172 | ellipses=self._ellipses, | |
1189 | clrevtolocalrev=clrevtolocalrev, |
|
1173 | clrevtolocalrev=clrevtolocalrev, | |
1190 | fullclnodes=self._fullclnodes, |
|
1174 | fullclnodes=self._fullclnodes, | |
@@ -1200,7 +1184,6 b' def _makecg1packer(repo, filematcher, bu' | |||||
1200 | d.node, d.p1node, d.p2node, d.linknode) |
|
1184 | d.node, d.p1node, d.p2node, d.linknode) | |
1201 |
|
1185 | |||
1202 | return cgpacker(repo, filematcher, b'01', |
|
1186 | return cgpacker(repo, filematcher, b'01', | |
1203 | allowreorder=None, |
|
|||
1204 | builddeltaheader=builddeltaheader, |
|
1187 | builddeltaheader=builddeltaheader, | |
1205 | manifestsend=b'', |
|
1188 | manifestsend=b'', | |
1206 | forcedeltaparentprev=True, |
|
1189 | forcedeltaparentprev=True, | |
@@ -1215,11 +1198,7 b' def _makecg2packer(repo, filematcher, bu' | |||||
1215 | builddeltaheader = lambda d: _CHANGEGROUPV2_DELTA_HEADER.pack( |
|
1198 | builddeltaheader = lambda d: _CHANGEGROUPV2_DELTA_HEADER.pack( | |
1216 | d.node, d.p1node, d.p2node, d.basenode, d.linknode) |
|
1199 | d.node, d.p1node, d.p2node, d.basenode, d.linknode) | |
1217 |
|
1200 | |||
1218 | # Since generaldelta is directly supported by cg2, reordering |
|
|||
1219 | # generally doesn't help, so we disable it by default (treating |
|
|||
1220 | # bundle.reorder=auto just like bundle.reorder=False). |
|
|||
1221 | return cgpacker(repo, filematcher, b'02', |
|
1201 | return cgpacker(repo, filematcher, b'02', | |
1222 | allowreorder=False, |
|
|||
1223 | builddeltaheader=builddeltaheader, |
|
1202 | builddeltaheader=builddeltaheader, | |
1224 | manifestsend=b'', |
|
1203 | manifestsend=b'', | |
1225 | bundlecaps=bundlecaps, |
|
1204 | bundlecaps=bundlecaps, | |
@@ -1234,7 +1213,6 b' def _makecg3packer(repo, filematcher, bu' | |||||
1234 | d.node, d.p1node, d.p2node, d.basenode, d.linknode, d.flags) |
|
1213 | d.node, d.p1node, d.p2node, d.basenode, d.linknode, d.flags) | |
1235 |
|
1214 | |||
1236 | return cgpacker(repo, filematcher, b'03', |
|
1215 | return cgpacker(repo, filematcher, b'03', | |
1237 | allowreorder=False, |
|
|||
1238 | builddeltaheader=builddeltaheader, |
|
1216 | builddeltaheader=builddeltaheader, | |
1239 | manifestsend=closechunk(), |
|
1217 | manifestsend=closechunk(), | |
1240 | bundlecaps=bundlecaps, |
|
1218 | bundlecaps=bundlecaps, |
@@ -161,10 +161,6 b" coreconfigitem('bookmarks', 'pushing'," | |||||
161 | coreconfigitem('bundle', 'mainreporoot', |
|
161 | coreconfigitem('bundle', 'mainreporoot', | |
162 | default='', |
|
162 | default='', | |
163 | ) |
|
163 | ) | |
164 | # bundle.reorder: experimental config |
|
|||
165 | coreconfigitem('bundle', 'reorder', |
|
|||
166 | default='auto', |
|
|||
167 | ) |
|
|||
168 | coreconfigitem('censor', 'policy', |
|
164 | coreconfigitem('censor', 'policy', | |
169 | default='abort', |
|
165 | default='abort', | |
170 | ) |
|
166 | ) |
@@ -279,61 +279,61 b' test maxdeltachainspan' | |||||
279 | 14 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
279 | 14 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
280 | $ hg -R relax-chain debugdeltachain -m |
|
280 | $ hg -R relax-chain debugdeltachain -m | |
281 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio |
|
281 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | |
282 |
0 1 1 -1 base 46 4 |
|
282 | 0 1 1 -1 base 47 46 47 1.02174 47 0 0.00000 | |
283 |
1 1 2 0 p1 5 |
|
283 | 1 1 2 0 p1 58 92 105 1.14130 105 0 0.00000 | |
284 |
2 1 3 1 p1 5 |
|
284 | 2 1 3 1 p1 58 138 163 1.18116 163 0 0.00000 | |
285 |
3 1 4 2 p1 5 |
|
285 | 3 1 4 2 p1 58 184 221 1.20109 221 0 0.00000 | |
286 |
4 1 5 3 p1 5 |
|
286 | 4 1 5 3 p1 58 230 279 1.21304 279 0 0.00000 | |
287 |
5 1 6 4 p1 5 |
|
287 | 5 1 6 4 p1 58 276 337 1.22101 337 0 0.00000 | |
288 |
6 |
|
288 | 6 1 7 5 p1 58 322 395 1.22671 395 0 0.00000 | |
289 |
7 |
|
289 | 7 1 8 6 p1 58 368 453 1.23098 453 0 0.00000 | |
290 |
8 |
|
290 | 8 1 9 7 p1 58 414 511 1.23430 511 0 0.00000 | |
291 |
9 |
|
291 | 9 1 10 8 p1 58 460 569 1.23696 569 0 0.00000 | |
292 |
10 |
|
292 | 10 1 11 9 p1 58 506 627 1.23913 627 0 0.00000 | |
293 |
11 |
|
293 | 11 1 12 10 p1 58 552 685 1.24094 685 0 0.00000 | |
294 |
12 |
|
294 | 12 1 13 11 p1 58 598 743 1.24247 743 0 0.00000 | |
295 |
13 |
|
295 | 13 1 14 12 p1 58 644 801 1.24379 801 0 0.00000 | |
296 |
14 |
|
296 | 14 1 15 13 p1 58 690 859 1.24493 859 0 0.00000 | |
297 |
15 |
|
297 | 15 1 16 14 p1 58 736 917 1.24592 917 0 0.00000 | |
298 |
16 |
|
298 | 16 1 17 15 p1 58 782 975 1.24680 975 0 0.00000 | |
299 |
17 |
|
299 | 17 1 18 16 p1 58 828 1033 1.24758 1033 0 0.00000 | |
300 |
18 |
|
300 | 18 1 19 17 p1 58 874 1091 1.24828 1091 0 0.00000 | |
301 |
19 |
|
301 | 19 1 20 18 p1 58 920 1149 1.24891 1149 0 0.00000 | |
302 |
20 |
|
302 | 20 1 21 19 p1 58 966 1207 1.24948 1207 0 0.00000 | |
303 |
21 |
|
303 | 21 1 22 20 p1 58 1012 1265 1.25000 1265 0 0.00000 | |
304 |
22 |
|
304 | 22 1 23 21 p1 58 1058 1323 1.25047 1323 0 0.00000 | |
305 |
23 |
|
305 | 23 1 24 22 p1 58 1104 1381 1.25091 1381 0 0.00000 | |
306 |
24 |
|
306 | 24 1 25 23 p1 58 1150 1439 1.25130 1439 0 0.00000 | |
307 |
25 |
|
307 | 25 1 26 24 p1 58 1196 1497 1.25167 1497 0 0.00000 | |
308 |
26 |
|
308 | 26 1 27 25 p1 58 1242 1555 1.25201 1555 0 0.00000 | |
309 |
27 |
|
309 | 27 1 28 26 p1 58 1288 1613 1.25233 1613 0 0.00000 | |
310 |
28 |
|
310 | 28 1 29 27 p1 58 1334 1671 1.25262 1671 0 0.00000 | |
311 |
29 |
|
311 | 29 1 30 28 p1 58 1380 1729 1.25290 1729 0 0.00000 | |
312 |
30 |
|
312 | 30 1 31 29 p1 58 1426 1787 1.25316 1787 0 0.00000 | |
313 |
31 |
|
313 | 31 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 | |
314 |
32 |
|
314 | 32 2 2 31 p1 57 90 103 1.14444 103 0 0.00000 | |
315 |
33 3 |
|
315 | 33 2 3 32 p1 57 135 160 1.18519 160 0 0.00000 | |
316 |
34 |
|
316 | 34 2 4 33 p1 57 180 217 1.20556 217 0 0.00000 | |
317 |
35 |
|
317 | 35 2 5 34 p1 57 225 274 1.21778 274 0 0.00000 | |
318 |
36 |
|
318 | 36 2 6 35 p1 57 270 331 1.22593 331 0 0.00000 | |
319 |
37 |
|
319 | 37 2 7 36 p1 58 316 389 1.23101 389 0 0.00000 | |
320 |
38 |
|
320 | 38 2 8 37 p1 58 362 447 1.23481 447 0 0.00000 | |
321 | 39 3 22 38 p1 58 1012 1265 1.25000 1265 0 0.00000 |
|
321 | 39 3 1 -1 base 46 45 46 1.02222 46 0 0.00000 | |
322 |
40 3 2 |
|
322 | 40 3 2 39 p1 57 90 103 1.14444 103 0 0.00000 | |
323 |
41 3 |
|
323 | 41 3 3 40 p1 57 135 160 1.18519 160 0 0.00000 | |
324 |
42 3 |
|
324 | 42 3 4 41 p1 57 180 217 1.20556 217 0 0.00000 | |
325 |
43 3 |
|
325 | 43 3 5 42 p1 58 226 275 1.21681 275 0 0.00000 | |
326 |
44 3 |
|
326 | 44 3 6 43 p1 58 272 333 1.22426 333 0 0.00000 | |
327 |
45 3 |
|
327 | 45 3 7 44 p1 58 318 391 1.22956 391 0 0.00000 | |
328 |
46 3 |
|
328 | 46 3 8 45 p1 58 364 449 1.23352 449 0 0.00000 | |
329 |
47 3 |
|
329 | 47 3 9 46 p1 58 410 507 1.23659 507 0 0.00000 | |
330 |
48 3 |
|
330 | 48 3 10 47 p1 58 456 565 1.23904 565 0 0.00000 | |
331 | 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 |
|
331 | 49 3 11 48 p1 58 502 623 1.24104 623 0 0.00000 | |
332 |
50 |
|
332 | 50 3 12 49 p1 58 548 681 1.24270 681 0 0.00000 | |
333 |
51 |
|
333 | 51 3 13 50 p1 58 594 739 1.24411 739 0 0.00000 | |
334 |
52 |
|
334 | 52 3 14 51 p1 58 640 797 1.24531 797 0 0.00000 | |
335 |
53 |
|
335 | 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 | |
336 |
54 |
|
336 | 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 | |
337 | $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.generaldelta=yes |
|
337 | $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.generaldelta=yes | |
338 | requesting all changes |
|
338 | requesting all changes | |
339 | adding changesets |
|
339 | adding changesets | |
@@ -345,58 +345,58 b' test maxdeltachainspan' | |||||
345 | 14 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
345 | 14 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
346 | $ hg -R noconst-chain debugdeltachain -m |
|
346 | $ hg -R noconst-chain debugdeltachain -m | |
347 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio |
|
347 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | |
348 |
0 1 1 -1 base 46 4 |
|
348 | 0 1 1 -1 base 47 46 47 1.02174 47 0 0.00000 | |
349 |
1 1 2 0 p1 5 |
|
349 | 1 1 2 0 p1 58 92 105 1.14130 105 0 0.00000 | |
350 |
2 1 3 1 p1 5 |
|
350 | 2 1 3 1 p1 58 138 163 1.18116 163 0 0.00000 | |
351 |
3 1 4 2 p1 5 |
|
351 | 3 1 4 2 p1 58 184 221 1.20109 221 0 0.00000 | |
352 |
4 1 5 3 p1 5 |
|
352 | 4 1 5 3 p1 58 230 279 1.21304 279 0 0.00000 | |
353 |
5 1 6 4 p1 5 |
|
353 | 5 1 6 4 p1 58 276 337 1.22101 337 0 0.00000 | |
354 |
6 |
|
354 | 6 1 7 5 p1 58 322 395 1.22671 395 0 0.00000 | |
355 |
7 |
|
355 | 7 1 8 6 p1 58 368 453 1.23098 453 0 0.00000 | |
356 |
8 |
|
356 | 8 1 9 7 p1 58 414 511 1.23430 511 0 0.00000 | |
357 |
9 |
|
357 | 9 1 10 8 p1 58 460 569 1.23696 569 0 0.00000 | |
358 |
10 |
|
358 | 10 1 11 9 p1 58 506 627 1.23913 627 0 0.00000 | |
359 |
11 |
|
359 | 11 1 12 10 p1 58 552 685 1.24094 685 0 0.00000 | |
360 |
12 |
|
360 | 12 1 13 11 p1 58 598 743 1.24247 743 0 0.00000 | |
361 |
13 |
|
361 | 13 1 14 12 p1 58 644 801 1.24379 801 0 0.00000 | |
362 |
14 |
|
362 | 14 1 15 13 p1 58 690 859 1.24493 859 0 0.00000 | |
363 |
15 |
|
363 | 15 1 16 14 p1 58 736 917 1.24592 917 0 0.00000 | |
364 |
16 |
|
364 | 16 1 17 15 p1 58 782 975 1.24680 975 0 0.00000 | |
365 |
17 |
|
365 | 17 1 18 16 p1 58 828 1033 1.24758 1033 0 0.00000 | |
366 |
18 |
|
366 | 18 1 19 17 p1 58 874 1091 1.24828 1091 0 0.00000 | |
367 |
19 |
|
367 | 19 1 20 18 p1 58 920 1149 1.24891 1149 0 0.00000 | |
368 |
20 |
|
368 | 20 1 21 19 p1 58 966 1207 1.24948 1207 0 0.00000 | |
369 |
21 |
|
369 | 21 1 22 20 p1 58 1012 1265 1.25000 1265 0 0.00000 | |
370 |
22 |
|
370 | 22 1 23 21 p1 58 1058 1323 1.25047 1323 0 0.00000 | |
371 |
23 |
|
371 | 23 1 24 22 p1 58 1104 1381 1.25091 1381 0 0.00000 | |
372 |
24 |
|
372 | 24 1 25 23 p1 58 1150 1439 1.25130 1439 0 0.00000 | |
373 |
25 |
|
373 | 25 1 26 24 p1 58 1196 1497 1.25167 1497 0 0.00000 | |
374 |
26 |
|
374 | 26 1 27 25 p1 58 1242 1555 1.25201 1555 0 0.00000 | |
375 |
27 |
|
375 | 27 1 28 26 p1 58 1288 1613 1.25233 1613 0 0.00000 | |
376 |
28 |
|
376 | 28 1 29 27 p1 58 1334 1671 1.25262 1671 0 0.00000 | |
377 |
29 |
|
377 | 29 1 30 28 p1 58 1380 1729 1.25290 1729 0 0.00000 | |
378 |
30 |
|
378 | 30 1 31 29 p1 58 1426 1787 1.25316 1787 0 0.00000 | |
379 |
31 |
|
379 | 31 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 | |
380 |
32 |
|
380 | 32 2 2 31 p1 57 90 103 1.14444 103 0 0.00000 | |
381 |
33 3 |
|
381 | 33 2 3 32 p1 57 135 160 1.18519 160 0 0.00000 | |
382 |
34 |
|
382 | 34 2 4 33 p1 57 180 217 1.20556 217 0 0.00000 | |
383 |
35 |
|
383 | 35 2 5 34 p1 57 225 274 1.21778 274 0 0.00000 | |
384 |
36 |
|
384 | 36 2 6 35 p1 57 270 331 1.22593 331 0 0.00000 | |
385 |
37 |
|
385 | 37 2 7 36 p1 58 316 389 1.23101 389 0 0.00000 | |
386 |
38 |
|
386 | 38 2 8 37 p1 58 362 447 1.23481 447 0 0.00000 | |
387 | 39 3 22 38 p1 58 1012 1265 1.25000 1265 0 0.00000 |
|
387 | 39 3 1 -1 base 46 45 46 1.02222 46 0 0.00000 | |
388 |
40 3 2 |
|
388 | 40 3 2 39 p1 57 90 103 1.14444 103 0 0.00000 | |
389 |
41 3 |
|
389 | 41 3 3 40 p1 57 135 160 1.18519 160 0 0.00000 | |
390 |
42 3 |
|
390 | 42 3 4 41 p1 57 180 217 1.20556 217 0 0.00000 | |
391 |
43 3 |
|
391 | 43 3 5 42 p1 58 226 275 1.21681 275 0 0.00000 | |
392 |
44 3 |
|
392 | 44 3 6 43 p1 58 272 333 1.22426 333 0 0.00000 | |
393 |
45 3 |
|
393 | 45 3 7 44 p1 58 318 391 1.22956 391 0 0.00000 | |
394 |
46 3 |
|
394 | 46 3 8 45 p1 58 364 449 1.23352 449 0 0.00000 | |
395 |
47 3 |
|
395 | 47 3 9 46 p1 58 410 507 1.23659 507 0 0.00000 | |
396 |
48 3 |
|
396 | 48 3 10 47 p1 58 456 565 1.23904 565 0 0.00000 | |
397 |
49 |
|
397 | 49 3 11 48 p1 58 502 623 1.24104 623 0 0.00000 | |
398 |
50 |
|
398 | 50 3 12 49 p1 58 548 681 1.24270 681 0 0.00000 | |
399 |
51 |
|
399 | 51 3 13 50 p1 58 594 739 1.24411 739 0 0.00000 | |
400 |
52 |
|
400 | 52 3 14 51 p1 58 640 797 1.24531 797 0 0.00000 | |
401 | 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 |
|
401 | 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 | |
402 | 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 |
|
402 | 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 |
General Comments 0
You need to be logged in to leave comments.
Login now