diff --git a/wiki2gfm.log b/wiki2gfm.log
new file mode 100644
index 0000000..40437bc
--- /dev/null
+++ b/wiki2gfm.log
@@ -0,0 +1,3923 @@
+**************************
+Converting wiki: 
+To Markdown    : ./NewDocumentEditor.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Tracks progress of the new document editor project.
+Consider moving it to an introductory paragraph.
+
+Warning (line 3 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2"/>
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'NewDocumentEditor.wiki'
+[master 8f4673d] Converted NewDocumentEditor.md
+ 2 files changed, 85 insertions(+), 87 deletions(-)
+ create mode 100644 NewDocumentEditor.md
+ delete mode 100644 NewDocumentEditor.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ContributionReviews.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guidelines for contributing to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Useful
+Consider expressing the same information in a different manner.
+
+Warning (line 16 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 22 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 23 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 26 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 28 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 29 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 32 of input file):
+A comment was used in the wiki file, but GitHub does not currently support Markdown or HTML comments. As a work-around, the comment will be placed in a bogus and empty <a> tag.
+
+Warning (line 44 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 45 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 47 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 49 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 56 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 57 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 66 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 67 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 77 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 81 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 88 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 95 of input file):
+Code markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 101 of input file):
+Code markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 111 of input file):
+Italic markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 117 of input file):
+A comment was used in the wiki file, but GitHub does not currently support Markdown or HTML comments. As a work-around, the comment will be placed in a bogus and empty <a> tag.
+
+Warning (line 144 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 148 of input file):
+A comment was used in the wiki file, but GitHub does not currently support Markdown or HTML comments. As a work-around, the comment will be placed in a bogus and empty <a> tag.
+
+Warning (line 183 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 184 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 187 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 189 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 201 of input file):
+Code markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 207 of input file):
+Code markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 216 of input file):
+Code markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 240 of input file):
+Italic markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 241 of input file):
+Italic markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 242 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 243 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+rm 'ContributionReviews.wiki'
+[master e4857c3] Converted ContributionReviews.md
+ 2 files changed, 235 insertions(+), 243 deletions(-)
+ create mode 100644 ContributionReviews.md
+ delete mode 100644 ContributionReviews.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GHOPImplementationDesign.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Designs for implementing Task-based work flow(GHOP)
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Design,Contents-Draft,Importance-Details
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 147 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 148 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 149 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 150 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 151 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 152 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 153 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 154 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 155 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 156 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 157 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 158 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 159 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 293 of input file):
+Missing space after list symbol: 1, '.' was removed instead.
+
+Warning (line 318 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 319 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 320 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 362 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 362 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 366 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Lennard>
+
+Warning (line 366 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Lennard>
+
+rm 'GHOPImplementationDesign.wiki'
+[master b9b6f7e] Converted GHOPImplementationDesign.md
+ 2 files changed, 392 insertions(+), 370 deletions(-)
+ create mode 100644 GHOPImplementationDesign.md
+ delete mode 100644 GHOPImplementationDesign.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeRoadmap2009.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	This page contains project roadmap for year 2009
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Deprecated,Importance-Useful
+Consider expressing the same information in a different manner.
+
+Warning (line 93 of input file):
+Unknown plugin was given, outputting as plain text:
+	<LH>
+
+Warning (line 100 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</LH>
+
+Warning (line 118 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 125 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 136 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 147 of input file):
+Issue 44 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 44' to 'Issue 44 (on Google Code)'.
+
+Warning (line 149 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 156 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 198 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 202 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 221 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 228 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 250 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 252 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 262 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 264 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 292 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 294 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 316 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 318 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+Warning (line 342 of input file):
+Unknown plugin was given, outputting as plain text:
+	<lh>
+
+Warning (line 346 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</lh>
+
+rm 'MelangeRoadmap2009.wiki'
+[master 2f5f2b6] Converted MelangeRoadmap2009.md
+ 1 file changed, 283 insertions(+), 206 deletions(-)
+ rename MelangeRoadmap2009.wiki => MelangeRoadmap2009.md (64%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./UserRoles.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Various user roles in Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Requirements,Contents-Draft,Importance-Details
+Consider expressing the same information in a different manner.
+
+rm 'UserRoles.wiki'
+[master e61362d] Converted UserRoles.md
+ 2 files changed, 68 insertions(+), 69 deletions(-)
+ create mode 100644 UserRoles.md
+ delete mode 100644 UserRoles.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./AccessControl.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Protecting against unauthorized use.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Overview,Phase-Requirements,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 20 of input file):
+Issue 385 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 385' to 'Issue 385 (on Google Code)'.
+
+rm 'AccessControl.wiki'
+[master 606b291] Converted AccessControl.md
+ 1 file changed, 11 insertions(+), 14 deletions(-)
+ rename AccessControl.wiki => AccessControl.md (71%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./PossibleMentors.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Possible Mentors for GSoC 2011
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful
+Consider expressing the same information in a different manner.
+
+rm 'PossibleMentors.wiki'
+[master 1f8236f] Converted PossibleMentors.md
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+ rename PossibleMentors.wiki => PossibleMentors.md (64%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./WorkInProgress.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange is a work in progress, done in the open!
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Featured,Importance-Featured,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm 'WorkInProgress.wiki'
+[master e3985f1] Converted WorkInProgress.md
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+ rename WorkInProgress.wiki => WorkInProgress.md (51%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SocParams.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	List of views helper parameters and their role in the system.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'SocParams.wiki'
+[master 2634dab] Converted SocParams.md
+ 2 files changed, 118 insertions(+), 121 deletions(-)
+ create mode 100644 SocParams.md
+ delete mode 100644 SocParams.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeIRCMeeting20080909.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Logs of our meeting on IRC on 2008-09-09
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm 'MelangeIRCMeeting20080909.wiki'
+[master 543e4f8] Converted MelangeIRCMeeting20080909.md
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+ rename MelangeIRCMeeting20080909.wiki => MelangeIRCMeeting20080909.md (99%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SourceCode.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	The Melange Source Code
+Consider moving it to an introductory paragraph.
+
+rm 'SourceCode.wiki'
+[master f4e11fe] Converted SourceCode.md
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+ rename SourceCode.wiki => SourceCode.md (75%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeDemos.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	where to find and how to use demos of work in progress
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Implementation,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'MelangeDemos.wiki'
+[master a45f9a6] Converted MelangeDemos.md
+ 1 file changed, 79 insertions(+), 66 deletions(-)
+ rename MelangeDemos.wiki => MelangeDemos.md (65%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./BrowserRequirements.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Browser compatibility; Javascript enabled.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-QA,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'BrowserRequirements.wiki'
+[master 0880c29] Converted BrowserRequirements.md
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+ rename BrowserRequirements.wiki => BrowserRequirements.md (64%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./VendorBranches.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Maintaining third-party code using /vendor
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Implementation,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'VendorBranches.wiki'
+[master 28ab5d7] Converted VendorBranches.md
+ 1 file changed, 15 insertions(+), 18 deletions(-)
+ rename VendorBranches.wiki => VendorBranches.md (55%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./OpenSocial.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	One-sentence summary of this page.
+Consider moving it to an introductory paragraph.
+
+rm 'OpenSocial.wiki'
+[master 78cf826] Converted OpenSocial.md
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+ rename OpenSocial.wiki => OpenSocial.md (85%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeModuleArchitecture.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange Module Architecture
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Implementation,Importance-Useful,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 47 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 47 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 48 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Sverre>
+
+Warning (line 49 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Sverre>
+
+Warning (line 62 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 62 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 64 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Sverre>
+
+Warning (line 64 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Sverre>
+
+rm 'MelangeModuleArchitecture.wiki'
+[master 65ed823] Converted MelangeModuleArchitecture.md
+ 1 file changed, 157 insertions(+), 128 deletions(-)
+ rename MelangeModuleArchitecture.wiki => MelangeModuleArchitecture.md (59%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./TestingGuidelines.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guidelines for testing Melange and the SoC framework
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft,Phase-Guidelines,Importance-Overview
+Consider expressing the same information in a different manner.
+
+rm 'TestingGuidelines.wiki'
+[master cab5325] Converted TestingGuidelines.md
+ 1 file changed, 52 insertions(+), 53 deletions(-)
+ rename TestingGuidelines.wiki => TestingGuidelines.md (62%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./StatisticsModule.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	for planning the work on statistics in Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 56 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 58 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 510 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 510 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+rm 'StatisticsModule.wiki'
+[master dbb16d9] Converted StatisticsModule.md
+ 2 files changed, 539 insertions(+), 524 deletions(-)
+ create mode 100644 StatisticsModule.md
+ delete mode 100644 StatisticsModule.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./JavascriptAndCSS.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Javascript and CSS in Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+rm 'JavascriptAndCSS.wiki'
+[master 168396f] Converted JavascriptAndCSS.md
+ 1 file changed, 22 insertions(+), 25 deletions(-)
+ rename JavascriptAndCSS.wiki => JavascriptAndCSS.md (53%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2009Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2009
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Importance-Deprecated
+Consider expressing the same information in a different manner.
+
+rm 'GSoC2009Ideas.wiki'
+[master 943bf07] Converted GSoC2009Ideas.md
+ 1 file changed, 67 insertions(+), 54 deletions(-)
+ rename GSoC2009Ideas.wiki => GSoC2009Ideas.md (78%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./AcceptanceTests.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Running the Acceptance Tests (as of 22 October 2013)
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'AcceptanceTests.wiki'
+[master b0a0506] Converted AcceptanceTests.md
+ 2 files changed, 14 insertions(+), 17 deletions(-)
+ create mode 100644 AcceptanceTests.md
+ delete mode 100644 AcceptanceTests.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./WordsOfWisdom.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Some awesome statements and thoughts.
+Consider moving it to an introductory paragraph.
+
+Warning (line 34 of input file):
+Issue 1921 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1921' to 'issue 1921 (on Google Code)'.
+
+rm 'WordsOfWisdom.wiki'
+[master 764fc53] Converted WordsOfWisdom.md
+ 2 files changed, 112 insertions(+), 81 deletions(-)
+ create mode 100644 WordsOfWisdom.md
+ delete mode 100644 WordsOfWisdom.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./LifeOfaGhopTask.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Life of a GHOP Task
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'LifeOfaGhopTask.wiki'
+[master 57d6797] Converted LifeOfaGhopTask.md
+ 2 files changed, 35 insertions(+), 40 deletions(-)
+ create mode 100644 LifeOfaGhopTask.md
+ delete mode 100644 LifeOfaGhopTask.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./JavascriptRefactoring.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Proposal about Javascript refactoring
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated,Phase-Implementation,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'JavascriptRefactoring.wiki'
+[master a558521] Converted JavascriptRefactoring.md
+ 2 files changed, 163 insertions(+), 166 deletions(-)
+ create mode 100644 JavascriptRefactoring.md
+ delete mode 100644 JavascriptRefactoring.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeIrcLogs.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Past discussions on IRC.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'MelangeIrcLogs.wiki'
+[master 7bd6115] Converted MelangeIrcLogs.md
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+ create mode 100644 MelangeIrcLogs.md
+ delete mode 100644 MelangeIrcLogs.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Modules.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange Modules
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+Warning (line 14 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 15 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 17 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 20 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 22 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 26 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 27 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 29 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 30 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 36 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 38 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 40 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 42 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+rm 'Modules.wiki'
+[master fa4f355] Converted Modules.md
+ 2 files changed, 51 insertions(+), 54 deletions(-)
+ create mode 100644 Modules.md
+ delete mode 100644 Modules.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Docker.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange and Docker
+Consider moving it to an introductory paragraph.
+
+rm 'Docker.wiki'
+[master 662114c] Converted Docker.md
+ 2 files changed, 12 insertions(+), 14 deletions(-)
+ create mode 100644 Docker.md
+ delete mode 100644 Docker.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2012Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2012
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated
+Consider expressing the same information in a different manner.
+
+rm 'GSoC2012Ideas.wiki'
+[master 09000a0] Converted GSoC2012Ideas.md
+ 1 file changed, 22 insertions(+), 25 deletions(-)
+ rename GSoC2012Ideas.wiki => GSoC2012Ideas.md (71%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ContributingCode.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guidelines for contributing code to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Useful
+Consider expressing the same information in a different manner.
+
+Warning (line 54 of input file):
+Issue 15 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 15' to 'issue 15 (on Google Code)'.
+
+Warning (line 54 of input file):
+Issue 15 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 15' to 'issue 15 (on Google Code)'.
+
+rm 'ContributingCode.wiki'
+[master 679b0be] Converted ContributingCode.md
+ 1 file changed, 31 insertions(+), 32 deletions(-)
+ rename ContributingCode.wiki => ContributingCode.md (66%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GettingStarted.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	How to get started with Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Featured,Phase-Guidelines,Contents-Draft,Importance-Featured
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="1" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GettingStarted.wiki'
+[master 8e84afb] Converted GettingStarted.md
+ 1 file changed, 101 insertions(+), 104 deletions(-)
+ rename GettingStarted.wiki => GettingStarted.md (58%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GHOPUserManual.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Starter Manual for using GHOP module.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated,Phase-Support,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GHOPUserManual.wiki'
+[master 0233b79] Converted GHOPUserManual.md
+ 1 file changed, 23 insertions(+), 26 deletions(-)
+ rename GHOPUserManual.wiki => GHOPUserManual.md (73%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Gerrit.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Gerrit and Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Featured,Importance-Featured
+Consider expressing the same information in a different manner.
+
+rm 'Gerrit.wiki'
+[master a1e4aca] Converted Gerrit.md
+ 1 file changed, 37 insertions(+), 40 deletions(-)
+ rename Gerrit.wiki => Gerrit.md (63%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SetUpPylint.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	How to use and set up pylint under eclipse for Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-QA,Contents-Review
+Consider expressing the same information in a different manner.
+
+rm 'SetUpPylint.wiki'
+[master 95f2385] Converted SetUpPylint.md
+ 1 file changed, 28 insertions(+), 31 deletions(-)
+ rename SetUpPylint.wiki => SetUpPylint.md (59%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GCIUserManual.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Starter Manual for using GCI module.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-QA,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GCIUserManual.wiki'
+[master f77aec8] Converted GCIUserManual.md
+ 2 files changed, 158 insertions(+), 161 deletions(-)
+ create mode 100644 GCIUserManual.md
+ delete mode 100644 GCIUserManual.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SubscriptionUserGuide.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Subscription User Guide
+Consider moving it to an introductory paragraph.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 43 of input file):
+GFM does not support embedding the YouTube player directly. Instead an image link to the video is being used, maintaining sizing options.
+
+rm 'SubscriptionUserGuide.wiki'
+[master a23f71c] Converted SubscriptionUserGuide.md
+ 1 file changed, 10 insertions(+), 14 deletions(-)
+ rename SubscriptionUserGuide.wiki => SubscriptionUserGuide.md (65%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./LifeOfARequest.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	One-sentence summary of this page.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+Warning (line 44 of input file):
+Missing space after list symbol: 1, '.' was removed instead.
+
+rm 'LifeOfARequest.wiki'
+[master e87dd3f] Converted LifeOfARequest.md
+ 1 file changed, 18 insertions(+), 21 deletions(-)
+ rename LifeOfARequest.wiki => LifeOfARequest.md (56%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SocialFeaturesMelangeGSoC2010.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Project Documentation for Social Features for Melange(GSoC2010)
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Design,Contents-Draft,Importance-Details
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 724 of input file):
+Issue 890 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 890' to 'issue 890 (on Google Code)'.
+
+Warning (line 728 of input file):
+Issue 890 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 890' to 'issue 890 (on Google Code)'.
+
+rm 'SocialFeaturesMelangeGSoC2010.wiki'
+[master 7310d93] Converted SocialFeaturesMelangeGSoC2010.md
+ 2 files changed, 776 insertions(+), 729 deletions(-)
+ create mode 100644 SocialFeaturesMelangeGSoC2010.md
+ delete mode 100644 SocialFeaturesMelangeGSoC2010.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangePlan0110.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Plan for Q1-Q2 '10
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Implementation,Contents-Complete
+Consider expressing the same information in a different manner.
+
+Warning (line 12 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 24 of input file):
+Issue 445 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 445' to 'Issue 445 (on Google Code)'.
+
+rm 'MelangePlan0110.wiki'
+[master 000b2f7] Converted MelangePlan0110.md
+ 2 files changed, 27 insertions(+), 28 deletions(-)
+ create mode 100644 MelangePlan0110.md
+ delete mode 100644 MelangePlan0110.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ModelViewController.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Model-View-Controller pattern
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Design,Deprecated,Importance-Overview
+Consider expressing the same information in a different manner.
+
+rm 'ModelViewController.wiki'
+[master 5e481f8] Converted ModelViewController.md
+ 1 file changed, 34 insertions(+), 35 deletions(-)
+ rename ModelViewController.wiki => ModelViewController.md (55%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./TaskQueueAPI.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Describes usage tips for Task Queue API in Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 19 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 20 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 21 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 21 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 29 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 30 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 31 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 31 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 39 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 39 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 40 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 40 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 57 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 57 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 58 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 58 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 99 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 99 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 100 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 104 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 106 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 108 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 126 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 126 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 127 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 127 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 162 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 162 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 163 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 164 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+Warning (line 188 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 188 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 192 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Pawel>
+
+Warning (line 192 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Pawel>
+
+Warning (line 193 of input file):
+Unknown plugin was given, outputting as plain text:
+	<Daniel>
+
+Warning (line 193 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</Daniel>
+
+rm 'TaskQueueAPI.wiki'
+[master 3a6a5c6] Converted TaskQueueAPI.md
+ 2 files changed, 341 insertions(+), 200 deletions(-)
+ create mode 100644 TaskQueueAPI.md
+ delete mode 100644 TaskQueueAPI.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./UserStoryGroups.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Common Features in User Stories
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Requirements
+Consider expressing the same information in a different manner.
+
+Warning (line 16 of input file):
+Issue 8 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 8' to 'Issue 8 (on Google Code)'.
+
+Warning (line 17 of input file):
+Issue 9 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 9' to 'Issue 9 (on Google Code)'.
+
+Warning (line 18 of input file):
+Issue 28 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 28' to 'Issue 28 (on Google Code)'.
+
+Warning (line 19 of input file):
+Issue 35 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 35' to 'Issue 35 (on Google Code)'.
+
+Warning (line 20 of input file):
+Issue 36 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 36' to 'Issue 36 (on Google Code)'.
+
+Warning (line 21 of input file):
+Issue 40 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 40' to 'Issue 40 (on Google Code)'.
+
+Warning (line 22 of input file):
+Issue 41 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 41' to 'Issue 41 (on Google Code)'.
+
+Warning (line 23 of input file):
+Issue 43 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 43' to 'Issue 43 (on Google Code)'.
+
+Warning (line 24 of input file):
+Issue 54 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 54' to 'Issue 54 (on Google Code)'.
+
+Warning (line 25 of input file):
+Issue 55 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 55' to 'Issue 55 (on Google Code)'.
+
+Warning (line 26 of input file):
+Issue 56 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 56' to 'Issue 56 (on Google Code)'.
+
+Warning (line 27 of input file):
+Issue 20 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 20' to 'Issue 20 (on Google Code)'.
+
+Warning (line 28 of input file):
+Issue 19 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 19' to 'Issue 19 (on Google Code)'.
+
+Warning (line 41 of input file):
+Issue 21 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 21' to 'Issue 21 (on Google Code)'.
+
+Warning (line 42 of input file):
+Issue 22 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 22' to 'Issue 22 (on Google Code)'.
+
+Warning (line 43 of input file):
+Issue 23 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 23' to 'Issue 23 (on Google Code)'.
+
+Warning (line 44 of input file):
+Issue 26 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 26' to 'Issue 26 (on Google Code)'.
+
+Warning (line 45 of input file):
+Issue 29 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 29' to 'Issue 29 (on Google Code)'.
+
+Warning (line 46 of input file):
+Issue 57 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 57' to 'Issue 57 (on Google Code)'.
+
+Warning (line 47 of input file):
+Issue 24 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 24' to 'Issue 24 (on Google Code)'.
+
+Warning (line 48 of input file):
+Issue 30 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 30' to 'Issue 30 (on Google Code)'.
+
+Warning (line 49 of input file):
+Issue 42 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 42' to 'Issue 42 (on Google Code)'.
+
+Warning (line 57 of input file):
+Issue 1 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 1' to 'Issue 1 (on Google Code)'.
+
+Warning (line 58 of input file):
+Issue 4 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 4' to 'Issue 4 (on Google Code)'.
+
+Warning (line 59 of input file):
+Issue 5 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 5' to 'Issue 5 (on Google Code)'.
+
+Warning (line 60 of input file):
+Issue 6 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 6' to 'Issue 6 (on Google Code)'.
+
+Warning (line 61 of input file):
+Issue 7 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 7' to 'Issue 7 (on Google Code)'.
+
+Warning (line 62 of input file):
+Issue 15 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 15' to 'Issue 15 (on Google Code)'.
+
+Warning (line 63 of input file):
+Issue 17 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 17' to 'Issue 17 (on Google Code)'.
+
+Warning (line 64 of input file):
+Issue 31 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 31' to 'Issue 31 (on Google Code)'.
+
+Warning (line 65 of input file):
+Issue 32 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 32' to 'Issue 32 (on Google Code)'.
+
+Warning (line 66 of input file):
+Issue 33 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 33' to 'Issue 33 (on Google Code)'.
+
+Warning (line 67 of input file):
+Issue 37 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 37' to 'Issue 37 (on Google Code)'.
+
+Warning (line 76 of input file):
+Issue 13 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 13' to 'Issue 13 (on Google Code)'.
+
+Warning (line 77 of input file):
+Issue 16 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 16' to 'Issue 16 (on Google Code)'.
+
+Warning (line 78 of input file):
+Issue 25 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 25' to 'Issue 25 (on Google Code)'.
+
+Warning (line 79 of input file):
+Issue 34 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 34' to 'Issue 34 (on Google Code)'.
+
+Warning (line 80 of input file):
+Issue 52 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 52' to 'Issue 52 (on Google Code)'.
+
+Warning (line 88 of input file):
+Issue 38 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 38' to 'Issue 38 (on Google Code)'.
+
+Warning (line 89 of input file):
+Issue 39 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 39' to 'Issue 39 (on Google Code)'.
+
+rm 'UserStoryGroups.wiki'
+[master 571bbbe] Converted UserStoryGroups.md
+ 2 files changed, 91 insertions(+), 89 deletions(-)
+ create mode 100644 UserStoryGroups.md
+ delete mode 100644 UserStoryGroups.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./HowToSetupBuildbotForMelange.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	This page documents how to setup a buildbot for Melange.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Review,Importance-Useful,Phase-Deploy
+Consider expressing the same information in a different manner.
+
+rm 'HowToSetupBuildbotForMelange.wiki'
+[master a7a4aab] Converted HowToSetupBuildbotForMelange.md
+ 1 file changed, 15 insertions(+), 18 deletions(-)
+ rename HowToSetupBuildbotForMelange.wiki => HowToSetupBuildbotForMelange.md (91%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2011GUIOverhaul.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Tracks progress for the GSoC 2011 project, GUI Overhaul (Fronted and Administration Interfaces)
+Consider moving it to an introductory paragraph.
+
+Warning (line 3 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 27 of input file):
+The following parameter was given for the 'table' tag, but will not be present in the outputted HTML:
+	'style': 'width:auto;'
+
+Warning (line 27 of input file):
+The following parameter was given for the 'td' tag, but will not be present in the outputted HTML:
+	'style': 'font-family:arial,sans-serif; font-size:11px; text-align:right'
+
+Warning (line 79 of input file):
+The following parameter was given for the 'table' tag, but will not be present in the outputted HTML:
+	'style': 'width:auto;'
+
+Warning (line 79 of input file):
+The following parameter was given for the 'td' tag, but will not be present in the outputted HTML:
+	'style': 'font-family:arial,sans-serif; font-size:11px; text-align:right'
+
+Warning (line 82 of input file):
+The following parameter was given for the 'table' tag, but will not be present in the outputted HTML:
+	'style': 'width:auto;'
+
+Warning (line 82 of input file):
+The following parameter was given for the 'td' tag, but will not be present in the outputted HTML:
+	'style': 'font-family:arial,sans-serif; font-size:11px; text-align:right'
+
+rm 'GSoC2011GUIOverhaul.wiki'
+[master 67f03d9] Converted GSoC2011GUIOverhaul.md
+ 2 files changed, 203 insertions(+), 186 deletions(-)
+ create mode 100644 GSoC2011GUIOverhaul.md
+ delete mode 100644 GSoC2011GUIOverhaul.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./StatisticModuleObjectives.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Main objectives of the new statistic module
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'StatisticModuleObjectives.wiki'
+[master b913d14] Converted StatisticModuleObjectives.md
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+ rename StatisticModuleObjectives.wiki => StatisticModuleObjectives.md (87%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GHOPTODO.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	This page lists all the TODOs for running GHOP program.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Overview,Phase-Requirements,Contents-Update
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 35 of input file):
+Issue 450 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 450' to 'Issue 450 (on Google Code)'.
+
+rm 'GHOPTODO.wiki'
+[master 0d447a3] Converted GHOPTODO.md
+ 1 file changed, 18 insertions(+), 21 deletions(-)
+ rename GHOPTODO.wiki => GHOPTODO.md (64%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./UserPreferencesPage.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	A discussion page for what would be useful preferences for users to be able to set, and how to implement same.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 21 of input file):
+Issue 561 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 561' to 'Issue 561 (on Google Code)'.
+
+Warning (line 33 of input file):
+Issue 560 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 560' to 'Issue 560 (on Google Code)'.
+
+Warning (line 35 of input file):
+Issue 560 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 560' to 'Issue 560 (on Google Code)'.
+
+Warning (line 35 of input file):
+Issue 560 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 560' to 'Issue 560 (on Google Code)'.
+
+rm 'UserPreferencesPage.wiki'
+[master 954b1aa] Converted UserPreferencesPage.md
+ 2 files changed, 36 insertions(+), 39 deletions(-)
+ create mode 100644 UserPreferencesPage.md
+ delete mode 100644 UserPreferencesPage.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Terminology.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	An intro to some of the vocab of Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'Terminology.wiki'
+[master 96a585e] Converted Terminology.md
+ 2 files changed, 19 insertions(+), 22 deletions(-)
+ create mode 100644 Terminology.md
+ delete mode 100644 Terminology.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./2013DeveloperDoc.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Developer Documentation (2013)
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+rm '2013DeveloperDoc.wiki'
+[master 1ec1fb9] Converted 2013DeveloperDoc.md
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+ create mode 100644 2013DeveloperDoc.md
+ delete mode 100644 2013DeveloperDoc.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Maintainability.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	One-sentence summary of this page.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+rm 'Maintainability.wiki'
+[master 9b35e1c] Converted Maintainability.md
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+ create mode 100644 Maintainability.md
+ delete mode 100644 Maintainability.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MailingListsGuidelines.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guidelines for Melange mailing lists
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Useful
+Consider expressing the same information in a different manner.
+
+rm 'MailingListsGuidelines.wiki'
+[master 1e91d62] Converted MailingListsGuidelines.md
+ 1 file changed, 41 insertions(+), 42 deletions(-)
+ rename MailingListsGuidelines.wiki => MailingListsGuidelines.md (59%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./InformationArchitecture.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	One-sentence summary of this page.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+rm 'InformationArchitecture.wiki'
+[master c4530d3] Converted InformationArchitecture.md
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+ rename InformationArchitecture.wiki => InformationArchitecture.md (90%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeIntro.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	An introduction to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft,Phase-Guidelines,Importance-Overview
+Consider expressing the same information in a different manner.
+
+rm 'MelangeIntro.wiki'
+[master a076e24] Converted MelangeIntro.md
+ 1 file changed, 34 insertions(+), 34 deletions(-)
+ rename MelangeIntro.wiki => MelangeIntro.md (63%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./TagsInMelange.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Design/discussion of Tags
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'TagsInMelange.wiki'
+[master 8fef329] Converted TagsInMelange.md
+ 2 files changed, 112 insertions(+), 115 deletions(-)
+ create mode 100644 TagsInMelange.md
+ delete mode 100644 TagsInMelange.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Lists.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Details about the Lists protocol
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue201' to 'Issue201 (on Google Code)'.
+
+rm 'Lists.wiki'
+[master 6b87c67] Converted Lists.md
+ 2 files changed, 324 insertions(+), 317 deletions(-)
+ create mode 100644 Lists.md
+ delete mode 100644 Lists.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2011Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2011
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 39 of input file):
+Issue 560 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 560' to 'issue 560 (on Google Code)'.
+
+rm 'GSoC2011Ideas.wiki'
+[master d29b1e6] Converted GSoC2011Ideas.md
+ 1 file changed, 60 insertions(+), 49 deletions(-)
+ rename GSoC2011Ideas.wiki => GSoC2011Ideas.md (83%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ChangeLog.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	This page contains Change Logs for Melange.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Featured,Featured
+Consider expressing the same information in a different manner.
+
+Warning (line 8 of input file):
+Issue 838 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 838' to 'issue 838 (on Google Code)'.
+
+Warning (line 815 of input file):
+Issue 697 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 697' to 'issue 697 (on Google Code)'.
+
+Warning (line 993 of input file):
+Revision 11 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r11' to 'r11 (on Google Code)'.
+
+Warning (line 1078 of input file):
+Revision 0548101922 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r0548101922' to 'r0548101922 (on Google Code)'.
+
+Warning (line 1186 of input file):
+Issue 653 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 653' to 'issue 653 (on Google Code)'.
+
+Warning (line 1497 of input file):
+Revision 3012 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r3012' to 'r3012 (on Google Code)'.
+
+Warning (line 1509 of input file):
+Issue 389 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 389' to 'Issue 389 (on Google Code)'.
+
+Warning (line 1597 of input file):
+Revision 2953 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r2953' to 'r2953 (on Google Code)'.
+
+Warning (line 1629 of input file):
+Revision 2769 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r2769' to 'r2769 (on Google Code)'.
+
+Warning (line 1651 of input file):
+Revision 2876 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r2876' to 'r2876 (on Google Code)'.
+
+Warning (line 1756 of input file):
+Revision 2750 was auto-linked. SVN revision numbers are not sensible in Git; consider updating this link or removing it altogether. Additionally, because no project name was specified the revision could not be linked to the original Google Code source page. The auto-link has been removed and the text has been modified from 'r2750' to 'r2750 (on Google Code)'.
+
+Warning (line 1779 of input file):
+Issue 381 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 381' to 'Issue 381 (on Google Code)'.
+
+Warning (line 1779 of input file):
+Issue 207 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 207' to 'Issue 207 (on Google Code)'.
+
+Warning (line 1827 of input file):
+Issue 392 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 392' to 'Issue 392 (on Google Code)'.
+
+rm 'ChangeLog.wiki'
+[master a9c6b05] Converted ChangeLog.md
+ 2 files changed, 1859 insertions(+), 1862 deletions(-)
+ create mode 100644 ChangeLog.md
+ delete mode 100644 ChangeLog.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MeetingAgendasNotes.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	A collection place for team meeting agendas and resulting notes.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels agendas,meetingnotes,Importance-Useful
+Consider expressing the same information in a different manner.
+
+Warning (line 14 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 108 of input file):
+Issue 1239 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 1239' to 'Issue 1239 (on Google Code)'.
+
+Warning (line 209 of input file):
+Issue 1244 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 1244' to 'Issue 1244 (on Google Code)'.
+
+Warning (line 379 of input file):
+Issue 534 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 534' to 'Issue 534 (on Google Code)'.
+
+Warning (line 398 of input file):
+Issue 534 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 534' to 'Issue 534 (on Google Code)'.
+
+Warning (line 447 of input file):
+Issue 69 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 69' to 'issue 69 (on Google Code)'.
+
+Warning (line 448 of input file):
+Issue 999 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 999' to 'issue 999 (on Google Code)'.
+
+Warning (line 449 of input file):
+Issue 1003 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1003' to 'issue 1003 (on Google Code)'.
+
+Warning (line 450 of input file):
+Issue 986 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 986' to 'issue 986 (on Google Code)'.
+
+Warning (line 1098 of input file):
+Blockquote markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1098 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1104 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1110 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1111 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1115 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1116 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1118 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1130 of input file):
+Blockquote markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1132 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1142 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1147 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1147 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1149 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1152 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1157 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1161 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1167 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1172 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1173 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1175 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1181 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1190 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1191 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1193 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1200 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1212 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1213 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1215 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1220 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1228 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1229 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1231 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1232 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1245 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1247 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1250 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1254 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1258 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1261 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1264 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1267 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1269 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1274 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1275 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1277 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1278 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1288 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1290 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1292 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1293 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1294 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1295 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1300 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1304 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1307 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1310 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1314 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1315 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1317 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1318 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1328 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1328 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1330 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1332 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1337 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1338 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1340 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1341 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1349 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1351 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1352 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1360 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1361 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1363 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1365 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1374 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1375 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1377 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1388 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1389 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1391 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1393 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1399 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1400 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1410 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1416 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1417 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1419 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1422 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1428 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1432 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1438 of input file):
+Issue 225 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 225' to 'Issue 225 (on Google Code)'.
+
+Warning (line 1442 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1443 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1445 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1446 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1453 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1454 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1456 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1458 of input file):
+Issue 694 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 694' to 'issue 694 (on Google Code)'.
+
+Warning (line 1468 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1473 of input file):
+Issue 694 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 694' to 'issue 694 (on Google Code)'.
+
+Warning (line 1480 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1481 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1483 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1485 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1494 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1498 of input file):
+Issue 693 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 693' to 'Issue 693 (on Google Code)'.
+
+Warning (line 1500 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1515 of input file):
+Issue 692 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 692' to 'Issue 692 (on Google Code)'.
+
+Warning (line 1516 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1520 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1521 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1523 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1524 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1532 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1547 of input file):
+Issue 693 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 693' to 'Issue 693 (on Google Code)'.
+
+Warning (line 1554 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1555 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1557 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1558 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1561 of input file):
+Issue 690 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 690' to 'Issue 690 (on Google Code)'.
+
+Warning (line 1567 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1568 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1584 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1585 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1587 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1589 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1596 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1630 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1631 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1633 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1637 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1643 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1659 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 201' to 'Issue 201 (on Google Code)'.
+
+Warning (line 1673 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1674 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1676 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1684 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1695 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1696 of input file):
+Issue 201 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 201' to 'issue 201 (on Google Code)'.
+
+Warning (line 1715 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1716 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1718 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1728 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1743 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1744 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1746 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1755 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1772 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1773 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1775 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1784 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1809 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1810 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1812 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1820 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1838 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1839 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1841 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1849 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1849 of input file):
+Issue 655 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 655' to 'Issue 655 (on Google Code)'.
+
+Warning (line 1857 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1858 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1860 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1869 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1892 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1893 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1895 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1908 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1911 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1916 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1921 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1921 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1927 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1932 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1944 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1949 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1957 of input file):
+Issue 653 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 653' to 'Issue 653 (on Google Code)'.
+
+Warning (line 1959 of input file):
+Issue 655 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 655' to 'Issue 655 (on Google Code)'.
+
+Warning (line 1964 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1965 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1967 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1979 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1980 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1986 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1987 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1989 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 1999 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2001 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2002 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2005 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2018 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2026 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2030 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2031 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2032 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2035 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2038 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2040 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2051 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2059 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2071 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2072 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2073 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2074 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2076 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2078 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2085 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2131 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2133 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2134 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2135 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2138 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2142 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2142 of input file):
+Issue 271 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 271' to 'Issue 271 (on Google Code)'.
+
+Warning (line 2142 of input file):
+Issue 630 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 630' to 'Issue 630 (on Google Code)'.
+
+Warning (line 2146 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2149 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2153 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2153 of input file):
+Issue 637 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 637' to 'Issue 637 (on Google Code)'.
+
+Warning (line 2156 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2156 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2165 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2165 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2169 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2179 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2179 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2180 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2183 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2184 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2188 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2189 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2194 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2194 of input file):
+Italic markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2200 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2214 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2215 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2227 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2230 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2235 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2236 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2240 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2241 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2250 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2269 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2270 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2276 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2277 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2279 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2285 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2291 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2292 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2294 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2298 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2301 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2303 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2305 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2305 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2306 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2307 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2308 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2309 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2310 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2319 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2322 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2328 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2340 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2341 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2346 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2348 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2350 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2350 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2354 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2358 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2359 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2361 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2366 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2368 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2368 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2369 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2371 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2377 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2377 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2378 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2380 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2380 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2383 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2393 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2393 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2395 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2397 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2400 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2401 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2401 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2403 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2405 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2408 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2411 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2412 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2412 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2413 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2414 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2415 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2417 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2419 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2421 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2427 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2437 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2441 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2443 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2449 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2449 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2457 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2459 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2463 of input file):
+Numeric list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2464 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2469 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2472 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2472 of input file):
+Bold markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2473 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2475 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2476 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2478 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2481 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2485 of input file):
+Bulleted list markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+Warning (line 2486 of input file):
+Link markup was used within HTML tags. Because GitHub does not support this, the tags have been translated to HTML. Please verify that the formatting is correct.
+
+rm 'MeetingAgendasNotes.wiki'
+[master 7e59503] Converted MeetingAgendasNotes.md
+ 2 files changed, 2477 insertions(+), 2486 deletions(-)
+ create mode 100644 MeetingAgendasNotes.md
+ delete mode 100644 MeetingAgendasNotes.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangeURLs.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Url scheme in melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Skeleton
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'MelangeURLs.wiki'
+[master d22da03] Converted MelangeURLs.md
+ 2 files changed, 46 insertions(+), 49 deletions(-)
+ create mode 100644 MelangeURLs.md
+ delete mode 100644 MelangeURLs.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./IrcChannelGuidelines.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange discussion on IRC channel #melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Useful
+Consider expressing the same information in a different manner.
+
+rm 'IrcChannelGuidelines.wiki'
+[master 316fe6e] Converted IrcChannelGuidelines.md
+ 1 file changed, 11 insertions(+), 12 deletions(-)
+ rename IrcChannelGuidelines.wiki => IrcChannelGuidelines.md (54%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./Miscellany.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	One-sentence summary of this page.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels 2013DeveloperDoc
+Consider expressing the same information in a different manner.
+
+rm 'Miscellany.wiki'
+[master 89fb001] Converted Miscellany.md
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+ create mode 100644 Miscellany.md
+ delete mode 100644 Miscellany.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./UserCommunication.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	This page captures how users want to be able to send email to each within the system.
+Consider moving it to an introductory paragraph.
+
+rm 'UserCommunication.wiki'
+[master 383c922] Converted UserCommunication.md
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+ rename UserCommunication.wiki => UserCommunication.md (63%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2010Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2010
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated,Contents-Complete
+Consider expressing the same information in a different manner.
+
+Warning (line 225 of input file):
+Unknown plugin was given, outputting as plain text:
+	<DanielPleaseConfirmYourAvailability>
+
+Warning (line 227 of input file):
+Unknown but matching plugin end was given, outputting as plain text:
+	</DanielPleaseConfirmYourAvailability>
+
+rm 'GSoC2010Ideas.wiki'
+[master e813ac8] Converted GSoC2010Ideas.md
+ 2 files changed, 377 insertions(+), 354 deletions(-)
+ create mode 100644 GSoC2010Ideas.md
+ delete mode 100644 GSoC2010Ideas.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GettingStartedOnTesting.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guide on tips and tricks for writing tests for Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft,Importance-Useful,Phase-QA
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GettingStartedOnTesting.wiki'
+[master d0d66df] Converted GettingStartedOnTesting.md
+ 1 file changed, 98 insertions(+), 101 deletions(-)
+ rename GettingStartedOnTesting.wiki => GettingStartedOnTesting.md (65%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./2014SummerStudentOrientation.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Melange 2014 Summer Student Orientation Topics
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Guidelines,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm '2014SummerStudentOrientation.wiki'
+[master f71b782] Converted 2014SummerStudentOrientation.md
+ 1 file changed, 9 insertions(+), 12 deletions(-)
+ rename 2014SummerStudentOrientation.wiki => 2014SummerStudentOrientation.md (82%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SoCOverview.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Overview of SoC
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Requirements,Contents-Draft,Importance-Overview
+Consider expressing the same information in a different manner.
+
+rm 'SoCOverview.wiki'
+[master b64247e] Converted SoCOverview.md
+ 2 files changed, 47 insertions(+), 48 deletions(-)
+ create mode 100644 SoCOverview.md
+ delete mode 100644 SoCOverview.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GCINewArchitectureGSoC2011.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Wiki Page for the Google Code-In with new Architecture Project.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Design
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GCINewArchitectureGSoC2011.wiki'
+[master e211004] Converted GCINewArchitectureGSoC2011.md
+ 2 files changed, 150 insertions(+), 149 deletions(-)
+ create mode 100644 GCINewArchitectureGSoC2011.md
+ delete mode 100644 GCINewArchitectureGSoC2011.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./MelangePlan0310.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Plan for Q3-Q4 '10
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Review,Importance-Useful,Phase-Implementation
+Consider expressing the same information in a different manner.
+
+Warning (line 19 of input file):
+Issue 445 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 445' to 'Issue 445 (on Google Code)'.
+
+rm 'MelangePlan0310.wiki'
+[master 8d4ebf6] Converted MelangePlan0310.md
+ 2 files changed, 37 insertions(+), 37 deletions(-)
+ create mode 100644 MelangePlan0310.md
+ delete mode 100644 MelangePlan0310.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ContributionTerms.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Terms for contributing to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Useful
+Consider expressing the same information in a different manner.
+
+rm 'ContributionTerms.wiki'
+[master b14ef20] Converted ContributionTerms.md
+ 1 file changed, 31 insertions(+), 32 deletions(-)
+ rename ContributionTerms.wiki => ContributionTerms.md (51%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./CodingHintsAndTips.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Hints and Tips for Melange Development
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'CodingHintsAndTips.wiki'
+[master bce0353] Converted CodingHintsAndTips.md
+ 2 files changed, 33 insertions(+), 36 deletions(-)
+ create mode 100644 CodingHintsAndTips.md
+ delete mode 100644 CodingHintsAndTips.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./For_GHOP_20.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	GHOP features which we are 99% sure we do not want in the first Melange based GHOP
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'For_GHOP_20.wiki'
+[master 460dc7a] Converted For_GHOP_20.md
+ 1 file changed, 12 insertions(+), 15 deletions(-)
+ rename For_GHOP_20.wiki => For_GHOP_20.md (77%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./WelcomeToMelange.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Welcome To Melange!
+Consider moving it to an introductory paragraph.
+
+rm 'WelcomeToMelange.wiki'
+[master 04c1257] Converted WelcomeToMelange.md
+ 2 files changed, 15 insertions(+), 17 deletions(-)
+ create mode 100644 WelcomeToMelange.md
+ delete mode 100644 WelcomeToMelange.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ContributorLicenseAgreements.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Contributor license agreements
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Details
+Consider expressing the same information in a different manner.
+
+rm 'ContributorLicenseAgreements.wiki'
+[master 7e8d678] Converted ContributorLicenseAgreements.md
+ 2 files changed, 6 insertions(+), 9 deletions(-)
+ create mode 100644 ContributorLicenseAgreements.md
+ delete mode 100644 ContributorLicenseAgreements.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2013Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2013
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Featured
+Consider expressing the same information in a different manner.
+
+rm 'GSoC2013Ideas.wiki'
+[master 28f8bca] Converted GSoC2013Ideas.md
+ 1 file changed, 36 insertions(+), 42 deletions(-)
+ rename GSoC2013Ideas.wiki => GSoC2013Ideas.md (68%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./EnvironmentConfig.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Guidelines for setting up a virtual environment for use with Melange.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Guidelines,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'EnvironmentConfig.wiki'
+[master 1982155] Converted EnvironmentConfig.md
+ 1 file changed, 22 insertions(+), 25 deletions(-)
+ rename EnvironmentConfig.wiki => EnvironmentConfig.md (80%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./WikiDiscuss.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Issues from the issue tracker for discussion on this wiki
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Contents-Draft,Phase-Implementation
+Consider expressing the same information in a different manner.
+
+Warning (line 17 of input file):
+Issue 448 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 448' to 'Issue 448 (on Google Code)'.
+
+Warning (line 18 of input file):
+Issue 463 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 463' to 'Issue 463 (on Google Code)'.
+
+Warning (line 19 of input file):
+Issue 495 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 495' to 'Issue 495 (on Google Code)'.
+
+Warning (line 20 of input file):
+Issue 619 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 619' to 'Issue 619 (on Google Code)'.
+
+Warning (line 32 of input file):
+Issue 463 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 463' to 'Issue 463 (on Google Code)'.
+
+Warning (line 44 of input file):
+Issue 495 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 495' to 'Issue 495 (on Google Code)'.
+
+Warning (line 56 of input file):
+Issue 619 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 619' to 'Issue 619 (on Google Code)'.
+
+rm 'WikiDiscuss.wiki'
+[master 0c3bd0f] Converted WikiDiscuss.md
+ 2 files changed, 61 insertions(+), 59 deletions(-)
+ create mode 100644 WikiDiscuss.md
+ delete mode 100644 WikiDiscuss.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2010MelangeTesting.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Project Progress/Log for the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Design,Contents-Draft,Importance-Details
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GSoC2010MelangeTesting.wiki'
+[master bde74c1] Converted GSoC2010MelangeTesting.md
+ 2 files changed, 83 insertions(+), 86 deletions(-)
+ create mode 100644 GSoC2010MelangeTesting.md
+ delete mode 100644 GSoC2010MelangeTesting.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./TextEditinginMelange.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Creating Documents, etc.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+Issue 306 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 306' to 'Issue 306 (on Google Code)'.
+
+Warning (line 51 of input file):
+Issue 448 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 448' to 'Issue 448 (on Google Code)'.
+
+rm 'TextEditinginMelange.wiki'
+[master 68d5b09] Converted TextEditinginMelange.md
+ 1 file changed, 14 insertions(+), 17 deletions(-)
+ rename TextEditinginMelange.wiki => TextEditinginMelange.md (62%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./WhyUseGoogleAppEngine.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	What software are we building Melange on - and Why
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Design,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm 'WhyUseGoogleAppEngine.wiki'
+[master bd8ae26] Converted WhyUseGoogleAppEngine.md
+ 2 files changed, 27 insertions(+), 30 deletions(-)
+ create mode 100644 WhyUseGoogleAppEngine.md
+ delete mode 100644 WhyUseGoogleAppEngine.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./LogicalTestingFallacies.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	"Why My Patch Doesn't Need Tests"
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-QA,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm 'LogicalTestingFallacies.wiki'
+[master c4bfbf3] Converted LogicalTestingFallacies.md
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+ rename LogicalTestingFallacies.wiki => LogicalTestingFallacies.md (72%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./NathanielsCodeFragrances.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Nathaniel's guidance on nice things to do in code.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Implementation,Contents-Complete
+Consider expressing the same information in a different manner.
+
+rm 'NathanielsCodeFragrances.wiki'
+[master 5e3737b] Converted NathanielsCodeFragrances.md
+ 2 files changed, 28 insertions(+), 31 deletions(-)
+ create mode 100644 NathanielsCodeFragrances.md
+ delete mode 100644 NathanielsCodeFragrances.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ProposalReview.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	A Place to Capture Information about how the Proposal Review UI Should Work
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Details,Phase-Design,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 8 of input file):
+Issue 82 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 82' to 'Issue 82 (on Google Code)'.
+
+Warning (line 10 of input file):
+Issue 420 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 420' to 'Issue 420 (on Google Code)'.
+
+Warning (line 12 of input file):
+Issue 449 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 449' to 'Issue 449 (on Google Code)'.
+
+Warning (line 14 of input file):
+Issue 463 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 463' to 'Issue 463 (on Google Code)'.
+
+Warning (line 16 of input file):
+Issue 497 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 497' to 'Issue 497 (on Google Code)'.
+
+Warning (line 18 of input file):
+Issue 517 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 517' to 'Issue 517 (on Google Code)'.
+
+Warning (line 20 of input file):
+Issue 524 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 524' to 'Issue 524 (on Google Code)'.
+
+Warning (line 30 of input file):
+Issue 463 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 463' to 'Issue 463 (on Google Code)'.
+
+rm 'ProposalReview.wiki'
+[master fb63324] Converted ProposalReview.md
+ 2 files changed, 39 insertions(+), 43 deletions(-)
+ create mode 100644 ProposalReview.md
+ delete mode 100644 ProposalReview.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GHOP.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Design/discussion for GHOP
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Contents-Review,Phase-Requirements
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 59 of input file):
+Issue 495 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 495' to 'issue 495 (on Google Code)'.
+
+Warning (line 84 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+Warning (line 85 of input file):
+Missing space after list symbol: *, '*' was removed instead.
+
+rm 'GHOP.wiki'
+[master c498d31] Converted GHOP.md
+ 2 files changed, 170 insertions(+), 172 deletions(-)
+ create mode 100644 GHOP.md
+ delete mode 100644 GHOP.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./SurveysModule.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Design/discussion for Surveys
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Requirements,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 31 of input file):
+Issue 520 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 520' to 'Issue 520 (on Google Code)'.
+
+Warning (line 31 of input file):
+Issue 100 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 100' to 'Issue 100 (on Google Code)'.
+
+rm 'SurveysModule.wiki'
+[master eb8e1fb] Converted SurveysModule.md
+ 1 file changed, 26 insertions(+), 29 deletions(-)
+ rename SurveysModule.wiki => SurveysModule.md (77%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2010DataSeeder.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Tracks progress for the data seeder project.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels data-seeder,gsoc2010
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GSoC2010DataSeeder.wiki'
+[master bfc0120] Converted GSoC2010DataSeeder.md
+ 2 files changed, 644 insertions(+), 647 deletions(-)
+ create mode 100644 GSoC2010DataSeeder.md
+ delete mode 100644 GSoC2010DataSeeder.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2011MelangeTesting.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Progress tracker for Melange project: Testing, Code Guru and Quality Assurance, GSoC 2011
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-QA,Importance-Details,Contents-Update
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'GSoC2011MelangeTesting.wiki'
+[master 01892a2] Converted GSoC2011MelangeTesting.md
+ 2 files changed, 149 insertions(+), 153 deletions(-)
+ create mode 100644 GSoC2011MelangeTesting.md
+ delete mode 100644 GSoC2011MelangeTesting.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2011IntegrationWithExternalAPIs.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	tracks progress for the "integration with external apis" project.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Requirements
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 39 of input file):
+Issue 1243 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1243' to 'issue 1243 (on Google Code)'.
+
+Warning (line 43 of input file):
+Issue 1239 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1239' to 'issue 1239 (on Google Code)'.
+
+Warning (line 64 of input file):
+Issue 1239 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1239' to 'issue 1239 (on Google Code)'.
+
+Warning (line 64 of input file):
+Issue 1243 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1243' to 'issue 1243 (on Google Code)'.
+
+rm 'GSoC2011IntegrationWithExternalAPIs.wiki'
+[master 1e96ac2] Converted GSoC2011IntegrationWithExternalAPIs.md
+ 2 files changed, 142 insertions(+), 138 deletions(-)
+ create mode 100644 GSoC2011IntegrationWithExternalAPIs.md
+ delete mode 100644 GSoC2011IntegrationWithExternalAPIs.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./IssueTrackerUse.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	For discussions about the issue tracker
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Guidelines,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'IssueTrackerUse.wiki'
+[master e739218] Converted IssueTrackerUse.md
+ 2 files changed, 88 insertions(+), 81 deletions(-)
+ create mode 100644 IssueTrackerUse.md
+ delete mode 100644 IssueTrackerUse.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./PythonStyleGuide.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Style guide for Python code contributed to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Complete,Phase-Guidelines,Importance-Featured,Featured
+Consider expressing the same information in a different manner.
+
+Warning (line 98 of input file):
+Issue 1596 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'issue 1596' to 'issue 1596 (on Google Code)'.
+
+rm 'PythonStyleGuide.wiki'
+[master 809b97c] Converted PythonStyleGuide.md
+ 1 file changed, 105 insertions(+), 105 deletions(-)
+ rename PythonStyleGuide.wiki => PythonStyleGuide.md (50%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./NewsfeedModule.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	'Sandworm' Newsfeed Module
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Phase-Requirements,Contents-Draft
+Consider expressing the same information in a different manner.
+
+Warning (line 6 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="3" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+Warning (line 87 of input file):
+Unknown plugin was given, outputting as plain text:
+	<link rel="alternate" type="application/rss+xml" title="RSS" href="{{ feed_url }}"/>
+
+Warning (line 127 of input file):
+GFM does not support embedding the YouTube player directly. Instead an image link to the video is being used, maintaining sizing options.
+
+rm 'NewsfeedModule.wiki'
+[master 5b1e0bf] Converted NewsfeedModule.md
+ 1 file changed, 52 insertions(+), 53 deletions(-)
+ rename NewsfeedModule.wiki => NewsfeedModule.md (60%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./NagEmails.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	When Should the System Send Nag Emails
+Consider moving it to an introductory paragraph.
+
+Warning (line 7 of input file):
+Issue 604 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 604' to 'Issue 604 (on Google Code)'.
+
+Warning (line 9 of input file):
+Issue 562 was auto-linked. However, no issue migration map was specified. You can use issue_migration.py to migrate your Google Code issues to GitHub, and supply the resulting issue migration map file to this converter. Your old issues will be auto-linked to your migrated issues. Additionally, because no project name was specified the issue could not be linked to the original Google Code issue page.The auto-link has been removed and the text has been modified from 'Issue 562' to 'Issue 562 (on Google Code)'.
+
+rm 'NagEmails.wiki'
+[master db09911] Converted NagEmails.md
+ 2 files changed, 15 insertions(+), 17 deletions(-)
+ create mode 100644 NagEmails.md
+ delete mode 100644 NagEmails.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ResponsiveLayout.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	How Melange's Responsive Layout works
+Consider moving it to an introductory paragraph.
+
+rm 'ResponsiveLayout.wiki'
+[master ad7f65b] Converted ResponsiveLayout.md
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+ rename ResponsiveLayout.wiki => ResponsiveLayout.md (95%)
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./UserStories.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Template for User Stories
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Phase-Requirements,Contents-Draft,Importance-Useful
+Consider expressing the same information in a different manner.
+
+rm 'UserStories.wiki'
+[master 1805b89] Converted UserStories.md
+ 2 files changed, 34 insertions(+), 37 deletions(-)
+ create mode 100644 UserStories.md
+ delete mode 100644 UserStories.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./GSoC2014Ideas.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Ideas List for GSoC 2014
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Useful,Featured
+Consider expressing the same information in a different manner.
+
+rm 'GSoC2014Ideas.wiki'
+[master 1ca4856] Converted GSoC2014Ideas.md
+ 2 files changed, 122 insertions(+), 125 deletions(-)
+ create mode 100644 GSoC2014Ideas.md
+ delete mode 100644 GSoC2014Ideas.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./CodeReview.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Procedure for Melange Code Review.
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'CodeReview.wiki'
+[master 9fdb871] Converted CodeReview.md
+ 2 files changed, 39 insertions(+), 42 deletions(-)
+ create mode 100644 CodeReview.md
+ delete mode 100644 CodeReview.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./JavascriptStyleGuide.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Style guide for JavaScript code contributed to Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Deprecated,Phase-Guidelines,Contents-Draft
+Consider expressing the same information in a different manner.
+
+rm 'JavascriptStyleGuide.wiki'
+[master 87c0366] Converted JavascriptStyleGuide.md
+ 2 files changed, 90 insertions(+), 93 deletions(-)
+ create mode 100644 JavascriptStyleGuide.md
+ delete mode 100644 JavascriptStyleGuide.wiki
+done
+
+**************************
+Converting wiki: 
+To Markdown    : ./ReleasingMelange.md
+**************************
+Warning (line 1 of input file):
+A summary pragma was used for this wiki:
+	Releasing Melange
+Consider moving it to an introductory paragraph.
+
+Warning (line 2 of input file):
+The following pragma has been ignored:
+	#labels Importance-Featured,Phase-Deploy,Contents-Complete,Featured
+Consider expressing the same information in a different manner.
+
+Warning (line 4 of input file):
+A table of contents plugin was used for this wiki:
+	<wiki:toc max_depth="2" />
+The Gollum wiki system supports table of content generation.
+See https://github.com/gollum/gollum/wiki for more information.
+It has been removed.
+
+rm 'ReleasingMelange.wiki'
+[master 4aa4d2b] Converted ReleasingMelange.md
+ 1 file changed, 17 insertions(+), 20 deletions(-)
+ rename ReleasingMelange.wiki => ReleasingMelange.md (63%)
+done
+
