You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21124 lines
519 KiB

5 years ago
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
  5. <script type="text/javascript">
  6. var codesite_token = "c6974bcd72eb95455827185f7306e1fa";
  7. var logged_in_user_email = "Dung.Dang@gmail.com";
  8. var relative_base_url = "";
  9. </script>
  10. <title>PImage.java -
  11. processing -
  12. Project Hosting on Google Code</title>
  13. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
  14. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
  15. <meta name="ROBOTS" content="NOARCHIVE">
  16. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_core.css">
  17. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_detail.css" >
  18. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_sb_20080522.css" >
  19. <!--[if IE]>
  20. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_ie.css" >
  21. <![endif]-->
  22. <style type="text/css">
  23. .menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
  24. .menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
  25. .menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
  26. tr.inline_comment {
  27. background: #fff;
  28. vertical-align: top;
  29. }
  30. div.draft, div.published {
  31. padding: .3em;
  32. border: 1px solid #999;
  33. margin-bottom: .1em;
  34. font-family: arial, sans-serif;
  35. max-width: 60em;
  36. }
  37. div.draft {
  38. background: #ffa;
  39. }
  40. div.published {
  41. background: #e5ecf9;
  42. }
  43. div.published .body, div.draft .body {
  44. padding: .5em .1em .1em .1em;
  45. max-width: 60em;
  46. white-space: pre-wrap;
  47. white-space: -moz-pre-wrap;
  48. white-space: -pre-wrap;
  49. white-space: -o-pre-wrap;
  50. word-wrap: break-word;
  51. font-size: 1em;
  52. }
  53. div.draft .actions {
  54. margin-left: 1em;
  55. font-size: 90%;
  56. }
  57. div.draft form {
  58. padding: .5em .5em .5em 0;
  59. }
  60. div.draft textarea, div.published textarea {
  61. width: 95%;
  62. height: 10em;
  63. font-family: arial, sans-serif;
  64. margin-bottom: .5em;
  65. }
  66. .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
  67. background-color: white;
  68. height: 2px;
  69. }
  70. .cursor, .cursor td {
  71. background-color: darkblue;
  72. height: 2px;
  73. display: '';
  74. }
  75. .list {
  76. border: 1px solid white;
  77. margin-bottom:0;
  78. }
  79. </style>
  80. </head>
  81. <body class="t4">
  82. <script type="text/javascript">
  83. var _gaq = _gaq || [];
  84. _gaq.push(
  85. ['siteTracker._setAccount', 'UA-18071-1'],
  86. ['siteTracker._trackPageview']);
  87. (function() {
  88. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  89. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  90. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
  91. })();
  92. </script>
  93. <div class="headbg">
  94. <div id="gaia">
  95. <span>
  96. <b>Dung.Dang@gmail.com</b>
  97. | <a href="/u/@VhVRRVJYBRNNWwl6/" id="projects-dropdown" onclick="return false;"
  98. ><u>My favorites</u> <small>&#9660;</small></a>
  99. | <a href="/u/@VhVRRVJYBRNNWwl6/" onclick="_CS_click('/gb/ph/profile');"
  100. title="Profile, Updates, and Settings"
  101. ><u>Profile</u></a>
  102. | <a href="https://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fprocessing%2Fsource%2Fbrowse%2Ftrunk%2Fprocessing%2Fcore%2Fsrc%2Fprocessing%2Fcore%2FPImage.java"
  103. onclick="_CS_click('/gb/ph/signout');"
  104. ><u>Sign out</u></a>
  105. </span>
  106. </div>
  107. <div class="gbh" style="left: 0pt;"></div>
  108. <div class="gbh" style="right: 0pt;"></div>
  109. <div style="height: 1px"></div>
  110. <!--[if lte IE 7]>
  111. <div style="text-align:center;">
  112. Your version of Internet Explorer is not supported. Try a browser that
  113. contributes to open source, such as <a href="http://www.firefox.com">Firefox</a>,
  114. <a href="http://www.google.com/chrome">Google Chrome</a>, or
  115. <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.
  116. </div>
  117. <![endif]-->
  118. <table style="padding:0px; margin: 0px 0px 10px 0px; width:100%" cellpadding="0" cellspacing="0">
  119. <tr style="height: 58px;">
  120. <td id="plogo">
  121. <a href="/p/processing/">
  122. <img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="Logo">
  123. </a>
  124. </td>
  125. <td style="padding-left: 0.5em">
  126. <div id="pname">
  127. <a href="/p/processing/">processing</a>
  128. </div>
  129. <div id="psum">
  130. <a id="project_summary_link" href="/p/processing/" >An open source programming language and environment for images, animation, and interactions.</a>
  131. </div>
  132. </td>
  133. <td style="white-space:nowrap;text-align:right; vertical-align:bottom;">
  134. <form action="/hosting/search">
  135. <input size="30" name="q" value="" type="text">
  136. <input type="submit" name="projectsearch" value="Search projects" >
  137. </form>
  138. </tr>
  139. </table>
  140. </div>
  141. <div id="mt" class="gtb">
  142. <a href="/p/processing/" class="tab ">Project&nbsp;Home</a>
  143. <a href="/p/processing/downloads/list" class="tab ">Downloads</a>
  144. <a href="/p/processing/w/list" class="tab ">Wiki</a>
  145. <a href="/p/processing/issues/list"
  146. class="tab ">Issues</a>
  147. <a href="/p/processing/source/checkout"
  148. class="tab active">Source</a>
  149. <div class=gtbc></div>
  150. </div>
  151. <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
  152. <tr>
  153. <td class="subt">
  154. <div class="st2">
  155. <div class="isf">
  156. <span class="inst1"><a href="/p/processing/source/checkout">Checkout</a></span> &nbsp;
  157. <span class="inst2"><a href="/p/processing/source/browse/trunk/processing">Browse</a></span> &nbsp;
  158. <span class="inst3"><a href="/p/processing/source/list">Changes</a></span> &nbsp;
  159. <form action="http://www.google.com/codesearch" method="get" style="display:inline"
  160. onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://processing\\.googlecode\\.com'">
  161. <input type="hidden" name="q" id="codesearchq" value="">
  162. <input type="text" maxlength="2048" size="38" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
  163. </form>
  164. </div>
  165. </div>
  166. </td>
  167. <td align="right" valign="top" class="bevel-right"></td>
  168. </tr>
  169. </table>
  170. <script type="text/javascript">
  171. var cancelBubble = false;
  172. function _go(url) { document.location = url; }
  173. </script>
  174. <div id="maincol"
  175. >
  176. <!-- IE -->
  177. <div class="expand">
  178. <div id="colcontrol">
  179. <style type="text/css">
  180. #file_flipper { white-space: nowrap; padding-right: 2em; }
  181. #file_flipper.hidden { display: none; }
  182. #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
  183. #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
  184. </style>
  185. <table id="nav_and_rev" class="list"
  186. cellpadding="0" cellspacing="0" width="100%">
  187. <tr>
  188. <td nowrap="nowrap" class="src_crumbs src_nav" width="33%">
  189. <strong class="src_nav">Source path:&nbsp;</strong>
  190. <span id="crumb_root">
  191. <a href="/p/processing/source/browse/">svn</a>/&nbsp;</span>
  192. <span id="crumb_links" class="ifClosed"><a href="/p/processing/source/browse/trunk/">trunk</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/">core</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/">src</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/">core</a><span class="sp">/&nbsp;</span>PImage.java</span>
  193. </td>
  194. <td nowrap="nowrap" width="33%" align="center">
  195. <a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PImage.java?edit=1"
  196. ><img src="http://www.gstatic.com/codesite/ph/images/pencil-y14.png"
  197. class="edit_icon">Edit file</a>
  198. </td>
  199. <td nowrap="nowrap" width="33%" align="right">
  200. <table cellpadding="0" cellspacing="0" style="font-size: 100%"><tr>
  201. <td class="flipper">
  202. <ul class="leftside">
  203. <li><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PImage.java?r=7748" title="Previous">&lsaquo;r7748</a></li>
  204. </ul>
  205. </td>
  206. <td class="flipper"><b>r7768</b></td>
  207. </tr></table>
  208. </td>
  209. </tr>
  210. </table>
  211. <div class="fc">
  212. <style type="text/css">
  213. .undermouse span {
  214. background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
  215. </style>
  216. <table class="opened" id="review_comment_area"
  217. ><tr>
  218. <td id="nums">
  219. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  220. <pre><table width="100%" id="nums_table_0"><tr id="gr_svn7768_1"
  221. ><td id="1"><a href="#1">1</a></td></tr
  222. ><tr id="gr_svn7768_2"
  223. ><td id="2"><a href="#2">2</a></td></tr
  224. ><tr id="gr_svn7768_3"
  225. ><td id="3"><a href="#3">3</a></td></tr
  226. ><tr id="gr_svn7768_4"
  227. ><td id="4"><a href="#4">4</a></td></tr
  228. ><tr id="gr_svn7768_5"
  229. ><td id="5"><a href="#5">5</a></td></tr
  230. ><tr id="gr_svn7768_6"
  231. ><td id="6"><a href="#6">6</a></td></tr
  232. ><tr id="gr_svn7768_7"
  233. ><td id="7"><a href="#7">7</a></td></tr
  234. ><tr id="gr_svn7768_8"
  235. ><td id="8"><a href="#8">8</a></td></tr
  236. ><tr id="gr_svn7768_9"
  237. ><td id="9"><a href="#9">9</a></td></tr
  238. ><tr id="gr_svn7768_10"
  239. ><td id="10"><a href="#10">10</a></td></tr
  240. ><tr id="gr_svn7768_11"
  241. ><td id="11"><a href="#11">11</a></td></tr
  242. ><tr id="gr_svn7768_12"
  243. ><td id="12"><a href="#12">12</a></td></tr
  244. ><tr id="gr_svn7768_13"
  245. ><td id="13"><a href="#13">13</a></td></tr
  246. ><tr id="gr_svn7768_14"
  247. ><td id="14"><a href="#14">14</a></td></tr
  248. ><tr id="gr_svn7768_15"
  249. ><td id="15"><a href="#15">15</a></td></tr
  250. ><tr id="gr_svn7768_16"
  251. ><td id="16"><a href="#16">16</a></td></tr
  252. ><tr id="gr_svn7768_17"
  253. ><td id="17"><a href="#17">17</a></td></tr
  254. ><tr id="gr_svn7768_18"
  255. ><td id="18"><a href="#18">18</a></td></tr
  256. ><tr id="gr_svn7768_19"
  257. ><td id="19"><a href="#19">19</a></td></tr
  258. ><tr id="gr_svn7768_20"
  259. ><td id="20"><a href="#20">20</a></td></tr
  260. ><tr id="gr_svn7768_21"
  261. ><td id="21"><a href="#21">21</a></td></tr
  262. ><tr id="gr_svn7768_22"
  263. ><td id="22"><a href="#22">22</a></td></tr
  264. ><tr id="gr_svn7768_23"
  265. ><td id="23"><a href="#23">23</a></td></tr
  266. ><tr id="gr_svn7768_24"
  267. ><td id="24"><a href="#24">24</a></td></tr
  268. ><tr id="gr_svn7768_25"
  269. ><td id="25"><a href="#25">25</a></td></tr
  270. ><tr id="gr_svn7768_26"
  271. ><td id="26"><a href="#26">26</a></td></tr
  272. ><tr id="gr_svn7768_27"
  273. ><td id="27"><a href="#27">27</a></td></tr
  274. ><tr id="gr_svn7768_28"
  275. ><td id="28"><a href="#28">28</a></td></tr
  276. ><tr id="gr_svn7768_29"
  277. ><td id="29"><a href="#29">29</a></td></tr
  278. ><tr id="gr_svn7768_30"
  279. ><td id="30"><a href="#30">30</a></td></tr
  280. ><tr id="gr_svn7768_31"
  281. ><td id="31"><a href="#31">31</a></td></tr
  282. ><tr id="gr_svn7768_32"
  283. ><td id="32"><a href="#32">32</a></td></tr
  284. ><tr id="gr_svn7768_33"
  285. ><td id="33"><a href="#33">33</a></td></tr
  286. ><tr id="gr_svn7768_34"
  287. ><td id="34"><a href="#34">34</a></td></tr
  288. ><tr id="gr_svn7768_35"
  289. ><td id="35"><a href="#35">35</a></td></tr
  290. ><tr id="gr_svn7768_36"
  291. ><td id="36"><a href="#36">36</a></td></tr
  292. ><tr id="gr_svn7768_37"
  293. ><td id="37"><a href="#37">37</a></td></tr
  294. ><tr id="gr_svn7768_38"
  295. ><td id="38"><a href="#38">38</a></td></tr
  296. ><tr id="gr_svn7768_39"
  297. ><td id="39"><a href="#39">39</a></td></tr
  298. ><tr id="gr_svn7768_40"
  299. ><td id="40"><a href="#40">40</a></td></tr
  300. ><tr id="gr_svn7768_41"
  301. ><td id="41"><a href="#41">41</a></td></tr
  302. ><tr id="gr_svn7768_42"
  303. ><td id="42"><a href="#42">42</a></td></tr
  304. ><tr id="gr_svn7768_43"
  305. ><td id="43"><a href="#43">43</a></td></tr
  306. ><tr id="gr_svn7768_44"
  307. ><td id="44"><a href="#44">44</a></td></tr
  308. ><tr id="gr_svn7768_45"
  309. ><td id="45"><a href="#45">45</a></td></tr
  310. ><tr id="gr_svn7768_46"
  311. ><td id="46"><a href="#46">46</a></td></tr
  312. ><tr id="gr_svn7768_47"
  313. ><td id="47"><a href="#47">47</a></td></tr
  314. ><tr id="gr_svn7768_48"
  315. ><td id="48"><a href="#48">48</a></td></tr
  316. ><tr id="gr_svn7768_49"
  317. ><td id="49"><a href="#49">49</a></td></tr
  318. ><tr id="gr_svn7768_50"
  319. ><td id="50"><a href="#50">50</a></td></tr
  320. ><tr id="gr_svn7768_51"
  321. ><td id="51"><a href="#51">51</a></td></tr
  322. ><tr id="gr_svn7768_52"
  323. ><td id="52"><a href="#52">52</a></td></tr
  324. ><tr id="gr_svn7768_53"
  325. ><td id="53"><a href="#53">53</a></td></tr
  326. ><tr id="gr_svn7768_54"
  327. ><td id="54"><a href="#54">54</a></td></tr
  328. ><tr id="gr_svn7768_55"
  329. ><td id="55"><a href="#55">55</a></td></tr
  330. ><tr id="gr_svn7768_56"
  331. ><td id="56"><a href="#56">56</a></td></tr
  332. ><tr id="gr_svn7768_57"
  333. ><td id="57"><a href="#57">57</a></td></tr
  334. ><tr id="gr_svn7768_58"
  335. ><td id="58"><a href="#58">58</a></td></tr
  336. ><tr id="gr_svn7768_59"
  337. ><td id="59"><a href="#59">59</a></td></tr
  338. ><tr id="gr_svn7768_60"
  339. ><td id="60"><a href="#60">60</a></td></tr
  340. ><tr id="gr_svn7768_61"
  341. ><td id="61"><a href="#61">61</a></td></tr
  342. ><tr id="gr_svn7768_62"
  343. ><td id="62"><a href="#62">62</a></td></tr
  344. ><tr id="gr_svn7768_63"
  345. ><td id="63"><a href="#63">63</a></td></tr
  346. ><tr id="gr_svn7768_64"
  347. ><td id="64"><a href="#64">64</a></td></tr
  348. ><tr id="gr_svn7768_65"
  349. ><td id="65"><a href="#65">65</a></td></tr
  350. ><tr id="gr_svn7768_66"
  351. ><td id="66"><a href="#66">66</a></td></tr
  352. ><tr id="gr_svn7768_67"
  353. ><td id="67"><a href="#67">67</a></td></tr
  354. ><tr id="gr_svn7768_68"
  355. ><td id="68"><a href="#68">68</a></td></tr
  356. ><tr id="gr_svn7768_69"
  357. ><td id="69"><a href="#69">69</a></td></tr
  358. ><tr id="gr_svn7768_70"
  359. ><td id="70"><a href="#70">70</a></td></tr
  360. ><tr id="gr_svn7768_71"
  361. ><td id="71"><a href="#71">71</a></td></tr
  362. ><tr id="gr_svn7768_72"
  363. ><td id="72"><a href="#72">72</a></td></tr
  364. ><tr id="gr_svn7768_73"
  365. ><td id="73"><a href="#73">73</a></td></tr
  366. ><tr id="gr_svn7768_74"
  367. ><td id="74"><a href="#74">74</a></td></tr
  368. ><tr id="gr_svn7768_75"
  369. ><td id="75"><a href="#75">75</a></td></tr
  370. ><tr id="gr_svn7768_76"
  371. ><td id="76"><a href="#76">76</a></td></tr
  372. ><tr id="gr_svn7768_77"
  373. ><td id="77"><a href="#77">77</a></td></tr
  374. ><tr id="gr_svn7768_78"
  375. ><td id="78"><a href="#78">78</a></td></tr
  376. ><tr id="gr_svn7768_79"
  377. ><td id="79"><a href="#79">79</a></td></tr
  378. ><tr id="gr_svn7768_80"
  379. ><td id="80"><a href="#80">80</a></td></tr
  380. ><tr id="gr_svn7768_81"
  381. ><td id="81"><a href="#81">81</a></td></tr
  382. ><tr id="gr_svn7768_82"
  383. ><td id="82"><a href="#82">82</a></td></tr
  384. ><tr id="gr_svn7768_83"
  385. ><td id="83"><a href="#83">83</a></td></tr
  386. ><tr id="gr_svn7768_84"
  387. ><td id="84"><a href="#84">84</a></td></tr
  388. ><tr id="gr_svn7768_85"
  389. ><td id="85"><a href="#85">85</a></td></tr
  390. ><tr id="gr_svn7768_86"
  391. ><td id="86"><a href="#86">86</a></td></tr
  392. ><tr id="gr_svn7768_87"
  393. ><td id="87"><a href="#87">87</a></td></tr
  394. ><tr id="gr_svn7768_88"
  395. ><td id="88"><a href="#88">88</a></td></tr
  396. ><tr id="gr_svn7768_89"
  397. ><td id="89"><a href="#89">89</a></td></tr
  398. ><tr id="gr_svn7768_90"
  399. ><td id="90"><a href="#90">90</a></td></tr
  400. ><tr id="gr_svn7768_91"
  401. ><td id="91"><a href="#91">91</a></td></tr
  402. ><tr id="gr_svn7768_92"
  403. ><td id="92"><a href="#92">92</a></td></tr
  404. ><tr id="gr_svn7768_93"
  405. ><td id="93"><a href="#93">93</a></td></tr
  406. ><tr id="gr_svn7768_94"
  407. ><td id="94"><a href="#94">94</a></td></tr
  408. ><tr id="gr_svn7768_95"
  409. ><td id="95"><a href="#95">95</a></td></tr
  410. ><tr id="gr_svn7768_96"
  411. ><td id="96"><a href="#96">96</a></td></tr
  412. ><tr id="gr_svn7768_97"
  413. ><td id="97"><a href="#97">97</a></td></tr
  414. ><tr id="gr_svn7768_98"
  415. ><td id="98"><a href="#98">98</a></td></tr
  416. ><tr id="gr_svn7768_99"
  417. ><td id="99"><a href="#99">99</a></td></tr
  418. ><tr id="gr_svn7768_100"
  419. ><td id="100"><a href="#100">100</a></td></tr
  420. ><tr id="gr_svn7768_101"
  421. ><td id="101"><a href="#101">101</a></td></tr
  422. ><tr id="gr_svn7768_102"
  423. ><td id="102"><a href="#102">102</a></td></tr
  424. ><tr id="gr_svn7768_103"
  425. ><td id="103"><a href="#103">103</a></td></tr
  426. ><tr id="gr_svn7768_104"
  427. ><td id="104"><a href="#104">104</a></td></tr
  428. ><tr id="gr_svn7768_105"
  429. ><td id="105"><a href="#105">105</a></td></tr
  430. ><tr id="gr_svn7768_106"
  431. ><td id="106"><a href="#106">106</a></td></tr
  432. ><tr id="gr_svn7768_107"
  433. ><td id="107"><a href="#107">107</a></td></tr
  434. ><tr id="gr_svn7768_108"
  435. ><td id="108"><a href="#108">108</a></td></tr
  436. ><tr id="gr_svn7768_109"
  437. ><td id="109"><a href="#109">109</a></td></tr
  438. ><tr id="gr_svn7768_110"
  439. ><td id="110"><a href="#110">110</a></td></tr
  440. ><tr id="gr_svn7768_111"
  441. ><td id="111"><a href="#111">111</a></td></tr
  442. ><tr id="gr_svn7768_112"
  443. ><td id="112"><a href="#112">112</a></td></tr
  444. ><tr id="gr_svn7768_113"
  445. ><td id="113"><a href="#113">113</a></td></tr
  446. ><tr id="gr_svn7768_114"
  447. ><td id="114"><a href="#114">114</a></td></tr
  448. ><tr id="gr_svn7768_115"
  449. ><td id="115"><a href="#115">115</a></td></tr
  450. ><tr id="gr_svn7768_116"
  451. ><td id="116"><a href="#116">116</a></td></tr
  452. ><tr id="gr_svn7768_117"
  453. ><td id="117"><a href="#117">117</a></td></tr
  454. ><tr id="gr_svn7768_118"
  455. ><td id="118"><a href="#118">118</a></td></tr
  456. ><tr id="gr_svn7768_119"
  457. ><td id="119"><a href="#119">119</a></td></tr
  458. ><tr id="gr_svn7768_120"
  459. ><td id="120"><a href="#120">120</a></td></tr
  460. ><tr id="gr_svn7768_121"
  461. ><td id="121"><a href="#121">121</a></td></tr
  462. ><tr id="gr_svn7768_122"
  463. ><td id="122"><a href="#122">122</a></td></tr
  464. ><tr id="gr_svn7768_123"
  465. ><td id="123"><a href="#123">123</a></td></tr
  466. ><tr id="gr_svn7768_124"
  467. ><td id="124"><a href="#124">124</a></td></tr
  468. ><tr id="gr_svn7768_125"
  469. ><td id="125"><a href="#125">125</a></td></tr
  470. ><tr id="gr_svn7768_126"
  471. ><td id="126"><a href="#126">126</a></td></tr
  472. ><tr id="gr_svn7768_127"
  473. ><td id="127"><a href="#127">127</a></td></tr
  474. ><tr id="gr_svn7768_128"
  475. ><td id="128"><a href="#128">128</a></td></tr
  476. ><tr id="gr_svn7768_129"
  477. ><td id="129"><a href="#129">129</a></td></tr
  478. ><tr id="gr_svn7768_130"
  479. ><td id="130"><a href="#130">130</a></td></tr
  480. ><tr id="gr_svn7768_131"
  481. ><td id="131"><a href="#131">131</a></td></tr
  482. ><tr id="gr_svn7768_132"
  483. ><td id="132"><a href="#132">132</a></td></tr
  484. ><tr id="gr_svn7768_133"
  485. ><td id="133"><a href="#133">133</a></td></tr
  486. ><tr id="gr_svn7768_134"
  487. ><td id="134"><a href="#134">134</a></td></tr
  488. ><tr id="gr_svn7768_135"
  489. ><td id="135"><a href="#135">135</a></td></tr
  490. ><tr id="gr_svn7768_136"
  491. ><td id="136"><a href="#136">136</a></td></tr
  492. ><tr id="gr_svn7768_137"
  493. ><td id="137"><a href="#137">137</a></td></tr
  494. ><tr id="gr_svn7768_138"
  495. ><td id="138"><a href="#138">138</a></td></tr
  496. ><tr id="gr_svn7768_139"
  497. ><td id="139"><a href="#139">139</a></td></tr
  498. ><tr id="gr_svn7768_140"
  499. ><td id="140"><a href="#140">140</a></td></tr
  500. ><tr id="gr_svn7768_141"
  501. ><td id="141"><a href="#141">141</a></td></tr
  502. ><tr id="gr_svn7768_142"
  503. ><td id="142"><a href="#142">142</a></td></tr
  504. ><tr id="gr_svn7768_143"
  505. ><td id="143"><a href="#143">143</a></td></tr
  506. ><tr id="gr_svn7768_144"
  507. ><td id="144"><a href="#144">144</a></td></tr
  508. ><tr id="gr_svn7768_145"
  509. ><td id="145"><a href="#145">145</a></td></tr
  510. ><tr id="gr_svn7768_146"
  511. ><td id="146"><a href="#146">146</a></td></tr
  512. ><tr id="gr_svn7768_147"
  513. ><td id="147"><a href="#147">147</a></td></tr
  514. ><tr id="gr_svn7768_148"
  515. ><td id="148"><a href="#148">148</a></td></tr
  516. ><tr id="gr_svn7768_149"
  517. ><td id="149"><a href="#149">149</a></td></tr
  518. ><tr id="gr_svn7768_150"
  519. ><td id="150"><a href="#150">150</a></td></tr
  520. ><tr id="gr_svn7768_151"
  521. ><td id="151"><a href="#151">151</a></td></tr
  522. ><tr id="gr_svn7768_152"
  523. ><td id="152"><a href="#152">152</a></td></tr
  524. ><tr id="gr_svn7768_153"
  525. ><td id="153"><a href="#153">153</a></td></tr
  526. ><tr id="gr_svn7768_154"
  527. ><td id="154"><a href="#154">154</a></td></tr
  528. ><tr id="gr_svn7768_155"
  529. ><td id="155"><a href="#155">155</a></td></tr
  530. ><tr id="gr_svn7768_156"
  531. ><td id="156"><a href="#156">156</a></td></tr
  532. ><tr id="gr_svn7768_157"
  533. ><td id="157"><a href="#157">157</a></td></tr
  534. ><tr id="gr_svn7768_158"
  535. ><td id="158"><a href="#158">158</a></td></tr
  536. ><tr id="gr_svn7768_159"
  537. ><td id="159"><a href="#159">159</a></td></tr
  538. ><tr id="gr_svn7768_160"
  539. ><td id="160"><a href="#160">160</a></td></tr
  540. ><tr id="gr_svn7768_161"
  541. ><td id="161"><a href="#161">161</a></td></tr
  542. ><tr id="gr_svn7768_162"
  543. ><td id="162"><a href="#162">162</a></td></tr
  544. ><tr id="gr_svn7768_163"
  545. ><td id="163"><a href="#163">163</a></td></tr
  546. ><tr id="gr_svn7768_164"
  547. ><td id="164"><a href="#164">164</a></td></tr
  548. ><tr id="gr_svn7768_165"
  549. ><td id="165"><a href="#165">165</a></td></tr
  550. ><tr id="gr_svn7768_166"
  551. ><td id="166"><a href="#166">166</a></td></tr
  552. ><tr id="gr_svn7768_167"
  553. ><td id="167"><a href="#167">167</a></td></tr
  554. ><tr id="gr_svn7768_168"
  555. ><td id="168"><a href="#168">168</a></td></tr
  556. ><tr id="gr_svn7768_169"
  557. ><td id="169"><a href="#169">169</a></td></tr
  558. ><tr id="gr_svn7768_170"
  559. ><td id="170"><a href="#170">170</a></td></tr
  560. ><tr id="gr_svn7768_171"
  561. ><td id="171"><a href="#171">171</a></td></tr
  562. ><tr id="gr_svn7768_172"
  563. ><td id="172"><a href="#172">172</a></td></tr
  564. ><tr id="gr_svn7768_173"
  565. ><td id="173"><a href="#173">173</a></td></tr
  566. ><tr id="gr_svn7768_174"
  567. ><td id="174"><a href="#174">174</a></td></tr
  568. ><tr id="gr_svn7768_175"
  569. ><td id="175"><a href="#175">175</a></td></tr
  570. ><tr id="gr_svn7768_176"
  571. ><td id="176"><a href="#176">176</a></td></tr
  572. ><tr id="gr_svn7768_177"
  573. ><td id="177"><a href="#177">177</a></td></tr
  574. ><tr id="gr_svn7768_178"
  575. ><td id="178"><a href="#178">178</a></td></tr
  576. ><tr id="gr_svn7768_179"
  577. ><td id="179"><a href="#179">179</a></td></tr
  578. ><tr id="gr_svn7768_180"
  579. ><td id="180"><a href="#180">180</a></td></tr
  580. ><tr id="gr_svn7768_181"
  581. ><td id="181"><a href="#181">181</a></td></tr
  582. ><tr id="gr_svn7768_182"
  583. ><td id="182"><a href="#182">182</a></td></tr
  584. ><tr id="gr_svn7768_183"
  585. ><td id="183"><a href="#183">183</a></td></tr
  586. ><tr id="gr_svn7768_184"
  587. ><td id="184"><a href="#184">184</a></td></tr
  588. ><tr id="gr_svn7768_185"
  589. ><td id="185"><a href="#185">185</a></td></tr
  590. ><tr id="gr_svn7768_186"
  591. ><td id="186"><a href="#186">186</a></td></tr
  592. ><tr id="gr_svn7768_187"
  593. ><td id="187"><a href="#187">187</a></td></tr
  594. ><tr id="gr_svn7768_188"
  595. ><td id="188"><a href="#188">188</a></td></tr
  596. ><tr id="gr_svn7768_189"
  597. ><td id="189"><a href="#189">189</a></td></tr
  598. ><tr id="gr_svn7768_190"
  599. ><td id="190"><a href="#190">190</a></td></tr
  600. ><tr id="gr_svn7768_191"
  601. ><td id="191"><a href="#191">191</a></td></tr
  602. ><tr id="gr_svn7768_192"
  603. ><td id="192"><a href="#192">192</a></td></tr
  604. ><tr id="gr_svn7768_193"
  605. ><td id="193"><a href="#193">193</a></td></tr
  606. ><tr id="gr_svn7768_194"
  607. ><td id="194"><a href="#194">194</a></td></tr
  608. ><tr id="gr_svn7768_195"
  609. ><td id="195"><a href="#195">195</a></td></tr
  610. ><tr id="gr_svn7768_196"
  611. ><td id="196"><a href="#196">196</a></td></tr
  612. ><tr id="gr_svn7768_197"
  613. ><td id="197"><a href="#197">197</a></td></tr
  614. ><tr id="gr_svn7768_198"
  615. ><td id="198"><a href="#198">198</a></td></tr
  616. ><tr id="gr_svn7768_199"
  617. ><td id="199"><a href="#199">199</a></td></tr
  618. ><tr id="gr_svn7768_200"
  619. ><td id="200"><a href="#200">200</a></td></tr
  620. ><tr id="gr_svn7768_201"
  621. ><td id="201"><a href="#201">201</a></td></tr
  622. ><tr id="gr_svn7768_202"
  623. ><td id="202"><a href="#202">202</a></td></tr
  624. ><tr id="gr_svn7768_203"
  625. ><td id="203"><a href="#203">203</a></td></tr
  626. ><tr id="gr_svn7768_204"
  627. ><td id="204"><a href="#204">204</a></td></tr
  628. ><tr id="gr_svn7768_205"
  629. ><td id="205"><a href="#205">205</a></td></tr
  630. ><tr id="gr_svn7768_206"
  631. ><td id="206"><a href="#206">206</a></td></tr
  632. ><tr id="gr_svn7768_207"
  633. ><td id="207"><a href="#207">207</a></td></tr
  634. ><tr id="gr_svn7768_208"
  635. ><td id="208"><a href="#208">208</a></td></tr
  636. ><tr id="gr_svn7768_209"
  637. ><td id="209"><a href="#209">209</a></td></tr
  638. ><tr id="gr_svn7768_210"
  639. ><td id="210"><a href="#210">210</a></td></tr
  640. ><tr id="gr_svn7768_211"
  641. ><td id="211"><a href="#211">211</a></td></tr
  642. ><tr id="gr_svn7768_212"
  643. ><td id="212"><a href="#212">212</a></td></tr
  644. ><tr id="gr_svn7768_213"
  645. ><td id="213"><a href="#213">213</a></td></tr
  646. ><tr id="gr_svn7768_214"
  647. ><td id="214"><a href="#214">214</a></td></tr
  648. ><tr id="gr_svn7768_215"
  649. ><td id="215"><a href="#215">215</a></td></tr
  650. ><tr id="gr_svn7768_216"
  651. ><td id="216"><a href="#216">216</a></td></tr
  652. ><tr id="gr_svn7768_217"
  653. ><td id="217"><a href="#217">217</a></td></tr
  654. ><tr id="gr_svn7768_218"
  655. ><td id="218"><a href="#218">218</a></td></tr
  656. ><tr id="gr_svn7768_219"
  657. ><td id="219"><a href="#219">219</a></td></tr
  658. ><tr id="gr_svn7768_220"
  659. ><td id="220"><a href="#220">220</a></td></tr
  660. ><tr id="gr_svn7768_221"
  661. ><td id="221"><a href="#221">221</a></td></tr
  662. ><tr id="gr_svn7768_222"
  663. ><td id="222"><a href="#222">222</a></td></tr
  664. ><tr id="gr_svn7768_223"
  665. ><td id="223"><a href="#223">223</a></td></tr
  666. ><tr id="gr_svn7768_224"
  667. ><td id="224"><a href="#224">224</a></td></tr
  668. ><tr id="gr_svn7768_225"
  669. ><td id="225"><a href="#225">225</a></td></tr
  670. ><tr id="gr_svn7768_226"
  671. ><td id="226"><a href="#226">226</a></td></tr
  672. ><tr id="gr_svn7768_227"
  673. ><td id="227"><a href="#227">227</a></td></tr
  674. ><tr id="gr_svn7768_228"
  675. ><td id="228"><a href="#228">228</a></td></tr
  676. ><tr id="gr_svn7768_229"
  677. ><td id="229"><a href="#229">229</a></td></tr
  678. ><tr id="gr_svn7768_230"
  679. ><td id="230"><a href="#230">230</a></td></tr
  680. ><tr id="gr_svn7768_231"
  681. ><td id="231"><a href="#231">231</a></td></tr
  682. ><tr id="gr_svn7768_232"
  683. ><td id="232"><a href="#232">232</a></td></tr
  684. ><tr id="gr_svn7768_233"
  685. ><td id="233"><a href="#233">233</a></td></tr
  686. ><tr id="gr_svn7768_234"
  687. ><td id="234"><a href="#234">234</a></td></tr
  688. ><tr id="gr_svn7768_235"
  689. ><td id="235"><a href="#235">235</a></td></tr
  690. ><tr id="gr_svn7768_236"
  691. ><td id="236"><a href="#236">236</a></td></tr
  692. ><tr id="gr_svn7768_237"
  693. ><td id="237"><a href="#237">237</a></td></tr
  694. ><tr id="gr_svn7768_238"
  695. ><td id="238"><a href="#238">238</a></td></tr
  696. ><tr id="gr_svn7768_239"
  697. ><td id="239"><a href="#239">239</a></td></tr
  698. ><tr id="gr_svn7768_240"
  699. ><td id="240"><a href="#240">240</a></td></tr
  700. ><tr id="gr_svn7768_241"
  701. ><td id="241"><a href="#241">241</a></td></tr
  702. ><tr id="gr_svn7768_242"
  703. ><td id="242"><a href="#242">242</a></td></tr
  704. ><tr id="gr_svn7768_243"
  705. ><td id="243"><a href="#243">243</a></td></tr
  706. ><tr id="gr_svn7768_244"
  707. ><td id="244"><a href="#244">244</a></td></tr
  708. ><tr id="gr_svn7768_245"
  709. ><td id="245"><a href="#245">245</a></td></tr
  710. ><tr id="gr_svn7768_246"
  711. ><td id="246"><a href="#246">246</a></td></tr
  712. ><tr id="gr_svn7768_247"
  713. ><td id="247"><a href="#247">247</a></td></tr
  714. ><tr id="gr_svn7768_248"
  715. ><td id="248"><a href="#248">248</a></td></tr
  716. ><tr id="gr_svn7768_249"
  717. ><td id="249"><a href="#249">249</a></td></tr
  718. ><tr id="gr_svn7768_250"
  719. ><td id="250"><a href="#250">250</a></td></tr
  720. ><tr id="gr_svn7768_251"
  721. ><td id="251"><a href="#251">251</a></td></tr
  722. ><tr id="gr_svn7768_252"
  723. ><td id="252"><a href="#252">252</a></td></tr
  724. ><tr id="gr_svn7768_253"
  725. ><td id="253"><a href="#253">253</a></td></tr
  726. ><tr id="gr_svn7768_254"
  727. ><td id="254"><a href="#254">254</a></td></tr
  728. ><tr id="gr_svn7768_255"
  729. ><td id="255"><a href="#255">255</a></td></tr
  730. ><tr id="gr_svn7768_256"
  731. ><td id="256"><a href="#256">256</a></td></tr
  732. ><tr id="gr_svn7768_257"
  733. ><td id="257"><a href="#257">257</a></td></tr
  734. ><tr id="gr_svn7768_258"
  735. ><td id="258"><a href="#258">258</a></td></tr
  736. ><tr id="gr_svn7768_259"
  737. ><td id="259"><a href="#259">259</a></td></tr
  738. ><tr id="gr_svn7768_260"
  739. ><td id="260"><a href="#260">260</a></td></tr
  740. ><tr id="gr_svn7768_261"
  741. ><td id="261"><a href="#261">261</a></td></tr
  742. ><tr id="gr_svn7768_262"
  743. ><td id="262"><a href="#262">262</a></td></tr
  744. ><tr id="gr_svn7768_263"
  745. ><td id="263"><a href="#263">263</a></td></tr
  746. ><tr id="gr_svn7768_264"
  747. ><td id="264"><a href="#264">264</a></td></tr
  748. ><tr id="gr_svn7768_265"
  749. ><td id="265"><a href="#265">265</a></td></tr
  750. ><tr id="gr_svn7768_266"
  751. ><td id="266"><a href="#266">266</a></td></tr
  752. ><tr id="gr_svn7768_267"
  753. ><td id="267"><a href="#267">267</a></td></tr
  754. ><tr id="gr_svn7768_268"
  755. ><td id="268"><a href="#268">268</a></td></tr
  756. ><tr id="gr_svn7768_269"
  757. ><td id="269"><a href="#269">269</a></td></tr
  758. ><tr id="gr_svn7768_270"
  759. ><td id="270"><a href="#270">270</a></td></tr
  760. ><tr id="gr_svn7768_271"
  761. ><td id="271"><a href="#271">271</a></td></tr
  762. ><tr id="gr_svn7768_272"
  763. ><td id="272"><a href="#272">272</a></td></tr
  764. ><tr id="gr_svn7768_273"
  765. ><td id="273"><a href="#273">273</a></td></tr
  766. ><tr id="gr_svn7768_274"
  767. ><td id="274"><a href="#274">274</a></td></tr
  768. ><tr id="gr_svn7768_275"
  769. ><td id="275"><a href="#275">275</a></td></tr
  770. ><tr id="gr_svn7768_276"
  771. ><td id="276"><a href="#276">276</a></td></tr
  772. ><tr id="gr_svn7768_277"
  773. ><td id="277"><a href="#277">277</a></td></tr
  774. ><tr id="gr_svn7768_278"
  775. ><td id="278"><a href="#278">278</a></td></tr
  776. ><tr id="gr_svn7768_279"
  777. ><td id="279"><a href="#279">279</a></td></tr
  778. ><tr id="gr_svn7768_280"
  779. ><td id="280"><a href="#280">280</a></td></tr
  780. ><tr id="gr_svn7768_281"
  781. ><td id="281"><a href="#281">281</a></td></tr
  782. ><tr id="gr_svn7768_282"
  783. ><td id="282"><a href="#282">282</a></td></tr
  784. ><tr id="gr_svn7768_283"
  785. ><td id="283"><a href="#283">283</a></td></tr
  786. ><tr id="gr_svn7768_284"
  787. ><td id="284"><a href="#284">284</a></td></tr
  788. ><tr id="gr_svn7768_285"
  789. ><td id="285"><a href="#285">285</a></td></tr
  790. ><tr id="gr_svn7768_286"
  791. ><td id="286"><a href="#286">286</a></td></tr
  792. ><tr id="gr_svn7768_287"
  793. ><td id="287"><a href="#287">287</a></td></tr
  794. ><tr id="gr_svn7768_288"
  795. ><td id="288"><a href="#288">288</a></td></tr
  796. ><tr id="gr_svn7768_289"
  797. ><td id="289"><a href="#289">289</a></td></tr
  798. ><tr id="gr_svn7768_290"
  799. ><td id="290"><a href="#290">290</a></td></tr
  800. ><tr id="gr_svn7768_291"
  801. ><td id="291"><a href="#291">291</a></td></tr
  802. ><tr id="gr_svn7768_292"
  803. ><td id="292"><a href="#292">292</a></td></tr
  804. ><tr id="gr_svn7768_293"
  805. ><td id="293"><a href="#293">293</a></td></tr
  806. ><tr id="gr_svn7768_294"
  807. ><td id="294"><a href="#294">294</a></td></tr
  808. ><tr id="gr_svn7768_295"
  809. ><td id="295"><a href="#295">295</a></td></tr
  810. ><tr id="gr_svn7768_296"
  811. ><td id="296"><a href="#296">296</a></td></tr
  812. ><tr id="gr_svn7768_297"
  813. ><td id="297"><a href="#297">297</a></td></tr
  814. ><tr id="gr_svn7768_298"
  815. ><td id="298"><a href="#298">298</a></td></tr
  816. ><tr id="gr_svn7768_299"
  817. ><td id="299"><a href="#299">299</a></td></tr
  818. ><tr id="gr_svn7768_300"
  819. ><td id="300"><a href="#300">300</a></td></tr
  820. ><tr id="gr_svn7768_301"
  821. ><td id="301"><a href="#301">301</a></td></tr
  822. ><tr id="gr_svn7768_302"
  823. ><td id="302"><a href="#302">302</a></td></tr
  824. ><tr id="gr_svn7768_303"
  825. ><td id="303"><a href="#303">303</a></td></tr
  826. ><tr id="gr_svn7768_304"
  827. ><td id="304"><a href="#304">304</a></td></tr
  828. ><tr id="gr_svn7768_305"
  829. ><td id="305"><a href="#305">305</a></td></tr
  830. ><tr id="gr_svn7768_306"
  831. ><td id="306"><a href="#306">306</a></td></tr
  832. ><tr id="gr_svn7768_307"
  833. ><td id="307"><a href="#307">307</a></td></tr
  834. ><tr id="gr_svn7768_308"
  835. ><td id="308"><a href="#308">308</a></td></tr
  836. ><tr id="gr_svn7768_309"
  837. ><td id="309"><a href="#309">309</a></td></tr
  838. ><tr id="gr_svn7768_310"
  839. ><td id="310"><a href="#310">310</a></td></tr
  840. ><tr id="gr_svn7768_311"
  841. ><td id="311"><a href="#311">311</a></td></tr
  842. ><tr id="gr_svn7768_312"
  843. ><td id="312"><a href="#312">312</a></td></tr
  844. ><tr id="gr_svn7768_313"
  845. ><td id="313"><a href="#313">313</a></td></tr
  846. ><tr id="gr_svn7768_314"
  847. ><td id="314"><a href="#314">314</a></td></tr
  848. ><tr id="gr_svn7768_315"
  849. ><td id="315"><a href="#315">315</a></td></tr
  850. ><tr id="gr_svn7768_316"
  851. ><td id="316"><a href="#316">316</a></td></tr
  852. ><tr id="gr_svn7768_317"
  853. ><td id="317"><a href="#317">317</a></td></tr
  854. ><tr id="gr_svn7768_318"
  855. ><td id="318"><a href="#318">318</a></td></tr
  856. ><tr id="gr_svn7768_319"
  857. ><td id="319"><a href="#319">319</a></td></tr
  858. ><tr id="gr_svn7768_320"
  859. ><td id="320"><a href="#320">320</a></td></tr
  860. ><tr id="gr_svn7768_321"
  861. ><td id="321"><a href="#321">321</a></td></tr
  862. ><tr id="gr_svn7768_322"
  863. ><td id="322"><a href="#322">322</a></td></tr
  864. ><tr id="gr_svn7768_323"
  865. ><td id="323"><a href="#323">323</a></td></tr
  866. ><tr id="gr_svn7768_324"
  867. ><td id="324"><a href="#324">324</a></td></tr
  868. ><tr id="gr_svn7768_325"
  869. ><td id="325"><a href="#325">325</a></td></tr
  870. ><tr id="gr_svn7768_326"
  871. ><td id="326"><a href="#326">326</a></td></tr
  872. ><tr id="gr_svn7768_327"
  873. ><td id="327"><a href="#327">327</a></td></tr
  874. ><tr id="gr_svn7768_328"
  875. ><td id="328"><a href="#328">328</a></td></tr
  876. ><tr id="gr_svn7768_329"
  877. ><td id="329"><a href="#329">329</a></td></tr
  878. ><tr id="gr_svn7768_330"
  879. ><td id="330"><a href="#330">330</a></td></tr
  880. ><tr id="gr_svn7768_331"
  881. ><td id="331"><a href="#331">331</a></td></tr
  882. ><tr id="gr_svn7768_332"
  883. ><td id="332"><a href="#332">332</a></td></tr
  884. ><tr id="gr_svn7768_333"
  885. ><td id="333"><a href="#333">333</a></td></tr
  886. ><tr id="gr_svn7768_334"
  887. ><td id="334"><a href="#334">334</a></td></tr
  888. ><tr id="gr_svn7768_335"
  889. ><td id="335"><a href="#335">335</a></td></tr
  890. ><tr id="gr_svn7768_336"
  891. ><td id="336"><a href="#336">336</a></td></tr
  892. ><tr id="gr_svn7768_337"
  893. ><td id="337"><a href="#337">337</a></td></tr
  894. ><tr id="gr_svn7768_338"
  895. ><td id="338"><a href="#338">338</a></td></tr
  896. ><tr id="gr_svn7768_339"
  897. ><td id="339"><a href="#339">339</a></td></tr
  898. ><tr id="gr_svn7768_340"
  899. ><td id="340"><a href="#340">340</a></td></tr
  900. ><tr id="gr_svn7768_341"
  901. ><td id="341"><a href="#341">341</a></td></tr
  902. ><tr id="gr_svn7768_342"
  903. ><td id="342"><a href="#342">342</a></td></tr
  904. ><tr id="gr_svn7768_343"
  905. ><td id="343"><a href="#343">343</a></td></tr
  906. ><tr id="gr_svn7768_344"
  907. ><td id="344"><a href="#344">344</a></td></tr
  908. ><tr id="gr_svn7768_345"
  909. ><td id="345"><a href="#345">345</a></td></tr
  910. ><tr id="gr_svn7768_346"
  911. ><td id="346"><a href="#346">346</a></td></tr
  912. ><tr id="gr_svn7768_347"
  913. ><td id="347"><a href="#347">347</a></td></tr
  914. ><tr id="gr_svn7768_348"
  915. ><td id="348"><a href="#348">348</a></td></tr
  916. ><tr id="gr_svn7768_349"
  917. ><td id="349"><a href="#349">349</a></td></tr
  918. ><tr id="gr_svn7768_350"
  919. ><td id="350"><a href="#350">350</a></td></tr
  920. ><tr id="gr_svn7768_351"
  921. ><td id="351"><a href="#351">351</a></td></tr
  922. ><tr id="gr_svn7768_352"
  923. ><td id="352"><a href="#352">352</a></td></tr
  924. ><tr id="gr_svn7768_353"
  925. ><td id="353"><a href="#353">353</a></td></tr
  926. ><tr id="gr_svn7768_354"
  927. ><td id="354"><a href="#354">354</a></td></tr
  928. ><tr id="gr_svn7768_355"
  929. ><td id="355"><a href="#355">355</a></td></tr
  930. ><tr id="gr_svn7768_356"
  931. ><td id="356"><a href="#356">356</a></td></tr
  932. ><tr id="gr_svn7768_357"
  933. ><td id="357"><a href="#357">357</a></td></tr
  934. ><tr id="gr_svn7768_358"
  935. ><td id="358"><a href="#358">358</a></td></tr
  936. ><tr id="gr_svn7768_359"
  937. ><td id="359"><a href="#359">359</a></td></tr
  938. ><tr id="gr_svn7768_360"
  939. ><td id="360"><a href="#360">360</a></td></tr
  940. ><tr id="gr_svn7768_361"
  941. ><td id="361"><a href="#361">361</a></td></tr
  942. ><tr id="gr_svn7768_362"
  943. ><td id="362"><a href="#362">362</a></td></tr
  944. ><tr id="gr_svn7768_363"
  945. ><td id="363"><a href="#363">363</a></td></tr
  946. ><tr id="gr_svn7768_364"
  947. ><td id="364"><a href="#364">364</a></td></tr
  948. ><tr id="gr_svn7768_365"
  949. ><td id="365"><a href="#365">365</a></td></tr
  950. ><tr id="gr_svn7768_366"
  951. ><td id="366"><a href="#366">366</a></td></tr
  952. ><tr id="gr_svn7768_367"
  953. ><td id="367"><a href="#367">367</a></td></tr
  954. ><tr id="gr_svn7768_368"
  955. ><td id="368"><a href="#368">368</a></td></tr
  956. ><tr id="gr_svn7768_369"
  957. ><td id="369"><a href="#369">369</a></td></tr
  958. ><tr id="gr_svn7768_370"
  959. ><td id="370"><a href="#370">370</a></td></tr
  960. ><tr id="gr_svn7768_371"
  961. ><td id="371"><a href="#371">371</a></td></tr
  962. ><tr id="gr_svn7768_372"
  963. ><td id="372"><a href="#372">372</a></td></tr
  964. ><tr id="gr_svn7768_373"
  965. ><td id="373"><a href="#373">373</a></td></tr
  966. ><tr id="gr_svn7768_374"
  967. ><td id="374"><a href="#374">374</a></td></tr
  968. ><tr id="gr_svn7768_375"
  969. ><td id="375"><a href="#375">375</a></td></tr
  970. ><tr id="gr_svn7768_376"
  971. ><td id="376"><a href="#376">376</a></td></tr
  972. ><tr id="gr_svn7768_377"
  973. ><td id="377"><a href="#377">377</a></td></tr
  974. ><tr id="gr_svn7768_378"
  975. ><td id="378"><a href="#378">378</a></td></tr
  976. ><tr id="gr_svn7768_379"
  977. ><td id="379"><a href="#379">379</a></td></tr
  978. ><tr id="gr_svn7768_380"
  979. ><td id="380"><a href="#380">380</a></td></tr
  980. ><tr id="gr_svn7768_381"
  981. ><td id="381"><a href="#381">381</a></td></tr
  982. ><tr id="gr_svn7768_382"
  983. ><td id="382"><a href="#382">382</a></td></tr
  984. ><tr id="gr_svn7768_383"
  985. ><td id="383"><a href="#383">383</a></td></tr
  986. ><tr id="gr_svn7768_384"
  987. ><td id="384"><a href="#384">384</a></td></tr
  988. ><tr id="gr_svn7768_385"
  989. ><td id="385"><a href="#385">385</a></td></tr
  990. ><tr id="gr_svn7768_386"
  991. ><td id="386"><a href="#386">386</a></td></tr
  992. ><tr id="gr_svn7768_387"
  993. ><td id="387"><a href="#387">387</a></td></tr
  994. ><tr id="gr_svn7768_388"
  995. ><td id="388"><a href="#388">388</a></td></tr
  996. ><tr id="gr_svn7768_389"
  997. ><td id="389"><a href="#389">389</a></td></tr
  998. ><tr id="gr_svn7768_390"
  999. ><td id="390"><a href="#390">390</a></td></tr
  1000. ><tr id="gr_svn7768_391"
  1001. ><td id="391"><a href="#391">391</a></td></tr
  1002. ><tr id="gr_svn7768_392"
  1003. ><td id="392"><a href="#392">392</a></td></tr
  1004. ><tr id="gr_svn7768_393"
  1005. ><td id="393"><a href="#393">393</a></td></tr
  1006. ><tr id="gr_svn7768_394"
  1007. ><td id="394"><a href="#394">394</a></td></tr
  1008. ><tr id="gr_svn7768_395"
  1009. ><td id="395"><a href="#395">395</a></td></tr
  1010. ><tr id="gr_svn7768_396"
  1011. ><td id="396"><a href="#396">396</a></td></tr
  1012. ><tr id="gr_svn7768_397"
  1013. ><td id="397"><a href="#397">397</a></td></tr
  1014. ><tr id="gr_svn7768_398"
  1015. ><td id="398"><a href="#398">398</a></td></tr
  1016. ><tr id="gr_svn7768_399"
  1017. ><td id="399"><a href="#399">399</a></td></tr
  1018. ><tr id="gr_svn7768_400"
  1019. ><td id="400"><a href="#400">400</a></td></tr
  1020. ><tr id="gr_svn7768_401"
  1021. ><td id="401"><a href="#401">401</a></td></tr
  1022. ><tr id="gr_svn7768_402"
  1023. ><td id="402"><a href="#402">402</a></td></tr
  1024. ><tr id="gr_svn7768_403"
  1025. ><td id="403"><a href="#403">403</a></td></tr
  1026. ><tr id="gr_svn7768_404"
  1027. ><td id="404"><a href="#404">404</a></td></tr
  1028. ><tr id="gr_svn7768_405"
  1029. ><td id="405"><a href="#405">405</a></td></tr
  1030. ><tr id="gr_svn7768_406"
  1031. ><td id="406"><a href="#406">406</a></td></tr
  1032. ><tr id="gr_svn7768_407"
  1033. ><td id="407"><a href="#407">407</a></td></tr
  1034. ><tr id="gr_svn7768_408"
  1035. ><td id="408"><a href="#408">408</a></td></tr
  1036. ><tr id="gr_svn7768_409"
  1037. ><td id="409"><a href="#409">409</a></td></tr
  1038. ><tr id="gr_svn7768_410"
  1039. ><td id="410"><a href="#410">410</a></td></tr
  1040. ><tr id="gr_svn7768_411"
  1041. ><td id="411"><a href="#411">411</a></td></tr
  1042. ><tr id="gr_svn7768_412"
  1043. ><td id="412"><a href="#412">412</a></td></tr
  1044. ><tr id="gr_svn7768_413"
  1045. ><td id="413"><a href="#413">413</a></td></tr
  1046. ><tr id="gr_svn7768_414"
  1047. ><td id="414"><a href="#414">414</a></td></tr
  1048. ><tr id="gr_svn7768_415"
  1049. ><td id="415"><a href="#415">415</a></td></tr
  1050. ><tr id="gr_svn7768_416"
  1051. ><td id="416"><a href="#416">416</a></td></tr
  1052. ><tr id="gr_svn7768_417"
  1053. ><td id="417"><a href="#417">417</a></td></tr
  1054. ><tr id="gr_svn7768_418"
  1055. ><td id="418"><a href="#418">418</a></td></tr
  1056. ><tr id="gr_svn7768_419"
  1057. ><td id="419"><a href="#419">419</a></td></tr
  1058. ><tr id="gr_svn7768_420"
  1059. ><td id="420"><a href="#420">420</a></td></tr
  1060. ><tr id="gr_svn7768_421"
  1061. ><td id="421"><a href="#421">421</a></td></tr
  1062. ><tr id="gr_svn7768_422"
  1063. ><td id="422"><a href="#422">422</a></td></tr
  1064. ><tr id="gr_svn7768_423"
  1065. ><td id="423"><a href="#423">423</a></td></tr
  1066. ><tr id="gr_svn7768_424"
  1067. ><td id="424"><a href="#424">424</a></td></tr
  1068. ><tr id="gr_svn7768_425"
  1069. ><td id="425"><a href="#425">425</a></td></tr
  1070. ><tr id="gr_svn7768_426"
  1071. ><td id="426"><a href="#426">426</a></td></tr
  1072. ><tr id="gr_svn7768_427"
  1073. ><td id="427"><a href="#427">427</a></td></tr
  1074. ><tr id="gr_svn7768_428"
  1075. ><td id="428"><a href="#428">428</a></td></tr
  1076. ><tr id="gr_svn7768_429"
  1077. ><td id="429"><a href="#429">429</a></td></tr
  1078. ><tr id="gr_svn7768_430"
  1079. ><td id="430"><a href="#430">430</a></td></tr
  1080. ><tr id="gr_svn7768_431"
  1081. ><td id="431"><a href="#431">431</a></td></tr
  1082. ><tr id="gr_svn7768_432"
  1083. ><td id="432"><a href="#432">432</a></td></tr
  1084. ><tr id="gr_svn7768_433"
  1085. ><td id="433"><a href="#433">433</a></td></tr
  1086. ><tr id="gr_svn7768_434"
  1087. ><td id="434"><a href="#434">434</a></td></tr
  1088. ><tr id="gr_svn7768_435"
  1089. ><td id="435"><a href="#435">435</a></td></tr
  1090. ><tr id="gr_svn7768_436"
  1091. ><td id="436"><a href="#436">436</a></td></tr
  1092. ><tr id="gr_svn7768_437"
  1093. ><td id="437"><a href="#437">437</a></td></tr
  1094. ><tr id="gr_svn7768_438"
  1095. ><td id="438"><a href="#438">438</a></td></tr
  1096. ><tr id="gr_svn7768_439"
  1097. ><td id="439"><a href="#439">439</a></td></tr
  1098. ><tr id="gr_svn7768_440"
  1099. ><td id="440"><a href="#440">440</a></td></tr
  1100. ><tr id="gr_svn7768_441"
  1101. ><td id="441"><a href="#441">441</a></td></tr
  1102. ><tr id="gr_svn7768_442"
  1103. ><td id="442"><a href="#442">442</a></td></tr
  1104. ><tr id="gr_svn7768_443"
  1105. ><td id="443"><a href="#443">443</a></td></tr
  1106. ><tr id="gr_svn7768_444"
  1107. ><td id="444"><a href="#444">444</a></td></tr
  1108. ><tr id="gr_svn7768_445"
  1109. ><td id="445"><a href="#445">445</a></td></tr
  1110. ><tr id="gr_svn7768_446"
  1111. ><td id="446"><a href="#446">446</a></td></tr
  1112. ><tr id="gr_svn7768_447"
  1113. ><td id="447"><a href="#447">447</a></td></tr
  1114. ><tr id="gr_svn7768_448"
  1115. ><td id="448"><a href="#448">448</a></td></tr
  1116. ><tr id="gr_svn7768_449"
  1117. ><td id="449"><a href="#449">449</a></td></tr
  1118. ><tr id="gr_svn7768_450"
  1119. ><td id="450"><a href="#450">450</a></td></tr
  1120. ><tr id="gr_svn7768_451"
  1121. ><td id="451"><a href="#451">451</a></td></tr
  1122. ><tr id="gr_svn7768_452"
  1123. ><td id="452"><a href="#452">452</a></td></tr
  1124. ><tr id="gr_svn7768_453"
  1125. ><td id="453"><a href="#453">453</a></td></tr
  1126. ><tr id="gr_svn7768_454"
  1127. ><td id="454"><a href="#454">454</a></td></tr
  1128. ><tr id="gr_svn7768_455"
  1129. ><td id="455"><a href="#455">455</a></td></tr
  1130. ><tr id="gr_svn7768_456"
  1131. ><td id="456"><a href="#456">456</a></td></tr
  1132. ><tr id="gr_svn7768_457"
  1133. ><td id="457"><a href="#457">457</a></td></tr
  1134. ><tr id="gr_svn7768_458"
  1135. ><td id="458"><a href="#458">458</a></td></tr
  1136. ><tr id="gr_svn7768_459"
  1137. ><td id="459"><a href="#459">459</a></td></tr
  1138. ><tr id="gr_svn7768_460"
  1139. ><td id="460"><a href="#460">460</a></td></tr
  1140. ><tr id="gr_svn7768_461"
  1141. ><td id="461"><a href="#461">461</a></td></tr
  1142. ><tr id="gr_svn7768_462"
  1143. ><td id="462"><a href="#462">462</a></td></tr
  1144. ><tr id="gr_svn7768_463"
  1145. ><td id="463"><a href="#463">463</a></td></tr
  1146. ><tr id="gr_svn7768_464"
  1147. ><td id="464"><a href="#464">464</a></td></tr
  1148. ><tr id="gr_svn7768_465"
  1149. ><td id="465"><a href="#465">465</a></td></tr
  1150. ><tr id="gr_svn7768_466"
  1151. ><td id="466"><a href="#466">466</a></td></tr
  1152. ><tr id="gr_svn7768_467"
  1153. ><td id="467"><a href="#467">467</a></td></tr
  1154. ><tr id="gr_svn7768_468"
  1155. ><td id="468"><a href="#468">468</a></td></tr
  1156. ><tr id="gr_svn7768_469"
  1157. ><td id="469"><a href="#469">469</a></td></tr
  1158. ><tr id="gr_svn7768_470"
  1159. ><td id="470"><a href="#470">470</a></td></tr
  1160. ><tr id="gr_svn7768_471"
  1161. ><td id="471"><a href="#471">471</a></td></tr
  1162. ><tr id="gr_svn7768_472"
  1163. ><td id="472"><a href="#472">472</a></td></tr
  1164. ><tr id="gr_svn7768_473"
  1165. ><td id="473"><a href="#473">473</a></td></tr
  1166. ><tr id="gr_svn7768_474"
  1167. ><td id="474"><a href="#474">474</a></td></tr
  1168. ><tr id="gr_svn7768_475"
  1169. ><td id="475"><a href="#475">475</a></td></tr
  1170. ><tr id="gr_svn7768_476"
  1171. ><td id="476"><a href="#476">476</a></td></tr
  1172. ><tr id="gr_svn7768_477"
  1173. ><td id="477"><a href="#477">477</a></td></tr
  1174. ><tr id="gr_svn7768_478"
  1175. ><td id="478"><a href="#478">478</a></td></tr
  1176. ><tr id="gr_svn7768_479"
  1177. ><td id="479"><a href="#479">479</a></td></tr
  1178. ><tr id="gr_svn7768_480"
  1179. ><td id="480"><a href="#480">480</a></td></tr
  1180. ><tr id="gr_svn7768_481"
  1181. ><td id="481"><a href="#481">481</a></td></tr
  1182. ><tr id="gr_svn7768_482"
  1183. ><td id="482"><a href="#482">482</a></td></tr
  1184. ><tr id="gr_svn7768_483"
  1185. ><td id="483"><a href="#483">483</a></td></tr
  1186. ><tr id="gr_svn7768_484"
  1187. ><td id="484"><a href="#484">484</a></td></tr
  1188. ><tr id="gr_svn7768_485"
  1189. ><td id="485"><a href="#485">485</a></td></tr
  1190. ><tr id="gr_svn7768_486"
  1191. ><td id="486"><a href="#486">486</a></td></tr
  1192. ><tr id="gr_svn7768_487"
  1193. ><td id="487"><a href="#487">487</a></td></tr
  1194. ><tr id="gr_svn7768_488"
  1195. ><td id="488"><a href="#488">488</a></td></tr
  1196. ><tr id="gr_svn7768_489"
  1197. ><td id="489"><a href="#489">489</a></td></tr
  1198. ><tr id="gr_svn7768_490"
  1199. ><td id="490"><a href="#490">490</a></td></tr
  1200. ><tr id="gr_svn7768_491"
  1201. ><td id="491"><a href="#491">491</a></td></tr
  1202. ><tr id="gr_svn7768_492"
  1203. ><td id="492"><a href="#492">492</a></td></tr
  1204. ><tr id="gr_svn7768_493"
  1205. ><td id="493"><a href="#493">493</a></td></tr
  1206. ><tr id="gr_svn7768_494"
  1207. ><td id="494"><a href="#494">494</a></td></tr
  1208. ><tr id="gr_svn7768_495"
  1209. ><td id="495"><a href="#495">495</a></td></tr
  1210. ><tr id="gr_svn7768_496"
  1211. ><td id="496"><a href="#496">496</a></td></tr
  1212. ><tr id="gr_svn7768_497"
  1213. ><td id="497"><a href="#497">497</a></td></tr
  1214. ><tr id="gr_svn7768_498"
  1215. ><td id="498"><a href="#498">498</a></td></tr
  1216. ><tr id="gr_svn7768_499"
  1217. ><td id="499"><a href="#499">499</a></td></tr
  1218. ><tr id="gr_svn7768_500"
  1219. ><td id="500"><a href="#500">500</a></td></tr
  1220. ><tr id="gr_svn7768_501"
  1221. ><td id="501"><a href="#501">501</a></td></tr
  1222. ><tr id="gr_svn7768_502"
  1223. ><td id="502"><a href="#502">502</a></td></tr
  1224. ><tr id="gr_svn7768_503"
  1225. ><td id="503"><a href="#503">503</a></td></tr
  1226. ><tr id="gr_svn7768_504"
  1227. ><td id="504"><a href="#504">504</a></td></tr
  1228. ><tr id="gr_svn7768_505"
  1229. ><td id="505"><a href="#505">505</a></td></tr
  1230. ><tr id="gr_svn7768_506"
  1231. ><td id="506"><a href="#506">506</a></td></tr
  1232. ><tr id="gr_svn7768_507"
  1233. ><td id="507"><a href="#507">507</a></td></tr
  1234. ><tr id="gr_svn7768_508"
  1235. ><td id="508"><a href="#508">508</a></td></tr
  1236. ><tr id="gr_svn7768_509"
  1237. ><td id="509"><a href="#509">509</a></td></tr
  1238. ><tr id="gr_svn7768_510"
  1239. ><td id="510"><a href="#510">510</a></td></tr
  1240. ><tr id="gr_svn7768_511"
  1241. ><td id="511"><a href="#511">511</a></td></tr
  1242. ><tr id="gr_svn7768_512"
  1243. ><td id="512"><a href="#512">512</a></td></tr
  1244. ><tr id="gr_svn7768_513"
  1245. ><td id="513"><a href="#513">513</a></td></tr
  1246. ><tr id="gr_svn7768_514"
  1247. ><td id="514"><a href="#514">514</a></td></tr
  1248. ><tr id="gr_svn7768_515"
  1249. ><td id="515"><a href="#515">515</a></td></tr
  1250. ><tr id="gr_svn7768_516"
  1251. ><td id="516"><a href="#516">516</a></td></tr
  1252. ><tr id="gr_svn7768_517"
  1253. ><td id="517"><a href="#517">517</a></td></tr
  1254. ><tr id="gr_svn7768_518"
  1255. ><td id="518"><a href="#518">518</a></td></tr
  1256. ><tr id="gr_svn7768_519"
  1257. ><td id="519"><a href="#519">519</a></td></tr
  1258. ><tr id="gr_svn7768_520"
  1259. ><td id="520"><a href="#520">520</a></td></tr
  1260. ><tr id="gr_svn7768_521"
  1261. ><td id="521"><a href="#521">521</a></td></tr
  1262. ><tr id="gr_svn7768_522"
  1263. ><td id="522"><a href="#522">522</a></td></tr
  1264. ><tr id="gr_svn7768_523"
  1265. ><td id="523"><a href="#523">523</a></td></tr
  1266. ><tr id="gr_svn7768_524"
  1267. ><td id="524"><a href="#524">524</a></td></tr
  1268. ><tr id="gr_svn7768_525"
  1269. ><td id="525"><a href="#525">525</a></td></tr
  1270. ><tr id="gr_svn7768_526"
  1271. ><td id="526"><a href="#526">526</a></td></tr
  1272. ><tr id="gr_svn7768_527"
  1273. ><td id="527"><a href="#527">527</a></td></tr
  1274. ><tr id="gr_svn7768_528"
  1275. ><td id="528"><a href="#528">528</a></td></tr
  1276. ><tr id="gr_svn7768_529"
  1277. ><td id="529"><a href="#529">529</a></td></tr
  1278. ><tr id="gr_svn7768_530"
  1279. ><td id="530"><a href="#530">530</a></td></tr
  1280. ><tr id="gr_svn7768_531"
  1281. ><td id="531"><a href="#531">531</a></td></tr
  1282. ><tr id="gr_svn7768_532"
  1283. ><td id="532"><a href="#532">532</a></td></tr
  1284. ><tr id="gr_svn7768_533"
  1285. ><td id="533"><a href="#533">533</a></td></tr
  1286. ><tr id="gr_svn7768_534"
  1287. ><td id="534"><a href="#534">534</a></td></tr
  1288. ><tr id="gr_svn7768_535"
  1289. ><td id="535"><a href="#535">535</a></td></tr
  1290. ><tr id="gr_svn7768_536"
  1291. ><td id="536"><a href="#536">536</a></td></tr
  1292. ><tr id="gr_svn7768_537"
  1293. ><td id="537"><a href="#537">537</a></td></tr
  1294. ><tr id="gr_svn7768_538"
  1295. ><td id="538"><a href="#538">538</a></td></tr
  1296. ><tr id="gr_svn7768_539"
  1297. ><td id="539"><a href="#539">539</a></td></tr
  1298. ><tr id="gr_svn7768_540"
  1299. ><td id="540"><a href="#540">540</a></td></tr
  1300. ><tr id="gr_svn7768_541"
  1301. ><td id="541"><a href="#541">541</a></td></tr
  1302. ><tr id="gr_svn7768_542"
  1303. ><td id="542"><a href="#542">542</a></td></tr
  1304. ><tr id="gr_svn7768_543"
  1305. ><td id="543"><a href="#543">543</a></td></tr
  1306. ><tr id="gr_svn7768_544"
  1307. ><td id="544"><a href="#544">544</a></td></tr
  1308. ><tr id="gr_svn7768_545"
  1309. ><td id="545"><a href="#545">545</a></td></tr
  1310. ><tr id="gr_svn7768_546"
  1311. ><td id="546"><a href="#546">546</a></td></tr
  1312. ><tr id="gr_svn7768_547"
  1313. ><td id="547"><a href="#547">547</a></td></tr
  1314. ><tr id="gr_svn7768_548"
  1315. ><td id="548"><a href="#548">548</a></td></tr
  1316. ><tr id="gr_svn7768_549"
  1317. ><td id="549"><a href="#549">549</a></td></tr
  1318. ><tr id="gr_svn7768_550"
  1319. ><td id="550"><a href="#550">550</a></td></tr
  1320. ><tr id="gr_svn7768_551"
  1321. ><td id="551"><a href="#551">551</a></td></tr
  1322. ><tr id="gr_svn7768_552"
  1323. ><td id="552"><a href="#552">552</a></td></tr
  1324. ><tr id="gr_svn7768_553"
  1325. ><td id="553"><a href="#553">553</a></td></tr
  1326. ><tr id="gr_svn7768_554"
  1327. ><td id="554"><a href="#554">554</a></td></tr
  1328. ><tr id="gr_svn7768_555"
  1329. ><td id="555"><a href="#555">555</a></td></tr
  1330. ><tr id="gr_svn7768_556"
  1331. ><td id="556"><a href="#556">556</a></td></tr
  1332. ><tr id="gr_svn7768_557"
  1333. ><td id="557"><a href="#557">557</a></td></tr
  1334. ><tr id="gr_svn7768_558"
  1335. ><td id="558"><a href="#558">558</a></td></tr
  1336. ><tr id="gr_svn7768_559"
  1337. ><td id="559"><a href="#559">559</a></td></tr
  1338. ><tr id="gr_svn7768_560"
  1339. ><td id="560"><a href="#560">560</a></td></tr
  1340. ><tr id="gr_svn7768_561"
  1341. ><td id="561"><a href="#561">561</a></td></tr
  1342. ><tr id="gr_svn7768_562"
  1343. ><td id="562"><a href="#562">562</a></td></tr
  1344. ><tr id="gr_svn7768_563"
  1345. ><td id="563"><a href="#563">563</a></td></tr
  1346. ><tr id="gr_svn7768_564"
  1347. ><td id="564"><a href="#564">564</a></td></tr
  1348. ><tr id="gr_svn7768_565"
  1349. ><td id="565"><a href="#565">565</a></td></tr
  1350. ><tr id="gr_svn7768_566"
  1351. ><td id="566"><a href="#566">566</a></td></tr
  1352. ><tr id="gr_svn7768_567"
  1353. ><td id="567"><a href="#567">567</a></td></tr
  1354. ><tr id="gr_svn7768_568"
  1355. ><td id="568"><a href="#568">568</a></td></tr
  1356. ><tr id="gr_svn7768_569"
  1357. ><td id="569"><a href="#569">569</a></td></tr
  1358. ><tr id="gr_svn7768_570"
  1359. ><td id="570"><a href="#570">570</a></td></tr
  1360. ><tr id="gr_svn7768_571"
  1361. ><td id="571"><a href="#571">571</a></td></tr
  1362. ><tr id="gr_svn7768_572"
  1363. ><td id="572"><a href="#572">572</a></td></tr
  1364. ><tr id="gr_svn7768_573"
  1365. ><td id="573"><a href="#573">573</a></td></tr
  1366. ><tr id="gr_svn7768_574"
  1367. ><td id="574"><a href="#574">574</a></td></tr
  1368. ><tr id="gr_svn7768_575"
  1369. ><td id="575"><a href="#575">575</a></td></tr
  1370. ><tr id="gr_svn7768_576"
  1371. ><td id="576"><a href="#576">576</a></td></tr
  1372. ><tr id="gr_svn7768_577"
  1373. ><td id="577"><a href="#577">577</a></td></tr
  1374. ><tr id="gr_svn7768_578"
  1375. ><td id="578"><a href="#578">578</a></td></tr
  1376. ><tr id="gr_svn7768_579"
  1377. ><td id="579"><a href="#579">579</a></td></tr
  1378. ><tr id="gr_svn7768_580"
  1379. ><td id="580"><a href="#580">580</a></td></tr
  1380. ><tr id="gr_svn7768_581"
  1381. ><td id="581"><a href="#581">581</a></td></tr
  1382. ><tr id="gr_svn7768_582"
  1383. ><td id="582"><a href="#582">582</a></td></tr
  1384. ><tr id="gr_svn7768_583"
  1385. ><td id="583"><a href="#583">583</a></td></tr
  1386. ><tr id="gr_svn7768_584"
  1387. ><td id="584"><a href="#584">584</a></td></tr
  1388. ><tr id="gr_svn7768_585"
  1389. ><td id="585"><a href="#585">585</a></td></tr
  1390. ><tr id="gr_svn7768_586"
  1391. ><td id="586"><a href="#586">586</a></td></tr
  1392. ><tr id="gr_svn7768_587"
  1393. ><td id="587"><a href="#587">587</a></td></tr
  1394. ><tr id="gr_svn7768_588"
  1395. ><td id="588"><a href="#588">588</a></td></tr
  1396. ><tr id="gr_svn7768_589"
  1397. ><td id="589"><a href="#589">589</a></td></tr
  1398. ><tr id="gr_svn7768_590"
  1399. ><td id="590"><a href="#590">590</a></td></tr
  1400. ><tr id="gr_svn7768_591"
  1401. ><td id="591"><a href="#591">591</a></td></tr
  1402. ><tr id="gr_svn7768_592"
  1403. ><td id="592"><a href="#592">592</a></td></tr
  1404. ><tr id="gr_svn7768_593"
  1405. ><td id="593"><a href="#593">593</a></td></tr
  1406. ><tr id="gr_svn7768_594"
  1407. ><td id="594"><a href="#594">594</a></td></tr
  1408. ><tr id="gr_svn7768_595"
  1409. ><td id="595"><a href="#595">595</a></td></tr
  1410. ><tr id="gr_svn7768_596"
  1411. ><td id="596"><a href="#596">596</a></td></tr
  1412. ><tr id="gr_svn7768_597"
  1413. ><td id="597"><a href="#597">597</a></td></tr
  1414. ><tr id="gr_svn7768_598"
  1415. ><td id="598"><a href="#598">598</a></td></tr
  1416. ><tr id="gr_svn7768_599"
  1417. ><td id="599"><a href="#599">599</a></td></tr
  1418. ><tr id="gr_svn7768_600"
  1419. ><td id="600"><a href="#600">600</a></td></tr
  1420. ><tr id="gr_svn7768_601"
  1421. ><td id="601"><a href="#601">601</a></td></tr
  1422. ><tr id="gr_svn7768_602"
  1423. ><td id="602"><a href="#602">602</a></td></tr
  1424. ><tr id="gr_svn7768_603"
  1425. ><td id="603"><a href="#603">603</a></td></tr
  1426. ><tr id="gr_svn7768_604"
  1427. ><td id="604"><a href="#604">604</a></td></tr
  1428. ><tr id="gr_svn7768_605"
  1429. ><td id="605"><a href="#605">605</a></td></tr
  1430. ><tr id="gr_svn7768_606"
  1431. ><td id="606"><a href="#606">606</a></td></tr
  1432. ><tr id="gr_svn7768_607"
  1433. ><td id="607"><a href="#607">607</a></td></tr
  1434. ><tr id="gr_svn7768_608"
  1435. ><td id="608"><a href="#608">608</a></td></tr
  1436. ><tr id="gr_svn7768_609"
  1437. ><td id="609"><a href="#609">609</a></td></tr
  1438. ><tr id="gr_svn7768_610"
  1439. ><td id="610"><a href="#610">610</a></td></tr
  1440. ><tr id="gr_svn7768_611"
  1441. ><td id="611"><a href="#611">611</a></td></tr
  1442. ><tr id="gr_svn7768_612"
  1443. ><td id="612"><a href="#612">612</a></td></tr
  1444. ><tr id="gr_svn7768_613"
  1445. ><td id="613"><a href="#613">613</a></td></tr
  1446. ><tr id="gr_svn7768_614"
  1447. ><td id="614"><a href="#614">614</a></td></tr
  1448. ><tr id="gr_svn7768_615"
  1449. ><td id="615"><a href="#615">615</a></td></tr
  1450. ><tr id="gr_svn7768_616"
  1451. ><td id="616"><a href="#616">616</a></td></tr
  1452. ><tr id="gr_svn7768_617"
  1453. ><td id="617"><a href="#617">617</a></td></tr
  1454. ><tr id="gr_svn7768_618"
  1455. ><td id="618"><a href="#618">618</a></td></tr
  1456. ><tr id="gr_svn7768_619"
  1457. ><td id="619"><a href="#619">619</a></td></tr
  1458. ><tr id="gr_svn7768_620"
  1459. ><td id="620"><a href="#620">620</a></td></tr
  1460. ><tr id="gr_svn7768_621"
  1461. ><td id="621"><a href="#621">621</a></td></tr
  1462. ><tr id="gr_svn7768_622"
  1463. ><td id="622"><a href="#622">622</a></td></tr
  1464. ><tr id="gr_svn7768_623"
  1465. ><td id="623"><a href="#623">623</a></td></tr
  1466. ><tr id="gr_svn7768_624"
  1467. ><td id="624"><a href="#624">624</a></td></tr
  1468. ><tr id="gr_svn7768_625"
  1469. ><td id="625"><a href="#625">625</a></td></tr
  1470. ><tr id="gr_svn7768_626"
  1471. ><td id="626"><a href="#626">626</a></td></tr
  1472. ><tr id="gr_svn7768_627"
  1473. ><td id="627"><a href="#627">627</a></td></tr
  1474. ><tr id="gr_svn7768_628"
  1475. ><td id="628"><a href="#628">628</a></td></tr
  1476. ><tr id="gr_svn7768_629"
  1477. ><td id="629"><a href="#629">629</a></td></tr
  1478. ><tr id="gr_svn7768_630"
  1479. ><td id="630"><a href="#630">630</a></td></tr
  1480. ><tr id="gr_svn7768_631"
  1481. ><td id="631"><a href="#631">631</a></td></tr
  1482. ><tr id="gr_svn7768_632"
  1483. ><td id="632"><a href="#632">632</a></td></tr
  1484. ><tr id="gr_svn7768_633"
  1485. ><td id="633"><a href="#633">633</a></td></tr
  1486. ><tr id="gr_svn7768_634"
  1487. ><td id="634"><a href="#634">634</a></td></tr
  1488. ><tr id="gr_svn7768_635"
  1489. ><td id="635"><a href="#635">635</a></td></tr
  1490. ><tr id="gr_svn7768_636"
  1491. ><td id="636"><a href="#636">636</a></td></tr
  1492. ><tr id="gr_svn7768_637"
  1493. ><td id="637"><a href="#637">637</a></td></tr
  1494. ><tr id="gr_svn7768_638"
  1495. ><td id="638"><a href="#638">638</a></td></tr
  1496. ><tr id="gr_svn7768_639"
  1497. ><td id="639"><a href="#639">639</a></td></tr
  1498. ><tr id="gr_svn7768_640"
  1499. ><td id="640"><a href="#640">640</a></td></tr
  1500. ><tr id="gr_svn7768_641"
  1501. ><td id="641"><a href="#641">641</a></td></tr
  1502. ><tr id="gr_svn7768_642"
  1503. ><td id="642"><a href="#642">642</a></td></tr
  1504. ><tr id="gr_svn7768_643"
  1505. ><td id="643"><a href="#643">643</a></td></tr
  1506. ><tr id="gr_svn7768_644"
  1507. ><td id="644"><a href="#644">644</a></td></tr
  1508. ><tr id="gr_svn7768_645"
  1509. ><td id="645"><a href="#645">645</a></td></tr
  1510. ><tr id="gr_svn7768_646"
  1511. ><td id="646"><a href="#646">646</a></td></tr
  1512. ><tr id="gr_svn7768_647"
  1513. ><td id="647"><a href="#647">647</a></td></tr
  1514. ><tr id="gr_svn7768_648"
  1515. ><td id="648"><a href="#648">648</a></td></tr
  1516. ><tr id="gr_svn7768_649"
  1517. ><td id="649"><a href="#649">649</a></td></tr
  1518. ><tr id="gr_svn7768_650"
  1519. ><td id="650"><a href="#650">650</a></td></tr
  1520. ><tr id="gr_svn7768_651"
  1521. ><td id="651"><a href="#651">651</a></td></tr
  1522. ><tr id="gr_svn7768_652"
  1523. ><td id="652"><a href="#652">652</a></td></tr
  1524. ><tr id="gr_svn7768_653"
  1525. ><td id="653"><a href="#653">653</a></td></tr
  1526. ><tr id="gr_svn7768_654"
  1527. ><td id="654"><a href="#654">654</a></td></tr
  1528. ><tr id="gr_svn7768_655"
  1529. ><td id="655"><a href="#655">655</a></td></tr
  1530. ><tr id="gr_svn7768_656"
  1531. ><td id="656"><a href="#656">656</a></td></tr
  1532. ><tr id="gr_svn7768_657"
  1533. ><td id="657"><a href="#657">657</a></td></tr
  1534. ><tr id="gr_svn7768_658"
  1535. ><td id="658"><a href="#658">658</a></td></tr
  1536. ><tr id="gr_svn7768_659"
  1537. ><td id="659"><a href="#659">659</a></td></tr
  1538. ><tr id="gr_svn7768_660"
  1539. ><td id="660"><a href="#660">660</a></td></tr
  1540. ><tr id="gr_svn7768_661"
  1541. ><td id="661"><a href="#661">661</a></td></tr
  1542. ><tr id="gr_svn7768_662"
  1543. ><td id="662"><a href="#662">662</a></td></tr
  1544. ><tr id="gr_svn7768_663"
  1545. ><td id="663"><a href="#663">663</a></td></tr
  1546. ><tr id="gr_svn7768_664"
  1547. ><td id="664"><a href="#664">664</a></td></tr
  1548. ><tr id="gr_svn7768_665"
  1549. ><td id="665"><a href="#665">665</a></td></tr
  1550. ><tr id="gr_svn7768_666"
  1551. ><td id="666"><a href="#666">666</a></td></tr
  1552. ><tr id="gr_svn7768_667"
  1553. ><td id="667"><a href="#667">667</a></td></tr
  1554. ><tr id="gr_svn7768_668"
  1555. ><td id="668"><a href="#668">668</a></td></tr
  1556. ><tr id="gr_svn7768_669"
  1557. ><td id="669"><a href="#669">669</a></td></tr
  1558. ><tr id="gr_svn7768_670"
  1559. ><td id="670"><a href="#670">670</a></td></tr
  1560. ><tr id="gr_svn7768_671"
  1561. ><td id="671"><a href="#671">671</a></td></tr
  1562. ><tr id="gr_svn7768_672"
  1563. ><td id="672"><a href="#672">672</a></td></tr
  1564. ><tr id="gr_svn7768_673"
  1565. ><td id="673"><a href="#673">673</a></td></tr
  1566. ><tr id="gr_svn7768_674"
  1567. ><td id="674"><a href="#674">674</a></td></tr
  1568. ><tr id="gr_svn7768_675"
  1569. ><td id="675"><a href="#675">675</a></td></tr
  1570. ><tr id="gr_svn7768_676"
  1571. ><td id="676"><a href="#676">676</a></td></tr
  1572. ><tr id="gr_svn7768_677"
  1573. ><td id="677"><a href="#677">677</a></td></tr
  1574. ><tr id="gr_svn7768_678"
  1575. ><td id="678"><a href="#678">678</a></td></tr
  1576. ><tr id="gr_svn7768_679"
  1577. ><td id="679"><a href="#679">679</a></td></tr
  1578. ><tr id="gr_svn7768_680"
  1579. ><td id="680"><a href="#680">680</a></td></tr
  1580. ><tr id="gr_svn7768_681"
  1581. ><td id="681"><a href="#681">681</a></td></tr
  1582. ><tr id="gr_svn7768_682"
  1583. ><td id="682"><a href="#682">682</a></td></tr
  1584. ><tr id="gr_svn7768_683"
  1585. ><td id="683"><a href="#683">683</a></td></tr
  1586. ><tr id="gr_svn7768_684"
  1587. ><td id="684"><a href="#684">684</a></td></tr
  1588. ><tr id="gr_svn7768_685"
  1589. ><td id="685"><a href="#685">685</a></td></tr
  1590. ><tr id="gr_svn7768_686"
  1591. ><td id="686"><a href="#686">686</a></td></tr
  1592. ><tr id="gr_svn7768_687"
  1593. ><td id="687"><a href="#687">687</a></td></tr
  1594. ><tr id="gr_svn7768_688"
  1595. ><td id="688"><a href="#688">688</a></td></tr
  1596. ><tr id="gr_svn7768_689"
  1597. ><td id="689"><a href="#689">689</a></td></tr
  1598. ><tr id="gr_svn7768_690"
  1599. ><td id="690"><a href="#690">690</a></td></tr
  1600. ><tr id="gr_svn7768_691"
  1601. ><td id="691"><a href="#691">691</a></td></tr
  1602. ><tr id="gr_svn7768_692"
  1603. ><td id="692"><a href="#692">692</a></td></tr
  1604. ><tr id="gr_svn7768_693"
  1605. ><td id="693"><a href="#693">693</a></td></tr
  1606. ><tr id="gr_svn7768_694"
  1607. ><td id="694"><a href="#694">694</a></td></tr
  1608. ><tr id="gr_svn7768_695"
  1609. ><td id="695"><a href="#695">695</a></td></tr
  1610. ><tr id="gr_svn7768_696"
  1611. ><td id="696"><a href="#696">696</a></td></tr
  1612. ><tr id="gr_svn7768_697"
  1613. ><td id="697"><a href="#697">697</a></td></tr
  1614. ><tr id="gr_svn7768_698"
  1615. ><td id="698"><a href="#698">698</a></td></tr
  1616. ><tr id="gr_svn7768_699"
  1617. ><td id="699"><a href="#699">699</a></td></tr
  1618. ><tr id="gr_svn7768_700"
  1619. ><td id="700"><a href="#700">700</a></td></tr
  1620. ><tr id="gr_svn7768_701"
  1621. ><td id="701"><a href="#701">701</a></td></tr
  1622. ><tr id="gr_svn7768_702"
  1623. ><td id="702"><a href="#702">702</a></td></tr
  1624. ><tr id="gr_svn7768_703"
  1625. ><td id="703"><a href="#703">703</a></td></tr
  1626. ><tr id="gr_svn7768_704"
  1627. ><td id="704"><a href="#704">704</a></td></tr
  1628. ><tr id="gr_svn7768_705"
  1629. ><td id="705"><a href="#705">705</a></td></tr
  1630. ><tr id="gr_svn7768_706"
  1631. ><td id="706"><a href="#706">706</a></td></tr
  1632. ><tr id="gr_svn7768_707"
  1633. ><td id="707"><a href="#707">707</a></td></tr
  1634. ><tr id="gr_svn7768_708"
  1635. ><td id="708"><a href="#708">708</a></td></tr
  1636. ><tr id="gr_svn7768_709"
  1637. ><td id="709"><a href="#709">709</a></td></tr
  1638. ><tr id="gr_svn7768_710"
  1639. ><td id="710"><a href="#710">710</a></td></tr
  1640. ><tr id="gr_svn7768_711"
  1641. ><td id="711"><a href="#711">711</a></td></tr
  1642. ><tr id="gr_svn7768_712"
  1643. ><td id="712"><a href="#712">712</a></td></tr
  1644. ><tr id="gr_svn7768_713"
  1645. ><td id="713"><a href="#713">713</a></td></tr
  1646. ><tr id="gr_svn7768_714"
  1647. ><td id="714"><a href="#714">714</a></td></tr
  1648. ><tr id="gr_svn7768_715"
  1649. ><td id="715"><a href="#715">715</a></td></tr
  1650. ><tr id="gr_svn7768_716"
  1651. ><td id="716"><a href="#716">716</a></td></tr
  1652. ><tr id="gr_svn7768_717"
  1653. ><td id="717"><a href="#717">717</a></td></tr
  1654. ><tr id="gr_svn7768_718"
  1655. ><td id="718"><a href="#718">718</a></td></tr
  1656. ><tr id="gr_svn7768_719"
  1657. ><td id="719"><a href="#719">719</a></td></tr
  1658. ><tr id="gr_svn7768_720"
  1659. ><td id="720"><a href="#720">720</a></td></tr
  1660. ><tr id="gr_svn7768_721"
  1661. ><td id="721"><a href="#721">721</a></td></tr
  1662. ><tr id="gr_svn7768_722"
  1663. ><td id="722"><a href="#722">722</a></td></tr
  1664. ><tr id="gr_svn7768_723"
  1665. ><td id="723"><a href="#723">723</a></td></tr
  1666. ><tr id="gr_svn7768_724"
  1667. ><td id="724"><a href="#724">724</a></td></tr
  1668. ><tr id="gr_svn7768_725"
  1669. ><td id="725"><a href="#725">725</a></td></tr
  1670. ><tr id="gr_svn7768_726"
  1671. ><td id="726"><a href="#726">726</a></td></tr
  1672. ><tr id="gr_svn7768_727"
  1673. ><td id="727"><a href="#727">727</a></td></tr
  1674. ><tr id="gr_svn7768_728"
  1675. ><td id="728"><a href="#728">728</a></td></tr
  1676. ><tr id="gr_svn7768_729"
  1677. ><td id="729"><a href="#729">729</a></td></tr
  1678. ><tr id="gr_svn7768_730"
  1679. ><td id="730"><a href="#730">730</a></td></tr
  1680. ><tr id="gr_svn7768_731"
  1681. ><td id="731"><a href="#731">731</a></td></tr
  1682. ><tr id="gr_svn7768_732"
  1683. ><td id="732"><a href="#732">732</a></td></tr
  1684. ><tr id="gr_svn7768_733"
  1685. ><td id="733"><a href="#733">733</a></td></tr
  1686. ><tr id="gr_svn7768_734"
  1687. ><td id="734"><a href="#734">734</a></td></tr
  1688. ><tr id="gr_svn7768_735"
  1689. ><td id="735"><a href="#735">735</a></td></tr
  1690. ><tr id="gr_svn7768_736"
  1691. ><td id="736"><a href="#736">736</a></td></tr
  1692. ><tr id="gr_svn7768_737"
  1693. ><td id="737"><a href="#737">737</a></td></tr
  1694. ><tr id="gr_svn7768_738"
  1695. ><td id="738"><a href="#738">738</a></td></tr
  1696. ><tr id="gr_svn7768_739"
  1697. ><td id="739"><a href="#739">739</a></td></tr
  1698. ><tr id="gr_svn7768_740"
  1699. ><td id="740"><a href="#740">740</a></td></tr
  1700. ><tr id="gr_svn7768_741"
  1701. ><td id="741"><a href="#741">741</a></td></tr
  1702. ><tr id="gr_svn7768_742"
  1703. ><td id="742"><a href="#742">742</a></td></tr
  1704. ><tr id="gr_svn7768_743"
  1705. ><td id="743"><a href="#743">743</a></td></tr
  1706. ><tr id="gr_svn7768_744"
  1707. ><td id="744"><a href="#744">744</a></td></tr
  1708. ><tr id="gr_svn7768_745"
  1709. ><td id="745"><a href="#745">745</a></td></tr
  1710. ><tr id="gr_svn7768_746"
  1711. ><td id="746"><a href="#746">746</a></td></tr
  1712. ><tr id="gr_svn7768_747"
  1713. ><td id="747"><a href="#747">747</a></td></tr
  1714. ><tr id="gr_svn7768_748"
  1715. ><td id="748"><a href="#748">748</a></td></tr
  1716. ><tr id="gr_svn7768_749"
  1717. ><td id="749"><a href="#749">749</a></td></tr
  1718. ><tr id="gr_svn7768_750"
  1719. ><td id="750"><a href="#750">750</a></td></tr
  1720. ><tr id="gr_svn7768_751"
  1721. ><td id="751"><a href="#751">751</a></td></tr
  1722. ><tr id="gr_svn7768_752"
  1723. ><td id="752"><a href="#752">752</a></td></tr
  1724. ><tr id="gr_svn7768_753"
  1725. ><td id="753"><a href="#753">753</a></td></tr
  1726. ><tr id="gr_svn7768_754"
  1727. ><td id="754"><a href="#754">754</a></td></tr
  1728. ><tr id="gr_svn7768_755"
  1729. ><td id="755"><a href="#755">755</a></td></tr
  1730. ><tr id="gr_svn7768_756"
  1731. ><td id="756"><a href="#756">756</a></td></tr
  1732. ><tr id="gr_svn7768_757"
  1733. ><td id="757"><a href="#757">757</a></td></tr
  1734. ><tr id="gr_svn7768_758"
  1735. ><td id="758"><a href="#758">758</a></td></tr
  1736. ><tr id="gr_svn7768_759"
  1737. ><td id="759"><a href="#759">759</a></td></tr
  1738. ><tr id="gr_svn7768_760"
  1739. ><td id="760"><a href="#760">760</a></td></tr
  1740. ><tr id="gr_svn7768_761"
  1741. ><td id="761"><a href="#761">761</a></td></tr
  1742. ><tr id="gr_svn7768_762"
  1743. ><td id="762"><a href="#762">762</a></td></tr
  1744. ><tr id="gr_svn7768_763"
  1745. ><td id="763"><a href="#763">763</a></td></tr
  1746. ><tr id="gr_svn7768_764"
  1747. ><td id="764"><a href="#764">764</a></td></tr
  1748. ><tr id="gr_svn7768_765"
  1749. ><td id="765"><a href="#765">765</a></td></tr
  1750. ><tr id="gr_svn7768_766"
  1751. ><td id="766"><a href="#766">766</a></td></tr
  1752. ><tr id="gr_svn7768_767"
  1753. ><td id="767"><a href="#767">767</a></td></tr
  1754. ><tr id="gr_svn7768_768"
  1755. ><td id="768"><a href="#768">768</a></td></tr
  1756. ><tr id="gr_svn7768_769"
  1757. ><td id="769"><a href="#769">769</a></td></tr
  1758. ><tr id="gr_svn7768_770"
  1759. ><td id="770"><a href="#770">770</a></td></tr
  1760. ><tr id="gr_svn7768_771"
  1761. ><td id="771"><a href="#771">771</a></td></tr
  1762. ><tr id="gr_svn7768_772"
  1763. ><td id="772"><a href="#772">772</a></td></tr
  1764. ><tr id="gr_svn7768_773"
  1765. ><td id="773"><a href="#773">773</a></td></tr
  1766. ><tr id="gr_svn7768_774"
  1767. ><td id="774"><a href="#774">774</a></td></tr
  1768. ><tr id="gr_svn7768_775"
  1769. ><td id="775"><a href="#775">775</a></td></tr
  1770. ><tr id="gr_svn7768_776"
  1771. ><td id="776"><a href="#776">776</a></td></tr
  1772. ><tr id="gr_svn7768_777"
  1773. ><td id="777"><a href="#777">777</a></td></tr
  1774. ><tr id="gr_svn7768_778"
  1775. ><td id="778"><a href="#778">778</a></td></tr
  1776. ><tr id="gr_svn7768_779"
  1777. ><td id="779"><a href="#779">779</a></td></tr
  1778. ><tr id="gr_svn7768_780"
  1779. ><td id="780"><a href="#780">780</a></td></tr
  1780. ><tr id="gr_svn7768_781"
  1781. ><td id="781"><a href="#781">781</a></td></tr
  1782. ><tr id="gr_svn7768_782"
  1783. ><td id="782"><a href="#782">782</a></td></tr
  1784. ><tr id="gr_svn7768_783"
  1785. ><td id="783"><a href="#783">783</a></td></tr
  1786. ><tr id="gr_svn7768_784"
  1787. ><td id="784"><a href="#784">784</a></td></tr
  1788. ><tr id="gr_svn7768_785"
  1789. ><td id="785"><a href="#785">785</a></td></tr
  1790. ><tr id="gr_svn7768_786"
  1791. ><td id="786"><a href="#786">786</a></td></tr
  1792. ><tr id="gr_svn7768_787"
  1793. ><td id="787"><a href="#787">787</a></td></tr
  1794. ><tr id="gr_svn7768_788"
  1795. ><td id="788"><a href="#788">788</a></td></tr
  1796. ><tr id="gr_svn7768_789"
  1797. ><td id="789"><a href="#789">789</a></td></tr
  1798. ><tr id="gr_svn7768_790"
  1799. ><td id="790"><a href="#790">790</a></td></tr
  1800. ><tr id="gr_svn7768_791"
  1801. ><td id="791"><a href="#791">791</a></td></tr
  1802. ><tr id="gr_svn7768_792"
  1803. ><td id="792"><a href="#792">792</a></td></tr
  1804. ><tr id="gr_svn7768_793"
  1805. ><td id="793"><a href="#793">793</a></td></tr
  1806. ><tr id="gr_svn7768_794"
  1807. ><td id="794"><a href="#794">794</a></td></tr
  1808. ><tr id="gr_svn7768_795"
  1809. ><td id="795"><a href="#795">795</a></td></tr
  1810. ><tr id="gr_svn7768_796"
  1811. ><td id="796"><a href="#796">796</a></td></tr
  1812. ><tr id="gr_svn7768_797"
  1813. ><td id="797"><a href="#797">797</a></td></tr
  1814. ><tr id="gr_svn7768_798"
  1815. ><td id="798"><a href="#798">798</a></td></tr
  1816. ><tr id="gr_svn7768_799"
  1817. ><td id="799"><a href="#799">799</a></td></tr
  1818. ><tr id="gr_svn7768_800"
  1819. ><td id="800"><a href="#800">800</a></td></tr
  1820. ><tr id="gr_svn7768_801"
  1821. ><td id="801"><a href="#801">801</a></td></tr
  1822. ><tr id="gr_svn7768_802"
  1823. ><td id="802"><a href="#802">802</a></td></tr
  1824. ><tr id="gr_svn7768_803"
  1825. ><td id="803"><a href="#803">803</a></td></tr
  1826. ><tr id="gr_svn7768_804"
  1827. ><td id="804"><a href="#804">804</a></td></tr
  1828. ><tr id="gr_svn7768_805"
  1829. ><td id="805"><a href="#805">805</a></td></tr
  1830. ><tr id="gr_svn7768_806"
  1831. ><td id="806"><a href="#806">806</a></td></tr
  1832. ><tr id="gr_svn7768_807"
  1833. ><td id="807"><a href="#807">807</a></td></tr
  1834. ><tr id="gr_svn7768_808"
  1835. ><td id="808"><a href="#808">808</a></td></tr
  1836. ><tr id="gr_svn7768_809"
  1837. ><td id="809"><a href="#809">809</a></td></tr
  1838. ><tr id="gr_svn7768_810"
  1839. ><td id="810"><a href="#810">810</a></td></tr
  1840. ><tr id="gr_svn7768_811"
  1841. ><td id="811"><a href="#811">811</a></td></tr
  1842. ><tr id="gr_svn7768_812"
  1843. ><td id="812"><a href="#812">812</a></td></tr
  1844. ><tr id="gr_svn7768_813"
  1845. ><td id="813"><a href="#813">813</a></td></tr
  1846. ><tr id="gr_svn7768_814"
  1847. ><td id="814"><a href="#814">814</a></td></tr
  1848. ><tr id="gr_svn7768_815"
  1849. ><td id="815"><a href="#815">815</a></td></tr
  1850. ><tr id="gr_svn7768_816"
  1851. ><td id="816"><a href="#816">816</a></td></tr
  1852. ><tr id="gr_svn7768_817"
  1853. ><td id="817"><a href="#817">817</a></td></tr
  1854. ><tr id="gr_svn7768_818"
  1855. ><td id="818"><a href="#818">818</a></td></tr
  1856. ><tr id="gr_svn7768_819"
  1857. ><td id="819"><a href="#819">819</a></td></tr
  1858. ><tr id="gr_svn7768_820"
  1859. ><td id="820"><a href="#820">820</a></td></tr
  1860. ><tr id="gr_svn7768_821"
  1861. ><td id="821"><a href="#821">821</a></td></tr
  1862. ><tr id="gr_svn7768_822"
  1863. ><td id="822"><a href="#822">822</a></td></tr
  1864. ><tr id="gr_svn7768_823"
  1865. ><td id="823"><a href="#823">823</a></td></tr
  1866. ><tr id="gr_svn7768_824"
  1867. ><td id="824"><a href="#824">824</a></td></tr
  1868. ><tr id="gr_svn7768_825"
  1869. ><td id="825"><a href="#825">825</a></td></tr
  1870. ><tr id="gr_svn7768_826"
  1871. ><td id="826"><a href="#826">826</a></td></tr
  1872. ><tr id="gr_svn7768_827"
  1873. ><td id="827"><a href="#827">827</a></td></tr
  1874. ><tr id="gr_svn7768_828"
  1875. ><td id="828"><a href="#828">828</a></td></tr
  1876. ><tr id="gr_svn7768_829"
  1877. ><td id="829"><a href="#829">829</a></td></tr
  1878. ><tr id="gr_svn7768_830"
  1879. ><td id="830"><a href="#830">830</a></td></tr
  1880. ><tr id="gr_svn7768_831"
  1881. ><td id="831"><a href="#831">831</a></td></tr
  1882. ><tr id="gr_svn7768_832"
  1883. ><td id="832"><a href="#832">832</a></td></tr
  1884. ><tr id="gr_svn7768_833"
  1885. ><td id="833"><a href="#833">833</a></td></tr
  1886. ><tr id="gr_svn7768_834"
  1887. ><td id="834"><a href="#834">834</a></td></tr
  1888. ><tr id="gr_svn7768_835"
  1889. ><td id="835"><a href="#835">835</a></td></tr
  1890. ><tr id="gr_svn7768_836"
  1891. ><td id="836"><a href="#836">836</a></td></tr
  1892. ><tr id="gr_svn7768_837"
  1893. ><td id="837"><a href="#837">837</a></td></tr
  1894. ><tr id="gr_svn7768_838"
  1895. ><td id="838"><a href="#838">838</a></td></tr
  1896. ><tr id="gr_svn7768_839"
  1897. ><td id="839"><a href="#839">839</a></td></tr
  1898. ><tr id="gr_svn7768_840"
  1899. ><td id="840"><a href="#840">840</a></td></tr
  1900. ><tr id="gr_svn7768_841"
  1901. ><td id="841"><a href="#841">841</a></td></tr
  1902. ><tr id="gr_svn7768_842"
  1903. ><td id="842"><a href="#842">842</a></td></tr
  1904. ><tr id="gr_svn7768_843"
  1905. ><td id="843"><a href="#843">843</a></td></tr
  1906. ><tr id="gr_svn7768_844"
  1907. ><td id="844"><a href="#844">844</a></td></tr
  1908. ><tr id="gr_svn7768_845"
  1909. ><td id="845"><a href="#845">845</a></td></tr
  1910. ><tr id="gr_svn7768_846"
  1911. ><td id="846"><a href="#846">846</a></td></tr
  1912. ><tr id="gr_svn7768_847"
  1913. ><td id="847"><a href="#847">847</a></td></tr
  1914. ><tr id="gr_svn7768_848"
  1915. ><td id="848"><a href="#848">848</a></td></tr
  1916. ><tr id="gr_svn7768_849"
  1917. ><td id="849"><a href="#849">849</a></td></tr
  1918. ><tr id="gr_svn7768_850"
  1919. ><td id="850"><a href="#850">850</a></td></tr
  1920. ><tr id="gr_svn7768_851"
  1921. ><td id="851"><a href="#851">851</a></td></tr
  1922. ><tr id="gr_svn7768_852"
  1923. ><td id="852"><a href="#852">852</a></td></tr
  1924. ><tr id="gr_svn7768_853"
  1925. ><td id="853"><a href="#853">853</a></td></tr
  1926. ><tr id="gr_svn7768_854"
  1927. ><td id="854"><a href="#854">854</a></td></tr
  1928. ><tr id="gr_svn7768_855"
  1929. ><td id="855"><a href="#855">855</a></td></tr
  1930. ><tr id="gr_svn7768_856"
  1931. ><td id="856"><a href="#856">856</a></td></tr
  1932. ><tr id="gr_svn7768_857"
  1933. ><td id="857"><a href="#857">857</a></td></tr
  1934. ><tr id="gr_svn7768_858"
  1935. ><td id="858"><a href="#858">858</a></td></tr
  1936. ><tr id="gr_svn7768_859"
  1937. ><td id="859"><a href="#859">859</a></td></tr
  1938. ><tr id="gr_svn7768_860"
  1939. ><td id="860"><a href="#860">860</a></td></tr
  1940. ><tr id="gr_svn7768_861"
  1941. ><td id="861"><a href="#861">861</a></td></tr
  1942. ><tr id="gr_svn7768_862"
  1943. ><td id="862"><a href="#862">862</a></td></tr
  1944. ><tr id="gr_svn7768_863"
  1945. ><td id="863"><a href="#863">863</a></td></tr
  1946. ><tr id="gr_svn7768_864"
  1947. ><td id="864"><a href="#864">864</a></td></tr
  1948. ><tr id="gr_svn7768_865"
  1949. ><td id="865"><a href="#865">865</a></td></tr
  1950. ><tr id="gr_svn7768_866"
  1951. ><td id="866"><a href="#866">866</a></td></tr
  1952. ><tr id="gr_svn7768_867"
  1953. ><td id="867"><a href="#867">867</a></td></tr
  1954. ><tr id="gr_svn7768_868"
  1955. ><td id="868"><a href="#868">868</a></td></tr
  1956. ><tr id="gr_svn7768_869"
  1957. ><td id="869"><a href="#869">869</a></td></tr
  1958. ><tr id="gr_svn7768_870"
  1959. ><td id="870"><a href="#870">870</a></td></tr
  1960. ><tr id="gr_svn7768_871"
  1961. ><td id="871"><a href="#871">871</a></td></tr
  1962. ><tr id="gr_svn7768_872"
  1963. ><td id="872"><a href="#872">872</a></td></tr
  1964. ><tr id="gr_svn7768_873"
  1965. ><td id="873"><a href="#873">873</a></td></tr
  1966. ><tr id="gr_svn7768_874"
  1967. ><td id="874"><a href="#874">874</a></td></tr
  1968. ><tr id="gr_svn7768_875"
  1969. ><td id="875"><a href="#875">875</a></td></tr
  1970. ><tr id="gr_svn7768_876"
  1971. ><td id="876"><a href="#876">876</a></td></tr
  1972. ><tr id="gr_svn7768_877"
  1973. ><td id="877"><a href="#877">877</a></td></tr
  1974. ><tr id="gr_svn7768_878"
  1975. ><td id="878"><a href="#878">878</a></td></tr
  1976. ><tr id="gr_svn7768_879"
  1977. ><td id="879"><a href="#879">879</a></td></tr
  1978. ><tr id="gr_svn7768_880"
  1979. ><td id="880"><a href="#880">880</a></td></tr
  1980. ><tr id="gr_svn7768_881"
  1981. ><td id="881"><a href="#881">881</a></td></tr
  1982. ><tr id="gr_svn7768_882"
  1983. ><td id="882"><a href="#882">882</a></td></tr
  1984. ><tr id="gr_svn7768_883"
  1985. ><td id="883"><a href="#883">883</a></td></tr
  1986. ><tr id="gr_svn7768_884"
  1987. ><td id="884"><a href="#884">884</a></td></tr
  1988. ><tr id="gr_svn7768_885"
  1989. ><td id="885"><a href="#885">885</a></td></tr
  1990. ><tr id="gr_svn7768_886"
  1991. ><td id="886"><a href="#886">886</a></td></tr
  1992. ><tr id="gr_svn7768_887"
  1993. ><td id="887"><a href="#887">887</a></td></tr
  1994. ><tr id="gr_svn7768_888"
  1995. ><td id="888"><a href="#888">888</a></td></tr
  1996. ><tr id="gr_svn7768_889"
  1997. ><td id="889"><a href="#889">889</a></td></tr
  1998. ><tr id="gr_svn7768_890"
  1999. ><td id="890"><a href="#890">890</a></td></tr
  2000. ><tr id="gr_svn7768_891"
  2001. ><td id="891"><a href="#891">891</a></td></tr
  2002. ><tr id="gr_svn7768_892"
  2003. ><td id="892"><a href="#892">892</a></td></tr
  2004. ><tr id="gr_svn7768_893"
  2005. ><td id="893"><a href="#893">893</a></td></tr
  2006. ><tr id="gr_svn7768_894"
  2007. ><td id="894"><a href="#894">894</a></td></tr
  2008. ><tr id="gr_svn7768_895"
  2009. ><td id="895"><a href="#895">895</a></td></tr
  2010. ><tr id="gr_svn7768_896"
  2011. ><td id="896"><a href="#896">896</a></td></tr
  2012. ><tr id="gr_svn7768_897"
  2013. ><td id="897"><a href="#897">897</a></td></tr
  2014. ><tr id="gr_svn7768_898"
  2015. ><td id="898"><a href="#898">898</a></td></tr
  2016. ><tr id="gr_svn7768_899"
  2017. ><td id="899"><a href="#899">899</a></td></tr
  2018. ><tr id="gr_svn7768_900"
  2019. ><td id="900"><a href="#900">900</a></td></tr
  2020. ><tr id="gr_svn7768_901"
  2021. ><td id="901"><a href="#901">901</a></td></tr
  2022. ><tr id="gr_svn7768_902"
  2023. ><td id="902"><a href="#902">902</a></td></tr
  2024. ><tr id="gr_svn7768_903"
  2025. ><td id="903"><a href="#903">903</a></td></tr
  2026. ><tr id="gr_svn7768_904"
  2027. ><td id="904"><a href="#904">904</a></td></tr
  2028. ><tr id="gr_svn7768_905"
  2029. ><td id="905"><a href="#905">905</a></td></tr
  2030. ><tr id="gr_svn7768_906"
  2031. ><td id="906"><a href="#906">906</a></td></tr
  2032. ><tr id="gr_svn7768_907"
  2033. ><td id="907"><a href="#907">907</a></td></tr
  2034. ><tr id="gr_svn7768_908"
  2035. ><td id="908"><a href="#908">908</a></td></tr
  2036. ><tr id="gr_svn7768_909"
  2037. ><td id="909"><a href="#909">909</a></td></tr
  2038. ><tr id="gr_svn7768_910"
  2039. ><td id="910"><a href="#910">910</a></td></tr
  2040. ><tr id="gr_svn7768_911"
  2041. ><td id="911"><a href="#911">911</a></td></tr
  2042. ><tr id="gr_svn7768_912"
  2043. ><td id="912"><a href="#912">912</a></td></tr
  2044. ><tr id="gr_svn7768_913"
  2045. ><td id="913"><a href="#913">913</a></td></tr
  2046. ><tr id="gr_svn7768_914"
  2047. ><td id="914"><a href="#914">914</a></td></tr
  2048. ><tr id="gr_svn7768_915"
  2049. ><td id="915"><a href="#915">915</a></td></tr
  2050. ><tr id="gr_svn7768_916"
  2051. ><td id="916"><a href="#916">916</a></td></tr
  2052. ><tr id="gr_svn7768_917"
  2053. ><td id="917"><a href="#917">917</a></td></tr
  2054. ><tr id="gr_svn7768_918"
  2055. ><td id="918"><a href="#918">918</a></td></tr
  2056. ><tr id="gr_svn7768_919"
  2057. ><td id="919"><a href="#919">919</a></td></tr
  2058. ><tr id="gr_svn7768_920"
  2059. ><td id="920"><a href="#920">920</a></td></tr
  2060. ><tr id="gr_svn7768_921"
  2061. ><td id="921"><a href="#921">921</a></td></tr
  2062. ><tr id="gr_svn7768_922"
  2063. ><td id="922"><a href="#922">922</a></td></tr
  2064. ><tr id="gr_svn7768_923"
  2065. ><td id="923"><a href="#923">923</a></td></tr
  2066. ><tr id="gr_svn7768_924"
  2067. ><td id="924"><a href="#924">924</a></td></tr
  2068. ><tr id="gr_svn7768_925"
  2069. ><td id="925"><a href="#925">925</a></td></tr
  2070. ><tr id="gr_svn7768_926"
  2071. ><td id="926"><a href="#926">926</a></td></tr
  2072. ><tr id="gr_svn7768_927"
  2073. ><td id="927"><a href="#927">927</a></td></tr
  2074. ><tr id="gr_svn7768_928"
  2075. ><td id="928"><a href="#928">928</a></td></tr
  2076. ><tr id="gr_svn7768_929"
  2077. ><td id="929"><a href="#929">929</a></td></tr
  2078. ><tr id="gr_svn7768_930"
  2079. ><td id="930"><a href="#930">930</a></td></tr
  2080. ><tr id="gr_svn7768_931"
  2081. ><td id="931"><a href="#931">931</a></td></tr
  2082. ><tr id="gr_svn7768_932"
  2083. ><td id="932"><a href="#932">932</a></td></tr
  2084. ><tr id="gr_svn7768_933"
  2085. ><td id="933"><a href="#933">933</a></td></tr
  2086. ><tr id="gr_svn7768_934"
  2087. ><td id="934"><a href="#934">934</a></td></tr
  2088. ><tr id="gr_svn7768_935"
  2089. ><td id="935"><a href="#935">935</a></td></tr
  2090. ><tr id="gr_svn7768_936"
  2091. ><td id="936"><a href="#936">936</a></td></tr
  2092. ><tr id="gr_svn7768_937"
  2093. ><td id="937"><a href="#937">937</a></td></tr
  2094. ><tr id="gr_svn7768_938"
  2095. ><td id="938"><a href="#938">938</a></td></tr
  2096. ><tr id="gr_svn7768_939"
  2097. ><td id="939"><a href="#939">939</a></td></tr
  2098. ><tr id="gr_svn7768_940"
  2099. ><td id="940"><a href="#940">940</a></td></tr
  2100. ><tr id="gr_svn7768_941"
  2101. ><td id="941"><a href="#941">941</a></td></tr
  2102. ><tr id="gr_svn7768_942"
  2103. ><td id="942"><a href="#942">942</a></td></tr
  2104. ><tr id="gr_svn7768_943"
  2105. ><td id="943"><a href="#943">943</a></td></tr
  2106. ><tr id="gr_svn7768_944"
  2107. ><td id="944"><a href="#944">944</a></td></tr
  2108. ><tr id="gr_svn7768_945"
  2109. ><td id="945"><a href="#945">945</a></td></tr
  2110. ><tr id="gr_svn7768_946"
  2111. ><td id="946"><a href="#946">946</a></td></tr
  2112. ><tr id="gr_svn7768_947"
  2113. ><td id="947"><a href="#947">947</a></td></tr
  2114. ><tr id="gr_svn7768_948"
  2115. ><td id="948"><a href="#948">948</a></td></tr
  2116. ><tr id="gr_svn7768_949"
  2117. ><td id="949"><a href="#949">949</a></td></tr
  2118. ><tr id="gr_svn7768_950"
  2119. ><td id="950"><a href="#950">950</a></td></tr
  2120. ><tr id="gr_svn7768_951"
  2121. ><td id="951"><a href="#951">951</a></td></tr
  2122. ><tr id="gr_svn7768_952"
  2123. ><td id="952"><a href="#952">952</a></td></tr
  2124. ><tr id="gr_svn7768_953"
  2125. ><td id="953"><a href="#953">953</a></td></tr
  2126. ><tr id="gr_svn7768_954"
  2127. ><td id="954"><a href="#954">954</a></td></tr
  2128. ><tr id="gr_svn7768_955"
  2129. ><td id="955"><a href="#955">955</a></td></tr
  2130. ><tr id="gr_svn7768_956"
  2131. ><td id="956"><a href="#956">956</a></td></tr
  2132. ><tr id="gr_svn7768_957"
  2133. ><td id="957"><a href="#957">957</a></td></tr
  2134. ><tr id="gr_svn7768_958"
  2135. ><td id="958"><a href="#958">958</a></td></tr
  2136. ><tr id="gr_svn7768_959"
  2137. ><td id="959"><a href="#959">959</a></td></tr
  2138. ><tr id="gr_svn7768_960"
  2139. ><td id="960"><a href="#960">960</a></td></tr
  2140. ><tr id="gr_svn7768_961"
  2141. ><td id="961"><a href="#961">961</a></td></tr
  2142. ><tr id="gr_svn7768_962"
  2143. ><td id="962"><a href="#962">962</a></td></tr
  2144. ><tr id="gr_svn7768_963"
  2145. ><td id="963"><a href="#963">963</a></td></tr
  2146. ><tr id="gr_svn7768_964"
  2147. ><td id="964"><a href="#964">964</a></td></tr
  2148. ><tr id="gr_svn7768_965"
  2149. ><td id="965"><a href="#965">965</a></td></tr
  2150. ><tr id="gr_svn7768_966"
  2151. ><td id="966"><a href="#966">966</a></td></tr
  2152. ><tr id="gr_svn7768_967"
  2153. ><td id="967"><a href="#967">967</a></td></tr
  2154. ><tr id="gr_svn7768_968"
  2155. ><td id="968"><a href="#968">968</a></td></tr
  2156. ><tr id="gr_svn7768_969"
  2157. ><td id="969"><a href="#969">969</a></td></tr
  2158. ><tr id="gr_svn7768_970"
  2159. ><td id="970"><a href="#970">970</a></td></tr
  2160. ><tr id="gr_svn7768_971"
  2161. ><td id="971"><a href="#971">971</a></td></tr
  2162. ><tr id="gr_svn7768_972"
  2163. ><td id="972"><a href="#972">972</a></td></tr
  2164. ><tr id="gr_svn7768_973"
  2165. ><td id="973"><a href="#973">973</a></td></tr
  2166. ><tr id="gr_svn7768_974"
  2167. ><td id="974"><a href="#974">974</a></td></tr
  2168. ><tr id="gr_svn7768_975"
  2169. ><td id="975"><a href="#975">975</a></td></tr
  2170. ><tr id="gr_svn7768_976"
  2171. ><td id="976"><a href="#976">976</a></td></tr
  2172. ><tr id="gr_svn7768_977"
  2173. ><td id="977"><a href="#977">977</a></td></tr
  2174. ><tr id="gr_svn7768_978"
  2175. ><td id="978"><a href="#978">978</a></td></tr
  2176. ><tr id="gr_svn7768_979"
  2177. ><td id="979"><a href="#979">979</a></td></tr
  2178. ><tr id="gr_svn7768_980"
  2179. ><td id="980"><a href="#980">980</a></td></tr
  2180. ><tr id="gr_svn7768_981"
  2181. ><td id="981"><a href="#981">981</a></td></tr
  2182. ><tr id="gr_svn7768_982"
  2183. ><td id="982"><a href="#982">982</a></td></tr
  2184. ><tr id="gr_svn7768_983"
  2185. ><td id="983"><a href="#983">983</a></td></tr
  2186. ><tr id="gr_svn7768_984"
  2187. ><td id="984"><a href="#984">984</a></td></tr
  2188. ><tr id="gr_svn7768_985"
  2189. ><td id="985"><a href="#985">985</a></td></tr
  2190. ><tr id="gr_svn7768_986"
  2191. ><td id="986"><a href="#986">986</a></td></tr
  2192. ><tr id="gr_svn7768_987"
  2193. ><td id="987"><a href="#987">987</a></td></tr
  2194. ><tr id="gr_svn7768_988"
  2195. ><td id="988"><a href="#988">988</a></td></tr
  2196. ><tr id="gr_svn7768_989"
  2197. ><td id="989"><a href="#989">989</a></td></tr
  2198. ><tr id="gr_svn7768_990"
  2199. ><td id="990"><a href="#990">990</a></td></tr
  2200. ><tr id="gr_svn7768_991"
  2201. ><td id="991"><a href="#991">991</a></td></tr
  2202. ><tr id="gr_svn7768_992"
  2203. ><td id="992"><a href="#992">992</a></td></tr
  2204. ><tr id="gr_svn7768_993"
  2205. ><td id="993"><a href="#993">993</a></td></tr
  2206. ><tr id="gr_svn7768_994"
  2207. ><td id="994"><a href="#994">994</a></td></tr
  2208. ><tr id="gr_svn7768_995"
  2209. ><td id="995"><a href="#995">995</a></td></tr
  2210. ><tr id="gr_svn7768_996"
  2211. ><td id="996"><a href="#996">996</a></td></tr
  2212. ><tr id="gr_svn7768_997"
  2213. ><td id="997"><a href="#997">997</a></td></tr
  2214. ><tr id="gr_svn7768_998"
  2215. ><td id="998"><a href="#998">998</a></td></tr
  2216. ><tr id="gr_svn7768_999"
  2217. ><td id="999"><a href="#999">999</a></td></tr
  2218. ><tr id="gr_svn7768_1000"
  2219. ><td id="1000"><a href="#1000">1000</a></td></tr
  2220. ><tr id="gr_svn7768_1001"
  2221. ><td id="1001"><a href="#1001">1001</a></td></tr
  2222. ><tr id="gr_svn7768_1002"
  2223. ><td id="1002"><a href="#1002">1002</a></td></tr
  2224. ><tr id="gr_svn7768_1003"
  2225. ><td id="1003"><a href="#1003">1003</a></td></tr
  2226. ><tr id="gr_svn7768_1004"
  2227. ><td id="1004"><a href="#1004">1004</a></td></tr
  2228. ><tr id="gr_svn7768_1005"
  2229. ><td id="1005"><a href="#1005">1005</a></td></tr
  2230. ><tr id="gr_svn7768_1006"
  2231. ><td id="1006"><a href="#1006">1006</a></td></tr
  2232. ><tr id="gr_svn7768_1007"
  2233. ><td id="1007"><a href="#1007">1007</a></td></tr
  2234. ><tr id="gr_svn7768_1008"
  2235. ><td id="1008"><a href="#1008">1008</a></td></tr
  2236. ><tr id="gr_svn7768_1009"
  2237. ><td id="1009"><a href="#1009">1009</a></td></tr
  2238. ><tr id="gr_svn7768_1010"
  2239. ><td id="1010"><a href="#1010">1010</a></td></tr
  2240. ><tr id="gr_svn7768_1011"
  2241. ><td id="1011"><a href="#1011">1011</a></td></tr
  2242. ><tr id="gr_svn7768_1012"
  2243. ><td id="1012"><a href="#1012">1012</a></td></tr
  2244. ><tr id="gr_svn7768_1013"
  2245. ><td id="1013"><a href="#1013">1013</a></td></tr
  2246. ><tr id="gr_svn7768_1014"
  2247. ><td id="1014"><a href="#1014">1014</a></td></tr
  2248. ><tr id="gr_svn7768_1015"
  2249. ><td id="1015"><a href="#1015">1015</a></td></tr
  2250. ><tr id="gr_svn7768_1016"
  2251. ><td id="1016"><a href="#1016">1016</a></td></tr
  2252. ><tr id="gr_svn7768_1017"
  2253. ><td id="1017"><a href="#1017">1017</a></td></tr
  2254. ><tr id="gr_svn7768_1018"
  2255. ><td id="1018"><a href="#1018">1018</a></td></tr
  2256. ><tr id="gr_svn7768_1019"
  2257. ><td id="1019"><a href="#1019">1019</a></td></tr
  2258. ><tr id="gr_svn7768_1020"
  2259. ><td id="1020"><a href="#1020">1020</a></td></tr
  2260. ><tr id="gr_svn7768_1021"
  2261. ><td id="1021"><a href="#1021">1021</a></td></tr
  2262. ><tr id="gr_svn7768_1022"
  2263. ><td id="1022"><a href="#1022">1022</a></td></tr
  2264. ><tr id="gr_svn7768_1023"
  2265. ><td id="1023"><a href="#1023">1023</a></td></tr
  2266. ><tr id="gr_svn7768_1024"
  2267. ><td id="1024"><a href="#1024">1024</a></td></tr
  2268. ><tr id="gr_svn7768_1025"
  2269. ><td id="1025"><a href="#1025">1025</a></td></tr
  2270. ><tr id="gr_svn7768_1026"
  2271. ><td id="1026"><a href="#1026">1026</a></td></tr
  2272. ><tr id="gr_svn7768_1027"
  2273. ><td id="1027"><a href="#1027">1027</a></td></tr
  2274. ><tr id="gr_svn7768_1028"
  2275. ><td id="1028"><a href="#1028">1028</a></td></tr
  2276. ><tr id="gr_svn7768_1029"
  2277. ><td id="1029"><a href="#1029">1029</a></td></tr
  2278. ><tr id="gr_svn7768_1030"
  2279. ><td id="1030"><a href="#1030">1030</a></td></tr
  2280. ><tr id="gr_svn7768_1031"
  2281. ><td id="1031"><a href="#1031">1031</a></td></tr
  2282. ><tr id="gr_svn7768_1032"
  2283. ><td id="1032"><a href="#1032">1032</a></td></tr
  2284. ><tr id="gr_svn7768_1033"
  2285. ><td id="1033"><a href="#1033">1033</a></td></tr
  2286. ><tr id="gr_svn7768_1034"
  2287. ><td id="1034"><a href="#1034">1034</a></td></tr
  2288. ><tr id="gr_svn7768_1035"
  2289. ><td id="1035"><a href="#1035">1035</a></td></tr
  2290. ><tr id="gr_svn7768_1036"
  2291. ><td id="1036"><a href="#1036">1036</a></td></tr
  2292. ><tr id="gr_svn7768_1037"
  2293. ><td id="1037"><a href="#1037">1037</a></td></tr
  2294. ><tr id="gr_svn7768_1038"
  2295. ><td id="1038"><a href="#1038">1038</a></td></tr
  2296. ><tr id="gr_svn7768_1039"
  2297. ><td id="1039"><a href="#1039">1039</a></td></tr
  2298. ><tr id="gr_svn7768_1040"
  2299. ><td id="1040"><a href="#1040">1040</a></td></tr
  2300. ><tr id="gr_svn7768_1041"
  2301. ><td id="1041"><a href="#1041">1041</a></td></tr
  2302. ><tr id="gr_svn7768_1042"
  2303. ><td id="1042"><a href="#1042">1042</a></td></tr
  2304. ><tr id="gr_svn7768_1043"
  2305. ><td id="1043"><a href="#1043">1043</a></td></tr
  2306. ><tr id="gr_svn7768_1044"
  2307. ><td id="1044"><a href="#1044">1044</a></td></tr
  2308. ><tr id="gr_svn7768_1045"
  2309. ><td id="1045"><a href="#1045">1045</a></td></tr
  2310. ><tr id="gr_svn7768_1046"
  2311. ><td id="1046"><a href="#1046">1046</a></td></tr
  2312. ><tr id="gr_svn7768_1047"
  2313. ><td id="1047"><a href="#1047">1047</a></td></tr
  2314. ><tr id="gr_svn7768_1048"
  2315. ><td id="1048"><a href="#1048">1048</a></td></tr
  2316. ><tr id="gr_svn7768_1049"
  2317. ><td id="1049"><a href="#1049">1049</a></td></tr
  2318. ><tr id="gr_svn7768_1050"
  2319. ><td id="1050"><a href="#1050">1050</a></td></tr
  2320. ><tr id="gr_svn7768_1051"
  2321. ><td id="1051"><a href="#1051">1051</a></td></tr
  2322. ><tr id="gr_svn7768_1052"
  2323. ><td id="1052"><a href="#1052">1052</a></td></tr
  2324. ><tr id="gr_svn7768_1053"
  2325. ><td id="1053"><a href="#1053">1053</a></td></tr
  2326. ><tr id="gr_svn7768_1054"
  2327. ><td id="1054"><a href="#1054">1054</a></td></tr
  2328. ><tr id="gr_svn7768_1055"
  2329. ><td id="1055"><a href="#1055">1055</a></td></tr
  2330. ><tr id="gr_svn7768_1056"
  2331. ><td id="1056"><a href="#1056">1056</a></td></tr
  2332. ><tr id="gr_svn7768_1057"
  2333. ><td id="1057"><a href="#1057">1057</a></td></tr
  2334. ><tr id="gr_svn7768_1058"
  2335. ><td id="1058"><a href="#1058">1058</a></td></tr
  2336. ><tr id="gr_svn7768_1059"
  2337. ><td id="1059"><a href="#1059">1059</a></td></tr
  2338. ><tr id="gr_svn7768_1060"
  2339. ><td id="1060"><a href="#1060">1060</a></td></tr
  2340. ><tr id="gr_svn7768_1061"
  2341. ><td id="1061"><a href="#1061">1061</a></td></tr
  2342. ><tr id="gr_svn7768_1062"
  2343. ><td id="1062"><a href="#1062">1062</a></td></tr
  2344. ><tr id="gr_svn7768_1063"
  2345. ><td id="1063"><a href="#1063">1063</a></td></tr
  2346. ><tr id="gr_svn7768_1064"
  2347. ><td id="1064"><a href="#1064">1064</a></td></tr
  2348. ><tr id="gr_svn7768_1065"
  2349. ><td id="1065"><a href="#1065">1065</a></td></tr
  2350. ><tr id="gr_svn7768_1066"
  2351. ><td id="1066"><a href="#1066">1066</a></td></tr
  2352. ><tr id="gr_svn7768_1067"
  2353. ><td id="1067"><a href="#1067">1067</a></td></tr
  2354. ><tr id="gr_svn7768_1068"
  2355. ><td id="1068"><a href="#1068">1068</a></td></tr
  2356. ><tr id="gr_svn7768_1069"
  2357. ><td id="1069"><a href="#1069">1069</a></td></tr
  2358. ><tr id="gr_svn7768_1070"
  2359. ><td id="1070"><a href="#1070">1070</a></td></tr
  2360. ><tr id="gr_svn7768_1071"
  2361. ><td id="1071"><a href="#1071">1071</a></td></tr
  2362. ><tr id="gr_svn7768_1072"
  2363. ><td id="1072"><a href="#1072">1072</a></td></tr
  2364. ><tr id="gr_svn7768_1073"
  2365. ><td id="1073"><a href="#1073">1073</a></td></tr
  2366. ><tr id="gr_svn7768_1074"
  2367. ><td id="1074"><a href="#1074">1074</a></td></tr
  2368. ><tr id="gr_svn7768_1075"
  2369. ><td id="1075"><a href="#1075">1075</a></td></tr
  2370. ><tr id="gr_svn7768_1076"
  2371. ><td id="1076"><a href="#1076">1076</a></td></tr
  2372. ><tr id="gr_svn7768_1077"
  2373. ><td id="1077"><a href="#1077">1077</a></td></tr
  2374. ><tr id="gr_svn7768_1078"
  2375. ><td id="1078"><a href="#1078">1078</a></td></tr
  2376. ><tr id="gr_svn7768_1079"
  2377. ><td id="1079"><a href="#1079">1079</a></td></tr
  2378. ><tr id="gr_svn7768_1080"
  2379. ><td id="1080"><a href="#1080">1080</a></td></tr
  2380. ><tr id="gr_svn7768_1081"
  2381. ><td id="1081"><a href="#1081">1081</a></td></tr
  2382. ><tr id="gr_svn7768_1082"
  2383. ><td id="1082"><a href="#1082">1082</a></td></tr
  2384. ><tr id="gr_svn7768_1083"
  2385. ><td id="1083"><a href="#1083">1083</a></td></tr
  2386. ><tr id="gr_svn7768_1084"
  2387. ><td id="1084"><a href="#1084">1084</a></td></tr
  2388. ><tr id="gr_svn7768_1085"
  2389. ><td id="1085"><a href="#1085">1085</a></td></tr
  2390. ><tr id="gr_svn7768_1086"
  2391. ><td id="1086"><a href="#1086">1086</a></td></tr
  2392. ><tr id="gr_svn7768_1087"
  2393. ><td id="1087"><a href="#1087">1087</a></td></tr
  2394. ><tr id="gr_svn7768_1088"
  2395. ><td id="1088"><a href="#1088">1088</a></td></tr
  2396. ><tr id="gr_svn7768_1089"
  2397. ><td id="1089"><a href="#1089">1089</a></td></tr
  2398. ><tr id="gr_svn7768_1090"
  2399. ><td id="1090"><a href="#1090">1090</a></td></tr
  2400. ><tr id="gr_svn7768_1091"
  2401. ><td id="1091"><a href="#1091">1091</a></td></tr
  2402. ><tr id="gr_svn7768_1092"
  2403. ><td id="1092"><a href="#1092">1092</a></td></tr
  2404. ><tr id="gr_svn7768_1093"
  2405. ><td id="1093"><a href="#1093">1093</a></td></tr
  2406. ><tr id="gr_svn7768_1094"
  2407. ><td id="1094"><a href="#1094">1094</a></td></tr
  2408. ><tr id="gr_svn7768_1095"
  2409. ><td id="1095"><a href="#1095">1095</a></td></tr
  2410. ><tr id="gr_svn7768_1096"
  2411. ><td id="1096"><a href="#1096">1096</a></td></tr
  2412. ><tr id="gr_svn7768_1097"
  2413. ><td id="1097"><a href="#1097">1097</a></td></tr
  2414. ><tr id="gr_svn7768_1098"
  2415. ><td id="1098"><a href="#1098">1098</a></td></tr
  2416. ><tr id="gr_svn7768_1099"
  2417. ><td id="1099"><a href="#1099">1099</a></td></tr
  2418. ><tr id="gr_svn7768_1100"
  2419. ><td id="1100"><a href="#1100">1100</a></td></tr
  2420. ><tr id="gr_svn7768_1101"
  2421. ><td id="1101"><a href="#1101">1101</a></td></tr
  2422. ><tr id="gr_svn7768_1102"
  2423. ><td id="1102"><a href="#1102">1102</a></td></tr
  2424. ><tr id="gr_svn7768_1103"
  2425. ><td id="1103"><a href="#1103">1103</a></td></tr
  2426. ><tr id="gr_svn7768_1104"
  2427. ><td id="1104"><a href="#1104">1104</a></td></tr
  2428. ><tr id="gr_svn7768_1105"
  2429. ><td id="1105"><a href="#1105">1105</a></td></tr
  2430. ><tr id="gr_svn7768_1106"
  2431. ><td id="1106"><a href="#1106">1106</a></td></tr
  2432. ><tr id="gr_svn7768_1107"
  2433. ><td id="1107"><a href="#1107">1107</a></td></tr
  2434. ><tr id="gr_svn7768_1108"
  2435. ><td id="1108"><a href="#1108">1108</a></td></tr
  2436. ><tr id="gr_svn7768_1109"
  2437. ><td id="1109"><a href="#1109">1109</a></td></tr
  2438. ><tr id="gr_svn7768_1110"
  2439. ><td id="1110"><a href="#1110">1110</a></td></tr
  2440. ><tr id="gr_svn7768_1111"
  2441. ><td id="1111"><a href="#1111">1111</a></td></tr
  2442. ><tr id="gr_svn7768_1112"
  2443. ><td id="1112"><a href="#1112">1112</a></td></tr
  2444. ><tr id="gr_svn7768_1113"
  2445. ><td id="1113"><a href="#1113">1113</a></td></tr
  2446. ><tr id="gr_svn7768_1114"
  2447. ><td id="1114"><a href="#1114">1114</a></td></tr
  2448. ><tr id="gr_svn7768_1115"
  2449. ><td id="1115"><a href="#1115">1115</a></td></tr
  2450. ><tr id="gr_svn7768_1116"
  2451. ><td id="1116"><a href="#1116">1116</a></td></tr
  2452. ><tr id="gr_svn7768_1117"
  2453. ><td id="1117"><a href="#1117">1117</a></td></tr
  2454. ><tr id="gr_svn7768_1118"
  2455. ><td id="1118"><a href="#1118">1118</a></td></tr
  2456. ><tr id="gr_svn7768_1119"
  2457. ><td id="1119"><a href="#1119">1119</a></td></tr
  2458. ><tr id="gr_svn7768_1120"
  2459. ><td id="1120"><a href="#1120">1120</a></td></tr
  2460. ><tr id="gr_svn7768_1121"
  2461. ><td id="1121"><a href="#1121">1121</a></td></tr
  2462. ><tr id="gr_svn7768_1122"
  2463. ><td id="1122"><a href="#1122">1122</a></td></tr
  2464. ><tr id="gr_svn7768_1123"
  2465. ><td id="1123"><a href="#1123">1123</a></td></tr
  2466. ><tr id="gr_svn7768_1124"
  2467. ><td id="1124"><a href="#1124">1124</a></td></tr
  2468. ><tr id="gr_svn7768_1125"
  2469. ><td id="1125"><a href="#1125">1125</a></td></tr
  2470. ><tr id="gr_svn7768_1126"
  2471. ><td id="1126"><a href="#1126">1126</a></td></tr
  2472. ><tr id="gr_svn7768_1127"
  2473. ><td id="1127"><a href="#1127">1127</a></td></tr
  2474. ><tr id="gr_svn7768_1128"
  2475. ><td id="1128"><a href="#1128">1128</a></td></tr
  2476. ><tr id="gr_svn7768_1129"
  2477. ><td id="1129"><a href="#1129">1129</a></td></tr
  2478. ><tr id="gr_svn7768_1130"
  2479. ><td id="1130"><a href="#1130">1130</a></td></tr
  2480. ><tr id="gr_svn7768_1131"
  2481. ><td id="1131"><a href="#1131">1131</a></td></tr
  2482. ><tr id="gr_svn7768_1132"
  2483. ><td id="1132"><a href="#1132">1132</a></td></tr
  2484. ><tr id="gr_svn7768_1133"
  2485. ><td id="1133"><a href="#1133">1133</a></td></tr
  2486. ><tr id="gr_svn7768_1134"
  2487. ><td id="1134"><a href="#1134">1134</a></td></tr
  2488. ><tr id="gr_svn7768_1135"
  2489. ><td id="1135"><a href="#1135">1135</a></td></tr
  2490. ><tr id="gr_svn7768_1136"
  2491. ><td id="1136"><a href="#1136">1136</a></td></tr
  2492. ><tr id="gr_svn7768_1137"
  2493. ><td id="1137"><a href="#1137">1137</a></td></tr
  2494. ><tr id="gr_svn7768_1138"
  2495. ><td id="1138"><a href="#1138">1138</a></td></tr
  2496. ><tr id="gr_svn7768_1139"
  2497. ><td id="1139"><a href="#1139">1139</a></td></tr
  2498. ><tr id="gr_svn7768_1140"
  2499. ><td id="1140"><a href="#1140">1140</a></td></tr
  2500. ><tr id="gr_svn7768_1141"
  2501. ><td id="1141"><a href="#1141">1141</a></td></tr
  2502. ><tr id="gr_svn7768_1142"
  2503. ><td id="1142"><a href="#1142">1142</a></td></tr
  2504. ><tr id="gr_svn7768_1143"
  2505. ><td id="1143"><a href="#1143">1143</a></td></tr
  2506. ><tr id="gr_svn7768_1144"
  2507. ><td id="1144"><a href="#1144">1144</a></td></tr
  2508. ><tr id="gr_svn7768_1145"
  2509. ><td id="1145"><a href="#1145">1145</a></td></tr
  2510. ><tr id="gr_svn7768_1146"
  2511. ><td id="1146"><a href="#1146">1146</a></td></tr
  2512. ><tr id="gr_svn7768_1147"
  2513. ><td id="1147"><a href="#1147">1147</a></td></tr
  2514. ><tr id="gr_svn7768_1148"
  2515. ><td id="1148"><a href="#1148">1148</a></td></tr
  2516. ><tr id="gr_svn7768_1149"
  2517. ><td id="1149"><a href="#1149">1149</a></td></tr
  2518. ><tr id="gr_svn7768_1150"
  2519. ><td id="1150"><a href="#1150">1150</a></td></tr
  2520. ><tr id="gr_svn7768_1151"
  2521. ><td id="1151"><a href="#1151">1151</a></td></tr
  2522. ><tr id="gr_svn7768_1152"
  2523. ><td id="1152"><a href="#1152">1152</a></td></tr
  2524. ><tr id="gr_svn7768_1153"
  2525. ><td id="1153"><a href="#1153">1153</a></td></tr
  2526. ><tr id="gr_svn7768_1154"
  2527. ><td id="1154"><a href="#1154">1154</a></td></tr
  2528. ><tr id="gr_svn7768_1155"
  2529. ><td id="1155"><a href="#1155">1155</a></td></tr
  2530. ><tr id="gr_svn7768_1156"
  2531. ><td id="1156"><a href="#1156">1156</a></td></tr
  2532. ><tr id="gr_svn7768_1157"
  2533. ><td id="1157"><a href="#1157">1157</a></td></tr
  2534. ><tr id="gr_svn7768_1158"
  2535. ><td id="1158"><a href="#1158">1158</a></td></tr
  2536. ><tr id="gr_svn7768_1159"
  2537. ><td id="1159"><a href="#1159">1159</a></td></tr
  2538. ><tr id="gr_svn7768_1160"
  2539. ><td id="1160"><a href="#1160">1160</a></td></tr
  2540. ><tr id="gr_svn7768_1161"
  2541. ><td id="1161"><a href="#1161">1161</a></td></tr
  2542. ><tr id="gr_svn7768_1162"
  2543. ><td id="1162"><a href="#1162">1162</a></td></tr
  2544. ><tr id="gr_svn7768_1163"
  2545. ><td id="1163"><a href="#1163">1163</a></td></tr
  2546. ><tr id="gr_svn7768_1164"
  2547. ><td id="1164"><a href="#1164">1164</a></td></tr
  2548. ><tr id="gr_svn7768_1165"
  2549. ><td id="1165"><a href="#1165">1165</a></td></tr
  2550. ><tr id="gr_svn7768_1166"
  2551. ><td id="1166"><a href="#1166">1166</a></td></tr
  2552. ><tr id="gr_svn7768_1167"
  2553. ><td id="1167"><a href="#1167">1167</a></td></tr
  2554. ><tr id="gr_svn7768_1168"
  2555. ><td id="1168"><a href="#1168">1168</a></td></tr
  2556. ><tr id="gr_svn7768_1169"
  2557. ><td id="1169"><a href="#1169">1169</a></td></tr
  2558. ><tr id="gr_svn7768_1170"
  2559. ><td id="1170"><a href="#1170">1170</a></td></tr
  2560. ><tr id="gr_svn7768_1171"
  2561. ><td id="1171"><a href="#1171">1171</a></td></tr
  2562. ><tr id="gr_svn7768_1172"
  2563. ><td id="1172"><a href="#1172">1172</a></td></tr
  2564. ><tr id="gr_svn7768_1173"
  2565. ><td id="1173"><a href="#1173">1173</a></td></tr
  2566. ><tr id="gr_svn7768_1174"
  2567. ><td id="1174"><a href="#1174">1174</a></td></tr
  2568. ><tr id="gr_svn7768_1175"
  2569. ><td id="1175"><a href="#1175">1175</a></td></tr
  2570. ><tr id="gr_svn7768_1176"
  2571. ><td id="1176"><a href="#1176">1176</a></td></tr
  2572. ><tr id="gr_svn7768_1177"
  2573. ><td id="1177"><a href="#1177">1177</a></td></tr
  2574. ><tr id="gr_svn7768_1178"
  2575. ><td id="1178"><a href="#1178">1178</a></td></tr
  2576. ><tr id="gr_svn7768_1179"
  2577. ><td id="1179"><a href="#1179">1179</a></td></tr
  2578. ><tr id="gr_svn7768_1180"
  2579. ><td id="1180"><a href="#1180">1180</a></td></tr
  2580. ><tr id="gr_svn7768_1181"
  2581. ><td id="1181"><a href="#1181">1181</a></td></tr
  2582. ><tr id="gr_svn7768_1182"
  2583. ><td id="1182"><a href="#1182">1182</a></td></tr
  2584. ><tr id="gr_svn7768_1183"
  2585. ><td id="1183"><a href="#1183">1183</a></td></tr
  2586. ><tr id="gr_svn7768_1184"
  2587. ><td id="1184"><a href="#1184">1184</a></td></tr
  2588. ><tr id="gr_svn7768_1185"
  2589. ><td id="1185"><a href="#1185">1185</a></td></tr
  2590. ><tr id="gr_svn7768_1186"
  2591. ><td id="1186"><a href="#1186">1186</a></td></tr
  2592. ><tr id="gr_svn7768_1187"
  2593. ><td id="1187"><a href="#1187">1187</a></td></tr
  2594. ><tr id="gr_svn7768_1188"
  2595. ><td id="1188"><a href="#1188">1188</a></td></tr
  2596. ><tr id="gr_svn7768_1189"
  2597. ><td id="1189"><a href="#1189">1189</a></td></tr
  2598. ><tr id="gr_svn7768_1190"
  2599. ><td id="1190"><a href="#1190">1190</a></td></tr
  2600. ><tr id="gr_svn7768_1191"
  2601. ><td id="1191"><a href="#1191">1191</a></td></tr
  2602. ><tr id="gr_svn7768_1192"
  2603. ><td id="1192"><a href="#1192">1192</a></td></tr
  2604. ><tr id="gr_svn7768_1193"
  2605. ><td id="1193"><a href="#1193">1193</a></td></tr
  2606. ><tr id="gr_svn7768_1194"
  2607. ><td id="1194"><a href="#1194">1194</a></td></tr
  2608. ><tr id="gr_svn7768_1195"
  2609. ><td id="1195"><a href="#1195">1195</a></td></tr
  2610. ><tr id="gr_svn7768_1196"
  2611. ><td id="1196"><a href="#1196">1196</a></td></tr
  2612. ><tr id="gr_svn7768_1197"
  2613. ><td id="1197"><a href="#1197">1197</a></td></tr
  2614. ><tr id="gr_svn7768_1198"
  2615. ><td id="1198"><a href="#1198">1198</a></td></tr
  2616. ><tr id="gr_svn7768_1199"
  2617. ><td id="1199"><a href="#1199">1199</a></td></tr
  2618. ><tr id="gr_svn7768_1200"
  2619. ><td id="1200"><a href="#1200">1200</a></td></tr
  2620. ><tr id="gr_svn7768_1201"
  2621. ><td id="1201"><a href="#1201">1201</a></td></tr
  2622. ><tr id="gr_svn7768_1202"
  2623. ><td id="1202"><a href="#1202">1202</a></td></tr
  2624. ><tr id="gr_svn7768_1203"
  2625. ><td id="1203"><a href="#1203">1203</a></td></tr
  2626. ><tr id="gr_svn7768_1204"
  2627. ><td id="1204"><a href="#1204">1204</a></td></tr
  2628. ><tr id="gr_svn7768_1205"
  2629. ><td id="1205"><a href="#1205">1205</a></td></tr
  2630. ><tr id="gr_svn7768_1206"
  2631. ><td id="1206"><a href="#1206">1206</a></td></tr
  2632. ><tr id="gr_svn7768_1207"
  2633. ><td id="1207"><a href="#1207">1207</a></td></tr
  2634. ><tr id="gr_svn7768_1208"
  2635. ><td id="1208"><a href="#1208">1208</a></td></tr
  2636. ><tr id="gr_svn7768_1209"
  2637. ><td id="1209"><a href="#1209">1209</a></td></tr
  2638. ><tr id="gr_svn7768_1210"
  2639. ><td id="1210"><a href="#1210">1210</a></td></tr
  2640. ><tr id="gr_svn7768_1211"
  2641. ><td id="1211"><a href="#1211">1211</a></td></tr
  2642. ><tr id="gr_svn7768_1212"
  2643. ><td id="1212"><a href="#1212">1212</a></td></tr
  2644. ><tr id="gr_svn7768_1213"
  2645. ><td id="1213"><a href="#1213">1213</a></td></tr
  2646. ><tr id="gr_svn7768_1214"
  2647. ><td id="1214"><a href="#1214">1214</a></td></tr
  2648. ><tr id="gr_svn7768_1215"
  2649. ><td id="1215"><a href="#1215">1215</a></td></tr
  2650. ><tr id="gr_svn7768_1216"
  2651. ><td id="1216"><a href="#1216">1216</a></td></tr
  2652. ><tr id="gr_svn7768_1217"
  2653. ><td id="1217"><a href="#1217">1217</a></td></tr
  2654. ><tr id="gr_svn7768_1218"
  2655. ><td id="1218"><a href="#1218">1218</a></td></tr
  2656. ><tr id="gr_svn7768_1219"
  2657. ><td id="1219"><a href="#1219">1219</a></td></tr
  2658. ><tr id="gr_svn7768_1220"
  2659. ><td id="1220"><a href="#1220">1220</a></td></tr
  2660. ><tr id="gr_svn7768_1221"
  2661. ><td id="1221"><a href="#1221">1221</a></td></tr
  2662. ><tr id="gr_svn7768_1222"
  2663. ><td id="1222"><a href="#1222">1222</a></td></tr
  2664. ><tr id="gr_svn7768_1223"
  2665. ><td id="1223"><a href="#1223">1223</a></td></tr
  2666. ><tr id="gr_svn7768_1224"
  2667. ><td id="1224"><a href="#1224">1224</a></td></tr
  2668. ><tr id="gr_svn7768_1225"
  2669. ><td id="1225"><a href="#1225">1225</a></td></tr
  2670. ><tr id="gr_svn7768_1226"
  2671. ><td id="1226"><a href="#1226">1226</a></td></tr
  2672. ><tr id="gr_svn7768_1227"
  2673. ><td id="1227"><a href="#1227">1227</a></td></tr
  2674. ><tr id="gr_svn7768_1228"
  2675. ><td id="1228"><a href="#1228">1228</a></td></tr
  2676. ><tr id="gr_svn7768_1229"
  2677. ><td id="1229"><a href="#1229">1229</a></td></tr
  2678. ><tr id="gr_svn7768_1230"
  2679. ><td id="1230"><a href="#1230">1230</a></td></tr
  2680. ><tr id="gr_svn7768_1231"
  2681. ><td id="1231"><a href="#1231">1231</a></td></tr
  2682. ><tr id="gr_svn7768_1232"
  2683. ><td id="1232"><a href="#1232">1232</a></td></tr
  2684. ><tr id="gr_svn7768_1233"
  2685. ><td id="1233"><a href="#1233">1233</a></td></tr
  2686. ><tr id="gr_svn7768_1234"
  2687. ><td id="1234"><a href="#1234">1234</a></td></tr
  2688. ><tr id="gr_svn7768_1235"
  2689. ><td id="1235"><a href="#1235">1235</a></td></tr
  2690. ><tr id="gr_svn7768_1236"
  2691. ><td id="1236"><a href="#1236">1236</a></td></tr
  2692. ><tr id="gr_svn7768_1237"
  2693. ><td id="1237"><a href="#1237">1237</a></td></tr
  2694. ><tr id="gr_svn7768_1238"
  2695. ><td id="1238"><a href="#1238">1238</a></td></tr
  2696. ><tr id="gr_svn7768_1239"
  2697. ><td id="1239"><a href="#1239">1239</a></td></tr
  2698. ><tr id="gr_svn7768_1240"
  2699. ><td id="1240"><a href="#1240">1240</a></td></tr
  2700. ><tr id="gr_svn7768_1241"
  2701. ><td id="1241"><a href="#1241">1241</a></td></tr
  2702. ><tr id="gr_svn7768_1242"
  2703. ><td id="1242"><a href="#1242">1242</a></td></tr
  2704. ><tr id="gr_svn7768_1243"
  2705. ><td id="1243"><a href="#1243">1243</a></td></tr
  2706. ><tr id="gr_svn7768_1244"
  2707. ><td id="1244"><a href="#1244">1244</a></td></tr
  2708. ><tr id="gr_svn7768_1245"
  2709. ><td id="1245"><a href="#1245">1245</a></td></tr
  2710. ><tr id="gr_svn7768_1246"
  2711. ><td id="1246"><a href="#1246">1246</a></td></tr
  2712. ><tr id="gr_svn7768_1247"
  2713. ><td id="1247"><a href="#1247">1247</a></td></tr
  2714. ><tr id="gr_svn7768_1248"
  2715. ><td id="1248"><a href="#1248">1248</a></td></tr
  2716. ><tr id="gr_svn7768_1249"
  2717. ><td id="1249"><a href="#1249">1249</a></td></tr
  2718. ><tr id="gr_svn7768_1250"
  2719. ><td id="1250"><a href="#1250">1250</a></td></tr
  2720. ><tr id="gr_svn7768_1251"
  2721. ><td id="1251"><a href="#1251">1251</a></td></tr
  2722. ><tr id="gr_svn7768_1252"
  2723. ><td id="1252"><a href="#1252">1252</a></td></tr
  2724. ><tr id="gr_svn7768_1253"
  2725. ><td id="1253"><a href="#1253">1253</a></td></tr
  2726. ><tr id="gr_svn7768_1254"
  2727. ><td id="1254"><a href="#1254">1254</a></td></tr
  2728. ><tr id="gr_svn7768_1255"
  2729. ><td id="1255"><a href="#1255">1255</a></td></tr
  2730. ><tr id="gr_svn7768_1256"
  2731. ><td id="1256"><a href="#1256">1256</a></td></tr
  2732. ><tr id="gr_svn7768_1257"
  2733. ><td id="1257"><a href="#1257">1257</a></td></tr
  2734. ><tr id="gr_svn7768_1258"
  2735. ><td id="1258"><a href="#1258">1258</a></td></tr
  2736. ><tr id="gr_svn7768_1259"
  2737. ><td id="1259"><a href="#1259">1259</a></td></tr
  2738. ><tr id="gr_svn7768_1260"
  2739. ><td id="1260"><a href="#1260">1260</a></td></tr
  2740. ><tr id="gr_svn7768_1261"
  2741. ><td id="1261"><a href="#1261">1261</a></td></tr
  2742. ><tr id="gr_svn7768_1262"
  2743. ><td id="1262"><a href="#1262">1262</a></td></tr
  2744. ><tr id="gr_svn7768_1263"
  2745. ><td id="1263"><a href="#1263">1263</a></td></tr
  2746. ><tr id="gr_svn7768_1264"
  2747. ><td id="1264"><a href="#1264">1264</a></td></tr
  2748. ><tr id="gr_svn7768_1265"
  2749. ><td id="1265"><a href="#1265">1265</a></td></tr
  2750. ><tr id="gr_svn7768_1266"
  2751. ><td id="1266"><a href="#1266">1266</a></td></tr
  2752. ><tr id="gr_svn7768_1267"
  2753. ><td id="1267"><a href="#1267">1267</a></td></tr
  2754. ><tr id="gr_svn7768_1268"
  2755. ><td id="1268"><a href="#1268">1268</a></td></tr
  2756. ><tr id="gr_svn7768_1269"
  2757. ><td id="1269"><a href="#1269">1269</a></td></tr
  2758. ><tr id="gr_svn7768_1270"
  2759. ><td id="1270"><a href="#1270">1270</a></td></tr
  2760. ><tr id="gr_svn7768_1271"
  2761. ><td id="1271"><a href="#1271">1271</a></td></tr
  2762. ><tr id="gr_svn7768_1272"
  2763. ><td id="1272"><a href="#1272">1272</a></td></tr
  2764. ><tr id="gr_svn7768_1273"
  2765. ><td id="1273"><a href="#1273">1273</a></td></tr
  2766. ><tr id="gr_svn7768_1274"
  2767. ><td id="1274"><a href="#1274">1274</a></td></tr
  2768. ><tr id="gr_svn7768_1275"
  2769. ><td id="1275"><a href="#1275">1275</a></td></tr
  2770. ><tr id="gr_svn7768_1276"
  2771. ><td id="1276"><a href="#1276">1276</a></td></tr
  2772. ><tr id="gr_svn7768_1277"
  2773. ><td id="1277"><a href="#1277">1277</a></td></tr
  2774. ><tr id="gr_svn7768_1278"
  2775. ><td id="1278"><a href="#1278">1278</a></td></tr
  2776. ><tr id="gr_svn7768_1279"
  2777. ><td id="1279"><a href="#1279">1279</a></td></tr
  2778. ><tr id="gr_svn7768_1280"
  2779. ><td id="1280"><a href="#1280">1280</a></td></tr
  2780. ><tr id="gr_svn7768_1281"
  2781. ><td id="1281"><a href="#1281">1281</a></td></tr
  2782. ><tr id="gr_svn7768_1282"
  2783. ><td id="1282"><a href="#1282">1282</a></td></tr
  2784. ><tr id="gr_svn7768_1283"
  2785. ><td id="1283"><a href="#1283">1283</a></td></tr
  2786. ><tr id="gr_svn7768_1284"
  2787. ><td id="1284"><a href="#1284">1284</a></td></tr
  2788. ><tr id="gr_svn7768_1285"
  2789. ><td id="1285"><a href="#1285">1285</a></td></tr
  2790. ><tr id="gr_svn7768_1286"
  2791. ><td id="1286"><a href="#1286">1286</a></td></tr
  2792. ><tr id="gr_svn7768_1287"
  2793. ><td id="1287"><a href="#1287">1287</a></td></tr
  2794. ><tr id="gr_svn7768_1288"
  2795. ><td id="1288"><a href="#1288">1288</a></td></tr
  2796. ><tr id="gr_svn7768_1289"
  2797. ><td id="1289"><a href="#1289">1289</a></td></tr
  2798. ><tr id="gr_svn7768_1290"
  2799. ><td id="1290"><a href="#1290">1290</a></td></tr
  2800. ><tr id="gr_svn7768_1291"
  2801. ><td id="1291"><a href="#1291">1291</a></td></tr
  2802. ><tr id="gr_svn7768_1292"
  2803. ><td id="1292"><a href="#1292">1292</a></td></tr
  2804. ><tr id="gr_svn7768_1293"
  2805. ><td id="1293"><a href="#1293">1293</a></td></tr
  2806. ><tr id="gr_svn7768_1294"
  2807. ><td id="1294"><a href="#1294">1294</a></td></tr
  2808. ><tr id="gr_svn7768_1295"
  2809. ><td id="1295"><a href="#1295">1295</a></td></tr
  2810. ><tr id="gr_svn7768_1296"
  2811. ><td id="1296"><a href="#1296">1296</a></td></tr
  2812. ><tr id="gr_svn7768_1297"
  2813. ><td id="1297"><a href="#1297">1297</a></td></tr
  2814. ><tr id="gr_svn7768_1298"
  2815. ><td id="1298"><a href="#1298">1298</a></td></tr
  2816. ><tr id="gr_svn7768_1299"
  2817. ><td id="1299"><a href="#1299">1299</a></td></tr
  2818. ><tr id="gr_svn7768_1300"
  2819. ><td id="1300"><a href="#1300">1300</a></td></tr
  2820. ><tr id="gr_svn7768_1301"
  2821. ><td id="1301"><a href="#1301">1301</a></td></tr
  2822. ><tr id="gr_svn7768_1302"
  2823. ><td id="1302"><a href="#1302">1302</a></td></tr
  2824. ><tr id="gr_svn7768_1303"
  2825. ><td id="1303"><a href="#1303">1303</a></td></tr
  2826. ><tr id="gr_svn7768_1304"
  2827. ><td id="1304"><a href="#1304">1304</a></td></tr
  2828. ><tr id="gr_svn7768_1305"
  2829. ><td id="1305"><a href="#1305">1305</a></td></tr
  2830. ><tr id="gr_svn7768_1306"
  2831. ><td id="1306"><a href="#1306">1306</a></td></tr
  2832. ><tr id="gr_svn7768_1307"
  2833. ><td id="1307"><a href="#1307">1307</a></td></tr
  2834. ><tr id="gr_svn7768_1308"
  2835. ><td id="1308"><a href="#1308">1308</a></td></tr
  2836. ><tr id="gr_svn7768_1309"
  2837. ><td id="1309"><a href="#1309">1309</a></td></tr
  2838. ><tr id="gr_svn7768_1310"
  2839. ><td id="1310"><a href="#1310">1310</a></td></tr
  2840. ><tr id="gr_svn7768_1311"
  2841. ><td id="1311"><a href="#1311">1311</a></td></tr
  2842. ><tr id="gr_svn7768_1312"
  2843. ><td id="1312"><a href="#1312">1312</a></td></tr
  2844. ><tr id="gr_svn7768_1313"
  2845. ><td id="1313"><a href="#1313">1313</a></td></tr
  2846. ><tr id="gr_svn7768_1314"
  2847. ><td id="1314"><a href="#1314">1314</a></td></tr
  2848. ><tr id="gr_svn7768_1315"
  2849. ><td id="1315"><a href="#1315">1315</a></td></tr
  2850. ><tr id="gr_svn7768_1316"
  2851. ><td id="1316"><a href="#1316">1316</a></td></tr
  2852. ><tr id="gr_svn7768_1317"
  2853. ><td id="1317"><a href="#1317">1317</a></td></tr
  2854. ><tr id="gr_svn7768_1318"
  2855. ><td id="1318"><a href="#1318">1318</a></td></tr
  2856. ><tr id="gr_svn7768_1319"
  2857. ><td id="1319"><a href="#1319">1319</a></td></tr
  2858. ><tr id="gr_svn7768_1320"
  2859. ><td id="1320"><a href="#1320">1320</a></td></tr
  2860. ><tr id="gr_svn7768_1321"
  2861. ><td id="1321"><a href="#1321">1321</a></td></tr
  2862. ><tr id="gr_svn7768_1322"
  2863. ><td id="1322"><a href="#1322">1322</a></td></tr
  2864. ><tr id="gr_svn7768_1323"
  2865. ><td id="1323"><a href="#1323">1323</a></td></tr
  2866. ><tr id="gr_svn7768_1324"
  2867. ><td id="1324"><a href="#1324">1324</a></td></tr
  2868. ><tr id="gr_svn7768_1325"
  2869. ><td id="1325"><a href="#1325">1325</a></td></tr
  2870. ><tr id="gr_svn7768_1326"
  2871. ><td id="1326"><a href="#1326">1326</a></td></tr
  2872. ><tr id="gr_svn7768_1327"
  2873. ><td id="1327"><a href="#1327">1327</a></td></tr
  2874. ><tr id="gr_svn7768_1328"
  2875. ><td id="1328"><a href="#1328">1328</a></td></tr
  2876. ><tr id="gr_svn7768_1329"
  2877. ><td id="1329"><a href="#1329">1329</a></td></tr
  2878. ><tr id="gr_svn7768_1330"
  2879. ><td id="1330"><a href="#1330">1330</a></td></tr
  2880. ><tr id="gr_svn7768_1331"
  2881. ><td id="1331"><a href="#1331">1331</a></td></tr
  2882. ><tr id="gr_svn7768_1332"
  2883. ><td id="1332"><a href="#1332">1332</a></td></tr
  2884. ><tr id="gr_svn7768_1333"
  2885. ><td id="1333"><a href="#1333">1333</a></td></tr
  2886. ><tr id="gr_svn7768_1334"
  2887. ><td id="1334"><a href="#1334">1334</a></td></tr
  2888. ><tr id="gr_svn7768_1335"
  2889. ><td id="1335"><a href="#1335">1335</a></td></tr
  2890. ><tr id="gr_svn7768_1336"
  2891. ><td id="1336"><a href="#1336">1336</a></td></tr
  2892. ><tr id="gr_svn7768_1337"
  2893. ><td id="1337"><a href="#1337">1337</a></td></tr
  2894. ><tr id="gr_svn7768_1338"
  2895. ><td id="1338"><a href="#1338">1338</a></td></tr
  2896. ><tr id="gr_svn7768_1339"
  2897. ><td id="1339"><a href="#1339">1339</a></td></tr
  2898. ><tr id="gr_svn7768_1340"
  2899. ><td id="1340"><a href="#1340">1340</a></td></tr
  2900. ><tr id="gr_svn7768_1341"
  2901. ><td id="1341"><a href="#1341">1341</a></td></tr
  2902. ><tr id="gr_svn7768_1342"
  2903. ><td id="1342"><a href="#1342">1342</a></td></tr
  2904. ><tr id="gr_svn7768_1343"
  2905. ><td id="1343"><a href="#1343">1343</a></td></tr
  2906. ><tr id="gr_svn7768_1344"
  2907. ><td id="1344"><a href="#1344">1344</a></td></tr
  2908. ><tr id="gr_svn7768_1345"
  2909. ><td id="1345"><a href="#1345">1345</a></td></tr
  2910. ><tr id="gr_svn7768_1346"
  2911. ><td id="1346"><a href="#1346">1346</a></td></tr
  2912. ><tr id="gr_svn7768_1347"
  2913. ><td id="1347"><a href="#1347">1347</a></td></tr
  2914. ><tr id="gr_svn7768_1348"
  2915. ><td id="1348"><a href="#1348">1348</a></td></tr
  2916. ><tr id="gr_svn7768_1349"
  2917. ><td id="1349"><a href="#1349">1349</a></td></tr
  2918. ><tr id="gr_svn7768_1350"
  2919. ><td id="1350"><a href="#1350">1350</a></td></tr
  2920. ><tr id="gr_svn7768_1351"
  2921. ><td id="1351"><a href="#1351">1351</a></td></tr
  2922. ><tr id="gr_svn7768_1352"
  2923. ><td id="1352"><a href="#1352">1352</a></td></tr
  2924. ><tr id="gr_svn7768_1353"
  2925. ><td id="1353"><a href="#1353">1353</a></td></tr
  2926. ><tr id="gr_svn7768_1354"
  2927. ><td id="1354"><a href="#1354">1354</a></td></tr
  2928. ><tr id="gr_svn7768_1355"
  2929. ><td id="1355"><a href="#1355">1355</a></td></tr
  2930. ><tr id="gr_svn7768_1356"
  2931. ><td id="1356"><a href="#1356">1356</a></td></tr
  2932. ><tr id="gr_svn7768_1357"
  2933. ><td id="1357"><a href="#1357">1357</a></td></tr
  2934. ><tr id="gr_svn7768_1358"
  2935. ><td id="1358"><a href="#1358">1358</a></td></tr
  2936. ><tr id="gr_svn7768_1359"
  2937. ><td id="1359"><a href="#1359">1359</a></td></tr
  2938. ><tr id="gr_svn7768_1360"
  2939. ><td id="1360"><a href="#1360">1360</a></td></tr
  2940. ><tr id="gr_svn7768_1361"
  2941. ><td id="1361"><a href="#1361">1361</a></td></tr
  2942. ><tr id="gr_svn7768_1362"
  2943. ><td id="1362"><a href="#1362">1362</a></td></tr
  2944. ><tr id="gr_svn7768_1363"
  2945. ><td id="1363"><a href="#1363">1363</a></td></tr
  2946. ><tr id="gr_svn7768_1364"
  2947. ><td id="1364"><a href="#1364">1364</a></td></tr
  2948. ><tr id="gr_svn7768_1365"
  2949. ><td id="1365"><a href="#1365">1365</a></td></tr
  2950. ><tr id="gr_svn7768_1366"
  2951. ><td id="1366"><a href="#1366">1366</a></td></tr
  2952. ><tr id="gr_svn7768_1367"
  2953. ><td id="1367"><a href="#1367">1367</a></td></tr
  2954. ><tr id="gr_svn7768_1368"
  2955. ><td id="1368"><a href="#1368">1368</a></td></tr
  2956. ><tr id="gr_svn7768_1369"
  2957. ><td id="1369"><a href="#1369">1369</a></td></tr
  2958. ><tr id="gr_svn7768_1370"
  2959. ><td id="1370"><a href="#1370">1370</a></td></tr
  2960. ><tr id="gr_svn7768_1371"
  2961. ><td id="1371"><a href="#1371">1371</a></td></tr
  2962. ><tr id="gr_svn7768_1372"
  2963. ><td id="1372"><a href="#1372">1372</a></td></tr
  2964. ><tr id="gr_svn7768_1373"
  2965. ><td id="1373"><a href="#1373">1373</a></td></tr
  2966. ><tr id="gr_svn7768_1374"
  2967. ><td id="1374"><a href="#1374">1374</a></td></tr
  2968. ><tr id="gr_svn7768_1375"
  2969. ><td id="1375"><a href="#1375">1375</a></td></tr
  2970. ><tr id="gr_svn7768_1376"
  2971. ><td id="1376"><a href="#1376">1376</a></td></tr
  2972. ><tr id="gr_svn7768_1377"
  2973. ><td id="1377"><a href="#1377">1377</a></td></tr
  2974. ><tr id="gr_svn7768_1378"
  2975. ><td id="1378"><a href="#1378">1378</a></td></tr
  2976. ><tr id="gr_svn7768_1379"
  2977. ><td id="1379"><a href="#1379">1379</a></td></tr
  2978. ><tr id="gr_svn7768_1380"
  2979. ><td id="1380"><a href="#1380">1380</a></td></tr
  2980. ><tr id="gr_svn7768_1381"
  2981. ><td id="1381"><a href="#1381">1381</a></td></tr
  2982. ><tr id="gr_svn7768_1382"
  2983. ><td id="1382"><a href="#1382">1382</a></td></tr
  2984. ><tr id="gr_svn7768_1383"
  2985. ><td id="1383"><a href="#1383">1383</a></td></tr
  2986. ><tr id="gr_svn7768_1384"
  2987. ><td id="1384"><a href="#1384">1384</a></td></tr
  2988. ><tr id="gr_svn7768_1385"
  2989. ><td id="1385"><a href="#1385">1385</a></td></tr
  2990. ><tr id="gr_svn7768_1386"
  2991. ><td id="1386"><a href="#1386">1386</a></td></tr
  2992. ><tr id="gr_svn7768_1387"
  2993. ><td id="1387"><a href="#1387">1387</a></td></tr
  2994. ><tr id="gr_svn7768_1388"
  2995. ><td id="1388"><a href="#1388">1388</a></td></tr
  2996. ><tr id="gr_svn7768_1389"
  2997. ><td id="1389"><a href="#1389">1389</a></td></tr
  2998. ><tr id="gr_svn7768_1390"
  2999. ><td id="1390"><a href="#1390">1390</a></td></tr
  3000. ><tr id="gr_svn7768_1391"
  3001. ><td id="1391"><a href="#1391">1391</a></td></tr
  3002. ><tr id="gr_svn7768_1392"
  3003. ><td id="1392"><a href="#1392">1392</a></td></tr
  3004. ><tr id="gr_svn7768_1393"
  3005. ><td id="1393"><a href="#1393">1393</a></td></tr
  3006. ><tr id="gr_svn7768_1394"
  3007. ><td id="1394"><a href="#1394">1394</a></td></tr
  3008. ><tr id="gr_svn7768_1395"
  3009. ><td id="1395"><a href="#1395">1395</a></td></tr
  3010. ><tr id="gr_svn7768_1396"
  3011. ><td id="1396"><a href="#1396">1396</a></td></tr
  3012. ><tr id="gr_svn7768_1397"
  3013. ><td id="1397"><a href="#1397">1397</a></td></tr
  3014. ><tr id="gr_svn7768_1398"
  3015. ><td id="1398"><a href="#1398">1398</a></td></tr
  3016. ><tr id="gr_svn7768_1399"
  3017. ><td id="1399"><a href="#1399">1399</a></td></tr
  3018. ><tr id="gr_svn7768_1400"
  3019. ><td id="1400"><a href="#1400">1400</a></td></tr
  3020. ><tr id="gr_svn7768_1401"
  3021. ><td id="1401"><a href="#1401">1401</a></td></tr
  3022. ><tr id="gr_svn7768_1402"
  3023. ><td id="1402"><a href="#1402">1402</a></td></tr
  3024. ><tr id="gr_svn7768_1403"
  3025. ><td id="1403"><a href="#1403">1403</a></td></tr
  3026. ><tr id="gr_svn7768_1404"
  3027. ><td id="1404"><a href="#1404">1404</a></td></tr
  3028. ><tr id="gr_svn7768_1405"
  3029. ><td id="1405"><a href="#1405">1405</a></td></tr
  3030. ><tr id="gr_svn7768_1406"
  3031. ><td id="1406"><a href="#1406">1406</a></td></tr
  3032. ><tr id="gr_svn7768_1407"
  3033. ><td id="1407"><a href="#1407">1407</a></td></tr
  3034. ><tr id="gr_svn7768_1408"
  3035. ><td id="1408"><a href="#1408">1408</a></td></tr
  3036. ><tr id="gr_svn7768_1409"
  3037. ><td id="1409"><a href="#1409">1409</a></td></tr
  3038. ><tr id="gr_svn7768_1410"
  3039. ><td id="1410"><a href="#1410">1410</a></td></tr
  3040. ><tr id="gr_svn7768_1411"
  3041. ><td id="1411"><a href="#1411">1411</a></td></tr
  3042. ><tr id="gr_svn7768_1412"
  3043. ><td id="1412"><a href="#1412">1412</a></td></tr
  3044. ><tr id="gr_svn7768_1413"
  3045. ><td id="1413"><a href="#1413">1413</a></td></tr
  3046. ><tr id="gr_svn7768_1414"
  3047. ><td id="1414"><a href="#1414">1414</a></td></tr
  3048. ><tr id="gr_svn7768_1415"
  3049. ><td id="1415"><a href="#1415">1415</a></td></tr
  3050. ><tr id="gr_svn7768_1416"
  3051. ><td id="1416"><a href="#1416">1416</a></td></tr
  3052. ><tr id="gr_svn7768_1417"
  3053. ><td id="1417"><a href="#1417">1417</a></td></tr
  3054. ><tr id="gr_svn7768_1418"
  3055. ><td id="1418"><a href="#1418">1418</a></td></tr
  3056. ><tr id="gr_svn7768_1419"
  3057. ><td id="1419"><a href="#1419">1419</a></td></tr
  3058. ><tr id="gr_svn7768_1420"
  3059. ><td id="1420"><a href="#1420">1420</a></td></tr
  3060. ><tr id="gr_svn7768_1421"
  3061. ><td id="1421"><a href="#1421">1421</a></td></tr
  3062. ><tr id="gr_svn7768_1422"
  3063. ><td id="1422"><a href="#1422">1422</a></td></tr
  3064. ><tr id="gr_svn7768_1423"
  3065. ><td id="1423"><a href="#1423">1423</a></td></tr
  3066. ><tr id="gr_svn7768_1424"
  3067. ><td id="1424"><a href="#1424">1424</a></td></tr
  3068. ><tr id="gr_svn7768_1425"
  3069. ><td id="1425"><a href="#1425">1425</a></td></tr
  3070. ><tr id="gr_svn7768_1426"
  3071. ><td id="1426"><a href="#1426">1426</a></td></tr
  3072. ><tr id="gr_svn7768_1427"
  3073. ><td id="1427"><a href="#1427">1427</a></td></tr
  3074. ><tr id="gr_svn7768_1428"
  3075. ><td id="1428"><a href="#1428">1428</a></td></tr
  3076. ><tr id="gr_svn7768_1429"
  3077. ><td id="1429"><a href="#1429">1429</a></td></tr
  3078. ><tr id="gr_svn7768_1430"
  3079. ><td id="1430"><a href="#1430">1430</a></td></tr
  3080. ><tr id="gr_svn7768_1431"
  3081. ><td id="1431"><a href="#1431">1431</a></td></tr
  3082. ><tr id="gr_svn7768_1432"
  3083. ><td id="1432"><a href="#1432">1432</a></td></tr
  3084. ><tr id="gr_svn7768_1433"
  3085. ><td id="1433"><a href="#1433">1433</a></td></tr
  3086. ><tr id="gr_svn7768_1434"
  3087. ><td id="1434"><a href="#1434">1434</a></td></tr
  3088. ><tr id="gr_svn7768_1435"
  3089. ><td id="1435"><a href="#1435">1435</a></td></tr
  3090. ><tr id="gr_svn7768_1436"
  3091. ><td id="1436"><a href="#1436">1436</a></td></tr
  3092. ><tr id="gr_svn7768_1437"
  3093. ><td id="1437"><a href="#1437">1437</a></td></tr
  3094. ><tr id="gr_svn7768_1438"
  3095. ><td id="1438"><a href="#1438">1438</a></td></tr
  3096. ><tr id="gr_svn7768_1439"
  3097. ><td id="1439"><a href="#1439">1439</a></td></tr
  3098. ><tr id="gr_svn7768_1440"
  3099. ><td id="1440"><a href="#1440">1440</a></td></tr
  3100. ><tr id="gr_svn7768_1441"
  3101. ><td id="1441"><a href="#1441">1441</a></td></tr
  3102. ><tr id="gr_svn7768_1442"
  3103. ><td id="1442"><a href="#1442">1442</a></td></tr
  3104. ><tr id="gr_svn7768_1443"
  3105. ><td id="1443"><a href="#1443">1443</a></td></tr
  3106. ><tr id="gr_svn7768_1444"
  3107. ><td id="1444"><a href="#1444">1444</a></td></tr
  3108. ><tr id="gr_svn7768_1445"
  3109. ><td id="1445"><a href="#1445">1445</a></td></tr
  3110. ><tr id="gr_svn7768_1446"
  3111. ><td id="1446"><a href="#1446">1446</a></td></tr
  3112. ><tr id="gr_svn7768_1447"
  3113. ><td id="1447"><a href="#1447">1447</a></td></tr
  3114. ><tr id="gr_svn7768_1448"
  3115. ><td id="1448"><a href="#1448">1448</a></td></tr
  3116. ><tr id="gr_svn7768_1449"
  3117. ><td id="1449"><a href="#1449">1449</a></td></tr
  3118. ><tr id="gr_svn7768_1450"
  3119. ><td id="1450"><a href="#1450">1450</a></td></tr
  3120. ><tr id="gr_svn7768_1451"
  3121. ><td id="1451"><a href="#1451">1451</a></td></tr
  3122. ><tr id="gr_svn7768_1452"
  3123. ><td id="1452"><a href="#1452">1452</a></td></tr
  3124. ><tr id="gr_svn7768_1453"
  3125. ><td id="1453"><a href="#1453">1453</a></td></tr
  3126. ><tr id="gr_svn7768_1454"
  3127. ><td id="1454"><a href="#1454">1454</a></td></tr
  3128. ><tr id="gr_svn7768_1455"
  3129. ><td id="1455"><a href="#1455">1455</a></td></tr
  3130. ><tr id="gr_svn7768_1456"
  3131. ><td id="1456"><a href="#1456">1456</a></td></tr
  3132. ><tr id="gr_svn7768_1457"
  3133. ><td id="1457"><a href="#1457">1457</a></td></tr
  3134. ><tr id="gr_svn7768_1458"
  3135. ><td id="1458"><a href="#1458">1458</a></td></tr
  3136. ><tr id="gr_svn7768_1459"
  3137. ><td id="1459"><a href="#1459">1459</a></td></tr
  3138. ><tr id="gr_svn7768_1460"
  3139. ><td id="1460"><a href="#1460">1460</a></td></tr
  3140. ><tr id="gr_svn7768_1461"
  3141. ><td id="1461"><a href="#1461">1461</a></td></tr
  3142. ><tr id="gr_svn7768_1462"
  3143. ><td id="1462"><a href="#1462">1462</a></td></tr
  3144. ><tr id="gr_svn7768_1463"
  3145. ><td id="1463"><a href="#1463">1463</a></td></tr
  3146. ><tr id="gr_svn7768_1464"
  3147. ><td id="1464"><a href="#1464">1464</a></td></tr
  3148. ><tr id="gr_svn7768_1465"
  3149. ><td id="1465"><a href="#1465">1465</a></td></tr
  3150. ><tr id="gr_svn7768_1466"
  3151. ><td id="1466"><a href="#1466">1466</a></td></tr
  3152. ><tr id="gr_svn7768_1467"
  3153. ><td id="1467"><a href="#1467">1467</a></td></tr
  3154. ><tr id="gr_svn7768_1468"
  3155. ><td id="1468"><a href="#1468">1468</a></td></tr
  3156. ><tr id="gr_svn7768_1469"
  3157. ><td id="1469"><a href="#1469">1469</a></td></tr
  3158. ><tr id="gr_svn7768_1470"
  3159. ><td id="1470"><a href="#1470">1470</a></td></tr
  3160. ><tr id="gr_svn7768_1471"
  3161. ><td id="1471"><a href="#1471">1471</a></td></tr
  3162. ><tr id="gr_svn7768_1472"
  3163. ><td id="1472"><a href="#1472">1472</a></td></tr
  3164. ><tr id="gr_svn7768_1473"
  3165. ><td id="1473"><a href="#1473">1473</a></td></tr
  3166. ><tr id="gr_svn7768_1474"
  3167. ><td id="1474"><a href="#1474">1474</a></td></tr
  3168. ><tr id="gr_svn7768_1475"
  3169. ><td id="1475"><a href="#1475">1475</a></td></tr
  3170. ><tr id="gr_svn7768_1476"
  3171. ><td id="1476"><a href="#1476">1476</a></td></tr
  3172. ><tr id="gr_svn7768_1477"
  3173. ><td id="1477"><a href="#1477">1477</a></td></tr
  3174. ><tr id="gr_svn7768_1478"
  3175. ><td id="1478"><a href="#1478">1478</a></td></tr
  3176. ><tr id="gr_svn7768_1479"
  3177. ><td id="1479"><a href="#1479">1479</a></td></tr
  3178. ><tr id="gr_svn7768_1480"
  3179. ><td id="1480"><a href="#1480">1480</a></td></tr
  3180. ><tr id="gr_svn7768_1481"
  3181. ><td id="1481"><a href="#1481">1481</a></td></tr
  3182. ><tr id="gr_svn7768_1482"
  3183. ><td id="1482"><a href="#1482">1482</a></td></tr
  3184. ><tr id="gr_svn7768_1483"
  3185. ><td id="1483"><a href="#1483">1483</a></td></tr
  3186. ><tr id="gr_svn7768_1484"
  3187. ><td id="1484"><a href="#1484">1484</a></td></tr
  3188. ><tr id="gr_svn7768_1485"
  3189. ><td id="1485"><a href="#1485">1485</a></td></tr
  3190. ><tr id="gr_svn7768_1486"
  3191. ><td id="1486"><a href="#1486">1486</a></td></tr
  3192. ><tr id="gr_svn7768_1487"
  3193. ><td id="1487"><a href="#1487">1487</a></td></tr
  3194. ><tr id="gr_svn7768_1488"
  3195. ><td id="1488"><a href="#1488">1488</a></td></tr
  3196. ><tr id="gr_svn7768_1489"
  3197. ><td id="1489"><a href="#1489">1489</a></td></tr
  3198. ><tr id="gr_svn7768_1490"
  3199. ><td id="1490"><a href="#1490">1490</a></td></tr
  3200. ><tr id="gr_svn7768_1491"
  3201. ><td id="1491"><a href="#1491">1491</a></td></tr
  3202. ><tr id="gr_svn7768_1492"
  3203. ><td id="1492"><a href="#1492">1492</a></td></tr
  3204. ><tr id="gr_svn7768_1493"
  3205. ><td id="1493"><a href="#1493">1493</a></td></tr
  3206. ><tr id="gr_svn7768_1494"
  3207. ><td id="1494"><a href="#1494">1494</a></td></tr
  3208. ><tr id="gr_svn7768_1495"
  3209. ><td id="1495"><a href="#1495">1495</a></td></tr
  3210. ><tr id="gr_svn7768_1496"
  3211. ><td id="1496"><a href="#1496">1496</a></td></tr
  3212. ><tr id="gr_svn7768_1497"
  3213. ><td id="1497"><a href="#1497">1497</a></td></tr
  3214. ><tr id="gr_svn7768_1498"
  3215. ><td id="1498"><a href="#1498">1498</a></td></tr
  3216. ><tr id="gr_svn7768_1499"
  3217. ><td id="1499"><a href="#1499">1499</a></td></tr
  3218. ><tr id="gr_svn7768_1500"
  3219. ><td id="1500"><a href="#1500">1500</a></td></tr
  3220. ><tr id="gr_svn7768_1501"
  3221. ><td id="1501"><a href="#1501">1501</a></td></tr
  3222. ><tr id="gr_svn7768_1502"
  3223. ><td id="1502"><a href="#1502">1502</a></td></tr
  3224. ><tr id="gr_svn7768_1503"
  3225. ><td id="1503"><a href="#1503">1503</a></td></tr
  3226. ><tr id="gr_svn7768_1504"
  3227. ><td id="1504"><a href="#1504">1504</a></td></tr
  3228. ><tr id="gr_svn7768_1505"
  3229. ><td id="1505"><a href="#1505">1505</a></td></tr
  3230. ><tr id="gr_svn7768_1506"
  3231. ><td id="1506"><a href="#1506">1506</a></td></tr
  3232. ><tr id="gr_svn7768_1507"
  3233. ><td id="1507"><a href="#1507">1507</a></td></tr
  3234. ><tr id="gr_svn7768_1508"
  3235. ><td id="1508"><a href="#1508">1508</a></td></tr
  3236. ><tr id="gr_svn7768_1509"
  3237. ><td id="1509"><a href="#1509">1509</a></td></tr
  3238. ><tr id="gr_svn7768_1510"
  3239. ><td id="1510"><a href="#1510">1510</a></td></tr
  3240. ><tr id="gr_svn7768_1511"
  3241. ><td id="1511"><a href="#1511">1511</a></td></tr
  3242. ><tr id="gr_svn7768_1512"
  3243. ><td id="1512"><a href="#1512">1512</a></td></tr
  3244. ><tr id="gr_svn7768_1513"
  3245. ><td id="1513"><a href="#1513">1513</a></td></tr
  3246. ><tr id="gr_svn7768_1514"
  3247. ><td id="1514"><a href="#1514">1514</a></td></tr
  3248. ><tr id="gr_svn7768_1515"
  3249. ><td id="1515"><a href="#1515">1515</a></td></tr
  3250. ><tr id="gr_svn7768_1516"
  3251. ><td id="1516"><a href="#1516">1516</a></td></tr
  3252. ><tr id="gr_svn7768_1517"
  3253. ><td id="1517"><a href="#1517">1517</a></td></tr
  3254. ><tr id="gr_svn7768_1518"
  3255. ><td id="1518"><a href="#1518">1518</a></td></tr
  3256. ><tr id="gr_svn7768_1519"
  3257. ><td id="1519"><a href="#1519">1519</a></td></tr
  3258. ><tr id="gr_svn7768_1520"
  3259. ><td id="1520"><a href="#1520">1520</a></td></tr
  3260. ><tr id="gr_svn7768_1521"
  3261. ><td id="1521"><a href="#1521">1521</a></td></tr
  3262. ><tr id="gr_svn7768_1522"
  3263. ><td id="1522"><a href="#1522">1522</a></td></tr
  3264. ><tr id="gr_svn7768_1523"
  3265. ><td id="1523"><a href="#1523">1523</a></td></tr
  3266. ><tr id="gr_svn7768_1524"
  3267. ><td id="1524"><a href="#1524">1524</a></td></tr
  3268. ><tr id="gr_svn7768_1525"
  3269. ><td id="1525"><a href="#1525">1525</a></td></tr
  3270. ><tr id="gr_svn7768_1526"
  3271. ><td id="1526"><a href="#1526">1526</a></td></tr
  3272. ><tr id="gr_svn7768_1527"
  3273. ><td id="1527"><a href="#1527">1527</a></td></tr
  3274. ><tr id="gr_svn7768_1528"
  3275. ><td id="1528"><a href="#1528">1528</a></td></tr
  3276. ><tr id="gr_svn7768_1529"
  3277. ><td id="1529"><a href="#1529">1529</a></td></tr
  3278. ><tr id="gr_svn7768_1530"
  3279. ><td id="1530"><a href="#1530">1530</a></td></tr
  3280. ><tr id="gr_svn7768_1531"
  3281. ><td id="1531"><a href="#1531">1531</a></td></tr
  3282. ><tr id="gr_svn7768_1532"
  3283. ><td id="1532"><a href="#1532">1532</a></td></tr
  3284. ><tr id="gr_svn7768_1533"
  3285. ><td id="1533"><a href="#1533">1533</a></td></tr
  3286. ><tr id="gr_svn7768_1534"
  3287. ><td id="1534"><a href="#1534">1534</a></td></tr
  3288. ><tr id="gr_svn7768_1535"
  3289. ><td id="1535"><a href="#1535">1535</a></td></tr
  3290. ><tr id="gr_svn7768_1536"
  3291. ><td id="1536"><a href="#1536">1536</a></td></tr
  3292. ><tr id="gr_svn7768_1537"
  3293. ><td id="1537"><a href="#1537">1537</a></td></tr
  3294. ><tr id="gr_svn7768_1538"
  3295. ><td id="1538"><a href="#1538">1538</a></td></tr
  3296. ><tr id="gr_svn7768_1539"
  3297. ><td id="1539"><a href="#1539">1539</a></td></tr
  3298. ><tr id="gr_svn7768_1540"
  3299. ><td id="1540"><a href="#1540">1540</a></td></tr
  3300. ><tr id="gr_svn7768_1541"
  3301. ><td id="1541"><a href="#1541">1541</a></td></tr
  3302. ><tr id="gr_svn7768_1542"
  3303. ><td id="1542"><a href="#1542">1542</a></td></tr
  3304. ><tr id="gr_svn7768_1543"
  3305. ><td id="1543"><a href="#1543">1543</a></td></tr
  3306. ><tr id="gr_svn7768_1544"
  3307. ><td id="1544"><a href="#1544">1544</a></td></tr
  3308. ><tr id="gr_svn7768_1545"
  3309. ><td id="1545"><a href="#1545">1545</a></td></tr
  3310. ><tr id="gr_svn7768_1546"
  3311. ><td id="1546"><a href="#1546">1546</a></td></tr
  3312. ><tr id="gr_svn7768_1547"
  3313. ><td id="1547"><a href="#1547">1547</a></td></tr
  3314. ><tr id="gr_svn7768_1548"
  3315. ><td id="1548"><a href="#1548">1548</a></td></tr
  3316. ><tr id="gr_svn7768_1549"
  3317. ><td id="1549"><a href="#1549">1549</a></td></tr
  3318. ><tr id="gr_svn7768_1550"
  3319. ><td id="1550"><a href="#1550">1550</a></td></tr
  3320. ><tr id="gr_svn7768_1551"
  3321. ><td id="1551"><a href="#1551">1551</a></td></tr
  3322. ><tr id="gr_svn7768_1552"
  3323. ><td id="1552"><a href="#1552">1552</a></td></tr
  3324. ><tr id="gr_svn7768_1553"
  3325. ><td id="1553"><a href="#1553">1553</a></td></tr
  3326. ><tr id="gr_svn7768_1554"
  3327. ><td id="1554"><a href="#1554">1554</a></td></tr
  3328. ><tr id="gr_svn7768_1555"
  3329. ><td id="1555"><a href="#1555">1555</a></td></tr
  3330. ><tr id="gr_svn7768_1556"
  3331. ><td id="1556"><a href="#1556">1556</a></td></tr
  3332. ><tr id="gr_svn7768_1557"
  3333. ><td id="1557"><a href="#1557">1557</a></td></tr
  3334. ><tr id="gr_svn7768_1558"
  3335. ><td id="1558"><a href="#1558">1558</a></td></tr
  3336. ><tr id="gr_svn7768_1559"
  3337. ><td id="1559"><a href="#1559">1559</a></td></tr
  3338. ><tr id="gr_svn7768_1560"
  3339. ><td id="1560"><a href="#1560">1560</a></td></tr
  3340. ><tr id="gr_svn7768_1561"
  3341. ><td id="1561"><a href="#1561">1561</a></td></tr
  3342. ><tr id="gr_svn7768_1562"
  3343. ><td id="1562"><a href="#1562">1562</a></td></tr
  3344. ><tr id="gr_svn7768_1563"
  3345. ><td id="1563"><a href="#1563">1563</a></td></tr
  3346. ><tr id="gr_svn7768_1564"
  3347. ><td id="1564"><a href="#1564">1564</a></td></tr
  3348. ><tr id="gr_svn7768_1565"
  3349. ><td id="1565"><a href="#1565">1565</a></td></tr
  3350. ><tr id="gr_svn7768_1566"
  3351. ><td id="1566"><a href="#1566">1566</a></td></tr
  3352. ><tr id="gr_svn7768_1567"
  3353. ><td id="1567"><a href="#1567">1567</a></td></tr
  3354. ><tr id="gr_svn7768_1568"
  3355. ><td id="1568"><a href="#1568">1568</a></td></tr
  3356. ><tr id="gr_svn7768_1569"
  3357. ><td id="1569"><a href="#1569">1569</a></td></tr
  3358. ><tr id="gr_svn7768_1570"
  3359. ><td id="1570"><a href="#1570">1570</a></td></tr
  3360. ><tr id="gr_svn7768_1571"
  3361. ><td id="1571"><a href="#1571">1571</a></td></tr
  3362. ><tr id="gr_svn7768_1572"
  3363. ><td id="1572"><a href="#1572">1572</a></td></tr
  3364. ><tr id="gr_svn7768_1573"
  3365. ><td id="1573"><a href="#1573">1573</a></td></tr
  3366. ><tr id="gr_svn7768_1574"
  3367. ><td id="1574"><a href="#1574">1574</a></td></tr
  3368. ><tr id="gr_svn7768_1575"
  3369. ><td id="1575"><a href="#1575">1575</a></td></tr
  3370. ><tr id="gr_svn7768_1576"
  3371. ><td id="1576"><a href="#1576">1576</a></td></tr
  3372. ><tr id="gr_svn7768_1577"
  3373. ><td id="1577"><a href="#1577">1577</a></td></tr
  3374. ><tr id="gr_svn7768_1578"
  3375. ><td id="1578"><a href="#1578">1578</a></td></tr
  3376. ><tr id="gr_svn7768_1579"
  3377. ><td id="1579"><a href="#1579">1579</a></td></tr
  3378. ><tr id="gr_svn7768_1580"
  3379. ><td id="1580"><a href="#1580">1580</a></td></tr
  3380. ><tr id="gr_svn7768_1581"
  3381. ><td id="1581"><a href="#1581">1581</a></td></tr
  3382. ><tr id="gr_svn7768_1582"
  3383. ><td id="1582"><a href="#1582">1582</a></td></tr
  3384. ><tr id="gr_svn7768_1583"
  3385. ><td id="1583"><a href="#1583">1583</a></td></tr
  3386. ><tr id="gr_svn7768_1584"
  3387. ><td id="1584"><a href="#1584">1584</a></td></tr
  3388. ><tr id="gr_svn7768_1585"
  3389. ><td id="1585"><a href="#1585">1585</a></td></tr
  3390. ><tr id="gr_svn7768_1586"
  3391. ><td id="1586"><a href="#1586">1586</a></td></tr
  3392. ><tr id="gr_svn7768_1587"
  3393. ><td id="1587"><a href="#1587">1587</a></td></tr
  3394. ><tr id="gr_svn7768_1588"
  3395. ><td id="1588"><a href="#1588">1588</a></td></tr
  3396. ><tr id="gr_svn7768_1589"
  3397. ><td id="1589"><a href="#1589">1589</a></td></tr
  3398. ><tr id="gr_svn7768_1590"
  3399. ><td id="1590"><a href="#1590">1590</a></td></tr
  3400. ><tr id="gr_svn7768_1591"
  3401. ><td id="1591"><a href="#1591">1591</a></td></tr
  3402. ><tr id="gr_svn7768_1592"
  3403. ><td id="1592"><a href="#1592">1592</a></td></tr
  3404. ><tr id="gr_svn7768_1593"
  3405. ><td id="1593"><a href="#1593">1593</a></td></tr
  3406. ><tr id="gr_svn7768_1594"
  3407. ><td id="1594"><a href="#1594">1594</a></td></tr
  3408. ><tr id="gr_svn7768_1595"
  3409. ><td id="1595"><a href="#1595">1595</a></td></tr
  3410. ><tr id="gr_svn7768_1596"
  3411. ><td id="1596"><a href="#1596">1596</a></td></tr
  3412. ><tr id="gr_svn7768_1597"
  3413. ><td id="1597"><a href="#1597">1597</a></td></tr
  3414. ><tr id="gr_svn7768_1598"
  3415. ><td id="1598"><a href="#1598">1598</a></td></tr
  3416. ><tr id="gr_svn7768_1599"
  3417. ><td id="1599"><a href="#1599">1599</a></td></tr
  3418. ><tr id="gr_svn7768_1600"
  3419. ><td id="1600"><a href="#1600">1600</a></td></tr
  3420. ><tr id="gr_svn7768_1601"
  3421. ><td id="1601"><a href="#1601">1601</a></td></tr
  3422. ><tr id="gr_svn7768_1602"
  3423. ><td id="1602"><a href="#1602">1602</a></td></tr
  3424. ><tr id="gr_svn7768_1603"
  3425. ><td id="1603"><a href="#1603">1603</a></td></tr
  3426. ><tr id="gr_svn7768_1604"
  3427. ><td id="1604"><a href="#1604">1604</a></td></tr
  3428. ><tr id="gr_svn7768_1605"
  3429. ><td id="1605"><a href="#1605">1605</a></td></tr
  3430. ><tr id="gr_svn7768_1606"
  3431. ><td id="1606"><a href="#1606">1606</a></td></tr
  3432. ><tr id="gr_svn7768_1607"
  3433. ><td id="1607"><a href="#1607">1607</a></td></tr
  3434. ><tr id="gr_svn7768_1608"
  3435. ><td id="1608"><a href="#1608">1608</a></td></tr
  3436. ><tr id="gr_svn7768_1609"
  3437. ><td id="1609"><a href="#1609">1609</a></td></tr
  3438. ><tr id="gr_svn7768_1610"
  3439. ><td id="1610"><a href="#1610">1610</a></td></tr
  3440. ><tr id="gr_svn7768_1611"
  3441. ><td id="1611"><a href="#1611">1611</a></td></tr
  3442. ><tr id="gr_svn7768_1612"
  3443. ><td id="1612"><a href="#1612">1612</a></td></tr
  3444. ><tr id="gr_svn7768_1613"
  3445. ><td id="1613"><a href="#1613">1613</a></td></tr
  3446. ><tr id="gr_svn7768_1614"
  3447. ><td id="1614"><a href="#1614">1614</a></td></tr
  3448. ><tr id="gr_svn7768_1615"
  3449. ><td id="1615"><a href="#1615">1615</a></td></tr
  3450. ><tr id="gr_svn7768_1616"
  3451. ><td id="1616"><a href="#1616">1616</a></td></tr
  3452. ><tr id="gr_svn7768_1617"
  3453. ><td id="1617"><a href="#1617">1617</a></td></tr
  3454. ><tr id="gr_svn7768_1618"
  3455. ><td id="1618"><a href="#1618">1618</a></td></tr
  3456. ><tr id="gr_svn7768_1619"
  3457. ><td id="1619"><a href="#1619">1619</a></td></tr
  3458. ><tr id="gr_svn7768_1620"
  3459. ><td id="1620"><a href="#1620">1620</a></td></tr
  3460. ><tr id="gr_svn7768_1621"
  3461. ><td id="1621"><a href="#1621">1621</a></td></tr
  3462. ><tr id="gr_svn7768_1622"
  3463. ><td id="1622"><a href="#1622">1622</a></td></tr
  3464. ><tr id="gr_svn7768_1623"
  3465. ><td id="1623"><a href="#1623">1623</a></td></tr
  3466. ><tr id="gr_svn7768_1624"
  3467. ><td id="1624"><a href="#1624">1624</a></td></tr
  3468. ><tr id="gr_svn7768_1625"
  3469. ><td id="1625"><a href="#1625">1625</a></td></tr
  3470. ><tr id="gr_svn7768_1626"
  3471. ><td id="1626"><a href="#1626">1626</a></td></tr
  3472. ><tr id="gr_svn7768_1627"
  3473. ><td id="1627"><a href="#1627">1627</a></td></tr
  3474. ><tr id="gr_svn7768_1628"
  3475. ><td id="1628"><a href="#1628">1628</a></td></tr
  3476. ><tr id="gr_svn7768_1629"
  3477. ><td id="1629"><a href="#1629">1629</a></td></tr
  3478. ><tr id="gr_svn7768_1630"
  3479. ><td id="1630"><a href="#1630">1630</a></td></tr
  3480. ><tr id="gr_svn7768_1631"
  3481. ><td id="1631"><a href="#1631">1631</a></td></tr
  3482. ><tr id="gr_svn7768_1632"
  3483. ><td id="1632"><a href="#1632">1632</a></td></tr
  3484. ><tr id="gr_svn7768_1633"
  3485. ><td id="1633"><a href="#1633">1633</a></td></tr
  3486. ><tr id="gr_svn7768_1634"
  3487. ><td id="1634"><a href="#1634">1634</a></td></tr
  3488. ><tr id="gr_svn7768_1635"
  3489. ><td id="1635"><a href="#1635">1635</a></td></tr
  3490. ><tr id="gr_svn7768_1636"
  3491. ><td id="1636"><a href="#1636">1636</a></td></tr
  3492. ><tr id="gr_svn7768_1637"
  3493. ><td id="1637"><a href="#1637">1637</a></td></tr
  3494. ><tr id="gr_svn7768_1638"
  3495. ><td id="1638"><a href="#1638">1638</a></td></tr
  3496. ><tr id="gr_svn7768_1639"
  3497. ><td id="1639"><a href="#1639">1639</a></td></tr
  3498. ><tr id="gr_svn7768_1640"
  3499. ><td id="1640"><a href="#1640">1640</a></td></tr
  3500. ><tr id="gr_svn7768_1641"
  3501. ><td id="1641"><a href="#1641">1641</a></td></tr
  3502. ><tr id="gr_svn7768_1642"
  3503. ><td id="1642"><a href="#1642">1642</a></td></tr
  3504. ><tr id="gr_svn7768_1643"
  3505. ><td id="1643"><a href="#1643">1643</a></td></tr
  3506. ><tr id="gr_svn7768_1644"
  3507. ><td id="1644"><a href="#1644">1644</a></td></tr
  3508. ><tr id="gr_svn7768_1645"
  3509. ><td id="1645"><a href="#1645">1645</a></td></tr
  3510. ><tr id="gr_svn7768_1646"
  3511. ><td id="1646"><a href="#1646">1646</a></td></tr
  3512. ><tr id="gr_svn7768_1647"
  3513. ><td id="1647"><a href="#1647">1647</a></td></tr
  3514. ><tr id="gr_svn7768_1648"
  3515. ><td id="1648"><a href="#1648">1648</a></td></tr
  3516. ><tr id="gr_svn7768_1649"
  3517. ><td id="1649"><a href="#1649">1649</a></td></tr
  3518. ><tr id="gr_svn7768_1650"
  3519. ><td id="1650"><a href="#1650">1650</a></td></tr
  3520. ><tr id="gr_svn7768_1651"
  3521. ><td id="1651"><a href="#1651">1651</a></td></tr
  3522. ><tr id="gr_svn7768_1652"
  3523. ><td id="1652"><a href="#1652">1652</a></td></tr
  3524. ><tr id="gr_svn7768_1653"
  3525. ><td id="1653"><a href="#1653">1653</a></td></tr
  3526. ><tr id="gr_svn7768_1654"
  3527. ><td id="1654"><a href="#1654">1654</a></td></tr
  3528. ><tr id="gr_svn7768_1655"
  3529. ><td id="1655"><a href="#1655">1655</a></td></tr
  3530. ><tr id="gr_svn7768_1656"
  3531. ><td id="1656"><a href="#1656">1656</a></td></tr
  3532. ><tr id="gr_svn7768_1657"
  3533. ><td id="1657"><a href="#1657">1657</a></td></tr
  3534. ><tr id="gr_svn7768_1658"
  3535. ><td id="1658"><a href="#1658">1658</a></td></tr
  3536. ><tr id="gr_svn7768_1659"
  3537. ><td id="1659"><a href="#1659">1659</a></td></tr
  3538. ><tr id="gr_svn7768_1660"
  3539. ><td id="1660"><a href="#1660">1660</a></td></tr
  3540. ><tr id="gr_svn7768_1661"
  3541. ><td id="1661"><a href="#1661">1661</a></td></tr
  3542. ><tr id="gr_svn7768_1662"
  3543. ><td id="1662"><a href="#1662">1662</a></td></tr
  3544. ><tr id="gr_svn7768_1663"
  3545. ><td id="1663"><a href="#1663">1663</a></td></tr
  3546. ><tr id="gr_svn7768_1664"
  3547. ><td id="1664"><a href="#1664">1664</a></td></tr
  3548. ><tr id="gr_svn7768_1665"
  3549. ><td id="1665"><a href="#1665">1665</a></td></tr
  3550. ><tr id="gr_svn7768_1666"
  3551. ><td id="1666"><a href="#1666">1666</a></td></tr
  3552. ><tr id="gr_svn7768_1667"
  3553. ><td id="1667"><a href="#1667">1667</a></td></tr
  3554. ><tr id="gr_svn7768_1668"
  3555. ><td id="1668"><a href="#1668">1668</a></td></tr
  3556. ><tr id="gr_svn7768_1669"
  3557. ><td id="1669"><a href="#1669">1669</a></td></tr
  3558. ><tr id="gr_svn7768_1670"
  3559. ><td id="1670"><a href="#1670">1670</a></td></tr
  3560. ><tr id="gr_svn7768_1671"
  3561. ><td id="1671"><a href="#1671">1671</a></td></tr
  3562. ><tr id="gr_svn7768_1672"
  3563. ><td id="1672"><a href="#1672">1672</a></td></tr
  3564. ><tr id="gr_svn7768_1673"
  3565. ><td id="1673"><a href="#1673">1673</a></td></tr
  3566. ><tr id="gr_svn7768_1674"
  3567. ><td id="1674"><a href="#1674">1674</a></td></tr
  3568. ><tr id="gr_svn7768_1675"
  3569. ><td id="1675"><a href="#1675">1675</a></td></tr
  3570. ><tr id="gr_svn7768_1676"
  3571. ><td id="1676"><a href="#1676">1676</a></td></tr
  3572. ><tr id="gr_svn7768_1677"
  3573. ><td id="1677"><a href="#1677">1677</a></td></tr
  3574. ><tr id="gr_svn7768_1678"
  3575. ><td id="1678"><a href="#1678">1678</a></td></tr
  3576. ><tr id="gr_svn7768_1679"
  3577. ><td id="1679"><a href="#1679">1679</a></td></tr
  3578. ><tr id="gr_svn7768_1680"
  3579. ><td id="1680"><a href="#1680">1680</a></td></tr
  3580. ><tr id="gr_svn7768_1681"
  3581. ><td id="1681"><a href="#1681">1681</a></td></tr
  3582. ><tr id="gr_svn7768_1682"
  3583. ><td id="1682"><a href="#1682">1682</a></td></tr
  3584. ><tr id="gr_svn7768_1683"
  3585. ><td id="1683"><a href="#1683">1683</a></td></tr
  3586. ><tr id="gr_svn7768_1684"
  3587. ><td id="1684"><a href="#1684">1684</a></td></tr
  3588. ><tr id="gr_svn7768_1685"
  3589. ><td id="1685"><a href="#1685">1685</a></td></tr
  3590. ><tr id="gr_svn7768_1686"
  3591. ><td id="1686"><a href="#1686">1686</a></td></tr
  3592. ><tr id="gr_svn7768_1687"
  3593. ><td id="1687"><a href="#1687">1687</a></td></tr
  3594. ><tr id="gr_svn7768_1688"
  3595. ><td id="1688"><a href="#1688">1688</a></td></tr
  3596. ><tr id="gr_svn7768_1689"
  3597. ><td id="1689"><a href="#1689">1689</a></td></tr
  3598. ><tr id="gr_svn7768_1690"
  3599. ><td id="1690"><a href="#1690">1690</a></td></tr
  3600. ><tr id="gr_svn7768_1691"
  3601. ><td id="1691"><a href="#1691">1691</a></td></tr
  3602. ><tr id="gr_svn7768_1692"
  3603. ><td id="1692"><a href="#1692">1692</a></td></tr
  3604. ><tr id="gr_svn7768_1693"
  3605. ><td id="1693"><a href="#1693">1693</a></td></tr
  3606. ><tr id="gr_svn7768_1694"
  3607. ><td id="1694"><a href="#1694">1694</a></td></tr
  3608. ><tr id="gr_svn7768_1695"
  3609. ><td id="1695"><a href="#1695">1695</a></td></tr
  3610. ><tr id="gr_svn7768_1696"
  3611. ><td id="1696"><a href="#1696">1696</a></td></tr
  3612. ><tr id="gr_svn7768_1697"
  3613. ><td id="1697"><a href="#1697">1697</a></td></tr
  3614. ><tr id="gr_svn7768_1698"
  3615. ><td id="1698"><a href="#1698">1698</a></td></tr
  3616. ><tr id="gr_svn7768_1699"
  3617. ><td id="1699"><a href="#1699">1699</a></td></tr
  3618. ><tr id="gr_svn7768_1700"
  3619. ><td id="1700"><a href="#1700">1700</a></td></tr
  3620. ><tr id="gr_svn7768_1701"
  3621. ><td id="1701"><a href="#1701">1701</a></td></tr
  3622. ><tr id="gr_svn7768_1702"
  3623. ><td id="1702"><a href="#1702">1702</a></td></tr
  3624. ><tr id="gr_svn7768_1703"
  3625. ><td id="1703"><a href="#1703">1703</a></td></tr
  3626. ><tr id="gr_svn7768_1704"
  3627. ><td id="1704"><a href="#1704">1704</a></td></tr
  3628. ><tr id="gr_svn7768_1705"
  3629. ><td id="1705"><a href="#1705">1705</a></td></tr
  3630. ><tr id="gr_svn7768_1706"
  3631. ><td id="1706"><a href="#1706">1706</a></td></tr
  3632. ><tr id="gr_svn7768_1707"
  3633. ><td id="1707"><a href="#1707">1707</a></td></tr
  3634. ><tr id="gr_svn7768_1708"
  3635. ><td id="1708"><a href="#1708">1708</a></td></tr
  3636. ><tr id="gr_svn7768_1709"
  3637. ><td id="1709"><a href="#1709">1709</a></td></tr
  3638. ><tr id="gr_svn7768_1710"
  3639. ><td id="1710"><a href="#1710">1710</a></td></tr
  3640. ><tr id="gr_svn7768_1711"
  3641. ><td id="1711"><a href="#1711">1711</a></td></tr
  3642. ><tr id="gr_svn7768_1712"
  3643. ><td id="1712"><a href="#1712">1712</a></td></tr
  3644. ><tr id="gr_svn7768_1713"
  3645. ><td id="1713"><a href="#1713">1713</a></td></tr
  3646. ><tr id="gr_svn7768_1714"
  3647. ><td id="1714"><a href="#1714">1714</a></td></tr
  3648. ><tr id="gr_svn7768_1715"
  3649. ><td id="1715"><a href="#1715">1715</a></td></tr
  3650. ><tr id="gr_svn7768_1716"
  3651. ><td id="1716"><a href="#1716">1716</a></td></tr
  3652. ><tr id="gr_svn7768_1717"
  3653. ><td id="1717"><a href="#1717">1717</a></td></tr
  3654. ><tr id="gr_svn7768_1718"
  3655. ><td id="1718"><a href="#1718">1718</a></td></tr
  3656. ><tr id="gr_svn7768_1719"
  3657. ><td id="1719"><a href="#1719">1719</a></td></tr
  3658. ><tr id="gr_svn7768_1720"
  3659. ><td id="1720"><a href="#1720">1720</a></td></tr
  3660. ><tr id="gr_svn7768_1721"
  3661. ><td id="1721"><a href="#1721">1721</a></td></tr
  3662. ><tr id="gr_svn7768_1722"
  3663. ><td id="1722"><a href="#1722">1722</a></td></tr
  3664. ><tr id="gr_svn7768_1723"
  3665. ><td id="1723"><a href="#1723">1723</a></td></tr
  3666. ><tr id="gr_svn7768_1724"
  3667. ><td id="1724"><a href="#1724">1724</a></td></tr
  3668. ><tr id="gr_svn7768_1725"
  3669. ><td id="1725"><a href="#1725">1725</a></td></tr
  3670. ><tr id="gr_svn7768_1726"
  3671. ><td id="1726"><a href="#1726">1726</a></td></tr
  3672. ><tr id="gr_svn7768_1727"
  3673. ><td id="1727"><a href="#1727">1727</a></td></tr
  3674. ><tr id="gr_svn7768_1728"
  3675. ><td id="1728"><a href="#1728">1728</a></td></tr
  3676. ><tr id="gr_svn7768_1729"
  3677. ><td id="1729"><a href="#1729">1729</a></td></tr
  3678. ><tr id="gr_svn7768_1730"
  3679. ><td id="1730"><a href="#1730">1730</a></td></tr
  3680. ><tr id="gr_svn7768_1731"
  3681. ><td id="1731"><a href="#1731">1731</a></td></tr
  3682. ><tr id="gr_svn7768_1732"
  3683. ><td id="1732"><a href="#1732">1732</a></td></tr
  3684. ><tr id="gr_svn7768_1733"
  3685. ><td id="1733"><a href="#1733">1733</a></td></tr
  3686. ><tr id="gr_svn7768_1734"
  3687. ><td id="1734"><a href="#1734">1734</a></td></tr
  3688. ><tr id="gr_svn7768_1735"
  3689. ><td id="1735"><a href="#1735">1735</a></td></tr
  3690. ><tr id="gr_svn7768_1736"
  3691. ><td id="1736"><a href="#1736">1736</a></td></tr
  3692. ><tr id="gr_svn7768_1737"
  3693. ><td id="1737"><a href="#1737">1737</a></td></tr
  3694. ><tr id="gr_svn7768_1738"
  3695. ><td id="1738"><a href="#1738">1738</a></td></tr
  3696. ><tr id="gr_svn7768_1739"
  3697. ><td id="1739"><a href="#1739">1739</a></td></tr
  3698. ><tr id="gr_svn7768_1740"
  3699. ><td id="1740"><a href="#1740">1740</a></td></tr
  3700. ><tr id="gr_svn7768_1741"
  3701. ><td id="1741"><a href="#1741">1741</a></td></tr
  3702. ><tr id="gr_svn7768_1742"
  3703. ><td id="1742"><a href="#1742">1742</a></td></tr
  3704. ><tr id="gr_svn7768_1743"
  3705. ><td id="1743"><a href="#1743">1743</a></td></tr
  3706. ><tr id="gr_svn7768_1744"
  3707. ><td id="1744"><a href="#1744">1744</a></td></tr
  3708. ><tr id="gr_svn7768_1745"
  3709. ><td id="1745"><a href="#1745">1745</a></td></tr
  3710. ><tr id="gr_svn7768_1746"
  3711. ><td id="1746"><a href="#1746">1746</a></td></tr
  3712. ><tr id="gr_svn7768_1747"
  3713. ><td id="1747"><a href="#1747">1747</a></td></tr
  3714. ><tr id="gr_svn7768_1748"
  3715. ><td id="1748"><a href="#1748">1748</a></td></tr
  3716. ><tr id="gr_svn7768_1749"
  3717. ><td id="1749"><a href="#1749">1749</a></td></tr
  3718. ><tr id="gr_svn7768_1750"
  3719. ><td id="1750"><a href="#1750">1750</a></td></tr
  3720. ><tr id="gr_svn7768_1751"
  3721. ><td id="1751"><a href="#1751">1751</a></td></tr
  3722. ><tr id="gr_svn7768_1752"
  3723. ><td id="1752"><a href="#1752">1752</a></td></tr
  3724. ><tr id="gr_svn7768_1753"
  3725. ><td id="1753"><a href="#1753">1753</a></td></tr
  3726. ><tr id="gr_svn7768_1754"
  3727. ><td id="1754"><a href="#1754">1754</a></td></tr
  3728. ><tr id="gr_svn7768_1755"
  3729. ><td id="1755"><a href="#1755">1755</a></td></tr
  3730. ><tr id="gr_svn7768_1756"
  3731. ><td id="1756"><a href="#1756">1756</a></td></tr
  3732. ><tr id="gr_svn7768_1757"
  3733. ><td id="1757"><a href="#1757">1757</a></td></tr
  3734. ><tr id="gr_svn7768_1758"
  3735. ><td id="1758"><a href="#1758">1758</a></td></tr
  3736. ><tr id="gr_svn7768_1759"
  3737. ><td id="1759"><a href="#1759">1759</a></td></tr
  3738. ><tr id="gr_svn7768_1760"
  3739. ><td id="1760"><a href="#1760">1760</a></td></tr
  3740. ><tr id="gr_svn7768_1761"
  3741. ><td id="1761"><a href="#1761">1761</a></td></tr
  3742. ><tr id="gr_svn7768_1762"
  3743. ><td id="1762"><a href="#1762">1762</a></td></tr
  3744. ><tr id="gr_svn7768_1763"
  3745. ><td id="1763"><a href="#1763">1763</a></td></tr
  3746. ><tr id="gr_svn7768_1764"
  3747. ><td id="1764"><a href="#1764">1764</a></td></tr
  3748. ><tr id="gr_svn7768_1765"
  3749. ><td id="1765"><a href="#1765">1765</a></td></tr
  3750. ><tr id="gr_svn7768_1766"
  3751. ><td id="1766"><a href="#1766">1766</a></td></tr
  3752. ><tr id="gr_svn7768_1767"
  3753. ><td id="1767"><a href="#1767">1767</a></td></tr
  3754. ><tr id="gr_svn7768_1768"
  3755. ><td id="1768"><a href="#1768">1768</a></td></tr
  3756. ><tr id="gr_svn7768_1769"
  3757. ><td id="1769"><a href="#1769">1769</a></td></tr
  3758. ><tr id="gr_svn7768_1770"
  3759. ><td id="1770"><a href="#1770">1770</a></td></tr
  3760. ><tr id="gr_svn7768_1771"
  3761. ><td id="1771"><a href="#1771">1771</a></td></tr
  3762. ><tr id="gr_svn7768_1772"
  3763. ><td id="1772"><a href="#1772">1772</a></td></tr
  3764. ><tr id="gr_svn7768_1773"
  3765. ><td id="1773"><a href="#1773">1773</a></td></tr
  3766. ><tr id="gr_svn7768_1774"
  3767. ><td id="1774"><a href="#1774">1774</a></td></tr
  3768. ><tr id="gr_svn7768_1775"
  3769. ><td id="1775"><a href="#1775">1775</a></td></tr
  3770. ><tr id="gr_svn7768_1776"
  3771. ><td id="1776"><a href="#1776">1776</a></td></tr
  3772. ><tr id="gr_svn7768_1777"
  3773. ><td id="1777"><a href="#1777">1777</a></td></tr
  3774. ><tr id="gr_svn7768_1778"
  3775. ><td id="1778"><a href="#1778">1778</a></td></tr
  3776. ><tr id="gr_svn7768_1779"
  3777. ><td id="1779"><a href="#1779">1779</a></td></tr
  3778. ><tr id="gr_svn7768_1780"
  3779. ><td id="1780"><a href="#1780">1780</a></td></tr
  3780. ><tr id="gr_svn7768_1781"
  3781. ><td id="1781"><a href="#1781">1781</a></td></tr
  3782. ><tr id="gr_svn7768_1782"
  3783. ><td id="1782"><a href="#1782">1782</a></td></tr
  3784. ><tr id="gr_svn7768_1783"
  3785. ><td id="1783"><a href="#1783">1783</a></td></tr
  3786. ><tr id="gr_svn7768_1784"
  3787. ><td id="1784"><a href="#1784">1784</a></td></tr
  3788. ><tr id="gr_svn7768_1785"
  3789. ><td id="1785"><a href="#1785">1785</a></td></tr
  3790. ><tr id="gr_svn7768_1786"
  3791. ><td id="1786"><a href="#1786">1786</a></td></tr
  3792. ><tr id="gr_svn7768_1787"
  3793. ><td id="1787"><a href="#1787">1787</a></td></tr
  3794. ><tr id="gr_svn7768_1788"
  3795. ><td id="1788"><a href="#1788">1788</a></td></tr
  3796. ><tr id="gr_svn7768_1789"
  3797. ><td id="1789"><a href="#1789">1789</a></td></tr
  3798. ><tr id="gr_svn7768_1790"
  3799. ><td id="1790"><a href="#1790">1790</a></td></tr
  3800. ><tr id="gr_svn7768_1791"
  3801. ><td id="1791"><a href="#1791">1791</a></td></tr
  3802. ><tr id="gr_svn7768_1792"
  3803. ><td id="1792"><a href="#1792">1792</a></td></tr
  3804. ><tr id="gr_svn7768_1793"
  3805. ><td id="1793"><a href="#1793">1793</a></td></tr
  3806. ><tr id="gr_svn7768_1794"
  3807. ><td id="1794"><a href="#1794">1794</a></td></tr
  3808. ><tr id="gr_svn7768_1795"
  3809. ><td id="1795"><a href="#1795">1795</a></td></tr
  3810. ><tr id="gr_svn7768_1796"
  3811. ><td id="1796"><a href="#1796">1796</a></td></tr
  3812. ><tr id="gr_svn7768_1797"
  3813. ><td id="1797"><a href="#1797">1797</a></td></tr
  3814. ><tr id="gr_svn7768_1798"
  3815. ><td id="1798"><a href="#1798">1798</a></td></tr
  3816. ><tr id="gr_svn7768_1799"
  3817. ><td id="1799"><a href="#1799">1799</a></td></tr
  3818. ><tr id="gr_svn7768_1800"
  3819. ><td id="1800"><a href="#1800">1800</a></td></tr
  3820. ><tr id="gr_svn7768_1801"
  3821. ><td id="1801"><a href="#1801">1801</a></td></tr
  3822. ><tr id="gr_svn7768_1802"
  3823. ><td id="1802"><a href="#1802">1802</a></td></tr
  3824. ><tr id="gr_svn7768_1803"
  3825. ><td id="1803"><a href="#1803">1803</a></td></tr
  3826. ><tr id="gr_svn7768_1804"
  3827. ><td id="1804"><a href="#1804">1804</a></td></tr
  3828. ><tr id="gr_svn7768_1805"
  3829. ><td id="1805"><a href="#1805">1805</a></td></tr
  3830. ><tr id="gr_svn7768_1806"
  3831. ><td id="1806"><a href="#1806">1806</a></td></tr
  3832. ><tr id="gr_svn7768_1807"
  3833. ><td id="1807"><a href="#1807">1807</a></td></tr
  3834. ><tr id="gr_svn7768_1808"
  3835. ><td id="1808"><a href="#1808">1808</a></td></tr
  3836. ><tr id="gr_svn7768_1809"
  3837. ><td id="1809"><a href="#1809">1809</a></td></tr
  3838. ><tr id="gr_svn7768_1810"
  3839. ><td id="1810"><a href="#1810">1810</a></td></tr
  3840. ><tr id="gr_svn7768_1811"
  3841. ><td id="1811"><a href="#1811">1811</a></td></tr
  3842. ><tr id="gr_svn7768_1812"
  3843. ><td id="1812"><a href="#1812">1812</a></td></tr
  3844. ><tr id="gr_svn7768_1813"
  3845. ><td id="1813"><a href="#1813">1813</a></td></tr
  3846. ><tr id="gr_svn7768_1814"
  3847. ><td id="1814"><a href="#1814">1814</a></td></tr
  3848. ><tr id="gr_svn7768_1815"
  3849. ><td id="1815"><a href="#1815">1815</a></td></tr
  3850. ><tr id="gr_svn7768_1816"
  3851. ><td id="1816"><a href="#1816">1816</a></td></tr
  3852. ><tr id="gr_svn7768_1817"
  3853. ><td id="1817"><a href="#1817">1817</a></td></tr
  3854. ><tr id="gr_svn7768_1818"
  3855. ><td id="1818"><a href="#1818">1818</a></td></tr
  3856. ><tr id="gr_svn7768_1819"
  3857. ><td id="1819"><a href="#1819">1819</a></td></tr
  3858. ><tr id="gr_svn7768_1820"
  3859. ><td id="1820"><a href="#1820">1820</a></td></tr
  3860. ><tr id="gr_svn7768_1821"
  3861. ><td id="1821"><a href="#1821">1821</a></td></tr
  3862. ><tr id="gr_svn7768_1822"
  3863. ><td id="1822"><a href="#1822">1822</a></td></tr
  3864. ><tr id="gr_svn7768_1823"
  3865. ><td id="1823"><a href="#1823">1823</a></td></tr
  3866. ><tr id="gr_svn7768_1824"
  3867. ><td id="1824"><a href="#1824">1824</a></td></tr
  3868. ><tr id="gr_svn7768_1825"
  3869. ><td id="1825"><a href="#1825">1825</a></td></tr
  3870. ><tr id="gr_svn7768_1826"
  3871. ><td id="1826"><a href="#1826">1826</a></td></tr
  3872. ><tr id="gr_svn7768_1827"
  3873. ><td id="1827"><a href="#1827">1827</a></td></tr
  3874. ><tr id="gr_svn7768_1828"
  3875. ><td id="1828"><a href="#1828">1828</a></td></tr
  3876. ><tr id="gr_svn7768_1829"
  3877. ><td id="1829"><a href="#1829">1829</a></td></tr
  3878. ><tr id="gr_svn7768_1830"
  3879. ><td id="1830"><a href="#1830">1830</a></td></tr
  3880. ><tr id="gr_svn7768_1831"
  3881. ><td id="1831"><a href="#1831">1831</a></td></tr
  3882. ><tr id="gr_svn7768_1832"
  3883. ><td id="1832"><a href="#1832">1832</a></td></tr
  3884. ><tr id="gr_svn7768_1833"
  3885. ><td id="1833"><a href="#1833">1833</a></td></tr
  3886. ><tr id="gr_svn7768_1834"
  3887. ><td id="1834"><a href="#1834">1834</a></td></tr
  3888. ><tr id="gr_svn7768_1835"
  3889. ><td id="1835"><a href="#1835">1835</a></td></tr
  3890. ><tr id="gr_svn7768_1836"
  3891. ><td id="1836"><a href="#1836">1836</a></td></tr
  3892. ><tr id="gr_svn7768_1837"
  3893. ><td id="1837"><a href="#1837">1837</a></td></tr
  3894. ><tr id="gr_svn7768_1838"
  3895. ><td id="1838"><a href="#1838">1838</a></td></tr
  3896. ><tr id="gr_svn7768_1839"
  3897. ><td id="1839"><a href="#1839">1839</a></td></tr
  3898. ><tr id="gr_svn7768_1840"
  3899. ><td id="1840"><a href="#1840">1840</a></td></tr
  3900. ><tr id="gr_svn7768_1841"
  3901. ><td id="1841"><a href="#1841">1841</a></td></tr
  3902. ><tr id="gr_svn7768_1842"
  3903. ><td id="1842"><a href="#1842">1842</a></td></tr
  3904. ><tr id="gr_svn7768_1843"
  3905. ><td id="1843"><a href="#1843">1843</a></td></tr
  3906. ><tr id="gr_svn7768_1844"
  3907. ><td id="1844"><a href="#1844">1844</a></td></tr
  3908. ><tr id="gr_svn7768_1845"
  3909. ><td id="1845"><a href="#1845">1845</a></td></tr
  3910. ><tr id="gr_svn7768_1846"
  3911. ><td id="1846"><a href="#1846">1846</a></td></tr
  3912. ><tr id="gr_svn7768_1847"
  3913. ><td id="1847"><a href="#1847">1847</a></td></tr
  3914. ><tr id="gr_svn7768_1848"
  3915. ><td id="1848"><a href="#1848">1848</a></td></tr
  3916. ><tr id="gr_svn7768_1849"
  3917. ><td id="1849"><a href="#1849">1849</a></td></tr
  3918. ><tr id="gr_svn7768_1850"
  3919. ><td id="1850"><a href="#1850">1850</a></td></tr
  3920. ><tr id="gr_svn7768_1851"
  3921. ><td id="1851"><a href="#1851">1851</a></td></tr
  3922. ><tr id="gr_svn7768_1852"
  3923. ><td id="1852"><a href="#1852">1852</a></td></tr
  3924. ><tr id="gr_svn7768_1853"
  3925. ><td id="1853"><a href="#1853">1853</a></td></tr
  3926. ><tr id="gr_svn7768_1854"
  3927. ><td id="1854"><a href="#1854">1854</a></td></tr
  3928. ><tr id="gr_svn7768_1855"
  3929. ><td id="1855"><a href="#1855">1855</a></td></tr
  3930. ><tr id="gr_svn7768_1856"
  3931. ><td id="1856"><a href="#1856">1856</a></td></tr
  3932. ><tr id="gr_svn7768_1857"
  3933. ><td id="1857"><a href="#1857">1857</a></td></tr
  3934. ><tr id="gr_svn7768_1858"
  3935. ><td id="1858"><a href="#1858">1858</a></td></tr
  3936. ><tr id="gr_svn7768_1859"
  3937. ><td id="1859"><a href="#1859">1859</a></td></tr
  3938. ><tr id="gr_svn7768_1860"
  3939. ><td id="1860"><a href="#1860">1860</a></td></tr
  3940. ><tr id="gr_svn7768_1861"
  3941. ><td id="1861"><a href="#1861">1861</a></td></tr
  3942. ><tr id="gr_svn7768_1862"
  3943. ><td id="1862"><a href="#1862">1862</a></td></tr
  3944. ><tr id="gr_svn7768_1863"
  3945. ><td id="1863"><a href="#1863">1863</a></td></tr
  3946. ><tr id="gr_svn7768_1864"
  3947. ><td id="1864"><a href="#1864">1864</a></td></tr
  3948. ><tr id="gr_svn7768_1865"
  3949. ><td id="1865"><a href="#1865">1865</a></td></tr
  3950. ><tr id="gr_svn7768_1866"
  3951. ><td id="1866"><a href="#1866">1866</a></td></tr
  3952. ><tr id="gr_svn7768_1867"
  3953. ><td id="1867"><a href="#1867">1867</a></td></tr
  3954. ><tr id="gr_svn7768_1868"
  3955. ><td id="1868"><a href="#1868">1868</a></td></tr
  3956. ><tr id="gr_svn7768_1869"
  3957. ><td id="1869"><a href="#1869">1869</a></td></tr
  3958. ><tr id="gr_svn7768_1870"
  3959. ><td id="1870"><a href="#1870">1870</a></td></tr
  3960. ><tr id="gr_svn7768_1871"
  3961. ><td id="1871"><a href="#1871">1871</a></td></tr
  3962. ><tr id="gr_svn7768_1872"
  3963. ><td id="1872"><a href="#1872">1872</a></td></tr
  3964. ><tr id="gr_svn7768_1873"
  3965. ><td id="1873"><a href="#1873">1873</a></td></tr
  3966. ><tr id="gr_svn7768_1874"
  3967. ><td id="1874"><a href="#1874">1874</a></td></tr
  3968. ><tr id="gr_svn7768_1875"
  3969. ><td id="1875"><a href="#1875">1875</a></td></tr
  3970. ><tr id="gr_svn7768_1876"
  3971. ><td id="1876"><a href="#1876">1876</a></td></tr
  3972. ><tr id="gr_svn7768_1877"
  3973. ><td id="1877"><a href="#1877">1877</a></td></tr
  3974. ><tr id="gr_svn7768_1878"
  3975. ><td id="1878"><a href="#1878">1878</a></td></tr
  3976. ><tr id="gr_svn7768_1879"
  3977. ><td id="1879"><a href="#1879">1879</a></td></tr
  3978. ><tr id="gr_svn7768_1880"
  3979. ><td id="1880"><a href="#1880">1880</a></td></tr
  3980. ><tr id="gr_svn7768_1881"
  3981. ><td id="1881"><a href="#1881">1881</a></td></tr
  3982. ><tr id="gr_svn7768_1882"
  3983. ><td id="1882"><a href="#1882">1882</a></td></tr
  3984. ><tr id="gr_svn7768_1883"
  3985. ><td id="1883"><a href="#1883">1883</a></td></tr
  3986. ><tr id="gr_svn7768_1884"
  3987. ><td id="1884"><a href="#1884">1884</a></td></tr
  3988. ><tr id="gr_svn7768_1885"
  3989. ><td id="1885"><a href="#1885">1885</a></td></tr
  3990. ><tr id="gr_svn7768_1886"
  3991. ><td id="1886"><a href="#1886">1886</a></td></tr
  3992. ><tr id="gr_svn7768_1887"
  3993. ><td id="1887"><a href="#1887">1887</a></td></tr
  3994. ><tr id="gr_svn7768_1888"
  3995. ><td id="1888"><a href="#1888">1888</a></td></tr
  3996. ><tr id="gr_svn7768_1889"
  3997. ><td id="1889"><a href="#1889">1889</a></td></tr
  3998. ><tr id="gr_svn7768_1890"
  3999. ><td id="1890"><a href="#1890">1890</a></td></tr
  4000. ><tr id="gr_svn7768_1891"
  4001. ><td id="1891"><a href="#1891">1891</a></td></tr
  4002. ><tr id="gr_svn7768_1892"
  4003. ><td id="1892"><a href="#1892">1892</a></td></tr
  4004. ><tr id="gr_svn7768_1893"
  4005. ><td id="1893"><a href="#1893">1893</a></td></tr
  4006. ><tr id="gr_svn7768_1894"
  4007. ><td id="1894"><a href="#1894">1894</a></td></tr
  4008. ><tr id="gr_svn7768_1895"
  4009. ><td id="1895"><a href="#1895">1895</a></td></tr
  4010. ><tr id="gr_svn7768_1896"
  4011. ><td id="1896"><a href="#1896">1896</a></td></tr
  4012. ><tr id="gr_svn7768_1897"
  4013. ><td id="1897"><a href="#1897">1897</a></td></tr
  4014. ><tr id="gr_svn7768_1898"
  4015. ><td id="1898"><a href="#1898">1898</a></td></tr
  4016. ><tr id="gr_svn7768_1899"
  4017. ><td id="1899"><a href="#1899">1899</a></td></tr
  4018. ><tr id="gr_svn7768_1900"
  4019. ><td id="1900"><a href="#1900">1900</a></td></tr
  4020. ><tr id="gr_svn7768_1901"
  4021. ><td id="1901"><a href="#1901">1901</a></td></tr
  4022. ><tr id="gr_svn7768_1902"
  4023. ><td id="1902"><a href="#1902">1902</a></td></tr
  4024. ><tr id="gr_svn7768_1903"
  4025. ><td id="1903"><a href="#1903">1903</a></td></tr
  4026. ><tr id="gr_svn7768_1904"
  4027. ><td id="1904"><a href="#1904">1904</a></td></tr
  4028. ><tr id="gr_svn7768_1905"
  4029. ><td id="1905"><a href="#1905">1905</a></td></tr
  4030. ><tr id="gr_svn7768_1906"
  4031. ><td id="1906"><a href="#1906">1906</a></td></tr
  4032. ><tr id="gr_svn7768_1907"
  4033. ><td id="1907"><a href="#1907">1907</a></td></tr
  4034. ><tr id="gr_svn7768_1908"
  4035. ><td id="1908"><a href="#1908">1908</a></td></tr
  4036. ><tr id="gr_svn7768_1909"
  4037. ><td id="1909"><a href="#1909">1909</a></td></tr
  4038. ><tr id="gr_svn7768_1910"
  4039. ><td id="1910"><a href="#1910">1910</a></td></tr
  4040. ><tr id="gr_svn7768_1911"
  4041. ><td id="1911"><a href="#1911">1911</a></td></tr
  4042. ><tr id="gr_svn7768_1912"
  4043. ><td id="1912"><a href="#1912">1912</a></td></tr
  4044. ><tr id="gr_svn7768_1913"
  4045. ><td id="1913"><a href="#1913">1913</a></td></tr
  4046. ><tr id="gr_svn7768_1914"
  4047. ><td id="1914"><a href="#1914">1914</a></td></tr
  4048. ><tr id="gr_svn7768_1915"
  4049. ><td id="1915"><a href="#1915">1915</a></td></tr
  4050. ><tr id="gr_svn7768_1916"
  4051. ><td id="1916"><a href="#1916">1916</a></td></tr
  4052. ><tr id="gr_svn7768_1917"
  4053. ><td id="1917"><a href="#1917">1917</a></td></tr
  4054. ><tr id="gr_svn7768_1918"
  4055. ><td id="1918"><a href="#1918">1918</a></td></tr
  4056. ><tr id="gr_svn7768_1919"
  4057. ><td id="1919"><a href="#1919">1919</a></td></tr
  4058. ><tr id="gr_svn7768_1920"
  4059. ><td id="1920"><a href="#1920">1920</a></td></tr
  4060. ><tr id="gr_svn7768_1921"
  4061. ><td id="1921"><a href="#1921">1921</a></td></tr
  4062. ><tr id="gr_svn7768_1922"
  4063. ><td id="1922"><a href="#1922">1922</a></td></tr
  4064. ><tr id="gr_svn7768_1923"
  4065. ><td id="1923"><a href="#1923">1923</a></td></tr
  4066. ><tr id="gr_svn7768_1924"
  4067. ><td id="1924"><a href="#1924">1924</a></td></tr
  4068. ><tr id="gr_svn7768_1925"
  4069. ><td id="1925"><a href="#1925">1925</a></td></tr
  4070. ><tr id="gr_svn7768_1926"
  4071. ><td id="1926"><a href="#1926">1926</a></td></tr
  4072. ><tr id="gr_svn7768_1927"
  4073. ><td id="1927"><a href="#1927">1927</a></td></tr
  4074. ><tr id="gr_svn7768_1928"
  4075. ><td id="1928"><a href="#1928">1928</a></td></tr
  4076. ><tr id="gr_svn7768_1929"
  4077. ><td id="1929"><a href="#1929">1929</a></td></tr
  4078. ><tr id="gr_svn7768_1930"
  4079. ><td id="1930"><a href="#1930">1930</a></td></tr
  4080. ><tr id="gr_svn7768_1931"
  4081. ><td id="1931"><a href="#1931">1931</a></td></tr
  4082. ><tr id="gr_svn7768_1932"
  4083. ><td id="1932"><a href="#1932">1932</a></td></tr
  4084. ><tr id="gr_svn7768_1933"
  4085. ><td id="1933"><a href="#1933">1933</a></td></tr
  4086. ><tr id="gr_svn7768_1934"
  4087. ><td id="1934"><a href="#1934">1934</a></td></tr
  4088. ><tr id="gr_svn7768_1935"
  4089. ><td id="1935"><a href="#1935">1935</a></td></tr
  4090. ><tr id="gr_svn7768_1936"
  4091. ><td id="1936"><a href="#1936">1936</a></td></tr
  4092. ><tr id="gr_svn7768_1937"
  4093. ><td id="1937"><a href="#1937">1937</a></td></tr
  4094. ><tr id="gr_svn7768_1938"
  4095. ><td id="1938"><a href="#1938">1938</a></td></tr
  4096. ><tr id="gr_svn7768_1939"
  4097. ><td id="1939"><a href="#1939">1939</a></td></tr
  4098. ><tr id="gr_svn7768_1940"
  4099. ><td id="1940"><a href="#1940">1940</a></td></tr
  4100. ><tr id="gr_svn7768_1941"
  4101. ><td id="1941"><a href="#1941">1941</a></td></tr
  4102. ><tr id="gr_svn7768_1942"
  4103. ><td id="1942"><a href="#1942">1942</a></td></tr
  4104. ><tr id="gr_svn7768_1943"
  4105. ><td id="1943"><a href="#1943">1943</a></td></tr
  4106. ><tr id="gr_svn7768_1944"
  4107. ><td id="1944"><a href="#1944">1944</a></td></tr
  4108. ><tr id="gr_svn7768_1945"
  4109. ><td id="1945"><a href="#1945">1945</a></td></tr
  4110. ><tr id="gr_svn7768_1946"
  4111. ><td id="1946"><a href="#1946">1946</a></td></tr
  4112. ><tr id="gr_svn7768_1947"
  4113. ><td id="1947"><a href="#1947">1947</a></td></tr
  4114. ><tr id="gr_svn7768_1948"
  4115. ><td id="1948"><a href="#1948">1948</a></td></tr
  4116. ><tr id="gr_svn7768_1949"
  4117. ><td id="1949"><a href="#1949">1949</a></td></tr
  4118. ><tr id="gr_svn7768_1950"
  4119. ><td id="1950"><a href="#1950">1950</a></td></tr
  4120. ><tr id="gr_svn7768_1951"
  4121. ><td id="1951"><a href="#1951">1951</a></td></tr
  4122. ><tr id="gr_svn7768_1952"
  4123. ><td id="1952"><a href="#1952">1952</a></td></tr
  4124. ><tr id="gr_svn7768_1953"
  4125. ><td id="1953"><a href="#1953">1953</a></td></tr
  4126. ><tr id="gr_svn7768_1954"
  4127. ><td id="1954"><a href="#1954">1954</a></td></tr
  4128. ><tr id="gr_svn7768_1955"
  4129. ><td id="1955"><a href="#1955">1955</a></td></tr
  4130. ><tr id="gr_svn7768_1956"
  4131. ><td id="1956"><a href="#1956">1956</a></td></tr
  4132. ><tr id="gr_svn7768_1957"
  4133. ><td id="1957"><a href="#1957">1957</a></td></tr
  4134. ><tr id="gr_svn7768_1958"
  4135. ><td id="1958"><a href="#1958">1958</a></td></tr
  4136. ><tr id="gr_svn7768_1959"
  4137. ><td id="1959"><a href="#1959">1959</a></td></tr
  4138. ><tr id="gr_svn7768_1960"
  4139. ><td id="1960"><a href="#1960">1960</a></td></tr
  4140. ><tr id="gr_svn7768_1961"
  4141. ><td id="1961"><a href="#1961">1961</a></td></tr
  4142. ><tr id="gr_svn7768_1962"
  4143. ><td id="1962"><a href="#1962">1962</a></td></tr
  4144. ><tr id="gr_svn7768_1963"
  4145. ><td id="1963"><a href="#1963">1963</a></td></tr
  4146. ><tr id="gr_svn7768_1964"
  4147. ><td id="1964"><a href="#1964">1964</a></td></tr
  4148. ><tr id="gr_svn7768_1965"
  4149. ><td id="1965"><a href="#1965">1965</a></td></tr
  4150. ><tr id="gr_svn7768_1966"
  4151. ><td id="1966"><a href="#1966">1966</a></td></tr
  4152. ><tr id="gr_svn7768_1967"
  4153. ><td id="1967"><a href="#1967">1967</a></td></tr
  4154. ><tr id="gr_svn7768_1968"
  4155. ><td id="1968"><a href="#1968">1968</a></td></tr
  4156. ><tr id="gr_svn7768_1969"
  4157. ><td id="1969"><a href="#1969">1969</a></td></tr
  4158. ><tr id="gr_svn7768_1970"
  4159. ><td id="1970"><a href="#1970">1970</a></td></tr
  4160. ><tr id="gr_svn7768_1971"
  4161. ><td id="1971"><a href="#1971">1971</a></td></tr
  4162. ><tr id="gr_svn7768_1972"
  4163. ><td id="1972"><a href="#1972">1972</a></td></tr
  4164. ><tr id="gr_svn7768_1973"
  4165. ><td id="1973"><a href="#1973">1973</a></td></tr
  4166. ><tr id="gr_svn7768_1974"
  4167. ><td id="1974"><a href="#1974">1974</a></td></tr
  4168. ><tr id="gr_svn7768_1975"
  4169. ><td id="1975"><a href="#1975">1975</a></td></tr
  4170. ><tr id="gr_svn7768_1976"
  4171. ><td id="1976"><a href="#1976">1976</a></td></tr
  4172. ><tr id="gr_svn7768_1977"
  4173. ><td id="1977"><a href="#1977">1977</a></td></tr
  4174. ><tr id="gr_svn7768_1978"
  4175. ><td id="1978"><a href="#1978">1978</a></td></tr
  4176. ><tr id="gr_svn7768_1979"
  4177. ><td id="1979"><a href="#1979">1979</a></td></tr
  4178. ><tr id="gr_svn7768_1980"
  4179. ><td id="1980"><a href="#1980">1980</a></td></tr
  4180. ><tr id="gr_svn7768_1981"
  4181. ><td id="1981"><a href="#1981">1981</a></td></tr
  4182. ><tr id="gr_svn7768_1982"
  4183. ><td id="1982"><a href="#1982">1982</a></td></tr
  4184. ><tr id="gr_svn7768_1983"
  4185. ><td id="1983"><a href="#1983">1983</a></td></tr
  4186. ><tr id="gr_svn7768_1984"
  4187. ><td id="1984"><a href="#1984">1984</a></td></tr
  4188. ><tr id="gr_svn7768_1985"
  4189. ><td id="1985"><a href="#1985">1985</a></td></tr
  4190. ><tr id="gr_svn7768_1986"
  4191. ><td id="1986"><a href="#1986">1986</a></td></tr
  4192. ><tr id="gr_svn7768_1987"
  4193. ><td id="1987"><a href="#1987">1987</a></td></tr
  4194. ><tr id="gr_svn7768_1988"
  4195. ><td id="1988"><a href="#1988">1988</a></td></tr
  4196. ><tr id="gr_svn7768_1989"
  4197. ><td id="1989"><a href="#1989">1989</a></td></tr
  4198. ><tr id="gr_svn7768_1990"
  4199. ><td id="1990"><a href="#1990">1990</a></td></tr
  4200. ><tr id="gr_svn7768_1991"
  4201. ><td id="1991"><a href="#1991">1991</a></td></tr
  4202. ><tr id="gr_svn7768_1992"
  4203. ><td id="1992"><a href="#1992">1992</a></td></tr
  4204. ><tr id="gr_svn7768_1993"
  4205. ><td id="1993"><a href="#1993">1993</a></td></tr
  4206. ><tr id="gr_svn7768_1994"
  4207. ><td id="1994"><a href="#1994">1994</a></td></tr
  4208. ><tr id="gr_svn7768_1995"
  4209. ><td id="1995"><a href="#1995">1995</a></td></tr
  4210. ><tr id="gr_svn7768_1996"
  4211. ><td id="1996"><a href="#1996">1996</a></td></tr
  4212. ><tr id="gr_svn7768_1997"
  4213. ><td id="1997"><a href="#1997">1997</a></td></tr
  4214. ><tr id="gr_svn7768_1998"
  4215. ><td id="1998"><a href="#1998">1998</a></td></tr
  4216. ><tr id="gr_svn7768_1999"
  4217. ><td id="1999"><a href="#1999">1999</a></td></tr
  4218. ><tr id="gr_svn7768_2000"
  4219. ><td id="2000"><a href="#2000">2000</a></td></tr
  4220. ><tr id="gr_svn7768_2001"
  4221. ><td id="2001"><a href="#2001">2001</a></td></tr
  4222. ><tr id="gr_svn7768_2002"
  4223. ><td id="2002"><a href="#2002">2002</a></td></tr
  4224. ><tr id="gr_svn7768_2003"
  4225. ><td id="2003"><a href="#2003">2003</a></td></tr
  4226. ><tr id="gr_svn7768_2004"
  4227. ><td id="2004"><a href="#2004">2004</a></td></tr
  4228. ><tr id="gr_svn7768_2005"
  4229. ><td id="2005"><a href="#2005">2005</a></td></tr
  4230. ><tr id="gr_svn7768_2006"
  4231. ><td id="2006"><a href="#2006">2006</a></td></tr
  4232. ><tr id="gr_svn7768_2007"
  4233. ><td id="2007"><a href="#2007">2007</a></td></tr
  4234. ><tr id="gr_svn7768_2008"
  4235. ><td id="2008"><a href="#2008">2008</a></td></tr
  4236. ><tr id="gr_svn7768_2009"
  4237. ><td id="2009"><a href="#2009">2009</a></td></tr
  4238. ><tr id="gr_svn7768_2010"
  4239. ><td id="2010"><a href="#2010">2010</a></td></tr
  4240. ><tr id="gr_svn7768_2011"
  4241. ><td id="2011"><a href="#2011">2011</a></td></tr
  4242. ><tr id="gr_svn7768_2012"
  4243. ><td id="2012"><a href="#2012">2012</a></td></tr
  4244. ><tr id="gr_svn7768_2013"
  4245. ><td id="2013"><a href="#2013">2013</a></td></tr
  4246. ><tr id="gr_svn7768_2014"
  4247. ><td id="2014"><a href="#2014">2014</a></td></tr
  4248. ><tr id="gr_svn7768_2015"
  4249. ><td id="2015"><a href="#2015">2015</a></td></tr
  4250. ><tr id="gr_svn7768_2016"
  4251. ><td id="2016"><a href="#2016">2016</a></td></tr
  4252. ><tr id="gr_svn7768_2017"
  4253. ><td id="2017"><a href="#2017">2017</a></td></tr
  4254. ><tr id="gr_svn7768_2018"
  4255. ><td id="2018"><a href="#2018">2018</a></td></tr
  4256. ><tr id="gr_svn7768_2019"
  4257. ><td id="2019"><a href="#2019">2019</a></td></tr
  4258. ><tr id="gr_svn7768_2020"
  4259. ><td id="2020"><a href="#2020">2020</a></td></tr
  4260. ><tr id="gr_svn7768_2021"
  4261. ><td id="2021"><a href="#2021">2021</a></td></tr
  4262. ><tr id="gr_svn7768_2022"
  4263. ><td id="2022"><a href="#2022">2022</a></td></tr
  4264. ><tr id="gr_svn7768_2023"
  4265. ><td id="2023"><a href="#2023">2023</a></td></tr
  4266. ><tr id="gr_svn7768_2024"
  4267. ><td id="2024"><a href="#2024">2024</a></td></tr
  4268. ><tr id="gr_svn7768_2025"
  4269. ><td id="2025"><a href="#2025">2025</a></td></tr
  4270. ><tr id="gr_svn7768_2026"
  4271. ><td id="2026"><a href="#2026">2026</a></td></tr
  4272. ><tr id="gr_svn7768_2027"
  4273. ><td id="2027"><a href="#2027">2027</a></td></tr
  4274. ><tr id="gr_svn7768_2028"
  4275. ><td id="2028"><a href="#2028">2028</a></td></tr
  4276. ><tr id="gr_svn7768_2029"
  4277. ><td id="2029"><a href="#2029">2029</a></td></tr
  4278. ><tr id="gr_svn7768_2030"
  4279. ><td id="2030"><a href="#2030">2030</a></td></tr
  4280. ><tr id="gr_svn7768_2031"
  4281. ><td id="2031"><a href="#2031">2031</a></td></tr
  4282. ><tr id="gr_svn7768_2032"
  4283. ><td id="2032"><a href="#2032">2032</a></td></tr
  4284. ><tr id="gr_svn7768_2033"
  4285. ><td id="2033"><a href="#2033">2033</a></td></tr
  4286. ><tr id="gr_svn7768_2034"
  4287. ><td id="2034"><a href="#2034">2034</a></td></tr
  4288. ><tr id="gr_svn7768_2035"
  4289. ><td id="2035"><a href="#2035">2035</a></td></tr
  4290. ><tr id="gr_svn7768_2036"
  4291. ><td id="2036"><a href="#2036">2036</a></td></tr
  4292. ><tr id="gr_svn7768_2037"
  4293. ><td id="2037"><a href="#2037">2037</a></td></tr
  4294. ><tr id="gr_svn7768_2038"
  4295. ><td id="2038"><a href="#2038">2038</a></td></tr
  4296. ><tr id="gr_svn7768_2039"
  4297. ><td id="2039"><a href="#2039">2039</a></td></tr
  4298. ><tr id="gr_svn7768_2040"
  4299. ><td id="2040"><a href="#2040">2040</a></td></tr
  4300. ><tr id="gr_svn7768_2041"
  4301. ><td id="2041"><a href="#2041">2041</a></td></tr
  4302. ><tr id="gr_svn7768_2042"
  4303. ><td id="2042"><a href="#2042">2042</a></td></tr
  4304. ><tr id="gr_svn7768_2043"
  4305. ><td id="2043"><a href="#2043">2043</a></td></tr
  4306. ><tr id="gr_svn7768_2044"
  4307. ><td id="2044"><a href="#2044">2044</a></td></tr
  4308. ><tr id="gr_svn7768_2045"
  4309. ><td id="2045"><a href="#2045">2045</a></td></tr
  4310. ><tr id="gr_svn7768_2046"
  4311. ><td id="2046"><a href="#2046">2046</a></td></tr
  4312. ><tr id="gr_svn7768_2047"
  4313. ><td id="2047"><a href="#2047">2047</a></td></tr
  4314. ><tr id="gr_svn7768_2048"
  4315. ><td id="2048"><a href="#2048">2048</a></td></tr
  4316. ><tr id="gr_svn7768_2049"
  4317. ><td id="2049"><a href="#2049">2049</a></td></tr
  4318. ><tr id="gr_svn7768_2050"
  4319. ><td id="2050"><a href="#2050">2050</a></td></tr
  4320. ><tr id="gr_svn7768_2051"
  4321. ><td id="2051"><a href="#2051">2051</a></td></tr
  4322. ><tr id="gr_svn7768_2052"
  4323. ><td id="2052"><a href="#2052">2052</a></td></tr
  4324. ><tr id="gr_svn7768_2053"
  4325. ><td id="2053"><a href="#2053">2053</a></td></tr
  4326. ><tr id="gr_svn7768_2054"
  4327. ><td id="2054"><a href="#2054">2054</a></td></tr
  4328. ><tr id="gr_svn7768_2055"
  4329. ><td id="2055"><a href="#2055">2055</a></td></tr
  4330. ><tr id="gr_svn7768_2056"
  4331. ><td id="2056"><a href="#2056">2056</a></td></tr
  4332. ><tr id="gr_svn7768_2057"
  4333. ><td id="2057"><a href="#2057">2057</a></td></tr
  4334. ><tr id="gr_svn7768_2058"
  4335. ><td id="2058"><a href="#2058">2058</a></td></tr
  4336. ><tr id="gr_svn7768_2059"
  4337. ><td id="2059"><a href="#2059">2059</a></td></tr
  4338. ><tr id="gr_svn7768_2060"
  4339. ><td id="2060"><a href="#2060">2060</a></td></tr
  4340. ><tr id="gr_svn7768_2061"
  4341. ><td id="2061"><a href="#2061">2061</a></td></tr
  4342. ><tr id="gr_svn7768_2062"
  4343. ><td id="2062"><a href="#2062">2062</a></td></tr
  4344. ><tr id="gr_svn7768_2063"
  4345. ><td id="2063"><a href="#2063">2063</a></td></tr
  4346. ><tr id="gr_svn7768_2064"
  4347. ><td id="2064"><a href="#2064">2064</a></td></tr
  4348. ><tr id="gr_svn7768_2065"
  4349. ><td id="2065"><a href="#2065">2065</a></td></tr
  4350. ><tr id="gr_svn7768_2066"
  4351. ><td id="2066"><a href="#2066">2066</a></td></tr
  4352. ><tr id="gr_svn7768_2067"
  4353. ><td id="2067"><a href="#2067">2067</a></td></tr
  4354. ><tr id="gr_svn7768_2068"
  4355. ><td id="2068"><a href="#2068">2068</a></td></tr
  4356. ><tr id="gr_svn7768_2069"
  4357. ><td id="2069"><a href="#2069">2069</a></td></tr
  4358. ><tr id="gr_svn7768_2070"
  4359. ><td id="2070"><a href="#2070">2070</a></td></tr
  4360. ><tr id="gr_svn7768_2071"
  4361. ><td id="2071"><a href="#2071">2071</a></td></tr
  4362. ><tr id="gr_svn7768_2072"
  4363. ><td id="2072"><a href="#2072">2072</a></td></tr
  4364. ><tr id="gr_svn7768_2073"
  4365. ><td id="2073"><a href="#2073">2073</a></td></tr
  4366. ><tr id="gr_svn7768_2074"
  4367. ><td id="2074"><a href="#2074">2074</a></td></tr
  4368. ><tr id="gr_svn7768_2075"
  4369. ><td id="2075"><a href="#2075">2075</a></td></tr
  4370. ><tr id="gr_svn7768_2076"
  4371. ><td id="2076"><a href="#2076">2076</a></td></tr
  4372. ><tr id="gr_svn7768_2077"
  4373. ><td id="2077"><a href="#2077">2077</a></td></tr
  4374. ><tr id="gr_svn7768_2078"
  4375. ><td id="2078"><a href="#2078">2078</a></td></tr
  4376. ><tr id="gr_svn7768_2079"
  4377. ><td id="2079"><a href="#2079">2079</a></td></tr
  4378. ><tr id="gr_svn7768_2080"
  4379. ><td id="2080"><a href="#2080">2080</a></td></tr
  4380. ><tr id="gr_svn7768_2081"
  4381. ><td id="2081"><a href="#2081">2081</a></td></tr
  4382. ><tr id="gr_svn7768_2082"
  4383. ><td id="2082"><a href="#2082">2082</a></td></tr
  4384. ><tr id="gr_svn7768_2083"
  4385. ><td id="2083"><a href="#2083">2083</a></td></tr
  4386. ><tr id="gr_svn7768_2084"
  4387. ><td id="2084"><a href="#2084">2084</a></td></tr
  4388. ><tr id="gr_svn7768_2085"
  4389. ><td id="2085"><a href="#2085">2085</a></td></tr
  4390. ><tr id="gr_svn7768_2086"
  4391. ><td id="2086"><a href="#2086">2086</a></td></tr
  4392. ><tr id="gr_svn7768_2087"
  4393. ><td id="2087"><a href="#2087">2087</a></td></tr
  4394. ><tr id="gr_svn7768_2088"
  4395. ><td id="2088"><a href="#2088">2088</a></td></tr
  4396. ><tr id="gr_svn7768_2089"
  4397. ><td id="2089"><a href="#2089">2089</a></td></tr
  4398. ><tr id="gr_svn7768_2090"
  4399. ><td id="2090"><a href="#2090">2090</a></td></tr
  4400. ><tr id="gr_svn7768_2091"
  4401. ><td id="2091"><a href="#2091">2091</a></td></tr
  4402. ><tr id="gr_svn7768_2092"
  4403. ><td id="2092"><a href="#2092">2092</a></td></tr
  4404. ><tr id="gr_svn7768_2093"
  4405. ><td id="2093"><a href="#2093">2093</a></td></tr
  4406. ><tr id="gr_svn7768_2094"
  4407. ><td id="2094"><a href="#2094">2094</a></td></tr
  4408. ><tr id="gr_svn7768_2095"
  4409. ><td id="2095"><a href="#2095">2095</a></td></tr
  4410. ><tr id="gr_svn7768_2096"
  4411. ><td id="2096"><a href="#2096">2096</a></td></tr
  4412. ><tr id="gr_svn7768_2097"
  4413. ><td id="2097"><a href="#2097">2097</a></td></tr
  4414. ><tr id="gr_svn7768_2098"
  4415. ><td id="2098"><a href="#2098">2098</a></td></tr
  4416. ><tr id="gr_svn7768_2099"
  4417. ><td id="2099"><a href="#2099">2099</a></td></tr
  4418. ><tr id="gr_svn7768_2100"
  4419. ><td id="2100"><a href="#2100">2100</a></td></tr
  4420. ><tr id="gr_svn7768_2101"
  4421. ><td id="2101"><a href="#2101">2101</a></td></tr
  4422. ><tr id="gr_svn7768_2102"
  4423. ><td id="2102"><a href="#2102">2102</a></td></tr
  4424. ><tr id="gr_svn7768_2103"
  4425. ><td id="2103"><a href="#2103">2103</a></td></tr
  4426. ><tr id="gr_svn7768_2104"
  4427. ><td id="2104"><a href="#2104">2104</a></td></tr
  4428. ><tr id="gr_svn7768_2105"
  4429. ><td id="2105"><a href="#2105">2105</a></td></tr
  4430. ><tr id="gr_svn7768_2106"
  4431. ><td id="2106"><a href="#2106">2106</a></td></tr
  4432. ><tr id="gr_svn7768_2107"
  4433. ><td id="2107"><a href="#2107">2107</a></td></tr
  4434. ><tr id="gr_svn7768_2108"
  4435. ><td id="2108"><a href="#2108">2108</a></td></tr
  4436. ><tr id="gr_svn7768_2109"
  4437. ><td id="2109"><a href="#2109">2109</a></td></tr
  4438. ><tr id="gr_svn7768_2110"
  4439. ><td id="2110"><a href="#2110">2110</a></td></tr
  4440. ><tr id="gr_svn7768_2111"
  4441. ><td id="2111"><a href="#2111">2111</a></td></tr
  4442. ><tr id="gr_svn7768_2112"
  4443. ><td id="2112"><a href="#2112">2112</a></td></tr
  4444. ><tr id="gr_svn7768_2113"
  4445. ><td id="2113"><a href="#2113">2113</a></td></tr
  4446. ><tr id="gr_svn7768_2114"
  4447. ><td id="2114"><a href="#2114">2114</a></td></tr
  4448. ><tr id="gr_svn7768_2115"
  4449. ><td id="2115"><a href="#2115">2115</a></td></tr
  4450. ><tr id="gr_svn7768_2116"
  4451. ><td id="2116"><a href="#2116">2116</a></td></tr
  4452. ><tr id="gr_svn7768_2117"
  4453. ><td id="2117"><a href="#2117">2117</a></td></tr
  4454. ><tr id="gr_svn7768_2118"
  4455. ><td id="2118"><a href="#2118">2118</a></td></tr
  4456. ><tr id="gr_svn7768_2119"
  4457. ><td id="2119"><a href="#2119">2119</a></td></tr
  4458. ><tr id="gr_svn7768_2120"
  4459. ><td id="2120"><a href="#2120">2120</a></td></tr
  4460. ><tr id="gr_svn7768_2121"
  4461. ><td id="2121"><a href="#2121">2121</a></td></tr
  4462. ><tr id="gr_svn7768_2122"
  4463. ><td id="2122"><a href="#2122">2122</a></td></tr
  4464. ><tr id="gr_svn7768_2123"
  4465. ><td id="2123"><a href="#2123">2123</a></td></tr
  4466. ><tr id="gr_svn7768_2124"
  4467. ><td id="2124"><a href="#2124">2124</a></td></tr
  4468. ><tr id="gr_svn7768_2125"
  4469. ><td id="2125"><a href="#2125">2125</a></td></tr
  4470. ><tr id="gr_svn7768_2126"
  4471. ><td id="2126"><a href="#2126">2126</a></td></tr
  4472. ><tr id="gr_svn7768_2127"
  4473. ><td id="2127"><a href="#2127">2127</a></td></tr
  4474. ><tr id="gr_svn7768_2128"
  4475. ><td id="2128"><a href="#2128">2128</a></td></tr
  4476. ><tr id="gr_svn7768_2129"
  4477. ><td id="2129"><a href="#2129">2129</a></td></tr
  4478. ><tr id="gr_svn7768_2130"
  4479. ><td id="2130"><a href="#2130">2130</a></td></tr
  4480. ><tr id="gr_svn7768_2131"
  4481. ><td id="2131"><a href="#2131">2131</a></td></tr
  4482. ><tr id="gr_svn7768_2132"
  4483. ><td id="2132"><a href="#2132">2132</a></td></tr
  4484. ><tr id="gr_svn7768_2133"
  4485. ><td id="2133"><a href="#2133">2133</a></td></tr
  4486. ><tr id="gr_svn7768_2134"
  4487. ><td id="2134"><a href="#2134">2134</a></td></tr
  4488. ><tr id="gr_svn7768_2135"
  4489. ><td id="2135"><a href="#2135">2135</a></td></tr
  4490. ><tr id="gr_svn7768_2136"
  4491. ><td id="2136"><a href="#2136">2136</a></td></tr
  4492. ><tr id="gr_svn7768_2137"
  4493. ><td id="2137"><a href="#2137">2137</a></td></tr
  4494. ><tr id="gr_svn7768_2138"
  4495. ><td id="2138"><a href="#2138">2138</a></td></tr
  4496. ><tr id="gr_svn7768_2139"
  4497. ><td id="2139"><a href="#2139">2139</a></td></tr
  4498. ><tr id="gr_svn7768_2140"
  4499. ><td id="2140"><a href="#2140">2140</a></td></tr
  4500. ><tr id="gr_svn7768_2141"
  4501. ><td id="2141"><a href="#2141">2141</a></td></tr
  4502. ><tr id="gr_svn7768_2142"
  4503. ><td id="2142"><a href="#2142">2142</a></td></tr
  4504. ><tr id="gr_svn7768_2143"
  4505. ><td id="2143"><a href="#2143">2143</a></td></tr
  4506. ><tr id="gr_svn7768_2144"
  4507. ><td id="2144"><a href="#2144">2144</a></td></tr
  4508. ><tr id="gr_svn7768_2145"
  4509. ><td id="2145"><a href="#2145">2145</a></td></tr
  4510. ><tr id="gr_svn7768_2146"
  4511. ><td id="2146"><a href="#2146">2146</a></td></tr
  4512. ><tr id="gr_svn7768_2147"
  4513. ><td id="2147"><a href="#2147">2147</a></td></tr
  4514. ><tr id="gr_svn7768_2148"
  4515. ><td id="2148"><a href="#2148">2148</a></td></tr
  4516. ><tr id="gr_svn7768_2149"
  4517. ><td id="2149"><a href="#2149">2149</a></td></tr
  4518. ><tr id="gr_svn7768_2150"
  4519. ><td id="2150"><a href="#2150">2150</a></td></tr
  4520. ><tr id="gr_svn7768_2151"
  4521. ><td id="2151"><a href="#2151">2151</a></td></tr
  4522. ><tr id="gr_svn7768_2152"
  4523. ><td id="2152"><a href="#2152">2152</a></td></tr
  4524. ><tr id="gr_svn7768_2153"
  4525. ><td id="2153"><a href="#2153">2153</a></td></tr
  4526. ><tr id="gr_svn7768_2154"
  4527. ><td id="2154"><a href="#2154">2154</a></td></tr
  4528. ><tr id="gr_svn7768_2155"
  4529. ><td id="2155"><a href="#2155">2155</a></td></tr
  4530. ><tr id="gr_svn7768_2156"
  4531. ><td id="2156"><a href="#2156">2156</a></td></tr
  4532. ><tr id="gr_svn7768_2157"
  4533. ><td id="2157"><a href="#2157">2157</a></td></tr
  4534. ><tr id="gr_svn7768_2158"
  4535. ><td id="2158"><a href="#2158">2158</a></td></tr
  4536. ><tr id="gr_svn7768_2159"
  4537. ><td id="2159"><a href="#2159">2159</a></td></tr
  4538. ><tr id="gr_svn7768_2160"
  4539. ><td id="2160"><a href="#2160">2160</a></td></tr
  4540. ><tr id="gr_svn7768_2161"
  4541. ><td id="2161"><a href="#2161">2161</a></td></tr
  4542. ><tr id="gr_svn7768_2162"
  4543. ><td id="2162"><a href="#2162">2162</a></td></tr
  4544. ><tr id="gr_svn7768_2163"
  4545. ><td id="2163"><a href="#2163">2163</a></td></tr
  4546. ><tr id="gr_svn7768_2164"
  4547. ><td id="2164"><a href="#2164">2164</a></td></tr
  4548. ><tr id="gr_svn7768_2165"
  4549. ><td id="2165"><a href="#2165">2165</a></td></tr
  4550. ><tr id="gr_svn7768_2166"
  4551. ><td id="2166"><a href="#2166">2166</a></td></tr
  4552. ><tr id="gr_svn7768_2167"
  4553. ><td id="2167"><a href="#2167">2167</a></td></tr
  4554. ><tr id="gr_svn7768_2168"
  4555. ><td id="2168"><a href="#2168">2168</a></td></tr
  4556. ><tr id="gr_svn7768_2169"
  4557. ><td id="2169"><a href="#2169">2169</a></td></tr
  4558. ><tr id="gr_svn7768_2170"
  4559. ><td id="2170"><a href="#2170">2170</a></td></tr
  4560. ><tr id="gr_svn7768_2171"
  4561. ><td id="2171"><a href="#2171">2171</a></td></tr
  4562. ><tr id="gr_svn7768_2172"
  4563. ><td id="2172"><a href="#2172">2172</a></td></tr
  4564. ><tr id="gr_svn7768_2173"
  4565. ><td id="2173"><a href="#2173">2173</a></td></tr
  4566. ><tr id="gr_svn7768_2174"
  4567. ><td id="2174"><a href="#2174">2174</a></td></tr
  4568. ><tr id="gr_svn7768_2175"
  4569. ><td id="2175"><a href="#2175">2175</a></td></tr
  4570. ><tr id="gr_svn7768_2176"
  4571. ><td id="2176"><a href="#2176">2176</a></td></tr
  4572. ><tr id="gr_svn7768_2177"
  4573. ><td id="2177"><a href="#2177">2177</a></td></tr
  4574. ><tr id="gr_svn7768_2178"
  4575. ><td id="2178"><a href="#2178">2178</a></td></tr
  4576. ><tr id="gr_svn7768_2179"
  4577. ><td id="2179"><a href="#2179">2179</a></td></tr
  4578. ><tr id="gr_svn7768_2180"
  4579. ><td id="2180"><a href="#2180">2180</a></td></tr
  4580. ><tr id="gr_svn7768_2181"
  4581. ><td id="2181"><a href="#2181">2181</a></td></tr
  4582. ><tr id="gr_svn7768_2182"
  4583. ><td id="2182"><a href="#2182">2182</a></td></tr
  4584. ><tr id="gr_svn7768_2183"
  4585. ><td id="2183"><a href="#2183">2183</a></td></tr
  4586. ><tr id="gr_svn7768_2184"
  4587. ><td id="2184"><a href="#2184">2184</a></td></tr
  4588. ><tr id="gr_svn7768_2185"
  4589. ><td id="2185"><a href="#2185">2185</a></td></tr
  4590. ><tr id="gr_svn7768_2186"
  4591. ><td id="2186"><a href="#2186">2186</a></td></tr
  4592. ><tr id="gr_svn7768_2187"
  4593. ><td id="2187"><a href="#2187">2187</a></td></tr
  4594. ><tr id="gr_svn7768_2188"
  4595. ><td id="2188"><a href="#2188">2188</a></td></tr
  4596. ><tr id="gr_svn7768_2189"
  4597. ><td id="2189"><a href="#2189">2189</a></td></tr
  4598. ><tr id="gr_svn7768_2190"
  4599. ><td id="2190"><a href="#2190">2190</a></td></tr
  4600. ><tr id="gr_svn7768_2191"
  4601. ><td id="2191"><a href="#2191">2191</a></td></tr
  4602. ><tr id="gr_svn7768_2192"
  4603. ><td id="2192"><a href="#2192">2192</a></td></tr
  4604. ><tr id="gr_svn7768_2193"
  4605. ><td id="2193"><a href="#2193">2193</a></td></tr
  4606. ><tr id="gr_svn7768_2194"
  4607. ><td id="2194"><a href="#2194">2194</a></td></tr
  4608. ><tr id="gr_svn7768_2195"
  4609. ><td id="2195"><a href="#2195">2195</a></td></tr
  4610. ><tr id="gr_svn7768_2196"
  4611. ><td id="2196"><a href="#2196">2196</a></td></tr
  4612. ><tr id="gr_svn7768_2197"
  4613. ><td id="2197"><a href="#2197">2197</a></td></tr
  4614. ><tr id="gr_svn7768_2198"
  4615. ><td id="2198"><a href="#2198">2198</a></td></tr
  4616. ><tr id="gr_svn7768_2199"
  4617. ><td id="2199"><a href="#2199">2199</a></td></tr
  4618. ><tr id="gr_svn7768_2200"
  4619. ><td id="2200"><a href="#2200">2200</a></td></tr
  4620. ><tr id="gr_svn7768_2201"
  4621. ><td id="2201"><a href="#2201">2201</a></td></tr
  4622. ><tr id="gr_svn7768_2202"
  4623. ><td id="2202"><a href="#2202">2202</a></td></tr
  4624. ><tr id="gr_svn7768_2203"
  4625. ><td id="2203"><a href="#2203">2203</a></td></tr
  4626. ><tr id="gr_svn7768_2204"
  4627. ><td id="2204"><a href="#2204">2204</a></td></tr
  4628. ><tr id="gr_svn7768_2205"
  4629. ><td id="2205"><a href="#2205">2205</a></td></tr
  4630. ><tr id="gr_svn7768_2206"
  4631. ><td id="2206"><a href="#2206">2206</a></td></tr
  4632. ><tr id="gr_svn7768_2207"
  4633. ><td id="2207"><a href="#2207">2207</a></td></tr
  4634. ><tr id="gr_svn7768_2208"
  4635. ><td id="2208"><a href="#2208">2208</a></td></tr
  4636. ><tr id="gr_svn7768_2209"
  4637. ><td id="2209"><a href="#2209">2209</a></td></tr
  4638. ><tr id="gr_svn7768_2210"
  4639. ><td id="2210"><a href="#2210">2210</a></td></tr
  4640. ><tr id="gr_svn7768_2211"
  4641. ><td id="2211"><a href="#2211">2211</a></td></tr
  4642. ><tr id="gr_svn7768_2212"
  4643. ><td id="2212"><a href="#2212">2212</a></td></tr
  4644. ><tr id="gr_svn7768_2213"
  4645. ><td id="2213"><a href="#2213">2213</a></td></tr
  4646. ><tr id="gr_svn7768_2214"
  4647. ><td id="2214"><a href="#2214">2214</a></td></tr
  4648. ><tr id="gr_svn7768_2215"
  4649. ><td id="2215"><a href="#2215">2215</a></td></tr
  4650. ><tr id="gr_svn7768_2216"
  4651. ><td id="2216"><a href="#2216">2216</a></td></tr
  4652. ><tr id="gr_svn7768_2217"
  4653. ><td id="2217"><a href="#2217">2217</a></td></tr
  4654. ><tr id="gr_svn7768_2218"
  4655. ><td id="2218"><a href="#2218">2218</a></td></tr
  4656. ><tr id="gr_svn7768_2219"
  4657. ><td id="2219"><a href="#2219">2219</a></td></tr
  4658. ><tr id="gr_svn7768_2220"
  4659. ><td id="2220"><a href="#2220">2220</a></td></tr
  4660. ><tr id="gr_svn7768_2221"
  4661. ><td id="2221"><a href="#2221">2221</a></td></tr
  4662. ><tr id="gr_svn7768_2222"
  4663. ><td id="2222"><a href="#2222">2222</a></td></tr
  4664. ><tr id="gr_svn7768_2223"
  4665. ><td id="2223"><a href="#2223">2223</a></td></tr
  4666. ><tr id="gr_svn7768_2224"
  4667. ><td id="2224"><a href="#2224">2224</a></td></tr
  4668. ><tr id="gr_svn7768_2225"
  4669. ><td id="2225"><a href="#2225">2225</a></td></tr
  4670. ><tr id="gr_svn7768_2226"
  4671. ><td id="2226"><a href="#2226">2226</a></td></tr
  4672. ><tr id="gr_svn7768_2227"
  4673. ><td id="2227"><a href="#2227">2227</a></td></tr
  4674. ><tr id="gr_svn7768_2228"
  4675. ><td id="2228"><a href="#2228">2228</a></td></tr
  4676. ><tr id="gr_svn7768_2229"
  4677. ><td id="2229"><a href="#2229">2229</a></td></tr
  4678. ><tr id="gr_svn7768_2230"
  4679. ><td id="2230"><a href="#2230">2230</a></td></tr
  4680. ><tr id="gr_svn7768_2231"
  4681. ><td id="2231"><a href="#2231">2231</a></td></tr
  4682. ><tr id="gr_svn7768_2232"
  4683. ><td id="2232"><a href="#2232">2232</a></td></tr
  4684. ><tr id="gr_svn7768_2233"
  4685. ><td id="2233"><a href="#2233">2233</a></td></tr
  4686. ><tr id="gr_svn7768_2234"
  4687. ><td id="2234"><a href="#2234">2234</a></td></tr
  4688. ><tr id="gr_svn7768_2235"
  4689. ><td id="2235"><a href="#2235">2235</a></td></tr
  4690. ><tr id="gr_svn7768_2236"
  4691. ><td id="2236"><a href="#2236">2236</a></td></tr
  4692. ><tr id="gr_svn7768_2237"
  4693. ><td id="2237"><a href="#2237">2237</a></td></tr
  4694. ><tr id="gr_svn7768_2238"
  4695. ><td id="2238"><a href="#2238">2238</a></td></tr
  4696. ><tr id="gr_svn7768_2239"
  4697. ><td id="2239"><a href="#2239">2239</a></td></tr
  4698. ><tr id="gr_svn7768_2240"
  4699. ><td id="2240"><a href="#2240">2240</a></td></tr
  4700. ><tr id="gr_svn7768_2241"
  4701. ><td id="2241"><a href="#2241">2241</a></td></tr
  4702. ><tr id="gr_svn7768_2242"
  4703. ><td id="2242"><a href="#2242">2242</a></td></tr
  4704. ><tr id="gr_svn7768_2243"
  4705. ><td id="2243"><a href="#2243">2243</a></td></tr
  4706. ><tr id="gr_svn7768_2244"
  4707. ><td id="2244"><a href="#2244">2244</a></td></tr
  4708. ><tr id="gr_svn7768_2245"
  4709. ><td id="2245"><a href="#2245">2245</a></td></tr
  4710. ><tr id="gr_svn7768_2246"
  4711. ><td id="2246"><a href="#2246">2246</a></td></tr
  4712. ><tr id="gr_svn7768_2247"
  4713. ><td id="2247"><a href="#2247">2247</a></td></tr
  4714. ><tr id="gr_svn7768_2248"
  4715. ><td id="2248"><a href="#2248">2248</a></td></tr
  4716. ><tr id="gr_svn7768_2249"
  4717. ><td id="2249"><a href="#2249">2249</a></td></tr
  4718. ><tr id="gr_svn7768_2250"
  4719. ><td id="2250"><a href="#2250">2250</a></td></tr
  4720. ><tr id="gr_svn7768_2251"
  4721. ><td id="2251"><a href="#2251">2251</a></td></tr
  4722. ><tr id="gr_svn7768_2252"
  4723. ><td id="2252"><a href="#2252">2252</a></td></tr
  4724. ><tr id="gr_svn7768_2253"
  4725. ><td id="2253"><a href="#2253">2253</a></td></tr
  4726. ><tr id="gr_svn7768_2254"
  4727. ><td id="2254"><a href="#2254">2254</a></td></tr
  4728. ><tr id="gr_svn7768_2255"
  4729. ><td id="2255"><a href="#2255">2255</a></td></tr
  4730. ><tr id="gr_svn7768_2256"
  4731. ><td id="2256"><a href="#2256">2256</a></td></tr
  4732. ><tr id="gr_svn7768_2257"
  4733. ><td id="2257"><a href="#2257">2257</a></td></tr
  4734. ><tr id="gr_svn7768_2258"
  4735. ><td id="2258"><a href="#2258">2258</a></td></tr
  4736. ><tr id="gr_svn7768_2259"
  4737. ><td id="2259"><a href="#2259">2259</a></td></tr
  4738. ><tr id="gr_svn7768_2260"
  4739. ><td id="2260"><a href="#2260">2260</a></td></tr
  4740. ><tr id="gr_svn7768_2261"
  4741. ><td id="2261"><a href="#2261">2261</a></td></tr
  4742. ><tr id="gr_svn7768_2262"
  4743. ><td id="2262"><a href="#2262">2262</a></td></tr
  4744. ><tr id="gr_svn7768_2263"
  4745. ><td id="2263"><a href="#2263">2263</a></td></tr
  4746. ><tr id="gr_svn7768_2264"
  4747. ><td id="2264"><a href="#2264">2264</a></td></tr
  4748. ><tr id="gr_svn7768_2265"
  4749. ><td id="2265"><a href="#2265">2265</a></td></tr
  4750. ><tr id="gr_svn7768_2266"
  4751. ><td id="2266"><a href="#2266">2266</a></td></tr
  4752. ><tr id="gr_svn7768_2267"
  4753. ><td id="2267"><a href="#2267">2267</a></td></tr
  4754. ><tr id="gr_svn7768_2268"
  4755. ><td id="2268"><a href="#2268">2268</a></td></tr
  4756. ><tr id="gr_svn7768_2269"
  4757. ><td id="2269"><a href="#2269">2269</a></td></tr
  4758. ><tr id="gr_svn7768_2270"
  4759. ><td id="2270"><a href="#2270">2270</a></td></tr
  4760. ><tr id="gr_svn7768_2271"
  4761. ><td id="2271"><a href="#2271">2271</a></td></tr
  4762. ><tr id="gr_svn7768_2272"
  4763. ><td id="2272"><a href="#2272">2272</a></td></tr
  4764. ><tr id="gr_svn7768_2273"
  4765. ><td id="2273"><a href="#2273">2273</a></td></tr
  4766. ><tr id="gr_svn7768_2274"
  4767. ><td id="2274"><a href="#2274">2274</a></td></tr
  4768. ><tr id="gr_svn7768_2275"
  4769. ><td id="2275"><a href="#2275">2275</a></td></tr
  4770. ><tr id="gr_svn7768_2276"
  4771. ><td id="2276"><a href="#2276">2276</a></td></tr
  4772. ><tr id="gr_svn7768_2277"
  4773. ><td id="2277"><a href="#2277">2277</a></td></tr
  4774. ><tr id="gr_svn7768_2278"
  4775. ><td id="2278"><a href="#2278">2278</a></td></tr
  4776. ><tr id="gr_svn7768_2279"
  4777. ><td id="2279"><a href="#2279">2279</a></td></tr
  4778. ><tr id="gr_svn7768_2280"
  4779. ><td id="2280"><a href="#2280">2280</a></td></tr
  4780. ><tr id="gr_svn7768_2281"
  4781. ><td id="2281"><a href="#2281">2281</a></td></tr
  4782. ><tr id="gr_svn7768_2282"
  4783. ><td id="2282"><a href="#2282">2282</a></td></tr
  4784. ><tr id="gr_svn7768_2283"
  4785. ><td id="2283"><a href="#2283">2283</a></td></tr
  4786. ><tr id="gr_svn7768_2284"
  4787. ><td id="2284"><a href="#2284">2284</a></td></tr
  4788. ><tr id="gr_svn7768_2285"
  4789. ><td id="2285"><a href="#2285">2285</a></td></tr
  4790. ><tr id="gr_svn7768_2286"
  4791. ><td id="2286"><a href="#2286">2286</a></td></tr
  4792. ><tr id="gr_svn7768_2287"
  4793. ><td id="2287"><a href="#2287">2287</a></td></tr
  4794. ><tr id="gr_svn7768_2288"
  4795. ><td id="2288"><a href="#2288">2288</a></td></tr
  4796. ><tr id="gr_svn7768_2289"
  4797. ><td id="2289"><a href="#2289">2289</a></td></tr
  4798. ><tr id="gr_svn7768_2290"
  4799. ><td id="2290"><a href="#2290">2290</a></td></tr
  4800. ><tr id="gr_svn7768_2291"
  4801. ><td id="2291"><a href="#2291">2291</a></td></tr
  4802. ><tr id="gr_svn7768_2292"
  4803. ><td id="2292"><a href="#2292">2292</a></td></tr
  4804. ><tr id="gr_svn7768_2293"
  4805. ><td id="2293"><a href="#2293">2293</a></td></tr
  4806. ><tr id="gr_svn7768_2294"
  4807. ><td id="2294"><a href="#2294">2294</a></td></tr
  4808. ><tr id="gr_svn7768_2295"
  4809. ><td id="2295"><a href="#2295">2295</a></td></tr
  4810. ><tr id="gr_svn7768_2296"
  4811. ><td id="2296"><a href="#2296">2296</a></td></tr
  4812. ><tr id="gr_svn7768_2297"
  4813. ><td id="2297"><a href="#2297">2297</a></td></tr
  4814. ><tr id="gr_svn7768_2298"
  4815. ><td id="2298"><a href="#2298">2298</a></td></tr
  4816. ><tr id="gr_svn7768_2299"
  4817. ><td id="2299"><a href="#2299">2299</a></td></tr
  4818. ><tr id="gr_svn7768_2300"
  4819. ><td id="2300"><a href="#2300">2300</a></td></tr
  4820. ><tr id="gr_svn7768_2301"
  4821. ><td id="2301"><a href="#2301">2301</a></td></tr
  4822. ><tr id="gr_svn7768_2302"
  4823. ><td id="2302"><a href="#2302">2302</a></td></tr
  4824. ><tr id="gr_svn7768_2303"
  4825. ><td id="2303"><a href="#2303">2303</a></td></tr
  4826. ><tr id="gr_svn7768_2304"
  4827. ><td id="2304"><a href="#2304">2304</a></td></tr
  4828. ><tr id="gr_svn7768_2305"
  4829. ><td id="2305"><a href="#2305">2305</a></td></tr
  4830. ><tr id="gr_svn7768_2306"
  4831. ><td id="2306"><a href="#2306">2306</a></td></tr
  4832. ><tr id="gr_svn7768_2307"
  4833. ><td id="2307"><a href="#2307">2307</a></td></tr
  4834. ><tr id="gr_svn7768_2308"
  4835. ><td id="2308"><a href="#2308">2308</a></td></tr
  4836. ><tr id="gr_svn7768_2309"
  4837. ><td id="2309"><a href="#2309">2309</a></td></tr
  4838. ><tr id="gr_svn7768_2310"
  4839. ><td id="2310"><a href="#2310">2310</a></td></tr
  4840. ><tr id="gr_svn7768_2311"
  4841. ><td id="2311"><a href="#2311">2311</a></td></tr
  4842. ><tr id="gr_svn7768_2312"
  4843. ><td id="2312"><a href="#2312">2312</a></td></tr
  4844. ><tr id="gr_svn7768_2313"
  4845. ><td id="2313"><a href="#2313">2313</a></td></tr
  4846. ><tr id="gr_svn7768_2314"
  4847. ><td id="2314"><a href="#2314">2314</a></td></tr
  4848. ><tr id="gr_svn7768_2315"
  4849. ><td id="2315"><a href="#2315">2315</a></td></tr
  4850. ><tr id="gr_svn7768_2316"
  4851. ><td id="2316"><a href="#2316">2316</a></td></tr
  4852. ><tr id="gr_svn7768_2317"
  4853. ><td id="2317"><a href="#2317">2317</a></td></tr
  4854. ><tr id="gr_svn7768_2318"
  4855. ><td id="2318"><a href="#2318">2318</a></td></tr
  4856. ><tr id="gr_svn7768_2319"
  4857. ><td id="2319"><a href="#2319">2319</a></td></tr
  4858. ><tr id="gr_svn7768_2320"
  4859. ><td id="2320"><a href="#2320">2320</a></td></tr
  4860. ><tr id="gr_svn7768_2321"
  4861. ><td id="2321"><a href="#2321">2321</a></td></tr
  4862. ><tr id="gr_svn7768_2322"
  4863. ><td id="2322"><a href="#2322">2322</a></td></tr
  4864. ><tr id="gr_svn7768_2323"
  4865. ><td id="2323"><a href="#2323">2323</a></td></tr
  4866. ><tr id="gr_svn7768_2324"
  4867. ><td id="2324"><a href="#2324">2324</a></td></tr
  4868. ><tr id="gr_svn7768_2325"
  4869. ><td id="2325"><a href="#2325">2325</a></td></tr
  4870. ><tr id="gr_svn7768_2326"
  4871. ><td id="2326"><a href="#2326">2326</a></td></tr
  4872. ><tr id="gr_svn7768_2327"
  4873. ><td id="2327"><a href="#2327">2327</a></td></tr
  4874. ><tr id="gr_svn7768_2328"
  4875. ><td id="2328"><a href="#2328">2328</a></td></tr
  4876. ><tr id="gr_svn7768_2329"
  4877. ><td id="2329"><a href="#2329">2329</a></td></tr
  4878. ><tr id="gr_svn7768_2330"
  4879. ><td id="2330"><a href="#2330">2330</a></td></tr
  4880. ><tr id="gr_svn7768_2331"
  4881. ><td id="2331"><a href="#2331">2331</a></td></tr
  4882. ><tr id="gr_svn7768_2332"
  4883. ><td id="2332"><a href="#2332">2332</a></td></tr
  4884. ><tr id="gr_svn7768_2333"
  4885. ><td id="2333"><a href="#2333">2333</a></td></tr
  4886. ><tr id="gr_svn7768_2334"
  4887. ><td id="2334"><a href="#2334">2334</a></td></tr
  4888. ><tr id="gr_svn7768_2335"
  4889. ><td id="2335"><a href="#2335">2335</a></td></tr
  4890. ><tr id="gr_svn7768_2336"
  4891. ><td id="2336"><a href="#2336">2336</a></td></tr
  4892. ><tr id="gr_svn7768_2337"
  4893. ><td id="2337"><a href="#2337">2337</a></td></tr
  4894. ><tr id="gr_svn7768_2338"
  4895. ><td id="2338"><a href="#2338">2338</a></td></tr
  4896. ><tr id="gr_svn7768_2339"
  4897. ><td id="2339"><a href="#2339">2339</a></td></tr
  4898. ><tr id="gr_svn7768_2340"
  4899. ><td id="2340"><a href="#2340">2340</a></td></tr
  4900. ><tr id="gr_svn7768_2341"
  4901. ><td id="2341"><a href="#2341">2341</a></td></tr
  4902. ><tr id="gr_svn7768_2342"
  4903. ><td id="2342"><a href="#2342">2342</a></td></tr
  4904. ><tr id="gr_svn7768_2343"
  4905. ><td id="2343"><a href="#2343">2343</a></td></tr
  4906. ><tr id="gr_svn7768_2344"
  4907. ><td id="2344"><a href="#2344">2344</a></td></tr
  4908. ><tr id="gr_svn7768_2345"
  4909. ><td id="2345"><a href="#2345">2345</a></td></tr
  4910. ><tr id="gr_svn7768_2346"
  4911. ><td id="2346"><a href="#2346">2346</a></td></tr
  4912. ><tr id="gr_svn7768_2347"
  4913. ><td id="2347"><a href="#2347">2347</a></td></tr
  4914. ><tr id="gr_svn7768_2348"
  4915. ><td id="2348"><a href="#2348">2348</a></td></tr
  4916. ><tr id="gr_svn7768_2349"
  4917. ><td id="2349"><a href="#2349">2349</a></td></tr
  4918. ><tr id="gr_svn7768_2350"
  4919. ><td id="2350"><a href="#2350">2350</a></td></tr
  4920. ><tr id="gr_svn7768_2351"
  4921. ><td id="2351"><a href="#2351">2351</a></td></tr
  4922. ><tr id="gr_svn7768_2352"
  4923. ><td id="2352"><a href="#2352">2352</a></td></tr
  4924. ><tr id="gr_svn7768_2353"
  4925. ><td id="2353"><a href="#2353">2353</a></td></tr
  4926. ><tr id="gr_svn7768_2354"
  4927. ><td id="2354"><a href="#2354">2354</a></td></tr
  4928. ><tr id="gr_svn7768_2355"
  4929. ><td id="2355"><a href="#2355">2355</a></td></tr
  4930. ><tr id="gr_svn7768_2356"
  4931. ><td id="2356"><a href="#2356">2356</a></td></tr
  4932. ><tr id="gr_svn7768_2357"
  4933. ><td id="2357"><a href="#2357">2357</a></td></tr
  4934. ><tr id="gr_svn7768_2358"
  4935. ><td id="2358"><a href="#2358">2358</a></td></tr
  4936. ><tr id="gr_svn7768_2359"
  4937. ><td id="2359"><a href="#2359">2359</a></td></tr
  4938. ><tr id="gr_svn7768_2360"
  4939. ><td id="2360"><a href="#2360">2360</a></td></tr
  4940. ><tr id="gr_svn7768_2361"
  4941. ><td id="2361"><a href="#2361">2361</a></td></tr
  4942. ><tr id="gr_svn7768_2362"
  4943. ><td id="2362"><a href="#2362">2362</a></td></tr
  4944. ><tr id="gr_svn7768_2363"
  4945. ><td id="2363"><a href="#2363">2363</a></td></tr
  4946. ><tr id="gr_svn7768_2364"
  4947. ><td id="2364"><a href="#2364">2364</a></td></tr
  4948. ><tr id="gr_svn7768_2365"
  4949. ><td id="2365"><a href="#2365">2365</a></td></tr
  4950. ><tr id="gr_svn7768_2366"
  4951. ><td id="2366"><a href="#2366">2366</a></td></tr
  4952. ><tr id="gr_svn7768_2367"
  4953. ><td id="2367"><a href="#2367">2367</a></td></tr
  4954. ><tr id="gr_svn7768_2368"
  4955. ><td id="2368"><a href="#2368">2368</a></td></tr
  4956. ><tr id="gr_svn7768_2369"
  4957. ><td id="2369"><a href="#2369">2369</a></td></tr
  4958. ><tr id="gr_svn7768_2370"
  4959. ><td id="2370"><a href="#2370">2370</a></td></tr
  4960. ><tr id="gr_svn7768_2371"
  4961. ><td id="2371"><a href="#2371">2371</a></td></tr
  4962. ><tr id="gr_svn7768_2372"
  4963. ><td id="2372"><a href="#2372">2372</a></td></tr
  4964. ><tr id="gr_svn7768_2373"
  4965. ><td id="2373"><a href="#2373">2373</a></td></tr
  4966. ><tr id="gr_svn7768_2374"
  4967. ><td id="2374"><a href="#2374">2374</a></td></tr
  4968. ><tr id="gr_svn7768_2375"
  4969. ><td id="2375"><a href="#2375">2375</a></td></tr
  4970. ><tr id="gr_svn7768_2376"
  4971. ><td id="2376"><a href="#2376">2376</a></td></tr
  4972. ><tr id="gr_svn7768_2377"
  4973. ><td id="2377"><a href="#2377">2377</a></td></tr
  4974. ><tr id="gr_svn7768_2378"
  4975. ><td id="2378"><a href="#2378">2378</a></td></tr
  4976. ><tr id="gr_svn7768_2379"
  4977. ><td id="2379"><a href="#2379">2379</a></td></tr
  4978. ><tr id="gr_svn7768_2380"
  4979. ><td id="2380"><a href="#2380">2380</a></td></tr
  4980. ><tr id="gr_svn7768_2381"
  4981. ><td id="2381"><a href="#2381">2381</a></td></tr
  4982. ><tr id="gr_svn7768_2382"
  4983. ><td id="2382"><a href="#2382">2382</a></td></tr
  4984. ><tr id="gr_svn7768_2383"
  4985. ><td id="2383"><a href="#2383">2383</a></td></tr
  4986. ><tr id="gr_svn7768_2384"
  4987. ><td id="2384"><a href="#2384">2384</a></td></tr
  4988. ><tr id="gr_svn7768_2385"
  4989. ><td id="2385"><a href="#2385">2385</a></td></tr
  4990. ><tr id="gr_svn7768_2386"
  4991. ><td id="2386"><a href="#2386">2386</a></td></tr
  4992. ><tr id="gr_svn7768_2387"
  4993. ><td id="2387"><a href="#2387">2387</a></td></tr
  4994. ><tr id="gr_svn7768_2388"
  4995. ><td id="2388"><a href="#2388">2388</a></td></tr
  4996. ><tr id="gr_svn7768_2389"
  4997. ><td id="2389"><a href="#2389">2389</a></td></tr
  4998. ><tr id="gr_svn7768_2390"
  4999. ><td id="2390"><a href="#2390">2390</a></td></tr
  5000. ><tr id="gr_svn7768_2391"
  5001. ><td id="2391"><a href="#2391">2391</a></td></tr
  5002. ><tr id="gr_svn7768_2392"
  5003. ><td id="2392"><a href="#2392">2392</a></td></tr
  5004. ><tr id="gr_svn7768_2393"
  5005. ><td id="2393"><a href="#2393">2393</a></td></tr
  5006. ><tr id="gr_svn7768_2394"
  5007. ><td id="2394"><a href="#2394">2394</a></td></tr
  5008. ><tr id="gr_svn7768_2395"
  5009. ><td id="2395"><a href="#2395">2395</a></td></tr
  5010. ><tr id="gr_svn7768_2396"
  5011. ><td id="2396"><a href="#2396">2396</a></td></tr
  5012. ><tr id="gr_svn7768_2397"
  5013. ><td id="2397"><a href="#2397">2397</a></td></tr
  5014. ><tr id="gr_svn7768_2398"
  5015. ><td id="2398"><a href="#2398">2398</a></td></tr
  5016. ><tr id="gr_svn7768_2399"
  5017. ><td id="2399"><a href="#2399">2399</a></td></tr
  5018. ><tr id="gr_svn7768_2400"
  5019. ><td id="2400"><a href="#2400">2400</a></td></tr
  5020. ><tr id="gr_svn7768_2401"
  5021. ><td id="2401"><a href="#2401">2401</a></td></tr
  5022. ><tr id="gr_svn7768_2402"
  5023. ><td id="2402"><a href="#2402">2402</a></td></tr
  5024. ><tr id="gr_svn7768_2403"
  5025. ><td id="2403"><a href="#2403">2403</a></td></tr
  5026. ><tr id="gr_svn7768_2404"
  5027. ><td id="2404"><a href="#2404">2404</a></td></tr
  5028. ><tr id="gr_svn7768_2405"
  5029. ><td id="2405"><a href="#2405">2405</a></td></tr
  5030. ><tr id="gr_svn7768_2406"
  5031. ><td id="2406"><a href="#2406">2406</a></td></tr
  5032. ><tr id="gr_svn7768_2407"
  5033. ><td id="2407"><a href="#2407">2407</a></td></tr
  5034. ><tr id="gr_svn7768_2408"
  5035. ><td id="2408"><a href="#2408">2408</a></td></tr
  5036. ><tr id="gr_svn7768_2409"
  5037. ><td id="2409"><a href="#2409">2409</a></td></tr
  5038. ><tr id="gr_svn7768_2410"
  5039. ><td id="2410"><a href="#2410">2410</a></td></tr
  5040. ><tr id="gr_svn7768_2411"
  5041. ><td id="2411"><a href="#2411">2411</a></td></tr
  5042. ><tr id="gr_svn7768_2412"
  5043. ><td id="2412"><a href="#2412">2412</a></td></tr
  5044. ><tr id="gr_svn7768_2413"
  5045. ><td id="2413"><a href="#2413">2413</a></td></tr
  5046. ><tr id="gr_svn7768_2414"
  5047. ><td id="2414"><a href="#2414">2414</a></td></tr
  5048. ><tr id="gr_svn7768_2415"
  5049. ><td id="2415"><a href="#2415">2415</a></td></tr
  5050. ><tr id="gr_svn7768_2416"
  5051. ><td id="2416"><a href="#2416">2416</a></td></tr
  5052. ><tr id="gr_svn7768_2417"
  5053. ><td id="2417"><a href="#2417">2417</a></td></tr
  5054. ><tr id="gr_svn7768_2418"
  5055. ><td id="2418"><a href="#2418">2418</a></td></tr
  5056. ><tr id="gr_svn7768_2419"
  5057. ><td id="2419"><a href="#2419">2419</a></td></tr
  5058. ><tr id="gr_svn7768_2420"
  5059. ><td id="2420"><a href="#2420">2420</a></td></tr
  5060. ><tr id="gr_svn7768_2421"
  5061. ><td id="2421"><a href="#2421">2421</a></td></tr
  5062. ><tr id="gr_svn7768_2422"
  5063. ><td id="2422"><a href="#2422">2422</a></td></tr
  5064. ><tr id="gr_svn7768_2423"
  5065. ><td id="2423"><a href="#2423">2423</a></td></tr
  5066. ><tr id="gr_svn7768_2424"
  5067. ><td id="2424"><a href="#2424">2424</a></td></tr
  5068. ><tr id="gr_svn7768_2425"
  5069. ><td id="2425"><a href="#2425">2425</a></td></tr
  5070. ><tr id="gr_svn7768_2426"
  5071. ><td id="2426"><a href="#2426">2426</a></td></tr
  5072. ><tr id="gr_svn7768_2427"
  5073. ><td id="2427"><a href="#2427">2427</a></td></tr
  5074. ><tr id="gr_svn7768_2428"
  5075. ><td id="2428"><a href="#2428">2428</a></td></tr
  5076. ><tr id="gr_svn7768_2429"
  5077. ><td id="2429"><a href="#2429">2429</a></td></tr
  5078. ><tr id="gr_svn7768_2430"
  5079. ><td id="2430"><a href="#2430">2430</a></td></tr
  5080. ><tr id="gr_svn7768_2431"
  5081. ><td id="2431"><a href="#2431">2431</a></td></tr
  5082. ><tr id="gr_svn7768_2432"
  5083. ><td id="2432"><a href="#2432">2432</a></td></tr
  5084. ><tr id="gr_svn7768_2433"
  5085. ><td id="2433"><a href="#2433">2433</a></td></tr
  5086. ><tr id="gr_svn7768_2434"
  5087. ><td id="2434"><a href="#2434">2434</a></td></tr
  5088. ><tr id="gr_svn7768_2435"
  5089. ><td id="2435"><a href="#2435">2435</a></td></tr
  5090. ><tr id="gr_svn7768_2436"
  5091. ><td id="2436"><a href="#2436">2436</a></td></tr
  5092. ><tr id="gr_svn7768_2437"
  5093. ><td id="2437"><a href="#2437">2437</a></td></tr
  5094. ><tr id="gr_svn7768_2438"
  5095. ><td id="2438"><a href="#2438">2438</a></td></tr
  5096. ><tr id="gr_svn7768_2439"
  5097. ><td id="2439"><a href="#2439">2439</a></td></tr
  5098. ><tr id="gr_svn7768_2440"
  5099. ><td id="2440"><a href="#2440">2440</a></td></tr
  5100. ><tr id="gr_svn7768_2441"
  5101. ><td id="2441"><a href="#2441">2441</a></td></tr
  5102. ><tr id="gr_svn7768_2442"
  5103. ><td id="2442"><a href="#2442">2442</a></td></tr
  5104. ><tr id="gr_svn7768_2443"
  5105. ><td id="2443"><a href="#2443">2443</a></td></tr
  5106. ><tr id="gr_svn7768_2444"
  5107. ><td id="2444"><a href="#2444">2444</a></td></tr
  5108. ><tr id="gr_svn7768_2445"
  5109. ><td id="2445"><a href="#2445">2445</a></td></tr
  5110. ><tr id="gr_svn7768_2446"
  5111. ><td id="2446"><a href="#2446">2446</a></td></tr
  5112. ><tr id="gr_svn7768_2447"
  5113. ><td id="2447"><a href="#2447">2447</a></td></tr
  5114. ><tr id="gr_svn7768_2448"
  5115. ><td id="2448"><a href="#2448">2448</a></td></tr
  5116. ><tr id="gr_svn7768_2449"
  5117. ><td id="2449"><a href="#2449">2449</a></td></tr
  5118. ><tr id="gr_svn7768_2450"
  5119. ><td id="2450"><a href="#2450">2450</a></td></tr
  5120. ><tr id="gr_svn7768_2451"
  5121. ><td id="2451"><a href="#2451">2451</a></td></tr
  5122. ><tr id="gr_svn7768_2452"
  5123. ><td id="2452"><a href="#2452">2452</a></td></tr
  5124. ><tr id="gr_svn7768_2453"
  5125. ><td id="2453"><a href="#2453">2453</a></td></tr
  5126. ><tr id="gr_svn7768_2454"
  5127. ><td id="2454"><a href="#2454">2454</a></td></tr
  5128. ><tr id="gr_svn7768_2455"
  5129. ><td id="2455"><a href="#2455">2455</a></td></tr
  5130. ><tr id="gr_svn7768_2456"
  5131. ><td id="2456"><a href="#2456">2456</a></td></tr
  5132. ><tr id="gr_svn7768_2457"
  5133. ><td id="2457"><a href="#2457">2457</a></td></tr
  5134. ><tr id="gr_svn7768_2458"
  5135. ><td id="2458"><a href="#2458">2458</a></td></tr
  5136. ><tr id="gr_svn7768_2459"
  5137. ><td id="2459"><a href="#2459">2459</a></td></tr
  5138. ><tr id="gr_svn7768_2460"
  5139. ><td id="2460"><a href="#2460">2460</a></td></tr
  5140. ><tr id="gr_svn7768_2461"
  5141. ><td id="2461"><a href="#2461">2461</a></td></tr
  5142. ><tr id="gr_svn7768_2462"
  5143. ><td id="2462"><a href="#2462">2462</a></td></tr
  5144. ><tr id="gr_svn7768_2463"
  5145. ><td id="2463"><a href="#2463">2463</a></td></tr
  5146. ><tr id="gr_svn7768_2464"
  5147. ><td id="2464"><a href="#2464">2464</a></td></tr
  5148. ><tr id="gr_svn7768_2465"
  5149. ><td id="2465"><a href="#2465">2465</a></td></tr
  5150. ><tr id="gr_svn7768_2466"
  5151. ><td id="2466"><a href="#2466">2466</a></td></tr
  5152. ><tr id="gr_svn7768_2467"
  5153. ><td id="2467"><a href="#2467">2467</a></td></tr
  5154. ><tr id="gr_svn7768_2468"
  5155. ><td id="2468"><a href="#2468">2468</a></td></tr
  5156. ><tr id="gr_svn7768_2469"
  5157. ><td id="2469"><a href="#2469">2469</a></td></tr
  5158. ><tr id="gr_svn7768_2470"
  5159. ><td id="2470"><a href="#2470">2470</a></td></tr
  5160. ><tr id="gr_svn7768_2471"
  5161. ><td id="2471"><a href="#2471">2471</a></td></tr
  5162. ><tr id="gr_svn7768_2472"
  5163. ><td id="2472"><a href="#2472">2472</a></td></tr
  5164. ><tr id="gr_svn7768_2473"
  5165. ><td id="2473"><a href="#2473">2473</a></td></tr
  5166. ><tr id="gr_svn7768_2474"
  5167. ><td id="2474"><a href="#2474">2474</a></td></tr
  5168. ><tr id="gr_svn7768_2475"
  5169. ><td id="2475"><a href="#2475">2475</a></td></tr
  5170. ><tr id="gr_svn7768_2476"
  5171. ><td id="2476"><a href="#2476">2476</a></td></tr
  5172. ><tr id="gr_svn7768_2477"
  5173. ><td id="2477"><a href="#2477">2477</a></td></tr
  5174. ><tr id="gr_svn7768_2478"
  5175. ><td id="2478"><a href="#2478">2478</a></td></tr
  5176. ><tr id="gr_svn7768_2479"
  5177. ><td id="2479"><a href="#2479">2479</a></td></tr
  5178. ><tr id="gr_svn7768_2480"
  5179. ><td id="2480"><a href="#2480">2480</a></td></tr
  5180. ><tr id="gr_svn7768_2481"
  5181. ><td id="2481"><a href="#2481">2481</a></td></tr
  5182. ><tr id="gr_svn7768_2482"
  5183. ><td id="2482"><a href="#2482">2482</a></td></tr
  5184. ><tr id="gr_svn7768_2483"
  5185. ><td id="2483"><a href="#2483">2483</a></td></tr
  5186. ><tr id="gr_svn7768_2484"
  5187. ><td id="2484"><a href="#2484">2484</a></td></tr
  5188. ><tr id="gr_svn7768_2485"
  5189. ><td id="2485"><a href="#2485">2485</a></td></tr
  5190. ><tr id="gr_svn7768_2486"
  5191. ><td id="2486"><a href="#2486">2486</a></td></tr
  5192. ><tr id="gr_svn7768_2487"
  5193. ><td id="2487"><a href="#2487">2487</a></td></tr
  5194. ><tr id="gr_svn7768_2488"
  5195. ><td id="2488"><a href="#2488">2488</a></td></tr
  5196. ><tr id="gr_svn7768_2489"
  5197. ><td id="2489"><a href="#2489">2489</a></td></tr
  5198. ><tr id="gr_svn7768_2490"
  5199. ><td id="2490"><a href="#2490">2490</a></td></tr
  5200. ><tr id="gr_svn7768_2491"
  5201. ><td id="2491"><a href="#2491">2491</a></td></tr
  5202. ><tr id="gr_svn7768_2492"
  5203. ><td id="2492"><a href="#2492">2492</a></td></tr
  5204. ><tr id="gr_svn7768_2493"
  5205. ><td id="2493"><a href="#2493">2493</a></td></tr
  5206. ><tr id="gr_svn7768_2494"
  5207. ><td id="2494"><a href="#2494">2494</a></td></tr
  5208. ><tr id="gr_svn7768_2495"
  5209. ><td id="2495"><a href="#2495">2495</a></td></tr
  5210. ><tr id="gr_svn7768_2496"
  5211. ><td id="2496"><a href="#2496">2496</a></td></tr
  5212. ><tr id="gr_svn7768_2497"
  5213. ><td id="2497"><a href="#2497">2497</a></td></tr
  5214. ><tr id="gr_svn7768_2498"
  5215. ><td id="2498"><a href="#2498">2498</a></td></tr
  5216. ><tr id="gr_svn7768_2499"
  5217. ><td id="2499"><a href="#2499">2499</a></td></tr
  5218. ><tr id="gr_svn7768_2500"
  5219. ><td id="2500"><a href="#2500">2500</a></td></tr
  5220. ><tr id="gr_svn7768_2501"
  5221. ><td id="2501"><a href="#2501">2501</a></td></tr
  5222. ><tr id="gr_svn7768_2502"
  5223. ><td id="2502"><a href="#2502">2502</a></td></tr
  5224. ><tr id="gr_svn7768_2503"
  5225. ><td id="2503"><a href="#2503">2503</a></td></tr
  5226. ><tr id="gr_svn7768_2504"
  5227. ><td id="2504"><a href="#2504">2504</a></td></tr
  5228. ><tr id="gr_svn7768_2505"
  5229. ><td id="2505"><a href="#2505">2505</a></td></tr
  5230. ><tr id="gr_svn7768_2506"
  5231. ><td id="2506"><a href="#2506">2506</a></td></tr
  5232. ><tr id="gr_svn7768_2507"
  5233. ><td id="2507"><a href="#2507">2507</a></td></tr
  5234. ><tr id="gr_svn7768_2508"
  5235. ><td id="2508"><a href="#2508">2508</a></td></tr
  5236. ><tr id="gr_svn7768_2509"
  5237. ><td id="2509"><a href="#2509">2509</a></td></tr
  5238. ><tr id="gr_svn7768_2510"
  5239. ><td id="2510"><a href="#2510">2510</a></td></tr
  5240. ><tr id="gr_svn7768_2511"
  5241. ><td id="2511"><a href="#2511">2511</a></td></tr
  5242. ><tr id="gr_svn7768_2512"
  5243. ><td id="2512"><a href="#2512">2512</a></td></tr
  5244. ><tr id="gr_svn7768_2513"
  5245. ><td id="2513"><a href="#2513">2513</a></td></tr
  5246. ><tr id="gr_svn7768_2514"
  5247. ><td id="2514"><a href="#2514">2514</a></td></tr
  5248. ><tr id="gr_svn7768_2515"
  5249. ><td id="2515"><a href="#2515">2515</a></td></tr
  5250. ><tr id="gr_svn7768_2516"
  5251. ><td id="2516"><a href="#2516">2516</a></td></tr
  5252. ><tr id="gr_svn7768_2517"
  5253. ><td id="2517"><a href="#2517">2517</a></td></tr
  5254. ><tr id="gr_svn7768_2518"
  5255. ><td id="2518"><a href="#2518">2518</a></td></tr
  5256. ><tr id="gr_svn7768_2519"
  5257. ><td id="2519"><a href="#2519">2519</a></td></tr
  5258. ><tr id="gr_svn7768_2520"
  5259. ><td id="2520"><a href="#2520">2520</a></td></tr
  5260. ><tr id="gr_svn7768_2521"
  5261. ><td id="2521"><a href="#2521">2521</a></td></tr
  5262. ><tr id="gr_svn7768_2522"
  5263. ><td id="2522"><a href="#2522">2522</a></td></tr
  5264. ><tr id="gr_svn7768_2523"
  5265. ><td id="2523"><a href="#2523">2523</a></td></tr
  5266. ><tr id="gr_svn7768_2524"
  5267. ><td id="2524"><a href="#2524">2524</a></td></tr
  5268. ><tr id="gr_svn7768_2525"
  5269. ><td id="2525"><a href="#2525">2525</a></td></tr
  5270. ><tr id="gr_svn7768_2526"
  5271. ><td id="2526"><a href="#2526">2526</a></td></tr
  5272. ><tr id="gr_svn7768_2527"
  5273. ><td id="2527"><a href="#2527">2527</a></td></tr
  5274. ><tr id="gr_svn7768_2528"
  5275. ><td id="2528"><a href="#2528">2528</a></td></tr
  5276. ><tr id="gr_svn7768_2529"
  5277. ><td id="2529"><a href="#2529">2529</a></td></tr
  5278. ><tr id="gr_svn7768_2530"
  5279. ><td id="2530"><a href="#2530">2530</a></td></tr
  5280. ><tr id="gr_svn7768_2531"
  5281. ><td id="2531"><a href="#2531">2531</a></td></tr
  5282. ><tr id="gr_svn7768_2532"
  5283. ><td id="2532"><a href="#2532">2532</a></td></tr
  5284. ><tr id="gr_svn7768_2533"
  5285. ><td id="2533"><a href="#2533">2533</a></td></tr
  5286. ><tr id="gr_svn7768_2534"
  5287. ><td id="2534"><a href="#2534">2534</a></td></tr
  5288. ><tr id="gr_svn7768_2535"
  5289. ><td id="2535"><a href="#2535">2535</a></td></tr
  5290. ><tr id="gr_svn7768_2536"
  5291. ><td id="2536"><a href="#2536">2536</a></td></tr
  5292. ><tr id="gr_svn7768_2537"
  5293. ><td id="2537"><a href="#2537">2537</a></td></tr
  5294. ><tr id="gr_svn7768_2538"
  5295. ><td id="2538"><a href="#2538">2538</a></td></tr
  5296. ><tr id="gr_svn7768_2539"
  5297. ><td id="2539"><a href="#2539">2539</a></td></tr
  5298. ><tr id="gr_svn7768_2540"
  5299. ><td id="2540"><a href="#2540">2540</a></td></tr
  5300. ><tr id="gr_svn7768_2541"
  5301. ><td id="2541"><a href="#2541">2541</a></td></tr
  5302. ><tr id="gr_svn7768_2542"
  5303. ><td id="2542"><a href="#2542">2542</a></td></tr
  5304. ><tr id="gr_svn7768_2543"
  5305. ><td id="2543"><a href="#2543">2543</a></td></tr
  5306. ><tr id="gr_svn7768_2544"
  5307. ><td id="2544"><a href="#2544">2544</a></td></tr
  5308. ><tr id="gr_svn7768_2545"
  5309. ><td id="2545"><a href="#2545">2545</a></td></tr
  5310. ><tr id="gr_svn7768_2546"
  5311. ><td id="2546"><a href="#2546">2546</a></td></tr
  5312. ><tr id="gr_svn7768_2547"
  5313. ><td id="2547"><a href="#2547">2547</a></td></tr
  5314. ><tr id="gr_svn7768_2548"
  5315. ><td id="2548"><a href="#2548">2548</a></td></tr
  5316. ><tr id="gr_svn7768_2549"
  5317. ><td id="2549"><a href="#2549">2549</a></td></tr
  5318. ><tr id="gr_svn7768_2550"
  5319. ><td id="2550"><a href="#2550">2550</a></td></tr
  5320. ><tr id="gr_svn7768_2551"
  5321. ><td id="2551"><a href="#2551">2551</a></td></tr
  5322. ><tr id="gr_svn7768_2552"
  5323. ><td id="2552"><a href="#2552">2552</a></td></tr
  5324. ><tr id="gr_svn7768_2553"
  5325. ><td id="2553"><a href="#2553">2553</a></td></tr
  5326. ><tr id="gr_svn7768_2554"
  5327. ><td id="2554"><a href="#2554">2554</a></td></tr
  5328. ><tr id="gr_svn7768_2555"
  5329. ><td id="2555"><a href="#2555">2555</a></td></tr
  5330. ><tr id="gr_svn7768_2556"
  5331. ><td id="2556"><a href="#2556">2556</a></td></tr
  5332. ><tr id="gr_svn7768_2557"
  5333. ><td id="2557"><a href="#2557">2557</a></td></tr
  5334. ><tr id="gr_svn7768_2558"
  5335. ><td id="2558"><a href="#2558">2558</a></td></tr
  5336. ><tr id="gr_svn7768_2559"
  5337. ><td id="2559"><a href="#2559">2559</a></td></tr
  5338. ><tr id="gr_svn7768_2560"
  5339. ><td id="2560"><a href="#2560">2560</a></td></tr
  5340. ><tr id="gr_svn7768_2561"
  5341. ><td id="2561"><a href="#2561">2561</a></td></tr
  5342. ><tr id="gr_svn7768_2562"
  5343. ><td id="2562"><a href="#2562">2562</a></td></tr
  5344. ><tr id="gr_svn7768_2563"
  5345. ><td id="2563"><a href="#2563">2563</a></td></tr
  5346. ><tr id="gr_svn7768_2564"
  5347. ><td id="2564"><a href="#2564">2564</a></td></tr
  5348. ><tr id="gr_svn7768_2565"
  5349. ><td id="2565"><a href="#2565">2565</a></td></tr
  5350. ><tr id="gr_svn7768_2566"
  5351. ><td id="2566"><a href="#2566">2566</a></td></tr
  5352. ><tr id="gr_svn7768_2567"
  5353. ><td id="2567"><a href="#2567">2567</a></td></tr
  5354. ><tr id="gr_svn7768_2568"
  5355. ><td id="2568"><a href="#2568">2568</a></td></tr
  5356. ><tr id="gr_svn7768_2569"
  5357. ><td id="2569"><a href="#2569">2569</a></td></tr
  5358. ><tr id="gr_svn7768_2570"
  5359. ><td id="2570"><a href="#2570">2570</a></td></tr
  5360. ><tr id="gr_svn7768_2571"
  5361. ><td id="2571"><a href="#2571">2571</a></td></tr
  5362. ><tr id="gr_svn7768_2572"
  5363. ><td id="2572"><a href="#2572">2572</a></td></tr
  5364. ><tr id="gr_svn7768_2573"
  5365. ><td id="2573"><a href="#2573">2573</a></td></tr
  5366. ><tr id="gr_svn7768_2574"
  5367. ><td id="2574"><a href="#2574">2574</a></td></tr
  5368. ><tr id="gr_svn7768_2575"
  5369. ><td id="2575"><a href="#2575">2575</a></td></tr
  5370. ><tr id="gr_svn7768_2576"
  5371. ><td id="2576"><a href="#2576">2576</a></td></tr
  5372. ><tr id="gr_svn7768_2577"
  5373. ><td id="2577"><a href="#2577">2577</a></td></tr
  5374. ><tr id="gr_svn7768_2578"
  5375. ><td id="2578"><a href="#2578">2578</a></td></tr
  5376. ><tr id="gr_svn7768_2579"
  5377. ><td id="2579"><a href="#2579">2579</a></td></tr
  5378. ><tr id="gr_svn7768_2580"
  5379. ><td id="2580"><a href="#2580">2580</a></td></tr
  5380. ><tr id="gr_svn7768_2581"
  5381. ><td id="2581"><a href="#2581">2581</a></td></tr
  5382. ><tr id="gr_svn7768_2582"
  5383. ><td id="2582"><a href="#2582">2582</a></td></tr
  5384. ><tr id="gr_svn7768_2583"
  5385. ><td id="2583"><a href="#2583">2583</a></td></tr
  5386. ><tr id="gr_svn7768_2584"
  5387. ><td id="2584"><a href="#2584">2584</a></td></tr
  5388. ><tr id="gr_svn7768_2585"
  5389. ><td id="2585"><a href="#2585">2585</a></td></tr
  5390. ><tr id="gr_svn7768_2586"
  5391. ><td id="2586"><a href="#2586">2586</a></td></tr
  5392. ><tr id="gr_svn7768_2587"
  5393. ><td id="2587"><a href="#2587">2587</a></td></tr
  5394. ><tr id="gr_svn7768_2588"
  5395. ><td id="2588"><a href="#2588">2588</a></td></tr
  5396. ><tr id="gr_svn7768_2589"
  5397. ><td id="2589"><a href="#2589">2589</a></td></tr
  5398. ><tr id="gr_svn7768_2590"
  5399. ><td id="2590"><a href="#2590">2590</a></td></tr
  5400. ><tr id="gr_svn7768_2591"
  5401. ><td id="2591"><a href="#2591">2591</a></td></tr
  5402. ><tr id="gr_svn7768_2592"
  5403. ><td id="2592"><a href="#2592">2592</a></td></tr
  5404. ><tr id="gr_svn7768_2593"
  5405. ><td id="2593"><a href="#2593">2593</a></td></tr
  5406. ><tr id="gr_svn7768_2594"
  5407. ><td id="2594"><a href="#2594">2594</a></td></tr
  5408. ><tr id="gr_svn7768_2595"
  5409. ><td id="2595"><a href="#2595">2595</a></td></tr
  5410. ><tr id="gr_svn7768_2596"
  5411. ><td id="2596"><a href="#2596">2596</a></td></tr
  5412. ><tr id="gr_svn7768_2597"
  5413. ><td id="2597"><a href="#2597">2597</a></td></tr
  5414. ><tr id="gr_svn7768_2598"
  5415. ><td id="2598"><a href="#2598">2598</a></td></tr
  5416. ><tr id="gr_svn7768_2599"
  5417. ><td id="2599"><a href="#2599">2599</a></td></tr
  5418. ><tr id="gr_svn7768_2600"
  5419. ><td id="2600"><a href="#2600">2600</a></td></tr
  5420. ><tr id="gr_svn7768_2601"
  5421. ><td id="2601"><a href="#2601">2601</a></td></tr
  5422. ><tr id="gr_svn7768_2602"
  5423. ><td id="2602"><a href="#2602">2602</a></td></tr
  5424. ><tr id="gr_svn7768_2603"
  5425. ><td id="2603"><a href="#2603">2603</a></td></tr
  5426. ><tr id="gr_svn7768_2604"
  5427. ><td id="2604"><a href="#2604">2604</a></td></tr
  5428. ><tr id="gr_svn7768_2605"
  5429. ><td id="2605"><a href="#2605">2605</a></td></tr
  5430. ><tr id="gr_svn7768_2606"
  5431. ><td id="2606"><a href="#2606">2606</a></td></tr
  5432. ><tr id="gr_svn7768_2607"
  5433. ><td id="2607"><a href="#2607">2607</a></td></tr
  5434. ><tr id="gr_svn7768_2608"
  5435. ><td id="2608"><a href="#2608">2608</a></td></tr
  5436. ><tr id="gr_svn7768_2609"
  5437. ><td id="2609"><a href="#2609">2609</a></td></tr
  5438. ><tr id="gr_svn7768_2610"
  5439. ><td id="2610"><a href="#2610">2610</a></td></tr
  5440. ><tr id="gr_svn7768_2611"
  5441. ><td id="2611"><a href="#2611">2611</a></td></tr
  5442. ><tr id="gr_svn7768_2612"
  5443. ><td id="2612"><a href="#2612">2612</a></td></tr
  5444. ><tr id="gr_svn7768_2613"
  5445. ><td id="2613"><a href="#2613">2613</a></td></tr
  5446. ><tr id="gr_svn7768_2614"
  5447. ><td id="2614"><a href="#2614">2614</a></td></tr
  5448. ><tr id="gr_svn7768_2615"
  5449. ><td id="2615"><a href="#2615">2615</a></td></tr
  5450. ><tr id="gr_svn7768_2616"
  5451. ><td id="2616"><a href="#2616">2616</a></td></tr
  5452. ><tr id="gr_svn7768_2617"
  5453. ><td id="2617"><a href="#2617">2617</a></td></tr
  5454. ><tr id="gr_svn7768_2618"
  5455. ><td id="2618"><a href="#2618">2618</a></td></tr
  5456. ><tr id="gr_svn7768_2619"
  5457. ><td id="2619"><a href="#2619">2619</a></td></tr
  5458. ><tr id="gr_svn7768_2620"
  5459. ><td id="2620"><a href="#2620">2620</a></td></tr
  5460. ><tr id="gr_svn7768_2621"
  5461. ><td id="2621"><a href="#2621">2621</a></td></tr
  5462. ><tr id="gr_svn7768_2622"
  5463. ><td id="2622"><a href="#2622">2622</a></td></tr
  5464. ><tr id="gr_svn7768_2623"
  5465. ><td id="2623"><a href="#2623">2623</a></td></tr
  5466. ><tr id="gr_svn7768_2624"
  5467. ><td id="2624"><a href="#2624">2624</a></td></tr
  5468. ><tr id="gr_svn7768_2625"
  5469. ><td id="2625"><a href="#2625">2625</a></td></tr
  5470. ><tr id="gr_svn7768_2626"
  5471. ><td id="2626"><a href="#2626">2626</a></td></tr
  5472. ><tr id="gr_svn7768_2627"
  5473. ><td id="2627"><a href="#2627">2627</a></td></tr
  5474. ><tr id="gr_svn7768_2628"
  5475. ><td id="2628"><a href="#2628">2628</a></td></tr
  5476. ><tr id="gr_svn7768_2629"
  5477. ><td id="2629"><a href="#2629">2629</a></td></tr
  5478. ><tr id="gr_svn7768_2630"
  5479. ><td id="2630"><a href="#2630">2630</a></td></tr
  5480. ><tr id="gr_svn7768_2631"
  5481. ><td id="2631"><a href="#2631">2631</a></td></tr
  5482. ><tr id="gr_svn7768_2632"
  5483. ><td id="2632"><a href="#2632">2632</a></td></tr
  5484. ><tr id="gr_svn7768_2633"
  5485. ><td id="2633"><a href="#2633">2633</a></td></tr
  5486. ><tr id="gr_svn7768_2634"
  5487. ><td id="2634"><a href="#2634">2634</a></td></tr
  5488. ><tr id="gr_svn7768_2635"
  5489. ><td id="2635"><a href="#2635">2635</a></td></tr
  5490. ><tr id="gr_svn7768_2636"
  5491. ><td id="2636"><a href="#2636">2636</a></td></tr
  5492. ><tr id="gr_svn7768_2637"
  5493. ><td id="2637"><a href="#2637">2637</a></td></tr
  5494. ><tr id="gr_svn7768_2638"
  5495. ><td id="2638"><a href="#2638">2638</a></td></tr
  5496. ><tr id="gr_svn7768_2639"
  5497. ><td id="2639"><a href="#2639">2639</a></td></tr
  5498. ><tr id="gr_svn7768_2640"
  5499. ><td id="2640"><a href="#2640">2640</a></td></tr
  5500. ><tr id="gr_svn7768_2641"
  5501. ><td id="2641"><a href="#2641">2641</a></td></tr
  5502. ><tr id="gr_svn7768_2642"
  5503. ><td id="2642"><a href="#2642">2642</a></td></tr
  5504. ><tr id="gr_svn7768_2643"
  5505. ><td id="2643"><a href="#2643">2643</a></td></tr
  5506. ><tr id="gr_svn7768_2644"
  5507. ><td id="2644"><a href="#2644">2644</a></td></tr
  5508. ><tr id="gr_svn7768_2645"
  5509. ><td id="2645"><a href="#2645">2645</a></td></tr
  5510. ><tr id="gr_svn7768_2646"
  5511. ><td id="2646"><a href="#2646">2646</a></td></tr
  5512. ><tr id="gr_svn7768_2647"
  5513. ><td id="2647"><a href="#2647">2647</a></td></tr
  5514. ><tr id="gr_svn7768_2648"
  5515. ><td id="2648"><a href="#2648">2648</a></td></tr
  5516. ><tr id="gr_svn7768_2649"
  5517. ><td id="2649"><a href="#2649">2649</a></td></tr
  5518. ><tr id="gr_svn7768_2650"
  5519. ><td id="2650"><a href="#2650">2650</a></td></tr
  5520. ><tr id="gr_svn7768_2651"
  5521. ><td id="2651"><a href="#2651">2651</a></td></tr
  5522. ><tr id="gr_svn7768_2652"
  5523. ><td id="2652"><a href="#2652">2652</a></td></tr
  5524. ><tr id="gr_svn7768_2653"
  5525. ><td id="2653"><a href="#2653">2653</a></td></tr
  5526. ><tr id="gr_svn7768_2654"
  5527. ><td id="2654"><a href="#2654">2654</a></td></tr
  5528. ><tr id="gr_svn7768_2655"
  5529. ><td id="2655"><a href="#2655">2655</a></td></tr
  5530. ><tr id="gr_svn7768_2656"
  5531. ><td id="2656"><a href="#2656">2656</a></td></tr
  5532. ><tr id="gr_svn7768_2657"
  5533. ><td id="2657"><a href="#2657">2657</a></td></tr
  5534. ><tr id="gr_svn7768_2658"
  5535. ><td id="2658"><a href="#2658">2658</a></td></tr
  5536. ><tr id="gr_svn7768_2659"
  5537. ><td id="2659"><a href="#2659">2659</a></td></tr
  5538. ><tr id="gr_svn7768_2660"
  5539. ><td id="2660"><a href="#2660">2660</a></td></tr
  5540. ><tr id="gr_svn7768_2661"
  5541. ><td id="2661"><a href="#2661">2661</a></td></tr
  5542. ><tr id="gr_svn7768_2662"
  5543. ><td id="2662"><a href="#2662">2662</a></td></tr
  5544. ><tr id="gr_svn7768_2663"
  5545. ><td id="2663"><a href="#2663">2663</a></td></tr
  5546. ><tr id="gr_svn7768_2664"
  5547. ><td id="2664"><a href="#2664">2664</a></td></tr
  5548. ><tr id="gr_svn7768_2665"
  5549. ><td id="2665"><a href="#2665">2665</a></td></tr
  5550. ><tr id="gr_svn7768_2666"
  5551. ><td id="2666"><a href="#2666">2666</a></td></tr
  5552. ><tr id="gr_svn7768_2667"
  5553. ><td id="2667"><a href="#2667">2667</a></td></tr
  5554. ><tr id="gr_svn7768_2668"
  5555. ><td id="2668"><a href="#2668">2668</a></td></tr
  5556. ><tr id="gr_svn7768_2669"
  5557. ><td id="2669"><a href="#2669">2669</a></td></tr
  5558. ><tr id="gr_svn7768_2670"
  5559. ><td id="2670"><a href="#2670">2670</a></td></tr
  5560. ><tr id="gr_svn7768_2671"
  5561. ><td id="2671"><a href="#2671">2671</a></td></tr
  5562. ><tr id="gr_svn7768_2672"
  5563. ><td id="2672"><a href="#2672">2672</a></td></tr
  5564. ><tr id="gr_svn7768_2673"
  5565. ><td id="2673"><a href="#2673">2673</a></td></tr
  5566. ><tr id="gr_svn7768_2674"
  5567. ><td id="2674"><a href="#2674">2674</a></td></tr
  5568. ><tr id="gr_svn7768_2675"
  5569. ><td id="2675"><a href="#2675">2675</a></td></tr
  5570. ><tr id="gr_svn7768_2676"
  5571. ><td id="2676"><a href="#2676">2676</a></td></tr
  5572. ><tr id="gr_svn7768_2677"
  5573. ><td id="2677"><a href="#2677">2677</a></td></tr
  5574. ><tr id="gr_svn7768_2678"
  5575. ><td id="2678"><a href="#2678">2678</a></td></tr
  5576. ><tr id="gr_svn7768_2679"
  5577. ><td id="2679"><a href="#2679">2679</a></td></tr
  5578. ><tr id="gr_svn7768_2680"
  5579. ><td id="2680"><a href="#2680">2680</a></td></tr
  5580. ><tr id="gr_svn7768_2681"
  5581. ><td id="2681"><a href="#2681">2681</a></td></tr
  5582. ><tr id="gr_svn7768_2682"
  5583. ><td id="2682"><a href="#2682">2682</a></td></tr
  5584. ><tr id="gr_svn7768_2683"
  5585. ><td id="2683"><a href="#2683">2683</a></td></tr
  5586. ><tr id="gr_svn7768_2684"
  5587. ><td id="2684"><a href="#2684">2684</a></td></tr
  5588. ><tr id="gr_svn7768_2685"
  5589. ><td id="2685"><a href="#2685">2685</a></td></tr
  5590. ><tr id="gr_svn7768_2686"
  5591. ><td id="2686"><a href="#2686">2686</a></td></tr
  5592. ><tr id="gr_svn7768_2687"
  5593. ><td id="2687"><a href="#2687">2687</a></td></tr
  5594. ><tr id="gr_svn7768_2688"
  5595. ><td id="2688"><a href="#2688">2688</a></td></tr
  5596. ><tr id="gr_svn7768_2689"
  5597. ><td id="2689"><a href="#2689">2689</a></td></tr
  5598. ><tr id="gr_svn7768_2690"
  5599. ><td id="2690"><a href="#2690">2690</a></td></tr
  5600. ><tr id="gr_svn7768_2691"
  5601. ><td id="2691"><a href="#2691">2691</a></td></tr
  5602. ><tr id="gr_svn7768_2692"
  5603. ><td id="2692"><a href="#2692">2692</a></td></tr
  5604. ><tr id="gr_svn7768_2693"
  5605. ><td id="2693"><a href="#2693">2693</a></td></tr
  5606. ><tr id="gr_svn7768_2694"
  5607. ><td id="2694"><a href="#2694">2694</a></td></tr
  5608. ><tr id="gr_svn7768_2695"
  5609. ><td id="2695"><a href="#2695">2695</a></td></tr
  5610. ><tr id="gr_svn7768_2696"
  5611. ><td id="2696"><a href="#2696">2696</a></td></tr
  5612. ><tr id="gr_svn7768_2697"
  5613. ><td id="2697"><a href="#2697">2697</a></td></tr
  5614. ><tr id="gr_svn7768_2698"
  5615. ><td id="2698"><a href="#2698">2698</a></td></tr
  5616. ><tr id="gr_svn7768_2699"
  5617. ><td id="2699"><a href="#2699">2699</a></td></tr
  5618. ><tr id="gr_svn7768_2700"
  5619. ><td id="2700"><a href="#2700">2700</a></td></tr
  5620. ><tr id="gr_svn7768_2701"
  5621. ><td id="2701"><a href="#2701">2701</a></td></tr
  5622. ><tr id="gr_svn7768_2702"
  5623. ><td id="2702"><a href="#2702">2702</a></td></tr
  5624. ><tr id="gr_svn7768_2703"
  5625. ><td id="2703"><a href="#2703">2703</a></td></tr
  5626. ><tr id="gr_svn7768_2704"
  5627. ><td id="2704"><a href="#2704">2704</a></td></tr
  5628. ><tr id="gr_svn7768_2705"
  5629. ><td id="2705"><a href="#2705">2705</a></td></tr
  5630. ><tr id="gr_svn7768_2706"
  5631. ><td id="2706"><a href="#2706">2706</a></td></tr
  5632. ><tr id="gr_svn7768_2707"
  5633. ><td id="2707"><a href="#2707">2707</a></td></tr
  5634. ><tr id="gr_svn7768_2708"
  5635. ><td id="2708"><a href="#2708">2708</a></td></tr
  5636. ><tr id="gr_svn7768_2709"
  5637. ><td id="2709"><a href="#2709">2709</a></td></tr
  5638. ><tr id="gr_svn7768_2710"
  5639. ><td id="2710"><a href="#2710">2710</a></td></tr
  5640. ><tr id="gr_svn7768_2711"
  5641. ><td id="2711"><a href="#2711">2711</a></td></tr
  5642. ><tr id="gr_svn7768_2712"
  5643. ><td id="2712"><a href="#2712">2712</a></td></tr
  5644. ><tr id="gr_svn7768_2713"
  5645. ><td id="2713"><a href="#2713">2713</a></td></tr
  5646. ><tr id="gr_svn7768_2714"
  5647. ><td id="2714"><a href="#2714">2714</a></td></tr
  5648. ><tr id="gr_svn7768_2715"
  5649. ><td id="2715"><a href="#2715">2715</a></td></tr
  5650. ><tr id="gr_svn7768_2716"
  5651. ><td id="2716"><a href="#2716">2716</a></td></tr
  5652. ><tr id="gr_svn7768_2717"
  5653. ><td id="2717"><a href="#2717">2717</a></td></tr
  5654. ><tr id="gr_svn7768_2718"
  5655. ><td id="2718"><a href="#2718">2718</a></td></tr
  5656. ><tr id="gr_svn7768_2719"
  5657. ><td id="2719"><a href="#2719">2719</a></td></tr
  5658. ><tr id="gr_svn7768_2720"
  5659. ><td id="2720"><a href="#2720">2720</a></td></tr
  5660. ><tr id="gr_svn7768_2721"
  5661. ><td id="2721"><a href="#2721">2721</a></td></tr
  5662. ><tr id="gr_svn7768_2722"
  5663. ><td id="2722"><a href="#2722">2722</a></td></tr
  5664. ><tr id="gr_svn7768_2723"
  5665. ><td id="2723"><a href="#2723">2723</a></td></tr
  5666. ><tr id="gr_svn7768_2724"
  5667. ><td id="2724"><a href="#2724">2724</a></td></tr
  5668. ><tr id="gr_svn7768_2725"
  5669. ><td id="2725"><a href="#2725">2725</a></td></tr
  5670. ><tr id="gr_svn7768_2726"
  5671. ><td id="2726"><a href="#2726">2726</a></td></tr
  5672. ><tr id="gr_svn7768_2727"
  5673. ><td id="2727"><a href="#2727">2727</a></td></tr
  5674. ><tr id="gr_svn7768_2728"
  5675. ><td id="2728"><a href="#2728">2728</a></td></tr
  5676. ><tr id="gr_svn7768_2729"
  5677. ><td id="2729"><a href="#2729">2729</a></td></tr
  5678. ><tr id="gr_svn7768_2730"
  5679. ><td id="2730"><a href="#2730">2730</a></td></tr
  5680. ><tr id="gr_svn7768_2731"
  5681. ><td id="2731"><a href="#2731">2731</a></td></tr
  5682. ><tr id="gr_svn7768_2732"
  5683. ><td id="2732"><a href="#2732">2732</a></td></tr
  5684. ><tr id="gr_svn7768_2733"
  5685. ><td id="2733"><a href="#2733">2733</a></td></tr
  5686. ><tr id="gr_svn7768_2734"
  5687. ><td id="2734"><a href="#2734">2734</a></td></tr
  5688. ><tr id="gr_svn7768_2735"
  5689. ><td id="2735"><a href="#2735">2735</a></td></tr
  5690. ><tr id="gr_svn7768_2736"
  5691. ><td id="2736"><a href="#2736">2736</a></td></tr
  5692. ><tr id="gr_svn7768_2737"
  5693. ><td id="2737"><a href="#2737">2737</a></td></tr
  5694. ><tr id="gr_svn7768_2738"
  5695. ><td id="2738"><a href="#2738">2738</a></td></tr
  5696. ><tr id="gr_svn7768_2739"
  5697. ><td id="2739"><a href="#2739">2739</a></td></tr
  5698. ><tr id="gr_svn7768_2740"
  5699. ><td id="2740"><a href="#2740">2740</a></td></tr
  5700. ><tr id="gr_svn7768_2741"
  5701. ><td id="2741"><a href="#2741">2741</a></td></tr
  5702. ><tr id="gr_svn7768_2742"
  5703. ><td id="2742"><a href="#2742">2742</a></td></tr
  5704. ><tr id="gr_svn7768_2743"
  5705. ><td id="2743"><a href="#2743">2743</a></td></tr
  5706. ><tr id="gr_svn7768_2744"
  5707. ><td id="2744"><a href="#2744">2744</a></td></tr
  5708. ><tr id="gr_svn7768_2745"
  5709. ><td id="2745"><a href="#2745">2745</a></td></tr
  5710. ><tr id="gr_svn7768_2746"
  5711. ><td id="2746"><a href="#2746">2746</a></td></tr
  5712. ><tr id="gr_svn7768_2747"
  5713. ><td id="2747"><a href="#2747">2747</a></td></tr
  5714. ><tr id="gr_svn7768_2748"
  5715. ><td id="2748"><a href="#2748">2748</a></td></tr
  5716. ><tr id="gr_svn7768_2749"
  5717. ><td id="2749"><a href="#2749">2749</a></td></tr
  5718. ><tr id="gr_svn7768_2750"
  5719. ><td id="2750"><a href="#2750">2750</a></td></tr
  5720. ><tr id="gr_svn7768_2751"
  5721. ><td id="2751"><a href="#2751">2751</a></td></tr
  5722. ><tr id="gr_svn7768_2752"
  5723. ><td id="2752"><a href="#2752">2752</a></td></tr
  5724. ><tr id="gr_svn7768_2753"
  5725. ><td id="2753"><a href="#2753">2753</a></td></tr
  5726. ><tr id="gr_svn7768_2754"
  5727. ><td id="2754"><a href="#2754">2754</a></td></tr
  5728. ><tr id="gr_svn7768_2755"
  5729. ><td id="2755"><a href="#2755">2755</a></td></tr
  5730. ><tr id="gr_svn7768_2756"
  5731. ><td id="2756"><a href="#2756">2756</a></td></tr
  5732. ><tr id="gr_svn7768_2757"
  5733. ><td id="2757"><a href="#2757">2757</a></td></tr
  5734. ><tr id="gr_svn7768_2758"
  5735. ><td id="2758"><a href="#2758">2758</a></td></tr
  5736. ><tr id="gr_svn7768_2759"
  5737. ><td id="2759"><a href="#2759">2759</a></td></tr
  5738. ><tr id="gr_svn7768_2760"
  5739. ><td id="2760"><a href="#2760">2760</a></td></tr
  5740. ><tr id="gr_svn7768_2761"
  5741. ><td id="2761"><a href="#2761">2761</a></td></tr
  5742. ><tr id="gr_svn7768_2762"
  5743. ><td id="2762"><a href="#2762">2762</a></td></tr
  5744. ><tr id="gr_svn7768_2763"
  5745. ><td id="2763"><a href="#2763">2763</a></td></tr
  5746. ><tr id="gr_svn7768_2764"
  5747. ><td id="2764"><a href="#2764">2764</a></td></tr
  5748. ><tr id="gr_svn7768_2765"
  5749. ><td id="2765"><a href="#2765">2765</a></td></tr
  5750. ><tr id="gr_svn7768_2766"
  5751. ><td id="2766"><a href="#2766">2766</a></td></tr
  5752. ><tr id="gr_svn7768_2767"
  5753. ><td id="2767"><a href="#2767">2767</a></td></tr
  5754. ><tr id="gr_svn7768_2768"
  5755. ><td id="2768"><a href="#2768">2768</a></td></tr
  5756. ><tr id="gr_svn7768_2769"
  5757. ><td id="2769"><a href="#2769">2769</a></td></tr
  5758. ><tr id="gr_svn7768_2770"
  5759. ><td id="2770"><a href="#2770">2770</a></td></tr
  5760. ><tr id="gr_svn7768_2771"
  5761. ><td id="2771"><a href="#2771">2771</a></td></tr
  5762. ><tr id="gr_svn7768_2772"
  5763. ><td id="2772"><a href="#2772">2772</a></td></tr
  5764. ><tr id="gr_svn7768_2773"
  5765. ><td id="2773"><a href="#2773">2773</a></td></tr
  5766. ><tr id="gr_svn7768_2774"
  5767. ><td id="2774"><a href="#2774">2774</a></td></tr
  5768. ><tr id="gr_svn7768_2775"
  5769. ><td id="2775"><a href="#2775">2775</a></td></tr
  5770. ><tr id="gr_svn7768_2776"
  5771. ><td id="2776"><a href="#2776">2776</a></td></tr
  5772. ><tr id="gr_svn7768_2777"
  5773. ><td id="2777"><a href="#2777">2777</a></td></tr
  5774. ><tr id="gr_svn7768_2778"
  5775. ><td id="2778"><a href="#2778">2778</a></td></tr
  5776. ><tr id="gr_svn7768_2779"
  5777. ><td id="2779"><a href="#2779">2779</a></td></tr
  5778. ><tr id="gr_svn7768_2780"
  5779. ><td id="2780"><a href="#2780">2780</a></td></tr
  5780. ><tr id="gr_svn7768_2781"
  5781. ><td id="2781"><a href="#2781">2781</a></td></tr
  5782. ><tr id="gr_svn7768_2782"
  5783. ><td id="2782"><a href="#2782">2782</a></td></tr
  5784. ><tr id="gr_svn7768_2783"
  5785. ><td id="2783"><a href="#2783">2783</a></td></tr
  5786. ><tr id="gr_svn7768_2784"
  5787. ><td id="2784"><a href="#2784">2784</a></td></tr
  5788. ><tr id="gr_svn7768_2785"
  5789. ><td id="2785"><a href="#2785">2785</a></td></tr
  5790. ><tr id="gr_svn7768_2786"
  5791. ><td id="2786"><a href="#2786">2786</a></td></tr
  5792. ><tr id="gr_svn7768_2787"
  5793. ><td id="2787"><a href="#2787">2787</a></td></tr
  5794. ><tr id="gr_svn7768_2788"
  5795. ><td id="2788"><a href="#2788">2788</a></td></tr
  5796. ><tr id="gr_svn7768_2789"
  5797. ><td id="2789"><a href="#2789">2789</a></td></tr
  5798. ><tr id="gr_svn7768_2790"
  5799. ><td id="2790"><a href="#2790">2790</a></td></tr
  5800. ><tr id="gr_svn7768_2791"
  5801. ><td id="2791"><a href="#2791">2791</a></td></tr
  5802. ><tr id="gr_svn7768_2792"
  5803. ><td id="2792"><a href="#2792">2792</a></td></tr
  5804. ><tr id="gr_svn7768_2793"
  5805. ><td id="2793"><a href="#2793">2793</a></td></tr
  5806. ><tr id="gr_svn7768_2794"
  5807. ><td id="2794"><a href="#2794">2794</a></td></tr
  5808. ><tr id="gr_svn7768_2795"
  5809. ><td id="2795"><a href="#2795">2795</a></td></tr
  5810. ><tr id="gr_svn7768_2796"
  5811. ><td id="2796"><a href="#2796">2796</a></td></tr
  5812. ><tr id="gr_svn7768_2797"
  5813. ><td id="2797"><a href="#2797">2797</a></td></tr
  5814. ><tr id="gr_svn7768_2798"
  5815. ><td id="2798"><a href="#2798">2798</a></td></tr
  5816. ><tr id="gr_svn7768_2799"
  5817. ><td id="2799"><a href="#2799">2799</a></td></tr
  5818. ><tr id="gr_svn7768_2800"
  5819. ><td id="2800"><a href="#2800">2800</a></td></tr
  5820. ><tr id="gr_svn7768_2801"
  5821. ><td id="2801"><a href="#2801">2801</a></td></tr
  5822. ><tr id="gr_svn7768_2802"
  5823. ><td id="2802"><a href="#2802">2802</a></td></tr
  5824. ><tr id="gr_svn7768_2803"
  5825. ><td id="2803"><a href="#2803">2803</a></td></tr
  5826. ><tr id="gr_svn7768_2804"
  5827. ><td id="2804"><a href="#2804">2804</a></td></tr
  5828. ><tr id="gr_svn7768_2805"
  5829. ><td id="2805"><a href="#2805">2805</a></td></tr
  5830. ><tr id="gr_svn7768_2806"
  5831. ><td id="2806"><a href="#2806">2806</a></td></tr
  5832. ><tr id="gr_svn7768_2807"
  5833. ><td id="2807"><a href="#2807">2807</a></td></tr
  5834. ><tr id="gr_svn7768_2808"
  5835. ><td id="2808"><a href="#2808">2808</a></td></tr
  5836. ><tr id="gr_svn7768_2809"
  5837. ><td id="2809"><a href="#2809">2809</a></td></tr
  5838. ><tr id="gr_svn7768_2810"
  5839. ><td id="2810"><a href="#2810">2810</a></td></tr
  5840. ><tr id="gr_svn7768_2811"
  5841. ><td id="2811"><a href="#2811">2811</a></td></tr
  5842. ><tr id="gr_svn7768_2812"
  5843. ><td id="2812"><a href="#2812">2812</a></td></tr
  5844. ><tr id="gr_svn7768_2813"
  5845. ><td id="2813"><a href="#2813">2813</a></td></tr
  5846. ><tr id="gr_svn7768_2814"
  5847. ><td id="2814"><a href="#2814">2814</a></td></tr
  5848. ><tr id="gr_svn7768_2815"
  5849. ><td id="2815"><a href="#2815">2815</a></td></tr
  5850. ><tr id="gr_svn7768_2816"
  5851. ><td id="2816"><a href="#2816">2816</a></td></tr
  5852. ><tr id="gr_svn7768_2817"
  5853. ><td id="2817"><a href="#2817">2817</a></td></tr
  5854. ><tr id="gr_svn7768_2818"
  5855. ><td id="2818"><a href="#2818">2818</a></td></tr
  5856. ><tr id="gr_svn7768_2819"
  5857. ><td id="2819"><a href="#2819">2819</a></td></tr
  5858. ><tr id="gr_svn7768_2820"
  5859. ><td id="2820"><a href="#2820">2820</a></td></tr
  5860. ><tr id="gr_svn7768_2821"
  5861. ><td id="2821"><a href="#2821">2821</a></td></tr
  5862. ><tr id="gr_svn7768_2822"
  5863. ><td id="2822"><a href="#2822">2822</a></td></tr
  5864. ><tr id="gr_svn7768_2823"
  5865. ><td id="2823"><a href="#2823">2823</a></td></tr
  5866. ><tr id="gr_svn7768_2824"
  5867. ><td id="2824"><a href="#2824">2824</a></td></tr
  5868. ><tr id="gr_svn7768_2825"
  5869. ><td id="2825"><a href="#2825">2825</a></td></tr
  5870. ><tr id="gr_svn7768_2826"
  5871. ><td id="2826"><a href="#2826">2826</a></td></tr
  5872. ><tr id="gr_svn7768_2827"
  5873. ><td id="2827"><a href="#2827">2827</a></td></tr
  5874. ><tr id="gr_svn7768_2828"
  5875. ><td id="2828"><a href="#2828">2828</a></td></tr
  5876. ><tr id="gr_svn7768_2829"
  5877. ><td id="2829"><a href="#2829">2829</a></td></tr
  5878. ><tr id="gr_svn7768_2830"
  5879. ><td id="2830"><a href="#2830">2830</a></td></tr
  5880. ><tr id="gr_svn7768_2831"
  5881. ><td id="2831"><a href="#2831">2831</a></td></tr
  5882. ><tr id="gr_svn7768_2832"
  5883. ><td id="2832"><a href="#2832">2832</a></td></tr
  5884. ><tr id="gr_svn7768_2833"
  5885. ><td id="2833"><a href="#2833">2833</a></td></tr
  5886. ><tr id="gr_svn7768_2834"
  5887. ><td id="2834"><a href="#2834">2834</a></td></tr
  5888. ><tr id="gr_svn7768_2835"
  5889. ><td id="2835"><a href="#2835">2835</a></td></tr
  5890. ><tr id="gr_svn7768_2836"
  5891. ><td id="2836"><a href="#2836">2836</a></td></tr
  5892. ><tr id="gr_svn7768_2837"
  5893. ><td id="2837"><a href="#2837">2837</a></td></tr
  5894. ><tr id="gr_svn7768_2838"
  5895. ><td id="2838"><a href="#2838">2838</a></td></tr
  5896. ><tr id="gr_svn7768_2839"
  5897. ><td id="2839"><a href="#2839">2839</a></td></tr
  5898. ><tr id="gr_svn7768_2840"
  5899. ><td id="2840"><a href="#2840">2840</a></td></tr
  5900. ><tr id="gr_svn7768_2841"
  5901. ><td id="2841"><a href="#2841">2841</a></td></tr
  5902. ><tr id="gr_svn7768_2842"
  5903. ><td id="2842"><a href="#2842">2842</a></td></tr
  5904. ><tr id="gr_svn7768_2843"
  5905. ><td id="2843"><a href="#2843">2843</a></td></tr
  5906. ><tr id="gr_svn7768_2844"
  5907. ><td id="2844"><a href="#2844">2844</a></td></tr
  5908. ><tr id="gr_svn7768_2845"
  5909. ><td id="2845"><a href="#2845">2845</a></td></tr
  5910. ><tr id="gr_svn7768_2846"
  5911. ><td id="2846"><a href="#2846">2846</a></td></tr
  5912. ><tr id="gr_svn7768_2847"
  5913. ><td id="2847"><a href="#2847">2847</a></td></tr
  5914. ><tr id="gr_svn7768_2848"
  5915. ><td id="2848"><a href="#2848">2848</a></td></tr
  5916. ><tr id="gr_svn7768_2849"
  5917. ><td id="2849"><a href="#2849">2849</a></td></tr
  5918. ><tr id="gr_svn7768_2850"
  5919. ><td id="2850"><a href="#2850">2850</a></td></tr
  5920. ><tr id="gr_svn7768_2851"
  5921. ><td id="2851"><a href="#2851">2851</a></td></tr
  5922. ><tr id="gr_svn7768_2852"
  5923. ><td id="2852"><a href="#2852">2852</a></td></tr
  5924. ><tr id="gr_svn7768_2853"
  5925. ><td id="2853"><a href="#2853">2853</a></td></tr
  5926. ><tr id="gr_svn7768_2854"
  5927. ><td id="2854"><a href="#2854">2854</a></td></tr
  5928. ><tr id="gr_svn7768_2855"
  5929. ><td id="2855"><a href="#2855">2855</a></td></tr
  5930. ><tr id="gr_svn7768_2856"
  5931. ><td id="2856"><a href="#2856">2856</a></td></tr
  5932. ><tr id="gr_svn7768_2857"
  5933. ><td id="2857"><a href="#2857">2857</a></td></tr
  5934. ><tr id="gr_svn7768_2858"
  5935. ><td id="2858"><a href="#2858">2858</a></td></tr
  5936. ><tr id="gr_svn7768_2859"
  5937. ><td id="2859"><a href="#2859">2859</a></td></tr
  5938. ><tr id="gr_svn7768_2860"
  5939. ><td id="2860"><a href="#2860">2860</a></td></tr
  5940. ><tr id="gr_svn7768_2861"
  5941. ><td id="2861"><a href="#2861">2861</a></td></tr
  5942. ><tr id="gr_svn7768_2862"
  5943. ><td id="2862"><a href="#2862">2862</a></td></tr
  5944. ><tr id="gr_svn7768_2863"
  5945. ><td id="2863"><a href="#2863">2863</a></td></tr
  5946. ><tr id="gr_svn7768_2864"
  5947. ><td id="2864"><a href="#2864">2864</a></td></tr
  5948. ><tr id="gr_svn7768_2865"
  5949. ><td id="2865"><a href="#2865">2865</a></td></tr
  5950. ><tr id="gr_svn7768_2866"
  5951. ><td id="2866"><a href="#2866">2866</a></td></tr
  5952. ><tr id="gr_svn7768_2867"
  5953. ><td id="2867"><a href="#2867">2867</a></td></tr
  5954. ><tr id="gr_svn7768_2868"
  5955. ><td id="2868"><a href="#2868">2868</a></td></tr
  5956. ><tr id="gr_svn7768_2869"
  5957. ><td id="2869"><a href="#2869">2869</a></td></tr
  5958. ><tr id="gr_svn7768_2870"
  5959. ><td id="2870"><a href="#2870">2870</a></td></tr
  5960. ><tr id="gr_svn7768_2871"
  5961. ><td id="2871"><a href="#2871">2871</a></td></tr
  5962. ><tr id="gr_svn7768_2872"
  5963. ><td id="2872"><a href="#2872">2872</a></td></tr
  5964. ><tr id="gr_svn7768_2873"
  5965. ><td id="2873"><a href="#2873">2873</a></td></tr
  5966. ><tr id="gr_svn7768_2874"
  5967. ><td id="2874"><a href="#2874">2874</a></td></tr
  5968. ><tr id="gr_svn7768_2875"
  5969. ><td id="2875"><a href="#2875">2875</a></td></tr
  5970. ><tr id="gr_svn7768_2876"
  5971. ><td id="2876"><a href="#2876">2876</a></td></tr
  5972. ><tr id="gr_svn7768_2877"
  5973. ><td id="2877"><a href="#2877">2877</a></td></tr
  5974. ><tr id="gr_svn7768_2878"
  5975. ><td id="2878"><a href="#2878">2878</a></td></tr
  5976. ><tr id="gr_svn7768_2879"
  5977. ><td id="2879"><a href="#2879">2879</a></td></tr
  5978. ><tr id="gr_svn7768_2880"
  5979. ><td id="2880"><a href="#2880">2880</a></td></tr
  5980. ><tr id="gr_svn7768_2881"
  5981. ><td id="2881"><a href="#2881">2881</a></td></tr
  5982. ><tr id="gr_svn7768_2882"
  5983. ><td id="2882"><a href="#2882">2882</a></td></tr
  5984. ><tr id="gr_svn7768_2883"
  5985. ><td id="2883"><a href="#2883">2883</a></td></tr
  5986. ><tr id="gr_svn7768_2884"
  5987. ><td id="2884"><a href="#2884">2884</a></td></tr
  5988. ><tr id="gr_svn7768_2885"
  5989. ><td id="2885"><a href="#2885">2885</a></td></tr
  5990. ><tr id="gr_svn7768_2886"
  5991. ><td id="2886"><a href="#2886">2886</a></td></tr
  5992. ><tr id="gr_svn7768_2887"
  5993. ><td id="2887"><a href="#2887">2887</a></td></tr
  5994. ><tr id="gr_svn7768_2888"
  5995. ><td id="2888"><a href="#2888">2888</a></td></tr
  5996. ><tr id="gr_svn7768_2889"
  5997. ><td id="2889"><a href="#2889">2889</a></td></tr
  5998. ><tr id="gr_svn7768_2890"
  5999. ><td id="2890"><a href="#2890">2890</a></td></tr
  6000. ><tr id="gr_svn7768_2891"
  6001. ><td id="2891"><a href="#2891">2891</a></td></tr
  6002. ><tr id="gr_svn7768_2892"
  6003. ><td id="2892"><a href="#2892">2892</a></td></tr
  6004. ><tr id="gr_svn7768_2893"
  6005. ><td id="2893"><a href="#2893">2893</a></td></tr
  6006. ><tr id="gr_svn7768_2894"
  6007. ><td id="2894"><a href="#2894">2894</a></td></tr
  6008. ><tr id="gr_svn7768_2895"
  6009. ><td id="2895"><a href="#2895">2895</a></td></tr
  6010. ><tr id="gr_svn7768_2896"
  6011. ><td id="2896"><a href="#2896">2896</a></td></tr
  6012. ><tr id="gr_svn7768_2897"
  6013. ><td id="2897"><a href="#2897">2897</a></td></tr
  6014. ><tr id="gr_svn7768_2898"
  6015. ><td id="2898"><a href="#2898">2898</a></td></tr
  6016. ></table></pre>
  6017. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  6018. </td>
  6019. <td id="lines">
  6020. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  6021. <pre class="prettyprint lang-java"><table id="src_table_0"><tr
  6022. id=sl_svn7768_1
  6023. ><td class="source">/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */<br></td></tr
  6024. ><tr
  6025. id=sl_svn7768_2
  6026. ><td class="source"><br></td></tr
  6027. ><tr
  6028. id=sl_svn7768_3
  6029. ><td class="source">/*<br></td></tr
  6030. ><tr
  6031. id=sl_svn7768_4
  6032. ><td class="source"> Part of the Processing project - http://processing.org<br></td></tr
  6033. ><tr
  6034. id=sl_svn7768_5
  6035. ><td class="source"><br></td></tr
  6036. ><tr
  6037. id=sl_svn7768_6
  6038. ><td class="source"> Copyright (c) 2004-08 Ben Fry and Casey Reas<br></td></tr
  6039. ><tr
  6040. id=sl_svn7768_7
  6041. ><td class="source"> Copyright (c) 2001-04 Massachusetts Institute of Technology<br></td></tr
  6042. ><tr
  6043. id=sl_svn7768_8
  6044. ><td class="source"><br></td></tr
  6045. ><tr
  6046. id=sl_svn7768_9
  6047. ><td class="source"> This library is free software; you can redistribute it and/or<br></td></tr
  6048. ><tr
  6049. id=sl_svn7768_10
  6050. ><td class="source"> modify it under the terms of the GNU Lesser General Public<br></td></tr
  6051. ><tr
  6052. id=sl_svn7768_11
  6053. ><td class="source"> License as published by the Free Software Foundation; either<br></td></tr
  6054. ><tr
  6055. id=sl_svn7768_12
  6056. ><td class="source"> version 2.1 of the License, or (at your option) any later version.<br></td></tr
  6057. ><tr
  6058. id=sl_svn7768_13
  6059. ><td class="source"><br></td></tr
  6060. ><tr
  6061. id=sl_svn7768_14
  6062. ><td class="source"> This library is distributed in the hope that it will be useful,<br></td></tr
  6063. ><tr
  6064. id=sl_svn7768_15
  6065. ><td class="source"> but WITHOUT ANY WARRANTY; without even the implied warranty of<br></td></tr
  6066. ><tr
  6067. id=sl_svn7768_16
  6068. ><td class="source"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br></td></tr
  6069. ><tr
  6070. id=sl_svn7768_17
  6071. ><td class="source"> Lesser General Public License for more details.<br></td></tr
  6072. ><tr
  6073. id=sl_svn7768_18
  6074. ><td class="source"><br></td></tr
  6075. ><tr
  6076. id=sl_svn7768_19
  6077. ><td class="source"> You should have received a copy of the GNU Lesser General<br></td></tr
  6078. ><tr
  6079. id=sl_svn7768_20
  6080. ><td class="source"> Public License along with this library; if not, write to the<br></td></tr
  6081. ><tr
  6082. id=sl_svn7768_21
  6083. ><td class="source"> Free Software Foundation, Inc., 59 Temple Place, Suite 330,<br></td></tr
  6084. ><tr
  6085. id=sl_svn7768_22
  6086. ><td class="source"> Boston, MA 02111-1307 USA<br></td></tr
  6087. ><tr
  6088. id=sl_svn7768_23
  6089. ><td class="source">*/<br></td></tr
  6090. ><tr
  6091. id=sl_svn7768_24
  6092. ><td class="source"><br></td></tr
  6093. ><tr
  6094. id=sl_svn7768_25
  6095. ><td class="source">package processing.core;<br></td></tr
  6096. ><tr
  6097. id=sl_svn7768_26
  6098. ><td class="source"><br></td></tr
  6099. ><tr
  6100. id=sl_svn7768_27
  6101. ><td class="source">import java.awt.image.*;<br></td></tr
  6102. ><tr
  6103. id=sl_svn7768_28
  6104. ><td class="source">import java.io.*;<br></td></tr
  6105. ><tr
  6106. id=sl_svn7768_29
  6107. ><td class="source">import java.lang.reflect.Method;<br></td></tr
  6108. ><tr
  6109. id=sl_svn7768_30
  6110. ><td class="source">import java.util.HashMap;<br></td></tr
  6111. ><tr
  6112. id=sl_svn7768_31
  6113. ><td class="source">import java.util.Set;<br></td></tr
  6114. ><tr
  6115. id=sl_svn7768_32
  6116. ><td class="source"><br></td></tr
  6117. ><tr
  6118. id=sl_svn7768_33
  6119. ><td class="source">import javax.imageio.ImageIO;<br></td></tr
  6120. ><tr
  6121. id=sl_svn7768_34
  6122. ><td class="source"><br></td></tr
  6123. ><tr
  6124. id=sl_svn7768_35
  6125. ><td class="source"><br></td></tr
  6126. ><tr
  6127. id=sl_svn7768_36
  6128. ><td class="source"><br></td></tr
  6129. ><tr
  6130. id=sl_svn7768_37
  6131. ><td class="source"><br></td></tr
  6132. ><tr
  6133. id=sl_svn7768_38
  6134. ><td class="source">/**<br></td></tr
  6135. ><tr
  6136. id=sl_svn7768_39
  6137. ><td class="source"> * Datatype for storing images. Processing can display &lt;b&gt;.gif&lt;/b&gt;, &lt;b&gt;.jpg&lt;/b&gt;, &lt;b&gt;.tga&lt;/b&gt;, and &lt;b&gt;.png&lt;/b&gt; images. Images may be displayed in 2D and 3D space.<br></td></tr
  6138. ><tr
  6139. id=sl_svn7768_40
  6140. ><td class="source"> * Before an image is used, it must be loaded with the &lt;b&gt;loadImage()&lt;/b&gt; function.<br></td></tr
  6141. ><tr
  6142. id=sl_svn7768_41
  6143. ><td class="source"> * The &lt;b&gt;PImage&lt;/b&gt; object contains fields for the &lt;b&gt;width&lt;/b&gt; and &lt;b&gt;height&lt;/b&gt; of the image,<br></td></tr
  6144. ><tr
  6145. id=sl_svn7768_42
  6146. ><td class="source"> * as well as an array called &lt;b&gt;pixels[]&lt;/b&gt; which contains the values for every pixel in the image.<br></td></tr
  6147. ><tr
  6148. id=sl_svn7768_43
  6149. ><td class="source"> * A group of methods, described below, allow easy access to the image&#39;s pixels and alpha channel and simplify the process of compositing.<br></td></tr
  6150. ><tr
  6151. id=sl_svn7768_44
  6152. ><td class="source"> * &lt;br&gt;&lt;br&gt;Before using the &lt;b&gt;pixels[]&lt;/b&gt; array, be sure to use the &lt;b&gt;loadPixels()&lt;/b&gt; method on the image to make sure that the pixel data is properly loaded.<br></td></tr
  6153. ><tr
  6154. id=sl_svn7768_45
  6155. ><td class="source"> * &lt;br&gt;&lt;br&gt;To create a new image, use the &lt;b&gt;createImage()&lt;/b&gt; function (do not use &lt;b&gt;new PImage()&lt;/b&gt;).<br></td></tr
  6156. ><tr
  6157. id=sl_svn7768_46
  6158. ><td class="source"> * =advanced<br></td></tr
  6159. ><tr
  6160. id=sl_svn7768_47
  6161. ><td class="source"> *<br></td></tr
  6162. ><tr
  6163. id=sl_svn7768_48
  6164. ><td class="source"> * Storage class for pixel data. This is the base class for most image and<br></td></tr
  6165. ><tr
  6166. id=sl_svn7768_49
  6167. ><td class="source"> * pixel information, such as PGraphics and the video library classes.<br></td></tr
  6168. ><tr
  6169. id=sl_svn7768_50
  6170. ><td class="source"> * &lt;P&gt;<br></td></tr
  6171. ><tr
  6172. id=sl_svn7768_51
  6173. ><td class="source"> * Code for copying, resizing, scaling, and blending contributed<br></td></tr
  6174. ><tr
  6175. id=sl_svn7768_52
  6176. ><td class="source"> * by &lt;A HREF=&quot;http://www.toxi.co.uk&quot;&gt;toxi&lt;/A&gt;.<br></td></tr
  6177. ><tr
  6178. id=sl_svn7768_53
  6179. ><td class="source"> * &lt;P&gt;<br></td></tr
  6180. ><tr
  6181. id=sl_svn7768_54
  6182. ><td class="source"> *<br></td></tr
  6183. ><tr
  6184. id=sl_svn7768_55
  6185. ><td class="source"> * @webref image<br></td></tr
  6186. ><tr
  6187. id=sl_svn7768_56
  6188. ><td class="source"> * @usage Web &amp;amp; Application<br></td></tr
  6189. ><tr
  6190. id=sl_svn7768_57
  6191. ><td class="source"> * @instanceName img any variable of type PImage<br></td></tr
  6192. ><tr
  6193. id=sl_svn7768_58
  6194. ><td class="source"> * @see processing.core.PApplet#loadImage(String)<br></td></tr
  6195. ><tr
  6196. id=sl_svn7768_59
  6197. ><td class="source"> * @see processing.core.PGraphics#imageMode(int)<br></td></tr
  6198. ><tr
  6199. id=sl_svn7768_60
  6200. ><td class="source"> * @see processing.core.PApplet#createImage(int, int)<br></td></tr
  6201. ><tr
  6202. id=sl_svn7768_61
  6203. ><td class="source"> */<br></td></tr
  6204. ><tr
  6205. id=sl_svn7768_62
  6206. ><td class="source">public class PImage implements PConstants, Cloneable {<br></td></tr
  6207. ><tr
  6208. id=sl_svn7768_63
  6209. ><td class="source"><br></td></tr
  6210. ><tr
  6211. id=sl_svn7768_64
  6212. ><td class="source"> /**<br></td></tr
  6213. ><tr
  6214. id=sl_svn7768_65
  6215. ><td class="source"> * Format for this image, one of RGB, ARGB or ALPHA.<br></td></tr
  6216. ><tr
  6217. id=sl_svn7768_66
  6218. ><td class="source"> * note that RGB images still require 0xff in the high byte<br></td></tr
  6219. ><tr
  6220. id=sl_svn7768_67
  6221. ><td class="source"> * because of how they&#39;ll be manipulated by other functions<br></td></tr
  6222. ><tr
  6223. id=sl_svn7768_68
  6224. ><td class="source"> */<br></td></tr
  6225. ><tr
  6226. id=sl_svn7768_69
  6227. ><td class="source"> public int format;<br></td></tr
  6228. ><tr
  6229. id=sl_svn7768_70
  6230. ><td class="source"><br></td></tr
  6231. ><tr
  6232. id=sl_svn7768_71
  6233. ><td class="source"> /**<br></td></tr
  6234. ><tr
  6235. id=sl_svn7768_72
  6236. ><td class="source"> * Array containing the values for all the pixels in the image. These values are of the color datatype.<br></td></tr
  6237. ><tr
  6238. id=sl_svn7768_73
  6239. ><td class="source"> * This array is the size of the image, meaning if the image is 100x100 pixels, there will be 10000 values<br></td></tr
  6240. ><tr
  6241. id=sl_svn7768_74
  6242. ><td class="source"> * and if the window is 200x300 pixels, there will be 60000 values.<br></td></tr
  6243. ><tr
  6244. id=sl_svn7768_75
  6245. ><td class="source"> * The &lt;b&gt;index&lt;/b&gt; value defines the position of a value within the array.<br></td></tr
  6246. ><tr
  6247. id=sl_svn7768_76
  6248. ><td class="source"> * For example, the statement &lt;b&gt;color b = img.pixels[230]&lt;/b&gt; will set the variable &lt;b&gt;b&lt;/b&gt; equal to the value at that location in the array.<br></td></tr
  6249. ><tr
  6250. id=sl_svn7768_77
  6251. ><td class="source"> * Before accessing this array, the data must loaded with the &lt;b&gt;loadPixels()&lt;/b&gt; method.<br></td></tr
  6252. ><tr
  6253. id=sl_svn7768_78
  6254. ><td class="source"> * After the array data has been modified, the &lt;b&gt;updatePixels()&lt;/b&gt; method must be run to update the changes.<br></td></tr
  6255. ><tr
  6256. id=sl_svn7768_79
  6257. ><td class="source"> * Without &lt;b&gt;loadPixels()&lt;/b&gt;, running the code may (or will in future releases) result in a NullPointerException.<br></td></tr
  6258. ><tr
  6259. id=sl_svn7768_80
  6260. ><td class="source"> * @webref<br></td></tr
  6261. ><tr
  6262. id=sl_svn7768_81
  6263. ><td class="source"> * @brief Array containing the color of every pixel in the image<br></td></tr
  6264. ><tr
  6265. id=sl_svn7768_82
  6266. ><td class="source"> */<br></td></tr
  6267. ><tr
  6268. id=sl_svn7768_83
  6269. ><td class="source"> public int[] pixels;<br></td></tr
  6270. ><tr
  6271. id=sl_svn7768_84
  6272. ><td class="source"><br></td></tr
  6273. ><tr
  6274. id=sl_svn7768_85
  6275. ><td class="source"> /**<br></td></tr
  6276. ><tr
  6277. id=sl_svn7768_86
  6278. ><td class="source"> * The width of the image in units of pixels.<br></td></tr
  6279. ><tr
  6280. id=sl_svn7768_87
  6281. ><td class="source"> * @webref<br></td></tr
  6282. ><tr
  6283. id=sl_svn7768_88
  6284. ><td class="source"> * @brief Image width<br></td></tr
  6285. ><tr
  6286. id=sl_svn7768_89
  6287. ><td class="source"> */<br></td></tr
  6288. ><tr
  6289. id=sl_svn7768_90
  6290. ><td class="source"> public int width;<br></td></tr
  6291. ><tr
  6292. id=sl_svn7768_91
  6293. ><td class="source"> /**<br></td></tr
  6294. ><tr
  6295. id=sl_svn7768_92
  6296. ><td class="source"> * The height of the image in units of pixels.<br></td></tr
  6297. ><tr
  6298. id=sl_svn7768_93
  6299. ><td class="source"> * @webref<br></td></tr
  6300. ><tr
  6301. id=sl_svn7768_94
  6302. ><td class="source"> * @brief Image height<br></td></tr
  6303. ><tr
  6304. id=sl_svn7768_95
  6305. ><td class="source"> */<br></td></tr
  6306. ><tr
  6307. id=sl_svn7768_96
  6308. ><td class="source"> public int height;<br></td></tr
  6309. ><tr
  6310. id=sl_svn7768_97
  6311. ><td class="source"><br></td></tr
  6312. ><tr
  6313. id=sl_svn7768_98
  6314. ><td class="source"> /**<br></td></tr
  6315. ><tr
  6316. id=sl_svn7768_99
  6317. ><td class="source"> * Path to parent object that will be used with save().<br></td></tr
  6318. ><tr
  6319. id=sl_svn7768_100
  6320. ><td class="source"> * This prevents users from needing savePath() to use PImage.save().<br></td></tr
  6321. ><tr
  6322. id=sl_svn7768_101
  6323. ><td class="source"> */<br></td></tr
  6324. ><tr
  6325. id=sl_svn7768_102
  6326. ><td class="source"> public PApplet parent;<br></td></tr
  6327. ><tr
  6328. id=sl_svn7768_103
  6329. ><td class="source"><br></td></tr
  6330. ><tr
  6331. id=sl_svn7768_104
  6332. ><td class="source"><br></td></tr
  6333. ><tr
  6334. id=sl_svn7768_105
  6335. ><td class="source"> // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br></td></tr
  6336. ><tr
  6337. id=sl_svn7768_106
  6338. ><td class="source"><br></td></tr
  6339. ><tr
  6340. id=sl_svn7768_107
  6341. ><td class="source"> /** for renderers that need to store info about the image */<br></td></tr
  6342. ><tr
  6343. id=sl_svn7768_108
  6344. ><td class="source"> protected HashMap&lt;PGraphics, Object&gt; cacheMap;<br></td></tr
  6345. ><tr
  6346. id=sl_svn7768_109
  6347. ><td class="source"> <br></td></tr
  6348. ><tr
  6349. id=sl_svn7768_110
  6350. ><td class="source"> /** for renderers that need to store parameters about the image */<br></td></tr
  6351. ><tr
  6352. id=sl_svn7768_111
  6353. ><td class="source"> protected HashMap&lt;PGraphics, Object&gt; paramMap;<br></td></tr
  6354. ><tr
  6355. id=sl_svn7768_112
  6356. ><td class="source"><br></td></tr
  6357. ><tr
  6358. id=sl_svn7768_113
  6359. ><td class="source"> /** modified portion of the image */<br></td></tr
  6360. ><tr
  6361. id=sl_svn7768_114
  6362. ><td class="source"> protected boolean modified;<br></td></tr
  6363. ><tr
  6364. id=sl_svn7768_115
  6365. ><td class="source"> protected int mx1, my1, mx2, my2;<br></td></tr
  6366. ><tr
  6367. id=sl_svn7768_116
  6368. ><td class="source"><br></td></tr
  6369. ><tr
  6370. id=sl_svn7768_117
  6371. ><td class="source"><br></td></tr
  6372. ><tr
  6373. id=sl_svn7768_118
  6374. ><td class="source"> // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br></td></tr
  6375. ><tr
  6376. id=sl_svn7768_119
  6377. ><td class="source"><br></td></tr
  6378. ><tr
  6379. id=sl_svn7768_120
  6380. ><td class="source"><br></td></tr
  6381. ><tr
  6382. id=sl_svn7768_121
  6383. ><td class="source"> // private fields<br></td></tr
  6384. ><tr
  6385. id=sl_svn7768_122
  6386. ><td class="source"> private int fracU, ifU, fracV, ifV, u1, u2, v1, v2, sX, sY, iw, iw1, ih1;<br></td></tr
  6387. ><tr
  6388. id=sl_svn7768_123
  6389. ><td class="source"> private int ul, ll, ur, lr, cUL, cLL, cUR, cLR;<br></td></tr
  6390. ><tr
  6391. id=sl_svn7768_124
  6392. ><td class="source"> private int srcXOffset, srcYOffset;<br></td></tr
  6393. ><tr
  6394. id=sl_svn7768_125
  6395. ><td class="source"> private int r, g, b, a;<br></td></tr
  6396. ><tr
  6397. id=sl_svn7768_126
  6398. ><td class="source"> private int[] srcBuffer;<br></td></tr
  6399. ><tr
  6400. id=sl_svn7768_127
  6401. ><td class="source"><br></td></tr
  6402. ><tr
  6403. id=sl_svn7768_128
  6404. ><td class="source"> // fixed point precision is limited to 15 bits!!<br></td></tr
  6405. ><tr
  6406. id=sl_svn7768_129
  6407. ><td class="source"> static final int PRECISIONB = 15;<br></td></tr
  6408. ><tr
  6409. id=sl_svn7768_130
  6410. ><td class="source"> static final int PRECISIONF = 1 &lt;&lt; PRECISIONB;<br></td></tr
  6411. ><tr
  6412. id=sl_svn7768_131
  6413. ><td class="source"> static final int PREC_MAXVAL = PRECISIONF-1;<br></td></tr
  6414. ><tr
  6415. id=sl_svn7768_132
  6416. ><td class="source"> static final int PREC_ALPHA_SHIFT = 24-PRECISIONB;<br></td></tr
  6417. ><tr
  6418. id=sl_svn7768_133
  6419. ><td class="source"> static final int PREC_RED_SHIFT = 16-PRECISIONB;<br></td></tr
  6420. ><tr
  6421. id=sl_svn7768_134
  6422. ><td class="source"><br></td></tr
  6423. ><tr
  6424. id=sl_svn7768_135
  6425. ><td class="source"> // internal kernel stuff for the gaussian blur filter<br></td></tr
  6426. ><tr
  6427. id=sl_svn7768_136
  6428. ><td class="source"> private int blurRadius;<br></td></tr
  6429. ><tr
  6430. id=sl_svn7768_137
  6431. ><td class="source"> private int blurKernelSize;<br></td></tr
  6432. ><tr
  6433. id=sl_svn7768_138
  6434. ><td class="source"> private int[] blurKernel;<br></td></tr
  6435. ><tr
  6436. id=sl_svn7768_139
  6437. ><td class="source"> private int[][] blurMult;<br></td></tr
  6438. ><tr
  6439. id=sl_svn7768_140
  6440. ><td class="source"><br></td></tr
  6441. ><tr
  6442. id=sl_svn7768_141
  6443. ><td class="source"><br></td></tr
  6444. ><tr
  6445. id=sl_svn7768_142
  6446. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  6447. ><tr
  6448. id=sl_svn7768_143
  6449. ><td class="source"><br></td></tr
  6450. ><tr
  6451. id=sl_svn7768_144
  6452. ><td class="source"><br></td></tr
  6453. ><tr
  6454. id=sl_svn7768_145
  6455. ><td class="source"> /**<br></td></tr
  6456. ><tr
  6457. id=sl_svn7768_146
  6458. ><td class="source"> * Create an empty image object, set its format to RGB.<br></td></tr
  6459. ><tr
  6460. id=sl_svn7768_147
  6461. ><td class="source"> * The pixel array is not allocated.<br></td></tr
  6462. ><tr
  6463. id=sl_svn7768_148
  6464. ><td class="source"> */<br></td></tr
  6465. ><tr
  6466. id=sl_svn7768_149
  6467. ><td class="source"> public PImage() {<br></td></tr
  6468. ><tr
  6469. id=sl_svn7768_150
  6470. ><td class="source"> format = ARGB; // default to ARGB images for release 0116<br></td></tr
  6471. ><tr
  6472. id=sl_svn7768_151
  6473. ><td class="source">// cache = null;<br></td></tr
  6474. ><tr
  6475. id=sl_svn7768_152
  6476. ><td class="source"> }<br></td></tr
  6477. ><tr
  6478. id=sl_svn7768_153
  6479. ><td class="source"><br></td></tr
  6480. ><tr
  6481. id=sl_svn7768_154
  6482. ><td class="source"><br></td></tr
  6483. ><tr
  6484. id=sl_svn7768_155
  6485. ><td class="source"> /**<br></td></tr
  6486. ><tr
  6487. id=sl_svn7768_156
  6488. ><td class="source"> * Create a new RGB (alpha ignored) image of a specific size.<br></td></tr
  6489. ><tr
  6490. id=sl_svn7768_157
  6491. ><td class="source"> * All pixels are set to zero, meaning black, but since the<br></td></tr
  6492. ><tr
  6493. id=sl_svn7768_158
  6494. ><td class="source"> * alpha is zero, it will be transparent.<br></td></tr
  6495. ><tr
  6496. id=sl_svn7768_159
  6497. ><td class="source"> */<br></td></tr
  6498. ><tr
  6499. id=sl_svn7768_160
  6500. ><td class="source"> public PImage(int width, int height) {<br></td></tr
  6501. ><tr
  6502. id=sl_svn7768_161
  6503. ><td class="source"> init(width, height, RGB);<br></td></tr
  6504. ><tr
  6505. id=sl_svn7768_162
  6506. ><td class="source"><br></td></tr
  6507. ><tr
  6508. id=sl_svn7768_163
  6509. ><td class="source"> // toxi: is it maybe better to init the image with max alpha enabled?<br></td></tr
  6510. ><tr
  6511. id=sl_svn7768_164
  6512. ><td class="source"> //for(int i=0; i&lt;pixels.length; i++) pixels[i]=0xffffffff;<br></td></tr
  6513. ><tr
  6514. id=sl_svn7768_165
  6515. ><td class="source"> // fry: i&#39;m opting for the full transparent image, which is how<br></td></tr
  6516. ><tr
  6517. id=sl_svn7768_166
  6518. ><td class="source"> // photoshop works, and our audience oughta be familiar with.<br></td></tr
  6519. ><tr
  6520. id=sl_svn7768_167
  6521. ><td class="source"> // also, i want to avoid having to set all those pixels since<br></td></tr
  6522. ><tr
  6523. id=sl_svn7768_168
  6524. ><td class="source"> // in java it&#39;s super slow, and most using this fxn will be<br></td></tr
  6525. ><tr
  6526. id=sl_svn7768_169
  6527. ><td class="source"> // setting all the pixels anyway.<br></td></tr
  6528. ><tr
  6529. id=sl_svn7768_170
  6530. ><td class="source"> // toxi: agreed and same reasons why i left it out ;)<br></td></tr
  6531. ><tr
  6532. id=sl_svn7768_171
  6533. ><td class="source"> }<br></td></tr
  6534. ><tr
  6535. id=sl_svn7768_172
  6536. ><td class="source"><br></td></tr
  6537. ><tr
  6538. id=sl_svn7768_173
  6539. ><td class="source"> /**<br></td></tr
  6540. ><tr
  6541. id=sl_svn7768_174
  6542. ><td class="source"> *<br></td></tr
  6543. ><tr
  6544. id=sl_svn7768_175
  6545. ><td class="source"> * @param width image width<br></td></tr
  6546. ><tr
  6547. id=sl_svn7768_176
  6548. ><td class="source"> * @param height image height<br></td></tr
  6549. ><tr
  6550. id=sl_svn7768_177
  6551. ><td class="source"> * @param format Either RGB, ARGB, ALPHA (grayscale alpha channel)<br></td></tr
  6552. ><tr
  6553. id=sl_svn7768_178
  6554. ><td class="source"> */<br></td></tr
  6555. ><tr
  6556. id=sl_svn7768_179
  6557. ><td class="source"> public PImage(int width, int height, int format) {<br></td></tr
  6558. ><tr
  6559. id=sl_svn7768_180
  6560. ><td class="source"> init(width, height, format);<br></td></tr
  6561. ><tr
  6562. id=sl_svn7768_181
  6563. ><td class="source"> }<br></td></tr
  6564. ><tr
  6565. id=sl_svn7768_182
  6566. ><td class="source"><br></td></tr
  6567. ><tr
  6568. id=sl_svn7768_183
  6569. ><td class="source"><br></td></tr
  6570. ><tr
  6571. id=sl_svn7768_184
  6572. ><td class="source"> /**<br></td></tr
  6573. ><tr
  6574. id=sl_svn7768_185
  6575. ><td class="source"> * Function to be used by subclasses of PImage to init later than<br></td></tr
  6576. ><tr
  6577. id=sl_svn7768_186
  6578. ><td class="source"> * at the constructor, or re-init later when things changes.<br></td></tr
  6579. ><tr
  6580. id=sl_svn7768_187
  6581. ><td class="source"> * Used by Capture and Movie classes (and perhaps others),<br></td></tr
  6582. ><tr
  6583. id=sl_svn7768_188
  6584. ><td class="source"> * because the width/height will not be known when super() is called.<br></td></tr
  6585. ><tr
  6586. id=sl_svn7768_189
  6587. ><td class="source"> * (Leave this public so that other libraries can do the same.)<br></td></tr
  6588. ><tr
  6589. id=sl_svn7768_190
  6590. ><td class="source"> */<br></td></tr
  6591. ><tr
  6592. id=sl_svn7768_191
  6593. ><td class="source"> public void init(int width, int height, int format) { // ignore<br></td></tr
  6594. ><tr
  6595. id=sl_svn7768_192
  6596. ><td class="source"> this.width = width;<br></td></tr
  6597. ><tr
  6598. id=sl_svn7768_193
  6599. ><td class="source"> this.height = height;<br></td></tr
  6600. ><tr
  6601. id=sl_svn7768_194
  6602. ><td class="source"> this.pixels = new int[width*height];<br></td></tr
  6603. ><tr
  6604. id=sl_svn7768_195
  6605. ><td class="source"> this.format = format;<br></td></tr
  6606. ><tr
  6607. id=sl_svn7768_196
  6608. ><td class="source">// this.cache = null;<br></td></tr
  6609. ><tr
  6610. id=sl_svn7768_197
  6611. ><td class="source"> }<br></td></tr
  6612. ><tr
  6613. id=sl_svn7768_198
  6614. ><td class="source"><br></td></tr
  6615. ><tr
  6616. id=sl_svn7768_199
  6617. ><td class="source"><br></td></tr
  6618. ><tr
  6619. id=sl_svn7768_200
  6620. ><td class="source"> /**<br></td></tr
  6621. ><tr
  6622. id=sl_svn7768_201
  6623. ><td class="source"> * Check the alpha on an image, using a really primitive loop.<br></td></tr
  6624. ><tr
  6625. id=sl_svn7768_202
  6626. ><td class="source"> */<br></td></tr
  6627. ><tr
  6628. id=sl_svn7768_203
  6629. ><td class="source"> protected void checkAlpha() {<br></td></tr
  6630. ><tr
  6631. id=sl_svn7768_204
  6632. ><td class="source"> if (pixels == null) return;<br></td></tr
  6633. ><tr
  6634. id=sl_svn7768_205
  6635. ><td class="source"><br></td></tr
  6636. ><tr
  6637. id=sl_svn7768_206
  6638. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  6639. ><tr
  6640. id=sl_svn7768_207
  6641. ><td class="source"> // since transparency is often at corners, hopefully this<br></td></tr
  6642. ><tr
  6643. id=sl_svn7768_208
  6644. ><td class="source"> // will find a non-transparent pixel quickly and exit<br></td></tr
  6645. ><tr
  6646. id=sl_svn7768_209
  6647. ><td class="source"> if ((pixels[i] &amp; 0xff000000) != 0xff000000) {<br></td></tr
  6648. ><tr
  6649. id=sl_svn7768_210
  6650. ><td class="source"> format = ARGB;<br></td></tr
  6651. ><tr
  6652. id=sl_svn7768_211
  6653. ><td class="source"> break;<br></td></tr
  6654. ><tr
  6655. id=sl_svn7768_212
  6656. ><td class="source"> }<br></td></tr
  6657. ><tr
  6658. id=sl_svn7768_213
  6659. ><td class="source"> }<br></td></tr
  6660. ><tr
  6661. id=sl_svn7768_214
  6662. ><td class="source"> }<br></td></tr
  6663. ><tr
  6664. id=sl_svn7768_215
  6665. ><td class="source"><br></td></tr
  6666. ><tr
  6667. id=sl_svn7768_216
  6668. ><td class="source"><br></td></tr
  6669. ><tr
  6670. id=sl_svn7768_217
  6671. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  6672. ><tr
  6673. id=sl_svn7768_218
  6674. ><td class="source"><br></td></tr
  6675. ><tr
  6676. id=sl_svn7768_219
  6677. ><td class="source"><br></td></tr
  6678. ><tr
  6679. id=sl_svn7768_220
  6680. ><td class="source"> /**<br></td></tr
  6681. ><tr
  6682. id=sl_svn7768_221
  6683. ><td class="source"> * Construct a new PImage from a java.awt.Image. This constructor assumes<br></td></tr
  6684. ><tr
  6685. id=sl_svn7768_222
  6686. ><td class="source"> * that you&#39;ve done the work of making sure a MediaTracker has been used<br></td></tr
  6687. ><tr
  6688. id=sl_svn7768_223
  6689. ><td class="source"> * to fully download the data and that the img is valid.<br></td></tr
  6690. ><tr
  6691. id=sl_svn7768_224
  6692. ><td class="source"> *<br></td></tr
  6693. ><tr
  6694. id=sl_svn7768_225
  6695. ><td class="source"> * @param img assumes a MediaTracker has been used to fully download<br></td></tr
  6696. ><tr
  6697. id=sl_svn7768_226
  6698. ><td class="source"> * the data and the img is valid<br></td></tr
  6699. ><tr
  6700. id=sl_svn7768_227
  6701. ><td class="source"> */<br></td></tr
  6702. ><tr
  6703. id=sl_svn7768_228
  6704. ><td class="source"> public PImage(java.awt.Image img) {<br></td></tr
  6705. ><tr
  6706. id=sl_svn7768_229
  6707. ><td class="source"> format = RGB;<br></td></tr
  6708. ><tr
  6709. id=sl_svn7768_230
  6710. ><td class="source"> if (img instanceof BufferedImage) {<br></td></tr
  6711. ><tr
  6712. id=sl_svn7768_231
  6713. ><td class="source"> BufferedImage bi = (BufferedImage) img;<br></td></tr
  6714. ><tr
  6715. id=sl_svn7768_232
  6716. ><td class="source"> width = bi.getWidth();<br></td></tr
  6717. ><tr
  6718. id=sl_svn7768_233
  6719. ><td class="source"> height = bi.getHeight();<br></td></tr
  6720. ><tr
  6721. id=sl_svn7768_234
  6722. ><td class="source"> pixels = new int[width * height];<br></td></tr
  6723. ><tr
  6724. id=sl_svn7768_235
  6725. ><td class="source"> WritableRaster raster = bi.getRaster();<br></td></tr
  6726. ><tr
  6727. id=sl_svn7768_236
  6728. ><td class="source"> raster.getDataElements(0, 0, width, height, pixels);<br></td></tr
  6729. ><tr
  6730. id=sl_svn7768_237
  6731. ><td class="source"> if (bi.getType() == BufferedImage.TYPE_INT_ARGB) {<br></td></tr
  6732. ><tr
  6733. id=sl_svn7768_238
  6734. ><td class="source"> format = ARGB;<br></td></tr
  6735. ><tr
  6736. id=sl_svn7768_239
  6737. ><td class="source"> }<br></td></tr
  6738. ><tr
  6739. id=sl_svn7768_240
  6740. ><td class="source"><br></td></tr
  6741. ><tr
  6742. id=sl_svn7768_241
  6743. ><td class="source"> } else { // go the old school java 1.0 route<br></td></tr
  6744. ><tr
  6745. id=sl_svn7768_242
  6746. ><td class="source"> width = img.getWidth(null);<br></td></tr
  6747. ><tr
  6748. id=sl_svn7768_243
  6749. ><td class="source"> height = img.getHeight(null);<br></td></tr
  6750. ><tr
  6751. id=sl_svn7768_244
  6752. ><td class="source"> pixels = new int[width * height];<br></td></tr
  6753. ><tr
  6754. id=sl_svn7768_245
  6755. ><td class="source"> PixelGrabber pg =<br></td></tr
  6756. ><tr
  6757. id=sl_svn7768_246
  6758. ><td class="source"> new PixelGrabber(img, 0, 0, width, height, pixels, 0, width);<br></td></tr
  6759. ><tr
  6760. id=sl_svn7768_247
  6761. ><td class="source"> try {<br></td></tr
  6762. ><tr
  6763. id=sl_svn7768_248
  6764. ><td class="source"> pg.grabPixels();<br></td></tr
  6765. ><tr
  6766. id=sl_svn7768_249
  6767. ><td class="source"> } catch (InterruptedException e) { }<br></td></tr
  6768. ><tr
  6769. id=sl_svn7768_250
  6770. ><td class="source"> }<br></td></tr
  6771. ><tr
  6772. id=sl_svn7768_251
  6773. ><td class="source"> }<br></td></tr
  6774. ><tr
  6775. id=sl_svn7768_252
  6776. ><td class="source"><br></td></tr
  6777. ><tr
  6778. id=sl_svn7768_253
  6779. ><td class="source"><br></td></tr
  6780. ><tr
  6781. id=sl_svn7768_254
  6782. ><td class="source"> /**<br></td></tr
  6783. ><tr
  6784. id=sl_svn7768_255
  6785. ><td class="source"> * Returns a BufferedImage from this PImage.<br></td></tr
  6786. ><tr
  6787. id=sl_svn7768_256
  6788. ><td class="source"> */<br></td></tr
  6789. ><tr
  6790. id=sl_svn7768_257
  6791. ><td class="source"> public java.awt.Image getImage() {<br></td></tr
  6792. ><tr
  6793. id=sl_svn7768_258
  6794. ><td class="source"> loadPixels();<br></td></tr
  6795. ><tr
  6796. id=sl_svn7768_259
  6797. ><td class="source"> int type = (format == RGB) ?<br></td></tr
  6798. ><tr
  6799. id=sl_svn7768_260
  6800. ><td class="source"> BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;<br></td></tr
  6801. ><tr
  6802. id=sl_svn7768_261
  6803. ><td class="source"> BufferedImage image = new BufferedImage(width, height, type);<br></td></tr
  6804. ><tr
  6805. id=sl_svn7768_262
  6806. ><td class="source"> WritableRaster wr = image.getRaster();<br></td></tr
  6807. ><tr
  6808. id=sl_svn7768_263
  6809. ><td class="source"> wr.setDataElements(0, 0, width, height, pixels);<br></td></tr
  6810. ><tr
  6811. id=sl_svn7768_264
  6812. ><td class="source"> return image;<br></td></tr
  6813. ><tr
  6814. id=sl_svn7768_265
  6815. ><td class="source"> }<br></td></tr
  6816. ><tr
  6817. id=sl_svn7768_266
  6818. ><td class="source"><br></td></tr
  6819. ><tr
  6820. id=sl_svn7768_267
  6821. ><td class="source"> <br></td></tr
  6822. ><tr
  6823. id=sl_svn7768_268
  6824. ><td class="source"> public void delete() {<br></td></tr
  6825. ><tr
  6826. id=sl_svn7768_269
  6827. ><td class="source"> if (cacheMap != null) {<br></td></tr
  6828. ><tr
  6829. id=sl_svn7768_270
  6830. ><td class="source"> Set&lt;PGraphics&gt; keySet = cacheMap.keySet();<br></td></tr
  6831. ><tr
  6832. id=sl_svn7768_271
  6833. ><td class="source"> if (!keySet.isEmpty()) {<br></td></tr
  6834. ><tr
  6835. id=sl_svn7768_272
  6836. ><td class="source"> Object[] keys = keySet.toArray();<br></td></tr
  6837. ><tr
  6838. id=sl_svn7768_273
  6839. ><td class="source"> for (int i = 0; i &lt; keys.length; i++) { <br></td></tr
  6840. ><tr
  6841. id=sl_svn7768_274
  6842. ><td class="source"> Object data = getCache((PGraphics)keys[i]);<br></td></tr
  6843. ><tr
  6844. id=sl_svn7768_275
  6845. ><td class="source"> Method del = null;<br></td></tr
  6846. ><tr
  6847. id=sl_svn7768_276
  6848. ><td class="source"> <br></td></tr
  6849. ><tr
  6850. id=sl_svn7768_277
  6851. ><td class="source"> try {<br></td></tr
  6852. ><tr
  6853. id=sl_svn7768_278
  6854. ><td class="source"> Class&lt;?&gt; c = data.getClass();<br></td></tr
  6855. ><tr
  6856. id=sl_svn7768_279
  6857. ><td class="source"> del = c.getMethod(&quot;delete&quot;, new Class[] {});<br></td></tr
  6858. ><tr
  6859. id=sl_svn7768_280
  6860. ><td class="source"> } catch (Exception e) {}<br></td></tr
  6861. ><tr
  6862. id=sl_svn7768_281
  6863. ><td class="source"> <br></td></tr
  6864. ><tr
  6865. id=sl_svn7768_282
  6866. ><td class="source"> if (del != null) {<br></td></tr
  6867. ><tr
  6868. id=sl_svn7768_283
  6869. ><td class="source"> // The metadata have a delete method. We try running it.<br></td></tr
  6870. ><tr
  6871. id=sl_svn7768_284
  6872. ><td class="source"> try {<br></td></tr
  6873. ><tr
  6874. id=sl_svn7768_285
  6875. ><td class="source"> del.invoke(data, new Object[] {});<br></td></tr
  6876. ><tr
  6877. id=sl_svn7768_286
  6878. ><td class="source"> } catch (Exception e) {}<br></td></tr
  6879. ><tr
  6880. id=sl_svn7768_287
  6881. ><td class="source"> }<br></td></tr
  6882. ><tr
  6883. id=sl_svn7768_288
  6884. ><td class="source"> }<br></td></tr
  6885. ><tr
  6886. id=sl_svn7768_289
  6887. ><td class="source"> }<br></td></tr
  6888. ><tr
  6889. id=sl_svn7768_290
  6890. ><td class="source"> }<br></td></tr
  6891. ><tr
  6892. id=sl_svn7768_291
  6893. ><td class="source"> }<br></td></tr
  6894. ><tr
  6895. id=sl_svn7768_292
  6896. ><td class="source"> <br></td></tr
  6897. ><tr
  6898. id=sl_svn7768_293
  6899. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  6900. ><tr
  6901. id=sl_svn7768_294
  6902. ><td class="source"><br></td></tr
  6903. ><tr
  6904. id=sl_svn7768_295
  6905. ><td class="source"> // METADATA/PARAMETERS REQUIRED BY RENDERERS<br></td></tr
  6906. ><tr
  6907. id=sl_svn7768_296
  6908. ><td class="source"> <br></td></tr
  6909. ><tr
  6910. id=sl_svn7768_297
  6911. ><td class="source"> /**<br></td></tr
  6912. ><tr
  6913. id=sl_svn7768_298
  6914. ><td class="source"> * Store data of some kind for a renderer that requires extra metadata of<br></td></tr
  6915. ><tr
  6916. id=sl_svn7768_299
  6917. ><td class="source"> * some kind. Usually this is a renderer-specific representation of the<br></td></tr
  6918. ><tr
  6919. id=sl_svn7768_300
  6920. ><td class="source"> * image data, for instance a BufferedImage with tint() settings applied for<br></td></tr
  6921. ><tr
  6922. id=sl_svn7768_301
  6923. ><td class="source"> * PGraphicsJava2D, or resized image data and OpenGL texture indices for<br></td></tr
  6924. ><tr
  6925. id=sl_svn7768_302
  6926. ><td class="source"> * PGraphicsOpenGL.<br></td></tr
  6927. ><tr
  6928. id=sl_svn7768_303
  6929. ><td class="source"> * @param renderer The PGraphics renderer associated to the image<br></td></tr
  6930. ><tr
  6931. id=sl_svn7768_304
  6932. ><td class="source"> * @param storage The metadata required by the renderer <br></td></tr
  6933. ><tr
  6934. id=sl_svn7768_305
  6935. ><td class="source"> */<br></td></tr
  6936. ><tr
  6937. id=sl_svn7768_306
  6938. ><td class="source"> public void setCache(PGraphics renderer, Object storage) {<br></td></tr
  6939. ><tr
  6940. id=sl_svn7768_307
  6941. ><td class="source"> if (cacheMap == null) cacheMap = new HashMap&lt;PGraphics, Object&gt;();<br></td></tr
  6942. ><tr
  6943. id=sl_svn7768_308
  6944. ><td class="source"> cacheMap.put(renderer, storage);<br></td></tr
  6945. ><tr
  6946. id=sl_svn7768_309
  6947. ><td class="source"> }<br></td></tr
  6948. ><tr
  6949. id=sl_svn7768_310
  6950. ><td class="source"><br></td></tr
  6951. ><tr
  6952. id=sl_svn7768_311
  6953. ><td class="source"><br></td></tr
  6954. ><tr
  6955. id=sl_svn7768_312
  6956. ><td class="source"> /**<br></td></tr
  6957. ><tr
  6958. id=sl_svn7768_313
  6959. ><td class="source"> * Get cache storage data for the specified renderer. Because each renderer<br></td></tr
  6960. ><tr
  6961. id=sl_svn7768_314
  6962. ><td class="source"> * will cache data in different formats, it&#39;s necessary to store cache data<br></td></tr
  6963. ><tr
  6964. id=sl_svn7768_315
  6965. ><td class="source"> * keyed by the renderer object. Otherwise, attempting to draw the same<br></td></tr
  6966. ><tr
  6967. id=sl_svn7768_316
  6968. ><td class="source"> * image to both a PGraphicsJava2D and a PGraphicsOpenGL will cause errors.<br></td></tr
  6969. ><tr
  6970. id=sl_svn7768_317
  6971. ><td class="source"> * @param renderer The PGraphics renderer associated to the image<br></td></tr
  6972. ><tr
  6973. id=sl_svn7768_318
  6974. ><td class="source"> * @return metadata stored for the specified renderer<br></td></tr
  6975. ><tr
  6976. id=sl_svn7768_319
  6977. ><td class="source"> */<br></td></tr
  6978. ><tr
  6979. id=sl_svn7768_320
  6980. ><td class="source"> public Object getCache(PGraphics renderer) {<br></td></tr
  6981. ><tr
  6982. id=sl_svn7768_321
  6983. ><td class="source"> if (cacheMap == null) return null;<br></td></tr
  6984. ><tr
  6985. id=sl_svn7768_322
  6986. ><td class="source"> return cacheMap.get(renderer);<br></td></tr
  6987. ><tr
  6988. id=sl_svn7768_323
  6989. ><td class="source"> }<br></td></tr
  6990. ><tr
  6991. id=sl_svn7768_324
  6992. ><td class="source"><br></td></tr
  6993. ><tr
  6994. id=sl_svn7768_325
  6995. ><td class="source"><br></td></tr
  6996. ><tr
  6997. id=sl_svn7768_326
  6998. ><td class="source"> /**<br></td></tr
  6999. ><tr
  7000. id=sl_svn7768_327
  7001. ><td class="source"> * Remove information associated with this renderer from the cache, if any.<br></td></tr
  7002. ><tr
  7003. id=sl_svn7768_328
  7004. ><td class="source"> * @param renderer The PGraphics renderer whose cache data should be removed<br></td></tr
  7005. ><tr
  7006. id=sl_svn7768_329
  7007. ><td class="source"> */<br></td></tr
  7008. ><tr
  7009. id=sl_svn7768_330
  7010. ><td class="source"> public void removeCache(PGraphics renderer) {<br></td></tr
  7011. ><tr
  7012. id=sl_svn7768_331
  7013. ><td class="source"> if (cacheMap != null) {<br></td></tr
  7014. ><tr
  7015. id=sl_svn7768_332
  7016. ><td class="source"> cacheMap.remove(renderer);<br></td></tr
  7017. ><tr
  7018. id=sl_svn7768_333
  7019. ><td class="source"> }<br></td></tr
  7020. ><tr
  7021. id=sl_svn7768_334
  7022. ><td class="source"> }<br></td></tr
  7023. ><tr
  7024. id=sl_svn7768_335
  7025. ><td class="source"><br></td></tr
  7026. ><tr
  7027. id=sl_svn7768_336
  7028. ><td class="source"><br></td></tr
  7029. ><tr
  7030. id=sl_svn7768_337
  7031. ><td class="source"> /**<br></td></tr
  7032. ><tr
  7033. id=sl_svn7768_338
  7034. ><td class="source"> * Store parameters for a renderer that requires extra metadata of<br></td></tr
  7035. ><tr
  7036. id=sl_svn7768_339
  7037. ><td class="source"> * some kind.<br></td></tr
  7038. ><tr
  7039. id=sl_svn7768_340
  7040. ><td class="source"> * @param renderer The PGraphics renderer associated to the image<br></td></tr
  7041. ><tr
  7042. id=sl_svn7768_341
  7043. ><td class="source"> * @param storage The parameters required by the renderer <br></td></tr
  7044. ><tr
  7045. id=sl_svn7768_342
  7046. ><td class="source"> */<br></td></tr
  7047. ><tr
  7048. id=sl_svn7768_343
  7049. ><td class="source"> public void setParams(PGraphics renderer, Object params) {<br></td></tr
  7050. ><tr
  7051. id=sl_svn7768_344
  7052. ><td class="source"> if (paramMap == null) paramMap = new HashMap&lt;PGraphics, Object&gt;();<br></td></tr
  7053. ><tr
  7054. id=sl_svn7768_345
  7055. ><td class="source"> paramMap.put(renderer, params);<br></td></tr
  7056. ><tr
  7057. id=sl_svn7768_346
  7058. ><td class="source"> }<br></td></tr
  7059. ><tr
  7060. id=sl_svn7768_347
  7061. ><td class="source"><br></td></tr
  7062. ><tr
  7063. id=sl_svn7768_348
  7064. ><td class="source"><br></td></tr
  7065. ><tr
  7066. id=sl_svn7768_349
  7067. ><td class="source"> /**<br></td></tr
  7068. ><tr
  7069. id=sl_svn7768_350
  7070. ><td class="source"> * Get the parameters for the specified renderer.<br></td></tr
  7071. ><tr
  7072. id=sl_svn7768_351
  7073. ><td class="source"> * @param renderer The PGraphics renderer associated to the image<br></td></tr
  7074. ><tr
  7075. id=sl_svn7768_352
  7076. ><td class="source"> * @return parameters stored for the specified renderer<br></td></tr
  7077. ><tr
  7078. id=sl_svn7768_353
  7079. ><td class="source"> */<br></td></tr
  7080. ><tr
  7081. id=sl_svn7768_354
  7082. ><td class="source"> public Object getParams(PGraphics renderer) {<br></td></tr
  7083. ><tr
  7084. id=sl_svn7768_355
  7085. ><td class="source"> if (paramMap == null) return null;<br></td></tr
  7086. ><tr
  7087. id=sl_svn7768_356
  7088. ><td class="source"> return paramMap.get(renderer);<br></td></tr
  7089. ><tr
  7090. id=sl_svn7768_357
  7091. ><td class="source"> }<br></td></tr
  7092. ><tr
  7093. id=sl_svn7768_358
  7094. ><td class="source"><br></td></tr
  7095. ><tr
  7096. id=sl_svn7768_359
  7097. ><td class="source"><br></td></tr
  7098. ><tr
  7099. id=sl_svn7768_360
  7100. ><td class="source"> /**<br></td></tr
  7101. ><tr
  7102. id=sl_svn7768_361
  7103. ><td class="source"> * Remove information associated with this renderer from the cache, if any.<br></td></tr
  7104. ><tr
  7105. id=sl_svn7768_362
  7106. ><td class="source"> * @param renderer The PGraphics renderer whose parameters should be removed<br></td></tr
  7107. ><tr
  7108. id=sl_svn7768_363
  7109. ><td class="source"> */<br></td></tr
  7110. ><tr
  7111. id=sl_svn7768_364
  7112. ><td class="source"> public void removeParams(PGraphics renderer) {<br></td></tr
  7113. ><tr
  7114. id=sl_svn7768_365
  7115. ><td class="source"> if (paramMap != null) {<br></td></tr
  7116. ><tr
  7117. id=sl_svn7768_366
  7118. ><td class="source"> paramMap.remove(renderer);<br></td></tr
  7119. ><tr
  7120. id=sl_svn7768_367
  7121. ><td class="source"> }<br></td></tr
  7122. ><tr
  7123. id=sl_svn7768_368
  7124. ><td class="source"> }<br></td></tr
  7125. ><tr
  7126. id=sl_svn7768_369
  7127. ><td class="source"><br></td></tr
  7128. ><tr
  7129. id=sl_svn7768_370
  7130. ><td class="source"> <br></td></tr
  7131. ><tr
  7132. id=sl_svn7768_371
  7133. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7134. ><tr
  7135. id=sl_svn7768_372
  7136. ><td class="source"><br></td></tr
  7137. ><tr
  7138. id=sl_svn7768_373
  7139. ><td class="source"> // MARKING IMAGE AS MODIFIED / FOR USE w/ GET/SET<br></td></tr
  7140. ><tr
  7141. id=sl_svn7768_374
  7142. ><td class="source"><br></td></tr
  7143. ><tr
  7144. id=sl_svn7768_375
  7145. ><td class="source"><br></td></tr
  7146. ><tr
  7147. id=sl_svn7768_376
  7148. ><td class="source"> public boolean isModified() { // ignore<br></td></tr
  7149. ><tr
  7150. id=sl_svn7768_377
  7151. ><td class="source"> return modified;<br></td></tr
  7152. ><tr
  7153. id=sl_svn7768_378
  7154. ><td class="source"> }<br></td></tr
  7155. ><tr
  7156. id=sl_svn7768_379
  7157. ><td class="source"><br></td></tr
  7158. ><tr
  7159. id=sl_svn7768_380
  7160. ><td class="source"><br></td></tr
  7161. ><tr
  7162. id=sl_svn7768_381
  7163. ><td class="source"> public void setModified() { // ignore<br></td></tr
  7164. ><tr
  7165. id=sl_svn7768_382
  7166. ><td class="source"> modified = true;<br></td></tr
  7167. ><tr
  7168. id=sl_svn7768_383
  7169. ><td class="source"> }<br></td></tr
  7170. ><tr
  7171. id=sl_svn7768_384
  7172. ><td class="source"><br></td></tr
  7173. ><tr
  7174. id=sl_svn7768_385
  7175. ><td class="source"><br></td></tr
  7176. ><tr
  7177. id=sl_svn7768_386
  7178. ><td class="source"> public void setModified(boolean m) { // ignore<br></td></tr
  7179. ><tr
  7180. id=sl_svn7768_387
  7181. ><td class="source"> modified = m;<br></td></tr
  7182. ><tr
  7183. id=sl_svn7768_388
  7184. ><td class="source"> }<br></td></tr
  7185. ><tr
  7186. id=sl_svn7768_389
  7187. ><td class="source"><br></td></tr
  7188. ><tr
  7189. id=sl_svn7768_390
  7190. ><td class="source"> <br></td></tr
  7191. ><tr
  7192. id=sl_svn7768_391
  7193. ><td class="source"> public int getModifiedX1() { // ignore<br></td></tr
  7194. ><tr
  7195. id=sl_svn7768_392
  7196. ><td class="source"> return mx1;<br></td></tr
  7197. ><tr
  7198. id=sl_svn7768_393
  7199. ><td class="source"> }<br></td></tr
  7200. ><tr
  7201. id=sl_svn7768_394
  7202. ><td class="source"><br></td></tr
  7203. ><tr
  7204. id=sl_svn7768_395
  7205. ><td class="source"> <br></td></tr
  7206. ><tr
  7207. id=sl_svn7768_396
  7208. ><td class="source"> public int getModifiedX2() { // ignore<br></td></tr
  7209. ><tr
  7210. id=sl_svn7768_397
  7211. ><td class="source"> return mx2;<br></td></tr
  7212. ><tr
  7213. id=sl_svn7768_398
  7214. ><td class="source"> }<br></td></tr
  7215. ><tr
  7216. id=sl_svn7768_399
  7217. ><td class="source"><br></td></tr
  7218. ><tr
  7219. id=sl_svn7768_400
  7220. ><td class="source"> <br></td></tr
  7221. ><tr
  7222. id=sl_svn7768_401
  7223. ><td class="source"> public int getModifiedY1() { // ignore<br></td></tr
  7224. ><tr
  7225. id=sl_svn7768_402
  7226. ><td class="source"> return my1;<br></td></tr
  7227. ><tr
  7228. id=sl_svn7768_403
  7229. ><td class="source"> }<br></td></tr
  7230. ><tr
  7231. id=sl_svn7768_404
  7232. ><td class="source"><br></td></tr
  7233. ><tr
  7234. id=sl_svn7768_405
  7235. ><td class="source"> <br></td></tr
  7236. ><tr
  7237. id=sl_svn7768_406
  7238. ><td class="source"> public int getModifiedY2() { // ignore<br></td></tr
  7239. ><tr
  7240. id=sl_svn7768_407
  7241. ><td class="source"> return my2;<br></td></tr
  7242. ><tr
  7243. id=sl_svn7768_408
  7244. ><td class="source"> } <br></td></tr
  7245. ><tr
  7246. id=sl_svn7768_409
  7247. ><td class="source"> <br></td></tr
  7248. ><tr
  7249. id=sl_svn7768_410
  7250. ><td class="source"> <br></td></tr
  7251. ><tr
  7252. id=sl_svn7768_411
  7253. ><td class="source"> /**<br></td></tr
  7254. ><tr
  7255. id=sl_svn7768_412
  7256. ><td class="source"> * Loads the pixel data for the image into its &lt;b&gt;pixels[]&lt;/b&gt; array. This function must always be called before reading from or writing to &lt;b&gt;pixels[]&lt;/b&gt;.<br></td></tr
  7257. ><tr
  7258. id=sl_svn7768_413
  7259. ><td class="source"> * &lt;br&gt;&lt;br&gt;Certain renderers may or may not seem to require &lt;b&gt;loadPixels()&lt;/b&gt; or &lt;b&gt;updatePixels()&lt;/b&gt;. However, the rule is that any time you want to manipulate the &lt;b&gt;pixels[]&lt;/b&gt; array, you must first call &lt;b&gt;loadPixels()&lt;/b&gt;, and after changes have been made, call &lt;b&gt;updatePixels()&lt;/b&gt;. Even if the renderer may not seem to use this function in the current Processing release, this will always be subject to change.<br></td></tr
  7260. ><tr
  7261. id=sl_svn7768_414
  7262. ><td class="source"> * =advanced<br></td></tr
  7263. ><tr
  7264. id=sl_svn7768_415
  7265. ><td class="source"> * Call this when you want to mess with the pixels[] array.<br></td></tr
  7266. ><tr
  7267. id=sl_svn7768_416
  7268. ><td class="source"> * &lt;p/&gt;<br></td></tr
  7269. ><tr
  7270. id=sl_svn7768_417
  7271. ><td class="source"> * For subclasses where the pixels[] buffer isn&#39;t set by default,<br></td></tr
  7272. ><tr
  7273. id=sl_svn7768_418
  7274. ><td class="source"> * this should copy all data into the pixels[] array<br></td></tr
  7275. ><tr
  7276. id=sl_svn7768_419
  7277. ><td class="source"> *<br></td></tr
  7278. ><tr
  7279. id=sl_svn7768_420
  7280. ><td class="source"> * @webref<br></td></tr
  7281. ><tr
  7282. id=sl_svn7768_421
  7283. ><td class="source"> * @brief Loads the pixel data for the image into its pixels[] array<br></td></tr
  7284. ><tr
  7285. id=sl_svn7768_422
  7286. ><td class="source"> */<br></td></tr
  7287. ><tr
  7288. id=sl_svn7768_423
  7289. ><td class="source"> public void loadPixels() { // ignore<br></td></tr
  7290. ><tr
  7291. id=sl_svn7768_424
  7292. ><td class="source"> }<br></td></tr
  7293. ><tr
  7294. id=sl_svn7768_425
  7295. ><td class="source"><br></td></tr
  7296. ><tr
  7297. id=sl_svn7768_426
  7298. ><td class="source"> public void updatePixels() { // ignore<br></td></tr
  7299. ><tr
  7300. id=sl_svn7768_427
  7301. ><td class="source"> updatePixelsImpl(0, 0, width, height);<br></td></tr
  7302. ><tr
  7303. id=sl_svn7768_428
  7304. ><td class="source"> }<br></td></tr
  7305. ><tr
  7306. id=sl_svn7768_429
  7307. ><td class="source"><br></td></tr
  7308. ><tr
  7309. id=sl_svn7768_430
  7310. ><td class="source"> /**<br></td></tr
  7311. ><tr
  7312. id=sl_svn7768_431
  7313. ><td class="source"> * Updates the image with the data in its &lt;b&gt;pixels[]&lt;/b&gt; array. Use in conjunction with &lt;b&gt;loadPixels()&lt;/b&gt;. If you&#39;re only reading pixels from the array, there&#39;s no need to call &lt;b&gt;updatePixels()&lt;/b&gt;.<br></td></tr
  7314. ><tr
  7315. id=sl_svn7768_432
  7316. ><td class="source"> * &lt;br&gt;&lt;br&gt;Certain renderers may or may not seem to require &lt;b&gt;loadPixels()&lt;/b&gt; or &lt;b&gt;updatePixels()&lt;/b&gt;. However, the rule is that any time you want to manipulate the &lt;b&gt;pixels[]&lt;/b&gt; array, you must first call &lt;b&gt;loadPixels()&lt;/b&gt;, and after changes have been made, call &lt;b&gt;updatePixels()&lt;/b&gt;. Even if the renderer may not seem to use this function in the current Processing release, this will always be subject to change.<br></td></tr
  7317. ><tr
  7318. id=sl_svn7768_433
  7319. ><td class="source"> * &lt;br&gt;&lt;br&gt;Currently, none of the renderers use the additional parameters to &lt;b&gt;updatePixels()&lt;/b&gt;, however this may be implemented in the future.<br></td></tr
  7320. ><tr
  7321. id=sl_svn7768_434
  7322. ><td class="source"> * =advanced<br></td></tr
  7323. ><tr
  7324. id=sl_svn7768_435
  7325. ><td class="source"> * Mark the pixels in this region as needing an update.<br></td></tr
  7326. ><tr
  7327. id=sl_svn7768_436
  7328. ><td class="source"> * This is not currently used by any of the renderers, however the api<br></td></tr
  7329. ><tr
  7330. id=sl_svn7768_437
  7331. ><td class="source"> * is structured this way in the hope of being able to use this to<br></td></tr
  7332. ><tr
  7333. id=sl_svn7768_438
  7334. ><td class="source"> * speed things up in the future.<br></td></tr
  7335. ><tr
  7336. id=sl_svn7768_439
  7337. ><td class="source"> * @webref<br></td></tr
  7338. ><tr
  7339. id=sl_svn7768_440
  7340. ><td class="source"> * @brief Updates the image with the data in its pixels[] array<br></td></tr
  7341. ><tr
  7342. id=sl_svn7768_441
  7343. ><td class="source"> * @param x<br></td></tr
  7344. ><tr
  7345. id=sl_svn7768_442
  7346. ><td class="source"> * @param y<br></td></tr
  7347. ><tr
  7348. id=sl_svn7768_443
  7349. ><td class="source"> * @param w<br></td></tr
  7350. ><tr
  7351. id=sl_svn7768_444
  7352. ><td class="source"> * @param h<br></td></tr
  7353. ><tr
  7354. id=sl_svn7768_445
  7355. ><td class="source"> */<br></td></tr
  7356. ><tr
  7357. id=sl_svn7768_446
  7358. ><td class="source"> public void updatePixels(int x, int y, int w, int h) { // ignore<br></td></tr
  7359. ><tr
  7360. id=sl_svn7768_447
  7361. ><td class="source">// if (imageMode == CORNER) { // x2, y2 are w/h<br></td></tr
  7362. ><tr
  7363. id=sl_svn7768_448
  7364. ><td class="source">// x2 += x1;<br></td></tr
  7365. ><tr
  7366. id=sl_svn7768_449
  7367. ><td class="source">// y2 += y1;<br></td></tr
  7368. ><tr
  7369. id=sl_svn7768_450
  7370. ><td class="source">//<br></td></tr
  7371. ><tr
  7372. id=sl_svn7768_451
  7373. ><td class="source">// } else if (imageMode == CENTER) {<br></td></tr
  7374. ><tr
  7375. id=sl_svn7768_452
  7376. ><td class="source">// x1 -= x2 / 2;<br></td></tr
  7377. ><tr
  7378. id=sl_svn7768_453
  7379. ><td class="source">// y1 -= y2 / 2;<br></td></tr
  7380. ><tr
  7381. id=sl_svn7768_454
  7382. ><td class="source">// x2 += x1;<br></td></tr
  7383. ><tr
  7384. id=sl_svn7768_455
  7385. ><td class="source">// y2 += y1;<br></td></tr
  7386. ><tr
  7387. id=sl_svn7768_456
  7388. ><td class="source">// }<br></td></tr
  7389. ><tr
  7390. id=sl_svn7768_457
  7391. ><td class="source"> updatePixelsImpl(x, y, w, h);<br></td></tr
  7392. ><tr
  7393. id=sl_svn7768_458
  7394. ><td class="source"> }<br></td></tr
  7395. ><tr
  7396. id=sl_svn7768_459
  7397. ><td class="source"><br></td></tr
  7398. ><tr
  7399. id=sl_svn7768_460
  7400. ><td class="source"><br></td></tr
  7401. ><tr
  7402. id=sl_svn7768_461
  7403. ><td class="source"> protected void updatePixelsImpl(int x, int y, int w, int h) {<br></td></tr
  7404. ><tr
  7405. id=sl_svn7768_462
  7406. ><td class="source"> int x2 = x + w;<br></td></tr
  7407. ><tr
  7408. id=sl_svn7768_463
  7409. ><td class="source"> int y2 = y + h;<br></td></tr
  7410. ><tr
  7411. id=sl_svn7768_464
  7412. ><td class="source"><br></td></tr
  7413. ><tr
  7414. id=sl_svn7768_465
  7415. ><td class="source"> if (!modified) {<br></td></tr
  7416. ><tr
  7417. id=sl_svn7768_466
  7418. ><td class="source"> mx1 = x;<br></td></tr
  7419. ><tr
  7420. id=sl_svn7768_467
  7421. ><td class="source"> mx2 = x2;<br></td></tr
  7422. ><tr
  7423. id=sl_svn7768_468
  7424. ><td class="source"> my1 = y;<br></td></tr
  7425. ><tr
  7426. id=sl_svn7768_469
  7427. ><td class="source"> my2 = y2;<br></td></tr
  7428. ><tr
  7429. id=sl_svn7768_470
  7430. ><td class="source"> modified = true;<br></td></tr
  7431. ><tr
  7432. id=sl_svn7768_471
  7433. ><td class="source"><br></td></tr
  7434. ><tr
  7435. id=sl_svn7768_472
  7436. ><td class="source"> } else {<br></td></tr
  7437. ><tr
  7438. id=sl_svn7768_473
  7439. ><td class="source"> if (x &lt; mx1) mx1 = x;<br></td></tr
  7440. ><tr
  7441. id=sl_svn7768_474
  7442. ><td class="source"> if (x &gt; mx2) mx2 = x;<br></td></tr
  7443. ><tr
  7444. id=sl_svn7768_475
  7445. ><td class="source"> if (y &lt; my1) my1 = y;<br></td></tr
  7446. ><tr
  7447. id=sl_svn7768_476
  7448. ><td class="source"> if (y &gt; my2) my2 = y;<br></td></tr
  7449. ><tr
  7450. id=sl_svn7768_477
  7451. ><td class="source"><br></td></tr
  7452. ><tr
  7453. id=sl_svn7768_478
  7454. ><td class="source"> if (x2 &lt; mx1) mx1 = x2;<br></td></tr
  7455. ><tr
  7456. id=sl_svn7768_479
  7457. ><td class="source"> if (x2 &gt; mx2) mx2 = x2;<br></td></tr
  7458. ><tr
  7459. id=sl_svn7768_480
  7460. ><td class="source"> if (y2 &lt; my1) my1 = y2;<br></td></tr
  7461. ><tr
  7462. id=sl_svn7768_481
  7463. ><td class="source"> if (y2 &gt; my2) my2 = y2;<br></td></tr
  7464. ><tr
  7465. id=sl_svn7768_482
  7466. ><td class="source"> }<br></td></tr
  7467. ><tr
  7468. id=sl_svn7768_483
  7469. ><td class="source"> }<br></td></tr
  7470. ><tr
  7471. id=sl_svn7768_484
  7472. ><td class="source"><br></td></tr
  7473. ><tr
  7474. id=sl_svn7768_485
  7475. ><td class="source"><br></td></tr
  7476. ><tr
  7477. id=sl_svn7768_486
  7478. ><td class="source"><br></td></tr
  7479. ><tr
  7480. id=sl_svn7768_487
  7481. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7482. ><tr
  7483. id=sl_svn7768_488
  7484. ><td class="source"><br></td></tr
  7485. ><tr
  7486. id=sl_svn7768_489
  7487. ><td class="source"> // COPYING IMAGE DATA<br></td></tr
  7488. ><tr
  7489. id=sl_svn7768_490
  7490. ><td class="source"><br></td></tr
  7491. ><tr
  7492. id=sl_svn7768_491
  7493. ><td class="source"><br></td></tr
  7494. ><tr
  7495. id=sl_svn7768_492
  7496. ><td class="source"> /**<br></td></tr
  7497. ><tr
  7498. id=sl_svn7768_493
  7499. ><td class="source"> * Duplicate an image, returns new PImage object.<br></td></tr
  7500. ><tr
  7501. id=sl_svn7768_494
  7502. ><td class="source"> * The pixels[] array for the new object will be unique<br></td></tr
  7503. ><tr
  7504. id=sl_svn7768_495
  7505. ><td class="source"> * and recopied from the source image. This is implemented as an<br></td></tr
  7506. ><tr
  7507. id=sl_svn7768_496
  7508. ><td class="source"> * override of Object.clone(). We recommend using get() instead,<br></td></tr
  7509. ><tr
  7510. id=sl_svn7768_497
  7511. ><td class="source"> * because it prevents you from needing to catch the<br></td></tr
  7512. ><tr
  7513. id=sl_svn7768_498
  7514. ><td class="source"> * CloneNotSupportedException, and from doing a cast from the result.<br></td></tr
  7515. ><tr
  7516. id=sl_svn7768_499
  7517. ><td class="source"> */<br></td></tr
  7518. ><tr
  7519. id=sl_svn7768_500
  7520. ><td class="source"> public Object clone() throws CloneNotSupportedException { // ignore<br></td></tr
  7521. ><tr
  7522. id=sl_svn7768_501
  7523. ><td class="source"> return get();<br></td></tr
  7524. ><tr
  7525. id=sl_svn7768_502
  7526. ><td class="source"> }<br></td></tr
  7527. ><tr
  7528. id=sl_svn7768_503
  7529. ><td class="source"><br></td></tr
  7530. ><tr
  7531. id=sl_svn7768_504
  7532. ><td class="source"><br></td></tr
  7533. ><tr
  7534. id=sl_svn7768_505
  7535. ><td class="source"> /**<br></td></tr
  7536. ><tr
  7537. id=sl_svn7768_506
  7538. ><td class="source"> * Resize the image to a new width and height. To make the image scale proportionally, use 0 as the value for the &lt;b&gt;wide&lt;/b&gt; or &lt;b&gt;high&lt;/b&gt; parameter.<br></td></tr
  7539. ><tr
  7540. id=sl_svn7768_507
  7541. ><td class="source"> *<br></td></tr
  7542. ><tr
  7543. id=sl_svn7768_508
  7544. ><td class="source"> * @webref<br></td></tr
  7545. ><tr
  7546. id=sl_svn7768_509
  7547. ><td class="source"> * @brief Changes the size of an image to a new width and height<br></td></tr
  7548. ><tr
  7549. id=sl_svn7768_510
  7550. ><td class="source"> * @param wide the resized image width<br></td></tr
  7551. ><tr
  7552. id=sl_svn7768_511
  7553. ><td class="source"> * @param high the resized image height<br></td></tr
  7554. ><tr
  7555. id=sl_svn7768_512
  7556. ><td class="source"> *<br></td></tr
  7557. ><tr
  7558. id=sl_svn7768_513
  7559. ><td class="source"> * @see processing.core.PImage#get(int, int, int, int)<br></td></tr
  7560. ><tr
  7561. id=sl_svn7768_514
  7562. ><td class="source"> */<br></td></tr
  7563. ><tr
  7564. id=sl_svn7768_515
  7565. ><td class="source"> public void resize(int wide, int high) { // ignore<br></td></tr
  7566. ><tr
  7567. id=sl_svn7768_516
  7568. ><td class="source"> // Make sure that the pixels[] array is valid<br></td></tr
  7569. ><tr
  7570. id=sl_svn7768_517
  7571. ><td class="source"> loadPixels();<br></td></tr
  7572. ><tr
  7573. id=sl_svn7768_518
  7574. ><td class="source"><br></td></tr
  7575. ><tr
  7576. id=sl_svn7768_519
  7577. ><td class="source"> if (wide &lt;= 0 &amp;&amp; high &lt;= 0) {<br></td></tr
  7578. ><tr
  7579. id=sl_svn7768_520
  7580. ><td class="source"> width = 0; // Gimme a break, don&#39;t waste my time<br></td></tr
  7581. ><tr
  7582. id=sl_svn7768_521
  7583. ><td class="source"> height = 0;<br></td></tr
  7584. ><tr
  7585. id=sl_svn7768_522
  7586. ><td class="source"> pixels = new int[0];<br></td></tr
  7587. ><tr
  7588. id=sl_svn7768_523
  7589. ><td class="source"><br></td></tr
  7590. ><tr
  7591. id=sl_svn7768_524
  7592. ><td class="source"> } else {<br></td></tr
  7593. ><tr
  7594. id=sl_svn7768_525
  7595. ><td class="source"> if (wide == 0) { // Use height to determine relative size<br></td></tr
  7596. ><tr
  7597. id=sl_svn7768_526
  7598. ><td class="source"> float diff = (float) high / (float) height;<br></td></tr
  7599. ><tr
  7600. id=sl_svn7768_527
  7601. ><td class="source"> wide = (int) (width * diff);<br></td></tr
  7602. ><tr
  7603. id=sl_svn7768_528
  7604. ><td class="source"> } else if (high == 0) { // Use the width to determine relative size<br></td></tr
  7605. ><tr
  7606. id=sl_svn7768_529
  7607. ><td class="source"> float diff = (float) wide / (float) width;<br></td></tr
  7608. ><tr
  7609. id=sl_svn7768_530
  7610. ><td class="source"> high = (int) (height * diff);<br></td></tr
  7611. ><tr
  7612. id=sl_svn7768_531
  7613. ><td class="source"> }<br></td></tr
  7614. ><tr
  7615. id=sl_svn7768_532
  7616. ><td class="source"> PImage temp = new PImage(wide, high, this.format);<br></td></tr
  7617. ><tr
  7618. id=sl_svn7768_533
  7619. ><td class="source"> temp.copy(this, 0, 0, width, height, 0, 0, wide, high);<br></td></tr
  7620. ><tr
  7621. id=sl_svn7768_534
  7622. ><td class="source"> this.width = wide;<br></td></tr
  7623. ><tr
  7624. id=sl_svn7768_535
  7625. ><td class="source"> this.height = high;<br></td></tr
  7626. ><tr
  7627. id=sl_svn7768_536
  7628. ><td class="source"> this.pixels = temp.pixels;<br></td></tr
  7629. ><tr
  7630. id=sl_svn7768_537
  7631. ><td class="source"> }<br></td></tr
  7632. ><tr
  7633. id=sl_svn7768_538
  7634. ><td class="source"> // Mark the pixels array as altered<br></td></tr
  7635. ><tr
  7636. id=sl_svn7768_539
  7637. ><td class="source"> updatePixels();<br></td></tr
  7638. ><tr
  7639. id=sl_svn7768_540
  7640. ><td class="source"> }<br></td></tr
  7641. ><tr
  7642. id=sl_svn7768_541
  7643. ><td class="source"><br></td></tr
  7644. ><tr
  7645. id=sl_svn7768_542
  7646. ><td class="source"><br></td></tr
  7647. ><tr
  7648. id=sl_svn7768_543
  7649. ><td class="source"><br></td></tr
  7650. ><tr
  7651. id=sl_svn7768_544
  7652. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7653. ><tr
  7654. id=sl_svn7768_545
  7655. ><td class="source"><br></td></tr
  7656. ><tr
  7657. id=sl_svn7768_546
  7658. ><td class="source"> // GET/SET PIXELS<br></td></tr
  7659. ><tr
  7660. id=sl_svn7768_547
  7661. ><td class="source"><br></td></tr
  7662. ><tr
  7663. id=sl_svn7768_548
  7664. ><td class="source"><br></td></tr
  7665. ><tr
  7666. id=sl_svn7768_549
  7667. ><td class="source"> /**<br></td></tr
  7668. ><tr
  7669. id=sl_svn7768_550
  7670. ><td class="source"> * Returns an ARGB &quot;color&quot; type (a packed 32 bit int with the color.<br></td></tr
  7671. ><tr
  7672. id=sl_svn7768_551
  7673. ><td class="source"> * If the coordinate is outside the image, zero is returned<br></td></tr
  7674. ><tr
  7675. id=sl_svn7768_552
  7676. ><td class="source"> * (black, but completely transparent).<br></td></tr
  7677. ><tr
  7678. id=sl_svn7768_553
  7679. ><td class="source"> * &lt;P&gt;<br></td></tr
  7680. ><tr
  7681. id=sl_svn7768_554
  7682. ><td class="source"> * If the image is in RGB format (i.e. on a PVideo object),<br></td></tr
  7683. ><tr
  7684. id=sl_svn7768_555
  7685. ><td class="source"> * the value will get its high bits set, just to avoid cases where<br></td></tr
  7686. ><tr
  7687. id=sl_svn7768_556
  7688. ><td class="source"> * they haven&#39;t been set already.<br></td></tr
  7689. ><tr
  7690. id=sl_svn7768_557
  7691. ><td class="source"> * &lt;P&gt;<br></td></tr
  7692. ><tr
  7693. id=sl_svn7768_558
  7694. ><td class="source"> * If the image is in ALPHA format, this returns a white with its<br></td></tr
  7695. ><tr
  7696. id=sl_svn7768_559
  7697. ><td class="source"> * alpha value set.<br></td></tr
  7698. ><tr
  7699. id=sl_svn7768_560
  7700. ><td class="source"> * &lt;P&gt;<br></td></tr
  7701. ><tr
  7702. id=sl_svn7768_561
  7703. ><td class="source"> * This function is included primarily for beginners. It is quite<br></td></tr
  7704. ><tr
  7705. id=sl_svn7768_562
  7706. ><td class="source"> * slow because it has to check to see if the x, y that was provided<br></td></tr
  7707. ><tr
  7708. id=sl_svn7768_563
  7709. ><td class="source"> * is inside the bounds, and then has to check to see what image<br></td></tr
  7710. ><tr
  7711. id=sl_svn7768_564
  7712. ><td class="source"> * type it is. If you want things to be more efficient, access the<br></td></tr
  7713. ><tr
  7714. id=sl_svn7768_565
  7715. ><td class="source"> * pixels[] array directly.<br></td></tr
  7716. ><tr
  7717. id=sl_svn7768_566
  7718. ><td class="source"> */<br></td></tr
  7719. ><tr
  7720. id=sl_svn7768_567
  7721. ><td class="source"> public int get(int x, int y) {<br></td></tr
  7722. ><tr
  7723. id=sl_svn7768_568
  7724. ><td class="source"> if ((x &lt; 0) || (y &lt; 0) || (x &gt;= width) || (y &gt;= height)) return 0;<br></td></tr
  7725. ><tr
  7726. id=sl_svn7768_569
  7727. ><td class="source"><br></td></tr
  7728. ><tr
  7729. id=sl_svn7768_570
  7730. ><td class="source"> switch (format) {<br></td></tr
  7731. ><tr
  7732. id=sl_svn7768_571
  7733. ><td class="source"> case RGB:<br></td></tr
  7734. ><tr
  7735. id=sl_svn7768_572
  7736. ><td class="source"> return pixels[y*width + x] | 0xff000000;<br></td></tr
  7737. ><tr
  7738. id=sl_svn7768_573
  7739. ><td class="source"><br></td></tr
  7740. ><tr
  7741. id=sl_svn7768_574
  7742. ><td class="source"> case ARGB:<br></td></tr
  7743. ><tr
  7744. id=sl_svn7768_575
  7745. ><td class="source"> return pixels[y*width + x];<br></td></tr
  7746. ><tr
  7747. id=sl_svn7768_576
  7748. ><td class="source"><br></td></tr
  7749. ><tr
  7750. id=sl_svn7768_577
  7751. ><td class="source"> case ALPHA:<br></td></tr
  7752. ><tr
  7753. id=sl_svn7768_578
  7754. ><td class="source"> return (pixels[y*width + x] &lt;&lt; 24) | 0xffffff;<br></td></tr
  7755. ><tr
  7756. id=sl_svn7768_579
  7757. ><td class="source"> }<br></td></tr
  7758. ><tr
  7759. id=sl_svn7768_580
  7760. ><td class="source"> return 0;<br></td></tr
  7761. ><tr
  7762. id=sl_svn7768_581
  7763. ><td class="source"> }<br></td></tr
  7764. ><tr
  7765. id=sl_svn7768_582
  7766. ><td class="source"><br></td></tr
  7767. ><tr
  7768. id=sl_svn7768_583
  7769. ><td class="source"><br></td></tr
  7770. ><tr
  7771. id=sl_svn7768_584
  7772. ><td class="source"> /**<br></td></tr
  7773. ><tr
  7774. id=sl_svn7768_585
  7775. ><td class="source"> * Reads the color of any pixel or grabs a group of pixels. If no parameters are specified, the entire image is returned. Get the value of one pixel by specifying an x,y coordinate. Get a section of the display window by specifing an additional &lt;b&gt;width&lt;/b&gt; and &lt;b&gt;height&lt;/b&gt; parameter. If the pixel requested is outside of the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. Even though you may have drawn a shape with &lt;b&gt;colorMode(HSB)&lt;/b&gt;, the numbers returned will be in RGB.<br></td></tr
  7776. ><tr
  7777. id=sl_svn7768_586
  7778. ><td class="source"> * &lt;br&gt;&lt;br&gt;Getting the color of a single pixel with &lt;b&gt;get(x, y)&lt;/b&gt; is easy, but not as fast as grabbing the data directly from &lt;b&gt;pixels[]&lt;/b&gt;. The equivalent statement to &quot;get(x, y)&quot; using &lt;b&gt;pixels[]&lt;/b&gt; is &quot;pixels[y*width+x]&quot;. Processing requires calling &lt;b&gt;loadPixels()&lt;/b&gt; to load the display window data into the &lt;b&gt;pixels[]&lt;/b&gt; array before getting the values.<br></td></tr
  7779. ><tr
  7780. id=sl_svn7768_587
  7781. ><td class="source"> * &lt;br&gt;&lt;br&gt;As of release 0149, this function ignores &lt;b&gt;imageMode()&lt;/b&gt;.<br></td></tr
  7782. ><tr
  7783. id=sl_svn7768_588
  7784. ><td class="source"> *<br></td></tr
  7785. ><tr
  7786. id=sl_svn7768_589
  7787. ><td class="source"> * @webref<br></td></tr
  7788. ><tr
  7789. id=sl_svn7768_590
  7790. ><td class="source"> * @brief Reads the color of any pixel or grabs a rectangle of pixels<br></td></tr
  7791. ><tr
  7792. id=sl_svn7768_591
  7793. ><td class="source"> * @param x x-coordinate of the pixel<br></td></tr
  7794. ><tr
  7795. id=sl_svn7768_592
  7796. ><td class="source"> * @param y y-coordinate of the pixel<br></td></tr
  7797. ><tr
  7798. id=sl_svn7768_593
  7799. ><td class="source"> * @param w width of pixel rectangle to get<br></td></tr
  7800. ><tr
  7801. id=sl_svn7768_594
  7802. ><td class="source"> * @param h height of pixel rectangle to get<br></td></tr
  7803. ><tr
  7804. id=sl_svn7768_595
  7805. ><td class="source"> *<br></td></tr
  7806. ><tr
  7807. id=sl_svn7768_596
  7808. ><td class="source"> * @see processing.core.PImage#set(int, int, int)<br></td></tr
  7809. ><tr
  7810. id=sl_svn7768_597
  7811. ><td class="source"> * @see processing.core.PImage#pixels<br></td></tr
  7812. ><tr
  7813. id=sl_svn7768_598
  7814. ><td class="source"> * @see processing.core.PImage#copy(PImage, int, int, int, int, int, int, int, int)<br></td></tr
  7815. ><tr
  7816. id=sl_svn7768_599
  7817. ><td class="source"> */<br></td></tr
  7818. ><tr
  7819. id=sl_svn7768_600
  7820. ><td class="source"> public PImage get(int x, int y, int w, int h) {<br></td></tr
  7821. ><tr
  7822. id=sl_svn7768_601
  7823. ><td class="source"> /*<br></td></tr
  7824. ><tr
  7825. id=sl_svn7768_602
  7826. ><td class="source"> if (imageMode == CORNERS) { // if CORNER, do nothing<br></td></tr
  7827. ><tr
  7828. id=sl_svn7768_603
  7829. ><td class="source"> //x2 += x1; y2 += y1;<br></td></tr
  7830. ><tr
  7831. id=sl_svn7768_604
  7832. ><td class="source"> // w/h are x2/y2 in this case, bring em down to size<br></td></tr
  7833. ><tr
  7834. id=sl_svn7768_605
  7835. ><td class="source"> w = (w - x);<br></td></tr
  7836. ><tr
  7837. id=sl_svn7768_606
  7838. ><td class="source"> h = (h - y);<br></td></tr
  7839. ><tr
  7840. id=sl_svn7768_607
  7841. ><td class="source"> } else if (imageMode == CENTER) {<br></td></tr
  7842. ><tr
  7843. id=sl_svn7768_608
  7844. ><td class="source"> x -= w/2;<br></td></tr
  7845. ><tr
  7846. id=sl_svn7768_609
  7847. ><td class="source"> y -= h/2;<br></td></tr
  7848. ><tr
  7849. id=sl_svn7768_610
  7850. ><td class="source"> }<br></td></tr
  7851. ><tr
  7852. id=sl_svn7768_611
  7853. ><td class="source"> */<br></td></tr
  7854. ><tr
  7855. id=sl_svn7768_612
  7856. ><td class="source"><br></td></tr
  7857. ><tr
  7858. id=sl_svn7768_613
  7859. ><td class="source"> if (x &lt; 0) {<br></td></tr
  7860. ><tr
  7861. id=sl_svn7768_614
  7862. ><td class="source"> w += x; // clip off the left edge<br></td></tr
  7863. ><tr
  7864. id=sl_svn7768_615
  7865. ><td class="source"> x = 0;<br></td></tr
  7866. ><tr
  7867. id=sl_svn7768_616
  7868. ><td class="source"> }<br></td></tr
  7869. ><tr
  7870. id=sl_svn7768_617
  7871. ><td class="source"> if (y &lt; 0) {<br></td></tr
  7872. ><tr
  7873. id=sl_svn7768_618
  7874. ><td class="source"> h += y; // clip off some of the height<br></td></tr
  7875. ><tr
  7876. id=sl_svn7768_619
  7877. ><td class="source"> y = 0;<br></td></tr
  7878. ><tr
  7879. id=sl_svn7768_620
  7880. ><td class="source"> }<br></td></tr
  7881. ><tr
  7882. id=sl_svn7768_621
  7883. ><td class="source"><br></td></tr
  7884. ><tr
  7885. id=sl_svn7768_622
  7886. ><td class="source"> if (x + w &gt; width) w = width - x;<br></td></tr
  7887. ><tr
  7888. id=sl_svn7768_623
  7889. ><td class="source"> if (y + h &gt; height) h = height - y;<br></td></tr
  7890. ><tr
  7891. id=sl_svn7768_624
  7892. ><td class="source"><br></td></tr
  7893. ><tr
  7894. id=sl_svn7768_625
  7895. ><td class="source"> return getImpl(x, y, w, h);<br></td></tr
  7896. ><tr
  7897. id=sl_svn7768_626
  7898. ><td class="source"> }<br></td></tr
  7899. ><tr
  7900. id=sl_svn7768_627
  7901. ><td class="source"><br></td></tr
  7902. ><tr
  7903. id=sl_svn7768_628
  7904. ><td class="source"><br></td></tr
  7905. ><tr
  7906. id=sl_svn7768_629
  7907. ><td class="source"> /**<br></td></tr
  7908. ><tr
  7909. id=sl_svn7768_630
  7910. ><td class="source"> * Internal function to actually handle getting a block of pixels that<br></td></tr
  7911. ><tr
  7912. id=sl_svn7768_631
  7913. ><td class="source"> * has already been properly cropped to a valid region. That is, x/y/w/h<br></td></tr
  7914. ><tr
  7915. id=sl_svn7768_632
  7916. ><td class="source"> * are guaranteed to be inside the image space, so the implementation can<br></td></tr
  7917. ><tr
  7918. id=sl_svn7768_633
  7919. ><td class="source"> * use the fastest possible pixel copying method.<br></td></tr
  7920. ><tr
  7921. id=sl_svn7768_634
  7922. ><td class="source"> */<br></td></tr
  7923. ><tr
  7924. id=sl_svn7768_635
  7925. ><td class="source"> protected PImage getImpl(int x, int y, int w, int h) {<br></td></tr
  7926. ><tr
  7927. id=sl_svn7768_636
  7928. ><td class="source"> PImage newbie = new PImage(w, h, format);<br></td></tr
  7929. ><tr
  7930. id=sl_svn7768_637
  7931. ><td class="source"> newbie.parent = parent;<br></td></tr
  7932. ><tr
  7933. id=sl_svn7768_638
  7934. ><td class="source"><br></td></tr
  7935. ><tr
  7936. id=sl_svn7768_639
  7937. ><td class="source"> int index = y*width + x;<br></td></tr
  7938. ><tr
  7939. id=sl_svn7768_640
  7940. ><td class="source"> int index2 = 0;<br></td></tr
  7941. ><tr
  7942. id=sl_svn7768_641
  7943. ><td class="source"> for (int row = y; row &lt; y+h; row++) {<br></td></tr
  7944. ><tr
  7945. id=sl_svn7768_642
  7946. ><td class="source"> System.arraycopy(pixels, index, newbie.pixels, index2, w);<br></td></tr
  7947. ><tr
  7948. id=sl_svn7768_643
  7949. ><td class="source"> index += width;<br></td></tr
  7950. ><tr
  7951. id=sl_svn7768_644
  7952. ><td class="source"> index2 += w;<br></td></tr
  7953. ><tr
  7954. id=sl_svn7768_645
  7955. ><td class="source"> }<br></td></tr
  7956. ><tr
  7957. id=sl_svn7768_646
  7958. ><td class="source"> return newbie;<br></td></tr
  7959. ><tr
  7960. id=sl_svn7768_647
  7961. ><td class="source"> }<br></td></tr
  7962. ><tr
  7963. id=sl_svn7768_648
  7964. ><td class="source"><br></td></tr
  7965. ><tr
  7966. id=sl_svn7768_649
  7967. ><td class="source"><br></td></tr
  7968. ><tr
  7969. id=sl_svn7768_650
  7970. ><td class="source"> /**<br></td></tr
  7971. ><tr
  7972. id=sl_svn7768_651
  7973. ><td class="source"> * Returns a copy of this PImage. Equivalent to get(0, 0, width, height).<br></td></tr
  7974. ><tr
  7975. id=sl_svn7768_652
  7976. ><td class="source"> */<br></td></tr
  7977. ><tr
  7978. id=sl_svn7768_653
  7979. ><td class="source"> public PImage get() {<br></td></tr
  7980. ><tr
  7981. id=sl_svn7768_654
  7982. ><td class="source"> // Formerly this used clone(), which caused memory problems.<br></td></tr
  7983. ><tr
  7984. id=sl_svn7768_655
  7985. ><td class="source"> // http://code.google.com/p/processing/issues/detail?id=42<br></td></tr
  7986. ><tr
  7987. id=sl_svn7768_656
  7988. ><td class="source"> return get(0, 0, width, height);<br></td></tr
  7989. ><tr
  7990. id=sl_svn7768_657
  7991. ><td class="source"> }<br></td></tr
  7992. ><tr
  7993. id=sl_svn7768_658
  7994. ><td class="source"><br></td></tr
  7995. ><tr
  7996. id=sl_svn7768_659
  7997. ><td class="source"><br></td></tr
  7998. ><tr
  7999. id=sl_svn7768_660
  8000. ><td class="source"> /**<br></td></tr
  8001. ><tr
  8002. id=sl_svn7768_661
  8003. ><td class="source"> * Changes the color of any pixel or writes an image directly into the display window. The &lt;b&gt;x&lt;/b&gt; and &lt;b&gt;y&lt;/b&gt; parameters specify the pixel to change and the &lt;b&gt;color&lt;/b&gt; parameter specifies the color value. The color parameter is affected by the current color mode (the default is RGB values from 0 to 255). When setting an image, the x and y parameters define the coordinates for the upper-left corner of the image.<br></td></tr
  8004. ><tr
  8005. id=sl_svn7768_662
  8006. ><td class="source"> * &lt;br&gt;&lt;br&gt;Setting the color of a single pixel with &lt;b&gt;set(x, y)&lt;/b&gt; is easy, but not as fast as putting the data directly into &lt;b&gt;pixels[]&lt;/b&gt;. The equivalent statement to &quot;set(x, y, #000000)&quot; using &lt;b&gt;pixels[]&lt;/b&gt; is &quot;pixels[y*width+x] = #000000&quot;. You must call &lt;b&gt;loadPixels()&lt;/b&gt; to load the display window data into the &lt;b&gt;pixels[]&lt;/b&gt; array before setting the values and calling &lt;b&gt;updatePixels()&lt;/b&gt; to update the window with any changes.<br></td></tr
  8007. ><tr
  8008. id=sl_svn7768_663
  8009. ><td class="source"> * &lt;br&gt;&lt;br&gt;As of release 1.0, this function ignores &lt;b&gt;imageMode()&lt;/b&gt;.<br></td></tr
  8010. ><tr
  8011. id=sl_svn7768_664
  8012. ><td class="source"> * &lt;br&gt;&lt;br&gt;Due to what appears to be a bug in Apple&#39;s Java implementation, the point() and set() methods are extremely slow in some circumstances when used with the default renderer. Using P2D or P3D will fix the problem. Grouping many calls to point() or set() together can also help. (&lt;a href=&quot;http://dev.processing.org/bugs/show_bug.cgi?id=1094&quot;&gt;Bug 1094&lt;/a&gt;)<br></td></tr
  8013. ><tr
  8014. id=sl_svn7768_665
  8015. ><td class="source"> * =advanced<br></td></tr
  8016. ><tr
  8017. id=sl_svn7768_666
  8018. ><td class="source"> * &lt;br&gt;&lt;br&gt;As of release 0149, this function ignores &lt;b&gt;imageMode()&lt;/b&gt;.<br></td></tr
  8019. ><tr
  8020. id=sl_svn7768_667
  8021. ><td class="source"> *<br></td></tr
  8022. ><tr
  8023. id=sl_svn7768_668
  8024. ><td class="source"> * @webref image:pixels<br></td></tr
  8025. ><tr
  8026. id=sl_svn7768_669
  8027. ><td class="source"> * @param x x-coordinate of the pixel<br></td></tr
  8028. ><tr
  8029. id=sl_svn7768_670
  8030. ><td class="source"> * @param y y-coordinate of the pixel<br></td></tr
  8031. ><tr
  8032. id=sl_svn7768_671
  8033. ><td class="source"> * @param c any value of the color datatype<br></td></tr
  8034. ><tr
  8035. id=sl_svn7768_672
  8036. ><td class="source"> */<br></td></tr
  8037. ><tr
  8038. id=sl_svn7768_673
  8039. ><td class="source"> public void set(int x, int y, int c) {<br></td></tr
  8040. ><tr
  8041. id=sl_svn7768_674
  8042. ><td class="source"> if ((x &lt; 0) || (y &lt; 0) || (x &gt;= width) || (y &gt;= height)) return;<br></td></tr
  8043. ><tr
  8044. id=sl_svn7768_675
  8045. ><td class="source"> pixels[y*width + x] = c;<br></td></tr
  8046. ><tr
  8047. id=sl_svn7768_676
  8048. ><td class="source"> updatePixelsImpl(x, y, x+1, y+1); // slow?<br></td></tr
  8049. ><tr
  8050. id=sl_svn7768_677
  8051. ><td class="source"> }<br></td></tr
  8052. ><tr
  8053. id=sl_svn7768_678
  8054. ><td class="source"><br></td></tr
  8055. ><tr
  8056. id=sl_svn7768_679
  8057. ><td class="source"><br></td></tr
  8058. ><tr
  8059. id=sl_svn7768_680
  8060. ><td class="source"> /**<br></td></tr
  8061. ><tr
  8062. id=sl_svn7768_681
  8063. ><td class="source"> * Efficient method of drawing an image&#39;s pixels directly to this surface.<br></td></tr
  8064. ><tr
  8065. id=sl_svn7768_682
  8066. ><td class="source"> * No variations are employed, meaning that any scale, tint, or imageMode<br></td></tr
  8067. ><tr
  8068. id=sl_svn7768_683
  8069. ><td class="source"> * settings will be ignored.<br></td></tr
  8070. ><tr
  8071. id=sl_svn7768_684
  8072. ><td class="source"> */<br></td></tr
  8073. ><tr
  8074. id=sl_svn7768_685
  8075. ><td class="source"> public void set(int x, int y, PImage src) {<br></td></tr
  8076. ><tr
  8077. id=sl_svn7768_686
  8078. ><td class="source"> int sx = 0;<br></td></tr
  8079. ><tr
  8080. id=sl_svn7768_687
  8081. ><td class="source"> int sy = 0;<br></td></tr
  8082. ><tr
  8083. id=sl_svn7768_688
  8084. ><td class="source"> int sw = src.width;<br></td></tr
  8085. ><tr
  8086. id=sl_svn7768_689
  8087. ><td class="source"> int sh = src.height;<br></td></tr
  8088. ><tr
  8089. id=sl_svn7768_690
  8090. ><td class="source"><br></td></tr
  8091. ><tr
  8092. id=sl_svn7768_691
  8093. ><td class="source">// if (imageMode == CENTER) {<br></td></tr
  8094. ><tr
  8095. id=sl_svn7768_692
  8096. ><td class="source">// x -= src.width/2;<br></td></tr
  8097. ><tr
  8098. id=sl_svn7768_693
  8099. ><td class="source">// y -= src.height/2;<br></td></tr
  8100. ><tr
  8101. id=sl_svn7768_694
  8102. ><td class="source">// }<br></td></tr
  8103. ><tr
  8104. id=sl_svn7768_695
  8105. ><td class="source"> if (x &lt; 0) { // off left edge<br></td></tr
  8106. ><tr
  8107. id=sl_svn7768_696
  8108. ><td class="source"> sx -= x;<br></td></tr
  8109. ><tr
  8110. id=sl_svn7768_697
  8111. ><td class="source"> sw += x;<br></td></tr
  8112. ><tr
  8113. id=sl_svn7768_698
  8114. ><td class="source"> x = 0;<br></td></tr
  8115. ><tr
  8116. id=sl_svn7768_699
  8117. ><td class="source"> }<br></td></tr
  8118. ><tr
  8119. id=sl_svn7768_700
  8120. ><td class="source"> if (y &lt; 0) { // off top edge<br></td></tr
  8121. ><tr
  8122. id=sl_svn7768_701
  8123. ><td class="source"> sy -= y;<br></td></tr
  8124. ><tr
  8125. id=sl_svn7768_702
  8126. ><td class="source"> sh += y;<br></td></tr
  8127. ><tr
  8128. id=sl_svn7768_703
  8129. ><td class="source"> y = 0;<br></td></tr
  8130. ><tr
  8131. id=sl_svn7768_704
  8132. ><td class="source"> }<br></td></tr
  8133. ><tr
  8134. id=sl_svn7768_705
  8135. ><td class="source"> if (x + sw &gt; width) { // off right edge<br></td></tr
  8136. ><tr
  8137. id=sl_svn7768_706
  8138. ><td class="source"> sw = width - x;<br></td></tr
  8139. ><tr
  8140. id=sl_svn7768_707
  8141. ><td class="source"> }<br></td></tr
  8142. ><tr
  8143. id=sl_svn7768_708
  8144. ><td class="source"> if (y + sh &gt; height) { // off bottom edge<br></td></tr
  8145. ><tr
  8146. id=sl_svn7768_709
  8147. ><td class="source"> sh = height - y;<br></td></tr
  8148. ><tr
  8149. id=sl_svn7768_710
  8150. ><td class="source"> }<br></td></tr
  8151. ><tr
  8152. id=sl_svn7768_711
  8153. ><td class="source"><br></td></tr
  8154. ><tr
  8155. id=sl_svn7768_712
  8156. ><td class="source"> // this could be nonexistant<br></td></tr
  8157. ><tr
  8158. id=sl_svn7768_713
  8159. ><td class="source"> if ((sw &lt;= 0) || (sh &lt;= 0)) return;<br></td></tr
  8160. ><tr
  8161. id=sl_svn7768_714
  8162. ><td class="source"><br></td></tr
  8163. ><tr
  8164. id=sl_svn7768_715
  8165. ><td class="source"> setImpl(x, y, sx, sy, sw, sh, src);<br></td></tr
  8166. ><tr
  8167. id=sl_svn7768_716
  8168. ><td class="source"> }<br></td></tr
  8169. ><tr
  8170. id=sl_svn7768_717
  8171. ><td class="source"><br></td></tr
  8172. ><tr
  8173. id=sl_svn7768_718
  8174. ><td class="source"><br></td></tr
  8175. ><tr
  8176. id=sl_svn7768_719
  8177. ><td class="source"> /**<br></td></tr
  8178. ><tr
  8179. id=sl_svn7768_720
  8180. ><td class="source"> * Internal function to actually handle setting a block of pixels that<br></td></tr
  8181. ><tr
  8182. id=sl_svn7768_721
  8183. ><td class="source"> * has already been properly cropped from the image to a valid region.<br></td></tr
  8184. ><tr
  8185. id=sl_svn7768_722
  8186. ><td class="source"> */<br></td></tr
  8187. ><tr
  8188. id=sl_svn7768_723
  8189. ><td class="source"> protected void setImpl(int dx, int dy, int sx, int sy, int sw, int sh,<br></td></tr
  8190. ><tr
  8191. id=sl_svn7768_724
  8192. ><td class="source"> PImage src) {<br></td></tr
  8193. ><tr
  8194. id=sl_svn7768_725
  8195. ><td class="source"> int srcOffset = sy * src.width + sx;<br></td></tr
  8196. ><tr
  8197. id=sl_svn7768_726
  8198. ><td class="source"> int dstOffset = dy * width + dx;<br></td></tr
  8199. ><tr
  8200. id=sl_svn7768_727
  8201. ><td class="source"><br></td></tr
  8202. ><tr
  8203. id=sl_svn7768_728
  8204. ><td class="source"> for (int y = sy; y &lt; sy + sh; y++) {<br></td></tr
  8205. ><tr
  8206. id=sl_svn7768_729
  8207. ><td class="source"> System.arraycopy(src.pixels, srcOffset, pixels, dstOffset, sw);<br></td></tr
  8208. ><tr
  8209. id=sl_svn7768_730
  8210. ><td class="source"> srcOffset += src.width;<br></td></tr
  8211. ><tr
  8212. id=sl_svn7768_731
  8213. ><td class="source"> dstOffset += width;<br></td></tr
  8214. ><tr
  8215. id=sl_svn7768_732
  8216. ><td class="source"> }<br></td></tr
  8217. ><tr
  8218. id=sl_svn7768_733
  8219. ><td class="source"> updatePixelsImpl(sx, sy, sx+sw, sy+sh);<br></td></tr
  8220. ><tr
  8221. id=sl_svn7768_734
  8222. ><td class="source"> }<br></td></tr
  8223. ><tr
  8224. id=sl_svn7768_735
  8225. ><td class="source"><br></td></tr
  8226. ><tr
  8227. id=sl_svn7768_736
  8228. ><td class="source"><br></td></tr
  8229. ><tr
  8230. id=sl_svn7768_737
  8231. ><td class="source"><br></td></tr
  8232. ><tr
  8233. id=sl_svn7768_738
  8234. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8235. ><tr
  8236. id=sl_svn7768_739
  8237. ><td class="source"><br></td></tr
  8238. ><tr
  8239. id=sl_svn7768_740
  8240. ><td class="source"> // ALPHA CHANNEL<br></td></tr
  8241. ><tr
  8242. id=sl_svn7768_741
  8243. ><td class="source"><br></td></tr
  8244. ><tr
  8245. id=sl_svn7768_742
  8246. ><td class="source"><br></td></tr
  8247. ><tr
  8248. id=sl_svn7768_743
  8249. ><td class="source"> /**<br></td></tr
  8250. ><tr
  8251. id=sl_svn7768_744
  8252. ><td class="source"> * Set alpha channel for an image. Black colors in the source<br></td></tr
  8253. ><tr
  8254. id=sl_svn7768_745
  8255. ><td class="source"> * image will make the destination image completely transparent,<br></td></tr
  8256. ><tr
  8257. id=sl_svn7768_746
  8258. ><td class="source"> * and white will make things fully opaque. Gray values will<br></td></tr
  8259. ><tr
  8260. id=sl_svn7768_747
  8261. ><td class="source"> * be in-between steps.<br></td></tr
  8262. ><tr
  8263. id=sl_svn7768_748
  8264. ><td class="source"> * &lt;P&gt;<br></td></tr
  8265. ><tr
  8266. id=sl_svn7768_749
  8267. ><td class="source"> * Strictly speaking the &quot;blue&quot; value from the source image is<br></td></tr
  8268. ><tr
  8269. id=sl_svn7768_750
  8270. ><td class="source"> * used as the alpha color. For a fully grayscale image, this<br></td></tr
  8271. ><tr
  8272. id=sl_svn7768_751
  8273. ><td class="source"> * is correct, but for a color image it&#39;s not 100% accurate.<br></td></tr
  8274. ><tr
  8275. id=sl_svn7768_752
  8276. ><td class="source"> * For a more accurate conversion, first use filter(GRAY)<br></td></tr
  8277. ><tr
  8278. id=sl_svn7768_753
  8279. ><td class="source"> * which will make the image into a &quot;correct&quot; grayscale by<br></td></tr
  8280. ><tr
  8281. id=sl_svn7768_754
  8282. ><td class="source"> * performing a proper luminance-based conversion.<br></td></tr
  8283. ><tr
  8284. id=sl_svn7768_755
  8285. ><td class="source"> *<br></td></tr
  8286. ><tr
  8287. id=sl_svn7768_756
  8288. ><td class="source"> * @param maskArray any array of Integer numbers used as the alpha channel, needs to be same length as the image&#39;s pixel array<br></td></tr
  8289. ><tr
  8290. id=sl_svn7768_757
  8291. ><td class="source"> */<br></td></tr
  8292. ><tr
  8293. id=sl_svn7768_758
  8294. ><td class="source"> public void mask(int maskArray[]) {<br></td></tr
  8295. ><tr
  8296. id=sl_svn7768_759
  8297. ><td class="source"> loadPixels();<br></td></tr
  8298. ><tr
  8299. id=sl_svn7768_760
  8300. ><td class="source"> // don&#39;t execute if mask image is different size<br></td></tr
  8301. ><tr
  8302. id=sl_svn7768_761
  8303. ><td class="source"> if (maskArray.length != pixels.length) {<br></td></tr
  8304. ><tr
  8305. id=sl_svn7768_762
  8306. ><td class="source"> throw new RuntimeException(&quot;The PImage used with mask() must be &quot; +<br></td></tr
  8307. ><tr
  8308. id=sl_svn7768_763
  8309. ><td class="source"> &quot;the same size as the applet.&quot;);<br></td></tr
  8310. ><tr
  8311. id=sl_svn7768_764
  8312. ><td class="source"> }<br></td></tr
  8313. ><tr
  8314. id=sl_svn7768_765
  8315. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8316. ><tr
  8317. id=sl_svn7768_766
  8318. ><td class="source"> pixels[i] = ((maskArray[i] &amp; 0xff) &lt;&lt; 24) | (pixels[i] &amp; 0xffffff);<br></td></tr
  8319. ><tr
  8320. id=sl_svn7768_767
  8321. ><td class="source"> }<br></td></tr
  8322. ><tr
  8323. id=sl_svn7768_768
  8324. ><td class="source"> format = ARGB;<br></td></tr
  8325. ><tr
  8326. id=sl_svn7768_769
  8327. ><td class="source"> updatePixels();<br></td></tr
  8328. ><tr
  8329. id=sl_svn7768_770
  8330. ><td class="source"> }<br></td></tr
  8331. ><tr
  8332. id=sl_svn7768_771
  8333. ><td class="source"><br></td></tr
  8334. ><tr
  8335. id=sl_svn7768_772
  8336. ><td class="source"><br></td></tr
  8337. ><tr
  8338. id=sl_svn7768_773
  8339. ><td class="source"> /**<br></td></tr
  8340. ><tr
  8341. id=sl_svn7768_774
  8342. ><td class="source"> * Masks part of an image from displaying by loading another image and using it as an alpha channel.<br></td></tr
  8343. ><tr
  8344. id=sl_svn7768_775
  8345. ><td class="source"> * This mask image should only contain grayscale data, but only the blue color channel is used.<br></td></tr
  8346. ><tr
  8347. id=sl_svn7768_776
  8348. ><td class="source"> * The mask image needs to be the same size as the image to which it is applied.<br></td></tr
  8349. ><tr
  8350. id=sl_svn7768_777
  8351. ><td class="source"> * In addition to using a mask image, an integer array containing the alpha channel data can be specified directly.<br></td></tr
  8352. ><tr
  8353. id=sl_svn7768_778
  8354. ><td class="source"> * This method is useful for creating dynamically generated alpha masks.<br></td></tr
  8355. ><tr
  8356. id=sl_svn7768_779
  8357. ><td class="source"> * This array must be of the same length as the target image&#39;s pixels array and should contain only grayscale data of values between 0-255.<br></td></tr
  8358. ><tr
  8359. id=sl_svn7768_780
  8360. ><td class="source"> * @webref<br></td></tr
  8361. ><tr
  8362. id=sl_svn7768_781
  8363. ><td class="source"> * @brief Masks part of the image from displaying<br></td></tr
  8364. ><tr
  8365. id=sl_svn7768_782
  8366. ><td class="source"> * @param maskImg any PImage object used as the alpha channel for &quot;img&quot;, needs to be same size as &quot;img&quot;<br></td></tr
  8367. ><tr
  8368. id=sl_svn7768_783
  8369. ><td class="source"> */<br></td></tr
  8370. ><tr
  8371. id=sl_svn7768_784
  8372. ><td class="source"> public void mask(PImage maskImg) {<br></td></tr
  8373. ><tr
  8374. id=sl_svn7768_785
  8375. ><td class="source"> maskImg.loadPixels();<br></td></tr
  8376. ><tr
  8377. id=sl_svn7768_786
  8378. ><td class="source"> mask(maskImg.pixels);<br></td></tr
  8379. ><tr
  8380. id=sl_svn7768_787
  8381. ><td class="source"> }<br></td></tr
  8382. ><tr
  8383. id=sl_svn7768_788
  8384. ><td class="source"><br></td></tr
  8385. ><tr
  8386. id=sl_svn7768_789
  8387. ><td class="source"><br></td></tr
  8388. ><tr
  8389. id=sl_svn7768_790
  8390. ><td class="source"><br></td></tr
  8391. ><tr
  8392. id=sl_svn7768_791
  8393. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8394. ><tr
  8395. id=sl_svn7768_792
  8396. ><td class="source"><br></td></tr
  8397. ><tr
  8398. id=sl_svn7768_793
  8399. ><td class="source"> // IMAGE FILTERS<br></td></tr
  8400. ><tr
  8401. id=sl_svn7768_794
  8402. ><td class="source"> public void filter(int kind) {<br></td></tr
  8403. ><tr
  8404. id=sl_svn7768_795
  8405. ><td class="source"> loadPixels();<br></td></tr
  8406. ><tr
  8407. id=sl_svn7768_796
  8408. ><td class="source"><br></td></tr
  8409. ><tr
  8410. id=sl_svn7768_797
  8411. ><td class="source"> switch (kind) {<br></td></tr
  8412. ><tr
  8413. id=sl_svn7768_798
  8414. ><td class="source"> case BLUR:<br></td></tr
  8415. ><tr
  8416. id=sl_svn7768_799
  8417. ><td class="source"> // TODO write basic low-pass filter blur here<br></td></tr
  8418. ><tr
  8419. id=sl_svn7768_800
  8420. ><td class="source"> // what does photoshop do on the edges with this guy?<br></td></tr
  8421. ><tr
  8422. id=sl_svn7768_801
  8423. ><td class="source"> // better yet.. why bother? just use gaussian with radius 1<br></td></tr
  8424. ><tr
  8425. id=sl_svn7768_802
  8426. ><td class="source"> filter(BLUR, 1);<br></td></tr
  8427. ><tr
  8428. id=sl_svn7768_803
  8429. ><td class="source"> break;<br></td></tr
  8430. ><tr
  8431. id=sl_svn7768_804
  8432. ><td class="source"><br></td></tr
  8433. ><tr
  8434. id=sl_svn7768_805
  8435. ><td class="source"> case GRAY:<br></td></tr
  8436. ><tr
  8437. id=sl_svn7768_806
  8438. ><td class="source"> if (format == ALPHA) {<br></td></tr
  8439. ><tr
  8440. id=sl_svn7768_807
  8441. ><td class="source"> // for an alpha image, convert it to an opaque grayscale<br></td></tr
  8442. ><tr
  8443. id=sl_svn7768_808
  8444. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8445. ><tr
  8446. id=sl_svn7768_809
  8447. ><td class="source"> int col = 255 - pixels[i];<br></td></tr
  8448. ><tr
  8449. id=sl_svn7768_810
  8450. ><td class="source"> pixels[i] = 0xff000000 | (col &lt;&lt; 16) | (col &lt;&lt; 8) | col;<br></td></tr
  8451. ><tr
  8452. id=sl_svn7768_811
  8453. ><td class="source"> }<br></td></tr
  8454. ><tr
  8455. id=sl_svn7768_812
  8456. ><td class="source"> format = RGB;<br></td></tr
  8457. ><tr
  8458. id=sl_svn7768_813
  8459. ><td class="source"><br></td></tr
  8460. ><tr
  8461. id=sl_svn7768_814
  8462. ><td class="source"> } else {<br></td></tr
  8463. ><tr
  8464. id=sl_svn7768_815
  8465. ><td class="source"> // Converts RGB image data into grayscale using<br></td></tr
  8466. ><tr
  8467. id=sl_svn7768_816
  8468. ><td class="source"> // weighted RGB components, and keeps alpha channel intact.<br></td></tr
  8469. ><tr
  8470. id=sl_svn7768_817
  8471. ><td class="source"> // [toxi 040115]<br></td></tr
  8472. ><tr
  8473. id=sl_svn7768_818
  8474. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8475. ><tr
  8476. id=sl_svn7768_819
  8477. ><td class="source"> int col = pixels[i];<br></td></tr
  8478. ><tr
  8479. id=sl_svn7768_820
  8480. ><td class="source"> // luminance = 0.3*red + 0.59*green + 0.11*blue<br></td></tr
  8481. ><tr
  8482. id=sl_svn7768_821
  8483. ><td class="source"> // 0.30 * 256 = 77<br></td></tr
  8484. ><tr
  8485. id=sl_svn7768_822
  8486. ><td class="source"> // 0.59 * 256 = 151<br></td></tr
  8487. ><tr
  8488. id=sl_svn7768_823
  8489. ><td class="source"> // 0.11 * 256 = 28<br></td></tr
  8490. ><tr
  8491. id=sl_svn7768_824
  8492. ><td class="source"> int lum = (77*(col&gt;&gt;16&amp;0xff) + 151*(col&gt;&gt;8&amp;0xff) + 28*(col&amp;0xff))&gt;&gt;8;<br></td></tr
  8493. ><tr
  8494. id=sl_svn7768_825
  8495. ><td class="source"> pixels[i] = (col &amp; ALPHA_MASK) | lum&lt;&lt;16 | lum&lt;&lt;8 | lum;<br></td></tr
  8496. ><tr
  8497. id=sl_svn7768_826
  8498. ><td class="source"> }<br></td></tr
  8499. ><tr
  8500. id=sl_svn7768_827
  8501. ><td class="source"> }<br></td></tr
  8502. ><tr
  8503. id=sl_svn7768_828
  8504. ><td class="source"> break;<br></td></tr
  8505. ><tr
  8506. id=sl_svn7768_829
  8507. ><td class="source"><br></td></tr
  8508. ><tr
  8509. id=sl_svn7768_830
  8510. ><td class="source"> case INVERT:<br></td></tr
  8511. ><tr
  8512. id=sl_svn7768_831
  8513. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8514. ><tr
  8515. id=sl_svn7768_832
  8516. ><td class="source"> //pixels[i] = 0xff000000 |<br></td></tr
  8517. ><tr
  8518. id=sl_svn7768_833
  8519. ><td class="source"> pixels[i] ^= 0xffffff;<br></td></tr
  8520. ><tr
  8521. id=sl_svn7768_834
  8522. ><td class="source"> }<br></td></tr
  8523. ><tr
  8524. id=sl_svn7768_835
  8525. ><td class="source"> break;<br></td></tr
  8526. ><tr
  8527. id=sl_svn7768_836
  8528. ><td class="source"><br></td></tr
  8529. ><tr
  8530. id=sl_svn7768_837
  8531. ><td class="source"> case POSTERIZE:<br></td></tr
  8532. ><tr
  8533. id=sl_svn7768_838
  8534. ><td class="source"> throw new RuntimeException(&quot;Use filter(POSTERIZE, int levels) &quot; +<br></td></tr
  8535. ><tr
  8536. id=sl_svn7768_839
  8537. ><td class="source"> &quot;instead of filter(POSTERIZE)&quot;);<br></td></tr
  8538. ><tr
  8539. id=sl_svn7768_840
  8540. ><td class="source"><br></td></tr
  8541. ><tr
  8542. id=sl_svn7768_841
  8543. ><td class="source"> case OPAQUE:<br></td></tr
  8544. ><tr
  8545. id=sl_svn7768_842
  8546. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8547. ><tr
  8548. id=sl_svn7768_843
  8549. ><td class="source"> pixels[i] |= 0xff000000;<br></td></tr
  8550. ><tr
  8551. id=sl_svn7768_844
  8552. ><td class="source"> }<br></td></tr
  8553. ><tr
  8554. id=sl_svn7768_845
  8555. ><td class="source"> format = RGB;<br></td></tr
  8556. ><tr
  8557. id=sl_svn7768_846
  8558. ><td class="source"> break;<br></td></tr
  8559. ><tr
  8560. id=sl_svn7768_847
  8561. ><td class="source"><br></td></tr
  8562. ><tr
  8563. id=sl_svn7768_848
  8564. ><td class="source"> case THRESHOLD:<br></td></tr
  8565. ><tr
  8566. id=sl_svn7768_849
  8567. ><td class="source"> filter(THRESHOLD, 0.5f);<br></td></tr
  8568. ><tr
  8569. id=sl_svn7768_850
  8570. ><td class="source"> break;<br></td></tr
  8571. ><tr
  8572. id=sl_svn7768_851
  8573. ><td class="source"><br></td></tr
  8574. ><tr
  8575. id=sl_svn7768_852
  8576. ><td class="source"> // [toxi20050728] added new filters<br></td></tr
  8577. ><tr
  8578. id=sl_svn7768_853
  8579. ><td class="source"> case ERODE:<br></td></tr
  8580. ><tr
  8581. id=sl_svn7768_854
  8582. ><td class="source"> dilate(true);<br></td></tr
  8583. ><tr
  8584. id=sl_svn7768_855
  8585. ><td class="source"> break;<br></td></tr
  8586. ><tr
  8587. id=sl_svn7768_856
  8588. ><td class="source"><br></td></tr
  8589. ><tr
  8590. id=sl_svn7768_857
  8591. ><td class="source"> case DILATE:<br></td></tr
  8592. ><tr
  8593. id=sl_svn7768_858
  8594. ><td class="source"> dilate(false);<br></td></tr
  8595. ><tr
  8596. id=sl_svn7768_859
  8597. ><td class="source"> break;<br></td></tr
  8598. ><tr
  8599. id=sl_svn7768_860
  8600. ><td class="source"> }<br></td></tr
  8601. ><tr
  8602. id=sl_svn7768_861
  8603. ><td class="source"> updatePixels(); // mark as modified<br></td></tr
  8604. ><tr
  8605. id=sl_svn7768_862
  8606. ><td class="source"> }<br></td></tr
  8607. ><tr
  8608. id=sl_svn7768_863
  8609. ><td class="source"><br></td></tr
  8610. ><tr
  8611. id=sl_svn7768_864
  8612. ><td class="source"><br></td></tr
  8613. ><tr
  8614. id=sl_svn7768_865
  8615. ><td class="source"> /**<br></td></tr
  8616. ><tr
  8617. id=sl_svn7768_866
  8618. ><td class="source"> * Filters an image as defined by one of the following modes:&lt;br&gt;&lt;br&gt;THRESHOLD - converts the image to black and white pixels depending if they are above or below the threshold defined by the level parameter. The level must be between 0.0 (black) and 1.0(white). If no level is specified, 0.5 is used.&lt;br&gt;&lt;br&gt;GRAY - converts any colors in the image to grayscale equivalents&lt;br&gt;&lt;br&gt;INVERT - sets each pixel to its inverse value&lt;br&gt;&lt;br&gt;POSTERIZE - limits each channel of the image to the number of colors specified as the level parameter&lt;br&gt;&lt;br&gt;BLUR - executes a Guassian blur with the level parameter specifying the extent of the blurring. If no level parameter is used, the blur is equivalent to Guassian blur of radius 1.&lt;br&gt;&lt;br&gt;OPAQUE - sets the alpha channel to entirely opaque.&lt;br&gt;&lt;br&gt;ERODE - reduces the light areas with the amount defined by the level parameter.&lt;br&gt;&lt;br&gt;DILATE - increases the light areas with the amount defined by the level parameter<br></td></tr
  8619. ><tr
  8620. id=sl_svn7768_867
  8621. ><td class="source"> * =advanced<br></td></tr
  8622. ><tr
  8623. id=sl_svn7768_868
  8624. ><td class="source"> * Method to apply a variety of basic filters to this image.<br></td></tr
  8625. ><tr
  8626. id=sl_svn7768_869
  8627. ><td class="source"> * &lt;P&gt;<br></td></tr
  8628. ><tr
  8629. id=sl_svn7768_870
  8630. ><td class="source"> * &lt;UL&gt;<br></td></tr
  8631. ><tr
  8632. id=sl_svn7768_871
  8633. ><td class="source"> * &lt;LI&gt;filter(BLUR) provides a basic blur.<br></td></tr
  8634. ><tr
  8635. id=sl_svn7768_872
  8636. ><td class="source"> * &lt;LI&gt;filter(GRAY) converts the image to grayscale based on luminance.<br></td></tr
  8637. ><tr
  8638. id=sl_svn7768_873
  8639. ><td class="source"> * &lt;LI&gt;filter(INVERT) will invert the color components in the image.<br></td></tr
  8640. ><tr
  8641. id=sl_svn7768_874
  8642. ><td class="source"> * &lt;LI&gt;filter(OPAQUE) set all the high bits in the image to opaque<br></td></tr
  8643. ><tr
  8644. id=sl_svn7768_875
  8645. ><td class="source"> * &lt;LI&gt;filter(THRESHOLD) converts the image to black and white.<br></td></tr
  8646. ><tr
  8647. id=sl_svn7768_876
  8648. ><td class="source"> * &lt;LI&gt;filter(DILATE) grow white/light areas<br></td></tr
  8649. ><tr
  8650. id=sl_svn7768_877
  8651. ><td class="source"> * &lt;LI&gt;filter(ERODE) shrink white/light areas<br></td></tr
  8652. ><tr
  8653. id=sl_svn7768_878
  8654. ><td class="source"> * &lt;/UL&gt;<br></td></tr
  8655. ><tr
  8656. id=sl_svn7768_879
  8657. ><td class="source"> * Luminance conversion code contributed by<br></td></tr
  8658. ><tr
  8659. id=sl_svn7768_880
  8660. ><td class="source"> * &lt;A HREF=&quot;http://www.toxi.co.uk&quot;&gt;toxi&lt;/A&gt;<br></td></tr
  8661. ><tr
  8662. id=sl_svn7768_881
  8663. ><td class="source"> * &lt;P/&gt;<br></td></tr
  8664. ><tr
  8665. id=sl_svn7768_882
  8666. ><td class="source"> * Gaussian blur code contributed by<br></td></tr
  8667. ><tr
  8668. id=sl_svn7768_883
  8669. ><td class="source"> * &lt;A HREF=&quot;http://incubator.quasimondo.com&quot;&gt;Mario Klingemann&lt;/A&gt;<br></td></tr
  8670. ><tr
  8671. id=sl_svn7768_884
  8672. ><td class="source"> *<br></td></tr
  8673. ><tr
  8674. id=sl_svn7768_885
  8675. ><td class="source"> * @webref<br></td></tr
  8676. ><tr
  8677. id=sl_svn7768_886
  8678. ><td class="source"> * @brief Converts the image to grayscale or black and white<br></td></tr
  8679. ><tr
  8680. id=sl_svn7768_887
  8681. ><td class="source"> * @param kind Either THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, or DILATE<br></td></tr
  8682. ><tr
  8683. id=sl_svn7768_888
  8684. ><td class="source"> * @param param in the range from 0 to 1<br></td></tr
  8685. ><tr
  8686. id=sl_svn7768_889
  8687. ><td class="source"> */<br></td></tr
  8688. ><tr
  8689. id=sl_svn7768_890
  8690. ><td class="source"> public void filter(int kind, float param) {<br></td></tr
  8691. ><tr
  8692. id=sl_svn7768_891
  8693. ><td class="source"> loadPixels();<br></td></tr
  8694. ><tr
  8695. id=sl_svn7768_892
  8696. ><td class="source"><br></td></tr
  8697. ><tr
  8698. id=sl_svn7768_893
  8699. ><td class="source"> switch (kind) {<br></td></tr
  8700. ><tr
  8701. id=sl_svn7768_894
  8702. ><td class="source"> case BLUR:<br></td></tr
  8703. ><tr
  8704. id=sl_svn7768_895
  8705. ><td class="source"> if (format == ALPHA)<br></td></tr
  8706. ><tr
  8707. id=sl_svn7768_896
  8708. ><td class="source"> blurAlpha(param);<br></td></tr
  8709. ><tr
  8710. id=sl_svn7768_897
  8711. ><td class="source"> else if (format == ARGB)<br></td></tr
  8712. ><tr
  8713. id=sl_svn7768_898
  8714. ><td class="source"> blurARGB(param);<br></td></tr
  8715. ><tr
  8716. id=sl_svn7768_899
  8717. ><td class="source"> else<br></td></tr
  8718. ><tr
  8719. id=sl_svn7768_900
  8720. ><td class="source"> blurRGB(param);<br></td></tr
  8721. ><tr
  8722. id=sl_svn7768_901
  8723. ><td class="source"> break;<br></td></tr
  8724. ><tr
  8725. id=sl_svn7768_902
  8726. ><td class="source"><br></td></tr
  8727. ><tr
  8728. id=sl_svn7768_903
  8729. ><td class="source"> case GRAY:<br></td></tr
  8730. ><tr
  8731. id=sl_svn7768_904
  8732. ><td class="source"> throw new RuntimeException(&quot;Use filter(GRAY) instead of &quot; +<br></td></tr
  8733. ><tr
  8734. id=sl_svn7768_905
  8735. ><td class="source"> &quot;filter(GRAY, param)&quot;);<br></td></tr
  8736. ><tr
  8737. id=sl_svn7768_906
  8738. ><td class="source"><br></td></tr
  8739. ><tr
  8740. id=sl_svn7768_907
  8741. ><td class="source"> case INVERT:<br></td></tr
  8742. ><tr
  8743. id=sl_svn7768_908
  8744. ><td class="source"> throw new RuntimeException(&quot;Use filter(INVERT) instead of &quot; +<br></td></tr
  8745. ><tr
  8746. id=sl_svn7768_909
  8747. ><td class="source"> &quot;filter(INVERT, param)&quot;);<br></td></tr
  8748. ><tr
  8749. id=sl_svn7768_910
  8750. ><td class="source"><br></td></tr
  8751. ><tr
  8752. id=sl_svn7768_911
  8753. ><td class="source"> case OPAQUE:<br></td></tr
  8754. ><tr
  8755. id=sl_svn7768_912
  8756. ><td class="source"> throw new RuntimeException(&quot;Use filter(OPAQUE) instead of &quot; +<br></td></tr
  8757. ><tr
  8758. id=sl_svn7768_913
  8759. ><td class="source"> &quot;filter(OPAQUE, param)&quot;);<br></td></tr
  8760. ><tr
  8761. id=sl_svn7768_914
  8762. ><td class="source"><br></td></tr
  8763. ><tr
  8764. id=sl_svn7768_915
  8765. ><td class="source"> case POSTERIZE:<br></td></tr
  8766. ><tr
  8767. id=sl_svn7768_916
  8768. ><td class="source"> int levels = (int)param;<br></td></tr
  8769. ><tr
  8770. id=sl_svn7768_917
  8771. ><td class="source"> if ((levels &lt; 2) || (levels &gt; 255)) {<br></td></tr
  8772. ><tr
  8773. id=sl_svn7768_918
  8774. ><td class="source"> throw new RuntimeException(&quot;Levels must be between 2 and 255 for &quot; +<br></td></tr
  8775. ><tr
  8776. id=sl_svn7768_919
  8777. ><td class="source"> &quot;filter(POSTERIZE, levels)&quot;);<br></td></tr
  8778. ><tr
  8779. id=sl_svn7768_920
  8780. ><td class="source"> }<br></td></tr
  8781. ><tr
  8782. id=sl_svn7768_921
  8783. ><td class="source"> int levels1 = levels - 1;<br></td></tr
  8784. ><tr
  8785. id=sl_svn7768_922
  8786. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8787. ><tr
  8788. id=sl_svn7768_923
  8789. ><td class="source"> int rlevel = (pixels[i] &gt;&gt; 16) &amp; 0xff;<br></td></tr
  8790. ><tr
  8791. id=sl_svn7768_924
  8792. ><td class="source"> int glevel = (pixels[i] &gt;&gt; 8) &amp; 0xff;<br></td></tr
  8793. ><tr
  8794. id=sl_svn7768_925
  8795. ><td class="source"> int blevel = pixels[i] &amp; 0xff;<br></td></tr
  8796. ><tr
  8797. id=sl_svn7768_926
  8798. ><td class="source"> rlevel = (((rlevel * levels) &gt;&gt; 8) * 255) / levels1;<br></td></tr
  8799. ><tr
  8800. id=sl_svn7768_927
  8801. ><td class="source"> glevel = (((glevel * levels) &gt;&gt; 8) * 255) / levels1;<br></td></tr
  8802. ><tr
  8803. id=sl_svn7768_928
  8804. ><td class="source"> blevel = (((blevel * levels) &gt;&gt; 8) * 255) / levels1;<br></td></tr
  8805. ><tr
  8806. id=sl_svn7768_929
  8807. ><td class="source"> pixels[i] = ((0xff000000 &amp; pixels[i]) |<br></td></tr
  8808. ><tr
  8809. id=sl_svn7768_930
  8810. ><td class="source"> (rlevel &lt;&lt; 16) |<br></td></tr
  8811. ><tr
  8812. id=sl_svn7768_931
  8813. ><td class="source"> (glevel &lt;&lt; 8) |<br></td></tr
  8814. ><tr
  8815. id=sl_svn7768_932
  8816. ><td class="source"> blevel);<br></td></tr
  8817. ><tr
  8818. id=sl_svn7768_933
  8819. ><td class="source"> }<br></td></tr
  8820. ><tr
  8821. id=sl_svn7768_934
  8822. ><td class="source"> break;<br></td></tr
  8823. ><tr
  8824. id=sl_svn7768_935
  8825. ><td class="source"><br></td></tr
  8826. ><tr
  8827. id=sl_svn7768_936
  8828. ><td class="source"> case THRESHOLD: // greater than or equal to the threshold<br></td></tr
  8829. ><tr
  8830. id=sl_svn7768_937
  8831. ><td class="source"> int thresh = (int) (param * 255);<br></td></tr
  8832. ><tr
  8833. id=sl_svn7768_938
  8834. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  8835. ><tr
  8836. id=sl_svn7768_939
  8837. ><td class="source"> int max = Math.max((pixels[i] &amp; RED_MASK) &gt;&gt; 16,<br></td></tr
  8838. ><tr
  8839. id=sl_svn7768_940
  8840. ><td class="source"> Math.max((pixels[i] &amp; GREEN_MASK) &gt;&gt; 8,<br></td></tr
  8841. ><tr
  8842. id=sl_svn7768_941
  8843. ><td class="source"> (pixels[i] &amp; BLUE_MASK)));<br></td></tr
  8844. ><tr
  8845. id=sl_svn7768_942
  8846. ><td class="source"> pixels[i] = (pixels[i] &amp; ALPHA_MASK) |<br></td></tr
  8847. ><tr
  8848. id=sl_svn7768_943
  8849. ><td class="source"> ((max &lt; thresh) ? 0x000000 : 0xffffff);<br></td></tr
  8850. ><tr
  8851. id=sl_svn7768_944
  8852. ><td class="source"> }<br></td></tr
  8853. ><tr
  8854. id=sl_svn7768_945
  8855. ><td class="source"> break;<br></td></tr
  8856. ><tr
  8857. id=sl_svn7768_946
  8858. ><td class="source"><br></td></tr
  8859. ><tr
  8860. id=sl_svn7768_947
  8861. ><td class="source"> // [toxi20050728] added new filters<br></td></tr
  8862. ><tr
  8863. id=sl_svn7768_948
  8864. ><td class="source"> case ERODE:<br></td></tr
  8865. ><tr
  8866. id=sl_svn7768_949
  8867. ><td class="source"> throw new RuntimeException(&quot;Use filter(ERODE) instead of &quot; +<br></td></tr
  8868. ><tr
  8869. id=sl_svn7768_950
  8870. ><td class="source"> &quot;filter(ERODE, param)&quot;);<br></td></tr
  8871. ><tr
  8872. id=sl_svn7768_951
  8873. ><td class="source"> case DILATE:<br></td></tr
  8874. ><tr
  8875. id=sl_svn7768_952
  8876. ><td class="source"> throw new RuntimeException(&quot;Use filter(DILATE) instead of &quot; +<br></td></tr
  8877. ><tr
  8878. id=sl_svn7768_953
  8879. ><td class="source"> &quot;filter(DILATE, param)&quot;);<br></td></tr
  8880. ><tr
  8881. id=sl_svn7768_954
  8882. ><td class="source"> }<br></td></tr
  8883. ><tr
  8884. id=sl_svn7768_955
  8885. ><td class="source"> updatePixels(); // mark as modified<br></td></tr
  8886. ><tr
  8887. id=sl_svn7768_956
  8888. ><td class="source"> }<br></td></tr
  8889. ><tr
  8890. id=sl_svn7768_957
  8891. ><td class="source"><br></td></tr
  8892. ><tr
  8893. id=sl_svn7768_958
  8894. ><td class="source"><br></td></tr
  8895. ><tr
  8896. id=sl_svn7768_959
  8897. ><td class="source"> /**<br></td></tr
  8898. ><tr
  8899. id=sl_svn7768_960
  8900. ><td class="source"> * Optimized code for building the blur kernel.<br></td></tr
  8901. ><tr
  8902. id=sl_svn7768_961
  8903. ><td class="source"> * further optimized blur code (approx. 15% for radius=20)<br></td></tr
  8904. ><tr
  8905. id=sl_svn7768_962
  8906. ><td class="source"> * bigger speed gains for larger radii (~30%)<br></td></tr
  8907. ><tr
  8908. id=sl_svn7768_963
  8909. ><td class="source"> * added support for various image types (ALPHA, RGB, ARGB)<br></td></tr
  8910. ><tr
  8911. id=sl_svn7768_964
  8912. ><td class="source"> * [toxi 050728]<br></td></tr
  8913. ><tr
  8914. id=sl_svn7768_965
  8915. ><td class="source"> */<br></td></tr
  8916. ><tr
  8917. id=sl_svn7768_966
  8918. ><td class="source"> protected void buildBlurKernel(float r) {<br></td></tr
  8919. ><tr
  8920. id=sl_svn7768_967
  8921. ><td class="source"> int radius = (int) (r * 3.5f);<br></td></tr
  8922. ><tr
  8923. id=sl_svn7768_968
  8924. ><td class="source"> radius = (radius &lt; 1) ? 1 : ((radius &lt; 248) ? radius : 248);<br></td></tr
  8925. ><tr
  8926. id=sl_svn7768_969
  8927. ><td class="source"> if (blurRadius != radius) {<br></td></tr
  8928. ><tr
  8929. id=sl_svn7768_970
  8930. ><td class="source"> blurRadius = radius;<br></td></tr
  8931. ><tr
  8932. id=sl_svn7768_971
  8933. ><td class="source"> blurKernelSize = 1 + blurRadius&lt;&lt;1;<br></td></tr
  8934. ><tr
  8935. id=sl_svn7768_972
  8936. ><td class="source"> blurKernel = new int[blurKernelSize];<br></td></tr
  8937. ><tr
  8938. id=sl_svn7768_973
  8939. ><td class="source"> blurMult = new int[blurKernelSize][256];<br></td></tr
  8940. ><tr
  8941. id=sl_svn7768_974
  8942. ><td class="source"><br></td></tr
  8943. ><tr
  8944. id=sl_svn7768_975
  8945. ><td class="source"> int bk,bki;<br></td></tr
  8946. ><tr
  8947. id=sl_svn7768_976
  8948. ><td class="source"> int[] bm,bmi;<br></td></tr
  8949. ><tr
  8950. id=sl_svn7768_977
  8951. ><td class="source"><br></td></tr
  8952. ><tr
  8953. id=sl_svn7768_978
  8954. ><td class="source"> for (int i = 1, radiusi = radius - 1; i &lt; radius; i++) {<br></td></tr
  8955. ><tr
  8956. id=sl_svn7768_979
  8957. ><td class="source"> blurKernel[radius+i] = blurKernel[radiusi] = bki = radiusi * radiusi;<br></td></tr
  8958. ><tr
  8959. id=sl_svn7768_980
  8960. ><td class="source"> bm=blurMult[radius+i];<br></td></tr
  8961. ><tr
  8962. id=sl_svn7768_981
  8963. ><td class="source"> bmi=blurMult[radiusi--];<br></td></tr
  8964. ><tr
  8965. id=sl_svn7768_982
  8966. ><td class="source"> for (int j = 0; j &lt; 256; j++)<br></td></tr
  8967. ><tr
  8968. id=sl_svn7768_983
  8969. ><td class="source"> bm[j] = bmi[j] = bki*j;<br></td></tr
  8970. ><tr
  8971. id=sl_svn7768_984
  8972. ><td class="source"> }<br></td></tr
  8973. ><tr
  8974. id=sl_svn7768_985
  8975. ><td class="source"> bk = blurKernel[radius] = radius * radius;<br></td></tr
  8976. ><tr
  8977. id=sl_svn7768_986
  8978. ><td class="source"> bm = blurMult[radius];<br></td></tr
  8979. ><tr
  8980. id=sl_svn7768_987
  8981. ><td class="source"> for (int j = 0; j &lt; 256; j++)<br></td></tr
  8982. ><tr
  8983. id=sl_svn7768_988
  8984. ><td class="source"> bm[j] = bk*j;<br></td></tr
  8985. ><tr
  8986. id=sl_svn7768_989
  8987. ><td class="source"> }<br></td></tr
  8988. ><tr
  8989. id=sl_svn7768_990
  8990. ><td class="source"> }<br></td></tr
  8991. ><tr
  8992. id=sl_svn7768_991
  8993. ><td class="source"><br></td></tr
  8994. ><tr
  8995. id=sl_svn7768_992
  8996. ><td class="source"><br></td></tr
  8997. ><tr
  8998. id=sl_svn7768_993
  8999. ><td class="source"> protected void blurAlpha(float r) {<br></td></tr
  9000. ><tr
  9001. id=sl_svn7768_994
  9002. ><td class="source"> int sum, cb;<br></td></tr
  9003. ><tr
  9004. id=sl_svn7768_995
  9005. ><td class="source"> int read, ri, ym, ymi, bk0;<br></td></tr
  9006. ><tr
  9007. id=sl_svn7768_996
  9008. ><td class="source"> int b2[] = new int[pixels.length];<br></td></tr
  9009. ><tr
  9010. id=sl_svn7768_997
  9011. ><td class="source"> int yi = 0;<br></td></tr
  9012. ><tr
  9013. id=sl_svn7768_998
  9014. ><td class="source"><br></td></tr
  9015. ><tr
  9016. id=sl_svn7768_999
  9017. ><td class="source"> buildBlurKernel(r);<br></td></tr
  9018. ><tr
  9019. id=sl_svn7768_1000
  9020. ><td class="source"><br></td></tr
  9021. ><tr
  9022. id=sl_svn7768_1001
  9023. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9024. ><tr
  9025. id=sl_svn7768_1002
  9026. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9027. ><tr
  9028. id=sl_svn7768_1003
  9029. ><td class="source"> //cb = cg = cr = sum = 0;<br></td></tr
  9030. ><tr
  9031. id=sl_svn7768_1004
  9032. ><td class="source"> cb = sum = 0;<br></td></tr
  9033. ><tr
  9034. id=sl_svn7768_1005
  9035. ><td class="source"> read = x - blurRadius;<br></td></tr
  9036. ><tr
  9037. id=sl_svn7768_1006
  9038. ><td class="source"> if (read&lt;0) {<br></td></tr
  9039. ><tr
  9040. id=sl_svn7768_1007
  9041. ><td class="source"> bk0=-read;<br></td></tr
  9042. ><tr
  9043. id=sl_svn7768_1008
  9044. ><td class="source"> read=0;<br></td></tr
  9045. ><tr
  9046. id=sl_svn7768_1009
  9047. ><td class="source"> } else {<br></td></tr
  9048. ><tr
  9049. id=sl_svn7768_1010
  9050. ><td class="source"> if (read &gt;= width)<br></td></tr
  9051. ><tr
  9052. id=sl_svn7768_1011
  9053. ><td class="source"> break;<br></td></tr
  9054. ><tr
  9055. id=sl_svn7768_1012
  9056. ><td class="source"> bk0=0;<br></td></tr
  9057. ><tr
  9058. id=sl_svn7768_1013
  9059. ><td class="source"> }<br></td></tr
  9060. ><tr
  9061. id=sl_svn7768_1014
  9062. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9063. ><tr
  9064. id=sl_svn7768_1015
  9065. ><td class="source"> if (read &gt;= width)<br></td></tr
  9066. ><tr
  9067. id=sl_svn7768_1016
  9068. ><td class="source"> break;<br></td></tr
  9069. ><tr
  9070. id=sl_svn7768_1017
  9071. ><td class="source"> int c = pixels[read + yi];<br></td></tr
  9072. ><tr
  9073. id=sl_svn7768_1018
  9074. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9075. ><tr
  9076. id=sl_svn7768_1019
  9077. ><td class="source"> cb += bm[c &amp; BLUE_MASK];<br></td></tr
  9078. ><tr
  9079. id=sl_svn7768_1020
  9080. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9081. ><tr
  9082. id=sl_svn7768_1021
  9083. ><td class="source"> read++;<br></td></tr
  9084. ><tr
  9085. id=sl_svn7768_1022
  9086. ><td class="source"> }<br></td></tr
  9087. ><tr
  9088. id=sl_svn7768_1023
  9089. ><td class="source"> ri = yi + x;<br></td></tr
  9090. ><tr
  9091. id=sl_svn7768_1024
  9092. ><td class="source"> b2[ri] = cb / sum;<br></td></tr
  9093. ><tr
  9094. id=sl_svn7768_1025
  9095. ><td class="source"> }<br></td></tr
  9096. ><tr
  9097. id=sl_svn7768_1026
  9098. ><td class="source"> yi += width;<br></td></tr
  9099. ><tr
  9100. id=sl_svn7768_1027
  9101. ><td class="source"> }<br></td></tr
  9102. ><tr
  9103. id=sl_svn7768_1028
  9104. ><td class="source"><br></td></tr
  9105. ><tr
  9106. id=sl_svn7768_1029
  9107. ><td class="source"> yi = 0;<br></td></tr
  9108. ><tr
  9109. id=sl_svn7768_1030
  9110. ><td class="source"> ym=-blurRadius;<br></td></tr
  9111. ><tr
  9112. id=sl_svn7768_1031
  9113. ><td class="source"> ymi=ym*width;<br></td></tr
  9114. ><tr
  9115. id=sl_svn7768_1032
  9116. ><td class="source"><br></td></tr
  9117. ><tr
  9118. id=sl_svn7768_1033
  9119. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9120. ><tr
  9121. id=sl_svn7768_1034
  9122. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9123. ><tr
  9124. id=sl_svn7768_1035
  9125. ><td class="source"> //cb = cg = cr = sum = 0;<br></td></tr
  9126. ><tr
  9127. id=sl_svn7768_1036
  9128. ><td class="source"> cb = sum = 0;<br></td></tr
  9129. ><tr
  9130. id=sl_svn7768_1037
  9131. ><td class="source"> if (ym&lt;0) {<br></td></tr
  9132. ><tr
  9133. id=sl_svn7768_1038
  9134. ><td class="source"> bk0 = ri = -ym;<br></td></tr
  9135. ><tr
  9136. id=sl_svn7768_1039
  9137. ><td class="source"> read = x;<br></td></tr
  9138. ><tr
  9139. id=sl_svn7768_1040
  9140. ><td class="source"> } else {<br></td></tr
  9141. ><tr
  9142. id=sl_svn7768_1041
  9143. ><td class="source"> if (ym &gt;= height)<br></td></tr
  9144. ><tr
  9145. id=sl_svn7768_1042
  9146. ><td class="source"> break;<br></td></tr
  9147. ><tr
  9148. id=sl_svn7768_1043
  9149. ><td class="source"> bk0 = 0;<br></td></tr
  9150. ><tr
  9151. id=sl_svn7768_1044
  9152. ><td class="source"> ri = ym;<br></td></tr
  9153. ><tr
  9154. id=sl_svn7768_1045
  9155. ><td class="source"> read = x + ymi;<br></td></tr
  9156. ><tr
  9157. id=sl_svn7768_1046
  9158. ><td class="source"> }<br></td></tr
  9159. ><tr
  9160. id=sl_svn7768_1047
  9161. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9162. ><tr
  9163. id=sl_svn7768_1048
  9164. ><td class="source"> if (ri &gt;= height)<br></td></tr
  9165. ><tr
  9166. id=sl_svn7768_1049
  9167. ><td class="source"> break;<br></td></tr
  9168. ><tr
  9169. id=sl_svn7768_1050
  9170. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9171. ><tr
  9172. id=sl_svn7768_1051
  9173. ><td class="source"> cb += bm[b2[read]];<br></td></tr
  9174. ><tr
  9175. id=sl_svn7768_1052
  9176. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9177. ><tr
  9178. id=sl_svn7768_1053
  9179. ><td class="source"> ri++;<br></td></tr
  9180. ><tr
  9181. id=sl_svn7768_1054
  9182. ><td class="source"> read += width;<br></td></tr
  9183. ><tr
  9184. id=sl_svn7768_1055
  9185. ><td class="source"> }<br></td></tr
  9186. ><tr
  9187. id=sl_svn7768_1056
  9188. ><td class="source"> pixels[x+yi] = (cb/sum);<br></td></tr
  9189. ><tr
  9190. id=sl_svn7768_1057
  9191. ><td class="source"> }<br></td></tr
  9192. ><tr
  9193. id=sl_svn7768_1058
  9194. ><td class="source"> yi += width;<br></td></tr
  9195. ><tr
  9196. id=sl_svn7768_1059
  9197. ><td class="source"> ymi += width;<br></td></tr
  9198. ><tr
  9199. id=sl_svn7768_1060
  9200. ><td class="source"> ym++;<br></td></tr
  9201. ><tr
  9202. id=sl_svn7768_1061
  9203. ><td class="source"> }<br></td></tr
  9204. ><tr
  9205. id=sl_svn7768_1062
  9206. ><td class="source"> }<br></td></tr
  9207. ><tr
  9208. id=sl_svn7768_1063
  9209. ><td class="source"><br></td></tr
  9210. ><tr
  9211. id=sl_svn7768_1064
  9212. ><td class="source"><br></td></tr
  9213. ><tr
  9214. id=sl_svn7768_1065
  9215. ><td class="source"> protected void blurRGB(float r) {<br></td></tr
  9216. ><tr
  9217. id=sl_svn7768_1066
  9218. ><td class="source"> int sum, cr, cg, cb; //, k;<br></td></tr
  9219. ><tr
  9220. id=sl_svn7768_1067
  9221. ><td class="source"> int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0;<br></td></tr
  9222. ><tr
  9223. id=sl_svn7768_1068
  9224. ><td class="source"> int r2[] = new int[pixels.length];<br></td></tr
  9225. ><tr
  9226. id=sl_svn7768_1069
  9227. ><td class="source"> int g2[] = new int[pixels.length];<br></td></tr
  9228. ><tr
  9229. id=sl_svn7768_1070
  9230. ><td class="source"> int b2[] = new int[pixels.length];<br></td></tr
  9231. ><tr
  9232. id=sl_svn7768_1071
  9233. ><td class="source"> int yi = 0;<br></td></tr
  9234. ><tr
  9235. id=sl_svn7768_1072
  9236. ><td class="source"><br></td></tr
  9237. ><tr
  9238. id=sl_svn7768_1073
  9239. ><td class="source"> buildBlurKernel(r);<br></td></tr
  9240. ><tr
  9241. id=sl_svn7768_1074
  9242. ><td class="source"><br></td></tr
  9243. ><tr
  9244. id=sl_svn7768_1075
  9245. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9246. ><tr
  9247. id=sl_svn7768_1076
  9248. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9249. ><tr
  9250. id=sl_svn7768_1077
  9251. ><td class="source"> cb = cg = cr = sum = 0;<br></td></tr
  9252. ><tr
  9253. id=sl_svn7768_1078
  9254. ><td class="source"> read = x - blurRadius;<br></td></tr
  9255. ><tr
  9256. id=sl_svn7768_1079
  9257. ><td class="source"> if (read&lt;0) {<br></td></tr
  9258. ><tr
  9259. id=sl_svn7768_1080
  9260. ><td class="source"> bk0=-read;<br></td></tr
  9261. ><tr
  9262. id=sl_svn7768_1081
  9263. ><td class="source"> read=0;<br></td></tr
  9264. ><tr
  9265. id=sl_svn7768_1082
  9266. ><td class="source"> } else {<br></td></tr
  9267. ><tr
  9268. id=sl_svn7768_1083
  9269. ><td class="source"> if (read &gt;= width)<br></td></tr
  9270. ><tr
  9271. id=sl_svn7768_1084
  9272. ><td class="source"> break;<br></td></tr
  9273. ><tr
  9274. id=sl_svn7768_1085
  9275. ><td class="source"> bk0=0;<br></td></tr
  9276. ><tr
  9277. id=sl_svn7768_1086
  9278. ><td class="source"> }<br></td></tr
  9279. ><tr
  9280. id=sl_svn7768_1087
  9281. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9282. ><tr
  9283. id=sl_svn7768_1088
  9284. ><td class="source"> if (read &gt;= width)<br></td></tr
  9285. ><tr
  9286. id=sl_svn7768_1089
  9287. ><td class="source"> break;<br></td></tr
  9288. ><tr
  9289. id=sl_svn7768_1090
  9290. ><td class="source"> int c = pixels[read + yi];<br></td></tr
  9291. ><tr
  9292. id=sl_svn7768_1091
  9293. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9294. ><tr
  9295. id=sl_svn7768_1092
  9296. ><td class="source"> cr += bm[(c &amp; RED_MASK) &gt;&gt; 16];<br></td></tr
  9297. ><tr
  9298. id=sl_svn7768_1093
  9299. ><td class="source"> cg += bm[(c &amp; GREEN_MASK) &gt;&gt; 8];<br></td></tr
  9300. ><tr
  9301. id=sl_svn7768_1094
  9302. ><td class="source"> cb += bm[c &amp; BLUE_MASK];<br></td></tr
  9303. ><tr
  9304. id=sl_svn7768_1095
  9305. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9306. ><tr
  9307. id=sl_svn7768_1096
  9308. ><td class="source"> read++;<br></td></tr
  9309. ><tr
  9310. id=sl_svn7768_1097
  9311. ><td class="source"> }<br></td></tr
  9312. ><tr
  9313. id=sl_svn7768_1098
  9314. ><td class="source"> ri = yi + x;<br></td></tr
  9315. ><tr
  9316. id=sl_svn7768_1099
  9317. ><td class="source"> r2[ri] = cr / sum;<br></td></tr
  9318. ><tr
  9319. id=sl_svn7768_1100
  9320. ><td class="source"> g2[ri] = cg / sum;<br></td></tr
  9321. ><tr
  9322. id=sl_svn7768_1101
  9323. ><td class="source"> b2[ri] = cb / sum;<br></td></tr
  9324. ><tr
  9325. id=sl_svn7768_1102
  9326. ><td class="source"> }<br></td></tr
  9327. ><tr
  9328. id=sl_svn7768_1103
  9329. ><td class="source"> yi += width;<br></td></tr
  9330. ><tr
  9331. id=sl_svn7768_1104
  9332. ><td class="source"> }<br></td></tr
  9333. ><tr
  9334. id=sl_svn7768_1105
  9335. ><td class="source"><br></td></tr
  9336. ><tr
  9337. id=sl_svn7768_1106
  9338. ><td class="source"> yi = 0;<br></td></tr
  9339. ><tr
  9340. id=sl_svn7768_1107
  9341. ><td class="source"> ym=-blurRadius;<br></td></tr
  9342. ><tr
  9343. id=sl_svn7768_1108
  9344. ><td class="source"> ymi=ym*width;<br></td></tr
  9345. ><tr
  9346. id=sl_svn7768_1109
  9347. ><td class="source"><br></td></tr
  9348. ><tr
  9349. id=sl_svn7768_1110
  9350. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9351. ><tr
  9352. id=sl_svn7768_1111
  9353. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9354. ><tr
  9355. id=sl_svn7768_1112
  9356. ><td class="source"> cb = cg = cr = sum = 0;<br></td></tr
  9357. ><tr
  9358. id=sl_svn7768_1113
  9359. ><td class="source"> if (ym&lt;0) {<br></td></tr
  9360. ><tr
  9361. id=sl_svn7768_1114
  9362. ><td class="source"> bk0 = ri = -ym;<br></td></tr
  9363. ><tr
  9364. id=sl_svn7768_1115
  9365. ><td class="source"> read = x;<br></td></tr
  9366. ><tr
  9367. id=sl_svn7768_1116
  9368. ><td class="source"> } else {<br></td></tr
  9369. ><tr
  9370. id=sl_svn7768_1117
  9371. ><td class="source"> if (ym &gt;= height)<br></td></tr
  9372. ><tr
  9373. id=sl_svn7768_1118
  9374. ><td class="source"> break;<br></td></tr
  9375. ><tr
  9376. id=sl_svn7768_1119
  9377. ><td class="source"> bk0 = 0;<br></td></tr
  9378. ><tr
  9379. id=sl_svn7768_1120
  9380. ><td class="source"> ri = ym;<br></td></tr
  9381. ><tr
  9382. id=sl_svn7768_1121
  9383. ><td class="source"> read = x + ymi;<br></td></tr
  9384. ><tr
  9385. id=sl_svn7768_1122
  9386. ><td class="source"> }<br></td></tr
  9387. ><tr
  9388. id=sl_svn7768_1123
  9389. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9390. ><tr
  9391. id=sl_svn7768_1124
  9392. ><td class="source"> if (ri &gt;= height)<br></td></tr
  9393. ><tr
  9394. id=sl_svn7768_1125
  9395. ><td class="source"> break;<br></td></tr
  9396. ><tr
  9397. id=sl_svn7768_1126
  9398. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9399. ><tr
  9400. id=sl_svn7768_1127
  9401. ><td class="source"> cr += bm[r2[read]];<br></td></tr
  9402. ><tr
  9403. id=sl_svn7768_1128
  9404. ><td class="source"> cg += bm[g2[read]];<br></td></tr
  9405. ><tr
  9406. id=sl_svn7768_1129
  9407. ><td class="source"> cb += bm[b2[read]];<br></td></tr
  9408. ><tr
  9409. id=sl_svn7768_1130
  9410. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9411. ><tr
  9412. id=sl_svn7768_1131
  9413. ><td class="source"> ri++;<br></td></tr
  9414. ><tr
  9415. id=sl_svn7768_1132
  9416. ><td class="source"> read += width;<br></td></tr
  9417. ><tr
  9418. id=sl_svn7768_1133
  9419. ><td class="source"> }<br></td></tr
  9420. ><tr
  9421. id=sl_svn7768_1134
  9422. ><td class="source"> pixels[x+yi] = 0xff000000 | (cr/sum)&lt;&lt;16 | (cg/sum)&lt;&lt;8 | (cb/sum);<br></td></tr
  9423. ><tr
  9424. id=sl_svn7768_1135
  9425. ><td class="source"> }<br></td></tr
  9426. ><tr
  9427. id=sl_svn7768_1136
  9428. ><td class="source"> yi += width;<br></td></tr
  9429. ><tr
  9430. id=sl_svn7768_1137
  9431. ><td class="source"> ymi += width;<br></td></tr
  9432. ><tr
  9433. id=sl_svn7768_1138
  9434. ><td class="source"> ym++;<br></td></tr
  9435. ><tr
  9436. id=sl_svn7768_1139
  9437. ><td class="source"> }<br></td></tr
  9438. ><tr
  9439. id=sl_svn7768_1140
  9440. ><td class="source"> }<br></td></tr
  9441. ><tr
  9442. id=sl_svn7768_1141
  9443. ><td class="source"><br></td></tr
  9444. ><tr
  9445. id=sl_svn7768_1142
  9446. ><td class="source"><br></td></tr
  9447. ><tr
  9448. id=sl_svn7768_1143
  9449. ><td class="source"> protected void blurARGB(float r) {<br></td></tr
  9450. ><tr
  9451. id=sl_svn7768_1144
  9452. ><td class="source"> int sum, cr, cg, cb, ca;<br></td></tr
  9453. ><tr
  9454. id=sl_svn7768_1145
  9455. ><td class="source"> int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0;<br></td></tr
  9456. ><tr
  9457. id=sl_svn7768_1146
  9458. ><td class="source"> int wh = pixels.length;<br></td></tr
  9459. ><tr
  9460. id=sl_svn7768_1147
  9461. ><td class="source"> int r2[] = new int[wh];<br></td></tr
  9462. ><tr
  9463. id=sl_svn7768_1148
  9464. ><td class="source"> int g2[] = new int[wh];<br></td></tr
  9465. ><tr
  9466. id=sl_svn7768_1149
  9467. ><td class="source"> int b2[] = new int[wh];<br></td></tr
  9468. ><tr
  9469. id=sl_svn7768_1150
  9470. ><td class="source"> int a2[] = new int[wh];<br></td></tr
  9471. ><tr
  9472. id=sl_svn7768_1151
  9473. ><td class="source"> int yi = 0;<br></td></tr
  9474. ><tr
  9475. id=sl_svn7768_1152
  9476. ><td class="source"><br></td></tr
  9477. ><tr
  9478. id=sl_svn7768_1153
  9479. ><td class="source"> buildBlurKernel(r);<br></td></tr
  9480. ><tr
  9481. id=sl_svn7768_1154
  9482. ><td class="source"><br></td></tr
  9483. ><tr
  9484. id=sl_svn7768_1155
  9485. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9486. ><tr
  9487. id=sl_svn7768_1156
  9488. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9489. ><tr
  9490. id=sl_svn7768_1157
  9491. ><td class="source"> cb = cg = cr = ca = sum = 0;<br></td></tr
  9492. ><tr
  9493. id=sl_svn7768_1158
  9494. ><td class="source"> read = x - blurRadius;<br></td></tr
  9495. ><tr
  9496. id=sl_svn7768_1159
  9497. ><td class="source"> if (read&lt;0) {<br></td></tr
  9498. ><tr
  9499. id=sl_svn7768_1160
  9500. ><td class="source"> bk0=-read;<br></td></tr
  9501. ><tr
  9502. id=sl_svn7768_1161
  9503. ><td class="source"> read=0;<br></td></tr
  9504. ><tr
  9505. id=sl_svn7768_1162
  9506. ><td class="source"> } else {<br></td></tr
  9507. ><tr
  9508. id=sl_svn7768_1163
  9509. ><td class="source"> if (read &gt;= width)<br></td></tr
  9510. ><tr
  9511. id=sl_svn7768_1164
  9512. ><td class="source"> break;<br></td></tr
  9513. ><tr
  9514. id=sl_svn7768_1165
  9515. ><td class="source"> bk0=0;<br></td></tr
  9516. ><tr
  9517. id=sl_svn7768_1166
  9518. ><td class="source"> }<br></td></tr
  9519. ><tr
  9520. id=sl_svn7768_1167
  9521. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9522. ><tr
  9523. id=sl_svn7768_1168
  9524. ><td class="source"> if (read &gt;= width)<br></td></tr
  9525. ><tr
  9526. id=sl_svn7768_1169
  9527. ><td class="source"> break;<br></td></tr
  9528. ><tr
  9529. id=sl_svn7768_1170
  9530. ><td class="source"> int c = pixels[read + yi];<br></td></tr
  9531. ><tr
  9532. id=sl_svn7768_1171
  9533. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9534. ><tr
  9535. id=sl_svn7768_1172
  9536. ><td class="source"> ca += bm[(c &amp; ALPHA_MASK) &gt;&gt;&gt; 24];<br></td></tr
  9537. ><tr
  9538. id=sl_svn7768_1173
  9539. ><td class="source"> cr += bm[(c &amp; RED_MASK) &gt;&gt; 16];<br></td></tr
  9540. ><tr
  9541. id=sl_svn7768_1174
  9542. ><td class="source"> cg += bm[(c &amp; GREEN_MASK) &gt;&gt; 8];<br></td></tr
  9543. ><tr
  9544. id=sl_svn7768_1175
  9545. ><td class="source"> cb += bm[c &amp; BLUE_MASK];<br></td></tr
  9546. ><tr
  9547. id=sl_svn7768_1176
  9548. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9549. ><tr
  9550. id=sl_svn7768_1177
  9551. ><td class="source"> read++;<br></td></tr
  9552. ><tr
  9553. id=sl_svn7768_1178
  9554. ><td class="source"> }<br></td></tr
  9555. ><tr
  9556. id=sl_svn7768_1179
  9557. ><td class="source"> ri = yi + x;<br></td></tr
  9558. ><tr
  9559. id=sl_svn7768_1180
  9560. ><td class="source"> a2[ri] = ca / sum;<br></td></tr
  9561. ><tr
  9562. id=sl_svn7768_1181
  9563. ><td class="source"> r2[ri] = cr / sum;<br></td></tr
  9564. ><tr
  9565. id=sl_svn7768_1182
  9566. ><td class="source"> g2[ri] = cg / sum;<br></td></tr
  9567. ><tr
  9568. id=sl_svn7768_1183
  9569. ><td class="source"> b2[ri] = cb / sum;<br></td></tr
  9570. ><tr
  9571. id=sl_svn7768_1184
  9572. ><td class="source"> }<br></td></tr
  9573. ><tr
  9574. id=sl_svn7768_1185
  9575. ><td class="source"> yi += width;<br></td></tr
  9576. ><tr
  9577. id=sl_svn7768_1186
  9578. ><td class="source"> }<br></td></tr
  9579. ><tr
  9580. id=sl_svn7768_1187
  9581. ><td class="source"><br></td></tr
  9582. ><tr
  9583. id=sl_svn7768_1188
  9584. ><td class="source"> yi = 0;<br></td></tr
  9585. ><tr
  9586. id=sl_svn7768_1189
  9587. ><td class="source"> ym=-blurRadius;<br></td></tr
  9588. ><tr
  9589. id=sl_svn7768_1190
  9590. ><td class="source"> ymi=ym*width;<br></td></tr
  9591. ><tr
  9592. id=sl_svn7768_1191
  9593. ><td class="source"><br></td></tr
  9594. ><tr
  9595. id=sl_svn7768_1192
  9596. ><td class="source"> for (int y = 0; y &lt; height; y++) {<br></td></tr
  9597. ><tr
  9598. id=sl_svn7768_1193
  9599. ><td class="source"> for (int x = 0; x &lt; width; x++) {<br></td></tr
  9600. ><tr
  9601. id=sl_svn7768_1194
  9602. ><td class="source"> cb = cg = cr = ca = sum = 0;<br></td></tr
  9603. ><tr
  9604. id=sl_svn7768_1195
  9605. ><td class="source"> if (ym&lt;0) {<br></td></tr
  9606. ><tr
  9607. id=sl_svn7768_1196
  9608. ><td class="source"> bk0 = ri = -ym;<br></td></tr
  9609. ><tr
  9610. id=sl_svn7768_1197
  9611. ><td class="source"> read = x;<br></td></tr
  9612. ><tr
  9613. id=sl_svn7768_1198
  9614. ><td class="source"> } else {<br></td></tr
  9615. ><tr
  9616. id=sl_svn7768_1199
  9617. ><td class="source"> if (ym &gt;= height)<br></td></tr
  9618. ><tr
  9619. id=sl_svn7768_1200
  9620. ><td class="source"> break;<br></td></tr
  9621. ><tr
  9622. id=sl_svn7768_1201
  9623. ><td class="source"> bk0 = 0;<br></td></tr
  9624. ><tr
  9625. id=sl_svn7768_1202
  9626. ><td class="source"> ri = ym;<br></td></tr
  9627. ><tr
  9628. id=sl_svn7768_1203
  9629. ><td class="source"> read = x + ymi;<br></td></tr
  9630. ><tr
  9631. id=sl_svn7768_1204
  9632. ><td class="source"> }<br></td></tr
  9633. ><tr
  9634. id=sl_svn7768_1205
  9635. ><td class="source"> for (int i = bk0; i &lt; blurKernelSize; i++) {<br></td></tr
  9636. ><tr
  9637. id=sl_svn7768_1206
  9638. ><td class="source"> if (ri &gt;= height)<br></td></tr
  9639. ><tr
  9640. id=sl_svn7768_1207
  9641. ><td class="source"> break;<br></td></tr
  9642. ><tr
  9643. id=sl_svn7768_1208
  9644. ><td class="source"> int[] bm=blurMult[i];<br></td></tr
  9645. ><tr
  9646. id=sl_svn7768_1209
  9647. ><td class="source"> ca += bm[a2[read]];<br></td></tr
  9648. ><tr
  9649. id=sl_svn7768_1210
  9650. ><td class="source"> cr += bm[r2[read]];<br></td></tr
  9651. ><tr
  9652. id=sl_svn7768_1211
  9653. ><td class="source"> cg += bm[g2[read]];<br></td></tr
  9654. ><tr
  9655. id=sl_svn7768_1212
  9656. ><td class="source"> cb += bm[b2[read]];<br></td></tr
  9657. ><tr
  9658. id=sl_svn7768_1213
  9659. ><td class="source"> sum += blurKernel[i];<br></td></tr
  9660. ><tr
  9661. id=sl_svn7768_1214
  9662. ><td class="source"> ri++;<br></td></tr
  9663. ><tr
  9664. id=sl_svn7768_1215
  9665. ><td class="source"> read += width;<br></td></tr
  9666. ><tr
  9667. id=sl_svn7768_1216
  9668. ><td class="source"> }<br></td></tr
  9669. ><tr
  9670. id=sl_svn7768_1217
  9671. ><td class="source"> pixels[x+yi] = (ca/sum)&lt;&lt;24 | (cr/sum)&lt;&lt;16 | (cg/sum)&lt;&lt;8 | (cb/sum);<br></td></tr
  9672. ><tr
  9673. id=sl_svn7768_1218
  9674. ><td class="source"> }<br></td></tr
  9675. ><tr
  9676. id=sl_svn7768_1219
  9677. ><td class="source"> yi += width;<br></td></tr
  9678. ><tr
  9679. id=sl_svn7768_1220
  9680. ><td class="source"> ymi += width;<br></td></tr
  9681. ><tr
  9682. id=sl_svn7768_1221
  9683. ><td class="source"> ym++;<br></td></tr
  9684. ><tr
  9685. id=sl_svn7768_1222
  9686. ><td class="source"> }<br></td></tr
  9687. ><tr
  9688. id=sl_svn7768_1223
  9689. ><td class="source"> }<br></td></tr
  9690. ><tr
  9691. id=sl_svn7768_1224
  9692. ><td class="source"><br></td></tr
  9693. ><tr
  9694. id=sl_svn7768_1225
  9695. ><td class="source"><br></td></tr
  9696. ><tr
  9697. id=sl_svn7768_1226
  9698. ><td class="source"> /**<br></td></tr
  9699. ><tr
  9700. id=sl_svn7768_1227
  9701. ><td class="source"> * Generic dilate/erode filter using luminance values<br></td></tr
  9702. ><tr
  9703. id=sl_svn7768_1228
  9704. ><td class="source"> * as decision factor. [toxi 050728]<br></td></tr
  9705. ><tr
  9706. id=sl_svn7768_1229
  9707. ><td class="source"> */<br></td></tr
  9708. ><tr
  9709. id=sl_svn7768_1230
  9710. ><td class="source"> protected void dilate(boolean isInverted) {<br></td></tr
  9711. ><tr
  9712. id=sl_svn7768_1231
  9713. ><td class="source"> int currIdx=0;<br></td></tr
  9714. ><tr
  9715. id=sl_svn7768_1232
  9716. ><td class="source"> int maxIdx=pixels.length;<br></td></tr
  9717. ><tr
  9718. id=sl_svn7768_1233
  9719. ><td class="source"> int[] out=new int[maxIdx];<br></td></tr
  9720. ><tr
  9721. id=sl_svn7768_1234
  9722. ><td class="source"><br></td></tr
  9723. ><tr
  9724. id=sl_svn7768_1235
  9725. ><td class="source"> if (!isInverted) {<br></td></tr
  9726. ><tr
  9727. id=sl_svn7768_1236
  9728. ><td class="source"> // erosion (grow light areas)<br></td></tr
  9729. ><tr
  9730. id=sl_svn7768_1237
  9731. ><td class="source"> while (currIdx&lt;maxIdx) {<br></td></tr
  9732. ><tr
  9733. id=sl_svn7768_1238
  9734. ><td class="source"> int currRowIdx=currIdx;<br></td></tr
  9735. ><tr
  9736. id=sl_svn7768_1239
  9737. ><td class="source"> int maxRowIdx=currIdx+width;<br></td></tr
  9738. ><tr
  9739. id=sl_svn7768_1240
  9740. ><td class="source"> while (currIdx&lt;maxRowIdx) {<br></td></tr
  9741. ><tr
  9742. id=sl_svn7768_1241
  9743. ><td class="source"> int colOrig,colOut;<br></td></tr
  9744. ><tr
  9745. id=sl_svn7768_1242
  9746. ><td class="source"> colOrig=colOut=pixels[currIdx];<br></td></tr
  9747. ><tr
  9748. id=sl_svn7768_1243
  9749. ><td class="source"> int idxLeft=currIdx-1;<br></td></tr
  9750. ><tr
  9751. id=sl_svn7768_1244
  9752. ><td class="source"> int idxRight=currIdx+1;<br></td></tr
  9753. ><tr
  9754. id=sl_svn7768_1245
  9755. ><td class="source"> int idxUp=currIdx-width;<br></td></tr
  9756. ><tr
  9757. id=sl_svn7768_1246
  9758. ><td class="source"> int idxDown=currIdx+width;<br></td></tr
  9759. ><tr
  9760. id=sl_svn7768_1247
  9761. ><td class="source"> if (idxLeft&lt;currRowIdx)<br></td></tr
  9762. ><tr
  9763. id=sl_svn7768_1248
  9764. ><td class="source"> idxLeft=currIdx;<br></td></tr
  9765. ><tr
  9766. id=sl_svn7768_1249
  9767. ><td class="source"> if (idxRight&gt;=maxRowIdx)<br></td></tr
  9768. ><tr
  9769. id=sl_svn7768_1250
  9770. ><td class="source"> idxRight=currIdx;<br></td></tr
  9771. ><tr
  9772. id=sl_svn7768_1251
  9773. ><td class="source"> if (idxUp&lt;0)<br></td></tr
  9774. ><tr
  9775. id=sl_svn7768_1252
  9776. ><td class="source"> idxUp=currIdx;<br></td></tr
  9777. ><tr
  9778. id=sl_svn7768_1253
  9779. ><td class="source"> if (idxDown&gt;=maxIdx)<br></td></tr
  9780. ><tr
  9781. id=sl_svn7768_1254
  9782. ><td class="source"> idxDown=currIdx;<br></td></tr
  9783. ><tr
  9784. id=sl_svn7768_1255
  9785. ><td class="source"><br></td></tr
  9786. ><tr
  9787. id=sl_svn7768_1256
  9788. ><td class="source"> int colUp=pixels[idxUp];<br></td></tr
  9789. ><tr
  9790. id=sl_svn7768_1257
  9791. ><td class="source"> int colLeft=pixels[idxLeft];<br></td></tr
  9792. ><tr
  9793. id=sl_svn7768_1258
  9794. ><td class="source"> int colDown=pixels[idxDown];<br></td></tr
  9795. ><tr
  9796. id=sl_svn7768_1259
  9797. ><td class="source"> int colRight=pixels[idxRight];<br></td></tr
  9798. ><tr
  9799. id=sl_svn7768_1260
  9800. ><td class="source"><br></td></tr
  9801. ><tr
  9802. id=sl_svn7768_1261
  9803. ><td class="source"> // compute luminance<br></td></tr
  9804. ><tr
  9805. id=sl_svn7768_1262
  9806. ><td class="source"> int currLum =<br></td></tr
  9807. ><tr
  9808. id=sl_svn7768_1263
  9809. ><td class="source"> 77*(colOrig&gt;&gt;16&amp;0xff) + 151*(colOrig&gt;&gt;8&amp;0xff) + 28*(colOrig&amp;0xff);<br></td></tr
  9810. ><tr
  9811. id=sl_svn7768_1264
  9812. ><td class="source"> int lumLeft =<br></td></tr
  9813. ><tr
  9814. id=sl_svn7768_1265
  9815. ><td class="source"> 77*(colLeft&gt;&gt;16&amp;0xff) + 151*(colLeft&gt;&gt;8&amp;0xff) + 28*(colLeft&amp;0xff);<br></td></tr
  9816. ><tr
  9817. id=sl_svn7768_1266
  9818. ><td class="source"> int lumRight =<br></td></tr
  9819. ><tr
  9820. id=sl_svn7768_1267
  9821. ><td class="source"> 77*(colRight&gt;&gt;16&amp;0xff) + 151*(colRight&gt;&gt;8&amp;0xff) + 28*(colRight&amp;0xff);<br></td></tr
  9822. ><tr
  9823. id=sl_svn7768_1268
  9824. ><td class="source"> int lumUp =<br></td></tr
  9825. ><tr
  9826. id=sl_svn7768_1269
  9827. ><td class="source"> 77*(colUp&gt;&gt;16&amp;0xff) + 151*(colUp&gt;&gt;8&amp;0xff) + 28*(colUp&amp;0xff);<br></td></tr
  9828. ><tr
  9829. id=sl_svn7768_1270
  9830. ><td class="source"> int lumDown =<br></td></tr
  9831. ><tr
  9832. id=sl_svn7768_1271
  9833. ><td class="source"> 77*(colDown&gt;&gt;16&amp;0xff) + 151*(colDown&gt;&gt;8&amp;0xff) + 28*(colDown&amp;0xff);<br></td></tr
  9834. ><tr
  9835. id=sl_svn7768_1272
  9836. ><td class="source"><br></td></tr
  9837. ><tr
  9838. id=sl_svn7768_1273
  9839. ><td class="source"> if (lumLeft&gt;currLum) {<br></td></tr
  9840. ><tr
  9841. id=sl_svn7768_1274
  9842. ><td class="source"> colOut=colLeft;<br></td></tr
  9843. ><tr
  9844. id=sl_svn7768_1275
  9845. ><td class="source"> currLum=lumLeft;<br></td></tr
  9846. ><tr
  9847. id=sl_svn7768_1276
  9848. ><td class="source"> }<br></td></tr
  9849. ><tr
  9850. id=sl_svn7768_1277
  9851. ><td class="source"> if (lumRight&gt;currLum) {<br></td></tr
  9852. ><tr
  9853. id=sl_svn7768_1278
  9854. ><td class="source"> colOut=colRight;<br></td></tr
  9855. ><tr
  9856. id=sl_svn7768_1279
  9857. ><td class="source"> currLum=lumRight;<br></td></tr
  9858. ><tr
  9859. id=sl_svn7768_1280
  9860. ><td class="source"> }<br></td></tr
  9861. ><tr
  9862. id=sl_svn7768_1281
  9863. ><td class="source"> if (lumUp&gt;currLum) {<br></td></tr
  9864. ><tr
  9865. id=sl_svn7768_1282
  9866. ><td class="source"> colOut=colUp;<br></td></tr
  9867. ><tr
  9868. id=sl_svn7768_1283
  9869. ><td class="source"> currLum=lumUp;<br></td></tr
  9870. ><tr
  9871. id=sl_svn7768_1284
  9872. ><td class="source"> }<br></td></tr
  9873. ><tr
  9874. id=sl_svn7768_1285
  9875. ><td class="source"> if (lumDown&gt;currLum) {<br></td></tr
  9876. ><tr
  9877. id=sl_svn7768_1286
  9878. ><td class="source"> colOut=colDown;<br></td></tr
  9879. ><tr
  9880. id=sl_svn7768_1287
  9881. ><td class="source"> currLum=lumDown;<br></td></tr
  9882. ><tr
  9883. id=sl_svn7768_1288
  9884. ><td class="source"> }<br></td></tr
  9885. ><tr
  9886. id=sl_svn7768_1289
  9887. ><td class="source"> out[currIdx++]=colOut;<br></td></tr
  9888. ><tr
  9889. id=sl_svn7768_1290
  9890. ><td class="source"> }<br></td></tr
  9891. ><tr
  9892. id=sl_svn7768_1291
  9893. ><td class="source"> }<br></td></tr
  9894. ><tr
  9895. id=sl_svn7768_1292
  9896. ><td class="source"> } else {<br></td></tr
  9897. ><tr
  9898. id=sl_svn7768_1293
  9899. ><td class="source"> // dilate (grow dark areas)<br></td></tr
  9900. ><tr
  9901. id=sl_svn7768_1294
  9902. ><td class="source"> while (currIdx&lt;maxIdx) {<br></td></tr
  9903. ><tr
  9904. id=sl_svn7768_1295
  9905. ><td class="source"> int currRowIdx=currIdx;<br></td></tr
  9906. ><tr
  9907. id=sl_svn7768_1296
  9908. ><td class="source"> int maxRowIdx=currIdx+width;<br></td></tr
  9909. ><tr
  9910. id=sl_svn7768_1297
  9911. ><td class="source"> while (currIdx&lt;maxRowIdx) {<br></td></tr
  9912. ><tr
  9913. id=sl_svn7768_1298
  9914. ><td class="source"> int colOrig,colOut;<br></td></tr
  9915. ><tr
  9916. id=sl_svn7768_1299
  9917. ><td class="source"> colOrig=colOut=pixels[currIdx];<br></td></tr
  9918. ><tr
  9919. id=sl_svn7768_1300
  9920. ><td class="source"> int idxLeft=currIdx-1;<br></td></tr
  9921. ><tr
  9922. id=sl_svn7768_1301
  9923. ><td class="source"> int idxRight=currIdx+1;<br></td></tr
  9924. ><tr
  9925. id=sl_svn7768_1302
  9926. ><td class="source"> int idxUp=currIdx-width;<br></td></tr
  9927. ><tr
  9928. id=sl_svn7768_1303
  9929. ><td class="source"> int idxDown=currIdx+width;<br></td></tr
  9930. ><tr
  9931. id=sl_svn7768_1304
  9932. ><td class="source"> if (idxLeft&lt;currRowIdx)<br></td></tr
  9933. ><tr
  9934. id=sl_svn7768_1305
  9935. ><td class="source"> idxLeft=currIdx;<br></td></tr
  9936. ><tr
  9937. id=sl_svn7768_1306
  9938. ><td class="source"> if (idxRight&gt;=maxRowIdx)<br></td></tr
  9939. ><tr
  9940. id=sl_svn7768_1307
  9941. ><td class="source"> idxRight=currIdx;<br></td></tr
  9942. ><tr
  9943. id=sl_svn7768_1308
  9944. ><td class="source"> if (idxUp&lt;0)<br></td></tr
  9945. ><tr
  9946. id=sl_svn7768_1309
  9947. ><td class="source"> idxUp=currIdx;<br></td></tr
  9948. ><tr
  9949. id=sl_svn7768_1310
  9950. ><td class="source"> if (idxDown&gt;=maxIdx)<br></td></tr
  9951. ><tr
  9952. id=sl_svn7768_1311
  9953. ><td class="source"> idxDown=currIdx;<br></td></tr
  9954. ><tr
  9955. id=sl_svn7768_1312
  9956. ><td class="source"><br></td></tr
  9957. ><tr
  9958. id=sl_svn7768_1313
  9959. ><td class="source"> int colUp=pixels[idxUp];<br></td></tr
  9960. ><tr
  9961. id=sl_svn7768_1314
  9962. ><td class="source"> int colLeft=pixels[idxLeft];<br></td></tr
  9963. ><tr
  9964. id=sl_svn7768_1315
  9965. ><td class="source"> int colDown=pixels[idxDown];<br></td></tr
  9966. ><tr
  9967. id=sl_svn7768_1316
  9968. ><td class="source"> int colRight=pixels[idxRight];<br></td></tr
  9969. ><tr
  9970. id=sl_svn7768_1317
  9971. ><td class="source"><br></td></tr
  9972. ><tr
  9973. id=sl_svn7768_1318
  9974. ><td class="source"> // compute luminance<br></td></tr
  9975. ><tr
  9976. id=sl_svn7768_1319
  9977. ><td class="source"> int currLum =<br></td></tr
  9978. ><tr
  9979. id=sl_svn7768_1320
  9980. ><td class="source"> 77*(colOrig&gt;&gt;16&amp;0xff) + 151*(colOrig&gt;&gt;8&amp;0xff) + 28*(colOrig&amp;0xff);<br></td></tr
  9981. ><tr
  9982. id=sl_svn7768_1321
  9983. ><td class="source"> int lumLeft =<br></td></tr
  9984. ><tr
  9985. id=sl_svn7768_1322
  9986. ><td class="source"> 77*(colLeft&gt;&gt;16&amp;0xff) + 151*(colLeft&gt;&gt;8&amp;0xff) + 28*(colLeft&amp;0xff);<br></td></tr
  9987. ><tr
  9988. id=sl_svn7768_1323
  9989. ><td class="source"> int lumRight =<br></td></tr
  9990. ><tr
  9991. id=sl_svn7768_1324
  9992. ><td class="source"> 77*(colRight&gt;&gt;16&amp;0xff) + 151*(colRight&gt;&gt;8&amp;0xff) + 28*(colRight&amp;0xff);<br></td></tr
  9993. ><tr
  9994. id=sl_svn7768_1325
  9995. ><td class="source"> int lumUp =<br></td></tr
  9996. ><tr
  9997. id=sl_svn7768_1326
  9998. ><td class="source"> 77*(colUp&gt;&gt;16&amp;0xff) + 151*(colUp&gt;&gt;8&amp;0xff) + 28*(colUp&amp;0xff);<br></td></tr
  9999. ><tr
  10000. id=sl_svn7768_1327
  10001. ><td class="source"> int lumDown =<br></td></tr
  10002. ><tr
  10003. id=sl_svn7768_1328
  10004. ><td class="source"> 77*(colDown&gt;&gt;16&amp;0xff) + 151*(colDown&gt;&gt;8&amp;0xff) + 28*(colDown&amp;0xff);<br></td></tr
  10005. ><tr
  10006. id=sl_svn7768_1329
  10007. ><td class="source"><br></td></tr
  10008. ><tr
  10009. id=sl_svn7768_1330
  10010. ><td class="source"> if (lumLeft&lt;currLum) {<br></td></tr
  10011. ><tr
  10012. id=sl_svn7768_1331
  10013. ><td class="source"> colOut=colLeft;<br></td></tr
  10014. ><tr
  10015. id=sl_svn7768_1332
  10016. ><td class="source"> currLum=lumLeft;<br></td></tr
  10017. ><tr
  10018. id=sl_svn7768_1333
  10019. ><td class="source"> }<br></td></tr
  10020. ><tr
  10021. id=sl_svn7768_1334
  10022. ><td class="source"> if (lumRight&lt;currLum) {<br></td></tr
  10023. ><tr
  10024. id=sl_svn7768_1335
  10025. ><td class="source"> colOut=colRight;<br></td></tr
  10026. ><tr
  10027. id=sl_svn7768_1336
  10028. ><td class="source"> currLum=lumRight;<br></td></tr
  10029. ><tr
  10030. id=sl_svn7768_1337
  10031. ><td class="source"> }<br></td></tr
  10032. ><tr
  10033. id=sl_svn7768_1338
  10034. ><td class="source"> if (lumUp&lt;currLum) {<br></td></tr
  10035. ><tr
  10036. id=sl_svn7768_1339
  10037. ><td class="source"> colOut=colUp;<br></td></tr
  10038. ><tr
  10039. id=sl_svn7768_1340
  10040. ><td class="source"> currLum=lumUp;<br></td></tr
  10041. ><tr
  10042. id=sl_svn7768_1341
  10043. ><td class="source"> }<br></td></tr
  10044. ><tr
  10045. id=sl_svn7768_1342
  10046. ><td class="source"> if (lumDown&lt;currLum) {<br></td></tr
  10047. ><tr
  10048. id=sl_svn7768_1343
  10049. ><td class="source"> colOut=colDown;<br></td></tr
  10050. ><tr
  10051. id=sl_svn7768_1344
  10052. ><td class="source"> currLum=lumDown;<br></td></tr
  10053. ><tr
  10054. id=sl_svn7768_1345
  10055. ><td class="source"> }<br></td></tr
  10056. ><tr
  10057. id=sl_svn7768_1346
  10058. ><td class="source"> out[currIdx++]=colOut;<br></td></tr
  10059. ><tr
  10060. id=sl_svn7768_1347
  10061. ><td class="source"> }<br></td></tr
  10062. ><tr
  10063. id=sl_svn7768_1348
  10064. ><td class="source"> }<br></td></tr
  10065. ><tr
  10066. id=sl_svn7768_1349
  10067. ><td class="source"> }<br></td></tr
  10068. ><tr
  10069. id=sl_svn7768_1350
  10070. ><td class="source"> System.arraycopy(out,0,pixels,0,maxIdx);<br></td></tr
  10071. ><tr
  10072. id=sl_svn7768_1351
  10073. ><td class="source"> }<br></td></tr
  10074. ><tr
  10075. id=sl_svn7768_1352
  10076. ><td class="source"><br></td></tr
  10077. ><tr
  10078. id=sl_svn7768_1353
  10079. ><td class="source"><br></td></tr
  10080. ><tr
  10081. id=sl_svn7768_1354
  10082. ><td class="source"><br></td></tr
  10083. ><tr
  10084. id=sl_svn7768_1355
  10085. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10086. ><tr
  10087. id=sl_svn7768_1356
  10088. ><td class="source"><br></td></tr
  10089. ><tr
  10090. id=sl_svn7768_1357
  10091. ><td class="source"> // COPY<br></td></tr
  10092. ><tr
  10093. id=sl_svn7768_1358
  10094. ><td class="source"><br></td></tr
  10095. ><tr
  10096. id=sl_svn7768_1359
  10097. ><td class="source"><br></td></tr
  10098. ><tr
  10099. id=sl_svn7768_1360
  10100. ><td class="source"> /**<br></td></tr
  10101. ><tr
  10102. id=sl_svn7768_1361
  10103. ><td class="source"> * Copy things from one area of this image<br></td></tr
  10104. ><tr
  10105. id=sl_svn7768_1362
  10106. ><td class="source"> * to another area in the same image.<br></td></tr
  10107. ><tr
  10108. id=sl_svn7768_1363
  10109. ><td class="source"> */<br></td></tr
  10110. ><tr
  10111. id=sl_svn7768_1364
  10112. ><td class="source"> public void copy(int sx, int sy, int sw, int sh,<br></td></tr
  10113. ><tr
  10114. id=sl_svn7768_1365
  10115. ><td class="source"> int dx, int dy, int dw, int dh) {<br></td></tr
  10116. ><tr
  10117. id=sl_svn7768_1366
  10118. ><td class="source"> blend(this, sx, sy, sw, sh, dx, dy, dw, dh, REPLACE);<br></td></tr
  10119. ><tr
  10120. id=sl_svn7768_1367
  10121. ><td class="source"> }<br></td></tr
  10122. ><tr
  10123. id=sl_svn7768_1368
  10124. ><td class="source"><br></td></tr
  10125. ><tr
  10126. id=sl_svn7768_1369
  10127. ><td class="source"><br></td></tr
  10128. ><tr
  10129. id=sl_svn7768_1370
  10130. ><td class="source"> /**<br></td></tr
  10131. ><tr
  10132. id=sl_svn7768_1371
  10133. ><td class="source"> * Copies a region of pixels from one image into another. If the source and destination regions aren&#39;t the same size, it will automatically resize source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.<br></td></tr
  10134. ><tr
  10135. id=sl_svn7768_1372
  10136. ><td class="source"> * &lt;br&gt;&lt;br&gt;As of release 0149, this function ignores &lt;b&gt;imageMode()&lt;/b&gt;.<br></td></tr
  10137. ><tr
  10138. id=sl_svn7768_1373
  10139. ><td class="source"> *<br></td></tr
  10140. ><tr
  10141. id=sl_svn7768_1374
  10142. ><td class="source"> * @webref<br></td></tr
  10143. ><tr
  10144. id=sl_svn7768_1375
  10145. ><td class="source"> * @brief Copies the entire image<br></td></tr
  10146. ><tr
  10147. id=sl_svn7768_1376
  10148. ><td class="source"> * @param sx X coordinate of the source&#39;s upper left corner<br></td></tr
  10149. ><tr
  10150. id=sl_svn7768_1377
  10151. ><td class="source"> * @param sy Y coordinate of the source&#39;s upper left corner<br></td></tr
  10152. ><tr
  10153. id=sl_svn7768_1378
  10154. ><td class="source"> * @param sw source image width<br></td></tr
  10155. ><tr
  10156. id=sl_svn7768_1379
  10157. ><td class="source"> * @param sh source image height<br></td></tr
  10158. ><tr
  10159. id=sl_svn7768_1380
  10160. ><td class="source"> * @param dx X coordinate of the destination&#39;s upper left corner<br></td></tr
  10161. ><tr
  10162. id=sl_svn7768_1381
  10163. ><td class="source"> * @param dy Y coordinate of the destination&#39;s upper left corner<br></td></tr
  10164. ><tr
  10165. id=sl_svn7768_1382
  10166. ><td class="source"> * @param dw destination image width<br></td></tr
  10167. ><tr
  10168. id=sl_svn7768_1383
  10169. ><td class="source"> * @param dh destination image height<br></td></tr
  10170. ><tr
  10171. id=sl_svn7768_1384
  10172. ><td class="source"> * @param src an image variable referring to the source image.<br></td></tr
  10173. ><tr
  10174. id=sl_svn7768_1385
  10175. ><td class="source"> *<br></td></tr
  10176. ><tr
  10177. id=sl_svn7768_1386
  10178. ><td class="source"> * @see processing.core.PGraphics#alpha(int)<br></td></tr
  10179. ><tr
  10180. id=sl_svn7768_1387
  10181. ><td class="source"> * @see processing.core.PImage#blend(PImage, int, int, int, int, int, int, int, int, int)<br></td></tr
  10182. ><tr
  10183. id=sl_svn7768_1388
  10184. ><td class="source"> */<br></td></tr
  10185. ><tr
  10186. id=sl_svn7768_1389
  10187. ><td class="source"> public void copy(PImage src,<br></td></tr
  10188. ><tr
  10189. id=sl_svn7768_1390
  10190. ><td class="source"> int sx, int sy, int sw, int sh,<br></td></tr
  10191. ><tr
  10192. id=sl_svn7768_1391
  10193. ><td class="source"> int dx, int dy, int dw, int dh) {<br></td></tr
  10194. ><tr
  10195. id=sl_svn7768_1392
  10196. ><td class="source"> blend(src, sx, sy, sw, sh, dx, dy, dw, dh, REPLACE);<br></td></tr
  10197. ><tr
  10198. id=sl_svn7768_1393
  10199. ><td class="source"> }<br></td></tr
  10200. ><tr
  10201. id=sl_svn7768_1394
  10202. ><td class="source"><br></td></tr
  10203. ><tr
  10204. id=sl_svn7768_1395
  10205. ><td class="source"><br></td></tr
  10206. ><tr
  10207. id=sl_svn7768_1396
  10208. ><td class="source"><br></td></tr
  10209. ><tr
  10210. id=sl_svn7768_1397
  10211. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10212. ><tr
  10213. id=sl_svn7768_1398
  10214. ><td class="source"><br></td></tr
  10215. ><tr
  10216. id=sl_svn7768_1399
  10217. ><td class="source"> // BLEND<br></td></tr
  10218. ><tr
  10219. id=sl_svn7768_1400
  10220. ><td class="source"><br></td></tr
  10221. ><tr
  10222. id=sl_svn7768_1401
  10223. ><td class="source"><br></td></tr
  10224. ><tr
  10225. id=sl_svn7768_1402
  10226. ><td class="source"> /**<br></td></tr
  10227. ><tr
  10228. id=sl_svn7768_1403
  10229. ><td class="source"> * Blend two colors based on a particular mode.<br></td></tr
  10230. ><tr
  10231. id=sl_svn7768_1404
  10232. ><td class="source"> * &lt;UL&gt;<br></td></tr
  10233. ><tr
  10234. id=sl_svn7768_1405
  10235. ><td class="source"> * &lt;LI&gt;REPLACE - destination colour equals colour of source pixel: C = A.<br></td></tr
  10236. ><tr
  10237. id=sl_svn7768_1406
  10238. ><td class="source"> * Sometimes called &quot;Normal&quot; or &quot;Copy&quot; in other software.<br></td></tr
  10239. ><tr
  10240. id=sl_svn7768_1407
  10241. ><td class="source"> *<br></td></tr
  10242. ><tr
  10243. id=sl_svn7768_1408
  10244. ><td class="source"> * &lt;LI&gt;BLEND - linear interpolation of colours:<br></td></tr
  10245. ><tr
  10246. id=sl_svn7768_1409
  10247. ><td class="source"> * &lt;TT&gt;C = A*factor + B&lt;/TT&gt;<br></td></tr
  10248. ><tr
  10249. id=sl_svn7768_1410
  10250. ><td class="source"> *<br></td></tr
  10251. ><tr
  10252. id=sl_svn7768_1411
  10253. ><td class="source"> * &lt;LI&gt;ADD - additive blending with white clip:<br></td></tr
  10254. ><tr
  10255. id=sl_svn7768_1412
  10256. ><td class="source"> * &lt;TT&gt;C = min(A*factor + B, 255)&lt;/TT&gt;.<br></td></tr
  10257. ><tr
  10258. id=sl_svn7768_1413
  10259. ><td class="source"> * Clipped to 0..255, Photoshop calls this &quot;Linear Burn&quot;,<br></td></tr
  10260. ><tr
  10261. id=sl_svn7768_1414
  10262. ><td class="source"> * and Director calls it &quot;Add Pin&quot;.<br></td></tr
  10263. ><tr
  10264. id=sl_svn7768_1415
  10265. ><td class="source"> *<br></td></tr
  10266. ><tr
  10267. id=sl_svn7768_1416
  10268. ><td class="source"> * &lt;LI&gt;SUBTRACT - substractive blend with black clip:<br></td></tr
  10269. ><tr
  10270. id=sl_svn7768_1417
  10271. ><td class="source"> * &lt;TT&gt;C = max(B - A*factor, 0)&lt;/TT&gt;.<br></td></tr
  10272. ><tr
  10273. id=sl_svn7768_1418
  10274. ><td class="source"> * Clipped to 0..255, Photoshop calls this &quot;Linear Dodge&quot;,<br></td></tr
  10275. ><tr
  10276. id=sl_svn7768_1419
  10277. ><td class="source"> * and Director calls it &quot;Subtract Pin&quot;.<br></td></tr
  10278. ><tr
  10279. id=sl_svn7768_1420
  10280. ><td class="source"> *<br></td></tr
  10281. ><tr
  10282. id=sl_svn7768_1421
  10283. ><td class="source"> * &lt;LI&gt;DARKEST - only the darkest colour succeeds:<br></td></tr
  10284. ><tr
  10285. id=sl_svn7768_1422
  10286. ><td class="source"> * &lt;TT&gt;C = min(A*factor, B)&lt;/TT&gt;.<br></td></tr
  10287. ><tr
  10288. id=sl_svn7768_1423
  10289. ><td class="source"> * Illustrator calls this &quot;Darken&quot;.<br></td></tr
  10290. ><tr
  10291. id=sl_svn7768_1424
  10292. ><td class="source"> *<br></td></tr
  10293. ><tr
  10294. id=sl_svn7768_1425
  10295. ><td class="source"> * &lt;LI&gt;LIGHTEST - only the lightest colour succeeds:<br></td></tr
  10296. ><tr
  10297. id=sl_svn7768_1426
  10298. ><td class="source"> * &lt;TT&gt;C = max(A*factor, B)&lt;/TT&gt;.<br></td></tr
  10299. ><tr
  10300. id=sl_svn7768_1427
  10301. ><td class="source"> * Illustrator calls this &quot;Lighten&quot;.<br></td></tr
  10302. ><tr
  10303. id=sl_svn7768_1428
  10304. ><td class="source"> *<br></td></tr
  10305. ><tr
  10306. id=sl_svn7768_1429
  10307. ><td class="source"> * &lt;LI&gt;DIFFERENCE - subtract colors from underlying image.<br></td></tr
  10308. ><tr
  10309. id=sl_svn7768_1430
  10310. ><td class="source"> *<br></td></tr
  10311. ><tr
  10312. id=sl_svn7768_1431
  10313. ><td class="source"> * &lt;LI&gt;EXCLUSION - similar to DIFFERENCE, but less extreme.<br></td></tr
  10314. ><tr
  10315. id=sl_svn7768_1432
  10316. ><td class="source"> *<br></td></tr
  10317. ><tr
  10318. id=sl_svn7768_1433
  10319. ><td class="source"> * &lt;LI&gt;MULTIPLY - Multiply the colors, result will always be darker.<br></td></tr
  10320. ><tr
  10321. id=sl_svn7768_1434
  10322. ><td class="source"> *<br></td></tr
  10323. ><tr
  10324. id=sl_svn7768_1435
  10325. ><td class="source"> * &lt;LI&gt;SCREEN - Opposite multiply, uses inverse values of the colors.<br></td></tr
  10326. ><tr
  10327. id=sl_svn7768_1436
  10328. ><td class="source"> *<br></td></tr
  10329. ><tr
  10330. id=sl_svn7768_1437
  10331. ><td class="source"> * &lt;LI&gt;OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,<br></td></tr
  10332. ><tr
  10333. id=sl_svn7768_1438
  10334. ><td class="source"> * and screens light values.<br></td></tr
  10335. ><tr
  10336. id=sl_svn7768_1439
  10337. ><td class="source"> *<br></td></tr
  10338. ><tr
  10339. id=sl_svn7768_1440
  10340. ><td class="source"> * &lt;LI&gt;HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.<br></td></tr
  10341. ><tr
  10342. id=sl_svn7768_1441
  10343. ><td class="source"> *<br></td></tr
  10344. ><tr
  10345. id=sl_svn7768_1442
  10346. ><td class="source"> * &lt;LI&gt;SOFT_LIGHT - Mix of DARKEST and LIGHTEST.<br></td></tr
  10347. ><tr
  10348. id=sl_svn7768_1443
  10349. ><td class="source"> * Works like OVERLAY, but not as harsh.<br></td></tr
  10350. ><tr
  10351. id=sl_svn7768_1444
  10352. ><td class="source"> *<br></td></tr
  10353. ><tr
  10354. id=sl_svn7768_1445
  10355. ><td class="source"> * &lt;LI&gt;DODGE - Lightens light tones and increases contrast, ignores darks.<br></td></tr
  10356. ><tr
  10357. id=sl_svn7768_1446
  10358. ><td class="source"> * Called &quot;Color Dodge&quot; in Illustrator and Photoshop.<br></td></tr
  10359. ><tr
  10360. id=sl_svn7768_1447
  10361. ><td class="source"> *<br></td></tr
  10362. ><tr
  10363. id=sl_svn7768_1448
  10364. ><td class="source"> * &lt;LI&gt;BURN - Darker areas are applied, increasing contrast, ignores lights.<br></td></tr
  10365. ><tr
  10366. id=sl_svn7768_1449
  10367. ><td class="source"> * Called &quot;Color Burn&quot; in Illustrator and Photoshop.<br></td></tr
  10368. ><tr
  10369. id=sl_svn7768_1450
  10370. ><td class="source"> * &lt;/UL&gt;<br></td></tr
  10371. ><tr
  10372. id=sl_svn7768_1451
  10373. ><td class="source"> * &lt;P&gt;A useful reference for blending modes and their algorithms can be<br></td></tr
  10374. ><tr
  10375. id=sl_svn7768_1452
  10376. ><td class="source"> * found in the &lt;A HREF=&quot;http://www.w3.org/TR/SVG12/rendering.html&quot;&gt;SVG&lt;/A&gt;<br></td></tr
  10377. ><tr
  10378. id=sl_svn7768_1453
  10379. ><td class="source"> * specification.&lt;/P&gt;<br></td></tr
  10380. ><tr
  10381. id=sl_svn7768_1454
  10382. ><td class="source"> * &lt;P&gt;It is important to note that Processing uses &quot;fast&quot; code, not<br></td></tr
  10383. ><tr
  10384. id=sl_svn7768_1455
  10385. ><td class="source"> * necessarily &quot;correct&quot; code. No biggie, most software does. A nitpicker<br></td></tr
  10386. ><tr
  10387. id=sl_svn7768_1456
  10388. ><td class="source"> * can find numerous &quot;off by 1 division&quot; problems in the blend code where<br></td></tr
  10389. ><tr
  10390. id=sl_svn7768_1457
  10391. ><td class="source"> * &lt;TT&gt;&amp;gt;&amp;gt;8&lt;/TT&gt; or &lt;TT&gt;&amp;gt;&amp;gt;7&lt;/TT&gt; is used when strictly speaking<br></td></tr
  10392. ><tr
  10393. id=sl_svn7768_1458
  10394. ><td class="source"> * &lt;TT&gt;/255.0&lt;/T&gt; or &lt;TT&gt;/127.0&lt;/TT&gt; should have been used.&lt;/P&gt;<br></td></tr
  10395. ><tr
  10396. id=sl_svn7768_1459
  10397. ><td class="source"> * &lt;P&gt;For instance, exclusion (not intended for real-time use) reads<br></td></tr
  10398. ><tr
  10399. id=sl_svn7768_1460
  10400. ><td class="source"> * &lt;TT&gt;r1 + r2 - ((2 * r1 * r2) / 255)&lt;/TT&gt; because &lt;TT&gt;255 == 1.0&lt;/TT&gt;<br></td></tr
  10401. ><tr
  10402. id=sl_svn7768_1461
  10403. ><td class="source"> * not &lt;TT&gt;256 == 1.0&lt;/TT&gt;. In other words, &lt;TT&gt;(255*255)&gt;&gt;8&lt;/TT&gt; is not<br></td></tr
  10404. ><tr
  10405. id=sl_svn7768_1462
  10406. ><td class="source"> * the same as &lt;TT&gt;(255*255)/255&lt;/TT&gt;. But for real-time use the shifts<br></td></tr
  10407. ><tr
  10408. id=sl_svn7768_1463
  10409. ><td class="source"> * are preferrable, and the difference is insignificant for applications<br></td></tr
  10410. ><tr
  10411. id=sl_svn7768_1464
  10412. ><td class="source"> * built with Processing.&lt;/P&gt;<br></td></tr
  10413. ><tr
  10414. id=sl_svn7768_1465
  10415. ><td class="source"> */<br></td></tr
  10416. ><tr
  10417. id=sl_svn7768_1466
  10418. ><td class="source"> static public int blendColor(int c1, int c2, int mode) {<br></td></tr
  10419. ><tr
  10420. id=sl_svn7768_1467
  10421. ><td class="source"> switch (mode) {<br></td></tr
  10422. ><tr
  10423. id=sl_svn7768_1468
  10424. ><td class="source"> case REPLACE: return c2;<br></td></tr
  10425. ><tr
  10426. id=sl_svn7768_1469
  10427. ><td class="source"> case BLEND: return blend_blend(c1, c2);<br></td></tr
  10428. ><tr
  10429. id=sl_svn7768_1470
  10430. ><td class="source"><br></td></tr
  10431. ><tr
  10432. id=sl_svn7768_1471
  10433. ><td class="source"> case ADD: return blend_add_pin(c1, c2);<br></td></tr
  10434. ><tr
  10435. id=sl_svn7768_1472
  10436. ><td class="source"> case SUBTRACT: return blend_sub_pin(c1, c2);<br></td></tr
  10437. ><tr
  10438. id=sl_svn7768_1473
  10439. ><td class="source"><br></td></tr
  10440. ><tr
  10441. id=sl_svn7768_1474
  10442. ><td class="source"> case LIGHTEST: return blend_lightest(c1, c2);<br></td></tr
  10443. ><tr
  10444. id=sl_svn7768_1475
  10445. ><td class="source"> case DARKEST: return blend_darkest(c1, c2);<br></td></tr
  10446. ><tr
  10447. id=sl_svn7768_1476
  10448. ><td class="source"><br></td></tr
  10449. ><tr
  10450. id=sl_svn7768_1477
  10451. ><td class="source"> case DIFFERENCE: return blend_difference(c1, c2);<br></td></tr
  10452. ><tr
  10453. id=sl_svn7768_1478
  10454. ><td class="source"> case EXCLUSION: return blend_exclusion(c1, c2);<br></td></tr
  10455. ><tr
  10456. id=sl_svn7768_1479
  10457. ><td class="source"><br></td></tr
  10458. ><tr
  10459. id=sl_svn7768_1480
  10460. ><td class="source"> case MULTIPLY: return blend_multiply(c1, c2);<br></td></tr
  10461. ><tr
  10462. id=sl_svn7768_1481
  10463. ><td class="source"> case SCREEN: return blend_screen(c1, c2);<br></td></tr
  10464. ><tr
  10465. id=sl_svn7768_1482
  10466. ><td class="source"><br></td></tr
  10467. ><tr
  10468. id=sl_svn7768_1483
  10469. ><td class="source"> case HARD_LIGHT: return blend_hard_light(c1, c2);<br></td></tr
  10470. ><tr
  10471. id=sl_svn7768_1484
  10472. ><td class="source"> case SOFT_LIGHT: return blend_soft_light(c1, c2);<br></td></tr
  10473. ><tr
  10474. id=sl_svn7768_1485
  10475. ><td class="source"> case OVERLAY: return blend_overlay(c1, c2);<br></td></tr
  10476. ><tr
  10477. id=sl_svn7768_1486
  10478. ><td class="source"><br></td></tr
  10479. ><tr
  10480. id=sl_svn7768_1487
  10481. ><td class="source"> case DODGE: return blend_dodge(c1, c2);<br></td></tr
  10482. ><tr
  10483. id=sl_svn7768_1488
  10484. ><td class="source"> case BURN: return blend_burn(c1, c2);<br></td></tr
  10485. ><tr
  10486. id=sl_svn7768_1489
  10487. ><td class="source"> }<br></td></tr
  10488. ><tr
  10489. id=sl_svn7768_1490
  10490. ><td class="source"> return 0;<br></td></tr
  10491. ><tr
  10492. id=sl_svn7768_1491
  10493. ><td class="source"> }<br></td></tr
  10494. ><tr
  10495. id=sl_svn7768_1492
  10496. ><td class="source"><br></td></tr
  10497. ><tr
  10498. id=sl_svn7768_1493
  10499. ><td class="source"><br></td></tr
  10500. ><tr
  10501. id=sl_svn7768_1494
  10502. ><td class="source"> /**<br></td></tr
  10503. ><tr
  10504. id=sl_svn7768_1495
  10505. ><td class="source"> * Blends one area of this image to another area.<br></td></tr
  10506. ><tr
  10507. id=sl_svn7768_1496
  10508. ><td class="source"> *<br></td></tr
  10509. ><tr
  10510. id=sl_svn7768_1497
  10511. ><td class="source"> * @see processing.core.PImage#blendColor(int,int,int)<br></td></tr
  10512. ><tr
  10513. id=sl_svn7768_1498
  10514. ><td class="source"> */<br></td></tr
  10515. ><tr
  10516. id=sl_svn7768_1499
  10517. ><td class="source"> public void blend(int sx, int sy, int sw, int sh,<br></td></tr
  10518. ><tr
  10519. id=sl_svn7768_1500
  10520. ><td class="source"> int dx, int dy, int dw, int dh, int mode) {<br></td></tr
  10521. ><tr
  10522. id=sl_svn7768_1501
  10523. ><td class="source"> blend(this, sx, sy, sw, sh, dx, dy, dw, dh, mode);<br></td></tr
  10524. ><tr
  10525. id=sl_svn7768_1502
  10526. ><td class="source"> }<br></td></tr
  10527. ><tr
  10528. id=sl_svn7768_1503
  10529. ><td class="source"><br></td></tr
  10530. ><tr
  10531. id=sl_svn7768_1504
  10532. ><td class="source"><br></td></tr
  10533. ><tr
  10534. id=sl_svn7768_1505
  10535. ><td class="source"> /**<br></td></tr
  10536. ><tr
  10537. id=sl_svn7768_1506
  10538. ><td class="source"> * Blends a region of pixels into the image specified by the &lt;b&gt;img&lt;/b&gt; parameter. These copies utilize full alpha channel support and a choice of the following modes to blend the colors of source pixels (A) with the ones of pixels in the destination image (B):&lt;br&gt;&lt;br&gt;<br></td></tr
  10539. ><tr
  10540. id=sl_svn7768_1507
  10541. ><td class="source"> * BLEND - linear interpolation of colours: C = A*factor + B&lt;br&gt;&lt;br&gt;<br></td></tr
  10542. ><tr
  10543. id=sl_svn7768_1508
  10544. ><td class="source"> * ADD - additive blending with white clip: C = min(A*factor + B, 255)&lt;br&gt;&lt;br&gt;<br></td></tr
  10545. ><tr
  10546. id=sl_svn7768_1509
  10547. ><td class="source"> * SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)&lt;br&gt;&lt;br&gt;<br></td></tr
  10548. ><tr
  10549. id=sl_svn7768_1510
  10550. ><td class="source"> * DARKEST - only the darkest colour succeeds: C = min(A*factor, B)&lt;br&gt;&lt;br&gt;<br></td></tr
  10551. ><tr
  10552. id=sl_svn7768_1511
  10553. ><td class="source"> * LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)&lt;br&gt;&lt;br&gt;<br></td></tr
  10554. ><tr
  10555. id=sl_svn7768_1512
  10556. ><td class="source"> * DIFFERENCE - subtract colors from underlying image.&lt;br&gt;&lt;br&gt;<br></td></tr
  10557. ><tr
  10558. id=sl_svn7768_1513
  10559. ><td class="source"> * EXCLUSION - similar to DIFFERENCE, but less extreme.&lt;br&gt;&lt;br&gt;<br></td></tr
  10560. ><tr
  10561. id=sl_svn7768_1514
  10562. ><td class="source"> * MULTIPLY - Multiply the colors, result will always be darker.&lt;br&gt;&lt;br&gt;<br></td></tr
  10563. ><tr
  10564. id=sl_svn7768_1515
  10565. ><td class="source"> * SCREEN - Opposite multiply, uses inverse values of the colors.&lt;br&gt;&lt;br&gt;<br></td></tr
  10566. ><tr
  10567. id=sl_svn7768_1516
  10568. ><td class="source"> * OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values, and screens light values.&lt;br&gt;&lt;br&gt;<br></td></tr
  10569. ><tr
  10570. id=sl_svn7768_1517
  10571. ><td class="source"> * HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.&lt;br&gt;&lt;br&gt;<br></td></tr
  10572. ><tr
  10573. id=sl_svn7768_1518
  10574. ><td class="source"> * SOFT_LIGHT - Mix of DARKEST and LIGHTEST. Works like OVERLAY, but not as harsh.&lt;br&gt;&lt;br&gt;<br></td></tr
  10575. ><tr
  10576. id=sl_svn7768_1519
  10577. ><td class="source"> * DODGE - Lightens light tones and increases contrast, ignores darks. Called &quot;Color Dodge&quot; in Illustrator and Photoshop.&lt;br&gt;&lt;br&gt;<br></td></tr
  10578. ><tr
  10579. id=sl_svn7768_1520
  10580. ><td class="source"> * BURN - Darker areas are applied, increasing contrast, ignores lights. Called &quot;Color Burn&quot; in Illustrator and Photoshop.&lt;br&gt;&lt;br&gt;<br></td></tr
  10581. ><tr
  10582. id=sl_svn7768_1521
  10583. ><td class="source"> * All modes use the alpha information (highest byte) of source image pixels as the blending factor. If the source and destination regions are different sizes, the image will be automatically resized to match the destination size. If the &lt;b&gt;srcImg&lt;/b&gt; parameter is not used, the display window is used as the source image.&lt;br&gt;&lt;br&gt;<br></td></tr
  10584. ><tr
  10585. id=sl_svn7768_1522
  10586. ><td class="source"> * As of release 0149, this function ignores &lt;b&gt;imageMode()&lt;/b&gt;.<br></td></tr
  10587. ><tr
  10588. id=sl_svn7768_1523
  10589. ><td class="source"> *<br></td></tr
  10590. ><tr
  10591. id=sl_svn7768_1524
  10592. ><td class="source"> * @webref<br></td></tr
  10593. ><tr
  10594. id=sl_svn7768_1525
  10595. ><td class="source"> * @brief Copies a pixel or rectangle of pixels using different blending modes<br></td></tr
  10596. ><tr
  10597. id=sl_svn7768_1526
  10598. ><td class="source"> * @param src an image variable referring to the source image<br></td></tr
  10599. ><tr
  10600. id=sl_svn7768_1527
  10601. ><td class="source"> * @param sx X coordinate of the source&#39;s upper left corner<br></td></tr
  10602. ><tr
  10603. id=sl_svn7768_1528
  10604. ><td class="source"> * @param sy Y coordinate of the source&#39;s upper left corner<br></td></tr
  10605. ><tr
  10606. id=sl_svn7768_1529
  10607. ><td class="source"> * @param sw source image width<br></td></tr
  10608. ><tr
  10609. id=sl_svn7768_1530
  10610. ><td class="source"> * @param sh source image height<br></td></tr
  10611. ><tr
  10612. id=sl_svn7768_1531
  10613. ><td class="source"> * @param dx X coordinate of the destinations&#39;s upper left corner<br></td></tr
  10614. ><tr
  10615. id=sl_svn7768_1532
  10616. ><td class="source"> * @param dy Y coordinate of the destinations&#39;s upper left corner<br></td></tr
  10617. ><tr
  10618. id=sl_svn7768_1533
  10619. ><td class="source"> * @param dw destination image width<br></td></tr
  10620. ><tr
  10621. id=sl_svn7768_1534
  10622. ><td class="source"> * @param dh destination image height<br></td></tr
  10623. ><tr
  10624. id=sl_svn7768_1535
  10625. ><td class="source"> * @param mode Either BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN<br></td></tr
  10626. ><tr
  10627. id=sl_svn7768_1536
  10628. ><td class="source"> *<br></td></tr
  10629. ><tr
  10630. id=sl_svn7768_1537
  10631. ><td class="source"> * @see processing.core.PGraphics#alpha(int)<br></td></tr
  10632. ><tr
  10633. id=sl_svn7768_1538
  10634. ><td class="source"> * @see processing.core.PGraphics#copy(PImage, int, int, int, int, int, int, int, int)<br></td></tr
  10635. ><tr
  10636. id=sl_svn7768_1539
  10637. ><td class="source"> * @see processing.core.PImage#blendColor(int,int,int)<br></td></tr
  10638. ><tr
  10639. id=sl_svn7768_1540
  10640. ><td class="source"> */<br></td></tr
  10641. ><tr
  10642. id=sl_svn7768_1541
  10643. ><td class="source"> public void blend(PImage src,<br></td></tr
  10644. ><tr
  10645. id=sl_svn7768_1542
  10646. ><td class="source"> int sx, int sy, int sw, int sh,<br></td></tr
  10647. ><tr
  10648. id=sl_svn7768_1543
  10649. ><td class="source"> int dx, int dy, int dw, int dh, int mode) {<br></td></tr
  10650. ><tr
  10651. id=sl_svn7768_1544
  10652. ><td class="source"> /*<br></td></tr
  10653. ><tr
  10654. id=sl_svn7768_1545
  10655. ><td class="source"> if (imageMode == CORNER) { // if CORNERS, do nothing<br></td></tr
  10656. ><tr
  10657. id=sl_svn7768_1546
  10658. ><td class="source"> sx2 += sx1;<br></td></tr
  10659. ><tr
  10660. id=sl_svn7768_1547
  10661. ><td class="source"> sy2 += sy1;<br></td></tr
  10662. ><tr
  10663. id=sl_svn7768_1548
  10664. ><td class="source"> dx2 += dx1;<br></td></tr
  10665. ><tr
  10666. id=sl_svn7768_1549
  10667. ><td class="source"> dy2 += dy1;<br></td></tr
  10668. ><tr
  10669. id=sl_svn7768_1550
  10670. ><td class="source"><br></td></tr
  10671. ><tr
  10672. id=sl_svn7768_1551
  10673. ><td class="source"> } else if (imageMode == CENTER) {<br></td></tr
  10674. ><tr
  10675. id=sl_svn7768_1552
  10676. ><td class="source"> sx1 -= sx2 / 2f;<br></td></tr
  10677. ><tr
  10678. id=sl_svn7768_1553
  10679. ><td class="source"> sy1 -= sy2 / 2f;<br></td></tr
  10680. ><tr
  10681. id=sl_svn7768_1554
  10682. ><td class="source"> sx2 += sx1;<br></td></tr
  10683. ><tr
  10684. id=sl_svn7768_1555
  10685. ><td class="source"> sy2 += sy1;<br></td></tr
  10686. ><tr
  10687. id=sl_svn7768_1556
  10688. ><td class="source"> dx1 -= dx2 / 2f;<br></td></tr
  10689. ><tr
  10690. id=sl_svn7768_1557
  10691. ><td class="source"> dy1 -= dy2 / 2f;<br></td></tr
  10692. ><tr
  10693. id=sl_svn7768_1558
  10694. ><td class="source"> dx2 += dx1;<br></td></tr
  10695. ><tr
  10696. id=sl_svn7768_1559
  10697. ><td class="source"> dy2 += dy1;<br></td></tr
  10698. ><tr
  10699. id=sl_svn7768_1560
  10700. ><td class="source"> }<br></td></tr
  10701. ><tr
  10702. id=sl_svn7768_1561
  10703. ><td class="source"> */<br></td></tr
  10704. ><tr
  10705. id=sl_svn7768_1562
  10706. ><td class="source"> int sx2 = sx + sw;<br></td></tr
  10707. ><tr
  10708. id=sl_svn7768_1563
  10709. ><td class="source"> int sy2 = sy + sh;<br></td></tr
  10710. ><tr
  10711. id=sl_svn7768_1564
  10712. ><td class="source"> int dx2 = dx + dw;<br></td></tr
  10713. ><tr
  10714. id=sl_svn7768_1565
  10715. ><td class="source"> int dy2 = dy + dh;<br></td></tr
  10716. ><tr
  10717. id=sl_svn7768_1566
  10718. ><td class="source"><br></td></tr
  10719. ><tr
  10720. id=sl_svn7768_1567
  10721. ><td class="source"> loadPixels();<br></td></tr
  10722. ><tr
  10723. id=sl_svn7768_1568
  10724. ><td class="source"> if (src == this) {<br></td></tr
  10725. ><tr
  10726. id=sl_svn7768_1569
  10727. ><td class="source"> if (intersect(sx, sy, sx2, sy2, dx, dy, dx2, dy2)) {<br></td></tr
  10728. ><tr
  10729. id=sl_svn7768_1570
  10730. ><td class="source"> blit_resize(get(sx, sy, sx2 - sx, sy2 - sy),<br></td></tr
  10731. ><tr
  10732. id=sl_svn7768_1571
  10733. ><td class="source"> 0, 0, sx2 - sx - 1, sy2 - sy - 1,<br></td></tr
  10734. ><tr
  10735. id=sl_svn7768_1572
  10736. ><td class="source"> pixels, width, height, dx, dy, dx2, dy2, mode);<br></td></tr
  10737. ><tr
  10738. id=sl_svn7768_1573
  10739. ><td class="source"> } else {<br></td></tr
  10740. ><tr
  10741. id=sl_svn7768_1574
  10742. ><td class="source"> // same as below, except skip the loadPixels() because it&#39;d be redundant<br></td></tr
  10743. ><tr
  10744. id=sl_svn7768_1575
  10745. ><td class="source"> blit_resize(src, sx, sy, sx2, sy2,<br></td></tr
  10746. ><tr
  10747. id=sl_svn7768_1576
  10748. ><td class="source"> pixels, width, height, dx, dy, dx2, dy2, mode);<br></td></tr
  10749. ><tr
  10750. id=sl_svn7768_1577
  10751. ><td class="source"> }<br></td></tr
  10752. ><tr
  10753. id=sl_svn7768_1578
  10754. ><td class="source"> } else {<br></td></tr
  10755. ><tr
  10756. id=sl_svn7768_1579
  10757. ><td class="source"> src.loadPixels();<br></td></tr
  10758. ><tr
  10759. id=sl_svn7768_1580
  10760. ><td class="source"> blit_resize(src, sx, sy, sx2, sy2,<br></td></tr
  10761. ><tr
  10762. id=sl_svn7768_1581
  10763. ><td class="source"> pixels, width, height, dx, dy, dx2, dy2, mode);<br></td></tr
  10764. ><tr
  10765. id=sl_svn7768_1582
  10766. ><td class="source"> //src.updatePixels();<br></td></tr
  10767. ><tr
  10768. id=sl_svn7768_1583
  10769. ><td class="source"> }<br></td></tr
  10770. ><tr
  10771. id=sl_svn7768_1584
  10772. ><td class="source"> updatePixels();<br></td></tr
  10773. ><tr
  10774. id=sl_svn7768_1585
  10775. ><td class="source"> }<br></td></tr
  10776. ><tr
  10777. id=sl_svn7768_1586
  10778. ><td class="source"><br></td></tr
  10779. ><tr
  10780. id=sl_svn7768_1587
  10781. ><td class="source"><br></td></tr
  10782. ><tr
  10783. id=sl_svn7768_1588
  10784. ><td class="source"> /**<br></td></tr
  10785. ><tr
  10786. id=sl_svn7768_1589
  10787. ><td class="source"> * Check to see if two rectangles intersect one another<br></td></tr
  10788. ><tr
  10789. id=sl_svn7768_1590
  10790. ><td class="source"> */<br></td></tr
  10791. ><tr
  10792. id=sl_svn7768_1591
  10793. ><td class="source"> private boolean intersect(int sx1, int sy1, int sx2, int sy2,<br></td></tr
  10794. ><tr
  10795. id=sl_svn7768_1592
  10796. ><td class="source"> int dx1, int dy1, int dx2, int dy2) {<br></td></tr
  10797. ><tr
  10798. id=sl_svn7768_1593
  10799. ><td class="source"> int sw = sx2 - sx1 + 1;<br></td></tr
  10800. ><tr
  10801. id=sl_svn7768_1594
  10802. ><td class="source"> int sh = sy2 - sy1 + 1;<br></td></tr
  10803. ><tr
  10804. id=sl_svn7768_1595
  10805. ><td class="source"> int dw = dx2 - dx1 + 1;<br></td></tr
  10806. ><tr
  10807. id=sl_svn7768_1596
  10808. ><td class="source"> int dh = dy2 - dy1 + 1;<br></td></tr
  10809. ><tr
  10810. id=sl_svn7768_1597
  10811. ><td class="source"><br></td></tr
  10812. ><tr
  10813. id=sl_svn7768_1598
  10814. ><td class="source"> if (dx1 &lt; sx1) {<br></td></tr
  10815. ><tr
  10816. id=sl_svn7768_1599
  10817. ><td class="source"> dw += dx1 - sx1;<br></td></tr
  10818. ><tr
  10819. id=sl_svn7768_1600
  10820. ><td class="source"> if (dw &gt; sw) {<br></td></tr
  10821. ><tr
  10822. id=sl_svn7768_1601
  10823. ><td class="source"> dw = sw;<br></td></tr
  10824. ><tr
  10825. id=sl_svn7768_1602
  10826. ><td class="source"> }<br></td></tr
  10827. ><tr
  10828. id=sl_svn7768_1603
  10829. ><td class="source"> } else {<br></td></tr
  10830. ><tr
  10831. id=sl_svn7768_1604
  10832. ><td class="source"> int w = sw + sx1 - dx1;<br></td></tr
  10833. ><tr
  10834. id=sl_svn7768_1605
  10835. ><td class="source"> if (dw &gt; w) {<br></td></tr
  10836. ><tr
  10837. id=sl_svn7768_1606
  10838. ><td class="source"> dw = w;<br></td></tr
  10839. ><tr
  10840. id=sl_svn7768_1607
  10841. ><td class="source"> }<br></td></tr
  10842. ><tr
  10843. id=sl_svn7768_1608
  10844. ><td class="source"> }<br></td></tr
  10845. ><tr
  10846. id=sl_svn7768_1609
  10847. ><td class="source"> if (dy1 &lt; sy1) {<br></td></tr
  10848. ><tr
  10849. id=sl_svn7768_1610
  10850. ><td class="source"> dh += dy1 - sy1;<br></td></tr
  10851. ><tr
  10852. id=sl_svn7768_1611
  10853. ><td class="source"> if (dh &gt; sh) {<br></td></tr
  10854. ><tr
  10855. id=sl_svn7768_1612
  10856. ><td class="source"> dh = sh;<br></td></tr
  10857. ><tr
  10858. id=sl_svn7768_1613
  10859. ><td class="source"> }<br></td></tr
  10860. ><tr
  10861. id=sl_svn7768_1614
  10862. ><td class="source"> } else {<br></td></tr
  10863. ><tr
  10864. id=sl_svn7768_1615
  10865. ><td class="source"> int h = sh + sy1 - dy1;<br></td></tr
  10866. ><tr
  10867. id=sl_svn7768_1616
  10868. ><td class="source"> if (dh &gt; h) {<br></td></tr
  10869. ><tr
  10870. id=sl_svn7768_1617
  10871. ><td class="source"> dh = h;<br></td></tr
  10872. ><tr
  10873. id=sl_svn7768_1618
  10874. ><td class="source"> }<br></td></tr
  10875. ><tr
  10876. id=sl_svn7768_1619
  10877. ><td class="source"> }<br></td></tr
  10878. ><tr
  10879. id=sl_svn7768_1620
  10880. ><td class="source"> return !(dw &lt;= 0 || dh &lt;= 0);<br></td></tr
  10881. ><tr
  10882. id=sl_svn7768_1621
  10883. ><td class="source"> }<br></td></tr
  10884. ><tr
  10885. id=sl_svn7768_1622
  10886. ><td class="source"><br></td></tr
  10887. ><tr
  10888. id=sl_svn7768_1623
  10889. ><td class="source"><br></td></tr
  10890. ><tr
  10891. id=sl_svn7768_1624
  10892. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10893. ><tr
  10894. id=sl_svn7768_1625
  10895. ><td class="source"><br></td></tr
  10896. ><tr
  10897. id=sl_svn7768_1626
  10898. ><td class="source"><br></td></tr
  10899. ><tr
  10900. id=sl_svn7768_1627
  10901. ><td class="source"> /**<br></td></tr
  10902. ><tr
  10903. id=sl_svn7768_1628
  10904. ><td class="source"> * Internal blitter/resizer/copier from toxi.<br></td></tr
  10905. ><tr
  10906. id=sl_svn7768_1629
  10907. ><td class="source"> * Uses bilinear filtering if smooth() has been enabled<br></td></tr
  10908. ><tr
  10909. id=sl_svn7768_1630
  10910. ><td class="source"> * &#39;mode&#39; determines the blending mode used in the process.<br></td></tr
  10911. ><tr
  10912. id=sl_svn7768_1631
  10913. ><td class="source"> */<br></td></tr
  10914. ><tr
  10915. id=sl_svn7768_1632
  10916. ><td class="source"> private void blit_resize(PImage img,<br></td></tr
  10917. ><tr
  10918. id=sl_svn7768_1633
  10919. ><td class="source"> int srcX1, int srcY1, int srcX2, int srcY2,<br></td></tr
  10920. ><tr
  10921. id=sl_svn7768_1634
  10922. ><td class="source"> int[] destPixels, int screenW, int screenH,<br></td></tr
  10923. ><tr
  10924. id=sl_svn7768_1635
  10925. ><td class="source"> int destX1, int destY1, int destX2, int destY2,<br></td></tr
  10926. ><tr
  10927. id=sl_svn7768_1636
  10928. ><td class="source"> int mode) {<br></td></tr
  10929. ><tr
  10930. id=sl_svn7768_1637
  10931. ><td class="source"> if (srcX1 &lt; 0) srcX1 = 0;<br></td></tr
  10932. ><tr
  10933. id=sl_svn7768_1638
  10934. ><td class="source"> if (srcY1 &lt; 0) srcY1 = 0;<br></td></tr
  10935. ><tr
  10936. id=sl_svn7768_1639
  10937. ><td class="source"> if (srcX2 &gt; img.width) srcX2 = img.width;<br></td></tr
  10938. ><tr
  10939. id=sl_svn7768_1640
  10940. ><td class="source"> if (srcY2 &gt; img.height) srcY2 = img.height;<br></td></tr
  10941. ><tr
  10942. id=sl_svn7768_1641
  10943. ><td class="source"><br></td></tr
  10944. ><tr
  10945. id=sl_svn7768_1642
  10946. ><td class="source"> int srcW = srcX2 - srcX1;<br></td></tr
  10947. ><tr
  10948. id=sl_svn7768_1643
  10949. ><td class="source"> int srcH = srcY2 - srcY1;<br></td></tr
  10950. ><tr
  10951. id=sl_svn7768_1644
  10952. ><td class="source"> int destW = destX2 - destX1;<br></td></tr
  10953. ><tr
  10954. id=sl_svn7768_1645
  10955. ><td class="source"> int destH = destY2 - destY1;<br></td></tr
  10956. ><tr
  10957. id=sl_svn7768_1646
  10958. ><td class="source"><br></td></tr
  10959. ><tr
  10960. id=sl_svn7768_1647
  10961. ><td class="source"> boolean smooth = true; // may as well go with the smoothing these days<br></td></tr
  10962. ><tr
  10963. id=sl_svn7768_1648
  10964. ><td class="source"><br></td></tr
  10965. ><tr
  10966. id=sl_svn7768_1649
  10967. ><td class="source"> if (!smooth) {<br></td></tr
  10968. ><tr
  10969. id=sl_svn7768_1650
  10970. ><td class="source"> srcW++; srcH++;<br></td></tr
  10971. ><tr
  10972. id=sl_svn7768_1651
  10973. ><td class="source"> }<br></td></tr
  10974. ><tr
  10975. id=sl_svn7768_1652
  10976. ><td class="source"><br></td></tr
  10977. ><tr
  10978. id=sl_svn7768_1653
  10979. ><td class="source"> if (destW &lt;= 0 || destH &lt;= 0 ||<br></td></tr
  10980. ><tr
  10981. id=sl_svn7768_1654
  10982. ><td class="source"> srcW &lt;= 0 || srcH &lt;= 0 ||<br></td></tr
  10983. ><tr
  10984. id=sl_svn7768_1655
  10985. ><td class="source"> destX1 &gt;= screenW || destY1 &gt;= screenH ||<br></td></tr
  10986. ><tr
  10987. id=sl_svn7768_1656
  10988. ><td class="source"> srcX1 &gt;= img.width || srcY1 &gt;= img.height) {<br></td></tr
  10989. ><tr
  10990. id=sl_svn7768_1657
  10991. ><td class="source"> return;<br></td></tr
  10992. ><tr
  10993. id=sl_svn7768_1658
  10994. ><td class="source"> }<br></td></tr
  10995. ><tr
  10996. id=sl_svn7768_1659
  10997. ><td class="source"><br></td></tr
  10998. ><tr
  10999. id=sl_svn7768_1660
  11000. ><td class="source"> int dx = (int) (srcW / (float) destW * PRECISIONF);<br></td></tr
  11001. ><tr
  11002. id=sl_svn7768_1661
  11003. ><td class="source"> int dy = (int) (srcH / (float) destH * PRECISIONF);<br></td></tr
  11004. ><tr
  11005. id=sl_svn7768_1662
  11006. ><td class="source"><br></td></tr
  11007. ><tr
  11008. id=sl_svn7768_1663
  11009. ><td class="source"> srcXOffset = (int) (destX1 &lt; 0 ? -destX1 * dx : srcX1 * PRECISIONF);<br></td></tr
  11010. ><tr
  11011. id=sl_svn7768_1664
  11012. ><td class="source"> srcYOffset = (int) (destY1 &lt; 0 ? -destY1 * dy : srcY1 * PRECISIONF);<br></td></tr
  11013. ><tr
  11014. id=sl_svn7768_1665
  11015. ><td class="source"><br></td></tr
  11016. ><tr
  11017. id=sl_svn7768_1666
  11018. ><td class="source"> if (destX1 &lt; 0) {<br></td></tr
  11019. ><tr
  11020. id=sl_svn7768_1667
  11021. ><td class="source"> destW += destX1;<br></td></tr
  11022. ><tr
  11023. id=sl_svn7768_1668
  11024. ><td class="source"> destX1 = 0;<br></td></tr
  11025. ><tr
  11026. id=sl_svn7768_1669
  11027. ><td class="source"> }<br></td></tr
  11028. ><tr
  11029. id=sl_svn7768_1670
  11030. ><td class="source"> if (destY1 &lt; 0) {<br></td></tr
  11031. ><tr
  11032. id=sl_svn7768_1671
  11033. ><td class="source"> destH += destY1;<br></td></tr
  11034. ><tr
  11035. id=sl_svn7768_1672
  11036. ><td class="source"> destY1 = 0;<br></td></tr
  11037. ><tr
  11038. id=sl_svn7768_1673
  11039. ><td class="source"> }<br></td></tr
  11040. ><tr
  11041. id=sl_svn7768_1674
  11042. ><td class="source"><br></td></tr
  11043. ><tr
  11044. id=sl_svn7768_1675
  11045. ><td class="source"> destW = low(destW, screenW - destX1);<br></td></tr
  11046. ><tr
  11047. id=sl_svn7768_1676
  11048. ><td class="source"> destH = low(destH, screenH - destY1);<br></td></tr
  11049. ><tr
  11050. id=sl_svn7768_1677
  11051. ><td class="source"><br></td></tr
  11052. ><tr
  11053. id=sl_svn7768_1678
  11054. ><td class="source"> int destOffset = destY1 * screenW + destX1;<br></td></tr
  11055. ><tr
  11056. id=sl_svn7768_1679
  11057. ><td class="source"> srcBuffer = img.pixels;<br></td></tr
  11058. ><tr
  11059. id=sl_svn7768_1680
  11060. ><td class="source"><br></td></tr
  11061. ><tr
  11062. id=sl_svn7768_1681
  11063. ><td class="source"> if (smooth) {<br></td></tr
  11064. ><tr
  11065. id=sl_svn7768_1682
  11066. ><td class="source"> // use bilinear filtering<br></td></tr
  11067. ><tr
  11068. id=sl_svn7768_1683
  11069. ><td class="source"> iw = img.width;<br></td></tr
  11070. ><tr
  11071. id=sl_svn7768_1684
  11072. ><td class="source"> iw1 = img.width - 1;<br></td></tr
  11073. ><tr
  11074. id=sl_svn7768_1685
  11075. ><td class="source"> ih1 = img.height - 1;<br></td></tr
  11076. ><tr
  11077. id=sl_svn7768_1686
  11078. ><td class="source"><br></td></tr
  11079. ><tr
  11080. id=sl_svn7768_1687
  11081. ><td class="source"> switch (mode) {<br></td></tr
  11082. ><tr
  11083. id=sl_svn7768_1688
  11084. ><td class="source"><br></td></tr
  11085. ><tr
  11086. id=sl_svn7768_1689
  11087. ><td class="source"> case BLEND:<br></td></tr
  11088. ><tr
  11089. id=sl_svn7768_1690
  11090. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11091. ><tr
  11092. id=sl_svn7768_1691
  11093. ><td class="source"> filter_new_scanline();<br></td></tr
  11094. ><tr
  11095. id=sl_svn7768_1692
  11096. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11097. ><tr
  11098. id=sl_svn7768_1693
  11099. ><td class="source"> // davbol - renamed old blend_multiply to blend_blend<br></td></tr
  11100. ><tr
  11101. id=sl_svn7768_1694
  11102. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11103. ><tr
  11104. id=sl_svn7768_1695
  11105. ><td class="source"> blend_blend(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11106. ><tr
  11107. id=sl_svn7768_1696
  11108. ><td class="source"> sX += dx;<br></td></tr
  11109. ><tr
  11110. id=sl_svn7768_1697
  11111. ><td class="source"> }<br></td></tr
  11112. ><tr
  11113. id=sl_svn7768_1698
  11114. ><td class="source"> destOffset += screenW;<br></td></tr
  11115. ><tr
  11116. id=sl_svn7768_1699
  11117. ><td class="source"> srcYOffset += dy;<br></td></tr
  11118. ><tr
  11119. id=sl_svn7768_1700
  11120. ><td class="source"> }<br></td></tr
  11121. ><tr
  11122. id=sl_svn7768_1701
  11123. ><td class="source"> break;<br></td></tr
  11124. ><tr
  11125. id=sl_svn7768_1702
  11126. ><td class="source"><br></td></tr
  11127. ><tr
  11128. id=sl_svn7768_1703
  11129. ><td class="source"> case ADD:<br></td></tr
  11130. ><tr
  11131. id=sl_svn7768_1704
  11132. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11133. ><tr
  11134. id=sl_svn7768_1705
  11135. ><td class="source"> filter_new_scanline();<br></td></tr
  11136. ><tr
  11137. id=sl_svn7768_1706
  11138. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11139. ><tr
  11140. id=sl_svn7768_1707
  11141. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11142. ><tr
  11143. id=sl_svn7768_1708
  11144. ><td class="source"> blend_add_pin(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11145. ><tr
  11146. id=sl_svn7768_1709
  11147. ><td class="source"> sX += dx;<br></td></tr
  11148. ><tr
  11149. id=sl_svn7768_1710
  11150. ><td class="source"> }<br></td></tr
  11151. ><tr
  11152. id=sl_svn7768_1711
  11153. ><td class="source"> destOffset += screenW;<br></td></tr
  11154. ><tr
  11155. id=sl_svn7768_1712
  11156. ><td class="source"> srcYOffset += dy;<br></td></tr
  11157. ><tr
  11158. id=sl_svn7768_1713
  11159. ><td class="source"> }<br></td></tr
  11160. ><tr
  11161. id=sl_svn7768_1714
  11162. ><td class="source"> break;<br></td></tr
  11163. ><tr
  11164. id=sl_svn7768_1715
  11165. ><td class="source"><br></td></tr
  11166. ><tr
  11167. id=sl_svn7768_1716
  11168. ><td class="source"> case SUBTRACT:<br></td></tr
  11169. ><tr
  11170. id=sl_svn7768_1717
  11171. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11172. ><tr
  11173. id=sl_svn7768_1718
  11174. ><td class="source"> filter_new_scanline();<br></td></tr
  11175. ><tr
  11176. id=sl_svn7768_1719
  11177. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11178. ><tr
  11179. id=sl_svn7768_1720
  11180. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11181. ><tr
  11182. id=sl_svn7768_1721
  11183. ><td class="source"> blend_sub_pin(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11184. ><tr
  11185. id=sl_svn7768_1722
  11186. ><td class="source"> sX += dx;<br></td></tr
  11187. ><tr
  11188. id=sl_svn7768_1723
  11189. ><td class="source"> }<br></td></tr
  11190. ><tr
  11191. id=sl_svn7768_1724
  11192. ><td class="source"> destOffset += screenW;<br></td></tr
  11193. ><tr
  11194. id=sl_svn7768_1725
  11195. ><td class="source"> srcYOffset += dy;<br></td></tr
  11196. ><tr
  11197. id=sl_svn7768_1726
  11198. ><td class="source"> }<br></td></tr
  11199. ><tr
  11200. id=sl_svn7768_1727
  11201. ><td class="source"> break;<br></td></tr
  11202. ><tr
  11203. id=sl_svn7768_1728
  11204. ><td class="source"><br></td></tr
  11205. ><tr
  11206. id=sl_svn7768_1729
  11207. ><td class="source"> case LIGHTEST:<br></td></tr
  11208. ><tr
  11209. id=sl_svn7768_1730
  11210. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11211. ><tr
  11212. id=sl_svn7768_1731
  11213. ><td class="source"> filter_new_scanline();<br></td></tr
  11214. ><tr
  11215. id=sl_svn7768_1732
  11216. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11217. ><tr
  11218. id=sl_svn7768_1733
  11219. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11220. ><tr
  11221. id=sl_svn7768_1734
  11222. ><td class="source"> blend_lightest(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11223. ><tr
  11224. id=sl_svn7768_1735
  11225. ><td class="source"> sX += dx;<br></td></tr
  11226. ><tr
  11227. id=sl_svn7768_1736
  11228. ><td class="source"> }<br></td></tr
  11229. ><tr
  11230. id=sl_svn7768_1737
  11231. ><td class="source"> destOffset += screenW;<br></td></tr
  11232. ><tr
  11233. id=sl_svn7768_1738
  11234. ><td class="source"> srcYOffset += dy;<br></td></tr
  11235. ><tr
  11236. id=sl_svn7768_1739
  11237. ><td class="source"> }<br></td></tr
  11238. ><tr
  11239. id=sl_svn7768_1740
  11240. ><td class="source"> break;<br></td></tr
  11241. ><tr
  11242. id=sl_svn7768_1741
  11243. ><td class="source"><br></td></tr
  11244. ><tr
  11245. id=sl_svn7768_1742
  11246. ><td class="source"> case DARKEST:<br></td></tr
  11247. ><tr
  11248. id=sl_svn7768_1743
  11249. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11250. ><tr
  11251. id=sl_svn7768_1744
  11252. ><td class="source"> filter_new_scanline();<br></td></tr
  11253. ><tr
  11254. id=sl_svn7768_1745
  11255. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11256. ><tr
  11257. id=sl_svn7768_1746
  11258. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11259. ><tr
  11260. id=sl_svn7768_1747
  11261. ><td class="source"> blend_darkest(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11262. ><tr
  11263. id=sl_svn7768_1748
  11264. ><td class="source"> sX += dx;<br></td></tr
  11265. ><tr
  11266. id=sl_svn7768_1749
  11267. ><td class="source"> }<br></td></tr
  11268. ><tr
  11269. id=sl_svn7768_1750
  11270. ><td class="source"> destOffset += screenW;<br></td></tr
  11271. ><tr
  11272. id=sl_svn7768_1751
  11273. ><td class="source"> srcYOffset += dy;<br></td></tr
  11274. ><tr
  11275. id=sl_svn7768_1752
  11276. ><td class="source"> }<br></td></tr
  11277. ><tr
  11278. id=sl_svn7768_1753
  11279. ><td class="source"> break;<br></td></tr
  11280. ><tr
  11281. id=sl_svn7768_1754
  11282. ><td class="source"><br></td></tr
  11283. ><tr
  11284. id=sl_svn7768_1755
  11285. ><td class="source"> case REPLACE:<br></td></tr
  11286. ><tr
  11287. id=sl_svn7768_1756
  11288. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11289. ><tr
  11290. id=sl_svn7768_1757
  11291. ><td class="source"> filter_new_scanline();<br></td></tr
  11292. ><tr
  11293. id=sl_svn7768_1758
  11294. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11295. ><tr
  11296. id=sl_svn7768_1759
  11297. ><td class="source"> destPixels[destOffset + x] = filter_bilinear();<br></td></tr
  11298. ><tr
  11299. id=sl_svn7768_1760
  11300. ><td class="source"> sX += dx;<br></td></tr
  11301. ><tr
  11302. id=sl_svn7768_1761
  11303. ><td class="source"> }<br></td></tr
  11304. ><tr
  11305. id=sl_svn7768_1762
  11306. ><td class="source"> destOffset += screenW;<br></td></tr
  11307. ><tr
  11308. id=sl_svn7768_1763
  11309. ><td class="source"> srcYOffset += dy;<br></td></tr
  11310. ><tr
  11311. id=sl_svn7768_1764
  11312. ><td class="source"> }<br></td></tr
  11313. ><tr
  11314. id=sl_svn7768_1765
  11315. ><td class="source"> break;<br></td></tr
  11316. ><tr
  11317. id=sl_svn7768_1766
  11318. ><td class="source"><br></td></tr
  11319. ><tr
  11320. id=sl_svn7768_1767
  11321. ><td class="source"> case DIFFERENCE:<br></td></tr
  11322. ><tr
  11323. id=sl_svn7768_1768
  11324. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11325. ><tr
  11326. id=sl_svn7768_1769
  11327. ><td class="source"> filter_new_scanline();<br></td></tr
  11328. ><tr
  11329. id=sl_svn7768_1770
  11330. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11331. ><tr
  11332. id=sl_svn7768_1771
  11333. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11334. ><tr
  11335. id=sl_svn7768_1772
  11336. ><td class="source"> blend_difference(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11337. ><tr
  11338. id=sl_svn7768_1773
  11339. ><td class="source"> sX += dx;<br></td></tr
  11340. ><tr
  11341. id=sl_svn7768_1774
  11342. ><td class="source"> }<br></td></tr
  11343. ><tr
  11344. id=sl_svn7768_1775
  11345. ><td class="source"> destOffset += screenW;<br></td></tr
  11346. ><tr
  11347. id=sl_svn7768_1776
  11348. ><td class="source"> srcYOffset += dy;<br></td></tr
  11349. ><tr
  11350. id=sl_svn7768_1777
  11351. ><td class="source"> }<br></td></tr
  11352. ><tr
  11353. id=sl_svn7768_1778
  11354. ><td class="source"> break;<br></td></tr
  11355. ><tr
  11356. id=sl_svn7768_1779
  11357. ><td class="source"><br></td></tr
  11358. ><tr
  11359. id=sl_svn7768_1780
  11360. ><td class="source"> case EXCLUSION:<br></td></tr
  11361. ><tr
  11362. id=sl_svn7768_1781
  11363. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11364. ><tr
  11365. id=sl_svn7768_1782
  11366. ><td class="source"> filter_new_scanline();<br></td></tr
  11367. ><tr
  11368. id=sl_svn7768_1783
  11369. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11370. ><tr
  11371. id=sl_svn7768_1784
  11372. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11373. ><tr
  11374. id=sl_svn7768_1785
  11375. ><td class="source"> blend_exclusion(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11376. ><tr
  11377. id=sl_svn7768_1786
  11378. ><td class="source"> sX += dx;<br></td></tr
  11379. ><tr
  11380. id=sl_svn7768_1787
  11381. ><td class="source"> }<br></td></tr
  11382. ><tr
  11383. id=sl_svn7768_1788
  11384. ><td class="source"> destOffset += screenW;<br></td></tr
  11385. ><tr
  11386. id=sl_svn7768_1789
  11387. ><td class="source"> srcYOffset += dy;<br></td></tr
  11388. ><tr
  11389. id=sl_svn7768_1790
  11390. ><td class="source"> }<br></td></tr
  11391. ><tr
  11392. id=sl_svn7768_1791
  11393. ><td class="source"> break;<br></td></tr
  11394. ><tr
  11395. id=sl_svn7768_1792
  11396. ><td class="source"><br></td></tr
  11397. ><tr
  11398. id=sl_svn7768_1793
  11399. ><td class="source"> case MULTIPLY:<br></td></tr
  11400. ><tr
  11401. id=sl_svn7768_1794
  11402. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11403. ><tr
  11404. id=sl_svn7768_1795
  11405. ><td class="source"> filter_new_scanline();<br></td></tr
  11406. ><tr
  11407. id=sl_svn7768_1796
  11408. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11409. ><tr
  11410. id=sl_svn7768_1797
  11411. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11412. ><tr
  11413. id=sl_svn7768_1798
  11414. ><td class="source"> blend_multiply(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11415. ><tr
  11416. id=sl_svn7768_1799
  11417. ><td class="source"> sX += dx;<br></td></tr
  11418. ><tr
  11419. id=sl_svn7768_1800
  11420. ><td class="source"> }<br></td></tr
  11421. ><tr
  11422. id=sl_svn7768_1801
  11423. ><td class="source"> destOffset += screenW;<br></td></tr
  11424. ><tr
  11425. id=sl_svn7768_1802
  11426. ><td class="source"> srcYOffset += dy;<br></td></tr
  11427. ><tr
  11428. id=sl_svn7768_1803
  11429. ><td class="source"> }<br></td></tr
  11430. ><tr
  11431. id=sl_svn7768_1804
  11432. ><td class="source"> break;<br></td></tr
  11433. ><tr
  11434. id=sl_svn7768_1805
  11435. ><td class="source"><br></td></tr
  11436. ><tr
  11437. id=sl_svn7768_1806
  11438. ><td class="source"> case SCREEN:<br></td></tr
  11439. ><tr
  11440. id=sl_svn7768_1807
  11441. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11442. ><tr
  11443. id=sl_svn7768_1808
  11444. ><td class="source"> filter_new_scanline();<br></td></tr
  11445. ><tr
  11446. id=sl_svn7768_1809
  11447. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11448. ><tr
  11449. id=sl_svn7768_1810
  11450. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11451. ><tr
  11452. id=sl_svn7768_1811
  11453. ><td class="source"> blend_screen(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11454. ><tr
  11455. id=sl_svn7768_1812
  11456. ><td class="source"> sX += dx;<br></td></tr
  11457. ><tr
  11458. id=sl_svn7768_1813
  11459. ><td class="source"> }<br></td></tr
  11460. ><tr
  11461. id=sl_svn7768_1814
  11462. ><td class="source"> destOffset += screenW;<br></td></tr
  11463. ><tr
  11464. id=sl_svn7768_1815
  11465. ><td class="source"> srcYOffset += dy;<br></td></tr
  11466. ><tr
  11467. id=sl_svn7768_1816
  11468. ><td class="source"> }<br></td></tr
  11469. ><tr
  11470. id=sl_svn7768_1817
  11471. ><td class="source"> break;<br></td></tr
  11472. ><tr
  11473. id=sl_svn7768_1818
  11474. ><td class="source"><br></td></tr
  11475. ><tr
  11476. id=sl_svn7768_1819
  11477. ><td class="source"> case OVERLAY:<br></td></tr
  11478. ><tr
  11479. id=sl_svn7768_1820
  11480. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11481. ><tr
  11482. id=sl_svn7768_1821
  11483. ><td class="source"> filter_new_scanline();<br></td></tr
  11484. ><tr
  11485. id=sl_svn7768_1822
  11486. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11487. ><tr
  11488. id=sl_svn7768_1823
  11489. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11490. ><tr
  11491. id=sl_svn7768_1824
  11492. ><td class="source"> blend_overlay(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11493. ><tr
  11494. id=sl_svn7768_1825
  11495. ><td class="source"> sX += dx;<br></td></tr
  11496. ><tr
  11497. id=sl_svn7768_1826
  11498. ><td class="source"> }<br></td></tr
  11499. ><tr
  11500. id=sl_svn7768_1827
  11501. ><td class="source"> destOffset += screenW;<br></td></tr
  11502. ><tr
  11503. id=sl_svn7768_1828
  11504. ><td class="source"> srcYOffset += dy;<br></td></tr
  11505. ><tr
  11506. id=sl_svn7768_1829
  11507. ><td class="source"> }<br></td></tr
  11508. ><tr
  11509. id=sl_svn7768_1830
  11510. ><td class="source"> break;<br></td></tr
  11511. ><tr
  11512. id=sl_svn7768_1831
  11513. ><td class="source"><br></td></tr
  11514. ><tr
  11515. id=sl_svn7768_1832
  11516. ><td class="source"> case HARD_LIGHT:<br></td></tr
  11517. ><tr
  11518. id=sl_svn7768_1833
  11519. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11520. ><tr
  11521. id=sl_svn7768_1834
  11522. ><td class="source"> filter_new_scanline();<br></td></tr
  11523. ><tr
  11524. id=sl_svn7768_1835
  11525. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11526. ><tr
  11527. id=sl_svn7768_1836
  11528. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11529. ><tr
  11530. id=sl_svn7768_1837
  11531. ><td class="source"> blend_hard_light(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11532. ><tr
  11533. id=sl_svn7768_1838
  11534. ><td class="source"> sX += dx;<br></td></tr
  11535. ><tr
  11536. id=sl_svn7768_1839
  11537. ><td class="source"> }<br></td></tr
  11538. ><tr
  11539. id=sl_svn7768_1840
  11540. ><td class="source"> destOffset += screenW;<br></td></tr
  11541. ><tr
  11542. id=sl_svn7768_1841
  11543. ><td class="source"> srcYOffset += dy;<br></td></tr
  11544. ><tr
  11545. id=sl_svn7768_1842
  11546. ><td class="source"> }<br></td></tr
  11547. ><tr
  11548. id=sl_svn7768_1843
  11549. ><td class="source"> break;<br></td></tr
  11550. ><tr
  11551. id=sl_svn7768_1844
  11552. ><td class="source"><br></td></tr
  11553. ><tr
  11554. id=sl_svn7768_1845
  11555. ><td class="source"> case SOFT_LIGHT:<br></td></tr
  11556. ><tr
  11557. id=sl_svn7768_1846
  11558. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11559. ><tr
  11560. id=sl_svn7768_1847
  11561. ><td class="source"> filter_new_scanline();<br></td></tr
  11562. ><tr
  11563. id=sl_svn7768_1848
  11564. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11565. ><tr
  11566. id=sl_svn7768_1849
  11567. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11568. ><tr
  11569. id=sl_svn7768_1850
  11570. ><td class="source"> blend_soft_light(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11571. ><tr
  11572. id=sl_svn7768_1851
  11573. ><td class="source"> sX += dx;<br></td></tr
  11574. ><tr
  11575. id=sl_svn7768_1852
  11576. ><td class="source"> }<br></td></tr
  11577. ><tr
  11578. id=sl_svn7768_1853
  11579. ><td class="source"> destOffset += screenW;<br></td></tr
  11580. ><tr
  11581. id=sl_svn7768_1854
  11582. ><td class="source"> srcYOffset += dy;<br></td></tr
  11583. ><tr
  11584. id=sl_svn7768_1855
  11585. ><td class="source"> }<br></td></tr
  11586. ><tr
  11587. id=sl_svn7768_1856
  11588. ><td class="source"> break;<br></td></tr
  11589. ><tr
  11590. id=sl_svn7768_1857
  11591. ><td class="source"><br></td></tr
  11592. ><tr
  11593. id=sl_svn7768_1858
  11594. ><td class="source"> // davbol - proposed 2007-01-09<br></td></tr
  11595. ><tr
  11596. id=sl_svn7768_1859
  11597. ><td class="source"> case DODGE:<br></td></tr
  11598. ><tr
  11599. id=sl_svn7768_1860
  11600. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11601. ><tr
  11602. id=sl_svn7768_1861
  11603. ><td class="source"> filter_new_scanline();<br></td></tr
  11604. ><tr
  11605. id=sl_svn7768_1862
  11606. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11607. ><tr
  11608. id=sl_svn7768_1863
  11609. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11610. ><tr
  11611. id=sl_svn7768_1864
  11612. ><td class="source"> blend_dodge(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11613. ><tr
  11614. id=sl_svn7768_1865
  11615. ><td class="source"> sX += dx;<br></td></tr
  11616. ><tr
  11617. id=sl_svn7768_1866
  11618. ><td class="source"> }<br></td></tr
  11619. ><tr
  11620. id=sl_svn7768_1867
  11621. ><td class="source"> destOffset += screenW;<br></td></tr
  11622. ><tr
  11623. id=sl_svn7768_1868
  11624. ><td class="source"> srcYOffset += dy;<br></td></tr
  11625. ><tr
  11626. id=sl_svn7768_1869
  11627. ><td class="source"> }<br></td></tr
  11628. ><tr
  11629. id=sl_svn7768_1870
  11630. ><td class="source"> break;<br></td></tr
  11631. ><tr
  11632. id=sl_svn7768_1871
  11633. ><td class="source"><br></td></tr
  11634. ><tr
  11635. id=sl_svn7768_1872
  11636. ><td class="source"> case BURN:<br></td></tr
  11637. ><tr
  11638. id=sl_svn7768_1873
  11639. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11640. ><tr
  11641. id=sl_svn7768_1874
  11642. ><td class="source"> filter_new_scanline();<br></td></tr
  11643. ><tr
  11644. id=sl_svn7768_1875
  11645. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11646. ><tr
  11647. id=sl_svn7768_1876
  11648. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11649. ><tr
  11650. id=sl_svn7768_1877
  11651. ><td class="source"> blend_burn(destPixels[destOffset + x], filter_bilinear());<br></td></tr
  11652. ><tr
  11653. id=sl_svn7768_1878
  11654. ><td class="source"> sX += dx;<br></td></tr
  11655. ><tr
  11656. id=sl_svn7768_1879
  11657. ><td class="source"> }<br></td></tr
  11658. ><tr
  11659. id=sl_svn7768_1880
  11660. ><td class="source"> destOffset += screenW;<br></td></tr
  11661. ><tr
  11662. id=sl_svn7768_1881
  11663. ><td class="source"> srcYOffset += dy;<br></td></tr
  11664. ><tr
  11665. id=sl_svn7768_1882
  11666. ><td class="source"> }<br></td></tr
  11667. ><tr
  11668. id=sl_svn7768_1883
  11669. ><td class="source"> break;<br></td></tr
  11670. ><tr
  11671. id=sl_svn7768_1884
  11672. ><td class="source"><br></td></tr
  11673. ><tr
  11674. id=sl_svn7768_1885
  11675. ><td class="source"> }<br></td></tr
  11676. ><tr
  11677. id=sl_svn7768_1886
  11678. ><td class="source"><br></td></tr
  11679. ><tr
  11680. id=sl_svn7768_1887
  11681. ><td class="source"> } else {<br></td></tr
  11682. ><tr
  11683. id=sl_svn7768_1888
  11684. ><td class="source"> // nearest neighbour scaling (++fast!)<br></td></tr
  11685. ><tr
  11686. id=sl_svn7768_1889
  11687. ><td class="source"> switch (mode) {<br></td></tr
  11688. ><tr
  11689. id=sl_svn7768_1890
  11690. ><td class="source"><br></td></tr
  11691. ><tr
  11692. id=sl_svn7768_1891
  11693. ><td class="source"> case BLEND:<br></td></tr
  11694. ><tr
  11695. id=sl_svn7768_1892
  11696. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11697. ><tr
  11698. id=sl_svn7768_1893
  11699. ><td class="source"> sX = srcXOffset;<br></td></tr
  11700. ><tr
  11701. id=sl_svn7768_1894
  11702. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11703. ><tr
  11704. id=sl_svn7768_1895
  11705. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11706. ><tr
  11707. id=sl_svn7768_1896
  11708. ><td class="source"> // davbol - renamed old blend_multiply to blend_blend<br></td></tr
  11709. ><tr
  11710. id=sl_svn7768_1897
  11711. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11712. ><tr
  11713. id=sl_svn7768_1898
  11714. ><td class="source"> blend_blend(destPixels[destOffset + x],<br></td></tr
  11715. ><tr
  11716. id=sl_svn7768_1899
  11717. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11718. ><tr
  11719. id=sl_svn7768_1900
  11720. ><td class="source"> sX += dx;<br></td></tr
  11721. ><tr
  11722. id=sl_svn7768_1901
  11723. ><td class="source"> }<br></td></tr
  11724. ><tr
  11725. id=sl_svn7768_1902
  11726. ><td class="source"> destOffset += screenW;<br></td></tr
  11727. ><tr
  11728. id=sl_svn7768_1903
  11729. ><td class="source"> srcYOffset += dy;<br></td></tr
  11730. ><tr
  11731. id=sl_svn7768_1904
  11732. ><td class="source"> }<br></td></tr
  11733. ><tr
  11734. id=sl_svn7768_1905
  11735. ><td class="source"> break;<br></td></tr
  11736. ><tr
  11737. id=sl_svn7768_1906
  11738. ><td class="source"><br></td></tr
  11739. ><tr
  11740. id=sl_svn7768_1907
  11741. ><td class="source"> case ADD:<br></td></tr
  11742. ><tr
  11743. id=sl_svn7768_1908
  11744. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11745. ><tr
  11746. id=sl_svn7768_1909
  11747. ><td class="source"> sX = srcXOffset;<br></td></tr
  11748. ><tr
  11749. id=sl_svn7768_1910
  11750. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11751. ><tr
  11752. id=sl_svn7768_1911
  11753. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11754. ><tr
  11755. id=sl_svn7768_1912
  11756. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11757. ><tr
  11758. id=sl_svn7768_1913
  11759. ><td class="source"> blend_add_pin(destPixels[destOffset + x],<br></td></tr
  11760. ><tr
  11761. id=sl_svn7768_1914
  11762. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11763. ><tr
  11764. id=sl_svn7768_1915
  11765. ><td class="source"> sX += dx;<br></td></tr
  11766. ><tr
  11767. id=sl_svn7768_1916
  11768. ><td class="source"> }<br></td></tr
  11769. ><tr
  11770. id=sl_svn7768_1917
  11771. ><td class="source"> destOffset += screenW;<br></td></tr
  11772. ><tr
  11773. id=sl_svn7768_1918
  11774. ><td class="source"> srcYOffset += dy;<br></td></tr
  11775. ><tr
  11776. id=sl_svn7768_1919
  11777. ><td class="source"> }<br></td></tr
  11778. ><tr
  11779. id=sl_svn7768_1920
  11780. ><td class="source"> break;<br></td></tr
  11781. ><tr
  11782. id=sl_svn7768_1921
  11783. ><td class="source"><br></td></tr
  11784. ><tr
  11785. id=sl_svn7768_1922
  11786. ><td class="source"> case SUBTRACT:<br></td></tr
  11787. ><tr
  11788. id=sl_svn7768_1923
  11789. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11790. ><tr
  11791. id=sl_svn7768_1924
  11792. ><td class="source"> sX = srcXOffset;<br></td></tr
  11793. ><tr
  11794. id=sl_svn7768_1925
  11795. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11796. ><tr
  11797. id=sl_svn7768_1926
  11798. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11799. ><tr
  11800. id=sl_svn7768_1927
  11801. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11802. ><tr
  11803. id=sl_svn7768_1928
  11804. ><td class="source"> blend_sub_pin(destPixels[destOffset + x],<br></td></tr
  11805. ><tr
  11806. id=sl_svn7768_1929
  11807. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11808. ><tr
  11809. id=sl_svn7768_1930
  11810. ><td class="source"> sX += dx;<br></td></tr
  11811. ><tr
  11812. id=sl_svn7768_1931
  11813. ><td class="source"> }<br></td></tr
  11814. ><tr
  11815. id=sl_svn7768_1932
  11816. ><td class="source"> destOffset += screenW;<br></td></tr
  11817. ><tr
  11818. id=sl_svn7768_1933
  11819. ><td class="source"> srcYOffset += dy;<br></td></tr
  11820. ><tr
  11821. id=sl_svn7768_1934
  11822. ><td class="source"> }<br></td></tr
  11823. ><tr
  11824. id=sl_svn7768_1935
  11825. ><td class="source"> break;<br></td></tr
  11826. ><tr
  11827. id=sl_svn7768_1936
  11828. ><td class="source"><br></td></tr
  11829. ><tr
  11830. id=sl_svn7768_1937
  11831. ><td class="source"> case LIGHTEST:<br></td></tr
  11832. ><tr
  11833. id=sl_svn7768_1938
  11834. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11835. ><tr
  11836. id=sl_svn7768_1939
  11837. ><td class="source"> sX = srcXOffset;<br></td></tr
  11838. ><tr
  11839. id=sl_svn7768_1940
  11840. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11841. ><tr
  11842. id=sl_svn7768_1941
  11843. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11844. ><tr
  11845. id=sl_svn7768_1942
  11846. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11847. ><tr
  11848. id=sl_svn7768_1943
  11849. ><td class="source"> blend_lightest(destPixels[destOffset + x],<br></td></tr
  11850. ><tr
  11851. id=sl_svn7768_1944
  11852. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11853. ><tr
  11854. id=sl_svn7768_1945
  11855. ><td class="source"> sX += dx;<br></td></tr
  11856. ><tr
  11857. id=sl_svn7768_1946
  11858. ><td class="source"> }<br></td></tr
  11859. ><tr
  11860. id=sl_svn7768_1947
  11861. ><td class="source"> destOffset += screenW;<br></td></tr
  11862. ><tr
  11863. id=sl_svn7768_1948
  11864. ><td class="source"> srcYOffset += dy;<br></td></tr
  11865. ><tr
  11866. id=sl_svn7768_1949
  11867. ><td class="source"> }<br></td></tr
  11868. ><tr
  11869. id=sl_svn7768_1950
  11870. ><td class="source"> break;<br></td></tr
  11871. ><tr
  11872. id=sl_svn7768_1951
  11873. ><td class="source"><br></td></tr
  11874. ><tr
  11875. id=sl_svn7768_1952
  11876. ><td class="source"> case DARKEST:<br></td></tr
  11877. ><tr
  11878. id=sl_svn7768_1953
  11879. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11880. ><tr
  11881. id=sl_svn7768_1954
  11882. ><td class="source"> sX = srcXOffset;<br></td></tr
  11883. ><tr
  11884. id=sl_svn7768_1955
  11885. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11886. ><tr
  11887. id=sl_svn7768_1956
  11888. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11889. ><tr
  11890. id=sl_svn7768_1957
  11891. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11892. ><tr
  11893. id=sl_svn7768_1958
  11894. ><td class="source"> blend_darkest(destPixels[destOffset + x],<br></td></tr
  11895. ><tr
  11896. id=sl_svn7768_1959
  11897. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11898. ><tr
  11899. id=sl_svn7768_1960
  11900. ><td class="source"> sX += dx;<br></td></tr
  11901. ><tr
  11902. id=sl_svn7768_1961
  11903. ><td class="source"> }<br></td></tr
  11904. ><tr
  11905. id=sl_svn7768_1962
  11906. ><td class="source"> destOffset += screenW;<br></td></tr
  11907. ><tr
  11908. id=sl_svn7768_1963
  11909. ><td class="source"> srcYOffset += dy;<br></td></tr
  11910. ><tr
  11911. id=sl_svn7768_1964
  11912. ><td class="source"> }<br></td></tr
  11913. ><tr
  11914. id=sl_svn7768_1965
  11915. ><td class="source"> break;<br></td></tr
  11916. ><tr
  11917. id=sl_svn7768_1966
  11918. ><td class="source"><br></td></tr
  11919. ><tr
  11920. id=sl_svn7768_1967
  11921. ><td class="source"> case REPLACE:<br></td></tr
  11922. ><tr
  11923. id=sl_svn7768_1968
  11924. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11925. ><tr
  11926. id=sl_svn7768_1969
  11927. ><td class="source"> sX = srcXOffset;<br></td></tr
  11928. ><tr
  11929. id=sl_svn7768_1970
  11930. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11931. ><tr
  11932. id=sl_svn7768_1971
  11933. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11934. ><tr
  11935. id=sl_svn7768_1972
  11936. ><td class="source"> destPixels[destOffset + x] = srcBuffer[sY + (sX &gt;&gt; PRECISIONB)];<br></td></tr
  11937. ><tr
  11938. id=sl_svn7768_1973
  11939. ><td class="source"> sX += dx;<br></td></tr
  11940. ><tr
  11941. id=sl_svn7768_1974
  11942. ><td class="source"> }<br></td></tr
  11943. ><tr
  11944. id=sl_svn7768_1975
  11945. ><td class="source"> destOffset += screenW;<br></td></tr
  11946. ><tr
  11947. id=sl_svn7768_1976
  11948. ><td class="source"> srcYOffset += dy;<br></td></tr
  11949. ><tr
  11950. id=sl_svn7768_1977
  11951. ><td class="source"> }<br></td></tr
  11952. ><tr
  11953. id=sl_svn7768_1978
  11954. ><td class="source"> break;<br></td></tr
  11955. ><tr
  11956. id=sl_svn7768_1979
  11957. ><td class="source"><br></td></tr
  11958. ><tr
  11959. id=sl_svn7768_1980
  11960. ><td class="source"> case DIFFERENCE:<br></td></tr
  11961. ><tr
  11962. id=sl_svn7768_1981
  11963. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  11964. ><tr
  11965. id=sl_svn7768_1982
  11966. ><td class="source"> sX = srcXOffset;<br></td></tr
  11967. ><tr
  11968. id=sl_svn7768_1983
  11969. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  11970. ><tr
  11971. id=sl_svn7768_1984
  11972. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  11973. ><tr
  11974. id=sl_svn7768_1985
  11975. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  11976. ><tr
  11977. id=sl_svn7768_1986
  11978. ><td class="source"> blend_difference(destPixels[destOffset + x],<br></td></tr
  11979. ><tr
  11980. id=sl_svn7768_1987
  11981. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  11982. ><tr
  11983. id=sl_svn7768_1988
  11984. ><td class="source"> sX += dx;<br></td></tr
  11985. ><tr
  11986. id=sl_svn7768_1989
  11987. ><td class="source"> }<br></td></tr
  11988. ><tr
  11989. id=sl_svn7768_1990
  11990. ><td class="source"> destOffset += screenW;<br></td></tr
  11991. ><tr
  11992. id=sl_svn7768_1991
  11993. ><td class="source"> srcYOffset += dy;<br></td></tr
  11994. ><tr
  11995. id=sl_svn7768_1992
  11996. ><td class="source"> }<br></td></tr
  11997. ><tr
  11998. id=sl_svn7768_1993
  11999. ><td class="source"> break;<br></td></tr
  12000. ><tr
  12001. id=sl_svn7768_1994
  12002. ><td class="source"><br></td></tr
  12003. ><tr
  12004. id=sl_svn7768_1995
  12005. ><td class="source"> case EXCLUSION:<br></td></tr
  12006. ><tr
  12007. id=sl_svn7768_1996
  12008. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12009. ><tr
  12010. id=sl_svn7768_1997
  12011. ><td class="source"> sX = srcXOffset;<br></td></tr
  12012. ><tr
  12013. id=sl_svn7768_1998
  12014. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12015. ><tr
  12016. id=sl_svn7768_1999
  12017. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12018. ><tr
  12019. id=sl_svn7768_2000
  12020. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12021. ><tr
  12022. id=sl_svn7768_2001
  12023. ><td class="source"> blend_exclusion(destPixels[destOffset + x],<br></td></tr
  12024. ><tr
  12025. id=sl_svn7768_2002
  12026. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12027. ><tr
  12028. id=sl_svn7768_2003
  12029. ><td class="source"> sX += dx;<br></td></tr
  12030. ><tr
  12031. id=sl_svn7768_2004
  12032. ><td class="source"> }<br></td></tr
  12033. ><tr
  12034. id=sl_svn7768_2005
  12035. ><td class="source"> destOffset += screenW;<br></td></tr
  12036. ><tr
  12037. id=sl_svn7768_2006
  12038. ><td class="source"> srcYOffset += dy;<br></td></tr
  12039. ><tr
  12040. id=sl_svn7768_2007
  12041. ><td class="source"> }<br></td></tr
  12042. ><tr
  12043. id=sl_svn7768_2008
  12044. ><td class="source"> break;<br></td></tr
  12045. ><tr
  12046. id=sl_svn7768_2009
  12047. ><td class="source"><br></td></tr
  12048. ><tr
  12049. id=sl_svn7768_2010
  12050. ><td class="source"> case MULTIPLY:<br></td></tr
  12051. ><tr
  12052. id=sl_svn7768_2011
  12053. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12054. ><tr
  12055. id=sl_svn7768_2012
  12056. ><td class="source"> sX = srcXOffset;<br></td></tr
  12057. ><tr
  12058. id=sl_svn7768_2013
  12059. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12060. ><tr
  12061. id=sl_svn7768_2014
  12062. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12063. ><tr
  12064. id=sl_svn7768_2015
  12065. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12066. ><tr
  12067. id=sl_svn7768_2016
  12068. ><td class="source"> blend_multiply(destPixels[destOffset + x],<br></td></tr
  12069. ><tr
  12070. id=sl_svn7768_2017
  12071. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12072. ><tr
  12073. id=sl_svn7768_2018
  12074. ><td class="source"> sX += dx;<br></td></tr
  12075. ><tr
  12076. id=sl_svn7768_2019
  12077. ><td class="source"> }<br></td></tr
  12078. ><tr
  12079. id=sl_svn7768_2020
  12080. ><td class="source"> destOffset += screenW;<br></td></tr
  12081. ><tr
  12082. id=sl_svn7768_2021
  12083. ><td class="source"> srcYOffset += dy;<br></td></tr
  12084. ><tr
  12085. id=sl_svn7768_2022
  12086. ><td class="source"> }<br></td></tr
  12087. ><tr
  12088. id=sl_svn7768_2023
  12089. ><td class="source"> break;<br></td></tr
  12090. ><tr
  12091. id=sl_svn7768_2024
  12092. ><td class="source"><br></td></tr
  12093. ><tr
  12094. id=sl_svn7768_2025
  12095. ><td class="source"> case SCREEN:<br></td></tr
  12096. ><tr
  12097. id=sl_svn7768_2026
  12098. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12099. ><tr
  12100. id=sl_svn7768_2027
  12101. ><td class="source"> sX = srcXOffset;<br></td></tr
  12102. ><tr
  12103. id=sl_svn7768_2028
  12104. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12105. ><tr
  12106. id=sl_svn7768_2029
  12107. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12108. ><tr
  12109. id=sl_svn7768_2030
  12110. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12111. ><tr
  12112. id=sl_svn7768_2031
  12113. ><td class="source"> blend_screen(destPixels[destOffset + x],<br></td></tr
  12114. ><tr
  12115. id=sl_svn7768_2032
  12116. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12117. ><tr
  12118. id=sl_svn7768_2033
  12119. ><td class="source"> sX += dx;<br></td></tr
  12120. ><tr
  12121. id=sl_svn7768_2034
  12122. ><td class="source"> }<br></td></tr
  12123. ><tr
  12124. id=sl_svn7768_2035
  12125. ><td class="source"> destOffset += screenW;<br></td></tr
  12126. ><tr
  12127. id=sl_svn7768_2036
  12128. ><td class="source"> srcYOffset += dy;<br></td></tr
  12129. ><tr
  12130. id=sl_svn7768_2037
  12131. ><td class="source"> }<br></td></tr
  12132. ><tr
  12133. id=sl_svn7768_2038
  12134. ><td class="source"> break;<br></td></tr
  12135. ><tr
  12136. id=sl_svn7768_2039
  12137. ><td class="source"><br></td></tr
  12138. ><tr
  12139. id=sl_svn7768_2040
  12140. ><td class="source"> case OVERLAY:<br></td></tr
  12141. ><tr
  12142. id=sl_svn7768_2041
  12143. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12144. ><tr
  12145. id=sl_svn7768_2042
  12146. ><td class="source"> sX = srcXOffset;<br></td></tr
  12147. ><tr
  12148. id=sl_svn7768_2043
  12149. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12150. ><tr
  12151. id=sl_svn7768_2044
  12152. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12153. ><tr
  12154. id=sl_svn7768_2045
  12155. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12156. ><tr
  12157. id=sl_svn7768_2046
  12158. ><td class="source"> blend_overlay(destPixels[destOffset + x],<br></td></tr
  12159. ><tr
  12160. id=sl_svn7768_2047
  12161. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12162. ><tr
  12163. id=sl_svn7768_2048
  12164. ><td class="source"> sX += dx;<br></td></tr
  12165. ><tr
  12166. id=sl_svn7768_2049
  12167. ><td class="source"> }<br></td></tr
  12168. ><tr
  12169. id=sl_svn7768_2050
  12170. ><td class="source"> destOffset += screenW;<br></td></tr
  12171. ><tr
  12172. id=sl_svn7768_2051
  12173. ><td class="source"> srcYOffset += dy;<br></td></tr
  12174. ><tr
  12175. id=sl_svn7768_2052
  12176. ><td class="source"> }<br></td></tr
  12177. ><tr
  12178. id=sl_svn7768_2053
  12179. ><td class="source"> break;<br></td></tr
  12180. ><tr
  12181. id=sl_svn7768_2054
  12182. ><td class="source"><br></td></tr
  12183. ><tr
  12184. id=sl_svn7768_2055
  12185. ><td class="source"> case HARD_LIGHT:<br></td></tr
  12186. ><tr
  12187. id=sl_svn7768_2056
  12188. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12189. ><tr
  12190. id=sl_svn7768_2057
  12191. ><td class="source"> sX = srcXOffset;<br></td></tr
  12192. ><tr
  12193. id=sl_svn7768_2058
  12194. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12195. ><tr
  12196. id=sl_svn7768_2059
  12197. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12198. ><tr
  12199. id=sl_svn7768_2060
  12200. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12201. ><tr
  12202. id=sl_svn7768_2061
  12203. ><td class="source"> blend_hard_light(destPixels[destOffset + x],<br></td></tr
  12204. ><tr
  12205. id=sl_svn7768_2062
  12206. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12207. ><tr
  12208. id=sl_svn7768_2063
  12209. ><td class="source"> sX += dx;<br></td></tr
  12210. ><tr
  12211. id=sl_svn7768_2064
  12212. ><td class="source"> }<br></td></tr
  12213. ><tr
  12214. id=sl_svn7768_2065
  12215. ><td class="source"> destOffset += screenW;<br></td></tr
  12216. ><tr
  12217. id=sl_svn7768_2066
  12218. ><td class="source"> srcYOffset += dy;<br></td></tr
  12219. ><tr
  12220. id=sl_svn7768_2067
  12221. ><td class="source"> }<br></td></tr
  12222. ><tr
  12223. id=sl_svn7768_2068
  12224. ><td class="source"> break;<br></td></tr
  12225. ><tr
  12226. id=sl_svn7768_2069
  12227. ><td class="source"><br></td></tr
  12228. ><tr
  12229. id=sl_svn7768_2070
  12230. ><td class="source"> case SOFT_LIGHT:<br></td></tr
  12231. ><tr
  12232. id=sl_svn7768_2071
  12233. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12234. ><tr
  12235. id=sl_svn7768_2072
  12236. ><td class="source"> sX = srcXOffset;<br></td></tr
  12237. ><tr
  12238. id=sl_svn7768_2073
  12239. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12240. ><tr
  12241. id=sl_svn7768_2074
  12242. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12243. ><tr
  12244. id=sl_svn7768_2075
  12245. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12246. ><tr
  12247. id=sl_svn7768_2076
  12248. ><td class="source"> blend_soft_light(destPixels[destOffset + x],<br></td></tr
  12249. ><tr
  12250. id=sl_svn7768_2077
  12251. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12252. ><tr
  12253. id=sl_svn7768_2078
  12254. ><td class="source"> sX += dx;<br></td></tr
  12255. ><tr
  12256. id=sl_svn7768_2079
  12257. ><td class="source"> }<br></td></tr
  12258. ><tr
  12259. id=sl_svn7768_2080
  12260. ><td class="source"> destOffset += screenW;<br></td></tr
  12261. ><tr
  12262. id=sl_svn7768_2081
  12263. ><td class="source"> srcYOffset += dy;<br></td></tr
  12264. ><tr
  12265. id=sl_svn7768_2082
  12266. ><td class="source"> }<br></td></tr
  12267. ><tr
  12268. id=sl_svn7768_2083
  12269. ><td class="source"> break;<br></td></tr
  12270. ><tr
  12271. id=sl_svn7768_2084
  12272. ><td class="source"><br></td></tr
  12273. ><tr
  12274. id=sl_svn7768_2085
  12275. ><td class="source"> // davbol - proposed 2007-01-09<br></td></tr
  12276. ><tr
  12277. id=sl_svn7768_2086
  12278. ><td class="source"> case DODGE:<br></td></tr
  12279. ><tr
  12280. id=sl_svn7768_2087
  12281. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12282. ><tr
  12283. id=sl_svn7768_2088
  12284. ><td class="source"> sX = srcXOffset;<br></td></tr
  12285. ><tr
  12286. id=sl_svn7768_2089
  12287. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12288. ><tr
  12289. id=sl_svn7768_2090
  12290. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12291. ><tr
  12292. id=sl_svn7768_2091
  12293. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12294. ><tr
  12295. id=sl_svn7768_2092
  12296. ><td class="source"> blend_dodge(destPixels[destOffset + x],<br></td></tr
  12297. ><tr
  12298. id=sl_svn7768_2093
  12299. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12300. ><tr
  12301. id=sl_svn7768_2094
  12302. ><td class="source"> sX += dx;<br></td></tr
  12303. ><tr
  12304. id=sl_svn7768_2095
  12305. ><td class="source"> }<br></td></tr
  12306. ><tr
  12307. id=sl_svn7768_2096
  12308. ><td class="source"> destOffset += screenW;<br></td></tr
  12309. ><tr
  12310. id=sl_svn7768_2097
  12311. ><td class="source"> srcYOffset += dy;<br></td></tr
  12312. ><tr
  12313. id=sl_svn7768_2098
  12314. ><td class="source"> }<br></td></tr
  12315. ><tr
  12316. id=sl_svn7768_2099
  12317. ><td class="source"> break;<br></td></tr
  12318. ><tr
  12319. id=sl_svn7768_2100
  12320. ><td class="source"><br></td></tr
  12321. ><tr
  12322. id=sl_svn7768_2101
  12323. ><td class="source"> case BURN:<br></td></tr
  12324. ><tr
  12325. id=sl_svn7768_2102
  12326. ><td class="source"> for (int y = 0; y &lt; destH; y++) {<br></td></tr
  12327. ><tr
  12328. id=sl_svn7768_2103
  12329. ><td class="source"> sX = srcXOffset;<br></td></tr
  12330. ><tr
  12331. id=sl_svn7768_2104
  12332. ><td class="source"> sY = (srcYOffset &gt;&gt; PRECISIONB) * img.width;<br></td></tr
  12333. ><tr
  12334. id=sl_svn7768_2105
  12335. ><td class="source"> for (int x = 0; x &lt; destW; x++) {<br></td></tr
  12336. ><tr
  12337. id=sl_svn7768_2106
  12338. ><td class="source"> destPixels[destOffset + x] =<br></td></tr
  12339. ><tr
  12340. id=sl_svn7768_2107
  12341. ><td class="source"> blend_burn(destPixels[destOffset + x],<br></td></tr
  12342. ><tr
  12343. id=sl_svn7768_2108
  12344. ><td class="source"> srcBuffer[sY + (sX &gt;&gt; PRECISIONB)]);<br></td></tr
  12345. ><tr
  12346. id=sl_svn7768_2109
  12347. ><td class="source"> sX += dx;<br></td></tr
  12348. ><tr
  12349. id=sl_svn7768_2110
  12350. ><td class="source"> }<br></td></tr
  12351. ><tr
  12352. id=sl_svn7768_2111
  12353. ><td class="source"> destOffset += screenW;<br></td></tr
  12354. ><tr
  12355. id=sl_svn7768_2112
  12356. ><td class="source"> srcYOffset += dy;<br></td></tr
  12357. ><tr
  12358. id=sl_svn7768_2113
  12359. ><td class="source"> }<br></td></tr
  12360. ><tr
  12361. id=sl_svn7768_2114
  12362. ><td class="source"> break;<br></td></tr
  12363. ><tr
  12364. id=sl_svn7768_2115
  12365. ><td class="source"><br></td></tr
  12366. ><tr
  12367. id=sl_svn7768_2116
  12368. ><td class="source"> }<br></td></tr
  12369. ><tr
  12370. id=sl_svn7768_2117
  12371. ><td class="source"> }<br></td></tr
  12372. ><tr
  12373. id=sl_svn7768_2118
  12374. ><td class="source"> }<br></td></tr
  12375. ><tr
  12376. id=sl_svn7768_2119
  12377. ><td class="source"><br></td></tr
  12378. ><tr
  12379. id=sl_svn7768_2120
  12380. ><td class="source"><br></td></tr
  12381. ><tr
  12382. id=sl_svn7768_2121
  12383. ><td class="source"> private void filter_new_scanline() {<br></td></tr
  12384. ><tr
  12385. id=sl_svn7768_2122
  12386. ><td class="source"> sX = srcXOffset;<br></td></tr
  12387. ><tr
  12388. id=sl_svn7768_2123
  12389. ><td class="source"> fracV = srcYOffset &amp; PREC_MAXVAL;<br></td></tr
  12390. ><tr
  12391. id=sl_svn7768_2124
  12392. ><td class="source"> ifV = PREC_MAXVAL - fracV;<br></td></tr
  12393. ><tr
  12394. id=sl_svn7768_2125
  12395. ><td class="source"> v1 = (srcYOffset &gt;&gt; PRECISIONB) * iw;<br></td></tr
  12396. ><tr
  12397. id=sl_svn7768_2126
  12398. ><td class="source"> v2 = low((srcYOffset &gt;&gt; PRECISIONB) + 1, ih1) * iw;<br></td></tr
  12399. ><tr
  12400. id=sl_svn7768_2127
  12401. ><td class="source"> }<br></td></tr
  12402. ><tr
  12403. id=sl_svn7768_2128
  12404. ><td class="source"><br></td></tr
  12405. ><tr
  12406. id=sl_svn7768_2129
  12407. ><td class="source"><br></td></tr
  12408. ><tr
  12409. id=sl_svn7768_2130
  12410. ><td class="source"> private int filter_bilinear() {<br></td></tr
  12411. ><tr
  12412. id=sl_svn7768_2131
  12413. ><td class="source"> fracU = sX &amp; PREC_MAXVAL;<br></td></tr
  12414. ><tr
  12415. id=sl_svn7768_2132
  12416. ><td class="source"> ifU = PREC_MAXVAL - fracU;<br></td></tr
  12417. ><tr
  12418. id=sl_svn7768_2133
  12419. ><td class="source"> ul = (ifU * ifV) &gt;&gt; PRECISIONB;<br></td></tr
  12420. ><tr
  12421. id=sl_svn7768_2134
  12422. ><td class="source"> ll = (ifU * fracV) &gt;&gt; PRECISIONB;<br></td></tr
  12423. ><tr
  12424. id=sl_svn7768_2135
  12425. ><td class="source"> ur = (fracU * ifV) &gt;&gt; PRECISIONB;<br></td></tr
  12426. ><tr
  12427. id=sl_svn7768_2136
  12428. ><td class="source"> lr = (fracU * fracV) &gt;&gt; PRECISIONB;<br></td></tr
  12429. ><tr
  12430. id=sl_svn7768_2137
  12431. ><td class="source"> u1 = (sX &gt;&gt; PRECISIONB);<br></td></tr
  12432. ><tr
  12433. id=sl_svn7768_2138
  12434. ><td class="source"> u2 = low(u1 + 1, iw1);<br></td></tr
  12435. ><tr
  12436. id=sl_svn7768_2139
  12437. ><td class="source"><br></td></tr
  12438. ><tr
  12439. id=sl_svn7768_2140
  12440. ><td class="source"> // get color values of the 4 neighbouring texels<br></td></tr
  12441. ><tr
  12442. id=sl_svn7768_2141
  12443. ><td class="source"> cUL = srcBuffer[v1 + u1];<br></td></tr
  12444. ><tr
  12445. id=sl_svn7768_2142
  12446. ><td class="source"> cUR = srcBuffer[v1 + u2];<br></td></tr
  12447. ><tr
  12448. id=sl_svn7768_2143
  12449. ><td class="source"> cLL = srcBuffer[v2 + u1];<br></td></tr
  12450. ><tr
  12451. id=sl_svn7768_2144
  12452. ><td class="source"> cLR = srcBuffer[v2 + u2];<br></td></tr
  12453. ><tr
  12454. id=sl_svn7768_2145
  12455. ><td class="source"><br></td></tr
  12456. ><tr
  12457. id=sl_svn7768_2146
  12458. ><td class="source"> r = ((ul*((cUL&amp;RED_MASK)&gt;&gt;16) + ll*((cLL&amp;RED_MASK)&gt;&gt;16) +<br></td></tr
  12459. ><tr
  12460. id=sl_svn7768_2147
  12461. ><td class="source"> ur*((cUR&amp;RED_MASK)&gt;&gt;16) + lr*((cLR&amp;RED_MASK)&gt;&gt;16))<br></td></tr
  12462. ><tr
  12463. id=sl_svn7768_2148
  12464. ><td class="source"> &lt;&lt; PREC_RED_SHIFT) &amp; RED_MASK;<br></td></tr
  12465. ><tr
  12466. id=sl_svn7768_2149
  12467. ><td class="source"><br></td></tr
  12468. ><tr
  12469. id=sl_svn7768_2150
  12470. ><td class="source"> g = ((ul*(cUL&amp;GREEN_MASK) + ll*(cLL&amp;GREEN_MASK) +<br></td></tr
  12471. ><tr
  12472. id=sl_svn7768_2151
  12473. ><td class="source"> ur*(cUR&amp;GREEN_MASK) + lr*(cLR&amp;GREEN_MASK))<br></td></tr
  12474. ><tr
  12475. id=sl_svn7768_2152
  12476. ><td class="source"> &gt;&gt;&gt; PRECISIONB) &amp; GREEN_MASK;<br></td></tr
  12477. ><tr
  12478. id=sl_svn7768_2153
  12479. ><td class="source"><br></td></tr
  12480. ><tr
  12481. id=sl_svn7768_2154
  12482. ><td class="source"> b = (ul*(cUL&amp;BLUE_MASK) + ll*(cLL&amp;BLUE_MASK) +<br></td></tr
  12483. ><tr
  12484. id=sl_svn7768_2155
  12485. ><td class="source"> ur*(cUR&amp;BLUE_MASK) + lr*(cLR&amp;BLUE_MASK))<br></td></tr
  12486. ><tr
  12487. id=sl_svn7768_2156
  12488. ><td class="source"> &gt;&gt;&gt; PRECISIONB;<br></td></tr
  12489. ><tr
  12490. id=sl_svn7768_2157
  12491. ><td class="source"><br></td></tr
  12492. ><tr
  12493. id=sl_svn7768_2158
  12494. ><td class="source"> a = ((ul*((cUL&amp;ALPHA_MASK)&gt;&gt;&gt;24) + ll*((cLL&amp;ALPHA_MASK)&gt;&gt;&gt;24) +<br></td></tr
  12495. ><tr
  12496. id=sl_svn7768_2159
  12497. ><td class="source"> ur*((cUR&amp;ALPHA_MASK)&gt;&gt;&gt;24) + lr*((cLR&amp;ALPHA_MASK)&gt;&gt;&gt;24))<br></td></tr
  12498. ><tr
  12499. id=sl_svn7768_2160
  12500. ><td class="source"> &lt;&lt; PREC_ALPHA_SHIFT) &amp; ALPHA_MASK;<br></td></tr
  12501. ><tr
  12502. id=sl_svn7768_2161
  12503. ><td class="source"><br></td></tr
  12504. ><tr
  12505. id=sl_svn7768_2162
  12506. ><td class="source"> return a | r | g | b;<br></td></tr
  12507. ><tr
  12508. id=sl_svn7768_2163
  12509. ><td class="source"> }<br></td></tr
  12510. ><tr
  12511. id=sl_svn7768_2164
  12512. ><td class="source"><br></td></tr
  12513. ><tr
  12514. id=sl_svn7768_2165
  12515. ><td class="source"><br></td></tr
  12516. ><tr
  12517. id=sl_svn7768_2166
  12518. ><td class="source"><br></td></tr
  12519. ><tr
  12520. id=sl_svn7768_2167
  12521. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  12522. ><tr
  12523. id=sl_svn7768_2168
  12524. ><td class="source"><br></td></tr
  12525. ><tr
  12526. id=sl_svn7768_2169
  12527. ><td class="source"> // internal blending methods<br></td></tr
  12528. ><tr
  12529. id=sl_svn7768_2170
  12530. ><td class="source"><br></td></tr
  12531. ><tr
  12532. id=sl_svn7768_2171
  12533. ><td class="source"><br></td></tr
  12534. ><tr
  12535. id=sl_svn7768_2172
  12536. ><td class="source"> private static int low(int a, int b) {<br></td></tr
  12537. ><tr
  12538. id=sl_svn7768_2173
  12539. ><td class="source"> return (a &lt; b) ? a : b;<br></td></tr
  12540. ><tr
  12541. id=sl_svn7768_2174
  12542. ><td class="source"> }<br></td></tr
  12543. ><tr
  12544. id=sl_svn7768_2175
  12545. ><td class="source"><br></td></tr
  12546. ><tr
  12547. id=sl_svn7768_2176
  12548. ><td class="source"><br></td></tr
  12549. ><tr
  12550. id=sl_svn7768_2177
  12551. ><td class="source"> private static int high(int a, int b) {<br></td></tr
  12552. ><tr
  12553. id=sl_svn7768_2178
  12554. ><td class="source"> return (a &gt; b) ? a : b;<br></td></tr
  12555. ><tr
  12556. id=sl_svn7768_2179
  12557. ><td class="source"> }<br></td></tr
  12558. ><tr
  12559. id=sl_svn7768_2180
  12560. ><td class="source"><br></td></tr
  12561. ><tr
  12562. id=sl_svn7768_2181
  12563. ><td class="source"> // davbol - added peg helper, equiv to constrain(n,0,255)<br></td></tr
  12564. ><tr
  12565. id=sl_svn7768_2182
  12566. ><td class="source"> private static int peg(int n) {<br></td></tr
  12567. ><tr
  12568. id=sl_svn7768_2183
  12569. ><td class="source"> return (n &lt; 0) ? 0 : ((n &gt; 255) ? 255 : n);<br></td></tr
  12570. ><tr
  12571. id=sl_svn7768_2184
  12572. ><td class="source"> }<br></td></tr
  12573. ><tr
  12574. id=sl_svn7768_2185
  12575. ><td class="source"><br></td></tr
  12576. ><tr
  12577. id=sl_svn7768_2186
  12578. ><td class="source"> private static int mix(int a, int b, int f) {<br></td></tr
  12579. ><tr
  12580. id=sl_svn7768_2187
  12581. ><td class="source"> return a + (((b - a) * f) &gt;&gt; 8);<br></td></tr
  12582. ><tr
  12583. id=sl_svn7768_2188
  12584. ><td class="source"> }<br></td></tr
  12585. ><tr
  12586. id=sl_svn7768_2189
  12587. ><td class="source"><br></td></tr
  12588. ><tr
  12589. id=sl_svn7768_2190
  12590. ><td class="source"><br></td></tr
  12591. ><tr
  12592. id=sl_svn7768_2191
  12593. ><td class="source"><br></td></tr
  12594. ><tr
  12595. id=sl_svn7768_2192
  12596. ><td class="source"> /////////////////////////////////////////////////////////////<br></td></tr
  12597. ><tr
  12598. id=sl_svn7768_2193
  12599. ><td class="source"><br></td></tr
  12600. ><tr
  12601. id=sl_svn7768_2194
  12602. ><td class="source"> // BLEND MODE IMPLEMENTIONS<br></td></tr
  12603. ><tr
  12604. id=sl_svn7768_2195
  12605. ><td class="source"><br></td></tr
  12606. ><tr
  12607. id=sl_svn7768_2196
  12608. ><td class="source"><br></td></tr
  12609. ><tr
  12610. id=sl_svn7768_2197
  12611. ><td class="source"> private static int blend_blend(int a, int b) {<br></td></tr
  12612. ><tr
  12613. id=sl_svn7768_2198
  12614. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12615. ><tr
  12616. id=sl_svn7768_2199
  12617. ><td class="source"><br></td></tr
  12618. ><tr
  12619. id=sl_svn7768_2200
  12620. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12621. ><tr
  12622. id=sl_svn7768_2201
  12623. ><td class="source"> mix(a &amp; RED_MASK, b &amp; RED_MASK, f) &amp; RED_MASK |<br></td></tr
  12624. ><tr
  12625. id=sl_svn7768_2202
  12626. ><td class="source"> mix(a &amp; GREEN_MASK, b &amp; GREEN_MASK, f) &amp; GREEN_MASK |<br></td></tr
  12627. ><tr
  12628. id=sl_svn7768_2203
  12629. ><td class="source"> mix(a &amp; BLUE_MASK, b &amp; BLUE_MASK, f));<br></td></tr
  12630. ><tr
  12631. id=sl_svn7768_2204
  12632. ><td class="source"> }<br></td></tr
  12633. ><tr
  12634. id=sl_svn7768_2205
  12635. ><td class="source"><br></td></tr
  12636. ><tr
  12637. id=sl_svn7768_2206
  12638. ><td class="source"><br></td></tr
  12639. ><tr
  12640. id=sl_svn7768_2207
  12641. ><td class="source"> /**<br></td></tr
  12642. ><tr
  12643. id=sl_svn7768_2208
  12644. ><td class="source"> * additive blend with clipping<br></td></tr
  12645. ><tr
  12646. id=sl_svn7768_2209
  12647. ><td class="source"> */<br></td></tr
  12648. ><tr
  12649. id=sl_svn7768_2210
  12650. ><td class="source"> private static int blend_add_pin(int a, int b) {<br></td></tr
  12651. ><tr
  12652. id=sl_svn7768_2211
  12653. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12654. ><tr
  12655. id=sl_svn7768_2212
  12656. ><td class="source"><br></td></tr
  12657. ><tr
  12658. id=sl_svn7768_2213
  12659. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12660. ><tr
  12661. id=sl_svn7768_2214
  12662. ><td class="source"> low(((a &amp; RED_MASK) +<br></td></tr
  12663. ><tr
  12664. id=sl_svn7768_2215
  12665. ><td class="source"> ((b &amp; RED_MASK) &gt;&gt; 8) * f), RED_MASK) &amp; RED_MASK |<br></td></tr
  12666. ><tr
  12667. id=sl_svn7768_2216
  12668. ><td class="source"> low(((a &amp; GREEN_MASK) +<br></td></tr
  12669. ><tr
  12670. id=sl_svn7768_2217
  12671. ><td class="source"> ((b &amp; GREEN_MASK) &gt;&gt; 8) * f), GREEN_MASK) &amp; GREEN_MASK |<br></td></tr
  12672. ><tr
  12673. id=sl_svn7768_2218
  12674. ><td class="source"> low((a &amp; BLUE_MASK) +<br></td></tr
  12675. ><tr
  12676. id=sl_svn7768_2219
  12677. ><td class="source"> (((b &amp; BLUE_MASK) * f) &gt;&gt; 8), BLUE_MASK));<br></td></tr
  12678. ><tr
  12679. id=sl_svn7768_2220
  12680. ><td class="source"> }<br></td></tr
  12681. ><tr
  12682. id=sl_svn7768_2221
  12683. ><td class="source"><br></td></tr
  12684. ><tr
  12685. id=sl_svn7768_2222
  12686. ><td class="source"><br></td></tr
  12687. ><tr
  12688. id=sl_svn7768_2223
  12689. ><td class="source"> /**<br></td></tr
  12690. ><tr
  12691. id=sl_svn7768_2224
  12692. ><td class="source"> * subtractive blend with clipping<br></td></tr
  12693. ><tr
  12694. id=sl_svn7768_2225
  12695. ><td class="source"> */<br></td></tr
  12696. ><tr
  12697. id=sl_svn7768_2226
  12698. ><td class="source"> private static int blend_sub_pin(int a, int b) {<br></td></tr
  12699. ><tr
  12700. id=sl_svn7768_2227
  12701. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12702. ><tr
  12703. id=sl_svn7768_2228
  12704. ><td class="source"><br></td></tr
  12705. ><tr
  12706. id=sl_svn7768_2229
  12707. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12708. ><tr
  12709. id=sl_svn7768_2230
  12710. ><td class="source"> high(((a &amp; RED_MASK) - ((b &amp; RED_MASK) &gt;&gt; 8) * f),<br></td></tr
  12711. ><tr
  12712. id=sl_svn7768_2231
  12713. ><td class="source"> GREEN_MASK) &amp; RED_MASK |<br></td></tr
  12714. ><tr
  12715. id=sl_svn7768_2232
  12716. ><td class="source"> high(((a &amp; GREEN_MASK) - ((b &amp; GREEN_MASK) &gt;&gt; 8) * f),<br></td></tr
  12717. ><tr
  12718. id=sl_svn7768_2233
  12719. ><td class="source"> BLUE_MASK) &amp; GREEN_MASK |<br></td></tr
  12720. ><tr
  12721. id=sl_svn7768_2234
  12722. ><td class="source"> high((a &amp; BLUE_MASK) - (((b &amp; BLUE_MASK) * f) &gt;&gt; 8), 0));<br></td></tr
  12723. ><tr
  12724. id=sl_svn7768_2235
  12725. ><td class="source"> }<br></td></tr
  12726. ><tr
  12727. id=sl_svn7768_2236
  12728. ><td class="source"><br></td></tr
  12729. ><tr
  12730. id=sl_svn7768_2237
  12731. ><td class="source"><br></td></tr
  12732. ><tr
  12733. id=sl_svn7768_2238
  12734. ><td class="source"> /**<br></td></tr
  12735. ><tr
  12736. id=sl_svn7768_2239
  12737. ><td class="source"> * only returns the blended lightest colour<br></td></tr
  12738. ><tr
  12739. id=sl_svn7768_2240
  12740. ><td class="source"> */<br></td></tr
  12741. ><tr
  12742. id=sl_svn7768_2241
  12743. ><td class="source"> private static int blend_lightest(int a, int b) {<br></td></tr
  12744. ><tr
  12745. id=sl_svn7768_2242
  12746. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12747. ><tr
  12748. id=sl_svn7768_2243
  12749. ><td class="source"><br></td></tr
  12750. ><tr
  12751. id=sl_svn7768_2244
  12752. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12753. ><tr
  12754. id=sl_svn7768_2245
  12755. ><td class="source"> high(a &amp; RED_MASK, ((b &amp; RED_MASK) &gt;&gt; 8) * f) &amp; RED_MASK |<br></td></tr
  12756. ><tr
  12757. id=sl_svn7768_2246
  12758. ><td class="source"> high(a &amp; GREEN_MASK, ((b &amp; GREEN_MASK) &gt;&gt; 8) * f) &amp; GREEN_MASK |<br></td></tr
  12759. ><tr
  12760. id=sl_svn7768_2247
  12761. ><td class="source"> high(a &amp; BLUE_MASK, ((b &amp; BLUE_MASK) * f) &gt;&gt; 8));<br></td></tr
  12762. ><tr
  12763. id=sl_svn7768_2248
  12764. ><td class="source"> }<br></td></tr
  12765. ><tr
  12766. id=sl_svn7768_2249
  12767. ><td class="source"><br></td></tr
  12768. ><tr
  12769. id=sl_svn7768_2250
  12770. ><td class="source"><br></td></tr
  12771. ><tr
  12772. id=sl_svn7768_2251
  12773. ><td class="source"> /**<br></td></tr
  12774. ><tr
  12775. id=sl_svn7768_2252
  12776. ><td class="source"> * only returns the blended darkest colour<br></td></tr
  12777. ><tr
  12778. id=sl_svn7768_2253
  12779. ><td class="source"> */<br></td></tr
  12780. ><tr
  12781. id=sl_svn7768_2254
  12782. ><td class="source"> private static int blend_darkest(int a, int b) {<br></td></tr
  12783. ><tr
  12784. id=sl_svn7768_2255
  12785. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12786. ><tr
  12787. id=sl_svn7768_2256
  12788. ><td class="source"><br></td></tr
  12789. ><tr
  12790. id=sl_svn7768_2257
  12791. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12792. ><tr
  12793. id=sl_svn7768_2258
  12794. ><td class="source"> mix(a &amp; RED_MASK,<br></td></tr
  12795. ><tr
  12796. id=sl_svn7768_2259
  12797. ><td class="source"> low(a &amp; RED_MASK,<br></td></tr
  12798. ><tr
  12799. id=sl_svn7768_2260
  12800. ><td class="source"> ((b &amp; RED_MASK) &gt;&gt; 8) * f), f) &amp; RED_MASK |<br></td></tr
  12801. ><tr
  12802. id=sl_svn7768_2261
  12803. ><td class="source"> mix(a &amp; GREEN_MASK,<br></td></tr
  12804. ><tr
  12805. id=sl_svn7768_2262
  12806. ><td class="source"> low(a &amp; GREEN_MASK,<br></td></tr
  12807. ><tr
  12808. id=sl_svn7768_2263
  12809. ><td class="source"> ((b &amp; GREEN_MASK) &gt;&gt; 8) * f), f) &amp; GREEN_MASK |<br></td></tr
  12810. ><tr
  12811. id=sl_svn7768_2264
  12812. ><td class="source"> mix(a &amp; BLUE_MASK,<br></td></tr
  12813. ><tr
  12814. id=sl_svn7768_2265
  12815. ><td class="source"> low(a &amp; BLUE_MASK,<br></td></tr
  12816. ><tr
  12817. id=sl_svn7768_2266
  12818. ><td class="source"> ((b &amp; BLUE_MASK) * f) &gt;&gt; 8), f));<br></td></tr
  12819. ><tr
  12820. id=sl_svn7768_2267
  12821. ><td class="source"> }<br></td></tr
  12822. ><tr
  12823. id=sl_svn7768_2268
  12824. ><td class="source"><br></td></tr
  12825. ><tr
  12826. id=sl_svn7768_2269
  12827. ><td class="source"><br></td></tr
  12828. ><tr
  12829. id=sl_svn7768_2270
  12830. ><td class="source"> /**<br></td></tr
  12831. ><tr
  12832. id=sl_svn7768_2271
  12833. ><td class="source"> * returns the absolute value of the difference of the input colors<br></td></tr
  12834. ><tr
  12835. id=sl_svn7768_2272
  12836. ><td class="source"> * C = |A - B|<br></td></tr
  12837. ><tr
  12838. id=sl_svn7768_2273
  12839. ><td class="source"> */<br></td></tr
  12840. ><tr
  12841. id=sl_svn7768_2274
  12842. ><td class="source"> private static int blend_difference(int a, int b) {<br></td></tr
  12843. ><tr
  12844. id=sl_svn7768_2275
  12845. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  12846. ><tr
  12847. id=sl_svn7768_2276
  12848. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12849. ><tr
  12850. id=sl_svn7768_2277
  12851. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  12852. ><tr
  12853. id=sl_svn7768_2278
  12854. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  12855. ><tr
  12856. id=sl_svn7768_2279
  12857. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  12858. ><tr
  12859. id=sl_svn7768_2280
  12860. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  12861. ><tr
  12862. id=sl_svn7768_2281
  12863. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  12864. ><tr
  12865. id=sl_svn7768_2282
  12866. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  12867. ><tr
  12868. id=sl_svn7768_2283
  12869. ><td class="source"> // formula:<br></td></tr
  12870. ><tr
  12871. id=sl_svn7768_2284
  12872. ><td class="source"> int cr = (ar &gt; br) ? (ar-br) : (br-ar);<br></td></tr
  12873. ><tr
  12874. id=sl_svn7768_2285
  12875. ><td class="source"> int cg = (ag &gt; bg) ? (ag-bg) : (bg-ag);<br></td></tr
  12876. ><tr
  12877. id=sl_svn7768_2286
  12878. ><td class="source"> int cb = (ab &gt; bb) ? (ab-bb) : (bb-ab);<br></td></tr
  12879. ><tr
  12880. id=sl_svn7768_2287
  12881. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  12882. ><tr
  12883. id=sl_svn7768_2288
  12884. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12885. ><tr
  12886. id=sl_svn7768_2289
  12887. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  12888. ><tr
  12889. id=sl_svn7768_2290
  12890. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  12891. ><tr
  12892. id=sl_svn7768_2291
  12893. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  12894. ><tr
  12895. id=sl_svn7768_2292
  12896. ><td class="source"> }<br></td></tr
  12897. ><tr
  12898. id=sl_svn7768_2293
  12899. ><td class="source"><br></td></tr
  12900. ><tr
  12901. id=sl_svn7768_2294
  12902. ><td class="source"><br></td></tr
  12903. ><tr
  12904. id=sl_svn7768_2295
  12905. ><td class="source"> /**<br></td></tr
  12906. ><tr
  12907. id=sl_svn7768_2296
  12908. ><td class="source"> * Cousin of difference, algorithm used here is based on a Lingo version<br></td></tr
  12909. ><tr
  12910. id=sl_svn7768_2297
  12911. ><td class="source"> * found here: http://www.mediamacros.com/item/item-1006687616/<br></td></tr
  12912. ><tr
  12913. id=sl_svn7768_2298
  12914. ><td class="source"> * (Not yet verified to be correct).<br></td></tr
  12915. ><tr
  12916. id=sl_svn7768_2299
  12917. ><td class="source"> */<br></td></tr
  12918. ><tr
  12919. id=sl_svn7768_2300
  12920. ><td class="source"> private static int blend_exclusion(int a, int b) {<br></td></tr
  12921. ><tr
  12922. id=sl_svn7768_2301
  12923. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  12924. ><tr
  12925. id=sl_svn7768_2302
  12926. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  12927. ><tr
  12928. id=sl_svn7768_2303
  12929. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  12930. ><tr
  12931. id=sl_svn7768_2304
  12932. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  12933. ><tr
  12934. id=sl_svn7768_2305
  12935. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  12936. ><tr
  12937. id=sl_svn7768_2306
  12938. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  12939. ><tr
  12940. id=sl_svn7768_2307
  12941. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  12942. ><tr
  12943. id=sl_svn7768_2308
  12944. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  12945. ><tr
  12946. id=sl_svn7768_2309
  12947. ><td class="source"> // formula:<br></td></tr
  12948. ><tr
  12949. id=sl_svn7768_2310
  12950. ><td class="source"> int cr = ar + br - ((ar * br) &gt;&gt; 7);<br></td></tr
  12951. ><tr
  12952. id=sl_svn7768_2311
  12953. ><td class="source"> int cg = ag + bg - ((ag * bg) &gt;&gt; 7);<br></td></tr
  12954. ><tr
  12955. id=sl_svn7768_2312
  12956. ><td class="source"> int cb = ab + bb - ((ab * bb) &gt;&gt; 7);<br></td></tr
  12957. ><tr
  12958. id=sl_svn7768_2313
  12959. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  12960. ><tr
  12961. id=sl_svn7768_2314
  12962. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  12963. ><tr
  12964. id=sl_svn7768_2315
  12965. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  12966. ><tr
  12967. id=sl_svn7768_2316
  12968. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  12969. ><tr
  12970. id=sl_svn7768_2317
  12971. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  12972. ><tr
  12973. id=sl_svn7768_2318
  12974. ><td class="source"> }<br></td></tr
  12975. ><tr
  12976. id=sl_svn7768_2319
  12977. ><td class="source"><br></td></tr
  12978. ><tr
  12979. id=sl_svn7768_2320
  12980. ><td class="source"><br></td></tr
  12981. ><tr
  12982. id=sl_svn7768_2321
  12983. ><td class="source"> /**<br></td></tr
  12984. ><tr
  12985. id=sl_svn7768_2322
  12986. ><td class="source"> * returns the product of the input colors<br></td></tr
  12987. ><tr
  12988. id=sl_svn7768_2323
  12989. ><td class="source"> * C = A * B<br></td></tr
  12990. ><tr
  12991. id=sl_svn7768_2324
  12992. ><td class="source"> */<br></td></tr
  12993. ><tr
  12994. id=sl_svn7768_2325
  12995. ><td class="source"> private static int blend_multiply(int a, int b) {<br></td></tr
  12996. ><tr
  12997. id=sl_svn7768_2326
  12998. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  12999. ><tr
  13000. id=sl_svn7768_2327
  13001. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13002. ><tr
  13003. id=sl_svn7768_2328
  13004. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13005. ><tr
  13006. id=sl_svn7768_2329
  13007. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13008. ><tr
  13009. id=sl_svn7768_2330
  13010. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13011. ><tr
  13012. id=sl_svn7768_2331
  13013. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13014. ><tr
  13015. id=sl_svn7768_2332
  13016. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13017. ><tr
  13018. id=sl_svn7768_2333
  13019. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13020. ><tr
  13021. id=sl_svn7768_2334
  13022. ><td class="source"> // formula:<br></td></tr
  13023. ><tr
  13024. id=sl_svn7768_2335
  13025. ><td class="source"> int cr = (ar * br) &gt;&gt; 8;<br></td></tr
  13026. ><tr
  13027. id=sl_svn7768_2336
  13028. ><td class="source"> int cg = (ag * bg) &gt;&gt; 8;<br></td></tr
  13029. ><tr
  13030. id=sl_svn7768_2337
  13031. ><td class="source"> int cb = (ab * bb) &gt;&gt; 8;<br></td></tr
  13032. ><tr
  13033. id=sl_svn7768_2338
  13034. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13035. ><tr
  13036. id=sl_svn7768_2339
  13037. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13038. ><tr
  13039. id=sl_svn7768_2340
  13040. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13041. ><tr
  13042. id=sl_svn7768_2341
  13043. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13044. ><tr
  13045. id=sl_svn7768_2342
  13046. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13047. ><tr
  13048. id=sl_svn7768_2343
  13049. ><td class="source"> }<br></td></tr
  13050. ><tr
  13051. id=sl_svn7768_2344
  13052. ><td class="source"><br></td></tr
  13053. ><tr
  13054. id=sl_svn7768_2345
  13055. ><td class="source"><br></td></tr
  13056. ><tr
  13057. id=sl_svn7768_2346
  13058. ><td class="source"> /**<br></td></tr
  13059. ><tr
  13060. id=sl_svn7768_2347
  13061. ><td class="source"> * returns the inverse of the product of the inverses of the input colors<br></td></tr
  13062. ><tr
  13063. id=sl_svn7768_2348
  13064. ><td class="source"> * (the inverse of multiply). C = 1 - (1-A) * (1-B)<br></td></tr
  13065. ><tr
  13066. id=sl_svn7768_2349
  13067. ><td class="source"> */<br></td></tr
  13068. ><tr
  13069. id=sl_svn7768_2350
  13070. ><td class="source"> private static int blend_screen(int a, int b) {<br></td></tr
  13071. ><tr
  13072. id=sl_svn7768_2351
  13073. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13074. ><tr
  13075. id=sl_svn7768_2352
  13076. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13077. ><tr
  13078. id=sl_svn7768_2353
  13079. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13080. ><tr
  13081. id=sl_svn7768_2354
  13082. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13083. ><tr
  13084. id=sl_svn7768_2355
  13085. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13086. ><tr
  13087. id=sl_svn7768_2356
  13088. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13089. ><tr
  13090. id=sl_svn7768_2357
  13091. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13092. ><tr
  13093. id=sl_svn7768_2358
  13094. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13095. ><tr
  13096. id=sl_svn7768_2359
  13097. ><td class="source"> // formula:<br></td></tr
  13098. ><tr
  13099. id=sl_svn7768_2360
  13100. ><td class="source"> int cr = 255 - (((255 - ar) * (255 - br)) &gt;&gt; 8);<br></td></tr
  13101. ><tr
  13102. id=sl_svn7768_2361
  13103. ><td class="source"> int cg = 255 - (((255 - ag) * (255 - bg)) &gt;&gt; 8);<br></td></tr
  13104. ><tr
  13105. id=sl_svn7768_2362
  13106. ><td class="source"> int cb = 255 - (((255 - ab) * (255 - bb)) &gt;&gt; 8);<br></td></tr
  13107. ><tr
  13108. id=sl_svn7768_2363
  13109. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13110. ><tr
  13111. id=sl_svn7768_2364
  13112. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13113. ><tr
  13114. id=sl_svn7768_2365
  13115. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13116. ><tr
  13117. id=sl_svn7768_2366
  13118. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13119. ><tr
  13120. id=sl_svn7768_2367
  13121. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13122. ><tr
  13123. id=sl_svn7768_2368
  13124. ><td class="source"> }<br></td></tr
  13125. ><tr
  13126. id=sl_svn7768_2369
  13127. ><td class="source"><br></td></tr
  13128. ><tr
  13129. id=sl_svn7768_2370
  13130. ><td class="source"><br></td></tr
  13131. ><tr
  13132. id=sl_svn7768_2371
  13133. ><td class="source"> /**<br></td></tr
  13134. ><tr
  13135. id=sl_svn7768_2372
  13136. ><td class="source"> * returns either multiply or screen for darker or lighter values of A<br></td></tr
  13137. ><tr
  13138. id=sl_svn7768_2373
  13139. ><td class="source"> * (the inverse of hard light)<br></td></tr
  13140. ><tr
  13141. id=sl_svn7768_2374
  13142. ><td class="source"> * C =<br></td></tr
  13143. ><tr
  13144. id=sl_svn7768_2375
  13145. ><td class="source"> * A &lt; 0.5 : 2 * A * B<br></td></tr
  13146. ><tr
  13147. id=sl_svn7768_2376
  13148. ><td class="source"> * A &gt;=0.5 : 1 - (2 * (255-A) * (255-B))<br></td></tr
  13149. ><tr
  13150. id=sl_svn7768_2377
  13151. ><td class="source"> */<br></td></tr
  13152. ><tr
  13153. id=sl_svn7768_2378
  13154. ><td class="source"> private static int blend_overlay(int a, int b) {<br></td></tr
  13155. ><tr
  13156. id=sl_svn7768_2379
  13157. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13158. ><tr
  13159. id=sl_svn7768_2380
  13160. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13161. ><tr
  13162. id=sl_svn7768_2381
  13163. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13164. ><tr
  13165. id=sl_svn7768_2382
  13166. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13167. ><tr
  13168. id=sl_svn7768_2383
  13169. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13170. ><tr
  13171. id=sl_svn7768_2384
  13172. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13173. ><tr
  13174. id=sl_svn7768_2385
  13175. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13176. ><tr
  13177. id=sl_svn7768_2386
  13178. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13179. ><tr
  13180. id=sl_svn7768_2387
  13181. ><td class="source"> // formula:<br></td></tr
  13182. ><tr
  13183. id=sl_svn7768_2388
  13184. ><td class="source"> int cr = (ar &lt; 128) ? ((ar*br)&gt;&gt;7) : (255-(((255-ar)*(255-br))&gt;&gt;7));<br></td></tr
  13185. ><tr
  13186. id=sl_svn7768_2389
  13187. ><td class="source"> int cg = (ag &lt; 128) ? ((ag*bg)&gt;&gt;7) : (255-(((255-ag)*(255-bg))&gt;&gt;7));<br></td></tr
  13188. ><tr
  13189. id=sl_svn7768_2390
  13190. ><td class="source"> int cb = (ab &lt; 128) ? ((ab*bb)&gt;&gt;7) : (255-(((255-ab)*(255-bb))&gt;&gt;7));<br></td></tr
  13191. ><tr
  13192. id=sl_svn7768_2391
  13193. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13194. ><tr
  13195. id=sl_svn7768_2392
  13196. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13197. ><tr
  13198. id=sl_svn7768_2393
  13199. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13200. ><tr
  13201. id=sl_svn7768_2394
  13202. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13203. ><tr
  13204. id=sl_svn7768_2395
  13205. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13206. ><tr
  13207. id=sl_svn7768_2396
  13208. ><td class="source"> }<br></td></tr
  13209. ><tr
  13210. id=sl_svn7768_2397
  13211. ><td class="source"><br></td></tr
  13212. ><tr
  13213. id=sl_svn7768_2398
  13214. ><td class="source"><br></td></tr
  13215. ><tr
  13216. id=sl_svn7768_2399
  13217. ><td class="source"> /**<br></td></tr
  13218. ><tr
  13219. id=sl_svn7768_2400
  13220. ><td class="source"> * returns either multiply or screen for darker or lighter values of B<br></td></tr
  13221. ><tr
  13222. id=sl_svn7768_2401
  13223. ><td class="source"> * (the inverse of overlay)<br></td></tr
  13224. ><tr
  13225. id=sl_svn7768_2402
  13226. ><td class="source"> * C =<br></td></tr
  13227. ><tr
  13228. id=sl_svn7768_2403
  13229. ><td class="source"> * B &lt; 0.5 : 2 * A * B<br></td></tr
  13230. ><tr
  13231. id=sl_svn7768_2404
  13232. ><td class="source"> * B &gt;=0.5 : 1 - (2 * (255-A) * (255-B))<br></td></tr
  13233. ><tr
  13234. id=sl_svn7768_2405
  13235. ><td class="source"> */<br></td></tr
  13236. ><tr
  13237. id=sl_svn7768_2406
  13238. ><td class="source"> private static int blend_hard_light(int a, int b) {<br></td></tr
  13239. ><tr
  13240. id=sl_svn7768_2407
  13241. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13242. ><tr
  13243. id=sl_svn7768_2408
  13244. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13245. ><tr
  13246. id=sl_svn7768_2409
  13247. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13248. ><tr
  13249. id=sl_svn7768_2410
  13250. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13251. ><tr
  13252. id=sl_svn7768_2411
  13253. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13254. ><tr
  13255. id=sl_svn7768_2412
  13256. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13257. ><tr
  13258. id=sl_svn7768_2413
  13259. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13260. ><tr
  13261. id=sl_svn7768_2414
  13262. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13263. ><tr
  13264. id=sl_svn7768_2415
  13265. ><td class="source"> // formula:<br></td></tr
  13266. ><tr
  13267. id=sl_svn7768_2416
  13268. ><td class="source"> int cr = (br &lt; 128) ? ((ar*br)&gt;&gt;7) : (255-(((255-ar)*(255-br))&gt;&gt;7));<br></td></tr
  13269. ><tr
  13270. id=sl_svn7768_2417
  13271. ><td class="source"> int cg = (bg &lt; 128) ? ((ag*bg)&gt;&gt;7) : (255-(((255-ag)*(255-bg))&gt;&gt;7));<br></td></tr
  13272. ><tr
  13273. id=sl_svn7768_2418
  13274. ><td class="source"> int cb = (bb &lt; 128) ? ((ab*bb)&gt;&gt;7) : (255-(((255-ab)*(255-bb))&gt;&gt;7));<br></td></tr
  13275. ><tr
  13276. id=sl_svn7768_2419
  13277. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13278. ><tr
  13279. id=sl_svn7768_2420
  13280. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13281. ><tr
  13282. id=sl_svn7768_2421
  13283. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13284. ><tr
  13285. id=sl_svn7768_2422
  13286. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13287. ><tr
  13288. id=sl_svn7768_2423
  13289. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13290. ><tr
  13291. id=sl_svn7768_2424
  13292. ><td class="source"> }<br></td></tr
  13293. ><tr
  13294. id=sl_svn7768_2425
  13295. ><td class="source"><br></td></tr
  13296. ><tr
  13297. id=sl_svn7768_2426
  13298. ><td class="source"><br></td></tr
  13299. ><tr
  13300. id=sl_svn7768_2427
  13301. ><td class="source"> /**<br></td></tr
  13302. ><tr
  13303. id=sl_svn7768_2428
  13304. ><td class="source"> * returns the inverse multiply plus screen, which simplifies to<br></td></tr
  13305. ><tr
  13306. id=sl_svn7768_2429
  13307. ><td class="source"> * C = 2AB + A^2 - 2A^2B<br></td></tr
  13308. ><tr
  13309. id=sl_svn7768_2430
  13310. ><td class="source"> */<br></td></tr
  13311. ><tr
  13312. id=sl_svn7768_2431
  13313. ><td class="source"> private static int blend_soft_light(int a, int b) {<br></td></tr
  13314. ><tr
  13315. id=sl_svn7768_2432
  13316. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13317. ><tr
  13318. id=sl_svn7768_2433
  13319. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13320. ><tr
  13321. id=sl_svn7768_2434
  13322. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13323. ><tr
  13324. id=sl_svn7768_2435
  13325. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13326. ><tr
  13327. id=sl_svn7768_2436
  13328. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13329. ><tr
  13330. id=sl_svn7768_2437
  13331. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13332. ><tr
  13333. id=sl_svn7768_2438
  13334. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13335. ><tr
  13336. id=sl_svn7768_2439
  13337. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13338. ><tr
  13339. id=sl_svn7768_2440
  13340. ><td class="source"> // formula:<br></td></tr
  13341. ><tr
  13342. id=sl_svn7768_2441
  13343. ><td class="source"> int cr = ((ar*br)&gt;&gt;7) + ((ar*ar)&gt;&gt;8) - ((ar*ar*br)&gt;&gt;15);<br></td></tr
  13344. ><tr
  13345. id=sl_svn7768_2442
  13346. ><td class="source"> int cg = ((ag*bg)&gt;&gt;7) + ((ag*ag)&gt;&gt;8) - ((ag*ag*bg)&gt;&gt;15);<br></td></tr
  13347. ><tr
  13348. id=sl_svn7768_2443
  13349. ><td class="source"> int cb = ((ab*bb)&gt;&gt;7) + ((ab*ab)&gt;&gt;8) - ((ab*ab*bb)&gt;&gt;15);<br></td></tr
  13350. ><tr
  13351. id=sl_svn7768_2444
  13352. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13353. ><tr
  13354. id=sl_svn7768_2445
  13355. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13356. ><tr
  13357. id=sl_svn7768_2446
  13358. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13359. ><tr
  13360. id=sl_svn7768_2447
  13361. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13362. ><tr
  13363. id=sl_svn7768_2448
  13364. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13365. ><tr
  13366. id=sl_svn7768_2449
  13367. ><td class="source"> }<br></td></tr
  13368. ><tr
  13369. id=sl_svn7768_2450
  13370. ><td class="source"><br></td></tr
  13371. ><tr
  13372. id=sl_svn7768_2451
  13373. ><td class="source"><br></td></tr
  13374. ><tr
  13375. id=sl_svn7768_2452
  13376. ><td class="source"> /**<br></td></tr
  13377. ><tr
  13378. id=sl_svn7768_2453
  13379. ><td class="source"> * Returns the first (underlay) color divided by the inverse of<br></td></tr
  13380. ><tr
  13381. id=sl_svn7768_2454
  13382. ><td class="source"> * the second (overlay) color. C = A / (255-B)<br></td></tr
  13383. ><tr
  13384. id=sl_svn7768_2455
  13385. ><td class="source"> */<br></td></tr
  13386. ><tr
  13387. id=sl_svn7768_2456
  13388. ><td class="source"> private static int blend_dodge(int a, int b) {<br></td></tr
  13389. ><tr
  13390. id=sl_svn7768_2457
  13391. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13392. ><tr
  13393. id=sl_svn7768_2458
  13394. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13395. ><tr
  13396. id=sl_svn7768_2459
  13397. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13398. ><tr
  13399. id=sl_svn7768_2460
  13400. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13401. ><tr
  13402. id=sl_svn7768_2461
  13403. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13404. ><tr
  13405. id=sl_svn7768_2462
  13406. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13407. ><tr
  13408. id=sl_svn7768_2463
  13409. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13410. ><tr
  13411. id=sl_svn7768_2464
  13412. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13413. ><tr
  13414. id=sl_svn7768_2465
  13415. ><td class="source"> // formula:<br></td></tr
  13416. ><tr
  13417. id=sl_svn7768_2466
  13418. ><td class="source"> int cr = (br==255) ? 255 : peg((ar &lt;&lt; 8) / (255 - br)); // division requires pre-peg()-ing<br></td></tr
  13419. ><tr
  13420. id=sl_svn7768_2467
  13421. ><td class="source"> int cg = (bg==255) ? 255 : peg((ag &lt;&lt; 8) / (255 - bg)); // &quot;<br></td></tr
  13422. ><tr
  13423. id=sl_svn7768_2468
  13424. ><td class="source"> int cb = (bb==255) ? 255 : peg((ab &lt;&lt; 8) / (255 - bb)); // &quot;<br></td></tr
  13425. ><tr
  13426. id=sl_svn7768_2469
  13427. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13428. ><tr
  13429. id=sl_svn7768_2470
  13430. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13431. ><tr
  13432. id=sl_svn7768_2471
  13433. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13434. ><tr
  13435. id=sl_svn7768_2472
  13436. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13437. ><tr
  13438. id=sl_svn7768_2473
  13439. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13440. ><tr
  13441. id=sl_svn7768_2474
  13442. ><td class="source"> }<br></td></tr
  13443. ><tr
  13444. id=sl_svn7768_2475
  13445. ><td class="source"><br></td></tr
  13446. ><tr
  13447. id=sl_svn7768_2476
  13448. ><td class="source"><br></td></tr
  13449. ><tr
  13450. id=sl_svn7768_2477
  13451. ><td class="source"> /**<br></td></tr
  13452. ><tr
  13453. id=sl_svn7768_2478
  13454. ><td class="source"> * returns the inverse of the inverse of the first (underlay) color<br></td></tr
  13455. ><tr
  13456. id=sl_svn7768_2479
  13457. ><td class="source"> * divided by the second (overlay) color. C = 255 - (255-A) / B<br></td></tr
  13458. ><tr
  13459. id=sl_svn7768_2480
  13460. ><td class="source"> */<br></td></tr
  13461. ><tr
  13462. id=sl_svn7768_2481
  13463. ><td class="source"> private static int blend_burn(int a, int b) {<br></td></tr
  13464. ><tr
  13465. id=sl_svn7768_2482
  13466. ><td class="source"> // setup (this portion will always be the same)<br></td></tr
  13467. ><tr
  13468. id=sl_svn7768_2483
  13469. ><td class="source"> int f = (b &amp; ALPHA_MASK) &gt;&gt;&gt; 24;<br></td></tr
  13470. ><tr
  13471. id=sl_svn7768_2484
  13472. ><td class="source"> int ar = (a &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13473. ><tr
  13474. id=sl_svn7768_2485
  13475. ><td class="source"> int ag = (a &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13476. ><tr
  13477. id=sl_svn7768_2486
  13478. ><td class="source"> int ab = (a &amp; BLUE_MASK);<br></td></tr
  13479. ><tr
  13480. id=sl_svn7768_2487
  13481. ><td class="source"> int br = (b &amp; RED_MASK) &gt;&gt; 16;<br></td></tr
  13482. ><tr
  13483. id=sl_svn7768_2488
  13484. ><td class="source"> int bg = (b &amp; GREEN_MASK) &gt;&gt; 8;<br></td></tr
  13485. ><tr
  13486. id=sl_svn7768_2489
  13487. ><td class="source"> int bb = (b &amp; BLUE_MASK);<br></td></tr
  13488. ><tr
  13489. id=sl_svn7768_2490
  13490. ><td class="source"> // formula:<br></td></tr
  13491. ><tr
  13492. id=sl_svn7768_2491
  13493. ><td class="source"> int cr = (br==0) ? 0 : 255 - peg(((255 - ar) &lt;&lt; 8) / br); // division requires pre-peg()-ing<br></td></tr
  13494. ><tr
  13495. id=sl_svn7768_2492
  13496. ><td class="source"> int cg = (bg==0) ? 0 : 255 - peg(((255 - ag) &lt;&lt; 8) / bg); // &quot;<br></td></tr
  13497. ><tr
  13498. id=sl_svn7768_2493
  13499. ><td class="source"> int cb = (bb==0) ? 0 : 255 - peg(((255 - ab) &lt;&lt; 8) / bb); // &quot;<br></td></tr
  13500. ><tr
  13501. id=sl_svn7768_2494
  13502. ><td class="source"> // alpha blend (this portion will always be the same)<br></td></tr
  13503. ><tr
  13504. id=sl_svn7768_2495
  13505. ><td class="source"> return (low(((a &amp; ALPHA_MASK) &gt;&gt;&gt; 24) + f, 0xff) &lt;&lt; 24 |<br></td></tr
  13506. ><tr
  13507. id=sl_svn7768_2496
  13508. ><td class="source"> (peg(ar + (((cr - ar) * f) &gt;&gt; 8)) &lt;&lt; 16) |<br></td></tr
  13509. ><tr
  13510. id=sl_svn7768_2497
  13511. ><td class="source"> (peg(ag + (((cg - ag) * f) &gt;&gt; 8)) &lt;&lt; 8) |<br></td></tr
  13512. ><tr
  13513. id=sl_svn7768_2498
  13514. ><td class="source"> (peg(ab + (((cb - ab) * f) &gt;&gt; 8)) ) );<br></td></tr
  13515. ><tr
  13516. id=sl_svn7768_2499
  13517. ><td class="source"> }<br></td></tr
  13518. ><tr
  13519. id=sl_svn7768_2500
  13520. ><td class="source"><br></td></tr
  13521. ><tr
  13522. id=sl_svn7768_2501
  13523. ><td class="source"><br></td></tr
  13524. ><tr
  13525. id=sl_svn7768_2502
  13526. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  13527. ><tr
  13528. id=sl_svn7768_2503
  13529. ><td class="source"><br></td></tr
  13530. ><tr
  13531. id=sl_svn7768_2504
  13532. ><td class="source"> // FILE I/O<br></td></tr
  13533. ><tr
  13534. id=sl_svn7768_2505
  13535. ><td class="source"><br></td></tr
  13536. ><tr
  13537. id=sl_svn7768_2506
  13538. ><td class="source"><br></td></tr
  13539. ><tr
  13540. id=sl_svn7768_2507
  13541. ><td class="source"> static byte TIFF_HEADER[] = {<br></td></tr
  13542. ><tr
  13543. id=sl_svn7768_2508
  13544. ><td class="source"> 77, 77, 0, 42, 0, 0, 0, 8, 0, 9, 0, -2, 0, 4, 0, 0, 0, 1, 0, 0,<br></td></tr
  13545. ><tr
  13546. id=sl_svn7768_2509
  13547. ><td class="source"> 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 3, 0, 0, 0, 1,<br></td></tr
  13548. ><tr
  13549. id=sl_svn7768_2510
  13550. ><td class="source"> 0, 0, 0, 0, 1, 2, 0, 3, 0, 0, 0, 3, 0, 0, 0, 122, 1, 6, 0, 3, 0,<br></td></tr
  13551. ><tr
  13552. id=sl_svn7768_2511
  13553. ><td class="source"> 0, 0, 1, 0, 2, 0, 0, 1, 17, 0, 4, 0, 0, 0, 1, 0, 0, 3, 0, 1, 21,<br></td></tr
  13554. ><tr
  13555. id=sl_svn7768_2512
  13556. ><td class="source"> 0, 3, 0, 0, 0, 1, 0, 3, 0, 0, 1, 22, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0,<br></td></tr
  13557. ><tr
  13558. id=sl_svn7768_2513
  13559. ><td class="source"> 1, 23, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8, 0, 8<br></td></tr
  13560. ><tr
  13561. id=sl_svn7768_2514
  13562. ><td class="source"> };<br></td></tr
  13563. ><tr
  13564. id=sl_svn7768_2515
  13565. ><td class="source"><br></td></tr
  13566. ><tr
  13567. id=sl_svn7768_2516
  13568. ><td class="source"><br></td></tr
  13569. ><tr
  13570. id=sl_svn7768_2517
  13571. ><td class="source"> static final String TIFF_ERROR =<br></td></tr
  13572. ><tr
  13573. id=sl_svn7768_2518
  13574. ><td class="source"> &quot;Error: Processing can only read its own TIFF files.&quot;;<br></td></tr
  13575. ><tr
  13576. id=sl_svn7768_2519
  13577. ><td class="source"><br></td></tr
  13578. ><tr
  13579. id=sl_svn7768_2520
  13580. ><td class="source"> static protected PImage loadTIFF(byte tiff[]) {<br></td></tr
  13581. ><tr
  13582. id=sl_svn7768_2521
  13583. ><td class="source"> if ((tiff[42] != tiff[102]) || // width/height in both places<br></td></tr
  13584. ><tr
  13585. id=sl_svn7768_2522
  13586. ><td class="source"> (tiff[43] != tiff[103])) {<br></td></tr
  13587. ><tr
  13588. id=sl_svn7768_2523
  13589. ><td class="source"> System.err.println(TIFF_ERROR);<br></td></tr
  13590. ><tr
  13591. id=sl_svn7768_2524
  13592. ><td class="source"> return null;<br></td></tr
  13593. ><tr
  13594. id=sl_svn7768_2525
  13595. ><td class="source"> }<br></td></tr
  13596. ><tr
  13597. id=sl_svn7768_2526
  13598. ><td class="source"><br></td></tr
  13599. ><tr
  13600. id=sl_svn7768_2527
  13601. ><td class="source"> int width =<br></td></tr
  13602. ><tr
  13603. id=sl_svn7768_2528
  13604. ><td class="source"> ((tiff[30] &amp; 0xff) &lt;&lt; 8) | (tiff[31] &amp; 0xff);<br></td></tr
  13605. ><tr
  13606. id=sl_svn7768_2529
  13607. ><td class="source"> int height =<br></td></tr
  13608. ><tr
  13609. id=sl_svn7768_2530
  13610. ><td class="source"> ((tiff[42] &amp; 0xff) &lt;&lt; 8) | (tiff[43] &amp; 0xff);<br></td></tr
  13611. ><tr
  13612. id=sl_svn7768_2531
  13613. ><td class="source"><br></td></tr
  13614. ><tr
  13615. id=sl_svn7768_2532
  13616. ><td class="source"> int count =<br></td></tr
  13617. ><tr
  13618. id=sl_svn7768_2533
  13619. ><td class="source"> ((tiff[114] &amp; 0xff) &lt;&lt; 24) |<br></td></tr
  13620. ><tr
  13621. id=sl_svn7768_2534
  13622. ><td class="source"> ((tiff[115] &amp; 0xff) &lt;&lt; 16) |<br></td></tr
  13623. ><tr
  13624. id=sl_svn7768_2535
  13625. ><td class="source"> ((tiff[116] &amp; 0xff) &lt;&lt; 8) |<br></td></tr
  13626. ><tr
  13627. id=sl_svn7768_2536
  13628. ><td class="source"> (tiff[117] &amp; 0xff);<br></td></tr
  13629. ><tr
  13630. id=sl_svn7768_2537
  13631. ><td class="source"> if (count != width * height * 3) {<br></td></tr
  13632. ><tr
  13633. id=sl_svn7768_2538
  13634. ><td class="source"> System.err.println(TIFF_ERROR + &quot; (&quot; + width + &quot;, &quot; + height +&quot;)&quot;);<br></td></tr
  13635. ><tr
  13636. id=sl_svn7768_2539
  13637. ><td class="source"> return null;<br></td></tr
  13638. ><tr
  13639. id=sl_svn7768_2540
  13640. ><td class="source"> }<br></td></tr
  13641. ><tr
  13642. id=sl_svn7768_2541
  13643. ><td class="source"><br></td></tr
  13644. ><tr
  13645. id=sl_svn7768_2542
  13646. ><td class="source"> // check the rest of the header<br></td></tr
  13647. ><tr
  13648. id=sl_svn7768_2543
  13649. ><td class="source"> for (int i = 0; i &lt; TIFF_HEADER.length; i++) {<br></td></tr
  13650. ><tr
  13651. id=sl_svn7768_2544
  13652. ><td class="source"> if ((i == 30) || (i == 31) || (i == 42) || (i == 43) ||<br></td></tr
  13653. ><tr
  13654. id=sl_svn7768_2545
  13655. ><td class="source"> (i == 102) || (i == 103) ||<br></td></tr
  13656. ><tr
  13657. id=sl_svn7768_2546
  13658. ><td class="source"> (i == 114) || (i == 115) || (i == 116) || (i == 117)) continue;<br></td></tr
  13659. ><tr
  13660. id=sl_svn7768_2547
  13661. ><td class="source"><br></td></tr
  13662. ><tr
  13663. id=sl_svn7768_2548
  13664. ><td class="source"> if (tiff[i] != TIFF_HEADER[i]) {<br></td></tr
  13665. ><tr
  13666. id=sl_svn7768_2549
  13667. ><td class="source"> System.err.println(TIFF_ERROR + &quot; (&quot; + i + &quot;)&quot;);<br></td></tr
  13668. ><tr
  13669. id=sl_svn7768_2550
  13670. ><td class="source"> return null;<br></td></tr
  13671. ><tr
  13672. id=sl_svn7768_2551
  13673. ><td class="source"> }<br></td></tr
  13674. ><tr
  13675. id=sl_svn7768_2552
  13676. ><td class="source"> }<br></td></tr
  13677. ><tr
  13678. id=sl_svn7768_2553
  13679. ><td class="source"><br></td></tr
  13680. ><tr
  13681. id=sl_svn7768_2554
  13682. ><td class="source"> PImage outgoing = new PImage(width, height, RGB);<br></td></tr
  13683. ><tr
  13684. id=sl_svn7768_2555
  13685. ><td class="source"> int index = 768;<br></td></tr
  13686. ><tr
  13687. id=sl_svn7768_2556
  13688. ><td class="source"> count /= 3;<br></td></tr
  13689. ><tr
  13690. id=sl_svn7768_2557
  13691. ><td class="source"> for (int i = 0; i &lt; count; i++) {<br></td></tr
  13692. ><tr
  13693. id=sl_svn7768_2558
  13694. ><td class="source"> outgoing.pixels[i] =<br></td></tr
  13695. ><tr
  13696. id=sl_svn7768_2559
  13697. ><td class="source"> 0xFF000000 |<br></td></tr
  13698. ><tr
  13699. id=sl_svn7768_2560
  13700. ><td class="source"> (tiff[index++] &amp; 0xff) &lt;&lt; 16 |<br></td></tr
  13701. ><tr
  13702. id=sl_svn7768_2561
  13703. ><td class="source"> (tiff[index++] &amp; 0xff) &lt;&lt; 8 |<br></td></tr
  13704. ><tr
  13705. id=sl_svn7768_2562
  13706. ><td class="source"> (tiff[index++] &amp; 0xff);<br></td></tr
  13707. ><tr
  13708. id=sl_svn7768_2563
  13709. ><td class="source"> }<br></td></tr
  13710. ><tr
  13711. id=sl_svn7768_2564
  13712. ><td class="source"> return outgoing;<br></td></tr
  13713. ><tr
  13714. id=sl_svn7768_2565
  13715. ><td class="source"> }<br></td></tr
  13716. ><tr
  13717. id=sl_svn7768_2566
  13718. ><td class="source"><br></td></tr
  13719. ><tr
  13720. id=sl_svn7768_2567
  13721. ><td class="source"><br></td></tr
  13722. ><tr
  13723. id=sl_svn7768_2568
  13724. ><td class="source"> protected boolean saveTIFF(OutputStream output) {<br></td></tr
  13725. ><tr
  13726. id=sl_svn7768_2569
  13727. ><td class="source"> // shutting off the warning, people can figure this out themselves<br></td></tr
  13728. ><tr
  13729. id=sl_svn7768_2570
  13730. ><td class="source"> /*<br></td></tr
  13731. ><tr
  13732. id=sl_svn7768_2571
  13733. ><td class="source"> if (format != RGB) {<br></td></tr
  13734. ><tr
  13735. id=sl_svn7768_2572
  13736. ><td class="source"> System.err.println(&quot;Warning: only RGB information is saved with &quot; +<br></td></tr
  13737. ><tr
  13738. id=sl_svn7768_2573
  13739. ><td class="source"> &quot;.tif files. Use .tga or .png for ARGB images and others.&quot;);<br></td></tr
  13740. ><tr
  13741. id=sl_svn7768_2574
  13742. ><td class="source"> }<br></td></tr
  13743. ><tr
  13744. id=sl_svn7768_2575
  13745. ><td class="source"> */<br></td></tr
  13746. ><tr
  13747. id=sl_svn7768_2576
  13748. ><td class="source"> try {<br></td></tr
  13749. ><tr
  13750. id=sl_svn7768_2577
  13751. ><td class="source"> byte tiff[] = new byte[768];<br></td></tr
  13752. ><tr
  13753. id=sl_svn7768_2578
  13754. ><td class="source"> System.arraycopy(TIFF_HEADER, 0, tiff, 0, TIFF_HEADER.length);<br></td></tr
  13755. ><tr
  13756. id=sl_svn7768_2579
  13757. ><td class="source"><br></td></tr
  13758. ><tr
  13759. id=sl_svn7768_2580
  13760. ><td class="source"> tiff[30] = (byte) ((width &gt;&gt; 8) &amp; 0xff);<br></td></tr
  13761. ><tr
  13762. id=sl_svn7768_2581
  13763. ><td class="source"> tiff[31] = (byte) ((width) &amp; 0xff);<br></td></tr
  13764. ><tr
  13765. id=sl_svn7768_2582
  13766. ><td class="source"> tiff[42] = tiff[102] = (byte) ((height &gt;&gt; 8) &amp; 0xff);<br></td></tr
  13767. ><tr
  13768. id=sl_svn7768_2583
  13769. ><td class="source"> tiff[43] = tiff[103] = (byte) ((height) &amp; 0xff);<br></td></tr
  13770. ><tr
  13771. id=sl_svn7768_2584
  13772. ><td class="source"><br></td></tr
  13773. ><tr
  13774. id=sl_svn7768_2585
  13775. ><td class="source"> int count = width*height*3;<br></td></tr
  13776. ><tr
  13777. id=sl_svn7768_2586
  13778. ><td class="source"> tiff[114] = (byte) ((count &gt;&gt; 24) &amp; 0xff);<br></td></tr
  13779. ><tr
  13780. id=sl_svn7768_2587
  13781. ><td class="source"> tiff[115] = (byte) ((count &gt;&gt; 16) &amp; 0xff);<br></td></tr
  13782. ><tr
  13783. id=sl_svn7768_2588
  13784. ><td class="source"> tiff[116] = (byte) ((count &gt;&gt; 8) &amp; 0xff);<br></td></tr
  13785. ><tr
  13786. id=sl_svn7768_2589
  13787. ><td class="source"> tiff[117] = (byte) ((count) &amp; 0xff);<br></td></tr
  13788. ><tr
  13789. id=sl_svn7768_2590
  13790. ><td class="source"><br></td></tr
  13791. ><tr
  13792. id=sl_svn7768_2591
  13793. ><td class="source"> // spew the header to the disk<br></td></tr
  13794. ><tr
  13795. id=sl_svn7768_2592
  13796. ><td class="source"> output.write(tiff);<br></td></tr
  13797. ><tr
  13798. id=sl_svn7768_2593
  13799. ><td class="source"><br></td></tr
  13800. ><tr
  13801. id=sl_svn7768_2594
  13802. ><td class="source"> for (int i = 0; i &lt; pixels.length; i++) {<br></td></tr
  13803. ><tr
  13804. id=sl_svn7768_2595
  13805. ><td class="source"> output.write((pixels[i] &gt;&gt; 16) &amp; 0xff);<br></td></tr
  13806. ><tr
  13807. id=sl_svn7768_2596
  13808. ><td class="source"> output.write((pixels[i] &gt;&gt; 8) &amp; 0xff);<br></td></tr
  13809. ><tr
  13810. id=sl_svn7768_2597
  13811. ><td class="source"> output.write(pixels[i] &amp; 0xff);<br></td></tr
  13812. ><tr
  13813. id=sl_svn7768_2598
  13814. ><td class="source"> }<br></td></tr
  13815. ><tr
  13816. id=sl_svn7768_2599
  13817. ><td class="source"> output.flush();<br></td></tr
  13818. ><tr
  13819. id=sl_svn7768_2600
  13820. ><td class="source"> return true;<br></td></tr
  13821. ><tr
  13822. id=sl_svn7768_2601
  13823. ><td class="source"><br></td></tr
  13824. ><tr
  13825. id=sl_svn7768_2602
  13826. ><td class="source"> } catch (IOException e) {<br></td></tr
  13827. ><tr
  13828. id=sl_svn7768_2603
  13829. ><td class="source"> e.printStackTrace();<br></td></tr
  13830. ><tr
  13831. id=sl_svn7768_2604
  13832. ><td class="source"> }<br></td></tr
  13833. ><tr
  13834. id=sl_svn7768_2605
  13835. ><td class="source"> return false;<br></td></tr
  13836. ><tr
  13837. id=sl_svn7768_2606
  13838. ><td class="source"> }<br></td></tr
  13839. ><tr
  13840. id=sl_svn7768_2607
  13841. ><td class="source"><br></td></tr
  13842. ><tr
  13843. id=sl_svn7768_2608
  13844. ><td class="source"><br></td></tr
  13845. ><tr
  13846. id=sl_svn7768_2609
  13847. ><td class="source"> /**<br></td></tr
  13848. ><tr
  13849. id=sl_svn7768_2610
  13850. ><td class="source"> * Creates a Targa32 formatted byte sequence of specified<br></td></tr
  13851. ><tr
  13852. id=sl_svn7768_2611
  13853. ><td class="source"> * pixel buffer using RLE compression.<br></td></tr
  13854. ><tr
  13855. id=sl_svn7768_2612
  13856. ><td class="source"> * &lt;/p&gt;<br></td></tr
  13857. ><tr
  13858. id=sl_svn7768_2613
  13859. ><td class="source"> * Also figured out how to avoid parsing the image upside-down<br></td></tr
  13860. ><tr
  13861. id=sl_svn7768_2614
  13862. ><td class="source"> * (there&#39;s a header flag to set the image origin to top-left)<br></td></tr
  13863. ><tr
  13864. id=sl_svn7768_2615
  13865. ><td class="source"> * &lt;/p&gt;<br></td></tr
  13866. ><tr
  13867. id=sl_svn7768_2616
  13868. ><td class="source"> * Starting with revision 0092, the format setting is taken into account:<br></td></tr
  13869. ><tr
  13870. id=sl_svn7768_2617
  13871. ><td class="source"> * &lt;UL&gt;<br></td></tr
  13872. ><tr
  13873. id=sl_svn7768_2618
  13874. ><td class="source"> * &lt;LI&gt;&lt;TT&gt;ALPHA&lt;/TT&gt; images written as 8bit grayscale (uses lowest byte)<br></td></tr
  13875. ><tr
  13876. id=sl_svn7768_2619
  13877. ><td class="source"> * &lt;LI&gt;&lt;TT&gt;RGB&lt;/TT&gt; &amp;rarr; 24 bits<br></td></tr
  13878. ><tr
  13879. id=sl_svn7768_2620
  13880. ><td class="source"> * &lt;LI&gt;&lt;TT&gt;ARGB&lt;/TT&gt; &amp;rarr; 32 bits<br></td></tr
  13881. ><tr
  13882. id=sl_svn7768_2621
  13883. ><td class="source"> * &lt;/UL&gt;<br></td></tr
  13884. ><tr
  13885. id=sl_svn7768_2622
  13886. ><td class="source"> * All versions are RLE compressed.<br></td></tr
  13887. ><tr
  13888. id=sl_svn7768_2623
  13889. ><td class="source"> * &lt;/p&gt;<br></td></tr
  13890. ><tr
  13891. id=sl_svn7768_2624
  13892. ><td class="source"> * Contributed by toxi 8-10 May 2005, based on this RLE<br></td></tr
  13893. ><tr
  13894. id=sl_svn7768_2625
  13895. ><td class="source"> * &lt;A HREF=&quot;http://www.wotsit.org/download.asp?f=tga&quot;&gt;specification&lt;/A&gt;<br></td></tr
  13896. ><tr
  13897. id=sl_svn7768_2626
  13898. ><td class="source"> */<br></td></tr
  13899. ><tr
  13900. id=sl_svn7768_2627
  13901. ><td class="source"> protected boolean saveTGA(OutputStream output) {<br></td></tr
  13902. ><tr
  13903. id=sl_svn7768_2628
  13904. ><td class="source"> byte header[] = new byte[18];<br></td></tr
  13905. ><tr
  13906. id=sl_svn7768_2629
  13907. ><td class="source"><br></td></tr
  13908. ><tr
  13909. id=sl_svn7768_2630
  13910. ><td class="source"> if (format == ALPHA) { // save ALPHA images as 8bit grayscale<br></td></tr
  13911. ><tr
  13912. id=sl_svn7768_2631
  13913. ><td class="source"> header[2] = 0x0B;<br></td></tr
  13914. ><tr
  13915. id=sl_svn7768_2632
  13916. ><td class="source"> header[16] = 0x08;<br></td></tr
  13917. ><tr
  13918. id=sl_svn7768_2633
  13919. ><td class="source"> header[17] = 0x28;<br></td></tr
  13920. ><tr
  13921. id=sl_svn7768_2634
  13922. ><td class="source"><br></td></tr
  13923. ><tr
  13924. id=sl_svn7768_2635
  13925. ><td class="source"> } else if (format == RGB) {<br></td></tr
  13926. ><tr
  13927. id=sl_svn7768_2636
  13928. ><td class="source"> header[2] = 0x0A;<br></td></tr
  13929. ><tr
  13930. id=sl_svn7768_2637
  13931. ><td class="source"> header[16] = 24;<br></td></tr
  13932. ><tr
  13933. id=sl_svn7768_2638
  13934. ><td class="source"> header[17] = 0x20;<br></td></tr
  13935. ><tr
  13936. id=sl_svn7768_2639
  13937. ><td class="source"><br></td></tr
  13938. ><tr
  13939. id=sl_svn7768_2640
  13940. ><td class="source"> } else if (format == ARGB) {<br></td></tr
  13941. ><tr
  13942. id=sl_svn7768_2641
  13943. ><td class="source"> header[2] = 0x0A;<br></td></tr
  13944. ><tr
  13945. id=sl_svn7768_2642
  13946. ><td class="source"> header[16] = 32;<br></td></tr
  13947. ><tr
  13948. id=sl_svn7768_2643
  13949. ><td class="source"> header[17] = 0x28;<br></td></tr
  13950. ><tr
  13951. id=sl_svn7768_2644
  13952. ><td class="source"><br></td></tr
  13953. ><tr
  13954. id=sl_svn7768_2645
  13955. ><td class="source"> } else {<br></td></tr
  13956. ><tr
  13957. id=sl_svn7768_2646
  13958. ><td class="source"> throw new RuntimeException(&quot;Image format not recognized inside save()&quot;);<br></td></tr
  13959. ><tr
  13960. id=sl_svn7768_2647
  13961. ><td class="source"> }<br></td></tr
  13962. ><tr
  13963. id=sl_svn7768_2648
  13964. ><td class="source"> // set image dimensions lo-hi byte order<br></td></tr
  13965. ><tr
  13966. id=sl_svn7768_2649
  13967. ><td class="source"> header[12] = (byte) (width &amp; 0xff);<br></td></tr
  13968. ><tr
  13969. id=sl_svn7768_2650
  13970. ><td class="source"> header[13] = (byte) (width &gt;&gt; 8);<br></td></tr
  13971. ><tr
  13972. id=sl_svn7768_2651
  13973. ><td class="source"> header[14] = (byte) (height &amp; 0xff);<br></td></tr
  13974. ><tr
  13975. id=sl_svn7768_2652
  13976. ><td class="source"> header[15] = (byte) (height &gt;&gt; 8);<br></td></tr
  13977. ><tr
  13978. id=sl_svn7768_2653
  13979. ><td class="source"><br></td></tr
  13980. ><tr
  13981. id=sl_svn7768_2654
  13982. ><td class="source"> try {<br></td></tr
  13983. ><tr
  13984. id=sl_svn7768_2655
  13985. ><td class="source"> output.write(header);<br></td></tr
  13986. ><tr
  13987. id=sl_svn7768_2656
  13988. ><td class="source"><br></td></tr
  13989. ><tr
  13990. id=sl_svn7768_2657
  13991. ><td class="source"> int maxLen = height * width;<br></td></tr
  13992. ><tr
  13993. id=sl_svn7768_2658
  13994. ><td class="source"> int index = 0;<br></td></tr
  13995. ><tr
  13996. id=sl_svn7768_2659
  13997. ><td class="source"> int col; //, prevCol;<br></td></tr
  13998. ><tr
  13999. id=sl_svn7768_2660
  14000. ><td class="source"> int[] currChunk = new int[128];<br></td></tr
  14001. ><tr
  14002. id=sl_svn7768_2661
  14003. ><td class="source"><br></td></tr
  14004. ><tr
  14005. id=sl_svn7768_2662
  14006. ><td class="source"> // 8bit image exporter is in separate loop<br></td></tr
  14007. ><tr
  14008. id=sl_svn7768_2663
  14009. ><td class="source"> // to avoid excessive conditionals...<br></td></tr
  14010. ><tr
  14011. id=sl_svn7768_2664
  14012. ><td class="source"> if (format == ALPHA) {<br></td></tr
  14013. ><tr
  14014. id=sl_svn7768_2665
  14015. ><td class="source"> while (index &lt; maxLen) {<br></td></tr
  14016. ><tr
  14017. id=sl_svn7768_2666
  14018. ><td class="source"> boolean isRLE = false;<br></td></tr
  14019. ><tr
  14020. id=sl_svn7768_2667
  14021. ><td class="source"> int rle = 1;<br></td></tr
  14022. ><tr
  14023. id=sl_svn7768_2668
  14024. ><td class="source"> currChunk[0] = col = pixels[index] &amp; 0xff;<br></td></tr
  14025. ><tr
  14026. id=sl_svn7768_2669
  14027. ><td class="source"> while (index + rle &lt; maxLen) {<br></td></tr
  14028. ><tr
  14029. id=sl_svn7768_2670
  14030. ><td class="source"> if (col != (pixels[index + rle]&amp;0xff) || rle == 128) {<br></td></tr
  14031. ><tr
  14032. id=sl_svn7768_2671
  14033. ><td class="source"> isRLE = (rle &gt; 1);<br></td></tr
  14034. ><tr
  14035. id=sl_svn7768_2672
  14036. ><td class="source"> break;<br></td></tr
  14037. ><tr
  14038. id=sl_svn7768_2673
  14039. ><td class="source"> }<br></td></tr
  14040. ><tr
  14041. id=sl_svn7768_2674
  14042. ><td class="source"> rle++;<br></td></tr
  14043. ><tr
  14044. id=sl_svn7768_2675
  14045. ><td class="source"> }<br></td></tr
  14046. ><tr
  14047. id=sl_svn7768_2676
  14048. ><td class="source"> if (isRLE) {<br></td></tr
  14049. ><tr
  14050. id=sl_svn7768_2677
  14051. ><td class="source"> output.write(0x80 | (rle - 1));<br></td></tr
  14052. ><tr
  14053. id=sl_svn7768_2678
  14054. ><td class="source"> output.write(col);<br></td></tr
  14055. ><tr
  14056. id=sl_svn7768_2679
  14057. ><td class="source"><br></td></tr
  14058. ><tr
  14059. id=sl_svn7768_2680
  14060. ><td class="source"> } else {<br></td></tr
  14061. ><tr
  14062. id=sl_svn7768_2681
  14063. ><td class="source"> rle = 1;<br></td></tr
  14064. ><tr
  14065. id=sl_svn7768_2682
  14066. ><td class="source"> while (index + rle &lt; maxLen) {<br></td></tr
  14067. ><tr
  14068. id=sl_svn7768_2683
  14069. ><td class="source"> int cscan = pixels[index + rle] &amp; 0xff;<br></td></tr
  14070. ><tr
  14071. id=sl_svn7768_2684
  14072. ><td class="source"> if ((col != cscan &amp;&amp; rle &lt; 128) || rle &lt; 3) {<br></td></tr
  14073. ><tr
  14074. id=sl_svn7768_2685
  14075. ><td class="source"> currChunk[rle] = col = cscan;<br></td></tr
  14076. ><tr
  14077. id=sl_svn7768_2686
  14078. ><td class="source"> } else {<br></td></tr
  14079. ><tr
  14080. id=sl_svn7768_2687
  14081. ><td class="source"> if (col == cscan) rle -= 2;<br></td></tr
  14082. ><tr
  14083. id=sl_svn7768_2688
  14084. ><td class="source"> break;<br></td></tr
  14085. ><tr
  14086. id=sl_svn7768_2689
  14087. ><td class="source"> }<br></td></tr
  14088. ><tr
  14089. id=sl_svn7768_2690
  14090. ><td class="source"> rle++;<br></td></tr
  14091. ><tr
  14092. id=sl_svn7768_2691
  14093. ><td class="source"> }<br></td></tr
  14094. ><tr
  14095. id=sl_svn7768_2692
  14096. ><td class="source"> output.write(rle - 1);<br></td></tr
  14097. ><tr
  14098. id=sl_svn7768_2693
  14099. ><td class="source"> for (int i = 0; i &lt; rle; i++) output.write(currChunk[i]);<br></td></tr
  14100. ><tr
  14101. id=sl_svn7768_2694
  14102. ><td class="source"> }<br></td></tr
  14103. ><tr
  14104. id=sl_svn7768_2695
  14105. ><td class="source"> index += rle;<br></td></tr
  14106. ><tr
  14107. id=sl_svn7768_2696
  14108. ><td class="source"> }<br></td></tr
  14109. ><tr
  14110. id=sl_svn7768_2697
  14111. ><td class="source"> } else { // export 24/32 bit TARGA<br></td></tr
  14112. ><tr
  14113. id=sl_svn7768_2698
  14114. ><td class="source"> while (index &lt; maxLen) {<br></td></tr
  14115. ><tr
  14116. id=sl_svn7768_2699
  14117. ><td class="source"> boolean isRLE = false;<br></td></tr
  14118. ><tr
  14119. id=sl_svn7768_2700
  14120. ><td class="source"> currChunk[0] = col = pixels[index];<br></td></tr
  14121. ><tr
  14122. id=sl_svn7768_2701
  14123. ><td class="source"> int rle = 1;<br></td></tr
  14124. ><tr
  14125. id=sl_svn7768_2702
  14126. ><td class="source"> // try to find repeating bytes (min. len = 2 pixels)<br></td></tr
  14127. ><tr
  14128. id=sl_svn7768_2703
  14129. ><td class="source"> // maximum chunk size is 128 pixels<br></td></tr
  14130. ><tr
  14131. id=sl_svn7768_2704
  14132. ><td class="source"> while (index + rle &lt; maxLen) {<br></td></tr
  14133. ><tr
  14134. id=sl_svn7768_2705
  14135. ><td class="source"> if (col != pixels[index + rle] || rle == 128) {<br></td></tr
  14136. ><tr
  14137. id=sl_svn7768_2706
  14138. ><td class="source"> isRLE = (rle &gt; 1); // set flag for RLE chunk<br></td></tr
  14139. ><tr
  14140. id=sl_svn7768_2707
  14141. ><td class="source"> break;<br></td></tr
  14142. ><tr
  14143. id=sl_svn7768_2708
  14144. ><td class="source"> }<br></td></tr
  14145. ><tr
  14146. id=sl_svn7768_2709
  14147. ><td class="source"> rle++;<br></td></tr
  14148. ><tr
  14149. id=sl_svn7768_2710
  14150. ><td class="source"> }<br></td></tr
  14151. ><tr
  14152. id=sl_svn7768_2711
  14153. ><td class="source"> if (isRLE) {<br></td></tr
  14154. ><tr
  14155. id=sl_svn7768_2712
  14156. ><td class="source"> output.write(128 | (rle - 1));<br></td></tr
  14157. ><tr
  14158. id=sl_svn7768_2713
  14159. ><td class="source"> output.write(col &amp; 0xff);<br></td></tr
  14160. ><tr
  14161. id=sl_svn7768_2714
  14162. ><td class="source"> output.write(col &gt;&gt; 8 &amp; 0xff);<br></td></tr
  14163. ><tr
  14164. id=sl_svn7768_2715
  14165. ><td class="source"> output.write(col &gt;&gt; 16 &amp; 0xff);<br></td></tr
  14166. ><tr
  14167. id=sl_svn7768_2716
  14168. ><td class="source"> if (format == ARGB) output.write(col &gt;&gt;&gt; 24 &amp; 0xff);<br></td></tr
  14169. ><tr
  14170. id=sl_svn7768_2717
  14171. ><td class="source"><br></td></tr
  14172. ><tr
  14173. id=sl_svn7768_2718
  14174. ><td class="source"> } else { // not RLE<br></td></tr
  14175. ><tr
  14176. id=sl_svn7768_2719
  14177. ><td class="source"> rle = 1;<br></td></tr
  14178. ><tr
  14179. id=sl_svn7768_2720
  14180. ><td class="source"> while (index + rle &lt; maxLen) {<br></td></tr
  14181. ><tr
  14182. id=sl_svn7768_2721
  14183. ><td class="source"> if ((col != pixels[index + rle] &amp;&amp; rle &lt; 128) || rle &lt; 3) {<br></td></tr
  14184. ><tr
  14185. id=sl_svn7768_2722
  14186. ><td class="source"> currChunk[rle] = col = pixels[index + rle];<br></td></tr
  14187. ><tr
  14188. id=sl_svn7768_2723
  14189. ><td class="source"> } else {<br></td></tr
  14190. ><tr
  14191. id=sl_svn7768_2724
  14192. ><td class="source"> // check if the exit condition was the start of<br></td></tr
  14193. ><tr
  14194. id=sl_svn7768_2725
  14195. ><td class="source"> // a repeating colour<br></td></tr
  14196. ><tr
  14197. id=sl_svn7768_2726
  14198. ><td class="source"> if (col == pixels[index + rle]) rle -= 2;<br></td></tr
  14199. ><tr
  14200. id=sl_svn7768_2727
  14201. ><td class="source"> break;<br></td></tr
  14202. ><tr
  14203. id=sl_svn7768_2728
  14204. ><td class="source"> }<br></td></tr
  14205. ><tr
  14206. id=sl_svn7768_2729
  14207. ><td class="source"> rle++;<br></td></tr
  14208. ><tr
  14209. id=sl_svn7768_2730
  14210. ><td class="source"> }<br></td></tr
  14211. ><tr
  14212. id=sl_svn7768_2731
  14213. ><td class="source"> // write uncompressed chunk<br></td></tr
  14214. ><tr
  14215. id=sl_svn7768_2732
  14216. ><td class="source"> output.write(rle - 1);<br></td></tr
  14217. ><tr
  14218. id=sl_svn7768_2733
  14219. ><td class="source"> if (format == ARGB) {<br></td></tr
  14220. ><tr
  14221. id=sl_svn7768_2734
  14222. ><td class="source"> for (int i = 0; i &lt; rle; i++) {<br></td></tr
  14223. ><tr
  14224. id=sl_svn7768_2735
  14225. ><td class="source"> col = currChunk[i];<br></td></tr
  14226. ><tr
  14227. id=sl_svn7768_2736
  14228. ><td class="source"> output.write(col &amp; 0xff);<br></td></tr
  14229. ><tr
  14230. id=sl_svn7768_2737
  14231. ><td class="source"> output.write(col &gt;&gt; 8 &amp; 0xff);<br></td></tr
  14232. ><tr
  14233. id=sl_svn7768_2738
  14234. ><td class="source"> output.write(col &gt;&gt; 16 &amp; 0xff);<br></td></tr
  14235. ><tr
  14236. id=sl_svn7768_2739
  14237. ><td class="source"> output.write(col &gt;&gt;&gt; 24 &amp; 0xff);<br></td></tr
  14238. ><tr
  14239. id=sl_svn7768_2740
  14240. ><td class="source"> }<br></td></tr
  14241. ><tr
  14242. id=sl_svn7768_2741
  14243. ><td class="source"> } else {<br></td></tr
  14244. ><tr
  14245. id=sl_svn7768_2742
  14246. ><td class="source"> for (int i = 0; i &lt; rle; i++) {<br></td></tr
  14247. ><tr
  14248. id=sl_svn7768_2743
  14249. ><td class="source"> col = currChunk[i];<br></td></tr
  14250. ><tr
  14251. id=sl_svn7768_2744
  14252. ><td class="source"> output.write(col &amp; 0xff);<br></td></tr
  14253. ><tr
  14254. id=sl_svn7768_2745
  14255. ><td class="source"> output.write(col &gt;&gt; 8 &amp; 0xff);<br></td></tr
  14256. ><tr
  14257. id=sl_svn7768_2746
  14258. ><td class="source"> output.write(col &gt;&gt; 16 &amp; 0xff);<br></td></tr
  14259. ><tr
  14260. id=sl_svn7768_2747
  14261. ><td class="source"> }<br></td></tr
  14262. ><tr
  14263. id=sl_svn7768_2748
  14264. ><td class="source"> }<br></td></tr
  14265. ><tr
  14266. id=sl_svn7768_2749
  14267. ><td class="source"> }<br></td></tr
  14268. ><tr
  14269. id=sl_svn7768_2750
  14270. ><td class="source"> index += rle;<br></td></tr
  14271. ><tr
  14272. id=sl_svn7768_2751
  14273. ><td class="source"> }<br></td></tr
  14274. ><tr
  14275. id=sl_svn7768_2752
  14276. ><td class="source"> }<br></td></tr
  14277. ><tr
  14278. id=sl_svn7768_2753
  14279. ><td class="source"> output.flush();<br></td></tr
  14280. ><tr
  14281. id=sl_svn7768_2754
  14282. ><td class="source"> return true;<br></td></tr
  14283. ><tr
  14284. id=sl_svn7768_2755
  14285. ><td class="source"><br></td></tr
  14286. ><tr
  14287. id=sl_svn7768_2756
  14288. ><td class="source"> } catch (IOException e) {<br></td></tr
  14289. ><tr
  14290. id=sl_svn7768_2757
  14291. ><td class="source"> e.printStackTrace();<br></td></tr
  14292. ><tr
  14293. id=sl_svn7768_2758
  14294. ><td class="source"> return false;<br></td></tr
  14295. ><tr
  14296. id=sl_svn7768_2759
  14297. ><td class="source"> }<br></td></tr
  14298. ><tr
  14299. id=sl_svn7768_2760
  14300. ><td class="source"> }<br></td></tr
  14301. ><tr
  14302. id=sl_svn7768_2761
  14303. ><td class="source"><br></td></tr
  14304. ><tr
  14305. id=sl_svn7768_2762
  14306. ><td class="source"><br></td></tr
  14307. ><tr
  14308. id=sl_svn7768_2763
  14309. ><td class="source"> /**<br></td></tr
  14310. ><tr
  14311. id=sl_svn7768_2764
  14312. ><td class="source"> * Use ImageIO functions from Java 1.4 and later to handle image save.<br></td></tr
  14313. ><tr
  14314. id=sl_svn7768_2765
  14315. ><td class="source"> * Various formats are supported, typically jpeg, png, bmp, and wbmp.<br></td></tr
  14316. ><tr
  14317. id=sl_svn7768_2766
  14318. ><td class="source"> * To get a list of the supported formats for writing, use: &lt;BR&gt;<br></td></tr
  14319. ><tr
  14320. id=sl_svn7768_2767
  14321. ><td class="source"> * &lt;TT&gt;println(javax.imageio.ImageIO.getReaderFormatNames())&lt;/TT&gt;<br></td></tr
  14322. ><tr
  14323. id=sl_svn7768_2768
  14324. ><td class="source"> */<br></td></tr
  14325. ><tr
  14326. id=sl_svn7768_2769
  14327. ><td class="source"> protected void saveImageIO(String path) throws IOException {<br></td></tr
  14328. ><tr
  14329. id=sl_svn7768_2770
  14330. ><td class="source"> try {<br></td></tr
  14331. ><tr
  14332. id=sl_svn7768_2771
  14333. ><td class="source"> int outputFormat = (format == ARGB) ?<br></td></tr
  14334. ><tr
  14335. id=sl_svn7768_2772
  14336. ><td class="source"> BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB;<br></td></tr
  14337. ><tr
  14338. id=sl_svn7768_2773
  14339. ><td class="source"> <br></td></tr
  14340. ><tr
  14341. id=sl_svn7768_2774
  14342. ><td class="source"> // JPEG and BMP images that have an alpha channel set get pretty unhappy.<br></td></tr
  14343. ><tr
  14344. id=sl_svn7768_2775
  14345. ><td class="source"> // BMP just doesn&#39;t write, and JPEG writes it as a CMYK image.<br></td></tr
  14346. ><tr
  14347. id=sl_svn7768_2776
  14348. ><td class="source"> // http://code.google.com/p/processing/issues/detail?id=415<br></td></tr
  14349. ><tr
  14350. id=sl_svn7768_2777
  14351. ><td class="source"> String lower = path.toLowerCase();<br></td></tr
  14352. ><tr
  14353. id=sl_svn7768_2778
  14354. ><td class="source"> if (lower.endsWith(&quot;bmp&quot;) || lower.endsWith(&quot;jpg&quot;) || lower.endsWith(&quot;jpeg&quot;)) {<br></td></tr
  14355. ><tr
  14356. id=sl_svn7768_2779
  14357. ><td class="source"> outputFormat = BufferedImage.TYPE_INT_RGB;<br></td></tr
  14358. ><tr
  14359. id=sl_svn7768_2780
  14360. ><td class="source"> }<br></td></tr
  14361. ><tr
  14362. id=sl_svn7768_2781
  14363. ><td class="source"> <br></td></tr
  14364. ><tr
  14365. id=sl_svn7768_2782
  14366. ><td class="source"> BufferedImage bimage = new BufferedImage(width, height, outputFormat);<br></td></tr
  14367. ><tr
  14368. id=sl_svn7768_2783
  14369. ><td class="source"> bimage.setRGB(0, 0, width, height, pixels, 0, width);<br></td></tr
  14370. ><tr
  14371. id=sl_svn7768_2784
  14372. ><td class="source"><br></td></tr
  14373. ><tr
  14374. id=sl_svn7768_2785
  14375. ><td class="source"> File file = new File(path);<br></td></tr
  14376. ><tr
  14377. id=sl_svn7768_2786
  14378. ><td class="source"> String extension = path.substring(path.lastIndexOf(&#39;.&#39;) + 1);<br></td></tr
  14379. ><tr
  14380. id=sl_svn7768_2787
  14381. ><td class="source"><br></td></tr
  14382. ><tr
  14383. id=sl_svn7768_2788
  14384. ><td class="source"> ImageIO.write(bimage, extension, file);<br></td></tr
  14385. ><tr
  14386. id=sl_svn7768_2789
  14387. ><td class="source"><br></td></tr
  14388. ><tr
  14389. id=sl_svn7768_2790
  14390. ><td class="source"> } catch (Exception e) {<br></td></tr
  14391. ><tr
  14392. id=sl_svn7768_2791
  14393. ><td class="source"> e.printStackTrace();<br></td></tr
  14394. ><tr
  14395. id=sl_svn7768_2792
  14396. ><td class="source"> throw new IOException(&quot;image save failed.&quot;);<br></td></tr
  14397. ><tr
  14398. id=sl_svn7768_2793
  14399. ><td class="source"> }<br></td></tr
  14400. ><tr
  14401. id=sl_svn7768_2794
  14402. ><td class="source"> }<br></td></tr
  14403. ><tr
  14404. id=sl_svn7768_2795
  14405. ><td class="source"><br></td></tr
  14406. ><tr
  14407. id=sl_svn7768_2796
  14408. ><td class="source"><br></td></tr
  14409. ><tr
  14410. id=sl_svn7768_2797
  14411. ><td class="source"> protected String[] saveImageFormats;<br></td></tr
  14412. ><tr
  14413. id=sl_svn7768_2798
  14414. ><td class="source"><br></td></tr
  14415. ><tr
  14416. id=sl_svn7768_2799
  14417. ><td class="source"> /**<br></td></tr
  14418. ><tr
  14419. id=sl_svn7768_2800
  14420. ><td class="source"> * Saves the image into a file. Images are saved in TIFF, TARGA, JPEG, and PNG format depending on the extension within the &lt;b&gt;filename&lt;/b&gt; parameter.<br></td></tr
  14421. ><tr
  14422. id=sl_svn7768_2801
  14423. ><td class="source"> * For example, &quot;image.tif&quot; will have a TIFF image and &quot;image.png&quot; will save a PNG image.<br></td></tr
  14424. ><tr
  14425. id=sl_svn7768_2802
  14426. ><td class="source"> * If no extension is included in the filename, the image will save in TIFF format and &lt;b&gt;.tif&lt;/b&gt; will be added to the name.<br></td></tr
  14427. ><tr
  14428. id=sl_svn7768_2803
  14429. ><td class="source"> * These files are saved to the sketch&#39;s folder, which may be opened by selecting &quot;Show sketch folder&quot; from the &quot;Sketch&quot; menu.<br></td></tr
  14430. ><tr
  14431. id=sl_svn7768_2804
  14432. ><td class="source"> * It is not possible to use &lt;b&gt;save()&lt;/b&gt; while running the program in a web browser.&lt;br&gt;&lt;br&gt;<br></td></tr
  14433. ><tr
  14434. id=sl_svn7768_2805
  14435. ><td class="source"> * To save an image created within the code, rather than through loading, it&#39;s necessary to make the image with the &lt;b&gt;createImage()&lt;/b&gt;<br></td></tr
  14436. ><tr
  14437. id=sl_svn7768_2806
  14438. ><td class="source"> * function so it is aware of the location of the program and can therefore save the file to the right place.<br></td></tr
  14439. ><tr
  14440. id=sl_svn7768_2807
  14441. ><td class="source"> * See the &lt;b&gt;createImage()&lt;/b&gt; reference for more information.<br></td></tr
  14442. ><tr
  14443. id=sl_svn7768_2808
  14444. ><td class="source"> *<br></td></tr
  14445. ><tr
  14446. id=sl_svn7768_2809
  14447. ><td class="source"> * =advanced<br></td></tr
  14448. ><tr
  14449. id=sl_svn7768_2810
  14450. ><td class="source"> * Save this image to disk.<br></td></tr
  14451. ><tr
  14452. id=sl_svn7768_2811
  14453. ><td class="source"> * &lt;p&gt;<br></td></tr
  14454. ><tr
  14455. id=sl_svn7768_2812
  14456. ><td class="source"> * As of revision 0100, this function requires an absolute path,<br></td></tr
  14457. ><tr
  14458. id=sl_svn7768_2813
  14459. ><td class="source"> * in order to avoid confusion. To save inside the sketch folder,<br></td></tr
  14460. ><tr
  14461. id=sl_svn7768_2814
  14462. ><td class="source"> * use the function savePath() from PApplet, or use saveFrame() instead.<br></td></tr
  14463. ><tr
  14464. id=sl_svn7768_2815
  14465. ><td class="source"> * As of revision 0116, savePath() is not needed if this object has been<br></td></tr
  14466. ><tr
  14467. id=sl_svn7768_2816
  14468. ><td class="source"> * created (as recommended) via createImage() or createGraphics() or<br></td></tr
  14469. ><tr
  14470. id=sl_svn7768_2817
  14471. ><td class="source"> * one of its neighbors.<br></td></tr
  14472. ><tr
  14473. id=sl_svn7768_2818
  14474. ><td class="source"> * &lt;p&gt;<br></td></tr
  14475. ><tr
  14476. id=sl_svn7768_2819
  14477. ><td class="source"> * As of revision 0115, when using Java 1.4 and later, you can write<br></td></tr
  14478. ><tr
  14479. id=sl_svn7768_2820
  14480. ><td class="source"> * to several formats besides tga and tiff. If Java 1.4 is installed<br></td></tr
  14481. ><tr
  14482. id=sl_svn7768_2821
  14483. ><td class="source"> * and the extension used is supported (usually png, jpg, jpeg, bmp,<br></td></tr
  14484. ><tr
  14485. id=sl_svn7768_2822
  14486. ><td class="source"> * and tiff), then those methods will be used to write the image.<br></td></tr
  14487. ><tr
  14488. id=sl_svn7768_2823
  14489. ><td class="source"> * To get a list of the supported formats for writing, use: &lt;BR&gt;<br></td></tr
  14490. ><tr
  14491. id=sl_svn7768_2824
  14492. ><td class="source"> * &lt;TT&gt;println(javax.imageio.ImageIO.getReaderFormatNames())&lt;/TT&gt;<br></td></tr
  14493. ><tr
  14494. id=sl_svn7768_2825
  14495. ><td class="source"> * &lt;p&gt;<br></td></tr
  14496. ><tr
  14497. id=sl_svn7768_2826
  14498. ><td class="source"> * To use the original built-in image writers, use .tga or .tif as the<br></td></tr
  14499. ><tr
  14500. id=sl_svn7768_2827
  14501. ><td class="source"> * extension, or don&#39;t include an extension. When no extension is used,<br></td></tr
  14502. ><tr
  14503. id=sl_svn7768_2828
  14504. ><td class="source"> * the extension .tif will be added to the file name.<br></td></tr
  14505. ><tr
  14506. id=sl_svn7768_2829
  14507. ><td class="source"> * &lt;p&gt;<br></td></tr
  14508. ><tr
  14509. id=sl_svn7768_2830
  14510. ><td class="source"> * The ImageIO API claims to support wbmp files, however they probably<br></td></tr
  14511. ><tr
  14512. id=sl_svn7768_2831
  14513. ><td class="source"> * require a black and white image. Basic testing produced a zero-length<br></td></tr
  14514. ><tr
  14515. id=sl_svn7768_2832
  14516. ><td class="source"> * file with no error.<br></td></tr
  14517. ><tr
  14518. id=sl_svn7768_2833
  14519. ><td class="source"> *<br></td></tr
  14520. ><tr
  14521. id=sl_svn7768_2834
  14522. ><td class="source"> * @webref<br></td></tr
  14523. ><tr
  14524. id=sl_svn7768_2835
  14525. ><td class="source"> * @brief Saves the image to a TIFF, TARGA, PNG, or JPEG file<br></td></tr
  14526. ><tr
  14527. id=sl_svn7768_2836
  14528. ><td class="source"> * @param filename a sequence of letters and numbers<br></td></tr
  14529. ><tr
  14530. id=sl_svn7768_2837
  14531. ><td class="source"> */<br></td></tr
  14532. ><tr
  14533. id=sl_svn7768_2838
  14534. ><td class="source"> public void save(String filename) { // ignore<br></td></tr
  14535. ><tr
  14536. id=sl_svn7768_2839
  14537. ><td class="source"> boolean success = false;<br></td></tr
  14538. ><tr
  14539. id=sl_svn7768_2840
  14540. ><td class="source"><br></td></tr
  14541. ><tr
  14542. id=sl_svn7768_2841
  14543. ><td class="source">// File file = new File(filename);<br></td></tr
  14544. ><tr
  14545. id=sl_svn7768_2842
  14546. ><td class="source">// if (!file.isAbsolute()) {<br></td></tr
  14547. ><tr
  14548. id=sl_svn7768_2843
  14549. ><td class="source"> // always use savePath(), so that the intermediate directories are created<br></td></tr
  14550. ><tr
  14551. id=sl_svn7768_2844
  14552. ><td class="source"> if (parent != null) {<br></td></tr
  14553. ><tr
  14554. id=sl_svn7768_2845
  14555. ><td class="source"> //file = new File(parent.savePath(filename));<br></td></tr
  14556. ><tr
  14557. id=sl_svn7768_2846
  14558. ><td class="source"> filename = parent.savePath(filename);<br></td></tr
  14559. ><tr
  14560. id=sl_svn7768_2847
  14561. ><td class="source"> } else {<br></td></tr
  14562. ><tr
  14563. id=sl_svn7768_2848
  14564. ><td class="source"> String msg = &quot;PImage.save() requires an absolute path. &quot; +<br></td></tr
  14565. ><tr
  14566. id=sl_svn7768_2849
  14567. ><td class="source"> &quot;Use createImage(), or pass savePath() to save().&quot;;<br></td></tr
  14568. ><tr
  14569. id=sl_svn7768_2850
  14570. ><td class="source"> PGraphics.showException(msg);<br></td></tr
  14571. ><tr
  14572. id=sl_svn7768_2851
  14573. ><td class="source"> }<br></td></tr
  14574. ><tr
  14575. id=sl_svn7768_2852
  14576. ><td class="source">// }<br></td></tr
  14577. ><tr
  14578. id=sl_svn7768_2853
  14579. ><td class="source"><br></td></tr
  14580. ><tr
  14581. id=sl_svn7768_2854
  14582. ><td class="source"> // Make sure the pixel data is ready to go<br></td></tr
  14583. ><tr
  14584. id=sl_svn7768_2855
  14585. ><td class="source"> loadPixels();<br></td></tr
  14586. ><tr
  14587. id=sl_svn7768_2856
  14588. ><td class="source"><br></td></tr
  14589. ><tr
  14590. id=sl_svn7768_2857
  14591. ><td class="source"> try {<br></td></tr
  14592. ><tr
  14593. id=sl_svn7768_2858
  14594. ><td class="source"> OutputStream os = null;<br></td></tr
  14595. ><tr
  14596. id=sl_svn7768_2859
  14597. ><td class="source"><br></td></tr
  14598. ><tr
  14599. id=sl_svn7768_2860
  14600. ><td class="source"> if (saveImageFormats == null) {<br></td></tr
  14601. ><tr
  14602. id=sl_svn7768_2861
  14603. ><td class="source"> saveImageFormats = javax.imageio.ImageIO.getWriterFormatNames();<br></td></tr
  14604. ><tr
  14605. id=sl_svn7768_2862
  14606. ><td class="source"> }<br></td></tr
  14607. ><tr
  14608. id=sl_svn7768_2863
  14609. ><td class="source"> if (saveImageFormats != null) {<br></td></tr
  14610. ><tr
  14611. id=sl_svn7768_2864
  14612. ><td class="source"> for (int i = 0; i &lt; saveImageFormats.length; i++) {<br></td></tr
  14613. ><tr
  14614. id=sl_svn7768_2865
  14615. ><td class="source"> if (filename.endsWith(&quot;.&quot; + saveImageFormats[i])) {<br></td></tr
  14616. ><tr
  14617. id=sl_svn7768_2866
  14618. ><td class="source"> saveImageIO(filename);<br></td></tr
  14619. ><tr
  14620. id=sl_svn7768_2867
  14621. ><td class="source"> return;<br></td></tr
  14622. ><tr
  14623. id=sl_svn7768_2868
  14624. ><td class="source"> }<br></td></tr
  14625. ><tr
  14626. id=sl_svn7768_2869
  14627. ><td class="source"> }<br></td></tr
  14628. ><tr
  14629. id=sl_svn7768_2870
  14630. ><td class="source"> }<br></td></tr
  14631. ><tr
  14632. id=sl_svn7768_2871
  14633. ><td class="source"><br></td></tr
  14634. ><tr
  14635. id=sl_svn7768_2872
  14636. ><td class="source"> if (filename.toLowerCase().endsWith(&quot;.tga&quot;)) {<br></td></tr
  14637. ><tr
  14638. id=sl_svn7768_2873
  14639. ><td class="source"> os = new BufferedOutputStream(new FileOutputStream(filename), 32768);<br></td></tr
  14640. ><tr
  14641. id=sl_svn7768_2874
  14642. ><td class="source"> success = saveTGA(os); //, pixels, width, height, format);<br></td></tr
  14643. ><tr
  14644. id=sl_svn7768_2875
  14645. ><td class="source"><br></td></tr
  14646. ><tr
  14647. id=sl_svn7768_2876
  14648. ><td class="source"> } else {<br></td></tr
  14649. ><tr
  14650. id=sl_svn7768_2877
  14651. ><td class="source"> if (!filename.toLowerCase().endsWith(&quot;.tif&quot;) &amp;&amp;<br></td></tr
  14652. ><tr
  14653. id=sl_svn7768_2878
  14654. ><td class="source"> !filename.toLowerCase().endsWith(&quot;.tiff&quot;)) {<br></td></tr
  14655. ><tr
  14656. id=sl_svn7768_2879
  14657. ><td class="source"> // if no .tif extension, add it..<br></td></tr
  14658. ><tr
  14659. id=sl_svn7768_2880
  14660. ><td class="source"> filename += &quot;.tif&quot;;<br></td></tr
  14661. ><tr
  14662. id=sl_svn7768_2881
  14663. ><td class="source"> }<br></td></tr
  14664. ><tr
  14665. id=sl_svn7768_2882
  14666. ><td class="source"> os = new BufferedOutputStream(new FileOutputStream(filename), 32768);<br></td></tr
  14667. ><tr
  14668. id=sl_svn7768_2883
  14669. ><td class="source"> success = saveTIFF(os); //, pixels, width, height);<br></td></tr
  14670. ><tr
  14671. id=sl_svn7768_2884
  14672. ><td class="source"> }<br></td></tr
  14673. ><tr
  14674. id=sl_svn7768_2885
  14675. ><td class="source"> os.flush();<br></td></tr
  14676. ><tr
  14677. id=sl_svn7768_2886
  14678. ><td class="source"> os.close();<br></td></tr
  14679. ><tr
  14680. id=sl_svn7768_2887
  14681. ><td class="source"><br></td></tr
  14682. ><tr
  14683. id=sl_svn7768_2888
  14684. ><td class="source"> } catch (IOException e) {<br></td></tr
  14685. ><tr
  14686. id=sl_svn7768_2889
  14687. ><td class="source"> //System.err.println(&quot;Error while saving image.&quot;);<br></td></tr
  14688. ><tr
  14689. id=sl_svn7768_2890
  14690. ><td class="source"> e.printStackTrace();<br></td></tr
  14691. ><tr
  14692. id=sl_svn7768_2891
  14693. ><td class="source"> success = false;<br></td></tr
  14694. ><tr
  14695. id=sl_svn7768_2892
  14696. ><td class="source"> }<br></td></tr
  14697. ><tr
  14698. id=sl_svn7768_2893
  14699. ><td class="source"> if (!success) {<br></td></tr
  14700. ><tr
  14701. id=sl_svn7768_2894
  14702. ><td class="source"> throw new RuntimeException(&quot;Error while saving image.&quot;);<br></td></tr
  14703. ><tr
  14704. id=sl_svn7768_2895
  14705. ><td class="source"> }<br></td></tr
  14706. ><tr
  14707. id=sl_svn7768_2896
  14708. ><td class="source"> }<br></td></tr
  14709. ><tr
  14710. id=sl_svn7768_2897
  14711. ><td class="source">}<br></td></tr
  14712. ><tr
  14713. id=sl_svn7768_2898
  14714. ><td class="source"><br></td></tr
  14715. ></table></pre>
  14716. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  14717. </td>
  14718. </tr></table>
  14719. <script type="text/javascript">
  14720. var lineNumUnderMouse = -1;
  14721. function gutterOver(num) {
  14722. gutterOut();
  14723. var newTR = document.getElementById('gr_svn7768_' + num);
  14724. if (newTR) {
  14725. newTR.className = 'undermouse';
  14726. }
  14727. lineNumUnderMouse = num;
  14728. }
  14729. function gutterOut() {
  14730. if (lineNumUnderMouse != -1) {
  14731. var oldTR = document.getElementById(
  14732. 'gr_svn7768_' + lineNumUnderMouse);
  14733. if (oldTR) {
  14734. oldTR.className = '';
  14735. }
  14736. lineNumUnderMouse = -1;
  14737. }
  14738. }
  14739. var numsGenState = {table_base_id: 'nums_table_'};
  14740. var srcGenState = {table_base_id: 'src_table_'};
  14741. var alignerRunning = false;
  14742. var startOver = false;
  14743. function setLineNumberHeights() {
  14744. if (alignerRunning) {
  14745. startOver = true;
  14746. return;
  14747. }
  14748. numsGenState.chunk_id = 0;
  14749. numsGenState.table = document.getElementById('nums_table_0');
  14750. numsGenState.row_num = 0;
  14751. srcGenState.chunk_id = 0;
  14752. srcGenState.table = document.getElementById('src_table_0');
  14753. srcGenState.row_num = 0;
  14754. alignerRunning = true;
  14755. continueToSetLineNumberHeights();
  14756. }
  14757. function rowGenerator(genState) {
  14758. if (genState.row_num < genState.table.rows.length) {
  14759. var currentRow = genState.table.rows[genState.row_num];
  14760. genState.row_num++;
  14761. return currentRow;
  14762. }
  14763. var newTable = document.getElementById(
  14764. genState.table_base_id + (genState.chunk_id + 1));
  14765. if (newTable) {
  14766. genState.chunk_id++;
  14767. genState.row_num = 0;
  14768. genState.table = newTable;
  14769. return genState.table.rows[0];
  14770. }
  14771. return null;
  14772. }
  14773. var MAX_ROWS_PER_PASS = 1000;
  14774. function continueToSetLineNumberHeights() {
  14775. var rowsInThisPass = 0;
  14776. var numRow = 1;
  14777. var srcRow = 1;
  14778. while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
  14779. numRow = rowGenerator(numsGenState);
  14780. srcRow = rowGenerator(srcGenState);
  14781. rowsInThisPass++;
  14782. if (numRow && srcRow) {
  14783. if (numRow.offsetHeight != srcRow.offsetHeight) {
  14784. numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
  14785. }
  14786. }
  14787. }
  14788. if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
  14789. setTimeout(continueToSetLineNumberHeights, 10);
  14790. } else {
  14791. alignerRunning = false;
  14792. if (startOver) {
  14793. startOver = false;
  14794. setTimeout(setLineNumberHeights, 500);
  14795. }
  14796. }
  14797. }
  14798. // Do 2 complete passes, because there can be races
  14799. // between this code and prettify.
  14800. startOver = true;
  14801. setTimeout(setLineNumberHeights, 250);
  14802. window.onresize = setLineNumberHeights;
  14803. </script>
  14804. <div id="log">
  14805. <div style="text-align:right">
  14806. <a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Show details</a>
  14807. <a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Hide details</a>
  14808. </div>
  14809. <div class="ifExpand">
  14810. <div class="pmeta_bubble_bg" style="border:1px solid white">
  14811. <div class="round4"></div>
  14812. <div class="round2"></div>
  14813. <div class="round1"></div>
  14814. <div class="box-inner">
  14815. <div id="changelog">
  14816. <p>Change log</p>
  14817. <div>
  14818. <a href="/p/processing/source/detail?spec=svn7768&r=7754">r7754</a>
  14819. by f...@processing.org
  14820. on Yesterday (23 hours ago)
  14821. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7754&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PImage.java&amp;old_path=/trunk/processing/core/src/processing/core/PImage.java&amp;old=7748">Diff</a>
  14822. </div>
  14823. <pre>fix issue causing ARGB images to save
  14824. weirdly with JPG and BMP (<a title="saving a PGraphics as jpg using save() creates a CMYK image" class=closed_ref href="/p/processing/issues/detail?id=415"> issue #415 </a>)</pre>
  14825. </div>
  14826. <script type="text/javascript">
  14827. var detail_url = '/p/processing/source/detail?r=7754&spec=svn7768';
  14828. var publish_url = '/p/processing/source/detail?r=7754&spec=svn7768#publish';
  14829. // describe the paths of this revision in javascript.
  14830. var changed_paths = [];
  14831. var changed_urls = [];
  14832. changed_paths.push('/trunk/processing/core/src/processing/core/PImage.java');
  14833. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PImage.java?r\x3d7754\x26spec\x3dsvn7768');
  14834. var selected_path = '/trunk/processing/core/src/processing/core/PImage.java';
  14835. changed_paths.push('/trunk/processing/core/todo.txt');
  14836. changed_urls.push('/p/processing/source/browse/trunk/processing/core/todo.txt?r\x3d7754\x26spec\x3dsvn7768');
  14837. function getCurrentPageIndex() {
  14838. for (var i = 0; i < changed_paths.length; i++) {
  14839. if (selected_path == changed_paths[i]) {
  14840. return i;
  14841. }
  14842. }
  14843. }
  14844. function getNextPage() {
  14845. var i = getCurrentPageIndex();
  14846. if (i < changed_paths.length - 1) {
  14847. return changed_urls[i + 1];
  14848. }
  14849. return null;
  14850. }
  14851. function getPreviousPage() {
  14852. var i = getCurrentPageIndex();
  14853. if (i > 0) {
  14854. return changed_urls[i - 1];
  14855. }
  14856. return null;
  14857. }
  14858. function gotoNextPage() {
  14859. var page = getNextPage();
  14860. if (!page) {
  14861. page = detail_url;
  14862. }
  14863. window.location = page;
  14864. }
  14865. function gotoPreviousPage() {
  14866. var page = getPreviousPage();
  14867. if (!page) {
  14868. page = detail_url;
  14869. }
  14870. window.location = page;
  14871. }
  14872. function gotoDetailPage() {
  14873. window.location = detail_url;
  14874. }
  14875. function gotoPublishPage() {
  14876. window.location = publish_url;
  14877. }
  14878. </script>
  14879. <style type="text/css">
  14880. #review_nav {
  14881. border-top: 3px solid white;
  14882. padding-top: 6px;
  14883. margin-top: 1em;
  14884. }
  14885. #review_nav td {
  14886. vertical-align: middle;
  14887. }
  14888. #review_nav select {
  14889. margin: .5em 0;
  14890. }
  14891. </style>
  14892. <div id="review_nav">
  14893. <table><tr><td>Go to:&nbsp;</td><td>
  14894. <select name="files_in_rev" onchange="window.location=this.value">
  14895. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PImage.java?r=7754&amp;spec=svn7768"
  14896. selected="selected"
  14897. >.../src/processing/core/PImage.java</option>
  14898. <option value="/p/processing/source/browse/trunk/processing/core/todo.txt?r=7754&amp;spec=svn7768"
  14899. >/trunk/processing/core/todo.txt</option>
  14900. </select>
  14901. </td></tr></table>
  14902. </div>
  14903. </div>
  14904. <div class="round1"></div>
  14905. <div class="round2"></div>
  14906. <div class="round4"></div>
  14907. </div>
  14908. <div class="pmeta_bubble_bg" style="border:1px solid white">
  14909. <div class="round4"></div>
  14910. <div class="round2"></div>
  14911. <div class="round1"></div>
  14912. <div class="box-inner">
  14913. <div id="older_bubble">
  14914. <p>Older revisions</p>
  14915. <div class="closed" style="margin-bottom:3px;" >
  14916. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  14917. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  14918. <a href="/p/processing/source/detail?spec=svn7768&r=7748">r7748</a>
  14919. by f...@processing.org
  14920. on Yesterday (24 hours ago)
  14921. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7748&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PImage.java&amp;old_path=/trunk/processing/core/src/processing/core/PImage.java&amp;old=7695">Diff</a>
  14922. <br>
  14923. <pre class="ifOpened">deal with clone() memory leak in get()
  14924. (<a title="java.lang.OutOfMemoryError using get() and image() inside a tight loop" class=closed_ref href="/p/processing/issues/detail?id=42"> issue #42 </a>)</pre>
  14925. </div>
  14926. <div class="closed" style="margin-bottom:3px;" >
  14927. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  14928. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  14929. <a href="/p/processing/source/detail?spec=svn7768&r=7695">r7695</a>
  14930. by andres.colubri
  14931. on Feb 12, 2011
  14932. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7695&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PImage.java&amp;old_path=/trunk/processing/core/src/processing/core/PImage.java&amp;old=7661">Diff</a>
  14933. <br>
  14934. <pre class="ifOpened">minor edits</pre>
  14935. </div>
  14936. <div class="closed" style="margin-bottom:3px;" >
  14937. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  14938. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  14939. <a href="/p/processing/source/detail?spec=svn7768&r=7661">r7661</a>
  14940. by andres.colubri
  14941. on Feb 06, 2011
  14942. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7661&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PImage.java&amp;old_path=/trunk/processing/core/src/processing/core/PImage.java&amp;old=7659">Diff</a>
  14943. <br>
  14944. <pre class="ifOpened">Removed PParameter class</pre>
  14945. </div>
  14946. <a href="/p/processing/source/list?path=/trunk/processing/core/src/processing/core/PImage.java&start=7754">All revisions of this file</a>
  14947. </div>
  14948. </div>
  14949. <div class="round1"></div>
  14950. <div class="round2"></div>
  14951. <div class="round4"></div>
  14952. </div>
  14953. <div class="pmeta_bubble_bg" style="border:1px solid white">
  14954. <div class="round4"></div>
  14955. <div class="round2"></div>
  14956. <div class="round1"></div>
  14957. <div class="box-inner">
  14958. <div id="fileinfo_bubble">
  14959. <p>File info</p>
  14960. <div>Size: 96454 bytes,
  14961. 2898 lines</div>
  14962. <div><a href="http://processing.googlecode.com/svn/trunk/processing/core/src/processing/core/PImage.java">View raw file</a></div>
  14963. </div>
  14964. </div>
  14965. <div class="round1"></div>
  14966. <div class="round2"></div>
  14967. <div class="round4"></div>
  14968. </div>
  14969. </div>
  14970. </div>
  14971. </div>
  14972. </div>
  14973. </div>
  14974. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/prettify/prettify.js"></script>
  14975. <script type="text/javascript">prettyPrint();</script>
  14976. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/source_file_scripts.js"></script>
  14977. <script type="text/javascript" src="https://kibbles.googlecode.com/files/kibbles-1.3.3.comp.js"></script>
  14978. <script type="text/javascript">
  14979. var lastStop = null;
  14980. var initilized = false;
  14981. function updateCursor(next, prev) {
  14982. if (prev && prev.element) {
  14983. prev.element.className = 'cursor_stop cursor_hidden';
  14984. }
  14985. if (next && next.element) {
  14986. next.element.className = 'cursor_stop cursor';
  14987. lastStop = next.index;
  14988. }
  14989. }
  14990. function pubRevealed(data) {
  14991. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  14992. if (initilized) {
  14993. reloadCursors();
  14994. }
  14995. }
  14996. function draftRevealed(data) {
  14997. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  14998. if (initilized) {
  14999. reloadCursors();
  15000. }
  15001. }
  15002. function draftDestroyed(data) {
  15003. updateCursorForCell(data.cellId, 'nocursor');
  15004. if (initilized) {
  15005. reloadCursors();
  15006. }
  15007. }
  15008. function reloadCursors() {
  15009. kibbles.skipper.reset();
  15010. loadCursors();
  15011. if (lastStop != null) {
  15012. kibbles.skipper.setCurrentStop(lastStop);
  15013. }
  15014. }
  15015. // possibly the simplest way to insert any newly added comments
  15016. // is to update the class of the corresponding cursor row,
  15017. // then refresh the entire list of rows.
  15018. function updateCursorForCell(cellId, className) {
  15019. var cell = document.getElementById(cellId);
  15020. // we have to go two rows back to find the cursor location
  15021. var row = getPreviousElement(cell.parentNode);
  15022. row.className = className;
  15023. }
  15024. // returns the previous element, ignores text nodes.
  15025. function getPreviousElement(e) {
  15026. var element = e.previousSibling;
  15027. if (element.nodeType == 3) {
  15028. element = element.previousSibling;
  15029. }
  15030. if (element && element.tagName) {
  15031. return element;
  15032. }
  15033. }
  15034. function loadCursors() {
  15035. // register our elements with skipper
  15036. var elements = CR_getElements('*', 'cursor_stop');
  15037. var len = elements.length;
  15038. for (var i = 0; i < len; i++) {
  15039. var element = elements[i];
  15040. element.className = 'cursor_stop cursor_hidden';
  15041. kibbles.skipper.append(element);
  15042. }
  15043. }
  15044. function toggleComments() {
  15045. CR_toggleCommentDisplay();
  15046. reloadCursors();
  15047. }
  15048. function keysOnLoadHandler() {
  15049. // setup skipper
  15050. kibbles.skipper.addStopListener(
  15051. kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
  15052. // Set the 'offset' option to return the middle of the client area
  15053. // an option can be a static value, or a callback
  15054. kibbles.skipper.setOption('padding_top', 50);
  15055. // Set the 'offset' option to return the middle of the client area
  15056. // an option can be a static value, or a callback
  15057. kibbles.skipper.setOption('padding_bottom', 100);
  15058. // Register our keys
  15059. kibbles.skipper.addFwdKey("n");
  15060. kibbles.skipper.addRevKey("p");
  15061. kibbles.keys.addKeyPressListener(
  15062. 'u', function() { window.location = detail_url; });
  15063. kibbles.keys.addKeyPressListener(
  15064. 'r', function() { window.location = detail_url + '#publish'; });
  15065. kibbles.keys.addKeyPressListener('j', gotoNextPage);
  15066. kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
  15067. }
  15068. </script>
  15069. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/code_review_scripts.js"></script>
  15070. <script type="text/javascript">
  15071. // the comment form template
  15072. var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
  15073. '<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
  15074. '</div>';
  15075. // the comment "plate" template used for both draft and published comment "plates".
  15076. var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
  15077. '<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
  15078. '<pre id="$ID" class="body">$BODY</pre>' +
  15079. '</div>';
  15080. var published_comment = '<div class="published">' +
  15081. '<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
  15082. '<pre id="$ID" class="body">$BODY</pre>' +
  15083. '</div>';
  15084. function showPublishInstructions() {
  15085. var element = document.getElementById('review_instr');
  15086. if (element) {
  15087. element.className = 'opened';
  15088. }
  15089. }
  15090. function revsOnLoadHandler() {
  15091. // register our source container with the commenting code
  15092. var paths = {'svn7768': '/trunk/processing/core/src/processing/core/PImage.java'}
  15093. CR_setup('', 'p', 'processing', '', 'svn7768', paths,
  15094. 'c6974bcd72eb95455827185f7306e1fa', CR_BrowseIntegrationFactory);
  15095. // register our hidden ui elements with the code commenting code ui builder.
  15096. CR_registerLayoutElement('form', form);
  15097. CR_registerLayoutElement('draft_comment', draft_comment);
  15098. CR_registerLayoutElement('published_comment', published_comment);
  15099. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
  15100. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
  15101. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
  15102. CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
  15103. var initilized = true;
  15104. reloadCursors();
  15105. }
  15106. window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
  15107. </script>
  15108. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/dit_scripts.js"></script>
  15109. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/core_scripts_20081103.js"></script>
  15110. <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
  15111. </div>
  15112. <div id="footer" dir="ltr">
  15113. <div class="text">
  15114. &copy;2010 Google -
  15115. <a href="/projecthosting/terms.html">Terms</a> -
  15116. <a href="http://www.google.com/privacy.html">Privacy</a> -
  15117. <a href="/p/support/">Project Hosting Help</a>
  15118. </div>
  15119. </div>
  15120. <div class="hostedBy" style="margin-top: -20px;">
  15121. <span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
  15122. </div>
  15123. </body>
  15124. </html>