<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AEquipment</id>
	<title>Module:Equipment - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AEquipment"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Equipment&amp;action=history"/>
	<updated>2026-06-15T13:37:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Equipment&amp;diff=34159&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-- &lt;pre&gt;Sandbox for testing stuff. Infoked by User:Joeytje50/Module -- Current module being tested: Module:Equipment  local p = {}  local hasc = require(&#039;Module:Paramtest&#039;).has_content local itemstats = require(&#039;Module:FetchItemStats&#039;) local yesno = require(&#039;Module:Yesno&#039;) local lang = mw.language.getContentLanguage() local GEPrice = require(&#039;Module:Exchange&#039;)._price  -- Parse item string and check if GIF icons are allowed local function parseItem(ret, itemString, eq...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Equipment&amp;diff=34159&amp;oldid=prev"/>
		<updated>2024-10-15T23:03:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;pre&amp;gt;Sandbox for testing stuff. Infoked by &lt;a href=&quot;/index.php?title=User:Joeytje50/Module&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Joeytje50/Module (page does not exist)&quot;&gt;User:Joeytje50/Module&lt;/a&gt; -- Current module being tested: Module:Equipment  local p = {}  local hasc = require(&amp;#039;Module:Paramtest&amp;#039;).has_content local itemstats = require(&amp;#039;Module:FetchItemStats&amp;#039;) local yesno = require(&amp;#039;Module:Yesno&amp;#039;) local lang = mw.language.getContentLanguage() local GEPrice = require(&amp;#039;Module:Exchange&amp;#039;)._price  -- Parse item string and check if GIF icons are allowed local function parseItem(ret, itemString, eq...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;pre&amp;gt;Sandbox for testing stuff. Infoked by [[User:Joeytje50/Module]]&lt;br /&gt;
-- Current module being tested: Module:Equipment&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local hasc = require(&amp;#039;Module:Paramtest&amp;#039;).has_content&lt;br /&gt;
local itemstats = require(&amp;#039;Module:FetchItemStats&amp;#039;)&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
local GEPrice = require(&amp;#039;Module:Exchange&amp;#039;)._price&lt;br /&gt;
&lt;br /&gt;
-- Parse item string and check if GIF icons are allowed&lt;br /&gt;
local function parseItem(ret, itemString, equipSlot, stats, quantity)&lt;br /&gt;
    local itemString = itemString&lt;br /&gt;
    local allowGif = false&lt;br /&gt;
    local itemName = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Look for a ;g at the end of the string and separate them&lt;br /&gt;
    if hasc(itemString) then&lt;br /&gt;
        allowGif = itemString:sub(-2) == &amp;quot;;g&amp;quot;&lt;br /&gt;
        if allowGif then&lt;br /&gt;
        	itemName = itemString:sub(0, -3)&lt;br /&gt;
        else&lt;br /&gt;
        	itemName = itemString or &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return ret, itemName, allowGif, equipSlot, stats, quantity&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- formats a number to thousands/millions&lt;br /&gt;
function formatAmount(_x)&lt;br /&gt;
    local x = tonumber(_x) or 1&lt;br /&gt;
    if x &amp;lt; 100000 then&lt;br /&gt;
        return x, &amp;#039;qty-1&amp;#039;&lt;br /&gt;
    elseif x &amp;lt; 10000000 then&lt;br /&gt;
        return tostring(math.floor(x/1000))..&amp;#039;K&amp;#039;, &amp;#039;qty-100k&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        return tostring(math.floor(x/1000000))..&amp;#039;M&amp;#039;, &amp;#039;qty-10m&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Formats a &amp;lt;div&amp;gt; element for items&lt;br /&gt;
local function makeDiv(ret, itemName, allowGif, equipSlot, stats, quantity)&lt;br /&gt;
    local itemName = itemName&lt;br /&gt;
    local allowGif = allowGif&lt;br /&gt;
    local topDivClass = &amp;quot;equipment-&amp;quot; .. equipSlot&lt;br /&gt;
&lt;br /&gt;
	local names = mw.text.split(itemName, &amp;quot;;&amp;quot;)&lt;br /&gt;
	if #names &amp;lt;= 1 or names[2] == &amp;#039;g&amp;#039; then&lt;br /&gt;
		names[2] = itemstats.defaultVersion(names[1]) or names[1]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local imgType = allowGif == true and &amp;quot;gif&amp;quot; or &amp;quot;png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Use proper item icon/link and background, if item is present or not&lt;br /&gt;
    if itemName == &amp;#039;&amp;#039; then&lt;br /&gt;
        equipSlotText = &amp;quot;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        equipSlotText = string.format(&amp;quot;[[File:%s.%s|link=%s]]&amp;quot;, names[1], imgType, names[2])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Create the divs&lt;br /&gt;
    local topDiv = ret&lt;br /&gt;
        :tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
        :addClass(topDivClass)&lt;br /&gt;
&lt;br /&gt;
    local nestedDiv = topDiv&lt;br /&gt;
        :tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
        :addClass(&amp;quot;equipment-plinkp&amp;quot;)&lt;br /&gt;
        :wikitext(equipSlotText)&lt;br /&gt;
&lt;br /&gt;
    if quantity then&lt;br /&gt;
    	local amt, quantclass = formatAmount(quantity)&lt;br /&gt;
	    nestedDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
	    		:addClass(&amp;#039;inv-quantity-text&amp;#039;)&lt;br /&gt;
	    		:addClass(quantclass)&lt;br /&gt;
	    		:wikitext(amt)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    if stats and itemName ~= &amp;#039;&amp;#039; then&lt;br /&gt;
	    local GEP = GEPrice(names[1], nil, nil, nil, -1)&lt;br /&gt;
    	local value = itemstats.value(names[2])&lt;br /&gt;
    	local name = names[1]&lt;br /&gt;
    	if allowGif then&lt;br /&gt;
    		-- restore ;g flag in order to be able to show a gif in the IKOD interface&lt;br /&gt;
    		name = name .. &amp;#039;;g&amp;#039;&lt;br /&gt;
    	end&lt;br /&gt;
		if GEP == -1 then&lt;br /&gt;
			table.insert(stats.ikods, {name, value})&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(stats.ikods, {name, GEP})&lt;br /&gt;
		end&lt;br /&gt;
        local statstr = &amp;#039;&amp;#039;&lt;br /&gt;
        local statstbl = itemstats.equipmentStats({names[2]})[1]&lt;br /&gt;
        for stat, bonus in pairs(stats) do&lt;br /&gt;
        	if not statstbl then&lt;br /&gt;
        		-- do nothing, this item doesn&amp;#039;t seem to exist&lt;br /&gt;
        	elseif statstbl[stat] then&lt;br /&gt;
	        	-- Note: technically not 100% true since two types of ammo don&amp;#039;t combine to increase rstr&lt;br /&gt;
	        	-- but things like craw&amp;#039;s bow or hvy ballista also give rstr in the weapon slot so this is&lt;br /&gt;
	        	-- not trivial to correct for. Just doing it this way works for almost all legit situations.&lt;br /&gt;
	        	stats[stat] = bonus + tonumber(statstbl[stat])&lt;br /&gt;
	        	if statstr == &amp;#039;&amp;#039; then&lt;br /&gt;
	        		statstr = bonus&lt;br /&gt;
	        	else&lt;br /&gt;
	        		statstr = statstr .. &amp;#039;,&amp;#039; .. bonus&lt;br /&gt;
	        	end&lt;br /&gt;
	        elseif stat ~= &amp;quot;ikods&amp;quot; then&lt;br /&gt;
	        	mw.log(&amp;#039;Not found: &amp;#039;, itemName, equipSlot, stat)&lt;br /&gt;
	        	mw.logObject(statstbl)&lt;br /&gt;
	        end&lt;br /&gt;
        end&lt;br /&gt;
        nestedDiv:attr(&amp;quot;data-gemw&amp;quot;, GEP)&lt;br /&gt;
        	:attr(&amp;quot;data-value&amp;quot;, value)&lt;br /&gt;
        	:attr(&amp;quot;data-bonuses&amp;quot;, statstr)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if itemName ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        topDiv:addClass(&amp;quot;equipment-blank&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function statsdata(ret, txt, val)&lt;br /&gt;
	if val &amp;gt;= 0 then&lt;br /&gt;
		if txt == &amp;quot;Magic damage&amp;quot; then&lt;br /&gt;
			val = string.format(&amp;quot;: +%.1f%%&amp;quot;, val)&lt;br /&gt;
		elseif string.find(txt, &amp;quot;Weight&amp;quot;) then&lt;br /&gt;
			val = string.format(&amp;quot; %.1f kg&amp;quot;, val)&lt;br /&gt;
		else&lt;br /&gt;
			val = &amp;quot;: +&amp;quot;..tostring(val)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		val = &amp;quot;: &amp;quot;..tostring(val)&lt;br /&gt;
	end&lt;br /&gt;
	ret:tag(&amp;#039;data&amp;#039;):wikitext(txt..val):attr(&amp;#039;value&amp;#039;, val)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function statslist(ret, stats)&lt;br /&gt;
	local td = ret:tag(&amp;quot;td&amp;quot;):addClass(&amp;quot;equipment-stats&amp;quot;):tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
	td:tag(&amp;quot;b&amp;quot;):wikitext(&amp;quot;Attack bonus&amp;quot;)&lt;br /&gt;
	statsdata(td, &amp;#039;Stab&amp;#039;, stats[&amp;#039;astab&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Slash&amp;#039;, stats[&amp;#039;aslash&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Crush&amp;#039;, stats[&amp;#039;acrush&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Magic&amp;#039;, stats[&amp;#039;amagic&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Range&amp;#039;, stats[&amp;#039;arange&amp;#039;])&lt;br /&gt;
	td:tag(&amp;#039;b&amp;#039;):wikitext(&amp;quot;Defence bonus&amp;quot;)&lt;br /&gt;
	statsdata(td, &amp;#039;Stab&amp;#039;, stats[&amp;#039;dstab&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Slash&amp;#039;, stats[&amp;#039;dslash&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Crush&amp;#039;, stats[&amp;#039;dcrush&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Magic&amp;#039;, stats[&amp;#039;dmagic&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Range&amp;#039;, stats[&amp;#039;drange&amp;#039;])&lt;br /&gt;
	td:tag(&amp;#039;b&amp;#039;):wikitext(&amp;quot;Other bonuses&amp;quot;)&lt;br /&gt;
	statsdata(td, &amp;#039;Melee strength&amp;#039;, stats[&amp;#039;str&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Ranged strength&amp;#039;, stats[&amp;#039;rstr&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Magic damage&amp;#039;, stats[&amp;#039;mdmg&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;Prayer&amp;#039;, stats[&amp;#039;prayer&amp;#039;])&lt;br /&gt;
	statsdata(td, &amp;#039;[[File:Weight icon.png|link=]]&amp;#039;, stats[&amp;#039;weight&amp;#039;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function ikod(ret, stats)&lt;br /&gt;
	table.sort(stats.ikods, function(left, right)&lt;br /&gt;
		return left[2] &amp;gt; right[2]&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	local risk = 0&lt;br /&gt;
	local smite = 0&lt;br /&gt;
	-- hidden td by default; will be shown when the IKOD button is pressed.&lt;br /&gt;
	local td = ret:tag(&amp;quot;td&amp;quot;):addClass(&amp;quot;equipment-ikod&amp;quot;):css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;):tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
	td:tag(&amp;quot;em&amp;quot;):wikitext(&amp;quot;Items &amp;lt;b&amp;gt;KEPT&amp;lt;/b&amp;gt; if not &amp;lt;strong&amp;gt;SKULLED&amp;lt;/strong&amp;gt;:&amp;quot;)&lt;br /&gt;
	local ul = td:tag(&amp;quot;ul&amp;quot;)&lt;br /&gt;
	for i, ikod in pairs(stats.ikods) do&lt;br /&gt;
		if i &amp;gt; 4 then&lt;br /&gt;
			-- Finish previous &amp;lt;ul&amp;gt; and insert a header that items will be lost.&lt;br /&gt;
		end&lt;br /&gt;
		it = ikod[1]&lt;br /&gt;
		val = ikod[2]&lt;br /&gt;
		local ftype = &amp;#039;png&amp;#039;&lt;br /&gt;
		if it:sub(-2) == &amp;#039;;g&amp;#039; then&lt;br /&gt;
			ftype = &amp;#039;gif&amp;#039;&lt;br /&gt;
			it = it:sub(0, -3)&lt;br /&gt;
		end&lt;br /&gt;
		if i == 4 then&lt;br /&gt;
			-- 4th item is only kept with protect item; create new header&lt;br /&gt;
			td:tag(&amp;quot;hr&amp;quot;)&lt;br /&gt;
			td:tag(&amp;quot;em&amp;quot;):wikitext(&amp;quot;Items &amp;lt;b&amp;gt;KEPT&amp;lt;/b&amp;gt; if using &amp;lt;b&amp;gt;[[Protect Item|PROTECT ITEM]]&amp;lt;/b&amp;gt;:&amp;quot;)&lt;br /&gt;
			ul = td:tag(&amp;quot;ul&amp;quot;)&lt;br /&gt;
			ul:tag(&amp;quot;li&amp;quot;):wikitext(string.format(&amp;quot;[[File:%s.%s|link=|Kept-on-death value: %s]]&amp;quot;, it, ftype, lang:formatNum(val)))&lt;br /&gt;
			smite = smite + tonumber(val)&lt;br /&gt;
			-- the rest of the items will be lost regardless; create a new header for that&lt;br /&gt;
			td:tag(&amp;quot;hr&amp;quot;)&lt;br /&gt;
			td:tag(&amp;quot;em&amp;quot;):wikitext(&amp;quot;Items sent to your &amp;lt;b&amp;gt;GRAVESTONE&amp;lt;/b&amp;gt; or &amp;lt;strong&amp;gt;LOST&amp;lt;/strong&amp;gt; to the player who killed you:&amp;quot;)&lt;br /&gt;
			-- change currently active ul to a new one&lt;br /&gt;
			ul = td:tag(&amp;quot;ul&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			ul:tag(&amp;quot;li&amp;quot;):wikitext(string.format(&amp;quot;[[File:%s.%s|link=|Kept-on-death value: %s]]&amp;quot;, it, ftype, lang:formatNum(val)))&lt;br /&gt;
			if i &amp;gt; 4 then&lt;br /&gt;
				risk = risk + tonumber(val)&lt;br /&gt;
				smite = smite + tonumber(val)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	-- add an informative notice at the end&lt;br /&gt;
	td:tag(&amp;quot;hr&amp;quot;)&lt;br /&gt;
	td:tag(&amp;quot;em&amp;quot;):wikitext(&amp;quot;Data in this list is based purely on exchange or item value. &amp;quot; ..&lt;br /&gt;
		&amp;quot;See &amp;lt;b&amp;gt;[[Items Kept on Death]]&amp;lt;/b&amp;gt; for info. &amp;quot; ..&lt;br /&gt;
		&amp;quot;The interface and items kept on death may vary in-game; [[RuneScape:General disclaimer|general disclaimer]]s apply.&amp;quot;)&lt;br /&gt;
	return risk, smite&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local buttons = yesno(args.buttons, false)&lt;br /&gt;
    local stats = yesno(args.stats, false)&lt;br /&gt;
&lt;br /&gt;
    local align&lt;br /&gt;
    if args.align == &amp;quot;right&amp;quot; then&lt;br /&gt;
        align = &amp;quot;equipment-right&amp;quot;&lt;br /&gt;
    elseif args.align == &amp;quot;center&amp;quot; then&lt;br /&gt;
        align = &amp;quot;equipment-center&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        align = &amp;quot;equipment-left&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    -- general &amp;#039;equipment&amp;#039; class for the whole thing&lt;br /&gt;
    align = &amp;quot;equipment &amp;quot; .. align&lt;br /&gt;
&lt;br /&gt;
	local tbl = mw.html.create(&amp;quot;table&amp;quot;):addClass(align):tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	local ret = tbl:tag(&amp;quot;td&amp;quot;):tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
	if stats then&lt;br /&gt;
		stats = {&lt;br /&gt;
			astab = 0,&lt;br /&gt;
			aslash = 0,&lt;br /&gt;
			acrush = 0,&lt;br /&gt;
			amagic = 0,&lt;br /&gt;
			arange = 0,&lt;br /&gt;
			dstab = 0,&lt;br /&gt;
			dslash = 0,&lt;br /&gt;
			dcrush = 0,&lt;br /&gt;
			dmagic = 0,&lt;br /&gt;
			drange = 0,&lt;br /&gt;
			str = 0,&lt;br /&gt;
			rstr = 0,&lt;br /&gt;
			mdmg = 0,&lt;br /&gt;
			prayer = 0,&lt;br /&gt;
			weight = 0,&lt;br /&gt;
			ikods = {},&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    if buttons then&lt;br /&gt;
        ret:addClass(&amp;quot;equipment-div-buttons&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
        ret:addClass(&amp;quot;equipment-div&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Fetch equipment and create divs&lt;br /&gt;
    makeDiv(parseItem(ret, args.head, &amp;quot;head&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.cape, &amp;quot;cape&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.neck, &amp;quot;neck&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.ammo, &amp;quot;ammo&amp;quot;, stats, args.ammoquantity))&lt;br /&gt;
    makeDiv(parseItem(ret, args.ammo2, &amp;quot;ammo2&amp;quot;, stats, args.ammo2quantity))&lt;br /&gt;
    makeDiv(parseItem(ret, args.weapon, &amp;quot;weapon&amp;quot;, stats, args.weaponquantity))&lt;br /&gt;
    makeDiv(parseItem(ret, args.torso, &amp;quot;torso&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.shield, &amp;quot;shield&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.legs, &amp;quot;legs&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.gloves, &amp;quot;gloves&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.boots, &amp;quot;boots&amp;quot;, stats))&lt;br /&gt;
    makeDiv(parseItem(ret, args.ring, &amp;quot;ring&amp;quot;, stats))&lt;br /&gt;
	&lt;br /&gt;
	if stats then&lt;br /&gt;
		statslist(tbl, stats)&lt;br /&gt;
		if buttons then&lt;br /&gt;
			-- without buttons there is no way to switch to IKOD&lt;br /&gt;
			-- possible future feature: `if buttons or yesno(args.ikod, false)` for this if-statement&lt;br /&gt;
			local risk, smite = ikod(tbl, stats)&lt;br /&gt;
			ret:tag(&amp;#039;div&amp;#039;):addClass(&amp;quot;equipment-statsbutton&amp;quot;)&lt;br /&gt;
			ret:node(string.format(&amp;#039;&amp;lt;div class=&amp;quot;equipment-ikodbutton&amp;quot; title=&amp;quot;Risked value: %s&amp;amp;#10;When smited: %s&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;, lang:formatNum(risk), lang:formatNum(smite)))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tbl:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>