| Revision | 4d674a08e80ff3bc1b6bc66d4f3c29c132bd8c44 (tree) |
|---|---|
| Time | 2011-01-22 10:52:08 |
| Author | azyobuzin <azyobuzin@user...> |
| Commiter | azyobuzin |
新着通知を実装
| @@ -8,6 +8,7 @@ namespace Azyobuzi.Twirunrun | ||
| 8 | 8 | { |
| 9 | 9 | public StatusesListView() |
| 10 | 10 | { |
| 11 | + this.DoubleBuffered = true; | |
| 11 | 12 | this.View = View.Details; |
| 12 | 13 | this.VirtualMode = true; |
| 13 | 14 | this.HeaderStyle = ColumnHeaderStyle.None; |
| @@ -19,7 +20,7 @@ namespace Azyobuzi.Twirunrun | ||
| 19 | 20 | this.OwnerDraw = true; |
| 20 | 21 | this.DrawSubItem += this_DrawSubItem; |
| 21 | 22 | } |
| 22 | - | |
| 23 | + | |
| 23 | 24 | private IList<StatusInfo> statuses; |
| 24 | 25 | public IList<StatusInfo> Statuses |
| 25 | 26 | { |
| @@ -36,7 +37,8 @@ namespace Azyobuzi.Twirunrun | ||
| 36 | 37 | |
| 37 | 38 | public void SetItemsCount(int count) |
| 38 | 39 | { |
| 39 | - this.Invoke((MethodInvoker)(() =>{ | |
| 40 | + this.Invoke((MethodInvoker)(() => | |
| 41 | + { | |
| 40 | 42 | VirtualListSize = count; |
| 41 | 43 | this.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent); |
| 42 | 44 | })); |
| @@ -15,7 +15,7 @@ namespace Azyobuzi.Twirunrun | ||
| 15 | 15 | .Where(tweet => tweet.Type == StatusTypes.DirectMessage) |
| 16 | 16 | .OrderBy(Settings.Instance.OrderType) |
| 17 | 17 | .ToList(); |
| 18 | - if (e.NewItems.Count != 0) | |
| 18 | + if (e.NewItems.Count != 0 && !first) | |
| 19 | 19 | { |
| 20 | 20 | var newTweets = e.NewItems.OfType<StatusInfo>().Where(tweet => tweet.Type == StatusTypes.DirectMessage); |
| 21 | 21 | if (newTweets.Any()) this.NotifyNewItems(newTweets.OrderByDescending(_ => _)); |
| @@ -23,11 +23,12 @@ namespace Azyobuzi.Twirunrun | ||
| 23 | 23 | }; |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | - public override void RefreshTimeline(int page, int count) | |
| 26 | + private bool first; | |
| 27 | + | |
| 28 | + public override void RefreshTimeline(int page, int count, bool first) | |
| 27 | 29 | { |
| 28 | 30 | NotifyStarted(); |
| 29 | - RecentStatusesCollection.Instance.AddRange( | |
| 30 | - new[] { DirectMessageType.SentTo, DirectMessageType.SentBy }.SelectMany(type => | |
| 31 | + var newDMs = new[] { DirectMessageType.SentTo, DirectMessageType.SentBy }.SelectMany(type => | |
| 31 | 32 | this.GetMainForm().TwitterContext.DirectMessage.Where(dm => |
| 32 | 33 | dm.Type == type && |
| 33 | 34 | dm.Page == page && |
| @@ -35,7 +36,10 @@ namespace Azyobuzi.Twirunrun | ||
| 35 | 36 | ) |
| 36 | 37 | ).Select(dm => new StatusInfo(dm)) |
| 37 | 38 | .Where(dm => !RecentStatusesCollection.Instance.AsParallel().Contains(dm)) |
| 38 | - ); | |
| 39 | + .ToArray(); | |
| 40 | + if (newDMs.Any()) | |
| 41 | + this.first = first; | |
| 42 | + RecentStatusesCollection.Instance.AddRange(newDMs); | |
| 39 | 43 | NotifyCompleted(); |
| 40 | 44 | } |
| 41 | 45 | } |
| @@ -16,25 +16,31 @@ namespace Azyobuzi.Twirunrun | ||
| 16 | 16 | .OrderBy(Settings.Instance.OrderType) |
| 17 | 17 | .ToList(); |
| 18 | 18 | //新着通知 |
| 19 | - if (e.NewItems.Count != 0) | |
| 19 | + if (e.NewItems.Count != 0 && !first) | |
| 20 | 20 | { |
| 21 | + first = false; | |
| 21 | 22 | var newTweets = e.NewItems.OfType<StatusInfo>().Where(tweet => tweet.Type != StatusTypes.DirectMessage); |
| 22 | 23 | if (newTweets.Any()) this.NotifyNewItems(newTweets.OrderByDescending(_ => _)); |
| 23 | 24 | } |
| 24 | 25 | }; |
| 25 | 26 | } |
| 26 | 27 | |
| 27 | - public override void RefreshTimeline(int page, int count) | |
| 28 | + private bool first; | |
| 29 | + | |
| 30 | + public override void RefreshTimeline(int page, int count, bool first) | |
| 28 | 31 | { |
| 29 | 32 | NotifyStarted(); |
| 30 | - RecentStatusesCollection.Instance.AddRange( | |
| 31 | - this.GetMainForm().TwitterContext.Status.Where(tweet => | |
| 33 | + var newTweets = this.GetMainForm().TwitterContext.Status.Where(tweet => | |
| 32 | 34 | tweet.Type == StatusType.Home && |
| 33 | 35 | tweet.Page == page && |
| 34 | 36 | tweet.Count == count |
| 35 | - ).Select(tweet => new StatusInfo(tweet)) | |
| 37 | + ) | |
| 38 | + .Select(tweet => new StatusInfo(tweet)) | |
| 36 | 39 | .Where(tweet => !RecentStatusesCollection.Instance.AsParallel().Contains(tweet)) |
| 37 | - ); | |
| 40 | + .ToArray(); | |
| 41 | + if (newTweets.Any()) | |
| 42 | + this.first = first; | |
| 43 | + RecentStatusesCollection.Instance.AddRange(newTweets); | |
| 38 | 44 | NotifyCompleted(); |
| 39 | 45 | } |
| 40 | 46 | } |
| @@ -24,7 +24,7 @@ namespace Azyobuzi.Twirunrun | ||
| 24 | 24 | .OrderBy(Settings.Instance.OrderType) |
| 25 | 25 | .ToList(); |
| 26 | 26 | //新着通知 |
| 27 | - if (e.NewItems.Count != 0) | |
| 27 | + if (e.NewItems.Count != 0 && !first) | |
| 28 | 28 | { |
| 29 | 29 | var newTweets = e.NewItems.OfType<StatusInfo>().Where(tweet => mentionCheckRegex.IsMatch(tweet.Text)); |
| 30 | 30 | if (newTweets.Any()) NotifyNewItems(newTweets.OrderByDescending(_ => _)); |
| @@ -32,17 +32,22 @@ namespace Azyobuzi.Twirunrun | ||
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | - public override void RefreshTimeline(int page, int count) | |
| 35 | + private bool first; | |
| 36 | + | |
| 37 | + public override void RefreshTimeline(int page, int count, bool first) | |
| 36 | 38 | { |
| 37 | 39 | NotifyStarted(); |
| 38 | - RecentStatusesCollection.Instance.AddRange( | |
| 39 | - this.GetMainForm().TwitterContext.Status.Where(tweet => | |
| 40 | + var newTweets = this.GetMainForm().TwitterContext.Status.Where(tweet => | |
| 40 | 41 | tweet.Type == StatusType.Mentions && |
| 41 | 42 | tweet.Page == page && |
| 42 | 43 | tweet.Count == count |
| 43 | - ).Select(tweet => new StatusInfo(tweet)) | |
| 44 | + ) | |
| 45 | + .Select(tweet => new StatusInfo(tweet)) | |
| 44 | 46 | .Where(tweet => !RecentStatusesCollection.Instance.AsParallel().Contains(tweet)) |
| 45 | - ); | |
| 47 | + .ToArray(); | |
| 48 | + if (newTweets.Any()) | |
| 49 | + this.first = first; | |
| 50 | + RecentStatusesCollection.Instance.AddRange(newTweets); | |
| 46 | 51 | NotifyCompleted(); |
| 47 | 52 | } |
| 48 | 53 | } |
| @@ -65,15 +65,15 @@ namespace Azyobuzi.Twirunrun | ||
| 65 | 65 | }); |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | - public abstract void RefreshTimeline(int page, int count); | |
| 69 | - public virtual void RefreshTimeline() | |
| 68 | + public abstract void RefreshTimeline(int page, int count, bool first); | |
| 69 | + public virtual void RefreshTimeline(bool first) | |
| 70 | 70 | { |
| 71 | - RefreshTimeline(1, TabSettings.GetHits); | |
| 71 | + RefreshTimeline(1, TabSettings.GetHits, first); | |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | 74 | private void RefreshTimer_Tick(object sender, System.Timers.ElapsedEventArgs e) |
| 75 | 75 | { |
| 76 | - this.GetMainForm().RefreshTimelines(new TimelineTabPage[] { this }); | |
| 76 | + this.GetMainForm().RefreshTimelines(new TimelineTabPage[] { this }, false); | |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | 79 | private bool refreshing = false; |
| @@ -105,7 +105,11 @@ namespace Azyobuzi.Twirunrun | ||
| 105 | 105 | /// </summary> |
| 106 | 106 | protected void NotifyNewItems(IEnumerable<StatusInfo> newItems) |
| 107 | 107 | { |
| 108 | - //TODO | |
| 108 | + this.Invoke((MethodInvoker)(() => | |
| 109 | + { | |
| 110 | + if (TabSettings.NotifyNewTweet) | |
| 111 | + NotifyForm.ShowItems(newItems, this.FindForm()); | |
| 112 | + })); | |
| 109 | 113 | } |
| 110 | 114 | } |
| 111 | 115 | } |
| @@ -265,6 +265,11 @@ namespace Azyobuzi.Twirunrun | ||
| 265 | 265 | return HttpUtility.HtmlEncode(source); |
| 266 | 266 | } |
| 267 | 267 | |
| 268 | + public static string HtmlDecode(this string source) | |
| 269 | + { | |
| 270 | + return HttpUtility.HtmlDecode(source); | |
| 271 | + } | |
| 272 | + | |
| 268 | 273 | public static string HtmlAttributeEncode(this string source) |
| 269 | 274 | { |
| 270 | 275 | return HttpUtility.HtmlAttributeEncode(source); |
| @@ -28,19 +28,23 @@ | ||
| 28 | 28 | /// </summary> |
| 29 | 29 | private void InitializeComponent() |
| 30 | 30 | { |
| 31 | + this.components = new System.ComponentModel.Container(); | |
| 31 | 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); |
| 32 | 33 | this.menuStrip1 = new System.Windows.Forms.MenuStrip(); |
| 33 | - this.ファイルFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |
| 34 | - this.終了XToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |
| 35 | 34 | this.postPanelSplitter = new System.Windows.Forms.Splitter(); |
| 36 | 35 | this.statusStrip1 = new System.Windows.Forms.StatusStrip(); |
| 37 | 36 | this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel(); |
| 38 | 37 | this.statusBrowserSplitter = new System.Windows.Forms.Splitter(); |
| 38 | + this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); | |
| 39 | + this.fileMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); | |
| 40 | + this.終了XToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |
| 41 | + this.ファイルFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |
| 39 | 42 | this.timelineTabs = new Azyobuzi.Twirunrun.TwirunrunTabControl(); |
| 40 | 43 | this.statusBrowser1 = new Azyobuzi.Twirunrun.StatusBrowser(); |
| 41 | 44 | this.updateStatusPanel1 = new Azyobuzi.Twirunrun.UpdateStatusPanel(); |
| 42 | 45 | this.menuStrip1.SuspendLayout(); |
| 43 | 46 | this.statusStrip1.SuspendLayout(); |
| 47 | + this.fileMenuStrip.SuspendLayout(); | |
| 44 | 48 | this.SuspendLayout(); |
| 45 | 49 | // |
| 46 | 50 | // menuStrip1 |
| @@ -53,21 +57,6 @@ | ||
| 53 | 57 | this.menuStrip1.TabIndex = 0; |
| 54 | 58 | this.menuStrip1.Text = "menuStrip1"; |
| 55 | 59 | // |
| 56 | - // ファイルFToolStripMenuItem | |
| 57 | - // | |
| 58 | - this.ファイルFToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { | |
| 59 | - this.終了XToolStripMenuItem}); | |
| 60 | - this.ファイルFToolStripMenuItem.Name = "ファイルFToolStripMenuItem"; | |
| 61 | - this.ファイルFToolStripMenuItem.Size = new System.Drawing.Size(85, 22); | |
| 62 | - this.ファイルFToolStripMenuItem.Text = "ファイル(&F)"; | |
| 63 | - // | |
| 64 | - // 終了XToolStripMenuItem | |
| 65 | - // | |
| 66 | - this.終了XToolStripMenuItem.Name = "終了XToolStripMenuItem"; | |
| 67 | - this.終了XToolStripMenuItem.Size = new System.Drawing.Size(118, 22); | |
| 68 | - this.終了XToolStripMenuItem.Text = "終了(&X)"; | |
| 69 | - this.終了XToolStripMenuItem.Click += new System.EventHandler(this.終了XToolStripMenuItem_Click); | |
| 70 | - // | |
| 71 | 60 | // postPanelSplitter |
| 72 | 61 | // |
| 73 | 62 | this.postPanelSplitter.Dock = System.Windows.Forms.DockStyle.Top; |
| @@ -105,6 +94,35 @@ | ||
| 105 | 94 | this.statusBrowserSplitter.TabIndex = 4; |
| 106 | 95 | this.statusBrowserSplitter.TabStop = false; |
| 107 | 96 | // |
| 97 | + // notifyIcon1 | |
| 98 | + // | |
| 99 | + this.notifyIcon1.ContextMenuStrip = this.fileMenuStrip; | |
| 100 | + this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); | |
| 101 | + this.notifyIcon1.Text = "ついるんるん"; | |
| 102 | + this.notifyIcon1.Visible = true; | |
| 103 | + // | |
| 104 | + // fileMenuStrip | |
| 105 | + // | |
| 106 | + this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { | |
| 107 | + this.終了XToolStripMenuItem}); | |
| 108 | + this.fileMenuStrip.Name = "fileMenuStrip"; | |
| 109 | + this.fileMenuStrip.OwnerItem = this.ファイルFToolStripMenuItem; | |
| 110 | + this.fileMenuStrip.Size = new System.Drawing.Size(153, 48); | |
| 111 | + // | |
| 112 | + // 終了XToolStripMenuItem | |
| 113 | + // | |
| 114 | + this.終了XToolStripMenuItem.Name = "終了XToolStripMenuItem"; | |
| 115 | + this.終了XToolStripMenuItem.Size = new System.Drawing.Size(152, 22); | |
| 116 | + this.終了XToolStripMenuItem.Text = "終了(&X)"; | |
| 117 | + this.終了XToolStripMenuItem.Click += new System.EventHandler(this.終了XToolStripMenuItem_Click); | |
| 118 | + // | |
| 119 | + // ファイルFToolStripMenuItem | |
| 120 | + // | |
| 121 | + this.ファイルFToolStripMenuItem.DropDown = this.fileMenuStrip; | |
| 122 | + this.ファイルFToolStripMenuItem.Name = "ファイルFToolStripMenuItem"; | |
| 123 | + this.ファイルFToolStripMenuItem.Size = new System.Drawing.Size(85, 22); | |
| 124 | + this.ファイルFToolStripMenuItem.Text = "ファイル(&F)"; | |
| 125 | + // | |
| 108 | 126 | // timelineTabs |
| 109 | 127 | // |
| 110 | 128 | this.timelineTabs.Dock = System.Windows.Forms.DockStyle.Fill; |
| @@ -152,12 +170,14 @@ | ||
| 152 | 170 | this.MainMenuStrip = this.menuStrip1; |
| 153 | 171 | this.Name = "MainForm"; |
| 154 | 172 | this.Text = "ついるんるん"; |
| 173 | + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); | |
| 155 | 174 | this.Load += new System.EventHandler(this.Form1_Load); |
| 156 | 175 | this.Shown += new System.EventHandler(this.MainForm_Shown); |
| 157 | 176 | this.menuStrip1.ResumeLayout(false); |
| 158 | 177 | this.menuStrip1.PerformLayout(); |
| 159 | 178 | this.statusStrip1.ResumeLayout(false); |
| 160 | 179 | this.statusStrip1.PerformLayout(); |
| 180 | + this.fileMenuStrip.ResumeLayout(false); | |
| 161 | 181 | this.ResumeLayout(false); |
| 162 | 182 | this.PerformLayout(); |
| 163 | 183 |
| @@ -171,10 +191,12 @@ | ||
| 171 | 191 | private TwirunrunTabControl timelineTabs; |
| 172 | 192 | private System.Windows.Forms.StatusStrip statusStrip1; |
| 173 | 193 | private System.Windows.Forms.ToolStripStatusLabel statusLabel; |
| 174 | - private System.Windows.Forms.ToolStripMenuItem ファイルFToolStripMenuItem; | |
| 175 | - private System.Windows.Forms.ToolStripMenuItem 終了XToolStripMenuItem; | |
| 176 | 194 | private StatusBrowser statusBrowser1; |
| 177 | 195 | private System.Windows.Forms.Splitter statusBrowserSplitter; |
| 196 | + private System.Windows.Forms.NotifyIcon notifyIcon1; | |
| 197 | + private System.Windows.Forms.ContextMenuStrip fileMenuStrip; | |
| 198 | + private System.Windows.Forms.ToolStripMenuItem 終了XToolStripMenuItem; | |
| 199 | + private System.Windows.Forms.ToolStripMenuItem ファイルFToolStripMenuItem; | |
| 178 | 200 | |
| 179 | 201 | } |
| 180 | 202 | } |
| @@ -141,7 +141,7 @@ namespace Azyobuzi.Twirunrun | ||
| 141 | 141 | |
| 142 | 142 | private void MainForm_Shown(object sender, EventArgs e) |
| 143 | 143 | { |
| 144 | - RefreshTimelines(GetTabPages()); | |
| 144 | + RefreshTimelines(GetTabPages(), true); | |
| 145 | 145 | } |
| 146 | 146 | |
| 147 | 147 | public IEnumerable<TimelineTabPage> GetTabPages() |
| @@ -149,9 +149,9 @@ namespace Azyobuzi.Twirunrun | ||
| 149 | 149 | return timelineTabs.TabPages.OfType<TimelineTabPage>(); |
| 150 | 150 | } |
| 151 | 151 | |
| 152 | - public void RefreshTimelines(IEnumerable<TimelineTabPage> tabs) | |
| 152 | + public void RefreshTimelines(IEnumerable<TimelineTabPage> tabs, bool first) | |
| 153 | 153 | { |
| 154 | - var t = new Thread(() => tabs.AsParallel().ForAll(tab => tab.RefreshTimeline())); | |
| 154 | + var t = new Thread(() => tabs.AsParallel().ForAll(tab => tab.RefreshTimeline(first))); | |
| 155 | 155 | t.IsBackground = true; |
| 156 | 156 | t.Start(); |
| 157 | 157 | } |
| @@ -177,7 +177,7 @@ namespace Azyobuzi.Twirunrun | ||
| 177 | 177 | lock (RecentStatusesCollection.Instance) |
| 178 | 178 | RecentStatusesCollection.Instance.Add(new StatusInfo(status)); |
| 179 | 179 | StatusChange("投稿完了"); |
| 180 | - RefreshTimelines(GetTabPages().Where(tab => tab.TabSettings.PostGet)); | |
| 180 | + RefreshTimelines(GetTabPages().Where(tab => tab.TabSettings.PostGet), false); | |
| 181 | 181 | }); |
| 182 | 182 | t.IsBackground = true; |
| 183 | 183 | t.Start(Tuple.Create(updateStatusPanel1.Text, updateStatusPanel1.ReplyToId)); |
| @@ -185,7 +185,7 @@ namespace Azyobuzi.Twirunrun | ||
| 185 | 185 | updateStatusPanel1.Clear(); |
| 186 | 186 | } |
| 187 | 187 | else |
| 188 | - RefreshTimelines(GetTabPages().Where(tab => tab.TabSettings.PostGet)); | |
| 188 | + RefreshTimelines(GetTabPages().Where(tab => tab.TabSettings.PostGet), false); | |
| 189 | 189 | } |
| 190 | 190 | |
| 191 | 191 | public void StatusChange(string status) |
| @@ -212,5 +212,18 @@ namespace Azyobuzi.Twirunrun | ||
| 212 | 212 | Process.Start(e.Url.ToString()); |
| 213 | 213 | } |
| 214 | 214 | } |
| 215 | + | |
| 216 | + private bool closing = false; | |
| 217 | + | |
| 218 | + public new void Close() | |
| 219 | + { | |
| 220 | + closing = true; | |
| 221 | + base.Close(); | |
| 222 | + } | |
| 223 | + | |
| 224 | + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) | |
| 225 | + { | |
| 226 | + e.Cancel = e.CloseReason != CloseReason.UserClosing && !closing; | |
| 227 | + } | |
| 215 | 228 | } |
| 216 | 229 | } |
| @@ -120,10 +120,322 @@ | ||
| 120 | 120 | <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
| 121 | 121 | <value>17, 17</value> |
| 122 | 122 | </metadata> |
| 123 | + <metadata name="fileMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 124 | + <value>382, 17</value> | |
| 125 | + </metadata> | |
| 123 | 126 | <metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
| 124 | 127 | <value>139, 17</value> |
| 125 | 128 | </metadata> |
| 129 | + <metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 130 | + <value>263, 17</value> | |
| 131 | + </metadata> | |
| 126 | 132 | <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
| 133 | + <data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | |
| 134 | + <value> | |
| 135 | + AAABAAgAICAQAAEABADoAgAAhgAAABAQEAABAAQAKAEAAG4DAAAgIAAAAQAIAKgIAACWBAAAEBAAAAEA | |
| 136 | + CABoBQAAPg0AADAwAAABABgAqBwAAKYSAAAgIAAAAQAYAKgMAABOLwAAGBgAAAEAGABIBwAA9jsAABAQ | |
| 137 | + AAABABgAaAMAAD5DAAAoAAAAIAAAAEAAAAABAAQAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA9ePFAPHP | |
| 138 | + mwD853YA8stvAPrbRADxxUEA9csjAPbEAAC7r/8AhIP/AMakiQDutjUA77cLAPG4AADvtwYADQoAAIiI | |
| 139 | + iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI | |
| 140 | + iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiImZmZmYiIiIiIiIiIiIiI | |
| 141 | + mZmZmZmZiIiIiIiIiIiIiZn/////mYiIiIiIiIiIiZn///////+ZiIiIiIiIiZmf////////mZmIiIiI | |
| 142 | + iJmf//////////mZmIiIiImZ////////////+Zmb3dupn/Xd/71P///////5Xeu83//93f/Nf/////// | |
| 143 | + /71J/////N3/7d////////+9L/////zd8d3f////////vS/////93SPd3////////70v////Hd1F3db/ | |
| 144 | + //////+9L////z3da93U////////vS/////NXd3V1v///////70v///w3S3df9f///////+9L///8d0r | |
| 145 | + 3W/tD///////vS////Xd891PzS/////13e3t3U/+1/HdL91////////NX///////////////////vS// | |
| 146 | + /////////////////70v//////////////////+9L/////////////////////////////////////// | |
| 147 | + ////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 148 | + AAAAAAP8AAAP/wAAH/8AAH//gAD//+ABjH/4B4x//D+Mf/x/iH/8f4B//H8AP/x/AD/8fwA//H4BP/x+ | |
| 149 | + AR/8fiEf4AYhH/x////8f////H////x///////////////////8oAAAAEAAAACAAAAABAAQAAAAAAIAA | |
| 150 | + AAAAAAAAAAAAAAAAAAAAAAAAvLD+ALKm9QCimvYAhYT/APbfmQDSs4kA+d1iAOq9ZwD1zUAA9s4zAPLA | |
| 151 | + FADzvwYA77ciAO+3AwDvuAoAAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIhAAAAABM/ | |
| 152 | + //MyAAACP/////MxVSP//f////x1n479/////G//zW2f///8b//NnY////xv/9jav////G//1tbv///e | |
| 153 | + rf+/3+////xv////////////////////////////AAD//wAA//8AAP//AAD//wAe//8Af///gO///+Ev | |
| 154 | + ///nB///5wf//+cH///nB///w1f//+f//////////////ygAAAAgAAAAQAAAAAEACAAAAAAAAAQAAAAA | |
| 155 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//7YAAAAAAPLb2wAAAAAA8dnTAAAAAAAAAAAAAAAAAPHY | |
| 156 | + 0wAAAAAA8NPDAAAAAADvz7YAAAAAAAAAAAAAAAAA782tAAAAAADw0acAAAAAAPztigAAAAAA78ihAAAA | |
| 157 | + AADvxpsAAAAAAO/FmAAAAAAA8MyPAAAAAAAAAAAAAAAAAP/xigAAAAAA//CGAAAAAAD/74MAAAAAAAAA | |
| 158 | + AAAAAAAA++V1AAAAAAD96nEAAAAAAP/nZgAAAAAAAAAAAAAAAAD43XwAAAAAAO/AhgAAAAAA78F3AAAA | |
| 159 | + AAD33mAAAAAAAPneXQAAAAAA77pwAAAAAADvvmQAAAAAAAAAAAAAAAAA+99ZAAAAAAD73EgAAAAAAPXX | |
| 160 | + TAAAAAAAAAAAAAAAAAD83kYAAAAAAPzcPwAAAAAA+9k4AAAAAAAAAAAAAAAAAO/KUQAAAAAA99RJAAAA | |
| 161 | + AAD1zjwAAAAAAPPKRAAAAAAA78A4AAAAAADvvEcAAAAAAO+7PAAAAAAAAAAAAAAAAAD61jIAAAAAAPfO | |
| 162 | + KgAAAAAA7700AAAAAAD4zyIAAAAAAPXLJQAAAAAA8cQhAAAAAAD6zwMAAAAAAAAAAAAAAAAA+csAAAAA | |
| 163 | + AAD4ywAAAAAAAPfKAAAAAAAA98MAAAAAAADzwQAAAAAAAPXBAAAAAAAA9b0CAAAAAAAAAAAAAAAAALyw | |
| 164 | + /wAAAAAAtqv/AAAAAACupf8AAAAAAAAAAAAAAAAAq6L/AAAAAACpof8AAAAAAJ+Z/wAAAAAAAAAAAAAA | |
| 165 | + AACemP8AAAAAAJqV/wAAAAAAmZP/AAAAAACGhf8AAAAAAIWE/wAAAAAAgYH/AAAAAACAgP8AAAAAAAAA | |
| 166 | + AAAAAAAAn5nYAAAAAACdjsoAAAAAAKqVnAAAAAAA77dgAAAAAADvt1kAAAAAAO+3VgAAAAAAvJ5zAAAA | |
| 167 | + AAAAAAAAAAAAAO+3UgAAAAAA77dNAAAAAADvtzoAAAAAAO+3NAAAAAAA77csAAAAAADvtysAAAAAAN2w | |
| 168 | + LAAAAAAAAAAAAAAAAADvtxAAAAAAAO+3DwAAAAAA77gMAAAAAAAAAAAAAAAAAO+3CwAAAAAA77kHAAAA | |
| 169 | + AADvtwgAAAAAAAAAAAAAAAAA8LkEAAAAAADxuAMAAAAAAPK3AAAAAAAA87oAAAAAAADwuQAAAAAAAPG4 | |
| 170 | + AAAAAAAA8LcAAAAAAAAAAAAAAAAAAO+3GgAAAAAA77cTAAAAAADvtwcAAAAAAO+3AwAAAAAA77cCAAAA | |
| 171 | + AADvuAEAAAAAAO+3AQAAAAAAAAAAAAAAAADvuiQAAAAAAO+3FQAAAAAA77gTAAAAAADmshQAAAAAAO+3 | |
| 172 | + AAAAAAAA4K8gAAAAAAAAAAAAg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD | |
| 173 | + g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD | |
| 174 | + g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD | |
| 175 | + g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODhZOTk5OTk5OT | |
| 176 | + i4ODg4ODg4ODg4ODg4ODg4ODg4ODhZ+fn5+fn5+fn5+fn4ODg4ODg4ODg4ODg4ODg4ODg42fn58AAAAA | |
| 177 | + AAAAAJ+fh4WDg4ODg4ODg4ODg4ODg4ebn58AAAAAAAAAAAAAAACfmYODg4ODg4ODg4ODg4OXn5+fAAAA | |
| 178 | + AAAAAAAAAAAAAJ+fn5WDg4ODg4ODg4ODj5+fAAAAAAAAAAAAAAAAAAAAAJ+fn52Fg4ODg4ODg52fnwAA | |
| 179 | + AAAAAAAAAAAAAAAAAAAAAACfn5+lX/v7+7+vo58AALX7fwAA8/tFAAAAAAAAAAAAAAAAn1370/39+fsA | |
| 180 | + AAAA6/vVAAD1+3UAAAAAAAAAAAAAAAAAufs7nwAAAAAAAAD3++0AAOn72QAAAAAAAAAAAAAAAAC5+ysA | |
| 181 | + AAAAAAAAAMv7+wAV+/vfAAAAAAAAAAAAAAAAALn7KwAAAAAAAAAA+/v7OTf7+/sAAAAAAAAAAAAAAAAA | |
| 182 | + ufsrAAAAAAAAAB/7+/tHs/v7+2UAAAAAAAAAAAAAAAC5+ysAAAAAAAAAP/vv+227++v7VQAAAAAAAAAA | |
| 183 | + AAAAALn7KwAAAAAAAADF+1n7+/vXU/trAAAAAAAAAAAAAAAAufsrAAAAAAAAC/v7M/v7+30A73sAAAAA | |
| 184 | + AAAAAAAAAAC5+ysAAAAAAAAd+98lvfv7aQDP3QMAAAAAAAAAAAAAALn7KwAAAAAAAK372QA9+/tDAMf7 | |
| 185 | + LQAAAAAAAAAAW/v76fvN+/v7TwAA6ft3ABP7+xcA+/tvAAAAAAAAAAAAAADj+1cAAAAAAAAAAAAAAAAA | |
| 186 | + AAAAAAAAAAAAAAAAAAAAALn7KwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAufsrAAAAAAAAAAAA | |
| 187 | + AAAAAAAAAAAAAAAAAAAAAAAAAAC5+ysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 188 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 189 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAA | |
| 190 | + D/8AAB//AAB//4AA///gAYx/+AeMf/w/jH/8f4h//H+Af/x/AD/8fwA//H8AP/x+AT/8fgEf/H4hH+AG | |
| 191 | + IR/8f////H////x////8f///////////////////KAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA | |
| 192 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPHXzgAAAAAAAAAAAAAAAAC8sP8AAAAAAAAAAAAAAAAAuq//AAAA | |
| 193 | + AAAAAAAAAAAAALqu/wAAAAAAAAAAAAAAAAC5rv8AAAAAAAAAAAAAAAAAsqj/AAAAAAAAAAAAAAAAAKyj | |
| 194 | + /wAAAAAAAAAAAAAAAACyotoAAAAAAAAAAAAAAAAAp5//AAAAAAAAAAAAAAAAAKKb/wAAAAAAAAAAAAAA | |
| 195 | + AACdl/8AAAAAAAAAAAAAAAAAo5ncAAAAAAAAAAAAAAAAAJiT/wAAAAAAAAAAAAAAAACNiv8AAAAAAAAA | |
| 196 | + AAAAAAAAiYf/AAAAAAAAAAAAAAAAAICA/wAAAAAAAAAAAAAAAADx1r0AAAAAAAAAAAAAAAAA9NyuAAAA | |
| 197 | + AAAAAAAAAAAAAP7vggAAAAAAAAAAAAAAAAD43HoAAAAAAAAAAAAAAAAA8M+jAAAAAAAAAAAAAAAAANez | |
| 198 | + dgAAAAAAAAAAAAAAAADTsoAAAAAAAAAAAAAAAAAAsZiNAAAAAAAAAAAAAAAAAPvlaQAAAAAAAAAAAAAA | |
| 199 | + AAD+41gAAAAAAAAAAAAAAAAA+d1hAAAAAAAAAAAAAAAAAPTPawAAAAAAAAAAAAAAAADyzF4AAAAAAAAA | |
| 200 | + AAAAAAAA78NiAAAAAAAAAAAAAAAAAO+7ZwAAAAAAAAAAAAAAAADYrHUAAAAAAAAAAAAAAAAA9s9SAAAA | |
| 201 | + AAAAAAAAAAAAAPbQPAAAAAAAAAAAAAAAAAD30TgAAAAAAAAAAAAAAAAA8cU7AAAAAAAAAAAAAAAAAPnV | |
| 202 | + NwAAAAAAAAAAAAAAAAD50y4AAAAAAAAAAAAAAAAA9s83AAAAAAAAAAAAAAAAAPHCMwAAAAAAAAAAAAAA | |
| 203 | + AADywh0AAAAAAAAAAAAAAAAA88EbAAAAAAAAAAAAAAAAAPPCDAAAAAAAAAAAAAAAAADxvQ0AAAAAAAAA | |
| 204 | + AAAAAAAA88ELAAAAAAAAAAAAAAAAAPjHAAAAAAAAAAAAAAAAAADyvQcAAAAAAAAAAAAAAAAA8LoIAAAA | |
| 205 | + AAAAAAAAAAAAAO+8LQAAAAAAAAAAAAAAAADvtygAAAAAAAAAAAAAAAAA77cQAAAAAAAAAAAAAAAAAO+3 | |
| 206 | + CQAAAAAAAAAAAAAAAADwuQQAAAAAAAAAAAAAAAAA77cEAAAAAAAAAAAAAAAAAO+3AwAAAAAAAAAAAAAA | |
| 207 | + AADwuAAAAAAAAAAAAAAAAAAA779MAAAAAAAAAAAAAAAAAO+4AwAAAAAAAAAAAAAAAADvtwEAAAAAAAAA | |
| 208 | + AAAAAAAA77cAAAAAAAAAAAAAAAAAAO+3IAAAAAAAAAAAAAAAAADvuAAAAAAAAAAAAAAAAAAA6rU0AAAA | |
| 209 | + AADZtU8AAAAAAAAAAAAHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH | |
| 210 | + BwcHBwcHBwcHBwcTIzMzMzMbDwcHBwcHBwcXNz8AAAAAPz8rCwcHBwcnPwAAAAAAAAAAPzsfV1svPwAA | |
| 211 | + ANsAAAAAAAAA+/1fmwDjrwDrAAAAAAAAAMdrAAAA8/dz74sAAAAAAADHawAAAMPXn9eHAAAAAAAAx2sA | |
| 212 | + AADnj++nswAAAAAAAMdrAAAA02/vT78AAAAAAO/Lo+8AAKsA3wDPAAAAAAAAx2sAAAAAAAAAAAAAAAAA | |
| 213 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAe//8Af///gO///+Ev | |
| 214 | + ///nB///5wf//+cH///nB///w1f//+f//////////////ygAAAAwAAAAYAAAAAEAGAAAAAAAABsAAAAA | |
| 215 | + AAAAAAAAAAAAAAAAAAC8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 216 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 217 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 218 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 219 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 220 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 221 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 222 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 223 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 224 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 225 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 226 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 227 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 228 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 229 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 230 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 231 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 232 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 233 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 234 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 235 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 236 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 237 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 238 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+zqf+lnf+lnf+lnf+lnf+lnf+lnf+lnf+lnf+lnf+lnf+l | |
| 239 | + nf+lnf+lnf+6rv+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 240 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+1qv+im/+im/+Vkf+AgP+AgP+A | |
| 241 | + gP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+gmf+im/+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 242 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 243 | + sP+2q/+Xk/+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+AgP+A | |
| 244 | + gP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 245 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+3q/+Xkv+AgP+AgP+AgP+AgP+AgP8AAAAAAAAAAAAAAAAAAAAA | |
| 246 | + AAAAAAAAAAAAAAAAAAAAAACAgP+AgP+AgP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 247 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+5rf+alf+Wkf+AgP+AgP+AgP8A | |
| 248 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYk/+ZlP+8sP+8 | |
| 249 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 250 | + sP+Yk/+Wkf+AgP+AgP+AgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 251 | + AAAAAAAAAAAAAAAAAACAgP+AgP+Yk/+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 252 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+Wkv+AgP+AgP+AgP+AgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 253 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgP+AgP+Bgf+Tj/+ZlP+8sP+8sP+8 | |
| 254 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+Vkf+AgP+AgP+AgP8AAAAA | |
| 255 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 256 | + AAAAAACAgP+AgP+AgP+Cgv+ZlP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+8 | |
| 257 | + sP+8sP+UkP+AgP+AgP+AgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 258 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgP+AgP+AgP+Cgv+Oi/+blf+8sP+8sP+8sP+8 | |
| 259 | + sP+8sP+8sP+8sP+8sP+8sP+8sP+8sP+Wkv+Oi/+Bgf+AgP+AgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 260 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 261 | + AACAgP+AgP+AgP+Dgv+Lif+Lif+xn9jlum7ltTDltTDltTDltTDpvDCll8WLif+Cgf+AgP+AgP+AgP8A | |
| 262 | + AAAAAAAAAADvt1vvtwDwuQD3wwAAAAAAAAAAAADvxWzvtwDvtwD30DYAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 263 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgP+AgP+AgP+AgP+jkb7lsjrvtwvvtwDvtwDvtwDv | |
| 264 | + twDvuADjsRveriXoz2uPjOuAgP8AAAAAAAAAAAAAAADvtzjvtwDvtwD2xiP//7YAAAAAAADvv1jvtwDv | |
| 265 | + twD1yiEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA | |
| 266 | + gP+hk93nuWHvtwPvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwD73VIAAAAAAAAAAAAAAAAAAAAAAADvtwXv | |
| 267 | + twDvtwD1xSH/9JQAAAAAAADvtz7vtwDvtwD0wwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 268 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz/vtwDvtwD0xxu6qJuHg+6Hg+6Hg+7RqEHvtwD7 | |
| 269 | + 3VIAAAAAAAAAAAAAAAAAAADvy5/vtwDvtwDvtwDywhf/52gAAAAAAADvtyPvtwDvtwDzvQAAAAAAAAAA | |
| 270 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDw | |
| 271 | + twD42lq3t9yAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvwobvtwDvtwDvtwDyvw382zoA | |
| 272 | + AAAAAADvtwDvtwDvtwDxtwD532UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 273 | + AAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 274 | + AAAAAADvt17vtwDvtwDvtwDwuwD5zgAAAADvzIrvtwDvtwDvtwDvtwD42FEAAAAAAAAAAAAAAAAAAAAA | |
| 275 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAA | |
| 276 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtzLvtwDvtwDvtwDwuAD2wwMAAADvxXLvtwDvtwDv | |
| 277 | + twDvtwD30TgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 278 | + AAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtwDvtwDv | |
| 279 | + twDvtwDvtwD1yTD26aTvvVjvtwDvtwDvtwDvtwD1yR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 280 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 281 | + AAAAAAAAAAAAAAAAAADw2NDvtwDvtwDvtwDvtwDvtwDzxiX23X3vt0HvtwDvtwDvtwDvtwDyvAAAAAAA | |
| 282 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDx | |
| 283 | + twD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvy6rvtwDvtwDvtwDvtwDvtwDxwhn1 | |
| 284 | + 013vtzvvtwDvtwDvtwDvtwDwtwD64WsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 285 | + AAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 286 | + AADvv3jvtwDvtwDvuQPvuRPvtwDvuwzxwyzvtxzvtwDvuQrvuQzvtwDvtwD52lEAAAAAAAAAAAAAAAAA | |
| 287 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAA | |
| 288 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtyjvtwDvuAD0xhLvwmPvtwDvtwDvtwDvtwDxtwDxwjLv | |
| 289 | + xDnvtwDvtwD30jYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 290 | + AAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtwDvtwDwuQH4 | |
| 291 | + 0izvzZzvtwDvtwDvtwDvtwDxuAD0xSvvwzHvtwDvtwD2yhcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 292 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 293 | + AAAAAAAAAAAAAADw1s3vtwDvtwDwugf731jwyXDvtwDvtwDvtwDvtwDyvAD4xwAAAADvtxDvtwD0wgAA | |
| 294 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDx | |
| 295 | + twD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvyqbvtwDvtwDxvAz/63YAAADvtxHvtwDv | |
| 296 | + twDvtwDzwgn60xcAAADvuTfvtwDyuwD40TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 297 | + AAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADv | |
| 298 | + vX3vtwDvtwDzvRD/+KAAAADvtzvvtwDvtwDvtwD0xx/94E0AAADvvkvvtwDxtwD64mwAAAAAAAAAAAAA | |
| 299 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAA | |
| 300 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvt1DvtwDvtwD1wAkAAAAAAADvu13vtwDvtwDvtwD1zDH/7HoA | |
| 301 | + AADvxF3vtwDvtwD41kIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx1LXvtwDvtwDv | |
| 302 | + twDvty/vtx3vtwDvtwDzxyv22FXvtwDvtwDvtwDvtwD40iwAAAAAAAAAAAAAAADvtxvvtwDvtwD4yQAA | |
| 303 | + AAAAAADvxH3vtwDvtwDwtwD30UH/+aQAAADvvi/vtwDvtwD2yREAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 304 | + AAAAAAAAAAAAAAAAAADx1LXvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwDvtwD40iwA | |
| 305 | + AAAAAAAAAADvz7bvtwHvtwDvuAH71SEAAAAAAADwzpvvtwDvtwDwuQD3yh8AAAAAAADvtyHvtw3vtwD0 | |
| 306 | + wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtybvtwDw | |
| 307 | + twD1zTj443AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 308 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 309 | + AAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 310 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 311 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAA | |
| 312 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 313 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 314 | + AAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 315 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 316 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDxtwD521wAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 317 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 318 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvtz7vtwDx | |
| 319 | + twD521wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 320 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 321 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 322 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 323 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 324 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 325 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 326 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 327 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 328 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 329 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 330 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA | |
| 331 | + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA | |
| 332 | + //8AAAAAP/j//wAAAAH/////AAAAB/////8AAAAP/////wAAAD//////gAAAf//////AAAD///////AA | |
| 333 | + AcOH////+AADwYf////+AA/Bh/////+AD4GH/////4H/gYP/////h/+BA/////+H/4ED/////4f/gAP/ | |
| 334 | + ////h/8AA/////+H/wAB/////4f/AAH/////h/8AAf////+H/wAB/////4f+ABH/////h/4IEP////+H | |
| 335 | + /ggQ/////4f+GBD////wAB4YEP////AAHBgw/////wP/////////h/////////+H/////////4f///// | |
| 336 | + ////h/////////+H//////////////////////////////////////////////////8oAAAAIAAAAEAA | |
| 337 | + AAABABgAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAvLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 338 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 339 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 340 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 341 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 342 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 343 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 344 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 345 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 346 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 347 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 348 | + vLD/vLD/vLD/tqv/npj/npj/npj/npj/npj/npj/npj/npj/q6L/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 349 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/tqv/gID/gID/gID/gID/gID/gID/ | |
| 350 | + gID/gID/gID/gID/gID/gID/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 351 | + vLD/vLD/vLD/vLD/qaH/gID/gID/gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/gID/rqX/tqv/ | |
| 352 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/rqX/hYT/gID/gID/AAAAAAAA | |
| 353 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/hoX/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 354 | + vLD/vLD/vLD/vLD/vLD/mZP/gID/gID/gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 355 | + AAAAAAAAgID/gID/gID/mpX/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/n5n/gID/gID/AAAA | |
| 356 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/gID/gID/gYH/tqv/ | |
| 357 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/gYH/gID/gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 358 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/gID/gID/nY7K77s877cA77cA77cA3bAsvJ5zn5nY | |
| 359 | + gID/AAAAAAAA77dN77cA9b0CAAAAAAAA77ok77cA+9xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 360 | + AAAAAAAAAAAAgID/77xH77cA8LkE4K8g4K8g5rIU77cAAAAAAAAAAAAAAAAA77cC77cA8bgDAAAAAAAA | |
| 361 | + 77cV77cA+MsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA+d5dgID/ | |
| 362 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAA77gT77cA77gBAAAAAAAA77cD77cA87oAAAAAAAAAAAAAAAAAAAAA | |
| 363 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77cL | |
| 364 | + 77cA77cAAAAA8NGn77cA77cA8LcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 365 | + 77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77cA77cA77cA995g78F377cA77cA77cAAAAA | |
| 366 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAA | |
| 367 | + AAAAAAAA8MyP77cA77cA77cA9ddM77dS77cA77cA77cA984qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 368 | + AAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAAAAAA775k77cA77cB77cA8cQh77cs | |
| 369 | + 77cA77cC77cA99RJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAA | |
| 370 | + AAAAAAAAAAAAAAAAAAAAAAAA77cP77cA88pE77cA77cA77cA8rcA78pR77cA9cslAAAAAAAAAAAAAAAA | |
| 371 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAA8djT77cA77cA | |
| 372 | + +N1877cA77cA77cA9cEAAAAA77cB88EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 373 | + 77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAA78WY77cA8LcA//CG77cr77cA77cA+M8iAAAA77cI8bgA | |
| 374 | + //+2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAA | |
| 375 | + AAAA77dW77cA87oAAAAA77pw77cA77cA+99ZAAAA77gM77cA/epxAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 376 | + AAAA78A477cA77cA77cD77cA77kH77cA77cA77cA+9k4AAAAAAAA77cD77cA98oAAAAA782t77cA77cA | |
| 377 | + /O2KAAAA77cA77cA+s8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77ca77cA9c48AAAA | |
| 378 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 379 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 380 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 381 | + 77c077cA++V1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 382 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cA++V1AAAAAAAAAAAAAAAAAAAA | |
| 383 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 384 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 385 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 386 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 387 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 388 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 389 | + AAAAAAAAAAAAAAAAAAAAAAP8AAAP/wAAH/8AAH//gAD//+ABjH/4B4x//D+Mf/x/iH/8f4B//H8AP/x/ | |
| 390 | + AD/8fwA//H4BP/x+AR/8fiEf4AYhH/x////8f////H////x///////////////////8oAAAAGAAAADAA | |
| 391 | + AAABABgAAAAAAMAGAAAAAAAAAAAAAAAAAAAAAAAAvLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 392 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 393 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 394 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 395 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 396 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 397 | + vLD/vLD/tKn/saf/saf/saf/saf/saf/tKn/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 398 | + vLD/vLD/vLD/vLD/rqT/mpX/jIr/hoX/hoX/hoX/hoX/hoX/jIn/mpX/vLD/vLD/vLD/vLD/vLD/vLD/ | |
| 399 | + vLD/vLD/vLD/vLD/vLD/vLD/ua3/qaD/i4n/gID/gID/AAAAAAAAAAAAAAAAAAAAgID/gID/lZH/qqL/ | |
| 400 | + vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/vLD/sKb/lJD/g4L/gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 401 | + AAAAAAAAgID/h4X/nZf/t6v/u6//vLD/vLD/vLD/vLD/u6//sKb/jYr/gID/AAAAAAAAAAAAAAAAAAAA | |
| 402 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/gYH/j4z/opr9vqvTz7Kez7Kbw624opryioj8gID/AAAAAAAA | |
| 403 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/oJHL3rA87LYK5LEZ368l17Zc | |
| 404 | + pJ3TAAAAAAAA77cU88UgAAAA77xS77kC9swcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2q1t77cM | |
| 405 | + 4L9WnZLIup12AAAAAAAAAAAAAAAA77gM8sIVAAAA77gh77cA9tA1AAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 406 | + AAAAAAAA77dL8LcL9NxuAAAAAAAAAAAAAAAAAAAA77g077cH8bsC9c9Q770w77cA9s41AAAAAAAAAAAA | |
| 407 | + AAAAAAAAAAAAAAAAAAAAAAAA77dL8LcL+eFsAAAAAAAAAAAAAAAAAAAA78FJ77cA77cA88tT77gl77cA | |
| 408 | + 88IRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77dL8LcL+eFsAAAAAAAAAAAAAAAAAAAA771B77gG | |
| 409 | + 77gJ8L8n77cS77kJ8b0PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77dL8LcL+eFsAAAAAAAAAAAA | |
| 410 | + AAAAAAAA77gU8cMr778377cA8LgC8L4a8LsG+NEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77dL8LcL | |
| 411 | + +eFsAAAAAAAAAAAAAAAAAAAA77oZ99JG88c877cA8sAH8sE677gS99M4AAAAAAAAAAAAAAAAAAAAAAAA | |
| 412 | + AAAAAAAA77c777cK+N5kAAAAAAAAAAAAAAAAAAAA77gM+NVD88pZ77cB9Mkn9NWP77sk9tA4AAAAAAAA | |
| 413 | + AAAAAAAAAAAAAAAAAAAA77cA77cQ77cD8sUj8L4U77cAAAAAAAAA779F8LsGAAAA78Zv77cC9cstAAAA | |
| 414 | + 77gY88AGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77c077cJ99pZAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 415 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77dL8LcL+eFsAAAAAAAAAAAA | |
| 416 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8LcL | |
| 417 | + +eFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 418 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 419 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 420 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAB8/wAB//8AB///gA///+AZ | |
| 421 | + H//weR//8fAf//HwH//x8B//8fAP//HwD//x8A//4GRP//H////x////+f//////////////KAAAABAA | |
| 422 | + AAAgAAAAAQAYAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAALyw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw | |
| 423 | + /7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw | |
| 424 | + /7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw | |
| 425 | + /7yw/7yw/7yw/7yw/7yw/7yw/7yw/7yw/7mu/6ef/5iT/5iT/5iT/5iT/6yj/7qu/7yw/7yw/7yw/7yw | |
| 426 | + /7yw/7yw/7yw/7Ko/42K/4CA/wAAAAAAAAAAAAAAAICA/4CA/52X/7qv/7yw/7yw/7yw/7yw/6Kb/4CA | |
| 427 | + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA/4mH/7Ki2tezdtOygKOZ3ICA/wAAAAAAAAAAAO+3AwAA | |
| 428 | + AAAAAAAAAAAAAAAAAAAAAAAAAOq1NNm1T7GYjfbPNwAAAO+/TPG9DQAAAO+3AQAAAAAAAAAAAAAAAAAA | |
| 429 | + AAAAAAAAAO+3KPndYQAAAAAAAAAAAO+3IO+4APLMXu+3APfROAAAAAAAAAAAAAAAAAAAAAAAAO+3KPnd | |
| 430 | + YQAAAAAAAAAAAO+8Le+3BPHCM++3BPbQPAAAAAAAAAAAAAAAAAAAAAAAAO+3KPndYQAAAAAAAAAAAO+4 | |
| 431 | + A/HFO++3APPBG/PBCwAAAAAAAAAAAAAAAAAAAAAAAO+3KPndYQAAAAAAAAAAAPC5BPTPa++3APjcevC6 | |
| 432 | + CAAAAAAAAAAAAAAAAAAAAO+3AO+3EPLCHe+3AAAAAAAAAPPCDAAAAPC4AAAAAO+3CQAAAAAAAAAAAAAA | |
| 433 | + AAAAAAAAAO+3KPndYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 434 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 435 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AHv//AH///4Dv///hL///5wf//+cH | |
| 436 | + ///nB///5wf//8NX///n//////////////8= | |
| 437 | +</value> | |
| 438 | + </data> | |
| 127 | 439 | <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
| 128 | 440 | <value> |
| 129 | 441 | AAABAAgAICAQAAEABADoAgAAhgAAABAQEAABAAQAKAEAAG4DAAAgIAAAAQAIAKgIAACWBAAAEBAAAAEA |
| @@ -0,0 +1,125 @@ | ||
| 1 | +namespace Azyobuzi.Twirunrun | |
| 2 | +{ | |
| 3 | + partial class NotifyForm | |
| 4 | + { | |
| 5 | + /// <summary> | |
| 6 | + /// 必要なデザイナー変数です。 | |
| 7 | + /// </summary> | |
| 8 | + private System.ComponentModel.IContainer components = null; | |
| 9 | + | |
| 10 | + /// <summary> | |
| 11 | + /// 使用中のリソースをすべてクリーンアップします。 | |
| 12 | + /// </summary> | |
| 13 | + /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param> | |
| 14 | + protected override void Dispose(bool disposing) | |
| 15 | + { | |
| 16 | + if (disposing && (components != null)) | |
| 17 | + { | |
| 18 | + components.Dispose(); | |
| 19 | + } | |
| 20 | + base.Dispose(disposing); | |
| 21 | + } | |
| 22 | + | |
| 23 | + #region Windows フォーム デザイナーで生成されたコード | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// デザイナー サポートに必要なメソッドです。このメソッドの内容を | |
| 27 | + /// コード エディターで変更しないでください。 | |
| 28 | + /// </summary> | |
| 29 | + private void InitializeComponent() | |
| 30 | + { | |
| 31 | + this.components = new System.ComponentModel.Container(); | |
| 32 | + this.profileImg = new System.Windows.Forms.PictureBox(); | |
| 33 | + this.nameLabel = new System.Windows.Forms.Label(); | |
| 34 | + this.closeButton = new System.Windows.Forms.Button(); | |
| 35 | + this.contentBox = new System.Windows.Forms.TextBox(); | |
| 36 | + this.closeTimer = new System.Windows.Forms.Timer(this.components); | |
| 37 | + ((System.ComponentModel.ISupportInitialize)(this.profileImg)).BeginInit(); | |
| 38 | + this.SuspendLayout(); | |
| 39 | + // | |
| 40 | + // profileImg | |
| 41 | + // | |
| 42 | + this.profileImg.Location = new System.Drawing.Point(12, 12); | |
| 43 | + this.profileImg.Name = "profileImg"; | |
| 44 | + this.profileImg.Size = new System.Drawing.Size(42, 42); | |
| 45 | + this.profileImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; | |
| 46 | + this.profileImg.TabIndex = 0; | |
| 47 | + this.profileImg.TabStop = false; | |
| 48 | + // | |
| 49 | + // nameLabel | |
| 50 | + // | |
| 51 | + this.nameLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | |
| 52 | + | System.Windows.Forms.AnchorStyles.Right))); | |
| 53 | + this.nameLabel.AutoEllipsis = true; | |
| 54 | + this.nameLabel.Location = new System.Drawing.Point(60, 12); | |
| 55 | + this.nameLabel.Name = "nameLabel"; | |
| 56 | + this.nameLabel.Size = new System.Drawing.Size(163, 12); | |
| 57 | + this.nameLabel.TabIndex = 1; | |
| 58 | + this.nameLabel.Text = "[Name or screen name]"; | |
| 59 | + this.nameLabel.UseMnemonic = false; | |
| 60 | + // | |
| 61 | + // closeButton | |
| 62 | + // | |
| 63 | + this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); | |
| 64 | + this.closeButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; | |
| 65 | + this.closeButton.Location = new System.Drawing.Point(229, 12); | |
| 66 | + this.closeButton.Name = "closeButton"; | |
| 67 | + this.closeButton.Size = new System.Drawing.Size(23, 23); | |
| 68 | + this.closeButton.TabIndex = 2; | |
| 69 | + this.closeButton.Text = "×"; | |
| 70 | + this.closeButton.UseVisualStyleBackColor = true; | |
| 71 | + this.closeButton.Click += new System.EventHandler(this.closeTimer_Tick); | |
| 72 | + // | |
| 73 | + // contentBox | |
| 74 | + // | |
| 75 | + this.contentBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | |
| 76 | + | System.Windows.Forms.AnchorStyles.Left) | |
| 77 | + | System.Windows.Forms.AnchorStyles.Right))); | |
| 78 | + this.contentBox.BackColor = System.Drawing.SystemColors.Info; | |
| 79 | + this.contentBox.BorderStyle = System.Windows.Forms.BorderStyle.None; | |
| 80 | + this.contentBox.Location = new System.Drawing.Point(62, 41); | |
| 81 | + this.contentBox.Multiline = true; | |
| 82 | + this.contentBox.Name = "contentBox"; | |
| 83 | + this.contentBox.ReadOnly = true; | |
| 84 | + this.contentBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; | |
| 85 | + this.contentBox.Size = new System.Drawing.Size(190, 72); | |
| 86 | + this.contentBox.TabIndex = 3; | |
| 87 | + // | |
| 88 | + // closeTimer | |
| 89 | + // | |
| 90 | + this.closeTimer.Tick += new System.EventHandler(this.closeTimer_Tick); | |
| 91 | + // | |
| 92 | + // NotifyForm | |
| 93 | + // | |
| 94 | + this.AcceptButton = this.closeButton; | |
| 95 | + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); | |
| 96 | + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |
| 97 | + this.BackColor = System.Drawing.SystemColors.Info; | |
| 98 | + this.CancelButton = this.closeButton; | |
| 99 | + this.ClientSize = new System.Drawing.Size(264, 125); | |
| 100 | + this.Controls.Add(this.contentBox); | |
| 101 | + this.Controls.Add(this.closeButton); | |
| 102 | + this.Controls.Add(this.nameLabel); | |
| 103 | + this.Controls.Add(this.profileImg); | |
| 104 | + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; | |
| 105 | + this.Name = "NotifyForm"; | |
| 106 | + this.ShowInTaskbar = false; | |
| 107 | + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; | |
| 108 | + this.Text = "ついるんるん 通知画面"; | |
| 109 | + this.TopMost = true; | |
| 110 | + this.Load += new System.EventHandler(this.NotifyForm_Load); | |
| 111 | + ((System.ComponentModel.ISupportInitialize)(this.profileImg)).EndInit(); | |
| 112 | + this.ResumeLayout(false); | |
| 113 | + this.PerformLayout(); | |
| 114 | + | |
| 115 | + } | |
| 116 | + | |
| 117 | + #endregion | |
| 118 | + | |
| 119 | + private System.Windows.Forms.PictureBox profileImg; | |
| 120 | + private System.Windows.Forms.Label nameLabel; | |
| 121 | + private System.Windows.Forms.Button closeButton; | |
| 122 | + private System.Windows.Forms.TextBox contentBox; | |
| 123 | + private System.Windows.Forms.Timer closeTimer; | |
| 124 | + } | |
| 125 | +} | |
| \ No newline at end of file |
| @@ -0,0 +1,82 @@ | ||
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.ComponentModel; | |
| 4 | +using System.Data; | |
| 5 | +using System.Drawing; | |
| 6 | +using System.Linq; | |
| 7 | +using System.Text; | |
| 8 | +using System.Windows.Forms; | |
| 9 | +using System.Threading; | |
| 10 | + | |
| 11 | +namespace Azyobuzi.Twirunrun | |
| 12 | +{ | |
| 13 | + public partial class NotifyForm : Form | |
| 14 | + { | |
| 15 | + private NotifyForm() | |
| 16 | + { | |
| 17 | + InitializeComponent(); | |
| 18 | + } | |
| 19 | + | |
| 20 | + public static void ShowItems(IEnumerable<StatusInfo> items, Form owner) | |
| 21 | + { | |
| 22 | + Point lastLocation = Point.Empty; | |
| 23 | + const int space = 5; | |
| 24 | + items.Reverse().ForEach(item => | |
| 25 | + { | |
| 26 | + var f = new NotifyForm(); | |
| 27 | + f.Owner = owner; | |
| 28 | + f.SetText(item); | |
| 29 | + if (lastLocation.IsEmpty) | |
| 30 | + { | |
| 31 | + var workingArea = Screen.GetWorkingArea(f); | |
| 32 | + lastLocation = new Point(workingArea.Right - space - f.Width, workingArea.Bottom - space - f.Height); | |
| 33 | + } | |
| 34 | + else | |
| 35 | + { | |
| 36 | + lastLocation.Offset(0, -space - f.Height); | |
| 37 | + if (lastLocation.Y < 0) | |
| 38 | + { | |
| 39 | + lastLocation.X -= space + f.Width; | |
| 40 | + lastLocation.Y = Screen.GetWorkingArea(f).Bottom - space - f.Height; | |
| 41 | + } | |
| 42 | + } | |
| 43 | + f.Location = lastLocation; | |
| 44 | + f.Show(); | |
| 45 | + }); | |
| 46 | + } | |
| 47 | + | |
| 48 | + private void SetText(StatusInfo item) | |
| 49 | + { | |
| 50 | + profileImg.Tag = item.ProfileImageUri; | |
| 51 | + nameLabel.Text = Settings.Instance.NameType == NameTypes.Name ? item.User.Name : item.User.Identifier.ScreenName; | |
| 52 | + contentBox.Text = item.Text; | |
| 53 | + closeTimer.Interval = Settings.Instance.NotifyFormShowTime * 1000; | |
| 54 | + } | |
| 55 | + | |
| 56 | + private void closeTimer_Tick(object sender, EventArgs e) | |
| 57 | + { | |
| 58 | + closeTimer.Stop(); | |
| 59 | + this.Close(); | |
| 60 | + } | |
| 61 | + | |
| 62 | + private void NotifyForm_Load(object sender, EventArgs e) | |
| 63 | + { | |
| 64 | + var img = Icons.GetItem(profileImg.Tag.ToString()); | |
| 65 | + if (img == null) | |
| 66 | + { | |
| 67 | + var t = new Thread(uri => | |
| 68 | + { | |
| 69 | + var result = Icons.AddSync(uri.ToString()); | |
| 70 | + profileImg.Invoke((MethodInvoker)(() => profileImg.Image = result)); | |
| 71 | + }); | |
| 72 | + t.IsBackground = true; | |
| 73 | + t.Start(profileImg.Tag); | |
| 74 | + } | |
| 75 | + else | |
| 76 | + { | |
| 77 | + profileImg.Image = img; | |
| 78 | + } | |
| 79 | + closeTimer.Start(); | |
| 80 | + } | |
| 81 | + } | |
| 82 | +} |
| @@ -0,0 +1,123 @@ | ||
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<root> | |
| 3 | + <!-- | |
| 4 | + Microsoft ResX Schema | |
| 5 | + | |
| 6 | + Version 2.0 | |
| 7 | + | |
| 8 | + The primary goals of this format is to allow a simple XML format | |
| 9 | + that is mostly human readable. The generation and parsing of the | |
| 10 | + various data types are done through the TypeConverter classes | |
| 11 | + associated with the data types. | |
| 12 | + | |
| 13 | + Example: | |
| 14 | + | |
| 15 | + ... ado.net/XML headers & schema ... | |
| 16 | + <resheader name="resmimetype">text/microsoft-resx</resheader> | |
| 17 | + <resheader name="version">2.0</resheader> | |
| 18 | + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | |
| 19 | + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | |
| 20 | + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | |
| 21 | + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | |
| 22 | + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | |
| 23 | + <value>[base64 mime encoded serialized .NET Framework object]</value> | |
| 24 | + </data> | |
| 25 | + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | |
| 26 | + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | |
| 27 | + <comment>This is a comment</comment> | |
| 28 | + </data> | |
| 29 | + | |
| 30 | + There are any number of "resheader" rows that contain simple | |
| 31 | + name/value pairs. | |
| 32 | + | |
| 33 | + Each data row contains a name, and value. The row also contains a | |
| 34 | + type or mimetype. Type corresponds to a .NET class that support | |
| 35 | + text/value conversion through the TypeConverter architecture. | |
| 36 | + Classes that don't support this are serialized and stored with the | |
| 37 | + mimetype set. | |
| 38 | + | |
| 39 | + The mimetype is used for serialized objects, and tells the | |
| 40 | + ResXResourceReader how to depersist the object. This is currently not | |
| 41 | + extensible. For a given mimetype the value must be set accordingly: | |
| 42 | + | |
| 43 | + Note - application/x-microsoft.net.object.binary.base64 is the format | |
| 44 | + that the ResXResourceWriter will generate, however the reader can | |
| 45 | + read any of the formats listed below. | |
| 46 | + | |
| 47 | + mimetype: application/x-microsoft.net.object.binary.base64 | |
| 48 | + value : The object must be serialized with | |
| 49 | + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | |
| 50 | + : and then encoded with base64 encoding. | |
| 51 | + | |
| 52 | + mimetype: application/x-microsoft.net.object.soap.base64 | |
| 53 | + value : The object must be serialized with | |
| 54 | + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | |
| 55 | + : and then encoded with base64 encoding. | |
| 56 | + | |
| 57 | + mimetype: application/x-microsoft.net.object.bytearray.base64 | |
| 58 | + value : The object must be serialized into a byte array | |
| 59 | + : using a System.ComponentModel.TypeConverter | |
| 60 | + : and then encoded with base64 encoding. | |
| 61 | + --> | |
| 62 | + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | |
| 63 | + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | |
| 64 | + <xsd:element name="root" msdata:IsDataSet="true"> | |
| 65 | + <xsd:complexType> | |
| 66 | + <xsd:choice maxOccurs="unbounded"> | |
| 67 | + <xsd:element name="metadata"> | |
| 68 | + <xsd:complexType> | |
| 69 | + <xsd:sequence> | |
| 70 | + <xsd:element name="value" type="xsd:string" minOccurs="0" /> | |
| 71 | + </xsd:sequence> | |
| 72 | + <xsd:attribute name="name" use="required" type="xsd:string" /> | |
| 73 | + <xsd:attribute name="type" type="xsd:string" /> | |
| 74 | + <xsd:attribute name="mimetype" type="xsd:string" /> | |
| 75 | + <xsd:attribute ref="xml:space" /> | |
| 76 | + </xsd:complexType> | |
| 77 | + </xsd:element> | |
| 78 | + <xsd:element name="assembly"> | |
| 79 | + <xsd:complexType> | |
| 80 | + <xsd:attribute name="alias" type="xsd:string" /> | |
| 81 | + <xsd:attribute name="name" type="xsd:string" /> | |
| 82 | + </xsd:complexType> | |
| 83 | + </xsd:element> | |
| 84 | + <xsd:element name="data"> | |
| 85 | + <xsd:complexType> | |
| 86 | + <xsd:sequence> | |
| 87 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
| 88 | + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | |
| 89 | + </xsd:sequence> | |
| 90 | + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | |
| 91 | + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | |
| 92 | + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | |
| 93 | + <xsd:attribute ref="xml:space" /> | |
| 94 | + </xsd:complexType> | |
| 95 | + </xsd:element> | |
| 96 | + <xsd:element name="resheader"> | |
| 97 | + <xsd:complexType> | |
| 98 | + <xsd:sequence> | |
| 99 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
| 100 | + </xsd:sequence> | |
| 101 | + <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 102 | + </xsd:complexType> | |
| 103 | + </xsd:element> | |
| 104 | + </xsd:choice> | |
| 105 | + </xsd:complexType> | |
| 106 | + </xsd:element> | |
| 107 | + </xsd:schema> | |
| 108 | + <resheader name="resmimetype"> | |
| 109 | + <value>text/microsoft-resx</value> | |
| 110 | + </resheader> | |
| 111 | + <resheader name="version"> | |
| 112 | + <value>2.0</value> | |
| 113 | + </resheader> | |
| 114 | + <resheader name="reader"> | |
| 115 | + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
| 116 | + </resheader> | |
| 117 | + <resheader name="writer"> | |
| 118 | + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
| 119 | + </resheader> | |
| 120 | + <metadata name="closeTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 121 | + <value>17, 17</value> | |
| 122 | + </metadata> | |
| 123 | +</root> | |
| \ No newline at end of file |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | using System.Collections.Generic; |
| 2 | +using System.Windows.Forms; | |
| 2 | 3 | using LinqToTwitter; |
| 3 | 4 | |
| 4 | 5 | namespace Azyobuzi.Twirunrun |
| @@ -10,6 +11,6 @@ namespace Azyobuzi.Twirunrun | ||
| 10 | 11 | UpdateStatusPanel UpdateStatusPanel { get; } |
| 11 | 12 | void ShowDetailStatus(StatusInfo status); |
| 12 | 13 | IEnumerable<TimelineTabPage> GetTabPages(); |
| 13 | - void RefreshTimelines(IEnumerable<TimelineTabPage> tabs); | |
| 14 | + void RefreshTimelines(IEnumerable<TimelineTabPage> tabs, bool first); | |
| 14 | 15 | } |
| 15 | 16 | } |
| @@ -30,6 +30,21 @@ namespace Azyobuzi.Twirunrun | ||
| 30 | 30 | public readonly static object LockObj = new object(); |
| 31 | 31 | |
| 32 | 32 | |
| 33 | + public static Image AddSync(string uri) | |
| 34 | + { | |
| 35 | + Image result; | |
| 36 | + using (var wc = new WebClient()) | |
| 37 | + { | |
| 38 | + result = wc.DownloadImage(uri); | |
| 39 | + } | |
| 40 | + | |
| 41 | + lock (LockObj) | |
| 42 | + { | |
| 43 | + Icons.Add(uri, result); | |
| 44 | + } | |
| 45 | + | |
| 46 | + return result; | |
| 47 | + } | |
| 33 | 48 | |
| 34 | 49 | public static void AddAsync(string uri) |
| 35 | 50 | { |
| @@ -613,6 +613,26 @@ namespace Azyobuzi.Twirunrun | ||
| 613 | 613 | return tabs; |
| 614 | 614 | } |
| 615 | 615 | } |
| 616 | + | |
| 617 | + // | |
| 618 | + //新着通知表示時間 | |
| 619 | + // | |
| 620 | + private int notifyFormShowTime = 7; | |
| 621 | + public int NotifyFormShowTime | |
| 622 | + { | |
| 623 | + set | |
| 624 | + { | |
| 625 | + if (notifyFormShowTime != value) | |
| 626 | + { | |
| 627 | + notifyFormShowTime = value; | |
| 628 | + OnPropertyChanged("NotifyFormShowTime"); | |
| 629 | + } | |
| 630 | + } | |
| 631 | + get | |
| 632 | + { | |
| 633 | + return notifyFormShowTime; | |
| 634 | + } | |
| 635 | + } | |
| 616 | 636 | } |
| 617 | 637 | |
| 618 | 638 | public class FormSettings : IEquatable<FormSettings> |
| @@ -22,7 +22,7 @@ namespace Azyobuzi.Twirunrun | ||
| 22 | 22 | Type = StatusTypes.Tweet; |
| 23 | 23 | Id = Tweet.StatusID; |
| 24 | 24 | User = Tweet.User; |
| 25 | - Text = Tweet.Text; | |
| 25 | + Text = Tweet.Text.HtmlDecode(); | |
| 26 | 26 | CreatedAt = Tweet.CreatedAt.ToLocalTime(); |
| 27 | 27 | ReplyToStatusId = Tweet.InReplyToStatusID; |
| 28 | 28 | Favorited = Tweet.Favorited; |
| @@ -34,7 +34,7 @@ namespace Azyobuzi.Twirunrun | ||
| 34 | 34 | Type = StatusTypes.Retweet; |
| 35 | 35 | Id = Tweet.StatusID; |
| 36 | 36 | User = Tweet.Retweet.RetweetingUser; |
| 37 | - Text = Tweet.Retweet.Text; | |
| 37 | + Text = Tweet.Retweet.Text.HtmlDecode(); | |
| 38 | 38 | CreatedAt = Tweet.Retweet.CreatedAt.ToLocalTime(); |
| 39 | 39 | ReplyToStatusId = Tweet.Retweet.InReplyToStatusID; |
| 40 | 40 | Favorited = Tweet.Retweet.Favorited; |
| @@ -70,8 +70,8 @@ namespace Azyobuzi.Twirunrun | ||
| 70 | 70 | |
| 71 | 71 | Id = DirectMessage.ID.ToString(); |
| 72 | 72 | User = DirectMessage.Sender; |
| 73 | - Text = DirectMessage.SenderScreenName.Equals(Settings.Instance.MyScreenName, StringComparison.InvariantCultureIgnoreCase) ? | |
| 74 | - string.Format("@{0} {1}", DirectMessage.RecipientScreenName, DirectMessage.Text) : DirectMessage.Text; | |
| 73 | + Text = (DirectMessage.SenderScreenName.Equals(Settings.Instance.MyScreenName, StringComparison.InvariantCultureIgnoreCase) ? | |
| 74 | + string.Format("@{0} {1}", DirectMessage.RecipientScreenName, DirectMessage.Text) : DirectMessage.Text).HtmlDecode(); | |
| 75 | 75 | CreatedAt = DirectMessage.CreatedAt.ToLocalTime(); |
| 76 | 76 | ProfileImageUri = DirectMessage.Sender.ProfileImageUrl; |
| 77 | 77 | } |
| @@ -114,6 +114,12 @@ | ||
| 114 | 114 | <Compile Include="Forms\InputForm.Designer.cs"> |
| 115 | 115 | <DependentUpon>InputForm.cs</DependentUpon> |
| 116 | 116 | </Compile> |
| 117 | + <Compile Include="Forms\NotifyForm.cs"> | |
| 118 | + <SubType>Form</SubType> | |
| 119 | + </Compile> | |
| 120 | + <Compile Include="Forms\NotifyForm.Designer.cs"> | |
| 121 | + <DependentUpon>NotifyForm.cs</DependentUpon> | |
| 122 | + </Compile> | |
| 117 | 123 | <Compile Include="Forms\SettingsForm.cs"> |
| 118 | 124 | <SubType>Form</SubType> |
| 119 | 125 | </Compile> |
| @@ -174,6 +180,9 @@ | ||
| 174 | 180 | <EmbeddedResource Include="Forms\InputForm.resx"> |
| 175 | 181 | <DependentUpon>InputForm.cs</DependentUpon> |
| 176 | 182 | </EmbeddedResource> |
| 183 | + <EmbeddedResource Include="Forms\NotifyForm.resx"> | |
| 184 | + <DependentUpon>NotifyForm.cs</DependentUpon> | |
| 185 | + </EmbeddedResource> | |
| 177 | 186 | <EmbeddedResource Include="Forms\SettingsForm.resx"> |
| 178 | 187 | <DependentUpon>SettingsForm.cs</DependentUpon> |
| 179 | 188 | </EmbeddedResource> |