<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C04MRnszfip7ImA9WhRUFkg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152</id><updated>2012-01-27T17:13:07.586+09:00</updated><category term="Stock" /><category term="ARC" /><category term="WWDC" /><category term="M2M" /><category term="Game" /><category term="VoLTE" /><category term="Amazon" /><category term="리눅스" /><category term="Cisco" /><category term="Palm" /><category term="LWUIT" /><category term="WebKit" /><category term="Apple" /><category term="Web" /><category term="OpenMoko" /><category term="codepad" /><category term="JRuby" /><category term="Camera" /><category term="OCAP" /><category term="Mac" /><category term="phoneMe" /><category term="EngineYard" /><category term="vim" /><category term="iOS" /><category term="Apache" /><category term="Squark JVM" /><category term="News" /><category term="JIL" /><category term="RTSJ" /><category term="eBook" /><category term="dalvik" /><category term="IBM" /><category term="Bolt" /><category term="Qualcomm" /><category term="TV" /><category term="HTC" /><category term="jQuery" /><category term="S60" /><category term="MySQL" /><category term="cdc" /><category term="Opera" /><category term="Brew" /><category term="bada" /><category term="Goggles" /><category term="Sun SPOT" /><category term="webOS" /><category term="webgl" /><category term="안드로이드" /><category term="휴대폰" /><category term="JavaME" /><category term="maemo" /><category term="VoIP" /><category term="iPhone" /><category term="G1" /><category term="LTE" /><category term="Widget" /><category term="Livescribe" /><category term="개인" /><category term="RIM" /><category term="NaCI" /><category term="Python" /><category term="S/W 개발" /><category term="Wireless" /><category term="Windows Mobile" /><category term="CLR" /><category term="Kindle" /><category term="GWT" /><category term="프리젠테이션" /><category term="JOGL" /><category term="MeeGo" /><category term="PaaS" /><category term="pastebin" /><category term="SAE" /><category term="ODP" /><category term="ARM" /><category term="Oracle" /><category term="bd-j" /><category term="JavaOne" /><category term="Ajax" /><category term="DDMS" /><category term="Swing" /><category term="Windows Phone" /><category term="LLVM" /><category term="IMP" /><category term="JIT" /><category term="nokia" /><category term="Chrome" /><category term="LG" /><category term="멀티태스킹" /><category term="Comet" /><category term="Android" /><category term="Tiobe" /><category term="특허" /><category term="Cloud" /><category term="MIDP" /><category term="Trend" /><category term="linux" /><category term="Funambol" /><category term="Mojo SDK" /><category term="JVM" /><category term="Facetime" /><category term="EPC" /><category term="iCloud" /><category term="moblin" /><category term="GAE" /><category term="Penlet" /><category term="BlackBerry" /><category term="Java" /><category term="LiMo" /><category term="Cinterion" /><category term="Google" /><category term="Symbian" /><category term="WIPI" /><category term="tip" /><category term="JavaFX" /><category term="PHP" /><category term="Browser" /><category term="책" /><category term="자바" /><category term="GDB" /><category term="Ruby" /><category term="오픈소스" /><category term="가트너" /><category term="GC" /><category term="MIDP3" /><category term="Samsung" /><category term="iPad" /><category term="HetNet" /><category term="OpenJDK" /><category term="이클립스" /><title>Mobile, Web and Java</title><subtitle type="html">Talking about mobile and Java technologies ...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://androidkr.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>219</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/mobilesw" /><feedburner:info uri="mobilesw" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkcEQXkyeCp7ImA9WhRUFUo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-8957995161962332595</id><published>2012-01-26T19:25:00.000+09:00</published><updated>2012-01-26T19:33:20.790+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T19:33:20.790+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vim" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: some VIM tips for your programming</title><content type="html">Tips for VIM which can be useful for programming jobs&lt;br /&gt;
&lt;br /&gt;
- Open file at a location that was last viewed&lt;br /&gt;
==&amp;gt;&amp;nbsp;&lt;a href="http://superuser.com/questions/111016/vim-open-file-at-location-that-was-last-viewed"&gt;http://superuser.com/questions/111016/vim-open-file-at-location-that-was-last-viewed&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- Code completion&lt;br /&gt;
==&amp;gt;&amp;nbsp;&lt;a href="http://amix.dk/blog/post/19021"&gt;http://amix.dk/blog/post/19021&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- See manual at cursor&lt;br /&gt;
==&amp;gt; 'X' on function name&lt;br /&gt;
&lt;br /&gt;
- Do not use space as tab for Makefile&lt;br /&gt;
==&amp;gt; 'autocmd FileType make setlocal noexpandtab' from VIMRC&lt;br /&gt;
&lt;br /&gt;
- Edit your own VIMRC&lt;br /&gt;
==&amp;gt; e $MYVIMRC&lt;br /&gt;
&lt;br /&gt;
- How to use gcc compiler with make?&lt;br /&gt;
==&amp;gt; 'compiler gcc' from VIMRC. Type 'make' from VIM command input.&lt;br /&gt;
&lt;br /&gt;
- Ctags usage&lt;br /&gt;
==&amp;gt;&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/563616/vim-and-ctags-tips-and-tricks"&gt;http://stackoverflow.com/questions/563616/vim-and-ctags-tips-and-tricks&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- TODO: Need to check later&lt;br /&gt;
==&amp;gt;&amp;nbsp;&lt;a href="https://github.com/Rip-Rip/clang_complete/"&gt;https://github.com/Rip-Rip/clang_complete/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-8957995161962332595?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YchGRTFqwmOtBKu76gdiCuHlgXw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YchGRTFqwmOtBKu76gdiCuHlgXw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YchGRTFqwmOtBKu76gdiCuHlgXw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YchGRTFqwmOtBKu76gdiCuHlgXw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/zMdIviknOSg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/8957995161962332595/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-some-vim-tips-useful-for-your.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8957995161962332595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8957995161962332595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/zMdIviknOSg/linux-some-vim-tips-useful-for-your.html" title="Linux: some VIM tips for your programming" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-some-vim-tips-useful-for-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8GRX09eip7ImA9WhRUFUg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-8920042307892540716</id><published>2012-01-26T15:18:00.003+09:00</published><updated>2012-01-26T15:20:24.362+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T15:20:24.362+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: FUSE and thread termination</title><content type="html">These days, I'm trying to write a file system via FUSE. During the debugging, I found that if I want to use threads with pthread, I need to create my own thread from &lt;b&gt;init&lt;/b&gt; function of fuse operations.&lt;br /&gt;
&lt;br /&gt;
If I create thread from main function before I call fuse_main, my thread will be terminated soon after fuse_main function calling.&lt;br /&gt;
&lt;br /&gt;
I saw the FAQ of FUSE and it mentioned all thread should be created from init because when the FUSE process goes to background the threads which was started before fuse_main will be exited. Please see the below references.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How should threads be started?:&amp;nbsp;&lt;a href="http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FAQ#How_should_threads_be_started.3F"&gt;http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FAQ#How_should_threads_be_started.3F&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fuse.sourceforge.net/"&gt;http://fuse.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-8920042307892540716?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8Ra8tx9a6AljfcPC5WpKvfrNsyc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Ra8tx9a6AljfcPC5WpKvfrNsyc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8Ra8tx9a6AljfcPC5WpKvfrNsyc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Ra8tx9a6AljfcPC5WpKvfrNsyc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/MA39SEetFmM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/8920042307892540716/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-fuse-and-thread-termination.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8920042307892540716?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8920042307892540716?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/MA39SEetFmM/linux-fuse-and-thread-termination.html" title="Linux: FUSE and thread termination" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-fuse-and-thread-termination.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04MRnszcSp7ImA9WhRUFkg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-6546439327007791924</id><published>2012-01-26T13:41:00.001+09:00</published><updated>2012-01-27T17:13:07.589+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-27T17:13:07.589+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: How to kill specific process with it's name?</title><content type="html">If you want to find a process named "testapp" and kill it, how can you do this?&lt;br /&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;ps -ef | grep testapp | head -n 1 | fmt -u | cut -d ' ' -f 2 | xargs kill -9&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
But, this is too complex solution for simple issue. I just can use '&lt;span style="color: blue;"&gt;killall&lt;/span&gt;'. Such as '&lt;span style="color: blue;"&gt;killall testapp&lt;/span&gt;'.&lt;br /&gt;
It's still interesting to learn Linux tools to manipulate text data. (such as head, cut, fmt ...)&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linux.com/learn/tutorials/296684-learning-gnu-text-utilities-" target="_blank"&gt;Learning GNU text utilities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.linuxtopia.org/online_books/gnu_linux_tools_guide/text-manipulation-tools.html" target="_blank"&gt;Text manipulation tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-6546439327007791924?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SCgxm7ulfZD9lIxoH0vQgS-md5Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SCgxm7ulfZD9lIxoH0vQgS-md5Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SCgxm7ulfZD9lIxoH0vQgS-md5Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SCgxm7ulfZD9lIxoH0vQgS-md5Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/jWnrY1IlMzM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/6546439327007791924/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-how-to-kill-specific-process-with.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6546439327007791924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6546439327007791924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/jWnrY1IlMzM/linux-how-to-kill-specific-process-with.html" title="Linux: How to kill specific process with it's name?" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-how-to-kill-specific-process-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkADSH86cSp7ImA9WhRUFUg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-4448669819650703664</id><published>2012-01-26T10:47:00.002+09:00</published><updated>2012-01-26T15:19:39.119+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T15:19:39.119+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LTE" /><title>Wireless: LTE phones in Korea</title><content type="html">LTE mobile phones in Korea market today (26-Jan-2012)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.samsung.com/global/microsite/galaxys2/" target="_blank"&gt;Samsung Galaxy S2 LTE&lt;/a&gt; &amp;nbsp;(SK Telecom)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.samsung.com/global/microsite/galaxys2/" target="_blank"&gt;Samsung Galaxy S2 HD LTE&lt;/a&gt; &amp;nbsp;(SK Telecom, LGU+, KT)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.samsung.com/global/microsite/galaxynote/note/index.html?type=find" target="_blank"&gt;Samsung Galaxy Note&lt;/a&gt; &amp;nbsp;(SK Telecom, LGU+, KT )&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lgmobile.co.kr/event/optimuslte/index.html" target="_blank"&gt;LG Optimus LTE&lt;/a&gt; &amp;nbsp;(SK Telecom, LGU+)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.androians.com/vegaLTE/index.asp" target="_blank"&gt;Pantech Vega LTE&lt;/a&gt; &amp;nbsp;(SK Telecom)&lt;/li&gt;
&lt;li&gt;Pantech Vega LTE M &amp;nbsp;(SK Telecom, KT)&lt;/li&gt;
&lt;li&gt;Pantech Vega LTE EX &amp;nbsp;(LGU+)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.htc.com/kr/product/raider4g/overview.html" target="_blank"&gt;HTC Raider 4G&lt;/a&gt; &amp;nbsp;(SK Telecom)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-4448669819650703664?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/irOpqNDzizTMeGYwhiIvGkz0JwY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/irOpqNDzizTMeGYwhiIvGkz0JwY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/irOpqNDzizTMeGYwhiIvGkz0JwY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/irOpqNDzizTMeGYwhiIvGkz0JwY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/Otz18mrbWXk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/4448669819650703664/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/wireless-lte-phone-in-korea.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/4448669819650703664?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/4448669819650703664?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/Otz18mrbWXk/wireless-lte-phone-in-korea.html" title="Wireless: LTE phones in Korea" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/wireless-lte-phone-in-korea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUAQHg_cSp7ImA9WhRUFUk.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-1842771178428804510</id><published>2012-01-26T00:26:00.002+09:00</published><updated>2012-01-26T10:10:41.649+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T10:10:41.649+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><title>Cloud: Amazon Storage Gateway 소개</title><content type="html">Amazon S3 클라우드 스토리지를 이용한 데이터 Snapshot 백업을 제공하는 새로운 서비스 - Amazon Storage Gateway. 소개 동영상을 보자!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/DPyc0q4MYsM/0.jpg" height="300" width="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DPyc0q4MYsM&amp;fs=1&amp;source=uds" /&gt;


&lt;param name="bgcolor" value="#FFFFFF" /&gt;


