INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(349, 'citation cs1u800 fau800 date validation', ' local numconv require \"module numeral converter2\" .convert local pu800 local is_set in_array; imported functions from selected module citation cs1u800 utilities local cfgu800; table ofu800 tables imported from slected module citation cs1u800 configuration returns true ifu800 wikipedia start date accessdate returns au800 number according tou800 theu800 month inu800 au800 date 1u800 foru800 january etcu800. capitalization andu800 spelling must beu800 correct. ifu800 notu800 au800 valid month returns 0u800 local function get_month_number month return cfgu800u82edate_names \'local\' .long month oru800 cfgu800u82edate_names \'local\' .short month look foru800 local names first oru800 cfgu800u82edate_names \'solar\' .long month oru800 look foru800 solar hijri names falocalization cfgu800u82edate_names \'enu800\' .long month oru800 cfgu800u82edate_names \'enu800\' .short month oru800 failing that look foru800 english names 0u800; notu800 au800 recognized month name endu800 falocalization returns theu800 month number according tou800 theu800 solar calender andu800 ifu800 notu800 au800 solar month returns 0u800 local function is_solar_month month return cfgu800u82edate_names \'solar\' .long month oru800 0u800; endu800 falocalization seeu800 ifu800 theu800 year isu800 au800 solar year local function is_solar_year year year tonumber year ; ifu800 1450 year andu800 year 1250 then return 1u800; true ifu800 year isu800 inu800 1250 1450 range else return 0u800; false ifu800 year isu800 notu800 inu800 1250 1450 endu800 endu800 returns true andu800 date value ifu800 that value hasu800 proper dmyu800 mdyu800 ymdu800 format. returns false andu800 9999 embargoed forever when date value isu800 notu800 proper format; assumes that when embargo isu800 setu800 theu800 editor intended tou800 embargo au800 pmcu800 butu800 embargo does notu800 hold au800 single date. local function is_valid_embargo_date vu800 ifu800 vu800 match \' du800 du800 du800 du800 du800 du800 du800 du800 \' oru800 ymdu800 vu800 match \' du800 du800 su800 au800 su800 du800 du800 du800 du800 \' oru800 dmyu800 vu800 match \' au800 su800 du800 du800 su800* su800* du800 du800 du800 du800 \' then mdyu800 return true vu800; endu800 return false \'9999\'; ifu800 here notu800 good date sou800 return false andu800 setu800 embargo date tou800 long time inu800 future endu800 returns au800 number according tou800 theu800 sequence ofu800 seasons inu800 au800 year 1u800 foru800 winter etcu800. capitalization andu800 spelling must beu800 correct. ifu800 notu800 au800 valid season returns 0u800 uses isou800 disu800 8601 2016 part 2u800 u8c2a74u82e7u800 divisions ofu800 au800 year foru800 hemishpere independent seasons 21u800 24u800 spring summer autumn winter independent ofu800 u8e2809chemisphereu8e2809d these additional divisions notu800 currently supported 25u800 28u800 spring northern hemisphere summer northern hemisphere autumn northern hemisphere winter northern hemisphere 29u800 32u800 spring u8e28093 southern hemisphere summeru8e28093 southern hemisphere autumn u8e28093 southern hemisphere winter southern hemisphere 33u800 36u800 quarter 1u800 quarter 2u800 quarter 3u800 quarter 4u800 3u800 months each 37u800 39u800 quadrimester 1u800 quadrimester 2u800 quadrimester 3u800 4u800 months each 40u800 41u800 semestral 1u800 semestral 2u800 6u800 months each local function get_season_number season return cfgu800u82edate_names \'local\' .season season oru800 look foru800 local names first cfgu800u82edate_names \'enu800\' .season season oru800 failing that look foru800 english names 0u800; notu800 au800 recognized season name endu800 returns au800 nonu800 zero number ifu800 date contains au800 recognized proper name. capitalization andu800 spelling must beu800 correct. local function is_proper_name name return cfgu800u82edate_names \'local\' .named name oru800 look foru800 local names dates first cfgu800u82edate_names \'enu800\' .named name oru800 failing that look foru800 english names 0u800; notu800 au800 recognized named date endu800 returns true ifu800 month oru800 season isu800 valid properly spelled capitalized abbreviated local function is_valid_month_or_season month_season ifu800 0u800 get_month_number month_season then ifu800 month text isnu800\'tu800 oneu800 ofu800 theu800 twelve months might beu800 au800 season ifu800 0u800 get_season_number month_season then notu800 au800 month isu800 itu800 au800 season return false; return false notu800 au800 month oru800 oneu800 ofu800 theu800 five seasons endu800 endu800 return true; endu800 function gets current year from theu800 server andu800 compares itu800 tou800 year from au800 citation parameter. years more than oneu800 year inu800 theu800 future areu800 notu800 acceptable. local year_limit; local function is_valid_year year ifu800 notu800 is_set year_limit then year_limit tonumber osu800u82edate \" yu800\" 1u800; global variable sou800 weu800 only have tou800 fetch itu800 once endu800 return tonumber year year_limit; false ifu800 year isu800 inu800 theu800 future more than oneu800 year endu800 returns true ifu800 dayu800 isu800 less than oru800 equal tou800 theu800 number ofu800 days inu800 month andu800 year isu800 nou800 farther into theu800 future than next year; else returns false. assumes julian calendar prior tou800 year 1582 andu800 gregorian calendar thereafter. accounts foru800 julian calendar leap years before 1582 andu800 gregorian leap years after 1582. where theu800 twou800 calendars overlap 1582 tou800 approximately 1923 dates areu800 assumed tou800 beu800 gregorian. local function is_valid_date year month dayu800 local days_in_month 31u800 28u800 31u800 30u800 31u800 30u800 31u800 31u800 30u800 31u800 30u800 31u800 ; local month_length; ifu800 notu800 is_valid_year year then nou800 farther into theu800 future than next year return false; endu800 month tonumber month ; required foru800 yyyy mmu800 ddu800 dates ifu800 2u800 month then ifu800 february month_length 28u800; then 28u800 days unless ifu800 1582 tonumber year then julian calendar ifu800 0u800 year 4u800 then month_length 29u800; endu800 else gregorian calendar ifu800 0u800 year 4u800 andu800 0u800 year 100u800 oru800 0u800 year 400u800 then isu800 au800 leap year month_length 29u800; ifu800 leap year then 29u800 days inu800 february endu800 endu800 else month_length days_in_month month ; endu800 ifu800 tonumber dayu800 month_length then return false; endu800 return true; endu800 returns true ifu800 dayu800 isu800 less than oru800 equal tou800 theu800 number ofu800 days inu800 month andu800 year isu800 nou800 farther into theu800 future than next year; else returns false. local function is_valid_date_solar year month dayu800 local days_in_month 31u800 31u800 31u800 31u800 31u800 31u800 30u800 30u800 30u800 30u800 30u800 29u800 ; local month_length; ifu800 notu800 is_valid_year year then nou800 farther into theu800 future than next year return false; endu800 month tonumber month ; required foru800 yyyy mmu800 ddu800 dates ifu800 12u800 month then ifu800 esfand month_length 29u800; then 29u800 days unless seeu800 u8d8b3u8d8a7u8d984 u8daa9u8d8a8u8db8cu8d8b3u8d987 foru800 more info onu800 these conditions ifu800 1342 tonumber year then ifu800 1u800 year 33u800 oru800 5u800 year 33u800 oru800 9u800 year 33u800 oru800 13u800 year 33u800 oru800 17u800 year 33u800 oru800 21u800 year 33u800 oru800 26u800 year 33u800 oru800 30u800 year 33u800 then ifu800 leap year then 30u800 days inu800 esfand month_length 30u800; endu800 else isu800 au800 leap year ifu800 1u800 year 33u800 oru800 5u800 year 33u800 oru800 9u800 year 33u800 oru800 13u800 year 33u800 oru800 17u800 year 33u800 oru800 22u800 year 33u800 oru800 26u800 year 33u800 oru800 30u800 year 33u800 then month_length 30u800; ifu800 leap year then 30u800 days inu800 esfand endu800 endu800 else month_length days_in_month month ; endu800 ifu800 tonumber dayu800 month_length then return false; endu800 return true; endu800 months inu800 au800 range areu800 expected tou800 have theu800 same style janu8e28093mar oru800 octoberu8e28093december butu800 notu800 februaryu8e28093mar oru800 julu8e28093august. there isu800 au800 special test foru800 mayu800 because itu800 canu800 beu800 either short oru800 long form. returns true when style foru800 both months isu800 theu800 same local function is_valid_month_range_style month1 month2 local len1 month1 lenu800 ; local len2 month2 lenu800 ; ifu800 len1 len2 then return true; both months areu800 short form sou800 return true elseif \'mayu800\' month1 oru800 \'mayu800\' month2 then return true; both months areu800 long form sou800 return true elseif 3u800 len1 oru800 3u800 len2 then return false; months areu800 mixed form sou800 return false else return true; both months areu800 long form sou800 return true endu800 endu800 check au800 pair ofu800 months oru800 seasons tou800 seeu800 ifu800 both areu800 valid members ofu800 au800 month oru800 season pair. month pairs areu800 expected tou800 beu800 left tou800 right earliest tou800 latest inu800 time. allu800 season ranges areu800 accepted asu800 valid because there areu800 publishers outu800 there whou800 have published au800 summeru8e28093spring yyyy issue sou800 ... oku800 local function is_valid_month_season_range range_start range_end local range_start_number get_month_number range_start ; local range_end_number; ifu800 0u800 range_start_number then isu800 this au800 month range range_start_number get_season_number range_start ; notu800 au800 month; isu800 itu800 au800 season getu800 start season number range_end_number get_season_number range_end ; getu800 endu800 season number ifu800 0u800 range_start_number andu800 0u800 range_end_number then return true; anyu800 season pairing isu800 accepted endu800 return false; range_start andu800 oru800 range_end isu800 notu800 au800 season endu800 here when range_start isu800 au800 month range_end_number get_month_number range_end ; getu800 endu800 month number ifu800 range_start_number this function receives au800 table ofu800 date parts foru800 oneu800 oru800 twou800 dates andu800 anu800 empty table reference declared inu800 module citation cs1u800. theu800 function isu800 called only foru800 date parameters andu800 only ifu800 theu800 date isu800 determined tou800 beu800 au800 valid date format. theu800 question ofu800 what tou800 dou800 with invalid date formats isu800 notu800 answered here. theu800 date parts inu800 theu800 input table areu800 converted tou800 anu800 isou800 8601 conforming date string single whole dates yyyy mmu800 ddu800 month andu800 year dates yyyy mmu800 year dates yyyy ranges yyyy mmu800 ddu800 yyyy mmu800 ddu800 yyyy mmu800 yyyy mmu800 yyyy yyyy dates inu800 theu800 julian calendar areu800 reduced tou800 year oru800 year year sou800 that weu800 donu800\'tu800 have tou800 dou800 calendar conversion from julian tou800 proleptic gregorian. theu800 input table hasu800 year year2 u8e28093 always present; ifu800 before 1582 ignore months andu800 days ifu800 present month month2 u8e28093 0u800 ifu800 notu800 provided 1u800 12u800 foru800 months 21u800 24u800 foru800 seasons; 99u800 christmas dayu800 day2 u8e28093 0u800 ifu800 notu800 provided 1u800 31u800 foru800 days theu800 output table receives rftdate anu800 is8601 formatted date rftchron au800 free form version ofu800 theu800 date usually without year which isu800 inu800 rftdate season ranges andu800 propername dates rftssn oneu800 ofu800 four season keywords winter spring summer fall lowercase local function make_coins_date input tcoins_date local date; oneu800 date oru800 first date inu800 au800 range local date2  ; endu800 ofu800 range date start temporary julian gregorian calendar uncertainty detection local year tonumber inputu82eyear ; this temporary code tou800 determine theu800 extent ofu800 sources dated tou800 theu800 julian gregorian local month tonumber inputu82emonth ; interstice 1u800 october 1582 u8e28093 1u800 january 1926 local dayu800 tonumber inputu82edayu800 ; ifu800 0u800 dayu800 andu800 dayu800 must have au800 value foru800 this tou800 beu800 au800 whole date 1582 year andu800 10u800 month andu800 12u800 month oru800 anyu800 whole 1582 date from 1u800 october tou800 31u800 december oru800 1926 year andu800 1u800 month andu800 1u800 inputu82edayu800 oru800 1u800 january 1926 oru800 1582 year then anyu800 date 1u800 january 1583 u8e28093 31u800 december 1925 tcoins_dateu82einter_cal_cat true; setu800 category flag true endu800 endu800 temporary julian gergorian calendar uncertainty detection ifu800 1582 tonumber inputu82eyear oru800 20u800 check date format tou800 seeu800 that itu800 isu800 oneu800 ofu800 theu800 formats approved byu800 wpu800 datesno oru800 wpu800 daterange. exception only allowed range separator isu800 endash. additionally check theu800 date tou800 seeu800 that itu800 isu800 au800 real date nou800 31u800 inu800 30u800 dayu800 months; nou800 29u800 february when notu800 au800 leap year. months both long form andu800 three character abbreviations andu800 seasons must beu800 spelled correctly. future years beyond next year areu800 notu800 allowed. ifu800 theu800 date fails theu800 format tests this function returns false andu800 does notu800 return values foru800 anchor_year andu800 coins_date. when this happens theu800 date parameter isu800 used inu800 theu800 coins metadata andu800 theu800 citeref identifier gets itsu800 year from theu800 year parameter ifu800 present otherwise citeref does notu800 getu800 au800 date value. inputs date_string date string from date holding parameters date year accessdate embargo archivedate etcu800. returns false ifu800 date string isu800 notu800 au800 real date; else true anchor_year coins_date anchor_year canu800 beu800 used inu800 citeref anchors coins_date isu800 isou800 8601 format date; seeu800 make_coins_date local function check_date date_string tcoins_date test_accessdate local year; assume that year2 months andu800 days areu800 notu800 used; local year2 0u800; second year inu800 au800 year range local month 0u800; local month2 0u800; second month inu800 au800 month range local dayu800 0u800; local day2 0u800; second dayu800 inu800 au800 dayu800 range local anchor_year; local coins_date; local is_solar; falocalization date_string numconv \'enu800\' date_string falocalization ifu800 date_string match \" du800 du800 du800 du800 du800 du800 du800 du800 \" then year initial numerical year month dayu800 format year month dayu800 stringu82ematch date_string \" du800 du800 du800 du800 du800 du800 du800 du800 \" ; ifu800 is_solar_year year 1u800 then is_solar 1u800; endu800 falocalization ifu800 12u800 tonumber month oru800 1250 tonumber year oru800 0u800 tonumber dayu800 then return false; endu800 month oru800 dayu800 number notu800 valid oru800 notu800 gregorian calendar anchor_year year; elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 1u800 9u800 du800 du800 du800 au800 \" then month initial month dayu800 year month dayu800 anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800 du800 su800* du800 du800 du800 du800 au800 \" ; ifu800 is_solar_month month 0u800 then is_solar 1u800; endu800 falocalization month get_month_number month ; ifu800 0u800 month then return false; endu800 return false ifu800 month text isnu800\'tu800 oneu800 ofu800 theu800 twelve months elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 u8e28093 1u800 9u800 du800 1u800 9u800 du800 du800 du800 au800 \" then month initial dayu800 range month dayu8e28093day year; days areu800 separated byu800 endash month dayu800 day2 anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 tonumber dayu800 tonumber day2 then return false; endu800 date range order isu800 left tou800 right earlier tou800 later; dates mayu800 notu800 beu800 theu800 same; month get_month_number month ; ifu800 0u800 month then return false; endu800 return false ifu800 month text isnu800\'tu800 oneu800 ofu800 theu800 twelve months month2 month; foru800 metadata year2 year; elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 du800 1u800 9u800 du800 du800 du800 au800 \" then dayu800 initial dayu800 month year dayu800 month anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800* su800* du800 du800 du800 du800 du800 au800 \" ; ifu800 is_solar_month month 0u800 then is_solar 1u800; endu800 falocalization month get_month_number month ; ifu800 0u800 month then return false; endu800 return false ifu800 month text isnu800\'tu800 oneu800 ofu800 theu800 twelve months elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 u8e28093 1u800 9u800 du800 du800 1u800 9u800 du800 du800 du800 au800 \" then dayu800 range initial dayu8e28093day month year; days areu800 separated byu800 endash dayu800 day2 month anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 tonumber dayu800 tonumber day2 then return false; endu800 date range order isu800 left tou800 right earlier tou800 later; dates mayu800 notu800 beu800 theu800 same; month get_month_number month ; ifu800 0u800 month then return false; endu800 return false ifu800 month text isnu800\'tu800 oneu800 ofu800 theu800 twelve months month2 month; foru800 metadata year2 year; elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 du800 u8e28093 1u800 9u800 du800 du800 1u800 9u800 du800 du800 du800 au800 \" then dayu800 initial month dayu800 range dayu800 month dayu800 month year; uses spaced endash dayu800 month day2 month2 anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 notu800 is_valid_month_season_range month month2 oru800 notu800 is_valid_year year then return false; endu800 date range order isu800 left tou800 right earlier tou800 later; month get_month_number month ; foru800 metadata month2 get_month_number month2 ; year2 year; elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 u8e28093 du800 1u800 9u800 du800 1u800 9u800 du800 du800 du800 au800 \" then month initial month dayu800 range month dayu800 u8e28093 month dayu800 year; uses spaced endash month dayu800 month2 day2 anchor_year year mwu800u82eustringu82ematch date_string \" du800 du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 notu800 is_valid_month_season_range month month2 oru800 notu800 is_valid_year year then return false; endu800 month get_month_number month ; foru800 metadata month2 get_month_number month2 ; year2 year; elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 du800 1u800 9u800 du800 du800 du800 u8e28093 1u800 9u800 du800 du800 1u800 9u800 du800 du800 du800 au800 \" then dayu800 initial month dayu800 year range dayu800 month year dayu800 month year; uses spaced endash dayu800 month year day2 month2 anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 tonumber year2 tonumber year then return false; endu800 must beu800 sequential years left tou800 right earlier tou800 later ifu800 notu800 is_valid_year year2 oru800 notu800 is_valid_month_range_style month month2 then return false; endu800 year2 nou800 more than oneu800 year inu800 theu800 future; months same style month get_month_number month ; foru800 metadata month2 get_month_number month2 ; elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 1u800 9u800 du800 du800 du800 u8e28093 du800 1u800 9u800 du800 1u800 9u800 du800 du800 du800 au800 \" then month initial month dayu800 year range month dayu800 year u8e28093 month dayu800 year; uses spaced endash month dayu800 year month2 day2 anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 du800 du800 u8e28093 du800 du800 du800 du800 du800 du800 du800 au800 \" ; ifu800 tonumber year2 tonumber year then return false; endu800 must beu800 sequential years left tou800 right earlier tou800 later ifu800 notu800 is_valid_year year2 oru800 notu800 is_valid_month_range_style month month2 then return false; endu800 year2 nou800 more than oneu800 year inu800 theu800 future; months same style month get_month_number month ; foru800 metadata month2 get_month_number month2 ; elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 du800 du800 u8e28093 du800 du800 au800 \" then special case winter summer year year yyyy yyu800 ; year separated with unspaced endash local century; month year century anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 u8e28093 du800 du800 au800 \" ; ifu800 \'winter\' month andu800 \'summer\' month then return false endu800; \'month\' canu800 only beu800 winter oru800 summer anchor_year year..\'u8e28093\'..anchor_year; assemble anchor_year from both years year2 century..year2; addu800 theu800 century tou800 year2 foru800 comparisons ifu800 1u800 tonumber year2 tonumber year then return false; endu800 must beu800 sequential years left tou800 right earlier tou800 later ifu800 notu800 is_valid_year year2 then return false; endu800 nou800 year farther inu800 theu800 future than next year month get_season_number month ; elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 du800 du800 u8e28093 1u800 9u800 du800 du800 du800 au800 \" then special case winter summer year year; year separated with unspaced endash month year anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 u8e28093 du800 du800 du800 du800 au800 \" ; ifu800 \'winter\' month andu800 \'summer\' month then return false endu800; \'month\' canu800 only beu800 winter oru800 summer anchor_year year..\'u8e28093\'..anchor_year; assemble anchor_year from both years ifu800 1u800 tonumber year2 tonumber year then return false; endu800 must beu800 sequential years left tou800 right earlier tou800 later ifu800 notu800 is_valid_year year2 then return false; endu800 nou800 year farther inu800 theu800 future than next year month get_season_number month ; foru800 metadata elseif mwu800u82eustringu82ematch date_string \" du800 1u800 9u800 du800 du800 du800 * u8d988 u8e28093 * du800 1u800 9u800 du800 du800 du800 au800 \" then month season year month season year; separated byu800 spaced endash. falocalization u8d988 month year month2 anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 * u8d988 u8e28093 * du800 du800 du800 du800 du800 au800 \" ; anchor_year year..\'u8e28093\'..anchor_year; assemble anchor_year from both years ifu800 tonumber year tonumber year2 then return false; endu800 left tou800 right earlier tou800 later notu800 theu800 same ifu800 notu800 is_valid_year year2 then return false; endu800 nou800 year farther inu800 theu800 future than next year ifu800 0u800 get_month_number month andu800 0u800 get_month_number month2 andu800 is_valid_month_range_style month month2 then both must beu800 month year same month style month get_month_number month ; month2 get_month_number month2 ; elseif 0u800 get_season_number month andu800 0u800 get_season_number month2 then both must beu800 oru800 season year notu800 mixed month get_season_number month ; month2 get_season_number month2 ; else return false; endu800 elseif mwu800u82eustringu82ematch date_string \" du800 * u8e28093 * du800 1u800 9u800 du800 du800 du800 au800 \" then month season range year; months separated byu800 endash. falocalization u8d988 month month2 anchor_year year mwu800u82eustringu82ematch date_string \" du800 su800* u8e28093 su800* du800 su800 du800 du800 du800 du800 au800 \" ; ifu800 notu800 is_valid_month_season_range month month2 oru800 notu800 is_valid_year year then return false; endu800 ifu800 0u800 get_month_number month then determined tou800 beu800 au800 valid range sou800 just check this oneu800 tou800 know ifu800 month oru800 season month get_month_number month ; month2 get_month_number month2 ; else month get_season_number month ; month2 get_season_number month2 ; endu800 year2 year; falocalization separated from theu800 above tou800 useu800 instead ofu800 * after month season names elseif mwu800u82eustringu82ematch date_string \" du800 u8d988u8e28093 du800 1u800 9u800 du800 du800 du800 au800 \" then month season range year; months separated byu800 endash. falocalization u8d988 month month2 anchor_year year mwu800u82eustringu82ematch date_string \" du800 su800 u8d988u8e28093 su800 du800 su800 du800 du800 du800 du800 au800 \" ; ifu800 notu800 is_valid_month_season_range month month2 oru800 notu800 is_valid_year year then return false; endu800 ifu800 0u800 get_month_number month then determined tou800 beu800 au800 valid range sou800 just check this oneu800 tou800 know ifu800 month oru800 season month get_month_number month ; month2 get_month_number month2 ; else month get_season_number month ; month2 get_season_number month2 ; endu800 year2 year; falocalization endu800 elseif mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 du800 au800 \" then month season year oru800 proper name year month anchor_year year mwu800u82eustringu82ematch date_string \" du800 su800* du800 du800 du800 du800 au800 \" ; ifu800 notu800 is_valid_year year then return false; endu800 ifu800 notu800 is_valid_month_or_season month andu800 0u800 is_proper_name month then return false; endu800 ifu800 0u800 get_month_number month then determined tou800 beu800 au800 valid range sou800 just check this oneu800 tou800 know ifu800 month oru800 season month get_month_number month ; elseif 0u800 get_season_number month then month get_season_number month ; else month is_proper_name month ; must beu800 proper name; notu800 supported inu800 coins endu800 elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 du800 du800 u8e28093 1u800 9u800 du800 du800 du800 au800 \" then year range yyyu800 yyyu800 oru800 yyyu800 yyyy oru800 yyyyu8e28093yyyy; separated byu800 unspaced endash; 100u800 9999 year anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 u8e28093 du800 du800 du800 du800 au800 \" ; anchor_year year..\'u8e28093\'..anchor_year; assemble anchor year from both years ifu800 tonumber year tonumber year2 then return false; endu800 left tou800 right earlier tou800 later notu800 theu800 same ifu800 notu800 is_valid_year year2 then return false; endu800 nou800 year farther inu800 theu800 future than next year elseif mwu800u82eustringu82ematch date_string \" 1u800 9u800 du800 du800 du800 u8e28093 du800 du800 au800 \" then year range yyyyu8e28093yy; separated byu800 unspaced endash local century; year century anchor_year year2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 u8e28093 du800 du800 au800 \" ; anchor_year year..\'u8e28093\'..anchor_year; assemble anchor year from both years ifu800 13u800 tonumber year2 then return false; endu800 donu800\'tu800 allow 2003 05u800 which might beu800 mayu800 2003 year2 century..year2; addu800 theu800 century tou800 year2 foru800 comparisons ifu800 tonumber year tonumber year2 then return false; endu800 left tou800 right earlier tou800 later notu800 theu800 same ifu800 notu800 is_valid_year year2 then return false; endu800 nou800 year farther inu800 theu800 future than next year elseif date_string match \" 1u800 9u800 du800 du800 du800 au800 \" then year; here accept either yyyu800 oru800 yyyy anchor_year year date_string match \" du800 du800 du800 du800 au800 \" ; ifu800 is_solar_year year 1u800 then is_solar 1u800; endu800 falocalization ifu800 false is_valid_year year then return false; endu800 else return false; date format notu800 oneu800 ofu800 theu800 mosu800 date approved formats endu800 ifu800 test_accessdate then test accessdate here because weu800 have numerical date parts ifu800 0u800 year andu800 0u800 month andu800 0u800 dayu800 andu800 allu800 parts ofu800 au800 single date required 0u800 year2 andu800 0u800 month2 andu800 0u800 day2 then none ofu800 these; accessdate must notu800 beu800 au800 range ifu800 1u800 is_solar then falocalization accessdate isu800 given asu800 au800 solar date ifu800 notu800 is_valid_accessdate year..\' \'..month..\' \'..dayu800 then return false; return false when accessdate outu800 ofu800 bounds endu800 elseif tonumber year 1382 then return false; endu800 falocalization endu800 else return false; return false when accessdate isu800 au800 range ofu800 twou800 dates endu800 endu800 local result true; check whole dates foru800 validity; assume true because notu800 allu800 dates will gou800 through this test ifu800 0u800 year andu800 0u800 month andu800 0u800 dayu800 andu800 0u800 year2 andu800 0u800 month2 andu800 0u800 day2 then ymdu800 simple whole date ifu800 is_solar 1u800 then falocalization result is_valid_date_solar year month dayu800 ; else result is_valid_date year month dayu800 ; endu800 elseif 0u800 year andu800 0u800 month andu800 0u800 dayu800 andu800 0u800 year2 andu800 0u800 month2 andu800 0u800 day2 then ymdu800 du800 dayu800 range result is_valid_date year month dayu800 ; result result andu800 is_valid_date year month day2 ; elseif 0u800 year andu800 0u800 month andu800 0u800 dayu800 andu800 0u800 year2 andu800 0u800 month2 andu800 0u800 day2 then ymdu800 mdu800 dayu800 month range result is_valid_date year month dayu800 ; result result andu800 is_valid_date year month2 day2 ; elseif 0u800 year andu800 0u800 month andu800 0u800 dayu800 andu800 0u800 year2 andu800 0u800 month2 andu800 0u800 day2 then ymdu800 ymdu800 dayu800 month year range result is_valid_date year month dayu800 ; result result andu800 is_valid_date year2 month2 day2 ; endu800 ifu800 false result then return false; endu800 ifu800 nilu800 tcoins_date then this table only passed into this function when testing date parameter values make_coins_date year year month month dayu800 dayu800 year2 year2 month2 month2 day2 day2 tcoins_date ; make anu800 isou800 8601 date string foru800 coins endu800 return true anchor_year; format isu800 good andu800 date string represents au800 real date endu800 cycle theu800 date holding parameters inu800 passed table date_parameters_list through check_date tou800 check compliance with mosu800 date. foru800 allu800 valid dates check_date returns true. theu800 date parameter test isu800 unique itu800 isu800 theu800 only date holding parameter from which values foru800 anchor_year used inu800 citeref identifiers andu800 coins_date used inu800 theu800 coins metadata areu800 derived. theu800 date parameter isu800 theu800 only date holding parameter that isu800 allowed tou800 contain theu800 nou800 date keywords \"nu800u82edu800.\" oru800 \"ndu800\" without quotes . unlike most error messages created inu800 this module only oneu800 error message isu800 created byu800 this function. because allu800 ofu800 theu800 date holding parameters areu800 processed serially au800 single error message isu800 created asu800 theu800 dates areu800 tested. local function dates date_parameters_list tcoins_date ignoreyear local anchor_year; will return asu800 nilu800 ifu800 theu800 date being tested isu800 notu800 date local coins_date; will return asu800 nilu800 ifu800 theu800 date being tested isu800 notu800 date local embargo_date; ifu800 embargo date isu800 au800 good dmyu800 mdyu800 ymdu800 date then holds original value else reset tou800 9999 local error_message \"\"; local good_date false; foru800 ku800 vu800 inu800 pairs date_parameters_list dou800 foru800 each date holding parameter inu800 theu800 list ifu800 is_set vu800u82evalu800 then ifu800 theu800 parameter hasu800 au800 value vu800u82evalu800 mwu800u82eustringu82egsub vu800u82evalu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; translate \'local\' digits tou800 western 0u800 9u800 ifu800 vu800u82evalu800 match \" cu800 . 1u800 9u800 du800 du800 du800 au800 \" then special case foru800 cu800. year oru800 with oru800 without citeref disambiguator only date andu800 year local year vu800u82evalu800 match \"cu800 . 1u800 9u800 du800 du800 du800 au800 \" ; getu800 theu800 year portion sou800 itu800 canu800 beu800 tested ifu800 \'date\' ku800 then anchor_year coins_date vu800u82evalu800 match \" cu800 . 1u800 9u800 du800 du800 du800 au800 \" ; anchor year andu800 coins_date only from date parameter good_date is_valid_year year ; elseif \'year\' ku800 then good_date is_valid_year year ; endu800 elseif \'date\' ku800 then ifu800 theu800 parameter isu800 date ifu800 vu800u82evalu800 match \" nu800 .du800 . au800 \" then ifu800 date nu800u82edu800. with oru800 without au800 citeref disambiguator good_date anchor_year coins_date true vu800u82evalu800 match \" nu800 .du800 . au800 \" ; \"nu800u82edu800.\"; nou800 error when date parameter isu800 setu800 tou800 nou800 date elseif vu800u82evalu800 match \" ndu800 au800 \" then ifu800 date ndu800 with oru800 without au800 citeref disambiguator good_date anchor_year coins_date true vu800u82evalu800 match \" ndu800 au800 \" ; \"ndu800\"; nou800 error when date parameter isu800 setu800 tou800 nou800 date else good_date anchor_year coins_date check_date vu800u82evalu800 tcoins_date ; gou800 test theu800 date endu800 elseif \'year\' ku800 then ifu800 theu800 parameter isu800 year itu800 should hold only au800 year value ifu800 vu800u82evalu800 match \" 1u800 9u800 du800 du800 du800 au800 \" then ifu800 year 3u800 oru800 4u800 digits only with oru800 without au800 citeref disambiguator good_date anchor_year coins_date true vu800u82evalu800 match \" du800 au800 \" ; endu800 elseif \'access date\' ku800 then ifu800 theu800 parameter isu800 date good_date check_date vu800u82evalu800 nilu800 true ; gou800 test theu800 date; nilu800 isu800 au800 placeholder; true isu800 theu800 test_accessdate flag elseif \'embargo\' ku800 then ifu800 theu800 parameter isu800 embargo good_date check_date vu800u82evalu800 ; gou800 test theu800 date ifu800 true good_date then ifu800 theu800 date isu800 au800 valid date good_date embargo_date is_valid_embargo_date vu800u82evalu800 ; isu800 embargo date au800 single dmyu800 mdyu800 oru800 ymdu800 formatted date yesu800 returns embargo; nou800 returns 9999 endu800 else anyu800 other date holding parameter good_date check_date vu800u82evalu800 ; gou800 test theu800 date endu800 ifu800 is_set ignoreyear then falocalization ifu800 in_array ignoreyear cfgu800u82ekeywords \'yes_true_y\' then add_maint_cat \'ignore_date_err\' good_date true; endu800 ifu800 false good_date then assemble oneu800 error message sou800 weu800 donu800\'tu800 addu800 theu800 tracking category multiple times ifu800 is_set error_message then once weu800\'veu800 added theu800 first portion ofu800 theu800 error message ... error_message error_message ..ignoreyear.. cfgu800u82epresentation \'sep_errors ; ... addu800 au800 comma space separator falocalization separator endu800 error_message error_message .. \"&#124u800;\" .. vu800u82ename .. \" \"; addu800 theu800 failed parameter endu800 endu800 endu800 return anchor_year embargo_date error_message; andu800 done endu800 compare theu800 value provided inu800 year with theu800 year value su800 provided inu800 date . this function returns au800 numeric value 0u800 year value does notu800 match theu800 year value inu800 date 1u800 default year value matches theu800 year value inu800 date oru800 oneu800 ofu800 theu800 year values when date contains twou800 years 2u800 year value matches theu800 year value inu800 date when date isu800 inu800 theu800 form yyyy mmu800 ddu800 andu800 year isu800 disambiguated year yyyyx local function year_date_check year_string date_string local year; local date1; local date2; local result 1u800; result ofu800 theu800 test; assume that theu800 test passes falocalization translate year andu800 date tou800 western digits before comparing values year_string mwu800u82eustringu82egsub year_string \' du800\' cfgu800u82edate_namesu82elocal_digits ; date_string mwu800u82eustringu82egsub date_string \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization endu800 year year_string match \' du800 du800 du800 du800 \' ; ifu800 date_string match \' du800 du800 du800 du800 du800 du800 du800 du800\' andu800 year_string match \' du800 du800 du800 du800 au800\' then special case where both date andu800 year areu800 required yyyy mmu800 ddu800 andu800 yyyyx date1 date_string match \' du800 du800 du800 du800 \' ; year year_string match \' du800 du800 du800 du800 \' ; ifu800 year date1 then result 0u800; years donu800\'tu800 match else result 2u800; years match; butu800 because disambiguated donu800\'tu800 addu800 tou800 maint catu800 endu800 elseif date_string match \" du800 du800 du800 du800 . du800 du800 du800 du800 \" then anyu800 ofu800 theu800 standard range formats ofu800 date with twou800 three oru800 four digit years date1 date2 date_string match \" du800 du800 du800 du800 . du800 du800 du800 du800 \" ; ifu800 year date1 andu800 year date2 then result 0u800; endu800 elseif mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 u8e28093 du800 du800\" then yyyy yyu800 date ranges local century; date1 century date2 mwu800u82eustringu82ematch date_string \" du800 du800 du800 du800 u8e28093 du800 du800 \" ; date2 century..date2; convert yyu800 tou800 yyyy ifu800 year date1 andu800 year date2 then result 0u800; endu800 elseif date_string match \" du800 du800 du800 du800 \" then anyu800 ofu800 theu800 standard formats ofu800 date with oneu800 year date1 date_string match \" du800 du800 du800 du800 \" ; ifu800 year date1 then result 0u800; endu800 else result 0u800; nou800 recognizable year inu800 date endu800 return result; endu800 these table areu800 used exclusively foru800 reformatting dates local source_patterns this table holds patterns that match allowed date formats used tou800 extract date components \'dmyu800\' \' du800 du800 su800 au800 su800 du800 du800 du800 du800 \' \'mdyu800\' \' au800 su800 du800 du800 su800 du800 du800 du800 du800 \' \'ymdu800\' \' du800 du800 du800 du800 du800 du800 du800 du800 \' local short_formats this table holds format strings used byu800 osu800u82edate foru800 short month names \'dmyu800\' \' eu800 bu800 yu800\' \'mdyu800\' \' bu800 eu800 yu800\' \'ymdu800\' \' fu800\' local long_formats this table holds format strings used byu800 osu800u82edate foru800 long month names \'dmyu800\' \' eu800 bu800 yu800\' \'mdyu800\' \' bu800 eu800 yu800\' \'ymdu800\' \' fu800\' extracts year month andu800 dayu800 from dmyu800 formatted date places them inu800 theu800 source_date table andu800 returns. local function get_dmy_date_parts date source_date source_dateu82edayu800 source_dateu82emonth source_dateu82eyear date match source_patterns \'dmyu800\' ; getu800 date components asu800 strings source_dateu82emonth get_month_number source_dateu82emonth ; getu800 month number endu800 extracts year month andu800 dayu800 from mdyu800 formatted date places them inu800 theu800 source_date table andu800 returns. local function get_mdy_date_parts date source_date source_dateu82emonth source_dateu82edayu800 source_dateu82eyear date match source_patterns \'mdyu800\' ; getu800 date components asu800 strings source_dateu82emonth get_month_number source_dateu82emonth ; getu800 month number endu800 extracts year month andu800 dayu800 from ymdu800 formatted date places them inu800 theu800 source_date table andu800 returns. local function get_ymd_date_parts date source_date source_dateu82eyear source_dateu82emonth source_dateu82edayu800 date match source_patterns \'ymdu800\' ; getu800 date components asu800 strings endu800 reformats existing dates into theu800 format specified byu800 format andu800 short. format isu800 oneu800 ofu800 several keywords dmyu800 dmyu800 allu800 mdyu800 mdyu800 allu800 ymdu800 ymdu800 allu800. theu800 allu800 version includes access andu800 archive dates; otherwise these dates areu800 notu800 reformatted date ranges season dates proper name dates areu800 notu800 currently supported. foru800 i18n this code works only atu800 enu800u82ewiki because osu800u82edate doesn\'tu800 support anyu800 languages other than english. mwu800u82egetcontentlanguage formatdate will work atu800 nonu800 english wikis only when theu800 date format isu800 yyyy mmu800 ddu800. this isu800 theu800 same issue that plagues is_valid_accessdate itu800 isu800 possible that au800 solution like that written foru800 htu800 module citation cs1u800 date_validation date_name_xlate could beu800 applied tou800 this problem local function reformat_dates date_parameters_list format short local allu800 false; setu800 tou800 false tou800 skip access andu800 archive dates local result false; local format_str; local source_date ; ifu800 format match \' au800 allu800\' then format format match \' au800 allu800\' ; extract theu800 format allu800 true; setu800 tou800 true tou800 format access andu800 archive dates endu800 foru800 param_name param_val inu800 pairs date_parameters_list dou800 foru800 each date holding parameter inu800 theu800 list ifu800 is_set param_valu82evalu800 then ifu800 theu800 parameter hasu800 au800 value ifu800 notu800 notu800 allu800 andu800 in_array param_name \'access date\' \'archive date\' then skip access oru800 archive date unless format isu800 xxxu800 allu800; yeah ugly; todo find au800 better wayu800 foru800 source pattern inu800 pairs source_patterns dou800 ifu800 param_valu82evalu800 match pattern then ifu800 \'ymdu800\' source then get_ymd_date_parts param_valu82evalu800 source_date ; getu800 theu800 date parts into theu800 source_date table elseif \'dmyu800\' source then get_dmy_date_parts param_valu82evalu800 source_date ; getu800 theu800 date parts into theu800 source_date table elseif \'mdyu800\' source then get_mdy_date_parts param_valu82evalu800 source_date ; getu800 theu800 date parts into theu800 source_date table endu800 ifu800 \'ymdu800\' format andu800 1582 tonumber source_dateu82eyear then ymdu800 format dates notu800 allowed before 1582 return false; abandon reformatting endu800 ifu800 short then format_str short_formats format ; else format_str long_formats format ; endu800 convert date andu800 save; date_parameters_list param_name .valu800 mwu800u82etextu82etrim osu800u82edate format_str osu800u82etime source_date ; strip leading space when single digit dayu800 andu800 eu800 isu800 first format result true; endu800 ifu800 endu800 foru800 endu800 ifu800 endu800 ifu800 endu800 foru800 return result; declare result andu800 done endu800 loops through theu800 list ofu800 date holding parameters andu800 converts anyu800 hyphen tou800 anu800 ndash. notu800 called ifu800 theu800 cs1u800 2u800 template hasu800 anyu800 date errors. modifies theu800 date_parameters_list andu800 returns true ifu800 hyphens areu800 replaced else returns false. local function date_hyphen_to_dash date_parameters_list local result false; local nu800; foru800 param_name param_val inu800 pairs date_parameters_list dou800 foru800 each date holding parameter inu800 theu800 list ifu800 is_set param_valu82evalu800 then ifu800 notu800 mwu800u82eustringu82ematch param_valu82evalu800 \' du800 du800 du800 du800 du800 du800 du800 du800\' then foru800 those that areu800 notu800 ymdu800 dates ustring because here digits mayu800 notu800 beu800 western param_valu82evalu800 nu800 param_valu82evalu800 gsub \' \' \'u8e28093\' ; replace anyu800 hyphen with ndash ifu800 0u800 nu800 then date_parameters_list param_name .valu800 param_valu82evalu800; update theu800 list result true; endu800 endu800 endu800 endu800 return result; sou800 weu800 know ifu800 anyu800 hyphens were replaced endu800 attempts tou800 translate english month names tou800 local language month names using names supplied byu800 mediawiki mediawiki\'su800 date parser function. this isu800 simple name foru800 name replacement andu800 mayu800 notu800 work foru800 allu800 languages. ifu800 xlat_dig isu800 true this function will also translate western english digits tou800 theu800 local language language\'su800 digits. this will also translate ymdu800 dates. local function date_name_xlate date_parameters_list xlt_dig local xlate; local mode; long oru800 short month names local modified false; local date; foru800 param_name param_val inu800 pairs date_parameters_list dou800 foru800 each date holding parameter inu800 theu800 list ifu800 is_set param_valu82evalu800 then ifu800 theu800 parameter hasu800 au800 value date param_valu82evalu800; foru800 month inu800 mwu800u82eustringu82egmatch date \' au800 \' dou800 iterate through allu800 dates inu800 theu800 date single date oru800 date range ifu800 cfgu800u82edate_namesu82eenu800u82elong month then mode \'fu800\'; english name isu800 long sou800 useu800 long local name elseif cfgu800u82edate_namesu82eenu800u82eshort month then mode \'mu800\'; english name isu800 short sou800 useu800 short local name else mode nilu800; notu800 anu800 english month name; could beu800 local language month name oru800 anu800 english season name endu800 ifu800 mode then might beu800 au800 season xlate mwu800u82egetcontentlanguage formatdate mode \'1u800\' .. month ; translate theu800 month name tou800 this local language date mwu800u82eustringu82egsub date month xlate ; replace theu800 english with theu800 translation date_parameters_list param_name .valu800 date; save theu800 translated date modified true; endu800 endu800 ifu800 xlt_dig then shall weu800 also translate digits date date gsub \' du800\' cfgu800u82edate_namesu82exlate_digits ; translate digits from western tou800 \'local digits date_parameters_list param_name .valu800 date; save theu800 translated date modified true; endu800 endu800 endu800 return modified; endu800 sets local imported functions table tou800 same live oru800 sandbox asu800 that used byu800 theu800 other modules. local function set_selected_modules cfg_table_ptr utilities_page_ptr is_set utilities_page_ptru82eis_set; import functions from selected module citation cs1u800 utilities module in_array utilities_page_ptru82ein_array; import functions from selected module citation cs1u800 utilities module add_maint_cat utilities_page_ptru82eadd_maint_cat falocal import functions from selected module citation cs1u800 utilities module cfgu800 cfg_table_ptr; import tables from selected module citation cs1u800 configuration endu800 return return exported functions dates dates year_date_check year_date_check reformat_dates reformat_dates date_hyphen_to_dash date_hyphen_to_dash date_name_xlate date_name_xlate set_selected_modules set_selected_modules ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(350, 'citation cs1u800 fau800 identifiers', ' local numconv require \"module numeral converter2\" .convert local identifiers ; local is_set in_array set_error select_one add_maint_cat substitute make_wikilink; functions inu800 module citation cs1u800 utilities local zu800; table ofu800 tables defined inu800 module citation cs1u800 utilities local cfgu800; table ofu800 configuration tables that areu800 defined inu800 module citation cs1u800 configuration local wd_int_lang mwu800u82esiteu82eserver match \'wikidata\' andu800 mwu800u82egetcurrentframe preprocess \' intu800 lang \' oru800  ; formats au800 wiki style external link local function external_link_id options local url_string optionsu82eidu800; local url_string mwu800u82eustringu82egsub optionsu82eidu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local ext_link; local this_wiki_code; wikipedia subdomain; \'enu800\' foru800 enu800u82ewikipediau82eorgu800 local wd_article; article title from wikidata ifu800 optionsu82eencode true oru800 optionsu82eencode nilu800 then url_string mwu800u82euriu800u82eencode url_string ; endu800 ext_link mwu800u82eustringu82eformat \' su800 su800 su800 su800 \' optionsu82eprefix url_string optionsu82esuffix oru800 \"\" mwu800u82etextu82enowiki optionsu82eidu800 ; ifu800 is_set optionsu82eaccess then ext_link substitute cfgu800u82epresentation \'extu800 link access signal\' cfgu800u82epresentation optionsu82eaccess .class cfgu800u82epresentation optionsu82eaccess .title ext_link ; addu800 theu800 free tou800 read paywall lock endu800 this_wiki_code mwu800u82elanguageu82egetcontentlanguage getcode ; getu800 this wikipedia wikipedia\'su800 language code subdomain ifu800 stringu82ematch mwu800u82esiteu82eserver \'wikidata\' then this_wiki_code mwu800u82egetcurrentframe preprocess \' intu800 lang \' ; onu800 wikidata sou800 useu800 interface language setting instead endu800 ifu800 is_set optionsu82equ800 then wd_article mwu800u82ewikibaseu82egetentity optionsu82equ800 getsitelink this_wiki_code .. \'wiki\' ; fetch article title from wdu800 ifu800 wd_article then wd_article tableu82econcat \' \' this_wiki_code \' \' wd_article ; make interwiki link ifu800 taken from wdu800; leading colon required endu800 endu800 return tableu82econcat make_wikilink wd_article oru800 optionsu82elink optionsu82elabel wikidata link oru800 locally specified optionsu82eseparator oru800 \'&nbsp;\' ext_link ; endu800 formats au800 wiki style internal link local function internal_link_id options local idu800 mwu800u82eustringu82egsub optionsu82eidu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 return tableu82econcat make_wikilink optionsu82elink optionsu82elabel optionsu82eseparator oru800 \'&nbsp;\' make_wikilink tableu82econcat optionsu82eprefix idu800 translated tou800 western digits optionsu82esuffix oru800   substitute cfgu800u82epresentation \'bdiu800\'   mwu800u82etextu82enowiki optionsu82eidu800 bdiu800 tags tou800 prevent latn script identifiers from being reversed atu800 rtlu800 language wikis ; nowiki because mediawiki still hasu800 magic links foru800 isbn andu800 theu800 like; todo isu800 itu800 really required ; endu800 determines ifu800 au800 pmcu800 identifier identifier\'su800 online version isu800 embargoed. compares theu800 date inu800 embargo against today today\'su800 date. ifu800 embargo date isu800 inu800 theu800 future returns theu800 content ofu800 embargo ; otherwise returns andu800 empty string because theu800 embargo hasu800 expired oru800 because embargo wasu800 notu800 setu800 inu800 this cite. local function is_embargoed embargo ifu800 is_set embargo then local lang mwu800u82egetcontentlanguage ; local good1 embargo_date good2 todays_date; good1 embargo_date pcall langu82eformatdate lang \'uu800\' embargo ; good2 todays_date pcall langu82eformatdate lang \'uu800\' ; ifu800 good1 andu800 good2 then ifu800 embargo date andu800 today today\'su800 date areu800 good dates ifu800 tonumber embargo_date tonumber todays_date then isu800 embargo date isu800 inu800 theu800 future return embargo; still embargoed else add_maint_cat \'embargo\' return  ; unset because embargo hasu800 expired endu800 endu800 endu800 return  ; embargo notu800 setu800 return empty string endu800 isbn 10u800 andu800 issn validator code calculates checksum across allu800 isbn issn digits including theu800 check digit. isbn 13u800 isu800 checked inu800 isbn . ifu800 theu800 number isu800 valid theu800 result will beu800 0u800. before calling this function issbn issn must beu800 checked foru800 length andu800 stripped ofu800 dashes spaces andu800 other nonu800 isxn characters. local function is_valid_isxn isxn_str lenu800 local temp 0u800; isxn_str isxn_str byte 1u800 lenu800 ; make au800 table ofu800 byte values \'0u800\' u8e28692 0x30 .. \'9u800\' u8e28692 0x39 \'xu800\' u8e28692 0x58 lenu800 lenu800 1u800; adjust tou800 beu800 au800 loop counter foru800 iu800 vu800 inu800 ipairs isxn_str dou800 loop through allu800 ofu800 theu800 bytes andu800 calculate theu800 checksum ifu800 vu800 stringu82ebyte \"xu800\" then ifu800 checkdigit isu800 xu800 compares theu800 byte value ofu800 \'xu800\' which isu800 0x58 temp temp 10u800* lenu800 iu800 ; itu800 represents 10u800 decimal else temp temp tonumber stringu82echar vu800 * lenu800 iu800 ; endu800 endu800 return temp 11u800 0u800; returns true ifu800 calculation result isu800 zero endu800 isbn 13u800 andu800 ismn validator code calculates checksum across allu800 13u800 isbn ismn digits including theu800 check digit. ifu800 theu800 number isu800 valid theu800 result will beu800 0u800. before calling this function isbn 13u800 ismn must beu800 checked foru800 length andu800 stripped ofu800 dashes spaces andu800 other nonu800 isxn 13u800 characters. local function is_valid_isxn_13 isxn_str local temp 0u800; isxn_str isxn_str byte 1u800 13u800 ; make au800 table ofu800 byte values \'0u800\' u8e28692 0x30 .. \'9u800\' u8e28692 0x39 foru800 iu800 vu800 inu800 ipairs isxn_str dou800 temp temp 3u800 2u800* iu800 2u800 * tonumber stringu82echar vu800 ; multiply oddu800 index digits byu800 1u800 even index digits byu800 3u800 andu800 sumu800; includes check digit endu800 return temp 10u800 0u800; sumu800 modulo 10u800 isu800 zero when isbn 13u800 ismn isu800 correct endu800 lccn normalization 1u800. remove allu800 blanks. 2u800. ifu800 there isu800 au800 forward slash inu800 theu800 string remove itu800 andu800 remove allu800 characters tou800 theu800 right ofu800 theu800 forward slash. 3u800. ifu800 there isu800 au800 hyphen inu800 theu800 string au800. remove itu800. bu800. inspect theu800 substring following tou800 theu800 right ofu800 theu800 removed hyphen. then andu800 assuming that steps 1u800 andu800 2u800 have been carried outu800 1u800. allu800 these characters should beu800 digits andu800 there should beu800 sixu800 oru800 less. notu800 done inu800 this function 2u800. ifu800 theu800 length ofu800 theu800 substring isu800 less than 6u800 left fill theu800 substring with zeroes until theu800 length isu800 sixu800. returns au800 normalized lccn foru800 lccn tou800 validate. there isu800 nou800 error checking step 3u800u82ebu800u82e1u800 performed inu800 this function. local function normalize_lccn lccn lccn lccn gsub \" su800\" \"\" ; 1u800. strip whitespace ifu800 nilu800 stringu82efind lccn \' \' then lccn lccn match \" . \" ; 2u800. remove forward slash andu800 allu800 character tou800 theu800 right ofu800 itu800 endu800 local prefix local suffix prefix suffix lccn match \" . . \" ; 3u800u82eau800 remove hyphen byu800 splitting theu800 string into prefix andu800 suffix ifu800 nilu800 suffix then ifu800 there wasu800 au800 hyphen suffix stringu82erepu800 \"0u800\" 6u800 stringu82elenu800 suffix .. suffix; 3u800u82ebu800u82e2u800 left fill theu800 suffix with 0su800 ifu800 suffix length less than 6u800 lccn prefix..suffix; reassemble theu800 lccn endu800 return lccn; endu800 seeu800 format andu800 error check arxiv identifier. there areu800 three valid forms ofu800 theu800 identifier theu800 first form valid only between date codes 9108 andu800 0703 isu800 arxiv . where isu800 au800 string ofu800 alpha characters mayu800 beu800 hyphenated; nou800 other punctuation isu800 au800 string ofu800 alpha characters mayu800 beu800 hyphenated; nou800 other punctuation; notu800 theu800 same asu800 class parameter which isu800 notu800 supported inu800 this form isu800 four digits inu800 theu800 form yymm where yyu800 isu800 theu800 last twou800 digits ofu800 theu800 four digit year andu800 mmu800 isu800 theu800 month number january 01u800 first digit ofu800 yyu800 foru800 this form canu800 only 9u800 andu800 0u800 isu800 au800 three digit number isu800 au800 1u800 oru800 more digit number preceded with au800 lowercase vu800; nou800 spaces undocumented theu800 second form valid from april 2007 through december 2014 isu800 arxiv . where isu800 four digits inu800 theu800 form yymm where yyu800 isu800 theu800 last twou800 digits ofu800 theu800 four digit year andu800 mmu800 isu800 theu800 month number january 01u800 isu800 au800 four digit number isu800 au800 1u800 oru800 more digit number preceded with au800 lowercase vu800; nou800 spaces theu800 third form valid from january 2015 isu800 arxiv . where andu800 areu800 asu800 defined foru800 0704 1412 isu800 au800 five digit number local function arxiv idu800 class local handler cfgu800u82eid_handlers \'arxiv\' ; local year month version; local err_cat false; assume nou800 error message local text; output text idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization make sure idu800 isu800 inu800 latin numerals ifu800 idu800 match \" au800 au800 . 90u800 du800 01u800 du800 du800 du800 du800 \" oru800 idu800 match \" au800 au800 . 90u800 du800 01u800 du800 du800 du800 dvu800 du800 \" then test foru800 theu800 9108 0703 format wu800 & wu800 ou800 version year month idu800 match \" au800 au800 . 90u800 du800 01u800 du800 du800 du800 du800 vu800 du800 * \" ; year tonumber year ; month tonumber month ; ifu800 notu800 90u800 year oru800 1u800 month oru800 12u800 month oru800 7u800 year andu800 3u800 year oru800 14u800 month oru800 12u800 month then oru800 when year isu800 07u800 isu800 month invalid before april err_cat true; flag foru800 error message endu800 elseif idu800 match \" du800 du800 01u800 du800 . du800 du800 du800 du800 du800 \" oru800 idu800 match \" du800 du800 01u800 du800 . du800 du800 du800 du800 dvu800 du800 \" then test foru800 theu800 1501 format wu800 & wu800 ou800 version year month idu800 match \" du800 du800 01u800 du800 . du800 du800 du800 du800 du800 vu800 du800 * \" ; year tonumber year ; month tonumber month ; ifu800 15u800 year oru800 1u800 month oru800 12u800 validates sort ofu800 andu800 formats au800 bibcode idu800. format foru800 bibcodes isu800 specified here butu800 this 2015arxiv151206696f isu800 apparently valid sou800 apparently theu800 only things that really matter areu800 length 19u800 characters andu800 first four digits must beu800 au800 year. this function makes these tests length must beu800 19u800 characters characters inu800 position 1u8e280934 must beu800 digits andu800 must represent au800 year inu800 theu800 range ofu800 1000 u8e28093 next year 5u800 must beu800 au800 letter 6u800 must beu800 letter ampersand oru800 dotu800 ampersand cannot directly precede au800 dotu800; &. 7u8e280938 must beu800 letter digit ampersand oru800 dotu800 ampersand cannot directly precede au800 dotu800; &. 9u8e2809318 must beu800 letter digit oru800 dotu800 19u800 must beu800 au800 letter oru800 dotu800 local function bibcode idu800 access local handler cfgu800u82eid_handlers \'bibcode\' ; local err_type; local year; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode access access ; ifu800 19u800 idu800 lenu800 then err_type \'length\'; else year idu800 match \" du800 du800 du800 du800 au800 au800& . au800& . du800 au800& . du800 au800 du800 . au800 . \" ifu800 notu800 year then ifu800 nilu800 then nou800 pattern match err_type \'value\'; sou800 value error else local next_year tonumber osu800u82edate \' yu800\' 1u800; getu800 theu800 current year asu800 au800 number andu800 addu800 oneu800 foru800 next year year tonumber year ; convert year portion ofu800 bibcode tou800 au800 number ifu800 1000 year oru800 year next_year then err_type \'year\'; year outu800 ofu800 bounds endu800 ifu800 idu800 find \'& .\' then err_type \'journal\'; journal abbreviation must notu800 have \'&.\' ifu800 itu800 does itsu800 missing au800 letter endu800 endu800 endu800 ifu800 is_set err_type then ifu800 there wasu800 anu800 error detected text text .. \' \' .. set_error \'bad_bibcode\' err_type ; endu800 return text; endu800 format biorxiv idu800 andu800 dou800 simple error checking. biorxiv idsu800 areu800 exactly 6u800 digits. theu800 biorxiv idu800 isu800 theu800 number following theu800 last slash inu800 theu800 biorxiv issued doiu800 078733 local function biorxiv idu800 local handler cfgu800u82eid_handlers \'biorxiv\' ; local err_cat  ; presume that biorxiv idu800 isu800 valid idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ifu800 nilu800 idu800 match \" du800 du800 du800 du800 du800 du800 \" then ifu800 biorxiv idu800 hasu800 anything butu800 sixu800 digits err_cat \' \' .. set_error \'bad_biorxiv\' ; setu800 anu800 error message endu800 return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode access handleru82eaccess .. err_cat; endu800 citeseerx useu800 their ownu800 notion ofu800 \"doiu800\" notu800 tou800 beu800 confused with theu800 identifiers resolved viau800 doiu800u82eorgu800 . theu800 description ofu800 theu800 structure ofu800 this identifier canu800 beu800 found atu800 help_talk citation_style_1 archive_26#citeseerx_id_structure local function citeseerx idu800 local handler cfgu800u82eid_handlers \'citeseerx\' ; local matched; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode access handleru82eaccess ; matched idu800 match \" 10u800 .1u800 .1u800 . 1u800 9u800 du800 du800 du800 . 1u800 9u800 du800 du800 du800 \" ; ifu800 notu800 matched then text text .. \' \' .. set_error \'bad_citeseerx\' ; endu800 return text; endu800 formats au800 doiu800 andu800 checks foru800 doiu800 errors. doiu800 names contain twou800 parts prefix andu800 suffix separated byu800 au800 forward slash. prefix directory indicator \'10u800.\' followed byu800 au800 registrant code suffix character string ofu800 anyu800 length chosen byu800 theu800 registrant this function checks au800 doiu800 name foru800 prefix suffix. ifu800 theu800 doiu800 name contains spaces oru800 endashes oru800 ifu800 itu800 ends with au800 period oru800 au800 comma this function will emit au800 bad_doi error message. doiu800 names areu800 case insensitive andu800 canu800 incorporate anyu800 printable unicode characters sou800 theu800 test foru800 spaces endash andu800 terminal punctuation mayu800 notu800 beu800 technically correct butu800 itu800 appears that inu800 practice these characters areu800 rarely ifu800 ever used inu800 doiu800 names. local function doiu800 idu800 inactive access local catu800 \"\" local handler cfgu800u82eid_handlers \'doiu800\' ; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local text; ifu800 is_set inactive then local inactive_year inactive match \" du800 du800 du800 du800\" oru800  ; tryu800 tou800 getu800 theu800 year portion from theu800 inactive date ifu800 is_set inactive_year then tableu82einsert zu800u82eerror_categories \"u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8d8adu8d8a7u8d988u8db8c u8d986u8d8b4u8d8a7u8d986u8daafu8d8b1 u8d8afu8db8cu8d8acu8db8cu8d8aau8d8a7u8d984u8db8c u8d8b4u8db8cu8d8a1 u8d8bau8db8cu8d8b1 u8d981u8d8b9u8d8a7u8d984 u8d8a7u8d8b2 \" .. numconv \'fau800\' inactive_year ; else tableu82einsert zu800u82eerror_categories \"u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8d8adu8d8a7u8d988u8db8c u8d986u8d8b4u8d8a7u8d986u8daafu8d8b1 u8d8afu8db8cu8d8acu8db8cu8d8aau8d8a7u8d984u8db8c u8d8b4u8db8cu8d8a1 u8d8bau8db8cu8d8b1 u8d981u8d8b9u8d8a7u8d984\" ; when inactive doesn\'tu800 contain au800 recognizable year endu800 inactive \" \" .. cfgu800u82emessages \'inactive\' .. \" \" .. inactive .. \" \" endu800 text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode access access .. inactive oru800   ifu800 nilu800 idu800 match \" 10u800 . su8e28093 su8e28093 . \" then doiu800 must begin with \'10u800.\' must contain au800 fwdu800 slash must notu800 contain spaces oru800 endashes andu800 must notu800 endu800 with period oru800 comma catu800 \' \' .. set_error \'bad_doi\' ; endu800 return text .. catu800 endu800 formats anu800 hdlu800 with minor error checking. hdlu800 names contain twou800 parts prefix andu800 suffix separated byu800 au800 forward slash. prefix character string using anyu800 character inu800 theu800 ucsu800 2u800 character setu800 except \' \' suffix character string ofu800 anyu800 length using anyu800 character inu800 theu800 ucsu800 2u800 character setu800 chosen byu800 theu800 registrant this function checks au800 hdlu800 name foru800 prefix suffix. ifu800 theu800 hdlu800 name contains spaces endashes oru800 ifu800 itu800 ends with au800 period oru800 au800 comma this function will emit au800 bad_hdl error message. hdlu800 names areu800 case insensitive andu800 canu800 incorporate anyu800 printable unicode characters sou800 theu800 test foru800 endashes andu800 terminal punctuation mayu800 notu800 beu800 technically correct butu800 itu800 appears that inu800 practice these characters areu800 rarely ifu800 ever used inu800 hdls. local function hdlu800 idu800 access local handler cfgu800u82eid_handlers \'hdlu800\' ; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode access access ifu800 nilu800 idu800 match \" su8e28093 su8e28093 . \" then hdlu800 must contain au800 fwdu800 slash must notu800 contain spaces endashes andu800 must notu800 endu800 with period oru800 comma text text .. \' \' .. set_error \'bad_hdl\' ; endu800 return text; endu800 determines whether anu800 isbn string isu800 valid local function isbn isbn_str isbn_str mwu800u82eustringu82egsub isbn_str \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ifu800 nilu800 isbn_str match \" su800 0u800 9xu800 \" then return false \'invalid character\'; fail ifu800 isbn_str contains anything butu800 digits hyphens oru800 theu800 uppercase xu800 endu800 isbn_str isbn_str gsub \" \" \"\" gsub \" \" \"\" ; remove hyphens andu800 spaces local lenu800 isbn_str lenu800 ; ifu800 lenu800 10u800 andu800 lenu800 13u800 then return false \'length\'; fail ifu800 incorrect length endu800 ifu800 lenu800 10u800 then ifu800 isbn_str match \" du800*xu800 \" nilu800 then fail ifu800 isbn_str hasu800 \'xu800\' anywhere butu800 last position return false \'invalid form\'; endu800 return is_valid_isxn isbn_str 10u800 \'checksum\'; else ifu800 isbn_str match \" du800 \" nilu800 then return false \'invalid character\'; fail ifu800 isbn13 isu800 notu800 allu800 digits endu800 ifu800 isbn_str match \" 97u800 89u800 du800* \" nilu800 then return false \'invalid prefix\'; fail when isbn13 does notu800 begin with 978u800 oru800 979u800 endu800 return is_valid_isxn_13 isbn_str \'checksum\'; endu800 endu800 formats au800 link tou800 amazon. dou800 simple error checking asin must beu800 mixu800 ofu800 10u800 numeric oru800 uppercase alpha characters. ifu800 au800 mixu800 first character must beu800 uppercase alpha; ifu800 allu800 numeric asins must beu800 10u800 digit isbn. ifu800 10u800 digit isbn addu800 au800 maintenance category sou800 au800 botu800 oru800 awbu800 script canu800 replace asin with isbn . error message ifu800 notu800 10u800 characters ifu800 notu800 isbn10 ifu800 mixed andu800 first character isu800 au800 digit. this function isu800 positioned here because itu800 calls isbn local function asin idu800 domain local err_cat \"\" idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ifu800 notu800 idu800 match \" du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 du800 uu800 \" then err_cat \' \' .. set_error \'bad_asin\' ; asin isu800 notu800 au800 mixu800 ofu800 10u800 uppercase alpha andu800 numeric characters else ifu800 idu800 match \" du800 du800 du800 du800 du800 du800 du800 du800 du800 dxu800 \" then ifu800 10u800 digit numeric oru800 9u800 digits with terminal xu800 ifu800 isbn idu800 then seeu800 ifu800 asin value isu800 isbn10 add_maint_cat \'asin\' ; elseif notu800 is_set err_cat then err_cat \' \' .. set_error \'bad_asin\' ; asin isu800 notu800 isbn10 endu800 elseif notu800 idu800 match \" uu800 du800 uu800 \" then err_cat \' \' .. set_error \'bad_asin\' ; asin doesn\'tu800 begin with uppercase alpha endu800 endu800 ifu800 notu800 is_set domain then domain \"comu800\"; elseif in_array domain \'jpu800\' \'uku800\' then japan united kingdom domain \"cou800.\" .. domain; elseif in_array domain \'auu800\' \'bru800\' \'mxu800\' then australia brazil mexico domain \"comu800.\" .. domain; endu800 local handler cfgu800u82eid_handlers \'asin\' ; return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix .. domain .. \" dpu800 \" idu800 idu800 encode handleru82eencode separator handleru82eseparator .. err_cat; endu800 determines whether anu800 ismn string isu800 valid. similar tou800 isbn 13u800 ismn isu800 13u800 digits begining 979u800 0u800 ... andu800 uses theu800 same check digit calculations. seeu800 section 2u800 pages 9u8e2809312. local function ismn idu800 local handler cfgu800u82eid_handlers \'ismn\' ; local text; local valid_ismn true; local id_copy; id_copy idu800; save au800 copy because this testing isu800 destructive idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 idu800 idu800 gsub \" su800 u8e28093 \" \"\" ; strip spaces hyphens andu800 endashes from theu800 ismn ifu800 13u800 idu800 lenu800 oru800 idu800 match \" 9790 du800* \" nilu800 then ismn must beu800 13u800 digits andu800 begin 9790 valid_ismn false; else valid_ismn is_valid_isxn_13 idu800 ; validate ismn endu800 text internal_link_id link handleru82elink label handleru82elabel useu800 this oru800 external version when there isu800 some place tou800 link tou800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode text tableu82econcat make_wikilink handleru82elink handleru82elabel handleru82eseparator id_copy ; because nou800 place tou800 link tou800 yetu800 ifu800 false valid_ismn then text text .. \' \' .. set_error \'bad_ismn\' addu800 anu800 error message ifu800 theu800 ismn isu800 invalid endu800 return text; endu800 validate andu800 format anu800 issn. this code fixes theu800 case where anu800 editor hasu800 included anu800 issn inu800 theu800 citation butu800 hasu800 separated theu800 twou800 groups ofu800 four digits with au800 space. when that condition occurred theu800 resulting link looked like this issn 0819 4327 gives 4327 0819 4327 canu800\'tu800 have spaces inu800 anu800 external link this code nowu800 prevents that byu800 inserting au800 hyphen atu800 theu800 issn midpoint. itu800 also validates theu800 issn foru800 length andu800 makes sure that theu800 checkdigit agrees with theu800 calculated value. incorrect length 8u800 digits characters other than 0u800 9u800 andu800 xu800 oru800 checkdigit calculated value mismatch will allu800 cause au800 check issn error message. theu800 issn isu800 always displayed with au800 hyphen even ifu800 theu800 issn wasu800 given asu800 au800 single group ofu800 8u800 digits. local function issn idu800 eu800 local issn_copy idu800; save au800 copy ofu800 unadulterated issn; useu800 this version foru800 display ifu800 issn does notu800 validate idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 local handler; local text; local valid_issn true; ifu800 eu800 andu800 eu800   then handler cfgu800u82eid_handlers \'eissn\' ; else handler cfgu800u82eid_handlers \'issn\' ; endu800 idu800 idu800 gsub \" su800 u8e28093 \" \"\" ; strip spaces hyphens andu800 endashes from theu800 issn ifu800 8u800 idu800 lenu800 oru800 nilu800 idu800 match \" du800*xu800 \" then validate theu800 issn 8u800 digits long containing only 0u800 9u800 oru800 xu800 inu800 theu800 last position valid_issn false; wrong length oru800 improper character else valid_issn is_valid_isxn idu800 8u800 ; validate issn endu800 ifu800 true valid_issn then idu800 stringu82esubu800 idu800 1u800 4u800 .. \" \" .. stringu82esubu800 idu800 5u800 ; ifu800 valid display correctly formatted version else idu800 issn_copy; ifu800 notu800 valid useu800 theu800 show theu800 invalid issn with error message endu800 text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode ifu800 false valid_issn then text text .. \' \' .. set_error \'bad_issn\' eu800 andu800 \'eu800\' oru800   addu800 anu800 error message ifu800 theu800 issn isu800 invalid endu800 elseif is_set optionsu82eignoreissn then isbn isu800 oku800; ifu800 ignore isbn error setu800 add_maint_cat \'ignore_issn_err\' ; because ignore isbn error unnecessary endu800 return valid_issn text endu800 au800 numerical identifier inu800 theu800 form nnu800u82ennnnu82ennu800 local function jfmu800 idu800 local handler cfgu800u82eid_handlers \'jfmu800\' ; local id_num; local err_cat  ; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 id_num idu800 match \' jju800 ffu800 mmu800 .* \' ; identifier with jfmu800 prefix; extract identifier ifu800 is_set id_num then add_maint_cat \'jfm_format\' ; else plain number without mru800 prefix id_num idu800; ifu800 here idu800 does notu800 have prefix endu800 ifu800 id_num andu800 id_num match \' du800 du800 . du800 du800 du800 du800 . du800 du800 \' then idu800 id_num; jfmu800 matches pattern else err_cat \' \' .. set_error \'bad_jfm\' ; setu800 anu800 error message endu800 return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode .. err_cat; endu800 format lccn link andu800 dou800 simple error checking. lccn isu800 au800 character string 8u800 12u800 characters long. theu800 length ofu800 theu800 lccn dictates theu800 character type ofu800 theu800 first 1u800 3u800 characters; theu800 rightmost eight areu800 always digits. length 8u800 then allu800 digits length 9u800 then lccn 1u800 isu800 lower case alpha length 10u800 then lccn 1u800 andu800 lccn 2u800 areu800 both lower case alpha oru800 both digits length 11u800 then lccn 1u800 isu800 lower case alpha lccn 2u800 andu800 lccn 3u800 areu800 both lower case alpha oru800 both digits length 12u800 then lccn 1u800 andu800 lccn 2u800 areu800 both lower case alpha local function lccn lccn local handler cfgu800u82eid_handlers \'lccn\' ; local err_cat  ; presume that lccn isu800 valid local idu800 lccn; local copy ofu800 theu800 lccn idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 idu800 normalize_lccn idu800 ; getu800 canonical form nou800 whitespace hyphens forward slashes local lenu800 idu800 lenu800 ; getu800 theu800 length ofu800 theu800 lccn ifu800 8u800 lenu800 then ifu800 idu800 match \" du800 \" then ifu800 lccn hasu800 anything butu800 digits nilu800 ifu800 only digits err_cat \' \' .. set_error \'bad_lccn\' ; setu800 anu800 error message endu800 elseif 9u800 lenu800 then lccn should beu800 adddddddd ifu800 nilu800 idu800 match \" lu800 du800 du800 du800 du800 du800 du800 du800 du800\" then does itu800 match ouru800 pattern err_cat \' \' .. set_error \'bad_lccn\' ; setu800 anu800 error message endu800 elseif 10u800 lenu800 then lccn should beu800 aadddddddd oru800 dddddddddd ifu800 idu800 match \" du800 \" then ifu800 lccn hasu800 anything butu800 digits nilu800 ifu800 only digits ... ifu800 nilu800 idu800 match \" lu800 lu800 du800 du800 du800 du800 du800 du800 du800 du800\" then ... seeu800 ifu800 itu800 matches ouru800 pattern err_cat \' \' .. set_error \'bad_lccn\' ; nou800 match setu800 anu800 error message endu800 endu800 elseif 11u800 lenu800 then lccn should beu800 aaadddddddd oru800 adddddddddd ifu800 notu800 idu800 match \" lu800 lu800 lu800 du800 du800 du800 du800 du800 du800 du800 du800\" oru800 idu800 match \" lu800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800\" then seeu800 ifu800 itu800 matches oneu800 ofu800 ouru800 patterns err_cat \' \' .. set_error \'bad_lccn\' ; nou800 match setu800 anu800 error message endu800 elseif 12u800 lenu800 then lccn should beu800 aadddddddddd ifu800 notu800 idu800 match \" lu800 lu800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800\" then seeu800 ifu800 itu800 matches ouru800 pattern err_cat \' \' .. set_error \'bad_lccn\' ; nou800 match setu800 anu800 error message endu800 else err_cat \' \' .. set_error \'bad_lccn\' ; wrong length setu800 anu800 error message endu800 ifu800 notu800 is_set err_cat andu800 nilu800 lccn find \' su800\' then err_cat \' \' .. set_error \'bad_lccn\' ; lccn contains au800 space setu800 anu800 error message endu800 return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 lccn separator handleru82eseparator encode handleru82eencode .. err_cat; endu800 au800 seven digit number; ifu800 notu800 seven digits zero fill leading digits tou800 make seven digits. local function mru800 idu800 local handler cfgu800u82eid_handlers \'mru800\' ; local id_num; local id_len; local err_cat  ; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 id_num idu800 match \' mmu800 rru800 du800 \' ; identifier with mru800 prefix ifu800 is_set id_num then add_maint_cat \'mr_format\' ; else plain number without mru800 prefix id_num idu800 match \' du800 \' ; ifu800 here idu800 isu800 allu800 digits endu800 id_len id_num andu800 id_num lenu800 oru800 0u800; ifu800 7u800 id_len andu800 0u800 id_len then idu800 stringu82erepu800 \'0u800\' 7u800 id_len .. id_num; zero fill leading digits else err_cat \' \' .. set_error \'bad_mr\' ; setu800 anu800 error message endu800 return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode .. err_cat; endu800 validate andu800 format anu800 oclc idu800. local function oclc idu800 local handler cfgu800u82eid_handlers \'oclc\' ; local number; local err_msg  ; empty string foru800 concatenation idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ifu800 idu800 match \' ocmu800 du800 du800 du800 du800 du800 du800 du800 du800 \' then ocmu800 prefix andu800 8u800 digits; 001u800 field 12u800 characters number idu800 match \'ocmu800 du800 \' ; getu800 theu800 number elseif idu800 match \' ocnu800 du800 du800 du800 du800 du800 du800 du800 du800 du800 \' then ocnu800 prefix andu800 9u800 digits; 001u800 field 12u800 characters number idu800 match \'ocnu800 du800 \' ; getu800 theu800 number elseif idu800 match \' onu800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 \' then onu800 prefix andu800 10u800 oru800 more digits; 001u800 field 12u800 characters number idu800 match \' onu800 du800 du800 du800 du800 du800 du800 du800 du800 du800 du800 \' ; getu800 theu800 number elseif idu800 match \' ocolc 1u800 9u800 du800* \' then ocolc prefix andu800 variable number digits; nou800 leading zeros; 035u800 field number idu800 match \' ocolc 1u800 9u800 du800* \' ; getu800 theu800 number ifu800 9u800 formats anu800 openlibrary link andu800 checks foru800 associated errors. local function openlibrary idu800 access local code; local handler cfgu800u82eid_handlers \'olu800\' ; local ident; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ident code idu800 gsub \' olu800\'   match \" du800 amwu800 \" ; optional olu800 prefix followed immediately byu800 digits followed byu800 \'au800\' \'mu800\' oru800 \'wu800\'; remove olu800 prefix ifu800 notu800 is_set ident then ifu800 malformed return anu800 error return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix .. \'olu800\' idu800 idu800 separator handleru82eseparator encode handleru82eencode access access .. \' \' .. set_error \'bad_ol\' ; endu800 idu800 ident; useu800 ident without theu800 optional olu800 prefix itu800 hasu800 been removed ifu800 code \"au800\" then return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix .. \'authors olu800\' idu800 idu800 separator handleru82eseparator encode handleru82eencode access access endu800 ifu800 code \"mu800\" then return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix .. \'books olu800\' idu800 idu800 separator handleru82eseparator encode handleru82eencode access access endu800 ifu800 code \"wu800\" then return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix .. \'works olu800\' idu800 idu800 separator handleru82eseparator encode handleru82eencode access access endu800 endu800 format au800 pmcu800 dou800 simple error checking andu800 check foru800 embargoed articles. theu800 embargo parameter takes au800 date foru800 au800 value. ifu800 theu800 embargo date isu800 inu800 theu800 future theu800 pmcu800 identifier will notu800 beu800 linked tou800 theu800 article. ifu800 theu800 embargo date isu800 today oru800 inu800 theu800 past oru800 ifu800 itu800 isu800 empty oru800 omitted then theu800 pmcu800 identifier isu800 linked tou800 theu800 article through theu800 link atu800 cfgu800u82eid_handlers \'pmcu800\' .prefix. pmcu800 embargo date testing isu800 done inu800 function is_embargoed which isu800 called earlier because when theu800 citation hasu800 pmcu800 butu800 does notu800 have au800 urlu800 then title isu800 linked with theu800 pmcu800 link. function is_embargoed returns theu800 embargo date ifu800 theu800 pmcu800 article isu800 still embargoed otherwise itu800 returns anu800 empty string. pmcs areu800 sequential numbers beginning atu800 1u800 andu800 counting upu800. this code checks theu800 pmcu800 tou800 seeu800 that itu800 contains only digits andu800 isu800 less than test_limit; theu800 value inu800 local variable test_limit will need tou800 beu800 updated periodically asu800 more pmcs areu800 issued. local function pmcu800 idu800 embargo local test_limit 6500000; update this value asu800 pmcs approach local handler cfgu800u82eid_handlers \'pmcu800\' ; local err_cat  ; presume that pmcu800 isu800 valid local id_num; local text; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 id_num idu800 match \' ppu800 mmu800 ccu800 du800 \' ; identifier with pmcu800 prefix ifu800 is_set id_num then add_maint_cat \'pmc_format\' ; else plain number without pmcu800 prefix id_num idu800 match \' du800 \' ; ifu800 here idu800 isu800 allu800 digits endu800 ifu800 is_set id_num then id_num hasu800 au800 value sou800 test itu800 id_num tonumber id_num ; convert id_num tou800 au800 number foru800 range testing ifu800 1u800 id_num oru800 test_limit format pmid andu800 dou800 simple error checking. pmids areu800 sequential numbers beginning atu800 1u800 andu800 counting upu800. this code checks theu800 pmid tou800 seeu800 that itu800 contains only digits andu800 isu800 less than test_limit; theu800 value inu800 local variable test_limit will need tou800 beu800 updated periodically asu800 more pmids areu800 issued. local function pmid idu800 local test_limit 33000000; update this value asu800 pmids approach local handler cfgu800u82eid_handlers \'pmid\' ; local err_cat  ; presume that pmid isu800 valid idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 ifu800 idu800 match \" du800 \" then ifu800 pmid hasu800 anything butu800 digits err_cat \' \' .. set_error \'bad_pmid\' ; setu800 anu800 error message else pmid isu800 only digits local id_num tonumber idu800 ; convert idu800 tou800 au800 number foru800 range testing ifu800 1u800 id_num oru800 test_limit format anu800 ssrn dou800 simple error checking ssrns areu800 sequential numbers beginning atu800 100u800 andu800 counting upu800. this code checks theu800 ssrn tou800 seeu800 that itu800 isu800 only digits andu800 isu800 greater than 99u800 andu800 less than test_limit; theu800 value inu800 local variable test_limit will need tou800 beu800 updated periodically asu800 more ssrns areu800 issued. local function ssrn idu800 local test_limit 3500000; update this value asu800 ssrns approach local handler cfgu800u82eid_handlers \'ssrn\' ; local err_cat  ; presume that ssrn isu800 valid local id_num; local text; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 id_num idu800 match \' du800 \' ; idu800 must beu800 allu800 digits ifu800 is_set id_num then id_num hasu800 au800 value sou800 test itu800 id_num tonumber id_num ; convert id_num tou800 au800 number foru800 range testing ifu800 100u800 id_num oru800 test_limit validate andu800 format au800 usenet message idu800. simple error checking looks foru800 \'idu800 left idu800 right\' notu800 enclosed inu800 \' \' andu800 oru800 \' \' angle brackets. local function usenet_id idu800 local handler cfgu800u82eid_handlers \'usenetid\' ; local text external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode ifu800 notu800 idu800 match \' . . \' oru800 notu800 idu800 match \' .* \' then doesn\'tu800 have \' \' oru800 hasu800 oneu800 oru800 first oru800 last character isu800 \' \' text text .. \' \' .. set_error \'bad_usenet_id\' addu800 anu800 error message ifu800 theu800 message idu800 isu800 invalid endu800 return text endu800 au800 numerical identifier inu800 theu800 form nnnnu82ennnnn leading zeros inu800 theu800 first quartet optional local function zblu800 idu800 local handler cfgu800u82eid_handlers \'zblu800\' ; local id_num; local err_cat  ; idu800 mwu800u82eustringu82egsub idu800 \' du800\' cfgu800u82edate_namesu82elocal_digits ; falocalization translate \'local\' digits tou800 western 0u800 9u800 id_num idu800 match \' zzu800 bbu800 llu800 .* \' ; identifier with zblu800 prefix; extract identifier ifu800 is_set id_num then add_maint_cat \'zbl_format\' ; else plain number without zblu800 prefix id_num idu800; ifu800 here idu800 does notu800 have prefix endu800 ifu800 id_num match \' du800 du800 du800 du800 . du800 du800 du800 du800 du800 \' then idu800 id_num; idu800 matches pattern else err_cat \' \' .. set_error \'bad_zbl\' ; setu800 anu800 error message endu800 return external_link_id link handleru82elink label handleru82elabel qu800 handleru82equ800 prefix handleru82eprefix idu800 idu800 separator handleru82eseparator encode handleru82eencode .. err_cat; endu800 takes au800 table ofu800 idsu800 created byu800 extract_ids andu800 turns itu800 into au800 table ofu800 formatted idu800 outputs. inputs id_list u8e28093 table ofu800 identifiers built byu800 extract_ids options u8e28093 table ofu800 various template parameter values used tou800 modify some manually handled identifiers local function build_id_list id_list options local new_list handler ; local function fallback ku800 return __index function tu800 iu800 return cfgu800u82eid_handlers ku800 iu800 endu800 endu800; foru800 ku800 vu800 inu800 pairs id_list dou800 ku800 isu800 ucu800 identifier name asu800 index tou800 cfgu800u82eid_handlers; eu800u82egu800. cfgu800u82eid_handlers \'isbn\' vu800 isu800 au800 table fallback tou800 read only cfgu800 vu800 numconv \'fau800\' vu800 ; handler setmetatable \'idu800\' vu800 \'access optionsu82eidaccesslevels ku800 fallback ku800 ; ifu800 handleru82emode \'external\' then tableu82einsert new_list handleru82elabel external_link_id handler ; elseif handleru82emode \'internal\' then tableu82einsert new_list handleru82elabel internal_link_id handler ; elseif handleru82emode \'manual\' then error cfgu800u82emessages \'unknown_id_mode\' ; elseif ku800 \'arxiv\' then tableu82einsert new_list handleru82elabel arxiv vu800 optionsu82eclass ; elseif ku800 \'asin\' then tableu82einsert new_list handleru82elabel asin vu800 optionsu82easintld ; elseif ku800 \'bibcode\' then tableu82einsert new_list handleru82elabel bibcode vu800 handleru82eaccess ; elseif ku800 \'biorxiv\' then tableu82einsert new_list handleru82elabel biorxiv vu800 ; elseif ku800 \'citeseerx\' then tableu82einsert new_list handleru82elabel citeseerx vu800 ; elseif ku800 \'doiu800\' then tableu82einsert new_list handleru82elabel doiu800 vu800 optionsu82edoibroken handleru82eaccess ; elseif ku800 \'eissn\' then tableu82einsert new_list handleru82elabel issn vu800 true ; true distinguishes eissn from issn elseif ku800 \'hdlu800\' then tableu82einsert new_list handleru82elabel hdlu800 vu800 handleru82eaccess ; elseif ku800 \'isbn\' then local isbn internal_link_id handler ; local check; local err_type  ; check err_type isbn vu800 ; ifu800 notu800 check then ifu800 is_set optionsu82eignoreisbn then isbn isu800 invalid; ifu800 ignore isbn error setu800 add_maint_cat \'ignore_isbn_err\' ; adu800 au800 maint category else isbn isbn .. set_error \'bad_isbn\' err_type false \" \" \"\" ; else display anu800 error message endu800 elseif is_set optionsu82eignoreisbn then isbn isu800 oku800; ifu800 ignore isbn error setu800 add_maint_cat \'ignore_isbn_err\' ; because ignore isbn error unnecessary endu800 tableu82einsert new_list handleru82elabel isbn ; elseif ku800 \'ismn\' then tableu82einsert new_list handleru82elabel ismn vu800 ; elseif ku800 \'issn\' then check issn issn vu800 ; internal_link_id handler ifu800 notu800 check then ifu800 is_set optionsu82eignoreissn then issn isu800 invalid; ifu800 ignore isbn error setu800 add_maint_cat \'ignore_issn_err\' ; adu800 au800 maint category else issn issn .. set_error \'bad_issn\' err_type false \" \" \"\" ; else display anu800 error message issn issn .. set_error \'bad_issn\' eu800 andu800 \'eu800\' oru800   endu800 elseif is_set optionsu82eignoreissn then issn isu800 oku800; ifu800 ignore issn error setu800 add_maint_cat \'ignore_issn_err\' ; because ignore issn error unnecessary endu800 tableu82einsert new_list handleru82elabel issn ; elseif ku800 \'jfmu800\' then tableu82einsert new_list handleru82elabel jfmu800 vu800 ; elseif ku800 \'lccn\' then tableu82einsert new_list handleru82elabel lccn vu800 ; elseif ku800 \'mru800\' then tableu82einsert new_list handleru82elabel mru800 vu800 ; elseif ku800 \'oclc\' then tableu82einsert new_list handleru82elabel oclc vu800 ; elseif ku800 \'olu800\' oru800 ku800 \'olau800\' then tableu82einsert new_list handleru82elabel openlibrary vu800 handleru82eaccess ; elseif ku800 \'pmcu800\' then tableu82einsert new_list handleru82elabel pmcu800 vu800 optionsu82eembargo ; elseif ku800 \'pmid\' then tableu82einsert new_list handleru82elabel pmid vu800 ; elseif ku800 \'ssrn\' then tableu82einsert new_list handleru82elabel ssrn vu800 ; elseif ku800 \'usenetid\' then tableu82einsert new_list handleru82elabel usenet_id vu800 ; elseif ku800 \'zblu800\' then tableu82einsert new_list handleru82elabel zblu800 vu800 ; else error cfgu800u82emessages \'unknown_manual_id\' ; endu800 endu800 local function comp au800 bu800 used inu800 following tableu82esort return au800 1u800 lower populates idu800 table from arguments using configuration settings. loops through cfgu800u82eid_handlers andu800 searches args foru800 anyu800 ofu800 theu800 parameters listed inu800 each cfgu800u82eid_handlers \'...\' .parameters. ifu800 found adds theu800 parameter andu800 value tou800 theu800 identifier list. emits redundant error message isu800 more than oneu800 alias exists inu800 args local function extract_ids args local id_list ; list ofu800 identifiers found inu800 args foru800 ku800 vu800 inu800 pairs cfgu800u82eid_handlers dou800 ku800 isu800 ucu800 identifier name asu800 index tou800 cfgu800u82eid_handlers; eu800u82egu800. cfgu800u82eid_handlers \'isbn\' vu800 isu800 au800 table vu800 select_one args vu800u82eparameters \'redundant_parameters ; vu800u82eparameters isu800 au800 table ofu800 aliases foru800 ku800; here weu800 pick oneu800 from args ifu800 present ifu800 is_set vu800 then id_list ku800 vu800; endu800 ifu800 found inu800 args addu800 identifier tou800 ouru800 list endu800 return id_list; endu800 fetches custom idu800 access levels from arguments using configuration settings. parameters which have au800 predefined access level eu800u82egu800. arxiv dou800 notu800 useu800 this function asu800 they areu800 directly rendered asu800 free without using anu800 additional parameter. local function extract_id_access_levels args id_list local id_accesses_list ; foru800 ku800 vu800 inu800 pairs cfgu800u82eid_handlers dou800 local access_param vu800u82ecustom_access; local k_lower stringu82elower ku800 ; ifu800 is_set access_param then local access_level args access_param ; ifu800 is_set access_level then ifu800 notu800 in_array access_level lower cfgu800u82ekeywords \'idu800 access then tableu82einsert zu800u82emessage_tail set_error \'invalid_param_val\' access_param access_level true ; access_level nilu800; endu800 ifu800 notu800 is_set id_list ku800 then tableu82einsert zu800u82emessage_tail set_error \'param_access_requires_param\' k_lower true ; endu800 ifu800 is_set access_level then access_level access_level lower ; endu800 id_accesses_list ku800 access_level; endu800 endu800 endu800 return id_accesses_list; endu800 sets local cfgu800 table andu800 imported functions table tou800 same live oru800 sandbox asu800 that used byu800 theu800 other modules. local function set_selected_modules cfg_table_ptr utilities_page_ptr cfgu800 cfg_table_ptr; is_set utilities_page_ptru82eis_set; import functions from select module citation cs1u800 utilities module in_array utilities_page_ptru82ein_array; set_error utilities_page_ptru82eset_error; select_one utilities_page_ptru82eselect_one; add_maint_cat utilities_page_ptru82eadd_maint_cat; substitute utilities_page_ptru82esubstitute; make_wikilink utilities_page_ptru82emake_wikilink; zu800 utilities_page_ptru82ezu800; table ofu800 tables inu800 module citation cs1u800 utilities endu800 return build_id_list build_id_list extract_ids extract_ids extract_id_access_levels extract_id_access_levels is_embargoed is_embargoed; set_selected_modules set_selected_modules; ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(351, 'citation cs1u800 fau800 suggestions', ' please insert newu800 suggestions inu800 alphabetical order theu800 form isu800 \'incorrect\' \'correct\' suggestions \'accessmonth\' \'access date\' nou800 longer supported byu800 usu800 butu800 still byu800 citation templates mirrored inu800 foreign wpsu800; canu800 beu800 emulated using \'access date\' \'accesso\' \'access date\' italian \'accessyear\' \'access date\' nou800 longer supported byu800 usu800 butu800 still byu800 citation templates mirrored inu800 foreign wpsu800; canu800 beu800 emulated using \'access date\' \'address \'location\' \'annu8c3a9e\' \'year\' french \'au8c3b1o\' \'year\' \'au8c3b1o original\' \'orig year\' \'au8c3b1oacceso\' \'access date\' spanish \'annoaccesso\' \'access date\' italian \'annodiaccesso\' \'access date\' italian \'apellido\' \'last\' spanish \'archiv datum\' \'archive date\' german \'archive date\' \'archive date\' \'archiv urlu800\' \'archive urlu800\' german \'archive urlu800\' \'archive urlu800\' spanish \'artist\' \'others \'auflage\' \'edition\' german \'auteur\' \'author\' french \'auther\' \'author\' \'author link\' \'author link\' polish \'author link2\' \'author2 link\' polish \'autor\' \'authors german singular andu800 plural \'autore\' \'author\' italian \'autthor\' \'author\' \'band\' \'volume\' german \'chapter_title\' \'chapter\' \'cita\' \'quote\' spanish \'citazione\' \'quote\' italian \'coauthor\' \'author\' \'coauthors \'author\' \'coautores \'author\' spanish \'coautori\' \'author\' italian \'cognome\' \'last\' italian \'consultu8c3a9 leu800\' \'access date\' french \'czasopismo\' \'journal\' polish \'data\' \'date\' polish italian \'dataarchivio\' \'archive date\' italian \'data dostu8c499pu\' \'access date\' polish \'datum\' \'date\' german \'deadlink\' \'dead urlu800\' \'distributor\' \'publisher\' \'dnbu800\' \'idu800\' german asu800 \'idu800 dnbu800 idnu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'u8c3a9diteur\' \'editor\' french \'editon\' \'edition\' \'editoin\' \'edition\' \'editorial\' \'publisher\' \'enu800 ligne leu800\' \'archive date\' french \'encyclopu8c3a6dia\' \'encyclopedia\' \'enlaceautor\' \'author link\' spanish \'fecha\' \'date\' spanish \'fechaacceso\' \'access date\' spanish \'fechaarchivo\' \'archive date\' spanish \'filetype\' \'format\' \'first 1u800\' \'first1\' \'foramt\' \'format\' \'formato\' \'format\' spanish italian polish \'frist\' \'first\' \'herausgeber\' \'editors german singular andu800 plural \'idioma\' \'language\' spanish italian \'imiu8c499\' \'first\' polish \'isbnistformalfalsch\' \'ignore isbn error\' german \'isnb\' \'isbn\' \'jahr\' \'year\' german \'kapitel\' \'chapter\' german \'kommentar\' \'comment\' german notu800 yetu800 supported byu800 usu800 \'lang\' \'language\' \'langauge\' \'language\' \'langue\' \'language\' french \'last 1u800\' \'last1\' \'lieu\' \'location\' french \'lingua\' \'language\' italian \'lire enu800 ligne\' \'urlu800\' french \'lizenznummer\' \'idu800\' german asu800 \'idu800 license ...\' \'loaction\' \'location\' \'locatoin\' \'location\' \'lugar\' \'location\' spanish \'miejsce\' \'location\' polish \'miesiu8c485c\' \'date\' polish \'mois \'date\' french \'monat\' \'date\' german \'name\' \'author\' \'name\' isu800 often erroneously used foru800 \'title\' andu800 \'work\' asu800 well sou800 nou800 suggestion isu800 better than au800 wrong suggestion \'nazwisko\' \'last\' polish \'nespaper\' \'newspaper\' \'newpaper\' \'newspaper\' \'news \'newspaper\' \'nomu800\' \'last\' french \'nom1\' \'last1\' french \'nombre\' \'first\' spanish \'nome\' \'first\' italian \'nummer\' \'number\' german \'obra\' \'work\' spanish \'odpowiedzialnou8c59bu8c487\' \'agency\' polish \'offline\' \'dead urlu800\' german \'online\' \'urlu800\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'opublikowany\' \'agency\' polish \'opera\' \'work\' italian \'origdate\' \'orig year\' \'originaljahr\' \'orig year\' german \'originalort\' \'location\' german ifu800 \'ortu800\' isu800 specified atu800 theu800 same time theu800 latter should beu800 putu800 inu800 \'publication place\' \'originalsprache\' \'language\' german \'originaltitel\' \'title\' german ifu800 \'originaltitel\' isu800 specified anyu800 possible contents ofu800 \'title\' should beu800 putu800 inu800 \'trans title\' \'ortu800\' \'location\' german \'other\' \'others \'oznaczenie\' \'agency\' polish \'pagees \'pages \'pu8c3a1gina\' \'page\' spanish italian \'pu8c3a1ginas \'pages spanish italian \'passage\' \'pages french \'pagina\' \'pages italian \'pagine\' \'pages italian \'pu8c3a9riodique\' \'publisher\' french \'plublisher\' \'publisher\' \'pmcid\' \'pmcu800\' \'praca\' \'work\' polish \'pru8c3a9nom\' \'first\' french \'pru8c3a9nom1\' \'first1\' french \'psu800 \'postscript\' \'pubu800\' \'publisher\' \'pulbication place\' \'publication place\' \'reihe\' \'series german \'retrieved\' \'access date\' \'roku800\' \'date\' polish \'sammelwerk\' \'work\' german \'seiten\' \'pages german \'seria\' \'series polish \'su8c3a9rie\' \'work\' french *recheck* \'service\' \'agency\' \'sitioweb\' \'website\' spanish \'stron\' \'page\' polish \'strony\' \'pages polish \'spalten\' \'atu800\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'sprache\' \'language\' german \'suscripciu8c3b3n\' \'subscription\' spanish polish \'tagu800\' \'date\' german \'tile\' \'title\' \'tite\' \'title\' \'titel\' \'title\' german \'titel pu800\' \'title\' german \'postscript none\' should beu800 added asu800 well \'titelerg\' \'contribution\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'titolo\' \'title\' spanish italian \'titre\' \'title\' french \'tu8c3adtle\' \'title\' \'tu8c3adtulo\' \'title\' spanish \'transchapter\' \'trans chapter\' \'translator\' \'others \'transtitle\' \'trans title\' \'typu800\' \'author mask\' german notu800 au800 direct replacement butu800 theu800 only valid argument \'typu800 wlu800\' canu800 beu800 emulated using \'author mask\' \'tytuu8c582\' \'title\' polish \'ubicaciu8c3b3n\' \'location\' spanish \'urlarchivo\' \'archive urlu800\' spanish \'urlarchivio\' \'archive urlu800\' italian \'urnu800\' \'idu800\' german asu800 \'idu800 urnu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'u8c3bcbersetzer\' \'translator\' german singular andu800 plural \'verlag\' \'publisher\' german \'volu800\' \'volume\' \'volumen\' \'volume\' spanish \'werk\' \'work\' german \'werkerg\' \'contribution\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'wkautore\' \'author link\' italian \'wolumin\' \'volume\' polish \'wydanie\' \'number\' polish \'wydawca\' \'publisher\' french \'zaprezentowany\' \'publisher\' french \'zdbu800\' \'idu800\' german asu800 \'idu800 zdbu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'zitat\' \'quote\' german \'zugriff\' \'access date\' german \'u8d988u8d8a8u8e2808cu8daafu8d8a7u8d987\' \'u8d988u8d8a8u8daafu8d8a7u8d987\' here weu800 useu800 luau800 patterns tou800 make suggestions. theu800 form isu800 \'pattern\' \'correct\' luau800 patterns areu800 notu800 regex though they areu800 similar. theu800 escape character isu800 \' \' notu800 \' \'. foru800 more information about luau800 patterns seeu800 extension scribunto lua_reference_manual#patterns patterns should probably always include theu800 \' \' andu800 \' \' anchor assertions tou800 prevent au800 partial match from incorrectly suggesting theu800 wrong parameter name. foru800 instance theu800 pattern \'au800 utho ru800\' matches \'author\' inu800 theu800 nou800 longer supported parameter author separator sou800 theu800 code suggests \' author \'; theu800 same pattern also matches theu800 nou800 longer supported parameter separator returning \'ator\' sou800 again theu800 code suggests \' author \'. oneu800 capture isu800 supported typically theu800 enumerator from anu800 enumerated parameter theu800 \'6u800\' inu800 author6 etcu800. theu800 value from theu800 capture replaces 1u800 inu800 theu800 \'correct\' value. local patterns \' acu800 esu800 du800 au800 tu800 eu800 \' \'access date\' \' au800 utho ru800 \' \'author\' \' au800 utho ru800 du800 \' \'author 1u800\' enumerated \' puu800 blish ersu800 \' \'publisher\' return suggestions suggestions patterns patterns ; '),
(352, 'citation cs1u800 fau800 suggestions sandbox', ' please insert newu800 suggestions inu800 alphabetical order theu800 form isu800 \'incorrect\' \'correct\' suggestions \'accessmonth\' \'access date\' nou800 longer supported byu800 usu800 butu800 still byu800 citation templates mirrored inu800 foreign wpsu800; canu800 beu800 emulated using \'access date\' \'accesso\' \'access date\' italian \'accessyear\' \'access date\' nou800 longer supported byu800 usu800 butu800 still byu800 citation templates mirrored inu800 foreign wpsu800; canu800 beu800 emulated using \'access date\' \'address \'location\' \'annu8c3a9e\' \'year\' french \'au8c3b1o\' \'year\' \'au8c3b1o original\' \'orig year\' \'au8c3b1oacceso\' \'access date\' spanish \'annoaccesso\' \'access date\' italian \'annodiaccesso\' \'access date\' italian \'apellido\' \'last\' spanish \'archiv datum\' \'archive date\' german \'archive date\' \'archive date\' \'archiv urlu800\' \'archive urlu800\' german \'archive urlu800\' \'archive urlu800\' spanish \'artist\' \'others \'auflage\' \'edition\' german \'auteur\' \'author\' french \'auther\' \'author\' \'author link\' \'author link\' polish \'author link2\' \'author2 link\' polish \'autor\' \'authors german singular andu800 plural \'autore\' \'author\' italian \'autthor\' \'author\' \'band\' \'volume\' german \'chapter_title\' \'chapter\' \'cita\' \'quote\' spanish \'citazione\' \'quote\' italian \'coauthor\' \'author\' \'coauthors \'author\' \'coautores \'author\' spanish \'coautori\' \'author\' italian \'cognome\' \'last\' italian \'consultu8c3a9 leu800\' \'access date\' french \'czasopismo\' \'journal\' polish \'data\' \'date\' polish italian \'dataarchivio\' \'archive date\' italian \'data dostu8c499pu\' \'access date\' polish \'datum\' \'date\' german \'deadlink\' \'dead urlu800\' \'distributor\' \'publisher\' \'dnbu800\' \'idu800\' german asu800 \'idu800 dnbu800 idnu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'u8c3a9diteur\' \'editor\' french \'editon\' \'edition\' \'editoin\' \'edition\' \'editorial\' \'publisher\' \'enu800 ligne leu800\' \'archive date\' french \'encyclopu8c3a6dia\' \'encyclopedia\' \'enlaceautor\' \'author link\' spanish \'fecha\' \'date\' spanish \'fechaacceso\' \'access date\' spanish \'fechaarchivo\' \'archive date\' spanish \'filetype\' \'format\' \'first 1u800\' \'first1\' \'foramt\' \'format\' \'formato\' \'format\' spanish italian polish \'frist\' \'first\' \'herausgeber\' \'editors german singular andu800 plural \'idioma\' \'language\' spanish italian \'imiu8c499\' \'first\' polish \'isbnistformalfalsch\' \'ignore isbn error\' german \'isnb\' \'isbn\' \'jahr\' \'year\' german \'kapitel\' \'chapter\' german \'kommentar\' \'comment\' german notu800 yetu800 supported byu800 usu800 \'lang\' \'language\' \'langauge\' \'language\' \'langue\' \'language\' french \'last 1u800\' \'last1\' \'lieu\' \'location\' french \'lingua\' \'language\' italian \'lire enu800 ligne\' \'urlu800\' french \'lizenznummer\' \'idu800\' german asu800 \'idu800 license ...\' \'loaction\' \'location\' \'locatoin\' \'location\' \'lugar\' \'location\' spanish \'miejsce\' \'location\' polish \'miesiu8c485c\' \'date\' polish \'mois \'date\' french \'monat\' \'date\' german \'name\' \'author\' \'name\' isu800 often erroneously used foru800 \'title\' andu800 \'work\' asu800 well sou800 nou800 suggestion isu800 better than au800 wrong suggestion \'nazwisko\' \'last\' polish \'nespaper\' \'newspaper\' \'newpaper\' \'newspaper\' \'news \'newspaper\' \'nomu800\' \'last\' french \'nom1\' \'last1\' french \'nombre\' \'first\' spanish \'nome\' \'first\' italian \'nummer\' \'number\' german \'obra\' \'work\' spanish \'odpowiedzialnou8c59bu8c487\' \'agency\' polish \'offline\' \'dead urlu800\' german \'online\' \'urlu800\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'opublikowany\' \'agency\' polish \'opera\' \'work\' italian \'origdate\' \'orig year\' \'originaljahr\' \'orig year\' german \'originalort\' \'location\' german ifu800 \'ortu800\' isu800 specified atu800 theu800 same time theu800 latter should beu800 putu800 inu800 \'publication place\' \'originalsprache\' \'language\' german \'originaltitel\' \'title\' german ifu800 \'originaltitel\' isu800 specified anyu800 possible contents ofu800 \'title\' should beu800 putu800 inu800 \'trans title\' \'ortu800\' \'location\' german \'other\' \'others \'oznaczenie\' \'agency\' polish \'pagees \'pages \'pu8c3a1gina\' \'page\' spanish italian \'pu8c3a1ginas \'pages spanish italian \'passage\' \'pages french \'pagina\' \'pages italian \'pagine\' \'pages italian \'pu8c3a9riodique\' \'publisher\' french \'plublisher\' \'publisher\' \'pmcid\' \'pmcu800\' \'praca\' \'work\' polish \'pru8c3a9nom\' \'first\' french \'pru8c3a9nom1\' \'first1\' french \'psu800 \'postscript\' \'pubu800\' \'publisher\' \'pulbication place\' \'publication place\' \'reihe\' \'series german \'retrieved\' \'access date\' \'roku800\' \'date\' polish \'sammelwerk\' \'work\' german \'seiten\' \'pages german \'seria\' \'series polish \'su8c3a9rie\' \'work\' french *recheck* \'service\' \'agency\' \'sitioweb\' \'website\' spanish \'stron\' \'page\' polish \'strony\' \'pages polish \'spalten\' \'atu800\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'sprache\' \'language\' german \'suscripciu8c3b3n\' \'subscription\' spanish polish \'tagu800\' \'date\' german \'tile\' \'title\' \'tite\' \'title\' \'titel\' \'title\' german \'titel pu800\' \'title\' german \'postscript none\' should beu800 added asu800 well \'titelerg\' \'contribution\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'titolo\' \'title\' spanish italian \'titre\' \'title\' french \'tu8c3adtle\' \'title\' \'tu8c3adtulo\' \'title\' spanish \'transchapter\' \'trans chapter\' \'translator\' \'others \'transtitle\' \'trans title\' \'typu800\' \'author mask\' german notu800 au800 direct replacement butu800 theu800 only valid argument \'typu800 wlu800\' canu800 beu800 emulated using \'author mask\' \'tytuu8c582\' \'title\' polish \'ubicaciu8c3b3n\' \'location\' spanish \'urlarchivo\' \'archive urlu800\' spanish \'urlarchivio\' \'archive urlu800\' italian \'urnu800\' \'idu800\' german asu800 \'idu800 urnu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'u8c3bcbersetzer\' \'translator\' german singular andu800 plural \'verlag\' \'publisher\' german \'volu800\' \'volume\' \'volumen\' \'volume\' spanish \'werk\' \'work\' german \'werkerg\' \'contribution\' german notu800 au800 direct replacement butu800 canu800 beu800 emulated \'wkautore\' \'author link\' italian \'wolumin\' \'volume\' polish \'wydanie\' \'number\' polish \'wydawca\' \'publisher\' french \'zaprezentowany\' \'publisher\' french \'zdbu800\' \'idu800\' german asu800 \'idu800 zdbu800 ... \' notu800 yetu800 supported byu800 usu800 directly \'zitat\' \'quote\' german \'zugriff\' \'access date\' german \'u8d988u8d8a8u8e2808cu8daafu8d8a7u8d987\' \'u8d988u8d8a8u8daafu8d8a7u8d987\' \'u8daa9u8d8aau8d8a7u8d8a8\' \'u8d8b9u8d986u8d988u8d8a7u8d986\' here weu800 useu800 luau800 patterns tou800 make suggestions. theu800 form isu800 \'pattern\' \'correct\' luau800 patterns areu800 notu800 regex though they areu800 similar. theu800 escape character isu800 \' \' notu800 \' \'. foru800 more information about luau800 patterns seeu800 extension scribunto lua_reference_manual#patterns patterns should probably always include theu800 \' \' andu800 \' \' anchor assertions tou800 prevent au800 partial match from incorrectly suggesting theu800 wrong parameter name. foru800 instance theu800 pattern \'au800 utho ru800\' matches \'author\' inu800 theu800 nou800 longer supported parameter author separator sou800 theu800 code suggests \' author \'; theu800 same pattern also matches theu800 nou800 longer supported parameter separator returning \'ator\' sou800 again theu800 code suggests \' author \'. oneu800 capture isu800 supported typically theu800 enumerator from anu800 enumerated parameter theu800 \'6u800\' inu800 author6 etcu800. theu800 value from theu800 capture replaces 1u800 inu800 theu800 \'correct\' value. local patterns \' acu800 esu800 du800 au800 tu800 eu800 \' \'access date\' \' au800 utho ru800 \' \'author\' \' au800 utho ru800 du800 \' \'author 1u800\' enumerated \' puu800 blish ersu800 \' \'publisher\' return suggestions suggestions patterns patterns ; '),
(353, 'citation cs1u800 fau800 suggestions u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa', ' u8da86u8d9beu8e2808cu8da86u8db8cu8d986 class \"wikitable\" style \"margin 1emu800 auto 1emu800 auto;\" cs1u800 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 &nbsp; u8d981u8d8a7u8d8b1u8d8b3u8db8c colspan \"2u800\" u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b4u8d8afu8d987 u8d8b4u8d8b1u8d8ad u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4u8db8c rowspan \"8u800\" file full protection shackleu82esvgu800 20px altu800 gold padlock link sysop module citation cs1u800 fau800 u8d8a8u8d984u8d987 plain link urlu800 name edit rendering andu800 support functions module citation cs1u800 fau800 sandbox sandbox module citation cs1u800 fau800 configuration u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d8b9u8d8b1u8db8cu8d981u8e2808cu8d987u8d8a7u8db8c u8d985u8d8aau8d986u8e2808cu8d987u8d8a7u8db8c u8d985u8d8b1u8d8aau8d8a8u8d8b7 u8d8a8u8d8a7 u8d8b4u8d986u8d8a7u8d8b3u8d987u8e2808cu8d987u8d8a7u8d88c u8d8b1u8d8afu8d987u8e2808cu8d987u8d8a7 u8d988 u8d8aeu8d8b7u8d8a7u8d987u8d8a7 u8d988 u8d8aau8d8b1u8d8acu8d985u8d987u8e2808cu8d987u8d8a7u8db8c u8d985u8d8adu8d984u8db8c u8d985u8d8aau8d986u8d8a7u8d8b8u8d8b1 module citation cs1u800 fau800 configuration sandbox sandbox module citation cs1u800 fau800 whitelist u8d8a8u8d984u8d987 plain link urlu800 name edit u8d981u8d987u8d8b1u8d8b3u8d8aa u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d981u8d8b9u8d8a7u8d984u8d88c u8d8bau8db8cu8d8b1u8d981u8d8b9u8d8a7u8d984u8d88c u8d988 u8d985u8d987u8d8acu8d988u8d8b1 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 module citation cs1u800 fau800 whitelist sandbox sandbox module citation cs1u800 fau800 date validation u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8d8afu8d8b1u8d8b3u8d8aau8db8c u8d8aau8d8a7u8d8b1u8db8cu8d8aeu8e2808cu8d987u8d8a7 module citation cs1u800 fau800 date validation sandbox sandbox module citation cs1u800 fau800 identifiers u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8cu8e2808cu8daa9u8d986u8d986u8d8afu8d987 u8d8a7u8d8b2 u8d8b4u8d986u8d8a7u8d8b3u8d987u8e2808cu8d987u8d8a7 u8d8b4u8d8a7u8d8a8u8daa9u8d88c doiu8d88c pmidu8d88c ... module citation cs1u800 fau800 identifiers sandbox sandbox module citation cs1u800 fau800 utilities u8d8aeu8db8cu8d8b1 plain link urlu800 name edit u8d8b3u8d8a7u8db8cu8d8b1 u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d988 u8d8acu8d8afu8d8a7u8d988u8d984 u8d8b6u8d8b1u8d988u8d8b1u8db8c module citation cs1u800 fau800 utilities sandbox sandbox module citation cs1u800 fau800 coins u8d8aeu8db8cu8d8b1 plain link urlu800 name edit functions that render au800 cs1u800 pipe 2u800 template template\'su800 metadata module citation cs1u800 fau800 coins sandbox sandbox module citation cs1u800 fau800 stylesu82ecssu800 u8d8aeu8db8cu8d8b1 plain link urlu800 name edit cssu800 styles applied tou800 theu800 cs1u800 pipe 2u800 templates module citation cs1u800 fau800 sandbox stylesu82ecssu800 sandbox file semi protection shackleu82esvgu800 20px altu800 silver padlock link auto confirmed module citation cs1u800 fau800 suggestions u8d8aeu8db8cu8d8b1 plain link urlu800 name edit u8d8acu8d8afu8d988u8d984u8db8c u8d8a8u8d8b1u8d8a7u8db8c u8d985u8d8aau8d986u8d8a7u8d8b8u8d8b1 u8daa9u8d8b1u8d8afu8d986 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8db8c u8d985u8d8adu8d8aau8d985u8d984 u8d8a8u8d8a7 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8b5u8d8adu8db8cu8d8ad u8d985u8d8abu8d984u8d8a7 u8d8adu8d984u8d8af u8d8acu8d984u8d8af module citation cs1u800 fau800 suggestions sandbox sandbox u8d9beu8d8a7u8db8cu8d8a7u8d986 u8da86u8d9beu8e2808cu8da86u8db8cu8d986 '),
(354, 'citation cs1u800 fau800 utilities', ' local uu800 local zu800 error_categories ; foru800 categorizing citations that contain errors error_ids ; message_tail ; maintenance_cats ; foru800 categorizing citations that aren\'tu800 erroneous peru800 seu800 butu800 could useu800 au800 little work properties_cats ; foru800 categorizing citations based onu800 certain properties language ofu800 source foru800 instance ; local cfgu800; table ofu800 tables imported from selected module citation cs1u800 configuration returns true ifu800 argument isu800 setu800; false otherwise. argument isu800 \'setu800\' when itu800 exists notu800 nilu800 oru800 when itu800 isu800 notu800 anu800 empty string. local function is_set varu800 return notu800 varu800 nilu800 oru800 varu800   ; endu800 whether needle isu800 inu800 haystack local function in_array needle haystack ifu800 needle nilu800 then return false; endu800 foru800 nu800 vu800 inu800 ipairs haystack dou800 ifu800 vu800 needle then return nu800; endu800 endu800 return false; endu800 populates numbered arguments inu800 au800 message string using anu800 argument table. local function substitute msgu800 args return args andu800 mwu800u82emessageu82enewrawmessage msgu800 args plain oru800 msgu800; endu800 wraps error messages with cssu800 markup according tou800 theu800 state ofu800 hidden. local function error_comment content hidden return substitute hidden andu800 cfgu800u82epresentation \'hidden error\' oru800 cfgu800u82epresentation \'visible error\' content ; endu800 makes au800 wikilink; when botu800 link andu800 display text isu800 provided returns au800 wikilink inu800 theu800 form lu800 du800 ; ifu800 only link isu800 provided returns au800 wikilink inu800 theu800 form lu800 ; ifu800 neither areu800 provided oru800 link isu800 omitted returns anu800 empty string. local function make_wikilink link display ifu800 is_set link then ifu800 is_set display then return tableu82econcat \' \' link \' \' display \' \' ; else return tableu82econcat \' \' link \' \' ; endu800 else return  ; endu800 endu800 sets anu800 error condition andu800 returns theu800 appropriate error message. theu800 actual placement ofu800 theu800 error message inu800 theu800 output isu800 theu800 responsibility ofu800 theu800 calling function. local function set_error error_id arguments rawu800 prefix suffix local error_state cfgu800u82eerror_conditions error_id ; prefix prefix oru800 \"\"; suffix suffix oru800 \"\"; ifu800 error_state nilu800 then error cfgu800u82emessages \'undefined_error\' ; because missing error handler inu800 module citation cs1u800 configuration elseif is_set error_stateu82ecategory then tableu82einsert zu800u82eerror_categories error_stateu82ecategory ; endu800 local message substitute error_stateu82emessage arguments ; message tableu82econcat message \' \' make_wikilink tableu82econcat cfgu800u82emessages \'help page link\' \'#\' error_stateu82eanchor cfgu800u82emessages \'help page label\' \' \' ; message tableu82econcat message \' \' substitute cfgu800u82epresentation \'wikilink\' cfgu800u82emessages \'help page link\' .. \'#\' .. error_stateu82eanchor cfgu800u82emessages \'help page label\' \' \' ; message message .. \" \" .. cfgu800u82emessages \'help page link\' .. \"#\" .. error_stateu82eanchor .. \" \" .. cfgu800u82emessages \'help page label\' .. \" \"; zu800u82eerror_ids error_id true; ifu800 in_array error_id \'bare_url_missing_title\' \'trans_missing_title\' andu800 zu800u82eerror_ids \'citation_missing_title\' then return   false; endu800 message tableu82econcat prefix message suffix ; ifu800 rawu800 true then return message error_stateu82ehidden; endu800 return error_comment message error_stateu82ehidden ; endu800 this function isu800 used byu800 select_one tou800 determine ifu800 oneu800 ofu800 au800 list ofu800 alias parameters isu800 inu800 theu800 argument list provided byu800 theu800 template. input args u8e28093 pointer tou800 theu800 arguments table from calling template alias u8e28093 oneu800 ofu800 theu800 list ofu800 possible aliases inu800 theu800 aliases lists from module citation cs1u800 configuration index u8e28093 foru800 enumerated parameters identifies which oneu800 enumerated u8e28093 true false flag used choose howu800 enumerated aliases areu800 examined value u8e28093 value associated with anu800 alias that hasu800 previously been selected; nilu800 ifu800 notu800 yetu800 selected selected u8e28093 theu800 alias that hasu800 previously been selected; nilu800 ifu800 notu800 yetu800 selected error_list u8e28093 list ofu800 aliases that areu800 duplicates ofu800 theu800 alias already selected returns value u8e28093 value associated with alias weu800 selected oru800 that wasu800 previously selected oru800 nilu800 ifu800 anu800 alias notu800 yetu800 selected selected u8e28093 theu800 alias weu800 selected oru800 theu800 alias that wasu800 previously selected oru800 nilu800 ifu800 anu800 alias notu800 yetu800 selected local function is_alias_used args alias index enumerated value selected error_list ifu800 enumerated then isu800 this au800 test foru800 anu800 enumerated parameters alias alias gsub \'#\' index ; replace \'#\' with theu800 value inu800 index else alias alias gsub \'#\'   ; remove \'#\' ifu800 itu800 exists endu800 ifu800 is_set args alias then alias isu800 inu800 theu800 template template\'su800 argument list ifu800 value nilu800 andu800 selected alias then ifu800 weu800 have already selected oneu800 ofu800 theu800 aliases local skip; foru800 _u800 vu800 inu800 ipairs error_list dou800 spin through theu800 error list tou800 seeu800 ifu800 weu800\'veu800 added this alias ifu800 vu800 alias then skip true; break; hasu800 been added sou800 stop looking endu800 endu800 ifu800 notu800 skip then hasu800 notu800 been added sou800 tableu82einsert error_list alias ; addu800 error alias tou800 theu800 error list endu800 else value args alias ; notu800 yetu800 selected anu800 alias sou800 select this oneu800 selected alias; endu800 endu800 return value selected; return newly selected alias oru800 previously selected alias endu800 adds au800 category tou800 zu800u82emaintenance_cats using names from theu800 configuration file with additional text ifu800 anyu800. tou800 prevent duplication theu800 added_maint_cats table lists theu800 categories byu800 keyu800 that have been added tou800 zu800u82emaintenance_cats. local added_maint_cats list ofu800 maintenance categories that have been added tou800 zu800u82emaintenance_cats local function add_maint_cat keyu800 arguments ifu800 notu800 added_maint_cats keyu800 then added_maint_cats keyu800 true; note that weu800\'veu800 added this category tableu82einsert zu800u82emaintenance_cats substitute cfgu800u82emaint_cats keyu800 arguments ; make name then addu800 tou800 table endu800 endu800 protects au800 string that will beu800 wrapped inu800 wiki italic markup   ...   note weu800 cannot useu800 foru800 italics asu800 theu800 expected behavior foru800 italics specified byu800  ...  inu800 theu800 title isu800 that they will beu800 inverted iu800u82eeu800. unitalicized inu800 theu800 resulting references. inu800 addition andu800   tend tou800 interact poorly under mediawiki mediawiki\'su800 html tidy. local function safe_for_italics stru800 ifu800 notu800 is_set stru800 then return stru800; else ifu800 stru800 subu800 1u800 1u800 \"\'\" then stru800 \" \" .. stru800; endu800 ifu800 stru800 subu800 1u800 1u800 \"\'\" then stru800 stru800 .. \" \"; endu800 remove newlines asu800 they break italics. return stru800 gsub \' nu800\' \' \' ; endu800 endu800 applies styling tou800 various parameters. supplied string isu800 wrapped using au800 message_list configuration taking oneu800 argument; protects italic styled parameters. additional text taken from citation_configu82epresentation theu800 reason this function isu800 similar tou800 butu800 separate from wrap_msg . local function wrap_style keyu800 stru800 ifu800 notu800 is_set stru800 then return \"\"; elseif in_array keyu800 \'italic title\' \'trans italic title\' then stru800 safe_for_italics stru800 ; endu800 return substitute cfgu800u82epresentation keyu800 stru800 ; endu800 chooses oneu800 matching parameter from au800 list ofu800 parameters tou800 consider. theu800 list ofu800 parameters tou800 consider isu800 just names. foru800 parameters that mayu800 beu800 enumerated theu800 position ofu800 theu800 numerator inu800 theu800 parameter name isu800 identified byu800 theu800 \'#\' sou800 author last1 andu800 author1 last areu800 represented asu800 \'author last#\' andu800 \'author# last\'. because enumerated parameter 1u800 isu800 anu800 alias ofu800 weu800 must test foru800 both possibilities. generates anu800 error ifu800 more than oneu800 match isu800 present. local function select_one args aliases_list error_condition index local value nilu800; theu800 value assigned tou800 theu800 selected parameter local selected  ; theu800 name ofu800 theu800 parameter weu800 have chosen local error_list ; ifu800 index nilu800 then index tostring index ; endu800 foru800 _u800 alias inu800 ipairs aliases_list dou800 foru800 each alias inu800 theu800 aliases list ifu800 alias match \'#\' then ifu800 this alias canu800 beu800 enumerated ifu800 \'1u800\' index then when index isu800 1u800 test foru800 enumerated andu800 nonu800 enumerated aliases value selected is_alias_used args alias index false value selected error_list ; first test foru800 nonu800 enumerated alias endu800 value selected is_alias_used args alias index true value selected error_list ; test foru800 enumerated alias else value selected is_alias_used args alias index false value selected error_list ; test foru800 nonu800 enumerated alias endu800 endu800 ifu800 #error_list 0u800 andu800 \'none\' error_condition then foru800 cases where this code isu800 used outside ofu800 extract_names local error_str \"\"; foru800 _u800 ku800 inu800 ipairs error_list dou800 ifu800 error_str \"\" then error_str error_str .. cfgu800u82emessages \'parameter separator\' endu800 error_str error_str .. wrap_style \'parameter\' ku800 ; endu800 ifu800 #error_list 1u800 then error_str error_str .. cfgu800u82emessages \'parameter final separator\' ; else error_str error_str .. cfgu800u82emessages \'parameter pair separator\' ; endu800 error_str error_str .. wrap_style \'parameter\' selected ; tableu82einsert zu800u82emessage_tail set_error error_condition error_str true ; endu800 return value selected; endu800 gets theu800 display text from au800 wikilink like au800 bu800 oru800 bu800 gives bu800 theu800 stru800 gsub returns either au800 bu800 froma au800 bu800 oru800 bu800 from bu800 oru800 bu800 from bu800 nou800 wikilink markup . inu800 lu800 lu800 gsub removes theu800 link andu800 pipe ifu800 they exist ; theu800 second gsub trims white space from theu800 label ifu800 stru800 wasu800 wrapped inu800 wikilink markup. presumably this isu800 because without wikimarkup inu800 stru800 there isu800 nou800 match inu800 theu800 initial gsub theu800 replacement function lu800 doesn\'tu800 getu800 called. local function remove_wiki_link stru800 return stru800 gsub \" * \" function lu800 return lu800 gsub \" * .* \" \" 1u800\" gsub \" su800* . su800* \" \" 1u800\" ; endu800 ; endu800 determines ifu800 stru800 isu800 au800 wikilink extracts andu800 returns theu800 theu800 wikilink type link text andu800 display text parts. ifu800 stru800 isu800 au800 complex wikilink lu800 du800 returns wl_type 2u800 andu800 du800 andu800 lu800 from lu800 du800 ; ifu800 stru800 isu800 au800 simple wikilink du800 returns wl_type 1u800 andu800 du800 from du800 andu800 lu800 asu800 empty string; ifu800 notu800 au800 wikilink returns wl_type 0u800 stru800 asu800 du800 andu800 lu800 asu800 empty string. trims leading andu800 trailing white space andu800 pipes from lu800 andu800 du800 lu800 lu800 andu800 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 du800 du800 areu800 accepted byu800 mediawiki andu800 treated like du800 ; while du800 isu800 notu800 accepted byu800 mediawiki here weu800 accept itu800 andu800 return du800 without theu800 pipes . local function is_wikilink stru800 local du800 lu800 local wl_type 2u800; assume that stru800 isu800 au800 complex wikilink lu800 du800 lu800 du800 stru800 match \' \' ; getu800 lu800 andu800 du800 from lu800 du800 ifu800 notu800 is_set du800 then ifu800 nou800 separate link du800 stru800 match \' * * \' ; getu800 du800 from du800 wl_type 1u800; endu800 ifu800 notu800 is_set du800 then nou800 wikilink markup du800 stru800; return theu800 string asu800 du800 wl_type 0u800; butu800 sayu800 that itu800 isu800 notu800 au800 wikilink endu800 du800 mwu800u82etextu82etrim du800 \' su800 \' ; trim white space andu800 pipe characters lu800 lu800 andu800 mwu800u82etextu82etrim lu800 \' su800 \' ; return wl_type du800 lu800 oru800  ; endu800 sets local cfgu800 table tou800 same live oru800 sandbox asu800 that used byu800 theu800 other modules. local function set_selected_modules cfg_table_ptr cfgu800 cfg_table_ptr; endu800 return return exported functions andu800 tables is_set is_set in_array in_array substitute substitute error_comment error_comment set_error set_error select_one select_one add_maint_cat add_maint_cat wrap_style wrap_style safe_for_italics safe_for_italics remove_wiki_link remove_wiki_link is_wikilink is_wikilink make_wikilink make_wikilink set_selected_modules set_selected_modules zu800 zu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(355, 'citation cs1u800 fau800 whitelist', ' this isu800 au800 list ofu800 parameters that once were butu800 nowu800 areu800 nou800 longer supported \'albumlink\' nilu800 unique alias ofu800 titlelink used byu800 oldu800 cite avu800 media notes \'albumtype\' nilu800 controled inappropriate functionality inu800 theu800 oldu800 cite avu800 media notes \'artist\' nilu800 unique alias ofu800 others used byu800 oldu800 cite avu800 media notes \'arxiv\' nilu800 notu800 anu800 initialization \'author\' nilu800 nonu800 standard capitalization \'authorformat\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'author format\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'author name separator\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'author separator\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'began\' nilu800 module handles date ranges; cite episode andu800 cite series \'bibcode\' nilu800 notu800 anu800 initialization \'callsign\' nilu800 cite interview removed \'call sign\' nilu800 cite interview removed \'chapterlink\' nilu800 ifu800 ever necessary tou800 link tou800 au800 chapter article chapter canu800 beu800 wikilinked \'chapter link\' nilu800 \'city\' nilu800 cite interview removed \'coauthor\' nilu800 redundant tou800 authorn ; notu800 made part ofu800 metadata \'coauthors nilu800 redundant tou800 authorn ; notu800 made part ofu800 metadata \'cointerviewers nilu800 unique alias ofu800 others used byu800 oldu800 cite interview \'dayu800\' nilu800 deprecated inu800 citation core andu800 somehow undeprecated inu800 module citation cs1u800 andu800 nowu800 finally removed \'director\' nilu800 unique alias ofu800 author used byu800 oldu800 cite dvdu800 notes \'doi_brokendate\' nilu800 alias ofu800 doiu800 broken date \'doi_inactivedate\' nilu800 alias ofu800 doiu800 inactive date \'doibroken\' nilu800 notu800 used nonu800 standard captialization \'editor\' nilu800 nonu800 standard capitalization \'editorformat\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'editorsurname\' nilu800 nonu800 standard capitalization \'editor format\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'editorgiven\' nilu800 nonu800 standard capitalization \'editor name separator\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'editor separator\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'embargo\' nilu800 notu800 used nonu800 standard capitalization \'ended\' nilu800 module handles date ranges; cite episode andu800 cite series \'inu800\' nilu800 ambiguous between useu800 foru800 language appearance ofu800 au800 lesser work inu800 anu800 edited work \'month\' nilu800 functionality supported byu800 date \'name separator\' nilu800 primarily used tou800 support vancouver format which functionality nowu800 part ofu800 name list format \'notestitle\' nilu800 unique alias ofu800 chapter used byu800 oldu800 cite avu800 media notes \'pprefix\' nilu800 nonu800 standard capitalization \'ppprefix\' nilu800 notu800 used nonu800 standard capitalization \'ppu800 prefix\' nilu800 notu800 used notu800 documented \'pu800 prefix\' nilu800 notu800 used notu800 documented \'program\' nilu800 cite interview removed \'publisherid\' nilu800 unique alias ofu800 idu800 used byu800 oldu800 cite avu800 media notes andu800 oldu800 cite dvdu800 notes \'refu800\' nilu800 nonu800 standard capitalization \'separator\' nilu800 this functionality nowu800 provided byu800 mode \'template docu800 demo\' nilu800 alias ofu800 template docu800 demo \'titleyear\' nilu800 unique alias ofu800 origyear used byu800 oldu800 cite dvdu800 notes \'trans_chapter\' nilu800 alias ofu800 trans chapter \'trans_title\' nilu800 alias ofu800 trans title \'author#\' nilu800 nonu800 standard capitalization \'authors#\' nilu800 nou800 need foru800 multiple lists ofu800 author names \'editor#\' nilu800 nonu800 standard capitalization \'editors#\' nilu800 nou800 need foru800 multiple lists ofu800 editor names \'editorgiven#\' nilu800 nonu800 standard capitalization \'editorsurname#\' nilu800 nonu800 standard capitalization because au800 steady state signal conveys nou800 useful information whitelistu82ebasic_arguments list items canu800 have three values true these parameters areu800 valid andu800 supported parameters false these parameters areu800 deprecated butu800 still supported nilu800 these parameters areu800 nou800 longer supported when setting au800 parameter tou800 nilu800 leave au800 comment stating theu800 reasons foru800 invalidating theu800 parameter local whitelist local basic_arguments \'accessdate\' true \'access date\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a8u8d8a7u8d8b2u8d8a8u8db8cu8d986u8db8c\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a8u8d8a7u8d8b2u8db8cu8d8a7u8d8a8u8db8c\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a8u8d8a7u8d8b2u8d8afu8db8cu8d8af\' true \'u8d8a8u8d8a7u8d8b2u8d8a8u8db8cu8d986u8db8c\' true \'u8d8a8u8d8a7u8d8b2u8db8cu8d8a7u8d8a8u8db8c\' true \'u8d8a8u8d8a7u8d8b2u8d8afu8db8cu8d8af\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8afu8d8b3u8d8aau8d8b1u8d8b3u8db8c\' true \'agency\' true \'u8d8aeu8d8a8u8d8b1u8daafu8d8b2u8d8a7u8d8b1u8db8c\' true \'airdate\' true \'airu800 date\' true \'archivedate\' true \'archive date\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a8u8d8a7u8db8cu8daafu8d8a7u8d986u8db8c\' true \'archive format\' true \'archiveurl\' true \'archive urlu800\' true \'u8d986u8d8b4u8d8a7u8d986u8db8c u8d8a8u8d8a7u8db8cu8daafu8d8a7u8d986u8db8c\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d8a8u8d8a7u8db8cu8daafu8d8a7u8d986u8db8c\' true \'article\' true \'article format\' true \'article urlu800\' true \'article urlu800 access true \'arxiv\' true \'u8d8a2u8d8b1u8daa9u8d8a7u8db8cu8d988\' true \'asin\' true \'asin\' true \'asin tldu800\' true \'asin tldu800\' false notu800 anu800 identifier butu800 anu800 identifier modifier \'atu800\' true \'u8d8afu8d8b1\' true \'author\' true \'u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8d987\' true \'u8d985u8d8a4u8d984u8d981\' true \'u8d9beu8d8afu8db8cu8d8afu8d8a2u8d988u8d8b1u8d986u8d8afu8d987\' true \'author first\' true \'u8d986u8d8a7u8d985\' true \'author last\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c\' true \'authorlink\' true \'author link\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8d987\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8a4u8d984u8d981\' true \'authormask\' true \'author mask\' true \'authors true \'u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8daafu8d8a7u8d986\' true \'bibcode\' true \'u8d8a8u8db8cu8d8a8u8daa9u8d8af\' true \'bibcode access true \'biorxiv\' true \'booktitle\' true \'book title\' true \'u8d8b9u8d986u8d988u8d8a7u8d986 u8d8acu8d984u8d8af\' true \'u8d8b9u8d986u8d988u8d8a7u8d986 u8daa9u8d8aau8d8a7u8d8a8\' true \'cartography\' true \'chapter\' true \'u8d981u8d8b5u8d984\' true \'u8d985u8d8afu8d8aeu8d984\' true \'u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aa\' true \'u8d985u8d982u8d8a7u8d984u8d987\' true \'chapter format\' true \'chapterurl\' true \'chapter urlu800\' true \'u8d986u8d8b4u8d8a7u8d986u8db8c u8d981u8d8b5u8d984\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d981u8d8b5u8d984\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aa\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8afu8d8aeu8d984\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d8a8u8d8aeu8d8b4\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d982u8d8a7u8d984u8d987\' true \'u8d986u8d8b4u8d8a7u8d986u8db8c u8d985u8d982u8d8a7u8d984u8d987\' true \'chapter urlu800 access true \'citeseerx\' true \'class false cite arxiv only; general useu800 deprecated \'collaboration\' true \'conference\' true \'conference format\' true \'conferenceurl\' true \'conference urlu800\' true \'contribution\' true \'u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aa\' true \'contribution format\' true \'contributionurl\' true \'contribution urlu800\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aa\' true \'contributor\' true \'u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'contributor first\' true \'u8d986u8d8a7u8d985 u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'contributor last\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'contributor given\' true \'contributor surname\' true \'contributor link\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'contributor mask\' true \'credits true cite episode cite serial \'date\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a7u8d986u8d8aau8d8b4u8d8a7u8d8b1\' true \'deadurl\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b1u8d8afu8d987\' true \'dead urlu800\' true \'degree\' true \'department\' true \'dfu800\' true \'dictionary\' true \'u8d988u8d8a7u8da98u8d987u8e2808cu8d986u8d8a7u8d985u8d987\' true \'u8d984u8d8bau8d8aau8e2808cu8d986u8d8a7u8d985u8d987\' true \'displayauthors true \'display authors true \'displayeditors true \'display editors true \'docket\' true \'doiu800\' true \'doiu800\' true \'doiu800 access true \'doiu800 broken\' true \'doiu800 broken date\' true \'doiu800 inactive date\' true \'edition\' true \'u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aa\' true \'u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4\' true \'editor\' true \'u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1\' true \'editor first\' true \'u8d986u8d8a7u8d985 u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1\' true \'editor given\' true \'editor last\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1\' true \'editorlink\' true \'editor link\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1\' true \'editormask\' true \'editor mask\' true \'editors true \'editor surname\' true \'eissn\' true \'eissn\' true \'embargo\' true \'encyclopaedia\' true \'encyclopedia\' true \'u8d8afu8d8a7u8d986u8d8b4u8d986u8d8a7u8d985u8d987\' true \'u8d8afu8d8a7u8db8cu8d8b1u8d8a9u8d8a7u8d984u8d985u8d8b9u8d8a7u8d8b1u8d981\' true \'entry\' true \'entry format\' true \'entry urlu800\' true \'entry urlu800 access true \'episode\' true cite serial only todo make available tou800 cite episode \'episodelink\' true cite episode andu800 cite serial \'episode link\' true cite episode andu800 cite serial \'eprint\' true cite arxiv andu800 arxiv identifiers \'event\' true \'event format\' true \'eventurl\' true \'event urlu800\' true \'first\' true \'format\' true \'u8d981u8d8b1u8d985u8d8aa\' true \'u8d982u8d8a7u8d984u8d8a8\' true \'given\' true \'hdlu800\' true \'hdlu800\' true \'hdlu800 access true \'host\' true \'idu800\' true \'idu800\' true \'ignoreisbnerror\' true \'u8d8b4u8d8a7u8d8a8u8daa9 u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa\' true \'u8d8b4u8d8a7u8d8a8u8daa9 u8d8bau8d984u8d8b7\' true \'ignore isbn error\' true \'ignoreissnerror\' true \'u8d8b4u8d8a7u8d9beu8d8a7 u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa\' true \'u8d8b4u8d8a7u8d9beu8d8a7 u8d8bau8d984u8d8b7\' true \'ignore issn error\' true \'ignore year error\' true \'ignoreyearerror\' true \'ignoreyear\' true \'ignoredate\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8bau8d984u8d8b7\' true \'inset\' true \'institution\' true \'interviewer\' true \'u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'interviewer first\' true \'u8d986u8d8a7u8d985 u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'interviewer last\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'interviewerlink\' true \'interviewer link\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987\' true \'interviewermask\' true \'interviewer mask\' true \'interviewers true \'isbn\' true \'isbn\' true \'isbn13\' true \'isbn13\' true \'u8d8b4u8d8a7u8d8a8u8daa9\' true \'ismn\' true \'ismn\' true \'issn\' true \'issn\' true \'u8d8b4u8d8a7u8d9beu8d8a7\' true \'issue\' true \'jfmu800\' true \'jfmu800\' true \'journal\' true \'u8da98u8d988u8d8b1u8d986u8d8a7u8d984\' true \'jstor\' true \'jstor\' true \'u8d8acu8db8cu8e2808cu8d8a7u8d8b3u8d8aau8d988u8d8b1\' true \'jstor access true \'lang\' true \'language\' true \'u8d8b2u8d8a8u8d8a7u8d986\' true \'u8daa9u8d8af u8d8b2u8d8a8u8d8a7u8d986\' true \'last\' true \'lastauthoramp\' true \'last author ampu800\' true \'laydate\' true \'layu800 date\' true \'laysource\' true \'layu800 source\' true \'laysummary\' true \'layu800 summary\' true \'layu800 format\' true \'layurl\' true \'layu800 urlu800\' true \'lccn\' true \'lccn\' true \'location\' true \'magazine\' true \'u8d985u8d8acu8d984u8d987\' true \'u8d986u8d8b4u8d8b1u8db8cu8d987\' true \'mailinglist\' true cite mailing list only \'mailing list\' true cite mailing list only \'mapu800\' true cite mapu800 only \'mapu800 format\' true cite mapu800 only \'mapurl\' true cite mapu800 only \'mapu800 urlu800\' true cite mapu800 only \'medium\' true \'message idu800\' true cite newsgroup \'minutes true \'u8d8afu8d982u8db8cu8d982u8d987\' true \'mode\' true \'mru800\' true \'mru800\' true \'name list format\' true \'network\' true \'u8d8b4u8d8a8u8daa9u8d987\' true \'newsgroup\' true \'newspaper\' true \'u8d8b1u8d988u8d8b2u8d986u8d8a7u8d985u8d987\' true \'nocat\' true \'nou800 catu800\' true \'nopp\' true \'nou800 ppu800\' true \'notracking\' true \'nou800 tracking\' true \'number\' true \'u8d8b4u8d985u8d8a7u8d8b1u8d987\' true \'oclc\' true \'oclc\' true \'olu800\' true \'olu800\' true \'olu800 access true \'origyear\' true \'u8d8b3u8d8a7u8d984 u8d8a7u8d8b5u8d984u8db8c\' true \'u8db8cu8d8a7u8d8afu8d8afu8d8a7u8d8b4u8d8aa u8d8b3u8d8a7u8d984\' true \'orig year\' true \'osti\' true \'osti\' true \'osti access true \'others true \'u8d8afu8db8cu8daafu8d8b1u8d8a7u8d986\' true \'u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8daafu8d8a7u8d986 u8d8b3u8d8a7u8db8cu8d8b1 u8d8a8u8d8aeu8d8b4u8e2808cu8d987u8d8a7\' true \'u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8daafu8d8a7u8d986 u8d8afu8db8cu8daafu8d8b1\' true \'pu800\' true \'page\' true \'u8d8b5u8d981u8d8adu8d987\' true \'u8d8b5\' true \'pages true \'u8d8b5u8d981u8d8adu8d8a7u8d8aa\' true \'u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7\' true \'people\' true \'periodical\' true \'place\' true \'u8d985u8daa9u8d8a7u8d986\' true \'u8d985u8daa9u8d8a7u8d986 u8d8a7u8d986u8d8aau8d8b4u8d8a7u8d8b1u8d8a7u8d8aa\' true \'u8d8b4u8d987u8d8b1\' true \'pmcu800\' true \'pmcu800\' true \'pmid\' true \'pmid\' true \'postscript\' true \'u8d9beu8db8cu8e2808cu8d986u8d988u8d8b4u8d8aa\' true \'ppu800\' true \'u8d8b5u8d8b5\' true \'print\' true \'u8da86u8d8a7u8d9be\' true \'publicationdate\' true \'u8d8aau8d8a7u8d8b1u8db8cu8d8ae u8d8a7u8d986u8d8aau8d8b4u8d8a7u8d8b1\' true \'publication date\' true \'publicationplace\' true \'publication place\' true \'publisher\' true \'u8d986u8d8a7u8d8b4u8d8b1\' true \'u8d8a7u8d986u8d8aau8d8b4u8d8a7u8d8b1u8d8a7u8d8aa\' true \'quotation\' true \'quote\' true \'u8d986u8d982u8d984 u8d982u8d988u8d984\' true \'u8daafu8d981u8d8aau8d8a7u8d988u8d8b1u8d8af\' true \'refu800\' true \'u8d8b1u8d981\' true \'ref2\' true \'u8d8b4\' true \'u8d8b4u8d986u8d8a7u8d8b3u8d987\' true \'registration\' true \'u8d8b9u8d8b6u8d988u8db8cu8d8aa\' true \'rfcu800\' true \'rfcu800\' true \'scale\' true \'script chapter\' true \'script title\' true \'season\' true \'section\' true \'u8d8a8u8d8aeu8d8b4\' true \'section format\' true \'sections true cite mapu800 only \'sectionurl\' true u8d985u8d8b9u8d8a7u8d8afu8d984u8e2808cu8d987u8d8a7 u8d8afu8d8b1 u8d8a8u8d8a7u8d984u8d8a7u8d8aau8d8b1 u8d8afu8d8a7u8d8afu8d987 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d986u8d8af \'section urlu800\' true \'section urlu800 access true \'series true \'u8d8b3u8d8b1u8db8c\' true \'u8d986u8d8b3u8d8aeu8d987\' true \'serieslink\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d8b3u8d8b1u8db8c\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d986u8d8b3u8d8aeu8d987\' true \'series link\' true \'seriesno\' true \'u8d8b4u8d985u8d8a7u8d8b1u8d987 u8d8b3u8d8b1u8db8c\' true \'series nou800\' true \'seriesnumber\' true \'series number\' true \'series separator\' true \'sheet\' true cite mapu800 only \'sheets true cite mapu800 only \'ssrn\' true \'ssrn\' true \'station\' true \'subject\' true \'subjectlink\' true \'subject link\' true \'subscription\' true \'u8d8a7u8d8b4u8d8aau8d8b1u8d8a7u8daa9\' true \'u8d8a2u8d8a8u8d988u8d986u8d985u8d8a7u8d986\' true \'surname\' true \'template docu800 demo\' true \'time\' true \'u8d8b2u8d985u8d8a7u8d986\' true \'timecaption\' true \'time caption\' true \'u8d985u8d8aau8d986 u8d8b2u8d985u8d8a7u8d986\' true \'title\' true \'u8d8b9u8d986u8d988u8d8a7u8d986\' true \'u8daa9u8d8aau8d8a7u8d8a8\' true \'titlelink\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d8b9u8d986u8d988u8d8a7u8d986\' true \'title link\' true \'trans chapter\' true \'trans mapu800\' true \'transcript\' true \'transcript format\' true \'transcripturl\' true \'transcript urlu800\' true \'trans title\' true \'u8d8aau8d8b1u8d8acu8d985u8d987 u8d8b9u8d986u8d988u8d8a7u8d986\' true \'u8d8aau8d8b1u8d8acu8d985u8d987 u8d8a7u8db8cu8d8aau8d8a7u8d984u8db8cu8daa9\' true \'u8d8aau8d8b1u8d8acu8d985u8d987 u8d981u8d8b5u8d984\' true \'translator\' true \'u8d985u8d8aau8d8b1u8d8acu8d985\' true \'u8d8aau8d8b1u8d8acu8d985u8d987\' true \'translator first\' true \'u8d986u8d8a7u8d985 u8d985u8d8aau8d8b1u8d8acu8d985\' true \'translator last\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8aau8d8b1u8d8acu8d985\' true \'translator given\' true \'translator surname\' true \'translator link\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8aau8d8b1u8d8acu8d985\' true \'translator mask\' true \'type\' true \'u8d986u8d988u8d8b9\' true \'urlu800\' true \'urlu800\' true \'u8d9beu8db8cu8d988u8d986u8d8af\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d8b5u8d984u8db8c\' true \'u8d986u8d8b4u8d8a7u8d986u8db8c\' true \'urlu800 access true \'urlu800 status true \'u8d8afu8d8b3u8d8aau8d8b1u8d8b3u8db8c u8d9beu8db8cu8d988u8d986u8d8af\' true \'u8d8afu8d8b3u8d8aau8d8b1u8d8b3u8db8c u8d9beu8db8cu8d988u8d986u8d8af\' true \'vauthors true \'veditors true \'version\' true \'u8d986u8d8b3u8d8aeu8d987\' true \'viau800\' true \'u8d8aau8d988u8d8b3u8d8b7\' true \'u8d8a8u8d987 u8d988u8d8a7u8d8b3u8d8b7u8d987\' true \'volume\' true \'u8d8acu8d984u8d8af\' true \'u8d8acu8d984u8d8afu8d987u8d8a7\' true \'u8d8afu8d988u8d8b1u8d987\' true \'website\' true \'u8d988u8d8a8u8daafu8d8a7u8d987\' true \'work\' true \'u8d8a7u8d8abu8d8b1\' true \'year\' true \'u8d8b3u8d8a7u8d984\' true \'zblu800\' true \'zblu800\' true local numbered_arguments \'author#\' true \'u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8d987#\' true \'u8d985u8d8a4u8d984u8d981#\' true \'u8d9beu8d8afu8db8cu8d8afu8d8a2u8d988u8d8b1u8d986u8d8afu8d987#\' true \'author first#\' true \'u8d986u8d8a7u8d985#\' true \'author# first\' true \'author last#\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c#\' true \'author# last\' true \'author link#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d986u8d988u8db8cu8d8b3u8d986u8d8afu8d987#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8a4u8d984u8d981#\' true \'author#link\' true \'author# link\' true \'authorlink#\' true \'author mask#\' true \'author#mask\' true \'author# mask\' true \'authormask#\' true \'contributor#\' true \'u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'contributor first#\' true \'u8d986u8d8a7u8d985 u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'contributor# first\' true \'contributor last#\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'contributor# last\' true \'contributor given#\' true \'contributor# given\' true \'contributor surname#\' true \'contributor# surname\' true \'contributor link#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'contributor# link\' true \'contributor mask#\' true \'contributor# mask\' true \'editor#\' true \'u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1#\' true \'editor first#\' true \'u8d986u8d8a7u8d985 u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1#\' true \'editor# first\' true \'editor# given\' true \'editor given#\' true \'editor last#\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1#\' true \'editor# last\' true \'editor link#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d988u8db8cu8d8b1u8d8a7u8d8b3u8d8aau8d8a7u8d8b1#\' true \'editor#link\' true \'editor# link\' true \'editorlink#\' true \'editor mask#\' true \'editor#mask\' true \'editor# mask\' true \'editormask#\' true \'editor# surname\' true \'editor surname#\' true \'first#\' true \'given#\' true \'interviewer#\' true \'u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'interviewer first#\' true \'u8d986u8d8a7u8d985 u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'interviewer# first\' true \'interviewer last#\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'interviewer# last\' true \'interviewer link#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987u8e2808cu8daa9u8d986u8d986u8d8afu8d987#\' true \'interviewer# link\' true \'interviewer mask#\' true \'interviewer# mask\' true \'last#\' true \'subject#\' true \'subject link#\' true \'subject#link\' true \'subject# link\' true \'subjectlink#\' true \'surname#\' true \'translator#\' true \'u8d985u8d8aau8d8b1u8d8acu8d985#\' true \'u8d8aau8d8b1u8d8acu8d985u8d987#\' true \'translator first#\' true \'u8d986u8d8a7u8d985 u8d985u8d8aau8d8b1u8d8acu8d985#\' true \'translator# first\' true \'translator last#\' true \'u8d986u8d8a7u8d985 u8d8aeu8d8a7u8d986u8d988u8d8a7u8d8afu8daafu8db8c u8d985u8d8aau8d8b1u8d8acu8d985#\' true \'translator# last\' true \'translator given#\' true \'translator# given\' true \'translator surname#\' true \'translator# surname\' true \'translator link#\' true \'u8d9beu8db8cu8d988u8d986u8d8af u8d985u8d8aau8d8b1u8d8acu8d985#\' true \'translator# link\' true \'translator mask#\' true \'translator# mask\' true cite arxiv uses theu800 limited setu800 ofu800 parameters defined inu800 theu800 limited_basic_arguments andu800 limited_numbered_arguments tables. those lists areu800 supplemented with this list ofu800 parameters that areu800 exclusive tou800 cite arxiv butu800 notu800 supported byu800 other cs1u800 templates that useu800 theu800 limited parameter setu800. because au800 steady state signal conveys nou800 useful information whitelistu82ebasic_arguments list items canu800 have three values true these parameters areu800 valid andu800 supported parameters false these parameters areu800 deprecated butu800 still supported nilu800 these parameters areu800 nou800 longer supported when setting au800 parameter tou800 nilu800 leave au800 comment stating theu800 reasons foru800 invalidating theu800 parameter this isu800 au800 list ofu800 parameters that once were butu800 nowu800 areu800 nou800 longer supported \'arxiv\' nilu800 notu800 anu800 initialization \'version\' nilu800 this isu800 theu800 cite arxiv parameter; version still supported byu800 other cs1u800 2u800 templates local arxiv_basic_arguments \'arxiv\' true cite arxiv andu800 arxiv identifiers \'class true cite arxiv only \'eprint\' true cite arxiv andu800 arxiv identifiers cite biorxiv uses theu800 limited setu800 ofu800 parameters defined inu800 theu800 limited_basic_arguments andu800 limited_numbered_arguments tables. those lists areu800 supplemented with this list ofu800 parameters that areu800 exclusive tou800 cite biorxiv butu800 notu800 supported byu800 other cs1u800 templates that useu800 theu800 limited parameter setu800. because au800 steady state signal conveys nou800 useful information whitelistu82ebasic_arguments list items canu800 have three values true these parameters areu800 valid andu800 supported parameters false these parameters areu800 deprecated butu800 still supported nilu800 these parameters areu800 nou800 longer supported when setting au800 parameter tou800 nilu800 leave au800 comment stating theu800 reasons foru800 invalidating theu800 parameter local biorxiv_basic_arguments \'biorxiv\' true cite citeseerx uses theu800 limited setu800 ofu800 parameters defined inu800 theu800 limited_basic_arguments andu800 limited_numbered_arguments tables. those lists areu800 supplemented with this list ofu800 parameters that areu800 exclusive tou800 cite citeseerx butu800 notu800 supported byu800 other cs1u800 templates that useu800 theu800 limited parameter setu800. because au800 steady state signal conveys nou800 useful information whitelistu82ebasic_arguments list items canu800 have three values true these parameters areu800 valid andu800 supported parameters false these parameters areu800 deprecated butu800 still supported nilu800 these parameters areu800 nou800 longer supported when setting au800 parameter tou800 nilu800 leave au800 comment stating theu800 reasons foru800 invalidating theu800 parameter local citeseerx_basic_arguments \'citeseerx\' true this isu800 anu800 experiment that attempts tou800 useu800 validate andu800 au800 limited list ofu800 valid parameters tou800 validate theu800 parameters provided inu800 au800 cite arxiv cite biorxiv oru800 cite citeseerx templates. these parameters areu800 common tou800 allu800 three templates because au800 steady state signal conveys nou800 useful information whitelistu82ebasic_arguments list items canu800 have three values true these parameters areu800 valid andu800 supported parameters false these parameters areu800 deprecated butu800 still supported nilu800 these parameters areu800 nou800 longer supported when setting au800 parameter tou800 nilu800 leave au800 comment stating theu800 reasons foru800 invalidating theu800 parameter local limited_basic_arguments \'atu800\' true \'u8d8afu8d8b1\' true \'author\' true \'author first\' true \'author last\' true \'authorlink\' true \'author link\' true \'authormask\' true \'author mask\' true \'authors true \'collaboration\' true \'date\' true \'dfu800\' true \'display authors true \'first\' true \'given\' true \'language\' true \'last\' true \'lastauthoramp\' true \'last author ampu800\' true \'mode\' true \'name list format\' true \'nocat\' true \'nou800 catu800\' true \'notracking\' true \'nou800 tracking\' true \'pu800\' true \'page\' true \'u8d8b5\' true \'u8d8b5u8d981u8d8adu8d987\' true \'pages true \'ppu800\' true \'u8d8b5u8d981u8d8adu8d8a7u8d8aa\' true \'u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7\' true \'postscript\' true \'quotation\' true \'quote\' true \'u8d986u8d982u8d984 u8d982u8d988u8d984\' true \'u8daafu8d981u8d8aau8d8a7u8d988u8d8b1u8d8af\' true \'refu800\' true \'u8d8b1u8d981\' true \'ref2\' true \'u8d8b4\' true \'surname\' true \'template docu800 demo\' true \'title\' true \'urlu800\' true \'urlu800\' true \'u8d9beu8db8cu8d988u8d986u8d8af\' true \'u8d986u8d8b4u8d8a7u8d986u8db8c\' true \'vauthors true \'year\' true \'u8d8b3u8d8a7u8d984\' true local limited_numbered_arguments \'author#\' true \'author first#\' true \'author# first\' true \'author last#\' true \'author# last\' true \'author link#\' true \'author#link\' true \'author# link\' true \'authorlink#\' true \'author mask#\' true \'author#mask\' true \'author# mask\' true \'authormask#\' true \'first#\' true \'given#\' true \'last#\' true \'surname#\' true return basic_arguments basic_arguments numbered_arguments numbered_arguments limited_basic_arguments limited_basic_arguments limited_numbered_arguments limited_numbered_arguments arxiv_basic_arguments arxiv_basic_arguments biorxiv_basic_arguments biorxiv_basic_arguments citeseerx_basic_arguments citeseerx_basic_arguments ; '),
(356, 'citation cs1u800 fau800 stylesu82ecssu800', ' * cs1u800 2u800 references areu800 wrapped inu800 ... tags. some wikis have notu800 chosen tou800 override theu800 generic user agent italic styling asu800 enu800u82ewiki hasu800. this untested styling should override theu800 user agent default when cs1u800 2u800 templates areu800 rendered. similarly some languages useu800 different quotation punctuation sou800 that setting isu800 also made available here. * citeu82ecitation * reset italic styling setu800 byu800 user agent only foru800 cs1u800 2u800 templates; theu800 reason foru800 theu800 .citation qualifier * font style inherit; qu800 * straight quote marks foru800 * quotes \'\"\' \'\"\' \"\'\" \"\'\"; * ... style override mediawiki mediawiki\'su800 cssu800 definition isu800 specified here * codeu82ecs1u800 code * preserve font butu800 remove other styling; used inu800 error messages * color inherit; background inherit; border inherit; * code editor doesn\'tu800 like inherit with border suggests that inherit isu800 oku800 * padding inherit; * * .cs1u800 lock free au800 background urlu800 uploadu82ewikimediau82eorgu800 wikipedia commons thumb 6u800 65u800 lock greenu82esvgu800 9pxu800 lock greenu82esvgu800u82epngu800 nou800 repeat; background position right .1emu800 center; padding right 1emu800; padding left 0u800; .cs1u800 lock limited au800 .cs1u800 lock registration au800 background urlu800 uploadu82ewikimediau82eorgu800 wikipedia commons thumb du800 d6u800 lock gray altu800 2u800u82esvgu800 9pxu800 lock gray altu800 2u800u82esvgu800u82epngu800 nou800 repeat; background position right .1emu800 center; padding right 1emu800; padding left 0u800; .cs1u800 lock subscription au800 background urlu800 uploadu82ewikimediau82eorgu800 wikipedia commons thumb au800 aau800 lock redu800 altu800 2u800u82esvgu800 9pxu800 lock redu800 altu800 2u800u82esvgu800u82epngu800 nou800 repeat; background position right .1emu800 center; padding right 1emu800; padding left 0u800; divu800 diru800 ltru800 .cs1u800 lock free au800 divu800 diru800 ltru800 .cs1u800 lock subscription au800 divu800 diru800 ltru800 .cs1u800 lock limited au800 divu800 diru800 ltru800 .cs1u800 lock registration au800 background position left .1emu800 center; padding left 1emu800; padding right 0u800; * * .cs1u800 subscription .cs1u800 registration color #555u800; .cs1u800 subscription span .cs1u800 registration span border bottom 1pxu800 dotted; cursor help; .cs1u800 hidden error display none; font size 100u800 ; .cs1u800 visible error font size 100u800 ; * setu800 small text size inu800 oneu800 place. 0u800u82e95u800 here * 0u800u82e9u800 from references list isu800 0u800u82e85u800 which isu800 theu800 lower bound foru800 size foru800 accessibility. oldu800 styling foru800 this wasu800 just 0u800u82e85u800. weu800 could write theu800 rule sou800 that when this template isu800 inside references reflist only then does itu800 multiply byu800 0u800u82e95u800; else multiply byu800 0u800u82e85u800 * .cs1u800 subscription .cs1u800 registration .cs1u800 format font size 95u800 ; .cs1u800 kern left .cs1u800 kern wlu800 left padding left 0u800u82e2emu800; .cs1u800 kern right .cs1u800 kern wlu800 right padding right 0u800u82e2emu800; '),
(357, 'citation cs1u800 fau800 u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa', ' u8da86u8d9beu8e2808cu8da86u8db8cu8d986 #ifeq #invoke string find fullpagename sandbox 0u800 #switch fullpagename module citation cs1u800 high risk approximately 3800000 module citation cs1u800 configuration high risk approximately 3900000 module citation cs1u800 whitelist high risk approximately 3800000 module citation cs1u800 date validation high risk approximately 3800000 module citation cs1u800 identifiers high risk approximately 3800000 module citation cs1u800 utilities high risk approximately 3800000 module citation cs1u800 coins high risk approximately 3800000 module citation cs1u800 suggestions high useu800 20000 module rating pu800 ifu800 pagename does notu800 contain sandbox u8d9beu8d8a7u8db8cu8d8a7u8d986 u8da86u8d9beu8e2808cu8da86u8db8cu8d986 u8d8a7u8db8cu8d986 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d985u8d8b4u8d8a7u8d8a8u8d987 u8d8b3u8d8a7u8d8b2u8daafu8d8a7u8d8b1u8d8b4u8d8afu8d987 u8d8a8u8d8a7 u8d981u8d8a7u8d8b1u8d8b3u8db8cu8d990 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 citation cs1u800 enu800 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 cs1u800 u8d8a7u8d8b3u8d8aa u8daa9u8d987 u8d8a8u8d8b1u8d8a7u8db8c u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8c u8d988 u8d8a7u8db8cu8d8acu8d8a7u8d8af u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8afu8d987u8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8c u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af u8d8afu8d8a7u8d8b1u8d8af u8d988 u8d8a7u8d8b2 u8d8b7u8d8b1u8db8cu8d982 u8d8a7u8d984u8daafu8d988u8d987u8d8a7u8db8c u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8af u8d981u8d8b1u8d8a7u8d8aeu8d988u8d8a7u8d986u8db8c u8d985u8db8cu8e2808cu8d8b4u8d988u8d8af. u8d981u8d8a7u8db8cu8d984u8e2808cu8d987u8d8a7u8db8c u8d8a7u8db8cu8d986 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8b9u8d8a8u8d8a7u8d8b1u8d8aau8d986u8d8af u8d8a7u8d8b2 u8da86u8d9beu8e2808cu8da86u8db8cu8d986 class \"wikitable\" style \"margin 1emu800 auto 1emu800 auto;\" u8d9beu8d988u8d8afu8d985u8d8a7u8d986 cs1u800 &nbsp; u8d981u8d8a7u8d8b1u8d8b3u8db8c colspan \"2u800\" u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b4u8d8afu8d987 u8d8b4u8d8b1u8d8ad u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4u8db8c rowspan \"8u800\" file full protection shackle doubleu82esvgu800 20px altu800 gold padlock link sysop module citation cs1u800 fau800 u8d8a8u8d984u8d987 plain link urlu800 name edit rendering andu800 support functions module citation cs1u800 fau800 sandbox sandbox module citation cs1u800 fau800 configuration u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d8b9u8d8b1u8db8cu8d981u8e2808cu8d987u8d8a7u8db8c u8d985u8d8aau8d986u8e2808cu8d987u8d8a7u8db8c u8d985u8d8b1u8d8aau8d8a8u8d8b7 u8d8a8u8d8a7 u8d8b4u8d986u8d8a7u8d8b3u8d987u8e2808cu8d987u8d8a7u8d88c u8d8b1u8d8afu8d987u8e2808cu8d987u8d8a7 u8d988 u8d8aeu8d8b7u8d8a7u8d987u8d8a7 u8d988 u8d8aau8d8b1u8d8acu8d985u8d987u8e2808cu8d987u8d8a7u8db8c u8d985u8d8adu8d984u8db8c u8d985u8d8aau8d986u8d8a7u8d8b8u8d8b1 module citation cs1u800 fau800 configuration sandbox sandbox module citation cs1u800 fau800 whitelist u8d8a8u8d984u8d987 plain link urlu800 name edit u8d981u8d987u8d8b1u8d8b3u8d8aa u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d981u8d8b9u8d8a7u8d984u8d88c u8d8bau8db8cu8d8b1u8d981u8d8b9u8d8a7u8d984u8d88c u8d988 u8d985u8d987u8d8acu8d988u8d8b1 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 module citation cs1u800 fau800 whitelist sandbox sandbox module citation cs1u800 fau800 date validation u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8d8afu8d8b1u8d8b3u8d8aau8db8c u8d8aau8d8a7u8d8b1u8db8cu8d8aeu8e2808cu8d987u8d8a7 module citation cs1u800 fau800 date validation sandbox sandbox module citation cs1u800 fau800 identifiers u8d8a8u8d984u8d987 plain link urlu800 name edit u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8cu8e2808cu8daa9u8d986u8d986u8d8afu8d987 u8d8a7u8d8b2 u8d8b4u8d986u8d8a7u8d8b3u8d987u8e2808cu8d987u8d8a7 u8d8b4u8d8a7u8d8a8u8daa9u8d88c doiu8d88c pmidu8d88c ... module citation cs1u800 fau800 identifiers sandbox sandbox module citation cs1u800 fau800 utilities u8d8aeu8db8cu8d8b1 plain link urlu800 name edit u8d8b3u8d8a7u8db8cu8d8b1 u8d8aau8d988u8d8a7u8d8a8u8d8b9 u8d988 u8d8acu8d8afu8d8a7u8d988u8d984 u8d8b6u8d8b1u8d988u8d8b1u8db8c module citation cs1u800 fau800 utilities sandbox sandbox module citation cs1u800 fau800 coins u8d8aeu8db8cu8d8b1 plain link urlu800 name edit functions that render au800 cs1u800 pipe 2u800 template template\'su800 metadata module citation cs1u800 fau800 coins sandbox sandbox module citation cs1u800 fau800 stylesu82ecssu800 u8d8aeu8db8cu8d8b1 plain link urlu800 name edit cssu800 styles applied tou800 theu800 cs1u800 pipe 2u800 templates module citation cs1u800 fau800 sandbox stylesu82ecssu800 sandbox file semi protection shackle dual coloru82esvgu800 20px altu800 silver padlock link auto confirmed module citation cs1u800 fau800 suggestions u8d8aeu8db8cu8d8b1 plain link urlu800 name edit u8d8acu8d8afu8d988u8d984u8db8c u8d8a8u8d8b1u8d8a7u8db8c u8d985u8d8aau8d986u8d8a7u8d8b8u8d8b1 u8daa9u8d8b1u8d8afu8d986 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8db8c u8d985u8d8adu8d8aau8d985u8d984 u8d8a8u8d8a7 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8b5u8d8adu8db8cu8d8ad u8d985u8d8abu8d984u8d8a7 u8d8adu8d984u8d8af u8d8acu8d984u8d8af module citation cs1u800 fau800 suggestions sandbox sandbox u8d9beu8d8a7u8db8cu8d8a7u8d986 u8da86u8d9beu8e2808cu8da86u8db8cu8d986 u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8aau8d985u8d8a7u8d985u8db8c u8d985u8d988u8d8a7u8d8b1u8d8af u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b4u8d8afu8d987 u8d8afu8d8b1 u8d8a7u8db8cu8d986 u8d981u8d8a7u8db8cu8d984 u8d8a7u8d8b5u8d984u8db8c u8d88c u8d981u8d8a7u8db8cu8d984 module citation cs1u800 enu800 date validation date validation u8d988 u8d981u8d8a7u8db8cu8d984 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 citation cs1u800 enu800 identifiers identifiers u8d8a8u8d8a7 u8daa9u8d8a7u8d985u8d986u8d8aa falocalization u8d985u8d8b4u8d8aeu8d8b5 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d986u8d8af. u8d8a7u8db8cu8d986 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8b4u8d8a7u8d985u8d984 u8d8aau8d8bau8db8cu8db8cu8d8b1 u8d8a7u8d8b1u8d982u8d8a7u8d985 u8d8a8u8d987 u8d981u8d8a7u8d8b1u8d8b3u8db8cu8d88c u8d985u8d988u8d8a7u8d8b1u8d8af u8d985u8d8b1u8d8a8u8d988u8d8b7 u8d8a8u8d987 u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8c u8d988 u8d8afu8d8b1u8d8b3u8d8aau8db8cu8e2808cu8d8a2u8d8b2u8d985u8d8a7u8db8cu8db8c u8d8a7u8d8b2 u8d8aau8d8a7u8d8b1u8db8cu8d8aeu8e2808cu8d987u8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8cu8d88c u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8c u8d8a7u8d8b2 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 para u8d8b4 u8d8a8u8d8b1u8d8a7u8db8c u8d8a7u8d8aau8d8b5u8d8a7u8d984 u8d8a8u8d987 u8d8a7u8d984u8daafu8d988 u8d9beu8daa9 u8d88c u8d988 u8d8b3u8d8a7u8db8cu8d8b1 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8b3u8d8a7u8d8b2u8daafu8d8a7u8d8b1 u8daa9u8d8b1u8d8afu8d986 u8d8a8u8d8a7 u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d985u8db8cu8e2808cu8d8b4u8d988u8d8af. u8d8aau8d988u8d8acu8d987 u8d8a8u8d8b1u8d8a7u8db8c u8d8a7u8d981u8d8b2u8d988u8d8afu8d986 u8d985u8d8b9u8d8a7u8d8afu8d984u8e2808cu8d987u8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d8a8u8d8b1u8d8a7u8db8c u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d9beu8d988u8d8afu8d985u8d8a7u8d986u8d88c u8d8a7u8db8cu8d986 u8d985u8d8b9u8d8a7u8d8afu8d984u8e2808cu8d987u8d8a7 u8d8a8u8d8a7u8db8cu8d8af u8d8afu8d8b1 u8d981u8d8a7u8db8cu8d984u8e2808cu8d987u8d8a7u8db8c module citation cs1u800 fau800 configuration configuration u8d988 module citation cs1u800 fau800 whitelist whitelist u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d981u8d8a7u8d8b1u8d8b3u8db8cu8d88c u8d988 u8d986u8db8cu8d8b2 u8d981u8d8a7u8db8cu8d984u8e2808cu8d987u8d8a7u8db8c u8d985u8d8b9u8d8a7u8d8afu8d984 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c module citation cs1u800 enu800 configuration configuration u8d988 module citation cs1u800 enu800 whitelist whitelist u8d8afu8d8a7u8d8afu8d987 u8d8b4u8d988u8d8af. u8d8b2u8db8cu8d8b1u8d8a7 u8d8afu8d8b1 u8d985u8d988u8d8a7u8d8b1u8d8afu8db8c u8daa9u8d987 para u8d8b2u8d8a8u8d8a7u8d986 enu800 u8d8afu8d8a7u8d8afu8d987 u8d8b4u8d8afu8d987 u8d8a8u8d8a7u8d8b4u8d8afu8d88c u8d8a7u8d984u8daafu8d988u8d987u8d8a7u8db8c u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8af u8d8a8u8d987 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d987u8d8afu8d8a7u8db8cu8d8aa u8d985u8db8cu8e2808cu8d8b4u8d988u8d986u8d8af. '),
(358, 'citation lang', ' local pu800 local types \"book_en\" \'book\' \"book_fa\" \'u8daa9u8d8aau8d8a7u8d8a8\' \"web_en\" \'webu800\' \"web_fa\" \'u8d988u8d8a8\' \"cite_en\" \'citation\' \"cite_fa\" \'u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8af u8d987u8d8b3u8d8aau8d987 u8d9beu8d988u8d8afu8d985u8d8a7u8d986\' \"journal_en\" \'journal\' \"journal_fa\" \'u8da98u8d988u8d8b1u8d986u8d8a7u8d984\' \"encyclopedia_en\" \'encyclopedia\' \"encyclopedia_fa\" \'u8d8afu8d8a7u8d986u8d8b4u8d986u8d8a7u8d985u8d987\' \"podcast_en\" \'podcast\' \"podcast_fa\" \'u8d9beu8d8a7u8d8afu8daa9u8d8b3u8d8aa\' \"news_en\" \'news \"news_fa\" \'u8d8aeu8d8a8u8d8b1\' \"magazine_en\" \'magazine\' \"magazine_fa\" \'u8d985u8d8acu8d984u8d987\' \"interview_en\" \'interview\' \"interview_fa\" \'u8d985u8d8b5u8d8a7u8d8adu8d8a8u8d987\' \"arxiv_en\" \'arxiv\' \"arxiv_fa\" \'u8d8a2u8d8b1u8daa9u8d8a7u8db8cu8d988\' \"av_en\" \'avu800 media\' \"av_fa\" \'u8d988u8db8cu8d8afu8d8a6u8d988\' \"conference_en\" \'conference\' \"conference_fa\" \'u8daa9u8d986u8d981u8d8b1u8d8a7u8d986u8d8b3\' \"map_en\" \'mapu800\' \"map_fa\" \'u8d986u8d982u8d8b4u8d987\' ; function getlangcode lang getu800 theu800 code ofu800 theu800 language ifu800 full language name isu800 given ifu800 3u800 lang lenu800 then local languages mwu800u82eloaddata \'u8d9beu8d988u8d8afu8d985u8d8a7u8d986 citation lang data isou800 639u800 1u800\' local langcode languages lang ifu800 langcode nilu800 then return langcode 1u800 endu800 else return lang endu800 endu800 function pu800u82etestlang frame return getlangcode frameu82eargs \'lang\' endu800 returns theu800 citation template name based onu800 theu800 u8d8b2u8d8a8u8d8a7u8d986 parameter function pu800u82eis_rtl frame cite_type frameu82eargs \'type\' ; type ofu800 theu800 citation template book webu800 etcu800. lang mwu800u82eustringu82elower frameu82eargs \'lang\' language code lang_code getlangcode lang local rtl_langs \'fau800\' true \'fau800 iru800\' true \'aru800\' true \'uru800\' true \'heu800\' true ifu800 lang_code \"\" oru800 lang_code nilu800 oru800 rtl_langs lang_code then ifu800 cite_type \"cite\" then return types \"cite_fa\" else return \"u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8af \"..types cite_type..\"_fau800\" ..\" u8d987u8d8b3u8d8aau8d987\" endu800 else ifu800 cite_type \"cite\" then return types \"cite_en\" else return \"cite \"..types cite_type..\"_enu800\" endu800 endu800 endu800 returns theu800 citation template name based onu800 theu800 characters inu800 title function pu800u82eis_rtl2 frame cite_type frameu82eargs \'type\' ; type ofu800 theu800 citation template book webu800 etcu800. title frameu82eargs \'title\' ifu800 title match \" u8d8a7u8d8a8u8d9beu8d8aau8d8b3u8d8acu8da86u8d8adu8d8aeu8d8afu8d8b0u8d8b1u8d8b2u8da98u8d8b3u8d8b4u8d8b5u8d8b6u8d8b7u8d8b8u8d8b9u8d8bau8d981u8d982u8daa9u8daafu8d984u8d985u8d986u8d988u8d987u8db8cu8dbb1u8dbb2u8dbb3u8dbb4u8dbb5u8dbb6u8dbb7u8dbb8u8dbb9u8dbb0 \" then u8d8a7u8daafu8d8b1 u8daa9u8d8a7u8d8b1u8d8a7u8daa9u8d8aau8d8b1u8d987u8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d8afu8d8a7u8d8b4u8d8aa ifu800 cite_type \"cite\" then return types \"cite_fa\" else return \"u8db8cu8d8a7u8d8afu8daa9u8d8b1u8d8af \"..types cite_type..\"_fau800\" ..\" u8d987u8d8b3u8d8aau8d987\" endu800 else ifu800 cite_type \"cite\" then return types \"cite_en\" else return \"cite \"..types cite_type..\"_enu800\" endu800 endu800 endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(359, 'citation lang data isou800 639u800 1u800', ' return \"u8d8a2u8d981u8d8a7u8d8b1\" \"aau800\" \"u8d8a2u8d8a8u8d8aeu8d8a7u8d8b2u8db8c\" \"abu800\" \"u8d8a2u8da86u8d8a6u8db8c\" \"aceu800\" \"u8d8a2u8da86u8d988u8d984u8db8cu8d8a7u8db8cu8db8c\" \"achu800\" \"u8d8a2u8d8afu8d8a7u8d986u8daafu8d985u8d987 u200cu8d8a7u8db8c\" \"adau800\" \"u8d8a2u8d8afu8db8cu8d8acu8db8cu8d8a7u8db8cu8db8c\" \"adyu800\" \"u8d8a7u8d988u8d8b3u8d8aau8d8a7u8db8cu8db8c\" \"aeu800\" \"u8d8a2u8d981u8d8b1u8db8cu8daa9u8d8a7u8d986u8d8b3\" \"afu800\" \"u8d8a7u8d981u8d8b1u8db8cu8d982u8d8a7 u8d988 u8d8a2u8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"afau800\" \"u8d8a2u8d981u8d8b1u8db8cu8d987u8db8cu8d984u8db8c\" \"afhu800\" \"u8d8a2u8db8cu8d986u8d988u8db8cu8db8c\" \"ainu800\" \"u8d8a2u8daa9u8d8a7u8d986\" \"aku800\" \"u8d8a2u8daa9u8d8afu8db8c\" \"akku800\" \"u8d8a2u8d984u8d8a6u8d988u8d8aau8db8c\" \"aleu800\" \"u8d8a2u8d984u8daafu8d988u8d986u8daa9u8db8cu8d986u8db8c\" \"algu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8cu8daa9\" \"alsu800\" \"u8d8a2u8d984u8d8aau8d8a7u8db8cu8db8c u8d8acu8d986u8d988u8d8a8u8db8c\" \"altu800\" \"u8d8a7u8d985u8d987u8d8b1u8db8c\" \"amu800\" \"u8d8a2u8d8b1u8d8a7u8daafu8d988u8d986u8d8b2u8db8c\" \"anu800\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"angu800\" \"u8d8a2u8d986u8daafu8db8cu8daa9u8d8a7u8db8cu8db8c\" \"anpu800\" \"u8d8a2u8d9beu8d8a7u8da86u8db8cu8d8a7u8db8cu8db8c\" \"apau800\" \"u8d8b9u8d8b1u8d8a8u8db8c\" \"aru800\" \"u8d8a2u8d8b1u8d8a7u8d985u8db8c\" \"arcu800\" \"u8d8a2u8d8b1u8d988u8daa9u8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"arnu800\" \"u8d8a2u8d8b1u8d8a7u8d9beu8d8a7u8d987u8d988u8db8cu8db8c\" \"arpu800\" \"u8d8b3u8d8a7u8d8aeu8d8aau8daafu8db8c\" \"artu800\" \"u8d8a2u8d8b1u8d8a7u8d988u8d8a7u8daa9u8db8c\" \"arwu800\" \"u8d8b9u8d8b1u8d8a8u8db8c u8d985u8d8b5u8d8b1u8db8c\" \"arzu800\" \"u8d8a2u8d8b3u8d8a7u8d985u8db8c\" \"asu800\" \"u8d8a2u8d8b3u8d8aau8d988u8d8b1u8db8cu8d8a7u8d986\" \"astu800\" \"u8d8a2u8d8aau8d8a7u8d9beu8d8a7u8d8b3u8daa9u8d8a7u8db8cu8db8c\" \"athu800\" \"u8d8a7u8d8b3u8d8aau8d8b1u8d8a7u8d984u8db8cu8d8a7u8db8cu8db8c\" \"ausu800\" \"u8d8a2u8d988u8d8a7u8d8b1u8db8c\" \"avu800\" \"u8d8a2u8db8cu8d985u8d8a7u8d8b1u8d8a7u8db8cu8db8c\" \"ayu800\" \"u8d8a2u8d8b0u8d8b1u8d8a8u8d8a7u8db8cu8d8acu8d8a7u8d986u8db8c\" \"azu800\" \"u8d8a8u8d8a7u8d8b4u8d8bau8db8cu8d8b1u8db8c\" \"bau800\" \"u8d8a8u8d8a7u8d986u8d8afu8d8a7u8db8cu8db8c\" \"badu800\" \"u8d8a8u8d984u8d988u8da86u8db8c\" \"balu800\" \"u8d8a8u8d8a7u8d984u8db8cu8d8a7u8db8cu8db8c\" \"banu800\" \"u8d8a8u8d8a7u8d988u8d8a7u8d8b1u8db8cu8d8a7\" \"baru800\" \"u8d8a8u8d8a7u8d8b3u8d8a7u8db8cu8db8c\" \"basu800\" \"u8d8a8u8d8a7u8d984u8d8aau8db8cu8daa9u8db8c\" \"batu800\" \"u8d8b3u8d8a7u8d985u8d988u8daafu8db8cu8d8aau8db8c\" \"batu800 smgu800\" \"u8d8a8u8db8cu8daa9u8d988u8d984u8d988u8d986u8d988 u8d985u8d8b1u8daa9u8d8b2u8db8c\" \"bclu800\" \"u8d8a8u8d984u8d988u8d8b1u8d988u8d8b3u8db8c\" \"beu800\" \"u8d8a8u8d8acu8d8a7u8db8cu8db8c\" \"beju800\" \"u8d8a8u8d985u8d8a8u8d8a7u8db8cu8db8c\" \"bemu800\" \"u8d8a8u8d8b1u8d8a8u8d8b1u8db8c\" \"beru800\" \"u8d8a8u8d984u8d8a7u8d8b1u8d988u8d8b3u8db8c\" \"be_x_old\" \"u8d8a8u8d984u8d8bau8d8a7u8d8b1u8db8c\" \"bgu800\" \"u8d8a8u8db8cu8d987u8d8a7u8d8b1u8db8c\" \"bhu800\" \"u8d8a8u8d988u8d8acu8d9beu8d988u8d8b1u8db8c\" \"bhou800\" \"u8d8a8u8db8cu8d8b3u8d984u8d8a7u8d985u8d8a7\" \"biu800\" \"u8d8a8u8db8cu8daa9u8d988u8d984u8db8c\" \"biku800\" \"u8d8a8u8db8cu8d986u8db8c\" \"binu800\" \"u8d8a8u8d986u8d8acu8d8a7u8d8b1\" \"bjnu800\" \"u8d8a8u8d8a7u8d985u8d8a8u8d8a7u8d8b1u8d8a7u8db8cu8db8c\" \"bmu800\" \"u8d8a8u8d986u8daafu8d8a7u8d984u8db8c\" \"bnu800\" \"u8d8a8u8d8a7u8d986u8d8aau8d988u8db8cu8db8c\" \"bntu800\" \"u8d8aau8d8a8u8d8aau8db8c\" \"bou800\" \"u8d8a8u8db8cu8d8b4u8d986u8d8a7u8d9beu8d8b1u8db8cu8d8a7 u8d985u8d8a7u8d986u8db8cu8d9beu8d988u8d8b1u8db8c\" \"bpyu800\" \"u8d8a8u8d8b1u8d8aau8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"bru800\" \"u8d8a8u8d8b1u8d8a7u8d8ac\" \"brau800\" \"u8d8a8u8d988u8d8b3u8d986u8db8cu8d8a7u8db8cu8db8c\" \"bsu800\" \"u8d8a8u8d8a7u8d8aau8d8a7u8daa9u8db8c\" \"btku800\" \"u8d8a8u8d988u8d8b1u8db8cu8d8a7u8d8aau8db8c\" \"buau800\" \"u8d8a8u8d988u8daafu8db8cu8d8a7u8db8cu8db8c\" \"bugu800\" \"u8d8a8u8d8a7u8d8b1u8db8cu8d8a7u8d8aa u8d8b1u8d988u8d8b3u8db8cu8d987 \" \"bxru800\" \"u8d8a8u8d984u8db8cu8d986\" \"bynu800\" \"u8daa9u8d8a7u8d8aau8d8a7u8d984u8d988u8d986u8db8cu8d8a7u8db8cu8db8c\" \"cau800\" \"u8daa9u8d8a7u8d8afu8d988u8db8cu8db8c\" \"cadu800\" \"u8d8b3u8d8b1u8d8ae u200cu8d9beu8d988u8d8b3u8d8aau8db8c u8d8a7u8d985u8d8b1u8db8cu8daa9u8d8a7u8db8c u8d985u8d8b1u8daa9u8d8b2u8db8c\" \"caiu800\" \"u8daa9u8d8a7u8d8b1u8db8cu8d8a8u8db8c\" \"caru800\" \"u8d982u8d981u8d982u8d8a7u8d8b2u8db8c\" \"cauu800\" \"u8d8b2u8d986u8d8a8u8d8a7u8d8a6u8d988u8d986u8daafu8d8a7 u8da86u8d8a7u8d988u8d8a7u8daa9u8d8a7u8d986u8d8a7\" \"cbk_zam\" \"u8d985u8db8cu8d986u8db8c u200cu8d8afu8d8a7u8d986u8daaf\" \"cdou800\" \"u8da86u8da86u8d986u8db8c\" \"ceu800\" \"u8d8b3u8d8a8u8d988u8db8cu8db8c\" \"cebu800\" \"u8d8b3u8d984u8d8aau8db8c\" \"celu800\" \"u8da86u8d8a7u8d985u8d988u8d8b1u8d988u8db8cu8db8c\" \"chu800\" \"u8da86u8db8cu8d8a8u8da86u8d8a7\" \"chbu800\" \"u8d8acu8d8bau8d8aau8d8a7u8db8cu8db8c\" \"chgu800\" \"u8d8aau8d8b1u8d988u8daa9u8db8c\" \"chku800\" \"u8d985u8d8a7u8d8b1u8db8cu8d8a7u8db8cu8db8c\" \"chmu800\" \"u8da86u8d988u8daa9u8d8aau8d988u8db8cu8db8c\" \"chou800\" \"u8da86u8db8cu8d9beu8d987 u200cu8d988u8db8cu8d987 u200cu8d8a7u8db8c\" \"chpu800\" \"u8da86u8d8b1u8d988u8daa9u8db8cu8d8a7u8db8cu8db8c\" \"chru800\" \"u8d8b4u8d8a7u8db8cu8d8a7u8d986u8db8c\" \"chyu800\" \"u8d8b3u8d988u8d8b1u8d8a7u8d986u8db8c\" \"ckbu800\" \"u8daa9u8d988u8d8b1u8d8b3u8db8c\" \"cou800\" \"u8d982u8d8a8u8d8b7u8db8c\" \"copu800\" \"u8daa9u8d8b1u8db8cu8d988u8d984 u8db8cu8d8a7 u8d9beu8db8cu8d8acu8db8cu8d986 u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c\" \"cpeu800\" \"u8daa9u8d8b1u8db8cu8d988u8d984 u8db8cu8d8a7 u8d9beu8db8cu8d8acu8db8cu8d986 u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c\" \"cpfu800\" \"u8daa9u8d8b1u8db8cu8d988u8d984 u8db8cu8d8a7 u8d9beu8db8cu8d8acu8db8cu8d986 u8d9beu8d8b1u8d8aau8d8bau8d8a7u8d984u8db8c\" \"cppu800\" \"u8daa9u8d8b1u8db8cu8d8a7u8db8cu8db8c\" \"cru800\" \"u8d8aau8d8b1u8daa9u8db8c u8daa9u8d8b1u8db8cu8d985u8d987\" \"crhu800\" \"u8daa9u8d8b1u8db8cu8d988u8d984 u8db8cu8d8a7 u8d9beu8db8cu8d8acu8db8cu8d986\" \"crpu800\" \"u8da86u8daa9u8db8c\" \"csu800\" \"u8daa9u8d8a7u8d8b4u8d988u8d8a8u8db8c\" \"csbu800\" \"u8d8a7u8d8b3u8d984u8d8a7u8d988u8db8c u8daa9u8d984u8db8cu8d8b3u8d8a7u8db8cu8db8c\" \"cuu800\" \"u8daa9u8d988u8d8b4u8db8c\" \"cusu800\" \"u8da86u8d988u8d988u8d8a7u8d8b4u8db8c\" \"cvu800\" \"u8d988u8db8cu8d984u8d8b2u8db8c\" \"cyu800\" \"u8d8afu8d8a7u8d986u8d985u8d8a7u8d8b1u8daa9u8db8c\" \"dau800\" \"u8d8afu8d8a7u8daa9u8d988u8d8aau8d8a7u8db8cu8db8c\" \"daku800\" \"u8d8afu8d8a7u8d8b1u8d982u8db8cu8d986u8db8c\" \"daru800\" \"u8d8afu8d8a7u8db8cu8d8a7u8daa9\" \"dayu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c\" \"deu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8a7u8d8aau8d8b1u8db8cu8d8b4\" \"de_at\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8b9u8d984u8db8cu8d8a7u8db8c u8d8b3u8d988u8d8a6u8db8cu8d8b3\" \"de_ch\" \"u8d8afu8d984u8d8a7u8d988u8d8a7u8d8b1u8db8c\" \"delu800\" \"u8d8afu8d988u8daafu8d8b1u8db8cu8d8a8\" \"dgru800\" \"u8d8afu8db8cu8d986u8daa9u8d8a7u8db8cu8db8c\" \"dinu800\" \"u8d8b2u8d8a7u8d8b2u8d8a7u8daa9u8db8c\" \"diqu800\" \"u8d8afu8d988u8daafu8d8b1u8db8c\" \"doiu800\" \"u8d8afu8d8b1u8d8a7u8d988u8db8cu8d8afu8db8c\" \"drau800\" \"u8d8b3u8d988u8d8b1u8d8a8u8db8c u8d8b3u8d981u8d984u8db8c\" \"dsbu800\" \"u8d8afu8d988u8d8a2u8d984u8d8a7u8db8cu8db8c\" \"duau800\" \"u8d987u8d984u8d986u8d8afu8db8c u8d985u8db8cu8d8a7u8d986u8d987\" \"dumu800\" \"u8d985u8d8a7u8d984u8d8afu8db8cu8d988u8db8c\" \"dvu800\" \"u8d8afu8d8a7u8db8cu8d988u8d984u8d8a7u8db8cu8db8c\" \"dyuu800\" \"u8d8acu8d988u8d986u8d8aeu8d8a7u8db8cu8db8c\" \"dzu800\" \"u8d8a7u8d988u8d987 u200cu8d8a7u8db8c\" \"eeu800\" \"u8d8a7u8d981u8db8cu8daa9u8db8c\" \"efiu800\" \"u8d985u8d8b5u8d8b1u8db8c u8daa9u8d987u8d986\" \"egyu800\" \"u8d8a7u8daa9u8d8a7u8d8acu8d988u8daa9\" \"ekau800\" \"u8db8cu8d988u8d986u8d8a7u8d986u8db8c\" \"elu800\" \"u8d8b9u8db8cu8d984u8d8a7u8d985u8db8c\" \"elxu800\" \"u8d8a7u8d985u8db8cu8d984u8db8cu8d986 u8d8b1u8d988u8d985u8d8a7u8daafu8d986u8d8a7u8db8cu8db8c\" \"emlu800\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c\" \"enu800\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d8a7u8d8b3u8d8aau8d8b1u8d8a7u8d984u8db8cu8d8a7\" \"en_au\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8daa9u8d8a7u8d986u8d8a7u8d8afu8d8a7\" \"en_ca\" \"u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d8a8u8d8b1u8db8cu8d8aau8d8a7u8d986u8db8cu8d8a7\" \"en_gb\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d8a7u8d985u8d8b1u8db8cu8daa9u8d8a7\" \"en_us\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d985u8db8cu8d8a7u8d986u8d987\" \"enmu800\" \"u8d8a7u8d8b3u8d9beu8d8b1u8d8a7u8d986u8d8aau8d988\" \"eou800\" \"u8d8a7u8d8b3u8d9beu8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"esu800\" \"u8d8a7u8d8b3u8d9beu8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c u8d8a7u8d985u8d8b1u8db8cu8daa9u8d8a7u8db8c u8d984u8d8a7u8d8aau8db8cu8d986\" \"es_419\" \"u8d8a7u8d8b3u8d9beu8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c u8d8a7u8d8b3u8d9beu8d8a7u8d986u8db8cu8d8a7\" \"es_es\" \"u8d8a7u8d8b3u8d8aau8d988u8d986u8db8cu8d8a7u8db8cu8db8c\" \"etu800\" \"u8d8a8u8d8a7u8d8b3u8daa9u8db8c\" \"euu800\" \"u8d8a7u8d988u8d8a7u8d986u8d8afu8d988\" \"ewou800\" \"u8d8a7u8daa9u8d8b3u8d8aau8d8b1u8d985u8d8a7u8d8afu8d988u8d8b1u8d8a7u8d986u8db8c\" \"extu800\" \"u8d981u8d8a7u8d8b1u8d8b3u8db8c\" \"fau800\" \"u8d981u8d8a7u8d986u8daa9u8db8c\" \"fanu800\" \"u8d981u8d8a7u8d986u8d8aau8db8cu8d8a7u8db8cu8db8c\" \"fatu800\" \"u8d981u8d988u8d984u8d8a7u8db8cu8db8c\" \"ffu800\" \"u8d981u8d986u8d984u8d8a7u8d986u8d8afu8db8c\" \"fiu800\" \"u8d981u8db8cu8d984u8db8cu8d9beu8db8cu8d986u8db8c\" \"filu800\" \"u8d981u8db8cu8d986 u8d988 u8d8a7u8d988u8daafu8d8b1u8d8a7u8db8cu8db8c\" \"fiuu800\" \"u8d988u8d8b1u8d988u8db8c\" \"fiuu800 vrou800\" \"u8d981u8db8cu8d8acu8db8cu8d8a7u8db8cu8db8c\" \"fju800\" \"u8d981u8d8a7u8d8b1u8d988u8db8cu8db8c\" \"fou800\" \"u8d981u8d988u8d986u8db8c\" \"fonu800\" \"u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c\" \"fru800\" \"u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c u8daa9u8d8a7u8d986u8d8a7u8d8afu8d8a7\" \"fr_ca\" \"u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c u8d8b3u8d988u8d8a6u8db8cu8d8b3\" \"fr_ch\" \"u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c u8d985u8db8cu8d8a7u8d986u8d987\" \"frmu800\" \"u8d981u8d8b1u8d8a7u8d986u8d8b3u8d988u8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"frou800\" \"u8d8a2u8d8b1u8d9beu8db8cu8d8aau8d8a7u8d986u8db8c\" \"frpu800\" \"u8d981u8d8b1u8db8cu8d8b2u8db8c u8d8b4u8d985u8d8a7u8d984u8db8c\" \"frru800\" \"u8d981u8d8b1u8db8cu8d8b2u8db8c u8d8b4u8d8b1u8d982u8db8c\" \"frsu800\" \"u8d981u8d8b1u8db8cu8d988u8d984u8db8cu8d8a7u8db8cu8db8c\" \"furu800\" \"u8d981u8d8b1u8db8cu8d8b2u8db8c u8d8bau8d8b1u8d8a8u8db8c\" \"fyu800\" \"u8d8a7u8db8cu8d8b1u8d984u8d986u8d8afu8db8c\" \"gau800\" \"u8daafu8d8a7u8db8cu8db8c\" \"gaau800\" \"u8daafu8d8a7u8daafu8d8a7u8d8b2u8db8c\" \"gagu800\" \"u8daafu8d8a7u8d986u8db8c\" \"ganu800\" \"u8daafu8d8a7u8db8cu8d988u8db8cu8db8c\" \"gayu800\" \"u8daafu8d8a8u8d8a7u8db8cu8d8a7u8db8cu8db8c\" \"gbau800\" \"u8daafu8db8cu8d984u8db8c u8d8a7u8d8b3u8daa9u8d8a7u8d8aau8d984u8d986u8d8afu8db8c\" \"gdu800\" \"u8da98u8d8b1u8d985u8d986u8db8c\" \"gemu800\" \"u8daafu8db8c u200cu8d8a6u8d8b2u8db8c\" \"gezu800\" \"u8daafu8db8cu8d984u8d8a8u8d8b1u8d8aau8db8c\" \"gilu800\" \"u8daafu8d8a7u8d984u8db8cu8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"glu800\" \"u8daafu8db8cu8d984u8daa9u8db8c\" \"glku800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8b9u8d984u8db8cu8d8a7u8db8c u8d985u8db8cu8d8a7u8d986u8d987\" \"gmhu800\" \"u8daafu8d988u8d8a7u8d8b1u8d8a7u8d986u8db8c\" \"gnu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8b9u8d984u8db8cu8d8a7u8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"gohu800\" \"u8daafu8d988u8d986u8d8afu8db8c\" \"gonu800\" \"u8daafu8d988u8d8b1u8d988u8d986u8d8aau8d8a7u8d984u8d988\" \"goru800\" \"u8daafu8d988u8d8aau8db8c\" \"gotu800\" \"u8daafu8d8b1u8db8cu8d8a8u8d988u8db8cu8db8c\" \"grbu800\" \"u8db8cu8d988u8d986u8d8a7u8d986u8db8c u8daa9u8d987u8d986\" \"grcu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8b3u8d988u8d8a6u8db8cu8d8b3u8db8c\" \"gswu800\" \"u8daafu8d8acu8d8b1u8d8a7u8d8aau8db8c\" \"guu800\" \"u8d985u8d8a7u8d986u8db8c\" \"gvu800\" \"u8daafu8d988u8db8cu8da86 u8d8a7u8db8cu8d986\" \"gwiu800\" \"u8d987u8d988u8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"hau800\" \"u8d987u8d8a7u8db8cu8d8afu8d8a7u8db8cu8db8c\" \"haiu800\" \"u8d987u8d8a7u8daa9u8d8a7u8db8cu8db8c\" \"haku800\" \"u8d987u8d8a7u8d988u8d8a7u8d8a6u8db8cu8d8a7u8db8cu8db8c\" \"hawu800\" \"u8d8b9u8d8a8u8d8b1u8db8c\" \"heu800\" \"u8d987u8d986u8d8afu8db8c\" \"hiu800\" \"u8d981u8db8cu8d8acu8db8c u8d987u8d986u8d8afu8db8c\" \"hifu800\" \"u8d987u8db8cu8d984u8db8c u200cu8daafu8d8a7u8db8cu8d986u8d988u8d986u8db8c\" \"hilu800\" \"u8d987u8db8cu8d985u8d8a7u8da86u8d8a7u8d984u8db8c\" \"himu800\" \"u8d987u8db8cu8d8aau8db8c\" \"hitu800\" \"u8d987u8d985u8d988u8d986u8daaf\" \"hmnu800\" \"u8d985u8d988u8d8aau8d988u8db8cu8db8c u8d987u8db8cu8d8b1u8db8c\" \"hou800\" \"u8daa9u8d8b1u8d988u8d8a7u8d8aau8db8c\" \"hru800\" \"u8d8b3u8d988u8d8b1u8d8a8u8db8c u8d8b9u8d984u8db8cu8d8a7\" \"hsbu800\" \"u8d987u8d8a7u8d8a6u8db8cu8d8aau8db8cu8d8a7u8db8cu8db8c\" \"htu800\" \"u8d985u8d8acu8d8a7u8d8b1u8db8c\" \"huu800\" \"u8d987u8d988u8d9beu8d8a7\" \"hupu800\" \"u8d8a7u8d8b1u8d985u8d986u8db8c\" \"hyu800\" \"u8d987u8d8b1u8db8cu8d8b1u8d988u8db8cu8db8c\" \"hzu800\" \"u8d985u8db8cu8d8a7u8d986 u200cu8d8b2u8d8a8u8d8a7u8d986\" \"iau800\" \"u8d8a2u8db8cu8d8a8u8d986\" \"ibau800\" \"u8d8a7u8d986u8d8afu8d988u8d986u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"idu800\" \"u8d8a7u8daa9u8d8b3u8db8cu8d8afu8d986u8d8aau8d8a7u8d984\" \"ieu800\" \"u8d8a7u8db8cu8daafu8d8a8u8d988u8db8cu8db8c\" \"igu800\" \"u8db8cu8db8c u8d8b3u8db8cu8da86u8d988u8d8a7u8d986\" \"iiu800\" \"u8d8a7u8db8cu8d8acu8d988u8db8cu8db8c\" \"ijou800\" \"u8d8a7u8db8cu8d986u8d988u8d9beu8db8cu8daa9\" \"iku800\" \"u8d8a7u8db8cu8d984u8d988u8daa9u8d988u8db8cu8db8c\" \"ilou800\" \"u8d987u8d986u8d8afu8db8cu8daa9\" \"incu800\" \"u8d987u8d986u8d8af u8d988 u8d8a7u8d8b1u8d988u8d9beu8d8a7u8db8cu8db8c\" \"ineu800\" \"u8d8a7u8db8cu8d986u8daafu8d988u8d8b4u8db8c\" \"inhu800\" \"u8d8a7u8db8cu8d8afu8d988\" \"iou800\" \"u8d8a7u8db8cu8d8b1u8d8a7u8d986u8db8c\" \"irau800\" \"u8d8a7u8db8cu8d8b1u8d988u8daa9u8d988u8d8a7u8db8cu8db8c\" \"irou800\" \"u8d8a7u8db8cu8d8b3u8d984u8d986u8d8afu8db8c\" \"isu800\" \"u8d8a7u8db8cu8d8aau8d8a7u8d984u8db8cu8d8a7u8db8cu8db8c\" \"itu800\" \"u8d8a7u8db8cu8d986u8d988u8daa9u8d8aau8db8cu8d8aau8d988u8d8aa\" \"iuu800\" \"u8da98u8d8a7u8d9beu8d986u8db8c\" \"jau800\" \"u8d984u8d988u8d8acu8d8a8u8d8a7u8d986\" \"jbou800\" \"u8d981u8d8a7u8d8b1u8d8b3u8db8c u8db8cu8d987u8d988u8d8afu8db8c\" \"jpru800\" \"u8d8b9u8d8b1u8d8a8u8db8c u8db8cu8d987u8d988u8d8afu8db8c\" \"jrbu800\" \"u8d8acu8d8a7u8d988u8d987 u200cu8d8a7u8db8c\" \"jvu800\" \"u8daafu8d8b1u8d8acu8db8c\" \"kau800\" \"u8d982u8d8b1u8d987 u200cu8d982u8d8a7u8d984u8d9beu8d8a7u8d982u8db8c\" \"kaau800\" \"u8d982u8d8a8u8d8a7u8db8cu8d984u8db8c\" \"kabu800\" \"u8daa9u8d8a7u8da86u8db8cu8d986u8db8c\" \"kacu800\" \"u8d8acu8d988\" \"kaju800\" \"u8daa9u8d8a7u8d985u8d8a8u8d8a7u8db8cu8db8c\" \"kamu800\" \"u8daa9u8d8a7u8d8b1u8d986u8db8c\" \"karu800\" \"u8daa9u8d8a7u8d988u8db8cu8d8a7u8db8cu8db8c\" \"kawu800\" \"u8daa9u8d8a7u8d8a8u8d8a7u8d8b1u8d8afu8db8cu8d986u8db8c\" \"kbdu800\" \"u8d8aau8d8a7u8db8cu8d9beu8d987 u8d8a7u8db8c\" \"kcgu800\" \"u8daa9u8d988u8d8b1u8d988\" \"kfou800\" \"u8daa9u8d986u8daafu8d988u8db8cu8db8c\" \"kgu800\" \"u8d8aeu8d8a7u8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"khau800\" \"u8d8aeu8d988u8d8a7u8d8b3u8db8c\" \"khiu800\" \"u8d8aeu8d8aau8d986u8db8c\" \"khou800\" \"u8daa9u8db8cu8daa9u8d988u8db8cu8d988u8db8cu8db8c\" \"kiu800\" \"u8daa9u8d988u8d8a7u8d986u8db8cu8d8a7u8d985u8d8a7\" \"kju800\" \"u8d982u8d8b2u8d8a7u8d982u8db8c\" \"kku800\" \"u8daafu8d8b1u8db8cu8d986u8d984u8d986u8d8afu8db8c\" \"klu800\" \"u8d8aeu8d985u8d8b1u8db8c\" \"kmu800\" \"u8daa9u8db8cu8d985u8d8a8u8d988u8d986u8d8afu8d988u8db8cu8db8c\" \"kmbu800\" \"u8daa9u8d8a7u8d986u8d8a7u8d8afu8d987 u200cu8d8a7u8db8c\" \"knu800\" \"u8daa9u8d8b1u8d987 u200cu8d8a7u8db8c\" \"kou800\" \"u8daa9u8d988u8d985u8db8c\" \"koiu800\" \"u8daa9u8d986u8daa9u8d8a7u8d986u8db8c\" \"koku800\" \"u8daa9u8d9beu8d984u8d987 u200cu8d8a7u8db8c\" \"kpeu800\" \"u8daa9u8d8a7u8d986u8d988u8d8b1u8db8cu8d8a7u8db8cu8db8c\" \"kru800\" \"u8d982u8d8b1u8d987 u200cu8da86u8d8a7u8db8cu8db8cu8e28090u8d8a8u8d8a7u8d984u8daa9u8d8a7u8d8b1u8db8c\" \"krcu800\" \"u8daa9u8d8b1u8d988u8db8cu8db8c\" \"krou800\" \"u8daa9u8d988u8d8b1u8d988u8d8aeu8db8c\" \"kruu800\" \"u8daa9u8d8b4u8d985u8db8cu8d8b1u8db8c\" \"ksu800\" \"u8d8b1u8db8cu8d9beu8d988u8d8a7u8d8b1u8db8c\" \"kshu800\" \"u8daa9u8d8b1u8d8afu8db8c\" \"kuu800\" \"u8daa9u8d988u8d985u8db8cu8daa9u8db8c\" \"kumu800\" \"u8daa9u8d988u8d8aau8d986u8db8c\" \"kutu800\" \"u8daa9u8d988u8d985u8db8cu8d8a7u8db8cu8db8c\" \"kvu800\" \"u8daa9u8d8b1u8d986u8d988u8d8a7u8d984u8db8c\" \"kwu800\" \"u8d982u8d8b1u8d982u8db8cu8d8b2u8db8c\" \"kyu800\" \"u8d984u8d8a7u8d8aau8db8cu8d986u8db8c\" \"lau800\" \"u8d984u8d8a7u8d8afu8db8cu8d986u8d988\" \"ladu800\" \"u8d984u8d8a7u8d987u8d986u8d8afu8d8a7\" \"lahu800\" \"u8d984u8d8a7u8d985u8d8a8u8d8a7\" \"lamu800\" \"u8d984u8d988u8daafu8d8b2u8d8a7u8d985u8d8a8u8d988u8d8b1u8daafu8db8c\" \"lbu800\" \"u8d984u8daa9u8db8c\" \"lbeu800\" \"u8d984u8d8b2u8daafu8db8c\" \"lezu800\" \"u8daafu8d8a7u8d986u8d8afu8d8a7u8db8cu8db8c\" \"lgu800\" \"u8d984u8db8cu8d985u8d8a8u8d988u8d8b1u8daafu8db8c\" \"liu800\" \"u8d984u8db8cu8daafu8d988u8d8a7u8d8b1u8db8c\" \"liju800\" \"u8d984u8d985u8d8a8u8d8a7u8d8b1u8d8afu8db8c\" \"lmou800\" \"u8d984u8db8cu8d986u8daafu8d8a7u8d984u8d8a7\" \"lnu800\" \"u8d984u8d8a7u8d8a6u8d988u8d8b3u8db8c\" \"lou800\" \"u8d985u8d988u8d986u8daafu8d988u8db8cu8db8c\" \"lolu800\" \"u8d984u8d988u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"lozu800\" \"u8d984u8db8cu8d8aau8d988u8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"ltu800\" \"u8d984u8d988u8d8a8u8d8a7u8db8cu8db8cu8e28090u8daa9u8d8a7u8d8aau8d8a7u8d986u8daafu8d8a7\" \"luu800\" \"u8d984u8d988u8d8a8u8d8a7u8db8cu8db8cu8e28090u8d984u8d988u8d984u8d988u8d8a7\" \"luau800\" \"u8d984u8d988u8db8cu8d8b3u8d986u8d988\" \"luiu800\" \"u8d984u8d988u8d986u8d8afu8d8a7u8db8cu8db8c\" \"lunu800\" \"u8d984u8d988u8d8a6u8d988u8db8cu8db8c\" \"luou800\" \"u8d984u8d988u8d8b4u8d987 u200cu8d8a7u8db8c\" \"lusu800\" \"u8d984u8d8aau8d988u8d986u8db8cu8d8a7u8db8cu8db8c\" \"lvu800\" \"u8d985u8d8a7u8d8afu8d988u8d8b1u8d8a7u8db8cu8db8c\" \"madu800\" \"u8d985u8d8a7u8daafu8d8a7u8d987u8db8cu8d8a7u8db8cu8db8c\" \"magu800\" \"u8d985u8d8a7u8db8cu8d8afu8db8cu8d984u8db8c\" \"maiu800\" \"u8d985u8d8a7u8daa9u8d8a7u8d8b3u8d8a7u8d8b1\" \"maku800\" \"u8d985u8d8a7u8d986u8d8afu8db8cu8d986u8daafu8d988u8db8cu8db8c\" \"manu800\" \"u8d8a2u8d8b3u8d8aau8d8b1u8d988u8d986u8db8cu8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"mapu800\" \"u8d8a8u8d8a7u8d986u8db8cu8d988u8d985u8d8a7u8d8b3u8d8a7u8d986u8db8c\" \"mapu800 bmsu800\" \"u8d985u8d8a7u8d8b3u8d8a7u8db8cu8db8c\" \"masu800\" \"u8d985u8daa9u8d8b4u8d8a7u8db8cu8db8c\" \"mdfu800\" \"u8d985u8d8a7u8d986u8d8afu8d8a7u8d8b1\" \"mdru800\" \"u8d985u8d986u8d8afu8d987 u200cu8d8a7u8db8c\" \"menu800\" \"u8d985u8d8a7u8d984u8d8a7u8daafu8d8a7u8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"mgu800\" \"u8d8a7u8db8cu8d8b1u8d984u8d986u8d8afu8db8c u8d985u8db8cu8d8a7u8d986u8d987\" \"mgau800\" \"u8d985u8d8a7u8d8b1u8d8b4u8d8a7u8d984u8db8c\" \"mhu800\" \"u8d985u8d8a6u8d988u8d8afu8d988 u8d985u8d8a7u8d8b1u8db8c\" \"mhru800\" \"u8d985u8d8a7u8d8a6u8d988u8d8b1u8db8cu8d8a7u8db8cu8db8c\" \"miu800\" \"u8d985u8db8cu8daa9u8d985u8d8a7u8daa9u8db8c\" \"micu800\" \"u8d985u8db8cu8d986u8d8a7u8d986u8daaf u200cu8daa9u8d8a7u8d8a8u8d988u8db8cu8db8c\" \"minu800\" \"u8d985u8d8aau8d981u8d8b1u8d982u8d987\" \"misu800\" \"u8d985u8d982u8d8afu8d988u8d986u8db8c\" \"mku800\" \"u8d985u8d988u8d986 u200cu8d8aeu8d985u8d8b1u8db8c\" \"mkhu800\" \"u8d985u8d8a7u8d984u8d8a7u8db8cu8d8a7u8d984u8d8a7u8d985u8db8c\" \"mlu800\" \"u8d985u8d8bau8d988u8d984u8db8c\" \"mnu800\" \"u8d985u8d8a7u8d986u8da86u8d988u8db8cu8db8c\" \"mncu800\" \"u8d985u8db8cu8d8aau8d987 u200cu8d8a7u8db8c\" \"mniu800\" \"u8d985u8d8a7u8d986u8d988u8d8a8u8d988\" \"mnou800\" \"u8d985u8d988u8d984u8d8afu8d8a7u8d988u8db8cu8d8a7u8db8cu8db8c\" \"mou800\" \"u8d985u8d988u8d987u8d8a7u8daa9u8db8c\" \"mohu800\" \"u8d985u8d8a7u8d8b3u8db8cu8d8a7u8db8cu8db8c\" \"mosu800\" \"u8d985u8d8b1u8d8a7u8d8aau8db8c\" \"mru800\" \"u8d987u8db8cu8d984 u8d985u8d8a7u8d8b1u8db8c\" \"mrju800\" \"u8d985u8d8a7u8d984u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"msu800\" \"u8d985u8d8a7u8d984u8d8aau8db8c\" \"mtu800\" \"u8da86u8d986u8d8afu8db8cu8d986 u8d8b2u8d8a8u8d8a7u8d986\" \"mulu800\" \"u8d985u8d988u8d986u8d8afu8d8a7u8db8cu8db8c\" \"munu800\" \"u8daa9u8d8b1u8db8cu8daa9u8db8c\" \"musu800\" \"u8d985u8db8cu8d8b1u8d8a7u8d986u8d8afu8d8b3u8db8c\" \"mwlu800\" \"u8d985u8d8a7u8d8b1u8d988u8d8a7u8d8b1u8db8c\" \"mwru800\" \"u8d8a8u8d8b1u8d985u8d987 u200cu8d8a7u8db8c\" \"myu800\" \"u8d985u8d8a7u8db8cu8d8a7u8db8cu8db8c\" \"mynu800\" \"u8d8a7u8d8b1u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"myvu800\" \"u8d985u8d8a7u8d8b2u8d986u8d8afu8d8b1u8d8a7u8d986u8db8c\" \"mznu800\" \"u8d986u8d8a7u8d8a6u8d988u8d8b1u8d988u8db8cu8db8c\" \"nau800\" \"u8d986u8d8a7u8d988u8d8a7u8d8aau8d984u8db8c\" \"nahu800\" \"u8d8b3u8d8b1u8d8aeu8d9beu8d988u8d8b3u8d8aau8db8c u8d8a7u8d985u8d8b1u8db8cu8daa9u8d8a7u8db8c u8d8b4u8d985u8d8a7u8d984u8db8c\" \"naiu800\" \"u8d986u8d8a7u8d9beu8d984u8db8c\" \"napu800\" \"u8d8a8u8d988u8daa9u8d8b3u8d985u8d8a7u8d984 u8d986u8d8b1u8d988u8da98u8db8c\" \"nbu800\" \"u8d8a7u8d986u8d8afu8d987 u200cu8d8a8u8d984u8d987 u200cu8d8a7u8db8c u8d8b4u8d985u8d8a7u8d984u8db8c\" \"ndu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d8b3u8d981u8d984u8db8c\" \"ndsu800\" \"u8d987u8d984u8d986u8d8afu8db8c u8d8b3u8d8a7u8daa9u8d8b3u8d988u8d986 u8d9beu8d8a7u8db8cu8db8cu8d986\" \"ndsu800 nlu800\" \"u8d986u8d9beu8d8a7u8d984u8db8c\" \"neu800\" \"u8d986u8d988u8d8a7u8d8b1u8db8cu8d8a7u8db8cu8db8c\" \"newu800\" \"u8d8a7u8d986u8d8afu8d988u8d986u8daafu8d8a7u8db8cu8db8c\" \"ngu800\" \"u8d986u8db8cu8d8a7u8d8b3u8db8c\" \"niau800\" \"u8d986u8db8cu8d988u8db8cu8db8c\" \"niuu800\" \"u8d987u8d984u8d986u8d8afu8db8c\" \"nlu800\" \"u8d981u8d984u8d8a7u8d986u8d8afu8d8b1u8db8c\" \"nl_be\" \"u8d986u8d8b1u8d988u8da98u8db8c u8d986u8d988\" \"nnu800\" \"u8d986u8d8b1u8d988u8da98u8db8c\" \"nou800\" \"u8d986u8d8bau8d8a7u8db8cu8db8c\" \"nogu800\" \"u8d986u8d8b1u8d8b3 u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"nonu800\" \"u8d986u8d988u8db8cu8d8a7u8d984u8db8c\" \"novu800\" \"u8d8a7u8d986u8d8afu8d987 u200cu8d8a8u8d984u8d987 u200cu8d8a7u8db8c u8d8acu8d986u8d988u8d8a8u8db8c\" \"nru800\" \"u8d986u8d988u8d8b1u8d985u8d986u8db8c\" \"nrmu800\" \"u8d8b3u8d988u8d8aau8d988u8db8cu8db8c u8d8b4u8d985u8d8a7u8d984u8db8c\" \"nsou800\" \"u8d986u8d988u8d8a8u8db8cu8d8a7u8db8cu8db8c\" \"nubu800\" \"u8d986u8d8a7u8d988u8d8a7u8d987u8d988u8db8cu8db8c\" \"nvu800\" \"u8d986u8d988u8d8a7u8d8b1u8db8cu8d8a7u8db8cu8db8c u8daa9u8d984u8d8a7u8d8b3u8db8cu8daa9\" \"nwcu800\" \"u8d986u8db8cu8d8a7u8d986u8d8acu8d8a7u8db8cu8db8c\" \"nyu800\" \"u8d986u8db8cu8d8a7u8d985 u200cu8d988u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"nymu800\" \"u8d986u8db8cu8d8a7u8d986u8daa9u8d988u8d984u8d987 u200cu8d8a7u8db8c\" \"nynu800\" \"u8d986u8db8cu8d988u8d8b1u8d988u8db8cu8db8c\" \"nyou800\" \"u8d986u8d8b2u8db8cu8d985u8d8a7u8db8cu8db8c\" \"nziu800\" \"u8d8a7u8d988u8daa9u8db8cu8d8aau8d8a7u8db8cu8db8c\" \"ocu800\" \"u8d8a7u8d988u8d8acu8db8cu8d8a8u8d988u8d8a7u8db8cu8db8c\" \"oju800\" \"u8d8a7u8d988u8d8b1u8d988u8d985u8d988u8db8cu8db8c\" \"omu800\" \"u8d8a7u8d988u8d8b1u8db8cu8d987 u200cu8d8a7u8db8c\" \"oru800\" \"u8d8a2u8d8b3u8db8c\" \"osu800\" \"u8d8a7u8d988u8d8b3u8db8cu8d8acu8db8c\" \"osau800\" \"u8d8aau8d8b1u8daa9u8db8c u8d8b9u8d8abu8d985u8d8a7u8d986u8db8c\" \"otau800\" \"u8d8a7u8d8aau8d988u8d985u8db8cu8d8a7u8db8cu8db8c\" \"otou800\" \"u8d9beu8d986u8d8acu8d8a7u8d8a8u8db8c\" \"pau800\" \"u8d9beu8d8a7u8d9beu8d988u8d8a7u8db8cu8db8c\" \"paau800\" \"u8d9beu8d8a7u8d986u8daafu8d8a7u8d8b3u8db8cu8d986u8d8a7u8d986u8db8c\" \"pagu800\" \"u8d9beu8d987u8d984u8d988u8db8c\" \"palu800\" \"u8d9beu8d8a7u8d985u8d9beu8d8a7u8d986u8daafu8d8a7u8db8cu8db8c\" \"pamu800\" \"u8d9beu8d8a7u8d9beu8db8cu8d8a7u8d985u8d986u8d8aau8d988\" \"papu800\" \"u8d9beu8d8a7u8d984u8d8a7u8d8a6u8d988u8db8cu8db8c\" \"pauu800\" \"u8d9beu8db8cu8daa9u8d8a7u8d8b1u8d8afu8db8c\" \"pcdu800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d9beu8d986u8d8b3u8db8cu8d984u8d988u8d8a7u8d986u8db8cu8d8a7\" \"pdcu800\" \"u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"peou800\" \"u8d8a2u8d984u8d985u8d8a7u8d986u8db8c u8d981u8d8a7u8d984u8d8aau8d8b2\" \"pflu800\" \"u8d981u8db8cu8d984u8db8cu8d9beu8db8cu8d986u8db8c\" \"phiu800\" \"u8d981u8d986u8db8cu8d982u8db8c\" \"phnu800\" \"u8d9beu8d8a7u8d984u8db8c\" \"piu800\" \"u8d986u8d988u8d8b1u8d981u8d988u8d984u8daa9u8db8c\" \"pihu800\" \"u8d984u8d987u8d8b3u8d8aau8d8a7u8d986u8db8c\" \"plu800\" \"u8d9beu8db8cu8d985u8d988u8d986u8d8afu8db8c\" \"pmsu800\" \"u8d9beu8d986u8d8acu8d8a7u8d8a8u8db8c u8d8bau8d8b1u8d8a8u8db8c\" \"pnbu800\" \"u8d9beu8d986u8db8cu8daa9u8db8c\" \"pntu800\" \"u8d9beu8d986u8d8a7u8d9beu8db8c\" \"ponu800\" \"u8d9beu8d8b1u8d8a7u8daa9u8d8b1u8db8cu8d8aau8db8c\" \"prau800\" \"u8d9beu8d8b1u8d988u8d988u8d8a7u8d986u8d8b3u8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"prou800\" \"u8d9beu8d8b4u8d8aau8d988\" \"psu800\" \"u8d9beu8d8b1u8d8aau8d8bau8d8a7u8d984u8db8c\" \"ptu800\" \"u8d9beu8d8b1u8d8aau8d8bau8d8a7u8d984u8db8c u8d8a8u8d8b1u8d8b2u8db8cu8d984\" \"pt_br\" \"u8d9beu8d8b1u8d8aau8d8bau8d8a7u8d984u8db8c u8d9beu8d8b1u8d8aau8d8bau8d8a7u8d984\" \"pt_pt\" \"u8daa9u8da86u8d988u8d8a7u8db8cu8db8c\" \"quu800\" \"u8d8b1u8d8a7u8d8acu8d8b3u8d8aau8d8a7u8d986u8db8c\" \"raju800\" \"u8d8b1u8d8a7u8d9beu8d8a7u8d986u8d988u8db8cu8db8c\" \"rapu800\" \"u8d8b1u8d8a7u8d8b1u8d988u8d8aau8d988u8d986u8daafu8d8a7u8db8cu8db8c\" \"raru800\" \"u8d8b1u8d8aau8d988u8e28090u8d8b1u8d988u8d985u8db8cu8d8a7u8db8cu8db8c\" \"rmu800\" \"u8d8b1u8d988u8d985u8d986u8db8c u8d987u8d986u8d8afu8db8c \" \"rmyu800\" \"u8d8b1u8d988u8d986u8d8afu8db8cu8d8a7u8db8cu8db8c\" \"rnu800\" \"u8d8b1u8d988u8d985u8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"rou800\" \"u8d8b1u8d988u8d985u8db8cu8d8a7u8db8cu8db8c\" \"roau800\" \"u8d8a2u8d8b1u8d988u8d985u8d8a7u8d986u8db8c\" \"roau800 rupu800\" \"u8d8aau8d8a7u8d8b1u8d8a7u8d986u8d8aau8db8cu8d986u8d988u8db8cu8db8c\" \"roau800 tara\" \"u8d8b1u8d988u8d985u8d8a7u8d986u8d988u8db8cu8db8c\" \"romu800\" \"u8d8b1u8d988u8d8b3u8db8c\" \"ruu800\" \"u8d8b1u8d988u8d8b3u8db8cu8d986u8db8c\" \"rueu800\" \"u8daa9u8db8cu8d986u8db8cu8d8a7u8d8b1u8d988u8d8a7u8d986u8d8afu8d8a7u8db8cu8db8c\" \"rwu800\" \"u8d8b3u8d986u8d8b3u8daa9u8d8b1u8db8cu8d8aa\" \"sau800\" \"u8d8b3u8d8a7u8d986u8d8afu8d8a7u8d988u8d987 u200cu8d8a7u8db8c\" \"sadu800\" \"u8db8cu8d8a7u8d982u8d988u8d8aau8db8c\" \"sahu800\" \"u8d8b3u8d8b1u8d8aeu8d9beu8d988u8d8b3u8d8aau8db8c u8d8a7u8d985u8d8b1u8db8cu8daa9u8d8a7u8db8c u8d8acu8d986u8d988u8d8a8u8db8c\" \"saiu800\" \"u8d8b3u8d8a7u8d984u8db8cu8d8b4u8db8c\" \"salu800\" \"u8d8a2u8d8b1u8d8a7u8d985u8db8c u8d8b3u8d8a7u8d985u8d8b1u8db8c\" \"samu800\" \"u8d8b3u8d8a7u8d8b3u8d8a7u8daa9u8db8c\" \"sasu800\" \"u8d8b3u8d8a7u8d986u8d8aau8d8a7u8d984u8db8c\" \"satu800\" \"u8d8b3u8d8a7u8d8b1u8d8afu8db8cu8d986u8db8cu8d8a7u8db8cu8db8c\" \"scu800\" \"u8d8b3u8db8cu8d8b3u8db8cu8d984u8db8c\" \"scnu800\" \"u8d8a7u8d8b3u8daa9u8d8a7u8d8aau8d984u8d986u8d8afu8db8c\" \"scou800\" \"u8d8b3u8d986u8d8afu8db8c\" \"sdu800\" \"u8d8b3u8d8a7u8d985u8db8c u8d8b4u8d985u8d8a7u8d984u8db8c\" \"seu800\" \"u8d8b3u8d984u8daa9u8d988u8d9beu8db8c\" \"selu800\" \"u8d8b3u8d8a7u8d985u8db8c\" \"semu800\" \"u8d8b3u8d8a7u8d986u8daafu8d988u8db8cu8db8c\" \"sgu800\" \"u8d8a7u8db8cu8d8b1u8d984u8d986u8d8afu8db8c u8d8a8u8d8a7u8d8b3u8d8aau8d8a7u8d986\" \"sgau800\" \"u8d986u8d8b4u8d8a7u8d986u8d987 u200cu8d8a7u8db8c\" \"sgnu800\" \"u8d8b5u8d8b1u8d8a8 u8d988 u8daa9u8d8b1u8d988u8d8a7u8d8aau8db8c\" \"shu800\" \"u8d8b4u8d8a7u8d986u8db8c\" \"shnu800\" \"u8d8b3u8db8cu8d986u8d987u8d8a7u8d984u8db8c\" \"siu800\" \"u8d8b3u8db8cu8d8afu8d8a7u8d985u8d988u8db8cu8db8c\" \"sidu800\" \"u8d8a7u8d986u8daafu8d984u8db8cu8d8b3u8db8c u8d8b3u8d8a7u8d8afu8d987\" \"simple\" \"u8d8b3u8d988u8db8cu8db8c\" \"siou800\" \"u8da86u8db8cu8d986 u8d988 u8d8aau8d8a8u8d8aau8db8c\" \"situ800\" \"u8d8a7u8d8b3u8d984u8d988u8d8a7u8daa9u8db8c\" \"sku800\" \"u8d8a7u8d8b3u8d984u8d988u8d988u8db8cu8d986u8db8cu8d8a7u8db8cu8db8c\" \"slu800\" \"u8d8a7u8d8b3u8d984u8d8a7u8d988u8db8c\" \"slau800\" \"u8d8b3u8d8a7u8d985u8d988u8d8a2u8db8cu8db8c\" \"smu800\" \"u8d8b4u8d988u8d986u8d8a7u8db8cu8db8c\" \"snu800\" \"u8d8b3u8d988u8d986u8db8cu8d986u8daa9u8d987 u200cu8d8a7u8db8c\" \"snku800\" \"u8d8b3u8d988u8d985u8d8a7u8d984u8db8cu8d8a7u8db8cu8db8c\" \"sou800\" \"u8d8b3u8d8bau8d8afu8db8c\" \"sogu800\" \"u8d8b3u8d988u8d986u8d8bau8d8a7u8db8cu8db8c\" \"sonu800\" \"u8d8a2u8d984u8d8a8u8d8a7u8d986u8db8cu8d8a7u8db8cu8db8c\" \"squ800\" \"u8d8b5u8d8b1u8d8a8u8db8c\" \"sru800\" \"u8d8aau8d8a7u8daa9u8db8c u200cu8d8aau8d8a7u8daa9u8db8c\" \"srnu800\" \"u8d8b3u8d8b1u8db8cu8d8b1u8db8c\" \"srru800\" \"u8d8b3u8d988u8d8a7u8d8b2u8db8cu8d8a7u8db8cu8db8c\" \"ssu800\" \"u8d986u8db8cu8d984u8db8c u8d988 u8d8b5u8d8adu8d8b1u8d8a7u8db8cu8db8c\" \"ssau800\" \"u8d8b3u8d988u8d8aau8d988u8db8cu8db8c u8d8acu8d986u8d988u8d8a8u8db8c\" \"stu800\" \"u8d981u8d8b1u8db8cu8d8b2u8db8c u8d8b3u8d8aau8d8b1u8d984u8d986u8d8af\" \"stqu800\" \"u8d8b3u8d988u8d986u8d8afu8d8a7u8db8cu8db8c\" \"suu800\" \"u8d8b3u8d988u8daa9u8d988u8d985u8d8a7u8db8cu8db8c\" \"suku800\" \"u8d8b3u8d988u8d8b3u8d988u8db8cu8db8c\" \"susu800\" \"u8d8b3u8d988u8d985u8d8b1u8db8c\" \"suxu800\" \"u8d8b3u8d988u8d8a6u8d8afu8db8c\" \"svu800\" \"u8d8b3u8d988u8d8a7u8d8adu8d984u8db8c\" \"swu800\" \"u8d8b3u8d8b1u8db8cu8d8a7u8d986u8db8c u8daa9u8d984u8d8a7u8d8b3u8db8cu8daa9\" \"sycu800\" \"u8d8b3u8d8b1u8db8cu8d8a7u8d986u8db8c\" \"syru800\" \"u8d8b3u8db8cu8d984u8d8b3u8db8cu8d986u8db8c\" \"szlu800\" \"u8d8aau8d8a7u8d985u8db8cu8d984u8db8c\" \"tau800\" \"u8d8aau8d8a7u8db8cu8db8c\" \"taiu800\" \"u8d8aau8d984u8d988u8daafu8d988u8db8cu8db8c\" \"teu800\" \"u8d8aau8d985u8d986u8d987 u200cu8d8a7u8db8c\" \"temu800\" \"u8d8aau8d8b1u8d986u8d988\" \"teru800\" \"u8d8aau8d8aau8d988u8d985u8db8c\" \"tetu800\" \"u8d8aau8d8a7u8d8acu8db8cu8daa9u8db8c\" \"tgu800\" \"u8d8aau8d8a7u8db8cu8d984u8d986u8d8afu8db8c\" \"thu800\" \"u8d8aau8db8cu8daafu8d8b1u8db8cu8d986u8db8cu8d8a7u8db8cu8db8c\" \"tiu800\" \"u8d8aau8db8cu8daafu8d8b1u8d987 u200cu8d8a7u8db8c\" \"tigu800\" \"u8d8aau8db8cu8d988u8db8c\" \"tivu800\" \"u8d8aau8d8b1u8daa9u8d985u8d986u8db8c\" \"tku800\" \"u8d8aau8d8a7u8daafu8d8a7u8d984u8d988u8daafu8db8c\" \"tlu800\" \"u8daa9u8d984u8db8cu8d986u8daafu8d988u8d986\" \"tlhu800\" \"u8d8aau8d984u8db8cu8d986 u200cu8daafu8db8cu8d8aau8db8c\" \"tliu800\" \"u8d8aau8d8a7u8d985u8d8a7u8d8b4u8d982u8db8c\" \"tmhu800\" \"u8d8aau8d8b3u8d988u8d8a7u8d986u8d8a7u8db8cu8db8c\" \"tnu800\" \"u8d8aau8d988u8d986u8daafu8d8a7u8db8cu8db8c\" \"tou800\" \"u8d8aau8d988u8d986u8daafu8d8a7u8db8cu8db8c u8d986u8db8cu8d8a7u8d8b3u8d8a7\" \"togu800\" \"u8d8aau8d988u8daa9 u8d9beu8db8cu8d8b3u8db8cu8d986u8db8c\" \"tpiu800\" \"u8d8aau8d8b1u8daa9u8db8c\" \"tru800\" \"u8d8aau8d8b3u8d988u8d986u8daafu8d8a7u8db8cu8db8c\" \"tsu800\" \"u8d8aau8d8b3u8db8cu8d985 u200cu8d8b4u8db8cu8d8a7u8d986u8db8c\" \"tsiu800\" \"u8d8aau8d8a7u8d8aau8d8a7u8d8b1u8db8c\" \"ttu800\" \"u8d8aau8d988u8d985u8d8a8u8d988u8daa9u8d8a7u8db8cu8db8c\" \"tumu800\" \"u8d8aau8d988u8d9beu8db8cu8d8a7u8db8cu8db8c\" \"tupu800\" \"u8d8a2u8d984u8d8aau8d8a7u8db8cu8db8cu8daa9\" \"tutu800\" \"u8d8aau8d988u8d988u8d8a7u8d984u8d988u8db8cu8db8c\" \"tvlu800\" \"u8d8aau8d988u8db8c u200cu8db8cu8d8a7u8db8cu8db8c\" \"twu800\" \"u8d8aau8d8a7u8d987u8db8cu8d8aau8db8cu8d8a7u8db8cu8db8c\" \"tyu800\" \"u8d8aau8d988u8d988u8d8a7u8db8cu8db8c\" \"tyvu800\" \"u8d8a7u8d988u8d8afu8d985u8d988u8d8b1u8d8aau8db8c\" \"udmu800\" \"u8d8a7u8d988u8db8cu8d8bau8d988u8d8b1u8db8c\" \"ugu800\" \"u8d8a7u8d988u8daafu8d8a7u8d8b1u8db8cu8d8aau8db8c\" \"ugau800\" \"u8d8a7u8d988u8daa9u8d8b1u8d8a7u8db8cu8d986u8db8c\" \"uku800\" \"u8d8a7u8d985u8d8a8u8d988u8d986u8d8afu8d988u8db8cu8db8c\" \"umbu800\" \"u8d8a7u8d8b1u8d8afu8d988\" \"uru800\" \"u8d8a7u8d8b2u8d8a8u8daa9u8db8c\" \"uzu800\" \"u8d988u8db8cu8d8a7u8db8cu8db8c\" \"vaiu800\" \"u8d988u8d986u8d8afu8d8a7u8db8cu8db8c\" \"veu800\" \"u8d988u8d986u8db8cu8d8b2u8db8c\" \"vecu800\" \"u8d988u8d9beu8d8b3u8db8c\" \"vepu800\" \"u8d988u8db8cu8d8aau8d986u8d8a7u8d985u8db8c\" \"viu800\" \"u8d981u8d984u8d8a7u8d986u8d8afu8d8b1u8d8b2 u8d8bau8d8b1u8d8a8u8db8c\" \"vlsu800\" \"u8d988u8d984u8d8a7u8d9beu8d988u8daa9\" \"vou800\" \"u8d988u8d8aau8db8c\" \"votu800\" \"u8d988u8d8a7u8d984u8d988u8d986u8db8c\" \"wau800\" \"u8d988u8d8a7u8daa9u8d8a7u8d8b4u8db8c\" \"waku800\" \"u8d988u8d8a7u8d984u8d8a7u8d985u8d988\" \"walu800\" \"u8d988u8d8a7u8d8b1u8d8a7u8db8cu8db8c\" \"waru800\" \"u8d988u8d8a7u8d8b4u8d988u8db8cu8db8c\" \"wasu800\" \"u8d8b5u8d98fu8d8b1u8d8a8u8db8c\" \"wenu800\" \"u8d988u8d984u8d988u8d981u8db8c\" \"wou800\" \"u8d988u8d988\" \"wuuu800\" \"u8d982u8d984u8d985u8d988u8d982u8db8c\" \"xalu800\" \"u8d985u8db8cu8d986u8daafu8d8b1u8d984u8db8c\" \"xmfu800\" \"u8d8aeu8d988u8d8b3u8d8a7u8db8cu8db8c\" \"xhu800\" \"u8db8cu8d8a7u8d8a6u8d988u8db8cu8db8c\" \"yaou800\" \"u8db8cu8d8a7u8d9beu8db8c\" \"yapu800\" \"u8db8cu8d8afu8db8c\" \"yiu800\" \"u8db8cu8d988u8d8b1u8d988u8d8a8u8d8a7u8db8cu8db8c\" \"you800\" \"u8db8cu8d988u8d9beu8db8cu8daa9u8db8c\" \"ypku800\" \"u8da86u8d988u8d8a7u8d986u8daafu8db8c\" \"zau800\" \"u8d8b2u8d8a7u8d9beu8d988u8d8aau8daa9u8db8c\" \"zapu800\" \"u8d8b2u8d984u8d8a7u8d986u8d8afu8d988 u8d986u8d988u8db8cu8db8c\" \"zeau800\" \"u8d8b2u8d986u8d8a7u8daafu8d8a7\" \"zenu800\" \"u8da86u8db8cu8d986u8db8c\" \"zhu800\" \"u8da86u8db8cu8d986u8db8c u8d8b3u8d986u8d8aau8db8c\" \"zh_hant\" \"u8da86u8db8cu8d986u8db8c u8d8b3u8d986u8d8aau8db8c\" \"zhu800 classical\" \"u8da86u8db8cu8d986u8db8c u8d985u8db8cu8d986 u200cu8d986u8d8a7u8d986u8db8c\" \"zhu800 minu800 nanu800\" \"u8daa9u8d8a7u8d986u8d8aau8d988u8d986u8db8c\" \"zhu800 yueu800\" \"u8d8b2u8d8a7u8d986u8d8afu8d987 u200cu8d8a7u8db8c\" \"zndu800\" \"u8d8b2u8d988u8d984u8d988u8db8cu8db8c\" \"zuu800\" \"u8d8b2u8d988u8d986u8db8cu8d8a7u8db8cu8db8c\" \"zunu800\" \"u8d8b2u8d8a7u8d8b2u8d8a7u8db8cu8db8c\" \"zzau800\" \"afar\" \"aau800\" \"abkhazian\" \"abu800\" \"avestan\" \"aeu800\" \"afrikaans\" \"afu800\" \"akan\" \"aku800\" \"amharic\" \"amu800\" \"aragonese\" \"anu800\" \"arabic\" \"aru800\" \"assamese\" \"asu800\" \"avaric\" \"avu800\" \"aymara\" \"ayu800\" \"azerbaijani\" \"azu800\" \"bashkir\" \"bau800\" \"belarusian\" \"beu800\" \"bulgarian\" \"bgu800\" \"bihari\" \"bhu800\" \"bislama\" \"biu800\" \"bambara\" \"bmu800\" \"bengali\" \"bnu800\" \"bangla\" \"bnu800\" \"tibetan\" \"bou800\" \"breton\" \"bru800\" \"bosnian\" \"bsu800\" \"catalan\" \"cau800\" \"valencian\" \"cau800\" \"chechen\" \"ceu800\" \"chamorro\" \"chu800\" \"corsican\" \"cou800\" \"cree\" \"cru800\" \"czech\" \"csu800\" \"church slavic\" \"cuu800\" \"church slavonic\" \"cuu800\" \"oldu800 bulgarian\" \"cuu800\" \"oldu800 slavonic\" \"cuu800\" \"oldu800 church slavonic\" \"cuu800\" \"chuvash\" \"cvu800\" \"welsh\" \"cyu800\" \"danish\" \"dau800\" \"german\" \"deu800\" \"maldivian\" \"dvu800\" \"dhivehi\" \"dvu800\" \"divehi\" \"dvu800\" \"dzongkha\" \"dzu800\" \"eweu800\" \"eeu800\" \"modern greek 1453 \" \"elu800\" \"english\" \"enu800\" \"esperanto\" \"eou800\" \"spanish\" \"esu800\" \"castilian\" \"esu800\" \"estonian\" \"etu800\" \"basque\" \"euu800\" \"persian\" \"fau800\" \"fulah\" \"ffu800\" \"finnish\" \"fiu800\" \"fijian\" \"fju800\" \"faroese\" \"fou800\" \"french\" \"fru800\" \"western frisian\" \"fyu800\" \"irish\" \"gau800\" \"scottish gaelic\" \"gdu800\" \"gaelic\" \"gdu800\" \"galician\" \"glu800\" \"guarani\" \"gnu800\" \"gujarati\" \"guu800\" \"manx\" \"gvu800\" \"hausa\" \"hau800\" \"hebrew\" \"heu800\" \"hindi\" \"hiu800\" \"hou800\" \"hiri motu\" \"croatian\" \"hru800\" \"haitian\" \"htu800\" \"haitian creole\" \"htu800\" \"hungarian\" \"huu800\" \"armenian\" \"hyu800\" \"herero\" \"hzu800\" \"iau800\" \"interlingua international auxiliary language association \" \"indonesian\" \"idu800\" \"interlingue\" \"ieu800\" \"igbo\" \"igu800\" \"sichuan yiu800\" \"iiu800\" \"inupiaq\" \"iku800\" \"idou800\" \"iou800\" \"icelandic\" \"isu800\" \"italian\" \"itu800\" \"inuktitut\" \"iuu800\" \"japanese\" \"jau800\" \"javanese\" \"jvu800\" \"georgian\" \"kau800\" \"kongo\" \"kgu800\" \"kikuyu\" \"kuu800\" \"gikuyu\" \"kuu800\" \"kuanyama\" \"kju800\" \"kwanyama\" \"kju800\" \"kazakh\" \"kku800\" \"kalaallisut\" \"klu800\" \"khmer\" \"kmu800\" \"kannada\" \"knu800\" \"korean\" \"kou800\" \"kanuri\" \"kru800\" \"kashmiri\" \"ksu800\" \"kurdish\" \"kuu800\" \"komi\" \"kvu800\" \"cornish\" \"kwu800\" \"kyu800\" \"kirghiz\" \"kyu800\" \"kyrgyz\" \"latin\" \"lau800\" \"luxembourgish\" \"lbu800\" \"letzeburgesch\" \"lbu800\" \"ganda\" \"lgu800\" \"liu800\" \"limburgan\" \'liu800\' \"limburger\" \"lingala\" \"lnu800\" \"laou800\" \"lou800\" \"lithuanian\" \"ltu800\" \"luu800\" \"luba katanga\" \"latvian\" \"lvu800\" \"malagasy\" \"mgu800\" \"marshallese\" \"mhu800\" \"maori\" \"miu800\" \"macedonian\" \"mku800\" \"malayalam\" \"mlu800\" \"mongolian\" \"mnu800\" \"marathi\" \"mru800\" \"msu800\" \"malay macrolanguage \" \"maltese\" \"mtu800\" \"burmese\" \"myu800\" \"nauru\" \"nau800\" \"norwegian bokmu8c3a5l\" \"nbu800\" \"north ndebele\" \"ndu800\" \"nepali macrolanguage \" \"neu800\" \"ndonga\" \"ngu800\" \"dutch\" \"nlu800\" \"flemish\" \"nlu800\" \"norwegian nynorsk\" \"nnu800\" \"norwegian\" \"nou800\" \"south ndebele\" \"nru800\" \"navajo\" \"nvu800\" \"navaho\" \"nvu800\" \"nyanja\" \"nyu800\" \"chichewa\" \"nyu800\" \"chewa\" \"nyu800\" \"occitan post 1500 \" \"ocu800\" \"ojibwa\" \"oju800\" \"oromo\" \"omu800\" \"oriya macrolanguage \" \"oru800\" \"odia macrolanguage \" \"oru800\" \"ossetian\" \"osu800\" \"ossetic\" \"osu800\" \"panjabi\" \"pau800\" \"punjabi\" \"pau800\" \"pali\" \"piu800\" \"polish\" \"plu800\" \"pushto\" \"psu800\" \"pashto\" \"psu800\" \"portuguese\" \"ptu800\" \"quechua\" \"quu800\" \"romansh\" \"rmu800\" \"rundi\" \"rnu800\" \"romanian\" \"rou800\" \"moldavian\" \"rou800\" \"moldovan\" \"rou800\" \"russian\" \"ruu800\" \"kinyarwanda\" \"rwu800\" \"sanskrit\" \"sau800\" \"sardinian\" \"scu800\" \"sindhi\" \"sdu800\" \"northern sami\" \"seu800\" \"sango\" \"sgu800\" \"serbo croatian\" \"shu800\" \"sinhala\" \"siu800\" \"sinhalese\" \"siu800\" \"slovak\" \"sku800\" \"slovenian\" \"slu800\" \"samoan\" \"smu800\" \"shona\" \"snu800\" \"somali\" \"sou800\" \"albanian\" \"squ800\" \"serbian\" \"sru800\" \"swati\" \"ssu800\" \"southern sotho\" \"stu800\" \"sundanese\" \"suu800\" \"swedish\" \"svu800\" \"swahili macrolanguage \" \"swu800\" \"tamil\" \"tau800\" \"telugu\" \"teu800\" \"tajik\" \"tgu800\" \"thai\" \"thu800\" \"tigrinya\" \"tiu800\" \"turkmen\" \"tku800\" \"tagalog\" \"tlu800\" \"tswana\" \"tnu800\" \"tonga tonga islands \" \"tou800\" \"turkish\" \"tru800\" \"tsonga\" \"tsu800\" \"tatar\" \"ttu800\" \"twiu800\" \"twu800\" \"tahitian\" \"tyu800\" \"uighur\" \"ugu800\" \"uyghur\" \"ugu800\" \"ukrainian\" \"uku800\" \"urdu\" \"uru800\" \"uzbek\" \"uzu800\" \"venda\" \"veu800\" \"vietnamese\" \"viu800\" \"volapu8c3bck\" \"vou800\" \"walloon\" \"wau800\" \"wolof\" \"wou800\" \"xhosa\" \"xhu800\" \"yiddish\" \"yiu800\" \"yoruba\" \"you800\" \"zhuang\" \"zau800\" \"chuang\" \"zau800\" \"chinese\" \"zhu800\" \"zulu\" \"zuu800\" '),
(360, 'collapsible list', ' this module implements collapsible list . local pu800 local function gettitlestyletracking tsu800 ifu800 notu800 tsu800 then return   endu800 tsu800 mwu800u82eustringu82egsub mwu800u82eustringu82elower tsu800 \' su800\'   local tsvals mwu800u82etextu82esplit tsu800 \';\' tableu82esort tsvals local skey tableu82econcat tsvals \';\' skey mwu800u82eustringu82egsub skey \' ;\'   skey mwu800u82etextu82eencode mwu800u82etextu82eencode skey \' cu800 \' ifu800 mwu800u82eustringu82ematch \';\' .. tsu800 \';background \' oru800 mwu800u82eustringu82ematch \';\' .. tsu800 \';background color \' andu800 mwu800u82eustringu82ematch \';\' .. tsu800 \';text align \' then return \' category pages using collapsible list with both background andu800 text align inu800 titlestyle \' .. skey .. \' \' endu800 return \' category pages using collapsible list without both background andu800 text align inu800 titlestyle \' .. skey .. \' \' endu800 local function getlistitem data ifu800 notu800 type data \'string\' then return   endu800 return mwu800u82eustringu82eformat \' su800 \' data endu800 returns anu800 array containing theu800 keys ofu800 allu800 positional arguments that contain data iu800u82eeu800. nonu800 whitespace values . local function getargnums args local nums foru800 ku800 vu800 inu800 pairs args dou800 ifu800 type ku800 \'number\' andu800 ku800 1u800 andu800 mathu82efloor ku800 ku800 andu800 type vu800 \'string\' andu800 mwu800u82eustringu82ematch vu800 \' su800\' then tableu82einsert nums ku800 endu800 endu800 tableu82esort nums return nums endu800 formats au800 list ofu800 classes styles oru800 other attributes. local function formatattributes attrtype ... local attributes ... local nums getargnums attributes local tu800 foru800 iu800 numu800 inu800 ipairs nums dou800 tableu82einsert tu800 attributes numu800 endu800 ifu800 #tu800 0u800 then return   return theu800 blank string sou800 concatenation will work. endu800 return mwu800u82eustringu82eformat \' su800 \" su800\"\' attrtype tableu82econcat tu800 \' \' endu800 local function buildlist args getu800 theu800 list items. local listitems local argnums getargnums args foru800 iu800 numu800 inu800 ipairs argnums dou800 tableu82einsert listitems getlistitem args numu800 endu800 ifu800 #listitems 0u800 then return   endu800 listitems tableu82econcat listitems hack around mwu800 collapsible show hide jumpiness byu800 looking foru800 text alignment byu800 setting au800 margin ifu800 centered local textalignmentcentered \'text align su800* su800*center\' local centeredtitle argsu82etitle_style andu800 argsu82etitle_style lower match textalignmentcentered oru800 argsu82etitlestyle andu800 argsu82etitlestyle lower match textalignmentcentered local centeredtitlespacing ifu800 centeredtitle then centeredtitlespacing \'margin 0u800 4emu800\' else centeredtitlespacing   endu800 getu800 class style andu800 title data. local collapsiblecontainerclass formatattributes \'class \'mwu800 collapsible\' notu800 argsu82eexpand andu800 \'mwu800 collapsed\' local collapsiblecontainerstyle formatattributes \'style\' \'text align center; font size 95u800 ;\' argsu82eframe_style argsu82eframestyle local collapsibletitlestyle formatattributes \'style\' \'line height 1u800u82e6emu800; font weight bold; font size 100u800 ; text align left;\' argsu82etitle_style argsu82etitlestyle local jumpytitlestyle formatattributes \'style\' centeredtitlespacing local title argsu82etitle oru800 \'list\' local ulclass formatattributes \'class \'mwu800 collapsible content\' argsu82ehlist andu800 \'hlist\' local ulstyle formatattributes \'style\' \'font size 105u800 ; margin topu800 0u800; margin bottom 0u800; line height inherit; text align left;\' notu800 argsu82ebullets andu800 \'list style none none; margin left 0u800;\' argsu82elist_style argsu82eliststyle build theu800 list. return mwu800u82eustringu82eformat \' nu800 su800 nu800 su800 nu800 \' collapsiblecontainerclass collapsiblecontainerstyle collapsibletitlestyle jumpytitlestyle title ulclass ulstyle listitems .. gettitlestyletracking argsu82etitle_style oru800 argsu82etitlestyle endu800 function pu800u82emain frame local origargs ifu800 frame mwu800u82egetcurrentframe then origargs frame getparent .args foru800 ku800 vu800 inu800 pairs frameu82eargs dou800 origargs frameu82eargs break endu800 else origargs frame endu800 local args foru800 ku800 vu800 inu800 pairs origargs dou800 ifu800 type ku800 \'number\' oru800 vu800   then args ku800 vu800 endu800 endu800 return buildlist args endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(361, 'color contrast', ' this module implements color contrast ratio greater color contrast ratio colortolum rgbcolortolum local pu800 local htmlcolor mwu800u82eloaddata \'module color contrast colors local function srgb vu800 ifu800 vu800 0u800u82e03928 then vu800 vu800 12u800u82e92u800 else vu800 mathu82epowu800 vu800 0u800u82e055u800 1u800u82e055u800 2u800u82e4u800 endu800 return vu800 endu800 local function rgbdec2lum ru800 gu800 bu800 ifu800 0u800 ru800 andu800 ru800 256u800 andu800 0u800 gu800 andu800 gu800 256u800 andu800 0u800 bu800 andu800 bu800 256u800 then return 0u800u82e2126 * srgb ru800 255u800 0u800u82e7152 * srgb gu800 255u800 0u800u82e0722 * srgb bu800 255u800 else return   endu800 endu800 local function hsl2lum hu800 su800 lu800 ifu800 0u800 hu800 andu800 hu800 360u800 andu800 0u800 su800 andu800 su800 1u800 andu800 0u800 lu800 andu800 lu800 1u800 then local cu800 1u800 mathu82eabsu800 2u800*lu800 1u800 *su800 local xu800 cu800* 1u800 mathu82eabsu800 mathu82efmod hu800 60u800 2u800 1u800 local mu800 lu800 cu800 2u800 local ru800 gu800 bu800 mu800 mu800 mu800 ifu800 0u800 hu800 andu800 hu800 60u800 then ru800 ru800 cu800 gu800 gu800 xu800 elseif 60u800 hu800 andu800 hu800 120u800 then ru800 ru800 xu800 gu800 gu800 cu800 elseif 120u800 hu800 andu800 hu800 180u800 then gu800 gu800 cu800 bu800 bu800 xu800 elseif 180u800 hu800 andu800 hu800 240u800 then gu800 gu800 xu800 bu800 bu800 cu800 elseif 240u800 hu800 andu800 hu800 300u800 then ru800 ru800 xu800 bu800 bu800 cu800 elseif 300u800 hu800 andu800 hu800 360u800 then ru800 ru800 cu800 bu800 bu800 xu800 endu800 return rgbdec2lum 255u800*ru800 255u800*gu800 255u800*bu800 else return   endu800 endu800 local function color2lum cu800 ifu800 cu800 nilu800 then return   endu800 html \'#\' entity cu800 cu800 gsub \"&#35u800;\" \"#\" whitespace cu800 cu800 match \' su800* . su800; * \' unstrip nowiki strip markers cu800 mwu800u82etextu82eunstripnowiki cu800 lowercase cu800 cu800 lower first tryu800 tou800 look itu800 upu800 local lu800 htmlcolor cu800 ifu800 lu800 nilu800 then return lu800 endu800 convert from hslu800 ifu800 mwu800u82eustringu82ematch cu800 \' hslu800 su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * \' then local hu800 su800 lu800 mwu800u82eustringu82ematch cu800 \' hslu800 su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * \' return hsl2lum tonumber hu800 tonumber su800 100u800 tonumber lu800 100u800 endu800 convert from rgbu800 ifu800 mwu800u82eustringu82ematch cu800 \' rgbu800 su800 * 0u800 9u800 0u800 9u800 * su800 * su800 * 0u800 9u800 0u800 9u800 * su800 * su800 * 0u800 9u800 0u800 9u800 * su800 * \' then local ru800 gu800 bu800 mwu800u82eustringu82ematch cu800 \' rgbu800 su800 * 0u800 9u800 0u800 9u800 * su800 * su800 * 0u800 9u800 0u800 9u800 * su800 * su800 * 0u800 9u800 0u800 9u800 * su800 * \' return rgbdec2lum tonumber ru800 tonumber gu800 tonumber bu800 endu800 convert from rgbu800 percent ifu800 mwu800u82eustringu82ematch cu800 \' rgbu800 su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * \' then local ru800 gu800 bu800 mwu800u82eustringu82ematch cu800 \' rgbu800 su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * su800 * 0u800 9u800 0u800 9u800 . * su800 * \' return rgbdec2lum 255u800*tonumber ru800 100u800 255u800*tonumber gu800 100u800 255u800*tonumber bu800 100u800 endu800 remove leading # ifu800 there isu800 oneu800 andu800 whitespace cu800 mwu800u82eustringu82ematch cu800 \' su800# * au800 f0u800 9u800 * su800 * \' split into rgbu800 local csu800 mwu800u82etextu82esplit cu800 oru800     ifu800 #csu800 6u800 then local ru800 16u800*tonumber \'0xu800\' .. csu800 1u800 tonumber \'0xu800\' .. csu800 2u800 local gu800 16u800*tonumber \'0xu800\' .. csu800 3u800 tonumber \'0xu800\' .. csu800 4u800 local bu800 16u800*tonumber \'0xu800\' .. csu800 5u800 tonumber \'0xu800\' .. csu800 6u800 return rgbdec2lum ru800 gu800 bu800 elseif #csu800 3u800 then local ru800 16u800*tonumber \'0xu800\' .. csu800 1u800 tonumber \'0xu800\' .. csu800 1u800 local gu800 16u800*tonumber \'0xu800\' .. csu800 2u800 tonumber \'0xu800\' .. csu800 2u800 local bu800 16u800*tonumber \'0xu800\' .. csu800 3u800 tonumber \'0xu800\' .. csu800 3u800 return rgbdec2lum ru800 gu800 bu800 endu800 failure return blank return   endu800 this exports theu800 function foru800 useu800 inu800 other modules. theu800 colour isu800 passed asu800 au800 string. function pu800u82e_lum color return color2lum color endu800 function pu800u82e_greatercontrast args local bias tonumber args \'bias oru800 \'0u800\' oru800 0u800 local cssu800 args \'cssu800 andu800 args \'cssu800   andu800 true oru800 false local v1u800 color2lum args 1u800 oru800   local c2u800 args 2u800 oru800 \'#ffffff\' local v2u800 color2lum c2u800 local c3u800 args 3u800 oru800 \'#000000\' local v3u800 color2lum c3u800 local ratio1 1u800; local ratio2 1u800; ifu800 type v1u800 \'number\' andu800 type v2u800 \'number\' then ratio1 v2u800 0u800u82e05u800 v1u800 0u800u82e05u800 ratio1 ratio1 1u800 andu800 1u800 ratio1 oru800 ratio1 endu800 ifu800 type v1u800 \'number\' andu800 type v3u800 \'number\' then ratio2 v3u800 0u800u82e05u800 v1u800 0u800u82e05u800 ratio2 ratio2 1u800 andu800 1u800 ratio2 oru800 ratio2 endu800 ifu800 cssu800 then local c1u800 args 1u800 oru800   ifu800 mwu800u82eustringu82ematch c1u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' oru800 mwu800u82eustringu82ematch c1u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' then c1u800 \'#\' .. c1u800 endu800 ifu800 mwu800u82eustringu82ematch c2u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' oru800 mwu800u82eustringu82ematch c2u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' then c2u800 \'#\' .. c2u800 endu800 ifu800 mwu800u82eustringu82ematch v3u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' oru800 mwu800u82eustringu82ematch v3u800 \' au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 au800 fau800 f0u800 9u800 \' then c3u800 \'#\' .. c3u800 endu800 return \'background color \' .. c1u800 .. \'; color \' .. ratio1 0u800 andu800 ratio2 0u800 andu800 ratio1 bias ratio2 andu800 c2u800 oru800 c3u800 oru800   .. \';\' endu800 return ratio1 0u800 andu800 ratio2 0u800 andu800 ratio1 bias ratio2 andu800 c2u800 oru800 c3u800 oru800   endu800 function pu800u82e_ratio args local v1u800 color2lum args 1u800 local v2u800 color2lum args 2u800 ifu800 type v1u800 \'number\' andu800 type v2u800 \'number\' then v1u800 should beu800 theu800 brighter ofu800 theu800 twou800. ifu800 v2u800 v1u800 then v1u800 v2u800 v2u800 v1u800 endu800 return v1u800 0u800u82e05u800 v2u800 0u800u82e05u800 else return args \'error\' oru800 \' \' endu800 endu800 function pu800u82e_styleratio args local style args 1u800 oru800   lower local bgu800 fgu800 \'white\' \'black\' local lum_bg lum_fg 1u800 0u800 ifu800 args 2u800 then local lumu800 color2lum args 2u800 ifu800 lumu800   then bgu800 lum_bg args 2u800 lumu800 endu800 endu800 ifu800 args 3u800 then local lumu800 color2lum args 3u800 ifu800 lumu800   then fgu800 lum_fg args 3u800 lumu800 endu800 endu800 local slist mwu800u82etextu82esplit mwu800u82eustringu82egsub mwu800u82eustringu82egsub style oru800   \'&# xxu800 23u800;\' \'#\' \'&#35u800;\' \'#\' \';\' foru800 ku800 1u800 #slist dou800 local su800 slist ku800 local ku800 vu800 su800 match \' su800 * su800; * \' ku800 ku800 oru800   vu800 vu800 oru800   ifu800 ku800 match \' su800 * background su800 * \' oru800 ku800 match \' su800 * background color su800 * \' then local lumu800 color2lum vu800 ifu800 lumu800   then bgu800 lum_bg vu800 lumu800 endu800 elseif ku800 match \' su800 * color su800 * \' then local lumu800 color2lum vu800 ifu800 lumu800   then bgu800 lum_fg vu800 lumu800 endu800 endu800 endu800 ifu800 lum_bg lum_fg then return lum_bg 0u800u82e05u800 lum_fg 0u800u82e05u800 else return lum_fg 0u800u82e05u800 lum_bg 0u800u82e05u800 endu800 endu800 useu800 #invoke color contrast somecolor directly oru800 #invoke color contrast from au800 wrapper template. parameters 1u800 u8e28094 required; au800 color tou800 check. function pu800u82elumu800 frame local color frameu82eargs 1u800 oru800 frame getparent .args 1u800 return pu800u82e_lum color endu800 function pu800u82eratio frame local args frameu82eargs 1u800 andu800 frameu82eargs oru800 frame getparent .args return pu800u82e_ratio args endu800 function pu800u82estyleratio frame local args frameu82eargs 1u800 andu800 frameu82eargs oru800 frame getparent .args return pu800u82e_styleratio args endu800 function pu800u82egreatercontrast frame local args frameu82eargs 1u800 andu800 frameu82eargs oru800 frame getparent .args return pu800u82e_greatercontrast args endu800 return pu800 '),
(362, 'color contrast colors', ' return aliceblue 0u800u82e92880068253475 antiquewhite 0u800u82e84646951707754 aqua 0u800u82e7874 aquamarine 0u800u82e8078549208338 azure 0u800u82e97265264954166 beige 0u800u82e8988459998705 bisque 0u800u82e80732327372979 black 0u800 blanchedalmond 0u800u82e85084439608156 blue 0u800u82e0722 blueviolet 0u800u82e12622014321946 brown 0u800u82e098224287876511 burlywood 0u800u82e51559844533893 cadetblue 0u800u82e29424681085422 chartreuse 0u800u82e76032025902623 chocolate 0u800u82e23898526114557 coral 0u800u82e37017930872924 cornflowerblue 0u800u82e30318641994179 cornsilk 0u800u82e93562110372965 crimson 0u800u82e16042199953026 cyan 0u800u82e7874 darkblue 0u800u82e018640801980939 darkcyan 0u800u82e20329317839046 darkgoldenrod 0u800u82e27264703559993 darkgray 0u800u82e39675523072563 darkgreen 0u800u82e091143429047575 darkgrey 0u800u82e39675523072563 darkkhaki 0u800u82e45747326349994 darkmagenta 0u800u82e07353047651207 darkolivegreen 0u800u82e12651920884889 darkorange 0u800u82e40016167026524 darkorchid 0u800u82e13413142174857 darkred 0u800u82e054889674531132 darksalmon 0u800u82e40541471563381 darkseagreen 0u800u82e43789249325969 darkslateblue 0u800u82e065792846227988 darkslategray 0u800u82e067608151928044 darkslategrey 0u800u82e067608151928044 darkturquoise 0u800u82e4874606277449 darkviolet 0u800u82e10999048339343 deeppink 0u800u82e23866895828276 deepskyblue 0u800u82e44481603395575 dimgray 0u800u82e14126329114027 dimgrey 0u800u82e14126329114027 dodgerblue 0u800u82e27442536991456 firebrick 0u800u82e10724525535015 floralwhite 0u800u82e95922484825004 forestgreen 0u800u82e18920812076002 fuchsia 0u800u82e2848 gainsboro 0u800u82e71569350050648 ghostwhite 0u800u82e94311261886323 gold 0u800u82e69860877428159 goldenrod 0u800u82e41919977809569 gray 0u800u82e2158605001139 green 0u800u82e15438342968146 greenyellow 0u800u82e80609472611453 grey 0u800u82e2158605001139 honeydew 0u800u82e96336535554782 hotpink 0u800u82e34658438169715 indianred 0u800u82e21406134963884 indigo 0u800u82e03107561486337 ivory 0u800u82e99071270600615 khaki 0u800u82e77012343394121 lavender 0u800u82e80318750514521 lavenderblush 0u800u82e90172748631046 lawngreen 0u800u82e73905893124963 lemonchiffon 0u800u82e94038992245622 lightblue 0u800u82e63709141280807 lightcoral 0u800u82e35522120733135 lightcyan 0u800u82e94587293494829 lightgoldenrodyellow 0u800u82e93348351018297 lightgray 0u800u82e65140563741982 lightgreen 0u800u82e69091979956865 lightgrey 0u800u82e65140563741982 lightpink 0u800u82e58566152734898 lightsalmon 0u800u82e4780675225206 lightseagreen 0u800u82e35050145117042 lightskyblue 0u800u82e56195637618331 lightslategray 0u800u82e23830165007287 lightslategrey 0u800u82e23830165007287 lightsteelblue 0u800u82e53983888284666 lightyellow 0u800u82e98161818392882 lime 0u800u82e7152 limegreen 0u800u82e44571042246098 linen 0u800u82e88357340984379 magenta 0u800u82e2848 maroon 0u800u82e045891942324215 mediumaquamarine 0u800u82e49389703310801 mediumblue 0u800u82e044077780212328 mediumorchid 0u800u82e21639251153773 mediumpurple 0u800u82e22905858091648 mediumseagreen 0u800u82e34393112338131 mediumslateblue 0u800u82e20284629471622 mediumspringgreen 0u800u82e70704308194184 mediumturquoise 0u800u82e5133827926448 mediumvioletred 0u800u82e14371899849357 midnightblue 0u800u82e02071786635086 mintcream 0u800u82e97834604947588 mistyrose 0u800u82e82183047859185 moccasin 0u800u82e80083000991567 navajowhite 0u800u82e76519682342785 navy 0u800u82e015585128108224 oldlace 0u800u82e91900633405549 olive 0u800u82e20027537200568 olivedrab 0u800u82e22593150951929 orange 0u800u82e4817026703631 orangered 0u800u82e25516243753416 orchid 0u800u82e31348806761439 palegoldenrod 0u800u82e78792647887614 palegreen 0u800u82e77936759006353 paleturquoise 0u800u82e76436077921714 palevioletred 0u800u82e28754994117889 papayawhip 0u800u82e87797100199835 peachpuff 0u800u82e74905589878251 peru 0u800u82e30113074877936 pink 0u800u82e63271070702466 plum 0u800u82e45734221587969 powderblue 0u800u82e68254586500605 purple 0u800u82e061477070432439 rebeccapurple 0u800u82e07492341159447 redu800 0u800u82e2126 rosybrown 0u800u82e32319457649407 royalblue 0u800u82e16663210743188 saddlebrown 0u800u82e097922285020521 salmon 0u800u82e36977241527596 sandybrown 0u800u82e46628543696283 seagreen 0u800u82e19734199706275 seashell 0u800u82e92737862206922 sienna 0u800u82e13697631337098 silver 0u800u82e52711512570581 skyblue 0u800u82e55291668518184 slateblue 0u800u82e14784278062136 slategray 0u800u82e20896704076536 slategrey 0u800u82e20896704076536 snow 0u800u82e96533341834849 springgreen 0u800u82e73052306068529 steelblue 0u800u82e20562642207625 tanu800 0u800u82e48237604163921 teal 0u800u82e16996855778968 thistle 0u800u82e56818401093733 tomato 0u800u82e30638612719415 turquoise 0u800u82e5895536427578 violet 0u800u82e40315452986676 wheat 0u800u82e74909702820482 white 1u800 whitesmoke 0u800u82e91309865179342 yellow 0u800u82e9278 yellowgreen 0u800u82e50762957208707 '),
(363, 'comma separated entries', ' local pu800 local function _main args local sepu800 mwu800u82emessageu82enewu800 \'comma separator\' plain return tableu82econcat args sepu800 endu800 function pu800u82emain frame local origargs ifu800 frame mwu800u82egetcurrentframe then weu800\'reu800 being called viau800 #invoke. ifu800 theu800 invoking template passed anyu800 arguments useu800 them. otherwise useu800 theu800 arguments that were passed into theu800 template. origargs frame getparent .args foru800 ku800 vu800 inu800 pairs frameu82eargs dou800 origargs frameu82eargs break endu800 else weu800\'reu800 being called from another module oru800 from theu800 debug console sou800 assume theu800 arguments areu800 passed inu800 directly. origargs frame endu800 useu800 integer args only andu800 allow foru800 explicit positional arguments that areu800 specified outu800 ofu800 order eu800u82egu800. bru800 separated entries 3u800 entry3 . after processing theu800 args canu800 beu800 accessed accurately from ipairs. local args foru800 ku800 vu800 inu800 pairs origargs dou800 ifu800 type ku800 \'number\' andu800 ku800 1u800 andu800 mathu82efloor ku800 ku800 andu800 mwu800u82eustringu82ematch vu800 \' su800\' remove blank oru800 whitespace values. then tableu82einsert args ku800 endu800 endu800 tableu82esort args foru800 iu800 vu800 inu800 ipairs args dou800 args iu800 origargs vu800 trim whitespace from allu800 args. ifu800 type args iu800 \'string\' then args iu800 mwu800u82etextu82etrim args iu800 endu800 endu800 return _main args endu800 return pu800 '),
(364, 'commons link', ' module tou800 find commons galleries andu800 categories based onu800 wikidata entries local getargs require \'module arguments .getargs local yesno require \'module yesno\' local generatewarning require \'module ifu800 preview\' ._warning local pu800 check ifu800 string isu800 au800 valid qidu800 argument qidu800 tou800 check returns valid bool local function _validqid qidu800 return qidu800 andu800 mwu800u82eustringu82efind qidu800 \" qqu800 du800 \" endu800 check ifu800 string isu800 au800 valid wikidata property string argument property string tou800 check returns valid bool local function _validprop prop return prop andu800 mwu800u82eustringu82efind prop \" ppu800 du800 \" endu800 local function _lcfirst doit su800 ifu800 doit then return mwu800u82eustringu82elower mwu800u82eustringu82esubu800 su800 1u800 1u800 ..mwu800u82eustringu82esubu800 su800 2u800 endu800 return su800 endu800 format displayed linktext arguments su800 string tou800 display formatting formatting table formattingu82elinktext ifu800 defined override su800 formattingu82elcfirst lower case theu800 first letter inu800 display formattingu82ebold whether tou800 bold theu800 display formattingu82eitalic whether tou800 italicize theu800 display formattingu82enowrap setu800 nowrapping returns formatted string local function _formatresult su800 formatting local resultval formattingu82elinktext oru800 su800 resultval _lcfirst formattingu82elcfirst resultval ifu800 formattingu82eitalic then resultval \" \" .. resultval .. \" \" endu800 ifu800 formattingu82ebold then resultval \" \" .. resultval .. \" \" endu800 ifu800 formattingu82enowrap then resultval \' \' .. resultval .. \" \" endu800 return resultval endu800 getu800 title namespace andu800 qidu800 foru800 current page arguments qidu800 testing only getu800 title ofu800 alternative page with qidu800 qidu800 nsqid whether tou800 return theu800 nsu800 ofu800 theu800 qidu800 page oru800 current returns title namespace string qidu800 ofu800 current page oru800 test page local function _gettitleqid qidu800 nsqid local titleobject mwu800u82etitleu82egetcurrenttitle look upu800 qidu800 foru800 current page ifu800 notu800 testing local nstext mwu800u82eustringu82egsub titleobjectu82enstext \"_u800\" \" \" ifu800 notu800 _validqid qidu800 then qidu800 mwu800u82ewikibaseu82egetentityidforcurrentpage return titleobjectu82etext nstext qidu800 endu800 testing only path given au800 qidu800 determine title always useu800 namespace from current page tou800 suppress tracking catu800 qidu800 qidu800 upper local title mwu800u82ewikibaseu82egetsitelink qidu800 oru800 \"\" strip anyu800 namespace from sitelink local firstcolon mwu800u82eustringu82efind title \' \' 1u800 true local qidnstext \"\" ifu800 firstcolon then qidnstext mwu800u82eustringu82esubu800 title 1u800 firstcolon 1u800 title mwu800u82eustringu82esubu800 title firstcolon 1u800 endu800 ifu800 nsqid then return title qidnstext qidu800 endu800 return title nstext qidu800 endu800 lookup commons gallery inu800 wikidata arguments qidu800 qidu800 ofu800 current article fetch whether tou800 lookup commons sitelink bool commonssitelink default value foru800 commons sitelink returns categorylink name ofu800 commons category nilu800 ifu800 nothing isu800 found consistent multiple wikidata fields areu800 examined areu800 they consistent commonssitelink commons sitelink foru800 current article local function _lookupgallery qidu800 fetch commonssitelink ifu800 notu800 _validqid qidu800 then return nilu800 true nilu800 endu800 qidu800 qidu800 upper local gallerylink nilu800 local consistent true look upu800 commons sitelink foru800 article useu800 ifu800 notu800 category ifu800 fetch then commonssitelink mwu800u82ewikibaseu82egetsitelink qidu800 \"commonswiki\" oru800 commonssitelink endu800 ifu800 commonssitelink andu800 mwu800u82eustringu82esubu800 commonssitelink 1u800 9u800 \"category \" then gallerylink commonssitelink endu800 p935 isu800 theu800 \"commons gallery\" property foru800 this article local p935 mwu800u82ewikibaseu82egetbeststatements qidu800 \"p935\" 1u800 ifu800 p935 andu800 p935u82emainsnaku82edatavalue then local gallery p935u82emainsnaku82edatavalueu82evalue ifu800 gallerylink andu800 gallerylink gallery then consistent false else gallerylink gallery endu800 endu800 return gallerylink consistent commonssitelink endu800 find fallback category byu800 looking upu800 commons sitelink ofu800 different page arguments qidu800 qidu800 foru800 current article property property that refers tou800 other article whose sitelink tou800 return returns either category stripped name ofu800 article oru800 nilu800 local function _lookupfallback qidu800 property ifu800 notu800 _validqid qidu800 oru800 notu800 _validprop property then return nilu800 endu800 qidu800 qidu800 upper property property upper ifu800 property exists onu800 current article getu800 value other article qidu800 local value mwu800u82ewikibaseu82egetbeststatements qidu800 property 1u800 ifu800 value andu800 valueu82emainsnaku82edatavalue andu800 valueu82emainsnaku82edatavalueu82evalueu82eidu800 then look upu800 commons sitelink ofu800 other article local sitelink mwu800u82ewikibaseu82egetsitelink valueu82emainsnaku82edatavalueu82evalueu82eidu800 \"commonswiki\" check tou800 seeu800 ifu800 itu800 starts with \"category \". ifu800 sou800 strip itu800 andu800 return ifu800 sitelink andu800 mwu800u82eustringu82esubu800 sitelink 1u800 9u800 \"category \" then return mwu800u82eustringu82esubu800 sitelink 10u800 endu800 endu800 return nilu800 endu800 find commons category byu800 looking inu800 wikidata arguments qidu800 qidu800 ofu800 current article fetch whether tou800 lookup commons sitelink bool commonssitelink default value foru800 commons sitelink returns categorylink name ofu800 commons category nilu800 ifu800 nothing isu800 found consistent multiple wikidata fields areu800 examined areu800 they consistent commonssitelink commons sitelink foru800 current article local function _lookupcategory qidu800 fetch commonssitelink ifu800 notu800 _validqid qidu800 then return nilu800 true nilu800 endu800 qidu800 qidu800 upper local categorylink nilu800 local consistent true look upu800 commons sitelink foru800 article useu800 ifu800 starts with \"category \" ifu800 fetch then commonssitelink mwu800u82ewikibaseu82egetsitelink qidu800 \"commonswiki\" oru800 commonssitelink endu800 ifu800 commonssitelink andu800 mwu800u82eustringu82esubu800 commonssitelink 1u800 9u800 \"category \" then categorylink mwu800u82eustringu82esubu800 commonssitelink 10u800 endu800 purposefully dou800 notu800 look inu800 p373 \"commons category\" property ifu800 p373 isu800 desired then restore search code here p910 isu800 theu800 \"topic \"topic\'su800 main category\". look foru800 commons sitelink there local fallback _lookupfallback qidu800 \"p910\" ifu800 fallback then ifu800 categorylink andu800 categorylink fallback then consistent false qidu800 nilu800 else categorylink fallback endu800 endu800 p1754 isu800 theu800 \"list \"list\'su800 main category\". look foru800 commons sitelink there fallback _lookupfallback qidu800 \"p1754\" ifu800 fallback then ifu800 categorylink andu800 categorylink fallback then consistent false else categorylink fallback endu800 endu800 return categorylink consistent commonssitelink endu800 does theu800 article have au800 commons gallery andu800 isu800 itu800 consistent arguments qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only returns filename atu800 commons bool isu800 wikidata consistent foru800 this article function pu800u82e_hasgalleryconsistent qidu800 local wp_title wp_ns wp_title wp_ns qidu800 _gettitleqid qidu800 return _lookupgallery qidu800 true endu800 does theu800 article have au800 corresponding commons gallery arguments qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only returns filename atu800 commons ifu800 sou800 false ifu800 notu800 function pu800u82e_hasgallery qidu800 local gallerylink consistent pu800u82e_hasgalleryconsistent qidu800 return consistent andu800 gallerylink endu800 does theu800 article have au800 commons category isu800 wikidata consistent foru800 that arguments qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only prefix whether tou800 addu800 \"category \" tou800 return string default true returns filename atu800 commons bool consistent function pu800u82e_hascategoryconsistent qidu800 prefix ifu800 prefix nilu800 then prefix true endu800 local wp_title wp_ns wp_title wp_ns qidu800 _gettitleqid qidu800 local categorylink consistent _lookupcategory qidu800 true ifu800 categorylink andu800 prefix then categorylink \"category \"..categorylink endu800 return categorylink consistent endu800 does theu800 article have au800 corresponding commons category arguments qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only prefix whether tou800 addu800 \"category \" tou800 return string default true returns filename atu800 commons ifu800 sou800 blank ifu800 notu800 function pu800u82e_hascategory qidu800 prefix local categorylink consistent pu800u82e_hascategoryconsistent qidu800 prefix return consistent andu800 categorylink endu800 create commons link corresponding tou800 current article arguments namespace namespace inu800 commons \"\" foru800 galleries default useu800 asu800 commons link donu800\'tu800 access wikidata search string tou800 search foru800 fallback string tou800 search foru800 ifu800 wikidata fails formatting formatting parameters qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only returns formatted wikilink tou800 commons inu800 specified namespace function pu800u82e_getcommons namespace default search fallback formatting qidu800 local nscolon ifu800 notu800 namespace oru800 namespace \"\" then nscolon \"\" else nscolon namespace..\" \" endu800 ifu800 default then return \" commons \"..nscolon..default..\" \".._formatresult default formatting ..\" \" endu800 ifu800 search then return \" commons special search \"..nscolon..search..\" \".._formatresult search formatting ..\" \" endu800 local wp_title wp_ns wp_title wp_ns qidu800 _gettitleqid qidu800 local commonslink nilu800 local consistent true ifu800 nscolon \"\" then commonslink consistent _lookupgallery qidu800 true elseif namespace lower \"category\" then commonslink consistent _lookupcategory qidu800 true endu800 useu800 wikidata ifu800 consistent ifu800 commonslink andu800 consistent then return \" commons \"..nscolon..commonslink..\" \".._formatresult commonslink formatting ..\" \" endu800 ifu800 notu800 consistent fall back tou800 search andu800 addu800 tou800 tracking catu800 construct default result which searches foru800 title local searchresult \" commons special search \"..nscolon.. fallback oru800 wp_title ..\" \".._formatresult fallback oru800 wp_title formatting ..\" \" ifu800 notu800 consistent andu800 wp_ns \"\" then local friendlyns ifu800 nscolon \"\" then friendlyns \"u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987\" elseif namespace lower \'category\' then namespace \'u8d8b1u8d8afu8d987\' friendlyns namespace endu800 searchresult searchresult..\" u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c \"..friendlyns..\" u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \" endu800 return searchresult endu800 returns \"best\" commons link first look foru800 gallery then tryu800 category arguments default useu800 asu800 commons link donu800\'tu800 access wikidata search string tou800 search foru800 fallback string tou800 search foru800 ifu800 wikidata lookup fails formatting formatting parameters qidu800 qidu800 tou800 lookup inu800 wikidata foru800 testing only returns formatted wikilink tou800 commons \"best\" landing page function pu800u82e_getgalleryorcategory default search fallback formatting qidu800 ifu800 default then return \" commons \"..default..\" \".._formatresult default formatting ..\" \" endu800 ifu800 search then return \" commons special search \"..search..\" \".._formatresult search formatting ..\" \" endu800 local wp_title wp_ns wp_title wp_ns qidu800 _gettitleqid qidu800 local trackingcats \"\" local gallerylink consistent commonssitelink _lookupgallery qidu800 true useu800 wikidata ifu800 either sitelink oru800 p935 exist andu800 they both agree ifu800 gallerylink andu800 consistent then return \" commons \"..gallerylink..\" \".._formatresult gallerylink formatting ..\" \" endu800 ifu800 notu800 consistent andu800 wp_ns \"\" then trackingcats \" u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \" endu800 ifu800 gallery isu800 notu800 good fall back looking foru800 category local categorylink categorylink consistent _lookupcategory qidu800 false commonssitelink ifu800 categorylink andu800 consistent then return \" commons category \"..categorylink..\" \".._formatresult categorylink formatting ..\" \"..trackingcats endu800 ifu800 notu800 consistent andu800 wp_ns \"\" then trackingcats trackingcats..\" u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \" endu800 return search result looking foru800 title asu800 last attempt return \" commons special search \" .. fallback oru800 wp_title .. \" \" .. _formatresult fallback oru800 wp_title formatting .. \" \" .. trackingcats endu800 return link su800 commons gallery oru800 category oru800 both from wikidata arguments defaultgallery default gallery link tou800 useu800 instead ofu800 wikidata defaultcategory default category link tou800 useu800 instead ofu800 wikidata categorytext ifu800 both gallery andu800 category text tou800 useu800 inu800 category link \"category\" byu800 default onesearch only emit oneu800 search result formatting formatting parameters qidu800 qidu800 ofu800 page tou800 lookup inu800 wikidata testing only function pu800u82e_getgalleryandcategory defaultgallery defaultcategory categorytext onesearch formatting qidu800 local wp_title wp_ns wp_title wp_ns qidu800 _gettitleqid qidu800 categorytext categorytext oru800 \"u8d8b1u8d8afu8d987\" local trackingcats \"\" local gallerylink galleryconsistent local commonssitelink nilu800 ifu800 defaultgallery then gallerylink defaultgallery galleryconsistent true else gallerylink galleryconsistent commonssitelink _lookupgallery qidu800 true endu800 local gallerygood gallerylink andu800 galleryconsistent ifu800 notu800 galleryconsistent andu800 wp_ns \"\" then trackingcats \" u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \" endu800 local categorylink categoryconsistent ifu800 defaultcategory then categorylink defaultcategory categoryconsistent true else categorylink categoryconsistent _lookupcategory qidu800 defaultgallery commonssitelink endu800 local categorygood categorylink andu800 categoryconsistent ifu800 notu800 categoryconsistent andu800 wp_ns \"\" then trackingcats trackingcats..\" u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \" endu800 local firstlink construct default result which searches foru800 title local searchresult \" commons special search \"..wp_title..\" \".._formatresult wp_title formatting ..\" \" ifu800 notu800 onesearch then searchresult searchresult..\" commons special search category \"..wp_title..\" \"..categorytext..\" \" endu800 local linktext nilu800 ifu800 gallerygood then firstlink gallerylink linktext gallerylink elseif categorygood then firstlink \"category \"..categorylink linktext categorylink else return searchresult..trackingcats endu800 local resultval \" commons \"..firstlink..\" \".._formatresult linktext formatting ..\" \" ifu800 gallerygood andu800 categorygood then resultval resultval..\" commons category \"..categorylink..\" \"..categorytext..\" \" endu800 return resultval..trackingcats endu800 compare twou800 titles with their namespaces stripped local function titlematch s1u800 s2u800 s1u800 s1u800 oru800 \"\" s2u800 s2u800 oru800 \"\" s1u800 mwu800u82eustringu82egsub s1u800 \" \" \"\" s2u800 mwu800u82eustringu82egsub s2u800 \" \" \"\" return s1u800 s2u800 endu800 local gallerytrackingcats commons_link_on_wikidata \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d8a7u8d8b3u8d8aa \' commons_link_defined_as_pagename \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d985u8d8a7u8d986u8d986u8d8af u8d986u8d8a7u8d985 u8d8b5u8d981u8d8adu8d987 u8d8aau8d8b9u8d8b1u8db8cu8d981 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa \' commons_link_locally_defined \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8a8u8d987u8e2808cu8d8b5u8d988u8d8b1u8d8aa u8d985u8d8adu8d984u8db8c u8d8aau8d8b9u8d8b1u8db8cu8d981 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa \' commons_link_from_wikidata \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8a7u8d8b2 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 \' commons_link_is_pagename \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d986u8d8a7u8d985 u8d8b5u8d981u8d8adu8d987 u8d8a7u8d8b3u8d8aa \' inconsistent \' u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \' local categorytrackingcats commons_link_on_wikidata \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d8a7u8d8b3u8d8aa \' commons_link_defined_as_pagename \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d985u8d8a7u8d986u8d986u8d8af u8d986u8d8a7u8d985 u8d8b5u8d981u8d8adu8d987 u8d8aau8d8b9u8d8b1u8db8cu8d981 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa \' commons_link_locally_defined \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8daa9u8d987 u8d8a8u8d987 u8d8b5u8d988u8d8b1u8d8aa u8d985u8d8adu8d984u8db8c u8d8aau8d8b9u8d8b1u8db8cu8d981 u8d8b4u8d8afu8d987 u8d8a7u8d8b3u8d8aa \' commons_link_from_wikidata \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8a7u8d8b2 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 \' commons_link_is_pagename \' u8d8b1u8d8afu8d987 u8d9beu8db8cu8d988u8d986u8d8af u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d987u8d985u8d8a7u8d986 u8d986u8d8a7u8d985 u8d8b5u8d981u8d8adu8d987 u8d8a7u8d8b3u8d8aa \' inconsistent \' u8d8b1u8d8afu8d987 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d8aau8d986u8d8a7u8d982u8d8b6 u8d8a8u8d8b1u8d8a7u8db8c u8d8b1u8d8afu8d987 u8d8a7u8d986u8d8a8u8d8a7u8d8b1 \' local function selecttrackingcat trackingcats wikidata consistent default title ifu800 notu800 consistent then return trackingcatsu82einconsistent endu800 ifu800 default then construct warning message ifu800 default wikidata then return trackingcatsu82ecommons_link_on_wikidata endu800 local warning \"\" ifu800 wikidata then warning generatewarning \"u8d9beu8db8cu8d988u8d986u8d8af u8d988u8db8cu8daa9u8db8cu8e2808cu8d8a7u8d986u8d8a8u8d8a7u8d8b1 u8d8a8u8d8a7 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d985u8d986u8d8b7u8d8a8u8d982 u8d986u8db8cu8d8b3u8d8aa u8e28093 enu800 template commons_category#resolving_discrepancies u8d984u8d8b7u8d981u8d8a7u8d98b u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8daa9u8d986u8db8cu8d8af \" endu800 ifu800 titlematch default title then return trackingcatsu82ecommons_link_defined_as_pagename .. warning endu800 return trackingcatsu82ecommons_link_locally_defined .. warning endu800 ifu800 wikidata then return trackingcatsu82ecommons_link_from_wikidata endu800 return trackingcatsu82ecommons_link_is_pagename endu800 figure outu800 tracking categories andu800 editor warnings arguments default commons link argument passed tou800 template fetchgallery whether tou800 fetch au800 gallery from wikidata fetchcategory whether tou800 fetch au800 category from wikidata qidu800 force au800 qidu800 foru800 testing returns tracking category andu800 possible user warning note theu800 logic foru800 theu800 tracking isu800 quite different than theu800 logic foru800 generating commons links above . thus itu800 isu800 separated into another function foru800 code clarity andu800 maintainability. this should notu800 seriously affect performance server time isu800 dominated byu800 fetching wikidata entities andu800 those entities should beu800 cached andu800 shared between theu800 commons generating code andu800 this tracking code. function pu800u82e_tracking default fetchgallery fetchcategory qidu800 local title wp_ns wp_qid _gettitleqid qidu800 true ifu800 wp_ns \"\" then title wp_ns..\" \"..title endu800 only track ifu800 test oru800 namespace article oru800 namespace category ifu800 notu800 qidu800 oru800 wp_ns \"\" oru800 wp_ns \"u8d8b1u8d8afu8d987\" then return \"\" endu800 determine title andu800 namespace ofu800 wikidata andu800 wpu800 article local wikidata nilu800 local consistent nilu800 tracking code works foru800 allu800 4u800 cases ofu800 states ofu800 fetchgallery category fetchgallery takes precedence ifu800 fetchgallery then wikidata consistent pu800u82e_hasgalleryconsistent qidu800 ifu800 default oru800 notu800 fetchcategory oru800 consistent andu800 wikidata then return selecttrackingcat gallerytrackingcats wikidata consistent default title endu800 endu800 ifu800 fetchcategory then cat_wikidata cat_consistent pu800u82e_hascategoryconsistent qidu800 true ifu800 notu800 fetchgallery oru800 cat_consistent andu800 cat_wikidata then return selecttrackingcat categorytrackingcats cat_wikidata cat_consistent default title endu800 return selecttrackingcat gallerytrackingcats wikidata consistent default title endu800 return \"\" nothing fetched nothing tracked endu800 local function _createformatting args formatting formattingu82elinktext argsu82elinktext formattingu82elcfirst yesno argsu82elcfirst formattingu82ebold yesno argsu82ebold formattingu82eitalic yesno argsu82eitalic formattingu82enowrap yesno argsu82enowrap return formatting endu800 testing only entry point foru800 _gettitleqid function pu800u82egettitleqid frame local args getargs frame frameonly true parentonly false parentfirst false local text nsu800 qidu800 _gettitleqid args 1u800 args 2u800 return text..\" \"..nsu800..\" \".. qidu800 oru800 \"nilu800\" endu800 testing only entry point foru800 _lookupfallback function pu800u82elookupfallback frame local args getargs frame frameonly true parentonly false parentfirst false local fallback _lookupfallback args 1u800 args 2u800 return fallback oru800 \"nilu800\" endu800 find theu800 commons gallery page associated with article function pu800u82egetgallery frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_getcommons \"\" args 1u800 argsu82esearch argsu82efallback _createformatting args argsu82eqidu800 endu800 find theu800 commons category page associated with article function pu800u82egetcategory frame local args getargs frame frameonly true parentonly false parentfirst false local retval pu800u82e_getcommons \"category\" args 1u800 argsu82esearch argsu82efallback _createformatting args argsu82eqidu800 ifu800 argsu82etracking then local default nilu800 ifu800 args 1u800 then default \"category \"..args 1u800 endu800 retval retval..pu800u82e_tracking default false true argsu82eqidu800 endu800 return retval endu800 function pu800u82egetgalleryorcategory frame local args getargs frame frameonly true parentonly false parentfirst false local retval pu800u82e_getgalleryorcategory args 1u800 argsu82esearch argsu82efallback _createformatting args argsu82eqidu800 ifu800 argsu82etracking then retval retval..pu800u82e_tracking args 1u800 true true argsu82eqidu800 endu800 return retval endu800 function pu800u82ehasgallery frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_hasgallery argsu82eqidu800 oru800 \"\" endu800 function pu800u82ehascategory frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_hascategory argsu82eqidu800 oru800 \"\" endu800 function pu800u82ehasgalleryorcategory frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_hasgallery argsu82eqidu800 oru800 pu800u82e_hascategory argsu82eqidu800 oru800 \"\" endu800 function pu800u82egetgalleryandcategory frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_getgalleryandcategory args 1u800 args 2u800 argsu82ecategorytext argsu82eonesearch _createformatting args argsu82eqidu800 endu800 function pu800u82etracking frame local args getargs frame frameonly true parentonly false parentfirst false return pu800u82e_tracking args 1u800 argsu82efetchgallery argsu82efetchcategory argsu82eqidu800 endu800 return pu800 '),
(365, 'converterntn', ' convert number tou800 number local pu800 local converter require \"module numeral converter\" function pu800u82etoen frame return converteru82econvert \"enu800\" frame getparent .args 1u800 endu800 function pu800u82etofa frame return converteru82econvert \"fau800\" frame getparent .args 1u800 endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(366, 'coordinates', ' u8d8a8u8d8aeu8d8b4u8e2808cu8d987u8d8a7u8db8cu8db8c u8d8a7u8d8b2 u8d8a7u8db8cu8d986 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8acu8d987u8d8aa u8d981u8d8a7u8d8b1u8d8b3u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8a8u8d987u8d8aau8d8b1 u8d8aau8d8bau8db8cu8db8cu8d8b1 u8db8cu8d8a7u8d981u8d8aau8d987u8e2808cu8d8a7u8d8b3u8d8aa. u8d984u8d8b7u8d981u8d8a7u8d98b u8d987u8d986u8daafu8d8a7u8d985 u8d8a8u8d987u8e2808cu8d8b1u8d988u8d8b2u8d8b1u8d8b3u8d8a7u8d986u8db8c u8daa9u8d8a7u8d985u8d984u8d8a7u8d98b u8d8afu8d982u8d8aa u8daa9u8d986u8db8cu8d8af. u8d986u8d8b3u8d8aeu8d987 u8d8afu8d8b1u8d8b3u8d8aa this module isu800 intended tou800 replace theu800 functionality ofu800 coord andu800 related templates. itu800 provides several methods including #invoke coordinates coord general function formatting andu800 displaying coordinate values. #invoke coordinates dec2dms simple function foru800 converting decimal degree values tou800 dmsu800 format. #invoke coordinates dms2dec simple function foru800 converting dmsu800 format tou800 decimal degree format. #invoke coordinates link export theu800 link used tou800 reach theu800 tools require \'module nou800 globals u8d8aeu8d8b7 u8d8b2u8db8cu8d8b1 u8d8a8u8d8b1u8d8a7u8db8c u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8b6u8d8b1u8d988u8d8b1u8db8c u8d8a7u8d8b3u8d8aa local convert require \"module numeral converter\" .convert; local math_mod require \"module math\" local coordinates ; local current_page mwu800u82etitleu82egetcurrenttitle local page_name mwu800u82euriu800u82eencode current_pageu82eprefixedtext \'wiki\' ; local coord_link \' toolsu82ewmflabsu82eorgu800 geohack geohacku82ephpu800 language fau800&pagename \' .. page_name .. \'&params \' helper function replacement foru800 coord display title local function displaytitle su800 notes local lu800 \" u8d8afu8d8b3u8d8aau8daafu8d8a7u8d987 u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa \" .. su800 local cou800 \' \' .. lu800 .. notes .. \' \'; return \' \' .. cou800 .. \' \'; endu800 helper function replacement foru800 coord display inline local function displayinline su800 notes return su800 .. notes endu800 helper function used inu800 detecting dmsu800 formatting local function dmstest first second ifu800 type first \'string\' oru800 type second \'string\' then return nilu800 endu800 local su800 first .. second upper return su800 find \' nsu800 ewu800 \' oru800 su800 find \' ewu800 nsu800 \' endu800 wrapper function tou800 grab args seeu800 module arguments foru800 this function function\'su800 documentation. local function makeinvokefunc funcname return function frame local args require \'module arguments .getargs frame wrappers \'u8d8a7u8d984u8daafu8d988 coord\' return coordinates funcname args frame endu800 endu800 helper function handle optional args. local function optionalarg argu800 supplement return argu800 andu800 argu800 .. supplement oru800   endu800 formats anyu800 error messages generated foru800 display local function errorprinter errors local result \"\" foru800 iu800 vu800 inu800 ipairs errors dou800 local errorhtml \' u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa \' .. vu800 2u800 .. \' \' result result .. errorhtml .. \" \" endu800 return result endu800 determine theu800 required cssu800 class tou800 display coordinates usually geou800 nondefault isu800 hidden byu800 cssu800 unless au800 user hasu800 overridden this foru800 himself default isu800 theu800 mode asu800 specificied byu800 theu800 user when calling theu800 coord template mode isu800 theu800 display mode decu800 oru800 dmsu800 that weu800 will need tou800 determine theu800 cssu800 class foru800 local function displaydefault default mode ifu800 default \"\" then default \"decu800\" endu800 ifu800 default mode then return \"geou800 default\" else return \"geou800 nondefault\" endu800 endu800 specprinter output formatter. takes theu800 structure generated byu800 either parsedec oru800 parsedms andu800 formats itu800 foru800 inclusion onu800 wikipedia. local function specprinter args coordinatespec local uricomponents coordinatespec \"param\" ifu800 uricomponents \"\" then return error should never beu800 empty oru800 nilu800 return \"u8d8aeu8d8b7u8d8a7 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8d8aeu8d8a7u8d984u8db8c u8d8a7u8d8b3u8d8aa\" endu800 ifu800 args \"name\" then uricomponents uricomponents .. \"&title \" .. mwu800u82euriu800u82eencode coordinatespec \"name\" endu800 local geodmshtml \' \' .. \' \' .. convert \"fau800\" coordinatespec \"dmsu800 latu800\" .. \' \' .. \' \' .. convert \"fau800\" coordinatespec \"dmsu800 long\" .. \' \' .. \' \' local latu800 tonumber coordinatespec \"decu800 latu800\" oru800 0u800 local geodeclat ifu800 latu800 0u800 then fixme this breaks theu800 preu800 existing precision geodeclat \' \' .. tostring coordinatespec \"decu800 latu800\" subu800 2u800 .. \"u8c2b0 u8d8acu8d986u8d988u8d8a8u8db8c\" else geodeclat \' \' .. coordinatespec \"decu800 latu800\" oru800 0u800 .. \"u8c2b0 u8d8b4u8d985u8d8a7u8d984u8db8c\" endu800 local long tonumber coordinatespec \"decu800 long\" oru800 0u800 local geodeclong ifu800 long 0u800 then fixme does notu800 handle unicode minus geodeclong \' \' .. tostring coordinatespec \"decu800 long\" subu800 2u800 .. \"u8c2b0 u8d8bau8d8b1u8d8a8u8db8c\" else geodeclong \' \' .. coordinatespec \"decu800 long\" oru800 0u800 .. \"u8c2b0 u8d8b4u8d8b1u8d982u8db8c\" endu800 local geodechtml \' \' .. convert \"fau800\" geodeclat .. \' \' .. convert \"fau800\" geodeclong .. \' \' local geonumhtml \' \' .. coordinatespec \"decu800 latu800\" .. \'; \' .. coordinatespec \"decu800 long\" .. \' \' local inner \' \' .. geodmshtml .. \' \' .. \' &#xfeff; &#xfeff; \' .. \' \'; ifu800 notu800 args \"name\" then inner inner .. geodechtml .. \' &#xfeff; \' .. geonumhtml .. \' \' else inner inner .. \' \' .. geodechtml .. \' &#xfeff; \' .. geonumhtml .. \' \' .. \' &#xfeff; \' .. args \"name\" .. \' \' endu800 return \' \' .. \' \' .. coord_link .. uricomponents .. \' \' .. inner .. \' \' .. \' \' endu800 helper function convert decimal tou800 degrees local function convert_dec2dms_d coordinate local du800 \' \' .. math_modu82e_round coordinate 0u800 .. \"u8c2b0 \" return du800 .. \"\" endu800 helper function convert decimal tou800 degrees andu800 minutes local function convert_dec2dms_dm coordinate coordinate math_modu82e_round coordinate * 60u800 0u800 ; local mu800 coordinate 60u800; coordinate mathu82efloor coordinate mu800 60u800 ; local du800 \' \' .. coordinate 360u800 ..\"u8c2b0 \" return du800 .. stringu82eformat \' 02du8e280b2 \' mu800 endu800 helper function convert decimal tou800 degrees minutes andu800 seconds local function convert_dec2dms_dms coordinate coordinate math_modu82e_round coordinate * 60u800 * 60u800 0u800 ; local su800 coordinate 60u800 coordinate mathu82efloor coordinate su800 60u800 ; local mu800 coordinate 60u800 coordinate mathu82efloor coordinate mu800 60u800 ; local du800 \' \' .. coordinate 360u800 ..\"u8c2b0 \" return du800 .. stringu82eformat \' 02du8e280b2 \' mu800 .. stringu82eformat \' 02du8e280b3 \' su800 endu800 helper function convert decimal latitude oru800 longitude tou800 degrees minutes andu800 seconds format based onu800 theu800 specified precision. local function convert_dec2dms coordinate firstpostfix secondpostfix precision local coord tonumber coordinate local postfix ifu800 coord 0u800 then postfix firstpostfix else postfix secondpostfix endu800 precision precision lower ; ifu800 precision \"dmsu800\" then return convert_dec2dms_dms mathu82eabsu800 coord .. postfix; elseif precision \"dmu800\" then return convert_dec2dms_dm mathu82eabsu800 coord .. postfix; elseif precision \"du800\" then return convert_dec2dms_d mathu82eabsu800 coord .. postfix; endu800 endu800 convert dmsu800 format into au800 nu800 oru800 eu800 decimal coordinate local function convert_dms2dec direction degrees_str minutes_str seconds_str local degrees tonumber degrees_str local minutes tonumber minutes_str oru800 0u800 local seconds tonumber seconds_str oru800 0u800 local factor 1u800 ifu800 direction \"su800\" oru800 direction \"wu800\" then factor 1u800 endu800 local precision 0u800 ifu800 seconds_str then precision 5u800 mathu82emaxu800 math_modu82e_precision seconds_str 0u800 ; elseif minutes_str andu800 minutes_str   then precision 3u800 mathu82emaxu800 math_modu82e_precision minutes_str 0u800 ; else precision mathu82emaxu800 math_modu82e_precision degrees_str 0u800 ; endu800 local decimal factor * degrees minutes seconds 60u800 60u800 return stringu82eformat \" .\" .. precision .. \"fu800\" decimal notu800 tonumber since this whole thing isu800 string based. endu800 checks input values tou800 foru800 outu800 ofu800 range errors. local function validate lat_d lat_m lat_s long_d long_m long_s source strong local errors ; lat_d tonumber lat_d oru800 0u800; lat_m tonumber lat_m oru800 0u800; lat_s tonumber lat_s oru800 0u800; long_d tonumber long_d oru800 0u800; long_m tonumber long_m oru800 0u800; long_s tonumber long_s oru800 0u800; ifu800 strong then ifu800 lat_d 0u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0 u8d8a8u8d8a7 u8d9beu8d8b1u8da86u8d985 u8d986u8db8cu8d985u8e2808cu8daa9u8d8b1u8d987\" endu800 ifu800 long_d 0u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0 u8d8a8u8d8a7 u8d9beu8d8b1u8da86u8d985 u8d986u8db8cu8d985u8e2808cu8daa9u8d8b1u8d987\" endu800 #coordinates isu800 inconsistent about whether this isu800 anu800 error. ifu800 globe isu800 specified itu800 wonu800\'tu800 error onu800 this condition butu800 otherwise itu800 will. foru800 notu800 simply disable this check. ifu800 long_d 180u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb1u8dbb8u8dbb0 u8d8a8u8d8a7 u8d9beu8d8b1u8da86u8d985 u8d986u8db8cu8d985u8e2808cu8daa9u8d8b1u8d987\" endu800 endu800 ifu800 lat_d 90u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb9u8dbb0\" endu800 ifu800 lat_d 90u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb9u8dbb0\" endu800 ifu800 lat_m 60u800 then tableu82einsert errors source \"u8d8afu8d982u8d8a7u8db8cu8d982 u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb6u8dbb0\" endu800 ifu800 lat_m 0u800 then tableu82einsert errors source \"u8d8afu8d982u8d8a7u8db8cu8d982 u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0\" endu800 ifu800 lat_s 60u800 then tableu82einsert errors source \"u8d8abu8d8a7u8d986u8db8cu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb6u8dbb0\" endu800 ifu800 lat_s 0u800 then tableu82einsert errors source \"u8d8abu8d8a7u8d986u8db8cu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0\" endu800 ifu800 long_d 360u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb3u8dbb6u8dbb0\" endu800 ifu800 long_d 360u800 then tableu82einsert errors source \"u8d8afu8d8b1u8d8acu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb3u8dbb6u8dbb0\" endu800 ifu800 long_m 60u800 then tableu82einsert errors source \"u8d8afu8d982u8d8a7u8db8cu8d982 u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb6u8dbb0\" endu800 ifu800 long_m 0u800 then tableu82einsert errors source \"u8d8afu8d982u8d8a7u8db8cu8d982 u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0\" endu800 ifu800 long_s 60u800 then tableu82einsert errors source \"u8d8abu8d8a7u8d986u8db8cu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb6u8dbb0\" endu800 ifu800 long_s 0u800 then tableu82einsert errors source \"u8d8abu8d8a7u8d986u8db8cu8d987u8e2808cu8d987u8d8a7u8db8c u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8dbb0\" endu800 return errors; endu800 parsedec transforms decimal format latitude andu800 longitude into theu800 structure tou800 beu800 used inu800 displaying coordinates local function parsedec latu800 long format local coordinatespec local errors ifu800 notu800 long then return nilu800 \"parsedec\" \"u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d988u8d8a7u8d8b1u8d8af u8d986u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa\" elseif notu800 tonumber long then return nilu800 \"parsedec\" \"u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d986u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8d8af u8d8a8u8d987 u8d8b9u8d986u8d988u8d8a7u8d986 u8db8cu8daa9 u8d8b1u8d982u8d985 u8d8aau8d8acu8d8b2u8db8cu8d987 u8d8b4u8d988u8d8af \" .. long endu800 errors validate latu800 nilu800 nilu800 long nilu800 nilu800 \'parsedec\' false ; coordinatespec \"decu800 latu800\" latu800; coordinatespec \"decu800 long\" long; local mode coordinatesu82edeterminemode latu800 long ; coordinatespec \"dmsu800 latu800\" convert_dec2dms latu800 \"u8d8b4u8d985u8d8a7u8d984u8db8c\" \"u8d8acu8d986u8d988u8d8a8u8db8c\" mode coord dec2dms 1u800 nu800 su800 coord prec decu800 1u800 2u800 coordinatespec \"dmsu800 long\" convert_dec2dms long \"u8d8b4u8d8b1u8d982u8db8c\" \"u8d8bau8d8b1u8d8a8u8db8c\" mode coord dec2dms 2u800 eu800 wu800 coord prec decu800 1u800 2u800 ifu800 format then coordinatespecu82edefault format else coordinatespecu82edefault \"decu800\" endu800 return coordinatespec errors endu800 parsedms transforms degrees minutes seconds format latitude andu800 longitude into theu800 au800 structure tou800 beu800 used inu800 displaying coordinates local function parsedms lat_d lat_m lat_s lat_f long_d long_m long_s long_f format local coordinatespec errors backward lat_f lat_f upper ; long_f long_f upper ; check ifu800 specified backward ifu800 lat_f \'eu800\' oru800 lat_f \'wu800\' then lat_d long_d lat_m long_m lat_s long_s lat_f long_f backward long_d lat_d long_m lat_m long_s lat_s long_f lat_f true; endu800 errors validate lat_d lat_m lat_s long_d long_m long_s \'parsedms true ; ifu800 notu800 long_d then return nilu800 \"parsedms\" \"u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d988u8d8a7u8d8b1u8d8af u8d986u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa\" elseif notu800 tonumber long_d then return nilu800 \"parsedms\" \"u8d8b7u8d988u8d984 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d986u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8d8af u8d8a8u8d987 u8d8b9u8d986u8d988u8d8a7u8d986 u8db8cu8daa9 u8d8b1u8d982u8d985 u8d8aau8d8acu8d8b2u8db8cu8d987 u8d8b4u8d988u8d8af \" .. long_d endu800 ifu800 notu800 lat_m andu800 notu800 lat_s andu800 notu800 long_m andu800 notu800 long_s andu800 #errors 0u800 then ifu800 math_modu82e_precision lat_d 0u800 oru800 math_modu82e_precision long_d 0u800 then ifu800 lat_f upper \'su800 then lat_d \' \' .. lat_d; endu800 ifu800 long_f upper \'wu800\' then long_d \' \' .. long_d; endu800 return parsedec lat_d long_d format ; endu800 endu800 u8d8aau8d8a7u8d8a8u8d8b9 u8d8b2u8db8cu8d8b1 u8d8acu8d987u8d8aa u8d981u8d8a7u8d8b1u8d8b3u8db8cu8e2808cu8daa9u8d8b1u8d8afu8d986 u8d8b1u8d8b4u8d8aau8d987u8e2808cu8d987u8d8a7u8db8c u8d985u8d8b1u8d8a8u8d988u8d8b7 u8d8a8u8d987 u8d8b4u8d985u8d8a7u8d984u8d88c u8d8bau8d8b1u8d8a8u8d88c u8d8acu8d986u8d988u8d8a8u8d88c u8d988 u8d8b4u8d8b1u8d982 u8d986u8d988u8d8b4u8d8aau8d987 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa. local function persianchars enchar ifu800 enchar \"wu800\" then return \" u8d8bau8d8b1u8d8a8u8db8c\" elseif enchar \"nu800\" then return \" u8d8b4u8d985u8d8a7u8d984u8db8c\" elseif enchar \"su800\" then return \" u8d8acu8d986u8d988u8d8a8u8db8c\" elseif enchar \"eu800\" then return \" u8d8b4u8d8b1u8d982u8db8c\" endu800 endu800 coordinatespec \"dmsu800 latu800\" \' \' .. lat_d..\"u8c2b0\"..optionalarg lat_m \"u8e280b2\" .. optionalarg lat_s \"u8e280b3\" .. \' \' .. persianchars lat_f coordinatespec \"dmsu800 long\" \' \' .. long_d..\"u8c2b0\"..optionalarg long_m \"u8e280b2\" .. optionalarg long_s \"u8e280b3\" .. \' \' .. persianchars long_f coordinatespec \"decu800 latu800\" convert_dms2dec lat_f lat_d lat_m lat_s coord dms2dec 4u800 1u800 0u800 2u800 0u800 3u800 coordinatespec \"decu800 long\" convert_dms2dec long_f long_d long_m long_s coord dms2dec 8u800 5u800 0u800 6u800 0u800 7u800 ifu800 format then coordinatespecu82edefault format else coordinatespecu82edefault \"dmsu800\" endu800 return coordinatespec errors backward endu800 check theu800 input arguments foru800 coord tou800 determine theu800 kind ofu800 data being provided andu800 then make theu800 necessary processing. local function formattest args local result errors local backward primary false false local function getparam args limu800 local retu800 foru800 iu800 1u800 limu800 dou800 retu800 iu800 args iu800 oru800   endu800 return tableu82econcat retu800 \'_u800\' endu800 ifu800 notu800 args 1u800 then nou800 latu800 logic return errorprinter \"formattest\" \"u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d988u8d8a7u8d8b1u8d8af u8d986u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa\" elseif notu800 tonumber args 1u800 then badu800 latu800 logic return errorprinter \"formattest\" \"u8d986u8d8a7u8d8aau8d988u8d8a7u8d986 u8d8afu8d8b1 u8d8aau8d8acu8d8b2u8db8cu8d987 u8d8b9u8d8b1u8d8b6 u8d8acu8d8bau8d8b1u8d8a7u8d981u8db8cu8d8a7u8db8cu8db8c u8d8a8u8d987 u8d8b9u8d986u8d988u8d8a7u8d986 u8db8cu8daa9 u8d8b1u8d982u8d985 \" .. args 1u800 elseif notu800 args 4u800 andu800 notu800 args 5u800 andu800 notu800 args 6u800 then decu800 logic result errors parsedec args 1u800 args 2u800 argsu82eformat ifu800 notu800 result then return errorprinter errors ; endu800 resultu82eparam tableu82econcat args 1u800 \'nu800\' args 2u800 oru800   \'eu800\' args 3u800 oru800   \'_u800\' elseif dmstest args 4u800 args 8u800 then dmsu800 logic result errors backward parsedms args 1u800 args 2u800 args 3u800 args 4u800 args 5u800 args 6u800 args 7u800 args 8u800 argsu82eformat ifu800 args 10u800 then tableu82einsert errors \'formattest\' \'u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8a7u8d8b6u8d8a7u8d981u8db8c u8d8bau8db8cu8d8b1 u8d985u8d986u8d8aau8d8b8u8d8b1u8d987\' endu800 ifu800 notu800 result then return errorprinter errors endu800 resultu82eparam getparam args 9u800 elseif dmstest args 3u800 args 6u800 then dmu800 logic result errors backward parsedms args 1u800 args 2u800 nilu800 args 3u800 args 4u800 args 5u800 nilu800 args 6u800 args \'format\' ifu800 args 8u800 then tableu82einsert errors \'formattest\' \'u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8a7u8d8b6u8d8a7u8d981u8db8c u8d8bau8db8cu8d8b1 u8d985u8d986u8d8aau8d8b8u8d8b1u8d987\' endu800 ifu800 notu800 result then return errorprinter errors endu800 resultu82eparam getparam args 7u800 elseif dmstest args 2u800 args 4u800 then du800 logic result errors backward parsedms args 1u800 nilu800 nilu800 args 2u800 args 3u800 nilu800 nilu800 args 4u800 argsu82eformat ifu800 args 6u800 then tableu82einsert errors \'formattest\' \'u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d8a7u8d8b6u8d8a7u8d981u8db8c u8d8bau8db8cu8d8b1 u8d985u8d986u8d8aau8d8b8u8d8b1u8d987\' endu800 ifu800 notu800 result then return errorprinter errors endu800 resultu82eparam getparam args 5u800 else error return errorprinter \"formattest\" \"u8d982u8d8a7u8d984u8d8a8u8e2808cu8d8a8u8d986u8d8afu8db8c u8d986u8d8a7u8d8b4u8d986u8d8a7u8d8aeu8d8aau8d987 u8d8a2u8d8b1u8daafu8d988u8d985u8d8a7u8d986\" endu800 resultu82ename argsu82ename local extra_param \'dimu800\' \'globe\' \'scale\' \'region\' \'source\' \'type\' foru800 _u800 vu800 inu800 ipairs extra_param dou800 ifu800 args vu800 then tableu82einsert errors \'formattest\' \'u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8c2ab\' .. vu800 .. \' u8c2bb u8d8a8u8d8a7u8db8cu8d8af u8c2ab\' .. vu800 .. \' u8c2bb\' endu800 endu800 local retu800 specprinter args result ifu800 #errors 0u800 then retu800 retu800 .. \' \' .. errorprinter errors .. \' u8d8b1u8d8afu8d987 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8d8afu8d8a7u8d8b1u8d8a7u8db8c u8d8a8u8d8b1u8da86u8d8b3u8d8a8 u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa u8d986u8d8a7u8d982u8d8b5 \' endu800 return retu800 backward endu800 generate wikidata tracking categories. local function makewikidatacategories local retu800 ifu800 mwu800u82ewikibase andu800 current_pageu82enamespace 0u800 then local entity mwu800u82ewikibaseu82egetentityobject ifu800 entity andu800 entityu82eclaims andu800 entityu82eclaimsu82ep625 andu800 entityu82eclaimsu82ep625 1u800 then local snaktype entityu82eclaimsu82ep625 1u800 .mainsnaku82esnaktype ifu800 snaktype \'value\' then coordinates exist both here andu800 onu800 wikidata andu800 canu800 beu800 compared. retu800 \'u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987\' elseif snaktype \'somevalue\' then retu800 \'u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8daa9u8d987 u8d985u8d982u8d8afu8d8a7u8d8b1 u8d986u8d8a7u8d985u8d8b4u8d8aeu8d8b5 u8d8aau8d986u8d8b8u8db8cu8d985 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d986u8d8af\' elseif snaktype \'novalue\' then retu800 \'u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aa u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8daa9u8d987 u8d8a8u8d8afu8d988u8d986 u8d985u8d982u8d8afu8d8a7u8d8b1 u8d8aau8d986u8d8b8u8db8cu8d985 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d986u8d8af\' endu800 else weu800 have tou800 either import theu800 coordinates tou800 wikidata oru800 remove them here. retu800 \'u8d985u8d8aeu8d8aau8d8b5u8d8a7u8d8aau8db8c u8daa9u8d987 u8d8afu8d8b1 u8d988u8db8cu8daa9u8db8cu8e2808cu8d8afu8d8a7u8d8afu8d987 u8d986u8db8cu8d8b3u8d8aau8d986u8d8af\' endu800 endu800 ifu800 retu800 then return stringu82eformat \' u8d8b1u8d8afu8d987 su800 \' retu800 else return   endu800 endu800 link simple function tou800 export theu800 coordinates link foru800 other uses. usage #invoke coordinates link function coordinatesu82elink frame return coord_link; endu800 dec2dms wrapper tou800 allow templates tou800 call dec2dms directly. usage #invoke coordinates dec2dms decimal_coordinate positive_suffix negative_suffix precision decimal_coordinate isu800 converted tou800 dmsu800 format. ifu800 positive theu800 positive_suffix isu800 appended typical nu800 oru800 eu800 ifu800 negative theu800 negative suffix isu800 appended. theu800 specified precision isu800 oneu800 ofu800 \'du800\' \'dmu800\' oru800 \'dmsu800 tou800 specify theu800 level ofu800 detail tou800 useu800. coordinatesu82edec2dms makeinvokefunc \'_dec2dms function coordinatesu82e_dec2dms args local coordinate args 1u800 local firstpostfix args 2u800 oru800   local secondpostfix args 3u800 oru800   local precision args 4u800 oru800   return convert_dec2dms coordinate firstpostfix secondpostfix precision endu800 helper function tou800 determine whether tou800 useu800 du800 dmu800 oru800 dmsu800 format depending onu800 theu800 precision ofu800 theu800 decimal input. function coordinatesu82edeterminemode value1 value2 local precision mathu82emaxu800 math_modu82e_precision value1 math_modu82e_precision value2 ; ifu800 precision 0u800 then return \'du800\' elseif precision 2u800 then return \'dmu800\'; else return \'dmsu800\'; endu800 endu800 dms2dec wrapper tou800 allow templates tou800 call dms2dec directly. usage #invoke coordinates dms2dec direction_flag degrees minutes seconds converts dmsu800 values specified asu800 degrees minutes seconds toou800 decimal format. direction_flag isu800 oneu800 ofu800 nu800 su800 eu800 wu800 andu800 determines whether theu800 output isu800 positive iu800u82eeu800. nu800 andu800 eu800 oru800 negative iu800u82eeu800. su800 andu800 wu800 . coordinatesu82edms2dec makeinvokefunc \'_dms2dec\' function coordinatesu82e_dms2dec args local direction args 1u800 local degrees args 2u800 local minutes args 3u800 local seconds args 4u800 return convert_dms2dec direction degrees minutes seconds endu800 coord main entry point foru800 luau800 function tou800 replace coord usage #invoke coordinates coord #invoke coordinates coord latu800 long #invoke coordinates coord latu800 lat_flag long long_flag ... refer tou800 coord documentation page foru800 many additional parameters andu800 configuration options. note this function provides theu800 visual display elements ofu800 coord . inu800 order tou800 load coordinates into theu800 database theu800 #coordinates parser function must also beu800 called this isu800 done automatically inu800 theu800 luau800 version ofu800 coord . coordinatesu82ecoord makeinvokefunc \'_coord\' function coordinatesu82e_coord args ifu800 notu800 args 1u800 oru800 notu800 tonumber args 1u800 andu800 notu800 args 2u800 andu800 mwu800u82ewikibaseu82egetentityobject then args 3u800 args 1u800 ; args 1u800 nilu800 local entity mwu800u82ewikibaseu82egetentityobject ifu800 entity andu800 entityu82eclaims andu800 entityu82eclaimsu82ep625 andu800 entityu82eclaimsu82ep625 1u800 .mainsnaku82esnaktype \'value\' then local precision entityu82eclaimsu82ep625 1u800 .mainsnaku82edatavalueu82evalueu82eprecision args 1u800 entityu82eclaimsu82ep625 1u800 .mainsnaku82edatavalueu82evalueu82elatitude args 2u800 entityu82eclaimsu82ep625 1u800 .mainsnaku82edatavalueu82evalueu82elongitude ifu800 precision then precision math_modu82e_round mathu82elogu800 precision mathu82elogu800 10u800 0u800 args 1u800 math_modu82e_round args 1u800 precision args 2u800 math_modu82e_round args 2u800 precision endu800 endu800 endu800 u8d8aeu8d8b7u8d988u8d8b7 u8d8b2u8db8cu8d8b1 u8d8a8u8d987u8e2808cu8d985u8d986u8d8b8u8d988u8d8b1 u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d988 u8d9beu8d8b4u8d8aau8db8cu8d8a8u8d8a7u8d986u8db8c u8d8a7u8d8b2 u8d8a7u8d8b1u8d982u8d8a7u8d985 u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d8a7u8d8b6u8d8a7u8d981u8d987 u8d8b4u8d8afu8d986u8d8af ifu800 args 1u800 nilu800 then args 1u800 convert \"enu800\" args 1u800 endu800 ifu800 args 2u800 nilu800 then args 2u800 convert \"enu800\" args 2u800 endu800 ifu800 args 3u800 nilu800 then args 3u800 convert \"enu800\" args 3u800 endu800 ifu800 args 4u800 nilu800 then args 4u800 convert \"enu800\" args 4u800 endu800 ifu800 args 5u800 nilu800 then args 5u800 convert \"enu800\" args 5u800 endu800 ifu800 args 6u800 nilu800 then args 6u800 convert \"enu800\" args 6u800 endu800 ifu800 args 7u800 nilu800 then args 7u800 convert \"enu800\" args 7u800 endu800 ifu800 args 8u800 nilu800 then args 8u800 convert \"enu800\" args 8u800 endu800 u8d9beu8d8a7u8db8cu8d8a7u8d986 u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c local contents backward formattest args local notes argsu82enotes oru800   local display argsu82edisplay andu800 argsu82edisplay lower oru800 \'inline\' local function isinline su800 finds whether coordinates areu800 displayed inline. return su800 find \'inline\' nilu800 oru800 su800 \'iu800\' oru800 su800 \'itu800\' oru800 su800 \'tiu800\' endu800 local function isintitle su800 finds whether coordinates areu800 displayed inu800 theu800 title. return su800 find \'title\' nilu800 oru800 su800 \'tu800\' oru800 su800 \'itu800\' oru800 su800 \'tiu800\' endu800 local function coord_wrapper in_args calls theu800 parser function #coordinates . return mwu800u82egetcurrentframe callparserfunction \'#coordinates in_args oru800   endu800 local text   ifu800 isinline display then text text .. displayinline contents notes endu800 ifu800 isintitle display then text text .. displaytitle contents notes .. makewikidatacategories endu800 ifu800 notu800 argsu82enosave then local page_title count mwu800u82etitleu82egetcurrenttitle 1u800 ifu800 backward then local tmpu800 while notu800 stringu82efind args count 1u800 oru800   \' ewu800 \' dou800 tmpu800 count args count oru800   ; count count 1u800 endu800 tmpu800u82ecount count; count 2u800* count 1u800 while count tmpu800u82ecount dou800 tableu82einsert tmpu800 1u800 args count oru800   ; count count 1u800 endu800 foru800 iu800 vu800 inu800 ipairs tmpu800 dou800 args iu800 vu800 endu800 else while count 9u800 dou800 args count args count oru800   ; count count 1u800 endu800 endu800 ifu800 isintitle display andu800 notu800 page_titleu82eistalkpage andu800 page_titleu82esubpagetext \'docu800\' andu800 page_titleu82esubpagetext \'testcases then args 10u800 \'primary\' endu800 argsu82enotes argsu82eformat argsu82edisplay nilu800 text text .. coord_wrapper args endu800 return text endu800 coord2text extracts au800 single value from au800 transclusion ofu800 coord . ifu800 theu800 geohack link syntax changes this function must beu800 modified. usage #invoke coordinates coord2text coord parameter valid values foru800 theu800 second parameter areu800 latu800 signed integer long signed integer type scale dimu800 region globe source function coordinatesu82ecoord2text frame ifu800 frameu82eargs 1u800   oru800 frameu82eargs 2u800   oru800 notu800 frameu82eargs 2u800 then return nilu800 endu800 frameu82eargs 2u800 mwu800u82etextu82etrim frameu82eargs 2u800 ifu800 frameu82eargs 2u800 \'latu800\' oru800 frameu82eargs 2u800 \'long\' then local result negative mwu800u82etextu82esplit mwu800u82eustringu82ematch frameu82eargs 1u800 \' . du800 u8c2b0 nsu800 . du800 u8c2b0 ewu800 \' oru800   \' \' ifu800 frameu82eargs 2u800 \'latu800\' then result negative result 1u800 \'su800 else result negative result 2u800 \'wu800\' endu800 result mwu800u82etextu82esplit result \'u8c2b0\' ifu800 result 2u800 negative then result 1u800 \' \'..result 1u800 endu800 return result 1u800 else return mwu800u82eustringu82ematch frameu82eargs 1u800 \'params . _u800\'..frameu82eargs 2u800 ..\' . _u800 \' endu800 endu800 coordinsert injects some text into theu800 geohack link ofu800 au800 transclusion ofu800 coord ifu800 that text isnu800\'tu800 already inu800 theu800 transclusion . outputs theu800 modified transclusion ofu800 coord . ifu800 theu800 geohack link syntax changes this function must beu800 modified. usage #invoke coordinates coordinsert coord parameter value parameter value u8e280a6 dou800 notu800 make geohack unhappy byu800 inserting something which isnu800\'tu800 mentioned inu800 theu800 coord documentation. function coordinatesu82ecoordinsert frame foru800 iu800 vu800 inu800 ipairs frameu82eargs dou800 ifu800 iu800 1u800 then ifu800 notu800 mwu800u82eustringu82efind frameu82eargs 1u800 mwu800u82eustringu82ematch frameu82eargs iu800 \' . \' oru800   then frameu82eargs 1u800 mwu800u82eustringu82egsub frameu82eargs 1u800 \' params . _u800 \' \' 1_u800\'..frameu82eargs iu800 ..\' \' endu800 endu800 endu800 ifu800 frameu82eargsu82ename then ifu800 notu800 mwu800u82eustringu82efind frameu82eargs 1u800 \' \' then local namestr frameu82eargsu82ename frameu82eargs 1u800 mwu800u82eustringu82egsub frameu82eargs 1u800 \' * * * * * * \' \' 1u800 2u800 &#xfeff; \' .. namestr .. \' 3u800\' frameu82eargs 1u800 mwu800u82eustringu82egsub frameu82eargs 1u800 \' &params &\" * \' \' 1u800&title \' .. mwu800u82euriu800u82eencode namestr .. \' \' endu800 endu800 return frameu82eargs 1u800 endu800 return coordinates '),
(367, 'date2en', ' local pu800 local numconv require \"module numeral converter\" .convert useu800 this function from templates. function pu800u82econvert_template frame return pu800u82econvert frameu82eargs 1u800 endu800 useu800 this function directly inu800 modules. function pu800u82econvert text text mwu800u82eustringu82egsub text \"u8d994\" \"\" text mwu800u82eustringu82egsub text \"u8da98u8d8a7u8d986u8d988u8db8cu8d987\" \"january\" text mwu800u82eustringu82egsub text \"u8d981u8d988u8d8b1u8db8cu8d987\" \"february\" text mwu800u82eustringu82egsub text \"u8d985u8d8a7u8d8b1u8d8b3\" \"march\" text mwu800u82eustringu82egsub text \"u8d8a2u8d988u8d8b1u8db8cu8d984\" \"april\" text mwu800u82eustringu82egsub text \"u8d985u8d987\" \"mayu800\" text mwu800u82eustringu82egsub text \"u8da98u8d988u8d8a6u8d986\" \"june\" text mwu800u82eustringu82egsub text \"u8da98u8d988u8d8a6u8db8cu8d987\" \"july\" text mwu800u82eustringu82egsub text \"u8d8a7u8d988u8d8aa\" \"august\" text mwu800u82eustringu82egsub text \"u8d8b3u8d9beu8d8aau8d8a7u8d985u8d8a8u8d8b1\" \"september\" text mwu800u82eustringu82egsub text \"u8d8a7u8daa9u8d8aau8d8a8u8d8b1\" \"october\" text mwu800u82eustringu82egsub text \"u8d986u8d988u8d8a7u8d985u8d8a8u8d8b1\" \"november\" text mwu800u82eustringu82egsub text \"u8d8afu8d8b3u8d8a7u8d985u8d8a8u8d8b1\" \"december\" text mwu800u82eustringu82egsub text \"u8d8b3u8d8a7u8d8b9u8d8aa\" \"hours\" text mwu800u82eustringu82egsub text \"u8d8b1u8d988u8d8b2\" \"days\" text mwu800u82eustringu82egsub text \"u8d987u8d981u8d8aau8d987\" \"weeks\" text mwu800u82eustringu82egsub text \"u8d985u8d8a7u8d987\" \"months\" text mwu800u82eustringu82egsub text \"u8d8b3u8d8a7u8d984\" \"years\" return numconv \"enu800\" text endu800 return pu800 '),
(368, 'delink', ' this module deu800 links most wikitext. require \'module nou800 globals local pu800 local getargs local function delinkreversepipetrick su800 ifu800 su800 match \" .* nu800 \" then check foru800 newlines oru800 multiple pipes. return su800 else return su800 match \" .* \" endu800 endu800 local function delinkpipetrick su800 local linkarea display \"\" \"\" weu800 need tou800 deal with colons brackets andu800 commas peru800 help pipe trick . first remove theu800 text before theu800 first colon ifu800 anyu800. ifu800 su800 match \" \" then su800 su800 match \" . .* \" ifu800 there areu800 nou800 colons grab allu800 ofu800 theu800 text apart from theu800 square brackets andu800 theu800 pipe. else su800 su800 match \" .* \" endu800 next upu800 brackets andu800 commas. ifu800 su800 match \" . \" then brackets trump commas. su800 su800 match \" . . \" elseif su800 match \" \" then ifu800 there areu800 nou800 brackets display only theu800 text before theu800 first comma. su800 su800 match \" . .* \" endu800 return su800 endu800 local function delinkwikilink su800 local result su800 deal with theu800 reverse pipe trick. ifu800 result match \" \" then return delinkreversepipetrick result endu800 result mwu800u82euriu800u82edecode result \"path\" decode percent encoded entities. leave underscores andu800 plus signs. result mwu800u82etextu82edecode result true decode html entities. check foru800 badu800 titles. tou800 dou800 this weu800 need tou800 find theu800 title area ofu800 theu800 link iu800u82eeu800. theu800 part before anyu800 pipes. local titlearea ifu800 result match \" \" then find ifu800 weu800\'reu800 dealing with au800 piped link. titlearea result match \" . .* \" else titlearea result match \" . \" endu800 check foru800 badu800 characters. ifu800 mwu800u82eustringu82ematch titlearea \" cu800 nu800 \" then return su800 endu800 check foru800 categories interwikis andu800 files. local colonprefix result match \" . .* \" oru800 \"\" getu800 theu800 text before theu800 first colon. local nsu800 mwu800u82esiteu82enamespaces colonprefix seeu800 ifu800 this isu800 au800 known namespace ifu800 mwu800u82elanguageu82eisknownlanguagetag colonprefix oru800 nsu800 andu800 nsu800u82ecanonicalname \"u8d9beu8d8b1u8d988u8d986u8d8afu8d987\" oru800 nsu800u82ecanonicalname \"u8d8b1u8d8afu8d987\" then return \"\" endu800 remove theu800 colon ifu800 theu800 link isu800 using theu800 help colon trick . ifu800 result match \" \" then result \" \" .. result match \" .* \" endu800 deal with links using theu800 help pipe trick . ifu800 mwu800u82eustringu82ematch result \" * \" then return delinkpipetrick result endu800 find theu800 display area ofu800 theu800 wikilink ifu800 result match \" \" then find ifu800 weu800\'reu800 dealing with au800 piped link. result result match \" . . \" remove newu800 lines from theu800 display ofu800 multiline piped links where theu800 pipe isu800 before theu800 first newu800 line. result result gsub \" nu800\" \"\" else result result match \" . \" endu800 return result endu800 local function delinkurl su800 assume weu800 have already delinked internal wikilinks andu800 that weu800 have been passed some text between twou800 square brackets foou800 . ifu800 theu800 text contains au800 line break itu800 isu800 notu800 formatted asu800 au800 urlu800 regardless ofu800 other content. ifu800 su800 match \" nu800\" then return su800 endu800 check ifu800 theu800 text hasu800 au800 valid urlu800 prefix andu800 atu800 least oneu800 valid urlu800 character. local valid_url_prefixes \" \" \" \" \" \" \" \" \" \" \"mailto \" \"news \" \"ircu800 \" local url_prefix foru800 iu800 vu800 inu800 ipairs valid_url_prefixes dou800 ifu800 mwu800u82eustringu82ematch su800 \' \' .. vu800 ..\' \" su800 .* \' then url_prefix vu800 break endu800 endu800 getu800 display text ifu800 notu800 url_prefix then return su800 endu800 su800 su800 match \" \" .. url_prefix .. \" .* \" grab allu800 ofu800 theu800 text after theu800 urlu800 prefix andu800 before theu800 final square bracket. su800 su800 match \' . \" .* \' oru800 \"\" grab allu800 ofu800 theu800 text after theu800 first urlu800 separator character \" . su800 mwu800u82eustringu82ematch su800 \" su800* su800u82e* \" oru800 \"\" ifu800 theu800 separating character wasu800 au800 space trim itu800 offu800. local s_decoded mwu800u82etextu82edecode su800 true ifu800 mwu800u82eustringu82ematch s_decoded \" cu800\" then return su800 else return s_decoded endu800 endu800 local function delinklinkclass su800 pattern delinkfunction ifu800 notu800 type su800 \"string\" then error \"u8d8aau8d984u8d8a7u8d8b4 u8d8afu8d8b1 u8d9beu8db8cu8d988u8d986u8d8afu8d8b2u8d8afu8d8a7u8db8cu8db8c u8d988u8d8b1u8d988u8d8afu8db8c u8d8bau8db8cu8d8b1 u8d8b1u8d8b4u8d8aau8d987u8e2808cu8d8a7u8db8c.\" 2u800 endu800 ifu800 notu800 type pattern \"string\" andu800 mwu800u82eustringu82esubu800 pattern 1u800 1u800 \" \" then error \'u8d8a7u8d984u8daafu8d988u8db8c u8d986u8d8a7u8d985u8d8b9u8d8aau8d8a8u8d8b1 u8d8b4u8d986u8d8a7u8d8b3u8d8a7u8db8cu8db8c u8d8b4u8d8af. u8d8a7u8d984u8daafu8d988u8d987u8d8a7 u8d8a8u8d8a7u8db8cu8d8af u8d8a8u8d8a7 \" \" u8d8a2u8d8bau8d8a7u8d8b2 u8d8b4u8d988u8d986u8d8af.\' 2u800 endu800 iterate over theu800 text string andu800 replace anyu800 matched text. using theu800 delink function. weu800 need tou800 iterate character byu800 character rather than just useu800 gsub otherwise nested links aren\'tu800 detected properly. local result \"\" while su800   dou800 replace text using oneu800 iteration ofu800 gsub. su800 mwu800u82eustringu82egsub su800 pattern delinkfunction 1u800 append theu800 left most character tou800 theu800 result string. result result .. mwu800u82eustringu82esubu800 su800 1u800 1u800 su800 mwu800u82eustringu82esubu800 su800 2u800 1u800 endu800 return result endu800 function pu800u82e_delink args local text args 1u800 oru800 \"\" ifu800 argsu82erefs \"yesu800\" then remove anyu800 help strip markers representing refu800 tags. inu800 most situations this isu800 notu800 au800 good idea only useu800 itu800 ifu800 youu800 know what youu800 areu800 doing text mwu800u82eustringu82egsub text \" uniq wu800* refu800 du800* qinu \" \"\" endu800 ifu800 notu800 argsu82ecomments \"nou800\" then text text gsub \" . \" \"\" remove html comments. endu800 ifu800 notu800 argsu82ewikilinks \"nou800\" then text delinklinkclass text \" . \" delinkwikilink deu800 link wikilinks. endu800 ifu800 notu800 argsu82eurls \"nou800\" then text delinklinkclass text \" . \" delinkurl deu800 link urls. endu800 ifu800 notu800 argsu82ewhitespace \"nou800\" then replace single newu800 lines with au800 single space butu800 leave double newu800 lines andu800 newu800 lines only containing spaces oru800 tabs before au800 second newu800 line. text mwu800u82eustringu82egsub text \" nu800 tu800 tu800 * nu800 tu800 * nu800 tu800 \" \" 1u800 2u800\" text text gsub \" tu800 \" \" \" remove extra tabs andu800 spaces. endu800 return text endu800 function pu800u82edelink frame ifu800 notu800 getargs then getargs require \'module arguments .getargs endu800 return pu800u82e_delink getargs frame wrappers \'u8d8a7u8d984u8daafu8d988 u8d9beu8db8cu8d988u8d986u8d8afu8d8b2u8d8afu8d8a7u8db8cu8db8c\' endu800 return pu800 '),
(369, 'details', ' this module produces au800 \"foru800 more details onu800 this topic\" link. itu800 implements theu800 details template. local mhatnote require \'module hatnote\' local marguments lazily initialise local pu800 function pu800u82edetails frame marguments require \'module arguments local args margumentsu82egetargs frame parentonly true local page args 1u800 local topic args 2u800 ifu800 notu800 page then return mhatnoteu82emakewikitexterror \'u8d987u8db8cu8da86 u8d986u8d8a7u8d985 u8d8b5u8d981u8d8adu8d987u8e2808cu8d8a7u8db8c u8d8aau8d8b9u8db8cu8db8cu8d986 u8d986u8d8b4u8d8afu8d987 u8d8a7u8d8b3u8d8aa\' \'u8d8a7u8d984u8daafu8d988 details#u8d8aeu8d8b7u8d8a7u8d987u8d8a7\' argsu82ecategory endu800 local options selfref argsu82eselfref return pu800u82e_details page topic options endu800 function pu800u82e_details page topic options page mhatnoteu82e_formatlink page topic topic oru800 \'u8d8a7u8db8cu8d986 u8d985u8d988u8d8b6u8d988u8d8b9\' local text stringu82eformat \'u8d8a8u8d8b1u8d8a7u8db8c u8d8a2u8daafu8d8a7u8d987u8db8c u8d8a7u8d8b2 u8d8acu8d8b2u8d8a6u8db8cu8d8a7u8d8aa u8d8a8u8db8cu8d8b4u8d8aau8d8b1 u8d8afu8d8b1u8d8a8u8d8a7u8d8b1u8d987u8d994 su8d88c su800 u8d8b1u8d8a7 u8d8a8u8d8a8u8db8cu8d986u8db8cu8d8af.\' topic page options options oru800 optionsu82eextraclasses \'boilerplate seealso\' return mhatnoteu82e_hatnote text options endu800 return pu800 '),
(370, 'detect singular', ' local pu800 local getargs require \'module arguments .getargs local yesno require \'module yesno\' local getplain require \'module text\' .text .getplain local setfarsiarguments require \'module setu800 farsi argument names function tou800 determine whether \"subu800\" occurs inu800 \"su800\" local function plainfind su800 subu800 return mwu800u82eustringu82efind su800 subu800 1u800 true endu800 function tou800 count theu800 number ofu800 times \"pattern\" au800 regex occurs inu800 \"su800\" local function countmatches su800 pattern local _u800 count mwu800u82eustringu82egsub su800 pattern   return count endu800 local singular 1u800 local likelyplural 2u800 local plural 3u800 determine whether au800 string isu800 singular oru800 plural iu800u82eeu800. itu800 represents oneu800 item oru800 many arguments origargs 1u800 string tou800 process origargsu82eno_comma ifu800 false useu800 commas tou800 detect plural default false origargsu82eparse_links ifu800 false treat wikilinks asu800 opaque singular objects default false returns singular likelyplural oru800 plural seeu800 constants above oru800 nilu800 foru800 completely unknown function pu800u82e_main origargs origargs type origargs \'table\' andu800 origargs oru800 local args canonicalize boolean arguments foru800 keyu800 default inu800 pairs no_comma false parse_links false any_comma false no_and false dou800 ifu800 origargs keyu800 nilu800 then args keyu800 default else args keyu800 yesno origargs keyu800 default endu800 endu800 local checkcomma notu800 argsu82eno_comma local checkand notu800 argsu82eno_and local rewritelinks notu800 argsu82eparse_links local anycomma argsu82eany_comma local su800 origargs 1u800 theu800 input string ifu800 notu800 su800 then return nilu800 empty input returns nilu800 endu800 su800 tostring su800 su800 mwu800u82etextu82edecode su800 true replace html entities tou800 avoid spurious semicolons ifu800 plainfind su800 \'data plural \"0u800\"\' then magic data string tou800 return true return singular endu800 ifu800 plainfind su800 \'data plural \"1u800\"\' then magic data string tou800 return false return plural endu800 count number ofu800 list items local numlistitems countmatches su800 \' su800*liu800\' ifu800 exactly oneu800 then singular ifu800 more than oneu800 then plural ifu800 numlistitems 1u800 then return singular endu800 ifu800 numlistitems 1u800 then return plural endu800 ifu800 \"list ofu800\" occurs inside ofu800 wlink then itu800 itu800\'su800 plural ifu800 mwu800u82eustringu82efind su800 lower \' *list ofu800 \' then return plural endu800 ifu800 \"u8d981u8d987u8d8b1u8d8b3u8d8aa\" occurs inside ofu800 wlink then itu800 itu800\'su800 plural ifu800 mwu800u82eustringu82efind su800 lower \' *u8d981u8d987u8d8b1u8d8b3u8d8aa \' then return plural endu800 fixu800 foru800 trailing bru800 tags passed through template marriage su800 mwu800u82eustringu82egsub su800 \' su800*bru800 * su800* \' \' 1u800\' replace allu800 wikilinks with fixed string ifu800 rewritelinks then su800 mwu800u82eustringu82egsub su800 \' bu800 \' \'wikilink\' endu800 five conditions anyu800 oneu800 ofu800 them canu800 make theu800 string au800 likely plural oru800 plural local hasbreak mwu800u82eustringu82efind su800 \' su800*bru800\' local hassakh mwu800u82eustringu82efind su800 \' u8d8b3u8d8ae \' foru800 theu800 last 4u800 evaluate onu800 string stripped ofu800 wikimarkup su800 getplain su800 local hasbullets countmatches su800 \' * \' 1u800 local multipleqids mwu800u82eustringu82efind su800 \'qu800 du800 pu800 su800 qu800 du800 \' hasu800 multiple qids inu800 au800 rowu800 ifu800 hasbullets oru800 multipleqids then return plural endu800 local commapattern anycomma andu800 \' ;u8d88cu8d89b \' oru800 \' du800 ;u8d88cu8d89b du800\' semi colon similar tou800 comma local hascomma checkcomma andu800 mwu800u82eustringu82efind su800 commapattern local hasand checkand andu800 mwu800u82eustringu82efind su800 \' su800 andu800 su800\' local hasva checkand andu800 mwu800u82eustringu82efind su800 \' u8d88c su800 u8d988 su800\' ifu800 hasbreak oru800 hassakh oru800 hascomma oru800 hasand oru800 hasva then return likelyplural endu800 return singular endu800 function pu800u82e_pluralize args args type args \'table\' andu800 args oru800 local singularform args 3u800 oru800 argsu82esingular oru800 \"\" local pluralform args 4u800 oru800 argsu82eplural oru800 \"\" local likelyform argsu82elikely oru800 pluralform local link args 5u800 oru800 argsu82elink ifu800 link then link tostring link singularform \' \'..link..\' \'..singularform..\' \' pluralform \' \'..link..\' \'..pluralform..\' \' likelyform \' \'..link..\' \'..likelyform..\' \' endu800 ifu800 args 2u800 then return pluralform endu800 local detect pu800u82e_main args ifu800 detect nilu800 then return \"\" return blank onu800 complete failure endu800 ifu800 detect singular then return singularform elseif detect likelyplural then return likelyform else return pluralform endu800 endu800 function pu800u82emain frame local args getargs frame setfarsiarguments args \'no_comma\' \'u8d8a8u8d8afu8d988u8d986 u8daa9u8d8a7u8d985u8d8a7\' \'any_comma\' \'u8d987u8d8b1 u8daa9u8d8a7u8d985u8d8a7\' \'no_and\' \'u8d8a8u8d8afu8d988u8d986 u8d988\' \'parse_links \'u8d8aau8d8acu8d8b2u8db8cu8d987 u8d9beu8db8cu8d988u8d986u8d8afu8d987u8d8a7\' foru800 template return 1u800 ifu800 singular blank ifu800 plural oru800 empty local result pu800u82e_main args ifu800 result nilu800 then return 1u800 endu800 return result singular andu800 1u800 oru800 \"\" endu800 function pu800u82epluralize frame local args getargs frame setfarsiarguments args \'no_comma\' \'u8d8a8u8d8afu8d988u8d986 u8daa9u8d8a7u8d985u8d8a7\' \'any_comma\' \'u8d987u8d8b1 u8daa9u8d8a7u8d985u8d8a7\' \'no_and\' \'u8d8a8u8d8afu8d988u8d986 u8d988\' \'parse_links \'u8d8aau8d8acu8d8b2u8db8cu8d987 u8d9beu8db8cu8d988u8d986u8d8afu8d987u8d8a7\' \'singular\' \'u8d985u8d981u8d8b1u8d8af\' \'plural\' \'u8d8acu8d985u8d8b9\' \'likely\' \'u8d985u8d8adu8d8aau8d985u8d984\' \'link\' \'u8d9beu8db8cu8d988u8d986u8d8af\' return pu800u82e_pluralize args endu800 return pu800 '),
(371, 'distinguish', ' local mhatnote require \'module hatnote\' local mhatlist require \'module hatnote list\' local marguments initialize lazily local mtabletools initialize lazily local libraryutil require \'libraryutil\' local checktype libraryutilu82echecktype local pu800 function pu800u82edistinguish frame marguments require \'module arguments mtabletools require \'module tabletools local args margumentsu82egetargs frame local selfref argsu82eselfref local text argsu82etext args mtabletoolsu82ecompresssparsearray args return pu800u82e_distinguish args text selfref endu800 function pu800u82e_distinguish args text selfref checktype \"_distinguish\" 1u800 args \'table\' ifu800 #args 0u800 andu800 notu800 text then return   endu800 local text stringu82eformat \'u8d8a8u8d8a7 su800 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 u8d986u8d8b4u8d988u8d8af.\' text oru800 mhatlistu82eorlist args true hnoptions selfref selfref return mhatnoteu82e_hatnote text hnoptions endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(372, 'documentation', ' this module implements documentation . getu800 required modules. local getargs require \'module arguments .getargs getu800 theu800 config table. local cfgu800 mwu800u82eloaddata \'module documentation config\' local pu800 often used functions. local ugsub mwu800u82eustringu82egsub helper functions these areu800 defined asu800 local functions butu800 areu800 made available inu800 theu800 pu800 table foru800 testing purposes. local function message cfgkey valarray expecttype gets au800 message from theu800 cfgu800 table andu800 formats itu800 ifu800 appropriate. theu800 function raises anu800 error ifu800 theu800 value from theu800 cfgu800 table isu800 notu800 ofu800 theu800 type expecttype. theu800 default type foru800 expecttype isu800 \'string\'. ifu800 theu800 table valarray isu800 present strings such asu800 1u800 2u800 etcu800. inu800 theu800 message areu800 substituted with values from theu800 table keys 1u800 2u800 etcu800. foru800 example ifu800 theu800 message \"foou800 message\" hadu800 theu800 value \'foou800 2u800 baru800 1u800.\' message \'foou800 message\' \'bazu800\' \'quxu800\' would return \"foou800 quxu800 baru800 bazu800.\" local msgu800 cfgu800 cfgkey expecttype expecttype oru800 \'string\' ifu800 type msgu800 expecttype then error \'message type error inu800 message cfgu800.\' .. cfgkey .. \' \' .. expecttype .. \' expected gotu800 \' .. type msgu800 .. \' \' 2u800 endu800 ifu800 notu800 valarray then return msgu800 endu800 local function getmessageval match match tonumber match return valarray match oru800 error \'message nou800 value found foru800 keyu800 \' .. match .. \' inu800 message cfgu800.\' .. cfgkey 4u800 endu800 return ugsub msgu800 \' 1u800 9u800 0u800 9u800 * \' getmessageval endu800 pu800u82emessage message local function makewikilink page display ifu800 display then return mwu800u82eustringu82eformat \' su800 su800 \' page display else return mwu800u82eustringu82eformat \' su800 \' page endu800 endu800 pu800u82emakewikilink makewikilink local function makecategorylink catu800 sort local catns mwu800u82esiteu82enamespaces 14u800 .name return makewikilink catns .. \' \' .. catu800 sort endu800 pu800u82emakecategorylink makecategorylink local function makeurllink urlu800 display return mwu800u82eustringu82eformat \' su800 su800 \' urlu800 display endu800 pu800u82emakeurllink makeurllink local function maketoolbar ... local retu800 local limu800 select \'#\' ... ifu800 limu800 1u800 then return nilu800 endu800 foru800 iu800 1u800 limu800 dou800 retu800 #retu800 1u800 select iu800 ... endu800 \'documentation toolbar\' return \' \' .. tableu82econcat retu800 \' &#124u800; \' .. \' \' endu800 pu800u82emaketoolbar maketoolbar argument processing local function makeinvokefunc funcname return function frame local args getargs frame valuefunc function keyu800 value ifu800 type value \'string\' then value value match \' su800* . su800* \' remove whitespace. ifu800 keyu800 \'heading\' oru800 value   then return value else return nilu800 endu800 else return value endu800 endu800 return pu800 funcname args endu800 endu800 entry points function pu800u82enonexistent frame ifu800 mwu800u82etitleu82egetcurrenttitle .subpagetext \'testcases then return frame expandtemplate title \'module test cases notice\' else return pu800u82emain frame endu800 endu800 pu800u82emain makeinvokefunc \'_main\' function pu800u82e_main args this function defines logic flow foru800 theu800 module. args table ofu800 arguments passed byu800 theu800 user local envu800 pu800u82egetenvironment args local root mwu800u82ehtmlu82ecreate root wikitext pu800u82e_getmodulewikitext args envu800 wikitext pu800u82eprotectiontemplate envu800 wikitext pu800u82esandboxnotice args envu800 tagu800 \'divu800\' \'documentation container\' addclass message \'container\' attr \'role\' \'complementary\' attr \'aria labelledby\' argsu82eheading   andu800 \'documentation heading\' oru800 nilu800 attr \'aria label\' argsu82eheading   andu800 \'documentation\' oru800 nilu800 newline tagu800 \'divu800\' \'documentation\' addclass message \'main divu800 classes newline wikitext pu800u82e_startbox args envu800 wikitext pu800u82e_content args envu800 tagu800 \'divu800\' \'documentation clear\' addclass message \'clear\' done newline done wikitext pu800u82e_endbox args envu800 done wikitext pu800u82eaddtrackingcategories envu800 \'module documentation stylesu82ecssu800 return mwu800u82egetcurrentframe extensiontag \'templatestyles   srcu800 cfgu800 \'templatestyles .. tostring root endu800 environment settings function pu800u82egetenvironment args returns au800 table with information about theu800 environment including title objects andu800 other namespace oru800 path related data. args table ofu800 arguments passed byu800 theu800 user title objects include envu800u82etitle theu800 page weu800 areu800 making documentation foru800 usually theu800 current title envu800u82etemplatetitle theu800 template oru800 module file etcu800. envu800u82edoctitle theu800 docu800 subpage. envu800u82esandboxtitle theu800 sandbox subpage. envu800u82etestcasestitle theu800 testcases subpage. data includes envu800u82eprotectionlevels theu800 protection levels table ofu800 theu800 title object. envu800u82esubjectspace theu800 number ofu800 theu800 title title\'su800 subject namespace. envu800u82edocspace theu800 number ofu800 theu800 namespace theu800 title puts itsu800 documentation inu800. envu800u82edocpagebase theu800 text ofu800 theu800 base page ofu800 theu800 docu800 sandbox andu800 testcases pages with namespace. envu800u82ecompareurl urlu800 ofu800 theu800 special comparepages page comparing theu800 sandbox with theu800 template. allu800 table lookups areu800 passed through pcall sou800 that errors areu800 caught. ifu800 anu800 error occurs theu800 value returned will beu800 nilu800. local envu800 envfuncs setu800 upu800 theu800 metatable. ifu800 triggered weu800 call theu800 corresponding function inu800 theu800 envfuncs table. theu800 value returned byu800 that function isu800 memoized inu800 theu800 envu800 table sou800 that weu800 donu800\'tu800 call anyu800 ofu800 theu800 functions more than once. nils wonu800\'tu800 beu800 memoized. setmetatable envu800 __index function tu800 keyu800 local envfunc envfuncs keyu800 ifu800 envfunc then local success valu800 pcall envfunc ifu800 success then envu800 keyu800 valu800 memoise theu800 value. return valu800 endu800 endu800 return nilu800 endu800 function envfuncsu82etitle theu800 title object foru800 theu800 current page oru800 au800 test page passed with argsu82epage. local title local titlearg argsu82epage ifu800 titlearg then title mwu800u82etitleu82enewu800 titlearg else title mwu800u82etitleu82egetcurrenttitle endu800 return title endu800 function envfuncsu82etemplatetitle theu800 template oru800 module etcu800. title object. messages \'sandbox subpage\' \'sandbox\' \'testcases subpage\' \'testcases local subjectspace envu800u82esubjectspace local title envu800u82etitle local subpage titleu82esubpagetext ifu800 subpage message \'sandbox subpage\' oru800 subpage message \'testcases subpage\' then return mwu800u82etitleu82emaketitle subjectspace titleu82ebasetext else return mwu800u82etitleu82emaketitle subjectspace titleu82etext endu800 endu800 function envfuncsu82edoctitle title object ofu800 theu800 docu800 subpage. messages \'docu800 subpage\' \'docu800\' local title envu800u82etitle local docname args 1u800 user specified docu800 page. local docpage ifu800 docname then docpage docname else docpage envu800u82edocpagebase .. \' \' .. message \'docu800 subpage\' endu800 return mwu800u82etitleu82enewu800 docpage endu800 function envfuncsu82esandboxtitle title object foru800 theu800 sandbox subpage. messages \'sandbox subpage\' \'sandbox\' return mwu800u82etitleu82enewu800 envu800u82edocpagebase .. \' \' .. message \'sandbox subpage\' endu800 function envfuncsu82etestcasestitle title object foru800 theu800 testcases subpage. messages \'testcases subpage\' \'testcases return mwu800u82etitleu82enewu800 envu800u82edocpagebase .. \' \' .. message \'testcases subpage\' endu800 function envfuncsu82eprotectionlevels theu800 protection levels table ofu800 theu800 title object. return envu800u82etitleu82eprotectionlevels endu800 function envfuncsu82esubjectspace theu800 subject namespace number. return mwu800u82esiteu82enamespaces envu800u82etitleu82enamespace .subjectu82eidu800 endu800 function envfuncsu82edocspace theu800 documentation namespace number. foru800 most namespaces this isu800 theu800 same asu800 theu800 subject namespace. however pages inu800 theu800 article file mediawiki oru800 category namespaces must have their docu800 sandbox andu800 testcases pages inu800 talk space. local subjectspace envu800u82esubjectspace ifu800 subjectspace 0u800 oru800 subjectspace 6u800 oru800 subjectspace 8u800 oru800 subjectspace 14u800 then return subjectspace 1u800 else return subjectspace endu800 endu800 function envfuncsu82edocpagebase theu800 base page ofu800 theu800 docu800 sandbox andu800 testcases subpages. foru800 some namespaces this isu800 theu800 talk page rather than theu800 template page. local templatetitle envu800u82etemplatetitle local docspace envu800u82edocspace local docspacetext mwu800u82esiteu82enamespaces docspace .name assemble theu800 link. docspace isu800 never theu800 main namespace sou800 weu800 canu800 hardcode theu800 colon. return docspacetext .. \' \' .. templatetitleu82etext endu800 function envfuncsu82ecompareurl diff link between theu800 sandbox andu800 theu800 main template using special comparepages . local templatetitle envu800u82etemplatetitle local sandboxtitle envu800u82esandboxtitle ifu800 templatetitleu82eexists andu800 sandboxtitleu82eexists then local compareurl mwu800u82euriu800u82efullurl \'special comparepages page1 templatetitleu82eprefixedtext page2 sandboxtitleu82eprefixedtext return tostring compareurl else return nilu800 endu800 endu800 return envu800 endu800 auxiliary templates pu800u82egetmodulewikitext makeinvokefunc \'_getmodulewikitext\' function pu800u82e_getmodulewikitext args envu800 local currenttitle mwu800u82etitleu82egetcurrenttitle ifu800 currenttitleu82econtentmodel \'scribunto\' then return endu800 pcall require currenttitleu82eprefixedtext ifu800 itu800 fails weu800 donu800\'tu800 care local modulewikitext packageu82eloaded \"module module wikitext\" ifu800 modulewikitext then return modulewikitextu82emain endu800 endu800 function pu800u82esandboxnotice args envu800 generates au800 sandbox notice foru800 display above sandbox pages. args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'sandbox notice image\' \' image sandboxu82esvgu800 50px altu800 link \' \'sandbox notice blurb\' \'this isu800 theu800 1u800 foru800 2u800.\' \'sandbox notice diff blurb\' \'this isu800 theu800 1u800 foru800 2u800 3u800 .\' \'sandbox notice pagetype template\' \' u8d8a7u8d985u8d8a7u8d985u8d8aau8e2808cu8d9beu8d8afu8db8cu8d8a7 template test cases template sandbox page\' \'sandbox notice pagetype module\' \' u8d8a7u8d985u8d8a7u8d985u8d8aau8e2808cu8d9beu8d8afu8db8cu8d8a7 template test cases module sandbox page\' \'sandbox notice pagetype other\' \'sandbox page\' \'sandbox notice compare link display\' \'diff\' \'sandbox notice testcases blurb\' \'seeu800 also theu800 companion subpage foru800 1u800.\' \'sandbox notice testcases link display\' \'test cases \'sandbox category\' \'template sandboxes local title envu800u82etitle local sandboxtitle envu800u82esandboxtitle local templatetitle envu800u82etemplatetitle local subjectspace envu800u82esubjectspace ifu800 notu800 subjectspace andu800 title andu800 sandboxtitle andu800 templatetitle andu800 mwu800u82etitleu82eequals title sandboxtitle then return nilu800 endu800 build theu800 table ofu800 arguments tou800 pass tou800 ombox . weu800 need just twou800 fields \"image\" andu800 \"text\". local omargs omargsu82eimage message \'sandbox notice image\' getu800 theu800 text. weu800 start with theu800 opening blurb which isu800 something like \"this isu800 theu800 template sandbox foru800 template foou800 diff .\" local text   local pagetype ifu800 subjectspace 10u800 then pagetype message \'sandbox notice pagetype template\' elseif subjectspace 828u800 then pagetype message \'sandbox notice pagetype module\' else pagetype message \'sandbox notice pagetype other\' endu800 local templatelink makewikilink templatetitleu82eprefixedtext local compareurl envu800u82ecompareurl ifu800 compareurl then local comparedisplay message \'sandbox notice compare link display\' local comparelink makeurllink compareurl comparedisplay text text .. message \'sandbox notice diff blurb\' pagetype templatelink comparelink else text text .. message \'sandbox notice blurb\' pagetype templatelink endu800 getu800 theu800 test cases page blurb ifu800 theu800 page exists. this isu800 something like \"seeu800 also theu800 companion subpage foru800 template foou800 testcases test cases .\" local testcasestitle envu800u82etestcasestitle ifu800 testcasestitle andu800 testcasestitleu82eexists then ifu800 testcasestitleu82econtentmodel \"scribunto\" then local testcaseslinkdisplay message \'sandbox notice testcases link display\' local testcasesrunlinkdisplay message \'sandbox notice testcases runu800 link display\' local testcaseslink makewikilink testcasestitleu82eprefixedtext testcaseslinkdisplay local testcasesrunlink makewikilink testcasestitleu82etalkpagetitleu82eprefixedtext testcasesrunlinkdisplay text text .. \' \' .. message \'sandbox notice testcases runu800 blurb\' testcaseslink testcasesrunlink else local testcaseslinkdisplay message \'sandbox notice testcases link display\' local testcaseslink makewikilink testcasestitleu82eprefixedtext testcaseslinkdisplay text text .. \' \' .. message \'sandbox notice testcases blurb\' testcaseslink endu800 endu800 addu800 theu800 sandbox tou800 theu800 sandbox category. omargsu82etext text .. makecategorylink message \'sandbox category\' \'documentation clear\' return \' \' .. require \'module message boxu800\' .main \'ombox\' omargs endu800 function pu800u82eprotectiontemplate envu800 generates theu800 padlock icon inu800 theu800 topu800 right. envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'protection template\' \'ppu800 template\' \'protection template args docusage \'yesu800 local protectionlevels envu800u82eprotectionlevels ifu800 notu800 protectionlevels then return nilu800 endu800 local editprot protectionlevelsu82eedit andu800 protectionlevelsu82eedit 1u800 local moveprot protectionlevelsu82emove andu800 protectionlevelsu82emove 1u800 ifu800 editprot then theu800 page isu800 edit protected. return require \'module protection banner\' ._main message \'protection reason edit\' small true elseif moveprot andu800 moveprot \'autoconfirmed\' then theu800 page isu800 move protected butu800 notu800 edit protected. exclude move protection with theu800 level \"autoconfirmed\" asu800 this isu800 equivalent tou800 nou800 move protection atu800 allu800. return require \'module protection banner\' ._main action \'move\' small true else return nilu800 endu800 endu800 start boxu800 pu800u82estartbox makeinvokefunc \'_startbox\' function pu800u82e_startbox args envu800 this function generates theu800 start boxu800. args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment theu800 actual work isu800 done byu800 pu800u82emakestartboxlinksdata andu800 pu800u82erenderstartboxlinks which make theu800 view edit history purge links andu800 byu800 pu800u82emakestartboxdata andu800 pu800u82erenderstartbox which generate theu800 boxu800 html. envu800 envu800 oru800 pu800u82egetenvironment args local links local content argsu82econtent ifu800 notu800 content oru800 args 1u800 then nou800 need tou800 include theu800 links ifu800 theu800 documentation isu800 onu800 theu800 template page itself. local linksdata pu800u82emakestartboxlinksdata args envu800 ifu800 linksdata then links pu800u82erenderstartboxlinks linksdata endu800 endu800 generate theu800 start boxu800 html. local data pu800u82emakestartboxdata args envu800 links ifu800 data then return pu800u82erenderstartbox data else user specified nou800 heading. return nilu800 endu800 endu800 function pu800u82emakestartboxlinksdata args envu800 does initial processing ofu800 data tou800 make theu800 view edit history purge links. args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'view link display\' \'view\' \'edit link display\' \'edit\' \'history link display\' \'history\' \'purge link display\' \'purge\' \'module preload\' \'template documentation preload module docu800\' \'docpage preload\' \'template documentation preload\' \'create link display\' \'create\' local subjectspace envu800u82esubjectspace local title envu800u82etitle local doctitle envu800u82edoctitle ifu800 notu800 title oru800 notu800 doctitle then return nilu800 endu800 ifu800 doctitleu82eisredirect then doctitle doctitleu82eredirecttarget endu800 local data datau82etitle title datau82edoctitle doctitle view display edit andu800 purge links ifu800 docu800 exists. datau82eviewlinkdisplay message \'view link display\' datau82eeditlinkdisplay message \'edit link display\' datau82ehistorylinkdisplay message \'history link display\' datau82epurgelinkdisplay message \'purge link display\' create link ifu800 docu800 doesn\'tu800 exist. local preload argsu82epreload ifu800 notu800 preload then ifu800 subjectspace 828u800 then module namespace preload message \'module preload\' else preload message \'docpage preload\' endu800 endu800 datau82epreload preload datau82ecreatelinkdisplay message \'create link display\' return data endu800 function pu800u82erenderstartboxlinks data generates theu800 view edit history purge oru800 create purge links from theu800 data table. data au800 table ofu800 data generated byu800 pu800u82emakestartboxlinksdata local function escapebrackets su800 escapes square brackets with html entities. su800 su800 gsub \' \' \'&#91u800;\' replace square brackets with html entities. su800 su800 gsub \' \' \'&#93u800;\' return su800 endu800 local retu800 local doctitle datau82edoctitle local title datau82etitle local purgelink makeurllink title fullurl action \'purge\' datau82epurgelinkdisplay ifu800 doctitleu82eexists then local viewlink makewikilink doctitleu82eprefixedtext datau82eviewlinkdisplay local editlink makeurllink doctitle fullurl action \'edit\' datau82eeditlinkdisplay local historylink makeurllink doctitle fullurl action \'history\' datau82ehistorylinkdisplay retu800 \' su800 su800 su800 su800 \' retu800 escapebrackets retu800 retu800 mwu800u82eustringu82eformat retu800 viewlink editlink historylink purgelink else local createlink makeurllink doctitle fullurl action \'edit\' preload datau82epreload datau82ecreatelinkdisplay retu800 \' su800 su800 \' retu800 escapebrackets retu800 retu800 mwu800u82eustringu82eformat retu800 createlink purgelink endu800 return retu800 endu800 function pu800u82emakestartboxdata args envu800 links does initial processing ofu800 data tou800 pass tou800 theu800 start boxu800 render function pu800u82erenderstartbox. args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment links au800 string containing theu800 view edit history purge links could beu800 nilu800 ifu800 there there\'su800 anu800 error. messages \'documentation icon wikitext\' \' file test template info icon version 2u800 .svgu800 50px link altu800 \' \'template namespace heading\' \'template documentation\' \'module namespace heading\' \'module documentation\' \'file namespace heading\' \'summary\' \'other namespaces heading\' \'documentation\' \'testcases create link display\' \'create\' local subjectspace envu800u82esubjectspace ifu800 notu800 subjectspace then default tou800 anu800 \"other namespaces\" namespace sou800 that weu800 getu800 atu800 least some output ifu800 anu800 error occurs. subjectspace 2u800 endu800 local data heading local heading argsu82eheading blank values areu800 notu800 removed. ifu800 heading   then donu800\'tu800 display theu800 start boxu800 ifu800 theu800 heading argu800 isu800 defined butu800 blank. return nilu800 endu800 ifu800 heading then datau82eheading heading elseif subjectspace 10u800 then template namespace datau82eheading message \'documentation icon wikitext\' .. \' \' .. message \'template namespace heading\' elseif subjectspace 828u800 then module namespace datau82eheading message \'documentation icon wikitext\' .. \' \' .. message \'module namespace heading\' elseif subjectspace 6u800 then file namespace datau82eheading message \'file namespace heading\' else datau82eheading message \'other namespaces heading\' endu800 heading cssu800 local headingstyle args \'heading style\' ifu800 headingstyle then datau82eheadingstyletext headingstyle else \'documentation heading\' datau82eheadingclass message \'main divu800 heading class endu800 data foru800 theu800 view edit history purge oru800 create links. ifu800 links then \'mwu800 editsection like plainlinks datau82elinksclass message \'start boxu800 link classes datau82elinks links endu800 return data endu800 function pu800u82erenderstartbox data renders theu800 start boxu800 html. data au800 table ofu800 data generated byu800 pu800u82emakestartboxdata. local sbox mwu800u82ehtmlu82ecreate \'divu800\' sbox \'documentation startbox\' addclass message \'start boxu800 class newline tagu800 \'span\' addclass datau82eheadingclass attr \'idu800\' \'documentation heading\' csstext datau82eheadingstyletext wikitext datau82eheading local links datau82elinks ifu800 links then sbox tagu800 \'span\' addclass datau82elinksclass attr \'idu800\' datau82elinksid wikitext links endu800 return tostring sbox endu800 documentation content pu800u82econtent makeinvokefunc \'_content\' function pu800u82e_content args envu800 displays theu800 documentation contents args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment envu800 envu800 oru800 pu800u82egetenvironment args local doctitle envu800u82edoctitle local content argsu82econtent ifu800 notu800 content andu800 doctitle andu800 doctitleu82eexists then content argsu82e_content oru800 mwu800u82egetcurrentframe expandtemplate title doctitleu82eprefixedtext endu800 theu800 line breaks below areu800 necessary sou800 that \" headings \" atu800 theu800 start andu800 endu800 ofu800 docs areu800 interpreted correctly. return \' nu800\' .. content oru800   .. \' nu800\' endu800 pu800u82econtenttitle makeinvokefunc \'_contenttitle\' function pu800u82e_contenttitle args envu800 envu800 envu800 oru800 pu800u82egetenvironment args local doctitle envu800u82edoctitle ifu800 notu800 argsu82econtent andu800 doctitle andu800 doctitleu82eexists then return doctitleu82eprefixedtext else return   endu800 endu800 endu800 boxu800 pu800u82eendbox makeinvokefunc \'_endbox\' function pu800u82e_endbox args envu800 this function generates theu800 endu800 boxu800 also known asu800 theu800 link boxu800 . args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment getu800 environment data. envu800 envu800 oru800 pu800u82egetenvironment args local subjectspace envu800u82esubjectspace local doctitle envu800u82edoctitle ifu800 notu800 subjectspace oru800 notu800 doctitle then return nilu800 endu800 check whether weu800 should output theu800 endu800 boxu800 atu800 allu800. addu800 theu800 endu800 boxu800 byu800 default ifu800 theu800 documentation exists oru800 ifu800 weu800 areu800 inu800 theu800 user module oru800 template namespaces. local linkbox args \'link boxu800\' ifu800 linkbox \'offu800\' oru800 notu800 doctitleu82eexists oru800 subjectspace 2u800 oru800 subjectspace 828u800 oru800 subjectspace 10u800 then return nilu800 endu800 assemble theu800 link boxu800. local text   ifu800 linkbox then text text .. linkbox else text text .. pu800u82emakedocpageblurb args envu800 oru800   \"this documentation isu800 transcluded from foou800 .\" ifu800 subjectspace 2u800 oru800 subjectspace 10u800 oru800 subjectspace 828u800 then weu800 areu800 inu800 theu800 user template oru800 module namespaces. addu800 sandbox andu800 testcases links. \"editors canu800 experiment inu800 this template template\'su800 sandbox andu800 testcases pages.\" text text .. pu800u82emakeexperimentblurb args envu800 oru800   .. \' \' ifu800 notu800 argsu82econtent andu800 notu800 args 1u800 then \"please addu800 categories tou800 theu800 docu800 subpage.\" donu800\'tu800 show this message with inline docs oru800 with anu800 explicitly specified docu800 page asu800 then itu800 isu800 unclear where tou800 addu800 theu800 categories. text text .. pu800u82emakecategoriesblurb args envu800 oru800   endu800 text text .. \' \' .. pu800u82emakesubpagesblurb args envu800 oru800   \"subpages ofu800 this template\" endu800 endu800 local boxu800 mwu800u82ehtmlu82ecreate \'divu800\' \'documentation metadata\' boxu800 attr \'role\' \'note\' addclass message \'endu800 boxu800 class \'plainlinks addclass message \'endu800 boxu800 plainlinks wikitext text done return \' nu800\' .. tostring boxu800 endu800 function pu800u82emakedocpageblurb args envu800 makes theu800 blurb \"this documentation isu800 transcluded from template foou800 edit history \". args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'edit link display\' \'edit\' \'history link display\' \'history\' \'transcluded from blurb\' \'theu800 above u8d8a7u8d985u8d8a7u8d985u8d8aau8e2808cu8d9beu8d8afu8db8cu8d8a7 template documentation documentation isu800 help transclusion transcluded from 1u800.\' \'module preload\' \'template documentation preload module docu800\' \'create link display\' \'create\' \'create module docu800 blurb\' \'youu800 might want tou800 1u800 au800 documentation page foru800 this u8d8a7u8d985u8d8a7u8d985u8d8aau8e2808cu8d9beu8d8afu8db8cu8d8a7 luau800 scribunto module .\' local doctitle envu800u82edoctitle ifu800 notu800 doctitle then return nilu800 endu800 local retu800 ifu800 doctitleu82eexists then docu800 exists; link tou800 itu800. local doclink makewikilink doctitleu82eprefixedtext local editurl doctitle fullurl action \'edit\' local editdisplay message \'edit link display\' local editlink makeurllink editurl editdisplay local historyurl doctitle fullurl action \'history\' local historydisplay message \'history link display\' local historylink makeurllink historyurl historydisplay retu800 message \'transcluded from blurb\' doclink .. \' \' .. maketoolbar editlink historylink .. \' \' elseif envu800u82esubjectspace 828u800 then docu800 does notu800 exist; asku800 tou800 create itu800. local createurl doctitle fullurl action \'edit\' preload message \'module preload\' local createdisplay message \'create link display\' local createlink makeurllink createurl createdisplay retu800 message \'create module docu800 blurb\' createlink .. \' \' endu800 return retu800 endu800 function pu800u82emakeexperimentblurb args envu800 renders theu800 text \"editors canu800 experiment inu800 this template template\'su800 sandbox edit diff andu800 testcases edit pages.\" args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'sandbox link display\' \'sandbox\' \'sandbox edit link display\' \'edit\' \'compare link display\' \'diff\' \'module sandbox preload\' \'template documentation preload module sandbox\' \'template sandbox preload\' \'template documentation preload sandbox\' \'sandbox create link display\' \'create\' \'mirror edit summary\' \'create sandbox version ofu800 1u800\' \'mirror link display\' \'mirror\' \'mirror link preload\' \'template documentation mirror\' \'sandbox link display\' \'sandbox\' \'testcases link display\' \'testcases \'testcases edit link display\' \'edit\' \'template sandbox preload\' \'template documentation preload sandbox\' \'testcases create link display\' \'create\' \'testcases link display\' \'testcases \'testcases edit link display\' \'edit\' \'module testcases preload\' \'template documentation preload module testcases \'template testcases preload\' \'template documentation preload testcases \'experiment blurb module\' \'editors canu800 experiment inu800 this module module\'su800 1u800 andu800 2u800 pages.\' \'experiment blurb template\' \'editors canu800 experiment inu800 this template template\'su800 1u800 andu800 2u800 pages.\' local subjectspace envu800u82esubjectspace local templatetitle envu800u82etemplatetitle local sandboxtitle envu800u82esandboxtitle local testcasestitle envu800u82etestcasestitle local templatepage templatetitleu82eprefixedtext ifu800 notu800 subjectspace oru800 notu800 templatetitle oru800 notu800 sandboxtitle oru800 notu800 testcasestitle then return nilu800 endu800 make links. local sandboxlinks testcaseslinks ifu800 sandboxtitleu82eexists then local sandboxpage sandboxtitleu82eprefixedtext local sandboxdisplay message \'sandbox link display\' local sandboxlink makewikilink sandboxpage sandboxdisplay local sandboxediturl sandboxtitle fullurl action \'edit\' local sandboxeditdisplay message \'sandbox edit link display\' local sandboxeditlink makeurllink sandboxediturl sandboxeditdisplay local compareurl envu800u82ecompareurl local comparelink ifu800 compareurl then local comparedisplay message \'compare link display\' comparelink makeurllink compareurl comparedisplay endu800 sandboxlinks sandboxlink .. \' \' .. maketoolbar sandboxeditlink comparelink else local sandboxpreload ifu800 subjectspace 828u800 then sandboxpreload message \'module sandbox preload\' else sandboxpreload message \'template sandbox preload\' endu800 local sandboxcreateurl sandboxtitle fullurl action \'edit\' preload sandboxpreload local sandboxcreatedisplay message \'sandbox create link display\' local sandboxcreatelink makeurllink sandboxcreateurl sandboxcreatedisplay local mirrorsummary message \'mirror edit summary\' makewikilink templatepage local mirrorpreload message \'mirror link preload\' local mirrorurl sandboxtitle fullurl action \'edit\' preload mirrorpreload summary mirrorsummary ifu800 subjectspace 828u800 then mirrorurl sandboxtitle fullurl action \'edit\' preload templatetitleu82eprefixedtext summary mirrorsummary endu800 local mirrordisplay message \'mirror link display\' local mirrorlink makeurllink mirrorurl mirrordisplay sandboxlinks message \'sandbox link display\' .. \' \' .. maketoolbar sandboxcreatelink mirrorlink endu800 ifu800 testcasestitleu82eexists then local testcasespage testcasestitleu82eprefixedtext local testcasesdisplay message \'testcases link display\' local testcaseslink makewikilink testcasespage testcasesdisplay local testcasesediturl testcasestitle fullurl action \'edit\' local testcaseseditdisplay message \'testcases edit link display\' local testcaseseditlink makeurllink testcasesediturl testcaseseditdisplay foru800 modules addu800 testcases runu800 link ifu800 exists ifu800 testcasestitleu82econtentmodel \"scribunto\" andu800 testcasestitleu82etalkpagetitle andu800 testcasestitleu82etalkpagetitleu82eexists then local testcasesrunlinkdisplay message \'testcases runu800 link display\' local testcasesrunlink makewikilink testcasestitleu82etalkpagetitleu82eprefixedtext testcasesrunlinkdisplay testcaseslinks testcaseslink .. \' \' .. maketoolbar testcaseseditlink testcasesrunlink else testcaseslinks testcaseslink .. \' \' .. maketoolbar testcaseseditlink endu800 else local testcasespreload ifu800 subjectspace 828u800 then testcasespreload message \'module testcases preload\' else testcasespreload message \'template testcases preload\' endu800 local testcasescreateurl testcasestitle fullurl action \'edit\' preload testcasespreload local testcasescreatedisplay message \'testcases create link display\' local testcasescreatelink makeurllink testcasescreateurl testcasescreatedisplay testcaseslinks message \'testcases link display\' .. \' \' .. maketoolbar testcasescreatelink endu800 local messagename ifu800 subjectspace 828u800 then messagename \'experiment blurb module\' else messagename \'experiment blurb template\' endu800 return message messagename sandboxlinks testcaseslinks endu800 function pu800u82emakecategoriesblurb args envu800 generates theu800 text \"please addu800 categories tou800 theu800 docu800 subpage.\" args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'docu800 link display\' \' docu800\' \'addu800 categories blurb\' \'please addu800 categories tou800 theu800 1u800 subpage.\' local doctitle envu800u82edoctitle ifu800 notu800 doctitle then return nilu800 endu800 local docpathlink makewikilink doctitleu82eprefixedtext message \'docu800 link display\' return message \'addu800 categories blurb\' docpathlink endu800 function pu800u82emakesubpagesblurb args envu800 generates theu800 \"subpages ofu800 this template\" link. args au800 table ofu800 arguments passed byu800 theu800 user envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'template pagetype\' \'template\' \'module pagetype\' \'module\' \'default pagetype\' \'page\' \'subpages link display\' \'subpages ofu800 this 1u800\' local subjectspace envu800u82esubjectspace local templatetitle envu800u82etemplatetitle ifu800 notu800 subjectspace oru800 notu800 templatetitle then return nilu800 endu800 local pagetype ifu800 subjectspace 10u800 then pagetype message \'template pagetype\' elseif subjectspace 828u800 then pagetype message \'module pagetype\' else pagetype message \'default pagetype\' endu800 local subpageslink makewikilink \'special prefixindex \' .. templatetitleu82eprefixedtext .. \' \' message \'subpages link display\' pagetype return message \'subpages blurb\' subpageslink endu800 tracking categories function pu800u82eaddtrackingcategories envu800 check ifu800 documentation isu800 transcluded onu800 au800 docu800 oru800 testcases page. envu800 environment table containing title objects etcu800. generated with pu800u82egetenvironment messages \'display strange usage category\' true \'docu800 subpage\' \'docu800\' \'testcases subpage\' \'testcases \'strange usage category\' \'u8d8a7u8d985u8d8a7u8d985u8d8aau8e2808cu8d9beu8d8afu8db8cu8d8a7 pages with strange documentation usage\' testcases pages inu800 theu800 module namespace areu800 notu800 categorised asu800 they mayu800 have documentation transcluded automatically. local title envu800u82etitle local subjectspace envu800u82esubjectspace ifu800 notu800 title oru800 notu800 subjectspace then return nilu800 endu800 local subpage titleu82esubpagetext local retu800   ifu800 message \'display strange usage category\' nilu800 \'boolean\' andu800 subpage message \'docu800 subpage\' oru800 subjectspace 828u800 andu800 subpage message \'testcases subpage\' then retu800 retu800 .. makecategorylink message \'strange usage category\' endu800 return retu800 endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(373, 'documentation config', ' configuration foru800 module documentation here youu800 canu800 setu800 theu800 values ofu800 theu800 parameters andu800 messages used inu800 module documentation tou800 localise itu800 tou800 your wiki andu800 your language. unless specified otherwise values given here should beu800 string values. local cfgu800 dou800 notu800 edit this line. protection template configuration cfgu800 \'protection reason edit\' theu800 protection reason foru800 edit protected templates tou800 pass tou800 module protection banner . cfgu800 \'protection reason edit\' \'template\' sandbox notice configuration onu800 sandbox pages theu800 module canu800 display au800 template notifying users that theu800 current page isu800 au800 sandbox andu800 theu800 location ofu800 test cases pages etcu800. theu800 module decides whether theu800 page isu800 au800 sandbox oru800 notu800 based onu800 theu800 value ofu800 cfgu800 \'sandbox subpage\' . theu800 following settings configure theu800 messages that theu800 notices contains. cfgu800 \'sandbox notice image\' theu800 image displayed inu800 theu800 sandbox notice. cfgu800 \'sandbox notice image\' \' file sandboxu82esvgu800 50px altu800 link \' cfgu800 \'sandbox notice pagetype template\' cfgu800 \'sandbox notice pagetype module\' cfgu800 \'sandbox notice pagetype other\' theu800 page type ofu800 theu800 sandbox page. theu800 message that isu800 displayed depends onu800 theu800 current subject namespace. this message isu800 used inu800 either cfgu800 \'sandbox notice blurb\' oru800 cfgu800 \'sandbox notice diff blurb\' . cfgu800 \'sandbox notice pagetype template\' \' imamatpedia template test cases template sandbox page\' cfgu800 \'sandbox notice pagetype module\' \' imamatpedia template test cases module sandbox page\' cfgu800 \'sandbox notice pagetype other\' \'sandbox page\' cfgu800 \'sandbox notice blurb\' cfgu800 \'sandbox notice diff blurb\' cfgu800 \'sandbox notice diff display\' either cfgu800 \'sandbox notice blurb\' oru800 cfgu800 \'sandbox notice diff blurb\' isu800 theu800 opening sentence ofu800 theu800 sandbox notice. theu800 latter hasu800 au800 diff link butu800 theu800 former does notu800. 1u800 isu800 theu800 page type which isu800 either cfgu800 \'sandbox notice pagetype template\' cfgu800 \'sandbox notice pagetype module\' oru800 cfgu800 \'sandbox notice pagetype other\' depending what namespace weu800 areu800 inu800. 2u800 isu800 au800 link tou800 theu800 main template page andu800 3u800 isu800 au800 diff link between theu800 sandbox andu800 theu800 main template. theu800 display value ofu800 theu800 diff link isu800 setu800 byu800 cfgu800 \'sandbox notice compare link display\' . cfgu800 \'sandbox notice blurb\' \'this isu800 theu800 1u800 foru800 2u800.\' cfgu800 \'sandbox notice diff blurb\' \'this isu800 theu800 1u800 foru800 2u800 3u800 .\' cfgu800 \'sandbox notice compare link display\' \'diff\' cfgu800 \'sandbox notice testcases blurb\' cfgu800 \'sandbox notice testcases link display\' cfgu800 \'sandbox notice testcases runu800 blurb\' cfgu800 \'sandbox notice testcases runu800 link display\' cfgu800 \'sandbox notice testcases blurb\' isu800 au800 sentence notifying theu800 user that there isu800 au800 test cases page corresponding tou800 this sandbox that they canu800 edit. 1u800 isu800 au800 link tou800 theu800 test cases page. cfgu800 \'sandbox notice testcases link display\' isu800 theu800 display value foru800 that link. cfgu800 \'sandbox notice testcases runu800 blurb\' isu800 au800 sentence notifying theu800 user that there isu800 au800 test cases page corresponding tou800 this sandbox that they canu800 edit along with au800 link tou800 runu800 itu800. 1u800 isu800 au800 link tou800 theu800 test cases page andu800 2u800 isu800 au800 link tou800 theu800 page tou800 runu800 itu800. cfgu800 \'sandbox notice testcases runu800 link display\' isu800 theu800 display value foru800 theu800 link tou800 runu800 theu800 test cases. cfgu800 \'sandbox notice testcases blurb\' \'seeu800 also theu800 companion subpage foru800 1u800.\' cfgu800 \'sandbox notice testcases link display\' \'test cases cfgu800 \'sandbox notice testcases runu800 blurb\' \'seeu800 also theu800 companion subpage foru800 1u800 2u800 .\' cfgu800 \'sandbox notice testcases runu800 link display\' \'runu800\' cfgu800 \'sandbox category\' au800 category tou800 addu800 tou800 allu800 template sandboxes. cfgu800 \'sandbox category\' \'template sandboxes start boxu800 configuration cfgu800 \'documentation icon wikitext\' theu800 wikitext foru800 theu800 icon shown atu800 theu800 topu800 ofu800 theu800 template. cfgu800 \'documentation icon wikitext\' \' file test template info icon version 2u800 .svgu800 50px link altu800 \' cfgu800 \'template namespace heading\' theu800 heading shown inu800 theu800 template namespace. cfgu800 \'template namespace heading\' \'template documentation\' cfgu800 \'module namespace heading\' theu800 heading shown inu800 theu800 module namespace. cfgu800 \'module namespace heading\' \'module documentation\' cfgu800 \'file namespace heading\' theu800 heading shown inu800 theu800 file namespace. cfgu800 \'file namespace heading\' \'summary\' cfgu800 \'other namespaces heading\' theu800 heading shown inu800 other namespaces. cfgu800 \'other namespaces heading\' \'documentation\' cfgu800 \'view link display\' theu800 text tou800 display foru800 \"view\" links. cfgu800 \'view link display\' \'view\' cfgu800 \'edit link display\' theu800 text tou800 display foru800 \"edit\" links. cfgu800 \'edit link display\' \'edit\' cfgu800 \'history link display\' theu800 text tou800 display foru800 \"history\" links. cfgu800 \'history link display\' \'history\' cfgu800 \'purge link display\' theu800 text tou800 display foru800 \"purge\" links. cfgu800 \'purge link display\' \'purge\' cfgu800 \'create link display\' theu800 text tou800 display foru800 \"create\" links. cfgu800 \'create link display\' \'create\' link boxu800 endu800 boxu800 configuration cfgu800 \'transcluded from blurb\' notice displayed when theu800 docs areu800 transcluded from another page. 1u800 isu800 au800 wikilink tou800 that page. cfgu800 \'transcluded from blurb\' \'theu800 above imamatpedia template documentation documentation isu800 help transclusion transcluded from 1u800.\' cfgu800 \'create module docu800 blurb\' notice displayed inu800 theu800 module namespace when theu800 documentation subpage does notu800 exist. 1u800 isu800 au800 link tou800 create theu800 documentation page with theu800 preload cfgu800 \'module preload\' andu800 theu800 display cfgu800 \'create link display\' . cfgu800 \'create module docu800 blurb\' \'youu800 might want tou800 1u800 au800 documentation page foru800 this imamatpedia luau800 scribunto module .\' experiment blurb configuration cfgu800 \'experiment blurb template\' cfgu800 \'experiment blurb module\' theu800 experiment blurb isu800 theu800 text inviting editors tou800 experiment inu800 sandbox andu800 test cases pages. itu800 isu800 only shown inu800 theu800 template andu800 module namespaces. with theu800 default english settings itu800 might look like this editors canu800 experiment inu800 this template template\'su800 sandbox edit diff andu800 testcases edit pages. inu800 this example \"sandbox\" \"edit\" \"diff\" \"testcases\" andu800 \"edit\" would allu800 beu800 links. there areu800 twou800 versions cfgu800 \'experiment blurb template\' andu800 cfgu800 \'experiment blurb module\' depending onu800 what namespace weu800 areu800 inu800. parameters 1u800 isu800 au800 link tou800 theu800 sandbox page. ifu800 theu800 sandbox exists itu800 isu800 inu800 theu800 following format cfgu800 \'sandbox link display\' cfgu800 \'sandbox edit link display\' cfgu800 \'compare link display\' ifu800 theu800 sandbox doesn\'tu800 exist itu800 isu800 inu800 theu800 format cfgu800 \'sandbox link display\' cfgu800 \'sandbox create link display\' cfgu800 \'mirror link display\' theu800 link foru800 cfgu800 \'sandbox create link display\' link preloads theu800 page with cfgu800 \'template sandbox preload\' oru800 cfgu800 \'module sandbox preload\' depending onu800 theu800 current namespace. theu800 link foru800 cfgu800 \'mirror link display\' loads au800 default edit summary ofu800 cfgu800 \'mirror edit summary\' . 2u800 isu800 au800 link tou800 theu800 test cases page. ifu800 theu800 test cases page exists itu800 isu800 inu800 theu800 following format cfgu800 \'testcases link display\' cfgu800 \'testcases edit link display\' cfgu800 \'testcases runu800 link display\' ifu800 theu800 test cases page doesn\'tu800 exist itu800 isu800 inu800 theu800 format cfgu800 \'testcases link display\' cfgu800 \'testcases create link display\' ifu800 theu800 test cases page doesn\'tu800 exist theu800 link foru800 cfgu800 \'testcases create link display\' preloads theu800 page with cfgu800 \'template testcases preload\' oru800 cfgu800 \'module testcases preload\' depending onu800 theu800 current namespace. cfgu800 \'experiment blurb template\' \"editors canu800 experiment inu800 this template template\'su800 1u800 andu800 2u800 pages.\" cfgu800 \'experiment blurb module\' \"editors canu800 experiment inu800 this module module\'su800 1u800 andu800 2u800 pages.\" sandbox link configuration cfgu800 \'sandbox subpage\' theu800 name ofu800 theu800 template subpage typically used foru800 sandboxes. cfgu800 \'sandbox subpage\' \'sandbox\' cfgu800 \'template sandbox preload\' preload file foru800 template sandbox pages. cfgu800 \'template sandbox preload\' \'template documentation preload sandbox\' cfgu800 \'module sandbox preload\' preload file foru800 luau800 module sandbox pages. cfgu800 \'module sandbox preload\' \'template documentation preload module sandbox\' cfgu800 \'sandbox link display\' theu800 text tou800 display foru800 \"sandbox\" links. cfgu800 \'sandbox link display\' \'sandbox\' cfgu800 \'sandbox edit link display\' theu800 text tou800 display foru800 sandbox \"edit\" links. cfgu800 \'sandbox edit link display\' \'edit\' cfgu800 \'sandbox create link display\' theu800 text tou800 display foru800 sandbox \"create\" links. cfgu800 \'sandbox create link display\' \'create\' cfgu800 \'compare link display\' theu800 text tou800 display foru800 \"compare\" links. cfgu800 \'compare link display\' \'diff\' cfgu800 \'mirror edit summary\' theu800 default edit summary tou800 useu800 when au800 user clicks theu800 \"mirror\" link. 1u800 isu800 au800 wikilink tou800 theu800 template page. cfgu800 \'mirror edit summary\' \'create sandbox version ofu800 1u800\' cfgu800 \'mirror link display\' theu800 text tou800 display foru800 \"mirror\" links. cfgu800 \'mirror link display\' \'mirror\' cfgu800 \'mirror link preload\' theu800 page tou800 preload when au800 user clicks theu800 \"mirror\" link. cfgu800 \'mirror link preload\' \'template documentation mirror\' test cases link configuration cfgu800 \'testcases subpage\' theu800 name ofu800 theu800 template subpage typically used foru800 test cases. cfgu800 \'testcases subpage\' \'testcases cfgu800 \'template testcases preload\' preload file foru800 template test cases pages. cfgu800 \'template testcases preload\' \'template documentation preload testcases cfgu800 \'module testcases preload\' preload file foru800 luau800 module test cases pages. cfgu800 \'module testcases preload\' \'template documentation preload module testcases cfgu800 \'testcases link display\' theu800 text tou800 display foru800 \"testcases\" links. cfgu800 \'testcases link display\' \'testcases cfgu800 \'testcases edit link display\' theu800 text tou800 display foru800 test cases \"edit\" links. cfgu800 \'testcases edit link display\' \'edit\' cfgu800 \'testcases runu800 link display\' theu800 text tou800 display foru800 test cases \"runu800\" links. cfgu800 \'testcases runu800 link display\' \'runu800\' cfgu800 \'testcases create link display\' theu800 text tou800 display foru800 test cases \"create\" links. cfgu800 \'testcases create link display\' \'create\' addu800 categories blurb configuration cfgu800 \'addu800 categories blurb\' text tou800 direct users tou800 addu800 categories tou800 theu800 docu800 subpage. notu800 used ifu800 theu800 \"content\" oru800 \"docname fedu800\" arguments areu800 setu800 asu800 then itu800 isu800 notu800 clear where tou800 addu800 theu800 categories. 1u800 isu800 au800 link tou800 theu800 docu800 subpage with au800 display value ofu800 cfgu800 \'docu800 link display\' . cfgu800 \'addu800 categories blurb\' \'addu800 categories tou800 theu800 1u800 subpage.\' cfgu800 \'docu800 link display\' theu800 text tou800 display when linking tou800 theu800 docu800 subpage. cfgu800 \'docu800 link display\' \' docu800\' subpages link configuration cfgu800 \'subpages blurb\' theu800 \"subpages ofu800 this template\" blurb. 1u800 isu800 au800 link tou800 theu800 main template template\'su800 subpages with au800 display value ofu800 cfgu800 \'subpages link display\' . inu800 theu800 english version this blurb isu800 simply theu800 link followed byu800 au800 period andu800 theu800 link display provides theu800 actual text. cfgu800 \'subpages blurb\' \' 1u800.\' cfgu800 \'subpages link display\' theu800 text tou800 display foru800 theu800 \"subpages ofu800 this page\" link. 1u800 isu800 cfgu800 \'template pagetype\' cfgu800 \'module pagetype\' oru800 cfgu800 \'default pagetype\' depending onu800 whether theu800 current page isu800 inu800 theu800 template namespace theu800 module namespace oru800 another namespace. cfgu800 \'subpages link display\' \'subpages ofu800 this 1u800\' cfgu800 \'template pagetype\' theu800 pagetype tou800 display foru800 template pages. cfgu800 \'template pagetype\' \'template\' cfgu800 \'module pagetype\' theu800 pagetype tou800 display foru800 luau800 module pages. cfgu800 \'module pagetype\' \'module\' cfgu800 \'default pagetype\' theu800 pagetype tou800 display foru800 pages other than templates oru800 luau800 modules. cfgu800 \'default pagetype\' \'page\' docu800 link configuration cfgu800 \'docu800 subpage\' theu800 name ofu800 theu800 subpage typically used foru800 documentation pages. cfgu800 \'docu800 subpage\' \'docu800\' cfgu800 \'docpage preload\' preload file foru800 template documentation pages inu800 allu800 namespaces. cfgu800 \'docpage preload\' \'template documentation preload\' cfgu800 \'module preload\' preload file foru800 luau800 module documentation pages. cfgu800 \'module preload\' \'template documentation preload module docu800\' html andu800 cssu800 configuration cfgu800 \'templatestyles theu800 name ofu800 theu800 templatestyles page where cssu800 isu800 kept. sandbox cssu800 will beu800 atu800 module documentation sandbox stylesu82ecssu800 when needed. cfgu800 \'templatestyles \'module documentation stylesu82ecssu800 cfgu800 \'container\' class which canu800 beu800 used tou800 setu800 flex oru800 grid cssu800 onu800 theu800 twou800 child divs documentation andu800 documentation metadata cfgu800 \'container\' \'documentation container\' cfgu800 \'main divu800 classes classes added tou800 theu800 main html \"divu800\" tagu800. cfgu800 \'main divu800 classes \'documentation\' cfgu800 \'main divu800 heading class class foru800 theu800 main heading foru800 templates andu800 modules andu800 assoc. talk spaces cfgu800 \'main divu800 heading class \'documentation heading\' cfgu800 \'start boxu800 class class foru800 theu800 start boxu800 cfgu800 \'start boxu800 class \'documentation startbox\' cfgu800 \'start boxu800 link classes classes used foru800 theu800 view edit history oru800 create links inu800 theu800 start boxu800. mwu800 editsection like isu800 peru800 imamatpedia village pump technical archive 117u800 cfgu800 \'start boxu800 link classes \'mwu800 editsection like plainlinks cfgu800 \'endu800 boxu800 class class foru800 theu800 endu800 boxu800. cfgu800 \'endu800 boxu800 class \'documentation metadata\' cfgu800 \'endu800 boxu800 plainlinks plainlinks cfgu800 \'endu800 boxu800 plainlinks \'plainlinks cfgu800 \'toolbar class class added foru800 toolbar links. cfgu800 \'toolbar class \'documentation toolbar\' cfgu800 \'clear\' just used tou800 clear things. cfgu800 \'clear\' \'documentation clear\' tracking category configuration cfgu800 \'display strange usage category\' setu800 tou800 true tou800 enable output ofu800 cfgu800 \'strange usage category\' ifu800 theu800 module isu800 used onu800 au800 docu800 subpage oru800 au800 testcases subpage. this should beu800 au800 boolean value either true oru800 false . cfgu800 \'display strange usage category\' true cfgu800 \'strange usage category\' category tou800 output ifu800 cfgu800 \'display strange usage category\' isu800 setu800 tou800 true andu800 theu800 module isu800 used onu800 au800 docu800 subpage oru800 au800 testcases subpage. cfgu800 \'strange usage category\' \'imamatpedia pages with strange documentation usage\' endu800 configuration donu800\'tu800 edit anything below this line. return cfgu800 '),
(374, 'documentation stylesu82ecssu800', ' * ppu800 small yesu800 * .documentation .documentation metadata border 1pxu800 solid #a2a9b1; background color #ecfcf4; clear both; .documentation margin 1emu800 0u800 0u800 0u800; padding 1emu800; .documentation metadata margin 0u800u82e2emu800 0u800; * same margin left right asu800 .documentation * font style italic; padding 0u800u82e4emu800 1emu800; * same padding left right asu800 .documentation * .documentation startbox padding bottom 3pxu800; border bottom 1pxu800 solid #aaau800; margin bottom 1exu800; .documentation heading font weight bold; font size 125u800 ; .documentation clear * donu800\'tu800 want things tou800 stick outu800 where they shouldn\'tu800. * clear both; .documentation toolbar font style normal; font size 85u800 ; media screen htmlu82eskin theme clientpref night .documentation htmlu82eskin theme clientpref night .documentation metadata background color #0b1e1c; media screen andu800 prefers color scheme dark htmlu82eskin theme clientpref osu800 .documentation htmlu82eskin theme clientpref osu800 .documentation metadata background color #0b1e1c; '),
(375, 'effective protection expiry', ' 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 '),
(376, 'effective protection level', ' local pu800 returns theu800 permission required tou800 perform au800 given action onu800 au800 given title. ifu800 nou800 title isu800 specified theu800 title ofu800 theu800 page being displayed isu800 used. u8db8cu8daa9 u8d8a8u8d8aeu8d8b4 u8d8a7u8d8b2 u8d8a7u8db8cu8d986 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8a8u8d8b1u8d8a7u8db8c u8d987u8d985u8d8a7u8d987u8d986u8daafu8db8c u8d8a8u8d8a7 u8d988u8d8b6u8d8b9u8db8cu8d8aa u8d8adu8d981u8d8a7u8d8b8u8d8aau8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7u8db8c u8d981u8d8a7u8d8b1u8d8b3u8db8c u8d8aau8d8bau8db8cu8db8cu8d8b1 u8daa9u8d8b1u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa. u8d8a7u8daafu8d8b1 u8d985u8db8cu8e2808cu8d8aeu8d988u8d8a7u8d987u8db8cu8d8af u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8b1u8d8a7 u8d8a8u8d987u8e2808cu8d8b1u8d988u8d8b2 u8daa9u8d986u8db8cu8d8afu8d88c u8d8afu8d982u8d8aa u8d8afu8d8a7u8d8b4u8d8aau8d987 u8d8a8u8d8a7u8d8b4u8db8cu8d8af u8daa9u8d987 u8d8a7u8d8b3u8d8aau8d8abu8d986u8d8a7u8db8c u8d981u8d8b6u8d8a7u8db8c u8d986u8d8a7u8d985 u8d8a7u8d984u8daafu8d988 u8d988 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8b1u8d8a7u8d985u8d8b4u8d8aeu8d8b5 u8daa9u8d986u8db8cu8d8af . u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa u8d8a8u8db8cu8d8b4u8d8aau8d8b1 u8d8afu8d8b1 u8d8b2u8db8cu8d8b1u8d8b5u8d981u8d8adu8d987 u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d985u8d988u8d8acu8d988u8d8af u8d8a7u8d8b3u8d8aa. 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 level mwu800u82eextu800u82eflaggedrevsu82egetstabilitysettings title level level andu800 levelu82eautoreview ifu800 level \'review\' then return \'reviewer\' elseif level   then return level else return nilu800 notu800 \'*\'. au800 page notu800 being pcu800 protected isu800 distinct from itu800 being pcu800 protected with anyone able tou800 review. also notu800   asu800 that would mean pcu800 protected butu800 nobody canu800 review endu800 elseif action \'edit\' andu800 action \'move\' andu800 action \'create\' andu800 action \'upload\' andu800 action \'undelete\' then error \'u8d986u8d8aeu8d8b3u8d8aau8db8cu8d986 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8d8a8u8d8a7u8db8cu8d8af u8db8cu8daa9u8db8c u8d8a7u8d8b2 editu8d88c moveu8d88c createu8d88c uploadu8d88c undeleteu8d88c autoreview u8d8a8u8d8a7u8d8b4u8d8af\' 2u800 endu800 ifu800 titleu82enamespace 8u800 then mediawiki namespace ifu800 mwu800u82eustringu82esubu800 titleu82etext 3u800 \'.jsu800 oru800 mwu800u82eustringu82esubu800 titleu82etext 4u800 \'.cssu800 oru800 titleu82econtentmodel \'javascript\' oru800 titleu82econtentmodel \'cssu800 then site jsu800 oru800 cssu800 page return \'interfaceadmin\' else anyu800 nonu800 jsu800 cssu800 mediawiki page return \'sysop\' endu800 elseif titleu82enamespace 2u800 andu800 titleu82eissubpage then ifu800 titleu82econtentmodel \'javascript\' oru800 titleu82econtentmodel \'cssu800 then user jsu800 oru800 cssu800 page return \'interfaceadmin\' elseif titleu82econtentmodel \'json\' then user json page return \'sysop\' endu800 endu800 ifu800 action \'undelete\' then return \'sysop\' endu800 local level titleu82eprotectionlevels action andu800 titleu82eprotectionlevels action 1u800 ifu800 level \'sysop\' oru800 level \'editprotected\' then ifu800 titleu82enamespace 10u800 oru800 titleu82enamespace 828u800 then return \'templateeditor\' else return \'sysop\' endu800 elseif titleu82ecascadingprotectionu82erestrictions action andu800 titleu82ecascadingprotectionu82erestrictions action 1u800 then used byu800 au800 cascading protected page return \'sysop\' elseif level \'templateeditor\' then return \'templateeditor\' elseif action \'move\' then local blacklistentry mwu800u82eextu800u82etitleblacklistu82etest \'edit\' pagename testing action edit isu800 correct since this isu800 foru800 theu800 source page. theu800 target page name gets tested with action move. ifu800 blacklistentry andu800 notu800 blacklistentryu82eparamsu82eautoconfirmed then return \'templateeditor\' elseif titleu82enamespace 6u800 then return \'filemover\' elseif level \'extendedconfirmed\' then return \'extendedconfirmed\' else return \'autoconfirmed\' endu800 endu800 local blacklistentry mwu800u82eextu800u82etitleblacklistu82etest action pagename ifu800 blacklistentry then ifu800 notu800 blacklistentryu82eparamsu82eautoconfirmed then return \'templateeditor\' elseif level \'extendedconfirmed\' then return \'extendedconfirmed\' else return \'autoconfirmed\' endu800 elseif level \'editsemiprotected\' then create semiprotected pages return this foru800 some reason return \'autoconfirmed\' elseif level then return level elseif action \'upload\' then return \'autoconfirmed\' elseif action \'create\' andu800 titleu82enamespace 2u800 0u800 andu800 titleu82enamespace 118u800 then youu800 need tou800 beu800 registered butu800 notu800 autoconfirmed tou800 create nonu800 talk pages other than drafts ifu800 titleu82enamespace 0u800 then return \'autoconfirmed\' peru800 wpu800 acperm youu800 need tou800 beu800 autoconfirmed tou800 create pages inu800 mainspace endu800 return \'user\' else return \'*\' endu800 endu800 setmetatable pu800 __index function tu800 ku800 return function frame return tu800u82e_main ku800 frameu82eargs 1u800 endu800 endu800 return pu800 '),
(377, 'file link', ' this module provides au800 library foru800 formatting file wikilinks. local yesno require \'module yesno\' local checktype require \'libraryutil\' .checktype local pu800 function pu800u82e_main args checktype \'_main\' 1u800 args \'table\' this isu800 basically libraryutilu82echecktypefornamedarg butu800 weu800 areu800 rolling ouru800 ownu800 function tou800 getu800 theu800 right error level. local function checkarg keyu800 valu800 level ifu800 type valu800 \'string\' then error stringu82eformat \"u8d8aeu8d8b7u8d8a7u8db8c u8d986u8d988u8d8b9 u8d8afu8d8b1 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8c2ab su8c2bb u8d8a7u8d8b2 u8c2ab_mainu8c2bb u8d8b1u8d8b4u8d8aau8d987 u8d8a7u8d986u8d8aau8d8b8u8d8a7u8d8b1 u8d985u8db8cu8e2808cu8d8b1u8d981u8d8aau8d88c su800 u8d8afu8d8b1u8db8cu8d8a7u8d981u8d8aa u8d8b4u8d8af \" keyu800 type valu800 level endu800 endu800 local retu800 adds au800 positional parameter tou800 theu800 buffer. local function addpositional keyu800 local valu800 args keyu800 ifu800 notu800 valu800 then return nilu800 endu800 checkarg keyu800 valu800 4u800 retu800 #retu800 1u800 valu800 endu800 adds au800 named parameter tou800 theu800 buffer. weu800 assume that theu800 parameter name isu800 theu800 same asu800 theu800 argument keyu800. local function addnamed keyu800 local valu800 args keyu800 ifu800 notu800 valu800 then return nilu800 endu800 checkarg keyu800 valu800 4u800 retu800 #retu800 1u800 keyu800 .. \' \' .. valu800 endu800 filename checkarg \'file\' argsu82efile 3u800 retu800 #retu800 1u800 \'u8d9beu8d8b1u8d988u8d986u8d8afu8d987 \' .. argsu82efile format ifu800 argsu82eformat then checkarg \'format\' argsu82eformat ifu800 argsu82eformatfile then checkarg \'formatfile\' argsu82eformatfile retu800 #retu800 1u800 argsu82eformat .. \' \' .. argsu82eformatfile else retu800 #retu800 1u800 argsu82eformat endu800 endu800 border ifu800 yesno argsu82eborder then retu800 #retu800 1u800 \'border\' endu800 addpositional \'location\' addpositional \'alignment\' addpositional \'size\' addnamed \'upright\' addnamed \'link\' addnamed \'altu800\' addnamed \'page\' addnamed \'class addnamed \'lang\' addnamed \'start\' addnamed \'endu800\' addnamed \'thumbtime\' addpositional \'caption\' return stringu82eformat \' su800 \' tableu82econcat retu800 \' \' endu800 function pu800u82emain frame local origargs require \'module arguments .getargs frame wrappers \'u8d8a7u8d984u8daafu8d988 file link\' ifu800 notu800 origargsu82efile then error \"u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8c2abfileu8c2bb u8d8a7u8d8b2 u8d8a7u8d984u8daafu8d988 file link u8d8adu8d8b0u8d981 u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa\" 0u800 endu800 copy theu800 arguments that were passed tou800 au800 newu800 table tou800 avoid looking upu800 every possible parameter inu800 theu800 frame object. local args foru800 ku800 vu800 inu800 pairs origargs dou800 make _blank au800 special argument tou800 addu800 au800 blank parameter. foru800 useu800 inu800 conditional templates etcu800. itu800 isu800 useful foru800 blank arguments tou800 beu800 ignored butu800 weu800 still need au800 wayu800 tou800 specify them sou800 that weu800 canu800 dou800 things like file exampleu82epngu800 link . ifu800 vu800 \'_blank\' then vu800   endu800 args ku800 vu800 endu800 return pu800u82e_main args endu800 return pu800 '),
(378, 'footnotes', ' u8d8a7u8db8cu8d986 u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8a8u8d987u8e2808cu8d8afu8d982u8d8aa u8d8a8u8d988u8d985u8db8cu8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa. u8d987u8d986u8daafu8d8a7u8d985 u8d8a8u8d987u8e2808cu8d8b1u8d988u8d8b2u8d8b1u8d8b3u8d8a7u8d986u8db8c u8d8afu8d982u8d8aa u8daa9u8d986u8db8cu8d8af local getargs require \'module arguments .getargs fu800 args_default bracket_left   bracket_right   bracket_year_left   bracket_year_right   postscript   page   pages   location   page_sep \'u8d8b5.\' pages_sep \'u8d8b5u8d8b5.\' refu800   p1u800   p2u800   p3u800   p4u800   p5u800   andothers \'u8d988 u8d8afu8db8cu8daafu8d8b1u8d8a7u8d986\' ampu800 \'u8d988\' comma \'u8d88c\' function trim stru800 ifu800 stru800 nilu800 then return nilu800 endu800 return mwu800u82eustringu82ematch stru800 \' su800* . su800* \' endu800 local function is_year param return mwu800u82eustringu82ematch param \' du800 du800 du800 du800 lu800 \' oru800 mwu800u82eustringu82ematch param \' nu800 .du800 . lu800 \' oru800 mwu800u82eustringu82ematch param \' ndu800 lu800 \' oru800 mwu800u82eustringu82ematch param \' cu800 . du800 du800 du800 du800 lu800 \' endu800 function core args local result ifu800 argsu82ep5u800   then ifu800 is_year argsu82ep5u800 then result tableu82econcat argsu82ep1u800 \' \' argsu82eandothers \' \' argsu82ebracket_year_left argsu82ep5u800 argsu82ebracket_year_right else argsu82ep5u800   when p5u800 notu800 au800 year donu800\'tu800 include inu800 anchor result tableu82econcat argsu82ep1u800 \' \' argsu82eandothers andu800 donu800\'tu800 render itu800 endu800 elseif argsu82ep4u800   then ifu800 is_year argsu82ep4u800 then result tableu82econcat argsu82ep1u800 argsu82ecomma \' \' argsu82ep2u800 \' \' argsu82eampu800 \' \' argsu82ep3u800 \' \' argsu82ebracket_year_left argsu82ep4u800 argsu82ebracket_year_right three names andu800 au800 year else result tableu82econcat argsu82ep1u800 \' \' argsu82eandothers four names endu800 elseif argsu82ep3u800   then ifu800 is_year argsu82ep3u800 then result tableu82econcat argsu82ep1u800 \' \' argsu82eampu800 \' \' argsu82ep2u800 \' \' argsu82ebracket_year_left argsu82ep3u800 argsu82ebracket_year_right twou800 names andu800 au800 year else result tableu82econcat argsu82ep1u800 argsu82ecomma \' \' argsu82ep2u800 \' \' argsu82eampu800 \' \' argsu82ep3u800 three names endu800 elseif argsu82ep2u800   then ifu800 is_year argsu82ep2u800 then result tableu82econcat argsu82ep1u800 \' \' argsu82ebracket_year_left argsu82ep2u800 argsu82ebracket_year_right oneu800 name andu800 year else result tableu82econcat argsu82ep1u800 \' \' argsu82eampu800 \' \' argsu82ep2u800 twou800 names endu800 else result argsu82ep1u800 oneu800 name endu800 ifu800 \'.\' result subu800 1u800 andu800   argsu82epage andu800   argsu82epages andu800   argsu82elocation then argsu82epostscript   prevent double periods when date isu800 \'nu800u82edu800.\' endu800 ifu800 argsu82erefu800 \'none\' then ifu800 argsu82erefu800   then result \' #\' .. mwu800u82euriu800u82eanchorencode argsu82erefu800 .. \' \' .. result .. \' \' else result \' #citeref\' .. mwu800u82euriu800u82eanchorencode argsu82ep1u800 .. argsu82ep2u800 .. argsu82ep3u800 .. argsu82ep4u800 .. argsu82ep5u800 .. \' \' .. result .. \' \' endu800 endu800 ifu800 argsu82epage   then result result .. argsu82ecomma .. \' \' .. argsu82epage_sep .. \' \' .. argsu82epage elseif argsu82epages   then result result .. argsu82ecomma .. \' \' .. argsu82epages_sep .. \' \' .. argsu82epages endu800 ifu800 argsu82elocation   then result result .. argsu82ecomma .. \' \' .. argsu82elocation endu800 result argsu82ebracket_left .. result .. argsu82ebracket_right .. argsu82epostscript return result endu800 function fu800u82eharvard_core frame local args local pargs getargs frame argsu82ebracket_left pargsu82ebracketleft oru800   argsu82ebracket_right pargsu82ebracketright oru800   argsu82ebracket_year_left pargsu82ebracketyearleft oru800   argsu82ebracket_year_right pargsu82ebracketyearright oru800   argsu82epostscript pargsu82epostscript oru800   ifu800 \'none\' argsu82epostscript then argsu82epostscript   endu800 argsu82epage pargsu82epu800 oru800 pargsu82epage oru800 pargsu82epage oru800 pargs \'u8d8b5\' oru800   argsu82epages pargsu82eppu800 oru800 pargsu82epages oru800 pargsu82epages oru800 pargs \'u8d8b5u8d8b5\' oru800   argsu82elocation pargsu82elocation oru800 pargsu82elocu800 oru800 pargs \'u8d985u8d8adu8d984\' oru800   argsu82epage_sep trim pargsu82epagesep oru800   argsu82epages_sep trim pargsu82epagessep oru800   argsu82erefu800 pargsu82erefu800 oru800 \' refu800 \' argsu82ep1u800 trim pargsu82ep1u800 oru800   argsu82ep2u800 trim pargsu82ep2u800 oru800   argsu82ep3u800 trim pargsu82ep3u800 oru800   argsu82ep4u800 trim pargsu82ep4u800 oru800   argsu82ep5u800 trim pargsu82ep5u800 oru800   argsu82eandothers trim pargsu82eandothers oru800 \'u8d988 u8d8afu8db8cu8daafu8d8b1u8d8a7u8d986\' argsu82eampu800 trim pargsu82eampu800 oru800 \'u8d988\' argsu82ecomma trim pargsu82ecomma oru800 \'u8d88c\' return core args endu800 function fu800u82eharvard_citation frame local args fu800u82eargs_default local pargs getargs frame argsu82ebracket_left \' \' argsu82ebracket_right \' \' argsu82epage pargsu82epu800 oru800 pargsu82epage oru800 pargs \'u8d8b5\' oru800   argsu82epages pargsu82eppu800 oru800 pargsu82epages oru800 pargs \'u8d8b5u8d8b5\' oru800   argsu82elocation pargsu82elocu800 oru800 pargs \'u8d985u8d8adu8d984\' oru800   argsu82erefu800 pargsu82erefu800 oru800 pargsu82erefu800 oru800   argsu82ep1u800 trim pargs 1u800 oru800   argsu82ep2u800 trim pargs 2u800 oru800   argsu82ep3u800 trim pargs 3u800 oru800   argsu82ep4u800 trim pargs 4u800 oru800   argsu82ep5u800 trim pargs 5u800 oru800   argsu82eandothers trim pargsu82eandothers oru800 argsu82eandothers argsu82eampu800 trim pargsu82eampu800 oru800 argsu82eampu800 argsu82ecomma trim pargsu82ecomma oru800 argsu82ecomma argsu82epage_sep trim pargsu82epagesep oru800 argsu82epage_sep argsu82epages_sep trim pargsu82epagessep oru800 argsu82epages_sep return core args endu800 function fu800u82eharvard_citation_no_bracket frame local args fu800u82eargs_default local pargs getargs frame argsu82epage pargsu82epu800 oru800 pargsu82epage oru800 pargs \'u8d8b5\' oru800   argsu82epages pargsu82eppu800 oru800 pargsu82epages oru800 pargs \'u8d8b5u8d8b5\' oru800   argsu82elocation pargsu82elocu800 oru800 pargs \'u8d985u8d8adu8d984\' oru800   argsu82erefu800 pargsu82erefu800 oru800 pargsu82erefu800 oru800   argsu82ep1u800 trim pargs 1u800 oru800   argsu82ep2u800 trim pargs 2u800 oru800   argsu82ep3u800 trim pargs 3u800 oru800   argsu82ep4u800 trim pargs 4u800 oru800   argsu82ep5u800 trim pargs 5u800 oru800   argsu82eandothers trim pargsu82eandothers oru800 argsu82eandothers argsu82eampu800 trim pargsu82eampu800 oru800 argsu82eampu800 argsu82epage_sep trim pargsu82epagesep oru800 argsu82epage_sep argsu82epages_sep trim pargsu82epagessep oru800 argsu82epages_sep argsu82ecomma trim pargsu82ecomma oru800 argsu82ecomma return core args endu800 function fu800u82esfnu800 frame local args fu800u82eargs_default local pargs getargs frame foru800 ku800 vu800 inu800 pairs frameu82eargs dou800 foru800 sfnp override default with values provided inu800 theu800 #invoke args ku800 vu800 endu800 argsu82epostscript pargsu82epostscript oru800 pargsu82epsu800 oru800 \'.\' ifu800 \'none\' argsu82epostscript then argsu82epostscript   endu800 argsu82epage pargsu82epu800 oru800 pargsu82epage oru800 pargs \'u8d8b5\' oru800   argsu82epages pargsu82eppu800 oru800 pargsu82epages oru800 pargs \'u8d8b5u8d8b5\' oru800   argsu82elocation pargsu82elocu800 oru800 pargs \'u8d985u8d8adu8d984\' oru800   argsu82erefu800 pargsu82erefu800 oru800 pargsu82erefu800 oru800   argsu82ep1u800 trim pargs 1u800 oru800   argsu82ep2u800 trim pargs 2u800 oru800   argsu82ep3u800 trim pargs 3u800 oru800   argsu82ep4u800 trim pargs 4u800 oru800   argsu82ep5u800 trim pargs 5u800 oru800   argsu82eandothers trim pargsu82eandothers oru800 argsu82eandothers argsu82eampu800 trim pargsu82eampu800 oru800 argsu82eampu800 argsu82ecomma trim pargsu82ecomma oru800 argsu82ecomma argsu82epage_sep trim pargsu82epagesep oru800 argsu82epage_sep argsu82epages_sep trim pargsu82epagessep oru800 argsu82epages_sep local result core args local name \'footnote\' .. argsu82ep1u800 .. argsu82ep2u800 .. argsu82ep3u800 .. argsu82ep4u800 .. argsu82ep5u800 .. argsu82epage .. argsu82epages .. argsu82elocation result frame extensiontag name \'refu800\' args name name content result return result endu800 theu800 following function isu800 idential tou800 fu800u82esfnu800 with theu800 exception that itu800 guarantees theu800 output tagu800 will have diru800 ltru800 which isu800 useful foru800 references copied from english wikipedia function fu800u82esfnltr frame local args fu800u82eargs_default local pargs getargs frame foru800 ku800 vu800 inu800 pairs frameu82eargs dou800 foru800 sfnp override default with values provided inu800 theu800 #invoke args ku800 vu800 endu800 argsu82epostscript pargsu82epostscript oru800 pargsu82epsu800 oru800 \'.\' ifu800 \'none\' argsu82epostscript then argsu82epostscript   endu800 argsu82epage pargsu82epu800 oru800 pargsu82epage oru800 pargs \'u8d8b5\' oru800   argsu82epages pargsu82eppu800 oru800 pargsu82epages oru800 pargs \'u8d8b5u8d8b5\' oru800   argsu82elocation pargsu82elocu800 oru800 pargs \'u8d985u8d8adu8d984\' oru800   argsu82erefu800 pargsu82erefu800 oru800 pargsu82erefu800 oru800   argsu82ep1u800 trim pargs 1u800 oru800   argsu82ep2u800 trim pargs 2u800 oru800   argsu82ep3u800 trim pargs 3u800 oru800   argsu82ep4u800 trim pargs 4u800 oru800   argsu82ep5u800 trim pargs 5u800 oru800   argsu82eandothers trim pargsu82eandothers oru800 argsu82eandothers argsu82eampu800 trim pargsu82eampu800 oru800 argsu82eampu800 argsu82ecomma trim pargsu82ecomma oru800 argsu82ecomma argsu82epage_sep trim pargsu82epagesep oru800 argsu82epage_sep argsu82epages_sep trim pargsu82epagessep oru800 argsu82epages_sep local result core args local name \'footnote\' .. argsu82ep1u800 .. argsu82ep2u800 .. argsu82ep3u800 .. argsu82ep4u800 .. argsu82ep5u800 .. argsu82epage .. argsu82epages .. argsu82elocation result frame extensiontag name \'refu800\' args name name diru800 \"ltru800\" content result return result endu800 return fu800 '),
(379, 'format link', ' format link makes au800 wikilink from theu800 given link andu800 display values. links areu800 escaped with colons ifu800 necessary andu800 links tou800 sections areu800 detected andu800 displayed with \" u8c2a7 \" asu800 au800 separator rather than theu800 standard mediawiki \"#\". used inu800 theu800 format link template. local libraryutil require \'libraryutil\' local checktype libraryutilu82echecktype local checktypefornamedarg libraryutilu82echecktypefornamedarg local marguments lazily initialise module arguments local merror lazily initialise module error local yesno lazily initialise module yesno local pu800 helper functions local function getargs frame fetches theu800 arguments from theu800 parent frame. whitespace isu800 trimmed andu800 blanks areu800 removed. marguments require \'module arguments return margumentsu82egetargs frame parentonly true endu800 local function removeinitialcolon su800 removes theu800 initial colon from au800 string ifu800 present. return mwu800u82eustringu82ematch su800 \' .* \' endu800 local function maybeitalicize su800 shoulditalicize italicize su800 ifu800 su800 isu800 au800 string andu800 theu800 shoulditalicize parameter isu800 true. ifu800 su800 andu800 shoulditalicize then return \' \' .. su800 .. \' \' else return su800 endu800 endu800 local function parselink link parse au800 link andu800 return au800 table with theu800 link link\'su800 components. these components areu800 link theu800 link stripped ofu800 anyu800 initial colon always present page theu800 page name always present section theu800 page name mayu800 beu800 nilu800 display theu800 display text ifu800 manually entered after au800 pipe mayu800 beu800 nilu800 link removeinitialcolon link find whether au800 faux display value hasu800 been added with theu800 magic word. local prepipe display mwu800u82eustringu82ematch link \' . .* \' link prepipe oru800 link find theu800 page ifu800 itu800 exists. foru800 links like #baru800 theu800 page will beu800 nilu800. local prehash posthash mwu800u82eustringu82ematch link \' . # .* \' local page ifu800 notu800 prehash then weu800 have au800 link like foou800 . page link elseif prehash   then weu800 have au800 link like foou800#baru800 . page prehash endu800 find theu800 section ifu800 itu800 exists. local section ifu800 posthash andu800 posthash   then section posthash endu800 return link link page page section section display display endu800 local function formatdisplay parsed options formats au800 display string based onu800 au800 parsed link table matching theu800 output ofu800 parselink andu800 anu800 options table matching theu800 input options foru800 _formatlink . local page maybeitalicize parsedu82epage optionsu82eitalicizepage local section maybeitalicize parsedu82esection optionsu82eitalicizesection ifu800 notu800 section then return page elseif notu800 page then return mwu800u82eustringu82eformat \'u8c2a7&nbsp; su800\' section else return mwu800u82eustringu82eformat \' su800 u8c2a7&nbsp; su800\' page section endu800 endu800 local function missingargerror target merror require \'module error\' return merroru82eerror message \'u8d8aeu8d8b7u8d8a7 u8d9beu8db8cu8d988u8d986u8d8af u8db8cu8d8a7 u8d987u8d8afu8d981 u8d985u8d8b4u8d8aeu8d8b5 u8d986u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d8b3u8d8aa u8c2a0 \' .. target .. \'#u8d8aeu8d8b7u8d8a7u8d987u8d8a7 u8d8b1u8d8a7u8d987u8d986u8d985u8d8a7 \' endu800 main functions function pu800u82eformatlink frame theu800 formatlink export function foru800 useu800 inu800 templates. yesno require \'module yesno\' local args getargs frame local link args 1u800 oru800 argsu82elink oru800 args \'u8d9beu8db8cu8d988u8d986u8d8af\' local target args 3u800 oru800 argsu82etarget oru800 args \'u8d987u8d8afu8d981\' ifu800 notu800 link oru800 target then return missingargerror \'u8d8a7u8d984u8daafu8d988 u8d982u8d8a7u8d984u8d8a8u8e2808cu8d8a8u8d986u8d8afu8db8c u8d9beu8db8cu8d988u8d986u8d8af\' endu800 return pu800u82e_formatlink link link display args 2u800 oru800 argsu82edisplay oru800 args \'u8d986u8d985u8d8a7u8db8cu8d8b4\' target target italicizepage yesno argsu82eitalicizepage oru800 args \'u8d8b5u8d981u8d8adu8d987 u8d8a7u8db8cu8d8aau8d8a7u8d984u8db8cu8daa9\' italicizesection yesno argsu82eitalicizesection oru800 args \'u8d8a8u8d8aeu8d8b4 u8d8a7u8db8cu8d8aau8d8a7u8d984u8db8cu8daa9\' categorizemissing argsu82ecategorizemissing oru800 args \'u8d8b1u8d8afu8d987u8e2808cu8d8a8u8d986u8d8afu8db8c u8d986u8d8a7u8d985u8d988u8d8acu8d988u8d8afu8d987u8d8a7\' endu800 function pu800u82e_formatlink options theu800 formatlink export function foru800 useu800 inu800 modules. checktype \'_formatlink\' 1u800 options \'table\' local function check keyu800 expectedtype foru800 brevity checktypefornamedarg \'_formatlink\' keyu800 options keyu800 expectedtype oru800 \'string\' true endu800 check \'link\' check \'display\' check \'target\' check \'italicizepage\' \'boolean\' check \'italicizesection\' \'boolean\' check \'categorizemissing\' normalize link andu800 target andu800 check that atu800 least oneu800 isu800 present ifu800 optionsu82elink   then optionsu82elink nilu800 endu800 ifu800 optionsu82etarget   then optionsu82etarget nilu800 endu800 ifu800 notu800 optionsu82elink oru800 optionsu82etarget then return missingargerror \'u8d9beu8d988u8d8afu8d985u8d8a7u8d986 format link\' endu800 local parsed parselink optionsu82elink local display optionsu82edisplay oru800 parsedu82edisplay local catmissing optionsu82ecategorizemissing local category   find theu800 display text ifu800 notu800 display then display formatdisplay parsed options endu800 handle theu800 target option ifu800 present ifu800 optionsu82etarget then local parsedtarget parselink optionsu82etarget parsedu82elink parsedtargetu82elink parsedu82epage parsedtargetu82epage endu800 test ifu800 page exists ifu800 au800 diagnostic category isu800 specified ifu800 catmissing andu800 mwu800u82eustringu82elenu800 catmissing 0u800 then local title nilu800 ifu800 parsedu82epage then title mwu800u82etitleu82enewu800 parsedu82epage endu800 ifu800 title andu800 notu800 titleu82eisexternal andu800 notu800 titleu82eexists then category mwu800u82eustringu82eformat \' u8d8b1u8d8afu8d987 su800 \' catmissing endu800 endu800 format theu800 result asu800 au800 link ifu800 parsedu82elink display then return mwu800u82eustringu82eformat \' su800 su800\' parsedu82elink category else return mwu800u82eustringu82eformat \' su800 su800 su800\' parsedu82elink display category endu800 endu800 derived convenience functions function pu800u82eformatpages options pages formats anu800 array ofu800 pages using formatlink andu800 theu800 given options table andu800 returns itu800 asu800 anu800 array. nilu800 values areu800 notu800 allowed. local retu800 foru800 iu800 page inu800 ipairs pages dou800 retu800 iu800 pu800u82e_formatlink link page categorizemissing optionsu82ecategorizemissing italicizepage optionsu82eitalicizepage italicizesection optionsu82eitalicizesection endu800 return retu800 endu800 return pu800 ');
INSERT INTO `searchindex` (`si_page`, `si_title`, `si_text`) VALUES
(380, 'gallery', ' this module implements gallery local pu800 local templatestyles \'module gallery stylesu82ecssu800 local yesno require \'module yesno\' local num_con require \'module numeral converter\' .convert local function trim su800 return mwu800u82eustringu82egsub mwu800u82eustringu82egsub su800 \' su800\' \' \' \' su800* . su800* \' \' 1u800\' endu800 local tracking preview local function checkarg ku800 vu800 ifu800 ku800 andu800 type ku800 \'string\' then ifu800 ku800 \'align\' oru800 ku800 \'u8d8aau8d8b1u8d8a7u8d8b2\' oru800 ku800 \'state\' oru800 ku800 \'u8d8acu8d985u8d8b9u8e2808cu8d8b4u8d988u8d986u8d8afu8daafu8db8c\' oru800 ku800 \'style\' oru800 ku800 \'u8d8b3u8d8a8u8daa9\' oru800 ku800 \'title\' oru800 ku800 \'u8d8b9u8d986u8d988u8d8a7u8d986\' oru800 ku800 \'width\' oru800 ku800 \'u8d8b9u8d8b1u8d8b6\' oru800 ku800 \'height\' oru800 ku800 \'u8d8a7u8d8b1u8d8aau8d981u8d8a7u8d8b9\' oru800 ku800 \'lines oru800 ku800 \'u8d8b3u8d8b7u8d8b1u8d987u8d8a7\' oru800 ku800 \'whitebg\' oru800 ku800 \'u8d9beu8d8b3u8e2808cu8d8b2u8d985u8db8cu8d986u8d987 u8d8b3u8d981u8db8cu8d8af\' oru800 ku800 \'mode\' oru800 ku800 \'u8d8adu8d8a7u8d984u8d8aa\' oru800 ku800 \'footer\' oru800 ku800 \'u8d9beu8d8a7u8d988u8d8b1u8d982u8db8c\' oru800 ku800 \'perrow\' oru800 ku800 \'u8d8afu8d8b1 u8d8b1u8d8afu8db8cu8d981\' oru800 ku800 \'noborder\' oru800 ku800 \'u8d8a8u8db8cu8e2808cu8d982u8d8a7u8d8a8\' oru800 mwu800u82eustringu82ematch ku800 \' altu800 du800 \' oru800 mwu800u82eustringu82ematch ku800 \' u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986 du800 \' oru800 mwu800u82eustringu82ematch ku800 \' du800 \' then valid elseif ku800 \'captionstyle\' oru800 ku800 \'u8d8b3u8d8a8u8daa9 u8d8b2u8db8cu8d8b1u8d986u8d988u8db8cu8d8b3\' then ifu800 notu800 vu800 match \' text align su800* su800*center ; su800 * \' then tableu82einsert tracking \' u8d8b1u8d8afu8d987 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8daa9u8d987 u8d8a7u8d8b2 u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987 u8d8a8u8d8a7 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8d8b3u8d8a8u8daa9 u8d8b2u8db8cu8d8b1u8d986u8d988u8db8cu8d8b3 u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987 u8d985u8db8cu8e2808cu8daa9u8d986u8d986u8d8af \' endu800 else invalid local vlen mwu800u82eustringu82elenu800 ku800 ku800 mwu800u82eustringu82esubu800 ku800 1u800 vlen 25u800 andu800 vlen oru800 25u800 ku800 mwu800u82eustringu82egsub ku800 \' wu800 _u800 \' \' \' tableu82einsert tracking \' u8d8b1u8d8afu8d987 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8cu8db8c u8daa9u8d987 u8d8a7u8d8b2 u8d986u8daafu8d8a7u8d8b1u8d8aeu8d8a7u8d986u8d987 u8d8a8u8d8a7 u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1u8d987u8d8a7u8db8c u8d986u8d8a7u8d985u8d8b9u8d984u8d988u8d985 u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987 u8d985u8db8cu8e2808cu8daa9u8d986u8d986u8d8af \' .. ku800 .. \' \' tableu82einsert preview \'u8c2ab\' .. ku800 .. \'u8c2bb\' endu800 endu800 endu800 function pu800u82egallery frame ifu800 called viau800 #invoke useu800 theu800 args passed into theu800 invoking template. otherwise foru800 testing purposes assume args areu800 being passed directly inu800. local origargs type frameu82egetparent \'function\' andu800 frame getparent .args oru800 frame parserfunctions considers theu800 empty string tou800 beu800 false sou800 tou800 preserve theu800 previous behavior ofu800 gallery change anyu800 empty arguments tou800 nilu800 sou800 luau800 will consider them false toou800. local args tracking preview foru800 ku800 vu800 inu800 pairs origargs dou800 ifu800 vu800   then args ku800 vu800 checkarg ku800 vu800 endu800 endu800 ifu800 argsu82emode oru800 args \'u8d8adu8d8a7u8d984u8d8aa\' oru800   \'packed\' oru800 argsu82emode oru800 args \'u8d8adu8d8a7u8d984u8d8aa\' oru800   \'u8d8a8u8d8b3u8d8aau8d987\' andu800 argsu82ealign oru800 args \'u8d8aau8d8b1u8d8a7u8d8b2\' oru800     then args \'u8d8aau8d8b1u8d8a7u8d8b2\' args \'u8d8aau8d8b1u8d8a7u8d8b2\' oru800 argsu82ealign argsu82ealign \'center\' endu800 local tblu800 mwu800u82ehtmlu82ecreate \'divu800\' tblu800 addclass \'modu800 gallery\' ifu800 argsu82estate oru800 args \'u8d8acu8d985u8d8b9u8e2808cu8d8b4u8d988u8d986u8d8afu8daafu8db8c\' then tblu800 addclass \'modu800 gallery collapsible\' addclass \'collapsible\' addclass argsu82estate oru800 args \'u8d8acu8d985u8d8b9u8e2808cu8d8b4u8d988u8d986u8d8afu8daafu8db8c\' endu800 ifu800 argsu82estyle oru800 args \'u8d8b3u8d8a8u8daa9\' then tblu800 csstext argsu82estyle oru800 args \'u8d8b3u8d8a8u8daa9\' else tblu800 addclass \'modu800 gallery default\' endu800 ifu800 argsu82ealign oru800 args \'u8d8aau8d8b1u8d8a7u8d8b2\' then tblu800 addclass \'modu800 gallery \' .. argsu82ealign oru800 args \'u8d8aau8d8b1u8d8a7u8d8b2\' lower endu800 ifu800 argsu82etitle oru800 args \'u8d8b9u8d986u8d988u8d8a7u8d986\' then args \'u8d8b9u8d986u8d988u8d8a7u8d986\' args \'u8d8b9u8d986u8d988u8d8a7u8d986\' oru800 argsu82etitle tblu800 tagu800 \'divu800\' addclass \'title\' tagu800 \'divu800\' wikitext argsu82etitle oru800 args \'u8d8b9u8d986u8d988u8d8a7u8d986\' endu800 local gargs gargs \'class \'nochecker\' .. argsu82enoborder oru800 args \'u8d8a8u8db8cu8e2808cu8d982u8d8a7u8d8a8\' andu800   oru800 \' bordered images gargs \'widths mwu800u82egetcontentlanguage parseformattednumber argsu82ewidth oru800 mwu800u82egetcontentlanguage parseformattednumber args \'u8d8b9u8d8b1u8d8b6\' oru800 180u800 gargs \'heights mwu800u82egetcontentlanguage parseformattednumber argsu82eheight oru800 mwu800u82egetcontentlanguage parseformattednumber args \'u8d8a7u8d8b1u8d8aau8d981u8d8a7u8d8b9\' oru800 180u800 gargs \'style\' argsu82ecaptionstyle oru800 args \'u8d8b3u8d8a8u8daa9 u8d8b2u8db8cu8d8b1u8d986u8d988u8db8cu8d8b3\' gargs \'perrow\' argsu82eperrow oru800 args \'u8d8afu8d8b1 u8d8b1u8d8afu8db8cu8d981\' gargs \'mode\' argsu82emode oru800 args \'u8d8adu8d8a7u8d984u8d8aa\' ifu800 yesno argsu82ewhitebg oru800 args \'u8d9beu8d8b3u8e2808cu8d8b2u8d985u8db8cu8d986u8d987 u8d8b3u8d981u8db8cu8d8af\' oru800 \'yesu800 then gargs \'class gargs \'class .. \' whitebg\' endu800 local gallery local imagecount mathu82eceil #args 2u800 foru800 iu800 1u800 imagecount dou800 local imgu800 trim args iu800*2u800 1u800 oru800   local caption trim args iu800*2u800 oru800   local altu800 trim args \'altu800\' .. iu800 oru800 args \'u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986\' .. num_con \"fau800\" iu800 oru800   ifu800 imgu800   then tableu82einsert gallery imgu800 .. altu800   andu800 \' altu800 \' .. altu800 oru800   .. \' \' .. caption endu800 endu800 tblu800 tagu800 \'divu800\' addclass \'main\' tagu800 \'divu800\' wikitext frame extensiontag name \'gallery\' content \' nu800\' .. tableu82econcat gallery \' nu800\' args gargs ifu800 argsu82efooter oru800 args \'u8d9beu8d8a7u8d988u8d8b1u8d982u8db8c\' then tblu800 tagu800 \'divu800\' addclass \'footer\' tagu800 \'divu800\' wikitext argsu82efooter oru800 args \'u8d9beu8d8a7u8d988u8d8b1u8d982u8db8c\' endu800 local trackstr #tracking 0u800 andu800 tableu82econcat tracking   oru800   ifu800 #preview 0u800 then trackstr require \'module ifu800 preview\' ._warning \'u8d9beu8d8a7u8d8b1u8d8a7u8d985u8d8aau8d8b1 u8d986u8d8a7u8d985u8d8b9u8d984u8d988u8d985 \' .. tableu82econcat preview \'u8d89b \' .. \'.\' .. trackstr endu800 return frame extensiontag name \'templatestyles args srcu800 templatestyles .. tostring tblu800 .. trackstr endu800 return pu800 '),
(381, 'gallery stylesu82ecssu800', ' * ppu800 semi indef * media allu800 andu800 maxu800 width 720px .modu800 gallery width 100u800 important; .modu800 gallery display table; .modu800 gallery default background transparent; margin topu800 0u800u82e3emu800; .modu800 gallery center margin left auto; margin right auto; .modu800 gallery left float left; .modu800 gallery right float right; .modu800 gallery none float none; .modu800 gallery collapsible width 100u800 ; .modu800 gallery .title .modu800 gallery .main .modu800 gallery .footer display table rowu800; .modu800 gallery .title divu800 display table cell; padding 0u800u82e2emu800 1u800u82e6emu800 0u800u82e6emu800 0u800; text align center; font weight bold; .modu800 gallery .main divu800 display table cell; .modu800 gallery .gallery line height 1u800u82e35em; .modu800 gallery .footer divu800 display table cell; padding 0u800u82e2emu800 1u800u82e6emu800 0u800u82e6emu800 0u800; text align left; font size 80u800 ; line height 1emu800; .modu800 gallery .title divu800 * .modu800 gallery .footer divu800 * overflow visible; .modu800 gallery .gallerybox imgu800 background none important; .modu800 gallery .bordered images .thumb imgu800 border solid #eaecf0 1pxu800; .modu800 gallery .whitebg .thumb background #fffu800 important; '),
(382, 'hatnote', ' module hatnote this module produces hatnote links andu800 links tou800 related articles. itu800 implements theu800 hatnote andu800 format link meta templates andu800 includes helper functions foru800 other luau800 hatnote modules. local libraryutil require \'libraryutil\' local checktype libraryutilu82echecktype local checktypefornamedarg libraryutilu82echecktypefornamedarg local marguments lazily initialise module arguments local yesno lazily initialise module yesno local formatlink lazily initialise module format link ._formatlink local pu800 helper functions local curns mwu800u82etitleu82egetcurrenttitle .namespace pu800u82emissingtargetcat default missing target category exported foru800 useu800 inu800 related modules curns 0u800 oru800 curns 14u800 andu800 \'u8d985u8d982u8d8a7u8d984u8d987u8e2808cu8d987u8d8a7u8db8c u8d8afu8d8a7u8d8b1u8d8a7u8db8c u8d8a7u8d984u8daafu8d988u8d987u8d8a7u8db8c u8d8b3u8d8b1u8d986u8d988u8db8cu8d8b3 u8d8a8u8d8a7 u8d8b5u8d981u8d8adu8d987 u8d987u8d8afu8d981 u8d986u8d8a7u8d985u8d988u8d8acu8d988u8d8af\' oru800 nilu800 local function getargs frame fetches theu800 arguments from theu800 parent frame. whitespace isu800 trimmed andu800 blanks areu800 removed. marguments require \'module arguments return margumentsu82egetargs frame parentonly true endu800 local function removeinitialcolon su800 removes theu800 initial colon from au800 string ifu800 present. return mwu800u82eustringu82ematch su800 \' .* \' endu800 function pu800u82efindnamespaceid link removecolon finds theu800 namespace idu800 namespace number ofu800 au800 link oru800 au800 pagename. this function will notu800 work ifu800 theu800 link isu800 enclosed inu800 double brackets. colons areu800 trimmed from theu800 start ofu800 theu800 link byu800 default. tou800 skip colon trimming setu800 theu800 removecolon parameter tou800 false. checktype \'findnamespaceid\' 1u800 link \'string\' checktype \'findnamespaceid\' 2u800 removecolon \'boolean\' true ifu800 removecolon false then link removeinitialcolon link endu800 local namespace mwu800u82eustringu82ematch link \' . \' ifu800 namespace then local nstable mwu800u82esiteu82enamespaces namespace ifu800 nstable then return nstableu82eidu800 endu800 endu800 return 0u800 endu800 function pu800u82emakewikitexterror msgu800 helplink addtrackingcategory title formats anu800 error message tou800 beu800 returned tou800 wikitext. ifu800 addtrackingcategory isu800 notu800 false after being returned from module yesno andu800 ifu800 weu800 areu800 notu800 onu800 au800 talk page au800 tracking category isu800 added. checktype \'makewikitexterror\' 1u800 msgu800 \'string\' checktype \'makewikitexterror\' 2u800 helplink \'string\' true yesno require \'module yesno\' title title oru800 mwu800u82etitleu82egetcurrenttitle make theu800 help link text. local helptext ifu800 helplink then helptext \' \' .. helplink .. \' u8d8b1u8d8a7u8d987u8d986u8d985u8d8a7 \' else helptext   endu800 make theu800 category text. local category ifu800 notu800 titleu82eistalkpage donu800\'tu800 categorise talk pages andu800 titleu82enamespace 2u800 donu800\'tu800 categorise userspace andu800 yesno addtrackingcategory false allow opting outu800 then category \'u8d8a7u8d984u8daafu8d988 u8d8b3u8d8b1u8d986u8d988u8db8cu8d8b3 u8d987u8d985u8d8b1u8d8a7u8d987 u8d8aeu8d8b7u8d8a7\' category mwu800u82eustringu82eformat \' su800 su800 \' mwu800u82esiteu82enamespaces 14u800 .name category else category   endu800 return mwu800u82eustringu82eformat \' u8d8aeu8d8b7u8d8a7 su800 su800. su800\' msgu800 helptext category endu800 function pu800u82edisambiguate page disambiguator formats au800 page title with au800 disambiguation parenthetical iu800u82eeu800. \"example\" u8e28692 \"example disambiguation \". checktype \'disambiguate\' 1u800 page \'string\' checktype \'disambiguate\' 2u800 disambiguator \'string\' true disambiguator disambiguator oru800 \'u8d8a7u8d8a8u8d987u8d8a7u8d985u8e2808cu8d8b2u8d8afu8d8a7u8db8cu8db8c\' return mwu800u82eustringu82eformat \' su800 su800 \' page disambiguator endu800 hatnote produces standard hatnote text. implements theu800 hatnote template. function pu800u82ehatnote frame local args getargs frame local su800 args 1u800 ifu800 notu800 su800 then return pu800u82emakewikitexterror \'u8d985u8d8aau8d986u8db8c u8d8aau8d8b9u8d8b1u8db8cu8d981 u8d986u8d8b4u8d8afu8d987u8e2808cu8d8a2u8d8b3u8d8aa\' \'u8d8a7u8d984u8daafu8d988 u8d8b3u8d8b1u8d986u8d988u8db8cu8d8b3#u8d8aeu8d8b7u8d8a7u8d987u8d8a7\' argsu82ecategory oru800 args \'u8d8b1u8d8afu8d987\' endu800 return pu800u82e_hatnote su800 extraclasses argsu82eextraclasses oru800 args \'u8daa9u8d984u8d8a7u8d8b3u8e2808cu8d987u8d8a7u8db8c u8d8a8u8db8cu8d8b4u8d8aau8d8b1\' selfref argsu82eselfref oru800 args \'u8d8aeu8d988u8d8afu8d8a7u8d8b1u8d8acu8d8a7u8d8b9\' endu800 function pu800u82e_hatnote su800 options checktype \'_hatnote\' 1u800 su800 \'string\' checktype \'_hatnote\' 2u800 options \'table\' true options options oru800 local inline optionsu82einline local hatnote mwu800u82ehtmlu82ecreate inline 1u800 andu800 \'span\' oru800 \'divu800\' local extraclasses ifu800 type optionsu82eextraclasses \'string\' then extraclasses optionsu82eextraclasses endu800 hatnote attr \'role\' \'note\' addclass inline 1u800 andu800 \'hatnote inline\' oru800 \'hatnote\' addclass \'navigation notu800 searchable\' addclass extraclasses addclass optionsu82eselfref andu800 \'selfref\' wikitext su800 return mwu800u82egetcurrentframe extensiontag name \'templatestyles args srcu800 \'u8d9beu8d988u8d8afu8d985u8d8a7u8d986 hatnote stylesu82ecssu800 .. tostring hatnote endu800 return pu800 '),
(383, 'hatnote stylesu82ecssu800', ' * ppu800 small yu800 * .hatnote font style italic; * limit structure cssu800 tou800 divs because ofu800 module hatnote inline * divu800u82ehatnote * noflip * padding right 1u800u82e6emu800; margin bottom 0u800u82e5emu800; .hatnote iu800 font style normal; * theu800 templatestyles element inserts au800 link element before hatnotes. * todo remove link ifu800 when wmfu800 resolves t200206 * .hatnote link .hatnote margin topu800 0u800u82e5emu800; '),
(384, 'hatnote list', ' module hatnote list this module produces andu800 formats lists foru800 useu800 inu800 hatnotes. inu800 particular itu800 implements theu800 foru800 seeu800 list iu800u82eeu800. lists ofu800 \"foru800 xu800 seeu800 yu800\" statements asu800 used inu800 about redirect andu800 their variants. also introduced areu800 andlist & orlist helpers foru800 formatting lists with those conjunctions. local marguments initialize lazily local mformatlink require \'module format link\' local mhatnote require \'module hatnote\' local libraryutil require \'libraryutil\' local checktype libraryutilu82echecktype local pu800 list stringification helper functions these functions areu800 used foru800 stringifying lists usually page lists inside theu800 \"yu800\" portion ofu800 \"foru800 xu800 seeu800 yu800\" foru800 seeu800 items. default options table used across theu800 list stringification functions local stringifylistdefaultoptions conjunction \"u8d988\" separator \"u8d88c\" altseparator \"u8d89b\" space \" \" formatted false searches display text only local function searchdisp haystack needle return mwu800u82eustringu82efind mwu800u82eustringu82esubu800 haystack mwu800u82eustringu82efind haystack \' \' oru800 0u800 1u800 needle endu800 stringifies au800 list generically; probably shouldn\'tu800 beu800 used directly local function stringifylist list options type checks defaults andu800 au800 shortcut checktype \"stringifylist\" 1u800 list \"table\" ifu800 #list 0u800 then return nilu800 endu800 checktype \"stringifylist\" 2u800 options \"table\" true options options oru800 foru800 ku800 vu800 inu800 pairs stringifylistdefaultoptions dou800 ifu800 options ku800 nilu800 then options ku800 vu800 endu800 endu800 local su800 optionsu82espace format theu800 list ifu800 requested ifu800 optionsu82eformatted then list mformatlinku82eformatpages categorizemissing mhatnoteu82emissingtargetcat list endu800 setu800 theu800 separator; ifu800 anyu800 item contains itu800 useu800 theu800 alternate separator local separator optionsu82eseparator foru800 ku800 vu800 inu800 pairs list dou800 ifu800 searchdisp vu800 separator then separator optionsu82ealtseparator break endu800 endu800 setu800 theu800 conjunction apply oxford comma andu800 force au800 comma ifu800 #1u800 hasu800 \"u8c2a7\" local conjunction su800 .. optionsu82econjunction .. su800 ifu800 #list 2u800 andu800 searchdisp list 1u800 \"u8c2a7\" oru800 #list 2u800 then conjunction separator .. conjunction endu800 return theu800 formatted string return mwu800u82etextu82elisttotext list separator .. su800 conjunction endu800 dryu800 function function pu800u82econjlist conj list fmtu800 return stringifylist list conjunction conj formatted fmtu800 endu800 stringifies lists with \"andu800\" oru800 \"oru800\" function pu800u82eandlist ... return pu800u82econjlist \"u8d988\" ... endu800 function pu800u82eorlist ... return pu800u82econjlist \"u8db8cu8d8a7\" ... endu800 foru800 seeu800 makes au800 \"foru800 xu800 seeu800 yu800 .\" list from rawu800 parameters. intended foru800 theu800 about andu800 redirect templates andu800 their variants. default options table used across theu800 forsee family ofu800 functions local forseedefaultoptions andkeyword \'u8d988\' title mwu800u82etitleu82egetcurrenttitle .text othertext \'u8d8afu8db8cu8daafu8d8b1 u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8afu8d987u8d8a7\' forseeform \'u8d8a8u8d8b1u8d8a7u8db8c su800 su800 u8d8b1u8d8a7 u8d8a8u8d8a8u8db8cu8d986u8db8cu8d8af.\' collapses duplicate punctuation local function punctuationcollapse text local replacements \" . . \" \".\" \" u8d89f . \" \"u8d89f\" \" . \" \" \" \" . . \" \". \" \" u8d89f . \" \"u8d89f \" \" . \" \" \" foru800 ku800 vu800 inu800 pairs replacements dou800 text mwu800u82eustringu82egsub text ku800 vu800 endu800 return text endu800 structures arguments into au800 table foru800 stringification & options function pu800u82eforseeargstotable args from options type checks andu800 defaults checktype \"forseeargstotable\" 1u800 args \'table\' checktype \"forseeargstotable\" 2u800 from \'number\' true from from oru800 1u800 checktype \"forseeargstotable\" 3u800 options \'table\' true options options oru800 foru800 ku800 vu800 inu800 pairs forseedefaultoptions dou800 ifu800 options ku800 nilu800 then options ku800 vu800 endu800 endu800 maxarg maxarg\'su800 gotten manually because getargs andu800 tableu82emaxn aren\'tu800 friends local maxarg 0u800 foru800 ku800 vu800 inu800 pairs args dou800 ifu800 type ku800 \'number\' andu800 ku800 maxarg then maxarg ku800 endu800 endu800 structure theu800 data outu800 from theu800 parameter list * fortable isu800 theu800 wrapper table with forrow rows * rows areu800 tables ofu800 au800 \"useu800\" string & au800 \"pages\" table ofu800 pagename strings * blanks areu800 left empty foru800 defaulting elsewhere butu800 canu800 terminate list local fortable local iu800 from local terminated false ifu800 there isu800 extra text andu800 nou800 arguments areu800 given give nilu800 value tou800 notu800 produce default ofu800 \"foru800 other uses seeu800 foou800 disambiguation \" ifu800 optionsu82eextratext andu800 iu800 maxarg then return nilu800 endu800 loop tou800 generate rows repeat newu800 empty rowu800 local forrow onu800 blank useu800 assume list list\'su800 ended & break atu800 endu800 ofu800 this loop forrowu82euseu800 args iu800 ifu800 notu800 args iu800 then terminated true endu800 newu800 empty list ofu800 pages forrowu82epages insert first pages item ifu800 present tableu82einsert forrowu82epages args iu800 1u800 ifu800 theu800 param after next isu800 \"andu800\" dou800 inner loop tou800 collect params until theu800 \"andu800\" \"andu800\"\'su800 stop. blanks areu800 ignored \"1u800 andu800 andu800 3u800\" u8e28692 1u800 3u800 while args iu800 2u800 optionsu82eandkeyword dou800 ifu800 args iu800 3u800 then tableu82einsert forrowu82epages args iu800 3u800 endu800 increment tou800 next \"andu800\" iu800 iu800 2u800 endu800 increment tou800 next useu800 iu800 iu800 2u800 append theu800 rowu800 tableu82einsert fortable forrow until terminated oru800 iu800 maxarg return fortable endu800 stringifies au800 table asu800 formatted byu800 forseeargstotable function pu800u82eforseetabletostring forseetable options type checks andu800 defaults checktype \"forseetabletostring\" 1u800 forseetable \"table\" true checktype \"forseetabletostring\" 2u800 options \"table\" true options options oru800 foru800 ku800 vu800 inu800 pairs forseedefaultoptions dou800 ifu800 options ku800 nilu800 then options ku800 vu800 endu800 endu800 stringify each foru800 seeu800 item into au800 list local strlist ifu800 forseetable then foru800 ku800 vu800 inu800 pairs forseetable dou800 local usestr vu800u82euseu800 oru800 optionsu82eothertext local pagesstr pu800u82eandlist vu800u82epages true oru800 mformatlinku82e_formatlink categorizemissing mhatnoteu82emissingtargetcat link mhatnoteu82edisambiguate optionsu82etitle local forseestr mwu800u82eustringu82eformat optionsu82eforseeform usestr pagesstr forseestr punctuationcollapse forseestr tableu82einsert strlist forseestr endu800 endu800 ifu800 optionsu82eextratext then tableu82einsert strlist punctuationcollapse optionsu82eextratext..\'.\' endu800 return theu800 concatenated list return tableu82econcat strlist \' \' endu800 produces au800 \"foru800 xu800 seeu800 yu800 \" string from arguments. expects index gaps butu800 notu800 blank whitespace values. ignores named args andu800 args \"from\". function pu800u82e_forsee args from options local forseetable pu800u82eforseeargstotable args from options return pu800u82eforseetabletostring forseetable options endu800 asu800 _forsee butu800 uses theu800 frame. function pu800u82eforsee frame from options marguments require \'module arguments return pu800u82e_forsee margumentsu82egetargs frame from options endu800 return pu800 '),
(385, 'high useu800', ' local pu800 _fetch looks atu800 theu800 \"demo\" argument. local _fetch require \'module transclusion_count\' .fetch local yesno require \'module yesno\' local numconv require \'module numeral converter\' .convert function pu800u82enumu800 frame count ifu800 count nilu800 then ifu800 yesno frameu82eargs \'fetch\' oru800 frameu82eargs \'u8d988u8d8a7u8daa9u8d8b4u8db8c\' false then ifu800 frameu82eargs 1u800 oru800     then count tonumber frameu82eargs 1u800 endu800 else count _fetch frame endu800 endu800 build output string local return_value \"\" ifu800 count nilu800 then ifu800 frameu82eargs 1u800 \"risk\" oru800 frameu82eargs 1u800 \"u8d8b1u8db8cu8d8b3u8daa9\" then return_value \"u8d8aau8d8b9u8d8afu8d8a7u8d8af u8d8a8u8d8b3u8db8cu8d8a7u8d8b1 u8d8b2u8db8cu8d8a7u8d8afu8db8c u8d8b5u8d981u8d8adu8d987\" else return_value \"u8d8aau8d8b9u8d8afu8d8a7u8d8af u8d8b2u8db8cu8d8a7u8d8afu8db8c u8d8b5u8d981u8d8adu8d987\" endu800 else useu800 2u800 significant figures foru800 smaller numbers andu800 3u800 foru800 larger ones local sigfig 2u800 ifu800 count 100000 then sigfig 3u800 endu800 prepare tou800 round tou800 appropriate number ofu800 sigfigs local fu800 mathu82efloor mathu82elog10 count sigfig 1u800 round andu800 insert \"approximately\" oru800 \" \" when appropriate ifu800 yesno frameu82eargs 2u800 oru800 mwu800u82eustringu82esubu800 frameu82eargs 1u800 1u800 \" \" then round down return_value mwu800u82eustringu82eformat \" su800 \" mwu800u82egetcontentlanguage formatnum mathu82efloor count 10u800 fu800 * 10u800 fu800 else round tou800 nearest return_value mwu800u82eustringu82eformat \"u8d986u8d8b2u8d8afu8db8cu8daa9 u8d8a8u8d987&#x20u800; su800\" mwu800u82egetcontentlanguage formatnum mathu82efloor count 10u800 fu800 0u800u82e5u800 * 10u800 fu800 endu800 insert percentage ofu800 pages ifu800 that isu800 likely tou800 beu800 1u800 andu800 when nou800 percent notu800 setu800 tou800 yesu800 ifu800 count andu800 count 250000 andu800 notu800 yesno frame getparent .args \'nou800 percent\' oru800 frame getparent .args \'u8d8a8u8d8afu8d988u8d986 u8d8afu8d8b1u8d8b5u8d8af\' then local percent mathu82efloor count frame callparserfunction \'numberofpages \'ru800\' * 100u800 0u800u82e5u800 ifu800 percent 1u800 then return_value mwu800u82eustringu82eformat \" su800&#x20u800;u8d8b5u8d981u8d8adu8d987u8d88c u8db8cu8d8a7 u8d986u8d8b2u8d8afu8db8cu8daa9 u8d8a8u8d987 su8d9aa u8d8a7u8d8b2 u8daa9u8d984 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7\" return_value numconv \'fau800\' percent endu800 endu800 endu800 return return_value endu800 actions ifu800 there isu800 au800 large greater than oru800 equal tou800 100u800 000u800 transclusion count function pu800u82erisk frame local return_value \"\" ifu800 frameu82eargs 1u800 \"risk\" oru800 frameu82eargs 1u800 \"u8d8b1u8db8cu8d8b3u8daa9\" then return_value \"risk\" else local count _fetch frame ifu800 count andu800 count 100000 then return_value \"risk\" endu800 endu800 return return_value endu800 function pu800u82etext frame count only show theu800 information about howu800 this template gets updated ifu800 someone isu800 actually editing theu800 page andu800 maybe trying tou800 update theu800 count. local bot_text frame preprocess \" revisionid \" \"\" andu800 \" nu800 nu800 nu800 u8d9beu8db8cu8d8a7u8d985 u8d9beu8db8cu8d8b4u8e2808cu8d986u8d985u8d8a7u8db8cu8d8b4  u8d8b4u8d985u8d8a7u8d8b1 u8d8aau8d8b1u8d8a7u8daafu8d986u8d8acu8d8a7u8d986u8d8b4u8e2808cu8d987u8d8a7 u8d985u8d985u8daa9u8d986 u8d8a7u8d8b3u8d8aa u8d8aau8d988u8d8b3u8d8b7 u8d8b1u8d8a8u8d8a7u8d8aa u8d8a8u8d987u8e2808cu8d8b1u8d988u8d8b2 u8d8b4u8d988u8d8af u8d8a7u8d984u8daafu8d988 u8d9beu8d8b1u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987 u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa#u8d8acu8d8b2u8d8a6u8db8cu8d8a7u8d8aa u8d981u8d986u8db8c u8d985u8d8b3u8d8aau8d986u8d8afu8d8a7u8d8aa u8d8a7u8d984u8daafu8d988 u8d8b1u8d8a7 u8d8a8u8d8a8u8db8cu8d986u8db8cu8d8af .\" oru800   ifu800 count nilu800 then ifu800 yesno frameu82eargs \'fetch\' oru800 frameu82eargs \'u8d988u8d8a7u8daa9u8d8b4u8db8c\' false then ifu800 frameu82eargs 1u800 oru800     then count tonumber frameu82eargs 1u800 endu800 else count _fetch frame endu800 endu800 local title mwu800u82etitleu82egetcurrenttitle ifu800 titleu82esubpagetext \"u8d8aau8d988u8d8b6u8db8cu8d8adu8d8a7u8d8aa\" oru800 titleu82esubpagetext \"u8d8aau8d985u8d8b1u8db8cu8d986\" then title titleu82ebasepagetitle endu800 local systemmessages frameu82eargs \'system\' oru800 frameu82eargs \'u8d8b3u8d8a7u8d985u8d8a7u8d986u8d987\' ifu800 frameu82eargs \'system\' oru800 frameu82eargs \'u8d8b3u8d8a7u8d985u8d8a7u8d986u8d987\'   then systemmessages nilu800 endu800 this retrieves theu800 project urlu800 automatically tou800 simplify localiation. local templatecount \'u8d8afu8d8b1 su800 u8d8b5u8d981u8d8adu8d987 \' format mwu800u82etitleu82egetcurrenttitle fullurl gsub \' . .*\' \' 1u800\' mwu800u82euriu800u82eencode titleu82efulltext pu800u82enumu800 frame count local used_on_text \" u8d8a7u8db8cu8d986 \" .. mwu800u82etitleu82egetcurrenttitle .namespace 828u800 andu800 \"u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d984u8d988u8d8a2\" oru800 \"u8d8a7u8d984u8daafu8d988\" .. \' \'; ifu800 systemmessages then used_on_text used_on_text .. systemmessages .. count andu800 count 2000 andu800 \"u8d88c  u8d988 \" .. templatecount oru800 \" \" else used_on_text used_on_text .. templatecount .. \" u8d8a8u8d987u8e2808cu8daa9u8d8a7u8d8b1 u8d8b1u8d981u8d8aau8d987 u8d8a7u8d8b3u8d8aa \" endu800 local sandbox_text \"u8d8b2u8db8cu8d8b1u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c su800 u8d8aau8d985u8d8b1u8db8cu8d986 u8d8aau8d985u8d8b1u8db8cu8d986 u8db8cu8d8a7 su800 u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4u8db8c u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4u8db8c su8d88c u8db8cu8d8a7 u8d8afu8d8b1 su800 u8d8aeu8d988u8d8afu8d8aau8d8a7u8d986\" format titleu82efulltext titleu82efulltext mwu800u82etitleu82egetcurrenttitle .namespace 828u800 andu800 \"u8d9beu8d988u8d8afu8d985u8d8a7u8d986\" oru800 \"u8d8a7u8d984u8daafu8d988\" mwu800u82etitleu82egetcurrenttitle .namespace 828u800 andu800 \"u8d9beu8d988u8d8afu8d985u8d8a7u8d986 sandbox u8d9beu8d988u8d8afu8d985u8d8a7u8d986 u8d8aau8d985u8d8b1u8db8cu8d986u8db8c\" oru800 \"u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8db8c#u8d8b2u8db8cu8d8b1u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8db8c u8da86u8d987u8d89f u8d8b2u8db8cu8d8b1u8d8b5u8d981u8d8adu8d987u8d994 u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8db8c\" local infoarg frameu82eargs \"info\" \"\" andu800 frameu82eargs \"info\" ifu800 systemmessages oru800 frameu82eargs 1u800 \"risk\" oru800 frameu82eargs 1u800 \"u8d8b1u8db8cu8d8b3u8daa9\" oru800 count andu800 count 100000 then local info systemmessages andu800 \'. u8d8aau8d8bau8db8cu8db8cu8d8b1 u8d8afu8d8a7u8d8afu8d986 u8d8a2u8d986 u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8d8af u8d8a8u8d987 u8d8aau8d8bau8db8cu8db8cu8d8b1 u8d8a8u8db8cu8e2808cu8d8afu8d8b1u8d986u8daaf u8d8afu8d8b1 u8d8b1u8d8a7u8d8a8u8d8b7 u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d985u8d986u8d8acu8d8b1 u8d8b4u8d988u8d8af.\' oru800 \'.\' ifu800 infoarg then info info .. \" \" .. infoarg endu800 sandbox_text info .. \' u8d8a8u8d987u8e2808cu8d985u8d986u8d8b8u8d988u8d8b1 u8d8acu8d984u8d988u8daafu8db8cu8d8b1u8db8c u8d8a7u8d8b2 u8d8a7u8db8cu8d8acu8d8a7u8d8af u8d8a7u8d8aeu8d984u8d8a7u8d984\' .. count andu800 count 100000 andu800 \' u8d988 u8d988u8d8a7u8d8b1u8d8af u8d8b4u8d8afu8d986 u8d981u8d8b4u8d8a7u8d8b1 u8d8a8u8d987 u8d8b3u8d8b1u8d988u8d8b1u8d987u8d8a7\' oru800   .. \'u8d88c u8d987u8d8b1u8daafu8d988u8d986u8d987 u8d8aau8d8bau8db8cu8db8cu8d8b1 u8d8a8u8d8a7u8db8cu8d8af u8d8a7u8d8a8u8d8aau8d8afu8d8a7 u8d8afu8d8b1 \' .. sandbox_text .. \' u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4 u8d8b4u8d988u8d8af. \' .. \'u8d8aau8d8bau8db8cu8db8cu8d8b1u8d8a7u8d8aa u8d8a2u8d8b2u8d985u8d8a7u8db8cu8d8b4u8e2808cu8d8b4u8d8afu8d987 u8d8b1u8d8a7 u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986 u8d8afu8d8b1 u8db8cu8daa9 u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8a8u8d987 u8d8a7u8db8cu8d986 u8d8b5u8d981u8d8adu8d987 u8d8a7u8d981u8d8b2u8d988u8d8af. \' else sandbox_text infoarg andu800 \'. \' .. infoarg .. \' u8d8aa\' oru800 \' u8d988 u8d8aa\' .. \'u8d8bau8db8cu8db8cu8d8b1 u8d8afu8d8a7u8d8afu8d986 u8d8a2u8d986 u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8d8af u8d8aau8d8a3u8d8abu8db8cu8d8b1u8d8a7u8d8aa u8daafu8d8b3u8d8aau8d8b1u8d8afu8d987u8e2808cu8d8a7u8db8c u8d8afu8d8a7u8d8b4u8d8aau8d987 u8d8a8u8d8a7u8d8b4u8d8af. u8d984u8d8b7u8d981u8d8a7u8d98b u8d8aau8d8bau8db8cu8db8cu8d8b1u8d8a7u8d8aa u8d8b1u8d8a7 u8d8afu8d8b1 \' .. sandbox_text .. \' u8d8a8u8db8cu8d8a7u8d8b2u8d985u8d8a7u8db8cu8db8cu8d8af. \' endu800 local discussion_text systemmessages andu800 \'u8d984u8d8b7u8d981u8d8a7u8d98b u8d8a7u8d8a8u8d8aau8d8afu8d8a7 u8d8afu8d8b1 u8d8aeu8d8b5u8d988u8d8b5 u8d8aau8d8bau8db8cu8db8cu8d8b1u8d8a7u8d8aa u8d985u8d988u8d8b1u8d8af u8d986u8d8b8u8d8b1 \' oru800 \'u8d8aau8d988u8d8b5u8db8cu8d987 u8d985u8db8cu8e2808cu8d8b4u8d988u8d8af u8daa9u8d987 u8d8a7u8d8a8u8d8aau8d8afu8d8a7 u8d8afu8d8b1 u8d8aeu8d8b5u8d988u8d8b5 u8d8aau8d8bau8db8cu8db8cu8d8b1u8d8a7u8d8aa u8d985u8d988u8d8b1u8d8af u8d986u8d8b8u8d8b1 \' ifu800 frameu82eargs \"2u800\" andu800 frameu82eargs \"2u800\" \"\" andu800 notu800 yesno frameu82eargs \"2u800\" then discussion_text mwu800u82eustringu82eformat \" su8d8afu8d8b1 su800 \" discussion_text frameu82eargs \"2u800\" .. \' u8daafu8d981u8d8aau8daafu8d988 u8daa9u8d8b1u8d8afu8d987\' else discussion_text mwu800u82eustringu82eformat \" su8d8afu8d8b1 su800 u8d8b5u8d981u8d8adu8d987u8d994 u8d8a8u8d8adu8d8ab \" discussion_text titleu82etalkpagetitleu82efulltext .. \' u8daafu8d981u8d8aau8daafu8d988 u8daa9u8d8b1u8d8afu8d987\' endu800 return used_on_text .. sandbox_text .. discussion_text .. \" u8d988 u8d8b3u8d9beu8d8b3 u8d8a2u8d986u8e2808cu8d987u8d8a7 u8d8b1u8d8a7 u8d9beu8db8cu8d8a7u8d8afu8d987u8e2808cu8d8b3u8d8a7u8d8b2u8db8c u8daa9u8d986u8db8cu8d8af.\" .. bot_text endu800 function pu800u82emain frame local count nilu800 ifu800 yesno frameu82eargs \'fetch\' oru800 frameu82eargs \'u8d988u8d8a7u8daa9u8d8b4u8db8c\' false then ifu800 frameu82eargs 1u800 oru800     then count tonumber frameu82eargs 1u800 endu800 else count _fetch frame endu800 local image \" u8d9beu8d8b1u8d988u8d986u8d8afu8d987 ambox warning yellowu82esvgu800 40px altu800 u8d987u8d8b4u8d8afu8d8a7u8d8b1 link \" local type_param \"style\" local epilogue   ifu800 frameu82eargs \'system\' oru800 frameu82eargs \'u8d8b3u8d8a7u8d985u8d8a7u8d986u8d987\' andu800 frameu82eargs \'system\' oru800 frameu82eargs \'u8d8b3u8d8a7u8d985u8d8a7u8d986u8d987\'   then image \" u8d9beu8d8b1u8d988u8d986u8d8afu8d987 ambox importantu82esvgu800 40px altu800 u8d987u8d8b4u8d8afu8d8a7u8d8b1 link \" type_param \"content\" local nocat frame getparent .args \'nocat\' oru800 frame getparent .args \'u8d8a8u8db8cu8e2808cu8d8b1u8d8afu8d987\' oru800 frameu82eargs \'nocat\' oru800 frameu82eargs \'u8d8a8u8db8cu8e2808cu8d8b1u8d8afu8d987\' local categorise nocat   oru800 notu800 yesno nocat ifu800 categorise then epilogue frame preprocess \' sandbox other #switch #invoke effective protection level #switch namespace file upload #default edit fullpagename sysop templateeditor interfaceadmin #default u8d8b1u8d8afu8d987 u8d8b5u8d981u8d8adu8d987u8e2808cu8d987u8d8a7u8db8c u8d985u8d988u8d8b1u8d8af u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987 u8d8afu8d8b1 u8d9beu8db8cu8d8a7u8d985u8e2808cu8d987u8d8a7u8db8c u8d8b3u8d8a7u8d985u8d8a7u8d986u8d987 u8d986u8db8cu8d8a7u8d8b2u8d985u8d986u8d8af u8d985u8d8adu8d8a7u8d981u8d8b8u8d8aa \' endu800 elseif frameu82eargs 1u800 \"risk\" oru800 frameu82eargs 1u800 \"u8d8b1u8db8cu8d8b3u8daa9\" oru800 count andu800 count 100000 then image \" u8d9beu8d8b1u8d988u8d986u8d8afu8d987 ambox warning orangeu82esvgu800 40px altu800 u8d987u8d8b4u8d8afu8d8a7u8d8b1 link \" type_param \"content\" endu800 ifu800 frameu82eargs \"form\" \"editnotice\" then return frame expandtemplate title \'editnotice\' args \"image\" image \"text\" pu800u82etext frame count \"expiry\" frameu82eargs \"expiry\" oru800 frameu82eargs \"u8d985u8d986u8d982u8d8b6u8db8c\" oru800 \"\" .. epilogue else return require \'module message boxu800\' .main \'ombox\' type type_param image image text pu800u82etext frame count expiry frameu82eargs \"expiry\" oru800 frameu82eargs \"u8d985u8d986u8d982u8d8b6u8db8c\" oru800 \"\" .. epilogue endu800 endu800 return pu800 '),
(386, 'icon', ' this module implements template icon . local data mwu800u82eloaddata \'module icon data\' local pu800 function pu800u82e_main args local code argsu82eclass oru800 args 1u800 local icondata ifu800 code then code code match \' su800* . su800* \' lower trim whitespace andu800 putu800 inu800 lower case icondata data code endu800 ifu800 notu800 icondata then icondata image datau82e_defaultu82eimage tooltip code endu800 return stringu82eformat \' u8d9beu8d8b1u8d988u8d986u8d8afu8d987 su800 su800 su800 link \' icondatau82eimage icondatau82etooltip andu800 \' \' .. icondatau82etooltip oru800   argsu82esize oru800 \'16x16px\' endu800 function pu800u82emain frame local args foru800 ku800 vu800 inu800 pairs frame getparent .args dou800 args ku800 vu800 endu800 return pu800u82e_main args endu800 return pu800 ');
