<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Questions on .NET I don&#8217;t expect answers to</title>
	<atom:link href="http://victorsergienko.com/dotnet-cannot-answer/feed/" rel="self" type="application/rss+xml" />
	<link>http://victorsergienko.com/dotnet-cannot-answer/</link>
	<description>Programming: Java, Groovy, C++, .NET, OOD, a little this and that</description>
	<lastBuildDate>Tue, 27 Dec 2011 15:17:28 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Victor Sergienko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-809</link>
		<dc:creator>Victor Sergienko</dc:creator>
		<pubDate>Sun, 19 Oct 2008 08:12:31 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-809</guid>
		<description>Good idea, if someone keeps calling (and failing) the methods in a loop. Thank you.</description>
		<content:encoded><![CDATA[<p>Good idea, if someone keeps calling (and failing) the methods in a loop. Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amir</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-808</link>
		<dc:creator>Amir</dc:creator>
		<pubDate>Sat, 18 Oct 2008 16:26:18 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-808</guid>
		<description>Replace ExceptionHelper calls to just instanciate a new NotSupportedException</description>
		<content:encoded><![CDATA[<p>Replace ExceptionHelper calls to just instanciate a new NotSupportedException</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amir</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-807</link>
		<dc:creator>Amir</dc:creator>
		<pubDate>Sat, 18 Oct 2008 16:24:17 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-807</guid>
		<description>/// 
	/// A read only dictionary wrapper.
	/// 
	/// The type of the key.
	/// The type of the value.
	[Serializable]
	public class ReadOnlyDictionary : IDictionary
	{
		#region Private Variables
		private readonly IDictionary _dictionary;
		#endregion

		#region Protected Properties
		/// 
		/// Gets the dictionary.
		/// 
		/// The dictionary.
		protected IDictionary Dictionary
		{
			get
			{
				return _dictionary;
			}
		}
		#endregion

		#region IDictionary Methods
		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		void IDictionary.Add(TKey key, TValue value)
		{
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
		}

		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		bool IDictionary.Remove(TKey key)
		{
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
		}

		/// 
		/// Determines whether the  contains an element with the specified key.
		/// 
		/// The key to locate in the .
		/// 
		/// true if the  contains an element with the key; otherwise, false.
		/// 
		/// 
		/// 	 is null.
		public bool ContainsKey(TKey key)
		{
			return _dictionary.ContainsKey(key);
		}

		/// 
		/// Gets the value associated with the specified key.
		/// 
		/// The key whose value to get.
		/// When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the  parameter. This parameter is passed uninitialized.
		/// 
		/// true if the object that implements  contains an element with the specified key; otherwise, false.
		/// 
		/// 
		/// 	 is null.
		public bool TryGetValue(TKey key, out TValue value)
		{
			return _dictionary.TryGetValue(key, out value);
		}
		#endregion

		#region Public Properties
		/// 
		/// Gets an  containing the keys of the .
		/// 
		/// 
		/// An  containing the keys of the object that implements .
		public ICollection Keys
		{
			get
			{
				return _dictionary.Keys;
			}
		}

		/// 
		/// Gets an  containing the values in the .
		/// 
		/// 
		/// An  containing the values in the object that implements .
		public ICollection Values
		{
			get
			{
				return _dictionary.Values;
			}
		}

		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		TValue IDictionary.this[TKey key]
		{
			get
			{
				return this[key];
			}
			set
			{
				throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
			}
		}

		/// 
		/// Gets the value with the specified key.
		/// 
		public TValue this[TKey key]
		{
			get
			{
				return _dictionary[key];
			}
		}

		/// 
		/// Gets the number of elements contained in the .
		/// 
		/// 
		/// The number of elements contained in the .
		public int Count
		{
			get
			{
				return _dictionary.Count;
			}
		}

		/// 
		/// Gets a value indicating whether the  is read-only.
		/// 
		/// 
		/// true if the  is read-only; otherwise, false.
		public bool IsReadOnly
		{
			get
			{
				return true;
			}
		}
		#endregion

		#region ICollection&lt;KeyValuePair&gt; Members
		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		void ICollection&lt;KeyValuePair&gt;.Add(KeyValuePair item)
		{
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
		}

		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		void ICollection&lt;KeyValuePair&gt;.Clear()
		{
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
		}

		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		bool ICollection&lt;KeyValuePair&gt;.Contains(KeyValuePair item)
		{
			return _dictionary.Contains(item);
		}

		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		bool ICollection&lt;KeyValuePair&gt;.Remove(KeyValuePair item)
		{
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());
		}

		/// 
		/// Copies the elements of the  to an , starting at a particular  index.
		/// 
		/// The one-dimensional  that is the destination of the elements copied from . The  must have zero-based indexing.
		/// The zero-based index in  at which copying begins.
		/// 
		/// 	 is null.
		/// 
		/// 	 is less than 0.
		/// 
		/// 	 is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source  is greater than the available space from  to the end of the destination .-or-Type  cannot be cast automatically to the type of the destination .
		public void CopyTo(KeyValuePair[] array, int arrayIndex)
		{
			_dictionary.CopyTo(array, arrayIndex);
		}
		#endregion

		#region IEnumerable&lt;KeyValuePair&gt; Members
		/// 
		/// Returns an enumerator that iterates through the collection.
		/// 
		/// 
		/// A  that can be used to iterate through the collection.
		/// 
		public IEnumerator&lt;KeyValuePair&gt; GetEnumerator()
		{
			return _dictionary.GetEnumerator();
		}
		#endregion

		#region IEnumerable Members
		[SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1033:InterfaceMethodsShouldBeCallableByChildTypes&quot;)]
		IEnumerator IEnumerable.GetEnumerator()
		{
			return GetEnumerator();
		}
		#endregion

		#region Public Constructor
		/// 
		/// Initializes a new instance of the  class.
		/// 
		/// The dictionary to wrap.
		public ReadOnlyDictionary(IDictionary dictionary)
		{
			if((_dictionary = dictionary) == null) throw new ArgumentNullException(&quot;dictionary&quot;);
		}
		#endregion
	}</description>
		<content:encoded><![CDATA[<p>///<br />
	/// A read only dictionary wrapper.<br />
	///<br />
	/// The type of the key.<br />
	/// The type of the value.<br />
	[Serializable]<br />
	public class ReadOnlyDictionary : IDictionary<br />
	{<br />
		#region Private Variables<br />
		private readonly IDictionary _dictionary;<br />
		#endregion</p>
<p>		#region Protected Properties<br />
		///<br />
		/// Gets the dictionary.<br />
		///<br />
		/// The dictionary.<br />
		protected IDictionary Dictionary<br />
		{<br />
			get<br />
			{<br />
				return _dictionary;<br />
			}<br />
		}<br />
		#endregion</p>
<p>		#region IDictionary Methods<br />
		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		void IDictionary.Add(TKey key, TValue value)<br />
		{<br />
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
		}</p>
<p>		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		bool IDictionary.Remove(TKey key)<br />
		{<br />
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
		}</p>
<p>		///<br />
		/// Determines whether the  contains an element with the specified key.<br />
		///<br />
		/// The key to locate in the .<br />
		///<br />
		/// true if the  contains an element with the key; otherwise, false.<br />
		///<br />
		///<br />
		/// 	 is null.<br />
		public bool ContainsKey(TKey key)<br />
		{<br />
			return _dictionary.ContainsKey(key);<br />
		}</p>
<p>		///<br />
		/// Gets the value associated with the specified key.<br />
		///<br />
		/// The key whose value to get.<br />
		/// When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the  parameter. This parameter is passed uninitialized.<br />
		///<br />
		/// true if the object that implements  contains an element with the specified key; otherwise, false.<br />
		///<br />
		///<br />
		/// 	 is null.<br />
		public bool TryGetValue(TKey key, out TValue value)<br />
		{<br />
			return _dictionary.TryGetValue(key, out value);<br />
		}<br />
		#endregion</p>
<p>		#region Public Properties<br />
		///<br />
		/// Gets an  containing the keys of the .<br />
		///<br />
		///<br />
		/// An  containing the keys of the object that implements .<br />
		public ICollection Keys<br />
		{<br />
			get<br />
			{<br />
				return _dictionary.Keys;<br />
			}<br />
		}</p>
<p>		///<br />
		/// Gets an  containing the values in the .<br />
		///<br />
		///<br />
		/// An  containing the values in the object that implements .<br />
		public ICollection Values<br />
		{<br />
			get<br />
			{<br />
				return _dictionary.Values;<br />
			}<br />
		}</p>
<p>		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		TValue IDictionary.this[TKey key]<br />
		{<br />
			get<br />
			{<br />
				return this[key];<br />
			}<br />
			set<br />
			{<br />
				throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
			}<br />
		}</p>
<p>		///<br />
		/// Gets the value with the specified key.<br />
		///<br />
		public TValue this[TKey key]<br />
		{<br />
			get<br />
			{<br />
				return _dictionary[key];<br />
			}<br />
		}</p>
<p>		///<br />
		/// Gets the number of elements contained in the .<br />
		///<br />
		///<br />
		/// The number of elements contained in the .<br />
		public int Count<br />
		{<br />
			get<br />
			{<br />
				return _dictionary.Count;<br />
			}<br />
		}</p>
<p>		///<br />
		/// Gets a value indicating whether the  is read-only.<br />
		///<br />
		///<br />
		/// true if the  is read-only; otherwise, false.<br />
		public bool IsReadOnly<br />
		{<br />
			get<br />
			{<br />
				return true;<br />
			}<br />
		}<br />
		#endregion</p>
<p>		#region ICollection&lt;KeyValuePair&gt; Members<br />
		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		void ICollection&lt;KeyValuePair&gt;.Add(KeyValuePair item)<br />
		{<br />
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
		}</p>
<p>		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		void ICollection&lt;KeyValuePair&gt;.Clear()<br />
		{<br />
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
		}</p>
<p>		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		bool ICollection&lt;KeyValuePair&gt;.Contains(KeyValuePair item)<br />
		{<br />
			return _dictionary.Contains(item);<br />
		}</p>
<p>		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		bool ICollection&lt;KeyValuePair&gt;.Remove(KeyValuePair item)<br />
		{<br />
			throw ExceptionHelper.CreateNotSupportedException(MethodBase.GetCurrentMethod());<br />
		}</p>
<p>		///<br />
		/// Copies the elements of the  to an , starting at a particular  index.<br />
		///<br />
		/// The one-dimensional  that is the destination of the elements copied from . The  must have zero-based indexing.<br />
		/// The zero-based index in  at which copying begins.<br />
		///<br />
		/// 	 is null.<br />
		///<br />
		/// 	 is less than 0.<br />
		///<br />
		/// 	 is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source  is greater than the available space from  to the end of the destination .-or-Type  cannot be cast automatically to the type of the destination .<br />
		public void CopyTo(KeyValuePair[] array, int arrayIndex)<br />
		{<br />
			_dictionary.CopyTo(array, arrayIndex);<br />
		}<br />
		#endregion</p>
<p>		#region IEnumerable&lt;KeyValuePair&gt; Members<br />
		///<br />
		/// Returns an enumerator that iterates through the collection.<br />
		///<br />
		///<br />
		/// A  that can be used to iterate through the collection.<br />
		///<br />
		public IEnumerator&lt;KeyValuePair&gt; GetEnumerator()<br />
		{<br />
			return _dictionary.GetEnumerator();<br />
		}<br />
		#endregion</p>
<p>		#region IEnumerable Members<br />
		[SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]<br />
		IEnumerator IEnumerable.GetEnumerator()<br />
		{<br />
			return GetEnumerator();<br />
		}<br />
		#endregion</p>
<p>		#region Public Constructor<br />
		///<br />
		/// Initializes a new instance of the  class.<br />
		///<br />
		/// The dictionary to wrap.<br />
		public ReadOnlyDictionary(IDictionary dictionary)<br />
		{<br />
			if((_dictionary = dictionary) == null) throw new ArgumentNullException(&#8220;dictionary&#8221;);<br />
		}<br />
		#endregion<br />
	}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fiberglass flowers / Multithreading in WPF: getting started</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-539</link>
		<dc:creator>Fiberglass flowers / Multithreading in WPF: getting started</dc:creator>
		<pubDate>Fri, 20 Jun 2008 20:39:11 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-539</guid>
		<description>[...] Can you think of any reason to do so? I can&#8217;t. It&#8217;s another &#8220;we&#8217;ll never know&#8220;. [...]</description>
		<content:encoded><![CDATA[<p>[...] Can you think of any reason to do so? I can&#8217;t. It&#8217;s another &#8220;we&#8217;ll never know&#8220;. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victor Sergienko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-160</link>
		<dc:creator>Victor Sergienko</dc:creator>
		<pubDate>Wed, 13 Feb 2008 16:00:06 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-160</guid>
		<description>My recent change to it...

        public override bool ContainsKey(TKey key)
        {
//            return this.dictionary.ContainsKey(key);
            if (!this.dictionary.ContainsKey(key)) return false;
            WeakReference&lt;TValue&gt; weakValue;
            return (this.dictionary.TryGetValue(key, out weakValue));
        }</description>
		<content:encoded><![CDATA[<p>My recent change to it&#8230;</p>
<p>        public override bool ContainsKey(TKey key)<br />
        {<br />
//            return this.dictionary.ContainsKey(key);<br />
            if (!this.dictionary.ContainsKey(key)) return false;<br />
            WeakReference<tvalue> weakValue;<br />
            return (this.dictionary.TryGetValue(key, out weakValue));<br />
        }</tvalue></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmytro Malenko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-159</link>
		<dc:creator>Dmytro Malenko</dc:creator>
		<pubDate>Tue, 22 Jan 2008 13:17:38 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-159</guid>
		<description>Yep, you got it right: &quot;commercial approach leads to somewhat suboptimal (or maybe not too mature) technical decisions&quot; and vice versa. And as usual truth is somewhere in between. Practice is always about compromises, you just have make right compromises ;)</description>
		<content:encoded><![CDATA[<p>Yep, you got it right: &#8220;commercial approach leads to somewhat suboptimal (or maybe not too mature) technical decisions&#8221; and vice versa. And as usual truth is somewhere in between. Practice is always about compromises, you just have make right compromises <img src='http://victorsergienko.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victor Sergienko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-158</link>
		<dc:creator>Victor Sergienko</dc:creator>
		<pubDate>Tue, 22 Jan 2008 03:51:06 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-158</guid>
		<description>On more specific topic, I can also advocate Microsoft sometimes. and do so. Though, for Atrray.Length, I&#039;d object.

There are immutable collections that can&#039;t change not only size, but also their contents. Though, nobody complains about that.
I&#039;m sure that if array&#039;s length was called Count, it would be OK with everyone.

I don&#039;t think there was a specific reason, rather &quot;it just happened so&quot; - another hit of system complexity barrier.</description>
		<content:encoded><![CDATA[<p>On more specific topic, I can also advocate Microsoft sometimes. and do so. Though, for Atrray.Length, I&#8217;d object.</p>
<p>There are immutable collections that can&#8217;t change not only size, but also their contents. Though, nobody complains about that.<br />
I&#8217;m sure that if array&#8217;s length was called Count, it would be OK with everyone.</p>
<p>I don&#8217;t think there was a specific reason, rather &#8220;it just happened so&#8221; &#8211; another hit of system complexity barrier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victor Sergienko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-157</link>
		<dc:creator>Victor Sergienko</dc:creator>
		<pubDate>Tue, 22 Jan 2008 03:43:24 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-157</guid>
		<description>Thanks Dmitry.
I&#039;m far from considering Microsoft fools (if they were, would they be that rich?). It&#039;s just the &lt;a href=&quot;http://en.wikipedia.org/wiki/Complex_system#Features_of_complex_systems&quot; rel=&quot;nofollow&quot;&gt;system complexity barrier&lt;/a&gt; that slows you down greatly you at some point.
Depending on software design approach, the resulting system becomes difficult to change sooner or later.
As for me, Microsoft&#039;s commercial approach leads to somewhat suboptimal (or maybe not too mature) technical decisions. It&#039;s products are way better then many others, but still there are samples off better decisions &#8212; do not read further unless you&#039;d like a holywar &#8212; like maybe in Java or Smalltalk.</description>
		<content:encoded><![CDATA[<p>Thanks Dmitry.<br />
I&#8217;m far from considering Microsoft fools (if they were, would they be that rich?). It&#8217;s just the <a href="http://en.wikipedia.org/wiki/Complex_system#Features_of_complex_systems" rel="nofollow">system complexity barrier</a> that slows you down greatly you at some point.<br />
Depending on software design approach, the resulting system becomes difficult to change sooner or later.<br />
As for me, Microsoft&#8217;s commercial approach leads to somewhat suboptimal (or maybe not too mature) technical decisions. It&#8217;s products are way better then many others, but still there are samples off better decisions &mdash; do not read further unless you&#8217;d like a holywar &mdash; like maybe in Java or Smalltalk.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmytro Malenko</title>
		<link>http://victorsergienko.com/dotnet-cannot-answer/comment-page-1/#comment-156</link>
		<dc:creator>Dmytro Malenko</dc:creator>
		<pubDate>Mon, 21 Jan 2008 13:08:34 +0000</pubDate>
		<guid isPermaLink="false">http://victorsergienko.com/dotnet-cannot-answer/#comment-156</guid>
		<description>Victor,

I do not have an answer to all your questions, at least not for the first three. But there is explanation for the last one.

I can not remember where I read it, but seems it was from one of the Microsofters. The story is that Array is of fixed length which is determined when array is created. On the contrary collection can change size dynamically therefore we speak about current count of elements in the collection. Anyway Array explicitly implements ICollection so this can be easily abstracted out.

As for the first three items I just do not believe that Microsoft did what they did due to foolishness. You know language and library design is a tricky job and every your decision is a trade-off. I&#039;m sure these questions can be answered if right people are asked.</description>
		<content:encoded><![CDATA[<p>Victor,</p>
<p>I do not have an answer to all your questions, at least not for the first three. But there is explanation for the last one.</p>
<p>I can not remember where I read it, but seems it was from one of the Microsofters. The story is that Array is of fixed length which is determined when array is created. On the contrary collection can change size dynamically therefore we speak about current count of elements in the collection. Anyway Array explicitly implements ICollection so this can be easily abstracted out.</p>
<p>As for the first three items I just do not believe that Microsoft did what they did due to foolishness. You know language and library design is a tricky job and every your decision is a trade-off. I&#8217;m sure these questions can be answered if right people are asked.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