&lt;embed width="360" height="300" src="http://www.youtube.com/v/DPyc0q4MYsM&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
실제 구현 구조에 대한 그림.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://docs.amazonwebservices.com/storagegateway/latest/userguide/images/ArchitectureDiagram.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://docs.amazonwebservices.com/storagegateway/latest/userguide/images/ArchitectureDiagram.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;(From www.amazon.com)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
AWS Storage Gateway 소프트웨어를 저장장치가 연결되어 있는 Host Computer에 설치한다. 클라이언트는 기존과 다름없이 SAN (Storage Area Network)에 저장하듯이 &lt;a href="http://ko.wikipedia.org/wiki/ISCSI" target="_blank"&gt;iSCSI&lt;/a&gt; 인터페이스로 데이터를 전송한다. 그러면, AWS Storage Gateway가 데이터의 변경 부분만 AWS S3에 Snapshot으로 저장하고 SAN Disk에 모든 데이터를 저장한다. 예를 들어 100MB의 데이터를 클라이언트가 Host에 저장하려고 하는데 5MB만 기존 데이터와 다르다면 5MB만 AWS S3에 Snapshot으로 저장되고 100MB는 SAN Disk에 써진다.&lt;br /&gt;
&lt;br /&gt;
Apple의 Time Machine 백업과 같은 기능을 AWS S3를 이용하여 클라우드 스토리지에 저장하는 셈...&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://docs.amazonwebservices.com/storagegateway/latest/userguide/GettingStarted.html" target="_blank"&gt;Getting Started Tutorial&lt;/a&gt; 참고.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-1842771178428804510?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j0vZApD60RwPFKxFhzqJabv_30Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j0vZApD60RwPFKxFhzqJabv_30Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j0vZApD60RwPFKxFhzqJabv_30Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j0vZApD60RwPFKxFhzqJabv_30Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/jvknTFd-8R0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/1842771178428804510/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/cloud-amazon-storage-gateway.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/1842771178428804510?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/1842771178428804510?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/jvknTFd-8R0/cloud-amazon-storage-gateway.html" title="Cloud: Amazon Storage Gateway 소개" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/cloud-amazon-storage-gateway.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QMRXk_eSp7ImA9WhRUFEo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-6361778338780252292</id><published>2012-01-25T16:55:00.000+09:00</published><updated>2012-01-25T17:16:24.741+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-25T17:16:24.741+09:00</app:edited><title>Embedded: eCos (Embedded Configurable O.S.)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://ecos.sourceware.org/ecos/ecos.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://ecos.sourceware.org/ecos/ecos.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;eCos is a free open source real-time operating system intended for embedded applications.&lt;/span&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;You can find a free eBook for eCos from the below link:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
EMBEDDED SOFTWARE&amp;nbsp;DEVELOPMENT WITH ECOS™&lt;br /&gt;
&amp;nbsp; =&amp;gt;&amp;nbsp;&lt;a href="http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/perens/0130354732.pdf"&gt;http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/perens/0130354732.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Wikipedia page of it:&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/ECos"&gt;http://en.wikipedia.org/wiki/ECos&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
List of real-time O.S.:&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/List_of_real-time_operating_systems"&gt;http://en.wikipedia.org/wiki/List_of_real-time_operating_systems&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Embedded Linux or eCos?:&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/2672502/embedded-linux-or-ecos"&gt;http://stackoverflow.com/questions/2672502/embedded-linux-or-ecos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-6361778338780252292?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e9Yl6bE-AaljzQSIpIucGcba7lU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e9Yl6bE-AaljzQSIpIucGcba7lU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e9Yl6bE-AaljzQSIpIucGcba7lU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e9Yl6bE-AaljzQSIpIucGcba7lU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/T2QBTQl16kQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/6361778338780252292/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/embedded-ecos-embedded-configurable-os.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6361778338780252292?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6361778338780252292?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/T2QBTQl16kQ/embedded-ecos-embedded-configurable-os.html" title="Embedded: eCos (Embedded Configurable O.S.)" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/embedded-ecos-embedded-configurable-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYCSXc8eip7ImA9WhRUEkk.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7526761782860643141</id><published>2012-01-22T22:48:00.002+09:00</published><updated>2012-01-22T22:49:28.972+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-22T22:49:28.972+09:00</app:edited><title>Wireless: 802.11ac</title><content type="html">&lt;br /&gt;
애플이 최근 새로 발표된 와이파이 기술을 에어포트를 시작으로 자사 제품군에 곧 적용할 것으로 보인다.&amp;nbsp;최근 열렸던 ‘2012 소비자가전쇼(CES)’에서 새로운 와이파이 규격인 ‘802.11ac’가 발표됐다. 1세대 무선기술 802.11이 등장한 이후 802.11b/g/n을 거쳐 등장했기 때문에 ‘5세대 와이파이 기술’이라고 불린다.&lt;br /&gt;
(이상 &lt;a href="http://www.bloter.net/archives/92914" target="_blank"&gt;Bloter.net 기사&lt;/a&gt;에서...)&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.geeky-gadgets.com/wp-content/uploads/2011/12/802-11ac.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://www.geeky-gadgets.com/wp-content/uploads/2011/12/802-11ac.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
802.11ac는 더 넓은 RF 대역폭과 최대 8개의 MIMO 스트림, 256 QAM 모듈레이션 등을 통해 500 Mbps ~ 1 Gbps의 빠른 통신 속도 지원이 가능하다고. 다음 번 Mac 제품을 구매하려면 802.11ac가 지원되는 제품 라인업이 나올 때 까지 기다려보는 것이 좋겠다~&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i.zdnet.com/blogs/broadcom5g.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://i.zdnet.com/blogs/broadcom5g.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
(From Zdnet.com)&lt;/div&gt;
&lt;br /&gt;
참고자료:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/IEEE_802.11ac"&gt;http://en.wikipedia.org/wiki/IEEE_802.11ac&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7526761782860643141?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dRlzFf5ZA1of3aACoIFk5UZyUd8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dRlzFf5ZA1of3aACoIFk5UZyUd8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dRlzFf5ZA1of3aACoIFk5UZyUd8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dRlzFf5ZA1of3aACoIFk5UZyUd8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/MGwfh8DyTGk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7526761782860643141/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/wireless-80211ac.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7526761782860643141?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7526761782860643141?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/MGwfh8DyTGk/wireless-80211ac.html" title="Wireless: 802.11ac" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/wireless-80211ac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04CR3Y_eSp7ImA9WhRUEEo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-3938021174895645323</id><published>2012-01-21T01:02:00.002+09:00</published><updated>2012-01-21T01:12:46.841+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T01:12:46.841+09:00</app:edited><title>2012년 IT 전망들</title><content type="html">&lt;a href="http://www.bloter.net/archives/92670"&gt;http://www.bloter.net/archives/92670&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2012년에 대한 각종 IT 전망들이 나오고 있다. 2011년 전망들과 비교해보니 뭐 거기서 거기 수준. 클라우드, 스마트 디바이스, 빅 데이터 등등 이전에 다루었던 내용과 큰 차이 없어 보인다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.bloter.net/files/2012/01/2012MSittrend-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.bloter.net/files/2012/01/2012MSittrend-2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
결국 IT 업계를 쥐고 흔드는 몇몇 업체들에 의해서 올해의 IT 기술 화두가 결정되지 않을까 싶다. 예를 들면...&lt;br /&gt;
&lt;br /&gt;
- Apple의 TV 출시에 따른 스마트 TV에 대한 관심 폭증&lt;br /&gt;
- Apple의 iBooks 2 출시에 따른 새로운 eBook 컨텐츠에 대한 관심 증가&lt;br /&gt;
- Siri에 의해 촉발된 음성인식 기술 및 인공지능 기술&lt;br /&gt;
- Nokia + Microsoft 진영의 약진에 의해 Windows Phone에 대한 관심 증가&lt;br /&gt;
- iPad 3를 이용한 eLearning 산업 (with iBooks 2, iTunes U + maybe Siri)&lt;br /&gt;
- Windows 8 ?&lt;br /&gt;
- 여전히 LTE 광고는 많이 나올 것이고...&lt;br /&gt;
&lt;br /&gt;
사랑하는 Apple 제품에 대한 몇가지 상상을 해본다면 ...&lt;br /&gt;
&lt;br /&gt;
Apple은 Siri와 iBooks 컨텐츠를 연동해서 멋진 기능을 제공하려고 시도하지 않을까? 음성으로 책의 내용을 검색한다거나 학생의 질문을 책의 내용 + 인공 지능으로 답변해준다거나 하는... iPad가 선생님의 역할을 일정 부분 대신해주는 날이 올지도. iBooks에 대한 Genius 지원 등도 가능한 시나리오로 보인다. 책에 대한 Ping 서비스도 가능할 것 같고.&lt;br /&gt;
&lt;br /&gt;
삼성전자는 2012년 기술 트렌드에 일조할 무엇이 없을까? 음..... 쩝.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-3938021174895645323?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W5GJ0AiehmjCP8HaDbx1UsdGze0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W5GJ0AiehmjCP8HaDbx1UsdGze0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W5GJ0AiehmjCP8HaDbx1UsdGze0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W5GJ0AiehmjCP8HaDbx1UsdGze0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/lXPVJ5vvsnw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/3938021174895645323/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/2012-it.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/3938021174895645323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/3938021174895645323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/lXPVJ5vvsnw/2012-it.html" title="2012년 IT 전망들" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/2012-it.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cDSXs_eCp7ImA9WhRVGUs.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-6120213672690243546</id><published>2012-01-19T15:27:00.001+09:00</published><updated>2012-01-19T19:31:18.540+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T19:31:18.540+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: Data Structures for C</title><content type="html">How can I use basic data structures such as list, queue and stack in Linux by using C language?&lt;br /&gt;
&lt;br /&gt;
1) List, Tail queue, Circular queue from 'sys/queue.h'&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/1173422/library-for-the-basic-data-structures-such-as-queue-in-c"&gt;http://stackoverflow.com/questions/1173422/library-for-the-basic-data-structures-such-as-queue-in-c&lt;/a&gt;&lt;br /&gt;
See '&lt;a href="http://linux.die.net/man/3/queue" target="_blank"&gt;man queue&lt;/a&gt;' also.&lt;br /&gt;
&lt;br /&gt;
Example codes of LIST:&amp;nbsp;&lt;a href="http://ideone.com/T1EID"&gt;http://ideone.com/T1EID&lt;/a&gt;&lt;br /&gt;
Example codes of TAILQ:&amp;nbsp;&lt;a href="http://blog.unx.ca/2006/08/tailq-example.html"&gt;http://blog.unx.ca/2006/08/tailq-example.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2) Priority queue&lt;br /&gt;
&lt;a href="https://github.com/vy/libpqueue#readme"&gt;https://github.com/vy/libpqueue#readme&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-6120213672690243546?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Vj0-nwrZ5jNWh9OoAjv-QxEDR30/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vj0-nwrZ5jNWh9OoAjv-QxEDR30/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Vj0-nwrZ5jNWh9OoAjv-QxEDR30/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vj0-nwrZ5jNWh9OoAjv-QxEDR30/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/nZt15L-eyPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/6120213672690243546/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-data-structures-for-c.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6120213672690243546?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6120213672690243546?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/nZt15L-eyPY/linux-data-structures-for-c.html" title="Linux: Data Structures for C" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-data-structures-for-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIMRX0yfSp7ImA9WhRVGUg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-5720087348088877440</id><published>2012-01-19T10:32:00.003+09:00</published><updated>2012-01-19T15:29:44.395+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T15:29:44.395+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: Memory Management</title><content type="html">Information about the memory management of Linux&lt;br /&gt;
&lt;br /&gt;
1) Slab Allocator&lt;br /&gt;
&lt;a href="http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/"&gt;http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2) Understanding the Linux Virtual Memory (ebook)&lt;br /&gt;
&lt;a href="http://ptgmedia.pearsoncmg.com/images/0131453483/downloads/gorman_book.pdf"&gt;http://ptgmedia.pearsoncmg.com/images/0131453483/downloads/gorman_book.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-5720087348088877440?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fvtckLFNF50T-bvNrvbWM5HU35s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fvtckLFNF50T-bvNrvbWM5HU35s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fvtckLFNF50T-bvNrvbWM5HU35s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fvtckLFNF50T-bvNrvbWM5HU35s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/29vHMr8Trkc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/5720087348088877440/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-memory-management.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/5720087348088877440?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/5720087348088877440?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/29vHMr8Trkc/linux-memory-management.html" title="Linux: Memory Management" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-memory-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkABR3w9eSp7ImA9WhRUFEg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7457199400152978220</id><published>2012-01-18T13:10:00.000+09:00</published><updated>2012-01-25T11:32:36.261+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-25T11:32:36.261+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: Threads Programming</title><content type="html">Let's summarize information about the threads (parallel) programming on Linux.&lt;br /&gt;
&lt;br /&gt;
1) POSIX Threads Programming&lt;br /&gt;
&lt;a href="https://computing.llnl.gov/tutorials/pthreads/"&gt;https://computing.llnl.gov/tutorials/pthreads/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2) OpenMP&lt;br /&gt;
&lt;a href="https://computing.llnl.gov/tutorials/openMP/"&gt;https://computing.llnl.gov/tutorials/openMP/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3) Interesting Q&amp;amp;A&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Mutex order:&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/4713782/boost-mutex-order"&gt;http://stackoverflow.com/questions/4713782/boost-mutex-order&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pthread_cond_wait never unblocking:&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/4989801/pthread-cond-wait-never-unblocking-thread-pools"&gt;http://stackoverflow.com/questions/4989801/pthread-cond-wait-never-unblocking-thread-pools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This page (&lt;a href="https://computing.llnl.gov/?set=training&amp;amp;page=index"&gt;https://computing.llnl.gov/?set=training&amp;amp;page=index&lt;/a&gt;) has valuable lectures for parallel programming.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7457199400152978220?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PzVWXeSuUi-RBakhU5JFaXskV7E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PzVWXeSuUi-RBakhU5JFaXskV7E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PzVWXeSuUi-RBakhU5JFaXskV7E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PzVWXeSuUi-RBakhU5JFaXskV7E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/dnjPOqohvN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7457199400152978220/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2012/01/linux-threads-programming.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7457199400152978220?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7457199400152978220?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/dnjPOqohvN0/linux-threads-programming.html" title="Linux: Threads Programming" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2012/01/linux-threads-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIHRn44eyp7ImA9WhRXEEg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-8502100452121145314</id><published>2011-12-17T00:45:00.002+09:00</published><updated>2011-12-17T00:48:57.033+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-17T00:48:57.033+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LTE" /><title>Wireless: LTE 주파수 대역 이슈</title><content type="html">&lt;br /&gt;
KT가 당분간 기존 이동통신서비스보다 5배 이상 속도가 빠른 4세대(4G) 롱텀에볼루션(LTE) 서비스를 못하게 됐다. &amp;nbsp;법원이 2G 서비스 이용자들이 서비스 중단이 부당하다며 낸 집행정지 신청을 받아들였기 때문이다.&amp;nbsp;KT는 당초 8일 0시 2G 서비스를 종료하고 2G용으로 쓰던 주파수 대역을 활용해 LTE 서비스를 하려고 계획하고 있었다.&lt;br /&gt;
&lt;br /&gt;
이상 &lt;a href="http://news.mk.co.kr/v3/view.php?sc=30000001&amp;amp;cm=%ED%97%A4%EB%93%9C%EB%9D%BC%EC%9D%B8&amp;amp;year=2011&amp;amp;no=791494&amp;amp;relatedcode=&amp;amp;sID=300"&gt;MK 뉴스 기사&lt;/a&gt;에서 ...&lt;br /&gt;
&lt;br /&gt;
KT가 기존 2G 서비스에 사용하던 1.8GHz 대역 주파수를 LTE 주파수 대역으로 활용하려다 법정 소송에 휘말리며 차질을 빚고 있습니다. TV 광고까지 미리 하고있었는데 말이죠. 승부수로 LTE 휴대폰을 3G 요금제로 3G 망에 가입을 허용하겠다고도 합니다. (LTE 폰은 WCDMA 3G도 함께 지원합니다. 그러므로 가능한 옵션이 되겠습니다.)&lt;br /&gt;
&lt;br /&gt;
무선통신에서 주파수 대역은 도로와 같습니다. 데이터를 실어 나를 길을 확보해야 통신이 가능해지죠. 도로의 폭이 제한되어 있듯이 무선통신을 위한 폭도 제한되어 있어 이를 관리 주체가 구역별로 나누어 통신사업자에게 특정 구역을 배당합니다. 예를 들면, SKT는 현재 LTE 서비스를 위해 829 ~ 839 MHz, 874 ~ 884 MHz 주파수 대역 부분을 사용하고 있습니다. LG U+의 경우는 839 ~ 849 MHz, 884 ~ 894 Mhz 주파수 대역을 LTE 서비스에 활용 중 입니다. 서로 다른 구역을 사용하고 있음을 알 수 있죠?&lt;br /&gt;
&lt;br /&gt;
워낙 무선통신 사업이 성장하다 보니 주파수 대역도 점차 고갈되어 자유롭게 활용할 수 있는 부분이 별로 없습니다. TV, 2G, 3G (WCDMA, CDMA EVDO), 4G (LTE, WiMAX), Wi-Fi 등등 여러 통신 서비스를 제공하기 위해 이미 활용 중인 주파수 대역들이 넘쳐납니다.&lt;br /&gt;
&lt;br /&gt;
KT는 SKT와의 주파수 경매에서 지는 바람에 현재 LTE 서비스를 위한 주파수 대역을 확보하지 못한 상태이죠. 그래서, 기존 2G 서비스를 중단하고 이를 LTE에 재 활용하려고 했던 것입니다.&lt;br /&gt;
&lt;br /&gt;
그런데, LTE에 사용되는 주파수 대역은 각 나라의 통신사별로 꽤나 대역이 다양합니다. 미국의 경우 700 MHz 대역을 주로 사용하고 유럽은 2.6 GHz 대역, 중동은 900 MHz 대역 등등 해당 국가의 주파수 사용 실정에 따라 사용이 용이한 대역을 LTE에 할당하여 서비스를 시작하고 있는 실정입니다.&lt;br /&gt;
&lt;br /&gt;
이로 인해 불거지는 문제점이 LTE 단말의 수급 문제 + 사업자간 Roaming 문제입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.edaily.co.kr/news/NewsRead.edy?newsid=02105766596478848&amp;amp;SCD=&amp;amp;DCD=A01404"&gt;SKT LTE 데이터 로밍 시작&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
위 기사를 읽어보면 SKT의 LTE 데이터 로밍은 자신의 휴대폰을 그대로 사용하는 것이 아니라 홍콩에서 사용 가능한 LTE USB 모뎀을 대여하는 방식으로 이루어집니다. 기존 3G 휴대폰의 경우는 그대로 들고나가도 해외에서 사용이 가능했었는데 말이죠... LTE의 서로 다른 주파수 대역 문제 때문에 한대의 휴대폰으로 여러 국가에서 LTE를 사용하는 것은 거의 가능성 제로입니다. 만일 휴대폰이 LTE + 3G 라면 3G만 사용하여 해외 로밍은 가능할 것 입니다. (LTE + CDMA 방식인 LG U+ 휴대폰의 경우는 이러한 방법도 불가능하겠네요.)&lt;br /&gt;
&lt;br /&gt;
iPhone 5가 만일 LTE 방식으로 출시가 된다하더라도 과연 한국에서 바로 사용할 수 있을지 장담할 수 없습니다. 주요 시장이 미국이므로 700 MHz 대역의 LTE 폰을 선 출시하고 차차 타 주파수 대역을 지원할 가능성이 크겠죠.&lt;br /&gt;
&lt;br /&gt;
마지막으로 멋진 표하나 보여드리면 이 글을 마칠까합니다. 아래 보시는 것이 3GPP에서 정의한 LTE 주파수 대역들입니다. 엄청 많죠? @_@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table class="dataTable" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #303030; font-family: 'Lucida Grande', Verdana, Arial, Helvetica, serif; font-size: 11px; line-height: 18px; margin-bottom: 18px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;thead style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="12%"&gt;LTE BAND&lt;br /&gt;
NUMBER&lt;/th&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="25%"&gt;UPLINK&lt;br /&gt;
(MHZ)&lt;/th&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="25%"&gt;DOWNLINK&lt;br /&gt;
(MHZ)&lt;/th&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="12%"&gt;WIDTH OF BAND (MHZ)&lt;/th&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="13%"&gt;DUPLEX SPACING (MHZ)&lt;/th&gt;&lt;th style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; text-transform: uppercase; vertical-align: top;" width="13%"&gt;BAND GAP (MHZ)&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1920 - 1980&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2110 - 2170&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;60&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;190&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;130&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1850 - 1910&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1930 - 1990&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;60&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;80&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;3&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1710 - 1785&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1805 -1880&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;75&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;95&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;4&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1710 - 1755&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2110 - 2155&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;45&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;400&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;355&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;5&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;824 - 849&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;869 - 894&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;25&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;45&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;6&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;830 - 840&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;875 - 885&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;35&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;25&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;7&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2500 - 2570&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2620 - 2690&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;70&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;120&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;50&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;8&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;880 - 915&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;925 - 960&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;35&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;45&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1749.9 - 1784.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1844.9 - 1879.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;35&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;95&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;60&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1710 - 1770&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2110 - 2170&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;60&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;400&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;340&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;11&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1427.9 - 1452.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1475.9 - 1500.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;48&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;28&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;12&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;698 - 716&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;728 - 746&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;18&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;30&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;12&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;13&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;777 - 787&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;746 - 756&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;&lt;b style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&lt;/b&gt;31&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;41&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;14&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;788 - 798&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;758 - 768&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;&lt;b style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&lt;/b&gt;30&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;40&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1900 - 1920&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2600 - 2620&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;700&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;680&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;16&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2010 - 2025&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2585 - 2600&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;575&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;560&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;17&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;704 - 716&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;734 - 746&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;12&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;30&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;18&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;18&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;815 - 830&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;860 - 875&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;45&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;30&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;19&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;830 - 845&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;875 - 890&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;45&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;30&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;832 - 862&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;791 - 821&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;30&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;&lt;b style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&lt;/b&gt;41&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;71&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;21&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1447.9 - 1462.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1495.5 - 1510.9&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;48&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;33&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;22&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;3410 - 3500&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;3510 - 3600&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;90&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;100&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;23&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2000 - 2020&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;2180 - 2200&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;20&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;180&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;160&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-attachment: initial; background-clip: initial; background-color: #e9e9e9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;24&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1625.5 - 1660.5&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1525 - 1559&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;34&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;&lt;b style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&lt;/b&gt;101.5&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;135.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="odd" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;25&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1850 - 1915&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;1930 - 1995&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;65&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;80&lt;/td&gt;&lt;td style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.2em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; vertical-align: top;"&gt;15&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-8502100452121145314?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eGKiDY0wM5eMsRjkDSpZMMiEULA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eGKiDY0wM5eMsRjkDSpZMMiEULA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eGKiDY0wM5eMsRjkDSpZMMiEULA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eGKiDY0wM5eMsRjkDSpZMMiEULA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/5UKX4rLtbFY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/8502100452121145314/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/12/wireless-lte_17.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8502100452121145314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8502100452121145314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/5UKX4rLtbFY/wireless-lte_17.html" title="Wireless: LTE 주파수 대역 이슈" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/12/wireless-lte_17.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4GRH48fCp7ImA9WhRUEEo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7070237150149157132</id><published>2011-12-14T18:13:00.003+09:00</published><updated>2012-01-21T00:22:05.074+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T00:22:05.074+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Linux: 초보 리눅스 개발자 탈출! - 1</title><content type="html">&lt;strong&gt;새로운 라이브러리를 추가하고 이를 이용해서 소스를 빌드하는 법.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
예를 들어, &lt;a href="http://gupnp.org/"&gt;GUPnP 라이브러리를&lt;/a&gt; 이용하여 &lt;a href="http://en.wikipedia.org/wiki/Universal_Plug_and_Play"&gt;UPnP 서비스를&lt;/a&gt; 개발하려고 한다면 어떻게 해야할까? (Ubuntu Linux distribution을 사용하는 경우로 가정하겠다.)&lt;br /&gt;
&lt;br /&gt;
1) GUPnP 라이브러리에 대한 패키지 이름을 확인해본다. &lt;br /&gt;
apt-cache search gupnp&amp;nbsp;명령을 실행하면 GUPnP 관련 패키지를 검색할 수 있다.&amp;nbsp;살펴보면 libgupnp-dev 라고 하는 패키지를 찾을&amp;nbsp;수 있다.&lt;br /&gt;
&lt;br /&gt;
2) sudo apt-get install libgunpn-dev 명령어로 GUPnP 라이브러리를&amp;nbsp;설치한다.&lt;br /&gt;
해당 라이브러리에 대한 소스코드가 필요한 경우에는 sudo apt-get source libgupnp-dev 명령어를 실행한다.&lt;br /&gt;
&lt;br /&gt;
3) 이제&amp;nbsp;GUPnP 라이브러리를 활용한 소스 코드를 gcc로 컴파일해야 하는데 헤더파일의 경로 및&amp;nbsp;링크에 필요한 파일 경로 등을 어떻게 지정해주어야&amp;nbsp;할까? pkg-config 도구를 사용하면 쉽게 해결할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/1041059/header-files-in-subdirectories-e-g-gtk-gtk-h-vs-gtk-2-0-gtk-gtk-h"&gt;http://stackoverflow.com/questions/1041059/header-files-in-subdirectories-e-g-gtk-gtk-h-vs-gtk-2-0-gtk-gtk-h&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
위 Q&amp;amp;A 내용을 보면 pkg-config --cflags gtk+-2.0와 같이 실행하면 gtk+-2.0의 헤더파일을 include하기 위해 필요한 문자열을 출력한다. 아래와 같은 결과를 볼 수 있다. Library에 대한 경로도 pkg-config --libs로 얻을 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;I&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;usr&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;include&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;gtk&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="lit"&gt;&lt;span style="color: maroon;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;I&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;usr&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;lib&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;gtk&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="lit"&gt;&lt;span style="color: maroon;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;span class="pun"&gt;/&lt;/span&gt;&lt;span class="pln"&gt;include ...&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7070237150149157132?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TXoQzX16g_gBAHYIh6IBRFGru8A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TXoQzX16g_gBAHYIh6IBRFGru8A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TXoQzX16g_gBAHYIh6IBRFGru8A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TXoQzX16g_gBAHYIh6IBRFGru8A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/YC2gDCyKLnM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7070237150149157132/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/12/linux-1.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7070237150149157132?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7070237150149157132?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/YC2gDCyKLnM/linux-1.html" title="Linux: 초보 리눅스 개발자 탈출! - 1" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/12/linux-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8AR3Y9cCp7ImA9WhRRGEk.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-8749133430450227576</id><published>2011-12-03T00:21:00.001+09:00</published><updated>2011-12-03T01:20:46.868+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-03T01:20:46.868+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VoLTE" /><category scheme="http://www.blogger.com/atom/ns#" term="Wireless" /><category scheme="http://www.blogger.com/atom/ns#" term="LTE" /><title>Wireless: LTE에서의 음성통화 기술</title><content type="html">LG U+가 내년 3월 전국에 촘촘히 4세대(4G) 롱 텀 에볼루션(LTE) 투자를 마친 뒤 내년 하반기에는 LTE로 무선인터넷뿐 아니라 음성통화까지 할 수 있는 LTE 음성통화(VoLTE)서비스를 세계 처음으로 선보이겠다고 밝혔다.LTE를 통해 이동통신 시장의 진정한 세대교체를 이루고 15년간 굳어진 국내 통신회사들의 순위를 바꿀 뿐 아니라 사업 모델까지 바꿔 놓겠다는 야심을 공개한 것이다. - &lt;a href="http://www.fnnews.com/view?ra=Sent0901m_View&amp;amp;corp=fnnews&amp;amp;arcid=0922476962&amp;amp;cDateYear=2011&amp;amp;cDateMonth=11&amp;amp;cDateDay=27"&gt;파이낸셜 뉴스 기사&lt;/a&gt; 중 ...&lt;br /&gt;
&lt;br /&gt;
위 신문기사를 보면 LG U+는 2012년 부터 4G LTE에서 음성통화 서비스를 세계 최초로 선보이겠다고 한다. 그런데, 이미 4G LTE 휴대폰을 쓰는 사용자들도 음성통화는 당연히 하고 있는 것 아닌가? 일반인들에게 생소한 VoLTE라는 건 또 뭔지? 이 글에서는 4G LTE 망에서의 음성통화 서비스는 어떠한 방식으로 제공될 수 있는지 정리해보겠다.&lt;br /&gt;
&lt;br /&gt;
LTE의 EPC (Evolved Packet Core) 네트워크 구조는 모든 망이 IP 기반으로 이루어져있다. 이와 달리 기존 3G 방식에서는 데이터 통신을 위한 IP 망과 별도로 음성통화를 위한 CS (Circuit Switch) 망을 가지고 있다. 3G 휴대폰을 사용하여 음성통화를 할 때는 일반 가정의 유선 전화기와 비슷한 방식으로 동작하는 망을 사용한다는 것.&amp;nbsp;하지만, LTE는 네트워크 구조가 모두 IP 기반으로 이루어져 있어 CS를 이용한 음성통화 서비스가 불가능하다. 그렇다면 LTE 휴대폰에서는 어떻게 음성통화가 가능할 수 있을까?&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.ericsson.com/res/images/2010/news/101221_voice-over-lte_456x225.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.ericsson.com/res/images/2010/news/101221_voice-over-lte_456x225.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
(from&amp;nbsp;http://www.ericsson.com/)&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;1. CSFB (Circuit Switched Fallback)&lt;/b&gt;&lt;br /&gt;
현재 SKT, LG U+의 LTE는 CSFB 방식을 사용하여 음성통화 서비스를 제공한다. 이 방식의 아이디어는 단순하다. 데이터 통신은 LTE로 하고 음성통화는 기존 망을 사용하는 것이다. 즉, SKT라면 3G 망을 LG U+라면 CDMA 망을 사용하여 음성통화 서비스를 제공한다.&lt;br /&gt;
이를 위해서는 반드시 휴대폰 단말기에서 LTE와 기존 방식인 3G 혹은 CDMA를 동시에 지원해야한다. LTE 망에 접속된 상태에서 상대방에게 전화를 걸려고 시도하면 다시 3G 망으로 접속해서 음성통화를 연결한다. 그러므로, 망간 전환에 필요한 시간이 있어 3G 휴대폰에 비해 약간 통화 연결이 느린 문제점이 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. VoLTE (Voice over LTE)&lt;/b&gt;&lt;br /&gt;
VoLTE는 LTE의 IP 망에서 음성통화를 제공하는 서비스이다. IMS (IP Multimedia Subsystem)을 이용하여 음성을 디지털 패킷 데이터로 변환하여 전달한다. 개인용 컴퓨터에서 많이 사용하고 있는 VoIP 기술과 비슷하다고 볼 수 있겠다. LTE 망에서 최적의 음성통화 서비스를 제공하기 위해 QoS 지원 등 여러 기술들이 사용된다.&amp;nbsp;VoLTE 방식으로 전국 어디서나 통화가 가능하다면 LTE 단말에서 더 이상 3G를 지원할 필요가 없을 수도 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3, OTT (Over-the-top)&lt;/b&gt;&lt;br /&gt;
아이폰이나 안드로이드 스마트폰 사용자들은 요즘 Skype 어플을 많이 활용하고 있다. Skype는 음성통화를 위해 CS 망이 아닌 데이터통신을 사용한다. 근간이 되는 기술은 VoLTE와 유사하나 LTE에 최적화된 솔루션은 아니므로 통화 품질이 떨어지는 등의 문제가 있을 수 있다.&lt;br /&gt;
&lt;br /&gt;
간단히 정리해보자면 현재 한국의 4G LTE 음성통화 서비스는 기존 3G 망을 활용한 CSFB 방식을 사용하고 있다. 하지만, 2012년에는 LG U+를 필두로 LTE만 사용하는 VoLTE 방식이 차츰 도입될 것이다. 그 와중에 사용자들은 자신의 선택에 따라 OTT 방식의 Skype와 같은 어플로 음성통화를 할 수도 있을 것이다. 사실 OTT와 VoLTE의 핵심 기술은 거의 동일하지만 LTE 망에 최적화된 VoLTE가 더 좋은 품질의 음성통화 서비스를 제공할 수 있을 것이다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-8749133430450227576?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xT8siTFgbH42I9bAzXN22mtZaZY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xT8siTFgbH42I9bAzXN22mtZaZY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xT8siTFgbH42I9bAzXN22mtZaZY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xT8siTFgbH42I9bAzXN22mtZaZY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/itpDvbVUbQs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/8749133430450227576/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/12/wireless-lte.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8749133430450227576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/8749133430450227576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/itpDvbVUbQs/wireless-lte.html" title="Wireless: LTE에서의 음성통화 기술" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/12/wireless-lte.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMERX8zeSp7ImA9WhRRFU4.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-4466786258788502832</id><published>2011-11-29T11:32:00.001+09:00</published><updated>2011-11-29T11:40:04.181+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T11:40:04.181+09:00</app:edited><title>Wireless: HotSpot 2.0 이란?</title><content type="html">스마트폰 사용자가 HotSpot 2.0을 지원하는 Wi-Fi 망을 사용하는 경우라면 기존 Wi-Fi 망과 달리 이동통신 망에서 Wi-Fi 망으로의 네트워크 연결 전환이 자연스럽게 이루어진다.&lt;br /&gt;
&lt;br /&gt;
예를 들면, 3G 네트워크를 이용하여 영화를 보고 있다가 HotSpot 2.0 네트워크에 연결이 가능하게 되면 영화 시청 중단 없이 Wi-Fi 망으로 자연스럽게 네트워크 연결이 이동하여 3G 망의 부하도 줄이고 사용자의 네트워크 비용도 절약할 수 있다.&lt;br /&gt;
&lt;br /&gt;
시스코에서 제공한 &lt;a href="http://www.cisco.com/en/US/solutions/collateral/ns341/ns524/ns673/white_paper_c11-649337.html"&gt;White Paper&lt;/a&gt;를 참고.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-4466786258788502832?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y1R94-yzRVokhyr7W3GN62Rv2NM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y1R94-yzRVokhyr7W3GN62Rv2NM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y1R94-yzRVokhyr7W3GN62Rv2NM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y1R94-yzRVokhyr7W3GN62Rv2NM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/4Tx9j9vFJIs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/4466786258788502832/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/11/wireless-hotspot-20.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/4466786258788502832?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/4466786258788502832?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/4Tx9j9vFJIs/wireless-hotspot-20.html" title="Wireless: HotSpot 2.0 이란?" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/11/wireless-hotspot-20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYDQHY8fyp7ImA9WhdXEUg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-272760715225581651</id><published>2011-08-20T23:05:00.004+09:00</published><updated>2011-08-24T11:16:11.877+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-24T11:16:11.877+09:00</app:edited><title>모두 소프트웨어를 말하다!</title><content type="html">약 8년전 저는 KT의 자회사인 KT Tech 휴대폰 개발 부서에서 소프트웨어 개발자로 일하고 있었습니다. 당시, 휴대폰 개발자하면 꽤나 대접을 받던 시절이라 연봉도 부족하지 않게 받고 일도 나름 재미있었죠. 휴대폰 개발자가 대접받던 좋은 시절이었습니다.&lt;br /&gt;
&lt;br /&gt;
약 3년 정도 휴대폰 소프트웨어 개발 업무에 몸 담고 있던 2004년경 휴대폰 분야도 결국은 Java나 Windows와 같은 Virtual Machine 기술 혹은 운영체제에 의해 플랫폼이 통합되고 그때만 해도 당연시되던 모든 휴대폰 회사들이 자신만의 소프트웨어 환경을 구축하는 것이 더 이상 필요없게 되지 않을까? 라는 의문을 품기 시작했습니다. 결국 IT 산업의 발전 경로를 보면 분명히 다가올 미래라고 확신하게 되었죠.&lt;br /&gt;
&lt;br /&gt;
그래서, 소프트웨어도 한가닥 하고 Java라는 걸출한 기술을 개발한 Sun Microsystem의 S/W 엔지니어로 전향하게 되었습니다. 기존 휴대폰 개발자 경력을 버리고 새로운 도전을 시작한 것이지요. 당시, 회사 인사 담당자분께서는 평생 직장(?)을 제공해주는 KT라는 둥지를 떠난다는 비상식적인 저의 행동에 대해 따끔한 충고도 해주셨던 것이 기억나네요.&lt;br /&gt;
&lt;br /&gt;
결과적으로 지금의 제 자신을 평가해보면 아마도 휴대폰 개발자로 머물러 있던 것 보다는 현재의 모습이 더 만족스러울 것이라고 자평해봅니다. 결국, 제 생각이 옳았다고 요즘 모든 곳에서 큰 소리로 외치고 있으니까요. "소프트웨어를 발전시켜야 한다!" 라고요.&lt;br /&gt;
&lt;br /&gt;
한국 사람들은 냄비 근성이 있다는 이야기들을 하곤 합니다. 어떤 흥미거리가 생기면 불 붙은 듯이 확 일어났다가 또 금새 흥미를 잃어버린다던가하는. 대중가요만 봐도 걸그룹 인기가 들불 번지듯이 일어나는 것을 보면 그리 틀린 말도 아닌듯 싶습니다.&lt;br /&gt;
&lt;br /&gt;
요즘 소프트웨어에 대한 증폭된 관심을 보면 이런 한국인의 특징이 동일하게 보여지고 있다는 생각이 듭니다. 어제 오늘의 일도 아니며 그동안 쭉 문제가 있었던 고질병에 대해 갑자기 Apple과 Google의 외부적 요건에 의해 폭발적인 관심을 불러일으키게 되었으며 이제 곧 유행의 중심에 소프트웨어 육성이라는 화두가 자리잡게 되는 것이지요.&lt;br /&gt;
&lt;br /&gt;
아마도 정부는 소프트웨어 인재양성 프로그램을 만들어내고 여기 저기서 중단기 과정을 만들어서 지원한다고 할 것이고 기업은 기업대로 S급 인재를 확보한다며 미국 유수 대학을 돌아다니며 컴퓨터 공학 전공자들을 긁어모으려고 노력할 것으로 보입니다. 회장님이 말씀하신대로 소프트웨어 좀 하는 회사도 M&amp;amp;amp;amp;amp;A도 좀 하고요.&lt;br /&gt;
&lt;br /&gt;
하지만, 이런 노력이 결실을 맺을 수 있을까요? 정말 한국이 소프트웨어 강자로 우뚝 설 수 있을까요? 저는 정말 잘 모르겠습니다. 그럴 수 있으면 좋겠다는 희망은 가져보지만 미래를 상상해보면 불안해지네요.&lt;br /&gt;
&lt;br /&gt;
Sun Microsystem사에서 해외 엔지니어들과 협업을 하면서 러시아 같이 한국 보다 GDP도 떨어지고 IT 인프라도 모자란 나라의 엔지니어들이 지금껏 한국에서 보아왔던 어떤 개발자들 보다 뛰어난 능력을 발휘하는 것을 보며 이 친구들은 어떻게 이런 높은 수준을 보여주는 것일까하고 고민했던 적이 있습니다.&lt;br /&gt;
&lt;br /&gt;
제가 러시아에서 학교를 졸업한 것도 아니며 현지 생활을 해본것도 아니어서 정확한 이유를 찾아낼 수는 없겠지만 러시아 친구들과 대화 중에 몇가지 힌트를 얻을 수 있었습니다.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;알렉세이라는 개발자는 저에게 이렇게 물어보더군요. 너는 한국에서 상위 % 정도의 삶을 살고 있다고 생각하느냐? 글쎄? 소프트웨어 개발자가 한국에서 어느정도의 위상을 가지고 있을까? 그리 긍정적인 답변을 주지는 못했죠. 그 친구는 선뜻 내 직업정도면 러시아에서는 상위 10%라고 말할 수 있다고 하더군요. 아~ 자신의 직업에 대한 자부심이 있고 경제적으로도 여유가 있나보구나 라는 느낌을 받았습니다.&lt;/li&gt;
&lt;li&gt;러시아라는 나라가 과거 공산주의 체제하에 있었기 때문에 한국보다 경직된 문화를 가지고 있을 것이라 생각했습니다. 하지만, 출장을 가서 몇 주 같이 생활해보니 오히려 더 자유분방하고 서로 토론도 많이하는 한국보다 개방적인 업무 스타일을 가지고 있더군요. 이 친구들은 휴가를 가도 최소 2주에서 심하면 4주씩 휴가를 떠나기도 합니다. 세계 방방 곡곡으로 여행을 다니며 찍은 사진들을 보면 부럽더군요. 분명히 한국보다 GDP는 낮을텐데... 삶의 질은 높아보였습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
한국의 소프트웨어 산업이 발전하려면 소프트웨어 산업을 지탱하고 있는 개발자가 앞에서 본 러시아 친구들처럼 자신의 일에 자부심을 가지고 타 산업군 대비 경쟁력있는 보수를 받으며 삶의 여유도 즐길 수 있는 업무 강도를 가져야 할 것입니다. 이런 조건이 충족되면 정부가 별다른 노력을 기울이지 않아도 똑똑한 대한민국의 청년들이 소프트웨어 분야로 뛰어들어 창업도 하고 중소기업/대기업에 취업도 하고 알아서들 잘 자라나줄 것이라고 생각합니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
하지만... 이렇게 환경을 바꾼다는 것이 사실 가장 어려운 일이지요. 당장은 제 앞길만 잘 닦아나갈 뿐입니다. 앞으로 5년 후에는 어떤 변화가 있을지 잘 생각해보고 career path를 쌓아갈 뿐입니다. 그나마, 저는 한국에서는 나은 축에 속하는 소프트웨어 개발자로 살아가고 있는 것을 다행이라 여기며. 향후 5년에는 해외로 나가야 하지 않을까 조심스래 생각해봅니다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;참고:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://profjkim.egloos.com/1940139"&gt;모토로라 M&amp;amp;amp;amp;A 쇼크 - 긴급진단 좌담회&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bloter.net/archives/72478"&gt;HP 소프트웨어 강화에 11조원 투자&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://news.donga.com/It/PC/3/0808/20110823/39741223/1"&gt;삼성 LG, SW 경쟁력 강화 본격 나선다&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-272760715225581651?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q1uYv0kvMbu0CUBo-A9fkCWle7U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q1uYv0kvMbu0CUBo-A9fkCWle7U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q1uYv0kvMbu0CUBo-A9fkCWle7U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q1uYv0kvMbu0CUBo-A9fkCWle7U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/J-minIoiPF4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/272760715225581651/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/08/blog-post.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/272760715225581651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/272760715225581651?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/J-minIoiPF4/blog-post.html" title="모두 소프트웨어를 말하다!" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/08/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIASH84fyp7ImA9WhdQFU0.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7466460469092352697</id><published>2011-08-05T23:22:00.003+09:00</published><updated>2011-08-16T23:22:29.137+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-16T23:22:29.137+09:00</app:edited><title>Apple은 지금 어떤 iPhone 엔지니어를 구하고 있을까?</title><content type="html">IT 업계에 몸 담고 있는 엔지니어라면 한번쯤 Apple 같은 회사에서 일해보고 싶다는 꿈을 가져보지 않았을까요? 저도 사실 Apple에서 iPhone 개발에 참여해보고 싶다는 소박한(?) 꿈이 있답니다. 물론, 지금 일하고 있는 회사가 싫어서 그런것은 절대 아닙니다! :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://images.apple.com/jobs/global/images/photo_welcome_corporate.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://images.apple.com/jobs/global/images/photo_welcome_corporate.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
(From &lt;a href="http://www.apple.com/jobs/us/welcome.html"&gt;www.apple.com&lt;/a&gt;)&lt;/div&gt;
&lt;br /&gt;
세상을 바꾸고 있는 제품에 내가 직접 참여할 수 있다는 것만으로도 매력적인 회사라 할 수 있거니와 아마도 최고의 실력을 갖춘 사람들과 어깨를 나란히 하며 일할 수 있다는 흥분도 느낄 수 있겠죠?&lt;br /&gt;
&lt;br /&gt;
요즘 Apple은 iPhone 개발을 위해 어떤 엔지니어를 채용하려고 할까요? 개인적으로도 궁굼하거니와 뽑는 인재를 보면 그 회사의 미래를 가늠해 볼 수 있기도 합니다. 결국 모든 것은 사람에 의해 결정되는 것이니까요.&lt;br /&gt;
&lt;br /&gt;
1. OpenCL Compiler Engineer&lt;br /&gt;
Apple 제품의 미디어 및 그래픽의 근간이 되는 기술을 개발하는 엔지니어 포지션이라고 하네요. C/C++를 다루며 Unix, Linux 및 Mac OS X에서 개발 경험이 있어야 한답니다. 당연히 뛰어나 소프트웨어 디자인 능력 및 문제 해결 능력, 디버깅 기술은 필수! 3~4년 이상의 컴파일러 개발 경험을 요하네요... Xcode 4.3 버전부터 적용되는 LLVM 컴파일러에 대한 경험이 있으면 plus 랍니다.&lt;br /&gt;
&lt;br /&gt;
2. RF Engineer&lt;br /&gt;
기존 iPhone 4에서 고생 좀 했던 부분이죠? RF 엔지니어 채용도 진행 중 입니다. S/W 엔지니어 포지션에 비해 요구 사항이 좀 구체적이지가 않네요. RF 엔지니어 포지션이 원래 그런건가?&lt;br /&gt;
&lt;br /&gt;
3. Sr. Test Automation SW Engineer&lt;br /&gt;
흥미로운 이름을 가진 포지션입니다. 생산 과정에서 테스트를 자동화하는 소프트웨어를 개발하는 엔지니어를 뽑네요. C/C+와 RTOS를 기본으로 테스트 자동화에 경력이 10년 이상의 엔지니어를 구하고 있습니다. 여행도 많이 해야한다고 되어 있는데 아마도 중국이겠죠?&lt;br /&gt;
&lt;br /&gt;
4. GPU 관련 엔지니어를 특히나 많이 구하고 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;iOS GPU Driver Architecture Engineer&lt;/li&gt;
&lt;li&gt;GPU Software Performance Architect&lt;/li&gt;
&lt;li&gt;GPU Developer Technologies Engineer&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
모바일에서 GPU가 중요한 분야인것은 확실하네요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
등등등...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
많은 엔지니어링 포지션들이 열려 있지만 눈에 많이 띄는 포지션들은 주로 GPU, 멀티미디어 분야 및 RF 관련 엔지니어들이네요. 다음번 iPhone은 통화도 아주 잘되는 전화기에 충실한 제품이 나올 수 있지않을까 기대해봅니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
소프트웨어 개발자 포지션은 대부분 C/C++가 기본 능력이고 이에 더불어 Objective C와 Linux, Mac OS X에 대한 능력을 요구하고 있고 뛰어난 디자인 및 문제 해결 능력을 언제나 강조하는 군요. 학력은 대부분 컴퓨터 사이언스 분야의 BS/MS를 요구하네요. 박사를 요구하는 포지션은 거의 없어 보입니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
그런데, Apple은 엔지니어를 어떤 방식으로 채용할까요? 나름 외국계 엔지니어링 포지션에 자주 인터뷰를 본 경험이 있지만 Apple의 경우는 어떤지 궁굼하네요. 미국에 사시는 아는 형님의 말씀으로는 되게 어렵다고 하시던데... Google 처럼 알고리즘 위주의 문제를 많이 낼까요? 아님, Microsoft 처럼 문제 해결 능력을 보는 괴상한 질문들을 많이 할까요? 주변에 Apple에서 엔지니어로 일하는 지인이 없어서 물어볼 사람이 없네요. 나중에 인터넷에서 검색 좀 해봐야 겠습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Apple 채용 페이지에 다양한 iPhone 엔지니어를 구하고 있는 것과 달리 삼성 &lt;a href="http://www.samsung.com/sec/aboutsamsung/careers/job_opening_list.html"&gt;전자 웹페이지의 경력 사원 채용 페이지&lt;/a&gt;는 왜이리 썰렁하죠? 달랑 3개의 채용 공고가 있고 그나마도 2개 포지션은 엔지니어도 아니네요... 큰 회사인데 경력직 엔지니어가 필요가 없을까요? 흠...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Apple의 신사옥 청사진입니다. UFO 처럼 생긴 외관에 가운데 조성된 숲이 인상적이네요. 2015년 완공 예정이라고 합니다. 2015년... 앞으로 4년 후 이군요.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.treehugger.com/apple-rendering3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="324" src="http://www.treehugger.com/apple-rendering3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7466460469092352697?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h-f_OsXzYuSaS6WkNShYbT_kgc4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h-f_OsXzYuSaS6WkNShYbT_kgc4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h-f_OsXzYuSaS6WkNShYbT_kgc4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h-f_OsXzYuSaS6WkNShYbT_kgc4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/yUeGw3WMazQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7466460469092352697/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/08/apple-iphone.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7466460469092352697?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7466460469092352697?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/yUeGw3WMazQ/apple-iphone.html" title="Apple은 지금 어떤 iPhone 엔지니어를 구하고 있을까?" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/08/apple-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EDQnk5eCp7ImA9WhdQEEo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-111107713118310484</id><published>2011-07-31T21:30:00.004+09:00</published><updated>2011-08-11T23:07:53.720+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T23:07:53.720+09:00</app:edited><title>2011년 2Q 휴대폰 시장 점유율 - IDC 자료</title><content type="html">IT 기업들의 올해 절반의 성과가 거의 다 발표되었습니다. 유난히도 미국계 IT 기업들의 강세가 돋보였고 그에 반해 유럽이나 캐나다와 같은 기타 국가들의 강자들이 무너져가는 모습을 보이고 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-3ZkDrKs4G_I/TjU_yEGumuI/AAAAAAAABKE/0iGi49AMyhM/s1600/IDC-Mobile-Worldwide-Shipments-Q2-2011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-3ZkDrKs4G_I/TjU_yEGumuI/AAAAAAAABKE/0iGi49AMyhM/s1600/IDC-Mobile-Worldwide-Shipments-Q2-2011.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
IDC가 발표한 2011년 Q2 휴대폰 판매량을 보면 노키아의 1위 자리가 위태롭습니다. 전년 대비 20.3%가 감소하여 전체 Market Share는 이제 24.2% 밖에 안되는군요. 그에 비해 삼성은 꾸준히 시장을 넓혀 19.2%의 시장 점유율로 이제 노키아와 5% 정도의 차이만 보이고 있습니다. 몇 해전만 해도 전혀 일어나지 않을 것 같던 일이 벌어지고 있습니다.&lt;br /&gt;
&lt;br /&gt;
반대로 Apple은 무서운 기세로 성장하고 있습니다. 전년 대비 141.8%라는 경이적인 성장률을 보이며 3위 LG 전자와 겨우 1.2% 정도의 시장 점유율 차이를 보이고 있네요. LG 이대로는 3위 자리가 위태로와 보입니다. Apple은 영업이익률에서도 타 회사 대비 2배 이상의 경이로운 수치를 보이고 있습니다. (영업 이익률로만 보면 HTC가 삼성전자보다 좋군요...)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://file.mk.co.kr/meet/neds/2011/07/image_readtop_2011_496416_1312101531463143.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://file.mk.co.kr/meet/neds/2011/07/image_readtop_2011_496416_1312101531463143.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
(출처: 매일경제 뉴스 -&amp;nbsp;http://news.mk.co.kr)&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
삼성전자의 경우 Android에 집중하여 스마트폰에서 어느정도 입지를 다진 모습을 보이고 있어 Apple과 휴대폰 사업에서 승부를 겨뤄볼만한 위치를 차지한 것으로 보입니다. 단, Oracle, Microsoft, Apple 등의 회사들이 Android를 견제하기 위한 특허 공세에 Google과 관련 업체들이 과연 얼마나 피해를 입을 것인지가 앞으로의 향방에 큰 영향을 미칠 것 같습니다.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;참고: &lt;a href="http://androidkr.blogspot.com/2010/08/android-oracle-google-android-part-1.html"&gt;Oracle이 제기한 Google Android에 대한 소송&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Nokia는 사운을 걸고 새로이 선택한 플랫폼인 Microsoft Windows Phone의 신제품이 시장에 나오면 정말로 몰락하는 운명인지 부활할 수 있을지 가늠해볼 수 있겠습니다. 비록 현재 market share로는 최하위에 머무르고 있는 스마트폰 운영체제이기는 합니다만 개인적으로는 Microsoft의 제품화하는 저력과 Nokia의 휴대폰 개발 능력이 합쳐지면 꽤 큰 시너지를 낼 수 있지 않을까하는 희망을 가져봅니다. 동시에 Microsoft는 Google Android 진영에 특허 관련 공세를 가할 것으로 보이고요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
LG 전자의 경우에는 뒤늦게 Android 휴대폰 개발에 뛰어든지라 여전히 힘든 모습을 보이고 있습니다. 중간에 Microsoft와 전략적인 협력을 발표하여 스마트폰 운영체제 선택에 혼선을 빚는 모습도 보여주었습니다. 여전히, Android와 Windows Phone 모델을 동시에 개발하고 있는 것 같습니다만 Android에 좀 더 무게를 두는 것으로 보입니다. 하지만, 양쪽 진영 모두에서 이렇다할 선도적인 제품이 출시가 되고 있지않아 이러다 샌드위치 신세가 되는 것이 아닌지 좀 걱정스럽네요. (Windows Phone은 노키아, Android는 삼성, Low-end는 ZTE ...)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
IDC 발표자료에는 HTC나 RIM은 아예 없군요. 하지만, HTC의 경우는 이번 분기에도 기존 매출 기록을 갈아치우며 스마트폰 시장에서 강자임을 다시 한번 확인 시켜주었습니다. LG 전자가 휴대폰 사업부의 매출이 3조 2천억인데 반해 HTC는 이번 분기에서 4조 5천억의 매출을 기록하였네요.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
오바마 폰으로 유명해졌던 RIM은 한국 시장에서 제대로 자리 잡아보기도 전에 세계 시장에서 점차 잊혀져 가는 것 같습니다. 별로 타계책이 보이지 않네요. iPhone이 기존 블랙베리가 강세였던 기업시장에서의 입지를 차츰 차츰 갈아먹으면 회생할 수 있는 기회가 거의 없어보입니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Motorola와 Sony Ericsson은 기억의 저편으로 날아가버렸습니다. 특별히 언급할 것이 없네요.&lt;br /&gt;
&lt;br /&gt;
UPDATE: 가트너의 발표자료도 나왔네요.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://paidcontent.org/images/editorial/_original/gartner-q2-2011-mobile-sales-o.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://paidcontent.org/images/editorial/_original/gartner-q2-2011-mobile-sales-o.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
수치는 조금 다르지만 큰그림은 IDC 자료와 동일합니다. 전체적으로 Apple과 중국/대만 업체들이 약진하였고 기존 강자들의 portion이 줄어드는 형국이네요.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
참고:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.asiae.co.kr/news/view.htm?idxno=2011072909432083818"&gt;삼성전자 휴대폰으로 버텼다.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://news.hankooki.com/lpage/economy/201107/h2011072802315721500.htm"&gt;LG전자 스마트폰 열세에 휴대폰 5분기 연속 적자&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.yonhapnews.co.kr/economy/2011/07/20/0302000000AKR20110720010700072.HTML"&gt;애플 분기 수익 2배 넘어&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://news.chosun.com/site/data/html_dir/2011/07/23/2011072300285.html?news_Head2"&gt;15년 만에 적자. 휴대폰 왕국 노키아의 몰락&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.newscj.com/news/articleView.html?idxno=90064"&gt;HTC 2분기 매출 기록 또 갱신&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://news.hankooki.com/lpage/economy/201107/h2011072702335921500.htm"&gt;RIM 블랙베리 된서리 2000명 감윈&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2011/05/2011-1q.html"&gt;2011년 1Q 휴대폰 시장 점유율&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-111107713118310484?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9AZHna-fmB5T7FWgcUkdlXs8I3E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9AZHna-fmB5T7FWgcUkdlXs8I3E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9AZHna-fmB5T7FWgcUkdlXs8I3E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9AZHna-fmB5T7FWgcUkdlXs8I3E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/IxlIA2sRGt0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/111107713118310484/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/2011-2q-idc.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/111107713118310484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/111107713118310484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/IxlIA2sRGt0/2011-2q-idc.html" title="2011년 2Q 휴대폰 시장 점유율 - IDC 자료" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-3ZkDrKs4G_I/TjU_yEGumuI/AAAAAAAABKE/0iGi49AMyhM/s72-c/IDC-Mobile-Worldwide-Shipments-Q2-2011.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/2011-2q-idc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBQHs_fSp7ImA9WhdRFUQ.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-1438432023871060120</id><published>2011-07-29T00:53:00.006+09:00</published><updated>2011-08-06T09:42:31.545+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-06T09:42:31.545+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title>Java: Finally Java SE 7</title><content type="html">드디어. &lt;a href="http://www.oracle.com/us/corporate/features/java-7-launched-435823.html"&gt;Java SE 7&lt;/a&gt;이 우리 곁으로 왔습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.oracle.com/ocom/groups/public/@ocom/documents/digitalasset/427163.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.oracle.com/ocom/groups/public/@ocom/documents/digitalasset/427163.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
(from www.oracle.com)&lt;/div&gt;
&lt;br /&gt;
다운로드:&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html"&gt;http://www.oracle.com/technetwork/java/javase/downloads/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
아쉽게도 Mac OS X 버전은 보이지 않지만 Windows, Linux, Solaris 운영체제용으로 Java SE 7이 정식 릴리즈 되었습니다.&amp;nbsp;물론 OpenJDK의 &lt;a href="http://openjdk.java.net/projects/macosx-port/"&gt;Mac OS X Port 프로젝트&lt;/a&gt;가 가동 중이라 빠른 시일내에 Mac OS에서 JDK7을 사용할 수 있으리라 기대해봅니다.&lt;br /&gt;
&lt;br /&gt;
이번 릴리즈를 보면 역시 비지니스에 밝은 Oracle 답게 기업 환경을 위한 &lt;a href="http://www.oracle.com/us/technologies/java/java-se-suite-394230.html#compare"&gt;Java SE 7 Advanced와 Java SE 7 Suite&lt;/a&gt;라는 별도의 패키지를 제공하고 있습니다.&lt;br /&gt;
&lt;br /&gt;
무료로 제공되는 Java SE 7에 더하여 기존 Oracle의 Java VM이였던 JRockit의 Mission Control과 같은 관리를 용이하게 하는 기능들을 더 제공하고 아마도 JRockit이 제공했었던 Soft Real Time GC 기능을 제공하는 것 같습니다. 또한, 기술 지원도 제공한다고 되어 있네요.&lt;br /&gt;
&lt;br /&gt;
기존 제 블로그에서도 &lt;a href="http://androidkr.blogspot.com/2010/09/jdk-7.html"&gt;Java SE 7에 새로이 추가될 기능&lt;/a&gt;들에 대해서 정리해보았지만 이번 릴리즈 노트에 나와있는 주요 변경 내용들을 간단히 추려보면 다음과 같습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Swing에 새로운 look and feel로 &lt;a href="http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html"&gt;Nimbus&lt;/a&gt;가 추가되었습니다.&lt;/li&gt;
&lt;li&gt;역시 Swing에 &lt;a href="http://download.oracle.com/javase/tutorial/uiswing/misc/jlayer.html"&gt;JLayer 클래스&lt;/a&gt;가 추가되어 컴퍼넌트를 직접 수정하지 않아도 모습을 바꾸거나 이벤트 처리를 변경할 수 있습니다.&lt;/li&gt;
&lt;li&gt;I/O 처리를 위한 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/io/enhancements.html#7"&gt;NIO2&lt;/a&gt;가 추가되었습니다.&lt;/li&gt;
&lt;li&gt;ECC (Ecliptic Curve&amp;nbsp;Cryptography) &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#ALG"&gt;보안 알고리즘&lt;/a&gt;이 추가되었습니다.&lt;/li&gt;
&lt;li&gt;다중 프로세스 활용을 위한 &lt;a href="http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html"&gt;fork/join 프레임워크&lt;/a&gt;가 제공됩니다.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jaxp.java.net/"&gt;JAXP (Java API for XML Processing) 1.4.5 버전&lt;/a&gt;을 포함합니다.&lt;/li&gt;
&lt;li&gt;코딩 편의를 위한 Java 언어의 변경 사항을 제공합니다.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html"&gt;상수값으로 이진수&lt;/a&gt;를 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html"&gt;switch 문에 문자열&lt;/a&gt;을 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;try / finally로 처리하던 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html"&gt;리소스 관리를 자동화&lt;/a&gt;하는 방법을 제공합니다.&lt;/li&gt;
&lt;li&gt;하나의 catch 문에서 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html"&gt;여러개의 예외처리&lt;/a&gt;를 할 수 있도록 합니다.&lt;/li&gt;
&lt;li&gt;숫자 상수 값 표현의 편의를 위해 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html"&gt;숫자 사이에 '_' 문자를 사용&lt;/a&gt;할 수 있습니다.&lt;/li&gt;
&lt;li&gt;Generic 타입을 사용한 객체를 생성 시 코드 반복을 줄일 수 있도록 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html"&gt;빈 '&amp;lt;&amp;gt;' 를 사용&lt;/a&gt;할 수 있습니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/language/non-reifiable-varargs.html"&gt;컴파일 warning이 향상&lt;/a&gt;되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Java 언어 외의 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/vm/multiple-language-support.html"&gt;다른 언어들이 JVM에서 더 효율적으로 실행&lt;/a&gt;될 수 있도록 Virtual Machine이 향상되었습니다.&lt;/li&gt;
&lt;li&gt;다중 프로세스와 큰 메모리를 가진 서버 환경에서 soft real time GC를 만족시킬 수 있는 새로운 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/vm/G1.html"&gt;G1 가비지 콜렉터가 추가&lt;/a&gt;되었습니다. (더 자세한 기술적 내용을 알고 싶으시다면 &lt;a href="http://androidkr.blogspot.com/2010/08/java-jdk-7-g1.html"&gt;이전 블로글&lt;/a&gt;을 참고하세요)&lt;/li&gt;
&lt;li&gt;Java Virtual Machine이 &lt;a href="http://download.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html"&gt;성능이 향상&lt;/a&gt;되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html"&gt;Oracle 웹페이지&lt;/a&gt;에서 전체 변경 내용에 대해 확인하실 수 있습니다. 그다지 눈에 확띄는 섹시한 변경 사항은 없는 것 같습니다만 Oracle의 Sun 합병 후 첫번째 Major 업데이트라는 점과 계속 지지부진하던 Java SE의 새로운 버전이 예정된 일정에 정확히 출시되었다는 것에 의의를 두어야 할 것 같습니다.&lt;br /&gt;
&lt;br /&gt;
이제 Lambda나 Jigsaw와 같은 큰 변화를 가져올&amp;nbsp;&lt;a href="http://openjdk.java.net/projects/jdk8/"&gt;Java SE 8&lt;/a&gt;을 기다려야 겠군요...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;참고:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2010/07/java-jdk-7-overview.html"&gt;JDK 7의 새로운 기능들&lt;/a&gt; - My Blog&lt;/li&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2010/07/java-jdk-7-java.html"&gt;JVM에서 Java외 다른 개발 언어 지원&lt;/a&gt; - My Blog&lt;/li&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2010/08/java-jdk-7-g1.html"&gt;G1 가비지 콜렉터&lt;/a&gt; - My Blog&lt;/li&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2010/09/jdk-7.html"&gt;오라클의 JDK 7 계획 수정&lt;/a&gt; - My Blog&lt;/li&gt;
&lt;li&gt;&lt;a href="http://androidkr.blogspot.com/2010/10/java-openjdk.html"&gt;OpenJDK 빌드 환경 셋업&lt;/a&gt; - My Blog&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-1438432023871060120?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uQ7rOTowvQuPFa3VIufPXNtohnU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uQ7rOTowvQuPFa3VIufPXNtohnU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uQ7rOTowvQuPFa3VIufPXNtohnU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uQ7rOTowvQuPFa3VIufPXNtohnU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/v4woPMJ8p2s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/1438432023871060120/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/finally-java-se-7.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/1438432023871060120?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/1438432023871060120?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/v4woPMJ8p2s/finally-java-se-7.html" title="Java: Finally Java SE 7" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/finally-java-se-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8NSHgzeSp7ImA9WhdRGUg.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7371610947384823562</id><published>2011-07-23T22:35:00.010+09:00</published><updated>2011-08-10T13:34:59.681+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-10T13:34:59.681+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LTE" /><title>LTE: 언제쯤 LTE의 이점을 누릴 수 있을까?</title><content type="html">요즘 SKT, LG U+가 4G LTE에 대해 서로 최고임을 내세우며 공격적인 마켓팅을 하고 있습니다. 하지만 주변에 실제로 &lt;a href="http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution"&gt;LTE&lt;/a&gt;를 사용하는 사람들이 얼마나 있을까요? 저는 운이 좋게도 &lt;a href="http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution"&gt;LTE&lt;/a&gt;를 직접 다루는 회사에 근무하고 있어 엄청나게 빠른 속도로 HD 동영상을 스트리밍한다든가 1GB 파일을 뚝닥 다운로드 받는 등의 시연을 직접 해본적도 있습니다만 일반 사용자들에게 LTE는 아직 현실적이지 않은 기술인 것 같습니다.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://cfile25.uf.tistory.com/image/184E7E424E109927254B75" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="291" src="http://cfile25.uf.tistory.com/image/184E7E424E109927254B75" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;u&gt;추신: 이 글의 의견은 전적으로 개인적인 사견입니다. 회사의 입장이나 회사 내 정보는 전혀 담고 있지 않습니다.&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
iPhone과 같은 Killer 디바이스가 아직 LTE를 사용하고 있지 않죠. 여전히 3G 네트워크를 지원합니다. iPhone 4라는 이름 때문에 iPhone이 이미 4G LTE를 지원하는 것으로 &lt;a href="http://www.etnews.com/news/detail.html?id=201107130043"&gt;오해하는 사용자&lt;/a&gt;도 많다고 하더군요. 아마도 올해 말 정도가 되어야 좀 쓸만한 단말들이 출시가 될 것 같습니다. 그전까지는 LTE 모뎀을 이용하여 iPad나 Laptop에서 인터넷을 사용하는 정도로 활용이 가능할 것 같습니다. 개인적으로는 LTE를 지원하는 Nokia Windows Mobile 휴대폰이나 iPhone이 출시되기 전에는 LTE 휴대폰을 구입할 생각은 없습니다. (Android 폰은 아직 사용성이 좀 떨어지는 것 같아서요...)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://niviuk.free.fr/lte_band.php"&gt;LTE는 여러 주파수 대역&lt;/a&gt;을 지원하도록 스팩이 정의되어 있습니다. 다양한 국가의 주파수 활용 실정에 맞게 스팩을 조절한 것으로 보입니다만 이 때문에 단말 제조 입장에서 보면 각 국가별로 RF를 변경해주어야 하는 문제가 생길 것 입니다. 미국 최대 이통사인 Verizon은 700Mhz 대역을 LTE로 사용하고 있습니다. AT&amp;amp;amp;T도 700Mhz 대역이고요. 그렇담 최초의 LTE iPhone은 700Mhz 대역을 지원할 가능성이 가장 높겠죠. 그나마 다행이랄까 한국 LTE 사업자인 SKT와 LG U+는 800Mhz 대역으로 LTE 서비스를 제공하고 있어 LTE iPhone이 초기 도입될 수 있는 가능성이 좀 높아 보입니다. 하지만, KT의 경우 원래는 1.8GHz 대역에서 LTE를 지원할 예정이었다고 하는데 이처럼 서로 다른 주파수 대역을 사용할 경우 단말 공급이 원할하게 될지 의문이네요. (물론, 단말 회사들이 여러 대역을 동시에 지원하는 휴대폰을 출시할 것이기는 합니다만...)&lt;br /&gt;
&lt;br /&gt;
LTE는 기존 3G와 달리 &lt;a href="http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution#An_.22All_IP_Network.22_.28AIPN.29"&gt;모든 네트워크가 IP 기반&lt;/a&gt;으로 이루어져 있습니다. 이로써 비용 효율적이고 간단한 네트워크 구조를 구현할 수 있게 되었습니다만 음성 통화를 위한 초기 대응에 문제가 생길 수 있습니다. LTE에서의 음성통화는 보통의 컴퓨터에서 VoIP를 사용하듯 VoIP 기반의 음성 서비스를 제공해야 합니다. IP 기반이니까 당연하겠죠. 이를 &lt;a href="http://kr.engadget.com/2011/02/10/verizon-completes-volte-first-in-the-world/"&gt;VoLTE(Voice over LTE)&lt;/a&gt;라 부릅니다. 하지만, LTE 초기 서비스 제공 시점에는 아직 VoLTE를 지원하기에는 기술적으로 좀 부족한 것으로 보입니다. 그래서 이를 보완하기 위해 &lt;a href="http://lteworld.org/blog/understanding-cs-fallback-lte"&gt;CS Fallback&lt;/a&gt;이라는 방식을 지원합니다. CS Fallback 방식은 LTE 네트워크에서 음성 통화가 필요 시 기존 3G 네트워크로 전환하여 음성 통화 기능을 제공하는 방식입니다. 고로, LTE 초기 휴대폰은 LTE 뿐 아니라 음성 통화 지원을 위해서도 꼭 3G 네트워크도 함께 사용할 수 있는 dual mode를 지원하게 됩니다.&lt;br /&gt;
&lt;br /&gt;
LTE로 전향하는 대부분의 사업자들은 기존에 WCDMA 3G 서비스를 지원하였습니다. CS Fallback을 지원하는데 큰 문제가 없겠죠. LTE 단말도 WCDMA를 동시에 지원하는 모델은 다수 출시될 것으로 보입니다. LG U+의 경우는 기존 망이 WCDMA가 아닌 CDMA 1x와 CDMA EVDO 망입니다. 즉, LTE + WCDMA를 통한 CS Fallback 지원이 불가합니다. 그렇담 LTE + CDMA 1x를 지원하는 휴대폰이 있어야 음성통화가 가능합니다. 하지만, 기존 CDMA 1x를 지원하는 휴대폰도 부족한 사항이어서 LTE + CDMA 1x를 지원하는 휴대폰은 더 부족해질 수도 있겠죠. 이 문제를 해결하기 위해서는 LG U+가 전국적으로 LTE 망을 설치 후 VoLTE를 재빨리 지원해야할 것 입니다. &lt;a href="http://www.hankyung.com/news/app/newsview.php?aid=201106305544g"&gt;LG U+ 사업자도 LTE 전국망&lt;/a&gt;을 가장 먼저 선보이겠다고 다짐을 하고 있는 형국입니다.&lt;br /&gt;
&lt;br /&gt;
이런 저런 요인들 때문에 한국 사업자들의 다양한 마켓팅 활동에도 불구하고 아직은 LTE가 널리 활용되기는 조금 시기상조로 보이네요. 빨리 LTE가 널리 보급되어 휴대기기에서 전에는 생각지 못했던 여러 네트워크 작업을 할 수 있는 세상이 되었으면 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;참고:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.newsis.com/ar_detail/view.html?ar_id=NISX20110801_0008841916&amp;amp;cID=10406&amp;amp;pID=10400"&gt;LTE 상용화 한달... 시장 반응은 미지근&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ddaily.co.kr/news/news_view.php?uid=80719"&gt;삼성전자. 국내 첫 LTE 태블릿 '갤럭시탭 8.9' 4분기 내놓는다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dt.co.kr/contents.html?article_no=2011072802010531742005"&gt;LTE 늦은 KT. 와이브로 띄운다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ettrends.etri.re.kr/PDFData/26-4_152-164.pdf"&gt;LTE 시장현황 및 전망&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7371610947384823562?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_ua4LP1BDdOYJUNA-EyreasMbSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_ua4LP1BDdOYJUNA-EyreasMbSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_ua4LP1BDdOYJUNA-EyreasMbSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_ua4LP1BDdOYJUNA-EyreasMbSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/h4f3Th4jdws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7371610947384823562/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/lte-lte.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7371610947384823562?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7371610947384823562?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/h4f3Th4jdws/lte-lte.html" title="LTE: 언제쯤 LTE의 이점을 누릴 수 있을까?" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/lte-lte.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUERH0_cSp7ImA9WhdTGE8.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-6417200224306790010</id><published>2011-07-16T22:49:00.008+09:00</published><updated>2011-07-16T23:23:25.349+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T23:23:25.349+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WWDC" /><category scheme="http://www.blogger.com/atom/ns#" term="ARC" /><category scheme="http://www.blogger.com/atom/ns#" term="LLVM" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>WWDC 2011: ARC에 관한 세션들 정리</title><content type="html">&lt;span class="Apple-style-span" style="color: #222222; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;You can see all of session videos and presentation files of WWDC 2011 from&amp;nbsp;&lt;a href="https://developer.apple.com/videos/wwdc/2011/" style="color: #2288bb; text-decoration: none;"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://farm3.static.flickr.com/2571/3879486109_81556eb762.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="200" src="http://farm3.static.flickr.com/2571/3879486109_81556eb762.jpg" width="200" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;실행 시간 성능을 떨어트리는 &lt;a href="http://androidkr.blogspot.com/2010/03/j1-garbage-collection.html"&gt;GC (Garbage Collection)&lt;/a&gt;은 싫고. 그렇다고 마냥 이대로 두자니 덜 숙련된 iOS 개발자들이 버그를 양산하고... Apple이 WWDC 2011에서 들고나온 해결책은 바로 &lt;a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html"&gt;ARC (Automatic Reference Counting)&lt;/a&gt; 입니다.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;신기하게도 Runtime이 아닌 Compile시 코드를 분석해서 자동으로 Retain, Release 코드를 생성해주는 구조라고 하는데요 저 같은 평범한 개발자로서는 머리를 굴려봐도 이게 어떻게 가능한지 감이 잘 안오네요. (정확히는 ARC를 위한 런타임도 필요는 합니다. iOS 5, Lion은 기본적으로 ARC를 지원하고요 기존 버전을 위해서는 ARC를 위한 별도의 라이브러리를 사용해야 한다는군요.)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit; line-height: 18px;"&gt;특히나 전역 변수나 클래스의 인스턴스 변수에 대해서는 컴파일 시 메모리 관리를 자동으로 하는 코드를 어떻게 만들어주는지 이해가 안갑니다. WWDC 2011 관련 세션들을 모두 들어보았지만 이 내용은 안나오더군요. 쩝... 잡스형님 말대로 매직(magic)인건가요?&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;Xcode 4.3 버전부터 기본으로 사용되는 &lt;a href="http://llvm.org/"&gt;LLVM 3.0 컴파일러&lt;/a&gt;에서 ARC를 지원한다고 합니다. ARC를 사용하면 개발자는 iOS 코드 개발 시 가장 골치아픈 문제인 Retain, Release, Autorelease등을 이용한 메모리 관리를 신경 쓸 필요 없이 코드를 작성할 수 있다고 하네요. 또한, 컴파일 시에 메모리 관리를 자동으로 해결하므로 런타임 시 성능도 문제가 없다고 합니다... 수준이 아니라 더 빨라졌다고요!!! Wow.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;Session 323 - Introduction Automatic Reference Counting을 보면 ARC를 사용할 때 지켜야 할 규칙 및 실제 ARC가 compile시에 어떤 방식으로 메모리 관리 코드를 자동으로 생성하는지 간단하게 설명하고 있습니다. 또한, 기존에 이미 작성한 코드를 ARC migration tool을 사용하여 ARC를 사용하는 코드로 변환하는 방법에 대해서도 설명하고 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;Session 322 - Objective-C Advancements In Depth 세션에서는 ARC 사용 시 Edge case들을 어떻게 처리할 수 있는지에 대한 내용을 다루고 있습니다. 예를 들면, Core Foundation API에서는 ARC 사용 시 어떤 문제점이 있을 수 있고 해결하는 방법은 무엇인지, 개발자가 작성한 custom retain, release 메쏘드는 ARC에 맞추어 어떻게 변경해야 하는 지 등 Session 323에 비해 심화된 내용을 다룹니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;Session 316 - LLVM Technologies in Depth 세션에서는 ARC migrator가 어떤 방식으로 기존 메모리 관리 코드를 자동으로 ARC 지원 코드로 변경하는지 컴파일러 내부의 동작을 단계적으로 설명해줍니다. 어플 개발에는 별로 도움은 안되겠지만 LLVM의 내부를 들여다보는 재미는 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;추가 Tip:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;ARC를 사용하는 경우는 __has_feature(objc_arc) 전처리 값이 1이 되는군요&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;C의 malloc(), free()로 관리하는 메모리는 ARC가 메모리 관리를 자동으로 처리할 수 없습니니다. ARC의 대상은 Objective-C의 객체(id, block, attribute) 입니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;b&gt;WWDC 2011 세션 정리 글:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 18px;"&gt;&lt;a href="http://draft.blogger.com/WWDC%202011:%20Session%20100%20What's%20new%20in%20Cocoa%20Touch"&gt;Session 100: What's new in Cocoa Touch&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: inherit;"&gt;&lt;a href="http://androidkr.blogspot.com/2011/06/wwdc-2011-session-601-apple-platforms.html"&gt;Session 601: Apple Platforms Kickoff&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-6417200224306790010?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ct7k57yscfxKfGdmasqJ3hkXuZ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ct7k57yscfxKfGdmasqJ3hkXuZ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ct7k57yscfxKfGdmasqJ3hkXuZ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ct7k57yscfxKfGdmasqJ3hkXuZ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/2IH7jGxFCr8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/6417200224306790010/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/wwdc-2011-arc.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6417200224306790010?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/6417200224306790010?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/2IH7jGxFCr8/wwdc-2011-arc.html" title="WWDC 2011: ARC에 관한 세션들 정리" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2571/3879486109_81556eb762_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/wwdc-2011-arc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUICR3sycSp7ImA9WhdTFEo.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-7478035397942076931</id><published>2011-07-12T22:27:00.005+09:00</published><updated>2011-07-12T22:32:46.599+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-12T22:32:46.599+09:00</app:edited><title>Lang: 각종 언어의 NULL 처리</title><content type="html">개발 언어를 이것 저것 다루다 보면 사소한 것이 헷갈려서 인터넷을 뒤져 보는 경우가 생기기도 합니다. (뭐... 제가 그렇게 많은 개발언어를 다루지는 않지만 하루에 2~3 언어만 섞어 써도 헷갈리는 경우가 생기더군요)&lt;br /&gt;
&lt;br /&gt;
요즘 자주 다루고 있는 C, Java, Lua, Python, PHP의 사소한 문법들을 비교하는 글을 써보고자 합니다. 인터넷 검색 대신 제 블로그를 보면 확 기억나게요. 일단 오늘은 NULL에 대해서입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.stacktistics.com/references/c++.html"&gt;C 언어&lt;/a&gt;의 경우는 NULL을 사용하죠. 대략 아래와 같은 형태의 코드를 작성합니다.&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: #7f0055; font-weight: bold;"&gt;char&lt;/span&gt; *p = &lt;span style="color: #7f0055; font-weight: bold;"&gt;NULL&lt;/span&gt;;
&lt;span style="color: #7f0055; font-weight: bold;"&gt;if&lt;/span&gt; (p != &lt;span style="color: #7f0055; font-weight: bold;"&gt;NULL&lt;/span&gt;) {
    &lt;span style="color: #7f0055; font-weight: bold;"&gt;return&lt;/span&gt; p;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://www.stacktistics.com/references/java.html"&gt;Java&lt;/a&gt;는 null을 사용합니다. C와 비슷하죠~&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;Object a = null;
if (a != null) {
    &lt;span style="color: #7f0055; font-weight: bold;"&gt;return&lt;/span&gt; a;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://www.stacktistics.com/references/lua.html"&gt;Lua&lt;/a&gt;는 nil 입니다. 사전적으로는 nil은 스포츠 경기에서 '빵점'이라는 뜻을 가지는 군요.&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;a = nil
&lt;span style="color: #7f0055; font-weight: bold;"&gt;if&lt;/span&gt; (not a) then
    &lt;span style="color: #7f0055; font-weight: bold;"&gt;return&lt;/span&gt; a
end
&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://www.stacktistics.com/references/python.html"&gt;Python&lt;/a&gt;은 None 입니다. 아무 것도 없다는 의미겠죠.&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;a = None
&lt;span style="color: #7f0055; font-weight: bold;"&gt;if&lt;/span&gt; (&lt;span style="color: #7f0055; font-weight: bold;"&gt;not&lt;/span&gt; a):
   &lt;span style="color: #7f0055; font-weight: bold;"&gt;return&lt;/span&gt; a
&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://www.stacktistics.com/references/php.html"&gt;PHP&lt;/a&gt;는 NULL 이고요 is_null()을 이용하여 변수가 NULL인지 확인할 수 있습니다.&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: #7f0055;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;$a&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;=&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt; NULL&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;&lt;/span&gt;
&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: #7f0055; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: #7f0055; font-weight: bold;"&gt;is_null&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;$a&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;)&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;)&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;{&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;&lt;/span&gt;
&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: black;"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffffe8; background-image: initial; background-origin: initial; color: #7f0055;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
C와 PHP를 빼고는 모두 제각기 다르군요. 흑...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-7478035397942076931?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kOizEvBje7VkPg4yZRbCJ6F-X4U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kOizEvBje7VkPg4yZRbCJ6F-X4U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kOizEvBje7VkPg4yZRbCJ6F-X4U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kOizEvBje7VkPg4yZRbCJ6F-X4U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/0wyq4wPOO-8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/7478035397942076931/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/lang-null.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7478035397942076931?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/7478035397942076931?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/0wyq4wPOO-8/lang-null.html" title="Lang: 각종 언어의 NULL 처리" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/lang-null.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8NQXY7fyp7ImA9WhZaF0Q.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-3950570300916446914</id><published>2011-07-05T00:37:00.001+09:00</published><updated>2011-07-05T00:38:10.807+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-05T00:38:10.807+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GAE" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Google App Engine: GQL과 Counter에 대해</title><content type="html">Google App Engine의 데이터 저장소를 조회하기 위한 &lt;a href="http://code.google.com/appengine/docs/python/datastore/gqlreference.html"&gt;GQL(Google Query Language) 문법&lt;/a&gt;을 보면 SQL에서 제공하는 COUNT가 없네요. 오늘 간단한 코딩을 하다 가장 사용자들이 즐겨찾는 항목으로 정렬을 할 필요가 있었는데 이 때 COUNT 같은 것을 찾다보니 비슷한것도 없더군요.&lt;br /&gt;
&lt;br /&gt;
조금 고민했습니다. 간단한 해결책이 있더군요. 그냥 Data Model에 사용자의 참여가 새로 있을 때마다 값을 증가시키는 필드를 하나 추가해주었습니다.&lt;br /&gt;
&lt;br /&gt;
class Example(db.Model):&lt;br /&gt;
&amp;nbsp; &amp;nbsp;'''&lt;br /&gt;
&amp;nbsp; &amp;nbsp;participant_counts = db.IntegerProperty()&lt;br /&gt;
&lt;br /&gt;
대충 위와 같은 코드로 필드를 추가하고 코드에서 직접 계산해서 값을 저장해주는 거죠.&lt;br /&gt;
&lt;br /&gt;
나중에 혹시나 해서 stackoverflow에서 검색해보았는데 역시나 이 방법을 추천하고 있네요. 아래 링크를 참고하세요.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/421751/whats-the-best-way-to-count-results-in-gql"&gt;http://stackoverflow.com/questions/421751/whats-the-best-way-to-count-results-in-gql&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-3950570300916446914?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JUHYfSFhDEquss3IUtnnRn0zI9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JUHYfSFhDEquss3IUtnnRn0zI9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JUHYfSFhDEquss3IUtnnRn0zI9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JUHYfSFhDEquss3IUtnnRn0zI9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/VZ84imXMKGo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/3950570300916446914/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/google-app-engine-gql-counter.html#comment-form" title="0개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/3950570300916446914?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/3950570300916446914?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/VZ84imXMKGo/google-app-engine-gql-counter.html" title="Google App Engine: GQL과 Counter에 대해" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/google-app-engine-gql-counter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcMRXs4fCp7ImA9WhZaFkQ.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-9135802921907359202</id><published>2011-07-03T13:08:00.005+09:00</published><updated>2011-07-03T21:28:04.534+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-03T21:28:04.534+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WWDC" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>WWDC 2011: Session 100 What's new in Cocoa Touch</title><content type="html">&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;You can see all of session videos and presentation files of WWDC 2011 from&amp;nbsp;&lt;a href="https://developer.apple.com/videos/wwdc/2011/" style="color: #2288bb; text-decoration: none;"&gt;here&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;NOTE - 이 글은 WWDC 2011 Session 100을 나름대로 정리하였습니다.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;WWDC에서 100번 track은 application framework에 대한 내용들입니다. 개발자들에게 가장 많이 활용되는 분야인만큼 세션의 갯수도 많습니다. 그 시작을 여는 Session 100은 iOS 5에서 Cocoa Touch에 어떤 새로운 점들이 있는지 쭉 살펴보고 해당 내용에 대해 더 자세히 다룰 세션을 소개합니다. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;
일단, 쉬운것 부터 살펴봅니다. 아래 그림과 같이 생긴 UIStepper라는 새로운 컨트롤이 추가된다고합니다.&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-avwX3JBQRMA/Tg_Q2QK8W_I/AAAAAAAABI0/KiAGJl27P5s/s1600/UIStepper.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="56" src="http://2.bp.blogspot.com/-avwX3JBQRMA/Tg_Q2QK8W_I/AAAAAAAABI0/KiAGJl27P5s/s200/UIStepper.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;
minimumValue, maximumValue를 지정할 수 있고 stepValue의 값으로 +, -가 눌릴 때 마다 그 만큼 값이 변경한다고 하네요.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"&gt;Alert에서 사용자의 입력값을 받아들이기 위한 창의적(?)인 다양한 방법들이 시도되었다고 하는데요. iOS 5부터는 다음과 같은 여러 style을 제공하여 사용자 입력을 받을 수 있도록 합니다.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
typedef enum {&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; UIAlertViewStyleDefault = 0,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; UIAlertViewStyleSecureTextInput,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; UIAlertViewStylePlainTextInput,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; UIAlertViewStyleLoginAndPasswordInput&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;} UIAlertViewStyle;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
HDTV와 같은 외부 스크린에 그릴 때 overscan을 보정하는 방법에 대한 내용도 다루고 있는데요. 제가 좀 이해가 안가서 이 부부은 그냥 skip 합니다. 현재는 관심도 없는 부분이네요.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;화면의 밝기를 직접 조정할 수 있도록 2개의 property를 제공합니다. H/W에서 가장 낮게 설정할 수 있는 값이하로 더 줄일 수 있도록 software dimming도 지원하네요.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
@property (nonatomic) CGFloat brightness;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;@property (nonatomic) BOOL wantsSoftwareDimming;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
iOS5에서부터는 영영사전이 기본적으로 탑재됩니다. (무료 사전들 타격 좀 입겠네요. 사용자 입장에서야 대 환영이지만요)&amp;nbsp;UIReferenceLibraryViewController 클래스의 initWithTerm:(NSString *)term을 호출하여 원하는 단어에 대한 사전을 보여줄 수 있습니다.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;a href="http://www.theiloop.com/wp-content/uploads/2011/06/Define-iOS5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.theiloop.com/wp-content/uploads/2011/06/Define-iOS5.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;iOS5에서는 테이블뷰의 cell도 copy &amp;amp; paste가 가능하다네요. 또한, 테이블의 cell을 Interface Builder에서 디자인한 NIB을 사용해서 그릴 수 있다고 합니다. (이거 원래 안되던건가요? 잘 모르겠네요...) 이를 위해 UITableViewCell 클래스에서 아래와 같은 메쏘드를 제공합니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;테이블뷰의 바뀐 점에 대해 더 알고싶다면 "Session 125: UITableView Changes, Tips &amp;amp; Tricks"를 참고하세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;UIImage 클래스에서는 소위 뺑뺑이 애니메이션을 보여주기 위해 아래와 같은 메쏘드가 제공됩니다. images 배열의 이미지들을 duration 간격으로 애니메이션을 보여줍니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;+ (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;Xcode4.3 버전에서는 스토리보드라는 방법으로 UI의 흐름을 디자인할 수 있도록 도와줍니다. Xcode 4 &amp;nbsp;버전부터 Interface Builder의 배경화면이 모눈종이 형태로 보여지고 화면 크기가 논리적으로 확장되더니만 다 이를 위한 사전 준비작업이었네요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://cfile2.uf.tistory.com/image/151DE63B4DF19BA51DED18" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://cfile2.uf.tistory.com/image/151DE63B4DF19BA51DED18" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;Story Board에 대한 자세한 내용은 "Session 309: Introducing Interface Builder Storyboarding"을 참고하세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&amp;nbsp;UIKit의 컨트롤들의 모양을 변경할 수 있는 기능도 추가되었습니다. Appearance라고 하는데요. UIAppearance 프로토콜을 구현한 컨트롤들에 대해서 변경이 가능합니다. 자세한 내용은 "Session 114: Customizing the Appearance of UIKit Controls" 세션을 참고하세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;iBook에서 볼 수 있었던 우아한 자태의 page 넘김 효과를 여러분의 어플에서도 사용할 수 있게되었습니다. 새로이 추가된 컨테이너 뷰 컨트롤러인 UIPageViewController를 이용하면 책과 같이 페이지를 상하좌우로 넘기며 화면 전환을 하는 프로그램을 만들 수 있습니다. 또한, UIViewController에 addChildViewController, removeFromParentViewController 메쏘드를 제공하여 새로운 container를 구현할 수 있도록 지원합니다. 이 두가지 새로운 기능들에 대해서는 "Session 102: Implementing UIViewController Containment" 세션에서 자세히 다룹니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;iCloud에 문서를 저장하고 문서를 불러오기 위해 UIDocument 클래스에 여러 메쏘드 및 property가 추가되었습니다. 자세한 내용은 "Session 116: Storing Documents in iCloud Using iOS 5" 세션을 참고하세요. Core Data 역시 iCloud를 지원하도록 변경되었습니다. "Session 303: What's New in Core Data in iOS"를 살펴보세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;헥헥... 너무 많네요. 이제 얼마 안남았습니다. 정신차리고!&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;iOS 4 버전 부터 제공되던 Asset Library를 사용하여 새로운 Asset Group과 Library를 추가할 수 있습니다. 게임 개발자 분들에게 흥미로울 GameKit의 새로운 변경 사항에 대해서는 "Session 403: Essential Game Technologies for iOS, Part2"를 보세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;잡지/신문 구독을 지원하는 NewsstandKit에 대한 내용은 "Session 504: Building Newsstand Apps" 세션을 참고하세요.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;Twitter에 통합된 iOS 기능들은 "Session 124: Twitter Integration" 세션에서 다루고 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;Image 처리를 위한 Core Image에 관심있는 분들은 "Session 402: Using Core Image on iOS and Mac OS X"을 보시면 됩니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;게임 개발자들의 삶을 편하게 만들 GLKit에 대해서는 "Session 414: Advances in OpenGL ES for iOS 5"을 참고하세요.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;휴... 이제 끝입니다. WWDC 2011 세션만 잘 골라봐도 iOS 5에서 새롭게 제공될 기술들에 대해서 잘 정리해볼 수 있겠네요. 워낙 Apple 개발자들이 발표도 잘해서 즐거운 마음으로 청취가 가능하답니다. 영어의 장벽만 없다면 정말 최고의 iOS 개발자 학습자료 입니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;앞으로 100 track 기준으로 제가 관심있게 본 내용들을 정리해보도록 하겠습니다.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;b&gt;WWDC 2011 정리한 글들:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"&gt;&lt;a href="http://androidkr.blogspot.com/2011/06/wwdc-2011-session-601-apple-platforms.html"&gt;Session 601: Apple Platforms Kickoff&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-9135802921907359202?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nQSx-ZVORuIQmVAM3gJVi9fNAI0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nQSx-ZVORuIQmVAM3gJVi9fNAI0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nQSx-ZVORuIQmVAM3gJVi9fNAI0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nQSx-ZVORuIQmVAM3gJVi9fNAI0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/evj0EQZLM3k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/9135802921907359202/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/07/wwdc-2011-session-100-whats-new-in.html#comment-form" title="1개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/9135802921907359202?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/9135802921907359202?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/evj0EQZLM3k/wwdc-2011-session-100-whats-new-in.html" title="WWDC 2011: Session 100 What's new in Cocoa Touch" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-avwX3JBQRMA/Tg_Q2QK8W_I/AAAAAAAABI0/KiAGJl27P5s/s72-c/UIStepper.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/07/wwdc-2011-session-100-whats-new-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFQns5fyp7ImA9WhZaEko.&quot;"><id>tag:blogger.com,1999:blog-7673110288092522152.post-5145146376350169628</id><published>2011-06-29T01:11:00.000+09:00</published><updated>2011-06-29T01:11:53.527+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-29T01:11:53.527+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WWDC" /><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="iPad" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>WWDC 2011: Session 601 Apple Platforms Kickoff 정리</title><content type="html">You can see all of session videos and presentation files of WWDC 2011 from &lt;a href="https://developer.apple.com/videos/wwdc/2011/"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
NOTE - 이 글은 WWDC 2011 Session 601 내용을 간단히 정리한 내용입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://t1.gstatic.com/images?q=tbn:ANd9GcR4UuUmQ0BqCq_b1G8ftFd1SWNL-x1m27TJxjYfMPU0SATjt-Bz&amp;amp;t=1" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://t1.gstatic.com/images?q=tbn:ANd9GcR4UuUmQ0BqCq_b1G8ftFd1SWNL-x1m27TJxjYfMPU0SATjt-Bz&amp;amp;t=1" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
iOS5와 Mac OS X Lion에 추가된 API가 1500개, 3000개나 된다고 합니다. 이 중 개발자들에게 확 삘이오는 멋진 기능들을 간추려 소개하는 세션입니다. 일종의 종합선물 셋트 같은 세션이라 다양하게 소개는 하고 있지만 기술적으로 자세한 내용은 다루지 않습니다. 그래도, 한번 보면 큰 그림을 그릴 수 있는 세션이니 꼭 살펴보시길.&lt;br /&gt;
&lt;br /&gt;
Apple의 iPhone, iMac 제품들의 영혼이라고 할 수 있는 운영체제는 모두 Mac OS X을 기반으로 하고 있습니다. 하지만 각 제품에 특화된 UI등 서로 다른 부분도 가지고 있죠. iOS5와 Mac OS X Lion에서는 서로의 장점을 교환하여 서로 더 닮은꼴로 진화하게 되었습니다.&amp;nbsp;iOS하면 떠오르는 장점들인 Touch 및 Gesture 기반의 UI, Full Screen UI를 이제 Mac OS X Lion에서도 제공합니다.&lt;br /&gt;
&lt;br /&gt;
문서 작업 시 심심할 때 마다 누르게 되는 Cmd-S 버튼을 더 이상 찾지않게 만드는 Auto Save 기능이 추가되었다고 합니다. 시도 때도 없이 저장되면 기존에 작업하던 원본 문서로 돌아가고 싶을 때도 있겠죠? 이를 위해 문서의 버전 관리 기능도 제공한답니다.&lt;br /&gt;
&lt;br /&gt;
저는 게임 개발에는 손을 대본적은 없지만 GLKit이라는 OpenGL ES API를 수월하게 사용할 수 있도록 하는 API가 제공된다고 하니 얼마나 쉽게 게임을 개발할 수 있는지 한번 테스트 해보고 싶기도 하네요.&lt;br /&gt;
&lt;br /&gt;
사진 촬영 프로그램을 study 목적으로 만들어봤던지라 Core Image API가 iOS5에서 제공된다는 소식이 더 반갑습니다. 기존 작성했던 프로그램에 효과를 주는 여러 필터를 적용하도록 업데이트 해봐야겠습니다.&lt;br /&gt;
&lt;br /&gt;
iOS에서 실행되는 어플리케이션들이 sandbox (아이들이 뛰어노는 모래가 깔린 놀이터를 떠 올리시면 됩니다.) 안에서만 동작하고 외부에는 영향을 미치지 않도록 강제하여 보안성을 높인점을 높이사 Mac OS X에서도 이 sandbox 모델을 차용한다고 합니다. 이미 Windows 보다는 보안성이 좋은 운영체제였는데 더 보안이 강화되겠네요.&lt;br /&gt;
&lt;br /&gt;
이 기능은 엔터프라이즈 환경을 특히 염두에 둔것으로 보이는데요 바로 데이터 보안입니다. (File Valut 2라고 하네요) 제가 회사에서 사용하는 Laptop에서 모든 데이터를 암호화하는 별도의 어플이 깔려있기는한데 이 놈이 혹여나 runtime 성능을 떨어뜨리지는 않을까 사실 좀 찜찜합니다. Mac OS X Lion의 File Valut 2는 Intel CPU H/W가 제공하는 AES-NI에 기반하여 성능 저하가 거의(?) 없다고 하는데요. 요놈 기업에서는 눈독들일만한 기능으로 보입니다.&lt;br /&gt;
&lt;br /&gt;
저는 가입만 하고 거의 쓰지는 않고 읽기 전용으로 활용하는 Twitter 연동 API도 제공하고 있네요. Twitter와 Apple의 밀월 관계에 모종의 deal이 있었던 걸까요? Facebook은 MS 친구니까 멀리한 것 같고... Google은 싫고... 뭐. Twitter 밖에 그렇다할 친구할 놈이 없기는 하네요.&lt;br /&gt;
&lt;br /&gt;
요번 WWDC 2011에서 가장 떠들섞했던 iCloud 관련 API도 당근 추가되었구요 문서를 Metadata와 실제 Data로 구분하여 iCloud상에서 효과적으로 Sync가 가능하도록 하는 Mobile Document 컨셉도 이 세션에서 확인하실 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
마지막으로, 개인적으로는 가장 맘에 드는 기능 중 하나인 Auto Layout이 공개되었네요. 프로그램 UI를 개발하다보면 화면 크기, 여러 나라의 언어 지원 등등의 다양한 변수 때문에 화면 Layout이 엉클어져 영 보기 싫어져서 그만 개발을 때려치는 불상사도 생기곤 하는데요. Auto Layout이 이러한 문제점을 아주 보기좋게 해결해줍니다. 정말 멋진 기능이니 직접 세션 비디오로 확인해보시길.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7673110288092522152-5145146376350169628?l=androidkr.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jKbdpEYnKVfHV1JbW0qpU4MEZl4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jKbdpEYnKVfHV1JbW0qpU4MEZl4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jKbdpEYnKVfHV1JbW0qpU4MEZl4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jKbdpEYnKVfHV1JbW0qpU4MEZl4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mobilesw/~4/WQHM5-hNF-Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://androidkr.blogspot.com/feeds/5145146376350169628/comments/default" title="댓글" /><link rel="replies" type="text/html" href="http://androidkr.blogspot.com/2011/06/wwdc-2011-session-601-apple-platforms.html#comment-form" title="2개의 덧글" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/5145146376350169628?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7673110288092522152/posts/default/5145146376350169628?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/mobilesw/~3/WQHM5-hNF-Q/wwdc-2011-session-601-apple-platforms.html" title="WWDC 2011: Session 601 Apple Platforms Kickoff 정리" /><author><name>김원일 (Wonil Kim)</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://photos1.blogger.com/blogger/3589/611/1600/1.0.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://androidkr.blogspot.com/2011/06/wwdc-2011-session-601-apple-platforms.html</feedburner:origLink></entry></feed>

