<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Angel's Blog</title>
		<link>https://angelcool.net/sphpblog/blog_index.php</link>
		<description><![CDATA[No Footer]]></description>
		<copyright>Copyright 2026, Angel</copyright>
		<managingEditor>Angel</managingEditor>
		<language>en-US</language>
		<generator>SPHPBLOG 0.7.0</generator>
		<item>
			<title>HTML 5: Drawing an image from a data URL to a canvas </title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry150410-183205</link>
			<description><![CDATA[<a href="http://jsfiddle.net/m4msmtdk/9/" >http://jsfiddle.net/m4msmtdk/9/</a><br /><br />if it&#039;s not fun why do it ? -ben &amp; jerry ice cream<br /><pre><br /><br />&lt;canvas id=&quot;myCanvasNotYours&quot;&gt;&lt;/canvas&gt;<br /><br />&lt;script&gt;<br /><br />var myCanvas = document.getElementById(&#039;myCanvasNotYours&#039;);<br />var ctx = myCanvas.getContext(&#039;2d&#039;);<br />var img = new Image;<br />img.onload = function(){<br />  //alert(img.width);<br />  myCanvas.width = img.width<br />  myCanvas.height = img.height<br />  ctx.drawImage(img,0,-20); // Or at whatever offset you like<br />};<br />img.src = &#039;data:image/png;base64,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&#039;;<br /><br />&lt;/script&gt;</pre>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry150410-183205</guid>
			<author>Angel</author>
			<pubDate>Fri, 10 Apr 2015 18:32:05 GMT</pubDate>
		</item>
		<item>
			<title>JS cookies for everyone!!</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry140711-115018</link>
			<description><![CDATA[Javascript functions for cookies 2.0<br /><br /><pre><br />var cookie = {<br />	put: function(name, value, expire) {<br />		var expires = &quot;&quot;;<br /><br />		if (expire) {<br />			var date = new Date();<br />			date.setTime(date.getTime() + (expire * 24 * 60 * 60 * 1000));<br />			expires = &quot;; expires=&quot; + date.toGMTString();<br />		}<br /><br />		document.cookie = name +&quot;=&quot;+ value + expires + &quot;; path=/&quot;;<br />	},<br /><br />	get: function(name) {<br />		var nameEQ = name + &quot;=&quot;;<br />		var ca = document.cookie.split(&#039;;&#039;);<br /><br />		for(var j=0; j &lt; ca.length; j++) {<br />			var c = ca[j];<br /><br />			while (c.charAt(0) == &#039; &#039;)<br />				c = c.substring(1,c.length);<br /><br />			if (c.indexOf(nameEQ) == 0)<br />				return c.substring(nameEQ.length,c.length);<br />		}<br /><br />		return null;<br />	},<br /><br />	delete: function(name) {<br />		this.put(name, &#039;&#039;, -1);<br />	}<br />};<br /><br /></pre>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry140711-115018</guid>
			<author>Angel</author>
			<pubDate>Fri, 11 Jul 2014 18:50:18 GMT</pubDate>
		</item>
		<item>
			<title>Slicing a Javascript array.</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry140404-154725</link>
			<description><![CDATA[<pre>array=[&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;,&#039;g&#039;,&#039;h&#039;,&#039;i&#039;,&#039;j&#039;,&#039;k&#039;,&#039;l&#039;,&#039;m&#039;,&#039;n&#039;,&#039;o&#039;,&#039;p&#039;,&#039;q&#039;,&#039;r&#039;];<br />console.log(array.slice(0,3));<br />console.log(array.slice(3,6));<br />console.log(array.slice(6,9));<br />console.log(array.slice(9,12));</pre><br />The above outputs:<br /><pre>[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]<br />[&quot;d&quot;, &quot;e&quot;, &quot;f&quot;]<br />[&quot;g&quot;, &quot;h&quot;, &quot;i&quot;]<br />[&quot;j&quot;, &quot;k&quot;, &quot;l&quot;] </pre><br /><br />Same output with PHP:<br /><pre>$input = array(&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;,&#039;g&#039;,&#039;h&#039;,&#039;i&#039;,&#039;j&#039;,&#039;k&#039;,&#039;l&#039;,&#039;m&#039;,&#039;n&#039;,&#039;o&#039;,&#039;p&#039;,&#039;q&#039;,&#039;r&#039;);<br />print_r(array_slice($input,0,3));<br />print_r(array_slice($input,3,3));<br />print_r(array_slice($input,6,3));<br />print_r(array_slice($input,9,3));<br /><br />//output<br /><br />Array<br />(<br />    [0] =&gt; a<br />    [1] =&gt; b<br />    [2] =&gt; c<br />)<br />Array<br />(<br />    [0] =&gt; d<br />    [1] =&gt; e<br />    [2] =&gt; f<br />)<br />Array<br />(<br />    [0] =&gt; g<br />    [1] =&gt; h<br />    [2] =&gt; i<br />)<br />Array<br />(<br />    [0] =&gt; j<br />    [1] =&gt; k<br />    [2] =&gt; l<br />)<br /><br /><br /></pre><br /><br />Misc stuff,<br /><br />js:<br /><pre>array=[&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;,&#039;g&#039;,&#039;h&#039;,&#039;i&#039;,&#039;j&#039;,&#039;k&#039;,&#039;l&#039;,&#039;m&#039;,&#039;n&#039;,&#039;o&#039;,&#039;p&#039;,&#039;q&#039;,&#039;r&#039;];<br /><br />var Page=1;//page to display<br />var itemsPage=3;//items per page<br /><br />var totalItems=array.length;<br />var totalPages=Math.ceil(totalItems/itemsPage);<br />var a=(Page-1)*itemsPage;<br />var b=a+itemsPage;<br />console.log(array.slice(a,b));//items</pre><br /><br />js:printing links. TESTED OK!<br /><pre>function coolpaging(item_count, limit, curpage, span)<br />{<br />   let cur_page = Number(curpage);<br />   let page_count = Math.ceil(item_count/limit);<br />   let current_range = [((cur_page-span) &lt; 1 ? 1 : cur_page-span), ((cur_page+span) &gt; page_count ? page_count : cur_page+span)];<br /><br />   // First and Last pages<br />   let first_page = (cur_page &gt; (span+1)) ? &#039;&lt;a href=&quot;&#039; + &#039;1&#039; + &#039;&quot;&gt;1&lt;/a&gt;&#039; + ((cur_page &lt; (span+3) )? &#039;, &#039; : &#039; ... &#039;) : &#039;&#039;;<br />   let last_page = (cur_page &lt; (page_count-span)) ? (cur_page &gt; (page_count-(span+2)) ? &#039;, &#039; : &#039; ... &#039;) + &#039;&lt;a href=&quot;&#039;+ page_count + &#039;&quot;&gt;&#039;+page_count+&#039;&lt;/a&gt;&#039; : &#039;&#039;;<br /><br />   // Previous and next page<br />   let previous_page = (cur_page &gt; 1) ? &#039;&lt;a href=&quot;&#039;+ (cur_page-1)+&#039;&quot;&gt;Previous&lt;/a&gt; | &#039; : &#039;&#039;;<br />   let next_page = (cur_page &lt; page_count) ? &#039; | &lt;a href=&quot;&#039;+ (cur_page+1)+&#039;&quot;&gt;Next&lt;/a&gt;&#039; : &#039;&#039;;<br /><br />   let pages = [];<br /><br />   // Display pages that are in range<br />   for (let x=current_range[0];x &lt;= current_range[1]; ++x)<br />     pages.push(&#039;&lt;a href=&quot;&#039;+ x+&#039;&quot;&gt;&#039;+((x == cur_page) ? &#039;&lt;strong&gt;&#039;+x+&#039;&lt;/strong&gt;&#039; : x)+&#039;&lt;/a&gt;&#039;);<br /><br />   if (page_count &gt; 1)<br />     return &#039;&lt;p class=&quot;entpagination&quot;&gt;&#039;+ previous_page+first_page+ pages.join(&quot;,&quot;)+last_page+next_page+&#039;&lt;/p&gt;&#039;;<br /><br />   return &#039;&#039;;<br />}</pre><br /><br />php:<br /><pre>$array=array(&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;,&#039;g&#039;,&#039;h&#039;,&#039;i&#039;,&#039;j&#039;,&#039;k&#039;,&#039;l&#039;,&#039;m&#039;,&#039;n&#039;,&#039;o&#039;,&#039;p&#039;,&#039;q&#039;,&#039;r&#039;,&#039;s&#039;);<br /><br />$Page=2;//page to display<br />$itemsPage=3;//items per page<br /><br />$totalItems=sizeof($array);<br />$totalPages=ceil($totalItems/$itemsPage);<br />$a=($Page-1)*$itemsPage;<br />var_dump(array_slice($array,$a,$itemsPage));//items<br /><br />//printing links<br />function paginationLinks($item_count, $limit, $cur_page, $link,$span)<br />{<br />       $page_count = ceil($item_count/$limit);<br />       $current_range = array(($cur_page-$span &lt; 1 ? 1 : $cur_page-$span), ($cur_page+$span &gt; $page_count ? $page_count : $cur_page+$span));<br /><br />       // First and Last pages<br />       $first_page = $cur_page &gt; ($span+1) ? &#039;&lt;a href=&quot;&#039;.sprintf($link, &#039;1&#039;).&#039;&quot;&gt;1&lt;/a&gt;&#039;.($cur_page &lt; ($span+3) ? &#039;, &#039; : &#039; ... &#039;) : null;<br />       $last_page = $cur_page &lt; $page_count-$span ? ($cur_page &gt; $page_count-($span+2) ? &#039;, &#039; : &#039; ... &#039;).&#039;&lt;a href=&quot;&#039;.sprintf($link, $page_count).&#039;&quot;&gt;&#039;.$page_count.&#039;&lt;/a&gt;&#039; : null;<br /><br />       // Previous and next page<br />       $previous_page = $cur_page &gt; 1 ? &#039;&lt;a href=&quot;&#039;.sprintf($link, ($cur_page-1)).&#039;&quot;&gt;Previous&lt;/a&gt; | &#039; : null;<br />       $next_page = $cur_page &lt; $page_count ? &#039; | &lt;a href=&quot;&#039;.sprintf($link, ($cur_page+1)).&#039;&quot;&gt;Next&lt;/a&gt;&#039; : null;<br /><br />       // Display pages that are in range<br />       for ($x=$current_range[0];$x &lt;= $current_range[1]; ++$x)<br />               $pages[] = &#039;&lt;a href=&quot;&#039;.sprintf($link, $x).&#039;&quot;&gt;&#039;.($x == $cur_page ? &#039;&lt;strong&gt;&#039;.$x.&#039;&lt;/strong&gt;&#039; : $x).&#039;&lt;/a&gt;&#039;;<br /><br />       if ($page_count &gt; 1)<br />               return &#039;&lt;p class=&quot;pagination&quot;&gt;&lt;strong&gt;Pages:&lt;/strong&gt; &#039;.$previous_page.$first_page.implode(&#039;, &#039;, $pages).$last_page.$next_page.&#039;&lt;/p&gt;&#039;;<br />}<br />echo paginationLinks(<br />   400,//total amount of item/rows/whatever,<br />   10,//limit of items per page<br />   $_GET[&#039;p&#039;],//current page number<br />   &#039;?p=%d&#039;,//url<br />   5//items on each side of current page<br /><br />);<br /><br />//links function:<br />//http://css-tricks.com/snippets/php/pagination-function/<br /></pre><br /><br />paginationLinks function sample output:<br />
<p class="pagination"><strong>Pages:</strong> <a href="?p=33">Previous</a> | <a href="?p=1">1</a> ... <a href="?p=29">29</a>, <a href="?p=30">30</a>, <a href="?p=31">31</a>, <a href="?p=32">32</a>, <a href="?p=33">33</a>, <a href="?p=34"><strong>34</strong></a>, <a href="?p=35">35</a>, <a href="?p=36">36</a>, <a href="?p=37">37</a>, <a href="?p=38">38</a>, <a href="?p=39">39</a>, <a href="?p=40">40</a> | <a href="?p=35">Next</a></p>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry140404-154725</guid>
			<author>Angel</author>
			<pubDate>Fri, 04 Apr 2014 21:47:25 GMT</pubDate>
		</item>
		<item>
			<title>jQuery - Append a Value to an INPUT, keeping it a Comma Delimited list</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry140304-105503</link>
			<description><![CDATA[<pre><br />$(&#039;#attachment-uuids&#039;).val(function(i,val) { <br />     return val + (!val ? &#039;&#039; : &#039;, &#039;) + &#039;66666&#039;;<br />});<br /></pre><br /><br />as of 3/4/2014 :)<br /><a href="http://stackoverflow.com/questions/4339066/jquery-append-a-value-to-a-input-keeping-it-a-comma-delimited-list" >http://stackoverflow.com/questions/4339 ... mited-list</a>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry140304-105503</guid>
			<author>Angel</author>
			<pubDate>Tue, 04 Mar 2014 17:55:03 GMT</pubDate>
		</item>
		<item>
			<title>jQuery: Check if an image succesfully loads</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry131121-140328</link>
			<description><![CDATA[<pre><br />$(function(){<br />  <br />  //prevent image cache<br />  $(&#039;#a_img&#039;).attr(&#039;src&#039;,$(&#039;#a_img&#039;).attr(&#039;src&#039;)+&#039;?rand=&#039;+Math.floor(Math.random()*10000));<br />  <br />  //check for loading errors<br />  $(&#039;#a_img&#039;).load().error(function(){<br />		  <br />	/* Legacy support kicking in */<br />	var LegacyImg=&#039;http://www.example.com/dbimages/tag/h1/img_name.jpeg&#039;;<br />	$(&#039;#a_img&#039;).attr(&#039;src&#039;,LegacyImg);<br />	  <br />  });<br />  <br />})<br /></pre>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry131121-140328</guid>
			<author>Angel</author>
			<pubDate>Thu, 21 Nov 2013 21:03:28 GMT</pubDate>
		</item>
		<item>
			<title>JavaScript :  Functions For Setting and Reading a Cookie</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry130521-075052</link>
			<description><![CDATA[In JavaScript is not as easy to set and read a cookie, as it is in PHP; the functions below ease my day when performing these tasks in JS. Alternatively jQuery can be used.<br /><br />//JS cookie format<br />document.cookie = &quot;name=value; expires=date; path=path;domain=domain; secure&quot;;<br /><br />//date format<br />Based on testing and further reading into this, a date in a UTC/GMT format is required by cookies e.g. Sun, 15 Jul 2012 00:00:01 GMT<br /><br />Therefore any dates in other formats such as 15 Jul 2012, or 15/Jul/2012, or 07/15/2012, have to be passed as a new Date object and then through the toUTCString() or the toGMTString() function.<br /><br /><br />/*Tested by me: OK*****************************************************************/<br />/*<br />   name - name of the cookie<br />   value - value of the cookie<br />   [expires] - expiration date of the cookie<br />     (defaults to end of current session)<br />   [path] - path for which the cookie is valid<br />     (defaults to path of calling document)<br />   [domain] - domain for which the cookie is valid<br />     (defaults to domain of calling document)<br />   [secure] - Boolean value indicating if the cookie transmission requires<br />     a secure transmission<br />   * an argument defaults when it is assigned null as a placeholder<br />   * a null placeholder is not required for trailing omitted arguments<br />*/<br /><br />function setCookie(name, value, expires, path, domain, secure) {<br />  var curCookie = name + &quot;=&quot; + escape(value) +<br />      ((expires) ? &quot;; expires=&quot; + expires.toGMTString() : &quot;&quot;) +<br />      ((path) ? &quot;; path=&quot; + path : &quot;&quot;) +<br />      ((domain) ? &quot;; domain=&quot; + domain : &quot;&quot;) +<br />      ((secure) ? &quot;; secure&quot; : &quot;&quot;);<br />  document.cookie = curCookie;<br />}<br /><br />//SET COOKIE<br />var days=90;<br />var date = new Date();<br />date.setTime(date.getTime()+(days*24*60*60*1000));<br />setCookie(&quot;SignedUp&quot;,&quot;true&quot;,date,&quot;/&quot;);<br /><br /><br />/*Tested by me: OK*****************************************************************/<br />/*<br />  name - name of the desired cookie<br />  return string containing value of specified cookie or null<br />  if cookie does not exist<br />*/<br /><br />function getCookie(name) {<br />  var dc = document.cookie;<br />  var prefix = name + &quot;=&quot;;<br />  var begin = dc.indexOf(&quot;; &quot; + prefix);<br />  if (begin == -1) {<br />    begin = dc.indexOf(prefix);<br />    if (begin != 0) return null;<br />  } else<br />    begin += 2;<br />  var end = document.cookie.indexOf(&quot;;&quot;, begin);<br />  if (end == -1)<br />    end = dc.length;<br />  return unescape(dc.substring(begin + prefix.length, end));<br />}<br /><br />/*****************************************************************/<br />/*<br />   name - name of the cookie<br />   [path] - path of the cookie (must be same as path used to create cookie)<br />   [domain] - domain of the cookie (must be same as domain used to<br />     create cookie)<br />   path and domain default if assigned null or omitted if no explicit<br />     argument proceeds<br />*/<br /><br />function deleteCookie(name, path, domain) {<br />  if (getCookie(name)) {<br />    document.cookie = name + &quot;=&quot; +<br />    ((path) ? &quot;; path=&quot; + path : &quot;&quot;) +<br />    ((domain) ? &quot;; domain=&quot; + domain : &quot;&quot;) +<br />    &quot;; expires=Thu, 01-Jan-70 00:00:01 GMT&quot;;<br />  }<br />}<br /><br />/*****************************************************************/<br />// date - any instance of the Date object<br />// * hand all instances of the Date object to this function for &quot;repairs&quot;<br /><br />function fixDate(date) {<br />  var base = new Date(0);<br />  var skew = base.getTime();<br />  if (skew &gt; 0)<br />    date.setTime(date.getTime() - skew);<br />}<br /><br />See:<br /><a href="http://www.webreference.com/js/column8/functions.html" >http://www.webreference.com/js/column8/functions.html</a><br /><a href="http://www.elated.com/articles/javascript-and-cookies/" >http://www.elated.com/articles/javascript-and-cookies/</a><br /><a href="http://stackoverflow.com/questions/11136372/which-date-formats-can-i-use-when-specifying-the-expiry-date-when-setting-a-cook" >http://stackoverflow.com/questions/1113 ... ing-a-cook</a>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry130521-075052</guid>
			<author>Angel</author>
			<pubDate>Tue, 21 May 2013 14:50:52 GMT</pubDate>
		</item>
		<item>
			<title>Video Streaming vs Progressive Video Download</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry130515-090047</link>
			<description><![CDATA[Streaming is a video delivery method that plays the video file without saving any of the video clip on the viewers machine. This is the most secure delivery method. If you are concerned about your intellectual property, this is the delivery method for you. The downside to streaming is this format is extremely particular about bandwidth. If a user is on a slower connection they may encounter buffering/choppiness issues.<br /><br />Progressive downloading allows the viewer to play the video while the file downloads to their computer. This is how YouTube works. Using this method also allows the user to download the video file to their own machine. This delivery method allows users to pause the video while the video loads; this may be useful if you have viewers on slower connections. <br /><br /><a href="http://ksutube.kent.edu/delivery.php" >http://ksutube.kent.edu/delivery.php</a>]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry130515-090047</guid>
			<author>Angel</author>
			<pubDate>Wed, 15 May 2013 16:00:47 GMT</pubDate>
		</item>
		<item>
			<title>Relative Path vs Full Path (basics 101)</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry130514-091743</link>
			<description><![CDATA[Absolute path contains full name of file including the source, for instance, c:\Windows\Temp\log.txt. Relative path contains only the path relativaly to a certain folder, for instance, relative path of log.txt relativaly to the folder Windows is Temp\log.txt.<br /><br />This also applies to URLs:<br /><br />Full path:<br />dev.ourbiz.net/full/path/to/file.html<br /><br />Relative path:<br />relative/path/to/file.html<br /><br />]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry130514-091743</guid>
			<author>Angel</author>
			<pubDate>Tue, 14 May 2013 16:17:43 GMT</pubDate>
		</item>
		<item>
			<title>Border-Radius property in CSS (Cascading Style Sheets)</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry130419-104844</link>
			<description><![CDATA[/*<br /><br />One of the most keenly-anticipated CSS3 properties is border-radius. Web designers will no longer have to resort to complex table structures using custom-made corner graphics or including arcane JavaScript files in order to produce designs with rounded corners. The border-radius CSS property allows Web authors to define how rounded border corners are. Check browser support.<br /><br />*/<br /><br />&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&lt;style&gt; <br /><br />div<br />{<br /> border-style: solid;<br /> border-width: 2px;<br /> -moz-border-radius: 15px;<br /> -webkit-border-radius: 15px;<br /> border-radius: 15px;<br /><br />}<br /><br />&lt;/style&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br /><br />&lt;div&gt;The border-radius property allows you to add rounded corners to elements.&lt;/div&gt;<br /><br />&lt;/body&gt;<br />&lt;/html&gt;<br /><br />]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry130419-104844</guid>
			<author>Angel</author>
			<pubDate>Fri, 19 Apr 2013 17:48:44 GMT</pubDate>
		</item>
		<item>
			<title>JavaScript OR when assigning value to variable</title>
			<link>https://angelcool.net/sphpblog/blog_index.php?entry=entry120712-152934</link>
			<description><![CDATA[&lt;script type=&quot;text/javascript&quot;&gt;<br /><br />  x=false || &#039;test&#039;;<br />  alert(x);//outputs &#039;test&#039;;<br /><br />&lt;/script&gt;<br /><br />]]></description>
			<category>- Misc. Notes</category>
			<guid isPermaLink="true">https://angelcool.net/sphpblog/blog_index.php?entry=entry120712-152934</guid>
			<author>Angel</author>
			<pubDate>Thu, 12 Jul 2012 22:29:34 GMT</pubDate>
		</item>
	</channel>
</rss>
