 local pu800 returns theu800 expiry ofu800 au800 restriction ofu800 anu800 action onu800 au800 given title oru800 unknown ifu800 itu800 cannot beu800 known. ifu800 nou800 title isu800 specified theu800 title ofu800 theu800 page being displayed isu800 used. function pu800u82e_main action pagename local title ifu800 type pagename 'table' andu800 pagenameu82eprefixedtext then title pagename elseif pagename then title mwu800u82etitleu82enewu800 pagename else title mwu800u82etitleu82egetcurrenttitle endu800 pagename titleu82eprefixedtext ifu800 action 'autoreview' then local stabilitysettings mwu800u82eextu800u82eflaggedrevsu82egetstabilitysettings title return stabilitysettings andu800 stabilitysettingsu82eexpiry oru800 'unknown' elseif action 'edit' andu800 action 'move' andu800 action 'create' andu800 action 'upload' then error 'first parameter must beu800 oneu800 ofu800 edit move create upload autoreview' 2u800 endu800 local rawexpiry mwu800u82egetcurrentframe callparserfunction 'protectionexpiry' action pagename ifu800 rawexpiry 'infinity' then return 'infinity' elseif rawexpiry   then return 'unknown' else local year month dayu800 hour minute second rawexpiry match ' du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 ' ifu800 year then return stringu82eformat ' su800 su800 stu800 su800 su800 su800' year month dayu800 hour minute second else error 'internal error inu800 module effective protection expiry; malformed expiry timestamp' endu800 endu800 endu800 setmetatable pu800 __index function tu800 ku800 return function frame return tu800u82e_main ku800 frameu82eargs 1u800 endu800 endu800 return pu800 