リビジョン | 4d674a08e80ff3bc1b6bc66d4f3c29c132bd8c44 (tree) |
---|---|
日時 | 2011-01-22 10:52:08 |
作者 | azyobuzin <azyobuzin@user...> |
コミッター | 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> |