changeset 29:fc7342914cdf

develop_v0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Thu, 05 Mar 2015 15:08:09 +0100
parents e6e9bdc4f256
children 022310a26cc5 3163d8ca0b62
files .DS_Store develop/controllers/extractapp.php develop/data/parsing_files/10076.txt develop/data/parsing_files/10076_2015_03_02_12_19_03.txt develop/data/parsing_files/10076_2015_03_02_12_19_20.txt develop/data/parsing_files/10076_2015_03_02_14_07_36.txt develop/data/parsing_files/10076_2015_03_02_14_08_03.txt develop/data/parsing_files/10076_2015_03_02_14_27_43.txt develop/data/parsing_files/10076_2015_03_02_14_31_05.txt develop/data/parsing_files/10076_2015_03_02_14_31_30.txt develop/data/parsing_files/10078.txt develop/data/parsing_files/126434.txt develop/data/parsing_files/126434_2015_03_02_12_07_59.txt develop/data/parsing_files/126434_2015_03_02_12_08_29.txt develop/data/parsing_files/126434_2015_03_02_12_09_12.txt develop/data/parsing_files/126434_2015_03_02_12_09_41.txt develop/data/parsing_files/126434_2015_03_02_12_09_58.txt develop/data/parsing_files/126434_2015_03_02_12_13_28.txt develop/data/parsing_files/126434_2015_03_03_17_54_16.txt develop/data/parsing_files/126434_2015_03_03_17_54_31.txt develop/data/parsing_files/126434_2015_03_03_18_01_09.txt develop/data/parsing_files/126434_2015_03_03_18_01_18.txt develop/data/parsing_files/126434_2015_03_04_12_01_08.txt develop/data/parsing_files/126434_2015_03_04_12_04_25.txt develop/data/parsing_files/126434_2015_03_04_12_04_36.txt develop/data/parsing_files/163407.txt develop/data/parsing_files/163407_2015_03_04_10_37_26.txt develop/data/parsing_files/38462.txt develop/data/parsing_files/38462_2015_03_04_09_46_20.txt develop/data/parsing_files/38462_2015_03_04_09_52_14.txt develop/data/parsing_files/38462_2015_03_04_09_56_07.txt develop/data/parsing_files/38462_2015_03_04_09_58_14.txt develop/data/parsing_files/38462_2015_03_04_09_58_42.txt develop/js/bootstrap.js develop/js/jquery-ui.js develop/js/taggingtext.js develop/models/.DS_Store develop/models/extractapp.php develop/views/Extractapp/taggingtext.php develop/views/Extractapp/taggingtext_20150219.php develop/views/Home/test.php develop/views/maintemplate.php develop/views/maintemplate_local.php
diffstat 43 files changed, 26208 insertions(+), 345 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
--- a/develop/controllers/extractapp.php	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/controllers/extractapp.php	Thu Mar 05 15:08:09 2015 +0100
@@ -37,8 +37,7 @@
                 $viewmodel->SmartRegexSave($this->postdata);
                 break;
             case 'Reload':
-                $viewmodel->messages .= "Reload <br>";
-                
+                // $viewmodel->Reload();
                 break;
 
             case 'ContinueTagging':
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,36 @@
+jorge berlin
+【800】  
+hiji嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_12_19_03.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,30 @@
+【800】  嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致 
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠 
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_12_19_20.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,31 @@
+【800】  嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_14_07_36.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,31 @@
+【800】  嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致 
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠 
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_14_08_03.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,33 @@
+【800】  
+hiji嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_14_27_43.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,33 @@
+Jorge
+【800】  嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_14_31_05.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,35 @@
+jorge
+【800】  
+hiji嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒石嚴禁為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10076_2015_03_02_14_31_30.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,38 @@
+jorge
+【800】  
+hiji嚴禁派買椶毛碑文 巡道宋 為嚴禁派買椶毛以 杜民累事據南陵縣民俞懷周  張鳴臯許雲章許貴卿等以求恩賞示勒石永禁派  辦椶毛等
+hih情詞具稟前來除批準給示飭禁外查奉  文採辦椶毛原應官遺的屬攜銀自向有椶之户公  平收買隨時給價未便分派鄕民致滋擾累合行出  示勒
+<person>石嚴禁</person>為此示仰南陵縣官吏胥役人等知悉  嗣後奉文採辦椶毛該縣自行遣屬向有椶之户平  價收買永遠不許派令約保鄕民買繳亦不許票差  協同約保採辦以杜吏胥藉端派累滋擾毋得故違  致干提究毋違特示嘉  慶十年四月初九日立    以上舊志    物產 穀之屬 秔稻 不黏曰秔俗作粳玉篇訓秔為秈秈種 甚多有早中晚赤白大各小種邑境稻  種向以木易秈大早稻細早稻等類為普通物産今  以土性稍變多改種湖南秈江西早舊時稻種幾致  hello
+【801】 失  傳 冬稻 秋前布種交冬始收故名邑境舊時 無比種近自江北廬屬各縣傳來 晚稻 其 穗  有芒微具黏性收成不  大暢旺磨粉可作餅餌 天生稻 莖粗穗長性宜於 水低田多栽之 占   城稻 其種來自占城國俗名兩節稻成熟 最早又一種先秋早穫名急新黃 稬稻 俗作 糯可  釀酒有柳枝圑粒脂麻黃瓜紅殻烏節等名鳥節稬  其藁緜輭為索不下於麻紅殼俗名九月紅性稍硬  釀酒最佳黃瓜糯即團粒糯脂麻糯即柳枝  糯鄕人隨其土俗而名之非種類不同也 大麥 一 名  麰麥又名穬麥其鬚能消腫  脹南方無麰即呼礦為大麥 小麥 粉多而芒短能製 各種麵食有一種  光秃無芒者  名和尙麥 稞麥 俗名絫麥似大麥而 無殻較小麥而微硬 蕎麥 俗名鳥 麥莖紅  葉綠易長易收為救荒極品另有  一種味苦者雖不堪食亦可濟荒 大豆 俗名白果豆 為邑中特產  出雁蕩湖  者尤勝 黄豆 色黄故名橢圓形五月下種九月登 塲又有一種名六月報成熱最早   泥豆 粒小可以餧馬又名馬料豆黄黑二 種黄者名牛毛黄斑色者名虎斑豆 豌豆 粒圓 如珠<zi> </zi>
+【802】 爾雅名戎菽管子作荏菽本草名胡豆唐史作  畢豆遼志作回回豆有大小二種小者鐵豌豆 蠶豆  其種傳自西域分大粒小粒二種我邑  所產者屬於小粒以其蠶時成熟故名 菉豆 色綠或 褐可充  食品或浸水發芽為  蔬菜歲可種二次 赤豆 本草名赤小豆色赤黯堪 入藥其稍大而鮮紅淡紅  者宜為食用邑人名赤豆為  飯紅豆以示與赤小豆有别 豇豆 一名䜶䝄蔓生長 莢嫩時采莢為蔬  老則收子有青紅  白黑斑紫六者 扁豆 有青白花弦各種白者入 藥莢可為菜蔓可作肥料 刀   豆 嫩莢可醬為蔬蜜 為果子老堪入藥 烏豆 一名 黑豆 漫天豆 長圓而凹其 中色白粉多  性喜乾燥  宜于沙地 穄 其實似稗較大梗節多毛黏者 為黍硬者為稷山地常種之 蘆穄 以 長  桿似蘆名蘆穄粒  大色黑釀酒甚佳 秫 有黏硬兩種本草李 時珍云秫即是梁 玉燭黍 一 名  玉膏梁俗名苞蘆即六榖也嫩時采取去苞鬚  煮食味美老則粒堅如石舂磨為糧亦可救荒 脂麻  一名胡麻有黑白二種白者多脂相傳謂漢時  自大宛來故名胡麻生熟皆可食製油尤良 
+【803】蔬之屬 菘 俗名白菜以其莖白亦有帶 青色者本豐莖闊迥非油菜 芥 即花菜冬 收細葉無  毛青翠而嫩者  良一名雪裹蕻 薤 狀似韭而中空夏開細花 色紫莖如小蒜謂之芥白 葱 一名 芤四  季不凋葉之下部  色白又名葱白 蒜 大小二種小蒜俗名夏蒜相傳 為中國蒜大蒜名葫漢時自西  域  來 韭 說文韭一種而久者故謂之韭本草 韭莖名韭白根名韭黃花名韭菁 蕓薹 子可 榨油  一名油菜根葉  搗汁能治丹毒 蒝荽 本名胡荽 俗作芫非 菾 俗名甜菜即赤根 菜或云即古之葵  菜   菠菜 葉似菾菜而大根色白煮食微作土氣 秋種者良本草綱目以赤根為菠菜誤 萵苣  亦稱  萵笋 莧 種類不一以肥而柔嫩者為良本 草云莧通九竅其實主清盲明目 苦蕒 本名 茶一  名苦苣北人甚珍之  入饌先瀹去苦味 黃矮菜 一名黄芽菜產 雪後者更佳 薺菜 甘 平  明目養胃和  肝治痢辟蟲 蒿菜 即蓬蒿也 大葉者勝 芹 白嫩者良 早芹味遜 萱萼 乾而 為葅  名黄花菜又  名金針菜 馬闌 嫩者可 茹可葅 鮮蕈 蔬中異味以寒露時 松花落地所生者無 
+【804】 毒最  佳 蕨 苖可為蔬根 搗浸取粉良 筍 亦作筝竹根所生之芽為竹 筍外有籜包裹漸長則籜解  而生枝葉為竹嫩時可食又有蘆根  所生之芽為蘆筍味澀不及竹筍 辣椒 一名番椒 園地徧種  之高二三尺葉為卵形端尖有長柄  互生夏月開白花實色紅而味辣 蘆菔 俗名蘿菔 又作萊菔  色白肉多味甘而辛生食之可治喉症又有  一種皮肉皆紅者名胡蘆菔亦名紅蘆菔 南瓜 以 種  出南番名早  收者較嫩 冬瓜 一名白瓜皮色純 青多毛味純甘 絲瓜 一名天羅 嫩者為肴  老者入藥能補能  通藤葉亦可療毒 越瓜 即菜瓜一名稍瓜生食甘寒 醒酒滌熱糖醃醯醬皆宜   黄瓜 本名胡瓜後避石勒諱改名黃瓜世俗以月令 王瓜為此誤按本草宗奭曰王瓜其殼徑寸長  二寸許上微圓下尖  長紅赤色乃土瓜也 瓠子 有甘苦兩種首 尾粗細略同 壺盧 亦作 瓠  俗作葫蘆一名匏瓜其味分甘苦兩種苦者葉汁皆  苦詩曰匏有苦葉是也甘者葉亦可茹詩曰幡幡瓠  葉菜之烹之是也至  老皆可為舀水器 西瓜 古名寒瓜味甜多汁皮有 深綠淡綠二色瓤有紅黃 
+【805】 白三色生食消署熱按五代時胡嶠居契丹始  食西瓜其後瓜種漸入浙東近西北鄕多種之 香瓜  形㰐圓皮與肉皆淡綠色間有  帶黃色者其味甜又稱甜瓜 落蘇 單名茄有紫白 兩種可醃曬為  脯秋後者微  毒不宜多食 薑 俗稱生薑秋初新芽嫩美可食烹飪 時多用以調和或蜜漬充茶食或曝  乾入  藥品 芋 古曰蹲鴟植於水田葉似荷而長色綠者為 青芋色紅紫者為紫芋邑境産南鄉者尤大   藕 蓮之地下根也肥大有節中空如管 性甘平生食生津出城内池中者勝 果之屬 桃 品類甚多易於栽種且早結實五年後刀 割其皮出脂液即能多延數年其花有紅  紫白之殊實有紅桃緋桃碧桃緗桃白桃烏桃金桃  銀桃胭脂桃等名又有五月早桃十月冬桃並秋桃  霜桃  之别 李 樹高丈許綠葉白花子大如杯如卵小者如 彈如櫻其味有甘酸苦濇數種其色有青綠  黃紫  不同 梅 酸澀而溫生時宜蘸鹽食小滿前肥脆不苦 者佳青者鹽醃曬乾為白梅亦可蜜漬糖收  法製以充方物半黃者烟熏為烏梅入藥及染色用  之極熟者榨汁曬收為梅醬古人用以調饌書曰若 
+【806】 作和羹爾惟  鹽梅是也 杏 甘酸溫須俟熟透食之糖醃蜜漬收 藏致遠可充方物其核中仁味苦不  堪  食 櫻桃 紫赤色多甘汁中有 小核酸者不宜多食 林檎 即花紅青時體鬆 不澀者名沙木果  瀹湯代茗味極清芬北產  實大名頻婆俗呼頻果 石榴 赤色粒狀甘酸 溫澀皮可染皂 橘 較 福  州產小而  圓無酸味 棃 形小皮厚較北產味稍 酸然汁多亦可製膏 栗 甘平耐飢老 而乾者味美   棗 鮮者甘涼乾者甘温北產大而堅實 補力最勝名黑大棗上產肉薄形小 柿 本名秭鮮 者甘寒大  而無核熱透不澀為佳品或采青秭用石灰水  浸過澀味盡去削皮噉之甘脆如梨名綠秭 枇杷  大而純甘獨核者良蜜餞糟收可以藏  久本草言其下氣止渴專治嘔嗽噦噫 銀杏 一名白 果生苦  澀熟甘溫西南  鄕多產此品 橙 味甘辛糖製蜜製均 可惟不及越產之美 香櫞 一名枸 櫞味不  可口而清  香襲人 枳椇 即今之白石李形如珊瑚味 甘美專解酒毒又名雞距子 菱 鮮者 甘涼  析酲清熟老者風乾肉  反媆熟者充飢代穀 芡 說文謂之雞頭今俗亦通 稱之鮮者剝食亦良乾者 
+【807】 可為粉作糕煮  粥亦入藥劑 荸薺 一名烏芋又名地栗野生小者 為鳧茈甘寒有化銅辟蠱之功  大而皮赤無渣者良煮熟性平可入  肴饌野者小澄粉點目去翳如神 茨菰 亦作慈姑 一名白地  栗又名河鳧茈甘苦性寒用  灰湯煮熟去皮食則不麻澀 蓮子 荷結實為蓮爾雅 荷芙渠其實蓮近  有農人種蓮為業以田作池每畝所入倍  於登榖登麥之利味美亦與建蓮無異 無花果 味 甘  如柿無核有宿  痔者食之可療 梧桐子 形小如豆熟則裂 開葉狀炒食清香 桑椹 以色 黑而  味純甘者為良可生啖可飮汁可  熬膏可爆乾為末歉歲可充飢 橡實 櫟樹子殻可 染皂一名皂  汁浸透去其澀味蒸煮可食  杜工部客秦州嘗釆以自給 山楂 亦作查一名山裏 果北產者大亦名  棠球俗名紅果味酸而甘大者去皮核和  糖蜜搗為糕名查糕色味鮮美可充方物 佛手 與香 橼同  種樹高丈餘亦稱佛指香櫞夏末實熟皮黃如柚形  長上端分歧十餘如手指清香襲人蜜漬可食原產  自閩廣近邑境  亦有植之者 蒲萄 形如彈丸中虚有核史記大宛 傳宛左右以蒲萄為洒漢使取 
+【808】 其實來種後遂蕃殖中  國近邑境亦有種此者 水脂麻 一名蓮須產水中 甚香脆吾邑特產 花之屬 蘭蕙 一幹一花為蘭一幹數花為蕙產山顚 石巖與楚辭九畹百畝之蘭蕙異書傳  所載皆指香草生水澤者言故可紉佩後人  以此花幽芳似蘭遂名其實非也說見本草 瑞香 莖 髙  四五尺枝葉繁茂春日開花内白外紅紫香清氣遠  有一種稍高開黃色管狀花謂之黃瑞香亦曰結香   牡丹 花中之王夏初開最艷美有重瓣單瓣之別古 無牡丹名統稱芍藥唐後以其花似芍藥而幹  為木謂之木芍藥色有紅白  紫數種縣境粉紅及紫者多 芍藥 草本開放與牡丹 同時艷美與牡丹  同色古有牡丹花王芍藥花相  之說見通志略其根另詳藥部 海棠 木髙丈餘早春 開花色深紅緊  著枝上者謂之貼梗海棠花梗細長  者謂之垂絲海棠皆重瓣不結實 秋海棠 草本秋 開花色  粉紅間右  開白花者 杜鵑 一名映山紅花開正值杜宇啼時故 名杜鶻黃者名羊躑躅其花較大   望春 有二種紅者為辛 夷白者為木筆 玉蘭 一幹一花與辛夷同時 開惟九瓣色純白皆美 
+【809】 艷   山礬 春開白花清香甚遠俗名九里香又名春 桂與海桐花略相似俗譌稱海桐為山礬 荷   花 夏月開或紅或白未開 曰菡萏已開曰芙蕖 火石榴 以花赤得名幹不 甚高亦有粉紅色  純白  者 款冬花 一名款凍黄瓣青紫萼于冬臘霜雪時 發花獨茂又有開紅花者葉如荷而斗  直俗稱為  蜂斗葉 麗春花 即虞美人夏初開深紅四瓣亦有 紫白等色甚美麗與罌粟同類異  種   木槿 一名蕣英又名王蒸夏秋之交開花五瓣短 柄如蜀葵色備紅紫白朝開暮落人多種之  以為  藩籬 洗澡花 色淡紅暮 放朝捲 玉簪 潔白如玉含蕊如簪頭 故名秋後開花亦有紫  色者俗謂  之紫玉 臘梅 冬時開花内帶紫色外黃又名黃梅 本非梅種以其與梅同時香又相類  花瓣似撚蠟  所成故名 木芙蓉 秋半開花大而美豔右紅白黃 等色又一種初開色白次日漸  紅後變深紅范石湖  所謂添色芙蓉是也 山茶 花自十月開至二月種類 甚多有單瓣重瓣紅白斑  數色紅  者入藥 菊 一名節華又名女華種類甚多劉蒙泉菊 譜有一百六十三品後人增至三百餘種 
+【810】 春夏秋冬俱有惟開於秋冬  者為正黄色為貴白色入藥 木犀 即秋桂叢生小花 香氣濃厚色有黃  白白者名銀桂  黃者名金桂 玫瑰 一名徘徊花類薔薇而色紫亦 有開白花者花托為臺狀外生  密刺香氣清烈可製  香水蒸露浸酒和糖 薔薇 一名買笑又名刺紅花備 紅白黄等色五瓣而大達  春接夏而開頗美艷又野薔  薇花較小香過之可製露 月季 一名鬭雪紅一名 勝春俗名月月紅  四季開有紅色者有白色者  與薔薇相類而香尤過之 梔子 一名越桃一名林 蘭釋號簷  小木  也有三種單葉小花者結子多千葉大花  者不結子色白又一種高不盈尺而香烈 葵 即向日 葵一名  西番葵六月開花每幹頂上一花黄瓣大心隨日回  轉日東則花朝東日西則花朝西又一種錦葵單瓣  花小如錢色粉  紅有紫縷紋 金鳳 一名鳳仙夏日開花有紅白等 色女子多取紅花以染指甲又  稱指甲紅其  子可制蛇 雞冠 一名波羅奢有紅紫黃白豆綠五 色宛如雞冠之狀開最久經霜始  蔫有掃箒雞冠  壽星雞冠之別 水仙 性喜水瓣白心黃有單葉千葉 二腫單葉名水仙清香經月不 
+【811】 散千葉名  玉玲瓏 長春花 一名金盞草蔓生籬落間抱莖對 生莖上開花黄色狀如盞子有色  無香四  時不絕 木之屬 松 本草松葉有二鍼三鍼五鍼之別三鍼為 括子松五鍼為松子松又有黑松赤松白  松鹿尾松羅  漢松之名 柏 一名蒼官與松齊壽有扁柏榆柏黃 柏瓔珞柏之異惟扁柏為貴邑境多  植之另右竹柏  葉如竹為盆玩 檜 柏之一種幹似松葉如柏爾雅云 檜柏葉松身然其葉尖硬如刺人  又呼為  刺柏 梓 一名木王說文梓楸也椅梓也埤雅亦云 椅即是梓梓即是楸考之風椅桐梓漆  箋椅桐可為琴瑟梓漆可  供器用是椅梓顯然有別 檀 右黃檀白檀二種係强 韌之木本草云紫檀白  檀是也綱目總謂旃檀但  檀木無香與檀香有別 檫 亦梓屬桂海虞衡志 子如錐栗肉甘微溫 杉  說文作檆幹端直高數丈葉如針  較松短其材可築屋舍造舟車 楓 一名欇香樹最 高大似白楊而  堅可作棟梁葉小有尖角枝弱善摇實圓有芒刺焚  作香其脂名白膠香霜後葉赤又名丹楓相傳楓脂 
+【812】 入地千年  即成琥珀 榆 初春生莢名曰楡錢至冬實老可釀酒 亦可作醬歲荒其皮磨粉可食亦可和  香末作糊楡麵如膠  用粘瓦石極有力 桑 桑之種類各異白桑葉大如 掌而厚雞桑葉細而薄子桑  先椹後葉山桑葉尖而長女桑樹  小而條長近年邑境多改植湖桑 柘 幹疏直木裹有 紋葉厚而尖稍  硬於桑葉亦可飼蠶實如桑椹  而圓樹皮煎汁可染黄赤色 樺 通作華或作穫其 葉如楡其材可為  杯器其皮堅韌可為絙  索及一切包裹等物 楊柳 柳枝長脆葉狹長楊枝 短硬葉圓闊柳性耐水  楊性宜旱柳有官柳垂柳楊有白楊青楊其花  似絮飛着毛衣即生蛀蟲入池沼即化浮萍 櫧 冬 夏  長青用作屋棟歷久不壞子小如橡可硏粉  食物本草有苦甜二種治作粉食褐色甚佳 棟 讀平 聲管  子地員篇楡桃柳棟  子及根皮皆入藥 橡 一名栩詩曰集於苞栩是也 其子擣浸取粉作腐良材利  為炭殼  可染色 櫟 俗以實圓為橡尖為槲 木通謂之櫟槲不生火 鉤粟 一名巢鈎子 其木經冬不  凋結子比栗較  小與雀子相似 梧桐 一名青桐無節直生皮青如翠 葉缺如花能知歲時至秋一葉 
+【813】 先墜遇閏每  枝多生一葉 楝 樹有二種青皮棟堅韌可為器其火 楝性質輕脆其皮肉皆紅樹高一二  丈葉密如  槐而尖 檉柳 一名河西柳一名觀音柳幹不 甚大赤莖弱枝葉細如絲縷 冬青  一名萬年枝樹似狗骨枝幹  疏勁葉綠而亮隆冬不枯 黄楊 樹小肌極堅緻枝 叢葉繁四季青歲  長一寸閏  年反縮 穀 即楮樹有二種雄者皮斑葉無椏叉開 花即成長穗雌者皮白中有白注如乳  葉有椏叉開碎花皮  可作紙汁可充膠 烏柏 木高二丈許葉卵形端尖 夏開小花黄白色秋末實  熟子可製油及為  肥皂蠟燭原料 棣 即棠棣俗呼壽李樹高五六尺 葉似李而小實若櫻桃而赤味  酸甜可食其花反而後  合有赤白粉紅三色 棠 一名棠毬即棠棃也樹如 李而小葉似蒼术春初開  小白花實如小楝子生青熟紅亦有黄白  者土人呼為山查果採入藥並製為糖食 山桐 幹高 二丈  許葉類梧桐春夏開淡紅花實  大而圓子可榨油又名油桐 茱萸 木高丈餘皮青 綠色葉似椿而  闊厚莖間有刺春暮開紅紫細花  重陽日折茱萸置酒中可辟惡氣 椿 幹高三四丈葉 為複葉嫩時色 
+【814】 紅香甘可食俗名香椿夏開小  白花結蒴其材堅實可製器具 竹之屬 貓頭竹 即毛竹幹大而厚葉細而小異 於他竹人取編牌作舟造屋   紫竹 幹細色深紫截 之可為簫管 水竹 高丈餘葉長節平 性微寒堅韌可用 筀竹 葉 細  節疏  多毒 木竹 幹高丈許葉圓而鼓節密而凸 性易折中實如木不可破篾 金竹 亦名 疏節  竹其幹最高可  供篾工之用 苦竹 高六七尺節長於他竹生 筍可食莖及籜為用甚廣 淡竹  節白有粉短於苦竹之節質  韌密可劈之作精細工品 慈竹 幹實如木竹而節 疏性弱可代籐用   墨竹 狀如古籐長有一丈八九尺 色墨如鐵境内所彥無多 斑竹 其斑紋雖不 及湘妃然所  用最  廣 四季竹 四季生筍幹節長圓取為樂器聲 中管籥若由石彥者音更清亮 藥物之屬 紫蘇 味辛色紫莖葉實皆入藥木草紫蘇 注蘇从穌舒陽也行氣和血爾雅謂  之桂  荏 萎蕤 即玉竹黄白多鬚李時 珍有可代參耆之語 香附 一名莎草根 有細黑毛入 
+【815】 藥宜  去之 威靈仙 生山地俗稱鐵即威 靈仙治痛風靈藥 白芍 已詳花部惟 其根有赤白  二色供  藥用 丹皮 出丫山張元素曰丹 皮治無汗之骨蒸 半夏 平野自生其 土中塊莖皮  黄肉白可  製藥燥毒 南星 即天南星生山野根似 芋而圓扁入藥性有毒 前胡 根入藥 前胡與  柴胡均係風藥  但前胡性降 桔梗 莖可入藥味苦 辛色白屬金 沙參 似人參而 體輕鬆故  名士人參補  陰瀉肺火 水仙根 能療大熱治癰 疽切片貼火瘡 棉花子 用治惡 瘡諸毒  其花燒  灰止血 浮萍 生于水能下水氣又能發揚邪 汗丹溪曰浮萍發汗甚圩麻黄 杜仲 皮 中  有絲乃筯骨相著  之象治腰膝酸痛 女貞子 即冬青本草作 二種冬至採佳 木瓜 治轉 筋健  腰脚老  人宜佩 山藥 古名薯蕷性濇治遺精且 生搗傅廱瘡能消腫硬 馬齒莧 一名 九頭  獅草酸寒放血解毒多  年惡瘡傅兩三徧即瘥 白术 彥西北諸山者類鳳頭 术又有雲頭术狗頭忙  惜境内  罕見 芭蕉根 味甘大寒治天行熱狂 並可為末油調塗癰腫 茯苓 以大埬 堅白者 
+【816】 良松根靈氣結  成功在補心脾 土茯苓 大如鴨子連綴而生俗名冷 飯團有赤白二種白者良楊  梅用為  主藥 豨薟草 江東人呼豬為豨其草薟臭故名宋 張詠進豨簽表云百服眼清明千服  鬚髮烏黑其  功用可知 栝樓 俗作瓜萋根為天花粉 子扁多脂去油可用 蒲公英 一 名  黄花地丁莖有白汁取塗惡刺  極有功效其性甘平能瀉熱毒 青木香 如枯骨味 苦黏舌縣境  產者為  土木香 百合 野生而味 甘者勝 南燭 一名南天燭俗呼飯豆 果强筋益氣力久服令  人不老子  功用同 皂角 通關竅搜風有數種一小如猪牙一 長而枯燥一肥厚多脂多脂者良   穀精草 收穀後荒田中生葉似嫩秧 花如白星有明目退翳之功 射干 一作紫蝴 蝶花按本  草即扁竹花根又名烏  扇鳥翣功能瀉火解毒 芣莒 即車前其子强陰 益精令人有子 蓷 一 名  荒蔚詩王風中谷有蓷言即益  母草也能通行瘀血生新血 土牛膝 即杜牛膝一 名天精一名  地菘瀉熱吐  痰破血解毒 蓖麻 如牛蜱黄褐有斑能 治針刺入肉竹木骨硬 山樝 詳果 類 
+【817】  麥門冬 清心降火止 欬又名麥冬 天門冬 滋陰助元消 痰又名天冬 加皮 即五 加皮  莖青節白花赤皮黄根黑上應五車芬  芳五葉故名王綸曰五加浸酒益人 金銀花 一名 忍冬  藤又名左藤花葉同  功釀酒代茶熬膏並妙 葛根 能鼓胃氣上行生津止 渴生葛汁大寒解溫病  大熱葛花  尤解酒毒 馬兜鈴 蔓生實如鈴去筋膜取子 用能降肺氣而清肺氣 艾 陳者 良揉  搗如綿謂之  熟艾炙火用 夏枯草 冬至生夏至枯故名禀純 陽之氣能治目珠夜痛 石斛  產山巔石巖者類金又號金股李時珍曰石斛  狀似金故名又一種形長而虚者水斛也不堪用   青蒿 二月生苗得春木少陽之令最早故入少陽厥 陰血分李時珍曰月令通纂言伏丙庚日採蒿  懸門可辟邪冬至元  旦各服一錢亦良 烏藥 能疏胸腹邪逆之氣根有 車轂紋如連珠者良   桑寄生 即蔦也他樹亦多寄生 惟以桑上採者為眞 豬苓 與茯苓同而不 補治傷寒瘟疫  大熱多生楓樹下  塊如猪糞故名 
+【818】器用工作之屬 棉布 紡棉為紗織紗為布邑境城鄉 業此者合男女機工不下數千  人   愛國布 亦棉質邑境 機工所織 柳條布 機工於織紋間夾以 他色棉紗成條又有  夾以他色織成方  格名格子花者 印花布 近各染坊以白布刻以青 色或藍色染汁放白花者  是   毛巾 棉質亦邑境 機工所織 苎布 苎麻織成者 昔有今稀 竹簟 出青弋 江鎭   涼床 同 上 稻籮 出青弋江及 七都地方 篾籃 同 上 團簸 同 上 曬箕 同 上 筲   箕 同 上 甎瓦 小淮 窑多 罁缶 出呂山衝現梅 家山亦有陶器 罁瓦 同 上 坑紙 出 南  鄕二十一都一啚大者之謂  雲皮紙小者謂之淨皮紙 傘紙 同 上 石灰 出上北鄕 九都地方  及南鄕二十一  都一啚陳沖 食用雜產之屬 絲 以何家灣者為勝南洋 勸業會曾給金質獎章 棉花 本草 有木  棉草棉二種木棉樹高丈餘出交趾安定縣草棉  見南史高昌國傳其種出南番宋末始入中國 茶 
+【819】 早採為茶晩採為茗其葉以穀雨前採者  為佳邑境茶產格裏者美工山野茶尤勝 菸 即烟草 産雁蕩  湖者  佳 檀皮 數歲一刈其枝 取皮可以為紙 黄麻 莖高丈餘其皮可製 繩袋等物出縣東青  弋  江 落花生 一名香芋又稱長生果植物類多蔓者 惟此花後子房入地結實成莢故名 閩   薑 出青弋 江鎭 藕糖 出丫山孫 及包衝王 藕粉 出東北圩 鄕最馳名 荸薺粉 同 上   粉 磨小麥成粉製 成細縷者為麵 白糖 即蠻糖熬米麥 製成可作餅餌 麻餅 青弋 江鎭  最  良 菜油 即菜子 榨成者 葛粉 出西 南鄕 麻油 磨脂麻成油邑 境雖有不多 桐油  即山桐  子榨成 麥酒 以大麥 釀成者 米酒 即甜酒以 米釀成者 茶靛 作染料出 上北鄉上  牧沖行銷黄  滸荻港等處 苎麻 西人謂之支那草歲收三四次取 其皮漚水中可劈為絲出西北山  鄕   絡麻 灰色麻邑 境通用 椶櫚 歷來種植不多乾隆間地保 承辦採買輒之鄰境取足近  因山民墾地佈穀芟刈略盡遵辦愈難嘉慶十年民  户據情呈稟奉巡道徐給示飭禁勒石縣前嗣後官 
+【820】 自遣屬措辦毋得派累鄕民  然今邑境植此者仍復寥寥 葛 根入藥然搗碎取汁 製成白粉可為種種  食物且其莖  纖維可織布 煤炭 煤雖礦物亦古代植物化解而成 炭質產邑境張家山近三都黃金  谷等處  亦產之 漆 一作㯃幹高二三丈皮白葉似椿花似槐 子若牛李木心黄可作杖夏至後斧斫其  皮竹管承取其汁可髹  器具邑境雖有不多 茨菰 見果屬可充食品 及洗涼粉之用 羽之屬 雞 一名德禽又名燭夜種類甚多高者三四 尺矮者如鴿巢邊最忌薰烟磨粉有病當  灌以清油食  之味美滋補 鶩 一名舒鳬以舒而不疾故名鳴則其 聲呷呷故又名鴨曲禮疏野鴨曰鳧  家鴨曰鷔左傳公膳曰雙雞饔人竊更  之以鶩離騷將與雞騖争食乎是也 鵝 一名鵱鷜 禽經云鵝  鳴則蜮沈養之  園林則蛇遠去 鴿 鳩屬也一名鵓鴿看眼色晴轉而 砂粗者良張九齡以鴿傳書名曰  飛  奴 燕 玄烏也爾雅釋鳥燕燕鄭樵注 燕有二種白脰為燕紫脰為 鵲 一名乾鵲 又名鳷鵲  感音而孕巢户背太歲向  太乙知來歲風巢必□下 烏鴉 一物二名廣雅云純 黑反哺為鳥小而腹 
+【821】 下白不反哺曰鴉南人喜鵲惡鴉北人  反之師曠以白項者為不祥鴉一作鵶 雉 漢避吕后 諱改名野  雞書傳混  入鷂隼非 鸜鵒 一名哵哵鳥俗呼八 哥周禮鸜鵒不踰濟 斑鳩 似鵓鴣而 差大微帶  赤色俗呼  為火鵓鴣 鵓鴣 喜食半夏 其鳴自呼 鷿鷈 廣雅一名油鴨翼小 不善飛巧於潛水又  稱潛  水鳥 畫眉 狀類山雀毛色蒼黄兩頰有白毛 如眉雄者善嗚喜鬬人多畜之 黄脰 說 文  鷦  桃蟲也一名鷦鷯俗呼黄脰爾雅疏此小鳥而  生鵰鶚者也陸璣桃蟲疏其雛化而為鵰又名巧女   竹雞 居竹叢中性好啼啼時呼泥滑滑古諺云 家有竹雞啼白蟻化為泥人故多畜之 黄鸝  即鶯也一物數名一名倉庚又曰  搏黍亦為黄鳥又為金衣公子 布穀 即鳲鳩又名 郭公狀類杜  鵑而體較大榖雨後始鳴夏至後  乃至鳴聲如割麥插禾故名布穀 百舌 一名鶷又 名反舌入夏  卷舌不鳴月令  仲夏反舌無聲 杜宇 即杜鵑又名子規按杜宇本古 蜀帝名華陽國志杜宇稱帝號  曰望帝會有水災禪位其相開明升西山隱焉成  都記杜宇死其魂化為鳥故以杜宇為望帝魂 鷹 
+【822】 即爽鳩一名題肩一名角鷹又有虎鷹雉鷹兔  鷹之稱齊人呼為淩霄君高麗人呼為決雲兒 隼 鷂 屬  詿鴥彼飛隼其飛戾天  傳隼鷂屬急疾之鳥也 鴟鴞 楚人命鴞曰鵬埤雅怪 鴟一名隻狐莊子所謂  晝不見邱山夜能蔡秋毫末也爾雅鴞鴟疏其肉甚  美可作獎臛漢書注五月五日作梟羹以賜百官   雀 即瓦雀一名家賓說文雀依人小 鳥也淮南子大厦成而燕雀賀 脊令 爾雅作鵬 鴒行則搖  尾棲則不  離水邊 啄木 褐者為雌斑者為雄喜 食木蠧為森林之益烏 鳧 詳鶩 註 鷺鷥  一名春鋤一名屬玉又名昆朋水鳥也群飛成  序故有鷺序之説羽白似雪又有雲客之稱 鴛鴦  一名匹鳥一名文禽雄曰鴛雌曰鴦性喜  相偶遊水雄左雌右並翅而飛交頸而臥 翡翠 一名 魚狗  按埤雅翠鳥或謂翡翠  雄赤曰翡雌青曰翠 魚鷹 即王瞧翺翔水上捕魚 以食雌雄相得鷙而有  別   毛之屬 牛 說文大性也性馴力强能 助耕作家畜最有用者 羊 有綿羊山羊 二種境內所 
+【823】 畜者多係山羊  山羊古稱吳羊 馬 明初困於養馬葛歷中奉文裁革 民得孳息自備騎坐乾隆三十年  間縣署遇有差役强拉後更按啚苛派甚為民  累嘉慶五年奉巡撫荆飭縣嚴禁給示勒石 驢 較 馬  體小力微  亦能擔物 驘 以馬父驢 母者為强 豬 爾雅繹獸豕子豬今亦 曰彘孟子二母彘即此 犬  有數種守犬善吠畜以司昏田犬長喙細  身毛短脚高登山履險甚捷獵者畜焉 貓 又名家 狸善捕  鼠故禮郊特牲云迎  貓為其食田鼠也 狐 牲狡猾喜盜食 物皮可為裘 狸 野貓也圓 頭大尾善  竊雞鴨名為貓貍其餘形色稍  異有虎貍九節貍香貍之稱 貛 爾雅釋獸狼牡貛 牝狼疏狼牡名貛  牝曰狼世人以形似狗  呼狗貛似豬呼豬貛 黃鼠 一名鼬鼠出人隙穴夜 盜雞鴨然其毛可製筆   松鼠 野鼠亦曰栗鼠頭嘴似兔尾長 善鳴能升木嗜粟豆可馴養  一名 明視 麞 似鹿 無角  麞同獐亦名麕詩野有  死麕其草細輭可製物 麂 似鹿有角按麂亦麞屬惟 牡者有短角善跳越其革  可用與  麞同 野豬 為家猪之原種齒牙鋒利能掘食土中 之物其皮毛粗硬可以製器其肉亦可 
+【824】 充肴  饌 鹿 一名斑龍陽獸也牡者爾雅名䴥有角無齒 牝者詩名鹿鹿身小無角冬夏二至角解其  茸   刺蝟 獸類亦名蝟鼠晝伏夜出能食田間害 蟲於農家有益多刺善卷見鵲則仰 鱗之屬 青魚 一作鯖身如圓筒 其色青黑鱗大 白魚 即鱎魚俗稱白 花魚體扁鱗細  肉有細刺長者  三四尺青白色 鯉魚 體扁肉肥鱗大背蒼 黑腹淡黃喜群居 鱖魚 巨日 細鱗  背鰭有刺甚硬色  青微黃有黑斑 魴 即鯿魚爾雅魴胚疏魴一名 魾江東呼為鯿魚之美者 鱅  俗稱  胖頭 鯇 長身圓頗似青魚而色微灰俗 稱觶子又以其食草而稱草魚 鱮 頭小鱗 細俗□  鰱  子 鱤 同鰔本草鱤魚即䱤魚一 名鰥魚性獨行故曰鰥 鰋 即鮎魚爾雅註鰋 為頞白魚說文鰋  作鰋鮀也鮀鮎也詩小雅  鰷鱨鰋鯉毛傳鰋鮎也 鮒 即鯽 魚 鱧 則鳥魚又為七 星魚頭有斑點  如星以腸入  藥堪治氣 䱗 俗呼鰷魚曰 䱗魚見本草 鱓 俗稱黃鱔似 鰻而細長 鱺 則鰻 魚亦  可亦稱  白鱓 鰌 即泥鰍潛居 泥中故名 黃頰魚 俗呼黃刺魚狀似鮎 體較小腹背皆黄觸 
+【825】 鬚剛  硬 土附魚 以其附土而行故名俗稱吐哺魚長三 四寸頭大口巨身扁鱗細色蒼褐有黑  斑菜花開時最  多又稱菜花魚 鰟魮 亦稱旁皮狀似鯽而小長一二 寸許腹下有白紋三條狀若帶  古謂青  衣魚 介之屬 龜 介蟲之長外骨内肉 天性無雄以虵為雄 鼈 陸佃曰鱉思生鼈 伏於淵而卵剖於  陵此以思化也又鼈伏  隨日光所轉朝東夕西 蟹 爾雅翼字从解者以隨潮 解甲也人兒其側行故謂  之旁  蟹 蝦 蹊澤所生不 及江海之大 蚌 小曰點子 長曰瓦刀 蠃 通作螺稱類甚 多内地所彥者  名螺螄  或田螺 蟲之屬 蠶 向分兩種有三眠四眠四眠絲較優美邑 境治蠶者取省葉減功多畜三眠種惟  西鄉何家灣與青陽接壤等處講求  四眠故絲亦引為安徽出產上品 蟬 一名寒螿夏 曰蟪蛄秋日  蜩乃朽木蠐螬腹蜟所化多者  裂母背而生雄者鳴聲清亮 蟋蟀 名促織又名蛩 黑身光澤如漆 
+【826】 善鳴  健鬭 螢 一名丹鳥夜食蚊 傳曰丹鳥羞白鳥 蚊 續博物志地濕則生蚊 大戴禮以蚊蚋為白烏   蠅 埤雅青蠅亂 色蒼蠅亂聲 蜂 地中作房者為土蜂樹上 作房者為木蜂皆野蜂也 蜜蜂 指 收  養家中取其蜜者言一日兩出聚嗚  號為兩衙其採花無獾至經宿不歸 蜻蜓 遇雨即多 好集水上  款飛一名蜻蛉古今注青而大者青亭  小而黃者曰胡黎小而赤者曰赤卒 蟲螽 一名負 蠜即詩  之喓喓  草蟲也 促織 似負蠜而扁腹銳首 秋夜善鳴如紡織然 蝴蝶 說文作蜨蛺 蜨也古今注  蛺蝶一名野蛾然有數種大者名鳳  子花紋為紺蝶黑翅白點為鬼車 螳螂 禮月令仲 夏螳螂生  註螳螂螵  蛸母也 螻蛄 即土狗晝穴居夜喜燈 光莊字螻蛄不知春秋 蝙蝠 一名飛 鼠一名  服  翼 蜘蛛 名網公亦 社公 蛙 似蝦蟆而背青綠色尖嘴細腹 俗謂之青蛙亦有背作黃路者  謂之金線蛙  或名樓幗 蟾 即蝦 蟆 蚯蚓 中其毒以鹽 水薰洗可愈 蛇 分有青無 毒二種有  毒者别  有毒牙 蜈蚣 畏蜘蛈蜓蚰雞涎桑皮鹽中其毒者以 桑汁鹽蒜塗之被咬者捕蜘蛛置咬處 
+【827】 自吸其毒蜘蛛  死放水中活之                                
+【828】                               南陵縣志卷十六终 
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢縣置令或長一人 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 丞一人 貳 漢制  丞尉縣多以本部人為之秩四百  石至二百石丞署文書典知倉獄 主簿一人 佐 令 長自調  用   尉大縣二人餘一人 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 游徼 循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/10078.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,1063 @@
+【829】南陵縣志卷十七   職官志 秦改封建為郡縣縣置令或長 漢<jiguan>縣置令或長一</jiguan><null>人</null> 縣萬户為令秩工石至六百石減 萬户為長秩五百石至三百石掌  治民顯善勸義禁姦罰惡理訟平賊恤  □時務秋冬集課上計於所屬郡國 <jiguan>丞一</jiguan><null>人</null> 貳 漢制  丞<jiguan>尉縣多以本部</jiguan><null>人</null>為之秩四百  石至二百石丞署文書典知倉獄 <jiguan>主簿一</jiguan><null>人</null> 佐 令 長自調  用   <jiguan>尉大縣二</jiguan><null>人</null><jiguan>餘一</jiguan><null>人</null> 圭捕盜賊 察姦宄 諸曹椽史有秩三   老 掌教 化 
+游徼  循禁 姦盜 嗇夫 主知民情 平其差品 鄕佐 主收 賦稅 亭長 主 捕  盜  賊 里魁 掌察一里善 惡 並幕屬 吳官制書闕無考縣令佐貳大率多沿漢制 
+【830】晉縣大者置令小者置長縣佐有主簿 省 丞 錄事史記室   史門下書佐幹游徼議生循行功曹史廷椽户曹法   曹金倉賊曹椽兵曹賊捕椽等員又縣五百户以上   置一鄕 三千以上二鄕五千 以上三鄕萬置四鄕 <jiguan>鄕置嗇夫一</jiguan><null>人</null>縣率百   <jiguan>户置里吏一</jiguan><null>人</null><jiguan>户千置校官一</jiguan><null>人</null> 南北朝宋縣大者為令小為長有簿有尉 尉大縣 <jiguan>二</jiguan><null>人</null> 鄕有   鄕佐 五家為伍有伍長二伍為什有什長十什 為里有里魁十里為亭有亭長十亭為鄕 三老   有秩<jiguan>嗇夫游徼各一</jiguan><null>人</null>齊梁陳略同 隋縣為令或長其下為丞簿尉 煬帝時嘗改 尉為縣正 廢鄕官 開 皇  初經部授  <post_time>十五</post_time><post_time>年</post_time>罷 
+【831】<jiguan>唐上縣令一</jiguan><null>人</null><jiguan>丞一人主簿一</jiguan><null>人</null><jiguan>縣尉二</jiguan><null>人</null><jiguan>餘縣一</jiguan><null>人</null>  自令以下並以縣上中下分品  武德初改尉曰正尋復稱尉 司户佐司法佐各一   人 貞觀初縣置 錄事後省 經學<jiguan>博士助教各一</jiguan><null>人</null> 宋<jiguan>縣置知縣事一</jiguan><null>人</null> 初用京朝官以重民社之寄其後 參用幕職及試銜官而令選猥下  天聖中詔為舉法以重令選慶歷紹興屢嚴其制乾  道<post_time>二</post_time><post_time>年</post_time>御筆非兩任縣令不除察御史而其職始  重   <jiguan>丞一人主簿一</jiguan><null>人</null><jiguan>尉大邑二</jiguan><null>人</null><jiguan>餘一</jiguan><null>人</null> 宋初無丞  天聖中始  於赤縣置丞小  邑以簿兼之 鎭砦官無定員 元<jiguan>縣達魯花赤一</jiguan><null>人</null><jiguan>尹一人丞一</jiguan><null>人</null><jiguan>簿一</jiguan><null>人</null>尉典史各   <jiguan>一人教諭一</jiguan><null>人</null> 書院有 山長 <jiguan>訓導一</jiguan><null>人</null> 按元史百官志 無訓導官未詳 巡   檢稅務使無定<jiguan>員又有直學一</jiguan><null>人</null> 見學 宮碑 
+【832】<jiguan>明縣置知縣一</jiguan><null>人</null><jiguan>縣丞一</jiguan><null>人</null> 宏<jiguan>治中增馬政一</jiguan><null>人</null>嘉靖 中省馬政<post_time>天啟</post_time><post_time>五</post_time><post_time>年</post_time>並省   <jiguan>主簿一</jiguan><null>人</null><jiguan>典史一</jiguan><null>人</null><jiguan>儒學教諭一</jiguan><null>人</null><jiguan>訓導二</jiguan><null>人</null> 府志 作一  人   <jiguan>巡檢司巡檢一</jiguan><null>人</null> 峩 嶺 陰陽學訓術醫學訓科僧會   司僧會道會<jiguan>司道會俱各一</jiguan><null>人</null> <jiguan>清縣知縣一</jiguan><null>人</null><jiguan>縣丞一</jiguan><null>人</null> 康熙十 年復設 <jiguan>主簿一</jiguan><null>人</null> 順治三 年省 典   <jiguan>史一</jiguan><null>人</null><jiguan>儒學教諭一</jiguan><null>人</null> <post_time>康熙</post_time><post_time>三</post_time><post_time>年</post_time>省<post_time>十五</post_time><post_time>年</post_time>復 設按<post_time>宣統</post_time><post_time>元</post_time><post_time>年</post_time>停選 訓導   <jiguan>一</jiguan><null>人</null><jiguan>巡檢司巡檢一</jiguan><null>人</null> 峩嶺雍正 <post_time>六</post_time><post_time>年</post_time>裁 <jiguan>陰陽學訓術一</jiguan><null>人</null>   <jiguan>醫學訓科一</jiguan><null>人</null><jiguan>僧會司僧會一</jiguan><null>人</null><jiguan>道會司道會一</jiguan><null>人</null>   <jiguan>公館驛驛丞一</jiguan><null>人</null> <post_time>雍正</post_time><post_time>九</post_time><post_time>年</post_time>新設 <post_time>乾隆</post_time><post_time>二十</post_time><post_time>年</post_time>裁 
+<dy>〈漢〉</dy>〈漢〉   
+<dy>〈漢〉</dy><office>〈春穀長〉</office>〈春穀長〉 明嘉靖甲午知縣錢照 立題名石於治廳東 
+<office>〈春穀長〉</office><dy>〈漢〉</dy>【833】 
+<office>〈春穀長〉</office><dy>〈漢〉</dy><person>周瑜</person>  <jiguan>舒城</jiguan><null>人</null> 詳名宦 <post_time>建安 三年</post_time><post_time></post_time>  
+<office>〈春穀長〉</office><dy>〈漢〉</dy><person>周泰</person>  <jiguan>下蔡</jiguan><null>人</null>建安中以别部司馬隨 權住宣城補春穀長詳名宦  <post_time>闕年</post_time>  
+<office>〈春穀長〉</office><dy>〈漢〉</dy><person>黃蓋</person>  <jiguan>零陵</jiguan><null>人</null>詳名宦以上三人舊祀名宦明 嘉靖間黜萬歷十年知縣沈堯中申復  
+<dy>〈晉〉</dy>〈晉〉   
+<dy>〈晉〉</dy><office>〈南陵令〉</office>〈南陵令〉   
+<office>〈南陵令〉</office><dy>〈晉〉</dy><person>陳日昇</person>  作令南陵有惠澤民德之奏留其家於陵 立廟薦福山以奉其先人香火見明唐文   獻香由寺重修   佛殿碑記今增 <post_time>隆安</post_time> 宋齊春穀職官姓氏無考
+<dy>〈梁〉</dy>〈梁〉武帝末改置南陵屬南   陵郡有
+<dy>〈梁〉</dy><office>〈太守〉</office>〈太守〉
+<office>〈太守〉</office><dy>〈梁〉</dy><person>陳文</person><person>徹</person> 見<source_tag>梁書蘭欽及夏 侯景傅詳名宦</source_tag> 
+<dy>〈陳〉</dy>〈陳〉有
+<dy>〈陳〉</dy><office>〈太守〉</office>〈太守〉
+<office>〈太守〉</office><dy>〈陳〉</dy><person>戴  </person><person> </person><person>僧朗</person> 見省 志 
+<dy>〈唐〉</dy>〈唐〉   
+<dy>〈唐〉</dy><office>〈南陵令〉</office>〈南陵令〉 
+<office>〈南陵令〉</office><dy>〈唐〉</dy>【834】闕年  
+<office>〈南陵令〉</office><dy>〈唐〉</dy><person>姚紹之</person>  <jiguan>武康</jiguan><null>人</null>中宗時任<prev_office>左臺侍御史</prev_office>坐贓 貶<prev_office>瓊山尉</prev_office>授南陵令見<source_tag>唐書酷吏傳</source_tag>   
+<office>〈南陵令〉</office><dy>〈唐〉</dy><post_time>〈寶應〉</post_time>〈寶應〉  
+<post_time>〈寶應〉</post_time><office>〈南陵令〉</office><dy>〈唐〉</dy><person>韋冰</person><person></person> 見<source_tag>李 白集 </source_tag>
+<office>〈南陵令〉</office><dy>〈唐〉</dy><post_time>〈大歷〉</post_time>〈大歷〉  
+<post_time>〈大歷〉</post_time><office>〈南陵令〉</office><dy>〈唐〉</dy><person>崔陵</person>  詳名宦<othername>按省 志作崔倰</othername>有傅 <post_time>闕年</post_time>  
+<office>〈南陵令〉</office><dy>〈唐〉</dy><person>李靡</person>     
+<office>〈南陵令〉</office><dy>〈唐〉</dy><person>李褍</person>  <othername>舊志作瑞</othername> <source_tag>今從府志</source_tag>    
+<office>〈南陵令〉</office><dy>〈唐〉</dy><person>鄭華</person>  
+<office>〈南陵令〉</office><dy>〈唐〉</dy><post_time>〈元和〉</post_time>〈元和〉  
+<post_time>〈元和〉</post_time><office>〈南陵令〉</office><dy>〈唐〉</dy><person>范</person><person>傳眞</person>  按傳<jiguan>眞順陽 </jiguan><null>人</null>詳名宦 
+<dy>〈宋〉</dy>〈宋〉   
+<dy>〈宋〉</dy><office>〈南陵知縣事〉</office>〈南陵知縣事〉 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><post_time>〈嘉祐〉</post_time>〈嘉祐〉  
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>梅正臣</person> <jiguan>宣城</jiguan><null>人</null> 詳名宦    
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>唐意</person>  <kins>介之孫</kins>以病 按<othername>省志作唐恕</othername> 
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【835】   
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>劉立之</person>  <jiguan>臨江軍</jiguan><null>人</null>見<source_tag>歐陽 修劉立之墓誌銘</source_tag>    
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>王鑒</person>                      
+<post_time>〈嘉祐〉</post_time><office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>吳一能</person>  <source_tag>見貢 院記  </source_tag>
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>翁延慶</person> <post_time>宣和 元</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>姚舜恭</person> <post_time>四</post_time><post_time>年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>黃清卿</person> <post_time>七</post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>東經國</person> <post_time>建炎 元</post_time><post_time></post_time><post_time>年</post_time>&nbsp;<othername>題名作 束經國</othername>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>李孝恭</person> <post_time>紹興 元年</post_time><post_time></post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>黃大知</person> <post_time>四</post_time><post_time>年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>趙達之</person> <post_time>五</post_time><post_time>年</post_time> 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【836】 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>錢讜</person> <post_time>八</post_time><post_time>年</post_time>                    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>張知剛</person> <post_time>十一 年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>許倜</person> <post_time>十四 年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>任輔之</person> <post_time>十七 年</post_time> 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>范普</person> <post_time>二十 年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>林格</person> <post_time>二十 三</post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>葛祺</person> <post_time>二十 八</post_time><post_time>年</post_time> 撫字黎庶 民咸愛之  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>邢孝恭</person> <post_time>三十 一</post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>曹汲</person> <post_time>隆興 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>江振卿</person> <post_time>乾道 二</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【837】  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>趙傳慶</person>  <post_time>三</post_time><post_time>年</post_time>                  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>葉各</person> <post_time>七</post_time><post_time>年</post_time> <othername>題名作 葉谷</othername>    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>王寅</person> <post_time>九</post_time><post_time>年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>單端方</person> <othername>題名作 單端彥</othername> <post_time>闕年</post_time> 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>王宣</person> <post_time>淳熙 二</post_time><post_time></post_time><post_time>年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>葉鏞</person> <post_time>五</post_time><post_time>年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>莫俯</person> <post_time>八</post_time><post_time>年</post_time>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>莊玠</person> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>郭嶤</person> <post_time>十五 年</post_time> 始纂縣志 詳名宦   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>許幾</person>  <jiguan>貴溪</jiguan><null>人</null> 按今從 宗志增名宦傳 <post_time>闕年</post_time>
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【838】   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>毛注</person>  <jiguan>西安</jiguan><null>人</null><null>字</null><zi>聖可</zi><entry_way>進士</entry_way>以治 辦稱 <jiguan>按省志作衢州</jiguan><jiguan></jiguan><null>人</null>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>兪政</person> 字<zi>以德</zi><jiguan><null>號</null><hao>為軒</hao>清源</jiguan><null>人</null><next_office>陞任 廣德知</next_office><next_office>州</next_office>見<source_tag>俞氏宗譜今增</source_tag>  <post_time>紹定</post_time>
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>趙若琚</person> <post_time>嘉 </post_time><post_time>三</post_time><post_time>年</post_time> <source_tag>楊志嘉熙二年修學有王遂 記 按王遂修學記詳金石 </source_tag>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>葉英</person> <post_time>闕年</post_time>   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>徐大倫</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>商許</person>    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>趙岌夫</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>陳鑄</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>章浩</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>蔣孝聿</person>                  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【839】   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>康丕祖</person>                    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>應謙之</person>    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>姚世表</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>詹又民</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>袁欽儒</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>唐棐</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>呂祖烈</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>周磻</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>劉詠</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>趙汝棠</person>  
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy>【840】   
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>李柄</person>  <jiguan>歷陽</jiguan><null>人</null><next_office>遷 知無為軍</next_office>    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>白下起</person>    
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>徐圭</person>     
+<office>〈南陵知縣事〉</office><dy>〈宋〉</dy><person>陶若居</person>  <source_tag>以上二十一人 見嘉靖府志</source_tag> 
+<dy>〈元〉</dy>〈元〉   
+<dy>〈元〉</dy><office>〈達魯花赤〉</office>〈達魯花赤〉  
+<office>〈達魯花赤〉</office><dy>〈元〉</dy><person>哈迷</person> <post_time>大德 七年</post_time><post_time></post_time>  
+<office>〈達魯花赤〉</office><dy>〈元〉</dy><person>阿里牙答思</person> <post_time>至治</post_time>  
+<office>〈達魯花赤〉</office><dy>〈元〉</dy><person>別不花</person> <post_time>至正</post_time>   
+<office>〈達魯花赤〉</office><dy>〈元〉</dy><person>王立沙</person>       
+<dy>〈元〉</dy><office>〈南陵尹〉</office>〈南陵尹〉               
+<office>〈南陵尹〉</office><dy>〈元〉</dy>【841】  
+<office>〈南陵尹〉</office><dy>〈元〉</dy><person>兪承務</person> <source_tag>嘉靖府志</source_tag>稱其廉幹 惠愛至今民猶傳頌  <post_time>闕年</post_time>        
+<office>〈南陵尹〉</office><dy>〈元〉</dy><person>劉禎</person>  <source_tag>按徐志誤祺今據元大德 十一年 聖廟碑改正</source_tag>  <post_time>大德 七</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈南陵尹〉</office><dy>〈元〉</dy><person>王珪</person> <post_time>至治</post_time>  
+<office>〈南陵尹〉</office><dy>〈元〉</dy><person>程恭</person> <post_time>元</post_time><post_time>統 元</post_time><post_time></post_time><post_time>年</post_time> <entry_way>承務郎</entry_way><jiguan>山東濟南路</jiguan><null>人</null>見<source_tag>元統元年 進士錄程恭題名下徐志遺今增</source_tag>   
+<office>〈南陵尹〉</office><dy>〈元〉</dy><person>任賢佐</person> <post_time>至正</post_time>
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈南陵縣知縣〉</office>〈南陵縣知縣〉    
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>梅鼎</person> <jiguan>鳳陽</jiguan><null>人</null> 詳名宦 <post_time>洪武</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>甘潤</person> <jiguan>湖廣黃州府</jiguan> <null>人</null>詳名宦 <post_time>二</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>雷燧</person>  <jiguan>福建建甯</jiguan><null>人</null> <jiguan>按 省志作</jiguan><jiguan>建平</jiguan><null>人</null> <post_time>五</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>吳冕</person>  <jiguan>順天涿 州</jiguan><jiguan></jiguan><null>人</null> <post_time>十一 年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【842】 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>羅思忠</person>  <jiguan>廣西象州</jiguan><null>人</null><next_office>陞 僉事</next_office>見流寓 <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>吳謙</person>  <jiguan>河南光 州</jiguan><jiguan></jiguan><null>人</null> <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>周銓</person>  <jiguan>江西清江 </jiguan><null>人</null><entry_way>進士</entry_way> <post_time>二十 七</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>杜諒</person>  <jiguan>四川</jiguan><null>人</null><entry_way>監生</entry_way> <next_office>陞陜西參議</next_office> <post_time>三十 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>童銓</person> <jiguan>浙江淳安</jiguan><null>人</null><entry_way>進士</entry_way>陞<next_office>禮部郎中</next_office>按康熙府志 及舊縣志倶仍明舊紀洪武三十四年今為   更   正 <post_time>建文 三年</post_time><post_time></post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>楊眞</person>  宋志作六  年任誤 <post_time>永樂 十六年</post_time><post_time></post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>于幹</person>  <post_time>宣德 二</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>張亨</person>  <post_time>宣德 間任 闕年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>王所瞻</person>  宋志作七  年任誤 <post_time>正統 元</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【843】  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>白榮</person> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>金鼎</person>  <post_time>景泰 三年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>劉恕</person>  <post_time>景泰中</post_time><prev_office>監察 御史</prev_office><post_type>謫任</post_type> <post_time>闕年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>孔公玘</person>  <jiguan>山東曲阜</jiguan><null>人</null> <kins>至聖五十二代孫</kins><entry_way>監生</entry_way>任 九年<next_office>陞</next_office><next_office>湖州府同知</next_office>舊志作元年任誤  <post_time>成化 五</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>孟瀛</person>  <jiguan>直隸博野</jiguan> <null>人</null><entry_way>進士</entry_way> <post_time>十三 年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>沈榮</person>  <entry_way>進 士</entry_way>  <post_time>闕年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>姚鑾</person>  <entry_way>監生</entry_way>並<post_time>成 化中</post_time><post_type>任</post_type>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>沈元</person>  <null>字</null><zi>伯仁</zi><jiguan>浙江慈谿</jiguan><null>人</null> <entry_way>進士</entry_way><next_office>陞監察御史</next_office> <post_time>宏治 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>魏宏</person>  <jiguan>廣西桂林 府</jiguan><jiguan></jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>鄧一鶚</person>  <null>字</null><zi>孟騫</zi><jiguan>安 福</jiguan><jiguan></jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>十四 年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【844】 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>黃世昭</person>  <null>字</null><zi>用晦</zi><jiguan>福建 侯</jiguan><jiguan>官</jiguan><null>人</null><entry_way>舉人</entry_way>  <post_time>十五 年</post_time>            
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>王凱</person>  <null>字</null><zi>文相</zi><jiguan>直隸蠡縣</jiguan><null>人</null><entry_way>進士</entry_way> <post_time>宏治間</post_time><post_type>任</post_type><next_office>擢監察御史</next_office> <post_time>闕年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>胡文靜</person>  <jiguan>浙江山陰</jiguan><null>人</null><entry_way>進士</entry_way>詳名 宦 按<othername>通志作胡文靖</othername> <post_time>正德 四</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>黃誥</person>  <null>字</null><zi>汝欽</zi><jiguan>湖廣 善</jiguan><jiguan>化</jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>七</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>劉渠</person>  <jiguan>江西鉛山</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>劉進</person>  <jiguan>江西萬安</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十二 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>楊康</person>  <jiguan>江西豐城</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>兪昌言</person> <jiguan>福建莆田</jiguan><null>人</null><entry_way>舉人</entry_way>修縣志未  刻按今從宗志增名宦傳 <post_time>嘉靖 七年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>張忠</person>  <jiguan>直隸任邱</jiguan><null>人</null><entry_way>進士</entry_way><next_office>擢 吏部主事</next_office>詳名宦 <post_time>九</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>錢照</person>  字<jiguan>叔初浙江慈溪</jiguan><null>人</null><entry_way>進士</entry_way>修縣志 <next_office>陞評事</next_office> 按今從宗志增名宦傳 <post_time>十二 年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【845】 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>江應選</person> <jiguan>浙江常山</jiguan><null>人</null> <entry_way>進士</entry_way>艱去             <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>鄺津</person> <jiguan>直隸任邱</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>十七 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>陸鑒</person>  <jiguan>浙江蘭溪</jiguan><null>人</null><entry_way>進士</entry_way> 艱去<next_office>後任宣城 </next_office> <post_time>二十 年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>藍釜</person> <jiguan>福建建安</jiguan><null>人</null><entry_way>舉人</entry_way>楊志作二 十二年任<othername>宋志作蘭釜誤</othername>  <post_time>二十 三</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>李初元</person>  <jiguan>四川營山</jiguan><null>人</null><entry_way>進士</entry_way> <next_office>擢御史</next_office>詳名宦 <post_time>二十 五</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>方懋元</person>  <jiguan>江西貴溪</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>三十 年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>楊九韶</person>  <jiguan>浙江餘姚</jiguan><null>人</null><entry_way>進 士</entry_way>艱去詳名宦 <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>傅陽明</person>  <jiguan>福建南安</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>三十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>周詩</person>  <jiguan>浙江錢塘</jiguan><null>人</null><entry_way>進士</entry_way>艱去 <next_office>後擢給事中</next_office>詳名宦 <post_time>三十 五</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>郇鑒 </person><jiguan>浙江仁和</jiguan><null>人</null><entry_way>舉人</entry_way> 按 今後宗志增名宦傳 <post_time>三十 八</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【846】 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>郜永春</person> <jiguan>直隸長垣</jiguan><null>人</null><entry_way>進士</entry_way> <next_office>擢御史</next_office>詳名宦  <post_time>四十 一</post_time><post_time>年</post_time>          
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>姚繼可</person>  <jiguan>河南囊城</jiguan><null>人</null> <entry_way>進士</entry_way><next_office>擢御史</next_office> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>熊瑞</person> <jiguan>江西南昌</jiguan><null>人</null><entry_way>進士</entry_way> <next_office>陞梧州府同知</next_office> <post_time>隆慶 二年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>丁應詔</person>  <jiguan>江西長興</jiguan><null>人</null><entry_way>進士</entry_way>艱去  <othername>按省志作丁應紹</othername> <post_time>五年</post_time><post_time></post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>林鳴盛</person>  <jiguan>福建莆田</jiguan><null>人</null><entry_way>進 士</entry_way><next_office>擢兵部主事 </next_office><post_time>萬歷 二年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>沈堯中</person>  <jiguan>浙江嘉興</jiguan><null>人</null><entry_way>進士</entry_way>修縣志詳 名宦 <jiguan>按省志作嘉</jiguan><jiguan>善</jiguan><null>人</null> <post_time>八</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>郝世科</person>  <jiguan>四川宜賓</jiguan><null>人</null><entry_way>進 士</entry_way><next_office>擢户科給事</next_office> <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>聶桂芳</person> <jiguan>廣東南海</jiguan><null>人</null><entry_way>進 士</entry_way><next_office>陞工部主事</next_office> <post_time>十八 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>林樞</person>  <jiguan>德化</jiguan><null>人</null> <entry_way>選貢</entry_way> <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>朱朝望</person>  <jiguan>湖廣武昌</jiguan><null>人</null><entry_way>舉人</entry_way> <next_office>陞衢州府同知</next_office> <post_time>二十 七</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【847】 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>劉學周</person>  <jiguan>湖廣武昌</jiguan><null>人</null> <entry_way>進士</entry_way>艱去  <post_time>三十 二</post_time><post_time>年</post_time>            
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>丁昉</person>  <jiguan>山東陽信</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>三十 三</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>徐調元</person>  <jiguan>浙江平湖</jiguan><null>人</null><entry_way>進 士</entry_way><next_office>擢刑部主事</next_office> <post_time>三十 六</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>張敏</person>  <jiguan>福建詔安</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>三十 八</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>黎寵</person> <jiguan>廣東清遠</jiguan><null>人</null><entry_way>選貢</entry_way><next_office>陞 雲南羅平州知州</next_office> <post_time>四十 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>張其孝</person>  <jiguan>山東長清</jiguan><null>人</null><entry_way>舉人</entry_way><post_time>天 啟</post_time><post_time>元</post_time><post_time>年</post_time><next_office>擢刑部主事</next_office> <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>陳廷詔</person>  <jiguan>湖廣松滋</jiguan><null>人</null><entry_way>舉人</entry_way>七 年<next_office>陞應天府推官</next_office> <post_time>天啟 二</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>周崇極</person>  <jiguan>湖廣麻城</jiguan><null>人</null><entry_way>舉人</entry_way><next_office>陞南京北城 兵馬司</next_office> <othername>按省志作周宗極</othername> <post_time>崇正 元</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>甘文奎</person> <null>字</null><zi>太弢</zi><jiguan>江西豐 城</jiguan><jiguan></jiguan><null>人</null><entry_way>歲貢</entry_way>艱去 <post_time>四</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>沈起蛟</person>  <jiguan>浙江長興</jiguan><null>人</null><entry_way>舉 人</entry_way><next_office>調三水知縣</next_office> <post_time>五</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy>【848】  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>王欽濓</person>  <jiguan>湖廣黃岡</jiguan> <null>人</null><entry_way>舉人</entry_way>  <post_time>七</post_time><post_time>年</post_time>              
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>王尙存</person>  <jiguan>浙江</jiguan><null>人</null><entry_way>舉人</entry_way><othername>縣志 作尙行</othername>今從府志 <post_time>八</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>杜繩甲</person>  <jiguan>四川富順</jiguan><null>人</null> <entry_way>舉人</entry_way>詳名宦 <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>陳大經</person>  <jiguan>福建甌甯</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>十一 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>熊汝埏</person> <jiguan>江西</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>十四 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>徐宗敬</person>  <jiguan>四川華陽</jiguan><null>人</null><entry_way>舉人</entry_way>卒 於官<othername>宋志作崇敬</othername>誤 <post_time>十五 年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈明〉</dy><person>朱鼐</person>   <jiguan>山西蒲州</jiguan><null>人</null> <entry_way>宗室換授</entry_way> <post_time>十六 年</post_time> 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈南陵縣知縣〉</office>〈南陵縣知縣〉  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>聶玠</person> <null>字</null><zi>輯五</zi><jiguan>山西蒲州</jiguan><null>人</null> <entry_way>進士</entry_way><post_time>六</post_time><post_time>年</post_time><next_office>擢御史</next_office> <post_time>順治 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>宋朝儒</person>  <jiguan>錦州府廣甯 縣</jiguan><jiguan></jiguan><null>人</null><entry_way>貢生</entry_way> <post_time>七</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【849】  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊必達</person>  <jiguan>奉天遼陽州</jiguan><null>人</null><entry_way>貢生</entry_way>修縣志理廢舉墜不 遺餘力<next_office>遷知州</next_office> 按今從宗志增名宦傳 <post_time>九</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>蔣汝賢</person>  <jiguan>直隸玉田</jiguan> <null>人</null><entry_way>貢生</entry_way> <post_time>十四 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>劉承允</person>  <jiguan>湖廣鄖陽</jiguan><jiguan>府上津</jiguan><null>人</null><entry_way>貢生</entry_way><othername>康 熙郡志舊縣志並作承永</othername> <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>姚自泓</person>  <null>字</null><zi>冰壺</zi><jiguan>江西 南昌</jiguan><jiguan></jiguan><null>人</null><entry_way>進士</entry_way> <post_time>十七 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>屈升瀛</person> <null>字</null><zi>君賜</zi><jiguan>四川通江</jiguan><null>人</null><entry_way>舉人</entry_way>加意作人 歲舉會課後數科獲雋者皆所獎拔 <post_time>康 七年</post_time><post_time></post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>杜源</person>  詳名 宦 <post_time>二十 年 </post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>戎式</person> <prev_office>旌德知縣</prev_office><post_type>調署</post_type>捐俸繕修 文廟見重修儒學碑記今增 <post_time>二十 七</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>馬國雄</person>  <jiguan>奉天</jiguan><null>人</null> <entry_way>監生</entry_way>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>趙臺憲</person>  <jiguan>山西盂縣</jiguan><null>人</null><entry_way>進士</entry_way> 剔弊賑荒卒於官 <post_time>三十 一</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王寅</person>  <jiguan>順天大興</jiguan> <null>人</null><entry_way>貢生</entry_way> <post_time>三十 五</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【850】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>康五瑞</person> <jiguan><null>號</null><hao>芳洲</hao>安福</jiguan><null>人</null><entry_way>進士</entry_way>才敏守清修廢賑荒 禮賢愛士<next_office>擢刑科給事中</next_office> 按今從宗志   增名   宦傳 <post_time>四十 二</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>方震煒</person>  <null>號</null><hao>海巖</hao><jiguan>廣東東莞</jiguan><null>人</null> <entry_way>舉人</entry_way>廉靜慈惠艱去 <post_time>四十 八</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>宋廷佐</person>  <jiguan><null>號</null><hao>翼庵</hao>奉天</jiguan><null>人</null>筆帖式任謙和下十善政 宜民修縣志<next_office>陞知府</next_office> 按今從宗志增名   宦   傳 <post_time>五十 一</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>龔朝偉</person>  <jiguan>廣東四會</jiguan><null>人</null><entry_way>廩 貢</entry_way><prev_office>教諭陞任</prev_office> <post_time>雍正 六年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>何普</person>  <jiguan>貴州</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>九</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>婁起鎬</person> <jiguan>浙江會 稽</jiguan><jiguan></jiguan><null>人</null>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>兪宏勳</person> <jiguan>浙江海鹽</jiguan><null>人</null><entry_way>副榜</entry_way>卒 於官<othername>省志作鴻勳</othername> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>鄭兆振</person>  <jiguan>廣東嘉應 州</jiguan><jiguan></jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>乾隆 元年</post_time><post_time></post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【851】   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>蕭廷瑞</person>  <jiguan>德州衛</jiguan><null>人</null><entry_way>舉人</entry_way><post_type>署任</post_type> 見 江南通志徐志遺今增   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>高宏裁</person>  <jiguan>直隸昌黎</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>劉瓚</person>  <jiguan>正黃旗</jiguan><null>人</null> <entry_way>進士</entry_way><post_type>調去</post_type> <post_time>八</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>段方臯</person> <jiguan>雲南廣西州</jiguan><null>人</null> <entry_way>舉人</entry_way><next_office>改教諭</next_office> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>弋照</person> <jiguan>山西安邑</jiguan><null>人</null> <entry_way>進士</entry_way>艱去 <post_time>十二 年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>衛步青</person> <jiguan>山西聞喜</jiguan><null>人</null> <entry_way>舉人</entry_way>病去  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>五格</person> <jiguan>正白旗</jiguan><null>人</null><entry_way>監 生</entry_way><next_office>調桐城</next_office> <post_time>十三 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>張開士</person>  <null>字</null><zi>柱江</zi><jiguan>浙江錢塘</jiguan><null>人</null><entry_way>進士</entry_way><prev_office>桐城調任</prev_office>政 治嚴明吏民欽服<next_office>陞宿州知州</next_office>詳名宦 <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>為寶</person> <jiguan>正黃旗 </jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>十八 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>陳應聯</person>  <jiguan>廣東大埔</jiguan> <null>人</null><entry_way>進士</entry_way> <post_time>二十 五</post_time><post_time>年</post_time>             
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【852】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>熊于兗</person> <jiguan>雲南趙州 </jiguan><null>人</null><entry_way>進士</entry_way>  <post_time>三十 一</post_time><post_time>年</post_time>             
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>關邦幹</person> <null>字</null><zi>震西</zi><jiguan>浙江錢塘</jiguan><null>人</null><entry_way>舉人</entry_way>清廉慈愛 雅意作人莅任未久丁艱病卒於陵 <post_time>三十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>曹應箕</person>  <jiguan>江蘇婁縣</jiguan><null>人</null> <entry_way>吏員</entry_way>卒於官 <post_time>三十 六</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>陳梅</person>  <jiguan>福建長樂</jiguan><null>人</null> <entry_way>舉人</entry_way>詳名宦 <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>田化</person>  <jiguan>江西新建</jiguan><null>人</null> <entry_way>舉人</entry_way>艱去 <post_time>三十 九</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>高怡</person>  <jiguan>漢軍鑲黃旗</jiguan><null>人</null>改<jiguan>大興 籍</jiguan><prev_office>山東長清縣調任</prev_office> <post_time>四十 三</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>周學元</person>  <jiguan>廣東南海</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>譚澤溥</person>  <jiguan>湖北天門</jiguan> <null>人</null><entry_way>進士</entry_way> <post_time>四十 九</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>周學元</person>  <post_type>復任</post_type> 按今從 宗志增名宦傳 <post_time>五十 二</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>許巽行</person>  <jiguan>江蘇華亭</jiguan> <null>人</null><entry_way>副貢</entry_way> <post_time>五十 五</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【853】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>左輔</person> <jiguan><null>號</null><hao>杏莊</hao>陽湖</jiguan><null>人</null><entry_way>進士</entry_way>  按今增名宦傳  <post_time>五十 九</post_time><post_time>年</post_time>          
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>石國偁</person>  <jiguan>福建閩縣</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>嘉慶 二年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>徐心田</person>  <jiguan>江西奉新</jiguan><null>人</null><entry_way>進士</entry_way>由<entry_way>翰林院庶吉 士</entry_way><entry_way></entry_way>改授 按今從宗志增名宦傳 <post_time>八</post_time><post_time>年</post_time>   以上舊志 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈南陵縣知縣〉</office>〈南陵縣知縣〉  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>陳士楨</person>  <jiguan>南通州</jiguan><null>人</null> <entry_time>甲戌</entry_time><entry_way><entry_way>進士</entry_way></entry_way> <post_time>嘉 慶 二十年</post_time><post_time></post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊景軾</person>  <jiguan>江蘇陽湖</jiguan> <null>人</null><entry_way>進士</entry_way> <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>劉邦鼎</person>  <jiguan>順天通州</jiguan><null>人</null><entry_way>進士</entry_way> <source_tag>按王成潞朗 陵雜詠詩注前令劉石臣修志 道光 </source_tag><post_time>元</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王成潞</person>  <jiguan>湖北江夏</jiguan><null>人</null> <entry_way>進士</entry_way>詳名宦 <post_time>六</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>吳□□</person>  <null>字</null><zi>鞠裳</zi><source_tag>何紹基東洲草堂集有 道光己丑寄吳鞠裳南陵詩</source_tag> <post_time>九</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【854】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>彭良舟</person> <post_time> 十二 年</post_time>                 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>陳泰登</person>  <post_time>十五 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王成潞</person>  <post_type>復 任 </post_type><post_time>十七 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王爰相</person>  <jiguan>陝西</jiguan><null>人</null> <entry_way>進士</entry_way> <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>鍾瀛</person>  <jiguan>順天</jiguan><null>人</null> <entry_way>進士</entry_way> <post_time>二十 九</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊景</person>  <jiguan>浙江山陰</jiguan> <null>人</null><entry_way>進士</entry_way> <post_time>闕年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>周□□</person>  失考     
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>顧□□</person> 失考   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>劉西園</person>  <jiguan>直隸</jiguan><null>人</null><entry_way>舉 人</entry_way>詳名宦 <post_time>咸豐 六年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>廉能</person> <jiguan>古廂白</jiguan> <jiguan>旗</jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>十</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【855】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>張世昌</person>  <jiguan>順天府大興</jiguan><null>人</null> <post_time>六月</post_time><post_type>署詳</post_type>名宦 <post_time>同治 元年 </post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>曾開驥</person>  <jiguan>湖南</jiguan><null>人</null><entry_way>舉人</entry_way> <post_type>署任</post_type>詳名宦 <post_time>二</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>郭炳垣</person>  <post_time>八月</post_time> <post_type>署任</post_type>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>文翰</person>  <jiguan>廣西桂林</jiguan><null>人</null> <entry_way>舉人</entry_way><post_time>三月</post_time><post_type>署</post_type> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>蔚元昆</person> <jiguan>湖北荆門州</jiguan> <null>人</null><post_time>四月</post_time><post_type>署</post_type>  <post_time>六</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>宋慶嵩</person>  <null>字</null><zi>亹伯</zi><jiguan>湖南長沙</jiguan><null>人</null><post_time>六月</post_time><post_type>署</post_type>有惠愛斥金 數百掩遺骸務招墾見<source_tag>馬其昶宋君墓表</source_tag>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person><jiguan>蔡卓</jiguan><null>人</null></person> <jiguan>江西</jiguan><null>人</null><entry_way>進士</entry_way><post_time>八 月</post_time><post_type>署</post_type>曾修縣志 <post_time>七</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>彭廣鍾</person>  <jiguan>江西甯都</jiguan> <null>人</null><entry_way>拔貢</entry_way> <post_time>八</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>兪崇熙</person> <jiguan>浙江上虞</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>十二月</post_time><post_type>代理</post_type>    
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>侯朝棟</person>  <jiguan>山東歷城</jiguan><null>人</null> <post_time>十二月</post_time><post_type>代理</post_type> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【856】  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊春富</person>  <jiguan>雲南楚雄</jiguan><null>人</null><entry_way>進士</entry_way> <prev_office>婺源知縣</prev_office><post_type>調署</post_type> <post_time>十</post_time><post_time>年</post_time>           
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>方家藩</person>  <jiguan>浙江</jiguan><null>人</null> <post_time>六月</post_time><post_type>署</post_type> <post_time>十一 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>彭廣鍾</person>  <post_time>四月</post_time> <post_type>回任</post_type> <post_time>十三 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊式榮</person>  <jiguan>江蘇溧陽</jiguan><null>人</null><entry_way>副貢</entry_way> <prev_office>霍邱知縣</prev_office><post_type>調署</post_type> <post_time>光緒 元年</post_time><post_time></post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王必鏞</person>  <jiguan>浙江山陰籍廣西臨 桂</jiguan><jiguan></jiguan><null>人</null><entry_way>舉人</entry_way><post_time>二月</post_time><post_type>署</post_type> <post_time>四</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>德壽</person> <jiguan>漢軍正紅旗</jiguan><null>人</null><entry_way>繙譯生員</entry_way><entry_way></entry_way>選 授<prev_office>甯國府通判</prev_office><post_time>十二月</post_time><post_type>兼理</post_type>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>文龍</person>  <null>字</null><zi>禹門</zi><jiguan>漢軍正藍 旗</jiguan><jiguan></jiguan><null>人</null><entry_way>附生</entry_way><post_time>三月</post_time><post_type>任</post_type> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>余錫麒</person> <jiguan>江西德化</jiguan><null>人</null><prev_office>安徽試 用府經歷</prev_office><post_time>七月</post_time><post_type>代理</post_type> <post_time>七</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>楊士玉</person>  <null>字</null><zi>璞生</zi><jiguan>直隸臨榆</jiguan><null>人</null><entry_way>舉人</entry_way> <prev_office>選授蕪湖縣</prev_office><post_time>閏七月</post_time><post_type>調署</post_type>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>文龍</person>  <post_time>五月</post_time><post_type>回任</post_type> 詳名宦 <post_time>十</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【857】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>德壽</person> 見前<post_time>正 月</post_time><post_type>兼理</post_type>  <post_time>十二 年</post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>德愷</person> <jiguan>滿洲鑲紅旗</jiguan><null>人</null><entry_way>舉人</entry_way> <prev_office>太湖知縣</prev_office><post_time>三月</post_time><post_type>調署</post_type>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>張源溱</person>  <null>字</null><zi>汝南</zi><jiguan>湖北鍾祥</jiguan><null>人</null><entry_way>輿 人</entry_way><post_time>閏四月</post_time><post_type>任</post_type>詳名宦 <post_time>十三 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>錢應豐</person>  <jiguan>浙江山陰籍江蘇華亭</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way>歷<prev_office>保花翎 知府用同知借補甯國府通判</prev_office><post_time>二月</post_time><post_type>兼理</post_type> <post_time>十八 年 </post_time>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>賴同宴</person> <null>字</null><zi>劍坪</zi><jiguan>江西奉新</jiguan><null>人</null><entry_way>舉 人</entry_way><prev_office>五河知縣</prev_office><post_time>六月</post_time><post_type>調署</post_type>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>趙煦</person>  <jiguan>湖南善化</jiguan><null>人</null><entry_way>軍功</entry_way><prev_office>花翎同 知銜補用知縣</prev_office><post_time>二月</post_time><post_type>任</post_type> <post_time>十九 年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>史昌治</person>  <jiguan>順天大興</jiguan><null>人</null><entry_way>貢生</entry_way><prev_office>甯 國府經歷</prev_office><post_time>六月</post_time><post_type>代理 </post_type><post_time>二十 一</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>孫玉銘</person>  <jiguan>直隸清苑</jiguan><null>人</null><entry_way>舉人</entry_way> <prev_office>大挑知縣</prev_office><post_time>七月</post_time><post_type>署</post_type>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>孫鳴臯</person>  <jiguan>浙江山陰籍直隸易</jiguan><jiguan>州</jiguan><null>人</null> <entry_way>翰林院庶吉</entry_way><entry_way>士</entry_way><post_time>四月</post_time><post_type>任</post_type> <post_time>二十 二</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>宗能徵</person> <jiguan>浙江會稽</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>毫州知 州</prev_office><post_time>二月</post_time><post_type>調署</post_type>修南陵小志 <post_time>二十 四</post_time><post_time>年</post_time>
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy>【858】 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>孫鳴臯</person>  <post_time>七月</post_time> <post_type>回任</post_type>  <post_time>二十 五</post_time><post_time>年</post_time>              
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>桂中純</person> <jiguan>江西臨川</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>宿 州知州</prev_office><post_time>正月</post_time><post_type>調署</post_type> <post_time>二十 六</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>傅毓湘</person>  <jiguan>湖南湘鄉</jiguan><null>人</null> <entry_way>舉人</entry_way><post_time>八月</post_time><post_type>任</post_type> <post_time>二十 七</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>林東雲</person>  <jiguan>順天宛平</jiguan><null>人</null><entry_way>附 貢</entry_way><post_time>閏五月</post_time><post_type>代理</post_type> <post_time>二十 九</post_time><post_time>年</post_time>   
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>傅毓湘</person>  <post_time>十一月</post_time> <post_type>回任</post_type>  
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>蕭德驥</person>  <jiguan>四川富順</jiguan><null>人</null><entry_way>附貢</entry_way><prev_office>渦 陽知縣</prev_office><post_time>八月</post_time><post_type>調署</post_type> <post_time>三十 一</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>馬杏林</person>  <jiguan>河南西華</jiguan><null>人</null> <entry_way>監生</entry_way><post_time>八月</post_time><post_type>任</post_type> <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>王慶嵩</person>  <jiguan>江西鄱陽</jiguan><null>人</null> <entry_way>舉人</entry_way><post_time>六月</post_time><post_type>署</post_type> <post_time>三十 三</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>兪炳章</person> <jiguan>江蘇清河</jiguan><null>人</null><post_time>正月</post_time> <post_type>署</post_type>捐廉修縣志 <post_time>三十 四</post_time><post_time>年</post_time> 
+<office>〈南陵縣知縣〉</office><dy>〈清〉</dy><person>程用傑</person>  <jiguan>湖北雲夢</jiguan><null>人</null> <entry_way>舉人</entry_way><post_time>四月</post_time><post_type>任</post_type> <post_time>宣統 元</post_time><post_time></post_time><post_time>年</post_time>
+【859】   以上新增                
+<dy>〈唐〉</dy>〈唐〉   
+<dy>〈唐〉</dy><office>〈丞〉</office>〈丞〉  
+<office>〈丞〉</office><dy>〈唐〉</dy><person>李嶷</person>  <post_time>貞元 十七年</post_time><post_time></post_time>  
+<office>〈丞〉</office><dy>〈唐〉</dy><person>崔琦</person>  <post_time>闕年</post_time><source_tag>盧綸有  詩贈</source_tag>    
+<office>〈丞〉</office><dy>〈唐〉</dy><person>常□</person> <source_tag>李白  有詩</source_tag> 
+<dy>〈宋〉</dy>〈宋〉   
+<dy>〈宋〉</dy><office>〈丞〉</office>〈丞〉  
+<office>〈丞〉</office><dy>〈宋〉</dy><person>趙時賞</person><person></person>  <next_office>攝旌德事</next_office> 詳名宦 <post_time>德祐 元</post_time><post_time></post_time><post_time>年</post_time>
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈縣丞〉</office>〈縣丞〉 闕年  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>謝德祚</person>  <jiguan>象山</jiguan><null>人</null>明初為<prev_office>南陵丞</prev_office> <source_tag>見方正學謝氏譜序</source_tag>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>沈納</person> <post_time>洪武  二年</post_time><post_time></post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy>【860】 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>章昂</person>  <entry_way>監 生</entry_way>  <post_time>永樂 七年</post_time><post_time></post_time>                 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>龍得銘</person> <post_time>宣德</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>吳庶</person>  <post_time>正統 二年</post_time><post_time></post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>蕭孟政</person>  <post_time>五</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>劉珪</person>  宋志作七  年任誤 <post_time>十</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>顏禮</person> <jiguan>湖廣巴陵</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>闕年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>耿勉</person>  <post_time>景泰 三年</post_time><post_time></post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>謝文祥</person>  <jiguan>湖廣耒陽</jiguan><null>人</null>詳名 宦<othername>宋志作文詳誤</othername>  <post_time>成化 元年</post_time><post_time></post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>匡□</person> <post_time>成化 間任 闕年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>李布</person>  <post_time>宏治 二</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy>【861】  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>李元器</person>  <jiguan>江西泰和</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>闕年</post_time>                
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>高嵩</person>  <post_time>並宏治 間任 </post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>張鳳翰</person>  <jiguan>山東東平 州</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way> <post_time>正德 元年</post_time><post_time></post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>朱明</person>  <jiguan>浙江安吉 州</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way> <post_time>三</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>晁政</person>  <jiguan>河南</jiguan><null>人</null> <entry_way>吏員</entry_way> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>關冕</person> <post_time>七</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>韓思義</person>  <jiguan>順天保定 </jiguan><null>人</null><entry_way>監生</entry_way> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>龍廷章</person> <post_time>十一 年 </post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>錢瑤</person>  <jiguan>順天霸州 </jiguan><null>人</null><entry_way>監生</entry_way> <post_time>十二 年 </post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>劉孟選</person>  <post_time>十五 年</post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy>【862】 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>金坡</person>  <jiguan>浙江臨海</jiguan> <null>人</null><entry_way>吏員</entry_way>  <post_time>嘉靖 元年</post_time><post_time></post_time>               
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>蔣從龍</person>  <entry_way>監 生</entry_way> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>翁自如</person> <jiguan>浙江餘姚 </jiguan><null>人</null><entry_way>生</entry_way> <post_time>六</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>廖思</person>  <jiguan>江西萬安 </jiguan><null>人</null><entry_way>監生</entry_way> <post_time>十一 年 </post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>羅文</person>  <jiguan>福建建甯</jiguan><null>人</null><entry_way>歲 貢</entry_way>舊縣志闕年 <post_time>十五 年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>林文瓊</person>  <jiguan>浙江江山</jiguan><null>人</null>詳名宦 舊縣志作二十二年作 <post_time>二十 三</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>戴紹</person> <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>王翔鳳</person>  <jiguan>北直</jiguan><null>人</null><entry_way>歲貢</entry_way> <othername>一作鳳翔</othername> <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>曾銑</person>  <jiguan>湖廣宜章</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>三十 三</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>莫逞</person> <jiguan>廣西桂平</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>三十 四</post_time><post_time>年</post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy>【863】 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>陳一德</person>  <jiguan>浙江簫山</jiguan> <null>人</null><entry_way>監生</entry_way>  <post_time>三十 八</post_time><post_time>年</post_time>             
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>戴珍</person> <jiguan>江西上饒</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>四十 一</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>張良貴</person>  <jiguan>四川綦江</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>于田</person> <jiguan>山東萊陽</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>隆慶 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>葉雄</person>  <jiguan>浙江慈谿</jiguan> <null>人</null><entry_way>知印</entry_way> <post_time>五</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>童兩</person> <jiguan>浙江遂安</jiguan><null>人</null><entry_way>監生</entry_way><othername>縣 志作雨今從府志</othername> <post_time>萬歷 元</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>王喬岱</person>  <jiguan>湖廣石首</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>三</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>鄭廷元</person>  <jiguan>四川郫縣</jiguan><null>人</null><entry_way>恩貢</entry_way><prev_office>陞 浙江海鹽衛經歷</prev_office> <post_time>六</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>公一鳴</person> <jiguan>山東蒙陰 </jiguan><null>人</null><entry_way>生</entry_way> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>章元</person>  <jiguan>浙江會稽</jiguan> <null>人</null><entry_way>儒士</entry_way> <post_time>十一 年</post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy>【864】 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>章四科</person>  <jiguan>山東滕 縣</jiguan><jiguan></jiguan><null>人</null>  <post_time>十三 年</post_time>              
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>劉讚</person>  <jiguan>江西鄱 陽</jiguan><jiguan></jiguan><null>人</null> <post_time>十七 年</post_time>   
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>李純</person>  <jiguan>山東高 唐</jiguan><jiguan>州</jiguan><null>人</null>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>李應麟</person>  <jiguan>泗州</jiguan><null>人</null><jiguan>順治 志作四</jiguan><jiguan>川</jiguan><null>人</null> <post_time>十八 年 </post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>王文禕</person>  <jiguan>浙江 </jiguan><null>人</null> <post_time>二十 年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>周邦棟</person>  <jiguan>安福</jiguan><null>人</null> <entry_way>監生</entry_way> <post_time>二十 七</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>楊懋義</person>  <jiguan>浙江諸曁</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>郭維翰</person>  <jiguan>福建莆 田</jiguan><jiguan></jiguan><null>人</null> <post_time>三十 六</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>陳墍</person>  <jiguan>浙江餘姚</jiguan><null>人</null><entry_way>監 生</entry_way><next_office>陞魯府紀善</next_office> <post_time>三十 八</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>曹棨</person>  <jiguan>湖廣枝江</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>四十 二</post_time><post_time>年</post_time>
+<office>〈縣丞〉</office><dy>〈明〉</dy>【865】 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>婁惟棠</person> <jiguan>浙江</jiguan><null>人</null><othername>宁志 作維堂誤</othername>  <post_time>四十 四</post_time><post_time>年</post_time>            
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>林萬春</person>  <jiguan>福建 </jiguan><null>人</null> <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>施存仁</person>  <jiguan>浙江 </jiguan><null>人</null> <post_time>天啟 二年</post_time><post_time></post_time>  
+<office>〈縣丞〉</office><dy>〈明〉</dy><person>謝國觀</person>  <jiguan>浙江</jiguan><null>人</null><othername>縣志作國光 今從府志</othername>是年缺裁 <post_time>五</post_time><post_time>年</post_time>
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈縣丞〉</office>〈縣丞〉  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>魯聖學</person> <jiguan>山西垣曲</jiguan><null>人</null><entry_way>貢生</entry_way>由<prev_office>太平縣丞 </prev_office><post_type>調任</post_type>前明裁康熙十年復設 <post_time>康熙 十五年</post_time><post_time></post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>任之尹</person> <jiguan>山西石樓</jiguan> <null>人</null><entry_way>貢生</entry_way> <post_time>十六 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>馮慶餘</person>  <jiguan>山西振武 衛</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way> <post_time>二十 二</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>石啟運</person>  <jiguan>陜西富平 </jiguan><null>人</null><entry_way>監生</entry_way> <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>傅耀祖</person>  <jiguan>湖廣竹山 </jiguan><null>人</null><entry_way>貢生</entry_way> <post_time>三十 二</post_time><post_time>年</post_time>
+<office>〈縣丞〉</office><dy>〈清〉</dy>【866】 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>史光岳</person>  <jiguan>奉天</jiguan><null>人</null> <entry_way>監生</entry_way> <post_time>三十 三</post_time><post_time>年</post_time>                 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>孫枝華</person>  舊志<jiguan>山海</jiguan><null>人</null><entry_way>監生</entry_way>查山海有衛無 縣而志亦無衛字疑上海之誤  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>許名儒</person>  <jiguan>直隸涞水</jiguan><null>人</null><entry_way>監生</entry_way><next_office>陞懹遠 知縣</next_office>舊志四十一年任 <post_time>四十 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>郅廷錫</person> <jiguan>山西蒲州</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>常澤潤</person> <jiguan>山西大同前 衛</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way> <post_time>五十 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>王國用</person>  <jiguan>山西安邑</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>五十 七</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>陳永貴</person>  <jiguan>山西祁縣</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>雍正 三</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>李可植</person>  <jiguan>直隸遵化</jiguan> <jiguan>州</jiguan><null>人</null><entry_way>監生</entry_way> <post_time>乾隆 五</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>劉簡</person>  <jiguan>寶山</jiguan><null>人</null><entry_way>附 貢</entry_way>卒於官 <post_time>九</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>徐景埰</person>  <jiguan><null>字</null><zi>硯亭</zi>元和</jiguan><null>人</null> <prev_office>刑部司獄</prev_office>陞任 <post_time>十六 年</post_time>
+<office>〈縣丞〉</office><dy>〈清〉</dy>【867】 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>厲守泰</person> <jiguan>直隸靜 海</jiguan><jiguan></jiguan><null>人</null> <post_time>三十 三</post_time><post_time>年</post_time>               
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>朱泰曾</person>  <jiguan>吳縣</jiguan><null>人</null> <entry_way>監生</entry_way> <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>趙文憲</person>  <jiguan>順天房山</jiguan> <null>人</null><entry_way>拔貢</entry_way> <post_time>四十 二</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>徐壇</person>  <jiguan>浙江會稽</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>四庫館謄錄 議敘補授</prev_office> 按壇後<next_office>陞貴池縣</next_office> <post_time>四十 九</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>黃成龍</person>  <jiguan>漢軍正紅旗</jiguan> <null>人</null>筆帖式 <post_time>五十 七</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>吳克棻</person>  <jiguan>上元</jiguan><null>人</null><next_office>三年 調補婺源</next_office> <post_time>嘉慶 二年</post_time><post_time></post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>劉蘭榭</person>  <jiguan>山東樂安</jiguan><null>人</null><entry_way>拔貢</entry_way> <prev_office>四庫館謄錄議叙</prev_office> <post_time>三</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>張鳳翽</person>  <jiguan>直隸天津</jiguan><null>人</null>附<entry_way>監生</entry_way> <prev_office>實錄館議叙選授</prev_office> <post_time>八</post_time><post_time>年</post_time>   以上舊志 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈縣丞〉</office>〈縣丞〉 
+<office>〈縣丞〉</office><dy>〈清〉</dy>【868】 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>陳廷杰</person>  <jiguan>貴州鎭遠</jiguan><null>人</null><jiguan>湖南沅 州府籍</jiguan><entry_way>監生</entry_way><post_time>四月</post_time><post_type>署</post_type>  <post_time>同治 八</post_time><post_time></post_time><post_time>年</post_time>         
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>沈世德</person>  <jiguan>浙江山陰</jiguan><null>人</null><jiguan>順天宛平 籍</jiguan><entry_way>監生</entry_way><prev_office>知縣</prev_office>用<post_time>五月</post_time><post_type>署</post_type> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>李海壽</person>  <jiguan>江蘇江甯</jiguan><null>人</null>附 <entry_way>監生</entry_way><post_time>二月</post_time><post_type>署</post_type> <post_time>十一 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>姚近驊</person>  <jiguan>浙江錢塘</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>十二月</post_time><post_type>任</post_type> <post_time>十三 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>朱堃</person>  <jiguan>江蘇吳縣</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>補 用巡</prev_office><prev_office>檢</prev_office><post_time>九月</post_time><post_type>代理</post_type> <post_time>光緒 四年</post_time><post_time></post_time>   
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>吳承節</person>  <jiguan>河南固始</jiguan><null>人</null><entry_way>附生</entry_way><prev_office>候 補州判</prev_office><post_time>十一月</post_time><post_type>署</post_type>   
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>翟鳴琮</person> <jiguan>江西南昌縣</jiguan><null>人</null> <entry_way>議叙</entry_way><post_time>三月</post_time><post_type>任</post_type> <post_time>六</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>甯彤蒸</person> <jiguan>湖南善化</jiguan><null>人</null><entry_way>貢生</entry_way><prev_office>候補 直隸</prev_office><prev_office>州州判</prev_office><post_time>六月</post_time><post_type>署</post_type> <post_time>九</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>翟鳴琮</person> <post_time>五月</post_time> <post_type>回任</post_type> <post_time>十</post_time><post_time>年</post_time>   
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>梅淵</person> <jiguan>浙江錢塘</jiguan><null>人</null><entry_way>監生</entry_way><entry_way>世襲</entry_way><prev_office>雲 騎尉</prev_office>由<prev_office>典史</prev_office><post_time>十月</post_time><post_type>兼理</post_type> 
+<office>〈縣丞〉</office><dy>〈清〉</dy>【869】   
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>陳汝為</person>  <jiguan>湖南益陽</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>涇 縣縣丞</prev_office><post_time>十二月</post_time><post_type>調署</post_type>          
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>陸鈺</person>  <jiguan>江蘇泰興</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>十一月</post_time><post_type>任</post_type> <post_time>十二 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>施鵬翥</person>  <jiguan>湖北隨州</jiguan><null>人</null> <post_time>九月</post_time><post_type>代理</post_type>  <post_time>十三 年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>畢兆麟</person> <jiguan>湖北黃梅</jiguan><null>人</null> <post_time>十二月</post_time><post_type>署</post_type>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>沈世德</person>  <post_time>九月</post_time> <post_type>復任</post_type> <post_time>十五 年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>李玉芬</person>  <jiguan>湖北武昌</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>試 用巡檢</prev_office><post_time>正月</post_time><post_type>代理</post_type>  <post_time>二十 年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>丁文熙</person>  <jiguan>浙江山陰</jiguan><null>人</null><entry_way>監生</entry_way> <prev_office>候補縣丞</prev_office><post_time>三月</post_time><post_type>署</post_type>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>孫達</person>  <jiguan>浙江烏程</jiguan><null>人</null>附<entry_way>監生</entry_way><prev_office>布 政司理間銜</prev_office><post_time>五月</post_time><post_type>任</post_type> <post_time>二十 一</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>龐懷典</person>  <jiguan>四川巴州</jiguan><null>人</null><prev_office>軍比六品 藍翎縣丞</prev_office><post_time>六月</post_time><post_type>代埋</post_type> <post_time>二十 三</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>孫達</person>  <post_time>十月</post_time> <post_type>回任</post_type> <post_time>二十 三</post_time><post_time>年</post_time>
+<office>〈縣丞〉</office><dy>〈清〉</dy>【870】 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>顧松</person> <jiguan>江蘇江都</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>閏八月</post_time><post_type>代理</post_type>  <post_time>二十 六</post_time><post_time>年</post_time>             
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>歸兆嘉</person> <jiguan>江蘇常熟</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>十二月</post_time><post_type>署</post_type>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>紀觀海</person> <jiguan>江蘇泰州</jiguan> 人<entry_way>監生</entry_way> <post_time>二十 八</post_time><post_time>年</post_time> 
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>鄭廉寶</person>  <jiguan>江蘇儀徵</jiguan><null>人</null> <entry_way>附貢</entry_way><post_time>十月</post_time><post_type>署</post_type>  <post_time>三十 三</post_time><post_time>年</post_time>  
+<office>〈縣丞〉</office><dy>〈清〉</dy><person>王榮昌</person>  <jiguan>江蘇</jiguan> <null>人</null>    以上新增 
+<dy>〈唐〉</dy>〈唐〉   
+<dy>〈唐〉</dy><office>〈簿〉</office>〈簿〉   
+<office>〈簿〉</office><dy>〈唐〉</dy><person>康澹</person> <source_tag>見顔眞卿撰 唐希說墓志</source_tag>  <post_time>闕年</post_time>  
+<office>〈簿〉</office><dy>〈唐〉</dy><person>李頻</person>  由<entry_way>進</entry_way><entry_way>士</entry_way><prev_office>祕書郎</prev_office><post_type>任</post_type>見本 傳按今增名宦傳 
+<dy>〈宋〉</dy>〈宋〉   
+<dy>〈宋〉</dy><office>〈簿〉</office>〈簿〉 
+<office>〈簿〉</office><dy>〈宋〉</dy>【871】闕年  
+<office>〈簿〉</office><dy>〈宋〉</dy><person>霍馴孫</person> <othername>縣志作訓孫</othername> 今從府志                
+<office>〈簿〉</office><dy>〈宋〉</dy><person>韓亮</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>楊柳</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>陳貫</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>魏養源</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>沈朴</person>  <othername>宋志  作樸</othername>    
+<office>〈簿〉</office><dy>〈宋〉</dy><person>韓春</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>邊友聞</person>    
+<office>〈簿〉</office><dy>〈宋〉</dy><person>施廣禮</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>莫綬</person> 
+<office>〈簿〉</office><dy>〈宋〉</dy>【872】   
+<office>〈簿〉</office><dy>〈宋〉</dy><person>張宏休</person>                     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>宋京</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>金蔡</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>徐挺之</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>閻世德</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>蕭必簡</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>洪炎</person>     
+<office>〈簿〉</office><dy>〈宋〉</dy><person>劉應子</person>  <othername>宋志作應予淳</othername> 祐中權旌德事    
+<office>〈簿〉</office><dy>〈宋〉</dy><person>文小二</person>  見流 寓 
+<dy>〈元〉</dy>〈元〉   
+<dy>〈元〉</dy><office>〈主簿〉</office>〈主簿〉 
+<office>〈主簿〉</office><dy>〈元〉</dy>【873】  
+<office>〈主簿〉</office><dy>〈元〉</dy><person>葛垛魯柏臺</person> <othername>舊志作兩人垜作墀</othername> 今據學宮碑記改正   <post_time>大德 </post_time>     
+<office>〈主簿〉</office><dy>〈元〉</dy><person>劉有慶</person>  見流 寓 <post_time>闕年</post_time>  
+<office>〈主簿〉</office><dy>〈元〉</dy><person>徐良杞</person>  <post_time>至治</post_time>  
+<office>〈主簿〉</office><dy>〈元〉</dy><person>胥天麒</person> <othername>舊志 誤麟</othername> <post_time>至正</post_time>
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈主簿〉</office>〈主簿〉  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>張遜</person>  <post_time>正統 十年</post_time><post_time></post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>胡珍</person>  <post_time>宏治 二</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>賈祿</person>  <post_time>十四 年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>吳虬</person>  <jiguan>江西泰和</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十五 年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>葉蓁</person>  <jiguan>河南西華</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>正德 四年</post_time><post_time></post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy>【874】  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>施恩</person>  <jiguan>雲南</jiguan><null>人</null> <post_time>承差 七年</post_time><post_time></post_time>                 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>王晉</person>  <entry_way>監 生</entry_way> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>陳表</person>  <jiguan>浙江平陽</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十二 年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>李嶽</person>  <post_time>十五 年 </post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy><person>秦涵</person> <jiguan>湖廣平江</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>嘉靖 四</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>常天祐</person> <entry_way>監 生</entry_way> <post_time>七</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>蔡大有</person>  <jiguan>浙江德清</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十二 年 </post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy><person>楊績</person>  舊縣志作二 十二年<post_type>任</post_type> <post_time>二十 三</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>燕廷堯</person> <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>劉思</person>  <jiguan>北直</jiguan><null>人</null><entry_way>監 生</entry_way>陞<next_office>縣丞</next_office> <post_time>三十 二</post_time><post_time>年</post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy>【875】 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>李學顏</person>  <jiguan>廣東南海</jiguan> <null>人</null><entry_way>歲貢</entry_way>  <post_time>三十 三</post_time><post_time>年</post_time>             
+<office>〈主簿〉</office><dy>〈明〉</dy><person>袁琳</person>  <jiguan>福建龍溪</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>三十 人年 </post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy><person>徐思古</person>  <jiguan>浙江蘭溪</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>四十 一</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>袁中和</person>  <jiguan>浙江慈溪</jiguan> <null>人</null><prev_office>知印</prev_office><post_type>任</post_type> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>蘇祥</person>  <jiguan>福建晉江</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>隆慶 元年</post_time><post_time></post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>蔡芬</person>  <jiguan>江西豐城</jiguan><null>人</null><entry_way>吏 員</entry_way>陞<next_office>營繕所副 </next_office><post_time>四</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>潘偉</person>  <jiguan>山東齊東</jiguan> <null>人</null><entry_way>歲貢</entry_way> <post_time>萬歷 元年 </post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>田植</person>  <jiguan>河南鹿邑</jiguan><null>人</null><entry_way>監生</entry_way> 舊縣志作<post_time>二</post_time><post_time>年</post_time>作 <post_time>三</post_time><post_time>年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>高釴</person>  <jiguan>浙江臨安</jiguan><null>人</null><prev_office>知 印</prev_office><post_type>任</post_type><next_office>陞縣丞</next_office> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>徐良輔</person>  <jiguan>直隸延慶 州</jiguan><jiguan></jiguan><null>人</null><entry_way>恩貢</entry_way> <post_time>十</post_time><post_time>年</post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy>【876】 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>傅宗說</person>  <jiguan>湖廣遠 安</jiguan><jiguan></jiguan><null>人</null>  <post_time>十六 年</post_time>              
+<office>〈主簿〉</office><dy>〈明〉</dy><person>蕭必馨</person>  <jiguan>湖廣</jiguan><null>人</null>舊 縣志闕年 <post_time>十七 年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>宋文奎</person>  <jiguan>湖縣沅 陵</jiguan><jiguan></jiguan><null>人</null> <post_time>十八 年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>應子懷</person> <jiguan>浙江永 康</jiguan><jiguan></jiguan><null>人</null> <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>張禩</person>  <jiguan>安福</jiguan>  <null>人</null> <post_time>二十 五</post_time><post_time>年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>陳三思</person>  <jiguan>山東</jiguan> <null>人</null> <post_time>闕年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>張宗京</person>  <jiguan>江西上猶</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>二十 九</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>陳文熹</person>  <jiguan>江西靖安</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>三十 三</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>田浩然</person>  <jiguan>直隸雞澤</jiguan> <null>人</null><entry_way>承差</entry_way> <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>林一夔</person>  <jiguan>江西瀘溪</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>三十 九</post_time><post_time>年</post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy>【877】 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>陳傳謨</person>  <jiguan>四川宜賓</jiguan><null>人</null><entry_way>監生</entry_way> 陞<next_office>雲南六衛經歷</next_office>   <post_time>四十 年  </post_time>      
+<office>〈主簿〉</office><dy>〈明〉</dy><person>孟鳳儀</person>  <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>梁世柱</person>  <jiguan>福建</jiguan> <null>人</null> <post_time>四十 七</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>淩昇</person> <jiguan>浙江</jiguan> <null>人</null> <post_time>天啟 二年</post_time><post_time></post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>嚴希聖</person>  <jiguan>江西</jiguan><null>人</null><next_office>陞 雀山知縣 </next_office><post_time>六</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>方廷獻</person>  <jiguan>浙江 </jiguan><null>人</null> <post_time>崇正 年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>方效麒</person>  <jiguan>浙江</jiguan> <null>人</null> <post_time>玉年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>熊文郁</person> <jiguan>江西</jiguan> <null>人</null> <post_time>七</post_time><post_time>年</post_time>  
+<office>〈主簿〉</office><dy>〈明〉</dy><person>夏奎</person>  <jiguan>陜西</jiguan> <null>人</null> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>裘禹文</person> <jiguan>北直</jiguan> <null>人</null> <post_time>十四 年</post_time>
+<office>〈主簿〉</office><dy>〈明〉</dy>【878】 
+<office>〈主簿〉</office><dy>〈明〉</dy><person>畢繼芳</person> <jiguan>浙江</jiguan><null>人</null><null></null> <entry_way>監生</entry_way> <post_time>十六 年</post_time>              
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈主簿〉</office>〈主簿〉  
+<office>〈主簿〉</office><dy>〈清〉</dy><person>畢繼</person><person>芳</person> <post_time>五月</post_time><post_type>留原任</post_type> 次年省去 <post_time>順治 二年</post_time><post_time></post_time>
+<dy>〈唐〉</dy>〈唐〉   
+<dy>〈唐〉</dy><office>〈尉〉</office>〈尉〉   
+<office>〈尉〉</office><dy>〈唐〉</dy><person>韋聿</person> <jiguan>萬年</jiguan><null>人</null>臯兄以蔭調南陵尉遷祕書郎以父 嬚名授太子司議郎元和中為國子司業見   唐書<kins>韋臯</kins>傳 <othername>按舊志作韋   律</othername>名宦有傳徐志改從府志  闕年
+<office>〈尉〉</office><dy>〈唐〉</dy><person>孔昭儉</person>   <kins>至聖四十一代孫</kins><next_office>授廣文館博士兗州 司馬賜緋除祕書郎襲文宣公累宰曲阜</next_office> <post_time>咸通 四年</post_time><post_time></post_time>  
+<office>〈尉〉</office><dy>〈唐〉</dy><person>孫履度</person>  <post_time>闕年</post_time>  
+<office>〈尉〉</office><dy>〈唐〉</dy><person>張師儒</person>  <prev_office>由坊州昇平縣主簿</prev_office>任滿授南陵縣尉恪 著公勤太守常以重難委寄後解任權居   宣城乾符五年卒見<source_tag>唐張   師儒墓誌銘</source_tag>徐志遺今增 闕年
+<dy>〈唐〉</dy>【879】
+<dy>〈宋〉</dy>〈宋〉   
+<dy>〈宋〉</dy><office>〈尉〉</office>〈尉〉  
+<office>〈尉〉</office><dy>〈宋〉</dy><person>趙琚</person>  <jiguan>星江</jiguan> <null>人</null>  <post_time>湻熙 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈尉〉</office><dy>〈宋〉</dy><person>張萬貳</person>  <othername>一作二</othername> 見流寓 
+<dy>〈元〉</dy>〈元〉   
+<dy>〈元〉</dy><office>〈尉〉</office>〈尉〉   
+<office>〈尉〉</office><dy>〈元〉</dy><person>賀元</person><person>亨</person> 舊志佚<source_tag>見 學宮碑 </source_tag> <post_time>至治 </post_time>   
+<dy>〈元〉</dy>〈典史〉   
+<dy>〈元〉</dy><person>尹璧</person>  舊志作至 正間任 <post_time>至治</post_time>  
+<dy>〈元〉</dy><person>房元善</person> 房宋刻誤唐查<source_tag>學宮大德十一年碑</source_tag>與楊 志同今改正按今從宗志增名宦傳 <post_time>至正</post_time>
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈典史〉</office>〈典史〉  
+<office>〈典史〉</office><dy>〈明〉</dy><person>柴景名</person> <jiguan>陜西</jiguan> <null>人</null> <post_time>洪武  二十</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈明〉</dy>【880】 
+<office>〈典史〉</office><dy>〈明〉</dy><person>楊意</person>  修工 山廟   <post_time>正統 六</post_time><post_time></post_time><post_time>年</post_time>             
+<office>〈典史〉</office><dy>〈明〉</dy><person>桑敬</person> <post_time>景泰 三年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>黃尙乾</person>  <jiguan>福建莆 田</jiguan><jiguan></jiguan><null>人</null> <post_time>宏治 六年 </post_time>
+<office>〈典史〉</office><dy>〈明〉</dy><person>張政</person>  <post_time>十四 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>郭淳</person>  <post_time>十六 年</post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>張繪宗</person>  <jiguan>四川</jiguan><null>人</null><post_time>宏 治間任 闕年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>張紹宗</person>  <post_time>正德 二年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>王傑</person>  <jiguan>江西豐 城</jiguan><jiguan></jiguan><null>人</null> <post_time>七</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>宋與</person>  <jiguan>福建閩縣</jiguan><null>人</null>舊 志正德間任 <post_time>十五 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>張森</person>  <jiguan>江西鉛 山</jiguan><jiguan></jiguan><null>人</null> <post_time>嘉靖 五</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈明〉</dy>【881】  
+<office>〈典史〉</office><dy>〈明〉</dy><person>史賢</person>  <jiguan>山東萊 州</jiguan><jiguan>府</jiguan><null>人</null>  <post_time>九</post_time><post_time>年</post_time>              
+<office>〈典史〉</office><dy>〈明〉</dy><person>虞斌</person>  <jiguan>浙江鄞 縣</jiguan><jiguan></jiguan><null>人</null> <post_time>十二 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>劉伯會</person>  舊縣志作二 十二年<post_type>任</post_type> <post_time>二十 三</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>劉興</person>  <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>王衡</person>  <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>李鎭</person>  <post_time>三十 五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>胡本濟</person>  <jiguan>浙江餘</jiguan><jiguan>姚 </jiguan><null>人</null><post_time>承差 四十 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>陳興鳳</person>  <jiguan>山東曺縣 </jiguan><null>人</null><post_time>承差 四十 一</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>杜增</person>  <jiguan>山東濟陽</jiguan><null>人</null><entry_way>吏員</entry_way>舊 志作隆慶五年<post_type>任</post_type> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>吳燧</person>  <jiguan>福建莆田</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>四十 五</post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈明〉</dy>【882】 
+<office>〈典史〉</office><dy>〈明〉</dy><person>鄔應龍</person> <jiguan>浙江平湖</jiguan><null>人</null><entry_way>吏員</entry_way>康 熙郡志作萬歷間任  <post_time>隆慶 五年</post_time><post_time></post_time>        
+<office>〈典史〉</office><dy>〈明〉</dy><person>郭俊</person>  <jiguan>福建龍溪</jiguan><null>人</null><entry_way>吏員</entry_way> 舊縣志二年<post_type>任</post_type> <post_time>萬歷 三年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>岑佩</person> <jiguan>浙江餘姚 </jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>六</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>鍾九功</person>  <jiguan>四川墊江</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>馬涼</person>  <post_time>十三 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>金世允</person>  <post_time>十七 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>劉尚賢</person>  <post_time>二十 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>袁守銘</person>  <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>趙經</person>  <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>何應聘</person>  <post_time>二十 九</post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈明〉</dy>【883】 
+<office>〈典史〉</office><dy>〈明〉</dy><person>陳性</person>   <post_time></post_time><post_time>二年 三十</post_time>                 
+<office>〈典史〉</office><dy>〈明〉</dy><person>曾道會</person>  <post_time>三十 五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>徐世憲</person>  <post_time>三十 九</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>成鉞</person> 舊縣志作四 十三年<post_type>任</post_type> <post_time>四十 二</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>郭松</person>  <jiguan>河南</jiguan> <null>人</null> <post_time>四十 五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>林國梁</person>  <jiguan>福建</jiguan> <null>人</null> <post_time>四十 七</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>陳可行</person>  <jiguan>浙江</jiguan> <null>人</null> <post_time>天啟 二年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>毛應召</person>  <jiguan>浙江</jiguan> <null>人</null> <post_time>五</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>趙之啟</person>  <jiguan>浙江</jiguan> <null>人</null> <post_time>崇正 元年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>徐大經</person>  <jiguan>浙江 </jiguan><null>人</null> <post_time>三</post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈明〉</dy>【884】  
+<office>〈典史〉</office><dy>〈明〉</dy><person>鄧良輔</person>  <jiguan>江西</jiguan> <null>人</null>  <post_time>五</post_time><post_time>年</post_time>                
+<office>〈典史〉</office><dy>〈明〉</dy><person>楊應泰</person>  <jiguan>陝西</jiguan> <null>人</null> <post_time>九</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈明〉</dy><person>張瑗</person>  <jiguan>福建</jiguan> <null>人</null> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>楊一俊</person>  <jiguan>陝西</jiguan> <null>人</null> <post_time>十三 年</post_time> 
+<office>〈典史〉</office><dy>〈明〉</dy><person>王三</person>  <jiguan>浙江</jiguan><null>人</null> <entry_way>吏</entry_way><entry_way>員</entry_way> <post_time>十六 年</post_time>
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈典史〉</office>〈典史〉  
+<office>〈典史〉</office><dy>〈清〉</dy><person>王三</person>  楊志任至 順治四年 <post_time>順治 二年</post_time><post_time></post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>李應舉</person> <jiguan>奉天大興</jiguan><null>人</null><entry_way>吏員</entry_way> 楊志作五年<post_type>任</post_type> <post_time>八</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>張三捷</person>  <jiguan>直隸河間</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>十三 年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>馬三俊</person>  <jiguan>浙江會稽</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>十六 年</post_time>
+<office>〈典史〉</office><dy>〈清〉</dy>【885】 
+<office>〈典史〉</office><dy>〈清〉</dy><person>尙雲階</person> <null>字</null><zi>鵬九</zi><jiguan>順天 霸</jiguan><jiguan>州</jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>康熙 七</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>石維高</person>  <jiguan>直隸完縣 </jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>二十 一</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>馬昇</person>  <jiguan>山西夏縣 </jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>三十 三</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>婁起蒙</person> <jiguan>浙江山陰 </jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>四十 年 </post_time>
+<office>〈典史〉</office><dy>〈清〉</dy><person>段鳳苞</person> <jiguan>山西絳州</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>五十 七</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>陸兆龍</person>  <entry_way>吏 員</entry_way> <post_time>雍正 闕年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>朱國棟</person>  <jiguan>通州</jiguan><null>人</null> <entry_way>吏員</entry_way> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>顧榮</person> <jiguan>浙江蕭山</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>諸國安</person> <jiguan>浙江</jiguan><null>人</null><jiguan>大 興籍</jiguan><entry_way>吏員</entry_way> <post_time>十三 年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>朱漢興</person>  <jiguan>浙江蕭山</jiguan><null>人</null><entry_way>吏員</entry_way>於乾隆十七年授<prev_office>公館 驛驛丞</prev_office>二十一年缺裁十一月<prev_office>改補典史</prev_office> <post_time>乾隆</post_time><post_time>二 十一</post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈清〉</dy>【886】 
+<office>〈典史〉</office><dy>〈清〉</dy><person>朱廣熙</person>  <jiguan>直隸大興</jiguan><null>人</null> <post_type>吏目借補</post_type>   <post_time>二十 五</post_time><post_time>年</post_time>           
+<office>〈典史〉</office><dy>〈清〉</dy><person>沈江鯤</person>  <jiguan>浙江仁和</jiguan><null>人</null><jiguan>直 隸大興籍</jiguan><entry_way>吏員</entry_way> <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈典史〉</office><dy>〈清〉</dy><person>沈如</person>  <jiguan>順天大興 </jiguan><null>人</null><entry_way>吏員</entry_way> <post_time>四十 六</post_time><post_time>年</post_time>
+<office>〈典史〉</office><dy>〈清〉</dy><person>范德至</person>  <jiguan>吳縣</jiguan><null>人</null> <entry_way>監生</entry_way> <post_time>五十 二</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>何兆瑛</person>  <jiguan>浙江會稽</jiguan> <null>人</null><entry_way>吏員</entry_way> <post_time>嘉慶 元</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>單守謙</person> <jiguan>山東高密</jiguan><null>人</null> <entry_way>監生</entry_way>艱去 <post_time>八</post_time><post_time>年</post_time>  
+<office>〈典史〉</office><dy>〈清〉</dy><person>周塏</person>  <jiguan>浙江山陰</jiguan> <null>人</null><entry_way>議叙</entry_way> <post_time>九</post_time><post_time>年</post_time>   以上舊志 
+<dy>〈清〉</dy>〈清〉  
+<dy>〈清〉</dy><office>〈 典史〉</office>〈 典史〉  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>吳致和</person>  <post_time>同治 八年</post_time><post_time></post_time>
+<office>〈 典史〉</office><dy>〈清〉</dy>【887】  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>梅淵</person> <jiguan>浙江錢塘</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>世 襲雲騎尉</prev_office><post_time>十月</post_time><post_type>任</post_type> <post_time>九</post_time><post_time>年</post_time>           
+<office>〈 典史〉</office><dy>〈清〉</dy><person>沈應銘</person>  <jiguan>浙江山陰</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>試 用從九品</prev_office><post_time>四月</post_time><post_type>代理</post_type>  <post_time>光緒 四</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>梅淵</person> <post_time>七月 </post_time><post_type>回任</post_type>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>焦延禧</person> <jiguan>江蘇六合</jiguan><null>人</null><entry_way>監生</entry_way> <prev_office>候補巡檢</prev_office><post_time>六月</post_time><post_type>署</post_type> <post_time>十三 年</post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>魏蔭曾</person>  <jiguan>福建龍巖州</jiguan><null>人</null><prev_office>試 用巡檢</prev_office><post_time>五月</post_time><post_type>代理</post_type>  <post_time>十四 年 </post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>焦延禧</person> <post_time>六月</post_time><post_type>回 署任</post_type>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>馮廷楡</person>  <jiguan>福建閩縣</jiguan><null>人</null><prev_office>補用 從九品</prev_office><post_time>四月</post_time><post_type>署</post_type> <post_time>十五 年</post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>梁顯光</person>  <jiguan>順天宛平</jiguan><null>人</null><entry_way>監生</entry_way>試 用未入流<post_time>六月</post_time><post_type>署</post_type> <post_time>十六 年</post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>張寶琛</person>  <jiguan>浙江烏程</jiguan><null>人</null><entry_way>監生</entry_way> <prev_office>試用巡檢</prev_office><post_time>八月</post_time><post_type>署</post_type> <post_time>十七 年</post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>梅淵</person> <post_time>十一月</post_time> <post_type>回任</post_type> <post_time>十八 年</post_time>
+<office>〈 典史〉</office><dy>〈清〉</dy>【888】 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>吳璜</person>  <jiguan>江蘇通州</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>試 用州同</prev_office><post_time>六月</post_time><post_type>代理</post_type>  <post_time>二十 年</post_time>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>梅淵</person> <post_time>十一月</post_time> <post_type>回任</post_type>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>舒恭岐</person> <jiguan>江西靖安</jiguan><null>人</null><entry_way>監生</entry_way> <prev_office>補用典史</prev_office><post_time>三月</post_time><post_type>署</post_type>  <post_time>二十 五</post_time><post_time>年</post_time>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>金頤增</person>  <jiguan>直隸天津</jiguan><null>人</null><entry_way>監生</entry_way><prev_office>世襲騎 都尉候補巡檢</prev_office><post_time>八月</post_time><post_type>署</post_type>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>王國相</person>  <jiguan>河南陳留</jiguan><null>人</null> <entry_way>增生</entry_way><post_time>二月</post_time><post_type>任</post_type> <post_time>二十 九</post_time><post_time>年</post_time> 
+<office>〈 典史〉</office><dy>〈清〉</dy><person>劉葆森</person>  <jiguan>江蘇丹徒</jiguan><null>人</null><entry_way>監 生</entry_way><post_time>七月</post_time><post_type>代理</post_type>  <post_time>三十 一</post_time><post_time>年</post_time>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>周志寬</person>  <jiguan>江西湖口</jiguan> <null>人</null><post_time>八月</post_time><post_type>署</post_type>  
+<office>〈 典史〉</office><dy>〈清〉</dy><person>陰嗣玲</person> <jiguan>山東肥城</jiguan> <null>人</null><post_time>二月</post_time><post_type>任</post_type> <post_time>三十 </post_time><post_time>二</post_time><post_time>年</post_time>   以上新增 
+<dy>〈元〉</dy>〈元〉   
+<dy>〈元〉</dy><office>〈教諭〉</office>〈教諭〉                
+<office>〈教諭〉</office><dy>〈元〉</dy>【889】  
+<office>〈教諭〉</office><dy>〈元〉</dy><person>吳復仁</person>   <post_time>大德</post_time>                 
+<office>〈教諭〉</office><dy>〈元〉</dy><person>周積翁</person>  <post_time>至治</post_time>  
+<office>〈教諭〉</office><dy>〈元〉</dy><person>芮景復</person>  <post_time>至正</post_time>  
+<office>〈教諭〉</office><dy>〈元〉</dy><person>鮑德昌</person> 宋志紀  至治誤 
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈教諭〉</office>〈教諭〉  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>劉子潛</person>  邑人儒士博雅好義建學修祠具孫 處益克承祖志獻地學宫歲頒優胙 <post_time>洪武  二年</post_time><post_time></post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>汪素</person>  <post_time>永樂 七</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>任倫</person> <jiguan>湖廣監利</jiguan> <null>人</null>詳名宦 <post_time>宣德 六年</post_time><post_time></post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>何昌</person>  <jiguan>廣東南海</jiguan><null>人</null>詳名宦 舊志作二十年<post_type>任</post_type> <post_time>成化 廿一</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>孫漳</person>  <jiguan>浙江鄞縣</jiguan><null>人</null><entry_way>舉人</entry_way>後登 <entry_time>辛未</entry_time><entry_way><entry_way>進士</entry_way></entry_way><prev_office>擢監察御史</prev_office> <post_time>宏治 十八</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy>【890】  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>陳猷</person>  <jiguan>廣西桂林府</jiguan><null>人</null> <entry_way>舉人</entry_way><post_time>宏治間仕 闕年 </post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy><person>秦鳶</person> <jiguan>江西吉水</jiguan> <null>人</null><entry_way>舉人</entry_way> <post_time>正德 六</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>張傑</person>  <jiguan>浙江仁和 </jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>十五 年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>唐偉</person>  <jiguan>浙江山陰</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>嘉靖 六年</post_time><post_time></post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>陳匡之</person>  <jiguan>浙江樂清</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十一 年 </post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy><person>張秩</person>  <jiguan>山東臨 朐</jiguan><jiguan></jiguan><null>人</null> <post_time>十五 年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>馬恕</person>  <jiguan>北直</jiguan><null>人</null>以上二人 楊宋志俱闕年 <post_time>十七 年 </post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy><person>徐可久</person>  <jiguan>廣西馬平</jiguan><null>入</null><entry_way>舉人</entry_way>捐俸置義倉賬恤養生 碑存歷<prev_office>官雲南按察司副使</prev_office>舊縣志作二   十六   年任  <post_time>二十 五</post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy><person>郭惟新</person>  <jiguan>福建晉江</jiguan><null>人</null>楊志作三十年任 <othername>又惟新作維新</othername>與康熙郡志同 <post_time>三十 三</post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy>【891】 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>王承志</person>  <jiguan>山西蒲州</jiguan><null>人</null> <entry_way>舉人</entry_way><next_office>陞教授</next_office>  <post_time>三十 七</post_time><post_time>年</post_time>           
+<office>〈教諭〉</office><dy>〈明〉</dy><person>朱應隆</person>  <jiguan>浙江慈溪</jiguan><null>人</null><entry_way>舉人</entry_way><next_office>陞知 縣</next_office>舊縣志作四十年<post_type>任</post_type> <post_time>三十 八</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>杜可教</person>  <jiguan>泗州</jiguan><null>人</null><jiguan>楊志 作四川</jiguan><null>人</null> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>袁禮吉</person>  <jiguan>永豐</jiguan><null>人</null><entry_way>舉人</entry_way><next_office>陞知縣</next_office><othername>康熙郡 志及楊宋各縣志作袁禮</othername> <post_time>隆慶 二年</post_time><post_time></post_time>  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>王守正</person>  <jiguan>北直清河</jiguan><null>人</null> <next_office>陞王府教授</next_office> <post_time>四</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>潘子廉</person>  <jiguan>六安州</jiguan><null>人</null><next_office>陞教 授</next_office>以上並<entry_way>歲貢</entry_way> <post_time>萬歷 二年 </post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>兪應龍</person> <jiguan>浙江富陽</jiguan> <null>人</null>艱去 <post_time>六</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>歐陽潛</person>  <jiguan>江西興安</jiguan><null>人</null> <next_office>陞王府教授</next_office> <post_time>八</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>吳萬全</person>  <jiguan>侯官</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>十一 年 </post_time> 
+<office>〈教諭〉</office><dy>〈明〉</dy><person>周治</person>  <post_time>闕年</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy>【892】   
+<office>〈教諭〉</office><dy>〈明〉</dy><person>邢尙友</person>   
+<office>〈教諭〉</office><dy>〈明〉</dy><person>管大武</person> <jiguan>崑山</jiguan> <null>人</null>   <post_time>二十 六</post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy><person>兪應元</person> <jiguan>雲南</jiguan><null>人</null><post_time>楊志作 萬歷壬寅</post_time><post_type>任</post_type>  <post_time>闕年</post_time>  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>陳敏中</person>  <jiguan>武進</jiguan><null>人</null><entry_way>舉 人</entry_way>詳名宦    
+<office>〈教諭〉</office><dy>〈明〉</dy><person>劉藎忠</person>  以上二人楊志俱注萬歷丁未任又萬歷 丙辰丁己學宮碑俱刻教諭劉盡忠與楊   志年次   稍異    
+<office>〈教諭〉</office><dy>〈明〉</dy><person>王廷</person>     
+<office>〈教諭〉</office><dy>〈明〉</dy><person>謝公選</person>  莅任年分舊志失考今 見<source_tag>萬歷辛亥學宮碑</source_tag>    
+<office>〈教諭〉</office><dy>〈明〉</dy><person>徐清</person>  <jiguan>江西</jiguan><null>人</null><entry_way>舉人</entry_way>楊志 作<post_time>萬歷癸丑</post_time><post_type>任</post_type>   
+<office>〈教諭〉</office><dy>〈明〉</dy><person>吳士良</person>  <jiguan>浙江</jiguan><null>人</null><entry_way>舉人</entry_way>康熙 郡志作<post_time>天啟間任 天啟</post_time>
+<office>〈教諭〉</office><dy>〈明〉</dy>【893】  
+<office>〈教諭〉</office><dy>〈明〉</dy><person>劉承堯</person>  <jiguan>江西廬陵</jiguan> <null>人</null><entry_way>舉人</entry_way>  <post_time>崇正</post_time>               
+<office>〈教諭〉</office><dy>〈明〉</dy><person>萬遴偕</person> <jiguan>浙江</jiguan><null>人</null><entry_way>舉 入</entry_way><next_office>陞知縣</next_office>   
+<office>〈教諭〉</office><dy>〈明〉</dy><person>金之鑛</person>  <jiguan>吳江</jiguan><null>人</null><entry_way>舉 人</entry_way>詳名宦 <post_time>五</post_time><post_time>年</post_time>   
+<office>〈教諭〉</office><dy>〈明〉</dy><person>宗介</person> <jiguan>建平</jiguan><null>人</null><entry_way>舉人</entry_way> <next_office>陞河南知縣</next_office>    
+<office>〈教諭〉</office><dy>〈明〉</dy><person>吳兆行</person>  <jiguan>浙江富 陽</jiguan><jiguan></jiguan><null>人</null>    
+<office>〈教諭〉</office><dy>〈明〉</dy><person>顏浩</person> <jiguan>懷甯</jiguan><null>人</null> <entry_way>舉人</entry_way> 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈教諭〉</office>〈教諭〉  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>顏浩</person> <post_time>五月</post_time><post_type>留原 任</post_type>艱去 <post_time>順治 年 </post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy><person> 荆其惇</person> <jiguan><null>字</null><zi>敕五</zi>丹陽</jiguan><null>人</null><entry_way>舉 人</entry_way>後登<entry_time>己丑</entry_time><entry_way><entry_way>進士</entry_way></entry_way> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>徐行</person>  <jiguan>宜興</jiguan><null>人</null><entry_way>舉 人</entry_way>卒於官 <post_time>六</post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy>【894】  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>湯原清</person>  <jiguan>宜興</jiguan><null>人</null><entry_way>舉人</entry_way>著有南陵 志辯疑登<entry_time>戊戌</entry_time><entry_way><entry_way>進士</entry_way></entry_way> <post_time>九</post_time><post_time>年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy><person>張元生</person>  <jiguan>溧陽</jiguan><null>人</null> <entry_way>舉生</entry_way> <post_time>十五 年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>史鑒宗</person>  <jiguan>金壇</jiguan><null>人</null><entry_way>舉人</entry_way>艱 去詳名宦後省 <post_time>十七 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>顧芳菁</person> <jiguan><null>字</null><zi>莪在</zi>吳縣</jiguan><null>人</null><entry_way>舉人</entry_way>會副夙負文譽師範 克端扶獎人才教思不倦宋志作十一年    <post_type>任</post_type>    誤  <post_time>康熙 十五年</post_time><post_time></post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy><person>兪登雲</person> <jiguan>婺源</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>夏之璵</person>  <jiguan>宜興</jiguan><null>人</null><entry_way>貢 生</entry_way>宋志佚 <post_time>四十 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>章克長</person>  <null>號</null><hao>勖庵</hao><jiguan>吳 縣</jiguan><jiguan></jiguan><null>人</null><entry_way>貢生</entry_way> <post_time>五十 七</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>顧璜</person> <null>號</null><hao>懷庵</hao><jiguan>吳 江</jiguan><jiguan></jiguan><null>人</null><entry_way>拔貢</entry_way> <post_time>雍正 三年</post_time><post_time></post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>閆大全</person> <jiguan>懷遠</jiguan><null>人</null><entry_way>恩貢</entry_way><othername>一作閔</othername>  按省志作閆大全 <post_time>十二 年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy>【895】 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>陸成岑</person>  <jiguan><null>字</null><zi>虚舟</zi>蕪湖</jiguan><null>人</null><entry_way>拔貢</entry_way>  <othername>按省志作陸成峰</othername> <post_time>乾隆 七年</post_time><post_time></post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>張曾亹</person>  <jiguan>改名曾敏桐城</jiguan><null>人</null><entry_way>貢生</entry_way> <next_office>陞峩眉縣知縣</next_office>詳名宦 <post_time>十四 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>汪松</person>  <jiguan>華亭</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>三十 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>黃長齡</person>  <jiguan>山陽</jiguan><null>人</null><jiguan>昌 平籍</jiguan><entry_way>舉人</entry_way> <post_time>三十 九</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>曹森</person>  <jiguan>震澤</jiguan><null>人</null><entry_way>舉 人</entry_way>卒於官 <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>有朝恩</person> <jiguan>休甯</jiguan><null>人</null><entry_way>拔 貢</entry_way>卒於官 <post_time>五十 四</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>常太和</person> <jiguan>懷遠</jiguan><null>人</null><entry_way>副 貢</entry_way>卒於官 <post_time>六十 年 </post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy><person>甯若波</person> <jiguan>青陽</jiguan><null>人</null><entry_way>舉人</entry_way><prev_office>大 挑貳等選授 </prev_office> <post_time>嘉慶 十一</post_time><post_time></post_time><post_time>年</post_time>  以上舊志 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈教諭〉</office>〈教諭〉                
+<office>〈教諭〉</office><dy>〈清〉</dy>【896】 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>王悅祖</person>  <jiguan>太和</jiguan><null>人</null> <entry_way>拔貢</entry_way> <post_time>嘉慶 廿四</post_time><post_time></post_time><post_time>年</post_time>                
+<office>〈教諭〉</office><dy>〈清〉</dy><person>王熙績</person>  <jiguan>金山</jiguan><null>人</null> <entry_way>廩貢</entry_way>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>徐孝華</person>  <jiguan>江蘇</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>道光 闕年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>蔣嶽</person>  <jiguan>霍邱</jiguan><null>人</null> <entry_way>副貢</entry_way> <post_time>咸豐 闕年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>王靜涵</person>  <jiguan>廬江</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>同治 三年</post_time><post_time></post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>汪可儀</person>  <jiguan>歙縣</jiguan><null>人</null><entry_way>副 貢</entry_way><post_type>月署</post_type> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>章民望</person>  <jiguan>廬江</jiguan><null>人</null> <entry_way>增生</entry_way> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>張中華</person>    <post_time>闕年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy><person>李恩</person>  <jiguan>懷甯</jiguan><null>人</null><entry_way>優廩生</entry_way><entry_way></entry_way><prev_office>翰林院孔 目銜試用訓導</prev_office><post_time>正月</post_time><post_type>署</post_type> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>張含暉</person>  <jiguan>石埭</jiguan><null>人</null><entry_way>增貢</entry_way><prev_office>試 用訓導</prev_office><post_time>正月</post_time><post_type>署</post_type> <post_time>十二 年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy>【897】 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>汪蓮田</person>  <jiguan>懷甯</jiguan><null>人</null><entry_way>副貢</entry_way><prev_office>就 職教諭</prev_office><post_time>四月</post_time><post_type>任</post_type>  <post_time>十三 年</post_time>          
+<office>〈教諭〉</office><dy>〈清〉</dy><person>舒鳳翥</person> <jiguan>黟縣</jiguan><null>人</null><entry_way>舉人</entry_way><prev_office>訓 導</prev_office><post_time>三月</post_time><post_type>兼代</post_type>  <post_time>光緒 四</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>徐培源</person>  <jiguan>鳳臺</jiguan><null>人</null><entry_way>廩貢</entry_way><prev_office>試用 訓導</prev_office><post_time>四月</post_time><post_type>署</post_type>   
+<office>〈教諭〉</office><dy>〈清〉</dy><person>孫傳檙</person>  <jiguan>壽州</jiguan><null>人</null><entry_way>舉 人</entry_way><post_time>正月</post_time><post_type>任</post_type> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>周庠</person>  <jiguan>績溪</jiguan><null>人</null><entry_way>廩貢生</entry_way><prev_office>試 用訓導</prev_office><post_time>七月</post_time><post_type>署</post_type> <post_time>六</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>江徽錞</person> <jiguan>黟縣</jiguan><null>人</null><entry_way>附生</entry_way><prev_office>議叙翰林院孔 目銜軍功保選訓導</prev_office><post_time>九月</post_time><post_type>署</post_type> <post_time>七</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>李書森</person>  <jiguan>太湖</jiguan><null>人</null><entry_way>增生</entry_way> <post_time>閨五月</post_time><post_type>署</post_type> <post_time>十</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>齊謙</person> <jiguan>蕪湖</jiguan><null>人</null><entry_way>恩貢</entry_way><prev_office>內閣中書銜本 任霍邱縣教諭</prev_office><post_time>十二</post_time><post_time>月</post_time><post_type>署</post_type> <post_time>十一 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>張含暉</person>  見前<post_time>八 月</post_time><post_type>代理</post_type> <post_time>十三 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>姚繼昌</person>  <jiguan>廬江</jiguan><null>人</null><entry_way>廩貢</entry_way><prev_office>試 用訓導</prev_office><post_time>正月</post_time><post_type>署</post_type> <post_time>十四 年</post_time>
+<office>〈教諭〉</office><dy>〈清〉</dy>【898】 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>劉訓惶</person>  <jiguan>懷甯</jiguan><null>人</null><entry_way>廩貢</entry_way><prev_office>試 用訓導</prev_office><post_time>六月</post_time><post_type>署</post_type> <post_time>十五 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>許文權</person>  <jiguan>宿松</jiguan><null>人</null><entry_way>附貢</entry_way><prev_office>試 用訓導</prev_office><post_time>四月</post_time><post_type>署</post_type> <post_time>十六 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>胡晉槐</person>  <jiguan>績溪</jiguan><null>人</null><entry_time>癸酉</entry_time><entry_way><entry_way>拔貢</entry_way></entry_way> <prev_office>就職教諭</prev_office><post_time>九月</post_time><post_type>任</post_type> <post_time>十八 年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>葉資深</person>  <jiguan>太湖</jiguan><null>人</null><entry_way>舉人</entry_way><prev_office>訓 導</prev_office><post_time>六月</post_time><post_type>兼理</post_type>  <post_time>二十 三</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>胡承淑</person>  <jiguan>黟縣</jiguan><null>人</null><entry_way>增貢</entry_way><prev_office>中書科中 書銜試用訓導</prev_office><post_time>七月</post_time><post_type>署</post_type>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>程祚昌</person>  <jiguan>歙縣</jiguan><null>人</null><entry_way>歲 貢</entry_way><post_time>正月</post_time><post_type>任</post_type> <post_time>二十 四</post_time><post_time>年</post_time> 
+<office>〈教諭〉</office><dy>〈清〉</dy><person>葉資深</person>  見前<post_time>四 月</post_time><post_type>兼理</post_type>  <post_time>三十 一</post_time><post_time>年</post_time>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>曹懋楠</person>  <jiguan>太湖</jiguan><null>人</null><entry_way>廩 貢</entry_way><post_time>六月</post_time><post_type>署</post_type>  
+<office>〈教諭〉</office><dy>〈清〉</dy><person>湯克鎔</person>  <jiguan>當塗</jiguan><null>人</null><entry_way>拔貢</entry_way><post_time>七月</post_time><post_type>任</post_type>宣 統元年裁缺移補訓導 <post_time>三十 二</post_time><post_time>年</post_time>   按教諭一職康熙十年復設光緒三十四年十一 
+【899】   月奉部文停選    以上新增 
+<dy>〈元〉</dy>〈元〉   
+<dy>〈元〉</dy><office>〈訓導〉</office>〈訓導〉   
+<office>〈訓導〉</office><dy>〈元〉</dy><person>阮仲</person><person>雄</person> 宋志雄  誤容  <post_time>至正  </post_time>  
+<dy>〈元〉</dy><office>〈直學〉</office>〈直學〉 見學 宮碑   
+<office>〈直學〉</office><dy>〈元〉</dy><person>劉錫</person>  <post_time>大德</post_time>  
+<office>〈直學〉</office><dy>〈元〉</dy><person>戴景星</person>  <post_time>至治</post_time>  
+<office>〈直學〉</office><dy>〈元〉</dy><person>曹澤</person>  以上三人舊 志載教諭   
+<office>〈直學〉</office><dy>〈元〉</dy><person>葉奇</person>  <post_time>至正</post_time>   
+<office>〈直學〉</office><dy>〈元〉</dy><person>陳黼</person>                   
+<office>〈直學〉</office><dy>〈元〉</dy>【900】   
+<office>〈直學〉</office><dy>〈元〉</dy><person>盧永昌</person>  <othername>楊志永誤允</othername>以上 三人舊志載訓導 
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈訓導〉</office>〈訓導〉                 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>戴學修</person> <post_time>洪武  二年</post_time><post_time></post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>朱存善</person>  <post_time>闕年 </post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>許仲昺</person>  <jiguan>並邑</jiguan><null>人</null>儒士子兼善籍三 十六都<othername>夢熊其六世孫也</othername> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>牛麟</person> <jiguan>直隸眞定</jiguan> <null>人</null><entry_way>堅生</entry_way> <post_time>成化</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>謝珍</person>  <jiguan>永豐</jiguan><null>人</null><entry_way>舉人</entry_way>楊 志作七年<post_type>任</post_type> <post_time>宏治 六年</post_time><post_time></post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>孫勝</person>  <jiguan>浙江嚴州 府</jiguan><jiguan></jiguan><null>人</null><entry_way>監生</entry_way> <post_time>十四 年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>李一觀</person>  <jiguan>湖廣石首</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十八 年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>郭燧</person>  <jiguan>浙江會 稽</jiguan><jiguan></jiguan><null>人</null> <post_time>闕年</post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy>【901】   
+<office>〈訓導〉</office><dy>〈明〉</dy><person>李思義</person>  <jiguan>廣西桂林府</jiguan><null>人</null><entry_way>監生</entry_way><post_time>以上 二人楊志作宏治初</post_time><post_type>任</post_type>           
+<office>〈訓導〉</office><dy>〈明〉</dy><person>倫彝</person> <jiguan>廣東南海</jiguan><null>人</null><entry_way>舉人</entry_way> <post_time>楊志作宏治間任</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>費愚</person> <jiguan>浙江烏程</jiguan><null>人</null><entry_way>監生</entry_way><othername>楊宋二 志康熙郡志並作費思</othername> <post_time>正德 元</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>張文</person>  <jiguan>直隸樂城</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>七</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>周憬</person>  <jiguan>湖廣道州</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>十一 年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>方敏</person>  <jiguan>湖廣黄 岡</jiguan><jiguan></jiguan><null>人</null> <post_time>十五 年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>楊應隆</person>  <jiguan>江西高安</jiguan> <null>人</null><entry_way>監生</entry_way> <post_time>嘉靖 二年</post_time><post_time></post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>全政</person> <jiguan>浙江鄞縣 </jiguan><null>人</null><entry_way>監生</entry_way> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>鄭賓</person>  <jiguan>長樂</jiguan><null>人</null> <entry_way>堅生</entry_way> <post_time>五</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>淩雲</person> <jiguan>浙江遂 安</jiguan><jiguan></jiguan><null>人</null> <post_time>十二 年</post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy>【902】  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>周賜</person>  <jiguan>廣西鬱 林</jiguan><jiguan>州</jiguan><null>人</null> <post_time>阙年</post_time>                 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>胡賁</person>  <jiguan>貴州安 莊</jiguan><jiguan>衛</jiguan><null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>楊九功</person>  <jiguan>四川合 江</jiguan><jiguan></jiguan><null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>謝廷佐</person>  <jiguan>浙江德 清</jiguan><jiguan></jiguan><null>人</null>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>王皋伯</person>  <jiguan>福建侯官 </jiguan><null>人</null><next_office>陞教諭</next_office> <post_time>三十 二</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>張韜</person>  <jiguan>河南鄭州</jiguan> <null>人</null>艱去 <post_time>三十 五</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>彭廷誨</person>  <jiguan>福建</jiguan><null>人</null>舊 縣志闕年 <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>龍光</person> <jiguan>湖廣茶 陵</jiguan><jiguan>州</jiguan><null>人</null> <post_time>三十 九</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>熊吉</person> <jiguan>湖廣麻城</jiguan> <null>人</null><next_office>陞教諭</next_office> <post_time>四十 一</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>賈景賢</person>  <jiguan>閒川成都</jiguan> <null>人</null><next_office>陞教諭</next_office> <post_time>四十 五</post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy>【903】 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>袁金</person>  <jiguan>河南舞陽 </jiguan><null>人</null><next_office>陞教諭</next_office>   <post_time>隆慶 二年</post_time><post_time></post_time>             
+<office>〈訓導〉</office><dy>〈明〉</dy><person>唐宰</person>  <jiguan>浙江桐廬</jiguan><null>人</null> <next_office>陞王府教授</next_office> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>黎士進</person> <jiguan>江西靖江</jiguan><null>人</null> <next_office>陞王府教授</next_office> <post_time>六</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>蔣暘</person>  <jiguan>廣西馬平</jiguan><null>人</null><next_office>陞教 諭</next_office>以上並<entry_way>歲貢</entry_way> <post_time>萬歷 二年  </post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy><person>夏景星</person>  <jiguan>高淳</jiguan><null>人</null> 艱去 <post_time>三</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>謝甯祿</person>  <jiguan>永安</jiguan><null>人</null><next_office>陞教諭</next_office> <jiguan>楊志作永甯</jiguan><null>人</null> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>林敦忠</person>  <jiguan>福建晉江</jiguan><null>人</null><next_office>陞教諭</next_office><post_time>楊志 作萬歷七年</post_time><post_type>任</post_type>祀名宧祠 <post_time>闕年</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>程校</person>  <jiguan>續溪</jiguan> <null>人</null> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈明〉</dy><person>王讚</person>  <jiguan>婺源</jiguan><null>入</null><othername>楊志康 熙郡志並作汪</othername> <post_time>十一 年 </post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy><person>胡士廉</person>  <post_time>十五 年</post_time>
+<office>〈訓導〉</office><dy>〈明〉</dy>【904】   
+<office>〈訓導〉</office><dy>〈明〉</dy><person>張鵠</person>  <jiguan>雲南江川</jiguan><null>人</null> 以下並阙年                
+<office>〈訓導〉</office><dy>〈明〉</dy><person>程萬里</person>  <jiguan>歙縣</jiguan> <null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>孔懷信</person>  <jiguan>含山</jiguan> <null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>呂鈿</person>  <jiguan>含山</jiguan> <null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>辛國治</person> <jiguan>河南</jiguan> <null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>張珵</person>  <jiguan>貴州</jiguan> <null>人</null>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>陳勸</person>  <jiguan>盱眙</jiguan><null>人</null><entry_way>貢 生</entry_way>詳名宦    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>陳溢</person>  <post_time>楊志作萬歷 丁未年間</post_time><post_type>任</post_type>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>謝陶成</person>  <jiguan>上元</jiguan><null>人</null><othername>宋志 作陶人崇</othername>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>王廷釴</person>  <jiguan>金壇</jiguan>  <null>人</null> <post_time>萬歷辛亥 王子年間</post_time><post_type>任</post_type>
+<office>〈訓導〉</office><dy>〈明〉</dy>【905】   
+<office>〈訓導〉</office><dy>〈明〉</dy><person>周棟</person>  <jiguan>邳州</jiguan><null>人</null>以上二人<post_time>萬歷辛亥 王子年間</post_time><post_type>任</post_type>舊作州誤    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>王肯堂</person>  <jiguan>金壇</jiguan><null>人</null><post_time>楊志作萬 歷乙卯年間</post_time><post_type>任</post_type>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>孫希顏</person>  <jiguan>壽州</jiguan><null>人</null><post_time>萬歷 丙辰年間</post_time><post_type>任</post_type>   
+<office>〈訓導〉</office><dy>〈明〉</dy><person>周之士</person>  <jiguan>貴州</jiguan><null>人</null><next_office>陞知縣</next_office><post_time>楊志 作天啟辛酉年間</post_time><post_type>任</post_type> <post_time>天啟</post_time>  
+<office>〈訓導〉</office><dy>〈明〉</dy><person>黃升喬</person>  <jiguan>泗州</jiguan><null>人</null>楊志作四川人 <post_time>康熙郡志作崇正間</post_time><post_type>任</post_type> <post_time>崇正</post_time>   
+<office>〈訓導〉</office><dy>〈明〉</dy><person>姜志峻</person> <jiguan>丹陽</jiguan><null>人</null><othername>府志峻 作俊</othername>詳名宦   <post_time>崇</post_time><post_time>正戊寅年間</post_time><post_type>任</post_type>
+<office>〈訓導〉</office><dy>〈明〉</dy><person>張駿業</person>  <jiguan>句容</jiguan><null>人</null>詳名宦以上二 人<post_time>崇正戊</post_time><post_time>寅年間</post_time><post_type>任</post_type>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>馬鳴鑾</person>  <jiguan>四川瀘州</jiguan><null>人</null> <next_office>陞樂清教諭</next_office>    
+<office>〈訓導〉</office><dy>〈明〉</dy><person>段不群</person> <jiguan>河南固 始</jiguan><jiguan></jiguan><null>人</null> 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈訓導〉</office>〈訓導〉                
+<office>〈訓導〉</office><dy>〈清〉</dy>【906】 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐必達</person>  <jiguan>廬江</jiguan> <null>人</null> <post_time>順治 二年 </post_time>                
+<office>〈訓導〉</office><dy>〈清〉</dy><person>馮時掄</person>  <jiguan>建德</jiguan><null>人</null><entry_way>貢生</entry_way><othername>宋志作湯 時掄誤</othername>楊志作七年任 <post_time>四</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>胡繩</person>  <jiguan>績溪</jiguan><null>人</null><entry_way>貢生</entry_way> <next_office>陞宣城教諭</next_office> <post_time>八</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>汪會昌</person>  <jiguan>歙縣</jiguan><null>人</null><entry_way>貢 生</entry_way>有師範 <post_time>十</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>陳吾道</person>  <jiguan>高郵州 </jiguan> <null>人</null><entry_way>貢生</entry_way> <post_time>十四 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>楊東生</person>  <jiguan>江甯</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>十六 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>侯鼎岐</person>  <jiguan>江甯</jiguan><null>人</null><entry_way>貢生</entry_way>宋 志作十四年<post_type>任</post_type> <post_time>康熙 四年</post_time><post_time></post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>張翥</person>  <jiguan>靈壁</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>十一 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐鍾麟</person>  <jiguan>六安州</jiguan> <null>人</null><entry_way>貢生</entry_way> <post_time>二十 一</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>王曰叟</person>  <jiguan>江都</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>二十 四</post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy>【907】 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>許心周</person>  <jiguan>上元</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>二十 六</post_time><post_time>年</post_time>               
+<office>〈訓導〉</office><dy>〈清〉</dy><person>夏則大</person>  <jiguan>桃源</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>三十 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>孫鴻緒</person>  <jiguan>清河</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>張曰忠</person>  <jiguan>儀徵</jiguan><null>人</null><source_tag>見儀 徵縣志</source_tag>今增 <post_time>三十 七</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>程功</person>  <jiguan>黟縣</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>鄭琠</person>  <jiguan>儀徵</jiguan><null>人</null> <entry_way>貢生</entry_way> <post_time>四十 九</post_time><post_time>年</post_time>   
+<office>〈訓導〉</office><dy>〈清〉</dy><person>阮湛</person> <null>號</null><hao>篠亭</hao><jiguan>懷 甯</jiguan><jiguan></jiguan><null>人</null><entry_way>歲貢</entry_way>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐紀年</person>  <jiguan>銅陵</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>五十 四</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>童昊</person> <null>字</null><zi>維欽</zi><jiguan>丹 徒</jiguan><jiguan></jiguan><null>人</null><entry_way>歲貢</entry_way> <post_time>五十 八</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>邱時叙</person> <null>字</null><zi>禹揆</zi><jiguan>六安 州</jiguan><jiguan></jiguan><null>人</null><entry_way>歲貢</entry_way> <post_time>雍正 三</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy>【908】 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>王略</person>  <jiguan>太和</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>十二 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>汪慶䄓</person>  <jiguan>休甯</jiguan><null>人</null><entry_way>歲貢</entry_way> <othername>府志作楻</othername> <post_time>乾隆 十年</post_time><post_time></post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐履泰</person>  <jiguan>興化</jiguan><null>人</null> <entry_way>拔貢</entry_way> <post_time>二十 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>佘鈞</person> <jiguan>銅陵</jiguan><null>人</null><entry_way>歲 貢</entry_way>卒於官 <post_time>二十 五</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>李堂</person>  <jiguan>山陽</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>二十 七</post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy><person>顧鴻志</person> <jiguan>奉賢</jiguan><null>人</null><entry_way>拔 貢</entry_way>艱去 <post_time>三十 四</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>季篤慶</person> <jiguan>通州</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>四十 五</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>程一飛</person>  <jiguan>武進</jiguan><null>人</null><entry_way>舉人</entry_way><prev_office>咸安宮 教習大挑貳等選授 </prev_office><post_time>五十 一</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>查嶧山</person> <jiguan>興化</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>嘉慶 十</post_time><post_time>三</post_time><post_time>年</post_time>   以上舊志                
+<office>〈訓導〉</office><dy>〈清〉</dy>【909】
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈訓導〉</office>〈訓導〉                 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>萬厚昌</person> <jiguan>甘泉</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>嘉慶 十七</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>韓琅</person>  <jiguan>丹徒</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>道光 六年</post_time><post_time></post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>程嘉杰</person>  <jiguan>常州</jiguan><null>人</null> <entry_way>舉人</entry_way>   <post_time>闕年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>姚金聲</person>     
+<office>〈訓導〉</office><dy>〈清〉</dy><person>邵榮洗</person>  <jiguan>武進</jiguan><null>人</null> <entry_way>舉人</entry_way>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>胡澤誥</person>  <jiguan>銅陵</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>咸豐 元年</post_time><post_time></post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐必濠</person>  <jiguan>石埭</jiguan><null>人</null> <entry_way>歲貢</entry_way> <post_time>同治 三</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>計學醕</person> <jiguan>徽州</jiguan><null>人</null> <post_type>署任</post_type> <post_time>四</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>韓宗愈</person>  <jiguan>潛山</jiguan><null>人</null><entry_way>附生</entry_way><entry_way>軍功</entry_way><prev_office>五品 頂戴候選訓導</prev_office><post_time>十月</post_time><post_type>署</post_type> <post_time>八</post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy>【910】  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>段昭懋</person> <jiguan>英山</jiguan><null>人</null><entry_way>增生</entry_way><entry_way>軍功</entry_way><prev_office>保候選 訓導分發試用</prev_office><post_time>二月</post_time><post_type>署</post_type>  <post_time>十</post_time><post_time>年</post_time>       
+<office>〈訓導〉</office><dy>〈清〉</dy><person>徐文田</person>  <jiguan>靈壁</jiguan><null>人</null><entry_way>附生</entry_way><entry_way>軍功</entry_way><prev_office>歷保花翎鹽 提舉銜分發試用訓導</prev_office><post_time>八月</post_time><post_type>署</post_type> <post_time>十一 年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>余士璟</person> <jiguan>壽州</jiguan><null>人</null> <entry_way>歲貢</entry_way>  <post_time>十三 年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>汪蓮田</person>  <prev_office>見教諭</prev_office> <post_type>兼理</post_type>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>李書森</person>  <jiguan>太湖</jiguan><null>人</null><entry_way>增生</entry_way><prev_office>試 用訓導</prev_office><post_time>九月</post_time><post_type>署</post_type> <post_time>光緒 二</post_time><post_time></post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy><person>舒鳳翥</person> <jiguan>黟縣</jiguan><null>人</null><entry_way>舉 人</entry_way><post_time>十月</post_time><post_type>任</post_type>   
+<office>〈訓導〉</office><dy>〈清〉</dy><person>江徽錞</person> <prev_office>見教諭</prev_office><post_time>三 月</post_time><post_type>兼理</post_type>  <post_time>八</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>金詔</person>  <jiguan>懷甯</jiguan><null>人</null><entry_way>孝廉方正</entry_way> <prev_office>考用教職</prev_office><post_time>七月</post_time><post_type>署</post_type>   
+<office>〈訓導〉</office><dy>〈清〉</dy><person>陶寶森</person>  <jiguan>當塗</jiguan><null>人</null><entry_way>舉 人</entry_way><post_time>正月</post_time><post_type>任</post_type> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈訓導〉</office><dy>〈清〉</dy><person>胡晉槐</person>  <prev_office>見教諭</prev_office><post_time>閏 五月</post_time><post_type>兼理</post_type> <post_time>二十 一</post_time><post_time>年</post_time>
+<office>〈訓導〉</office><dy>〈清〉</dy>【911】   
+<office>〈訓導〉</office><dy>〈清〉</dy><person>李書森</person>  見前<post_time>六 月</post_time><post_type>署</post_type>    
+<office>〈訓導〉</office><dy>〈清〉</dy><person>胡晉槐</person>  <prev_office>見教諭</prev_office><post_time>七 月</post_time><post_type>兼理</post_type>    
+<office>〈訓導〉</office><dy>〈清〉</dy><person>葉資深</person>  <jiguan>太湖</jiguan><null>人</null><entry_way>舉人</entry_way><prev_office>大挑 教職</prev_office><post_time>十一月</post_time><post_type>任</post_type>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>程祚昌</person>  <prev_office>見教諭</prev_office><post_time>正 月</post_time><post_type>兼理</post_type>  <post_time>二十 九</post_time><post_time>年</post_time>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>竇鳳翔</person> <jiguan>霍邱</jiguan><null>人</null><entry_way>附 貢</entry_way><post_time>三月</post_time><post_type>署</post_type>    
+<office>〈訓導〉</office><dy>〈清〉</dy><person>葉資深</person>  <post_time>四月</post_time> <post_type>回任</post_type>  
+<office>〈訓導〉</office><dy>〈清〉</dy><person>湯克鎔</person>  見<prev_office>教諭</prev_office><post_time>二月</post_time><post_type>兼理</post_type>十一月奉部文停選 復設教諭宣統元年閏二月移補<next_office>訓導</next_office>  <post_time>三十 四</post_time><post_time>年</post_time>  以上新增 
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈巡檢〉</office>〈巡檢〉 名次仍 從楊志    
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>張泰</person>  
+<office>〈巡檢〉</office><dy>〈明〉</dy>【912】   
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>李源</person>                      
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>孫璁</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>陳節</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>李珜</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>李彥和</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>劉澤</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>戚恭</person>    
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>王堂</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>周成</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>范朝宗</person>  
+<office>〈巡檢〉</office><dy>〈明〉</dy>【913】   
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>趙嵩</person>                      
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>劉經</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>李大舉</person>    
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>李雲</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>徐騰光</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>黃世祿</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>許希良</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>河澗</person>    
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>龎厥中</person>    
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>盧隆</person>  
+<office>〈巡檢〉</office><dy>〈明〉</dy>【914】   
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>劉印之</person>  <othername>宋志作  應之 </othername>                 
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>張佩</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>張一麟</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>田舜</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>趙珍</person>     
+<office>〈巡檢〉</office><dy>〈明〉</dy><person>王同信</person>  
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈巡檢〉</office>〈巡檢〉    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>王承恩</person>  <jiguan>臨海</jiguan> <null>人</null>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>王允煥</person>  <jiguan>京左</jiguan><null>人</null><post_time>順治 十一年</post_time><post_time></post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>許日捧</person>  <jiguan>臨川</jiguan><null>人</null><post_time>順治 十五</post_time><post_time></post_time><post_time>年</post_time><post_type>任</post_type> 
+<office>〈巡檢〉</office><dy>〈清〉</dy>【915】   
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>諸耀</person> <jiguan>山陰</jiguan><null>人</null><post_time>順治 十六年</post_time><post_time></post_time><post_type>任</post_type>                 
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>王歆</person>  <jiguan>山陰</jiguan><null>人</null><post_time>順治 十七</post_time><post_time></post_time><post_time>年</post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>周志茂</person>  <jiguan>三原</jiguan><null>人</null><post_time>康 十三年</post_time><post_time></post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>吳起潛</person>  <jiguan>大興</jiguan><null>人</null><post_time>康 十九年</post_time><post_time></post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>宋三益</person>  <jiguan>陽信</jiguan><null>人</null><post_time>康 二十七年</post_time><post_time></post_time><post_type>任 </post_type>   
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>王復臻</person>     
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>董律</person>  <jiguan>山陰</jiguan><null>人</null><jiguan>宋志作順義</jiguan><null>人</null> 誤<post_time>康熙</post_time><post_time>四十五</post_time><post_time>年</post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>馬世琪</person>  <jiguan>玉田</jiguan><null>人</null><post_time>康熙 五十</post_time><post_time></post_time><post_time>年</post_time><post_type>任</post_type>    
+<office>〈巡檢〉</office><dy>〈清〉</dy><person>張國正</person>  <jiguan>大興</jiguan><null>人</null><null></null><post_time>雍 正</post_time><post_time></post_time><post_time>三</post_time><post_time>年</post_time><post_type>任</post_type>    按巡檢司巡檢一缺分駐峩嶺雍正六年裁 
+【916】
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈稅課局大使〉</office>〈稅課局大使〉                
+<office>〈稅課局大使〉</office><dy>〈明〉</dy><person>余士</person><person>隆</person> <othername>宋志作  仕隆</othername>    按稅課局大使一缺明正德年間裁 
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈醫學訓科〉</office>〈醫學訓科〉    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉維先</person>   
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉璥</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉璦</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉渙</person>     
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉泮</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉耀</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>張俶</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>施文舉</person>    
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉維垣</person>   
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>劉有威</person>   
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>楊勝龍</person>   
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>王家圮</person>     
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>管世昌</person>  
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>管世昊</person>  
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>管天傑</person>  
+<office>〈醫學訓科〉</office><dy>〈明〉</dy><person>管永寬</person> 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈醫學訓科〉</office>〈醫學訓科〉    
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>劉定</person>    
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>何 </person>失  名    
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>方惟聖</person>   
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>劉芳</person>  
+<office>〈醫學訓科〉</office><dy>〈清〉</dy>【917】   
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>戴一瑄</person>  
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>何其義</person>   
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>何家芬</person>  <null>字</null><zi></zi><zi>芳 宇</zi> 
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>詹維清</person>     
+<office>〈醫學訓科〉</office><dy>〈清〉</dy><person>葉培春</person>  
+<dy>〈明〉</dy>〈明〉   
+<dy>〈明〉</dy><office>〈陰陽學訓術〉</office>〈陰陽學訓術〉    
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>蔣輔</person>    
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>嚴瓊</person>    
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>嚴璼</person>    
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>劉柯</person>     
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>劉格</person>    
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>曹重器</person>   
+<office>〈陰陽學訓術〉</office><dy>〈明〉</dy><person>嚴汝文</person>  
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈陰陽學訓術〉</office>〈陰陽學訓術〉    
+<office>〈陰陽學訓術〉</office><dy>〈清〉</dy><person>胡邦佩</person>   
+<office>〈陰陽學訓術〉</office><dy>〈清〉</dy><person>胡魁月</person>   
+<office>〈陰陽學訓術〉</office><dy>〈清〉</dy><person>胡朝鼎</person>   
+<office>〈陰陽學訓術〉</office><dy>〈清〉</dy><person>胡助昌</person>     按醫學訓科陰陽學訓術自嘉慶十三年後歷任    各員均不可考    以上舊志 
+【918】   按唐有梁武 <jiguan>浙江臨海</jiguan><null>人</null>唐<post_time>萬歲登封</post_time><post_time>元</post_time><post_time>年</post_time>官 南陵尹見唐梁氏家廟題名殘碑 宋    有鄧和卿 <entry_addr>宋靖康</entry_addr><entry_time>丙午</entry_time><entry_way><entry_way>舉人</entry_way></entry_way>官潞西 府同知左遷南陵典史 鄧仲春  宋建  炎間   官南陵巡司   均見鄧氏譜 均於唐宋官制不合姑附錄之以俟    考焉    武員 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈千總〉</office>〈千總〉  
+<office>〈千總〉</office><dy>〈清〉</dy><person>孔守義</person>  <post_time>順治 二年</post_time><post_time></post_time>  
+<office>〈千總〉</office><dy>〈清〉</dy><person>張文友</person>  <jiguan>陜西楡林 </jiguan><null>人</null><entry_way>行伍</entry_way> <post_time>六</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>楊大榮</person>  <jiguan>陜西榆林</jiguan> <null>人</null><entry_way>行伍</entry_way> <post_time>十三 年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>林友松</person>  <jiguan>山西臨縣</jiguan> <null>人</null><entry_way>行伍</entry_way> <post_time>十五 年</post_time>
+<office>〈千總〉</office><dy>〈清〉</dy>【919】 
+<office>〈千總〉</office><dy>〈清〉</dy><person>馬龍</person>  <jiguan>河南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>十七 年</post_time>                
+<office>〈千總〉</office><dy>〈清〉</dy><person>曹明</person>  <jiguan>揚州</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>康熙 九年</post_time><post_time></post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>祝禮嘉</person> <jiguan>河南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>十四 年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>郭定國</person>  <jiguan>河南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>二十 二</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>陳加祿</person>  <jiguan>高淳</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>二十 八</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>陳鸞</person>  <jiguan>湖廣</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>二十 九</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>王國相</person>  <jiguan>湖廣</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>三十 六</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>湯三</person>  <jiguan>福建</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>三十 九</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>胡豹</person>  <jiguan>安慶</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>四十 七</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>唐三畏</person>  <jiguan>六合</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>五十 年</post_time>
+<office>〈千總〉</office><dy>〈清〉</dy>【920】 
+<office>〈千總〉</office><dy>〈清〉</dy><person>許必榮</person>  <jiguan>陜西</jiguan><null>人</null> <entry_way>行伍</entry_way>  <post_time>五十 七</post_time><post_time>年</post_time>                
+<office>〈千總〉</office><dy>〈清〉</dy><person>李蔚宗</person>  <jiguan>宣城</jiguan><null>人</null> <entry_way>行伍</entry_way>  
+<office>〈千總〉</office><dy>〈清〉</dy><person>項朝選</person> <jiguan>陜西</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>雍正 三年</post_time><post_time></post_time>  
+<office>〈千總〉</office><dy>〈清〉</dy><person>張高魁</person>  <jiguan>鹽城</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>五</post_time><post_time>年</post_time>  
+<office>〈千總〉</office><dy>〈清〉</dy><person>汪相</person>  <jiguan>潛山</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>七</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>李世儀</person>  <jiguan>安慶</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>乾隆 元年</post_time><post_time></post_time>  
+<office>〈千總〉</office><dy>〈清〉</dy><person>潘億</person>  <jiguan>蓬萊</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>八</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>高尙仁</person>  <null>字</null><zi>錦江</zi><jiguan>華 亭</jiguan><jiguan></jiguan><null>人</null><entry_way>行伍</entry_way> <post_time>十四 年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>錢爾達</person>  <jiguan>江南</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>二十 二</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>劉□</person>  <jiguan>□南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>三十 三</post_time><post_time>年</post_time>
+<office>〈千總〉</office><dy>〈清〉</dy>【921】 
+<office>〈千總〉</office><dy>〈清〉</dy><person>李得貴</person>  <jiguan>江南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>匹十 </post_time><post_time>二</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>王耀增</person>  <jiguan>江南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>買荆石</person> <jiguan>河南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>四十 六</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>沈同春</person>  <jiguan>江南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>四十 九</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>馬安堃</person>  <jiguan>陜西</jiguan><null>人</null> <entry_way>舉人</entry_way> <post_time>五十 二</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>江國興</person> <jiguan>江南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>五十 六</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>火嘉瑞</person> <jiguan>江南</jiguan><null>人</null> <entry_way>行伍</entry_way> <post_time>五十 八</post_time><post_time>年</post_time> 
+<office>〈千總〉</office><dy>〈清〉</dy><person>張定邦</person>  <jiguan>貴池</jiguan><null>人</null><prev_office>候推 守備</prev_office><entry_way>行</entry_way><entry_way>伍</entry_way>  <post_time>嘉慶 三年</post_time><post_time></post_time>  以上舊志                
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈把總〉</office>〈把總〉 <post_time>道光</post_time><post_time>二十 八</post_time><post_time>年</post_time>改設 
+<office>〈把總〉</office><dy>〈清〉</dy>【922】 
+<office>〈把總〉</office><dy>〈清〉</dy><person>陳安寶</person>  <jiguan>徽州</jiguan> <null>人</null>  <post_time>道 光 廿八</post_time><post_time></post_time><post_time>年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>鳳珍福</person>  <post_time>咸豐闕年</post_time>
+<office>〈把總〉</office><dy>〈清〉</dy><person>沈金鼇</person>   <post_time>同治 闕年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>吳世清</person>  <post_time>八</post_time><post_time>年</post_time>  
+<office>〈把總〉</office><dy>〈清〉</dy><person>吳春祥</person>  <null>字</null><zi>一輸</zi><jiguan>江蘇常熟</jiguan><null>人</null>由<entry_way>行伍</entry_way><prev_office>歷保花翎留 兩江補用都司借補徽州營右軍右哨頭   司把總</prev_office><post_time>八   月</post_time><post_type>調任</post_type>  <post_time>九</post_time><post_time>年</post_time>
+<office>〈把總〉</office><dy>〈清〉</dy><person>杭鎭年</person> <post_time>七月</post_time> <post_type>署</post_type> <post_time>十二 年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>張宏發</person>  <post_time>光緒 二</post_time><post_time></post_time><post_time>年</post_time>  
+<office>〈把總〉</office><dy>〈清〉</dy><person>趙文彩</person>  <post_time>六</post_time><post_time>年</post_time>  
+<office>〈把總〉</office><dy>〈清〉</dy><person>朱德</person>  <post_time>八</post_time><post_time>年</post_time>
+<office>〈把總〉</office><dy>〈清〉</dy>【923】  
+<office>〈把總〉</office><dy>〈清〉</dy><person>吳春祥</person>  見前<post_time>六 月</post_time><post_type>回任</post_type> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>馬鴻烈</person>  <post_time>三月</post_time> <post_type>署</post_type> <post_time>十八 年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>吳春祥</person>  見前<post_time>十二 月</post_time><post_type>回任</post_type> <post_time>十九 年</post_time> 
+<office>〈把總〉</office><dy>〈清〉</dy><person>楊春福</person>  <jiguan><null>字</null><zi>秀臣</zi>六安州</jiguan><null>人</null>由<entry_way>行伍</entry_way>歷保藍翎守備 借補徽州營右軍右哨頭司把總三月調   任  <post_time>三十 二</post_time><post_time>年</post_time>   
+<office>〈把總〉</office><dy>〈清〉</dy><person>王振鐸</person>  <jiguan><null>字</null><zi>斗軒</zi>懷甯</jiguan><null>人</null> 宣統三年裁  <post_time>宣統 元年</post_time><post_time></post_time>  以上新增 
+<dy>〈清〉</dy>〈清〉   
+<dy>〈清〉</dy><office>〈協防〉</office>〈協防〉   
+<office>〈協防〉</office><dy>〈清〉</dy><person>李廷榮</person>  <post_time>乾隆 </post_time> 
+<office>〈協防〉</office><dy>〈清〉</dy><person>蔣之貴</person> <post_time>九</post_time><post_time>年</post_time> 
+<office>〈協防〉</office><dy>〈清〉</dy>【924】  
+<office>〈協防〉</office><dy>〈清〉</dy><person>麻世明</person> <post_time> 闕年</post_time> 
+<office>〈協防〉</office><dy>〈清〉</dy><person>吳秉忠</person>  <jiguan>廣德 </jiguan><jiguan>州</jiguan><null>人</null>    
+<office>〈協防〉</office><dy>〈清〉</dy><person>吳秉雄</person>  <jiguan>廣德</jiguan> <jiguan>州</jiguan><null>人</null>  
+<office>〈協防〉</office><dy>〈清〉</dy><person>梅曾</person> <jiguan>宣城</jiguan> <null>人</null> <post_time>四十 四</post_time><post_time>年</post_time> 
+<office>〈協防〉</office><dy>〈清〉</dy><person>李國正</person>  <jiguan>宣城</jiguan><null>人</null><null></null> 並<entry_way>行伍</entry_way> <post_time>嘉慶 六</post_time><post_time></post_time><post_time>年</post_time>   以上舊志 
+<dy>〈清〉</dy>〈清〉  
+<dy>〈清〉</dy><office>〈 協防〉</office>〈 協防〉                 
+<office>〈 協防〉</office><dy>〈清〉</dy><person>何大林</person>  <post_time>同治 闕年</post_time>  
+<office>〈 協防〉</office><dy>〈清〉</dy><person>馬得勝</person>  <post_time>八</post_time><post_time>年</post_time> 
+<office>〈 協防〉</office><dy>〈清〉</dy><person>包定邦</person> <post_time>光緒 九年</post_time><post_time></post_time>
+<office>〈 協防〉</office><dy>〈清〉</dy>【925】 
+<office>〈 協防〉</office><dy>〈清〉</dy><person>裴長松</person>  <post_time>十八 年 </post_time>
+<office>〈 協防〉</office><dy>〈清〉</dy><person>黃克松</person>  <post_time>十九 年</post_time>   以上新增    按南陵舊設城守駐防千總協防外委各一員均    屬甯國營<post_time>道光</post_time><post_time>二十八</post_time><post_time>年</post_time>改城守駐防千總為把    總仍以協防外委駐防三里店<post_time>同治</post_time><post_time>十三</post_time><post_time>年</post_time>改屬    皖南鎮標左營<post_time>宣統</post_time><post_time>三</post_time><post_time>年</post_time>裁兵燹後營署案牘散    佚歷任名多失考故從闕焉   
+【926】                               南陵縣志卷十七終 
+【927】南陵縣志卷十八   職官志    名宦    知縣 後漢吳周瑜字<jiguan>公瑾廬江舒城</jiguan><null>人</null>孫策平吳瑜自居巢   長還孫策以其恩信著於廬江令出備牛渚後長春   穀策欲取荆州乃以為江夏太守大破曹操於赤壁   祀名宦   周泰字<jiguan>幼平九江下蔡</jiguan><null>人</null><jiguan>也孫權愛其為</jiguan><null>人</null>請以自   給後孫策討六縣山賊權住宣<jiguan>城衛士不及千</jiguan><null>人</null>意 
--- a/develop/data/parsing_files/126434.txt	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/data/parsing_files/126434.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -155,3 +155,12 @@
 
 
 
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_07_59.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,222 @@
+【737】常州府志卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu></shu><product_place>〈<product_place>武進</product_place>〉</product_place><shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<product_place>〈<product_place>武進</product_place>〉</product_place><shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>
+<product_place>〈<product_place>武進</product_place>〉</product_place>〈<product_place>武進</product_place>〉</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>芝麻</product_name>
+<shu>〈榖之屬〉</shu><product_name>飯豆</product_name>俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place><product_place><product_place><product_place>武進</product_place></product_place></product_place></product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place><product_place>無錫</product_place></product_place>者佳 
+<shu>〈蔬之屬〉</shu>〈蔬之屬〉
+<shu>〈蔬之屬〉</shu>如
+<shu>〈蔬之屬〉</shu><product_name>芹菜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>蔓菁</product_name>
+<shu>〈蔬之屬〉</shu><product_name>韭薺</product_name>
+<shu>〈蔬之屬〉</shu><product_name>塌科</product_name>
+<shu>〈蔬之屬〉</shu><product_name>烏菘菜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>薹馬蘭</product_name>
+<shu>〈蔬之屬〉</shu><product_name>茼蒿</product_name>
+<shu>〈蔬之屬〉</shu><product_name>菠菜</product_name>芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<shu>〈蔬之屬〉</shu><product_name>莧黄瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>茄子</product_name>
+<shu>〈蔬之屬〉</shu><product_name>絲瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>南瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>牛角瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>香瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>冬瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>番瓜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>火菜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>白菜</product_name>
+<shu>〈蔬之屬〉</shu><product_name>葫蘆</product_name>   
+<shu></shu><shu>〈蔬之屬〉</shu><product_name>刀豆</product_name>
+<shu>〈蔬之屬〉</shu><product_name>莢茨</product_name>
+<shu>〈蔬之屬〉</shu><product_name>菇</product_name>
+<shu>〈蔬之屬〉</shu><product_name>荸薺</product_name>
+<shu>〈蔬之屬〉</shu><product_name>香芋</product_name><product_name></product_name>俱與他郡無異惟
+<shu>〈蔬之屬〉</shu><product_name>燕笋</product_name>産於 【739】  <product_place>江陰</product_place>者隹
+<shu>〈蔬之屬〉</shu><product_name>毛笋</product_name>產於<product_place>宜興</product_place>者隹
+<shu>〈蔬之屬〉</shu><product_name>萊菔</product_name> 即<othername>蘿蔔</othername> 産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>   之觀基者隹
+<shu>〈蔬之屬〉</shu><product_name>芋頭</product_name>產於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之馬山者隹蕈産於無   錫之惠山
+<shu>〈蔬之屬〉</shu>者隹<product_name>竹茹</product_name>産於<product_place>宜興</product_place>之南山者
+<shu>〈蔬之屬〉</shu>隹<product_name>西瓜</product_name>産   於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之奔牛<product_place>無錫</product_place>之五牧<product_place>江陰</product_place>之青暘者隹
+<shu>〈蔬之屬〉</shu><product_name>大蒜</product_name>   産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之横林者隹 
+<shu>〈果之屬〉</shu>
+<shu>〈果之屬〉</shu>如
+<shu></shu><shu></shu><shu>〈果之屬〉</shu><product_name>棗栗</product_name>
+<shu>〈果之屬〉</shu><product_name>梅</product_name>
+<shu>〈果之屬〉</shu><product_name>杏</product_name>
+<shu>〈果之屬〉</shu><product_name>李</product_name>
+<shu>〈果之屬〉</shu><product_name>枇杷</product_name>
+<shu>〈果之屬〉</shu><product_name>梨</product_name>
+<shu>〈果之屬〉</shu><product_name>杮</product_name>
+<shu>〈果之屬〉</shu><product_name>梧桐</product_name>
+<shu>〈果之屬〉</shu><product_name>石榴花</product_name>紅嘉慶   子
+<shu>〈果之屬〉</shu><product_name>核桃</product_name>
+<shu>〈果之屬〉</shu><product_name>葡萄</product_name>
+<shu>〈果之屬〉</shu><product_name>銀杏</product_name>
+<shu>〈果之屬〉</shu><product_name>蓮蓬</product_name>
+<shu>〈果之屬〉</shu><product_name>芡</product_name><product_name></product_name>實俱與他郡無異惟
+<shu>〈果之屬〉</shu><product_name>桃</product_name><product_name></product_name>則   産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之孟河靖江之諸沙者隹
+<shu>〈果之屬〉</shu><product_name>櫻桃</product_name>產於<product_place>江陰</product_place>   之青暘者隹
+<shu>〈果之屬〉</shu><product_name>楊梅</product_name>産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之馬山者隹
+<shu>〈果之屬〉</shu><product_name>菱</product_name>産於<product_place>武進</product_place>之蘆墅者隹 
+【740】
+<shu>〈藥之屬〉</shu>〈藥之屬〉如
+<shu>〈藥之屬〉</shu><product_name>百合</product_name>
+<shu></shu><shu>〈藥之屬〉</shu>〈藥之屬〉<product_name>山藥</product_name>
+<shu>〈藥之屬〉</shu><product_name>麥門冬</product_name>
+<shu>〈藥之屬〉</shu><product_name>桔梗</product_name>
+<shu>〈藥之屬〉</shu><product_name>枸杞</product_name>
+<shu>〈藥之屬〉</shu><product_name>菖蒲</product_name>
+<shu>〈藥之屬〉</shu><product_name>金銀花</product_name>
+<shu>〈藥之屬〉</shu><product_name>櫻子</product_name>
+<shu>〈藥之屬〉</shu><product_name>山查</product_name>
+<shu>〈藥之屬〉</shu><product_name>决明</product_name>
+<shu>〈藥之屬〉</shu><product_name>蒲公英</product_name><product_name></product_name>皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<shu></shu><shu>〈藥之屬〉</shu><product_name>香瞿</product_name>
+<shu>〈藥之屬〉</shu><product_name>麥藿</product_name>
+<shu>〈藥之屬〉</shu><product_name>香夏</product_name><product_name></product_name>
+<shu>〈藥之屬〉</shu><product_name>枯草</product_name>瓜簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟
+<shu>〈藥之屬〉</shu><product_name>紫蘇</product_name>產於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之   毘陵驛者隹
+<shu>〈藥之屬〉</shu><product_name>何首烏</product_name>産於<product_place>宜興</product_place>之銅官者佳而<product_place><product_place><product_place>武進</product_place></product_place></product_place>   之馬山又有一種亦名何首烏或曰<othername>何首胡</othername>身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+<shu>〈木之屬〉</shu>〈木之屬〉
+<shu>〈木之屬〉</shu>如
+<shu>〈木之屬〉</shu><product_name>松</product_name>
+<shu>〈木之屬〉</shu><product_name>栢</product_name>
+<shu>〈木之屬〉</shu><product_name>檜</product_name>榆槐椐石楠
+<shu>〈木之屬〉</shu><product_name>冬青</product_name>
+<shu>〈木之屬〉</shu><product_name>棕櫚</product_name>黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+<shu>〈木之屬〉</shu>【741】  俱與他郡無異惟
+<shu>〈木之屬〉</shu><product_name>茶</product_name>則産於<product_place><product_place>宜興</product_place></product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+<shu>〈竹之屬〉</shu>〈竹之屬〉
+<shu>〈竹之屬〉</shu>如
+<shu>〈竹之屬〉</shu><product_name>慈孝</product_name>
+<shu>〈竹之屬〉</shu><product_name>紫竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>淡竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>金竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>剛竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>天竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>苦竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>木竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>鳯尾竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>烏筋竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>水竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>護基竹</product_name>俱與他郡無異
+<shu>〈竹之屬〉</shu>惟
+<shu>〈竹之屬〉</shu><product_name></product_name><product_place>〈江陰〉</product_place><product_name>燕竹</product_name>
+<shu>〈竹之屬〉</shu><product_place>〈江陰〉</product_place><product_name>班竹</product_name>産於
+<shu>〈竹之屬〉</shu><product_place>〈江陰〉</product_place>〈江陰〉<product_place><product_place></product_place></product_place>者佳
+<shu>〈竹之屬〉</shu><product_name>毛竹</product_name>産於<product_place><product_place>宜興</product_place></product_place>者佳
+<shu></shu><shu>〈竹之屬〉</shu>〈竹之屬〉其
+<shu>〈竹之屬〉</shu><product_name>班竹</product_name>
+<shu>〈竹之屬〉</shu><product_name>毛竹</product_name><product_name></product_name>   俱可為器物 
+<shu>〈花之屬〉</shu>〈花之屬〉
+<shu>〈花之屬〉</shu>其已見果屬者不更載如
+<product_name></product_name><shu>〈花之屬〉</shu><product_name>芍藥</product_name>
+<shu>〈花之屬〉</shu><product_name>山鵑</product_name>萱夜合金   雀
+<shu>〈花之屬〉</shu><product_name>薔薇</product_name>木香月季鐵線蓮
+<shu>〈花之屬〉</shu><product_name>罌粟</product_name>虞美人佛見笑荼䕷   
+諸葛菜金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟
+<shu>〈花之屬〉</shu><product_name>牡丹</product_name>則産於<product_place>江陰</product_place>之虎涇口者隹多以芍藥   相接故花色甚不一
+<shu>〈花之屬〉</shu><product_name>石巖</product_name>亦産於<product_place>江陰</product_place>之虎涇口沙山者佳
+<shu>〈花之屬〉</shu><product_name>菊花</product_name>亦産於<product_place><product_place>江陰</product_place></product_place>者佳
+<shu>〈花之屬〉</shu><product_name>蘭蕙</product_name>産於<product_place>宜興</product_place>諸山者佳
+<shu>〈花之屬〉</shu><product_name>杜鵑</product_name>亦産於<product_place><product_place>宜興</product_place></product_place>者佳而惟南嶽一株為最古   
+<shu>〈花之屬〉</shu><product_name>棉花</product_name>雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉酸漿魚腥紅蓼辣蓼淡竹葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟
+<product_name>黄麻席草</product_name>則産於【743】<product_place>無錫</product_place>者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+<shu>〈禽之屬〉</shu>〈禽之屬〉
+<shu>〈禽之屬〉</shu>如
+<shu>〈禽之屬〉</shu><product_name>雞</product_name>
+<shu>〈禽之屬〉</shu><product_name>鵝</product_name>
+<shu>〈禽之屬〉</shu><product_name>鴨</product_name>
+<shu>〈禽之屬〉</shu><product_name>鴿</product_name>
+<shu>〈禽之屬〉</shu><product_name>雉竹</product_name>
+<shu>〈禽之屬〉</shu><product_name>雞鵲</product_name>
+<shu>〈禽之屬〉</shu><product_name>烏鴉</product_name>鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟
+<shu>〈禽之屬〉</shu><product_name>鶩</product_name> 俗名 <othername>野鴨</othername> 
+<shu>〈禽之屬〉</shu><product_name>鳬</product_name> 俗名 <othername>水葫蘆</othername>産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之太湖滆湖者佳
+<shu>〈禽之屬〉</shu><product_name>黄</product_name><product_name>雀</product_name>産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之横   林<product_place>無錫</product_place>之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如
+<product_name>牛</product_name>
+<product_name>羊</product_name>
+<product_name>虎豹</product_name>
+<product_name>豕兔</product_name>
+<product_name>犬貓</product_name>
+<product_name>竹䶉</product_name>
+<product_name>獺獾</product_name>俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於<product_place>宜興</product_place>諸山者佳而   可食 
+【744】
+〈鱗之屬〉如鯉青魚鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   絲黑魚鰻鱔俱與他郡無異惟子魚河魨刀鱭鱠殘   塌沙蛼 俗名 <othername>昌蛾</othername> 鑊㔶鱘鮰蝗諸種産於<product_place>武邑</product_place>之孟河   虞塘及江靖兩邑者佳白魚至時雨後産於<product_place>無錫</product_place>溪   河及<product_place>太湖</product_place>者佳
+<product_name></product_name><product_place></product_place><product_place>〈無錫〉</product_place><product_place>〈太湖〉</product_place><product_name>銀魚</product_name>
+<product_place>〈無錫〉</product_place><product_place>〈太湖〉</product_place><product_name>澤魚</product_name>産於
+<product_place>〈無錫〉</product_place>〈太湖〉〈太湖〉<product_place></product_place>及
+<product_place>〈無錫〉</product_place>〈無錫〉<product_place></product_place>之鵝肫   蕩者佳 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟
+<product_name>蟹</product_name>則産於<product_place><product_place><product_place>武進</product_place></product_place></product_place>之芙蓉湖
+名玉瓜者佳<product_place>江陰</product_place>之江   蟹尤巨 
+<shu>〈蟲之屬〉</shu>〈蟲之屬〉
+<shu>〈蟲之屬〉</shu>如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 俗名 <othername>地鱉</othername> <othername>螟蛉</othername> 
+<shu>〈蟲之屬〉</shu>【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   
+<shu>〈蟲之屬〉</shu><product_name>石曠</product_name><product_name></product_name>一名<othername>石麟</othername>産於<product_place>宜興</product_place>山中食者以為佳 
+<shu>〈布帛之屬〉</shu>〈布帛之屬〉
+<shu>〈布帛之屬〉</shu>如
+<shu>〈布帛之屬〉</shu><product_name>綾絹</product_name>
+<shu>〈布帛之屬〉</shu><product_name>布苧</product_name>之類與他郡無異惟
+<shu>〈布帛之屬〉</shu><product_name>布</product_name>則<product_place>武邑</product_place>   之名東門闊者闊而甚細異於他織<product_place>無錫</product_place>之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+<shu>〈工作之屬〉</shu>〈工作之屬〉
+<shu>〈工作之屬〉</shu>如
+<shu>〈工作之屬〉</shu><product_name>銀</product_name>
+<shu>〈工作之屬〉</shu><product_name>錫</product_name>
+<shu>〈工作之屬〉</shu><product_name>銅</product_name>
+<shu>〈工作之屬〉</shu><product_name>鐵</product_name>
+<shu>〈工作之屬〉</shu><product_name>木</product_name>
+<shu>〈工作之屬〉</shu><product_name>瓦</product_name>
+<shu>〈工作之屬〉</shu><product_name>石</product_name>
+<shu>〈工作之屬〉</shu><product_name>漆</product_name>
+<shu>〈工作之屬〉</shu><product_name>染</product_name>諸作俱與他郡無   異惟
+<shu>〈工作之屬〉</shu><product_name>酒</product_name><product_name>作</product_name>則<product_place>無錫</product_place>最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則<product_place>宜興</product_place>之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之<product_place>無錫</product_place>則磚瓦窑磚瓦盛行於數百里內外又若石   作則<product_place>宜興</product_place>之石板可以蓋地<product_place>無錫</product_place>之陽山石可以為   磨為臼<product_place>江陰</product_place>之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+<shu>〈器用之屬〉</shu>〈器用之屬〉
+<shu>〈器用之屬〉</shu>如
+<shu>〈器用之屬〉</shu><product_name>筆箋</product_name>
+<shu>〈器用之屬〉</shu><product_name>扇箸</product_name>
+<shu>〈器用之屬〉</shu><product_name>梳枕</product_name>
+<shu>〈器用之屬〉</shu>以及
+<shu>〈器用之屬〉</shu><product_name>竹木</product_name>器皿之類俱與   他郡無異惟燈則<product_place>武邑</product_place>有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+<shu>〈器用之屬〉</shu>【747】  具爭奇競巧歲歲不同惟
+<shu>〈器用之屬〉</shu><product_name>壺</product_name>則<product_place>宜興</product_place>有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如
+<shu>〈器用之屬〉</shu><product_name></product_name><product_place>〈江陰〉</product_place><product_name>蒲扇</product_name>
+<shu>〈器用之屬〉</shu><product_place>〈江陰〉</product_place><product_name>蒲蓆</product_name>則
+<shu>〈器用之屬〉</shu><product_place>〈江陰〉</product_place>〈江陰〉<product_place></product_place>者佳
+<shu>〈器用之屬〉</shu><product_name>苧帨</product_name>   則<product_place><product_place><product_place>武進</product_place></product_place></product_place>之驛前<product_place>無錫</product_place>之蕩口與靖江三者各佳
+<shu>〈器用之屬〉</shu><product_name>蒲鞋</product_name>   則<product_place>宜興</product_place>之陳橋者佳     
+【748】常州府志卷之十一    封系   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    商 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_08_29.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,41 @@
+【737】常州府志卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+〈榖之屬〉
+如白稻粳稻秈稻早稻晚稻糯稻與他郡無異 
+【738】  惟香珠稻紅蓮稻則産於武進者佳而秈米則歲以   二十石為 上供焉如大麥小麥麥蕎麥黍黄豆青豆赤豆黑豆   菉豆紫羅豆香珠豆僧衣豆豇豆豌豆稨豆芝麻飯   豆俱與他郡無異惟白果豆則産於武進者佳蠶豆   則産於無錫者佳 
+〈蔬之屬〉
+如芹菜蔓菁韭薺塌科烏菘菜薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒莧黄瓜茄   子絲瓜南瓜牛角瓜香瓜冬瓜番瓜火菜白菜葫蘆   刀豆莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 即蘿 蔔 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山者隹竹茹産於宜興之南山者隹西瓜産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合山藥麥門冬桔梗枸杞菖蒲金銀花金   櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴香瞿麥藿香夏枯草瓜簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於宜興者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈孝紫竹淡竹金竹剛竹天竹苦竹木竹鳯   尾竹烏筋竹水竹護基竹俱與他郡無異惟燕竹班   竹産於江陰者佳毛竹産於宜興者佳其班竹毛竹   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   諸葛菜金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於江陰者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於宜興者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉酸漿魚腥紅蓼辣蓼淡竹葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於江靖者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨鴿雉竹雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 俗名 野鴨 鳬 俗名 水葫  蘆  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔犬貓竹䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   可食 
+【744】鱗之屬如鯉青魚鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   絲黑魚鰻鱔俱與他郡無異惟子魚河魨刀鱭鱠殘   塌沙蛼 俗名 昌蛾 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者佳白魚至時雨後産於無錫溪   河及太湖者佳銀魚澤魚産於太湖及無錫之鵝肫   蕩者佳 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖名玉瓜者佳江陰之江   蟹尤巨 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 俗名 地鱉 螟蛉 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕以及竹木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    封系   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    商 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_09_12.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,41 @@
+【737】常州府志卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+〈榖之屬〉
+如白稻粳稻秈稻早稻晚稻糯稻與他郡無異 
+【738】  惟香珠稻紅蓮稻則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如大麥小麥麥蕎麥黍黄豆青豆赤豆黑豆   菉豆紫羅豆香珠豆僧衣豆豇豆豌豆稨豆芝麻飯   豆俱與他郡無異惟白果豆則産於<product_place>武進</product_place>者佳蠶豆   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如芹菜蔓菁韭薺塌科烏菘菜薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒莧黄瓜茄   子絲瓜南瓜牛角瓜香瓜冬瓜番瓜火菜白菜葫蘆   刀豆莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 即蘿 蔔 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山者隹竹茹産於宜興之南山者隹西瓜産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合山藥麥門冬桔梗枸杞菖蒲金銀花金   櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴香瞿麥藿香夏枯草瓜簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈孝紫竹淡竹金竹剛竹天竹苦竹木竹鳯   尾竹烏筋竹水竹護基竹俱與他郡無異惟燕竹班   竹産於<product_place>江陰</product_place>者佳毛竹産於<product_place>宜興</product_place>者佳其班竹毛竹   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   諸葛菜金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉酸漿魚腥紅蓼辣蓼淡竹葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨鴿雉竹雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 俗名 野鴨 鳬 俗名 水葫  蘆  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔犬貓竹䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   可食 
+【744】鱗之屬如鯉青魚鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   絲黑魚鰻鱔俱與他郡無異惟子魚河魨刀鱭鱠殘   塌沙蛼 俗名 昌蛾 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者佳白魚至時雨後産於無錫溪   河及太湖者佳銀魚澤魚産於太湖及無錫之鵝肫   蕩者佳 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖名玉瓜者佳江陰之江   蟹尤巨 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 俗名 地鱉 螟蛉 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕以及竹木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    封系   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    商 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_09_41.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,111 @@
+【737】常州府志卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+〈榖之屬〉
+如
+<product_name>白稻</product_name>
+<product_name>粳稻</product_name>
+<product_name>秈稻</product_name>
+<product_name>早稻</product_name>
+<product_name>晚稻</product_name>
+<product_name>糯稻</product_name>與他郡無異 
+【738】  惟
+<product_name>香珠稻</product_name>
+<product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<product_name>大麥</product_name>
+<product_name>小麥</product_name>
+<product_name>麥</product_name>
+<product_name>蕎麥</product_name>
+<product_name>黍黄豆</product_name>
+<product_name>青豆</product_name>
+<product_name>赤豆</product_name>
+<product_name>黑豆</product_name>   
+<product_name>菉豆</product_name>
+<product_name>紫羅豆</product_name>
+<product_name>香珠豆</product_name>
+<product_name>僧衣豆</product_name>
+<product_name>豇豆</product_name>
+<product_name>豌豆</product_name>
+<product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 即蘿 蔔 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金   櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 俗名 野鴨 鳬 俗名 水葫  蘆  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   可食 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 俗名 昌蛾 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   蕩者佳 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   蟹尤巨 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 俗名 地鱉 螟蛉 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    封系   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    商 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_09_58.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,130 @@
+【737】常州府志卷之十    
+<product_name>物産</product_name>   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+〈榖之屬〉
+如
+<product_name>白稻</product_name>
+<product_name>粳稻</product_name>
+<product_name>秈稻</product_name>
+<product_name>早稻</product_name>
+<product_name>晚稻</product_name>
+<product_name>糯稻</product_name>與他郡無異 
+【738】  惟
+<product_name>香珠稻</product_name>
+<product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<product_name>大麥</product_name>
+<product_name>小麥</product_name>
+<product_name>麥</product_name>
+<product_name>蕎麥</product_name>
+<product_name>黍黄豆</product_name>
+<product_name>青豆</product_name>
+<product_name>赤豆</product_name>
+<product_name>黑豆</product_name>   
+<product_name>菉豆</product_name>
+<product_name>紫羅豆</product_name>
+<product_name>香珠豆</product_name>
+<product_name>僧衣豆</product_name>
+<product_name>豇豆</product_name>
+<product_name>豌豆</product_name>
+<product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金   櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_02_12_13_28.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,130 @@
+【737】常州府志卷之十    
+<product_name>物産</product_name>   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金   櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_03_17_54_16.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,156 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_03_17_54_31.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,156 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_03_18_01_09.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,156 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_03_18_01_18.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,157 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_04_12_01_08.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,161 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_04_12_04_25.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,161 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/126434_2015_03_04_12_04_36.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,162 @@
+【737】〈常州府志〉卷之十    物産   禮曰天時有生也地利有宜也天不生地不養君子   不以為禮則物宜所亟辨哉常郡屬古揚州而禹貢   所載貢物吾郡無一焉蓋吾郡之所生者日用飮食   之外無他奇似無足紀然書稱不貴異物賤用物民   乃足豈吾郡之謂乎兹於他郡所同有者紀於前吾   郡所獨有者紀於後即同為他郡所有而吾郡尤佳   者亦特表而出之作物産志 
+<shu>〈榖之屬〉</shu>〈榖之屬〉
+<shu>〈榖之屬〉</shu>如
+<shu>〈榖之屬〉</shu><product_name>白稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>粳稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>秈稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>早稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>晚稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>糯稻</product_name>與他郡無異 
+<shu>〈榖之屬〉</shu>【738】  惟
+<shu>〈榖之屬〉</shu><product_name>香珠稻</product_name>
+<shu>〈榖之屬〉</shu><product_name>紅蓮稻</product_name>則産於<product_place>武進</product_place>者佳而秈米則歲以   二十石為 上供焉如
+<shu>〈榖之屬〉</shu><product_name>大麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>小麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>蕎麥</product_name>
+<shu>〈榖之屬〉</shu><product_name>黍黄豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>青豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>赤豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>黑豆</product_name>   
+<shu>〈榖之屬〉</shu><product_name>菉豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>紫羅豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>香珠豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>僧衣豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豇豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>豌豆</product_name>
+<shu>〈榖之屬〉</shu><product_name>稨豆</product_name>芝麻飯   豆俱與他郡無異惟
+<shu>〈榖之屬〉</shu><product_name>白果豆</product_name>則産於<product_place>武進</product_place>者
+<shu>〈榖之屬〉</shu><product_name>佳蠶豆</product_name>   則産於<product_place>無錫</product_place>者佳 
+〈蔬之屬〉
+如
+<product_name>芹菜</product_name>蔓菁韭薺塌科
+<product_name>烏菘菜</product_name>薹馬蘭茼蒿菠   菜芫荽葱小蒜扁瓠茭白芥莧萵苣馬齒
+<product_name>莧黄瓜</product_name>茄   
+<product_name>子絲瓜</product_name>
+<product_name>南瓜</product_name>
+<product_name>牛角瓜</product_name>
+<product_name>香瓜</product_name>
+<product_name>冬瓜</product_name>
+<product_name>番瓜</product_name>
+<product_name>火菜</product_name>
+<product_name>白菜</product_name>葫蘆   
+<product_name>刀豆</product_name>莢茨菇荸薺香芋俱與他郡無異惟燕笋産於 
+【739】  江陰者隹毛笋產於宜興者隹萊菔 
+<product_name>即蘿</product_name> 
+<product_name>蔔</product_name> 産於武進   之觀基者隹芋頭產於武進之馬山者隹蕈産於無   錫之惠山
+<product_name>者隹竹</product_name>茹産於宜興之南山者
+<product_name>隹西瓜</product_name>産   於武進之奔牛無錫之五牧江陰之青暘者隹大蒜   産於武進之横林者隹 
+〈果之屬〉
+如棗栗梅杏李枇杷梨杮梧桐石榴花紅嘉慶   子核桃葡萄銀杏蓮蓬芡實俱與他郡無異惟桃則   産於武進之孟河靖江之諸沙者隹櫻桃產於江陰   之青暘者隹楊梅産於武進之馬山者隹菱産於武   進之蘆墅者隹 
+【740】藥之屬如百合
+<product_name>山藥麥</product_name>門冬桔梗枸杞菖蒲金銀花金櫻子山查决明蒲公英皂角沙參稀薟蒼耳子大薊   小薊牽牛薄荷蛇牀子茴
+<product_name>香瞿麥</product_name>藿香夏
+<product_name>枯草瓜</product_name>簍   仁益母草山茨菰土茯苓五加皮水蓼浮萍羊蹄根   天花粉甘菊艾俱與他郡無異惟紫蘇產於武進之   毘陵驛者隹何首烏産於宜興之銅官者佳而武進   之馬山又有一種亦名何首烏或曰何首胡身如蘿   蔔而略細味甚甘美山人種之售於他邑多所獲利 
+〈木之屬〉
+如松栢檜榆槐椐石楠冬青棕櫚黄楊檉梓桐   杉椿桑柘樗樟楓楊柳楮樸槿楝烏柏烏穠糓檀櫟 
+【741】  俱與他郡無異惟茶則産於<product_place>宜興</product_place>者佳其品類不一   而總名之日岕茶大約以高山者為上平原者為下   每當初夏商賈駢集官給茶引方敢出境 
+〈竹之屬〉
+如慈
+<product_name>孝紫竹</product_name>
+<product_name>淡竹</product_name>
+<product_name>金竹</product_name>
+<product_name>剛竹</product_name>
+<product_name>天竹</product_name>
+<product_name>苦竹</product_name>
+<product_name>木竹</product_name>鳯   
+<product_name>尾竹</product_name>
+<product_name>烏筋竹</product_name>
+<product_name>水竹</product_name>
+<product_name>護基竹</product_name>俱與他郡無異
+<product_name>惟燕竹</product_name>班   竹産於<product_place>江陰</product_place>者
+<product_name>佳毛竹</product_name>産於<product_place>宜興</product_place>者佳
+<product_name>其班竹</product_name>
+<product_name>毛竹</product_name>   俱可為器物 
+〈花之屬〉
+其已見果屬者不更載如芍藥山鵑萱夜合金   雀薔薇木香月季鐵線蓮罌粟虞美人佛見笑荼䕷   
+<product_name>諸葛菜</product_name>金絲桃蝴蝶蜀葵錦葵剪春羅剪秋紗翠梅 
+【742】  烏羢凌霄沃丹沃黄沃素玉簮長春玫瑰滴滴金千   日紫秋葵鳯仙雞冠荷包牡丹埭棠海棠俱與他郡   無異惟牡丹則産於江陰之虎涇口者隹多以芍藥   相接故花色甚不一石巖亦産於江陰之虎涇口沙   山者佳菊花亦産於<product_place>江陰</product_place>者佳蘭蕙産於宜興諸山   者佳杜鵑亦産於<product_place>宜興</product_place>者佳而惟南嶽一株為最古   棉花雖各邑俱産而江靖尤多遠近交相貿易 
+〈草之屬〉
+如千年蒀龍虎草游龍虎耳鳯尾吉祥翠雲繡   墩書帶芭蕉
+<product_name>酸漿魚</product_name>腥紅蓼辣
+<product_name>蓼淡竹</product_name>葉青苔薜荔   莎蓬蒿灰蓼俱與他郡無異惟黄麻席草則産於無 
+【743】  錫者佳黄麻漬水取皮織以為布蓆草織以為蓆藍   則産於<product_place>江靖</product_place>者多而且佳以之為靛利用甚溥 
+〈禽之屬〉
+如雞鵝鴨
+<product_name>鴿雉竹</product_name>雞鵲烏鴉鶯燕戴勝雀鳩鵓   鴣鸜鵒鵜鶘練雀百舌畫眉脊令啄木鷹鷺鷥鷗鴛   鴦黄頭偷倉鸕鷀俱與他郡無異惟鶩 
+<product_name>俗名</product_name> 
+<product_name>野鴨</product_name> 
+<product_name>鳬</product_name> 
+<product_name>俗名</product_name> 
+<product_name>水葫</product_name>  
+<product_name>蘆</product_name>  産於武進之太湖滆湖者佳黄雀産於武進之横   林無錫之五牧者佳以上數禽取其肥而可食 
+〈獸之屬〉
+如牛羊虎豹豕兔
+<product_name>犬貓竹</product_name>䶉獺獾俱與他郡無   異惟鹿獐鹿柿狐山牛野猪産於宜興諸山者佳而   
+<product_name>可食</product_name> 
+【744】鱗之屬如
+<product_name>鯉青魚</product_name>鰱鯽鯶鯿鱸鮆鮎土鮒蝦虎黄䫙白   
+<product_name>絲黑魚</product_name>鰻鱔俱與他郡無異
+<product_name>惟子魚</product_name>河魨刀鱭鱠殘   塌沙蛼 
+<product_name>俗名</product_name> 
+<product_name>昌蛾</product_name> 鑊㔶鱘鮰蝗諸種産於武邑之孟河   虞塘及江靖兩邑者
+<product_name>佳白魚</product_name>至時雨後産於無錫溪   河及太湖者
+<product_name>佳銀魚</product_name>
+<product_name>澤魚</product_name>産於太湖及無錫之鵝肫   
+<product_name>蕩者佳</product_name> 
+〈介之屬〉
+如鼋龜蝦蟛蜞鼈蚌蜆螺田螺俱與他郡無異   惟蟹則産於武進之芙蓉湖
+<product_name>名玉瓜</product_name>者佳江陰之江   
+<product_name>蟹尤巨</product_name> 
+〈蟲之屬〉
+如蠶蜂蛙蝦蟇蝌蚪蜥蜴蜘蛛䗪 
+<product_name>俗名</product_name> 
+<product_name>地鱉</product_name> 
+<product_name>螟蛉</product_name> 
+【745】  菜花蟲螢蟬螻蟈螳螂蠅虎蠅螬蠐蚱蜢飛蛾蝸牛   壁虎黄蜂鐵嘴蜂蛇蜈蚣虱蚤蚊俱與他郡無異惟   石曠一名石麟産於宜興山中食者以為佳 
+〈布帛之屬〉
+如綾絹布苧之類與他郡無異惟布則武邑   之名東門闊者闊而甚細異於他織無錫之名蕩口   縑者細擘黄草合絲縷績之織成縑布靖江之麻布   麤細各種細者縝密可愛即麤者亦疏爽經久不敝 
+〈工作之屬〉
+如銀錫銅鐵木瓦石漆染諸作俱與他郡無   異惟酒作則無錫最擅名所云惠山三白 謂米白麴 白泉水白   臘月釀成以味清冽者為上奔走天下每歲數十萬 
+【746】  斛不止窑作則宜興之缸甕罌缽壺諸器稱蜀山   窑者佳又有灰户伐石而焚炭户斵薪而火一郡資   之無錫則磚瓦窑磚瓦盛行於數百里內外又若石   作則宜興之石板可以蓋地無錫之陽山石可以為   磨為臼江陰之石堰石可以砌牆築岸皆工人终歲   勤劬以為業也 
+〈器用之屬〉
+如筆箋扇箸梳枕
+<product_name>以及竹</product_name>木器皿之類俱與   他郡無異惟燈則武邑有料絲燈初鈕姓獨擅其長   今則工是伎者甚衆厥製方圓不一又或為圍屏或   為對額夜燃膏燭瑩瑩洞徹山水人物花卉翎毛畢 
+【747】  具爭奇競巧歲歲不同惟壺則宜興有茶壺澄泥為   之始於供春而時大彬陳仲美陳用卿徐友泉輩踵   事增華并製為花罇菊合香盤十錦杯等物精美絕   倫四方皆爭購之他如蒲扇蒲蓆則江陰者佳苧帨   則武進之驛前無錫之蕩口與靖江三者各佳蒲鞋   則宜興之陳橋者佳     
+【748】常州府志卷之十一    
+<product_name>封系</product_name>   考古封建所以親親尙賢也三代建國盛於西北而   東南則自泰伯季札始封至漢初猶循遺制從兹以   後有借一邑以為名實未嘗秉國之鈞食土之毛也   欲譜其流必溯其源自商周以迄後世其族之䌓簡   年之多寡莫不彰彰可考若夫齊以四代興梁以五   傳熾二代同姓各紀其始祖而餘略之蓋詳於史矣   作封系志    
+<product_name>商</product_name> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/163407.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,61 @@
+【1737】欽定四庫全書  福建通志卷十一  物産    延平府 穀之屬 稻 粟 麥 豆 脂麻 帛之屬 木棉布 白苧布 各縣俱岀 將樂尤佳 葛布 貨之屬 銅 尤溪沙 二縣岀 鐵 南平尤溪 二縣岀 糖  黄蠟     棉花 苧 麻 葛 㯶毛 茶 各縣俱有岀南 平半岩者尤佳 紙 
+【1738】 各縣俱有岀順  昌縣者尤佳 紙被 油 茶油 桐 油 柏油 滷水石 岀南平 縣宋葉  夢得避暑録云石有三種其一岀  滷水可為硯雖細潤而不甚發墨 花孜石 岀南平縣 色青紋白  有山水禽魚狀可為硯為屏世傳産黯淡灘  湍下故不易得大明一統志謂之花紋石 蔬之屬 蔊 芥 蘿蔔 白菜 芥藍 萵苣 蕹   菜 菠薐 苦蕒 莙薘 茼蒿 胡荽 莧 葵   菜 葉圓似葵花 俗呼奇菜 烏藤 葉稍似當 歸根色黑 蕨 茄 瓠 芋    冬瓜 折笋 或云接笋大如母指長四五寸生於南 平縣新興里高山上山下有澗泉土人  取笋浸泉中一夕其色白味  佳郡人用以餉賔為笋之最 香蕈 薯 薑 葱  
+【1739】  韭 薤 葫 大蒜 也 水芹 果之屬 香櫞 柚 橘 又有金橘南平 沙二縣尤多 桃 又有矮桃 俗呼道州  桃   櫻桃 李 梨 石榴 柿 栗 枇杷 楊梅    銀杏 葡萄 西瓜 黄瓜 土瓜 蓮 菱 藥之屬 黄精 地黄 天門冬 麥門冬 紫蘇    薄荷 蒼耳 茴香 天南星 馬鞭草 黑牽牛    車前子 栝樓 香附子 常山 俗呼 甜葉  何首烏    茯苓 吴茱萸 枸杞 
+【1740】木之屬 松 栢 檜 杉 樟 桐 相思 桑    桕 冬青 槐 椒 皂莢 楊 柳 楓 榕    楝 檉 㯶櫚 桫欏樹 高丈餘幹直葉如天竹 叢生於顛而圓覆傘葢  土俗祭厲時取二株樹  於壇前因呼孤魂樹 竹之屬 猫竹 江南竹 紫竹 緑竹 夏笋可食土 人重之饋送  不過四五  莖而已 黄竹 石竹 苦竹 綿竹 秋竹 人   靣竹 朱竹 色如擲火延建間多 有之今其種盡絶 花之屬 梅 山茶 海棠 酴釄 木槿 長春  
+【1741】  杜鵑 山丹 山梔 茉莉 素馨 千葉榴 木   芙蓉 瑞香 含笑 菊 蘭 萱 蜀葵 玉    滴滴金 鳯仙 草之屬 蒲 蘋 蓼 萍 葭 茅 長生草 採之 懸於  梁不用滋培  彌嵗長青 青蒿 味凉土人以重陽日取而 乾之煎湯服以辟暑氣 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄   鴨 鵝 鵓鴿 毛之屬 虎 豹 熊 鹿 麞 麂   猿 
+【1742】   猴 狸 狐 獺 山羊 野猪 豪猪 鼠狼    竹䶉 羽之屬 喜鵲 烏 鳩 鴝鵒 山鵲 鶯 燕    布穀 啄木 畫眉 白頭公 伯勞 雀 蠟嘴  其喙  黄色 太平鳥 提壺 其鳴若云 提蘆葫 白練雀 似雀而差大 一白一黄有  黑斑  尾長 雉 白鷴 鷓鴣 鷹 鷂 鸛 鷺鷥 鸕   鷀 鸂鶒 鳬 鱗之屬 鯉 鱸 鱖 鯿 鯽 白魚 色白 可鱠  黄顙 
+【1743】   黄尾魚 似鯉而尾微黄 食之微有土氣 鰻 鱓 鰍 蝦 鯪    鯉 介之屬 黿 鼈 蟹 螺 蟲之屬 蛇 鼃 黽 又有 石鱗 蜈蚣 蝙蝠 螽斯    建寜麻 穀之屬 稻 麥 豆 脂麻 帛之屬 絲 浦城 多 紅緑錦 出建陽今 有濯錦橋 土綾 土紗 土   絹 俱出甌寧 浦城二縣 刻絲 凡數種其厚者可及 湖湘間隔織出建安 腰機布 即縩 布出 
+【1744】 甌寧建陽崇安三縣  而浦城亦有苧布 木棉布 七縣俱出而出崇 安者可及三校 貨之屬 書籍 出建陽縣麻沙崇化二坊麻沙書坊元 季燬今書籍之行四方者皆崇化書坊  所刻  者也 銅 宋時出建安縣東 萇里吉銅坑久廢 鉛 宋時出建安縣 大鋌塲久廢 鐵 建安 甌寜  松溪政和  四縣出 光粉 化鉛為 之久廢 糖 出建陽崇 安二縣 蜜 七縣皆出浦 城建陽崇安  三縣  尤多 黄蠟 白蠟 取蠟蟲種於冬青樹至秋結蠟纏 繞枝上如雪乃採而為之出浦城  崇安  二縣 藍澱 七縣 俱出 紅花 棉花 出浦城松溪 二縣亦不多 苧 出建安 甌寜浦  城松溪崇安  政和六縣 紙 出建陽浦城崇安三縣 又有稻稿紙出松溪 紙被 以楮樹 皮為之  陸放翁詩紙被圍身度雪天白於狐腋  煖於綿出甌寧建陽松溪崇安四縣 墨 出甌寜 建陽 茶 
+【1745】 七縣皆出而龍鳯武夷二山所  出者尤號絶品宋蔡襄有茶錄 漆 汁黏墨可餙器者 出浦城建陽崇安  三縣然  亦甚少 油 梣油用梣子壓之者即茶油也出浦城建 陽崇安三縣 桐油出建陽崇安二縣  桕油出浦城松  溪崇安三縣 㯶櫚 出建 陽縣 㯶帽 結㯶為之 出甌寧 草席 出松 溪   兔毫琖 出甌寜之水吉蔡君謨茶錄云建安所造黑 琖紋如兔毫其毫色異者土人謂之毫變琖  價甚高且艱得之今  其窰久廢不復有矣 <img n="140">瓦 以泥為器用而燒 熟者出建安甌寧 甆器 出 松  溪建陽又  有碗窰 蔬之屬 芥 蘿蔔 白菜 油菜 芥藍 萵苣    菠薐 苦蕒 莙薘 茼蒿 園荽 胡蘿蔔 莧 
+【1746】   蕨 茄 瓠 芋 冬瓜 稍瓜 即越 瓜 笋香 蕈    紅菌 俗呼朱菰即 胭脂菰也 薯 山藥 紫薑 葱 韭    薤 蒜 蔊菜 生泉石間味極辣朱晦菴和劉屏山 食 <img n="141">詩云小草有辣性托根寒澗幽  懦夫曾一撮  感憤不能休 水芹 蓴菜 果之屬 柑 橙子 香櫞 柚 橘 金橘 桃    李 其品不一有紫李 黄李又有黄白李 杏 林檎 柰 棗 梨 石   榴 杮 櫻桃 春花夏實大如珠顆 紅色禮記謂之含桃 栗 榛子 似栗 而小   楊梅 枇杷 木瓜 銀杏 胡桃 榧子 毛栗 
+【1747】 似北榛産於崇安縣五夫里相傳以  為翁中丞所遺之種浦城間亦有之 香楂 梧桐子  九月  熟 株子 其類不一 銀株大如栗米株 巖株以上味俱甜 苦株味甜苦 山棗 味 酸  甜與上株子  俱出建陽縣 葡萄 蔗 西瓜 黄瓜 白瓜 枕   瓜 秋生其形如枕可久留出崇安五夫 里其種相傳劉丞相自外邦傳來者 香瓜 色黄實 小如西  瓜而  長 土瓜 鮮葛 蓮 菱角 藕 藥之屬 薏苡 黄精 地黄 天門冬 麥門冬    紫蘇 薄荷 蒼耳 天南星 車前子 栝樓    香附子 商陸 香薷 牛膝 益母草 乾葛  
+【1748】  紫背草 荆芥 桔梗 根畧似人 參黄白色 萹蓄 春中布地生 莖節赤葉細  緑如竹花亦甚細青  黄色好生道旁可食 馬兠鈴 藤繞樹生葉如山芋花 黄紫色子狀如鈴作四  五瓣根名雲南根  亦名士青木香 穀精草 春生榖田中葉細花白而 小圓似星又名戴星草二  三月採  花用 柴胡 澤瀉 叢生淺水中葉似牛 舌獨莖而長花白色 黄連 葉如 小雉  尾草經  冬不凋 絡石 葉圓如細橘正青冬夏不凋花白子黑 其莖蔓延莖節著處即生根鬚包絡石  上故  名 蛇床子 葉青碎作叢似蒿枝每枝有花頭百餘 結同一窠似馬芹類開白花子如黍米  至輕  虛 玄參 葉似脂麻又如槐柳細莖青 紫色開花青碧色子黑色 前胡 似茈胡 而柔軟   大小薊 葉並多刺相似但大薊高三四尺葉皺小薊 高一尺許葉不皺為異小薊初生時山野人 
+【1749】 多取  為蔬 薑黄 葉青緑長一二尺許濶三四寸有斜丈如 紅蕉葉而小花紅白色根盤屈類生薑而  圓   白术 葉大而有毛 甜而少膏 芎藭 蕪也生 山谷間 吳茱萸 茯苓    黄蘗 枳殻 一曰枳實葉似 橘而小多刺 金櫻子 厚朴 本高 三四  丈徑一二尺葉如檞葉紅花  而青實皮極鱗皺而厚紫色 烏藥 本似茶高丈餘一 葉三椏葉青隂白  根黑  褐色 磁石 俗呼攝針石按政和縣 志出東衢里黄谷山 雲母石 按政和縣 志出感化  下里慶  元縣界 石南藤 左纒藤 花名金 銀花 木之屬 松 栢 杉 樟 楠 桫欏 桐 有二種 油桐 梧  桐即有寶者工  人取以充果 梓 枳枸 詩謂之枸樹高大似白楊 有子著枝端大如指長數 
+【1750】 寸味甘能解酒毒人家有此樹則醖酒不成  亦名木蜜建陽謂之皆拱子崇安謂之兼勾 相思    桑 柘 烏桕 冬青 槐 楊 柳 榆 楓    櫧 楝 朴 白楊 柞 黄楊 白斷藤 釣   鉤藤 紫荆藤 竹之屬 猫竹 江南竹 斑竹 紫竹 黄竹 小而 黄色   苦竹 土人以 作紙者 石竹 筋竹 箭竹 方竹 秋竹    釣絲竹 綿竹 謂其軟如 綿故名 水竹 火竹 用以 取火 白眉竹  土人以作  筆管者 長壽竹 出崇安 縣黄亭 鶴膝竹 莖瘦節大可以 為杖笋味甚美 瀟 
+【1751】  湘竹 人面竹 毛竹 出武夷毛竹洞每竹生數節 每節旁出一幹幹之巨細與  根等土人  多以為杖 觀音竹 朱竹 紅如擲火延建間有之大 可為杖小者以餙盤今  其種  絶矣 花之屬 梅 山茶 崇安有一種白色而千葉者其 香可人蓋茶花中之絶品也 海   棠 茶䕷 薔薇 金沙 佛桑 木槿 長春    麗春 花似長春而 差大三月開 杜鵑 玉樓春 即百葉梔 子花也  紫薇    茉莉 素馨 芙蓉 桂花 紫荆 含笑 鳯   尾 棣棠 凌霄 矮桃 有重瓣者 花而不實 剪春羅 秋開者 名剪秋 
+【1752】 羅   潑雪 冬開 白花 牡丹 芍藥 菊 蘭 萱 蜀葵    玉簪 百合 鷄冠 金鳯 繡毬 草之屬 蒲 茭 蓼 萍 藻 浮萍 茅 蘆    菅 龍牙 虎耳 觀音 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄   鴨 鵝 鵓鴿 毛之屬 虎 豹 熊 鹿 麞 麂 兔 豺 猴    猿 貍 有二種 玉面 貍 九節貍 狐 獺 山犬 野猪  
+【1753】  豪猪 竹䶉 俗號 土豚 山 狀如鼠其尾方俗呼毫 鼠腊而食之甚香美 羽之囑 鵲 烏 鳩 鴝鵒 山鵲 鶯 燕 百    舌 啄木 畫眉 白頭公 鶺鴒 雀 雉    白鷴 錦鷄 竹鷄 鷓鴣 子規 鷹 鷂 鶻    鸛 鷺鷥 鸕鷀 鸂鶒 鴛鴦 鳬 鷗 翡   翠 鴞 俗呼 古鼎 鱗之屬 鯉魚 鰱魚 草魚 鯿魚 鱖魚  <img n="142">魚  身長  鱗白 圓眼魚 口尖眼 圓而赤 鯖鯷 背青身長 即青魚也 鱅魚 鰻魚  
+【1754】  鱓魚 鮎魚 䱀 <img n="143"> 泥鰍 抱石魚 岀於山溪背 偃而腹平其  大如指常貼於石  上土人取之為腊 鯪鯉 介之屬 龜 鼈 蟹 蚌 螺螄 蟲之屬 蛇 蜥蜴 鼃 黽 其類不一 田鷄即水 鷄也 石鱗 石蛤狀  類田鷄皮黄色俗  呼為黄蛤味極美 蟾蜍 蜈蚣 蝙蝠    邵武府 穀之屬 稻 粟 黍 麥 豆 脂麻 帛之屬 苧布 四縣俱有而 泰寜為多 葛布 岀建寧縣永 城開山二保 
+【1755】貨之屬 銅 岀邵武 縣今無 鐵 岀邵武光澤 二縣臚今廢 鐵絲 亦名 鐵條 苧 漆  俱岀泰  寧縣 竹 楮衾 即被俱 岀邵武縣 茶 光澤泰寧 二縣為多 茶油 邵 武  光澤建寧  三縣尤多 蕨粉 歳饑人多 賴以濟 㯶毛 光澤邵武 二縣為多 銀硃 舊志 云故  老相傳潭山出朱紅得三樵水  濯之其色尤鮮今無煉者 白 兹 石 器 出邵武青雲 窑泰寧際口  窑建寜蘭溪窑而以  泰寧際口者為勝 琉璃 邵武舊有一二家能造之 法用黄石燄焇之類煉成  今  無 石灰 煉石 為之 薑黄 岀邵武 縣一都 蔬之屬 芥 蘿蔔 白菜 油菜 芥藍 萵苣    蕹菜 菠薐 苦蕒 莙薘 胡荽 莧 蔊 蕨 
+【1756】 其根即可  為粉者 茄 匏 葫蘆 芋 冬瓜 絲瓜 笋    蕈 菌 一名地蕈熟可食生則毒人中 其毒者用生脂麻檑酒服之即愈 薯 薑   葱 韭 薤 蒜 荇菜 詩集傅云接余也根生水 底莖如釵股上青下白葉  紫赤圓徑寸餘浮  在水而可為 果之屬 橙 柚 金橘 桃 紅桃 白桃 水蜜 桃味最佳亦少有也 李  麥李與麥同 胭脂李 赤皮  李 黄蠟李 青葱李色青色 杏 林檎 櫻桃    梨 枕梨大而長 麋梨 消梨 鐵裹梨其色黑而肉實味極佳 石榴 柿 棗    栗 榛 枇杷 楊梅 木瓜 甘蔗 西瓜  
+【1757】  黄瓜 土瓜 蓮 菱角 茨菰 鳬茨 藥之屬 薏苡仁 菖蒲 天門冬 麥門冬 烏藥   紫蘇 蒼耳 萞麻子 五味子 春初引赤蔓於高 木葉尖圓似杏葉  三四月開黄白花類小蓮花七月  成實如豌豆大生青熟紅紫色 車前子 栝樓    山藥 香附子 牛膝 芎藭苗 蒟蒻 苗葉酷似 天南星但  莖斑花紫為異耳蜀  人取以作醬味酢美 香薷 枸杞 茱萸 金櫻子    使君子 五倍子 木之屬 松 栢 檜 杉 樟 楠 桐 有二種  油桐 梧 
+【1758】 桐其實視建  寧諸邵為多 梓 桑 柘 烏桕 冬青 皁莢 柳    楓 櫧 櫟 蘗 黄楊 㯶櫚 竹之屬 猫竹 冬笋不岀土味最 佳春笋乃能成幹 江南竹 笋可 生食 筀竹    篠竹 苦竹 甜竹 黄蠟竹 最堅實笋 味亦最佳 方竹 花之屬 梅 山茶 蠟蒂 花深紅頗似紅梅 先花後葉隆冬開 薔薇    木槿 杜鵑 山丹 欲留春 即玉 樓春 茉莉 素馨    木芙蓉 木犀 即桂 花也 瑞香 郁李 凌霄 牡丹    芍藥 菊 蘭 萱 蜀葵 扁竹 鷄冠 滴滴 
+【1759】  金 金鳯 碧雪 叢可一二尺 花細而色白 草之屬 莣 吉祥 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄    鴨 鵝 鵓鴿 毛之屬 虎 飛虎 似猫而 翼亦少 豹 熊 豺 鹿 麈    兔 猿 猴 貍 俗呼果 子貍 狐 獺 山犬 俗呼山 黄狗 野   猪 豪猪 山牛 毛如小牛角 短如黄牛 刺蝟 竹䶉 俗名 土豚 羽之屬 喜鵲 烏 斑鳩 青鳩 鴝鵒 山鵲  
+【1760】  燕 鶯 百舌 啄木 畫眉 白頭公 鶺鴿    雀 鵙 雉 白鷴 錦鷄 竹鷄 鷓鴣 杜鵑    鶉 練鵲 鷹 鳶 鷂 鶻 鸛 鷺鷥    鸕鷀 鸂鶒 鴛鴦 鳬鷸 鱗之屬 鯉 鰱 草魚 仲春取子於江曰魚苗畜於 小池稍長入 <img n="144">塘曰 23可  尺許徙之廣池飼  以草九月乃取 鯽 鱖 青魚 背正 青色 鱒 爾雅曰鮅 鱒似鯉而  鱗細眼赤  魚之美者 鱧 俗呼烏 鯉魚 烏鰡 似草魚頭與口差小而黑 色食螺又有色黄者曰黄  鰡   鰻 鱔 鮎 鱅 鯊 魚大如指狹員而長身有 黑點常張口吹沙故又名 
+【1761】 吹  沙 泥鰍 蝦 長鬚生水田池沼 中以上各縣俱有 介之屬 龜 鼈 螺 蚌 蟲之屬 蛇 鼃 黽 又有田 鷄石蜦 蟾蜍 蝙蝠 蜈蚣    蚰蜒 爾雅曰螾疏曰象蜈蚣黄色 而細長喜入人耳俗曰飛楊蟲    汀州府 穀之屬 稻 粟 麥 豆 脂麻 帛之屬 紬 絹 綾 苧布 麻布 蕉布 葛布 貨之屬 銅 錫 俱長汀 縣岀 鐵 長汀上杭寜 化三縣岀 糖 蜜 蠟 
+【1762】   藍澱 茶 油 麻油 茶油 桐油 以上八縣俱出 蕈  降   真香 以上俱連 城縣出 漆 清流歸化 二縣出 蔬之屬 芥 蘿蔔 菠薐 苦蕒 蒼薘 莧 蕨    茄 瓠 芋 冬瓜 絲瓜 笋 薯 山藥    薑 葱 薤 蒜 水芹 果之屬 柑 金橘 桃 鶯觜桃 小 桃色皆半紅 李 青李 紅李  紫李 珍  珠  李 花紅 柰 梨 石榴 柿 栗 枇杷 楊梅    櫨 本草謂之榠櫨木葉花實酷類木瓜欲辨之看 蒂間别有重蒂如乳者為木瓜無此者為榠櫨 
+【1763】 也    葡萄 蔗 西瓜 土瓜 蓮 菱 藥之屬 黄精 石菖蒲 地黄 麥門冬 薑黄    苦參 艾 紫蘇 薄荷 天南星 牽牛子 車   前子 香附子 香薷 荆芥 何首烏 牛膝    半夏 猴薑 黄蘗 黄連 蒔蘿 茯苓 五倍   子 其木青黄色七月結寶無花初青至 而黄内多蟲一名百蟲倉又名黄蛤 茱萸 木之屬 松 栢 杉 樟 楠 桐 桑 烏桕    冬青 槐 檀 楊 柳 楓 槦 楮 櫧 㯶 
+【1764】竹之屬 猫竹 江南竹 紫竹 黄竹 苦竹 實   竹 可剖為 器用 筋竹 赤竹 節長可 為箭 筀竹 菉竹 花之屬 梅 山茶 海常 酴釄 薔 木槿    長春 山丹 梔子 玉樓春 茉莉 玉芙蓉    巖桂 紫荆 芍藥 菊 蘭 萱 蜀葵 玉簪    鷄冠 鳯仙 寶相 草之屬 蒲 蓼 蘋 藻 浮萍 茅 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄 
+【1765】   鴨 鵝 鵓鴿 毛之屬 虎 豹 鹿 麂  猴 猿 狸 獺    山羊 山馬 野猪 豪猪 竹䶉 羽之屬 喜鵲 烏 鳩 鶯 燕 百舌 啄木    畫眉 雀 雉 錦鷄 鷓鴣 杜鵑 伯勞 鷹    鷂 鸛 鷺鷥 鸂鶒 鴛鴦 翡翠 鱗之屬 鯉 鰱 草魚 鰻 鱓  黄顙 疑即 鮎也 介之屬 龜 鼈 蚌 田螺 
+【1766】蟲之屬 蛇 鼃 黽 又有石蜦 即石鱗也 蜈螉 蝙蝠    福寧府 穀之屬 稻 麥 豆 帛之屬 紬 絹 紗 綾 苧布 蕉布 葛布 貨之屬 鐵 寧德 縣出 鹽 糖 蜜 蠟 藍澱 紅花    紫草 苧 麻 茶 油 麻油 茶油 桐油 桕油 蔬之屬 芥 蘿蔔 白菜 油菜 蕹菜 菠薐    苦蕒 茼蒿 胡荽 茵蔯 莧 蕨 春不老  
+【1767】  薺 茄  芋 冬瓜 絲瓜 笋 蕈 山藥    薑 葱 韭 蒜石辣 生山 中 牛唇菜 芹 鹿角   菜 藍菜 生海巖上 味甜可食 石菜 紫菜 以上四菜 俱出海鄉 果之屬 荔枝 龍眼 柑 橙 香櫞 橘 又有 金橘 桃    李 杏 林檎 梨 石榴 柿 棗 栗 楊   桃 枇杷 橄欖 楊梅 菩提果 木瓜 蔗    蓮 菱角 藥之屬 薏苡 地黄 天門冬 麥門冬 艾 茴 
+【1768】  香 馬鞭草 牽牛子 車前子 香附子 香薷    半夏 蛇床子 兔絲子 白芷 木鱉子 玄   參 乾葛 吳茱萸 五倍子 紫金藤 使君子 木之屬 松 栢 檜 杉 樟 樺 桐 漆 相   思 桑 柘 冬青 槐 柳 楓 榕 朴 黄   櫸 㯶櫚 牡桂 有 油  吉兆藤 拏藤 附本而生甚長性 亦柔韌土人多取  以為縛  束之用 黄藤 可束屋拄 又名水藤 臚藤 鼈藤 俱可 毒魚 鷄翁藤    金剛藤 黄爽藤 
+【1769】竹之屬 猫竹 江南竹 慈竹 方竹 斑竹 苦   竹 石竹 緑竹 箭竹 調絲竹 節疎性柔 可作器用 紫竹    赤竹 筋竹 桃竹 含竹 豁竹 觀音竹    人面竹 羅漢竹 䇹竹 槌竹 花之屬 梅 山茶 有紅白 百葉者 海常 酴醿 薔薇 木   香 長春 杜鵑 山丹 山梔 茉莉 素馨    木芙蓉 巖桂 瑞香 紫荆 鳯尾 牡丹 芍   藥 菊 蘭 萱 蜀葵 水仙 鶴頂紅 鷄冠 
+【1770】   金鳯 金錢 剪春羅 罌粟 草之屬 蒲 茭 浮萍 蕢 蘆蘇 可為 席 茅 通草    龍鬚 虎耳 鳯尾 前刀草 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄    鴨 鵝 鵓鴿 毛之屬 虎 豹 熊 鹿 麞 麂 豺  猴    狸 狐 獺 山牛 山狗 野猪 豪猪 野   猫 猩猩 寧德縣史提寺 林中常有之 竹䶉 以上各 縣俱有 玉面狸 壽寧 多有 
+【1771】羽之屬 喜鵲 烏 鳩 鴝鵒 鶯 燕 山呼    拖白練 練雀 也 畫眉 雀 雉 白鷴 鷓鴣 鷯鶉    鴈 鵜鶘 鴛鴦 翠鳥 鱗之屬 鯉 鱸 鱖 草魚   鰻 鱔 以上生 池澤中 鯊 青鯊 黄 鯊 鮫鯊 鰣 石首 鯧 鯧鯿    子魚 黄魚 銀魚  <img n="145">  2 馬鮫 白刀    魟  3 魴 黄雀 疆塗 俗名 跳魚 白頰 似跳魚 而色白 章魚    石拒 鎻管 烏賊 水母 蝦 對蝦 白蝦  黄蝦 苗蝦以 
+【1772】 上各縣  俱有 寸金魚 色黄長寸許岀 寕德縣七都 介之屬 龜 鼈 蟹 以上生 池澤中 鱟 蟳 䘂 蠣 車   螫 蚶 蟶 蛤 西施舌 蚌 海月 江珧柱 蟲之屬 蛇 鼃 黽 又有田 鷄石鱗 蟾蜍 蜈蚣 蝙蝠    臺灣府 穀之屬 稻 黍 黄栗 稷之 别名 麥 豆 脂麻 帛之屬 毛被 土民以獸 毛為之 棉布 苧布 麻布 貨之屬 鹽 糖 氷糖 藍澱 苧 麻 油 藤 
+【1773】 有大藤  有科藤 菁 産於臺 者最佳 薯榔 蔬之屬 芥 白菜 芥藍 蕹菜 菠稜 莙薘    茼蒿 胡荽 莧 茄 瓠 芋 大於内 地數倍 冬瓜 莦   瓜 菜瓜 苦瓜 金瓜 笋 薯 有紫白 二種 番薯    薯蕷 香芋 六月菜 頭白子 可入藥 菜 蔓生一名 浮藤菜 薑    葱 韭 薤 蒜 水芹 紫菜 赤菜 海粉    長豆 加説豆 刀豆 乳豆 果之屬 檨 紅毛從日本國移來之種實如猪腰狀五 六月盛有香檨木檨肉檨三種即外國 
+【1774】 所載南方有果其味甘  其色黄其根在核是也 波羅蜜 亦荷蘭國移來者實 生於樹幹上皮似如  來頂剖而  食甘如蜜 鳯梨 葉似蒲而濶两旁有刺果生於叢心 中皮似波羅蜜色黄味酸甘果木有  葉一簇可粧  成鳯故名之 桺子 樹高數丈直起無枝殻堅勁可作 瓢殻外有衣肉在殻内色白味似  乳可以釀酒中有  水甚多俗呼榔酒 㯽榔 向陽曰㯽榔向隂曰大腹實 可入藥實如鷄心和荖藤食  之能醉人可以袪瘴  人有故則奉以為禮 荖藤 蔓生味辛和 㯽榔食之 柚 桃 梅   子 石榴 番石榴 即梨 仔苃 柑仔蜜 形如柿細如橘 可和糖煮茶品 番   杮 形似柿皮有毛俗 呼為毛柿西域種 葡萄 芭蕉 桄榔子 結實五 月土  民即種埔尖是歳子若  多生是歳穀亦有年 蔗 香櫞 木瓜 西瓜 秋 種 
+【1775】 冬與内  郡不同 藥之屬 薏苡 天門冬 薄荷 艾 萞麻子 車   前子 香附子 石決明 益母草 茯苓 桕菰    藍茶菰 三柰 藕節 地骨灰 穿山龍 木   通 扁豆 金銀花 燭 生水中形 如燭故名 蛇草 木賊    蒲公英 澤蘭 班節相思 白鷄冠 蒼耳子 即 羊  帶  來 急性子 草果 蟬退 白蒺藜 通草 鹿茸  鹿角之初  發而茸者 鹿角膠 鹿角霜 即煑膠之 角渣也 穿山甲 即鮫 鯉甲 
+【1776】木之屬 樟 楠 厚栗 百日青 雖枯而色 如生故名 柳 樸    赤鱗 烏栽 象齒 木硬 而直 埔柿 山荔 無 花 埔荆 即 埔  薑   苦楝 桕 黄目子 茄藤 林茶 土杉 水   漆 九芎 竹之屬 箣竹 長枝竹 鳯尾竹 花之屬 梅 海棠 薔藢 佛桑 長春 麗春    山丹 三友花 俗呼番 茉莉 芙蓉 紫荆 千日紅 一   丈紅 菊 樹蘭 有四葉六 葉二種 番蘭 花如 蕙 夜合鷄冠  
+【1777】  指甲 金錢 桃 蓮 百葉榴 水錦 唐棣    玉樓春 末麗 金絲蝴蝶 玉芙蓉 鼓子 一名 龍船  花   蓮蕉 鹿葱 月下香 金銀花 素馨 免絲  一名  凌霄 老來嬌 曇花 草之屬 仙草 鼠麯 白麯草 瓶桃草 乳草    仙人掌 蘋 藻 龍舌 旱蓮 遍地錦 虎   耳 鳯尾 畜之屬 牛 犬 羊 猪 猫 鷄 鴨 鵝 鵓 
+【1778】  鴿 毛之屬 金錢豹 似豹 而小 猪母熊 麋 鹿 麂 麕 即 麞   <img n="146"> 似鹿 而犬 兔 猴 山猪 獺 羽之屬 烏 鳩 鶯 燕 鴝鵒 布穀 畫眉    白頭公 鶺鴒 雀 雉 竹鷄 盧鷄 海鷄母    鷹 鳬 鷗 釣魚翁 白鷺 伯勞 鵒烏鬚 鱗之屬 鯉 海翁 極大能 吞舟 鯽 泥 2魚 烏魚 鯊   魚 鰢鮫 鯧魚 魚 麻虱目 觔魚 烏耳 
+【1779】  鰻 紅紗魚 䱕魚 烏頰 海鰻 貼沙魚 金   鐘仔 銀魚 龍鮎 鸚哥魚 油魚 鱖魚    魚 鱠魚 獅刀 鰛魚 花鈴 金錢魚 斗尾   魚 狗母魚 鐵甲魚 䱋魚  <img n="147">魚  2魚 青   鱗 飼子飯 無細骨可和 飯以飼幼子 繩魚 鮡魚 鱺魚 鱔   魚 梭魚 水尖 遍身苦 白腹 紅蝦 黄梔   米 大脚蝦 章魚 石拒 烏賊 鎻管 鯪鯉 介之屬 龜 鼈 蟹 蚌 鱟 蟳 牡礪 蚶  
+【1780】  蛤 空豸 紅粟 土杯 蟯 仙人掌 硨磲    螺 大螺 紅螺 香螺 麥螺 珠螺 虎螺  海膽 蟲之屬 蛇 蜥蜴 蜈蚣 蝙蝠 水蛙 螽斯    永春州 穀之屬 早稻 晚稻 大冬 寄種 青晚 早秫    大麥 小麥 帛之屬 絹 冬布 黄麻布 青麻布 苧布 蕉   布 葛布 出州及 德化 
+【1781】貨之屬 鐵 州及德 化縣岀 黄麻 青麻 茶  茶油    桐油 草蓆 糖 蜜 木棉 漆 鉛 岀大 田縣 白磁   器 出德 化縣 蔬之屬 蘿蔔 芥 莧 甕菜 苦蕒菜 芹菜    茼蒿 園荽 蒼薘 蕨 冬瓜 蒜 葱 薤    薯 芋 瓠 笋 薑 茄 菰 果之屬 桃 李 栗 柿 甘蔗 枇杷 香櫞    金橘 石榴 橄欖 鷄頭子 柑 蕉 西瓜  
+【1782】  甜瓜 通瓜 木瓜 楊桃 龍眼 菱角 芡實  出大  田縣 藥之屬 金櫻子 香附子 半夏 天南星 天門   冬 山梔子 艾 山藥 薏苡 紫蘇 薄荷    決明子 枳殻 枸杞 菖蒲 乾薑 地骨皮    桑寄生 木賊 黄連 出大 田縣 瓜蔞 川芎 益母    車前子 何首烏 馬鞭草 黑牽牛 吳茱萸  木之屬 松 杉 栢 檜 㯶櫚 苦楝 楓 樟 
+【1783】   杜松 椿 檺 槐 桐 肥皂 烏桕 柯    桑 柳 櫸柳 相思 榕 椒 棗 竹之屬 猫竹 石竹 赤竹 筀竹 緑竹 苦竹    筠 斑 紫竹 盧竹 叢生濕處 溪澗最多 觀音竹 雪竹  笋秋  生 花之屬 素馨 茉莉 薔薇 海棠 山茶 麗春    瑞香 桂花 葵花 菊花 梅花 蘭花 榴   花 仙丹 鷄冠 芙蓉花 初開甚白向晚則色轉 爲紅知縣葉振甲有詩 
+【1784】 云官池澄紫藻佳卉映芳叢葉展當年緑花翻舊日  紅包含金鑿落瓣吐玉玲瓏換骨居瑶島奔身向月  宮春暮花  開玉秋 杜鵑 紫荆 丹槿 玉樓春 草之屬 芝 茅 萍 藻 仙草 蒲 紫草 大   楓草 接骨草 鎗刀草 淡酸草 鳯尾草 虎   耳草 燈籠草 燈心草 耳鈎草 斷腸草 萱   草 蓼 畜之屬 馬 牛 騾 羊 犬 豕 猫 鷄 鵝    鴨 
+【1785】毛之屬 虎 豹 麂 麞 熊 豺 狼 兔 猴    蝟 狐 獺 猿 鼠 山羊 野猪 羽之屬 喜鵲 布穀 鴝鵒 畫眉 伯勞 鷓鴣    鸕鷀 杜鵑 烏鴉 斑鳩 鶺鴒 百舌 鴛   鴦 鶯 燕 雉 鱗之屬 鯉 鱔 鯽魚 鰱魚 草魚 鮎魚 鰻   魚  <img n="148">魚 介之屬 鼈 蟹 螺 蚌 穿山甲 蝦 
+【1786】蟲之屬 蜂 蟻 蝶 螢 蠅 蚊 蛇 螳螂    虺 蜣蜋 蟋蟀 蝦蟇 蚯蚓 蜘蛛 蝙蝠    螻蛄    龍巖州 穀之屬 稻 其品三曰黏 曰秔曰秫 麥 大小 二種 豆 烏白黄緑 凡數種  結穗 如稻  散垂而  不毛 稷 種有稉 有稬 粟 其種不一其 粒比梁差小 梁 青白 二種 脂麻 黑白 二種   番稻 番人刀耕火 種味尤香美 帛之屬 苧布 葛布 手巾 
+【1787】貨之屬 菸 俗云芬草崇禎初年 始種之邇來寖盛 漆枕 漆木盆 漆   護手 俗云 靠板  連四號出 吳地者佳 鉛 出三井林并 節惠粗坑 鐵冶 萬安龍 門等處  在在  有之 蔬之屬 薑 葱 薤 韭 蒜 胡荽 一名芫荽 最發痘 芥  青白紅  三種 芥藍 芋 薯 紅白 二種 莧 青紫 二種 馬齒莧 莙薘  莖燒灰淋汁  洗衣色如玉 菁菜 即萵 苣 茼蒿 菠薐 蘿蔔 太小 二種 蕹   菜 浮藤菜 作 最滑 芹菜 茄 白紫 二種 蔊菜 生山澗泉石 間根葉皆佳   香蕈 番人斬楠木於深山雨雪滋 凍則生蕈俗呼曰香菰木耳 石耳 石上生者 俗呼石菰 松 
+【1788】  菌 蕨笋 緑笋最佳雪笋 次之筀笋又次 苦蕒 本草云可 療蛇傷 果之屬 桃 鶯嘴 者佳 李 粉皮丹黄 肉者佳 梅 楊梅 蠟色 者佳 梨 雪梨 佳   杮 乾爲 餅 栗 榧 柑 石榴 橘 香櫞 藏之衣笥 香能緣物  故名  香櫞 西瓜 番瓜 番人種之 冬月最佳 王瓜 先百瓜 生故名 冬瓜 苦   瓜 甜瓜 木瓜 土瓜 其藤似葛附根而生 味甚甘美亦曰土葛 瓠 種 有  青有白有葫蘆大  小不一亦曰瓠 藥之屬 山藥 補中 益氣 天南星 半夏 葉類 羊蹄 天門冬 杜詩 謂天  棘見抱  朴子 麥門冬 菖蒲 出石澗一寸 九節者佳 車前子 治瀉强 陰益精 金 
+【1789】  櫻子 膏 固精 山梔 木鼈子 蛇床子 紫蘇子 牽   牛子 香附子 使君子 療小兒 疳積 萆麻子 老翁鬚  一名金股一名忍  冬花一名金銀花 瓜蔞 高良薑 葉即香茅夏月 飲之降氣根曰  高良  薑 蒼耳 百合 甘菊 秃菜 有番秃野 秃治疥癬 艾 蒴   藋 輕虚無心 名接骨草 益母草 猴薑 附木 石生 茱萸 補賢止大 小便不節 茴   香 乾薑 香蕾 俗曰石 香柔 皂筴 芎藭 三柰 荆   芥 薄荷 藿香 石斛 莃薟 沙參 仙茅    淡竹葉 細辛 清湘子 楓香 鬱金 茯苓 多 年 
+【1790】 樵砍之松氣味朱絶其  精氣盛者結為茯苓 茯神 松之神靈附 結木根而成 天花粉    射干 俗呼為 仙人掌 草豆蔲 木之屬 松 栢 杉 槐 榕 樟 桐 楓 棕    檺 金荆 閩中志曰木堅有文 彩可作牀榻器用 櫸 與柜同 柜柳也 杞 柳屬 生水  旁   梓 木莫良於梓故書以梓材名 篇俗呼為浮梓用以為木 楠 其木直上柯 葉不相妨 竹之屬 筀竹 筠竹 黄竹 麻竹 長枝竹 鳳   尾竹 俗呼觀 音竹 猫兒竹 石竹 通志曰節疎而 平可爲器用 雪竹 笋 生  冬春之交  名曰雪笋 方竹 枝葉扶疎而莖 方可以爲杖 盧竹 生溪澗濕處 叢小葉疎 
+【1791】花之屬 蘭 蓮 菊 薔薇 佛桑 長春 紅白 二色 桂  有月桂  丹桂 梅 紅白 二色 川茶 山茶 紅白 二色 海棠 瑞香 色淡 紅味  清  香 素馨 茉莉 山丹 一花百蘂如繡 毬狀深紅色 百葉 榴 有 黄  白大紅淺  紅凡數種 紫薇 先花 後葉 紫荆 鷹爪 芙蓉 含笑 花 半  開則馥烮大開則  香減故名含笑 鷄冠 蜀葵 有深淺 紅諸色 玉簪 一莖數 蘂含吐  以次逓開如  削玉抽簪 剪春羅 花淡 紅 白蘋 杜鵑 一名山蹢躅 王敬美謂閩  中氣暖二月下句已見蹢躅即此  也千葉者佳單葉者一名滿山紅 紅蓼 龍船花 以 端  午開故名  一名頳桐 噴雪 花白細細如雪亂 點通志名撥雪 
+【1792】草之屬 茅 蒲 鼠麯 葉似馬齒莧上有白毛黃花 俗於三月三日採其花作糗  名鼠  麯粿 龍鬚草 可為 席 苦草 狂茄 服之令 人發狂 鳯尾草 藻  根生水底  葉敷水上 虎耳 八芳草之一也通志 曰人多栽石上為玩 香茅 通志曰葉 似苗而香  可煮作浴湯辟  邪氣令人身香 獨帚 似蓍可 為掃篲 金星草 馬鞭草 斷   腸草 服之則死愚民有爭輒噉以恣圖賴其解法用 緑豆漿或地黃漿或甘草湯最効者用蕹菜汁  灌下官每申嚴禁於春  夏二季示各里芟除 仙草 六月搗汁和米 粉煑之成凍 畜之屬 馬 牛 驢 騾 羊 猪 犬 猫 鷄    鴨 鵝 
+【1793】毛之屬 虎 豹 鹿 麞 猴 猿 熊 深山有之 饑則自䑛  其手故  美在掌 狐 兔 獺 狼 豺 山狗 野猪 豪   猪 山海經曰豪猪狀如豚 而白毛毛大如笄黑端 山羊 山鼠 羽之屬 雉 鳬 燕 雀 鶯 鷺鷥 鴛鴦 竹   鷄 畫眉 善鳴 善關 伯勞 啄木 嘴尖舌長 穿木食蟲 鸛 鴝鵒    杜鵑 翡翠 異物志曰雄赤 曰翡雌青曰翠 鷓鴣 烏鴉 鳲鳩 飼 子  有  序 鶺鴒 飛則鳴 行則摇 鱗之屬 鯉 脊有三 十六鱗 鯖 俗名 草魚 鰱 鱔 鯽 鰻 金魚 
+【1794】   鰍 鰳魚 鱖魚 鱓魚 黃質黑文 俗謂之鱔 介之屬 龜 鼈 蟹 蚌 螺 穿山甲 蜆 生淡 水石  中   石鱗 生深山 澗中 蟲之屬 蛇 虺 蜈蚣 螽斯 一生九 十九子 蝙蝠 螢    蜩 蜂 蜂毒在尾垂頴 如鋒故謂之蜂 蚊 蠅 蜘蛛 蚯蚓 蝶    蟾蜍 蟋蟀 蜻蜓    福建通志卷十一 
+【1795】欽定四庫全書  福建通志卷十二  田賦    禹貢揚州田下下而賦下上閩又東南僻壤山海    阻深阪隰瘠狹非有沃野千里之饒田之隷於籍    者寡矣土貢雜税所入不敵江南一大郡每歲經    費猶仰資鄰省此全閩貢賦之大畧也我   國家鑒古定制筐篚有常前代無名之征悉從釐革 
+
+</img n="148"></img n="147"></img n="146"></img n="145"></img n="144"></img n="143"></img n="142"></img n="141"></img n="140">
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/163407_2015_03_04_10_37_26.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,2958 @@
+欽定四庫全書  福建通志卷十一  
+<product_name>物産</product_name>    
+<product_name>延平府</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>粟</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+<product_name>脂麻</product_name> 
+〈帛之屬〉
+ 
+<product_name>木棉布</product_name> 
+<product_name>白苧布</product_name> 各縣俱岀 將樂尤佳 
+<product_name>葛布</product_name> 
+〈貨之屬〉
+ 
+<product_name>銅</product_name> 
+<product_name>尤溪沙</product_name> 
+<product_name>二縣岀</product_name> 
+<product_name>鐵</product_name> 南平尤溪 
+<product_name>二縣岀</product_name> 
+<product_name>糖</product_name> 
+<product_name></product_name> 
+<product_name>黄蠟</product_name>     
+<product_name>棉花</product_name> 
+<product_name>苧</product_name> 
+<product_name>麻</product_name> 
+<product_name>葛</product_name> 
+<product_name>㯶毛</product_name> 
+<product_name>茶</product_name> 各縣俱有岀南 平半岩者尤佳 
+<product_name>紙</product_name>  各縣俱有岀順  昌縣者尤佳 
+<product_name>紙被</product_name> 
+<product_name>油</product_name> 
+<product_name>茶油</product_name> 
+<product_name>桐</product_name> 
+<product_name>油</product_name> 
+<product_name>柏油</product_name> 
+<product_name>滷水石</product_name> 
+<product_name>岀南平</product_name> 
+<product_name>縣宋葉</product_name>  夢得避暑録云石有三種其一岀  滷水可為硯雖細潤而不甚發墨 
+<product_name>花孜石</product_name> 岀南平縣 色青紋白  有山
+<product_name>水禽魚</product_name>狀可為硯為屏世傳産黯淡灘  湍下故不易得大明一統志謂之花紋石 
+〈蔬之屬〉
+ 
+<product_name>蔊</product_name> 
+<product_name>芥</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>白菜</product_name> 
+<product_name>芥藍</product_name> 
+<product_name>萵苣</product_name> 
+<product_name>蕹</product_name>   
+<product_name>菜</product_name> 
+<product_name>菠薐</product_name> 
+<product_name>苦蕒</product_name> 
+<product_name>莙薘</product_name> 
+<product_name>茼蒿</product_name> 
+<product_name>胡荽</product_name> 
+<product_name>莧</product_name> 
+<product_name>葵</product_name>   
+<product_name>菜</product_name> 葉圓似葵花 俗
+<product_name>呼奇菜</product_name> 
+<product_name>烏藤</product_name> 葉稍似當 歸根色黑 
+<product_name>蕨</product_name> 
+<product_name>茄</product_name> 
+<product_name>瓠</product_name> 
+<product_name>芋</product_name>    
+<product_name>冬瓜</product_name> 
+<product_name>折笋</product_name> 或云接笋大如母指長四五寸生於南 平縣新興里高山上山下有澗泉土人  取笋浸泉中一夕其色白味  佳郡人用以餉賔為笋之最 
+<product_name>香蕈</product_name> 
+<product_name>薯</product_name> 
+<product_name>薑</product_name> 
+<product_name>葱</product_name>    
+<product_name>韭</product_name> 
+<product_name>薤</product_name> 
+<product_name>葫</product_name> 
+<product_name>大蒜</product_name> 
+<product_name>也</product_name> 
+<product_name>水芹</product_name> 
+〈果之屬〉
+ 
+<product_name>香櫞</product_name> 
+<product_name>柚</product_name> 
+<product_name>橘</product_name> 又有金橘南平 沙二縣尤多 
+<product_name>桃</product_name> 又有矮桃 俗呼道州  
+<product_name>桃</product_name>   
+<product_name>櫻桃</product_name> 
+<product_name>李</product_name> 
+<product_name>梨</product_name> 
+<product_name>石榴</product_name> 
+<product_name>柿</product_name> 
+<product_name>栗</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>楊梅</product_name>    
+<product_name>銀杏</product_name> 
+<product_name>葡萄</product_name> 
+<product_name>西瓜</product_name> 
+<product_name>黄瓜</product_name> 
+<product_name>土瓜</product_name> 
+<product_name>蓮</product_name> 
+<product_name>菱</product_name> 
+〈藥之屬〉
+ 
+<product_name>黄精</product_name> 
+<product_name>地黄</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>麥門冬</product_name> 
+<product_name>紫蘇</product_name>    
+<product_name>薄荷</product_name> 
+<product_name>蒼耳</product_name> 
+<product_name>茴香</product_name> 
+<product_name>天南星</product_name> 
+<product_name>馬鞭草</product_name> 
+<product_name>黑牽牛</product_name>    
+<product_name>車前子</product_name> 
+<product_name>栝樓</product_name> 
+<product_name>香附子</product_name> 
+<product_name>常山</product_name> 
+<product_name>俗呼</product_name> 
+<product_name>甜葉</product_name>  
+<product_name>何首烏</product_name>    
+<product_name>茯苓</product_name> 
+<product_name>吴茱萸</product_name> 
+<product_name>枸杞</product_name> 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>檜</product_name> 
+<product_name>杉</product_name> 
+<product_name>樟</product_name> 
+<product_name>桐</product_name> 
+<product_name>相思</product_name> 
+<product_name>桑</product_name>    
+<product_name>桕</product_name> 
+<product_name>冬青</product_name> 
+<product_name>槐</product_name> 
+<product_name>椒</product_name> 
+<product_name>皂莢</product_name> 
+<product_name>楊</product_name> 
+<product_name>柳</product_name> 
+<product_name>楓</product_name> 
+<product_name>榕</product_name>    
+<product_name>楝</product_name> 
+<product_name>檉</product_name> 
+<product_name>㯶櫚</product_name> 
+<product_name>桫欏樹</product_name> 高丈餘幹直葉如
+<product_name>天竹</product_name> 叢生於顛而圓覆傘葢  土俗祭厲時取二株樹  於壇前因呼孤魂樹 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 
+<product_name>江南竹</product_name> 
+<product_name>紫竹</product_name> 
+<product_name>緑竹</product_name> 夏笋可食土 人重之饋送  不過四五  
+<product_name>莖而已</product_name> 
+<product_name>黄竹</product_name> 
+<product_name>石竹</product_name> 
+<product_name>苦竹</product_name> 
+<product_name>綿竹</product_name> 
+<product_name>秋竹</product_name> 
+<product_name>人</product_name>   
+<product_name>靣竹</product_name> 
+<product_name>朱竹</product_name> 色如擲火延建間多 有之今其種盡絶 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>山茶</product_name> 
+<product_name>海棠</product_name> 
+<product_name>酴釄</product_name> 
+<product_name>木槿</product_name> 
+<product_name>長春</product_name>    
+<product_name>杜鵑</product_name> 
+<product_name>山丹</product_name> 
+<product_name>山梔</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>素馨</product_name> 
+<product_name>千葉榴</product_name> 
+<product_name>木</product_name>   
+<product_name>芙蓉</product_name> 
+<product_name>瑞香</product_name> 
+<product_name>含笑</product_name> 
+<product_name>菊</product_name> 
+<product_name>蘭</product_name> 
+<product_name>萱</product_name> 
+<product_name>蜀葵</product_name> 
+<product_name>玉</product_name>    
+<product_name>滴滴金</product_name> 
+<product_name>鳯仙</product_name> 
+〈草之屬〉
+ 
+<product_name>蒲</product_name> 
+<product_name>蘋</product_name> 
+<product_name>蓼</product_name> 
+<product_name>萍</product_name> 
+<product_name>葭</product_name> 
+<product_name>茅</product_name> 
+<product_name>長生草</product_name> 
+<product_name>採之</product_name> 
+<product_name>懸於</product_name>  梁不用滋培  彌嵗長青 
+<product_name>青蒿</product_name> 味凉土人以重陽日取而 乾之煎湯服以辟暑氣 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>   
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>熊</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麞</product_name> 
+<product_name>麂</product_name> 
+<product_name></product_name> 
+<product_name></product_name> 
+<product_name>猿</product_name>    
+<product_name>猴</product_name> 
+<product_name>狸</product_name> 
+<product_name>狐</product_name> 
+<product_name>獺</product_name> 
+<product_name>山羊</product_name> 
+<product_name>野猪</product_name> 
+<product_name>豪猪</product_name> 
+<product_name>鼠狼</product_name>    
+<product_name>竹䶉</product_name> 
+〈羽之屬〉
+ 
+<product_name>喜鵲</product_name> 
+<product_name>烏</product_name> 
+<product_name>鳩</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>山鵲</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name>    
+<product_name>布穀</product_name> 
+<product_name>啄木</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>白頭公</product_name> 
+<product_name>伯勞</product_name> 
+<product_name>雀</product_name> 
+<product_name>蠟嘴</product_name>  
+<product_name>其喙</product_name>  
+<product_name>黄色</product_name> 
+<product_name>太平鳥</product_name> 
+<product_name>提壺</product_name> 其鳴若云 
+<product_name>提蘆葫</product_name> 
+<product_name>白練雀</product_name> 似雀而差大 一白一黄有  
+<product_name>黑斑</product_name>  
+<product_name>尾長</product_name> 
+<product_name>雉</product_name> 
+<product_name>白鷴</product_name> 
+<product_name>鷓鴣</product_name> 
+<product_name>鷹</product_name> 
+<product_name>鷂</product_name> 
+<product_name>鸛</product_name> 
+<product_name>鷺鷥</product_name> 
+<product_name>鸕</product_name>   
+<product_name>鷀</product_name> 
+<product_name>鸂鶒</product_name> 
+<product_name>鳬</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>鱸</product_name> 
+<product_name>鱖</product_name> 
+<product_name>鯿</product_name> 
+<product_name>鯽</product_name> 
+<product_name>白魚</product_name> 
+<product_name>色白</product_name> 
+<product_name>可鱠</product_name>  
+<product_name>黄顙</product_name>    
+<product_name>黄尾魚</product_name> 似鯉而尾微黄 食之微有土氣 
+<product_name>鰻</product_name> 
+<product_name>鱓</product_name> 
+<product_name>鰍</product_name> 
+<product_name>蝦</product_name> 
+<product_name>鯪</product_name>    
+<product_name>鯉</product_name> 
+〈介之屬〉
+ 
+<product_name>黿</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>螺</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>鼃</product_name> 
+<product_name>黽</product_name> 
+<product_name>又有</product_name> 
+<product_name>石鱗</product_name> 
+<product_name>蜈蚣</product_name> 
+<product_name>蝙蝠</product_name> 
+<product_name>螽斯</product_name>    
+<product_name>建寜麻</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+<product_name>脂麻</product_name> 
+〈帛之屬〉
+ 
+<product_name>絲</product_name> 
+<product_name>浦城</product_name> 
+<product_name>多</product_name> 
+<product_name>紅緑錦</product_name> 出建陽今 有濯錦橋 
+<product_name>土綾</product_name> 
+<product_name>土紗</product_name> 
+<product_name>土</product_name>   
+<product_name>絹</product_name> 俱出甌寧 浦城二縣 
+<product_name>刻絲</product_name> 凡數種其厚者可及 湖湘間隔織出建安 
+<product_name>腰機布</product_name> 
+<product_name>即縩</product_name> 
+<product_name>布出</product_name>  甌寧建陽崇安三縣  而浦城亦有苧布 
+<product_name>木棉布</product_name> 七縣俱出而出崇 安者可及三校 
+〈貨之屬〉
+ 
+<product_name>書籍</product_name> 出建陽縣麻沙崇化二坊麻沙書坊元 季燬今書籍之行四方者皆崇化書坊  
+<product_name>所刻</product_name>  
+<product_name>者也</product_name> 
+<product_name>銅</product_name> 宋時出建安縣東 萇里吉銅坑久廢 
+<product_name>鉛</product_name> 宋時出建安縣 大鋌塲久廢 
+<product_name>鐵</product_name> 
+<product_name>建安</product_name> 
+<product_name>甌寜</product_name>  松溪政和  
+<product_name>四縣出</product_name> 
+<product_name>光粉</product_name> 
+<product_name>化鉛為</product_name> 
+<product_name>之久廢</product_name> 
+<product_name>糖</product_name> 出建陽崇 
+<product_name>安二縣</product_name> 
+<product_name>蜜</product_name> 七縣皆出浦 城建陽崇安  
+<product_name>三縣</product_name>  
+<product_name>尤多</product_name> 
+<product_name>黄蠟</product_name> 
+<product_name>白蠟</product_name> 取蠟蟲種於冬青樹至秋結蠟纏 繞枝上如雪乃採而為之出浦城  
+<product_name>崇安</product_name>  
+<product_name>二縣</product_name> 
+<product_name>藍澱</product_name> 
+<product_name>七縣</product_name> 
+<product_name>俱出</product_name> 
+<product_name>紅花</product_name> 
+<product_name>棉花</product_name> 出浦城松溪 二縣亦不多 
+<product_name>苧</product_name> 
+<product_name>出建安</product_name> 
+<product_name>甌寜浦</product_name>  城松溪崇安  政和六縣 
+<product_name>紙</product_name> 出建陽浦城崇安三縣 
+<product_name>又有稻</product_name>稿紙出松溪 
+<product_name>紙被</product_name> 
+<product_name>以楮樹</product_name> 
+<product_name>皮為之</product_name>  陸放翁詩紙被圍身度雪天白於狐腋  煖於綿出甌寧建陽松溪崇安四縣 
+<product_name>墨</product_name> 
+<product_name>出甌寜</product_name> 
+<product_name>建陽</product_name> 
+<product_name>茶</product_name>  七縣皆出而龍鳯武夷二山所  出者尤號絶品宋蔡襄有茶錄 
+<product_name>漆</product_name> 汁黏墨可餙器者 出浦城建陽崇安  
+<product_name>三縣然</product_name>  
+<product_name>亦甚少</product_name> 
+<product_name>油</product_name> 梣油用梣子壓之者即茶油也出浦城建 陽崇安三縣 桐油出建陽崇安二縣  桕油出浦城松  溪崇安三縣 
+<product_name>㯶櫚</product_name> 
+<product_name>出建</product_name> 
+<product_name>陽縣</product_name> 
+<product_name>㯶帽</product_name> 結㯶為之 
+<product_name>出甌寧</product_name> 
+<product_name>草席</product_name> 
+<product_name>出松</product_name> 
+<product_name>溪</product_name>   
+<product_name>兔毫琖</product_name> 出甌寜之水吉蔡君謨茶錄云建安所造黑 琖紋如兔毫其毫色異者土人謂之毫變琖  價甚高且艱得之今  其窰久廢不復有矣 <img n="140">瓦 以泥為器用而燒 熟者出建安甌寧 
+<product_name>甆器</product_name> 
+<product_name>出</product_name> 
+<product_name>松</product_name>  溪建陽又  
+<product_name>有碗窰</product_name> 
+〈蔬之屬〉
+ 
+<product_name>芥</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>白菜</product_name> 
+<product_name>油菜</product_name> 
+<product_name>芥藍</product_name> 
+<product_name>萵苣</product_name>    
+<product_name>菠薐</product_name> 
+<product_name>苦蕒</product_name> 
+<product_name>莙薘</product_name> 
+<product_name>茼蒿</product_name> 
+<product_name>園荽</product_name> 
+<product_name>胡蘿蔔</product_name> 
+<product_name>莧</product_name>    
+<product_name>蕨</product_name> 
+<product_name>茄</product_name> 
+<product_name>瓠</product_name> 
+<product_name>芋</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>稍瓜</product_name> 
+<product_name>即越</product_name> 
+<product_name>瓜</product_name> 
+<product_name>笋香</product_name> 
+<product_name>蕈</product_name>    
+<product_name>紅菌</product_name> 俗呼朱菰即 胭脂菰也 
+<product_name>薯</product_name> 
+<product_name>山藥</product_name> 
+<product_name>紫薑</product_name> 
+<product_name>葱</product_name> 
+<product_name>韭</product_name>    
+<product_name>薤</product_name> 
+<product_name>蒜</product_name> 
+<product_name>蔊菜</product_name> 生泉石間味極辣朱晦菴和劉屏山 
+<product_name>食</product_name> <img n="141">詩云小草有辣性托根寒澗幽  懦夫曾一撮  感憤不能休 
+<product_name>水芹</product_name> 
+<product_name>蓴菜</product_name> 
+〈果之屬〉
+ 
+<product_name>柑</product_name> 
+<product_name>橙子</product_name> 
+<product_name>香櫞</product_name> 
+<product_name>柚</product_name> 
+<product_name>橘</product_name> 
+<product_name>金橘</product_name> 
+<product_name>桃</product_name>    
+<product_name>李</product_name> 其品不一有紫李 黄李又有黄白李 
+<product_name>杏</product_name> 
+<product_name>林檎</product_name> 
+<product_name>柰</product_name> 
+<product_name>棗</product_name> 
+<product_name>梨</product_name> 
+<product_name>石</product_name>   
+<product_name>榴</product_name> 
+<product_name>杮</product_name> 
+<product_name>櫻桃</product_name> 春花夏實大如珠顆 紅色禮記謂之含桃 
+<product_name>栗</product_name> 
+<product_name>榛子</product_name> 
+<product_name>似栗</product_name> 
+<product_name>而小</product_name>   
+<product_name>楊梅</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>銀杏</product_name> 
+<product_name>胡桃</product_name> 
+<product_name>榧子</product_name> 
+<product_name>毛栗</product_name>  似北榛産於崇安縣五夫里相傳以  為翁中丞所遺之種浦城間亦有之 
+<product_name>香楂</product_name> 
+<product_name>梧桐子</product_name>  
+<product_name>九月</product_name>  
+<product_name>熟</product_name> 
+<product_name>株子</product_name> 其類不一 銀株大如栗米株 巖株以上味俱甜 苦株味甜苦 
+<product_name>山棗</product_name> 
+<product_name>味</product_name> 
+<product_name>酸</product_name>  甜與上株子  俱出建陽縣 
+<product_name>葡萄</product_name> 
+<product_name>蔗</product_name> 
+<product_name>西瓜</product_name> 
+<product_name>黄瓜</product_name> 
+<product_name>白瓜</product_name> 
+<product_name>枕</product_name>   
+<product_name>瓜</product_name> 秋生其形如枕可久留出崇安五夫 里其種相傳劉丞相自外邦傳來者 
+<product_name>香瓜</product_name> 
+<product_name>色黄實</product_name> 
+<product_name>小如西</product_name>  
+<product_name>瓜而</product_name>  
+<product_name>長</product_name> 
+<product_name>土瓜</product_name> 
+<product_name>鮮葛</product_name> 
+<product_name>蓮</product_name> 
+<product_name>菱角</product_name> 
+<product_name>藕</product_name> 
+〈藥之屬〉
+ 
+<product_name>薏苡</product_name> 
+<product_name>黄精</product_name> 
+<product_name>地黄</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>麥門冬</product_name>    
+<product_name>紫蘇</product_name> 
+<product_name>薄荷</product_name> 
+<product_name>蒼耳</product_name> 
+<product_name>天南星</product_name> 
+<product_name>車前子</product_name> 
+<product_name>栝樓</product_name>    
+<product_name>香附子</product_name> 
+<product_name>商陸</product_name> 
+<product_name>香薷</product_name> 
+<product_name>牛膝</product_name> 
+<product_name>益母草</product_name> 
+<product_name>乾葛</product_name>    
+<product_name>紫背草</product_name> 
+<product_name>荆芥</product_name> 
+<product_name>桔梗</product_name> 根畧似人 參黄白色 
+<product_name>萹蓄</product_name> 春中布地生 莖節赤葉細  緑如竹花亦甚細青  黄色好生道旁可食 
+<product_name>馬兠鈴</product_name> 藤繞樹生葉如山芋花 黄紫色子狀如鈴作四  五瓣根名雲南根  亦名士青木香 
+<product_name>穀精草</product_name> 春生榖田中葉細花白而 小圓似星又名戴星草二  
+<product_name>三月採</product_name>  
+<product_name>花用</product_name> 
+<product_name>柴胡</product_name> 
+<product_name>澤瀉</product_name> 叢生淺水中葉似牛 舌獨莖而長花白色 
+<product_name>黄連</product_name> 
+<product_name>葉如</product_name> 
+<product_name>小雉</product_name>  
+<product_name>尾草經</product_name>  
+<product_name>冬不凋</product_name> 
+<product_name>絡石</product_name> 葉圓如細橘正青冬夏不凋花白子黑 其莖蔓延莖節著處即生根鬚包絡石  
+<product_name>上故</product_name>  
+<product_name>名</product_name> 
+<product_name>蛇床子</product_name> 葉青碎作叢似蒿枝每枝有花頭百餘 結同一窠似馬芹類開白花子如黍米  
+<product_name>至輕</product_name>  
+<product_name>虛</product_name> 
+<product_name>玄參</product_name> 葉似脂麻又如槐柳細莖青 紫色開花青碧色子黑色 
+<product_name>前胡</product_name> 
+<product_name>似茈胡</product_name> 
+<product_name>而柔軟</product_name>   
+<product_name>大小薊</product_name> 葉並多刺相似但大薊高三四尺葉皺小薊 高一尺許葉不皺為異小薊初生時山野人  
+<product_name>多取</product_name>  
+<product_name>為蔬</product_name> 
+<product_name>薑黄</product_name> 葉青緑長一二尺許濶三四寸有斜丈如 紅蕉葉而小花紅白色根盤屈類生薑而  
+<product_name>圓</product_name>   
+<product_name>白术</product_name> 葉大而有毛 甜而少膏 
+<product_name>芎藭</product_name> 蕪也生 
+<product_name>山谷間</product_name> 
+<product_name>吳茱萸</product_name> 
+<product_name>茯苓</product_name>    
+<product_name>黄蘗</product_name> 
+<product_name>枳殻</product_name> 一曰枳實葉似 橘而小多刺 
+<product_name>金櫻子</product_name> 
+<product_name>厚朴</product_name> 
+<product_name>本高</product_name> 
+<product_name>三四</product_name>  丈徑一二尺葉如檞葉紅花  而青實皮極鱗皺而厚紫色 
+<product_name>烏藥</product_name> 本似茶高丈餘一 葉三椏葉青隂白  
+<product_name>根黑</product_name>  
+<product_name>褐色</product_name> 
+<product_name>磁石</product_name> 俗呼攝針石按政和縣 志出東衢里黄谷山 
+<product_name>雲母石</product_name> 按政和縣 志出感化  
+<product_name>下里慶</product_name>  
+<product_name>元縣界</product_name> 
+<product_name>石南藤</product_name> 
+<product_name>左纒藤</product_name> 
+<product_name>花名金</product_name> 
+<product_name>銀花</product_name> 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>杉</product_name> 
+<product_name>樟</product_name> 
+<product_name>楠</product_name> 
+<product_name>桫欏</product_name> 
+<product_name>桐</product_name> 
+<product_name>有二種</product_name> 
+<product_name>油桐</product_name> 
+<product_name>梧</product_name>  桐即有寶者工  人取以充果 
+<product_name>梓</product_name> 
+<product_name>枳枸</product_name> 詩謂之枸樹高大似白楊 有子著枝端大如指長數  寸味甘能解酒毒人家有此樹則醖酒不成  亦名木蜜建陽謂之皆拱子崇安謂之兼勾 
+<product_name>相思</product_name>    
+<product_name>桑</product_name> 
+<product_name>柘</product_name> 
+<product_name>烏桕</product_name> 
+<product_name>冬青</product_name> 
+<product_name>槐</product_name> 
+<product_name>楊</product_name> 
+<product_name>柳</product_name> 
+<product_name>榆</product_name> 
+<product_name>楓</product_name>    
+<product_name>櫧</product_name> 
+<product_name>楝</product_name> 
+<product_name>朴</product_name> 
+<product_name>白楊</product_name> 
+<product_name>柞</product_name> 
+<product_name>黄楊</product_name> 
+<product_name>白斷藤</product_name> 
+<product_name>釣</product_name>   
+<product_name>鉤藤</product_name> 
+<product_name>紫荆藤</product_name> 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 
+<product_name>江南竹</product_name> 
+<product_name>斑竹</product_name> 
+<product_name>紫竹</product_name> 
+<product_name>黄竹</product_name> 
+<product_name>小而</product_name> 
+<product_name>黄色</product_name>   
+<product_name>苦竹</product_name> 
+<product_name>土人以</product_name> 
+<product_name>作紙者</product_name> 
+<product_name>石竹</product_name> 
+<product_name>筋竹</product_name> 
+<product_name>箭竹</product_name> 
+<product_name>方竹</product_name> 
+<product_name>秋竹</product_name>    
+<product_name>釣絲竹</product_name> 
+<product_name>綿竹</product_name> 謂其軟如 
+<product_name>綿故名</product_name> 
+<product_name>水竹</product_name> 
+<product_name>火竹</product_name> 
+<product_name>用以</product_name> 
+<product_name>取火</product_name> 
+<product_name>白眉竹</product_name>  土人以作  
+<product_name>筆管者</product_name> 
+<product_name>長壽竹</product_name> 
+<product_name>出崇安</product_name> 
+<product_name>縣黄亭</product_name> 
+<product_name>鶴膝竹</product_name> 莖瘦節大可以 為杖笋味甚美 
+<product_name>瀟</product_name>   
+<product_name>湘竹</product_name> 
+<product_name>人面竹</product_name> 
+<product_name>毛竹</product_name> 出武
+<product_name>夷毛竹</product_name>
+<product_name>洞每竹</product_name>生數節 每節旁出一幹幹之巨細與  根等土人  多以為杖 
+<product_name>觀音竹</product_name> 
+<product_name>朱竹</product_name> 紅如擲火延建間有之大 可為杖小者以餙盤今  
+<product_name>其種</product_name>  
+<product_name>絶矣</product_name> 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>山茶</product_name> 崇安有一種白色而千葉者其 香可人蓋茶花中之絶品也 
+<product_name>海</product_name>   
+<product_name>棠</product_name> 
+<product_name>茶䕷</product_name> 
+<product_name>薔薇</product_name> 
+<product_name>金沙</product_name> 
+<product_name>佛桑</product_name> 
+<product_name>木槿</product_name> 
+<product_name>長春</product_name>    
+<product_name>麗春</product_name> 花似長春而 差大三月開 
+<product_name>杜鵑</product_name> 
+<product_name>玉樓春</product_name> 即百葉梔 
+<product_name>子花也</product_name>  
+<product_name>紫薇</product_name>    
+<product_name>茉莉</product_name> 
+<product_name>素馨</product_name> 
+<product_name>芙蓉</product_name> 
+<product_name>桂花</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>含笑</product_name> 
+<product_name>鳯</product_name>   
+<product_name>尾</product_name> 
+<product_name>棣棠</product_name> 
+<product_name>凌霄</product_name> 
+<product_name>矮桃</product_name> 有重瓣者 花而不實 
+<product_name>剪春羅</product_name> 
+<product_name>秋開者</product_name> 
+<product_name>名剪秋</product_name>  
+<product_name>羅</product_name>   
+<product_name>潑雪</product_name> 
+<product_name>冬開</product_name> 
+<product_name>白花</product_name> 
+<product_name>牡丹</product_name> 
+<product_name>芍藥</product_name> 
+<product_name>菊</product_name> 
+<product_name>蘭</product_name> 
+<product_name>萱</product_name> 
+<product_name>蜀葵</product_name>    
+<product_name>玉簪</product_name> 
+<product_name>百合</product_name> 
+<product_name>鷄冠</product_name> 
+<product_name>金鳯</product_name> 
+<product_name>繡毬</product_name> 
+〈草之屬〉
+ 
+<product_name>蒲</product_name> 
+<product_name>茭</product_name> 
+<product_name>蓼</product_name> 
+<product_name>萍</product_name> 
+<product_name>藻</product_name> 
+<product_name>浮萍</product_name> 
+<product_name>茅</product_name> 
+<product_name>蘆</product_name>    
+<product_name>菅</product_name> 
+<product_name>龍牙</product_name> 
+<product_name>虎耳</product_name> 
+<product_name>觀音</product_name> 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>   
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>熊</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麞</product_name> 
+<product_name>麂</product_name> 
+<product_name>兔</product_name> 
+<product_name>豺</product_name> 
+<product_name>猴</product_name>    
+<product_name>猿</product_name> 
+<product_name>貍</product_name> 
+<product_name>有二種</product_name> 
+<product_name>玉面</product_name> 
+<product_name>貍</product_name> 
+<product_name>九節貍</product_name> 
+<product_name>狐</product_name> 
+<product_name>獺</product_name> 
+<product_name>山犬</product_name> 
+<product_name>野猪</product_name>    
+<product_name>豪猪</product_name> 
+<product_name>竹䶉</product_name> 
+<product_name>俗號</product_name> 
+<product_name>土豚</product_name> 
+<product_name>山</product_name> 狀如鼠其尾方俗呼毫 鼠腊而食之甚香美 
+<product_name>羽之囑</product_name> 
+<product_name>鵲</product_name> 
+<product_name>烏</product_name> 
+<product_name>鳩</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>山鵲</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name> 
+<product_name>百</product_name>    
+<product_name>舌</product_name> 
+<product_name>啄木</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>白頭公</product_name> 
+<product_name>鶺鴒</product_name> 
+<product_name>雀</product_name> 
+<product_name>雉</product_name>    
+<product_name>白鷴</product_name> 
+<product_name>錦鷄</product_name> 
+<product_name>竹鷄</product_name> 
+<product_name>鷓鴣</product_name> 
+<product_name>子規</product_name> 
+<product_name>鷹</product_name> 
+<product_name>鷂</product_name> 
+<product_name>鶻</product_name>    
+<product_name>鸛</product_name> 
+<product_name>鷺鷥</product_name> 
+<product_name>鸕鷀</product_name> 
+<product_name>鸂鶒</product_name> 
+<product_name>鴛鴦</product_name> 
+<product_name>鳬</product_name> 
+<product_name>鷗</product_name> 
+<product_name>翡</product_name>   
+<product_name>翠</product_name> 
+<product_name>鴞</product_name> 
+<product_name>俗呼</product_name> 
+<product_name>古鼎</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉魚</product_name> 
+<product_name>鰱魚</product_name> 
+<product_name>草魚</product_name> 
+<product_name>鯿魚</product_name> 
+<product_name>鱖魚</product_name>  <img n="142">魚  
+<product_name>身長</product_name>  
+<product_name>鱗白</product_name> 
+<product_name>圓眼魚</product_name> 
+<product_name>口尖眼</product_name> 
+<product_name>圓而赤</product_name> 
+<product_name>鯖鯷</product_name> 背青身長 
+<product_name>即青魚</product_name>也 
+<product_name>鱅魚</product_name> 
+<product_name>鰻魚</product_name>    
+<product_name>鱓魚</product_name> 
+<product_name>鮎魚</product_name> 
+<product_name>䱀</product_name> <img n="143"> 
+<product_name>泥鰍</product_name> 
+<product_name>抱石魚</product_name> 岀於山溪背 偃而腹平其  大如指常貼於石  上土人取之為腊 
+<product_name>鯪鯉</product_name> 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>蚌</product_name> 
+<product_name>螺螄</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>蜥蜴</product_name> 
+<product_name>鼃</product_name> 
+<product_name>黽</product_name> 其類不一 田鷄即水 
+<product_name>鷄也</product_name> 
+<product_name>石鱗</product_name> 
+<product_name>石蛤狀</product_name>  類田鷄皮黄色俗  呼為黄蛤味極美 
+<product_name>蟾蜍</product_name> 
+<product_name>蜈蚣</product_name> 
+<product_name>蝙蝠</product_name>    
+<product_name>邵武府</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>粟</product_name> 
+<product_name>黍</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+<product_name>脂麻</product_name> 
+〈帛之屬〉
+ 
+<product_name>苧布</product_name> 四縣俱有而 泰寜為多 
+<product_name>葛布</product_name> 岀建寧縣永 城開山二保 
+〈貨之屬〉
+ 
+<product_name>銅</product_name> 
+<product_name>岀邵武</product_name> 
+<product_name>縣今無</product_name> 
+<product_name>鐵</product_name> 岀邵武光澤 二縣臚今廢 
+<product_name>鐵絲</product_name> 
+<product_name>亦名</product_name> 
+<product_name>鐵條</product_name> 
+<product_name>苧</product_name> 
+<product_name>漆</product_name>  
+<product_name>俱岀泰</product_name>  
+<product_name>寧縣</product_name> 
+<product_name>竹</product_name> 
+<product_name>楮衾</product_name> 即被俱 岀邵武縣 
+<product_name>茶</product_name> 光澤泰寧 二縣為多 
+<product_name>茶油</product_name> 
+<product_name>邵</product_name> 
+<product_name>武</product_name>  光澤建寧  三縣尤多 
+<product_name>蕨粉</product_name> 歳饑人多 
+<product_name>賴以濟</product_name> 
+<product_name>㯶毛</product_name> 光澤邵武 二縣為多 
+<product_name>銀硃</product_name> 
+<product_name>舊志</product_name> 
+<product_name>云故</product_name>  老相傳潭山出朱紅得三樵水  濯之其色尤鮮今無煉者 
+<product_name>白</product_name> 
+<product_name>兹</product_name> 
+<product_name>石</product_name> 
+<product_name>器</product_name> 出邵武青雲 窑泰寧際口  窑建寜蘭溪窑而以  泰寧際口者為勝 
+<product_name>琉璃</product_name> 邵武舊有一二家能造之 法用黄石燄焇之類煉成  
+<product_name>今</product_name>  
+<product_name>無</product_name> 
+<product_name>石灰</product_name> 
+<product_name>煉石</product_name> 
+<product_name>為之</product_name> 
+<product_name>薑黄</product_name> 
+<product_name>岀邵武</product_name> 
+<product_name>縣一都</product_name> 
+〈蔬之屬〉
+ 
+<product_name>芥</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>白菜</product_name> 
+<product_name>油菜</product_name> 
+<product_name>芥藍</product_name> 
+<product_name>萵苣</product_name>    
+<product_name>蕹菜</product_name> 
+<product_name>菠薐</product_name> 
+<product_name>苦蕒</product_name> 
+<product_name>莙薘</product_name> 
+<product_name>胡荽</product_name> 
+<product_name>莧</product_name> 
+<product_name>蔊</product_name> 
+<product_name>蕨</product_name>  其根即可  
+<product_name>為粉者</product_name> 
+<product_name>茄</product_name> 
+<product_name>匏</product_name> 
+<product_name>葫蘆</product_name> 
+<product_name>芋</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>絲瓜</product_name> 
+<product_name>笋</product_name>    
+<product_name>蕈</product_name> 
+<product_name>菌</product_name> 一名地蕈熟可食生則毒人中 其毒者用生脂麻檑酒服之即愈 
+<product_name>薯</product_name> 
+<product_name>薑</product_name>   
+<product_name>葱</product_name> 
+<product_name>韭</product_name> 
+<product_name>薤</product_name> 
+<product_name>蒜</product_name> 
+<product_name>荇菜</product_name> 詩集傅云接余也根生水 底莖如釵股上青下白葉  紫赤圓徑寸餘浮  在水而可為 
+〈果之屬〉
+ 
+<product_name>橙</product_name> 
+<product_name>柚</product_name> 
+<product_name>金橘</product_name> 
+<product_name>桃</product_name> 
+<product_name>紅桃</product_name> 
+<product_name>白桃</product_name> 
+<product_name>水蜜</product_name> 桃味最佳亦少有也 
+<product_name>李</product_name>  麥
+<product_name>李與麥</product_name>同 
+<product_name>胭脂李</product_name> 
+<product_name>赤皮</product_name>  
+<product_name>李</product_name> 
+<product_name>黄蠟李</product_name> 青葱李色青色 
+<product_name>杏</product_name> 
+<product_name>林檎</product_name> 
+<product_name>櫻桃</product_name>    
+<product_name>梨</product_name> 枕梨大而長 
+<product_name>麋梨</product_name> 
+<product_name>消梨</product_name> 鐵裹梨其色黑而肉實味極佳 
+<product_name>石榴</product_name> 
+<product_name>柿</product_name> 
+<product_name>棗</product_name>    
+<product_name>栗</product_name> 
+<product_name>榛</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>楊梅</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>甘蔗</product_name> 
+<product_name>西瓜</product_name>    
+<product_name>黄瓜</product_name> 
+<product_name>土瓜</product_name> 
+<product_name>蓮</product_name> 
+<product_name>菱角</product_name> 
+<product_name>茨菰</product_name> 
+<product_name>鳬茨</product_name> 
+〈藥之屬〉
+ 
+<product_name>薏苡仁</product_name> 
+<product_name>菖蒲</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>麥門冬</product_name> 
+<product_name>烏藥</product_name>   
+<product_name>紫蘇</product_name> 
+<product_name>蒼耳</product_name> 
+<product_name>萞麻子</product_name> 
+<product_name>五味子</product_name> 春初引赤蔓於高 木葉尖圓似杏葉  三四月開黄白花類小蓮花七月  成實如
+<product_name>豌豆</product_name>大生青熟紅紫色 
+<product_name>車前子</product_name> 
+<product_name>栝樓</product_name>    
+<product_name>山藥</product_name> 
+<product_name>香附子</product_name> 
+<product_name>牛膝</product_name> 
+<product_name>芎藭苗</product_name> 
+<product_name>蒟蒻</product_name> 苗葉酷似 天南星但  莖斑花紫為異耳蜀  人取以作醬味酢美 
+<product_name>香薷</product_name> 
+<product_name>枸杞</product_name> 
+<product_name>茱萸</product_name> 
+<product_name>金櫻子</product_name>    
+<product_name>使君子</product_name> 
+<product_name>五倍子</product_name> 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>檜</product_name> 
+<product_name>杉</product_name> 
+<product_name>樟</product_name> 
+<product_name>楠</product_name> 
+<product_name>桐</product_name> 
+<product_name>有二種</product_name>  
+<product_name>油桐</product_name> 
+<product_name>梧</product_name>  桐其實視建  寧諸邵為多 
+<product_name>梓</product_name> 
+<product_name>桑</product_name> 
+<product_name>柘</product_name> 
+<product_name>烏桕</product_name> 
+<product_name>冬青</product_name> 
+<product_name>皁莢</product_name> 
+<product_name>柳</product_name>    
+<product_name>楓</product_name> 
+<product_name>櫧</product_name> 
+<product_name>櫟</product_name> 
+<product_name>蘗</product_name> 
+<product_name>黄楊</product_name> 
+<product_name>㯶櫚</product_name> 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 冬笋不岀土味最 佳春笋乃能成幹 
+<product_name>江南竹</product_name> 
+<product_name>笋可</product_name> 
+<product_name>生食</product_name> 
+<product_name>筀竹</product_name>    
+<product_name>篠竹</product_name> 
+<product_name>苦竹</product_name> 
+<product_name>甜竹</product_name> 
+<product_name>黄蠟竹</product_name> 最堅實笋 味亦最佳 
+<product_name>方竹</product_name> 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>山茶</product_name> 
+<product_name>蠟蒂</product_name> 花深紅頗似紅梅 先花後葉隆冬開 
+<product_name>薔薇</product_name>    
+<product_name>木槿</product_name> 
+<product_name>杜鵑</product_name> 
+<product_name>山丹</product_name> 
+<product_name>欲留春</product_name> 
+<product_name>即玉</product_name> 
+<product_name>樓春</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>素馨</product_name>    
+<product_name>木芙蓉</product_name> 
+<product_name>木犀</product_name> 
+<product_name>即桂</product_name> 
+<product_name>花也</product_name> 
+<product_name>瑞香</product_name> 
+<product_name>郁李</product_name> 
+<product_name>凌霄</product_name> 
+<product_name>牡丹</product_name>    
+<product_name>芍藥</product_name> 
+<product_name>菊</product_name> 
+<product_name>蘭</product_name> 
+<product_name>萱</product_name> 
+<product_name>蜀葵</product_name> 
+<product_name>扁竹</product_name> 
+<product_name>鷄冠</product_name> 
+<product_name>滴滴</product_name>   
+<product_name>金</product_name> 
+<product_name>金鳯</product_name> 
+<product_name>碧雪</product_name> 叢可一二尺 花細而色白 
+〈草之屬〉
+ 
+<product_name>莣</product_name> 
+<product_name>吉祥</product_name> 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>    
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>飛虎</product_name> 
+<product_name>似猫而</product_name> 
+<product_name>翼亦少</product_name> 
+<product_name>豹</product_name> 
+<product_name>熊</product_name> 
+<product_name>豺</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麈</product_name>    
+<product_name>兔</product_name> 
+<product_name>猿</product_name> 
+<product_name>猴</product_name> 
+<product_name>貍</product_name> 
+<product_name>俗呼果</product_name> 
+<product_name>子貍</product_name> 
+<product_name>狐</product_name> 
+<product_name>獺</product_name> 
+<product_name>山犬</product_name> 
+<product_name>俗呼山</product_name> 
+<product_name>黄狗</product_name> 
+<product_name>野</product_name>   
+<product_name>猪</product_name> 
+<product_name>豪猪</product_name> 
+<product_name>山牛</product_name> 毛如小牛角 短如黄牛 
+<product_name>刺蝟</product_name> 
+<product_name>竹䶉</product_name> 
+<product_name>俗名</product_name> 
+<product_name>土豚</product_name> 
+〈羽之屬〉
+ 
+<product_name>喜鵲</product_name> 
+<product_name>烏</product_name> 
+<product_name>斑鳩</product_name> 
+<product_name>青鳩</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>山鵲</product_name>    
+<product_name>燕</product_name> 
+<product_name>鶯</product_name> 
+<product_name>百舌</product_name> 
+<product_name>啄木</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>白頭公</product_name> 
+<product_name>鶺鴿</product_name>    
+<product_name>雀</product_name> 
+<product_name>鵙</product_name> 
+<product_name>雉</product_name> 
+<product_name>白鷴</product_name> 
+<product_name>錦鷄</product_name> 
+<product_name>竹鷄</product_name> 
+<product_name>鷓鴣</product_name> 
+<product_name>杜鵑</product_name>    
+<product_name>鶉</product_name> 
+<product_name>練鵲</product_name> 
+<product_name>鷹</product_name> 
+<product_name>鳶</product_name> 
+<product_name>鷂</product_name> 
+<product_name>鶻</product_name> 
+<product_name>鸛</product_name> 
+<product_name>鷺鷥</product_name>    
+<product_name>鸕鷀</product_name> 
+<product_name>鸂鶒</product_name> 
+<product_name>鴛鴦</product_name> 
+<product_name>鳬鷸</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>鰱</product_name> 
+<product_name>草魚</product_name> 仲春取子於
+<product_name>江曰魚</product_name>苗畜於 小池稍長入 <img n="144">塘曰 
+<product_name>23可</product_name>  尺許徙之廣池飼  以草九月乃取 
+<product_name>鯽</product_name> 
+<product_name>鱖</product_name> 
+<product_name>青魚</product_name> 
+<product_name>背正</product_name> 
+<product_name>青色</product_name> 
+<product_name>鱒</product_name> 爾雅曰鮅 鱒似鯉而  鱗細眼赤  魚之美者 
+<product_name>鱧</product_name> 
+<product_name>俗呼烏</product_name> 
+<product_name>鯉魚</product_name> 
+<product_name>烏鰡</product_name> 
+<product_name>似草魚</product_name>頭與口差小而黑 色食螺又有色黄者曰黄  
+<product_name>鰡</product_name>   
+<product_name>鰻</product_name> 
+<product_name>鱔</product_name> 
+<product_name>鮎</product_name> 
+<product_name>鱅</product_name> 
+<product_name>鯊</product_name> 魚大如指狹員而長身有 黑點常張口吹沙故又名  
+<product_name>吹</product_name>  
+<product_name>沙</product_name> 
+<product_name>泥鰍</product_name> 
+<product_name>蝦</product_name> 長鬚生水田池沼 中以上各縣俱有 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>螺</product_name> 
+<product_name>蚌</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>鼃</product_name> 
+<product_name>黽</product_name> 
+<product_name>又有田</product_name> 
+<product_name>鷄石蜦</product_name> 
+<product_name>蟾蜍</product_name> 
+<product_name>蝙蝠</product_name> 
+<product_name>蜈蚣</product_name>    
+<product_name>蚰蜒</product_name> 爾雅曰螾疏曰象蜈蚣黄色 而細長喜入人耳俗曰飛楊蟲    
+<product_name>汀州府</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>粟</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+<product_name>脂麻</product_name> 
+〈帛之屬〉
+ 
+<product_name>紬</product_name> 
+<product_name>絹</product_name> 
+<product_name>綾</product_name> 
+<product_name>苧布</product_name> 
+<product_name>麻布</product_name> 
+<product_name>蕉布</product_name> 
+<product_name>葛布</product_name> 
+〈貨之屬〉
+ 
+<product_name>銅</product_name> 
+<product_name>錫</product_name> 
+<product_name>俱長汀</product_name> 
+<product_name>縣岀</product_name> 
+<product_name>鐵</product_name> 長汀上杭寜 化三縣岀 
+<product_name>糖</product_name> 
+<product_name>蜜</product_name> 
+<product_name>蠟</product_name>    
+<product_name>藍澱</product_name> 
+<product_name>茶</product_name> 
+<product_name>油</product_name> 
+<product_name>麻油</product_name> 
+<product_name>茶油</product_name> 
+<product_name>桐油</product_name> 以上八縣俱出 
+<product_name>蕈</product_name> 
+<product_name></product_name> 
+<product_name>降</product_name>   
+<product_name>真香</product_name> 以上俱連 
+<product_name>城縣出</product_name> 
+<product_name>漆</product_name> 清流歸化 
+<product_name>二縣出</product_name> 
+〈蔬之屬〉
+ 
+<product_name>芥</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>菠薐</product_name> 
+<product_name>苦蕒</product_name> 
+<product_name>蒼薘</product_name> 
+<product_name>莧</product_name> 
+<product_name>蕨</product_name>    
+<product_name>茄</product_name> 
+<product_name>瓠</product_name> 
+<product_name>芋</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>絲瓜</product_name> 
+<product_name>笋</product_name> 
+<product_name>薯</product_name> 
+<product_name>山藥</product_name>    
+<product_name>薑</product_name> 
+<product_name>葱</product_name> 
+<product_name>薤</product_name> 
+<product_name>蒜</product_name> 
+<product_name>水芹</product_name> 
+〈果之屬〉
+ 
+<product_name>柑</product_name> 
+<product_name>金橘</product_name> 
+<product_name>桃</product_name> 
+<product_name>鶯觜桃</product_name> 
+<product_name>小</product_name> 桃色皆半紅 
+<product_name>李</product_name> 
+<product_name>青李</product_name> 
+<product_name>紅李</product_name>  
+<product_name>紫李</product_name> 
+<product_name>珍</product_name>  
+<product_name>珠</product_name>  
+<product_name>李</product_name> 
+<product_name>花紅</product_name> 
+<product_name>柰</product_name> 
+<product_name>梨</product_name> 
+<product_name>石榴</product_name> 
+<product_name>柿</product_name> 
+<product_name>栗</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>楊梅</product_name>    
+<product_name>櫨</product_name> 本草謂之榠櫨木葉花實酷
+<product_name>類木瓜</product_name>欲辨之看 蒂間别有重蒂如乳者
+<product_name>為木瓜</product_name>無此者為榠櫨  
+<product_name>也</product_name>    
+<product_name>葡萄</product_name> 
+<product_name>蔗</product_name> 
+<product_name>西瓜</product_name> 
+<product_name>土瓜</product_name> 
+<product_name>蓮</product_name> 
+<product_name>菱</product_name> 
+〈藥之屬〉
+ 
+<product_name>黄精</product_name> 
+<product_name>石菖蒲</product_name> 
+<product_name>地黄</product_name> 
+<product_name>麥門冬</product_name> 
+<product_name>薑黄</product_name>    
+<product_name>苦參</product_name> 
+<product_name>艾</product_name> 
+<product_name>紫蘇</product_name> 
+<product_name>薄荷</product_name> 
+<product_name>天南星</product_name> 
+<product_name>牽牛子</product_name> 
+<product_name>車</product_name>   
+<product_name>前子</product_name> 
+<product_name>香附子</product_name> 
+<product_name>香薷</product_name> 
+<product_name>荆芥</product_name> 
+<product_name>何首烏</product_name> 
+<product_name>牛膝</product_name>    
+<product_name>半夏</product_name> 
+<product_name>猴薑</product_name> 
+<product_name>黄蘗</product_name> 
+<product_name>黄連</product_name> 
+<product_name>蒔蘿</product_name> 
+<product_name>茯苓</product_name> 
+<product_name>五倍</product_name>   
+<product_name>子</product_name> 其木青黄色七月結寶無花初青至 而黄内多蟲一名百蟲倉又名黄蛤 
+<product_name>茱萸</product_name> 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>杉</product_name> 
+<product_name>樟</product_name> 
+<product_name>楠</product_name> 
+<product_name>桐</product_name> 
+<product_name>桑</product_name> 
+<product_name>烏桕</product_name>    
+<product_name>冬青</product_name> 
+<product_name>槐</product_name> 
+<product_name>檀</product_name> 
+<product_name>楊</product_name> 
+<product_name>柳</product_name> 
+<product_name>楓</product_name> 
+<product_name>槦</product_name> 
+<product_name>楮</product_name> 
+<product_name>櫧</product_name> 
+<product_name>㯶</product_name> 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 
+<product_name>江南竹</product_name> 
+<product_name>紫竹</product_name> 
+<product_name>黄竹</product_name> 
+<product_name>苦竹</product_name> 
+<product_name>實</product_name>   
+<product_name>竹</product_name> 
+<product_name>可剖為</product_name> 
+<product_name>器用</product_name> 
+<product_name>筋竹</product_name> 
+<product_name>赤竹</product_name> 
+<product_name>節長可</product_name> 
+<product_name>為箭</product_name> 
+<product_name>筀竹</product_name> 
+<product_name>菉竹</product_name> 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>山茶</product_name> 
+<product_name>海常</product_name> 
+<product_name>酴釄</product_name> 
+<product_name>薔</product_name> 
+<product_name>木槿</product_name>    
+<product_name>長春</product_name> 
+<product_name>山丹</product_name> 
+<product_name>梔子</product_name> 
+<product_name>玉樓春</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>玉芙蓉</product_name>    
+<product_name>巖桂</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>芍藥</product_name> 
+<product_name>菊</product_name> 
+<product_name>蘭</product_name> 
+<product_name>萱</product_name> 
+<product_name>蜀葵</product_name> 
+<product_name>玉簪</product_name>    
+<product_name>鷄冠</product_name> 
+<product_name>鳯仙</product_name> 
+<product_name>寶相</product_name> 
+〈草之屬〉
+ 
+<product_name>蒲</product_name> 
+<product_name>蓼</product_name> 
+<product_name>蘋</product_name> 
+<product_name>藻</product_name> 
+<product_name>浮萍</product_name> 
+<product_name>茅</product_name> 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>    
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麂</product_name> 
+<product_name></product_name> 
+<product_name>猴</product_name> 
+<product_name>猿</product_name> 
+<product_name>狸</product_name> 
+<product_name>獺</product_name>    
+<product_name>山羊</product_name> 
+<product_name>山馬</product_name> 
+<product_name>野猪</product_name> 
+<product_name>豪猪</product_name> 
+<product_name>竹䶉</product_name> 
+〈羽之屬〉
+ 
+<product_name>喜鵲</product_name> 
+<product_name>烏</product_name> 
+<product_name>鳩</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name> 
+<product_name>百舌</product_name> 
+<product_name>啄木</product_name>    
+<product_name>畫眉</product_name> 
+<product_name>雀</product_name> 
+<product_name>雉</product_name> 
+<product_name>錦鷄</product_name> 
+<product_name>鷓鴣</product_name> 
+<product_name>杜鵑</product_name> 
+<product_name>伯勞</product_name> 
+<product_name>鷹</product_name>    
+<product_name>鷂</product_name> 
+<product_name>鸛</product_name> 
+<product_name>鷺鷥</product_name> 
+<product_name>鸂鶒</product_name> 
+<product_name>鴛鴦</product_name> 
+<product_name>翡翠</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>鰱</product_name> 
+<product_name>草魚</product_name> 
+<product_name>鰻</product_name> 
+<product_name>鱓</product_name>  
+<product_name>黄顙</product_name> 
+<product_name>疑即</product_name> 
+<product_name>鮎也</product_name> 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蚌</product_name> 
+<product_name>田螺</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>鼃</product_name> 
+<product_name>黽</product_name> 又有石蜦 即石鱗也 
+<product_name>蜈螉</product_name> 
+<product_name>蝙蝠</product_name>    
+<product_name>福寧府</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+〈帛之屬〉
+ 
+<product_name>紬</product_name> 
+<product_name>絹</product_name> 
+<product_name>紗</product_name> 
+<product_name>綾</product_name> 
+<product_name>苧布</product_name> 
+<product_name>蕉布</product_name> 
+<product_name>葛布</product_name> 
+〈貨之屬〉
+ 
+<product_name>鐵</product_name> 
+<product_name>寧德</product_name> 
+<product_name>縣出</product_name> 
+<product_name>鹽</product_name> 
+<product_name>糖</product_name> 
+<product_name>蜜</product_name> 
+<product_name>蠟</product_name> 
+<product_name>藍澱</product_name> 
+<product_name>紅花</product_name>    
+<product_name>紫草</product_name> 
+<product_name>苧</product_name> 
+<product_name>麻</product_name> 
+<product_name>茶</product_name> 
+<product_name>油</product_name> 
+<product_name>麻油</product_name> 
+<product_name>茶油</product_name> 
+<product_name>桐油</product_name> 
+<product_name>桕油</product_name> 
+〈蔬之屬〉
+ 
+<product_name>芥</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>白菜</product_name> 
+<product_name>油菜</product_name> 
+<product_name>蕹菜</product_name> 
+<product_name>菠薐</product_name>    
+<product_name>苦蕒</product_name> 
+<product_name>茼蒿</product_name> 
+<product_name>胡荽</product_name> 
+<product_name>茵蔯</product_name> 
+<product_name>莧</product_name> 
+<product_name>蕨</product_name> 
+<product_name>春不老</product_name>    
+<product_name>薺</product_name> 
+<product_name>茄</product_name> 
+<product_name></product_name> 
+<product_name>芋</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>絲瓜</product_name> 
+<product_name>笋</product_name> 
+<product_name>蕈</product_name> 
+<product_name>山藥</product_name>    
+<product_name>薑</product_name> 
+<product_name>葱</product_name> 
+<product_name>韭</product_name> 
+<product_name>蒜石辣</product_name> 
+<product_name>生山</product_name> 
+<product_name>中</product_name> 
+<product_name>牛唇菜</product_name> 
+<product_name>芹</product_name> 
+<product_name>鹿角</product_name>   
+<product_name>菜</product_name> 
+<product_name>藍菜</product_name> 生海巖上 味甜可食 
+<product_name>石菜</product_name> 
+<product_name>紫菜</product_name> 以
+<product_name>上四菜</product_name> 俱出海鄉 
+〈果之屬〉
+ 
+<product_name>荔枝</product_name> 
+<product_name>龍眼</product_name> 
+<product_name>柑</product_name> 
+<product_name>橙</product_name> 
+<product_name>香櫞</product_name> 
+<product_name>橘</product_name> 
+<product_name>又有</product_name> 
+<product_name>金橘</product_name> 
+<product_name>桃</product_name>    
+<product_name>李</product_name> 
+<product_name>杏</product_name> 
+<product_name>林檎</product_name> 
+<product_name>梨</product_name> 
+<product_name>石榴</product_name> 
+<product_name>柿</product_name> 
+<product_name>棗</product_name> 
+<product_name>栗</product_name> 
+<product_name>楊</product_name>   
+<product_name>桃</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>橄欖</product_name> 
+<product_name>楊梅</product_name> 
+<product_name>菩提果</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>蔗</product_name>    
+<product_name>蓮</product_name> 
+<product_name>菱角</product_name> 
+〈藥之屬〉
+ 
+<product_name>薏苡</product_name> 
+<product_name>地黄</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>麥門冬</product_name> 
+<product_name>艾</product_name> 
+<product_name>茴</product_name>   
+<product_name>香</product_name> 
+<product_name>馬鞭草</product_name> 
+<product_name>牽牛子</product_name> 
+<product_name>車前子</product_name> 
+<product_name>香附子</product_name> 
+<product_name>香薷</product_name>    
+<product_name>半夏</product_name> 
+<product_name>蛇床子</product_name> 
+<product_name>兔絲子</product_name> 
+<product_name>白芷</product_name> 
+<product_name>木鱉子</product_name> 
+<product_name>玄</product_name>   
+<product_name>參</product_name> 
+<product_name>乾葛</product_name> 
+<product_name>吳茱萸</product_name> 
+<product_name>五倍子</product_name> 
+<product_name>紫金藤</product_name> 
+<product_name>使君子</product_name> 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>檜</product_name> 
+<product_name>杉</product_name> 
+<product_name>樟</product_name> 
+<product_name>樺</product_name> 
+<product_name>桐</product_name> 
+<product_name>漆</product_name> 
+<product_name>相</product_name>   
+<product_name>思</product_name> 
+<product_name>桑</product_name> 
+<product_name>柘</product_name> 
+<product_name>冬青</product_name> 
+<product_name>槐</product_name> 
+<product_name>柳</product_name> 
+<product_name>楓</product_name> 
+<product_name>榕</product_name> 
+<product_name>朴</product_name> 
+<product_name>黄</product_name>   
+<product_name>櫸</product_name> 
+<product_name>㯶櫚</product_name> 
+<product_name>牡桂</product_name> 
+<product_name>有</product_name> 
+<product_name>油</product_name>  
+<product_name>吉兆藤</product_name> 
+<product_name>拏藤</product_name> 附本而生甚長性 亦柔韌土人多取  
+<product_name>以為縛</product_name>  
+<product_name>束之用</product_name> 
+<product_name>黄藤</product_name> 可束屋拄 又名水藤 
+<product_name>臚藤</product_name> 
+<product_name>鼈藤</product_name> 
+<product_name>俱可</product_name> 
+<product_name>毒魚</product_name> 
+<product_name>鷄翁藤</product_name>    
+<product_name>金剛藤</product_name> 
+<product_name>黄爽藤</product_name> 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 
+<product_name>江南竹</product_name> 
+<product_name>慈竹</product_name> 
+<product_name>方竹</product_name> 
+<product_name>斑竹</product_name> 
+<product_name>苦</product_name>   
+<product_name>竹</product_name> 
+<product_name>石竹</product_name> 
+<product_name>緑竹</product_name> 
+<product_name>箭竹</product_name> 
+<product_name>調絲竹</product_name> 節疎性柔 可作器用 
+<product_name>紫竹</product_name>    
+<product_name>赤竹</product_name> 
+<product_name>筋竹</product_name> 
+<product_name>桃竹</product_name> 
+<product_name>含竹</product_name> 
+<product_name>豁竹</product_name> 
+<product_name>觀音竹</product_name>    
+<product_name>人面竹</product_name> 
+<product_name>羅漢竹</product_name> 
+<product_name>䇹竹</product_name> 
+<product_name>槌竹</product_name> 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>山茶</product_name> 
+<product_name>有紅白</product_name> 
+<product_name>百葉者</product_name> 
+<product_name>海常</product_name> 
+<product_name>酴醿</product_name> 
+<product_name>薔薇</product_name> 
+<product_name>木</product_name>   
+<product_name>香</product_name> 
+<product_name>長春</product_name> 
+<product_name>杜鵑</product_name> 
+<product_name>山丹</product_name> 
+<product_name>山梔</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>素馨</product_name>    
+<product_name>木芙蓉</product_name> 
+<product_name>巖桂</product_name> 
+<product_name>瑞香</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>鳯尾</product_name> 
+<product_name>牡丹</product_name> 
+<product_name>芍</product_name>   
+<product_name>藥</product_name> 
+<product_name>菊</product_name> 
+<product_name>蘭</product_name> 
+<product_name>萱</product_name> 
+<product_name>蜀葵</product_name> 
+<product_name>水仙</product_name> 
+<product_name>鶴頂紅</product_name> 
+<product_name>鷄冠</product_name>    
+<product_name>金鳯</product_name> 
+<product_name>金錢</product_name> 
+<product_name>剪春羅</product_name> 
+<product_name>罌粟</product_name> 
+〈草之屬〉
+ 
+<product_name>蒲</product_name> 
+<product_name>茭</product_name> 
+<product_name>浮萍</product_name> 
+<product_name>蕢</product_name> 
+<product_name>蘆蘇</product_name> 
+<product_name>可為</product_name> 
+<product_name>席</product_name> 
+<product_name>茅</product_name> 
+<product_name>通草</product_name>    
+<product_name>龍鬚</product_name> 
+<product_name>虎耳</product_name> 
+<product_name>鳯尾</product_name> 
+<product_name>前刀草</product_name> 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>    
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>熊</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麞</product_name> 
+<product_name>麂</product_name> 
+<product_name>豺</product_name> 
+<product_name></product_name> 
+<product_name>猴</product_name>    
+<product_name>狸</product_name> 
+<product_name>狐</product_name> 
+<product_name>獺</product_name> 
+<product_name>山牛</product_name> 
+<product_name>山狗</product_name> 
+<product_name>野猪</product_name> 
+<product_name>豪猪</product_name> 
+<product_name>野</product_name>   
+<product_name>猫</product_name> 
+<product_name>猩猩</product_name> 寧德縣史提寺 林中常有之 
+<product_name>竹䶉</product_name> 
+<product_name>以上各</product_name> 
+<product_name>縣俱有</product_name> 
+<product_name>玉面狸</product_name> 
+<product_name>壽寧</product_name> 
+<product_name>多有</product_name> 
+〈羽之屬〉
+ 
+<product_name>喜鵲</product_name> 
+<product_name>烏</product_name> 
+<product_name>鳩</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name> 
+<product_name>山呼</product_name>    
+<product_name>拖白練</product_name> 
+<product_name>練雀</product_name> 
+<product_name>也</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>雀</product_name> 
+<product_name>雉</product_name> 
+<product_name>白鷴</product_name> 
+<product_name>鷓鴣</product_name> 
+<product_name>鷯鶉</product_name>    
+<product_name>鴈</product_name> 
+<product_name>鵜鶘</product_name> 
+<product_name>鴛鴦</product_name> 
+<product_name>翠鳥</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>鱸</product_name> 
+<product_name>鱖</product_name> 
+<product_name>草魚</product_name>   
+<product_name>鰻</product_name> 
+<product_name>鱔</product_name> 
+<product_name>以上生</product_name> 
+<product_name>池澤中</product_name> 
+<product_name>鯊</product_name> 
+<product_name>青鯊</product_name> 
+<product_name>黄</product_name> 
+<product_name>鯊</product_name> 
+<product_name>鮫鯊</product_name> 
+<product_name>鰣</product_name> 
+<product_name>石首</product_name> 
+<product_name>鯧</product_name> 
+<product_name>鯧鯿</product_name>    
+<product_name>子魚</product_name> 
+<product_name>黄魚</product_name> 
+<product_name>銀魚</product_name>  <img n="145">  
+<product_name>2</product_name> 
+<product_name>馬鮫</product_name> 
+<product_name>白刀</product_name>    
+<product_name>魟</product_name>  
+<product_name>3</product_name> 
+<product_name>魴</product_name> 
+<product_name>黄雀</product_name> 
+<product_name>疆塗</product_name> 
+<product_name>俗名</product_name> 
+<product_name>跳魚</product_name> 
+<product_name>白頰</product_name> 
+<product_name>似跳魚</product_name> 
+<product_name>而色白</product_name> 
+<product_name>章魚</product_name>    
+<product_name>石拒</product_name> 
+<product_name>鎻管</product_name> 
+<product_name>烏賊</product_name> 
+<product_name>水母</product_name> 
+<product_name>蝦</product_name> 
+<product_name>對蝦</product_name> 
+<product_name>白蝦</product_name>  
+<product_name>黄蝦</product_name> 
+<product_name>苗蝦以</product_name>  
+<product_name>上各縣</product_name>  
+<product_name>俱有</product_name> 
+<product_name>寸金魚</product_name> 色黄長寸許岀 寕德縣七都 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>以上生</product_name> 
+<product_name>池澤中</product_name> 
+<product_name>鱟</product_name> 
+<product_name>蟳</product_name> 
+<product_name>䘂</product_name> 
+<product_name>蠣</product_name> 
+<product_name>車</product_name>   
+<product_name>螫</product_name> 
+<product_name>蚶</product_name> 
+<product_name>蟶</product_name> 
+<product_name>蛤</product_name> 
+<product_name>西施舌</product_name> 
+<product_name>蚌</product_name> 
+<product_name>海月</product_name> 
+<product_name>江珧柱</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>鼃</product_name> 
+<product_name>黽</product_name> 
+<product_name>又有田</product_name> 
+<product_name>鷄石鱗</product_name> 
+<product_name>蟾蜍</product_name> 
+<product_name>蜈蚣</product_name> 
+<product_name>蝙蝠</product_name>    
+<product_name>臺灣府</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 
+<product_name>黍</product_name> 
+<product_name>黄栗</product_name> 
+<product_name>稷之</product_name> 
+<product_name>别名</product_name> 
+<product_name>麥</product_name> 
+<product_name>豆</product_name> 
+<product_name>脂麻</product_name> 
+〈帛之屬〉
+ 
+<product_name>毛被</product_name> 土民以獸 
+<product_name>毛為之</product_name> 
+<product_name>棉布</product_name> 
+<product_name>苧布</product_name> 
+<product_name>麻布</product_name> 
+〈貨之屬〉
+ 
+<product_name>鹽</product_name> 
+<product_name>糖</product_name> 
+<product_name>氷糖</product_name> 
+<product_name>藍澱</product_name> 
+<product_name>苧</product_name> 
+<product_name>麻</product_name> 
+<product_name>油</product_name> 
+<product_name>藤</product_name>  
+<product_name>有大藤</product_name>  
+<product_name>有科藤</product_name> 
+<product_name>菁</product_name> 
+<product_name>産於臺</product_name> 
+<product_name>者最佳</product_name> 
+<product_name>薯榔</product_name> 
+〈蔬之屬〉
+ 
+<product_name>芥</product_name> 
+<product_name>白菜</product_name> 
+<product_name>芥藍</product_name> 
+<product_name>蕹菜</product_name> 
+<product_name>菠稜</product_name> 
+<product_name>莙薘</product_name>    
+<product_name>茼蒿</product_name> 
+<product_name>胡荽</product_name> 
+<product_name>莧</product_name> 
+<product_name>茄</product_name> 
+<product_name>瓠</product_name> 
+<product_name>芋</product_name> 
+<product_name>大於内</product_name> 
+<product_name>地數倍</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>莦</product_name>   
+<product_name>瓜</product_name> 
+<product_name>菜瓜</product_name> 
+<product_name>苦瓜</product_name> 
+<product_name>金瓜</product_name> 
+<product_name>笋</product_name> 
+<product_name>薯</product_name> 
+<product_name>有紫白</product_name> 
+<product_name>二種</product_name> 
+<product_name>番薯</product_name>    
+<product_name>薯蕷</product_name> 
+<product_name>香芋</product_name> 
+<product_name>六月菜</product_name> 
+<product_name>頭白子</product_name> 
+<product_name>可入藥</product_name> 
+<product_name>菜</product_name> 蔓生一名 
+<product_name>浮藤菜</product_name> 
+<product_name>薑</product_name>    
+<product_name>葱</product_name> 
+<product_name>韭</product_name> 
+<product_name>薤</product_name> 
+<product_name>蒜</product_name> 
+<product_name>水芹</product_name> 
+<product_name>紫菜</product_name> 
+<product_name>赤菜</product_name> 
+<product_name>海粉</product_name>    
+<product_name>長豆</product_name> 
+<product_name>加説豆</product_name> 
+<product_name>刀豆</product_name> 
+<product_name>乳豆</product_name> 
+〈果之屬〉
+ 
+<product_name>檨</product_name> 紅毛從日本國移來之種實如猪腰狀五 六月盛有香檨木檨肉檨三種即外國  所載南方有果其味甘  其色黄其根在核是也 
+<product_name>波羅蜜</product_name> 亦荷蘭國移來者實 生於樹幹上皮似如  來頂剖而  食甘如蜜 
+<product_name>鳯梨</product_name> 葉似蒲而濶两旁有刺果生於叢心 中皮似波羅蜜色黄味酸甘果木有  葉一簇可粧  成鳯故名之 
+<product_name>桺子</product_name> 樹高數丈直起無枝殻堅勁可作 瓢殻外有衣肉在殻内色白味似  乳可以釀酒中有  水甚多俗呼榔酒 
+<product_name>㯽榔</product_name> 向陽曰㯽榔向隂曰大腹實 可入藥實如鷄心和荖藤食  之能醉人可以袪瘴  人有故則奉以為禮 
+<product_name>荖藤</product_name> 蔓生味辛和 㯽榔食之 
+<product_name>柚</product_name> 
+<product_name>桃</product_name> 
+<product_name>梅</product_name>   
+<product_name>子</product_name> 
+<product_name>石榴</product_name> 
+<product_name>番石榴</product_name> 
+<product_name>即梨</product_name> 
+<product_name>仔苃</product_name> 
+<product_name>柑仔蜜</product_name> 形如柿細如橘 可和糖煮茶品 
+<product_name>番</product_name>   
+<product_name>杮</product_name> 形似柿皮有毛俗 呼為毛柿西域種 
+<product_name>葡萄</product_name> 
+<product_name>芭蕉</product_name> 
+<product_name>桄榔子</product_name> 
+<product_name>結實五</product_name> 
+<product_name>月土</product_name>  民即種埔尖是歳子若  多生是歳穀亦有年 
+<product_name>蔗</product_name> 
+<product_name>香櫞</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>西瓜</product_name> 
+<product_name>秋</product_name> 
+<product_name>種</product_name>  冬與内  
+<product_name>郡不同</product_name> 
+〈藥之屬〉
+ 
+<product_name>薏苡</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>薄荷</product_name> 
+<product_name>艾</product_name> 
+<product_name>萞麻子</product_name> 
+<product_name>車</product_name>   
+<product_name>前子</product_name> 
+<product_name>香附子</product_name> 
+<product_name>石決明</product_name> 
+<product_name>益母草</product_name> 
+<product_name>茯苓</product_name> 
+<product_name>桕菰</product_name>    
+<product_name>藍茶菰</product_name> 
+<product_name>三柰</product_name> 
+<product_name>藕節</product_name> 
+<product_name>地骨灰</product_name> 
+<product_name>穿山龍</product_name> 
+<product_name>木</product_name>   
+<product_name>通</product_name> 
+<product_name>扁豆</product_name> 
+<product_name>金銀花</product_name> 
+<product_name>燭</product_name> 生水中形 如燭故名 
+<product_name>蛇草</product_name> 
+<product_name>木賊</product_name>    
+<product_name>蒲公英</product_name> 
+<product_name>澤蘭</product_name> 班節相思 
+<product_name>白鷄冠</product_name> 
+<product_name>蒼耳子</product_name> 
+<product_name>即</product_name> 
+<product_name>羊</product_name>  
+<product_name>帶</product_name>  
+<product_name>來</product_name> 
+<product_name>急性子</product_name> 
+<product_name>草果</product_name> 
+<product_name>蟬退</product_name> 
+<product_name>白蒺藜</product_name> 
+<product_name>通草</product_name> 
+<product_name>鹿茸</product_name>  鹿角之初  發而茸者 
+<product_name>鹿角膠</product_name> 
+<product_name>鹿角霜</product_name> 即煑膠之 
+<product_name>角渣也</product_name> 
+<product_name>穿山甲</product_name> 
+<product_name>即鮫</product_name> 
+<product_name>鯉甲</product_name> 
+〈木之屬〉
+ 
+<product_name>樟</product_name> 
+<product_name>楠</product_name> 
+<product_name>厚栗</product_name> 
+<product_name>百日青</product_name> 雖枯而色 如生故名 
+<product_name>柳</product_name> 
+<product_name>樸</product_name>    
+<product_name>赤鱗</product_name> 
+<product_name>烏栽</product_name> 
+<product_name>象齒</product_name> 
+<product_name>木硬</product_name> 
+<product_name>而直</product_name> 
+<product_name>埔柿</product_name> 
+<product_name>山荔</product_name> 
+<product_name>無</product_name> 
+<product_name>花</product_name> 
+<product_name>埔荆</product_name> 
+<product_name>即</product_name> 
+<product_name>埔</product_name>  
+<product_name>薑</product_name>   
+<product_name>苦楝</product_name> 
+<product_name>桕</product_name> 
+<product_name>黄目子</product_name> 
+<product_name>茄藤</product_name> 
+<product_name>林茶</product_name> 
+<product_name>土杉</product_name> 
+<product_name>水</product_name>   
+<product_name>漆</product_name> 
+<product_name>九芎</product_name> 
+〈竹之屬〉
+ 
+<product_name>箣竹</product_name> 
+<product_name>長枝竹</product_name> 
+<product_name>鳯尾竹</product_name> 
+〈花之屬〉
+ 
+<product_name>梅</product_name> 
+<product_name>海棠</product_name> 
+<product_name>薔藢</product_name> 
+<product_name>佛桑</product_name> 
+<product_name>長春</product_name> 
+<product_name>麗春</product_name>    
+<product_name>山丹</product_name> 
+<product_name>三友花</product_name> 
+<product_name>俗呼番</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>芙蓉</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>千日紅</product_name> 
+<product_name>一</product_name>   
+<product_name>丈紅</product_name> 
+<product_name>菊</product_name> 
+<product_name>樹蘭</product_name> 有四葉六 
+<product_name>葉二種</product_name> 
+<product_name>番蘭</product_name> 
+<product_name>花如</product_name> 
+<product_name>蕙</product_name> 夜合鷄冠    
+<product_name>指甲</product_name> 
+<product_name>金錢</product_name> 
+<product_name>桃</product_name> 
+<product_name>蓮</product_name> 
+<product_name>百葉榴</product_name> 
+<product_name>水錦</product_name> 
+<product_name>唐棣</product_name>    
+<product_name>玉樓春</product_name> 
+<product_name>末麗</product_name> 金絲蝴蝶 
+<product_name>玉芙蓉</product_name> 
+<product_name>鼓子</product_name> 
+<product_name>一名</product_name> 
+<product_name>龍船</product_name>  
+<product_name>花</product_name>   
+<product_name>蓮蕉</product_name> 
+<product_name>鹿葱</product_name> 
+<product_name>月下香</product_name> 
+<product_name>金銀花</product_name> 
+<product_name>素馨</product_name> 
+<product_name>免絲</product_name>  
+<product_name>一名</product_name>  
+<product_name>凌霄</product_name> 
+<product_name>老來嬌</product_name> 
+<product_name>曇花</product_name> 
+〈草之屬〉
+ 
+<product_name>仙草</product_name> 
+<product_name>鼠麯</product_name> 
+<product_name>白麯草</product_name> 
+<product_name>瓶桃草</product_name> 
+<product_name>乳草</product_name>    
+<product_name>仙人掌</product_name> 
+<product_name>蘋</product_name> 
+<product_name>藻</product_name> 
+<product_name>龍舌</product_name> 
+<product_name>旱蓮</product_name> 
+<product_name>遍地錦</product_name> 
+<product_name>虎</product_name>   
+<product_name>耳</product_name> 
+<product_name>鳯尾</product_name> 
+〈畜之屬〉
+ 
+<product_name>牛</product_name> 
+<product_name>犬</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name> 
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+<product_name>鵓</product_name>   
+<product_name>鴿</product_name> 
+〈毛之屬〉
+ 
+<product_name>金錢豹</product_name> 
+<product_name>似豹</product_name> 
+<product_name>而小</product_name> 
+<product_name>猪母熊</product_name> 
+<product_name>麋</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麂</product_name> 
+<product_name>麕</product_name> 
+<product_name>即</product_name> 
+<product_name>麞</product_name>   <img n="146"> 
+<product_name>似鹿</product_name> 
+<product_name>而犬</product_name> 
+<product_name>兔</product_name> 
+<product_name>猴</product_name> 
+<product_name>山猪</product_name> 
+<product_name>獺</product_name> 
+〈羽之屬〉
+ 
+<product_name>烏</product_name> 
+<product_name>鳩</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>布穀</product_name> 
+<product_name>畫眉</product_name>    
+<product_name>白頭公</product_name> 
+<product_name>鶺鴒</product_name> 
+<product_name>雀</product_name> 
+<product_name>雉</product_name> 
+<product_name>竹鷄</product_name> 
+<product_name>盧鷄</product_name> 
+<product_name>海鷄母</product_name>    
+<product_name>鷹</product_name> 
+<product_name>鳬</product_name> 
+<product_name>鷗</product_name> 
+<product_name>釣魚</product_name>翁 
+<product_name>白鷺</product_name> 
+<product_name>伯勞</product_name> 
+<product_name>鵒烏鬚</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>海翁</product_name> 
+<product_name>極大能</product_name> 
+<product_name>吞舟</product_name> 
+<product_name>鯽</product_name> 
+<product_name>泥</product_name> 
+<product_name>2魚</product_name> 
+<product_name>烏魚</product_name> 
+<product_name>鯊</product_name>   
+<product_name>魚</product_name> 
+<product_name>鰢鮫</product_name> 
+<product_name>鯧魚</product_name> 
+<product_name>魚</product_name> 
+<product_name>麻虱目</product_name> 
+<product_name>觔魚</product_name> 
+<product_name>烏耳</product_name>   
+<product_name>鰻</product_name> 
+<product_name>紅紗魚</product_name> 
+<product_name>䱕魚</product_name> 
+<product_name>烏頰</product_name> 
+<product_name>海鰻</product_name> 
+<product_name>貼沙魚</product_name> 
+<product_name>金</product_name>   
+<product_name>鐘仔</product_name> 
+<product_name>銀魚</product_name> 
+<product_name>龍鮎</product_name> 
+<product_name>鸚哥魚</product_name> 
+<product_name>油魚</product_name> 
+<product_name>鱖魚</product_name> 
+<product_name></product_name>   
+<product_name>魚</product_name> 
+<product_name>鱠魚</product_name> 
+<product_name>獅刀</product_name> 
+<product_name>鰛魚</product_name> 
+<product_name>花鈴</product_name> 
+<product_name>金錢魚</product_name> 
+<product_name>斗尾</product_name>   
+<product_name>魚</product_name> 
+<product_name>狗母魚</product_name> 
+<product_name>鐵甲魚</product_name> 
+<product_name>䱋魚</product_name>  <img n="147">魚  
+<product_name>2魚</product_name> 
+<product_name>青</product_name>   
+<product_name>鱗</product_name> 
+<product_name>飼子飯</product_name> 無細骨可和 飯以飼幼子 
+<product_name>繩魚</product_name> 
+<product_name>鮡魚</product_name> 
+<product_name>鱺魚</product_name> 
+<product_name>鱔</product_name>   
+<product_name>魚</product_name> 
+<product_name>梭魚</product_name> 
+<product_name>水尖</product_name> 
+<product_name>遍身苦</product_name> 
+<product_name>白腹</product_name> 
+<product_name>紅蝦</product_name> 
+<product_name>黄梔</product_name>   
+<product_name>米</product_name> 
+<product_name>大脚蝦</product_name> 
+<product_name>章魚</product_name> 
+<product_name>石拒</product_name> 
+<product_name>烏賊</product_name> 
+<product_name>鎻管</product_name> 
+<product_name>鯪鯉</product_name> 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>蚌</product_name> 
+<product_name>鱟</product_name> 
+<product_name>蟳</product_name> 
+<product_name>牡礪</product_name> 
+<product_name>蚶</product_name>    
+<product_name>蛤</product_name> 
+<product_name>空豸</product_name> 
+<product_name>紅粟</product_name> 
+<product_name>土杯</product_name> 
+<product_name>蟯</product_name> 
+<product_name>仙人掌</product_name> 
+<product_name>硨磲</product_name>    
+<product_name>螺</product_name> 
+<product_name>大螺</product_name> 
+<product_name>紅螺</product_name> 
+<product_name>香螺</product_name> 
+<product_name>麥螺</product_name> 
+<product_name>珠螺</product_name> 
+<product_name>虎螺</product_name>  
+<product_name>海膽</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>蜥蜴</product_name> 
+<product_name>蜈蚣</product_name> 
+<product_name>蝙蝠</product_name> 
+<product_name>水蛙</product_name> 
+<product_name>螽斯</product_name>    
+<product_name>永春州</product_name> 
+〈穀之屬〉
+ 
+<product_name>早稻</product_name> 
+<product_name>晚稻</product_name> 
+<product_name>大冬</product_name> 
+<product_name>寄種</product_name> 
+<product_name>青晚</product_name> 
+<product_name>早秫</product_name>    
+<product_name>大麥</product_name> 
+<product_name>小麥</product_name> 
+〈帛之屬〉
+ 
+<product_name>絹</product_name> 
+<product_name>冬布</product_name> 
+<product_name>黄麻布</product_name> 
+<product_name>青麻布</product_name> 
+<product_name>苧布</product_name> 
+<product_name>蕉</product_name>   
+<product_name>布</product_name> 
+<product_name>葛布</product_name> 
+<product_name>出州及</product_name> 
+<product_name>德化</product_name> 
+〈貨之屬〉
+ 
+<product_name>鐵</product_name> 
+<product_name>州及德</product_name> 
+<product_name>化縣岀</product_name> 
+<product_name>黄麻</product_name> 
+<product_name>青麻</product_name> 
+<product_name>茶</product_name> 
+<product_name></product_name> 
+<product_name>茶油</product_name>    
+<product_name>桐油</product_name> 
+<product_name>草蓆</product_name> 
+<product_name>糖</product_name> 
+<product_name>蜜</product_name> 
+<product_name>木棉</product_name> 
+<product_name>漆</product_name> 
+<product_name>鉛</product_name> 
+<product_name>岀大</product_name> 
+<product_name>田縣</product_name> 
+<product_name>白磁</product_name>   
+<product_name>器</product_name> 
+<product_name>出德</product_name> 
+<product_name>化縣</product_name> 
+〈蔬之屬〉
+ 
+<product_name>蘿蔔</product_name> 
+<product_name>芥</product_name> 
+<product_name>莧</product_name> 
+<product_name>甕菜</product_name> 
+<product_name>苦蕒菜</product_name> 
+<product_name>芹菜</product_name>    
+<product_name>茼蒿</product_name> 
+<product_name>園荽</product_name> 
+<product_name>蒼薘</product_name> 
+<product_name>蕨</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>蒜</product_name> 
+<product_name>葱</product_name> 
+<product_name>薤</product_name>    
+<product_name>薯</product_name> 
+<product_name>芋</product_name> 
+<product_name>瓠</product_name> 
+<product_name>笋</product_name> 
+<product_name>薑</product_name> 
+<product_name>茄</product_name> 
+<product_name>菰</product_name> 
+〈果之屬〉
+ 
+<product_name>桃</product_name> 
+<product_name>李</product_name> 
+<product_name>栗</product_name> 
+<product_name>柿</product_name> 
+<product_name>甘蔗</product_name> 
+<product_name>枇杷</product_name> 
+<product_name>香櫞</product_name>    
+<product_name>金橘</product_name> 
+<product_name>石榴</product_name> 
+<product_name>橄欖</product_name> 
+<product_name>鷄頭子</product_name> 
+<product_name>柑</product_name> 
+<product_name>蕉</product_name> 
+<product_name>西瓜</product_name>    
+<product_name>甜瓜</product_name> 
+<product_name>通瓜</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>楊桃</product_name> 
+<product_name>龍眼</product_name> 
+<product_name>菱角</product_name> 
+<product_name>芡實</product_name>  
+<product_name>出大</product_name>  
+<product_name>田縣</product_name> 
+〈藥之屬〉
+ 
+<product_name>金櫻子</product_name> 
+<product_name>香附子</product_name> 
+<product_name>半夏</product_name> 
+<product_name>天南星</product_name> 
+<product_name>天門</product_name>   
+<product_name>冬</product_name> 
+<product_name>山梔子</product_name> 
+<product_name>艾</product_name> 
+<product_name>山藥</product_name> 
+<product_name>薏苡</product_name> 
+<product_name>紫蘇</product_name> 
+<product_name>薄荷</product_name>    
+<product_name>決明子</product_name> 
+<product_name>枳殻</product_name> 
+<product_name>枸杞</product_name> 
+<product_name>菖蒲</product_name> 
+<product_name>乾薑</product_name> 
+<product_name>地骨皮</product_name>    
+<product_name>桑寄生</product_name> 
+<product_name>木賊</product_name> 
+<product_name>黄連</product_name> 
+<product_name>出大</product_name> 
+<product_name>田縣</product_name> 
+<product_name>瓜蔞</product_name> 
+<product_name>川芎</product_name> 
+<product_name>益母</product_name>    
+<product_name>車前子</product_name> 
+<product_name>何首烏</product_name> 
+<product_name>馬鞭草</product_name> 
+<product_name>黑牽牛</product_name> 
+<product_name>吳茱萸</product_name>  
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>杉</product_name> 
+<product_name>栢</product_name> 
+<product_name>檜</product_name> 
+<product_name>㯶櫚</product_name> 
+<product_name>苦楝</product_name> 
+<product_name>楓</product_name> 
+<product_name>樟</product_name>    
+<product_name>杜松</product_name> 
+<product_name>椿</product_name> 
+<product_name>檺</product_name> 
+<product_name>槐</product_name> 
+<product_name>桐</product_name> 
+<product_name>肥皂</product_name> 
+<product_name>烏桕</product_name> 
+<product_name>柯</product_name>    
+<product_name>桑</product_name> 
+<product_name>柳</product_name> 
+<product_name>櫸柳</product_name> 
+<product_name>相思</product_name> 
+<product_name>榕</product_name> 
+<product_name>椒</product_name> 
+<product_name>棗</product_name> 
+〈竹之屬〉
+ 
+<product_name>猫竹</product_name> 
+<product_name>石竹</product_name> 
+<product_name>赤竹</product_name> 
+<product_name>筀竹</product_name> 
+<product_name>緑竹</product_name> 
+<product_name>苦竹</product_name>    
+<product_name>筠</product_name> 
+<product_name>斑</product_name> 
+<product_name>紫竹</product_name> 
+<product_name>盧竹</product_name> 叢生濕處 溪澗最多 
+<product_name>觀音竹</product_name> 
+<product_name>雪竹</product_name>  
+<product_name>笋秋</product_name>  
+<product_name>生</product_name> 
+〈花之屬〉
+ 
+<product_name>素馨</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>薔薇</product_name> 
+<product_name>海棠</product_name> 
+<product_name>山茶</product_name> 
+<product_name>麗春</product_name>    
+<product_name>瑞香</product_name> 
+<product_name>桂花</product_name> 
+<product_name>葵花</product_name> 
+<product_name>菊花</product_name> 
+<product_name>梅花</product_name> 
+<product_name>蘭花</product_name> 
+<product_name>榴</product_name>   
+<product_name>花</product_name> 
+<product_name>仙丹</product_name> 
+<product_name>鷄冠</product_name> 
+<product_name>芙蓉花</product_name> 初開甚白向晚則色轉 爲紅知縣葉振甲有詩  云官池澄紫藻佳卉映芳叢葉展當年緑花翻舊日  紅包含金鑿落瓣吐玉玲瓏換骨居瑶島奔身向月  宮春暮花  
+<product_name>開玉秋</product_name> 
+<product_name>杜鵑</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>丹槿</product_name> 
+<product_name>玉樓春</product_name> 
+〈草之屬〉
+ 
+<product_name>芝</product_name> 
+<product_name>茅</product_name> 
+<product_name>萍</product_name> 
+<product_name>藻</product_name> 
+<product_name>仙草</product_name> 
+<product_name>蒲</product_name> 
+<product_name>紫草</product_name> 
+<product_name>大</product_name>   
+<product_name>楓草</product_name> 
+<product_name>接骨草</product_name> 
+<product_name>鎗刀草</product_name> 
+<product_name>淡酸草</product_name> 
+<product_name>鳯尾草</product_name> 
+<product_name>虎</product_name>   
+<product_name>耳草</product_name> 
+<product_name>燈籠草</product_name> 
+<product_name>燈心草</product_name> 
+<product_name>耳鈎草</product_name> 
+<product_name>斷腸草</product_name> 
+<product_name>萱</product_name>   
+<product_name>草</product_name> 
+<product_name>蓼</product_name> 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>犬</product_name> 
+<product_name>豕</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name> 
+<product_name>鵝</product_name>    
+<product_name>鴨</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>麂</product_name> 
+<product_name>麞</product_name> 
+<product_name>熊</product_name> 
+<product_name>豺</product_name> 
+<product_name>狼</product_name> 
+<product_name>兔</product_name> 
+<product_name>猴</product_name>    
+<product_name>蝟</product_name> 
+<product_name>狐</product_name> 
+<product_name>獺</product_name> 
+<product_name>猿</product_name> 
+<product_name>鼠</product_name> 
+<product_name>山羊</product_name> 
+<product_name>野猪</product_name> 
+〈羽之屬〉
+ 
+<product_name>喜鵲</product_name> 
+<product_name>布穀</product_name> 
+<product_name>鴝鵒</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>伯勞</product_name> 
+<product_name>鷓鴣</product_name>    
+<product_name>鸕鷀</product_name> 
+<product_name>杜鵑</product_name> 
+<product_name>烏鴉</product_name> 
+<product_name>斑鳩</product_name> 
+<product_name>鶺鴒</product_name> 
+<product_name>百舌</product_name> 
+<product_name>鴛</product_name>   
+<product_name>鴦</product_name> 
+<product_name>鶯</product_name> 
+<product_name>燕</product_name> 
+<product_name>雉</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>鱔</product_name> 
+<product_name>鯽魚</product_name> 
+<product_name>鰱魚</product_name> 
+<product_name>草魚</product_name> 
+<product_name>鮎魚</product_name> 
+<product_name>鰻</product_name>   
+<product_name>魚</product_name>  <img n="148">魚 
+〈介之屬〉
+ 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>螺</product_name> 
+<product_name>蚌</product_name> 
+<product_name>穿山甲</product_name> 
+<product_name>蝦</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蜂</product_name> 
+<product_name>蟻</product_name> 
+<product_name>蝶</product_name> 
+<product_name>螢</product_name> 
+<product_name>蠅</product_name> 
+<product_name>蚊</product_name> 
+<product_name>蛇</product_name> 
+<product_name>螳螂</product_name>    
+<product_name>虺</product_name> 
+<product_name>蜣蜋</product_name> 
+<product_name>蟋蟀</product_name> 
+<product_name>蝦蟇</product_name> 
+<product_name>蚯蚓</product_name> 
+<product_name>蜘蛛</product_name> 
+<product_name>蝙蝠</product_name>    
+<product_name>螻蛄</product_name>    
+<product_name>龍巖州</product_name> 
+〈穀之屬〉
+ 
+<product_name>稻</product_name> 其品三曰黏 曰秔曰秫 
+<product_name>麥</product_name> 
+<product_name>大小</product_name> 
+<product_name>二種</product_name> 
+<product_name>豆</product_name> 烏白黄緑 
+<product_name>凡數種</product_name> 
+<product_name></product_name> 
+<product_name>結穗</product_name> 
+<product_name>如稻</product_name>  
+<product_name>散垂而</product_name>  
+<product_name>不毛</product_name> 
+<product_name>稷</product_name> 
+<product_name>種有稉</product_name> 
+<product_name>有稬</product_name> 
+<product_name>粟</product_name> 其種不一其 粒比梁差小 
+<product_name>梁</product_name> 
+<product_name>青白</product_name> 
+<product_name>二種</product_name> 
+<product_name>脂麻</product_name> 
+<product_name>黑白</product_name> 
+<product_name>二種</product_name>   
+<product_name>番稻</product_name> 番人刀耕火 種味尤香美 
+〈帛之屬〉
+ 
+<product_name>苧布</product_name> 
+<product_name>葛布</product_name> 
+<product_name>手巾</product_name> 
+〈貨之屬〉
+ 
+<product_name>菸</product_name> 俗云芬草崇禎初年 始種之邇來寖盛 
+<product_name>漆枕</product_name> 
+<product_name>漆木盆</product_name> 
+<product_name>漆</product_name>   
+<product_name>護手</product_name> 
+<product_name>俗云</product_name> 
+<product_name>靠板</product_name> 
+<product_name></product_name> 連四號出 吳地者佳 
+<product_name>鉛</product_name> 出三井林并 節惠粗坑 
+<product_name>鐵冶</product_name> 
+<product_name>萬安龍</product_name> 
+<product_name>門等處</product_name>  
+<product_name>在在</product_name>  
+<product_name>有之</product_name> 
+〈蔬之屬〉
+ 
+<product_name>薑</product_name> 
+<product_name>葱</product_name> 
+<product_name>薤</product_name> 
+<product_name>韭</product_name> 
+<product_name>蒜</product_name> 
+<product_name>胡荽</product_name> 一名芫荽 最發痘 
+<product_name>芥</product_name>  
+<product_name>青白紅</product_name>  
+<product_name>三種</product_name> 
+<product_name>芥藍</product_name> 
+<product_name>芋</product_name> 
+<product_name>薯</product_name> 
+<product_name>紅白</product_name> 
+<product_name>二種</product_name> 
+<product_name>莧</product_name> 
+<product_name>青紫</product_name> 
+<product_name>二種</product_name> 
+<product_name>馬齒莧</product_name> 
+<product_name>莙薘</product_name>  莖燒灰淋汁  洗衣色如玉 
+<product_name>菁菜</product_name> 
+<product_name>即萵</product_name> 
+<product_name>苣</product_name> 
+<product_name>茼蒿</product_name> 
+<product_name>菠薐</product_name> 
+<product_name>蘿蔔</product_name> 
+<product_name>太小</product_name> 
+<product_name>二種</product_name> 
+<product_name>蕹</product_name>   
+<product_name>菜</product_name> 
+<product_name>浮藤菜</product_name> 
+<product_name>作</product_name> 
+<product_name>最滑</product_name> 
+<product_name>芹菜</product_name> 
+<product_name>茄</product_name> 
+<product_name>白紫</product_name> 
+<product_name>二種</product_name> 
+<product_name>蔊菜</product_name> 生山澗泉石 間根葉皆佳   
+<product_name>香蕈</product_name> 番人斬楠木於深山雨雪滋 凍則生蕈俗呼曰香菰木耳 
+<product_name>石耳</product_name> 石上生者 俗呼石菰 
+<product_name>松</product_name>   
+<product_name>菌</product_name> 
+<product_name>蕨笋</product_name> 緑笋最佳雪笋 次之筀笋又次 
+<product_name>苦蕒</product_name> 本草云可 
+<product_name>療蛇傷</product_name> 
+〈果之屬〉
+ 
+<product_name>桃</product_name> 
+<product_name>鶯嘴</product_name> 
+<product_name>者佳</product_name> 
+<product_name>李</product_name> 粉皮丹黄 
+<product_name>肉者佳</product_name> 
+<product_name>梅</product_name> 
+<product_name>楊梅</product_name> 
+<product_name>蠟色</product_name> 
+<product_name>者佳</product_name> 
+<product_name>梨</product_name> 
+<product_name>雪梨</product_name> 
+<product_name>佳</product_name>   
+<product_name>杮</product_name> 
+<product_name>乾爲</product_name> 
+<product_name>餅</product_name> 
+<product_name>栗</product_name> 
+<product_name>榧</product_name> 
+<product_name>柑</product_name> 
+<product_name>石榴</product_name> 
+<product_name>橘</product_name> 
+<product_name>香櫞</product_name> 藏之衣笥 香能緣物  
+<product_name>故名</product_name>  
+<product_name>香櫞</product_name> 
+<product_name>西瓜</product_name> 
+<product_name>番瓜</product_name> 番人種之 冬月最佳 
+<product_name>王瓜</product_name> 
+<product_name>先百瓜</product_name> 
+<product_name>生故名</product_name> 
+<product_name>冬瓜</product_name> 
+<product_name>苦</product_name>   
+<product_name>瓜</product_name> 
+<product_name>甜瓜</product_name> 
+<product_name>木瓜</product_name> 
+<product_name>土瓜</product_name> 其藤似葛附根而生 味甚甘美亦曰土葛 
+<product_name>瓠</product_name> 
+<product_name>種</product_name> 
+<product_name>有</product_name>  青有白有葫蘆大  小不一亦曰瓠 
+〈藥之屬〉
+ 
+<product_name>山藥</product_name> 
+<product_name>補中</product_name> 
+<product_name>益氣</product_name> 
+<product_name>天南星</product_name> 
+<product_name>半夏</product_name> 
+<product_name>葉類</product_name> 
+<product_name>羊蹄</product_name> 
+<product_name>天門冬</product_name> 
+<product_name>杜詩</product_name> 
+<product_name>謂天</product_name>  
+<product_name>棘見抱</product_name>  
+<product_name>朴子</product_name> 
+<product_name>麥門冬</product_name> 
+<product_name>菖蒲</product_name> 出石澗一寸 九節者佳 
+<product_name>車前子</product_name> 
+<product_name>治瀉强</product_name> 
+<product_name>陰益精</product_name> 
+<product_name>金</product_name>   
+<product_name>櫻子</product_name> 
+<product_name>膏</product_name> 
+<product_name>固精</product_name> 
+<product_name>山梔</product_name> 
+<product_name>木鼈子</product_name> 
+<product_name>蛇床子</product_name> 
+<product_name>紫蘇子</product_name> 
+<product_name>牽</product_name>   
+<product_name>牛子</product_name> 
+<product_name>香附子</product_name> 
+<product_name>使君子</product_name> 
+<product_name>療小兒</product_name> 
+<product_name>疳積</product_name> 
+<product_name>萆麻子</product_name> 
+<product_name>老翁鬚</product_name>  一名金股一名忍  冬花一名金銀花 
+<product_name>瓜蔞</product_name> 
+<product_name>高良薑</product_name> 葉即香茅夏月 飲之降氣根曰  
+<product_name>高良</product_name>  
+<product_name>薑</product_name> 
+<product_name>蒼耳</product_name> 
+<product_name>百合</product_name> 
+<product_name>甘菊</product_name> 
+<product_name>秃菜</product_name> 有番秃野 秃治疥癬 
+<product_name>艾</product_name> 
+<product_name>蒴</product_name>   
+<product_name>藋</product_name> 輕虚無心 名接骨草 
+<product_name>益母草</product_name> 
+<product_name>猴薑</product_name> 
+<product_name>附木</product_name> 
+<product_name>石生</product_name> 
+<product_name>茱萸</product_name> 補賢止大 小便不節 
+<product_name>茴</product_name>   
+<product_name>香</product_name> 
+<product_name>乾薑</product_name> 
+<product_name>香蕾</product_name> 
+<product_name>俗曰石</product_name> 
+<product_name>香柔</product_name> 
+<product_name>皂筴</product_name> 
+<product_name>芎藭</product_name> 
+<product_name>三柰</product_name> 
+<product_name>荆</product_name>   
+<product_name>芥</product_name> 
+<product_name>薄荷</product_name> 
+<product_name>藿香</product_name> 
+<product_name>石斛</product_name> 
+<product_name>莃薟</product_name> 
+<product_name>沙參</product_name> 
+<product_name>仙茅</product_name>    
+<product_name>淡竹</product_name>葉 
+<product_name>細辛</product_name> 
+<product_name>清湘子</product_name> 
+<product_name>楓香</product_name> 
+<product_name>鬱金</product_name> 
+<product_name>茯苓</product_name> 
+<product_name>多</product_name> 
+<product_name>年</product_name>  樵砍之松氣味朱絶其  精氣盛者結為茯苓 
+<product_name>茯神</product_name> 松之神靈附 結木根而成 
+<product_name>天花粉</product_name>    
+<product_name>射干</product_name> 
+<product_name>俗呼為</product_name> 
+<product_name>仙人掌</product_name> 
+<product_name>草豆</product_name>蔲 
+〈木之屬〉
+ 
+<product_name>松</product_name> 
+<product_name>栢</product_name> 
+<product_name>杉</product_name> 
+<product_name>槐</product_name> 
+<product_name>榕</product_name> 
+<product_name>樟</product_name> 
+<product_name>桐</product_name> 
+<product_name>楓</product_name> 
+<product_name>棕</product_name>    
+<product_name>檺</product_name> 
+<product_name>金荆</product_name> 閩中志曰木堅有文 彩可作牀榻器用 
+<product_name>櫸</product_name> 
+<product_name>與柜同</product_name> 
+<product_name>柜柳也</product_name> 
+<product_name>杞</product_name> 
+<product_name>柳屬</product_name> 
+<product_name>生水</product_name>  
+<product_name>旁</product_name>   
+<product_name>梓</product_name> 木莫良於梓故書以梓材名 篇俗呼為浮梓用以為木 
+<product_name>楠</product_name> 其木直上柯 葉不相妨 
+〈竹之屬〉
+ 
+<product_name>筀竹</product_name> 
+<product_name>筠竹</product_name> 
+<product_name>黄竹</product_name> 
+<product_name>麻竹</product_name> 
+<product_name>長枝竹</product_name> 
+<product_name>鳳</product_name>   
+<product_name>尾竹</product_name> 
+<product_name>俗呼觀</product_name> 
+<product_name>音竹</product_name> 
+<product_name>猫兒竹</product_name> 
+<product_name>石竹</product_name> 通志曰節疎而 平可爲器用 
+<product_name>雪竹</product_name> 
+<product_name>笋</product_name> 
+<product_name>生</product_name>  冬春之交  名曰雪笋 
+<product_name>方竹</product_name> 枝葉扶疎而莖 方可以爲杖 
+<product_name>盧竹</product_name> 生溪澗濕處 叢小葉疎 
+〈花之屬〉
+ 
+<product_name>蘭</product_name> 
+<product_name>蓮</product_name> 
+<product_name>菊</product_name> 
+<product_name>薔薇</product_name> 
+<product_name>佛桑</product_name> 
+<product_name>長春</product_name> 
+<product_name>紅白</product_name> 
+<product_name>二色</product_name> 
+<product_name>桂</product_name>  
+<product_name>有月桂</product_name>  
+<product_name>丹桂</product_name> 
+<product_name>梅</product_name> 
+<product_name>紅白</product_name> 
+<product_name>二色</product_name> 
+<product_name>川茶</product_name> 
+<product_name>山茶</product_name> 
+<product_name>紅白</product_name> 
+<product_name>二色</product_name> 
+<product_name>海棠</product_name> 
+<product_name>瑞香</product_name> 
+<product_name>色淡</product_name> 
+<product_name>紅味</product_name>  
+<product_name>清</product_name>  
+<product_name>香</product_name> 
+<product_name>素馨</product_name> 
+<product_name>茉莉</product_name> 
+<product_name>山丹</product_name> 一花百蘂如繡 毬狀深紅色 
+<product_name>百葉</product_name> 
+<product_name>榴</product_name> 
+<product_name>有</product_name> 
+<product_name>黄</product_name>  白大紅淺  紅凡數種 
+<product_name>紫薇</product_name> 
+<product_name>先花</product_name> 
+<product_name>後葉</product_name> 
+<product_name>紫荆</product_name> 
+<product_name>鷹爪</product_name> 
+<product_name>芙蓉</product_name> 
+<product_name>含笑</product_name> 
+<product_name>花</product_name> 
+<product_name>半</product_name>  開則馥烮大開則  香減故名含笑 
+<product_name>鷄冠</product_name> 
+<product_name>蜀葵</product_name> 
+<product_name>有深淺</product_name> 
+<product_name>紅諸色</product_name> 
+<product_name>玉簪</product_name> 
+<product_name>一莖數</product_name> 
+<product_name>蘂含吐</product_name>  以次逓開如  削玉抽簪 
+<product_name>剪春羅</product_name> 
+<product_name>花淡</product_name> 
+<product_name>紅</product_name> 
+<product_name>白蘋</product_name> 
+<product_name>杜鵑</product_name> 一名山蹢躅 王敬美謂閩  中氣暖二月下句已見蹢躅即此  也千葉者佳單葉者一名滿山紅 
+<product_name>紅蓼</product_name> 
+<product_name>龍船花</product_name> 
+<product_name>以</product_name> 
+<product_name>端</product_name>  午開故名  一名頳桐 
+<product_name>噴雪</product_name> 花白細細如雪亂 點通志名撥雪 
+〈草之屬〉
+ 
+<product_name>茅</product_name> 
+<product_name>蒲</product_name> 
+<product_name>鼠麯</product_name> 葉似馬齒莧上有白毛黃花 俗於三月三日採其花作糗  
+<product_name>名鼠</product_name>  
+<product_name>麯粿</product_name> 
+<product_name>龍鬚草</product_name> 
+<product_name>可為</product_name> 
+<product_name>席</product_name> 
+<product_name>苦草</product_name> 
+<product_name>狂茄</product_name> 
+<product_name>服之令</product_name> 
+<product_name>人發狂</product_name> 
+<product_name>鳯尾草</product_name> 
+<product_name>藻</product_name>  根生水底  葉敷水上 
+<product_name>虎耳</product_name> 八芳草之一也通志 曰人多栽石上為玩 
+<product_name>香茅</product_name> 通志曰葉 似苗而香  可煮作浴湯辟  邪氣令人身香 
+<product_name>獨帚</product_name> 
+<product_name>似蓍可</product_name> 
+<product_name>為掃篲</product_name> 
+<product_name>金星草</product_name> 
+<product_name>馬鞭草</product_name> 
+<product_name>斷</product_name>   
+<product_name>腸草</product_name> 服之則死愚民有爭輒噉以恣圖賴其解法用 
+<product_name>緑豆</product_name>漿或地黃漿或甘草湯最効者
+<product_name>用蕹菜</product_name>汁  灌下官每申嚴禁於春  夏二季示各里芟除 
+<product_name>仙草</product_name> 六月搗汁和米 粉煑之成凍 
+〈畜之屬〉
+ 
+<product_name>馬</product_name> 
+<product_name>牛</product_name> 
+<product_name>驢</product_name> 
+<product_name>騾</product_name> 
+<product_name>羊</product_name> 
+<product_name>猪</product_name> 
+<product_name>犬</product_name> 
+<product_name>猫</product_name> 
+<product_name>鷄</product_name>    
+<product_name>鴨</product_name> 
+<product_name>鵝</product_name> 
+〈毛之屬〉
+ 
+<product_name>虎</product_name> 
+<product_name>豹</product_name> 
+<product_name>鹿</product_name> 
+<product_name>麞</product_name> 
+<product_name>猴</product_name> 
+<product_name>猿</product_name> 
+<product_name>熊</product_name> 深山有之 饑則自䑛  
+<product_name>其手故</product_name>  
+<product_name>美在掌</product_name> 
+<product_name>狐</product_name> 
+<product_name>兔</product_name> 
+<product_name>獺</product_name> 
+<product_name>狼</product_name> 
+<product_name>豺</product_name> 
+<product_name>山狗</product_name> 
+<product_name>野猪</product_name> 
+<product_name>豪</product_name>   
+<product_name>猪</product_name> 山海經曰豪猪狀如豚 而白毛毛大如笄黑端 
+<product_name>山羊</product_name> 
+<product_name>山鼠</product_name> 
+〈羽之屬〉
+ 
+<product_name>雉</product_name> 
+<product_name>鳬</product_name> 
+<product_name>燕</product_name> 
+<product_name>雀</product_name> 
+<product_name>鶯</product_name> 
+<product_name>鷺鷥</product_name> 
+<product_name>鴛鴦</product_name> 
+<product_name>竹</product_name>   
+<product_name>鷄</product_name> 
+<product_name>畫眉</product_name> 
+<product_name>善鳴</product_name> 
+<product_name>善關</product_name> 
+<product_name>伯勞</product_name> 
+<product_name>啄木</product_name> 嘴尖舌長 穿木食蟲 
+<product_name>鸛</product_name> 
+<product_name>鴝鵒</product_name>    
+<product_name>杜鵑</product_name> 
+<product_name>翡翠</product_name> 異物志曰雄赤 曰翡雌青曰翠 
+<product_name>鷓鴣</product_name> 
+<product_name>烏鴉</product_name> 
+<product_name>鳲鳩</product_name> 
+<product_name>飼</product_name> 
+<product_name>子</product_name>  
+<product_name>有</product_name>  
+<product_name>序</product_name> 
+<product_name>鶺鴒</product_name> 
+<product_name>飛則鳴</product_name> 
+<product_name>行則摇</product_name> 
+〈鱗之屬〉
+ 
+<product_name>鯉</product_name> 
+<product_name>脊有三</product_name> 
+<product_name>十六鱗</product_name> 
+<product_name>鯖</product_name> 
+<product_name>俗名</product_name> 
+<product_name>草魚</product_name> 
+<product_name>鰱</product_name> 
+<product_name>鱔</product_name> 
+<product_name>鯽</product_name> 
+<product_name>鰻</product_name> 
+<product_name>金魚</product_name>    
+<product_name>鰍</product_name> 
+<product_name>鰳魚</product_name> 
+<product_name>鱖魚</product_name> 
+<product_name>鱓魚</product_name> 黃質黑文 俗謂之鱔 
+〈介之屬〉
+ 
+<product_name>龜</product_name> 
+<product_name>鼈</product_name> 
+<product_name>蟹</product_name> 
+<product_name>蚌</product_name> 
+<product_name>螺</product_name> 
+<product_name>穿山甲</product_name> 
+<product_name>蜆</product_name> 
+<product_name>生淡</product_name> 
+<product_name>水石</product_name>  
+<product_name>中</product_name>   
+<product_name>石鱗</product_name> 
+<product_name>生深山</product_name> 
+<product_name>澗中</product_name> 
+〈蟲之屬〉
+ 
+<product_name>蛇</product_name> 
+<product_name>虺</product_name> 
+<product_name>蜈蚣</product_name> 
+<product_name>螽斯</product_name> 
+<product_name>一生九</product_name> 
+<product_name>十九子</product_name> 
+<product_name>蝙蝠</product_name> 
+<product_name>螢</product_name>    
+<product_name>蜩</product_name> 
+<product_name>蜂</product_name> 蜂毒在尾垂頴 如鋒故謂之蜂 
+<product_name>蚊</product_name> 
+<product_name>蠅</product_name> 
+<product_name>蜘蛛</product_name> 
+<product_name>蚯蚓</product_name> 
+<product_name>蝶</product_name>    
+<product_name>蟾蜍</product_name> 
+<product_name>蟋蟀</product_name> 
+<product_name>蜻蜓</product_name>    福建通志卷十一 欽定四庫全書  福建通志卷十二  
+<product_name>田賦</product_name>    禹貢揚州田下下而賦下上閩又東南僻壤山海    阻深阪隰瘠狹非有沃野千里之饒田之隷於籍    者寡矣土貢雜税所入不敵江南一大郡每歲經    費猶仰資鄰省此全閩貢賦之大畧也我   國家鑒古定制筐篚有常前代無名之征悉從釐革 
+</img n="148"></img n="147"></img n="146"></img n="145"></img n="144"></img n="143"></img n="142"></img n="141"></img n="140">
\ No newline at end of file
--- a/develop/data/parsing_files/38462.txt	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/data/parsing_files/38462.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -1,280 +1,9 @@
-【102】    契本工課鈔肆貫     
-物産    按淳属嚴郡爲
-〈古揚州之境〉而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    
-者載焉     
-
-<shu>〈糓〉</shu>〈糓〉      秔
-<shu>〈糓〉</shu>有
-<shu>〈糓〉</shu><product_name>早稻</product_name>
-<shu>〈糓〉</shu><product_name>晚稻</product_name>
-<shu>〈糓〉</shu><product_name>紅稻</product_name>
-<shu>〈糓〉</shu><product_name>白稻</product_name><product_name></product_name>      
-
-<shu>〈糯〉</shu>〈糯〉有
-<shu>〈糯〉</shu><product_name>秋糯</product_name>
-<shu>〈糯〉</shu><product_name>晩糯</product_name><product_name></product_name>   
-
-<shu>〈粟〉</shu>〈粟〉有
-<shu>〈粟〉</shu><product_name>秔粟</product_name>
-<shu>〈粟〉</shu><product_name>糯粟</product_name><product_name></product_name> 
-【103】     
-
-<shu>〈麥〉</shu>〈麥〉有
-<shu>〈麥〉</shu><product_name>大麥</product_name>
-<shu>〈麥〉</shu><product_name>小麥</product_name>
-<shu>〈麥〉</shu><product_name>蕎麥</product_name><product_name></product_name> 
-
-<shu>〈麻〉</shu>〈麻〉有
-<shu>〈麻〉</shu><product_name>黄麻</product_name>
-<shu>〈麻〉</shu><product_name>白麻</product_name>
-<shu>〈麻〉</shu><product_name>黒麻</product_name><product_name></product_name>      
-
-<shu>〈豆〉</shu>〈豆〉有
-<shu>〈豆〉</shu><product_name>黄豆</product_name>
-<shu>〈豆〉</shu><product_name>緑豆</product_name>
-<shu>〈豆〉</shu><product_name>赤豆</product_name>
-<shu>〈豆〉</shu><product_name>黒豆</product_name>
-<shu>〈豆〉</shu><product_name>蚕豆</product_name><product_name></product_name>     
-
-<shu>〈貨〉</shu>〈貨〉      
-<shu>〈貨〉</shu><product_name>絲</product_name> 
-<shu>〈貨〉</shu><product_name>綿</product_name> 
-<shu>〈貨〉</shu><product_name>紗</product_name> 
-<shu>〈貨〉</shu><product_name>絹</product_name> 
-<shu>〈貨〉</shu><product_name>紬</product_name> 
-<shu>〈貨〉</shu><product_name>綾</product_name> 
-<shu>〈貨〉</shu><product_name>布</product_name> 
-<shu>〈貨〉</shu><product_name>苧</product_name> 
-<shu>〈貨〉</shu><product_name></product_name>      
-<shu>〈貨〉</shu><product_name>茶</product_name> 
-<shu>〈貨〉</shu><product_name></product_name> 
-<shu>〈貨〉</shu><product_name></product_name> 
-<shu>〈貨〉</shu><product_name>蠟</product_name> 
-<shu>〈貨〉</shu><product_name>油</product_name> 
-<shu>〈貨〉</shu><product_name>燭</product_name> 
-<shu>〈貨〉</shu><product_name>柴</product_name> 
-<shu>〈貨〉</shu><product_name>炭</product_name> 
-<shu>〈貨〉</shu><product_name>㯶</product_name>      
-<shu>〈貨〉</shu><product_name>箬</product_name> 
-<shu>〈貨〉</shu><product_name>末香</product_name>  
-<shu>〈貨〉</shu><product_name>石</product_name>     
-
-<shu>〈竹〉</shu>〈竹〉      
-<shu>〈竹〉</shu><product_name>苦竹</product_name> 
-<shu>〈竹〉</shu><product_name>淡竹</product_name> 
-<shu>〈竹〉</shu><product_name>筋竹</product_name> 
-<shu>〈竹〉</shu><product_name>筀竹</product_name> 
-<shu>〈竹〉</shu><product_name>斑竹</product_name> 
-<shu>〈竹〉</shu><product_name>紫竹</product_name>      
-<shu>〈竹〉</shu><product_name>水竹</product_name> 
-<shu>〈竹〉</shu><product_name>廣竹</product_name> 
-<shu>〈竹〉</shu><product_name>猫竹</product_name> 
-<shu>〈竹〉</shu><product_name>箭竹</product_name> 
-<shu>〈竹〉</shu><product_name>雷竹</product_name><product_name></product_name>     
-
-<shu>〈木〉</shu>〈木〉 
-<shu>〈木〉</shu>【104】     
-<shu>〈木〉</shu><product_name>松</product_name> 
-<shu>〈木〉</shu><product_name>柏</product_name> 
-<shu>〈木〉</shu><product_name>株</product_name> 
-<shu>〈木〉</shu><product_name>杉</product_name> 
-<shu>〈木〉</shu><product_name>樟</product_name> 
-<shu>〈木〉</shu><product_name>檜</product_name> 
-<shu>〈木〉</shu><product_name>桐</product_name> 
-<shu>〈木〉</shu><product_name>梓</product_name> 
-<shu>〈木〉</shu><product_name>桑</product_name>      
-<shu>〈木〉</shu><product_name>柘</product_name> 
-<shu>〈木〉</shu><product_name>楓</product_name> 
-<shu>〈木〉</shu><product_name>柳</product_name> 
-<shu>〈木〉</shu><product_name>檀</product_name> 
-<shu>〈木〉</shu><product_name>槐</product_name> 
-<shu>〈木〉</shu><product_name>榆</product_name> 
-<shu>〈木〉</shu><product_name>櫟</product_name> 
-<shu>〈木〉</shu><product_name>白楊</product_name>       
-<shu>〈木〉</shu><product_name>冬青</product_name><product_name></product_name>     
+【102】    契本工課鈔肆貫     物産    按淳属嚴郡爲古揚州之境而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    者載焉     糓      秔有早稻晚稻紅稻白稻      糯有秋糯晩糯   粟有秔粟糯粟 
+【103】     麥有大麥小麥蕎麥 麻有黄麻白麻黒麻      豆有黄豆緑豆赤豆黒豆蚕豆     貨      絲 綿 紗 絹 紬 綾 布 苧       茶   蠟 油 燭 柴 炭 㯶      箬 末香  石     竹      苦竹 淡竹 筋竹 筀竹 斑竹 紫竹      水竹 廣竹 猫竹 箭竹 雷竹     木 
+【104】     松 柏 株 杉 樟 檜 桐 梓 桑      柘 楓 柳 檀 槐 榆 櫟 白楊       冬青     果      梅 李 桃 栗 椑 柿 梨 杏 棗      榧 橘 橙 菱 芡 石榴 枇杷      楊梅 銀杏 櫻桃 莆萄 蓮房 蓮心      林檎 西     菜      菘 芥 茄 莧 芹 蕨 芋 匏 葱 
+【105】     韮 薤 蒜 筍 蘿蔔 苦蕒 萵苣       冬 黄     花      菊 桂 蘭 蕙 葵 荷 牡丹 芍藥      海棠 酴醿 薔 芙蓉 山茶 水僊      萱草 鷄冠 杜䳌 紫荆 玉簮 鳯僊      蠟梅 剪金 木槿 梔子 木犀     藥      茯苓 前胡 半夏 欵冬 地榆 白术      菖莆 枸 苦參 地黄 蔞 蓽 
+【106】     天門冬 麥門冬 何首烏 車前子      天南星 吳茱萸 桔梗     羽      鷄 鵝 鴨 鴈 鴉 鵲 鶯 燕 鷗      鷺 鸛 雀 鳩 鴿 鷹 鷂 雉 鷴      鴛鴦 鴝鵒 鸕鷀 姑惡 眉 子䂓      竹鷄 啄木 百舌 鴟鴞     毛      牛 馬 騾 驢 羊 豕 犬 猫 虎      豹  狼 熊 猴 狸  鹿 麞 
+【107】     麂 兎 野猫 豪猪 竹狗 松䑕     鱗      鯉 鱖 鯿 鯽 鰣 鱸 鰱 鯶 鯖      鱧 鱤 鰷 鰻 鮎 石斑 河豚     介       鼈 蝦  螺 烏 螄    淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 坤同脩              訓導莆田黄 講同脩              縣丞溧水邰 洪校正              庠生賢溪方 祚同交              典史長洲吳鳴鳳刊行     坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
 
-<shu>〈果〉</shu>〈果〉      
-<shu>〈果〉</shu><product_name>梅</product_name> 
-<shu>〈果〉</shu><product_name>李</product_name> 
-<shu>〈果〉</shu><product_name>桃</product_name> 
-<shu>〈果〉</shu><product_name>栗</product_name> 
-<shu>〈果〉</shu><product_name>椑</product_name> 
-<shu>〈果〉</shu><product_name>柿</product_name> 
-<shu>〈果〉</shu><product_name>梨</product_name> 
-<shu>〈果〉</shu><product_name>杏</product_name> 
-<shu>〈果〉</shu><product_name>棗</product_name>      
-<shu>〈果〉</shu><product_name>榧</product_name> 
-<shu>〈果〉</shu><product_name>橘</product_name> 
-<shu>〈果〉</shu><product_name>橙</product_name> 
-<shu>〈果〉</shu><product_name>菱</product_name> 
-<shu>〈果〉</shu><product_name>芡</product_name> 
-<shu>〈果〉</shu><product_name>石榴</product_name> 
-<shu>〈果〉</shu><product_name>枇杷</product_name>      
-<shu>〈果〉</shu><product_name>楊梅</product_name> 
-<shu>〈果〉</shu><product_name>銀杏</product_name> 
-<shu>〈果〉</shu><product_name>櫻桃</product_name> 
-<shu>〈果〉</shu><product_name>莆萄</product_name> 
-<shu>〈果〉</shu><product_name>蓮房</product_name> 
-<shu>〈果〉</shu><product_name>蓮心</product_name>      
-<shu>〈果〉</shu><product_name>林檎</product_name> 
-<shu>〈果〉</shu><product_name>西</product_name>     
-<shu></shu>
-<shu>〈菜〉</shu>〈菜〉      
-<shu>〈菜〉</shu><product_name>菘</product_name> 
-<shu>〈菜〉</shu><product_name>芥</product_name> 
-<shu>〈菜〉</shu><product_name>茄</product_name> 
-<shu>〈菜〉</shu><product_name>莧</product_name> 
-<shu>〈菜〉</shu><product_name>芹</product_name> 
-<shu>〈菜〉</shu><product_name>蕨</product_name> 
-<shu>〈菜〉</shu><product_name>芋</product_name> 
-<shu>〈菜〉</shu><product_name>匏</product_name> 
-<shu>〈菜〉</shu><product_name>葱</product_name><product_name></product_name> 
-<shu>〈菜〉</shu>【105】     
-<shu>〈菜〉</shu><product_name>韮</product_name> 
-<shu>〈菜〉</shu><product_name>薤</product_name> 
-<shu>〈菜〉</shu><product_name>蒜</product_name> 
-<shu>〈菜〉</shu><product_name>筍</product_name> 
-<shu>〈菜〉</shu><product_name>蘿蔔</product_name> 
-<shu>〈菜〉</shu><product_name>苦蕒</product_name> 
-<shu>〈菜〉</shu><product_name>萵苣</product_name>       
-<shu>〈菜〉</shu><product_name>冬</product_name> 
-<shu>〈菜〉</shu><product_name>黄</product_name><product_name></product_name>     
 
-<shu>〈花〉</shu>〈花〉      
-<shu>〈花〉</shu><product_name>菊</product_name> 
-<shu>〈花〉</shu><product_name>桂</product_name> 
-<shu>〈花〉</shu><product_name>蘭</product_name> 
-<shu>〈花〉</shu><product_name>蕙</product_name> 
-<shu>〈花〉</shu><product_name>葵</product_name> 
-<shu>〈花〉</shu><product_name>荷</product_name> 
-<shu>〈花〉</shu><product_name>牡丹</product_name> 
-<shu>〈花〉</shu><product_name>芍藥</product_name>      
-<shu>〈花〉</shu><product_name>海棠</product_name> 
-<shu>〈花〉</shu><product_name>酴醿</product_name> 
-<shu>〈花〉</shu><product_name>薔</product_name> 
-<shu>〈花〉</shu><product_name>芙蓉</product_name> 
-<shu>〈花〉</shu><product_name>山茶</product_name> 
-<shu>〈花〉</shu><product_name>水僊</product_name>      
-<shu>〈花〉</shu><product_name>萱草</product_name> 
-<shu>〈花〉</shu><product_name>鷄冠</product_name> 
-<shu>〈花〉</shu><product_name>杜䳌</product_name> 
-<shu>〈花〉</shu><product_name>紫荆</product_name> 
-<shu>〈花〉</shu><product_name>玉簮</product_name> 
-<shu>〈花〉</shu><product_name>鳯僊</product_name>      
-<shu>〈花〉</shu><product_name>蠟梅</product_name> 
-<shu>〈花〉</shu><product_name>剪金</product_name> 
-<shu>〈花〉</shu><product_name>木槿</product_name> 
-<shu>〈花〉</shu><product_name>梔子</product_name> 
-<shu>〈花〉</shu><product_name>木犀</product_name><product_name></product_name>     
-
-<shu>〈藥〉</shu>〈藥〉      
-<shu>〈藥〉</shu><product_name>茯苓</product_name> 
-<shu>〈藥〉</shu><product_name>前胡</product_name> 
-<shu>〈藥〉</shu><product_name>半夏</product_name> 
-<shu>〈藥〉</shu><product_name>欵冬</product_name> 
-<shu>〈藥〉</shu><product_name>地榆</product_name> 
-<shu>〈藥〉</shu><product_name>白术</product_name>      
-<shu>〈藥〉</shu><product_name>菖莆</product_name> 
-<shu>〈藥〉</shu><product_name>枸</product_name> 
-<shu>〈藥〉</shu><product_name>苦參</product_name> 
-<shu>〈藥〉</shu><product_name>地黄</product_name> 
-<shu>〈藥〉</shu><product_name>蔞</product_name> 
-<shu>〈藥〉</shu><product_name>蓽</product_name> 
-<shu>〈藥〉</shu>【106】     
-<shu>〈藥〉</shu><product_name>天門冬</product_name> 
-<shu>〈藥〉</shu><product_name>麥門冬</product_name> 
-<shu>〈藥〉</shu><product_name>何首烏</product_name> 
-<shu>〈藥〉</shu><product_name>車前子</product_name>      
-<shu>〈藥〉</shu><product_name>天南星</product_name> 
-<shu>〈藥〉</shu><product_name>吳茱萸</product_name> 
-<shu>〈藥〉</shu><product_name>桔梗</product_name><product_name></product_name>     
-
-<shu>〈羽〉</shu>〈羽〉      
-<shu>〈羽〉</shu><product_name>鷄</product_name> 
-<shu>〈羽〉</shu><product_name>鵝</product_name> 
-<shu>〈羽〉</shu><product_name>鴨</product_name> 
-<shu>〈羽〉</shu><product_name>鴈</product_name> 
-<shu>〈羽〉</shu><product_name>鴉</product_name> 
-<shu>〈羽〉</shu><product_name>鵲</product_name> 
-<shu>〈羽〉</shu><product_name>鶯</product_name> 
-<shu>〈羽〉</shu><product_name>燕</product_name> 
-<shu>〈羽〉</shu><product_name>鷗</product_name>      
-<shu>〈羽〉</shu><product_name>鷺</product_name> 
-<shu>〈羽〉</shu><product_name>鸛</product_name> 
-<shu>〈羽〉</shu><product_name>雀</product_name> 
-<shu>〈羽〉</shu><product_name>鳩</product_name> 
-<shu>〈羽〉</shu><product_name>鴿</product_name> 
-<shu>〈羽〉</shu><product_name>鷹</product_name> 
-<shu>〈羽〉</shu><product_name>鷂</product_name> 
-<shu>〈羽〉</shu><product_name>雉</product_name> 
-<shu>〈羽〉</shu><product_name>鷴</product_name>      
-<shu>〈羽〉</shu><product_name>鴛鴦</product_name> 
-<shu>〈羽〉</shu><product_name>鴝鵒</product_name> 
-<shu>〈羽〉</shu><product_name>鸕鷀</product_name> 
-<shu>〈羽〉</shu><product_name>姑惡</product_name> 
-<shu>〈羽〉</shu><product_name>眉</product_name> 
-<shu>〈羽〉</shu><product_name>子䂓</product_name>      
-<shu>〈羽〉</shu><product_name>竹鷄</product_name> 
-<shu>〈羽〉</shu><product_name>啄木</product_name> 
-<shu>〈羽〉</shu><product_name>百舌</product_name> 
-<shu>〈羽〉</shu><product_name>鴟鴞</product_name><product_name></product_name>     
-
-<shu>〈毛〉</shu>〈毛〉      
-<shu>〈毛〉</shu><product_name>牛</product_name> 
-<shu>〈毛〉</shu><product_name>馬</product_name> 
-<shu>〈毛〉</shu><product_name>騾</product_name> 
-<shu>〈毛〉</shu><product_name>驢</product_name> 
-<shu>〈毛〉</shu><product_name>羊</product_name> 
-<shu>〈毛〉</shu><product_name>豕</product_name> 
-<shu>〈毛〉</shu><product_name>犬</product_name> 
-<shu>〈毛〉</shu><product_name>猫</product_name> 
-<shu>〈毛〉</shu><product_name>虎</product_name>      
-<shu>〈毛〉</shu><product_name>豹</product_name> 
-<shu>〈毛〉</shu><product_name></product_name> 
-<shu>〈毛〉</shu><product_name>狼</product_name> 
-<shu>〈毛〉</shu><product_name>熊</product_name> 
-<shu>〈毛〉</shu><product_name>猴</product_name> 
-<shu>〈毛〉</shu><product_name>狸</product_name> 
-<shu>〈毛〉</shu><product_name></product_name> 
-<shu>〈毛〉</shu><product_name>鹿</product_name> 
-<shu>〈毛〉</shu><product_name>麞</product_name> 
-<shu>〈毛〉</shu>【107】     
-<shu>〈毛〉</shu><product_name>麂</product_name> 
-<shu>〈毛〉</shu><product_name>兎</product_name> 
-<shu>〈毛〉</shu><product_name>野猫</product_name> 
-<shu>〈毛〉</shu><product_name>豪猪</product_name> 
-<shu>〈毛〉</shu><product_name>竹狗</product_name> 
-<shu>〈毛〉</shu><product_name>松䑕</product_name>     
-<shu>〈毛〉</shu><product_name>鱗</product_name>      
-<shu>〈毛〉</shu><product_name>鯉</product_name> 
-<shu>〈毛〉</shu><product_name>鱖</product_name> 
-<shu>〈毛〉</shu><product_name>鯿</product_name> 
-<shu>〈毛〉</shu><product_name>鯽</product_name> 
-<shu>〈毛〉</shu><product_name>鰣</product_name> 
-<shu>〈毛〉</shu><product_name>鱸</product_name> 
-<shu>〈毛〉</shu><product_name>鰱</product_name> 
-<shu>〈毛〉</shu><product_name>鯶</product_name> 
-<shu>〈毛〉</shu><product_name>鯖</product_name>      
-<shu>〈毛〉</shu><product_name>鱧</product_name> 
-<shu>〈毛〉</shu><product_name>鱤</product_name> 
-<shu>〈毛〉</shu><product_name>鰷</product_name> 
-<shu>〈毛〉</shu><product_name>鰻</product_name> 
-<shu>〈毛〉</shu><product_name>鮎</product_name> 
-<shu>〈毛〉</shu><product_name>石斑</product_name> 
-<shu>〈毛〉</shu><product_name>河豚</product_name>     
-<shu>〈毛〉</shu><product_name>介</product_name>      
-<shu>〈毛〉</shu><product_name></product_name> 
-<shu>〈毛〉</shu><product_name>鼈</product_name> 
-<shu>〈毛〉</shu><product_name>蝦</product_name> 
-<shu>〈毛〉</shu><product_name></product_name> 
-<shu>〈毛〉</shu><product_name>螺</product_name> 
-<shu>〈毛〉</shu><product_name>烏</product_name> 
-<shu>〈毛〉</shu><product_name>螄</product_name><product_name></product_name>    
-淳安縣志卷之四終 
-【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 
-坤同脩              訓導莆田黄 
-講同脩              縣丞溧水邰 
-洪校正              庠生賢溪方 
-祚同交              典史長洲吳鳴鳳刊行     
-坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/38462_2015_03_04_09_46_20.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,280 @@
+【102】    契本工課鈔肆貫     
+物産    按淳属嚴郡爲
+〈古揚州之境〉而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    
+者載焉     
+
+<shu>〈糓〉</shu>〈糓〉      秔
+<shu>〈糓〉</shu>有
+<shu>〈糓〉</shu><product_name>早稻</product_name>
+<shu>〈糓〉</shu><product_name>晚稻</product_name>
+<shu>〈糓〉</shu><product_name>紅稻</product_name>
+<shu>〈糓〉</shu><product_name>白稻</product_name><product_name></product_name>      
+
+<shu>〈糯〉</shu>〈糯〉有
+<shu>〈糯〉</shu><product_name>秋糯</product_name>
+<shu>〈糯〉</shu><product_name>晩糯</product_name><product_name></product_name>   
+
+<shu>〈粟〉</shu>〈粟〉有
+<shu>〈粟〉</shu><product_name>秔粟</product_name>
+<shu>〈粟〉</shu><product_name>糯粟</product_name><product_name></product_name> 
+【103】     
+
+<shu>〈麥〉</shu>〈麥〉有
+<shu>〈麥〉</shu><product_name>大麥</product_name>
+<shu>〈麥〉</shu><product_name>小麥</product_name>
+<shu>〈麥〉</shu><product_name>蕎麥</product_name><product_name></product_name> 
+
+<shu>〈麻〉</shu>〈麻〉有
+<shu>〈麻〉</shu><product_name>黄麻</product_name>
+<shu>〈麻〉</shu><product_name>白麻</product_name>
+<shu>〈麻〉</shu><product_name>黒麻</product_name><product_name></product_name>      
+
+<shu>〈豆〉</shu>〈豆〉有
+<shu>〈豆〉</shu><product_name>黄豆</product_name>
+<shu>〈豆〉</shu><product_name>緑豆</product_name>
+<shu>〈豆〉</shu><product_name>赤豆</product_name>
+<shu>〈豆〉</shu><product_name>黒豆</product_name>
+<shu>〈豆〉</shu><product_name>蚕豆</product_name><product_name></product_name>     
+
+<shu>〈貨〉</shu>〈貨〉      
+<shu>〈貨〉</shu><product_name>絲</product_name> 
+<shu>〈貨〉</shu><product_name>綿</product_name> 
+<shu>〈貨〉</shu><product_name>紗</product_name> 
+<shu>〈貨〉</shu><product_name>絹</product_name> 
+<shu>〈貨〉</shu><product_name>紬</product_name> 
+<shu>〈貨〉</shu><product_name>綾</product_name> 
+<shu>〈貨〉</shu><product_name>布</product_name> 
+<shu>〈貨〉</shu><product_name>苧</product_name> 
+<shu>〈貨〉</shu><product_name></product_name>      
+<shu>〈貨〉</shu><product_name>茶</product_name> 
+<shu>〈貨〉</shu><product_name></product_name> 
+<shu>〈貨〉</shu><product_name></product_name> 
+<shu>〈貨〉</shu><product_name>蠟</product_name> 
+<shu>〈貨〉</shu><product_name>油</product_name> 
+<shu>〈貨〉</shu><product_name>燭</product_name> 
+<shu>〈貨〉</shu><product_name>柴</product_name> 
+<shu>〈貨〉</shu><product_name>炭</product_name> 
+<shu>〈貨〉</shu><product_name>㯶</product_name>      
+<shu>〈貨〉</shu><product_name>箬</product_name> 
+<shu>〈貨〉</shu><product_name>末香</product_name>  
+<shu>〈貨〉</shu><product_name>石</product_name>     
+
+<shu>〈竹〉</shu>〈竹〉      
+<shu>〈竹〉</shu><product_name>苦竹</product_name> 
+<shu>〈竹〉</shu><product_name>淡竹</product_name> 
+<shu>〈竹〉</shu><product_name>筋竹</product_name> 
+<shu>〈竹〉</shu><product_name>筀竹</product_name> 
+<shu>〈竹〉</shu><product_name>斑竹</product_name> 
+<shu>〈竹〉</shu><product_name>紫竹</product_name>      
+<shu>〈竹〉</shu><product_name>水竹</product_name> 
+<shu>〈竹〉</shu><product_name>廣竹</product_name> 
+<shu>〈竹〉</shu><product_name>猫竹</product_name> 
+<shu>〈竹〉</shu><product_name>箭竹</product_name> 
+<shu>〈竹〉</shu><product_name>雷竹</product_name><product_name></product_name>     
+
+<shu>〈木〉</shu>〈木〉 
+<shu>〈木〉</shu>【104】     
+<shu>〈木〉</shu><product_name>松</product_name> 
+<shu>〈木〉</shu><product_name>柏</product_name> 
+<shu>〈木〉</shu><product_name>株</product_name> 
+<shu>〈木〉</shu><product_name>杉</product_name> 
+<shu>〈木〉</shu><product_name>樟</product_name> 
+<shu>〈木〉</shu><product_name>檜</product_name> 
+<shu>〈木〉</shu><product_name>桐</product_name> 
+<shu>〈木〉</shu><product_name>梓</product_name> 
+<shu>〈木〉</shu><product_name>桑</product_name>      
+<shu>〈木〉</shu><product_name>柘</product_name> 
+<shu>〈木〉</shu><product_name>楓</product_name> 
+<shu>〈木〉</shu><product_name>柳</product_name> 
+<shu>〈木〉</shu><product_name>檀</product_name> 
+<shu>〈木〉</shu><product_name>槐</product_name> 
+<shu>〈木〉</shu><product_name>榆</product_name> 
+<shu>〈木〉</shu><product_name>櫟</product_name> 
+<shu>〈木〉</shu><product_name>白楊</product_name>       
+<shu>〈木〉</shu><product_name>冬青</product_name><product_name></product_name>     
+
+<shu>〈果〉</shu>〈果〉      
+<shu>〈果〉</shu><product_name>梅</product_name> 
+<shu>〈果〉</shu><product_name>李</product_name> 
+<shu>〈果〉</shu><product_name>桃</product_name> 
+<shu>〈果〉</shu><product_name>栗</product_name> 
+<shu>〈果〉</shu><product_name>椑</product_name> 
+<shu>〈果〉</shu><product_name>柿</product_name> 
+<shu>〈果〉</shu><product_name>梨</product_name> 
+<shu>〈果〉</shu><product_name>杏</product_name> 
+<shu>〈果〉</shu><product_name>棗</product_name>      
+<shu>〈果〉</shu><product_name>榧</product_name> 
+<shu>〈果〉</shu><product_name>橘</product_name> 
+<shu>〈果〉</shu><product_name>橙</product_name> 
+<shu>〈果〉</shu><product_name>菱</product_name> 
+<shu>〈果〉</shu><product_name>芡</product_name> 
+<shu>〈果〉</shu><product_name>石榴</product_name> 
+<shu>〈果〉</shu><product_name>枇杷</product_name>      
+<shu>〈果〉</shu><product_name>楊梅</product_name> 
+<shu>〈果〉</shu><product_name>銀杏</product_name> 
+<shu>〈果〉</shu><product_name>櫻桃</product_name> 
+<shu>〈果〉</shu><product_name>莆萄</product_name> 
+<shu>〈果〉</shu><product_name>蓮房</product_name> 
+<shu>〈果〉</shu><product_name>蓮心</product_name>      
+<shu>〈果〉</shu><product_name>林檎</product_name> 
+<shu>〈果〉</shu><product_name>西</product_name>     
+<shu></shu>
+<shu>〈菜〉</shu>〈菜〉      
+<shu>〈菜〉</shu><product_name>菘</product_name> 
+<shu>〈菜〉</shu><product_name>芥</product_name> 
+<shu>〈菜〉</shu><product_name>茄</product_name> 
+<shu>〈菜〉</shu><product_name>莧</product_name> 
+<shu>〈菜〉</shu><product_name>芹</product_name> 
+<shu>〈菜〉</shu><product_name>蕨</product_name> 
+<shu>〈菜〉</shu><product_name>芋</product_name> 
+<shu>〈菜〉</shu><product_name>匏</product_name> 
+<shu>〈菜〉</shu><product_name>葱</product_name><product_name></product_name> 
+<shu>〈菜〉</shu>【105】     
+<shu>〈菜〉</shu><product_name>韮</product_name> 
+<shu>〈菜〉</shu><product_name>薤</product_name> 
+<shu>〈菜〉</shu><product_name>蒜</product_name> 
+<shu>〈菜〉</shu><product_name>筍</product_name> 
+<shu>〈菜〉</shu><product_name>蘿蔔</product_name> 
+<shu>〈菜〉</shu><product_name>苦蕒</product_name> 
+<shu>〈菜〉</shu><product_name>萵苣</product_name>       
+<shu>〈菜〉</shu><product_name>冬</product_name> 
+<shu>〈菜〉</shu><product_name>黄</product_name><product_name></product_name>     
+
+<shu>〈花〉</shu>〈花〉      
+<shu>〈花〉</shu><product_name>菊</product_name> 
+<shu>〈花〉</shu><product_name>桂</product_name> 
+<shu>〈花〉</shu><product_name>蘭</product_name> 
+<shu>〈花〉</shu><product_name>蕙</product_name> 
+<shu>〈花〉</shu><product_name>葵</product_name> 
+<shu>〈花〉</shu><product_name>荷</product_name> 
+<shu>〈花〉</shu><product_name>牡丹</product_name> 
+<shu>〈花〉</shu><product_name>芍藥</product_name>      
+<shu>〈花〉</shu><product_name>海棠</product_name> 
+<shu>〈花〉</shu><product_name>酴醿</product_name> 
+<shu>〈花〉</shu><product_name>薔</product_name> 
+<shu>〈花〉</shu><product_name>芙蓉</product_name> 
+<shu>〈花〉</shu><product_name>山茶</product_name> 
+<shu>〈花〉</shu><product_name>水僊</product_name>      
+<shu>〈花〉</shu><product_name>萱草</product_name> 
+<shu>〈花〉</shu><product_name>鷄冠</product_name> 
+<shu>〈花〉</shu><product_name>杜䳌</product_name> 
+<shu>〈花〉</shu><product_name>紫荆</product_name> 
+<shu>〈花〉</shu><product_name>玉簮</product_name> 
+<shu>〈花〉</shu><product_name>鳯僊</product_name>      
+<shu>〈花〉</shu><product_name>蠟梅</product_name> 
+<shu>〈花〉</shu><product_name>剪金</product_name> 
+<shu>〈花〉</shu><product_name>木槿</product_name> 
+<shu>〈花〉</shu><product_name>梔子</product_name> 
+<shu>〈花〉</shu><product_name>木犀</product_name><product_name></product_name>     
+
+<shu>〈藥〉</shu>〈藥〉      
+<shu>〈藥〉</shu><product_name>茯苓</product_name> 
+<shu>〈藥〉</shu><product_name>前胡</product_name> 
+<shu>〈藥〉</shu><product_name>半夏</product_name> 
+<shu>〈藥〉</shu><product_name>欵冬</product_name> 
+<shu>〈藥〉</shu><product_name>地榆</product_name> 
+<shu>〈藥〉</shu><product_name>白术</product_name>      
+<shu>〈藥〉</shu><product_name>菖莆</product_name> 
+<shu>〈藥〉</shu><product_name>枸</product_name> 
+<shu>〈藥〉</shu><product_name>苦參</product_name> 
+<shu>〈藥〉</shu><product_name>地黄</product_name> 
+<shu>〈藥〉</shu><product_name>蔞</product_name> 
+<shu>〈藥〉</shu><product_name>蓽</product_name> 
+<shu>〈藥〉</shu>【106】     
+<shu>〈藥〉</shu><product_name>天門冬</product_name> 
+<shu>〈藥〉</shu><product_name>麥門冬</product_name> 
+<shu>〈藥〉</shu><product_name>何首烏</product_name> 
+<shu>〈藥〉</shu><product_name>車前子</product_name>      
+<shu>〈藥〉</shu><product_name>天南星</product_name> 
+<shu>〈藥〉</shu><product_name>吳茱萸</product_name> 
+<shu>〈藥〉</shu><product_name>桔梗</product_name><product_name></product_name>     
+
+<shu>〈羽〉</shu>〈羽〉      
+<shu>〈羽〉</shu><product_name>鷄</product_name> 
+<shu>〈羽〉</shu><product_name>鵝</product_name> 
+<shu>〈羽〉</shu><product_name>鴨</product_name> 
+<shu>〈羽〉</shu><product_name>鴈</product_name> 
+<shu>〈羽〉</shu><product_name>鴉</product_name> 
+<shu>〈羽〉</shu><product_name>鵲</product_name> 
+<shu>〈羽〉</shu><product_name>鶯</product_name> 
+<shu>〈羽〉</shu><product_name>燕</product_name> 
+<shu>〈羽〉</shu><product_name>鷗</product_name>      
+<shu>〈羽〉</shu><product_name>鷺</product_name> 
+<shu>〈羽〉</shu><product_name>鸛</product_name> 
+<shu>〈羽〉</shu><product_name>雀</product_name> 
+<shu>〈羽〉</shu><product_name>鳩</product_name> 
+<shu>〈羽〉</shu><product_name>鴿</product_name> 
+<shu>〈羽〉</shu><product_name>鷹</product_name> 
+<shu>〈羽〉</shu><product_name>鷂</product_name> 
+<shu>〈羽〉</shu><product_name>雉</product_name> 
+<shu>〈羽〉</shu><product_name>鷴</product_name>      
+<shu>〈羽〉</shu><product_name>鴛鴦</product_name> 
+<shu>〈羽〉</shu><product_name>鴝鵒</product_name> 
+<shu>〈羽〉</shu><product_name>鸕鷀</product_name> 
+<shu>〈羽〉</shu><product_name>姑惡</product_name> 
+<shu>〈羽〉</shu><product_name>眉</product_name> 
+<shu>〈羽〉</shu><product_name>子䂓</product_name>      
+<shu>〈羽〉</shu><product_name>竹鷄</product_name> 
+<shu>〈羽〉</shu><product_name>啄木</product_name> 
+<shu>〈羽〉</shu><product_name>百舌</product_name> 
+<shu>〈羽〉</shu><product_name>鴟鴞</product_name><product_name></product_name>     
+
+<shu>〈毛〉</shu>〈毛〉      
+<shu>〈毛〉</shu><product_name>牛</product_name> 
+<shu>〈毛〉</shu><product_name>馬</product_name> 
+<shu>〈毛〉</shu><product_name>騾</product_name> 
+<shu>〈毛〉</shu><product_name>驢</product_name> 
+<shu>〈毛〉</shu><product_name>羊</product_name> 
+<shu>〈毛〉</shu><product_name>豕</product_name> 
+<shu>〈毛〉</shu><product_name>犬</product_name> 
+<shu>〈毛〉</shu><product_name>猫</product_name> 
+<shu>〈毛〉</shu><product_name>虎</product_name>      
+<shu>〈毛〉</shu><product_name>豹</product_name> 
+<shu>〈毛〉</shu><product_name></product_name> 
+<shu>〈毛〉</shu><product_name>狼</product_name> 
+<shu>〈毛〉</shu><product_name>熊</product_name> 
+<shu>〈毛〉</shu><product_name>猴</product_name> 
+<shu>〈毛〉</shu><product_name>狸</product_name> 
+<shu>〈毛〉</shu><product_name></product_name> 
+<shu>〈毛〉</shu><product_name>鹿</product_name> 
+<shu>〈毛〉</shu><product_name>麞</product_name> 
+<shu>〈毛〉</shu>【107】     
+<shu>〈毛〉</shu><product_name>麂</product_name> 
+<shu>〈毛〉</shu><product_name>兎</product_name> 
+<shu>〈毛〉</shu><product_name>野猫</product_name> 
+<shu>〈毛〉</shu><product_name>豪猪</product_name> 
+<shu>〈毛〉</shu><product_name>竹狗</product_name> 
+<shu>〈毛〉</shu><product_name>松䑕</product_name>     
+<shu>〈毛〉</shu><product_name>鱗</product_name>      
+<shu>〈毛〉</shu><product_name>鯉</product_name> 
+<shu>〈毛〉</shu><product_name>鱖</product_name> 
+<shu>〈毛〉</shu><product_name>鯿</product_name> 
+<shu>〈毛〉</shu><product_name>鯽</product_name> 
+<shu>〈毛〉</shu><product_name>鰣</product_name> 
+<shu>〈毛〉</shu><product_name>鱸</product_name> 
+<shu>〈毛〉</shu><product_name>鰱</product_name> 
+<shu>〈毛〉</shu><product_name>鯶</product_name> 
+<shu>〈毛〉</shu><product_name>鯖</product_name>      
+<shu>〈毛〉</shu><product_name>鱧</product_name> 
+<shu>〈毛〉</shu><product_name>鱤</product_name> 
+<shu>〈毛〉</shu><product_name>鰷</product_name> 
+<shu>〈毛〉</shu><product_name>鰻</product_name> 
+<shu>〈毛〉</shu><product_name>鮎</product_name> 
+<shu>〈毛〉</shu><product_name>石斑</product_name> 
+<shu>〈毛〉</shu><product_name>河豚</product_name>     
+<shu>〈毛〉</shu><product_name>介</product_name>      
+<shu>〈毛〉</shu><product_name></product_name> 
+<shu>〈毛〉</shu><product_name>鼈</product_name> 
+<shu>〈毛〉</shu><product_name>蝦</product_name> 
+<shu>〈毛〉</shu><product_name></product_name> 
+<shu>〈毛〉</shu><product_name>螺</product_name> 
+<shu>〈毛〉</shu><product_name>烏</product_name> 
+<shu>〈毛〉</shu><product_name>螄</product_name><product_name></product_name>    
+淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 
+坤同脩              訓導莆田黄 
+講同脩              縣丞溧水邰 
+洪校正              庠生賢溪方 
+祚同交              典史長洲吳鳴鳳刊行     
+坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/38462_2015_03_04_09_52_14.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,8 @@
+【102】    契本工課鈔肆貫     物産    按淳属嚴郡爲古揚州之境而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    者載焉     糓      秔有早稻晚稻紅稻白稻      糯有秋糯晩糯   粟有秔粟糯粟 
+【103】     麥有大麥小麥蕎麥 麻有黄麻白麻黒麻      豆有黄豆緑豆赤豆黒豆蚕豆     貨      絲 綿 紗 絹 紬 綾 布 苧       茶   蠟 油 燭 柴 炭 㯶      箬 末香  石     竹      苦竹 淡竹 筋竹 筀竹 斑竹 紫竹      水竹 廣竹 猫竹 箭竹 雷竹     木 
+【104】     松 柏 株 杉 樟 檜 桐 梓 桑      柘 楓 柳 檀 槐 榆 櫟 白楊       冬青     果      梅 李 桃 栗 椑 柿 梨 杏 棗      榧 橘 橙 菱 芡 石榴 枇杷      楊梅 銀杏 櫻桃 莆萄 蓮房 蓮心      林檎 西     菜      菘 芥 茄 莧 芹 蕨 芋 匏 葱 
+【105】     韮 薤 蒜 筍 蘿蔔 苦蕒 萵苣       冬 黄     花      菊 桂 蘭 蕙 葵 荷 牡丹 芍藥      海棠 酴醿 薔 芙蓉 山茶 水僊      萱草 鷄冠 杜䳌 紫荆 玉簮 鳯僊      蠟梅 剪金 木槿 梔子 木犀     藥      茯苓 前胡 半夏 欵冬 地榆 白术      菖莆 枸 苦參 地黄 蔞 蓽 
+【106】     天門冬 麥門冬 何首烏 車前子      天南星 吳茱萸 桔梗     羽      鷄 鵝 鴨 鴈 鴉 鵲 鶯 燕 鷗      鷺 鸛 雀 鳩 鴿 鷹 鷂 雉 鷴      鴛鴦 鴝鵒 鸕鷀 姑惡 眉 子䂓      竹鷄 啄木 百舌 鴟鴞     毛      牛 馬 騾 驢 羊 豕 犬 猫 虎      豹  狼 熊 猴 狸  鹿 麞 
+【107】     麂 兎 野猫 豪猪 竹狗 松䑕     鱗      鯉 鱖 鯿 鯽 鰣 鱸 鰱 鯶 鯖      鱧 鱤 鰷 鰻 鮎 石斑 河豚     介       鼈 蝦  螺 烏 螄    淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 坤同脩              訓導莆田黄 講同脩              縣丞溧水邰 洪校正              庠生賢溪方 祚同交              典史長洲吳鳴鳳刊行     坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/38462_2015_03_04_09_56_07.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,8 @@
+【102】    契本工課鈔肆貫     物産    按淳属嚴郡爲古揚州之境而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    者載焉     糓      秔有早稻晚稻紅稻白稻      糯有秋糯晩糯   粟有秔粟糯粟 
+【103】     麥有大麥小麥蕎麥 麻有黄麻白麻黒麻      豆有黄豆緑豆赤豆黒豆蚕豆     貨      絲 綿 紗 絹 紬 綾 布 苧       茶   蠟 油 燭 柴 炭 㯶      箬 末香  石     竹      苦竹 淡竹 筋竹 筀竹 斑竹 紫竹      水竹 廣竹 猫竹 箭竹 雷竹     木 
+【104】     松 柏 株 杉 樟 檜 桐 梓 桑      柘 楓 柳 檀 槐 榆 櫟 白楊       冬青     果      梅 李 桃 栗 椑 柿 梨 杏 棗      榧 橘 橙 菱 芡 石榴 枇杷      楊梅 銀杏 櫻桃 莆萄 蓮房 蓮心      林檎 西     菜      菘 芥 茄 莧 芹 蕨 芋 匏 葱 
+【105】     韮 薤 蒜 筍 蘿蔔 苦蕒 萵苣       冬 黄     花      菊 桂 蘭 蕙 葵 荷 牡丹 芍藥      海棠 酴醿 薔 芙蓉 山茶 水僊      萱草 鷄冠 杜䳌 紫荆 玉簮 鳯僊      蠟梅 剪金 木槿 梔子 木犀     藥      茯苓 前胡 半夏 欵冬 地榆 白术      菖莆 枸 苦參 地黄 蔞 蓽 
+【106】     天門冬 麥門冬 何首烏 車前子      天南星 吳茱萸 桔梗     羽      鷄 鵝 鴨 鴈 鴉 鵲 鶯 燕 鷗      鷺 鸛 雀 鳩 鴿 鷹 鷂 雉 鷴      鴛鴦 鴝鵒 鸕鷀 姑惡 眉 子䂓      竹鷄 啄木 百舌 鴟鴞     毛      牛 馬 騾 驢 羊 豕 犬 猫 虎      豹  狼 熊 猴 狸  鹿 麞 
+【107】     麂 兎 野猫 豪猪 竹狗 松䑕     鱗      鯉 鱖 鯿 鯽 鰣 鱸 鰱 鯶 鯖      鱧 鱤 鰷 鰻 鮎 石斑 河豚     介       鼈 蝦  螺 烏 螄    淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 坤同脩              訓導莆田黄 講同脩              縣丞溧水邰 洪校正              庠生賢溪方 祚同交              典史長洲吳鳴鳳刊行     坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/38462_2015_03_04_09_58_14.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,8 @@
+【102】    契本工課鈔肆貫     物産    按淳属嚴郡爲古揚州之境而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    者載焉     糓      秔有早稻晚稻紅稻白稻      糯有秋糯晩糯   粟有秔粟糯粟 
+【103】     麥有大麥小麥蕎麥 麻有黄麻白麻黒麻      豆有黄豆緑豆赤豆黒豆蚕豆     貨      絲 綿 紗 絹 紬 綾 布 苧       茶   蠟 油 燭 柴 炭 㯶      箬 末香  石     竹      苦竹 淡竹 筋竹 筀竹 斑竹 紫竹      水竹 廣竹 猫竹 箭竹 雷竹     木 
+【104】     松 柏 株 杉 樟 檜 桐 梓 桑      柘 楓 柳 檀 槐 榆 櫟 白楊       冬青     果      梅 李 桃 栗 椑 柿 梨 杏 棗      榧 橘 橙 菱 芡 石榴 枇杷      楊梅 銀杏 櫻桃 莆萄 蓮房 蓮心      林檎 西     菜      菘 芥 茄 莧 芹 蕨 芋 匏 葱 
+【105】     韮 薤 蒜 筍 蘿蔔 苦蕒 萵苣       冬 黄     花      菊 桂 蘭 蕙 葵 荷 牡丹 芍藥      海棠 酴醿 薔 芙蓉 山茶 水僊      萱草 鷄冠 杜䳌 紫荆 玉簮 鳯僊      蠟梅 剪金 木槿 梔子 木犀     藥      茯苓 前胡 半夏 欵冬 地榆 白术      菖莆 枸 苦參 地黄 蔞 蓽 
+【106】     天門冬 麥門冬 何首烏 車前子      天南星 吳茱萸 桔梗     羽      鷄 鵝 鴨 鴈 鴉 鵲 鶯 燕 鷗      鷺 鸛 雀 鳩 鴿 鷹 鷂 雉 鷴      鴛鴦 鴝鵒 鸕鷀 姑惡 眉 子䂓      竹鷄 啄木 百舌 鴟鴞     毛      牛 馬 騾 驢 羊 豕 犬 猫 虎      豹  狼 熊 猴 狸  鹿 麞 
+【107】     麂 兎 野猫 豪猪 竹狗 松䑕     鱗      鯉 鱖 鯿 鯽 鰣 鱸 鰱 鯶 鯖      鱧 鱤 鰷 鰻 鮎 石斑 河豚     介       鼈 蝦  螺 烏 螄    淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 坤同脩              訓導莆田黄 講同脩              縣丞溧水邰 洪校正              庠生賢溪方 祚同交              典史長洲吳鳴鳳刊行     坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/data/parsing_files/38462_2015_03_04_09_58_42.txt	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,8 @@
+【102】    契本工課鈔肆貫     物産    按淳属嚴郡爲古揚州之境而其物産之見於經    者曰陽鳥攸居而已曰篠簜既敷而已曰厥草惟    夭厥木惟喬而已固今日諸郡縣之所同而非止    嚴陵属縣爲然也謹擇其有資於民生服食噐用    者載焉     糓      秔有早稻晚稻紅稻白稻      糯有秋糯晩糯   粟有秔粟糯粟 
+【103】     麥有大麥小麥蕎麥 麻有黄麻白麻黒麻      豆有黄豆緑豆赤豆黒豆蚕豆     貨      絲 綿 紗 絹 紬 綾 布 苧       茶   蠟 油 燭 柴 炭 㯶      箬 末香  石     竹      苦竹 淡竹 筋竹 筀竹 斑竹 紫竹      水竹 廣竹 猫竹 箭竹 雷竹     木 
+【104】     松 柏 株 杉 樟 檜 桐 梓 桑      柘 楓 柳 檀 槐 榆 櫟 白楊       冬青     果      梅 李 桃 栗 椑 柿 梨 杏 棗      榧 橘 橙 菱 芡 石榴 枇杷      楊梅 銀杏 櫻桃 莆萄 蓮房 蓮心      林檎 西     菜      菘 芥 茄 莧 芹 蕨 芋 匏 葱 
+【105】     韮 薤 蒜 筍 蘿蔔 苦蕒 萵苣       冬 黄     花      菊 桂 蘭 蕙 葵 荷 牡丹 芍藥      海棠 酴醿 薔 芙蓉 山茶 水僊      萱草 鷄冠 杜䳌 紫荆 玉簮 鳯僊      蠟梅 剪金 木槿 梔子 木犀     藥      茯苓 前胡 半夏 欵冬 地榆 白术      菖莆 枸 苦參 地黄 蔞 蓽 
+【106】     天門冬 麥門冬 何首烏 車前子      天南星 吳茱萸 桔梗     羽      鷄 鵝 鴨 鴈 鴉 鵲 鶯 燕 鷗      鷺 鸛 雀 鳩 鴿 鷹 鷂 雉 鷴      鴛鴦 鴝鵒 鸕鷀 姑惡 眉 子䂓      竹鷄 啄木 百舌 鴟鴞     毛      牛 馬 騾 驢 羊 豕 犬 猫 虎      豹  狼 熊 猴 狸  鹿 麞 
+【107】     麂 兎 野猫 豪猪 竹狗 松䑕     鱗      鯉 鱖 鯿 鯽 鰣 鱸 鰱 鯶 鯖      鱧 鱤 鰷 鰻 鮎 石斑 河豚     介       鼈 蝦  螺 烏 螄    淳安縣志卷之四終 
+【108】淳安縣志卷之五           淳安縣知縣莆田姚鳴鸞重脩              教諭巴陵余 坤同脩              訓導莆田黄 講同脩              縣丞溧水邰 洪校正              庠生賢溪方 祚同交              典史長洲吳鳴鳳刊行     坊鄉    古之居民者春夏於野秋冬於邑後世制與古異    聴民自占而居而民安之亦乆矣淳安縣治城郭 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/js/bootstrap.js	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,2306 @@
+/*!
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+  throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+  'use strict';
+  var version = $.fn.jquery.split(' ')[0].split('.')
+  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
+    throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
+  }
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: transition.js v3.3.2
+ * http://getbootstrap.com/javascript/#transitions
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+  // ============================================================
+
+  function transitionEnd() {
+    var el = document.createElement('bootstrap')
+
+    var transEndEventNames = {
+      WebkitTransition : 'webkitTransitionEnd',
+      MozTransition    : 'transitionend',
+      OTransition      : 'oTransitionEnd otransitionend',
+      transition       : 'transitionend'
+    }
+
+    for (var name in transEndEventNames) {
+      if (el.style[name] !== undefined) {
+        return { end: transEndEventNames[name] }
+      }
+    }
+
+    return false // explicit for ie8 (  ._.)
+  }
+
+  // http://blog.alexmaccaw.com/css-transitions
+  $.fn.emulateTransitionEnd = function (duration) {
+    var called = false
+    var $el = this
+    $(this).one('bsTransitionEnd', function () { called = true })
+    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+    setTimeout(callback, duration)
+    return this
+  }
+
+  $(function () {
+    $.support.transition = transitionEnd()
+
+    if (!$.support.transition) return
+
+    $.event.special.bsTransitionEnd = {
+      bindType: $.support.transition.end,
+      delegateType: $.support.transition.end,
+      handle: function (e) {
+        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+      }
+    }
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: alert.js v3.3.2
+ * http://getbootstrap.com/javascript/#alerts
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // ALERT CLASS DEFINITION
+  // ======================
+
+  var dismiss = '[data-dismiss="alert"]'
+  var Alert   = function (el) {
+    $(el).on('click', dismiss, this.close)
+  }
+
+  Alert.VERSION = '3.3.2'
+
+  Alert.TRANSITION_DURATION = 150
+
+  Alert.prototype.close = function (e) {
+    var $this    = $(this)
+    var selector = $this.attr('data-target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    var $parent = $(selector)
+
+    if (e) e.preventDefault()
+
+    if (!$parent.length) {
+      $parent = $this.closest('.alert')
+    }
+
+    $parent.trigger(e = $.Event('close.bs.alert'))
+
+    if (e.isDefaultPrevented()) return
+
+    $parent.removeClass('in')
+
+    function removeElement() {
+      // detach from parent, fire event then clean up data
+      $parent.detach().trigger('closed.bs.alert').remove()
+    }
+
+    $.support.transition && $parent.hasClass('fade') ?
+      $parent
+        .one('bsTransitionEnd', removeElement)
+        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+      removeElement()
+  }
+
+
+  // ALERT PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.alert')
+
+      if (!data) $this.data('bs.alert', (data = new Alert(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  var old = $.fn.alert
+
+  $.fn.alert             = Plugin
+  $.fn.alert.Constructor = Alert
+
+
+  // ALERT NO CONFLICT
+  // =================
+
+  $.fn.alert.noConflict = function () {
+    $.fn.alert = old
+    return this
+  }
+
+
+  // ALERT DATA-API
+  // ==============
+
+  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: button.js v3.3.2
+ * http://getbootstrap.com/javascript/#buttons
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // BUTTON PUBLIC CLASS DEFINITION
+  // ==============================
+
+  var Button = function (element, options) {
+    this.$element  = $(element)
+    this.options   = $.extend({}, Button.DEFAULTS, options)
+    this.isLoading = false
+  }
+
+  Button.VERSION  = '3.3.2'
+
+  Button.DEFAULTS = {
+    loadingText: 'loading...'
+  }
+
+  Button.prototype.setState = function (state) {
+    var d    = 'disabled'
+    var $el  = this.$element
+    var val  = $el.is('input') ? 'val' : 'html'
+    var data = $el.data()
+
+    state = state + 'Text'
+
+    if (data.resetText == null) $el.data('resetText', $el[val]())
+
+    // push to event loop to allow forms to submit
+    setTimeout($.proxy(function () {
+      $el[val](data[state] == null ? this.options[state] : data[state])
+
+      if (state == 'loadingText') {
+        this.isLoading = true
+        $el.addClass(d).attr(d, d)
+      } else if (this.isLoading) {
+        this.isLoading = false
+        $el.removeClass(d).removeAttr(d)
+      }
+    }, this), 0)
+  }
+
+  Button.prototype.toggle = function () {
+    var changed = true
+    var $parent = this.$element.closest('[data-toggle="buttons"]')
+
+    if ($parent.length) {
+      var $input = this.$element.find('input')
+      if ($input.prop('type') == 'radio') {
+        if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
+        else $parent.find('.active').removeClass('active')
+      }
+      if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
+    } else {
+      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
+    }
+
+    if (changed) this.$element.toggleClass('active')
+  }
+
+
+  // BUTTON PLUGIN DEFINITION
+  // ========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.button')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.button', (data = new Button(this, options)))
+
+      if (option == 'toggle') data.toggle()
+      else if (option) data.setState(option)
+    })
+  }
+
+  var old = $.fn.button
+
+  $.fn.button             = Plugin
+  $.fn.button.Constructor = Button
+
+
+  // BUTTON NO CONFLICT
+  // ==================
+
+  $.fn.button.noConflict = function () {
+    $.fn.button = old
+    return this
+  }
+
+
+  // BUTTON DATA-API
+  // ===============
+
+  $(document)
+    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+      var $btn = $(e.target)
+      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
+      Plugin.call($btn, 'toggle')
+      e.preventDefault()
+    })
+    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
+    })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: carousel.js v3.3.2
+ * http://getbootstrap.com/javascript/#carousel
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // CAROUSEL CLASS DEFINITION
+  // =========================
+
+  var Carousel = function (element, options) {
+    this.$element    = $(element)
+    this.$indicators = this.$element.find('.carousel-indicators')
+    this.options     = options
+    this.paused      =
+    this.sliding     =
+    this.interval    =
+    this.$active     =
+    this.$items      = null
+
+    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
+
+    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
+      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
+  }
+
+  Carousel.VERSION  = '3.3.2'
+
+  Carousel.TRANSITION_DURATION = 600
+
+  Carousel.DEFAULTS = {
+    interval: 5000,
+    pause: 'hover',
+    wrap: true,
+    keyboard: true
+  }
+
+  Carousel.prototype.keydown = function (e) {
+    if (/input|textarea/i.test(e.target.tagName)) return
+    switch (e.which) {
+      case 37: this.prev(); break
+      case 39: this.next(); break
+      default: return
+    }
+
+    e.preventDefault()
+  }
+
+  Carousel.prototype.cycle = function (e) {
+    e || (this.paused = false)
+
+    this.interval && clearInterval(this.interval)
+
+    this.options.interval
+      && !this.paused
+      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
+
+    return this
+  }
+
+  Carousel.prototype.getItemIndex = function (item) {
+    this.$items = item.parent().children('.item')
+    return this.$items.index(item || this.$active)
+  }
+
+  Carousel.prototype.getItemForDirection = function (direction, active) {
+    var activeIndex = this.getItemIndex(active)
+    var willWrap = (direction == 'prev' && activeIndex === 0)
+                || (direction == 'next' && activeIndex == (this.$items.length - 1))
+    if (willWrap && !this.options.wrap) return active
+    var delta = direction == 'prev' ? -1 : 1
+    var itemIndex = (activeIndex + delta) % this.$items.length
+    return this.$items.eq(itemIndex)
+  }
+
+  Carousel.prototype.to = function (pos) {
+    var that        = this
+    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
+
+    if (pos > (this.$items.length - 1) || pos < 0) return
+
+    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
+    if (activeIndex == pos) return this.pause().cycle()
+
+    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
+  }
+
+  Carousel.prototype.pause = function (e) {
+    e || (this.paused = true)
+
+    if (this.$element.find('.next, .prev').length && $.support.transition) {
+      this.$element.trigger($.support.transition.end)
+      this.cycle(true)
+    }
+
+    this.interval = clearInterval(this.interval)
+
+    return this
+  }
+
+  Carousel.prototype.next = function () {
+    if (this.sliding) return
+    return this.slide('next')
+  }
+
+  Carousel.prototype.prev = function () {
+    if (this.sliding) return
+    return this.slide('prev')
+  }
+
+  Carousel.prototype.slide = function (type, next) {
+    var $active   = this.$element.find('.item.active')
+    var $next     = next || this.getItemForDirection(type, $active)
+    var isCycling = this.interval
+    var direction = type == 'next' ? 'left' : 'right'
+    var that      = this
+
+    if ($next.hasClass('active')) return (this.sliding = false)
+
+    var relatedTarget = $next[0]
+    var slideEvent = $.Event('slide.bs.carousel', {
+      relatedTarget: relatedTarget,
+      direction: direction
+    })
+    this.$element.trigger(slideEvent)
+    if (slideEvent.isDefaultPrevented()) return
+
+    this.sliding = true
+
+    isCycling && this.pause()
+
+    if (this.$indicators.length) {
+      this.$indicators.find('.active').removeClass('active')
+      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+      $nextIndicator && $nextIndicator.addClass('active')
+    }
+
+    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
+    if ($.support.transition && this.$element.hasClass('slide')) {
+      $next.addClass(type)
+      $next[0].offsetWidth // force reflow
+      $active.addClass(direction)
+      $next.addClass(direction)
+      $active
+        .one('bsTransitionEnd', function () {
+          $next.removeClass([type, direction].join(' ')).addClass('active')
+          $active.removeClass(['active', direction].join(' '))
+          that.sliding = false
+          setTimeout(function () {
+            that.$element.trigger(slidEvent)
+          }, 0)
+        })
+        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
+    } else {
+      $active.removeClass('active')
+      $next.addClass('active')
+      this.sliding = false
+      this.$element.trigger(slidEvent)
+    }
+
+    isCycling && this.cycle()
+
+    return this
+  }
+
+
+  // CAROUSEL PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.carousel')
+      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
+      var action  = typeof option == 'string' ? option : options.slide
+
+      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
+      if (typeof option == 'number') data.to(option)
+      else if (action) data[action]()
+      else if (options.interval) data.pause().cycle()
+    })
+  }
+
+  var old = $.fn.carousel
+
+  $.fn.carousel             = Plugin
+  $.fn.carousel.Constructor = Carousel
+
+
+  // CAROUSEL NO CONFLICT
+  // ====================
+
+  $.fn.carousel.noConflict = function () {
+    $.fn.carousel = old
+    return this
+  }
+
+
+  // CAROUSEL DATA-API
+  // =================
+
+  var clickHandler = function (e) {
+    var href
+    var $this   = $(this)
+    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+    if (!$target.hasClass('carousel')) return
+    var options = $.extend({}, $target.data(), $this.data())
+    var slideIndex = $this.attr('data-slide-to')
+    if (slideIndex) options.interval = false
+
+    Plugin.call($target, options)
+
+    if (slideIndex) {
+      $target.data('bs.carousel').to(slideIndex)
+    }
+
+    e.preventDefault()
+  }
+
+  $(document)
+    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
+    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
+
+  $(window).on('load', function () {
+    $('[data-ride="carousel"]').each(function () {
+      var $carousel = $(this)
+      Plugin.call($carousel, $carousel.data())
+    })
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: collapse.js v3.3.2
+ * http://getbootstrap.com/javascript/#collapse
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // COLLAPSE PUBLIC CLASS DEFINITION
+  // ================================
+
+  var Collapse = function (element, options) {
+    this.$element      = $(element)
+    this.options       = $.extend({}, Collapse.DEFAULTS, options)
+    this.$trigger      = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
+    this.transitioning = null
+
+    if (this.options.parent) {
+      this.$parent = this.getParent()
+    } else {
+      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
+    }
+
+    if (this.options.toggle) this.toggle()
+  }
+
+  Collapse.VERSION  = '3.3.2'
+
+  Collapse.TRANSITION_DURATION = 350
+
+  Collapse.DEFAULTS = {
+    toggle: true,
+    trigger: '[data-toggle="collapse"]'
+  }
+
+  Collapse.prototype.dimension = function () {
+    var hasWidth = this.$element.hasClass('width')
+    return hasWidth ? 'width' : 'height'
+  }
+
+  Collapse.prototype.show = function () {
+    if (this.transitioning || this.$element.hasClass('in')) return
+
+    var activesData
+    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
+
+    if (actives && actives.length) {
+      activesData = actives.data('bs.collapse')
+      if (activesData && activesData.transitioning) return
+    }
+
+    var startEvent = $.Event('show.bs.collapse')
+    this.$element.trigger(startEvent)
+    if (startEvent.isDefaultPrevented()) return
+
+    if (actives && actives.length) {
+      Plugin.call(actives, 'hide')
+      activesData || actives.data('bs.collapse', null)
+    }
+
+    var dimension = this.dimension()
+
+    this.$element
+      .removeClass('collapse')
+      .addClass('collapsing')[dimension](0)
+      .attr('aria-expanded', true)
+
+    this.$trigger
+      .removeClass('collapsed')
+      .attr('aria-expanded', true)
+
+    this.transitioning = 1
+
+    var complete = function () {
+      this.$element
+        .removeClass('collapsing')
+        .addClass('collapse in')[dimension]('')
+      this.transitioning = 0
+      this.$element
+        .trigger('shown.bs.collapse')
+    }
+
+    if (!$.support.transition) return complete.call(this)
+
+    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
+
+    this.$element
+      .one('bsTransitionEnd', $.proxy(complete, this))
+      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
+  }
+
+  Collapse.prototype.hide = function () {
+    if (this.transitioning || !this.$element.hasClass('in')) return
+
+    var startEvent = $.Event('hide.bs.collapse')
+    this.$element.trigger(startEvent)
+    if (startEvent.isDefaultPrevented()) return
+
+    var dimension = this.dimension()
+
+    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
+
+    this.$element
+      .addClass('collapsing')
+      .removeClass('collapse in')
+      .attr('aria-expanded', false)
+
+    this.$trigger
+      .addClass('collapsed')
+      .attr('aria-expanded', false)
+
+    this.transitioning = 1
+
+    var complete = function () {
+      this.transitioning = 0
+      this.$element
+        .removeClass('collapsing')
+        .addClass('collapse')
+        .trigger('hidden.bs.collapse')
+    }
+
+    if (!$.support.transition) return complete.call(this)
+
+    this.$element
+      [dimension](0)
+      .one('bsTransitionEnd', $.proxy(complete, this))
+      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
+  }
+
+  Collapse.prototype.toggle = function () {
+    this[this.$element.hasClass('in') ? 'hide' : 'show']()
+  }
+
+  Collapse.prototype.getParent = function () {
+    return $(this.options.parent)
+      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
+      .each($.proxy(function (i, element) {
+        var $element = $(element)
+        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
+      }, this))
+      .end()
+  }
+
+  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
+    var isOpen = $element.hasClass('in')
+
+    $element.attr('aria-expanded', isOpen)
+    $trigger
+      .toggleClass('collapsed', !isOpen)
+      .attr('aria-expanded', isOpen)
+  }
+
+  function getTargetFromTrigger($trigger) {
+    var href
+    var target = $trigger.attr('data-target')
+      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
+
+    return $(target)
+  }
+
+
+  // COLLAPSE PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.collapse')
+      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+      if (!data && options.toggle && option == 'show') options.toggle = false
+      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.collapse
+
+  $.fn.collapse             = Plugin
+  $.fn.collapse.Constructor = Collapse
+
+
+  // COLLAPSE NO CONFLICT
+  // ====================
+
+  $.fn.collapse.noConflict = function () {
+    $.fn.collapse = old
+    return this
+  }
+
+
+  // COLLAPSE DATA-API
+  // =================
+
+  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+    var $this   = $(this)
+
+    if (!$this.attr('data-target')) e.preventDefault()
+
+    var $target = getTargetFromTrigger($this)
+    var data    = $target.data('bs.collapse')
+    var option  = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
+
+    Plugin.call($target, option)
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: dropdown.js v3.3.2
+ * http://getbootstrap.com/javascript/#dropdowns
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // DROPDOWN CLASS DEFINITION
+  // =========================
+
+  var backdrop = '.dropdown-backdrop'
+  var toggle   = '[data-toggle="dropdown"]'
+  var Dropdown = function (element) {
+    $(element).on('click.bs.dropdown', this.toggle)
+  }
+
+  Dropdown.VERSION = '3.3.2'
+
+  Dropdown.prototype.toggle = function (e) {
+    var $this = $(this)
+
+    if ($this.is('.disabled, :disabled')) return
+
+    var $parent  = getParent($this)
+    var isActive = $parent.hasClass('open')
+
+    clearMenus()
+
+    if (!isActive) {
+      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
+        // if mobile we use a backdrop because click events don't delegate
+        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
+      }
+
+      var relatedTarget = { relatedTarget: this }
+      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
+
+      if (e.isDefaultPrevented()) return
+
+      $this
+        .trigger('focus')
+        .attr('aria-expanded', 'true')
+
+      $parent
+        .toggleClass('open')
+        .trigger('shown.bs.dropdown', relatedTarget)
+    }
+
+    return false
+  }
+
+  Dropdown.prototype.keydown = function (e) {
+    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
+
+    var $this = $(this)
+
+    e.preventDefault()
+    e.stopPropagation()
+
+    if ($this.is('.disabled, :disabled')) return
+
+    var $parent  = getParent($this)
+    var isActive = $parent.hasClass('open')
+
+    if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
+      if (e.which == 27) $parent.find(toggle).trigger('focus')
+      return $this.trigger('click')
+    }
+
+    var desc = ' li:not(.divider):visible a'
+    var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
+
+    if (!$items.length) return
+
+    var index = $items.index(e.target)
+
+    if (e.which == 38 && index > 0)                 index--                        // up
+    if (e.which == 40 && index < $items.length - 1) index++                        // down
+    if (!~index)                                      index = 0
+
+    $items.eq(index).trigger('focus')
+  }
+
+  function clearMenus(e) {
+    if (e && e.which === 3) return
+    $(backdrop).remove()
+    $(toggle).each(function () {
+      var $this         = $(this)
+      var $parent       = getParent($this)
+      var relatedTarget = { relatedTarget: this }
+
+      if (!$parent.hasClass('open')) return
+
+      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
+      if (e.isDefaultPrevented()) return
+
+      $this.attr('aria-expanded', 'false')
+      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
+    })
+  }
+
+  function getParent($this) {
+    var selector = $this.attr('data-target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    var $parent = selector && $(selector)
+
+    return $parent && $parent.length ? $parent : $this.parent()
+  }
+
+
+  // DROPDOWN PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.dropdown')
+
+      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  var old = $.fn.dropdown
+
+  $.fn.dropdown             = Plugin
+  $.fn.dropdown.Constructor = Dropdown
+
+
+  // DROPDOWN NO CONFLICT
+  // ====================
+
+  $.fn.dropdown.noConflict = function () {
+    $.fn.dropdown = old
+    return this
+  }
+
+
+  // APPLY TO STANDARD DROPDOWN ELEMENTS
+  // ===================================
+
+  $(document)
+    .on('click.bs.dropdown.data-api', clearMenus)
+    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
+    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
+    .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
+    .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: modal.js v3.3.2
+ * http://getbootstrap.com/javascript/#modals
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // MODAL CLASS DEFINITION
+  // ======================
+
+  var Modal = function (element, options) {
+    this.options        = options
+    this.$body          = $(document.body)
+    this.$element       = $(element)
+    this.$backdrop      =
+    this.isShown        = null
+    this.scrollbarWidth = 0
+
+    if (this.options.remote) {
+      this.$element
+        .find('.modal-content')
+        .load(this.options.remote, $.proxy(function () {
+          this.$element.trigger('loaded.bs.modal')
+        }, this))
+    }
+  }
+
+  Modal.VERSION  = '3.3.2'
+
+  Modal.TRANSITION_DURATION = 300
+  Modal.BACKDROP_TRANSITION_DURATION = 150
+
+  Modal.DEFAULTS = {
+    backdrop: true,
+    keyboard: true,
+    show: true
+  }
+
+  Modal.prototype.toggle = function (_relatedTarget) {
+    return this.isShown ? this.hide() : this.show(_relatedTarget)
+  }
+
+  Modal.prototype.show = function (_relatedTarget) {
+    var that = this
+    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
+
+    this.$element.trigger(e)
+
+    if (this.isShown || e.isDefaultPrevented()) return
+
+    this.isShown = true
+
+    this.checkScrollbar()
+    this.setScrollbar()
+    this.$body.addClass('modal-open')
+
+    this.escape()
+    this.resize()
+
+    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+
+    this.backdrop(function () {
+      var transition = $.support.transition && that.$element.hasClass('fade')
+
+      if (!that.$element.parent().length) {
+        that.$element.appendTo(that.$body) // don't move modals dom position
+      }
+
+      that.$element
+        .show()
+        .scrollTop(0)
+
+      if (that.options.backdrop) that.adjustBackdrop()
+      that.adjustDialog()
+
+      if (transition) {
+        that.$element[0].offsetWidth // force reflow
+      }
+
+      that.$element
+        .addClass('in')
+        .attr('aria-hidden', false)
+
+      that.enforceFocus()
+
+      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
+
+      transition ?
+        that.$element.find('.modal-dialog') // wait for modal to slide in
+          .one('bsTransitionEnd', function () {
+            that.$element.trigger('focus').trigger(e)
+          })
+          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+        that.$element.trigger('focus').trigger(e)
+    })
+  }
+
+  Modal.prototype.hide = function (e) {
+    if (e) e.preventDefault()
+
+    e = $.Event('hide.bs.modal')
+
+    this.$element.trigger(e)
+
+    if (!this.isShown || e.isDefaultPrevented()) return
+
+    this.isShown = false
+
+    this.escape()
+    this.resize()
+
+    $(document).off('focusin.bs.modal')
+
+    this.$element
+      .removeClass('in')
+      .attr('aria-hidden', true)
+      .off('click.dismiss.bs.modal')
+
+    $.support.transition && this.$element.hasClass('fade') ?
+      this.$element
+        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
+        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+      this.hideModal()
+  }
+
+  Modal.prototype.enforceFocus = function () {
+    $(document)
+      .off('focusin.bs.modal') // guard against infinite focus loop
+      .on('focusin.bs.modal', $.proxy(function (e) {
+        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
+          this.$element.trigger('focus')
+        }
+      }, this))
+  }
+
+  Modal.prototype.escape = function () {
+    if (this.isShown && this.options.keyboard) {
+      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
+        e.which == 27 && this.hide()
+      }, this))
+    } else if (!this.isShown) {
+      this.$element.off('keydown.dismiss.bs.modal')
+    }
+  }
+
+  Modal.prototype.resize = function () {
+    if (this.isShown) {
+      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
+    } else {
+      $(window).off('resize.bs.modal')
+    }
+  }
+
+  Modal.prototype.hideModal = function () {
+    var that = this
+    this.$element.hide()
+    this.backdrop(function () {
+      that.$body.removeClass('modal-open')
+      that.resetAdjustments()
+      that.resetScrollbar()
+      that.$element.trigger('hidden.bs.modal')
+    })
+  }
+
+  Modal.prototype.removeBackdrop = function () {
+    this.$backdrop && this.$backdrop.remove()
+    this.$backdrop = null
+  }
+
+  Modal.prototype.backdrop = function (callback) {
+    var that = this
+    var animate = this.$element.hasClass('fade') ? 'fade' : ''
+
+    if (this.isShown && this.options.backdrop) {
+      var doAnimate = $.support.transition && animate
+
+      this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
+        .prependTo(this.$element)
+        .on('click.dismiss.bs.modal', $.proxy(function (e) {
+          if (e.target !== e.currentTarget) return
+          this.options.backdrop == 'static'
+            ? this.$element[0].focus.call(this.$element[0])
+            : this.hide.call(this)
+        }, this))
+
+      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
+
+      this.$backdrop.addClass('in')
+
+      if (!callback) return
+
+      doAnimate ?
+        this.$backdrop
+          .one('bsTransitionEnd', callback)
+          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+        callback()
+
+    } else if (!this.isShown && this.$backdrop) {
+      this.$backdrop.removeClass('in')
+
+      var callbackRemove = function () {
+        that.removeBackdrop()
+        callback && callback()
+      }
+      $.support.transition && this.$element.hasClass('fade') ?
+        this.$backdrop
+          .one('bsTransitionEnd', callbackRemove)
+          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+        callbackRemove()
+
+    } else if (callback) {
+      callback()
+    }
+  }
+
+  // these following methods are used to handle overflowing modals
+
+  Modal.prototype.handleUpdate = function () {
+    if (this.options.backdrop) this.adjustBackdrop()
+    this.adjustDialog()
+  }
+
+  Modal.prototype.adjustBackdrop = function () {
+    this.$backdrop
+      .css('height', 0)
+      .css('height', this.$element[0].scrollHeight)
+  }
+
+  Modal.prototype.adjustDialog = function () {
+    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
+
+    this.$element.css({
+      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
+      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
+    })
+  }
+
+  Modal.prototype.resetAdjustments = function () {
+    this.$element.css({
+      paddingLeft: '',
+      paddingRight: ''
+    })
+  }
+
+  Modal.prototype.checkScrollbar = function () {
+    this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
+    this.scrollbarWidth = this.measureScrollbar()
+  }
+
+  Modal.prototype.setScrollbar = function () {
+    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+  }
+
+  Modal.prototype.resetScrollbar = function () {
+    this.$body.css('padding-right', '')
+  }
+
+  Modal.prototype.measureScrollbar = function () { // thx walsh
+    var scrollDiv = document.createElement('div')
+    scrollDiv.className = 'modal-scrollbar-measure'
+    this.$body.append(scrollDiv)
+    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+    this.$body[0].removeChild(scrollDiv)
+    return scrollbarWidth
+  }
+
+
+  // MODAL PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option, _relatedTarget) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.modal')
+      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
+      if (typeof option == 'string') data[option](_relatedTarget)
+      else if (options.show) data.show(_relatedTarget)
+    })
+  }
+
+  var old = $.fn.modal
+
+  $.fn.modal             = Plugin
+  $.fn.modal.Constructor = Modal
+
+
+  // MODAL NO CONFLICT
+  // =================
+
+  $.fn.modal.noConflict = function () {
+    $.fn.modal = old
+    return this
+  }
+
+
+  // MODAL DATA-API
+  // ==============
+
+  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
+    var $this   = $(this)
+    var href    = $this.attr('href')
+    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
+    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
+
+    if ($this.is('a')) e.preventDefault()
+
+    $target.one('show.bs.modal', function (showEvent) {
+      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+      $target.one('hidden.bs.modal', function () {
+        $this.is(':visible') && $this.trigger('focus')
+      })
+    })
+    Plugin.call($target, option, this)
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tooltip.js v3.3.2
+ * http://getbootstrap.com/javascript/#tooltip
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // TOOLTIP PUBLIC CLASS DEFINITION
+  // ===============================
+
+  var Tooltip = function (element, options) {
+    this.type       =
+    this.options    =
+    this.enabled    =
+    this.timeout    =
+    this.hoverState =
+    this.$element   = null
+
+    this.init('tooltip', element, options)
+  }
+
+  Tooltip.VERSION  = '3.3.2'
+
+  Tooltip.TRANSITION_DURATION = 150
+
+  Tooltip.DEFAULTS = {
+    animation: true,
+    placement: 'top',
+    selector: false,
+    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+    trigger: 'hover focus',
+    title: '',
+    delay: 0,
+    html: false,
+    container: false,
+    viewport: {
+      selector: 'body',
+      padding: 0
+    }
+  }
+
+  Tooltip.prototype.init = function (type, element, options) {
+    this.enabled   = true
+    this.type      = type
+    this.$element  = $(element)
+    this.options   = this.getOptions(options)
+    this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
+
+    var triggers = this.options.trigger.split(' ')
+
+    for (var i = triggers.length; i--;) {
+      var trigger = triggers[i]
+
+      if (trigger == 'click') {
+        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+      } else if (trigger != 'manual') {
+        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
+        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
+
+        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+      }
+    }
+
+    this.options.selector ?
+      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+      this.fixTitle()
+  }
+
+  Tooltip.prototype.getDefaults = function () {
+    return Tooltip.DEFAULTS
+  }
+
+  Tooltip.prototype.getOptions = function (options) {
+    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
+
+    if (options.delay && typeof options.delay == 'number') {
+      options.delay = {
+        show: options.delay,
+        hide: options.delay
+      }
+    }
+
+    return options
+  }
+
+  Tooltip.prototype.getDelegateOptions = function () {
+    var options  = {}
+    var defaults = this.getDefaults()
+
+    this._options && $.each(this._options, function (key, value) {
+      if (defaults[key] != value) options[key] = value
+    })
+
+    return options
+  }
+
+  Tooltip.prototype.enter = function (obj) {
+    var self = obj instanceof this.constructor ?
+      obj : $(obj.currentTarget).data('bs.' + this.type)
+
+    if (self && self.$tip && self.$tip.is(':visible')) {
+      self.hoverState = 'in'
+      return
+    }
+
+    if (!self) {
+      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+      $(obj.currentTarget).data('bs.' + this.type, self)
+    }
+
+    clearTimeout(self.timeout)
+
+    self.hoverState = 'in'
+
+    if (!self.options.delay || !self.options.delay.show) return self.show()
+
+    self.timeout = setTimeout(function () {
+      if (self.hoverState == 'in') self.show()
+    }, self.options.delay.show)
+  }
+
+  Tooltip.prototype.leave = function (obj) {
+    var self = obj instanceof this.constructor ?
+      obj : $(obj.currentTarget).data('bs.' + this.type)
+
+    if (!self) {
+      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+      $(obj.currentTarget).data('bs.' + this.type, self)
+    }
+
+    clearTimeout(self.timeout)
+
+    self.hoverState = 'out'
+
+    if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+    self.timeout = setTimeout(function () {
+      if (self.hoverState == 'out') self.hide()
+    }, self.options.delay.hide)
+  }
+
+  Tooltip.prototype.show = function () {
+    var e = $.Event('show.bs.' + this.type)
+
+    if (this.hasContent() && this.enabled) {
+      this.$element.trigger(e)
+
+      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
+      if (e.isDefaultPrevented() || !inDom) return
+      var that = this
+
+      var $tip = this.tip()
+
+      var tipId = this.getUID(this.type)
+
+      this.setContent()
+      $tip.attr('id', tipId)
+      this.$element.attr('aria-describedby', tipId)
+
+      if (this.options.animation) $tip.addClass('fade')
+
+      var placement = typeof this.options.placement == 'function' ?
+        this.options.placement.call(this, $tip[0], this.$element[0]) :
+        this.options.placement
+
+      var autoToken = /\s?auto?\s?/i
+      var autoPlace = autoToken.test(placement)
+      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
+
+      $tip
+        .detach()
+        .css({ top: 0, left: 0, display: 'block' })
+        .addClass(placement)
+        .data('bs.' + this.type, this)
+
+      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+
+      var pos          = this.getPosition()
+      var actualWidth  = $tip[0].offsetWidth
+      var actualHeight = $tip[0].offsetHeight
+
+      if (autoPlace) {
+        var orgPlacement = placement
+        var $container   = this.options.container ? $(this.options.container) : this.$element.parent()
+        var containerDim = this.getPosition($container)
+
+        placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top'    :
+                    placement == 'top'    && pos.top    - actualHeight < containerDim.top    ? 'bottom' :
+                    placement == 'right'  && pos.right  + actualWidth  > containerDim.width  ? 'left'   :
+                    placement == 'left'   && pos.left   - actualWidth  < containerDim.left   ? 'right'  :
+                    placement
+
+        $tip
+          .removeClass(orgPlacement)
+          .addClass(placement)
+      }
+
+      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
+
+      this.applyPlacement(calculatedOffset, placement)
+
+      var complete = function () {
+        var prevHoverState = that.hoverState
+        that.$element.trigger('shown.bs.' + that.type)
+        that.hoverState = null
+
+        if (prevHoverState == 'out') that.leave(that)
+      }
+
+      $.support.transition && this.$tip.hasClass('fade') ?
+        $tip
+          .one('bsTransitionEnd', complete)
+          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+        complete()
+    }
+  }
+
+  Tooltip.prototype.applyPlacement = function (offset, placement) {
+    var $tip   = this.tip()
+    var width  = $tip[0].offsetWidth
+    var height = $tip[0].offsetHeight
+
+    // manually read margins because getBoundingClientRect includes difference
+    var marginTop = parseInt($tip.css('margin-top'), 10)
+    var marginLeft = parseInt($tip.css('margin-left'), 10)
+
+    // we must check for NaN for ie 8/9
+    if (isNaN(marginTop))  marginTop  = 0
+    if (isNaN(marginLeft)) marginLeft = 0
+
+    offset.top  = offset.top  + marginTop
+    offset.left = offset.left + marginLeft
+
+    // $.fn.offset doesn't round pixel values
+    // so we use setOffset directly with our own function B-0
+    $.offset.setOffset($tip[0], $.extend({
+      using: function (props) {
+        $tip.css({
+          top: Math.round(props.top),
+          left: Math.round(props.left)
+        })
+      }
+    }, offset), 0)
+
+    $tip.addClass('in')
+
+    // check to see if placing tip in new offset caused the tip to resize itself
+    var actualWidth  = $tip[0].offsetWidth
+    var actualHeight = $tip[0].offsetHeight
+
+    if (placement == 'top' && actualHeight != height) {
+      offset.top = offset.top + height - actualHeight
+    }
+
+    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
+
+    if (delta.left) offset.left += delta.left
+    else offset.top += delta.top
+
+    var isVertical          = /top|bottom/.test(placement)
+    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
+
+    $tip.offset(offset)
+    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
+  }
+
+  Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
+    this.arrow()
+      .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
+      .css(isHorizontal ? 'top' : 'left', '')
+  }
+
+  Tooltip.prototype.setContent = function () {
+    var $tip  = this.tip()
+    var title = this.getTitle()
+
+    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+    $tip.removeClass('fade in top bottom left right')
+  }
+
+  Tooltip.prototype.hide = function (callback) {
+    var that = this
+    var $tip = this.tip()
+    var e    = $.Event('hide.bs.' + this.type)
+
+    function complete() {
+      if (that.hoverState != 'in') $tip.detach()
+      that.$element
+        .removeAttr('aria-describedby')
+        .trigger('hidden.bs.' + that.type)
+      callback && callback()
+    }
+
+    this.$element.trigger(e)
+
+    if (e.isDefaultPrevented()) return
+
+    $tip.removeClass('in')
+
+    $.support.transition && this.$tip.hasClass('fade') ?
+      $tip
+        .one('bsTransitionEnd', complete)
+        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+      complete()
+
+    this.hoverState = null
+
+    return this
+  }
+
+  Tooltip.prototype.fixTitle = function () {
+    var $e = this.$element
+    if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
+      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
+    }
+  }
+
+  Tooltip.prototype.hasContent = function () {
+    return this.getTitle()
+  }
+
+  Tooltip.prototype.getPosition = function ($element) {
+    $element   = $element || this.$element
+
+    var el     = $element[0]
+    var isBody = el.tagName == 'BODY'
+
+    var elRect    = el.getBoundingClientRect()
+    if (elRect.width == null) {
+      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
+      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
+    }
+    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
+    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
+    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
+
+    return $.extend({}, elRect, scroll, outerDims, elOffset)
+  }
+
+  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
+    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
+           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
+        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+  }
+
+  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+    var delta = { top: 0, left: 0 }
+    if (!this.$viewport) return delta
+
+    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+    var viewportDimensions = this.getPosition(this.$viewport)
+
+    if (/right|left/.test(placement)) {
+      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
+      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+      if (topEdgeOffset < viewportDimensions.top) { // top overflow
+        delta.top = viewportDimensions.top - topEdgeOffset
+      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+      }
+    } else {
+      var leftEdgeOffset  = pos.left - viewportPadding
+      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+        delta.left = viewportDimensions.left - leftEdgeOffset
+      } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+      }
+    }
+
+    return delta
+  }
+
+  Tooltip.prototype.getTitle = function () {
+    var title
+    var $e = this.$element
+    var o  = this.options
+
+    title = $e.attr('data-original-title')
+      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
+
+    return title
+  }
+
+  Tooltip.prototype.getUID = function (prefix) {
+    do prefix += ~~(Math.random() * 1000000)
+    while (document.getElementById(prefix))
+    return prefix
+  }
+
+  Tooltip.prototype.tip = function () {
+    return (this.$tip = this.$tip || $(this.options.template))
+  }
+
+  Tooltip.prototype.arrow = function () {
+    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
+  }
+
+  Tooltip.prototype.enable = function () {
+    this.enabled = true
+  }
+
+  Tooltip.prototype.disable = function () {
+    this.enabled = false
+  }
+
+  Tooltip.prototype.toggleEnabled = function () {
+    this.enabled = !this.enabled
+  }
+
+  Tooltip.prototype.toggle = function (e) {
+    var self = this
+    if (e) {
+      self = $(e.currentTarget).data('bs.' + this.type)
+      if (!self) {
+        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+        $(e.currentTarget).data('bs.' + this.type, self)
+      }
+    }
+
+    self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+  }
+
+  Tooltip.prototype.destroy = function () {
+    var that = this
+    clearTimeout(this.timeout)
+    this.hide(function () {
+      that.$element.off('.' + that.type).removeData('bs.' + that.type)
+    })
+  }
+
+
+  // TOOLTIP PLUGIN DEFINITION
+  // =========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.tooltip')
+      var options = typeof option == 'object' && option
+
+      if (!data && option == 'destroy') return
+      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.tooltip
+
+  $.fn.tooltip             = Plugin
+  $.fn.tooltip.Constructor = Tooltip
+
+
+  // TOOLTIP NO CONFLICT
+  // ===================
+
+  $.fn.tooltip.noConflict = function () {
+    $.fn.tooltip = old
+    return this
+  }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: popover.js v3.3.2
+ * http://getbootstrap.com/javascript/#popovers
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // POPOVER PUBLIC CLASS DEFINITION
+  // ===============================
+
+  var Popover = function (element, options) {
+    this.init('popover', element, options)
+  }
+
+  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+
+  Popover.VERSION  = '3.3.2'
+
+  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
+    placement: 'right',
+    trigger: 'click',
+    content: '',
+    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+  })
+
+
+  // NOTE: POPOVER EXTENDS tooltip.js
+  // ================================
+
+  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
+
+  Popover.prototype.constructor = Popover
+
+  Popover.prototype.getDefaults = function () {
+    return Popover.DEFAULTS
+  }
+
+  Popover.prototype.setContent = function () {
+    var $tip    = this.tip()
+    var title   = this.getTitle()
+    var content = this.getContent()
+
+    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
+    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
+      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
+    ](content)
+
+    $tip.removeClass('fade top bottom left right in')
+
+    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
+    // this manually by checking the contents.
+    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
+  }
+
+  Popover.prototype.hasContent = function () {
+    return this.getTitle() || this.getContent()
+  }
+
+  Popover.prototype.getContent = function () {
+    var $e = this.$element
+    var o  = this.options
+
+    return $e.attr('data-content')
+      || (typeof o.content == 'function' ?
+            o.content.call($e[0]) :
+            o.content)
+  }
+
+  Popover.prototype.arrow = function () {
+    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
+  }
+
+  Popover.prototype.tip = function () {
+    if (!this.$tip) this.$tip = $(this.options.template)
+    return this.$tip
+  }
+
+
+  // POPOVER PLUGIN DEFINITION
+  // =========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.popover')
+      var options = typeof option == 'object' && option
+
+      if (!data && option == 'destroy') return
+      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.popover
+
+  $.fn.popover             = Plugin
+  $.fn.popover.Constructor = Popover
+
+
+  // POPOVER NO CONFLICT
+  // ===================
+
+  $.fn.popover.noConflict = function () {
+    $.fn.popover = old
+    return this
+  }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: scrollspy.js v3.3.2
+ * http://getbootstrap.com/javascript/#scrollspy
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // SCROLLSPY CLASS DEFINITION
+  // ==========================
+
+  function ScrollSpy(element, options) {
+    var process  = $.proxy(this.process, this)
+
+    this.$body          = $('body')
+    this.$scrollElement = $(element).is('body') ? $(window) : $(element)
+    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
+    this.selector       = (this.options.target || '') + ' .nav li > a'
+    this.offsets        = []
+    this.targets        = []
+    this.activeTarget   = null
+    this.scrollHeight   = 0
+
+    this.$scrollElement.on('scroll.bs.scrollspy', process)
+    this.refresh()
+    this.process()
+  }
+
+  ScrollSpy.VERSION  = '3.3.2'
+
+  ScrollSpy.DEFAULTS = {
+    offset: 10
+  }
+
+  ScrollSpy.prototype.getScrollHeight = function () {
+    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+  }
+
+  ScrollSpy.prototype.refresh = function () {
+    var offsetMethod = 'offset'
+    var offsetBase   = 0
+
+    if (!$.isWindow(this.$scrollElement[0])) {
+      offsetMethod = 'position'
+      offsetBase   = this.$scrollElement.scrollTop()
+    }
+
+    this.offsets = []
+    this.targets = []
+    this.scrollHeight = this.getScrollHeight()
+
+    var self     = this
+
+    this.$body
+      .find(this.selector)
+      .map(function () {
+        var $el   = $(this)
+        var href  = $el.data('target') || $el.attr('href')
+        var $href = /^#./.test(href) && $(href)
+
+        return ($href
+          && $href.length
+          && $href.is(':visible')
+          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
+      })
+      .sort(function (a, b) { return a[0] - b[0] })
+      .each(function () {
+        self.offsets.push(this[0])
+        self.targets.push(this[1])
+      })
+  }
+
+  ScrollSpy.prototype.process = function () {
+    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
+    var scrollHeight = this.getScrollHeight()
+    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
+    var offsets      = this.offsets
+    var targets      = this.targets
+    var activeTarget = this.activeTarget
+    var i
+
+    if (this.scrollHeight != scrollHeight) {
+      this.refresh()
+    }
+
+    if (scrollTop >= maxScroll) {
+      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
+    }
+
+    if (activeTarget && scrollTop < offsets[0]) {
+      this.activeTarget = null
+      return this.clear()
+    }
+
+    for (i = offsets.length; i--;) {
+      activeTarget != targets[i]
+        && scrollTop >= offsets[i]
+        && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
+        && this.activate(targets[i])
+    }
+  }
+
+  ScrollSpy.prototype.activate = function (target) {
+    this.activeTarget = target
+
+    this.clear()
+
+    var selector = this.selector +
+        '[data-target="' + target + '"],' +
+        this.selector + '[href="' + target + '"]'
+
+    var active = $(selector)
+      .parents('li')
+      .addClass('active')
+
+    if (active.parent('.dropdown-menu').length) {
+      active = active
+        .closest('li.dropdown')
+        .addClass('active')
+    }
+
+    active.trigger('activate.bs.scrollspy')
+  }
+
+  ScrollSpy.prototype.clear = function () {
+    $(this.selector)
+      .parentsUntil(this.options.target, '.active')
+      .removeClass('active')
+  }
+
+
+  // SCROLLSPY PLUGIN DEFINITION
+  // ===========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.scrollspy')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.scrollspy
+
+  $.fn.scrollspy             = Plugin
+  $.fn.scrollspy.Constructor = ScrollSpy
+
+
+  // SCROLLSPY NO CONFLICT
+  // =====================
+
+  $.fn.scrollspy.noConflict = function () {
+    $.fn.scrollspy = old
+    return this
+  }
+
+
+  // SCROLLSPY DATA-API
+  // ==================
+
+  $(window).on('load.bs.scrollspy.data-api', function () {
+    $('[data-spy="scroll"]').each(function () {
+      var $spy = $(this)
+      Plugin.call($spy, $spy.data())
+    })
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tab.js v3.3.2
+ * http://getbootstrap.com/javascript/#tabs
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // TAB CLASS DEFINITION
+  // ====================
+
+  var Tab = function (element) {
+    this.element = $(element)
+  }
+
+  Tab.VERSION = '3.3.2'
+
+  Tab.TRANSITION_DURATION = 150
+
+  Tab.prototype.show = function () {
+    var $this    = this.element
+    var $ul      = $this.closest('ul:not(.dropdown-menu)')
+    var selector = $this.data('target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    if ($this.parent('li').hasClass('active')) return
+
+    var $previous = $ul.find('.active:last a')
+    var hideEvent = $.Event('hide.bs.tab', {
+      relatedTarget: $this[0]
+    })
+    var showEvent = $.Event('show.bs.tab', {
+      relatedTarget: $previous[0]
+    })
+
+    $previous.trigger(hideEvent)
+    $this.trigger(showEvent)
+
+    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
+
+    var $target = $(selector)
+
+    this.activate($this.closest('li'), $ul)
+    this.activate($target, $target.parent(), function () {
+      $previous.trigger({
+        type: 'hidden.bs.tab',
+        relatedTarget: $this[0]
+      })
+      $this.trigger({
+        type: 'shown.bs.tab',
+        relatedTarget: $previous[0]
+      })
+    })
+  }
+
+  Tab.prototype.activate = function (element, container, callback) {
+    var $active    = container.find('> .active')
+    var transition = callback
+      && $.support.transition
+      && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
+
+    function next() {
+      $active
+        .removeClass('active')
+        .find('> .dropdown-menu > .active')
+          .removeClass('active')
+        .end()
+        .find('[data-toggle="tab"]')
+          .attr('aria-expanded', false)
+
+      element
+        .addClass('active')
+        .find('[data-toggle="tab"]')
+          .attr('aria-expanded', true)
+
+      if (transition) {
+        element[0].offsetWidth // reflow for transition
+        element.addClass('in')
+      } else {
+        element.removeClass('fade')
+      }
+
+      if (element.parent('.dropdown-menu')) {
+        element
+          .closest('li.dropdown')
+            .addClass('active')
+          .end()
+          .find('[data-toggle="tab"]')
+            .attr('aria-expanded', true)
+      }
+
+      callback && callback()
+    }
+
+    $active.length && transition ?
+      $active
+        .one('bsTransitionEnd', next)
+        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
+      next()
+
+    $active.removeClass('in')
+  }
+
+
+  // TAB PLUGIN DEFINITION
+  // =====================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.tab')
+
+      if (!data) $this.data('bs.tab', (data = new Tab(this)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.tab
+
+  $.fn.tab             = Plugin
+  $.fn.tab.Constructor = Tab
+
+
+  // TAB NO CONFLICT
+  // ===============
+
+  $.fn.tab.noConflict = function () {
+    $.fn.tab = old
+    return this
+  }
+
+
+  // TAB DATA-API
+  // ============
+
+  var clickHandler = function (e) {
+    e.preventDefault()
+    Plugin.call($(this), 'show')
+  }
+
+  $(document)
+    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
+    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: affix.js v3.3.2
+ * http://getbootstrap.com/javascript/#affix
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // AFFIX CLASS DEFINITION
+  // ======================
+
+  var Affix = function (element, options) {
+    this.options = $.extend({}, Affix.DEFAULTS, options)
+
+    this.$target = $(this.options.target)
+      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
+      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
+
+    this.$element     = $(element)
+    this.affixed      =
+    this.unpin        =
+    this.pinnedOffset = null
+
+    this.checkPosition()
+  }
+
+  Affix.VERSION  = '3.3.2'
+
+  Affix.RESET    = 'affix affix-top affix-bottom'
+
+  Affix.DEFAULTS = {
+    offset: 0,
+    target: window
+  }
+
+  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
+    var scrollTop    = this.$target.scrollTop()
+    var position     = this.$element.offset()
+    var targetHeight = this.$target.height()
+
+    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
+
+    if (this.affixed == 'bottom') {
+      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
+      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
+    }
+
+    var initializing   = this.affixed == null
+    var colliderTop    = initializing ? scrollTop : position.top
+    var colliderHeight = initializing ? targetHeight : height
+
+    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
+    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
+
+    return false
+  }
+
+  Affix.prototype.getPinnedOffset = function () {
+    if (this.pinnedOffset) return this.pinnedOffset
+    this.$element.removeClass(Affix.RESET).addClass('affix')
+    var scrollTop = this.$target.scrollTop()
+    var position  = this.$element.offset()
+    return (this.pinnedOffset = position.top - scrollTop)
+  }
+
+  Affix.prototype.checkPositionWithEventLoop = function () {
+    setTimeout($.proxy(this.checkPosition, this), 1)
+  }
+
+  Affix.prototype.checkPosition = function () {
+    if (!this.$element.is(':visible')) return
+
+    var height       = this.$element.height()
+    var offset       = this.options.offset
+    var offsetTop    = offset.top
+    var offsetBottom = offset.bottom
+    var scrollHeight = $('body').height()
+
+    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
+    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
+    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
+
+    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
+
+    if (this.affixed != affix) {
+      if (this.unpin != null) this.$element.css('top', '')
+
+      var affixType = 'affix' + (affix ? '-' + affix : '')
+      var e         = $.Event(affixType + '.bs.affix')
+
+      this.$element.trigger(e)
+
+      if (e.isDefaultPrevented()) return
+
+      this.affixed = affix
+      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
+
+      this.$element
+        .removeClass(Affix.RESET)
+        .addClass(affixType)
+        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
+    }
+
+    if (affix == 'bottom') {
+      this.$element.offset({
+        top: scrollHeight - height - offsetBottom
+      })
+    }
+  }
+
+
+  // AFFIX PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.affix')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.affix
+
+  $.fn.affix             = Plugin
+  $.fn.affix.Constructor = Affix
+
+
+  // AFFIX NO CONFLICT
+  // =================
+
+  $.fn.affix.noConflict = function () {
+    $.fn.affix = old
+    return this
+  }
+
+
+  // AFFIX DATA-API
+  // ==============
+
+  $(window).on('load', function () {
+    $('[data-spy="affix"]').each(function () {
+      var $spy = $(this)
+      var data = $spy.data()
+
+      data.offset = data.offset || {}
+
+      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
+      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
+
+      Plugin.call($spy, data)
+    })
+  })
+
+}(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/js/jquery-ui.js	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,16608 @@
+/*! jQuery UI - v1.11.3 - 2015-02-12
+* http://jqueryui.com
+* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+/*!
+ * jQuery UI Core 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */
+
+
+// $.ui might exist from components with no dependencies, e.g., $.ui.position
+$.ui = $.ui || {};
+
+$.extend( $.ui, {
+	version: "1.11.3",
+
+	keyCode: {
+		BACKSPACE: 8,
+		COMMA: 188,
+		DELETE: 46,
+		DOWN: 40,
+		END: 35,
+		ENTER: 13,
+		ESCAPE: 27,
+		HOME: 36,
+		LEFT: 37,
+		PAGE_DOWN: 34,
+		PAGE_UP: 33,
+		PERIOD: 190,
+		RIGHT: 39,
+		SPACE: 32,
+		TAB: 9,
+		UP: 38
+	}
+});
+
+// plugins
+$.fn.extend({
+	scrollParent: function( includeHidden ) {
+		var position = this.css( "position" ),
+			excludeStaticParent = position === "absolute",
+			overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+			scrollParent = this.parents().filter( function() {
+				var parent = $( this );
+				if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+					return false;
+				}
+				return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
+			}).eq( 0 );
+
+		return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
+	},
+
+	uniqueId: (function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each(function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			});
+		};
+	})(),
+
+	removeUniqueId: function() {
+		return this.each(function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		});
+	}
+});
+
+// selectors
+function focusable( element, isTabIndexNotNaN ) {
+	var map, mapName, img,
+		nodeName = element.nodeName.toLowerCase();
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
+		return !!img && visible( img );
+	}
+	return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
+		!element.disabled :
+		"a" === nodeName ?
+			element.href || isTabIndexNotNaN :
+			isTabIndexNotNaN) &&
+		// the element and all of its ancestors must be visible
+		visible( element );
+}
+
+function visible( element ) {
+	return $.expr.filters.visible( element ) &&
+		!$( element ).parents().addBack().filter(function() {
+			return $.css( this, "visibility" ) === "hidden";
+		}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo(function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		}) :
+		// support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		},
+
+	focusable: function( element ) {
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
+	},
+
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			isTabIndexNaN = isNaN( tabIndex );
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
+	}
+});
+
+// support: jQuery <1.8
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			});
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each(function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			});
+		};
+
+		$.fn[ "outer" + name] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each(function() {
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
+			});
+		};
+	});
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
+if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
+	$.fn.removeData = (function( removeData ) {
+		return function( key ) {
+			if ( arguments.length ) {
+				return removeData.call( this, $.camelCase( key ) );
+			} else {
+				return removeData.call( this );
+			}
+		};
+	})( $.fn.removeData );
+}
+
+// deprecated
+$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+$.fn.extend({
+	focus: (function( orig ) {
+		return function( delay, fn ) {
+			return typeof delay === "number" ?
+				this.each(function() {
+					var elem = this;
+					setTimeout(function() {
+						$( elem ).focus();
+						if ( fn ) {
+							fn.call( elem );
+						}
+					}, delay );
+				}) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.focus ),
+
+	disableSelection: (function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.bind( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+		};
+	})(),
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	},
+
+	zIndex: function( zIndex ) {
+		if ( zIndex !== undefined ) {
+			return this.css( "zIndex", zIndex );
+		}
+
+		if ( this.length ) {
+			var elem = $( this[ 0 ] ), position, value;
+			while ( elem.length && elem[ 0 ] !== document ) {
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
+				// This makes behavior of this function consistent across browsers
+				// WebKit always returns auto if the element is positioned
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+					// IE returns 0 when zIndex is not specified
+					// other browsers return a string
+					// we ignore the case of nested elements with an explicit value of 0
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
+						return value;
+					}
+				}
+				elem = elem.parent();
+			}
+		}
+
+		return 0;
+	}
+});
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+$.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Widget 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+	widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; (elem = elems[i]) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+})( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widget_slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = widget_slice.call( arguments, 1 ),
+			returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat(args) );
+			}
+
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widget_uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled", !!value );
+
+			// If the widget is becoming disabled, then nothing is interactive
+			if ( value ) {
+				this.hoverable.removeClass( "ui-state-hover" );
+				this.focusable.removeClass( "ui-state-focus" );
+			}
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOptions({ disabled: false });
+	},
+	disable: function() {
+		return this._setOptions({ disabled: true });
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Mouse 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/mouse/
+ */
+
+
+var mouseHandled = false;
+$( document ).mouseup( function() {
+	mouseHandled = false;
+});
+
+var mouse = $.widget("ui.mouse", {
+	version: "1.11.3",
+	options: {
+		cancel: "input,textarea,button,select,option",
+		distance: 1,
+		delay: 0
+	},
+	_mouseInit: function() {
+		var that = this;
+
+		this.element
+			.bind("mousedown." + this.widgetName, function(event) {
+				return that._mouseDown(event);
+			})
+			.bind("click." + this.widgetName, function(event) {
+				if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
+					$.removeData(event.target, that.widgetName + ".preventClickEvent");
+					event.stopImmediatePropagation();
+					return false;
+				}
+			});
+
+		this.started = false;
+	},
+
+	// TODO: make sure destroying one instance of mouse doesn't mess with
+	// other instances of mouse
+	_mouseDestroy: function() {
+		this.element.unbind("." + this.widgetName);
+		if ( this._mouseMoveDelegate ) {
+			this.document
+				.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate)
+				.unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
+		}
+	},
+
+	_mouseDown: function(event) {
+		// don't let more than one widget handle mouseStart
+		if ( mouseHandled ) {
+			return;
+		}
+
+		this._mouseMoved = false;
+
+		// we may have missed mouseup (out of window)
+		(this._mouseStarted && this._mouseUp(event));
+
+		this._mouseDownEvent = event;
+
+		var that = this,
+			btnIsLeft = (event.which === 1),
+			// event.target.nodeName works around a bug in IE 8 with
+			// disabled inputs (#7620)
+			elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
+		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
+			return true;
+		}
+
+		this.mouseDelayMet = !this.options.delay;
+		if (!this.mouseDelayMet) {
+			this._mouseDelayTimer = setTimeout(function() {
+				that.mouseDelayMet = true;
+			}, this.options.delay);
+		}
+
+		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+			this._mouseStarted = (this._mouseStart(event) !== false);
+			if (!this._mouseStarted) {
+				event.preventDefault();
+				return true;
+			}
+		}
+
+		// Click event may never have fired (Gecko & Opera)
+		if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
+			$.removeData(event.target, this.widgetName + ".preventClickEvent");
+		}
+
+		// these delegates are required to keep context
+		this._mouseMoveDelegate = function(event) {
+			return that._mouseMove(event);
+		};
+		this._mouseUpDelegate = function(event) {
+			return that._mouseUp(event);
+		};
+
+		this.document
+			.bind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.bind( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		event.preventDefault();
+
+		mouseHandled = true;
+		return true;
+	},
+
+	_mouseMove: function(event) {
+		// Only check for mouseups outside the document if you've moved inside the document
+		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
+		// fire a mousemove event if content is placed under the cursor. See #7778
+		// Support: IE <9
+		if ( this._mouseMoved ) {
+			// IE mouseup check - mouseup happened when mouse was out of window
+			if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
+				return this._mouseUp(event);
+
+			// Iframe mouseup check - mouseup occurred in another document
+			} else if ( !event.which ) {
+				return this._mouseUp( event );
+			}
+		}
+
+		if ( event.which || event.button ) {
+			this._mouseMoved = true;
+		}
+
+		if (this._mouseStarted) {
+			this._mouseDrag(event);
+			return event.preventDefault();
+		}
+
+		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+			this._mouseStarted =
+				(this._mouseStart(this._mouseDownEvent, event) !== false);
+			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
+		}
+
+		return !this._mouseStarted;
+	},
+
+	_mouseUp: function(event) {
+		this.document
+			.unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.unbind( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		if (this._mouseStarted) {
+			this._mouseStarted = false;
+
+			if (event.target === this._mouseDownEvent.target) {
+				$.data(event.target, this.widgetName + ".preventClickEvent", true);
+			}
+
+			this._mouseStop(event);
+		}
+
+		mouseHandled = false;
+		return false;
+	},
+
+	_mouseDistanceMet: function(event) {
+		return (Math.max(
+				Math.abs(this._mouseDownEvent.pageX - event.pageX),
+				Math.abs(this._mouseDownEvent.pageY - event.pageY)
+			) >= this.options.distance
+		);
+	},
+
+	_mouseDelayMet: function(/* event */) {
+		return this.mouseDelayMet;
+	},
+
+	// These are placeholder methods, to be overriden by extending plugin
+	_mouseStart: function(/* event */) {},
+	_mouseDrag: function(/* event */) {},
+	_mouseStop: function(/* event */) {},
+	_mouseCapture: function(/* event */) { return true; }
+});
+
+
+/*!
+ * jQuery UI Position 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+(function() {
+
+$.ui = $.ui || {};
+
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[0];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[0];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[0].clientWidth;
+		}
+
+		div.remove();
+
+		return (cachedScrollbarWidth = w1 - w2);
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[0].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[0] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: withinElement.offset() || { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+
+			// support: jQuery 1.6.x
+			// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
+			width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
+			height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[0].preventDefault ) {
+		// force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+	// clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	});
+
+	// normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each(function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// if the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				});
+			}
+		});
+
+		if ( options.using ) {
+			// adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	});
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+				// element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
+					position.left += overLeft - newOverRight;
+				// element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+				// element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+			// too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+			// too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+			// adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+				// element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
+					position.top += overTop - newOverBottom;
+				// element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+				// element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+			// too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+			// too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+			// adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+// fraction support test
+(function() {
+	var testElement, testElementParent, testElementStyle, offsetLeft, i,
+		body = document.getElementsByTagName( "body" )[ 0 ],
+		div = document.createElement( "div" );
+
+	//Create a "fake body" for testing based on method used in jQuery.support
+	testElement = document.createElement( body ? "div" : "body" );
+	testElementStyle = {
+		visibility: "hidden",
+		width: 0,
+		height: 0,
+		border: 0,
+		margin: 0,
+		background: "none"
+	};
+	if ( body ) {
+		$.extend( testElementStyle, {
+			position: "absolute",
+			left: "-1000px",
+			top: "-1000px"
+		});
+	}
+	for ( i in testElementStyle ) {
+		testElement.style[ i ] = testElementStyle[ i ];
+	}
+	testElement.appendChild( div );
+	testElementParent = body || document.documentElement;
+	testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+	div.style.cssText = "position: absolute; left: 10.7432222px;";
+
+	offsetLeft = $( div ).offset().left;
+	supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
+
+	testElement.innerHTML = "";
+	testElementParent.removeChild( testElement );
+})();
+
+})();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Accordion 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/accordion/
+ */
+
+
+var accordion = $.widget( "ui.accordion", {
+	version: "1.11.3",
+	options: {
+		active: 0,
+		animate: {},
+		collapsible: false,
+		event: "click",
+		header: "> li > :first-child,> :not(li):even",
+		heightStyle: "auto",
+		icons: {
+			activeHeader: "ui-icon-triangle-1-s",
+			header: "ui-icon-triangle-1-e"
+		},
+
+		// callbacks
+		activate: null,
+		beforeActivate: null
+	},
+
+	hideProps: {
+		borderTopWidth: "hide",
+		borderBottomWidth: "hide",
+		paddingTop: "hide",
+		paddingBottom: "hide",
+		height: "hide"
+	},
+
+	showProps: {
+		borderTopWidth: "show",
+		borderBottomWidth: "show",
+		paddingTop: "show",
+		paddingBottom: "show",
+		height: "show"
+	},
+
+	_create: function() {
+		var options = this.options;
+		this.prevShow = this.prevHide = $();
+		this.element.addClass( "ui-accordion ui-widget ui-helper-reset" )
+			// ARIA
+			.attr( "role", "tablist" );
+
+		// don't allow collapsible: false and active: false / null
+		if ( !options.collapsible && (options.active === false || options.active == null) ) {
+			options.active = 0;
+		}
+
+		this._processPanels();
+		// handle negative values
+		if ( options.active < 0 ) {
+			options.active += this.headers.length;
+		}
+		this._refresh();
+	},
+
+	_getCreateEventData: function() {
+		return {
+			header: this.active,
+			panel: !this.active.length ? $() : this.active.next()
+		};
+	},
+
+	_createIcons: function() {
+		var icons = this.options.icons;
+		if ( icons ) {
+			$( "<span>" )
+				.addClass( "ui-accordion-header-icon ui-icon " + icons.header )
+				.prependTo( this.headers );
+			this.active.children( ".ui-accordion-header-icon" )
+				.removeClass( icons.header )
+				.addClass( icons.activeHeader );
+			this.headers.addClass( "ui-accordion-icons" );
+		}
+	},
+
+	_destroyIcons: function() {
+		this.headers
+			.removeClass( "ui-accordion-icons" )
+			.children( ".ui-accordion-header-icon" )
+				.remove();
+	},
+
+	_destroy: function() {
+		var contents;
+
+		// clean up main element
+		this.element
+			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
+			.removeAttr( "role" );
+
+		// clean up headers
+		this.headers
+			.removeClass( "ui-accordion-header ui-accordion-header-active ui-state-default " +
+				"ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-expanded" )
+			.removeAttr( "aria-selected" )
+			.removeAttr( "aria-controls" )
+			.removeAttr( "tabIndex" )
+			.removeUniqueId();
+
+		this._destroyIcons();
+
+		// clean up content panels
+		contents = this.headers.next()
+			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom " +
+				"ui-accordion-content ui-accordion-content-active ui-state-disabled" )
+			.css( "display", "" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-hidden" )
+			.removeAttr( "aria-labelledby" )
+			.removeUniqueId();
+
+		if ( this.options.heightStyle !== "content" ) {
+			contents.css( "height", "" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "event" ) {
+			if ( this.options.event ) {
+				this._off( this.headers, this.options.event );
+			}
+			this._setupEvents( value );
+		}
+
+		this._super( key, value );
+
+		// setting collapsible: false while collapsed; open first panel
+		if ( key === "collapsible" && !value && this.options.active === false ) {
+			this._activate( 0 );
+		}
+
+		if ( key === "icons" ) {
+			this._destroyIcons();
+			if ( value ) {
+				this._createIcons();
+			}
+		}
+
+		// #5332 - opacity doesn't cascade to positioned elements in IE
+		// so we need to add the disabled class to the headers and panels
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+			this.headers.add( this.headers.next() )
+				.toggleClass( "ui-state-disabled", !!value );
+		}
+	},
+
+	_keydown: function( event ) {
+		if ( event.altKey || event.ctrlKey ) {
+			return;
+		}
+
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
+
+		switch ( event.keyCode ) {
+			case keyCode.RIGHT:
+			case keyCode.DOWN:
+				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
+				break;
+			case keyCode.LEFT:
+			case keyCode.UP:
+				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
+				break;
+			case keyCode.SPACE:
+			case keyCode.ENTER:
+				this._eventHandler( event );
+				break;
+			case keyCode.HOME:
+				toFocus = this.headers[ 0 ];
+				break;
+			case keyCode.END:
+				toFocus = this.headers[ length - 1 ];
+				break;
+		}
+
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
+			toFocus.focus();
+			event.preventDefault();
+		}
+	},
+
+	_panelKeyDown: function( event ) {
+		if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
+			$( event.currentTarget ).prev().focus();
+		}
+	},
+
+	refresh: function() {
+		var options = this.options;
+		this._processPanels();
+
+		// was collapsed or no panel
+		if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {
+			options.active = false;
+			this.active = $();
+		// active false only when collapsible is true
+		} else if ( options.active === false ) {
+			this._activate( 0 );
+		// was active, but active panel is gone
+		} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			// all remaining panel are disabled
+			if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) {
+				options.active = false;
+				this.active = $();
+			// activate previous panel
+			} else {
+				this._activate( Math.max( 0, options.active - 1 ) );
+			}
+		// was active, active panel still exists
+		} else {
+			// make sure active index is correct
+			options.active = this.headers.index( this.active );
+		}
+
+		this._destroyIcons();
+
+		this._refresh();
+	},
+
+	_processPanels: function() {
+		var prevHeaders = this.headers,
+			prevPanels = this.panels;
+
+		this.headers = this.element.find( this.options.header )
+			.addClass( "ui-accordion-header ui-state-default ui-corner-all" );
+
+		this.panels = this.headers.next()
+			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )
+			.filter( ":not(.ui-accordion-content-active)" )
+			.hide();
+
+		// Avoid memory leaks (#10056)
+		if ( prevPanels ) {
+			this._off( prevHeaders.not( this.headers ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	_refresh: function() {
+		var maxHeight,
+			options = this.options,
+			heightStyle = options.heightStyle,
+			parent = this.element.parent();
+
+		this.active = this._findActive( options.active )
+			.addClass( "ui-accordion-header-active ui-state-active ui-corner-top" )
+			.removeClass( "ui-corner-all" );
+		this.active.next()
+			.addClass( "ui-accordion-content-active" )
+			.show();
+
+		this.headers
+			.attr( "role", "tab" )
+			.each(function() {
+				var header = $( this ),
+					headerId = header.uniqueId().attr( "id" ),
+					panel = header.next(),
+					panelId = panel.uniqueId().attr( "id" );
+				header.attr( "aria-controls", panelId );
+				panel.attr( "aria-labelledby", headerId );
+			})
+			.next()
+				.attr( "role", "tabpanel" );
+
+		this.headers
+			.not( this.active )
+			.attr({
+				"aria-selected": "false",
+				"aria-expanded": "false",
+				tabIndex: -1
+			})
+			.next()
+				.attr({
+					"aria-hidden": "true"
+				})
+				.hide();
+
+		// make sure at least one header is in the tab order
+		if ( !this.active.length ) {
+			this.headers.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active.attr({
+				"aria-selected": "true",
+				"aria-expanded": "true",
+				tabIndex: 0
+			})
+			.next()
+				.attr({
+					"aria-hidden": "false"
+				});
+		}
+
+		this._createIcons();
+
+		this._setupEvents( options.event );
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			this.element.siblings( ":visible" ).each(function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			});
+
+			this.headers.each(function() {
+				maxHeight -= $( this ).outerHeight( true );
+			});
+
+			this.headers.next()
+				.each(function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				})
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.headers.next()
+				.each(function() {
+					maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
+				})
+				.height( maxHeight );
+		}
+	},
+
+	_activate: function( index ) {
+		var active = this._findActive( index )[ 0 ];
+
+		// trying to activate the already active panel
+		if ( active === this.active[ 0 ] ) {
+			return;
+		}
+
+		// trying to collapse, simulate a click on the currently active header
+		active = active || this.active[ 0 ];
+
+		this._eventHandler({
+			target: active,
+			currentTarget: active,
+			preventDefault: $.noop
+		});
+	},
+
+	_findActive: function( selector ) {
+		return typeof selector === "number" ? this.headers.eq( selector ) : $();
+	},
+
+	_setupEvents: function( event ) {
+		var events = {
+			keydown: "_keydown"
+		};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			});
+		}
+
+		this._off( this.headers.add( this.headers.next() ) );
+		this._on( this.headers, events );
+		this._on( this.headers.next(), { keydown: "_panelKeyDown" });
+		this._hoverable( this.headers );
+		this._focusable( this.headers );
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			clicked = $( event.currentTarget ),
+			clickedIsActive = clicked[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : clicked.next(),
+			toHide = active.next(),
+			eventData = {
+				oldHeader: active,
+				oldPanel: toHide,
+				newHeader: collapsing ? $() : clicked,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if (
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.headers.index( clicked );
+
+		// when the call to ._toggle() comes after the class changes
+		// it causes a very odd bug in IE 8 (see #6720)
+		this.active = clickedIsActive ? $() : clicked;
+		this._toggle( eventData );
+
+		// switch classes
+		// corner classes on the previously active header stay after the animation
+		active.removeClass( "ui-accordion-header-active ui-state-active" );
+		if ( options.icons ) {
+			active.children( ".ui-accordion-header-icon" )
+				.removeClass( options.icons.activeHeader )
+				.addClass( options.icons.header );
+		}
+
+		if ( !clickedIsActive ) {
+			clicked
+				.removeClass( "ui-corner-all" )
+				.addClass( "ui-accordion-header-active ui-state-active ui-corner-top" );
+			if ( options.icons ) {
+				clicked.children( ".ui-accordion-header-icon" )
+					.removeClass( options.icons.header )
+					.addClass( options.icons.activeHeader );
+			}
+
+			clicked
+				.next()
+				.addClass( "ui-accordion-content-active" );
+		}
+	},
+
+	_toggle: function( data ) {
+		var toShow = data.newPanel,
+			toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
+
+		// handle activating a panel during the animation for another activation
+		this.prevShow.add( this.prevHide ).stop( true, true );
+		this.prevShow = toShow;
+		this.prevHide = toHide;
+
+		if ( this.options.animate ) {
+			this._animate( toShow, toHide, data );
+		} else {
+			toHide.hide();
+			toShow.show();
+			this._toggleComplete( data );
+		}
+
+		toHide.attr({
+			"aria-hidden": "true"
+		});
+		toHide.prev().attr({
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		});
+		// if we're switching panels, remove the old header from the tab order
+		// if we're opening from collapsed state, remove the previous header from the tab order
+		// if we're collapsing, then keep the collapsing header in the tab order
+		if ( toShow.length && toHide.length ) {
+			toHide.prev().attr({
+				"tabIndex": -1,
+				"aria-expanded": "false"
+			});
+		} else if ( toShow.length ) {
+			this.headers.filter(function() {
+				return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0;
+			})
+			.attr( "tabIndex", -1 );
+		}
+
+		toShow
+			.attr( "aria-hidden", "false" )
+			.prev()
+				.attr({
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				});
+	},
+
+	_animate: function( toShow, toHide, data ) {
+		var total, easing, duration,
+			that = this,
+			adjust = 0,
+			down = toShow.length &&
+				( !toHide.length || ( toShow.index() < toHide.index() ) ),
+			animate = this.options.animate || {},
+			options = down && animate.down || animate,
+			complete = function() {
+				that._toggleComplete( data );
+			};
+
+		if ( typeof options === "number" ) {
+			duration = options;
+		}
+		if ( typeof options === "string" ) {
+			easing = options;
+		}
+		// fall back from options to animation in case of partial down settings
+		easing = easing || options.easing || animate.easing;
+		duration = duration || options.duration || animate.duration;
+
+		if ( !toHide.length ) {
+			return toShow.animate( this.showProps, duration, easing, complete );
+		}
+		if ( !toShow.length ) {
+			return toHide.animate( this.hideProps, duration, easing, complete );
+		}
+
+		total = toShow.show().outerHeight();
+		toHide.animate( this.hideProps, {
+			duration: duration,
+			easing: easing,
+			step: function( now, fx ) {
+				fx.now = Math.round( now );
+			}
+		});
+		toShow
+			.hide()
+			.animate( this.showProps, {
+				duration: duration,
+				easing: easing,
+				complete: complete,
+				step: function( now, fx ) {
+					fx.now = Math.round( now );
+					if ( fx.prop !== "height" ) {
+						adjust += fx.now;
+					} else if ( that.options.heightStyle !== "content" ) {
+						fx.now = Math.round( total - toHide.outerHeight() - adjust );
+						adjust = 0;
+					}
+				}
+			});
+	},
+
+	_toggleComplete: function( data ) {
+		var toHide = data.oldPanel;
+
+		toHide
+			.removeClass( "ui-accordion-content-active" )
+			.prev()
+				.removeClass( "ui-corner-top" )
+				.addClass( "ui-corner-all" );
+
+		// Work around for rendering bug in IE (#5421)
+		if ( toHide.length ) {
+			toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
+		}
+		this._trigger( "activate", null, data );
+	}
+});
+
+
+/*!
+ * jQuery UI Menu 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/menu/
+ */
+
+
+var menu = $.widget( "ui.menu", {
+	version: "1.11.3",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-carat-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left-1 top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.addClass( "ui-menu ui-widget ui-widget-content" )
+			.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
+			.attr({
+				role: this.options.role,
+				tabIndex: 0
+			});
+
+		if ( this.options.disabled ) {
+			this.element
+				.addClass( "ui-state-disabled" )
+				.attr( "aria-disabled", "true" );
+		}
+
+		this._on({
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+				var target = $( event.currentTarget );
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay(function() {
+					if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
+						this.collapseAll( event );
+					}
+				});
+			},
+			keydown: "_keydown"
+		});
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		});
+	},
+
+	_destroy: function() {
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
+				.removeAttr( "role" )
+				.removeAttr( "tabIndex" )
+				.removeAttr( "aria-labelledby" )
+				.removeAttr( "aria-expanded" )
+				.removeAttr( "aria-hidden" )
+				.removeAttr( "aria-disabled" )
+				.removeUniqueId()
+				.show();
+
+		// Destroy menu items
+		this.element.find( ".ui-menu-item" )
+			.removeClass( "ui-menu-item" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-disabled" )
+			.removeUniqueId()
+			.removeClass( "ui-state-hover" )
+			.removeAttr( "tabIndex" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-haspopup" )
+			.children().each( function() {
+				var elem = $( this );
+				if ( elem.data( "ui-menu-submenu-carat" ) ) {
+					elem.remove();
+				}
+			});
+
+		// Destroy menu dividers
+		this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay(function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.is( "[aria-haspopup='true']" ) ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		submenus.filter( ":not(.ui-menu)" )
+			.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
+			.hide()
+			.attr({
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			})
+			.each(function() {
+				var menu = $( this ),
+					item = menu.parent(),
+					submenuCarat = $( "<span>" )
+						.addClass( "ui-menu-icon ui-icon " + icon )
+						.data( "ui-menu-submenu-carat", true );
+
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCarat );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			});
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each(function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				item.addClass( "ui-widget-content ui-menu-divider" );
+			}
+		});
+
+		// Don't refresh list items that are already adapted
+		items.not( ".ui-menu-item, .ui-menu-divider" )
+			.addClass( "ui-menu-item" )
+			.uniqueId()
+			.attr({
+				tabIndex: -1,
+				role: this._itemRole()
+			});
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.element.find( ".ui-menu-icon" )
+				.removeClass( this.options.icons.submenu )
+				.addClass( value.submenu );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+		focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		this.active
+			.parent()
+			.closest( ".ui-menu-item" )
+			.addClass( "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay(function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening(nested);
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this.active.removeClass( "ui-state-focus" );
+		this.active = null;
+
+		this._trigger( "blur", event, { item: this.active } );
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the carat icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay(function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend({
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu
+			.find( ".ui-menu" )
+				.hide()
+				.attr( "aria-hidden", "true" )
+				.attr( "aria-expanded", "false" )
+			.end()
+			.find( ".ui-state-active" ).not( ".ui-state-focus" )
+				.removeClass( "ui-state-active" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+				.find( this.options.items )
+				.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay(function() {
+				this.focus( event, newItem );
+			});
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function(character) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+			// Only match on items, not dividers or other content (#10571)
+			.filter( ".ui-menu-item" )
+			.filter(function() {
+				return regex.test( $.trim( $( this ).text() ) );
+			});
+	}
+});
+
+
+/*!
+ * jQuery UI Autocomplete 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/autocomplete/
+ */
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.11.3",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		this.isMultiLine =
+			// Textareas are always multi-line
+			isTextarea ? true :
+			// Inputs are always single-line, even if inside a contentEditable element
+			// IE also treats inputs as contentEditable
+			isInput ? false :
+			// All other element types are determined by whether or not they're contentEditable
+			this.element.prop( "isContentEditable" );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this.element
+			.addClass( "ui-autocomplete-input" )
+			.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		});
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.addClass( "ui-autocomplete ui-front" )
+			.appendTo( this._appendTo() )
+			.menu({
+				// disable ARIA support, the live region takes care of that
+				role: null
+			})
+			.hide()
+			.menu( "instance" );
+
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay(function() {
+					delete this.cancelBlur;
+				});
+
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = this.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					this._delay(function() {
+						var that = this;
+						this.document.one( "mousedown", function( event ) {
+							if ( event.target !== that.element[ 0 ] &&
+									event.target !== menuElement &&
+									!$.contains( menuElement, event.target ) ) {
+								that.close();
+							}
+						});
+					});
+				}
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						});
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
+					this.element.focus();
+					this.previous = previous;
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay(function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					});
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		});
+
+		this.liveRegion = $( "<span>", {
+				role: "status",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element
+			.removeClass( "ui-autocomplete-input" )
+			.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response([]);
+					}
+				});
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay(function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy(function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this.element.removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			});
+		});
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" ).text( item.label ).appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	}
+});
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		});
+	}
+});
+
+// live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+});
+
+var autocomplete = $.ui.autocomplete;
+
+
+/*!
+ * jQuery UI Button 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/button/
+ */
+
+
+var lastActive,
+	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
+	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
+	formResetHandler = function() {
+		var form = $( this );
+		setTimeout(function() {
+			form.find( ":ui-button" ).button( "refresh" );
+		}, 1 );
+	},
+	radioGroup = function( radio ) {
+		var name = radio.name,
+			form = radio.form,
+			radios = $( [] );
+		if ( name ) {
+			name = name.replace( /'/g, "\\'" );
+			if ( form ) {
+				radios = $( form ).find( "[name='" + name + "'][type=radio]" );
+			} else {
+				radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument )
+					.filter(function() {
+						return !this.form;
+					});
+			}
+		}
+		return radios;
+	};
+
+$.widget( "ui.button", {
+	version: "1.11.3",
+	defaultElement: "<button>",
+	options: {
+		disabled: null,
+		text: true,
+		label: null,
+		icons: {
+			primary: null,
+			secondary: null
+		}
+	},
+	_create: function() {
+		this.element.closest( "form" )
+			.unbind( "reset" + this.eventNamespace )
+			.bind( "reset" + this.eventNamespace, formResetHandler );
+
+		if ( typeof this.options.disabled !== "boolean" ) {
+			this.options.disabled = !!this.element.prop( "disabled" );
+		} else {
+			this.element.prop( "disabled", this.options.disabled );
+		}
+
+		this._determineButtonType();
+		this.hasTitle = !!this.buttonElement.attr( "title" );
+
+		var that = this,
+			options = this.options,
+			toggleButton = this.type === "checkbox" || this.type === "radio",
+			activeClass = !toggleButton ? "ui-state-active" : "";
+
+		if ( options.label === null ) {
+			options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
+		}
+
+		this._hoverable( this.buttonElement );
+
+		this.buttonElement
+			.addClass( baseClasses )
+			.attr( "role", "button" )
+			.bind( "mouseenter" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return;
+				}
+				if ( this === lastActive ) {
+					$( this ).addClass( "ui-state-active" );
+				}
+			})
+			.bind( "mouseleave" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( activeClass );
+			})
+			.bind( "click" + this.eventNamespace, function( event ) {
+				if ( options.disabled ) {
+					event.preventDefault();
+					event.stopImmediatePropagation();
+				}
+			});
+
+		// Can't use _focusable() because the element that receives focus
+		// and the element that gets the ui-state-focus class are different
+		this._on({
+			focus: function() {
+				this.buttonElement.addClass( "ui-state-focus" );
+			},
+			blur: function() {
+				this.buttonElement.removeClass( "ui-state-focus" );
+			}
+		});
+
+		if ( toggleButton ) {
+			this.element.bind( "change" + this.eventNamespace, function() {
+				that.refresh();
+			});
+		}
+
+		if ( this.type === "checkbox" ) {
+			this.buttonElement.bind( "click" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return false;
+				}
+			});
+		} else if ( this.type === "radio" ) {
+			this.buttonElement.bind( "click" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return false;
+				}
+				$( this ).addClass( "ui-state-active" );
+				that.buttonElement.attr( "aria-pressed", "true" );
+
+				var radio = that.element[ 0 ];
+				radioGroup( radio )
+					.not( radio )
+					.map(function() {
+						return $( this ).button( "widget" )[ 0 ];
+					})
+					.removeClass( "ui-state-active" )
+					.attr( "aria-pressed", "false" );
+			});
+		} else {
+			this.buttonElement
+				.bind( "mousedown" + this.eventNamespace, function() {
+					if ( options.disabled ) {
+						return false;
+					}
+					$( this ).addClass( "ui-state-active" );
+					lastActive = this;
+					that.document.one( "mouseup", function() {
+						lastActive = null;
+					});
+				})
+				.bind( "mouseup" + this.eventNamespace, function() {
+					if ( options.disabled ) {
+						return false;
+					}
+					$( this ).removeClass( "ui-state-active" );
+				})
+				.bind( "keydown" + this.eventNamespace, function(event) {
+					if ( options.disabled ) {
+						return false;
+					}
+					if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {
+						$( this ).addClass( "ui-state-active" );
+					}
+				})
+				// see #8559, we bind to blur here in case the button element loses
+				// focus between keydown and keyup, it would be left in an "active" state
+				.bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() {
+					$( this ).removeClass( "ui-state-active" );
+				});
+
+			if ( this.buttonElement.is("a") ) {
+				this.buttonElement.keyup(function(event) {
+					if ( event.keyCode === $.ui.keyCode.SPACE ) {
+						// TODO pass through original event correctly (just as 2nd argument doesn't work)
+						$( this ).click();
+					}
+				});
+			}
+		}
+
+		this._setOption( "disabled", options.disabled );
+		this._resetButton();
+	},
+
+	_determineButtonType: function() {
+		var ancestor, labelSelector, checked;
+
+		if ( this.element.is("[type=checkbox]") ) {
+			this.type = "checkbox";
+		} else if ( this.element.is("[type=radio]") ) {
+			this.type = "radio";
+		} else if ( this.element.is("input") ) {
+			this.type = "input";
+		} else {
+			this.type = "button";
+		}
+
+		if ( this.type === "checkbox" || this.type === "radio" ) {
+			// we don't search against the document in case the element
+			// is disconnected from the DOM
+			ancestor = this.element.parents().last();
+			labelSelector = "label[for='" + this.element.attr("id") + "']";
+			this.buttonElement = ancestor.find( labelSelector );
+			if ( !this.buttonElement.length ) {
+				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
+				this.buttonElement = ancestor.filter( labelSelector );
+				if ( !this.buttonElement.length ) {
+					this.buttonElement = ancestor.find( labelSelector );
+				}
+			}
+			this.element.addClass( "ui-helper-hidden-accessible" );
+
+			checked = this.element.is( ":checked" );
+			if ( checked ) {
+				this.buttonElement.addClass( "ui-state-active" );
+			}
+			this.buttonElement.prop( "aria-pressed", checked );
+		} else {
+			this.buttonElement = this.element;
+		}
+	},
+
+	widget: function() {
+		return this.buttonElement;
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-helper-hidden-accessible" );
+		this.buttonElement
+			.removeClass( baseClasses + " ui-state-active " + typeClasses )
+			.removeAttr( "role" )
+			.removeAttr( "aria-pressed" )
+			.html( this.buttonElement.find(".ui-button-text").html() );
+
+		if ( !this.hasTitle ) {
+			this.buttonElement.removeAttr( "title" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "disabled" ) {
+			this.widget().toggleClass( "ui-state-disabled", !!value );
+			this.element.prop( "disabled", !!value );
+			if ( value ) {
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					this.buttonElement.removeClass( "ui-state-focus" );
+				} else {
+					this.buttonElement.removeClass( "ui-state-focus ui-state-active" );
+				}
+			}
+			return;
+		}
+		this._resetButton();
+	},
+
+	refresh: function() {
+		//See #8237 & #8828
+		var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" );
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOption( "disabled", isDisabled );
+		}
+		if ( this.type === "radio" ) {
+			radioGroup( this.element[0] ).each(function() {
+				if ( $( this ).is( ":checked" ) ) {
+					$( this ).button( "widget" )
+						.addClass( "ui-state-active" )
+						.attr( "aria-pressed", "true" );
+				} else {
+					$( this ).button( "widget" )
+						.removeClass( "ui-state-active" )
+						.attr( "aria-pressed", "false" );
+				}
+			});
+		} else if ( this.type === "checkbox" ) {
+			if ( this.element.is( ":checked" ) ) {
+				this.buttonElement
+					.addClass( "ui-state-active" )
+					.attr( "aria-pressed", "true" );
+			} else {
+				this.buttonElement
+					.removeClass( "ui-state-active" )
+					.attr( "aria-pressed", "false" );
+			}
+		}
+	},
+
+	_resetButton: function() {
+		if ( this.type === "input" ) {
+			if ( this.options.label ) {
+				this.element.val( this.options.label );
+			}
+			return;
+		}
+		var buttonElement = this.buttonElement.removeClass( typeClasses ),
+			buttonText = $( "<span></span>", this.document[0] )
+				.addClass( "ui-button-text" )
+				.html( this.options.label )
+				.appendTo( buttonElement.empty() )
+				.text(),
+			icons = this.options.icons,
+			multipleIcons = icons.primary && icons.secondary,
+			buttonClasses = [];
+
+		if ( icons.primary || icons.secondary ) {
+			if ( this.options.text ) {
+				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+			}
+
+			if ( icons.primary ) {
+				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
+			}
+
+			if ( icons.secondary ) {
+				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
+			}
+
+			if ( !this.options.text ) {
+				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+
+				if ( !this.hasTitle ) {
+					buttonElement.attr( "title", $.trim( buttonText ) );
+				}
+			}
+		} else {
+			buttonClasses.push( "ui-button-text-only" );
+		}
+		buttonElement.addClass( buttonClasses.join( " " ) );
+	}
+});
+
+$.widget( "ui.buttonset", {
+	version: "1.11.3",
+	options: {
+		items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
+	},
+
+	_create: function() {
+		this.element.addClass( "ui-buttonset" );
+	},
+
+	_init: function() {
+		this.refresh();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "disabled" ) {
+			this.buttons.button( "option", key, value );
+		}
+
+		this._super( key, value );
+	},
+
+	refresh: function() {
+		var rtl = this.element.css( "direction" ) === "rtl",
+			allButtons = this.element.find( this.options.items ),
+			existingButtons = allButtons.filter( ":ui-button" );
+
+		// Initialize new buttons
+		allButtons.not( ":ui-button" ).button();
+
+		// Refresh existing buttons
+		existingButtons.button( "refresh" );
+
+		this.buttons = allButtons
+			.map(function() {
+				return $( this ).button( "widget" )[ 0 ];
+			})
+				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
+				.filter( ":first" )
+					.addClass( rtl ? "ui-corner-right" : "ui-corner-left" )
+				.end()
+				.filter( ":last" )
+					.addClass( rtl ? "ui-corner-left" : "ui-corner-right" )
+				.end()
+			.end();
+	},
+
+	_destroy: function() {
+		this.element.removeClass( "ui-buttonset" );
+		this.buttons
+			.map(function() {
+				return $( this ).button( "widget" )[ 0 ];
+			})
+				.removeClass( "ui-corner-left ui-corner-right" )
+			.end()
+			.button( "destroy" );
+	}
+});
+
+var button = $.ui.button;
+
+
+/*!
+ * jQuery UI Datepicker 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/datepicker/
+ */
+
+
+$.extend($.ui, { datepicker: { version: "1.11.3" } });
+
+var datepicker_instActive;
+
+function datepicker_getZindex( elem ) {
+	var position, value;
+	while ( elem.length && elem[ 0 ] !== document ) {
+		// Ignore z-index if position is set to a value where z-index is ignored by the browser
+		// This makes behavior of this function consistent across browsers
+		// WebKit always returns auto if the element is positioned
+		position = elem.css( "position" );
+		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+			// IE returns 0 when zIndex is not specified
+			// other browsers return a string
+			// we ignore the case of nested elements with an explicit value of 0
+			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+			value = parseInt( elem.css( "zIndex" ), 10 );
+			if ( !isNaN( value ) && value !== 0 ) {
+				return value;
+			}
+		}
+		elem = elem.parent();
+	}
+
+	return 0;
+}
+/* Date picker manager.
+   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
+   Settings for (groups of) date pickers are maintained in an instance object,
+   allowing multiple different settings on the same page. */
+
+function Datepicker() {
+	this._curInst = null; // The current instance in use
+	this._keyEvent = false; // If the last event was a key event
+	this._disabledInputs = []; // List of date picker inputs that have been disabled
+	this._datepickerShowing = false; // True if the popup picker is showing , false if not
+	this._inDialog = false; // True if showing within a "dialog", false if not
+	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
+	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
+	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
+	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
+	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
+	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
+	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
+	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
+	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
+	this.regional = []; // Available regional settings, indexed by language code
+	this.regional[""] = { // Default regional settings
+		closeText: "Done", // Display text for close link
+		prevText: "Prev", // Display text for previous month link
+		nextText: "Next", // Display text for next month link
+		currentText: "Today", // Display text for current month link
+		monthNames: ["January","February","March","April","May","June",
+			"July","August","September","October","November","December"], // Names of months for drop-down and formatting
+		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting
+		dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting
+		dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting
+		dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday
+		weekHeader: "Wk", // Column header for week of the year
+		dateFormat: "mm/dd/yy", // See format options on parseDate
+		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
+		isRTL: false, // True if right-to-left language, false if left-to-right
+		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
+		yearSuffix: "" // Additional text to append to the year in the month headers
+	};
+	this._defaults = { // Global defaults for all the date picker instances
+		showOn: "focus", // "focus" for popup on focus,
+			// "button" for trigger button, or "both" for either
+		showAnim: "fadeIn", // Name of jQuery animation for popup
+		showOptions: {}, // Options for enhanced animations
+		defaultDate: null, // Used when field is blank: actual date,
+			// +/-number for offset from today, null for today
+		appendText: "", // Display text following the input box, e.g. showing the format
+		buttonText: "...", // Text for trigger button
+		buttonImage: "", // URL for trigger button image
+		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
+		hideIfNoPrevNext: false, // True to hide next/previous month links
+			// if not applicable, false to just disable them
+		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
+		gotoCurrent: false, // True if today link goes back to current selection instead
+		changeMonth: false, // True if month can be selected directly, false if only prev/next
+		changeYear: false, // True if year can be selected directly, false if only prev/next
+		yearRange: "c-10:c+10", // Range of years to display in drop-down,
+			// either relative to today's year (-nn:+nn), relative to currently displayed year
+			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
+		showOtherMonths: false, // True to show dates in other months, false to leave blank
+		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
+		showWeek: false, // True to show week of the year, false to not show it
+		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
+			// takes a Date and returns the number of the week for it
+		shortYearCutoff: "+10", // Short year values < this are in the current century,
+			// > this are in the previous century,
+			// string value starting with "+" for current year + value
+		minDate: null, // The earliest selectable date, or null for no limit
+		maxDate: null, // The latest selectable date, or null for no limit
+		duration: "fast", // Duration of display/closure
+		beforeShowDay: null, // Function that takes a date and returns an array with
+			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
+		beforeShow: null, // Function that takes an input field and
+			// returns a set of custom settings for the date picker
+		onSelect: null, // Define a callback function when a date is selected
+		onChangeMonthYear: null, // Define a callback function when the month or year is changed
+		onClose: null, // Define a callback function when the datepicker is closed
+		numberOfMonths: 1, // Number of months to show at a time
+		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
+		stepMonths: 1, // Number of months to step back/forward
+		stepBigMonths: 12, // Number of months to step back/forward for the big links
+		altField: "", // Selector for an alternate field to store selected dates into
+		altFormat: "", // The date format to use for the alternate field
+		constrainInput: true, // The input is constrained by the current date format
+		showButtonPanel: false, // True to show button panel, false to not show it
+		autoSize: false, // True to size the input for the date format, false to leave as is
+		disabled: false // The initial disabled state
+	};
+	$.extend(this._defaults, this.regional[""]);
+	this.regional.en = $.extend( true, {}, this.regional[ "" ]);
+	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
+	this.dpDiv = datepicker_bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));
+}
+
+$.extend(Datepicker.prototype, {
+	/* Class name added to elements to indicate already configured with a date picker. */
+	markerClassName: "hasDatepicker",
+
+	//Keep track of the maximum number of rows displayed (see #7043)
+	maxRows: 4,
+
+	// TODO rename to "widget" when switching to widget factory
+	_widgetDatepicker: function() {
+		return this.dpDiv;
+	},
+
+	/* Override the default settings for all instances of the date picker.
+	 * @param  settings  object - the new settings to use as defaults (anonymous object)
+	 * @return the manager object
+	 */
+	setDefaults: function(settings) {
+		datepicker_extendRemove(this._defaults, settings || {});
+		return this;
+	},
+
+	/* Attach the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
+	 */
+	_attachDatepicker: function(target, settings) {
+		var nodeName, inline, inst;
+		nodeName = target.nodeName.toLowerCase();
+		inline = (nodeName === "div" || nodeName === "span");
+		if (!target.id) {
+			this.uuid += 1;
+			target.id = "dp" + this.uuid;
+		}
+		inst = this._newInst($(target), inline);
+		inst.settings = $.extend({}, settings || {});
+		if (nodeName === "input") {
+			this._connectDatepicker(target, inst);
+		} else if (inline) {
+			this._inlineDatepicker(target, inst);
+		}
+	},
+
+	/* Create a new instance object. */
+	_newInst: function(target, inline) {
+		var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars
+		return {id: id, input: target, // associated target
+			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
+			drawMonth: 0, drawYear: 0, // month being drawn
+			inline: inline, // is datepicker inline or not
+			dpDiv: (!inline ? this.dpDiv : // presentation div
+			datepicker_bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};
+	},
+
+	/* Attach the date picker to an input field. */
+	_connectDatepicker: function(target, inst) {
+		var input = $(target);
+		inst.append = $([]);
+		inst.trigger = $([]);
+		if (input.hasClass(this.markerClassName)) {
+			return;
+		}
+		this._attachments(input, inst);
+		input.addClass(this.markerClassName).keydown(this._doKeyDown).
+			keypress(this._doKeyPress).keyup(this._doKeyUp);
+		this._autoSize(inst);
+		$.data(target, "datepicker", inst);
+		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
+		if( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+	},
+
+	/* Make attachments based on settings. */
+	_attachments: function(input, inst) {
+		var showOn, buttonText, buttonImage,
+			appendText = this._get(inst, "appendText"),
+			isRTL = this._get(inst, "isRTL");
+
+		if (inst.append) {
+			inst.append.remove();
+		}
+		if (appendText) {
+			inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
+			input[isRTL ? "before" : "after"](inst.append);
+		}
+
+		input.unbind("focus", this._showDatepicker);
+
+		if (inst.trigger) {
+			inst.trigger.remove();
+		}
+
+		showOn = this._get(inst, "showOn");
+		if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field
+			input.focus(this._showDatepicker);
+		}
+		if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked
+			buttonText = this._get(inst, "buttonText");
+			buttonImage = this._get(inst, "buttonImage");
+			inst.trigger = $(this._get(inst, "buttonImageOnly") ?
+				$("<img/>").addClass(this._triggerClass).
+					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
+				$("<button type='button'></button>").addClass(this._triggerClass).
+					html(!buttonImage ? buttonText : $("<img/>").attr(
+					{ src:buttonImage, alt:buttonText, title:buttonText })));
+			input[isRTL ? "before" : "after"](inst.trigger);
+			inst.trigger.click(function() {
+				if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {
+					$.datepicker._hideDatepicker();
+				} else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) {
+					$.datepicker._hideDatepicker();
+					$.datepicker._showDatepicker(input[0]);
+				} else {
+					$.datepicker._showDatepicker(input[0]);
+				}
+				return false;
+			});
+		}
+	},
+
+	/* Apply the maximum length for the date format. */
+	_autoSize: function(inst) {
+		if (this._get(inst, "autoSize") && !inst.inline) {
+			var findMax, max, maxI, i,
+				date = new Date(2009, 12 - 1, 20), // Ensure double digits
+				dateFormat = this._get(inst, "dateFormat");
+
+			if (dateFormat.match(/[DM]/)) {
+				findMax = function(names) {
+					max = 0;
+					maxI = 0;
+					for (i = 0; i < names.length; i++) {
+						if (names[i].length > max) {
+							max = names[i].length;
+							maxI = i;
+						}
+					}
+					return maxI;
+				};
+				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
+					"monthNames" : "monthNamesShort"))));
+				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
+					"dayNames" : "dayNamesShort"))) + 20 - date.getDay());
+			}
+			inst.input.attr("size", this._formatDate(inst, date).length);
+		}
+	},
+
+	/* Attach an inline date picker to a div. */
+	_inlineDatepicker: function(target, inst) {
+		var divSpan = $(target);
+		if (divSpan.hasClass(this.markerClassName)) {
+			return;
+		}
+		divSpan.addClass(this.markerClassName).append(inst.dpDiv);
+		$.data(target, "datepicker", inst);
+		this._setDate(inst, this._getDefaultDate(inst), true);
+		this._updateDatepicker(inst);
+		this._updateAlternate(inst);
+		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
+		if( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
+		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
+		inst.dpDiv.css( "display", "block" );
+	},
+
+	/* Pop-up the date picker in a "dialog" box.
+	 * @param  input element - ignored
+	 * @param  date	string or Date - the initial date to display
+	 * @param  onSelect  function - the function to call when a date is selected
+	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
+	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
+	 *					event - with x/y coordinates or
+	 *					leave empty for default (screen centre)
+	 * @return the manager object
+	 */
+	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
+		var id, browserWidth, browserHeight, scrollX, scrollY,
+			inst = this._dialogInst; // internal instance
+
+		if (!inst) {
+			this.uuid += 1;
+			id = "dp" + this.uuid;
+			this._dialogInput = $("<input type='text' id='" + id +
+				"' style='position: absolute; top: -100px; width: 0px;'/>");
+			this._dialogInput.keydown(this._doKeyDown);
+			$("body").append(this._dialogInput);
+			inst = this._dialogInst = this._newInst(this._dialogInput, false);
+			inst.settings = {};
+			$.data(this._dialogInput[0], "datepicker", inst);
+		}
+		datepicker_extendRemove(inst.settings, settings || {});
+		date = (date && date.constructor === Date ? this._formatDate(inst, date) : date);
+		this._dialogInput.val(date);
+
+		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
+		if (!this._pos) {
+			browserWidth = document.documentElement.clientWidth;
+			browserHeight = document.documentElement.clientHeight;
+			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
+			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
+			this._pos = // should use actual width/height below
+				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
+		}
+
+		// move input on screen for focus, but hidden behind dialog
+		this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px");
+		inst.settings.onSelect = onSelect;
+		this._inDialog = true;
+		this.dpDiv.addClass(this._dialogClass);
+		this._showDatepicker(this._dialogInput[0]);
+		if ($.blockUI) {
+			$.blockUI(this.dpDiv);
+		}
+		$.data(this._dialogInput[0], "datepicker", inst);
+		return this;
+	},
+
+	/* Detach a datepicker from its control.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_destroyDatepicker: function(target) {
+		var nodeName,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		$.removeData(target, "datepicker");
+		if (nodeName === "input") {
+			inst.append.remove();
+			inst.trigger.remove();
+			$target.removeClass(this.markerClassName).
+				unbind("focus", this._showDatepicker).
+				unbind("keydown", this._doKeyDown).
+				unbind("keypress", this._doKeyPress).
+				unbind("keyup", this._doKeyUp);
+		} else if (nodeName === "div" || nodeName === "span") {
+			$target.removeClass(this.markerClassName).empty();
+		}
+
+		if ( datepicker_instActive === inst ) {
+			datepicker_instActive = null;
+		}
+	},
+
+	/* Enable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_enableDatepicker: function(target) {
+		var nodeName, inline,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if (nodeName === "input") {
+			target.disabled = false;
+			inst.trigger.filter("button").
+				each(function() { this.disabled = false; }).end().
+				filter("img").css({opacity: "1.0", cursor: ""});
+		} else if (nodeName === "div" || nodeName === "span") {
+			inline = $target.children("." + this._inlineClass);
+			inline.children().removeClass("ui-state-disabled");
+			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
+				prop("disabled", false);
+		}
+		this._disabledInputs = $.map(this._disabledInputs,
+			function(value) { return (value === target ? null : value); }); // delete entry
+	},
+
+	/* Disable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_disableDatepicker: function(target) {
+		var nodeName, inline,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if (nodeName === "input") {
+			target.disabled = true;
+			inst.trigger.filter("button").
+				each(function() { this.disabled = true; }).end().
+				filter("img").css({opacity: "0.5", cursor: "default"});
+		} else if (nodeName === "div" || nodeName === "span") {
+			inline = $target.children("." + this._inlineClass);
+			inline.children().addClass("ui-state-disabled");
+			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
+				prop("disabled", true);
+		}
+		this._disabledInputs = $.map(this._disabledInputs,
+			function(value) { return (value === target ? null : value); }); // delete entry
+		this._disabledInputs[this._disabledInputs.length] = target;
+	},
+
+	/* Is the first field in a jQuery collection disabled as a datepicker?
+	 * @param  target	element - the target input field or division or span
+	 * @return boolean - true if disabled, false if enabled
+	 */
+	_isDisabledDatepicker: function(target) {
+		if (!target) {
+			return false;
+		}
+		for (var i = 0; i < this._disabledInputs.length; i++) {
+			if (this._disabledInputs[i] === target) {
+				return true;
+			}
+		}
+		return false;
+	},
+
+	/* Retrieve the instance data for the target control.
+	 * @param  target  element - the target input field or division or span
+	 * @return  object - the associated instance data
+	 * @throws  error if a jQuery problem getting data
+	 */
+	_getInst: function(target) {
+		try {
+			return $.data(target, "datepicker");
+		}
+		catch (err) {
+			throw "Missing instance data for this datepicker";
+		}
+	},
+
+	/* Update or retrieve the settings for a date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 * @param  name	object - the new settings to update or
+	 *				string - the name of the setting to change or retrieve,
+	 *				when retrieving also "all" for all instance settings or
+	 *				"defaults" for all global defaults
+	 * @param  value   any - the new value for the setting
+	 *				(omit if above is an object or to retrieve a value)
+	 */
+	_optionDatepicker: function(target, name, value) {
+		var settings, date, minDate, maxDate,
+			inst = this._getInst(target);
+
+		if (arguments.length === 2 && typeof name === "string") {
+			return (name === "defaults" ? $.extend({}, $.datepicker._defaults) :
+				(inst ? (name === "all" ? $.extend({}, inst.settings) :
+				this._get(inst, name)) : null));
+		}
+
+		settings = name || {};
+		if (typeof name === "string") {
+			settings = {};
+			settings[name] = value;
+		}
+
+		if (inst) {
+			if (this._curInst === inst) {
+				this._hideDatepicker();
+			}
+
+			date = this._getDateDatepicker(target, true);
+			minDate = this._getMinMaxDate(inst, "min");
+			maxDate = this._getMinMaxDate(inst, "max");
+			datepicker_extendRemove(inst.settings, settings);
+			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
+			if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) {
+				inst.settings.minDate = this._formatDate(inst, minDate);
+			}
+			if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) {
+				inst.settings.maxDate = this._formatDate(inst, maxDate);
+			}
+			if ( "disabled" in settings ) {
+				if ( settings.disabled ) {
+					this._disableDatepicker(target);
+				} else {
+					this._enableDatepicker(target);
+				}
+			}
+			this._attachments($(target), inst);
+			this._autoSize(inst);
+			this._setDate(inst, date);
+			this._updateAlternate(inst);
+			this._updateDatepicker(inst);
+		}
+	},
+
+	// change method deprecated
+	_changeDatepicker: function(target, name, value) {
+		this._optionDatepicker(target, name, value);
+	},
+
+	/* Redraw the date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 */
+	_refreshDatepicker: function(target) {
+		var inst = this._getInst(target);
+		if (inst) {
+			this._updateDatepicker(inst);
+		}
+	},
+
+	/* Set the dates for a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  date	Date - the new date
+	 */
+	_setDateDatepicker: function(target, date) {
+		var inst = this._getInst(target);
+		if (inst) {
+			this._setDate(inst, date);
+			this._updateDatepicker(inst);
+			this._updateAlternate(inst);
+		}
+	},
+
+	/* Get the date(s) for the first entry in a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  noDefault boolean - true if no default date is to be used
+	 * @return Date - the current date
+	 */
+	_getDateDatepicker: function(target, noDefault) {
+		var inst = this._getInst(target);
+		if (inst && !inst.inline) {
+			this._setDateFromField(inst, noDefault);
+		}
+		return (inst ? this._getDate(inst) : null);
+	},
+
+	/* Handle keystrokes. */
+	_doKeyDown: function(event) {
+		var onSelect, dateStr, sel,
+			inst = $.datepicker._getInst(event.target),
+			handled = true,
+			isRTL = inst.dpDiv.is(".ui-datepicker-rtl");
+
+		inst._keyEvent = true;
+		if ($.datepicker._datepickerShowing) {
+			switch (event.keyCode) {
+				case 9: $.datepicker._hideDatepicker();
+						handled = false;
+						break; // hide on tab out
+				case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." +
+									$.datepicker._currentClass + ")", inst.dpDiv);
+						if (sel[0]) {
+							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
+						}
+
+						onSelect = $.datepicker._get(inst, "onSelect");
+						if (onSelect) {
+							dateStr = $.datepicker._formatDate(inst);
+
+							// trigger custom callback
+							onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
+						} else {
+							$.datepicker._hideDatepicker();
+						}
+
+						return false; // don't submit the form
+				case 27: $.datepicker._hideDatepicker();
+						break; // hide on escape
+				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
+							-$.datepicker._get(inst, "stepBigMonths") :
+							-$.datepicker._get(inst, "stepMonths")), "M");
+						break; // previous month/year on page up/+ ctrl
+				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
+							+$.datepicker._get(inst, "stepBigMonths") :
+							+$.datepicker._get(inst, "stepMonths")), "M");
+						break; // next month/year on page down/+ ctrl
+				case 35: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._clearDate(event.target);
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // clear on ctrl or command +end
+				case 36: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._gotoToday(event.target);
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // current on ctrl or command +home
+				case 37: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						// -1 day on ctrl or command +left
+						if (event.originalEvent.altKey) {
+							$.datepicker._adjustDate(event.target, (event.ctrlKey ?
+								-$.datepicker._get(inst, "stepBigMonths") :
+								-$.datepicker._get(inst, "stepMonths")), "M");
+						}
+						// next month/year on alt +left on Mac
+						break;
+				case 38: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, -7, "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // -1 week on ctrl or command +up
+				case 39: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						// +1 day on ctrl or command +right
+						if (event.originalEvent.altKey) {
+							$.datepicker._adjustDate(event.target, (event.ctrlKey ?
+								+$.datepicker._get(inst, "stepBigMonths") :
+								+$.datepicker._get(inst, "stepMonths")), "M");
+						}
+						// next month/year on alt +right
+						break;
+				case 40: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, +7, "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // +1 week on ctrl or command +down
+				default: handled = false;
+			}
+		} else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home
+			$.datepicker._showDatepicker(this);
+		} else {
+			handled = false;
+		}
+
+		if (handled) {
+			event.preventDefault();
+			event.stopPropagation();
+		}
+	},
+
+	/* Filter entered characters - based on date format. */
+	_doKeyPress: function(event) {
+		var chars, chr,
+			inst = $.datepicker._getInst(event.target);
+
+		if ($.datepicker._get(inst, "constrainInput")) {
+			chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat"));
+			chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode);
+			return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1);
+		}
+	},
+
+	/* Synchronise manual entry and field/alternate field. */
+	_doKeyUp: function(event) {
+		var date,
+			inst = $.datepicker._getInst(event.target);
+
+		if (inst.input.val() !== inst.lastVal) {
+			try {
+				date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
+					(inst.input ? inst.input.val() : null),
+					$.datepicker._getFormatConfig(inst));
+
+				if (date) { // only if valid
+					$.datepicker._setDateFromField(inst);
+					$.datepicker._updateAlternate(inst);
+					$.datepicker._updateDatepicker(inst);
+				}
+			}
+			catch (err) {
+			}
+		}
+		return true;
+	},
+
+	/* Pop-up the date picker for a given input field.
+	 * If false returned from beforeShow event handler do not show.
+	 * @param  input  element - the input field attached to the date picker or
+	 *					event - if triggered by focus
+	 */
+	_showDatepicker: function(input) {
+		input = input.target || input;
+		if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger
+			input = $("input", input.parentNode)[0];
+		}
+
+		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here
+			return;
+		}
+
+		var inst, beforeShow, beforeShowSettings, isFixed,
+			offset, showAnim, duration;
+
+		inst = $.datepicker._getInst(input);
+		if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
+			$.datepicker._curInst.dpDiv.stop(true, true);
+			if ( inst && $.datepicker._datepickerShowing ) {
+				$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
+			}
+		}
+
+		beforeShow = $.datepicker._get(inst, "beforeShow");
+		beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
+		if(beforeShowSettings === false){
+			return;
+		}
+		datepicker_extendRemove(inst.settings, beforeShowSettings);
+
+		inst.lastVal = null;
+		$.datepicker._lastInput = input;
+		$.datepicker._setDateFromField(inst);
+
+		if ($.datepicker._inDialog) { // hide cursor
+			input.value = "";
+		}
+		if (!$.datepicker._pos) { // position below input
+			$.datepicker._pos = $.datepicker._findPos(input);
+			$.datepicker._pos[1] += input.offsetHeight; // add the height
+		}
+
+		isFixed = false;
+		$(input).parents().each(function() {
+			isFixed |= $(this).css("position") === "fixed";
+			return !isFixed;
+		});
+
+		offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
+		$.datepicker._pos = null;
+		//to avoid flashes on Firefox
+		inst.dpDiv.empty();
+		// determine sizing offscreen
+		inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"});
+		$.datepicker._updateDatepicker(inst);
+		// fix width for dynamic number of date pickers
+		// and adjust position before showing
+		offset = $.datepicker._checkOffset(inst, offset, isFixed);
+		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
+			"static" : (isFixed ? "fixed" : "absolute")), display: "none",
+			left: offset.left + "px", top: offset.top + "px"});
+
+		if (!inst.inline) {
+			showAnim = $.datepicker._get(inst, "showAnim");
+			duration = $.datepicker._get(inst, "duration");
+			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
+			$.datepicker._datepickerShowing = true;
+
+			if ( $.effects && $.effects.effect[ showAnim ] ) {
+				inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration);
+			} else {
+				inst.dpDiv[showAnim || "show"](showAnim ? duration : null);
+			}
+
+			if ( $.datepicker._shouldFocusInput( inst ) ) {
+				inst.input.focus();
+			}
+
+			$.datepicker._curInst = inst;
+		}
+	},
+
+	/* Generate the date picker content. */
+	_updateDatepicker: function(inst) {
+		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
+		datepicker_instActive = inst; // for delegate hover events
+		inst.dpDiv.empty().append(this._generateHTML(inst));
+		this._attachHandlers(inst);
+
+		var origyearshtml,
+			numMonths = this._getNumberOfMonths(inst),
+			cols = numMonths[1],
+			width = 17,
+			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
+
+		if ( activeCell.length > 0 ) {
+			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
+		}
+
+		inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
+		if (cols > 1) {
+			inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em");
+		}
+		inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") +
+			"Class"]("ui-datepicker-multi");
+		inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") +
+			"Class"]("ui-datepicker-rtl");
+
+		if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
+			inst.input.focus();
+		}
+
+		// deffered render of the years select (to avoid flashes on Firefox)
+		if( inst.yearshtml ){
+			origyearshtml = inst.yearshtml;
+			setTimeout(function(){
+				//assure that inst.yearshtml didn't change.
+				if( origyearshtml === inst.yearshtml && inst.yearshtml ){
+					inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml);
+				}
+				origyearshtml = inst.yearshtml = null;
+			}, 0);
+		}
+	},
+
+	// #6694 - don't focus the input if it's already focused
+	// this breaks the change event in IE
+	// Support: IE and jQuery <1.9
+	_shouldFocusInput: function( inst ) {
+		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
+	},
+
+	/* Check positioning to remain on screen. */
+	_checkOffset: function(inst, offset, isFixed) {
+		var dpWidth = inst.dpDiv.outerWidth(),
+			dpHeight = inst.dpDiv.outerHeight(),
+			inputWidth = inst.input ? inst.input.outerWidth() : 0,
+			inputHeight = inst.input ? inst.input.outerHeight() : 0,
+			viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()),
+			viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
+
+		offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0);
+		offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0;
+		offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
+
+		// now check if datepicker is showing outside window viewport - move to a better place if so.
+		offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
+			Math.abs(offset.left + dpWidth - viewWidth) : 0);
+		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
+			Math.abs(dpHeight + inputHeight) : 0);
+
+		return offset;
+	},
+
+	/* Find an object's position on the screen. */
+	_findPos: function(obj) {
+		var position,
+			inst = this._getInst(obj),
+			isRTL = this._get(inst, "isRTL");
+
+		while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) {
+			obj = obj[isRTL ? "previousSibling" : "nextSibling"];
+		}
+
+		position = $(obj).offset();
+		return [position.left, position.top];
+	},
+
+	/* Hide the date picker from view.
+	 * @param  input  element - the input field attached to the date picker
+	 */
+	_hideDatepicker: function(input) {
+		var showAnim, duration, postProcess, onClose,
+			inst = this._curInst;
+
+		if (!inst || (input && inst !== $.data(input, "datepicker"))) {
+			return;
+		}
+
+		if (this._datepickerShowing) {
+			showAnim = this._get(inst, "showAnim");
+			duration = this._get(inst, "duration");
+			postProcess = function() {
+				$.datepicker._tidyDialog(inst);
+			};
+
+			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
+			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
+				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess);
+			} else {
+				inst.dpDiv[(showAnim === "slideDown" ? "slideUp" :
+					(showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess);
+			}
+
+			if (!showAnim) {
+				postProcess();
+			}
+			this._datepickerShowing = false;
+
+			onClose = this._get(inst, "onClose");
+			if (onClose) {
+				onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]);
+			}
+
+			this._lastInput = null;
+			if (this._inDialog) {
+				this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" });
+				if ($.blockUI) {
+					$.unblockUI();
+					$("body").append(this.dpDiv);
+				}
+			}
+			this._inDialog = false;
+		}
+	},
+
+	/* Tidy up after a dialog display. */
+	_tidyDialog: function(inst) {
+		inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar");
+	},
+
+	/* Close date picker if clicked elsewhere. */
+	_checkExternalClick: function(event) {
+		if (!$.datepicker._curInst) {
+			return;
+		}
+
+		var $target = $(event.target),
+			inst = $.datepicker._getInst($target[0]);
+
+		if ( ( ( $target[0].id !== $.datepicker._mainDivId &&
+				$target.parents("#" + $.datepicker._mainDivId).length === 0 &&
+				!$target.hasClass($.datepicker.markerClassName) &&
+				!$target.closest("." + $.datepicker._triggerClass).length &&
+				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||
+			( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) {
+				$.datepicker._hideDatepicker();
+		}
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustDate: function(id, offset, period) {
+		var target = $(id),
+			inst = this._getInst(target[0]);
+
+		if (this._isDisabledDatepicker(target[0])) {
+			return;
+		}
+		this._adjustInstDate(inst, offset +
+			(period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning
+			period);
+		this._updateDatepicker(inst);
+	},
+
+	/* Action for current link. */
+	_gotoToday: function(id) {
+		var date,
+			target = $(id),
+			inst = this._getInst(target[0]);
+
+		if (this._get(inst, "gotoCurrent") && inst.currentDay) {
+			inst.selectedDay = inst.currentDay;
+			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
+			inst.drawYear = inst.selectedYear = inst.currentYear;
+		} else {
+			date = new Date();
+			inst.selectedDay = date.getDate();
+			inst.drawMonth = inst.selectedMonth = date.getMonth();
+			inst.drawYear = inst.selectedYear = date.getFullYear();
+		}
+		this._notifyChange(inst);
+		this._adjustDate(target);
+	},
+
+	/* Action for selecting a new month/year. */
+	_selectMonthYear: function(id, select, period) {
+		var target = $(id),
+			inst = this._getInst(target[0]);
+
+		inst["selected" + (period === "M" ? "Month" : "Year")] =
+		inst["draw" + (period === "M" ? "Month" : "Year")] =
+			parseInt(select.options[select.selectedIndex].value,10);
+
+		this._notifyChange(inst);
+		this._adjustDate(target);
+	},
+
+	/* Action for selecting a day. */
+	_selectDay: function(id, month, year, td) {
+		var inst,
+			target = $(id);
+
+		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
+			return;
+		}
+
+		inst = this._getInst(target[0]);
+		inst.selectedDay = inst.currentDay = $("a", td).html();
+		inst.selectedMonth = inst.currentMonth = month;
+		inst.selectedYear = inst.currentYear = year;
+		this._selectDate(id, this._formatDate(inst,
+			inst.currentDay, inst.currentMonth, inst.currentYear));
+	},
+
+	/* Erase the input field and hide the date picker. */
+	_clearDate: function(id) {
+		var target = $(id);
+		this._selectDate(target, "");
+	},
+
+	/* Update the input field with the selected date. */
+	_selectDate: function(id, dateStr) {
+		var onSelect,
+			target = $(id),
+			inst = this._getInst(target[0]);
+
+		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
+		if (inst.input) {
+			inst.input.val(dateStr);
+		}
+		this._updateAlternate(inst);
+
+		onSelect = this._get(inst, "onSelect");
+		if (onSelect) {
+			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callback
+		} else if (inst.input) {
+			inst.input.trigger("change"); // fire the change event
+		}
+
+		if (inst.inline){
+			this._updateDatepicker(inst);
+		} else {
+			this._hideDatepicker();
+			this._lastInput = inst.input[0];
+			if (typeof(inst.input[0]) !== "object") {
+				inst.input.focus(); // restore focus
+			}
+			this._lastInput = null;
+		}
+	},
+
+	/* Update any alternate field to synchronise with the main field. */
+	_updateAlternate: function(inst) {
+		var altFormat, date, dateStr,
+			altField = this._get(inst, "altField");
+
+		if (altField) { // update alternate field too
+			altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat");
+			date = this._getDate(inst);
+			dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
+			$(altField).each(function() { $(this).val(dateStr); });
+		}
+	},
+
+	/* Set as beforeShowDay function to prevent selection of weekends.
+	 * @param  date  Date - the date to customise
+	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
+	 */
+	noWeekends: function(date) {
+		var day = date.getDay();
+		return [(day > 0 && day < 6), ""];
+	},
+
+	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
+	 * @param  date  Date - the date to get the week for
+	 * @return  number - the number of the week within the year that contains this date
+	 */
+	iso8601Week: function(date) {
+		var time,
+			checkDate = new Date(date.getTime());
+
+		// Find Thursday of this week starting on Monday
+		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
+
+		time = checkDate.getTime();
+		checkDate.setMonth(0); // Compare with Jan 1
+		checkDate.setDate(1);
+		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
+	},
+
+	/* Parse a string value into a date object.
+	 * See formatDate below for the possible formats.
+	 *
+	 * @param  format string - the expected format of the date
+	 * @param  value string - the date in the above format
+	 * @param  settings Object - attributes include:
+	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  Date - the extracted date value or null if value is blank
+	 */
+	parseDate: function (format, value, settings) {
+		if (format == null || value == null) {
+			throw "Invalid arguments";
+		}
+
+		value = (typeof value === "object" ? value.toString() : value + "");
+		if (value === "") {
+			return null;
+		}
+
+		var iFormat, dim, extra,
+			iValue = 0,
+			shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff,
+			shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
+				new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)),
+			dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
+			dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
+			monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
+			monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
+			year = -1,
+			month = -1,
+			day = -1,
+			doy = -1,
+			literal = false,
+			date,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			},
+			// Extract a number from the string value
+			getNumber = function(match) {
+				var isDoubled = lookAhead(match),
+					size = (match === "@" ? 14 : (match === "!" ? 20 :
+					(match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))),
+					minSize = (match === "y" ? size : 1),
+					digits = new RegExp("^\\d{" + minSize + "," + size + "}"),
+					num = value.substring(iValue).match(digits);
+				if (!num) {
+					throw "Missing number at position " + iValue;
+				}
+				iValue += num[0].length;
+				return parseInt(num[0], 10);
+			},
+			// Extract a name from the string value and convert to an index
+			getName = function(match, shortNames, longNames) {
+				var index = -1,
+					names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
+						return [ [k, v] ];
+					}).sort(function (a, b) {
+						return -(a[1].length - b[1].length);
+					});
+
+				$.each(names, function (i, pair) {
+					var name = pair[1];
+					if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {
+						index = pair[0];
+						iValue += name.length;
+						return false;
+					}
+				});
+				if (index !== -1) {
+					return index + 1;
+				} else {
+					throw "Unknown name at position " + iValue;
+				}
+			},
+			// Confirm that a literal character matches the string value
+			checkLiteral = function() {
+				if (value.charAt(iValue) !== format.charAt(iFormat)) {
+					throw "Unexpected literal at position " + iValue;
+				}
+				iValue++;
+			};
+
+		for (iFormat = 0; iFormat < format.length; iFormat++) {
+			if (literal) {
+				if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+					literal = false;
+				} else {
+					checkLiteral();
+				}
+			} else {
+				switch (format.charAt(iFormat)) {
+					case "d":
+						day = getNumber("d");
+						break;
+					case "D":
+						getName("D", dayNamesShort, dayNames);
+						break;
+					case "o":
+						doy = getNumber("o");
+						break;
+					case "m":
+						month = getNumber("m");
+						break;
+					case "M":
+						month = getName("M", monthNamesShort, monthNames);
+						break;
+					case "y":
+						year = getNumber("y");
+						break;
+					case "@":
+						date = new Date(getNumber("@"));
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "!":
+						date = new Date((getNumber("!") - this._ticksTo1970) / 10000);
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "'":
+						if (lookAhead("'")){
+							checkLiteral();
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						checkLiteral();
+				}
+			}
+		}
+
+		if (iValue < value.length){
+			extra = value.substr(iValue);
+			if (!/^\s+/.test(extra)) {
+				throw "Extra/unparsed characters found in date: " + extra;
+			}
+		}
+
+		if (year === -1) {
+			year = new Date().getFullYear();
+		} else if (year < 100) {
+			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
+				(year <= shortYearCutoff ? 0 : -100);
+		}
+
+		if (doy > -1) {
+			month = 1;
+			day = doy;
+			do {
+				dim = this._getDaysInMonth(year, month - 1);
+				if (day <= dim) {
+					break;
+				}
+				month++;
+				day -= dim;
+			} while (true);
+		}
+
+		date = this._daylightSavingAdjust(new Date(year, month - 1, day));
+		if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {
+			throw "Invalid date"; // E.g. 31/02/00
+		}
+		return date;
+	},
+
+	/* Standard date formats. */
+	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
+	COOKIE: "D, dd M yy",
+	ISO_8601: "yy-mm-dd",
+	RFC_822: "D, d M y",
+	RFC_850: "DD, dd-M-y",
+	RFC_1036: "D, d M y",
+	RFC_1123: "D, d M yy",
+	RFC_2822: "D, d M yy",
+	RSS: "D, d M y", // RFC 822
+	TICKS: "!",
+	TIMESTAMP: "@",
+	W3C: "yy-mm-dd", // ISO 8601
+
+	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
+		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
+
+	/* Format a date object into a string value.
+	 * The format can be combinations of the following:
+	 * d  - day of month (no leading zero)
+	 * dd - day of month (two digit)
+	 * o  - day of year (no leading zeros)
+	 * oo - day of year (three digit)
+	 * D  - day name short
+	 * DD - day name long
+	 * m  - month of year (no leading zero)
+	 * mm - month of year (two digit)
+	 * M  - month name short
+	 * MM - month name long
+	 * y  - year (two digit)
+	 * yy - year (four digit)
+	 * @ - Unix timestamp (ms since 01/01/1970)
+	 * ! - Windows ticks (100ns since 01/01/0001)
+	 * "..." - literal text
+	 * '' - single quote
+	 *
+	 * @param  format string - the desired format of the date
+	 * @param  date Date - the date value to format
+	 * @param  settings Object - attributes include:
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  string - the date in the above format
+	 */
+	formatDate: function (format, date, settings) {
+		if (!date) {
+			return "";
+		}
+
+		var iFormat,
+			dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
+			dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
+			monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
+			monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			},
+			// Format a number, with leading zero if necessary
+			formatNumber = function(match, value, len) {
+				var num = "" + value;
+				if (lookAhead(match)) {
+					while (num.length < len) {
+						num = "0" + num;
+					}
+				}
+				return num;
+			},
+			// Format a name, short or long as requested
+			formatName = function(match, value, shortNames, longNames) {
+				return (lookAhead(match) ? longNames[value] : shortNames[value]);
+			},
+			output = "",
+			literal = false;
+
+		if (date) {
+			for (iFormat = 0; iFormat < format.length; iFormat++) {
+				if (literal) {
+					if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+						literal = false;
+					} else {
+						output += format.charAt(iFormat);
+					}
+				} else {
+					switch (format.charAt(iFormat)) {
+						case "d":
+							output += formatNumber("d", date.getDate(), 2);
+							break;
+						case "D":
+							output += formatName("D", date.getDay(), dayNamesShort, dayNames);
+							break;
+						case "o":
+							output += formatNumber("o",
+								Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
+							break;
+						case "m":
+							output += formatNumber("m", date.getMonth() + 1, 2);
+							break;
+						case "M":
+							output += formatName("M", date.getMonth(), monthNamesShort, monthNames);
+							break;
+						case "y":
+							output += (lookAhead("y") ? date.getFullYear() :
+								(date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100);
+							break;
+						case "@":
+							output += date.getTime();
+							break;
+						case "!":
+							output += date.getTime() * 10000 + this._ticksTo1970;
+							break;
+						case "'":
+							if (lookAhead("'")) {
+								output += "'";
+							} else {
+								literal = true;
+							}
+							break;
+						default:
+							output += format.charAt(iFormat);
+					}
+				}
+			}
+		}
+		return output;
+	},
+
+	/* Extract all possible characters from the date format. */
+	_possibleChars: function (format) {
+		var iFormat,
+			chars = "",
+			literal = false,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			};
+
+		for (iFormat = 0; iFormat < format.length; iFormat++) {
+			if (literal) {
+				if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+					literal = false;
+				} else {
+					chars += format.charAt(iFormat);
+				}
+			} else {
+				switch (format.charAt(iFormat)) {
+					case "d": case "m": case "y": case "@":
+						chars += "0123456789";
+						break;
+					case "D": case "M":
+						return null; // Accept anything
+					case "'":
+						if (lookAhead("'")) {
+							chars += "'";
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						chars += format.charAt(iFormat);
+				}
+			}
+		}
+		return chars;
+	},
+
+	/* Get a setting value, defaulting if necessary. */
+	_get: function(inst, name) {
+		return inst.settings[name] !== undefined ?
+			inst.settings[name] : this._defaults[name];
+	},
+
+	/* Parse existing date and initialise date picker. */
+	_setDateFromField: function(inst, noDefault) {
+		if (inst.input.val() === inst.lastVal) {
+			return;
+		}
+
+		var dateFormat = this._get(inst, "dateFormat"),
+			dates = inst.lastVal = inst.input ? inst.input.val() : null,
+			defaultDate = this._getDefaultDate(inst),
+			date = defaultDate,
+			settings = this._getFormatConfig(inst);
+
+		try {
+			date = this.parseDate(dateFormat, dates, settings) || defaultDate;
+		} catch (event) {
+			dates = (noDefault ? "" : dates);
+		}
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		inst.currentDay = (dates ? date.getDate() : 0);
+		inst.currentMonth = (dates ? date.getMonth() : 0);
+		inst.currentYear = (dates ? date.getFullYear() : 0);
+		this._adjustInstDate(inst);
+	},
+
+	/* Retrieve the default date shown on opening. */
+	_getDefaultDate: function(inst) {
+		return this._restrictMinMax(inst,
+			this._determineDate(inst, this._get(inst, "defaultDate"), new Date()));
+	},
+
+	/* A date may be specified as an exact value or a relative one. */
+	_determineDate: function(inst, date, defaultDate) {
+		var offsetNumeric = function(offset) {
+				var date = new Date();
+				date.setDate(date.getDate() + offset);
+				return date;
+			},
+			offsetString = function(offset) {
+				try {
+					return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
+						offset, $.datepicker._getFormatConfig(inst));
+				}
+				catch (e) {
+					// Ignore
+				}
+
+				var date = (offset.toLowerCase().match(/^c/) ?
+					$.datepicker._getDate(inst) : null) || new Date(),
+					year = date.getFullYear(),
+					month = date.getMonth(),
+					day = date.getDate(),
+					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
+					matches = pattern.exec(offset);
+
+				while (matches) {
+					switch (matches[2] || "d") {
+						case "d" : case "D" :
+							day += parseInt(matches[1],10); break;
+						case "w" : case "W" :
+							day += parseInt(matches[1],10) * 7; break;
+						case "m" : case "M" :
+							month += parseInt(matches[1],10);
+							day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
+							break;
+						case "y": case "Y" :
+							year += parseInt(matches[1],10);
+							day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
+							break;
+					}
+					matches = pattern.exec(offset);
+				}
+				return new Date(year, month, day);
+			},
+			newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) :
+				(typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
+
+		newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate);
+		if (newDate) {
+			newDate.setHours(0);
+			newDate.setMinutes(0);
+			newDate.setSeconds(0);
+			newDate.setMilliseconds(0);
+		}
+		return this._daylightSavingAdjust(newDate);
+	},
+
+	/* Handle switch to/from daylight saving.
+	 * Hours may be non-zero on daylight saving cut-over:
+	 * > 12 when midnight changeover, but then cannot generate
+	 * midnight datetime, so jump to 1AM, otherwise reset.
+	 * @param  date  (Date) the date to check
+	 * @return  (Date) the corrected date
+	 */
+	_daylightSavingAdjust: function(date) {
+		if (!date) {
+			return null;
+		}
+		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
+		return date;
+	},
+
+	/* Set the date(s) directly. */
+	_setDate: function(inst, date, noChange) {
+		var clear = !date,
+			origMonth = inst.selectedMonth,
+			origYear = inst.selectedYear,
+			newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
+
+		inst.selectedDay = inst.currentDay = newDate.getDate();
+		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
+		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
+		if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) {
+			this._notifyChange(inst);
+		}
+		this._adjustInstDate(inst);
+		if (inst.input) {
+			inst.input.val(clear ? "" : this._formatDate(inst));
+		}
+	},
+
+	/* Retrieve the date(s) directly. */
+	_getDate: function(inst) {
+		var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null :
+			this._daylightSavingAdjust(new Date(
+			inst.currentYear, inst.currentMonth, inst.currentDay)));
+			return startDate;
+	},
+
+	/* Attach the onxxx handlers.  These are declared statically so
+	 * they work with static code transformers like Caja.
+	 */
+	_attachHandlers: function(inst) {
+		var stepMonths = this._get(inst, "stepMonths"),
+			id = "#" + inst.id.replace( /\\\\/g, "\\" );
+		inst.dpDiv.find("[data-handler]").map(function () {
+			var handler = {
+				prev: function () {
+					$.datepicker._adjustDate(id, -stepMonths, "M");
+				},
+				next: function () {
+					$.datepicker._adjustDate(id, +stepMonths, "M");
+				},
+				hide: function () {
+					$.datepicker._hideDatepicker();
+				},
+				today: function () {
+					$.datepicker._gotoToday(id);
+				},
+				selectDay: function () {
+					$.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this);
+					return false;
+				},
+				selectMonth: function () {
+					$.datepicker._selectMonthYear(id, this, "M");
+					return false;
+				},
+				selectYear: function () {
+					$.datepicker._selectMonthYear(id, this, "Y");
+					return false;
+				}
+			};
+			$(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]);
+		});
+	},
+
+	/* Generate the HTML for the current state of the date picker. */
+	_generateHTML: function(inst) {
+		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
+			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
+			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
+			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
+			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
+			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
+			tempDate = new Date(),
+			today = this._daylightSavingAdjust(
+				new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time
+			isRTL = this._get(inst, "isRTL"),
+			showButtonPanel = this._get(inst, "showButtonPanel"),
+			hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"),
+			navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"),
+			numMonths = this._getNumberOfMonths(inst),
+			showCurrentAtPos = this._get(inst, "showCurrentAtPos"),
+			stepMonths = this._get(inst, "stepMonths"),
+			isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1),
+			currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
+				new Date(inst.currentYear, inst.currentMonth, inst.currentDay))),
+			minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			drawMonth = inst.drawMonth - showCurrentAtPos,
+			drawYear = inst.drawYear;
+
+		if (drawMonth < 0) {
+			drawMonth += 12;
+			drawYear--;
+		}
+		if (maxDate) {
+			maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
+				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
+			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
+			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
+				drawMonth--;
+				if (drawMonth < 0) {
+					drawMonth = 11;
+					drawYear--;
+				}
+			}
+		}
+		inst.drawMonth = drawMonth;
+		inst.drawYear = drawYear;
+
+		prevText = this._get(inst, "prevText");
+		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
+			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
+			this._getFormatConfig(inst)));
+
+		prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
+			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
+			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" :
+			(hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>"));
+
+		nextText = this._get(inst, "nextText");
+		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
+			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
+			this._getFormatConfig(inst)));
+
+		next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
+			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
+			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" :
+			(hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>"));
+
+		currentText = this._get(inst, "currentText");
+		gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today);
+		currentText = (!navigationAsDateFormat ? currentText :
+			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
+
+		controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
+			this._get(inst, "closeText") + "</button>" : "");
+
+		buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") +
+			(this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
+			">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : "";
+
+		firstDay = parseInt(this._get(inst, "firstDay"),10);
+		firstDay = (isNaN(firstDay) ? 0 : firstDay);
+
+		showWeek = this._get(inst, "showWeek");
+		dayNames = this._get(inst, "dayNames");
+		dayNamesMin = this._get(inst, "dayNamesMin");
+		monthNames = this._get(inst, "monthNames");
+		monthNamesShort = this._get(inst, "monthNamesShort");
+		beforeShowDay = this._get(inst, "beforeShowDay");
+		showOtherMonths = this._get(inst, "showOtherMonths");
+		selectOtherMonths = this._get(inst, "selectOtherMonths");
+		defaultDate = this._getDefaultDate(inst);
+		html = "";
+		dow;
+		for (row = 0; row < numMonths[0]; row++) {
+			group = "";
+			this.maxRows = 4;
+			for (col = 0; col < numMonths[1]; col++) {
+				selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
+				cornerClass = " ui-corner-all";
+				calender = "";
+				if (isMultiMonth) {
+					calender += "<div class='ui-datepicker-group";
+					if (numMonths[1] > 1) {
+						switch (col) {
+							case 0: calender += " ui-datepicker-group-first";
+								cornerClass = " ui-corner-" + (isRTL ? "right" : "left"); break;
+							case numMonths[1]-1: calender += " ui-datepicker-group-last";
+								cornerClass = " ui-corner-" + (isRTL ? "left" : "right"); break;
+							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
+						}
+					}
+					calender += "'>";
+				}
+				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
+					(/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") +
+					(/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") +
+					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
+					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
+					"</div><table class='ui-datepicker-calendar'><thead>" +
+					"<tr>";
+				thead = (showWeek ? "<th class='ui-datepicker-week-col'>" + this._get(inst, "weekHeader") + "</th>" : "");
+				for (dow = 0; dow < 7; dow++) { // days of the week
+					day = (dow + firstDay) % 7;
+					thead += "<th scope='col'" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" +
+						"<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>";
+				}
+				calender += thead + "</tr></thead><tbody>";
+				daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
+				if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) {
+					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
+				}
+				leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
+				curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
+				numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
+				this.maxRows = numRows;
+				printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
+				for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows
+					calender += "<tr>";
+					tbody = (!showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
+						this._get(inst, "calculateWeek")(printDate) + "</td>");
+					for (dow = 0; dow < 7; dow++) { // create date picker days
+						daySettings = (beforeShowDay ?
+							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]);
+						otherMonth = (printDate.getMonth() !== drawMonth);
+						unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
+							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
+						tbody += "<td class='" +
+							((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + // highlight weekends
+							(otherMonth ? " ui-datepicker-other-month" : "") + // highlight days from other months
+							((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key
+							(defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ?
+							// or defaultDate is current printedDate and defaultDate is selectedDate
+							" " + this._dayOverClass : "") + // highlight selected day
+							(unselectable ? " " + this._unselectableClass + " ui-state-disabled": "") +  // highlight unselectable days
+							(otherMonth && !showOtherMonths ? "" : " " + daySettings[1] + // highlight custom dates
+							(printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "") + // highlight selected day
+							(printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "")) + "'" + // highlight today (if different)
+							((!otherMonth || showOtherMonths) && daySettings[2] ? " title='" + daySettings[2].replace(/'/g, "&#39;") + "'" : "") + // cell title
+							(unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'") + ">" + // actions
+							(otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
+							(unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
+							(printDate.getTime() === today.getTime() ? " ui-state-highlight" : "") +
+							(printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "") + // highlight selected day
+							(otherMonth ? " ui-priority-secondary" : "") + // distinguish dates from other months
+							"' href='#'>" + printDate.getDate() + "</a>")) + "</td>"; // display selectable date
+						printDate.setDate(printDate.getDate() + 1);
+						printDate = this._daylightSavingAdjust(printDate);
+					}
+					calender += tbody + "</tr>";
+				}
+				drawMonth++;
+				if (drawMonth > 11) {
+					drawMonth = 0;
+					drawYear++;
+				}
+				calender += "</tbody></table>" + (isMultiMonth ? "</div>" +
+							((numMonths[0] > 0 && col === numMonths[1]-1) ? "<div class='ui-datepicker-row-break'></div>" : "") : "");
+				group += calender;
+			}
+			html += group;
+		}
+		html += buttonPanel;
+		inst._keyEvent = false;
+		return html;
+	},
+
+	/* Generate the month and year header. */
+	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
+			secondary, monthNames, monthNamesShort) {
+
+		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
+			changeMonth = this._get(inst, "changeMonth"),
+			changeYear = this._get(inst, "changeYear"),
+			showMonthAfterYear = this._get(inst, "showMonthAfterYear"),
+			html = "<div class='ui-datepicker-title'>",
+			monthHtml = "";
+
+		// month selection
+		if (secondary || !changeMonth) {
+			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[drawMonth] + "</span>";
+		} else {
+			inMinYear = (minDate && minDate.getFullYear() === drawYear);
+			inMaxYear = (maxDate && maxDate.getFullYear() === drawYear);
+			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
+			for ( month = 0; month < 12; month++) {
+				if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) {
+					monthHtml += "<option value='" + month + "'" +
+						(month === drawMonth ? " selected='selected'" : "") +
+						">" + monthNamesShort[month] + "</option>";
+				}
+			}
+			monthHtml += "</select>";
+		}
+
+		if (!showMonthAfterYear) {
+			html += monthHtml + (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "");
+		}
+
+		// year selection
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = "";
+			if (secondary || !changeYear) {
+				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
+			} else {
+				// determine range of years to display
+				years = this._get(inst, "yearRange").split(":");
+				thisYear = new Date().getFullYear();
+				determineYear = function(value) {
+					var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) :
+						(value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) :
+						parseInt(value, 10)));
+					return (isNaN(year) ? thisYear : year);
+				};
+				year = determineYear(years[0]);
+				endYear = Math.max(year, determineYear(years[1] || ""));
+				year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
+				endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
+				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
+				for (; year <= endYear; year++) {
+					inst.yearshtml += "<option value='" + year + "'" +
+						(year === drawYear ? " selected='selected'" : "") +
+						">" + year + "</option>";
+				}
+				inst.yearshtml += "</select>";
+
+				html += inst.yearshtml;
+				inst.yearshtml = null;
+			}
+		}
+
+		html += this._get(inst, "yearSuffix");
+		if (showMonthAfterYear) {
+			html += (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "") + monthHtml;
+		}
+		html += "</div>"; // Close datepicker_header
+		return html;
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustInstDate: function(inst, offset, period) {
+		var year = inst.drawYear + (period === "Y" ? offset : 0),
+			month = inst.drawMonth + (period === "M" ? offset : 0),
+			day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0),
+			date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
+
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		if (period === "M" || period === "Y") {
+			this._notifyChange(inst);
+		}
+	},
+
+	/* Ensure a date is within any min/max bounds. */
+	_restrictMinMax: function(inst, date) {
+		var minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			newDate = (minDate && date < minDate ? minDate : date);
+		return (maxDate && newDate > maxDate ? maxDate : newDate);
+	},
+
+	/* Notify change of month/year. */
+	_notifyChange: function(inst) {
+		var onChange = this._get(inst, "onChangeMonthYear");
+		if (onChange) {
+			onChange.apply((inst.input ? inst.input[0] : null),
+				[inst.selectedYear, inst.selectedMonth + 1, inst]);
+		}
+	},
+
+	/* Determine the number of months to show. */
+	_getNumberOfMonths: function(inst) {
+		var numMonths = this._get(inst, "numberOfMonths");
+		return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths));
+	},
+
+	/* Determine the current maximum date - ensure no time components are set. */
+	_getMinMaxDate: function(inst, minMax) {
+		return this._determineDate(inst, this._get(inst, minMax + "Date"), null);
+	},
+
+	/* Find the number of days in a given month. */
+	_getDaysInMonth: function(year, month) {
+		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
+	},
+
+	/* Find the day of the week of the first of a month. */
+	_getFirstDayOfMonth: function(year, month) {
+		return new Date(year, month, 1).getDay();
+	},
+
+	/* Determines if we should allow a "next/prev" month display change. */
+	_canAdjustMonth: function(inst, offset, curYear, curMonth) {
+		var numMonths = this._getNumberOfMonths(inst),
+			date = this._daylightSavingAdjust(new Date(curYear,
+			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
+
+		if (offset < 0) {
+			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
+		}
+		return this._isInRange(inst, date);
+	},
+
+	/* Is the given date in the accepted range? */
+	_isInRange: function(inst, date) {
+		var yearSplit, currentYear,
+			minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			minYear = null,
+			maxYear = null,
+			years = this._get(inst, "yearRange");
+			if (years){
+				yearSplit = years.split(":");
+				currentYear = new Date().getFullYear();
+				minYear = parseInt(yearSplit[0], 10);
+				maxYear = parseInt(yearSplit[1], 10);
+				if ( yearSplit[0].match(/[+\-].*/) ) {
+					minYear += currentYear;
+				}
+				if ( yearSplit[1].match(/[+\-].*/) ) {
+					maxYear += currentYear;
+				}
+			}
+
+		return ((!minDate || date.getTime() >= minDate.getTime()) &&
+			(!maxDate || date.getTime() <= maxDate.getTime()) &&
+			(!minYear || date.getFullYear() >= minYear) &&
+			(!maxYear || date.getFullYear() <= maxYear));
+	},
+
+	/* Provide the configuration settings for formatting/parsing. */
+	_getFormatConfig: function(inst) {
+		var shortYearCutoff = this._get(inst, "shortYearCutoff");
+		shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff :
+			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
+		return {shortYearCutoff: shortYearCutoff,
+			dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"),
+			monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")};
+	},
+
+	/* Format the given date for display. */
+	_formatDate: function(inst, day, month, year) {
+		if (!day) {
+			inst.currentDay = inst.selectedDay;
+			inst.currentMonth = inst.selectedMonth;
+			inst.currentYear = inst.selectedYear;
+		}
+		var date = (day ? (typeof day === "object" ? day :
+			this._daylightSavingAdjust(new Date(year, month, day))) :
+			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
+		return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst));
+	}
+});
+
+/*
+ * Bind hover events for datepicker elements.
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
+ * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
+ */
+function datepicker_bindHover(dpDiv) {
+	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
+	return dpDiv.delegate(selector, "mouseout", function() {
+			$(this).removeClass("ui-state-hover");
+			if (this.className.indexOf("ui-datepicker-prev") !== -1) {
+				$(this).removeClass("ui-datepicker-prev-hover");
+			}
+			if (this.className.indexOf("ui-datepicker-next") !== -1) {
+				$(this).removeClass("ui-datepicker-next-hover");
+			}
+		})
+		.delegate( selector, "mouseover", datepicker_handleMouseover );
+}
+
+function datepicker_handleMouseover() {
+	if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {
+		$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
+		$(this).addClass("ui-state-hover");
+		if (this.className.indexOf("ui-datepicker-prev") !== -1) {
+			$(this).addClass("ui-datepicker-prev-hover");
+		}
+		if (this.className.indexOf("ui-datepicker-next") !== -1) {
+			$(this).addClass("ui-datepicker-next-hover");
+		}
+	}
+}
+
+/* jQuery extend now ignores nulls! */
+function datepicker_extendRemove(target, props) {
+	$.extend(target, props);
+	for (var name in props) {
+		if (props[name] == null) {
+			target[name] = props[name];
+		}
+	}
+	return target;
+}
+
+/* Invoke the datepicker functionality.
+   @param  options  string - a command, optionally followed by additional parameters or
+					Object - settings for attaching new datepicker functionality
+   @return  jQuery object */
+$.fn.datepicker = function(options){
+
+	/* Verify an empty collection wasn't passed - Fixes #6976 */
+	if ( !this.length ) {
+		return this;
+	}
+
+	/* Initialise the date picker. */
+	if (!$.datepicker.initialized) {
+		$(document).mousedown($.datepicker._checkExternalClick);
+		$.datepicker.initialized = true;
+	}
+
+	/* Append datepicker main container to body if not exist. */
+	if ($("#"+$.datepicker._mainDivId).length === 0) {
+		$("body").append($.datepicker.dpDiv);
+	}
+
+	var otherArgs = Array.prototype.slice.call(arguments, 1);
+	if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) {
+		return $.datepicker["_" + options + "Datepicker"].
+			apply($.datepicker, [this[0]].concat(otherArgs));
+	}
+	if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") {
+		return $.datepicker["_" + options + "Datepicker"].
+			apply($.datepicker, [this[0]].concat(otherArgs));
+	}
+	return this.each(function() {
+		typeof options === "string" ?
+			$.datepicker["_" + options + "Datepicker"].
+				apply($.datepicker, [this].concat(otherArgs)) :
+			$.datepicker._attachDatepicker(this, options);
+	});
+};
+
+$.datepicker = new Datepicker(); // singleton instance
+$.datepicker.initialized = false;
+$.datepicker.uuid = new Date().getTime();
+$.datepicker.version = "1.11.3";
+
+var datepicker = $.datepicker;
+
+
+/*!
+ * jQuery UI Draggable 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/draggable/
+ */
+
+
+$.widget("ui.draggable", $.ui.mouse, {
+	version: "1.11.3",
+	widgetEventPrefix: "drag",
+	options: {
+		addClasses: true,
+		appendTo: "parent",
+		axis: false,
+		connectToSortable: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		iframeFix: false,
+		opacity: false,
+		refreshPositions: false,
+		revert: false,
+		revertDuration: 500,
+		scope: "default",
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		snap: false,
+		snapMode: "both",
+		snapTolerance: 20,
+		stack: false,
+		zIndex: false,
+
+		// callbacks
+		drag: null,
+		start: null,
+		stop: null
+	},
+	_create: function() {
+
+		if ( this.options.helper === "original" ) {
+			this._setPositionRelative();
+		}
+		if (this.options.addClasses){
+			this.element.addClass("ui-draggable");
+		}
+		if (this.options.disabled){
+			this.element.addClass("ui-draggable-disabled");
+		}
+		this._setHandleClassName();
+
+		this._mouseInit();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "handle" ) {
+			this._removeHandleClassName();
+			this._setHandleClassName();
+		}
+	},
+
+	_destroy: function() {
+		if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
+			this.destroyOnClear = true;
+			return;
+		}
+		this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" );
+		this._removeHandleClassName();
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function(event) {
+		var o = this.options;
+
+		this._blurActiveElement( event );
+
+		// among others, prevent a drag on a resizable-handle
+		if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
+			return false;
+		}
+
+		//Quit if we're not on a valid handle
+		this.handle = this._getHandle(event);
+		if (!this.handle) {
+			return false;
+		}
+
+		this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
+
+		return true;
+
+	},
+
+	_blockFrames: function( selector ) {
+		this.iframeBlocks = this.document.find( selector ).map(function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( "position", "absolute" )
+				.appendTo( iframe.parent() )
+				.outerWidth( iframe.outerWidth() )
+				.outerHeight( iframe.outerHeight() )
+				.offset( iframe.offset() )[ 0 ];
+		});
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_blurActiveElement: function( event ) {
+		var document = this.document[ 0 ];
+
+		// Only need to blur if the event occurred on the draggable itself, see #10527
+		if ( !this.handleElement.is( event.target ) ) {
+			return;
+		}
+
+		// support: IE9
+		// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+		try {
+
+			// Support: IE9, IE10
+			// If the <body> is blurred, IE will switch windows, see #9520
+			if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {
+
+				// Blur any element that currently has focus, see #4261
+				$( document.activeElement ).blur();
+			}
+		} catch ( error ) {}
+	},
+
+	_mouseStart: function(event) {
+
+		var o = this.options;
+
+		//Create and append the visible helper
+		this.helper = this._createHelper(event);
+
+		this.helper.addClass("ui-draggable-dragging");
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		//If ddmanager is used for droppables, set the global draggable
+		if ($.ui.ddmanager) {
+			$.ui.ddmanager.current = this;
+		}
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Store the helper's css position
+		this.cssPosition = this.helper.css( "position" );
+		this.scrollParent = this.helper.scrollParent( true );
+		this.offsetParent = this.helper.offsetParent();
+		this.hasFixedAncestor = this.helper.parents().filter(function() {
+				return $( this ).css( "position" ) === "fixed";
+			}).length > 0;
+
+		//The element's absolute position on the page minus margins
+		this.positionAbs = this.element.offset();
+		this._refreshOffsets( event );
+
+		//Generate the original position
+		this.originalPosition = this.position = this._generatePosition( event, false );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
+
+		//Set a containment if given in the options
+		this._setContainment();
+
+		//Trigger event + callbacks
+		if (this._trigger("start", event) === false) {
+			this._clear();
+			return false;
+		}
+
+		//Recache the helper size
+		this._cacheHelperProportions();
+
+		//Prepare the droppable offsets
+		if ($.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(this, event);
+		}
+
+		// Reset helper's right/bottom css if they're set and set explicit width/height instead
+		// as this prevents resizing of elements with right/bottom set (see #7772)
+		this._normalizeRightBottom();
+
+		this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
+
+		//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStart(this, event);
+		}
+
+		return true;
+	},
+
+	_refreshOffsets: function( event ) {
+		this.offset = {
+			top: this.positionAbs.top - this.margins.top,
+			left: this.positionAbs.left - this.margins.left,
+			scroll: false,
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset()
+		};
+
+		this.offset.click = {
+			left: event.pageX - this.offset.left,
+			top: event.pageY - this.offset.top
+		};
+	},
+
+	_mouseDrag: function(event, noPropagation) {
+		// reset any necessary cached properties (see #5009)
+		if ( this.hasFixedAncestor ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event, true );
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		//Call plugins and callbacks and use the resulting position if something is returned
+		if (!noPropagation) {
+			var ui = this._uiHash();
+			if (this._trigger("drag", event, ui) === false) {
+				this._mouseUp({});
+				return false;
+			}
+			this.position = ui.position;
+		}
+
+		this.helper[ 0 ].style.left = this.position.left + "px";
+		this.helper[ 0 ].style.top = this.position.top + "px";
+
+		if ($.ui.ddmanager) {
+			$.ui.ddmanager.drag(this, event);
+		}
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+
+		//If we are using droppables, inform the manager about the drop
+		var that = this,
+			dropped = false;
+		if ($.ui.ddmanager && !this.options.dropBehaviour) {
+			dropped = $.ui.ddmanager.drop(this, event);
+		}
+
+		//if a drop comes from outside (a sortable)
+		if (this.dropped) {
+			dropped = this.dropped;
+			this.dropped = false;
+		}
+
+		if ((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
+			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
+				if (that._trigger("stop", event) !== false) {
+					that._clear();
+				}
+			});
+		} else {
+			if (this._trigger("stop", event) !== false) {
+				this._clear();
+			}
+		}
+
+		return false;
+	},
+
+	_mouseUp: function( event ) {
+		this._unblockFrames();
+
+		//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStop(this, event);
+		}
+
+		// Only need to focus if the event occurred on the draggable itself, see #10527
+		if ( this.handleElement.is( event.target ) ) {
+			// The interaction is over; whether or not the click resulted in a drag, focus the element
+			this.element.focus();
+		}
+
+		return $.ui.mouse.prototype._mouseUp.call(this, event);
+	},
+
+	cancel: function() {
+
+		if (this.helper.is(".ui-draggable-dragging")) {
+			this._mouseUp({});
+		} else {
+			this._clear();
+		}
+
+		return this;
+
+	},
+
+	_getHandle: function(event) {
+		return this.options.handle ?
+			!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+			true;
+	},
+
+	_setHandleClassName: function() {
+		this.handleElement = this.options.handle ?
+			this.element.find( this.options.handle ) : this.element;
+		this.handleElement.addClass( "ui-draggable-handle" );
+	},
+
+	_removeHandleClassName: function() {
+		this.handleElement.removeClass( "ui-draggable-handle" );
+	},
+
+	_createHelper: function(event) {
+
+		var o = this.options,
+			helperIsFunction = $.isFunction( o.helper ),
+			helper = helperIsFunction ?
+				$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
+				( o.helper === "clone" ?
+					this.element.clone().removeAttr( "id" ) :
+					this.element );
+
+		if (!helper.parents("body").length) {
+			helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
+		}
+
+		// http://bugs.jqueryui.com/ticket/9446
+		// a helper function can return the original element
+		// which wouldn't have been set to relative in _create
+		if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
+			this._setPositionRelative();
+		}
+
+		if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
+			helper.css("position", "absolute");
+		}
+
+		return helper;
+
+	},
+
+	_setPositionRelative: function() {
+		if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
+			this.element[ 0 ].style.position = "relative";
+		}
+	},
+
+	_adjustOffsetFromHelper: function(obj) {
+		if (typeof obj === "string") {
+			obj = obj.split(" ");
+		}
+		if ($.isArray(obj)) {
+			obj = { left: +obj[0], top: +obj[1] || 0 };
+		}
+		if ("left" in obj) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ("right" in obj) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ("top" in obj) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ("bottom" in obj) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_isRootNode: function( element ) {
+		return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		var po = this.offsetParent.offset(),
+			document = this.document[ 0 ];
+
+		// This is a special case where we need to modify a offset calculated on start, since the following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
+		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
+		if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
+			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+		if ( this.cssPosition !== "relative" ) {
+			return { top: 0, left: 0 };
+		}
+
+		var p = this.element.position(),
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
+			left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
+		};
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: (parseInt(this.element.css("marginLeft"), 10) || 0),
+			top: (parseInt(this.element.css("marginTop"), 10) || 0),
+			right: (parseInt(this.element.css("marginRight"), 10) || 0),
+			bottom: (parseInt(this.element.css("marginBottom"), 10) || 0)
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var isUserScrollable, c, ce,
+			o = this.options,
+			document = this.document[ 0 ];
+
+		this.relativeContainer = null;
+
+		if ( !o.containment ) {
+			this.containment = null;
+			return;
+		}
+
+		if ( o.containment === "window" ) {
+			this.containment = [
+				$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
+				$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+				$( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,
+				$( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment === "document") {
+			this.containment = [
+				0,
+				0,
+				$( document ).width() - this.helperProportions.width - this.margins.left,
+				( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment.constructor === Array ) {
+			this.containment = o.containment;
+			return;
+		}
+
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+
+		c = $( o.containment );
+		ce = c[ 0 ];
+
+		if ( !ce ) {
+			return;
+		}
+
+		isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
+
+		this.containment = [
+			( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
+			( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
+			( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+				( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
+				this.helperProportions.width -
+				this.margins.left -
+				this.margins.right,
+			( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+				( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
+				this.helperProportions.height -
+				this.margins.top -
+				this.margins.bottom
+		];
+		this.relativeContainer = c;
+	},
+
+	_convertPositionTo: function(d, pos) {
+
+		if (!pos) {
+			pos = this.position;
+		}
+
+		var mod = d === "absolute" ? 1 : -1,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: (
+				pos.top	+																// The absolute mouse position
+				this.offset.relative.top * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top * mod -										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)
+			),
+			left: (
+				pos.left +																// The absolute mouse position
+				this.offset.relative.left * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left * mod	-										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)
+			)
+		};
+
+	},
+
+	_generatePosition: function( event, constrainPosition ) {
+
+		var containment, co, top, left,
+			o = this.options,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
+			pageX = event.pageX,
+			pageY = event.pageY;
+
+		// Cache the scroll
+		if ( !scrollIsRootNode || !this.offset.scroll ) {
+			this.offset.scroll = {
+				top: this.scrollParent.scrollTop(),
+				left: this.scrollParent.scrollLeft()
+			};
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		// If we are not dragging yet, we won't check for options
+		if ( constrainPosition ) {
+			if ( this.containment ) {
+				if ( this.relativeContainer ){
+					co = this.relativeContainer.offset();
+					containment = [
+						this.containment[ 0 ] + co.left,
+						this.containment[ 1 ] + co.top,
+						this.containment[ 2 ] + co.left,
+						this.containment[ 3 ] + co.top
+					];
+				} else {
+					containment = this.containment;
+				}
+
+				if (event.pageX - this.offset.click.left < containment[0]) {
+					pageX = containment[0] + this.offset.click.left;
+				}
+				if (event.pageY - this.offset.click.top < containment[1]) {
+					pageY = containment[1] + this.offset.click.top;
+				}
+				if (event.pageX - this.offset.click.left > containment[2]) {
+					pageX = containment[2] + this.offset.click.left;
+				}
+				if (event.pageY - this.offset.click.top > containment[3]) {
+					pageY = containment[3] + this.offset.click.top;
+				}
+			}
+
+			if (o.grid) {
+				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
+				top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
+				pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
+
+				left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
+				pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
+			}
+
+			if ( o.axis === "y" ) {
+				pageX = this.originalPageX;
+			}
+
+			if ( o.axis === "x" ) {
+				pageY = this.originalPageY;
+			}
+		}
+
+		return {
+			top: (
+				pageY -																	// The absolute mouse position
+				this.offset.click.top	-												// Click offset (relative to the element)
+				this.offset.relative.top -												// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top +												// The offsetParent's offset without borders (offset + border)
+				( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
+			),
+			left: (
+				pageX -																	// The absolute mouse position
+				this.offset.click.left -												// Click offset (relative to the element)
+				this.offset.relative.left -												// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left +												// The offsetParent's offset without borders (offset + border)
+				( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
+			)
+		};
+
+	},
+
+	_clear: function() {
+		this.helper.removeClass("ui-draggable-dragging");
+		if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
+			this.helper.remove();
+		}
+		this.helper = null;
+		this.cancelHelperRemoval = false;
+		if ( this.destroyOnClear ) {
+			this.destroy();
+		}
+	},
+
+	_normalizeRightBottom: function() {
+		if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) {
+			this.helper.width( this.helper.width() );
+			this.helper.css( "right", "auto" );
+		}
+		if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) {
+			this.helper.height( this.helper.height() );
+			this.helper.css( "bottom", "auto" );
+		}
+	},
+
+	// From now on bulk stuff - mainly helpers
+
+	_trigger: function( type, event, ui ) {
+		ui = ui || this._uiHash();
+		$.ui.plugin.call( this, type, [ event, ui, this ], true );
+
+		// Absolute position and offset (see #6884 ) have to be recalculated after plugins
+		if ( /^(drag|start|stop)/.test( type ) ) {
+			this.positionAbs = this._convertPositionTo( "absolute" );
+			ui.offset = this.positionAbs;
+		}
+		return $.Widget.prototype._trigger.call( this, type, event, ui );
+	},
+
+	plugins: {},
+
+	_uiHash: function() {
+		return {
+			helper: this.helper,
+			position: this.position,
+			originalPosition: this.originalPosition,
+			offset: this.positionAbs
+		};
+	}
+
+});
+
+$.ui.plugin.add( "draggable", "connectToSortable", {
+	start: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		});
+
+		draggable.sortables = [];
+		$( draggable.options.connectToSortable ).each(function() {
+			var sortable = $( this ).sortable( "instance" );
+
+			if ( sortable && !sortable.options.disabled ) {
+				draggable.sortables.push( sortable );
+
+				// refreshPositions is called at drag start to refresh the containerCache
+				// which is used in drag. This ensures it's initialized and synchronized
+				// with any changes that might have happened on the page since initialization.
+				sortable.refreshPositions();
+				sortable._trigger("activate", event, uiSortable);
+			}
+		});
+	},
+	stop: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		});
+
+		draggable.cancelHelperRemoval = false;
+
+		$.each( draggable.sortables, function() {
+			var sortable = this;
+
+			if ( sortable.isOver ) {
+				sortable.isOver = 0;
+
+				// Allow this sortable to handle removing the helper
+				draggable.cancelHelperRemoval = true;
+				sortable.cancelHelperRemoval = false;
+
+				// Use _storedCSS To restore properties in the sortable,
+				// as this also handles revert (#9675) since the draggable
+				// may have modified them in unexpected ways (#8809)
+				sortable._storedCSS = {
+					position: sortable.placeholder.css( "position" ),
+					top: sortable.placeholder.css( "top" ),
+					left: sortable.placeholder.css( "left" )
+				};
+
+				sortable._mouseStop(event);
+
+				// Once drag has ended, the sortable should return to using
+				// its original helper, not the shared helper from draggable
+				sortable.options.helper = sortable.options._helper;
+			} else {
+				// Prevent this Sortable from removing the helper.
+				// However, don't set the draggable to remove the helper
+				// either as another connected Sortable may yet handle the removal.
+				sortable.cancelHelperRemoval = true;
+
+				sortable._trigger( "deactivate", event, uiSortable );
+			}
+		});
+	},
+	drag: function( event, ui, draggable ) {
+		$.each( draggable.sortables, function() {
+			var innermostIntersecting = false,
+				sortable = this;
+
+			// Copy over variables that sortable's _intersectsWith uses
+			sortable.positionAbs = draggable.positionAbs;
+			sortable.helperProportions = draggable.helperProportions;
+			sortable.offset.click = draggable.offset.click;
+
+			if ( sortable._intersectsWith( sortable.containerCache ) ) {
+				innermostIntersecting = true;
+
+				$.each( draggable.sortables, function() {
+					// Copy over variables that sortable's _intersectsWith uses
+					this.positionAbs = draggable.positionAbs;
+					this.helperProportions = draggable.helperProportions;
+					this.offset.click = draggable.offset.click;
+
+					if ( this !== sortable &&
+							this._intersectsWith( this.containerCache ) &&
+							$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
+						innermostIntersecting = false;
+					}
+
+					return innermostIntersecting;
+				});
+			}
+
+			if ( innermostIntersecting ) {
+				// If it intersects, we use a little isOver variable and set it once,
+				// so that the move-in stuff gets fired only once.
+				if ( !sortable.isOver ) {
+					sortable.isOver = 1;
+
+					sortable.currentItem = ui.helper
+						.appendTo( sortable.element )
+						.data( "ui-sortable-item", true );
+
+					// Store helper option to later restore it
+					sortable.options._helper = sortable.options.helper;
+
+					sortable.options.helper = function() {
+						return ui.helper[ 0 ];
+					};
+
+					// Fire the start events of the sortable with our passed browser event,
+					// and our own helper (so it doesn't create a new one)
+					event.target = sortable.currentItem[ 0 ];
+					sortable._mouseCapture( event, true );
+					sortable._mouseStart( event, true, true );
+
+					// Because the browser event is way off the new appended portlet,
+					// modify necessary variables to reflect the changes
+					sortable.offset.click.top = draggable.offset.click.top;
+					sortable.offset.click.left = draggable.offset.click.left;
+					sortable.offset.parent.left -= draggable.offset.parent.left -
+						sortable.offset.parent.left;
+					sortable.offset.parent.top -= draggable.offset.parent.top -
+						sortable.offset.parent.top;
+
+					draggable._trigger( "toSortable", event );
+
+					// Inform draggable that the helper is in a valid drop zone,
+					// used solely in the revert option to handle "valid/invalid".
+					draggable.dropped = sortable.element;
+
+					// Need to refreshPositions of all sortables in the case that
+					// adding to one sortable changes the location of the other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					});
+
+					// hack so receive/update callbacks work (mostly)
+					draggable.currentItem = draggable.element;
+					sortable.fromOutside = draggable;
+				}
+
+				if ( sortable.currentItem ) {
+					sortable._mouseDrag( event );
+					// Copy the sortable's position because the draggable's can potentially reflect
+					// a relative position, while sortable is always absolute, which the dragged
+					// element has now become. (#8809)
+					ui.position = sortable.position;
+				}
+			} else {
+				// If it doesn't intersect with the sortable, and it intersected before,
+				// we fake the drag stop of the sortable, but make sure it doesn't remove
+				// the helper by using cancelHelperRemoval.
+				if ( sortable.isOver ) {
+
+					sortable.isOver = 0;
+					sortable.cancelHelperRemoval = true;
+
+					// Calling sortable's mouseStop would trigger a revert,
+					// so revert must be temporarily false until after mouseStop is called.
+					sortable.options._revert = sortable.options.revert;
+					sortable.options.revert = false;
+
+					sortable._trigger( "out", event, sortable._uiHash( sortable ) );
+					sortable._mouseStop( event, true );
+
+					// restore sortable behaviors that were modfied
+					// when the draggable entered the sortable area (#9481)
+					sortable.options.revert = sortable.options._revert;
+					sortable.options.helper = sortable.options._helper;
+
+					if ( sortable.placeholder ) {
+						sortable.placeholder.remove();
+					}
+
+					// Recalculate the draggable's offset considering the sortable
+					// may have modified them in unexpected ways (#8809)
+					draggable._refreshOffsets( event );
+					ui.position = draggable._generatePosition( event, true );
+
+					draggable._trigger( "fromSortable", event );
+
+					// Inform draggable that the helper is no longer in a valid drop zone
+					draggable.dropped = false;
+
+					// Need to refreshPositions of all sortables just in case removing
+					// from one sortable changes the location of other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					});
+				}
+			}
+		});
+	}
+});
+
+$.ui.plugin.add("draggable", "cursor", {
+	start: function( event, ui, instance ) {
+		var t = $( "body" ),
+			o = instance.options;
+
+		if (t.css("cursor")) {
+			o._cursor = t.css("cursor");
+		}
+		t.css("cursor", o.cursor);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if (o._cursor) {
+			$("body").css("cursor", o._cursor);
+		}
+	}
+});
+
+$.ui.plugin.add("draggable", "opacity", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+		if (t.css("opacity")) {
+			o._opacity = t.css("opacity");
+		}
+		t.css("opacity", o.opacity);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if (o._opacity) {
+			$(ui.helper).css("opacity", o._opacity);
+		}
+	}
+});
+
+$.ui.plugin.add("draggable", "scroll", {
+	start: function( event, ui, i ) {
+		if ( !i.scrollParentNotHidden ) {
+			i.scrollParentNotHidden = i.helper.scrollParent( false );
+		}
+
+		if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
+			i.overflowOffset = i.scrollParentNotHidden.offset();
+		}
+	},
+	drag: function( event, ui, i  ) {
+
+		var o = i.options,
+			scrolled = false,
+			scrollParent = i.scrollParentNotHidden[ 0 ],
+			document = i.document[ 0 ];
+
+		if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
+				}
+			}
+
+		} else {
+
+			if (!o.axis || o.axis !== "x") {
+				if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
+					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
+				} else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
+					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
+				}
+			}
+
+			if (!o.axis || o.axis !== "y") {
+				if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
+					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
+				} else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
+					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
+				}
+			}
+
+		}
+
+		if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(i, event);
+		}
+
+	}
+});
+
+$.ui.plugin.add("draggable", "snap", {
+	start: function( event, ui, i ) {
+
+		var o = i.options;
+
+		i.snapElements = [];
+
+		$(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() {
+			var $t = $(this),
+				$o = $t.offset();
+			if (this !== i.element[0]) {
+				i.snapElements.push({
+					item: this,
+					width: $t.outerWidth(), height: $t.outerHeight(),
+					top: $o.top, left: $o.left
+				});
+			}
+		});
+
+	},
+	drag: function( event, ui, inst ) {
+
+		var ts, bs, ls, rs, l, r, t, b, i, first,
+			o = inst.options,
+			d = o.snapTolerance,
+			x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
+			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
+
+		for (i = inst.snapElements.length - 1; i >= 0; i--){
+
+			l = inst.snapElements[i].left - inst.margins.left;
+			r = l + inst.snapElements[i].width;
+			t = inst.snapElements[i].top - inst.margins.top;
+			b = t + inst.snapElements[i].height;
+
+			if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {
+				if (inst.snapElements[i].snapping) {
+					(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
+				}
+				inst.snapElements[i].snapping = false;
+				continue;
+			}
+
+			if (o.snapMode !== "inner") {
+				ts = Math.abs(t - y2) <= d;
+				bs = Math.abs(b - y1) <= d;
+				ls = Math.abs(l - x2) <= d;
+				rs = Math.abs(r - x1) <= d;
+				if (ts) {
+					ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top;
+				}
+				if (bs) {
+					ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top;
+				}
+				if (ls) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left;
+				}
+				if (rs) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left;
+				}
+			}
+
+			first = (ts || bs || ls || rs);
+
+			if (o.snapMode !== "outer") {
+				ts = Math.abs(t - y1) <= d;
+				bs = Math.abs(b - y2) <= d;
+				ls = Math.abs(l - x1) <= d;
+				rs = Math.abs(r - x2) <= d;
+				if (ts) {
+					ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top;
+				}
+				if (bs) {
+					ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top;
+				}
+				if (ls) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left;
+				}
+				if (rs) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left;
+				}
+			}
+
+			if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
+				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
+			}
+			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
+
+		}
+
+	}
+});
+
+$.ui.plugin.add("draggable", "stack", {
+	start: function( event, ui, instance ) {
+		var min,
+			o = instance.options,
+			group = $.makeArray($(o.stack)).sort(function(a, b) {
+				return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0);
+			});
+
+		if (!group.length) { return; }
+
+		min = parseInt($(group[0]).css("zIndex"), 10) || 0;
+		$(group).each(function(i) {
+			$(this).css("zIndex", min + i);
+		});
+		this.css("zIndex", (min + group.length));
+	}
+});
+
+$.ui.plugin.add("draggable", "zIndex", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+
+		if (t.css("zIndex")) {
+			o._zIndex = t.css("zIndex");
+		}
+		t.css("zIndex", o.zIndex);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+
+		if (o._zIndex) {
+			$(ui.helper).css("zIndex", o._zIndex);
+		}
+	}
+});
+
+var draggable = $.ui.draggable;
+
+
+/*!
+ * jQuery UI Resizable 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/resizable/
+ */
+
+
+$.widget("ui.resizable", $.ui.mouse, {
+	version: "1.11.3",
+	widgetEventPrefix: "resize",
+	options: {
+		alsoResize: false,
+		animate: false,
+		animateDuration: "slow",
+		animateEasing: "swing",
+		aspectRatio: false,
+		autoHide: false,
+		containment: false,
+		ghost: false,
+		grid: false,
+		handles: "e,s,se",
+		helper: false,
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 10,
+		minWidth: 10,
+		// See #7960
+		zIndex: 90,
+
+		// callbacks
+		resize: null,
+		start: null,
+		stop: null
+	},
+
+	_num: function( value ) {
+		return parseInt( value, 10 ) || 0;
+	},
+
+	_isNumber: function( value ) {
+		return !isNaN( parseInt( value, 10 ) );
+	},
+
+	_hasScroll: function( el, a ) {
+
+		if ( $( el ).css( "overflow" ) === "hidden") {
+			return false;
+		}
+
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+
+	_create: function() {
+
+		var n, i, handle, axis, hname,
+			that = this,
+			o = this.options;
+		this.element.addClass("ui-resizable");
+
+		$.extend(this, {
+			_aspectRatio: !!(o.aspectRatio),
+			aspectRatio: o.aspectRatio,
+			originalElement: this.element,
+			_proportionallyResizeElements: [],
+			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
+		});
+
+		// Wrap the element if it cannot hold child nodes
+		if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) {
+
+			this.element.wrap(
+				$("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({
+					position: this.element.css("position"),
+					width: this.element.outerWidth(),
+					height: this.element.outerHeight(),
+					top: this.element.css("top"),
+					left: this.element.css("left")
+				})
+			);
+
+			this.element = this.element.parent().data(
+				"ui-resizable", this.element.resizable( "instance" )
+			);
+
+			this.elementIsWrapper = true;
+
+			this.element.css({
+				marginLeft: this.originalElement.css("marginLeft"),
+				marginTop: this.originalElement.css("marginTop"),
+				marginRight: this.originalElement.css("marginRight"),
+				marginBottom: this.originalElement.css("marginBottom")
+			});
+			this.originalElement.css({
+				marginLeft: 0,
+				marginTop: 0,
+				marginRight: 0,
+				marginBottom: 0
+			});
+			// support: Safari
+			// Prevent Safari textarea resize
+			this.originalResizeStyle = this.originalElement.css("resize");
+			this.originalElement.css("resize", "none");
+
+			this._proportionallyResizeElements.push( this.originalElement.css({
+				position: "static",
+				zoom: 1,
+				display: "block"
+			}) );
+
+			// support: IE9
+			// avoid IE jump (hard set the margin)
+			this.originalElement.css({ margin: this.originalElement.css("margin") });
+
+			this._proportionallyResize();
+		}
+
+		this.handles = o.handles ||
+			( !$(".ui-resizable-handle", this.element).length ?
+				"e,s,se" : {
+					n: ".ui-resizable-n",
+					e: ".ui-resizable-e",
+					s: ".ui-resizable-s",
+					w: ".ui-resizable-w",
+					se: ".ui-resizable-se",
+					sw: ".ui-resizable-sw",
+					ne: ".ui-resizable-ne",
+					nw: ".ui-resizable-nw"
+				} );
+
+		if (this.handles.constructor === String) {
+
+			if ( this.handles === "all") {
+				this.handles = "n,e,s,w,se,sw,ne,nw";
+			}
+
+			n = this.handles.split(",");
+			this.handles = {};
+
+			for (i = 0; i < n.length; i++) {
+
+				handle = $.trim(n[i]);
+				hname = "ui-resizable-" + handle;
+				axis = $("<div class='ui-resizable-handle " + hname + "'></div>");
+
+				axis.css({ zIndex: o.zIndex });
+
+				// TODO : What's going on here?
+				if ("se" === handle) {
+					axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
+				}
+
+				this.handles[handle] = ".ui-resizable-" + handle;
+				this.element.append(axis);
+			}
+
+		}
+
+		this._renderAxis = function(target) {
+
+			var i, axis, padPos, padWrapper;
+
+			target = target || this.element;
+
+			for (i in this.handles) {
+
+				if (this.handles[i].constructor === String) {
+					this.handles[i] = this.element.children( this.handles[ i ] ).first().show();
+				}
+
+				if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) {
+
+					axis = $(this.handles[i], this.element);
+
+					padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
+
+					padPos = [ "padding",
+						/ne|nw|n/.test(i) ? "Top" :
+						/se|sw|s/.test(i) ? "Bottom" :
+						/^e$/.test(i) ? "Right" : "Left" ].join("");
+
+					target.css(padPos, padWrapper);
+
+					this._proportionallyResize();
+
+				}
+
+				// TODO: What's that good for? There's not anything to be executed left
+				if (!$(this.handles[i]).length) {
+					continue;
+				}
+			}
+		};
+
+		// TODO: make renderAxis a prototype function
+		this._renderAxis(this.element);
+
+		this._handles = $(".ui-resizable-handle", this.element)
+			.disableSelection();
+
+		this._handles.mouseover(function() {
+			if (!that.resizing) {
+				if (this.className) {
+					axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
+				}
+				that.axis = axis && axis[1] ? axis[1] : "se";
+			}
+		});
+
+		if (o.autoHide) {
+			this._handles.hide();
+			$(this.element)
+				.addClass("ui-resizable-autohide")
+				.mouseenter(function() {
+					if (o.disabled) {
+						return;
+					}
+					$(this).removeClass("ui-resizable-autohide");
+					that._handles.show();
+				})
+				.mouseleave(function() {
+					if (o.disabled) {
+						return;
+					}
+					if (!that.resizing) {
+						$(this).addClass("ui-resizable-autohide");
+						that._handles.hide();
+					}
+				});
+		}
+
+		this._mouseInit();
+
+	},
+
+	_destroy: function() {
+
+		this._mouseDestroy();
+
+		var wrapper,
+			_destroy = function(exp) {
+				$(exp)
+					.removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
+					.removeData("resizable")
+					.removeData("ui-resizable")
+					.unbind(".resizable")
+					.find(".ui-resizable-handle")
+						.remove();
+			};
+
+		// TODO: Unwrap at same DOM position
+		if (this.elementIsWrapper) {
+			_destroy(this.element);
+			wrapper = this.element;
+			this.originalElement.css({
+				position: wrapper.css("position"),
+				width: wrapper.outerWidth(),
+				height: wrapper.outerHeight(),
+				top: wrapper.css("top"),
+				left: wrapper.css("left")
+			}).insertAfter( wrapper );
+			wrapper.remove();
+		}
+
+		this.originalElement.css("resize", this.originalResizeStyle);
+		_destroy(this.originalElement);
+
+		return this;
+	},
+
+	_mouseCapture: function(event) {
+		var i, handle,
+			capture = false;
+
+		for (i in this.handles) {
+			handle = $(this.handles[i])[0];
+			if (handle === event.target || $.contains(handle, event.target)) {
+				capture = true;
+			}
+		}
+
+		return !this.options.disabled && capture;
+	},
+
+	_mouseStart: function(event) {
+
+		var curleft, curtop, cursor,
+			o = this.options,
+			el = this.element;
+
+		this.resizing = true;
+
+		this._renderProxy();
+
+		curleft = this._num(this.helper.css("left"));
+		curtop = this._num(this.helper.css("top"));
+
+		if (o.containment) {
+			curleft += $(o.containment).scrollLeft() || 0;
+			curtop += $(o.containment).scrollTop() || 0;
+		}
+
+		this.offset = this.helper.offset();
+		this.position = { left: curleft, top: curtop };
+
+		this.size = this._helper ? {
+				width: this.helper.width(),
+				height: this.helper.height()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.originalSize = this._helper ? {
+				width: el.outerWidth(),
+				height: el.outerHeight()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.sizeDiff = {
+			width: el.outerWidth() - el.width(),
+			height: el.outerHeight() - el.height()
+		};
+
+		this.originalPosition = { left: curleft, top: curtop };
+		this.originalMousePosition = { left: event.pageX, top: event.pageY };
+
+		this.aspectRatio = (typeof o.aspectRatio === "number") ?
+			o.aspectRatio :
+			((this.originalSize.width / this.originalSize.height) || 1);
+
+		cursor = $(".ui-resizable-" + this.axis).css("cursor");
+		$("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor);
+
+		el.addClass("ui-resizable-resizing");
+		this._propagate("start", event);
+		return true;
+	},
+
+	_mouseDrag: function(event) {
+
+		var data, props,
+			smp = this.originalMousePosition,
+			a = this.axis,
+			dx = (event.pageX - smp.left) || 0,
+			dy = (event.pageY - smp.top) || 0,
+			trigger = this._change[a];
+
+		this._updatePrevProperties();
+
+		if (!trigger) {
+			return false;
+		}
+
+		data = trigger.apply(this, [ event, dx, dy ]);
+
+		this._updateVirtualBoundaries(event.shiftKey);
+		if (this._aspectRatio || event.shiftKey) {
+			data = this._updateRatio(data, event);
+		}
+
+		data = this._respectSize(data, event);
+
+		this._updateCache(data);
+
+		this._propagate("resize", event);
+
+		props = this._applyChanges();
+
+		if ( !this._helper && this._proportionallyResizeElements.length ) {
+			this._proportionallyResize();
+		}
+
+		if ( !$.isEmptyObject( props ) ) {
+			this._updatePrevProperties();
+			this._trigger( "resize", event, this.ui() );
+			this._applyChanges();
+		}
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+
+		this.resizing = false;
+		var pr, ista, soffseth, soffsetw, s, left, top,
+			o = this.options, that = this;
+
+		if (this._helper) {
+
+			pr = this._proportionallyResizeElements;
+			ista = pr.length && (/textarea/i).test(pr[0].nodeName);
+			soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height;
+			soffsetw = ista ? 0 : that.sizeDiff.width;
+
+			s = {
+				width: (that.helper.width()  - soffsetw),
+				height: (that.helper.height() - soffseth)
+			};
+			left = (parseInt(that.element.css("left"), 10) +
+				(that.position.left - that.originalPosition.left)) || null;
+			top = (parseInt(that.element.css("top"), 10) +
+				(that.position.top - that.originalPosition.top)) || null;
+
+			if (!o.animate) {
+				this.element.css($.extend(s, { top: top, left: left }));
+			}
+
+			that.helper.height(that.size.height);
+			that.helper.width(that.size.width);
+
+			if (this._helper && !o.animate) {
+				this._proportionallyResize();
+			}
+		}
+
+		$("body").css("cursor", "auto");
+
+		this.element.removeClass("ui-resizable-resizing");
+
+		this._propagate("stop", event);
+
+		if (this._helper) {
+			this.helper.remove();
+		}
+
+		return false;
+
+	},
+
+	_updatePrevProperties: function() {
+		this.prevPosition = {
+			top: this.position.top,
+			left: this.position.left
+		};
+		this.prevSize = {
+			width: this.size.width,
+			height: this.size.height
+		};
+	},
+
+	_applyChanges: function() {
+		var props = {};
+
+		if ( this.position.top !== this.prevPosition.top ) {
+			props.top = this.position.top + "px";
+		}
+		if ( this.position.left !== this.prevPosition.left ) {
+			props.left = this.position.left + "px";
+		}
+		if ( this.size.width !== this.prevSize.width ) {
+			props.width = this.size.width + "px";
+		}
+		if ( this.size.height !== this.prevSize.height ) {
+			props.height = this.size.height + "px";
+		}
+
+		this.helper.css( props );
+
+		return props;
+	},
+
+	_updateVirtualBoundaries: function(forceAspectRatio) {
+		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
+			o = this.options;
+
+		b = {
+			minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,
+			maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity,
+			minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,
+			maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity
+		};
+
+		if (this._aspectRatio || forceAspectRatio) {
+			pMinWidth = b.minHeight * this.aspectRatio;
+			pMinHeight = b.minWidth / this.aspectRatio;
+			pMaxWidth = b.maxHeight * this.aspectRatio;
+			pMaxHeight = b.maxWidth / this.aspectRatio;
+
+			if (pMinWidth > b.minWidth) {
+				b.minWidth = pMinWidth;
+			}
+			if (pMinHeight > b.minHeight) {
+				b.minHeight = pMinHeight;
+			}
+			if (pMaxWidth < b.maxWidth) {
+				b.maxWidth = pMaxWidth;
+			}
+			if (pMaxHeight < b.maxHeight) {
+				b.maxHeight = pMaxHeight;
+			}
+		}
+		this._vBoundaries = b;
+	},
+
+	_updateCache: function(data) {
+		this.offset = this.helper.offset();
+		if (this._isNumber(data.left)) {
+			this.position.left = data.left;
+		}
+		if (this._isNumber(data.top)) {
+			this.position.top = data.top;
+		}
+		if (this._isNumber(data.height)) {
+			this.size.height = data.height;
+		}
+		if (this._isNumber(data.width)) {
+			this.size.width = data.width;
+		}
+	},
+
+	_updateRatio: function( data ) {
+
+		var cpos = this.position,
+			csize = this.size,
+			a = this.axis;
+
+		if (this._isNumber(data.height)) {
+			data.width = (data.height * this.aspectRatio);
+		} else if (this._isNumber(data.width)) {
+			data.height = (data.width / this.aspectRatio);
+		}
+
+		if (a === "sw") {
+			data.left = cpos.left + (csize.width - data.width);
+			data.top = null;
+		}
+		if (a === "nw") {
+			data.top = cpos.top + (csize.height - data.height);
+			data.left = cpos.left + (csize.width - data.width);
+		}
+
+		return data;
+	},
+
+	_respectSize: function( data ) {
+
+		var o = this._vBoundaries,
+			a = this.axis,
+			ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width),
+			ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
+			isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width),
+			isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height),
+			dw = this.originalPosition.left + this.originalSize.width,
+			dh = this.position.top + this.size.height,
+			cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
+		if (isminw) {
+			data.width = o.minWidth;
+		}
+		if (isminh) {
+			data.height = o.minHeight;
+		}
+		if (ismaxw) {
+			data.width = o.maxWidth;
+		}
+		if (ismaxh) {
+			data.height = o.maxHeight;
+		}
+
+		if (isminw && cw) {
+			data.left = dw - o.minWidth;
+		}
+		if (ismaxw && cw) {
+			data.left = dw - o.maxWidth;
+		}
+		if (isminh && ch) {
+			data.top = dh - o.minHeight;
+		}
+		if (ismaxh && ch) {
+			data.top = dh - o.maxHeight;
+		}
+
+		// Fixing jump error on top/left - bug #2330
+		if (!data.width && !data.height && !data.left && data.top) {
+			data.top = null;
+		} else if (!data.width && !data.height && !data.top && data.left) {
+			data.left = null;
+		}
+
+		return data;
+	},
+
+	_getPaddingPlusBorderDimensions: function( element ) {
+		var i = 0,
+			widths = [],
+			borders = [
+				element.css( "borderTopWidth" ),
+				element.css( "borderRightWidth" ),
+				element.css( "borderBottomWidth" ),
+				element.css( "borderLeftWidth" )
+			],
+			paddings = [
+				element.css( "paddingTop" ),
+				element.css( "paddingRight" ),
+				element.css( "paddingBottom" ),
+				element.css( "paddingLeft" )
+			];
+
+		for ( ; i < 4; i++ ) {
+			widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 );
+			widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 );
+		}
+
+		return {
+			height: widths[ 0 ] + widths[ 2 ],
+			width: widths[ 1 ] + widths[ 3 ]
+		};
+	},
+
+	_proportionallyResize: function() {
+
+		if (!this._proportionallyResizeElements.length) {
+			return;
+		}
+
+		var prel,
+			i = 0,
+			element = this.helper || this.element;
+
+		for ( ; i < this._proportionallyResizeElements.length; i++) {
+
+			prel = this._proportionallyResizeElements[i];
+
+			// TODO: Seems like a bug to cache this.outerDimensions
+			// considering that we are in a loop.
+			if (!this.outerDimensions) {
+				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
+			}
+
+			prel.css({
+				height: (element.height() - this.outerDimensions.height) || 0,
+				width: (element.width() - this.outerDimensions.width) || 0
+			});
+
+		}
+
+	},
+
+	_renderProxy: function() {
+
+		var el = this.element, o = this.options;
+		this.elementOffset = el.offset();
+
+		if (this._helper) {
+
+			this.helper = this.helper || $("<div style='overflow:hidden;'></div>");
+
+			this.helper.addClass(this._helper).css({
+				width: this.element.outerWidth() - 1,
+				height: this.element.outerHeight() - 1,
+				position: "absolute",
+				left: this.elementOffset.left + "px",
+				top: this.elementOffset.top + "px",
+				zIndex: ++o.zIndex //TODO: Don't modify option
+			});
+
+			this.helper
+				.appendTo("body")
+				.disableSelection();
+
+		} else {
+			this.helper = this.element;
+		}
+
+	},
+
+	_change: {
+		e: function(event, dx) {
+			return { width: this.originalSize.width + dx };
+		},
+		w: function(event, dx) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { left: sp.left + dx, width: cs.width - dx };
+		},
+		n: function(event, dx, dy) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { top: sp.top + dy, height: cs.height - dy };
+		},
+		s: function(event, dx, dy) {
+			return { height: this.originalSize.height + dy };
+		},
+		se: function(event, dx, dy) {
+			return $.extend(this._change.s.apply(this, arguments),
+				this._change.e.apply(this, [ event, dx, dy ]));
+		},
+		sw: function(event, dx, dy) {
+			return $.extend(this._change.s.apply(this, arguments),
+				this._change.w.apply(this, [ event, dx, dy ]));
+		},
+		ne: function(event, dx, dy) {
+			return $.extend(this._change.n.apply(this, arguments),
+				this._change.e.apply(this, [ event, dx, dy ]));
+		},
+		nw: function(event, dx, dy) {
+			return $.extend(this._change.n.apply(this, arguments),
+				this._change.w.apply(this, [ event, dx, dy ]));
+		}
+	},
+
+	_propagate: function(n, event) {
+		$.ui.plugin.call(this, n, [ event, this.ui() ]);
+		(n !== "resize" && this._trigger(n, event, this.ui()));
+	},
+
+	plugins: {},
+
+	ui: function() {
+		return {
+			originalElement: this.originalElement,
+			element: this.element,
+			helper: this.helper,
+			position: this.position,
+			size: this.size,
+			originalSize: this.originalSize,
+			originalPosition: this.originalPosition
+		};
+	}
+
+});
+
+/*
+ * Resizable Extensions
+ */
+
+$.ui.plugin.add("resizable", "animate", {
+
+	stop: function( event ) {
+		var that = $(this).resizable( "instance" ),
+			o = that.options,
+			pr = that._proportionallyResizeElements,
+			ista = pr.length && (/textarea/i).test(pr[0].nodeName),
+			soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height,
+			soffsetw = ista ? 0 : that.sizeDiff.width,
+			style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },
+			left = (parseInt(that.element.css("left"), 10) +
+				(that.position.left - that.originalPosition.left)) || null,
+			top = (parseInt(that.element.css("top"), 10) +
+				(that.position.top - that.originalPosition.top)) || null;
+
+		that.element.animate(
+			$.extend(style, top && left ? { top: top, left: left } : {}), {
+				duration: o.animateDuration,
+				easing: o.animateEasing,
+				step: function() {
+
+					var data = {
+						width: parseInt(that.element.css("width"), 10),
+						height: parseInt(that.element.css("height"), 10),
+						top: parseInt(that.element.css("top"), 10),
+						left: parseInt(that.element.css("left"), 10)
+					};
+
+					if (pr && pr.length) {
+						$(pr[0]).css({ width: data.width, height: data.height });
+					}
+
+					// propagating resize, and updating values for each animation step
+					that._updateCache(data);
+					that._propagate("resize", event);
+
+				}
+			}
+		);
+	}
+
+});
+
+$.ui.plugin.add( "resizable", "containment", {
+
+	start: function() {
+		var element, p, co, ch, cw, width, height,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			el = that.element,
+			oc = o.containment,
+			ce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
+
+		if ( !ce ) {
+			return;
+		}
+
+		that.containerElement = $( ce );
+
+		if ( /document/.test( oc ) || oc === document ) {
+			that.containerOffset = {
+				left: 0,
+				top: 0
+			};
+			that.containerPosition = {
+				left: 0,
+				top: 0
+			};
+
+			that.parentData = {
+				element: $( document ),
+				left: 0,
+				top: 0,
+				width: $( document ).width(),
+				height: $( document ).height() || document.body.parentNode.scrollHeight
+			};
+		} else {
+			element = $( ce );
+			p = [];
+			$([ "Top", "Right", "Left", "Bottom" ]).each(function( i, name ) {
+				p[ i ] = that._num( element.css( "padding" + name ) );
+			});
+
+			that.containerOffset = element.offset();
+			that.containerPosition = element.position();
+			that.containerSize = {
+				height: ( element.innerHeight() - p[ 3 ] ),
+				width: ( element.innerWidth() - p[ 1 ] )
+			};
+
+			co = that.containerOffset;
+			ch = that.containerSize.height;
+			cw = that.containerSize.width;
+			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
+			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
+
+			that.parentData = {
+				element: ce,
+				left: co.left,
+				top: co.top,
+				width: width,
+				height: height
+			};
+		}
+	},
+
+	resize: function( event ) {
+		var woset, hoset, isParent, isOffsetRelative,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cp = that.position,
+			pRatio = that._aspectRatio || event.shiftKey,
+			cop = {
+				top: 0,
+				left: 0
+			},
+			ce = that.containerElement,
+			continueResize = true;
+
+		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
+			cop = co;
+		}
+
+		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
+			that.size.width = that.size.width +
+				( that._helper ?
+					( that.position.left - co.left ) :
+					( that.position.left - cop.left ) );
+
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.left = o.helper ? co.left : 0;
+		}
+
+		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
+			that.size.height = that.size.height +
+				( that._helper ?
+					( that.position.top - co.top ) :
+					that.position.top );
+
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.top = that._helper ? co.top : 0;
+		}
+
+		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
+		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
+
+		if ( isParent && isOffsetRelative ) {
+			that.offset.left = that.parentData.left + that.position.left;
+			that.offset.top = that.parentData.top + that.position.top;
+		} else {
+			that.offset.left = that.element.offset().left;
+			that.offset.top = that.element.offset().top;
+		}
+
+		woset = Math.abs( that.sizeDiff.width +
+			(that._helper ?
+				that.offset.left - cop.left :
+				(that.offset.left - co.left)) );
+
+		hoset = Math.abs( that.sizeDiff.height +
+			(that._helper ?
+				that.offset.top - cop.top :
+				(that.offset.top - co.top)) );
+
+		if ( woset + that.size.width >= that.parentData.width ) {
+			that.size.width = that.parentData.width - woset;
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( hoset + that.size.height >= that.parentData.height ) {
+			that.size.height = that.parentData.height - hoset;
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( !continueResize ) {
+			that.position.left = that.prevPosition.left;
+			that.position.top = that.prevPosition.top;
+			that.size.width = that.prevSize.width;
+			that.size.height = that.prevSize.height;
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cop = that.containerPosition,
+			ce = that.containerElement,
+			helper = $( that.helper ),
+			ho = helper.offset(),
+			w = helper.outerWidth() - that.sizeDiff.width,
+			h = helper.outerHeight() - that.sizeDiff.height;
+
+		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css({
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			});
+		}
+
+		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css({
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			});
+		}
+	}
+});
+
+$.ui.plugin.add("resizable", "alsoResize", {
+
+	start: function() {
+		var that = $(this).resizable( "instance" ),
+			o = that.options,
+			_store = function(exp) {
+				$(exp).each(function() {
+					var el = $(this);
+					el.data("ui-resizable-alsoresize", {
+						width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
+						left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10)
+					});
+				});
+			};
+
+		if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) {
+			if (o.alsoResize.length) {
+				o.alsoResize = o.alsoResize[0];
+				_store(o.alsoResize);
+			} else {
+				$.each(o.alsoResize, function(exp) {
+					_store(exp);
+				});
+			}
+		} else {
+			_store(o.alsoResize);
+		}
+	},
+
+	resize: function(event, ui) {
+		var that = $(this).resizable( "instance" ),
+			o = that.options,
+			os = that.originalSize,
+			op = that.originalPosition,
+			delta = {
+				height: (that.size.height - os.height) || 0,
+				width: (that.size.width - os.width) || 0,
+				top: (that.position.top - op.top) || 0,
+				left: (that.position.left - op.left) || 0
+			},
+
+			_alsoResize = function(exp, c) {
+				$(exp).each(function() {
+					var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {},
+						css = c && c.length ?
+							c :
+							el.parents(ui.originalElement[0]).length ?
+								[ "width", "height" ] :
+								[ "width", "height", "top", "left" ];
+
+					$.each(css, function(i, prop) {
+						var sum = (start[prop] || 0) + (delta[prop] || 0);
+						if (sum && sum >= 0) {
+							style[prop] = sum || null;
+						}
+					});
+
+					el.css(style);
+				});
+			};
+
+		if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) {
+			$.each(o.alsoResize, function(exp, c) {
+				_alsoResize(exp, c);
+			});
+		} else {
+			_alsoResize(o.alsoResize);
+		}
+	},
+
+	stop: function() {
+		$(this).removeData("resizable-alsoresize");
+	}
+});
+
+$.ui.plugin.add("resizable", "ghost", {
+
+	start: function() {
+
+		var that = $(this).resizable( "instance" ), o = that.options, cs = that.size;
+
+		that.ghost = that.originalElement.clone();
+		that.ghost
+			.css({
+				opacity: 0.25,
+				display: "block",
+				position: "relative",
+				height: cs.height,
+				width: cs.width,
+				margin: 0,
+				left: 0,
+				top: 0
+			})
+			.addClass("ui-resizable-ghost")
+			.addClass(typeof o.ghost === "string" ? o.ghost : "");
+
+		that.ghost.appendTo(that.helper);
+
+	},
+
+	resize: function() {
+		var that = $(this).resizable( "instance" );
+		if (that.ghost) {
+			that.ghost.css({
+				position: "relative",
+				height: that.size.height,
+				width: that.size.width
+			});
+		}
+	},
+
+	stop: function() {
+		var that = $(this).resizable( "instance" );
+		if (that.ghost && that.helper) {
+			that.helper.get(0).removeChild(that.ghost.get(0));
+		}
+	}
+
+});
+
+$.ui.plugin.add("resizable", "grid", {
+
+	resize: function() {
+		var outerDimensions,
+			that = $(this).resizable( "instance" ),
+			o = that.options,
+			cs = that.size,
+			os = that.originalSize,
+			op = that.originalPosition,
+			a = that.axis,
+			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
+			gridX = (grid[0] || 1),
+			gridY = (grid[1] || 1),
+			ox = Math.round((cs.width - os.width) / gridX) * gridX,
+			oy = Math.round((cs.height - os.height) / gridY) * gridY,
+			newWidth = os.width + ox,
+			newHeight = os.height + oy,
+			isMaxWidth = o.maxWidth && (o.maxWidth < newWidth),
+			isMaxHeight = o.maxHeight && (o.maxHeight < newHeight),
+			isMinWidth = o.minWidth && (o.minWidth > newWidth),
+			isMinHeight = o.minHeight && (o.minHeight > newHeight);
+
+		o.grid = grid;
+
+		if (isMinWidth) {
+			newWidth += gridX;
+		}
+		if (isMinHeight) {
+			newHeight += gridY;
+		}
+		if (isMaxWidth) {
+			newWidth -= gridX;
+		}
+		if (isMaxHeight) {
+			newHeight -= gridY;
+		}
+
+		if (/^(se|s|e)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+		} else if (/^(ne)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.top = op.top - oy;
+		} else if (/^(sw)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.left = op.left - ox;
+		} else {
+			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) {
+				outerDimensions = that._getPaddingPlusBorderDimensions( this );
+			}
+
+			if ( newHeight - gridY > 0 ) {
+				that.size.height = newHeight;
+				that.position.top = op.top - oy;
+			} else {
+				newHeight = gridY - outerDimensions.height;
+				that.size.height = newHeight;
+				that.position.top = op.top + os.height - newHeight;
+			}
+			if ( newWidth - gridX > 0 ) {
+				that.size.width = newWidth;
+				that.position.left = op.left - ox;
+			} else {
+				newWidth = gridX - outerDimensions.width;
+				that.size.width = newWidth;
+				that.position.left = op.left + os.width - newWidth;
+			}
+		}
+	}
+
+});
+
+var resizable = $.ui.resizable;
+
+
+/*!
+ * jQuery UI Dialog 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/dialog/
+ */
+
+
+var dialog = $.widget( "ui.dialog", {
+	version: "1.11.3",
+	options: {
+		appendTo: "body",
+		autoOpen: true,
+		buttons: [],
+		closeOnEscape: true,
+		closeText: "Close",
+		dialogClass: "",
+		draggable: true,
+		hide: null,
+		height: "auto",
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 150,
+		minWidth: 150,
+		modal: false,
+		position: {
+			my: "center",
+			at: "center",
+			of: window,
+			collision: "fit",
+			// Ensure the titlebar is always visible
+			using: function( pos ) {
+				var topOffset = $( this ).css( pos ).offset().top;
+				if ( topOffset < 0 ) {
+					$( this ).css( "top", pos.top - topOffset );
+				}
+			}
+		},
+		resizable: true,
+		show: null,
+		title: null,
+		width: 300,
+
+		// callbacks
+		beforeClose: null,
+		close: null,
+		drag: null,
+		dragStart: null,
+		dragStop: null,
+		focus: null,
+		open: null,
+		resize: null,
+		resizeStart: null,
+		resizeStop: null
+	},
+
+	sizeRelatedOptions: {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+
+	resizableRelatedOptions: {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+
+	_create: function() {
+		this.originalCss = {
+			display: this.element[ 0 ].style.display,
+			width: this.element[ 0 ].style.width,
+			minHeight: this.element[ 0 ].style.minHeight,
+			maxHeight: this.element[ 0 ].style.maxHeight,
+			height: this.element[ 0 ].style.height
+		};
+		this.originalPosition = {
+			parent: this.element.parent(),
+			index: this.element.parent().children().index( this.element )
+		};
+		this.originalTitle = this.element.attr( "title" );
+		this.options.title = this.options.title || this.originalTitle;
+
+		this._createWrapper();
+
+		this.element
+			.show()
+			.removeAttr( "title" )
+			.addClass( "ui-dialog-content ui-widget-content" )
+			.appendTo( this.uiDialog );
+
+		this._createTitlebar();
+		this._createButtonPane();
+
+		if ( this.options.draggable && $.fn.draggable ) {
+			this._makeDraggable();
+		}
+		if ( this.options.resizable && $.fn.resizable ) {
+			this._makeResizable();
+		}
+
+		this._isOpen = false;
+
+		this._trackFocus();
+	},
+
+	_init: function() {
+		if ( this.options.autoOpen ) {
+			this.open();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+		if ( element && (element.jquery || element.nodeType) ) {
+			return $( element );
+		}
+		return this.document.find( element || "body" ).eq( 0 );
+	},
+
+	_destroy: function() {
+		var next,
+			originalPosition = this.originalPosition;
+
+		this._destroyOverlay();
+
+		this.element
+			.removeUniqueId()
+			.removeClass( "ui-dialog-content ui-widget-content" )
+			.css( this.originalCss )
+			// Without detaching first, the following becomes really slow
+			.detach();
+
+		this.uiDialog.stop( true, true ).remove();
+
+		if ( this.originalTitle ) {
+			this.element.attr( "title", this.originalTitle );
+		}
+
+		next = originalPosition.parent.children().eq( originalPosition.index );
+		// Don't try to place the dialog next to itself (#8613)
+		if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
+			next.before( this.element );
+		} else {
+			originalPosition.parent.append( this.element );
+		}
+	},
+
+	widget: function() {
+		return this.uiDialog;
+	},
+
+	disable: $.noop,
+	enable: $.noop,
+
+	close: function( event ) {
+		var activeElement,
+			that = this;
+
+		if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
+			return;
+		}
+
+		this._isOpen = false;
+		this._focusedElement = null;
+		this._destroyOverlay();
+		this._untrackInstance();
+
+		if ( !this.opener.filter( ":focusable" ).focus().length ) {
+
+			// support: IE9
+			// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+			try {
+				activeElement = this.document[ 0 ].activeElement;
+
+				// Support: IE9, IE10
+				// If the <body> is blurred, IE will switch windows, see #4520
+				if ( activeElement && activeElement.nodeName.toLowerCase() !== "body" ) {
+
+					// Hiding a focused element doesn't trigger blur in WebKit
+					// so in case we have nothing to focus on, explicitly blur the active element
+					// https://bugs.webkit.org/show_bug.cgi?id=47182
+					$( activeElement ).blur();
+				}
+			} catch ( error ) {}
+		}
+
+		this._hide( this.uiDialog, this.options.hide, function() {
+			that._trigger( "close", event );
+		});
+	},
+
+	isOpen: function() {
+		return this._isOpen;
+	},
+
+	moveToTop: function() {
+		this._moveToTop();
+	},
+
+	_moveToTop: function( event, silent ) {
+		var moved = false,
+			zIndicies = this.uiDialog.siblings( ".ui-front:visible" ).map(function() {
+				return +$( this ).css( "z-index" );
+			}).get(),
+			zIndexMax = Math.max.apply( null, zIndicies );
+
+		if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
+			this.uiDialog.css( "z-index", zIndexMax + 1 );
+			moved = true;
+		}
+
+		if ( moved && !silent ) {
+			this._trigger( "focus", event );
+		}
+		return moved;
+	},
+
+	open: function() {
+		var that = this;
+		if ( this._isOpen ) {
+			if ( this._moveToTop() ) {
+				this._focusTabbable();
+			}
+			return;
+		}
+
+		this._isOpen = true;
+		this.opener = $( this.document[ 0 ].activeElement );
+
+		this._size();
+		this._position();
+		this._createOverlay();
+		this._moveToTop( null, true );
+
+		// Ensure the overlay is moved to the top with the dialog, but only when
+		// opening. The overlay shouldn't move after the dialog is open so that
+		// modeless dialogs opened after the modal dialog stack properly.
+		if ( this.overlay ) {
+			this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
+		}
+
+		this._show( this.uiDialog, this.options.show, function() {
+			that._focusTabbable();
+			that._trigger( "focus" );
+		});
+
+		// Track the dialog immediately upon openening in case a focus event
+		// somehow occurs outside of the dialog before an element inside the
+		// dialog is focused (#10152)
+		this._makeFocusTarget();
+
+		this._trigger( "open" );
+	},
+
+	_focusTabbable: function() {
+		// Set focus to the first match:
+		// 1. An element that was focused previously
+		// 2. First element inside the dialog matching [autofocus]
+		// 3. Tabbable element inside the content element
+		// 4. Tabbable element inside the buttonpane
+		// 5. The close button
+		// 6. The dialog itself
+		var hasFocus = this._focusedElement;
+		if ( !hasFocus ) {
+			hasFocus = this.element.find( "[autofocus]" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.element.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialog;
+		}
+		hasFocus.eq( 0 ).focus();
+	},
+
+	_keepFocus: function( event ) {
+		function checkFocus() {
+			var activeElement = this.document[0].activeElement,
+				isActive = this.uiDialog[0] === activeElement ||
+					$.contains( this.uiDialog[0], activeElement );
+			if ( !isActive ) {
+				this._focusTabbable();
+			}
+		}
+		event.preventDefault();
+		checkFocus.call( this );
+		// support: IE
+		// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
+		// so we check again later
+		this._delay( checkFocus );
+	},
+
+	_createWrapper: function() {
+		this.uiDialog = $("<div>")
+			.addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
+				this.options.dialogClass )
+			.hide()
+			.attr({
+				// Setting tabIndex makes the div focusable
+				tabIndex: -1,
+				role: "dialog"
+			})
+			.appendTo( this._appendTo() );
+
+		this._on( this.uiDialog, {
+			keydown: function( event ) {
+				if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
+						event.keyCode === $.ui.keyCode.ESCAPE ) {
+					event.preventDefault();
+					this.close( event );
+					return;
+				}
+
+				// prevent tabbing out of dialogs
+				if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
+					return;
+				}
+				var tabbables = this.uiDialog.find( ":tabbable" ),
+					first = tabbables.filter( ":first" ),
+					last = tabbables.filter( ":last" );
+
+				if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {
+					this._delay(function() {
+						first.focus();
+					});
+					event.preventDefault();
+				} else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {
+					this._delay(function() {
+						last.focus();
+					});
+					event.preventDefault();
+				}
+			},
+			mousedown: function( event ) {
+				if ( this._moveToTop( event ) ) {
+					this._focusTabbable();
+				}
+			}
+		});
+
+		// We assume that any existing aria-describedby attribute means
+		// that the dialog content is marked up properly
+		// otherwise we brute force the content as the description
+		if ( !this.element.find( "[aria-describedby]" ).length ) {
+			this.uiDialog.attr({
+				"aria-describedby": this.element.uniqueId().attr( "id" )
+			});
+		}
+	},
+
+	_createTitlebar: function() {
+		var uiDialogTitle;
+
+		this.uiDialogTitlebar = $( "<div>" )
+			.addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" )
+			.prependTo( this.uiDialog );
+		this._on( this.uiDialogTitlebar, {
+			mousedown: function( event ) {
+				// Don't prevent click on close button (#8838)
+				// Focusing a dialog that is partially scrolled out of view
+				// causes the browser to scroll it into view, preventing the click event
+				if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
+					// Dialog isn't getting focus when dragging (#8063)
+					this.uiDialog.focus();
+				}
+			}
+		});
+
+		// support: IE
+		// Use type="button" to prevent enter keypresses in textboxes from closing the
+		// dialog in IE (#9312)
+		this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
+			.button({
+				label: this.options.closeText,
+				icons: {
+					primary: "ui-icon-closethick"
+				},
+				text: false
+			})
+			.addClass( "ui-dialog-titlebar-close" )
+			.appendTo( this.uiDialogTitlebar );
+		this._on( this.uiDialogTitlebarClose, {
+			click: function( event ) {
+				event.preventDefault();
+				this.close( event );
+			}
+		});
+
+		uiDialogTitle = $( "<span>" )
+			.uniqueId()
+			.addClass( "ui-dialog-title" )
+			.prependTo( this.uiDialogTitlebar );
+		this._title( uiDialogTitle );
+
+		this.uiDialog.attr({
+			"aria-labelledby": uiDialogTitle.attr( "id" )
+		});
+	},
+
+	_title: function( title ) {
+		if ( !this.options.title ) {
+			title.html( "&#160;" );
+		}
+		title.text( this.options.title );
+	},
+
+	_createButtonPane: function() {
+		this.uiDialogButtonPane = $( "<div>" )
+			.addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
+
+		this.uiButtonSet = $( "<div>" )
+			.addClass( "ui-dialog-buttonset" )
+			.appendTo( this.uiDialogButtonPane );
+
+		this._createButtons();
+	},
+
+	_createButtons: function() {
+		var that = this,
+			buttons = this.options.buttons;
+
+		// if we already have a button pane, remove it
+		this.uiDialogButtonPane.remove();
+		this.uiButtonSet.empty();
+
+		if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
+			this.uiDialog.removeClass( "ui-dialog-buttons" );
+			return;
+		}
+
+		$.each( buttons, function( name, props ) {
+			var click, buttonOptions;
+			props = $.isFunction( props ) ?
+				{ click: props, text: name } :
+				props;
+			// Default to a non-submitting button
+			props = $.extend( { type: "button" }, props );
+			// Change the context for the click callback to be the main element
+			click = props.click;
+			props.click = function() {
+				click.apply( that.element[ 0 ], arguments );
+			};
+			buttonOptions = {
+				icons: props.icons,
+				text: props.showText
+			};
+			delete props.icons;
+			delete props.showText;
+			$( "<button></button>", props )
+				.button( buttonOptions )
+				.appendTo( that.uiButtonSet );
+		});
+		this.uiDialog.addClass( "ui-dialog-buttons" );
+		this.uiDialogButtonPane.appendTo( this.uiDialog );
+	},
+
+	_makeDraggable: function() {
+		var that = this,
+			options = this.options;
+
+		function filteredUi( ui ) {
+			return {
+				position: ui.position,
+				offset: ui.offset
+			};
+		}
+
+		this.uiDialog.draggable({
+			cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
+			handle: ".ui-dialog-titlebar",
+			containment: "document",
+			start: function( event, ui ) {
+				$( this ).addClass( "ui-dialog-dragging" );
+				that._blockFrames();
+				that._trigger( "dragStart", event, filteredUi( ui ) );
+			},
+			drag: function( event, ui ) {
+				that._trigger( "drag", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var left = ui.offset.left - that.document.scrollLeft(),
+					top = ui.offset.top - that.document.scrollTop();
+
+				options.position = {
+					my: "left top",
+					at: "left" + (left >= 0 ? "+" : "") + left + " " +
+						"top" + (top >= 0 ? "+" : "") + top,
+					of: that.window
+				};
+				$( this ).removeClass( "ui-dialog-dragging" );
+				that._unblockFrames();
+				that._trigger( "dragStop", event, filteredUi( ui ) );
+			}
+		});
+	},
+
+	_makeResizable: function() {
+		var that = this,
+			options = this.options,
+			handles = options.resizable,
+			// .ui-resizable has position: relative defined in the stylesheet
+			// but dialogs have to use absolute or fixed positioning
+			position = this.uiDialog.css("position"),
+			resizeHandles = typeof handles === "string" ?
+				handles	:
+				"n,e,s,w,se,sw,ne,nw";
+
+		function filteredUi( ui ) {
+			return {
+				originalPosition: ui.originalPosition,
+				originalSize: ui.originalSize,
+				position: ui.position,
+				size: ui.size
+			};
+		}
+
+		this.uiDialog.resizable({
+			cancel: ".ui-dialog-content",
+			containment: "document",
+			alsoResize: this.element,
+			maxWidth: options.maxWidth,
+			maxHeight: options.maxHeight,
+			minWidth: options.minWidth,
+			minHeight: this._minHeight(),
+			handles: resizeHandles,
+			start: function( event, ui ) {
+				$( this ).addClass( "ui-dialog-resizing" );
+				that._blockFrames();
+				that._trigger( "resizeStart", event, filteredUi( ui ) );
+			},
+			resize: function( event, ui ) {
+				that._trigger( "resize", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var offset = that.uiDialog.offset(),
+					left = offset.left - that.document.scrollLeft(),
+					top = offset.top - that.document.scrollTop();
+
+				options.height = that.uiDialog.height();
+				options.width = that.uiDialog.width();
+				options.position = {
+					my: "left top",
+					at: "left" + (left >= 0 ? "+" : "") + left + " " +
+						"top" + (top >= 0 ? "+" : "") + top,
+					of: that.window
+				};
+				$( this ).removeClass( "ui-dialog-resizing" );
+				that._unblockFrames();
+				that._trigger( "resizeStop", event, filteredUi( ui ) );
+			}
+		})
+		.css( "position", position );
+	},
+
+	_trackFocus: function() {
+		this._on( this.widget(), {
+			focusin: function( event ) {
+				this._makeFocusTarget();
+				this._focusedElement = $( event.target );
+			}
+		});
+	},
+
+	_makeFocusTarget: function() {
+		this._untrackInstance();
+		this._trackingInstances().unshift( this );
+	},
+
+	_untrackInstance: function() {
+		var instances = this._trackingInstances(),
+			exists = $.inArray( this, instances );
+		if ( exists !== -1 ) {
+			instances.splice( exists, 1 );
+		}
+	},
+
+	_trackingInstances: function() {
+		var instances = this.document.data( "ui-dialog-instances" );
+		if ( !instances ) {
+			instances = [];
+			this.document.data( "ui-dialog-instances", instances );
+		}
+		return instances;
+	},
+
+	_minHeight: function() {
+		var options = this.options;
+
+		return options.height === "auto" ?
+			options.minHeight :
+			Math.min( options.minHeight, options.height );
+	},
+
+	_position: function() {
+		// Need to show the dialog to get the actual offset in the position plugin
+		var isVisible = this.uiDialog.is( ":visible" );
+		if ( !isVisible ) {
+			this.uiDialog.show();
+		}
+		this.uiDialog.position( this.options.position );
+		if ( !isVisible ) {
+			this.uiDialog.hide();
+		}
+	},
+
+	_setOptions: function( options ) {
+		var that = this,
+			resize = false,
+			resizableOptions = {};
+
+		$.each( options, function( key, value ) {
+			that._setOption( key, value );
+
+			if ( key in that.sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in that.resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		});
+
+		if ( resize ) {
+			this._size();
+			this._position();
+		}
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var isDraggable, isResizable,
+			uiDialog = this.uiDialog;
+
+		if ( key === "dialogClass" ) {
+			uiDialog
+				.removeClass( this.options.dialogClass )
+				.addClass( value );
+		}
+
+		if ( key === "disabled" ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.uiDialog.appendTo( this._appendTo() );
+		}
+
+		if ( key === "buttons" ) {
+			this._createButtons();
+		}
+
+		if ( key === "closeText" ) {
+			this.uiDialogTitlebarClose.button({
+				// Ensure that we always pass a string
+				label: "" + value
+			});
+		}
+
+		if ( key === "draggable" ) {
+			isDraggable = uiDialog.is( ":data(ui-draggable)" );
+			if ( isDraggable && !value ) {
+				uiDialog.draggable( "destroy" );
+			}
+
+			if ( !isDraggable && value ) {
+				this._makeDraggable();
+			}
+		}
+
+		if ( key === "position" ) {
+			this._position();
+		}
+
+		if ( key === "resizable" ) {
+			// currently resizable, becoming non-resizable
+			isResizable = uiDialog.is( ":data(ui-resizable)" );
+			if ( isResizable && !value ) {
+				uiDialog.resizable( "destroy" );
+			}
+
+			// currently resizable, changing handles
+			if ( isResizable && typeof value === "string" ) {
+				uiDialog.resizable( "option", "handles", value );
+			}
+
+			// currently non-resizable, becoming resizable
+			if ( !isResizable && value !== false ) {
+				this._makeResizable();
+			}
+		}
+
+		if ( key === "title" ) {
+			this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
+		}
+	},
+
+	_size: function() {
+		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
+		// divs will both have width and height set, so we need to reset them
+		var nonContentHeight, minContentHeight, maxContentHeight,
+			options = this.options;
+
+		// Reset content sizing
+		this.element.show().css({
+			width: "auto",
+			minHeight: 0,
+			maxHeight: "none",
+			height: 0
+		});
+
+		if ( options.minWidth > options.width ) {
+			options.width = options.minWidth;
+		}
+
+		// reset wrapper sizing
+		// determine the height of all the non-content elements
+		nonContentHeight = this.uiDialog.css({
+				height: "auto",
+				width: options.width
+			})
+			.outerHeight();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		maxContentHeight = typeof options.maxHeight === "number" ?
+			Math.max( 0, options.maxHeight - nonContentHeight ) :
+			"none";
+
+		if ( options.height === "auto" ) {
+			this.element.css({
+				minHeight: minContentHeight,
+				maxHeight: maxContentHeight,
+				height: "auto"
+			});
+		} else {
+			this.element.height( Math.max( 0, options.height - nonContentHeight ) );
+		}
+
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
+		}
+	},
+
+	_blockFrames: function() {
+		this.iframeBlocks = this.document.find( "iframe" ).map(function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css({
+					position: "absolute",
+					width: iframe.outerWidth(),
+					height: iframe.outerHeight()
+				})
+				.appendTo( iframe.parent() )
+				.offset( iframe.offset() )[0];
+		});
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_allowInteraction: function( event ) {
+		if ( $( event.target ).closest( ".ui-dialog" ).length ) {
+			return true;
+		}
+
+		// TODO: Remove hack when datepicker implements
+		// the .ui-front logic (#8989)
+		return !!$( event.target ).closest( ".ui-datepicker" ).length;
+	},
+
+	_createOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		// We use a delay in case the overlay is created from an
+		// event that we're going to be cancelling (#2804)
+		var isOpening = true;
+		this._delay(function() {
+			isOpening = false;
+		});
+
+		if ( !this.document.data( "ui-dialog-overlays" ) ) {
+
+			// Prevent use of anchors and inputs
+			// Using _on() for an event handler shared across many instances is
+			// safe because the dialogs stack and must be closed in reverse order
+			this._on( this.document, {
+				focusin: function( event ) {
+					if ( isOpening ) {
+						return;
+					}
+
+					if ( !this._allowInteraction( event ) ) {
+						event.preventDefault();
+						this._trackingInstances()[ 0 ]._focusTabbable();
+					}
+				}
+			});
+		}
+
+		this.overlay = $( "<div>" )
+			.addClass( "ui-widget-overlay ui-front" )
+			.appendTo( this._appendTo() );
+		this._on( this.overlay, {
+			mousedown: "_keepFocus"
+		});
+		this.document.data( "ui-dialog-overlays",
+			(this.document.data( "ui-dialog-overlays" ) || 0) + 1 );
+	},
+
+	_destroyOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		if ( this.overlay ) {
+			var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
+
+			if ( !overlays ) {
+				this.document
+					.unbind( "focusin" )
+					.removeData( "ui-dialog-overlays" );
+			} else {
+				this.document.data( "ui-dialog-overlays", overlays );
+			}
+
+			this.overlay.remove();
+			this.overlay = null;
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Droppable 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/droppable/
+ */
+
+
+$.widget( "ui.droppable", {
+	version: "1.11.3",
+	widgetEventPrefix: "drop",
+	options: {
+		accept: "*",
+		activeClass: false,
+		addClasses: true,
+		greedy: false,
+		hoverClass: false,
+		scope: "default",
+		tolerance: "intersect",
+
+		// callbacks
+		activate: null,
+		deactivate: null,
+		drop: null,
+		out: null,
+		over: null
+	},
+	_create: function() {
+
+		var proportions,
+			o = this.options,
+			accept = o.accept;
+
+		this.isover = false;
+		this.isout = true;
+
+		this.accept = $.isFunction( accept ) ? accept : function( d ) {
+			return d.is( accept );
+		};
+
+		this.proportions = function( /* valueToWrite */ ) {
+			if ( arguments.length ) {
+				// Store the droppable's proportions
+				proportions = arguments[ 0 ];
+			} else {
+				// Retrieve or derive the droppable's proportions
+				return proportions ?
+					proportions :
+					proportions = {
+						width: this.element[ 0 ].offsetWidth,
+						height: this.element[ 0 ].offsetHeight
+					};
+			}
+		};
+
+		this._addToManager( o.scope );
+
+		o.addClasses && this.element.addClass( "ui-droppable" );
+
+	},
+
+	_addToManager: function( scope ) {
+		// Add the reference and positions to the manager
+		$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
+		$.ui.ddmanager.droppables[ scope ].push( this );
+	},
+
+	_splice: function( drop ) {
+		var i = 0;
+		for ( ; i < drop.length; i++ ) {
+			if ( drop[ i ] === this ) {
+				drop.splice( i, 1 );
+			}
+		}
+	},
+
+	_destroy: function() {
+		var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+		this._splice( drop );
+
+		this.element.removeClass( "ui-droppable ui-droppable-disabled" );
+	},
+
+	_setOption: function( key, value ) {
+
+		if ( key === "accept" ) {
+			this.accept = $.isFunction( value ) ? value : function( d ) {
+				return d.is( value );
+			};
+		} else if ( key === "scope" ) {
+			var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+			this._splice( drop );
+			this._addToManager( value );
+		}
+
+		this._super( key, value );
+	},
+
+	_activate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+		if ( this.options.activeClass ) {
+			this.element.addClass( this.options.activeClass );
+		}
+		if ( draggable ){
+			this._trigger( "activate", event, this.ui( draggable ) );
+		}
+	},
+
+	_deactivate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+		if ( this.options.activeClass ) {
+			this.element.removeClass( this.options.activeClass );
+		}
+		if ( draggable ){
+			this._trigger( "deactivate", event, this.ui( draggable ) );
+		}
+	},
+
+	_over: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.hoverClass ) {
+				this.element.addClass( this.options.hoverClass );
+			}
+			this._trigger( "over", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_out: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+			this._trigger( "out", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_drop: function( event, custom ) {
+
+		var draggable = custom || $.ui.ddmanager.current,
+			childrenIntersection = false;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return false;
+		}
+
+		this.element.find( ":data(ui-droppable)" ).not( ".ui-draggable-dragging" ).each(function() {
+			var inst = $( this ).droppable( "instance" );
+			if (
+				inst.options.greedy &&
+				!inst.options.disabled &&
+				inst.options.scope === draggable.options.scope &&
+				inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) &&
+				$.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event )
+			) { childrenIntersection = true; return false; }
+		});
+		if ( childrenIntersection ) {
+			return false;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.activeClass ) {
+				this.element.removeClass( this.options.activeClass );
+			}
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+			this._trigger( "drop", event, this.ui( draggable ) );
+			return this.element;
+		}
+
+		return false;
+
+	},
+
+	ui: function( c ) {
+		return {
+			draggable: ( c.currentItem || c.element ),
+			helper: c.helper,
+			position: c.position,
+			offset: c.positionAbs
+		};
+	}
+
+});
+
+$.ui.intersect = (function() {
+	function isOverAxis( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	}
+
+	return function( draggable, droppable, toleranceMode, event ) {
+
+		if ( !droppable.offset ) {
+			return false;
+		}
+
+		var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left,
+			y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top,
+			x2 = x1 + draggable.helperProportions.width,
+			y2 = y1 + draggable.helperProportions.height,
+			l = droppable.offset.left,
+			t = droppable.offset.top,
+			r = l + droppable.proportions().width,
+			b = t + droppable.proportions().height;
+
+		switch ( toleranceMode ) {
+		case "fit":
+			return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );
+		case "intersect":
+			return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half
+				x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
+		case "pointer":
+			return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width );
+		case "touch":
+			return (
+				( y1 >= t && y1 <= b ) || // Top edge touching
+				( y2 >= t && y2 <= b ) || // Bottom edge touching
+				( y1 < t && y2 > b ) // Surrounded vertically
+			) && (
+				( x1 >= l && x1 <= r ) || // Left edge touching
+				( x2 >= l && x2 <= r ) || // Right edge touching
+				( x1 < l && x2 > r ) // Surrounded horizontally
+			);
+		default:
+			return false;
+		}
+	};
+})();
+
+/*
+	This manager tracks offsets of draggables and droppables
+*/
+$.ui.ddmanager = {
+	current: null,
+	droppables: { "default": [] },
+	prepareOffsets: function( t, event ) {
+
+		var i, j,
+			m = $.ui.ddmanager.droppables[ t.options.scope ] || [],
+			type = event ? event.type : null, // workaround for #2317
+			list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack();
+
+		droppablesLoop: for ( i = 0; i < m.length; i++ ) {
+
+			// No disabled and non-accepted
+			if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) {
+				continue;
+			}
+
+			// Filter out elements in the current dragged item
+			for ( j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === m[ i ].element[ 0 ] ) {
+					m[ i ].proportions().height = 0;
+					continue droppablesLoop;
+				}
+			}
+
+			m[ i ].visible = m[ i ].element.css( "display" ) !== "none";
+			if ( !m[ i ].visible ) {
+				continue;
+			}
+
+			// Activate the droppable if used directly from draggables
+			if ( type === "mousedown" ) {
+				m[ i ]._activate.call( m[ i ], event );
+			}
+
+			m[ i ].offset = m[ i ].element.offset();
+			m[ i ].proportions({ width: m[ i ].element[ 0 ].offsetWidth, height: m[ i ].element[ 0 ].offsetHeight });
+
+		}
+
+	},
+	drop: function( draggable, event ) {
+
+		var dropped = false;
+		// Create a copy of the droppables in case the list changes during the drop (#9116)
+		$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {
+
+			if ( !this.options ) {
+				return;
+			}
+			if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) {
+				dropped = this._drop.call( this, event ) || dropped;
+			}
+
+			if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+				this.isout = true;
+				this.isover = false;
+				this._deactivate.call( this, event );
+			}
+
+		});
+		return dropped;
+
+	},
+	dragStart: function( draggable, event ) {
+		// Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
+		draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() {
+			if ( !draggable.options.refreshPositions ) {
+				$.ui.ddmanager.prepareOffsets( draggable, event );
+			}
+		});
+	},
+	drag: function( draggable, event ) {
+
+		// If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
+		if ( draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+
+		// Run through all droppables and check their positions based on specific tolerance options
+		$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {
+
+			if ( this.options.disabled || this.greedyChild || !this.visible ) {
+				return;
+			}
+
+			var parentInstance, scope, parent,
+				intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ),
+				c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null );
+			if ( !c ) {
+				return;
+			}
+
+			if ( this.options.greedy ) {
+				// find droppable parents with same scope
+				scope = this.options.scope;
+				parent = this.element.parents( ":data(ui-droppable)" ).filter(function() {
+					return $( this ).droppable( "instance" ).options.scope === scope;
+				});
+
+				if ( parent.length ) {
+					parentInstance = $( parent[ 0 ] ).droppable( "instance" );
+					parentInstance.greedyChild = ( c === "isover" );
+				}
+			}
+
+			// we just moved into a greedy child
+			if ( parentInstance && c === "isover" ) {
+				parentInstance.isover = false;
+				parentInstance.isout = true;
+				parentInstance._out.call( parentInstance, event );
+			}
+
+			this[ c ] = true;
+			this[c === "isout" ? "isover" : "isout"] = false;
+			this[c === "isover" ? "_over" : "_out"].call( this, event );
+
+			// we just moved out of a greedy child
+			if ( parentInstance && c === "isout" ) {
+				parentInstance.isout = false;
+				parentInstance.isover = true;
+				parentInstance._over.call( parentInstance, event );
+			}
+		});
+
+	},
+	dragStop: function( draggable, event ) {
+		draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" );
+		// Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
+		if ( !draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+	}
+};
+
+var droppable = $.ui.droppable;
+
+
+/*!
+ * jQuery UI Effects 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/effects-core/
+ */
+
+
+var dataSpace = "ui-effects-",
+
+	// Create a local jQuery because jQuery Color relies on it and the
+	// global may not exist with AMD and a custom build (#10199)
+	jQuery = $;
+
+$.effects = {
+	effect: {}
+};
+
+/*!
+ * jQuery Color Animations v2.1.2
+ * https://github.com/jquery/jquery-color
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * Date: Wed Jan 16 08:47:09 2013 -0600
+ */
+(function( jQuery, undefined ) {
+
+	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
+
+	// plusequals test for += 100 -= 100
+	rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
+	// a set of RE's that can match strings and generate color tuples.
+	stringParsers = [ {
+			re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ],
+					execResult[ 3 ],
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ] * 2.55,
+					execResult[ 2 ] * 2.55,
+					execResult[ 3 ] * 2.55,
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			// this regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			// this regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			space: "hsla",
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ] / 100,
+					execResult[ 3 ] / 100,
+					execResult[ 4 ]
+				];
+			}
+		} ],
+
+	// jQuery.Color( )
+	color = jQuery.Color = function( color, green, blue, alpha ) {
+		return new jQuery.Color.fn.parse( color, green, blue, alpha );
+	},
+	spaces = {
+		rgba: {
+			props: {
+				red: {
+					idx: 0,
+					type: "byte"
+				},
+				green: {
+					idx: 1,
+					type: "byte"
+				},
+				blue: {
+					idx: 2,
+					type: "byte"
+				}
+			}
+		},
+
+		hsla: {
+			props: {
+				hue: {
+					idx: 0,
+					type: "degrees"
+				},
+				saturation: {
+					idx: 1,
+					type: "percent"
+				},
+				lightness: {
+					idx: 2,
+					type: "percent"
+				}
+			}
+		}
+	},
+	propTypes = {
+		"byte": {
+			floor: true,
+			max: 255
+		},
+		"percent": {
+			max: 1
+		},
+		"degrees": {
+			mod: 360,
+			floor: true
+		}
+	},
+	support = color.support = {},
+
+	// element for support tests
+	supportElem = jQuery( "<p>" )[ 0 ],
+
+	// colors = jQuery.Color.names
+	colors,
+
+	// local aliases of functions called often
+	each = jQuery.each;
+
+// determine rgba support immediately
+supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
+support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
+
+// define cache name and alpha properties
+// for rgba and hsla spaces
+each( spaces, function( spaceName, space ) {
+	space.cache = "_" + spaceName;
+	space.props.alpha = {
+		idx: 3,
+		type: "percent",
+		def: 1
+	};
+});
+
+function clamp( value, prop, allowEmpty ) {
+	var type = propTypes[ prop.type ] || {};
+
+	if ( value == null ) {
+		return (allowEmpty || !prop.def) ? null : prop.def;
+	}
+
+	// ~~ is an short way of doing floor for positive numbers
+	value = type.floor ? ~~value : parseFloat( value );
+
+	// IE will pass in empty strings as value for alpha,
+	// which will hit this case
+	if ( isNaN( value ) ) {
+		return prop.def;
+	}
+
+	if ( type.mod ) {
+		// we add mod before modding to make sure that negatives values
+		// get converted properly: -10 -> 350
+		return (value + type.mod) % type.mod;
+	}
+
+	// for now all property types without mod have min and max
+	return 0 > value ? 0 : type.max < value ? type.max : value;
+}
+
+function stringParse( string ) {
+	var inst = color(),
+		rgba = inst._rgba = [];
+
+	string = string.toLowerCase();
+
+	each( stringParsers, function( i, parser ) {
+		var parsed,
+			match = parser.re.exec( string ),
+			values = match && parser.parse( match ),
+			spaceName = parser.space || "rgba";
+
+		if ( values ) {
+			parsed = inst[ spaceName ]( values );
+
+			// if this was an rgba parse the assignment might happen twice
+			// oh well....
+			inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
+			rgba = inst._rgba = parsed._rgba;
+
+			// exit each( stringParsers ) here because we matched
+			return false;
+		}
+	});
+
+	// Found a stringParser that handled it
+	if ( rgba.length ) {
+
+		// if this came from a parsed string, force "transparent" when alpha is 0
+		// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
+		if ( rgba.join() === "0,0,0,0" ) {
+			jQuery.extend( rgba, colors.transparent );
+		}
+		return inst;
+	}
+
+	// named colors
+	return colors[ string ];
+}
+
+color.fn = jQuery.extend( color.prototype, {
+	parse: function( red, green, blue, alpha ) {
+		if ( red === undefined ) {
+			this._rgba = [ null, null, null, null ];
+			return this;
+		}
+		if ( red.jquery || red.nodeType ) {
+			red = jQuery( red ).css( green );
+			green = undefined;
+		}
+
+		var inst = this,
+			type = jQuery.type( red ),
+			rgba = this._rgba = [];
+
+		// more than 1 argument specified - assume ( red, green, blue, alpha )
+		if ( green !== undefined ) {
+			red = [ red, green, blue, alpha ];
+			type = "array";
+		}
+
+		if ( type === "string" ) {
+			return this.parse( stringParse( red ) || colors._default );
+		}
+
+		if ( type === "array" ) {
+			each( spaces.rgba.props, function( key, prop ) {
+				rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
+			});
+			return this;
+		}
+
+		if ( type === "object" ) {
+			if ( red instanceof color ) {
+				each( spaces, function( spaceName, space ) {
+					if ( red[ space.cache ] ) {
+						inst[ space.cache ] = red[ space.cache ].slice();
+					}
+				});
+			} else {
+				each( spaces, function( spaceName, space ) {
+					var cache = space.cache;
+					each( space.props, function( key, prop ) {
+
+						// if the cache doesn't exist, and we know how to convert
+						if ( !inst[ cache ] && space.to ) {
+
+							// if the value was null, we don't need to copy it
+							// if the key was alpha, we don't need to copy it either
+							if ( key === "alpha" || red[ key ] == null ) {
+								return;
+							}
+							inst[ cache ] = space.to( inst._rgba );
+						}
+
+						// this is the only case where we allow nulls for ALL properties.
+						// call clamp with alwaysAllowEmpty
+						inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
+					});
+
+					// everything defined but alpha?
+					if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
+						// use the default of 1
+						inst[ cache ][ 3 ] = 1;
+						if ( space.from ) {
+							inst._rgba = space.from( inst[ cache ] );
+						}
+					}
+				});
+			}
+			return this;
+		}
+	},
+	is: function( compare ) {
+		var is = color( compare ),
+			same = true,
+			inst = this;
+
+		each( spaces, function( _, space ) {
+			var localCache,
+				isCache = is[ space.cache ];
+			if (isCache) {
+				localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
+				each( space.props, function( _, prop ) {
+					if ( isCache[ prop.idx ] != null ) {
+						same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
+						return same;
+					}
+				});
+			}
+			return same;
+		});
+		return same;
+	},
+	_space: function() {
+		var used = [],
+			inst = this;
+		each( spaces, function( spaceName, space ) {
+			if ( inst[ space.cache ] ) {
+				used.push( spaceName );
+			}
+		});
+		return used.pop();
+	},
+	transition: function( other, distance ) {
+		var end = color( other ),
+			spaceName = end._space(),
+			space = spaces[ spaceName ],
+			startColor = this.alpha() === 0 ? color( "transparent" ) : this,
+			start = startColor[ space.cache ] || space.to( startColor._rgba ),
+			result = start.slice();
+
+		end = end[ space.cache ];
+		each( space.props, function( key, prop ) {
+			var index = prop.idx,
+				startValue = start[ index ],
+				endValue = end[ index ],
+				type = propTypes[ prop.type ] || {};
+
+			// if null, don't override start value
+			if ( endValue === null ) {
+				return;
+			}
+			// if null - use end
+			if ( startValue === null ) {
+				result[ index ] = endValue;
+			} else {
+				if ( type.mod ) {
+					if ( endValue - startValue > type.mod / 2 ) {
+						startValue += type.mod;
+					} else if ( startValue - endValue > type.mod / 2 ) {
+						startValue -= type.mod;
+					}
+				}
+				result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
+			}
+		});
+		return this[ spaceName ]( result );
+	},
+	blend: function( opaque ) {
+		// if we are already opaque - return ourself
+		if ( this._rgba[ 3 ] === 1 ) {
+			return this;
+		}
+
+		var rgb = this._rgba.slice(),
+			a = rgb.pop(),
+			blend = color( opaque )._rgba;
+
+		return color( jQuery.map( rgb, function( v, i ) {
+			return ( 1 - a ) * blend[ i ] + a * v;
+		}));
+	},
+	toRgbaString: function() {
+		var prefix = "rgba(",
+			rgba = jQuery.map( this._rgba, function( v, i ) {
+				return v == null ? ( i > 2 ? 1 : 0 ) : v;
+			});
+
+		if ( rgba[ 3 ] === 1 ) {
+			rgba.pop();
+			prefix = "rgb(";
+		}
+
+		return prefix + rgba.join() + ")";
+	},
+	toHslaString: function() {
+		var prefix = "hsla(",
+			hsla = jQuery.map( this.hsla(), function( v, i ) {
+				if ( v == null ) {
+					v = i > 2 ? 1 : 0;
+				}
+
+				// catch 1 and 2
+				if ( i && i < 3 ) {
+					v = Math.round( v * 100 ) + "%";
+				}
+				return v;
+			});
+
+		if ( hsla[ 3 ] === 1 ) {
+			hsla.pop();
+			prefix = "hsl(";
+		}
+		return prefix + hsla.join() + ")";
+	},
+	toHexString: function( includeAlpha ) {
+		var rgba = this._rgba.slice(),
+			alpha = rgba.pop();
+
+		if ( includeAlpha ) {
+			rgba.push( ~~( alpha * 255 ) );
+		}
+
+		return "#" + jQuery.map( rgba, function( v ) {
+
+			// default to 0 when nulls exist
+			v = ( v || 0 ).toString( 16 );
+			return v.length === 1 ? "0" + v : v;
+		}).join("");
+	},
+	toString: function() {
+		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
+	}
+});
+color.fn.parse.prototype = color.fn;
+
+// hsla conversions adapted from:
+// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
+
+function hue2rgb( p, q, h ) {
+	h = ( h + 1 ) % 1;
+	if ( h * 6 < 1 ) {
+		return p + ( q - p ) * h * 6;
+	}
+	if ( h * 2 < 1) {
+		return q;
+	}
+	if ( h * 3 < 2 ) {
+		return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;
+	}
+	return p;
+}
+
+spaces.hsla.to = function( rgba ) {
+	if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
+		return [ null, null, null, rgba[ 3 ] ];
+	}
+	var r = rgba[ 0 ] / 255,
+		g = rgba[ 1 ] / 255,
+		b = rgba[ 2 ] / 255,
+		a = rgba[ 3 ],
+		max = Math.max( r, g, b ),
+		min = Math.min( r, g, b ),
+		diff = max - min,
+		add = max + min,
+		l = add * 0.5,
+		h, s;
+
+	if ( min === max ) {
+		h = 0;
+	} else if ( r === max ) {
+		h = ( 60 * ( g - b ) / diff ) + 360;
+	} else if ( g === max ) {
+		h = ( 60 * ( b - r ) / diff ) + 120;
+	} else {
+		h = ( 60 * ( r - g ) / diff ) + 240;
+	}
+
+	// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
+	// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
+	if ( diff === 0 ) {
+		s = 0;
+	} else if ( l <= 0.5 ) {
+		s = diff / add;
+	} else {
+		s = diff / ( 2 - add );
+	}
+	return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];
+};
+
+spaces.hsla.from = function( hsla ) {
+	if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
+		return [ null, null, null, hsla[ 3 ] ];
+	}
+	var h = hsla[ 0 ] / 360,
+		s = hsla[ 1 ],
+		l = hsla[ 2 ],
+		a = hsla[ 3 ],
+		q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
+		p = 2 * l - q;
+
+	return [
+		Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
+		Math.round( hue2rgb( p, q, h ) * 255 ),
+		Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
+		a
+	];
+};
+
+each( spaces, function( spaceName, space ) {
+	var props = space.props,
+		cache = space.cache,
+		to = space.to,
+		from = space.from;
+
+	// makes rgba() and hsla()
+	color.fn[ spaceName ] = function( value ) {
+
+		// generate a cache for this space if it doesn't exist
+		if ( to && !this[ cache ] ) {
+			this[ cache ] = to( this._rgba );
+		}
+		if ( value === undefined ) {
+			return this[ cache ].slice();
+		}
+
+		var ret,
+			type = jQuery.type( value ),
+			arr = ( type === "array" || type === "object" ) ? value : arguments,
+			local = this[ cache ].slice();
+
+		each( props, function( key, prop ) {
+			var val = arr[ type === "object" ? key : prop.idx ];
+			if ( val == null ) {
+				val = local[ prop.idx ];
+			}
+			local[ prop.idx ] = clamp( val, prop );
+		});
+
+		if ( from ) {
+			ret = color( from( local ) );
+			ret[ cache ] = local;
+			return ret;
+		} else {
+			return color( local );
+		}
+	};
+
+	// makes red() green() blue() alpha() hue() saturation() lightness()
+	each( props, function( key, prop ) {
+		// alpha is included in more than one space
+		if ( color.fn[ key ] ) {
+			return;
+		}
+		color.fn[ key ] = function( value ) {
+			var vtype = jQuery.type( value ),
+				fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
+				local = this[ fn ](),
+				cur = local[ prop.idx ],
+				match;
+
+			if ( vtype === "undefined" ) {
+				return cur;
+			}
+
+			if ( vtype === "function" ) {
+				value = value.call( this, cur );
+				vtype = jQuery.type( value );
+			}
+			if ( value == null && prop.empty ) {
+				return this;
+			}
+			if ( vtype === "string" ) {
+				match = rplusequals.exec( value );
+				if ( match ) {
+					value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
+				}
+			}
+			local[ prop.idx ] = value;
+			return this[ fn ]( local );
+		};
+	});
+});
+
+// add cssHook and .fx.step function for each named hook.
+// accept a space separated string of properties
+color.hook = function( hook ) {
+	var hooks = hook.split( " " );
+	each( hooks, function( i, hook ) {
+		jQuery.cssHooks[ hook ] = {
+			set: function( elem, value ) {
+				var parsed, curElem,
+					backgroundColor = "";
+
+				if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) {
+					value = color( parsed || value );
+					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
+						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
+						while (
+							(backgroundColor === "" || backgroundColor === "transparent") &&
+							curElem && curElem.style
+						) {
+							try {
+								backgroundColor = jQuery.css( curElem, "backgroundColor" );
+								curElem = curElem.parentNode;
+							} catch ( e ) {
+							}
+						}
+
+						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
+							backgroundColor :
+							"_default" );
+					}
+
+					value = value.toRgbaString();
+				}
+				try {
+					elem.style[ hook ] = value;
+				} catch ( e ) {
+					// wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'
+				}
+			}
+		};
+		jQuery.fx.step[ hook ] = function( fx ) {
+			if ( !fx.colorInit ) {
+				fx.start = color( fx.elem, hook );
+				fx.end = color( fx.end );
+				fx.colorInit = true;
+			}
+			jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
+		};
+	});
+
+};
+
+color.hook( stepHooks );
+
+jQuery.cssHooks.borderColor = {
+	expand: function( value ) {
+		var expanded = {};
+
+		each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
+			expanded[ "border" + part + "Color" ] = value;
+		});
+		return expanded;
+	}
+};
+
+// Basic color names only.
+// Usage of any of the other color names requires adding yourself or including
+// jquery.color.svg-names.js.
+colors = jQuery.Color.names = {
+	// 4.1. Basic color keywords
+	aqua: "#00ffff",
+	black: "#000000",
+	blue: "#0000ff",
+	fuchsia: "#ff00ff",
+	gray: "#808080",
+	green: "#008000",
+	lime: "#00ff00",
+	maroon: "#800000",
+	navy: "#000080",
+	olive: "#808000",
+	purple: "#800080",
+	red: "#ff0000",
+	silver: "#c0c0c0",
+	teal: "#008080",
+	white: "#ffffff",
+	yellow: "#ffff00",
+
+	// 4.2.3. "transparent" color keyword
+	transparent: [ null, null, null, 0 ],
+
+	_default: "#ffffff"
+};
+
+})( jQuery );
+
+/******************************************************************************/
+/****************************** CLASS ANIMATIONS ******************************/
+/******************************************************************************/
+(function() {
+
+var classAnimationActions = [ "add", "remove", "toggle" ],
+	shorthandStyles = {
+		border: 1,
+		borderBottom: 1,
+		borderColor: 1,
+		borderLeft: 1,
+		borderRight: 1,
+		borderTop: 1,
+		borderWidth: 1,
+		margin: 1,
+		padding: 1
+	};
+
+$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) {
+	$.fx.step[ prop ] = function( fx ) {
+		if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
+			jQuery.style( fx.elem, prop, fx.end );
+			fx.setAttr = true;
+		}
+	};
+});
+
+function getElementStyles( elem ) {
+	var key, len,
+		style = elem.ownerDocument.defaultView ?
+			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
+			elem.currentStyle,
+		styles = {};
+
+	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
+		len = style.length;
+		while ( len-- ) {
+			key = style[ len ];
+			if ( typeof style[ key ] === "string" ) {
+				styles[ $.camelCase( key ) ] = style[ key ];
+			}
+		}
+	// support: Opera, IE <9
+	} else {
+		for ( key in style ) {
+			if ( typeof style[ key ] === "string" ) {
+				styles[ key ] = style[ key ];
+			}
+		}
+	}
+
+	return styles;
+}
+
+function styleDifference( oldStyle, newStyle ) {
+	var diff = {},
+		name, value;
+
+	for ( name in newStyle ) {
+		value = newStyle[ name ];
+		if ( oldStyle[ name ] !== value ) {
+			if ( !shorthandStyles[ name ] ) {
+				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
+					diff[ name ] = value;
+				}
+			}
+		}
+	}
+
+	return diff;
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+$.effects.animateClass = function( value, duration, easing, callback ) {
+	var o = $.speed( duration, easing, callback );
+
+	return this.queue( function() {
+		var animated = $( this ),
+			baseClass = animated.attr( "class" ) || "",
+			applyClassChange,
+			allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
+
+		// map the animated objects to store the original styles.
+		allAnimations = allAnimations.map(function() {
+			var el = $( this );
+			return {
+				el: el,
+				start: getElementStyles( this )
+			};
+		});
+
+		// apply class change
+		applyClassChange = function() {
+			$.each( classAnimationActions, function(i, action) {
+				if ( value[ action ] ) {
+					animated[ action + "Class" ]( value[ action ] );
+				}
+			});
+		};
+		applyClassChange();
+
+		// map all animated objects again - calculate new styles and diff
+		allAnimations = allAnimations.map(function() {
+			this.end = getElementStyles( this.el[ 0 ] );
+			this.diff = styleDifference( this.start, this.end );
+			return this;
+		});
+
+		// apply original class
+		animated.attr( "class", baseClass );
+
+		// map all animated objects again - this time collecting a promise
+		allAnimations = allAnimations.map(function() {
+			var styleInfo = this,
+				dfd = $.Deferred(),
+				opts = $.extend({}, o, {
+					queue: false,
+					complete: function() {
+						dfd.resolve( styleInfo );
+					}
+				});
+
+			this.el.animate( this.diff, opts );
+			return dfd.promise();
+		});
+
+		// once all animations have completed:
+		$.when.apply( $, allAnimations.get() ).done(function() {
+
+			// set the final class
+			applyClassChange();
+
+			// for each animated element,
+			// clear all css properties that were animated
+			$.each( arguments, function() {
+				var el = this.el;
+				$.each( this.diff, function(key) {
+					el.css( key, "" );
+				});
+			});
+
+			// this is guarnteed to be there if you use jQuery.speed()
+			// it also handles dequeuing the next anim...
+			o.complete.call( animated[ 0 ] );
+		});
+	});
+};
+
+$.fn.extend({
+	addClass: (function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return speed ?
+				$.effects.animateClass.call( this,
+					{ add: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.addClass ),
+
+	removeClass: (function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return arguments.length > 1 ?
+				$.effects.animateClass.call( this,
+					{ remove: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.removeClass ),
+
+	toggleClass: (function( orig ) {
+		return function( classNames, force, speed, easing, callback ) {
+			if ( typeof force === "boolean" || force === undefined ) {
+				if ( !speed ) {
+					// without speed parameter
+					return orig.apply( this, arguments );
+				} else {
+					return $.effects.animateClass.call( this,
+						(force ? { add: classNames } : { remove: classNames }),
+						speed, easing, callback );
+				}
+			} else {
+				// without force parameter
+				return $.effects.animateClass.call( this,
+					{ toggle: classNames }, force, speed, easing );
+			}
+		};
+	})( $.fn.toggleClass ),
+
+	switchClass: function( remove, add, speed, easing, callback) {
+		return $.effects.animateClass.call( this, {
+			add: add,
+			remove: remove
+		}, speed, easing, callback );
+	}
+});
+
+})();
+
+/******************************************************************************/
+/*********************************** EFFECTS **********************************/
+/******************************************************************************/
+
+(function() {
+
+$.extend( $.effects, {
+	version: "1.11.3",
+
+	// Saves a set of properties in a data storage
+	save: function( element, set ) {
+		for ( var i = 0; i < set.length; i++ ) {
+			if ( set[ i ] !== null ) {
+				element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
+			}
+		}
+	},
+
+	// Restores a set of previously saved properties from a data storage
+	restore: function( element, set ) {
+		var val, i;
+		for ( i = 0; i < set.length; i++ ) {
+			if ( set[ i ] !== null ) {
+				val = element.data( dataSpace + set[ i ] );
+				// support: jQuery 1.6.2
+				// http://bugs.jquery.com/ticket/9917
+				// jQuery 1.6.2 incorrectly returns undefined for any falsy value.
+				// We can't differentiate between "" and 0 here, so we just assume
+				// empty string since it's likely to be a more common value...
+				if ( val === undefined ) {
+					val = "";
+				}
+				element.css( set[ i ], val );
+			}
+		}
+	},
+
+	setMode: function( el, mode ) {
+		if (mode === "toggle") {
+			mode = el.is( ":hidden" ) ? "show" : "hide";
+		}
+		return mode;
+	},
+
+	// Translates a [top,left] array into a baseline value
+	// this should be a little more flexible in the future to handle a string & hash
+	getBaseline: function( origin, original ) {
+		var y, x;
+		switch ( origin[ 0 ] ) {
+			case "top": y = 0; break;
+			case "middle": y = 0.5; break;
+			case "bottom": y = 1; break;
+			default: y = origin[ 0 ] / original.height;
+		}
+		switch ( origin[ 1 ] ) {
+			case "left": x = 0; break;
+			case "center": x = 0.5; break;
+			case "right": x = 1; break;
+			default: x = origin[ 1 ] / original.width;
+		}
+		return {
+			x: x,
+			y: y
+		};
+	},
+
+	// Wraps the element around a wrapper that copies position properties
+	createWrapper: function( element ) {
+
+		// if the element is already wrapped, return it
+		if ( element.parent().is( ".ui-effects-wrapper" )) {
+			return element.parent();
+		}
+
+		// wrap the element
+		var props = {
+				width: element.outerWidth(true),
+				height: element.outerHeight(true),
+				"float": element.css( "float" )
+			},
+			wrapper = $( "<div></div>" )
+				.addClass( "ui-effects-wrapper" )
+				.css({
+					fontSize: "100%",
+					background: "transparent",
+					border: "none",
+					margin: 0,
+					padding: 0
+				}),
+			// Store the size in case width/height are defined in % - Fixes #5245
+			size = {
+				width: element.width(),
+				height: element.height()
+			},
+			active = document.activeElement;
+
+		// support: Firefox
+		// Firefox incorrectly exposes anonymous content
+		// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
+		try {
+			active.id;
+		} catch ( e ) {
+			active = document.body;
+		}
+
+		element.wrap( wrapper );
+
+		// Fixes #7595 - Elements lose focus when wrapped.
+		if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+			$( active ).focus();
+		}
+
+		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element
+
+		// transfer positioning properties to the wrapper
+		if ( element.css( "position" ) === "static" ) {
+			wrapper.css({ position: "relative" });
+			element.css({ position: "relative" });
+		} else {
+			$.extend( props, {
+				position: element.css( "position" ),
+				zIndex: element.css( "z-index" )
+			});
+			$.each([ "top", "left", "bottom", "right" ], function(i, pos) {
+				props[ pos ] = element.css( pos );
+				if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
+					props[ pos ] = "auto";
+				}
+			});
+			element.css({
+				position: "relative",
+				top: 0,
+				left: 0,
+				right: "auto",
+				bottom: "auto"
+			});
+		}
+		element.css(size);
+
+		return wrapper.css( props ).show();
+	},
+
+	removeWrapper: function( element ) {
+		var active = document.activeElement;
+
+		if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+			element.parent().replaceWith( element );
+
+			// Fixes #7595 - Elements lose focus when wrapped.
+			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+				$( active ).focus();
+			}
+		}
+
+		return element;
+	},
+
+	setTransition: function( element, list, factor, value ) {
+		value = value || {};
+		$.each( list, function( i, x ) {
+			var unit = element.cssUnit( x );
+			if ( unit[ 0 ] > 0 ) {
+				value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
+			}
+		});
+		return value;
+	}
+});
+
+// return an effect options object for the given parameters:
+function _normalizeArguments( effect, options, speed, callback ) {
+
+	// allow passing all options as the first parameter
+	if ( $.isPlainObject( effect ) ) {
+		options = effect;
+		effect = effect.effect;
+	}
+
+	// convert to an object
+	effect = { effect: effect };
+
+	// catch (effect, null, ...)
+	if ( options == null ) {
+		options = {};
+	}
+
+	// catch (effect, callback)
+	if ( $.isFunction( options ) ) {
+		callback = options;
+		speed = null;
+		options = {};
+	}
+
+	// catch (effect, speed, ?)
+	if ( typeof options === "number" || $.fx.speeds[ options ] ) {
+		callback = speed;
+		speed = options;
+		options = {};
+	}
+
+	// catch (effect, options, callback)
+	if ( $.isFunction( speed ) ) {
+		callback = speed;
+		speed = null;
+	}
+
+	// add options to effect
+	if ( options ) {
+		$.extend( effect, options );
+	}
+
+	speed = speed || options.duration;
+	effect.duration = $.fx.off ? 0 :
+		typeof speed === "number" ? speed :
+		speed in $.fx.speeds ? $.fx.speeds[ speed ] :
+		$.fx.speeds._default;
+
+	effect.complete = callback || options.complete;
+
+	return effect;
+}
+
+function standardAnimationOption( option ) {
+	// Valid standard speeds (nothing, number, named speed)
+	if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
+		return true;
+	}
+
+	// Invalid strings - treat as "normal" speed
+	if ( typeof option === "string" && !$.effects.effect[ option ] ) {
+		return true;
+	}
+
+	// Complete callback
+	if ( $.isFunction( option ) ) {
+		return true;
+	}
+
+	// Options hash (but not naming an effect)
+	if ( typeof option === "object" && !option.effect ) {
+		return true;
+	}
+
+	// Didn't match any standard API
+	return false;
+}
+
+$.fn.extend({
+	effect: function( /* effect, options, speed, callback */ ) {
+		var args = _normalizeArguments.apply( this, arguments ),
+			mode = args.mode,
+			queue = args.queue,
+			effectMethod = $.effects.effect[ args.effect ];
+
+		if ( $.fx.off || !effectMethod ) {
+			// delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args.duration, args.complete );
+			} else {
+				return this.each( function() {
+					if ( args.complete ) {
+						args.complete.call( this );
+					}
+				});
+			}
+		}
+
+		function run( next ) {
+			var elem = $( this ),
+				complete = args.complete,
+				mode = args.mode;
+
+			function done() {
+				if ( $.isFunction( complete ) ) {
+					complete.call( elem[0] );
+				}
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			}
+
+			// If the element already has the correct final state, delegate to
+			// the core methods so the internal tracking of "olddisplay" works.
+			if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
+				elem[ mode ]();
+				done();
+			} else {
+				effectMethod.call( elem[0], args, done );
+			}
+		}
+
+		return queue === false ? this.each( run ) : this.queue( queue || "fx", run );
+	},
+
+	show: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "show";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.show ),
+
+	hide: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "hide";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.hide ),
+
+	toggle: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "toggle";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.toggle ),
+
+	// helper functions
+	cssUnit: function(key) {
+		var style = this.css( key ),
+			val = [];
+
+		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
+			if ( style.indexOf( unit ) > 0 ) {
+				val = [ parseFloat( style ), unit ];
+			}
+		});
+		return val;
+	}
+});
+
+})();
+
+/******************************************************************************/
+/*********************************** EASING ***********************************/
+/******************************************************************************/
+
+(function() {
+
+// based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
+
+var baseEasings = {};
+
+$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
+	baseEasings[ name ] = function( p ) {
+		return Math.pow( p, i + 2 );
+	};
+});
+
+$.extend( baseEasings, {
+	Sine: function( p ) {
+		return 1 - Math.cos( p * Math.PI / 2 );
+	},
+	Circ: function( p ) {
+		return 1 - Math.sqrt( 1 - p * p );
+	},
+	Elastic: function( p ) {
+		return p === 0 || p === 1 ? p :
+			-Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 );
+	},
+	Back: function( p ) {
+		return p * p * ( 3 * p - 2 );
+	},
+	Bounce: function( p ) {
+		var pow2,
+			bounce = 4;
+
+		while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
+		return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
+	}
+});
+
+$.each( baseEasings, function( name, easeIn ) {
+	$.easing[ "easeIn" + name ] = easeIn;
+	$.easing[ "easeOut" + name ] = function( p ) {
+		return 1 - easeIn( 1 - p );
+	};
+	$.easing[ "easeInOut" + name ] = function( p ) {
+		return p < 0.5 ?
+			easeIn( p * 2 ) / 2 :
+			1 - easeIn( p * -2 + 2 ) / 2;
+	};
+});
+
+})();
+
+var effect = $.effects;
+
+
+/*!
+ * jQuery UI Effects Blind 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/blind-effect/
+ */
+
+
+var effectBlind = $.effects.effect.blind = function( o, done ) {
+	// Create element
+	var el = $( this ),
+		rvertical = /up|down|vertical/,
+		rpositivemotion = /up|left|vertical|horizontal/,
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		direction = o.direction || "up",
+		vertical = rvertical.test( direction ),
+		ref = vertical ? "height" : "width",
+		ref2 = vertical ? "top" : "left",
+		motion = rpositivemotion.test( direction ),
+		animation = {},
+		show = mode === "show",
+		wrapper, distance, margin;
+
+	// if already wrapped, the wrapper's properties are my property. #6245
+	if ( el.parent().is( ".ui-effects-wrapper" ) ) {
+		$.effects.save( el.parent(), props );
+	} else {
+		$.effects.save( el, props );
+	}
+	el.show();
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+
+	distance = wrapper[ ref ]();
+	margin = parseFloat( wrapper.css( ref2 ) ) || 0;
+
+	animation[ ref ] = show ? distance : 0;
+	if ( !motion ) {
+		el
+			.css( vertical ? "bottom" : "right", 0 )
+			.css( vertical ? "top" : "left", "auto" )
+			.css({ position: "absolute" });
+
+		animation[ ref2 ] = show ? margin : distance + margin;
+	}
+
+	// start at 0 if we are showing
+	if ( show ) {
+		wrapper.css( ref, 0 );
+		if ( !motion ) {
+			wrapper.css( ref2, margin + distance );
+		}
+	}
+
+	// Animate
+	wrapper.animate( animation, {
+		duration: o.duration,
+		easing: o.easing,
+		queue: false,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Bounce 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/bounce-effect/
+ */
+
+
+var effectBounce = $.effects.effect.bounce = function( o, done ) {
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+
+		// defaults:
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		hide = mode === "hide",
+		show = mode === "show",
+		direction = o.direction || "up",
+		distance = o.distance,
+		times = o.times || 5,
+
+		// number of internal animations
+		anims = times * 2 + ( show || hide ? 1 : 0 ),
+		speed = o.duration / anims,
+		easing = o.easing,
+
+		// utility:
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ),
+		i,
+		upAnim,
+		downAnim,
+
+		// we will need to re-assemble the queue to stack our animations in place
+		queue = el.queue(),
+		queuelen = queue.length;
+
+	// Avoid touching opacity to prevent clearType and PNG issues in IE
+	if ( show || hide ) {
+		props.push( "opacity" );
+	}
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el ); // Create Wrapper
+
+	// default distance for the BIGGEST bounce is the outer Distance / 3
+	if ( !distance ) {
+		distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
+	}
+
+	if ( show ) {
+		downAnim = { opacity: 1 };
+		downAnim[ ref ] = 0;
+
+		// if we are showing, force opacity 0 and set the initial position
+		// then do the "first" animation
+		el.css( "opacity", 0 )
+			.css( ref, motion ? -distance * 2 : distance * 2 )
+			.animate( downAnim, speed, easing );
+	}
+
+	// start at the smallest distance if we are hiding
+	if ( hide ) {
+		distance = distance / Math.pow( 2, times - 1 );
+	}
+
+	downAnim = {};
+	downAnim[ ref ] = 0;
+	// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
+	for ( i = 0; i < times; i++ ) {
+		upAnim = {};
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		el.animate( upAnim, speed, easing )
+			.animate( downAnim, speed, easing );
+
+		distance = hide ? distance * 2 : distance / 2;
+	}
+
+	// Last Bounce when Hiding
+	if ( hide ) {
+		upAnim = { opacity: 0 };
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		el.animate( upAnim, speed, easing );
+	}
+
+	el.queue(function() {
+		if ( hide ) {
+			el.hide();
+		}
+		$.effects.restore( el, props );
+		$.effects.removeWrapper( el );
+		done();
+	});
+
+	// inject all the animations we just queued to be first in line (after "inprogress")
+	if ( queuelen > 1) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	el.dequeue();
+
+};
+
+
+/*!
+ * jQuery UI Effects Clip 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/clip-effect/
+ */
+
+
+var effectClip = $.effects.effect.clip = function( o, done ) {
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		direction = o.direction || "vertical",
+		vert = direction === "vertical",
+		size = vert ? "height" : "width",
+		position = vert ? "top" : "left",
+		animation = {},
+		wrapper, animate, distance;
+
+	// Save & Show
+	$.effects.save( el, props );
+	el.show();
+
+	// Create Wrapper
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+	animate = ( el[0].tagName === "IMG" ) ? wrapper : el;
+	distance = animate[ size ]();
+
+	// Shift
+	if ( show ) {
+		animate.css( size, 0 );
+		animate.css( position, distance / 2 );
+	}
+
+	// Create Animation Object:
+	animation[ size ] = show ? distance : 0;
+	animation[ position ] = show ? 0 : distance / 2;
+
+	// Animate
+	animate.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( !show ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+
+};
+
+
+/*!
+ * jQuery UI Effects Drop 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/drop-effect/
+ */
+
+
+var effectDrop = $.effects.effect.drop = function( o, done ) {
+
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		direction = o.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg",
+		animation = {
+			opacity: show ? 1 : 0
+		},
+		distance;
+
+	// Adjust
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+
+	distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
+
+	if ( show ) {
+		el
+			.css( "opacity", 0 )
+			.css( ref, motion === "pos" ? -distance : distance );
+	}
+
+	// Animation
+	animation[ ref ] = ( show ?
+		( motion === "pos" ? "+=" : "-=" ) :
+		( motion === "pos" ? "-=" : "+=" ) ) +
+		distance;
+
+	// Animate
+	el.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Explode 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/explode-effect/
+ */
+
+
+var effectExplode = $.effects.effect.explode = function( o, done ) {
+
+	var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3,
+		cells = rows,
+		el = $( this ),
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+
+		// show and then visibility:hidden the element before calculating offset
+		offset = el.show().css( "visibility", "hidden" ).offset(),
+
+		// width and height of a piece
+		width = Math.ceil( el.outerWidth() / cells ),
+		height = Math.ceil( el.outerHeight() / rows ),
+		pieces = [],
+
+		// loop
+		i, j, left, top, mx, my;
+
+	// children animate complete:
+	function childComplete() {
+		pieces.push( this );
+		if ( pieces.length === rows * cells ) {
+			animComplete();
+		}
+	}
+
+	// clone the element for each row and cell.
+	for ( i = 0; i < rows ; i++ ) { // ===>
+		top = offset.top + i * height;
+		my = i - ( rows - 1 ) / 2 ;
+
+		for ( j = 0; j < cells ; j++ ) { // |||
+			left = offset.left + j * width;
+			mx = j - ( cells - 1 ) / 2 ;
+
+			// Create a clone of the now hidden main element that will be absolute positioned
+			// within a wrapper div off the -left and -top equal to size of our pieces
+			el
+				.clone()
+				.appendTo( "body" )
+				.wrap( "<div></div>" )
+				.css({
+					position: "absolute",
+					visibility: "visible",
+					left: -j * width,
+					top: -i * height
+				})
+
+			// select the wrapper - make it overflow: hidden and absolute positioned based on
+			// where the original was located +left and +top equal to the size of pieces
+				.parent()
+				.addClass( "ui-effects-explode" )
+				.css({
+					position: "absolute",
+					overflow: "hidden",
+					width: width,
+					height: height,
+					left: left + ( show ? mx * width : 0 ),
+					top: top + ( show ? my * height : 0 ),
+					opacity: show ? 0 : 1
+				}).animate({
+					left: left + ( show ? 0 : mx * width ),
+					top: top + ( show ? 0 : my * height ),
+					opacity: show ? 1 : 0
+				}, o.duration || 500, o.easing, childComplete );
+		}
+	}
+
+	function animComplete() {
+		el.css({
+			visibility: "visible"
+		});
+		$( pieces ).remove();
+		if ( !show ) {
+			el.hide();
+		}
+		done();
+	}
+};
+
+
+/*!
+ * jQuery UI Effects Fade 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/fade-effect/
+ */
+
+
+var effectFade = $.effects.effect.fade = function( o, done ) {
+	var el = $( this ),
+		mode = $.effects.setMode( el, o.mode || "toggle" );
+
+	el.animate({
+		opacity: mode
+	}, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: done
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Fold 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/fold-effect/
+ */
+
+
+var effectFold = $.effects.effect.fold = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		hide = mode === "hide",
+		size = o.size || 15,
+		percent = /([0-9]+)%/.exec( size ),
+		horizFirst = !!o.horizFirst,
+		widthFirst = show !== horizFirst,
+		ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ],
+		duration = o.duration / 2,
+		wrapper, distance,
+		animation1 = {},
+		animation2 = {};
+
+	$.effects.save( el, props );
+	el.show();
+
+	// Create Wrapper
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+	distance = widthFirst ?
+		[ wrapper.width(), wrapper.height() ] :
+		[ wrapper.height(), wrapper.width() ];
+
+	if ( percent ) {
+		size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
+	}
+	if ( show ) {
+		wrapper.css( horizFirst ? {
+			height: 0,
+			width: size
+		} : {
+			height: size,
+			width: 0
+		});
+	}
+
+	// Animation
+	animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size;
+	animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0;
+
+	// Animate
+	wrapper
+		.animate( animation1, duration, o.easing )
+		.animate( animation2, duration, o.easing, function() {
+			if ( hide ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		});
+
+};
+
+
+/*!
+ * jQuery UI Effects Highlight 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/highlight-effect/
+ */
+
+
+var effectHighlight = $.effects.effect.highlight = function( o, done ) {
+	var elem = $( this ),
+		props = [ "backgroundImage", "backgroundColor", "opacity" ],
+		mode = $.effects.setMode( elem, o.mode || "show" ),
+		animation = {
+			backgroundColor: elem.css( "backgroundColor" )
+		};
+
+	if (mode === "hide") {
+		animation.opacity = 0;
+	}
+
+	$.effects.save( elem, props );
+
+	elem
+		.show()
+		.css({
+			backgroundImage: "none",
+			backgroundColor: o.color || "#ffff99"
+		})
+		.animate( animation, {
+			queue: false,
+			duration: o.duration,
+			easing: o.easing,
+			complete: function() {
+				if ( mode === "hide" ) {
+					elem.hide();
+				}
+				$.effects.restore( elem, props );
+				done();
+			}
+		});
+};
+
+
+/*!
+ * jQuery UI Effects Size 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/size-effect/
+ */
+
+
+var effectSize = $.effects.effect.size = function( o, done ) {
+
+	// Create element
+	var original, baseline, factor,
+		el = $( this ),
+		props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ],
+
+		// Always restore
+		props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ],
+
+		// Copy for children
+		props2 = [ "width", "height", "overflow" ],
+		cProps = [ "fontSize" ],
+		vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
+		hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
+
+		// Set options
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		restore = o.restore || mode !== "effect",
+		scale = o.scale || "both",
+		origin = o.origin || [ "middle", "center" ],
+		position = el.css( "position" ),
+		props = restore ? props0 : props1,
+		zero = {
+			height: 0,
+			width: 0,
+			outerHeight: 0,
+			outerWidth: 0
+		};
+
+	if ( mode === "show" ) {
+		el.show();
+	}
+	original = {
+		height: el.height(),
+		width: el.width(),
+		outerHeight: el.outerHeight(),
+		outerWidth: el.outerWidth()
+	};
+
+	if ( o.mode === "toggle" && mode === "show" ) {
+		el.from = o.to || zero;
+		el.to = o.from || original;
+	} else {
+		el.from = o.from || ( mode === "show" ? zero : original );
+		el.to = o.to || ( mode === "hide" ? zero : original );
+	}
+
+	// Set scaling factor
+	factor = {
+		from: {
+			y: el.from.height / original.height,
+			x: el.from.width / original.width
+		},
+		to: {
+			y: el.to.height / original.height,
+			x: el.to.width / original.width
+		}
+	};
+
+	// Scale the css box
+	if ( scale === "box" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			props = props.concat( vProps );
+			el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from );
+			el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to );
+		}
+
+		// Horizontal props scaling
+		if ( factor.from.x !== factor.to.x ) {
+			props = props.concat( hProps );
+			el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from );
+			el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to );
+		}
+	}
+
+	// Scale the content
+	if ( scale === "content" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			props = props.concat( cProps ).concat( props2 );
+			el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from );
+			el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to );
+		}
+	}
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+	el.css( "overflow", "hidden" ).css( el.from );
+
+	// Adjust
+	if (origin) { // Calculate baseline shifts
+		baseline = $.effects.getBaseline( origin, original );
+		el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y;
+		el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x;
+		el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y;
+		el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x;
+	}
+	el.css( el.from ); // set top & left
+
+	// Animate
+	if ( scale === "content" || scale === "both" ) { // Scale the children
+
+		// Add margins/font-size
+		vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps);
+		hProps = hProps.concat([ "marginLeft", "marginRight" ]);
+		props2 = props0.concat(vProps).concat(hProps);
+
+		el.find( "*[width]" ).each( function() {
+			var child = $( this ),
+				c_original = {
+					height: child.height(),
+					width: child.width(),
+					outerHeight: child.outerHeight(),
+					outerWidth: child.outerWidth()
+				};
+			if (restore) {
+				$.effects.save(child, props2);
+			}
+
+			child.from = {
+				height: c_original.height * factor.from.y,
+				width: c_original.width * factor.from.x,
+				outerHeight: c_original.outerHeight * factor.from.y,
+				outerWidth: c_original.outerWidth * factor.from.x
+			};
+			child.to = {
+				height: c_original.height * factor.to.y,
+				width: c_original.width * factor.to.x,
+				outerHeight: c_original.height * factor.to.y,
+				outerWidth: c_original.width * factor.to.x
+			};
+
+			// Vertical props scaling
+			if ( factor.from.y !== factor.to.y ) {
+				child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from );
+				child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to );
+			}
+
+			// Horizontal props scaling
+			if ( factor.from.x !== factor.to.x ) {
+				child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from );
+				child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to );
+			}
+
+			// Animate children
+			child.css( child.from );
+			child.animate( child.to, o.duration, o.easing, function() {
+
+				// Restore children
+				if ( restore ) {
+					$.effects.restore( child, props2 );
+				}
+			});
+		});
+	}
+
+	// Animate
+	el.animate( el.to, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( el.to.opacity === 0 ) {
+				el.css( "opacity", el.from.opacity );
+			}
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			if ( !restore ) {
+
+				// we need to calculate our new positioning based on the scaling
+				if ( position === "static" ) {
+					el.css({
+						position: "relative",
+						top: el.to.top,
+						left: el.to.left
+					});
+				} else {
+					$.each([ "top", "left" ], function( idx, pos ) {
+						el.css( pos, function( _, str ) {
+							var val = parseInt( str, 10 ),
+								toRef = idx ? el.to.left : el.to.top;
+
+							// if original was "auto", recalculate the new value from wrapper
+							if ( str === "auto" ) {
+								return toRef + "px";
+							}
+
+							return val + toRef + "px";
+						});
+					});
+				}
+			}
+
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+
+};
+
+
+/*!
+ * jQuery UI Effects Scale 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/scale-effect/
+ */
+
+
+var effectScale = $.effects.effect.scale = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		options = $.extend( true, {}, o ),
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		percent = parseInt( o.percent, 10 ) ||
+			( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ),
+		direction = o.direction || "both",
+		origin = o.origin,
+		original = {
+			height: el.height(),
+			width: el.width(),
+			outerHeight: el.outerHeight(),
+			outerWidth: el.outerWidth()
+		},
+		factor = {
+			y: direction !== "horizontal" ? (percent / 100) : 1,
+			x: direction !== "vertical" ? (percent / 100) : 1
+		};
+
+	// We are going to pass this effect to the size effect:
+	options.effect = "size";
+	options.queue = false;
+	options.complete = done;
+
+	// Set default origin and restore for show/hide
+	if ( mode !== "effect" ) {
+		options.origin = origin || [ "middle", "center" ];
+		options.restore = true;
+	}
+
+	options.from = o.from || ( mode === "show" ? {
+		height: 0,
+		width: 0,
+		outerHeight: 0,
+		outerWidth: 0
+	} : original );
+	options.to = {
+		height: original.height * factor.y,
+		width: original.width * factor.x,
+		outerHeight: original.outerHeight * factor.y,
+		outerWidth: original.outerWidth * factor.x
+	};
+
+	// Fade option to support puff
+	if ( options.fade ) {
+		if ( mode === "show" ) {
+			options.from.opacity = 0;
+			options.to.opacity = 1;
+		}
+		if ( mode === "hide" ) {
+			options.from.opacity = 1;
+			options.to.opacity = 0;
+		}
+	}
+
+	// Animate
+	el.effect( options );
+
+};
+
+
+/*!
+ * jQuery UI Effects Puff 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/puff-effect/
+ */
+
+
+var effectPuff = $.effects.effect.puff = function( o, done ) {
+	var elem = $( this ),
+		mode = $.effects.setMode( elem, o.mode || "hide" ),
+		hide = mode === "hide",
+		percent = parseInt( o.percent, 10 ) || 150,
+		factor = percent / 100,
+		original = {
+			height: elem.height(),
+			width: elem.width(),
+			outerHeight: elem.outerHeight(),
+			outerWidth: elem.outerWidth()
+		};
+
+	$.extend( o, {
+		effect: "scale",
+		queue: false,
+		fade: true,
+		mode: mode,
+		complete: done,
+		percent: hide ? percent : 100,
+		from: hide ?
+			original :
+			{
+				height: original.height * factor,
+				width: original.width * factor,
+				outerHeight: original.outerHeight * factor,
+				outerWidth: original.outerWidth * factor
+			}
+	});
+
+	elem.effect( o );
+};
+
+
+/*!
+ * jQuery UI Effects Pulsate 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/pulsate-effect/
+ */
+
+
+var effectPulsate = $.effects.effect.pulsate = function( o, done ) {
+	var elem = $( this ),
+		mode = $.effects.setMode( elem, o.mode || "show" ),
+		show = mode === "show",
+		hide = mode === "hide",
+		showhide = ( show || mode === "hide" ),
+
+		// showing or hiding leaves of the "last" animation
+		anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
+		duration = o.duration / anims,
+		animateTo = 0,
+		queue = elem.queue(),
+		queuelen = queue.length,
+		i;
+
+	if ( show || !elem.is(":visible")) {
+		elem.css( "opacity", 0 ).show();
+		animateTo = 1;
+	}
+
+	// anims - 1 opacity "toggles"
+	for ( i = 1; i < anims; i++ ) {
+		elem.animate({
+			opacity: animateTo
+		}, duration, o.easing );
+		animateTo = 1 - animateTo;
+	}
+
+	elem.animate({
+		opacity: animateTo
+	}, duration, o.easing);
+
+	elem.queue(function() {
+		if ( hide ) {
+			elem.hide();
+		}
+		done();
+	});
+
+	// We just queued up "anims" animations, we need to put them next in the queue
+	if ( queuelen > 1 ) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	elem.dequeue();
+};
+
+
+/*!
+ * jQuery UI Effects Shake 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/shake-effect/
+ */
+
+
+var effectShake = $.effects.effect.shake = function( o, done ) {
+
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		direction = o.direction || "left",
+		distance = o.distance || 20,
+		times = o.times || 3,
+		anims = times * 2 + 1,
+		speed = Math.round( o.duration / anims ),
+		ref = (direction === "up" || direction === "down") ? "top" : "left",
+		positiveMotion = (direction === "up" || direction === "left"),
+		animation = {},
+		animation1 = {},
+		animation2 = {},
+		i,
+
+		// we will need to re-assemble the queue to stack our animations in place
+		queue = el.queue(),
+		queuelen = queue.length;
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+
+	// Animation
+	animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
+	animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
+	animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
+
+	// Animate
+	el.animate( animation, speed, o.easing );
+
+	// Shakes
+	for ( i = 1; i < times; i++ ) {
+		el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing );
+	}
+	el
+		.animate( animation1, speed, o.easing )
+		.animate( animation, speed / 2, o.easing )
+		.queue(function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		});
+
+	// inject all the animations we just queued to be first in line (after "inprogress")
+	if ( queuelen > 1) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	el.dequeue();
+
+};
+
+
+/*!
+ * jQuery UI Effects Slide 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/slide-effect/
+ */
+
+
+var effectSlide = $.effects.effect.slide = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "width", "height" ],
+		mode = $.effects.setMode( el, o.mode || "show" ),
+		show = mode === "show",
+		direction = o.direction || "left",
+		ref = (direction === "up" || direction === "down") ? "top" : "left",
+		positiveMotion = (direction === "up" || direction === "left"),
+		distance,
+		animation = {};
+
+	// Adjust
+	$.effects.save( el, props );
+	el.show();
+	distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true );
+
+	$.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+
+	if ( show ) {
+		el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance );
+	}
+
+	// Animation
+	animation[ ref ] = ( show ?
+		( positiveMotion ? "+=" : "-=") :
+		( positiveMotion ? "-=" : "+=")) +
+		distance;
+
+	// Animate
+	el.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Transfer 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/transfer-effect/
+ */
+
+
+var effectTransfer = $.effects.effect.transfer = function( o, done ) {
+	var elem = $( this ),
+		target = $( o.to ),
+		targetFixed = target.css( "position" ) === "fixed",
+		body = $("body"),
+		fixTop = targetFixed ? body.scrollTop() : 0,
+		fixLeft = targetFixed ? body.scrollLeft() : 0,
+		endPosition = target.offset(),
+		animation = {
+			top: endPosition.top - fixTop,
+			left: endPosition.left - fixLeft,
+			height: target.innerHeight(),
+			width: target.innerWidth()
+		},
+		startPosition = elem.offset(),
+		transfer = $( "<div class='ui-effects-transfer'></div>" )
+			.appendTo( document.body )
+			.addClass( o.className )
+			.css({
+				top: startPosition.top - fixTop,
+				left: startPosition.left - fixLeft,
+				height: elem.innerHeight(),
+				width: elem.innerWidth(),
+				position: targetFixed ? "fixed" : "absolute"
+			})
+			.animate( animation, o.duration, o.easing, function() {
+				transfer.remove();
+				done();
+			});
+};
+
+
+/*!
+ * jQuery UI Progressbar 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/progressbar/
+ */
+
+
+var progressbar = $.widget( "ui.progressbar", {
+	version: "1.11.3",
+	options: {
+		max: 100,
+		value: 0,
+
+		change: null,
+		complete: null
+	},
+
+	min: 0,
+
+	_create: function() {
+		// Constrain initial value
+		this.oldValue = this.options.value = this._constrainedValue();
+
+		this.element
+			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
+			.attr({
+				// Only set static values, aria-valuenow and aria-valuemax are
+				// set inside _refreshValue()
+				role: "progressbar",
+				"aria-valuemin": this.min
+			});
+
+		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
+			.appendTo( this.element );
+
+		this._refreshValue();
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-valuemin" )
+			.removeAttr( "aria-valuemax" )
+			.removeAttr( "aria-valuenow" );
+
+		this.valueDiv.remove();
+	},
+
+	value: function( newValue ) {
+		if ( newValue === undefined ) {
+			return this.options.value;
+		}
+
+		this.options.value = this._constrainedValue( newValue );
+		this._refreshValue();
+	},
+
+	_constrainedValue: function( newValue ) {
+		if ( newValue === undefined ) {
+			newValue = this.options.value;
+		}
+
+		this.indeterminate = newValue === false;
+
+		// sanitize value
+		if ( typeof newValue !== "number" ) {
+			newValue = 0;
+		}
+
+		return this.indeterminate ? false :
+			Math.min( this.options.max, Math.max( this.min, newValue ) );
+	},
+
+	_setOptions: function( options ) {
+		// Ensure "value" option is set after other values (like max)
+		var value = options.value;
+		delete options.value;
+
+		this._super( options );
+
+		this.options.value = this._constrainedValue( value );
+		this._refreshValue();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "max" ) {
+			// Don't allow a max less than min
+			value = Math.max( this.min, value );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	_percentage: function() {
+		return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
+	},
+
+	_refreshValue: function() {
+		var value = this.options.value,
+			percentage = this._percentage();
+
+		this.valueDiv
+			.toggle( this.indeterminate || value > this.min )
+			.toggleClass( "ui-corner-right", value === this.options.max )
+			.width( percentage.toFixed(0) + "%" );
+
+		this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate );
+
+		if ( this.indeterminate ) {
+			this.element.removeAttr( "aria-valuenow" );
+			if ( !this.overlayDiv ) {
+				this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv );
+			}
+		} else {
+			this.element.attr({
+				"aria-valuemax": this.options.max,
+				"aria-valuenow": value
+			});
+			if ( this.overlayDiv ) {
+				this.overlayDiv.remove();
+				this.overlayDiv = null;
+			}
+		}
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+		if ( value === this.options.max ) {
+			this._trigger( "complete" );
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Selectable 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/selectable/
+ */
+
+
+var selectable = $.widget("ui.selectable", $.ui.mouse, {
+	version: "1.11.3",
+	options: {
+		appendTo: "body",
+		autoRefresh: true,
+		distance: 0,
+		filter: "*",
+		tolerance: "touch",
+
+		// callbacks
+		selected: null,
+		selecting: null,
+		start: null,
+		stop: null,
+		unselected: null,
+		unselecting: null
+	},
+	_create: function() {
+		var selectees,
+			that = this;
+
+		this.element.addClass("ui-selectable");
+
+		this.dragged = false;
+
+		// cache selectee children based on filter
+		this.refresh = function() {
+			selectees = $(that.options.filter, that.element[0]);
+			selectees.addClass("ui-selectee");
+			selectees.each(function() {
+				var $this = $(this),
+					pos = $this.offset();
+				$.data(this, "selectable-item", {
+					element: this,
+					$element: $this,
+					left: pos.left,
+					top: pos.top,
+					right: pos.left + $this.outerWidth(),
+					bottom: pos.top + $this.outerHeight(),
+					startselected: false,
+					selected: $this.hasClass("ui-selected"),
+					selecting: $this.hasClass("ui-selecting"),
+					unselecting: $this.hasClass("ui-unselecting")
+				});
+			});
+		};
+		this.refresh();
+
+		this.selectees = selectees.addClass("ui-selectee");
+
+		this._mouseInit();
+
+		this.helper = $("<div class='ui-selectable-helper'></div>");
+	},
+
+	_destroy: function() {
+		this.selectees
+			.removeClass("ui-selectee")
+			.removeData("selectable-item");
+		this.element
+			.removeClass("ui-selectable ui-selectable-disabled");
+		this._mouseDestroy();
+	},
+
+	_mouseStart: function(event) {
+		var that = this,
+			options = this.options;
+
+		this.opos = [ event.pageX, event.pageY ];
+
+		if (this.options.disabled) {
+			return;
+		}
+
+		this.selectees = $(options.filter, this.element[0]);
+
+		this._trigger("start", event);
+
+		$(options.appendTo).append(this.helper);
+		// position helper (lasso)
+		this.helper.css({
+			"left": event.pageX,
+			"top": event.pageY,
+			"width": 0,
+			"height": 0
+		});
+
+		if (options.autoRefresh) {
+			this.refresh();
+		}
+
+		this.selectees.filter(".ui-selected").each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.startselected = true;
+			if (!event.metaKey && !event.ctrlKey) {
+				selectee.$element.removeClass("ui-selected");
+				selectee.selected = false;
+				selectee.$element.addClass("ui-unselecting");
+				selectee.unselecting = true;
+				// selectable UNSELECTING callback
+				that._trigger("unselecting", event, {
+					unselecting: selectee.element
+				});
+			}
+		});
+
+		$(event.target).parents().addBack().each(function() {
+			var doSelect,
+				selectee = $.data(this, "selectable-item");
+			if (selectee) {
+				doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected");
+				selectee.$element
+					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
+					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
+				selectee.unselecting = !doSelect;
+				selectee.selecting = doSelect;
+				selectee.selected = doSelect;
+				// selectable (UN)SELECTING callback
+				if (doSelect) {
+					that._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				} else {
+					that._trigger("unselecting", event, {
+						unselecting: selectee.element
+					});
+				}
+				return false;
+			}
+		});
+
+	},
+
+	_mouseDrag: function(event) {
+
+		this.dragged = true;
+
+		if (this.options.disabled) {
+			return;
+		}
+
+		var tmp,
+			that = this,
+			options = this.options,
+			x1 = this.opos[0],
+			y1 = this.opos[1],
+			x2 = event.pageX,
+			y2 = event.pageY;
+
+		if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }
+		if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }
+		this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });
+
+		this.selectees.each(function() {
+			var selectee = $.data(this, "selectable-item"),
+				hit = false;
+
+			//prevent helper from being selected if appendTo: selectable
+			if (!selectee || selectee.element === that.element[0]) {
+				return;
+			}
+
+			if (options.tolerance === "touch") {
+				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
+			} else if (options.tolerance === "fit") {
+				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
+			}
+
+			if (hit) {
+				// SELECT
+				if (selectee.selected) {
+					selectee.$element.removeClass("ui-selected");
+					selectee.selected = false;
+				}
+				if (selectee.unselecting) {
+					selectee.$element.removeClass("ui-unselecting");
+					selectee.unselecting = false;
+				}
+				if (!selectee.selecting) {
+					selectee.$element.addClass("ui-selecting");
+					selectee.selecting = true;
+					// selectable SELECTING callback
+					that._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				}
+			} else {
+				// UNSELECT
+				if (selectee.selecting) {
+					if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
+						selectee.$element.removeClass("ui-selecting");
+						selectee.selecting = false;
+						selectee.$element.addClass("ui-selected");
+						selectee.selected = true;
+					} else {
+						selectee.$element.removeClass("ui-selecting");
+						selectee.selecting = false;
+						if (selectee.startselected) {
+							selectee.$element.addClass("ui-unselecting");
+							selectee.unselecting = true;
+						}
+						// selectable UNSELECTING callback
+						that._trigger("unselecting", event, {
+							unselecting: selectee.element
+						});
+					}
+				}
+				if (selectee.selected) {
+					if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
+						selectee.$element.removeClass("ui-selected");
+						selectee.selected = false;
+
+						selectee.$element.addClass("ui-unselecting");
+						selectee.unselecting = true;
+						// selectable UNSELECTING callback
+						that._trigger("unselecting", event, {
+							unselecting: selectee.element
+						});
+					}
+				}
+			}
+		});
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+		var that = this;
+
+		this.dragged = false;
+
+		$(".ui-unselecting", this.element[0]).each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.$element.removeClass("ui-unselecting");
+			selectee.unselecting = false;
+			selectee.startselected = false;
+			that._trigger("unselected", event, {
+				unselected: selectee.element
+			});
+		});
+		$(".ui-selecting", this.element[0]).each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.$element.removeClass("ui-selecting").addClass("ui-selected");
+			selectee.selecting = false;
+			selectee.selected = true;
+			selectee.startselected = true;
+			that._trigger("selected", event, {
+				selected: selectee.element
+			});
+		});
+		this._trigger("stop", event);
+
+		this.helper.remove();
+
+		return false;
+	}
+
+});
+
+
+/*!
+ * jQuery UI Selectmenu 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/selectmenu
+ */
+
+
+var selectmenu = $.widget( "ui.selectmenu", {
+	version: "1.11.3",
+	defaultElement: "<select>",
+	options: {
+		appendTo: null,
+		disabled: null,
+		icons: {
+			button: "ui-icon-triangle-1-s"
+		},
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		width: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		select: null
+	},
+
+	_create: function() {
+		var selectmenuId = this.element.uniqueId().attr( "id" );
+		this.ids = {
+			element: selectmenuId,
+			button: selectmenuId + "-button",
+			menu: selectmenuId + "-menu"
+		};
+
+		this._drawButton();
+		this._drawMenu();
+
+		if ( this.options.disabled ) {
+			this.disable();
+		}
+	},
+
+	_drawButton: function() {
+		var that = this;
+
+		// Associate existing label with the new button
+		this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button );
+		this._on( this.label, {
+			click: function( event ) {
+				this.button.focus();
+				event.preventDefault();
+			}
+		});
+
+		// Hide original select element
+		this.element.hide();
+
+		// Create button
+		this.button = $( "<span>", {
+			"class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
+			tabindex: this.options.disabled ? -1 : 0,
+			id: this.ids.button,
+			role: "combobox",
+			"aria-expanded": "false",
+			"aria-autocomplete": "list",
+			"aria-owns": this.ids.menu,
+			"aria-haspopup": "true"
+		})
+			.insertAfter( this.element );
+
+		$( "<span>", {
+			"class": "ui-icon " + this.options.icons.button
+		})
+			.prependTo( this.button );
+
+		this.buttonText = $( "<span>", {
+			"class": "ui-selectmenu-text"
+		})
+			.appendTo( this.button );
+
+		this._setText( this.buttonText, this.element.find( "option:selected" ).text() );
+		this._resizeButton();
+
+		this._on( this.button, this._buttonEvents );
+		this.button.one( "focusin", function() {
+
+			// Delay rendering the menu items until the button receives focus.
+			// The menu may have already been rendered via a programmatic open.
+			if ( !that.menuItems ) {
+				that._refreshMenu();
+			}
+		});
+		this._hoverable( this.button );
+		this._focusable( this.button );
+	},
+
+	_drawMenu: function() {
+		var that = this;
+
+		// Create menu
+		this.menu = $( "<ul>", {
+			"aria-hidden": "true",
+			"aria-labelledby": this.ids.button,
+			id: this.ids.menu
+		});
+
+		// Wrap menu
+		this.menuWrap = $( "<div>", {
+			"class": "ui-selectmenu-menu ui-front"
+		})
+			.append( this.menu )
+			.appendTo( this._appendTo() );
+
+		// Initialize menu widget
+		this.menuInstance = this.menu
+			.menu({
+				role: "listbox",
+				select: function( event, ui ) {
+					event.preventDefault();
+
+					// support: IE8
+					// If the item was selected via a click, the text selection
+					// will be destroyed in IE
+					that._setSelection();
+
+					that._select( ui.item.data( "ui-selectmenu-item" ), event );
+				},
+				focus: function( event, ui ) {
+					var item = ui.item.data( "ui-selectmenu-item" );
+
+					// Prevent inital focus from firing and check if its a newly focused item
+					if ( that.focusIndex != null && item.index !== that.focusIndex ) {
+						that._trigger( "focus", event, { item: item } );
+						if ( !that.isOpen ) {
+							that._select( item, event );
+						}
+					}
+					that.focusIndex = item.index;
+
+					that.button.attr( "aria-activedescendant",
+						that.menuItems.eq( item.index ).attr( "id" ) );
+				}
+			})
+			.menu( "instance" );
+
+		// Adjust menu styles to dropdown
+		this.menu
+			.addClass( "ui-corner-bottom" )
+			.removeClass( "ui-corner-all" );
+
+		// Don't close the menu on mouseleave
+		this.menuInstance._off( this.menu, "mouseleave" );
+
+		// Cancel the menu's collapseAll on document click
+		this.menuInstance._closeOnDocumentClick = function() {
+			return false;
+		};
+
+		// Selects often contain empty items, but never contain dividers
+		this.menuInstance._isDivider = function() {
+			return false;
+		};
+	},
+
+	refresh: function() {
+		this._refreshMenu();
+		this._setText( this.buttonText, this._getSelectedItem().text() );
+		if ( !this.options.width ) {
+			this._resizeButton();
+		}
+	},
+
+	_refreshMenu: function() {
+		this.menu.empty();
+
+		var item,
+			options = this.element.find( "option" );
+
+		if ( !options.length ) {
+			return;
+		}
+
+		this._parseOptions( options );
+		this._renderMenu( this.menu, this.items );
+
+		this.menuInstance.refresh();
+		this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" );
+
+		item = this._getSelectedItem();
+
+		// Update the menu to have the correct item focused
+		this.menuInstance.focus( null, item );
+		this._setAria( item.data( "ui-selectmenu-item" ) );
+
+		// Set disabled state
+		this._setOption( "disabled", this.element.prop( "disabled" ) );
+	},
+
+	open: function( event ) {
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		// If this is the first time the menu is being opened, render the items
+		if ( !this.menuItems ) {
+			this._refreshMenu();
+		} else {
+
+			// Menu clears focus on close, reset focus to selected item
+			this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" );
+			this.menuInstance.focus( null, this._getSelectedItem() );
+		}
+
+		this.isOpen = true;
+		this._toggleAttr();
+		this._resizeMenu();
+		this._position();
+
+		this._on( this.document, this._documentClick );
+
+		this._trigger( "open", event );
+	},
+
+	_position: function() {
+		this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
+	},
+
+	close: function( event ) {
+		if ( !this.isOpen ) {
+			return;
+		}
+
+		this.isOpen = false;
+		this._toggleAttr();
+
+		this.range = null;
+		this._off( this.document );
+
+		this._trigger( "close", event );
+	},
+
+	widget: function() {
+		return this.button;
+	},
+
+	menuWidget: function() {
+		return this.menu;
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this,
+			currentOptgroup = "";
+
+		$.each( items, function( index, item ) {
+			if ( item.optgroup !== currentOptgroup ) {
+				$( "<li>", {
+					"class": "ui-selectmenu-optgroup ui-menu-divider" +
+						( item.element.parent( "optgroup" ).prop( "disabled" ) ?
+							" ui-state-disabled" :
+							"" ),
+					text: item.optgroup
+				})
+					.appendTo( ul );
+
+				currentOptgroup = item.optgroup;
+			}
+
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-selectmenu-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		var li = $( "<li>" );
+
+		if ( item.disabled ) {
+			li.addClass( "ui-state-disabled" );
+		}
+		this._setText( li, item.label );
+
+		return li.appendTo( ul );
+	},
+
+	_setText: function( element, value ) {
+		if ( value ) {
+			element.text( value );
+		} else {
+			element.html( "&#160;" );
+		}
+	},
+
+	_move: function( direction, event ) {
+		var item, next,
+			filter = ".ui-menu-item";
+
+		if ( this.isOpen ) {
+			item = this.menuItems.eq( this.focusIndex );
+		} else {
+			item = this.menuItems.eq( this.element[ 0 ].selectedIndex );
+			filter += ":not(.ui-state-disabled)";
+		}
+
+		if ( direction === "first" || direction === "last" ) {
+			next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 );
+		} else {
+			next = item[ direction + "All" ]( filter ).eq( 0 );
+		}
+
+		if ( next.length ) {
+			this.menuInstance.focus( event, next );
+		}
+	},
+
+	_getSelectedItem: function() {
+		return this.menuItems.eq( this.element[ 0 ].selectedIndex );
+	},
+
+	_toggle: function( event ) {
+		this[ this.isOpen ? "close" : "open" ]( event );
+	},
+
+	_setSelection: function() {
+		var selection;
+
+		if ( !this.range ) {
+			return;
+		}
+
+		if ( window.getSelection ) {
+			selection = window.getSelection();
+			selection.removeAllRanges();
+			selection.addRange( this.range );
+
+		// support: IE8
+		} else {
+			this.range.select();
+		}
+
+		// support: IE
+		// Setting the text selection kills the button focus in IE, but
+		// restoring the focus doesn't kill the selection.
+		this.button.focus();
+	},
+
+	_documentClick: {
+		mousedown: function( event ) {
+			if ( !this.isOpen ) {
+				return;
+			}
+
+			if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" + this.ids.button ).length ) {
+				this.close( event );
+			}
+		}
+	},
+
+	_buttonEvents: {
+
+		// Prevent text selection from being reset when interacting with the selectmenu (#10144)
+		mousedown: function() {
+			var selection;
+
+			if ( window.getSelection ) {
+				selection = window.getSelection();
+				if ( selection.rangeCount ) {
+					this.range = selection.getRangeAt( 0 );
+				}
+
+			// support: IE8
+			} else {
+				this.range = document.selection.createRange();
+			}
+		},
+
+		click: function( event ) {
+			this._setSelection();
+			this._toggle( event );
+		},
+
+		keydown: function( event ) {
+			var preventDefault = true;
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.TAB:
+				case $.ui.keyCode.ESCAPE:
+					this.close( event );
+					preventDefault = false;
+					break;
+				case $.ui.keyCode.ENTER:
+					if ( this.isOpen ) {
+						this._selectFocusedItem( event );
+					}
+					break;
+				case $.ui.keyCode.UP:
+					if ( event.altKey ) {
+						this._toggle( event );
+					} else {
+						this._move( "prev", event );
+					}
+					break;
+				case $.ui.keyCode.DOWN:
+					if ( event.altKey ) {
+						this._toggle( event );
+					} else {
+						this._move( "next", event );
+					}
+					break;
+				case $.ui.keyCode.SPACE:
+					if ( this.isOpen ) {
+						this._selectFocusedItem( event );
+					} else {
+						this._toggle( event );
+					}
+					break;
+				case $.ui.keyCode.LEFT:
+					this._move( "prev", event );
+					break;
+				case $.ui.keyCode.RIGHT:
+					this._move( "next", event );
+					break;
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.PAGE_UP:
+					this._move( "first", event );
+					break;
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_DOWN:
+					this._move( "last", event );
+					break;
+				default:
+					this.menu.trigger( event );
+					preventDefault = false;
+			}
+
+			if ( preventDefault ) {
+				event.preventDefault();
+			}
+		}
+	},
+
+	_selectFocusedItem: function( event ) {
+		var item = this.menuItems.eq( this.focusIndex );
+		if ( !item.hasClass( "ui-state-disabled" ) ) {
+			this._select( item.data( "ui-selectmenu-item" ), event );
+		}
+	},
+
+	_select: function( item, event ) {
+		var oldIndex = this.element[ 0 ].selectedIndex;
+
+		// Change native select element
+		this.element[ 0 ].selectedIndex = item.index;
+		this._setText( this.buttonText, item.label );
+		this._setAria( item );
+		this._trigger( "select", event, { item: item } );
+
+		if ( item.index !== oldIndex ) {
+			this._trigger( "change", event, { item: item } );
+		}
+
+		this.close( event );
+	},
+
+	_setAria: function( item ) {
+		var id = this.menuItems.eq( item.index ).attr( "id" );
+
+		this.button.attr({
+			"aria-labelledby": id,
+			"aria-activedescendant": id
+		});
+		this.menu.attr( "aria-activedescendant", id );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.button.find( "span.ui-icon" )
+				.removeClass( this.options.icons.button )
+				.addClass( value.button );
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.menuWrap.appendTo( this._appendTo() );
+		}
+
+		if ( key === "disabled" ) {
+			this.menuInstance.option( "disabled", value );
+			this.button
+				.toggleClass( "ui-state-disabled", value )
+				.attr( "aria-disabled", value );
+
+			this.element.prop( "disabled", value );
+			if ( value ) {
+				this.button.attr( "tabindex", -1 );
+				this.close();
+			} else {
+				this.button.attr( "tabindex", 0 );
+			}
+		}
+
+		if ( key === "width" ) {
+			this._resizeButton();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_toggleAttr: function() {
+		this.button
+			.toggleClass( "ui-corner-top", this.isOpen )
+			.toggleClass( "ui-corner-all", !this.isOpen )
+			.attr( "aria-expanded", this.isOpen );
+		this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen );
+		this.menu.attr( "aria-hidden", !this.isOpen );
+	},
+
+	_resizeButton: function() {
+		var width = this.options.width;
+
+		if ( !width ) {
+			width = this.element.show().outerWidth();
+			this.element.hide();
+		}
+
+		this.button.outerWidth( width );
+	},
+
+	_resizeMenu: function() {
+		this.menu.outerWidth( Math.max(
+			this.button.outerWidth(),
+
+			// support: IE10
+			// IE10 wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping
+			this.menu.width( "" ).outerWidth() + 1
+		) );
+	},
+
+	_getCreateOptions: function() {
+		return { disabled: this.element.prop( "disabled" ) };
+	},
+
+	_parseOptions: function( options ) {
+		var data = [];
+		options.each(function( index, item ) {
+			var option = $( item ),
+				optgroup = option.parent( "optgroup" );
+			data.push({
+				element: option,
+				index: index,
+				value: option.val(),
+				label: option.text(),
+				optgroup: optgroup.attr( "label" ) || "",
+				disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
+			});
+		});
+		this.items = data;
+	},
+
+	_destroy: function() {
+		this.menuWrap.remove();
+		this.button.remove();
+		this.element.show();
+		this.element.removeUniqueId();
+		this.label.attr( "for", this.ids.element );
+	}
+});
+
+
+/*!
+ * jQuery UI Slider 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/slider/
+ */
+
+
+var slider = $.widget( "ui.slider", $.ui.mouse, {
+	version: "1.11.3",
+	widgetEventPrefix: "slide",
+
+	options: {
+		animate: false,
+		distance: 0,
+		max: 100,
+		min: 0,
+		orientation: "horizontal",
+		range: false,
+		step: 1,
+		value: 0,
+		values: null,
+
+		// callbacks
+		change: null,
+		slide: null,
+		start: null,
+		stop: null
+	},
+
+	// number of pages in a slider
+	// (how many times can you page up/down to go through the whole range)
+	numPages: 5,
+
+	_create: function() {
+		this._keySliding = false;
+		this._mouseSliding = false;
+		this._animateOff = true;
+		this._handleIndex = null;
+		this._detectOrientation();
+		this._mouseInit();
+		this._calculateNewMax();
+
+		this.element
+			.addClass( "ui-slider" +
+				" ui-slider-" + this.orientation +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all");
+
+		this._refresh();
+		this._setOption( "disabled", this.options.disabled );
+
+		this._animateOff = false;
+	},
+
+	_refresh: function() {
+		this._createRange();
+		this._createHandles();
+		this._setupEvents();
+		this._refreshValue();
+	},
+
+	_createHandles: function() {
+		var i, handleCount,
+			options = this.options,
+			existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
+			handle = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",
+			handles = [];
+
+		handleCount = ( options.values && options.values.length ) || 1;
+
+		if ( existingHandles.length > handleCount ) {
+			existingHandles.slice( handleCount ).remove();
+			existingHandles = existingHandles.slice( 0, handleCount );
+		}
+
+		for ( i = existingHandles.length; i < handleCount; i++ ) {
+			handles.push( handle );
+		}
+
+		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
+
+		this.handle = this.handles.eq( 0 );
+
+		this.handles.each(function( i ) {
+			$( this ).data( "ui-slider-handle-index", i );
+		});
+	},
+
+	_createRange: function() {
+		var options = this.options,
+			classes = "";
+
+		if ( options.range ) {
+			if ( options.range === true ) {
+				if ( !options.values ) {
+					options.values = [ this._valueMin(), this._valueMin() ];
+				} else if ( options.values.length && options.values.length !== 2 ) {
+					options.values = [ options.values[0], options.values[0] ];
+				} else if ( $.isArray( options.values ) ) {
+					options.values = options.values.slice(0);
+				}
+			}
+
+			if ( !this.range || !this.range.length ) {
+				this.range = $( "<div></div>" )
+					.appendTo( this.element );
+
+				classes = "ui-slider-range" +
+				// note: this isn't the most fittingly semantic framework class for this element,
+				// but worked best visually with a variety of themes
+				" ui-widget-header ui-corner-all";
+			} else {
+				this.range.removeClass( "ui-slider-range-min ui-slider-range-max" )
+					// Handle range switching from true to min/max
+					.css({
+						"left": "",
+						"bottom": ""
+					});
+			}
+
+			this.range.addClass( classes +
+				( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
+		} else {
+			if ( this.range ) {
+				this.range.remove();
+			}
+			this.range = null;
+		}
+	},
+
+	_setupEvents: function() {
+		this._off( this.handles );
+		this._on( this.handles, this._handleEvents );
+		this._hoverable( this.handles );
+		this._focusable( this.handles );
+	},
+
+	_destroy: function() {
+		this.handles.remove();
+		if ( this.range ) {
+			this.range.remove();
+		}
+
+		this.element
+			.removeClass( "ui-slider" +
+				" ui-slider-horizontal" +
+				" ui-slider-vertical" +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" );
+
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
+			that = this,
+			o = this.options;
+
+		if ( o.disabled ) {
+			return false;
+		}
+
+		this.elementSize = {
+			width: this.element.outerWidth(),
+			height: this.element.outerHeight()
+		};
+		this.elementOffset = this.element.offset();
+
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		this.handles.each(function( i ) {
+			var thisDistance = Math.abs( normValue - that.values(i) );
+			if (( distance > thisDistance ) ||
+				( distance === thisDistance &&
+					(i === that._lastChangedValue || that.values(i) === o.min ))) {
+				distance = thisDistance;
+				closestHandle = $( this );
+				index = i;
+			}
+		});
+
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
+		this._mouseSliding = true;
+
+		this._handleIndex = index;
+
+		closestHandle
+			.addClass( "ui-state-active" )
+			.focus();
+
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
+		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
+			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
+			top: event.pageY - offset.top -
+				( closestHandle.height() / 2 ) -
+				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
+				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
+				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
+		};
+
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
+		this._animateOff = true;
+		return true;
+	},
+
+	_mouseStart: function() {
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
+
+		this._slide( event, this._handleIndex, normValue );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		this.handles.removeClass( "ui-state-active" );
+		this._mouseSliding = false;
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
+		this._handleIndex = null;
+		this._clickOffset = null;
+		this._animateOff = false;
+
+		return false;
+	},
+
+	_detectOrientation: function() {
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
+	},
+
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
+
+		if ( this.orientation === "horizontal" ) {
+			pixelTotal = this.elementSize.width;
+			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
+		} else {
+			pixelTotal = this.elementSize.height;
+			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
+		}
+
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
+			percentMouse = 1 - percentMouse;
+		}
+
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
+
+		return this._trimAlignValue( valueMouse );
+	},
+
+	_start: function( event, index ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			value: this.value()
+		};
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
+			uiHash.values = this.values();
+		}
+		return this._trigger( "start", event, uiHash );
+	},
+
+	_slide: function( event, index, newVal ) {
+		var otherVal,
+			newValues,
+			allowed;
+
+		if ( this.options.values && this.options.values.length ) {
+			otherVal = this.values( index ? 0 : 1 );
+
+			if ( ( this.options.values.length === 2 && this.options.range === true ) &&
+					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
+				) {
+				newVal = otherVal;
+			}
+
+			if ( newVal !== this.values( index ) ) {
+				newValues = this.values();
+				newValues[ index ] = newVal;
+				// A slide can be canceled by returning false from the slide callback
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
+					value: newVal,
+					values: newValues
+				} );
+				otherVal = this.values( index ? 0 : 1 );
+				if ( allowed !== false ) {
+					this.values( index, newVal );
+				}
+			}
+		} else {
+			if ( newVal !== this.value() ) {
+				// A slide can be canceled by returning false from the slide callback
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
+					value: newVal
+				} );
+				if ( allowed !== false ) {
+					this.value( newVal );
+				}
+			}
+		}
+	},
+
+	_stop: function( event, index ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			value: this.value()
+		};
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
+			uiHash.values = this.values();
+		}
+
+		this._trigger( "stop", event, uiHash );
+	},
+
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
+			var uiHash = {
+				handle: this.handles[ index ],
+				value: this.value()
+			};
+			if ( this.options.values && this.options.values.length ) {
+				uiHash.value = this.values( index );
+				uiHash.values = this.values();
+			}
+
+			//store the last changed value index for reference when handles overlap
+			this._lastChangedValue = index;
+
+			this._trigger( "change", event, uiHash );
+		}
+	},
+
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, 0 );
+			return;
+		}
+
+		return this._value();
+	},
+
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
+
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, index );
+			return;
+		}
+
+		if ( arguments.length ) {
+			if ( $.isArray( arguments[ 0 ] ) ) {
+				vals = this.options.values;
+				newValues = arguments[ 0 ];
+				for ( i = 0; i < vals.length; i += 1 ) {
+					vals[ i ] = this._trimAlignValue( newValues[ i ] );
+					this._change( null, i );
+				}
+				this._refreshValue();
+			} else {
+				if ( this.options.values && this.options.values.length ) {
+					return this._values( index );
+				} else {
+					return this.value();
+				}
+			}
+		} else {
+			return this._values();
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var i,
+			valsLength = 0;
+
+		if ( key === "range" && this.options.range === true ) {
+			if ( value === "min" ) {
+				this.options.value = this._values( 0 );
+				this.options.values = null;
+			} else if ( value === "max" ) {
+				this.options.value = this._values( this.options.values.length - 1 );
+				this.options.values = null;
+			}
+		}
+
+		if ( $.isArray( this.options.values ) ) {
+			valsLength = this.options.values.length;
+		}
+
+		if ( key === "disabled" ) {
+			this.element.toggleClass( "ui-state-disabled", !!value );
+		}
+
+		this._super( key, value );
+
+		switch ( key ) {
+			case "orientation":
+				this._detectOrientation();
+				this.element
+					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					.addClass( "ui-slider-" + this.orientation );
+				this._refreshValue();
+
+				// Reset positioning from previous orientation
+				this.handles.css( value === "horizontal" ? "bottom" : "left", "" );
+				break;
+			case "value":
+				this._animateOff = true;
+				this._refreshValue();
+				this._change( null, 0 );
+				this._animateOff = false;
+				break;
+			case "values":
+				this._animateOff = true;
+				this._refreshValue();
+				for ( i = 0; i < valsLength; i += 1 ) {
+					this._change( null, i );
+				}
+				this._animateOff = false;
+				break;
+			case "step":
+			case "min":
+			case "max":
+				this._animateOff = true;
+				this._calculateNewMax();
+				this._refreshValue();
+				this._animateOff = false;
+				break;
+			case "range":
+				this._animateOff = true;
+				this._refresh();
+				this._animateOff = false;
+				break;
+		}
+	},
+
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
+	_value: function() {
+		var val = this.options.value;
+		val = this._trimAlignValue( val );
+
+		return val;
+	},
+
+	//internal values getter
+	// _values() returns array of values trimmed by min and max, aligned by step
+	// _values( index ) returns single value trimmed by min and max, aligned by step
+	_values: function( index ) {
+		var val,
+			vals,
+			i;
+
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
+
+			return val;
+		} else if ( this.options.values && this.options.values.length ) {
+			// .slice() creates a copy of the array
+			// this copy gets trimmed by min and max and then returned
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i += 1) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
+			}
+
+			return vals;
+		} else {
+			return [];
+		}
+	},
+
+	// returns the step-aligned value that val is closest to, between (inclusive) min and max
+	_trimAlignValue: function( val ) {
+		if ( val <= this._valueMin() ) {
+			return this._valueMin();
+		}
+		if ( val >= this._valueMax() ) {
+			return this._valueMax();
+		}
+		var step = ( this.options.step > 0 ) ? this.options.step : 1,
+			valModStep = (val - this._valueMin()) % step,
+			alignValue = val - valModStep;
+
+		if ( Math.abs(valModStep) * 2 >= step ) {
+			alignValue += ( valModStep > 0 ) ? step : ( -step );
+		}
+
+		// Since JavaScript has problems with large floats, round
+		// the final value to 5 digits after the decimal point (see #4124)
+		return parseFloat( alignValue.toFixed(5) );
+	},
+
+	_calculateNewMax: function() {
+		var max = this.options.max,
+			min = this._valueMin(),
+			step = this.options.step,
+			aboveMin = Math.floor( ( max - min ) / step ) * step;
+		max = aboveMin + min;
+		this.max = parseFloat( max.toFixed( this._precision() ) );
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_valueMin: function() {
+		return this.options.min;
+	},
+
+	_valueMax: function() {
+		return this.max;
+	},
+
+	_refreshValue: function() {
+		var lastValPercent, valPercent, value, valueMin, valueMax,
+			oRange = this.options.range,
+			o = this.options,
+			that = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			_set = {};
+
+		if ( this.options.values && this.options.values.length ) {
+			this.handles.each(function( i ) {
+				valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100;
+				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( that.options.range === true ) {
+					if ( that.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
+					} else {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
+					}
+				}
+				lastValPercent = valPercent;
+			});
+		} else {
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+
+			if ( oRange === "min" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "horizontal" ) {
+				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+			}
+			if ( oRange === "min" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "vertical" ) {
+				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+			}
+		}
+	},
+
+	_handleEvents: {
+		keydown: function( event ) {
+			var allowed, curVal, newVal, step,
+				index = $( event.target ).data( "ui-slider-handle-index" );
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_UP:
+				case $.ui.keyCode.PAGE_DOWN:
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					event.preventDefault();
+					if ( !this._keySliding ) {
+						this._keySliding = true;
+						$( event.target ).addClass( "ui-state-active" );
+						allowed = this._start( event, index );
+						if ( allowed === false ) {
+							return;
+						}
+					}
+					break;
+			}
+
+			step = this.options.step;
+			if ( this.options.values && this.options.values.length ) {
+				curVal = newVal = this.values( index );
+			} else {
+				curVal = newVal = this.value();
+			}
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+					newVal = this._valueMin();
+					break;
+				case $.ui.keyCode.END:
+					newVal = this._valueMax();
+					break;
+				case $.ui.keyCode.PAGE_UP:
+					newVal = this._trimAlignValue(
+						curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )
+					);
+					break;
+				case $.ui.keyCode.PAGE_DOWN:
+					newVal = this._trimAlignValue(
+						curVal - ( (this._valueMax() - this._valueMin()) / this.numPages ) );
+					break;
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+					if ( curVal === this._valueMax() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal + step );
+					break;
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					if ( curVal === this._valueMin() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal - step );
+					break;
+			}
+
+			this._slide( event, index, newVal );
+		},
+		keyup: function( event ) {
+			var index = $( event.target ).data( "ui-slider-handle-index" );
+
+			if ( this._keySliding ) {
+				this._keySliding = false;
+				this._stop( event, index );
+				this._change( event, index );
+				$( event.target ).removeClass( "ui-state-active" );
+			}
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Sortable 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/sortable/
+ */
+
+
+var sortable = $.widget("ui.sortable", $.ui.mouse, {
+	version: "1.11.3",
+	widgetEventPrefix: "sort",
+	ready: false,
+	options: {
+		appendTo: "parent",
+		axis: false,
+		connectWith: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		dropOnEmpty: true,
+		forcePlaceholderSize: false,
+		forceHelperSize: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		items: "> *",
+		opacity: false,
+		placeholder: false,
+		revert: false,
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		scope: "default",
+		tolerance: "intersect",
+		zIndex: 1000,
+
+		// callbacks
+		activate: null,
+		beforeStop: null,
+		change: null,
+		deactivate: null,
+		out: null,
+		over: null,
+		receive: null,
+		remove: null,
+		sort: null,
+		start: null,
+		stop: null,
+		update: null
+	},
+
+	_isOverAxis: function( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	},
+
+	_isFloating: function( item ) {
+		return (/left|right/).test(item.css("float")) || (/inline|table-cell/).test(item.css("display"));
+	},
+
+	_create: function() {
+
+		var o = this.options;
+		this.containerCache = {};
+		this.element.addClass("ui-sortable");
+
+		//Get the items
+		this.refresh();
+
+		//Let's determine if the items are being displayed horizontally
+		this.floating = this.items.length ? o.axis === "x" || this._isFloating(this.items[0].item) : false;
+
+		//Let's determine the parent's offset
+		this.offset = this.element.offset();
+
+		//Initialize mouse events for interaction
+		this._mouseInit();
+
+		this._setHandleClassName();
+
+		//We're ready to go
+		this.ready = true;
+
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		if ( key === "handle" ) {
+			this._setHandleClassName();
+		}
+	},
+
+	_setHandleClassName: function() {
+		this.element.find( ".ui-sortable-handle" ).removeClass( "ui-sortable-handle" );
+		$.each( this.items, function() {
+			( this.instance.options.handle ?
+				this.item.find( this.instance.options.handle ) : this.item )
+				.addClass( "ui-sortable-handle" );
+		});
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-sortable ui-sortable-disabled" )
+			.find( ".ui-sortable-handle" )
+				.removeClass( "ui-sortable-handle" );
+		this._mouseDestroy();
+
+		for ( var i = this.items.length - 1; i >= 0; i-- ) {
+			this.items[i].item.removeData(this.widgetName + "-item");
+		}
+
+		return this;
+	},
+
+	_mouseCapture: function(event, overrideHandle) {
+		var currentItem = null,
+			validHandle = false,
+			that = this;
+
+		if (this.reverting) {
+			return false;
+		}
+
+		if(this.options.disabled || this.options.type === "static") {
+			return false;
+		}
+
+		//We have to refresh the items data once first
+		this._refreshItems(event);
+
+		//Find out if the clicked node (or one of its parents) is a actual item in this.items
+		$(event.target).parents().each(function() {
+			if($.data(this, that.widgetName + "-item") === that) {
+				currentItem = $(this);
+				return false;
+			}
+		});
+		if($.data(event.target, that.widgetName + "-item") === that) {
+			currentItem = $(event.target);
+		}
+
+		if(!currentItem) {
+			return false;
+		}
+		if(this.options.handle && !overrideHandle) {
+			$(this.options.handle, currentItem).find("*").addBack().each(function() {
+				if(this === event.target) {
+					validHandle = true;
+				}
+			});
+			if(!validHandle) {
+				return false;
+			}
+		}
+
+		this.currentItem = currentItem;
+		this._removeCurrentsFromItems();
+		return true;
+
+	},
+
+	_mouseStart: function(event, overrideHandle, noActivation) {
+
+		var i, body,
+			o = this.options;
+
+		this.currentContainer = this;
+
+		//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
+		this.refreshPositions();
+
+		//Create and append the visible helper
+		this.helper = this._createHelper(event);
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Get the next scrolling parent
+		this.scrollParent = this.helper.scrollParent();
+
+		//The element's absolute position on the page minus margins
+		this.offset = this.currentItem.offset();
+		this.offset = {
+			top: this.offset.top - this.margins.top,
+			left: this.offset.left - this.margins.left
+		};
+
+		$.extend(this.offset, {
+			click: { //Where the click happened, relative to the element
+				left: event.pageX - this.offset.left,
+				top: event.pageY - this.offset.top
+			},
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
+		});
+
+		// Only after we got the offset, we can change the helper's position to absolute
+		// TODO: Still need to figure out a way to make relative sorting possible
+		this.helper.css("position", "absolute");
+		this.cssPosition = this.helper.css("position");
+
+		//Generate the original position
+		this.originalPosition = this._generatePosition(event);
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
+
+		//Cache the former DOM position
+		this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
+
+		//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
+		if(this.helper[0] !== this.currentItem[0]) {
+			this.currentItem.hide();
+		}
+
+		//Create the placeholder
+		this._createPlaceholder();
+
+		//Set a containment if given in the options
+		if(o.containment) {
+			this._setContainment();
+		}
+
+		if( o.cursor && o.cursor !== "auto" ) { // cursor option
+			body = this.document.find( "body" );
+
+			// support: IE
+			this.storedCursor = body.css( "cursor" );
+			body.css( "cursor", o.cursor );
+
+			this.storedStylesheet = $( "<style>*{ cursor: "+o.cursor+" !important; }</style>" ).appendTo( body );
+		}
+
+		if(o.opacity) { // opacity option
+			if (this.helper.css("opacity")) {
+				this._storedOpacity = this.helper.css("opacity");
+			}
+			this.helper.css("opacity", o.opacity);
+		}
+
+		if(o.zIndex) { // zIndex option
+			if (this.helper.css("zIndex")) {
+				this._storedZIndex = this.helper.css("zIndex");
+			}
+			this.helper.css("zIndex", o.zIndex);
+		}
+
+		//Prepare scrolling
+		if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") {
+			this.overflowOffset = this.scrollParent.offset();
+		}
+
+		//Call callbacks
+		this._trigger("start", event, this._uiHash());
+
+		//Recache the helper size
+		if(!this._preserveHelperProportions) {
+			this._cacheHelperProportions();
+		}
+
+
+		//Post "activate" events to possible containers
+		if( !noActivation ) {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
+			}
+		}
+
+		//Prepare possible droppables
+		if($.ui.ddmanager) {
+			$.ui.ddmanager.current = this;
+		}
+
+		if ($.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(this, event);
+		}
+
+		this.dragging = true;
+
+		this.helper.addClass("ui-sortable-helper");
+		this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
+		return true;
+
+	},
+
+	_mouseDrag: function(event) {
+		var i, item, itemElement, intersection,
+			o = this.options,
+			scrolled = false;
+
+		//Compute the helpers position
+		this.position = this._generatePosition(event);
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		if (!this.lastPositionAbs) {
+			this.lastPositionAbs = this.positionAbs;
+		}
+
+		//Do scrolling
+		if(this.options.scroll) {
+			if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") {
+
+				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
+					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
+				} else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) {
+					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
+				}
+
+				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
+					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
+				} else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) {
+					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
+				}
+
+			} else {
+
+				if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) {
+					scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed);
+				} else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) {
+					scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed);
+				}
+
+				if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) {
+					scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed);
+				} else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) {
+					scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed);
+				}
+
+			}
+
+			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
+				$.ui.ddmanager.prepareOffsets(this, event);
+			}
+		}
+
+		//Regenerate the absolute position used for position checks
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		//Set the helper position
+		if(!this.options.axis || this.options.axis !== "y") {
+			this.helper[0].style.left = this.position.left+"px";
+		}
+		if(!this.options.axis || this.options.axis !== "x") {
+			this.helper[0].style.top = this.position.top+"px";
+		}
+
+		//Rearrange
+		for (i = this.items.length - 1; i >= 0; i--) {
+
+			//Cache variables and intersection, continue if no intersection
+			item = this.items[i];
+			itemElement = item.item[0];
+			intersection = this._intersectsWithPointer(item);
+			if (!intersection) {
+				continue;
+			}
+
+			// Only put the placeholder inside the current Container, skip all
+			// items from other containers. This works because when moving
+			// an item from one container to another the
+			// currentContainer is switched before the placeholder is moved.
+			//
+			// Without this, moving items in "sub-sortables" can cause
+			// the placeholder to jitter between the outer and inner container.
+			if (item.instance !== this.currentContainer) {
+				continue;
+			}
+
+			// cannot intersect with itself
+			// no useless actions that have been done before
+			// no action if the item moved is the parent of the item checked
+			if (itemElement !== this.currentItem[0] &&
+				this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement &&
+				!$.contains(this.placeholder[0], itemElement) &&
+				(this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true)
+			) {
+
+				this.direction = intersection === 1 ? "down" : "up";
+
+				if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) {
+					this._rearrange(event, item);
+				} else {
+					break;
+				}
+
+				this._trigger("change", event, this._uiHash());
+				break;
+			}
+		}
+
+		//Post events to containers
+		this._contactContainers(event);
+
+		//Interconnect with droppables
+		if($.ui.ddmanager) {
+			$.ui.ddmanager.drag(this, event);
+		}
+
+		//Call callbacks
+		this._trigger("sort", event, this._uiHash());
+
+		this.lastPositionAbs = this.positionAbs;
+		return false;
+
+	},
+
+	_mouseStop: function(event, noPropagation) {
+
+		if(!event) {
+			return;
+		}
+
+		//If we are using droppables, inform the manager about the drop
+		if ($.ui.ddmanager && !this.options.dropBehaviour) {
+			$.ui.ddmanager.drop(this, event);
+		}
+
+		if(this.options.revert) {
+			var that = this,
+				cur = this.placeholder.offset(),
+				axis = this.options.axis,
+				animation = {};
+
+			if ( !axis || axis === "x" ) {
+				animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft);
+			}
+			if ( !axis || axis === "y" ) {
+				animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop);
+			}
+			this.reverting = true;
+			$(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() {
+				that._clear(event);
+			});
+		} else {
+			this._clear(event, noPropagation);
+		}
+
+		return false;
+
+	},
+
+	cancel: function() {
+
+		if(this.dragging) {
+
+			this._mouseUp({ target: null });
+
+			if(this.options.helper === "original") {
+				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
+			} else {
+				this.currentItem.show();
+			}
+
+			//Post deactivating events to containers
+			for (var i = this.containers.length - 1; i >= 0; i--){
+				this.containers[i]._trigger("deactivate", null, this._uiHash(this));
+				if(this.containers[i].containerCache.over) {
+					this.containers[i]._trigger("out", null, this._uiHash(this));
+					this.containers[i].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		if (this.placeholder) {
+			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
+			if(this.placeholder[0].parentNode) {
+				this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+			}
+			if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) {
+				this.helper.remove();
+			}
+
+			$.extend(this, {
+				helper: null,
+				dragging: false,
+				reverting: false,
+				_noFinalSort: null
+			});
+
+			if(this.domPosition.prev) {
+				$(this.domPosition.prev).after(this.currentItem);
+			} else {
+				$(this.domPosition.parent).prepend(this.currentItem);
+			}
+		}
+
+		return this;
+
+	},
+
+	serialize: function(o) {
+
+		var items = this._getItemsAsjQuery(o && o.connected),
+			str = [];
+		o = o || {};
+
+		$(items).each(function() {
+			var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/));
+			if (res) {
+				str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2]));
+			}
+		});
+
+		if(!str.length && o.key) {
+			str.push(o.key + "=");
+		}
+
+		return str.join("&");
+
+	},
+
+	toArray: function(o) {
+
+		var items = this._getItemsAsjQuery(o && o.connected),
+			ret = [];
+
+		o = o || {};
+
+		items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); });
+		return ret;
+
+	},
+
+	/* Be careful with the following core functions */
+	_intersectsWith: function(item) {
+
+		var x1 = this.positionAbs.left,
+			x2 = x1 + this.helperProportions.width,
+			y1 = this.positionAbs.top,
+			y2 = y1 + this.helperProportions.height,
+			l = item.left,
+			r = l + item.width,
+			t = item.top,
+			b = t + item.height,
+			dyClick = this.offset.click.top,
+			dxClick = this.offset.click.left,
+			isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ),
+			isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( this.options.tolerance === "pointer" ||
+			this.options.forcePointerForContainers ||
+			(this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"])
+		) {
+			return isOverElement;
+		} else {
+
+			return (l < x1 + (this.helperProportions.width / 2) && // Right Half
+				x2 - (this.helperProportions.width / 2) < r && // Left Half
+				t < y1 + (this.helperProportions.height / 2) && // Bottom Half
+				y2 - (this.helperProportions.height / 2) < b ); // Top Half
+
+		}
+	},
+
+	_intersectsWithPointer: function(item) {
+
+		var isOverElementHeight = (this.options.axis === "x") || this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
+			isOverElementWidth = (this.options.axis === "y") || this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
+			isOverElement = isOverElementHeight && isOverElementWidth,
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if (!isOverElement) {
+			return false;
+		}
+
+		return this.floating ?
+			( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 )
+			: ( verticalDirection && (verticalDirection === "down" ? 2 : 1) );
+
+	},
+
+	_intersectsWithSides: function(item) {
+
+		var isOverBottomHalf = this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
+			isOverRightHalf = this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if (this.floating && horizontalDirection) {
+			return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf));
+		} else {
+			return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf));
+		}
+
+	},
+
+	_getDragVerticalDirection: function() {
+		var delta = this.positionAbs.top - this.lastPositionAbs.top;
+		return delta !== 0 && (delta > 0 ? "down" : "up");
+	},
+
+	_getDragHorizontalDirection: function() {
+		var delta = this.positionAbs.left - this.lastPositionAbs.left;
+		return delta !== 0 && (delta > 0 ? "right" : "left");
+	},
+
+	refresh: function(event) {
+		this._refreshItems(event);
+		this._setHandleClassName();
+		this.refreshPositions();
+		return this;
+	},
+
+	_connectWith: function() {
+		var options = this.options;
+		return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith;
+	},
+
+	_getItemsAsjQuery: function(connected) {
+
+		var i, j, cur, inst,
+			items = [],
+			queries = [],
+			connectWith = this._connectWith();
+
+		if(connectWith && connected) {
+			for (i = connectWith.length - 1; i >= 0; i--){
+				cur = $(connectWith[i], this.document[0]);
+				for ( j = cur.length - 1; j >= 0; j--){
+					inst = $.data(cur[j], this.widgetFullName);
+					if(inst && inst !== this && !inst.options.disabled) {
+						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]);
+					}
+				}
+			}
+		}
+
+		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
+
+		function addItems() {
+			items.push( this );
+		}
+		for (i = queries.length - 1; i >= 0; i--){
+			queries[i][0].each( addItems );
+		}
+
+		return $(items);
+
+	},
+
+	_removeCurrentsFromItems: function() {
+
+		var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
+
+		this.items = $.grep(this.items, function (item) {
+			for (var j=0; j < list.length; j++) {
+				if(list[j] === item.item[0]) {
+					return false;
+				}
+			}
+			return true;
+		});
+
+	},
+
+	_refreshItems: function(event) {
+
+		this.items = [];
+		this.containers = [this];
+
+		var i, j, cur, inst, targetData, _queries, item, queriesLength,
+			items = this.items,
+			queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]],
+			connectWith = this._connectWith();
+
+		if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down
+			for (i = connectWith.length - 1; i >= 0; i--){
+				cur = $(connectWith[i], this.document[0]);
+				for (j = cur.length - 1; j >= 0; j--){
+					inst = $.data(cur[j], this.widgetFullName);
+					if(inst && inst !== this && !inst.options.disabled) {
+						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
+						this.containers.push(inst);
+					}
+				}
+			}
+		}
+
+		for (i = queries.length - 1; i >= 0; i--) {
+			targetData = queries[i][1];
+			_queries = queries[i][0];
+
+			for (j=0, queriesLength = _queries.length; j < queriesLength; j++) {
+				item = $(_queries[j]);
+
+				item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager)
+
+				items.push({
+					item: item,
+					instance: targetData,
+					width: 0, height: 0,
+					left: 0, top: 0
+				});
+			}
+		}
+
+	},
+
+	refreshPositions: function(fast) {
+
+		//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
+		if(this.offsetParent && this.helper) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		var i, item, t, p;
+
+		for (i = this.items.length - 1; i >= 0; i--){
+			item = this.items[i];
+
+			//We ignore calculating positions of all connected containers when we're not over them
+			if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) {
+				continue;
+			}
+
+			t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
+
+			if (!fast) {
+				item.width = t.outerWidth();
+				item.height = t.outerHeight();
+			}
+
+			p = t.offset();
+			item.left = p.left;
+			item.top = p.top;
+		}
+
+		if(this.options.custom && this.options.custom.refreshContainers) {
+			this.options.custom.refreshContainers.call(this);
+		} else {
+			for (i = this.containers.length - 1; i >= 0; i--){
+				p = this.containers[i].element.offset();
+				this.containers[i].containerCache.left = p.left;
+				this.containers[i].containerCache.top = p.top;
+				this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
+				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
+			}
+		}
+
+		return this;
+	},
+
+	_createPlaceholder: function(that) {
+		that = that || this;
+		var className,
+			o = that.options;
+
+		if(!o.placeholder || o.placeholder.constructor === String) {
+			className = o.placeholder;
+			o.placeholder = {
+				element: function() {
+
+					var nodeName = that.currentItem[0].nodeName.toLowerCase(),
+						element = $( "<" + nodeName + ">", that.document[0] )
+							.addClass(className || that.currentItem[0].className+" ui-sortable-placeholder")
+							.removeClass("ui-sortable-helper");
+
+					if ( nodeName === "tr" ) {
+						that.currentItem.children().each(function() {
+							$( "<td>&#160;</td>", that.document[0] )
+								.attr( "colspan", $( this ).attr( "colspan" ) || 1 )
+								.appendTo( element );
+						});
+					} else if ( nodeName === "img" ) {
+						element.attr( "src", that.currentItem.attr( "src" ) );
+					}
+
+					if ( !className ) {
+						element.css( "visibility", "hidden" );
+					}
+
+					return element;
+				},
+				update: function(container, p) {
+
+					// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
+					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
+					if(className && !o.forcePlaceholderSize) {
+						return;
+					}
+
+					//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
+					if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); }
+					if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); }
+				}
+			};
+		}
+
+		//Create the placeholder
+		that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));
+
+		//Append it after the actual current item
+		that.currentItem.after(that.placeholder);
+
+		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
+		o.placeholder.update(that, that.placeholder);
+
+	},
+
+	_contactContainers: function(event) {
+		var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis,
+			innermostContainer = null,
+			innermostIndex = null;
+
+		// get innermost container that intersects with item
+		for (i = this.containers.length - 1; i >= 0; i--) {
+
+			// never consider a container that's located within the item itself
+			if($.contains(this.currentItem[0], this.containers[i].element[0])) {
+				continue;
+			}
+
+			if(this._intersectsWith(this.containers[i].containerCache)) {
+
+				// if we've already found a container and it's more "inner" than this, then continue
+				if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {
+					continue;
+				}
+
+				innermostContainer = this.containers[i];
+				innermostIndex = i;
+
+			} else {
+				// container doesn't intersect. trigger "out" event if necessary
+				if(this.containers[i].containerCache.over) {
+					this.containers[i]._trigger("out", event, this._uiHash(this));
+					this.containers[i].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		// if no intersecting containers found, return
+		if(!innermostContainer) {
+			return;
+		}
+
+		// move the item into the container if it's not there already
+		if(this.containers.length === 1) {
+			if (!this.containers[innermostIndex].containerCache.over) {
+				this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
+				this.containers[innermostIndex].containerCache.over = 1;
+			}
+		} else {
+
+			//When entering a new container, we will find the item with the least distance and append our item near it
+			dist = 10000;
+			itemWithLeastDistance = null;
+			floating = innermostContainer.floating || this._isFloating(this.currentItem);
+			posProperty = floating ? "left" : "top";
+			sizeProperty = floating ? "width" : "height";
+			axis = floating ? "clientX" : "clientY";
+
+			for (j = this.items.length - 1; j >= 0; j--) {
+				if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) {
+					continue;
+				}
+				if(this.items[j].item[0] === this.currentItem[0]) {
+					continue;
+				}
+
+				cur = this.items[j].item.offset()[posProperty];
+				nearBottom = false;
+				if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {
+					nearBottom = true;
+				}
+
+				if ( Math.abs( event[ axis ] - cur ) < dist ) {
+					dist = Math.abs( event[ axis ] - cur );
+					itemWithLeastDistance = this.items[ j ];
+					this.direction = nearBottom ? "up": "down";
+				}
+			}
+
+			//Check if dropOnEmpty is enabled
+			if(!itemWithLeastDistance && !this.options.dropOnEmpty) {
+				return;
+			}
+
+			if(this.currentContainer === this.containers[innermostIndex]) {
+				if ( !this.currentContainer.containerCache.over ) {
+					this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() );
+					this.currentContainer.containerCache.over = 1;
+				}
+				return;
+			}
+
+			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
+			this._trigger("change", event, this._uiHash());
+			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
+			this.currentContainer = this.containers[innermostIndex];
+
+			//Update the placeholder
+			this.options.placeholder.update(this.currentContainer, this.placeholder);
+
+			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
+			this.containers[innermostIndex].containerCache.over = 1;
+		}
+
+
+	},
+
+	_createHelper: function(event) {
+
+		var o = this.options,
+			helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem);
+
+		//Add the helper to the DOM if that didn't happen already
+		if(!helper.parents("body").length) {
+			$(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
+		}
+
+		if(helper[0] === this.currentItem[0]) {
+			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
+		}
+
+		if(!helper[0].style.width || o.forceHelperSize) {
+			helper.width(this.currentItem.width());
+		}
+		if(!helper[0].style.height || o.forceHelperSize) {
+			helper.height(this.currentItem.height());
+		}
+
+		return helper;
+
+	},
+
+	_adjustOffsetFromHelper: function(obj) {
+		if (typeof obj === "string") {
+			obj = obj.split(" ");
+		}
+		if ($.isArray(obj)) {
+			obj = {left: +obj[0], top: +obj[1] || 0};
+		}
+		if ("left" in obj) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ("right" in obj) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ("top" in obj) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ("bottom" in obj) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_getParentOffset: function() {
+
+
+		//Get the offsetParent and cache its position
+		this.offsetParent = this.helper.offsetParent();
+		var po = this.offsetParent.offset();
+
+		// This is a special case where we need to modify a offset calculated on start, since the following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
+		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
+		if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		// This needs to be actually done for all browsers, since pageX/pageY includes this information
+		// with an ugly IE fix
+		if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
+			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+
+		if(this.cssPosition === "relative") {
+			var p = this.currentItem.position();
+			return {
+				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
+				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
+			};
+		} else {
+			return { top: 0, left: 0 };
+		}
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
+			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var ce, co, over,
+			o = this.options;
+		if(o.containment === "parent") {
+			o.containment = this.helper[0].parentNode;
+		}
+		if(o.containment === "document" || o.containment === "window") {
+			this.containment = [
+				0 - this.offset.relative.left - this.offset.parent.left,
+				0 - this.offset.relative.top - this.offset.parent.top,
+				o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left,
+				(o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+		if(!(/^(document|window|parent)$/).test(o.containment)) {
+			ce = $(o.containment)[0];
+			co = $(o.containment).offset();
+			over = ($(ce).css("overflow") !== "hidden");
+
+			this.containment = [
+				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
+				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
+				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
+				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+	},
+
+	_convertPositionTo: function(d, pos) {
+
+		if(!pos) {
+			pos = this.position;
+		}
+		var mod = d === "absolute" ? 1 : -1,
+			scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
+			scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
+
+		return {
+			top: (
+				pos.top	+																// The absolute mouse position
+				this.offset.relative.top * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top * mod -											// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
+			),
+			left: (
+				pos.left +																// The absolute mouse position
+				this.offset.relative.left * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left * mod	-										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
+			)
+		};
+
+	},
+
+	_generatePosition: function(event) {
+
+		var top, left,
+			o = this.options,
+			pageX = event.pageX,
+			pageY = event.pageY,
+			scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
+
+		// This is another very weird special case that only happens for relative elements:
+		// 1. If the css position is relative
+		// 2. and the scroll parent is the document or similar to the offset parent
+		// we have to refresh the relative offset during the scroll so there are no jumps
+		if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) {
+			this.offset.relative = this._getRelativeOffset();
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
+
+			if(this.containment) {
+				if(event.pageX - this.offset.click.left < this.containment[0]) {
+					pageX = this.containment[0] + this.offset.click.left;
+				}
+				if(event.pageY - this.offset.click.top < this.containment[1]) {
+					pageY = this.containment[1] + this.offset.click.top;
+				}
+				if(event.pageX - this.offset.click.left > this.containment[2]) {
+					pageX = this.containment[2] + this.offset.click.left;
+				}
+				if(event.pageY - this.offset.click.top > this.containment[3]) {
+					pageY = this.containment[3] + this.offset.click.top;
+				}
+			}
+
+			if(o.grid) {
+				top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
+				pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
+
+				left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
+				pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
+			}
+
+		}
+
+		return {
+			top: (
+				pageY -																// The absolute mouse position
+				this.offset.click.top -													// Click offset (relative to the element)
+				this.offset.relative.top	-											// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top +												// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
+			),
+			left: (
+				pageX -																// The absolute mouse position
+				this.offset.click.left -												// Click offset (relative to the element)
+				this.offset.relative.left	-											// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left +												// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
+			)
+		};
+
+	},
+
+	_rearrange: function(event, i, a, hardRefresh) {
+
+		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling));
+
+		//Various things done here to improve the performance:
+		// 1. we create a setTimeout, that calls refreshPositions
+		// 2. on the instance, we have a counter variable, that get's higher after every append
+		// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
+		// 4. this lets only the last addition to the timeout stack through
+		this.counter = this.counter ? ++this.counter : 1;
+		var counter = this.counter;
+
+		this._delay(function() {
+			if(counter === this.counter) {
+				this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
+			}
+		});
+
+	},
+
+	_clear: function(event, noPropagation) {
+
+		this.reverting = false;
+		// We delay all events that have to be triggered to after the point where the placeholder has been removed and
+		// everything else normalized again
+		var i,
+			delayedTriggers = [];
+
+		// We first have to update the dom position of the actual currentItem
+		// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
+		if(!this._noFinalSort && this.currentItem.parent().length) {
+			this.placeholder.before(this.currentItem);
+		}
+		this._noFinalSort = null;
+
+		if(this.helper[0] === this.currentItem[0]) {
+			for(i in this._storedCSS) {
+				if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") {
+					this._storedCSS[i] = "";
+				}
+			}
+			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
+		} else {
+			this.currentItem.show();
+		}
+
+		if(this.fromOutside && !noPropagation) {
+			delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
+		}
+		if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) {
+			delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
+		}
+
+		// Check if the items Container has Changed and trigger appropriate
+		// events.
+		if (this !== this.currentContainer) {
+			if(!noPropagation) {
+				delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
+				delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.currentContainer));
+				delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.currentContainer));
+			}
+		}
+
+
+		//Post events to containers
+		function delayEvent( type, instance, container ) {
+			return function( event ) {
+				container._trigger( type, event, instance._uiHash( instance ) );
+			};
+		}
+		for (i = this.containers.length - 1; i >= 0; i--){
+			if (!noPropagation) {
+				delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
+			}
+			if(this.containers[i].containerCache.over) {
+				delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
+				this.containers[i].containerCache.over = 0;
+			}
+		}
+
+		//Do what was originally in plugins
+		if ( this.storedCursor ) {
+			this.document.find( "body" ).css( "cursor", this.storedCursor );
+			this.storedStylesheet.remove();
+		}
+		if(this._storedOpacity) {
+			this.helper.css("opacity", this._storedOpacity);
+		}
+		if(this._storedZIndex) {
+			this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex);
+		}
+
+		this.dragging = false;
+
+		if(!noPropagation) {
+			this._trigger("beforeStop", event, this._uiHash());
+		}
+
+		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
+		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+
+		if ( !this.cancelHelperRemoval ) {
+			if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+				this.helper.remove();
+			}
+			this.helper = null;
+		}
+
+		if(!noPropagation) {
+			for (i=0; i < delayedTriggers.length; i++) {
+				delayedTriggers[i].call(this, event);
+			} //Trigger all delayed events
+			this._trigger("stop", event, this._uiHash());
+		}
+
+		this.fromOutside = false;
+		return !this.cancelHelperRemoval;
+
+	},
+
+	_trigger: function() {
+		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
+			this.cancel();
+		}
+	},
+
+	_uiHash: function(_inst) {
+		var inst = _inst || this;
+		return {
+			helper: inst.helper,
+			placeholder: inst.placeholder || $([]),
+			position: inst.position,
+			originalPosition: inst.originalPosition,
+			offset: inst.positionAbs,
+			item: inst.currentItem,
+			sender: _inst ? _inst.element : null
+		};
+	}
+
+});
+
+
+/*!
+ * jQuery UI Spinner 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/spinner/
+ */
+
+
+function spinner_modifier( fn ) {
+	return function() {
+		var previous = this.element.val();
+		fn.apply( this, arguments );
+		this._refresh();
+		if ( previous !== this.element.val() ) {
+			this._trigger( "change" );
+		}
+	};
+}
+
+var spinner = $.widget( "ui.spinner", {
+	version: "1.11.3",
+	defaultElement: "<input>",
+	widgetEventPrefix: "spin",
+	options: {
+		culture: null,
+		icons: {
+			down: "ui-icon-triangle-1-s",
+			up: "ui-icon-triangle-1-n"
+		},
+		incremental: true,
+		max: null,
+		min: null,
+		numberFormat: null,
+		page: 10,
+		step: 1,
+
+		change: null,
+		spin: null,
+		start: null,
+		stop: null
+	},
+
+	_create: function() {
+		// handle string values that need to be parsed
+		this._setOption( "max", this.options.max );
+		this._setOption( "min", this.options.min );
+		this._setOption( "step", this.options.step );
+
+		// Only format if there is a value, prevents the field from being marked
+		// as invalid in Firefox, see #9573.
+		if ( this.value() !== "" ) {
+			// Format the value, but don't constrain.
+			this._value( this.element.val(), true );
+		}
+
+		this._draw();
+		this._on( this._events );
+		this._refresh();
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_getCreateOptions: function() {
+		var options = {},
+			element = this.element;
+
+		$.each( [ "min", "max", "step" ], function( i, option ) {
+			var value = element.attr( option );
+			if ( value !== undefined && value.length ) {
+				options[ option ] = value;
+			}
+		});
+
+		return options;
+	},
+
+	_events: {
+		keydown: function( event ) {
+			if ( this._start( event ) && this._keydown( event ) ) {
+				event.preventDefault();
+			}
+		},
+		keyup: "_stop",
+		focus: function() {
+			this.previous = this.element.val();
+		},
+		blur: function( event ) {
+			if ( this.cancelBlur ) {
+				delete this.cancelBlur;
+				return;
+			}
+
+			this._stop();
+			this._refresh();
+			if ( this.previous !== this.element.val() ) {
+				this._trigger( "change", event );
+			}
+		},
+		mousewheel: function( event, delta ) {
+			if ( !delta ) {
+				return;
+			}
+			if ( !this.spinning && !this._start( event ) ) {
+				return false;
+			}
+
+			this._spin( (delta > 0 ? 1 : -1) * this.options.step, event );
+			clearTimeout( this.mousewheelTimer );
+			this.mousewheelTimer = this._delay(function() {
+				if ( this.spinning ) {
+					this._stop( event );
+				}
+			}, 100 );
+			event.preventDefault();
+		},
+		"mousedown .ui-spinner-button": function( event ) {
+			var previous;
+
+			// We never want the buttons to have focus; whenever the user is
+			// interacting with the spinner, the focus should be on the input.
+			// If the input is focused then this.previous is properly set from
+			// when the input first received focus. If the input is not focused
+			// then we need to set this.previous based on the value before spinning.
+			previous = this.element[0] === this.document[0].activeElement ?
+				this.previous : this.element.val();
+			function checkFocus() {
+				var isActive = this.element[0] === this.document[0].activeElement;
+				if ( !isActive ) {
+					this.element.focus();
+					this.previous = previous;
+					// support: IE
+					// IE sets focus asynchronously, so we need to check if focus
+					// moved off of the input because the user clicked on the button.
+					this._delay(function() {
+						this.previous = previous;
+					});
+				}
+			}
+
+			// ensure focus is on (or stays on) the text field
+			event.preventDefault();
+			checkFocus.call( this );
+
+			// support: IE
+			// IE doesn't prevent moving focus even with event.preventDefault()
+			// so we set a flag to know when we should ignore the blur event
+			// and check (again) if focus moved off of the input.
+			this.cancelBlur = true;
+			this._delay(function() {
+				delete this.cancelBlur;
+				checkFocus.call( this );
+			});
+
+			if ( this._start( event ) === false ) {
+				return;
+			}
+
+			this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		"mouseup .ui-spinner-button": "_stop",
+		"mouseenter .ui-spinner-button": function( event ) {
+			// button will add ui-state-active if mouse was down while mouseleave and kept down
+			if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
+				return;
+			}
+
+			if ( this._start( event ) === false ) {
+				return false;
+			}
+			this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		// TODO: do we really want to consider this a stop?
+		// shouldn't we just stop the repeater and wait until mouseup before
+		// we trigger the stop event?
+		"mouseleave .ui-spinner-button": "_stop"
+	},
+
+	_draw: function() {
+		var uiSpinner = this.uiSpinner = this.element
+			.addClass( "ui-spinner-input" )
+			.attr( "autocomplete", "off" )
+			.wrap( this._uiSpinnerHtml() )
+			.parent()
+				// add buttons
+				.append( this._buttonHtml() );
+
+		this.element.attr( "role", "spinbutton" );
+
+		// button bindings
+		this.buttons = uiSpinner.find( ".ui-spinner-button" )
+			.attr( "tabIndex", -1 )
+			.button()
+			.removeClass( "ui-corner-all" );
+
+		// IE 6 doesn't understand height: 50% for the buttons
+		// unless the wrapper has an explicit height
+		if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) &&
+				uiSpinner.height() > 0 ) {
+			uiSpinner.height( uiSpinner.height() );
+		}
+
+		// disable spinner if element was already disabled
+		if ( this.options.disabled ) {
+			this.disable();
+		}
+	},
+
+	_keydown: function( event ) {
+		var options = this.options,
+			keyCode = $.ui.keyCode;
+
+		switch ( event.keyCode ) {
+		case keyCode.UP:
+			this._repeat( null, 1, event );
+			return true;
+		case keyCode.DOWN:
+			this._repeat( null, -1, event );
+			return true;
+		case keyCode.PAGE_UP:
+			this._repeat( null, options.page, event );
+			return true;
+		case keyCode.PAGE_DOWN:
+			this._repeat( null, -options.page, event );
+			return true;
+		}
+
+		return false;
+	},
+
+	_uiSpinnerHtml: function() {
+		return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>";
+	},
+
+	_buttonHtml: function() {
+		return "" +
+			"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" +
+				"<span class='ui-icon " + this.options.icons.up + "'>&#9650;</span>" +
+			"</a>" +
+			"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" +
+				"<span class='ui-icon " + this.options.icons.down + "'>&#9660;</span>" +
+			"</a>";
+	},
+
+	_start: function( event ) {
+		if ( !this.spinning && this._trigger( "start", event ) === false ) {
+			return false;
+		}
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+		this.spinning = true;
+		return true;
+	},
+
+	_repeat: function( i, steps, event ) {
+		i = i || 500;
+
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			this._repeat( 40, steps, event );
+		}, i );
+
+		this._spin( steps * this.options.step, event );
+	},
+
+	_spin: function( step, event ) {
+		var value = this.value() || 0;
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+
+		value = this._adjustValue( value + step * this._increment( this.counter ) );
+
+		if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) {
+			this._value( value );
+			this.counter++;
+		}
+	},
+
+	_increment: function( i ) {
+		var incremental = this.options.incremental;
+
+		if ( incremental ) {
+			return $.isFunction( incremental ) ?
+				incremental( i ) :
+				Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );
+		}
+
+		return 1;
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_adjustValue: function( value ) {
+		var base, aboveMin,
+			options = this.options;
+
+		// make sure we're at a valid step
+		// - find out where we are relative to the base (min or 0)
+		base = options.min !== null ? options.min : 0;
+		aboveMin = value - base;
+		// - round to the nearest step
+		aboveMin = Math.round(aboveMin / options.step) * options.step;
+		// - rounding is based on 0, so adjust back to our base
+		value = base + aboveMin;
+
+		// fix precision from bad JS floating point math
+		value = parseFloat( value.toFixed( this._precision() ) );
+
+		// clamp the value
+		if ( options.max !== null && value > options.max) {
+			return options.max;
+		}
+		if ( options.min !== null && value < options.min ) {
+			return options.min;
+		}
+
+		return value;
+	},
+
+	_stop: function( event ) {
+		if ( !this.spinning ) {
+			return;
+		}
+
+		clearTimeout( this.timer );
+		clearTimeout( this.mousewheelTimer );
+		this.counter = 0;
+		this.spinning = false;
+		this._trigger( "stop", event );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "culture" || key === "numberFormat" ) {
+			var prevValue = this._parse( this.element.val() );
+			this.options[ key ] = value;
+			this.element.val( this._format( prevValue ) );
+			return;
+		}
+
+		if ( key === "max" || key === "min" || key === "step" ) {
+			if ( typeof value === "string" ) {
+				value = this._parse( value );
+			}
+		}
+		if ( key === "icons" ) {
+			this.buttons.first().find( ".ui-icon" )
+				.removeClass( this.options.icons.up )
+				.addClass( value.up );
+			this.buttons.last().find( ".ui-icon" )
+				.removeClass( this.options.icons.down )
+				.addClass( value.down );
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this.widget().toggleClass( "ui-state-disabled", !!value );
+			this.element.prop( "disabled", !!value );
+			this.buttons.button( value ? "disable" : "enable" );
+		}
+	},
+
+	_setOptions: spinner_modifier(function( options ) {
+		this._super( options );
+	}),
+
+	_parse: function( val ) {
+		if ( typeof val === "string" && val !== "" ) {
+			val = window.Globalize && this.options.numberFormat ?
+				Globalize.parseFloat( val, 10, this.options.culture ) : +val;
+		}
+		return val === "" || isNaN( val ) ? null : val;
+	},
+
+	_format: function( value ) {
+		if ( value === "" ) {
+			return "";
+		}
+		return window.Globalize && this.options.numberFormat ?
+			Globalize.format( value, this.options.numberFormat, this.options.culture ) :
+			value;
+	},
+
+	_refresh: function() {
+		this.element.attr({
+			"aria-valuemin": this.options.min,
+			"aria-valuemax": this.options.max,
+			// TODO: what should we do with values that can't be parsed?
+			"aria-valuenow": this._parse( this.element.val() )
+		});
+	},
+
+	isValid: function() {
+		var value = this.value();
+
+		// null is invalid
+		if ( value === null ) {
+			return false;
+		}
+
+		// if value gets adjusted, it's invalid
+		return value === this._adjustValue( value );
+	},
+
+	// update the value without triggering change
+	_value: function( value, allowAny ) {
+		var parsed;
+		if ( value !== "" ) {
+			parsed = this._parse( value );
+			if ( parsed !== null ) {
+				if ( !allowAny ) {
+					parsed = this._adjustValue( parsed );
+				}
+				value = this._format( parsed );
+			}
+		}
+		this.element.val( value );
+		this._refresh();
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-spinner-input" )
+			.prop( "disabled", false )
+			.removeAttr( "autocomplete" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-valuemin" )
+			.removeAttr( "aria-valuemax" )
+			.removeAttr( "aria-valuenow" );
+		this.uiSpinner.replaceWith( this.element );
+	},
+
+	stepUp: spinner_modifier(function( steps ) {
+		this._stepUp( steps );
+	}),
+	_stepUp: function( steps ) {
+		if ( this._start() ) {
+			this._spin( (steps || 1) * this.options.step );
+			this._stop();
+		}
+	},
+
+	stepDown: spinner_modifier(function( steps ) {
+		this._stepDown( steps );
+	}),
+	_stepDown: function( steps ) {
+		if ( this._start() ) {
+			this._spin( (steps || 1) * -this.options.step );
+			this._stop();
+		}
+	},
+
+	pageUp: spinner_modifier(function( pages ) {
+		this._stepUp( (pages || 1) * this.options.page );
+	}),
+
+	pageDown: spinner_modifier(function( pages ) {
+		this._stepDown( (pages || 1) * this.options.page );
+	}),
+
+	value: function( newVal ) {
+		if ( !arguments.length ) {
+			return this._parse( this.element.val() );
+		}
+		spinner_modifier( this._value ).call( this, newVal );
+	},
+
+	widget: function() {
+		return this.uiSpinner;
+	}
+});
+
+
+/*!
+ * jQuery UI Tabs 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/tabs/
+ */
+
+
+var tabs = $.widget( "ui.tabs", {
+	version: "1.11.3",
+	delay: 300,
+	options: {
+		active: null,
+		collapsible: false,
+		event: "click",
+		heightStyle: "content",
+		hide: null,
+		show: null,
+
+		// callbacks
+		activate: null,
+		beforeActivate: null,
+		beforeLoad: null,
+		load: null
+	},
+
+	_isLocal: (function() {
+		var rhash = /#.*$/;
+
+		return function( anchor ) {
+			var anchorUrl, locationUrl;
+
+			// support: IE7
+			// IE7 doesn't normalize the href property when set via script (#9317)
+			anchor = anchor.cloneNode( false );
+
+			anchorUrl = anchor.href.replace( rhash, "" );
+			locationUrl = location.href.replace( rhash, "" );
+
+			// decoding may throw an error if the URL isn't UTF-8 (#9518)
+			try {
+				anchorUrl = decodeURIComponent( anchorUrl );
+			} catch ( error ) {}
+			try {
+				locationUrl = decodeURIComponent( locationUrl );
+			} catch ( error ) {}
+
+			return anchor.hash.length > 1 && anchorUrl === locationUrl;
+		};
+	})(),
+
+	_create: function() {
+		var that = this,
+			options = this.options;
+
+		this.running = false;
+
+		this.element
+			.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
+			.toggleClass( "ui-tabs-collapsible", options.collapsible );
+
+		this._processTabs();
+		options.active = this._initialActive();
+
+		// Take disabling tabs via class attribute from HTML
+		// into account and update option properly.
+		if ( $.isArray( options.disabled ) ) {
+			options.disabled = $.unique( options.disabled.concat(
+				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
+					return that.tabs.index( li );
+				})
+			) ).sort();
+		}
+
+		// check for length avoids error when initializing empty list
+		if ( this.options.active !== false && this.anchors.length ) {
+			this.active = this._findActive( options.active );
+		} else {
+			this.active = $();
+		}
+
+		this._refresh();
+
+		if ( this.active.length ) {
+			this.load( options.active );
+		}
+	},
+
+	_initialActive: function() {
+		var active = this.options.active,
+			collapsible = this.options.collapsible,
+			locationHash = location.hash.substring( 1 );
+
+		if ( active === null ) {
+			// check the fragment identifier in the URL
+			if ( locationHash ) {
+				this.tabs.each(function( i, tab ) {
+					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
+						active = i;
+						return false;
+					}
+				});
+			}
+
+			// check for a tab marked active via a class
+			if ( active === null ) {
+				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
+			}
+
+			// no active tab, set to false
+			if ( active === null || active === -1 ) {
+				active = this.tabs.length ? 0 : false;
+			}
+		}
+
+		// handle numbers: negative, out of range
+		if ( active !== false ) {
+			active = this.tabs.index( this.tabs.eq( active ) );
+			if ( active === -1 ) {
+				active = collapsible ? false : 0;
+			}
+		}
+
+		// don't allow collapsible: false and active: false
+		if ( !collapsible && active === false && this.anchors.length ) {
+			active = 0;
+		}
+
+		return active;
+	},
+
+	_getCreateEventData: function() {
+		return {
+			tab: this.active,
+			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
+		};
+	},
+
+	_tabKeydown: function( event ) {
+		var focusedTab = $( this.document[0].activeElement ).closest( "li" ),
+			selectedIndex = this.tabs.index( focusedTab ),
+			goingForward = true;
+
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		switch ( event.keyCode ) {
+			case $.ui.keyCode.RIGHT:
+			case $.ui.keyCode.DOWN:
+				selectedIndex++;
+				break;
+			case $.ui.keyCode.UP:
+			case $.ui.keyCode.LEFT:
+				goingForward = false;
+				selectedIndex--;
+				break;
+			case $.ui.keyCode.END:
+				selectedIndex = this.anchors.length - 1;
+				break;
+			case $.ui.keyCode.HOME:
+				selectedIndex = 0;
+				break;
+			case $.ui.keyCode.SPACE:
+				// Activate only, no collapsing
+				event.preventDefault();
+				clearTimeout( this.activating );
+				this._activate( selectedIndex );
+				return;
+			case $.ui.keyCode.ENTER:
+				// Toggle (cancel delayed activation, allow collapsing)
+				event.preventDefault();
+				clearTimeout( this.activating );
+				// Determine if we should collapse or activate
+				this._activate( selectedIndex === this.options.active ? false : selectedIndex );
+				return;
+			default:
+				return;
+		}
+
+		// Focus the appropriate tab, based on which key was pressed
+		event.preventDefault();
+		clearTimeout( this.activating );
+		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
+
+		// Navigating with control/command key will prevent automatic activation
+		if ( !event.ctrlKey && !event.metaKey ) {
+
+			// Update aria-selected immediately so that AT think the tab is already selected.
+			// Otherwise AT may confuse the user by stating that they need to activate the tab,
+			// but the tab will already be activated by the time the announcement finishes.
+			focusedTab.attr( "aria-selected", "false" );
+			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
+
+			this.activating = this._delay(function() {
+				this.option( "active", selectedIndex );
+			}, this.delay );
+		}
+	},
+
+	_panelKeydown: function( event ) {
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		// Ctrl+up moves focus to the current tab
+		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
+			event.preventDefault();
+			this.active.focus();
+		}
+	},
+
+	// Alt+page up/down moves focus to the previous/next tab (and activates)
+	_handlePageNav: function( event ) {
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
+			this._activate( this._focusNextTab( this.options.active - 1, false ) );
+			return true;
+		}
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
+			this._activate( this._focusNextTab( this.options.active + 1, true ) );
+			return true;
+		}
+	},
+
+	_findNextTab: function( index, goingForward ) {
+		var lastTabIndex = this.tabs.length - 1;
+
+		function constrain() {
+			if ( index > lastTabIndex ) {
+				index = 0;
+			}
+			if ( index < 0 ) {
+				index = lastTabIndex;
+			}
+			return index;
+		}
+
+		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
+			index = goingForward ? index + 1 : index - 1;
+		}
+
+		return index;
+	},
+
+	_focusNextTab: function( index, goingForward ) {
+		index = this._findNextTab( index, goingForward );
+		this.tabs.eq( index ).focus();
+		return index;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "disabled" ) {
+			// don't use the widget factory's disabled handling
+			this._setupDisabled( value );
+			return;
+		}
+
+		this._super( key, value);
+
+		if ( key === "collapsible" ) {
+			this.element.toggleClass( "ui-tabs-collapsible", value );
+			// Setting collapsible: false while collapsed; open first panel
+			if ( !value && this.options.active === false ) {
+				this._activate( 0 );
+			}
+		}
+
+		if ( key === "event" ) {
+			this._setupEvents( value );
+		}
+
+		if ( key === "heightStyle" ) {
+			this._setupHeightStyle( value );
+		}
+	},
+
+	_sanitizeSelector: function( hash ) {
+		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
+	},
+
+	refresh: function() {
+		var options = this.options,
+			lis = this.tablist.children( ":has(a[href])" );
+
+		// get disabled tabs from class attribute from HTML
+		// this will get converted to a boolean if needed in _refresh()
+		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
+			return lis.index( tab );
+		});
+
+		this._processTabs();
+
+		// was collapsed or no tabs
+		if ( options.active === false || !this.anchors.length ) {
+			options.active = false;
+			this.active = $();
+		// was active, but active tab is gone
+		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
+			// all remaining tabs are disabled
+			if ( this.tabs.length === options.disabled.length ) {
+				options.active = false;
+				this.active = $();
+			// activate previous tab
+			} else {
+				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
+			}
+		// was active, active tab still exists
+		} else {
+			// make sure active index is correct
+			options.active = this.tabs.index( this.active );
+		}
+
+		this._refresh();
+	},
+
+	_refresh: function() {
+		this._setupDisabled( this.options.disabled );
+		this._setupEvents( this.options.event );
+		this._setupHeightStyle( this.options.heightStyle );
+
+		this.tabs.not( this.active ).attr({
+			"aria-selected": "false",
+			"aria-expanded": "false",
+			tabIndex: -1
+		});
+		this.panels.not( this._getPanelForTab( this.active ) )
+			.hide()
+			.attr({
+				"aria-hidden": "true"
+			});
+
+		// Make sure one tab is in the tab order
+		if ( !this.active.length ) {
+			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active
+				.addClass( "ui-tabs-active ui-state-active" )
+				.attr({
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				});
+			this._getPanelForTab( this.active )
+				.show()
+				.attr({
+					"aria-hidden": "false"
+				});
+		}
+	},
+
+	_processTabs: function() {
+		var that = this,
+			prevTabs = this.tabs,
+			prevAnchors = this.anchors,
+			prevPanels = this.panels;
+
+		this.tablist = this._getList()
+			.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
+			.attr( "role", "tablist" )
+
+			// Prevent users from focusing disabled tabs via click
+			.delegate( "> li", "mousedown" + this.eventNamespace, function( event ) {
+				if ( $( this ).is( ".ui-state-disabled" ) ) {
+					event.preventDefault();
+				}
+			})
+
+			// support: IE <9
+			// Preventing the default action in mousedown doesn't prevent IE
+			// from focusing the element, so if the anchor gets focused, blur.
+			// We don't have to worry about focusing the previously focused
+			// element since clicking on a non-focusable element should focus
+			// the body anyway.
+			.delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
+				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
+					this.blur();
+				}
+			});
+
+		this.tabs = this.tablist.find( "> li:has(a[href])" )
+			.addClass( "ui-state-default ui-corner-top" )
+			.attr({
+				role: "tab",
+				tabIndex: -1
+			});
+
+		this.anchors = this.tabs.map(function() {
+				return $( "a", this )[ 0 ];
+			})
+			.addClass( "ui-tabs-anchor" )
+			.attr({
+				role: "presentation",
+				tabIndex: -1
+			});
+
+		this.panels = $();
+
+		this.anchors.each(function( i, anchor ) {
+			var selector, panel, panelId,
+				anchorId = $( anchor ).uniqueId().attr( "id" ),
+				tab = $( anchor ).closest( "li" ),
+				originalAriaControls = tab.attr( "aria-controls" );
+
+			// inline tab
+			if ( that._isLocal( anchor ) ) {
+				selector = anchor.hash;
+				panelId = selector.substring( 1 );
+				panel = that.element.find( that._sanitizeSelector( selector ) );
+			// remote tab
+			} else {
+				// If the tab doesn't already have aria-controls,
+				// generate an id by using a throw-away element
+				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
+				selector = "#" + panelId;
+				panel = that.element.find( selector );
+				if ( !panel.length ) {
+					panel = that._createPanel( panelId );
+					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
+				}
+				panel.attr( "aria-live", "polite" );
+			}
+
+			if ( panel.length) {
+				that.panels = that.panels.add( panel );
+			}
+			if ( originalAriaControls ) {
+				tab.data( "ui-tabs-aria-controls", originalAriaControls );
+			}
+			tab.attr({
+				"aria-controls": panelId,
+				"aria-labelledby": anchorId
+			});
+			panel.attr( "aria-labelledby", anchorId );
+		});
+
+		this.panels
+			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+			.attr( "role", "tabpanel" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevTabs ) {
+			this._off( prevTabs.not( this.tabs ) );
+			this._off( prevAnchors.not( this.anchors ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	// allow overriding how to find the list for rare usage scenarios (#7715)
+	_getList: function() {
+		return this.tablist || this.element.find( "ol,ul" ).eq( 0 );
+	},
+
+	_createPanel: function( id ) {
+		return $( "<div>" )
+			.attr( "id", id )
+			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+			.data( "ui-tabs-destroy", true );
+	},
+
+	_setupDisabled: function( disabled ) {
+		if ( $.isArray( disabled ) ) {
+			if ( !disabled.length ) {
+				disabled = false;
+			} else if ( disabled.length === this.anchors.length ) {
+				disabled = true;
+			}
+		}
+
+		// disable tabs
+		for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) {
+			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
+				$( li )
+					.addClass( "ui-state-disabled" )
+					.attr( "aria-disabled", "true" );
+			} else {
+				$( li )
+					.removeClass( "ui-state-disabled" )
+					.removeAttr( "aria-disabled" );
+			}
+		}
+
+		this.options.disabled = disabled;
+	},
+
+	_setupEvents: function( event ) {
+		var events = {};
+		if ( event ) {
+			$.each( event.split(" "), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			});
+		}
+
+		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
+		// Always prevent the default action, even when disabled
+		this._on( true, this.anchors, {
+			click: function( event ) {
+				event.preventDefault();
+			}
+		});
+		this._on( this.anchors, events );
+		this._on( this.tabs, { keydown: "_tabKeydown" } );
+		this._on( this.panels, { keydown: "_panelKeydown" } );
+
+		this._focusable( this.tabs );
+		this._hoverable( this.tabs );
+	},
+
+	_setupHeightStyle: function( heightStyle ) {
+		var maxHeight,
+			parent = this.element.parent();
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			maxHeight -= this.element.outerHeight() - this.element.height();
+
+			this.element.siblings( ":visible" ).each(function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			});
+
+			this.element.children().not( this.panels ).each(function() {
+				maxHeight -= $( this ).outerHeight( true );
+			});
+
+			this.panels.each(function() {
+				$( this ).height( Math.max( 0, maxHeight -
+					$( this ).innerHeight() + $( this ).height() ) );
+			})
+			.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.panels.each(function() {
+				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+			}).height( maxHeight );
+		}
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			anchor = $( event.currentTarget ),
+			tab = anchor.closest( "li" ),
+			clickedIsActive = tab[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : this._getPanelForTab( tab ),
+			toHide = !active.length ? $() : this._getPanelForTab( active ),
+			eventData = {
+				oldTab: active,
+				oldPanel: toHide,
+				newTab: collapsing ? $() : tab,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if ( tab.hasClass( "ui-state-disabled" ) ||
+				// tab is already loading
+				tab.hasClass( "ui-tabs-loading" ) ||
+				// can't switch durning an animation
+				this.running ||
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.tabs.index( tab );
+
+		this.active = clickedIsActive ? $() : tab;
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		if ( !toHide.length && !toShow.length ) {
+			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
+		}
+
+		if ( toShow.length ) {
+			this.load( this.tabs.index( tab ), event );
+		}
+		this._toggle( event, eventData );
+	},
+
+	// handles show/hide for selecting tabs
+	_toggle: function( event, eventData ) {
+		var that = this,
+			toShow = eventData.newPanel,
+			toHide = eventData.oldPanel;
+
+		this.running = true;
+
+		function complete() {
+			that.running = false;
+			that._trigger( "activate", event, eventData );
+		}
+
+		function show() {
+			eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" );
+
+			if ( toShow.length && that.options.show ) {
+				that._show( toShow, that.options.show, complete );
+			} else {
+				toShow.show();
+				complete();
+			}
+		}
+
+		// start out by hiding, then showing, then completing
+		if ( toHide.length && this.options.hide ) {
+			this._hide( toHide, this.options.hide, function() {
+				eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
+				show();
+			});
+		} else {
+			eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
+			toHide.hide();
+			show();
+		}
+
+		toHide.attr( "aria-hidden", "true" );
+		eventData.oldTab.attr({
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		});
+		// If we're switching tabs, remove the old tab from the tab order.
+		// If we're opening from collapsed state, remove the previous tab from the tab order.
+		// If we're collapsing, then keep the collapsing tab in the tab order.
+		if ( toShow.length && toHide.length ) {
+			eventData.oldTab.attr( "tabIndex", -1 );
+		} else if ( toShow.length ) {
+			this.tabs.filter(function() {
+				return $( this ).attr( "tabIndex" ) === 0;
+			})
+			.attr( "tabIndex", -1 );
+		}
+
+		toShow.attr( "aria-hidden", "false" );
+		eventData.newTab.attr({
+			"aria-selected": "true",
+			"aria-expanded": "true",
+			tabIndex: 0
+		});
+	},
+
+	_activate: function( index ) {
+		var anchor,
+			active = this._findActive( index );
+
+		// trying to activate the already active panel
+		if ( active[ 0 ] === this.active[ 0 ] ) {
+			return;
+		}
+
+		// trying to collapse, simulate a click on the current active header
+		if ( !active.length ) {
+			active = this.active;
+		}
+
+		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
+		this._eventHandler({
+			target: anchor,
+			currentTarget: anchor,
+			preventDefault: $.noop
+		});
+	},
+
+	_findActive: function( index ) {
+		return index === false ? $() : this.tabs.eq( index );
+	},
+
+	_getIndex: function( index ) {
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		if ( typeof index === "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) );
+		}
+
+		return index;
+	},
+
+	_destroy: function() {
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" );
+
+		this.tablist
+			.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
+			.removeAttr( "role" );
+
+		this.anchors
+			.removeClass( "ui-tabs-anchor" )
+			.removeAttr( "role" )
+			.removeAttr( "tabIndex" )
+			.removeUniqueId();
+
+		this.tablist.unbind( this.eventNamespace );
+
+		this.tabs.add( this.panels ).each(function() {
+			if ( $.data( this, "ui-tabs-destroy" ) ) {
+				$( this ).remove();
+			} else {
+				$( this )
+					.removeClass( "ui-state-default ui-state-active ui-state-disabled " +
+						"ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
+					.removeAttr( "tabIndex" )
+					.removeAttr( "aria-live" )
+					.removeAttr( "aria-busy" )
+					.removeAttr( "aria-selected" )
+					.removeAttr( "aria-labelledby" )
+					.removeAttr( "aria-hidden" )
+					.removeAttr( "aria-expanded" )
+					.removeAttr( "role" );
+			}
+		});
+
+		this.tabs.each(function() {
+			var li = $( this ),
+				prev = li.data( "ui-tabs-aria-controls" );
+			if ( prev ) {
+				li
+					.attr( "aria-controls", prev )
+					.removeData( "ui-tabs-aria-controls" );
+			} else {
+				li.removeAttr( "aria-controls" );
+			}
+		});
+
+		this.panels.show();
+
+		if ( this.options.heightStyle !== "content" ) {
+			this.panels.css( "height", "" );
+		}
+	},
+
+	enable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === false ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = false;
+		} else {
+			index = this._getIndex( index );
+			if ( $.isArray( disabled ) ) {
+				disabled = $.map( disabled, function( num ) {
+					return num !== index ? num : null;
+				});
+			} else {
+				disabled = $.map( this.tabs, function( li, num ) {
+					return num !== index ? num : null;
+				});
+			}
+		}
+		this._setupDisabled( disabled );
+	},
+
+	disable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === true ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = true;
+		} else {
+			index = this._getIndex( index );
+			if ( $.inArray( index, disabled ) !== -1 ) {
+				return;
+			}
+			if ( $.isArray( disabled ) ) {
+				disabled = $.merge( [ index ], disabled ).sort();
+			} else {
+				disabled = [ index ];
+			}
+		}
+		this._setupDisabled( disabled );
+	},
+
+	load: function( index, event ) {
+		index = this._getIndex( index );
+		var that = this,
+			tab = this.tabs.eq( index ),
+			anchor = tab.find( ".ui-tabs-anchor" ),
+			panel = this._getPanelForTab( tab ),
+			eventData = {
+				tab: tab,
+				panel: panel
+			};
+
+		// not remote
+		if ( this._isLocal( anchor[ 0 ] ) ) {
+			return;
+		}
+
+		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
+
+		// support: jQuery <1.8
+		// jQuery <1.8 returns false if the request is canceled in beforeSend,
+		// but as of 1.8, $.ajax() always returns a jqXHR object.
+		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
+			tab.addClass( "ui-tabs-loading" );
+			panel.attr( "aria-busy", "true" );
+
+			this.xhr
+				.success(function( response ) {
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout(function() {
+						panel.html( response );
+						that._trigger( "load", event, eventData );
+					}, 1 );
+				})
+				.complete(function( jqXHR, status ) {
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout(function() {
+						if ( status === "abort" ) {
+							that.panels.stop( false, true );
+						}
+
+						tab.removeClass( "ui-tabs-loading" );
+						panel.removeAttr( "aria-busy" );
+
+						if ( jqXHR === that.xhr ) {
+							delete that.xhr;
+						}
+					}, 1 );
+				});
+		}
+	},
+
+	_ajaxSettings: function( anchor, event, eventData ) {
+		var that = this;
+		return {
+			url: anchor.attr( "href" ),
+			beforeSend: function( jqXHR, settings ) {
+				return that._trigger( "beforeLoad", event,
+					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
+			}
+		};
+	},
+
+	_getPanelForTab: function( tab ) {
+		var id = $( tab ).attr( "aria-controls" );
+		return this.element.find( this._sanitizeSelector( "#" + id ) );
+	}
+});
+
+
+/*!
+ * jQuery UI Tooltip 1.11.3
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/tooltip/
+ */
+
+
+var tooltip = $.widget( "ui.tooltip", {
+	version: "1.11.3",
+	options: {
+		content: function() {
+			// support: IE<9, Opera in jQuery <1.7
+			// .text() can't accept undefined, so coerce to a string
+			var title = $( this ).attr( "title" ) || "";
+			// Escape title, since we're going from an attribute to raw HTML
+			return $( "<a>" ).text( title ).html();
+		},
+		hide: true,
+		// Disabled elements have inconsistent behavior across browsers (#8661)
+		items: "[title]:not([disabled])",
+		position: {
+			my: "left top+15",
+			at: "left bottom",
+			collision: "flipfit flip"
+		},
+		show: true,
+		tooltipClass: null,
+		track: false,
+
+		// callbacks
+		close: null,
+		open: null
+	},
+
+	_addDescribedBy: function( elem, id ) {
+		var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
+		describedby.push( id );
+		elem
+			.data( "ui-tooltip-id", id )
+			.attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
+	},
+
+	_removeDescribedBy: function( elem ) {
+		var id = elem.data( "ui-tooltip-id" ),
+			describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
+			index = $.inArray( id, describedby );
+
+		if ( index !== -1 ) {
+			describedby.splice( index, 1 );
+		}
+
+		elem.removeData( "ui-tooltip-id" );
+		describedby = $.trim( describedby.join( " " ) );
+		if ( describedby ) {
+			elem.attr( "aria-describedby", describedby );
+		} else {
+			elem.removeAttr( "aria-describedby" );
+		}
+	},
+
+	_create: function() {
+		this._on({
+			mouseover: "open",
+			focusin: "open"
+		});
+
+		// IDs of generated tooltips, needed for destroy
+		this.tooltips = {};
+
+		// IDs of parent tooltips where we removed the title attribute
+		this.parents = {};
+
+		if ( this.options.disabled ) {
+			this._disable();
+		}
+
+		// Append the aria-live region so tooltips announce correctly
+		this.liveRegion = $( "<div>" )
+			.attr({
+				role: "log",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+	},
+
+	_setOption: function( key, value ) {
+		var that = this;
+
+		if ( key === "disabled" ) {
+			this[ value ? "_disable" : "_enable" ]();
+			this.options[ key ] = value;
+			// disable element style changes
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "content" ) {
+			$.each( this.tooltips, function( id, tooltipData ) {
+				that._updateContent( tooltipData.element );
+			});
+		}
+	},
+
+	_disable: function() {
+		var that = this;
+
+		// close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+			var event = $.Event( "blur" );
+			event.target = event.currentTarget = tooltipData.element[ 0 ];
+			that.close( event, true );
+		});
+
+		// remove title attributes to prevent native tooltips
+		this.element.find( this.options.items ).addBack().each(function() {
+			var element = $( this );
+			if ( element.is( "[title]" ) ) {
+				element
+					.data( "ui-tooltip-title", element.attr( "title" ) )
+					.removeAttr( "title" );
+			}
+		});
+	},
+
+	_enable: function() {
+		// restore title attributes
+		this.element.find( this.options.items ).addBack().each(function() {
+			var element = $( this );
+			if ( element.data( "ui-tooltip-title" ) ) {
+				element.attr( "title", element.data( "ui-tooltip-title" ) );
+			}
+		});
+	},
+
+	open: function( event ) {
+		var that = this,
+			target = $( event ? event.target : this.element )
+				// we need closest here due to mouseover bubbling,
+				// but always pointing at the same event target
+				.closest( this.options.items );
+
+		// No element to show a tooltip for or the tooltip is already open
+		if ( !target.length || target.data( "ui-tooltip-id" ) ) {
+			return;
+		}
+
+		if ( target.attr( "title" ) ) {
+			target.data( "ui-tooltip-title", target.attr( "title" ) );
+		}
+
+		target.data( "ui-tooltip-open", true );
+
+		// kill parent tooltips, custom or native, for hover
+		if ( event && event.type === "mouseover" ) {
+			target.parents().each(function() {
+				var parent = $( this ),
+					blurEvent;
+				if ( parent.data( "ui-tooltip-open" ) ) {
+					blurEvent = $.Event( "blur" );
+					blurEvent.target = blurEvent.currentTarget = this;
+					that.close( blurEvent, true );
+				}
+				if ( parent.attr( "title" ) ) {
+					parent.uniqueId();
+					that.parents[ this.id ] = {
+						element: this,
+						title: parent.attr( "title" )
+					};
+					parent.attr( "title", "" );
+				}
+			});
+		}
+
+		this._updateContent( target, event );
+	},
+
+	_updateContent: function( target, event ) {
+		var content,
+			contentOption = this.options.content,
+			that = this,
+			eventType = event ? event.type : null;
+
+		if ( typeof contentOption === "string" ) {
+			return this._open( event, target, contentOption );
+		}
+
+		content = contentOption.call( target[0], function( response ) {
+			// ignore async response if tooltip was closed already
+			if ( !target.data( "ui-tooltip-open" ) ) {
+				return;
+			}
+			// IE may instantly serve a cached response for ajax requests
+			// delay this call to _open so the other call to _open runs first
+			that._delay(function() {
+				// jQuery creates a special event for focusin when it doesn't
+				// exist natively. To improve performance, the native event
+				// object is reused and the type is changed. Therefore, we can't
+				// rely on the type being correct after the event finished
+				// bubbling, so we set it back to the previous value. (#8740)
+				if ( event ) {
+					event.type = eventType;
+				}
+				this._open( event, target, response );
+			});
+		});
+		if ( content ) {
+			this._open( event, target, content );
+		}
+	},
+
+	_open: function( event, target, content ) {
+		var tooltipData, tooltip, events, delayedShow, a11yContent,
+			positionOption = $.extend( {}, this.options.position );
+
+		if ( !content ) {
+			return;
+		}
+
+		// Content can be updated multiple times. If the tooltip already
+		// exists, then just update the content and bail.
+		tooltipData = this._find( target );
+		if ( tooltipData ) {
+			tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content );
+			return;
+		}
+
+		// if we have a title, clear it to prevent the native tooltip
+		// we have to check first to avoid defining a title if none exists
+		// (we don't want to cause an element to start matching [title])
+		//
+		// We use removeAttr only for key events, to allow IE to export the correct
+		// accessible attributes. For mouse events, set to empty string to avoid
+		// native tooltip showing up (happens only when removing inside mouseover).
+		if ( target.is( "[title]" ) ) {
+			if ( event && event.type === "mouseover" ) {
+				target.attr( "title", "" );
+			} else {
+				target.removeAttr( "title" );
+			}
+		}
+
+		tooltipData = this._tooltip( target );
+		tooltip = tooltipData.tooltip;
+		this._addDescribedBy( target, tooltip.attr( "id" ) );
+		tooltip.find( ".ui-tooltip-content" ).html( content );
+
+		// Support: Voiceover on OS X, JAWS on IE <= 9
+		// JAWS announces deletions even when aria-relevant="additions"
+		// Voiceover will sometimes re-read the entire log region's contents from the beginning
+		this.liveRegion.children().hide();
+		if ( content.clone ) {
+			a11yContent = content.clone();
+			a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
+		} else {
+			a11yContent = content;
+		}
+		$( "<div>" ).html( a11yContent ).appendTo( this.liveRegion );
+
+		function position( event ) {
+			positionOption.of = event;
+			if ( tooltip.is( ":hidden" ) ) {
+				return;
+			}
+			tooltip.position( positionOption );
+		}
+		if ( this.options.track && event && /^mouse/.test( event.type ) ) {
+			this._on( this.document, {
+				mousemove: position
+			});
+			// trigger once to override element-relative positioning
+			position( event );
+		} else {
+			tooltip.position( $.extend({
+				of: target
+			}, this.options.position ) );
+		}
+
+		tooltip.hide();
+
+		this._show( tooltip, this.options.show );
+		// Handle tracking tooltips that are shown with a delay (#8644). As soon
+		// as the tooltip is visible, position the tooltip using the most recent
+		// event.
+		if ( this.options.show && this.options.show.delay ) {
+			delayedShow = this.delayedShow = setInterval(function() {
+				if ( tooltip.is( ":visible" ) ) {
+					position( positionOption.of );
+					clearInterval( delayedShow );
+				}
+			}, $.fx.interval );
+		}
+
+		this._trigger( "open", event, { tooltip: tooltip } );
+
+		events = {
+			keyup: function( event ) {
+				if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
+					var fakeEvent = $.Event(event);
+					fakeEvent.currentTarget = target[0];
+					this.close( fakeEvent, true );
+				}
+			}
+		};
+
+		// Only bind remove handler for delegated targets. Non-delegated
+		// tooltips will handle this in destroy.
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			events.remove = function() {
+				this._removeTooltip( tooltip );
+			};
+		}
+
+		if ( !event || event.type === "mouseover" ) {
+			events.mouseleave = "close";
+		}
+		if ( !event || event.type === "focusin" ) {
+			events.focusout = "close";
+		}
+		this._on( true, target, events );
+	},
+
+	close: function( event ) {
+		var tooltip,
+			that = this,
+			target = $( event ? event.currentTarget : this.element ),
+			tooltipData = this._find( target );
+
+		// The tooltip may already be closed
+		if ( !tooltipData ) {
+			return;
+		}
+
+		tooltip = tooltipData.tooltip;
+
+		// disabling closes the tooltip, so we need to track when we're closing
+		// to avoid an infinite loop in case the tooltip becomes disabled on close
+		if ( tooltipData.closing ) {
+			return;
+		}
+
+		// Clear the interval for delayed tracking tooltips
+		clearInterval( this.delayedShow );
+
+		// only set title if we had one before (see comment in _open())
+		// If the title attribute has changed since open(), don't restore
+		if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
+			target.attr( "title", target.data( "ui-tooltip-title" ) );
+		}
+
+		this._removeDescribedBy( target );
+
+		tooltipData.hiding = true;
+		tooltip.stop( true );
+		this._hide( tooltip, this.options.hide, function() {
+			that._removeTooltip( $( this ) );
+		});
+
+		target.removeData( "ui-tooltip-open" );
+		this._off( target, "mouseleave focusout keyup" );
+
+		// Remove 'remove' binding only on delegated targets
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			this._off( target, "remove" );
+		}
+		this._off( this.document, "mousemove" );
+
+		if ( event && event.type === "mouseleave" ) {
+			$.each( this.parents, function( id, parent ) {
+				$( parent.element ).attr( "title", parent.title );
+				delete that.parents[ id ];
+			});
+		}
+
+		tooltipData.closing = true;
+		this._trigger( "close", event, { tooltip: tooltip } );
+		if ( !tooltipData.hiding ) {
+			tooltipData.closing = false;
+		}
+	},
+
+	_tooltip: function( element ) {
+		var tooltip = $( "<div>" )
+				.attr( "role", "tooltip" )
+				.addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
+					( this.options.tooltipClass || "" ) ),
+			id = tooltip.uniqueId().attr( "id" );
+
+		$( "<div>" )
+			.addClass( "ui-tooltip-content" )
+			.appendTo( tooltip );
+
+		tooltip.appendTo( this.document[0].body );
+
+		return this.tooltips[ id ] = {
+			element: element,
+			tooltip: tooltip
+		};
+	},
+
+	_find: function( target ) {
+		var id = target.data( "ui-tooltip-id" );
+		return id ? this.tooltips[ id ] : null;
+	},
+
+	_removeTooltip: function( tooltip ) {
+		tooltip.remove();
+		delete this.tooltips[ tooltip.attr( "id" ) ];
+	},
+
+	_destroy: function() {
+		var that = this;
+
+		// close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+			// Delegate to close method to handle common cleanup
+			var event = $.Event( "blur" ),
+				element = tooltipData.element;
+			event.target = event.currentTarget = element[ 0 ];
+			that.close( event, true );
+
+			// Remove immediately; destroying an open tooltip doesn't use the
+			// hide animation
+			$( "#" + id ).remove();
+
+			// Restore the title
+			if ( element.data( "ui-tooltip-title" ) ) {
+				// If the title attribute has changed since open(), don't restore
+				if ( !element.attr( "title" ) ) {
+					element.attr( "title", element.data( "ui-tooltip-title" ) );
+				}
+				element.removeData( "ui-tooltip-title" );
+			}
+		});
+		this.liveRegion.remove();
+	}
+});
+
+
+
+}));
\ No newline at end of file
--- a/develop/js/taggingtext.js	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/js/taggingtext.js	Thu Mar 05 15:08:09 2015 +0100
@@ -647,11 +647,11 @@
             url : './TaggingText',
             async : false,
             data : 'func=SmartRegexSave'+'&text='+encodeURIComponent($('#smartRegexShowDiv').html())+'&filename='+name+'&topic_id='+topic_id,
-            error: function (e) {
+            error: function (result) {
                 alert("Error");
             },
-            success: function (e) {
-                var obj = jQuery.parseJSON(e);
+            success: function (result) {
+                var obj = jQuery.parseJSON(result);
 
                 if (obj == "ErrorDB") {
                     alert("Error when saving to database!!");
@@ -666,10 +666,10 @@
                             url : './TaggingText',
                             async : false,
                             data : 'func=SmartRegexSave'+'&text='+encodeURIComponent($('#smartRegexShowDiv').html())+'&filename='+name+'&topic_id='+topic_id+'&forcesave=1',
-                            error: function (e) {
+                            error: function (result) {
                                 alert("Error");
                             },
-                            success: function (e) {
+                            success: function (result) {
                                 alert("Update regex file.");
                             }
                         });
Binary file develop/models/.DS_Store has changed
--- a/develop/models/extractapp.php	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/models/extractapp.php	Thu Mar 05 15:08:09 2015 +0100
@@ -17,13 +17,14 @@
     }
 
     public function GetTextFromFileId($_postdata) {
-        
+        /*
         if ($this->current_fileId != 0) {
             $this->file_id = $this->current_fileId;
         } else {
             $this->file_id = $_postdata['fileId'];
         }
-
+        */
+        $this->file_id = $_postdata['fileId'];
         $branch_id = $_postdata['branchId'];
         $section_id = $_postdata['sectionId'];
 
@@ -57,13 +58,11 @@
         $this->section_id = $section_id;
         $this->user_id = $_postdata['userId'];
 
-        // TODO: get info from LGService
         $this->section_name = $_postdata['sectionName'];
         $this->book_id = $_postdata['bookId'];
         $this->book_name = $_postdata['bookName'];
 
 
-
         // get from URL with file_id
         $lg_text_url = $this->get_text_from_sectionId_url.$section_id;
         $lg_text = file_get_contents($lg_text_url);
@@ -106,7 +105,6 @@
             $this->topic = $_postdata['topic_id'];
         }
 
-        // TODO: LGService
         if ($_postdata['sectionName']) {
             $this->section_name = $_postdata['sectionName'];
         }
@@ -165,6 +163,36 @@
         
 
     }
+    /*
+    public function Reload($_postdata) {
+
+        // update text using $this->current_fileId
+        // getTextbyFileId
+        $current_fileId = $_postdata['currentFileId'];
+        //$this->file_id = $_postdata['currentFileId'];
+        //$this->GetTextFromFileId($_postdata);
+        //$latest_editing = $this->lg_text;
+        // get from URL with file_id
+
+        $lg_text_url = $this->get_text_from_fileId_url.$current_fileId;
+        $lg_text = file_get_contents($lg_text_url);
+
+        $stringInput = $lg_text;
+        $stringInput = preg_replace("/ /u", "○", $stringInput);
+        $stringInput = preg_replace("/\n/u", "<br>", $stringInput);
+        $stringInput = preg_replace("/【(.*?)】/u", "【<a href=\"review_index_xml_images.php?books_id=".$bookId."&pages=\\1&entry=0\" target=\"_bookImg\">\\1</a>】", $stringInput);
+        $lg_text = $stringInput;
+
+
+        //var_dump($lg_text);
+
+        echo json_encode($lg_text);
+        //var_dump($this->file_id);
+
+    }
+    */
+
+
 
     // === for tagging ===
     public function StartTagging() {
@@ -239,10 +267,15 @@
     }
 
     public function UpdateInfoByResponseFromLGService($response) {
-        
+         
+        /*
+        $response_file = $response["file"];
+        $response_branch = $response["branch"];
+
         
-        $status = $response["status"];
-        if ($response["status"] == "error") {
+        $status = (string)$response["status"];
+
+        if ((string)$response["status"] == "error") {
             $response_currentFile = $response["currentFile"];
     
             $this->current_fileId = (string)$response_currentFile['id'];
@@ -250,18 +283,17 @@
 
             
         } else {
-            
-            $response_file = $response["file"];
-            $response_branch = $response["branch"];
+           
+            $this->messages .= "saving success.";
+            var_dump((string)$response_file["id"]);
 
-            $this->messages .= "saving success.";
             $this->file_id = (string)$response_file["id"]; 
             $this->branch_id = (string)$response_branch["id"];
 
         }
-
+        */
 
-        /*
+        
         $response_file = $response["file"];
         $response_branch = $response["branch"];
 
@@ -274,9 +306,11 @@
         } else if ($status == "error") {
             // saving not success
             $this->messages .= "saving does not success! ".(string)$response["message"];
-            $this->current_fileId = $response["currentFileId"];
+            $response_currentFile = $response["currentFile"];
+            //$this->current_fileId = $response["currentFileId"];
+            $this->current_fileId = (string)$response_currentFile["id"];
+
         }
-        */
         
 
     }
@@ -351,12 +385,11 @@
         ));       
 
         // execute the request
-
-        //$output = curl_exec($ch);
+        $output = curl_exec($ch);
 
 
         // output the profile information - includes the header
-        echo($output) . PHP_EOL;
+        //echo($output) . PHP_EOL;
 
         // close curl resource to free up system resources
         curl_close($ch);
--- a/develop/views/Extractapp/taggingtext.php	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/views/Extractapp/taggingtext.php	Thu Mar 05 15:08:09 2015 +0100
@@ -73,13 +73,13 @@
 // ====
 
 
-handleFileVersionConflict();
-// Popup to proceeding the saving situations
+
+// TODO: Popup to proceeding the saving situations
 function handleFileVersionConflict() {
     var info = JSON.parse('<?php echo json_encode($info) ?>');
-    console.log(info['current_fileId']);
+    console.log("currentFileId="+info['current_fileId']);
     
-    if (info['current_fileId'] != 0){
+    if (info['current_fileId'] != 0 && info['current_fileId'] != info['file_id']){
         // -- there might be conflicts between different version
         var retVal = confirm('There were something happened/someone editing in the between of time.\nDo you want to force saving? (There might be conflicts between two versions.)');
         if( retVal == true ){
@@ -89,38 +89,61 @@
 
         }else{
             var loadLastest = confirm("Do you want to reload for the lastest version? (Your current editing will lost.)");
+            
+            console.log("loadLastest="+loadLastest);
+            /*
+            var form = document.createElement("form");
+            form.setAttribute("method", "post");
+            form.setAttribute("action", "./TaggingText");  // hand to controller
+            form.setAttribute("target", "_blank");  
+
+            var topic_id = JSON.parse('<?php echo json_encode($default_topic_id) ?>');
+
+            var hiddenField = document.createElement("input");      
+            hiddenField.setAttribute("name", "topic");
+            hiddenField.setAttribute("value", topic_id);
+            form.appendChild(hiddenField);
+
+            var hiddenField = document.createElement("input");      
+            hiddenField.setAttribute("name", "func");
+            hiddenField.setAttribute("value", "Reload");  // reload
+            form.appendChild(hiddenField);
+
+            _postForContineTagging(form);
+
+            alert("You will reload the latest version.");   
+            */
+            /*
             if (loadLastest == true) {
                 // TODO: reload page with the currentFileId
-                alert("You will reload the latest version.");   
-                
-                var form = document.createElement("form");
-                form.setAttribute("method", "post");
-                form.setAttribute("action", "./TaggingText");  // hand to controller
-                form.setAttribute("target", "_blank");  
-
-                var topic_id = JSON.parse('<?php echo json_encode($default_topic_id) ?>');
+                console.log('loadLastest is true');
+                $.ajax({
+                    type : 'POST',
+                    url : './TaggingText',
+                    async : false,
+                    data : 'func=Reload',
+                    success: function (result) {
+                        //var lastest_editing = jQuery.parseJSON(result); 
+                        console.log("lastest_editing string:"+result);
+                        // change text to the new one
+                        //var el = document.getElementById("editable-area");
+                        //el.innerHTML = lastest_editing;
+                        //alert("Reload the page!");
+                    },
+                    error: function (result) {
+                        alert("Reload Fails!");
+                    }
+                }).done(function(result) {
+                    // reload page
+                    //document.location.reload(true);
 
-                var hiddenField = document.createElement("input");      
-                hiddenField.setAttribute("name", "topic");
-                hiddenField.setAttribute("value", topic_id);
-                form.appendChild(hiddenField);
-
-                var hiddenField = document.createElement("input");      
-                hiddenField.setAttribute("name", "func");
-                hiddenField.setAttribute("value", "Reload");  // reload
-                form.appendChild(hiddenField);
-
-
-
-                _postForContineTagging(form);
-                
-                // use the current_fileId to reload the latest version of text
-                console.log('reloaded');
-                
+                });
 
             } else {
                 alert("Just a reminder, there is a new version for this branch.");
             }
+            */
+            
         }
     }
     return;
@@ -172,6 +195,8 @@
 
 
 
+    handleFileVersionConflict();
+
     
 
     /*
@@ -593,10 +618,10 @@
     // if this is a new branch, ask for label
     if (info['branch_id'] == 0) {
         var cnt = 0;
-        var label = prompt("Please enter your label for this new branch", "label for section "+info['section_id']);
+        var label = prompt("Please enter your label for this new branch", "section"+info['section_id']);
         while (label == null && cnt <= 3) {
             cnt ++;
-            label = prompt("Please enter your label for this new branch (not empty)", "label for section "+info['section_id']);
+            label = prompt("Please enter your label for this new branch (not empty)", "section"+info['section_id']);
         }    
     };
     
@@ -625,6 +650,9 @@
 
     _postForContineTagging(form);
 
+    console.log("complete saving to LGService");
+
+    
     /*
 
     if (info) {
@@ -801,14 +829,12 @@
             hiddenField.setAttribute("value", info['book_name']);
             form.appendChild(hiddenField);
         };
-        /*
         if (info['current_fileId']) {
             var hiddenField = document.createElement("input");      
             hiddenField.setAttribute("name", "currentFileId");
             hiddenField.setAttribute("value", info['current_fileId']);
             form.appendChild(hiddenField);
         };
-        */
 
     }
     if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
@@ -834,12 +860,15 @@
 
     _postForContineTagging(form);
     
+    /*
     if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
         document.body.appendChild(form);
         form.submit();
     } else {
         form.submit(); // works under IE and Chrome, but not FF  
     }
+    */
+        
 }
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/views/Extractapp/taggingtext_20150219.php	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,705 @@
+<?php
+// --- initialize config file and input text ---
+$stringInput = $viewmodel['stringInput'];
+$wordlistArray = $viewmodel['wordlistArray'];
+$taglistArray = $viewmodel['taglistArray'];
+$section_id = $viewmodel['section_id'];
+$topiclistArray = $viewmodel['topiclistArray'];
+$default_topic_id = $viewmodel['default_topic_id'];
+$topic_tag = $viewmodel['topic_tag'];
+$info = $viewmodel['info'];
+$messages = $viewmodel['messages'];
+
+
+?>
+
+<html>
+<head>
+<title></title>
+
+<style>
+dynasty
+{
+	color:red;
+}
+nianhao
+{
+	color:blue;
+}
+name
+{
+	color:orange;
+}
+#editable-area {
+	line-height:160%;
+	letter-spacing:1.5px;
+	font-size:21px;
+}
+
+
+<?php
+// color on the tags
+foreach ( $taglistArray as $taglistValue ) {
+	echo $taglistValue[2]."\n{\ncolor:".$taglistValue[3]."\n}\n";
+	
+	echo ".span_".$taglistValue[2]."\n{\nbackground-color:".$taglistValue[3]."\n}\n";
+}
+
+?>
+</style>
+
+
+</head>
+
+<body>
+
+<script type="text/javascript">
+
+// === This is only for developing on local machine ====
+var _GET = JSON.parse('<?php echo json_encode($_GET) ?>');
+if (_GET['id']) {
+    
+    var info = JSON.parse('<?php echo json_encode($info) ?>');
+    var redirectUrl = "http://localhost:1080/localmonographs/develop/Extractapp/TaggingText";
+    var section_id = info['section_id'];
+
+    var form = $('<form action="' + redirectUrl + '" method="post">' +
+        '<input type="hidden" name="sectionId" value="'+section_id+'" />' +
+        '</form>');
+        $('body').append(form);
+        $(form).submit();
+}
+// ====
+
+
+<?php 
+foreach ( $taglistArray as $taglistValue ) {
+	echo '$(document).on("click", "'.$taglistValue[2].'", function (e) {'."\n";
+	echo "\t".'if ( $(this).prop("tagName").toLowerCase() != "'.$taglistValue[2].'" ) return 0;'."\n";
+	echo "\t".'if ( $("#editTextId").html() != "Edit the text" ) return 0;'."\n";
+	echo "\tremoveTagNewDiv( e, \"".$taglistValue[2]."\", $(this) );\n";
+	echo "});\n";
+}
+?>
+
+$(document).ready(function(){
+    //run once
+    var el=$('#follow-scroll');
+    var originalelpos=el.offset().top; // take it where it originally is on the page
+
+    //run on scroll
+    $(window).scroll(function(){
+        var el = $('#follow-scroll'); // important! (local)
+        var elpos = el.offset().top; // take current situation
+        var windowpos = $(window).scrollTop();
+        var finaldestination = windowpos+originalelpos;
+        el.stop().animate({'top':finaldestination},500);
+    });
+});
+$(document).on("click", "name", function (e) {
+
+    if ( $("#editTextId").html() != "Edit the text" ) return 0;
+    if ( $(this).prop("tagName").toLowerCase() != "name" ) return 0;
+    
+    removeTagNewDiv( e, "name", $(this) );
+});
+
+$(document).on("mouseup", '#editable-area', function (e) {
+    $('.questionMarkClass').remove();
+    $('.tagItemDivClass').remove();
+   
+    if ( $("#editTextId").html() != "Edit the text" ) return 0;
+
+    var selection = getSelected();
+    range = getSelected().getRangeAt(0);
+    
+    container = document.createElement("div");
+    container.appendChild(selection.getRangeAt(0).cloneContents());
+
+    if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
+    
+    	var newdiv = document.createElement("div");
+        newdiv.id = "tagItemDivId";
+        newdiv.setAttribute("class", "tagItemDivClass");
+        newdiv.style.cssText = 'top:'+e.pageY+'; left:'+e.pageX+'; position:absolute; background-color: white; border:1px solid black; padding: 5px';
+        
+        //console.log(selection.getRangeAt(0).cloneContents());
+        if ( container.innerHTML.indexOf( "br" ) != -1 ) {
+            var newselect = document.createElement("select");
+            newselect.id = "TitletagType";
+            <?php 
+                foreach ( $taglistArray as $taglistValue ) {
+                    echo "newselect.innerHTML += \"<option value='".$taglistValue[2]."'>".$taglistValue[1]."</option>\";\n";
+                }
+            ?>
+            newdiv.appendChild(newselect);
+            
+            //matchValue =  .match();
+            myRegexp = new RegExp("〈(.*?)〉", "g")
+            matchValue = myRegexp.exec(String(selection));
+            
+            if ( matchValue != null ) {
+                newdiv.innerHTML += "<input id=\"TitletagName\" value=\""+ matchValue[1] +"\"></br>";
+            } else {
+                newdiv.innerHTML += "<input id=\"TitletagName\" value=\"\"></br>";
+            }
+            newdiv.innerHTML += "<button onclick=\"addTagTitle( range, container )\">Add Title Tag To Each Line</button></br>";
+            
+            newdiv.innerHTML += "<button onclick=\"exportTable( range, container )\">Export As A Table</button></br></br>";
+            
+            var newselect = document.createElement("select");
+            newselect.id = "RemoveTitletagType";
+            <?php 
+                foreach ( $taglistArray as $taglistValue ) {
+                    echo "newselect.innerHTML += \"<option value='".$taglistValue[2]."'>".$taglistValue[1]."</option>\";\n";
+                }
+            ?>
+            newdiv.appendChild(newselect);
+            
+            newdiv.innerHTML += "<input id=\"RemoveTitletagName\" value=\"\"></br>";
+            newdiv.innerHTML += "<button onclick=\"removeTagTitle( range, container )\">Remove</button></br>";
+        } else {
+ 			// for pop up window on edit-area for tag list
+            newdiv.innerHTML = "Tag: "+String(selection)+"<br>";
+            
+            <?php 
+            foreach ( $taglistArray as $taglistValue ) {
+                if ($taglistValue[2] == $topic_tag) {
+                	echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."2' )\\\">[TopicTag]Tag as:".$taglistValue[1]."(necessary for this topic!)</button>\";\n";
+                    echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(No BR)</button>\";\n";
+                    echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n";
+            		break;
+            	}
+            }
+            ?>
+
+            newdiv.innerHTML += "<button accesskey=\"2\" onclick=\"tagwithtitle( range, '"+String(selection)+"' )\">Tag As Title</button></br>";
+            
+            <?php 
+            	
+			    foreach ( $taglistArray as $taglistValue ) {
+                	/*
+                	if ( $taglistValue[2] == "person") {
+                        echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(No BR)</button>\";\n";
+                        echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."2' )\\\">Tag as:".$taglistValue[1]."</button>\";\n";
+                        echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n";
+                	} else */
+                	if ($taglistValue[2] == $topic_tag) {
+                		// pass
+                	} else if ($taglistValue[2] == "post_time") {
+                        echo "newdiv.innerHTML += \"<button accesskey=\\\"3\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n";
+                        echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n";
+                    } else if ($taglistValue[2] == "office") {
+                        echo "newdiv.innerHTML += \"<button accesskey=\\\"4\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n";
+                        echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n";
+                    } else {
+                        echo "newdiv.innerHTML += \"<button onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n";
+                        echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n";
+                    } 
+
+                }
+            ?>
+        }
+        $('body').append(newdiv);
+        
+        $('#TitletagType').val(lastAddTag);
+    }
+    //e.stopPropagation();
+});
+
+
+
+function replaceSmartRegex() {
+    saveUndoText();
+    var startPage = $('#regexPageStart2').val();
+    var endPage = $('#regexPageEnd2').val();
+    
+    var el = document.getElementById("editable-area");
+    var regexText=document.getElementById("regexText").value;
+    
+    <?php 
+    foreach ( $wordlistArray as $wordlistValue ) {
+        echo "\tvar regexText1=\"List ".$wordlistValue[1]."\";\n";
+        echo "\tregexText1 = preg_quote(regexText1);\n";
+        echo "\tvar replaceText1=\"".$wordlistValue[2]."\";\n";
+        echo "\tregexText = regexText.replace(new RegExp(regexText1, \"g\"), replaceText1);\n\n";
+    }
+    ?>
+    
+    var replaceText=document.getElementById("replaceText").value;
+    var str="" + el.innerHTML;
+    
+    if ( startPage == "" ) {
+        alert( "Tagged "+str.match(new RegExp(regexText, "g")).length+" entities!" );
+        el.innerHTML = str.replace(new RegExp(regexText, "g"), replaceText);
+    } else {
+        var regexText2="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】";
+        var partString = ""+str.match(new RegExp(regexText2, "g"));
+        alert(partString);
+        
+        alert( "Tagged "+partString.match(new RegExp(regexText, "g")).length+" entities!" );
+        var resultString = partString.replace(new RegExp(regexText, "g"), replaceText);
+        
+        str="" + el.innerHTML;
+        el.innerHTML = str.replace(new RegExp(regexText2, "g"), resultString);
+    }
+    //document.styleSheets[0].addRule("tag001", "color:green;")
+}
+
+
+
+function saveTextToLGService() {
+    var info = JSON.parse('<?php echo json_encode($info) ?>');
+
+
+    // if this is a new branch, ask for label
+    if (info['branch_id'] == 0) {
+        var label = prompt("Please enter your label for this new branch", "label for section "+info['section_id']);
+        while (label == null) {
+            label = prompt("Please enter your label for this new branch (not empty)", "label for section "+info['section_id']);
+        }    
+    };
+    
+
+    var form = document.createElement("form");
+    form.setAttribute("method", "post");
+    form.setAttribute("action", "./TaggingText");  // hand to controller
+    
+    // form.setAttribute("action", "./"+info['section_id']);  // hand to controller
+    form.setAttribute("target", "_self");
+    
+    var hiddenField = document.createElement("input");      
+    hiddenField.setAttribute("name", "func");
+    hiddenField.setAttribute("value", "SaveFullTextToLGService");
+    form.appendChild(hiddenField); 
+    
+    if (info) {
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "fileId");
+        hiddenField.setAttribute("value", info['file_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "branchId");
+        hiddenField.setAttribute("value", info['branch_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "userId");
+        hiddenField.setAttribute("value", info['user_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "sectionId");
+        hiddenField.setAttribute("value", info['section_id']);
+        form.appendChild(hiddenField);
+     
+
+    }
+    var hiddenField = document.createElement("input");      
+    hiddenField.setAttribute("name", "label");
+    hiddenField.setAttribute("value", label);
+    form.appendChild(hiddenField);
+
+    var hiddenField = document.createElement("input");      
+    hiddenField.setAttribute("name", "text");
+    var el = document.getElementById("editable-area");
+    //var text = encodeURIComponent(el.innerHTML);
+    var text = el.innerHTML;
+    hiddenField.setAttribute("value", text);
+    form.appendChild(hiddenField);
+
+    
+    if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
+        document.body.appendChild(form);
+        form.submit();
+    } else {
+        form.submit(); // works under IE and Chrome, but not FF  
+    }
+    
+}
+
+
+
+function chooseTopic(default_topic_id) {
+    var t = JSON.parse( '<?php echo json_encode($topiclistArray) ?>' );
+
+    var info = JSON.parse('<?php echo json_encode($info) ?>');
+
+
+    $('#load_topic_div').html("");
+    $('#load_topic_div').css("display", "block");
+    
+    //$('#load_topic_div').css("border", "1px solid black");
+    //$('#load_topic_div').css("background-color", "White");
+    //$('#load_topic_div').css("width", "200px");
+    //$('#load_topic_div').css("height", "50px");
+    //$('#load_topic_div').css("top", "20px");
+    //$('#load_topic_div').css("left", "-200px");
+
+    var topic_select = document.createElement("select");
+    topic_select.id = "loadTopiclist";
+    var selected_topic = t[0];
+    topic_select.onchange = function(){
+
+
+    	selected_topic = topic_select.options[topic_select.selectedIndex];
+    	console.log(selected_topic.text);
+
+    	var topic_id = selected_topic.value;
+		// var topic_name = selected_topic.text;
+
+
+		var form = document.createElement("form");
+        form.setAttribute("method", "post");
+        form.setAttribute("action", "./TaggingText");  // hand to controller
+        //form.setAttribute("action", "./"+section_id);  // hand to controller
+        form.setAttribute("target", "_self");
+
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "topic");
+        hiddenField.setAttribute("value", topic_id);
+        form.appendChild(hiddenField);
+
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "func");
+        hiddenField.setAttribute("value", "ContinueTagging");
+        form.appendChild(hiddenField);
+    
+	    _postForContineTagging(form);
+
+
+    };
+
+
+    //Create and append the options
+	for (var i = 0; i < t.length; i++) {
+		console.log(t[i]['id']+","+t[i]['name']);
+    	var option = document.createElement("option");
+    	option.value = t[i]['id'];
+	    option.text = t[i]['name'];
+	    if (option.value == default_topic_id) {
+	    	option.selected = true;
+	    };
+	    topic_select.appendChild(option);
+	}
+
+    $('#load_topic_div').append(topic_select);
+   
+    var newbutton = document.createElement("button");
+    $(newbutton).html("Close");
+    $(newbutton).attr("onclick", "$('#load_topic_div').css(\"display\", \"none\");");
+    $('#load_topic_div').append(newbutton);
+  
+}
+
+// --- for config tags in topic ---
+function _postForContineTagging(form) {
+    var hiddenField = document.createElement("input");      
+    hiddenField.setAttribute("name", "text");
+    var el = document.getElementById("editable-area");
+    var text = el.innerHTML;
+    hiddenField.setAttribute("value", text);
+    form.appendChild(hiddenField);
+
+    var info = JSON.parse( '<?php echo json_encode($info) ?>');
+
+    if (info) {
+        // TODO: different field info array based on fileId(branchId) existing or not
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "fileId");
+        hiddenField.setAttribute("value", info['file_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "branchId");
+        hiddenField.setAttribute("value", info['branch_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "userId");
+        hiddenField.setAttribute("value", info['user_id']);
+        form.appendChild(hiddenField);
+        var hiddenField = document.createElement("input");      
+        hiddenField.setAttribute("name", "sectionId");
+        hiddenField.setAttribute("value", info['section_id']);
+        form.appendChild(hiddenField);
+        
+    }
+
+    if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
+        document.body.appendChild(form);
+        form.submit();
+    } else {
+        form.submit(); // works under IE and Chrome, but not FF  
+    }
+
+}
+
+function configTagsInTopic(topic_id) {
+    var form = document.createElement("form");
+    
+    form.setAttribute("method", "post");
+    //form.setAttribute("action", "exportTable.php");
+    form.setAttribute("action", "./ConfigTagsInTopic");  // hand to controller
+    form.setAttribute("target", "_blank");
+    
+
+    var hiddenField = document.createElement("input");      
+    hiddenField.setAttribute("name", "topic");
+    hiddenField.setAttribute("value", topic_id);
+    form.appendChild(hiddenField);
+
+    _postForContineTagging(form);
+
+}
+
+
+
+$(document).on("change", '#smartRegexPopUpSelectWord', function (e) {
+
+<?php
+    foreach ( $wordlistArray as $wordlistValue ) {
+        echo "if ( $('#smartRegexPopUpSelectWord').val() == \"".$wordlistValue[0]."\") {";
+        echo "$('#smartRegexPopUpText').val(\"".$wordlistValue[2]."\");";
+        echo "}";
+    }
+?>
+});
+
+$(function () {
+
+    $('#example').popover({
+          //selector: '.has-popover'
+        content: function () {
+            return;
+        },
+        //template: output_content,
+        title: "Load Regex"
+    });
+})
+
+
+
+// init for popover used in bootstrap
+$(function () {
+  $('[data-toggle="popover"]').popover()
+})
+
+</script>
+
+<div class="container-fluid">
+    <div class="row">
+        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-10 col-lg-offset-1"> 
+            <p class="bg-primary"> <?php echo $messages; ?> </p>
+        </div>
+    </div>
+
+    <div class="row">
+        <div id="editable-area" class="col-xs-8 col-sm-8 col-md-8 col-lg-7 col-lg-offset-1"><?php echo $stringInput; ?>
+        </div>
+        <div id="follow-scroll" class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
+                <nav class="bs-docs-sidebar hidden-print affix" style="">
+                    <ul class="nav bs-docs-sidenav">
+                        <li>
+                            <div id="load_regex_div" style="position: absolute; display: none"></div>
+                            
+                            <div id="smartRegexPopUpDiv" style="position: absolute; display: none"
+                                    Name: <input id="smartRegexPopUpName"></input><br><br>
+                                    Word List: 
+                                    <select id="smartRegexPopUpSelectWord">
+                                    <option value="NULL" selected>無</option>
+                                    <?php
+                                        foreach ( $wordlistArray as $wordlistValue ) {
+                                            echo "<option value=\"".$wordlistValue[0]."\">".$wordlistValue[1]."</option>\n";
+                                        }
+                                    ?>
+                                    </select>
+                                    <br>
+                                    OR (USE "|" TO SEPARATE WORDS):<br>
+                                    <TEXTAREA id="smartRegexPopUpText" COLS=30 ROWS=4></TEXTAREA><br><br>
+                                    Tag:
+                                    <select id="smartRegexPopUpSelectTag">
+                                    <?php
+                                        foreach ( $taglistArray as $taglistValue ) {
+                                            echo "<option value=\"".$taglistValue[2]."\">".$taglistValue[1]."</option>\n";
+                                        }
+                                        echo "<option value=\"title\">Title</option>\n";
+                                    ?>
+                                    <option value="NOTAG">不標記</option>
+                                    </select><br>
+                                    <button id="smartRegexPopUpAdd" onclick="replaceSmartAdd()" style="">Add</button>
+                                    <button id="smartRegexPopUpEdit" onclick="replaceSmartEdit()" style="">Edit</button>
+                                    <button id="smartRegexPopUpDel" onclick="replaceSmartDel()" style="">Delete</button>
+                                    <button id="smartRegexPopUpBack" onclick="replaceSmartBack()" style=""><<</button>
+                                    <button id="smartRegexPopUpFor" onclick="replaceSmartFor()" style="">>></button>
+                                    <button onclick="replaceSmartClose()" style="">Close</button>
+                            </div>
+                         
+                        <form action="javascript:void(0);">   
+                        
+                            <h4 class="text-success"> Config Topic</h4>
+                            <button onclick="chooseTopic(<?php echo $default_topic_id; ?>)" class="btn-">Choose Topic</button>
+                            <div id="load_topic_div" style="display: none"></div>
+                            <button onclick="configTagsInTopic(<?php echo $default_topic_id;?>)" style="">Config Tags</button></br>
+                        
+                        <fieldset>
+                            <legend><h4 class="text-success"> Replace By <i><b>Smart Regex</b></i>©: </h4></legend>
+                            <div id="smartRegexShowDiv"></div><br>
+                            <button onclick="smartRegexNew()" style="height: 30px; width: 220px">Add Regex Group</button></br>
+                            Range: <input type="text" size="5" id="regexPageStart">to<input type="text" size="5" id="regexPageEnd"><br>
+                            <button onclick="replaceSmartRun()" style="height: 30px; width: 220px">Run</button></br>
+                            <button onclick="replaceSmartRunSpace()" style="height: 30px; width: 220px">Run(Allow space between Group)</button></br>
+                            <button onclick="smartRegexSave()" style="height: 30px; width: 70px">Save</button>
+                            <button onclick="smartRegexLoad()" style="height: 30px; width: 70px">Load</button>
+                            <button onclick="smartRegexEmpty()" style="height: 30px; width: 70px">Clear</button></br>
+                           
+                            <!--
+                            <button id="example" type="button" class="btn btn-sm btn-default" data-toggle="popover">Load</button>
+                            -->
+
+                        </fieldset>
+                        
+                        <fieldset>
+                            <legend><h4 class="text-success"> Tag by rule:</h4></legend>
+                            <button onclick="tagNameWithLastName()" style="height: 30px; width: 220px">Tag Word Begin With Surname</button></br>
+                            <button onclick="tagNameWithLastName2()" style="height: 30px; width: 170px">Tag Word Begin With</button><input type="text" size="2" id="surname"></br>
+                            <!--<button onclick="tagTime()" style="height: 30px; width: 220px">Tag Time</button></br>-->
+                            <!--<button onclick="tagBiogAddr()" style="height: 30px; width: 220px">Tag BiogAddr</button></br>-->
+                            <button onclick="Undo()" style="height: 30px; width: 220px" id="buttonUndo" disabled="true">Undo</button>
+                        </fieldset>
+                    
+                        <fieldset>
+                            <legend><h4 class="text-success"> Edit:</h4></legend>
+                            <button onclick="saveTextToLGService()" style="height: 30px; width: 220px">Save to LGService</button></br>
+                        
+                            <!--<button onclick="cleanUpTextArea()" style="height: 30px; width: 220px">Reform the text</button></br>-->
+                            <button onclick="saveText(<?php echo $section_id; ?>)" style="height: 30px; width: 220px">Save the text</button></br>
+                            <button onclick="editText()" id="editTextId" style="height: 30px; width: 220px">Edit the text</button></br>
+                            </br>
+                            <button onclick="window.open('./EditWordlist')" style="height: 30px; width: 220px">Manage Word List</button></br>
+                            <button onclick="window.open('./EditTaglist')" style="height: 30px; width: 220px">Manage Tag List</button></br>
+                        </fieldset>
+                        
+                        <fieldset>
+                            <legend><h4 class="text-success"> Export:</h4></legend>
+                            Page: <input type="text" size="5" id="exportPageStart">to<input type="text" size="5" id="exportPageEnd"><br>
+                            <button onclick="exportPage()" style="height: 30px; width: 220px">Export</button></br>
+                            <button onclick="exportAll(<?php echo $default_topic_id;?>)" style="height: 30px; width: 220px">Export All</button></br>
+                        </fieldset>
+                    
+                        <fieldset>
+                            <legend><h4 class="text-success"> Replace By <i><b>Regex</b></i>: </h4></legend>
+                            Range: <input type="text" size="5" id="regexPageStart2">to<input type="text" size="5" id="regexPageEnd2"><br>
+                            Regex: <input type="text" size="30" id="regexText"></br>
+                            Replace: <input type="text" size="30" id="replaceText"><br>
+                            <button onclick="replaceSmartRegex()">Replace!</button>
+                        </fieldset>
+                        </form>
+
+                        </li> 
+                    </ul>
+                </nav>  
+           
+        </div>
+    </div>
+
+</div>
+
+
+<table width="1250" border="1">
+	<tr>
+		<td width="980">
+			<div id="editable-area" class="area" style="max-width: 980"><?php echo $stringInput; ?></div>
+		</td>
+		<td width="270" valign="top">
+			<div id="follow-scroll" style="position:absolute; width: 220" width="220">
+				<div id="load_regex_div" style="position: absolute; display: none"></div>
+				<div id="load_topic_div" style="position: absolute; display: none"></div>
+				<div id="smartRegexPopUpDiv" style="position: absolute; display: none">
+					Name: <input id="smartRegexPopUpName"></input><br><br>
+					Word List: 
+					<select id="smartRegexPopUpSelectWord">
+					<option value="NULL" selected>無</option>
+					<?php
+						foreach ( $wordlistArray as $wordlistValue ) {
+							echo "<option value=\"".$wordlistValue[0]."\">".$wordlistValue[1]."</option>\n";
+						}
+					?>
+					</select>
+					<br>
+					OR (USE "|" TO SEPARATE WORDS):<br>
+					<TEXTAREA id="smartRegexPopUpText" COLS=30 ROWS=4></TEXTAREA><br><br>
+					Tag:
+					<select id="smartRegexPopUpSelectTag">
+					<?php
+						foreach ( $taglistArray as $taglistValue ) {
+							echo "<option value=\"".$taglistValue[2]."\">".$taglistValue[1]."</option>\n";
+						}
+						echo "<option value=\"title\">Title</option>\n";
+					?>
+					<option value="NOTAG">不標記</option>
+					</select><br>
+					<button id="smartRegexPopUpAdd" onclick="replaceSmartAdd()" style="height: 30px; width: 50px">Add</button>
+					<button id="smartRegexPopUpEdit" onclick="replaceSmartEdit()" style="height: 30px; width: 50px">Edit</button>
+					<button id="smartRegexPopUpDel" onclick="replaceSmartDel()" style="height: 30px; width: 50px">Delete</button>
+					<button id="smartRegexPopUpBack" onclick="replaceSmartBack()" style="height: 30px; width: 50px"><<</button>
+					<button id="smartRegexPopUpFor" onclick="replaceSmartFor()" style="height: 30px; width: 50px">>></button>
+					<button onclick="replaceSmartClose()" style="height: 30px; width: 50px">Close</button>
+				</div>
+				<form action="javascript:void(0);">
+					<button onclick="chooseTopic(<?php echo $default_topic_id; ?>)">Choose Topic</button>
+					<button onclick="configTagsInTopic(<?php echo $default_topic_id;?>)" style="height: 30px; width: 220px">Config Tag List for Topic</button></br>
+					<fieldset>
+						<legend>Replace By <i><b>Smart Regex</b></i>©:</legend>
+						<div id="smartRegexShowDiv"></div><br>
+						<button onclick="smartRegexNew()" style="height: 30px; width: 220px">Add Regex Group</button></br>
+						Range: <input type="text" size="5" id="regexPageStart">to<input type="text" size="5" id="regexPageEnd"><br>
+						<button onclick="replaceSmartRun()" style="height: 30px; width: 220px">Run</button></br>
+						<button onclick="replaceSmartRunSpace()" style="height: 30px; width: 220px">Run(Allow space between Group)</button></br>
+						<button onclick="smartRegexSave()" style="height: 30px; width: 70px">Save</button>
+						<button onclick="smartRegexLoad()" style="height: 30px; width: 70px">Load</button>
+						<button onclick="smartRegexEmpty()" style="height: 30px; width: 70px">Clear</button></br>
+					</fieldset>
+					
+					<fieldset>
+						<legend>Tag by rule:</legend>
+						<button onclick="tagNameWithLastName()" style="height: 30px; width: 220px">Tag Word Begin With Surname</button></br>
+						<button onclick="tagNameWithLastName2()" style="height: 30px; width: 170px">Tag Word Begin With</button><input type="text" size="2" id="surname"></br>
+						<!--<button onclick="tagTime()" style="height: 30px; width: 220px">Tag Time</button></br>-->
+						<!--<button onclick="tagBiogAddr()" style="height: 30px; width: 220px">Tag BiogAddr</button></br>-->
+						<button onclick="Undo()" style="height: 30px; width: 220px" id="buttonUndo" disabled="true">Undo</button>
+					</fieldset>
+					
+					<fieldset>
+						<legend>Edit:</legend>
+						<button onclick="saveTextToLGService()" style="height: 30px; width: 220px">Save to LGService</button></br>
+                    
+                        <!--<button onclick="cleanUpTextArea()" style="height: 30px; width: 220px">Reform the text</button></br>-->
+						<button onclick="saveText(<?php echo $section_id; ?>)" style="height: 30px; width: 220px">Save the text</button></br>
+						<button onclick="editText()" id="editTextId" style="height: 30px; width: 220px">Edit the text</button></br>
+						</br>
+						<button onclick="window.open('./EditWordlist')" style="height: 30px; width: 220px">Manage Word List</button></br>
+						<button onclick="window.open('./EditTaglist')" style="height: 30px; width: 220px">Manage Tag List</button></br>
+					</fieldset>
+					
+					<fieldset>
+						<legend>Export:</legend>
+						Page: <input type="text" size="5" id="exportPageStart">to<input type="text" size="5" id="exportPageEnd"><br>
+						<button onclick="exportPage()" style="height: 30px; width: 220px">Export</button></br>
+						<button onclick="exportAll(<?php echo $default_topic_id;?>)" style="height: 30px; width: 220px">Export All</button></br>
+					</fieldset>
+					
+					<fieldset>
+						<legend>Replace By <i><b>Regex</b></i>:</legend>
+						Range: <input type="text" size="5" id="regexPageStart2">to<input type="text" size="5" id="regexPageEnd2"><br>
+						Regex: <input type="text" size="30" id="regexText"></br>
+						Replace: <input type="text" size="30" id="replaceText"><br>
+						<button onclick="replaceSmartRegex()">Replace!</button>
+					</fieldset>
+				</form>
+			</div>
+		</td>
+	</tr>
+</table>
+
+
+
+</body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop/views/Home/test.php	Thu Mar 05 15:08:09 2015 +0100
@@ -0,0 +1,8 @@
+<h1>Home/test.php</h1>
+
+<?php
+// --- initialize config file and input text ---
+$name = $viewmodel['name'];
+
+
+?>
\ No newline at end of file
--- a/develop/views/maintemplate.php	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/views/maintemplate.php	Thu Mar 05 15:08:09 2015 +0100
@@ -2,10 +2,6 @@
 <head>
 <title></title>
 
-<!-- 
-<script src="../../js/jquery-1.10.2.min.js"></script> 
-<script src="../../js/taggingtext.js"></script>
--->
 <script src="../js/jquery-1.10.2.min.js"></script>
 <script src="../js/jquery-ui.js"></script>
 <script src="../js/taggingtext.js"></script>
--- a/develop/views/maintemplate_local.php	Tue Mar 03 18:13:20 2015 +0100
+++ b/develop/views/maintemplate_local.php	Thu Mar 05 15:08:09 2015 +0100
@@ -2,10 +2,6 @@
 <head>
 <title></title>
 
-<!-- 
-<script src="../../js/jquery-1.10.2.min.js"></script> 
-<script src="../../js/taggingtext.js"></script>
--->
 
 <script src="../../js/jquery-1.10.2.min.js"></script>
 <script src="../../js/jquery-ui.js"></script>