/irc-logs / w3c / #css / 2012-05-22 / end

Options:

  1. # Session Start: Tue May 22 00:00:00 2012
  2. # Session Ident: #css
  3. # [00:19] * sylvaing is now known as sylvaing_away
  4. # [00:51] <fantasai> heycam|away: if resolving the percentage would require doing layout, it must stay as a percentage
  5. # [00:51] <fantasai> heycam|away: (as a result, most percentages stay as percentages)
  6. # [00:54] * heycam|away is now known as heycam
  7. # [00:57] <heycam> fantasai, ok, otherwise is it preferred to convert it? most (all?) SVG properties aren't going to affect layout I guess.
  8. # [00:57] <fantasai> mmm, I'm not sure about that one :)
  9. # [00:57] <fantasai> what properties were you thinking of?
  10. # [00:58] <heycam> the first one I was looking at (as I'm reformatting all the property definition tables in the spec to have Computed Value lines) is stroke-width
  11. # [00:58] <heycam> oh but hang on -- percentages there refer to the viewport size, and perhaps that can be set by layout affecting how big the outer svg box is
  12. # [01:01] <heycam> that and stroke-dashoffset seem to be the only two properties we have that take percentages, surprisingly
  13. # [01:02] <heycam> (until we come to promoting a bunch of them)
  14. # [01:02] <heycam> s/them/attributes/
  15. # [01:23] <TabAtkins_> heycam: Layout can't currently affect the viewport size, no?
  16. # [01:23] <TabAtkins_> It's always set by the root element and nothing else.
  17. # [01:24] <heycam> TabAtkins_, I'm wondering about when you leave off the viewBox attribute
  18. # [01:24] <TabAtkins_> But <svg> nested inside of HTML can indeed depend on layout, if that's what you are referring to.
  19. # [01:24] <heycam> TabAtkins_, there's some magic that determines the viewport depending on the width/height
  20. # [01:24] <heycam> yeah
  21. # [01:25] <TabAtkins_> Excluding nesting in another language, I think that's well-defined before layout.
  22. # [01:25] <TabAtkins_> But since it can depend on the outer language doing layout, yeah, it should stay a used value.
  23. # [01:25] * sylvaing_away is now known as sylvaing
  24. # [01:26] <heycam> in general, do we want to compute percentages to absolute values, except in the cases where it requires layout?
  25. # [01:26] <TabAtkins_> Yes. Any value which *can* be resolved without layout, *should* be resolved at computed-value time.
  26. # [01:27] <TabAtkins_> That way you can depend fully on computed values being "correct" except when they depend on layout.
  27. # [01:27] <heycam> ok
  28. # [01:27] <heycam> and what about other kinds of values? any general rules?
  29. # [01:28] <TabAtkins_> And then specs refer solely to the computed or used values, as appropriate, except in very special circumstances when they need to refer to earlier value computation steps.
  30. # [01:29] <heycam> I noticed for example color does some things
  31. # [01:29] <TabAtkins_> The CSS value pipeline is cascaded->specified->computed->used->actual. Cascaded is the one that wins the cascade. Specified is same as cascaded, except with global keywords swapped out. Computed and used are as I said. Actual is used, but with values corrected for limitations of the display device (like rounding to integer pixels).
  32. # [01:30] <heycam> does color do the computed thing that it does because there are multiple ways to specify the same colour, and there's general desire to canonicalise the computed value?
  33. # [01:32] <TabAtkins_> Yes.
  34. # [01:33] <heycam> ok cool, these sound like rules I can apply, thanks (and to fantasai)
  35. # [01:33] * Quits: drublic (drublic@77.2.150.78) (Client exited)
  36. # [01:34] * Joins: drublic (drublic@77.2.150.78)
  37. # [01:34] <TabAtkins_> You want to canonicalize the computed value so that you can do comparisons correctly for e.g. Transitions or toggle().
  38. # [01:34] <TabAtkins_> Note, as always, that this doesn't necessarily have any bearing on the serialized value gotten from various APIs.
  39. # [01:34] <heycam> ok
  40. # [01:35] * Joins: myakura (myakura@122.130.129.42)
  41. # [01:37] * Quits: drublic (drublic@77.2.150.78) (Ping timeout)
  42. # [01:38] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  43. # [01:42] <TabAtkins_> fantasai: While writing the note about computed value comparison for toggle(), I was going to use box-shadow as an example, but I realized it actually has a badly-written computed value line.
  44. # [01:43] <TabAtkins_> It says "as specified", which means that "0px 0px blue" and "0px 0px 0px blue" would compute as different values.
  45. # [01:43] <fantasai> ah
  46. # [01:43] <TabAtkins_> Mind if I make an editorial tweak to the wording?
  47. # [01:44] <fantasai> yes, I want to know what you're tweaking it to :)
  48. # [01:44] <fantasai> and also Bert will need to incorporate it into the diffs
  49. # [01:44] <fantasai> so
  50. # [01:44] <fantasai> please post an issue
  51. # [01:44] <TabAtkins_> Okay. A www-style post sufficient?
  52. # [01:44] <fantasai> yep
  53. # [01:45] <TabAtkins_> k, one sec
  54. # [01:51] * Joins: jdaggett (jdaggett@202.221.217.73)
  55. # [02:14] * Quits: stearns (anonymous@192.150.22.5) (Quit: stearns)
  56. # [02:14] * Joins: stearns (anonymous@192.150.22.5)
  57. # [02:14] * fantasai waves to jdaggett
  58. # [02:15] <jdaggett> hiya
  59. # [02:15] <jdaggett> now reading about unquoted font family names over coffee
  60. # [02:15] <jdaggett> need stronger coffee...
  61. # [02:22] * fantasai is attempting to create order out of INBOX chaos today
  62. # [02:23] * jdaggett submits to chaos, for it is my lord and master...
  63. # [02:23] <dbaron> at least the sun isn't going away today while you're trying to drink your coffee
  64. # [02:25] <jdaggett> this is true. very bummed i couldn't find eclipse glasses when i went looking for them sunday night...
  65. # [02:25] <jdaggett> an eclipse seen via the tv just looks like another movie effect
  66. # [02:27] <jdaggett> although i did enjoy the clips of rather large americans eating bbq while viewing the eclipse that were shown on the news last night
  67. # [02:34] * Quits: dbaron (dbaron@206.15.76.122) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  68. # [02:53] * Quits: tantek (tantek@206.15.76.122) (Quit: tantek)
  69. # [03:01] * Quits: arno (arno@192.150.10.201) (Quit: Leaving.)
  70. # [03:17] * Joins: jet (jet@67.169.43.128)
  71. # [03:28] * sylvaing is now known as sylvaing_away
  72. # [03:36] * Joins: myakura (myakura@122.130.129.42)
  73. # [03:39] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  74. # [03:43] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  75. # [03:44] * Joins: jet (jet@67.169.43.128)
  76. # [03:44] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  77. # [03:50] * Joins: jet (jet@67.169.43.128)
  78. # [04:05] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  79. # [04:11] * Joins: nimbu (Adium@220.244.185.73)
  80. # [04:15] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  81. # [04:15] * Joins: nimbu (Adium@27.32.173.220)
  82. # [04:21] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  83. # [04:21] * Joins: nimbu (Adium@60.241.8.154)
  84. # [04:39] * heycam is now known as heycam|away
  85. # [04:39] * Quits: nimbu (Adium@60.241.8.154) (Quit: Leaving.)
  86. # [05:01] * Joins: jet (jet@67.169.43.128)
  87. # [05:05] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  88. # [05:22] * heycam|away is now known as heycam
  89. # [05:33] * Joins: nimbu (Adium@60.241.8.154)
  90. # [05:36] * Joins: myakura (myakura@122.130.129.42)
  91. # [05:39] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  92. # [05:42] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  93. # [05:42] * Joins: nimbu (Adium@27.32.173.220)
  94. # [05:46] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  95. # [05:46] * Joins: nimbu (Adium@60.241.8.154)
  96. # [05:49] <heycam> what does the Applies To line mean exactly? is it that setting the property on the listed elements can have some sort of effect?
  97. # [05:49] <heycam> I'm looking at removing the duplicated property definitions from the SVG spec, like "display"
  98. # [05:50] <heycam> in CSS, it says that display applies to all elements, but in SVG setting say display:inline on certain elements will still not make them render anything
  99. # [05:50] <heycam> so it is accurate to say that display applies to all elements?
  100. # [05:56] <heycam> another question: is there an index to let me know what's the most recent spec that defines a given property (so I don't have to trawl through dev.w3.org/csswg/ looking for them)?
  101. # [05:57] * Quits: glenn (gadams@71.218.125.40) (Client exited)
  102. # [05:58] <Liam> heycam, might be a little late at night for some people here
  103. # [05:58] <heycam> Liam, fair point. I can wait. :)
  104. # [05:58] <Liam> I don't know of a regularly maintained index unfortunately, have been thinking about that too
  105. # [05:58] <heycam> ok
  106. # [05:59] <Liam> I think the implication is that the property is ignored (or just inherits from) elements to which it does not apply, we were looking at doing something similar for XSL-FO
  107. # [05:59] <Liam> getting rid of the duplicate defs, that is
  108. # [06:00] * Quits: nimbu (Adium@60.241.8.154) (Quit: Leaving.)
  109. # [06:00] <heycam> ok, so no rendering/behaviour effect
  110. # [06:36] * Joins: tantek (tantek@50.0.92.247)
  111. # [07:12] * Joins: macpherson (macpherson@74.125.56.17)
  112. # [07:36] * Joins: myakura (myakura@122.130.129.42)
  113. # [07:39] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  114. # [09:19] * Joins: Ms2ger (Ms2ger@91.181.125.136)
  115. # [09:35] * heycam is now known as heycam|away
  116. # [09:37] * Joins: myakura (myakura@122.130.129.42)
  117. # [09:40] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  118. # [09:42] * Joins: Ms2ger` (Ms2ger@91.181.125.136)
  119. # [09:42] * Quits: Ms2ger (Ms2ger@91.181.125.136) (Ping timeout)
  120. # [09:45] * Quits: Ms2ger` (Ms2ger@91.181.125.136) (Ping timeout)
  121. # [09:45] * Joins: Ms2ger` (Ms2ger@91.181.125.136)
  122. # [09:49] * Joins: drublic (drublic@77.2.137.227)
  123. # [09:52] * Quits: drublic (drublic@77.2.137.227) (Ping timeout)
  124. # [10:02] * Quits: Ms2ger` (Ms2ger@91.181.125.136) (Ping timeout)
  125. # [10:15] * Quits: jdaggett (jdaggett@202.221.217.73) (Quit: jdaggett)
  126. # [10:18] * Joins: drublic (drublic@93.132.242.243)
  127. # [10:19] * Joins: Ms2ger` (Ms2ger@91.181.125.136)
  128. # [10:57] * Joins: florianr (florianr@213.236.208.22)
  129. # [11:07] * Joins: SimonSapin (simon@82.232.219.95)
  130. # [11:28] * Quits: ed (ed@88.131.66.80) (Quit: ZNC - http://znc.sourceforge.net)
  131. # [11:37] * Joins: myakura (myakura@122.130.129.42)
  132. # [11:40] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  133. # [12:34] * Joins: ed (ed@88.131.66.80)
  134. # [13:38] * Joins: myakura (myakura@122.130.129.42)
  135. # [15:08] * Joins: lhnz (lhnz@188.223.83.48)
  136. # [15:56] * Joins: ksweeney (ksweeney@63.119.10.10)
  137. # [16:14] * Joins: nimbu (Adium@220.244.185.73)
  138. # [16:14] * Quits: nimbu (Adium@220.244.185.73) (Quit: Leaving.)
  139. # [16:32] * Parts: ksweeney (ksweeney@63.119.10.10)
  140. # [16:52] * Joins: arno (arno@192.150.10.201)
  141. # [17:08] * Quits: florianr (florianr@213.236.208.22) (Quit: Leaving.)
  142. # [17:11] * Joins: glenn (gadams@71.218.125.40)
  143. # [17:20] * Quits: dglazkov (u4270@88.198.6.68) (Client exited)
  144. # [17:33] * Quits: lhnz (lhnz@188.223.83.48) (Quit: Leaving)
  145. # [17:39] * Joins: dglazkov (u4270@88.198.6.68)
  146. # [17:41] <stearns> heycam: MDN has "Specifications" links from each property to what defines it
  147. # [17:42] <stearns> heycam: and http://dochub.io/#css/ is a good index to each property page
  148. # [17:43] * Joins: nimbu (Adium@60.241.8.154)
  149. # [17:52] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  150. # [17:52] * Joins: nimbu (Adium@220.244.185.73)
  151. # [17:56] * Joins: miketaylr (miketaylr@70.112.101.224)
  152. # [18:02] * Joins: ksweeney (ksweeney@63.119.10.10)
  153. # [18:03] * sylvaing_away is now known as sylvaing
  154. # [18:05] * Parts: ksweeney (ksweeney@63.119.10.10)
  155. # [18:12] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  156. # [18:12] * Joins: nimbu (Adium@60.241.8.154)
  157. # [18:39] * Quits: miketaylr (miketaylr@70.112.101.224) (Quit: dflk;adfslkj;alsiekfj;laiskdf)
  158. # [18:43] * Joins: jet (jet@206.15.76.122)
  159. # [18:45] * Quits: jet (jet@206.15.76.122) (Connection reset by peer)
  160. # [18:45] * Joins: jet (jet@206.15.76.122)
  161. # [18:45] * Quits: jet (jet@206.15.76.122) (Quit: jet)
  162. # [18:46] * Joins: jet (jet@206.15.76.122)
  163. # [18:52] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  164. # [18:52] * Joins: nimbu (Adium@220.244.185.73)
  165. # [19:10] * Quits: myakura (myakura@122.130.129.42) (Client exited)
  166. # [19:11] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  167. # [19:11] * Joins: nimbu (Adium@60.241.8.154)
  168. # [19:13] * Quits: arno (arno@192.150.10.201) (Quit: Leaving.)
  169. # [19:13] * Joins: arno (arno@192.150.10.201)
  170. # [19:13] * Quits: arno (arno@192.150.10.201) (Quit: Leaving.)
  171. # [19:14] * Joins: arno (arno@192.150.10.201)
  172. # [19:32] * Quits: drublic (drublic@93.132.242.243) (Client exited)
  173. # [19:32] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  174. # [19:32] * Joins: nimbu (Adium@220.244.185.73)
  175. # [19:32] * Joins: drublic (drublic@93.132.242.243)
  176. # [19:33] * Quits: SimonSapin (simon@82.232.219.95) (Ping timeout)
  177. # [19:36] * Quits: drublic (drublic@93.132.242.243) (Ping timeout)
  178. # [19:37] * Joins: dbaron (dbaron@206.15.76.122)
  179. # [19:42] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  180. # [19:42] * Joins: nimbu (Adium@27.32.173.220)
  181. # [19:52] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  182. # [19:52] * Joins: nimbu (Adium@60.241.8.154)
  183. # [19:59] * Joins: myakura (myakura@122.130.129.42)
  184. # [20:07] * Quits: jet (jet@206.15.76.122) (Quit: jet)
  185. # [20:09] * Joins: jet (jet@206.15.76.122)
  186. # [20:11] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  187. # [20:11] * Joins: nimbu (Adium@27.32.173.105)
  188. # [20:20] * Joins: nimbu1 (Adium@60.241.8.154)
  189. # [20:20] * Quits: nimbu (Adium@27.32.173.105) (Connection reset by peer)
  190. # [20:35] * Joins: miketaylr (miketaylr@70.112.101.224)
  191. # [20:36] * Quits: dbaron (dbaron@206.15.76.122) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  192. # [20:36] * Joins: dbaron (dbaron@206.15.76.122)
  193. # [20:37] * sylvaing is now known as sylvaing_away
  194. # [20:47] * Quits: myakura (myakura@122.130.129.42) (Client exited)
  195. # [20:57] * Joins: danielfilho (danielfilh@187.31.77.7)
  196. # [21:01] * miketaylr is now known as miketaylrawaylol
  197. # [21:09] * miketaylrawaylol is now known as miketaylr
  198. # [21:23] * Quits: nimbu1 (Adium@60.241.8.154) (Ping timeout)
  199. # [21:23] * Joins: nimbu (Adium@220.244.185.73)
  200. # [21:34] * sylvaing_away is now known as sylvaing
  201. # [21:52] * Quits: danielfilho (danielfilh@187.31.77.7) (Quit: </html>)
  202. # [21:52] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  203. # [21:52] * Joins: nimbu (Adium@27.32.173.220)
  204. # [21:56] * Joins: drublic (drublic@77.2.137.227)
  205. # [22:02] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  206. # [22:02] * Joins: nimbu (Adium@220.244.185.73)
  207. # [22:11] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  208. # [22:12] * Joins: nimbu (Adium@27.32.173.220)
  209. # [22:19] <TabAtkins_> heycam|away: The Applies To line is informative only - it just gives a hint about the kinds of elements that the property has an effect on.
  210. # [22:21] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  211. # [22:21] * Joins: nimbu (Adium@220.244.185.73)
  212. # [22:23] * Quits: Liam (liam@128.30.52.169) (Ping timeout)
  213. # [22:33] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  214. # [22:33] * Joins: nimbu (Adium@27.32.173.220)
  215. # [22:38] <fantasai> TabAtkins_, heycam|away: The Applies-to line is normative. http://www.w3.org/TR/CSS21/about.html#applies-to
  216. # [22:38] <TabAtkins_> That section has no normative text. ^_^
  217. # [22:38] <fantasai> It defines which parts of the propdef tables are normative and informative
  218. # [22:38] <fantasai> and 1.4 is indeed normative
  219. # [22:40] <tantek> Perhaps it should read "MUST apply to:" :P
  220. # [22:41] <fantasai> it's also MUST NOT apply to things not listed there..
  221. # [22:41] <tantek> fantasai - I think historically we've treated such experimentation as within the realm of browser innovation
  222. # [22:41] <tantek> sometimes browsers will figure out how to make a feature apply to more types of elements
  223. # [22:42] <tantek> whereas the spec in question only requires that it apply to *some*
  224. # [22:42] <fantasai> while working on 2.1, we tighted up a lot of that
  225. # [22:42] <fantasai> and in areas where the UA was allowed to do more, we said so explicitly
  226. # [22:42] * Quits: nimbu (Adium@27.32.173.220) (Ping timeout)
  227. # [22:42] <fantasai> e.g. page-break
  228. # [22:42] <tantek> over time as more browsers expand beyond the required apply to, we can expand the spec accordingly
  229. # [22:42] * Joins: nimbu (Adium@60.241.8.154)
  230. # [22:42] <tantek> ok, so now a property must say explicitly whether a UA may do more?
  231. # [22:42] <fantasai> generally, if it doesn't make sense to apply the property to an element, it's not allowed
  232. # [22:42] <fantasai> yes
  233. # [22:43] <fantasai> otherwise, it's allowed
  234. # [22:43] <tantek> hmm
  235. # [22:43] <tantek> I'd rather err on the other side
  236. # [22:43] <fantasai> clip would be a lot more useful if your interpretation was the case ^_^
  237. # [22:43] <tantek> that is, expliclty require putting MUST NOT
  238. # [22:43] <tantek> rather than explicitly require putting in MAY
  239. # [22:44] <tantek> reasoning: adding MUST NOT actually adds a conformance requirement, whereas saying "MAY" does not
  240. # [22:44] <fantasai> ???
  241. # [22:44] <tantek> so if a property MAY apply beyond what the spec says, just don't say anything, that's the default
  242. # [22:44] <tantek> but if a property MUST NOT apply beyond what the spec says, than explicitly say so, on the apply to line.
  243. # [22:45] <tantek> clip was a syntax problem, not an applies to problem
  244. # [22:47] <fantasai> tantek: http://www.w3.org/TR/CSS21/visufx.html#clipping "Applies to: absolutely positioned elements"
  245. # [22:47] * Quits: kennyluck (kennyluck@114.43.114.125) (Ping timeout)
  246. # [22:47] <fantasai> and yes, the syntax is awful too, but that's not really want makes it so useless
  247. # [22:48] * Joins: myakura (myakura@122.130.129.42)
  248. # [22:48] * Joins: Liam (liam@128.30.52.169)
  249. # [22:51] * Quits: myakura (myakura@122.130.129.42) (Ping timeout)
  250. # [22:51] <tantek> when we last discussed 'clip' seriously IIRC it was at a f2f at Microsoft SVC - and there's an infamous line about Chris Lilley running screaming from the room (I think it got minuted)
  251. # [22:51] <tantek> and scope wasn't the issue blocking us
  252. # [22:51] <tantek> it was both syntax
  253. # [22:51] <tantek> and interpretation of whether bottom and right values were relative to top/left or bottom/right
  254. # [22:52] * Quits: nimbu (Adium@60.241.8.154) (Ping timeout)
  255. # [22:52] * Joins: nimbu (Adium@27.32.173.105)
  256. # [22:52] <tantek> anyway - you're arguing a counterfactual which isn't particularly useful
  257. # [22:52] <tantek> on the contrary here is a positive example
  258. # [22:52] <tantek> applies to scope-expansion is how we got white-space to apply to inline elements
  259. # [22:52] <tantek> CSS1 said it applied to only to "block level" elements
  260. # [22:53] <tantek> someone slipped in a test case in the CSS1 test suite that tested it on an inline element
  261. # [22:53] <tantek> browsers seemingly were able to interoperably implement it
  262. # [22:53] <tantek> we expanded the spec accordingly
  263. # [22:53] <tantek> (despite Bert saying it was never his intent that white-space could apply to inline elements)
  264. # [23:00] * Joins: nimbu1 (Adium@60.241.8.154)
  265. # [23:00] * Quits: nimbu (Adium@27.32.173.105) (Connection reset by peer)
  266. # [23:00] * Joins: kennyluck (kennyluck@114.25.240.46)
  267. # [23:12] * Quits: nimbu1 (Adium@60.241.8.154) (Ping timeout)
  268. # [23:12] * Joins: nimbu (Adium@220.244.185.73)
  269. # [23:22] * Quits: nimbu (Adium@220.244.185.73) (Ping timeout)
  270. # [23:22] * Joins: nimbu (Adium@27.32.173.105)
  271. # [23:26] * Quits: Ms2ger` (Ms2ger@91.181.125.136) (Quit: nn)
  272. # [23:30] * Joins: nimbu1 (Adium@60.241.8.154)
  273. # [23:30] * Quits: nimbu (Adium@27.32.173.105) (Connection reset by peer)
  274. # [23:41] * Quits: nimbu1 (Adium@60.241.8.154) (Ping timeout)
  275. # [23:41] * Joins: nimbu (Adium@27.32.173.105)
  276. # [23:51] * Joins: nimbu1 (Adium@220.244.185.73)
  277. # [23:51] * Quits: nimbu (Adium@27.32.173.105) (Connection reset by peer)
  278. # Session Close: Wed May 23 00:00:00 2012

The end :)