OSDN Git Service

任務一覧をスクロール可能にする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 22 Apr 2019 11:22:39 +0000 (20:22 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 28 Apr 2019 06:54:29 +0000 (15:54 +0900)
KancolleSniffer/KancolleSniffer.csproj
KancolleSniffer/MainForm.Designer.cs
KancolleSniffer/MainForm.cs
KancolleSniffer/MainForm.resx
KancolleSniffer/View/QuestPanel.cs [new file with mode: 0644]

index 96dd75f..fcc6bf2 100644 (file)
     <Compile Include="View\PanelWithToolTip.cs">\r
       <SubType>Component</SubType>\r
     </Compile>\r
+    <Compile Include="View\QuestPanel.cs" />\r
     <Compile Include="View\RepairListForMain.cs">\r
       <SubType>Component</SubType>\r
     </Compile>\r
index 16a2236..36cbdc2 100644 (file)
@@ -113,31 +113,6 @@ namespace KancolleSniffer
             this.label14 = new System.Windows.Forms.Label();\r
             this.label13 = new System.Windows.Forms.Label();\r
             this.timerMain = new System.Windows.Forms.Timer(this.components);\r
-            this.panel3 = new System.Windows.Forms.Panel();\r
-            this.labelQuestCount1 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestCount2 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestCount3 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestCount4 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestCount5 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestCount6 = new KancolleSniffer.View.ShipLabel();\r
-            this.labelQuestColor6 = new System.Windows.Forms.Label();\r
-            this.labelQuestColor5 = new System.Windows.Forms.Label();\r
-            this.labelQuestColor4 = new System.Windows.Forms.Label();\r
-            this.labelQuestColor3 = new System.Windows.Forms.Label();\r
-            this.labelQuestColor2 = new System.Windows.Forms.Label();\r
-            this.labelQuestColor1 = new System.Windows.Forms.Label();\r
-            this.labelProgress6 = new System.Windows.Forms.Label();\r
-            this.labelQuest6 = new System.Windows.Forms.Label();\r
-            this.labelProgress5 = new System.Windows.Forms.Label();\r
-            this.labelProgress4 = new System.Windows.Forms.Label();\r
-            this.labelProgress3 = new System.Windows.Forms.Label();\r
-            this.labelProgress2 = new System.Windows.Forms.Label();\r
-            this.labelProgress1 = new System.Windows.Forms.Label();\r
-            this.labelQuest5 = new System.Windows.Forms.Label();\r
-            this.labelQuest4 = new System.Windows.Forms.Label();\r
-            this.labelQuest3 = new System.Windows.Forms.Label();\r
-            this.labelQuest2 = new System.Windows.Forms.Label();\r
-            this.labelQuest1 = new System.Windows.Forms.Label();\r
             this.notifyIconMain = new System.Windows.Forms.NotifyIcon(this.components);\r
             this.contextMenuStripNotifyIcon = new System.Windows.Forms.ContextMenuStrip(this.components);\r
             this.NotifyIconOpenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
@@ -174,6 +149,7 @@ namespace KancolleSniffer
             this.labelCheckFleet4 = new System.Windows.Forms.Label();\r
             this.labelCheckFleet1 = new System.Windows.Forms.Label();\r
             this.panelRepairList = new KancolleSniffer.View.RepairListForMain();\r
+            this.questPanel = new KancolleSniffer.View.QuestPanel();\r
             this.panelHeadquarters.SuspendLayout();\r
             this.panelShipInfo.SuspendLayout();\r
             this.panelBattleInfo.SuspendLayout();\r
@@ -181,7 +157,6 @@ namespace KancolleSniffer
             this.panelDock.SuspendLayout();\r
             this.panel1.SuspendLayout();\r
             this.panel2.SuspendLayout();\r
-            this.panel3.SuspendLayout();\r
             this.contextMenuStripNotifyIcon.SuspendLayout();\r
             this.contextMenuStripMain.SuspendLayout();\r
             this.SuspendLayout();\r
@@ -841,242 +816,6 @@ namespace KancolleSniffer
             this.timerMain.Interval = 1000;\r
             this.timerMain.Tick += new System.EventHandler(this.timerMain_Tick);\r
             // \r
-            // panel3\r
-            // \r
-            this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
-            this.panel3.Controls.Add(this.labelQuestCount1);\r
-            this.panel3.Controls.Add(this.labelQuestCount2);\r
-            this.panel3.Controls.Add(this.labelQuestCount3);\r
-            this.panel3.Controls.Add(this.labelQuestCount4);\r
-            this.panel3.Controls.Add(this.labelQuestCount5);\r
-            this.panel3.Controls.Add(this.labelQuestCount6);\r
-            this.panel3.Controls.Add(this.labelQuestColor6);\r
-            this.panel3.Controls.Add(this.labelQuestColor5);\r
-            this.panel3.Controls.Add(this.labelQuestColor4);\r
-            this.panel3.Controls.Add(this.labelQuestColor3);\r
-            this.panel3.Controls.Add(this.labelQuestColor2);\r
-            this.panel3.Controls.Add(this.labelQuestColor1);\r
-            this.panel3.Controls.Add(this.labelProgress6);\r
-            this.panel3.Controls.Add(this.labelQuest6);\r
-            this.panel3.Controls.Add(this.labelProgress5);\r
-            this.panel3.Controls.Add(this.labelProgress4);\r
-            this.panel3.Controls.Add(this.labelProgress3);\r
-            this.panel3.Controls.Add(this.labelProgress2);\r
-            this.panel3.Controls.Add(this.labelProgress1);\r
-            this.panel3.Controls.Add(this.labelQuest5);\r
-            this.panel3.Controls.Add(this.labelQuest4);\r
-            this.panel3.Controls.Add(this.labelQuest3);\r
-            this.panel3.Controls.Add(this.labelQuest2);\r
-            this.panel3.Controls.Add(this.labelQuest1);\r
-            this.panel3.Location = new System.Drawing.Point(6, 356);\r
-            this.panel3.Name = "panel3";\r
-            this.panel3.Size = new System.Drawing.Size(220, 94);\r
-            this.panel3.TabIndex = 13;\r
-            // \r
-            // labelQuestCount1\r
-            // \r
-            this.labelQuestCount1.AnchorRight = true;\r
-            this.labelQuestCount1.AutoSize = true;\r
-            this.labelQuestCount1.Location = new System.Drawing.Point(191, 3);\r
-            this.labelQuestCount1.Name = "labelQuestCount1";\r
-            this.labelQuestCount1.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount1.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount1.TabIndex = 54;\r
-            this.labelQuestCount1.UseMnemonic = false;\r
-            // \r
-            // labelQuestCount2\r
-            // \r
-            this.labelQuestCount2.AnchorRight = true;\r
-            this.labelQuestCount2.AutoSize = true;\r
-            this.labelQuestCount2.Location = new System.Drawing.Point(191, 18);\r
-            this.labelQuestCount2.Name = "labelQuestCount2";\r
-            this.labelQuestCount2.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount2.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount2.TabIndex = 53;\r
-            this.labelQuestCount2.UseMnemonic = false;\r
-            // \r
-            // labelQuestCount3\r
-            // \r
-            this.labelQuestCount3.AnchorRight = true;\r
-            this.labelQuestCount3.AutoSize = true;\r
-            this.labelQuestCount3.Location = new System.Drawing.Point(191, 33);\r
-            this.labelQuestCount3.Name = "labelQuestCount3";\r
-            this.labelQuestCount3.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount3.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount3.TabIndex = 52;\r
-            this.labelQuestCount3.UseMnemonic = false;\r
-            // \r
-            // labelQuestCount4\r
-            // \r
-            this.labelQuestCount4.AnchorRight = true;\r
-            this.labelQuestCount4.AutoSize = true;\r
-            this.labelQuestCount4.Location = new System.Drawing.Point(191, 48);\r
-            this.labelQuestCount4.Name = "labelQuestCount4";\r
-            this.labelQuestCount4.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount4.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount4.TabIndex = 51;\r
-            this.labelQuestCount4.UseMnemonic = false;\r
-            // \r
-            // labelQuestCount5\r
-            // \r
-            this.labelQuestCount5.AnchorRight = true;\r
-            this.labelQuestCount5.AutoSize = true;\r
-            this.labelQuestCount5.Location = new System.Drawing.Point(191, 63);\r
-            this.labelQuestCount5.Name = "labelQuestCount5";\r
-            this.labelQuestCount5.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount5.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount5.TabIndex = 50;\r
-            this.labelQuestCount5.UseMnemonic = false;\r
-            // \r
-            // labelQuestCount6\r
-            // \r
-            this.labelQuestCount6.AnchorRight = true;\r
-            this.labelQuestCount6.AutoSize = true;\r
-            this.labelQuestCount6.Location = new System.Drawing.Point(191, 78);\r
-            this.labelQuestCount6.Name = "labelQuestCount6";\r
-            this.labelQuestCount6.PresetColor = System.Drawing.Color.Empty;\r
-            this.labelQuestCount6.Size = new System.Drawing.Size(0, 12);\r
-            this.labelQuestCount6.TabIndex = 49;\r
-            this.labelQuestCount6.UseMnemonic = false;\r
-            // \r
-            // labelQuestColor6\r
-            // \r
-            this.labelQuestColor6.Location = new System.Drawing.Point(2, 79);\r
-            this.labelQuestColor6.Name = "labelQuestColor6";\r
-            this.labelQuestColor6.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor6.TabIndex = 48;\r
-            // \r
-            // labelQuestColor5\r
-            // \r
-            this.labelQuestColor5.Location = new System.Drawing.Point(2, 64);\r
-            this.labelQuestColor5.Name = "labelQuestColor5";\r
-            this.labelQuestColor5.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor5.TabIndex = 47;\r
-            // \r
-            // labelQuestColor4\r
-            // \r
-            this.labelQuestColor4.Location = new System.Drawing.Point(2, 49);\r
-            this.labelQuestColor4.Name = "labelQuestColor4";\r
-            this.labelQuestColor4.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor4.TabIndex = 46;\r
-            // \r
-            // labelQuestColor3\r
-            // \r
-            this.labelQuestColor3.Location = new System.Drawing.Point(2, 34);\r
-            this.labelQuestColor3.Name = "labelQuestColor3";\r
-            this.labelQuestColor3.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor3.TabIndex = 45;\r
-            // \r
-            // labelQuestColor2\r
-            // \r
-            this.labelQuestColor2.Location = new System.Drawing.Point(2, 19);\r
-            this.labelQuestColor2.Name = "labelQuestColor2";\r
-            this.labelQuestColor2.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor2.TabIndex = 44;\r
-            // \r
-            // labelQuestColor1\r
-            // \r
-            this.labelQuestColor1.Location = new System.Drawing.Point(2, 4);\r
-            this.labelQuestColor1.Name = "labelQuestColor1";\r
-            this.labelQuestColor1.Size = new System.Drawing.Size(4, 10);\r
-            this.labelQuestColor1.TabIndex = 43;\r
-            // \r
-            // labelProgress6\r
-            // \r
-            this.labelProgress6.Location = new System.Drawing.Point(188, 78);\r
-            this.labelProgress6.Name = "labelProgress6";\r
-            this.labelProgress6.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress6.TabIndex = 11;\r
-            this.labelProgress6.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelQuest6\r
-            // \r
-            this.labelQuest6.Location = new System.Drawing.Point(6, 78);\r
-            this.labelQuest6.Name = "labelQuest6";\r
-            this.labelQuest6.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest6.TabIndex = 10;\r
-            this.labelQuest6.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
-            // labelProgress5\r
-            // \r
-            this.labelProgress5.Location = new System.Drawing.Point(188, 63);\r
-            this.labelProgress5.Name = "labelProgress5";\r
-            this.labelProgress5.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress5.TabIndex = 9;\r
-            this.labelProgress5.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelProgress4\r
-            // \r
-            this.labelProgress4.Location = new System.Drawing.Point(188, 48);\r
-            this.labelProgress4.Name = "labelProgress4";\r
-            this.labelProgress4.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress4.TabIndex = 8;\r
-            this.labelProgress4.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelProgress3\r
-            // \r
-            this.labelProgress3.Location = new System.Drawing.Point(188, 33);\r
-            this.labelProgress3.Name = "labelProgress3";\r
-            this.labelProgress3.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress3.TabIndex = 7;\r
-            this.labelProgress3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelProgress2\r
-            // \r
-            this.labelProgress2.Location = new System.Drawing.Point(188, 18);\r
-            this.labelProgress2.Name = "labelProgress2";\r
-            this.labelProgress2.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress2.TabIndex = 6;\r
-            this.labelProgress2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelProgress1\r
-            // \r
-            this.labelProgress1.Location = new System.Drawing.Point(188, 3);\r
-            this.labelProgress1.Name = "labelProgress1";\r
-            this.labelProgress1.Size = new System.Drawing.Size(29, 12);\r
-            this.labelProgress1.TabIndex = 5;\r
-            this.labelProgress1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            // \r
-            // labelQuest5\r
-            // \r
-            this.labelQuest5.Location = new System.Drawing.Point(6, 63);\r
-            this.labelQuest5.Name = "labelQuest5";\r
-            this.labelQuest5.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest5.TabIndex = 4;\r
-            this.labelQuest5.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
-            // labelQuest4\r
-            // \r
-            this.labelQuest4.Location = new System.Drawing.Point(6, 48);\r
-            this.labelQuest4.Name = "labelQuest4";\r
-            this.labelQuest4.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest4.TabIndex = 3;\r
-            this.labelQuest4.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
-            // labelQuest3\r
-            // \r
-            this.labelQuest3.Location = new System.Drawing.Point(6, 33);\r
-            this.labelQuest3.Name = "labelQuest3";\r
-            this.labelQuest3.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest3.TabIndex = 2;\r
-            this.labelQuest3.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
-            // labelQuest2\r
-            // \r
-            this.labelQuest2.Location = new System.Drawing.Point(6, 18);\r
-            this.labelQuest2.Name = "labelQuest2";\r
-            this.labelQuest2.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest2.TabIndex = 1;\r
-            this.labelQuest2.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
-            // labelQuest1\r
-            // \r
-            this.labelQuest1.Location = new System.Drawing.Point(6, 3);\r
-            this.labelQuest1.Name = "labelQuest1";\r
-            this.labelQuest1.Size = new System.Drawing.Size(193, 12);\r
-            this.labelQuest1.TabIndex = 0;\r
-            this.labelQuest1.DoubleClick += new System.EventHandler(this.labelQuest_DoubleClick);\r
-            // \r
             // notifyIconMain\r
             // \r
             this.notifyIconMain.ContextMenuStrip = this.contextMenuStripNotifyIcon;\r
@@ -1409,12 +1148,21 @@ namespace KancolleSniffer
             this.panelRepairList.Visible = false;\r
             this.panelRepairList.Click += new System.EventHandler(this.panelRepairList_Click);\r
             // \r
+            // questPanel\r
+            // \r
+            this.questPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.questPanel.Location = new System.Drawing.Point(6, 356);\r
+            this.questPanel.Name = "questPanel";\r
+            this.questPanel.Size = new System.Drawing.Size(220, 94);\r
+            this.questPanel.TabIndex = 56;\r
+            // \r
             // MainForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.ClientSize = new System.Drawing.Size(232, 456);\r
             this.ContextMenuStrip = this.contextMenuStripMain;\r
+            this.Controls.Add(this.questPanel);\r
             this.Controls.Add(this.labelClearQuest);\r
             this.Controls.Add(this.labelAkashiRepair);\r
             this.Controls.Add(this.labelAkashiRepairTimer);\r
@@ -1440,7 +1188,6 @@ namespace KancolleSniffer
             this.Controls.Add(this.labelCheckFleet4);\r
             this.Controls.Add(this.labelFleet4);\r
             this.Controls.Add(this.labelCheckFleet1);\r
-            this.Controls.Add(this.panel3);\r
             this.Controls.Add(this.panel2);\r
             this.Controls.Add(this.labelMission);\r
             this.Controls.Add(this.labelQuest);\r
@@ -1475,8 +1222,6 @@ namespace KancolleSniffer
             this.panel1.PerformLayout();\r
             this.panel2.ResumeLayout(false);\r
             this.panel2.PerformLayout();\r
-            this.panel3.ResumeLayout(false);\r
-            this.panel3.PerformLayout();\r
             this.contextMenuStripNotifyIcon.ResumeLayout(false);\r
             this.contextMenuStripMain.ResumeLayout(false);\r
             this.ResumeLayout(false);\r
@@ -1523,17 +1268,6 @@ namespace KancolleSniffer
         private System.Windows.Forms.Label labelMission1;\r
         private System.Windows.Forms.Label label15;\r
         private System.Windows.Forms.Timer timerMain;\r
-        private System.Windows.Forms.Panel panel3;\r
-        private System.Windows.Forms.Label labelQuest5;\r
-        private System.Windows.Forms.Label labelQuest4;\r
-        private System.Windows.Forms.Label labelQuest3;\r
-        private System.Windows.Forms.Label labelQuest2;\r
-        private System.Windows.Forms.Label labelQuest1;\r
-        private System.Windows.Forms.Label labelProgress5;\r
-        private System.Windows.Forms.Label labelProgress4;\r
-        private System.Windows.Forms.Label labelProgress3;\r
-        private System.Windows.Forms.Label labelProgress2;\r
-        private System.Windows.Forms.Label labelProgress1;\r
         private System.Windows.Forms.Label labelCondTimerTitle;\r
         private System.Windows.Forms.Label labelCondTimer;\r
         private System.Windows.Forms.NotifyIcon notifyIconMain;\r
@@ -1588,14 +1322,6 @@ namespace KancolleSniffer
         private System.Windows.Forms.Label labelBullSq4;\r
         private System.Windows.Forms.Label labelFuelSq4;\r
         private System.Windows.Forms.ToolStripMenuItem LogToolStripMenuItem;\r
-        private System.Windows.Forms.Label labelProgress6;\r
-        private System.Windows.Forms.Label labelQuest6;\r
-        private System.Windows.Forms.Label labelQuestColor1;\r
-        private System.Windows.Forms.Label labelQuestColor6;\r
-        private System.Windows.Forms.Label labelQuestColor5;\r
-        private System.Windows.Forms.Label labelQuestColor4;\r
-        private System.Windows.Forms.Label labelQuestColor3;\r
-        private System.Windows.Forms.Label labelQuestColor2;\r
         private System.Windows.Forms.ToolStripMenuItem CaptureToolStripMenuItem;\r
         private System.Windows.Forms.Label labelAkashiRepairTimer;\r
         private System.Windows.Forms.Panel panelCombinedFleet;\r
@@ -1604,16 +1330,11 @@ namespace KancolleSniffer
         private RepairListForMain panelRepairList;\r
         private System.Windows.Forms.Panel panel7Ships;\r
         private System.Windows.Forms.LinkLabel linkLabelGuide;\r
-        private ShipLabel labelQuestCount1;\r
-        private ShipLabel labelQuestCount2;\r
-        private ShipLabel labelQuestCount3;\r
-        private ShipLabel labelQuestCount4;\r
-        private ShipLabel labelQuestCount5;\r
-        private ShipLabel labelQuestCount6;\r
         private System.Windows.Forms.Label labelClearQuest;\r
         private System.Windows.Forms.Label labelMissionParams1;\r
         private System.Windows.Forms.Label labelMissionParams3;\r
         private System.Windows.Forms.Label labelMissionParams2;\r
+        private QuestPanel questPanel;\r
     }\r
 }\r
 \r
