diff --git a/data/templates/project/VB/NotifyIcon.xpt b/data/templates/project/VB/NotifyIcon.xpt
new file mode 100644
index 0000000000..c8b38aa0d6
--- /dev/null
+++ b/data/templates/project/VB/NotifyIcon.xpt
@@ -0,0 +1,108 @@
+
+
+
+
+
+ ${res:Templates.Project.SysTrayIcon.Name}
+ VB
+ ${res:Templates.File.Categories.WindowsApplications}
+ VBNet.Project.Form
+ ${res:Templates.Project.SysTrayIcon.Description}
+ v2.0;v3.5Client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WinExe
+ Properties
+
+
+
+ Program entry point.
+ ''' Command Line Arguments
+ _
+ Public Shared Sub Main(args As String())
+ Application.EnableVisualStyles()
+ Application.SetCompatibleTextRenderingDefault(False)
+
+ Dim isFirstInstance As Boolean
+ ' Please use a unique name for the mutex to prevent conflicts with other programs
+ Using mtx As New Mutex(True, "${StandardNamespace}", isFirstInstance)
+ If isFirstInstance Then
+ Dim notificationIcon As New NotificationIcon()
+ notificationIcon.notifyIcon.Visible = True
+ Application.Run()
+ notificationIcon.notifyIcon.Dispose()
+ ' The application is already running
+ ' TODO: Display message box or change focus to existing application instance
+ Else
+ End If
+ End Using
+ ' releases the Mutex
+ End Sub
+ #End Region
+
+ #Region "Event Handlers"
+ Private Sub menuAboutClick(sender As Object, e As EventArgs)
+ MessageBox.Show("About This Application")
+ End Sub
+
+ Private Sub menuExitClick(sender As Object, e As EventArgs)
+ Application.[Exit]()
+ End Sub
+
+ Private Sub IconDoubleClick(sender As Object, e As EventArgs)
+ MessageBox.Show("The icon was double clicked")
+ End Sub
+ #End Region
+End Class
+]]>
+
+
+
+
+
+
diff --git a/data/templates/project/VB/NotifyIconResources.resx b/data/templates/project/VB/NotifyIconResources.resx
new file mode 100644
index 0000000000..555241f66d
--- /dev/null
+++ b/data/templates/project/VB/NotifyIconResources.resx
@@ -0,0 +1,546 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAkAMDAQAAAAAABoBgAAlgAAACAgEAAAAAAA6AIAAP4GAAAQEBAAAAAAACgBAADmCQAAMDAAAAEA
+ CACoDgAADgsAACAgAAABAAgAqAgAALYZAAAQEAAAAQAIAGgFAABeIgAAMDAAAAEAIACoJQAAxicAACAg
+ AAABACAAqBAAAG5NAAAQEAAAAQAgAGgEAAAWXgAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAIAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAAAAAAA//8A/wAAAP8A
+ /wD//wAA////AACAAACZmZmZmZmZmZmZmZmZmZmZmZAACZmZmZmZmZmZmZmZmZmZmZmZmZmZAAKiIJmZ
+ mZmZmZmZmZmZmZmZmZmZmZAAKioqIgmZmZmZmZmZmZmZmZmZmZmZmZCioqKiIiCZmZmZmZmZmZAAAACZ
+ kAAAAAAKKioqIiIJmZmZmZmZmQAAAAAJkAAAAAAAoqKiIiIgmZmZmZmZkAdu7ucAkH7u7mcACioqIiIg
+ mZmZmZmZkG7u7u7gAH7u7u7nAKKiIiIgmZmZmZmZkO7uZu7mAH7u7u7uYAoqIiIgmZmZmZmZkH5wAH7u
+ AH7nAAbu5wKiIiIgmZmZmZmZmQAAAA7ucH7nBwB+7gAqIiIgmZmZmZmZmZAAAH7ucH7nAHAG7nCiIiIg
+ mZmZmZmZmQAAB+7uAH7nBwAH7mAqIiIgmZmZmZmZkAB27u7nAH7nAHAH7uCiIiIgmZmZmZmZAAbu7u5w
+ AH7nBwAH7uAqIiIgmZmZmZmQAG7u5nAAAH7nAHAH7uCiIiIgmZmZmZkAcO7mAAAAAH7nBwAH7mAqIiIg
+ mZmZmZAHB+7gAAAAAH7nAAAG7nCiIiIgmZmZmZBwB+7gAAdwAH7nAABu5goqIiIgmZmZmZAHB+7md37g
+ AH7mZmbu5wKiIiIgmZmZmZBwcH7u7u7mAH7u7u7ucCoqIiIgmZmZmZAHBwfu7u5gAH7u7u5gAqKiIiIg
+ mZkAAABwbnAHZncAcHd3d3AAKioqIiIgmZkAcHAO5uZwAAB3YAAAAACioqKqIiIgmZkHBwBu7m5gcAZm
+ dnZ3AHAqKqqqoiIgmZkAcHDm7ubmBwZmZ2dnBwCqqqqqqiIgmZkHBwcObu5uYAZmZnZ2AHCqqqqqqqIg
+ mZkAcHBw5u7m5mZmZmdnZ3cKqqqqqqogmZkHBwcHDm7ubmZmZmZ2dndwqqqqqqqgmZkAAAAAAObu5uZm
+ ZmZ2dnd3CqqqqgAJmZkHd2dmZubu7m5gAABnZ2d3cKqgAACZmZkHd3Z2Zm5u7mAAcHAAdnZ3dwAHZmCZ
+ mZkHd3Z2Zmbm7gcHBwcHB2dnd3d2dmCZmZkHd3dnZmbm7gAAAAAABnZ2d3d3Z2CZmZkHd3d2dmZubuAA
+ AAAAZmdnZ3d3Z2CZmZkHd3d3Z2Zm5u7gAABmZmdnZ3d3dnCZmZkAAAAAAAZmbm7ubmZmZmZ2AAAAAACZ
+ mZmZmZBwcGdmZubu5uZmZmZnYHBwmZmZmZmZmZAHB2dmZubu7m5mZmZmdgcAmZmZmZmZmZBwd3Z3YA5u
+ 7ubmAGZmdnBwmZmZmZmZmZAHd3dmCQbm7u5uCQZmZ2cAmZmZmZmZmZB3d3dwmQZubu5uCZBmZnZwmZmZ
+ mZmZmZkHd3cJmQZm5u7mCZkGZmcJmZmZmZmZmZmQd3CZmQZm5u7uCZmQZmCZmZmZmZmZmZmZBwmZmQZm
+ bm7uCZmZBgmZmZmZmZmZmZmZkJmZmQZmZubuCZmZkJmZmZmZmZmZmZmZmZmZmQZmZm5uCZmZmZmZmZmZ
+ mZmZmZmZmZmZmQAAAAAACZmZmZmZmZmZmZn/////4f8AAP////8A/wAA////+AB/AAD////4AD8AAP/g
+ OAAAHwAA/8AYAAAPAAD/gAgAAA8AAP+AAAAADwAA/4AAAAAPAAD/gAAAAA8AAP/AAAAADwAA/+AAAAAP
+ AAD/wAAAAA8AAP+AAAAADwAA/wAAAAAPAAD+AAAAAA8AAPwAAAAADwAA+AAAAAAPAAD4AAAAAA8AAPgA
+ AAAADwAA+AAAAAAPAAD4AAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP
+ AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAfAAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAA
+ AAAAPwAAAAAAAAA/AAAAAAAAAD8AAPgAAAAD/wAA+AAAAAP/AAD4AAAAA/8AAPgBABAD/wAA+AMAGAP/
+ AAD8BwAcB/8AAP4PAB4P/wAA/x8AHx//AAD/vwAfv/8AAP//AB///wAA//8AH///AAAoAAAAIAAAAEAA
+ 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
+ sgACs64AAq2oAAF1cgABbGkAAWNgAAFaWAADxL4AAqWhAAKJhQAChoIAAoSAAAKCfgABR0UAAoB9AAJ9
+ egACe3gAAnl2AAJ4dQACd3QAAnVyAAJzcAACcm8AAnFuAAJwbQACbWoAAmtoAAJpZgACaGUAAmViAAXJ
+ xAAFwLsADcbCABTMygAAGhoAABERAAAICAAZ09MAH8/RACbX2QAkzs4AIc7RAC7e4gA12d8AOuLpAEPb
+ 5ABH5e8AQ9PeAP///wDu7u4A3t7eAM7OzgC6uroAuLi4ALW1tQCqqqoAmZmZAJSUlACIiIgAenp6AHV1
+ dQBlZWUAVVVVAERERAA6OjoAMDAwACsrKwAkJCQAIyMjACAgIAAbGxsAFxcXABAQEAAAAAAAmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/////mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZn///+qqqjH/5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/
+ ///Myqyrqamoqv+ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/u7Kxr67IxqaoqMv/
+ mZmZmZmZmZmZmZmZmZmZmZn/////////mZmZ/////////////7O70q+uqqaoqa7R/5mZmZmZmZmZmZmZ
+ mZmZmf/9//v//////5mZ//////////////+8s9LOyamopq2xs/+ZmZmZmZmZmZmZmZmZ///y6Obm5ubu
+ /v+Z//Lm5ubm5ury+///vLuxy6mqxayxs/+ZmZmZmZmZmZmZmZmZ/+rm5ubm5ubm5/v6//Lm5ubm5ubm
+ 5vL//7yyzqqrxayws/+ZmZmZmZmZmZmZmZmZ/+bm5ufq6Obm5ur///Lm5ubm5ubm5ubt//+7navIxcjP
+ s/+ZmZmZmZmZmZmZmZmZ//Pm7v8C//Dm5ub///Lm5vL////t5ubm8P+7uqusp8ivu/+ZmZmZmZmZmZmZ
+ mZmZmf/////////m5ub///Lm5vL/8vb/7ubm5vv/usjIp6vOu/+ZmZmZmZmZmZmZmZmZmZn///////Xm
+ 5ub///Lm5vL/7+z//+jm5vDYusfIparN0/+ZmZmZmZmZmZmZmZmZmf/////77ubm5uf/IfLm5vL/7+v/
+ 2fDm5ur/namrpanM0/+ZmZmZmZmZmZmZmZmZ//z/8+nm5ubm5vKYB/Lm5vL/7+z/mvXm5ub/nKWowqbL
+ sv+ZmZmZmZmZmZmZmZn/Av7p5ubm5ubm8v+Xl/Lm5vL/8O3/w/Xm5ub/ucGmwaeusv+ZmZmZmZmZmZmZ
+ mf9i/+rm5ubm6PD7/ySNJPLm5vL/8O//mvPm5uf/qb/EwMSt0v+ZmZmZmZmZmZmZ/41C/ubm5u33//+W
+ Yl1dJPLm5vL/8vH//+7m5u3awaLBv8Ks0f+ZmZmZmZmZmZn/hmZl9ebm5v769P9CZWWGQvLm5vL/////
+ 9+bm5vOao6C/o8HIsf+ZmZmZmZmZmZn/hYVi9+bm5vv/+P/19ACNQvLm5vL/+f/15+bm6P+8oJ6josCr
+ 0P+ZmZmZmZmZmZn/Vlhd/+fm5un09e7m5/cHRPLm5ury8u3m5ubm9dmgnr6iosCqsP+ZmZmZmZmZmZn/
+ iIRhAfLm5ubm5ubm5uqWYvLm5ubm5ubm5ubz/8u+uLihob+or/+ZmZmZmZmZmZn/XIxbVf/y5ubm5ubm
+ 6feXjfLm5ubm5ubm6vf/u7i4t7egoaOmr/+ZmZmZ////////i1o4GFX/+/Lq6u70/2pwJ/Xy8vLy8vP7
+ /5qit7a2pKSgoKOnzv+ZmZmZ/2aGhmb/WT1AORiAjZZqal4vk5JJk5EnXY1lYmL/nqSktbW15eWfoKOl
+ zf+ZmZmZ/4qKior/HBsdQDkYM1tBQYRQeJVKkkZrQ46EQWT/vb294+Pj3tfWn6KlzP+ZmZmZ/4iIiIiI
+ GxwbGR84FxNaWoh9enZOdXFGkGmIWlr/1OTk4+Hd39fW1Z/Crv+ZmZmZ/1dXV1dXVxsbGxkfOBcTWYhU
+ fXt2lHVuRpCIWWf/5OTk4+Hd3NfWtJufrv+ZmZmZ/2RkZGRkZGQbGxs+HzgYM4FSU317d5R1SGxrQ45j
+ /+Tk4uDd29fWtLSbn/+ZmZmZ/1lZWVlZWVlZGxsdPjw5GDOBUlN+T01Lckdta4+OX//k4uDd29fUvbS0
+ m/+ZmZmZ/1lZWVlZWVlZWRsbGz88OjQwgVJRgE94THNHbUWPZ1//4uDd29fU1P///5mZmZmZ/wUIJikM
+ DhARMTcbGz0ePDo0MIiIiIiITnRub5BpaGdf/+Dd2////zz/mZmZmZmZ/yIFCCYpKw0QExU2GxwdHziI
+ iIuLi4uLiIh1bkaQaWhnWf///5J4UyD/mZmZmZmZ/wMiBgkKKisuDxIUNhsbHYiHh4eHh4eHh4eISkhs
+ a0OOY1laZ2tzUFT/mZmZmZmZ/wMDIwYJKAssLTAyFh0bG4iMjIyMYIyMjIyIS3JHbWtDjmNZWo5tSnn/
+ mZmZmZmZ/wMDBCMICSgMDi0RMjUcGz2IiIiIiIiIiIhPTUtzR21Fj2dfWVlobEv/mZmZmZmZ/wMDAwQF
+ CCYpDA4QETE3GxsZHoiIiIiIVHyAeU50cW+QaWhnX1pfQ2//mZmZmZmZ//////+CYWFhYWENEBIVNhsc
+ GR84FxMwUlR8endOdW6JiYmJiYL/////mZmZmZmZmZmZmZn/YWFhWSorLg8SFB0bGx0fORgzgVJUfXt3
+ lEpIWSWJJf+ZmZmZmZmZmZmZmZmZmZn/XINZCSgLLC0wMhYdGxs+PDkYM4FSU397TUtyR1lcXP+ZmZmZ
+ mZmZmZmZmZmZmZn/QVkjCCYoDA4t//81GRs9Pzw6NDD//1GAeXhMc29ZQf+ZmZmZmZmZmZmZmZmZmZn/
+ WQMEBQgmKQz/mf8xNxscPR48FzT/mf98enlOTHFvWf+ZmZmZmZmZmZmZmZmZmZn/AwMDIgUIJv+Zmf8S
+ FDYbGx0fOBf/mZn/fXp3TnVuRv+ZmZmZmZmZmZmZmZmZmZmZ/wMDAyIF/5mZmf8PEhQ2Ghs+Hzj/mZmZ
+ /317d5RK/5mZmZmZmZmZmZmZmZmZmZmZmf8DAwP/mZmZmf8tMDIWGRscPjz/mZmZmf9+T03/mZmZmZmZ
+ mZmZmZmZmZmZmZmZmZn/A/+ZmZmZmf8OLREyNRkbPT//mZmZmZn/gP+ZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZ/5mZmZmZmf8MDhARMTccGxn/mZmZmZmZ/5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmf8p
+ Kw0QEhU2Oxv/mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmf//////////////mZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZ/////+H/AAD/////AP8AAP////gAfwAA////+AA/AAD/4DgAAB8AAP/A
+ GAAADwAA/4AIAAAPAAD/gAAAAA8AAP+AAAAADwAA/4AAAAAPAAD/wAAAAA8AAP/gAAAADwAA/8AAAAAP
+ AAD/gAAAAA8AAP8AAAAADwAA/gAAAAAPAAD8AAAAAA8AAPgAAAAADwAA+AAAAAAPAAD4AAAAAA8AAPgA
+ AAAADwAA+AAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP
+ AAAAAAAAAA8AAAAAAAAAHwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAA
+ AAAAPwAAAAAAAAA/AAD4AAAAA/8AAPgAAAAD/wAA+AAAAAP/AAD4AQAQA/8AAPgDABgD/wAA/AcAHAf/
+ AAD+DwAeD/8AAP8fAB8f/wAA/78AH7//AAD//wAf//8AAP//AB///wAAKAAAACAAAABAAAAAAQAIAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAABsaGwBJRUAA8ujaAOLWwwDVy7sA/vTkAPjv4QCZhmMAeGlOAKqV
+ bwCOfF0ArJdxAJOBYQA5MiYAoo9tAH1uVQC1oH0Aqph3AK2bewC5poUAp5d6ALmpjAC3qZEA2cy2ANzQ
+ ugDWzLoA593LAO7k0wDt49IA6+HQAOfezgDx6NgA6+LTAPTr3ADz6tsA8OfYAPfu3wDz690A+fHjAC0o
+ HgCdjGoAFhQQALWlhwCyo4UAJCEbAMO1mQC4q5MAo5iCAJ2TfwCelIEA0sWtAOHUvAC1q5cAzMGrAJOL
+ ewDl2sUA7OHMANPKuAD37dkA6d/MANnQvgDXzr0AyMCwAHx3bQD47tsA5NvKAOLZyABNSkQA9+7cAPLp
+ 2ADw59YA/fTjAOzk1ADp4dEA7+fXAOvj1AD17d4A9OzdAPHp2gDt5dYAQD46AGVbRgBWTjwAd2xUAGxi
+ TAA2MSYAYFdEAJCEagCbj3UAiH5oAJuQdwCbkHgAnZJ7AKSZggCnnIUAzL+kAHNsXQCxp5EAmpF+ALCm
+ kQCto44Aw7mjALqwmwCxqJUAu7KeAL+2ogDDuqcA0sm2AN3VxADm39AAXVQ+AGddRgB1alAAY1pFAF1V
+ QQByaFAAaF9JAHBmTwBEPjAAlIdpAIl9YQB/dFoAeW9WAHFnUABIQjMAhXpgAEhCNACLgGUAgXdeAI2C
+ aACIfmUAb2dTAJaLcQAoJR4AkohvAGFaSgCXjXUAkohxALSpjwChl4AArqSNAKifiQCroowAsaiSAMa8
+ pAC4r5kAt66YAMC3oQC9tJ8AxLumAP/45wBmXUUAaWFKAFVOPABkXEcATUc3AG1lTwBqYk0AeG9YAIF4
+ YABxaVQAkIZsAIqCbACEfWsAtq2WAP/56QAdGxUAMS4lABAPCgD///0AW1taAAAAAAAABwYADSUjAACz
+ rQABuLIAAWllAAFbWAACm5YAApOOAAKOiQACiIMAAVVSAAKAfAACfnoAAn14AAJ8dwACe3cAAnl1AAJ2
+ cgACcW0AAm9rAAJtaQABPDkAAlxZAAJWUwAMKyoADCgnAA0nJgANJiUADSUkAAAoJwABZGEAA8jCAAKk
+ nwACnZkAApWRAAKKhgAChYEABNLNAAJ3dAACdHEAAnNwAAJybwACcW4AAm1qAAJraAACamcAAmlmAATB
+ vAACX10ABq2oAA3Z1gAOv7wAEcnHAAAJCQAb09MABBoaACPMzgAiw8UAByIiAC/x9QAq2NsAKLG1ADjX
+ 3gBA3OUAPM3UAE3z/gA4u8QA////AO7u7gDm5uYA3t7eAM7OzgC6uroAra2tAJubmwCZmZkAgICAAHd3
+ dwBlZWUAMTExACUlJQATExMAAgICAAAAAACrq6urq6urq6urq6urq6urq6urq6urq62tra2rq6urq6ur
+ q6urq6urq6urq6urq6urq6utra2t3Lq3wq2rq6urq6urq6urq////////6v//////63/trDZ19W4wq2r
+ q6urq6urq6v////////8////////////tsrA1b29w62rq6urq6ur///68O/v8Pn///Hv7+/0+v//ttnW
+ 077Axqurq6urq6v//+/v8/Pv76r/8e/v7+/v9P//sb7T1dqtq6urq6urq6v//////fXv9f/x7/////Dv
+ 9//B1L3U2Mirq6urq6urq6v///z/9+/0//Hv///j/+/v/8HTvdPAyKurq6urq6ur+/3/qvTv7/n/8e//
+ /+bj8u//wby70r/Hq6urq6urqyn/+/Lv7+/0p//x7///5sn07//BuLm8vserq6urq6spUv/w7+/2qlV2
+ //Hv///j4fLv/8HQt7nUxqurq6urKXxS/+/v//+m////8e///6z/7+//wbTQt9PGq6urq6spUlL/7+//
+ ///4///x7//+//Dv9/+yzs/Q0serq6urqylWdv/z7/D07+////Hv7+/v7/P/sczNtNC8xqurKSkpAFEx
+ Afv07+/v+P//8e/v7/L3/7HdrsyztbvGq6spm5uojSVsP///////Nv///////8Wxrq/f3bPPucWrqyx0
+ cX5NAkttPYKXYmaOL4iGnHrFy9vk5Orlzc+4xaurhXp1dTAGIUhJPZ9klZKMXVyegMXn6+vq5ODbsrjG
+ q6sneHl5cC8kAk8eQhk1amZjL1qhxezt6+ji4MvbzMSrq6d3f4FXeGYmTktBQms0Y41hXYiBxe7n6OLe
+ 0a+vxaurDRAqLTUYGh8iIyJponF0mFmLi4SBxenn4sXFxcWrq6tVCxEqLV8YOwImPm5ve3V1b51eXIZ/
+ xcXFYDYnq6urqw0JDhIVLTIzHSRsnG6aUZpyn2FeW4Z/fYChpCerq6urJwcKKBQrLjUDHCYeZ52DoGeU
+ kYxdhoJ9gHqJJ6urq6tDQ0NDQ1JUFhc3RSRMSh5sOTVpNIxZcXJDQ0NDq6urq6urq0OaUystXzMEIE0f
+ IEI8amhlj4yEc3ZDq6urq6urq6urQ3koEipfNkNDBSJKSUZQQ2iTYY1YmUOrq6urq6urq6tDDA4OE1lD
+ q0NAIiJPREOrQ5SUZIqHQ6urq6urq6urq6tDBwkPQ6urQzgbIQJHQ6urQ2iQo0Orq6urq6urq6urq6tD
+ CEOrq6tDMzdGIqVDq6urQzZDq6urq6urq6urq6urq6tDq6urq0MzNzqWqUOrq6urQ6urq6urq6urq6ur
+ q6urq6urq6urQ0NDQ0NDQ6urq6urq6urq6urq6ur///+H///4A/+BAAH/AAAA/gAAAP4AAAD/AAAA/4A
+ AAP8AAAD+AAAA/AAAAPgAAAD4AAAA+AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAADwAA
+ AA8AAAAPAAAAD+AAAD/gAAA/4CAgP/BgMH/44Dj//eA9///gP/8oAAAAEAAAACAAAAABAAgAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA0MCmAMe5ogDy6NgA7uTUAPfu4ACAcVYAtqF9AObaxQDo3coA1827AOng
+ 0ADo388A/vXlAPrx4QD37t4AxrKNAKubfQConIUAuK6aAOvfxwDHvakAzcSzAPDo2QD58eIAbWJLAEQ+
+ MQCpm30AppqAAJiNdQCRinsAt6+dALqyoACGe2AAiH1iAHRrVgCQhm0AmI52AExHOwCakHgAo5mCAKac
+ hQC7sZoAn5eDAEpFOAC6sJYAuK+YAL61ngC1rZgAo5yKAP//8gAAAAAAAVFOAAGuqQACz8kAAoJ+ADDw
+ 9AAw7/MA////AL+/vwBBQUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjIyMjIyMjIyMjMzMjIyMjw8PDw8PDw8PDw1NDMyMjI8Ojk5
+ Ozw6OTo7PDQ2MzIyPDw7Ojo8OTw7Ojw0NjMyMjw7Ojo7PDk8PDk8NDYzMiU8Ojo7PDw5PDs6PDQ2MzIl
+ PDs5OTo8Ojk6Ozw0NjM8JRU8PDw8PDw8PDw4ODYzJSUlFgsSFC0kITM4ODg4MyUaGwkECiUlKBwgMzc4
+ MzMlDwAHDR8lJSInKxkzMzIyJSUlEQgCHiovLiYlJSUyMjIlGBABJRcOJR0pIyUyMjIyJQUGJSUDDCUl
+ MCwlMjIyMjIlJTIlEzElMiUlMjIyMjIyMjIyJSUlJTIyMjIyMjL/86urwAH7/cAA9O/AAP/xwAD/5oAA
+ 7/+AALvSAACrqwAAq6sAAP/7AAPv7wAD//GAB//mgAfv/8hPubz4f6urKAAAADAAAABgAAAAAQAgAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA
+ AAQAAAAGAAAACQAAAAwAAAAPAAAAEQAAABIAAAASAAAAEAAAAA4AAAAMAAAACgAAAAkAAAAKAAAADAAA
+ AA0AAAAOAAAADwAAAA8AAAAOAAAADQAAAAsAAAAJAAAABwAAAAUAAAADAAAA/wAAAP8AAAD/AAAA/wAA
+ AH8AAAB/AAAAfwAAAH8AAAA/AAAAPwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEAAAACAAAABQAAAAkAAAAOAAAAFAAAABkAAAAeAAAAIQAAACIAAAAhAAAAHwAAABwAAAAYAAAAFQAA
+ ABQAAAAVAAAAGAAAABoAAAAcAAAAHgAAAB4AAAAdAAAAGwAAABgAAAAUAAAA/wAAAP8AAAD/Anp2/wJ6
+ dv8Ce3f/Anl2/wAAAP8AAAB/AAAAfwAAAH8AAAB/AAAAfwAAAD8AAAAfAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAIAAAAFAAAACgAAABEAAAAZAAAAIgAAACsAAAAxAAAANQAAADcAAAA2AAAAMwAA
+ AC4AAAApAAAAJgAAACQAAAAlAAAAKQAAACwAAAAwAAAAMgAAADIAAAAxAAAA/wAAAP8AAAD/AnJu/wJ1
+ cv8Cd3P/Anl1/wJ8eP8CfHj/Ant3/wJ6dv8AAAD/AAAAfwAAAH8AAAB/AAAAfwAAAH8AAAA/AAAAHwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAIAAAADwAAABoAAAAoAAAANAAAAEAAAABIAAAATQAA
+ AE8AAABOAAAASwAAAEUAAAA/AAAAOgAAADgAAAA5AAAAPgAAAEMAAABIAAAASwAAAEwAAABKAAAA/wFj
+ YP8CZmP/Amtn/wJva/8CdHD/Anh0/wJ7eP8CfXn/Ant3/wJ8d/8Cc2//AAAA/wAAAH8AAAB/AAAAfwAA
+ AH8AAAA/AAAAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAFgAAACQAAAA1AAAARQAA
+ AGcAAACHAAAAigAAAIsAAACLAAAAXgAAAFgAAABTAAAATgAAAEsAAABMAAAAUQAAAFYAAABaAAAAXgAA
+ AF8AAABdAAAA/wFaV/8BXVv/AWJf/wJoZP8Cb2r/AnRx/wJ6dv8CfXn/Anx3/wJ8eP8CdHD/Amll/wAA
+ AP8AAAD/AAAAfwAAAH8AAAA/AAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAANAAAAGgAA
+ ACoAAACXAAAA6AAAAP8gICD/RERE/0RERP8AAAD/AAAA/wAAAMIAAABtAAAAXwAAAKcAAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEtLP8BS0n/AVtY/wFgXf8CaGX/AnBs/wJ3dP8CfXj/Ant3/wJ9
+ ef8CdnH/Ampn/wJfW/8AAAD/AAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAUAAAAOAAAAKQAAAMYAAAD/dXV1/97e3v//////////////////////mZmZ/xAQEP8AAAD1AAAAfgAA
+ AK11dXX///////////////////////////+6urr/dXV1/yAgIP8AAAD/AS8t/wFbV/8BYl//Amtn/wJz
+ cP8CfHj/Anp2/wJ9ev8Cd3L/Amtn/wJfXf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQAAAAUAAAANAAAAZhAQEP+6urr//////////////////////////////////////+7u
+ 7v8gICD/AAAA3AAAALZ1dXX///////////////////////////////////////////91dXX/AAAA/wAd
+ HP8BXFr/AWZj/wJwbf8Ce3b/Anp1/wJ9ev8Cd3P/Amxp/wJhXf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAZFVVVf/////////////////u7u7/urq6/97e
+ 3v////////////////+6urr/AAAA/wAAAMF1dXX/////////////////////////////////////////
+ ////////qqqq/wAAAP8AKij/AWNf/wJuav8CeXX/Anh1/wJ9ev8CeHT/Am1q/wJhXv8AAAD/AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAJAAAAYgAAAP9lZWX//////5mZ
+ mf8AAAD/AAAA9QAAAP+JiYn/////////////////ICAg/wAAAMZ1dXX///////////91dXX/AAAA/wAA
+ AP8wMDD/qqqq/////////////////4mJif8AAAD/AVVS/wFsaf8CeXT/Andz/wJ+ev8CeHT/Am5r/wJi
+ X/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAIAAAAFgAA
+ AIMAAAD/RERE/wAAAP8AAAC/AAAAaQAAALwAAAD/////////////////RERE/wAAAMR1dXX/////////
+ //91dXX/AAAAvAAAAIoAAADFAAAA/5mZmf////////////////8gICD/ACwr/wFsaP8CeHX/Anh0/wJ+
+ ev8CeXX/AnBs/wJkYP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAMAAAANAAAAJgAAAEgAAACLAAAAkAAAAI4AAAB5AAAAxAAAAP9ERET/////////////////MDAw/wAA
+ AP91dXX///////////91dXX/AAAA/wAAAGoAAABJAAAA/wAAAP/e3t7///////////+JiYn/ABoa/wFs
+ af8CeXb/Anh0/wKAe/8Cenb/AnFt/wJlYf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQAAAAgAAAAeAAAAPwAAAFoAAABtAAAArQAAAOUAAAD/ICAg/5mZmf//////////////
+ ///u7u7/AAAA/xsYEv91dXX///////////91dXX/AAAA/wAAAGoAAABHAAAA/wAQD/+JiYn/////////
+ //+6urr/AAAA/wFuav8CfHj/Anl1/wKAe/8CfHj/AnJu/wJlYv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABkAAAA4AAAAUQAAAP8AAADkAAAA/2VlZf/Ozs7/////////
+ //////////////////91dXX/AwMC/xwZE/91dXX///////////91dXX/AAAA/wAAAG0AAABMAAAA/wA4
+ N/9ERET/////////////////AAAA/wFxbP8Cf3v/Ant3/wKCfv8CfXn/AnNv/wJnY/8AAAD/AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAC0AAABIAAAA/w8OC/8QEBD/zs7O////
+ /////////////////////////////3V1df8AAAD/IB4X/yEeF/91dXX///////////91dXX/AAAA/wAA
+ AHMAAABXAAAA/wFHRf9ERET/////////////////AAAA/wF1cv8ChID/An55/wKEf/8Cfnr/AnRw/wJn
+ ZP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAADYAAAD/OTQo/wAA
+ AP+6urr//////////////////////97e3v+JiYn/ICAg/wAAAP8kIRn/RD4w/yUiGv91dXX/////////
+ //91dXX/AAAA/wAAAH0AAABtAAAA/wAtK/9lZWX////////////u7u7/AAAA/wJ8eP8CiYX/AoB9/wKG
+ gv8Cf33/AnVx/wJoZf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA
+ AP9FPzH/MCsh/xAQEP////////////////+qqqr/MDAw/wAAAP8AAAD/HhwW/zw3K/9HQTL/SUM0/ygk
+ HP91dXX///////////91dXX/AAAA/wAAAIsAAACFAAAA/wAAAP+ZmZn///////////+qqqr/AAgI/wKE
+ gP8Cj4v/AoSA/wKKhf8Cg37/AnZz/wJpZv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAA/05HN/9LRTb/NC8k/0RERP////////////////8QEBD/AAAA3QAAAKsAAAD/Lysh/zEt
+ I/8zLyT/Tkg3/ysoHv91dXX///////////91dXX/AAAA/wAAAJIAAACuAAAA/zAwMP//////////////
+ //9lZWX/ACsp/wKNh/8Cl5L/AoiE/wKMiP8Cg3//Anh0/wJqZ/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAQAAAAMAAAAEAAAABAAAAAQAAAA/1VOPP9TSzr/OTQp/zAwMP////////////////8gICD/AAAA/wAA
+ ANQAAAD/RERE/1VVVf8GBQT/RUAy/y8rIv91dXX///////////91dXX/AAAA/wAAANsAAAD/RERE/+7u
+ 7v///////////97e3v8AAAD/AVRS/wKXk/8Cn5v/AoyH/wKPiv8ChoH/Anl1/wJraP8AAAD/AAAAAAAA
+ AAAAAAAAAAAAAAAAAAwAAAAkAAAAMAAAADAAAAAwAAAA/11VQf9bU0D/R0Ay/wAAAP/u7u7/////////
+ ///Ozs7/VVVV/0RERP+ZmZn//////+7u7v8wMDD/GxkU/zQwJ/91dXX///////////+6urr/dXV1/3V1
+ df+qqqr//////////////////////0RERP8AEhL/ApiT/wKhm/8CpqL/ApCM/wKRjP8ChoL/Anp2/wJt
+ af8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAABAAAAA/2NbRv9iWkX/X1dD/wgH
+ Bv91dXX///////////////////////////////////////////+6urr/HhwX/zo2LP91dXX/////////
+ ////////////////////////////////////////ZWVl/wAAAP8Bc3D/AqSf/wKqpf8Crqr/ApOO/wKT
+ jv8CiYT/Ant3/wJua/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAABAAAAA/2ti
+ TP9pYEv/f3Ra/3NuZv8AAAD/dXV1/////////////////////////////////87Ozv8wMDD/IiAb/0M+
+ Mv91dXX//////////////////////////////////////7q6uv8wMDD/AAAA/wFkYP8Cq6b/Aq+p/wKy
+ rf8CtK//ApWR/wKUj/8Ci4b/An15/wJva/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/3NoUf+Cd1z/6ODR/+DYyf9zb2b/AAAA/yAgIP91dXX/urq6/7q6uv+ZmZn/VVVV/wAA
+ AP8cGxf/dG1c/0pFOf9ERET/dXV1/3V1df91dXX/dXV1/3V1df9lZWX/ICAg/wAAAP8BLy3/ApCL/wKz
+ rv8CtrH/Ariy/wK6s/8CurT/ApeS/wKXkv8Ci4f/An56/wJwbf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
+ AP9NRzf/Tkc3/05INv9NRzf/AAAA/4N4Xf/x6dr/7eXW/+ff0P/h2cj/vLWm/0M9MP8eHBb/HhsV/x4b
+ Ff8YFhH/REA4/29pW/+hmIP/nZN+/29oV/9OSTz/S0U4/0dCNf9EPzL/MS0j/zw3Kv88Nyv/AAAA/wOi
+ nf8DurX/A7y2/wK8t/8Cvbj/Ar+4/0LT3v9D093/ApqV/wKYk/8CjYj/An97/wJxbv8AAAD/AAAAAAAA
+ AAAAAAAAAAAAAAAAAP9ZUj//WVI//1lRP/9ZUT7/AAAA//Lp2v/z6tv/8OjZ/+3l1v/n39D/4drK/9vT
+ wf9+dFr/em9W/3pvVv9gWET/t62a/7Oqlf+uppD/qZ+J/6Kagv+cknv/k4py/46Da/+Jf2X/YFhE/3pv
+ Vv97cVf/AAAA/wPEvv8DxL7/A8S+/0Xa5P9E2eP/Rdji/yTOzv8aycj/EMTB/wKalf8Cj4r/AoB8/wJy
+ b/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP9kXEf/ZFxH/2RcR/9kXEf/ZFxH//Pq2//y6dr/8+rb//Hp
+ 2f/t5dX/6ODQ/+Pbyv/d1cP/gXdc/4F3XP9jW0b/wrmk/720n/+4r5n/saiS/6uhiv+lm4P/nZN7/5eM
+ c/+Rh23/Y1tG/4J3XP+Cd1z/AAAA/wPLxP9I4ez/R+Dq/0Hc5f822N//K9PX/yHO0f8Yycn/DsXC/wXA
+ u/8CmpX/AoJ+/wJ0cP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP9wZk//cGdP/3BmT/9wZk//cGZP/3Bm
+ T//z6tv/8+rb//Lq2//x6dn/7eTV/+jg0P/k28r/3dTD/4N4Xf9kXEf/ycCs/8K5pf+9s57/uK+Z/7Gn
+ kf+roYr/pJqC/52Sev+XjXP/ZFxH/4N4Xf+HfWL/AAAA/0nn8v9I5fD/RuPt/z/f5v802t//KdXY/x/P
+ 0f8Uy8n/DMbB/wPBvP8CwLr/ApuW/wJ0cf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP97cFf/e3FX/3tw
+ WP97cVj/e3FY/3twWP97cVj/8+rb//Pq2//y6tv/8OfY/+zk1f/o4ND/4tnJ/9vSwf/Vzbr/z8Wy/8i+
+ qv/CuaT/vLOe/7atl/+wpY//qqGJ/6KXgP+bkHj/lYpx/4+Fa/+Kf2X/hntg/wAAAP9J6PP/RuXw/zzg
+ 6P8x2+H/J9bY/xzR0v8TzMr/CcfD/wLDvv8Cwrz/AsC6/wKblv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
+ AP+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf+DeF3/g3hd//Pq2//z6tv/8eja/+/n2P/r49P/5t7O/+HY
+ x//a0cD/1My5/87Fsf/Gvan/wbij/7uxnP+1q5X/rqSO/6ieh/+hl3//mo93/5SKcP+Og2n/iX5k/4V6
+ YP8AAAD/Refx/zrj6f8v3eH/Jdja/xvS0v8Qzsr/B8jE/wPFv/8Cw77/AsK8/wLAuv8AAAD/AAAAAAAA
+ AAAAAAAAAAAAAAAAAP+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf/z6tv/8+rb//Lq
+ 2//u5tf/6uLS/+Xczf/g18b/2dC+/9LKt//Mwq//xbyn/7+2of+6sZv/s6qU/62kjf+nnYb/oJV9/5iO
+ dv+TiG//joRp/4h9Y/+Fel//AAAA/zjk6/8t3uL/Itnb/xjU0v8Nzsv/BcrE/wPHwv8AAAD/AAAA/wAA
+ AP8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+kknH/q5l6/7Sjhf+8rJD/xLab/8u9pf/VyLH/3tK9/+fc
+ yv/u5dT/8+vb//Pq2//x6dr/7ubW/+ri0v/l3cz/3tXE/9jQvf9kXEf/ZFxH/2RcR/9kXEf/ZFxH/7Kp
+ k/+soov/pZqD/56UfP+YjXT/kodu/4yBZ/+IfWP/hHlf/wAAAP8q4OP/INvb/xXV1P8AAAD/AAAA/wAA
+ AP/o4dj/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+hjmv/ppNy/62bfP+2pYf/va6T/8a4
+ nv/Nv6f/1sq0/9/UwP/p383/8OfW//Pq2//y6dv/8OjZ/+3k1f/o4ND/ZFxH/2RcR/90alL/c2pS/3Rq
+ Uv9zalL/c2pS/2RcR/9kXEf/q6GK/6Sagv+dknr/l41z/5GGbP+LgGb/h31i/4R5Xv8AAAD/AAAA/wAA
+ AP+imYP/sqmX/8S8rP/a08f/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+diWb/oo9s/6iW
+ df+vnn//t6eK/7+wlf/HuZ//zsGp/9jMtv/i18P/6uDP//Hn1//z6tv/8urb//Do2P9kXEf/bmVO/25l
+ Tv9uZU7/bmVO/25lTv9uZU7/bmVO/25lTv9uZU7/ZFxH/6qgif+imIH/m5F5/5WKcf+PhGv/in9l/4Z7
+ Yf+EeV7/gndd/4h9Y/+UinP/pZyH/7Wsmv/IwLH/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA
+ AP+diWb/nYlm/6KQbv+pl3f/saGC/7mpjP/Bspf/yLqh/9HErP/bz7n/5NnF/+zi0f/x6Nn/8+rb//Lq
+ 2/9kXEf/aWBK/2hgSv9oYEr/aWBK/2hfSv9oYEr/aGBK/2hgSv9oYEr/ZFxH/66kjv+onof/oZd//5qP
+ d/+UinD/j4Vq/4l+ZP+Ge2D/g3hd/4J3Xf+JfmX/mI93/6ifi/+3r53/AAAA/wAAACQAAAAMAAAAAAAA
+ AAAAAAAAAAAAAAAAAP+diWb/nYlm/56LaP+kkXD/q5l5/7Khg/+7q47/w7SZ/8q9pP/Sxa7/3NC7/+Xa
+ x//t5NL/8ura//Pr2//x6dr/ZFxH/2RcR/9kXEf/ZFxH/2RcR/9kXEf/ZFxH/2RcR/9kXEf/urGb/7Sr
+ lP+upI3/p52G/6CVff+Zj3b/k4hv/42Daf+IfWP/hXpf/4N4Xf+DeF3/jIJo/5qRev+spI//AAAA/wAA
+ AAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAP+diWb/nYlm/52JZv+fjGn/pZNx/6uae/+0o4X/vKyQ/8S2
+ m//LvaX/1cix/93Rvf/n3Mr/7uXU//Pq2//z6tv/8enZ/+7m1v9kXEf/ZFxH/2RcR/9kXEf/ZFxH/8vB
+ rv/Eu6b/v7ah/7mwmv+yqJP/rKKL/6abhP+elHz/mI50/5KHbf+Mgmj/iH1j/4V6X/+Cd13/hHlf/4+E
+ a/+elX//AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/Pzos/15W
+ Q/9eVkP/XlZD/15WQ/9eVkP/zb+n/9bJs//g1cH/6d7M//Dm1v/z69v/8unb//Hp2f/t5dX/6ODQ/+Pa
+ yv/d1MP/1868/9DItf/Jv6z/w7ql/720n/+3rpj/saiS/6uhiv+kmoL/XVZC/11WQv9dVkL/XVZC/11W
+ Qv8/Oiz/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAA/15WQ/9eVkL/XlZD/4N4Xf+/sZX/x7mf/8/Cqv/YzLb/4tfD/+rgz//x6Nj/8+rb//Lq
+ 2//w6Nj/7OTU/+ffz//i2sn/29LB/9XMuv/PxrL/yL+r/8K5pP+8s57/tq2Y/7CnkP+pn4j/opiB/4N4
+ Xf9eVUP/XVZC/15VQv8AAAD/AAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAA/2tiTP9rYkv/g3hd/7Gggf+6q43/wbKY/8m7of/Rxa3/2s65/+PY
+ xf/s4tH/8ejZ//Pq2//y6tv/7+fY/+vj0//n387/4djH/9rRwP/UzLn/zsWx/8a9qf/At6L/vLOd/7Wq
+ lf+upY7/qJ2H/6GXf/+DeF3/a2JM/2tjTP8AAAD/AAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3lvVv+DeF3/pJFv/6uaev+zo4T/u6yP/8O0
+ mv/KvaT/0sWu/wAAAP8AAAD/7eTT//Lp2f/z6tv/8ena/+7m1//q4tL/5d3N/9/Wxv/Yz77/AAAA/wAA
+ AP/FvKj/v7Wh/7qwm/+0qpT/rqON/6eehv+flX3/g3hd/3lvVv8AAAD/AAAAFAAAAAQAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4N4Xf+diWb/n4xp/6SS
+ cf+rmXr/tKOF/7yskP/Etpv/AAAA/wAAAAAAAAD/59zK/+7k1P/z69v/8unb//Hp2v/u5db/6uLS/+Tc
+ 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
+ AAe//wAA//8AH///AAD//wAf//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEAAAADAAAACAAAABAAAAAZAAAAJAAAAC0AAAA0AAAANwAAADcAAAA1AAAAMgAA
+ ADAAAAAxAAAAMwAAADUAAAA1AAAANAAAADAAAABbAAAAWgAREbcBJST/ASUk/wAKCroAAACFAAAAaAAA
+ AEwAAAAZAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAALAAAAFQAAACIAAAAwAAAAPQAAAEYAAABLAAAATAAA
+ AEoAAABHAAAARQAAAEYAAABIAAAASQAAAEoAAAC4AAAAuwAwMPABQkD/Al9d/wJ8d/8CgHz/AVxZ/wAD
+ A8IAAACEAAAAgwAAAFsAAAAcAAAAAAAAAAAAAAABAAAABgAAAA4AAAAZAAAAMQAAAHEAAACZAAAApgAA
+ AKkAAACMAAAAXwAAAFkAAAB9AAAAiAAAAIkAAACJAAAAiQEQEPkBU1D/AWBd/wFpZf8Camf/Am1q/wJy
+ b/8Cf3r/AlxY/wAGBtMAAACeAAAAbgAAADQAAAAAAAAAAAAAAAIAAAAGAAAADwAAAD8AAADFAAAA/wAA
+ AP9ERET/RERE/wAAAP8AAADYAAAAhAAAAOEAAAD/AAAA/wAAAP8AAAD/AAEB/wAWFf8BOzn/AV5b/wFk
+ Yf8CbGn/AnJu/wJ2cv8Cd3L/AlZT/wAJCcIAAAA2AAAADwAAAAAAAAAAAAAAAQAAAAYAAAAPAAAAkgAA
+ AP9lZWX/7u7u////////////7u7u/3V1df8AAADZAAAA3Lq6uv////////////////+6urr/ZWVl/wAA
+ AP8BMjH/AWJg/wJqZ/8CcW7/AnRx/wJxbf8CbWn/ARsb8wAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA
+ AA8AAACfMDAw////////////zs7O/87Ozv///////////1hYWPcAAADeurq6////////////////////
+ ////////urq6/xATE/8BSUf/Amtn/wJxbf8CdXH/AnJv/wJpZv8BGhjzAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEAAAAGAAAAEwAAAE0AAADbaGho94ODg+QAAACVAAAA7aqqqv//////ra2t+gAAAN26urr//////09P
+ T9wAAACxREVF/+7u7v//////mZmZ/wAkI/8BbGn/AnNv/wJ2cv8Cc3D/Amto/wEaGfMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAgAAAAoAAAAgAAAAQAAAAGcAAACfAAAAtAAAAN0AAAD/mZmZ//////+7u7r/BQQD/rq6
+ uv//////RUVF/gAAAHgBExP6REVF////////////ICoq/wFvbP8CdHH/AnZz/wJ1cf8CbWn/ARoZ8wAA
+ AAAAAAAAAAAAAAAAAAAAAAACAAAAEAAAAC8AAABXAAAAywAAAOwAAAD/VVVV/7q6uv///////////3l5
+ eP8PDgv/urq6//////9KSUj+AAAAfAAcHPgAGhn/3t7e//////9lZmb/AXRx/wJ5df8Cenb/Andz/wJv
+ a/8BGhrzAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAATAAAAPQgIBd4AAAD/MDAw/97e3v//////////////
+ //+7u7r/Mi8n/xAPC/+6urr//////0pKSP4AAACEAR0c+QAoJ/+6urr//////3V2dv8Cenf/An56/wJ9
+ eP8CeXX/AnFt/wEbGvMAAAAAAAAAAAAAAAIAAAAHAAAACwAAAB0MDArQIh8Y/wAAAP/u7u7/////////
+ //+ampr9X15c/zYxJv9FPzH/ERAM/7q6uv//////S0tJ/gAAAIgAGBj6AAkJ/97e3v//////dXh4/wKE
+ f/8ChYH/AoF8/wJ8eP8Cc2//ARsb8wAAAAAAAAAAAAAACQAAABkAAAAkAQEBtEhCM/8kIBn/RERE////
+ ////////NTU16QAAAMUdGxX/NjEm/0xGNf8VFA//urq6//////9MS0r+AAAAmwAHBv9ERET/////////
+ //8gOzr/Ao+K/wKNif8ChYH/AoB8/wJ0cf8BGxvzAAAAAAAAAAAAAAAOAAAAKwAAADoDAwHDVk48/yon
+ Hv8wMDD///////////8lJCP/AAAA/DAwMP9lZWX/MzAm/xwaFf+6urr//////0hHRv4AAAD9VVVV/+7u
+ 7v//////mZmZ/wFUUf8Cm5X/ApWR/wKJhv8Cg3//And0/wEcG/QAAAAAAAAAAAAAABAAAAAvAAAAQQEB
+ Ab9gV0T/RD0v/wAAAP/Ozs7//////+7u7v+6urr///////////9qaGX/Ih8Z/7q6uv//////////////
+ /////////////87Ozv8QMDD/ApiT/wKmof8CnZn/Ao6J/wKFgf8CeXX/AR0c9AAAAAAAAAAAAAAAlQAA
+ AKUAAACtAQAB5WVbRf+elIH/SUVA/zAwMP+6urr/////////////////mZmZ/01JQP8hHxn/urq6////
+ /////////////97e3v91dXX/ETc2/wKRjP8Craf/ALGr/wGkn/8Cko3/AoiD/wJ7d/8BHRz0AAAAAAAA
+ AAAWFBD/TUY3/01HNv8QDwr/qJ+L//Pr3v/a08T/fHdt/yMgGv8zMS3/U1JO/zo3Mv9taFv/lYt4/05K
+ Pv82Min/NTAn/ykmHf8rJx7/AxcW/wKDfv8Cr6n/ALWv/wC2sP8Ov7z/Cq2p/wGTjv8Ci4f/An15/wEd
+ HfQAAAAAAAAAAB8cFflnX0n/Y1tG/0hCNP/07N7/8una/+vj1P/m39D/1s28/4d9Zf9mXUX/mpF+/7mw
+ m/+rooz/opiC/5eNdv+Rh27/bmVP/3luVv8GNzX/AMvE/wPBu/8jzM7/JczO/zfS2P8iw8X/AZ2Y/wKL
+ hf8Cfnv/AR4d9AAAAAAAAAAAIyAZ+XhvVf9wZk//cGZO/52Tf//47+H/8+vc/+zk1P/p4dH/18+9/4F4
+ YP+soo7/xLum/7eumP+upI3/pJqC/5yRev94b1j/gXhd/wc/PP8o6uz/QNvk/0Xd5v84197/IMzO/xLJ
+ x/8HwLv/AZuW/wJ+ev8BHRz0AAAAAAAAAAAoJR35iX1h/390Wv9/dFr/dWpQ/6OZgv/37t//8uja/+3l
+ 1v/n387/4tnI/9bMuv/Kwaz/w7qm/7qwmv+wppD/o5iC/5uQd/+Qhmz/NDw1/0HI0P9N8/7/O93l/yvX
+ 2/8e0NH/EMnG/wXFwP8Cw73/AqGc/wEhIPQAAAAAAAAAACsnHvmUh2n/jIBk/42CZ/+QhGr/iHxh/7ux
+ nP/58eL/8ena/+vj1P/k28r/49rI/9LJtv+1q5f/r6aR/6ifif+xqJH/pJmB/5eMdP+Og2n/Oj40/zi7
+ xP888vn/Kdnb/xvU1P8N2db/BNLN/wK4sv8CubT/AS4s5wAAAAAAAAAANC4i+bWgff+1pIb/wrOX/8/B
+ qP/c0Lr/593L//Ho2P/z6tz/8OfY//Lq2v+/tqT/i4Nt/2NaRP9oX0n/aWFK/4iAav+hl4D/oZd//5aL
+ cv+Ngmj/Pz0x/yixtf8q9/r/F9bV/wWCf/8Dfnr/GCAf/QAAALgAAAA4AAAAAAAAAAAxKyD5rJdx/6qY
+ d/+1pYj/wbOY/8y/pv/bz7n/6d/M//Lo2v/58eP/yMCw/11UPv9nXUb/cWdQ/3BmT/9vZk//Zl1G/2ti
+ Tf+nnIX/nZN7/5OIb/+LgGf/QkY6/wtISP8XQDz/c2xd/5CKff8/PTj6AAAAGQAAAAkAAAAAAAAAADMs
+ IPmqlW7/o5Fv/66cfP+5qYz/xbeb/9LFrf/f077/6+HQ//fu3//e1sb/bGRP/1xUPv9lXEf/ZFtG/2Rc
+ Rv9dVUD/fXVg/7Gnkf+mnIT/m5B4/5KIbv+Kf2X/hXlf/4N3Xf+Qhmz/t62W/zo4MvkAAAAHAAAAAgAA
+ AAAAAAAALScd/5mFY/+OfF3/m4pp/6eXev+yo4f/uKuT/83Aqv/i1sP/7ePS//rx4//n3s//sKiW/2lh
+ TP9vZ1P/cWlU/7GnlP++taD/uK+Z/66kjf+kmYL/kYhv/4h+Zf+FemD/gXZc/3pvV/+SiHH/Lywn/wAA
+ AAAAAAAAAAAAAAAAAAAAAACOAAAAkQAAAJEWFBDdW1NB/1hQPf9sYkz/t6mR/9nMtv/k2cb/8unY//fu
+ 4P/17d7/7+fX/+fezv/e1cP/08q4/8rArP+/tqH/tayW/66ljf+Hfmj/Y1pF/1xUQf9MRTX/BwYEwgAA
+ AJoAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlkXEf/d2xU/7Kig//EtZn/yr6k/+DV
+ vv/Vy7v/6+LT//Ts3f/w6Nj/6uLS/+LZyP/Z0L7/wrqn/7uzn//DuaP/saiS/66jjP+VinD/cmhQ/0Q/
+ MP8AAABZAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICsH50Wf+ejWv/rJp6/7Wl
+ iP/Ov6P/lox7/wAAAL2fmIz//vTk//Pq3P/u5tf/6eDQ//Dm1f87OTT4GRgXzLuyn//At6H/saeR/6mf
+ iP+bj3X/VU48/wAAAFkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwKkk4Fh/6OO
+ av+hj23/uaaF/4l+aP8FBANoAAAAP5qShf/47tv/8+rb//Pq2//t5db/9+7c/0dEPvcAAAA2HhwZvLy0
+ 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
+ //+AB3j/yE8L//h/uv8=
+
+
+
\ No newline at end of file
diff --git a/data/templates/project/VB/ProjectCategorySortOrder.xml b/data/templates/project/VB/ProjectCategorySortOrder.xml
index 117d6a82d2..6b3a62d232 100644
--- a/data/templates/project/VB/ProjectCategorySortOrder.xml
+++ b/data/templates/project/VB/ProjectCategorySortOrder.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/data/templates/project/VB/SharpDevelopCustomTool.xpt b/data/templates/project/VB/SharpDevelopCustomTool.xpt
new file mode 100644
index 0000000000..af7de5b39e
--- /dev/null
+++ b/data/templates/project/VB/SharpDevelopCustomTool.xpt
@@ -0,0 +1,182 @@
+
+
+
+
+
+ Custom Tool
+ VB
+ SharpDevelop
+ VBNet.Project.ControlLibrary
+ A custom tool that implements a code generator transforming a source file into an output file whenever the source is changed inside SharpDevelop
+ v4.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+ Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+''' Description of ${ProjectName}Tool.
+'''
+Public Class ${ProjectName}Tool
+ Implements ICustomTool
+ '''
+ ''' Called by SharpDevelop when your tool has to generate code.
+ '''
+ '''
+ ''' The file for which your tool should generate code.
+ '''
+ Public Sub GenerateCode(item As FileProjectItem, context As CustomToolContext)
+ ' make SharpDevelop generate a name for the output file
+ Dim outputFileName As String = context.GetOutputFileName(item, ".Generated")
+ ' if item.FileName is "C:\somedir\SomeName.xml" and is inside a C# project,
+ ' the output name will be "C:\somedir\SomeName.Generated.vb".
+ ' context.GetOutputFileName will always append the extension for compilable files in
+ ' the current project type, so if you want to always output xml, you could use
+ ' string outputFileName = Path.ChangeExtension(item.FileName, ".Generated.xml");
+
+ ' now read the input file:
+ Dim doc As New XmlDocument()
+ doc.Load(item.FileName)
+
+ ' and generate the code using System.CodeDom:
+ Dim ccu As CodeCompileUnit = GenerateCode(doc, context.OutputNamespace, Path.GetFileNameWithoutExtension(item.FileName))
+
+ ' Finally save our generated CodeDom compile unit. SharpDevelop will take care of generating
+ ' the code using the correct CodeDomProvider for the project type. This means code-generating
+ ' custom tools are completely language-independent
+ context.WriteCodeDomToFile(item, outputFileName, ccu)
+ ' If you don't want to generate code, you'll have to write the output file yourself and then use
+ ' context.EnsureOutputFileIsInProject to add the generated file to the project if it isn't already
+ ' part of it.
+ End Sub
+
+ Private Function GenerateCode(doc As XmlDocument, targetNamespace As String, className As String) As CodeCompileUnit
+ ' This method does the actual code generation.
+
+ ' This sample accepts an object graph as XmlDocument and outputs a class with a static method
+ ' constructing that object graph.
+
+ ' We'll use ICSharpCode.EasyCodeDom for code generation. This is a small wrapper around CodeDom
+ ' that provides convenience methods that create new objects and add them to the parent simultaniously.
+ ' This makes the generation code much more concise.
+ ' EasyCodeDom classes derive from the System.CodeDom types or have an implicit conversion operator, so
+ ' use can use EasyCodeDom objects whereever CodeDom is expected.
+ Dim ccu As New CodeCompileUnit()
+ Dim generatedClass As CodeTypeDeclaration = ccu.AddNamespace(targetNamespace).AddType(className)
+ Dim m As EasyMethod = generatedClass.AddMethod("Create")
+ m.ReturnType = Easy.TypeRef(doc.DocumentElement.Name)
+ m.Attributes = MemberAttributes.[Static] Or MemberAttributes.[Public]
+
+ ' now generate code. helper variables will be named "v#"
+ Dim helperVariableCounter As Integer = 0
+ Dim rootVariableName As String = GenerateCodeForObject(m.Body, doc.DocumentElement, helperVariableCounter)
+
+ ' generate "return v0;"
+ m.Body.[Return](Easy.Var(rootVariableName))
+
+ Return ccu
+ End Function
+
+ Private Function GenerateCodeForObject(block As EasyBlock, objectElement As XmlElement, ByRef helperVariableCounter As Integer) As String
+ ' generate code to create the object represented by "objectElement" and add it to the block
+
+ ' generate "VarType v#;"
+ Dim varDecl As CodeVariableDeclarationStatement
+ varDecl = block.DeclareVariable(Easy.TypeRef(objectElement.Name), "v" & helperVariableCounter)
+ helperVariableCounter += 1
+
+ ' generate "VarType v# = new VarType();"
+ varDecl.InitExpression = Easy.[New](Easy.TypeRef(objectElement.Name))
+
+ ' translate XML attribute to assignments to properties
+ For Each attribute As XmlAttribute In objectElement.Attributes
+ ' generate 'v#.attributeName = "attributeValue";'
+ ' attribute.Value is a string, thus Easy.Prim creates a string literal.
+ ' This simple code generator does not support using other types for attributes.
+ block.Assign(Easy.Var(varDecl.Name).[Property](attribute.Name), Easy.Prim(attribute.Value))
+ Next
+
+ For Each collectionNode As XmlNode In objectElement.ChildNodes
+ Dim collectionElement As XmlElement = TryCast(collectionNode, XmlElement)
+ If collectionElement IsNot Nothing Then
+ For Each itemNode As XmlNode In collectionElement.ChildNodes
+ Dim itemElement As XmlElement = TryCast(itemNode, XmlElement)
+ If itemElement IsNot Nothing Then
+ ' add the object represented by "itemElement" to the collection represented by
+ ' "collectionElement".
+
+ ' generate code to create child object
+ Dim childVariableName As String = GenerateCodeForObject(block, itemElement, helperVariableCounter)
+
+ ' generate 'v#.collectionName.Add(v##)'
+ block.InvokeMethod(Easy.Var(varDecl.Name).[Property](collectionElement.Name), "Add", Easy.Var(childVariableName))
+ End If
+ Next
+ End If
+ Next
+
+ Return varDecl.Name
+ End Function
+End Class
+]]>
+
+
+
+
+
+
diff --git a/data/templates/project/VB/SharpDevelopCustomToolTemplate.xft.xml b/data/templates/project/VB/SharpDevelopCustomToolTemplate.xft.xml
new file mode 100644
index 0000000000..01f211dcc4
--- /dev/null
+++ b/data/templates/project/VB/SharpDevelopCustomToolTemplate.xft.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ A file template for ${ProjectName}
+
+
+
+]]>
+
+
+
diff --git a/data/templates/project/VB/SilverlightApplication.xpt b/data/templates/project/VB/SilverlightApplication.xpt
new file mode 100644
index 0000000000..7de877d59f
--- /dev/null
+++ b/data/templates/project/VB/SilverlightApplication.xpt
@@ -0,0 +1,169 @@
+
+
+
+
+ Silverlight Application
+ VB
+ Silverlight
+ VBNet.Project.Form
+ Default Silverlight Application
+ v4.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ ${StandardNamespace}
+ ${StandardNamespace}
+ v4.0
+ true
+
+
+ true
+ true
+ ${StandardNamespace}.xap
+ Properties\AppManifest.xml
+ ${StandardNamespace}.App
+ TestPage.html
+ true
+ true
+ false
+ true
+ true
+ true
+
+
+
+ DEBUG;TRACE;SILVERLIGHT
+
+
+
+ TRACE;SILVERLIGHT
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/templates/project/VB/WebService.xpt b/data/templates/project/VB/WebService.xpt
new file mode 100644
index 0000000000..bb1b2323b0
--- /dev/null
+++ b/data/templates/project/VB/WebService.xpt
@@ -0,0 +1,126 @@
+
+
+
+
+
+ ${res:Templates.Project.WebService.Name}
+ VB
+ ASP.NET
+ VBNet.Project.Form
+ ${res:Templates.Project.WebService.Description}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+ Properties
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+
+
+
+ bin\
+
+
+
+ bin\
+
+
+
+ _
+Public Class Soap
+ Inherits System.Web.Services.WebService
+ '''
+ ''' Logs into the web service
+ '''
+ ''' The User Name to login in as
+ ''' User's password
+ ''' True on successful login.
+ _
+ Public Function Login(userName As String, password As String) As Boolean
+ 'NOTE: There are better ways of doing authentication. This is just illustrates Session usage.
+ Me.UserName = userName
+ Return True
+ End Function
+
+ '''
+ ''' Logs out of the Session.
+ '''
+ _
+ Public Sub Logout()
+ Context.Session.Abandon()
+ End Sub
+
+ '''
+ ''' UserName of the logged in user.
+ '''
+ Private Property UserName() As String
+ Get
+ Return DirectCast(Context.Session("User"), String)
+ End Get
+ Set
+ Context.Session("User") = value
+ End Set
+ End Property
+End Class
+]]>
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
diff --git a/data/templates/project/VB/WebpageProject.xpt b/data/templates/project/VB/WebpageProject.xpt
new file mode 100644
index 0000000000..caeabb7de6
--- /dev/null
+++ b/data/templates/project/VB/WebpageProject.xpt
@@ -0,0 +1,443 @@
+
+
+
+
+
+ ${res:Templates.Project.WebPage.Name}
+ VB
+ ASP.NET
+ VBNet.Project.Form
+ ${res:Templates.Project.WebPage.Description}
+ v2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+
+
+
+ bin\
+
+
+
+ bin\
+
+
+
+
+''' Description of Default.
+'''
+Public Class [Default]
+ Inherits Page
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Data"
+
+ Protected _Button_Ok As HtmlInputButton
+ Protected _Input_Name As HtmlInputText
+
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Page Init & Exit (Open/Close DB connections here...)"
+
+ Protected Sub PageInit(sender As Object, e As EventArgs)
+ End Sub
+ '----------------------------------------------------------------------
+ Protected Sub PageExit(sender As Object, e As EventArgs)
+ End Sub
+
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Page Load"
+ Private Sub Page_Load(sender As Object, e As EventArgs)
+ Response.Write("Hello #Develop
")
+ '------------------------------------------------------------------
+ If IsPostBack Then
+ End If
+ '------------------------------------------------------------------
+ End Sub
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Click_Button_OK"
+
+ '----------------------------------------------------------------------
+ Protected Sub Click_Button_Ok(sender As Object, e As EventArgs)
+ Response.Write(_Button_Ok.Value & " was cklicked!
")
+ End Sub
+
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Changed_Input_Name"
+
+ '----------------------------------------------------------------------
+ Protected Sub Changed_Input_Name(sender As Object, e As EventArgs)
+ Response.Write(_Input_Name.Value & " has changed!
")
+ End Sub
+
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "More..."
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "Initialize Component"
+
+ Protected Overrides Sub OnInit(e As EventArgs)
+ InitializeComponent()
+ MyBase.OnInit(e)
+ End Sub
+ '----------------------------------------------------------------------
+ Private Sub InitializeComponent()
+ AddHandler Me.Load, New System.EventHandler(AddressOf Page_Load)
+ AddHandler Me.Init, New System.EventHandler(AddressOf PageInit)
+ AddHandler Me.Unload, New System.EventHandler(AddressOf PageExit)
+
+ AddHandler _Button_Ok.ServerClick, New EventHandler(AddressOf Click_Button_Ok)
+ AddHandler _Input_Name.ServerChange, New EventHandler(AddressOf Changed_Input_Name)
+ End Sub
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+End Class
+]]>
+
+
+
+]]>
+
+
+''' Summary description for Global.
+'''
+Public Class [Global]
+ Inherits HttpApplication
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ #Region "global"
+ '''
+ ''' Required designer variable.
+ '''
+ 'Private components As System.ComponentModel.IContainer = Nothing
+
+ Public Sub New()
+ InitializeComponent()
+ End Sub
+
+ #End Region
+ '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+ Protected Sub Application_Start(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Session_Start(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Application_BeginRequest(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Application_EndRequest(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Application_AuthenticateRequest(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Application_Error(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Session_End(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ Protected Sub Application_End(sender As [Object], e As EventArgs)
+
+ End Sub
+
+ #Region "Web Form Designer generated code"
+ '''
+ ''' Required method for Designer support - do not modify
+ ''' the contents of this method with the code editor.
+ '''
+ Private Sub InitializeComponent()
+
+ End Sub
+ #End Region
+End Class
+]]>
+
+
+
+
+
+
+ ${ProjectName}
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+