<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7564822384159984078</atom:id><lastBuildDate>Mon, 05 Apr 2010 19:02:38 +0000</lastBuildDate><title>Destination IUnknown</title><description>Mostly on .NET, Java, Blogosphere, software development and techie stuff by Victor Hadianto</description><link>http://www.hadianto.net/destinationv2/</link><managingEditor>noreply@blogger.com (vhadiant)</managingEditor><generator>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-8720028581817347342</guid><pubDate>Mon, 05 Apr 2010 19:02:00 +0000</pubDate><atom:updated>2010-04-05T20:02:38.628+01:00</atom:updated><title>This blog has moved</title><description>&lt;br /&gt;       This blog is now located at http://iunknown.hadianto.net/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://iunknown.hadianto.net/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://iunknown.hadianto.net/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-8720028581817347342?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2010/04/this-blog-has-moved.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-2801642775830728479</guid><pubDate>Tue, 31 Mar 2009 20:05:00 +0000</pubDate><atom:updated>2009-03-31T21:05:04.751+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><title>Referencing assemblies in GAC</title><description>I found out that you can't actually refer to assemblies from the GAC directly. So in development, you need to add reference to the physical assemblies (wherever that assemblies are located), set "Copy Local" to false and at run time, the CLS will load the assembly reference from the GAC.&lt;br /&gt;&lt;br /&gt;More information here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=1175"&gt;http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=1175&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/dotnet/demystifygac.aspx"&gt;http://www.codeproject.com/KB/dotnet/demystifygac.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-2801642775830728479?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/03/referencing-assemblies-in-gac.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-8367560264143222007</guid><pubDate>Tue, 03 Mar 2009 20:12:00 +0000</pubDate><atom:updated>2009-03-03T20:12:00.618Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><title>Running DOS batch file from UNC path</title><description>My DOS batch install file broke when I tried running them from a UNC path. It says: "CMD does not support UNC paths as current directories". Old error message but new to me. Make sense since DOS was around before the UNC path era.&lt;br /&gt;&lt;br /&gt;Turn out that there is a &lt;a href="http://weblogs.asp.net/whaggard/archive/2005/01/28/get-directory-path-of-an-executing-batch-file.aspx"&gt;solution&lt;/a&gt;, not the cleanest but it works. Basically you have to do this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pushd "%~dp0"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;REM ... do your stuff&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;popd&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What pushd does is automatically map the given parameter as a drive and popd removes the mapping. Not the best solution, but a working one. And the "%~dp0" parameter gets you the current directory of the batch file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-8367560264143222007?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/03/running-dos-batch-file-from-unc-path.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-9007628177248657210</guid><pubDate>Sat, 28 Feb 2009 17:51:00 +0000</pubDate><atom:updated>2009-02-28T18:01:32.229Z</atom:updated><title>SkyDrive bumped to 25Gb</title><description>&lt;a href="http://skydrive.live.com/"&gt;Microsoft SkyDrive&lt;/a&gt; ramps its storage space to 25Gb. This will undoubtedly heating up the competition for online backup services.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think 25Gb is plenty for a lot of people. I for one will be in those category. What it's missing is sync ability ala &lt;a href="http://www.carbonite.com/"&gt;Carbonite.&lt;/a&gt; There's a &lt;a href="http://www.gladinet.com/"&gt;Gladinet&lt;/a&gt;, a new software to mount web-drive to your Windows Explorer but it's still in Beta and that too is missing sync ability.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For me though, this is great news. I will start uploading my archived files one-by-one while giving me a bit more time to do my research for online backup or when Gladinet finally comes out with the sync function or when GDrive is finally released ... whenever that may be.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-9007628177248657210?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/02/skydrive-bumped-to-25gb.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-830603369187222097</guid><pubDate>Fri, 27 Feb 2009 20:11:00 +0000</pubDate><atom:updated>2009-03-03T16:38:57.799Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><title>Is that Padding or Margin?</title><description>I've always got confused about the difference between Padding and Margin. Yeah sure for a seasoned web developers or UI developers this is easy, but I hardly touch any UI code these days (that may change).&lt;br /&gt;&lt;br /&gt;Dan Rigsby has this really good post about the &lt;a href="http://www.danrigsby.com/blog/index.php/2008/05/20/margins-and-padding-in-wpf/"&gt;difference between Padding and Margin &lt;/a&gt;(in WPF), bookmarked and linked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-830603369187222097?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/02/is-that-padding-or-margin.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-6084404919279336428</guid><pubDate>Thu, 05 Feb 2009 11:00:00 +0000</pubDate><atom:updated>2009-02-05T11:02:40.197Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><title>Hashtable Serialization</title><description>I've experienced the pain of Hashtable serialization/deserialization. It's just doesn't work as you expect it to.&lt;br /&gt;&lt;br /&gt;The following two posts are very useful explaining what the issues with Hashtable's serialization mechanism:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/279524/hashtable-ondeserialization"&gt;http://stackoverflow.com/questions/279524/hashtable-ondeserialization&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/%20http://clevercoder.wordpress.com/2006/11/30/hashtable-serialization-and-the-ideserializationcallback-interface/"&gt;http://clevercoder.wordpress.com/2006/11/30/hashtable-serialization-and-the-ideserializationcallback-interface/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-6084404919279336428?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/02/hashtable-serialization.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-5794178400496995039</guid><pubDate>Wed, 21 Jan 2009 17:18:00 +0000</pubDate><atom:updated>2009-01-21T17:30:01.142Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blog</category><title>Good Bye Hostway, Hello GoDaddy</title><description>I can't find any fault with my previous hosting provider, &lt;a href="http://www.hostway.com/"&gt;Hostway&lt;/a&gt;, but 'tis is the time to reduce spending and be prudent.&lt;br /&gt;&lt;br /&gt;So since I hardly ever use any of the features provided by Hostway, I've decided to go cheap and use GoDaddy's ads supported free hosting.&lt;br /&gt;&lt;br /&gt;I've been slowly moving away from the "do it yourself" mantra and moving to the "let others do it" mantra. How things have changed :)&lt;br /&gt;&lt;br /&gt;No longer have the time or passion to tinker with MovableType, I now use Blogger to manage the (pretty much abandoned) blogs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://coppermine-gallery.net/"&gt;Coppermine&lt;/a&gt; is gone a while back, I just could not be arsed to maintain it anymore. Now all my pics are hosted in &lt;a href="http://picasaweb.google.com/vhadiant"&gt;Picasa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Just a few years ago I loved to tinker with MT, WordPress or Coppermine. Thus being able to ssh to my web host is very important, but now that I've pretty much outsourced all the functionalities, a free web host with GoDaddy is more than enough. And of course it's free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-5794178400496995039?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2009/01/good-bye-hostway-hello-godaddy.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-9199117021075471162</guid><pubDate>Fri, 27 Jun 2008 12:09:00 +0000</pubDate><atom:updated>2008-06-27T13:18:08.468+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>Visual Studio</category><title>Manually creating Interop dll using tlbimp.exe</title><description>Visual Studio .Net automatically creates Interop dll when you reference the COM dll in your project. This is all nice and behaves as expected, but at times you may want to create the Interop dll manually.&lt;br /&gt;&lt;br /&gt;Tlbimp.exe is the tool to use. However, strange as it may seems, by default it doesn't do what Visual Studio does. How interesting ...&lt;br /&gt;&lt;br /&gt;Visual Studio .Net by default add "Interop." at the beginning of the generated Interop dll and set the namespace as the name of the dll &lt;em&gt;sans&lt;/em&gt; the ".dll".&lt;br /&gt;&lt;br /&gt;For example, if the dll is called MyCOM.dll. Visual Studio generates: Interop.MyCOM.dll and creates the Interop dll under MyCOM namespace.&lt;br /&gt;&lt;br /&gt;To achieve the same effect using tlbimp, you need to use both the /out and /namespace flag. For example:&lt;br /&gt;&lt;br /&gt;tlbimp /out:Interop.MyCOM.dll /namespace:MyCOM MyCOM.dll&lt;br /&gt;&lt;br /&gt;Sorted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-9199117021075471162?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2008/06/manually-creating-interop-dll-using.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-4878242988493500135</guid><pubDate>Wed, 25 Jun 2008 15:01:00 +0000</pubDate><atom:updated>2008-06-25T16:09:34.206+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Coding</category><title>Resharper Love &amp; Hate</title><description>&lt;a href="http://www.jetbrains.com/resharper/"&gt;ReSharper&lt;/a&gt; is the tool that I can't live without it and I can't live with it. It's easy to say why. First of all I just can't work without the following R# shortcuts:&lt;br /&gt;&lt;br /&gt;- Ctrl + N (this probably worth 95% of R# price)&lt;br /&gt;- Ctrl + B&lt;br /&gt;- Ctrl + Shift + B&lt;br /&gt;- Alt + F7&lt;br /&gt;- Ctrl + Shift + F7&lt;br /&gt;- Ctrl + F12&lt;br /&gt;&lt;br /&gt;And the code analysis is too darn useful:&lt;br /&gt;&lt;br /&gt;- Auto import&lt;br /&gt;- Auto initialise variable through constructor&lt;br /&gt;- Generate getter&lt;br /&gt;- Plus all the refactoring tools (extract method etc. etc. etc.)&lt;br /&gt;&lt;br /&gt;But it's really s ..... l .... o .... w. It's worse during debugging session. Every F10 can take up to a second. Evaluating a variable can produce a time-out and it also crashes my debugging session when it's running within NUnit. God knows why.&lt;br /&gt;&lt;br /&gt;It's such a shame for such a great tool to be super slow. I often had to turn R# off for debugging and turn it back on during coding. The problem with this is that it often screw up the R# keyboard short cuts and I had to reset it again. This takes about 25 minutes in my PC.&lt;br /&gt;&lt;br /&gt;A lot of people complained about R# regarding its memory foot print and more frequently ... performance. This seems to be a common whinge about it. If only R# is a tad faster, we all will be in coding nirvana. I kid you not.&lt;br /&gt;&lt;br /&gt;In the mean time I'm investigating CodeRush + Refactor combo as R# replacement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-4878242988493500135?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2008/06/resharper-love-hate.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-6348903209591617451</guid><pubDate>Wed, 05 Mar 2008 15:24:00 +0000</pubDate><atom:updated>2008-03-06T10:49:47.272Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><title>LoaderLock was detected</title><description>Blimey … what was that? This kind of exception, that only happens during debugging, confuses developers. Googling about the problem shows that Microsoft at times gives &lt;a href="http://groups.google.co.uk/group/microsoft.public.dotnet.framework/browse_thread/thread/f842bea28f03f2de/b402b0bc20fede1a"&gt;pointless&lt;/a&gt; answer. Some blame iTunes about this problem ;)&lt;br /&gt;&lt;br /&gt;Rather than following the advice to turn this rather useful check in VS 2005, the most &lt;a href="http://groups.google.co.uk/group/microsoft.public.dotnet.framework.clr/browse_thread/thread/4efb2443848c4e65/a7c0cb9fac34f768"&gt;probable causes&lt;/a&gt; of this problem are:&lt;br /&gt;&lt;br /&gt;1) An unmanaged dll calls a managed dll on its DLLMain or&lt;br /&gt;2) Not marshalling your call back to the main UI thread.&lt;br /&gt;&lt;br /&gt;Vivek wrote a bit more about this problem &lt;a href="http://vivekthangaswamy.blogspot.com/2006/11/loaderlock-was-detected-error-when.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-6348903209591617451?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2008/03/loaderlock-was-detected.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7564822384159984078.post-6770807438670621755</guid><pubDate>Wed, 20 Feb 2008 22:03:00 +0000</pubDate><atom:updated>2008-02-20T22:45:01.049Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blog</category><category domain='http://www.blogger.com/atom/ns#'>geek</category><title>New Home</title><description>Well here it is. After years of mucking around with &lt;a href="http://www.movabletype.org/"&gt;Movable Type&lt;/a&gt;, I've made up my mind that it ain't worth it anymore. Started as curiosity about running my own blogging engine, it's becoming more and more obvious that I just don't have the energy nor time to maintain it.&lt;br /&gt;&lt;br /&gt;I had this grand idea of having a cool CMS, blogging and online photo library system all on my website. However, just like the guys at Top Gear always say: it was ambitious but rubbish! The Movable Type is now several version old, I never get around to install the CMS and the Coppermine is neglected. Running all these things give me more hassle than I can tolerate. So off with all of them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.e-gineer.com/"&gt;Nathan&lt;/a&gt; has the right idea of having Blogger as your main blog engine and publish them via FTP to your webserver. This way you still have all the HTML files on your site while relieving all the boring engine maintenance to Blogger. Owned by Google, I'm sure they won't disappear anytime soon.&lt;br /&gt;&lt;br /&gt;I'm taking his advice and ditching Movable Type. In fact I'm going to ditch &lt;a href="http://coppermine-gallery.net/"&gt;Coppermine&lt;/a&gt; install too. That is my failed online photo library attempt and will move my online photos to a &lt;a href="http://vhadiant.sharpcast.com/"&gt;managed solution&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, Movable Type and Coppermine are an excellent software. I just don't have the interest of playing with them anymore.&lt;br /&gt;&lt;br /&gt;So here it is the new location for Destination IUnknown.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7564822384159984078-6770807438670621755?l=www.hadianto.net%2Fdestinationv2' alt='' /&gt;&lt;/div&gt;</description><link>http://www.hadianto.net/destinationv2/2008/02/migrating-custom-movable-type-to.html</link><author>noreply@blogger.com (vhadiant)</author><thr:total>0</thr:total></item></channel></rss>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