index e7a244c..273cf02 100644 (file)
@@ -77,6 +77,7 @@ namespace KancolleSniffer
             SetupFleetClick();\r
             CreateMainLabels();\r
             panelRepairList.CreateLabels(panelRepairList_Click);\r
+            questPanel.NameLabelDoubleClick += labelQuest_DoubleClick;\r
             labelPresetAkashiTimer.BackColor = ShipLabel.ColumnColors[1];\r
             _listForm = new ListForm(this);\r
             _notificationManager = new NotificationManager(Alarm);\r
@@ -1116,48 +1117,7 @@ namespace KancolleSniffer
 \r
         private void UpdateQuestList()\r
         {\r
-            var category = new[]\r
-            {\r
-                labelQuestColor1, labelQuestColor2, labelQuestColor3, labelQuestColor4, labelQuestColor5,\r
-                labelQuestColor6\r
-            };\r
-            var name = new[] {labelQuest1, labelQuest2, labelQuest3, labelQuest4, labelQuest5, labelQuest6};\r
-            var count = new[]\r
-            {\r
-                labelQuestCount1, labelQuestCount2, labelQuestCount3, labelQuestCount4, labelQuestCount5,\r
-                labelQuestCount6\r
-            };\r
-            var progress = new[]\r
-                {labelProgress1, labelProgress2, labelProgress3, labelProgress4, labelProgress5, labelProgress6};\r
-            var quests = Sniffer.Quests;\r
-            for (var i = 0; i < name.Length; i++)\r
-            {\r
-                if (i < quests.Length)\r
-                {\r
-                    category[i].BackColor = quests[i].Color;\r
-                    name[i].Text = quests[i].Name;\r
-                    progress[i].Text = $"{quests[i].Progress:D}%";\r
-                    _toolTip.SetToolTip(name[i], quests[i].ToToolTip());\r
-                    var c = quests[i].Count;\r
-                    if (c.Id == 0)\r
-                    {\r
-                        count[i].Text = "";\r
-                        count[i].ForeColor = Color.Black;\r
-                        _toolTip.SetToolTip(count[i], "");\r
-                        continue;\r
-                    }\r
-                    count[i].Text = " " + c;\r
-                    count[i].ForeColor = c.Cleared ? CUDColors.Red : Color.Black;\r
-                    _toolTip.SetToolTip(count[i], c.ToToolTip());\r
-                }\r
-                else\r
-                {\r
-                    category[i].BackColor = DefaultBackColor;\r
-                    name[i].Text = count[i].Text = progress[i].Text = "";\r
-                    _toolTip.SetToolTip(name[i], "");\r
-                    _toolTip.SetToolTip(count[i], "");\r
-                }\r
-            }\r
+            questPanel.Update(Sniffer.Quests);\r
             Sniffer.GetQuestNotifications(out var notify, out var stop);\r
             foreach (var questName in notify)\r
                 SetNotification("任務達成", 0, questName);\r
index 26128dc..b55d2d1 100644 (file)
   <metadata name="contextMenuStripMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>269, 17</value>\r
   </metadata>\r
-  <data name="labelMaterialHistoryButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
-    <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAX\r
-        EQAAFxEByibzPwAAAD1JREFUKFN1jEEOACAIw/Y0f+7TlJHMTIUmu0BaBDO2mvGHYYd3/CVVJW1RVY4t\r
-        vHLZwiufLWiWtqBpNrABpkcf4SFY/H8AAAAASUVORK5CYII=\r
-</value>\r
-  </data>\r
-  <data name="labelRepairListButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
-    <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAX\r
-        EQAAFxEByibzPwAAAD1JREFUKFN1jEEOACAIw/Y0f+7TlJHMTIUmu0BaBDO2mvGHYYd3/CVVJW1RVY4t\r
-        vHLZwiufLWiWtqBpNrABpkcf4SFY/H8AAAAASUVORK5CYII=\r
-</value>\r
-  </data>\r
   <metadata name="imageListFuelSq.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>796, 26</value>\r
   </metadata>\r
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAs\r
-        GQAAAk1TRnQBSQFMAgEBCgEAATwBAAE8AQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
-        AwABJwMAAQEBAAEgBQABgAETEwABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/QQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        GQAAAk1TRnQBSQFMAgEBCgEAAUQBAAFEAQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
+        AwABJwMAAQEBAAEgBQABgAETEwABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/\r
+        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
         AcsCyAH/AcsCyAH/AcsCyAH/QAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
         AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
         AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/0AAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
         Av8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLI\r
         Af8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
         AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
         Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/IAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
+        AcQBsgH/AaUBxAGyAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/IAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
         AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
-        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
+        AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
         AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/yAAAaUBxAGyAf8BpQHE\r
+        Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAAaUBxAGyAf8BpQHE\r
         AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
+        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
         IAABpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
         AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
-        Af8BpQHEAbIB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
+        Af8BpQHEAbIB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8gAAGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
         AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/\r
-        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
+        AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAAaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGy\r
         Af8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGl\r
-        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/IAABpQHEAbIB/wGlAcQBsgH/\r
+        AcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABpQHEAbIB/wGlAcQBsgH/\r
         AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHE\r
         AbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/wGlAcQBsgH/AaUBxAGyAf8BpQHEAbIB/yEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAElAv8BAAElAv8BAAEl\r
-        Av8BAAElAv8BAAElAv8BAAElAv8BAAElAv8BAAElAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
+        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAEkAv8BAAEkAv8BAAEk\r
+        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
         AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
+        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/yEAAfUB+gH/\r
+        AZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/yEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAElAv8BAAElAv8BAAEl\r
-        Av8BAAElAv8BAAElAv8BAAElAv8BAAElAv8BAAElAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
+        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAEkAv8BAAEkAv8BAAEk\r
+        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
         AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/IAABMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8gAAEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/yAAATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/IAABMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8gAAEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/yAAATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/IAABMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEy\r
-        AYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFR\r
-        Af8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8gAAEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/\r
-        ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGDAVEB/wEyAYMBUQH/ATIBgwFRAf8BMgGD\r
-        AVEB/wFCAU0BPgcAAT4DAAEoAwABIAMAAScDAAEBAQABAQUAAZwXAAP/NgAB/wMAAf8DAAH/AwAB/wMA\r
+        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/IAABMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8gAAExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/yAAATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/IAABMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wEx\r
+        AYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQ\r
+        Af8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8gAAExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/\r
+        ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGDAVAB/wExAYMBUAH/ATEBgwFQAf8BMQGD\r
+        AVAB/wFCAU0BPgcAAT4DAAEoAwABIAMAAScDAAEBAQABAQUAAZwXAAP/NgAB/wMAAf8DAAH/AwAB/wMA\r
         Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wIAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA\r
         Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAs=\r
 </value>\r
     <value>\r
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
-        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAq\r
-        FwAAAk1TRnQBSQFMAgEBCgEAATQBAAE0AQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
-        AwABJwMAAQEBAAEgBQABgAETEwABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
-        AcsCyAH/QQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADi\r
+        FgAAAk1TRnQBSQFMAgEBCgEAATwBAAE8AQABCAEAAQ0BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEg\r
+        AwABJwMAAQEBAAEgBQABgAETEwABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        AcsCyAH/QQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/\r
+        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/QQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
         AcsCyAH/AcsCyAH/AcsCyAH/QAABkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
         AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
         Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/0AAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
         Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf9AAAF2AYwBlgHjAZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AXUBhwGPAd8BdgGMAZYB4wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wF1AYcBjwHfQAABawF0AXgBywGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFjAWkBbgG/AWsBdAF4\r
-        AcsBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BYwFpAW4Bv0AA\r
-        AkgBSQGAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AkgBSQGA\r
-        AkgBSQGAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AkgBSQGA\r
-        QAADFwEgAYkBqQG8AfcBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGNAa0BwwH7AxQBHAMX\r
-        ASABiQGpAbwB9wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AY0BrQHDAfsDFAEcRAACPQE+\r
-        AWgBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFAAkEBcAgAAj0BPgFoAZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BQAJBAXBMAAM4AVwBZgFvAXIBwwFmAW8BcgHDAzgBXBAAAzgBXAFm\r
-        AW8BcgHDAWYBbwFyAcMDOAFcSAABywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/IQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEA\r
-        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wHLAsgB/wHLAsgB/wHLAsgB/wHL\r
-        AsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLI\r
-        Af8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/IQAB9QH6Af8BAAH1\r
-        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEA\r
-        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8gAAGQAbkBzQH/AZABuQHN\r
-        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AQABYwGZ\r
-        Af8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/yAA\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8BLwFiAX0B4wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEyAWEBeQHfIAABdgGMAZYB4wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
-        Af8BkAG5Ac0B/wF1AYcBjwHfAXYBjAGWAeMBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
-        AbkBzQH/AZABuQHNAf8BdQGHAY8B3wFEAV0BawHLAQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZ\r
-        Af8BAAFjAZkB/wEAAWMBmQH/AUkBWwFlAb8gAAFrAXQBeAHLAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AWMBaQFuAb8BawF0AXgBywGQAbkBzQH/AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFjAWkBbgG/AUUBRwFIAYABAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BRQFHAUgBgCAAAkgBSQGAAZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AkgBSQGAAkgBSQGAAZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AkgBSQGAAxcBIAESAWYBjQH3AQABYwGZ\r
-        Af8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BBgFgAZUB+wMUARwgAAMXASABiQGpAbwB9wGQAbkBzQH/\r
-        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AY0BrQHDAfsDFAEcAxcBIAGJAakBvAH3AZABuQHNAf8BkAG5\r
-        Ac0B/wGQAbkBzQH/AZABuQHNAf8BjQGtAcMB+wMUARwEAAE8Aj0BaAEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AT8CQAFwKAACPQE+AWgBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFA\r
-        AkEBcAgAAj0BPgFoAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BQAJBAXAMAAE3AjgBXAFH\r
-        AVsBZwHDAUcBWwFnAcMBNwI4AVwwAAM4AVwBZgFvAXIBwwFmAW8BcgHDAzgBXBAAAzgBXAFmAW8BcgHD\r
-        AWYBbwFyAcMDOAFcKQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
-        AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/yEAAfUB+gH/\r
+        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf9AAAFwAYQBjAHjAZABuQHNAf8BkAG5\r
+        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AW4BfQGDAd8BcAGEAYwB4wGQAbkBzQH/\r
+        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFuAX0BgwHfQAABZAFrAW8BywGQ\r
+        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFeAWMBZQG/AWQBawFv\r
+        AcsBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BXgFjAWUBv0AA\r
+        A0cBgAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wNHAYADRwGA\r
+        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/A0cBgEAAAxcBIAGI\r
+        AaUBtgH3AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BjAGpAcAB+wMUARwDFwEgAYgBpQG2\r
+        AfcBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGMAakBwAH7AxQBHEQAAz0BaAGQAbkBzQH/\r
+        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/A0ABcAgAAz0BaAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
+        AbkBzQH/A0ABcEwAAzgBXAFgAWcBaAHDAWABZwFoAcMDOAFcEAADOAFcAWABZwFoAcMBYAFnAWgBwwM4\r
+        AVxIAAHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAElAv8BAAElAv8BAAEl\r
-        Av8BAAElAv8BAAElAv8BAAElAv8BAAElAv8BAAElAv8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
+        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLI\r
+        Af8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
         AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
-        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/AQABJQL/\r
-        AQABJQL/AQABJQL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
+        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/AcsCyAH/\r
+        AcsCyAH/AcsCyAH/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
-        AZkC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/wEAASUC/yEAAfUB+gH/\r
+        AZkC/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/wHLAsgB/yEAAfUB+gH/\r
         AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAGZ\r
-        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAElAv8BAAElAv8BAAEl\r
-        Av8BAAElAv8BAAElAv8BAAElAv8BAAElAv8BAAElAv8hAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8hAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8gAAEv\r
-        AWIBfQHjAQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/ATIBYQF5\r
-        Ad8BLwFiAX0B4wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEy\r
-        AWEBeQHfAS8BYgF9AeMBAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZ\r
-        Af8BMgFhAXkB3yAAAUQBXQFrAcsBAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BSQFbAWUBvwFEAV0BawHLAQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AUkBWwFlAb8BRAFdAWsBywEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wFJAVsBZQG/IAABRQFHAUgBgAEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEA\r
-        AWMBmQH/AQABYwGZAf8BAAFjAZkB/wFFAUcBSAGAAUUBRwFIAYABAAFjAZkB/wEAAWMBmQH/AQABYwGZ\r
-        Af8BAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BRQFHAUgBgAFFAUcBSAGAAQABYwGZAf8BAAFjAZkB/wEA\r
-        AWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AUUBRwFIAYAgAAMXASABEgFmAY0B9wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AQYBYAGVAfsDFAEcAxcBIAESAWYBjQH3AQABYwGZAf8BAAFj\r
-        AZkB/wEAAWMBmQH/AQABYwGZAf8BBgFgAZUB+wMUARwDFwEgARIBZgGNAfcBAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BAAFjAZkB/wEGAWABlQH7AxQBHCQAATwCPQFoAQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/\r
-        AQABYwGZAf8BPwJAAXAIAAE8Aj0BaAEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wEAAWMBmQH/AT8CQAFw\r
-        CAABPAI9AWgBAAFjAZkB/wEAAWMBmQH/AQABYwGZAf8BAAFjAZkB/wE/AkABcCwAATcCOAFcAUcBWwFn\r
-        AcMBRwFbAWcBwwE3AjgBXBAAATcCOAFcAUcBWwFnAcMBRwFbAWcBwwE3AjgBXBAAATcCOAFcAUcBWwFn\r
-        AcMBRwFbAWcBwwE3AjgBXAgAAUIBTQE+BwABPgMAASgDAAEgAwABJwMAAQEBAAEBBQABnBcAA/8tAAKB\r
-        AgACwwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AgABgQH/AoEBwwH/\r
-        AsMB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A4EB/wPDCw==\r
+        Av8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BywLIAf8BywLIAf8BywLI\r
+        Af8BywLIAf8BywLIAf8BywLIAf8BywLIAf8BywLIAf8hAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1\r
+        AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/AQABmQL/AQABmQL/AQABmQL/\r
+        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
+        AZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/yAAAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
+        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
+        AbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/IAABkAG5Ac0B/wGQAbkBzQH/\r
+        AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
+        Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wE5AWABdgHj\r
+        AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/ATwBYAFzAd8gAAFw\r
+        AYQBjAHjAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AW4BfQGD\r
+        Ad8BcAGEAYwB4wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wFu\r
+        AX0BgwHfAUwBWwFkAcsBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8BUAFZAWABvyAAAWQBawFvAcsBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
+        AZABuQHNAf8BXgFjAWUBvwFkAWsBbwHLAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5\r
+        Ac0B/wGQAbkBzQH/AV4BYwFlAb8BRgJHAYABAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BRgJHAYAgAANHAYABkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQ\r
+        AbkBzQH/AZABuQHNAf8DRwGAA0cBgAGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHN\r
+        Af8BkAG5Ac0B/wNHAYADFwEgARYBZgGLAfcBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEI\r
+        AV8BlAH7AxQBHCAAAxcBIAGIAaUBtgH3AZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BjAGp\r
+        AcAB+wMUARwDFwEgAYgBpQG2AfcBkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8BkAG5Ac0B/wGMAakBwAH7\r
+        AxQBHAQAATwCPQFoAQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8DQAFwKAADPQFoAZABuQHN\r
+        Af8BkAG5Ac0B/wGQAbkBzQH/AZABuQHNAf8DQAFwCAADPQFoAZABuQHNAf8BkAG5Ac0B/wGQAbkBzQH/\r
+        AZABuQHNAf8DQAFwDAADOAFcAU8BWwFjAcMBTwFbAWMBwwM4AVwwAAM4AVwBYAFnAWgBwwFgAWcBaAHD\r
+        AzgBXBAAAzgBXAFgAWcBaAHDAWABZwFoAcMDOAFcKQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6\r
+        Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
+        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEA\r
+        ASQC/wEAASQC/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEA\r
+        AfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
+        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAH1AfoB/wEA\r
+        AfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQABmQL/\r
+        AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABmQL/AQABJAL/AQABJAL/AQABJAL/\r
+        AQABJAL/AQABJAL/AQABJAL/AQABJAL/AQABJAL/IQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6\r
+        Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEA\r
+        AZkC/wEAAZkC/wEAAZkC/wEAAZkC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEAASQC/wEA\r
+        ASQC/wEAASQC/yEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEAAfUB+gH/AQAB9QH6Af8BAAH1AfoB/wEA\r
+        AfUB+gH/AQAB9QH6Af8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZAv8BAAGZ\r
+        Av8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8BAAEkAv8hAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8hAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8gAAE5AWABdgHjAQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
+        AZkB/wEAAWIBmQH/ATwBYAFzAd8BOQFgAXYB4wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/\r
+        AQABYgGZAf8BAAFiAZkB/wE8AWABcwHfATkBYAF2AeMBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFi\r
+        AZkB/wEAAWIBmQH/AQABYgGZAf8BPAFgAXMB3yAAAUwBWwFkAcsBAAFiAZkB/wEAAWIBmQH/AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BUAFZAWABvwFMAVsBZAHLAQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AVABWQFgAb8BTAFbAWQBywEAAWIBmQH/AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wFQAVkBYAG/IAABRgJHAYABAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYABRgJHAYABAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYABRgJHAYABAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BRgJHAYAgAAMXASABFgFmAYsB9wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/AQgBXwGUAfsDFAEcAxcBIAEWAWYBiwH3AQABYgGZ\r
+        Af8BAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BCAFfAZQB+wMUARwDFwEgARYBZgGLAfcBAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8BAAFiAZkB/wEIAV8BlAH7AxQBHCQAATwCPQFoAQABYgGZAf8BAAFiAZkB/wEA\r
+        AWIBmQH/AQABYgGZAf8DQAFwCAABPAI9AWgBAAFiAZkB/wEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wNA\r
+        AXAIAAE8Aj0BaAEAAWIBmQH/AQABYgGZAf8BAAFiAZkB/wEAAWIBmQH/A0ABcCwAAzgBXAFPAVsBYwHD\r
+        AU8BWwFjAcMDOAFcEAADOAFcAU8BWwFjAcMBTwFbAWMBwwM4AVwQAAM4AVwBTwFbAWMBwwFPAVsBYwHD\r
+        AzgBXAgAAUIBTQE+BwABPgMAASgDAAEgAwABJwMAAQEBAAEBBQABnBcAA/8tAAKBAgACwwMAAf8DAAH/\r
+        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AgABgQH/AoEBwwH/AsMB/wMAAf8DAAH/\r
+        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A4EB/wPDCw==\r
 </value>\r
   </data>\r
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
diff --git a/KancolleSniffer/View/QuestPanel.cs b/KancolleSniffer/View/QuestPanel.cs
new file mode 100644 (file)
index 0000000..1f51841
--- /dev/null
@@ -0,0 +1,228 @@
+// Copyright (C) 2019 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//    http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+\r
+using System;\r
+using System.Drawing;\r
+using System.Windows.Forms;\r
+using KancolleSniffer.Model;\r
+\r
+namespace KancolleSniffer.View\r
+{\r
+    public class QuestLabels\r
+    {\r
+        public Label Color { get; set; }\r
+        public Label Name { get; set; }\r
+        public ShipLabel Count { get; set; }\r
+        public Label Progress { get; set; }\r
+\r
+        public Label[] Labels => new[] {Color, Count, Progress, Name};\r
+    }\r
+\r
+    public class QuestPanel : PanelWithToolTip\r
+    {\r
+        const int TopMargin = 5;\r
+        const int LeftMargin = 2;\r
+        const int LineHeight = 14;\r
+        private const int Lines = 6;\r
+        private readonly QuestLabels[] _labels = new QuestLabels[Lines];\r
+        private QuestStatus[] _questList = new QuestStatus[0];\r
+        private int _listPosition;\r
+\r
+        public QuestPanel()\r
+        {\r
+            const int height = 12;\r
+\r
+            SuspendLayout();\r
+            for (var i = 0; i < Lines; i++)\r
+            {\r
+                var y = TopMargin + i * LineHeight;\r
+                _labels[i] = new QuestLabels\r
+                {\r
+                    Color = new Label\r
+                    {\r
+                        Location = new Point(LeftMargin, y + 1),\r
+                        Size = new Size(4, height - 1)\r
+                    },\r
+                    Name = new Label\r
+                    {\r
+                        Location = new Point(LeftMargin + 4, y),\r
+                        AutoSize = true\r
+                    },\r
+                    Count = new ShipLabel\r
+                    {\r
+                        Location = new Point(LeftMargin + 189, y),\r
+                        AutoSize = true,\r
+                        AnchorRight = true\r
+                    },\r
+                    Progress = new Label\r
+                    {\r
+                        Location = new Point(LeftMargin + 186, y),\r
+                        Size = new Size(29, height),\r
+                        TextAlign = ContentAlignment.MiddleRight\r
+                    }\r
+                };\r
+                _labels[i].Name.DoubleClick += NameLabelDoubleClickHandler;\r
+                // ReSharper disable once CoVariantArrayConversion\r
+                Controls.AddRange(_labels[i].Labels);\r
+            }\r
+            ResumeLayout();\r
+            SetScrollEventHandlers();\r
+        }\r
+\r
+        private void SetScrollEventHandlers()\r
+        {\r
+            foreach (var label in _labels[0].Labels)\r
+            {\r
+                label.MouseEnter += TopLineOnMouseEnter;\r
+                label.MouseLeave += TopLineOnMouseLeave;\r
+            }\r
+            foreach (var label in _labels[Lines - 1].Labels)\r
+            {\r
+                label.MouseEnter += BottomLineOnMouseEnter;\r
+                label.MouseLeave += BottomLineOnMouseLeave;\r
+            }\r
+            _topScrollRepeatTimer.Tick += TopLineOnMouseEnter;\r
+            _bottomScrollRepeatTimer.Tick += BottomLineOnMouseEnter;\r
+        }\r
+\r
+        private readonly Timer _topScrollRepeatTimer = new Timer {Interval = 100};\r
+        private readonly Timer _bottomScrollRepeatTimer = new Timer {Interval = 100};\r
+\r
+        private void TopLineOnMouseEnter(object sender, EventArgs e)\r
+        {\r
+            if (_listPosition == 0)\r
+                return;\r
+            _listPosition--;\r
+            ShowQuestList();\r
+            _topScrollRepeatTimer.Start();\r
+        }\r
+\r
+        private void TopLineOnMouseLeave(object sender, EventArgs e)\r
+        {\r
+            _topScrollRepeatTimer.Stop();\r
+        }\r
+\r
+        private void BottomLineOnMouseEnter(object sender, EventArgs e)\r
+        {\r
+            if (_listPosition + Lines >= _questList.Length)\r
+                return;\r
+            _listPosition++;\r
+            ShowQuestList();\r
+            _bottomScrollRepeatTimer.Start();\r
+        }\r
+\r
+        private void BottomLineOnMouseLeave(object sender, EventArgs e)\r
+        {\r
+            _bottomScrollRepeatTimer.Stop();\r
+        }\r
+\r
+        public void Update(QuestStatus[] quests)\r
+        {\r
+            _questList = quests;\r
+            if (quests.Length <= Lines)\r
+                _listPosition = 0;\r
+            ShowQuestList();\r
+        }\r
+\r
+        public void ShowQuestList()\r
+        {\r
+            SuspendLayout();\r
+            for (var i = 0; i < Lines; i++)\r
+            {\r
+                var labels = _labels[i];\r
+                if (i >= _questList.Length)\r
+                {\r
+                    ClearQuest(labels);\r
+                    ClearCount(labels.Count);\r
+                    continue;\r
+                }\r
+                var quest = _questList[i + _listPosition];\r
+                SetQuest(labels, quest);\r
+                if (quest.Count.Id == 0)\r
+                {\r
+                    ClearCount(labels.Count);\r
+                    continue;\r
+                }\r
+                SetCount(labels.Count, quest.Count);\r
+            }\r
+            ResumeLayout(true);\r
+            DrawMark();\r
+        }\r
+\r
+        private void ClearQuest(QuestLabels labels)\r
+        {\r
+            labels.Color.BackColor = DefaultBackColor;\r
+            labels.Name.Text = labels.Count.Text = labels.Progress.Text = "";\r
+        }\r
+\r
+        private void ClearCount(Label label)\r
+        {\r
+            label.Text = "";\r
+            label.ForeColor = Color.Black;\r
+            ToolTip.SetToolTip(label, "");\r
+        }\r
+\r
+        private void SetQuest(QuestLabels labels, QuestStatus quest)\r
+        {\r
+            labels.Color.BackColor = quest.Color;\r
+            labels.Name.Text = quest.Name;\r
+            labels.Progress.Text = $"{quest.Progress:D}%";\r
+            ToolTip.SetToolTip(labels.Name, quest.ToToolTip());\r
+        }\r
+\r
+        private void SetCount(Label label, QuestCount count)\r
+        {\r
+            label.Text = " " + count;\r
+            label.ForeColor = count.Cleared ? CUDColors.Red : Color.Black;\r
+            ToolTip.SetToolTip(label, count.ToToolTip());\r
+        }\r
+\r
+        private void NameLabelDoubleClickHandler(object sender, EventArgs e)\r
+        {\r
+            NameLabelDoubleClick?.Invoke(sender, e);\r
+        }\r
+\r
+        public event EventHandler NameLabelDoubleClick;\r
+\r
+        protected override void OnPaint(PaintEventArgs e)\r
+        {\r
+            base.OnPaint(e);\r
+            DrawMark();\r
+        }\r
+\r
+        private void DrawMark()\r
+        {\r
+            using (var g = CreateGraphics())\r
+            {\r
+                var topBrush = _listPosition > 0 ? Brushes.Black : new SolidBrush(BackColor);\r
+                g.FillPolygon(topBrush,\r
+                    new[]\r
+                    {\r
+                        new PointF(Width * 0.45f, TopMargin), new PointF(Width * 0.55f, TopMargin),\r
+                        new PointF(Width * 0.5f, 0), new PointF(Width * 0.45f, TopMargin)\r
+                    });\r
+                var bottomBrush = _listPosition + Lines < _questList.Length\r
+                    ? Brushes.Black\r
+                    : new SolidBrush(BackColor);\r
+                g.FillPolygon(bottomBrush,\r
+                    new[]\r
+                    {\r
+                        new PointF(Width * 0.45f, Height - TopMargin - 2),\r
+                        new PointF(Width * 0.55f, Height - TopMargin - 2),\r
+                        new PointF(Width * 0.5f, Height - 2), new PointF(Width * 0.45f, Height - TopMargin - 2)\r
+                    });\r
+            }\r
+        }\r
+    }\r
+}
\ No newline at end of file